@hagicode/cli 0.1.0-dev.38.1.49d2c87 → 0.1.0-dev.39.1.c7a4f44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,58 +1,68 @@
1
- var fi=Object.create,Ra=Object.defineProperty,Ei=Object.getOwnPropertyDescriptor,Vi=Object.getOwnPropertyNames,Gi=Object.getPrototypeOf,Ni=Object.prototype.hasOwnProperty,ke=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Wi=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(var a=Vi(t),r=0,i=a.length,l;r<i;r++)l=a[r],!Ni.call(e,l)&&l!==n&&Ra(e,l,{get:(s=>t[s]).bind(null,l),enumerable:!(o=Ei(t,l))||o.enumerable});return e},ut=(e,t,n)=>(n=e!=null?fi(Gi(e)):{},Wi(t||!e||!e.__esModule?Ra(n,"default",{value:e,enumerable:!0}):n,e));let to=require("node:path"),Si=require("node:fs"),vi=require("node:os"),Me=require("node:zlib");Me=ut(Me);let Bt=require("node:util"),nn=require("node:http");nn=ut(nn);let on=require("node:https");on=ut(on);let be=require("node:http2");be=ut(be);let Xi=require("node:fs/promises");var Ct=ke((e=>{var t=class extends Error{constructor(o,a,r){super(r),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=a,this.exitCode=o,this.nestedError=void 0}},n=class extends t{constructor(o){super(1,"commander.invalidArgument",o),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),Zn=ke((e=>{var{InvalidArgumentError:t}=Ct(),n=class{constructor(a,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,a[0]){case"<":this.required=!0,this._name=a.slice(1,-1);break;case"[":this.required=!1,this._name=a.slice(1,-1);break;default:this.required=!0,this._name=a;break}this._name.endsWith("...")&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(a,r){return r===this.defaultValue||!Array.isArray(r)?[a]:(r.push(a),r)}default(a,r){return this.defaultValue=a,this.defaultValueDescription=r,this}argParser(a){return this.parseArg=a,this}choices(a){return this.argChoices=a.slice(),this.parseArg=(r,i)=>{if(!this.argChoices.includes(r))throw new t(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(r,i):r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function o(a){const r=a.name()+(a.variadic===!0?"...":"");return a.required?"<"+r+">":"["+r+"]"}e.Argument=n,e.humanReadableArgName=o})),fa=ke((e=>{var{humanReadableArgName:t}=Zn(),n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(a){this.helpWidth=this.helpWidth??a.helpWidth??80}visibleCommands(a){const r=a.commands.filter(l=>!l._hidden),i=a._getHelpCommand();return i&&!i._hidden&&r.push(i),this.sortSubcommands&&r.sort((l,s)=>l.name().localeCompare(s.name())),r}compareOptions(a,r){const i=l=>l.short?l.short.replace(/^-/,""):l.long.replace(/^--/,"");return i(a).localeCompare(i(r))}visibleOptions(a){const r=a.options.filter(l=>!l.hidden),i=a._getHelpOption();if(i&&!i.hidden){const l=i.short&&a._findOption(i.short),s=i.long&&a._findOption(i.long);!l&&!s?r.push(i):i.long&&!s?r.push(a.createOption(i.long,i.description)):i.short&&!l&&r.push(a.createOption(i.short,i.description))}return this.sortOptions&&r.sort(this.compareOptions),r}visibleGlobalOptions(a){if(!this.showGlobalOptions)return[];const r=[];for(let i=a.parent;i;i=i.parent){const l=i.options.filter(s=>!s.hidden);r.push(...l)}return this.sortOptions&&r.sort(this.compareOptions),r}visibleArguments(a){return a._argsDescription&&a.registeredArguments.forEach(r=>{r.description=r.description||a._argsDescription[r.name()]||""}),a.registeredArguments.find(r=>r.description)?a.registeredArguments:[]}subcommandTerm(a){const r=a.registeredArguments.map(i=>t(i)).join(" ");return a._name+(a._aliases[0]?"|"+a._aliases[0]:"")+(a.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(a){return a.flags}argumentTerm(a){return a.name()}longestSubcommandTermLength(a,r){return r.visibleCommands(a).reduce((i,l)=>Math.max(i,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(l)))),0)}longestOptionTermLength(a,r){return r.visibleOptions(a).reduce((i,l)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(l)))),0)}longestGlobalOptionTermLength(a,r){return r.visibleGlobalOptions(a).reduce((i,l)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(l)))),0)}longestArgumentTermLength(a,r){return r.visibleArguments(a).reduce((i,l)=>Math.max(i,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(l)))),0)}commandUsage(a){let r=a._name;a._aliases[0]&&(r=r+"|"+a._aliases[0]);let i="";for(let l=a.parent;l;l=l.parent)i=l.name()+" "+i;return i+r+" "+a.usage()}commandDescription(a){return a.description()}subcommandDescription(a){return a.summary()||a.description()}optionDescription(a){const r=[];if(a.argChoices&&r.push(`choices: ${a.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),a.defaultValue!==void 0&&(a.required||a.optional||a.isBoolean()&&typeof a.defaultValue=="boolean")&&r.push(`default: ${a.defaultValueDescription||JSON.stringify(a.defaultValue)}`),a.presetArg!==void 0&&a.optional&&r.push(`preset: ${JSON.stringify(a.presetArg)}`),a.envVar!==void 0&&r.push(`env: ${a.envVar}`),r.length>0){const i=`(${r.join(", ")})`;return a.description?`${a.description} ${i}`:i}return a.description}argumentDescription(a){const r=[];if(a.argChoices&&r.push(`choices: ${a.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),a.defaultValue!==void 0&&r.push(`default: ${a.defaultValueDescription||JSON.stringify(a.defaultValue)}`),r.length>0){const i=`(${r.join(", ")})`;return a.description?`${a.description} ${i}`:i}return a.description}formatItemList(a,r,i){return r.length===0?[]:[i.styleTitle(a),...r,""]}groupItems(a,r,i){const l=new Map;return a.forEach(s=>{const c=i(s);l.has(c)||l.set(c,[])}),r.forEach(s=>{const c=i(s);l.has(c)||l.set(c,[]),l.get(c).push(s)}),l}formatHelp(a,r){const i=r.padWidth(a,r),l=r.helpWidth??80;function s(R,Z){return r.formatItem(R,i,Z,r)}let c=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(a))}`,""];const m=r.commandDescription(a);m.length>0&&(c=c.concat([r.boxWrap(r.styleCommandDescription(m),l),""]));const A=r.visibleArguments(a).map(R=>s(r.styleArgumentTerm(r.argumentTerm(R)),r.styleArgumentDescription(r.argumentDescription(R))));if(c=c.concat(this.formatItemList("Arguments:",A,r)),this.groupItems(a.options,r.visibleOptions(a),R=>R.helpGroupHeading??"Options:").forEach((R,Z)=>{const V=R.map(N=>s(r.styleOptionTerm(r.optionTerm(N)),r.styleOptionDescription(r.optionDescription(N))));c=c.concat(this.formatItemList(Z,V,r))}),r.showGlobalOptions){const R=r.visibleGlobalOptions(a).map(Z=>s(r.styleOptionTerm(r.optionTerm(Z)),r.styleOptionDescription(r.optionDescription(Z))));c=c.concat(this.formatItemList("Global Options:",R,r))}return this.groupItems(a.commands,r.visibleCommands(a),R=>R.helpGroup()||"Commands:").forEach((R,Z)=>{const V=R.map(N=>s(r.styleSubcommandTerm(r.subcommandTerm(N)),r.styleSubcommandDescription(r.subcommandDescription(N))));c=c.concat(this.formatItemList(Z,V,r))}),c.join(`
2
- `)}displayWidth(a){return o(a).length}styleTitle(a){return a}styleUsage(a){return a.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r==="[command]"?this.styleSubcommandText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleCommandText(r)).join(" ")}styleCommandDescription(a){return this.styleDescriptionText(a)}styleOptionDescription(a){return this.styleDescriptionText(a)}styleSubcommandDescription(a){return this.styleDescriptionText(a)}styleArgumentDescription(a){return this.styleDescriptionText(a)}styleDescriptionText(a){return a}styleOptionTerm(a){return this.styleOptionText(a)}styleSubcommandTerm(a){return a.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleSubcommandText(r)).join(" ")}styleArgumentTerm(a){return this.styleArgumentText(a)}styleOptionText(a){return a}styleArgumentText(a){return a}styleSubcommandText(a){return a}styleCommandText(a){return a}padWidth(a,r){return Math.max(r.longestOptionTermLength(a,r),r.longestGlobalOptionTermLength(a,r),r.longestSubcommandTermLength(a,r),r.longestArgumentTermLength(a,r))}preformatted(a){return/\n[^\S\r\n]/.test(a)}formatItem(a,r,i,l){const c=" ".repeat(2);if(!i)return c+a;const m=a.padEnd(r+a.length-l.displayWidth(a)),A=2,R=(this.helpWidth??80)-r-A-2;let Z;return R<this.minWidthToWrap||l.preformatted(i)?Z=i:Z=l.boxWrap(i,R).replace(/\n/g,`
3
- `+" ".repeat(r+A)),c+m+" ".repeat(A)+Z.replace(/\n/g,`
4
- ${c}`)}boxWrap(a,r){if(r<this.minWidthToWrap)return a;const i=a.split(/\r\n|\n/),l=/[\s]*[^\s]+/g,s=[];return i.forEach(c=>{const m=c.match(l);if(m===null){s.push("");return}let A=[m.shift()],R=this.displayWidth(A[0]);m.forEach(Z=>{const V=this.displayWidth(Z);if(R+V<=r){A.push(Z),R+=V;return}s.push(A.join(""));const N=Z.trimStart();A=[N],R=this.displayWidth(N)}),s.push(A.join(""))}),s.join(`
5
- `)}};function o(a){return a.replace(/\x1b\[\d*(;\d*)*m/g,"")}e.Help=n,e.stripColor=o})),Ea=ke((e=>{var{InvalidArgumentError:t}=Ct(),n=class{constructor(i,l){this.flags=i,this.description=l||"",this.required=i.includes("<"),this.optional=i.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(i),this.mandatory=!1;const s=r(i);this.short=s.shortFlag,this.long=s.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(i,l){return this.defaultValue=i,this.defaultValueDescription=l,this}preset(i){return this.presetArg=i,this}conflicts(i){return this.conflictsWith=this.conflictsWith.concat(i),this}implies(i){let l=i;return typeof i=="string"&&(l={[i]:!0}),this.implied=Object.assign(this.implied||{},l),this}env(i){return this.envVar=i,this}argParser(i){return this.parseArg=i,this}makeOptionMandatory(i=!0){return this.mandatory=!!i,this}hideHelp(i=!0){return this.hidden=!!i,this}_collectValue(i,l){return l===this.defaultValue||!Array.isArray(l)?[i]:(l.push(i),l)}choices(i){return this.argChoices=i.slice(),this.parseArg=(l,s)=>{if(!this.argChoices.includes(l))throw new t(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(l,s):l},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return this.negate?a(this.name().replace(/^no-/,"")):a(this.name())}helpGroup(i){return this.helpGroupHeading=i,this}is(i){return this.short===i||this.long===i}isBoolean(){return!this.required&&!this.optional&&!this.negate}},o=class{constructor(i){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,i.forEach(l=>{l.negate?this.negativeOptions.set(l.attributeName(),l):this.positiveOptions.set(l.attributeName(),l)}),this.negativeOptions.forEach((l,s)=>{this.positiveOptions.has(s)&&this.dualOptions.add(s)})}valueFromOption(i,l){const s=l.attributeName();if(!this.dualOptions.has(s))return!0;const c=this.negativeOptions.get(s).presetArg,m=c!==void 0?c:!1;return l.negate===(m===i)}};function a(i){return i.split("-").reduce((l,s)=>l+s[0].toUpperCase()+s.slice(1))}function r(i){let l,s;const c=/^-[^-]$/,m=/^--[^-]/,A=i.split(/[ |,]+/).concat("guard");if(c.test(A[0])&&(l=A.shift()),m.test(A[0])&&(s=A.shift()),!l&&c.test(A[0])&&(l=A.shift()),!l&&m.test(A[0])&&(l=s,s=A.shift()),A[0].startsWith("-")){const R=A[0],Z=`option creation failed due to '${R}' in option flags '${i}'`;throw/^-[^-][^-]/.test(R)?new Error(`${Z}
1
+ var Wi=Object.create,Ra=Object.defineProperty,Si=Object.getOwnPropertyDescriptor,vi=Object.getOwnPropertyNames,Xi=Object.getPrototypeOf,Yi=Object.prototype.hasOwnProperty,xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ii=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(var a=vi(t),r=0,i=a.length,s;r<i;r++)s=a[r],!Yi.call(e,s)&&s!==n&&Ra(e,s,{get:(l=>t[l]).bind(null,s),enumerable:!(o=Si(t,s))||o.enumerable});return e},dt=(e,t,n)=>(n=e!=null?Wi(Xi(e)):{},Ii(t||!e||!e.__esModule?Ra(n,"default",{value:e,enumerable:!0}):n,e));let oo=require("node:path"),yi=require("node:fs"),Bi=require("node:os"),Me=require("node:zlib");Me=dt(Me);let Bt=require("node:util"),an=require("node:http");an=dt(an);let rn=require("node:https");rn=dt(rn);let be=require("node:http2");be=dt(be);let Ci=require("node:fs/promises");var Ct=xe((e=>{var t=class extends Error{constructor(o,a,r){super(r),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=a,this.exitCode=o,this.nestedError=void 0}},n=class extends t{constructor(o){super(1,"commander.invalidArgument",o),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),Rn=xe((e=>{var{InvalidArgumentError:t}=Ct(),n=class{constructor(a,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,a[0]){case"<":this.required=!0,this._name=a.slice(1,-1);break;case"[":this.required=!1,this._name=a.slice(1,-1);break;default:this.required=!0,this._name=a;break}this._name.endsWith("...")&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(a,r){return r===this.defaultValue||!Array.isArray(r)?[a]:(r.push(a),r)}default(a,r){return this.defaultValue=a,this.defaultValueDescription=r,this}argParser(a){return this.parseArg=a,this}choices(a){return this.argChoices=a.slice(),this.parseArg=(r,i)=>{if(!this.argChoices.includes(r))throw new t(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(r,i):r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function o(a){const r=a.name()+(a.variadic===!0?"...":"");return a.required?"<"+r+">":"["+r+"]"}e.Argument=n,e.humanReadableArgName=o})),Ea=xe((e=>{var{humanReadableArgName:t}=Rn(),n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(a){this.helpWidth=this.helpWidth??a.helpWidth??80}visibleCommands(a){const r=a.commands.filter(s=>!s._hidden),i=a._getHelpCommand();return i&&!i._hidden&&r.push(i),this.sortSubcommands&&r.sort((s,l)=>s.name().localeCompare(l.name())),r}compareOptions(a,r){const i=s=>s.short?s.short.replace(/^-/,""):s.long.replace(/^--/,"");return i(a).localeCompare(i(r))}visibleOptions(a){const r=a.options.filter(s=>!s.hidden),i=a._getHelpOption();if(i&&!i.hidden){const s=i.short&&a._findOption(i.short),l=i.long&&a._findOption(i.long);!s&&!l?r.push(i):i.long&&!l?r.push(a.createOption(i.long,i.description)):i.short&&!s&&r.push(a.createOption(i.short,i.description))}return this.sortOptions&&r.sort(this.compareOptions),r}visibleGlobalOptions(a){if(!this.showGlobalOptions)return[];const r=[];for(let i=a.parent;i;i=i.parent){const s=i.options.filter(l=>!l.hidden);r.push(...s)}return this.sortOptions&&r.sort(this.compareOptions),r}visibleArguments(a){return a._argsDescription&&a.registeredArguments.forEach(r=>{r.description=r.description||a._argsDescription[r.name()]||""}),a.registeredArguments.find(r=>r.description)?a.registeredArguments:[]}subcommandTerm(a){const r=a.registeredArguments.map(i=>t(i)).join(" ");return a._name+(a._aliases[0]?"|"+a._aliases[0]:"")+(a.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(a){return a.flags}argumentTerm(a){return a.name()}longestSubcommandTermLength(a,r){return r.visibleCommands(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(s)))),0)}longestOptionTermLength(a,r){return r.visibleOptions(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(s)))),0)}longestGlobalOptionTermLength(a,r){return r.visibleGlobalOptions(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(s)))),0)}longestArgumentTermLength(a,r){return r.visibleArguments(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(s)))),0)}commandUsage(a){let r=a._name;a._aliases[0]&&(r=r+"|"+a._aliases[0]);let i="";for(let s=a.parent;s;s=s.parent)i=s.name()+" "+i;return i+r+" "+a.usage()}commandDescription(a){return a.description()}subcommandDescription(a){return a.summary()||a.description()}optionDescription(a){const r=[];if(a.argChoices&&r.push(`choices: ${a.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),a.defaultValue!==void 0&&(a.required||a.optional||a.isBoolean()&&typeof a.defaultValue=="boolean")&&r.push(`default: ${a.defaultValueDescription||JSON.stringify(a.defaultValue)}`),a.presetArg!==void 0&&a.optional&&r.push(`preset: ${JSON.stringify(a.presetArg)}`),a.envVar!==void 0&&r.push(`env: ${a.envVar}`),r.length>0){const i=`(${r.join(", ")})`;return a.description?`${a.description} ${i}`:i}return a.description}argumentDescription(a){const r=[];if(a.argChoices&&r.push(`choices: ${a.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),a.defaultValue!==void 0&&r.push(`default: ${a.defaultValueDescription||JSON.stringify(a.defaultValue)}`),r.length>0){const i=`(${r.join(", ")})`;return a.description?`${a.description} ${i}`:i}return a.description}formatItemList(a,r,i){return r.length===0?[]:[i.styleTitle(a),...r,""]}groupItems(a,r,i){const s=new Map;return a.forEach(l=>{const c=i(l);s.has(c)||s.set(c,[])}),r.forEach(l=>{const c=i(l);s.has(c)||s.set(c,[]),s.get(c).push(l)}),s}formatHelp(a,r){const i=r.padWidth(a,r),s=r.helpWidth??80;function l(f,Z){return r.formatItem(f,i,Z,r)}let c=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(a))}`,""];const d=r.commandDescription(a);d.length>0&&(c=c.concat([r.boxWrap(r.styleCommandDescription(d),s),""]));const h=r.visibleArguments(a).map(f=>l(r.styleArgumentTerm(r.argumentTerm(f)),r.styleArgumentDescription(r.argumentDescription(f))));if(c=c.concat(this.formatItemList("Arguments:",h,r)),this.groupItems(a.options,r.visibleOptions(a),f=>f.helpGroupHeading??"Options:").forEach((f,Z)=>{const V=f.map(N=>l(r.styleOptionTerm(r.optionTerm(N)),r.styleOptionDescription(r.optionDescription(N))));c=c.concat(this.formatItemList(Z,V,r))}),r.showGlobalOptions){const f=r.visibleGlobalOptions(a).map(Z=>l(r.styleOptionTerm(r.optionTerm(Z)),r.styleOptionDescription(r.optionDescription(Z))));c=c.concat(this.formatItemList("Global Options:",f,r))}return this.groupItems(a.commands,r.visibleCommands(a),f=>f.helpGroup()||"Commands:").forEach((f,Z)=>{const V=f.map(N=>l(r.styleSubcommandTerm(r.subcommandTerm(N)),r.styleSubcommandDescription(r.subcommandDescription(N))));c=c.concat(this.formatItemList(Z,V,r))}),c.join(`
2
+ `)}displayWidth(a){return o(a).length}styleTitle(a){return a}styleUsage(a){return a.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r==="[command]"?this.styleSubcommandText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleCommandText(r)).join(" ")}styleCommandDescription(a){return this.styleDescriptionText(a)}styleOptionDescription(a){return this.styleDescriptionText(a)}styleSubcommandDescription(a){return this.styleDescriptionText(a)}styleArgumentDescription(a){return this.styleDescriptionText(a)}styleDescriptionText(a){return a}styleOptionTerm(a){return this.styleOptionText(a)}styleSubcommandTerm(a){return a.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleSubcommandText(r)).join(" ")}styleArgumentTerm(a){return this.styleArgumentText(a)}styleOptionText(a){return a}styleArgumentText(a){return a}styleSubcommandText(a){return a}styleCommandText(a){return a}padWidth(a,r){return Math.max(r.longestOptionTermLength(a,r),r.longestGlobalOptionTermLength(a,r),r.longestSubcommandTermLength(a,r),r.longestArgumentTermLength(a,r))}preformatted(a){return/\n[^\S\r\n]/.test(a)}formatItem(a,r,i,s){const c=" ".repeat(2);if(!i)return c+a;const d=a.padEnd(r+a.length-s.displayWidth(a)),h=2,f=(this.helpWidth??80)-r-h-2;let Z;return f<this.minWidthToWrap||s.preformatted(i)?Z=i:Z=s.boxWrap(i,f).replace(/\n/g,`
3
+ `+" ".repeat(r+h)),c+d+" ".repeat(h)+Z.replace(/\n/g,`
4
+ ${c}`)}boxWrap(a,r){if(r<this.minWidthToWrap)return a;const i=a.split(/\r\n|\n/),s=/[\s]*[^\s]+/g,l=[];return i.forEach(c=>{const d=c.match(s);if(d===null){l.push("");return}let h=[d.shift()],f=this.displayWidth(h[0]);d.forEach(Z=>{const V=this.displayWidth(Z);if(f+V<=r){h.push(Z),f+=V;return}l.push(h.join(""));const N=Z.trimStart();h=[N],f=this.displayWidth(N)}),l.push(h.join(""))}),l.join(`
5
+ `)}};function o(a){return a.replace(/\x1b\[\d*(;\d*)*m/g,"")}e.Help=n,e.stripColor=o})),Va=xe((e=>{var{InvalidArgumentError:t}=Ct(),n=class{constructor(i,s){this.flags=i,this.description=s||"",this.required=i.includes("<"),this.optional=i.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(i),this.mandatory=!1;const l=r(i);this.short=l.shortFlag,this.long=l.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(i,s){return this.defaultValue=i,this.defaultValueDescription=s,this}preset(i){return this.presetArg=i,this}conflicts(i){return this.conflictsWith=this.conflictsWith.concat(i),this}implies(i){let s=i;return typeof i=="string"&&(s={[i]:!0}),this.implied=Object.assign(this.implied||{},s),this}env(i){return this.envVar=i,this}argParser(i){return this.parseArg=i,this}makeOptionMandatory(i=!0){return this.mandatory=!!i,this}hideHelp(i=!0){return this.hidden=!!i,this}_collectValue(i,s){return s===this.defaultValue||!Array.isArray(s)?[i]:(s.push(i),s)}choices(i){return this.argChoices=i.slice(),this.parseArg=(s,l)=>{if(!this.argChoices.includes(s))throw new t(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(s,l):s},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return this.negate?a(this.name().replace(/^no-/,"")):a(this.name())}helpGroup(i){return this.helpGroupHeading=i,this}is(i){return this.short===i||this.long===i}isBoolean(){return!this.required&&!this.optional&&!this.negate}},o=class{constructor(i){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,i.forEach(s=>{s.negate?this.negativeOptions.set(s.attributeName(),s):this.positiveOptions.set(s.attributeName(),s)}),this.negativeOptions.forEach((s,l)=>{this.positiveOptions.has(l)&&this.dualOptions.add(l)})}valueFromOption(i,s){const l=s.attributeName();if(!this.dualOptions.has(l))return!0;const c=this.negativeOptions.get(l).presetArg,d=c!==void 0?c:!1;return s.negate===(d===i)}};function a(i){return i.split("-").reduce((s,l)=>s+l[0].toUpperCase()+l.slice(1))}function r(i){let s,l;const c=/^-[^-]$/,d=/^--[^-]/,h=i.split(/[ |,]+/).concat("guard");if(c.test(h[0])&&(s=h.shift()),d.test(h[0])&&(l=h.shift()),!s&&c.test(h[0])&&(s=h.shift()),!s&&d.test(h[0])&&(s=l,l=h.shift()),h[0].startsWith("-")){const f=h[0],Z=`option creation failed due to '${f}' in option flags '${i}'`;throw/^-[^-][^-]/.test(f)?new Error(`${Z}
6
6
  - a short flag is a single dash and a single character
7
7
  - either use a single dash and a single character (for a short flag)
8
- - or use a double dash for a long option (and can have two, like '--ws, --workspace')`):c.test(R)?new Error(`${Z}
9
- - too many short flags`):m.test(R)?new Error(`${Z}
8
+ - or use a double dash for a long option (and can have two, like '--ws, --workspace')`):c.test(f)?new Error(`${Z}
9
+ - too many short flags`):d.test(f)?new Error(`${Z}
10
10
  - too many long flags`):new Error(`${Z}
11
- - unrecognised flag format`)}if(l===void 0&&s===void 0)throw new Error(`option creation failed due to no flags found in '${i}'.`);return{shortFlag:l,longFlag:s}}e.Option=n,e.DualOptions=o})),Yi=ke((e=>{var t=3;function n(a,r){if(Math.abs(a.length-r.length)>t)return Math.max(a.length,r.length);const i=[];for(let l=0;l<=a.length;l++)i[l]=[l];for(let l=0;l<=r.length;l++)i[0][l]=l;for(let l=1;l<=r.length;l++)for(let s=1;s<=a.length;s++){let c=1;a[s-1]===r[l-1]?c=0:c=1,i[s][l]=Math.min(i[s-1][l]+1,i[s][l-1]+1,i[s-1][l-1]+c),s>1&&l>1&&a[s-1]===r[l-2]&&a[s-2]===r[l-1]&&(i[s][l]=Math.min(i[s][l],i[s-2][l-2]+1))}return i[a.length][r.length]}function o(a,r){if(!r||r.length===0)return"";r=Array.from(new Set(r));const i=a.startsWith("--");i&&(a=a.slice(2),r=r.map(m=>m.slice(2)));let l=[],s=t;const c=.4;return r.forEach(m=>{if(m.length<=1)return;const A=n(a,m),R=Math.max(a.length,m.length);(R-A)/R>c&&(A<s?(s=A,l=[m]):A===s&&l.push(m))}),l.sort((m,A)=>m.localeCompare(A)),i&&(l=l.map(m=>`--${m}`)),l.length>1?`
12
- (Did you mean one of ${l.join(", ")}?)`:l.length===1?`
13
- (Did you mean ${l[0]}?)`:""}e.suggestSimilar=o})),Ii=ke((e=>{var t=require("node:events").EventEmitter,n=require("node:child_process"),o=require("node:path"),a=require("node:fs"),r=require("node:process"),{Argument:i,humanReadableArgName:l}=Zn(),{CommanderError:s}=Ct(),{Help:c,stripColor:m}=fa(),{Option:A,DualOptions:R}=Ea(),{suggestSimilar:Z}=Yi(),V=class Va extends t{constructor(u){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=u||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:d=>r.stdout.write(d),writeErr:d=>r.stderr.write(d),outputError:(d,g)=>g(d),getOutHelpWidth:()=>r.stdout.isTTY?r.stdout.columns:void 0,getErrHelpWidth:()=>r.stderr.isTTY?r.stderr.columns:void 0,getOutHasColors:()=>B()??(r.stdout.isTTY&&r.stdout.hasColors?.()),getErrHasColors:()=>B()??(r.stderr.isTTY&&r.stderr.hasColors?.()),stripColor:d=>m(d)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(u){return this._outputConfiguration=u._outputConfiguration,this._helpOption=u._helpOption,this._helpCommand=u._helpCommand,this._helpConfiguration=u._helpConfiguration,this._exitCallback=u._exitCallback,this._storeOptionsAsProperties=u._storeOptionsAsProperties,this._combineFlagAndOptionalValue=u._combineFlagAndOptionalValue,this._allowExcessArguments=u._allowExcessArguments,this._enablePositionalOptions=u._enablePositionalOptions,this._showHelpAfterError=u._showHelpAfterError,this._showSuggestionAfterError=u._showSuggestionAfterError,this}_getCommandAndAncestors(){const u=[];for(let d=this;d;d=d.parent)u.push(d);return u}command(u,d,g){let h=d,p=g;typeof h=="object"&&h!==null&&(p=h,h=null),p=p||{};const[,E,v]=u.match(/([^ ]+) *(.*)/),w=this.createCommand(E);return h&&(w.description(h),w._executableHandler=!0),p.isDefault&&(this._defaultCommandName=w._name),w._hidden=!!(p.noHelp||p.hidden),w._executableFile=p.executableFile||null,v&&w.arguments(v),this._registerCommand(w),w.parent=this,w.copyInheritedSettings(this),h?this:w}createCommand(u){return new Va(u)}createHelp(){return Object.assign(new c,this.configureHelp())}configureHelp(u){return u===void 0?this._helpConfiguration:(this._helpConfiguration=u,this)}configureOutput(u){return u===void 0?this._outputConfiguration:(this._outputConfiguration={...this._outputConfiguration,...u},this)}showHelpAfterError(u=!0){return typeof u!="string"&&(u=!!u),this._showHelpAfterError=u,this}showSuggestionAfterError(u=!0){return this._showSuggestionAfterError=!!u,this}addCommand(u,d){if(!u._name)throw new Error(`Command passed to .addCommand() must have a name
14
- - specify the name in Command constructor or using .name()`);return d=d||{},d.isDefault&&(this._defaultCommandName=u._name),(d.noHelp||d.hidden)&&(u._hidden=!0),this._registerCommand(u),u.parent=this,u._checkForBrokenPassThrough(),this}createArgument(u,d){return new i(u,d)}argument(u,d,g,h){const p=this.createArgument(u,d);return typeof g=="function"?p.default(h).argParser(g):p.default(g),this.addArgument(p),this}arguments(u){return u.trim().split(/ +/).forEach(d=>{this.argument(d)}),this}addArgument(u){const d=this.registeredArguments.slice(-1)[0];if(d?.variadic)throw new Error(`only the last argument can be variadic '${d.name()}'`);if(u.required&&u.defaultValue!==void 0&&u.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${u.name()}'`);return this.registeredArguments.push(u),this}helpCommand(u,d){if(typeof u=="boolean")return this._addImplicitHelpCommand=u,u&&this._defaultCommandGroup&&this._initCommandGroup(this._getHelpCommand()),this;const[,g,h]=(u??"help [command]").match(/([^ ]+) *(.*)/),p=d??"display help for command",E=this.createCommand(g);return E.helpOption(!1),h&&E.arguments(h),p&&E.description(p),this._addImplicitHelpCommand=!0,this._helpCommand=E,(u||d)&&this._initCommandGroup(E),this}addHelpCommand(u,d){return typeof u!="object"?(this.helpCommand(u,d),this):(this._addImplicitHelpCommand=!0,this._helpCommand=u,this._initCommandGroup(u),this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(u,d){const g=["preSubcommand","preAction","postAction"];if(!g.includes(u))throw new Error(`Unexpected value for event passed to hook : '${u}'.
15
- Expecting one of '${g.join("', '")}'`);return this._lifeCycleHooks[u]?this._lifeCycleHooks[u].push(d):this._lifeCycleHooks[u]=[d],this}exitOverride(u){return u?this._exitCallback=u:this._exitCallback=d=>{if(d.code!=="commander.executeSubCommandAsync")throw d},this}_exit(u,d,g){this._exitCallback&&this._exitCallback(new s(u,d,g)),r.exit(u)}action(u){const d=g=>{const h=this.registeredArguments.length,p=g.slice(0,h);return this._storeOptionsAsProperties?p[h]=this:p[h]=this.opts(),p.push(this),u.apply(this,p)};return this._actionHandler=d,this}createOption(u,d){return new A(u,d)}_callParseArg(u,d,g,h){try{return u.parseArg(d,g)}catch(p){if(p.code==="commander.invalidArgument"){const E=`${h} ${p.message}`;this.error(E,{exitCode:p.exitCode,code:p.code})}throw p}}_registerOption(u){const d=u.short&&this._findOption(u.short)||u.long&&this._findOption(u.long);if(d){const g=u.long&&this._findOption(u.long)?u.long:u.short;throw new Error(`Cannot add option '${u.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${g}'
16
- - already used by option '${d.flags}'`)}this._initOptionGroup(u),this.options.push(u)}_registerCommand(u){const d=h=>[h.name()].concat(h.aliases()),g=d(u).find(h=>this._findCommand(h));if(g){const h=d(this._findCommand(g)).join("|"),p=d(u).join("|");throw new Error(`cannot add command '${p}' as already have command '${h}'`)}this._initCommandGroup(u),this.commands.push(u)}addOption(u){this._registerOption(u);const d=u.name(),g=u.attributeName();if(u.negate){const p=u.long.replace(/^--no-/,"--");this._findOption(p)||this.setOptionValueWithSource(g,u.defaultValue===void 0?!0:u.defaultValue,"default")}else u.defaultValue!==void 0&&this.setOptionValueWithSource(g,u.defaultValue,"default");const h=(p,E,v)=>{p==null&&u.presetArg!==void 0&&(p=u.presetArg);const w=this.getOptionValue(g);p!==null&&u.parseArg?p=this._callParseArg(u,p,w,E):p!==null&&u.variadic&&(p=u._collectValue(p,w)),p==null&&(u.negate?p=!1:u.isBoolean()||u.optional?p=!0:p=""),this.setOptionValueWithSource(g,p,v)};return this.on("option:"+d,p=>{h(p,`error: option '${u.flags}' argument '${p}' is invalid.`,"cli")}),u.envVar&&this.on("optionEnv:"+d,p=>{h(p,`error: option '${u.flags}' value '${p}' from env '${u.envVar}' is invalid.`,"env")}),this}_optionEx(u,d,g,h,p){if(typeof d=="object"&&d instanceof A)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");const E=this.createOption(d,g);if(E.makeOptionMandatory(!!u.mandatory),typeof h=="function")E.default(p).argParser(h);else if(h instanceof RegExp){const v=h;h=(w,H)=>{const W=v.exec(w);return W?W[0]:H},E.default(p).argParser(h)}else E.default(h);return this.addOption(E)}option(u,d,g,h){return this._optionEx({},u,d,g,h)}requiredOption(u,d,g,h){return this._optionEx({mandatory:!0},u,d,g,h)}combineFlagAndOptionalValue(u=!0){return this._combineFlagAndOptionalValue=!!u,this}allowUnknownOption(u=!0){return this._allowUnknownOption=!!u,this}allowExcessArguments(u=!0){return this._allowExcessArguments=!!u,this}enablePositionalOptions(u=!0){return this._enablePositionalOptions=!!u,this}passThroughOptions(u=!0){return this._passThroughOptions=!!u,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(u=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!u,this}getOptionValue(u){return this._storeOptionsAsProperties?this[u]:this._optionValues[u]}setOptionValue(u,d){return this.setOptionValueWithSource(u,d,void 0)}setOptionValueWithSource(u,d,g){return this._storeOptionsAsProperties?this[u]=d:this._optionValues[u]=d,this._optionValueSources[u]=g,this}getOptionValueSource(u){return this._optionValueSources[u]}getOptionValueSourceWithGlobals(u){let d;return this._getCommandAndAncestors().forEach(g=>{g.getOptionValueSource(u)!==void 0&&(d=g.getOptionValueSource(u))}),d}_prepareUserArgs(u,d){if(u!==void 0&&!Array.isArray(u))throw new Error("first parameter to parse must be array or undefined");if(d=d||{},u===void 0&&d.from===void 0){r.versions?.electron&&(d.from="electron");const h=r.execArgv??[];(h.includes("-e")||h.includes("--eval")||h.includes("-p")||h.includes("--print"))&&(d.from="eval")}u===void 0&&(u=r.argv),this.rawArgs=u.slice();let g;switch(d.from){case void 0:case"node":this._scriptPath=u[1],g=u.slice(2);break;case"electron":r.defaultApp?(this._scriptPath=u[1],g=u.slice(2)):g=u.slice(1);break;case"user":g=u.slice(0);break;case"eval":g=u.slice(1);break;default:throw new Error(`unexpected parse option { from: '${d.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",g}parse(u,d){this._prepareForParse();const g=this._prepareUserArgs(u,d);return this._parseCommand([],g),this}async parseAsync(u,d){this._prepareForParse();const g=this._prepareUserArgs(u,d);return await this._parseCommand([],g),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
17
- - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(u,d,g){if(a.existsSync(u))return;const h=`'${u}' does not exist
18
- - if '${g}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
11
+ - unrecognised flag format`)}if(s===void 0&&l===void 0)throw new Error(`option creation failed due to no flags found in '${i}'.`);return{shortFlag:s,longFlag:l}}e.Option=n,e.DualOptions=o})),Fi=xe((e=>{var t=3;function n(a,r){if(Math.abs(a.length-r.length)>t)return Math.max(a.length,r.length);const i=[];for(let s=0;s<=a.length;s++)i[s]=[s];for(let s=0;s<=r.length;s++)i[0][s]=s;for(let s=1;s<=r.length;s++)for(let l=1;l<=a.length;l++){let c=1;a[l-1]===r[s-1]?c=0:c=1,i[l][s]=Math.min(i[l-1][s]+1,i[l][s-1]+1,i[l-1][s-1]+c),l>1&&s>1&&a[l-1]===r[s-2]&&a[l-2]===r[s-1]&&(i[l][s]=Math.min(i[l][s],i[l-2][s-2]+1))}return i[a.length][r.length]}function o(a,r){if(!r||r.length===0)return"";r=Array.from(new Set(r));const i=a.startsWith("--");i&&(a=a.slice(2),r=r.map(d=>d.slice(2)));let s=[],l=t;const c=.4;return r.forEach(d=>{if(d.length<=1)return;const h=n(a,d),f=Math.max(a.length,d.length);(f-h)/f>c&&(h<l?(l=h,s=[d]):h===l&&s.push(d))}),s.sort((d,h)=>d.localeCompare(h)),i&&(s=s.map(d=>`--${d}`)),s.length>1?`
12
+ (Did you mean one of ${s.join(", ")}?)`:s.length===1?`
13
+ (Did you mean ${s[0]}?)`:""}e.suggestSimilar=o})),wi=xe((e=>{var t=require("node:events").EventEmitter,n=require("node:child_process"),o=require("node:path"),a=require("node:fs"),r=require("node:process"),{Argument:i,humanReadableArgName:s}=Rn(),{CommanderError:l}=Ct(),{Help:c,stripColor:d}=Ea(),{Option:h,DualOptions:f}=Va(),{suggestSimilar:Z}=Fi(),V=class Ga extends t{constructor(u){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=u||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:m=>r.stdout.write(m),writeErr:m=>r.stderr.write(m),outputError:(m,p)=>p(m),getOutHelpWidth:()=>r.stdout.isTTY?r.stdout.columns:void 0,getErrHelpWidth:()=>r.stderr.isTTY?r.stderr.columns:void 0,getOutHasColors:()=>B()??(r.stdout.isTTY&&r.stdout.hasColors?.()),getErrHasColors:()=>B()??(r.stderr.isTTY&&r.stderr.hasColors?.()),stripColor:m=>d(m)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(u){return this._outputConfiguration=u._outputConfiguration,this._helpOption=u._helpOption,this._helpCommand=u._helpCommand,this._helpConfiguration=u._helpConfiguration,this._exitCallback=u._exitCallback,this._storeOptionsAsProperties=u._storeOptionsAsProperties,this._combineFlagAndOptionalValue=u._combineFlagAndOptionalValue,this._allowExcessArguments=u._allowExcessArguments,this._enablePositionalOptions=u._enablePositionalOptions,this._showHelpAfterError=u._showHelpAfterError,this._showSuggestionAfterError=u._showSuggestionAfterError,this}_getCommandAndAncestors(){const u=[];for(let m=this;m;m=m.parent)u.push(m);return u}command(u,m,p){let g=m,A=p;typeof g=="object"&&g!==null&&(A=g,g=null),A=A||{};const[,E,I]=u.match(/([^ ]+) *(.*)/),U=this.createCommand(E);return g&&(U.description(g),U._executableHandler=!0),A.isDefault&&(this._defaultCommandName=U._name),U._hidden=!!(A.noHelp||A.hidden),U._executableFile=A.executableFile||null,I&&U.arguments(I),this._registerCommand(U),U.parent=this,U.copyInheritedSettings(this),g?this:U}createCommand(u){return new Ga(u)}createHelp(){return Object.assign(new c,this.configureHelp())}configureHelp(u){return u===void 0?this._helpConfiguration:(this._helpConfiguration=u,this)}configureOutput(u){return u===void 0?this._outputConfiguration:(this._outputConfiguration={...this._outputConfiguration,...u},this)}showHelpAfterError(u=!0){return typeof u!="string"&&(u=!!u),this._showHelpAfterError=u,this}showSuggestionAfterError(u=!0){return this._showSuggestionAfterError=!!u,this}addCommand(u,m){if(!u._name)throw new Error(`Command passed to .addCommand() must have a name
14
+ - specify the name in Command constructor or using .name()`);return m=m||{},m.isDefault&&(this._defaultCommandName=u._name),(m.noHelp||m.hidden)&&(u._hidden=!0),this._registerCommand(u),u.parent=this,u._checkForBrokenPassThrough(),this}createArgument(u,m){return new i(u,m)}argument(u,m,p,g){const A=this.createArgument(u,m);return typeof p=="function"?A.default(g).argParser(p):A.default(p),this.addArgument(A),this}arguments(u){return u.trim().split(/ +/).forEach(m=>{this.argument(m)}),this}addArgument(u){const m=this.registeredArguments.slice(-1)[0];if(m?.variadic)throw new Error(`only the last argument can be variadic '${m.name()}'`);if(u.required&&u.defaultValue!==void 0&&u.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${u.name()}'`);return this.registeredArguments.push(u),this}helpCommand(u,m){if(typeof u=="boolean")return this._addImplicitHelpCommand=u,u&&this._defaultCommandGroup&&this._initCommandGroup(this._getHelpCommand()),this;const[,p,g]=(u??"help [command]").match(/([^ ]+) *(.*)/),A=m??"display help for command",E=this.createCommand(p);return E.helpOption(!1),g&&E.arguments(g),A&&E.description(A),this._addImplicitHelpCommand=!0,this._helpCommand=E,(u||m)&&this._initCommandGroup(E),this}addHelpCommand(u,m){return typeof u!="object"?(this.helpCommand(u,m),this):(this._addImplicitHelpCommand=!0,this._helpCommand=u,this._initCommandGroup(u),this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(u,m){const p=["preSubcommand","preAction","postAction"];if(!p.includes(u))throw new Error(`Unexpected value for event passed to hook : '${u}'.
15
+ Expecting one of '${p.join("', '")}'`);return this._lifeCycleHooks[u]?this._lifeCycleHooks[u].push(m):this._lifeCycleHooks[u]=[m],this}exitOverride(u){return u?this._exitCallback=u:this._exitCallback=m=>{if(m.code!=="commander.executeSubCommandAsync")throw m},this}_exit(u,m,p){this._exitCallback&&this._exitCallback(new l(u,m,p)),r.exit(u)}action(u){const m=p=>{const g=this.registeredArguments.length,A=p.slice(0,g);return this._storeOptionsAsProperties?A[g]=this:A[g]=this.opts(),A.push(this),u.apply(this,A)};return this._actionHandler=m,this}createOption(u,m){return new h(u,m)}_callParseArg(u,m,p,g){try{return u.parseArg(m,p)}catch(A){if(A.code==="commander.invalidArgument"){const E=`${g} ${A.message}`;this.error(E,{exitCode:A.exitCode,code:A.code})}throw A}}_registerOption(u){const m=u.short&&this._findOption(u.short)||u.long&&this._findOption(u.long);if(m){const p=u.long&&this._findOption(u.long)?u.long:u.short;throw new Error(`Cannot add option '${u.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${p}'
16
+ - already used by option '${m.flags}'`)}this._initOptionGroup(u),this.options.push(u)}_registerCommand(u){const m=g=>[g.name()].concat(g.aliases()),p=m(u).find(g=>this._findCommand(g));if(p){const g=m(this._findCommand(p)).join("|"),A=m(u).join("|");throw new Error(`cannot add command '${A}' as already have command '${g}'`)}this._initCommandGroup(u),this.commands.push(u)}addOption(u){this._registerOption(u);const m=u.name(),p=u.attributeName();if(u.negate){const A=u.long.replace(/^--no-/,"--");this._findOption(A)||this.setOptionValueWithSource(p,u.defaultValue===void 0?!0:u.defaultValue,"default")}else u.defaultValue!==void 0&&this.setOptionValueWithSource(p,u.defaultValue,"default");const g=(A,E,I)=>{A==null&&u.presetArg!==void 0&&(A=u.presetArg);const U=this.getOptionValue(p);A!==null&&u.parseArg?A=this._callParseArg(u,A,U,E):A!==null&&u.variadic&&(A=u._collectValue(A,U)),A==null&&(u.negate?A=!1:u.isBoolean()||u.optional?A=!0:A=""),this.setOptionValueWithSource(p,A,I)};return this.on("option:"+m,A=>{g(A,`error: option '${u.flags}' argument '${A}' is invalid.`,"cli")}),u.envVar&&this.on("optionEnv:"+m,A=>{g(A,`error: option '${u.flags}' value '${A}' from env '${u.envVar}' is invalid.`,"env")}),this}_optionEx(u,m,p,g,A){if(typeof m=="object"&&m instanceof h)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");const E=this.createOption(m,p);if(E.makeOptionMandatory(!!u.mandatory),typeof g=="function")E.default(A).argParser(g);else if(g instanceof RegExp){const I=g;g=(U,H)=>{const W=I.exec(U);return W?W[0]:H},E.default(A).argParser(g)}else E.default(g);return this.addOption(E)}option(u,m,p,g){return this._optionEx({},u,m,p,g)}requiredOption(u,m,p,g){return this._optionEx({mandatory:!0},u,m,p,g)}combineFlagAndOptionalValue(u=!0){return this._combineFlagAndOptionalValue=!!u,this}allowUnknownOption(u=!0){return this._allowUnknownOption=!!u,this}allowExcessArguments(u=!0){return this._allowExcessArguments=!!u,this}enablePositionalOptions(u=!0){return this._enablePositionalOptions=!!u,this}passThroughOptions(u=!0){return this._passThroughOptions=!!u,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(u=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!u,this}getOptionValue(u){return this._storeOptionsAsProperties?this[u]:this._optionValues[u]}setOptionValue(u,m){return this.setOptionValueWithSource(u,m,void 0)}setOptionValueWithSource(u,m,p){return this._storeOptionsAsProperties?this[u]=m:this._optionValues[u]=m,this._optionValueSources[u]=p,this}getOptionValueSource(u){return this._optionValueSources[u]}getOptionValueSourceWithGlobals(u){let m;return this._getCommandAndAncestors().forEach(p=>{p.getOptionValueSource(u)!==void 0&&(m=p.getOptionValueSource(u))}),m}_prepareUserArgs(u,m){if(u!==void 0&&!Array.isArray(u))throw new Error("first parameter to parse must be array or undefined");if(m=m||{},u===void 0&&m.from===void 0){r.versions?.electron&&(m.from="electron");const g=r.execArgv??[];(g.includes("-e")||g.includes("--eval")||g.includes("-p")||g.includes("--print"))&&(m.from="eval")}u===void 0&&(u=r.argv),this.rawArgs=u.slice();let p;switch(m.from){case void 0:case"node":this._scriptPath=u[1],p=u.slice(2);break;case"electron":r.defaultApp?(this._scriptPath=u[1],p=u.slice(2)):p=u.slice(1);break;case"user":p=u.slice(0);break;case"eval":p=u.slice(1);break;default:throw new Error(`unexpected parse option { from: '${m.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",p}parse(u,m){this._prepareForParse();const p=this._prepareUserArgs(u,m);return this._parseCommand([],p),this}async parseAsync(u,m){this._prepareForParse();const p=this._prepareUserArgs(u,m);return await this._parseCommand([],p),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
17
+ - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(u,m,p){if(a.existsSync(u))return;const g=`'${u}' does not exist
18
+ - if '${p}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
19
19
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
20
- - ${d?`searched for local subcommand relative to directory '${d}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory"}`;throw new Error(h)}_executeSubCommand(u,d){d=d.slice();let g=!1;const h=[".js",".ts",".tsx",".mjs",".cjs"];function p(W,x){const O=o.resolve(W,x);if(a.existsSync(O))return O;if(h.includes(o.extname(x)))return;const eo=h.find(Ri=>a.existsSync(`${O}${Ri}`));if(eo)return`${O}${eo}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let E=u._executableFile||`${this._name}-${u._name}`,v=this._executableDir||"";if(this._scriptPath){let W;try{W=a.realpathSync(this._scriptPath)}catch{W=this._scriptPath}v=o.resolve(o.dirname(W),v)}if(v){let W=p(v,E);if(!W&&!u._executableFile&&this._scriptPath){const x=o.basename(this._scriptPath,o.extname(this._scriptPath));x!==this._name&&(W=p(v,`${x}-${u._name}`))}E=W||E}g=h.includes(o.extname(E));let w;r.platform!=="win32"?g?(d.unshift(E),d=N(r.execArgv).concat(d),w=n.spawn(r.argv[0],d,{stdio:"inherit"})):w=n.spawn(E,d,{stdio:"inherit"}):(this._checkForMissingExecutable(E,v,u._name),d.unshift(E),d=N(r.execArgv).concat(d),w=n.spawn(r.execPath,d,{stdio:"inherit"})),w.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(W=>{r.on(W,()=>{w.killed===!1&&w.exitCode===null&&w.kill(W)})});const H=this._exitCallback;w.on("close",W=>{W=W??1,H?H(new s(W,"commander.executeSubCommandAsync","(close)")):r.exit(W)}),w.on("error",W=>{if(W.code==="ENOENT")this._checkForMissingExecutable(E,v,u._name);else if(W.code==="EACCES")throw new Error(`'${E}' not executable`);if(!H)r.exit(1);else{const x=new s(1,"commander.executeSubCommandAsync","(error)");x.nestedError=W,H(x)}}),this.runningCommand=w}_dispatchSubcommand(u,d,g){const h=this._findCommand(u);h||this.help({error:!0}),h._prepareForParse();let p;return p=this._chainOrCallSubCommandHook(p,h,"preSubcommand"),p=this._chainOrCall(p,()=>{if(h._executableHandler)this._executeSubCommand(h,d.concat(g));else return h._parseCommand(d,g)}),p}_dispatchHelpCommand(u){u||this.help();const d=this._findCommand(u);return d&&!d._executableHandler&&d.help(),this._dispatchSubcommand(u,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((u,d)=>{u.required&&this.args[d]==null&&this.missingArgument(u.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){const u=(g,h,p)=>{let E=h;if(h!==null&&g.parseArg){const v=`error: command-argument value '${h}' is invalid for argument '${g.name()}'.`;E=this._callParseArg(g,h,p,v)}return E};this._checkNumberOfArguments();const d=[];this.registeredArguments.forEach((g,h)=>{let p=g.defaultValue;g.variadic?h<this.args.length?(p=this.args.slice(h),g.parseArg&&(p=p.reduce((E,v)=>u(g,v,E),g.defaultValue))):p===void 0&&(p=[]):h<this.args.length&&(p=this.args[h],g.parseArg&&(p=u(g,p,g.defaultValue))),d[h]=p}),this.processedArgs=d}_chainOrCall(u,d){return u?.then&&typeof u.then=="function"?u.then(()=>d()):d()}_chainOrCallHooks(u,d){let g=u;const h=[];return this._getCommandAndAncestors().reverse().filter(p=>p._lifeCycleHooks[d]!==void 0).forEach(p=>{p._lifeCycleHooks[d].forEach(E=>{h.push({hookedCommand:p,callback:E})})}),d==="postAction"&&h.reverse(),h.forEach(p=>{g=this._chainOrCall(g,()=>p.callback(p.hookedCommand,this))}),g}_chainOrCallSubCommandHook(u,d,g){let h=u;return this._lifeCycleHooks[g]!==void 0&&this._lifeCycleHooks[g].forEach(p=>{h=this._chainOrCall(h,()=>p(this,d))}),h}_parseCommand(u,d){const g=this.parseOptions(d);if(this._parseOptionsEnv(),this._parseOptionsImplied(),u=u.concat(g.operands),d=g.unknown,this.args=u.concat(d),u&&this._findCommand(u[0]))return this._dispatchSubcommand(u[0],u.slice(1),d);if(this._getHelpCommand()&&u[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(u[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(d),this._dispatchSubcommand(this._defaultCommandName,u,d);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(g.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();const h=()=>{g.unknown.length>0&&this.unknownOption(g.unknown[0])},p=`command:${this.name()}`;if(this._actionHandler){h(),this._processArguments();let E;return E=this._chainOrCallHooks(E,"preAction"),E=this._chainOrCall(E,()=>this._actionHandler(this.processedArgs)),this.parent&&(E=this._chainOrCall(E,()=>{this.parent.emit(p,u,d)})),E=this._chainOrCallHooks(E,"postAction"),E}if(this.parent?.listenerCount(p))h(),this._processArguments(),this.parent.emit(p,u,d);else if(u.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",u,d);this.listenerCount("command:*")?this.emit("command:*",u,d):this.commands.length?this.unknownCommand():(h(),this._processArguments())}else this.commands.length?(h(),this.help({error:!0})):(h(),this._processArguments())}_findCommand(u){if(u)return this.commands.find(d=>d._name===u||d._aliases.includes(u))}_findOption(u){return this.options.find(d=>d.is(u))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(u=>{u.options.forEach(d=>{d.mandatory&&u.getOptionValue(d.attributeName())===void 0&&u.missingMandatoryOptionValue(d)})})}_checkForConflictingLocalOptions(){const u=this.options.filter(d=>{const g=d.attributeName();return this.getOptionValue(g)===void 0?!1:this.getOptionValueSource(g)!=="default"});u.filter(d=>d.conflictsWith.length>0).forEach(d=>{const g=u.find(h=>d.conflictsWith.includes(h.attributeName()));g&&this._conflictingOption(d,g)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(u=>{u._checkForConflictingLocalOptions()})}parseOptions(u){const d=[],g=[];let h=d;function p(W){return W.length>1&&W[0]==="-"}const E=W=>/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(W)?!this._getCommandAndAncestors().some(x=>x.options.map(O=>O.short).some(O=>/^-\d$/.test(O))):!1;let v=null,w=null,H=0;for(;H<u.length||w;){const W=w??u[H++];if(w=null,W==="--"){h===g&&h.push(W),h.push(...u.slice(H));break}if(v&&(!p(W)||E(W))){this.emit(`option:${v.name()}`,W);continue}if(v=null,p(W)){const x=this._findOption(W);if(x){if(x.required){const O=u[H++];O===void 0&&this.optionMissingArgument(x),this.emit(`option:${x.name()}`,O)}else if(x.optional){let O=null;H<u.length&&(!p(u[H])||E(u[H]))&&(O=u[H++]),this.emit(`option:${x.name()}`,O)}else this.emit(`option:${x.name()}`);v=x.variadic?x:null;continue}}if(W.length>2&&W[0]==="-"&&W[1]!=="-"){const x=this._findOption(`-${W[1]}`);if(x){x.required||x.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${x.name()}`,W.slice(2)):(this.emit(`option:${x.name()}`),w=`-${W.slice(2)}`);continue}}if(/^--[^=]+=/.test(W)){const x=W.indexOf("="),O=this._findOption(W.slice(0,x));if(O&&(O.required||O.optional)){this.emit(`option:${O.name()}`,W.slice(x+1));continue}}if(h===d&&p(W)&&!(this.commands.length===0&&E(W))&&(h=g),(this._enablePositionalOptions||this._passThroughOptions)&&d.length===0&&g.length===0){if(this._findCommand(W)){d.push(W),g.push(...u.slice(H));break}else if(this._getHelpCommand()&&W===this._getHelpCommand().name()){d.push(W,...u.slice(H));break}else if(this._defaultCommandName){g.push(W,...u.slice(H));break}}if(this._passThroughOptions){h.push(W,...u.slice(H));break}h.push(W)}return{operands:d,unknown:g}}opts(){if(this._storeOptionsAsProperties){const u={},d=this.options.length;for(let g=0;g<d;g++){const h=this.options[g].attributeName();u[h]=h===this._versionOptionName?this._version:this[h]}return u}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((u,d)=>Object.assign(u,d.opts()),{})}error(u,d){this._outputConfiguration.outputError(`${u}
20
+ - ${m?`searched for local subcommand relative to directory '${m}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory"}`;throw new Error(g)}_executeSubCommand(u,m){m=m.slice();let p=!1;const g=[".js",".ts",".tsx",".mjs",".cjs"];function A(W,x){const O=o.resolve(W,x);if(a.existsSync(O))return O;if(g.includes(o.extname(x)))return;const no=g.find(Ni=>a.existsSync(`${O}${Ni}`));if(no)return`${O}${no}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let E=u._executableFile||`${this._name}-${u._name}`,I=this._executableDir||"";if(this._scriptPath){let W;try{W=a.realpathSync(this._scriptPath)}catch{W=this._scriptPath}I=o.resolve(o.dirname(W),I)}if(I){let W=A(I,E);if(!W&&!u._executableFile&&this._scriptPath){const x=o.basename(this._scriptPath,o.extname(this._scriptPath));x!==this._name&&(W=A(I,`${x}-${u._name}`))}E=W||E}p=g.includes(o.extname(E));let U;r.platform!=="win32"?p?(m.unshift(E),m=N(r.execArgv).concat(m),U=n.spawn(r.argv[0],m,{stdio:"inherit"})):U=n.spawn(E,m,{stdio:"inherit"}):(this._checkForMissingExecutable(E,I,u._name),m.unshift(E),m=N(r.execArgv).concat(m),U=n.spawn(r.execPath,m,{stdio:"inherit"})),U.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(W=>{r.on(W,()=>{U.killed===!1&&U.exitCode===null&&U.kill(W)})});const H=this._exitCallback;U.on("close",W=>{W=W??1,H?H(new l(W,"commander.executeSubCommandAsync","(close)")):r.exit(W)}),U.on("error",W=>{if(W.code==="ENOENT")this._checkForMissingExecutable(E,I,u._name);else if(W.code==="EACCES")throw new Error(`'${E}' not executable`);if(!H)r.exit(1);else{const x=new l(1,"commander.executeSubCommandAsync","(error)");x.nestedError=W,H(x)}}),this.runningCommand=U}_dispatchSubcommand(u,m,p){const g=this._findCommand(u);g||this.help({error:!0}),g._prepareForParse();let A;return A=this._chainOrCallSubCommandHook(A,g,"preSubcommand"),A=this._chainOrCall(A,()=>{if(g._executableHandler)this._executeSubCommand(g,m.concat(p));else return g._parseCommand(m,p)}),A}_dispatchHelpCommand(u){u||this.help();const m=this._findCommand(u);return m&&!m._executableHandler&&m.help(),this._dispatchSubcommand(u,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((u,m)=>{u.required&&this.args[m]==null&&this.missingArgument(u.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){const u=(p,g,A)=>{let E=g;if(g!==null&&p.parseArg){const I=`error: command-argument value '${g}' is invalid for argument '${p.name()}'.`;E=this._callParseArg(p,g,A,I)}return E};this._checkNumberOfArguments();const m=[];this.registeredArguments.forEach((p,g)=>{let A=p.defaultValue;p.variadic?g<this.args.length?(A=this.args.slice(g),p.parseArg&&(A=A.reduce((E,I)=>u(p,I,E),p.defaultValue))):A===void 0&&(A=[]):g<this.args.length&&(A=this.args[g],p.parseArg&&(A=u(p,A,p.defaultValue))),m[g]=A}),this.processedArgs=m}_chainOrCall(u,m){return u?.then&&typeof u.then=="function"?u.then(()=>m()):m()}_chainOrCallHooks(u,m){let p=u;const g=[];return this._getCommandAndAncestors().reverse().filter(A=>A._lifeCycleHooks[m]!==void 0).forEach(A=>{A._lifeCycleHooks[m].forEach(E=>{g.push({hookedCommand:A,callback:E})})}),m==="postAction"&&g.reverse(),g.forEach(A=>{p=this._chainOrCall(p,()=>A.callback(A.hookedCommand,this))}),p}_chainOrCallSubCommandHook(u,m,p){let g=u;return this._lifeCycleHooks[p]!==void 0&&this._lifeCycleHooks[p].forEach(A=>{g=this._chainOrCall(g,()=>A(this,m))}),g}_parseCommand(u,m){const p=this.parseOptions(m);if(this._parseOptionsEnv(),this._parseOptionsImplied(),u=u.concat(p.operands),m=p.unknown,this.args=u.concat(m),u&&this._findCommand(u[0]))return this._dispatchSubcommand(u[0],u.slice(1),m);if(this._getHelpCommand()&&u[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(u[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(m),this._dispatchSubcommand(this._defaultCommandName,u,m);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(p.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();const g=()=>{p.unknown.length>0&&this.unknownOption(p.unknown[0])},A=`command:${this.name()}`;if(this._actionHandler){g(),this._processArguments();let E;return E=this._chainOrCallHooks(E,"preAction"),E=this._chainOrCall(E,()=>this._actionHandler(this.processedArgs)),this.parent&&(E=this._chainOrCall(E,()=>{this.parent.emit(A,u,m)})),E=this._chainOrCallHooks(E,"postAction"),E}if(this.parent?.listenerCount(A))g(),this._processArguments(),this.parent.emit(A,u,m);else if(u.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",u,m);this.listenerCount("command:*")?this.emit("command:*",u,m):this.commands.length?this.unknownCommand():(g(),this._processArguments())}else this.commands.length?(g(),this.help({error:!0})):(g(),this._processArguments())}_findCommand(u){if(u)return this.commands.find(m=>m._name===u||m._aliases.includes(u))}_findOption(u){return this.options.find(m=>m.is(u))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(u=>{u.options.forEach(m=>{m.mandatory&&u.getOptionValue(m.attributeName())===void 0&&u.missingMandatoryOptionValue(m)})})}_checkForConflictingLocalOptions(){const u=this.options.filter(m=>{const p=m.attributeName();return this.getOptionValue(p)===void 0?!1:this.getOptionValueSource(p)!=="default"});u.filter(m=>m.conflictsWith.length>0).forEach(m=>{const p=u.find(g=>m.conflictsWith.includes(g.attributeName()));p&&this._conflictingOption(m,p)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(u=>{u._checkForConflictingLocalOptions()})}parseOptions(u){const m=[],p=[];let g=m;function A(W){return W.length>1&&W[0]==="-"}const E=W=>/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(W)?!this._getCommandAndAncestors().some(x=>x.options.map(O=>O.short).some(O=>/^-\d$/.test(O))):!1;let I=null,U=null,H=0;for(;H<u.length||U;){const W=U??u[H++];if(U=null,W==="--"){g===p&&g.push(W),g.push(...u.slice(H));break}if(I&&(!A(W)||E(W))){this.emit(`option:${I.name()}`,W);continue}if(I=null,A(W)){const x=this._findOption(W);if(x){if(x.required){const O=u[H++];O===void 0&&this.optionMissingArgument(x),this.emit(`option:${x.name()}`,O)}else if(x.optional){let O=null;H<u.length&&(!A(u[H])||E(u[H]))&&(O=u[H++]),this.emit(`option:${x.name()}`,O)}else this.emit(`option:${x.name()}`);I=x.variadic?x:null;continue}}if(W.length>2&&W[0]==="-"&&W[1]!=="-"){const x=this._findOption(`-${W[1]}`);if(x){x.required||x.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${x.name()}`,W.slice(2)):(this.emit(`option:${x.name()}`),U=`-${W.slice(2)}`);continue}}if(/^--[^=]+=/.test(W)){const x=W.indexOf("="),O=this._findOption(W.slice(0,x));if(O&&(O.required||O.optional)){this.emit(`option:${O.name()}`,W.slice(x+1));continue}}if(g===m&&A(W)&&!(this.commands.length===0&&E(W))&&(g=p),(this._enablePositionalOptions||this._passThroughOptions)&&m.length===0&&p.length===0){if(this._findCommand(W)){m.push(W),p.push(...u.slice(H));break}else if(this._getHelpCommand()&&W===this._getHelpCommand().name()){m.push(W,...u.slice(H));break}else if(this._defaultCommandName){p.push(W,...u.slice(H));break}}if(this._passThroughOptions){g.push(W,...u.slice(H));break}g.push(W)}return{operands:m,unknown:p}}opts(){if(this._storeOptionsAsProperties){const u={},m=this.options.length;for(let p=0;p<m;p++){const g=this.options[p].attributeName();u[g]=g===this._versionOptionName?this._version:this[g]}return u}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((u,m)=>Object.assign(u,m.opts()),{})}error(u,m){this._outputConfiguration.outputError(`${u}
21
21
  `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError=="string"?this._outputConfiguration.writeErr(`${this._showHelpAfterError}
22
22
  `):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
23
- `),this.outputHelp({error:!0}));const g=d||{},h=g.exitCode||1,p=g.code||"commander.error";this._exit(h,p,u)}_parseOptionsEnv(){this.options.forEach(u=>{if(u.envVar&&u.envVar in r.env){const d=u.attributeName();(this.getOptionValue(d)===void 0||["default","config","env"].includes(this.getOptionValueSource(d)))&&(u.required||u.optional?this.emit(`optionEnv:${u.name()}`,r.env[u.envVar]):this.emit(`optionEnv:${u.name()}`))}})}_parseOptionsImplied(){const u=new R(this.options),d=g=>this.getOptionValue(g)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(g));this.options.filter(g=>g.implied!==void 0&&d(g.attributeName())&&u.valueFromOption(this.getOptionValue(g.attributeName()),g)).forEach(g=>{Object.keys(g.implied).filter(h=>!d(h)).forEach(h=>{this.setOptionValueWithSource(h,g.implied[h],"implied")})})}missingArgument(u){const d=`error: missing required argument '${u}'`;this.error(d,{code:"commander.missingArgument"})}optionMissingArgument(u){const d=`error: option '${u.flags}' argument missing`;this.error(d,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(u){const d=`error: required option '${u.flags}' not specified`;this.error(d,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(u,d){const g=E=>{const v=E.attributeName(),w=this.getOptionValue(v),H=this.options.find(x=>x.negate&&v===x.attributeName()),W=this.options.find(x=>!x.negate&&v===x.attributeName());return H&&(H.presetArg===void 0&&w===!1||H.presetArg!==void 0&&w===H.presetArg)?H:W||E},h=E=>{const v=g(E),w=v.attributeName();return this.getOptionValueSource(w)==="env"?`environment variable '${v.envVar}'`:`option '${v.flags}'`},p=`error: ${h(u)} cannot be used with ${h(d)}`;this.error(p,{code:"commander.conflictingOption"})}unknownOption(u){if(this._allowUnknownOption)return;let d="";if(u.startsWith("--")&&this._showSuggestionAfterError){let h=[],p=this;do{const E=p.createHelp().visibleOptions(p).filter(v=>v.long).map(v=>v.long);h=h.concat(E),p=p.parent}while(p&&!p._enablePositionalOptions);d=Z(u,h)}const g=`error: unknown option '${u}'${d}`;this.error(g,{code:"commander.unknownOption"})}_excessArguments(u){if(this._allowExcessArguments)return;const d=this.registeredArguments.length,g=d===1?"":"s",h=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${d} argument${g} but got ${u.length}.`;this.error(h,{code:"commander.excessArguments"})}unknownCommand(){const u=this.args[0];let d="";if(this._showSuggestionAfterError){const h=[];this.createHelp().visibleCommands(this).forEach(p=>{h.push(p.name()),p.alias()&&h.push(p.alias())}),d=Z(u,h)}const g=`error: unknown command '${u}'${d}`;this.error(g,{code:"commander.unknownCommand"})}version(u,d,g){if(u===void 0)return this._version;this._version=u,d=d||"-V, --version",g=g||"output the version number";const h=this.createOption(d,g);return this._versionOptionName=h.attributeName(),this._registerOption(h),this.on("option:"+h.name(),()=>{this._outputConfiguration.writeOut(`${u}
24
- `),this._exit(0,"commander.version",u)}),this}description(u,d){return u===void 0&&d===void 0?this._description:(this._description=u,d&&(this._argsDescription=d),this)}summary(u){return u===void 0?this._summary:(this._summary=u,this)}alias(u){if(u===void 0)return this._aliases[0];let d=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(d=this.commands[this.commands.length-1]),u===d._name)throw new Error("Command alias can't be the same as its name");const g=this.parent?._findCommand(u);if(g){const h=[g.name()].concat(g.aliases()).join("|");throw new Error(`cannot add alias '${u}' to command '${this.name()}' as already have command '${h}'`)}return d._aliases.push(u),this}aliases(u){return u===void 0?this._aliases:(u.forEach(d=>this.alias(d)),this)}usage(u){if(u===void 0){if(this._usage)return this._usage;const d=this.registeredArguments.map(g=>l(g));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?d:[]).join(" ")}return this._usage=u,this}name(u){return u===void 0?this._name:(this._name=u,this)}helpGroup(u){return u===void 0?this._helpGroupHeading??"":(this._helpGroupHeading=u,this)}commandsGroup(u){return u===void 0?this._defaultCommandGroup??"":(this._defaultCommandGroup=u,this)}optionsGroup(u){return u===void 0?this._defaultOptionGroup??"":(this._defaultOptionGroup=u,this)}_initOptionGroup(u){this._defaultOptionGroup&&!u.helpGroupHeading&&u.helpGroup(this._defaultOptionGroup)}_initCommandGroup(u){this._defaultCommandGroup&&!u.helpGroup()&&u.helpGroup(this._defaultCommandGroup)}nameFromFilename(u){return this._name=o.basename(u,o.extname(u)),this}executableDir(u){return u===void 0?this._executableDir:(this._executableDir=u,this)}helpInformation(u){const d=this.createHelp(),g=this._getOutputContext(u);d.prepareContext({error:g.error,helpWidth:g.helpWidth,outputHasColors:g.hasColors});const h=d.formatHelp(this,d);return g.hasColors?h:this._outputConfiguration.stripColor(h)}_getOutputContext(u){u=u||{};const d=!!u.error;let g,h,p;return d?(g=v=>this._outputConfiguration.writeErr(v),h=this._outputConfiguration.getErrHasColors(),p=this._outputConfiguration.getErrHelpWidth()):(g=v=>this._outputConfiguration.writeOut(v),h=this._outputConfiguration.getOutHasColors(),p=this._outputConfiguration.getOutHelpWidth()),{error:d,write:v=>(h||(v=this._outputConfiguration.stripColor(v)),g(v)),hasColors:h,helpWidth:p}}outputHelp(u){let d;typeof u=="function"&&(d=u,u=void 0);const g=this._getOutputContext(u),h={error:g.error,write:g.write,command:this};this._getCommandAndAncestors().reverse().forEach(E=>E.emit("beforeAllHelp",h)),this.emit("beforeHelp",h);let p=this.helpInformation({error:g.error});if(d&&(p=d(p),typeof p!="string"&&!Buffer.isBuffer(p)))throw new Error("outputHelp callback must return a string or a Buffer");g.write(p),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",h),this._getCommandAndAncestors().forEach(E=>E.emit("afterAllHelp",h))}helpOption(u,d){return typeof u=="boolean"?(u?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(u??"-h, --help",d??"display help for command"),(u||d)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(u){return this._helpOption=u,this._initOptionGroup(u),this}help(u){this.outputHelp(u);let d=Number(r.exitCode??0);d===0&&u&&typeof u!="function"&&u.error&&(d=1),this._exit(d,"commander.help","(outputHelp)")}addHelpText(u,d){const g=["beforeAll","before","after","afterAll"];if(!g.includes(u))throw new Error(`Unexpected value for position to addHelpText.
25
- Expecting one of '${g.join("', '")}'`);const h=`${u}Help`;return this.on(h,p=>{let E;typeof d=="function"?E=d({error:p.error,command:p.command}):E=d,E&&p.write(`${E}
26
- `)}),this}_outputHelpIfRequested(u){const d=this._getHelpOption();d&&u.find(g=>d.is(g))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function N(J){return J.map(u=>{if(!u.startsWith("--inspect"))return u;let d,g="127.0.0.1",h="9229",p;return(p=u.match(/^(--inspect(-brk)?)$/))!==null?d=p[1]:(p=u.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(d=p[1],/^\d+$/.test(p[3])?h=p[3]:g=p[3]):(p=u.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(d=p[1],g=p[3],h=p[4]),d&&h!=="0"?`${d}=${g}:${parseInt(h)+1}`:u})}function B(){if(r.env.NO_COLOR||r.env.FORCE_COLOR==="0"||r.env.FORCE_COLOR==="false")return!1;if(r.env.FORCE_COLOR||r.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=V,e.useColor=B})),yi=ke((e=>{var{Argument:t}=Zn(),{Command:n}=Ii(),{CommanderError:o,InvalidArgumentError:a}=Ct(),{Help:r}=fa(),{Option:i}=Ea();e.program=new n,e.createCommand=l=>new n(l),e.createOption=(l,s)=>new i(l,s),e.createArgument=(l,s)=>new t(l,s),e.Command=n,e.Option=i,e.Argument=t,e.Help=r,e.CommanderError=o,e.InvalidArgumentError=a,e.InvalidOptionArgumentError=a})),Bi=ut(yi(),1),{program:Kh,createCommand:zh,createArgument:Lh,createOption:jh,CommanderError:Ci,InvalidArgumentError:Hh,InvalidOptionArgumentError:Th,Command:Fi,Argument:Qh,Option:Ye,Help:Mh}=Bi.default;function I(e){return`${JSON.stringify(e,null,2)}
27
- `}var f;(function(e){e[e.Canceled=1]="Canceled",e[e.Unknown=2]="Unknown",e[e.InvalidArgument=3]="InvalidArgument",e[e.DeadlineExceeded=4]="DeadlineExceeded",e[e.NotFound=5]="NotFound",e[e.AlreadyExists=6]="AlreadyExists",e[e.PermissionDenied=7]="PermissionDenied",e[e.ResourceExhausted=8]="ResourceExhausted",e[e.FailedPrecondition=9]="FailedPrecondition",e[e.Aborted=10]="Aborted",e[e.OutOfRange=11]="OutOfRange",e[e.Unimplemented=12]="Unimplemented",e[e.Internal=13]="Internal",e[e.Unavailable=14]="Unavailable",e[e.DataLoss=15]="DataLoss",e[e.Unauthenticated=16]="Unauthenticated"})(f||(f={}));function Rn(e,t){return e!==null&&typeof e=="object"&&"$typeName"in e&&typeof e.$typeName=="string"?t===void 0?!0:t.typeName===e.$typeName:!1}var b;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(b||(b={}));function Ui(){const e=this.buf;let t=this.pos,n=0,o=0;for(let r=0;r<28;r+=7){const i=e[t++];if(n|=(i&127)<<r,(i&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}}const a=e[t++];if(n|=(a&15)<<28,o=(a&112)>>4,(a&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}for(let r=3;r<=31;r+=7){const i=e[t++];if(o|=(i&127)<<r,(i&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}}throw new Error("invalid varint")}var Et=4294967296;function no(e){const t=e[0]==="-";t&&(e=e.slice(1));const n=1e6;let o=0,a=0;function r(i,l){const s=Number(e.slice(i,l));a*=n,o=o*n+s,o>=Et&&(a=a+(o/Et|0),o=o%Et)}return r(-24,-18),r(-18,-12),r(-12,-6),r(-6),t?Na(o,a):fn(o,a)}function wi(e,t){let n=fn(e,t);const o=n.hi&2147483648;o&&(n=Na(n.lo,n.hi));const a=Ga(n.lo,n.hi);return o?"-"+a:a}function Ga(e,t){if({lo:e,hi:t}=Ji(e,t),t<=2097151)return String(Et*t+e);const n=e&16777215,o=(e>>>24|t<<8)&16777215,a=t>>16&65535;let r=n+o*6777216+a*6710656,i=o+a*8147497,l=a*2;const s=1e7;return r>=s&&(i+=Math.floor(r/s),r%=s),i>=s&&(l+=Math.floor(i/s),i%=s),l.toString()+oo(i)+oo(r)}function Ji(e,t){return{lo:e>>>0,hi:t>>>0}}function fn(e,t){return{lo:e|0,hi:t|0}}function Na(e,t){return t=~t,e?e=~e+1:t+=1,fn(e,t)}var oo=e=>{const t=String(e);return"0000000".slice(t.length)+t};function ki(e,t){if(e>>>0<128){t.push(e);return}if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function xi(){let e=this.buf[this.pos++];if((e&128)===0)return this.assertBounds(),e;let t=e&127;if(e=this.buf[this.pos++],t|=(e&127)<<7,(e&128)===0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,(e&128)===0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,(e&128)===0)return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;(e&128)!==0&&n<10;n++)e=this.buf[this.pos++];if((e&128)!==0)throw new Error("invalid varint");return this.assertBounds(),t>>>0}var z=Ki();function Ki(){const e=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"&&(globalThis.Deno||globalThis.Bun||typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(r){const i=typeof r=="bigint"?r:BigInt(r);if(i>n||i<t)throw new Error(`invalid int64: ${r}`);return i},uParse(r){const i=typeof r=="bigint"?r:BigInt(r);if(i>a||i<o)throw new Error(`invalid uint64: ${r}`);return i},enc(r){return e.setBigInt64(0,this.parse(r),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(r){return e.setBigInt64(0,this.uParse(r),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec(r,i){return e.setInt32(0,r,!0),e.setInt32(4,i,!0),e.getBigInt64(0,!0)},uDec(r,i){return e.setInt32(0,r,!0),e.setInt32(4,i,!0),e.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(t){return typeof t!="string"&&(t=t.toString()),ao(t),t},uParse(t){return typeof t!="string"&&(t=t.toString()),ro(t),t},enc(t){return typeof t!="string"&&(t=t.toString()),ao(t),no(t)},uEnc(t){return typeof t!="string"&&(t=t.toString()),ro(t),no(t)},dec(t,n){return wi(t,n)},uDec(t,n){return Ga(t,n)}}}function ao(e){if(!/^-?[0-9]+$/.test(e))throw new Error("invalid int64: "+e)}function ro(e){if(!/^[0-9]+$/.test(e))throw new Error("invalid uint64: "+e)}function Re(e,t){switch(e){case b.STRING:return"";case b.BOOL:return!1;case b.DOUBLE:case b.FLOAT:return 0;case b.INT64:case b.UINT64:case b.SFIXED64:case b.FIXED64:case b.SINT64:return t?"0":z.zero;case b.BYTES:return new Uint8Array(0);default:return 0}}function zi(e,t){switch(e){case b.BOOL:return t===!1;case b.STRING:return t==="";case b.BYTES:return t instanceof Uint8Array&&!t.byteLength;case b.DOUBLE:case b.FLOAT:return Object.is(t,0);default:return t==0}}var Wa=2,ie=Symbol.for("reflect unsafe local");function Li(e,t){const n=e[t.localName].case;return n===void 0?n:t.fields.find(o=>o.localName===n)}function ji(e,t){const n=t.localName;if(t.oneof)return e[t.oneof.localName].case===n;if(t.presence!=Wa)return e[n]!==void 0&&Object.prototype.hasOwnProperty.call(e,n);switch(t.fieldKind){case"list":return e[n].length>0;case"map":return Object.keys(e[n]).length>0;case"scalar":return!zi(t.scalar,e[n]);case"enum":return e[n]!==t.enum.values[0].number}throw new Error("message field with implicit presence")}function at(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==void 0}function Hi(e,t){if(t.oneof){const n=e[t.oneof.localName];return n.case===t.localName?n.value:void 0}return e[t.localName]}function Ti(e,t,n){t.oneof?e[t.oneof.localName]={case:t.localName,value:n}:e[t.localName]=n}function de(e,t,n){t==="__proto__"?Object.defineProperty(e,"__proto__",{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function Qi(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function Mi(e,t){const n=t.localName;if(t.oneof){const o=t.oneof.localName;e[o].case===n&&(e[o]={case:void 0})}else if(t.presence!=Wa)delete e[n];else switch(t.fieldKind){case"map":e[n]={};break;case"list":e[n]=[];break;case"enum":e[n]=t.enum.values[0].number;break;case"scalar":e[n]=Re(t.scalar,t.longAsString);break}}function Ie(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function En(e,t){var n,o,a,r;if(Ie(e)&&ie in e&&"add"in e&&"field"in e&&typeof e.field=="function"){if(t!==void 0){const i=t,l=e.field();return i.listKind==l.listKind&&i.scalar===l.scalar&&((n=i.message)===null||n===void 0?void 0:n.typeName)===((o=l.message)===null||o===void 0?void 0:o.typeName)&&((a=i.enum)===null||a===void 0?void 0:a.typeName)===((r=l.enum)===null||r===void 0?void 0:r.typeName)}return!0}return!1}function Vn(e,t){var n,o,a,r;if(Ie(e)&&ie in e&&"has"in e&&"field"in e&&typeof e.field=="function"){if(t!==void 0){const i=t,l=e.field();return i.mapKey===l.mapKey&&i.mapKind==l.mapKind&&i.scalar===l.scalar&&((n=i.message)===null||n===void 0?void 0:n.typeName)===((o=l.message)===null||o===void 0?void 0:o.typeName)&&((a=i.enum)===null||a===void 0?void 0:a.typeName)===((r=l.enum)===null||r===void 0?void 0:r.typeName)}return!0}return!1}function Gn(e,t){return Ie(e)&&ie in e&&"desc"in e&&Ie(e.desc)&&e.desc.kind==="message"&&(t===void 0||e.desc.typeName==t.typeName)}function Oi(e){return va(e.$typeName)}function xe(e){const t=e.fields[0];return va(e.typeName)&&t!==void 0&&t.fieldKind=="scalar"&&t.name=="value"&&t.number==1}function Sa(e){switch(e.typeName){case"google.protobuf.Any":case"google.protobuf.Timestamp":case"google.protobuf.Duration":case"google.protobuf.FieldMask":case"google.protobuf.Struct":case"google.protobuf.Value":case"google.protobuf.ListValue":return!0;default:return xe(e)}}var Di=new Set(["google.protobuf.DoubleValue","google.protobuf.FloatValue","google.protobuf.Int64Value","google.protobuf.UInt64Value","google.protobuf.Int32Value","google.protobuf.UInt32Value","google.protobuf.BoolValue","google.protobuf.StringValue","google.protobuf.BytesValue"]);function va(e){return Di.has(e)}var _i=999,Pi=998,Xa=2;function oe(e,t){return Rn(t,e)?t:Ya(e)(t)}var io=new WeakMap;function Ya(e){let t=io.get(e);return t===void 0&&(t=$i(e),io.set(e,t)),t}var an=0,Ia=1,ya=2,Ba=3;function $i(e){const t=e.typeName,{properties:n,prototype:o}=qi(e);return a=>{let r;o!==void 0?(r=Object.create(o),r.$typeName=t):r={$typeName:t};for(let i=0;i<n.length;i++){const l=n[i],s=l.name,c=a?.[s];switch(l.kind){case an:c!=null?r[s]=l.convert!==void 0?l.convert(c):c:l.constant!==void 0&&(r[s]=l.constant);break;case Ia:r[s]=l.convert!==void 0&&Array.isArray(c)?c.map(l.convert):c??[];break;case ya:if(l.convert===void 0||!Ie(c))r[s]=c??{};else{const m={},A=Object.keys(c);for(let R=0;R<A.length;R++)de(m,A[R],l.convert(c[A[R]]));r[s]=m}break;case Ba:{const m=c;if(m?.case!=null){const A=l.convert.get(m.case);if(A!==void 0){r[s]={case:m.case,value:A(m.value)};break}}r[s]={case:void 0};break}}}return r}}function qi(e){var t,n;const o=[],a={},r=tl(e);for(const i of e.members){const l=i.localName;if(i.kind=="oneof"){o.push({name:l,kind:Ba,constant:void 0,convert:el(i)});continue}switch(i.fieldKind){case"message":o.push({name:l,kind:an,constant:void 0,convert:Vt(i)});break;case"list":o.push({name:l,kind:Ia,constant:void 0,convert:i.listKind=="message"?(t=Vt(i))!==null&&t!==void 0?t:(s=>s):i.scalar==b.BYTES?nt:void 0});break;case"map":o.push({name:l,kind:ya,constant:void 0,convert:i.mapKind=="message"?(n=Vt(i))!==null&&n!==void 0?n:(s=>s):i.scalar==b.BYTES?nt:void 0});break;default:{const s=nl(i);o.push({name:l,kind:an,constant:i.presence==Xa?s:void 0,convert:i.fieldKind=="scalar"&&i.scalar==b.BYTES?nt:void 0}),r&&(a[l]=s);break}}}return{properties:o,prototype:r?a:void 0}}function el(e){const t=new Map;for(const n of e.fields){let o;n.fieldKind=="message"?o=Vt(n):n.fieldKind=="scalar"&&n.scalar==b.BYTES&&(o=nt),t.set(n.localName,o??(a=>a))}return t}function Vt(e){if(e.fieldKind=="message"&&!e.oneof&&xe(e.message))return e.message.fields[0].scalar==b.BYTES?nt:void 0;if(e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!=="google.protobuf.Value")return;const t=e.message;let n;return o=>!Ie(o)||Rn(o,t)?o:(n!=null||(n=Ya(t)),n(o))}function nt(e){return Array.isArray(e)?new Uint8Array(e):e}function tl(e){switch(e.file.edition){case _i:return!1;case Pi:return!0;default:return e.fields.some(t=>t.presence!=Xa&&t.fieldKind!="message"&&!t.oneof)}}function nl(e){const t=e.getDefaultValue();return t!==void 0?e.fieldKind=="scalar"&&e.longAsString?t.toString():t:e.fieldKind=="scalar"?Re(e.scalar,e.longAsString):e.enum.values[0].number}var ol=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"],L=class extends Error{constructor(e,t,n="FieldValueInvalidError"){super(t),this.name=n,this.field=()=>e}};function al(e){return e instanceof Error&&ol.includes(e.name)&&"field"in e&&typeof e.field=="function"}var rn;function rl(e){var t;rn=Object.assign(Object.assign({},e),{encodeUtf8Into:(t=e.encodeUtf8Into)!==null&&t!==void 0?t:Ca(e.encodeUtf8.bind(e))})}function Nn(){if(!rn){const e=globalThis;if(!e.TextEncoder||!e.TextDecoder)throw new Error("encoding API missing: install TextEncoder and TextDecoder on globalThis");const t=new e.TextEncoder,n=new e.TextDecoder;let o;const a={encodeUtf8(i){return t.encode(i)},decodeUtf8(i,l){return l?(o||(o=new e.TextDecoder("utf-8",{fatal:!0})),o.decode(i)):n.decode(i)},checkUtf8(i){try{return!0}catch{return!1}}};t.encodeInto&&(a.encodeUtf8Into=t.encodeInto.bind(t));const r=String.prototype.isWellFormed;r&&(a.checkUtf8=i=>r.call(i)),rl(a)}return rn}function Ca(e){return(t,n)=>{const o=e(t);return n.set(o),{written:o.byteLength}}}var Q;(function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"})(Q||(Q={}));var Fa=class{constructor(e){this.stackPos=[],this.encodeUtf8Into=e?Ca(e):Nn().encodeUtf8Into,this.buffer=Ua,this.viewCache=ll,this.pos=0}ensureCapacity(e){const t=this.pos+e;if(t>this.buffer.length){let n=this.buffer.length||il;for(;n<t;)n*=2;const o=new Uint8Array(n);this.pos>0&&o.set(this.buffer),this.buffer=o}}view(){const e=this.buffer,t=this.viewCache;if(t.byteLength===e.byteLength)return t;const n=new DataView(e.buffer);return this.viewCache=n,n}finish(){const e=this.buffer.slice(0,this.pos);return this.pos=0,this.stackPos=[],e}fork(){return this.stackPos.push(this.pos),this.ensureCapacity(qe),this.buffer[this.pos++]=0,this}join(){const e=this.stackPos.pop();if(e===void 0)throw new Error("invalid state, fork stack empty");const t=this.pos-e-qe,n=Ht(t);return n>qe&&(this.ensureCapacity(n-qe),this.buffer.copyWithin(e+n,e+qe,this.pos)),this.pos=e,this.uint32(t),this.pos+=t,this}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.ensureCapacity(e.length),this.buffer.set(e,this.pos),this.pos+=e.length,this}uint32(e){if(lo(e),this.ensureCapacity(5),e<128)return this.buffer[this.pos++]=e,this;for(;e>127;)this.buffer[this.pos++]=e&127|128,e>>>=7;return this.buffer[this.pos++]=e,this}int32(e){if(Tt(e),e>=0)return this.uint32(e);this.ensureCapacity(10);for(let t=0;t<9;t++)this.buffer[this.pos++]=e&127|128,e>>=7;return this.buffer[this.pos++]=1,this}bool(e){return this.ensureCapacity(1),this.buffer[this.pos++]=e?1:0,this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){typeof e!="string"&&(e=String(e));const t=e.length;if(t<=wa){this.ensureCapacity(t+1);const l=this.buffer;let s=this.pos;l[s++]=t;let c=0;for(;c<t;c++){const m=e.charCodeAt(c);if(m>127)break;l[s++]=m}if(c==t)return this.pos=s,this}this.ensureCapacity(t*3+5);const n=Ht(t),o=this.buffer,a=this.pos,{written:r}=this.encodeUtf8Into(e,o.subarray(a+n)),i=Ht(r);return i!=n&&o.copyWithin(a+i,a+n,a+n+r),this.uint32(r),this.pos+=r,this}float(e){return sl(e),this.ensureCapacity(4),this.view().setFloat32(this.pos,e,!0),this.pos+=4,this}double(e){return this.ensureCapacity(8),this.view().setFloat64(this.pos,e,!0),this.pos+=8,this}fixed32(e){return lo(e),this.ensureCapacity(4),this.view().setUint32(this.pos,e,!0),this.pos+=4,this}sfixed32(e){return Tt(e),this.ensureCapacity(4),this.view().setInt32(this.pos,e,!0),this.pos+=4,this}sint32(e){return Tt(e),this.uint32((e<<1^e>>31)>>>0)}sfixed64(e){const t=z.enc(e);this.ensureCapacity(8);const n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}fixed64(e){const t=z.uEnc(e);this.ensureCapacity(8);const n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}int64(e){const t=z.enc(e);return this.writeVarint64(t.lo,t.hi)}sint64(e){const t=z.enc(e),n=t.hi>>31,o=t.lo<<1^n,a=(t.hi<<1|t.lo>>>31)^n;return this.writeVarint64(o,a)}uint64(e){const t=z.uEnc(e);return this.writeVarint64(t.lo,t.hi)}writeVarint64(e,t){this.ensureCapacity(10);const n=this.buffer;let o=this.pos;for(let i=0;i<28;i=i+7){const l=e>>>i,s=!(!(l>>>7)&&t==0);if(n[o++]=(s?l|128:l)&255,!s)return this.pos=o,this}const a=e>>>28&15|(t&7)<<4,r=t>>3!=0;if(n[o++]=(r?a|128:a)&255,!r)return this.pos=o,this;for(let i=3;i<31;i=i+7){const l=t>>>i,s=!!(l>>>7);if(n[o++]=(s?l|128:l)&255,!s)return this.pos=o,this}return n[o++]=t>>>31&1,this.pos=o,this}},il=128,qe=1,Ua=new Uint8Array(0),ll=new DataView(Ua.buffer),wa=32;function Ht(e){return e<128?1:e<16384?2:e<2097152?3:e<268435456?4:5}var rt=class{constructor(e,t=Nn().decodeUtf8){this.decodeUtf8=t,this.varint64Lo=0,this.varint64Hi=0,this.varint64=Ui,this.uint32=xi,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){const e=this.pos,t=this.uint32(),n=this.pos-e;if(n>5||n==5&&this.buf[this.pos-1]>15)throw new Error("illegal tag: varint overflows uint32");const o=t>>>3,a=t&7;if(o<=0||a>5)throw new Error("illegal tag: field no "+o+" wire type "+a);return[o,a]}skip(e,t,n=100){let o=this.pos;switch(e){case Q.Varint:for(;this.buf[this.pos++]&128;);break;case Q.Bit64:this.pos+=4;case Q.Bit32:this.pos+=4;break;case Q.LengthDelimited:let a=this.uint32();this.pos+=a;break;case Q.StartGroup:if(n<=0)throw new Error("maximum recursion depth reached");for(;;){const[r,i]=this.tag();if(i===Q.EndGroup){if(t!==void 0&&r!==t)throw new Error("invalid end group tag");break}this.skip(i,r,n-1)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(o,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return this.varint64(),z.dec(this.varint64Lo,this.varint64Hi)}uint64(){return this.varint64(),z.uDec(this.varint64Lo,this.varint64Hi)}sint64(){this.varint64();let e=this.varint64Lo,t=this.varint64Hi,n=-(e&1);return e=(e>>>1|(t&1)<<31)^n,t=t>>>1^n,z.dec(e,t)}bool(){const e=this.buf[this.pos];return e<128?(this.pos++,e!==0):(this.varint64(),this.varint64Lo!==0||this.varint64Hi!==0)}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return z.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return z.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(e){const t=this.bytes(),n=t.length;if(n<=wa){const o=new Array(n);for(let a=0;a<n;a++){const r=t[a];if(r>127)return this.decodeUtf8(t,e);o[a]=r}return String.fromCharCode.apply(String,o)}return this.decodeUtf8(t,e)}};function Tt(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid int32: "+typeof e);if(!Number.isInteger(e)||e>2147483647||e<-2147483648)throw new Error("invalid int32: "+e)}function lo(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid uint32: "+typeof e);if(!Number.isInteger(e)||e>4294967295||e<0)throw new Error("invalid uint32: "+e)}function sl(e){if(typeof e=="string"){const t=e;if(e=Number(e),Number.isNaN(e)&&t!=="NaN")throw new Error("invalid float32: "+t)}else if(typeof e!="number")throw new Error("invalid float32: "+typeof e);if(!Number.isFinite(Math.fround(e))&&Number.isFinite(e))throw new Error("invalid float32: "+e)}function Ja(e,t){const n=e.fieldKind=="list"?En(t,e):e.fieldKind=="map"?Vn(t,e):Wn(e,t);if(n===!0)return;let o;switch(e.fieldKind){case"list":o=`expected ${xa(e)}, got ${D(t)}`;break;case"map":o=`expected ${Ka(e)}, got ${D(t)}`;break;default:o=ue(e,t,n)}return new L(e,o)}function so(e,t,n){const o=Wn(e,n);if(o!==!0)return new L(e,`list item #${t+1}: ${ue(e,n,o)}`)}function cl(e,t,n){const o=ye(e.mapKey)(t);if(o!==!0)return new L(e,`invalid map key: ${ue({scalar:e.mapKey},t,o)}`);const a=Wn(e,n);if(a!==!0)return new L(e,`map entry ${D(t)}: ${ue(e,n,a)}`)}function Wn(e,t){return e.scalar!==void 0?ye(e.scalar)(t):e.enum!==void 0?e.enum.open?ye(b.INT32)(t):e.enum.values.some(n=>n.number===t):Gn(t,e.message)}function ye(e){switch(e){case b.DOUBLE:return t=>typeof t=="number";case b.FLOAT:return t=>typeof t!="number"?!1:!Number.isFinite(Math.fround(t))&&Number.isFinite(t)?`${t.toFixed()} out of range`:!0;case b.INT32:case b.SFIXED32:case b.SINT32:return t=>typeof t!="number"||!Number.isInteger(t)?!1:t>2147483647||t<-2147483648?`${t.toFixed()} out of range`:!0;case b.FIXED32:case b.UINT32:return t=>typeof t!="number"||!Number.isInteger(t)?!1:t>4294967295||t<0?`${t.toFixed()} out of range`:!0;case b.BOOL:return t=>typeof t=="boolean";case b.STRING:return t=>typeof t!="string"?!1:Nn().checkUtf8(t)||"invalid UTF8";case b.BYTES:return t=>t instanceof Uint8Array;case b.INT64:case b.SFIXED64:case b.SINT64:return t=>{if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return z.parse(t),!0}catch{return`${t} out of range`}return!1};case b.FIXED64:case b.UINT64:return t=>{if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return z.uParse(t),!0}catch{return`${t} out of range`}return!1}}}function ue(e,t,n){return n=typeof n=="string"?`: ${n}`:`, got ${D(t)}`,e.scalar!==void 0?`expected ${ul(e.scalar)}`+n:e.enum!==void 0?`expected ${e.enum.toString()}`+n:`expected ${ka(e.message)}`+n}function D(e){switch(typeof e){case"object":return e===null?"null":e instanceof Uint8Array?`Uint8Array(${e.length})`:Array.isArray(e)?`Array(${e.length})`:En(e)?xa(e.field()):Vn(e)?Ka(e.field()):Gn(e)?ka(e.desc):Rn(e)?`message ${e.$typeName}`:"object";case"string":return e.length>30?"string":`"${e.split('"').join('\\"')}"`;case"boolean":return String(e);case"number":return String(e);case"bigint":return String(e)+"n";default:return typeof e}}function ka(e){return`ReflectMessage (${e.typeName})`}function xa(e){switch(e.listKind){case"message":return`ReflectList (${e.message.toString()})`;case"enum":return`ReflectList (${e.enum.toString()})`;case"scalar":return`ReflectList (${b[e.scalar]})`}}function Ka(e){switch(e.mapKind){case"message":return`ReflectMap (${b[e.mapKey]}, ${e.message.toString()})`;case"enum":return`ReflectMap (${b[e.mapKey]}, ${e.enum.toString()})`;case"scalar":return`ReflectMap (${b[e.mapKey]}, ${b[e.scalar]})`}}function ul(e){switch(e){case b.STRING:return"string";case b.BOOL:return"boolean";case b.INT64:case b.SINT64:case b.SFIXED64:return"bigint (int64)";case b.UINT64:case b.FIXED64:return"bigint (uint64)";case b.BYTES:return"Uint8Array";case b.DOUBLE:return"number (float64)";case b.FLOAT:return"number (float32)";case b.FIXED32:case b.UINT32:return"number (uint32)";case b.INT32:case b.SFIXED32:case b.SINT32:return"number (int32)"}}var dl=0;function ge(e){if(ml(e))return{toMessage:n=>Sn(n),toLocal:n=>vn(n)};if(e.fieldKind=="message"&&!e.oneof&&xe(e.message)){const n=e.message,o=n.fields[0].localName;return{toMessage:a=>{const r=oe(n);return a!==void 0&&(r[o]=a),r},toLocal:a=>a[o]}}const t=e.message;return{toMessage:n=>n===void 0?oe(t):n,toLocal:n=>n}}function ml(e){return e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"}function Sn(e){const t={$typeName:"google.protobuf.Struct",fields:{}};if(Ie(e))for(const n of Object.keys(e))de(t.fields,n,La(e[n]));return t}function vn(e){const t={};for(const n of Object.keys(e.fields))de(t,n,za(e.fields[n]));return t}function za(e){switch(e.kind.case){case"structValue":return vn(e.kind.value);case"listValue":return e.kind.value.values.map(za);case"nullValue":case void 0:return null;default:return e.kind.value}}function La(e){const t={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof e){case"number":t.kind={case:"numberValue",value:e};break;case"string":t.kind={case:"stringValue",value:e};break;case"boolean":t.kind={case:"boolValue",value:e};break;case"object":if(e===null)t.kind={case:"nullValue",value:dl};else if(Array.isArray(e)){const n={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(e))for(const o of e)n.values.push(La(o));t.kind={case:"listValue",value:n}}else t.kind={case:"structValue",value:Sn(e)};break}return t}function bl(e,t,n=!0){return new ja(e,t,n)}var co=new WeakMap,ja=class{get sortedFields(){const e=co.get(this.desc);if(e)return e;const t=this.desc.fields.concat().sort((n,o)=>n.number-o.number);return co.set(this.desc,t),t}constructor(e,t,n=!0){this.lists=new Map,this.maps=new Map,this.check=n,this.desc=e,this.message=this[ie]=t??oe(e),this.fields=e.fields,this.oneofs=e.oneofs,this.members=e.members}findNumber(e){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(t=>[t.number,t]))),this._fieldsByNumber.get(e)}oneofCase(e){return et(this.message,e),Li(this.message,e)}isSet(e){return et(this.message,e),ji(this.message,e)}clear(e){et(this.message,e),Mi(this.message,e)}get(e){et(this.message,e);const t=Hi(this.message,e);switch(e.fieldKind){case"list":let n=this.lists.get(e);return(!n||n[ie]!==t)&&this.lists.set(e,n=new hl(e,t,this.check)),n;case"map":let o=this.maps.get(e);return(!o||o[ie]!==t)&&this.maps.set(e,o=new gl(e,t,this.check)),o;case"message":return Yn(e,t,this.check);case"scalar":return t===void 0?Re(e.scalar,!1):In(e,t);case"enum":return t??e.enum.values[0].number}}set(e,t){if(et(this.message,e),this.check){const o=Ja(e,t);if(o)throw o}let n;e.fieldKind=="message"?n=Xn(e,t):Vn(t)||En(t)?n=t[ie]:n=yn(e,t),Ti(this.message,e,n)}getUnknown(){return this.message.$unknown}setUnknown(e){this.message.$unknown=e}};function et(e,t){if(t.parent.typeName!==e.$typeName)throw new L(t,`cannot use ${t.toString()} with message ${e.$typeName}`,"ForeignFieldError")}var hl=class{field(){return this._field}get size(){return this._arr.length}constructor(e,t,n){this._field=e,this._arr=this[ie]=t,this.check=n}get(e){const t=this._arr[e];return t===void 0?void 0:Qt(this._field,t,this.check)}set(e,t){if(e<0||e>=this._arr.length)throw new L(this._field,`list item #${e+1}: out of range`);if(this.check){const n=so(this._field,e,t);if(n)throw n}this._arr[e]=uo(this._field,t)}add(e){if(this.check){const t=so(this._field,this._arr.length,e);if(t)throw t}this._arr.push(uo(this._field,e))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return this.values()}keys(){return this._arr.keys()}*values(){for(const e of this._arr)yield Qt(this._field,e,this.check)}*entries(){for(let e=0;e<this._arr.length;e++)yield[e,Qt(this._field,this._arr[e],this.check)]}},gl=class{constructor(e,t,n=!0){this.obj=this[ie]=t??{},this.check=n,this._field=e}field(){return this._field}set(e,t){if(this.check){const n=cl(this._field,e,t);if(n)throw n}return de(this.obj,gt(e),Al(this._field,t)),this}delete(e){const t=gt(e),n=Object.prototype.hasOwnProperty.call(this.obj,t);return n&&delete this.obj[t],n}clear(){for(const e of Object.keys(this.obj))delete this.obj[e]}get(e){let t=Qi(this.obj,gt(e));return t!==void 0&&(t=Mt(this._field,t,this.check)),t}has(e){return Object.prototype.hasOwnProperty.call(this.obj,gt(e))}*keys(){for(const e of Object.keys(this.obj))yield mo(e,this._field.mapKey)}*entries(){for(const e of Object.entries(this.obj))yield[mo(e[0],this._field.mapKey),Mt(this._field,e[1],this.check)]}[Symbol.iterator](){return this.entries()}get size(){return Object.keys(this.obj).length}*values(){for(const e of Object.values(this.obj))yield Mt(this._field,e,this.check)}forEach(e,t){for(const n of this.entries())e.call(t,n[1],n[0],this)}};function Xn(e,t){return Gn(t)?Oi(t.message)&&!e.oneof&&e.fieldKind=="message"?t.message.value:t.desc.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"?vn(t.message):t.message:t}function Yn(e,t,n){return t!==void 0&&(xe(e.message)&&!e.oneof&&e.fieldKind=="message"?t={$typeName:e.message.typeName,value:In(e.message.fields[0],t)}:e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"&&Ie(t)&&(t=Sn(t))),new ja(e.message,t,n)}function uo(e,t){return e.listKind=="message"?Xn(e,t):yn(e,t)}function Qt(e,t,n){return e.listKind=="message"?Yn(e,t,n):In(e,t)}function Al(e,t){return e.mapKind=="message"?Xn(e,t):yn(e,t)}function Mt(e,t,n){return e.mapKind=="message"?Yn(e,t,n):t}function gt(e){return typeof e=="string"||typeof e=="number"?e:String(e)}function mo(e,t){switch(t){case b.STRING:return e;case b.INT32:case b.FIXED32:case b.UINT32:case b.SFIXED32:case b.SINT32:{const n=Number.parseInt(e);if(Number.isFinite(n))return n;break}case b.BOOL:switch(e){case"true":return!0;case"false":return!1}break;case b.UINT64:case b.FIXED64:try{return z.uParse(e)}catch{}break;default:try{return z.parse(e)}catch{}break}return e}function In(e,t){switch(e.scalar){case b.INT64:case b.SFIXED64:case b.SINT64:"longAsString"in e&&e.longAsString&&typeof t=="string"&&(t=z.parse(t));break;case b.FIXED64:case b.UINT64:"longAsString"in e&&e.longAsString&&typeof t=="string"&&(t=z.uParse(t));break}return t}function yn(e,t){switch(e.scalar){case b.INT64:case b.SFIXED64:case b.SINT64:"longAsString"in e&&e.longAsString?t=String(t):(typeof t=="string"||typeof t=="number")&&(t=z.parse(t));break;case b.FIXED64:case b.UINT64:"longAsString"in e&&e.longAsString?t=String(t):(typeof t=="string"||typeof t=="number")&&(t=z.uParse(t));break}return t}var bo=Uint8Array.prototype.setFromBase64;function Bn(e){const t=e.length;let n=t-(t+3>>2);(t&3)==0&&e[t-1]=="="&&(n-=e[t-2]=="="?2:1);const o=new Uint8Array(n);let a=-1;if(bo)try{const r=bo.call(o,e);r.read==t&&(a=r.written)}catch{}return a<0&&(a=pl(o,e)),a==n?o:o.subarray(0,a)}function pl(e,t){const n=fl();let o=0,a=0,r,i=0;for(let l=0;l<t.length;l++){if(r=n[t.charCodeAt(l)],r===void 0)switch(t[l]){case"=":a=0;case`
28
- `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string")}switch(a){case 0:i=r,a=1;break;case 1:e[o++]=i<<2|(r&48)>>4,i=r,a=2;break;case 2:e[o++]=(i&15)<<4|(r&60)>>2,i=r,a=3;break;case 3:e[o++]=(i&3)<<6|r,a=0;break}}if(a==1)throw Error("invalid base64 string");return o}var ho=Uint8Array.prototype.toBase64,Zl={std:{alphabet:"base64",omitPadding:!1},std_raw:{alphabet:"base64",omitPadding:!0},url:{alphabet:"base64url",omitPadding:!0}};function Rl(e,t="std"){if(ho)return ho.call(e,Zl[t]);const n=Ha(t),o=t=="std";let a="",r=0,i,l=0;for(let s=0;s<e.length;s++)switch(i=e[s],r){case 0:a+=n[i>>2],l=(i&3)<<4,r=1;break;case 1:a+=n[l|i>>4],l=(i&15)<<2,r=2;break;case 2:a+=n[l|i>>6],a+=n[i&63],r=0;break}return r&&(a+=n[l],o&&(a+="=",r==1&&(a+="="))),a}var At,go,Le;function Ha(e){return At||(At="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),go=At.slice(0,-2).concat("-","_")),e=="url"?go:At}function fl(){if(!Le){Le=[];const e=Ha("std");for(let t=0;t<e.length;t++)Le[e[t].charCodeAt(0)]=t;Le[45]=e.indexOf("+"),Le[95]=e.indexOf("/")}return Le}function Oe(e){let t=!1;const n=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);switch(a){case"_":t=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(a),t=!1;break;default:t&&(t=!1,a=a.toUpperCase()),n.push(a);break}}return n.join("")}function Ta(e){return e.replace(/[A-Z]/g,t=>"_"+t.toLowerCase())}var El=new Set(["constructor","toString","toJSON","valueOf"]);function it(e){return El.has(e)?e+"$":e}function Cn(e){for(const t of e.field)at(t,"jsonName")||(t.jsonName=Oe(t.name));e.nestedType.forEach(Cn)}function Vl(e,t){const n=e.values.find(o=>o.name===t);if(!n)throw new Error(`cannot parse ${e} default value: ${t}`);return n.number}function Gl(e,t){switch(e){case b.STRING:return t;case b.BYTES:{const n=Nl(t);if(n===!1)throw new Error(`cannot parse ${b[e]} default value: ${t}`);return n}case b.INT64:case b.SFIXED64:case b.SINT64:return z.parse(t);case b.UINT64:case b.FIXED64:return z.uParse(t);case b.DOUBLE:case b.FLOAT:switch(t){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return NaN;default:return parseFloat(t)}case b.BOOL:return t==="true";case b.INT32:case b.UINT32:case b.SINT32:case b.FIXED32:case b.SFIXED32:return parseInt(t,10)}}function Nl(e){const t=[],n={tail:e,c:"",next(){return this.tail.length==0?!1:(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(o){if(this.tail.length>=o){const a=this.tail.substring(0,o);return this.tail=this.tail.substring(o),a}return!1}};for(;n.next();)switch(n.c){case"\\":if(n.next())switch(n.c){case"\\":t.push(n.c.charCodeAt(0));break;case"b":t.push(8);break;case"f":t.push(12);break;case"n":t.push(10);break;case"r":t.push(13);break;case"t":t.push(9);break;case"v":t.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{const o=n.c,a=n.take(2);if(a===!1)return!1;const r=parseInt(o+a,8);if(Number.isNaN(r))return!1;t.push(r);break}case"x":{const o=n.c,a=n.take(2);if(a===!1)return!1;const r=parseInt(o+a,16);if(Number.isNaN(r))return!1;t.push(r);break}case"u":{const o=n.c,a=n.take(4);if(a===!1)return!1;const r=parseInt(o+a,16);if(Number.isNaN(r))return!1;const i=new Uint8Array(4);new DataView(i.buffer).setInt32(0,r,!0),t.push(i[0],i[1],i[2],i[3]);break}case"U":{const o=n.c,a=n.take(8);if(a===!1)return!1;const r=z.uEnc(o+a),i=new Uint8Array(8),l=new DataView(i.buffer);l.setInt32(0,r.lo,!0),l.setInt32(4,r.hi,!0),t.push(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]);break}}break;default:t.push(n.c.charCodeAt(0))}return new Uint8Array(t)}function*ln(e){switch(e.kind){case"file":for(const t of e.messages)yield t,yield*ln(t);yield*e.enums,yield*e.services,yield*e.extensions;break;case"message":for(const t of e.nestedMessages)yield t,yield*ln(t);yield*e.nestedEnums,yield*e.nestedExtensions;break}}function Qa(...e){const t=Wl();if(!e.length)return t;if("$typeName"in e[0]&&e[0].$typeName=="google.protobuf.FileDescriptorSet"){for(const o of e[0].file)Ro(o,t);return t}if("$typeName"in e[0]){let i=function(l){const s=[];for(const c of l.dependency){if(t.getFile(c)!=null||r.has(c))continue;const m=a(c);if(!m)throw new Error(`Unable to resolve ${c}, imported by ${l.name}`);"kind"in m?t.addFile(m,!1,!0):(r.add(m.name),s.push(m))}return s.concat(...s.map(i))};var n=i;const o=e[0],a=e[1],r=new Set;for(const l of[o,...i(o)].reverse())Ro(l,t)}else for(const o of e)for(const a of o.files)t.addFile(a);return t}function Wl(){const e=new Map,t=new Map,n=new Map;return{kind:"registry",types:e,extendees:t,[Symbol.iterator](){return e.values()},get files(){return n.values()},addFile(o,a,r){if(n.set(o.proto.name,o),!a)for(const i of ln(o))this.add(i);if(r)for(const i of o.dependencies)this.addFile(i,a,r)},add(o){if(o.kind=="extension"){let a=t.get(o.extendee.typeName);a||t.set(o.extendee.typeName,a=new Map),a.set(o.number,o)}e.set(o.typeName,o)},get(o){return e.get(o)},getFile(o){return n.get(o)},getMessage(o){const a=e.get(o);return a?.kind=="message"?a:void 0},getEnum(o){const a=e.get(o);return a?.kind=="enum"?a:void 0},getExtension(o){const a=e.get(o);return a?.kind=="extension"?a:void 0},getExtensionFor(o,a){var r;return(r=t.get(o.typeName))===null||r===void 0?void 0:r.get(a)},getService(o){const a=e.get(o);return a?.kind=="service"?a:void 0}}}var Sl=998,vl=999,Xl=9999,Yl=9,lt=10,ot=11,Il=12,Ao=14,Fn=3,yl=2,po=1,Bl=0,Ot=1,Zo=2,Cl=3,Fl=1,Ul=2,wl=1,Jl=2,kl=1002,Ma={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2,enforceProtoLimits:1},1002:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:3,defaultSymbolVisibility:4,enforceProtoLimits:2}};function Ro(e,t){var n,o;const a={kind:"file",proto:e,deprecated:(o=(n=e.options)===null||n===void 0?void 0:n.deprecated)!==null&&o!==void 0?o:!1,edition:Ll(e),name:e.name.replace(/\.proto$/,""),dependencies:jl(e,t),enums:[],messages:[],extensions:[],services:[],toString(){return`file ${e.name}`}},r=new Map,i={get(l){return r.get(l)},add(l){var s;se(((s=l.proto.options)===null||s===void 0?void 0:s.mapEntry)===!0),r.set(l.typeName,l)}};for(const l of e.enumType)Oa(l,a,void 0,t);for(const l of e.messageType)Da(l,a,void 0,t,i);for(const l of e.service)xl(l,a,t);sn(a,t);for(const l of r.values())cn(l,t,i);for(const l of a.messages)cn(l,t,i),sn(l,t);t.addFile(a,!0)}function sn(e,t){switch(e.kind){case"file":for(const n of e.proto.extension){const o=un(n,e,t);e.extensions.push(o),t.add(o)}break;case"message":for(const n of e.proto.extension){const o=un(n,e,t);e.nestedExtensions.push(o),t.add(o)}for(const n of e.nestedMessages)sn(n,t);break}}function cn(e,t,n){const o=e.proto.oneofDecl.map(r=>zl(r,e)),a=new Set;for(const r of e.proto.field){const i=Ml(r,o),l=un(r,e,t,i,n);e.fields.push(l),e.field[l.localName]=l,i===void 0?e.members.push(l):(i.fields.push(l),a.has(i)||(a.add(i),e.members.push(i)))}for(const r of o.filter(i=>a.has(i)))e.oneofs.push(r);for(const r of e.nestedMessages)cn(r,t,n)}function Oa(e,t,n,o){var a,r,i,l,s,c;const m=Hl(e.name,e.value),A={kind:"enum",proto:e,deprecated:(r=(a=e.options)===null||a===void 0?void 0:a.deprecated)!==null&&r!==void 0?r:!1,file:t,parent:n,open:!0,name:e.name,typeName:Ft(e,n,t),value:{},values:[],sharedPrefix:m,toString(){return`enum ${this.typeName}`}};A.open=Pl(A),o.add(A);for(const R of e.value){const Z=R.name;A.values.push(A.value[R.number]={kind:"enum_value",proto:R,deprecated:(l=(i=R.options)===null||i===void 0?void 0:i.deprecated)!==null&&l!==void 0?l:!1,parent:A,name:Z,localName:it(m==null?Z:Z.substring(m.length)),number:R.number,jsonName:(s=Tl(R))!==null&&s!==void 0?s:Z,toString(){return`enum value ${A.typeName}.${Z}`}})}((c=n?.nestedEnums)!==null&&c!==void 0?c:t.enums).push(A)}function Da(e,t,n,o,a){var r,i,l,s;const c={kind:"message",proto:e,deprecated:(i=(r=e.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,file:t,parent:n,name:e.name,typeName:Ft(e,n,t),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};((l=e.options)===null||l===void 0?void 0:l.mapEntry)===!0?a.add(c):(((s=n?.nestedMessages)!==null&&s!==void 0?s:t.messages).push(c),o.add(c));for(const m of e.enumType)Oa(m,t,c,o);for(const m of e.nestedType)Da(m,t,c,o,a)}function xl(e,t,n){var o,a;const r={kind:"service",proto:e,deprecated:(a=(o=e.options)===null||o===void 0?void 0:o.deprecated)!==null&&a!==void 0?a:!1,file:t,name:e.name,typeName:Ft(e,void 0,t),methods:[],method:{},toString(){return`service ${this.typeName}`}};t.services.push(r),n.add(r);for(const i of e.method){const l=Kl(i,r,n);r.methods.push(l),r.method[l.localName]=l}}function Kl(e,t,n){var o,a,r,i;let l;e.clientStreaming&&e.serverStreaming?l="bidi_streaming":e.clientStreaming?l="client_streaming":e.serverStreaming?l="server_streaming":l="unary";const s=n.getMessage(pe(e.inputType)),c=n.getMessage(pe(e.outputType));se(s,`invalid MethodDescriptorProto: input_type ${e.inputType} not found`),se(c,`invalid MethodDescriptorProto: output_type ${e.inputType} not found`);const m=e.name;return{kind:"rpc",proto:e,deprecated:(a=(o=e.options)===null||o===void 0?void 0:o.deprecated)!==null&&a!==void 0?a:!1,parent:t,name:m,localName:it(m.length?it(m[0].toLowerCase()+m.substring(1)):m),methodKind:l,input:s,output:c,idempotency:(i=(r=e.options)===null||r===void 0?void 0:r.idempotencyLevel)!==null&&i!==void 0?i:Bl,toString(){return`rpc ${t.typeName}.${m}`}}}function zl(e,t){return{kind:"oneof",proto:e,deprecated:!1,parent:t,fields:[],name:e.name,localName:it(Oe(e.name)),toString(){return`oneof ${t.typeName}.${this.name}`}}}function un(e,t,n,o,a){var r,i,l;const s=a===void 0,c={kind:"field",proto:e,deprecated:(i=(r=e.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,name:e.name,number:e.number,scalar:void 0,message:void 0,enum:void 0,presence:Ol(e,o,s,t),utf8Validation:$l(e,t),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};let m;if(s){const V=t.kind=="file"?t:t.file,N=t.kind=="file"?void 0:t,B=Ft(e,N,V);c.kind="extension",c.file=V,c.parent=N,c.oneof=void 0,c.typeName=B,c.jsonName=`[${B}]`,m=()=>`extension ${B}`;const J=n.getMessage(pe(e.extendee));se(J,`invalid FieldDescriptorProto: extendee ${e.extendee} not found`),c.extendee=J}else{const V=t;se(V.kind=="message"),c.parent=V,c.oneof=o,c.localName=o?Oe(e.name):it(Oe(e.name)),c.jsonName=e.jsonName,m=()=>`field ${V.typeName}.${e.name}`}Object.defineProperty(c,"toString",{value:m,writable:!0,enumerable:!0,configurable:!0});const A=e.label,R=e.type,Z=(l=e.options)===null||l===void 0?void 0:l.jstype;if(A===Fn){const V=R==ot?a?.get(pe(e.typeName)):void 0;if(V){c.fieldKind="map";const{key:N,value:B}=_l(V);return c.mapKey=N.scalar,c.mapKind=B.fieldKind,c.message=B.message,c.delimitedEncoding=!1,c.enum=B.enum,c.scalar=B.scalar,c}switch(c.fieldKind="list",R){case ot:case lt:c.listKind="message",c.message=n.getMessage(pe(e.typeName)),se(c.message),c.delimitedEncoding=fo(e,t);break;case Ao:c.listKind="enum",c.enum=n.getEnum(pe(e.typeName)),se(c.enum);break;default:c.listKind="scalar",c.scalar=R,c.longAsString=Z==po;break}return c.packed=Dl(e,t),c}switch(R){case ot:case lt:c.fieldKind="message",c.message=n.getMessage(pe(e.typeName)),se(c.message,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.delimitedEncoding=fo(e,t),c.getDefaultValue=()=>{};break;case Ao:{const V=n.getEnum(pe(e.typeName));se(V!==void 0,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.fieldKind="enum",c.enum=n.getEnum(pe(e.typeName)),c.getDefaultValue=()=>at(e,"defaultValue")?Vl(V,e.defaultValue):void 0;break}default:c.fieldKind="scalar",c.scalar=R,c.longAsString=Z==po,c.getDefaultValue=()=>at(e,"defaultValue")?Gl(R,e.defaultValue):void 0;break}return c}function Ll(e){switch(e.syntax){case"":case"proto2":return Sl;case"proto3":return vl;case"editions":if(e.edition===Xl)return kl;if(e.edition in Ma)return e.edition;throw new Error(`${e.name}: unsupported edition`);default:throw new Error(`${e.name}: unsupported syntax "${e.syntax}"`)}}function jl(e,t){return e.dependency.map(n=>{const o=t.getFile(n);if(!o)throw new Error(`Cannot find ${n}, imported by ${e.name}`);return o})}function Hl(e,t){const n=Ql(e)+"_";for(const o of t){if(!o.name.toLowerCase().startsWith(n))return;const a=o.name.substring(n.length);if(a.length==0||/^\d/.test(a))return}return n}function Tl(e){var t,n;let r;for(const i of(n=(t=e.options)===null||t===void 0?void 0:t.$unknown)!==null&&n!==void 0?n:[]){if(i.no!==998||i.wireType!==Q.LengthDelimited)continue;const l=new rt(new rt(i.data).bytes());for(;l.pos<l.len;){const[s,c]=l.tag();s===1&&c===Q.LengthDelimited?r=l.string():l.skip(c,s)}}return r}function Ql(e){return(e.substring(0,1)+e.substring(1).replace(/[A-Z]/g,t=>"_"+t)).toLowerCase()}function Ft(e,t,n){let o;return t?o=`${t.typeName}.${e.name}`:n.proto.package.length>0?o=`${n.proto.package}.${e.name}`:o=`${e.name}`,o}function pe(e){return e.startsWith(".")?e.substring(1):e}function Ml(e,t){if(!at(e,"oneofIndex")||e.proto3Optional)return;const n=t[e.oneofIndex];return se(n,`invalid FieldDescriptorProto: oneof #${e.oneofIndex} for field #${e.number} not found`),n}function Ol(e,t,n,o){if(e.label==yl)return Cl;if(e.label==Fn)return Zo;if(t||e.proto3Optional||n)return Ot;const a=we("fieldPresence",{proto:e,parent:o});return a==Zo&&(e.type==ot||e.type==lt)?Ot:a}function Dl(e,t){if(e.label!=Fn)return!1;switch(e.type){case Yl:case Il:case lt:case ot:return!1}const n=e.options;return n&&at(n,"packed")?n.packed:Fl==we("repeatedFieldEncoding",{proto:e,parent:t})}function _l(e){const t=e.fields.find(o=>o.number===1),n=e.fields.find(o=>o.number===2);return se(t&&t.fieldKind=="scalar"&&t.scalar!=b.BYTES&&t.scalar!=b.FLOAT&&t.scalar!=b.DOUBLE&&n&&n.fieldKind!="list"&&n.fieldKind!="map"),{key:t,value:n}}function Pl(e){var t;return wl==we("enumType",{proto:e.proto,parent:(t=e.parent)!==null&&t!==void 0?t:e.file})}function fo(e,t){return e.type==lt?!0:Ul==we("messageEncoding",{proto:e,parent:t})}function $l(e,t){return Jl==we("utf8Validation",{proto:e,parent:t})}function we(e,t){var n,o;const a=(n=t.proto.options)===null||n===void 0?void 0:n.features;if(a){const r=a[e];if(r!=0)return r}if("kind"in t){if(t.kind=="message")return we(e,(o=t.parent)!==null&&o!==void 0?o:t.file);const r=Ma[t.edition];if(!r)throw new Error(`feature default for edition ${t.edition} not found`);return r[e]}return we(e,t.parent)}function se(e,t){if(!e)throw new Error(t)}function ql(e){const t=es(e);return t.messageType.forEach(Cn),Qa(t,()=>{}).getFile(t.name)}function es(e){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},e),{messageType:e.messageType.map(_a),enumType:e.enumType.map(Pa)}))}function _a(e){var t,n,o,a,r,i,l,s;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:e.name,field:(n=(t=e.field)===null||t===void 0?void 0:t.map(ts))!==null&&n!==void 0?n:[],extension:[],nestedType:(a=(o=e.nestedType)===null||o===void 0?void 0:o.map(_a))!==null&&a!==void 0?a:[],enumType:(i=(r=e.enumType)===null||r===void 0?void 0:r.map(Pa))!==null&&i!==void 0?i:[],extensionRange:(s=(l=e.extensionRange)===null||l===void 0?void 0:l.map(c=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},c)))!==null&&s!==void 0?s:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function ts(e){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},e),{options:e.options?ns(e.options):void 0}))}function ns(e){var t,n,o;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},e),{targets:(t=e.targets)!==null&&t!==void 0?t:[],editionDefaults:(o=(n=e.editionDefaults)===null||n===void 0?void 0:n.map(a=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},a)))!==null&&o!==void 0?o:[],uninterpretedOption:[]}))}function Pa(e){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:e.name,reservedName:[],reservedRange:[],value:e.value.map(t=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},t))})}function G(e,t,...n){return n.reduce((o,a)=>o.nestedMessages[a],e.messages[t])}var os=ql({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false",options:{}},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true",options:{}},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"removal_error",number:5,type:9,label:1}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001},{value:"STYLE2026",edition:1002}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001},{value:"STRICT",edition:1002}]}},{name:"enforce_proto_limits",number:9,type:14,label:1,typeName:".google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits",options:{retention:2,targets:[6,3,4,5],editionDefaults:[{value:"LEGACY_NO_EXPLICIT_LIMITS",edition:900},{value:"PROTO_LIMITS2026",edition:1002}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]},{name:"ProtoLimitsFeature",enumType:[{name:"EnforceProtoLimits",value:[{name:"PROTO_LIMITS_UNKNOWN",number:0},{name:"LEGACY_NO_EXPLICIT_LIMITS",number:1},{name:"PROTO_LIMITS2026",number:2}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2},{name:"STYLE2026",number:3}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_2026",number:1002},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),as=G(os,1),Eo;(function(e){e[e.DECLARATION=0]="DECLARATION",e[e.UNVERIFIED=1]="UNVERIFIED"})(Eo||(Eo={}));var Vo;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.GROUP=10]="GROUP",e[e.MESSAGE=11]="MESSAGE",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.ENUM=14]="ENUM",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(Vo||(Vo={}));var Go;(function(e){e[e.OPTIONAL=1]="OPTIONAL",e[e.REPEATED=3]="REPEATED",e[e.REQUIRED=2]="REQUIRED"})(Go||(Go={}));var No;(function(e){e[e.SPEED=1]="SPEED",e[e.CODE_SIZE=2]="CODE_SIZE",e[e.LITE_RUNTIME=3]="LITE_RUNTIME"})(No||(No={}));var Wo;(function(e){e[e.STRING=0]="STRING",e[e.CORD=1]="CORD",e[e.STRING_PIECE=2]="STRING_PIECE"})(Wo||(Wo={}));var So;(function(e){e[e.JS_NORMAL=0]="JS_NORMAL",e[e.JS_STRING=1]="JS_STRING",e[e.JS_NUMBER=2]="JS_NUMBER"})(So||(So={}));var vo;(function(e){e[e.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",e[e.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",e[e.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(vo||(vo={}));var Xo;(function(e){e[e.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",e[e.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",e[e.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",e[e.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",e[e.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",e[e.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",e[e.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",e[e.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",e[e.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",e[e.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Xo||(Xo={}));var Yo;(function(e){e[e.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",e[e.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",e[e.IDEMPOTENT=2]="IDEMPOTENT"})(Yo||(Yo={}));var Io;(function(e){e[e.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",e[e.EXPORT_ALL=1]="EXPORT_ALL",e[e.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",e[e.LOCAL_ALL=3]="LOCAL_ALL",e[e.STRICT=4]="STRICT"})(Io||(Io={}));var yo;(function(e){e[e.PROTO_LIMITS_UNKNOWN=0]="PROTO_LIMITS_UNKNOWN",e[e.LEGACY_NO_EXPLICIT_LIMITS=1]="LEGACY_NO_EXPLICIT_LIMITS",e[e.PROTO_LIMITS2026=2]="PROTO_LIMITS2026"})(yo||(yo={}));var Bo;(function(e){e[e.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",e[e.EXPLICIT=1]="EXPLICIT",e[e.IMPLICIT=2]="IMPLICIT",e[e.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Bo||(Bo={}));var Co;(function(e){e[e.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"})(Co||(Co={}));var Fo;(function(e){e[e.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",e[e.PACKED=1]="PACKED",e[e.EXPANDED=2]="EXPANDED"})(Fo||(Fo={}));var Uo;(function(e){e[e.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",e[e.VERIFY=2]="VERIFY",e[e.NONE=3]="NONE"})(Uo||(Uo={}));var wo;(function(e){e[e.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",e[e.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",e[e.DELIMITED=2]="DELIMITED"})(wo||(wo={}));var Jo;(function(e){e[e.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",e[e.ALLOW=1]="ALLOW",e[e.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(Jo||(Jo={}));var ko;(function(e){e[e.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",e[e.STYLE2024=1]="STYLE2024",e[e.STYLE_LEGACY=2]="STYLE_LEGACY",e[e.STYLE2026=3]="STYLE2026"})(ko||(ko={}));var xo;(function(e){e[e.NONE=0]="NONE",e[e.SET=1]="SET",e[e.ALIAS=2]="ALIAS"})(xo||(xo={}));var Ko;(function(e){e[e.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",e[e.EDITION_LEGACY=900]="EDITION_LEGACY",e[e.EDITION_PROTO2=998]="EDITION_PROTO2",e[e.EDITION_PROTO3=999]="EDITION_PROTO3",e[e.EDITION_2023=1e3]="EDITION_2023",e[e.EDITION_2024=1001]="EDITION_2024",e[e.EDITION_2026=1002]="EDITION_2026",e[e.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",e[e.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",e[e.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",e[e.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",e[e.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",e[e.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",e[e.EDITION_MAX=2147483647]="EDITION_MAX"})(Ko||(Ko={}));var zo;(function(e){e[e.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",e[e.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",e[e.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"})(zo||(zo={}));function $a(e){return Object.assign(Object.assign({readUnknownFields:!0,recursionLimit:100},e),{depth:0})}function dt(e,t,n){const o=oe(e);return Un(e).read(o,new rt(t),$a(n),t.byteLength),o}var qa=new WeakMap;function Un(e){let t=qa.get(e);return t===void 0&&(t=rs(e)),t}function rs(e){const t=String(e),n=new Map,o={read:is(t,n),readGroup:ls(t,n)};qa.set(e,o);for(const a of e.fields)n.set(a.number,er(a));return o}function is(e,t){return(n,o,a,r)=>{var i;if(++a.depth>a.recursionLimit)throw new Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);const l=o.pos+r,s=(i=n.$unknown)!==null&&i!==void 0?i:[];for(;o.pos<l;){const[c,m]=o.tag(),A=t.get(c);if(A===void 0){const R=o.skip(m,c,a.recursionLimit-a.depth);a.readUnknownFields&&s.push({no:c,wireType:m,data:R});continue}A(n,o,a,m)}s.length>0&&(n.$unknown=s),a.depth--}}function ls(e,t){return(n,o,a,r)=>{var i;if(++a.depth>a.recursionLimit)throw new Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);let l,s;const c=(i=n.$unknown)!==null&&i!==void 0?i:[];for(;o.pos<o.len&&([l,s]=o.tag(),s!=Q.EndGroup);){const m=t.get(l);if(m===void 0){const A=o.skip(s,l,a.recursionLimit-a.depth);a.readUnknownFields&&c.push({no:l,wireType:s,data:A});continue}m(n,o,a,s)}if(s!=Q.EndGroup||l!==r)throw new Error("invalid end group tag");c.length>0&&(n.$unknown=c),a.depth--}}function ss(e,t,n,o,a){er(n)(e[ie],t,a,o)}function er(e){switch(e.fieldKind){case"scalar":return cs(e);case"enum":return us(e);case"message":return ds(e);case"list":return ms(e);case"map":return bs(e)}}function cs(e){const t=vt(e.scalar,e.utf8Validation,e.longAsString),n=e.localName;if(e.oneof){const o=e.oneof.localName;return(a,r)=>{a[o]={case:n,value:t(r)}}}return(o,a)=>{o[n]=t(a)}}function us(e){var t;const n=e.localName,o=(t=e.oneof)===null||t===void 0?void 0:t.localName;if(e.enum.open)return o!==void 0?(i,l)=>{i[o]={case:n,value:l.int32()}}:(i,l)=>{i[n]=l.int32()};const a=e.enum.values,r=e.number;return(i,l,s,c)=>{var m;const A=l.int32();if(a.some(R=>R.number===A))o!==void 0?i[o]={case:n,value:A}:i[n]=A;else if(s.readUnknownFields){const R=[];ki(A,R);const Z=(m=i.$unknown)!==null&&m!==void 0?m:[];Z.push({no:r,wireType:c,data:new Uint8Array(R)}),i.$unknown=Z}}}function ds(e){const t=e.localName,{toMessage:n,toLocal:o}=ge(e),a=tr(e);if(e.oneof){const r=e.oneof.localName;return(i,l,s)=>{const c=i[r],m=n(c.case===t?c.value:void 0);a(m,l,s),i[r]={case:t,value:o(m)}}}return(r,i,l)=>{const s=n(r[t]);a(s,i,l),r[t]=o(s)}}function tr(e){const t=Un(e.message);if(e.delimitedEncoding){const n=e.number;return(o,a,r)=>t.readGroup(o,a,r,n)}return(n,o,a)=>t.read(n,o,a,o.uint32())}function ms(e){const t=e.localName;if(e.listKind=="message"){const{toMessage:i,toLocal:l}=ge(e),s=tr(e);return(c,m,A)=>{const R=i(void 0);s(R,m,A),c[t].push(l(R))}}const n=e.listKind=="enum"?b.INT32:e.scalar,o=e.listKind=="scalar"?e.longAsString:!1,a=vt(n,e.utf8Validation,o),r=n!=b.STRING&&n!=b.BYTES;return(i,l,s,c)=>{const m=i[t];if(c==Q.LengthDelimited&&r){const A=l.uint32()+l.pos;for(;l.pos<A;)m.push(a(l))}else m.push(a(l))}}function bs(e){const t=e.localName,n=vt(e.mapKey,e.utf8Validation,!1),o=Re(e.mapKey,!1);let a,r;switch(e.mapKind){case"scalar":{const i=e.scalar,l=vt(i,e.utf8Validation,!1);if(a=s=>l(s),i==b.BYTES)r=()=>new Uint8Array(0);else{const s=Re(i,!1);r=()=>s}break}case"enum":{const i=e.enum.values[0].number;a=l=>l.int32(),r=()=>i;break}case"message":{const{toMessage:i,toLocal:l}=ge(e),s=Un(e.message).read;a=(c,m,A)=>{const R=i(A);return s(R,c,m,c.uint32()),l(R)},r=()=>l(i(void 0));break}}return(i,l,s)=>{const c=i[t];let m,A;const R=l.uint32(),Z=l.pos+R;for(;l.pos<Z;){const[V]=l.tag();switch(V){case 1:m=n(l);break;case 2:A=a(l,s,A);break}}m===void 0&&(m=o),A===void 0&&(A=r()),de(c,m,A)}}function vt(e,t,n){switch(e){case b.STRING:return o=>o.string(t);case b.BOOL:return o=>o.bool();case b.DOUBLE:return o=>o.double();case b.FLOAT:return o=>o.float();case b.INT32:return o=>o.int32();case b.INT64:return n?o=>String(o.int64()):o=>o.int64();case b.UINT64:return n?o=>String(o.uint64()):o=>o.uint64();case b.FIXED64:return n?o=>String(o.fixed64()):o=>o.fixed64();case b.BYTES:return o=>o.bytes();case b.FIXED32:return o=>o.fixed32();case b.SFIXED32:return o=>o.sfixed32();case b.SFIXED64:return n?o=>String(o.sfixed64()):o=>o.sfixed64();case b.SINT64:return n?o=>String(o.sint64()):o=>o.sint64();case b.UINT32:return o=>o.uint32();case b.SINT32:return o=>o.sint32()}}function ee(e,t){var n;const o=dt(as,Bn(e));return o.messageType.forEach(Cn),o.dependency=(n=t?.map(a=>a.proto.name))!==null&&n!==void 0?n:[],Qa(o,a=>t?.find(r=>r.proto.name===a)).getFile(o.name)}var Ee=ee("Ch9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiKwoJVGltZXN0YW1wEg8KB3NlY29uZHMYASABKAMSDQoFbmFub3MYAiABKAVChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),nr=ee("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),hs=G(nr,0),gs=2,As=3,Lo={writeUnknownFields:!0};function ps(e){return e?Object.assign(Object.assign({},Lo),e):Lo}function or(e,t,n){const o=new Fa;return wn(e)(o,ps(n),t),o.finish()}var ar=new WeakMap;function wn(e){let t=ar.get(e);return t===void 0&&(t=Zs(e)),t}function Zs(e){const t=e.typeName,n=e.fields.concat().sort((i,l)=>i.number-l.number),o=n[0],a=[],r=(i,l,s)=>{if(s.$typeName!==t&&o!==void 0)throw new L(o,`cannot use ${o} with message ${s.$typeName}`,"ForeignFieldError");for(let m=0;m<a.length;m++)a[m](i,l,s);const c=s.$unknown;if(c!==void 0&&l.writeUnknownFields)for(let m=0;m<c.length;m++){const{no:A,wireType:R,data:Z}=c[m];i.tag(A,R).raw(Z)}};ar.set(e,r);for(const i of n)a.push(rr(i));return r}function rr(e){switch(e.fieldKind){case"message":case"scalar":case"enum":return Rs(e);case"list":return Es(e);case"map":return Vs(e)}}function Rs(e){const t=fs(e),n=e.localName;if(e.oneof){const o=e.oneof.localName;return(a,r,i)=>{const l=i[o];l.case===n&&t(a,r,l.value)}}if(e.presence!=gs){const o=e.presence==As?`cannot encode ${e} to binary: required field not set`:void 0;return(a,r,i)=>{const l=i[n];if(l!==void 0&&Object.prototype.hasOwnProperty.call(i,n))t(a,r,l);else if(o!==void 0)throw new Error(o)}}if(e.fieldKind=="enum"){const o=e.enum.values[0].number;return(a,r,i)=>{const l=i[n];l!==o&&t(a,r,l)}}switch(e.scalar){case b.BOOL:return(o,a,r)=>{const i=r[n];i!==!1&&t(o,a,i)};case b.STRING:return(o,a,r)=>{const i=r[n];i!==""&&t(o,a,i)};case b.BYTES:return(o,a,r)=>{const i=r[n];(!(i instanceof Uint8Array)||i.byteLength>0)&&t(o,a,i)};case b.DOUBLE:case b.FLOAT:return(o,a,r)=>{const i=r[n];Object.is(i,0)||t(o,a,i)};default:return(o,a,r)=>{const i=r[n];i!=0&&t(o,a,i)}}}function fs(e){switch(e.fieldKind){case"message":{const{toMessage:t}=ge(e),n=ir(e);return(o,a,r)=>{n(o,a,t(r))}}case"scalar":case"enum":{const t=e.fieldKind=="enum"?b.INT32:e.scalar,n=e.number,o=wt(t),a=Ut(t,e.parent.typeName,e.name);return(r,i,l)=>{r.tag(n,o),a(r,l)}}}}function Es(e){const t=e.localName,n=e.number;switch(e.listKind){case"message":{const{toMessage:o}=ge(e),a=ir(e);return(r,i,l)=>{const s=l[t];for(let c=0;c<s.length;c++)a(r,i,o(s[c]))}}case"scalar":case"enum":{const o=e.listKind=="enum"?b.INT32:e.scalar,a=Ut(o,e.parent.typeName,e.name);if(e.packed)return(i,l,s)=>{const c=s[t];if(c.length!=0){i.tag(n,Q.LengthDelimited).fork();for(let m=0;m<c.length;m++)a(i,c[m]);i.join()}};const r=wt(o);return(i,l,s)=>{const c=s[t];for(let m=0;m<c.length;m++)i.tag(n,r),a(i,c[m])}}}}function Vs(e){const t=e.localName,n=e.number,o=Gs(e);if(e.mapKind=="message"){const{toMessage:l}=ge(e),s=wn(e.message);return(c,m,A)=>{const R=A[t],Z=Object.keys(R);for(let V=0;V<Z.length;V++){const N=Z[V];c.tag(n,Q.LengthDelimited).fork(),o(c,N),c.tag(2,Q.LengthDelimited).fork(),s(c,m,l(R[N])),c.join(),c.join()}}}const a=e.mapKind=="enum"?b.INT32:e.scalar,r=wt(a),i=Ut(a,e.parent.typeName,e.name);return(l,s,c)=>{const m=c[t],A=Object.keys(m);for(let R=0;R<A.length;R++){const Z=A[R];l.tag(n,Q.LengthDelimited).fork(),o(l,Z),l.tag(2,r),i(l,m[Z]),l.join()}}}function Gs(e){const t=wt(e.mapKey),n=Ut(e.mapKey,e.parent.typeName,e.name),o=Ns(e.mapKey);return(a,r)=>{a.tag(1,t),n(a,o(r))}}function Ns(e){switch(e){case b.STRING:return t=>t;case b.BOOL:return t=>t==="true"?!0:t==="false"?!1:t;case b.UINT64:case b.FIXED64:return t=>{try{return z.uParse(t)}catch{return t}};case b.INT64:case b.SFIXED64:case b.SINT64:return t=>{try{return z.parse(t)}catch{return t}};default:return t=>{const n=Number.parseInt(t);return Number.isFinite(n)?n:t}}}function Ut(e,t,n){const o=Ws(e);return(a,r)=>{try{o(a,r)}catch(i){throw i instanceof Error?new Error(`cannot encode field ${t}.${n} to binary: ${i.message}`):i}}}function Ws(e){switch(e){case b.STRING:return(t,n)=>t.string(n);case b.BOOL:return(t,n)=>t.bool(n);case b.DOUBLE:return(t,n)=>t.double(n);case b.FLOAT:return(t,n)=>t.float(n);case b.INT32:return(t,n)=>t.int32(n);case b.INT64:return(t,n)=>t.int64(n);case b.UINT64:return(t,n)=>t.uint64(n);case b.FIXED64:return(t,n)=>t.fixed64(n);case b.BYTES:return(t,n)=>t.bytes(n);case b.FIXED32:return(t,n)=>t.fixed32(n);case b.SFIXED32:return(t,n)=>t.sfixed32(n);case b.SFIXED64:return(t,n)=>t.sfixed64(n);case b.SINT64:return(t,n)=>t.sint64(n);case b.UINT32:return(t,n)=>t.uint32(n);case b.SINT32:return(t,n)=>t.sint32(n)}}function Ss(e,t,n,o){rr(o)(e,t,n[ie])}function ir(e){const t=e.number,n=wn(e.message);return e.delimitedEncoding?(o,a,r)=>{o.tag(t,Q.StartGroup),n(o,a,r),o.tag(t,Q.EndGroup)}:(o,a,r)=>{o.tag(t,Q.LengthDelimited).fork(),n(o,a,r),o.join()}}function wt(e){switch(e){case b.BYTES:case b.STRING:return Q.LengthDelimited;case b.DOUBLE:case b.FIXED64:case b.SFIXED64:return Q.Bit64;case b.FIXED32:case b.SFIXED32:case b.FLOAT:return Q.Bit32;default:return Q.Varint}}function vs(e,t,n){let o=!1;return n||(n=oe(hs),o=!0),n.value=or(e,t),n.typeUrl=Is(t.$typeName),o?n:void 0}function Xs(e,t){return e.typeUrl===""?!1:(typeof t=="string"?t:t.typeName)===lr(e.typeUrl)}function Ys(e,t){if(e.typeUrl==="")return;const n=t.kind=="message"?t:t.getMessage(lr(e.typeUrl));if(!(!n||!Xs(e,n)))return dt(n,e.value)}function Is(e){return`type.googleapis.com/${e}`}function lr(e){const t=e.lastIndexOf("/"),n=t>=0?e.substring(t+1):e;if(!n.length)throw new Error(`invalid type url: ${e}`);return n}var Ve=ee("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),ys=G(Ve,0),sr=G(Ve,1),Bs=G(Ve,2),dn;(function(e){e[e.NULL_VALUE=0]="NULL_VALUE"})(dn||(dn={}));var cr=ee("Ch5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIcCgtEb3VibGVWYWx1ZRINCgV2YWx1ZRgBIAEoASIbCgpGbG9hdFZhbHVlEg0KBXZhbHVlGAEgASgCIhsKCkludDY0VmFsdWUSDQoFdmFsdWUYASABKAMiHAoLVUludDY0VmFsdWUSDQoFdmFsdWUYASABKAQiGwoKSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoBSIcCgtVSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoDSIaCglCb29sVmFsdWUSDQoFdmFsdWUYASABKAgiHAoLU3RyaW5nVmFsdWUSDQoFdmFsdWUYASABKAkiGwoKQnl0ZXNWYWx1ZRINCgV2YWx1ZRgBIAEoDEKDAQoTY29tLmdvb2dsZS5wcm90b2J1ZkINV3JhcHBlcnNQcm90b1ABWjFnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi93cmFwcGVyc3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM");function Cs(e,t,n){ur(t,e);const o=Us(e.$unknown,t),[a,r,i]=Jt(t),l=$a(n);for(const s of o)ss(a,new rt(s.data),r,s.wireType,l);return i()}function Fs(e,t,n){var o;ur(t,e);const a=((o=e.$unknown)!==null&&o!==void 0?o:[]).filter(c=>c.no!==t.number),[r,i]=Jt(t,n),l=new Fa;Ss(l,{writeUnknownFields:!0},r,i);const s=new rt(l.finish());for(;s.pos<s.len;){const[c,m]=s.tag(),A=s.skip(m,c);a.push({no:c,wireType:m,data:A})}e.$unknown=a}function Us(e,t){if(e===void 0)return[];if(t.fieldKind==="enum"||t.fieldKind==="scalar"){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.number)return[e[n]];return[]}return e.filter(n=>n.no===t.number)}function Jt(e,t){const n=e.typeName,o=Object.assign(Object.assign({},e),{kind:"field",parent:e.extendee,localName:n}),a=Object.assign(Object.assign({},e.extendee),{fields:[o],members:[o],oneofs:[]}),r=oe(a,t!==void 0?{[n]:t}:void 0);return[bl(a,r),o,()=>{const i=r[n];if(i===void 0){const l=e.message;return xe(l)?Re(l.fields[0].scalar,l.fields[0].longAsString):oe(l)}return i}]}function ur(e,t){if(e.extendee.typeName!=t.$typeName)throw new Error(`extension ${e.typeName} can only be applied to message ${e.extendee.typeName}`)}var dr=Date.parse("0001-01-01T00:00:00Z"),mr=Date.parse("9999-12-31T23:59:59Z");var ws=3,Js=2,jo={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function ks(e){return e?Object.assign(Object.assign({},jo),e):jo}function br(e,t,n){return Xt(e)(ks(n),t)}function xs(e,t,n){var o;const a=br(e,t,n);return JSON.stringify(a,null,(o=n?.prettySpaces)!==null&&o!==void 0?o:0)}var mn=new WeakMap;function Xt(e){let t=mn.get(e);return t===void 0&&(t=Ks(e)),t}function Ks(e){const t=e.typeName,n=Ls(e);if(n!==void 0){const l=e.fields[0],s=(c,m)=>{if(m.$typeName!==t&&l!==void 0)throw new L(l,`cannot use ${l} with message ${m.$typeName}`,"ForeignFieldError");return n(c,m)};return mn.set(e,s),s}const o=e.fields.concat().sort((l,s)=>l.number-s.number),a=o[0],r=[],i=(l,s)=>{if(s.$typeName!==t&&a!==void 0)throw new L(a,`cannot use ${a} with message ${s.$typeName}`,"ForeignFieldError");const c={};for(let m=0;m<r.length;m++)r[m](l,s,c);return l.registry&&Os(c,l,l.registry,s,e),c};mn.set(e,i);for(const l of o){const s=js(l);r.push(l.jsonName==="__proto__"||l.name==="__proto__"?zs(s):s)}return i}function zs(e){return(t,n,o)=>{const a=Object.create(null);e(t,n,a);for(const r of Object.keys(a))de(o,r,a[r])}}function Ls(e){if(e.typeName.startsWith("google.protobuf."))switch(e.typeName){case"google.protobuf.Any":return(t,n)=>Ds(n,t);case"google.protobuf.Timestamp":return(t,n)=>$s(n);case"google.protobuf.Duration":return(t,n)=>_s(n);case"google.protobuf.FieldMask":return(t,n)=>Ps(n);case"google.protobuf.Struct":return(t,n)=>pr(n);case"google.protobuf.Value":return(t,n)=>xn(n);case"google.protobuf.ListValue":return(t,n)=>Zr(n);default:if(xe(e)){const t=e.fields[0],n=t.localName,o=Re(t.scalar,!1),a=kt(t);return(r,i)=>{const l=i[n];return a(r,l===void 0?o:l)}}return}}function js(e){switch(e.fieldKind){case"scalar":case"enum":case"message":return Hs(e);case"list":case"map":{const t=e.fieldKind=="list"?gr(e):Ar(e),n=e.name,o=e.jsonName,a=e.localName;return(r,i,l)=>{const s=t(r,i[a]);s!==void 0&&(l[r.useProtoFieldName?n:o]=s)}}}}function Hs(e){const t=hr(e),n=e.name,o=e.jsonName,a=e.localName;if(e.oneof){const r=e.oneof.localName;return(i,l,s)=>{const c=l[r];c.case===a&&(s[i.useProtoFieldName?n:o]=t(i,c.value))}}if(e.presence!=Js){const r=e.presence==ws?`cannot encode ${e} to JSON: required field not set`:void 0;return(i,l,s)=>{const c=l[a];if(c!==void 0&&Object.prototype.hasOwnProperty.call(l,a))s[i.useProtoFieldName?n:o]=t(i,c);else if(r!==void 0)throw new Error(r)}}if(e.fieldKind=="enum"){const r=e.enum.values[0].number;return(i,l,s)=>{const c=l[a];(c!==r||i.alwaysEmitImplicit)&&(s[i.useProtoFieldName?n:o]=t(i,c))}}switch(e.scalar){case b.BOOL:return(r,i,l)=>{const s=i[a];(s!==!1||r.alwaysEmitImplicit)&&(l[r.useProtoFieldName?n:o]=t(r,s))};case b.STRING:return(r,i,l)=>{const s=i[a];(s!==""||r.alwaysEmitImplicit)&&(l[r.useProtoFieldName?n:o]=t(r,s))};case b.BYTES:return(r,i,l)=>{const s=i[a];(!(s instanceof Uint8Array)||s.byteLength>0||r.alwaysEmitImplicit)&&(l[r.useProtoFieldName?n:o]=t(r,s))};case b.DOUBLE:case b.FLOAT:return(r,i,l)=>{const s=i[a];(!Object.is(s,0)||r.alwaysEmitImplicit)&&(l[r.useProtoFieldName?n:o]=t(r,s))};default:return(r,i,l)=>{const s=i[a];(s!=0||r.alwaysEmitImplicit)&&(l[r.useProtoFieldName?n:o]=t(r,s))}}}function Ts(e){switch(e.fieldKind){case"scalar":case"enum":case"message":return hr(e);case"list":return gr(e);case"map":return Ar(e)}}function hr(e){switch(e.fieldKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function Jn(e){const{toMessage:t}=ge(e),n=Xt(e.message);return(o,a)=>n(o,t(a))}function gr(e){const t=Qs(e);return(n,o)=>{const a=o;if(a.length==0&&!n.alwaysEmitImplicit)return;const r=[];for(let i=0;i<a.length;i++)r.push(t(n,a[i]));return r}}function Qs(e){switch(e.listKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function Ar(e){const t=Ms(e);return(n,o)=>{const a=o,r=Object.keys(a);if(r.length==0&&!n.alwaysEmitImplicit)return;const i={};for(let l=0;l<r.length;l++){const s=r[l];de(i,s,t(n,a[s]))}return i}}function Ms(e){switch(e.mapKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function kn(e){const t=e.enum;return t.typeName=="google.protobuf.NullValue"?(n,o)=>{if(typeof o!="number")throw Ho(t,o);return null}:(n,o)=>{var a,r;if(typeof o!="number")throw Ho(t,o);return n.enumAsInteger?o:(r=(a=t.value[o])===null||a===void 0?void 0:a.jsonName)!==null&&r!==void 0?r:o}}function Ho(e,t){return new Error(`cannot encode ${e} to JSON: expected number, got ${D(t)}`)}function kt(e){switch(e.scalar){case b.INT32:case b.SFIXED32:case b.SINT32:case b.FIXED32:case b.UINT32:return(t,n)=>{if(typeof n!="number")throw je(e,n);return n};case b.FLOAT:case b.DOUBLE:return(t,n)=>{if(typeof n!="number")throw je(e,n);return Number.isNaN(n)?"NaN":n===Number.POSITIVE_INFINITY?"Infinity":n===Number.NEGATIVE_INFINITY?"-Infinity":n};case b.STRING:return(t,n)=>{if(typeof n!="string")throw je(e,n);return n};case b.BOOL:return(t,n)=>{if(typeof n!="boolean")throw je(e,n);return n};case b.UINT64:case b.FIXED64:case b.INT64:case b.SFIXED64:case b.SINT64:return(t,n)=>{if(typeof n=="bigint"||typeof n=="string"||typeof n=="number"&&Number.isInteger(n))return n.toString();throw je(e,n)};case b.BYTES:return(t,n)=>{if(n instanceof Uint8Array)return Rl(n);throw je(e,n)}}}function je(e,t){var n;return new Error(`cannot encode ${e} to JSON: ${(n=Ja(e,t))===null||n===void 0?void 0:n.message}`)}function Os(e,t,n,o,a){const r=o.$unknown;if(r===void 0)return;const i=new Set;for(let l=0;l<r.length;l++){const{no:s}=r[l];if(!i.has(s)){i.add(s);const c=n.getExtensionFor(a,s);if(!c)continue;const[m,A]=Jt(c,Cs(o,c)),R=m[ie],Z=Ts(A)(t,R[A.localName]);Z!==void 0&&(e[c.jsonName]=Z)}}}function Ds(e,t){if(e.typeUrl==="")return{};const{registry:n}=t;let o,a;if(n&&(o=Ys(e,n),o&&(a=n.getMessage(o.$typeName))),!a||!o)throw new Error(`cannot encode message ${e.$typeName} to JSON: "${e.typeUrl}" is not in the type registry`);const r=Sa(a)?{value:Xt(a)(t,o)}:Xt(a)(t,o);return r["@type"]=e.typeUrl,r}function _s(e){const t=Number(e.seconds),n=e.nanos;if(t>315576e6||t<-315576e6)throw new Error(`cannot encode message ${e.$typeName} to JSON: value out of range`);if(t>0&&n<0||t<0&&n>0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos sign must match seconds sign`);let o=e.seconds.toString();if(n!==0){let a=Math.abs(n).toString();a="0".repeat(9-a.length)+a,a.substring(3)==="000000"?a=a.substring(0,3):a.substring(6)==="000"&&(a=a.substring(0,6)),o+="."+a,n<0&&t==0&&(o="-"+o)}return o+"s"}function Ps(e){return e.paths.map(t=>{if(Ta(Oe(t))!==t)throw new Error(`cannot encode message ${e.$typeName} to JSON: lowerCamelCase of path name "${t}" is irreversible`);return Oe(t)}).join(",")}function pr(e){const t={},n=Object.keys(e.fields);for(let o=0;o<n.length;o++){const a=n[o];de(t,a,xn(e.fields[a]))}return t}function xn(e){switch(e.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(e.kind.value))throw new Error(`${e.$typeName} cannot be NaN or Infinity`);return e.kind.value;case"boolValue":return e.kind.value;case"stringValue":return e.kind.value;case"structValue":return pr(e.kind.value);case"listValue":return Zr(e.kind.value);default:throw new Error(`${e.$typeName} must have a value`)}}function Zr(e){return e.values.map(xn)}function $s(e){const t=Number(e.seconds)*1e3;if(t<dr||t>mr)throw new Error(`cannot encode message ${e.$typeName} to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(e.nanos<0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be negative`);if(e.nanos>999999999)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be greater than 99999999`);let n="Z";if(e.nanos>0){const o=(e.nanos+1e9).toString().substring(1);o.substring(3)==="000000"?n="."+o.substring(0,3)+"Z":o.substring(6)==="000"?n="."+o.substring(0,6)+"Z":n="."+o+"Z"}return new Date(t).toISOString().replace(".000Z",n)}var qs=2;function ec(e){return Object.assign(Object.assign({ignoreUnknownFields:!1,recursionLimit:100},e),{depth:0})}function tc(e,t,n){return Rr(e,mc(t,e.typeName),n)}function Rr(e,t,n){const o=oe(e);return nc(e,o,t,n),o}function nc(e,t,n,o){try{De(e)(t,n,ec(o))}catch(a){throw al(a)?new Error(`cannot decode ${a.field()} from JSON: ${a.message}`,{cause:a}):a}}var bn=new WeakMap;function De(e){let t=bn.get(e);return t===void 0&&(t=oc(e)),t}function oc(e){const t=String(e),n=ac(e);if(n!==void 0){const i=(l,s,c)=>{if(++c.depth>c.recursionLimit)throw new Error(`cannot decode ${t} from JSON: maximum recursion depth of ${c.recursionLimit} reached`);n(l,s,c),c.depth--};return bn.set(e,i),i}const o=e.typeName,a=new Map,r=(i,l,s)=>{var c;if(++s.depth>s.recursionLimit)throw new Error(`cannot decode ${t} from JSON: maximum recursion depth of ${s.recursionLimit} reached`);if(l==null||Array.isArray(l)||typeof l!="object")throw new Error(`cannot decode ${t} from JSON: ${D(l)}`);const m=new Map,A=new Set,R=Object.keys(l);for(let Z=0;Z<R.length;Z++){const V=R[Z],N=l[V],B=a.get(V);if(B!==void 0){const J=B.field;if(A.has(J))throw new L(J,"set multiple times");if(A.add(J),B.oneofScalarNullSkip&&N===null)continue;if(B.oneof){const u=m.get(B.oneof);if(u!==void 0)throw new L(B.oneof,`oneof set multiple times by ${u.name} and ${J.name}`);m.set(B.oneof,J)}B.read(i,N,s)}else{const J=V.startsWith("[")&&V.endsWith("]")?(c=s.registry)===null||c===void 0?void 0:c.getExtension(V.substring(1,V.length-1)):void 0;if(J?.extendee.typeName==o){const[u,d,g]=Jt(J);To(d)(u[ie],N,s),Fs(i,J,g())}if(J===void 0&&!s.ignoreUnknownFields)throw new Error(`cannot decode ${t} from JSON: key "${V}" is unknown`)}}s.depth--};bn.set(e,r);for(const i of e.fields){const l={read:To(i),field:i,oneof:i.oneof,oneofScalarNullSkip:i.oneof!==void 0&&i.fieldKind=="scalar"};a.set(i.name,l).set(i.jsonName,l)}return r}function ac(e){if(e.typeName.startsWith("google.protobuf."))switch(e.typeName){case"google.protobuf.Any":return(t,n,o)=>hc(t,n,o);case"google.protobuf.Timestamp":return(t,n)=>gc(t,n);case"google.protobuf.Duration":return(t,n)=>Ac(t,n);case"google.protobuf.FieldMask":return(t,n)=>pc(t,n);case"google.protobuf.Struct":return(t,n,o)=>Gr(t,n,o);case"google.protobuf.Value":return(t,n,o)=>Hn(t,n,o);case"google.protobuf.ListValue":return(t,n,o)=>Nr(t,n,o);default:if(xe(e)){const t=e.fields[0],n=t.localName,o=t.scalar,a=t.longAsString,r=Er(t);return(i,l)=>{l===null?i[n]=Re(o,a):i[n]=r(l)}}return}}function To(e){switch(e.fieldKind){case"scalar":return rc(e);case"enum":return ic(e);case"message":return lc(e);case"list":return sc(e);case"map":return uc(e)}}function rc(e){const t=Er(e),n=e.localName;if(e.oneof){const a=e.oneof.localName;return(r,i)=>{r[a]={case:n,value:t(i)}}}const o=fr(e);return(a,r)=>{r===null?o(a):a[n]=t(r)}}function fr(e){const t=e.localName;if(e.presence!=qs)return a=>{delete a[t]};if(e.fieldKind=="enum"){const a=e.enum.values[0].number;return r=>{r[t]=a}}const n=e.scalar,o=e.longAsString;return a=>{a[t]=Re(n,o)}}function ic(e){const t=Kn(e.enum),n=zn(e.enum),o=e.localName,a=e.enum.typeName!="google.protobuf.NullValue";if(e.oneof){const i=e.oneof.localName;return(l,s,c)=>{if(s===null&&a){l[i].case===o&&(l[i]={case:void 0});return}const m=t(s,c.ignoreUnknownFields);if(m===_e)return;const A=n(m);if(A!==!0)throw new L(e,ue(e,m,A));l[i]={case:o,value:m}}}const r=fr(e);return(i,l,s)=>{if(l===null&&a){r(i);return}const c=t(l,s.ignoreUnknownFields);if(c===_e)return;const m=n(c);if(m!==!0)throw new L(e,ue(e,c,m));i[o]=c}}function lc(e){const t=e.localName,{toMessage:n,toLocal:o}=ge(e),a=De(e.message),r=e.message.typeName!="google.protobuf.Value";if(e.oneof){const i=e.oneof.localName;return(l,s,c)=>{const m=l[i];if(s===null&&r){m.case===t&&(l[i]={case:void 0});return}const A=n(m.case===t?m.value:void 0);a(A,s,c),l[i]={case:t,value:o(A)}}}return(i,l,s)=>{if(l===null&&r){delete i[t];return}const c=n(i[t]);a(c,l,s),i[t]=o(c)}}function sc(e){const t=e.localName,n=cc(e);return(o,a,r)=>{if(a===null)return;if(!Array.isArray(a))throw new L(e,"expected Array, got "+D(a));const i=o[t];for(let l=0;l<a.length;l++){const s=n(a[l],r,i.length);s!==_e&&i.push(s)}}}function cc(e){switch(e.listKind){case"scalar":{const t=Ln(e),n=ye(e.scalar),o=jn(e);return(a,r,i)=>{if(a===null)throw new L(e,"list item must not be null");const l=t(a),s=n(l);if(s!==!0)throw new L(e,`list item #${i+1}: ${ue(e,l,s)}`);return o(l)}}case"enum":{const t=Kn(e.enum),n=zn(e.enum),o=e.enum.typeName!="google.protobuf.NullValue";return(a,r,i)=>{if(a===null&&o)throw new L(e,"list item must not be null");const l=t(a,r.ignoreUnknownFields);if(l===_e)return l;const s=n(l);if(s!==!0)throw new L(e,`list item #${i+1}: ${ue(e,l,s)}`);return l}}case"message":{const{toMessage:t,toLocal:n}=ge(e),o=De(e.message),a=e.message.typeName!="google.protobuf.Value";return(r,i)=>{if(r===null&&a)throw new L(e,"list item must not be null");const l=t(void 0);return o(l,r,i),n(l)}}}}function uc(e){const t=e.localName,n=e.mapKey,o=dc(n),a=ye(n);let r,i,l=c=>c,s=!0;switch(e.mapKind){case"scalar":r=Ln(e),i=ye(e.scalar),l=jn(e);break;case"enum":{const c=Kn(e.enum);r=(m,A)=>c(m,A.ignoreUnknownFields),i=zn(e.enum),s=e.enum.typeName!="google.protobuf.NullValue";break}case"message":{const{toMessage:c,toLocal:m}=ge(e),A=De(e.message);s=e.message.typeName!="google.protobuf.Value",r=(R,Z)=>{const V=c(void 0);return A(V,R,Z),m(V)};break}}return(c,m,A)=>{if(m===null)return;if(typeof m!="object"||Array.isArray(m))throw new L(e,"expected object, got "+D(m));const R=c[t],Z=new Set,V=Object.keys(m);for(let N=0;N<V.length;N++){const B=V[N],J=m[B],u=o(B);if(Z.has(u))throw new L(e,`duplicate map key "${B}"`);if(Z.add(u),J===null&&s)throw new L(e,"map value must not be null");const d=r(J,A);if(d===_e)continue;const g=a(u);if(g!==!0)throw new L(e,`invalid map key: ${ue({scalar:n},u,g)}`);if(i!==void 0){const h=i(d);if(h!==!0)throw new L(e,`map entry ${D(u)}: ${ue(e,d,h)}`)}de(R,u,l(d))}}}var _e=Symbol();function Kn(e){const t=e.values[0].number,n=new Map;for(const o of e.values)n.set(o.jsonName,o.number);for(const o of e.values)n.set(o.name,o.number);return(o,a)=>{if(o===null)return t;switch(typeof o){case"number":if(Number.isInteger(o))return o;break;case"string":{const r=n.get(o);if(r!==void 0)return r;if(a)return _e;break}}throw new Error(`cannot decode ${e} from JSON: ${D(o)}`)}}function zn(e){if(e.open)return ye(b.INT32);const t=e.values;return n=>t.some(o=>o.number===n)}function Er(e){const t=Ln(e),n=ye(e.scalar),o=jn(e);return a=>{const r=t(a),i=n(r);if(i!==!0)throw new L(e,ue(e,r,i));return o(r)}}function Ln(e){switch(e.scalar){case b.DOUBLE:case b.FLOAT:return t=>{if(t==="NaN")return NaN;if(t==="Infinity")return Number.POSITIVE_INFINITY;if(t==="-Infinity")return Number.NEGATIVE_INFINITY;if(typeof t=="number"){if(Number.isNaN(t))throw new L(e,"unexpected NaN number");if(!Number.isFinite(t))throw new L(e,"unexpected infinite number");return t}if(typeof t=="string"){if(t===""||t.trim().length!==t.length)return t;const n=Number(t);return Number.isFinite(n)?n:t}return t};case b.INT32:case b.FIXED32:case b.SFIXED32:case b.SINT32:case b.UINT32:return Vr;case b.BYTES:return t=>{if(typeof t=="string"){if(t==="")return new Uint8Array(0);try{return Bn(t)}catch(n){throw new L(e,n instanceof Error?n.message:String(n))}}return t};default:return t=>t}}function jn(e){const t=e.fieldKind!=="map"&&e.longAsString;switch(e.scalar){case b.INT64:case b.SFIXED64:case b.SINT64:return t?n=>String(n):n=>typeof n=="string"||typeof n=="number"?z.parse(n):n;case b.FIXED64:case b.UINT64:return t?n=>String(n):n=>typeof n=="string"||typeof n=="number"?z.uParse(n):n;default:return n=>n}}function dc(e){switch(e){case b.BOOL:return t=>{switch(t){case"true":return!0;case"false":return!1}return t};case b.INT32:case b.FIXED32:case b.UINT32:case b.SFIXED32:case b.SINT32:return Vr;case b.INT64:case b.SINT64:case b.SFIXED64:case b.UINT64:case b.FIXED64:return t=>/^-?0+$/.test(t)?"0":t.replace(/^(-?)0+(?=\d)/,"$1");default:return t=>t}}function Vr(e){if(typeof e=="string"){if(e===""||e.trim().length!==e.length)return e;const t=Number(e);return Number.isNaN(t)?e:t}return e}function mc(e,t){let n;try{n=JSON.parse(e)}catch(o){const a=o instanceof Error?o.message:String(o);throw new Error(`cannot decode message ${t} from JSON: ${a}`,{cause:o})}return bc(e,t),n}function bc(e,t){const n=[];let o=!1,a=0;for(;a<e.length;)switch(e[a]){case"{":n.push(new Set),o=!0,a++;break;case"[":n.push(null),o=!1,a++;break;case"}":case"]":n.pop(),o=!1,a++;break;case",":o=n[n.length-1]!=null,a++;break;case":":o=!1,a++;break;case'"':{const r=a++;let i=!1;for(;a<e.length;){if(e[a]=="\\"){i=!0,a+=2;continue}if(e[a]=='"')break;a++}const l=a++,s=n[n.length-1];if(o&&s){const c=i?JSON.parse(e.substring(r,l+1)):e.substring(r+1,l);if(s.has(c))throw new Error(`cannot decode message ${t} from JSON: duplicate object key "${c}"`);s.add(c)}o=!1;break}default:a++;break}}function hc(e,t,n){var o;if(t===null||Array.isArray(t)||typeof t!="object")throw new Error(`cannot decode message ${e.$typeName} from JSON: expected object but got ${D(t)}`);if(Object.keys(t).length==0)return;const a=t["@type"];if(typeof a!="string"||a=="")throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is empty`);const r=a.includes("/")?a.substring(a.lastIndexOf("/")+1):a;if(!r.length)throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is invalid`);const i=(o=n.registry)===null||o===void 0?void 0:o.getMessage(r);if(!i)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${a} is not in the type registry`);const l=oe(i);if(Sa(i)&&Object.prototype.hasOwnProperty.call(t,"value"))De(i)(l,t.value,n);else{const s={};for(const c of Object.keys(t))c!=="@type"&&de(s,c,t[c]);De(i)(l,s,n)}vs(i,l,e)}function gc(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const n=t.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);const o=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(o))throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);if(o<dr||o>mr)throw new Error(`cannot decode message ${e.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);e.seconds=z.parse(o/1e3),e.nanos=0,n[7]&&(e.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9)}function Ac(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const n=t.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(n===null)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const o=Number(n[1]);if(o>315576e6||o<-315576e6)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);if(e.seconds=z.parse(o),typeof n[2]!="string")return;const a=n[2]+"0".repeat(9-n[2].length);e.nanos=parseInt(a),(o<0||Object.is(o,-0))&&(e.nanos=-e.nanos)}function pc(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);t!==""&&(e.paths=t.split(",").map(n=>{if(n.includes("_"))throw new Error(`cannot decode message ${e.$typeName} from JSON: path names must be lowerCamelCase`);return Ta(n)}))}function Gr(e,t,n){if(typeof t!="object"||t==null||Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`);const o=Object.keys(t);for(let a=0;a<o.length;a++){const r=o[a],i=oe(sr);Hn(i,t[r],n),de(e.fields,r,i)}}function Hn(e,t,n){if(++n.depth>n.recursionLimit)throw new Error(`cannot decode ${e.$typeName} from JSON: maximum recursion depth of ${n.recursionLimit} reached`);switch(typeof t){case"number":e.kind={case:"numberValue",value:t};break;case"string":e.kind={case:"stringValue",value:t};break;case"boolean":e.kind={case:"boolValue",value:t};break;case"object":if(t===null)e.kind={case:"nullValue",value:dn.NULL_VALUE};else if(Array.isArray(t)){const o=oe(Bs);Nr(o,t,n),e.kind={case:"listValue",value:o}}else{const o=oe(ys);Gr(o,t,n),e.kind={case:"structValue",value:o}}break;default:throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`)}return n.depth--,e}function Nr(e,t,n){if(!Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`);for(let o=0;o<t.length;o++){const a=oe(sr);Hn(a,t[o],n),e.values.push(a)}}function Qo(e){const t=f[e];return typeof t!="string"?e.toString():t[0].toLowerCase()+t.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var S=class Te extends Error{constructor(t,n=f.Unknown,o,a,r){super(Zc(t,n)),this.name="ConnectError",this.isWireError=!1,Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=t,this.code=n,this.metadata=new Headers(o??{}),this.details=a??[],this.cause=r}static from(t,n=f.Unknown){return t instanceof Te?t:t instanceof Error?t.name=="AbortError"||t.name=="TimeoutError"?new Te(t.message,f.Canceled):new Te(t.message,n,void 0,void 0,t):new Te(String(t),n,void 0,void 0,t)}static[Symbol.hasInstance](t){return t instanceof Error?Object.getPrototypeOf(t)===Te.prototype?!0:t.name==="ConnectError"&&"code"in t&&typeof t.code=="number"&&"metadata"in t&&"details"in t&&Array.isArray(t.details)&&"rawMessage"in t&&typeof t.rawMessage=="string"&&"cause"in t:!1}findDetails(t){const n=t.kind==="message"?{getMessage:a=>a===t.typeName?t:void 0}:t,o=[];for(const a of this.details){if("desc"in a){n.getMessage(a.desc.typeName)&&o.push(oe(a.desc,a.value));continue}const r=n.getMessage(a.type);if(r)try{o.push(dt(r,a.value))}catch{}}return o}};function Zc(e,t){return e.length?`[${Qo(t)}] ${e}`:`[${Qo(t)}]`}function Rc(e,t,n){try{const o=Bn(e);return t?dt(t,o,n):o}catch(o){throw S.from(o,f.DataLoss)}}function fc(e,t){const n={};for(const o of e.methods){const a=t(o);a!=null&&(n[o.localName]=a)}return n}var Gt=4294967295,Dt=Gt,Ec=1024;function Vc(e,t,n){if(t!=null||(t=Dt),e!=null||(e=Gt),n!=null||(n=Ec),t<1||t>Dt)throw new S(`writeMaxBytes ${t} must be >= 1 and <= ${Dt}`,f.Internal);if(e<1||e>Gt)throw new S(`readMaxBytes ${e} must be >= 1 and <= ${Gt}`,f.Internal);return{readMaxBytes:e,writeMaxBytes:t,compressMinBytes:n}}function Gc(e,t){if(t>e)throw new S(`message size ${t} is larger than configured writeMaxBytes ${e}`,f.ResourceExhausted)}function Wr(e,t,n=!1){if(t>e){let o=`message size is larger than configured readMaxBytes ${e}`;throw n&&(o=`message size ${t} is larger than configured readMaxBytes ${e}`),new S(o,f.ResourceExhausted)}}function Nc(e){return new Wc(e)}var Wc=class{constructor(e){this.readMaxBytes=e,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((e,t)=>e+t.byteLength,0)}decode(e){this.buf.push(e);const t=[];for(;;){let n=this.pop();if(!n)break;t.push(n)}return t}pop(){if(!(!this.env&&(this.env=this.head(),!this.env))&&this.cons(this.env.data)){const e=this.env;return this.env=void 0,e}}head(){if(!this.cons(this.header))return;const e=this.headerView.getUint8(0),t=this.headerView.getUint32(1);return Wr(this.readMaxBytes,t,!0),{flags:e,data:new Uint8Array(t)}}cons(e){const t=e.byteLength;if(this.byteLength<t)return!1;let n=0;for(;n<t;){const o=this.buf.shift();o.byteLength>t-n?(e.set(o.subarray(0,t-n),n),this.buf.unshift(o.subarray(t-n)),n+=t-n):(e.set(o,n),n+=o.byteLength)}return!0}};async function Sc(e,t,n){let{flags:o,data:a}=e;if((o&1)===1)throw new S("invalid envelope, already compressed",f.Internal);return t&&a.byteLength>=n&&(a=await t.compress(a),o=o|1),{data:a,flags:o}}async function vc(e,t,n){let{flags:o,data:a}=e;if((o&1)===1){if(!t)throw new S("received compressed envelope, but do not know how to decompress",f.Internal);a=await t.decompress(a,n),o=o^1}return{data:a,flags:o}}function Xc(e,t){const n=new Uint8Array(t.length+5);n.set(t,5);const o=new DataView(n.buffer,n.byteOffset,n.byteLength);return o.setUint8(0,e),o.setUint32(1,t.length),n}var fe=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(l,s){i=e[r](i),a(l,s,i.done,i.value)})}}function a(r,i,l,s){Promise.resolve(s).then(function(c){r({value:c,done:l})},i)}},k=function(e){return this instanceof k?(this.v=e,this):new k(e)},he=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(V){return Promise.resolve(V).then(Z,A)}}function l(Z,V){o[Z]&&(a[Z]=function(N){return new Promise(function(B,J){r.push([Z,N,B,J])>1||s(Z,N)})},V&&(a[Z]=V(a[Z])))}function s(Z,V){try{c(o[Z](V))}catch(N){R(r[0][3],N)}}function c(Z){Z.value instanceof k?Promise.resolve(Z.value.v).then(m,A):R(r[0][2],Z)}function m(Z){s("next",Z)}function A(Z){s("throw",Z)}function R(Z,V){Z(V),r.shift(),r.length&&s(r[0][0],r[0][1])}},Yc=function(e){var t,n;return t={},o("next"),o("throw",function(a){throw a}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(a,r){t[a]=e[a]?function(i){return(n=!n)?{value:k(e[a](i)),done:!1}:r?r(i):i}:r}};function Ic(e,...t){const[n,o,a]=yc(t);let r=e,i;return a?.propagateDownStreamError===!0&&(r=i=Sr(r)),r=Nt(r,...n,{propagateDownStreamError:!1}),o(r).catch(l=>i?i.abort(l).then(()=>Promise.reject(l)):Promise.reject(l))}function yc(e){let t;return typeof e[e.length-1]!="function"&&(t=e.pop()),[e,e.pop(),t]}function Nt(e,...t){return he(this,arguments,function*(){var o;const[a,r]=Bc(t);let i;const l=e[Symbol.asyncIterator]();let s={[Symbol.asyncIterator](){return l}};r?.propagateDownStreamError===!0&&(s=i=Sr(s));for(const m of a)s=m(s);const c=s[Symbol.asyncIterator]();try{for(;;){const m=yield k(c.next());if(m.done===!0)break;if(!i){yield yield k(m.value);continue}try{yield yield k(m.value)}catch(A){throw yield k(i.abort(A)),A}}}finally{r?.propagateDownStreamError===!0&&((o=l.return)===null||o===void 0||o.call(l).catch(()=>{}))}})}function Bc(e){let t;return typeof e[e.length-1]!="function"&&(t=e.pop()),[e,t]}function Mo(e,t,n){return t===void 0||n===void 0?function(o){return he(this,arguments,function*(){var a,r,i,l;try{for(var s=!0,c=fe(o),m;m=yield k(c.next()),a=m.done,!a;s=!0){l=m.value,s=!1;const A=l;yield yield k({flags:0,data:e.serialize(A)})}}catch(A){r={error:A}}finally{try{!s&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}:function(o){return he(this,arguments,function*(){var a,r,i,l;try{for(var s=!0,c=fe(o),m;m=yield k(c.next()),a=m.done,!a;s=!0){l=m.value,s=!1;const A=l;let R,Z=0;A.end?(Z=Z|t,R=n.serialize(A.value)):R=e.serialize(A.value),yield yield k({flags:Z,data:R})}}catch(A){r={error:A}}finally{try{!s&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}}function Oo(e,t,n){return n&&t!==void 0?function(o){return he(this,arguments,function*(){var a,r,i,l;try{for(var s=!0,c=fe(o),m;m=yield k(c.next()),a=m.done,!a;s=!0){l=m.value,s=!1;const{flags:A,data:R}=l;(A&t)===t?yield yield k({value:n.parse(R),end:!0}):yield yield k({value:e.parse(R),end:!1})}}catch(A){r={error:A}}finally{try{!s&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}:function(o){return he(this,arguments,function*(){var a,r,i,l;try{for(var s=!0,c=fe(o),m;m=yield k(c.next()),a=m.done,!a;s=!0){l=m.value,s=!1;const{flags:A,data:R}=l;if(t!==void 0&&(A&t)===t){if(n===null)throw new S("unexpected end flag",f.InvalidArgument);continue}yield yield k(e.parse(R))}}catch(A){r={error:A}}finally{try{!s&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}}function Do(e,t){return function(n){return he(this,arguments,function*(){var o,a,r,i;try{for(var l=!0,s=fe(n),c;c=yield k(s.next()),o=c.done,!o;l=!0)i=c.value,l=!1,yield yield k(yield k(Sc(i,e,t)))}catch(m){a={error:m}}finally{try{!l&&!o&&(r=s.return)&&(yield k(r.call(s)))}finally{if(a)throw a.error}}})}}function _o(e,t){return function(n){return he(this,arguments,function*(){var o,a,r,i;try{for(var l=!0,s=fe(n),c;c=yield k(s.next()),o=c.done,!o;l=!0)i=c.value,l=!1,yield yield k(yield k(vc(i,e,t)))}catch(m){a={error:m}}finally{try{!l&&!o&&(r=s.return)&&(yield k(r.call(s)))}finally{if(a)throw a.error}}})}}function Po(){return function(e){return he(this,arguments,function*(){var t,n,o,a;try{for(var r=!0,i=fe(e),l;l=yield k(i.next()),t=l.done,!t;r=!0){a=l.value,r=!1;const{flags:s,data:c}=a;yield yield k(Xc(s,c))}}catch(s){n={error:s}}finally{try{!r&&!t&&(o=i.return)&&(yield k(o.call(i)))}finally{if(n)throw n.error}}})}}function $o(e){return function(t){return he(this,arguments,function*(){var n,o,a,r;const i=Nc(e);try{for(var l=!0,s=fe(t),c;c=yield k(s.next()),n=c.done,!n;l=!0){r=c.value,l=!1;const m=r;for(const A of i.decode(m))yield yield k(A)}}catch(m){o={error:m}}finally{try{!l&&!n&&(a=s.return)&&(yield k(a.call(s)))}finally{if(o)throw o.error}}if(i.byteLength>0)throw new S("protocol error: incomplete envelope",f.InvalidArgument)})}}function Sr(e){const t=e[Symbol.asyncIterator]();if(t.throw===void 0)throw new Error("AsyncIterable does not implement throw");const n=t;let o,a,r={next(){return a=n.next().finally(()=>{a=void 0}),a},throw(l){return n.throw(l)}};t.return!==void 0&&(r=Object.assign(Object.assign({},r),{return(l){return n.return(l)}}));let i=!1;return{abort(l){if(o)return o.state;const s=()=>n.throw(l).then(c=>c.done===!0?"completed":"caught",()=>"rethrown");return a?(o={reason:l,state:a.then(s,s)},o.state):(o={reason:l,state:s()},o.state)},[Symbol.asyncIterator](){if(i)throw new Error("AsyncIterable cannot be re-used");return i=!0,r}}}function vr(e){return he(this,arguments,function*(){yield k(yield*Yc(fe(e)))})}var Xr=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(l,s){i=e[r](i),a(l,s,i.done,i.value)})}}function a(r,i,l,s){Promise.resolve(s).then(function(c){r({value:c,done:l})},i)}},Pe=function(e){return this instanceof Pe?(this.v=e,this):new Pe(e)},Cc=function(e){var t,n;return t={},o("next"),o("throw",function(a){throw a}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(a,r){t[a]=e[a]?function(i){return(n=!n)?{value:Pe(e[a](i)),done:!1}:r?r(i):i}:r}},Fc=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(V){return Promise.resolve(V).then(Z,A)}}function l(Z,V){o[Z]&&(a[Z]=function(N){return new Promise(function(B,J){r.push([Z,N,B,J])>1||s(Z,N)})},V&&(a[Z]=V(a[Z])))}function s(Z,V){try{c(o[Z](V))}catch(N){R(r[0][3],N)}}function c(Z){Z.value instanceof Pe?Promise.resolve(Z.value.v).then(m,A):R(r[0][2],Z)}function m(Z){s("next",Z)}function A(Z){s("throw",Z)}function R(Z,V){Z(V),r.shift(),r.length&&s(r[0][0],r[0][1])}};function Ge(e,t){return fc(e,n=>{switch(n.methodKind){case"unary":return Uc(t,n);case"server_streaming":return wc(t,n);case"client_streaming":return Jc(t,n);case"bidi_streaming":return kc(t,n);default:return null}})}function Uc(e,t){return async(n,o)=>{var a,r;const i=await e.unary(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);return(a=o?.onHeader)===null||a===void 0||a.call(o,i.header),(r=o?.onTrailer)===null||r===void 0||r.call(o,i.trailer),i.message}}function wc(e,t){return(n,o)=>Yr(e.stream(t,o?.signal,o?.timeoutMs,o?.headers,vr([n]),o?.contextValues),o)}function Jc(e,t){return async(n,o)=>{var a,r,i,l,s,c;const m=await e.stream(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);(s=o?.onHeader)===null||s===void 0||s.call(o,m.header);let A,R=0;try{for(var Z=!0,V=Xr(m.message),N;N=await V.next(),a=N.done,!a;Z=!0)l=N.value,Z=!1,A=l,R++}catch(B){r={error:B}}finally{try{!Z&&!a&&(i=V.return)&&await i.call(V)}finally{if(r)throw r.error}}if(!A)throw new S("protocol error: missing response message",f.Unimplemented);if(R>1)throw new S("protocol error: received extra messages for client streaming method",f.Unimplemented);return(c=o?.onTrailer)===null||c===void 0||c.call(o,m.trailer),A}}function kc(e,t){return(n,o)=>Yr(e.stream(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues),o)}function Yr(e,t){const n=(function(){return Fc(this,arguments,function*(){var o,a;const r=yield Pe(e);(o=t?.onHeader)===null||o===void 0||o.call(t,r.header),yield Pe(yield*Cc(Xr(r.message))),(a=t?.onTrailer)===null||a===void 0||a.call(t,r.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function xc(...e){const t=new AbortController,n=e.filter(a=>a!==void 0).concat(t.signal);for(const a of n){if(a.aborted){o.apply(a);break}a.addEventListener("abort",o)}function o(){t.signal.aborted||t.abort(st(this));for(const a of n)a.removeEventListener("abort",o)}return t}function Kc(e){const t=new AbortController,n=()=>{t.abort(new S("the operation timed out",f.DeadlineExceeded))};let o;return e!==void 0&&(e<=0?n():o=setTimeout(n,e)),{signal:t.signal,cleanup:()=>clearTimeout(o)}}function st(e){if(!e.aborted)return;if(e.reason!==void 0)return e.reason;const t=new Error("This operation was aborted");return t.name="AbortError",t}function qo(){return{get(e){return e.id in this?this[e.id]:e.defaultValue},set(e,t){return this[e.id]=t,this},delete(e){return delete this[e.id],this}}}function zc(e){const t=new Headers,n=new TextDecoder().decode(e).split(`\r
29
- `);for(const o of n){if(o==="")continue;const a=o.indexOf(":");if(a>0){const r=o.substring(0,a).trim(),i=o.substring(a+1).trim();t.append(r,i)}}return t}function Lc(e){const t=[];return e.forEach((n,o)=>{t.push(`${o}: ${n}\r
30
- `)}),new TextEncoder().encode(t.join(""))}function ea(){return{serialize:Lc,parse:zc}}var jc="Content-Type",Ir="Grpc-Encoding",Hc="Grpc-Accept-Encoding",Tc="Grpc-Timeout",yr="Grpc-Status";var Qc="Grpc-Status-Details-Bin",Mc="User-Agent",Oc="X-User-Agent",Dc="X-Grpc-Web",_c="application/grpc-web+proto",Pc="application/grpc-web+json";function Ne(e,t,...n){if(n.length>0)throw new Error;return e.services[t]}var $c=ee("CgxzdGF0dXMucHJvdG8SCmdvb2dsZS5ycGMiTgoGU3RhdHVzEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCRIlCgdkZXRhaWxzGAMgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUJeCg5jb20uZ29vZ2xlLnJwY0ILU3RhdHVzUHJvdG9QAVo3Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvc3RhdHVzO3N0YXR1c6ICA1JQQ2IGcHJvdG8z",[nr]),qc=G($c,0);function Br(e){var t;const n=e.get(Qc);if(n!=null){const a=Rc(n,qc);if(a.code==0)return;const r=new S(a.message,a.code,e);return r.details=a.details.map(i=>({type:i.typeUrl.substring(i.typeUrl.lastIndexOf("/")+1),value:i.value})),r.isWireError=!0,r}const o=e.get(yr);if(o!=null){if(o==="0")return;const a=parseInt(o,10);let r;return a in f?r=new S(decodeURIComponent((t=e.get("Grpc-Message"))!==null&&t!==void 0?t:""),a,e):r=new S(`invalid grpc-status: ${o}`,f.Internal,e),r.isWireError=!0,r}}function ta(e,t){return e.toString().replace(/\/?$/,`/${t.parent.typeName}/${t.name}`)}function Cr(e,t){return oe(e,t)}function eu(e,t){function n(o){return o.done===!0?o:{done:o.done,value:Cr(e,o.value)}}return{[Symbol.asyncIterator](){const o=t[Symbol.asyncIterator](),a={next:()=>o.next().then(n)};return o.throw!==void 0&&(a.throw=r=>o.throw(r).then(n)),o.return!==void 0&&(a.return=r=>o.return(r).then(n)),a}}}function Fr(e,t){if(!t)return e;for(const n of t.concat().reverse())e=n(e);return e}function tu(e){var t;const n=Object.assign({},e);return(t=n.ignoreUnknownFields)!==null&&t!==void 0||(n.ignoreUnknownFields=!0),n}function na(e,t,n,o){const a=pt(oa(e.input,t),o),r=pt(aa(e.input,n),o),i=pt(oa(e.output,t),o),l=pt(aa(e.output,n),o);return{getI(s){return s?a:r},getO(s){return s?i:l}}}function pt(e,t){return{serialize(n){const o=e.serialize(n);return Gc(t.writeMaxBytes,o.byteLength),o},parse(n){return Wr(t.readMaxBytes,n.byteLength,!0),e.parse(n)}}}function oa(e,t){return{parse(n){try{return dt(e,n,t)}catch(o){throw new S(`parse binary: ${o instanceof Error?o.message:String(o)}`,f.Internal)}},serialize(n){try{return or(e,n,t)}catch(o){throw new S(`serialize binary: ${o instanceof Error?o.message:String(o)}`,f.Internal)}}}}function aa(e,t){var n,o;const a=(n=t?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,r=(o=t?.textDecoder)!==null&&o!==void 0?o:new TextDecoder,i=tu(t);return{parse(l){try{return tc(e,r.decode(l),i)}catch(s){throw S.from(s,f.InvalidArgument)}},serialize(l){try{const s=xs(e,l,i);return a.encode(s)}catch(s){throw S.from(s,f.Internal)}}}}function nu(e){const t=Fr(e.next,e.interceptors),[n,o,a]=Ur(e);return t(Object.assign(Object.assign({},e.req),{message:Cr(e.req.method.input,e.req.message),signal:n})).then(r=>(a(),r),o)}function ou(e){const t=Fr(e.next,e.interceptors),[n,o,a]=Ur(e),r=Object.assign(Object.assign({},e.req),{message:eu(e.req.method.input,e.req.message),signal:n});let i=!1;return n.addEventListener("abort",function(){var l,s;const c=e.req.message[Symbol.asyncIterator]();i||(l=c.throw)===null||l===void 0||l.call(c,this.reason).catch(()=>{}),(s=c.return)===null||s===void 0||s.call(c).catch(()=>{})}),t(r).then(l=>Object.assign(Object.assign({},l),{message:{[Symbol.asyncIterator](){const s=l.message[Symbol.asyncIterator]();return{next(){return!i&&n.aborted?o(st(n)):s.next().then(c=>(c.done==!0&&(i=!0,a()),c),o)}}}}}),o)}function Ur(e){const{signal:t,cleanup:n}=Kc(e.timeoutMs),o=xc(e.signal,t);return[o.signal,function(r){const i=o.signal.aborted?S.from(st(o.signal),f.Canceled):S.from(r);return o.abort(i),n(),Promise.reject(i)},function(){n(),o.abort()}]}var au=ee("CiVoYWdpY29kZS9jb21tb24vdjEvZXJyb3JfZGV0YWlsLnByb3RvEhJoYWdpY29kZS5jb21tb24udjEiQgoLRXJyb3JEZXRhaWwSDAoEY29kZRgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIoqgIlUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLkNvbW1vbi5WMWIGcHJvdG8z",[Ve]),ru=G(au,0),P={USAGE:2,HTTP_BAD_REQUEST:20,HTTP_UNAUTHORIZED:21,HTTP_FORBIDDEN:23,HTTP_NOT_FOUND:24,HTTP_CONFLICT:29,OPERATION_FAILED:30,HTTP_CLIENT_ERROR:40,HTTP_SERVER_ERROR:50,TRANSPORT:60,UNKNOWN:70},U=class extends Error{constructor(e){super(e),this.name="CliUsageError"}},mt=class extends Error{constructor(e){super(e),this.name="CliOperationFailedError"}},Ke=class extends Error{status;details;constructor(e,t,n){super(t),this.name="CliHttpError",this.status=e,this.details=n}};function Tn(e){if(!(!e||typeof e!="object"||Array.isArray(e)))return e}function $e(e,t){const n=Tn(e)?.[t];return typeof n=="string"&&n.trim()?n.trim():void 0}function wr(e){return e.includes("fetch failed")||e.includes("ECONNREFUSED")||e.includes("ENOTFOUND")||e.includes("ECONNRESET")||e.includes("ETIMEDOUT")||e.includes("EHOSTUNREACH")||e.includes("EAI_AGAIN")||e.includes("Failed to parse URL")||e.includes("Invalid URL")}function ra(e){switch(e){case 400:return P.HTTP_BAD_REQUEST;case 401:return P.HTTP_UNAUTHORIZED;case 403:return P.HTTP_FORBIDDEN;case 404:return P.HTTP_NOT_FOUND;case 409:return P.HTTP_CONFLICT;default:return e&&e>=400&&e<500?P.HTTP_CLIENT_ERROR:e&&e>=500?P.HTTP_SERVER_ERROR:P.UNKNOWN}}var iu={[f.InvalidArgument]:400,[f.OutOfRange]:400,[f.Unauthenticated]:401,[f.PermissionDenied]:403,[f.NotFound]:404,[f.AlreadyExists]:409,[f.FailedPrecondition]:409,[f.Aborted]:409,[f.Unimplemented]:501,[f.Internal]:500,[f.Unknown]:500,[f.DataLoss]:500,[f.Unavailable]:503,[f.DeadlineExceeded]:504},lu=/exceeds?\s+the\s+maximum|too\s+large|payload\s+too\s+large/i;function su(e){return e.code===f.ResourceExhausted?lu.test(e.rawMessage)?413:429:iu[e.code]??500}function cu(e){return e.code!==f.Unavailable&&e.code!==f.Unknown&&e.code!==f.Internal&&e.code!==f.Aborted?!1:e.cause instanceof Error||wr(e.rawMessage)}function Jr(e){if(!(e instanceof S)||e.code===f.Canceled||cu(e))return;const[t]=e.findDetails(ru),n=t&&t.code.length>0?t.code:void 0,o=t?.data??{},a=e.rawMessage.trim()||`The backend rejected the request (${f[e.code]}).`;return{status:su(e),message:a,code:n,body:{error:a,...n?{code:n}:{},...o}}}function ia(e,t){const n=t.baseUrl??"the configured backend";return{exitCode:P.TRANSPORT,message:/Failed to parse URL|Invalid URL/i.test(e)?`Invalid HagiCode backend base URL: ${n}`:`Cannot reach HagiCode backend at ${n}. Check that the backend is running and the base URL is correct.`}}function kr(e,t={}){if(e instanceof U)return{exitCode:P.USAGE,message:e.message};if(e instanceof mt)return{exitCode:P.OPERATION_FAILED,message:e.message};if(e instanceof Ke)return{exitCode:ra(e.status),status:e.status,message:e.message,details:e.details};if(e instanceof S){const n=Jr(e);if(n){const o=du(n.body);return{exitCode:ra(n.status),status:n.status,message:o.length>0?[n.message,...o].join(`
31
- `):n.message,errorCode:$e(n.body,"errorCode")??n.code,correlationId:$e(n.body,"correlationId"),details:n.body}}return e.code===f.Canceled?{exitCode:P.UNKNOWN,message:"The request was cancelled."}:ia(e.rawMessage,t)}return e instanceof Error?wr(e.message)?ia(e.message,t):{exitCode:P.UNKNOWN,message:e.message}:{exitCode:P.UNKNOWN,message:String(e)}}function uu(e){const t=Tn(e)?.errors;return Array.isArray(t)?t.flatMap(n=>{const o=$e(n,"field"),a=$e(n,"message");return o&&a?[` - ${o}: ${a}`]:[]}):[]}function du(e){const t=Tn(e)?.fieldErrors;return Array.isArray(t)?t.flatMap(n=>{const o=$e(n,"field"),a=$e(n,"message");return o&&a?[` - ${o}: ${a}`]:[]}):[]}function xr(e,t={}){if(t.json)return`${JSON.stringify({error:{message:e.message,status:e.status,exitCode:e.exitCode,errorCode:e.errorCode,correlationId:e.correlationId,details:e.details}},null,2)}
32
- `;const n=[e.status?`status=${e.status}`:void 0,e.errorCode?`errorCode=${e.errorCode}`:void 0,e.correlationId?`correlationId=${e.correlationId}`:void 0].filter(Boolean),o=n.length>0?` (${n.join(", ")})`:"";return[`${e.message}${o}`,...uu(e.details)].join(`
23
+ `),this.outputHelp({error:!0}));const p=m||{},g=p.exitCode||1,A=p.code||"commander.error";this._exit(g,A,u)}_parseOptionsEnv(){this.options.forEach(u=>{if(u.envVar&&u.envVar in r.env){const m=u.attributeName();(this.getOptionValue(m)===void 0||["default","config","env"].includes(this.getOptionValueSource(m)))&&(u.required||u.optional?this.emit(`optionEnv:${u.name()}`,r.env[u.envVar]):this.emit(`optionEnv:${u.name()}`))}})}_parseOptionsImplied(){const u=new f(this.options),m=p=>this.getOptionValue(p)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(p));this.options.filter(p=>p.implied!==void 0&&m(p.attributeName())&&u.valueFromOption(this.getOptionValue(p.attributeName()),p)).forEach(p=>{Object.keys(p.implied).filter(g=>!m(g)).forEach(g=>{this.setOptionValueWithSource(g,p.implied[g],"implied")})})}missingArgument(u){const m=`error: missing required argument '${u}'`;this.error(m,{code:"commander.missingArgument"})}optionMissingArgument(u){const m=`error: option '${u.flags}' argument missing`;this.error(m,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(u){const m=`error: required option '${u.flags}' not specified`;this.error(m,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(u,m){const p=E=>{const I=E.attributeName(),U=this.getOptionValue(I),H=this.options.find(x=>x.negate&&I===x.attributeName()),W=this.options.find(x=>!x.negate&&I===x.attributeName());return H&&(H.presetArg===void 0&&U===!1||H.presetArg!==void 0&&U===H.presetArg)?H:W||E},g=E=>{const I=p(E),U=I.attributeName();return this.getOptionValueSource(U)==="env"?`environment variable '${I.envVar}'`:`option '${I.flags}'`},A=`error: ${g(u)} cannot be used with ${g(m)}`;this.error(A,{code:"commander.conflictingOption"})}unknownOption(u){if(this._allowUnknownOption)return;let m="";if(u.startsWith("--")&&this._showSuggestionAfterError){let g=[],A=this;do{const E=A.createHelp().visibleOptions(A).filter(I=>I.long).map(I=>I.long);g=g.concat(E),A=A.parent}while(A&&!A._enablePositionalOptions);m=Z(u,g)}const p=`error: unknown option '${u}'${m}`;this.error(p,{code:"commander.unknownOption"})}_excessArguments(u){if(this._allowExcessArguments)return;const m=this.registeredArguments.length,p=m===1?"":"s",g=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${m} argument${p} but got ${u.length}.`;this.error(g,{code:"commander.excessArguments"})}unknownCommand(){const u=this.args[0];let m="";if(this._showSuggestionAfterError){const g=[];this.createHelp().visibleCommands(this).forEach(A=>{g.push(A.name()),A.alias()&&g.push(A.alias())}),m=Z(u,g)}const p=`error: unknown command '${u}'${m}`;this.error(p,{code:"commander.unknownCommand"})}version(u,m,p){if(u===void 0)return this._version;this._version=u,m=m||"-V, --version",p=p||"output the version number";const g=this.createOption(m,p);return this._versionOptionName=g.attributeName(),this._registerOption(g),this.on("option:"+g.name(),()=>{this._outputConfiguration.writeOut(`${u}
24
+ `),this._exit(0,"commander.version",u)}),this}description(u,m){return u===void 0&&m===void 0?this._description:(this._description=u,m&&(this._argsDescription=m),this)}summary(u){return u===void 0?this._summary:(this._summary=u,this)}alias(u){if(u===void 0)return this._aliases[0];let m=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(m=this.commands[this.commands.length-1]),u===m._name)throw new Error("Command alias can't be the same as its name");const p=this.parent?._findCommand(u);if(p){const g=[p.name()].concat(p.aliases()).join("|");throw new Error(`cannot add alias '${u}' to command '${this.name()}' as already have command '${g}'`)}return m._aliases.push(u),this}aliases(u){return u===void 0?this._aliases:(u.forEach(m=>this.alias(m)),this)}usage(u){if(u===void 0){if(this._usage)return this._usage;const m=this.registeredArguments.map(p=>s(p));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?m:[]).join(" ")}return this._usage=u,this}name(u){return u===void 0?this._name:(this._name=u,this)}helpGroup(u){return u===void 0?this._helpGroupHeading??"":(this._helpGroupHeading=u,this)}commandsGroup(u){return u===void 0?this._defaultCommandGroup??"":(this._defaultCommandGroup=u,this)}optionsGroup(u){return u===void 0?this._defaultOptionGroup??"":(this._defaultOptionGroup=u,this)}_initOptionGroup(u){this._defaultOptionGroup&&!u.helpGroupHeading&&u.helpGroup(this._defaultOptionGroup)}_initCommandGroup(u){this._defaultCommandGroup&&!u.helpGroup()&&u.helpGroup(this._defaultCommandGroup)}nameFromFilename(u){return this._name=o.basename(u,o.extname(u)),this}executableDir(u){return u===void 0?this._executableDir:(this._executableDir=u,this)}helpInformation(u){const m=this.createHelp(),p=this._getOutputContext(u);m.prepareContext({error:p.error,helpWidth:p.helpWidth,outputHasColors:p.hasColors});const g=m.formatHelp(this,m);return p.hasColors?g:this._outputConfiguration.stripColor(g)}_getOutputContext(u){u=u||{};const m=!!u.error;let p,g,A;return m?(p=I=>this._outputConfiguration.writeErr(I),g=this._outputConfiguration.getErrHasColors(),A=this._outputConfiguration.getErrHelpWidth()):(p=I=>this._outputConfiguration.writeOut(I),g=this._outputConfiguration.getOutHasColors(),A=this._outputConfiguration.getOutHelpWidth()),{error:m,write:I=>(g||(I=this._outputConfiguration.stripColor(I)),p(I)),hasColors:g,helpWidth:A}}outputHelp(u){let m;typeof u=="function"&&(m=u,u=void 0);const p=this._getOutputContext(u),g={error:p.error,write:p.write,command:this};this._getCommandAndAncestors().reverse().forEach(E=>E.emit("beforeAllHelp",g)),this.emit("beforeHelp",g);let A=this.helpInformation({error:p.error});if(m&&(A=m(A),typeof A!="string"&&!Buffer.isBuffer(A)))throw new Error("outputHelp callback must return a string or a Buffer");p.write(A),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",g),this._getCommandAndAncestors().forEach(E=>E.emit("afterAllHelp",g))}helpOption(u,m){return typeof u=="boolean"?(u?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(u??"-h, --help",m??"display help for command"),(u||m)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(u){return this._helpOption=u,this._initOptionGroup(u),this}help(u){this.outputHelp(u);let m=Number(r.exitCode??0);m===0&&u&&typeof u!="function"&&u.error&&(m=1),this._exit(m,"commander.help","(outputHelp)")}addHelpText(u,m){const p=["beforeAll","before","after","afterAll"];if(!p.includes(u))throw new Error(`Unexpected value for position to addHelpText.
25
+ Expecting one of '${p.join("', '")}'`);const g=`${u}Help`;return this.on(g,A=>{let E;typeof m=="function"?E=m({error:A.error,command:A.command}):E=m,E&&A.write(`${E}
26
+ `)}),this}_outputHelpIfRequested(u){const m=this._getHelpOption();m&&u.find(p=>m.is(p))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function N(J){return J.map(u=>{if(!u.startsWith("--inspect"))return u;let m,p="127.0.0.1",g="9229",A;return(A=u.match(/^(--inspect(-brk)?)$/))!==null?m=A[1]:(A=u.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(m=A[1],/^\d+$/.test(A[3])?g=A[3]:p=A[3]):(A=u.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(m=A[1],p=A[3],g=A[4]),m&&g!=="0"?`${m}=${p}:${parseInt(g)+1}`:u})}function B(){if(r.env.NO_COLOR||r.env.FORCE_COLOR==="0"||r.env.FORCE_COLOR==="false")return!1;if(r.env.FORCE_COLOR||r.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=V,e.useColor=B})),Ui=xe((e=>{var{Argument:t}=Rn(),{Command:n}=wi(),{CommanderError:o,InvalidArgumentError:a}=Ct(),{Help:r}=Ea(),{Option:i}=Va();e.program=new n,e.createCommand=s=>new n(s),e.createOption=(s,l)=>new i(s,l),e.createArgument=(s,l)=>new t(s,l),e.Command=n,e.Option=i,e.Argument=t,e.Help=r,e.CommanderError=o,e.InvalidArgumentError=a,e.InvalidOptionArgumentError=a})),Ji=dt(Ui(),1),{program:og,createCommand:ag,createArgument:rg,createOption:ig,CommanderError:ki,InvalidArgumentError:sg,InvalidOptionArgumentError:lg,Command:xi,Argument:cg,Option:ye,Help:ug}=Ji.default;function S(e){return`${JSON.stringify(e,null,2)}
27
+ `}var R;(function(e){e[e.Canceled=1]="Canceled",e[e.Unknown=2]="Unknown",e[e.InvalidArgument=3]="InvalidArgument",e[e.DeadlineExceeded=4]="DeadlineExceeded",e[e.NotFound=5]="NotFound",e[e.AlreadyExists=6]="AlreadyExists",e[e.PermissionDenied=7]="PermissionDenied",e[e.ResourceExhausted=8]="ResourceExhausted",e[e.FailedPrecondition=9]="FailedPrecondition",e[e.Aborted=10]="Aborted",e[e.OutOfRange=11]="OutOfRange",e[e.Unimplemented=12]="Unimplemented",e[e.Internal=13]="Internal",e[e.Unavailable=14]="Unavailable",e[e.DataLoss=15]="DataLoss",e[e.Unauthenticated=16]="Unauthenticated"})(R||(R={}));function En(e,t){return e!==null&&typeof e=="object"&&"$typeName"in e&&typeof e.$typeName=="string"?t===void 0?!0:t.typeName===e.$typeName:!1}var b;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(b||(b={}));function Ki(){const e=this.buf;let t=this.pos,n=0,o=0;for(let r=0;r<28;r+=7){const i=e[t++];if(n|=(i&127)<<r,(i&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}}const a=e[t++];if(n|=(a&15)<<28,o=(a&112)>>4,(a&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}for(let r=3;r<=31;r+=7){const i=e[t++];if(o|=(i&127)<<r,(i&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}}throw new Error("invalid varint")}var Et=4294967296;function ao(e){const t=e[0]==="-";t&&(e=e.slice(1));const n=1e6;let o=0,a=0;function r(i,s){const l=Number(e.slice(i,s));a*=n,o=o*n+l,o>=Et&&(a=a+(o/Et|0),o=o%Et)}return r(-24,-18),r(-18,-12),r(-12,-6),r(-6),t?Wa(o,a):Vn(o,a)}function zi(e,t){let n=Vn(e,t);const o=n.hi&2147483648;o&&(n=Wa(n.lo,n.hi));const a=Na(n.lo,n.hi);return o?"-"+a:a}function Na(e,t){if({lo:e,hi:t}=Li(e,t),t<=2097151)return String(Et*t+e);const n=e&16777215,o=(e>>>24|t<<8)&16777215,a=t>>16&65535;let r=n+o*6777216+a*6710656,i=o+a*8147497,s=a*2;const l=1e7;return r>=l&&(i+=Math.floor(r/l),r%=l),i>=l&&(s+=Math.floor(i/l),i%=l),s.toString()+ro(i)+ro(r)}function Li(e,t){return{lo:e>>>0,hi:t>>>0}}function Vn(e,t){return{lo:e|0,hi:t|0}}function Wa(e,t){return t=~t,e?e=~e+1:t+=1,Vn(e,t)}var ro=e=>{const t=String(e);return"0000000".slice(t.length)+t};function ji(e,t){if(e>>>0<128){t.push(e);return}if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function Hi(){let e=this.buf[this.pos++];if((e&128)===0)return this.assertBounds(),e;let t=e&127;if(e=this.buf[this.pos++],t|=(e&127)<<7,(e&128)===0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,(e&128)===0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,(e&128)===0)return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;(e&128)!==0&&n<10;n++)e=this.buf[this.pos++];if((e&128)!==0)throw new Error("invalid varint");return this.assertBounds(),t>>>0}var z=Ti();function Ti(){const e=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"&&(globalThis.Deno||globalThis.Bun||typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(r){const i=typeof r=="bigint"?r:BigInt(r);if(i>n||i<t)throw new Error(`invalid int64: ${r}`);return i},uParse(r){const i=typeof r=="bigint"?r:BigInt(r);if(i>a||i<o)throw new Error(`invalid uint64: ${r}`);return i},enc(r){return e.setBigInt64(0,this.parse(r),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(r){return e.setBigInt64(0,this.uParse(r),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec(r,i){return e.setInt32(0,r,!0),e.setInt32(4,i,!0),e.getBigInt64(0,!0)},uDec(r,i){return e.setInt32(0,r,!0),e.setInt32(4,i,!0),e.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(t){return typeof t!="string"&&(t=t.toString()),io(t),t},uParse(t){return typeof t!="string"&&(t=t.toString()),so(t),t},enc(t){return typeof t!="string"&&(t=t.toString()),io(t),ao(t)},uEnc(t){return typeof t!="string"&&(t=t.toString()),so(t),ao(t)},dec(t,n){return zi(t,n)},uDec(t,n){return Na(t,n)}}}function io(e){if(!/^-?[0-9]+$/.test(e))throw new Error("invalid int64: "+e)}function so(e){if(!/^[0-9]+$/.test(e))throw new Error("invalid uint64: "+e)}function Re(e,t){switch(e){case b.STRING:return"";case b.BOOL:return!1;case b.DOUBLE:case b.FLOAT:return 0;case b.INT64:case b.UINT64:case b.SFIXED64:case b.FIXED64:case b.SINT64:return t?"0":z.zero;case b.BYTES:return new Uint8Array(0);default:return 0}}function Qi(e,t){switch(e){case b.BOOL:return t===!1;case b.STRING:return t==="";case b.BYTES:return t instanceof Uint8Array&&!t.byteLength;case b.DOUBLE:case b.FLOAT:return Object.is(t,0);default:return t==0}}var Sa=2,ie=Symbol.for("reflect unsafe local");function Mi(e,t){const n=e[t.localName].case;return n===void 0?n:t.fields.find(o=>o.localName===n)}function Oi(e,t){const n=t.localName;if(t.oneof)return e[t.oneof.localName].case===n;if(t.presence!=Sa)return e[n]!==void 0&&Object.prototype.hasOwnProperty.call(e,n);switch(t.fieldKind){case"list":return e[n].length>0;case"map":return Object.keys(e[n]).length>0;case"scalar":return!Qi(t.scalar,e[n]);case"enum":return e[n]!==t.enum.values[0].number}throw new Error("message field with implicit presence")}function rt(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==void 0}function Di(e,t){if(t.oneof){const n=e[t.oneof.localName];return n.case===t.localName?n.value:void 0}return e[t.localName]}function _i(e,t,n){t.oneof?e[t.oneof.localName]={case:t.localName,value:n}:e[t.localName]=n}function de(e,t,n){t==="__proto__"?Object.defineProperty(e,"__proto__",{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function Pi(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function $i(e,t){const n=t.localName;if(t.oneof){const o=t.oneof.localName;e[o].case===n&&(e[o]={case:void 0})}else if(t.presence!=Sa)delete e[n];else switch(t.fieldKind){case"map":e[n]={};break;case"list":e[n]=[];break;case"enum":e[n]=t.enum.values[0].number;break;case"scalar":e[n]=Re(t.scalar,t.longAsString);break}}function Be(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Gn(e,t){var n,o,a,r;if(Be(e)&&ie in e&&"add"in e&&"field"in e&&typeof e.field=="function"){if(t!==void 0){const i=t,s=e.field();return i.listKind==s.listKind&&i.scalar===s.scalar&&((n=i.message)===null||n===void 0?void 0:n.typeName)===((o=s.message)===null||o===void 0?void 0:o.typeName)&&((a=i.enum)===null||a===void 0?void 0:a.typeName)===((r=s.enum)===null||r===void 0?void 0:r.typeName)}return!0}return!1}function Nn(e,t){var n,o,a,r;if(Be(e)&&ie in e&&"has"in e&&"field"in e&&typeof e.field=="function"){if(t!==void 0){const i=t,s=e.field();return i.mapKey===s.mapKey&&i.mapKind==s.mapKind&&i.scalar===s.scalar&&((n=i.message)===null||n===void 0?void 0:n.typeName)===((o=s.message)===null||o===void 0?void 0:o.typeName)&&((a=i.enum)===null||a===void 0?void 0:a.typeName)===((r=s.enum)===null||r===void 0?void 0:r.typeName)}return!0}return!1}function Wn(e,t){return Be(e)&&ie in e&&"desc"in e&&Be(e.desc)&&e.desc.kind==="message"&&(t===void 0||e.desc.typeName==t.typeName)}function qi(e){return Xa(e.$typeName)}function Ke(e){const t=e.fields[0];return Xa(e.typeName)&&t!==void 0&&t.fieldKind=="scalar"&&t.name=="value"&&t.number==1}function va(e){switch(e.typeName){case"google.protobuf.Any":case"google.protobuf.Timestamp":case"google.protobuf.Duration":case"google.protobuf.FieldMask":case"google.protobuf.Struct":case"google.protobuf.Value":case"google.protobuf.ListValue":return!0;default:return Ke(e)}}var es=new Set(["google.protobuf.DoubleValue","google.protobuf.FloatValue","google.protobuf.Int64Value","google.protobuf.UInt64Value","google.protobuf.Int32Value","google.protobuf.UInt32Value","google.protobuf.BoolValue","google.protobuf.StringValue","google.protobuf.BytesValue"]);function Xa(e){return es.has(e)}var ts=999,ns=998,Ya=2;function oe(e,t){return En(t,e)?t:Ia(e)(t)}var lo=new WeakMap;function Ia(e){let t=lo.get(e);return t===void 0&&(t=os(e),lo.set(e,t)),t}var sn=0,ya=1,Ba=2,Ca=3;function os(e){const t=e.typeName,{properties:n,prototype:o}=as(e);return a=>{let r;o!==void 0?(r=Object.create(o),r.$typeName=t):r={$typeName:t};for(let i=0;i<n.length;i++){const s=n[i],l=s.name,c=a?.[l];switch(s.kind){case sn:c!=null?r[l]=s.convert!==void 0?s.convert(c):c:s.constant!==void 0&&(r[l]=s.constant);break;case ya:r[l]=s.convert!==void 0&&Array.isArray(c)?c.map(s.convert):c??[];break;case Ba:if(s.convert===void 0||!Be(c))r[l]=c??{};else{const d={},h=Object.keys(c);for(let f=0;f<h.length;f++)de(d,h[f],s.convert(c[h[f]]));r[l]=d}break;case Ca:{const d=c;if(d?.case!=null){const h=s.convert.get(d.case);if(h!==void 0){r[l]={case:d.case,value:h(d.value)};break}}r[l]={case:void 0};break}}}return r}}function as(e){var t,n;const o=[],a={},r=is(e);for(const i of e.members){const s=i.localName;if(i.kind=="oneof"){o.push({name:s,kind:Ca,constant:void 0,convert:rs(i)});continue}switch(i.fieldKind){case"message":o.push({name:s,kind:sn,constant:void 0,convert:Vt(i)});break;case"list":o.push({name:s,kind:ya,constant:void 0,convert:i.listKind=="message"?(t=Vt(i))!==null&&t!==void 0?t:(l=>l):i.scalar==b.BYTES?ot:void 0});break;case"map":o.push({name:s,kind:Ba,constant:void 0,convert:i.mapKind=="message"?(n=Vt(i))!==null&&n!==void 0?n:(l=>l):i.scalar==b.BYTES?ot:void 0});break;default:{const l=ss(i);o.push({name:s,kind:sn,constant:i.presence==Ya?l:void 0,convert:i.fieldKind=="scalar"&&i.scalar==b.BYTES?ot:void 0}),r&&(a[s]=l);break}}}return{properties:o,prototype:r?a:void 0}}function rs(e){const t=new Map;for(const n of e.fields){let o;n.fieldKind=="message"?o=Vt(n):n.fieldKind=="scalar"&&n.scalar==b.BYTES&&(o=ot),t.set(n.localName,o??(a=>a))}return t}function Vt(e){if(e.fieldKind=="message"&&!e.oneof&&Ke(e.message))return e.message.fields[0].scalar==b.BYTES?ot:void 0;if(e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!=="google.protobuf.Value")return;const t=e.message;let n;return o=>!Be(o)||En(o,t)?o:(n!=null||(n=Ia(t)),n(o))}function ot(e){return Array.isArray(e)?new Uint8Array(e):e}function is(e){switch(e.file.edition){case ts:return!1;case ns:return!0;default:return e.fields.some(t=>t.presence!=Ya&&t.fieldKind!="message"&&!t.oneof)}}function ss(e){const t=e.getDefaultValue();return t!==void 0?e.fieldKind=="scalar"&&e.longAsString?t.toString():t:e.fieldKind=="scalar"?Re(e.scalar,e.longAsString):e.enum.values[0].number}var ls=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"],L=class extends Error{constructor(e,t,n="FieldValueInvalidError"){super(t),this.name=n,this.field=()=>e}};function cs(e){return e instanceof Error&&ls.includes(e.name)&&"field"in e&&typeof e.field=="function"}var ln;function us(e){var t;ln=Object.assign(Object.assign({},e),{encodeUtf8Into:(t=e.encodeUtf8Into)!==null&&t!==void 0?t:Fa(e.encodeUtf8.bind(e))})}function Sn(){if(!ln){const e=globalThis;if(!e.TextEncoder||!e.TextDecoder)throw new Error("encoding API missing: install TextEncoder and TextDecoder on globalThis");const t=new e.TextEncoder,n=new e.TextDecoder;let o;const a={encodeUtf8(i){return t.encode(i)},decodeUtf8(i,s){return s?(o||(o=new e.TextDecoder("utf-8",{fatal:!0})),o.decode(i)):n.decode(i)},checkUtf8(i){try{return!0}catch{return!1}}};t.encodeInto&&(a.encodeUtf8Into=t.encodeInto.bind(t));const r=String.prototype.isWellFormed;r&&(a.checkUtf8=i=>r.call(i)),us(a)}return ln}function Fa(e){return(t,n)=>{const o=e(t);return n.set(o),{written:o.byteLength}}}var Q;(function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"})(Q||(Q={}));var wa=class{constructor(e){this.stackPos=[],this.encodeUtf8Into=e?Fa(e):Sn().encodeUtf8Into,this.buffer=Ua,this.viewCache=ms,this.pos=0}ensureCapacity(e){const t=this.pos+e;if(t>this.buffer.length){let n=this.buffer.length||ds;for(;n<t;)n*=2;const o=new Uint8Array(n);this.pos>0&&o.set(this.buffer),this.buffer=o}}view(){const e=this.buffer,t=this.viewCache;if(t.byteLength===e.byteLength)return t;const n=new DataView(e.buffer);return this.viewCache=n,n}finish(){const e=this.buffer.slice(0,this.pos);return this.pos=0,this.stackPos=[],e}fork(){return this.stackPos.push(this.pos),this.ensureCapacity(et),this.buffer[this.pos++]=0,this}join(){const e=this.stackPos.pop();if(e===void 0)throw new Error("invalid state, fork stack empty");const t=this.pos-e-et,n=Ht(t);return n>et&&(this.ensureCapacity(n-et),this.buffer.copyWithin(e+n,e+et,this.pos)),this.pos=e,this.uint32(t),this.pos+=t,this}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.ensureCapacity(e.length),this.buffer.set(e,this.pos),this.pos+=e.length,this}uint32(e){if(co(e),this.ensureCapacity(5),e<128)return this.buffer[this.pos++]=e,this;for(;e>127;)this.buffer[this.pos++]=e&127|128,e>>>=7;return this.buffer[this.pos++]=e,this}int32(e){if(Tt(e),e>=0)return this.uint32(e);this.ensureCapacity(10);for(let t=0;t<9;t++)this.buffer[this.pos++]=e&127|128,e>>=7;return this.buffer[this.pos++]=1,this}bool(e){return this.ensureCapacity(1),this.buffer[this.pos++]=e?1:0,this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){typeof e!="string"&&(e=String(e));const t=e.length;if(t<=Ja){this.ensureCapacity(t+1);const s=this.buffer;let l=this.pos;s[l++]=t;let c=0;for(;c<t;c++){const d=e.charCodeAt(c);if(d>127)break;s[l++]=d}if(c==t)return this.pos=l,this}this.ensureCapacity(t*3+5);const n=Ht(t),o=this.buffer,a=this.pos,{written:r}=this.encodeUtf8Into(e,o.subarray(a+n)),i=Ht(r);return i!=n&&o.copyWithin(a+i,a+n,a+n+r),this.uint32(r),this.pos+=r,this}float(e){return bs(e),this.ensureCapacity(4),this.view().setFloat32(this.pos,e,!0),this.pos+=4,this}double(e){return this.ensureCapacity(8),this.view().setFloat64(this.pos,e,!0),this.pos+=8,this}fixed32(e){return co(e),this.ensureCapacity(4),this.view().setUint32(this.pos,e,!0),this.pos+=4,this}sfixed32(e){return Tt(e),this.ensureCapacity(4),this.view().setInt32(this.pos,e,!0),this.pos+=4,this}sint32(e){return Tt(e),this.uint32((e<<1^e>>31)>>>0)}sfixed64(e){const t=z.enc(e);this.ensureCapacity(8);const n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}fixed64(e){const t=z.uEnc(e);this.ensureCapacity(8);const n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}int64(e){const t=z.enc(e);return this.writeVarint64(t.lo,t.hi)}sint64(e){const t=z.enc(e),n=t.hi>>31,o=t.lo<<1^n,a=(t.hi<<1|t.lo>>>31)^n;return this.writeVarint64(o,a)}uint64(e){const t=z.uEnc(e);return this.writeVarint64(t.lo,t.hi)}writeVarint64(e,t){this.ensureCapacity(10);const n=this.buffer;let o=this.pos;for(let i=0;i<28;i=i+7){const s=e>>>i,l=!(!(s>>>7)&&t==0);if(n[o++]=(l?s|128:s)&255,!l)return this.pos=o,this}const a=e>>>28&15|(t&7)<<4,r=t>>3!=0;if(n[o++]=(r?a|128:a)&255,!r)return this.pos=o,this;for(let i=3;i<31;i=i+7){const s=t>>>i,l=!!(s>>>7);if(n[o++]=(l?s|128:s)&255,!l)return this.pos=o,this}return n[o++]=t>>>31&1,this.pos=o,this}},ds=128,et=1,Ua=new Uint8Array(0),ms=new DataView(Ua.buffer),Ja=32;function Ht(e){return e<128?1:e<16384?2:e<2097152?3:e<268435456?4:5}var it=class{constructor(e,t=Sn().decodeUtf8){this.decodeUtf8=t,this.varint64Lo=0,this.varint64Hi=0,this.varint64=Ki,this.uint32=Hi,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){const e=this.pos,t=this.uint32(),n=this.pos-e;if(n>5||n==5&&this.buf[this.pos-1]>15)throw new Error("illegal tag: varint overflows uint32");const o=t>>>3,a=t&7;if(o<=0||a>5)throw new Error("illegal tag: field no "+o+" wire type "+a);return[o,a]}skip(e,t,n=100){let o=this.pos;switch(e){case Q.Varint:for(;this.buf[this.pos++]&128;);break;case Q.Bit64:this.pos+=4;case Q.Bit32:this.pos+=4;break;case Q.LengthDelimited:let a=this.uint32();this.pos+=a;break;case Q.StartGroup:if(n<=0)throw new Error("maximum recursion depth reached");for(;;){const[r,i]=this.tag();if(i===Q.EndGroup){if(t!==void 0&&r!==t)throw new Error("invalid end group tag");break}this.skip(i,r,n-1)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(o,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return this.varint64(),z.dec(this.varint64Lo,this.varint64Hi)}uint64(){return this.varint64(),z.uDec(this.varint64Lo,this.varint64Hi)}sint64(){this.varint64();let e=this.varint64Lo,t=this.varint64Hi,n=-(e&1);return e=(e>>>1|(t&1)<<31)^n,t=t>>>1^n,z.dec(e,t)}bool(){const e=this.buf[this.pos];return e<128?(this.pos++,e!==0):(this.varint64(),this.varint64Lo!==0||this.varint64Hi!==0)}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return z.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return z.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(e){const t=this.bytes(),n=t.length;if(n<=Ja){const o=new Array(n);for(let a=0;a<n;a++){const r=t[a];if(r>127)return this.decodeUtf8(t,e);o[a]=r}return String.fromCharCode.apply(String,o)}return this.decodeUtf8(t,e)}};function Tt(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid int32: "+typeof e);if(!Number.isInteger(e)||e>2147483647||e<-2147483648)throw new Error("invalid int32: "+e)}function co(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid uint32: "+typeof e);if(!Number.isInteger(e)||e>4294967295||e<0)throw new Error("invalid uint32: "+e)}function bs(e){if(typeof e=="string"){const t=e;if(e=Number(e),Number.isNaN(e)&&t!=="NaN")throw new Error("invalid float32: "+t)}else if(typeof e!="number")throw new Error("invalid float32: "+typeof e);if(!Number.isFinite(Math.fround(e))&&Number.isFinite(e))throw new Error("invalid float32: "+e)}function ka(e,t){const n=e.fieldKind=="list"?Gn(t,e):e.fieldKind=="map"?Nn(t,e):vn(e,t);if(n===!0)return;let o;switch(e.fieldKind){case"list":o=`expected ${Ka(e)}, got ${D(t)}`;break;case"map":o=`expected ${za(e)}, got ${D(t)}`;break;default:o=ue(e,t,n)}return new L(e,o)}function uo(e,t,n){const o=vn(e,n);if(o!==!0)return new L(e,`list item #${t+1}: ${ue(e,n,o)}`)}function hs(e,t,n){const o=Ce(e.mapKey)(t);if(o!==!0)return new L(e,`invalid map key: ${ue({scalar:e.mapKey},t,o)}`);const a=vn(e,n);if(a!==!0)return new L(e,`map entry ${D(t)}: ${ue(e,n,a)}`)}function vn(e,t){return e.scalar!==void 0?Ce(e.scalar)(t):e.enum!==void 0?e.enum.open?Ce(b.INT32)(t):e.enum.values.some(n=>n.number===t):Wn(t,e.message)}function Ce(e){switch(e){case b.DOUBLE:return t=>typeof t=="number";case b.FLOAT:return t=>typeof t!="number"?!1:!Number.isFinite(Math.fround(t))&&Number.isFinite(t)?`${t.toFixed()} out of range`:!0;case b.INT32:case b.SFIXED32:case b.SINT32:return t=>typeof t!="number"||!Number.isInteger(t)?!1:t>2147483647||t<-2147483648?`${t.toFixed()} out of range`:!0;case b.FIXED32:case b.UINT32:return t=>typeof t!="number"||!Number.isInteger(t)?!1:t>4294967295||t<0?`${t.toFixed()} out of range`:!0;case b.BOOL:return t=>typeof t=="boolean";case b.STRING:return t=>typeof t!="string"?!1:Sn().checkUtf8(t)||"invalid UTF8";case b.BYTES:return t=>t instanceof Uint8Array;case b.INT64:case b.SFIXED64:case b.SINT64:return t=>{if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return z.parse(t),!0}catch{return`${t} out of range`}return!1};case b.FIXED64:case b.UINT64:return t=>{if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return z.uParse(t),!0}catch{return`${t} out of range`}return!1}}}function ue(e,t,n){return n=typeof n=="string"?`: ${n}`:`, got ${D(t)}`,e.scalar!==void 0?`expected ${gs(e.scalar)}`+n:e.enum!==void 0?`expected ${e.enum.toString()}`+n:`expected ${xa(e.message)}`+n}function D(e){switch(typeof e){case"object":return e===null?"null":e instanceof Uint8Array?`Uint8Array(${e.length})`:Array.isArray(e)?`Array(${e.length})`:Gn(e)?Ka(e.field()):Nn(e)?za(e.field()):Wn(e)?xa(e.desc):En(e)?`message ${e.$typeName}`:"object";case"string":return e.length>30?"string":`"${e.split('"').join('\\"')}"`;case"boolean":return String(e);case"number":return String(e);case"bigint":return String(e)+"n";default:return typeof e}}function xa(e){return`ReflectMessage (${e.typeName})`}function Ka(e){switch(e.listKind){case"message":return`ReflectList (${e.message.toString()})`;case"enum":return`ReflectList (${e.enum.toString()})`;case"scalar":return`ReflectList (${b[e.scalar]})`}}function za(e){switch(e.mapKind){case"message":return`ReflectMap (${b[e.mapKey]}, ${e.message.toString()})`;case"enum":return`ReflectMap (${b[e.mapKey]}, ${e.enum.toString()})`;case"scalar":return`ReflectMap (${b[e.mapKey]}, ${b[e.scalar]})`}}function gs(e){switch(e){case b.STRING:return"string";case b.BOOL:return"boolean";case b.INT64:case b.SINT64:case b.SFIXED64:return"bigint (int64)";case b.UINT64:case b.FIXED64:return"bigint (uint64)";case b.BYTES:return"Uint8Array";case b.DOUBLE:return"number (float64)";case b.FLOAT:return"number (float32)";case b.FIXED32:case b.UINT32:return"number (uint32)";case b.INT32:case b.SFIXED32:case b.SINT32:return"number (int32)"}}var ps=0;function pe(e){if(As(e))return{toMessage:n=>Xn(n),toLocal:n=>Yn(n)};if(e.fieldKind=="message"&&!e.oneof&&Ke(e.message)){const n=e.message,o=n.fields[0].localName;return{toMessage:a=>{const r=oe(n);return a!==void 0&&(r[o]=a),r},toLocal:a=>a[o]}}const t=e.message;return{toMessage:n=>n===void 0?oe(t):n,toLocal:n=>n}}function As(e){return e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"}function Xn(e){const t={$typeName:"google.protobuf.Struct",fields:{}};if(Be(e))for(const n of Object.keys(e))de(t.fields,n,ja(e[n]));return t}function Yn(e){const t={};for(const n of Object.keys(e.fields))de(t,n,La(e.fields[n]));return t}function La(e){switch(e.kind.case){case"structValue":return Yn(e.kind.value);case"listValue":return e.kind.value.values.map(La);case"nullValue":case void 0:return null;default:return e.kind.value}}function ja(e){const t={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof e){case"number":t.kind={case:"numberValue",value:e};break;case"string":t.kind={case:"stringValue",value:e};break;case"boolean":t.kind={case:"boolValue",value:e};break;case"object":if(e===null)t.kind={case:"nullValue",value:ps};else if(Array.isArray(e)){const n={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(e))for(const o of e)n.values.push(ja(o));t.kind={case:"listValue",value:n}}else t.kind={case:"structValue",value:Xn(e)};break}return t}function Zs(e,t,n=!0){return new Ha(e,t,n)}var mo=new WeakMap,Ha=class{get sortedFields(){const e=mo.get(this.desc);if(e)return e;const t=this.desc.fields.concat().sort((n,o)=>n.number-o.number);return mo.set(this.desc,t),t}constructor(e,t,n=!0){this.lists=new Map,this.maps=new Map,this.check=n,this.desc=e,this.message=this[ie]=t??oe(e),this.fields=e.fields,this.oneofs=e.oneofs,this.members=e.members}findNumber(e){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(t=>[t.number,t]))),this._fieldsByNumber.get(e)}oneofCase(e){return tt(this.message,e),Mi(this.message,e)}isSet(e){return tt(this.message,e),Oi(this.message,e)}clear(e){tt(this.message,e),$i(this.message,e)}get(e){tt(this.message,e);const t=Di(this.message,e);switch(e.fieldKind){case"list":let n=this.lists.get(e);return(!n||n[ie]!==t)&&this.lists.set(e,n=new fs(e,t,this.check)),n;case"map":let o=this.maps.get(e);return(!o||o[ie]!==t)&&this.maps.set(e,o=new Rs(e,t,this.check)),o;case"message":return yn(e,t,this.check);case"scalar":return t===void 0?Re(e.scalar,!1):Bn(e,t);case"enum":return t??e.enum.values[0].number}}set(e,t){if(tt(this.message,e),this.check){const o=ka(e,t);if(o)throw o}let n;e.fieldKind=="message"?n=In(e,t):Nn(t)||Gn(t)?n=t[ie]:n=Cn(e,t),_i(this.message,e,n)}getUnknown(){return this.message.$unknown}setUnknown(e){this.message.$unknown=e}};function tt(e,t){if(t.parent.typeName!==e.$typeName)throw new L(t,`cannot use ${t.toString()} with message ${e.$typeName}`,"ForeignFieldError")}var fs=class{field(){return this._field}get size(){return this._arr.length}constructor(e,t,n){this._field=e,this._arr=this[ie]=t,this.check=n}get(e){const t=this._arr[e];return t===void 0?void 0:Qt(this._field,t,this.check)}set(e,t){if(e<0||e>=this._arr.length)throw new L(this._field,`list item #${e+1}: out of range`);if(this.check){const n=uo(this._field,e,t);if(n)throw n}this._arr[e]=bo(this._field,t)}add(e){if(this.check){const t=uo(this._field,this._arr.length,e);if(t)throw t}this._arr.push(bo(this._field,e))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return this.values()}keys(){return this._arr.keys()}*values(){for(const e of this._arr)yield Qt(this._field,e,this.check)}*entries(){for(let e=0;e<this._arr.length;e++)yield[e,Qt(this._field,this._arr[e],this.check)]}},Rs=class{constructor(e,t,n=!0){this.obj=this[ie]=t??{},this.check=n,this._field=e}field(){return this._field}set(e,t){if(this.check){const n=hs(this._field,e,t);if(n)throw n}return de(this.obj,gt(e),Es(this._field,t)),this}delete(e){const t=gt(e),n=Object.prototype.hasOwnProperty.call(this.obj,t);return n&&delete this.obj[t],n}clear(){for(const e of Object.keys(this.obj))delete this.obj[e]}get(e){let t=Pi(this.obj,gt(e));return t!==void 0&&(t=Mt(this._field,t,this.check)),t}has(e){return Object.prototype.hasOwnProperty.call(this.obj,gt(e))}*keys(){for(const e of Object.keys(this.obj))yield ho(e,this._field.mapKey)}*entries(){for(const e of Object.entries(this.obj))yield[ho(e[0],this._field.mapKey),Mt(this._field,e[1],this.check)]}[Symbol.iterator](){return this.entries()}get size(){return Object.keys(this.obj).length}*values(){for(const e of Object.values(this.obj))yield Mt(this._field,e,this.check)}forEach(e,t){for(const n of this.entries())e.call(t,n[1],n[0],this)}};function In(e,t){return Wn(t)?qi(t.message)&&!e.oneof&&e.fieldKind=="message"?t.message.value:t.desc.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"?Yn(t.message):t.message:t}function yn(e,t,n){return t!==void 0&&(Ke(e.message)&&!e.oneof&&e.fieldKind=="message"?t={$typeName:e.message.typeName,value:Bn(e.message.fields[0],t)}:e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"&&Be(t)&&(t=Xn(t))),new Ha(e.message,t,n)}function bo(e,t){return e.listKind=="message"?In(e,t):Cn(e,t)}function Qt(e,t,n){return e.listKind=="message"?yn(e,t,n):Bn(e,t)}function Es(e,t){return e.mapKind=="message"?In(e,t):Cn(e,t)}function Mt(e,t,n){return e.mapKind=="message"?yn(e,t,n):t}function gt(e){return typeof e=="string"||typeof e=="number"?e:String(e)}function ho(e,t){switch(t){case b.STRING:return e;case b.INT32:case b.FIXED32:case b.UINT32:case b.SFIXED32:case b.SINT32:{const n=Number.parseInt(e);if(Number.isFinite(n))return n;break}case b.BOOL:switch(e){case"true":return!0;case"false":return!1}break;case b.UINT64:case b.FIXED64:try{return z.uParse(e)}catch{}break;default:try{return z.parse(e)}catch{}break}return e}function Bn(e,t){switch(e.scalar){case b.INT64:case b.SFIXED64:case b.SINT64:"longAsString"in e&&e.longAsString&&typeof t=="string"&&(t=z.parse(t));break;case b.FIXED64:case b.UINT64:"longAsString"in e&&e.longAsString&&typeof t=="string"&&(t=z.uParse(t));break}return t}function Cn(e,t){switch(e.scalar){case b.INT64:case b.SFIXED64:case b.SINT64:"longAsString"in e&&e.longAsString?t=String(t):(typeof t=="string"||typeof t=="number")&&(t=z.parse(t));break;case b.FIXED64:case b.UINT64:"longAsString"in e&&e.longAsString?t=String(t):(typeof t=="string"||typeof t=="number")&&(t=z.uParse(t));break}return t}var go=Uint8Array.prototype.setFromBase64;function Fn(e){const t=e.length;let n=t-(t+3>>2);(t&3)==0&&e[t-1]=="="&&(n-=e[t-2]=="="?2:1);const o=new Uint8Array(n);let a=-1;if(go)try{const r=go.call(o,e);r.read==t&&(a=r.written)}catch{}return a<0&&(a=Vs(o,e)),a==n?o:o.subarray(0,a)}function Vs(e,t){const n=Ws();let o=0,a=0,r,i=0;for(let s=0;s<t.length;s++){if(r=n[t.charCodeAt(s)],r===void 0)switch(t[s]){case"=":a=0;case`
28
+ `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string")}switch(a){case 0:i=r,a=1;break;case 1:e[o++]=i<<2|(r&48)>>4,i=r,a=2;break;case 2:e[o++]=(i&15)<<4|(r&60)>>2,i=r,a=3;break;case 3:e[o++]=(i&3)<<6|r,a=0;break}}if(a==1)throw Error("invalid base64 string");return o}var po=Uint8Array.prototype.toBase64,Gs={std:{alphabet:"base64",omitPadding:!1},std_raw:{alphabet:"base64",omitPadding:!0},url:{alphabet:"base64url",omitPadding:!0}};function Ns(e,t="std"){if(po)return po.call(e,Gs[t]);const n=Ta(t),o=t=="std";let a="",r=0,i,s=0;for(let l=0;l<e.length;l++)switch(i=e[l],r){case 0:a+=n[i>>2],s=(i&3)<<4,r=1;break;case 1:a+=n[s|i>>4],s=(i&15)<<2,r=2;break;case 2:a+=n[s|i>>6],a+=n[i&63],r=0;break}return r&&(a+=n[s],o&&(a+="=",r==1&&(a+="="))),a}var pt,Ao,Le;function Ta(e){return pt||(pt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),Ao=pt.slice(0,-2).concat("-","_")),e=="url"?Ao:pt}function Ws(){if(!Le){Le=[];const e=Ta("std");for(let t=0;t<e.length;t++)Le[e[t].charCodeAt(0)]=t;Le[45]=e.indexOf("+"),Le[95]=e.indexOf("/")}return Le}function Oe(e){let t=!1;const n=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);switch(a){case"_":t=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(a),t=!1;break;default:t&&(t=!1,a=a.toUpperCase()),n.push(a);break}}return n.join("")}function Qa(e){return e.replace(/[A-Z]/g,t=>"_"+t.toLowerCase())}var Ss=new Set(["constructor","toString","toJSON","valueOf"]);function st(e){return Ss.has(e)?e+"$":e}function wn(e){for(const t of e.field)rt(t,"jsonName")||(t.jsonName=Oe(t.name));e.nestedType.forEach(wn)}function vs(e,t){const n=e.values.find(o=>o.name===t);if(!n)throw new Error(`cannot parse ${e} default value: ${t}`);return n.number}function Xs(e,t){switch(e){case b.STRING:return t;case b.BYTES:{const n=Ys(t);if(n===!1)throw new Error(`cannot parse ${b[e]} default value: ${t}`);return n}case b.INT64:case b.SFIXED64:case b.SINT64:return z.parse(t);case b.UINT64:case b.FIXED64:return z.uParse(t);case b.DOUBLE:case b.FLOAT:switch(t){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return NaN;default:return parseFloat(t)}case b.BOOL:return t==="true";case b.INT32:case b.UINT32:case b.SINT32:case b.FIXED32:case b.SFIXED32:return parseInt(t,10)}}function Ys(e){const t=[],n={tail:e,c:"",next(){return this.tail.length==0?!1:(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(o){if(this.tail.length>=o){const a=this.tail.substring(0,o);return this.tail=this.tail.substring(o),a}return!1}};for(;n.next();)switch(n.c){case"\\":if(n.next())switch(n.c){case"\\":t.push(n.c.charCodeAt(0));break;case"b":t.push(8);break;case"f":t.push(12);break;case"n":t.push(10);break;case"r":t.push(13);break;case"t":t.push(9);break;case"v":t.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{const o=n.c,a=n.take(2);if(a===!1)return!1;const r=parseInt(o+a,8);if(Number.isNaN(r))return!1;t.push(r);break}case"x":{const o=n.c,a=n.take(2);if(a===!1)return!1;const r=parseInt(o+a,16);if(Number.isNaN(r))return!1;t.push(r);break}case"u":{const o=n.c,a=n.take(4);if(a===!1)return!1;const r=parseInt(o+a,16);if(Number.isNaN(r))return!1;const i=new Uint8Array(4);new DataView(i.buffer).setInt32(0,r,!0),t.push(i[0],i[1],i[2],i[3]);break}case"U":{const o=n.c,a=n.take(8);if(a===!1)return!1;const r=z.uEnc(o+a),i=new Uint8Array(8),s=new DataView(i.buffer);s.setInt32(0,r.lo,!0),s.setInt32(4,r.hi,!0),t.push(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]);break}}break;default:t.push(n.c.charCodeAt(0))}return new Uint8Array(t)}function*cn(e){switch(e.kind){case"file":for(const t of e.messages)yield t,yield*cn(t);yield*e.enums,yield*e.services,yield*e.extensions;break;case"message":for(const t of e.nestedMessages)yield t,yield*cn(t);yield*e.nestedEnums,yield*e.nestedExtensions;break}}function Ma(...e){const t=Is();if(!e.length)return t;if("$typeName"in e[0]&&e[0].$typeName=="google.protobuf.FileDescriptorSet"){for(const o of e[0].file)Eo(o,t);return t}if("$typeName"in e[0]){let i=function(s){const l=[];for(const c of s.dependency){if(t.getFile(c)!=null||r.has(c))continue;const d=a(c);if(!d)throw new Error(`Unable to resolve ${c}, imported by ${s.name}`);"kind"in d?t.addFile(d,!1,!0):(r.add(d.name),l.push(d))}return l.concat(...l.map(i))};var n=i;const o=e[0],a=e[1],r=new Set;for(const s of[o,...i(o)].reverse())Eo(s,t)}else for(const o of e)for(const a of o.files)t.addFile(a);return t}function Is(){const e=new Map,t=new Map,n=new Map;return{kind:"registry",types:e,extendees:t,[Symbol.iterator](){return e.values()},get files(){return n.values()},addFile(o,a,r){if(n.set(o.proto.name,o),!a)for(const i of cn(o))this.add(i);if(r)for(const i of o.dependencies)this.addFile(i,a,r)},add(o){if(o.kind=="extension"){let a=t.get(o.extendee.typeName);a||t.set(o.extendee.typeName,a=new Map),a.set(o.number,o)}e.set(o.typeName,o)},get(o){return e.get(o)},getFile(o){return n.get(o)},getMessage(o){const a=e.get(o);return a?.kind=="message"?a:void 0},getEnum(o){const a=e.get(o);return a?.kind=="enum"?a:void 0},getExtension(o){const a=e.get(o);return a?.kind=="extension"?a:void 0},getExtensionFor(o,a){var r;return(r=t.get(o.typeName))===null||r===void 0?void 0:r.get(a)},getService(o){const a=e.get(o);return a?.kind=="service"?a:void 0}}}var ys=998,Bs=999,Cs=9999,Fs=9,lt=10,at=11,ws=12,Zo=14,Un=3,Us=2,fo=1,Js=0,Ot=1,Ro=2,ks=3,xs=1,Ks=2,zs=1,Ls=2,js=1002,Oa={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2,enforceProtoLimits:1},1002:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:3,defaultSymbolVisibility:4,enforceProtoLimits:2}};function Eo(e,t){var n,o;const a={kind:"file",proto:e,deprecated:(o=(n=e.options)===null||n===void 0?void 0:n.deprecated)!==null&&o!==void 0?o:!1,edition:Ms(e),name:e.name.replace(/\.proto$/,""),dependencies:Os(e,t),enums:[],messages:[],extensions:[],services:[],toString(){return`file ${e.name}`}},r=new Map,i={get(s){return r.get(s)},add(s){var l;le(((l=s.proto.options)===null||l===void 0?void 0:l.mapEntry)===!0),r.set(s.typeName,s)}};for(const s of e.enumType)Da(s,a,void 0,t);for(const s of e.messageType)_a(s,a,void 0,t,i);for(const s of e.service)Hs(s,a,t);un(a,t);for(const s of r.values())dn(s,t,i);for(const s of a.messages)dn(s,t,i),un(s,t);t.addFile(a,!0)}function un(e,t){switch(e.kind){case"file":for(const n of e.proto.extension){const o=mn(n,e,t);e.extensions.push(o),t.add(o)}break;case"message":for(const n of e.proto.extension){const o=mn(n,e,t);e.nestedExtensions.push(o),t.add(o)}for(const n of e.nestedMessages)un(n,t);break}}function dn(e,t,n){const o=e.proto.oneofDecl.map(r=>Qs(r,e)),a=new Set;for(const r of e.proto.field){const i=$s(r,o),s=mn(r,e,t,i,n);e.fields.push(s),e.field[s.localName]=s,i===void 0?e.members.push(s):(i.fields.push(s),a.has(i)||(a.add(i),e.members.push(i)))}for(const r of o.filter(i=>a.has(i)))e.oneofs.push(r);for(const r of e.nestedMessages)dn(r,t,n)}function Da(e,t,n,o){var a,r,i,s,l,c;const d=Ds(e.name,e.value),h={kind:"enum",proto:e,deprecated:(r=(a=e.options)===null||a===void 0?void 0:a.deprecated)!==null&&r!==void 0?r:!1,file:t,parent:n,open:!0,name:e.name,typeName:Ft(e,n,t),value:{},values:[],sharedPrefix:d,toString(){return`enum ${this.typeName}`}};h.open=nl(h),o.add(h);for(const f of e.value){const Z=f.name;h.values.push(h.value[f.number]={kind:"enum_value",proto:f,deprecated:(s=(i=f.options)===null||i===void 0?void 0:i.deprecated)!==null&&s!==void 0?s:!1,parent:h,name:Z,localName:st(d==null?Z:Z.substring(d.length)),number:f.number,jsonName:(l=_s(f))!==null&&l!==void 0?l:Z,toString(){return`enum value ${h.typeName}.${Z}`}})}((c=n?.nestedEnums)!==null&&c!==void 0?c:t.enums).push(h)}function _a(e,t,n,o,a){var r,i,s,l;const c={kind:"message",proto:e,deprecated:(i=(r=e.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,file:t,parent:n,name:e.name,typeName:Ft(e,n,t),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};((s=e.options)===null||s===void 0?void 0:s.mapEntry)===!0?a.add(c):(((l=n?.nestedMessages)!==null&&l!==void 0?l:t.messages).push(c),o.add(c));for(const d of e.enumType)Da(d,t,c,o);for(const d of e.nestedType)_a(d,t,c,o,a)}function Hs(e,t,n){var o,a;const r={kind:"service",proto:e,deprecated:(a=(o=e.options)===null||o===void 0?void 0:o.deprecated)!==null&&a!==void 0?a:!1,file:t,name:e.name,typeName:Ft(e,void 0,t),methods:[],method:{},toString(){return`service ${this.typeName}`}};t.services.push(r),n.add(r);for(const i of e.method){const s=Ts(i,r,n);r.methods.push(s),r.method[s.localName]=s}}function Ts(e,t,n){var o,a,r,i;let s;e.clientStreaming&&e.serverStreaming?s="bidi_streaming":e.clientStreaming?s="client_streaming":e.serverStreaming?s="server_streaming":s="unary";const l=n.getMessage(Ze(e.inputType)),c=n.getMessage(Ze(e.outputType));le(l,`invalid MethodDescriptorProto: input_type ${e.inputType} not found`),le(c,`invalid MethodDescriptorProto: output_type ${e.inputType} not found`);const d=e.name;return{kind:"rpc",proto:e,deprecated:(a=(o=e.options)===null||o===void 0?void 0:o.deprecated)!==null&&a!==void 0?a:!1,parent:t,name:d,localName:st(d.length?st(d[0].toLowerCase()+d.substring(1)):d),methodKind:s,input:l,output:c,idempotency:(i=(r=e.options)===null||r===void 0?void 0:r.idempotencyLevel)!==null&&i!==void 0?i:Js,toString(){return`rpc ${t.typeName}.${d}`}}}function Qs(e,t){return{kind:"oneof",proto:e,deprecated:!1,parent:t,fields:[],name:e.name,localName:st(Oe(e.name)),toString(){return`oneof ${t.typeName}.${this.name}`}}}function mn(e,t,n,o,a){var r,i,s;const l=a===void 0,c={kind:"field",proto:e,deprecated:(i=(r=e.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,name:e.name,number:e.number,scalar:void 0,message:void 0,enum:void 0,presence:qs(e,o,l,t),utf8Validation:ol(e,t),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};let d;if(l){const V=t.kind=="file"?t:t.file,N=t.kind=="file"?void 0:t,B=Ft(e,N,V);c.kind="extension",c.file=V,c.parent=N,c.oneof=void 0,c.typeName=B,c.jsonName=`[${B}]`,d=()=>`extension ${B}`;const J=n.getMessage(Ze(e.extendee));le(J,`invalid FieldDescriptorProto: extendee ${e.extendee} not found`),c.extendee=J}else{const V=t;le(V.kind=="message"),c.parent=V,c.oneof=o,c.localName=o?Oe(e.name):st(Oe(e.name)),c.jsonName=e.jsonName,d=()=>`field ${V.typeName}.${e.name}`}Object.defineProperty(c,"toString",{value:d,writable:!0,enumerable:!0,configurable:!0});const h=e.label,f=e.type,Z=(s=e.options)===null||s===void 0?void 0:s.jstype;if(h===Un){const V=f==at?a?.get(Ze(e.typeName)):void 0;if(V){c.fieldKind="map";const{key:N,value:B}=tl(V);return c.mapKey=N.scalar,c.mapKind=B.fieldKind,c.message=B.message,c.delimitedEncoding=!1,c.enum=B.enum,c.scalar=B.scalar,c}switch(c.fieldKind="list",f){case at:case lt:c.listKind="message",c.message=n.getMessage(Ze(e.typeName)),le(c.message),c.delimitedEncoding=Vo(e,t);break;case Zo:c.listKind="enum",c.enum=n.getEnum(Ze(e.typeName)),le(c.enum);break;default:c.listKind="scalar",c.scalar=f,c.longAsString=Z==fo;break}return c.packed=el(e,t),c}switch(f){case at:case lt:c.fieldKind="message",c.message=n.getMessage(Ze(e.typeName)),le(c.message,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.delimitedEncoding=Vo(e,t),c.getDefaultValue=()=>{};break;case Zo:{const V=n.getEnum(Ze(e.typeName));le(V!==void 0,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.fieldKind="enum",c.enum=n.getEnum(Ze(e.typeName)),c.getDefaultValue=()=>rt(e,"defaultValue")?vs(V,e.defaultValue):void 0;break}default:c.fieldKind="scalar",c.scalar=f,c.longAsString=Z==fo,c.getDefaultValue=()=>rt(e,"defaultValue")?Xs(f,e.defaultValue):void 0;break}return c}function Ms(e){switch(e.syntax){case"":case"proto2":return ys;case"proto3":return Bs;case"editions":if(e.edition===Cs)return js;if(e.edition in Oa)return e.edition;throw new Error(`${e.name}: unsupported edition`);default:throw new Error(`${e.name}: unsupported syntax "${e.syntax}"`)}}function Os(e,t){return e.dependency.map(n=>{const o=t.getFile(n);if(!o)throw new Error(`Cannot find ${n}, imported by ${e.name}`);return o})}function Ds(e,t){const n=Ps(e)+"_";for(const o of t){if(!o.name.toLowerCase().startsWith(n))return;const a=o.name.substring(n.length);if(a.length==0||/^\d/.test(a))return}return n}function _s(e){var t,n;let r;for(const i of(n=(t=e.options)===null||t===void 0?void 0:t.$unknown)!==null&&n!==void 0?n:[]){if(i.no!==998||i.wireType!==Q.LengthDelimited)continue;const s=new it(new it(i.data).bytes());for(;s.pos<s.len;){const[l,c]=s.tag();l===1&&c===Q.LengthDelimited?r=s.string():s.skip(c,l)}}return r}function Ps(e){return(e.substring(0,1)+e.substring(1).replace(/[A-Z]/g,t=>"_"+t)).toLowerCase()}function Ft(e,t,n){let o;return t?o=`${t.typeName}.${e.name}`:n.proto.package.length>0?o=`${n.proto.package}.${e.name}`:o=`${e.name}`,o}function Ze(e){return e.startsWith(".")?e.substring(1):e}function $s(e,t){if(!rt(e,"oneofIndex")||e.proto3Optional)return;const n=t[e.oneofIndex];return le(n,`invalid FieldDescriptorProto: oneof #${e.oneofIndex} for field #${e.number} not found`),n}function qs(e,t,n,o){if(e.label==Us)return ks;if(e.label==Un)return Ro;if(t||e.proto3Optional||n)return Ot;const a=Je("fieldPresence",{proto:e,parent:o});return a==Ro&&(e.type==at||e.type==lt)?Ot:a}function el(e,t){if(e.label!=Un)return!1;switch(e.type){case Fs:case ws:case lt:case at:return!1}const n=e.options;return n&&rt(n,"packed")?n.packed:xs==Je("repeatedFieldEncoding",{proto:e,parent:t})}function tl(e){const t=e.fields.find(o=>o.number===1),n=e.fields.find(o=>o.number===2);return le(t&&t.fieldKind=="scalar"&&t.scalar!=b.BYTES&&t.scalar!=b.FLOAT&&t.scalar!=b.DOUBLE&&n&&n.fieldKind!="list"&&n.fieldKind!="map"),{key:t,value:n}}function nl(e){var t;return zs==Je("enumType",{proto:e.proto,parent:(t=e.parent)!==null&&t!==void 0?t:e.file})}function Vo(e,t){return e.type==lt?!0:Ks==Je("messageEncoding",{proto:e,parent:t})}function ol(e,t){return Ls==Je("utf8Validation",{proto:e,parent:t})}function Je(e,t){var n,o;const a=(n=t.proto.options)===null||n===void 0?void 0:n.features;if(a){const r=a[e];if(r!=0)return r}if("kind"in t){if(t.kind=="message")return Je(e,(o=t.parent)!==null&&o!==void 0?o:t.file);const r=Oa[t.edition];if(!r)throw new Error(`feature default for edition ${t.edition} not found`);return r[e]}return Je(e,t.parent)}function le(e,t){if(!e)throw new Error(t)}function al(e){const t=rl(e);return t.messageType.forEach(wn),Ma(t,()=>{}).getFile(t.name)}function rl(e){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},e),{messageType:e.messageType.map(Pa),enumType:e.enumType.map($a)}))}function Pa(e){var t,n,o,a,r,i,s,l;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:e.name,field:(n=(t=e.field)===null||t===void 0?void 0:t.map(il))!==null&&n!==void 0?n:[],extension:[],nestedType:(a=(o=e.nestedType)===null||o===void 0?void 0:o.map(Pa))!==null&&a!==void 0?a:[],enumType:(i=(r=e.enumType)===null||r===void 0?void 0:r.map($a))!==null&&i!==void 0?i:[],extensionRange:(l=(s=e.extensionRange)===null||s===void 0?void 0:s.map(c=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},c)))!==null&&l!==void 0?l:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function il(e){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},e),{options:e.options?sl(e.options):void 0}))}function sl(e){var t,n,o;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},e),{targets:(t=e.targets)!==null&&t!==void 0?t:[],editionDefaults:(o=(n=e.editionDefaults)===null||n===void 0?void 0:n.map(a=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},a)))!==null&&o!==void 0?o:[],uninterpretedOption:[]}))}function $a(e){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:e.name,reservedName:[],reservedRange:[],value:e.value.map(t=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},t))})}function G(e,t,...n){return n.reduce((o,a)=>o.nestedMessages[a],e.messages[t])}var ll=al({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false",options:{}},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true",options:{}},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"removal_error",number:5,type:9,label:1}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001},{value:"STYLE2026",edition:1002}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001},{value:"STRICT",edition:1002}]}},{name:"enforce_proto_limits",number:9,type:14,label:1,typeName:".google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits",options:{retention:2,targets:[6,3,4,5],editionDefaults:[{value:"LEGACY_NO_EXPLICIT_LIMITS",edition:900},{value:"PROTO_LIMITS2026",edition:1002}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]},{name:"ProtoLimitsFeature",enumType:[{name:"EnforceProtoLimits",value:[{name:"PROTO_LIMITS_UNKNOWN",number:0},{name:"LEGACY_NO_EXPLICIT_LIMITS",number:1},{name:"PROTO_LIMITS2026",number:2}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2},{name:"STYLE2026",number:3}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_2026",number:1002},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),cl=G(ll,1),Go;(function(e){e[e.DECLARATION=0]="DECLARATION",e[e.UNVERIFIED=1]="UNVERIFIED"})(Go||(Go={}));var No;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.GROUP=10]="GROUP",e[e.MESSAGE=11]="MESSAGE",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.ENUM=14]="ENUM",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(No||(No={}));var Wo;(function(e){e[e.OPTIONAL=1]="OPTIONAL",e[e.REPEATED=3]="REPEATED",e[e.REQUIRED=2]="REQUIRED"})(Wo||(Wo={}));var So;(function(e){e[e.SPEED=1]="SPEED",e[e.CODE_SIZE=2]="CODE_SIZE",e[e.LITE_RUNTIME=3]="LITE_RUNTIME"})(So||(So={}));var vo;(function(e){e[e.STRING=0]="STRING",e[e.CORD=1]="CORD",e[e.STRING_PIECE=2]="STRING_PIECE"})(vo||(vo={}));var Xo;(function(e){e[e.JS_NORMAL=0]="JS_NORMAL",e[e.JS_STRING=1]="JS_STRING",e[e.JS_NUMBER=2]="JS_NUMBER"})(Xo||(Xo={}));var Yo;(function(e){e[e.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",e[e.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",e[e.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(Yo||(Yo={}));var Io;(function(e){e[e.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",e[e.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",e[e.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",e[e.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",e[e.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",e[e.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",e[e.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",e[e.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",e[e.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",e[e.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Io||(Io={}));var yo;(function(e){e[e.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",e[e.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",e[e.IDEMPOTENT=2]="IDEMPOTENT"})(yo||(yo={}));var Bo;(function(e){e[e.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",e[e.EXPORT_ALL=1]="EXPORT_ALL",e[e.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",e[e.LOCAL_ALL=3]="LOCAL_ALL",e[e.STRICT=4]="STRICT"})(Bo||(Bo={}));var Co;(function(e){e[e.PROTO_LIMITS_UNKNOWN=0]="PROTO_LIMITS_UNKNOWN",e[e.LEGACY_NO_EXPLICIT_LIMITS=1]="LEGACY_NO_EXPLICIT_LIMITS",e[e.PROTO_LIMITS2026=2]="PROTO_LIMITS2026"})(Co||(Co={}));var Fo;(function(e){e[e.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",e[e.EXPLICIT=1]="EXPLICIT",e[e.IMPLICIT=2]="IMPLICIT",e[e.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Fo||(Fo={}));var wo;(function(e){e[e.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"})(wo||(wo={}));var Uo;(function(e){e[e.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",e[e.PACKED=1]="PACKED",e[e.EXPANDED=2]="EXPANDED"})(Uo||(Uo={}));var Jo;(function(e){e[e.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",e[e.VERIFY=2]="VERIFY",e[e.NONE=3]="NONE"})(Jo||(Jo={}));var ko;(function(e){e[e.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",e[e.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",e[e.DELIMITED=2]="DELIMITED"})(ko||(ko={}));var xo;(function(e){e[e.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",e[e.ALLOW=1]="ALLOW",e[e.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(xo||(xo={}));var Ko;(function(e){e[e.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",e[e.STYLE2024=1]="STYLE2024",e[e.STYLE_LEGACY=2]="STYLE_LEGACY",e[e.STYLE2026=3]="STYLE2026"})(Ko||(Ko={}));var zo;(function(e){e[e.NONE=0]="NONE",e[e.SET=1]="SET",e[e.ALIAS=2]="ALIAS"})(zo||(zo={}));var Lo;(function(e){e[e.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",e[e.EDITION_LEGACY=900]="EDITION_LEGACY",e[e.EDITION_PROTO2=998]="EDITION_PROTO2",e[e.EDITION_PROTO3=999]="EDITION_PROTO3",e[e.EDITION_2023=1e3]="EDITION_2023",e[e.EDITION_2024=1001]="EDITION_2024",e[e.EDITION_2026=1002]="EDITION_2026",e[e.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",e[e.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",e[e.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",e[e.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",e[e.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",e[e.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",e[e.EDITION_MAX=2147483647]="EDITION_MAX"})(Lo||(Lo={}));var jo;(function(e){e[e.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",e[e.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",e[e.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"})(jo||(jo={}));function qa(e){return Object.assign(Object.assign({readUnknownFields:!0,recursionLimit:100},e),{depth:0})}function mt(e,t,n){const o=oe(e);return Jn(e).read(o,new it(t),qa(n),t.byteLength),o}var er=new WeakMap;function Jn(e){let t=er.get(e);return t===void 0&&(t=ul(e)),t}function ul(e){const t=String(e),n=new Map,o={read:dl(t,n),readGroup:ml(t,n)};er.set(e,o);for(const a of e.fields)n.set(a.number,tr(a));return o}function dl(e,t){return(n,o,a,r)=>{var i;if(++a.depth>a.recursionLimit)throw new Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);const s=o.pos+r,l=(i=n.$unknown)!==null&&i!==void 0?i:[];for(;o.pos<s;){const[c,d]=o.tag(),h=t.get(c);if(h===void 0){const f=o.skip(d,c,a.recursionLimit-a.depth);a.readUnknownFields&&l.push({no:c,wireType:d,data:f});continue}h(n,o,a,d)}l.length>0&&(n.$unknown=l),a.depth--}}function ml(e,t){return(n,o,a,r)=>{var i;if(++a.depth>a.recursionLimit)throw new Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);let s,l;const c=(i=n.$unknown)!==null&&i!==void 0?i:[];for(;o.pos<o.len&&([s,l]=o.tag(),l!=Q.EndGroup);){const d=t.get(s);if(d===void 0){const h=o.skip(l,s,a.recursionLimit-a.depth);a.readUnknownFields&&c.push({no:s,wireType:l,data:h});continue}d(n,o,a,l)}if(l!=Q.EndGroup||s!==r)throw new Error("invalid end group tag");c.length>0&&(n.$unknown=c),a.depth--}}function bl(e,t,n,o,a){tr(n)(e[ie],t,a,o)}function tr(e){switch(e.fieldKind){case"scalar":return hl(e);case"enum":return gl(e);case"message":return pl(e);case"list":return Al(e);case"map":return Zl(e)}}function hl(e){const t=vt(e.scalar,e.utf8Validation,e.longAsString),n=e.localName;if(e.oneof){const o=e.oneof.localName;return(a,r)=>{a[o]={case:n,value:t(r)}}}return(o,a)=>{o[n]=t(a)}}function gl(e){var t;const n=e.localName,o=(t=e.oneof)===null||t===void 0?void 0:t.localName;if(e.enum.open)return o!==void 0?(i,s)=>{i[o]={case:n,value:s.int32()}}:(i,s)=>{i[n]=s.int32()};const a=e.enum.values,r=e.number;return(i,s,l,c)=>{var d;const h=s.int32();if(a.some(f=>f.number===h))o!==void 0?i[o]={case:n,value:h}:i[n]=h;else if(l.readUnknownFields){const f=[];ji(h,f);const Z=(d=i.$unknown)!==null&&d!==void 0?d:[];Z.push({no:r,wireType:c,data:new Uint8Array(f)}),i.$unknown=Z}}}function pl(e){const t=e.localName,{toMessage:n,toLocal:o}=pe(e),a=nr(e);if(e.oneof){const r=e.oneof.localName;return(i,s,l)=>{const c=i[r],d=n(c.case===t?c.value:void 0);a(d,s,l),i[r]={case:t,value:o(d)}}}return(r,i,s)=>{const l=n(r[t]);a(l,i,s),r[t]=o(l)}}function nr(e){const t=Jn(e.message);if(e.delimitedEncoding){const n=e.number;return(o,a,r)=>t.readGroup(o,a,r,n)}return(n,o,a)=>t.read(n,o,a,o.uint32())}function Al(e){const t=e.localName;if(e.listKind=="message"){const{toMessage:i,toLocal:s}=pe(e),l=nr(e);return(c,d,h)=>{const f=i(void 0);l(f,d,h),c[t].push(s(f))}}const n=e.listKind=="enum"?b.INT32:e.scalar,o=e.listKind=="scalar"?e.longAsString:!1,a=vt(n,e.utf8Validation,o),r=n!=b.STRING&&n!=b.BYTES;return(i,s,l,c)=>{const d=i[t];if(c==Q.LengthDelimited&&r){const h=s.uint32()+s.pos;for(;s.pos<h;)d.push(a(s))}else d.push(a(s))}}function Zl(e){const t=e.localName,n=vt(e.mapKey,e.utf8Validation,!1),o=Re(e.mapKey,!1);let a,r;switch(e.mapKind){case"scalar":{const i=e.scalar,s=vt(i,e.utf8Validation,!1);if(a=l=>s(l),i==b.BYTES)r=()=>new Uint8Array(0);else{const l=Re(i,!1);r=()=>l}break}case"enum":{const i=e.enum.values[0].number;a=s=>s.int32(),r=()=>i;break}case"message":{const{toMessage:i,toLocal:s}=pe(e),l=Jn(e.message).read;a=(c,d,h)=>{const f=i(h);return l(f,c,d,c.uint32()),s(f)},r=()=>s(i(void 0));break}}return(i,s,l)=>{const c=i[t];let d,h;const f=s.uint32(),Z=s.pos+f;for(;s.pos<Z;){const[V]=s.tag();switch(V){case 1:d=n(s);break;case 2:h=a(s,l,h);break}}d===void 0&&(d=o),h===void 0&&(h=r()),de(c,d,h)}}function vt(e,t,n){switch(e){case b.STRING:return o=>o.string(t);case b.BOOL:return o=>o.bool();case b.DOUBLE:return o=>o.double();case b.FLOAT:return o=>o.float();case b.INT32:return o=>o.int32();case b.INT64:return n?o=>String(o.int64()):o=>o.int64();case b.UINT64:return n?o=>String(o.uint64()):o=>o.uint64();case b.FIXED64:return n?o=>String(o.fixed64()):o=>o.fixed64();case b.BYTES:return o=>o.bytes();case b.FIXED32:return o=>o.fixed32();case b.SFIXED32:return o=>o.sfixed32();case b.SFIXED64:return n?o=>String(o.sfixed64()):o=>o.sfixed64();case b.SINT64:return n?o=>String(o.sint64()):o=>o.sint64();case b.UINT32:return o=>o.uint32();case b.SINT32:return o=>o.sint32()}}function ee(e,t){var n;const o=mt(cl,Fn(e));return o.messageType.forEach(wn),o.dependency=(n=t?.map(a=>a.proto.name))!==null&&n!==void 0?n:[],Ma(o,a=>t?.find(r=>r.proto.name===a)).getFile(o.name)}var Ge=ee("Ch9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiKwoJVGltZXN0YW1wEg8KB3NlY29uZHMYASABKAMSDQoFbmFub3MYAiABKAVChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),or=ee("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),fl=G(or,0),Rl=2,El=3,Ho={writeUnknownFields:!0};function Vl(e){return e?Object.assign(Object.assign({},Ho),e):Ho}function ar(e,t,n){const o=new wa;return kn(e)(o,Vl(n),t),o.finish()}var rr=new WeakMap;function kn(e){let t=rr.get(e);return t===void 0&&(t=Gl(e)),t}function Gl(e){const t=e.typeName,n=e.fields.concat().sort((i,s)=>i.number-s.number),o=n[0],a=[],r=(i,s,l)=>{if(l.$typeName!==t&&o!==void 0)throw new L(o,`cannot use ${o} with message ${l.$typeName}`,"ForeignFieldError");for(let d=0;d<a.length;d++)a[d](i,s,l);const c=l.$unknown;if(c!==void 0&&s.writeUnknownFields)for(let d=0;d<c.length;d++){const{no:h,wireType:f,data:Z}=c[d];i.tag(h,f).raw(Z)}};rr.set(e,r);for(const i of n)a.push(ir(i));return r}function ir(e){switch(e.fieldKind){case"message":case"scalar":case"enum":return Nl(e);case"list":return Sl(e);case"map":return vl(e)}}function Nl(e){const t=Wl(e),n=e.localName;if(e.oneof){const o=e.oneof.localName;return(a,r,i)=>{const s=i[o];s.case===n&&t(a,r,s.value)}}if(e.presence!=Rl){const o=e.presence==El?`cannot encode ${e} to binary: required field not set`:void 0;return(a,r,i)=>{const s=i[n];if(s!==void 0&&Object.prototype.hasOwnProperty.call(i,n))t(a,r,s);else if(o!==void 0)throw new Error(o)}}if(e.fieldKind=="enum"){const o=e.enum.values[0].number;return(a,r,i)=>{const s=i[n];s!==o&&t(a,r,s)}}switch(e.scalar){case b.BOOL:return(o,a,r)=>{const i=r[n];i!==!1&&t(o,a,i)};case b.STRING:return(o,a,r)=>{const i=r[n];i!==""&&t(o,a,i)};case b.BYTES:return(o,a,r)=>{const i=r[n];(!(i instanceof Uint8Array)||i.byteLength>0)&&t(o,a,i)};case b.DOUBLE:case b.FLOAT:return(o,a,r)=>{const i=r[n];Object.is(i,0)||t(o,a,i)};default:return(o,a,r)=>{const i=r[n];i!=0&&t(o,a,i)}}}function Wl(e){switch(e.fieldKind){case"message":{const{toMessage:t}=pe(e),n=sr(e);return(o,a,r)=>{n(o,a,t(r))}}case"scalar":case"enum":{const t=e.fieldKind=="enum"?b.INT32:e.scalar,n=e.number,o=Ut(t),a=wt(t,e.parent.typeName,e.name);return(r,i,s)=>{r.tag(n,o),a(r,s)}}}}function Sl(e){const t=e.localName,n=e.number;switch(e.listKind){case"message":{const{toMessage:o}=pe(e),a=sr(e);return(r,i,s)=>{const l=s[t];for(let c=0;c<l.length;c++)a(r,i,o(l[c]))}}case"scalar":case"enum":{const o=e.listKind=="enum"?b.INT32:e.scalar,a=wt(o,e.parent.typeName,e.name);if(e.packed)return(i,s,l)=>{const c=l[t];if(c.length!=0){i.tag(n,Q.LengthDelimited).fork();for(let d=0;d<c.length;d++)a(i,c[d]);i.join()}};const r=Ut(o);return(i,s,l)=>{const c=l[t];for(let d=0;d<c.length;d++)i.tag(n,r),a(i,c[d])}}}}function vl(e){const t=e.localName,n=e.number,o=Xl(e);if(e.mapKind=="message"){const{toMessage:s}=pe(e),l=kn(e.message);return(c,d,h)=>{const f=h[t],Z=Object.keys(f);for(let V=0;V<Z.length;V++){const N=Z[V];c.tag(n,Q.LengthDelimited).fork(),o(c,N),c.tag(2,Q.LengthDelimited).fork(),l(c,d,s(f[N])),c.join(),c.join()}}}const a=e.mapKind=="enum"?b.INT32:e.scalar,r=Ut(a),i=wt(a,e.parent.typeName,e.name);return(s,l,c)=>{const d=c[t],h=Object.keys(d);for(let f=0;f<h.length;f++){const Z=h[f];s.tag(n,Q.LengthDelimited).fork(),o(s,Z),s.tag(2,r),i(s,d[Z]),s.join()}}}function Xl(e){const t=Ut(e.mapKey),n=wt(e.mapKey,e.parent.typeName,e.name),o=Yl(e.mapKey);return(a,r)=>{a.tag(1,t),n(a,o(r))}}function Yl(e){switch(e){case b.STRING:return t=>t;case b.BOOL:return t=>t==="true"?!0:t==="false"?!1:t;case b.UINT64:case b.FIXED64:return t=>{try{return z.uParse(t)}catch{return t}};case b.INT64:case b.SFIXED64:case b.SINT64:return t=>{try{return z.parse(t)}catch{return t}};default:return t=>{const n=Number.parseInt(t);return Number.isFinite(n)?n:t}}}function wt(e,t,n){const o=Il(e);return(a,r)=>{try{o(a,r)}catch(i){throw i instanceof Error?new Error(`cannot encode field ${t}.${n} to binary: ${i.message}`):i}}}function Il(e){switch(e){case b.STRING:return(t,n)=>t.string(n);case b.BOOL:return(t,n)=>t.bool(n);case b.DOUBLE:return(t,n)=>t.double(n);case b.FLOAT:return(t,n)=>t.float(n);case b.INT32:return(t,n)=>t.int32(n);case b.INT64:return(t,n)=>t.int64(n);case b.UINT64:return(t,n)=>t.uint64(n);case b.FIXED64:return(t,n)=>t.fixed64(n);case b.BYTES:return(t,n)=>t.bytes(n);case b.FIXED32:return(t,n)=>t.fixed32(n);case b.SFIXED32:return(t,n)=>t.sfixed32(n);case b.SFIXED64:return(t,n)=>t.sfixed64(n);case b.SINT64:return(t,n)=>t.sint64(n);case b.UINT32:return(t,n)=>t.uint32(n);case b.SINT32:return(t,n)=>t.sint32(n)}}function yl(e,t,n,o){ir(o)(e,t,n[ie])}function sr(e){const t=e.number,n=kn(e.message);return e.delimitedEncoding?(o,a,r)=>{o.tag(t,Q.StartGroup),n(o,a,r),o.tag(t,Q.EndGroup)}:(o,a,r)=>{o.tag(t,Q.LengthDelimited).fork(),n(o,a,r),o.join()}}function Ut(e){switch(e){case b.BYTES:case b.STRING:return Q.LengthDelimited;case b.DOUBLE:case b.FIXED64:case b.SFIXED64:return Q.Bit64;case b.FIXED32:case b.SFIXED32:case b.FLOAT:return Q.Bit32;default:return Q.Varint}}function Bl(e,t,n){let o=!1;return n||(n=oe(fl),o=!0),n.value=ar(e,t),n.typeUrl=wl(t.$typeName),o?n:void 0}function Cl(e,t){return e.typeUrl===""?!1:(typeof t=="string"?t:t.typeName)===lr(e.typeUrl)}function Fl(e,t){if(e.typeUrl==="")return;const n=t.kind=="message"?t:t.getMessage(lr(e.typeUrl));if(!(!n||!Cl(e,n)))return mt(n,e.value)}function wl(e){return`type.googleapis.com/${e}`}function lr(e){const t=e.lastIndexOf("/"),n=t>=0?e.substring(t+1):e;if(!n.length)throw new Error(`invalid type url: ${e}`);return n}var Ne=ee("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),Ul=G(Ne,0),cr=G(Ne,1),Jl=G(Ne,2),bn;(function(e){e[e.NULL_VALUE=0]="NULL_VALUE"})(bn||(bn={}));var ur=ee("Ch5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIcCgtEb3VibGVWYWx1ZRINCgV2YWx1ZRgBIAEoASIbCgpGbG9hdFZhbHVlEg0KBXZhbHVlGAEgASgCIhsKCkludDY0VmFsdWUSDQoFdmFsdWUYASABKAMiHAoLVUludDY0VmFsdWUSDQoFdmFsdWUYASABKAQiGwoKSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoBSIcCgtVSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoDSIaCglCb29sVmFsdWUSDQoFdmFsdWUYASABKAgiHAoLU3RyaW5nVmFsdWUSDQoFdmFsdWUYASABKAkiGwoKQnl0ZXNWYWx1ZRINCgV2YWx1ZRgBIAEoDEKDAQoTY29tLmdvb2dsZS5wcm90b2J1ZkINV3JhcHBlcnNQcm90b1ABWjFnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi93cmFwcGVyc3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM");function kl(e,t,n){dr(t,e);const o=Kl(e.$unknown,t),[a,r,i]=Jt(t),s=qa(n);for(const l of o)bl(a,new it(l.data),r,l.wireType,s);return i()}function xl(e,t,n){var o;dr(t,e);const a=((o=e.$unknown)!==null&&o!==void 0?o:[]).filter(c=>c.no!==t.number),[r,i]=Jt(t,n),s=new wa;yl(s,{writeUnknownFields:!0},r,i);const l=new it(s.finish());for(;l.pos<l.len;){const[c,d]=l.tag(),h=l.skip(d,c);a.push({no:c,wireType:d,data:h})}e.$unknown=a}function Kl(e,t){if(e===void 0)return[];if(t.fieldKind==="enum"||t.fieldKind==="scalar"){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.number)return[e[n]];return[]}return e.filter(n=>n.no===t.number)}function Jt(e,t){const n=e.typeName,o=Object.assign(Object.assign({},e),{kind:"field",parent:e.extendee,localName:n}),a=Object.assign(Object.assign({},e.extendee),{fields:[o],members:[o],oneofs:[]}),r=oe(a,t!==void 0?{[n]:t}:void 0);return[Zs(a,r),o,()=>{const i=r[n];if(i===void 0){const s=e.message;return Ke(s)?Re(s.fields[0].scalar,s.fields[0].longAsString):oe(s)}return i}]}function dr(e,t){if(e.extendee.typeName!=t.$typeName)throw new Error(`extension ${e.typeName} can only be applied to message ${e.extendee.typeName}`)}var mr=Date.parse("0001-01-01T00:00:00Z"),br=Date.parse("9999-12-31T23:59:59Z");var zl=3,Ll=2,To={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function jl(e){return e?Object.assign(Object.assign({},To),e):To}function hr(e,t,n){return Xt(e)(jl(n),t)}function Hl(e,t,n){var o;const a=hr(e,t,n);return JSON.stringify(a,null,(o=n?.prettySpaces)!==null&&o!==void 0?o:0)}var hn=new WeakMap;function Xt(e){let t=hn.get(e);return t===void 0&&(t=Tl(e)),t}function Tl(e){const t=e.typeName,n=Ml(e);if(n!==void 0){const s=e.fields[0],l=(c,d)=>{if(d.$typeName!==t&&s!==void 0)throw new L(s,`cannot use ${s} with message ${d.$typeName}`,"ForeignFieldError");return n(c,d)};return hn.set(e,l),l}const o=e.fields.concat().sort((s,l)=>s.number-l.number),a=o[0],r=[],i=(s,l)=>{if(l.$typeName!==t&&a!==void 0)throw new L(a,`cannot use ${a} with message ${l.$typeName}`,"ForeignFieldError");const c={};for(let d=0;d<r.length;d++)r[d](s,l,c);return s.registry&&ql(c,s,s.registry,l,e),c};hn.set(e,i);for(const s of o){const l=Ol(s);r.push(s.jsonName==="__proto__"||s.name==="__proto__"?Ql(l):l)}return i}function Ql(e){return(t,n,o)=>{const a=Object.create(null);e(t,n,a);for(const r of Object.keys(a))de(o,r,a[r])}}function Ml(e){if(e.typeName.startsWith("google.protobuf."))switch(e.typeName){case"google.protobuf.Any":return(t,n)=>ec(n,t);case"google.protobuf.Timestamp":return(t,n)=>oc(n);case"google.protobuf.Duration":return(t,n)=>tc(n);case"google.protobuf.FieldMask":return(t,n)=>nc(n);case"google.protobuf.Struct":return(t,n)=>Zr(n);case"google.protobuf.Value":return(t,n)=>zn(n);case"google.protobuf.ListValue":return(t,n)=>fr(n);default:if(Ke(e)){const t=e.fields[0],n=t.localName,o=Re(t.scalar,!1),a=kt(t);return(r,i)=>{const s=i[n];return a(r,s===void 0?o:s)}}return}}function Ol(e){switch(e.fieldKind){case"scalar":case"enum":case"message":return Dl(e);case"list":case"map":{const t=e.fieldKind=="list"?pr(e):Ar(e),n=e.name,o=e.jsonName,a=e.localName;return(r,i,s)=>{const l=t(r,i[a]);l!==void 0&&(s[r.useProtoFieldName?n:o]=l)}}}}function Dl(e){const t=gr(e),n=e.name,o=e.jsonName,a=e.localName;if(e.oneof){const r=e.oneof.localName;return(i,s,l)=>{const c=s[r];c.case===a&&(l[i.useProtoFieldName?n:o]=t(i,c.value))}}if(e.presence!=Ll){const r=e.presence==zl?`cannot encode ${e} to JSON: required field not set`:void 0;return(i,s,l)=>{const c=s[a];if(c!==void 0&&Object.prototype.hasOwnProperty.call(s,a))l[i.useProtoFieldName?n:o]=t(i,c);else if(r!==void 0)throw new Error(r)}}if(e.fieldKind=="enum"){const r=e.enum.values[0].number;return(i,s,l)=>{const c=s[a];(c!==r||i.alwaysEmitImplicit)&&(l[i.useProtoFieldName?n:o]=t(i,c))}}switch(e.scalar){case b.BOOL:return(r,i,s)=>{const l=i[a];(l!==!1||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};case b.STRING:return(r,i,s)=>{const l=i[a];(l!==""||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};case b.BYTES:return(r,i,s)=>{const l=i[a];(!(l instanceof Uint8Array)||l.byteLength>0||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};case b.DOUBLE:case b.FLOAT:return(r,i,s)=>{const l=i[a];(!Object.is(l,0)||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};default:return(r,i,s)=>{const l=i[a];(l!=0||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))}}}function _l(e){switch(e.fieldKind){case"scalar":case"enum":case"message":return gr(e);case"list":return pr(e);case"map":return Ar(e)}}function gr(e){switch(e.fieldKind){case"scalar":return kt(e);case"enum":return Kn(e);case"message":return xn(e)}}function xn(e){const{toMessage:t}=pe(e),n=Xt(e.message);return(o,a)=>n(o,t(a))}function pr(e){const t=Pl(e);return(n,o)=>{const a=o;if(a.length==0&&!n.alwaysEmitImplicit)return;const r=[];for(let i=0;i<a.length;i++)r.push(t(n,a[i]));return r}}function Pl(e){switch(e.listKind){case"scalar":return kt(e);case"enum":return Kn(e);case"message":return xn(e)}}function Ar(e){const t=$l(e);return(n,o)=>{const a=o,r=Object.keys(a);if(r.length==0&&!n.alwaysEmitImplicit)return;const i={};for(let s=0;s<r.length;s++){const l=r[s];de(i,l,t(n,a[l]))}return i}}function $l(e){switch(e.mapKind){case"scalar":return kt(e);case"enum":return Kn(e);case"message":return xn(e)}}function Kn(e){const t=e.enum;return t.typeName=="google.protobuf.NullValue"?(n,o)=>{if(typeof o!="number")throw Qo(t,o);return null}:(n,o)=>{var a,r;if(typeof o!="number")throw Qo(t,o);return n.enumAsInteger?o:(r=(a=t.value[o])===null||a===void 0?void 0:a.jsonName)!==null&&r!==void 0?r:o}}function Qo(e,t){return new Error(`cannot encode ${e} to JSON: expected number, got ${D(t)}`)}function kt(e){switch(e.scalar){case b.INT32:case b.SFIXED32:case b.SINT32:case b.FIXED32:case b.UINT32:return(t,n)=>{if(typeof n!="number")throw je(e,n);return n};case b.FLOAT:case b.DOUBLE:return(t,n)=>{if(typeof n!="number")throw je(e,n);return Number.isNaN(n)?"NaN":n===Number.POSITIVE_INFINITY?"Infinity":n===Number.NEGATIVE_INFINITY?"-Infinity":n};case b.STRING:return(t,n)=>{if(typeof n!="string")throw je(e,n);return n};case b.BOOL:return(t,n)=>{if(typeof n!="boolean")throw je(e,n);return n};case b.UINT64:case b.FIXED64:case b.INT64:case b.SFIXED64:case b.SINT64:return(t,n)=>{if(typeof n=="bigint"||typeof n=="string"||typeof n=="number"&&Number.isInteger(n))return n.toString();throw je(e,n)};case b.BYTES:return(t,n)=>{if(n instanceof Uint8Array)return Ns(n);throw je(e,n)}}}function je(e,t){var n;return new Error(`cannot encode ${e} to JSON: ${(n=ka(e,t))===null||n===void 0?void 0:n.message}`)}function ql(e,t,n,o,a){const r=o.$unknown;if(r===void 0)return;const i=new Set;for(let s=0;s<r.length;s++){const{no:l}=r[s];if(!i.has(l)){i.add(l);const c=n.getExtensionFor(a,l);if(!c)continue;const[d,h]=Jt(c,kl(o,c)),f=d[ie],Z=_l(h)(t,f[h.localName]);Z!==void 0&&(e[c.jsonName]=Z)}}}function ec(e,t){if(e.typeUrl==="")return{};const{registry:n}=t;let o,a;if(n&&(o=Fl(e,n),o&&(a=n.getMessage(o.$typeName))),!a||!o)throw new Error(`cannot encode message ${e.$typeName} to JSON: "${e.typeUrl}" is not in the type registry`);const r=va(a)?{value:Xt(a)(t,o)}:Xt(a)(t,o);return r["@type"]=e.typeUrl,r}function tc(e){const t=Number(e.seconds),n=e.nanos;if(t>315576e6||t<-315576e6)throw new Error(`cannot encode message ${e.$typeName} to JSON: value out of range`);if(t>0&&n<0||t<0&&n>0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos sign must match seconds sign`);let o=e.seconds.toString();if(n!==0){let a=Math.abs(n).toString();a="0".repeat(9-a.length)+a,a.substring(3)==="000000"?a=a.substring(0,3):a.substring(6)==="000"&&(a=a.substring(0,6)),o+="."+a,n<0&&t==0&&(o="-"+o)}return o+"s"}function nc(e){return e.paths.map(t=>{if(Qa(Oe(t))!==t)throw new Error(`cannot encode message ${e.$typeName} to JSON: lowerCamelCase of path name "${t}" is irreversible`);return Oe(t)}).join(",")}function Zr(e){const t={},n=Object.keys(e.fields);for(let o=0;o<n.length;o++){const a=n[o];de(t,a,zn(e.fields[a]))}return t}function zn(e){switch(e.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(e.kind.value))throw new Error(`${e.$typeName} cannot be NaN or Infinity`);return e.kind.value;case"boolValue":return e.kind.value;case"stringValue":return e.kind.value;case"structValue":return Zr(e.kind.value);case"listValue":return fr(e.kind.value);default:throw new Error(`${e.$typeName} must have a value`)}}function fr(e){return e.values.map(zn)}function oc(e){const t=Number(e.seconds)*1e3;if(t<mr||t>br)throw new Error(`cannot encode message ${e.$typeName} to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(e.nanos<0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be negative`);if(e.nanos>999999999)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be greater than 99999999`);let n="Z";if(e.nanos>0){const o=(e.nanos+1e9).toString().substring(1);o.substring(3)==="000000"?n="."+o.substring(0,3)+"Z":o.substring(6)==="000"?n="."+o.substring(0,6)+"Z":n="."+o+"Z"}return new Date(t).toISOString().replace(".000Z",n)}var ac=2;function rc(e){return Object.assign(Object.assign({ignoreUnknownFields:!1,recursionLimit:100},e),{depth:0})}function ic(e,t,n){return Rr(e,Ac(t,e.typeName),n)}function Rr(e,t,n){const o=oe(e);return sc(e,o,t,n),o}function sc(e,t,n,o){try{De(e)(t,n,rc(o))}catch(a){throw cs(a)?new Error(`cannot decode ${a.field()} from JSON: ${a.message}`,{cause:a}):a}}var gn=new WeakMap;function De(e){let t=gn.get(e);return t===void 0&&(t=lc(e)),t}function lc(e){const t=String(e),n=cc(e);if(n!==void 0){const i=(s,l,c)=>{if(++c.depth>c.recursionLimit)throw new Error(`cannot decode ${t} from JSON: maximum recursion depth of ${c.recursionLimit} reached`);n(s,l,c),c.depth--};return gn.set(e,i),i}const o=e.typeName,a=new Map,r=(i,s,l)=>{var c;if(++l.depth>l.recursionLimit)throw new Error(`cannot decode ${t} from JSON: maximum recursion depth of ${l.recursionLimit} reached`);if(s==null||Array.isArray(s)||typeof s!="object")throw new Error(`cannot decode ${t} from JSON: ${D(s)}`);const d=new Map,h=new Set,f=Object.keys(s);for(let Z=0;Z<f.length;Z++){const V=f[Z],N=s[V],B=a.get(V);if(B!==void 0){const J=B.field;if(h.has(J))throw new L(J,"set multiple times");if(h.add(J),B.oneofScalarNullSkip&&N===null)continue;if(B.oneof){const u=d.get(B.oneof);if(u!==void 0)throw new L(B.oneof,`oneof set multiple times by ${u.name} and ${J.name}`);d.set(B.oneof,J)}B.read(i,N,l)}else{const J=V.startsWith("[")&&V.endsWith("]")?(c=l.registry)===null||c===void 0?void 0:c.getExtension(V.substring(1,V.length-1)):void 0;if(J?.extendee.typeName==o){const[u,m,p]=Jt(J);Mo(m)(u[ie],N,l),xl(i,J,p())}if(J===void 0&&!l.ignoreUnknownFields)throw new Error(`cannot decode ${t} from JSON: key "${V}" is unknown`)}}l.depth--};gn.set(e,r);for(const i of e.fields){const s={read:Mo(i),field:i,oneof:i.oneof,oneofScalarNullSkip:i.oneof!==void 0&&i.fieldKind=="scalar"};a.set(i.name,s).set(i.jsonName,s)}return r}function cc(e){if(e.typeName.startsWith("google.protobuf."))switch(e.typeName){case"google.protobuf.Any":return(t,n,o)=>fc(t,n,o);case"google.protobuf.Timestamp":return(t,n)=>Rc(t,n);case"google.protobuf.Duration":return(t,n)=>Ec(t,n);case"google.protobuf.FieldMask":return(t,n)=>Vc(t,n);case"google.protobuf.Struct":return(t,n,o)=>Nr(t,n,o);case"google.protobuf.Value":return(t,n,o)=>Qn(t,n,o);case"google.protobuf.ListValue":return(t,n,o)=>Wr(t,n,o);default:if(Ke(e)){const t=e.fields[0],n=t.localName,o=t.scalar,a=t.longAsString,r=Vr(t);return(i,s)=>{s===null?i[n]=Re(o,a):i[n]=r(s)}}return}}function Mo(e){switch(e.fieldKind){case"scalar":return uc(e);case"enum":return dc(e);case"message":return mc(e);case"list":return bc(e);case"map":return gc(e)}}function uc(e){const t=Vr(e),n=e.localName;if(e.oneof){const a=e.oneof.localName;return(r,i)=>{r[a]={case:n,value:t(i)}}}const o=Er(e);return(a,r)=>{r===null?o(a):a[n]=t(r)}}function Er(e){const t=e.localName;if(e.presence!=ac)return a=>{delete a[t]};if(e.fieldKind=="enum"){const a=e.enum.values[0].number;return r=>{r[t]=a}}const n=e.scalar,o=e.longAsString;return a=>{a[t]=Re(n,o)}}function dc(e){const t=Ln(e.enum),n=jn(e.enum),o=e.localName,a=e.enum.typeName!="google.protobuf.NullValue";if(e.oneof){const i=e.oneof.localName;return(s,l,c)=>{if(l===null&&a){s[i].case===o&&(s[i]={case:void 0});return}const d=t(l,c.ignoreUnknownFields);if(d===_e)return;const h=n(d);if(h!==!0)throw new L(e,ue(e,d,h));s[i]={case:o,value:d}}}const r=Er(e);return(i,s,l)=>{if(s===null&&a){r(i);return}const c=t(s,l.ignoreUnknownFields);if(c===_e)return;const d=n(c);if(d!==!0)throw new L(e,ue(e,c,d));i[o]=c}}function mc(e){const t=e.localName,{toMessage:n,toLocal:o}=pe(e),a=De(e.message),r=e.message.typeName!="google.protobuf.Value";if(e.oneof){const i=e.oneof.localName;return(s,l,c)=>{const d=s[i];if(l===null&&r){d.case===t&&(s[i]={case:void 0});return}const h=n(d.case===t?d.value:void 0);a(h,l,c),s[i]={case:t,value:o(h)}}}return(i,s,l)=>{if(s===null&&r){delete i[t];return}const c=n(i[t]);a(c,s,l),i[t]=o(c)}}function bc(e){const t=e.localName,n=hc(e);return(o,a,r)=>{if(a===null)return;if(!Array.isArray(a))throw new L(e,"expected Array, got "+D(a));const i=o[t];for(let s=0;s<a.length;s++){const l=n(a[s],r,i.length);l!==_e&&i.push(l)}}}function hc(e){switch(e.listKind){case"scalar":{const t=Hn(e),n=Ce(e.scalar),o=Tn(e);return(a,r,i)=>{if(a===null)throw new L(e,"list item must not be null");const s=t(a),l=n(s);if(l!==!0)throw new L(e,`list item #${i+1}: ${ue(e,s,l)}`);return o(s)}}case"enum":{const t=Ln(e.enum),n=jn(e.enum),o=e.enum.typeName!="google.protobuf.NullValue";return(a,r,i)=>{if(a===null&&o)throw new L(e,"list item must not be null");const s=t(a,r.ignoreUnknownFields);if(s===_e)return s;const l=n(s);if(l!==!0)throw new L(e,`list item #${i+1}: ${ue(e,s,l)}`);return s}}case"message":{const{toMessage:t,toLocal:n}=pe(e),o=De(e.message),a=e.message.typeName!="google.protobuf.Value";return(r,i)=>{if(r===null&&a)throw new L(e,"list item must not be null");const s=t(void 0);return o(s,r,i),n(s)}}}}function gc(e){const t=e.localName,n=e.mapKey,o=pc(n),a=Ce(n);let r,i,s=c=>c,l=!0;switch(e.mapKind){case"scalar":r=Hn(e),i=Ce(e.scalar),s=Tn(e);break;case"enum":{const c=Ln(e.enum);r=(d,h)=>c(d,h.ignoreUnknownFields),i=jn(e.enum),l=e.enum.typeName!="google.protobuf.NullValue";break}case"message":{const{toMessage:c,toLocal:d}=pe(e),h=De(e.message);l=e.message.typeName!="google.protobuf.Value",r=(f,Z)=>{const V=c(void 0);return h(V,f,Z),d(V)};break}}return(c,d,h)=>{if(d===null)return;if(typeof d!="object"||Array.isArray(d))throw new L(e,"expected object, got "+D(d));const f=c[t],Z=new Set,V=Object.keys(d);for(let N=0;N<V.length;N++){const B=V[N],J=d[B],u=o(B);if(Z.has(u))throw new L(e,`duplicate map key "${B}"`);if(Z.add(u),J===null&&l)throw new L(e,"map value must not be null");const m=r(J,h);if(m===_e)continue;const p=a(u);if(p!==!0)throw new L(e,`invalid map key: ${ue({scalar:n},u,p)}`);if(i!==void 0){const g=i(m);if(g!==!0)throw new L(e,`map entry ${D(u)}: ${ue(e,m,g)}`)}de(f,u,s(m))}}}var _e=Symbol();function Ln(e){const t=e.values[0].number,n=new Map;for(const o of e.values)n.set(o.jsonName,o.number);for(const o of e.values)n.set(o.name,o.number);return(o,a)=>{if(o===null)return t;switch(typeof o){case"number":if(Number.isInteger(o))return o;break;case"string":{const r=n.get(o);if(r!==void 0)return r;if(a)return _e;break}}throw new Error(`cannot decode ${e} from JSON: ${D(o)}`)}}function jn(e){if(e.open)return Ce(b.INT32);const t=e.values;return n=>t.some(o=>o.number===n)}function Vr(e){const t=Hn(e),n=Ce(e.scalar),o=Tn(e);return a=>{const r=t(a),i=n(r);if(i!==!0)throw new L(e,ue(e,r,i));return o(r)}}function Hn(e){switch(e.scalar){case b.DOUBLE:case b.FLOAT:return t=>{if(t==="NaN")return NaN;if(t==="Infinity")return Number.POSITIVE_INFINITY;if(t==="-Infinity")return Number.NEGATIVE_INFINITY;if(typeof t=="number"){if(Number.isNaN(t))throw new L(e,"unexpected NaN number");if(!Number.isFinite(t))throw new L(e,"unexpected infinite number");return t}if(typeof t=="string"){if(t===""||t.trim().length!==t.length)return t;const n=Number(t);return Number.isFinite(n)?n:t}return t};case b.INT32:case b.FIXED32:case b.SFIXED32:case b.SINT32:case b.UINT32:return Gr;case b.BYTES:return t=>{if(typeof t=="string"){if(t==="")return new Uint8Array(0);try{return Fn(t)}catch(n){throw new L(e,n instanceof Error?n.message:String(n))}}return t};default:return t=>t}}function Tn(e){const t=e.fieldKind!=="map"&&e.longAsString;switch(e.scalar){case b.INT64:case b.SFIXED64:case b.SINT64:return t?n=>String(n):n=>typeof n=="string"||typeof n=="number"?z.parse(n):n;case b.FIXED64:case b.UINT64:return t?n=>String(n):n=>typeof n=="string"||typeof n=="number"?z.uParse(n):n;default:return n=>n}}function pc(e){switch(e){case b.BOOL:return t=>{switch(t){case"true":return!0;case"false":return!1}return t};case b.INT32:case b.FIXED32:case b.UINT32:case b.SFIXED32:case b.SINT32:return Gr;case b.INT64:case b.SINT64:case b.SFIXED64:case b.UINT64:case b.FIXED64:return t=>/^-?0+$/.test(t)?"0":t.replace(/^(-?)0+(?=\d)/,"$1");default:return t=>t}}function Gr(e){if(typeof e=="string"){if(e===""||e.trim().length!==e.length)return e;const t=Number(e);return Number.isNaN(t)?e:t}return e}function Ac(e,t){let n;try{n=JSON.parse(e)}catch(o){const a=o instanceof Error?o.message:String(o);throw new Error(`cannot decode message ${t} from JSON: ${a}`,{cause:o})}return Zc(e,t),n}function Zc(e,t){const n=[];let o=!1,a=0;for(;a<e.length;)switch(e[a]){case"{":n.push(new Set),o=!0,a++;break;case"[":n.push(null),o=!1,a++;break;case"}":case"]":n.pop(),o=!1,a++;break;case",":o=n[n.length-1]!=null,a++;break;case":":o=!1,a++;break;case'"':{const r=a++;let i=!1;for(;a<e.length;){if(e[a]=="\\"){i=!0,a+=2;continue}if(e[a]=='"')break;a++}const s=a++,l=n[n.length-1];if(o&&l){const c=i?JSON.parse(e.substring(r,s+1)):e.substring(r+1,s);if(l.has(c))throw new Error(`cannot decode message ${t} from JSON: duplicate object key "${c}"`);l.add(c)}o=!1;break}default:a++;break}}function fc(e,t,n){var o;if(t===null||Array.isArray(t)||typeof t!="object")throw new Error(`cannot decode message ${e.$typeName} from JSON: expected object but got ${D(t)}`);if(Object.keys(t).length==0)return;const a=t["@type"];if(typeof a!="string"||a=="")throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is empty`);const r=a.includes("/")?a.substring(a.lastIndexOf("/")+1):a;if(!r.length)throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is invalid`);const i=(o=n.registry)===null||o===void 0?void 0:o.getMessage(r);if(!i)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${a} is not in the type registry`);const s=oe(i);if(va(i)&&Object.prototype.hasOwnProperty.call(t,"value"))De(i)(s,t.value,n);else{const l={};for(const c of Object.keys(t))c!=="@type"&&de(l,c,t[c]);De(i)(s,l,n)}Bl(i,s,e)}function Rc(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const n=t.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);const o=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(o))throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);if(o<mr||o>br)throw new Error(`cannot decode message ${e.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);e.seconds=z.parse(o/1e3),e.nanos=0,n[7]&&(e.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9)}function Ec(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const n=t.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(n===null)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const o=Number(n[1]);if(o>315576e6||o<-315576e6)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);if(e.seconds=z.parse(o),typeof n[2]!="string")return;const a=n[2]+"0".repeat(9-n[2].length);e.nanos=parseInt(a),(o<0||Object.is(o,-0))&&(e.nanos=-e.nanos)}function Vc(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);t!==""&&(e.paths=t.split(",").map(n=>{if(n.includes("_"))throw new Error(`cannot decode message ${e.$typeName} from JSON: path names must be lowerCamelCase`);return Qa(n)}))}function Nr(e,t,n){if(typeof t!="object"||t==null||Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`);const o=Object.keys(t);for(let a=0;a<o.length;a++){const r=o[a],i=oe(cr);Qn(i,t[r],n),de(e.fields,r,i)}}function Qn(e,t,n){if(++n.depth>n.recursionLimit)throw new Error(`cannot decode ${e.$typeName} from JSON: maximum recursion depth of ${n.recursionLimit} reached`);switch(typeof t){case"number":e.kind={case:"numberValue",value:t};break;case"string":e.kind={case:"stringValue",value:t};break;case"boolean":e.kind={case:"boolValue",value:t};break;case"object":if(t===null)e.kind={case:"nullValue",value:bn.NULL_VALUE};else if(Array.isArray(t)){const o=oe(Jl);Wr(o,t,n),e.kind={case:"listValue",value:o}}else{const o=oe(Ul);Nr(o,t,n),e.kind={case:"structValue",value:o}}break;default:throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`)}return n.depth--,e}function Wr(e,t,n){if(!Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`);for(let o=0;o<t.length;o++){const a=oe(cr);Qn(a,t[o],n),e.values.push(a)}}function Oo(e){const t=R[e];return typeof t!="string"?e.toString():t[0].toLowerCase()+t.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var Y=class Te extends Error{constructor(t,n=R.Unknown,o,a,r){super(Gc(t,n)),this.name="ConnectError",this.isWireError=!1,Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=t,this.code=n,this.metadata=new Headers(o??{}),this.details=a??[],this.cause=r}static from(t,n=R.Unknown){return t instanceof Te?t:t instanceof Error?t.name=="AbortError"||t.name=="TimeoutError"?new Te(t.message,R.Canceled):new Te(t.message,n,void 0,void 0,t):new Te(String(t),n,void 0,void 0,t)}static[Symbol.hasInstance](t){return t instanceof Error?Object.getPrototypeOf(t)===Te.prototype?!0:t.name==="ConnectError"&&"code"in t&&typeof t.code=="number"&&"metadata"in t&&"details"in t&&Array.isArray(t.details)&&"rawMessage"in t&&typeof t.rawMessage=="string"&&"cause"in t:!1}findDetails(t){const n=t.kind==="message"?{getMessage:a=>a===t.typeName?t:void 0}:t,o=[];for(const a of this.details){if("desc"in a){n.getMessage(a.desc.typeName)&&o.push(oe(a.desc,a.value));continue}const r=n.getMessage(a.type);if(r)try{o.push(mt(r,a.value))}catch{}}return o}};function Gc(e,t){return e.length?`[${Oo(t)}] ${e}`:`[${Oo(t)}]`}function Nc(e,t,n){try{const o=Fn(e);return t?mt(t,o,n):o}catch(o){throw Y.from(o,R.DataLoss)}}function Wc(e,t){const n={};for(const o of e.methods){const a=t(o);a!=null&&(n[o.localName]=a)}return n}var Gt=4294967295,Dt=Gt,Sc=1024;function vc(e,t,n){if(t!=null||(t=Dt),e!=null||(e=Gt),n!=null||(n=Sc),t<1||t>Dt)throw new Y(`writeMaxBytes ${t} must be >= 1 and <= ${Dt}`,R.Internal);if(e<1||e>Gt)throw new Y(`readMaxBytes ${e} must be >= 1 and <= ${Gt}`,R.Internal);return{readMaxBytes:e,writeMaxBytes:t,compressMinBytes:n}}function Xc(e,t){if(t>e)throw new Y(`message size ${t} is larger than configured writeMaxBytes ${e}`,R.ResourceExhausted)}function Sr(e,t,n=!1){if(t>e){let o=`message size is larger than configured readMaxBytes ${e}`;throw n&&(o=`message size ${t} is larger than configured readMaxBytes ${e}`),new Y(o,R.ResourceExhausted)}}function Yc(e){return new Ic(e)}var Ic=class{constructor(e){this.readMaxBytes=e,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((e,t)=>e+t.byteLength,0)}decode(e){this.buf.push(e);const t=[];for(;;){let n=this.pop();if(!n)break;t.push(n)}return t}pop(){if(!(!this.env&&(this.env=this.head(),!this.env))&&this.cons(this.env.data)){const e=this.env;return this.env=void 0,e}}head(){if(!this.cons(this.header))return;const e=this.headerView.getUint8(0),t=this.headerView.getUint32(1);return Sr(this.readMaxBytes,t,!0),{flags:e,data:new Uint8Array(t)}}cons(e){const t=e.byteLength;if(this.byteLength<t)return!1;let n=0;for(;n<t;){const o=this.buf.shift();o.byteLength>t-n?(e.set(o.subarray(0,t-n),n),this.buf.unshift(o.subarray(t-n)),n+=t-n):(e.set(o,n),n+=o.byteLength)}return!0}};async function yc(e,t,n){let{flags:o,data:a}=e;if((o&1)===1)throw new Y("invalid envelope, already compressed",R.Internal);return t&&a.byteLength>=n&&(a=await t.compress(a),o=o|1),{data:a,flags:o}}async function Bc(e,t,n){let{flags:o,data:a}=e;if((o&1)===1){if(!t)throw new Y("received compressed envelope, but do not know how to decompress",R.Internal);a=await t.decompress(a,n),o=o^1}return{data:a,flags:o}}function Cc(e,t){const n=new Uint8Array(t.length+5);n.set(t,5);const o=new DataView(n.buffer,n.byteOffset,n.byteLength);return o.setUint8(0,e),o.setUint32(1,t.length),n}var Ee=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(s,l){i=e[r](i),a(s,l,i.done,i.value)})}}function a(r,i,s,l){Promise.resolve(l).then(function(c){r({value:c,done:s})},i)}},k=function(e){return this instanceof k?(this.v=e,this):new k(e)},he=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(V){return Promise.resolve(V).then(Z,h)}}function s(Z,V){o[Z]&&(a[Z]=function(N){return new Promise(function(B,J){r.push([Z,N,B,J])>1||l(Z,N)})},V&&(a[Z]=V(a[Z])))}function l(Z,V){try{c(o[Z](V))}catch(N){f(r[0][3],N)}}function c(Z){Z.value instanceof k?Promise.resolve(Z.value.v).then(d,h):f(r[0][2],Z)}function d(Z){l("next",Z)}function h(Z){l("throw",Z)}function f(Z,V){Z(V),r.shift(),r.length&&l(r[0][0],r[0][1])}},Fc=function(e){var t,n;return t={},o("next"),o("throw",function(a){throw a}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(a,r){t[a]=e[a]?function(i){return(n=!n)?{value:k(e[a](i)),done:!1}:r?r(i):i}:r}};function wc(e,...t){const[n,o,a]=Uc(t);let r=e,i;return a?.propagateDownStreamError===!0&&(r=i=vr(r)),r=Nt(r,...n,{propagateDownStreamError:!1}),o(r).catch(s=>i?i.abort(s).then(()=>Promise.reject(s)):Promise.reject(s))}function Uc(e){let t;return typeof e[e.length-1]!="function"&&(t=e.pop()),[e,e.pop(),t]}function Nt(e,...t){return he(this,arguments,function*(){var o;const[a,r]=Jc(t);let i;const s=e[Symbol.asyncIterator]();let l={[Symbol.asyncIterator](){return s}};r?.propagateDownStreamError===!0&&(l=i=vr(l));for(const d of a)l=d(l);const c=l[Symbol.asyncIterator]();try{for(;;){const d=yield k(c.next());if(d.done===!0)break;if(!i){yield yield k(d.value);continue}try{yield yield k(d.value)}catch(h){throw yield k(i.abort(h)),h}}}finally{r?.propagateDownStreamError===!0&&((o=s.return)===null||o===void 0||o.call(s).catch(()=>{}))}})}function Jc(e){let t;return typeof e[e.length-1]!="function"&&(t=e.pop()),[e,t]}function Do(e,t,n){return t===void 0||n===void 0?function(o){return he(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Ee(o),d;d=yield k(c.next()),a=d.done,!a;l=!0){s=d.value,l=!1;const h=s;yield yield k({flags:0,data:e.serialize(h)})}}catch(h){r={error:h}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}:function(o){return he(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Ee(o),d;d=yield k(c.next()),a=d.done,!a;l=!0){s=d.value,l=!1;const h=s;let f,Z=0;h.end?(Z=Z|t,f=n.serialize(h.value)):f=e.serialize(h.value),yield yield k({flags:Z,data:f})}}catch(h){r={error:h}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}}function _o(e,t,n){return n&&t!==void 0?function(o){return he(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Ee(o),d;d=yield k(c.next()),a=d.done,!a;l=!0){s=d.value,l=!1;const{flags:h,data:f}=s;(h&t)===t?yield yield k({value:n.parse(f),end:!0}):yield yield k({value:e.parse(f),end:!1})}}catch(h){r={error:h}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}:function(o){return he(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Ee(o),d;d=yield k(c.next()),a=d.done,!a;l=!0){s=d.value,l=!1;const{flags:h,data:f}=s;if(t!==void 0&&(h&t)===t){if(n===null)throw new Y("unexpected end flag",R.InvalidArgument);continue}yield yield k(e.parse(f))}}catch(h){r={error:h}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}}function Po(e,t){return function(n){return he(this,arguments,function*(){var o,a,r,i;try{for(var s=!0,l=Ee(n),c;c=yield k(l.next()),o=c.done,!o;s=!0)i=c.value,s=!1,yield yield k(yield k(yc(i,e,t)))}catch(d){a={error:d}}finally{try{!s&&!o&&(r=l.return)&&(yield k(r.call(l)))}finally{if(a)throw a.error}}})}}function $o(e,t){return function(n){return he(this,arguments,function*(){var o,a,r,i;try{for(var s=!0,l=Ee(n),c;c=yield k(l.next()),o=c.done,!o;s=!0)i=c.value,s=!1,yield yield k(yield k(Bc(i,e,t)))}catch(d){a={error:d}}finally{try{!s&&!o&&(r=l.return)&&(yield k(r.call(l)))}finally{if(a)throw a.error}}})}}function qo(){return function(e){return he(this,arguments,function*(){var t,n,o,a;try{for(var r=!0,i=Ee(e),s;s=yield k(i.next()),t=s.done,!t;r=!0){a=s.value,r=!1;const{flags:l,data:c}=a;yield yield k(Cc(l,c))}}catch(l){n={error:l}}finally{try{!r&&!t&&(o=i.return)&&(yield k(o.call(i)))}finally{if(n)throw n.error}}})}}function ea(e){return function(t){return he(this,arguments,function*(){var n,o,a,r;const i=Yc(e);try{for(var s=!0,l=Ee(t),c;c=yield k(l.next()),n=c.done,!n;s=!0){r=c.value,s=!1;const d=r;for(const h of i.decode(d))yield yield k(h)}}catch(d){o={error:d}}finally{try{!s&&!n&&(a=l.return)&&(yield k(a.call(l)))}finally{if(o)throw o.error}}if(i.byteLength>0)throw new Y("protocol error: incomplete envelope",R.InvalidArgument)})}}function vr(e){const t=e[Symbol.asyncIterator]();if(t.throw===void 0)throw new Error("AsyncIterable does not implement throw");const n=t;let o,a,r={next(){return a=n.next().finally(()=>{a=void 0}),a},throw(s){return n.throw(s)}};t.return!==void 0&&(r=Object.assign(Object.assign({},r),{return(s){return n.return(s)}}));let i=!1;return{abort(s){if(o)return o.state;const l=()=>n.throw(s).then(c=>c.done===!0?"completed":"caught",()=>"rethrown");return a?(o={reason:s,state:a.then(l,l)},o.state):(o={reason:s,state:l()},o.state)},[Symbol.asyncIterator](){if(i)throw new Error("AsyncIterable cannot be re-used");return i=!0,r}}}function Xr(e){return he(this,arguments,function*(){yield k(yield*Fc(Ee(e)))})}var Yr=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(s,l){i=e[r](i),a(s,l,i.done,i.value)})}}function a(r,i,s,l){Promise.resolve(l).then(function(c){r({value:c,done:s})},i)}},Pe=function(e){return this instanceof Pe?(this.v=e,this):new Pe(e)},kc=function(e){var t,n;return t={},o("next"),o("throw",function(a){throw a}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(a,r){t[a]=e[a]?function(i){return(n=!n)?{value:Pe(e[a](i)),done:!1}:r?r(i):i}:r}},xc=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(V){return Promise.resolve(V).then(Z,h)}}function s(Z,V){o[Z]&&(a[Z]=function(N){return new Promise(function(B,J){r.push([Z,N,B,J])>1||l(Z,N)})},V&&(a[Z]=V(a[Z])))}function l(Z,V){try{c(o[Z](V))}catch(N){f(r[0][3],N)}}function c(Z){Z.value instanceof Pe?Promise.resolve(Z.value.v).then(d,h):f(r[0][2],Z)}function d(Z){l("next",Z)}function h(Z){l("throw",Z)}function f(Z,V){Z(V),r.shift(),r.length&&l(r[0][0],r[0][1])}};function We(e,t){return Wc(e,n=>{switch(n.methodKind){case"unary":return Kc(t,n);case"server_streaming":return zc(t,n);case"client_streaming":return Lc(t,n);case"bidi_streaming":return jc(t,n);default:return null}})}function Kc(e,t){return async(n,o)=>{var a,r;const i=await e.unary(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);return(a=o?.onHeader)===null||a===void 0||a.call(o,i.header),(r=o?.onTrailer)===null||r===void 0||r.call(o,i.trailer),i.message}}function zc(e,t){return(n,o)=>Ir(e.stream(t,o?.signal,o?.timeoutMs,o?.headers,Xr([n]),o?.contextValues),o)}function Lc(e,t){return async(n,o)=>{var a,r,i,s,l,c;const d=await e.stream(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);(l=o?.onHeader)===null||l===void 0||l.call(o,d.header);let h,f=0;try{for(var Z=!0,V=Yr(d.message),N;N=await V.next(),a=N.done,!a;Z=!0)s=N.value,Z=!1,h=s,f++}catch(B){r={error:B}}finally{try{!Z&&!a&&(i=V.return)&&await i.call(V)}finally{if(r)throw r.error}}if(!h)throw new Y("protocol error: missing response message",R.Unimplemented);if(f>1)throw new Y("protocol error: received extra messages for client streaming method",R.Unimplemented);return(c=o?.onTrailer)===null||c===void 0||c.call(o,d.trailer),h}}function jc(e,t){return(n,o)=>Ir(e.stream(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues),o)}function Ir(e,t){const n=(function(){return xc(this,arguments,function*(){var o,a;const r=yield Pe(e);(o=t?.onHeader)===null||o===void 0||o.call(t,r.header),yield Pe(yield*kc(Yr(r.message))),(a=t?.onTrailer)===null||a===void 0||a.call(t,r.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function Hc(...e){const t=new AbortController,n=e.filter(a=>a!==void 0).concat(t.signal);for(const a of n){if(a.aborted){o.apply(a);break}a.addEventListener("abort",o)}function o(){t.signal.aborted||t.abort(ct(this));for(const a of n)a.removeEventListener("abort",o)}return t}function Tc(e){const t=new AbortController,n=()=>{t.abort(new Y("the operation timed out",R.DeadlineExceeded))};let o;return e!==void 0&&(e<=0?n():o=setTimeout(n,e)),{signal:t.signal,cleanup:()=>clearTimeout(o)}}function ct(e){if(!e.aborted)return;if(e.reason!==void 0)return e.reason;const t=new Error("This operation was aborted");return t.name="AbortError",t}function ta(){return{get(e){return e.id in this?this[e.id]:e.defaultValue},set(e,t){return this[e.id]=t,this},delete(e){return delete this[e.id],this}}}function Qc(e){const t=new Headers,n=new TextDecoder().decode(e).split(`\r
29
+ `);for(const o of n){if(o==="")continue;const a=o.indexOf(":");if(a>0){const r=o.substring(0,a).trim(),i=o.substring(a+1).trim();t.append(r,i)}}return t}function Mc(e){const t=[];return e.forEach((n,o)=>{t.push(`${o}: ${n}\r
30
+ `)}),new TextEncoder().encode(t.join(""))}function na(){return{serialize:Mc,parse:Qc}}var Oc="Content-Type",yr="Grpc-Encoding",Dc="Grpc-Accept-Encoding",_c="Grpc-Timeout",Br="Grpc-Status";var Pc="Grpc-Status-Details-Bin",$c="User-Agent",qc="X-User-Agent",eu="X-Grpc-Web",tu="application/grpc-web+proto",nu="application/grpc-web+json";function Se(e,t,...n){if(n.length>0)throw new Error;return e.services[t]}var ou=ee("CgxzdGF0dXMucHJvdG8SCmdvb2dsZS5ycGMiTgoGU3RhdHVzEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCRIlCgdkZXRhaWxzGAMgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUJeCg5jb20uZ29vZ2xlLnJwY0ILU3RhdHVzUHJvdG9QAVo3Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvc3RhdHVzO3N0YXR1c6ICA1JQQ2IGcHJvdG8z",[or]),au=G(ou,0);function Cr(e){var t;const n=e.get(Pc);if(n!=null){const a=Nc(n,au);if(a.code==0)return;const r=new Y(a.message,a.code,e);return r.details=a.details.map(i=>({type:i.typeUrl.substring(i.typeUrl.lastIndexOf("/")+1),value:i.value})),r.isWireError=!0,r}const o=e.get(Br);if(o!=null){if(o==="0")return;const a=parseInt(o,10);let r;return a in R?r=new Y(decodeURIComponent((t=e.get("Grpc-Message"))!==null&&t!==void 0?t:""),a,e):r=new Y(`invalid grpc-status: ${o}`,R.Internal,e),r.isWireError=!0,r}}function oa(e,t){return e.toString().replace(/\/?$/,`/${t.parent.typeName}/${t.name}`)}function Fr(e,t){return oe(e,t)}function ru(e,t){function n(o){return o.done===!0?o:{done:o.done,value:Fr(e,o.value)}}return{[Symbol.asyncIterator](){const o=t[Symbol.asyncIterator](),a={next:()=>o.next().then(n)};return o.throw!==void 0&&(a.throw=r=>o.throw(r).then(n)),o.return!==void 0&&(a.return=r=>o.return(r).then(n)),a}}}function wr(e,t){if(!t)return e;for(const n of t.concat().reverse())e=n(e);return e}function iu(e){var t;const n=Object.assign({},e);return(t=n.ignoreUnknownFields)!==null&&t!==void 0||(n.ignoreUnknownFields=!0),n}function aa(e,t,n,o){const a=At(ra(e.input,t),o),r=At(ia(e.input,n),o),i=At(ra(e.output,t),o),s=At(ia(e.output,n),o);return{getI(l){return l?a:r},getO(l){return l?i:s}}}function At(e,t){return{serialize(n){const o=e.serialize(n);return Xc(t.writeMaxBytes,o.byteLength),o},parse(n){return Sr(t.readMaxBytes,n.byteLength,!0),e.parse(n)}}}function ra(e,t){return{parse(n){try{return mt(e,n,t)}catch(o){throw new Y(`parse binary: ${o instanceof Error?o.message:String(o)}`,R.Internal)}},serialize(n){try{return ar(e,n,t)}catch(o){throw new Y(`serialize binary: ${o instanceof Error?o.message:String(o)}`,R.Internal)}}}}function ia(e,t){var n,o;const a=(n=t?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,r=(o=t?.textDecoder)!==null&&o!==void 0?o:new TextDecoder,i=iu(t);return{parse(s){try{return ic(e,r.decode(s),i)}catch(l){throw Y.from(l,R.InvalidArgument)}},serialize(s){try{const l=Hl(e,s,i);return a.encode(l)}catch(l){throw Y.from(l,R.Internal)}}}}function su(e){const t=wr(e.next,e.interceptors),[n,o,a]=Ur(e);return t(Object.assign(Object.assign({},e.req),{message:Fr(e.req.method.input,e.req.message),signal:n})).then(r=>(a(),r),o)}function lu(e){const t=wr(e.next,e.interceptors),[n,o,a]=Ur(e),r=Object.assign(Object.assign({},e.req),{message:ru(e.req.method.input,e.req.message),signal:n});let i=!1;return n.addEventListener("abort",function(){var s,l;const c=e.req.message[Symbol.asyncIterator]();i||(s=c.throw)===null||s===void 0||s.call(c,this.reason).catch(()=>{}),(l=c.return)===null||l===void 0||l.call(c).catch(()=>{})}),t(r).then(s=>Object.assign(Object.assign({},s),{message:{[Symbol.asyncIterator](){const l=s.message[Symbol.asyncIterator]();return{next(){return!i&&n.aborted?o(ct(n)):l.next().then(c=>(c.done==!0&&(i=!0,a()),c),o)}}}}}),o)}function Ur(e){const{signal:t,cleanup:n}=Tc(e.timeoutMs),o=Hc(e.signal,t);return[o.signal,function(r){const i=o.signal.aborted?Y.from(ct(o.signal),R.Canceled):Y.from(r);return o.abort(i),n(),Promise.reject(i)},function(){n(),o.abort()}]}var cu=ee("CiVoYWdpY29kZS9jb21tb24vdjEvZXJyb3JfZGV0YWlsLnByb3RvEhJoYWdpY29kZS5jb21tb24udjEiQgoLRXJyb3JEZXRhaWwSDAoEY29kZRgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIoqgIlUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLkNvbW1vbi5WMWIGcHJvdG8z",[Ne]),uu=G(cu,0),P={USAGE:2,HTTP_BAD_REQUEST:20,HTTP_UNAUTHORIZED:21,HTTP_FORBIDDEN:23,HTTP_NOT_FOUND:24,HTTP_CONFLICT:29,OPERATION_FAILED:30,WAIT_TIMEOUT:31,HTTP_CLIENT_ERROR:40,HTTP_SERVER_ERROR:50,TRANSPORT:60,UNKNOWN:70},w=class extends Error{constructor(e){super(e),this.name="CliUsageError"}},bt=class extends Error{constructor(e){super(e),this.name="CliOperationFailedError"}},Jr=class extends Error{constructor(e){super(e),this.name="CliWaitTimeoutError"}},ze=class extends Error{status;details;constructor(e,t,n){super(t),this.name="CliHttpError",this.status=e,this.details=n}};function Mn(e){if(!(!e||typeof e!="object"||Array.isArray(e)))return e}function $e(e,t){const n=Mn(e)?.[t];return typeof n=="string"&&n.trim()?n.trim():void 0}function kr(e){return e.includes("fetch failed")||e.includes("ECONNREFUSED")||e.includes("ENOTFOUND")||e.includes("ECONNRESET")||e.includes("ETIMEDOUT")||e.includes("EHOSTUNREACH")||e.includes("EAI_AGAIN")||e.includes("Failed to parse URL")||e.includes("Invalid URL")}function sa(e){switch(e){case 400:return P.HTTP_BAD_REQUEST;case 401:return P.HTTP_UNAUTHORIZED;case 403:return P.HTTP_FORBIDDEN;case 404:return P.HTTP_NOT_FOUND;case 409:return P.HTTP_CONFLICT;default:return e&&e>=400&&e<500?P.HTTP_CLIENT_ERROR:e&&e>=500?P.HTTP_SERVER_ERROR:P.UNKNOWN}}var du={[R.InvalidArgument]:400,[R.OutOfRange]:400,[R.Unauthenticated]:401,[R.PermissionDenied]:403,[R.NotFound]:404,[R.AlreadyExists]:409,[R.FailedPrecondition]:409,[R.Aborted]:409,[R.Unimplemented]:501,[R.Internal]:500,[R.Unknown]:500,[R.DataLoss]:500,[R.Unavailable]:503,[R.DeadlineExceeded]:504},mu=/exceeds?\s+the\s+maximum|too\s+large|payload\s+too\s+large/i;function bu(e){return e.code===R.ResourceExhausted?mu.test(e.rawMessage)?413:429:du[e.code]??500}function hu(e){return e.code!==R.Unavailable&&e.code!==R.Unknown&&e.code!==R.Internal&&e.code!==R.Aborted?!1:e.cause instanceof Error||kr(e.rawMessage)}function xr(e){if(!(e instanceof Y)||e.code===R.Canceled||hu(e))return;const[t]=e.findDetails(uu),n=t&&t.code.length>0?t.code:void 0,o=t?.data??{},a=e.rawMessage.trim()||`The backend rejected the request (${R[e.code]}).`;return{status:bu(e),message:a,code:n,body:{error:a,...n?{code:n}:{},...o}}}function la(e,t){const n=t.baseUrl??"the configured backend";return{exitCode:P.TRANSPORT,message:/Failed to parse URL|Invalid URL/i.test(e)?`Invalid HagiCode backend base URL: ${n}`:`Cannot reach HagiCode backend at ${n}. Check that the backend is running and the base URL is correct.`}}function Kr(e,t={}){if(e instanceof w)return{exitCode:P.USAGE,message:e.message};if(e instanceof bt)return{exitCode:P.OPERATION_FAILED,message:e.message};if(e instanceof Jr)return{exitCode:P.WAIT_TIMEOUT,message:e.message};if(e instanceof ze)return{exitCode:sa(e.status),status:e.status,message:e.message,details:e.details};if(e instanceof Y){const n=xr(e);if(n){const o=pu(n.body);return{exitCode:sa(n.status),status:n.status,message:o.length>0?[n.message,...o].join(`
31
+ `):n.message,errorCode:$e(n.body,"errorCode")??n.code,correlationId:$e(n.body,"correlationId"),details:n.body}}return e.code===R.Canceled?{exitCode:P.UNKNOWN,message:"The request was cancelled."}:la(e.rawMessage,t)}return e instanceof Error?kr(e.message)?la(e.message,t):{exitCode:P.UNKNOWN,message:e.message}:{exitCode:P.UNKNOWN,message:String(e)}}function gu(e){const t=Mn(e)?.errors;return Array.isArray(t)?t.flatMap(n=>{const o=$e(n,"field"),a=$e(n,"message");return o&&a?[` - ${o}: ${a}`]:[]}):[]}function pu(e){const t=Mn(e)?.fieldErrors;return Array.isArray(t)?t.flatMap(n=>{const o=$e(n,"field"),a=$e(n,"message");return o&&a?[` - ${o}: ${a}`]:[]}):[]}function zr(e,t={}){if(t.json)return`${JSON.stringify({error:{message:e.message,status:e.status,exitCode:e.exitCode,errorCode:e.errorCode,correlationId:e.correlationId,details:e.details}},null,2)}
32
+ `;const n=[e.status?`status=${e.status}`:void 0,e.errorCode?`errorCode=${e.errorCode}`:void 0,e.correlationId?`correlationId=${e.correlationId}`:void 0].filter(Boolean),o=n.length>0?` (${n.join(", ")})`:"";return[`${e.message}${o}`,...gu(e.details)].join(`
33
33
  `)+`
34
- `}var mu="--base-url",bu="HAGI_API_BASE_URL";function Ze(e){const t=e?.trim();return t||void 0}function Kr(e=process.env){return(0,to.join)(Ze(e.XDG_CONFIG_HOME)??(0,to.join)((0,vi.homedir)(),".config"),"hagi","config.json")}function hu(e=process.env){const t=Kr(e);let n;try{n=(0,Si.readFileSync)(t,"utf8")}catch(r){if(r.code==="ENOENT")return;throw new U(`Cannot read CLI config file ${t}: ${r instanceof Error?r.message:String(r)}`)}let o;try{o=JSON.parse(n)}catch{throw new U(`CLI config file ${t} is not valid JSON.`)}const a=o&&typeof o=="object"&&!Array.isArray(o)?o.baseUrl:void 0;return typeof a=="string"?Ze(a):void 0}function gu(e={},t=process.env){const n=Ze(e.baseUrl)??Ze(t.HAGI_API_BASE_URL)??hu(t);if(!n)throw new U(`No backend base URL is configured. Set ${mu} <url>, the ${bu} environment variable, or "baseUrl" in ${Kr(t)}.`);return{baseUrl:n,token:Ze(e.token)??Ze(t.HAGI_API_TOKEN),lang:Ze(e.lang)??Ze(t.HAGI_API_LANG)}}var ct;function Au(e={},t=process.env){return ct=gu(e,t),ct}function zr(){if(!ct)throw new U("The backend connection is not configured. Resolve the API runtime before calling the backend.");return ct}function pu(){return Ze(ct?.baseUrl)}var te=ee("CiFoYWdpY29kZS9wcm9qZWN0L3YxL3Byb2plY3QucHJvdG8SE2hhZ2ljb2RlLnByb2plY3QudjEiSwoUQ3JlYXRlUHJvamVjdFJlcXVlc3QSMwoEYm9keRgBIAEoCzIlLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlUHJvamVjdER0byJIChVDcmVhdGVQcm9qZWN0UmVzcG9uc2USLwoGcmVzdWx0GAEgASgLMh8uaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0RHRvIhoKGENyZWF0ZURlbW9Qcm9qZWN0UmVxdWVzdCJMChlDcmVhdGVEZW1vUHJvamVjdFJlc3BvbnNlEi8KBnJlc3VsdBgBIAEoCzIfLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdER0byJXChRVcGRhdGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCRIzCgRib2R5GAIgASgLMiUuaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVQcm9qZWN0RHRvIkgKFVVwZGF0ZVByb2plY3RSZXNwb25zZRIvCgZyZXN1bHQYASABKAsyHy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REdG8iIgoURGVsZXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiFwoVRGVsZXRlUHJvamVjdFJlc3BvbnNlIkUKHkdldFByb2plY3RTdGFuZGFyZFdvcmRzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEg8KB3JlZnJlc2gYAiABKAgiZwofR2V0UHJvamVjdFN0YW5kYXJkV29yZHNSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzUmVzcG9uc2VEdG8iPgooR2V0UHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJInsKKUdldFByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlc3BvbnNlEk4KBnJlc3VsdBgBIAEoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50RG9jdW1lbnREdG8ikAEKKVNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSTwoEYm9keRgCIAEoCzJBLmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlcXVlc3REdG8ifAoqU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlc3BvbnNlEk4KBnJlc3VsdBgBIAEoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50RG9jdW1lbnREdG8iMwodR2V0TW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJdCh5HZXRNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50RHRvIiwKFlJlbG9hZE1vbm9TcGVjc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJWChdSZWxvYWRNb25vU3BlY3NSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnREdG8igAEKIUNsb25lTW9ub1NwZWNzUmVwb3NpdG9yaWVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEkcKBGJvZHkYAiABKAsyOS5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc0Nsb25lUmVwb3NpdG9yaWVzUmVxdWVzdER0byJwCiJDbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllc1Jlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXNwb25zZUR0byJpCihSZW1vdmVNb25vU3BlY3NSZXBvc2l0b3J5Q2hlY2tvdXRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEQoEcGF0aBgCIAEoCUgAiAEBEg0KBWZvcmNlGAMgASgIQgcKBV9wYXRoInQKKVJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlc3BvbnNlEkcKBnJlc3VsdBgBIAEoCzI3LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzUmVtb3ZlQ2hlY2tvdXRSZXNwb25zZUR0byIwChpJbml0aWFsaXplTW9ub1NwZWNzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIloKG0luaXRpYWxpemVNb25vU3BlY3NSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnREdG8ifgogVXBkYXRlTW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRJGCgRib2R5GAIgASgLMjguaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVxdWVzdER0byJgCiFVcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50RHRvImcKH0dldFByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIcCg9yZXBvc2l0b3J5X3BhdGgYAiABKAlIAIgBAUISChBfcmVwb3NpdG9yeV9wYXRoImEKIEdldFByb2plY3REZXNpZ25Eb2N1bWVudFJlc3BvbnNlEj0KBnJlc3VsdBgBIAEoCzItLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdERlc2lnbkRvY3VtZW50RHRvIoABCiBTYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEkgKBGJvZHkYAiABKAsyOi5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3REdG8ibAohU2F2ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlc3BvbnNlEkcKBnJlc3VsdBgBIAEoCzI3LmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlc3VsdER0byI2CiBHZXRQcm9qZWN0RGVzaWduU2l0ZUluZGV4UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJImMKIUdldFByb2plY3REZXNpZ25TaXRlSW5kZXhSZXNwb25zZRI+CgZyZXN1bHQYASABKAsyLi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlSW5kZXhEdG8iRwojR2V0UHJvamVjdERlc2lnblNpdGVEb2N1bWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIMCgRzbHVnGAIgASgJImkKJEdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnRSZXNwb25zZRJBCgZyZXN1bHQYASABKAsyMS5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlRG9jdW1lbnREdG8ieQocVmFsaWRhdGVQcm9qZWN0QnJhbmNoUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhMKC2JyYW5jaF9uYW1lGAIgASgJEhwKD3JlcG9zaXRvcnlfcGF0aBgDIAEoCUgAiAEBQhIKEF9yZXBvc2l0b3J5X3BhdGgiYQodVmFsaWRhdGVQcm9qZWN0QnJhbmNoUmVzcG9uc2USQAoGcmVzdWx0GAEgASgLMjAuaGFnaWNvZGUucHJvamVjdC52MS5CcmFuY2hWYWxpZGF0aW9uUmVzcG9uc2VEdG8iKgoaVmFsaWRhdGVQcm9qZWN0UGF0aFJlcXVlc3QSDAoEcGF0aBgBIAEoCSJdChtWYWxpZGF0ZVByb2plY3RQYXRoUmVzcG9uc2USPgoGcmVzdWx0GAEgASgLMi4uaGFnaWNvZGUucHJvamVjdC52MS5QYXRoVmFsaWRhdGlvblJlc3BvbnNlRHRvIlcKGlNjYW5HaXRSZXBvc2l0b3JpZXNSZXF1ZXN0EjkKBGJvZHkYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLlNjYW5HaXRSZXBvc1JlcXVlc3REdG8iWwobU2NhbkdpdFJlcG9zaXRvcmllc1Jlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLnByb2plY3QudjEuU2NhbkdpdFJlcG9zUmVzcG9uc2VEdG8iYAoeVmFsaWRhdGVNb25vU3BlY3NDb25maWdSZXF1ZXN0Ej4KBGJvZHkYASABKAsyMC5oYWdpY29kZS5wcm9qZWN0LnYxLlZhbGlkYXRlTW9ub1NwZWNzUmVxdWVzdER0byJkCh9WYWxpZGF0ZU1vbm9TcGVjc0NvbmZpZ1Jlc3BvbnNlEkEKBnJlc3VsdBgBIAEoCzIxLmhhZ2ljb2RlLnByb2plY3QudjEuVmFsaWRhdGVNb25vU3BlY3NSZXNwb25zZUR0byItChdHZXRQcm9qZWN0VmF1bHRzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIlUKGEdldFByb2plY3RWYXVsdHNSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0TGlzdFJlc3BvbnNlRHRvIqABCh5PcGVuUHJvamVjdEluQ29kZVNlcnZlclJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRInChpjdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZRgCIAEoCUgAiAEBEhUKCHN1Yl9wYXRoGAMgASgJSAGIAQFCHQobX2N1cnJlbnRfaW50ZXJmYWNlX2xhbmd1YWdlQgsKCV9zdWJfcGF0aCJlCh9PcGVuUHJvamVjdEluQ29kZVNlcnZlclJlc3BvbnNlEkIKBnJlc3VsdBgBIAEoCzIyLmhhZ2ljb2RlLnByb2plY3QudjEuVnNDb2RlU2VydmVyTGF1bmNoUmVzcG9uc2VEdG8iNQofR2V0UHJvamVjdEdpdFdhdGNoU3RhdHVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIl4KIEdldFByb2plY3RHaXRXYXRjaFN0YXR1c1Jlc3BvbnNlEjoKBnJlc3VsdBgBIAEoCzIqLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdEdpdFdhdGNoU3RhdHVzIkAKDlN1YlJlcG9JbmZvRHRvEgwKBG5hbWUYASABKAkSDAoEcGF0aBgCIAEoCRISCgpoYXNfYWdlbnRzGAMgASgIIvEDCgpQcm9qZWN0RHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcGF0aBgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjEKDWNyZWF0aW9uX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKFmxhc3RfbW9kaWZpY2F0aW9uX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhUKDWlzX21vbm9fc3BlY3MYByABKAgSHwoSbW9ub19zcGVjc192ZXJzaW9uGAggASgJSAGIAQESJgoZbW9ub19zcGVjc19yZXBvX2RpcmVjdG9yeRgJIAEoCUgCiAEBEisKHm1vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZRgKIAEoCEgDiAEBEj0KEHN1Yl9yZXBvc2l0b3JpZXMYCyADKAsyIy5oYWdpY29kZS5wcm9qZWN0LnYxLlN1YlJlcG9JbmZvRHRvQg4KDF9kZXNjcmlwdGlvbkIVChNfbW9ub19zcGVjc192ZXJzaW9uQhwKGl9tb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5QiEKH19tb25vX3NwZWNzX2NvbW1pdF93aGVuX2FyY2hpdmUiWAoQQ3JlYXRlUHJvamVjdER0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24iWAoQVXBkYXRlUHJvamVjdER0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24i5gIKG1Byb2plY3RTdGFuZGFyZFdvcmRHcm91cER0bxIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRIWCglwYXJlbnRfaWQYAyABKAlIAIgBARIPCgdlbmFibGVkGAQgASgIEg0KBW9yZGVyGAUgASgFEhMKC3NvdXJjZV90eXBlGAYgASgJEhwKFHNvdXJjZV9yZWxhdGl2ZV9wYXRoGAcgASgJEgwKBHRhZ3MYCCADKAkSFQoIbGFuZ3VhZ2UYCSABKAlIAYgBARJQCghtZXRhZGF0YRgKIAMoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZEdyb3VwRHRvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9wYXJlbnRfaWRCCwoJX2xhbmd1YWdlIu0CChxQcm9qZWN0U3RhbmRhcmRXb3JkUGhyYXNlRHRvEhAKCGdyb3VwX2lkGAEgASgJEgsKA2tleRgCIAEoCRINCgVsYWJlbBgDIAEoCRIWCg5zdWJtaXR0ZWRfdGV4dBgEIAEoCRIPCgdlbmFibGVkGAUgASgIEg0KBW9yZGVyGAYgASgFEhMKC3NvdXJjZV90eXBlGAcgASgJEhwKFHNvdXJjZV9yZWxhdGl2ZV9wYXRoGAggASgJEgwKBHRhZ3MYCSADKAkSFQoIbGFuZ3VhZ2UYCiABKAlIAIgBARJRCghtZXRhZGF0YRgLIAMoCzI/LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZFBocmFzZUR0by5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUILCglfbGFuZ3VhZ2UinAEKHFByb2plY3RTdGFuZGFyZFdvcmRTb3VyY2VEdG8SDAoEdHlwZRgBIAEoCRIVCg1yZWxhdGl2ZV9wYXRoGAIgASgJEhEKCWZ1bGxfcGF0aBgDIAEoCRIOCgZleGlzdHMYBCABKAgSNAoQbGFzdF9tb2RpZmllZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiygEKIVByb2plY3RTdGFuZGFyZFdvcmRzRGlhZ25vc3RpY0R0bxIQCghzZXZlcml0eRgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSGAoLc291cmNlX3R5cGUYBCABKAlIAIgBARIaCg1yZWxhdGl2ZV9wYXRoGAUgASgJSAGIAQESEgoFZmllbGQYBiABKAlIAogBAUIOCgxfc291cmNlX3R5cGVCEAoOX3JlbGF0aXZlX3BhdGhCCAoGX2ZpZWxkIr0DCh9Qcm9qZWN0U3RhbmRhcmRXb3Jkc1Jlc3BvbnNlRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMcHJvamVjdF9yb290GAMgASgJEi0KCWxvYWRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKZnJvbV9jYWNoZRgFIAEoCBJCCgdzb3VyY2VzGAYgAygLMjEuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3JkU291cmNlRHRvEkAKBmdyb3VwcxgHIAMoCzIwLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZEdyb3VwRHRvEkIKB3BocmFzZXMYCCADKAsyMS5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRQaHJhc2VEdG8SSwoLZGlhZ25vc3RpY3MYCSADKAsyNi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRGlhZ25vc3RpY0R0byK6AgolUHJvamVjdFN0YW5kYXJkV29yZHNFZGl0YWJsZVBocmFzZUR0bxILCgNrZXkYASABKAkSDQoFbGFiZWwYAiABKAkSFgoOc3VibWl0dGVkX3RleHQYAyABKAkSDwoHZW5hYmxlZBgEIAEoCBINCgVvcmRlchgFIAEoBRIMCgR0YWdzGAYgAygJEhUKCGxhbmd1YWdlGAcgASgJSACIAQESWgoIbWV0YWRhdGEYCCADKAsySC5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVQaHJhc2VEdG8uTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCwoJX2xhbmd1YWdlIpIDCiRQcm9qZWN0U3RhbmRhcmRXb3Jkc0VkaXRhYmxlR3JvdXBEdG8SCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSFgoJcGFyZW50X2lkGAMgASgJSACIAQESDwoHZW5hYmxlZBgEIAEoCBINCgVvcmRlchgFIAEoBRIMCgR0YWdzGAYgAygJEhUKCGxhbmd1YWdlGAcgASgJSAGIAQESWQoIbWV0YWRhdGEYCCADKAsyRy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVHcm91cER0by5NZXRhZGF0YUVudHJ5EksKB3BocmFzZXMYCSADKAsyOi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVQaHJhc2VEdG8aLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9wYXJlbnRfaWRCCwoJX2xhbmd1YWdlIsQBCiVQcm9qZWN0U3RhbmRhcmRXb3Jkc092ZXJsYXlTdW1tYXJ5RHRvEhMKC3NvdXJjZV90eXBlGAEgASgJEhUKDXJlbGF0aXZlX3BhdGgYAiABKAkSDgoGZXhpc3RzGAMgASgIEhMKC2dyb3VwX2NvdW50GAQgASgFEhQKDHBocmFzZV9jb3VudBgFIAEoBRI0ChBsYXN0X21vZGlmaWVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLWAQokUHJvamVjdFN0YW5kYXJkV29yZHNTb3VyY2VWZXJzaW9uRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhMKC3NvdXJjZV90eXBlGAIgASgJEhUKDXJlbGF0aXZlX3BhdGgYAyABKAkSEQoJZnVsbF9wYXRoGAQgASgJEg4KBmV4aXN0cxgFIAEoCBI0ChBsYXN0X21vZGlmaWVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglzaWduYXR1cmUYByABKAkilgEKIVByb2plY3RTdGFuZGFyZFdvcmRzU3RhdGlzdGljc0R0bxITCgtncm91cF9jb3VudBgBIAEoBRIUCgxwaHJhc2VfY291bnQYAiABKAUSHAoUZGlzYWJsZWRfZW50cnlfY291bnQYAyABKAUSEQoJdGFnX2NvdW50GAQgASgFEhUKDXNvdXJjZV9zdGF0dXMYBSABKAki8wQKKVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudERvY3VtZW50RHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMcHJvamVjdF9yb290GAMgASgJEi0KCWxvYWRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoGZ3JvdXBzGAUgAygLMjkuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc0VkaXRhYmxlR3JvdXBEdG8SQgoHc291cmNlcxgGIAMoCzIxLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZFNvdXJjZUR0bxJaChZ1c2VyX292ZXJsYXlfc3VtbWFyaWVzGAcgAygLMjouaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc092ZXJsYXlTdW1tYXJ5RHRvEkoKCnN0YXRpc3RpY3MYCCABKAsyNi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzU3RhdGlzdGljc0R0bxJRCg5zb3VyY2VfdmVyc2lvbhgJIAEoCzI5LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNTb3VyY2VWZXJzaW9uRHRvEksKC2RpYWdub3N0aWNzGAogAygLMjYuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc0RpYWdub3N0aWNEdG8i5AEKLFNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0RHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEkkKBmdyb3VwcxgCIAMoCzI5LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNFZGl0YWJsZUdyb3VwRHRvElEKDnNvdXJjZV92ZXJzaW9uGAMgASgLMjkuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc1NvdXJjZVZlcnNpb25EdG8iVQojTW9ub1NwZWNzTWFuYWdlbWVudE1ldGFkYXRhRW50cnlEdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJEhIKCnZhbHVlX2tpbmQYAyABKAki5gQKIE1vbm9TcGVjc01hbmFnZW1lbnRSZXBvc2l0b3J5RHRvEgwKBG5hbWUYASABKAkSEQoEY29kZRgCIAEoCUgAiAEBEgwKBHBhdGgYAyABKAkSEAoDdXJsGAQgASgJSAGIAQESGQoMZGlzcGxheV9uYW1lGAUgASgJSAKIAQESEQoEdHlwZRgGIAEoCUgDiAEBEhEKBGljb24YByABKAlIBIgBARIQCghvcHRpb25hbBgIIAEoCBIMCgR0YWdzGAkgAygJEkoKCG1ldGFkYXRhGAogAygLMjguaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50TWV0YWRhdGFFbnRyeUR0bxIZChFpc192YWxpZF9naXRfcmVwbxgLIAEoCBITCgZicmFuY2gYDCABKAlIBYgBARIfChdoYXNfdW5jb21taXR0ZWRfY2hhbmdlcxgNIAEoCBIdChV1bnB1c2hlZF9jb21taXRfY291bnQYDiABKAUSGwoTaGFzX3RyYWNraW5nX2JyYW5jaBgPIAEoCBI1Cg90cmFja2luZ19icmFuY2gYECABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSEwoLYWhlYWRfY291bnQYESABKAUSFAoMYmVoaW5kX2NvdW50GBIgASgFEhcKCnN5bmNfc3RhdGUYEyABKAlIBogBAUIHCgVfY29kZUIGCgRfdXJsQg8KDV9kaXNwbGF5X25hbWVCBwoFX3R5cGVCBwoFX2ljb25CCQoHX2JyYW5jaEINCgtfc3luY19zdGF0ZSKiAgoWTW9ub1NwZWNzTWFuYWdlbWVudER0bxIPCgd2ZXJzaW9uGAEgASgJEhYKDnJlcG9fZGlyZWN0b3J5GAIgASgJEhMKC2NvbmZpZ19wYXRoGAMgASgJEhsKE2NvbW1pdF93aGVuX2FyY2hpdmUYBCABKAgSFAoMeWFtbF9wcmV2aWV3GAUgASgJEksKDHJlcG9zaXRvcmllcxgGIAMoCzI1LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzTWFuYWdlbWVudFJlcG9zaXRvcnlEdG8SSgoIbWV0YWRhdGEYByADKAsyOC5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnRNZXRhZGF0YUVudHJ5RHRvImMKIU1vbm9TcGVjc0Nsb25lUmVwb3NpdG9yeVJlc3VsdER0bxIMCgRwYXRoGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIUCgdtZXNzYWdlGAMgASgJSACIAQFCCgoIX21lc3NhZ2UicAolTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXNwb25zZUR0bxJHCgdyZXN1bHRzGAEgAygLMjYuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NDbG9uZVJlcG9zaXRvcnlSZXN1bHREdG8iTwokTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXF1ZXN0RHRvEg0KBXBhdGhzGAEgAygJEhgKEGluY2x1ZGVfb3B0aW9uYWwYAiABKAgiZQoiTW9ub1NwZWNzUmVtb3ZlQ2hlY2tvdXRSZXNwb25zZUR0bxIMCgRwYXRoGAEgASgJEg8KB3JlbW92ZWQYAiABKAgSFAoHbWVzc2FnZRgDIAEoCUgAiAEBQgoKCF9tZXNzYWdlIoQCCiNVcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVxdWVzdER0bxIPCgd2ZXJzaW9uGAEgASgJEhYKDnJlcG9fZGlyZWN0b3J5GAIgASgJEhsKE2NvbW1pdF93aGVuX2FyY2hpdmUYAyABKAgSSwoMcmVwb3NpdG9yaWVzGAQgAygLMjUuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50UmVwb3NpdG9yeUR0bxJKCghtZXRhZGF0YRgFIAMoCzI4LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzTWFuYWdlbWVudE1ldGFkYXRhRW50cnlEdG8inQEKGFByb2plY3REZXNpZ25Eb2N1bWVudER0bxIMCgRwYXRoGAEgASgJEhwKD3JlcG9zaXRvcnlfcGF0aBgCIAEoCUgAiAEBEg8KB2NvbnRlbnQYAyABKAkSDgoGZXhpc3RzGAQgASgIEhQKB3ZlcnNpb24YBSABKAlIAYgBAUISChBfcmVwb3NpdG9yeV9wYXRoQgoKCF92ZXJzaW9uIoYBCiJTYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVzdWx0RHRvEgwKBHBhdGgYASABKAkSHAoPcmVwb3NpdG9yeV9wYXRoGAIgASgJSACIAQESDwoHY3JlYXRlZBgDIAEoCBIPCgd2ZXJzaW9uGAQgASgJQhIKEF9yZXBvc2l0b3J5X3BhdGgingEKJVVwZGF0ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3REdG8SHAoPcmVwb3NpdG9yeV9wYXRoGAEgASgJSACIAQESDwoHY29udGVudBgCIAEoCRIdChBleHBlY3RlZF92ZXJzaW9uGAMgASgJSAGIAQFCEgoQX3JlcG9zaXRvcnlfcGF0aEITChFfZXhwZWN0ZWRfdmVyc2lvbiLAAQoeUHJvamVjdERlc2lnblNpdGVJbmRleEVudHJ5RHRvEgwKBHNsdWcYASABKAkSDQoFdGl0bGUYAiABKAkSDwoHc3VtbWFyeRgDIAEoCRISCgpkZXRhaWxfdXJsGAQgASgJEhsKE2Rlc2lnbl9kb3dubG9hZF91cmwYBSABKAkSHwoXcHJldmlld19saWdodF9pbWFnZV91cmwYBiABKAkSHgoWcHJldmlld19kYXJrX2ltYWdlX3VybBgHIAEoCSK+AgoZUHJvamVjdERlc2lnblNpdGVJbmRleER0bxITCgtjYXRhbG9nX3VybBgBIAEoCRIVCg1zb3VyY2Vfc3RhdHVzGAIgASgJEhMKC2VudHJ5X2NvdW50GAMgASgFEkQKB2VudHJpZXMYBCADKAsyMy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlSW5kZXhFbnRyeUR0bxIaCg1jYWNoZV9jb250cm9sGAUgASgJSACIAQESEgoFZV90YWcYBiABKAlIAYgBARIaCg1sYXN0X21vZGlmaWVkGAcgASgJSAKIAQESFAoHZXhwaXJlcxgIIAEoCUgDiAEBQhAKDl9jYWNoZV9jb250cm9sQggKBl9lX3RhZ0IQCg5fbGFzdF9tb2RpZmllZEIKCghfZXhwaXJlcyKZAgocUHJvamVjdERlc2lnblNpdGVEb2N1bWVudER0bxIMCgRzbHVnGAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB2NvbnRlbnQYAyABKAkSEgoKZGV0YWlsX3VybBgEIAEoCRIbChNkZXNpZ25fZG93bmxvYWRfdXJsGAUgASgJEhoKDWNhY2hlX2NvbnRyb2wYBiABKAlIAIgBARISCgVlX3RhZxgHIAEoCUgBiAEBEhoKDWxhc3RfbW9kaWZpZWQYCCABKAlIAogBARIUCgdleHBpcmVzGAkgASgJSAOIAQFCEAoOX2NhY2hlX2NvbnRyb2xCCAoGX2VfdGFnQhAKDl9sYXN0X21vZGlmaWVkQgoKCF9leHBpcmVzImoKG0JyYW5jaFZhbGlkYXRpb25SZXNwb25zZUR0bxIOCgZleGlzdHMYASABKAgSEAoIaXNfdmFsaWQYAiABKAgSFAoMaXNfYXZhaWxhYmxlGAMgASgIEhMKC2JyYW5jaF9uYW1lGAQgASgJIogDChlQYXRoVmFsaWRhdGlvblJlc3BvbnNlRHRvEhAKCGlzX3ZhbGlkGAEgASgIEg4KBnN0YXR1cxgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhYKCXBhdGhfdHlwZRgEIAEoCUgAiAEBEiIKFWhhc19tb25vX3NwZWNzX2NvbmZpZxgFIAEoCEgBiAEBEiMKFm1vbm9fc3BlY3NfY29uZmlnX3BhdGgYBiABKAlIAogBARImChltb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5GAcgASgJSAOIAQESKwoebW9ub19zcGVjc19jb21taXRfd2hlbl9hcmNoaXZlGAggASgISASIAQFCDAoKX3BhdGhfdHlwZUIYChZfaGFzX21vbm9fc3BlY3NfY29uZmlnQhkKF19tb25vX3NwZWNzX2NvbmZpZ19wYXRoQhwKGl9tb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5QiEKH19tb25vX3NwZWNzX2NvbW1pdF93aGVuX2FyY2hpdmUiVgoKR2l0UmVwb0R0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSFQoNcmVsYXRpdmVfcGF0aBgDIAEoCRIVCg1pc19tb25vX3NwZWNzGAQgASgIIqQBChdTY2FuR2l0UmVwb3NSZXNwb25zZUR0bxI1CgxyZXBvc2l0b3JpZXMYASADKAsyHy5oYWdpY29kZS5wcm9qZWN0LnYxLkdpdFJlcG9EdG8SEwoLdG90YWxfY291bnQYAiABKAUSDwoHc3VjY2VzcxgDIAEoCBIaCg1lcnJvcl9tZXNzYWdlGAQgASgJSACIAQFCEAoOX2Vycm9yX21lc3NhZ2UijwEKFlNjYW5HaXRSZXBvc1JlcXVlc3REdG8SEQoJcm9vdF9wYXRoGAEgASgJEhEKCW1heF9kZXB0aBgCIAEoBRIWCg5leGNsdWRlX2hpZGRlbhgDIAEoCBIdChVtYXhfZm9sZGVyc19wZXJfbGV2ZWwYBCABKAUSGAoQZXhjbHVkZV9wYXR0ZXJucxgFIAMoCSJEChlNb25vU3BlY3NDb25maWdEZXRhaWxzRHRvEg8KB3ZlcnNpb24YASABKAkSFgoOcmVwb19kaXJlY3RvcnkYAiABKAkikgEKHFZhbGlkYXRlTW9ub1NwZWNzUmVzcG9uc2VEdG8SEAoIaXNfdmFsaWQYASABKAgSPgoGY29uZmlnGAIgASgLMi4uaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NDb25maWdEZXRhaWxzRHRvEhAKCHdhcm5pbmdzGAMgAygJEg4KBmVycm9ycxgEIAMoCSIzChtWYWxpZGF0ZU1vbm9TcGVjc1JlcXVlc3REdG8SFAoMcHJvamVjdF9wYXRoGAEgASgJInwKG1ZhdWx0Qm9vdHN0cmFwRGlhZ25vc3RpY0R0bxIQCghzZXZlcml0eRgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSGgoNcmVsYXRpdmVfcGF0aBgEIAEoCUgAiAEBQhAKDl9yZWxhdGl2ZV9wYXRoIt8CCgxWYXVsdEl0ZW1EdG8SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEhUKDXBoeXNpY2FsX3BhdGgYBCABKAkSFAoHZ2l0X3VybBgFIAEoCUgAiAEBEjIKDmNyZWF0ZWRfYXRfdXRjGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg51cGRhdGVkX2F0X3V0YxgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASTwoVYm9vdHN0cmFwX2RpYWdub3N0aWNzGAggAygLMjAuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEJvb3RzdHJhcERpYWdub3N0aWNEdG8SDQoFc2NvcGUYCSABKAkSFwoKcHJvamVjdF9pZBgKIAEoCUgBiAEBQgoKCF9naXRfdXJsQg0KC19wcm9qZWN0X2lkIn4KFFZhdWx0TGlzdFJlc3BvbnNlRHRvEjQKEGdlbmVyYXRlZF9hdF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKBWl0ZW1zGAIgAygLMiEuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEl0ZW1EdG8inwQKHFZzQ29kZVNlcnZlclJ1bnRpbWVTdGF0dXNEdG8SDgoGc3RhdHVzGAEgASgJEhsKE2FjdGl2ZV9jYXBhYmlsaXRpZXMYAiADKAkSEQoEaG9zdBgDIAEoCUgAiAEBEhwKD2NvbmZpZ3VyZWRfcG9ydBgEIAEoBUgBiAEBEhsKDmVmZmVjdGl2ZV9wb3J0GAUgASgFSAKIAQESFQoIYmFzZV91cmwYBiABKAlIA4gBARIWCglhdXRoX21vZGUYByABKAlIBIgBARITCgZzb3VyY2UYCCABKAlIBYgBARIVCg1zb3VyY2VfbG9ja2VkGAkgASgIEhIKCmhhc19zZWNyZXQYCiABKAgSGgoNc2VjcmV0X3NvdXJjZRgLIAEoCUgGiAEBEjkKFWxhc3RfYXR0ZW1wdGVkX2F0X3V0YxgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKbGFzdF9lcnJvchgNIAEoCUgHiAEBEhsKDnN0YXR1c19tZXNzYWdlGA4gASgJSAiIAQFCBwoFX2hvc3RCEgoQX2NvbmZpZ3VyZWRfcG9ydEIRCg9fZWZmZWN0aXZlX3BvcnRCCwoJX2Jhc2VfdXJsQgwKCl9hdXRoX21vZGVCCQoHX3NvdXJjZUIQCg5fc2VjcmV0X3NvdXJjZUINCgtfbGFzdF9lcnJvckIRCg9fc3RhdHVzX21lc3NhZ2UinAIKHVZzQ29kZVNlcnZlckxhdW5jaFJlc3BvbnNlRHRvEhIKCmxhdW5jaF91cmwYASABKAkSHQoQY29ubmVjdGlvbl90b2tlbhgCIAEoCUgAiAEBEhEKCW9wZW5fbW9kZRgDIAEoCRJCCgdydW50aW1lGAQgASgLMjEuaGFnaWNvZGUucHJvamVjdC52MS5Wc0NvZGVTZXJ2ZXJSdW50aW1lU3RhdHVzRHRvEhgKC2luc3RhbmNlX2lkGAUgASgJSAGIAQESMgoOZXhwaXJlc19hdF91dGMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9jb25uZWN0aW9uX3Rva2VuQg4KDF9pbnN0YW5jZV9pZCKXAgoVUHJvamVjdEdpdFdhdGNoU3RhdHVzEh4KFm1vbml0b3JlZF9yZXBvc2l0b3JpZXMYASADKAkSNAoQbGFzdF9zY2FuX2F0X3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoQbmV4dF9zY2FuX2F0X3V0YxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQcmVwb3NpdG9yeV9jb3VudBgEIAEoBRISCgppc19ydW5uaW5nGAUgASgIEiIKGm1heF9tb25pdG9yZWRfcmVwb3NpdG9yaWVzGAYgASgFEiAKGGdpdF9hdXRvX3JlZnJlc2hfZW5hYmxlZBgHIAEoCDL1GAoOUHJvamVjdFNlcnZpY2USZgoNQ3JlYXRlUHJvamVjdBIpLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlUHJvamVjdFJlcXVlc3QaKi5oYWdpY29kZS5wcm9qZWN0LnYxLkNyZWF0ZVByb2plY3RSZXNwb25zZRJyChFDcmVhdGVEZW1vUHJvamVjdBItLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlRGVtb1Byb2plY3RSZXF1ZXN0Gi4uaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVEZW1vUHJvamVjdFJlc3BvbnNlEmYKDVVwZGF0ZVByb2plY3QSKS5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVByb2plY3RSZXF1ZXN0GiouaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVQcm9qZWN0UmVzcG9uc2USZgoNRGVsZXRlUHJvamVjdBIpLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlUHJvamVjdFJlcXVlc3QaKi5oYWdpY29kZS5wcm9qZWN0LnYxLkRlbGV0ZVByb2plY3RSZXNwb25zZRKEAQoXR2V0UHJvamVjdFN0YW5kYXJkV29yZHMSMy5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3RTdGFuZGFyZFdvcmRzUmVxdWVzdBo0LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdFN0YW5kYXJkV29yZHNSZXNwb25zZRKiAQohR2V0UHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50Ej0uaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0Gj4uaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXNwb25zZRKlAQoiU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudBI+LmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlcXVlc3QaPy5oYWdpY29kZS5wcm9qZWN0LnYxLlNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXNwb25zZRKBAQoWR2V0TW9ub1NwZWNzTWFuYWdlbWVudBIyLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0TW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QaMy5oYWdpY29kZS5wcm9qZWN0LnYxLkdldE1vbm9TcGVjc01hbmFnZW1lbnRSZXNwb25zZRJsCg9SZWxvYWRNb25vU3BlY3MSKy5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbG9hZE1vbm9TcGVjc1JlcXVlc3QaLC5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbG9hZE1vbm9TcGVjc1Jlc3BvbnNlEo0BChpDbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllcxI2LmhhZ2ljb2RlLnByb2plY3QudjEuQ2xvbmVNb25vU3BlY3NSZXBvc2l0b3JpZXNSZXF1ZXN0GjcuaGFnaWNvZGUucHJvamVjdC52MS5DbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllc1Jlc3BvbnNlEqIBCiFSZW1vdmVNb25vU3BlY3NSZXBvc2l0b3J5Q2hlY2tvdXQSPS5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlcXVlc3QaPi5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlc3BvbnNlEngKE0luaXRpYWxpemVNb25vU3BlY3MSLy5oYWdpY29kZS5wcm9qZWN0LnYxLkluaXRpYWxpemVNb25vU3BlY3NSZXF1ZXN0GjAuaGFnaWNvZGUucHJvamVjdC52MS5Jbml0aWFsaXplTW9ub1NwZWNzUmVzcG9uc2USigEKGVVwZGF0ZU1vbm9TcGVjc01hbmFnZW1lbnQSNS5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZU1vbm9TcGVjc01hbmFnZW1lbnRSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2UShwEKGEdldFByb2plY3REZXNpZ25Eb2N1bWVudBI0LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdERlc2lnbkRvY3VtZW50UmVxdWVzdBo1LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdERlc2lnbkRvY3VtZW50UmVzcG9uc2USigEKGVNhdmVQcm9qZWN0RGVzaWduRG9jdW1lbnQSNS5oYWdpY29kZS5wcm9qZWN0LnYxLlNhdmVQcm9qZWN0RGVzaWduRG9jdW1lbnRSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5TYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVzcG9uc2USigEKGUdldFByb2plY3REZXNpZ25TaXRlSW5kZXgSNS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3REZXNpZ25TaXRlSW5kZXhSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0RGVzaWduU2l0ZUluZGV4UmVzcG9uc2USkwEKHEdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnQSOC5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnRSZXF1ZXN0GjkuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0RGVzaWduU2l0ZURvY3VtZW50UmVzcG9uc2USfgoVVmFsaWRhdGVQcm9qZWN0QnJhbmNoEjEuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RCcmFuY2hSZXF1ZXN0GjIuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RCcmFuY2hSZXNwb25zZRJ4ChNWYWxpZGF0ZVByb2plY3RQYXRoEi8uaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RQYXRoUmVxdWVzdBowLmhhZ2ljb2RlLnByb2plY3QudjEuVmFsaWRhdGVQcm9qZWN0UGF0aFJlc3BvbnNlEngKE1NjYW5HaXRSZXBvc2l0b3JpZXMSLy5oYWdpY29kZS5wcm9qZWN0LnYxLlNjYW5HaXRSZXBvc2l0b3JpZXNSZXF1ZXN0GjAuaGFnaWNvZGUucHJvamVjdC52MS5TY2FuR2l0UmVwb3NpdG9yaWVzUmVzcG9uc2UShAEKF1ZhbGlkYXRlTW9ub1NwZWNzQ29uZmlnEjMuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZU1vbm9TcGVjc0NvbmZpZ1JlcXVlc3QaNC5oYWdpY29kZS5wcm9qZWN0LnYxLlZhbGlkYXRlTW9ub1NwZWNzQ29uZmlnUmVzcG9uc2USbwoQR2V0UHJvamVjdFZhdWx0cxIsLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdFZhdWx0c1JlcXVlc3QaLS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3RWYXVsdHNSZXNwb25zZRKEAQoXT3BlblByb2plY3RJbkNvZGVTZXJ2ZXISMy5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5Qcm9qZWN0SW5Db2RlU2VydmVyUmVxdWVzdBo0LmhhZ2ljb2RlLnByb2plY3QudjEuT3BlblByb2plY3RJbkNvZGVTZXJ2ZXJSZXNwb25zZRKHAQoYR2V0UHJvamVjdEdpdFdhdGNoU3RhdHVzEjQuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0R2l0V2F0Y2hTdGF0dXNSZXF1ZXN0GjUuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0R2l0V2F0Y2hTdGF0dXNSZXNwb25zZUIpqgImUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLlByb2plY3QuVjFiBnByb3RvMw",[Ee,cr]),Zu=G(te,1),Ru=G(te,5),fu=G(te,15),Eu=G(te,17),Vu=G(te,19),Gu=G(te,21),Nu=G(te,23),Wu=G(te,25),Su=G(te,41),vu=G(te,50),Xu=G(te,51),Yu=G(te,69),Iu=G(te,71),yu=G(te,85),Bu=Ne(te,0),We=ee("Ch9oYWdpY29kZS9wcm9qZWN0L3YxL3ZhdWx0LnByb3RvEhNoYWdpY29kZS5wcm9qZWN0LnYxIhMKEUxpc3RWYXVsdHNSZXF1ZXN0Ik8KEkxpc3RWYXVsdHNSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0TGlzdFJlc3BvbnNlRHRvIk4KEkNyZWF0ZVZhdWx0UmVxdWVzdBI4CgRib2R5GAEgASgLMiouaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVWYXVsdFJlcXVlc3REdG8iSAoTQ3JlYXRlVmF1bHRSZXNwb25zZRIxCgZyZXN1bHQYASABKAsyIS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0SXRlbUR0byJaChJVcGRhdGVWYXVsdFJlcXVlc3QSCgoCaWQYASABKAkSOAoEYm9keRgCIAEoCzIqLmhhZ2ljb2RlLnByb2plY3QudjEuVXBkYXRlVmF1bHRSZXF1ZXN0RHRvIkgKE1VwZGF0ZVZhdWx0UmVzcG9uc2USMQoGcmVzdWx0GAEgASgLMiEuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEl0ZW1EdG8iPAoSRGVsZXRlVmF1bHRSZXF1ZXN0EgoKAmlkGAEgASgJEhoKEmRlbGV0ZV9sb2NhbF9maWxlcxgCIAEoCCJSChNEZWxldGVWYXVsdFJlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlVmF1bHRSZXNwb25zZUR0byI+ChRHZXRWYXVsdEZpbGVzUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRwYXRoGAIgASgJSACIAQFCBwoFX3BhdGgiVgoVR2V0VmF1bHRGaWxlc1Jlc3BvbnNlEj0KBnJlc3VsdBgBIAEoCzItLmhhZ2ljb2RlLnByb2plY3QudjEuVmF1bHRGaWxlTGlzdFJlc3BvbnNlRHRvIjYKGkdldFZhdWx0RmlsZVByZXZpZXdSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBHBhdGgYAiABKAkiXwobR2V0VmF1bHRGaWxlUHJldmlld1Jlc3BvbnNlEkAKBnJlc3VsdBgBIAEoCzIwLmhhZ2ljb2RlLnByb2plY3QudjEuVmF1bHRGaWxlUHJldmlld1Jlc3BvbnNlRHRvIo4BChxPcGVuVmF1bHRJbkNvZGVTZXJ2ZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBHBhdGgYAiABKAlIAIgBARInChpjdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZRgDIAEoCUgBiAEBQgcKBV9wYXRoQh0KG19jdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZSJjCh1PcGVuVmF1bHRJbkNvZGVTZXJ2ZXJSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5wcm9qZWN0LnYxLlZzQ29kZVNlcnZlckxhdW5jaFJlc3BvbnNlRHRvImwKFUNyZWF0ZVZhdWx0UmVxdWVzdER0bxIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSFQoNcGh5c2ljYWxfcGF0aBgDIAEoCRIUCgdnaXRfdXJsGAQgASgJSACIAQFCCgoIX2dpdF91cmwibAoVVXBkYXRlVmF1bHRSZXF1ZXN0RHRvEgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhQKB2dpdF91cmwYBCABKAlIAIgBAUIKCghfZ2l0X3VybCKdAQoWRGVsZXRlVmF1bHRSZXNwb25zZUR0bxIKCgJpZBgBIAEoCRIPCgdkZWxldGVkGAIgASgIEiQKHGRlbGV0ZV9sb2NhbF9maWxlc19yZXF1ZXN0ZWQYAyABKAgSIwobbG9jYWxfZmlsZXNfZGVsZXRpb25fc3RhdHVzGAQgASgJEhsKE2xvY2FsX2ZpbGVzX2RlbGV0ZWQYBSABKAgizAEKEVZhdWx0RmlsZUVudHJ5RHRvEhUKDXJlbGF0aXZlX3BhdGgYASABKAkSEQoJZmlsZV9uYW1lGAIgASgJEhQKDGlzX2RpcmVjdG9yeRgDIAEoCBIRCglleHRlbnNpb24YBCABKAkSEgoKc2l6ZV9ieXRlcxgFIAEoAxI1ChFsYXN0X21vZGlmaWVkX3V0YxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGQoRcHJldmlld19zdXBwb3J0ZWQYByABKAgimAIKGFZhdWx0RmlsZUxpc3RSZXNwb25zZUR0bxIQCgh2YXVsdF9pZBgBIAEoCRISCgp2YXVsdF9uYW1lGAIgASgJEhUKDXBoeXNpY2FsX3BhdGgYAyABKAkSDgoGc3RhdHVzGAQgASgJEhcKCmVycm9yX2NvZGUYBSABKAlIAIgBARIUCgdtZXNzYWdlGAYgASgJSAGIAQESFAoMaXNfdHJ1bmNhdGVkGAcgASgIEhgKEHRvdGFsX2ZpbGVfY291bnQYCCABKAUSNQoFaXRlbXMYCSADKAsyJi5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0RmlsZUVudHJ5RHRvQg0KC19lcnJvcl9jb2RlQgoKCF9tZXNzYWdlIpQDChtWYXVsdEZpbGVQcmV2aWV3UmVzcG9uc2VEdG8SEAoIdmF1bHRfaWQYASABKAkSEgoKdmF1bHRfbmFtZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhUKDXJlbGF0aXZlX3BhdGgYBCABKAkSEQoJZmlsZV9uYW1lGAUgASgJEhEKCWV4dGVuc2lvbhgGIAEoCRISCgpzaXplX2J5dGVzGAcgASgDEjUKEWxhc3RfbW9kaWZpZWRfdXRjGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzdGF0dXMYCSABKAkSFwoKZXJyb3JfY29kZRgKIAEoCUgAiAEBEhQKB21lc3NhZ2UYCyABKAlIAYgBARIZChFwcmV2aWV3X3N1cHBvcnRlZBgMIAEoCBIZChFjb250ZW50X3RydW5jYXRlZBgNIAEoCBIUCgdjb250ZW50GA4gASgJSAKIAQFCDQoLX2Vycm9yX2NvZGVCCgoIX21lc3NhZ2VCCgoIX2NvbnRlbnQy9QUKDFZhdWx0U2VydmljZRJdCgpMaXN0VmF1bHRzEiYuaGFnaWNvZGUucHJvamVjdC52MS5MaXN0VmF1bHRzUmVxdWVzdBonLmhhZ2ljb2RlLnByb2plY3QudjEuTGlzdFZhdWx0c1Jlc3BvbnNlEmAKC0NyZWF0ZVZhdWx0EicuaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVWYXVsdFJlcXVlc3QaKC5oYWdpY29kZS5wcm9qZWN0LnYxLkNyZWF0ZVZhdWx0UmVzcG9uc2USYAoLVXBkYXRlVmF1bHQSJy5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVZhdWx0UmVxdWVzdBooLmhhZ2ljb2RlLnByb2plY3QudjEuVXBkYXRlVmF1bHRSZXNwb25zZRJgCgtEZWxldGVWYXVsdBInLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlVmF1bHRSZXF1ZXN0GiguaGFnaWNvZGUucHJvamVjdC52MS5EZWxldGVWYXVsdFJlc3BvbnNlEmYKDUdldFZhdWx0RmlsZXMSKS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFZhdWx0RmlsZXNSZXF1ZXN0GiouaGFnaWNvZGUucHJvamVjdC52MS5HZXRWYXVsdEZpbGVzUmVzcG9uc2USeAoTR2V0VmF1bHRGaWxlUHJldmlldxIvLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0VmF1bHRGaWxlUHJldmlld1JlcXVlc3QaMC5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFZhdWx0RmlsZVByZXZpZXdSZXNwb25zZRJ+ChVPcGVuVmF1bHRJbkNvZGVTZXJ2ZXISMS5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5WYXVsdEluQ29kZVNlcnZlclJlcXVlc3QaMi5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5WYXVsdEluQ29kZVNlcnZlclJlc3BvbnNlQimqAiZQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuUHJvamVjdC5WMWIGcHJvdG8z",[Ee,te]),Cu=G(We,1),Fu=G(We,3),Uu=G(We,5),wu=G(We,7),Ju=G(We,9),ku=G(We,11),xu=G(We,14),Ku=G(We,15),zu=Ne(We,0),Be=ee("CitoYWdpY29kZS9jb21tdW5pdHkvdjEvc2NoZWR1bGVkX3BsYW5zLnByb3RvEhVoYWdpY29kZS5jb21tdW5pdHkudjEiQwoZTGlzdFNjaGVkdWxlZFBsYW5zUmVxdWVzdBIXCgpwcm9qZWN0X2lkGAEgASgJSACIAQFCDQoLX3Byb2plY3RfaWQiWgoaTGlzdFNjaGVkdWxlZFBsYW5zUmVzcG9uc2USPAoGcmVzdWx0GAEgAygLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXNwb25zZSIlChdHZXRTY2hlZHVsZWRQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCSJYChhHZXRTY2hlZHVsZWRQbGFuUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXNwb25zZSI2CiBMaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIm0KIUxpc3RTY2hlZHVsZWRQbGFuUHJvYmxlbXNSZXNwb25zZRJICgZyZXN1bHQYASADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkRlZmluaXRpb25Qcm9ibGVtRHRvIvMBCiNMaXN0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2VzUmVxdWVzdBIYCgtyYW5nZV9zdGFydBgBIAEoCUgAiAEBEhYKCXJhbmdlX2VuZBgCIAEoCUgBiAEBEh4KEWRpc3BsYXlfdGltZV96b25lGAMgASgJSAKIAQESEwoGY3Vyc29yGAQgASgJSAOIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgEiAEBQg4KDF9yYW5nZV9zdGFydEIMCgpfcmFuZ2VfZW5kQhQKEl9kaXNwbGF5X3RpbWVfem9uZUIJCgdfY3Vyc29yQg0KC19wcm9qZWN0X2lkInIKJExpc3RTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZXNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VQYWdlUmVzcG9uc2UiWwoaQ3JlYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSPQoEYm9keRgBIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuU2F2ZVJlcXVlc3QiWwobQ3JlYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiZwoaVXBkYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkSPQoEYm9keRgCIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuU2F2ZVJlcXVlc3QiWwobVXBkYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiKAoaRGVsZXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkiHQobRGVsZXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlInkKIkVkaXRTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlcXVlc3QSCgoCaWQYASABKAkSRwoEYm9keRgCIAEoCzI5LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuT2NjdXJyZW5jZUVkaXRSZXF1ZXN0ImMKI0VkaXRTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiYAokRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhoKDW9jY3VycmVuY2VfYXQYAiABKAlIAIgBAUIQCg5fb2NjdXJyZW5jZV9hdCJlCiVEZWxldGVTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiJQoXUnVuU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkiVQoYUnVuU2NoZWR1bGVkUGxhblJlc3BvbnNlEjkKBnJlc3VsdBgBIAEoCzIpLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXNzaW9uUmVzcG9uc2VEdG8iJwoZU3RhcnRTY2hlZHVsZWRQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCSJgChpTdGFydFNjaGVkdWxlZFBsYW5SZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhblJ1bkFjY2VwdGVkRHRvIigKFVNjaGVkdWxlZFBsYW5BZ2VudER0bxIPCgdoZXJvX2lkGAEgASgJImsKGVNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SEAoIc3RyYXRlZ3kYASABKAkSPAoGYWdlbnRzGAIgAygLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudER0byLgAQonU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VPdmVycmlkZVJlc3BvbnNlEioKBnJ1bl9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEbmFtZRgCIAEoCUgAiAEBEkQKCmFnZW50X3Bvb2wYAyABKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkFnZW50UG9vbER0bxInCgdwYXlsb2FkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQgcKBV9uYW1lIuMBCh5TY2hlZHVsZWRQbGFuRXhjZXB0aW9uUmVzcG9uc2USLwoLb3JpZ2luYWxfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBGtpbmQYAiABKAkSUAoIb3ZlcnJpZGUYAyABKAsyPi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VPdmVycmlkZVJlc3BvbnNlEhwKD2lucHV0X2ZpbGVfcGF0aBgEIAEoCUgAiAEBQhIKEF9pbnB1dF9maWxlX3BhdGgiOAoWU2NoZWR1bGVkUGxhblJlcGVhdER0bxIMCgRydWxlGAEgASgJEhAKCHdlZWtkYXlzGAIgAygJIq8CChhTY2hlZHVsZWRQbGFuU2NoZWR1bGVEdG8SDAoEbW9kZRgBIAEoCRIqCgZydW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKCXRpbWVfem9uZRgDIAEoCUgAiAEBEhcKCnN0YXJ0X2RhdGUYBCABKAlIAYgBARIVCghlbmRfZGF0ZRgFIAEoCUgCiAEBEhgKC3RpbWVfb2ZfZGF5GAYgASgJSAOIAQESPQoGcmVwZWF0GAcgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXBlYXREdG9CDAoKX3RpbWVfem9uZUINCgtfc3RhcnRfZGF0ZUILCglfZW5kX2RhdGVCDgoMX3RpbWVfb2ZfZGF5IrgFChVTY2hlZHVsZWRQbGFuUmVzcG9uc2USCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCRINCgVzY29wZRgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEiEKFGRlZmluaXRpb25fZmlsZV9wYXRoGAUgASgJSACIAQESDAoEbmFtZRgGIAEoCRIPCgdlbmFibGVkGAcgASgIEhEKBGljb24YCCABKAlIAYgBARISCgVjb2xvchgJIAEoCUgCiAEBEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkEKCHNjaGVkdWxlGAwgASgLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5TY2hlZHVsZUR0bxJECgphZ2VudF9wb29sGA0gASgLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SJwoHcGF5bG9hZBgOIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRINCgVzdGF0ZRgPIAEoCRIvCgtuZXh0X3J1bl9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoKZXhjZXB0aW9ucxgRIAMoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuRXhjZXB0aW9uUmVzcG9uc2USHAoPaW5wdXRfZmlsZV9wYXRoGBIgASgJSAOIAQFCFwoVX2RlZmluaXRpb25fZmlsZV9wYXRoQgcKBV9pY29uQggKBl9jb2xvckISChBfaW5wdXRfZmlsZV9wYXRoIkcKIVNjaGVkdWxlZFBsYW5EZWZpbml0aW9uUHJvYmxlbUR0bxIRCglmaWxlX3BhdGgYASABKAkSDwoHbWVzc2FnZRgCIAEoCSLTAQofU2NoZWR1bGVkUGxhblJlY3VycmVuY2VSZXNwb25zZRIMCgRtb2RlGAEgASgJEhEKBHJ1bGUYAiABKAlIAIgBARIQCgh3ZWVrZGF5cxgDIAMoCRIXCgpzdGFydF9kYXRlGAQgASgJSAGIAQESFQoIZW5kX2RhdGUYBSABKAlIAogBARIYCgt0aW1lX29mX2RheRgGIAEoCUgDiAEBQgcKBV9ydWxlQg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZUIOCgxfdGltZV9vZl9kYXki6gMKH1NjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2USDwoHcGxhbl9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEjEKDW9jY3VycmVuY2VfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBG5hbWUYBCABKAkSDAoEdHlwZRgFIAEoCRIPCgdlbmFibGVkGAYgASgIEhEKBGljb24YByABKAlIAIgBARISCgVjb2xvchgIIAEoCUgBiAEBEg0KBXN0YXRlGAkgASgJEh8KEnNjaGVkdWxlX3RpbWVfem9uZRgKIAEoCUgCiAEBEkoKCnJlY3VycmVuY2UYCyABKAsyNi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhblJlY3VycmVuY2VSZXNwb25zZRIvCgtuZXh0X3J1bl9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLb3JpZ2luYWxfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2lzX21vZGlmaWVkGA4gASgIQgcKBV9pY29uQggKBl9jb2xvckIVChNfc2NoZWR1bGVfdGltZV96b25lIpMCCiNTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVBhZ2VSZXNwb25zZRIvCgtyYW5nZV9zdGFydBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJcmFuZ2VfZW5kGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFkaXNwbGF5X3RpbWVfem9uZRgDIAEoCRJHCgdlbnRyaWVzGAQgAygLMjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2USGAoLbmV4dF9jdXJzb3IYBSABKAlIAIgBAUIOCgxfbmV4dF9jdXJzb3Ii0QIKGFNjaGVkdWxlZFBsYW5TYXZlUmVxdWVzdBIMCgR0eXBlGAEgASgJEhIKBXNjb3BlGAIgASgJSACIAQESDAoEbmFtZRgDIAEoCRIPCgdlbmFibGVkGAQgASgIEhEKBGljb24YBSABKAlIAYgBARISCgVjb2xvchgGIAEoCUgCiAEBEkEKCHNjaGVkdWxlGAcgASgLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5TY2hlZHVsZUR0bxJECgphZ2VudF9wb29sGAggASgLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SJwoHcGF5bG9hZBgJIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUIICgZfc2NvcGVCBwoFX2ljb25CCAoGX2NvbG9yIo4CCiJTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZUVkaXRSZXF1ZXN0EjEKDW9jY3VycmVuY2VfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEioKBnJ1bl9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEbmFtZRgDIAEoCUgAiAEBEkQKCmFnZW50X3Bvb2wYBCABKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkFnZW50UG9vbER0bxInCgdwYXlsb2FkGAUgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQgcKBV9uYW1lIs4DChJDaGF0SGVyb1N1bW1hcnlEdG8SDwoHaGVyb19pZBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEQoEaWNvbhgEIAEoCUgBiAEBEhUKDWV4ZWN1dG9yX3R5cGUYBSABKAkSGQoMYWdlbnRfY2xpX2lkGAYgASgJSAKIAQESGwoOYWdlbnRfY2xpX25hbWUYByABKAlIA4gBARIbCg5hZ2VudF9jbGlfaWNvbhgIIAEoCUgEiAEBEhUKCG1vZGVsX2lkGAkgASgJSAWIAQESFwoKbW9kZWxfbmFtZRgKIAEoCUgGiAEBEhcKCm1vZGVsX2ljb24YCyABKAlIB4gBARIiChVzZWNvbmRhcnlfbW9kZWxfbGFiZWwYDCABKAlICIgBAUIOCgxfZGVzY3JpcHRpb25CBwoFX2ljb25CDwoNX2FnZW50X2NsaV9pZEIRCg9fYWdlbnRfY2xpX25hbWVCEQoPX2FnZW50X2NsaV9pY29uQgsKCV9tb2RlbF9pZEINCgtfbW9kZWxfbmFtZUINCgtfbW9kZWxfaWNvbkIYChZfc2Vjb25kYXJ5X21vZGVsX2xhYmVsIjgKFE9wZW5TcGVjVGFza1Byb2dyZXNzEhEKCWNvbXBsZXRlZBgBIAEoBRINCgV0b3RhbBgCIAEoBSKAAgoQT3BlblNwZWNGaWxlSW5mbxIRCglmaWxlX25hbWUYASABKAkSFQoNcmVsYXRpdmVfcGF0aBgCIAEoCRIOCgZleGlzdHMYAyABKAgSEQoJZmlsZV90eXBlGAQgASgJEhMKC2lzX3JlcXVpcmVkGAUgASgIEhMKC2lzX2FyY2hpdmVkGAYgASgIEjEKDWFyY2hpdmVkX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkIKDXRhc2tfcHJvZ3Jlc3MYCCABKAsyKy5oYWdpY29kZS5jb21tdW5pdHkudjEuT3BlblNwZWNUYXNrUHJvZ3Jlc3MiXgoRT3BlblNwZWNGaWxlc0luZm8SEQoJYmFzZV9wYXRoGAEgASgJEjYKBWZpbGVzGAIgAygLMicuaGFnaWNvZGUuY29tbXVuaXR5LnYxLk9wZW5TcGVjRmlsZUluZm8izAEKFlF1ZXVlTWVzc2FnZVN1bW1hcnlEdG8SDQoFaW5kZXgYASABKAUSDAoEbW9kZRgCIAEoBRItCglxdWV1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvbnRlbnRfcHJldmlldxgEIAEoCRIhChRleGVjdXRpb25fbWVzc2FnZV9pZBgFIAEoCUgAiAEBEhEKCWNhbl9zdGVlchgGIAEoCEIXChVfZXhlY3V0aW9uX21lc3NhZ2VfaWQigAEKFlNlc3Npb25Ob3RpZmljYXRpb25EdG8SDAoEa2luZBgBIAEoCRIvCgtvYnNlcnZlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoHcGF5bG9hZBgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSLtAQoWU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIaCg1wcm9tcHRfdG9rZW5zGAEgASgFSACIAQESIQoUY2FjaGVkX3Byb21wdF90b2tlbnMYAiABKAVIAYgBARIeChFjb21wbGV0aW9uX3Rva2VucxgDIAEoBUgCiAEBEjMKD2xhc3RfdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3Byb21wdF90b2tlbnNCFwoVX2NhY2hlZF9wcm9tcHRfdG9rZW5zQhQKEl9jb21wbGV0aW9uX3Rva2VucyJfChRTdGFnZUV4ZWN1dG9ySW5mb0R0bxIVCg1wcm92aWRlcl90eXBlGAEgASgJEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAivAIKFVN0YWdlSGVyb1NlbGVjdGlvbkR0bxIRCglzdGFnZV9rZXkYASABKAkSEgoKc2NyaXB0X2tleRgCIAEoCRIVCg1zY2VuYXJpb19uYW1lGAMgASgJEhQKB2hlcm9faWQYBCABKAlIAIgBARIWCgloZXJvX25hbWUYBSABKAlIAYgBARIWCgloZXJvX2ljb24YBiABKAlIAogBARIVCg1leGVjdXRvcl90eXBlGAcgASgJEhUKDXVzZWRfZmFsbGJhY2sYCCABKAgSGAoQc2VsZWN0aW9uX3NvdXJjZRgJIAEoCRIvCgtzZWxlY3RlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2hlcm9faWRCDAoKX2hlcm9fbmFtZUIMCgpfaGVyb19pY29uIrcLChJTZXNzaW9uUmVzcG9uc2VEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhwKD2NoaWVmX2NvbXBsYWludBgEIAEoCUgBiAEBEgwKBGNvZGUYBSABKAUSDAoEdHlwZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSEQoJaXNfYWN0aXZlGAggASgIEjIKDmxhc3RfYWN0aXZlX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwcm9qZWN0X2lkGAogASgJEhQKDHByb2plY3RfbmFtZRgLIAEoCRIUCgxwcm9qZWN0X3BhdGgYDCABKAkSGgoNcHJvcG9zYWxfbmFtZRgNIAEoCUgCiAEBEkEKD29wZW5fc3BlY19maWxlcxgOIAEoCzIoLmhhZ2ljb2RlLmNvbW11bml0eS52MS5PcGVuU3BlY0ZpbGVzSW5mbxIdChVwZW5kaW5nX21lc3NhZ2VfY291bnQYDyABKAUSRQoOcXVldWVfbWVzc2FnZXMYECADKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuUXVldWVNZXNzYWdlU3VtbWFyeUR0bxIeChF3b3JraW5nX2RpcmVjdG9yeRgRIAEoCUgDiAEBEhUKCG1ldGFkYXRhGBIgASgJSASIAQESHwoSY2hhdF9leGVjdXRvcl90eXBlGBMgASgJSAWIAQESPAoJY2hhdF9oZXJvGBQgASgLMikuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkNoYXRIZXJvU3VtbWFyeUR0bxJbChJzdGFnZV9leGVjdXRvcl9tYXAYFSADKAsyPy5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblJlc3BvbnNlRHRvLlN0YWdlRXhlY3V0b3JNYXBFbnRyeRJmChhzdGFnZV9oZXJvX3NlbGVjdGlvbl9tYXAYFiADKAsyRC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblJlc3BvbnNlRHRvLlN0YWdlSGVyb1NlbGVjdGlvbk1hcEVudHJ5EiAKE3J1bnRpbWVfbW9kZWxfbGFiZWwYFyABKAlIBogBARI5ChVwcm9jZXNzaW5nX3N0YXJ0ZWRfYXQYGCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkQKDXNlc3Npb25fdXNhZ2UYGSABKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIcCg9wcmV2aW91c19zdGF0dXMYGiABKAlIB4gBARJECg1ub3RpZmljYXRpb25zGBsgAygLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNlc3Npb25Ob3RpZmljYXRpb25EdG8aZAoVU3RhZ2VFeGVjdXRvck1hcEVudHJ5EgsKA2tleRgBIAEoCRI6CgV2YWx1ZRgCIAEoCzIrLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TdGFnZUV4ZWN1dG9ySW5mb0R0bzoCOAEaagoaU3RhZ2VIZXJvU2VsZWN0aW9uTWFwRW50cnkSCwoDa2V5GAEgASgJEjsKBXZhbHVlGAIgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlN0YWdlSGVyb1NlbGVjdGlvbkR0bzoCOAFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9jaGllZl9jb21wbGFpbnRCEAoOX3Byb3Bvc2FsX25hbWVCFAoSX3dvcmtpbmdfZGlyZWN0b3J5QgsKCV9tZXRhZGF0YUIVChNfY2hhdF9leGVjdXRvcl90eXBlQhYKFF9ydW50aW1lX21vZGVsX2xhYmVsQhIKEF9wcmV2aW91c19zdGF0dXMiLgobU2NoZWR1bGVkUGxhblJ1bkFjY2VwdGVkRHRvEg8KB3BsYW5faWQYASABKAky0AsKFVNjaGVkdWxlZFBsYW5zU2VydmljZRJ5ChJMaXN0U2NoZWR1bGVkUGxhbnMSMC5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5zUmVxdWVzdBoxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhbnNSZXNwb25zZRJzChBHZXRTY2hlZHVsZWRQbGFuEi4uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNjaGVkdWxlZFBsYW5SZXF1ZXN0Gi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNjaGVkdWxlZFBsYW5SZXNwb25zZRKOAQoZTGlzdFNjaGVkdWxlZFBsYW5Qcm9ibGVtcxI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVxdWVzdBo4LmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVzcG9uc2USlwEKHExpc3RTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZXMSOi5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlc1JlcXVlc3QaOy5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlc1Jlc3BvbnNlEnwKE0NyZWF0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ3JlYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ3JlYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEnwKE1VwZGF0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBkYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBkYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEnwKE0RlbGV0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEpQBChtFZGl0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2USOS5oYWdpY29kZS5jb21tdW5pdHkudjEuRWRpdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5FZGl0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXNwb25zZRKaAQodRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2USOy5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXF1ZXN0GjwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2UScwoQUnVuU2NoZWR1bGVkUGxhbhIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SdW5TY2hlZHVsZWRQbGFuUmVxdWVzdBovLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SdW5TY2hlZHVsZWRQbGFuUmVzcG9uc2USeQoSU3RhcnRTY2hlZHVsZWRQbGFuEjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlN0YXJ0U2NoZWR1bGVkUGxhblJlcXVlc3QaMS5oYWdpY29kZS5jb21tdW5pdHkudjEuU3RhcnRTY2hlZHVsZWRQbGFuUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ve,Ee]),Lu=G(Be,1),ju=G(Be,3),Hu=G(Be,9),Tu=G(Be,11),Qu=G(Be,19),Mu=G(Be,21),la=G(Be,33),Ou=Ne(Be,0),Du=ee("Ci1oYWdpY29kZS9jb21tdW5pdHkvdjEvY29tbXVuaXR5X3ByZXNldHMucHJvdG8SFWhhZ2ljb2RlLmNvbW11bml0eS52MSIdChtMaXN0Q29tbXVuaXR5UHJlc2V0c1JlcXVlc3QiYwocTGlzdENvbW11bml0eVByZXNldHNSZXNwb25zZRJDCgZyZXN1bHQYASABKAsyMy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxIYWdpVGFza0xpc3RSZXNwb25zZUR0byJmCh1JbnN0YWxsQ29tbXVuaXR5UHJlc2V0UmVxdWVzdBJFCgRib2R5GAEgASgLMjcuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkNvbW11bml0eVByZXNldEluc3RhbGxSZXF1ZXN0RHRvImwKHkluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0T3BlcmF0aW9uUmVzcG9uc2VEdG8ifAogU2V0Q29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3QSEQoJcHJlc2V0X2lkGAEgASgJEkUKBGJvZHkYAiABKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3REdG8ibwohU2V0Q29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRPcGVyYXRpb25SZXNwb25zZUR0byI0Ch9Vbmluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXF1ZXN0EhEKCXByZXNldF9pZBgBIAEoCSJuCiBVbmluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0T3BlcmF0aW9uUmVzcG9uc2VEdG8iIAoeUmVmcmVzaENvbW11bml0eVByZXNldHNSZXF1ZXN0IiEKH1JlZnJlc2hDb21tdW5pdHlQcmVzZXRzUmVzcG9uc2UihwEKFkNvbW11bml0eVByZXNldFJpc2tEdG8SGQoRZGVjbGFyZXNfY29tbWFuZHMYASABKAgSFwoPZGVjbGFyZXNfc2tpbGxzGAIgASgIEhYKDmRlY2xhcmVzX2hvb2tzGAMgASgIEiEKGWRlY2xhcmVzX2NsaV9yZXF1aXJlbWVudHMYBCABKAgi2QQKGExvY2FsSGFnaVRhc2tMaXN0SXRlbUR0bxIRCglwcmVzZXRfaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEwoLc291cmNlX2tpbmQYBCABKAkSGQoRaW5zdGFsbGF0aW9uX2tpbmQYBSABKAkSFwoPbWFuYWdlbWVudF9raW5kGAYgASgJEiAKGGlzX3Nlc3Npb25fY3JlYXRpb25fb25seRgHIAEoCBIPCgdlbmFibGVkGAggASgIEhQKDGlzX3JlbW92YWJsZRgJIAEoCBIRCglwdWJsaXNoZXIYCiABKAkSHQoQc291cmNlX3JlZmVyZW5jZRgLIAEoCUgAiAEBEhsKDmFyY2hpdmVfc2hhMjU2GAwgASgJSAGIAQESNAoQaW5zdGFsbGVkX2F0X3V0YxgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoScmVsYXRpdmVfZGlyZWN0b3J5GA4gASgJEhgKC2Rlc2NyaXB0aW9uGA8gASgJSAKIAQESPAoFcmlza3MYECABKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0Umlza0R0bxIWCglzb3VyY2VfaWQYESABKAlIA4gBARIRCgRpY29uGBIgASgJSASIAQFCEwoRX3NvdXJjZV9yZWZlcmVuY2VCEQoPX2FyY2hpdmVfc2hhMjU2Qg4KDF9kZXNjcmlwdGlvbkIMCgpfc291cmNlX2lkQgcKBV9pY29uIloKHVByZXNldFRhc2tQbHVnaW5EaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIRCgRwYXRoGAMgASgJSACIAQFCBwoFX3BhdGgiqQEKHExvY2FsSGFnaVRhc2tMaXN0UmVzcG9uc2VEdG8SPgoFaXRlbXMYASADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxIYWdpVGFza0xpc3RJdGVtRHRvEkkKC2RpYWdub3N0aWNzGAIgAygLMjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQbHVnaW5EaWFnbm9zdGljRHRvIqwDCh5Db21tdW5pdHlQcmVzZXRJbnN0YWxsYXRpb25EdG8SEQoJcHJlc2V0X2lkGAEgASgJEhYKCW5hbWVzcGFjZRgCIAEoCUgAiAEBEg8KB3ZlcnNpb24YAyABKAkSEQoJcHVibGlzaGVyGAQgASgJEh0KEHNvdXJjZV9yZWZlcmVuY2UYBSABKAlIAYgBARIWCg5hcmNoaXZlX3NoYTI1NhgGIAEoCRI0ChBpbnN0YWxsZWRfYXRfdXRjGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJyZWxhdGl2ZV9kaXJlY3RvcnkYCCABKAkSDwoHZW5hYmxlZBgJIAEoCBI8CgVyaXNrcxgKIAEoCzItLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRSaXNrRHRvEhYKCXNvdXJjZV9pZBgLIAEoCUgCiAEBEhEKBGljb24YDCABKAlIA4gBAUIMCgpfbmFtZXNwYWNlQhMKEV9zb3VyY2VfcmVmZXJlbmNlQgwKCl9zb3VyY2VfaWRCBwoFX2ljb24ilAIKI0NvbW11bml0eVByZXNldE9wZXJhdGlvblJlc3BvbnNlRHRvEhEKCXN1Y2NlZWRlZBgBIAEoCBIWCglwcmVzZXRfaWQYAiABKAlIAIgBARISCgVlcnJvchgDIAEoCUgBiAEBEksKDGluc3RhbGxhdGlvbhgEIAEoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRJbnN0YWxsYXRpb25EdG8SSQoLZGlhZ25vc3RpY3MYBSADKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BsdWdpbkRpYWdub3N0aWNEdG9CDAoKX3ByZXNldF9pZEIICgZfZXJyb3IisgIKIENvbW11bml0eVByZXNldEluc3RhbGxSZXF1ZXN0RHRvEhYKDmFyY2hpdmVfYmFzZTY0GAEgASgJEh8KEmV4cGVjdGVkX3ByZXNldF9pZBgCIAEoCUgAiAEBEh0KEGV4cGVjdGVkX3ZlcnNpb24YAyABKAlIAYgBARIcCg9leHBlY3RlZF9zaGEyNTYYBCABKAlIAogBARIWCglwdWJsaXNoZXIYBSABKAlIA4gBARIdChBzb3VyY2VfcmVmZXJlbmNlGAYgASgJSASIAQFCFQoTX2V4cGVjdGVkX3ByZXNldF9pZEITChFfZXhwZWN0ZWRfdmVyc2lvbkISChBfZXhwZWN0ZWRfc2hhMjU2QgwKCl9wdWJsaXNoZXJCEwoRX3NvdXJjZV9yZWZlcmVuY2UiMwogQ29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3REdG8SDwoHZW5hYmxlZBgBIAEoCDLMBQoXQ29tbXVuaXR5UHJlc2V0c1NlcnZpY2USfwoUTGlzdENvbW11bml0eVByZXNldHMSMi5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdENvbW11bml0eVByZXNldHNSZXF1ZXN0GjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RDb21tdW5pdHlQcmVzZXRzUmVzcG9uc2UShQEKFkluc3RhbGxDb21tdW5pdHlQcmVzZXQSNC5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbENvbW11bml0eVByZXNldFJlcXVlc3QaNS5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbENvbW11bml0eVByZXNldFJlc3BvbnNlEo4BChlTZXRDb21tdW5pdHlQcmVzZXRFbmFibGVkEjcuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldENvbW11bml0eVByZXNldEVuYWJsZWRSZXF1ZXN0GjguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldENvbW11bml0eVByZXNldEVuYWJsZWRSZXNwb25zZRKLAQoYVW5pbnN0YWxsQ29tbXVuaXR5UHJlc2V0EjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbENvbW11bml0eVByZXNldFJlcXVlc3QaNy5oYWdpY29kZS5jb21tdW5pdHkudjEuVW5pbnN0YWxsQ29tbXVuaXR5UHJlc2V0UmVzcG9uc2USiAEKF1JlZnJlc2hDb21tdW5pdHlQcmVzZXRzEjUuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlZnJlc2hDb21tdW5pdHlQcmVzZXRzUmVxdWVzdBo2LmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZWZyZXNoQ29tbXVuaXR5UHJlc2V0c1Jlc3BvbnNlQiuqAihQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuQ29tbXVuaXR5LlYxYgZwcm90bzM",[Ee]),Qn=ee("CihoYWdpY29kZS9jb21tdW5pdHkvdjEvcHJlc2V0X3Rhc2tzLnByb3RvEhVoYWdpY29kZS5jb21tdW5pdHkudjEiHQobR2V0UHJlc2V0VGFza0NhdGFsb2dSZXF1ZXN0ImMKHEdldFByZXNldFRhc2tDYXRhbG9nUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDYXRhbG9nUmVzcG9uc2VEdG8ibwoiQ2hlY2tQcmVzZXRUYXNrUmVxdWlyZW1lbnRzUmVxdWVzdBJJCgRib2R5GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVxdWVzdER0byJzCiNDaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHNSZXNwb25zZRJMCgZyZXN1bHQYASABKAsyPC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tSZXNwb25zZUR0byIeChxMaXN0UHJlc2V0VGFza1NjaGVtYXNSZXF1ZXN0ImIKHUxpc3RQcmVzZXRUYXNrU2NoZW1hc1Jlc3BvbnNlEkEKBnJlc3VsdBgBIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU3VtbWFyeUR0byI0ChpHZXRQcmVzZXRUYXNrU2NoZW1hUmVxdWVzdBIWCg5wcmVzZXRfdGFza19pZBgBIAEoCSJhChtHZXRQcmVzZXRUYXNrU2NoZW1hUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDcmVhdGlvblNjaGVtYUR0byLKAQogUHJlc2V0VGFza0NhdGFsb2dEaXNhYmxlZEl0ZW1EdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSDgoGc3RhdHVzGAQgASgJEhgKEHBsdWdpbl9yb290X3BhdGgYBSABKAkSSQoLZGlhZ25vc3RpY3MYBiADKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BsdWdpbkRpYWdub3N0aWNEdG8iPQodUHJlc2V0VGFza0FnZW50UmVxdWlyZW1lbnREdG8SDAoEbW9kZRgBIAEoCRIOCgZhZ2VudHMYAiADKAki6gEKFFByZXNldFRhc2tDb21tYW5kRHRvEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEg0KBWxhYmVsGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhIKBXNraWxsGAUgASgJSACIAQESEAoDdXJsGAYgASgJSAGIAQESFgoJZG9jc19zbHVnGAcgASgJSAKIAQESHQoQcHJlbHVkZV90ZW1wbGF0ZRgIIAEoCUgDiAEBQggKBl9za2lsbEIGCgRfdXJsQgwKCl9kb2NzX3NsdWdCEwoRX3ByZWx1ZGVfdGVtcGxhdGUiNgoZUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCSLMAQobUHJlc2V0VGFza0NvbW1hbmRDYXRhbG9nRHRvEhQKDHBhcmFtZXRlcl9pZBgBIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgCIAEoCRJACgZncm91cHMYAyADKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxI9Cghjb21tYW5kcxgEIAMoCzIrLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ29tbWFuZER0byJWChpQcmVzZXRUYXNrQ29tcGF0aWJpbGl0eUR0bxIOCgZsZWdhY3kYASABKAkSDwoHYmluZGluZxgCIAEoCRIXCg9kaWFnbm9zdGljX2NvZGUYAyABKAkidAoWUHJlc2V0VGFza0V4ZWN1dGlvbkR0bxIWCg5zY2hlbWFfdmVyc2lvbhgBIAEoCRIQCghzdHJhdGVneRgCIAEoCRIcCg9leHRlbnNpb25fcG9pbnQYAyABKAlIAIgBAUISChBfZXh0ZW5zaW9uX3BvaW50Ip8CChlQcmVzZXRUYXNrSW5wdXRCaW5kaW5nRHRvEg0KBWlucHV0GAEgASgJEh0KEHByb21wdF9wYXJhbWV0ZXIYAiABKAlIAIgBARIZCgxtZXRhZGF0YV9rZXkYAyABKAlIAYgBARIQCghyZXF1aXJlZBgEIAEoCBIVCghwcm9kdWNlchgFIAEoCUgCiAEBEhcKCnZhbHVlX3R5cGUYBiABKAlIA4gBARIWCgl0cmFuc2Zvcm0YByABKAlIBIgBARIPCgdhbGlhc2VzGAggAygJQhMKEV9wcm9tcHRfcGFyYW1ldGVyQg8KDV9tZXRhZGF0YV9rZXlCCwoJX3Byb2R1Y2VyQg0KC192YWx1ZV90eXBlQgwKCl90cmFuc2Zvcm0iOAoYUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvEg0KBXZhbHVlGAEgASgJEg0KBWxhYmVsGAIgASgJIt4DCiBQcmVzZXRUYXNrRmllbGRDb21wb25lbnRQcm9wc0R0bxIgChN0YXJnZXRfc2VsZWN0aW9uX2lkGAEgASgJSACIAQESFwoKZW1wdHlfdGV4dBgCIAEoCUgBiAEBEiMKFmFsbG93X291dHB1dF9zZWxlY3Rpb24YAyABKAhIAogBARIlChhyZXF1aXJlX291dHB1dF9zZWxlY3Rpb24YBCABKAhIA4gBARIYCgtlbXB0eV90aXRsZRgFIAEoCUgEiAEBEh4KEWVtcHR5X2Rlc2NyaXB0aW9uGAYgASgJSAWIAQESHQoQcmVxdWlyZWRfbWVzc2FnZRgHIAEoCUgGiAEBEkAKB29wdGlvbnMYCCADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvQhYKFF90YXJnZXRfc2VsZWN0aW9uX2lkQg0KC19lbXB0eV90ZXh0QhkKF19hbGxvd19vdXRwdXRfc2VsZWN0aW9uQhsKGV9yZXF1aXJlX291dHB1dF9zZWxlY3Rpb25CDgoMX2VtcHR5X3RpdGxlQhQKEl9lbXB0eV9kZXNjcmlwdGlvbkITChFfcmVxdWlyZWRfbWVzc2FnZSL3AgoXUHJlc2V0VGFza1BhbmVsRmllbGREdG8SCgoCaWQYASABKAkSEAoIcmVuZGVyZXIYAiABKAkSEgoKaW5wdXRfdHlwZRgDIAEoCRISCgp2YWx1ZV90eXBlGAQgASgJEhIKBWxhYmVsGAUgASgJSACIAQESEQoEaGludBgGIAEoCUgBiAEBEhgKC3BsYWNlaG9sZGVyGAcgASgJSAKIAQESEAoIcmVxdWlyZWQYCCABKAgSEwoGb3V0cHV0GAkgASgJSAOIAQESGwoOc2VsZWN0aW9uX21vZGUYCiABKAlIBIgBARJQCg9jb21wb25lbnRfcHJvcHMYCyABKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkQ29tcG9uZW50UHJvcHNEdG9CCAoGX2xhYmVsQgcKBV9oaW50Qg4KDF9wbGFjZWhvbGRlckIJCgdfb3V0cHV0QhEKD19zZWxlY3Rpb25fbW9kZSJ3ChlQcmVzZXRUYXNrUGFuZWxTZWN0aW9uRHRvEgoKAmlkGAEgASgJEg4KBmxheW91dBgCIAEoCRI+CgZmaWVsZHMYAyADKAsyLi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BhbmVsRmllbGREdG8iyQEKIVByZXNldFRhc2tQcm9tcHRWYXJpYW50U3VtbWFyeUR0bxIKCgJpZBgBIAEoCRJSCgVtYXRjaBgCIAMoCzJDLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUHJvbXB0VmFyaWFudFN1bW1hcnlEdG8uTWF0Y2hFbnRyeRpECgpNYXRjaEVudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi/gEKIlByZXNldFRhc2tQcm9tcHRTdHJhdGVneVN1bW1hcnlEdG8SDAoEdHlwZRgBIAEoCRIWCg5kZWZhdWx0X2xvY2FsZRgCIAEoCRIZChFzdXBwb3J0ZWRfbG9jYWxlcxgDIAMoCRIRCglzZWxlY3RvcnMYBCADKAkSSgoIdmFyaWFudHMYBSADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1Byb21wdFZhcmlhbnRTdW1tYXJ5RHRvEiAKE2ZhbGxiYWNrX3ZhcmlhbnRfaWQYBiABKAlIAIgBAUIWChRfZmFsbGJhY2tfdmFyaWFudF9pZCJFChhQcmVzZXRUYXNrUmVxdWlyZW1lbnREdG8SDAoEdHlwZRgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBW5hbWVzGAMgAygJIqoDCh5QcmVzZXRUYXNrU2NlbmVSZWdpc3RyYXRpb25EdG8SEQoJc2NlbmVfa2V5GAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB3N1bW1hcnkYAyABKAkSYQoPdGl0bGVfYnlfbG9jYWxlGAQgAygLMkguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2VuZVJlZ2lzdHJhdGlvbkR0by5UaXRsZUJ5TG9jYWxlRW50cnkSZQoRc3VtbWFyeV9ieV9sb2NhbGUYBSADKAsySi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjZW5lUmVnaXN0cmF0aW9uRHRvLlN1bW1hcnlCeUxvY2FsZUVudHJ5Eh0KFWJhY2tncm91bmRfaW1hZ2Vfc2xvdBgGIAEoBRo0ChJUaXRsZUJ5TG9jYWxlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo2ChRTdW1tYXJ5QnlMb2NhbGVFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIo8BChJQcmVzZXRUYXNrU2NlbmVEdG8SEAoIcHJvdmlkZXIYASABKAkSGQoRZGVmYXVsdF9zY2VuZV9rZXkYAiABKAkSTAoNcmVnaXN0cmF0aW9ucxgDIAMoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NlbmVSZWdpc3RyYXRpb25EdG8ivAEKHFByZXNldFRhc2tUYXJnZXRTZWxlY3Rpb25EdG8SCgoCaWQYASABKAkSDAoEa2luZBgCIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgDIAEoCRIcChRhbGxvd2VkX2FjY2Vzc190eXBlcxgEIAMoCRIOCgZvdXRwdXQYBSABKAkSGQoMc2NvcGVfc291cmNlGAYgASgJSACIAQESEAoIcmVxdWlyZWQYByABKAhCDwoNX3Njb3BlX3NvdXJjZSLBCAoYUHJlc2V0VGFza0NhdGFsb2dJdGVtRHRvEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEhMKC3NvdXJjZV9raW5kGAMgASgJEg8KB3ZlcnNpb24YBCABKAkSEQoEaWNvbhgFIAEoCUgAiAEBEhQKDGRpc3BsYXlfbmFtZRgGIAEoCRINCgV0aXRsZRgHIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCRIVCg1kZWZhdWx0X3RpdGxlGAkgASgJEhQKDHN1Ym1pdF9sYWJlbBgKIAEoCRIYChBzdWJtaXR0aW5nX2xhYmVsGAsgASgJEhsKE2RlZmF1bHRfdGFyZ2V0X3R5cGUYDCABKAkSGwoTYWxsb3dfaGVyb19vdmVycmlkZRgNIAEoCBISCgpzb3J0X29yZGVyGA4gASgFEhkKEXN1cHBvcnRlZF9sb2NhbGVzGA8gAygJEkIKCHNlY3Rpb25zGBAgAygLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQYW5lbFNlY3Rpb25EdG8SSwoPY29tbWFuZF9jYXRhbG9nGBEgASgLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDb21tYW5kQ2F0YWxvZ0R0bxJOChF0YXJnZXRfc2VsZWN0aW9ucxgSIAMoCzIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrVGFyZ2V0U2VsZWN0aW9uRHRvEk8KEWFnZW50X3JlcXVpcmVtZW50GBMgASgLMjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tBZ2VudFJlcXVpcmVtZW50RHRvEkUKDHJlcXVpcmVtZW50cxgUIAMoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUmVxdWlyZW1lbnREdG8SUgoPcHJvbXB0X3N0cmF0ZWd5GBUgASgLMjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQcm9tcHRTdHJhdGVneVN1bW1hcnlEdG8SQAoJZXhlY3V0aW9uGBYgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tFeGVjdXRpb25EdG8SSAoNY29tcGF0aWJpbGl0eRgXIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ29tcGF0aWJpbGl0eUR0bxJICg5pbnB1dF9iaW5kaW5ncxgYIAMoCzIwLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrSW5wdXRCaW5kaW5nRHRvEjgKBXNjZW5lGBkgASgLMikuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2VuZUR0b0IHCgVfaWNvbiKvAQocUHJlc2V0VGFza0NhdGFsb2dSZXNwb25zZUR0bxI+CgVpdGVtcxgBIAMoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ2F0YWxvZ0l0ZW1EdG8STwoOZGlzYWJsZWRfaXRlbXMYAiADKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NhdGFsb2dEaXNhYmxlZEl0ZW1EdG8iSAonUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tEaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSK1AQohUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tJdGVtRHRvEgwKBHR5cGUYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZwYXNzZWQYAyABKAgSDwoHbWVzc2FnZRgEIAEoCRJTCgtkaWFnbm9zdGljcxgFIAMoCzI+LmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUmVxdWlyZW1lbnRDaGVja0RpYWdub3N0aWNEdG8iowEKJVByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVzcG9uc2VEdG8SFgoOcHJlc2V0X3Rhc2tfaWQYASABKAkSEgoKYWxsX3Bhc3NlZBgCIAEoCBJOCgxyZXF1aXJlbWVudHMYAyADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tJdGVtRHRvIj4KJFByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVxdWVzdER0bxIWCg5wcmVzZXRfdGFza19pZBgBIAEoCSLKAQoaUHJlc2V0VGFza1NjaGVtYVN1bW1hcnlEdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSDwoHdmVyc2lvbhgEIAEoCRINCgV0aXRsZRgFIAEoCRITCgtkZXNjcmlwdGlvbhgGIAEoCRIUCgx0YXJnZXRfY291bnQYByABKAUSFQoNY29tbWFuZF9jb3VudBgIIAEoBRIXCg9wYXJhbWV0ZXJfY291bnQYCSABKAUieAoaUHJlc2V0VGFza1NjaGVtYUNvbW1hbmREdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSEAoDdXJsGAUgASgJSACIAQFCBgoEX3VybCLSAQobUHJlc2V0VGFza1NjaGVtYUNvbW1hbmRzRHRvEhQKDHBhcmFtZXRlcl9pZBgBIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgCIAEoCRJACgZncm91cHMYAyADKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxJDCghjb21tYW5kcxgEIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hQ29tbWFuZER0byI7ChhQcmVzZXRUYXNrU2NoZW1hQWxpYXNEdG8SCwoDa2V5GAEgASgJEhIKCmRlcHJlY2F0ZWQYAiABKAgitAIKHFByZXNldFRhc2tTY2hlbWFQYXJhbWV0ZXJEdG8SCwoDa2V5GAEgASgJEg4KBm9yaWdpbhgCIAEoCRIVCghwcm9kdWNlchgDIAEoCUgAiAEBEhIKCnZhbHVlX3R5cGUYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSDQoFbGFiZWwYBiABKAkSEQoEaGludBgHIAEoCUgBiAEBEkAKB29wdGlvbnMYCCADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvEkAKB2FsaWFzZXMYCSADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYUFsaWFzRHRvQgsKCV9wcm9kdWNlckIHCgVfaGludCKHAQoaUHJlc2V0VGFza1NjaGVtYVJlcXVlc3REdG8SDgoGbWV0aG9kGAEgASgJEgwKBHBhdGgYAiABKAkSHAoUcHJlc2V0X3Rhc2tfaWRfZmllbGQYAyABKAkSFAoMbG9jYWxlX2ZpZWxkGAQgASgJEhcKD3JlcXVpcmVkX2ZpZWxkcxgFIAMoCSJ4CiRQcmVzZXRUYXNrU2NoZW1hU2NlbmVSZWdpc3RyYXRpb25EdG8SEQoJc2NlbmVfa2V5GAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB3N1bW1hcnkYAyABKAkSHQoVYmFja2dyb3VuZF9pbWFnZV9zbG90GAQgASgFIpwBChlQcmVzZXRUYXNrU2NoZW1hU2NlbmVzRHRvEhAKCHByb3ZpZGVyGAEgASgJEhkKEWRlZmF1bHRfc2NlbmVfa2V5GAIgASgJElIKDXJlZ2lzdHJhdGlvbnMYAyADKAsyOy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVNjZW5lUmVnaXN0cmF0aW9uRHRvIvQBChlQcmVzZXRUYXNrU2NoZW1hVGFyZ2V0RHRvEgoKAmlkGAEgASgJEgwKBGtpbmQYAiABKAkSFgoOc2VsZWN0aW9uX21vZGUYAyABKAkSEAoIcmVxdWlyZWQYBCABKAgSHAoUYWxsb3dlZF9hY2Nlc3NfdHlwZXMYBSADKAkSGQoMc2NvcGVfc291cmNlGAYgASgJSACIAQESEwoLcmVxdWVzdF9rZXkYByABKAkSHgoRc2NvcGVfcmVxdWVzdF9rZXkYCCABKAlIAYgBAUIPCg1fc2NvcGVfc291cmNlQhQKEl9zY29wZV9yZXF1ZXN0X2tleSJ6ChhQcmVzZXRUYXNrU2NoZW1hU2NvcGVEdG8SGwoTZGVmYXVsdF90YXJnZXRfdHlwZRgBIAEoCRJBCgd0YXJnZXRzGAIgAygLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2hlbWFUYXJnZXREdG8i4wQKG1ByZXNldFRhc2tDcmVhdGlvblNjaGVtYUR0bxIKCgJpZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEg4KBmxvY2FsZRgDIAEoCRINCgV0aXRsZRgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRI+CgVzY29wZRgGIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU2NvcGVEdG8SRAoIY29tbWFuZHMYByABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYUNvbW1hbmRzRHRvEkcKCnBhcmFtZXRlcnMYCCADKAsyMy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVBhcmFtZXRlckR0bxJFCgxyZXF1aXJlbWVudHMYCSADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50RHRvEkAKBnNjZW5lcxgKIAEoCzIwLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU2NlbmVzRHRvEkIKB3JlcXVlc3QYCyABKAsyMS5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVJlcXVlc3REdG8SLQoMaW5wdXRfc2NoZW1hGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIoCgdleGFtcGxlGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdDKvBAoSUHJlc2V0VGFza3NTZXJ2aWNlEn8KFEdldFByZXNldFRhc2tDYXRhbG9nEjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFByZXNldFRhc2tDYXRhbG9nUmVxdWVzdBozLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrQ2F0YWxvZ1Jlc3BvbnNlEpQBChtDaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHMSOS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ2hlY2tQcmVzZXRUYXNrUmVxdWlyZW1lbnRzUmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5DaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHNSZXNwb25zZRKCAQoVTGlzdFByZXNldFRhc2tTY2hlbWFzEjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RQcmVzZXRUYXNrU2NoZW1hc1JlcXVlc3QaNC5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFByZXNldFRhc2tTY2hlbWFzUmVzcG9uc2USfAoTR2V0UHJlc2V0VGFza1NjaGVtYRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrU2NoZW1hUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrU2NoZW1hUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ve,Du]),_u=G(Qn,5),Pu=G(Qn,7),$u=Ne(Qn,0),$=ee("CiloYWdpY29kZS9jb21tdW5pdHkvdjEvc2tpbGxfZ2FsbGVyeS5wcm90bxIVaGFnaWNvZGUuY29tbXVuaXR5LnYxIhcKFUdldExvY2FsU2tpbGxzUmVxdWVzdCJfChZHZXRMb2NhbFNraWxsc1Jlc3BvbnNlEkUKBnJlc3VsdBgBIAEoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Mb2NhbFNraWxsSW52ZW50b3J5UmVzcG9uc2VEdG8iLAocR2V0QnVpbHRJblNraWxsRGV0YWlsUmVxdWVzdBIMCgRzbHVnGAEgASgJIl0KHUdldEJ1aWx0SW5Ta2lsbERldGFpbFJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5CdWlsdEluU2tpbGxEZXRhaWxEdG8iYAoaVW5pbnN0YWxsTG9jYWxTa2lsbFJlcXVlc3QSQgoEYm9keRgBIAEoCzI0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Vbmluc3RhbGxMb2NhbFNraWxsUmVxdWVzdER0byJiChtVbmluc3RhbGxMb2NhbFNraWxsUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXN1bHREdG8icAoiU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVxdWVzdBJKCgRib2R5GAEgASgLMjwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlcXVlc3REdG8icgojU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVzcG9uc2USSwoGcmVzdWx0GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlc3VsdER0byI2ChZHZXRTa2lsbEdhbGxlcnlSZXF1ZXN0EhIKBXF1ZXJ5GAEgASgJSACIAQFCCAoGX3F1ZXJ5IlkKF0dldFNraWxsR2FsbGVyeVJlc3BvbnNlEj4KBnJlc3VsdBgBIAEoCzIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Ta2lsbEdhbGxlcnlSZXNwb25zZUR0byI6ChxHZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBnNvdXJjZRgCIAEoCSJdCh1HZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXNwb25zZRI8CgZyZXN1bHQYASABKAsyLC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5RGV0YWlsRHRvIjkKG0dldFNraWxsR2FsbGVyeUF1ZGl0UmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkiWwocR2V0U2tpbGxHYWxsZXJ5QXVkaXRSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5QXVkaXREdG8itAEKHFNraWxsR2FsbGVyeUF1ZGl0UHJvdmlkZXJEdG8SEAoIcHJvdmlkZXIYASABKAkSEQoEcmlzaxgCIAEoCUgAiAEBEhMKBmFsZXJ0cxgDIAEoBUgBiAEBEhIKBXNjb3JlGAQgASgFSAKIAQESGAoLYW5hbHl6ZWRfYXQYBSABKAlIA4gBAUIHCgVfcmlza0IJCgdfYWxlcnRzQggKBl9zY29yZUIOCgxfYW5hbHl6ZWRfYXQijgEKFFNraWxsR2FsbGVyeUF1ZGl0RHRvEgoKAmlkGAEgASgJEg4KBnNvdXJjZRgCIAEoCRISCgpza2lsbF9zbHVnGAMgASgJEkYKCXByb3ZpZGVycxgEIAMoCzIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Ta2lsbEdhbGxlcnlBdWRpdFByb3ZpZGVyRHRvIkIKJEdldFNraWxsR2FsbGVyeUluc3RhbGxDb250ZXh0UmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkibQolR2V0U2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHRSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHREdG8iIQofR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVxdWVzdCJuCiBHZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8ibgohVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0EkkKBGJvZHkYASABKAsyOy5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvInAKIlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyUmVzcG9uc2USSgoGcmVzdWx0GAEgASgLMjouaGFnaWNvZGUuY29tbXVuaXR5LnYxLlRydXN0ZWRTa2lsbFByb3ZpZGVyTGlzdFJlc3BvbnNlRHRvIm4KIURlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdBJJCgRib2R5GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdER0byJwCiJEZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlclJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlckxpc3RSZXNwb25zZUR0byIjCiFSZXNldFRydXN0ZWRTa2lsbFByb3ZpZGVyc1JlcXVlc3QicAoiUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8iUgoTSW5zdGFsbFNraWxsUmVxdWVzdBI7CgRib2R5GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlcXVlc3REdG8iVAoUSW5zdGFsbFNraWxsUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlc3VsdER0byL3AQoYTG9jYWxTa2lsbEJ1aWx0SW5JbmZvRHRvEg8KB2VuYWJsZWQYASABKAgSFAoHdmVyc2lvbhgCIAEoCUgAiAEBEhMKBnNvdXJjZRgDIAEoCUgBiAEBEhcKCnJlcG9zaXRvcnkYBCABKAlIAogBARIQCgNyZWYYBSABKAlIA4gBARIRCgRwYXRoGAYgASgJSASIAQESGQoMY29udGVudF9oYXNoGAcgASgJSAWIAQFCCgoIX3ZlcnNpb25CCQoHX3NvdXJjZUINCgtfcmVwb3NpdG9yeUIGCgRfcmVmQgcKBV9wYXRoQg8KDV9jb250ZW50X2hhc2givAIKI0xvY2FsU2tpbGxNYW5hZ2VkSW5zdGFsbE1ldGFkYXRhRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgFEhAKCHNraWxsX2lkGAIgASgJEg4KBnNvdXJjZRgDIAEoCRISCgpza2lsbF9zbHVnGAQgASgJEhQKB3ZlcnNpb24YBSABKAlIAIgBARIhChRub3JtYWxpemVkX3NraWxsX2tleRgGIAEoCUgBiAEBEh4KEWluc3RhbGxfcmVmZXJlbmNlGAcgASgJSAKIAQESMwoPcmVjb3JkZWRfYXRfdXRjGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfdmVyc2lvbkIXChVfbm9ybWFsaXplZF9za2lsbF9rZXlCFAoSX2luc3RhbGxfcmVmZXJlbmNlIosCChFMb2NhbFNraWxsSXRlbUR0bxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBXNjb3BlGAMgASgJEgwKBHBhdGgYBCABKAkSDgoGYWdlbnRzGAUgAygJElwKGG1hbmFnZWRfaW5zdGFsbF9tZXRhZGF0YRgGIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Mb2NhbFNraWxsTWFuYWdlZEluc3RhbGxNZXRhZGF0YUR0bxIOCgZvcmlnaW4YByABKAkSQQoIYnVpbHRfaW4YCCABKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxTa2lsbEJ1aWx0SW5JbmZvRHRvIo8BCh5Mb2NhbFNraWxsSW52ZW50b3J5UmVzcG9uc2VEdG8SNAoQZ2VuZXJhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNwoFaXRlbXMYAiADKAsyKC5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxTa2lsbEl0ZW1EdG8isQEKG0J1aWx0SW5Ta2lsbERldGFpbFNvdXJjZUR0bxIRCgR0eXBlGAEgASgJSACIAQESFwoKcmVwb3NpdG9yeRgCIAEoCUgBiAEBEhAKA3JlZhgDIAEoCUgCiAEBEhEKBHBhdGgYBCABKAlIA4gBARIQCgN1cmwYBSABKAlIBIgBAUIHCgVfdHlwZUINCgtfcmVwb3NpdG9yeUIGCgRfcmVmQgcKBV9wYXRoQgYKBF91cmwiPAoYQnVpbHRJblNraWxsRmlsZUVudHJ5RHRvEgwKBHBhdGgYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoAyI5ChtCdWlsdEluU2tpbGxNZXRhZGF0YVBhaXJEdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJIo4EChVCdWlsdEluU2tpbGxEZXRhaWxEdG8SDAoEc2x1ZxgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhQKB3ZlcnNpb24YBCABKAlIAIgBARIPCgdlbmFibGVkGAUgASgIEkQKCG1ldGFkYXRhGAYgAygLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkJ1aWx0SW5Ta2lsbE1ldGFkYXRhUGFpckR0bxJCCgZzb3VyY2UYByABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuQnVpbHRJblNraWxsRGV0YWlsU291cmNlRHRvEhkKDGNvbnRlbnRfaGFzaBgIIAEoCUgBiAEBEj4KBWZpbGVzGAkgAygLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkJ1aWx0SW5Ta2lsbEZpbGVFbnRyeUR0bxISCgpmaWxlX2NvdW50GAogASgFEhgKEHRvdGFsX3NpemVfYnl0ZXMYCyABKAMSFwoPZmlsZXNfdHJ1bmNhdGVkGAwgASgIEhUKDWxpY2Vuc2VfZmlsZXMYDSADKAkSDAoEYm9keRgOIAEoCRIWCg5ib2R5X3RydW5jYXRlZBgPIAEoCBIXCg9ib2R5X3NpemVfYnl0ZXMYECABKANCCgoIX3ZlcnNpb25CDwoNX2NvbnRlbnRfaGFzaCLXAQocVW5pbnN0YWxsTG9jYWxTa2lsbFJlc3VsdER0bxISCgpza2lsbF9uYW1lGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIZCgx1c2VyX21lc3NhZ2UYAyABKAlIAIgBARIfChJkaWFnbm9zdGljX21lc3NhZ2UYBCABKAlIAYgBARIvCgtvY2N1cnJlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX3VzZXJfbWVzc2FnZUIVChNfZGlhZ25vc3RpY19tZXNzYWdlIjMKHVVuaW5zdGFsbExvY2FsU2tpbGxSZXF1ZXN0RHRvEhIKCnNraWxsX25hbWUYASABKAkivAEKJFNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlc3VsdER0bxIMCgRzbHVnGAEgASgJEg8KB2VuYWJsZWQYAiABKAgSEQoJc3VjY2VlZGVkGAMgASgIEhkKDHVzZXJfbWVzc2FnZRgEIAEoCUgAiAEBEh8KEmRpYWdub3N0aWNfbWVzc2FnZRgFIAEoCUgBiAEBQg8KDV91c2VyX21lc3NhZ2VCFQoTX2RpYWdub3N0aWNfbWVzc2FnZSJGCiVTZXRCdWlsdEluU2tpbGxBdmFpbGFiaWxpdHlSZXF1ZXN0RHRvEgwKBHNsdWcYASABKAkSDwoHZW5hYmxlZBgCIAEoCCKlAgoiU2tpbGxHYWxsZXJ5UmVwb3NpdG9yeURpc2NvdmVyeUR0bxIMCgRtb2RlGAEgASgJEhwKD3JlcXVlc3RlZF9xdWVyeRgCIAEoCUgAiAEBEh4KEW5vcm1hbGl6ZWRfc291cmNlGAMgASgJSAGIAQESGwoOcmVwb3NpdG9yeV91cmwYBCABKAlIAogBARIPCgdvdXRjb21lGAUgASgJEhcKCmVycm9yX2NvZGUYBiABKAlIA4gBARIUCgdtZXNzYWdlGAcgASgJSASIAQFCEgoQX3JlcXVlc3RlZF9xdWVyeUIUChJfbm9ybWFsaXplZF9zb3VyY2VCEQoPX3JlcG9zaXRvcnlfdXJsQg0KC19lcnJvcl9jb2RlQgoKCF9tZXNzYWdlIuYBCiNUcnVzdGVkU2tpbGxQcm92aWRlclRydXN0U3VtbWFyeUR0bxITCgtwcm92aWRlcl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLYmFkZ2VfbGFiZWwYAyABKAkSHgoRbWF0Y2hlZF9ydWxlX3R5cGUYBCABKAlIAIgBARIfChJtYXRjaGVkX3J1bGVfdmFsdWUYBSABKAlIAYgBARIRCglpc19wcmVzZXQYBiABKAhCFAoSX21hdGNoZWRfcnVsZV90eXBlQhUKE19tYXRjaGVkX3J1bGVfdmFsdWUiwwEKFFNraWxsR2FsbGVyeVNraWxsRHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDgoGc291cmNlGAMgASgJEhAKCGluc3RhbGxzGAQgASgFEhkKEWlzX3RydXN0ZWRfc291cmNlGAUgASgIElQKEHRydXN0ZWRfcHJvdmlkZXIYBiABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJUcnVzdFN1bW1hcnlEdG8i5AEKF1NraWxsR2FsbGVyeVJlc3BvbnNlRHRvEjQKEGdlbmVyYXRlZF9hdF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKBWl0ZW1zGAIgAygLMisuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNraWxsR2FsbGVyeVNraWxsRHRvElcKFHJlcG9zaXRvcnlfZGlzY292ZXJ5GAMgASgLMjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNraWxsR2FsbGVyeVJlcG9zaXRvcnlEaXNjb3ZlcnlEdG8i7AUKFVNraWxsR2FsbGVyeURldGFpbER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhwKD3JlcG9zaXRvcnlfbmFtZRgFIAEoCUgBiAEBEiEKFHJlcG9zaXRvcnlfZnVsbF9uYW1lGAYgASgJSAKIAQESGwoOcmVwb3NpdG9yeV91cmwYByABKAlIA4gBARImChlyZXBvc2l0b3J5X2RlZmF1bHRfYnJhbmNoGAggASgJSASIAQESHwoScmVwb3NpdG9yeV9wcml2YXRlGAkgASgISAWIAQESFgoOaXNfaW5zdGFsbGFibGUYCiABKAgSGQoRaXNfdHJ1c3RlZF9zb3VyY2UYCyABKAgSVAoQdHJ1c3RlZF9wcm92aWRlchgMIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlclRydXN0U3VtbWFyeUR0bxIeChFpbnN0YWxsX3JlZmVyZW5jZRgNIAEoCUgGiAEBEiQKF2luc3RhbGxfY29tbWFuZF9wcmV2aWV3GA4gASgJSAeIAQESHAoPaW5zdGFsbF92ZXJzaW9uGA8gASgJSAiIAQESGQoMaW5zdGFsbF9oaW50GBAgASgJSAmIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9yZXBvc2l0b3J5X25hbWVCFwoVX3JlcG9zaXRvcnlfZnVsbF9uYW1lQhEKD19yZXBvc2l0b3J5X3VybEIcChpfcmVwb3NpdG9yeV9kZWZhdWx0X2JyYW5jaEIVChNfcmVwb3NpdG9yeV9wcml2YXRlQhQKEl9pbnN0YWxsX3JlZmVyZW5jZUIaChhfaW5zdGFsbF9jb21tYW5kX3ByZXZpZXdCEgoQX2luc3RhbGxfdmVyc2lvbkIPCg1faW5zdGFsbF9oaW50Iq4DCh1Ta2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIWCg5pc19pbnN0YWxsYWJsZRgEIAEoCBIZChFpc190cnVzdGVkX3NvdXJjZRgFIAEoCBJUChB0cnVzdGVkX3Byb3ZpZGVyGAYgASgLMjouaGFnaWNvZGUuY29tbXVuaXR5LnYxLlRydXN0ZWRTa2lsbFByb3ZpZGVyVHJ1c3RTdW1tYXJ5RHRvEh4KEWluc3RhbGxfcmVmZXJlbmNlGAcgASgJSACIAQESJAoXaW5zdGFsbF9jb21tYW5kX3ByZXZpZXcYCCABKAlIAYgBARIcCg9pbnN0YWxsX3ZlcnNpb24YCSABKAlIAogBARIZCgxpbnN0YWxsX2hpbnQYCiABKAlIA4gBAUIUChJfaW5zdGFsbF9yZWZlcmVuY2VCGgoYX2luc3RhbGxfY29tbWFuZF9wcmV2aWV3QhIKEF9pbnN0YWxsX3ZlcnNpb25CDwoNX2luc3RhbGxfaGludCJFCiBUcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0bxISCgptYXRjaF90eXBlGAEgASgJEg0KBXZhbHVlGAIgASgJIo8CChdUcnVzdGVkU2tpbGxQcm92aWRlckR0bxITCgtwcm92aWRlcl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLYmFkZ2VfbGFiZWwYAyABKAkSEQoJaXNfcHJlc2V0GAQgASgIEhIKCmlzX2VuYWJsZWQYBSABKAgSEgoKc29ydF9vcmRlchgGIAEoBRISCgpydWxlX2NvdW50GAcgASgFEhcKD3NvdXJjZV9leGFtcGxlcxgIIAMoCRJMCgttYXRjaF9ydWxlcxgJIAMoCzI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0byKrAQojVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8SNAoQZ2VuZXJhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHdmVyc2lvbhgCIAEoBRI9CgVpdGVtcxgDIAMoCzIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlckR0byLxAQokVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvEhMKC3Byb3ZpZGVyX2lkGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtiYWRnZV9sYWJlbBgDIAEoCUgAiAEBEhIKCmlzX2VuYWJsZWQYBCABKAgSEgoKc29ydF9vcmRlchgFIAEoBRJMCgttYXRjaF9ydWxlcxgGIAMoCzI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0b0IOCgxfYmFkZ2VfbGFiZWwiOwokRGVsZXRlVHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvEhMKC3Byb3ZpZGVyX2lkGAEgASgJIrgDChVJbnN0YWxsU2tpbGxSZXN1bHREdG8SEAoIc2tpbGxfaWQYASABKAkSDgoGc291cmNlGAIgASgJEhIKCnNraWxsX3NsdWcYAyABKAkSIQoUbm9ybWFsaXplZF9za2lsbF9rZXkYBCABKAlIAIgBARIeChFpbnN0YWxsX3JlZmVyZW5jZRgFIAEoCUgBiAEBEhwKD2NvbW1hbmRfcHJldmlldxgGIAEoCUgCiAEBEhQKB3ZlcnNpb24YByABKAlIA4gBARIOCgZzdGF0dXMYCCABKAkSGQoMdXNlcl9tZXNzYWdlGAkgASgJSASIAQESHwoSZGlhZ25vc3RpY19tZXNzYWdlGAogASgJSAWIAQESLwoLb2NjdXJyZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhcKFV9ub3JtYWxpemVkX3NraWxsX2tleUIUChJfaW5zdGFsbF9yZWZlcmVuY2VCEgoQX2NvbW1hbmRfcHJldmlld0IKCghfdmVyc2lvbkIPCg1fdXNlcl9tZXNzYWdlQhUKE19kaWFnbm9zdGljX21lc3NhZ2UiagoWSW5zdGFsbFNraWxsUmVxdWVzdER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIUCgd2ZXJzaW9uGAQgASgJSACIAQFCCgoIX3ZlcnNpb24iGwoZTGlzdFVzZXJTa2lsbEJhc2VzUmVxdWVzdCJfChpMaXN0VXNlclNraWxsQmFzZXNSZXNwb25zZRJBCgZyZXN1bHQYASABKAsyMS5oYWdpY29kZS5jb21tdW5pdHkudjEuVXNlclNraWxsQmFzZUxpc3RSZXN1bHREdG8iWgoXQWRkVXNlclNraWxsQmFzZVJlcXVlc3QSPwoEYm9keRgBIAEoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5BZGRVc2VyU2tpbGxCYXNlUmVxdWVzdER0byJZChhBZGRVc2VyU2tpbGxCYXNlUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbEJhc2VSZXN1bHREdG8iLQoaUmVtb3ZlVXNlclNraWxsQmFzZVJlcXVlc3QSDwoHYmFzZV9pZBgBIAEoCSJiChtSZW1vdmVVc2VyU2tpbGxCYXNlUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlbW92ZVVzZXJTa2lsbEJhc2VSZXN1bHREdG8iLQoaUmVzY2FuVXNlclNraWxsQmFzZVJlcXVlc3QSDwoHYmFzZV9pZBgBIAEoCSJcChtSZXNjYW5Vc2VyU2tpbGxCYXNlUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbEJhc2VSZXN1bHREdG8iYAoaU2V0VXNlclNraWxsRW5hYmxlZFJlcXVlc3QSQgoEYm9keRgBIAEoCzI0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRVc2VyU2tpbGxFbmFibGVkUmVxdWVzdER0byJiChtTZXRVc2VyU2tpbGxFbmFibGVkUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldFVzZXJTa2lsbEVuYWJsZWRSZXN1bHREdG8i+AEKEFVzZXJTa2lsbEJhc2VEdG8SCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSDAoEcGF0aBgDIAEoCRIOCgZzdGF0dXMYBCABKAkSGgoNc3RhdHVzX3JlYXNvbhgFIAEoCUgAiAEBEhsKDnN0YXR1c19tZXNzYWdlGAYgASgJSAGIAQESMwoGc2tpbGxzGAcgAygLMiMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbER0bxIYChBza2lsbHNfdHJ1bmNhdGVkGAggASgIQhAKDl9zdGF0dXNfcmVhc29uQhEKD19zdGF0dXNfbWVzc2FnZSL9AQoMVXNlclNraWxsRHRvEgwKBHNsdWcYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg8KB2VuYWJsZWQYBCABKAgSDgoGc3RhdHVzGAUgASgJEhsKDmNvbmZsaWN0c193aXRoGAYgASgJSAGIAQESPAoIcHJvYmxlbXMYByADKAsyKi5oYWdpY29kZS5jb21tdW5pdHkudjEuVXNlclNraWxsUHJvYmxlbUR0bxIKCgJpZBgIIAEoCRIMCgRwYXRoGAkgASgJQg4KDF9kZXNjcmlwdGlvbkIRCg9fY29uZmxpY3RzX3dpdGgiNAoTVXNlclNraWxsUHJvYmxlbUR0bxIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkiSAoaQWRkVXNlclNraWxsQmFzZVJlcXVlc3REdG8SDAoEcGF0aBgBIAEoCRISCgVsYWJlbBgCIAEoCUgAiAEBQggKBl9sYWJlbCKTAQoaVXNlclNraWxsQmFzZUxpc3RSZXN1bHREdG8SEQoJc3VjY2VlZGVkGAEgASgIEhkKDHVzZXJfbWVzc2FnZRgCIAEoCUgAiAEBEjYKBWJhc2VzGAMgAygLMicuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbEJhc2VEdG9CDwoNX3VzZXJfbWVzc2FnZSKOAQoWVXNlclNraWxsQmFzZVJlc3VsdER0bxIRCglzdWNjZWVkZWQYASABKAgSGQoMdXNlcl9tZXNzYWdlGAIgASgJSACIAQESNQoEYmFzZRgDIAEoCzInLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Vc2VyU2tpbGxCYXNlRHRvQg8KDV91c2VyX21lc3NhZ2UibgocUmVtb3ZlVXNlclNraWxsQmFzZVJlc3VsdER0bxIRCglzdWNjZWVkZWQYASABKAgSGQoMdXNlcl9tZXNzYWdlGAIgASgJSACIAQESDwoHYmFzZV9pZBgDIAEoCUIPCg1fdXNlcl9tZXNzYWdlIlUKHVNldFVzZXJTa2lsbEVuYWJsZWRSZXF1ZXN0RHRvEg8KB2Jhc2VfaWQYASABKAkSEgoKc2tpbGxfc2x1ZxgCIAEoCRIPCgdlbmFibGVkGAMgASgIIpMBChxTZXRVc2VyU2tpbGxFbmFibGVkUmVzdWx0RHRvEhEKCXN1Y2NlZWRlZBgBIAEoCBIZCgx1c2VyX21lc3NhZ2UYAiABKAlIAIgBARIPCgdiYXNlX2lkGAMgASgJEhIKCnNraWxsX3NsdWcYBCABKAkSDwoHZW5hYmxlZBgFIAEoCEIPCg1fdXNlcl9tZXNzYWdlMtASChNTa2lsbEdhbGxlcnlTZXJ2aWNlEm0KDkdldExvY2FsU2tpbGxzEiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldExvY2FsU2tpbGxzUmVxdWVzdBotLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRMb2NhbFNraWxsc1Jlc3BvbnNlEoIBChVHZXRCdWlsdEluU2tpbGxEZXRhaWwSMy5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0QnVpbHRJblNraWxsRGV0YWlsUmVxdWVzdBo0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRCdWlsdEluU2tpbGxEZXRhaWxSZXNwb25zZRJ8ChNVbmluc3RhbGxMb2NhbFNraWxsEjEuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXF1ZXN0GjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXNwb25zZRKUAQobU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5EjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlcXVlc3QaOi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVzcG9uc2UScAoPR2V0U2tpbGxHYWxsZXJ5Ei0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeVJlcXVlc3QaLi5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0U2tpbGxHYWxsZXJ5UmVzcG9uc2USggEKFUdldFNraWxsR2FsbGVyeURldGFpbBIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXF1ZXN0GjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeURldGFpbFJlc3BvbnNlEn8KFEdldFNraWxsR2FsbGVyeUF1ZGl0EjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeUF1ZGl0UmVxdWVzdBozLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlBdWRpdFJlc3BvbnNlEpoBCh1HZXRTa2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dBI7LmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dFJlcXVlc3QaPC5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0U2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHRSZXNwb25zZRKLAQoYR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzEjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFRydXN0ZWRTa2lsbFByb3ZpZGVyc1JlcXVlc3QaNy5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVzcG9uc2USkQEKGlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyEjguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdBo5LmhhZ2ljb2RlLmNvbW11bml0eS52MS5VcHNlcnRUcnVzdGVkU2tpbGxQcm92aWRlclJlc3BvbnNlEpEBChpEZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlchI4LmhhZ2ljb2RlLmNvbW11bml0eS52MS5EZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlclJlcXVlc3QaOS5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlVHJ1c3RlZFNraWxsUHJvdmlkZXJSZXNwb25zZRKRAQoaUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnMSOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXF1ZXN0GjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlc2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVzcG9uc2USZwoMSW5zdGFsbFNraWxsEiouaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlcXVlc3QaKy5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbFNraWxsUmVzcG9uc2USeQoSTGlzdFVzZXJTa2lsbEJhc2VzEjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RVc2VyU2tpbGxCYXNlc1JlcXVlc3QaMS5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFVzZXJTa2lsbEJhc2VzUmVzcG9uc2UScwoQQWRkVXNlclNraWxsQmFzZRIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5BZGRVc2VyU2tpbGxCYXNlUmVxdWVzdBovLmhhZ2ljb2RlLmNvbW11bml0eS52MS5BZGRVc2VyU2tpbGxCYXNlUmVzcG9uc2USfAoTUmVtb3ZlVXNlclNraWxsQmFzZRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZW1vdmVVc2VyU2tpbGxCYXNlUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZW1vdmVVc2VyU2tpbGxCYXNlUmVzcG9uc2USfAoTUmVzY2FuVXNlclNraWxsQmFzZRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZXNjYW5Vc2VyU2tpbGxCYXNlUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZXNjYW5Vc2VyU2tpbGxCYXNlUmVzcG9uc2USfAoTU2V0VXNlclNraWxsRW5hYmxlZBIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRVc2VyU2tpbGxFbmFibGVkUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRVc2VyU2tpbGxFbmFibGVkUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ee]),qu=G($,1),ed=G($,5),td=G($,7),nd=G($,9),od=G($,11),ad=G($,13),rd=G($,19),id=G($,21),ld=G($,23),sd=G($,25),cd=G($,27),ud=G($,37),dd=G($,39),md=G($,49),bd=G($,50),hd=G($,52),gd=Ne($,0),Lr=ee("CiVoYWdpY29kZS9wbGF0Zm9ybS92MS9zdGF0aXN0aWNzLnByb3RvEhRoYWdpY29kZS5wbGF0Zm9ybS52MSJ1ChhHZXRBZ2dyZWdhdGVkRGF0YVJlcXVlc3QSFQoNZm9yY2VfcmVmcmVzaBgBIAEoCBIlChhnaXRfYXV0b19yZWZyZXNoX2VuYWJsZWQYAiABKAhIAIgBAUIbChlfZ2l0X2F1dG9fcmVmcmVzaF9lbmFibGVkIl0KGUdldEFnZ3JlZ2F0ZWREYXRhUmVzcG9uc2USQAoGcmVzdWx0GAEgASgLMjAuaGFnaWNvZGUucGxhdGZvcm0udjEuRGF0YUFnZ3JlZ2F0aW9uUmVzcG9uc2VEdG8iHQobR2V0VG9rZW5Nb25pdG9yVXNhZ2VSZXF1ZXN0ImIKHEdldFRva2VuTW9uaXRvclVzYWdlUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yVXNhZ2VTbmFwc2hvdER0byIlCiNHZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVxdWVzdCJgCiRHZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5UaHJvdWdocHV0RHRvIkQKIEdldFRva2VuVGhyb3VnaHB1dEhpc3RvcnlSZXF1ZXN0EhQKB21pbnV0ZXMYASABKAVIAIgBAUIKCghfbWludXRlcyJiCiFHZXRUb2tlblRocm91Z2hwdXRIaXN0b3J5UmVzcG9uc2USPQoGcmVzdWx0GAEgAygLMi0uaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5UaHJvdWdocHV0U25hcHNob3QiOAoaR2V0SGVyb0JhdHRsZVJlcG9ydFJlcXVlc3QSEQoEZGF0ZRgBIAEoCUgAiAEBQgcKBV9kYXRlIlgKG0dldEhlcm9CYXR0bGVSZXBvcnRSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0RHRvIkAKIEdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXF1ZXN0EhIKBXJhbmdlGAEgASgJSACIAQFCCAoGX3JhbmdlImcKIUdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJTdGF0aXN0aWNzUmVwb3J0RHRvIuwCChxHZXRIaXN0b3JpY2FsVGltZWxpbmVSZXF1ZXN0EhgKC2VudGl0eV90eXBlGAEgASgJSACIAQESFgoJZW50aXR5X2lkGAIgASgJSAGIAQESFwoKcHJvamVjdF9pZBgDIAEoCUgCiAEBEhcKCnNlc3Npb25faWQYBCABKAlIA4gBARIzCg9yYW5nZV9zdGFydF91dGMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXJhbmdlX2VuZF91dGMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKBmN1cnNvchgHIAEoCUgEiAEBEhYKCXBhZ2Vfc2l6ZRgIIAEoBUgFiAEBQg4KDF9lbnRpdHlfdHlwZUIMCgpfZW50aXR5X2lkQg0KC19wcm9qZWN0X2lkQg0KC19zZXNzaW9uX2lkQgkKB19jdXJzb3JCDAoKX3BhZ2Vfc2l6ZSJpCh1HZXRIaXN0b3JpY2FsVGltZWxpbmVSZXNwb25zZRJICgZyZXN1bHQYASABKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVRdWVyeVJlc3BvbnNlRHRvIiUKI0dldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXF1ZXN0InIKJEdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVTYW1wbGVzUmVzcG9uc2VEdG8iqgEKFkFnZ3JlZ2F0aW9uTWV0YWRhdGFEdG8SLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg50b3RhbF9wcm9qZWN0cxgCIAEoBRIaChJ0b3RhbF9yZXBvc2l0b3JpZXMYAyABKAUSFwoPZmFpbGVkX3Byb2plY3RzGAQgASgFEhQKDGhhc19mYWlsdXJlcxgFIAEoCCKyBQoYUmVwb3NpdG9yeUFnZ3JlZ2F0aW9uRHRvEhEKBGNvZGUYASABKAlIAIgBARIMCgRuYW1lGAIgASgJEgwKBHBhdGgYAyABKAkSFQoNcmVsYXRpdmVfcGF0aBgEIAEoCRIUCgxkaXNwbGF5X25hbWUYBSABKAkSEQoEdHlwZRgGIAEoCUgBiAEBEgwKBHRhZ3MYByADKAkSEQoEaWNvbhgIIAEoCUgCiAEBEhAKA3VybBgJIAEoCUgDiAEBEhgKEGNvbGxhcHNlX3RvX21vcmUYCiABKAgSGQoRaXNfdmFsaWRfZ2l0X3JlcG8YCyABKAgSHAoUZ2l0X3N0YXR1c19hdmFpbGFibGUYDCABKAgSEwoGYnJhbmNoGA0gASgJSASIAQESHwoXaGFzX3VuY29tbWl0dGVkX2NoYW5nZXMYDiABKAgSHQoVdW5wdXNoZWRfY29tbWl0X2NvdW50GA8gASgFEhsKE2hhc190cmFja2luZ19icmFuY2gYECABKAgSNQoPdHJhY2tpbmdfYnJhbmNoGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEhMKC2FoZWFkX2NvdW50GBIgASgFEhQKDGJlaGluZF9jb3VudBgTIAEoBRIXCgpzeW5jX3N0YXRlGBQgASgJSAWIAQESEwoLaXNfb3B0aW9uYWwYFSABKAgSFAoMaXNfc2FuaXRpemVkGBYgASgIEhsKE3Nhbml0aXphdGlvbl9yZWFzb24YFyABKAkSGAoQaGFzX25hbWVfd2FybmluZxgYIAEoCBIVCg1uYW1lX3dhcm5pbmdzGBkgAygJQgcKBV9jb2RlQgcKBV90eXBlQgcKBV9pY29uQgYKBF91cmxCCQoHX2JyYW5jaEINCgtfc3luY19zdGF0ZSK6BAoVUHJvamVjdEFnZ3JlZ2F0aW9uRHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcGF0aBgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhUKDWlzX21vbm9fc3BlY3MYBSABKAgSHwoSbW9ub19zcGVjc192ZXJzaW9uGAYgASgJSAGIAQESJgoZbW9ub19zcGVjc19yZXBvX2RpcmVjdG9yeRgHIAEoCUgCiAEBEisKHm1vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZRgIIAEoCEgDiAEBEkQKDHJlcG9zaXRvcmllcxgJIAMoCzIuLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlJlcG9zaXRvcnlBZ2dyZWdhdGlvbkR0bxJBCh1naXRfc25hcHNob3RfcmVmcmVzaGVkX2F0X3V0YxgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIQoZZ2l0X3NuYXBzaG90X3NlcnZlZF9zdGFsZRgLIAEoCBIrCgVlcnJvchgMIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIRCgloYXNfZXJyb3IYDSABKAhCDgoMX2Rlc2NyaXB0aW9uQhUKE19tb25vX3NwZWNzX3ZlcnNpb25CHAoaX21vbm9fc3BlY3NfcmVwb19kaXJlY3RvcnlCIQofX21vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZSKbAQoaRGF0YUFnZ3JlZ2F0aW9uUmVzcG9uc2VEdG8SPQoIcHJvamVjdHMYASADKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Qcm9qZWN0QWdncmVnYXRpb25EdG8SPgoIbWV0YWRhdGEYAiABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5BZ2dyZWdhdGlvbk1ldGFkYXRhRHRvIqkDChxUb2tlbk1vbml0b3JVc2FnZVNuYXBzaG90RHRvEg4KBnN0YXR1cxgBIAEoCRIOCgZzb3VyY2UYAiABKAkSGwoOZmFpbHVyZV9yZWFzb24YAyABKAlIAIgBARIVCghkYXRlX2tleRgEIAEoCUgBiAEBEhkKDHRvdGFsX3Rva2VucxgFIAEoA0gCiAEBEhUKCGNvc3RfdXNkGAYgASgBSAOIAQESLwoLcmVhZF9hdF91dGMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhgKEHNuYXBzaG90X3ZlcnNpb24YCCABKAMSOwoGbGltaXRzGAkgASgLMisuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yTGltaXRzRHRvEj0KB3BlcmlvZHMYCiABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2RzRHRvQhEKD19mYWlsdXJlX3JlYXNvbkILCglfZGF0ZV9rZXlCDwoNX3RvdGFsX3Rva2Vuc0ILCglfY29zdF91c2QiugEKFVRva2VuTW9uaXRvckxpbWl0c0R0bxIyCg51cGRhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKcmVmcmVzaF9tcxgCIAEoBUgAiAEBEkUKCXByb3ZpZGVycxgDIAMoCzIyLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlRva2VuTW9uaXRvckxpbWl0UHJvdmlkZXJEdG9CDQoLX3JlZnJlc2hfbXMi0wIKHFRva2VuTW9uaXRvckxpbWl0UHJvdmlkZXJEdG8SEAoIcHJvdmlkZXIYASABKAkSDgoGc3RhdHVzGAIgASgJEhcKCnBsYW5fbGFiZWwYAyABKAlIAIgBARIyCg51cGRhdGVkX2F0X3V0YxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoHd2luZG93cxgFIAMoCzIwLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlRva2VuTW9uaXRvckxpbWl0V2luZG93RHRvEhgKC2JhbGFuY2VfdXNkGAYgASgBSAGIAQESSAoNcmVzZXRfY3JlZGl0cxgHIAEoCzIxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlRva2VuTW9uaXRvclJlc2V0Q3JlZGl0c0R0b0INCgtfcGxhbl9sYWJlbEIOCgxfYmFsYW5jZV91c2Qi9QMKGlRva2VuTW9uaXRvckxpbWl0V2luZG93RHRvEgwKBGtpbmQYASABKAkSEgoFbGFiZWwYAiABKAlIAIgBARIZCgx1c2VkX3BlcmNlbnQYAyABKAFIAYgBARIeChFyZW1haW5pbmdfcGVyY2VudBgEIAEoAUgCiAEBEhEKBHVzZWQYBSABKAFIA4gBARISCgVsaW1pdBgGIAEoAUgEiAEBEhYKCXJlbWFpbmluZxgHIAEoAUgFiAEBEhUKCGN1cnJlbmN5GAggASgJSAaIAQESMQoNcmVzZXRzX2F0X3V0YxgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOd2luZG93X21pbnV0ZXMYCiABKAVIB4gBARIeChFyZXNldF9kZXNjcmlwdGlvbhgLIAEoCUgIiAEBEhoKDW1ldGVyX3Zpc2libGUYDCABKAhICYgBAUIICgZfbGFiZWxCDwoNX3VzZWRfcGVyY2VudEIUChJfcmVtYWluaW5nX3BlcmNlbnRCBwoFX3VzZWRCCAoGX2xpbWl0QgwKCl9yZW1haW5pbmdCCwoJX2N1cnJlbmN5QhEKD193aW5kb3dfbWludXRlc0IUChJfcmVzZXRfZGVzY3JpcHRpb25CEAoOX21ldGVyX3Zpc2libGUivQEKG1Rva2VuTW9uaXRvclJlc2V0Q3JlZGl0c0R0bxIcCg9hdmFpbGFibGVfY291bnQYASABKAVIAIgBARI3ChNuZXh0X2V4cGlyZXNfYXRfdXRjGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCg9leHBpcmF0aW9uc191dGMYAyADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhIKEF9hdmFpbGFibGVfY291bnQizwEKFlRva2VuTW9uaXRvclBlcmlvZHNEdG8SOgoFdG9kYXkYASABKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2REdG8SOgoFbW9udGgYAiABKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2REdG8SPQoIYWxsX3RpbWUYAyABKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2REdG8iigQKFVRva2VuTW9uaXRvclBlcmlvZER0bxIUCgx0b3RhbF90b2tlbnMYASABKAMSEAoIY29zdF91c2QYAiABKAESHgoRY2FjaGVfcmVhZF90b2tlbnMYAyABKANIAIgBARIfChJjYWNoZV93cml0ZV90b2tlbnMYBCABKANIAYgBARIaCg1vdXRwdXRfdG9rZW5zGAUgASgDSAKIAQESGQoMdGltZWRfdG9rZW5zGAYgASgDSAOIAQESIAoTdGltZWRfb3V0cHV0X3Rva2VucxgHIAEoA0gEiAEBEh4KEXRpbWVkX2R1cmF0aW9uX21zGAggASgDSAWIAQESTQoMY2FwYWJpbGl0aWVzGAkgASgLMjcuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yUGVyaW9kQ2FwYWJpbGl0aWVzRHRvEkIKB2NsaWVudHMYCiADKAsyMS5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2RDbGllbnREdG9CFAoSX2NhY2hlX3JlYWRfdG9rZW5zQhUKE19jYWNoZV93cml0ZV90b2tlbnNCEAoOX291dHB1dF90b2tlbnNCDwoNX3RpbWVkX3Rva2Vuc0IWChRfdGltZWRfb3V0cHV0X3Rva2Vuc0IUChJfdGltZWRfZHVyYXRpb25fbXMifwohVG9rZW5Nb25pdG9yUGVyaW9kQ2FwYWJpbGl0aWVzRHRvEh0KEHRva2VuX2NvbXBvbmVudHMYASABKAhIAIgBARIXCgp0aHJvdWdocHV0GAIgASgISAGIAQFCEwoRX3Rva2VuX2NvbXBvbmVudHNCDQoLX3Rocm91Z2hwdXQiTwobVG9rZW5Nb25pdG9yUGVyaW9kQ2xpZW50RHRvEg4KBmNsaWVudBgBIAEoCRIOCgZ0b2tlbnMYAiABKAMSEAoIY29zdF91c2QYAyABKAEi2AIKElRva2VuVGhyb3VnaHB1dER0bxIfChdpbnB1dF90b2tlbnNfcGVyX21pbnV0ZRgBIAEoBRIgChhvdXRwdXRfdG9rZW5zX3Blcl9taW51dGUYAiABKAUSGgoSdG90YWxfaW5wdXRfdG9rZW5zGAMgASgDEhsKE3RvdGFsX291dHB1dF90b2tlbnMYBCABKAMSMAoMbGFzdF91cGRhdGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBInCh9yZWd1bGFyX2lucHV0X3Rva2Vuc19wZXJfbWludXRlGAYgASgFEiUKHWNhY2hlX2lucHV0X3Rva2Vuc19wZXJfbWludXRlGAcgASgFEiIKGnRvdGFsX3JlZ3VsYXJfaW5wdXRfdG9rZW5zGAggASgDEiAKGHRvdGFsX2NhY2hlX2lucHV0X3Rva2VucxgJIAEoAyKvAQoXVG9rZW5UaHJvdWdocHV0U25hcHNob3QSLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxpbnB1dF90b2tlbnMYAiABKAUSFQoNb3V0cHV0X3Rva2VucxgDIAEoBRIcChRyZWd1bGFyX2lucHV0X3Rva2VucxgEIAEoBRIaChJjYWNoZV9pbnB1dF90b2tlbnMYBSABKAUi4AEKLEhlcm9CYXR0bGVSZXBvcnRMYXRlc3RVbmxvY2tlZEFjaGlldmVtZW50RHRvEhUKDWNhbm9uaWNhbF9rZXkYASABKAkSEAoIbmFtZV9rZXkYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSMwoPdW5sb2NrZWRfYXRfdXRjGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5wcm9ncmVzc19hZnRlchgFIAEoBRIOCgZ0YXJnZXQYBiABKAUSFQoNcmV3YXJkX2Ftb3VudBgHIAEoAyK7AQopSGVyb0JhdHRsZVJlcG9ydFBlbmRpbmdBY2hpZXZlbWVudEhpbnREdG8SFQoNY2Fub25pY2FsX2tleRgBIAEoCRIQCghuYW1lX2tleRgCIAEoCRIRCglnb2FsX3R5cGUYAyABKAkSEAoIcHJvZ3Jlc3MYBCABKAUSDgoGdGFyZ2V0GAUgASgFEhcKD3JlbWFpbmluZ19jb3VudBgGIAEoBRIXCg9jb21wbGV0aW9uX3JhdGUYByABKAEivQIKJUhlcm9CYXR0bGVSZXBvcnRBY2hpZXZlbWVudFN1bW1hcnlEdG8SGAoQaGFzX2FyY2hpdmVfZGF0YRgBIAEoCBIXCg9jb21wbGV0ZWRfY291bnQYAiABKAUSEwoLdG90YWxfY291bnQYAyABKAUSFwoPY29tcGxldGlvbl9yYXRlGAQgASgBElsKD2xhdGVzdF91bmxvY2tlZBgFIAEoCzJCLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRMYXRlc3RVbmxvY2tlZEFjaGlldmVtZW50RHRvElYKDXBlbmRpbmdfaGludHMYBiADKAsyPy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UGVuZGluZ0FjaGlldmVtZW50SGludER0byL0AgojSGVyb0JhdHRsZVJlcG9ydEhpZ2hsaWdodFNlc3Npb25EdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRISCgV0aXRsZRgCIAEoCUgAiAEBEhkKDHNlc3Npb25fY29kZRgDIAEoCUgBiAEBEhkKDHNlc3Npb25fdHlwZRgEIAEoCUgCiAEBEhoKDXByb3Bvc2FsX25hbWUYBSABKAlIA4gBARIWCg5hY3Rpdml0eV9jb3VudBgGIAEoBRIiChpjb21wbGV0ZWRfYXNzaXN0YW5jZV9jb3VudBgHIAEoBRIfChdwcm9wb3NhbF9leGVjdXRlZF9jb3VudBgIIAEoBRI4ChRsYXN0X2FjdGl2aXR5X2F0X3V0YxgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCAoGX3RpdGxlQg8KDV9zZXNzaW9uX2NvZGVCDwoNX3Nlc3Npb25fdHlwZUIQCg5fcHJvcG9zYWxfbmFtZSKnAwoiSGVyb0JhdHRsZVJlcG9ydEFjdGl2aXR5U3VtbWFyeUR0bxIdChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYASABKAUSIgoaY2hhdF9zZXNzaW9uX2NyZWF0ZWRfY291bnQYAiABKAUSJgoecHJvcG9zYWxfc2Vzc2lvbl9jcmVhdGVkX2NvdW50GAMgASgFEhYKDnByb3Bvc2FsX2NvdW50GAQgASgFEiAKGHByb3Bvc2FsX2dlbmVyYXRlZF9jb3VudBgFIAEoBRIfChdwcm9wb3NhbF9leGVjdXRlZF9jb3VudBgGIAEoBRIfChdwcm9wb3NhbF9hcmNoaXZlZF9jb3VudBgHIAEoBRIiChphc3Npc3RhbmNlX2NvbXBsZXRlZF9jb3VudBgIIAEoBRIfChdhc3Npc3RhbmNlX2ZhaWxlZF9jb3VudBgJIAEoBRJVChJoaWdobGlnaHRfc2Vzc2lvbnMYCiADKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGlnaGxpZ2h0U2Vzc2lvbkR0byJGCiNIZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxIQCghwcmV2aW91cxgBIAEoAxINCgVkZWx0YRgCIAEoAyK8BQodSGVyb0JhdHRsZVJlcG9ydENvbXBhcmlzb25EdG8SGAoQaGFzX3ByZXZpb3VzX2RheRgBIAEoCBIaCg1wcmV2aW91c19kYXRlGAIgASgJSACIAQESVAoRYWN0aXZlX2hlcm9fY291bnQYAyABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJSCg9leGVjdXRpb25fY291bnQYBCABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJSCg90b29sX2NhbGxfY291bnQYBSABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJPCgx0b3RhbF90b2tlbnMYBiABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJYChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYByABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJRCg5wcm9wb3NhbF9jb3VudBgIIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElcKFGhhZ2lwb3dlcl9uZXRfY2hhbmdlGAkgASgLMjkuaGFnaWNvZGUucGxhdGZvcm0udjEuSGVyb0JhdHRsZVJlcG9ydENvbXBhcmlzb25NZXRyaWNEdG9CEAoOX3ByZXZpb3VzX2RhdGUixgEKG0hlcm9CYXR0bGVSZXBvcnRFeGVjdXRvckR0bxIVCg1leGVjdXRvcl90eXBlGAEgASgJEhIKCmhlcm9fY291bnQYAiABKAUSGQoRYWN0aXZlX2hlcm9fY291bnQYAyABKAUSFwoPZXhlY3V0aW9uX2NvdW50GAQgASgFEhcKD3Rvb2xfY2FsbF9jb3VudBgFIAEoBRIUCgx0b3RhbF90b2tlbnMYBiABKAMSGQoRdG90YWxfZHVyYXRpb25fbXMYByABKAMiuAEKIUhlcm9CYXR0bGVSZXBvcnRIYWdpcG93ZXJQb2ludER0bxI1ChFidWNrZXRfbWludXRlX3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHYmFsYW5jZRgCIAEoAxIVCg10b3RhbF9iYWxhbmNlGAMgASgDEiEKGWFjY3VtdWxhdGVkX3RvdGFsX2JhbGFuY2UYBCABKAMSEQoJaXNfZmlsbGVkGAUgASgIItwDChxIZXJvQmF0dGxlUmVwb3J0SGFnaXBvd2VyRHRvEjMKD3JhbmdlX3N0YXJ0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMQoNcmFuZ2VfZW5kX3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoOYnVja2V0X21pbnV0ZXMYAyABKAUSFwoPaGFzX2ZpbGxlZF9nYXBzGAQgASgIEhwKFGhhc19yZWNvcmRlZF9oaXN0b3J5GAUgASgIEh4KFmN1cnJlbnRfcHVibGljX2JhbGFuY2UYBiABKAMSHQoVY3VycmVudF90b3RhbF9iYWxhbmNlGAcgASgDEikKIWN1cnJlbnRfYWNjdW11bGF0ZWRfdG90YWxfYmFsYW5jZRgIIAEoAxISCgpuZXRfY2hhbmdlGAkgASgDEjcKE2xhc3RfdXBkYXRlZF9hdF91dGMYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEk4KDXB1YmxpY19zZXJpZXMYCyADKAsyNy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGFnaXBvd2VyUG9pbnREdG8iiQQKF0hlcm9CYXR0bGVSZXBvcnRIZXJvRHRvEg8KB2hlcm9faWQYASABKAkSEQoJaGVyb19uYW1lGAIgASgJEhYKCWhlcm9faWNvbhgDIAEoCUgAiAEBEhUKDWV4ZWN1dG9yX3R5cGUYBCABKAkSEgoFbW9kZWwYBSABKAlIAYgBARIYCgtkZXNjcmlwdGlvbhgGIAEoCUgCiAEBEgwKBHJhbmsYByABKAUSDgoGc3RhdHVzGAggASgJEg0KBWdyYWRlGAkgASgJEhQKDGJhdHRsZV9zY29yZRgKIAEoBRIXCg9leGVjdXRpb25fY291bnQYCyABKAUSFwoPdG9vbF9jYWxsX2NvdW50GAwgASgFEhQKDGlucHV0X3Rva2VucxgNIAEoAxIaChJjYWNoZV9pbnB1dF90b2tlbnMYDiABKAMSFQoNb3V0cHV0X3Rva2VucxgPIAEoAxIbChNjYWNoZV9vdXRwdXRfdG9rZW5zGBAgASgDEhQKDHRvdGFsX3Rva2VucxgRIAEoAxIZChF0b3RhbF9kdXJhdGlvbl9tcxgSIAEoAxI5ChVsYXN0X2NvbXBsZXRlZF9hdF91dGMYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9oZXJvX2ljb25CCAoGX21vZGVsQg4KDF9kZXNjcmlwdGlvbiKAAgoiSGVyb0JhdHRsZVJlcG9ydFByb2plY3RBY3Rpdml0eUR0bxISCgpwcm9qZWN0X2lkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIWCg5hY3Rpdml0eV9jb3VudBgDIAEoBRIdChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYBCABKAUSFgoOcHJvcG9zYWxfY291bnQYBSABKAUSIgoaYXNzaXN0YW5jZV9jb21wbGV0ZWRfY291bnQYBiABKAUSHwoXYXNzaXN0YW5jZV9mYWlsZWRfY291bnQYByABKAUSFgoOYWN0aXZpdHlfc2hhcmUYCCABKAFCBwoFX25hbWUi+gEKIUhlcm9CYXR0bGVSZXBvcnRQcm9qZWN0UHJvZmlsZUR0bxIQCghoYXNfZGF0YRgBIAEoCBIdChVwcm9qZWN0X2NyZWF0ZWRfY291bnQYAiABKAMSHQoVc2Vzc2lvbl9jcmVhdGVkX2NvdW50GAMgASgDEiAKGHByb3Bvc2FsX2dlbmVyYXRlZF9jb3VudBgEIAEoAxIfChdwcm9wb3NhbF9leGVjdXRlZF9jb3VudBgFIAEoAxITCgt0b2tlbl90b3RhbBgGIAEoAxItCglhc19vZl91dGMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIo0CChtIZXJvQmF0dGxlUmVwb3J0UHJvamVjdHNEdG8SGwoTdG90YWxfcHJvamVjdF9jb3VudBgBIAEoBRIcChRhY3RpdmVfcHJvamVjdF9jb3VudBgCIAEoBRIZChFuZXdfcHJvamVjdF9jb3VudBgDIAEoBRJOCgx0b3BfcHJvamVjdHMYBCADKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UHJvamVjdEFjdGl2aXR5RHRvEkgKB3Byb2ZpbGUYBSABKAsyNy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UHJvamVjdFByb2ZpbGVEdG8irQIKFkhlcm9CYXR0bGVSZXBvcnRNdnBEdG8SDwoHaGVyb19pZBgBIAEoCRIRCgloZXJvX25hbWUYAiABKAkSFgoJaGVyb19pY29uGAMgASgJSACIAQESFQoNZXhlY3V0b3JfdHlwZRgEIAEoCRISCgVtb2RlbBgFIAEoCUgBiAEBEgwKBHJhbmsYBiABKAUSFAoMYmF0dGxlX3Njb3JlGAcgASgFEg0KBWdyYWRlGAggASgJEhcKD2V4ZWN1dGlvbl9jb3VudBgJIAEoBRIXCg90b29sX2NhbGxfY291bnQYCiABKAUSFAoMdG90YWxfdG9rZW5zGAsgASgDEhkKEXRvdGFsX2R1cmF0aW9uX21zGAwgASgDQgwKCl9oZXJvX2ljb25CCAoGX21vZGVsItkCChpIZXJvQmF0dGxlUmVwb3J0U3VtbWFyeUR0bxIYChB0b3RhbF9oZXJvX2NvdW50GAEgASgFEhkKEWFjdGl2ZV9oZXJvX2NvdW50GAIgASgFEhoKEnRvdGFsX2JhdHRsZV9zY29yZRgDIAEoBRIYChB0b3RhbF90b29sX2NhbGxzGAQgASgFEhQKDHRvdGFsX3Rva2VucxgFIAEoAxIZChF0b3RhbF9kdXJhdGlvbl9tcxgGIAEoAxIUCgxpbnB1dF90b2tlbnMYByABKAMSGgoSY2FjaGVfaW5wdXRfdG9rZW5zGAggASgDEhUKDW91dHB1dF90b2tlbnMYCSABKAMSGwoTY2FjaGVfb3V0cHV0X3Rva2VucxgKIAEoAxI5CgNtdnAYCyABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0TXZwRHRvIqYGChNIZXJvQmF0dGxlUmVwb3J0RHRvEhMKC3JlcG9ydF9kYXRlGAEgASgJEjQKEGdlbmVyYXRlZF9hdF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhQKDHRpbWVfem9uZV9pZBgDIAEoCRI1ChFjb3ZlcmVkX3N0YXJ0X3V0YxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoPY292ZXJlZF9lbmRfdXRjGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJFCgloYWdpcG93ZXIYBiABKAsyMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGFnaXBvd2VyRHRvEkEKB3N1bW1hcnkYByABKAsyMC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0U3VtbWFyeUR0bxJRCgxhY2hpZXZlbWVudHMYCCABKAsyOy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0QWNoaWV2ZW1lbnRTdW1tYXJ5RHRvElIKEGFjdGl2aXR5X3N1bW1hcnkYCSABKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0QWN0aXZpdHlTdW1tYXJ5RHRvEkcKCmNvbXBhcmlzb24YCiABKAsyMy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbkR0bxJECglleGVjdXRvcnMYCyADKAsyMS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0RXhlY3V0b3JEdG8SQwoIcHJvamVjdHMYDCABKAsyMS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UHJvamVjdHNEdG8SPQoGaGVyb2VzGA0gAygLMi0uaGFnaWNvZGUucGxhdGZvcm0udjEuSGVyb0JhdHRsZVJlcG9ydEhlcm9EdG8itQEKHkhhZ2lwb3dlclB1YmxpY0hpc3RvcnlQb2ludER0bxI1ChFidWNrZXRfbWludXRlX3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHYmFsYW5jZRgCIAEoAxIVCg10b3RhbF9iYWxhbmNlGAMgASgDEiEKGWFjY3VtdWxhdGVkX3RvdGFsX2JhbGFuY2UYBCABKAMSEQoJaXNfZmlsbGVkGAUgASgIItcBCh5IYWdpcG93ZXJTdGF0aXN0aWNzTWV0YWRhdGFEdG8SMwoPcmFuZ2Vfc3RhcnRfdXRjGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg1yYW5nZV9lbmRfdXRjGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5idWNrZXRfbWludXRlcxgDIAEoBRIXCg9oYXNfZmlsbGVkX2dhcHMYBCABKAgSHAoUaGFzX3JlY29yZGVkX2hpc3RvcnkYBSABKAgi1gEKHUhhZ2lwb3dlclN0YXRpc3RpY3NTdW1tYXJ5RHRvEh4KFmN1cnJlbnRfcHVibGljX2JhbGFuY2UYASABKAMSHQoVY3VycmVudF90b3RhbF9iYWxhbmNlGAIgASgDEikKIWN1cnJlbnRfYWNjdW11bGF0ZWRfdG90YWxfYmFsYW5jZRgDIAEoAxISCgpuZXRfY2hhbmdlGAQgASgDEjcKE2xhc3RfdXBkYXRlZF9hdF91dGMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIogCChxIYWdpcG93ZXJTdGF0aXN0aWNzUmVwb3J0RHRvEg0KBXJhbmdlGAEgASgJEkYKCG1ldGFkYXRhGAIgASgLMjQuaGFnaWNvZGUucGxhdGZvcm0udjEuSGFnaXBvd2VyU3RhdGlzdGljc01ldGFkYXRhRHRvEkQKB3N1bW1hcnkYAyABKAsyMy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJTdGF0aXN0aWNzU3VtbWFyeUR0bxJLCg1wdWJsaWNfc2VyaWVzGAQgAygLMjQuaGFnaWNvZGUucGxhdGZvcm0udjEuSGFnaXBvd2VyUHVibGljSGlzdG9yeVBvaW50RHRvIrsDChpIaXN0b3JpY2FsVGltZWxpbmVFdmVudER0bxIQCghldmVudF9pZBgBIAEoCRIzCg9vY2N1cnJlZF9hdF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmNyZWF0ZWRfYXRfdXRjGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtlbnRpdHlfdHlwZRgEIAEoCRIRCgllbnRpdHlfaWQYBSABKAkSFwoKcHJvamVjdF9pZBgGIAEoCUgAiAEBEhcKCnNlc3Npb25faWQYByABKAlIAYgBARIMCgRjb2RlGAggASgJEigKCG1ldGFkYXRhGAkgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhMKBnNvdXJjZRgKIAEoCUgCiAEBEhUKCGFjdG9yX2lkGAsgASgJSAOIAQESGwoOY29ycmVsYXRpb25faWQYDCABKAlIBIgBAUINCgtfcHJvamVjdF9pZEINCgtfc2Vzc2lvbl9pZEIJCgdfc291cmNlQgsKCV9hY3Rvcl9pZEIRCg9fY29ycmVsYXRpb25faWQiiAEKH0hpc3RvcmljYWxUaW1lbGluZVBhZ2luYXRpb25EdG8SEQoJcGFnZV9zaXplGAEgASgFEhYKDnJldHVybmVkX2NvdW50GAIgASgFEhAKCGhhc19tb3JlGAMgASgIEhgKC25leHRfY3Vyc29yGAQgASgJSACIAQFCDgoMX25leHRfY3Vyc29yIrABCiJIaXN0b3JpY2FsVGltZWxpbmVRdWVyeVJlc3BvbnNlRHRvEj8KBWl0ZW1zGAEgAygLMjAuaGFnaWNvZGUucGxhdGZvcm0udjEuSGlzdG9yaWNhbFRpbWVsaW5lRXZlbnREdG8SSQoKcGFnaW5hdGlvbhgCIAEoCzI1LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhpc3RvcmljYWxUaW1lbGluZVBhZ2luYXRpb25EdG8imwMKIEhpc3RvcmljYWxUaW1lbGluZUV2ZW50U2FtcGxlRHRvEhMKC2VudGl0eV90eXBlGAEgASgJEgwKBGNvZGUYAiABKAkSGAoQc2FtcGxlX2VudGl0eV9pZBgDIAEoCRIeChFzYW1wbGVfcHJvamVjdF9pZBgEIAEoCUgAiAEBEh4KEXNhbXBsZV9zZXNzaW9uX2lkGAUgASgJSAGIAQESGgoNc2FtcGxlX3NvdXJjZRgGIAEoCUgCiAEBEhwKD3NhbXBsZV9hY3Rvcl9pZBgHIAEoCUgDiAEBEiIKFXNhbXBsZV9jb3JyZWxhdGlvbl9pZBgIIAEoCUgEiAEBEjAKEG1ldGFkYXRhX2V4YW1wbGUYCSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVCFAoSX3NhbXBsZV9wcm9qZWN0X2lkQhQKEl9zYW1wbGVfc2Vzc2lvbl9pZEIQCg5fc2FtcGxlX3NvdXJjZUISChBfc2FtcGxlX2FjdG9yX2lkQhgKFl9zYW1wbGVfY29ycmVsYXRpb25faWQibQokSGlzdG9yaWNhbFRpbWVsaW5lU2FtcGxlc1Jlc3BvbnNlRHRvEkUKBWl0ZW1zGAEgAygLMjYuaGFnaWNvZGUucGxhdGZvcm0udjEuSGlzdG9yaWNhbFRpbWVsaW5lRXZlbnRTYW1wbGVEdG8y1QgKEVN0YXRpc3RpY3NTZXJ2aWNlEnQKEUdldEFnZ3JlZ2F0ZWREYXRhEi4uaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0QWdncmVnYXRlZERhdGFSZXF1ZXN0Gi8uaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0QWdncmVnYXRlZERhdGFSZXNwb25zZRJ9ChRHZXRUb2tlbk1vbml0b3JVc2FnZRIxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuTW9uaXRvclVzYWdlUmVxdWVzdBoyLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuTW9uaXRvclVzYWdlUmVzcG9uc2USlQEKHEdldFRva2VuVGhyb3VnaHB1dFN0YXRpc3RpY3MSOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVxdWVzdBo6LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuVGhyb3VnaHB1dFN0YXRpc3RpY3NSZXNwb25zZRKMAQoZR2V0VG9rZW5UaHJvdWdocHV0SGlzdG9yeRI2LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuVGhyb3VnaHB1dEhpc3RvcnlSZXF1ZXN0GjcuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5UaHJvdWdocHV0SGlzdG9yeVJlc3BvbnNlEnoKE0dldEhlcm9CYXR0bGVSZXBvcnQSMC5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIZXJvQmF0dGxlUmVwb3J0UmVxdWVzdBoxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhlcm9CYXR0bGVSZXBvcnRSZXNwb25zZRKMAQoZR2V0SGFnaXBvd2VySGlzdG9yeVJlcG9ydBI2LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXF1ZXN0GjcuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGFnaXBvd2VySGlzdG9yeVJlcG9ydFJlc3BvbnNlEoABChVHZXRIaXN0b3JpY2FsVGltZWxpbmUSMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIaXN0b3JpY2FsVGltZWxpbmVSZXF1ZXN0GjMuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGlzdG9yaWNhbFRpbWVsaW5lUmVzcG9uc2USlQEKHEdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXMSOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIaXN0b3JpY2FsVGltZWxpbmVTYW1wbGVzUmVxdWVzdBo6LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXNwb25zZUIqqgInUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLlBsYXRmb3JtLlYxYgZwcm90bzM",[Ve,Ee,cr]),Ad=G(Lr,1),pd=Ne(Lr,0),ae=ee("CiJoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25zLnByb3RvEhNoYWdpY29kZS5zZXNzaW9uLnYxIlUKFk9wZW5DaGF0U2Vzc2lvblJlcXVlc3QSOwoEYm9keRgBIAEoCzItLmhhZ2ljb2RlLnNlc3Npb24udjEuQ3JlYXRlQ2hhdFNlc3Npb25SZXF1ZXN0IlIKF09wZW5DaGF0U2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIk0KEk9wZW5TZXNzaW9uUmVxdWVzdBI3CgRib2R5GAEgASgLMikuaGFnaWNvZGUuc2Vzc2lvbi52MS5DcmVhdGVTZXNzaW9uUmVxdWVzdCJOChNPcGVuU2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIicKEUdldFNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiTQoSR2V0U2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvImEKElNhdmVTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjcKBGJvZHkYAiABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlVwZGF0ZVNlc3Npb25SZXF1ZXN0Ik4KE1NhdmVTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8izAEKE0xpc3RTZXNzaW9uc1JlcXVlc3QSEQoEdHlwZRgBIAEoCUgAiAEBEhgKC2FjdGl2ZV9vbmx5GAIgASgISAGIAQESHQoQaW5jbHVkZV9hcmNoaXZlZBgDIAEoCEgCiAEBEhcKCnByb2plY3RfaWQYBCABKAlIA4gBARITCgtwcm9qZWN0X2lkcxgFIAMoCUIHCgVfdHlwZUIOCgxfYWN0aXZlX29ubHlCEwoRX2luY2x1ZGVfYXJjaGl2ZWRCDQoLX3Byb2plY3RfaWQiUwoUTGlzdFNlc3Npb25zUmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTGlzdFJlc3BvbnNlRHRvIkAKFERlbGV0ZVNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSFAoMZGVsZXRlX2ZpbGVzGAIgASgIIlYKFURlbGV0ZVNlc3Npb25SZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byIvChlBcmNoaXZlQ2hhdFNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiWwoaQXJjaGl2ZUNoYXRTZXNzaW9uUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5TaW1wbGVNZXNzYWdlUmVzcG9uc2VEdG8idAoZU3dpdGNoU3RvcHBlZEFnZW50UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEkMKBGJvZHkYAiABKAsyNS5oYWdpY29kZS5zZXNzaW9uLnYxLlN3aXRjaFN0b3BwZWRTZXNzaW9uQWdlbnRSZXF1ZXN0IlUKGlN3aXRjaFN0b3BwZWRBZ2VudFJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIl4KG1N0YXJ0SGFnaVRhc2tTZXNzaW9uUmVxdWVzdBI/CgRib2R5GAEgASgLMjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5DcmVhdGVIYWdpVGFza1Nlc3Npb25SZXF1ZXN0IlcKHFN0YXJ0SGFnaVRhc2tTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iZAohU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXF1ZXN0Ej8KBGJvZHkYASABKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLkNyZWF0ZUhhZ2lUYXNrU2Vzc2lvblJlcXVlc3QiXQoiU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXNwb25zZRI3CgZyZXN1bHQYASABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0byLOAwoSQ2hhdEhlcm9TdW1tYXJ5RHRvEg8KB2hlcm9faWQYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhEKBGljb24YBCABKAlIAYgBARIVCg1leGVjdXRvcl90eXBlGAUgASgJEhkKDGFnZW50X2NsaV9pZBgGIAEoCUgCiAEBEhsKDmFnZW50X2NsaV9uYW1lGAcgASgJSAOIAQESGwoOYWdlbnRfY2xpX2ljb24YCCABKAlIBIgBARIVCghtb2RlbF9pZBgJIAEoCUgFiAEBEhcKCm1vZGVsX25hbWUYCiABKAlIBogBARIXCgptb2RlbF9pY29uGAsgASgJSAeIAQESIgoVc2Vjb25kYXJ5X21vZGVsX2xhYmVsGAwgASgJSAiIAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQg8KDV9hZ2VudF9jbGlfaWRCEQoPX2FnZW50X2NsaV9uYW1lQhEKD19hZ2VudF9jbGlfaWNvbkILCglfbW9kZWxfaWRCDQoLX21vZGVsX25hbWVCDQoLX21vZGVsX2ljb25CGAoWX3NlY29uZGFyeV9tb2RlbF9sYWJlbCI4ChRPcGVuU3BlY1Rhc2tQcm9ncmVzcxIRCgljb21wbGV0ZWQYASABKAUSDQoFdG90YWwYAiABKAUi/gEKEE9wZW5TcGVjRmlsZUluZm8SEQoJZmlsZV9uYW1lGAEgASgJEhUKDXJlbGF0aXZlX3BhdGgYAiABKAkSDgoGZXhpc3RzGAMgASgIEhEKCWZpbGVfdHlwZRgEIAEoCRITCgtpc19yZXF1aXJlZBgFIAEoCBITCgtpc19hcmNoaXZlZBgGIAEoCBIxCg1hcmNoaXZlZF9kYXRlGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJACg10YXNrX3Byb2dyZXNzGAggASgLMikuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcGVuU3BlY1Rhc2tQcm9ncmVzcyJcChFPcGVuU3BlY0ZpbGVzSW5mbxIRCgliYXNlX3BhdGgYASABKAkSNAoFZmlsZXMYAiADKAsyJS5oYWdpY29kZS5zZXNzaW9uLnYxLk9wZW5TcGVjRmlsZUluZm8izAEKFlF1ZXVlTWVzc2FnZVN1bW1hcnlEdG8SDQoFaW5kZXgYASABKAUSDAoEbW9kZRgCIAEoBRItCglxdWV1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvbnRlbnRfcHJldmlldxgEIAEoCRIhChRleGVjdXRpb25fbWVzc2FnZV9pZBgFIAEoCUgAiAEBEhEKCWNhbl9zdGVlchgGIAEoCEIXChVfZXhlY3V0aW9uX21lc3NhZ2VfaWQigAEKFlNlc3Npb25Ob3RpZmljYXRpb25EdG8SDAoEa2luZBgBIAEoCRIvCgtvYnNlcnZlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoHcGF5bG9hZBgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSLtAQoWU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIaCg1wcm9tcHRfdG9rZW5zGAEgASgFSACIAQESIQoUY2FjaGVkX3Byb21wdF90b2tlbnMYAiABKAVIAYgBARIeChFjb21wbGV0aW9uX3Rva2VucxgDIAEoBUgCiAEBEjMKD2xhc3RfdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3Byb21wdF90b2tlbnNCFwoVX2NhY2hlZF9wcm9tcHRfdG9rZW5zQhQKEl9jb21wbGV0aW9uX3Rva2VucyJfChRTdGFnZUV4ZWN1dG9ySW5mb0R0bxIVCg1wcm92aWRlcl90eXBlGAEgASgJEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAivAIKFVN0YWdlSGVyb1NlbGVjdGlvbkR0bxIRCglzdGFnZV9rZXkYASABKAkSEgoKc2NyaXB0X2tleRgCIAEoCRIVCg1zY2VuYXJpb19uYW1lGAMgASgJEhQKB2hlcm9faWQYBCABKAlIAIgBARIWCgloZXJvX25hbWUYBSABKAlIAYgBARIWCgloZXJvX2ljb24YBiABKAlIAogBARIVCg1leGVjdXRvcl90eXBlGAcgASgJEhUKDXVzZWRfZmFsbGJhY2sYCCABKAgSGAoQc2VsZWN0aW9uX3NvdXJjZRgJIAEoCRIvCgtzZWxlY3RlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2hlcm9faWRCDAoKX2hlcm9fbmFtZUIMCgpfaGVyb19pY29uIqULChJTZXNzaW9uUmVzcG9uc2VEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhwKD2NoaWVmX2NvbXBsYWludBgEIAEoCUgBiAEBEgwKBGNvZGUYBSABKAUSDAoEdHlwZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSEQoJaXNfYWN0aXZlGAggASgIEjIKDmxhc3RfYWN0aXZlX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwcm9qZWN0X2lkGAogASgJEhQKDHByb2plY3RfbmFtZRgLIAEoCRIUCgxwcm9qZWN0X3BhdGgYDCABKAkSGgoNcHJvcG9zYWxfbmFtZRgNIAEoCUgCiAEBEj8KD29wZW5fc3BlY19maWxlcxgOIAEoCzImLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlblNwZWNGaWxlc0luZm8SHQoVcGVuZGluZ19tZXNzYWdlX2NvdW50GA8gASgFEkMKDnF1ZXVlX21lc3NhZ2VzGBAgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZU1lc3NhZ2VTdW1tYXJ5RHRvEh4KEXdvcmtpbmdfZGlyZWN0b3J5GBEgASgJSAOIAQESFQoIbWV0YWRhdGEYEiABKAlIBIgBARIfChJjaGF0X2V4ZWN1dG9yX3R5cGUYEyABKAlIBYgBARI6CgljaGF0X2hlcm8YFCABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLkNoYXRIZXJvU3VtbWFyeUR0bxJZChJzdGFnZV9leGVjdXRvcl9tYXAYFSADKAsyPS5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0by5TdGFnZUV4ZWN1dG9yTWFwRW50cnkSZAoYc3RhZ2VfaGVyb19zZWxlY3Rpb25fbWFwGBYgAygLMkIuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8uU3RhZ2VIZXJvU2VsZWN0aW9uTWFwRW50cnkSIAoTcnVudGltZV9tb2RlbF9sYWJlbBgXIAEoCUgGiAEBEjkKFXByb2Nlc3Npbmdfc3RhcnRlZF9hdBgYIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQgoNc2Vzc2lvbl91c2FnZRgZIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIcCg9wcmV2aW91c19zdGF0dXMYGiABKAlIB4gBARJCCg1ub3RpZmljYXRpb25zGBsgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTm90aWZpY2F0aW9uRHRvGmIKFVN0YWdlRXhlY3V0b3JNYXBFbnRyeRILCgNrZXkYASABKAkSOAoFdmFsdWUYAiABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlN0YWdlRXhlY3V0b3JJbmZvRHRvOgI4ARpoChpTdGFnZUhlcm9TZWxlY3Rpb25NYXBFbnRyeRILCgNrZXkYASABKAkSOQoFdmFsdWUYAiABKAsyKi5oYWdpY29kZS5zZXNzaW9uLnYxLlN0YWdlSGVyb1NlbGVjdGlvbkR0bzoCOAFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9jaGllZl9jb21wbGFpbnRCEAoOX3Byb3Bvc2FsX25hbWVCFAoSX3dvcmtpbmdfZGlyZWN0b3J5QgsKCV9tZXRhZGF0YUIVChNfY2hhdF9leGVjdXRvcl90eXBlQhYKFF9ydW50aW1lX21vZGVsX2xhYmVsQhIKEF9wcmV2aW91c19zdGF0dXMieQoYQ3JlYXRlQ2hhdFNlc3Npb25SZXF1ZXN0Eg0KBXRpdGxlGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSGAoQaXNfZGVmYXVsdF90aXRsZRgDIAEoCBIUCgdoZXJvX2lkGAQgASgJSACIAQFCCgoIX2hlcm9faWQivgIKEFBhdGhSZWZlcmVuY2VEdG8SCgoCaWQYASABKAkSDgoGc291cmNlGAIgASgJEhUKDWRpc3BsYXlfdmFsdWUYAyABKAkSFQoNcGh5c2ljYWxfcGF0aBgEIAEoCRINCgVzdGFydBgFIAEoBRILCgNlbmQYBiABKAUSFgoJZW50aXR5X2lkGAcgASgJSACIAQESFwoKcHJvamVjdF9pZBgIIAEoCUgBiAEBEkUKCG1ldGFkYXRhGAkgAygLMjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5QYXRoUmVmZXJlbmNlRHRvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9lbnRpdHlfaWRCDQoLX3Byb2plY3RfaWQi+wEKGVNlc3Npb25NZXNzYWdlSW1hZ2VSZWZEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRIQCghpbWFnZV9pZBgCIAEoCRIWCg5oYWdpX2ltYWdlX3VybBgDIAEoCRIYCgtwcmV2aWV3X3VybBgEIAEoCUgAiAEBEhYKCWZpbGVfbmFtZRgFIAEoCUgBiAEBEhkKDGNvbnRlbnRfdHlwZRgGIAEoCUgCiAEBEhYKCWZpbGVfc2l6ZRgHIAEoA0gDiAEBQg4KDF9wcmV2aWV3X3VybEIMCgpfZmlsZV9uYW1lQg8KDV9jb250ZW50X3R5cGVCDAoKX2ZpbGVfc2l6ZSJ+ChlUYXJnZXRQcm9qZWN0UmVmZXJlbmNlRHRvEhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhgKC2FjY2Vzc190eXBlGAQgASgJSACIAQFCDgoMX2FjY2Vzc190eXBlIocBChNUYXJnZXRSZXBvc2l0b3J5RHRvEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIZCgxkaXNwbGF5X25hbWUYAyABKAlIAIgBARIYCgthY2Nlc3NfdHlwZRgEIAEoCUgBiAEBQg8KDV9kaXNwbGF5X25hbWVCDgoMX2FjY2Vzc190eXBlIj0KGFRhcmdldFJlcG9zaXRvcnlTY29wZUR0bxIMCgRtb2RlGAEgASgJEhMKC2FjY2Vzc190eXBlGAIgASgJIpUFChRDcmVhdGVTZXNzaW9uUmVxdWVzdBINCgV0aXRsZRgBIAEoCRIcCg9jaGllZl9jb21wbGFpbnQYAiABKAlIAIgBARIlChhvcmlnaW5hbF9jaGllZl9jb21wbGFpbnQYAyABKAlIAYgBARJIChBkcmFmdF9pbWFnZV9yZWZzGAQgAygLMi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTWVzc2FnZUltYWdlUmVmRHRvEhEKBHR5cGUYBSABKAlIAogBARISCgpwcm9qZWN0X2lkGAYgASgJEkUKE3RhcmdldF9yZXBvc2l0b3JpZXMYByADKAsyKC5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFJlcG9zaXRvcnlEdG8STgoXdGFyZ2V0X3JlcG9zaXRvcnlfc2NvcGUYCCABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFJlcG9zaXRvcnlTY29wZUR0bxJHCg90YXJnZXRfcHJvamVjdHMYCSADKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFByb2plY3RSZWZlcmVuY2VEdG8SPgoPcGF0aF9yZWZlcmVuY2VzGAogAygLMiUuaGFnaWNvZGUuc2Vzc2lvbi52MS5QYXRoUmVmZXJlbmNlRHRvEhgKEGlzX2RlZmF1bHRfdGl0bGUYCyABKAgSJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgMIAEoCUgDiAEBQhIKEF9jaGllZl9jb21wbGFpbnRCGwoZX29yaWdpbmFsX2NoaWVmX2NvbXBsYWludEIHCgVfdHlwZUIcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZSKTAQoUVXBkYXRlU2Vzc2lvblJlcXVlc3QSDQoFdGl0bGUYASABKAkSGAoLZGVzY3JpcHRpb24YAiABKAlIAIgBARITCgZzdGF0dXMYAyABKAlIAYgBARIVCghtZXRhZGF0YRgEIAEoCUgCiAEBQg4KDF9kZXNjcmlwdGlvbkIJCgdfc3RhdHVzQgsKCV9tZXRhZGF0YSJTChZTZXNzaW9uTGlzdFJlc3BvbnNlRHRvEjkKCHNlc3Npb25zGAEgAygLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iKwoYU2ltcGxlTWVzc2FnZVJlc3BvbnNlRHRvEg8KB21lc3NhZ2UYASABKAkiMwogU3dpdGNoU3RvcHBlZFNlc3Npb25BZ2VudFJlcXVlc3QSDwoHaGVyb19pZBgBIAEoCSLrCAocQ3JlYXRlSGFnaVRhc2tTZXNzaW9uUmVxdWVzdBINCgV0aXRsZRgBIAEoCRIYChBpc19kZWZhdWx0X3RpdGxlGAIgASgIEhIKCnByb2plY3RfaWQYAyABKAkSFgoJcHJvbXB0X2lkGAQgASgJSACIAQESFAoHbWVzc2FnZRgFIAEoCUgBiAEBEkgKEGRyYWZ0X2ltYWdlX3JlZnMYBiADKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25NZXNzYWdlSW1hZ2VSZWZEdG8SHAoPcmVwb3NpdG9yeV9wYXRoGAcgASgJSAKIAQESGAoLdGFyZ2V0X3R5cGUYCCABKAlIA4gBARIVCgh2YXVsdF9pZBgJIAEoCUgEiAEBEhwKD291dHB1dF92YXVsdF9pZBgKIAEoCUgFiAEBEhsKE3JlZmVyZW5jZV92YXVsdF9pZHMYCyADKAkSGgoSZWRpdGFibGVfdmF1bHRfaWRzGAwgAygJEkcKD3RhcmdldF9wcm9qZWN0cxgNIAMoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuVGFyZ2V0UHJvamVjdFJlZmVyZW5jZUR0bxIfChJyZXNlYXJjaF9kaXJlY3Rpb24YDiABKAlIBogBARIbCg5wcmVzZXRfdGFza19pZBgPIAEoCUgHiAEBEh8KEnByZXNldF90YXNrX2xvY2FsZRgQIAEoCUgIiAEBEjEKEXByZXNldF90YXNrX2lucHV0GBEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhcKD3JlcG9zaXRvcnlfdXJscxgSIAMoCRITCgtwcm9qZWN0X2lkcxgTIAMoCRIRCgluZWVkX3B1c2gYFCABKAgSJAoXcHVsbF9yZWJhc2VfYmVmb3JlX3B1c2gYFSABKAhICYgBARIfChJ0YXJnZXRfYnJhbmNoX21vZGUYFiABKAlICogBARIfChJ0YXJnZXRfYnJhbmNoX25hbWUYFyABKAlIC4gBARIXCgpzY3JpcHRfa2V5GBggASgJSAyIAQESFAoHaGVyb19pZBgZIAEoCUgNiAEBEiAKE2hlcm9fc2VsZWN0aW9uX21vZGUYGiABKAlIDogBAUIMCgpfcHJvbXB0X2lkQgoKCF9tZXNzYWdlQhIKEF9yZXBvc2l0b3J5X3BhdGhCDgoMX3RhcmdldF90eXBlQgsKCV92YXVsdF9pZEISChBfb3V0cHV0X3ZhdWx0X2lkQhUKE19yZXNlYXJjaF9kaXJlY3Rpb25CEQoPX3ByZXNldF90YXNrX2lkQhUKE19wcmVzZXRfdGFza19sb2NhbGVCGgoYX3B1bGxfcmViYXNlX2JlZm9yZV9wdXNoQhUKE190YXJnZXRfYnJhbmNoX21vZGVCFQoTX3RhcmdldF9icmFuY2hfbmFtZUINCgtfc2NyaXB0X2tleUIKCghfaGVyb19pZEIWChRfaGVyb19zZWxlY3Rpb25fbW9kZTLqCAoPU2Vzc2lvbnNTZXJ2aWNlEmwKD09wZW5DaGF0U2Vzc2lvbhIrLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlbkNoYXRTZXNzaW9uUmVxdWVzdBosLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlbkNoYXRTZXNzaW9uUmVzcG9uc2USYAoLT3BlblNlc3Npb24SJy5oYWdpY29kZS5zZXNzaW9uLnYxLk9wZW5TZXNzaW9uUmVxdWVzdBooLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlblNlc3Npb25SZXNwb25zZRJdCgpHZXRTZXNzaW9uEiYuaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uUmVxdWVzdBonLmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0U2Vzc2lvblJlc3BvbnNlEmAKC1NhdmVTZXNzaW9uEicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TYXZlU2Vzc2lvblJlcXVlc3QaKC5oYWdpY29kZS5zZXNzaW9uLnYxLlNhdmVTZXNzaW9uUmVzcG9uc2USYwoMTGlzdFNlc3Npb25zEiguaGFnaWNvZGUuc2Vzc2lvbi52MS5MaXN0U2Vzc2lvbnNSZXF1ZXN0GikuaGFnaWNvZGUuc2Vzc2lvbi52MS5MaXN0U2Vzc2lvbnNSZXNwb25zZRJmCg1EZWxldGVTZXNzaW9uEikuaGFnaWNvZGUuc2Vzc2lvbi52MS5EZWxldGVTZXNzaW9uUmVxdWVzdBoqLmhhZ2ljb2RlLnNlc3Npb24udjEuRGVsZXRlU2Vzc2lvblJlc3BvbnNlEnUKEkFyY2hpdmVDaGF0U2Vzc2lvbhIuLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZUNoYXRTZXNzaW9uUmVxdWVzdBovLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZUNoYXRTZXNzaW9uUmVzcG9uc2USdQoSU3dpdGNoU3RvcHBlZEFnZW50Ei4uaGFnaWNvZGUuc2Vzc2lvbi52MS5Td2l0Y2hTdG9wcGVkQWdlbnRSZXF1ZXN0Gi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5Td2l0Y2hTdG9wcGVkQWdlbnRSZXNwb25zZRJ7ChRTdGFydEhhZ2lUYXNrU2Vzc2lvbhIwLmhhZ2ljb2RlLnNlc3Npb24udjEuU3RhcnRIYWdpVGFza1Nlc3Npb25SZXF1ZXN0GjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGFydEhhZ2lUYXNrU2Vzc2lvblJlc3BvbnNlEo0BChpTdGFydExlZ2FjeUhhZ2lUYXNrU2Vzc2lvbhI2LmhhZ2ljb2RlLnNlc3Npb24udjEuU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXF1ZXN0GjcuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGFydExlZ2FjeUhhZ2lUYXNrU2Vzc2lvblJlc3BvbnNlQimqAiZQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuU2Vzc2lvbi5WMWIGcHJvdG8z",[Ve,Ee]),Zd=G(ae,1),Rd=G(ae,3),fd=G(ae,5),Ed=G(ae,7),Vd=G(ae,9),Gd=G(ae,11),Nd=G(ae,13),Wd=G(ae,17),Sd=G(ae,30),vd=G(ae,36),Xd=G(ae,37),Yd=G(ae,41),Id=Ne(ae,0),bt=ee("CitoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25fbWVzc2FnaW5nLnByb3RvEhNoYWdpY29kZS5zZXNzaW9uLnYxIr0BChlHZXRTZXNzaW9uTWVzc2FnZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSEQoEcGFnZRgCIAEoBUgAiAEBEhYKCXBhZ2Vfc2l6ZRgDIAEoBUgBiAEBEhoKDWhpc3Rvcnlfc2NvcGUYBCABKAlIAogBARISCgVvcmRlchgFIAEoCUgDiAEBQgcKBV9wYWdlQgwKCl9wYWdlX3NpemVCEAoOX2hpc3Rvcnlfc2NvcGVCCAoGX29yZGVyIlkKGkdldFNlc3Npb25NZXNzYWdlc1Jlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZUxpc3RSZXNwb25zZUR0byIqChRDYW5jZWxTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIlYKFUNhbmNlbFNlc3Npb25SZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLkNhbmNlbFNlc3Npb25SZXNwb25zZUR0byI3CiFHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSJeCiJHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1Jlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvY2Vzc2luZ1N0YXR1c0R0byJGChtDYW5jZWxQZW5kaW5nTWVzc2FnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgtxdWV1ZV9pbmRleBgCIAEoBSJcChxDYW5jZWxQZW5kaW5nTWVzc2FnZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsUGVuZGluZ01lc3NhZ2VEdG8iZAoTU3RlZXJTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjkKBGJvZHkYAiABKAsyKy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25TdGVlclJlcXVlc3REdG8iVAoUU3RlZXJTZXNzaW9uUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uU3RlZXJSZXNwb25zZUR0byKFAQoZU3RlZXJRdWV1ZWRNZXNzYWdlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEhMKC3F1ZXVlX2luZGV4GAIgASgFEj8KBGJvZHkYAyABKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLlF1ZXVlZE1lc3NhZ2VTdGVlclJlcXVlc3REdG8iYAoaU3RlZXJRdWV1ZWRNZXNzYWdlUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZWRNZXNzYWdlU3RlZXJSZXNwb25zZUR0byJmChlQb3N0U2Vzc2lvbk1lc3NhZ2VSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSNQoEYm9keRgCIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdE1lc3NhZ2VSZXF1ZXN0IlkKGlBvc3RTZXNzaW9uTWVzc2FnZVJlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdE1lc3NhZ2VSZXNwb25zZUR0byJgCipHZXRDb252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgZsb2NhbGUYAiABKAlIAIgBAUIJCgdfbG9jYWxlIn8KK0dldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0UmVzcG9uc2USUAoGcmVzdWx0GAEgASgLMkAuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlc3BvbnNlRHRvInEKH1N1Ym1pdFNlc3Npb25Bbm5vdGF0aW9uc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI6CgRib2R5GAIgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Bbm5vdGF0aW9uU3VibWlzc2lvbkR0byJoCiBTdWJtaXRTZXNzaW9uQW5ub3RhdGlvbnNSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5zZXNzaW9uLnYxLkFubm90YXRpb25TdWJtaXNzaW9uUmVzcG9uc2VEdG8i+gEKFk1lc3NhZ2VIZXJvU25hcHNob3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBEhYKCWhlcm9fbmFtZRgCIAEoCUgBiAEBEhYKCWhlcm9faWNvbhgDIAEoCUgCiAEBEhoKDWV4ZWN1dG9yX3R5cGUYBCABKAlIA4gBARITCgZzb3VyY2UYBSABKAlIBIgBARIWCglzdGFnZV9rZXkYBiABKAlIBYgBAUIKCghfaGVyb19pZEIMCgpfaGVyb19uYW1lQgwKCl9oZXJvX2ljb25CEAoOX2V4ZWN1dG9yX3R5cGVCCQoHX3NvdXJjZUIMCgpfc3RhZ2Vfa2V5IlIKHE1lc3NhZ2VVc2VyUXVlc3Rpb25BbnN3ZXJEdG8SEAoIcXVlc3Rpb24YASABKAkSDgoGdmFsdWVzGAIgAygJEhAKCHJlamVjdGVkGAMgASgIIkIKHE1lc3NhZ2VVc2VyUXVlc3Rpb25PcHRpb25EdG8SDQoFbGFiZWwYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiyAEKGk1lc3NhZ2VVc2VyUXVlc3Rpb25JdGVtRHRvEhAKCHF1ZXN0aW9uGAEgASgJEg4KBmhlYWRlchgCIAEoCRIUCgxtdWx0aV9zZWxlY3QYAyABKAgSQgoHb3B0aW9ucxgEIAMoCzIxLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbk9wdGlvbkR0bxIbChNhbGxvd19jdXN0b21fYW5zd2VyGAUgASgIEhEKCWlzX3NlY3JldBgGIAEoCCJaChxNZXNzYWdlVXNlclF1ZXN0aW9uTGltaXRzRHRvEhkKEW1heF9hbnN3ZXJfbGVuZ3RoGAEgASgFEh8KF21heF92YWx1ZXNfcGVyX3F1ZXN0aW9uGAIgASgFItgCChZNZXNzYWdlVXNlclF1ZXN0aW9uRHRvEhMKC3F1ZXN0aW9uX2lkGAEgASgJEhMKBnJ1bl9pZBgCIAEoCUgAiAEBEg0KBXN0YXRlGAMgASgJEkIKCXF1ZXN0aW9ucxgEIAMoCzIvLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbkl0ZW1EdG8SQgoHYW5zd2VycxgFIAMoCzIxLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbkFuc3dlckR0bxIvCgthbnN3ZXJlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoGbGltaXRzGAcgASgLMjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlVXNlclF1ZXN0aW9uTGltaXRzRHRvQgkKB19ydW5faWQi1gMKEk1lc3NhZ2VSZXNwb25zZUR0bxIKCgJpZBgBIAEoCRISCgpzZXNzaW9uX2lkGAIgASgJEgwKBHR5cGUYAyABKAkSDAoEbW9kZRgEIAEoCRItCgl0aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDWNyZWF0aW9uX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KDmNvbnRlbnRfYmxvY2tzGAcgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhIKBW1vZGVsGAggASgJSACIAQESFQoIcHJvdmlkZXIYCSABKAlIAYgBARJCCg1oZXJvX3NuYXBzaG90GAogASgLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlSGVyb1NuYXBzaG90RHRvEkIKDXVzZXJfcXVlc3Rpb24YCyABKAsyKy5oYWdpY29kZS5zZXNzaW9uLnYxLk1lc3NhZ2VVc2VyUXVlc3Rpb25EdG8SGAoLc3RlZXJfc3RhdGUYDCABKAlIAogBAUIICgZfbW9kZWxCCwoJX3Byb3ZpZGVyQg4KDF9zdGVlcl9zdGF0ZSKyAQoWTWVzc2FnZUxpc3RSZXNwb25zZUR0bxISCgpzZXNzaW9uX2lkGAEgASgJEgwKBHBhZ2UYAiABKAUSEQoJcGFnZV9zaXplGAMgASgFEhMKC3RvdGFsX2NvdW50GAQgASgFEhMKC3RvdGFsX3BhZ2VzGAUgASgFEjkKCG1lc3NhZ2VzGAYgAygLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlUmVzcG9uc2VEdG8ikAEKGENhbmNlbFNlc3Npb25SZXNwb25zZUR0bxISCgpzZXNzaW9uX2lkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIwCgxjYW5jZWxsZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKBnJ1bl9pZBgEIAEoCUgAiAEBQgkKB19ydW5faWQi3gEKE1Byb2Nlc3NpbmdTdGF0dXNEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRIVCg1pc19wcm9jZXNzaW5nGAIgASgIEhwKFHF1ZXVlZF9tZXNzYWdlX2NvdW50GAMgASgFEkMKDnF1ZXVlX21lc3NhZ2VzGAQgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZU1lc3NhZ2VTdW1tYXJ5RHRvEjkKFXByb2Nlc3Npbmdfc3RhcnRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiPQoUQ2FuY2VsbGVkTWVzc2FnZUluZm8SDAoEbW9kZRgBIAEoCRIXCg9jb250ZW50X3ByZXZpZXcYAiABKAkiwwEKF0NhbmNlbFBlbmRpbmdNZXNzYWdlRHRvEhIKCnNlc3Npb25faWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBITCgtxdWV1ZV9pbmRleBgDIAEoBRIXCg9yZW1haW5pbmdfY291bnQYBCABKAUSDwoHbWVzc2FnZRgFIAEoCRJEChFjYW5jZWxsZWRfbWVzc2FnZRgGIAEoCzIpLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsbGVkTWVzc2FnZUluZm8iUgoXU2Vzc2lvblN0ZWVyUmVzcG9uc2VEdG8SDwoHb3V0Y29tZRgBIAEoCRIXCgptZXNzYWdlX2lkGAIgASgJSACIAQFCDQoLX21lc3NhZ2VfaWQiKQoWU2Vzc2lvblN0ZWVyUmVxdWVzdER0bxIPCgdjb250ZW50GAEgASgJIjAKHVF1ZXVlZE1lc3NhZ2VTdGVlclJlc3BvbnNlRHRvEg8KB291dGNvbWUYASABKAkiPAocUXVldWVkTWVzc2FnZVN0ZWVyUmVxdWVzdER0bxIcChRleGVjdXRpb25fbWVzc2FnZV9pZBgBIAEoCSIpChZQb3N0TWVzc2FnZVJlc3BvbnNlRHRvEg8KB21lc3NhZ2UYASABKAkitwEKElBvc3RNZXNzYWdlUmVxdWVzdBIPCgdjb250ZW50GAEgASgJEgwKBG1vZGUYAiABKAkSQgoKaW1hZ2VfcmVmcxgDIAMoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvbk1lc3NhZ2VJbWFnZVJlZkR0bxI+Cg9wYXRoX3JlZmVyZW5jZXMYBCADKAsyJS5oYWdpY29kZS5zZXNzaW9uLnYxLlBhdGhSZWZlcmVuY2VEdG8iXgorQ29udmVydFRvUHJvcG9zYWxIYWdpU2tpbGxQcm9tcHRSZXNwb25zZUR0bxIPCgdvdXRjb21lGAEgASgJEhMKBnByb21wdBgCIAEoCUgAiAEBQgkKB19wcm9tcHQiYAofQW5ub3RhdGlvblN1Ym1pc3Npb25SZXNwb25zZUR0bxIPCgdtZXNzYWdlGAEgASgJEhgKEGFubm90YXRpb25fY291bnQYAiABKAUSEgoKZmlsZV9jb3VudBgDIAEoBSLKAQoSQmxvY2tBbm5vdGF0aW9uRHRvEhkKEXN0YXJ0X2xpbmVfbnVtYmVyGAEgASgFEhcKD2VuZF9saW5lX251bWJlchgCIAEoBRIYChBvcmlnaW5hbF9jb250ZW50GAMgASgJEhIKCmJsb2NrX3R5cGUYBCABKAkSFwoPYW5ub3RhdGlvbl90ZXh0GAUgASgJEi0KCXRpbWVzdGFtcBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASCgoCaWQYByABKAkirwEKEUZpbGVBbm5vdGF0aW9uRHRvEhEKCWZpbGVfbmFtZRgBIAEoCRIRCglmaWxlX3BhdGgYAiABKAkSQgoRYmxvY2tfYW5ub3RhdGlvbnMYAyADKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLkJsb2NrQW5ub3RhdGlvbkR0bxIcCg9maWxlX2Fubm90YXRpb24YBCABKAlIAIgBAUISChBfZmlsZV9hbm5vdGF0aW9uIt8BChdBbm5vdGF0aW9uU3VibWlzc2lvbkR0bxISCgpzZXNzaW9uX2lkGAEgASgJEjUKBWZpbGVzGAIgAygLMiYuaGFnaWNvZGUuc2Vzc2lvbi52MS5GaWxlQW5ub3RhdGlvbkR0bxIZChF0b3RhbF9hbm5vdGF0aW9ucxgDIAEoBRIwCgxzdWJtaXR0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhoKDWdsb2JhbF9wcm9tcHQYBSABKAlIAIgBAUIQCg5fZ2xvYmFsX3Byb21wdDKNCQoXU2Vzc2lvbk1lc3NhZ2luZ1NlcnZpY2USdQoSR2V0U2Vzc2lvbk1lc3NhZ2VzEi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uTWVzc2FnZXNSZXF1ZXN0Gi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uTWVzc2FnZXNSZXNwb25zZRJmCg1DYW5jZWxTZXNzaW9uEikuaGFnaWNvZGUuc2Vzc2lvbi52MS5DYW5jZWxTZXNzaW9uUmVxdWVzdBoqLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsU2Vzc2lvblJlc3BvbnNlEo0BChpHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1cxI2LmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0U2Vzc2lvblByb2Nlc3NpbmdTdGF0dXNSZXF1ZXN0GjcuaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1Jlc3BvbnNlEnsKFENhbmNlbFBlbmRpbmdNZXNzYWdlEjAuaGFnaWNvZGUuc2Vzc2lvbi52MS5DYW5jZWxQZW5kaW5nTWVzc2FnZVJlcXVlc3QaMS5oYWdpY29kZS5zZXNzaW9uLnYxLkNhbmNlbFBlbmRpbmdNZXNzYWdlUmVzcG9uc2USYwoMU3RlZXJTZXNzaW9uEiguaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGVlclNlc3Npb25SZXF1ZXN0GikuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGVlclNlc3Npb25SZXNwb25zZRJ1ChJTdGVlclF1ZXVlZE1lc3NhZ2USLi5oYWdpY29kZS5zZXNzaW9uLnYxLlN0ZWVyUXVldWVkTWVzc2FnZVJlcXVlc3QaLy5oYWdpY29kZS5zZXNzaW9uLnYxLlN0ZWVyUXVldWVkTWVzc2FnZVJlc3BvbnNlEnUKElBvc3RTZXNzaW9uTWVzc2FnZRIuLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdFNlc3Npb25NZXNzYWdlUmVxdWVzdBovLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdFNlc3Npb25NZXNzYWdlUmVzcG9uc2USqAEKI0dldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0Ej8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRDb252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlcXVlc3QaQC5oYWdpY29kZS5zZXNzaW9uLnYxLkdldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0UmVzcG9uc2UShwEKGFN1Ym1pdFNlc3Npb25Bbm5vdGF0aW9ucxI0LmhhZ2ljb2RlLnNlc3Npb24udjEuU3VibWl0U2Vzc2lvbkFubm90YXRpb25zUmVxdWVzdBo1LmhhZ2ljb2RlLnNlc3Npb24udjEuU3VibWl0U2Vzc2lvbkFubm90YXRpb25zUmVzcG9uc2VCKaoCJlBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5TZXNzaW9uLlYxYgZwcm90bzM",[Ve,Ee,ae]),yd=G(bt,13),Bd=G(bt,17),Cd=G(bt,35),Fd=G(bt,40),Ud=Ne(bt,0),Ae=ee("CipoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25fcHJvcG9zYWwucHJvdG8SE2hhZ2ljb2RlLnNlc3Npb24udjEiOAoiTGlzdFVubGlua2VkT3BlblNwZWNDaGFuZ2VzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJInIKI0xpc3RVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEksKBnJlc3VsdBgBIAEoCzI7LmhhZ2ljb2RlLnNlc3Npb24udjEuVW5saW5rZWRPcGVuU3BlY0NoYW5nZXNMaXN0UmVzcG9uc2VEdG8ijQIKGVVubGlua2VkT3BlblNwZWNDaGFuZ2VEdG8SDAoEbmFtZRgBIAEoCRINCgV0aXRsZRgCIAEoCRIPCgdzdW1tYXJ5GAMgASgJEhwKD3Rhc2tzX2NvbXBsZXRlZBgEIAEoBUgAiAEBEhgKC3Rhc2tzX3RvdGFsGAUgASgFSAGIAQESGQoRaGFzX3Byb3Bvc2FsX2ZpbGUYBiABKAgSDQoFZmlsZXMYByADKAkSIgoVbm90X2ltcG9ydGFibGVfcmVhc29uGAggASgJSAKIAQFCEgoQX3Rhc2tzX2NvbXBsZXRlZEIOCgxfdGFza3NfdG90YWxCGAoWX25vdF9pbXBvcnRhYmxlX3JlYXNvbiJpCiZVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc0xpc3RSZXNwb25zZUR0bxI/CgdjaGFuZ2VzGAEgAygLMi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5VbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRHRvIjkKI0NvdW50VW5saW5rZWRPcGVuU3BlY0NoYW5nZXNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiawokQ291bnRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEkMKBnJlc3VsdBgBIAEoCzIzLmhhZ2ljb2RlLnNlc3Npb24udjEuVW5saW5rZWRPcGVuU3BlY0NoYW5nZUNvdW50RHRvIi8KHlVubGlua2VkT3BlblNwZWNDaGFuZ2VDb3VudER0bxINCgVjb3VudBgBIAEoBSJiCiRHZXRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRmlsZVJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRITCgtjaGFuZ2VfbmFtZRgCIAEoCRIRCglmaWxlX3BhdGgYAyABKAkiawolR2V0VW5saW5rZWRPcGVuU3BlY0NoYW5nZUZpbGVSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5zZXNzaW9uLnYxLlVubGlua2VkT3BlblNwZWNDaGFuZ2VGaWxlRHRvIkMKHVVubGlua2VkT3BlblNwZWNDaGFuZ2VGaWxlRHRvEhEKCWZpbGVfcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgJIkgKHEltcG9ydE9wZW5TcGVjQ2hhbmdlc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIUCgxjaGFuZ2VfbmFtZXMYAiADKAkiZAodSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5JbXBvcnRPcGVuU3BlY0NoYW5nZXNSZXN1bHREdG8iZAoeSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVzdWx0RHRvEkIKB3Jlc3VsdHMYASADKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLkltcG9ydE9wZW5TcGVjQ2hhbmdlRW50cnlEdG8imAEKHEltcG9ydE9wZW5TcGVjQ2hhbmdlRW50cnlEdG8SDAoEbmFtZRgBIAEoCRIOCgZzdGF0dXMYAiABKAkSOAoHc2Vzc2lvbhgDIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvEhQKB21lc3NhZ2UYBCABKAlIAIgBAUIKCghfbWVzc2FnZSJwCh5PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI6CgRib2R5GAIgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcHRpbWl6ZVByb3Bvc2FsUmVxdWVzdCJtCh9PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVSZXNwb25zZUR0byJsChdHZW5lcmF0ZVByb3Bvc2FsUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEj0KBGJvZHkYAiABKAsyLy5oYWdpY29kZS5zZXNzaW9uLnYxLkdlbmVyYXRlUHJvcG9zYWxSZXF1ZXN0RHRvIlkKGEdlbmVyYXRlUHJvcG9zYWxSZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byJoChVBcmNoaXZlU2Vzc2lvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI7CgRib2R5GAIgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5BcmNoaXZlU2Vzc2lvblJlcXVlc3REdG8iUQoWQXJjaGl2ZVNlc3Npb25SZXNwb25zZRI3CgZyZXN1bHQYASABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0byJqChZFeGVjdXRlUHJvcG9zYWxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSPAoEYm9keRgCIAEoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuRXhlY3V0ZVByb3Bvc2FsUmVxdWVzdER0byJYChdFeGVjdXRlUHJvcG9zYWxSZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byIsChZDb21wbGV0ZVNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiUgoXQ29tcGxldGVTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iMwodVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSJaCh5WYWxpZGF0ZVNlc3Npb25FeGVjdXRlUmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0aW9uUmVzdWx0RHRvIjEKG1ZhbGlkYXRlU2Vzc2lvblN0YXJ0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIlgKHFZhbGlkYXRlU2Vzc2lvblN0YXJ0UmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0aW9uUmVzdWx0RHRvIjMKHVZhbGlkYXRlU2Vzc2lvbkFyY2hpdmVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiWgoeVmFsaWRhdGVTZXNzaW9uQXJjaGl2ZVJlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvblJlc3VsdER0byJyCiFQcm9wb3NhbE9wdGltaXphdGlvbkRpYWdub3N0aWNEdG8SDAoEY29kZRgBIAEoCRIQCghzZXZlcml0eRgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhIKBWZpZWxkGAQgASgJSACIAQFCCAoGX2ZpZWxkIo4BCi1Qcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVZhbGlkYXRpb25SZXN1bHREdG8SEAoIaXNfdmFsaWQYASABKAgSSwoLZGlhZ25vc3RpY3MYAiADKAsyNi5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uRGlhZ25vc3RpY0R0byLcAwonUHJvcG9zYWxPcHRpbWl6YXRpb25TY2VuYXJpb1NldHRpbmdzRHRvEhcKCnNjcmlwdF9rZXkYASABKAlIAIgBARIdChBzZWxlY3RlZF9oZXJvX2lkGAIgASgJSAGIAQESHAoPY2FwdGFpbl9oZXJvX2lkGAMgASgJSAKIAQESFgoJcm9zdGVyX2lkGAQgASgJSAOIAQESawoQZXh0ZW5zaW9uX2ZpZWxkcxgFIAMoCzJRLmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25TY2VuYXJpb1NldHRpbmdzRHRvLkV4dGVuc2lvbkZpZWxkc0VudHJ5EhYKCXN0YWdlX2tleRgGIAEoCUgEiAEBEh0KEHNlbGVjdGlvbl9zb3VyY2UYByABKAlIBYgBARo2ChRFeHRlbnNpb25GaWVsZHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19zY3JpcHRfa2V5QhMKEV9zZWxlY3RlZF9oZXJvX2lkQhIKEF9jYXB0YWluX2hlcm9faWRCDAoKX3Jvc3Rlcl9pZEIMCgpfc3RhZ2Vfa2V5QhMKEV9zZWxlY3Rpb25fc291cmNlIr4DCiNQcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVJlc3VsdER0bxIcCg9vcHRpbWl6ZWRfdGl0bGUYASABKAlIAIgBARIoChtvcHRpbWl6ZWRfcHJvcG9zYWxfbWFya2Rvd24YAiABKAlIAYgBARIfChdvcHRpbWl6ZWRfcHJvcG9zYWxfbmFtZRgDIAEoCRIdChVvcHRpbWl6ZWRfZGVzY3JpcHRpb24YBCABKAkSVwoRc2NlbmFyaW9fc2V0dGluZ3MYBSABKAsyPC5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uU2NlbmFyaW9TZXR0aW5nc0R0bxJWCgp2YWxpZGF0aW9uGAYgASgLMkIuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVZhbGlkYXRpb25SZXN1bHREdG8SGQoMcmF3X3Jlc3BvbnNlGAcgASgJSAKIAQFCEgoQX29wdGltaXplZF90aXRsZUIeChxfb3B0aW1pemVkX3Byb3Bvc2FsX21hcmtkb3duQg8KDV9yYXdfcmVzcG9uc2Ui0ggKJFByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlU3VtbWFyeUR0bxIbChNyZXF1ZXN0X2ZpbmdlcnByaW50GAEgASgJEjQKEGdlbmVyYXRlZF9hdF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBnNvdXJjZRgDIAEoCRIVCg1hcHBsaWVkX3RpdGxlGAQgASgJEh0KFWFwcGxpZWRfcHJvcG9zYWxfbmFtZRgFIAEoCRIgChhwcm9wb3NhbF9kcmFmdF9hdmFpbGFibGUYBiABKAgSIAoYc2NlbmFyaW9fc2V0dGluZ3Nfc3RhdHVzGAcgASgJEhoKEmFwcGxpZWRfdGl0bGVfbW9kZRgIIAEoCRIQCghpc192YWxpZBgJIAEoCBJLCgtkaWFnbm9zdGljcxgKIAMoCzI2LmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25EaWFnbm9zdGljRHRvEiYKGW9wdGltaXplZF90aXRsZV9jYW5kaWRhdGUYCyABKAlIAIgBARIjChZwcm9wb3NhbF9kcmFmdF9wcmV2aWV3GAwgASgJSAGIAQESGgoNYXJ0aWZhY3RfcGF0aBgNIAEoCUgCiAEBEhsKDmNvcnJlbGF0aW9uX2lkGA4gASgJSAOIAQESHQoQcmVzb2x2ZWRfaGVyb19pZBgPIAEoCUgEiAEBEh8KEnJlc29sdmVkX2hlcm9fbmFtZRgQIAEoCUgFiAEBEh8KEnJlc29sdmVkX2hlcm9faWNvbhgRIAEoCUgGiAEBEigKG3Jlc29sdmVkX2hlcm9fZXhlY3V0b3JfdHlwZRgSIAEoCUgHiAEBEiIKFWhlcm9fc2VsZWN0aW9uX3NvdXJjZRgTIAEoCUgIiAEBEiMKFmhlcm9fcm91dGluZ19zdGFnZV9rZXkYFCABKAlICYgBARIkChdoZXJvX3JvdXRpbmdfc2NyaXB0X2tleRgVIAEoCUgKiAEBEiQKF29wdGltaXphdGlvbl9jZXNzaW9uX2lkGBYgASgJSAuIAQFCHAoaX29wdGltaXplZF90aXRsZV9jYW5kaWRhdGVCGQoXX3Byb3Bvc2FsX2RyYWZ0X3ByZXZpZXdCEAoOX2FydGlmYWN0X3BhdGhCEQoPX2NvcnJlbGF0aW9uX2lkQhMKEV9yZXNvbHZlZF9oZXJvX2lkQhUKE19yZXNvbHZlZF9oZXJvX25hbWVCFQoTX3Jlc29sdmVkX2hlcm9faWNvbkIeChxfcmVzb2x2ZWRfaGVyb19leGVjdXRvcl90eXBlQhgKFl9oZXJvX3NlbGVjdGlvbl9zb3VyY2VCGQoXX2hlcm9fcm91dGluZ19zdGFnZV9rZXlCGgoYX2hlcm9fcm91dGluZ19zY3JpcHRfa2V5QhoKGF9vcHRpbWl6YXRpb25fY2Vzc2lvbl9pZCLVAQolUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVSZXNwb25zZUR0bxJICgZyZXN1bHQYASABKAsyOC5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlUmVzdWx0RHRvEkoKB3N1bW1hcnkYAiABKAsyOS5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlU3VtbWFyeUR0bxIWCg5jb3JyZWxhdGlvbl9pZBgDIAEoCSKJAwoXT3B0aW1pemVQcm9wb3NhbFJlcXVlc3QSEwoLZGVzY3JpcHRpb24YASABKAkSJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgCIAEoCUgAiAEBEiMKFm9wdGltaXphdGlvbl9kaXJlY3Rpb24YAyABKAlIAYgBARISCgV0aXRsZRgEIAEoCUgCiAEBEhgKEGlzX2RlZmF1bHRfdGl0bGUYBSABKAgSJQoYb3JpZ2luYWxfY2hpZWZfY29tcGxhaW50GAYgASgJSAOIAQESVwoRc2NlbmFyaW9fc2V0dGluZ3MYByABKAsyPC5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uU2NlbmFyaW9TZXR0aW5nc0R0b0IcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZUIZChdfb3B0aW1pemF0aW9uX2RpcmVjdGlvbkIICgZfdGl0bGVCGwoZX29yaWdpbmFsX2NoaWVmX2NvbXBsYWludCJFChpQbGFubmluZ0RpcmVjdGlvbk9wdGlvbkR0bxIPCgJpZBgBIAEoCUgAiAEBEg8KB2VuYWJsZWQYAiABKAhCBQoDX2lkIowCChpHZW5lcmF0ZVByb3Bvc2FsUmVxdWVzdER0bxIgChNlbmFibGVfZXhwbG9yZV9tb2RlGAEgASgISACIAQESTAoTcGxhbm5pbmdfZGlyZWN0aW9ucxgCIAMoCzIvLmhhZ2ljb2RlLnNlc3Npb24udjEuUGxhbm5pbmdEaXJlY3Rpb25PcHRpb25EdG8SJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgDIAEoCUgBiAEBEhQKB2hlcm9faWQYBCABKAlIAogBAUIWChRfZW5hYmxlX2V4cGxvcmVfbW9kZUIcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZUIKCghfaGVyb19pZCI8ChhBcmNoaXZlU2Vzc2lvblJlcXVlc3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBQgoKCF9oZXJvX2lkIj0KGUV4ZWN1dGVQcm9wb3NhbFJlcXVlc3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBQgoKCF9oZXJvX2lkIlcKC0NvbmZsaWN0RHRvEgwKBHR5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhIKCnJlc29sdXRpb24YBCABKAkiawoSVmFsaWRhdGlvbklzc3VlRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIQCghzZXZlcml0eRgDIAEoCRIWCgllbnRpdHlfaWQYBCABKAlIAIgBAUIMCgpfZW50aXR5X2lkIoUBChRWYWxpZGF0aW9uU3VtbWFyeUR0bxIVCg1wcm9qZWN0X2NvdW50GAEgASgFEhUKDXNlc3Npb25fY291bnQYAiABKAUSHwoXZHVwbGljYXRlX3Byb2plY3RfY291bnQYAyABKAUSHgoWb3JwaGFuZWRfc2Vzc2lvbl9jb3VudBgEIAEoBSKMAgoTVmFsaWRhdGlvblJlc3VsdER0bxIQCghpc192YWxpZBgBIAEoCBI5Cgh3YXJuaW5ncxgCIAMoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvbklzc3VlRHRvEjcKBmVycm9ycxgDIAMoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvbklzc3VlRHRvEjMKCWNvbmZsaWN0cxgEIAMoCzIgLmhhZ2ljb2RlLnNlc3Npb24udjEuQ29uZmxpY3REdG8SOgoHc3VtbWFyeRgFIAEoCzIpLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvblN1bW1hcnlEdG8yngwKFlNlc3Npb25Qcm9wb3NhbFNlcnZpY2UShAEKF09wdGltaXplU2Vzc2lvblByb3Bvc2FsEjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlcXVlc3QaNC5oYWdpY29kZS5zZXNzaW9uLnYxLk9wdGltaXplU2Vzc2lvblByb3Bvc2FsUmVzcG9uc2USbwoQR2VuZXJhdGVQcm9wb3NhbBIsLmhhZ2ljb2RlLnNlc3Npb24udjEuR2VuZXJhdGVQcm9wb3NhbFJlcXVlc3QaLS5oYWdpY29kZS5zZXNzaW9uLnYxLkdlbmVyYXRlUHJvcG9zYWxSZXNwb25zZRJpCg5BcmNoaXZlU2Vzc2lvbhIqLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZVNlc3Npb25SZXF1ZXN0GisuaGFnaWNvZGUuc2Vzc2lvbi52MS5BcmNoaXZlU2Vzc2lvblJlc3BvbnNlEmwKD0V4ZWN1dGVQcm9wb3NhbBIrLmhhZ2ljb2RlLnNlc3Npb24udjEuRXhlY3V0ZVByb3Bvc2FsUmVxdWVzdBosLmhhZ2ljb2RlLnNlc3Npb24udjEuRXhlY3V0ZVByb3Bvc2FsUmVzcG9uc2USbAoPQ29tcGxldGVTZXNzaW9uEisuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db21wbGV0ZVNlc3Npb25SZXF1ZXN0GiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db21wbGV0ZVNlc3Npb25SZXNwb25zZRKBAQoWVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZRIyLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZVJlcXVlc3QaMy5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRlU2Vzc2lvbkV4ZWN1dGVSZXNwb25zZRJ7ChRWYWxpZGF0ZVNlc3Npb25TdGFydBIwLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uU3RhcnRSZXF1ZXN0GjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0ZVNlc3Npb25TdGFydFJlc3BvbnNlEoEBChZWYWxpZGF0ZVNlc3Npb25BcmNoaXZlEjIuaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0ZVNlc3Npb25BcmNoaXZlUmVxdWVzdBozLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uQXJjaGl2ZVJlc3BvbnNlEpABChtMaXN0VW5saW5rZWRPcGVuU3BlY0NoYW5nZXMSNy5oYWdpY29kZS5zZXNzaW9uLnYxLkxpc3RVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1JlcXVlc3QaOC5oYWdpY29kZS5zZXNzaW9uLnYxLkxpc3RVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEpMBChxDb3VudFVubGlua2VkT3BlblNwZWNDaGFuZ2VzEjguaGFnaWNvZGUuc2Vzc2lvbi52MS5Db3VudFVubGlua2VkT3BlblNwZWNDaGFuZ2VzUmVxdWVzdBo5LmhhZ2ljb2RlLnNlc3Npb24udjEuQ291bnRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEpYBCh1HZXRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRmlsZRI5LmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0VW5saW5rZWRPcGVuU3BlY0NoYW5nZUZpbGVSZXF1ZXN0GjouaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRmlsZVJlc3BvbnNlEn4KFUltcG9ydE9wZW5TcGVjQ2hhbmdlcxIxLmhhZ2ljb2RlLnNlc3Npb24udjEuSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVxdWVzdBoyLmhhZ2ljb2RlLnNlc3Npb24udjEuSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVzcG9uc2VCKaoCJlBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5TZXNzaW9uLlYxYgZwcm90bzM",[Ee,ae]),wd=G(Ae,15),Jd=G(Ae,17),kd=G(Ae,19),xd=G(Ae,21),Kd=G(Ae,23),zd=G(Ae,36),Ld=G(Ae,38),jd=G(Ae,39),Hd=G(Ae,40),Td=Ne(Ae,0),_t=new Set([b.INT64,b.UINT64,b.SINT64,b.FIXED64,b.SFIXED64]),jr=e=>e.typeName.startsWith("google.protobuf.");function Pt(e){if(typeof e!="string")return e;const t=Number(e);return Number.isSafeInteger(t)?t:e}function Wt(e,t){if(t==null||typeof t!="object"||Array.isArray(t)||jr(e))return t;const n=t;for(const o of e.fields){const a=n[o.jsonName];a!==void 0&&(n[o.jsonName]=Qd(o,a))}return n}function Qd(e,t){switch(e.fieldKind){case"scalar":return _t.has(e.scalar)?Pt(t):t;case"message":return Wt(e.message,t);case"list":return Array.isArray(t)?e.listKind==="scalar"?_t.has(e.scalar)?t.map(Pt):t:e.listKind==="message"?t.map(n=>Wt(e.message,n)):t:t;case"map":{if(t===null||typeof t!="object"||Array.isArray(t))return t;const n=t;for(const o of Object.keys(n))e.mapKind==="scalar"&&_t.has(e.scalar)?n[o]=Pt(n[o]):e.mapKind==="message"&&(n[o]=Wt(e.message,n[o]));return n}default:return t}}function Md(e,t){return Wt(e,br(e,t,{alwaysEmitImplicit:!0}))}function Od(e,t){return Md(e,t).result}function St(e,t,n=0){if(t===null||typeof t!="object"||Array.isArray(t)||jr(e)||n>8)return t;const o=t;for(const a of e.fields){const r=o[a.jsonName];if(!(r===null||typeof r!="object")){if(a.fieldKind==="message")St(a.message,r,n+1);else if(a.fieldKind==="list"&&a.listKind==="message"&&Array.isArray(r))r.forEach(i=>St(a.message,i,n+1));else if(a.fieldKind==="map"&&!Array.isArray(r)){const i=r;for(const l of Object.keys(i)){const s=i[l];a.mapKind==="scalar"&&a.scalar===b.STRING?s===null?delete i[l]:(typeof s=="number"||typeof s=="boolean")&&(i[l]=String(s)):a.mapKind==="message"&&St(a.message,s,n+1)}}}}return t}function T(e,t){return Rr(e,t===void 0?t:St(e,JSON.parse(JSON.stringify(t))),{ignoreUnknownFields:!0})}function sa(e,t){const n=Br(e);if(n)throw t.forEach((o,a)=>{n.metadata.append(a,o)}),n;if(!t.has("Grpc-Status")&&!e.has("Grpc-Status"))throw new S("protocol error: missing status",f.Internal)}function Dd(e,t,n,o){var a,r;const i=new Headers(n??{});i.set(jc,e?_c:Pc),i.set(Dc,"1");const l=(r=(a=i.get("User-Agent"))!==null&&a!==void 0?a:i.get("X-User-Agent"))!==null&&r!==void 0?r:"connect-es/2.2.0";return i.set(Oc,l),o&&i.set(Mc,l),t!==void 0&&i.set(Tc,`${t}m`),i}function ca(e,t,n,o,a,r){const i=Dd(e,t,n,r);return a!=null&&i.set(Ir,a.name),o.length>0&&i.set(Hc,o.map(l=>l.name).join(",")),i}function _d(e){switch(e){case 400:return f.Internal;case 401:return f.Unauthenticated;case 403:return f.PermissionDenied;case 404:return f.Unimplemented;case 429:return f.Unavailable;case 502:return f.Unavailable;case 503:return f.Unavailable;case 504:return f.Unavailable;default:return f.Unknown}}function Pd(e,t){var n;if(e>=200&&e<300)return{foundStatus:t.has(yr),headerError:Br(t)};throw new S(decodeURIComponent((n=t.get("Grpc-Message"))!==null&&n!==void 0?n:`HTTP ${e}`),_d(e),t)}function ua(e,t,n){const{foundStatus:o,headerError:a}=Pd(t,n);let r;const i=n.get(Ir);if(i!==null&&i.toLowerCase()!=="identity"&&(r=e.find(l=>l.name===i),!r))throw new S(`unsupported response encoding "${i}"`,f.Internal,n);return{foundStatus:o,compression:r,headerError:a}}var da=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(l,s){i=e[r](i),a(l,s,i.done,i.value)})}}function a(r,i,l,s){Promise.resolve(s).then(function(c){r({value:c,done:l})},i)}},Xe=function(e){return this instanceof Xe?(this.v=e,this):new Xe(e)},$d=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),l("next"),l("throw"),l("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(V){return Promise.resolve(V).then(Z,A)}}function l(Z,V){o[Z]&&(a[Z]=function(N){return new Promise(function(B,J){r.push([Z,N,B,J])>1||s(Z,N)})},V&&(a[Z]=V(a[Z])))}function s(Z,V){try{c(o[Z](V))}catch(N){R(r[0][3],N)}}function c(Z){Z.value instanceof Xe?Promise.resolve(Z.value.v).then(m,A):R(r[0][2],Z)}function m(Z){s("next",Z)}function A(Z){s("throw",Z)}function R(Z,V){Z(V),r.shift(),r.length&&s(r[0][0],r[0][1])}};function qd(e){return{async unary(t,n,o,a,r,i){const l=na(t,e.binaryOptions,e.jsonOptions,e);return o=o===void 0?e.defaultTimeoutMs:o<=0?void 0:o,await nu({interceptors:e.interceptors,signal:n,timeoutMs:o,req:{stream:!1,service:t.parent,method:t,requestMethod:"POST",url:ta(e.baseUrl,t),header:ca(e.useBinaryFormat,o,a,e.acceptCompression,e.sendCompression,!0),contextValues:i??qo(),message:r},next:async s=>{const c=await e.httpClient({url:s.url,method:s.requestMethod,header:s.header,signal:s.signal,body:Nt(vr([s.message]),Mo(l.getI(e.useBinaryFormat)),Do(e.sendCompression,e.compressMinBytes),Po(),{propagateDownStreamError:!0})}),{compression:m,headerError:A}=ua(e.acceptCompression,c.status,c.header),{trailer:R,message:Z}=await Ic(c.body,$o(e.readMaxBytes),_o(m??null,e.readMaxBytes),Oo(l.getO(e.useBinaryFormat),128,ea()),async V=>{var N,B,J,u;let d,g;try{for(var h=!0,p=da(V),E;E=await p.next(),N=E.done,!N;h=!0){u=E.value,h=!1;const v=u;if(v.end){if(g!==void 0)throw new S("protocol error: received extra trailer",f.Unimplemented);g=v.value}else{if(d!==void 0)throw new S("protocol error: received extra output message for unary method",f.Unimplemented);d=v.value}}}catch(v){B={error:v}}finally{try{!h&&!N&&(J=p.return)&&await J.call(p)}finally{if(B)throw B.error}}return{trailer:g,message:d}},{propagateDownStreamError:!1});if(R===void 0)throw A??new S("protocol error: missing trailer",c.header.has("Grpc-Status")?f.Unimplemented:f.Unknown);if(sa(R,c.header),Z===void 0)throw new S("protocol error: missing output message for unary method",R.has("Grpc-Status")?f.Unimplemented:f.Unknown);return{stream:!1,service:t.parent,method:t,header:c.header,message:Z,trailer:R}}})},async stream(t,n,o,a,r,i){const l=na(t,e.binaryOptions,e.jsonOptions,e);return o=o===void 0?e.defaultTimeoutMs:o<=0?void 0:o,ou({interceptors:e.interceptors,signal:n,timeoutMs:o,req:{stream:!0,service:t.parent,method:t,requestMethod:"POST",url:ta(e.baseUrl,t),header:ca(e.useBinaryFormat,o,a,e.acceptCompression,e.sendCompression,!0),contextValues:i??qo(),message:r},next:async s=>{const c=await e.httpClient({url:s.url,method:s.requestMethod,header:s.header,signal:s.signal,body:Nt(s.message,Mo(l.getI(e.useBinaryFormat)),Do(e.sendCompression,e.compressMinBytes),Po(),{propagateDownStreamError:!0})}),{compression:m,foundStatus:A,headerError:R}=ua(e.acceptCompression,c.status,c.header);if(R)throw R;const Z=Object.assign(Object.assign({},s),{header:c.header,trailer:new Headers,message:Nt(c.body,$o(e.readMaxBytes),_o(m??null,e.readMaxBytes),Oo(l.getO(e.useBinaryFormat),128,ea()),function(V){return $d(this,arguments,function*(){var N,B,J,u;if(A){if((yield Xe(V[Symbol.asyncIterator]().next())).done!==!0)throw new S("protocol error: extra data for trailers-only",f.InvalidArgument);return yield Xe(void 0)}let d=!1;try{for(var g=!0,h=da(V),p;p=yield Xe(h.next()),N=p.done,!N;g=!0){u=p.value,g=!1;const E=u;if(E.end){if(d)throw new S("protocol error: received extra trailer",f.InvalidArgument);d=!0,sa(E.value,c.header),E.value.forEach((v,w)=>Z.trailer.set(w,v));continue}if(d)throw new S("protocol error: received extra message after trailer",f.InvalidArgument);yield yield Xe(E.value)}}catch(E){B={error:E}}finally{try{!g&&!N&&(J=h.return)&&(yield Xe(J.call(h)))}finally{if(B)throw B.error}}if(!d)throw new S("protocol error: missing trailer",f.Internal)})},{propagateDownStreamError:!0})});return Z}})}}}function xt(e){let t=f.Internal;const n=Mn(e).map(Kt);n.some(a=>a.code=="ERR_STREAM_WRITE_AFTER_END")||n.some(a=>a.code=="ERR_STREAM_DESTROYED"||a.code=="ERR_HTTP2_INVALID_STREAM"||a.code=="ECONNRESET")?t=f.Aborted:n.some(a=>a.code=="ETIMEDOUT"||a.code=="ENOTFOUND"||a.code=="EAI_AGAIN"||a.code=="ECONNREFUSED")&&(t=f.Unavailable);const o=S.from(e,t);return o!==e&&(o.cause=e),o}function Mn(e){const t=[];for(;!(!(e instanceof Error)||t.includes(e)||(t.push(e),!("cause"in e)));)e=e.cause;return t}function Kt(e){const t={};return e instanceof Error&&("code"in e&&typeof e.code=="string"&&(t.code=e.code),"syscall"in e&&typeof e.syscall=="string"&&(t.syscall=e.syscall)),t}function em(e){switch(e){case M.PROTOCOL_ERROR:case M.INTERNAL_ERROR:case M.FLOW_CONTROL_ERROR:case M.SETTINGS_TIMEOUT:case M.FRAME_SIZE_ERROR:case M.COMPRESSION_ERROR:case M.CONNECT_ERROR:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.Internal);case M.REFUSED_STREAM:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.Unavailable);case M.CANCEL:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.Canceled);case M.ENHANCE_YOUR_CALM:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.ResourceExhausted);case M.INADEQUATE_SECURITY:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.PermissionDenied);case M.HTTP_1_1_REQUIRED:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,f.PermissionDenied);default:break}}var M;(function(e){e[e.PROTOCOL_ERROR=1]="PROTOCOL_ERROR",e[e.INTERNAL_ERROR=2]="INTERNAL_ERROR",e[e.FLOW_CONTROL_ERROR=3]="FLOW_CONTROL_ERROR",e[e.SETTINGS_TIMEOUT=4]="SETTINGS_TIMEOUT",e[e.STREAM_CLOSED=5]="STREAM_CLOSED",e[e.FRAME_SIZE_ERROR=6]="FRAME_SIZE_ERROR",e[e.REFUSED_STREAM=7]="REFUSED_STREAM",e[e.CANCEL=8]="CANCEL",e[e.COMPRESSION_ERROR=9]="COMPRESSION_ERROR",e[e.CONNECT_ERROR=10]="CONNECT_ERROR",e[e.ENHANCE_YOUR_CALM=11]="ENHANCE_YOUR_CALM",e[e.INADEQUATE_SECURITY=12]="INADEQUATE_SECURITY",e[e.HTTP_1_1_REQUIRED=13]="HTTP_1_1_REQUIRED"})(M||(M={}));var tm=(0,Bt.promisify)(Me.gzip),nm=(0,Bt.promisify)(Me.gunzip),om=(0,Bt.promisify)(Me.brotliCompress),am=(0,Bt.promisify)(Me.brotliDecompress),rm={name:"gzip",compress(e){return Yt(tm(e,{}))},decompress(e,t){return e.length==0?Promise.resolve(new Uint8Array(0)):Yt(Hr(nm(e,{maxOutputLength:t}),t))}},im={name:"br",compress(e){return Yt(om(e,{}))},decompress(e,t){return e.length==0?Promise.resolve(new Uint8Array(0)):Yt(Hr(am(e,{maxOutputLength:t}),t))}};function Yt(e){return e.then(t=>t.buffer instanceof ArrayBuffer?t:new Uint8Array(t))}function Hr(e,t){return e.catch(n=>{var o;const a=Kt(n);let r=f.Internal,i="decompression failed";switch(a.code){case"ERR_BUFFER_TOO_LARGE":r=f.ResourceExhausted,i=`message is larger than configured readMaxBytes ${t} after decompression`;break;case"Z_DATA_ERROR":case"ERR_PADDING_2":r=f.InvalidArgument;break;default:!((o=a.code)===null||o===void 0)&&o.startsWith("ERR__ERROR_FORMAT_")&&(r=f.InvalidArgument);break}return Promise.reject(new S(i,r,void 0,void 0,n))})}function zt(e){const t=new Headers;for(const[n,o]of Object.entries(e))if(!n.startsWith(":")&&o!==void 0)if(typeof o=="string")t.append(n,o);else if(typeof o=="number")t.append(n,String(o));else for(const a of o)t.append(n,a);return t}function Tr(e,t){if(e===void 0&&t===void 0)return;const n=Object.create(null);if(t!==void 0)if(Array.isArray(t))for(let o=0;o+1<t.length;o+=2){const a=t[o],r=t[o+1];Array.isArray(n[a])?n[a].push(r):typeof n[a]=="string"?n[a]=[n[a],r]:n[a]=r}else for(const[o,a]of Object.entries(t))Array.isArray(a)?n[o]=a.concat():a!==void 0&&(n[o]=a);if(e!==void 0)if(Array.isArray(e))for(const[o,a]of e)$t(n,o,a);else if("forEach"in e)typeof e.forEach=="function"&&e.forEach((o,a)=>{$t(n,a,o)});else for(const[o,a]of Object.entries(e))$t(n,o,a);return n}function $t(e,t,n){t=t.toLowerCase();const o=e[t];Array.isArray(o)?o.push(n):o===void 0?e[t]=n:e[t]=[o.toString(),n]}var Qr=class{state(){return this.s.t=="ready"?this.verifying!==void 0?"verifying":this.s.streamCount()>0?"open":"idle":this.s.t}error(){if(this.s.t=="error")return this.s.reason}constructor(e,t,n){var o,a,r,i;this.s=hn(),this.shuttingDown=[],this.authority=new URL(e).origin,this.http2SessionOptions=n,this.options={pingIntervalMs:(o=t?.pingIntervalMs)!==null&&o!==void 0?o:Number.POSITIVE_INFINITY,pingTimeoutMs:(a=t?.pingTimeoutMs)!==null&&a!==void 0?a:1e3*15,pingIdleConnection:(r=t?.pingIdleConnection)!==null&&r!==void 0?r:!1,idleConnectionTimeoutMs:(i=t?.idleConnectionTimeoutMs)!==null&&i!==void 0?i:1e3*60*15}}async connect(){try{return(await this.gotoReady()).streamCount()>0?"open":"idle"}catch{return"error"}}async request(e,t,n,o){for(;;){const a=await this.gotoReady();try{const r=a.conn.request(Object.assign(Object.assign({},n),{":method":e,":path":t}),o);return a.registerRequest(r),r}catch(r){if(a.conn.closed||a.conn.destroyed)continue;throw r}}}notifyResponseByteRead(e){this.s.t=="ready"&&this.s.responseByteRead(e);for(const t of this.shuttingDown)t.responseByteRead(e)}abort(e){var t,n,o;const a=e??new S("connection aborted",f.Canceled);(n=(t=this.s).abort)===null||n===void 0||n.call(t,a);for(const r of this.shuttingDown)(o=r.abort)===null||o===void 0||o.call(r,a);this.setState(Zt(a))}async gotoReady(){for(this.s.t=="ready"?this.s.isShuttingDown()||this.s.conn.closed||this.s.conn.destroyed?this.setState(qt(this.authority,this.http2SessionOptions)):this.s.requiresVerify()&&await this.verify(this.s):(this.s.t=="closed"||this.s.t=="error")&&this.setState(qt(this.authority,this.http2SessionOptions));this.s.t!=="ready";){if(this.s.t==="error")throw this.s.reason;this.s.t==="connecting"&&await this.s.conn}return this.s}setState(e){var t,n;if((n=(t=this.s).onExitState)===null||n===void 0||n.call(t),this.s.t=="ready"&&this.s.isShuttingDown()){const o=this.s;this.shuttingDown.push(o),o.onClose=o.onError=()=>{const a=this.shuttingDown.indexOf(o);a!==-1&&this.shuttingDown.splice(a,1)}}switch(e.t){case"connecting":e.conn.then(o=>{this.setState(sm(o,this.options))},o=>{this.setState(Zt(o))});break;case"ready":e.onClose=()=>this.setState(hn()),e.onError=o=>this.setState(Zt(o));break;case"closed":break;case"error":break}this.s=e}verify(e){return this.verifying!==void 0?this.verifying:(this.verifying=e.verify().then(t=>{t||this.setState(qt(this.authority,this.http2SessionOptions))},t=>{this.setState(Zt(t))}).finally(()=>{this.verifying=void 0}),this.verifying)}};function hn(){return{t:"closed"}}function lm(e){return{t:"error",reason:e}}function Zt(e){return e instanceof S&&S.from(e).code==f.Canceled?hn():lm(e)}function qt(e,t){let n,o;const a=new Promise((c,m)=>{n=c,o=m}),r=be.connect(e,t);r.on("connect",i),r.on("error",l);function i(){n?.(r),s()}function l(c){o?.(xt(c)),s()}function s(){r.off("connect",i),r.off("error",l)}return{t:"connecting",conn:a,abort(c){r.destroyed||r.destroy(void 0,be.constants.NGHTTP2_CANCEL),o?.(c)},onExitState(){s()}}}function sm(e,t){cm(e),e.unref();let n=Date.now(),o=0,a,r,i=!1,l=!1,s;N();const c={t:"ready",conn:e,streamCount(){return o},requiresVerify(){return Date.now()-n>t.pingIntervalMs},isShuttingDown(){return i},onClose:void 0,onError:void 0,registerRequest(h){o++,o==1&&(e.ref(),m(),V()),h.once("response",()=>{n=Date.now(),m()}),h.once("close",()=>{o--,o==0&&(e.unref(),m(),N())})},responseByteRead(h){h.session===e&&(e.closed||e.destroyed||o<=0||(n=Date.now(),m()))},verify(){return e.ref(),new Promise(h=>{const p=()=>{h(!1)};Z(()=>{o==0&&e.unref(),e.off("error",p),e.off("close",p),h(!0)}),e.once("error",p),e.once("close",p)})},abort(h){e.destroyed||(e.once("error",()=>{}),e.destroy(h,be.constants.NGHTTP2_CANCEL))},onExitState(){c.isShuttingDown()||(g(),this.onError=void 0,this.onClose=void 0)}};function m(){A(),(o>0||t.pingIdleConnection)&&(a=en(R,t.pingIntervalMs))}function A(){clearTimeout(a),clearTimeout(r)}function R(){Z(m)}function Z(h){clearTimeout(r),r=en(()=>{e.destroy(new S("PING timed out",f.Unavailable),be.constants.NGHTTP2_CANCEL)},t.pingTimeoutMs),e.ping((p,E)=>{if(clearTimeout(r),p===null){if(E>t.pingTimeoutMs){e.destroy(new S("PING timed out",f.Unavailable),be.constants.NGHTTP2_CANCEL);return}n=Date.now(),h()}})}function V(){clearTimeout(s)}function N(){s=en(B,t.idleConnectionTimeoutMs)}function B(){e.close(),u()}function J(h,p,E){if(h===be.constants.NGHTTP2_NO_ERROR&&o===0){e.destroy(new S("received GOAWAY without any open streams",f.Canceled),be.constants.NGHTTP2_NO_ERROR);return}i=!0;const v=Buffer.from("too_many_pings","ascii");E?.equals(v)&&(t.pingIntervalMs=t.pingIntervalMs*2,l=!0)}function u(){var h;g(),(h=c.onClose)===null||h===void 0||h.call(c)}function d(h){var p,E;if(g(),l){const v=new S(`http/2 connection closed with error code ENHANCE_YOUR_CALM (0x${be.constants.NGHTTP2_ENHANCE_YOUR_CALM.toString(16)}), too_many_pings, doubled the interval`,f.ResourceExhausted);(p=c.onError)===null||p===void 0||p.call(c,v)}else(E=c.onError)===null||E===void 0||E.call(c,xt(h))}function g(){A(),V(),e.off("error",d),e.off("close",u),e.off("goaway",J)}return e.on("error",d),e.on("close",u),e.on("goaway",J),c}function en(e,t){if(!(t>2147483647))return setTimeout(e,t).unref()}function cm(e){if(e.connecting)throw new S("expected open session, but it is connecting",f.Internal);if(e.destroyed)throw new S("expected open session, but it is destroyed",f.Internal);if(e.closed)throw new S("expected open session, but it is closed",f.Internal)}function ma(e){var t;return e.httpVersion=="1.1"?um(e.nodeOptions):dm((t=e.sessionProvider)!==null&&t!==void 0?t:(n=>new Qr(n)))}function um(e){return async function(n){const o=Or(n.signal);return new Promise((a,r)=>{o.onError(i=>{r(i)}),mm(o,n.url,Object.assign(Object.assign({},e),{headers:Tr(n.header,e?.headers),method:n.method}),i=>{Mr(n,i,o),i.on("response",l=>{var s;l.on("error",o.error),o.onError(m=>l.destroy(m));const c=new Headers;a({status:(s=l.statusCode)!==null&&s!==void 0?s:0,header:zt(l.headers),body:bm(o,l,c),trailer:c})})})})}}function dm(e){return function(n){const o=Or(n.signal),a=e(n.url);return new Promise((r,i)=>{o.onError(l=>{i(l)}),hm(o,a,n.url,n.method,Tr(n.header),{},l=>{Mr(n,l,o),l.on("response",s=>{var c;r({status:(c=s[":status"])!==null&&c!==void 0?c:0,header:zt(s),body:Am(o,l,a),trailer:gm(l)})})})})}}function mm(e,t,n,o){let a;new URL(t).protocol.startsWith("https")?a=on.request(t,n):a=nn.request(t,n),e.onError(r=>a.destroy(r)),a.flushHeaders(),a.on("error",e.error),a.on("socket",function(i){function l(){i.off("connect",l),o(a)}i.readyState==="open"?o(a):i.on("connect",l)})}function bm(e,t,n){const o=t[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){const a=await e.race(o.next());return a.done===!0&&(zt(t.trailers).forEach((r,i)=>{n.set(i,r)}),e.close()),a},throw(a){throw e.error(a),a}}}}}function hm(e,t,n,o,a,r,i){const l=new URL(n);if(l.origin!==t.authority){const s=`cannot make a request to ${l.origin}: the http2 session is connected to ${t.authority}`;e.error(new S(s,f.Internal));return}t.request(o,l.pathname+l.search,a,{}).then(s=>{e.onError(c=>{if(s.closed)return;const m=c.code==f.Canceled?M.CANCEL:M.INTERNAL_ERROR;return new Promise(A=>s.close(m,A))}),s.on("error",function(m){s.writableEnded&&Mn(m).map(Kt).some(A=>A.code=="ERR_STREAM_WRITE_AFTER_END")||e.error(m)}),s.on("close",function(){const m=em(s.rstCode);m&&e.error(m)}),i(s)},s=>{e.error(s)})}function gm(e){const t=new Headers;return e.on("trailers",n=>{zt(n).forEach((o,a)=>{t.set(a,o)})}),t}function Am(e,t,n){const o=t[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){const a=await e.race(o.next());return a.done===!0&&e.close(),n?.notifyResponseByteRead(t),a},throw(a){throw e.error(a),a}}}}}async function Mr(e,t,n){if(e.body===void 0){await new Promise(a=>t.end(a));return}const o=e.body[Symbol.asyncIterator]();return new Promise(a=>{r();function r(){n.isClosed()||o.next().then(i=>{if(i.done===!0){t.end(a);return}t.write(i.value,"binary",l=>{if(l==null){r();return}o.throw!==void 0&&o.throw(xt(l)).catch(()=>{}),!(t.writableEnded&&Mn(l).map(Kt).some(s=>s.code=="ERR_STREAM_WRITE_AFTER_END"))&&n.error(l)})},i=>{n.error(i)})}})}function Or(e){let t,n=!1,o,a=[];const r={error(s){if(!n){n=!0,o=s instanceof S?s:xt(s),t?.(o);for(const c of a)c(o);i()}},close(){n||(n=!0,t&&t(new S("sentinel completed early",f.Internal)),i())},isClosed(){return n},onError(s){n?o!==void 0&&s(o):a.push(s)},race(s){let c;const m=new Promise((A,R)=>{c=A,t=R});return s.then(A=>{c?.(A)},A=>{t?.(A)}),n&&t?.(o??new S("sentinel completed early",f.Internal)),m}};function i(){e&&e.removeEventListener("abort",l),a=[],t=void 0}function l(){r.error(st(this))}return e&&(e.addEventListener("abort",l),e.aborted&&r.error(st(e))),r}function pm(e){var t,n,o,a;let r;if(e.httpVersion=="2"){let i;e.sessionManager?i=e.sessionManager:i=new Qr(e.baseUrl,{pingIntervalMs:e.pingIntervalMs,pingIdleConnection:e.pingIdleConnection,pingTimeoutMs:e.pingTimeoutMs,idleConnectionTimeoutMs:e.idleConnectionTimeoutMs},e.nodeOptions),r=ma({httpVersion:"2",sessionProvider:()=>i})}else r=ma({httpVersion:"1.1",nodeOptions:e.nodeOptions});return Object.assign(Object.assign(Object.assign({},e),{httpClient:r,useBinaryFormat:(t=e.useBinaryFormat)!==null&&t!==void 0?t:!0,interceptors:(n=e.interceptors)!==null&&n!==void 0?n:[],sendCompression:(o=e.sendCompression)!==null&&o!==void 0?o:null,acceptCompression:(a=e.acceptCompression)!==null&&a!==void 0?a:[rm,im]}),Vc(e.readMaxBytes,e.writeMaxBytes,e.compressMinBytes))}function Zm(e){return qd(pm(e))}function Rm(e){return`cli/${e??"unknown"}`}var fm=Rm("0.1.0-dev.38.1.49d2c87"),Em="/grpc";function Vm(e){return`${e.replace(/\/+$/,"")}${Em}`}var Gm=e=>async t=>{const{token:n,lang:o}=zr();return t.header.set("X-Hagi-Client",fm),n&&t.header.set("Authorization",`Bearer ${n}`),o&&t.header.set("Accept-Language",o),e(t)},Rt;function Se(){const e=Vm(zr().baseUrl);return(!Rt||Rt.baseUrl!==e)&&(Rt={baseUrl:e,transport:Zm({baseUrl:e,httpVersion:"1.1",useBinaryFormat:!0,interceptors:[Gm]})}),Rt.transport}var me=()=>Ge(Bu,Se()),He=()=>Ge(zu,Se()),Fe=()=>Ge(Ou,Se()),ba=()=>Ge($u,Se()),le=()=>Ge(gd,Se()),Nm=()=>Ge(pd,Se()),ve=()=>Ge(Id,Se()),ha=()=>Ge(Ud,Se()),tt=()=>Ge(Td,Se());async function y(e,t){return Od(e,await t)}function Wm(){return{listSessions:async e=>y(Vd,ve().listSessions({type:e.type,activeOnly:e.activeOnly,includeArchived:e.includeArchived,projectId:e.projectId,projectIds:e.projectIds??[]})),getSession:async e=>y(fd,ve().getSession({sessionId:e})),createProposalSession:async e=>y(Rd,ve().openSession({body:T(vd,e)})),createChatSession:async e=>y(Zd,ve().openChatSession({body:T(Sd,e)})),createHagiTaskSession:async e=>y(Wd,ve().startHagiTaskSession({body:T(Yd,e)})),listHagiTaskSchemas:async()=>y(_u,ba().listPresetTaskSchemas({})),getHagiTaskSchema:async e=>y(Pu,ba().getPresetTaskSchema({presetTaskId:e})),updateSession:async(e,t)=>y(Ed,ve().saveSession({sessionId:e,body:T(Xd,t)})),deleteSession:async(e,t)=>y(Gd,ve().deleteSession({sessionId:e,deleteFiles:t??!1})),sendMessage:async(e,t)=>y(yd,ha().postSessionMessage({sessionId:e,body:T(Cd,t)})),optimizeProposal:async(e,t)=>y(wd,tt().optimizeSessionProposal({sessionId:e,body:T(zd,t)})),generateProposal:async(e,t)=>y(Jd,tt().generateProposal({sessionId:e,body:T(Ld,t)})),executeProposal:async(e,t)=>y(xd,tt().executeProposal({sessionId:e,body:T(Hd,t??{})})),archiveProposal:async(e,t)=>y(kd,tt().archiveSession({sessionId:e,body:T(jd,t??{})})),completeProposal:async e=>y(Kd,tt().completeSession({sessionId:e})),submitAnnotations:async(e,t)=>y(Bd,ha().submitSessionAnnotations({sessionId:e,body:T(Fd,t)})),listProjects:async()=>y(Ad,Nm().getAggregatedData({forceRefresh:!1})),createProject:async e=>y(Zu,me().createProject({body:T(vu,e)})),updateProject:async(e,t)=>y(Ru,me().updateProject({id:e,body:T(Xu,t)})),deleteProject:async e=>{await me().deleteProject({id:e})},getMonoSpecsManagement:async e=>y(fu,me().getMonoSpecsManagement({projectId:e})),saveMonoSpecsManagement:async(e,t)=>y(Wu,me().updateMonoSpecsManagement({projectId:e,body:T(Iu,t)})),initializeMonoSpecsManagement:async e=>y(Nu,me().initializeMonoSpecs({projectId:e})),reloadMonoSpecsManagement:async e=>y(Eu,me().reloadMonoSpecs({projectId:e})),validateMonoSpecs:async e=>y(Su,me().validateMonoSpecsConfig({body:T(yu,e)})),cloneMonoSpecsRepositories:async(e,t)=>y(Vu,me().cloneMonoSpecsRepositories({projectId:e,body:T(Yu,t)})),removeMonoSpecsRepositoryCheckout:async(e,t,n)=>y(Gu,me().removeMonoSpecsRepositoryCheckout({projectId:e,path:t,force:n})),listPlans:async()=>y(Lu,Fe().listScheduledPlans({})),getPlan:async e=>y(ju,Fe().getScheduledPlan({id:e})),createPlan:async e=>y(Hu,Fe().createScheduledPlan({body:T(la,e)})),updatePlan:async(e,t)=>y(Tu,Fe().updateScheduledPlan({id:e,body:T(la,t)})),deletePlan:async e=>{await Fe().deleteScheduledPlan({id:e})},runPlan:async e=>y(Qu,Fe().runScheduledPlan({id:e})),startPlan:async e=>y(Mu,Fe().startScheduledPlan({id:e})),listVaults:async()=>y(Cu,He().listVaults({})),createVault:async e=>y(Fu,He().createVault({body:T(xu,e)})),updateVault:async(e,t)=>y(Uu,He().updateVault({id:e,body:T(Ku,t)})),deleteVault:async(e,t)=>y(wu,He().deleteVault({id:e,deleteLocalFiles:t??!1})),listVaultFiles:async(e,t)=>y(Ju,He().getVaultFiles({id:e,path:t})),previewVaultFile:async(e,t)=>y(ku,He().getVaultFilePreview({id:e,path:t})),archiveChat:async e=>y(Nd,ve().archiveChatSession({sessionId:e})),listLocalSkills:async()=>y(qu,le().getLocalSkills({})),uninstallLocalSkill:async e=>y(ed,le().uninstallLocalSkill({body:T(ud,e)})),setBuiltInSkillAvailability:async e=>y(td,le().setBuiltInSkillAvailability({body:T(dd,e)})),searchSkillGallery:async e=>y(nd,le().getSkillGallery({query:e})),getSkillGalleryDetail:async(e,t)=>y(od,le().getSkillGalleryDetail({id:e,source:t})),getSkillGalleryAudit:async(e,t)=>y(ad,le().getSkillGalleryAudit({id:e,source:t})),installGallerySkill:async e=>y(cd,le().installSkill({body:T(hd,e)})),listTrustedSkillProviders:async()=>y(rd,le().getTrustedSkillProviders({})),upsertTrustedSkillProvider:async e=>y(id,le().upsertTrustedSkillProvider({body:T(md,e)})),deleteTrustedSkillProvider:async e=>y(ld,le().deleteTrustedSkillProvider({body:T(bd,e)})),resetTrustedSkillProviders:async()=>y(sd,le().resetTrustedSkillProviders({}))}}function C(e){const t=e?.trim();return t||void 0}function F(e,t){const n=C(e);if(!n)throw new U(`${t} is required.`);return n}function gn(e){const t=e?.map(n=>C(n)).filter(Boolean);return t&&t.length>0?t:void 0}function Dr(e=process.env,t={stdout:n=>{process.stdout.write(n)},stderr:n=>{process.stderr.write(n)}}){return{api:Wm(),env:e,io:t}}function Sm(e){return e.option("--base-url <url>",'Backend API base URL. Overrides HAGI_API_BASE_URL and the "baseUrl" config file entry.').option("--token <token>","Bearer token for backend API calls. Overrides HAGI_API_TOKEN.").option("--lang <lang>","Accept-Language value for backend API calls. Overrides HAGI_API_LANG.")}function X(e){return e.option("--json","Emit deterministic JSON instead of human-readable text.")}function Y(e,t){const n=e.optsWithGlobals();return{api:t.api,env:t.env,io:t.io,outputJson:n.json===!0,runtime:Au({baseUrl:n.baseUrl,token:n.token,lang:n.lang},t.env)}}function vm(e,t){X(e.command("archive").description("Archive a chat session through the dedicated chat archive endpoint.")).requiredOption("--session-id <id>","Chat session id to archive.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.archiveChat(r);if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message}));return}a.io.stdout(`Chat archived
34
+ `}var Au="--base-url",Zu="HAGI_API_BASE_URL";function fe(e){const t=e?.trim();return t||void 0}function Lr(e=process.env){return(0,oo.join)(fe(e.XDG_CONFIG_HOME)??(0,oo.join)((0,Bi.homedir)(),".config"),"hagi","config.json")}function fu(e=process.env){const t=Lr(e);let n;try{n=(0,yi.readFileSync)(t,"utf8")}catch(r){if(r.code==="ENOENT")return;throw new w(`Cannot read CLI config file ${t}: ${r instanceof Error?r.message:String(r)}`)}let o;try{o=JSON.parse(n)}catch{throw new w(`CLI config file ${t} is not valid JSON.`)}const a=o&&typeof o=="object"&&!Array.isArray(o)?o.baseUrl:void 0;return typeof a=="string"?fe(a):void 0}function Ru(e={},t=process.env){const n=fe(e.baseUrl)??fe(t.HAGI_API_BASE_URL)??fu(t);if(!n)throw new w(`No backend base URL is configured. Set ${Au} <url>, the ${Zu} environment variable, or "baseUrl" in ${Lr(t)}.`);return{baseUrl:n,token:fe(e.token)??fe(t.HAGI_API_TOKEN),lang:fe(e.lang)??fe(t.HAGI_API_LANG)}}var ut;function Eu(e={},t=process.env){return ut=Ru(e,t),ut}function jr(){if(!ut)throw new w("The backend connection is not configured. Resolve the API runtime before calling the backend.");return ut}function Vu(){return fe(ut?.baseUrl)}var te=ee("CiFoYWdpY29kZS9wcm9qZWN0L3YxL3Byb2plY3QucHJvdG8SE2hhZ2ljb2RlLnByb2plY3QudjEiSwoUQ3JlYXRlUHJvamVjdFJlcXVlc3QSMwoEYm9keRgBIAEoCzIlLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlUHJvamVjdER0byJIChVDcmVhdGVQcm9qZWN0UmVzcG9uc2USLwoGcmVzdWx0GAEgASgLMh8uaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0RHRvIhoKGENyZWF0ZURlbW9Qcm9qZWN0UmVxdWVzdCJMChlDcmVhdGVEZW1vUHJvamVjdFJlc3BvbnNlEi8KBnJlc3VsdBgBIAEoCzIfLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdER0byJXChRVcGRhdGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCRIzCgRib2R5GAIgASgLMiUuaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVQcm9qZWN0RHRvIkgKFVVwZGF0ZVByb2plY3RSZXNwb25zZRIvCgZyZXN1bHQYASABKAsyHy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REdG8iIgoURGVsZXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiFwoVRGVsZXRlUHJvamVjdFJlc3BvbnNlIkUKHkdldFByb2plY3RTdGFuZGFyZFdvcmRzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEg8KB3JlZnJlc2gYAiABKAgiZwofR2V0UHJvamVjdFN0YW5kYXJkV29yZHNSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzUmVzcG9uc2VEdG8iPgooR2V0UHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJInsKKUdldFByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlc3BvbnNlEk4KBnJlc3VsdBgBIAEoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50RG9jdW1lbnREdG8ikAEKKVNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSTwoEYm9keRgCIAEoCzJBLmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlcXVlc3REdG8ifAoqU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlc3BvbnNlEk4KBnJlc3VsdBgBIAEoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50RG9jdW1lbnREdG8iMwodR2V0TW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJdCh5HZXRNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50RHRvIiwKFlJlbG9hZE1vbm9TcGVjc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJWChdSZWxvYWRNb25vU3BlY3NSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnREdG8igAEKIUNsb25lTW9ub1NwZWNzUmVwb3NpdG9yaWVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEkcKBGJvZHkYAiABKAsyOS5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc0Nsb25lUmVwb3NpdG9yaWVzUmVxdWVzdER0byJwCiJDbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllc1Jlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXNwb25zZUR0byJpCihSZW1vdmVNb25vU3BlY3NSZXBvc2l0b3J5Q2hlY2tvdXRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEQoEcGF0aBgCIAEoCUgAiAEBEg0KBWZvcmNlGAMgASgIQgcKBV9wYXRoInQKKVJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlc3BvbnNlEkcKBnJlc3VsdBgBIAEoCzI3LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzUmVtb3ZlQ2hlY2tvdXRSZXNwb25zZUR0byIwChpJbml0aWFsaXplTW9ub1NwZWNzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIloKG0luaXRpYWxpemVNb25vU3BlY3NSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnREdG8ifgogVXBkYXRlTW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRJGCgRib2R5GAIgASgLMjguaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVxdWVzdER0byJgCiFVcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50RHRvImcKH0dldFByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIcCg9yZXBvc2l0b3J5X3BhdGgYAiABKAlIAIgBAUISChBfcmVwb3NpdG9yeV9wYXRoImEKIEdldFByb2plY3REZXNpZ25Eb2N1bWVudFJlc3BvbnNlEj0KBnJlc3VsdBgBIAEoCzItLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdERlc2lnbkRvY3VtZW50RHRvIoABCiBTYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEkgKBGJvZHkYAiABKAsyOi5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3REdG8ibAohU2F2ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlc3BvbnNlEkcKBnJlc3VsdBgBIAEoCzI3LmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlc3VsdER0byI2CiBHZXRQcm9qZWN0RGVzaWduU2l0ZUluZGV4UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJImMKIUdldFByb2plY3REZXNpZ25TaXRlSW5kZXhSZXNwb25zZRI+CgZyZXN1bHQYASABKAsyLi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlSW5kZXhEdG8iRwojR2V0UHJvamVjdERlc2lnblNpdGVEb2N1bWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIMCgRzbHVnGAIgASgJImkKJEdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnRSZXNwb25zZRJBCgZyZXN1bHQYASABKAsyMS5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlRG9jdW1lbnREdG8ieQocVmFsaWRhdGVQcm9qZWN0QnJhbmNoUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhMKC2JyYW5jaF9uYW1lGAIgASgJEhwKD3JlcG9zaXRvcnlfcGF0aBgDIAEoCUgAiAEBQhIKEF9yZXBvc2l0b3J5X3BhdGgiYQodVmFsaWRhdGVQcm9qZWN0QnJhbmNoUmVzcG9uc2USQAoGcmVzdWx0GAEgASgLMjAuaGFnaWNvZGUucHJvamVjdC52MS5CcmFuY2hWYWxpZGF0aW9uUmVzcG9uc2VEdG8iKgoaVmFsaWRhdGVQcm9qZWN0UGF0aFJlcXVlc3QSDAoEcGF0aBgBIAEoCSJdChtWYWxpZGF0ZVByb2plY3RQYXRoUmVzcG9uc2USPgoGcmVzdWx0GAEgASgLMi4uaGFnaWNvZGUucHJvamVjdC52MS5QYXRoVmFsaWRhdGlvblJlc3BvbnNlRHRvIlcKGlNjYW5HaXRSZXBvc2l0b3JpZXNSZXF1ZXN0EjkKBGJvZHkYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLlNjYW5HaXRSZXBvc1JlcXVlc3REdG8iWwobU2NhbkdpdFJlcG9zaXRvcmllc1Jlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLnByb2plY3QudjEuU2NhbkdpdFJlcG9zUmVzcG9uc2VEdG8iYAoeVmFsaWRhdGVNb25vU3BlY3NDb25maWdSZXF1ZXN0Ej4KBGJvZHkYASABKAsyMC5oYWdpY29kZS5wcm9qZWN0LnYxLlZhbGlkYXRlTW9ub1NwZWNzUmVxdWVzdER0byJkCh9WYWxpZGF0ZU1vbm9TcGVjc0NvbmZpZ1Jlc3BvbnNlEkEKBnJlc3VsdBgBIAEoCzIxLmhhZ2ljb2RlLnByb2plY3QudjEuVmFsaWRhdGVNb25vU3BlY3NSZXNwb25zZUR0byItChdHZXRQcm9qZWN0VmF1bHRzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIlUKGEdldFByb2plY3RWYXVsdHNSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0TGlzdFJlc3BvbnNlRHRvIqABCh5PcGVuUHJvamVjdEluQ29kZVNlcnZlclJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRInChpjdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZRgCIAEoCUgAiAEBEhUKCHN1Yl9wYXRoGAMgASgJSAGIAQFCHQobX2N1cnJlbnRfaW50ZXJmYWNlX2xhbmd1YWdlQgsKCV9zdWJfcGF0aCJlCh9PcGVuUHJvamVjdEluQ29kZVNlcnZlclJlc3BvbnNlEkIKBnJlc3VsdBgBIAEoCzIyLmhhZ2ljb2RlLnByb2plY3QudjEuVnNDb2RlU2VydmVyTGF1bmNoUmVzcG9uc2VEdG8iNQofR2V0UHJvamVjdEdpdFdhdGNoU3RhdHVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIl4KIEdldFByb2plY3RHaXRXYXRjaFN0YXR1c1Jlc3BvbnNlEjoKBnJlc3VsdBgBIAEoCzIqLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdEdpdFdhdGNoU3RhdHVzIkAKDlN1YlJlcG9JbmZvRHRvEgwKBG5hbWUYASABKAkSDAoEcGF0aBgCIAEoCRISCgpoYXNfYWdlbnRzGAMgASgIIvEDCgpQcm9qZWN0RHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcGF0aBgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjEKDWNyZWF0aW9uX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKFmxhc3RfbW9kaWZpY2F0aW9uX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhUKDWlzX21vbm9fc3BlY3MYByABKAgSHwoSbW9ub19zcGVjc192ZXJzaW9uGAggASgJSAGIAQESJgoZbW9ub19zcGVjc19yZXBvX2RpcmVjdG9yeRgJIAEoCUgCiAEBEisKHm1vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZRgKIAEoCEgDiAEBEj0KEHN1Yl9yZXBvc2l0b3JpZXMYCyADKAsyIy5oYWdpY29kZS5wcm9qZWN0LnYxLlN1YlJlcG9JbmZvRHRvQg4KDF9kZXNjcmlwdGlvbkIVChNfbW9ub19zcGVjc192ZXJzaW9uQhwKGl9tb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5QiEKH19tb25vX3NwZWNzX2NvbW1pdF93aGVuX2FyY2hpdmUiWAoQQ3JlYXRlUHJvamVjdER0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24iWAoQVXBkYXRlUHJvamVjdER0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24i5gIKG1Byb2plY3RTdGFuZGFyZFdvcmRHcm91cER0bxIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRIWCglwYXJlbnRfaWQYAyABKAlIAIgBARIPCgdlbmFibGVkGAQgASgIEg0KBW9yZGVyGAUgASgFEhMKC3NvdXJjZV90eXBlGAYgASgJEhwKFHNvdXJjZV9yZWxhdGl2ZV9wYXRoGAcgASgJEgwKBHRhZ3MYCCADKAkSFQoIbGFuZ3VhZ2UYCSABKAlIAYgBARJQCghtZXRhZGF0YRgKIAMoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZEdyb3VwRHRvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9wYXJlbnRfaWRCCwoJX2xhbmd1YWdlIu0CChxQcm9qZWN0U3RhbmRhcmRXb3JkUGhyYXNlRHRvEhAKCGdyb3VwX2lkGAEgASgJEgsKA2tleRgCIAEoCRINCgVsYWJlbBgDIAEoCRIWCg5zdWJtaXR0ZWRfdGV4dBgEIAEoCRIPCgdlbmFibGVkGAUgASgIEg0KBW9yZGVyGAYgASgFEhMKC3NvdXJjZV90eXBlGAcgASgJEhwKFHNvdXJjZV9yZWxhdGl2ZV9wYXRoGAggASgJEgwKBHRhZ3MYCSADKAkSFQoIbGFuZ3VhZ2UYCiABKAlIAIgBARJRCghtZXRhZGF0YRgLIAMoCzI/LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZFBocmFzZUR0by5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUILCglfbGFuZ3VhZ2UinAEKHFByb2plY3RTdGFuZGFyZFdvcmRTb3VyY2VEdG8SDAoEdHlwZRgBIAEoCRIVCg1yZWxhdGl2ZV9wYXRoGAIgASgJEhEKCWZ1bGxfcGF0aBgDIAEoCRIOCgZleGlzdHMYBCABKAgSNAoQbGFzdF9tb2RpZmllZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiygEKIVByb2plY3RTdGFuZGFyZFdvcmRzRGlhZ25vc3RpY0R0bxIQCghzZXZlcml0eRgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSGAoLc291cmNlX3R5cGUYBCABKAlIAIgBARIaCg1yZWxhdGl2ZV9wYXRoGAUgASgJSAGIAQESEgoFZmllbGQYBiABKAlIAogBAUIOCgxfc291cmNlX3R5cGVCEAoOX3JlbGF0aXZlX3BhdGhCCAoGX2ZpZWxkIr0DCh9Qcm9qZWN0U3RhbmRhcmRXb3Jkc1Jlc3BvbnNlRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMcHJvamVjdF9yb290GAMgASgJEi0KCWxvYWRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKZnJvbV9jYWNoZRgFIAEoCBJCCgdzb3VyY2VzGAYgAygLMjEuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3JkU291cmNlRHRvEkAKBmdyb3VwcxgHIAMoCzIwLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZEdyb3VwRHRvEkIKB3BocmFzZXMYCCADKAsyMS5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRQaHJhc2VEdG8SSwoLZGlhZ25vc3RpY3MYCSADKAsyNi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRGlhZ25vc3RpY0R0byK6AgolUHJvamVjdFN0YW5kYXJkV29yZHNFZGl0YWJsZVBocmFzZUR0bxILCgNrZXkYASABKAkSDQoFbGFiZWwYAiABKAkSFgoOc3VibWl0dGVkX3RleHQYAyABKAkSDwoHZW5hYmxlZBgEIAEoCBINCgVvcmRlchgFIAEoBRIMCgR0YWdzGAYgAygJEhUKCGxhbmd1YWdlGAcgASgJSACIAQESWgoIbWV0YWRhdGEYCCADKAsySC5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVQaHJhc2VEdG8uTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCwoJX2xhbmd1YWdlIpIDCiRQcm9qZWN0U3RhbmRhcmRXb3Jkc0VkaXRhYmxlR3JvdXBEdG8SCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSFgoJcGFyZW50X2lkGAMgASgJSACIAQESDwoHZW5hYmxlZBgEIAEoCBINCgVvcmRlchgFIAEoBRIMCgR0YWdzGAYgAygJEhUKCGxhbmd1YWdlGAcgASgJSAGIAQESWQoIbWV0YWRhdGEYCCADKAsyRy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVHcm91cER0by5NZXRhZGF0YUVudHJ5EksKB3BocmFzZXMYCSADKAsyOi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVQaHJhc2VEdG8aLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9wYXJlbnRfaWRCCwoJX2xhbmd1YWdlIsQBCiVQcm9qZWN0U3RhbmRhcmRXb3Jkc092ZXJsYXlTdW1tYXJ5RHRvEhMKC3NvdXJjZV90eXBlGAEgASgJEhUKDXJlbGF0aXZlX3BhdGgYAiABKAkSDgoGZXhpc3RzGAMgASgIEhMKC2dyb3VwX2NvdW50GAQgASgFEhQKDHBocmFzZV9jb3VudBgFIAEoBRI0ChBsYXN0X21vZGlmaWVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLWAQokUHJvamVjdFN0YW5kYXJkV29yZHNTb3VyY2VWZXJzaW9uRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhMKC3NvdXJjZV90eXBlGAIgASgJEhUKDXJlbGF0aXZlX3BhdGgYAyABKAkSEQoJZnVsbF9wYXRoGAQgASgJEg4KBmV4aXN0cxgFIAEoCBI0ChBsYXN0X21vZGlmaWVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglzaWduYXR1cmUYByABKAkilgEKIVByb2plY3RTdGFuZGFyZFdvcmRzU3RhdGlzdGljc0R0bxITCgtncm91cF9jb3VudBgBIAEoBRIUCgxwaHJhc2VfY291bnQYAiABKAUSHAoUZGlzYWJsZWRfZW50cnlfY291bnQYAyABKAUSEQoJdGFnX2NvdW50GAQgASgFEhUKDXNvdXJjZV9zdGF0dXMYBSABKAki8wQKKVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudERvY3VtZW50RHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMcHJvamVjdF9yb290GAMgASgJEi0KCWxvYWRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoGZ3JvdXBzGAUgAygLMjkuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc0VkaXRhYmxlR3JvdXBEdG8SQgoHc291cmNlcxgGIAMoCzIxLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZFNvdXJjZUR0bxJaChZ1c2VyX292ZXJsYXlfc3VtbWFyaWVzGAcgAygLMjouaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc092ZXJsYXlTdW1tYXJ5RHRvEkoKCnN0YXRpc3RpY3MYCCABKAsyNi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzU3RhdGlzdGljc0R0bxJRCg5zb3VyY2VfdmVyc2lvbhgJIAEoCzI5LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNTb3VyY2VWZXJzaW9uRHRvEksKC2RpYWdub3N0aWNzGAogAygLMjYuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc0RpYWdub3N0aWNEdG8i5AEKLFNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0RHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEkkKBmdyb3VwcxgCIAMoCzI5LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNFZGl0YWJsZUdyb3VwRHRvElEKDnNvdXJjZV92ZXJzaW9uGAMgASgLMjkuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc1NvdXJjZVZlcnNpb25EdG8iVQojTW9ub1NwZWNzTWFuYWdlbWVudE1ldGFkYXRhRW50cnlEdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJEhIKCnZhbHVlX2tpbmQYAyABKAki5gQKIE1vbm9TcGVjc01hbmFnZW1lbnRSZXBvc2l0b3J5RHRvEgwKBG5hbWUYASABKAkSEQoEY29kZRgCIAEoCUgAiAEBEgwKBHBhdGgYAyABKAkSEAoDdXJsGAQgASgJSAGIAQESGQoMZGlzcGxheV9uYW1lGAUgASgJSAKIAQESEQoEdHlwZRgGIAEoCUgDiAEBEhEKBGljb24YByABKAlIBIgBARIQCghvcHRpb25hbBgIIAEoCBIMCgR0YWdzGAkgAygJEkoKCG1ldGFkYXRhGAogAygLMjguaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50TWV0YWRhdGFFbnRyeUR0bxIZChFpc192YWxpZF9naXRfcmVwbxgLIAEoCBITCgZicmFuY2gYDCABKAlIBYgBARIfChdoYXNfdW5jb21taXR0ZWRfY2hhbmdlcxgNIAEoCBIdChV1bnB1c2hlZF9jb21taXRfY291bnQYDiABKAUSGwoTaGFzX3RyYWNraW5nX2JyYW5jaBgPIAEoCBI1Cg90cmFja2luZ19icmFuY2gYECABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSEwoLYWhlYWRfY291bnQYESABKAUSFAoMYmVoaW5kX2NvdW50GBIgASgFEhcKCnN5bmNfc3RhdGUYEyABKAlIBogBAUIHCgVfY29kZUIGCgRfdXJsQg8KDV9kaXNwbGF5X25hbWVCBwoFX3R5cGVCBwoFX2ljb25CCQoHX2JyYW5jaEINCgtfc3luY19zdGF0ZSKiAgoWTW9ub1NwZWNzTWFuYWdlbWVudER0bxIPCgd2ZXJzaW9uGAEgASgJEhYKDnJlcG9fZGlyZWN0b3J5GAIgASgJEhMKC2NvbmZpZ19wYXRoGAMgASgJEhsKE2NvbW1pdF93aGVuX2FyY2hpdmUYBCABKAgSFAoMeWFtbF9wcmV2aWV3GAUgASgJEksKDHJlcG9zaXRvcmllcxgGIAMoCzI1LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzTWFuYWdlbWVudFJlcG9zaXRvcnlEdG8SSgoIbWV0YWRhdGEYByADKAsyOC5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnRNZXRhZGF0YUVudHJ5RHRvImMKIU1vbm9TcGVjc0Nsb25lUmVwb3NpdG9yeVJlc3VsdER0bxIMCgRwYXRoGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIUCgdtZXNzYWdlGAMgASgJSACIAQFCCgoIX21lc3NhZ2UicAolTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXNwb25zZUR0bxJHCgdyZXN1bHRzGAEgAygLMjYuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NDbG9uZVJlcG9zaXRvcnlSZXN1bHREdG8iTwokTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXF1ZXN0RHRvEg0KBXBhdGhzGAEgAygJEhgKEGluY2x1ZGVfb3B0aW9uYWwYAiABKAgiZQoiTW9ub1NwZWNzUmVtb3ZlQ2hlY2tvdXRSZXNwb25zZUR0bxIMCgRwYXRoGAEgASgJEg8KB3JlbW92ZWQYAiABKAgSFAoHbWVzc2FnZRgDIAEoCUgAiAEBQgoKCF9tZXNzYWdlIoQCCiNVcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVxdWVzdER0bxIPCgd2ZXJzaW9uGAEgASgJEhYKDnJlcG9fZGlyZWN0b3J5GAIgASgJEhsKE2NvbW1pdF93aGVuX2FyY2hpdmUYAyABKAgSSwoMcmVwb3NpdG9yaWVzGAQgAygLMjUuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50UmVwb3NpdG9yeUR0bxJKCghtZXRhZGF0YRgFIAMoCzI4LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzTWFuYWdlbWVudE1ldGFkYXRhRW50cnlEdG8inQEKGFByb2plY3REZXNpZ25Eb2N1bWVudER0bxIMCgRwYXRoGAEgASgJEhwKD3JlcG9zaXRvcnlfcGF0aBgCIAEoCUgAiAEBEg8KB2NvbnRlbnQYAyABKAkSDgoGZXhpc3RzGAQgASgIEhQKB3ZlcnNpb24YBSABKAlIAYgBAUISChBfcmVwb3NpdG9yeV9wYXRoQgoKCF92ZXJzaW9uIoYBCiJTYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVzdWx0RHRvEgwKBHBhdGgYASABKAkSHAoPcmVwb3NpdG9yeV9wYXRoGAIgASgJSACIAQESDwoHY3JlYXRlZBgDIAEoCBIPCgd2ZXJzaW9uGAQgASgJQhIKEF9yZXBvc2l0b3J5X3BhdGgingEKJVVwZGF0ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3REdG8SHAoPcmVwb3NpdG9yeV9wYXRoGAEgASgJSACIAQESDwoHY29udGVudBgCIAEoCRIdChBleHBlY3RlZF92ZXJzaW9uGAMgASgJSAGIAQFCEgoQX3JlcG9zaXRvcnlfcGF0aEITChFfZXhwZWN0ZWRfdmVyc2lvbiLAAQoeUHJvamVjdERlc2lnblNpdGVJbmRleEVudHJ5RHRvEgwKBHNsdWcYASABKAkSDQoFdGl0bGUYAiABKAkSDwoHc3VtbWFyeRgDIAEoCRISCgpkZXRhaWxfdXJsGAQgASgJEhsKE2Rlc2lnbl9kb3dubG9hZF91cmwYBSABKAkSHwoXcHJldmlld19saWdodF9pbWFnZV91cmwYBiABKAkSHgoWcHJldmlld19kYXJrX2ltYWdlX3VybBgHIAEoCSK+AgoZUHJvamVjdERlc2lnblNpdGVJbmRleER0bxITCgtjYXRhbG9nX3VybBgBIAEoCRIVCg1zb3VyY2Vfc3RhdHVzGAIgASgJEhMKC2VudHJ5X2NvdW50GAMgASgFEkQKB2VudHJpZXMYBCADKAsyMy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlSW5kZXhFbnRyeUR0bxIaCg1jYWNoZV9jb250cm9sGAUgASgJSACIAQESEgoFZV90YWcYBiABKAlIAYgBARIaCg1sYXN0X21vZGlmaWVkGAcgASgJSAKIAQESFAoHZXhwaXJlcxgIIAEoCUgDiAEBQhAKDl9jYWNoZV9jb250cm9sQggKBl9lX3RhZ0IQCg5fbGFzdF9tb2RpZmllZEIKCghfZXhwaXJlcyKZAgocUHJvamVjdERlc2lnblNpdGVEb2N1bWVudER0bxIMCgRzbHVnGAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB2NvbnRlbnQYAyABKAkSEgoKZGV0YWlsX3VybBgEIAEoCRIbChNkZXNpZ25fZG93bmxvYWRfdXJsGAUgASgJEhoKDWNhY2hlX2NvbnRyb2wYBiABKAlIAIgBARISCgVlX3RhZxgHIAEoCUgBiAEBEhoKDWxhc3RfbW9kaWZpZWQYCCABKAlIAogBARIUCgdleHBpcmVzGAkgASgJSAOIAQFCEAoOX2NhY2hlX2NvbnRyb2xCCAoGX2VfdGFnQhAKDl9sYXN0X21vZGlmaWVkQgoKCF9leHBpcmVzImoKG0JyYW5jaFZhbGlkYXRpb25SZXNwb25zZUR0bxIOCgZleGlzdHMYASABKAgSEAoIaXNfdmFsaWQYAiABKAgSFAoMaXNfYXZhaWxhYmxlGAMgASgIEhMKC2JyYW5jaF9uYW1lGAQgASgJIogDChlQYXRoVmFsaWRhdGlvblJlc3BvbnNlRHRvEhAKCGlzX3ZhbGlkGAEgASgIEg4KBnN0YXR1cxgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhYKCXBhdGhfdHlwZRgEIAEoCUgAiAEBEiIKFWhhc19tb25vX3NwZWNzX2NvbmZpZxgFIAEoCEgBiAEBEiMKFm1vbm9fc3BlY3NfY29uZmlnX3BhdGgYBiABKAlIAogBARImChltb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5GAcgASgJSAOIAQESKwoebW9ub19zcGVjc19jb21taXRfd2hlbl9hcmNoaXZlGAggASgISASIAQFCDAoKX3BhdGhfdHlwZUIYChZfaGFzX21vbm9fc3BlY3NfY29uZmlnQhkKF19tb25vX3NwZWNzX2NvbmZpZ19wYXRoQhwKGl9tb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5QiEKH19tb25vX3NwZWNzX2NvbW1pdF93aGVuX2FyY2hpdmUiVgoKR2l0UmVwb0R0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSFQoNcmVsYXRpdmVfcGF0aBgDIAEoCRIVCg1pc19tb25vX3NwZWNzGAQgASgIIqQBChdTY2FuR2l0UmVwb3NSZXNwb25zZUR0bxI1CgxyZXBvc2l0b3JpZXMYASADKAsyHy5oYWdpY29kZS5wcm9qZWN0LnYxLkdpdFJlcG9EdG8SEwoLdG90YWxfY291bnQYAiABKAUSDwoHc3VjY2VzcxgDIAEoCBIaCg1lcnJvcl9tZXNzYWdlGAQgASgJSACIAQFCEAoOX2Vycm9yX21lc3NhZ2UijwEKFlNjYW5HaXRSZXBvc1JlcXVlc3REdG8SEQoJcm9vdF9wYXRoGAEgASgJEhEKCW1heF9kZXB0aBgCIAEoBRIWCg5leGNsdWRlX2hpZGRlbhgDIAEoCBIdChVtYXhfZm9sZGVyc19wZXJfbGV2ZWwYBCABKAUSGAoQZXhjbHVkZV9wYXR0ZXJucxgFIAMoCSJEChlNb25vU3BlY3NDb25maWdEZXRhaWxzRHRvEg8KB3ZlcnNpb24YASABKAkSFgoOcmVwb19kaXJlY3RvcnkYAiABKAkikgEKHFZhbGlkYXRlTW9ub1NwZWNzUmVzcG9uc2VEdG8SEAoIaXNfdmFsaWQYASABKAgSPgoGY29uZmlnGAIgASgLMi4uaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NDb25maWdEZXRhaWxzRHRvEhAKCHdhcm5pbmdzGAMgAygJEg4KBmVycm9ycxgEIAMoCSIzChtWYWxpZGF0ZU1vbm9TcGVjc1JlcXVlc3REdG8SFAoMcHJvamVjdF9wYXRoGAEgASgJInwKG1ZhdWx0Qm9vdHN0cmFwRGlhZ25vc3RpY0R0bxIQCghzZXZlcml0eRgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSGgoNcmVsYXRpdmVfcGF0aBgEIAEoCUgAiAEBQhAKDl9yZWxhdGl2ZV9wYXRoIt8CCgxWYXVsdEl0ZW1EdG8SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEhUKDXBoeXNpY2FsX3BhdGgYBCABKAkSFAoHZ2l0X3VybBgFIAEoCUgAiAEBEjIKDmNyZWF0ZWRfYXRfdXRjGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg51cGRhdGVkX2F0X3V0YxgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASTwoVYm9vdHN0cmFwX2RpYWdub3N0aWNzGAggAygLMjAuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEJvb3RzdHJhcERpYWdub3N0aWNEdG8SDQoFc2NvcGUYCSABKAkSFwoKcHJvamVjdF9pZBgKIAEoCUgBiAEBQgoKCF9naXRfdXJsQg0KC19wcm9qZWN0X2lkIn4KFFZhdWx0TGlzdFJlc3BvbnNlRHRvEjQKEGdlbmVyYXRlZF9hdF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKBWl0ZW1zGAIgAygLMiEuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEl0ZW1EdG8inwQKHFZzQ29kZVNlcnZlclJ1bnRpbWVTdGF0dXNEdG8SDgoGc3RhdHVzGAEgASgJEhsKE2FjdGl2ZV9jYXBhYmlsaXRpZXMYAiADKAkSEQoEaG9zdBgDIAEoCUgAiAEBEhwKD2NvbmZpZ3VyZWRfcG9ydBgEIAEoBUgBiAEBEhsKDmVmZmVjdGl2ZV9wb3J0GAUgASgFSAKIAQESFQoIYmFzZV91cmwYBiABKAlIA4gBARIWCglhdXRoX21vZGUYByABKAlIBIgBARITCgZzb3VyY2UYCCABKAlIBYgBARIVCg1zb3VyY2VfbG9ja2VkGAkgASgIEhIKCmhhc19zZWNyZXQYCiABKAgSGgoNc2VjcmV0X3NvdXJjZRgLIAEoCUgGiAEBEjkKFWxhc3RfYXR0ZW1wdGVkX2F0X3V0YxgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKbGFzdF9lcnJvchgNIAEoCUgHiAEBEhsKDnN0YXR1c19tZXNzYWdlGA4gASgJSAiIAQFCBwoFX2hvc3RCEgoQX2NvbmZpZ3VyZWRfcG9ydEIRCg9fZWZmZWN0aXZlX3BvcnRCCwoJX2Jhc2VfdXJsQgwKCl9hdXRoX21vZGVCCQoHX3NvdXJjZUIQCg5fc2VjcmV0X3NvdXJjZUINCgtfbGFzdF9lcnJvckIRCg9fc3RhdHVzX21lc3NhZ2UinAIKHVZzQ29kZVNlcnZlckxhdW5jaFJlc3BvbnNlRHRvEhIKCmxhdW5jaF91cmwYASABKAkSHQoQY29ubmVjdGlvbl90b2tlbhgCIAEoCUgAiAEBEhEKCW9wZW5fbW9kZRgDIAEoCRJCCgdydW50aW1lGAQgASgLMjEuaGFnaWNvZGUucHJvamVjdC52MS5Wc0NvZGVTZXJ2ZXJSdW50aW1lU3RhdHVzRHRvEhgKC2luc3RhbmNlX2lkGAUgASgJSAGIAQESMgoOZXhwaXJlc19hdF91dGMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9jb25uZWN0aW9uX3Rva2VuQg4KDF9pbnN0YW5jZV9pZCKXAgoVUHJvamVjdEdpdFdhdGNoU3RhdHVzEh4KFm1vbml0b3JlZF9yZXBvc2l0b3JpZXMYASADKAkSNAoQbGFzdF9zY2FuX2F0X3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoQbmV4dF9zY2FuX2F0X3V0YxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQcmVwb3NpdG9yeV9jb3VudBgEIAEoBRISCgppc19ydW5uaW5nGAUgASgIEiIKGm1heF9tb25pdG9yZWRfcmVwb3NpdG9yaWVzGAYgASgFEiAKGGdpdF9hdXRvX3JlZnJlc2hfZW5hYmxlZBgHIAEoCDL1GAoOUHJvamVjdFNlcnZpY2USZgoNQ3JlYXRlUHJvamVjdBIpLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlUHJvamVjdFJlcXVlc3QaKi5oYWdpY29kZS5wcm9qZWN0LnYxLkNyZWF0ZVByb2plY3RSZXNwb25zZRJyChFDcmVhdGVEZW1vUHJvamVjdBItLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlRGVtb1Byb2plY3RSZXF1ZXN0Gi4uaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVEZW1vUHJvamVjdFJlc3BvbnNlEmYKDVVwZGF0ZVByb2plY3QSKS5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVByb2plY3RSZXF1ZXN0GiouaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVQcm9qZWN0UmVzcG9uc2USZgoNRGVsZXRlUHJvamVjdBIpLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlUHJvamVjdFJlcXVlc3QaKi5oYWdpY29kZS5wcm9qZWN0LnYxLkRlbGV0ZVByb2plY3RSZXNwb25zZRKEAQoXR2V0UHJvamVjdFN0YW5kYXJkV29yZHMSMy5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3RTdGFuZGFyZFdvcmRzUmVxdWVzdBo0LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdFN0YW5kYXJkV29yZHNSZXNwb25zZRKiAQohR2V0UHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50Ej0uaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0Gj4uaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXNwb25zZRKlAQoiU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudBI+LmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlcXVlc3QaPy5oYWdpY29kZS5wcm9qZWN0LnYxLlNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXNwb25zZRKBAQoWR2V0TW9ub1NwZWNzTWFuYWdlbWVudBIyLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0TW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QaMy5oYWdpY29kZS5wcm9qZWN0LnYxLkdldE1vbm9TcGVjc01hbmFnZW1lbnRSZXNwb25zZRJsCg9SZWxvYWRNb25vU3BlY3MSKy5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbG9hZE1vbm9TcGVjc1JlcXVlc3QaLC5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbG9hZE1vbm9TcGVjc1Jlc3BvbnNlEo0BChpDbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllcxI2LmhhZ2ljb2RlLnByb2plY3QudjEuQ2xvbmVNb25vU3BlY3NSZXBvc2l0b3JpZXNSZXF1ZXN0GjcuaGFnaWNvZGUucHJvamVjdC52MS5DbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllc1Jlc3BvbnNlEqIBCiFSZW1vdmVNb25vU3BlY3NSZXBvc2l0b3J5Q2hlY2tvdXQSPS5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlcXVlc3QaPi5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlc3BvbnNlEngKE0luaXRpYWxpemVNb25vU3BlY3MSLy5oYWdpY29kZS5wcm9qZWN0LnYxLkluaXRpYWxpemVNb25vU3BlY3NSZXF1ZXN0GjAuaGFnaWNvZGUucHJvamVjdC52MS5Jbml0aWFsaXplTW9ub1NwZWNzUmVzcG9uc2USigEKGVVwZGF0ZU1vbm9TcGVjc01hbmFnZW1lbnQSNS5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZU1vbm9TcGVjc01hbmFnZW1lbnRSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2UShwEKGEdldFByb2plY3REZXNpZ25Eb2N1bWVudBI0LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdERlc2lnbkRvY3VtZW50UmVxdWVzdBo1LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdERlc2lnbkRvY3VtZW50UmVzcG9uc2USigEKGVNhdmVQcm9qZWN0RGVzaWduRG9jdW1lbnQSNS5oYWdpY29kZS5wcm9qZWN0LnYxLlNhdmVQcm9qZWN0RGVzaWduRG9jdW1lbnRSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5TYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVzcG9uc2USigEKGUdldFByb2plY3REZXNpZ25TaXRlSW5kZXgSNS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3REZXNpZ25TaXRlSW5kZXhSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0RGVzaWduU2l0ZUluZGV4UmVzcG9uc2USkwEKHEdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnQSOC5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnRSZXF1ZXN0GjkuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0RGVzaWduU2l0ZURvY3VtZW50UmVzcG9uc2USfgoVVmFsaWRhdGVQcm9qZWN0QnJhbmNoEjEuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RCcmFuY2hSZXF1ZXN0GjIuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RCcmFuY2hSZXNwb25zZRJ4ChNWYWxpZGF0ZVByb2plY3RQYXRoEi8uaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RQYXRoUmVxdWVzdBowLmhhZ2ljb2RlLnByb2plY3QudjEuVmFsaWRhdGVQcm9qZWN0UGF0aFJlc3BvbnNlEngKE1NjYW5HaXRSZXBvc2l0b3JpZXMSLy5oYWdpY29kZS5wcm9qZWN0LnYxLlNjYW5HaXRSZXBvc2l0b3JpZXNSZXF1ZXN0GjAuaGFnaWNvZGUucHJvamVjdC52MS5TY2FuR2l0UmVwb3NpdG9yaWVzUmVzcG9uc2UShAEKF1ZhbGlkYXRlTW9ub1NwZWNzQ29uZmlnEjMuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZU1vbm9TcGVjc0NvbmZpZ1JlcXVlc3QaNC5oYWdpY29kZS5wcm9qZWN0LnYxLlZhbGlkYXRlTW9ub1NwZWNzQ29uZmlnUmVzcG9uc2USbwoQR2V0UHJvamVjdFZhdWx0cxIsLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdFZhdWx0c1JlcXVlc3QaLS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3RWYXVsdHNSZXNwb25zZRKEAQoXT3BlblByb2plY3RJbkNvZGVTZXJ2ZXISMy5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5Qcm9qZWN0SW5Db2RlU2VydmVyUmVxdWVzdBo0LmhhZ2ljb2RlLnByb2plY3QudjEuT3BlblByb2plY3RJbkNvZGVTZXJ2ZXJSZXNwb25zZRKHAQoYR2V0UHJvamVjdEdpdFdhdGNoU3RhdHVzEjQuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0R2l0V2F0Y2hTdGF0dXNSZXF1ZXN0GjUuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0R2l0V2F0Y2hTdGF0dXNSZXNwb25zZUIpqgImUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLlByb2plY3QuVjFiBnByb3RvMw",[Ge,ur]),Gu=G(te,1),Nu=G(te,5),Wu=G(te,15),Su=G(te,17),vu=G(te,19),Xu=G(te,21),Yu=G(te,23),Iu=G(te,25),yu=G(te,41),Bu=G(te,50),Cu=G(te,51),Fu=G(te,69),wu=G(te,71),Uu=G(te,85),Ju=Se(te,0),ve=ee("Ch9oYWdpY29kZS9wcm9qZWN0L3YxL3ZhdWx0LnByb3RvEhNoYWdpY29kZS5wcm9qZWN0LnYxIhMKEUxpc3RWYXVsdHNSZXF1ZXN0Ik8KEkxpc3RWYXVsdHNSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0TGlzdFJlc3BvbnNlRHRvIk4KEkNyZWF0ZVZhdWx0UmVxdWVzdBI4CgRib2R5GAEgASgLMiouaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVWYXVsdFJlcXVlc3REdG8iSAoTQ3JlYXRlVmF1bHRSZXNwb25zZRIxCgZyZXN1bHQYASABKAsyIS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0SXRlbUR0byJaChJVcGRhdGVWYXVsdFJlcXVlc3QSCgoCaWQYASABKAkSOAoEYm9keRgCIAEoCzIqLmhhZ2ljb2RlLnByb2plY3QudjEuVXBkYXRlVmF1bHRSZXF1ZXN0RHRvIkgKE1VwZGF0ZVZhdWx0UmVzcG9uc2USMQoGcmVzdWx0GAEgASgLMiEuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEl0ZW1EdG8iPAoSRGVsZXRlVmF1bHRSZXF1ZXN0EgoKAmlkGAEgASgJEhoKEmRlbGV0ZV9sb2NhbF9maWxlcxgCIAEoCCJSChNEZWxldGVWYXVsdFJlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlVmF1bHRSZXNwb25zZUR0byI+ChRHZXRWYXVsdEZpbGVzUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRwYXRoGAIgASgJSACIAQFCBwoFX3BhdGgiVgoVR2V0VmF1bHRGaWxlc1Jlc3BvbnNlEj0KBnJlc3VsdBgBIAEoCzItLmhhZ2ljb2RlLnByb2plY3QudjEuVmF1bHRGaWxlTGlzdFJlc3BvbnNlRHRvIjYKGkdldFZhdWx0RmlsZVByZXZpZXdSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBHBhdGgYAiABKAkiXwobR2V0VmF1bHRGaWxlUHJldmlld1Jlc3BvbnNlEkAKBnJlc3VsdBgBIAEoCzIwLmhhZ2ljb2RlLnByb2plY3QudjEuVmF1bHRGaWxlUHJldmlld1Jlc3BvbnNlRHRvIo4BChxPcGVuVmF1bHRJbkNvZGVTZXJ2ZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBHBhdGgYAiABKAlIAIgBARInChpjdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZRgDIAEoCUgBiAEBQgcKBV9wYXRoQh0KG19jdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZSJjCh1PcGVuVmF1bHRJbkNvZGVTZXJ2ZXJSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5wcm9qZWN0LnYxLlZzQ29kZVNlcnZlckxhdW5jaFJlc3BvbnNlRHRvImwKFUNyZWF0ZVZhdWx0UmVxdWVzdER0bxIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSFQoNcGh5c2ljYWxfcGF0aBgDIAEoCRIUCgdnaXRfdXJsGAQgASgJSACIAQFCCgoIX2dpdF91cmwibAoVVXBkYXRlVmF1bHRSZXF1ZXN0RHRvEgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhQKB2dpdF91cmwYBCABKAlIAIgBAUIKCghfZ2l0X3VybCKdAQoWRGVsZXRlVmF1bHRSZXNwb25zZUR0bxIKCgJpZBgBIAEoCRIPCgdkZWxldGVkGAIgASgIEiQKHGRlbGV0ZV9sb2NhbF9maWxlc19yZXF1ZXN0ZWQYAyABKAgSIwobbG9jYWxfZmlsZXNfZGVsZXRpb25fc3RhdHVzGAQgASgJEhsKE2xvY2FsX2ZpbGVzX2RlbGV0ZWQYBSABKAgizAEKEVZhdWx0RmlsZUVudHJ5RHRvEhUKDXJlbGF0aXZlX3BhdGgYASABKAkSEQoJZmlsZV9uYW1lGAIgASgJEhQKDGlzX2RpcmVjdG9yeRgDIAEoCBIRCglleHRlbnNpb24YBCABKAkSEgoKc2l6ZV9ieXRlcxgFIAEoAxI1ChFsYXN0X21vZGlmaWVkX3V0YxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGQoRcHJldmlld19zdXBwb3J0ZWQYByABKAgimAIKGFZhdWx0RmlsZUxpc3RSZXNwb25zZUR0bxIQCgh2YXVsdF9pZBgBIAEoCRISCgp2YXVsdF9uYW1lGAIgASgJEhUKDXBoeXNpY2FsX3BhdGgYAyABKAkSDgoGc3RhdHVzGAQgASgJEhcKCmVycm9yX2NvZGUYBSABKAlIAIgBARIUCgdtZXNzYWdlGAYgASgJSAGIAQESFAoMaXNfdHJ1bmNhdGVkGAcgASgIEhgKEHRvdGFsX2ZpbGVfY291bnQYCCABKAUSNQoFaXRlbXMYCSADKAsyJi5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0RmlsZUVudHJ5RHRvQg0KC19lcnJvcl9jb2RlQgoKCF9tZXNzYWdlIpQDChtWYXVsdEZpbGVQcmV2aWV3UmVzcG9uc2VEdG8SEAoIdmF1bHRfaWQYASABKAkSEgoKdmF1bHRfbmFtZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhUKDXJlbGF0aXZlX3BhdGgYBCABKAkSEQoJZmlsZV9uYW1lGAUgASgJEhEKCWV4dGVuc2lvbhgGIAEoCRISCgpzaXplX2J5dGVzGAcgASgDEjUKEWxhc3RfbW9kaWZpZWRfdXRjGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzdGF0dXMYCSABKAkSFwoKZXJyb3JfY29kZRgKIAEoCUgAiAEBEhQKB21lc3NhZ2UYCyABKAlIAYgBARIZChFwcmV2aWV3X3N1cHBvcnRlZBgMIAEoCBIZChFjb250ZW50X3RydW5jYXRlZBgNIAEoCBIUCgdjb250ZW50GA4gASgJSAKIAQFCDQoLX2Vycm9yX2NvZGVCCgoIX21lc3NhZ2VCCgoIX2NvbnRlbnQy9QUKDFZhdWx0U2VydmljZRJdCgpMaXN0VmF1bHRzEiYuaGFnaWNvZGUucHJvamVjdC52MS5MaXN0VmF1bHRzUmVxdWVzdBonLmhhZ2ljb2RlLnByb2plY3QudjEuTGlzdFZhdWx0c1Jlc3BvbnNlEmAKC0NyZWF0ZVZhdWx0EicuaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVWYXVsdFJlcXVlc3QaKC5oYWdpY29kZS5wcm9qZWN0LnYxLkNyZWF0ZVZhdWx0UmVzcG9uc2USYAoLVXBkYXRlVmF1bHQSJy5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVZhdWx0UmVxdWVzdBooLmhhZ2ljb2RlLnByb2plY3QudjEuVXBkYXRlVmF1bHRSZXNwb25zZRJgCgtEZWxldGVWYXVsdBInLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlVmF1bHRSZXF1ZXN0GiguaGFnaWNvZGUucHJvamVjdC52MS5EZWxldGVWYXVsdFJlc3BvbnNlEmYKDUdldFZhdWx0RmlsZXMSKS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFZhdWx0RmlsZXNSZXF1ZXN0GiouaGFnaWNvZGUucHJvamVjdC52MS5HZXRWYXVsdEZpbGVzUmVzcG9uc2USeAoTR2V0VmF1bHRGaWxlUHJldmlldxIvLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0VmF1bHRGaWxlUHJldmlld1JlcXVlc3QaMC5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFZhdWx0RmlsZVByZXZpZXdSZXNwb25zZRJ+ChVPcGVuVmF1bHRJbkNvZGVTZXJ2ZXISMS5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5WYXVsdEluQ29kZVNlcnZlclJlcXVlc3QaMi5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5WYXVsdEluQ29kZVNlcnZlclJlc3BvbnNlQimqAiZQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuUHJvamVjdC5WMWIGcHJvdG8z",[Ge,te]),ku=G(ve,1),xu=G(ve,3),Ku=G(ve,5),zu=G(ve,7),Lu=G(ve,9),ju=G(ve,11),Hu=G(ve,14),Tu=G(ve,15),Qu=Se(ve,0),Fe=ee("CitoYWdpY29kZS9jb21tdW5pdHkvdjEvc2NoZWR1bGVkX3BsYW5zLnByb3RvEhVoYWdpY29kZS5jb21tdW5pdHkudjEiQwoZTGlzdFNjaGVkdWxlZFBsYW5zUmVxdWVzdBIXCgpwcm9qZWN0X2lkGAEgASgJSACIAQFCDQoLX3Byb2plY3RfaWQiWgoaTGlzdFNjaGVkdWxlZFBsYW5zUmVzcG9uc2USPAoGcmVzdWx0GAEgAygLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXNwb25zZSIlChdHZXRTY2hlZHVsZWRQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCSJYChhHZXRTY2hlZHVsZWRQbGFuUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXNwb25zZSI2CiBMaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIm0KIUxpc3RTY2hlZHVsZWRQbGFuUHJvYmxlbXNSZXNwb25zZRJICgZyZXN1bHQYASADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkRlZmluaXRpb25Qcm9ibGVtRHRvIvMBCiNMaXN0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2VzUmVxdWVzdBIYCgtyYW5nZV9zdGFydBgBIAEoCUgAiAEBEhYKCXJhbmdlX2VuZBgCIAEoCUgBiAEBEh4KEWRpc3BsYXlfdGltZV96b25lGAMgASgJSAKIAQESEwoGY3Vyc29yGAQgASgJSAOIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgEiAEBQg4KDF9yYW5nZV9zdGFydEIMCgpfcmFuZ2VfZW5kQhQKEl9kaXNwbGF5X3RpbWVfem9uZUIJCgdfY3Vyc29yQg0KC19wcm9qZWN0X2lkInIKJExpc3RTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZXNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VQYWdlUmVzcG9uc2UiWwoaQ3JlYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSPQoEYm9keRgBIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuU2F2ZVJlcXVlc3QiWwobQ3JlYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiZwoaVXBkYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkSPQoEYm9keRgCIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuU2F2ZVJlcXVlc3QiWwobVXBkYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiKAoaRGVsZXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkiHQobRGVsZXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlInkKIkVkaXRTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlcXVlc3QSCgoCaWQYASABKAkSRwoEYm9keRgCIAEoCzI5LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuT2NjdXJyZW5jZUVkaXRSZXF1ZXN0ImMKI0VkaXRTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiYAokRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhoKDW9jY3VycmVuY2VfYXQYAiABKAlIAIgBAUIQCg5fb2NjdXJyZW5jZV9hdCJlCiVEZWxldGVTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiJQoXUnVuU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkiVQoYUnVuU2NoZWR1bGVkUGxhblJlc3BvbnNlEjkKBnJlc3VsdBgBIAEoCzIpLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXNzaW9uUmVzcG9uc2VEdG8iJwoZU3RhcnRTY2hlZHVsZWRQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCSJgChpTdGFydFNjaGVkdWxlZFBsYW5SZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhblJ1bkFjY2VwdGVkRHRvIigKFVNjaGVkdWxlZFBsYW5BZ2VudER0bxIPCgdoZXJvX2lkGAEgASgJImsKGVNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SEAoIc3RyYXRlZ3kYASABKAkSPAoGYWdlbnRzGAIgAygLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudER0byLgAQonU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VPdmVycmlkZVJlc3BvbnNlEioKBnJ1bl9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEbmFtZRgCIAEoCUgAiAEBEkQKCmFnZW50X3Bvb2wYAyABKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkFnZW50UG9vbER0bxInCgdwYXlsb2FkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQgcKBV9uYW1lIuMBCh5TY2hlZHVsZWRQbGFuRXhjZXB0aW9uUmVzcG9uc2USLwoLb3JpZ2luYWxfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBGtpbmQYAiABKAkSUAoIb3ZlcnJpZGUYAyABKAsyPi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VPdmVycmlkZVJlc3BvbnNlEhwKD2lucHV0X2ZpbGVfcGF0aBgEIAEoCUgAiAEBQhIKEF9pbnB1dF9maWxlX3BhdGgiOAoWU2NoZWR1bGVkUGxhblJlcGVhdER0bxIMCgRydWxlGAEgASgJEhAKCHdlZWtkYXlzGAIgAygJIq8CChhTY2hlZHVsZWRQbGFuU2NoZWR1bGVEdG8SDAoEbW9kZRgBIAEoCRIqCgZydW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKCXRpbWVfem9uZRgDIAEoCUgAiAEBEhcKCnN0YXJ0X2RhdGUYBCABKAlIAYgBARIVCghlbmRfZGF0ZRgFIAEoCUgCiAEBEhgKC3RpbWVfb2ZfZGF5GAYgASgJSAOIAQESPQoGcmVwZWF0GAcgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXBlYXREdG9CDAoKX3RpbWVfem9uZUINCgtfc3RhcnRfZGF0ZUILCglfZW5kX2RhdGVCDgoMX3RpbWVfb2ZfZGF5IrgFChVTY2hlZHVsZWRQbGFuUmVzcG9uc2USCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCRINCgVzY29wZRgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEiEKFGRlZmluaXRpb25fZmlsZV9wYXRoGAUgASgJSACIAQESDAoEbmFtZRgGIAEoCRIPCgdlbmFibGVkGAcgASgIEhEKBGljb24YCCABKAlIAYgBARISCgVjb2xvchgJIAEoCUgCiAEBEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkEKCHNjaGVkdWxlGAwgASgLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5TY2hlZHVsZUR0bxJECgphZ2VudF9wb29sGA0gASgLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SJwoHcGF5bG9hZBgOIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRINCgVzdGF0ZRgPIAEoCRIvCgtuZXh0X3J1bl9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoKZXhjZXB0aW9ucxgRIAMoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuRXhjZXB0aW9uUmVzcG9uc2USHAoPaW5wdXRfZmlsZV9wYXRoGBIgASgJSAOIAQFCFwoVX2RlZmluaXRpb25fZmlsZV9wYXRoQgcKBV9pY29uQggKBl9jb2xvckISChBfaW5wdXRfZmlsZV9wYXRoIkcKIVNjaGVkdWxlZFBsYW5EZWZpbml0aW9uUHJvYmxlbUR0bxIRCglmaWxlX3BhdGgYASABKAkSDwoHbWVzc2FnZRgCIAEoCSLTAQofU2NoZWR1bGVkUGxhblJlY3VycmVuY2VSZXNwb25zZRIMCgRtb2RlGAEgASgJEhEKBHJ1bGUYAiABKAlIAIgBARIQCgh3ZWVrZGF5cxgDIAMoCRIXCgpzdGFydF9kYXRlGAQgASgJSAGIAQESFQoIZW5kX2RhdGUYBSABKAlIAogBARIYCgt0aW1lX29mX2RheRgGIAEoCUgDiAEBQgcKBV9ydWxlQg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZUIOCgxfdGltZV9vZl9kYXki6gMKH1NjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2USDwoHcGxhbl9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEjEKDW9jY3VycmVuY2VfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBG5hbWUYBCABKAkSDAoEdHlwZRgFIAEoCRIPCgdlbmFibGVkGAYgASgIEhEKBGljb24YByABKAlIAIgBARISCgVjb2xvchgIIAEoCUgBiAEBEg0KBXN0YXRlGAkgASgJEh8KEnNjaGVkdWxlX3RpbWVfem9uZRgKIAEoCUgCiAEBEkoKCnJlY3VycmVuY2UYCyABKAsyNi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhblJlY3VycmVuY2VSZXNwb25zZRIvCgtuZXh0X3J1bl9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLb3JpZ2luYWxfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2lzX21vZGlmaWVkGA4gASgIQgcKBV9pY29uQggKBl9jb2xvckIVChNfc2NoZWR1bGVfdGltZV96b25lIpMCCiNTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVBhZ2VSZXNwb25zZRIvCgtyYW5nZV9zdGFydBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJcmFuZ2VfZW5kGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFkaXNwbGF5X3RpbWVfem9uZRgDIAEoCRJHCgdlbnRyaWVzGAQgAygLMjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2USGAoLbmV4dF9jdXJzb3IYBSABKAlIAIgBAUIOCgxfbmV4dF9jdXJzb3Ii0QIKGFNjaGVkdWxlZFBsYW5TYXZlUmVxdWVzdBIMCgR0eXBlGAEgASgJEhIKBXNjb3BlGAIgASgJSACIAQESDAoEbmFtZRgDIAEoCRIPCgdlbmFibGVkGAQgASgIEhEKBGljb24YBSABKAlIAYgBARISCgVjb2xvchgGIAEoCUgCiAEBEkEKCHNjaGVkdWxlGAcgASgLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5TY2hlZHVsZUR0bxJECgphZ2VudF9wb29sGAggASgLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SJwoHcGF5bG9hZBgJIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUIICgZfc2NvcGVCBwoFX2ljb25CCAoGX2NvbG9yIo4CCiJTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZUVkaXRSZXF1ZXN0EjEKDW9jY3VycmVuY2VfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEioKBnJ1bl9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEbmFtZRgDIAEoCUgAiAEBEkQKCmFnZW50X3Bvb2wYBCABKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkFnZW50UG9vbER0bxInCgdwYXlsb2FkGAUgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQgcKBV9uYW1lIs4DChJDaGF0SGVyb1N1bW1hcnlEdG8SDwoHaGVyb19pZBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEQoEaWNvbhgEIAEoCUgBiAEBEhUKDWV4ZWN1dG9yX3R5cGUYBSABKAkSGQoMYWdlbnRfY2xpX2lkGAYgASgJSAKIAQESGwoOYWdlbnRfY2xpX25hbWUYByABKAlIA4gBARIbCg5hZ2VudF9jbGlfaWNvbhgIIAEoCUgEiAEBEhUKCG1vZGVsX2lkGAkgASgJSAWIAQESFwoKbW9kZWxfbmFtZRgKIAEoCUgGiAEBEhcKCm1vZGVsX2ljb24YCyABKAlIB4gBARIiChVzZWNvbmRhcnlfbW9kZWxfbGFiZWwYDCABKAlICIgBAUIOCgxfZGVzY3JpcHRpb25CBwoFX2ljb25CDwoNX2FnZW50X2NsaV9pZEIRCg9fYWdlbnRfY2xpX25hbWVCEQoPX2FnZW50X2NsaV9pY29uQgsKCV9tb2RlbF9pZEINCgtfbW9kZWxfbmFtZUINCgtfbW9kZWxfaWNvbkIYChZfc2Vjb25kYXJ5X21vZGVsX2xhYmVsIjgKFE9wZW5TcGVjVGFza1Byb2dyZXNzEhEKCWNvbXBsZXRlZBgBIAEoBRINCgV0b3RhbBgCIAEoBSKAAgoQT3BlblNwZWNGaWxlSW5mbxIRCglmaWxlX25hbWUYASABKAkSFQoNcmVsYXRpdmVfcGF0aBgCIAEoCRIOCgZleGlzdHMYAyABKAgSEQoJZmlsZV90eXBlGAQgASgJEhMKC2lzX3JlcXVpcmVkGAUgASgIEhMKC2lzX2FyY2hpdmVkGAYgASgIEjEKDWFyY2hpdmVkX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkIKDXRhc2tfcHJvZ3Jlc3MYCCABKAsyKy5oYWdpY29kZS5jb21tdW5pdHkudjEuT3BlblNwZWNUYXNrUHJvZ3Jlc3MiXgoRT3BlblNwZWNGaWxlc0luZm8SEQoJYmFzZV9wYXRoGAEgASgJEjYKBWZpbGVzGAIgAygLMicuaGFnaWNvZGUuY29tbXVuaXR5LnYxLk9wZW5TcGVjRmlsZUluZm8izAEKFlF1ZXVlTWVzc2FnZVN1bW1hcnlEdG8SDQoFaW5kZXgYASABKAUSDAoEbW9kZRgCIAEoBRItCglxdWV1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvbnRlbnRfcHJldmlldxgEIAEoCRIhChRleGVjdXRpb25fbWVzc2FnZV9pZBgFIAEoCUgAiAEBEhEKCWNhbl9zdGVlchgGIAEoCEIXChVfZXhlY3V0aW9uX21lc3NhZ2VfaWQigAEKFlNlc3Npb25Ob3RpZmljYXRpb25EdG8SDAoEa2luZBgBIAEoCRIvCgtvYnNlcnZlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoHcGF5bG9hZBgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSLtAQoWU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIaCg1wcm9tcHRfdG9rZW5zGAEgASgFSACIAQESIQoUY2FjaGVkX3Byb21wdF90b2tlbnMYAiABKAVIAYgBARIeChFjb21wbGV0aW9uX3Rva2VucxgDIAEoBUgCiAEBEjMKD2xhc3RfdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3Byb21wdF90b2tlbnNCFwoVX2NhY2hlZF9wcm9tcHRfdG9rZW5zQhQKEl9jb21wbGV0aW9uX3Rva2VucyJfChRTdGFnZUV4ZWN1dG9ySW5mb0R0bxIVCg1wcm92aWRlcl90eXBlGAEgASgJEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAivAIKFVN0YWdlSGVyb1NlbGVjdGlvbkR0bxIRCglzdGFnZV9rZXkYASABKAkSEgoKc2NyaXB0X2tleRgCIAEoCRIVCg1zY2VuYXJpb19uYW1lGAMgASgJEhQKB2hlcm9faWQYBCABKAlIAIgBARIWCgloZXJvX25hbWUYBSABKAlIAYgBARIWCgloZXJvX2ljb24YBiABKAlIAogBARIVCg1leGVjdXRvcl90eXBlGAcgASgJEhUKDXVzZWRfZmFsbGJhY2sYCCABKAgSGAoQc2VsZWN0aW9uX3NvdXJjZRgJIAEoCRIvCgtzZWxlY3RlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2hlcm9faWRCDAoKX2hlcm9fbmFtZUIMCgpfaGVyb19pY29uIrcLChJTZXNzaW9uUmVzcG9uc2VEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhwKD2NoaWVmX2NvbXBsYWludBgEIAEoCUgBiAEBEgwKBGNvZGUYBSABKAUSDAoEdHlwZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSEQoJaXNfYWN0aXZlGAggASgIEjIKDmxhc3RfYWN0aXZlX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwcm9qZWN0X2lkGAogASgJEhQKDHByb2plY3RfbmFtZRgLIAEoCRIUCgxwcm9qZWN0X3BhdGgYDCABKAkSGgoNcHJvcG9zYWxfbmFtZRgNIAEoCUgCiAEBEkEKD29wZW5fc3BlY19maWxlcxgOIAEoCzIoLmhhZ2ljb2RlLmNvbW11bml0eS52MS5PcGVuU3BlY0ZpbGVzSW5mbxIdChVwZW5kaW5nX21lc3NhZ2VfY291bnQYDyABKAUSRQoOcXVldWVfbWVzc2FnZXMYECADKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuUXVldWVNZXNzYWdlU3VtbWFyeUR0bxIeChF3b3JraW5nX2RpcmVjdG9yeRgRIAEoCUgDiAEBEhUKCG1ldGFkYXRhGBIgASgJSASIAQESHwoSY2hhdF9leGVjdXRvcl90eXBlGBMgASgJSAWIAQESPAoJY2hhdF9oZXJvGBQgASgLMikuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkNoYXRIZXJvU3VtbWFyeUR0bxJbChJzdGFnZV9leGVjdXRvcl9tYXAYFSADKAsyPy5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblJlc3BvbnNlRHRvLlN0YWdlRXhlY3V0b3JNYXBFbnRyeRJmChhzdGFnZV9oZXJvX3NlbGVjdGlvbl9tYXAYFiADKAsyRC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblJlc3BvbnNlRHRvLlN0YWdlSGVyb1NlbGVjdGlvbk1hcEVudHJ5EiAKE3J1bnRpbWVfbW9kZWxfbGFiZWwYFyABKAlIBogBARI5ChVwcm9jZXNzaW5nX3N0YXJ0ZWRfYXQYGCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkQKDXNlc3Npb25fdXNhZ2UYGSABKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIcCg9wcmV2aW91c19zdGF0dXMYGiABKAlIB4gBARJECg1ub3RpZmljYXRpb25zGBsgAygLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNlc3Npb25Ob3RpZmljYXRpb25EdG8aZAoVU3RhZ2VFeGVjdXRvck1hcEVudHJ5EgsKA2tleRgBIAEoCRI6CgV2YWx1ZRgCIAEoCzIrLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TdGFnZUV4ZWN1dG9ySW5mb0R0bzoCOAEaagoaU3RhZ2VIZXJvU2VsZWN0aW9uTWFwRW50cnkSCwoDa2V5GAEgASgJEjsKBXZhbHVlGAIgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlN0YWdlSGVyb1NlbGVjdGlvbkR0bzoCOAFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9jaGllZl9jb21wbGFpbnRCEAoOX3Byb3Bvc2FsX25hbWVCFAoSX3dvcmtpbmdfZGlyZWN0b3J5QgsKCV9tZXRhZGF0YUIVChNfY2hhdF9leGVjdXRvcl90eXBlQhYKFF9ydW50aW1lX21vZGVsX2xhYmVsQhIKEF9wcmV2aW91c19zdGF0dXMiLgobU2NoZWR1bGVkUGxhblJ1bkFjY2VwdGVkRHRvEg8KB3BsYW5faWQYASABKAky0AsKFVNjaGVkdWxlZFBsYW5zU2VydmljZRJ5ChJMaXN0U2NoZWR1bGVkUGxhbnMSMC5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5zUmVxdWVzdBoxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhbnNSZXNwb25zZRJzChBHZXRTY2hlZHVsZWRQbGFuEi4uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNjaGVkdWxlZFBsYW5SZXF1ZXN0Gi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNjaGVkdWxlZFBsYW5SZXNwb25zZRKOAQoZTGlzdFNjaGVkdWxlZFBsYW5Qcm9ibGVtcxI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVxdWVzdBo4LmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVzcG9uc2USlwEKHExpc3RTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZXMSOi5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlc1JlcXVlc3QaOy5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlc1Jlc3BvbnNlEnwKE0NyZWF0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ3JlYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ3JlYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEnwKE1VwZGF0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBkYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBkYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEnwKE0RlbGV0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEpQBChtFZGl0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2USOS5oYWdpY29kZS5jb21tdW5pdHkudjEuRWRpdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5FZGl0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXNwb25zZRKaAQodRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2USOy5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXF1ZXN0GjwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2UScwoQUnVuU2NoZWR1bGVkUGxhbhIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SdW5TY2hlZHVsZWRQbGFuUmVxdWVzdBovLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SdW5TY2hlZHVsZWRQbGFuUmVzcG9uc2USeQoSU3RhcnRTY2hlZHVsZWRQbGFuEjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlN0YXJ0U2NoZWR1bGVkUGxhblJlcXVlc3QaMS5oYWdpY29kZS5jb21tdW5pdHkudjEuU3RhcnRTY2hlZHVsZWRQbGFuUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ne,Ge]),Mu=G(Fe,1),Ou=G(Fe,3),Du=G(Fe,9),_u=G(Fe,11),Pu=G(Fe,19),$u=G(Fe,21),ca=G(Fe,33),qu=Se(Fe,0),ed=ee("Ci1oYWdpY29kZS9jb21tdW5pdHkvdjEvY29tbXVuaXR5X3ByZXNldHMucHJvdG8SFWhhZ2ljb2RlLmNvbW11bml0eS52MSIdChtMaXN0Q29tbXVuaXR5UHJlc2V0c1JlcXVlc3QiYwocTGlzdENvbW11bml0eVByZXNldHNSZXNwb25zZRJDCgZyZXN1bHQYASABKAsyMy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxIYWdpVGFza0xpc3RSZXNwb25zZUR0byJmCh1JbnN0YWxsQ29tbXVuaXR5UHJlc2V0UmVxdWVzdBJFCgRib2R5GAEgASgLMjcuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkNvbW11bml0eVByZXNldEluc3RhbGxSZXF1ZXN0RHRvImwKHkluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0T3BlcmF0aW9uUmVzcG9uc2VEdG8ifAogU2V0Q29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3QSEQoJcHJlc2V0X2lkGAEgASgJEkUKBGJvZHkYAiABKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3REdG8ibwohU2V0Q29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRPcGVyYXRpb25SZXNwb25zZUR0byI0Ch9Vbmluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXF1ZXN0EhEKCXByZXNldF9pZBgBIAEoCSJuCiBVbmluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0T3BlcmF0aW9uUmVzcG9uc2VEdG8iIAoeUmVmcmVzaENvbW11bml0eVByZXNldHNSZXF1ZXN0IiEKH1JlZnJlc2hDb21tdW5pdHlQcmVzZXRzUmVzcG9uc2UihwEKFkNvbW11bml0eVByZXNldFJpc2tEdG8SGQoRZGVjbGFyZXNfY29tbWFuZHMYASABKAgSFwoPZGVjbGFyZXNfc2tpbGxzGAIgASgIEhYKDmRlY2xhcmVzX2hvb2tzGAMgASgIEiEKGWRlY2xhcmVzX2NsaV9yZXF1aXJlbWVudHMYBCABKAgi2QQKGExvY2FsSGFnaVRhc2tMaXN0SXRlbUR0bxIRCglwcmVzZXRfaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEwoLc291cmNlX2tpbmQYBCABKAkSGQoRaW5zdGFsbGF0aW9uX2tpbmQYBSABKAkSFwoPbWFuYWdlbWVudF9raW5kGAYgASgJEiAKGGlzX3Nlc3Npb25fY3JlYXRpb25fb25seRgHIAEoCBIPCgdlbmFibGVkGAggASgIEhQKDGlzX3JlbW92YWJsZRgJIAEoCBIRCglwdWJsaXNoZXIYCiABKAkSHQoQc291cmNlX3JlZmVyZW5jZRgLIAEoCUgAiAEBEhsKDmFyY2hpdmVfc2hhMjU2GAwgASgJSAGIAQESNAoQaW5zdGFsbGVkX2F0X3V0YxgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoScmVsYXRpdmVfZGlyZWN0b3J5GA4gASgJEhgKC2Rlc2NyaXB0aW9uGA8gASgJSAKIAQESPAoFcmlza3MYECABKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0Umlza0R0bxIWCglzb3VyY2VfaWQYESABKAlIA4gBARIRCgRpY29uGBIgASgJSASIAQFCEwoRX3NvdXJjZV9yZWZlcmVuY2VCEQoPX2FyY2hpdmVfc2hhMjU2Qg4KDF9kZXNjcmlwdGlvbkIMCgpfc291cmNlX2lkQgcKBV9pY29uIloKHVByZXNldFRhc2tQbHVnaW5EaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIRCgRwYXRoGAMgASgJSACIAQFCBwoFX3BhdGgiqQEKHExvY2FsSGFnaVRhc2tMaXN0UmVzcG9uc2VEdG8SPgoFaXRlbXMYASADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxIYWdpVGFza0xpc3RJdGVtRHRvEkkKC2RpYWdub3N0aWNzGAIgAygLMjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQbHVnaW5EaWFnbm9zdGljRHRvIqwDCh5Db21tdW5pdHlQcmVzZXRJbnN0YWxsYXRpb25EdG8SEQoJcHJlc2V0X2lkGAEgASgJEhYKCW5hbWVzcGFjZRgCIAEoCUgAiAEBEg8KB3ZlcnNpb24YAyABKAkSEQoJcHVibGlzaGVyGAQgASgJEh0KEHNvdXJjZV9yZWZlcmVuY2UYBSABKAlIAYgBARIWCg5hcmNoaXZlX3NoYTI1NhgGIAEoCRI0ChBpbnN0YWxsZWRfYXRfdXRjGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJyZWxhdGl2ZV9kaXJlY3RvcnkYCCABKAkSDwoHZW5hYmxlZBgJIAEoCBI8CgVyaXNrcxgKIAEoCzItLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRSaXNrRHRvEhYKCXNvdXJjZV9pZBgLIAEoCUgCiAEBEhEKBGljb24YDCABKAlIA4gBAUIMCgpfbmFtZXNwYWNlQhMKEV9zb3VyY2VfcmVmZXJlbmNlQgwKCl9zb3VyY2VfaWRCBwoFX2ljb24ilAIKI0NvbW11bml0eVByZXNldE9wZXJhdGlvblJlc3BvbnNlRHRvEhEKCXN1Y2NlZWRlZBgBIAEoCBIWCglwcmVzZXRfaWQYAiABKAlIAIgBARISCgVlcnJvchgDIAEoCUgBiAEBEksKDGluc3RhbGxhdGlvbhgEIAEoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRJbnN0YWxsYXRpb25EdG8SSQoLZGlhZ25vc3RpY3MYBSADKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BsdWdpbkRpYWdub3N0aWNEdG9CDAoKX3ByZXNldF9pZEIICgZfZXJyb3IisgIKIENvbW11bml0eVByZXNldEluc3RhbGxSZXF1ZXN0RHRvEhYKDmFyY2hpdmVfYmFzZTY0GAEgASgJEh8KEmV4cGVjdGVkX3ByZXNldF9pZBgCIAEoCUgAiAEBEh0KEGV4cGVjdGVkX3ZlcnNpb24YAyABKAlIAYgBARIcCg9leHBlY3RlZF9zaGEyNTYYBCABKAlIAogBARIWCglwdWJsaXNoZXIYBSABKAlIA4gBARIdChBzb3VyY2VfcmVmZXJlbmNlGAYgASgJSASIAQFCFQoTX2V4cGVjdGVkX3ByZXNldF9pZEITChFfZXhwZWN0ZWRfdmVyc2lvbkISChBfZXhwZWN0ZWRfc2hhMjU2QgwKCl9wdWJsaXNoZXJCEwoRX3NvdXJjZV9yZWZlcmVuY2UiMwogQ29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3REdG8SDwoHZW5hYmxlZBgBIAEoCDLMBQoXQ29tbXVuaXR5UHJlc2V0c1NlcnZpY2USfwoUTGlzdENvbW11bml0eVByZXNldHMSMi5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdENvbW11bml0eVByZXNldHNSZXF1ZXN0GjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RDb21tdW5pdHlQcmVzZXRzUmVzcG9uc2UShQEKFkluc3RhbGxDb21tdW5pdHlQcmVzZXQSNC5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbENvbW11bml0eVByZXNldFJlcXVlc3QaNS5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbENvbW11bml0eVByZXNldFJlc3BvbnNlEo4BChlTZXRDb21tdW5pdHlQcmVzZXRFbmFibGVkEjcuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldENvbW11bml0eVByZXNldEVuYWJsZWRSZXF1ZXN0GjguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldENvbW11bml0eVByZXNldEVuYWJsZWRSZXNwb25zZRKLAQoYVW5pbnN0YWxsQ29tbXVuaXR5UHJlc2V0EjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbENvbW11bml0eVByZXNldFJlcXVlc3QaNy5oYWdpY29kZS5jb21tdW5pdHkudjEuVW5pbnN0YWxsQ29tbXVuaXR5UHJlc2V0UmVzcG9uc2USiAEKF1JlZnJlc2hDb21tdW5pdHlQcmVzZXRzEjUuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlZnJlc2hDb21tdW5pdHlQcmVzZXRzUmVxdWVzdBo2LmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZWZyZXNoQ29tbXVuaXR5UHJlc2V0c1Jlc3BvbnNlQiuqAihQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuQ29tbXVuaXR5LlYxYgZwcm90bzM",[Ge]),On=ee("CihoYWdpY29kZS9jb21tdW5pdHkvdjEvcHJlc2V0X3Rhc2tzLnByb3RvEhVoYWdpY29kZS5jb21tdW5pdHkudjEiHQobR2V0UHJlc2V0VGFza0NhdGFsb2dSZXF1ZXN0ImMKHEdldFByZXNldFRhc2tDYXRhbG9nUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDYXRhbG9nUmVzcG9uc2VEdG8ibwoiQ2hlY2tQcmVzZXRUYXNrUmVxdWlyZW1lbnRzUmVxdWVzdBJJCgRib2R5GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVxdWVzdER0byJzCiNDaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHNSZXNwb25zZRJMCgZyZXN1bHQYASABKAsyPC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tSZXNwb25zZUR0byIeChxMaXN0UHJlc2V0VGFza1NjaGVtYXNSZXF1ZXN0ImIKHUxpc3RQcmVzZXRUYXNrU2NoZW1hc1Jlc3BvbnNlEkEKBnJlc3VsdBgBIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU3VtbWFyeUR0byI0ChpHZXRQcmVzZXRUYXNrU2NoZW1hUmVxdWVzdBIWCg5wcmVzZXRfdGFza19pZBgBIAEoCSJhChtHZXRQcmVzZXRUYXNrU2NoZW1hUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDcmVhdGlvblNjaGVtYUR0byLKAQogUHJlc2V0VGFza0NhdGFsb2dEaXNhYmxlZEl0ZW1EdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSDgoGc3RhdHVzGAQgASgJEhgKEHBsdWdpbl9yb290X3BhdGgYBSABKAkSSQoLZGlhZ25vc3RpY3MYBiADKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BsdWdpbkRpYWdub3N0aWNEdG8iPQodUHJlc2V0VGFza0FnZW50UmVxdWlyZW1lbnREdG8SDAoEbW9kZRgBIAEoCRIOCgZhZ2VudHMYAiADKAki6gEKFFByZXNldFRhc2tDb21tYW5kRHRvEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEg0KBWxhYmVsGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhIKBXNraWxsGAUgASgJSACIAQESEAoDdXJsGAYgASgJSAGIAQESFgoJZG9jc19zbHVnGAcgASgJSAKIAQESHQoQcHJlbHVkZV90ZW1wbGF0ZRgIIAEoCUgDiAEBQggKBl9za2lsbEIGCgRfdXJsQgwKCl9kb2NzX3NsdWdCEwoRX3ByZWx1ZGVfdGVtcGxhdGUiNgoZUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCSLMAQobUHJlc2V0VGFza0NvbW1hbmRDYXRhbG9nRHRvEhQKDHBhcmFtZXRlcl9pZBgBIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgCIAEoCRJACgZncm91cHMYAyADKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxI9Cghjb21tYW5kcxgEIAMoCzIrLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ29tbWFuZER0byJWChpQcmVzZXRUYXNrQ29tcGF0aWJpbGl0eUR0bxIOCgZsZWdhY3kYASABKAkSDwoHYmluZGluZxgCIAEoCRIXCg9kaWFnbm9zdGljX2NvZGUYAyABKAkidAoWUHJlc2V0VGFza0V4ZWN1dGlvbkR0bxIWCg5zY2hlbWFfdmVyc2lvbhgBIAEoCRIQCghzdHJhdGVneRgCIAEoCRIcCg9leHRlbnNpb25fcG9pbnQYAyABKAlIAIgBAUISChBfZXh0ZW5zaW9uX3BvaW50Ip8CChlQcmVzZXRUYXNrSW5wdXRCaW5kaW5nRHRvEg0KBWlucHV0GAEgASgJEh0KEHByb21wdF9wYXJhbWV0ZXIYAiABKAlIAIgBARIZCgxtZXRhZGF0YV9rZXkYAyABKAlIAYgBARIQCghyZXF1aXJlZBgEIAEoCBIVCghwcm9kdWNlchgFIAEoCUgCiAEBEhcKCnZhbHVlX3R5cGUYBiABKAlIA4gBARIWCgl0cmFuc2Zvcm0YByABKAlIBIgBARIPCgdhbGlhc2VzGAggAygJQhMKEV9wcm9tcHRfcGFyYW1ldGVyQg8KDV9tZXRhZGF0YV9rZXlCCwoJX3Byb2R1Y2VyQg0KC192YWx1ZV90eXBlQgwKCl90cmFuc2Zvcm0iOAoYUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvEg0KBXZhbHVlGAEgASgJEg0KBWxhYmVsGAIgASgJIt4DCiBQcmVzZXRUYXNrRmllbGRDb21wb25lbnRQcm9wc0R0bxIgChN0YXJnZXRfc2VsZWN0aW9uX2lkGAEgASgJSACIAQESFwoKZW1wdHlfdGV4dBgCIAEoCUgBiAEBEiMKFmFsbG93X291dHB1dF9zZWxlY3Rpb24YAyABKAhIAogBARIlChhyZXF1aXJlX291dHB1dF9zZWxlY3Rpb24YBCABKAhIA4gBARIYCgtlbXB0eV90aXRsZRgFIAEoCUgEiAEBEh4KEWVtcHR5X2Rlc2NyaXB0aW9uGAYgASgJSAWIAQESHQoQcmVxdWlyZWRfbWVzc2FnZRgHIAEoCUgGiAEBEkAKB29wdGlvbnMYCCADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvQhYKFF90YXJnZXRfc2VsZWN0aW9uX2lkQg0KC19lbXB0eV90ZXh0QhkKF19hbGxvd19vdXRwdXRfc2VsZWN0aW9uQhsKGV9yZXF1aXJlX291dHB1dF9zZWxlY3Rpb25CDgoMX2VtcHR5X3RpdGxlQhQKEl9lbXB0eV9kZXNjcmlwdGlvbkITChFfcmVxdWlyZWRfbWVzc2FnZSL3AgoXUHJlc2V0VGFza1BhbmVsRmllbGREdG8SCgoCaWQYASABKAkSEAoIcmVuZGVyZXIYAiABKAkSEgoKaW5wdXRfdHlwZRgDIAEoCRISCgp2YWx1ZV90eXBlGAQgASgJEhIKBWxhYmVsGAUgASgJSACIAQESEQoEaGludBgGIAEoCUgBiAEBEhgKC3BsYWNlaG9sZGVyGAcgASgJSAKIAQESEAoIcmVxdWlyZWQYCCABKAgSEwoGb3V0cHV0GAkgASgJSAOIAQESGwoOc2VsZWN0aW9uX21vZGUYCiABKAlIBIgBARJQCg9jb21wb25lbnRfcHJvcHMYCyABKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkQ29tcG9uZW50UHJvcHNEdG9CCAoGX2xhYmVsQgcKBV9oaW50Qg4KDF9wbGFjZWhvbGRlckIJCgdfb3V0cHV0QhEKD19zZWxlY3Rpb25fbW9kZSJ3ChlQcmVzZXRUYXNrUGFuZWxTZWN0aW9uRHRvEgoKAmlkGAEgASgJEg4KBmxheW91dBgCIAEoCRI+CgZmaWVsZHMYAyADKAsyLi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BhbmVsRmllbGREdG8iyQEKIVByZXNldFRhc2tQcm9tcHRWYXJpYW50U3VtbWFyeUR0bxIKCgJpZBgBIAEoCRJSCgVtYXRjaBgCIAMoCzJDLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUHJvbXB0VmFyaWFudFN1bW1hcnlEdG8uTWF0Y2hFbnRyeRpECgpNYXRjaEVudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi/gEKIlByZXNldFRhc2tQcm9tcHRTdHJhdGVneVN1bW1hcnlEdG8SDAoEdHlwZRgBIAEoCRIWCg5kZWZhdWx0X2xvY2FsZRgCIAEoCRIZChFzdXBwb3J0ZWRfbG9jYWxlcxgDIAMoCRIRCglzZWxlY3RvcnMYBCADKAkSSgoIdmFyaWFudHMYBSADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1Byb21wdFZhcmlhbnRTdW1tYXJ5RHRvEiAKE2ZhbGxiYWNrX3ZhcmlhbnRfaWQYBiABKAlIAIgBAUIWChRfZmFsbGJhY2tfdmFyaWFudF9pZCJFChhQcmVzZXRUYXNrUmVxdWlyZW1lbnREdG8SDAoEdHlwZRgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBW5hbWVzGAMgAygJIqoDCh5QcmVzZXRUYXNrU2NlbmVSZWdpc3RyYXRpb25EdG8SEQoJc2NlbmVfa2V5GAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB3N1bW1hcnkYAyABKAkSYQoPdGl0bGVfYnlfbG9jYWxlGAQgAygLMkguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2VuZVJlZ2lzdHJhdGlvbkR0by5UaXRsZUJ5TG9jYWxlRW50cnkSZQoRc3VtbWFyeV9ieV9sb2NhbGUYBSADKAsySi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjZW5lUmVnaXN0cmF0aW9uRHRvLlN1bW1hcnlCeUxvY2FsZUVudHJ5Eh0KFWJhY2tncm91bmRfaW1hZ2Vfc2xvdBgGIAEoBRo0ChJUaXRsZUJ5TG9jYWxlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo2ChRTdW1tYXJ5QnlMb2NhbGVFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIo8BChJQcmVzZXRUYXNrU2NlbmVEdG8SEAoIcHJvdmlkZXIYASABKAkSGQoRZGVmYXVsdF9zY2VuZV9rZXkYAiABKAkSTAoNcmVnaXN0cmF0aW9ucxgDIAMoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NlbmVSZWdpc3RyYXRpb25EdG8ivAEKHFByZXNldFRhc2tUYXJnZXRTZWxlY3Rpb25EdG8SCgoCaWQYASABKAkSDAoEa2luZBgCIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgDIAEoCRIcChRhbGxvd2VkX2FjY2Vzc190eXBlcxgEIAMoCRIOCgZvdXRwdXQYBSABKAkSGQoMc2NvcGVfc291cmNlGAYgASgJSACIAQESEAoIcmVxdWlyZWQYByABKAhCDwoNX3Njb3BlX3NvdXJjZSLBCAoYUHJlc2V0VGFza0NhdGFsb2dJdGVtRHRvEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEhMKC3NvdXJjZV9raW5kGAMgASgJEg8KB3ZlcnNpb24YBCABKAkSEQoEaWNvbhgFIAEoCUgAiAEBEhQKDGRpc3BsYXlfbmFtZRgGIAEoCRINCgV0aXRsZRgHIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCRIVCg1kZWZhdWx0X3RpdGxlGAkgASgJEhQKDHN1Ym1pdF9sYWJlbBgKIAEoCRIYChBzdWJtaXR0aW5nX2xhYmVsGAsgASgJEhsKE2RlZmF1bHRfdGFyZ2V0X3R5cGUYDCABKAkSGwoTYWxsb3dfaGVyb19vdmVycmlkZRgNIAEoCBISCgpzb3J0X29yZGVyGA4gASgFEhkKEXN1cHBvcnRlZF9sb2NhbGVzGA8gAygJEkIKCHNlY3Rpb25zGBAgAygLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQYW5lbFNlY3Rpb25EdG8SSwoPY29tbWFuZF9jYXRhbG9nGBEgASgLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDb21tYW5kQ2F0YWxvZ0R0bxJOChF0YXJnZXRfc2VsZWN0aW9ucxgSIAMoCzIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrVGFyZ2V0U2VsZWN0aW9uRHRvEk8KEWFnZW50X3JlcXVpcmVtZW50GBMgASgLMjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tBZ2VudFJlcXVpcmVtZW50RHRvEkUKDHJlcXVpcmVtZW50cxgUIAMoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUmVxdWlyZW1lbnREdG8SUgoPcHJvbXB0X3N0cmF0ZWd5GBUgASgLMjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQcm9tcHRTdHJhdGVneVN1bW1hcnlEdG8SQAoJZXhlY3V0aW9uGBYgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tFeGVjdXRpb25EdG8SSAoNY29tcGF0aWJpbGl0eRgXIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ29tcGF0aWJpbGl0eUR0bxJICg5pbnB1dF9iaW5kaW5ncxgYIAMoCzIwLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrSW5wdXRCaW5kaW5nRHRvEjgKBXNjZW5lGBkgASgLMikuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2VuZUR0b0IHCgVfaWNvbiKvAQocUHJlc2V0VGFza0NhdGFsb2dSZXNwb25zZUR0bxI+CgVpdGVtcxgBIAMoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ2F0YWxvZ0l0ZW1EdG8STwoOZGlzYWJsZWRfaXRlbXMYAiADKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NhdGFsb2dEaXNhYmxlZEl0ZW1EdG8iSAonUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tEaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSK1AQohUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tJdGVtRHRvEgwKBHR5cGUYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZwYXNzZWQYAyABKAgSDwoHbWVzc2FnZRgEIAEoCRJTCgtkaWFnbm9zdGljcxgFIAMoCzI+LmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUmVxdWlyZW1lbnRDaGVja0RpYWdub3N0aWNEdG8iowEKJVByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVzcG9uc2VEdG8SFgoOcHJlc2V0X3Rhc2tfaWQYASABKAkSEgoKYWxsX3Bhc3NlZBgCIAEoCBJOCgxyZXF1aXJlbWVudHMYAyADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tJdGVtRHRvIj4KJFByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVxdWVzdER0bxIWCg5wcmVzZXRfdGFza19pZBgBIAEoCSLKAQoaUHJlc2V0VGFza1NjaGVtYVN1bW1hcnlEdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSDwoHdmVyc2lvbhgEIAEoCRINCgV0aXRsZRgFIAEoCRITCgtkZXNjcmlwdGlvbhgGIAEoCRIUCgx0YXJnZXRfY291bnQYByABKAUSFQoNY29tbWFuZF9jb3VudBgIIAEoBRIXCg9wYXJhbWV0ZXJfY291bnQYCSABKAUieAoaUHJlc2V0VGFza1NjaGVtYUNvbW1hbmREdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSEAoDdXJsGAUgASgJSACIAQFCBgoEX3VybCLSAQobUHJlc2V0VGFza1NjaGVtYUNvbW1hbmRzRHRvEhQKDHBhcmFtZXRlcl9pZBgBIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgCIAEoCRJACgZncm91cHMYAyADKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxJDCghjb21tYW5kcxgEIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hQ29tbWFuZER0byI7ChhQcmVzZXRUYXNrU2NoZW1hQWxpYXNEdG8SCwoDa2V5GAEgASgJEhIKCmRlcHJlY2F0ZWQYAiABKAgitAIKHFByZXNldFRhc2tTY2hlbWFQYXJhbWV0ZXJEdG8SCwoDa2V5GAEgASgJEg4KBm9yaWdpbhgCIAEoCRIVCghwcm9kdWNlchgDIAEoCUgAiAEBEhIKCnZhbHVlX3R5cGUYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSDQoFbGFiZWwYBiABKAkSEQoEaGludBgHIAEoCUgBiAEBEkAKB29wdGlvbnMYCCADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvEkAKB2FsaWFzZXMYCSADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYUFsaWFzRHRvQgsKCV9wcm9kdWNlckIHCgVfaGludCKHAQoaUHJlc2V0VGFza1NjaGVtYVJlcXVlc3REdG8SDgoGbWV0aG9kGAEgASgJEgwKBHBhdGgYAiABKAkSHAoUcHJlc2V0X3Rhc2tfaWRfZmllbGQYAyABKAkSFAoMbG9jYWxlX2ZpZWxkGAQgASgJEhcKD3JlcXVpcmVkX2ZpZWxkcxgFIAMoCSJ4CiRQcmVzZXRUYXNrU2NoZW1hU2NlbmVSZWdpc3RyYXRpb25EdG8SEQoJc2NlbmVfa2V5GAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB3N1bW1hcnkYAyABKAkSHQoVYmFja2dyb3VuZF9pbWFnZV9zbG90GAQgASgFIpwBChlQcmVzZXRUYXNrU2NoZW1hU2NlbmVzRHRvEhAKCHByb3ZpZGVyGAEgASgJEhkKEWRlZmF1bHRfc2NlbmVfa2V5GAIgASgJElIKDXJlZ2lzdHJhdGlvbnMYAyADKAsyOy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVNjZW5lUmVnaXN0cmF0aW9uRHRvIvQBChlQcmVzZXRUYXNrU2NoZW1hVGFyZ2V0RHRvEgoKAmlkGAEgASgJEgwKBGtpbmQYAiABKAkSFgoOc2VsZWN0aW9uX21vZGUYAyABKAkSEAoIcmVxdWlyZWQYBCABKAgSHAoUYWxsb3dlZF9hY2Nlc3NfdHlwZXMYBSADKAkSGQoMc2NvcGVfc291cmNlGAYgASgJSACIAQESEwoLcmVxdWVzdF9rZXkYByABKAkSHgoRc2NvcGVfcmVxdWVzdF9rZXkYCCABKAlIAYgBAUIPCg1fc2NvcGVfc291cmNlQhQKEl9zY29wZV9yZXF1ZXN0X2tleSJ6ChhQcmVzZXRUYXNrU2NoZW1hU2NvcGVEdG8SGwoTZGVmYXVsdF90YXJnZXRfdHlwZRgBIAEoCRJBCgd0YXJnZXRzGAIgAygLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2hlbWFUYXJnZXREdG8i4wQKG1ByZXNldFRhc2tDcmVhdGlvblNjaGVtYUR0bxIKCgJpZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEg4KBmxvY2FsZRgDIAEoCRINCgV0aXRsZRgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRI+CgVzY29wZRgGIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU2NvcGVEdG8SRAoIY29tbWFuZHMYByABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYUNvbW1hbmRzRHRvEkcKCnBhcmFtZXRlcnMYCCADKAsyMy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVBhcmFtZXRlckR0bxJFCgxyZXF1aXJlbWVudHMYCSADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50RHRvEkAKBnNjZW5lcxgKIAEoCzIwLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU2NlbmVzRHRvEkIKB3JlcXVlc3QYCyABKAsyMS5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVJlcXVlc3REdG8SLQoMaW5wdXRfc2NoZW1hGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIoCgdleGFtcGxlGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdDKvBAoSUHJlc2V0VGFza3NTZXJ2aWNlEn8KFEdldFByZXNldFRhc2tDYXRhbG9nEjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFByZXNldFRhc2tDYXRhbG9nUmVxdWVzdBozLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrQ2F0YWxvZ1Jlc3BvbnNlEpQBChtDaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHMSOS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ2hlY2tQcmVzZXRUYXNrUmVxdWlyZW1lbnRzUmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5DaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHNSZXNwb25zZRKCAQoVTGlzdFByZXNldFRhc2tTY2hlbWFzEjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RQcmVzZXRUYXNrU2NoZW1hc1JlcXVlc3QaNC5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFByZXNldFRhc2tTY2hlbWFzUmVzcG9uc2USfAoTR2V0UHJlc2V0VGFza1NjaGVtYRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrU2NoZW1hUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrU2NoZW1hUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ne,ed]),td=G(On,5),nd=G(On,7),od=Se(On,0),$=ee("CiloYWdpY29kZS9jb21tdW5pdHkvdjEvc2tpbGxfZ2FsbGVyeS5wcm90bxIVaGFnaWNvZGUuY29tbXVuaXR5LnYxIhcKFUdldExvY2FsU2tpbGxzUmVxdWVzdCJfChZHZXRMb2NhbFNraWxsc1Jlc3BvbnNlEkUKBnJlc3VsdBgBIAEoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Mb2NhbFNraWxsSW52ZW50b3J5UmVzcG9uc2VEdG8iLAocR2V0QnVpbHRJblNraWxsRGV0YWlsUmVxdWVzdBIMCgRzbHVnGAEgASgJIl0KHUdldEJ1aWx0SW5Ta2lsbERldGFpbFJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5CdWlsdEluU2tpbGxEZXRhaWxEdG8iYAoaVW5pbnN0YWxsTG9jYWxTa2lsbFJlcXVlc3QSQgoEYm9keRgBIAEoCzI0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Vbmluc3RhbGxMb2NhbFNraWxsUmVxdWVzdER0byJiChtVbmluc3RhbGxMb2NhbFNraWxsUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXN1bHREdG8icAoiU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVxdWVzdBJKCgRib2R5GAEgASgLMjwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlcXVlc3REdG8icgojU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVzcG9uc2USSwoGcmVzdWx0GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlc3VsdER0byI2ChZHZXRTa2lsbEdhbGxlcnlSZXF1ZXN0EhIKBXF1ZXJ5GAEgASgJSACIAQFCCAoGX3F1ZXJ5IlkKF0dldFNraWxsR2FsbGVyeVJlc3BvbnNlEj4KBnJlc3VsdBgBIAEoCzIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Ta2lsbEdhbGxlcnlSZXNwb25zZUR0byI6ChxHZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBnNvdXJjZRgCIAEoCSJdCh1HZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXNwb25zZRI8CgZyZXN1bHQYASABKAsyLC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5RGV0YWlsRHRvIjkKG0dldFNraWxsR2FsbGVyeUF1ZGl0UmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkiWwocR2V0U2tpbGxHYWxsZXJ5QXVkaXRSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5QXVkaXREdG8itAEKHFNraWxsR2FsbGVyeUF1ZGl0UHJvdmlkZXJEdG8SEAoIcHJvdmlkZXIYASABKAkSEQoEcmlzaxgCIAEoCUgAiAEBEhMKBmFsZXJ0cxgDIAEoBUgBiAEBEhIKBXNjb3JlGAQgASgFSAKIAQESGAoLYW5hbHl6ZWRfYXQYBSABKAlIA4gBAUIHCgVfcmlza0IJCgdfYWxlcnRzQggKBl9zY29yZUIOCgxfYW5hbHl6ZWRfYXQijgEKFFNraWxsR2FsbGVyeUF1ZGl0RHRvEgoKAmlkGAEgASgJEg4KBnNvdXJjZRgCIAEoCRISCgpza2lsbF9zbHVnGAMgASgJEkYKCXByb3ZpZGVycxgEIAMoCzIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Ta2lsbEdhbGxlcnlBdWRpdFByb3ZpZGVyRHRvIkIKJEdldFNraWxsR2FsbGVyeUluc3RhbGxDb250ZXh0UmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkibQolR2V0U2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHRSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHREdG8iIQofR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVxdWVzdCJuCiBHZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8ibgohVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0EkkKBGJvZHkYASABKAsyOy5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvInAKIlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyUmVzcG9uc2USSgoGcmVzdWx0GAEgASgLMjouaGFnaWNvZGUuY29tbXVuaXR5LnYxLlRydXN0ZWRTa2lsbFByb3ZpZGVyTGlzdFJlc3BvbnNlRHRvIm4KIURlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdBJJCgRib2R5GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdER0byJwCiJEZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlclJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlckxpc3RSZXNwb25zZUR0byIjCiFSZXNldFRydXN0ZWRTa2lsbFByb3ZpZGVyc1JlcXVlc3QicAoiUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8iUgoTSW5zdGFsbFNraWxsUmVxdWVzdBI7CgRib2R5GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlcXVlc3REdG8iVAoUSW5zdGFsbFNraWxsUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlc3VsdER0byL3AQoYTG9jYWxTa2lsbEJ1aWx0SW5JbmZvRHRvEg8KB2VuYWJsZWQYASABKAgSFAoHdmVyc2lvbhgCIAEoCUgAiAEBEhMKBnNvdXJjZRgDIAEoCUgBiAEBEhcKCnJlcG9zaXRvcnkYBCABKAlIAogBARIQCgNyZWYYBSABKAlIA4gBARIRCgRwYXRoGAYgASgJSASIAQESGQoMY29udGVudF9oYXNoGAcgASgJSAWIAQFCCgoIX3ZlcnNpb25CCQoHX3NvdXJjZUINCgtfcmVwb3NpdG9yeUIGCgRfcmVmQgcKBV9wYXRoQg8KDV9jb250ZW50X2hhc2givAIKI0xvY2FsU2tpbGxNYW5hZ2VkSW5zdGFsbE1ldGFkYXRhRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgFEhAKCHNraWxsX2lkGAIgASgJEg4KBnNvdXJjZRgDIAEoCRISCgpza2lsbF9zbHVnGAQgASgJEhQKB3ZlcnNpb24YBSABKAlIAIgBARIhChRub3JtYWxpemVkX3NraWxsX2tleRgGIAEoCUgBiAEBEh4KEWluc3RhbGxfcmVmZXJlbmNlGAcgASgJSAKIAQESMwoPcmVjb3JkZWRfYXRfdXRjGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfdmVyc2lvbkIXChVfbm9ybWFsaXplZF9za2lsbF9rZXlCFAoSX2luc3RhbGxfcmVmZXJlbmNlIosCChFMb2NhbFNraWxsSXRlbUR0bxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBXNjb3BlGAMgASgJEgwKBHBhdGgYBCABKAkSDgoGYWdlbnRzGAUgAygJElwKGG1hbmFnZWRfaW5zdGFsbF9tZXRhZGF0YRgGIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Mb2NhbFNraWxsTWFuYWdlZEluc3RhbGxNZXRhZGF0YUR0bxIOCgZvcmlnaW4YByABKAkSQQoIYnVpbHRfaW4YCCABKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxTa2lsbEJ1aWx0SW5JbmZvRHRvIo8BCh5Mb2NhbFNraWxsSW52ZW50b3J5UmVzcG9uc2VEdG8SNAoQZ2VuZXJhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNwoFaXRlbXMYAiADKAsyKC5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxTa2lsbEl0ZW1EdG8isQEKG0J1aWx0SW5Ta2lsbERldGFpbFNvdXJjZUR0bxIRCgR0eXBlGAEgASgJSACIAQESFwoKcmVwb3NpdG9yeRgCIAEoCUgBiAEBEhAKA3JlZhgDIAEoCUgCiAEBEhEKBHBhdGgYBCABKAlIA4gBARIQCgN1cmwYBSABKAlIBIgBAUIHCgVfdHlwZUINCgtfcmVwb3NpdG9yeUIGCgRfcmVmQgcKBV9wYXRoQgYKBF91cmwiPAoYQnVpbHRJblNraWxsRmlsZUVudHJ5RHRvEgwKBHBhdGgYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoAyI5ChtCdWlsdEluU2tpbGxNZXRhZGF0YVBhaXJEdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJIo4EChVCdWlsdEluU2tpbGxEZXRhaWxEdG8SDAoEc2x1ZxgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhQKB3ZlcnNpb24YBCABKAlIAIgBARIPCgdlbmFibGVkGAUgASgIEkQKCG1ldGFkYXRhGAYgAygLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkJ1aWx0SW5Ta2lsbE1ldGFkYXRhUGFpckR0bxJCCgZzb3VyY2UYByABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuQnVpbHRJblNraWxsRGV0YWlsU291cmNlRHRvEhkKDGNvbnRlbnRfaGFzaBgIIAEoCUgBiAEBEj4KBWZpbGVzGAkgAygLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkJ1aWx0SW5Ta2lsbEZpbGVFbnRyeUR0bxISCgpmaWxlX2NvdW50GAogASgFEhgKEHRvdGFsX3NpemVfYnl0ZXMYCyABKAMSFwoPZmlsZXNfdHJ1bmNhdGVkGAwgASgIEhUKDWxpY2Vuc2VfZmlsZXMYDSADKAkSDAoEYm9keRgOIAEoCRIWCg5ib2R5X3RydW5jYXRlZBgPIAEoCBIXCg9ib2R5X3NpemVfYnl0ZXMYECABKANCCgoIX3ZlcnNpb25CDwoNX2NvbnRlbnRfaGFzaCLXAQocVW5pbnN0YWxsTG9jYWxTa2lsbFJlc3VsdER0bxISCgpza2lsbF9uYW1lGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIZCgx1c2VyX21lc3NhZ2UYAyABKAlIAIgBARIfChJkaWFnbm9zdGljX21lc3NhZ2UYBCABKAlIAYgBARIvCgtvY2N1cnJlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX3VzZXJfbWVzc2FnZUIVChNfZGlhZ25vc3RpY19tZXNzYWdlIjMKHVVuaW5zdGFsbExvY2FsU2tpbGxSZXF1ZXN0RHRvEhIKCnNraWxsX25hbWUYASABKAkivAEKJFNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlc3VsdER0bxIMCgRzbHVnGAEgASgJEg8KB2VuYWJsZWQYAiABKAgSEQoJc3VjY2VlZGVkGAMgASgIEhkKDHVzZXJfbWVzc2FnZRgEIAEoCUgAiAEBEh8KEmRpYWdub3N0aWNfbWVzc2FnZRgFIAEoCUgBiAEBQg8KDV91c2VyX21lc3NhZ2VCFQoTX2RpYWdub3N0aWNfbWVzc2FnZSJGCiVTZXRCdWlsdEluU2tpbGxBdmFpbGFiaWxpdHlSZXF1ZXN0RHRvEgwKBHNsdWcYASABKAkSDwoHZW5hYmxlZBgCIAEoCCKlAgoiU2tpbGxHYWxsZXJ5UmVwb3NpdG9yeURpc2NvdmVyeUR0bxIMCgRtb2RlGAEgASgJEhwKD3JlcXVlc3RlZF9xdWVyeRgCIAEoCUgAiAEBEh4KEW5vcm1hbGl6ZWRfc291cmNlGAMgASgJSAGIAQESGwoOcmVwb3NpdG9yeV91cmwYBCABKAlIAogBARIPCgdvdXRjb21lGAUgASgJEhcKCmVycm9yX2NvZGUYBiABKAlIA4gBARIUCgdtZXNzYWdlGAcgASgJSASIAQFCEgoQX3JlcXVlc3RlZF9xdWVyeUIUChJfbm9ybWFsaXplZF9zb3VyY2VCEQoPX3JlcG9zaXRvcnlfdXJsQg0KC19lcnJvcl9jb2RlQgoKCF9tZXNzYWdlIuYBCiNUcnVzdGVkU2tpbGxQcm92aWRlclRydXN0U3VtbWFyeUR0bxITCgtwcm92aWRlcl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLYmFkZ2VfbGFiZWwYAyABKAkSHgoRbWF0Y2hlZF9ydWxlX3R5cGUYBCABKAlIAIgBARIfChJtYXRjaGVkX3J1bGVfdmFsdWUYBSABKAlIAYgBARIRCglpc19wcmVzZXQYBiABKAhCFAoSX21hdGNoZWRfcnVsZV90eXBlQhUKE19tYXRjaGVkX3J1bGVfdmFsdWUiwwEKFFNraWxsR2FsbGVyeVNraWxsRHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDgoGc291cmNlGAMgASgJEhAKCGluc3RhbGxzGAQgASgFEhkKEWlzX3RydXN0ZWRfc291cmNlGAUgASgIElQKEHRydXN0ZWRfcHJvdmlkZXIYBiABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJUcnVzdFN1bW1hcnlEdG8i5AEKF1NraWxsR2FsbGVyeVJlc3BvbnNlRHRvEjQKEGdlbmVyYXRlZF9hdF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKBWl0ZW1zGAIgAygLMisuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNraWxsR2FsbGVyeVNraWxsRHRvElcKFHJlcG9zaXRvcnlfZGlzY292ZXJ5GAMgASgLMjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNraWxsR2FsbGVyeVJlcG9zaXRvcnlEaXNjb3ZlcnlEdG8i7AUKFVNraWxsR2FsbGVyeURldGFpbER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhwKD3JlcG9zaXRvcnlfbmFtZRgFIAEoCUgBiAEBEiEKFHJlcG9zaXRvcnlfZnVsbF9uYW1lGAYgASgJSAKIAQESGwoOcmVwb3NpdG9yeV91cmwYByABKAlIA4gBARImChlyZXBvc2l0b3J5X2RlZmF1bHRfYnJhbmNoGAggASgJSASIAQESHwoScmVwb3NpdG9yeV9wcml2YXRlGAkgASgISAWIAQESFgoOaXNfaW5zdGFsbGFibGUYCiABKAgSGQoRaXNfdHJ1c3RlZF9zb3VyY2UYCyABKAgSVAoQdHJ1c3RlZF9wcm92aWRlchgMIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlclRydXN0U3VtbWFyeUR0bxIeChFpbnN0YWxsX3JlZmVyZW5jZRgNIAEoCUgGiAEBEiQKF2luc3RhbGxfY29tbWFuZF9wcmV2aWV3GA4gASgJSAeIAQESHAoPaW5zdGFsbF92ZXJzaW9uGA8gASgJSAiIAQESGQoMaW5zdGFsbF9oaW50GBAgASgJSAmIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9yZXBvc2l0b3J5X25hbWVCFwoVX3JlcG9zaXRvcnlfZnVsbF9uYW1lQhEKD19yZXBvc2l0b3J5X3VybEIcChpfcmVwb3NpdG9yeV9kZWZhdWx0X2JyYW5jaEIVChNfcmVwb3NpdG9yeV9wcml2YXRlQhQKEl9pbnN0YWxsX3JlZmVyZW5jZUIaChhfaW5zdGFsbF9jb21tYW5kX3ByZXZpZXdCEgoQX2luc3RhbGxfdmVyc2lvbkIPCg1faW5zdGFsbF9oaW50Iq4DCh1Ta2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIWCg5pc19pbnN0YWxsYWJsZRgEIAEoCBIZChFpc190cnVzdGVkX3NvdXJjZRgFIAEoCBJUChB0cnVzdGVkX3Byb3ZpZGVyGAYgASgLMjouaGFnaWNvZGUuY29tbXVuaXR5LnYxLlRydXN0ZWRTa2lsbFByb3ZpZGVyVHJ1c3RTdW1tYXJ5RHRvEh4KEWluc3RhbGxfcmVmZXJlbmNlGAcgASgJSACIAQESJAoXaW5zdGFsbF9jb21tYW5kX3ByZXZpZXcYCCABKAlIAYgBARIcCg9pbnN0YWxsX3ZlcnNpb24YCSABKAlIAogBARIZCgxpbnN0YWxsX2hpbnQYCiABKAlIA4gBAUIUChJfaW5zdGFsbF9yZWZlcmVuY2VCGgoYX2luc3RhbGxfY29tbWFuZF9wcmV2aWV3QhIKEF9pbnN0YWxsX3ZlcnNpb25CDwoNX2luc3RhbGxfaGludCJFCiBUcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0bxISCgptYXRjaF90eXBlGAEgASgJEg0KBXZhbHVlGAIgASgJIo8CChdUcnVzdGVkU2tpbGxQcm92aWRlckR0bxITCgtwcm92aWRlcl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLYmFkZ2VfbGFiZWwYAyABKAkSEQoJaXNfcHJlc2V0GAQgASgIEhIKCmlzX2VuYWJsZWQYBSABKAgSEgoKc29ydF9vcmRlchgGIAEoBRISCgpydWxlX2NvdW50GAcgASgFEhcKD3NvdXJjZV9leGFtcGxlcxgIIAMoCRJMCgttYXRjaF9ydWxlcxgJIAMoCzI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0byKrAQojVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8SNAoQZ2VuZXJhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHdmVyc2lvbhgCIAEoBRI9CgVpdGVtcxgDIAMoCzIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlckR0byLxAQokVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvEhMKC3Byb3ZpZGVyX2lkGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtiYWRnZV9sYWJlbBgDIAEoCUgAiAEBEhIKCmlzX2VuYWJsZWQYBCABKAgSEgoKc29ydF9vcmRlchgFIAEoBRJMCgttYXRjaF9ydWxlcxgGIAMoCzI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0b0IOCgxfYmFkZ2VfbGFiZWwiOwokRGVsZXRlVHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvEhMKC3Byb3ZpZGVyX2lkGAEgASgJIrgDChVJbnN0YWxsU2tpbGxSZXN1bHREdG8SEAoIc2tpbGxfaWQYASABKAkSDgoGc291cmNlGAIgASgJEhIKCnNraWxsX3NsdWcYAyABKAkSIQoUbm9ybWFsaXplZF9za2lsbF9rZXkYBCABKAlIAIgBARIeChFpbnN0YWxsX3JlZmVyZW5jZRgFIAEoCUgBiAEBEhwKD2NvbW1hbmRfcHJldmlldxgGIAEoCUgCiAEBEhQKB3ZlcnNpb24YByABKAlIA4gBARIOCgZzdGF0dXMYCCABKAkSGQoMdXNlcl9tZXNzYWdlGAkgASgJSASIAQESHwoSZGlhZ25vc3RpY19tZXNzYWdlGAogASgJSAWIAQESLwoLb2NjdXJyZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhcKFV9ub3JtYWxpemVkX3NraWxsX2tleUIUChJfaW5zdGFsbF9yZWZlcmVuY2VCEgoQX2NvbW1hbmRfcHJldmlld0IKCghfdmVyc2lvbkIPCg1fdXNlcl9tZXNzYWdlQhUKE19kaWFnbm9zdGljX21lc3NhZ2UiagoWSW5zdGFsbFNraWxsUmVxdWVzdER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIUCgd2ZXJzaW9uGAQgASgJSACIAQFCCgoIX3ZlcnNpb24iGwoZTGlzdFVzZXJTa2lsbEJhc2VzUmVxdWVzdCJfChpMaXN0VXNlclNraWxsQmFzZXNSZXNwb25zZRJBCgZyZXN1bHQYASABKAsyMS5oYWdpY29kZS5jb21tdW5pdHkudjEuVXNlclNraWxsQmFzZUxpc3RSZXN1bHREdG8iWgoXQWRkVXNlclNraWxsQmFzZVJlcXVlc3QSPwoEYm9keRgBIAEoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5BZGRVc2VyU2tpbGxCYXNlUmVxdWVzdER0byJZChhBZGRVc2VyU2tpbGxCYXNlUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbEJhc2VSZXN1bHREdG8iLQoaUmVtb3ZlVXNlclNraWxsQmFzZVJlcXVlc3QSDwoHYmFzZV9pZBgBIAEoCSJiChtSZW1vdmVVc2VyU2tpbGxCYXNlUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlbW92ZVVzZXJTa2lsbEJhc2VSZXN1bHREdG8iLQoaUmVzY2FuVXNlclNraWxsQmFzZVJlcXVlc3QSDwoHYmFzZV9pZBgBIAEoCSJcChtSZXNjYW5Vc2VyU2tpbGxCYXNlUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbEJhc2VSZXN1bHREdG8iYAoaU2V0VXNlclNraWxsRW5hYmxlZFJlcXVlc3QSQgoEYm9keRgBIAEoCzI0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRVc2VyU2tpbGxFbmFibGVkUmVxdWVzdER0byJiChtTZXRVc2VyU2tpbGxFbmFibGVkUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldFVzZXJTa2lsbEVuYWJsZWRSZXN1bHREdG8i+AEKEFVzZXJTa2lsbEJhc2VEdG8SCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSDAoEcGF0aBgDIAEoCRIOCgZzdGF0dXMYBCABKAkSGgoNc3RhdHVzX3JlYXNvbhgFIAEoCUgAiAEBEhsKDnN0YXR1c19tZXNzYWdlGAYgASgJSAGIAQESMwoGc2tpbGxzGAcgAygLMiMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbER0bxIYChBza2lsbHNfdHJ1bmNhdGVkGAggASgIQhAKDl9zdGF0dXNfcmVhc29uQhEKD19zdGF0dXNfbWVzc2FnZSL9AQoMVXNlclNraWxsRHRvEgwKBHNsdWcYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg8KB2VuYWJsZWQYBCABKAgSDgoGc3RhdHVzGAUgASgJEhsKDmNvbmZsaWN0c193aXRoGAYgASgJSAGIAQESPAoIcHJvYmxlbXMYByADKAsyKi5oYWdpY29kZS5jb21tdW5pdHkudjEuVXNlclNraWxsUHJvYmxlbUR0bxIKCgJpZBgIIAEoCRIMCgRwYXRoGAkgASgJQg4KDF9kZXNjcmlwdGlvbkIRCg9fY29uZmxpY3RzX3dpdGgiNAoTVXNlclNraWxsUHJvYmxlbUR0bxIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkiSAoaQWRkVXNlclNraWxsQmFzZVJlcXVlc3REdG8SDAoEcGF0aBgBIAEoCRISCgVsYWJlbBgCIAEoCUgAiAEBQggKBl9sYWJlbCKTAQoaVXNlclNraWxsQmFzZUxpc3RSZXN1bHREdG8SEQoJc3VjY2VlZGVkGAEgASgIEhkKDHVzZXJfbWVzc2FnZRgCIAEoCUgAiAEBEjYKBWJhc2VzGAMgAygLMicuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVzZXJTa2lsbEJhc2VEdG9CDwoNX3VzZXJfbWVzc2FnZSKOAQoWVXNlclNraWxsQmFzZVJlc3VsdER0bxIRCglzdWNjZWVkZWQYASABKAgSGQoMdXNlcl9tZXNzYWdlGAIgASgJSACIAQESNQoEYmFzZRgDIAEoCzInLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Vc2VyU2tpbGxCYXNlRHRvQg8KDV91c2VyX21lc3NhZ2UibgocUmVtb3ZlVXNlclNraWxsQmFzZVJlc3VsdER0bxIRCglzdWNjZWVkZWQYASABKAgSGQoMdXNlcl9tZXNzYWdlGAIgASgJSACIAQESDwoHYmFzZV9pZBgDIAEoCUIPCg1fdXNlcl9tZXNzYWdlIlUKHVNldFVzZXJTa2lsbEVuYWJsZWRSZXF1ZXN0RHRvEg8KB2Jhc2VfaWQYASABKAkSEgoKc2tpbGxfc2x1ZxgCIAEoCRIPCgdlbmFibGVkGAMgASgIIpMBChxTZXRVc2VyU2tpbGxFbmFibGVkUmVzdWx0RHRvEhEKCXN1Y2NlZWRlZBgBIAEoCBIZCgx1c2VyX21lc3NhZ2UYAiABKAlIAIgBARIPCgdiYXNlX2lkGAMgASgJEhIKCnNraWxsX3NsdWcYBCABKAkSDwoHZW5hYmxlZBgFIAEoCEIPCg1fdXNlcl9tZXNzYWdlMtASChNTa2lsbEdhbGxlcnlTZXJ2aWNlEm0KDkdldExvY2FsU2tpbGxzEiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldExvY2FsU2tpbGxzUmVxdWVzdBotLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRMb2NhbFNraWxsc1Jlc3BvbnNlEoIBChVHZXRCdWlsdEluU2tpbGxEZXRhaWwSMy5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0QnVpbHRJblNraWxsRGV0YWlsUmVxdWVzdBo0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRCdWlsdEluU2tpbGxEZXRhaWxSZXNwb25zZRJ8ChNVbmluc3RhbGxMb2NhbFNraWxsEjEuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXF1ZXN0GjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXNwb25zZRKUAQobU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5EjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlcXVlc3QaOi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVzcG9uc2UScAoPR2V0U2tpbGxHYWxsZXJ5Ei0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeVJlcXVlc3QaLi5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0U2tpbGxHYWxsZXJ5UmVzcG9uc2USggEKFUdldFNraWxsR2FsbGVyeURldGFpbBIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXF1ZXN0GjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeURldGFpbFJlc3BvbnNlEn8KFEdldFNraWxsR2FsbGVyeUF1ZGl0EjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeUF1ZGl0UmVxdWVzdBozLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlBdWRpdFJlc3BvbnNlEpoBCh1HZXRTa2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dBI7LmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dFJlcXVlc3QaPC5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0U2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHRSZXNwb25zZRKLAQoYR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzEjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFRydXN0ZWRTa2lsbFByb3ZpZGVyc1JlcXVlc3QaNy5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVzcG9uc2USkQEKGlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyEjguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdBo5LmhhZ2ljb2RlLmNvbW11bml0eS52MS5VcHNlcnRUcnVzdGVkU2tpbGxQcm92aWRlclJlc3BvbnNlEpEBChpEZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlchI4LmhhZ2ljb2RlLmNvbW11bml0eS52MS5EZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlclJlcXVlc3QaOS5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlVHJ1c3RlZFNraWxsUHJvdmlkZXJSZXNwb25zZRKRAQoaUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnMSOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXF1ZXN0GjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlc2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVzcG9uc2USZwoMSW5zdGFsbFNraWxsEiouaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlcXVlc3QaKy5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbFNraWxsUmVzcG9uc2USeQoSTGlzdFVzZXJTa2lsbEJhc2VzEjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RVc2VyU2tpbGxCYXNlc1JlcXVlc3QaMS5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFVzZXJTa2lsbEJhc2VzUmVzcG9uc2UScwoQQWRkVXNlclNraWxsQmFzZRIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5BZGRVc2VyU2tpbGxCYXNlUmVxdWVzdBovLmhhZ2ljb2RlLmNvbW11bml0eS52MS5BZGRVc2VyU2tpbGxCYXNlUmVzcG9uc2USfAoTUmVtb3ZlVXNlclNraWxsQmFzZRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZW1vdmVVc2VyU2tpbGxCYXNlUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZW1vdmVVc2VyU2tpbGxCYXNlUmVzcG9uc2USfAoTUmVzY2FuVXNlclNraWxsQmFzZRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZXNjYW5Vc2VyU2tpbGxCYXNlUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZXNjYW5Vc2VyU2tpbGxCYXNlUmVzcG9uc2USfAoTU2V0VXNlclNraWxsRW5hYmxlZBIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRVc2VyU2tpbGxFbmFibGVkUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRVc2VyU2tpbGxFbmFibGVkUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ge]),ad=G($,1),rd=G($,5),id=G($,7),sd=G($,9),ld=G($,11),cd=G($,13),ud=G($,19),dd=G($,21),md=G($,23),bd=G($,25),hd=G($,27),gd=G($,37),pd=G($,39),Ad=G($,49),Zd=G($,50),fd=G($,52),Rd=Se($,0),Hr=ee("CiVoYWdpY29kZS9wbGF0Zm9ybS92MS9zdGF0aXN0aWNzLnByb3RvEhRoYWdpY29kZS5wbGF0Zm9ybS52MSJ1ChhHZXRBZ2dyZWdhdGVkRGF0YVJlcXVlc3QSFQoNZm9yY2VfcmVmcmVzaBgBIAEoCBIlChhnaXRfYXV0b19yZWZyZXNoX2VuYWJsZWQYAiABKAhIAIgBAUIbChlfZ2l0X2F1dG9fcmVmcmVzaF9lbmFibGVkIl0KGUdldEFnZ3JlZ2F0ZWREYXRhUmVzcG9uc2USQAoGcmVzdWx0GAEgASgLMjAuaGFnaWNvZGUucGxhdGZvcm0udjEuRGF0YUFnZ3JlZ2F0aW9uUmVzcG9uc2VEdG8iHQobR2V0VG9rZW5Nb25pdG9yVXNhZ2VSZXF1ZXN0ImIKHEdldFRva2VuTW9uaXRvclVzYWdlUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yVXNhZ2VTbmFwc2hvdER0byIlCiNHZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVxdWVzdCJgCiRHZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5UaHJvdWdocHV0RHRvIkQKIEdldFRva2VuVGhyb3VnaHB1dEhpc3RvcnlSZXF1ZXN0EhQKB21pbnV0ZXMYASABKAVIAIgBAUIKCghfbWludXRlcyJiCiFHZXRUb2tlblRocm91Z2hwdXRIaXN0b3J5UmVzcG9uc2USPQoGcmVzdWx0GAEgAygLMi0uaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5UaHJvdWdocHV0U25hcHNob3QiOAoaR2V0SGVyb0JhdHRsZVJlcG9ydFJlcXVlc3QSEQoEZGF0ZRgBIAEoCUgAiAEBQgcKBV9kYXRlIlgKG0dldEhlcm9CYXR0bGVSZXBvcnRSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0RHRvIkAKIEdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXF1ZXN0EhIKBXJhbmdlGAEgASgJSACIAQFCCAoGX3JhbmdlImcKIUdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJTdGF0aXN0aWNzUmVwb3J0RHRvIuwCChxHZXRIaXN0b3JpY2FsVGltZWxpbmVSZXF1ZXN0EhgKC2VudGl0eV90eXBlGAEgASgJSACIAQESFgoJZW50aXR5X2lkGAIgASgJSAGIAQESFwoKcHJvamVjdF9pZBgDIAEoCUgCiAEBEhcKCnNlc3Npb25faWQYBCABKAlIA4gBARIzCg9yYW5nZV9zdGFydF91dGMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXJhbmdlX2VuZF91dGMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKBmN1cnNvchgHIAEoCUgEiAEBEhYKCXBhZ2Vfc2l6ZRgIIAEoBUgFiAEBQg4KDF9lbnRpdHlfdHlwZUIMCgpfZW50aXR5X2lkQg0KC19wcm9qZWN0X2lkQg0KC19zZXNzaW9uX2lkQgkKB19jdXJzb3JCDAoKX3BhZ2Vfc2l6ZSJpCh1HZXRIaXN0b3JpY2FsVGltZWxpbmVSZXNwb25zZRJICgZyZXN1bHQYASABKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVRdWVyeVJlc3BvbnNlRHRvIiUKI0dldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXF1ZXN0InIKJEdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVTYW1wbGVzUmVzcG9uc2VEdG8iqgEKFkFnZ3JlZ2F0aW9uTWV0YWRhdGFEdG8SLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg50b3RhbF9wcm9qZWN0cxgCIAEoBRIaChJ0b3RhbF9yZXBvc2l0b3JpZXMYAyABKAUSFwoPZmFpbGVkX3Byb2plY3RzGAQgASgFEhQKDGhhc19mYWlsdXJlcxgFIAEoCCKyBQoYUmVwb3NpdG9yeUFnZ3JlZ2F0aW9uRHRvEhEKBGNvZGUYASABKAlIAIgBARIMCgRuYW1lGAIgASgJEgwKBHBhdGgYAyABKAkSFQoNcmVsYXRpdmVfcGF0aBgEIAEoCRIUCgxkaXNwbGF5X25hbWUYBSABKAkSEQoEdHlwZRgGIAEoCUgBiAEBEgwKBHRhZ3MYByADKAkSEQoEaWNvbhgIIAEoCUgCiAEBEhAKA3VybBgJIAEoCUgDiAEBEhgKEGNvbGxhcHNlX3RvX21vcmUYCiABKAgSGQoRaXNfdmFsaWRfZ2l0X3JlcG8YCyABKAgSHAoUZ2l0X3N0YXR1c19hdmFpbGFibGUYDCABKAgSEwoGYnJhbmNoGA0gASgJSASIAQESHwoXaGFzX3VuY29tbWl0dGVkX2NoYW5nZXMYDiABKAgSHQoVdW5wdXNoZWRfY29tbWl0X2NvdW50GA8gASgFEhsKE2hhc190cmFja2luZ19icmFuY2gYECABKAgSNQoPdHJhY2tpbmdfYnJhbmNoGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEhMKC2FoZWFkX2NvdW50GBIgASgFEhQKDGJlaGluZF9jb3VudBgTIAEoBRIXCgpzeW5jX3N0YXRlGBQgASgJSAWIAQESEwoLaXNfb3B0aW9uYWwYFSABKAgSFAoMaXNfc2FuaXRpemVkGBYgASgIEhsKE3Nhbml0aXphdGlvbl9yZWFzb24YFyABKAkSGAoQaGFzX25hbWVfd2FybmluZxgYIAEoCBIVCg1uYW1lX3dhcm5pbmdzGBkgAygJQgcKBV9jb2RlQgcKBV90eXBlQgcKBV9pY29uQgYKBF91cmxCCQoHX2JyYW5jaEINCgtfc3luY19zdGF0ZSK6BAoVUHJvamVjdEFnZ3JlZ2F0aW9uRHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcGF0aBgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhUKDWlzX21vbm9fc3BlY3MYBSABKAgSHwoSbW9ub19zcGVjc192ZXJzaW9uGAYgASgJSAGIAQESJgoZbW9ub19zcGVjc19yZXBvX2RpcmVjdG9yeRgHIAEoCUgCiAEBEisKHm1vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZRgIIAEoCEgDiAEBEkQKDHJlcG9zaXRvcmllcxgJIAMoCzIuLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlJlcG9zaXRvcnlBZ2dyZWdhdGlvbkR0bxJBCh1naXRfc25hcHNob3RfcmVmcmVzaGVkX2F0X3V0YxgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIQoZZ2l0X3NuYXBzaG90X3NlcnZlZF9zdGFsZRgLIAEoCBIrCgVlcnJvchgMIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIRCgloYXNfZXJyb3IYDSABKAhCDgoMX2Rlc2NyaXB0aW9uQhUKE19tb25vX3NwZWNzX3ZlcnNpb25CHAoaX21vbm9fc3BlY3NfcmVwb19kaXJlY3RvcnlCIQofX21vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZSKbAQoaRGF0YUFnZ3JlZ2F0aW9uUmVzcG9uc2VEdG8SPQoIcHJvamVjdHMYASADKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Qcm9qZWN0QWdncmVnYXRpb25EdG8SPgoIbWV0YWRhdGEYAiABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5BZ2dyZWdhdGlvbk1ldGFkYXRhRHRvIqkDChxUb2tlbk1vbml0b3JVc2FnZVNuYXBzaG90RHRvEg4KBnN0YXR1cxgBIAEoCRIOCgZzb3VyY2UYAiABKAkSGwoOZmFpbHVyZV9yZWFzb24YAyABKAlIAIgBARIVCghkYXRlX2tleRgEIAEoCUgBiAEBEhkKDHRvdGFsX3Rva2VucxgFIAEoA0gCiAEBEhUKCGNvc3RfdXNkGAYgASgBSAOIAQESLwoLcmVhZF9hdF91dGMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhgKEHNuYXBzaG90X3ZlcnNpb24YCCABKAMSOwoGbGltaXRzGAkgASgLMisuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yTGltaXRzRHRvEj0KB3BlcmlvZHMYCiABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2RzRHRvQhEKD19mYWlsdXJlX3JlYXNvbkILCglfZGF0ZV9rZXlCDwoNX3RvdGFsX3Rva2Vuc0ILCglfY29zdF91c2QiugEKFVRva2VuTW9uaXRvckxpbWl0c0R0bxIyCg51cGRhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKcmVmcmVzaF9tcxgCIAEoBUgAiAEBEkUKCXByb3ZpZGVycxgDIAMoCzIyLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlRva2VuTW9uaXRvckxpbWl0UHJvdmlkZXJEdG9CDQoLX3JlZnJlc2hfbXMi0wIKHFRva2VuTW9uaXRvckxpbWl0UHJvdmlkZXJEdG8SEAoIcHJvdmlkZXIYASABKAkSDgoGc3RhdHVzGAIgASgJEhcKCnBsYW5fbGFiZWwYAyABKAlIAIgBARIyCg51cGRhdGVkX2F0X3V0YxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoHd2luZG93cxgFIAMoCzIwLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlRva2VuTW9uaXRvckxpbWl0V2luZG93RHRvEhgKC2JhbGFuY2VfdXNkGAYgASgBSAGIAQESSAoNcmVzZXRfY3JlZGl0cxgHIAEoCzIxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlRva2VuTW9uaXRvclJlc2V0Q3JlZGl0c0R0b0INCgtfcGxhbl9sYWJlbEIOCgxfYmFsYW5jZV91c2Qi9QMKGlRva2VuTW9uaXRvckxpbWl0V2luZG93RHRvEgwKBGtpbmQYASABKAkSEgoFbGFiZWwYAiABKAlIAIgBARIZCgx1c2VkX3BlcmNlbnQYAyABKAFIAYgBARIeChFyZW1haW5pbmdfcGVyY2VudBgEIAEoAUgCiAEBEhEKBHVzZWQYBSABKAFIA4gBARISCgVsaW1pdBgGIAEoAUgEiAEBEhYKCXJlbWFpbmluZxgHIAEoAUgFiAEBEhUKCGN1cnJlbmN5GAggASgJSAaIAQESMQoNcmVzZXRzX2F0X3V0YxgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOd2luZG93X21pbnV0ZXMYCiABKAVIB4gBARIeChFyZXNldF9kZXNjcmlwdGlvbhgLIAEoCUgIiAEBEhoKDW1ldGVyX3Zpc2libGUYDCABKAhICYgBAUIICgZfbGFiZWxCDwoNX3VzZWRfcGVyY2VudEIUChJfcmVtYWluaW5nX3BlcmNlbnRCBwoFX3VzZWRCCAoGX2xpbWl0QgwKCl9yZW1haW5pbmdCCwoJX2N1cnJlbmN5QhEKD193aW5kb3dfbWludXRlc0IUChJfcmVzZXRfZGVzY3JpcHRpb25CEAoOX21ldGVyX3Zpc2libGUivQEKG1Rva2VuTW9uaXRvclJlc2V0Q3JlZGl0c0R0bxIcCg9hdmFpbGFibGVfY291bnQYASABKAVIAIgBARI3ChNuZXh0X2V4cGlyZXNfYXRfdXRjGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCg9leHBpcmF0aW9uc191dGMYAyADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhIKEF9hdmFpbGFibGVfY291bnQizwEKFlRva2VuTW9uaXRvclBlcmlvZHNEdG8SOgoFdG9kYXkYASABKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2REdG8SOgoFbW9udGgYAiABKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2REdG8SPQoIYWxsX3RpbWUYAyABKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2REdG8iigQKFVRva2VuTW9uaXRvclBlcmlvZER0bxIUCgx0b3RhbF90b2tlbnMYASABKAMSEAoIY29zdF91c2QYAiABKAESHgoRY2FjaGVfcmVhZF90b2tlbnMYAyABKANIAIgBARIfChJjYWNoZV93cml0ZV90b2tlbnMYBCABKANIAYgBARIaCg1vdXRwdXRfdG9rZW5zGAUgASgDSAKIAQESGQoMdGltZWRfdG9rZW5zGAYgASgDSAOIAQESIAoTdGltZWRfb3V0cHV0X3Rva2VucxgHIAEoA0gEiAEBEh4KEXRpbWVkX2R1cmF0aW9uX21zGAggASgDSAWIAQESTQoMY2FwYWJpbGl0aWVzGAkgASgLMjcuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yUGVyaW9kQ2FwYWJpbGl0aWVzRHRvEkIKB2NsaWVudHMYCiADKAsyMS5oYWdpY29kZS5wbGF0Zm9ybS52MS5Ub2tlbk1vbml0b3JQZXJpb2RDbGllbnREdG9CFAoSX2NhY2hlX3JlYWRfdG9rZW5zQhUKE19jYWNoZV93cml0ZV90b2tlbnNCEAoOX291dHB1dF90b2tlbnNCDwoNX3RpbWVkX3Rva2Vuc0IWChRfdGltZWRfb3V0cHV0X3Rva2Vuc0IUChJfdGltZWRfZHVyYXRpb25fbXMifwohVG9rZW5Nb25pdG9yUGVyaW9kQ2FwYWJpbGl0aWVzRHRvEh0KEHRva2VuX2NvbXBvbmVudHMYASABKAhIAIgBARIXCgp0aHJvdWdocHV0GAIgASgISAGIAQFCEwoRX3Rva2VuX2NvbXBvbmVudHNCDQoLX3Rocm91Z2hwdXQiTwobVG9rZW5Nb25pdG9yUGVyaW9kQ2xpZW50RHRvEg4KBmNsaWVudBgBIAEoCRIOCgZ0b2tlbnMYAiABKAMSEAoIY29zdF91c2QYAyABKAEi2AIKElRva2VuVGhyb3VnaHB1dER0bxIfChdpbnB1dF90b2tlbnNfcGVyX21pbnV0ZRgBIAEoBRIgChhvdXRwdXRfdG9rZW5zX3Blcl9taW51dGUYAiABKAUSGgoSdG90YWxfaW5wdXRfdG9rZW5zGAMgASgDEhsKE3RvdGFsX291dHB1dF90b2tlbnMYBCABKAMSMAoMbGFzdF91cGRhdGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBInCh9yZWd1bGFyX2lucHV0X3Rva2Vuc19wZXJfbWludXRlGAYgASgFEiUKHWNhY2hlX2lucHV0X3Rva2Vuc19wZXJfbWludXRlGAcgASgFEiIKGnRvdGFsX3JlZ3VsYXJfaW5wdXRfdG9rZW5zGAggASgDEiAKGHRvdGFsX2NhY2hlX2lucHV0X3Rva2VucxgJIAEoAyKvAQoXVG9rZW5UaHJvdWdocHV0U25hcHNob3QSLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxpbnB1dF90b2tlbnMYAiABKAUSFQoNb3V0cHV0X3Rva2VucxgDIAEoBRIcChRyZWd1bGFyX2lucHV0X3Rva2VucxgEIAEoBRIaChJjYWNoZV9pbnB1dF90b2tlbnMYBSABKAUi4AEKLEhlcm9CYXR0bGVSZXBvcnRMYXRlc3RVbmxvY2tlZEFjaGlldmVtZW50RHRvEhUKDWNhbm9uaWNhbF9rZXkYASABKAkSEAoIbmFtZV9rZXkYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSMwoPdW5sb2NrZWRfYXRfdXRjGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5wcm9ncmVzc19hZnRlchgFIAEoBRIOCgZ0YXJnZXQYBiABKAUSFQoNcmV3YXJkX2Ftb3VudBgHIAEoAyK7AQopSGVyb0JhdHRsZVJlcG9ydFBlbmRpbmdBY2hpZXZlbWVudEhpbnREdG8SFQoNY2Fub25pY2FsX2tleRgBIAEoCRIQCghuYW1lX2tleRgCIAEoCRIRCglnb2FsX3R5cGUYAyABKAkSEAoIcHJvZ3Jlc3MYBCABKAUSDgoGdGFyZ2V0GAUgASgFEhcKD3JlbWFpbmluZ19jb3VudBgGIAEoBRIXCg9jb21wbGV0aW9uX3JhdGUYByABKAEivQIKJUhlcm9CYXR0bGVSZXBvcnRBY2hpZXZlbWVudFN1bW1hcnlEdG8SGAoQaGFzX2FyY2hpdmVfZGF0YRgBIAEoCBIXCg9jb21wbGV0ZWRfY291bnQYAiABKAUSEwoLdG90YWxfY291bnQYAyABKAUSFwoPY29tcGxldGlvbl9yYXRlGAQgASgBElsKD2xhdGVzdF91bmxvY2tlZBgFIAEoCzJCLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRMYXRlc3RVbmxvY2tlZEFjaGlldmVtZW50RHRvElYKDXBlbmRpbmdfaGludHMYBiADKAsyPy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UGVuZGluZ0FjaGlldmVtZW50SGludER0byL0AgojSGVyb0JhdHRsZVJlcG9ydEhpZ2hsaWdodFNlc3Npb25EdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRISCgV0aXRsZRgCIAEoCUgAiAEBEhkKDHNlc3Npb25fY29kZRgDIAEoCUgBiAEBEhkKDHNlc3Npb25fdHlwZRgEIAEoCUgCiAEBEhoKDXByb3Bvc2FsX25hbWUYBSABKAlIA4gBARIWCg5hY3Rpdml0eV9jb3VudBgGIAEoBRIiChpjb21wbGV0ZWRfYXNzaXN0YW5jZV9jb3VudBgHIAEoBRIfChdwcm9wb3NhbF9leGVjdXRlZF9jb3VudBgIIAEoBRI4ChRsYXN0X2FjdGl2aXR5X2F0X3V0YxgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCAoGX3RpdGxlQg8KDV9zZXNzaW9uX2NvZGVCDwoNX3Nlc3Npb25fdHlwZUIQCg5fcHJvcG9zYWxfbmFtZSKnAwoiSGVyb0JhdHRsZVJlcG9ydEFjdGl2aXR5U3VtbWFyeUR0bxIdChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYASABKAUSIgoaY2hhdF9zZXNzaW9uX2NyZWF0ZWRfY291bnQYAiABKAUSJgoecHJvcG9zYWxfc2Vzc2lvbl9jcmVhdGVkX2NvdW50GAMgASgFEhYKDnByb3Bvc2FsX2NvdW50GAQgASgFEiAKGHByb3Bvc2FsX2dlbmVyYXRlZF9jb3VudBgFIAEoBRIfChdwcm9wb3NhbF9leGVjdXRlZF9jb3VudBgGIAEoBRIfChdwcm9wb3NhbF9hcmNoaXZlZF9jb3VudBgHIAEoBRIiChphc3Npc3RhbmNlX2NvbXBsZXRlZF9jb3VudBgIIAEoBRIfChdhc3Npc3RhbmNlX2ZhaWxlZF9jb3VudBgJIAEoBRJVChJoaWdobGlnaHRfc2Vzc2lvbnMYCiADKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGlnaGxpZ2h0U2Vzc2lvbkR0byJGCiNIZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxIQCghwcmV2aW91cxgBIAEoAxINCgVkZWx0YRgCIAEoAyK8BQodSGVyb0JhdHRsZVJlcG9ydENvbXBhcmlzb25EdG8SGAoQaGFzX3ByZXZpb3VzX2RheRgBIAEoCBIaCg1wcmV2aW91c19kYXRlGAIgASgJSACIAQESVAoRYWN0aXZlX2hlcm9fY291bnQYAyABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJSCg9leGVjdXRpb25fY291bnQYBCABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJSCg90b29sX2NhbGxfY291bnQYBSABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJPCgx0b3RhbF90b2tlbnMYBiABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJYChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYByABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0bxJRCg5wcm9wb3NhbF9jb3VudBgIIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElcKFGhhZ2lwb3dlcl9uZXRfY2hhbmdlGAkgASgLMjkuaGFnaWNvZGUucGxhdGZvcm0udjEuSGVyb0JhdHRsZVJlcG9ydENvbXBhcmlzb25NZXRyaWNEdG9CEAoOX3ByZXZpb3VzX2RhdGUixgEKG0hlcm9CYXR0bGVSZXBvcnRFeGVjdXRvckR0bxIVCg1leGVjdXRvcl90eXBlGAEgASgJEhIKCmhlcm9fY291bnQYAiABKAUSGQoRYWN0aXZlX2hlcm9fY291bnQYAyABKAUSFwoPZXhlY3V0aW9uX2NvdW50GAQgASgFEhcKD3Rvb2xfY2FsbF9jb3VudBgFIAEoBRIUCgx0b3RhbF90b2tlbnMYBiABKAMSGQoRdG90YWxfZHVyYXRpb25fbXMYByABKAMiuAEKIUhlcm9CYXR0bGVSZXBvcnRIYWdpcG93ZXJQb2ludER0bxI1ChFidWNrZXRfbWludXRlX3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHYmFsYW5jZRgCIAEoAxIVCg10b3RhbF9iYWxhbmNlGAMgASgDEiEKGWFjY3VtdWxhdGVkX3RvdGFsX2JhbGFuY2UYBCABKAMSEQoJaXNfZmlsbGVkGAUgASgIItwDChxIZXJvQmF0dGxlUmVwb3J0SGFnaXBvd2VyRHRvEjMKD3JhbmdlX3N0YXJ0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMQoNcmFuZ2VfZW5kX3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoOYnVja2V0X21pbnV0ZXMYAyABKAUSFwoPaGFzX2ZpbGxlZF9nYXBzGAQgASgIEhwKFGhhc19yZWNvcmRlZF9oaXN0b3J5GAUgASgIEh4KFmN1cnJlbnRfcHVibGljX2JhbGFuY2UYBiABKAMSHQoVY3VycmVudF90b3RhbF9iYWxhbmNlGAcgASgDEikKIWN1cnJlbnRfYWNjdW11bGF0ZWRfdG90YWxfYmFsYW5jZRgIIAEoAxISCgpuZXRfY2hhbmdlGAkgASgDEjcKE2xhc3RfdXBkYXRlZF9hdF91dGMYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEk4KDXB1YmxpY19zZXJpZXMYCyADKAsyNy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGFnaXBvd2VyUG9pbnREdG8iiQQKF0hlcm9CYXR0bGVSZXBvcnRIZXJvRHRvEg8KB2hlcm9faWQYASABKAkSEQoJaGVyb19uYW1lGAIgASgJEhYKCWhlcm9faWNvbhgDIAEoCUgAiAEBEhUKDWV4ZWN1dG9yX3R5cGUYBCABKAkSEgoFbW9kZWwYBSABKAlIAYgBARIYCgtkZXNjcmlwdGlvbhgGIAEoCUgCiAEBEgwKBHJhbmsYByABKAUSDgoGc3RhdHVzGAggASgJEg0KBWdyYWRlGAkgASgJEhQKDGJhdHRsZV9zY29yZRgKIAEoBRIXCg9leGVjdXRpb25fY291bnQYCyABKAUSFwoPdG9vbF9jYWxsX2NvdW50GAwgASgFEhQKDGlucHV0X3Rva2VucxgNIAEoAxIaChJjYWNoZV9pbnB1dF90b2tlbnMYDiABKAMSFQoNb3V0cHV0X3Rva2VucxgPIAEoAxIbChNjYWNoZV9vdXRwdXRfdG9rZW5zGBAgASgDEhQKDHRvdGFsX3Rva2VucxgRIAEoAxIZChF0b3RhbF9kdXJhdGlvbl9tcxgSIAEoAxI5ChVsYXN0X2NvbXBsZXRlZF9hdF91dGMYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9oZXJvX2ljb25CCAoGX21vZGVsQg4KDF9kZXNjcmlwdGlvbiKAAgoiSGVyb0JhdHRsZVJlcG9ydFByb2plY3RBY3Rpdml0eUR0bxISCgpwcm9qZWN0X2lkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIWCg5hY3Rpdml0eV9jb3VudBgDIAEoBRIdChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYBCABKAUSFgoOcHJvcG9zYWxfY291bnQYBSABKAUSIgoaYXNzaXN0YW5jZV9jb21wbGV0ZWRfY291bnQYBiABKAUSHwoXYXNzaXN0YW5jZV9mYWlsZWRfY291bnQYByABKAUSFgoOYWN0aXZpdHlfc2hhcmUYCCABKAFCBwoFX25hbWUi+gEKIUhlcm9CYXR0bGVSZXBvcnRQcm9qZWN0UHJvZmlsZUR0bxIQCghoYXNfZGF0YRgBIAEoCBIdChVwcm9qZWN0X2NyZWF0ZWRfY291bnQYAiABKAMSHQoVc2Vzc2lvbl9jcmVhdGVkX2NvdW50GAMgASgDEiAKGHByb3Bvc2FsX2dlbmVyYXRlZF9jb3VudBgEIAEoAxIfChdwcm9wb3NhbF9leGVjdXRlZF9jb3VudBgFIAEoAxITCgt0b2tlbl90b3RhbBgGIAEoAxItCglhc19vZl91dGMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIo0CChtIZXJvQmF0dGxlUmVwb3J0UHJvamVjdHNEdG8SGwoTdG90YWxfcHJvamVjdF9jb3VudBgBIAEoBRIcChRhY3RpdmVfcHJvamVjdF9jb3VudBgCIAEoBRIZChFuZXdfcHJvamVjdF9jb3VudBgDIAEoBRJOCgx0b3BfcHJvamVjdHMYBCADKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UHJvamVjdEFjdGl2aXR5RHRvEkgKB3Byb2ZpbGUYBSABKAsyNy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UHJvamVjdFByb2ZpbGVEdG8irQIKFkhlcm9CYXR0bGVSZXBvcnRNdnBEdG8SDwoHaGVyb19pZBgBIAEoCRIRCgloZXJvX25hbWUYAiABKAkSFgoJaGVyb19pY29uGAMgASgJSACIAQESFQoNZXhlY3V0b3JfdHlwZRgEIAEoCRISCgVtb2RlbBgFIAEoCUgBiAEBEgwKBHJhbmsYBiABKAUSFAoMYmF0dGxlX3Njb3JlGAcgASgFEg0KBWdyYWRlGAggASgJEhcKD2V4ZWN1dGlvbl9jb3VudBgJIAEoBRIXCg90b29sX2NhbGxfY291bnQYCiABKAUSFAoMdG90YWxfdG9rZW5zGAsgASgDEhkKEXRvdGFsX2R1cmF0aW9uX21zGAwgASgDQgwKCl9oZXJvX2ljb25CCAoGX21vZGVsItkCChpIZXJvQmF0dGxlUmVwb3J0U3VtbWFyeUR0bxIYChB0b3RhbF9oZXJvX2NvdW50GAEgASgFEhkKEWFjdGl2ZV9oZXJvX2NvdW50GAIgASgFEhoKEnRvdGFsX2JhdHRsZV9zY29yZRgDIAEoBRIYChB0b3RhbF90b29sX2NhbGxzGAQgASgFEhQKDHRvdGFsX3Rva2VucxgFIAEoAxIZChF0b3RhbF9kdXJhdGlvbl9tcxgGIAEoAxIUCgxpbnB1dF90b2tlbnMYByABKAMSGgoSY2FjaGVfaW5wdXRfdG9rZW5zGAggASgDEhUKDW91dHB1dF90b2tlbnMYCSABKAMSGwoTY2FjaGVfb3V0cHV0X3Rva2VucxgKIAEoAxI5CgNtdnAYCyABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0TXZwRHRvIqYGChNIZXJvQmF0dGxlUmVwb3J0RHRvEhMKC3JlcG9ydF9kYXRlGAEgASgJEjQKEGdlbmVyYXRlZF9hdF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhQKDHRpbWVfem9uZV9pZBgDIAEoCRI1ChFjb3ZlcmVkX3N0YXJ0X3V0YxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoPY292ZXJlZF9lbmRfdXRjGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJFCgloYWdpcG93ZXIYBiABKAsyMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGFnaXBvd2VyRHRvEkEKB3N1bW1hcnkYByABKAsyMC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0U3VtbWFyeUR0bxJRCgxhY2hpZXZlbWVudHMYCCABKAsyOy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0QWNoaWV2ZW1lbnRTdW1tYXJ5RHRvElIKEGFjdGl2aXR5X3N1bW1hcnkYCSABKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0QWN0aXZpdHlTdW1tYXJ5RHRvEkcKCmNvbXBhcmlzb24YCiABKAsyMy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbkR0bxJECglleGVjdXRvcnMYCyADKAsyMS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0RXhlY3V0b3JEdG8SQwoIcHJvamVjdHMYDCABKAsyMS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0UHJvamVjdHNEdG8SPQoGaGVyb2VzGA0gAygLMi0uaGFnaWNvZGUucGxhdGZvcm0udjEuSGVyb0JhdHRsZVJlcG9ydEhlcm9EdG8itQEKHkhhZ2lwb3dlclB1YmxpY0hpc3RvcnlQb2ludER0bxI1ChFidWNrZXRfbWludXRlX3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHYmFsYW5jZRgCIAEoAxIVCg10b3RhbF9iYWxhbmNlGAMgASgDEiEKGWFjY3VtdWxhdGVkX3RvdGFsX2JhbGFuY2UYBCABKAMSEQoJaXNfZmlsbGVkGAUgASgIItcBCh5IYWdpcG93ZXJTdGF0aXN0aWNzTWV0YWRhdGFEdG8SMwoPcmFuZ2Vfc3RhcnRfdXRjGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg1yYW5nZV9lbmRfdXRjGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5idWNrZXRfbWludXRlcxgDIAEoBRIXCg9oYXNfZmlsbGVkX2dhcHMYBCABKAgSHAoUaGFzX3JlY29yZGVkX2hpc3RvcnkYBSABKAgi1gEKHUhhZ2lwb3dlclN0YXRpc3RpY3NTdW1tYXJ5RHRvEh4KFmN1cnJlbnRfcHVibGljX2JhbGFuY2UYASABKAMSHQoVY3VycmVudF90b3RhbF9iYWxhbmNlGAIgASgDEikKIWN1cnJlbnRfYWNjdW11bGF0ZWRfdG90YWxfYmFsYW5jZRgDIAEoAxISCgpuZXRfY2hhbmdlGAQgASgDEjcKE2xhc3RfdXBkYXRlZF9hdF91dGMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIogCChxIYWdpcG93ZXJTdGF0aXN0aWNzUmVwb3J0RHRvEg0KBXJhbmdlGAEgASgJEkYKCG1ldGFkYXRhGAIgASgLMjQuaGFnaWNvZGUucGxhdGZvcm0udjEuSGFnaXBvd2VyU3RhdGlzdGljc01ldGFkYXRhRHRvEkQKB3N1bW1hcnkYAyABKAsyMy5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJTdGF0aXN0aWNzU3VtbWFyeUR0bxJLCg1wdWJsaWNfc2VyaWVzGAQgAygLMjQuaGFnaWNvZGUucGxhdGZvcm0udjEuSGFnaXBvd2VyUHVibGljSGlzdG9yeVBvaW50RHRvIrsDChpIaXN0b3JpY2FsVGltZWxpbmVFdmVudER0bxIQCghldmVudF9pZBgBIAEoCRIzCg9vY2N1cnJlZF9hdF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmNyZWF0ZWRfYXRfdXRjGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtlbnRpdHlfdHlwZRgEIAEoCRIRCgllbnRpdHlfaWQYBSABKAkSFwoKcHJvamVjdF9pZBgGIAEoCUgAiAEBEhcKCnNlc3Npb25faWQYByABKAlIAYgBARIMCgRjb2RlGAggASgJEigKCG1ldGFkYXRhGAkgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhMKBnNvdXJjZRgKIAEoCUgCiAEBEhUKCGFjdG9yX2lkGAsgASgJSAOIAQESGwoOY29ycmVsYXRpb25faWQYDCABKAlIBIgBAUINCgtfcHJvamVjdF9pZEINCgtfc2Vzc2lvbl9pZEIJCgdfc291cmNlQgsKCV9hY3Rvcl9pZEIRCg9fY29ycmVsYXRpb25faWQiiAEKH0hpc3RvcmljYWxUaW1lbGluZVBhZ2luYXRpb25EdG8SEQoJcGFnZV9zaXplGAEgASgFEhYKDnJldHVybmVkX2NvdW50GAIgASgFEhAKCGhhc19tb3JlGAMgASgIEhgKC25leHRfY3Vyc29yGAQgASgJSACIAQFCDgoMX25leHRfY3Vyc29yIrABCiJIaXN0b3JpY2FsVGltZWxpbmVRdWVyeVJlc3BvbnNlRHRvEj8KBWl0ZW1zGAEgAygLMjAuaGFnaWNvZGUucGxhdGZvcm0udjEuSGlzdG9yaWNhbFRpbWVsaW5lRXZlbnREdG8SSQoKcGFnaW5hdGlvbhgCIAEoCzI1LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhpc3RvcmljYWxUaW1lbGluZVBhZ2luYXRpb25EdG8imwMKIEhpc3RvcmljYWxUaW1lbGluZUV2ZW50U2FtcGxlRHRvEhMKC2VudGl0eV90eXBlGAEgASgJEgwKBGNvZGUYAiABKAkSGAoQc2FtcGxlX2VudGl0eV9pZBgDIAEoCRIeChFzYW1wbGVfcHJvamVjdF9pZBgEIAEoCUgAiAEBEh4KEXNhbXBsZV9zZXNzaW9uX2lkGAUgASgJSAGIAQESGgoNc2FtcGxlX3NvdXJjZRgGIAEoCUgCiAEBEhwKD3NhbXBsZV9hY3Rvcl9pZBgHIAEoCUgDiAEBEiIKFXNhbXBsZV9jb3JyZWxhdGlvbl9pZBgIIAEoCUgEiAEBEjAKEG1ldGFkYXRhX2V4YW1wbGUYCSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVCFAoSX3NhbXBsZV9wcm9qZWN0X2lkQhQKEl9zYW1wbGVfc2Vzc2lvbl9pZEIQCg5fc2FtcGxlX3NvdXJjZUISChBfc2FtcGxlX2FjdG9yX2lkQhgKFl9zYW1wbGVfY29ycmVsYXRpb25faWQibQokSGlzdG9yaWNhbFRpbWVsaW5lU2FtcGxlc1Jlc3BvbnNlRHRvEkUKBWl0ZW1zGAEgAygLMjYuaGFnaWNvZGUucGxhdGZvcm0udjEuSGlzdG9yaWNhbFRpbWVsaW5lRXZlbnRTYW1wbGVEdG8y1QgKEVN0YXRpc3RpY3NTZXJ2aWNlEnQKEUdldEFnZ3JlZ2F0ZWREYXRhEi4uaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0QWdncmVnYXRlZERhdGFSZXF1ZXN0Gi8uaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0QWdncmVnYXRlZERhdGFSZXNwb25zZRJ9ChRHZXRUb2tlbk1vbml0b3JVc2FnZRIxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuTW9uaXRvclVzYWdlUmVxdWVzdBoyLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuTW9uaXRvclVzYWdlUmVzcG9uc2USlQEKHEdldFRva2VuVGhyb3VnaHB1dFN0YXRpc3RpY3MSOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVxdWVzdBo6LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuVGhyb3VnaHB1dFN0YXRpc3RpY3NSZXNwb25zZRKMAQoZR2V0VG9rZW5UaHJvdWdocHV0SGlzdG9yeRI2LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuVGhyb3VnaHB1dEhpc3RvcnlSZXF1ZXN0GjcuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5UaHJvdWdocHV0SGlzdG9yeVJlc3BvbnNlEnoKE0dldEhlcm9CYXR0bGVSZXBvcnQSMC5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIZXJvQmF0dGxlUmVwb3J0UmVxdWVzdBoxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhlcm9CYXR0bGVSZXBvcnRSZXNwb25zZRKMAQoZR2V0SGFnaXBvd2VySGlzdG9yeVJlcG9ydBI2LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXF1ZXN0GjcuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGFnaXBvd2VySGlzdG9yeVJlcG9ydFJlc3BvbnNlEoABChVHZXRIaXN0b3JpY2FsVGltZWxpbmUSMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIaXN0b3JpY2FsVGltZWxpbmVSZXF1ZXN0GjMuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGlzdG9yaWNhbFRpbWVsaW5lUmVzcG9uc2USlQEKHEdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXMSOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIaXN0b3JpY2FsVGltZWxpbmVTYW1wbGVzUmVxdWVzdBo6LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXNwb25zZUIqqgInUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLlBsYXRmb3JtLlYxYgZwcm90bzM",[Ne,Ge,ur]),Ed=G(Hr,1),Vd=Se(Hr,0),ae=ee("CiJoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25zLnByb3RvEhNoYWdpY29kZS5zZXNzaW9uLnYxIlUKFk9wZW5DaGF0U2Vzc2lvblJlcXVlc3QSOwoEYm9keRgBIAEoCzItLmhhZ2ljb2RlLnNlc3Npb24udjEuQ3JlYXRlQ2hhdFNlc3Npb25SZXF1ZXN0IlIKF09wZW5DaGF0U2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIk0KEk9wZW5TZXNzaW9uUmVxdWVzdBI3CgRib2R5GAEgASgLMikuaGFnaWNvZGUuc2Vzc2lvbi52MS5DcmVhdGVTZXNzaW9uUmVxdWVzdCJOChNPcGVuU2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIicKEUdldFNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiTQoSR2V0U2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvImEKElNhdmVTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjcKBGJvZHkYAiABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlVwZGF0ZVNlc3Npb25SZXF1ZXN0Ik4KE1NhdmVTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8izAEKE0xpc3RTZXNzaW9uc1JlcXVlc3QSEQoEdHlwZRgBIAEoCUgAiAEBEhgKC2FjdGl2ZV9vbmx5GAIgASgISAGIAQESHQoQaW5jbHVkZV9hcmNoaXZlZBgDIAEoCEgCiAEBEhcKCnByb2plY3RfaWQYBCABKAlIA4gBARITCgtwcm9qZWN0X2lkcxgFIAMoCUIHCgVfdHlwZUIOCgxfYWN0aXZlX29ubHlCEwoRX2luY2x1ZGVfYXJjaGl2ZWRCDQoLX3Byb2plY3RfaWQiUwoUTGlzdFNlc3Npb25zUmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTGlzdFJlc3BvbnNlRHRvIkAKFERlbGV0ZVNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSFAoMZGVsZXRlX2ZpbGVzGAIgASgIIlYKFURlbGV0ZVNlc3Npb25SZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byIvChlBcmNoaXZlQ2hhdFNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiWwoaQXJjaGl2ZUNoYXRTZXNzaW9uUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5TaW1wbGVNZXNzYWdlUmVzcG9uc2VEdG8idAoZU3dpdGNoU3RvcHBlZEFnZW50UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEkMKBGJvZHkYAiABKAsyNS5oYWdpY29kZS5zZXNzaW9uLnYxLlN3aXRjaFN0b3BwZWRTZXNzaW9uQWdlbnRSZXF1ZXN0IlUKGlN3aXRjaFN0b3BwZWRBZ2VudFJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIl4KG1N0YXJ0SGFnaVRhc2tTZXNzaW9uUmVxdWVzdBI/CgRib2R5GAEgASgLMjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5DcmVhdGVIYWdpVGFza1Nlc3Npb25SZXF1ZXN0IlcKHFN0YXJ0SGFnaVRhc2tTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iZAohU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXF1ZXN0Ej8KBGJvZHkYASABKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLkNyZWF0ZUhhZ2lUYXNrU2Vzc2lvblJlcXVlc3QiXQoiU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXNwb25zZRI3CgZyZXN1bHQYASABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0byLOAwoSQ2hhdEhlcm9TdW1tYXJ5RHRvEg8KB2hlcm9faWQYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhEKBGljb24YBCABKAlIAYgBARIVCg1leGVjdXRvcl90eXBlGAUgASgJEhkKDGFnZW50X2NsaV9pZBgGIAEoCUgCiAEBEhsKDmFnZW50X2NsaV9uYW1lGAcgASgJSAOIAQESGwoOYWdlbnRfY2xpX2ljb24YCCABKAlIBIgBARIVCghtb2RlbF9pZBgJIAEoCUgFiAEBEhcKCm1vZGVsX25hbWUYCiABKAlIBogBARIXCgptb2RlbF9pY29uGAsgASgJSAeIAQESIgoVc2Vjb25kYXJ5X21vZGVsX2xhYmVsGAwgASgJSAiIAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQg8KDV9hZ2VudF9jbGlfaWRCEQoPX2FnZW50X2NsaV9uYW1lQhEKD19hZ2VudF9jbGlfaWNvbkILCglfbW9kZWxfaWRCDQoLX21vZGVsX25hbWVCDQoLX21vZGVsX2ljb25CGAoWX3NlY29uZGFyeV9tb2RlbF9sYWJlbCI4ChRPcGVuU3BlY1Rhc2tQcm9ncmVzcxIRCgljb21wbGV0ZWQYASABKAUSDQoFdG90YWwYAiABKAUi/gEKEE9wZW5TcGVjRmlsZUluZm8SEQoJZmlsZV9uYW1lGAEgASgJEhUKDXJlbGF0aXZlX3BhdGgYAiABKAkSDgoGZXhpc3RzGAMgASgIEhEKCWZpbGVfdHlwZRgEIAEoCRITCgtpc19yZXF1aXJlZBgFIAEoCBITCgtpc19hcmNoaXZlZBgGIAEoCBIxCg1hcmNoaXZlZF9kYXRlGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJACg10YXNrX3Byb2dyZXNzGAggASgLMikuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcGVuU3BlY1Rhc2tQcm9ncmVzcyJcChFPcGVuU3BlY0ZpbGVzSW5mbxIRCgliYXNlX3BhdGgYASABKAkSNAoFZmlsZXMYAiADKAsyJS5oYWdpY29kZS5zZXNzaW9uLnYxLk9wZW5TcGVjRmlsZUluZm8izAEKFlF1ZXVlTWVzc2FnZVN1bW1hcnlEdG8SDQoFaW5kZXgYASABKAUSDAoEbW9kZRgCIAEoBRItCglxdWV1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvbnRlbnRfcHJldmlldxgEIAEoCRIhChRleGVjdXRpb25fbWVzc2FnZV9pZBgFIAEoCUgAiAEBEhEKCWNhbl9zdGVlchgGIAEoCEIXChVfZXhlY3V0aW9uX21lc3NhZ2VfaWQigAEKFlNlc3Npb25Ob3RpZmljYXRpb25EdG8SDAoEa2luZBgBIAEoCRIvCgtvYnNlcnZlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoHcGF5bG9hZBgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSLtAQoWU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIaCg1wcm9tcHRfdG9rZW5zGAEgASgFSACIAQESIQoUY2FjaGVkX3Byb21wdF90b2tlbnMYAiABKAVIAYgBARIeChFjb21wbGV0aW9uX3Rva2VucxgDIAEoBUgCiAEBEjMKD2xhc3RfdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3Byb21wdF90b2tlbnNCFwoVX2NhY2hlZF9wcm9tcHRfdG9rZW5zQhQKEl9jb21wbGV0aW9uX3Rva2VucyJfChRTdGFnZUV4ZWN1dG9ySW5mb0R0bxIVCg1wcm92aWRlcl90eXBlGAEgASgJEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAivAIKFVN0YWdlSGVyb1NlbGVjdGlvbkR0bxIRCglzdGFnZV9rZXkYASABKAkSEgoKc2NyaXB0X2tleRgCIAEoCRIVCg1zY2VuYXJpb19uYW1lGAMgASgJEhQKB2hlcm9faWQYBCABKAlIAIgBARIWCgloZXJvX25hbWUYBSABKAlIAYgBARIWCgloZXJvX2ljb24YBiABKAlIAogBARIVCg1leGVjdXRvcl90eXBlGAcgASgJEhUKDXVzZWRfZmFsbGJhY2sYCCABKAgSGAoQc2VsZWN0aW9uX3NvdXJjZRgJIAEoCRIvCgtzZWxlY3RlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2hlcm9faWRCDAoKX2hlcm9fbmFtZUIMCgpfaGVyb19pY29uIqULChJTZXNzaW9uUmVzcG9uc2VEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhwKD2NoaWVmX2NvbXBsYWludBgEIAEoCUgBiAEBEgwKBGNvZGUYBSABKAUSDAoEdHlwZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSEQoJaXNfYWN0aXZlGAggASgIEjIKDmxhc3RfYWN0aXZlX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwcm9qZWN0X2lkGAogASgJEhQKDHByb2plY3RfbmFtZRgLIAEoCRIUCgxwcm9qZWN0X3BhdGgYDCABKAkSGgoNcHJvcG9zYWxfbmFtZRgNIAEoCUgCiAEBEj8KD29wZW5fc3BlY19maWxlcxgOIAEoCzImLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlblNwZWNGaWxlc0luZm8SHQoVcGVuZGluZ19tZXNzYWdlX2NvdW50GA8gASgFEkMKDnF1ZXVlX21lc3NhZ2VzGBAgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZU1lc3NhZ2VTdW1tYXJ5RHRvEh4KEXdvcmtpbmdfZGlyZWN0b3J5GBEgASgJSAOIAQESFQoIbWV0YWRhdGEYEiABKAlIBIgBARIfChJjaGF0X2V4ZWN1dG9yX3R5cGUYEyABKAlIBYgBARI6CgljaGF0X2hlcm8YFCABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLkNoYXRIZXJvU3VtbWFyeUR0bxJZChJzdGFnZV9leGVjdXRvcl9tYXAYFSADKAsyPS5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0by5TdGFnZUV4ZWN1dG9yTWFwRW50cnkSZAoYc3RhZ2VfaGVyb19zZWxlY3Rpb25fbWFwGBYgAygLMkIuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8uU3RhZ2VIZXJvU2VsZWN0aW9uTWFwRW50cnkSIAoTcnVudGltZV9tb2RlbF9sYWJlbBgXIAEoCUgGiAEBEjkKFXByb2Nlc3Npbmdfc3RhcnRlZF9hdBgYIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQgoNc2Vzc2lvbl91c2FnZRgZIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIcCg9wcmV2aW91c19zdGF0dXMYGiABKAlIB4gBARJCCg1ub3RpZmljYXRpb25zGBsgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTm90aWZpY2F0aW9uRHRvGmIKFVN0YWdlRXhlY3V0b3JNYXBFbnRyeRILCgNrZXkYASABKAkSOAoFdmFsdWUYAiABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlN0YWdlRXhlY3V0b3JJbmZvRHRvOgI4ARpoChpTdGFnZUhlcm9TZWxlY3Rpb25NYXBFbnRyeRILCgNrZXkYASABKAkSOQoFdmFsdWUYAiABKAsyKi5oYWdpY29kZS5zZXNzaW9uLnYxLlN0YWdlSGVyb1NlbGVjdGlvbkR0bzoCOAFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9jaGllZl9jb21wbGFpbnRCEAoOX3Byb3Bvc2FsX25hbWVCFAoSX3dvcmtpbmdfZGlyZWN0b3J5QgsKCV9tZXRhZGF0YUIVChNfY2hhdF9leGVjdXRvcl90eXBlQhYKFF9ydW50aW1lX21vZGVsX2xhYmVsQhIKEF9wcmV2aW91c19zdGF0dXMieQoYQ3JlYXRlQ2hhdFNlc3Npb25SZXF1ZXN0Eg0KBXRpdGxlGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSGAoQaXNfZGVmYXVsdF90aXRsZRgDIAEoCBIUCgdoZXJvX2lkGAQgASgJSACIAQFCCgoIX2hlcm9faWQivgIKEFBhdGhSZWZlcmVuY2VEdG8SCgoCaWQYASABKAkSDgoGc291cmNlGAIgASgJEhUKDWRpc3BsYXlfdmFsdWUYAyABKAkSFQoNcGh5c2ljYWxfcGF0aBgEIAEoCRINCgVzdGFydBgFIAEoBRILCgNlbmQYBiABKAUSFgoJZW50aXR5X2lkGAcgASgJSACIAQESFwoKcHJvamVjdF9pZBgIIAEoCUgBiAEBEkUKCG1ldGFkYXRhGAkgAygLMjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5QYXRoUmVmZXJlbmNlRHRvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9lbnRpdHlfaWRCDQoLX3Byb2plY3RfaWQi+wEKGVNlc3Npb25NZXNzYWdlSW1hZ2VSZWZEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRIQCghpbWFnZV9pZBgCIAEoCRIWCg5oYWdpX2ltYWdlX3VybBgDIAEoCRIYCgtwcmV2aWV3X3VybBgEIAEoCUgAiAEBEhYKCWZpbGVfbmFtZRgFIAEoCUgBiAEBEhkKDGNvbnRlbnRfdHlwZRgGIAEoCUgCiAEBEhYKCWZpbGVfc2l6ZRgHIAEoA0gDiAEBQg4KDF9wcmV2aWV3X3VybEIMCgpfZmlsZV9uYW1lQg8KDV9jb250ZW50X3R5cGVCDAoKX2ZpbGVfc2l6ZSJ+ChlUYXJnZXRQcm9qZWN0UmVmZXJlbmNlRHRvEhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhgKC2FjY2Vzc190eXBlGAQgASgJSACIAQFCDgoMX2FjY2Vzc190eXBlIocBChNUYXJnZXRSZXBvc2l0b3J5RHRvEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIZCgxkaXNwbGF5X25hbWUYAyABKAlIAIgBARIYCgthY2Nlc3NfdHlwZRgEIAEoCUgBiAEBQg8KDV9kaXNwbGF5X25hbWVCDgoMX2FjY2Vzc190eXBlIj0KGFRhcmdldFJlcG9zaXRvcnlTY29wZUR0bxIMCgRtb2RlGAEgASgJEhMKC2FjY2Vzc190eXBlGAIgASgJIpUFChRDcmVhdGVTZXNzaW9uUmVxdWVzdBINCgV0aXRsZRgBIAEoCRIcCg9jaGllZl9jb21wbGFpbnQYAiABKAlIAIgBARIlChhvcmlnaW5hbF9jaGllZl9jb21wbGFpbnQYAyABKAlIAYgBARJIChBkcmFmdF9pbWFnZV9yZWZzGAQgAygLMi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTWVzc2FnZUltYWdlUmVmRHRvEhEKBHR5cGUYBSABKAlIAogBARISCgpwcm9qZWN0X2lkGAYgASgJEkUKE3RhcmdldF9yZXBvc2l0b3JpZXMYByADKAsyKC5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFJlcG9zaXRvcnlEdG8STgoXdGFyZ2V0X3JlcG9zaXRvcnlfc2NvcGUYCCABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFJlcG9zaXRvcnlTY29wZUR0bxJHCg90YXJnZXRfcHJvamVjdHMYCSADKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFByb2plY3RSZWZlcmVuY2VEdG8SPgoPcGF0aF9yZWZlcmVuY2VzGAogAygLMiUuaGFnaWNvZGUuc2Vzc2lvbi52MS5QYXRoUmVmZXJlbmNlRHRvEhgKEGlzX2RlZmF1bHRfdGl0bGUYCyABKAgSJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgMIAEoCUgDiAEBQhIKEF9jaGllZl9jb21wbGFpbnRCGwoZX29yaWdpbmFsX2NoaWVmX2NvbXBsYWludEIHCgVfdHlwZUIcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZSKTAQoUVXBkYXRlU2Vzc2lvblJlcXVlc3QSDQoFdGl0bGUYASABKAkSGAoLZGVzY3JpcHRpb24YAiABKAlIAIgBARITCgZzdGF0dXMYAyABKAlIAYgBARIVCghtZXRhZGF0YRgEIAEoCUgCiAEBQg4KDF9kZXNjcmlwdGlvbkIJCgdfc3RhdHVzQgsKCV9tZXRhZGF0YSJTChZTZXNzaW9uTGlzdFJlc3BvbnNlRHRvEjkKCHNlc3Npb25zGAEgAygLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iKwoYU2ltcGxlTWVzc2FnZVJlc3BvbnNlRHRvEg8KB21lc3NhZ2UYASABKAkiMwogU3dpdGNoU3RvcHBlZFNlc3Npb25BZ2VudFJlcXVlc3QSDwoHaGVyb19pZBgBIAEoCSLrCAocQ3JlYXRlSGFnaVRhc2tTZXNzaW9uUmVxdWVzdBINCgV0aXRsZRgBIAEoCRIYChBpc19kZWZhdWx0X3RpdGxlGAIgASgIEhIKCnByb2plY3RfaWQYAyABKAkSFgoJcHJvbXB0X2lkGAQgASgJSACIAQESFAoHbWVzc2FnZRgFIAEoCUgBiAEBEkgKEGRyYWZ0X2ltYWdlX3JlZnMYBiADKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25NZXNzYWdlSW1hZ2VSZWZEdG8SHAoPcmVwb3NpdG9yeV9wYXRoGAcgASgJSAKIAQESGAoLdGFyZ2V0X3R5cGUYCCABKAlIA4gBARIVCgh2YXVsdF9pZBgJIAEoCUgEiAEBEhwKD291dHB1dF92YXVsdF9pZBgKIAEoCUgFiAEBEhsKE3JlZmVyZW5jZV92YXVsdF9pZHMYCyADKAkSGgoSZWRpdGFibGVfdmF1bHRfaWRzGAwgAygJEkcKD3RhcmdldF9wcm9qZWN0cxgNIAMoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuVGFyZ2V0UHJvamVjdFJlZmVyZW5jZUR0bxIfChJyZXNlYXJjaF9kaXJlY3Rpb24YDiABKAlIBogBARIbCg5wcmVzZXRfdGFza19pZBgPIAEoCUgHiAEBEh8KEnByZXNldF90YXNrX2xvY2FsZRgQIAEoCUgIiAEBEjEKEXByZXNldF90YXNrX2lucHV0GBEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhcKD3JlcG9zaXRvcnlfdXJscxgSIAMoCRITCgtwcm9qZWN0X2lkcxgTIAMoCRIRCgluZWVkX3B1c2gYFCABKAgSJAoXcHVsbF9yZWJhc2VfYmVmb3JlX3B1c2gYFSABKAhICYgBARIfChJ0YXJnZXRfYnJhbmNoX21vZGUYFiABKAlICogBARIfChJ0YXJnZXRfYnJhbmNoX25hbWUYFyABKAlIC4gBARIXCgpzY3JpcHRfa2V5GBggASgJSAyIAQESFAoHaGVyb19pZBgZIAEoCUgNiAEBEiAKE2hlcm9fc2VsZWN0aW9uX21vZGUYGiABKAlIDogBAUIMCgpfcHJvbXB0X2lkQgoKCF9tZXNzYWdlQhIKEF9yZXBvc2l0b3J5X3BhdGhCDgoMX3RhcmdldF90eXBlQgsKCV92YXVsdF9pZEISChBfb3V0cHV0X3ZhdWx0X2lkQhUKE19yZXNlYXJjaF9kaXJlY3Rpb25CEQoPX3ByZXNldF90YXNrX2lkQhUKE19wcmVzZXRfdGFza19sb2NhbGVCGgoYX3B1bGxfcmViYXNlX2JlZm9yZV9wdXNoQhUKE190YXJnZXRfYnJhbmNoX21vZGVCFQoTX3RhcmdldF9icmFuY2hfbmFtZUINCgtfc2NyaXB0X2tleUIKCghfaGVyb19pZEIWChRfaGVyb19zZWxlY3Rpb25fbW9kZTLqCAoPU2Vzc2lvbnNTZXJ2aWNlEmwKD09wZW5DaGF0U2Vzc2lvbhIrLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlbkNoYXRTZXNzaW9uUmVxdWVzdBosLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlbkNoYXRTZXNzaW9uUmVzcG9uc2USYAoLT3BlblNlc3Npb24SJy5oYWdpY29kZS5zZXNzaW9uLnYxLk9wZW5TZXNzaW9uUmVxdWVzdBooLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlblNlc3Npb25SZXNwb25zZRJdCgpHZXRTZXNzaW9uEiYuaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uUmVxdWVzdBonLmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0U2Vzc2lvblJlc3BvbnNlEmAKC1NhdmVTZXNzaW9uEicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TYXZlU2Vzc2lvblJlcXVlc3QaKC5oYWdpY29kZS5zZXNzaW9uLnYxLlNhdmVTZXNzaW9uUmVzcG9uc2USYwoMTGlzdFNlc3Npb25zEiguaGFnaWNvZGUuc2Vzc2lvbi52MS5MaXN0U2Vzc2lvbnNSZXF1ZXN0GikuaGFnaWNvZGUuc2Vzc2lvbi52MS5MaXN0U2Vzc2lvbnNSZXNwb25zZRJmCg1EZWxldGVTZXNzaW9uEikuaGFnaWNvZGUuc2Vzc2lvbi52MS5EZWxldGVTZXNzaW9uUmVxdWVzdBoqLmhhZ2ljb2RlLnNlc3Npb24udjEuRGVsZXRlU2Vzc2lvblJlc3BvbnNlEnUKEkFyY2hpdmVDaGF0U2Vzc2lvbhIuLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZUNoYXRTZXNzaW9uUmVxdWVzdBovLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZUNoYXRTZXNzaW9uUmVzcG9uc2USdQoSU3dpdGNoU3RvcHBlZEFnZW50Ei4uaGFnaWNvZGUuc2Vzc2lvbi52MS5Td2l0Y2hTdG9wcGVkQWdlbnRSZXF1ZXN0Gi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5Td2l0Y2hTdG9wcGVkQWdlbnRSZXNwb25zZRJ7ChRTdGFydEhhZ2lUYXNrU2Vzc2lvbhIwLmhhZ2ljb2RlLnNlc3Npb24udjEuU3RhcnRIYWdpVGFza1Nlc3Npb25SZXF1ZXN0GjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGFydEhhZ2lUYXNrU2Vzc2lvblJlc3BvbnNlEo0BChpTdGFydExlZ2FjeUhhZ2lUYXNrU2Vzc2lvbhI2LmhhZ2ljb2RlLnNlc3Npb24udjEuU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXF1ZXN0GjcuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGFydExlZ2FjeUhhZ2lUYXNrU2Vzc2lvblJlc3BvbnNlQimqAiZQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuU2Vzc2lvbi5WMWIGcHJvdG8z",[Ne,Ge]),Gd=G(ae,1),Nd=G(ae,3),Wd=G(ae,5),Sd=G(ae,7),vd=G(ae,9),Xd=G(ae,11),Yd=G(ae,13),Id=G(ae,17),yd=G(ae,30),Bd=G(ae,36),Cd=G(ae,37),Fd=G(ae,41),wd=Se(ae,0),qe=ee("CitoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25fbWVzc2FnaW5nLnByb3RvEhNoYWdpY29kZS5zZXNzaW9uLnYxIr0BChlHZXRTZXNzaW9uTWVzc2FnZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSEQoEcGFnZRgCIAEoBUgAiAEBEhYKCXBhZ2Vfc2l6ZRgDIAEoBUgBiAEBEhoKDWhpc3Rvcnlfc2NvcGUYBCABKAlIAogBARISCgVvcmRlchgFIAEoCUgDiAEBQgcKBV9wYWdlQgwKCl9wYWdlX3NpemVCEAoOX2hpc3Rvcnlfc2NvcGVCCAoGX29yZGVyIlkKGkdldFNlc3Npb25NZXNzYWdlc1Jlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZUxpc3RSZXNwb25zZUR0byIqChRDYW5jZWxTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIlYKFUNhbmNlbFNlc3Npb25SZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLkNhbmNlbFNlc3Npb25SZXNwb25zZUR0byI3CiFHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSJeCiJHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1Jlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvY2Vzc2luZ1N0YXR1c0R0byJGChtDYW5jZWxQZW5kaW5nTWVzc2FnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgtxdWV1ZV9pbmRleBgCIAEoBSJcChxDYW5jZWxQZW5kaW5nTWVzc2FnZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsUGVuZGluZ01lc3NhZ2VEdG8iZAoTU3RlZXJTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjkKBGJvZHkYAiABKAsyKy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25TdGVlclJlcXVlc3REdG8iVAoUU3RlZXJTZXNzaW9uUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uU3RlZXJSZXNwb25zZUR0byKFAQoZU3RlZXJRdWV1ZWRNZXNzYWdlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEhMKC3F1ZXVlX2luZGV4GAIgASgFEj8KBGJvZHkYAyABKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLlF1ZXVlZE1lc3NhZ2VTdGVlclJlcXVlc3REdG8iYAoaU3RlZXJRdWV1ZWRNZXNzYWdlUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZWRNZXNzYWdlU3RlZXJSZXNwb25zZUR0byJmChlQb3N0U2Vzc2lvbk1lc3NhZ2VSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSNQoEYm9keRgCIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdE1lc3NhZ2VSZXF1ZXN0IlkKGlBvc3RTZXNzaW9uTWVzc2FnZVJlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdE1lc3NhZ2VSZXNwb25zZUR0byJgCipHZXRDb252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgZsb2NhbGUYAiABKAlIAIgBAUIJCgdfbG9jYWxlIn8KK0dldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0UmVzcG9uc2USUAoGcmVzdWx0GAEgASgLMkAuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlc3BvbnNlRHRvInEKH1N1Ym1pdFNlc3Npb25Bbm5vdGF0aW9uc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI6CgRib2R5GAIgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Bbm5vdGF0aW9uU3VibWlzc2lvbkR0byJoCiBTdWJtaXRTZXNzaW9uQW5ub3RhdGlvbnNSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5zZXNzaW9uLnYxLkFubm90YXRpb25TdWJtaXNzaW9uUmVzcG9uc2VEdG8i+gEKFk1lc3NhZ2VIZXJvU25hcHNob3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBEhYKCWhlcm9fbmFtZRgCIAEoCUgBiAEBEhYKCWhlcm9faWNvbhgDIAEoCUgCiAEBEhoKDWV4ZWN1dG9yX3R5cGUYBCABKAlIA4gBARITCgZzb3VyY2UYBSABKAlIBIgBARIWCglzdGFnZV9rZXkYBiABKAlIBYgBAUIKCghfaGVyb19pZEIMCgpfaGVyb19uYW1lQgwKCl9oZXJvX2ljb25CEAoOX2V4ZWN1dG9yX3R5cGVCCQoHX3NvdXJjZUIMCgpfc3RhZ2Vfa2V5IlIKHE1lc3NhZ2VVc2VyUXVlc3Rpb25BbnN3ZXJEdG8SEAoIcXVlc3Rpb24YASABKAkSDgoGdmFsdWVzGAIgAygJEhAKCHJlamVjdGVkGAMgASgIIkIKHE1lc3NhZ2VVc2VyUXVlc3Rpb25PcHRpb25EdG8SDQoFbGFiZWwYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiyAEKGk1lc3NhZ2VVc2VyUXVlc3Rpb25JdGVtRHRvEhAKCHF1ZXN0aW9uGAEgASgJEg4KBmhlYWRlchgCIAEoCRIUCgxtdWx0aV9zZWxlY3QYAyABKAgSQgoHb3B0aW9ucxgEIAMoCzIxLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbk9wdGlvbkR0bxIbChNhbGxvd19jdXN0b21fYW5zd2VyGAUgASgIEhEKCWlzX3NlY3JldBgGIAEoCCJaChxNZXNzYWdlVXNlclF1ZXN0aW9uTGltaXRzRHRvEhkKEW1heF9hbnN3ZXJfbGVuZ3RoGAEgASgFEh8KF21heF92YWx1ZXNfcGVyX3F1ZXN0aW9uGAIgASgFItgCChZNZXNzYWdlVXNlclF1ZXN0aW9uRHRvEhMKC3F1ZXN0aW9uX2lkGAEgASgJEhMKBnJ1bl9pZBgCIAEoCUgAiAEBEg0KBXN0YXRlGAMgASgJEkIKCXF1ZXN0aW9ucxgEIAMoCzIvLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbkl0ZW1EdG8SQgoHYW5zd2VycxgFIAMoCzIxLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbkFuc3dlckR0bxIvCgthbnN3ZXJlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoGbGltaXRzGAcgASgLMjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlVXNlclF1ZXN0aW9uTGltaXRzRHRvQgkKB19ydW5faWQi1gMKEk1lc3NhZ2VSZXNwb25zZUR0bxIKCgJpZBgBIAEoCRISCgpzZXNzaW9uX2lkGAIgASgJEgwKBHR5cGUYAyABKAkSDAoEbW9kZRgEIAEoCRItCgl0aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDWNyZWF0aW9uX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KDmNvbnRlbnRfYmxvY2tzGAcgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhIKBW1vZGVsGAggASgJSACIAQESFQoIcHJvdmlkZXIYCSABKAlIAYgBARJCCg1oZXJvX3NuYXBzaG90GAogASgLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlSGVyb1NuYXBzaG90RHRvEkIKDXVzZXJfcXVlc3Rpb24YCyABKAsyKy5oYWdpY29kZS5zZXNzaW9uLnYxLk1lc3NhZ2VVc2VyUXVlc3Rpb25EdG8SGAoLc3RlZXJfc3RhdGUYDCABKAlIAogBAUIICgZfbW9kZWxCCwoJX3Byb3ZpZGVyQg4KDF9zdGVlcl9zdGF0ZSKyAQoWTWVzc2FnZUxpc3RSZXNwb25zZUR0bxISCgpzZXNzaW9uX2lkGAEgASgJEgwKBHBhZ2UYAiABKAUSEQoJcGFnZV9zaXplGAMgASgFEhMKC3RvdGFsX2NvdW50GAQgASgFEhMKC3RvdGFsX3BhZ2VzGAUgASgFEjkKCG1lc3NhZ2VzGAYgAygLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlUmVzcG9uc2VEdG8ikAEKGENhbmNlbFNlc3Npb25SZXNwb25zZUR0bxISCgpzZXNzaW9uX2lkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIwCgxjYW5jZWxsZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKBnJ1bl9pZBgEIAEoCUgAiAEBQgkKB19ydW5faWQi3gEKE1Byb2Nlc3NpbmdTdGF0dXNEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRIVCg1pc19wcm9jZXNzaW5nGAIgASgIEhwKFHF1ZXVlZF9tZXNzYWdlX2NvdW50GAMgASgFEkMKDnF1ZXVlX21lc3NhZ2VzGAQgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZU1lc3NhZ2VTdW1tYXJ5RHRvEjkKFXByb2Nlc3Npbmdfc3RhcnRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiPQoUQ2FuY2VsbGVkTWVzc2FnZUluZm8SDAoEbW9kZRgBIAEoCRIXCg9jb250ZW50X3ByZXZpZXcYAiABKAkiwwEKF0NhbmNlbFBlbmRpbmdNZXNzYWdlRHRvEhIKCnNlc3Npb25faWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBITCgtxdWV1ZV9pbmRleBgDIAEoBRIXCg9yZW1haW5pbmdfY291bnQYBCABKAUSDwoHbWVzc2FnZRgFIAEoCRJEChFjYW5jZWxsZWRfbWVzc2FnZRgGIAEoCzIpLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsbGVkTWVzc2FnZUluZm8iUgoXU2Vzc2lvblN0ZWVyUmVzcG9uc2VEdG8SDwoHb3V0Y29tZRgBIAEoCRIXCgptZXNzYWdlX2lkGAIgASgJSACIAQFCDQoLX21lc3NhZ2VfaWQiKQoWU2Vzc2lvblN0ZWVyUmVxdWVzdER0bxIPCgdjb250ZW50GAEgASgJIjAKHVF1ZXVlZE1lc3NhZ2VTdGVlclJlc3BvbnNlRHRvEg8KB291dGNvbWUYASABKAkiPAocUXVldWVkTWVzc2FnZVN0ZWVyUmVxdWVzdER0bxIcChRleGVjdXRpb25fbWVzc2FnZV9pZBgBIAEoCSIpChZQb3N0TWVzc2FnZVJlc3BvbnNlRHRvEg8KB21lc3NhZ2UYASABKAkitwEKElBvc3RNZXNzYWdlUmVxdWVzdBIPCgdjb250ZW50GAEgASgJEgwKBG1vZGUYAiABKAkSQgoKaW1hZ2VfcmVmcxgDIAMoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvbk1lc3NhZ2VJbWFnZVJlZkR0bxI+Cg9wYXRoX3JlZmVyZW5jZXMYBCADKAsyJS5oYWdpY29kZS5zZXNzaW9uLnYxLlBhdGhSZWZlcmVuY2VEdG8iXgorQ29udmVydFRvUHJvcG9zYWxIYWdpU2tpbGxQcm9tcHRSZXNwb25zZUR0bxIPCgdvdXRjb21lGAEgASgJEhMKBnByb21wdBgCIAEoCUgAiAEBQgkKB19wcm9tcHQiYAofQW5ub3RhdGlvblN1Ym1pc3Npb25SZXNwb25zZUR0bxIPCgdtZXNzYWdlGAEgASgJEhgKEGFubm90YXRpb25fY291bnQYAiABKAUSEgoKZmlsZV9jb3VudBgDIAEoBSLKAQoSQmxvY2tBbm5vdGF0aW9uRHRvEhkKEXN0YXJ0X2xpbmVfbnVtYmVyGAEgASgFEhcKD2VuZF9saW5lX251bWJlchgCIAEoBRIYChBvcmlnaW5hbF9jb250ZW50GAMgASgJEhIKCmJsb2NrX3R5cGUYBCABKAkSFwoPYW5ub3RhdGlvbl90ZXh0GAUgASgJEi0KCXRpbWVzdGFtcBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASCgoCaWQYByABKAkirwEKEUZpbGVBbm5vdGF0aW9uRHRvEhEKCWZpbGVfbmFtZRgBIAEoCRIRCglmaWxlX3BhdGgYAiABKAkSQgoRYmxvY2tfYW5ub3RhdGlvbnMYAyADKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLkJsb2NrQW5ub3RhdGlvbkR0bxIcCg9maWxlX2Fubm90YXRpb24YBCABKAlIAIgBAUISChBfZmlsZV9hbm5vdGF0aW9uIt8BChdBbm5vdGF0aW9uU3VibWlzc2lvbkR0bxISCgpzZXNzaW9uX2lkGAEgASgJEjUKBWZpbGVzGAIgAygLMiYuaGFnaWNvZGUuc2Vzc2lvbi52MS5GaWxlQW5ub3RhdGlvbkR0bxIZChF0b3RhbF9hbm5vdGF0aW9ucxgDIAEoBRIwCgxzdWJtaXR0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhoKDWdsb2JhbF9wcm9tcHQYBSABKAlIAIgBAUIQCg5fZ2xvYmFsX3Byb21wdDKNCQoXU2Vzc2lvbk1lc3NhZ2luZ1NlcnZpY2USdQoSR2V0U2Vzc2lvbk1lc3NhZ2VzEi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uTWVzc2FnZXNSZXF1ZXN0Gi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uTWVzc2FnZXNSZXNwb25zZRJmCg1DYW5jZWxTZXNzaW9uEikuaGFnaWNvZGUuc2Vzc2lvbi52MS5DYW5jZWxTZXNzaW9uUmVxdWVzdBoqLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsU2Vzc2lvblJlc3BvbnNlEo0BChpHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1cxI2LmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0U2Vzc2lvblByb2Nlc3NpbmdTdGF0dXNSZXF1ZXN0GjcuaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1Jlc3BvbnNlEnsKFENhbmNlbFBlbmRpbmdNZXNzYWdlEjAuaGFnaWNvZGUuc2Vzc2lvbi52MS5DYW5jZWxQZW5kaW5nTWVzc2FnZVJlcXVlc3QaMS5oYWdpY29kZS5zZXNzaW9uLnYxLkNhbmNlbFBlbmRpbmdNZXNzYWdlUmVzcG9uc2USYwoMU3RlZXJTZXNzaW9uEiguaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGVlclNlc3Npb25SZXF1ZXN0GikuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGVlclNlc3Npb25SZXNwb25zZRJ1ChJTdGVlclF1ZXVlZE1lc3NhZ2USLi5oYWdpY29kZS5zZXNzaW9uLnYxLlN0ZWVyUXVldWVkTWVzc2FnZVJlcXVlc3QaLy5oYWdpY29kZS5zZXNzaW9uLnYxLlN0ZWVyUXVldWVkTWVzc2FnZVJlc3BvbnNlEnUKElBvc3RTZXNzaW9uTWVzc2FnZRIuLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdFNlc3Npb25NZXNzYWdlUmVxdWVzdBovLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdFNlc3Npb25NZXNzYWdlUmVzcG9uc2USqAEKI0dldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0Ej8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRDb252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlcXVlc3QaQC5oYWdpY29kZS5zZXNzaW9uLnYxLkdldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0UmVzcG9uc2UShwEKGFN1Ym1pdFNlc3Npb25Bbm5vdGF0aW9ucxI0LmhhZ2ljb2RlLnNlc3Npb24udjEuU3VibWl0U2Vzc2lvbkFubm90YXRpb25zUmVxdWVzdBo1LmhhZ2ljb2RlLnNlc3Npb24udjEuU3VibWl0U2Vzc2lvbkFubm90YXRpb25zUmVzcG9uc2VCKaoCJlBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5TZXNzaW9uLlYxYgZwcm90bzM",[Ne,Ge,ae]),Ud=G(qe,1),Jd=G(qe,13),kd=G(qe,17),xd=G(qe,35),Kd=G(qe,40),zd=Se(qe,0),Ae=ee("CipoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25fcHJvcG9zYWwucHJvdG8SE2hhZ2ljb2RlLnNlc3Npb24udjEiOAoiTGlzdFVubGlua2VkT3BlblNwZWNDaGFuZ2VzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJInIKI0xpc3RVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEksKBnJlc3VsdBgBIAEoCzI7LmhhZ2ljb2RlLnNlc3Npb24udjEuVW5saW5rZWRPcGVuU3BlY0NoYW5nZXNMaXN0UmVzcG9uc2VEdG8ijQIKGVVubGlua2VkT3BlblNwZWNDaGFuZ2VEdG8SDAoEbmFtZRgBIAEoCRINCgV0aXRsZRgCIAEoCRIPCgdzdW1tYXJ5GAMgASgJEhwKD3Rhc2tzX2NvbXBsZXRlZBgEIAEoBUgAiAEBEhgKC3Rhc2tzX3RvdGFsGAUgASgFSAGIAQESGQoRaGFzX3Byb3Bvc2FsX2ZpbGUYBiABKAgSDQoFZmlsZXMYByADKAkSIgoVbm90X2ltcG9ydGFibGVfcmVhc29uGAggASgJSAKIAQFCEgoQX3Rhc2tzX2NvbXBsZXRlZEIOCgxfdGFza3NfdG90YWxCGAoWX25vdF9pbXBvcnRhYmxlX3JlYXNvbiJpCiZVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc0xpc3RSZXNwb25zZUR0bxI/CgdjaGFuZ2VzGAEgAygLMi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5VbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRHRvIjkKI0NvdW50VW5saW5rZWRPcGVuU3BlY0NoYW5nZXNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiawokQ291bnRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEkMKBnJlc3VsdBgBIAEoCzIzLmhhZ2ljb2RlLnNlc3Npb24udjEuVW5saW5rZWRPcGVuU3BlY0NoYW5nZUNvdW50RHRvIi8KHlVubGlua2VkT3BlblNwZWNDaGFuZ2VDb3VudER0bxINCgVjb3VudBgBIAEoBSJiCiRHZXRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRmlsZVJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRITCgtjaGFuZ2VfbmFtZRgCIAEoCRIRCglmaWxlX3BhdGgYAyABKAkiawolR2V0VW5saW5rZWRPcGVuU3BlY0NoYW5nZUZpbGVSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5zZXNzaW9uLnYxLlVubGlua2VkT3BlblNwZWNDaGFuZ2VGaWxlRHRvIkMKHVVubGlua2VkT3BlblNwZWNDaGFuZ2VGaWxlRHRvEhEKCWZpbGVfcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgJIkgKHEltcG9ydE9wZW5TcGVjQ2hhbmdlc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIUCgxjaGFuZ2VfbmFtZXMYAiADKAkiZAodSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5JbXBvcnRPcGVuU3BlY0NoYW5nZXNSZXN1bHREdG8iZAoeSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVzdWx0RHRvEkIKB3Jlc3VsdHMYASADKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLkltcG9ydE9wZW5TcGVjQ2hhbmdlRW50cnlEdG8imAEKHEltcG9ydE9wZW5TcGVjQ2hhbmdlRW50cnlEdG8SDAoEbmFtZRgBIAEoCRIOCgZzdGF0dXMYAiABKAkSOAoHc2Vzc2lvbhgDIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvEhQKB21lc3NhZ2UYBCABKAlIAIgBAUIKCghfbWVzc2FnZSJwCh5PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI6CgRib2R5GAIgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcHRpbWl6ZVByb3Bvc2FsUmVxdWVzdCJtCh9PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVSZXNwb25zZUR0byJsChdHZW5lcmF0ZVByb3Bvc2FsUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEj0KBGJvZHkYAiABKAsyLy5oYWdpY29kZS5zZXNzaW9uLnYxLkdlbmVyYXRlUHJvcG9zYWxSZXF1ZXN0RHRvIlkKGEdlbmVyYXRlUHJvcG9zYWxSZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byJoChVBcmNoaXZlU2Vzc2lvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI7CgRib2R5GAIgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5BcmNoaXZlU2Vzc2lvblJlcXVlc3REdG8iUQoWQXJjaGl2ZVNlc3Npb25SZXNwb25zZRI3CgZyZXN1bHQYASABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0byJqChZFeGVjdXRlUHJvcG9zYWxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSPAoEYm9keRgCIAEoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuRXhlY3V0ZVByb3Bvc2FsUmVxdWVzdER0byJYChdFeGVjdXRlUHJvcG9zYWxSZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byIsChZDb21wbGV0ZVNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiUgoXQ29tcGxldGVTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iMwodVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSJaCh5WYWxpZGF0ZVNlc3Npb25FeGVjdXRlUmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0aW9uUmVzdWx0RHRvIjEKG1ZhbGlkYXRlU2Vzc2lvblN0YXJ0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIlgKHFZhbGlkYXRlU2Vzc2lvblN0YXJ0UmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0aW9uUmVzdWx0RHRvIjMKHVZhbGlkYXRlU2Vzc2lvbkFyY2hpdmVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiWgoeVmFsaWRhdGVTZXNzaW9uQXJjaGl2ZVJlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvblJlc3VsdER0byJyCiFQcm9wb3NhbE9wdGltaXphdGlvbkRpYWdub3N0aWNEdG8SDAoEY29kZRgBIAEoCRIQCghzZXZlcml0eRgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhIKBWZpZWxkGAQgASgJSACIAQFCCAoGX2ZpZWxkIo4BCi1Qcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVZhbGlkYXRpb25SZXN1bHREdG8SEAoIaXNfdmFsaWQYASABKAgSSwoLZGlhZ25vc3RpY3MYAiADKAsyNi5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uRGlhZ25vc3RpY0R0byLcAwonUHJvcG9zYWxPcHRpbWl6YXRpb25TY2VuYXJpb1NldHRpbmdzRHRvEhcKCnNjcmlwdF9rZXkYASABKAlIAIgBARIdChBzZWxlY3RlZF9oZXJvX2lkGAIgASgJSAGIAQESHAoPY2FwdGFpbl9oZXJvX2lkGAMgASgJSAKIAQESFgoJcm9zdGVyX2lkGAQgASgJSAOIAQESawoQZXh0ZW5zaW9uX2ZpZWxkcxgFIAMoCzJRLmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25TY2VuYXJpb1NldHRpbmdzRHRvLkV4dGVuc2lvbkZpZWxkc0VudHJ5EhYKCXN0YWdlX2tleRgGIAEoCUgEiAEBEh0KEHNlbGVjdGlvbl9zb3VyY2UYByABKAlIBYgBARo2ChRFeHRlbnNpb25GaWVsZHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19zY3JpcHRfa2V5QhMKEV9zZWxlY3RlZF9oZXJvX2lkQhIKEF9jYXB0YWluX2hlcm9faWRCDAoKX3Jvc3Rlcl9pZEIMCgpfc3RhZ2Vfa2V5QhMKEV9zZWxlY3Rpb25fc291cmNlIr4DCiNQcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVJlc3VsdER0bxIcCg9vcHRpbWl6ZWRfdGl0bGUYASABKAlIAIgBARIoChtvcHRpbWl6ZWRfcHJvcG9zYWxfbWFya2Rvd24YAiABKAlIAYgBARIfChdvcHRpbWl6ZWRfcHJvcG9zYWxfbmFtZRgDIAEoCRIdChVvcHRpbWl6ZWRfZGVzY3JpcHRpb24YBCABKAkSVwoRc2NlbmFyaW9fc2V0dGluZ3MYBSABKAsyPC5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uU2NlbmFyaW9TZXR0aW5nc0R0bxJWCgp2YWxpZGF0aW9uGAYgASgLMkIuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVZhbGlkYXRpb25SZXN1bHREdG8SGQoMcmF3X3Jlc3BvbnNlGAcgASgJSAKIAQFCEgoQX29wdGltaXplZF90aXRsZUIeChxfb3B0aW1pemVkX3Byb3Bvc2FsX21hcmtkb3duQg8KDV9yYXdfcmVzcG9uc2Ui0ggKJFByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlU3VtbWFyeUR0bxIbChNyZXF1ZXN0X2ZpbmdlcnByaW50GAEgASgJEjQKEGdlbmVyYXRlZF9hdF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBnNvdXJjZRgDIAEoCRIVCg1hcHBsaWVkX3RpdGxlGAQgASgJEh0KFWFwcGxpZWRfcHJvcG9zYWxfbmFtZRgFIAEoCRIgChhwcm9wb3NhbF9kcmFmdF9hdmFpbGFibGUYBiABKAgSIAoYc2NlbmFyaW9fc2V0dGluZ3Nfc3RhdHVzGAcgASgJEhoKEmFwcGxpZWRfdGl0bGVfbW9kZRgIIAEoCRIQCghpc192YWxpZBgJIAEoCBJLCgtkaWFnbm9zdGljcxgKIAMoCzI2LmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25EaWFnbm9zdGljRHRvEiYKGW9wdGltaXplZF90aXRsZV9jYW5kaWRhdGUYCyABKAlIAIgBARIjChZwcm9wb3NhbF9kcmFmdF9wcmV2aWV3GAwgASgJSAGIAQESGgoNYXJ0aWZhY3RfcGF0aBgNIAEoCUgCiAEBEhsKDmNvcnJlbGF0aW9uX2lkGA4gASgJSAOIAQESHQoQcmVzb2x2ZWRfaGVyb19pZBgPIAEoCUgEiAEBEh8KEnJlc29sdmVkX2hlcm9fbmFtZRgQIAEoCUgFiAEBEh8KEnJlc29sdmVkX2hlcm9faWNvbhgRIAEoCUgGiAEBEigKG3Jlc29sdmVkX2hlcm9fZXhlY3V0b3JfdHlwZRgSIAEoCUgHiAEBEiIKFWhlcm9fc2VsZWN0aW9uX3NvdXJjZRgTIAEoCUgIiAEBEiMKFmhlcm9fcm91dGluZ19zdGFnZV9rZXkYFCABKAlICYgBARIkChdoZXJvX3JvdXRpbmdfc2NyaXB0X2tleRgVIAEoCUgKiAEBEiQKF29wdGltaXphdGlvbl9jZXNzaW9uX2lkGBYgASgJSAuIAQFCHAoaX29wdGltaXplZF90aXRsZV9jYW5kaWRhdGVCGQoXX3Byb3Bvc2FsX2RyYWZ0X3ByZXZpZXdCEAoOX2FydGlmYWN0X3BhdGhCEQoPX2NvcnJlbGF0aW9uX2lkQhMKEV9yZXNvbHZlZF9oZXJvX2lkQhUKE19yZXNvbHZlZF9oZXJvX25hbWVCFQoTX3Jlc29sdmVkX2hlcm9faWNvbkIeChxfcmVzb2x2ZWRfaGVyb19leGVjdXRvcl90eXBlQhgKFl9oZXJvX3NlbGVjdGlvbl9zb3VyY2VCGQoXX2hlcm9fcm91dGluZ19zdGFnZV9rZXlCGgoYX2hlcm9fcm91dGluZ19zY3JpcHRfa2V5QhoKGF9vcHRpbWl6YXRpb25fY2Vzc2lvbl9pZCLVAQolUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVSZXNwb25zZUR0bxJICgZyZXN1bHQYASABKAsyOC5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlUmVzdWx0RHRvEkoKB3N1bW1hcnkYAiABKAsyOS5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlU3VtbWFyeUR0bxIWCg5jb3JyZWxhdGlvbl9pZBgDIAEoCSKJAwoXT3B0aW1pemVQcm9wb3NhbFJlcXVlc3QSEwoLZGVzY3JpcHRpb24YASABKAkSJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgCIAEoCUgAiAEBEiMKFm9wdGltaXphdGlvbl9kaXJlY3Rpb24YAyABKAlIAYgBARISCgV0aXRsZRgEIAEoCUgCiAEBEhgKEGlzX2RlZmF1bHRfdGl0bGUYBSABKAgSJQoYb3JpZ2luYWxfY2hpZWZfY29tcGxhaW50GAYgASgJSAOIAQESVwoRc2NlbmFyaW9fc2V0dGluZ3MYByABKAsyPC5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uU2NlbmFyaW9TZXR0aW5nc0R0b0IcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZUIZChdfb3B0aW1pemF0aW9uX2RpcmVjdGlvbkIICgZfdGl0bGVCGwoZX29yaWdpbmFsX2NoaWVmX2NvbXBsYWludCJFChpQbGFubmluZ0RpcmVjdGlvbk9wdGlvbkR0bxIPCgJpZBgBIAEoCUgAiAEBEg8KB2VuYWJsZWQYAiABKAhCBQoDX2lkIowCChpHZW5lcmF0ZVByb3Bvc2FsUmVxdWVzdER0bxIgChNlbmFibGVfZXhwbG9yZV9tb2RlGAEgASgISACIAQESTAoTcGxhbm5pbmdfZGlyZWN0aW9ucxgCIAMoCzIvLmhhZ2ljb2RlLnNlc3Npb24udjEuUGxhbm5pbmdEaXJlY3Rpb25PcHRpb25EdG8SJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgDIAEoCUgBiAEBEhQKB2hlcm9faWQYBCABKAlIAogBAUIWChRfZW5hYmxlX2V4cGxvcmVfbW9kZUIcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZUIKCghfaGVyb19pZCI8ChhBcmNoaXZlU2Vzc2lvblJlcXVlc3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBQgoKCF9oZXJvX2lkIj0KGUV4ZWN1dGVQcm9wb3NhbFJlcXVlc3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBQgoKCF9oZXJvX2lkIlcKC0NvbmZsaWN0RHRvEgwKBHR5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhIKCnJlc29sdXRpb24YBCABKAkiawoSVmFsaWRhdGlvbklzc3VlRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIQCghzZXZlcml0eRgDIAEoCRIWCgllbnRpdHlfaWQYBCABKAlIAIgBAUIMCgpfZW50aXR5X2lkIoUBChRWYWxpZGF0aW9uU3VtbWFyeUR0bxIVCg1wcm9qZWN0X2NvdW50GAEgASgFEhUKDXNlc3Npb25fY291bnQYAiABKAUSHwoXZHVwbGljYXRlX3Byb2plY3RfY291bnQYAyABKAUSHgoWb3JwaGFuZWRfc2Vzc2lvbl9jb3VudBgEIAEoBSKMAgoTVmFsaWRhdGlvblJlc3VsdER0bxIQCghpc192YWxpZBgBIAEoCBI5Cgh3YXJuaW5ncxgCIAMoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvbklzc3VlRHRvEjcKBmVycm9ycxgDIAMoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvbklzc3VlRHRvEjMKCWNvbmZsaWN0cxgEIAMoCzIgLmhhZ2ljb2RlLnNlc3Npb24udjEuQ29uZmxpY3REdG8SOgoHc3VtbWFyeRgFIAEoCzIpLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvblN1bW1hcnlEdG8yngwKFlNlc3Npb25Qcm9wb3NhbFNlcnZpY2UShAEKF09wdGltaXplU2Vzc2lvblByb3Bvc2FsEjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlcXVlc3QaNC5oYWdpY29kZS5zZXNzaW9uLnYxLk9wdGltaXplU2Vzc2lvblByb3Bvc2FsUmVzcG9uc2USbwoQR2VuZXJhdGVQcm9wb3NhbBIsLmhhZ2ljb2RlLnNlc3Npb24udjEuR2VuZXJhdGVQcm9wb3NhbFJlcXVlc3QaLS5oYWdpY29kZS5zZXNzaW9uLnYxLkdlbmVyYXRlUHJvcG9zYWxSZXNwb25zZRJpCg5BcmNoaXZlU2Vzc2lvbhIqLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZVNlc3Npb25SZXF1ZXN0GisuaGFnaWNvZGUuc2Vzc2lvbi52MS5BcmNoaXZlU2Vzc2lvblJlc3BvbnNlEmwKD0V4ZWN1dGVQcm9wb3NhbBIrLmhhZ2ljb2RlLnNlc3Npb24udjEuRXhlY3V0ZVByb3Bvc2FsUmVxdWVzdBosLmhhZ2ljb2RlLnNlc3Npb24udjEuRXhlY3V0ZVByb3Bvc2FsUmVzcG9uc2USbAoPQ29tcGxldGVTZXNzaW9uEisuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db21wbGV0ZVNlc3Npb25SZXF1ZXN0GiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db21wbGV0ZVNlc3Npb25SZXNwb25zZRKBAQoWVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZRIyLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZVJlcXVlc3QaMy5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRlU2Vzc2lvbkV4ZWN1dGVSZXNwb25zZRJ7ChRWYWxpZGF0ZVNlc3Npb25TdGFydBIwLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uU3RhcnRSZXF1ZXN0GjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0ZVNlc3Npb25TdGFydFJlc3BvbnNlEoEBChZWYWxpZGF0ZVNlc3Npb25BcmNoaXZlEjIuaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0ZVNlc3Npb25BcmNoaXZlUmVxdWVzdBozLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uQXJjaGl2ZVJlc3BvbnNlEpABChtMaXN0VW5saW5rZWRPcGVuU3BlY0NoYW5nZXMSNy5oYWdpY29kZS5zZXNzaW9uLnYxLkxpc3RVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1JlcXVlc3QaOC5oYWdpY29kZS5zZXNzaW9uLnYxLkxpc3RVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEpMBChxDb3VudFVubGlua2VkT3BlblNwZWNDaGFuZ2VzEjguaGFnaWNvZGUuc2Vzc2lvbi52MS5Db3VudFVubGlua2VkT3BlblNwZWNDaGFuZ2VzUmVxdWVzdBo5LmhhZ2ljb2RlLnNlc3Npb24udjEuQ291bnRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlc1Jlc3BvbnNlEpYBCh1HZXRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRmlsZRI5LmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0VW5saW5rZWRPcGVuU3BlY0NoYW5nZUZpbGVSZXF1ZXN0GjouaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRVbmxpbmtlZE9wZW5TcGVjQ2hhbmdlRmlsZVJlc3BvbnNlEn4KFUltcG9ydE9wZW5TcGVjQ2hhbmdlcxIxLmhhZ2ljb2RlLnNlc3Npb24udjEuSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVxdWVzdBoyLmhhZ2ljb2RlLnNlc3Npb24udjEuSW1wb3J0T3BlblNwZWNDaGFuZ2VzUmVzcG9uc2VCKaoCJlBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5TZXNzaW9uLlYxYgZwcm90bzM",[Ge,ae]),Ld=G(Ae,15),jd=G(Ae,17),Hd=G(Ae,19),Td=G(Ae,21),Qd=G(Ae,23),Md=G(Ae,36),Od=G(Ae,38),Dd=G(Ae,39),_d=G(Ae,40),Pd=Se(Ae,0),_t=new Set([b.INT64,b.UINT64,b.SINT64,b.FIXED64,b.SFIXED64]),Tr=e=>e.typeName.startsWith("google.protobuf.");function Pt(e){if(typeof e!="string")return e;const t=Number(e);return Number.isSafeInteger(t)?t:e}function Wt(e,t){if(t==null||typeof t!="object"||Array.isArray(t)||Tr(e))return t;const n=t;for(const o of e.fields){const a=n[o.jsonName];a!==void 0&&(n[o.jsonName]=$d(o,a))}return n}function $d(e,t){switch(e.fieldKind){case"scalar":return _t.has(e.scalar)?Pt(t):t;case"message":return Wt(e.message,t);case"list":return Array.isArray(t)?e.listKind==="scalar"?_t.has(e.scalar)?t.map(Pt):t:e.listKind==="message"?t.map(n=>Wt(e.message,n)):t:t;case"map":{if(t===null||typeof t!="object"||Array.isArray(t))return t;const n=t;for(const o of Object.keys(n))e.mapKind==="scalar"&&_t.has(e.scalar)?n[o]=Pt(n[o]):e.mapKind==="message"&&(n[o]=Wt(e.message,n[o]));return n}default:return t}}function qd(e,t){return Wt(e,hr(e,t,{alwaysEmitImplicit:!0}))}function em(e,t){return qd(e,t).result}function St(e,t,n=0){if(t===null||typeof t!="object"||Array.isArray(t)||Tr(e)||n>8)return t;const o=t;for(const a of e.fields){const r=o[a.jsonName];if(!(r===null||typeof r!="object")){if(a.fieldKind==="message")St(a.message,r,n+1);else if(a.fieldKind==="list"&&a.listKind==="message"&&Array.isArray(r))r.forEach(i=>St(a.message,i,n+1));else if(a.fieldKind==="map"&&!Array.isArray(r)){const i=r;for(const s of Object.keys(i)){const l=i[s];a.mapKind==="scalar"&&a.scalar===b.STRING?l===null?delete i[s]:(typeof l=="number"||typeof l=="boolean")&&(i[s]=String(l)):a.mapKind==="message"&&St(a.message,l,n+1)}}}}return t}function T(e,t){return Rr(e,t===void 0?t:St(e,JSON.parse(JSON.stringify(t))),{ignoreUnknownFields:!0})}function ua(e,t){const n=Cr(e);if(n)throw t.forEach((o,a)=>{n.metadata.append(a,o)}),n;if(!t.has("Grpc-Status")&&!e.has("Grpc-Status"))throw new Y("protocol error: missing status",R.Internal)}function tm(e,t,n,o){var a,r;const i=new Headers(n??{});i.set(Oc,e?tu:nu),i.set(eu,"1");const s=(r=(a=i.get("User-Agent"))!==null&&a!==void 0?a:i.get("X-User-Agent"))!==null&&r!==void 0?r:"connect-es/2.2.0";return i.set(qc,s),o&&i.set($c,s),t!==void 0&&i.set(_c,`${t}m`),i}function da(e,t,n,o,a,r){const i=tm(e,t,n,r);return a!=null&&i.set(yr,a.name),o.length>0&&i.set(Dc,o.map(s=>s.name).join(",")),i}function nm(e){switch(e){case 400:return R.Internal;case 401:return R.Unauthenticated;case 403:return R.PermissionDenied;case 404:return R.Unimplemented;case 429:return R.Unavailable;case 502:return R.Unavailable;case 503:return R.Unavailable;case 504:return R.Unavailable;default:return R.Unknown}}function om(e,t){var n;if(e>=200&&e<300)return{foundStatus:t.has(Br),headerError:Cr(t)};throw new Y(decodeURIComponent((n=t.get("Grpc-Message"))!==null&&n!==void 0?n:`HTTP ${e}`),nm(e),t)}function ma(e,t,n){const{foundStatus:o,headerError:a}=om(t,n);let r;const i=n.get(yr);if(i!==null&&i.toLowerCase()!=="identity"&&(r=e.find(s=>s.name===i),!r))throw new Y(`unsupported response encoding "${i}"`,R.Internal,n);return{foundStatus:o,compression:r,headerError:a}}var ba=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(s,l){i=e[r](i),a(s,l,i.done,i.value)})}}function a(r,i,s,l){Promise.resolve(l).then(function(c){r({value:c,done:s})},i)}},Ie=function(e){return this instanceof Ie?(this.v=e,this):new Ie(e)},am=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(V){return Promise.resolve(V).then(Z,h)}}function s(Z,V){o[Z]&&(a[Z]=function(N){return new Promise(function(B,J){r.push([Z,N,B,J])>1||l(Z,N)})},V&&(a[Z]=V(a[Z])))}function l(Z,V){try{c(o[Z](V))}catch(N){f(r[0][3],N)}}function c(Z){Z.value instanceof Ie?Promise.resolve(Z.value.v).then(d,h):f(r[0][2],Z)}function d(Z){l("next",Z)}function h(Z){l("throw",Z)}function f(Z,V){Z(V),r.shift(),r.length&&l(r[0][0],r[0][1])}};function rm(e){return{async unary(t,n,o,a,r,i){const s=aa(t,e.binaryOptions,e.jsonOptions,e);return o=o===void 0?e.defaultTimeoutMs:o<=0?void 0:o,await su({interceptors:e.interceptors,signal:n,timeoutMs:o,req:{stream:!1,service:t.parent,method:t,requestMethod:"POST",url:oa(e.baseUrl,t),header:da(e.useBinaryFormat,o,a,e.acceptCompression,e.sendCompression,!0),contextValues:i??ta(),message:r},next:async l=>{const c=await e.httpClient({url:l.url,method:l.requestMethod,header:l.header,signal:l.signal,body:Nt(Xr([l.message]),Do(s.getI(e.useBinaryFormat)),Po(e.sendCompression,e.compressMinBytes),qo(),{propagateDownStreamError:!0})}),{compression:d,headerError:h}=ma(e.acceptCompression,c.status,c.header),{trailer:f,message:Z}=await wc(c.body,ea(e.readMaxBytes),$o(d??null,e.readMaxBytes),_o(s.getO(e.useBinaryFormat),128,na()),async V=>{var N,B,J,u;let m,p;try{for(var g=!0,A=ba(V),E;E=await A.next(),N=E.done,!N;g=!0){u=E.value,g=!1;const I=u;if(I.end){if(p!==void 0)throw new Y("protocol error: received extra trailer",R.Unimplemented);p=I.value}else{if(m!==void 0)throw new Y("protocol error: received extra output message for unary method",R.Unimplemented);m=I.value}}}catch(I){B={error:I}}finally{try{!g&&!N&&(J=A.return)&&await J.call(A)}finally{if(B)throw B.error}}return{trailer:p,message:m}},{propagateDownStreamError:!1});if(f===void 0)throw h??new Y("protocol error: missing trailer",c.header.has("Grpc-Status")?R.Unimplemented:R.Unknown);if(ua(f,c.header),Z===void 0)throw new Y("protocol error: missing output message for unary method",f.has("Grpc-Status")?R.Unimplemented:R.Unknown);return{stream:!1,service:t.parent,method:t,header:c.header,message:Z,trailer:f}}})},async stream(t,n,o,a,r,i){const s=aa(t,e.binaryOptions,e.jsonOptions,e);return o=o===void 0?e.defaultTimeoutMs:o<=0?void 0:o,lu({interceptors:e.interceptors,signal:n,timeoutMs:o,req:{stream:!0,service:t.parent,method:t,requestMethod:"POST",url:oa(e.baseUrl,t),header:da(e.useBinaryFormat,o,a,e.acceptCompression,e.sendCompression,!0),contextValues:i??ta(),message:r},next:async l=>{const c=await e.httpClient({url:l.url,method:l.requestMethod,header:l.header,signal:l.signal,body:Nt(l.message,Do(s.getI(e.useBinaryFormat)),Po(e.sendCompression,e.compressMinBytes),qo(),{propagateDownStreamError:!0})}),{compression:d,foundStatus:h,headerError:f}=ma(e.acceptCompression,c.status,c.header);if(f)throw f;const Z=Object.assign(Object.assign({},l),{header:c.header,trailer:new Headers,message:Nt(c.body,ea(e.readMaxBytes),$o(d??null,e.readMaxBytes),_o(s.getO(e.useBinaryFormat),128,na()),function(V){return am(this,arguments,function*(){var N,B,J,u;if(h){if((yield Ie(V[Symbol.asyncIterator]().next())).done!==!0)throw new Y("protocol error: extra data for trailers-only",R.InvalidArgument);return yield Ie(void 0)}let m=!1;try{for(var p=!0,g=ba(V),A;A=yield Ie(g.next()),N=A.done,!N;p=!0){u=A.value,p=!1;const E=u;if(E.end){if(m)throw new Y("protocol error: received extra trailer",R.InvalidArgument);m=!0,ua(E.value,c.header),E.value.forEach((I,U)=>Z.trailer.set(U,I));continue}if(m)throw new Y("protocol error: received extra message after trailer",R.InvalidArgument);yield yield Ie(E.value)}}catch(E){B={error:E}}finally{try{!p&&!N&&(J=g.return)&&(yield Ie(J.call(g)))}finally{if(B)throw B.error}}if(!m)throw new Y("protocol error: missing trailer",R.Internal)})},{propagateDownStreamError:!0})});return Z}})}}}function xt(e){let t=R.Internal;const n=Dn(e).map(Kt);n.some(a=>a.code=="ERR_STREAM_WRITE_AFTER_END")||n.some(a=>a.code=="ERR_STREAM_DESTROYED"||a.code=="ERR_HTTP2_INVALID_STREAM"||a.code=="ECONNRESET")?t=R.Aborted:n.some(a=>a.code=="ETIMEDOUT"||a.code=="ENOTFOUND"||a.code=="EAI_AGAIN"||a.code=="ECONNREFUSED")&&(t=R.Unavailable);const o=Y.from(e,t);return o!==e&&(o.cause=e),o}function Dn(e){const t=[];for(;!(!(e instanceof Error)||t.includes(e)||(t.push(e),!("cause"in e)));)e=e.cause;return t}function Kt(e){const t={};return e instanceof Error&&("code"in e&&typeof e.code=="string"&&(t.code=e.code),"syscall"in e&&typeof e.syscall=="string"&&(t.syscall=e.syscall)),t}function im(e){switch(e){case M.PROTOCOL_ERROR:case M.INTERNAL_ERROR:case M.FLOW_CONTROL_ERROR:case M.SETTINGS_TIMEOUT:case M.FRAME_SIZE_ERROR:case M.COMPRESSION_ERROR:case M.CONNECT_ERROR:return new Y(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.Internal);case M.REFUSED_STREAM:return new Y(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.Unavailable);case M.CANCEL:return new Y(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.Canceled);case M.ENHANCE_YOUR_CALM:return new Y(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.ResourceExhausted);case M.INADEQUATE_SECURITY:return new Y(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.PermissionDenied);case M.HTTP_1_1_REQUIRED:return new Y(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.PermissionDenied);default:break}}var M;(function(e){e[e.PROTOCOL_ERROR=1]="PROTOCOL_ERROR",e[e.INTERNAL_ERROR=2]="INTERNAL_ERROR",e[e.FLOW_CONTROL_ERROR=3]="FLOW_CONTROL_ERROR",e[e.SETTINGS_TIMEOUT=4]="SETTINGS_TIMEOUT",e[e.STREAM_CLOSED=5]="STREAM_CLOSED",e[e.FRAME_SIZE_ERROR=6]="FRAME_SIZE_ERROR",e[e.REFUSED_STREAM=7]="REFUSED_STREAM",e[e.CANCEL=8]="CANCEL",e[e.COMPRESSION_ERROR=9]="COMPRESSION_ERROR",e[e.CONNECT_ERROR=10]="CONNECT_ERROR",e[e.ENHANCE_YOUR_CALM=11]="ENHANCE_YOUR_CALM",e[e.INADEQUATE_SECURITY=12]="INADEQUATE_SECURITY",e[e.HTTP_1_1_REQUIRED=13]="HTTP_1_1_REQUIRED"})(M||(M={}));var sm=(0,Bt.promisify)(Me.gzip),lm=(0,Bt.promisify)(Me.gunzip),cm=(0,Bt.promisify)(Me.brotliCompress),um=(0,Bt.promisify)(Me.brotliDecompress),dm={name:"gzip",compress(e){return Yt(sm(e,{}))},decompress(e,t){return e.length==0?Promise.resolve(new Uint8Array(0)):Yt(Qr(lm(e,{maxOutputLength:t}),t))}},mm={name:"br",compress(e){return Yt(cm(e,{}))},decompress(e,t){return e.length==0?Promise.resolve(new Uint8Array(0)):Yt(Qr(um(e,{maxOutputLength:t}),t))}};function Yt(e){return e.then(t=>t.buffer instanceof ArrayBuffer?t:new Uint8Array(t))}function Qr(e,t){return e.catch(n=>{var o;const a=Kt(n);let r=R.Internal,i="decompression failed";switch(a.code){case"ERR_BUFFER_TOO_LARGE":r=R.ResourceExhausted,i=`message is larger than configured readMaxBytes ${t} after decompression`;break;case"Z_DATA_ERROR":case"ERR_PADDING_2":r=R.InvalidArgument;break;default:!((o=a.code)===null||o===void 0)&&o.startsWith("ERR__ERROR_FORMAT_")&&(r=R.InvalidArgument);break}return Promise.reject(new Y(i,r,void 0,void 0,n))})}function zt(e){const t=new Headers;for(const[n,o]of Object.entries(e))if(!n.startsWith(":")&&o!==void 0)if(typeof o=="string")t.append(n,o);else if(typeof o=="number")t.append(n,String(o));else for(const a of o)t.append(n,a);return t}function Mr(e,t){if(e===void 0&&t===void 0)return;const n=Object.create(null);if(t!==void 0)if(Array.isArray(t))for(let o=0;o+1<t.length;o+=2){const a=t[o],r=t[o+1];Array.isArray(n[a])?n[a].push(r):typeof n[a]=="string"?n[a]=[n[a],r]:n[a]=r}else for(const[o,a]of Object.entries(t))Array.isArray(a)?n[o]=a.concat():a!==void 0&&(n[o]=a);if(e!==void 0)if(Array.isArray(e))for(const[o,a]of e)$t(n,o,a);else if("forEach"in e)typeof e.forEach=="function"&&e.forEach((o,a)=>{$t(n,a,o)});else for(const[o,a]of Object.entries(e))$t(n,o,a);return n}function $t(e,t,n){t=t.toLowerCase();const o=e[t];Array.isArray(o)?o.push(n):o===void 0?e[t]=n:e[t]=[o.toString(),n]}var Or=class{state(){return this.s.t=="ready"?this.verifying!==void 0?"verifying":this.s.streamCount()>0?"open":"idle":this.s.t}error(){if(this.s.t=="error")return this.s.reason}constructor(e,t,n){var o,a,r,i;this.s=pn(),this.shuttingDown=[],this.authority=new URL(e).origin,this.http2SessionOptions=n,this.options={pingIntervalMs:(o=t?.pingIntervalMs)!==null&&o!==void 0?o:Number.POSITIVE_INFINITY,pingTimeoutMs:(a=t?.pingTimeoutMs)!==null&&a!==void 0?a:1e3*15,pingIdleConnection:(r=t?.pingIdleConnection)!==null&&r!==void 0?r:!1,idleConnectionTimeoutMs:(i=t?.idleConnectionTimeoutMs)!==null&&i!==void 0?i:1e3*60*15}}async connect(){try{return(await this.gotoReady()).streamCount()>0?"open":"idle"}catch{return"error"}}async request(e,t,n,o){for(;;){const a=await this.gotoReady();try{const r=a.conn.request(Object.assign(Object.assign({},n),{":method":e,":path":t}),o);return a.registerRequest(r),r}catch(r){if(a.conn.closed||a.conn.destroyed)continue;throw r}}}notifyResponseByteRead(e){this.s.t=="ready"&&this.s.responseByteRead(e);for(const t of this.shuttingDown)t.responseByteRead(e)}abort(e){var t,n,o;const a=e??new Y("connection aborted",R.Canceled);(n=(t=this.s).abort)===null||n===void 0||n.call(t,a);for(const r of this.shuttingDown)(o=r.abort)===null||o===void 0||o.call(r,a);this.setState(Zt(a))}async gotoReady(){for(this.s.t=="ready"?this.s.isShuttingDown()||this.s.conn.closed||this.s.conn.destroyed?this.setState(qt(this.authority,this.http2SessionOptions)):this.s.requiresVerify()&&await this.verify(this.s):(this.s.t=="closed"||this.s.t=="error")&&this.setState(qt(this.authority,this.http2SessionOptions));this.s.t!=="ready";){if(this.s.t==="error")throw this.s.reason;this.s.t==="connecting"&&await this.s.conn}return this.s}setState(e){var t,n;if((n=(t=this.s).onExitState)===null||n===void 0||n.call(t),this.s.t=="ready"&&this.s.isShuttingDown()){const o=this.s;this.shuttingDown.push(o),o.onClose=o.onError=()=>{const a=this.shuttingDown.indexOf(o);a!==-1&&this.shuttingDown.splice(a,1)}}switch(e.t){case"connecting":e.conn.then(o=>{this.setState(hm(o,this.options))},o=>{this.setState(Zt(o))});break;case"ready":e.onClose=()=>this.setState(pn()),e.onError=o=>this.setState(Zt(o));break;case"closed":break;case"error":break}this.s=e}verify(e){return this.verifying!==void 0?this.verifying:(this.verifying=e.verify().then(t=>{t||this.setState(qt(this.authority,this.http2SessionOptions))},t=>{this.setState(Zt(t))}).finally(()=>{this.verifying=void 0}),this.verifying)}};function pn(){return{t:"closed"}}function bm(e){return{t:"error",reason:e}}function Zt(e){return e instanceof Y&&Y.from(e).code==R.Canceled?pn():bm(e)}function qt(e,t){let n,o;const a=new Promise((c,d)=>{n=c,o=d}),r=be.connect(e,t);r.on("connect",i),r.on("error",s);function i(){n?.(r),l()}function s(c){o?.(xt(c)),l()}function l(){r.off("connect",i),r.off("error",s)}return{t:"connecting",conn:a,abort(c){r.destroyed||r.destroy(void 0,be.constants.NGHTTP2_CANCEL),o?.(c)},onExitState(){l()}}}function hm(e,t){gm(e),e.unref();let n=Date.now(),o=0,a,r,i=!1,s=!1,l;N();const c={t:"ready",conn:e,streamCount(){return o},requiresVerify(){return Date.now()-n>t.pingIntervalMs},isShuttingDown(){return i},onClose:void 0,onError:void 0,registerRequest(g){o++,o==1&&(e.ref(),d(),V()),g.once("response",()=>{n=Date.now(),d()}),g.once("close",()=>{o--,o==0&&(e.unref(),d(),N())})},responseByteRead(g){g.session===e&&(e.closed||e.destroyed||o<=0||(n=Date.now(),d()))},verify(){return e.ref(),new Promise(g=>{const A=()=>{g(!1)};Z(()=>{o==0&&e.unref(),e.off("error",A),e.off("close",A),g(!0)}),e.once("error",A),e.once("close",A)})},abort(g){e.destroyed||(e.once("error",()=>{}),e.destroy(g,be.constants.NGHTTP2_CANCEL))},onExitState(){c.isShuttingDown()||(p(),this.onError=void 0,this.onClose=void 0)}};function d(){h(),(o>0||t.pingIdleConnection)&&(a=en(f,t.pingIntervalMs))}function h(){clearTimeout(a),clearTimeout(r)}function f(){Z(d)}function Z(g){clearTimeout(r),r=en(()=>{e.destroy(new Y("PING timed out",R.Unavailable),be.constants.NGHTTP2_CANCEL)},t.pingTimeoutMs),e.ping((A,E)=>{if(clearTimeout(r),A===null){if(E>t.pingTimeoutMs){e.destroy(new Y("PING timed out",R.Unavailable),be.constants.NGHTTP2_CANCEL);return}n=Date.now(),g()}})}function V(){clearTimeout(l)}function N(){l=en(B,t.idleConnectionTimeoutMs)}function B(){e.close(),u()}function J(g,A,E){if(g===be.constants.NGHTTP2_NO_ERROR&&o===0){e.destroy(new Y("received GOAWAY without any open streams",R.Canceled),be.constants.NGHTTP2_NO_ERROR);return}i=!0;const I=Buffer.from("too_many_pings","ascii");E?.equals(I)&&(t.pingIntervalMs=t.pingIntervalMs*2,s=!0)}function u(){var g;p(),(g=c.onClose)===null||g===void 0||g.call(c)}function m(g){var A,E;if(p(),s){const I=new Y(`http/2 connection closed with error code ENHANCE_YOUR_CALM (0x${be.constants.NGHTTP2_ENHANCE_YOUR_CALM.toString(16)}), too_many_pings, doubled the interval`,R.ResourceExhausted);(A=c.onError)===null||A===void 0||A.call(c,I)}else(E=c.onError)===null||E===void 0||E.call(c,xt(g))}function p(){h(),V(),e.off("error",m),e.off("close",u),e.off("goaway",J)}return e.on("error",m),e.on("close",u),e.on("goaway",J),c}function en(e,t){if(!(t>2147483647))return setTimeout(e,t).unref()}function gm(e){if(e.connecting)throw new Y("expected open session, but it is connecting",R.Internal);if(e.destroyed)throw new Y("expected open session, but it is destroyed",R.Internal);if(e.closed)throw new Y("expected open session, but it is closed",R.Internal)}function ha(e){var t;return e.httpVersion=="1.1"?pm(e.nodeOptions):Am((t=e.sessionProvider)!==null&&t!==void 0?t:(n=>new Or(n)))}function pm(e){return async function(n){const o=_r(n.signal);return new Promise((a,r)=>{o.onError(i=>{r(i)}),Zm(o,n.url,Object.assign(Object.assign({},e),{headers:Mr(n.header,e?.headers),method:n.method}),i=>{Dr(n,i,o),i.on("response",s=>{var l;s.on("error",o.error),o.onError(d=>s.destroy(d));const c=new Headers;a({status:(l=s.statusCode)!==null&&l!==void 0?l:0,header:zt(s.headers),body:fm(o,s,c),trailer:c})})})})}}function Am(e){return function(n){const o=_r(n.signal),a=e(n.url);return new Promise((r,i)=>{o.onError(s=>{i(s)}),Rm(o,a,n.url,n.method,Mr(n.header),{},s=>{Dr(n,s,o),s.on("response",l=>{var c;r({status:(c=l[":status"])!==null&&c!==void 0?c:0,header:zt(l),body:Vm(o,s,a),trailer:Em(s)})})})})}}function Zm(e,t,n,o){let a;new URL(t).protocol.startsWith("https")?a=rn.request(t,n):a=an.request(t,n),e.onError(r=>a.destroy(r)),a.flushHeaders(),a.on("error",e.error),a.on("socket",function(i){function s(){i.off("connect",s),o(a)}i.readyState==="open"?o(a):i.on("connect",s)})}function fm(e,t,n){const o=t[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){const a=await e.race(o.next());return a.done===!0&&(zt(t.trailers).forEach((r,i)=>{n.set(i,r)}),e.close()),a},throw(a){throw e.error(a),a}}}}}function Rm(e,t,n,o,a,r,i){const s=new URL(n);if(s.origin!==t.authority){const l=`cannot make a request to ${s.origin}: the http2 session is connected to ${t.authority}`;e.error(new Y(l,R.Internal));return}t.request(o,s.pathname+s.search,a,{}).then(l=>{e.onError(c=>{if(l.closed)return;const d=c.code==R.Canceled?M.CANCEL:M.INTERNAL_ERROR;return new Promise(h=>l.close(d,h))}),l.on("error",function(d){l.writableEnded&&Dn(d).map(Kt).some(h=>h.code=="ERR_STREAM_WRITE_AFTER_END")||e.error(d)}),l.on("close",function(){const d=im(l.rstCode);d&&e.error(d)}),i(l)},l=>{e.error(l)})}function Em(e){const t=new Headers;return e.on("trailers",n=>{zt(n).forEach((o,a)=>{t.set(a,o)})}),t}function Vm(e,t,n){const o=t[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){const a=await e.race(o.next());return a.done===!0&&e.close(),n?.notifyResponseByteRead(t),a},throw(a){throw e.error(a),a}}}}}async function Dr(e,t,n){if(e.body===void 0){await new Promise(a=>t.end(a));return}const o=e.body[Symbol.asyncIterator]();return new Promise(a=>{r();function r(){n.isClosed()||o.next().then(i=>{if(i.done===!0){t.end(a);return}t.write(i.value,"binary",s=>{if(s==null){r();return}o.throw!==void 0&&o.throw(xt(s)).catch(()=>{}),!(t.writableEnded&&Dn(s).map(Kt).some(l=>l.code=="ERR_STREAM_WRITE_AFTER_END"))&&n.error(s)})},i=>{n.error(i)})}})}function _r(e){let t,n=!1,o,a=[];const r={error(l){if(!n){n=!0,o=l instanceof Y?l:xt(l),t?.(o);for(const c of a)c(o);i()}},close(){n||(n=!0,t&&t(new Y("sentinel completed early",R.Internal)),i())},isClosed(){return n},onError(l){n?o!==void 0&&l(o):a.push(l)},race(l){let c;const d=new Promise((h,f)=>{c=h,t=f});return l.then(h=>{c?.(h)},h=>{t?.(h)}),n&&t?.(o??new Y("sentinel completed early",R.Internal)),d}};function i(){e&&e.removeEventListener("abort",s),a=[],t=void 0}function s(){r.error(ct(this))}return e&&(e.addEventListener("abort",s),e.aborted&&r.error(ct(e))),r}function Gm(e){var t,n,o,a;let r;if(e.httpVersion=="2"){let i;e.sessionManager?i=e.sessionManager:i=new Or(e.baseUrl,{pingIntervalMs:e.pingIntervalMs,pingIdleConnection:e.pingIdleConnection,pingTimeoutMs:e.pingTimeoutMs,idleConnectionTimeoutMs:e.idleConnectionTimeoutMs},e.nodeOptions),r=ha({httpVersion:"2",sessionProvider:()=>i})}else r=ha({httpVersion:"1.1",nodeOptions:e.nodeOptions});return Object.assign(Object.assign(Object.assign({},e),{httpClient:r,useBinaryFormat:(t=e.useBinaryFormat)!==null&&t!==void 0?t:!0,interceptors:(n=e.interceptors)!==null&&n!==void 0?n:[],sendCompression:(o=e.sendCompression)!==null&&o!==void 0?o:null,acceptCompression:(a=e.acceptCompression)!==null&&a!==void 0?a:[dm,mm]}),vc(e.readMaxBytes,e.writeMaxBytes,e.compressMinBytes))}function Nm(e){return rm(Gm(e))}function Wm(e){return`cli/${e??"unknown"}`}var Sm=Wm("0.1.0-dev.39.1.c7a4f44"),vm="/grpc";function Xm(e){return`${e.replace(/\/+$/,"")}${vm}`}var Ym=e=>async t=>{const{token:n,lang:o}=jr();return t.header.set("X-Hagi-Client",Sm),n&&t.header.set("Authorization",`Bearer ${n}`),o&&t.header.set("Accept-Language",o),e(t)},ft;function Xe(){const e=Xm(jr().baseUrl);return(!ft||ft.baseUrl!==e)&&(ft={baseUrl:e,transport:Nm({baseUrl:e,httpVersion:"1.1",useBinaryFormat:!0,interceptors:[Ym]})}),ft.transport}var me=()=>We(Ju,Xe()),He=()=>We(Qu,Xe()),we=()=>We(qu,Xe()),ga=()=>We(od,Xe()),se=()=>We(Rd,Xe()),Im=()=>We(Vd,Xe()),Ye=()=>We(wd,Xe()),tn=()=>We(zd,Xe()),nt=()=>We(Pd,Xe());async function y(e,t){return em(e,await t)}function ym(){return{listSessions:async e=>y(vd,Ye().listSessions({type:e.type,activeOnly:e.activeOnly,includeArchived:e.includeArchived,projectId:e.projectId,projectIds:e.projectIds??[]})),getSession:async e=>y(Wd,Ye().getSession({sessionId:e})),getSessionMessages:async(e,t={})=>y(Ud,tn().getSessionMessages({sessionId:e,page:t.page,pageSize:t.pageSize,historyScope:t.historyScope,order:t.order})),createProposalSession:async e=>y(Nd,Ye().openSession({body:T(Bd,e)})),createChatSession:async e=>y(Gd,Ye().openChatSession({body:T(yd,e)})),createHagiTaskSession:async e=>y(Id,Ye().startHagiTaskSession({body:T(Fd,e)})),listHagiTaskSchemas:async()=>y(td,ga().listPresetTaskSchemas({})),getHagiTaskSchema:async e=>y(nd,ga().getPresetTaskSchema({presetTaskId:e})),updateSession:async(e,t)=>y(Sd,Ye().saveSession({sessionId:e,body:T(Cd,t)})),deleteSession:async(e,t)=>y(Xd,Ye().deleteSession({sessionId:e,deleteFiles:t??!1})),sendMessage:async(e,t)=>y(Jd,tn().postSessionMessage({sessionId:e,body:T(xd,t)})),optimizeProposal:async(e,t)=>y(Ld,nt().optimizeSessionProposal({sessionId:e,body:T(Md,t)})),generateProposal:async(e,t)=>y(jd,nt().generateProposal({sessionId:e,body:T(Od,t)})),executeProposal:async(e,t)=>y(Td,nt().executeProposal({sessionId:e,body:T(_d,t??{})})),archiveProposal:async(e,t)=>y(Hd,nt().archiveSession({sessionId:e,body:T(Dd,t??{})})),completeProposal:async e=>y(Qd,nt().completeSession({sessionId:e})),submitAnnotations:async(e,t)=>y(kd,tn().submitSessionAnnotations({sessionId:e,body:T(Kd,t)})),listProjects:async()=>y(Ed,Im().getAggregatedData({forceRefresh:!1})),createProject:async e=>y(Gu,me().createProject({body:T(Bu,e)})),updateProject:async(e,t)=>y(Nu,me().updateProject({id:e,body:T(Cu,t)})),deleteProject:async e=>{await me().deleteProject({id:e})},getMonoSpecsManagement:async e=>y(Wu,me().getMonoSpecsManagement({projectId:e})),saveMonoSpecsManagement:async(e,t)=>y(Iu,me().updateMonoSpecsManagement({projectId:e,body:T(wu,t)})),initializeMonoSpecsManagement:async e=>y(Yu,me().initializeMonoSpecs({projectId:e})),reloadMonoSpecsManagement:async e=>y(Su,me().reloadMonoSpecs({projectId:e})),validateMonoSpecs:async e=>y(yu,me().validateMonoSpecsConfig({body:T(Uu,e)})),cloneMonoSpecsRepositories:async(e,t)=>y(vu,me().cloneMonoSpecsRepositories({projectId:e,body:T(Fu,t)})),removeMonoSpecsRepositoryCheckout:async(e,t,n)=>y(Xu,me().removeMonoSpecsRepositoryCheckout({projectId:e,path:t,force:n})),listPlans:async()=>y(Mu,we().listScheduledPlans({})),getPlan:async e=>y(Ou,we().getScheduledPlan({id:e})),createPlan:async e=>y(Du,we().createScheduledPlan({body:T(ca,e)})),updatePlan:async(e,t)=>y(_u,we().updateScheduledPlan({id:e,body:T(ca,t)})),deletePlan:async e=>{await we().deleteScheduledPlan({id:e})},runPlan:async e=>y(Pu,we().runScheduledPlan({id:e})),startPlan:async e=>y($u,we().startScheduledPlan({id:e})),listVaults:async()=>y(ku,He().listVaults({})),createVault:async e=>y(xu,He().createVault({body:T(Hu,e)})),updateVault:async(e,t)=>y(Ku,He().updateVault({id:e,body:T(Tu,t)})),deleteVault:async(e,t)=>y(zu,He().deleteVault({id:e,deleteLocalFiles:t??!1})),listVaultFiles:async(e,t)=>y(Lu,He().getVaultFiles({id:e,path:t})),previewVaultFile:async(e,t)=>y(ju,He().getVaultFilePreview({id:e,path:t})),archiveChat:async e=>y(Yd,Ye().archiveChatSession({sessionId:e})),listLocalSkills:async()=>y(ad,se().getLocalSkills({})),uninstallLocalSkill:async e=>y(rd,se().uninstallLocalSkill({body:T(gd,e)})),setBuiltInSkillAvailability:async e=>y(id,se().setBuiltInSkillAvailability({body:T(pd,e)})),searchSkillGallery:async e=>y(sd,se().getSkillGallery({query:e})),getSkillGalleryDetail:async(e,t)=>y(ld,se().getSkillGalleryDetail({id:e,source:t})),getSkillGalleryAudit:async(e,t)=>y(cd,se().getSkillGalleryAudit({id:e,source:t})),installGallerySkill:async e=>y(hd,se().installSkill({body:T(fd,e)})),listTrustedSkillProviders:async()=>y(ud,se().getTrustedSkillProviders({})),upsertTrustedSkillProvider:async e=>y(dd,se().upsertTrustedSkillProvider({body:T(Ad,e)})),deleteTrustedSkillProvider:async e=>y(md,se().deleteTrustedSkillProvider({body:T(Zd,e)})),resetTrustedSkillProviders:async()=>y(bd,se().resetTrustedSkillProviders({}))}}function Pr(e){return new Promise(t=>{setTimeout(t,e)})}function C(e){const t=e?.trim();return t||void 0}function F(e,t){const n=C(e);if(!n)throw new w(`${t} is required.`);return n}function An(e){const t=e?.map(n=>C(n)).filter(Boolean);return t&&t.length>0?t:void 0}function $r(e=process.env,t={stdout:n=>{process.stdout.write(n)},stderr:n=>{process.stderr.write(n)}}){return{api:ym(),env:e,io:t,sleep:Pr}}function Bm(e){return e.option("--base-url <url>",'Backend API base URL. Overrides HAGI_API_BASE_URL and the "baseUrl" config file entry.').option("--token <token>","Bearer token for backend API calls. Overrides HAGI_API_TOKEN.").option("--lang <lang>","Accept-Language value for backend API calls. Overrides HAGI_API_LANG.")}function v(e){return e.option("--json","Emit deterministic JSON instead of human-readable text.")}function X(e,t){const n=e.optsWithGlobals();return{api:t.api,env:t.env,io:t.io,outputJson:n.json===!0,runtime:Eu({baseUrl:n.baseUrl,token:n.token,lang:n.lang},t.env)}}function Cm(e,t){v(e.command("archive").description("Archive a chat session through the dedicated chat archive endpoint.")).requiredOption("--session-id <id>","Chat session id to archive.").action(async function(o){const a=X(this,t),r=o.sessionId.trim(),i=await a.api.archiveChat(r);if(a.outputJson){a.io.stdout(S({sessionId:r,message:i.message}));return}a.io.stdout(`Chat archived
35
35
  sessionId ${r}
36
36
  message ${i.message}
37
- `)})}var _r=(function(e){return e.INIT="Init",e.COMPLETED="Completed",e.ARCHIVED="Archived",e.DRAFTING="Drafting",e.EXECUTION_COMPLETED="ExecutionCompleted",e.OPTIMIZING="Optimizing",e.OPENSPECING="Openspecing",e.REVIEWING="Reviewing",e.EXECUTING="Executing",e.ARCHIVING="Archiving",e})({});function Pr(e){return e.replace(/\s+/g," ").trim()}function ne(e,t){const n=t.map(r=>e.map(i=>Pr(i.value(r)))),o=e.map((r,i)=>{const l=n.map(s=>s[i].length);return Math.max(r.header.length,...l)}),a=r=>r.map((i,l)=>i.padEnd(o[l])).join(" ").trimEnd();return[a(e.map(r=>r.header)),a(o.map(r=>"-".repeat(r))),...n.map(a)].join(`
38
- `)}function _(e){const t=e.filter(([,o])=>o!==void 0&&o!==""),n=Math.max(...t.map(([o])=>o.length));return`${t.map(([o,a])=>`${o.padEnd(n)} ${Pr(a??"")}`).join(`
37
+ `)})}var qr=(function(e){return e.INIT="Init",e.COMPLETED="Completed",e.ARCHIVED="Archived",e.DRAFTING="Drafting",e.EXECUTION_COMPLETED="ExecutionCompleted",e.OPTIMIZING="Optimizing",e.OPENSPECING="Openspecing",e.REVIEWING="Reviewing",e.EXECUTING="Executing",e.ARCHIVING="Archiving",e})({});function ei(e){return e.replace(/\s+/g," ").trim()}function ne(e,t){const n=t.map(r=>e.map(i=>ei(i.value(r)))),o=e.map((r,i)=>{const s=n.map(l=>l[i].length);return Math.max(r.header.length,...s)}),a=r=>r.map((i,s)=>i.padEnd(o[s])).join(" ").trimEnd();return[a(e.map(r=>r.header)),a(o.map(r=>"-".repeat(r))),...n.map(a)].join(`
38
+ `)}function _(e){const t=e.filter(([,o])=>o!==void 0&&o!==""),n=Math.max(...t.map(([o])=>o.length));return`${t.map(([o,a])=>`${o.padEnd(n)} ${ei(a??"")}`).join(`
39
39
  `)}
40
- `}function ga(e){return typeof e=="string"?e.trim():e?.value?.trim()??""}function Ce(e){return{sessionId:ga(e.sessionId),title:e.title,type:e.type,status:e.status,projectId:ga(e.projectId),proposalName:e.proposalName??void 0,archived:e.status===_r.ARCHIVED,lastActiveAt:e.lastActiveAt??void 0,enableIndependentWorkspace:e.enableIndependentWorkspace,baseBranch:e.baseBranch??void 0,metadata:e.metadata??void 0,chatExecutorType:e.chatExecutorType??void 0}}function $r(e){return{sessions:e.sessions.map(Ce)}}function qr(e,t){return t.length===0?`No ${e.toLowerCase()} found.
40
+ `}function pa(e){return typeof e=="string"?e.trim():e?.value?.trim()??""}function ge(e){return{sessionId:pa(e.sessionId),title:e.title,type:e.type,status:e.status,projectId:pa(e.projectId),proposalName:e.proposalName??void 0,archived:e.status===qr.ARCHIVED,lastActiveAt:e.lastActiveAt??void 0,enableIndependentWorkspace:e.enableIndependentWorkspace,baseBranch:e.baseBranch??void 0,metadata:e.metadata??void 0,chatExecutorType:e.chatExecutorType??void 0}}function ti(e){return{sessions:e.sessions.map(ge)}}function ni(e,t){return t.length===0?`No ${e.toLowerCase()} found.
41
41
  `:`${e} (${t.length})
42
42
  ${ne([{header:"Session ID",value:n=>n.sessionId},{header:"Title",value:n=>n.title},{header:"Status",value:n=>n.status},{header:"Project ID",value:n=>n.projectId},{header:"Archived",value:n=>n.archived?"yes":"no"}],t)}
43
- `}function ze(e,t=[]){return _([["sessionId",e.sessionId],["type",e.type],["title",e.title],["status",e.status],["projectId",e.projectId],["proposalName",e.proposalName],["independentWorkspace",String(e.enableIndependentWorkspace)],["baseBranch",e.baseBranch],["chatExecutorType",e.chatExecutorType],["metadata",e.metadata],...t])}function On(e,t,n,o=[]){return`${e}
44
- ${_([["sessionId",t],["message",n.message],...o])}`}var Lt=(function(e){return e.CLAUDE_CODE_CLI="ClaudeCodeCli",e.CODEX_CLI="CodexCli",e.GIT_HUB_COPILOT="GitHubCopilot",e.CODEBUDDY_CLI="CodebuddyCli",e.OPEN_CODE_CLI="OpenCodeCli",e.IFLOW_CLI="IFlowCli",e.HERMES_CLI="HermesCli",e.QODER_CLI="QoderCli",e.KIRO_CLI="KiroCli",e.KIMI_CLI="KimiCli",e.GEMINI_CLI="GeminiCli",e.DEEP_AGENTS_CLI="DeepAgentsCli",e})({});function Xm(e,t){X(e.command("create").description("Create a normal chat session.")).requiredOption("--title <title>","Chat session title.").requiredOption("--project-id <id>","Owning project id.").option("--hero-id <id>","Optional bound hero id.").addOption(new Ye("--executor-type <type>","Optional executor override.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=Ce(await a.api.createChatSession({title:F(o.title,"--title"),projectId:F(o.projectId,"--project-id"),heroId:C(o.heroId),executorType:o.executorType}));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Chat session created
45
- ${ze(r)}`)})}function Ym(e,t){X(e.command("delete").description("Delete a chat session.")).requiredOption("--session-id <id>","Chat session id to delete.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.deleteSession(r,!1);if(a.outputJson){a.io.stdout(I({sessionId:r,deleted:!0,message:i.message}));return}a.io.stdout(`Chat deleted
43
+ `}function Ve(e,t=[]){return _([["sessionId",e.sessionId],["type",e.type],["title",e.title],["status",e.status],["projectId",e.projectId],["proposalName",e.proposalName],["independentWorkspace",String(e.enableIndependentWorkspace)],["baseBranch",e.baseBranch],["chatExecutorType",e.chatExecutorType],["metadata",e.metadata],...t])}function _n(e,t,n,o=[]){return`${e}
44
+ ${_([["sessionId",t],["message",n.message],...o])}`}function Fm(e,t){if(e.timedOut)return`wait: timed out after ${e.elapsedSeconds}s; status is still ${t}
45
+ `;if(t==="WaitingForReply")return`wait: settled at ${t} after ${e.elapsedSeconds}s; a person must answer
46
+ `;const n=e.transitionSeen?"a status change was seen":"no status change was seen";return`wait: settled at ${t} after ${e.polls} poll(s) in ${e.elapsedSeconds}s; ${n}
47
+ `}function wm(e){if(e.messages.length===0)return`No messages found.
48
+ `;const t=e.messages.map(n=>{const o=n.contentBlocks??[],a=o.filter(s=>s.type==="Text"&&typeof s.text=="string"),r=o.length-a.length,i=[`[${n.timestamp}] ${n.type}`];for(const s of a)for(const l of s.text.split(`
49
+ `))i.push(` ${l}`);return r>0&&i.push(` (${r} other block${r===1?"":"s"} not shown)`),i.join(`
50
+ `)});return`Messages (${e.messages.length} of ${e.totalCount})
51
+ ${t.join(`
52
+
53
+ `)}
54
+ `}var Lt=(function(e){return e.CLAUDE_CODE_CLI="ClaudeCodeCli",e.CODEX_CLI="CodexCli",e.GIT_HUB_COPILOT="GitHubCopilot",e.CODEBUDDY_CLI="CodebuddyCli",e.OPEN_CODE_CLI="OpenCodeCli",e.IFLOW_CLI="IFlowCli",e.HERMES_CLI="HermesCli",e.QODER_CLI="QoderCli",e.KIRO_CLI="KiroCli",e.KIMI_CLI="KimiCli",e.GEMINI_CLI="GeminiCli",e.DEEP_AGENTS_CLI="DeepAgentsCli",e})({});function Um(e,t){v(e.command("create").description("Create a normal chat session.")).requiredOption("--title <title>","Chat session title.").requiredOption("--project-id <id>","Owning project id.").option("--hero-id <id>","Optional bound hero id.").addOption(new ye("--executor-type <type>","Optional executor override.").choices(Object.values(Lt))).action(async function(o){const a=X(this,t),r=ge(await a.api.createChatSession({title:F(o.title,"--title"),projectId:F(o.projectId,"--project-id"),heroId:C(o.heroId),executorType:o.executorType}));if(a.outputJson){a.io.stdout(S({session:r}));return}a.io.stdout(`Chat session created
55
+ ${Ve(r)}`)})}function Jm(e,t){v(e.command("delete").description("Delete a chat session.")).requiredOption("--session-id <id>","Chat session id to delete.").action(async function(o){const a=X(this,t),r=o.sessionId.trim(),i=await a.api.deleteSession(r,!1);if(a.outputJson){a.io.stdout(S({sessionId:r,deleted:!0,message:i.message}));return}a.io.stdout(`Chat deleted
46
56
  sessionId ${r}
47
57
  message ${i.message}
48
- `)})}var Dn=(function(e){return e.CHAT="Chat",e.PROPOSAL="Proposal",e})({});function Im(e,t){X(e.command("list").description("List normal chat sessions.")).action(async function(o){if(o.projectId&&o.projectIds?.length)throw new U("Use either --project-id or --project-ids, not both.");const a=Y(this,t),r=$r(await a.api.listSessions({type:Dn.CHAT,projectId:C(o.projectId),projectIds:gn(o.projectIds),activeOnly:o.activeOnly?!0:void 0,includeArchived:o.includeArchived?!0:void 0}));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(qr("Chat sessions",r.sessions))}).option("--project-id <id>","Filter chat sessions by a single project id.").option("--project-ids <ids...>","Filter chat sessions by multiple project ids.").option("--active-only","Only return non-archived chat sessions.").option("--include-archived","Include archived chat sessions.")}var _n=(function(e){return e.READONLY="Readonly",e.EDIT="Edit",e})({});function ym(e,t){X(e.command("send").description("Send a follow-up message to a chat session.")).requiredOption("--session-id <id>","Chat session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("Chat message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function Bm(e,t){const n=e.command("chat").description("Manage normal chat sessions.");Im(n,t),Xm(n,t),vm(n,t),Ym(n,t),ym(n,t)}async function Cm(){const e=[];for await(const t of process.stdin)e.push(typeof t=="string"?Buffer.from(t):t);return Buffer.concat(e).toString("utf8")}async function jt(e){const t=e.trim();if(!t)throw new U("Provide --input <file> or --input - for stdin.");const n=t==="-"?await Cm():await(0,Xi.readFile)(t,"utf8");try{return JSON.parse(n)}catch(o){throw new U(`Invalid JSON input from ${t}: ${o instanceof Error?o.message:String(o)}`)}}var Fm=["first","random"];async function Um(e){let t;try{t=await jt(e)}catch(n){throw n instanceof U?n:new U(`Cannot read HagiTask input from ${e}: ${n instanceof Error?n.message:String(n)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new U(`HagiTask input from ${e} must be a JSON object.`);return t}function wm(e,t,n){if(!t&&!n)throw new U("Provide --task-id or --prompt-id.");if(e.input!==void 0&&!t)throw new U("--input requires --task-id.");if(e.targetBranchName&&e.targetBranchMode!=="new-custom")throw new U("--target-branch-name requires --target-branch-mode new-custom.");if(e.targetBranchMode==="new-custom"&&!C(e.targetBranchName))throw new U("--target-branch-name is required when --target-branch-mode is new-custom.");const o=C(e.heroSelectionMode);if(o&&!Fm.includes(o))throw new U("--hero-selection-mode must be first or random.")}function Jm(e,t){X(e.command("create").description("Create a HagiTask session. Read the task schema first with `hagitask schema --task-id <id>`, then pass the input JSON with --input.")).requiredOption("--title <title>","HagiTask session title.").requiredOption("--project-id <id>","Owning project id.").option("--task-id <id>","HagiTask id from `hagitask list`. Required with --input.").option("--prompt-id <id>","Prompt template id, for example auto-compose-commit.en-US. Used when there is no --task-id.").option("--input <file|->","Structured task input: a JSON object file, or - to read it from stdin. Needs --task-id.").option("--message <text>","Optional message that overrides the prompt template.").option("--locale <locale>","Locale for the HagiTask prompt, for example en-US.").option("--repository-path <path>","Optional MonoSpecs sub-repository path, for example repos/cli.").option("--target-type <type>","Explicit target type: repository or vault.").option("--vault-id <id>","Registered vault id for vault-targeted execution.").option("--output-vault-id <id>","Output vault id for research-investigation tasks.").option("--reference-vault-id <ids...>","Reference vault ids the session may read.").option("--editable-vault-id <ids...>","Vault ids the session may edit.").option("--hero-id <id>","Preferred hero id. Takes precedence over --hero-selection-mode.").option("--hero-selection-mode <mode>","Hero choice when --hero-id is not given: first (default) or random.").option("--need-push","Request a push after commit creation when supported.").option("--pull-rebase","Run git pull --rebase before pushing, when push is requested.").option("--target-branch-mode <mode>","Optional target branch mode, for example current or new-custom.").option("--target-branch-name <name>","Custom target branch name. Requires --target-branch-mode new-custom.").option("--script-key <key>","Optional stable scenario script key.").action(async function(o){const a=C(o.taskId),r=C(o.promptId);wm(o,a,r);const i=o.input!==void 0?await Um(F(o.input,"--input")):void 0,l=Y(this,t),s={title:F(o.title,"--title"),projectId:F(o.projectId,"--project-id"),promptId:r,presetTaskId:a,presetTaskLocale:C(o.locale),presetTaskInput:i,message:C(o.message),repositoryPath:C(o.repositoryPath),targetType:C(o.targetType),vaultId:C(o.vaultId),outputVaultId:C(o.outputVaultId),referenceVaultIds:gn(o.referenceVaultId),editableVaultIds:gn(o.editableVaultId),heroId:C(o.heroId),heroSelectionMode:C(o.heroSelectionMode),needPush:o.needPush?!0:void 0,pullRebaseBeforePush:o.pullRebase?!0:void 0,targetBranchMode:C(o.targetBranchMode),targetBranchName:C(o.targetBranchName),scriptKey:C(o.scriptKey)},c=Ce(await l.api.createHagiTaskSession(s));if(l.outputJson){l.io.stdout(I({session:c,presetTaskId:s.presetTaskId??null,promptId:s.promptId??null,requested:s}));return}l.io.stdout(`HagiTask session created
49
- ${ze(c,[["presetTaskId",s.presetTaskId??void 0],["presetTaskLocale",s.presetTaskLocale??void 0],["promptId",s.promptId??void 0],["repositoryPath",s.repositoryPath??void 0],["targetBranchMode",s.targetBranchMode??void 0],["targetBranchName",s.targetBranchName??void 0],["scriptKey",s.scriptKey??void 0],["heroId",s.heroId??void 0],["heroSelectionMode",s.heroSelectionMode??void 0]])}`)})}var j="-";function Aa(e){return e?"yes":"no"}function pa(e){return e&&e.length>0?e.join(", "):j}function It(e){if(Array.isArray(e))return e.map(t=>It(t));if(e&&typeof e=="object"){const t=e;return Object.fromEntries(Object.keys(t).sort().map(n=>[n,It(t[n])]))}return e}function ei(e){return[...e].sort((t,n)=>{const o=t.id??"",a=n.id??"";return o<a?-1:o>a?1:0})}function km(e){return It({tasks:ei(e)})}function xm(e){if(e.length===0)return`No HagiTask is available.
50
- `;const t=ei(e);return`HagiTasks (${t.length})
58
+ `)})}var Pn=(function(e){return e.CHAT="Chat",e.PROPOSAL="Proposal",e})({});function km(e,t){v(e.command("list").description("List normal chat sessions.")).action(async function(o){if(o.projectId&&o.projectIds?.length)throw new w("Use either --project-id or --project-ids, not both.");const a=X(this,t),r=ti(await a.api.listSessions({type:Pn.CHAT,projectId:C(o.projectId),projectIds:An(o.projectIds),activeOnly:o.activeOnly?!0:void 0,includeArchived:o.includeArchived?!0:void 0}));if(a.outputJson){a.io.stdout(S(r));return}a.io.stdout(ni("Chat sessions",r.sessions))}).option("--project-id <id>","Filter chat sessions by a single project id.").option("--project-ids <ids...>","Filter chat sessions by multiple project ids.").option("--active-only","Only return non-archived chat sessions.").option("--include-archived","Include archived chat sessions.")}var $n=(function(e){return e.READONLY="Readonly",e.EDIT="Edit",e})({});function xm(e,t){v(e.command("send").description("Send a follow-up message to a chat session.")).requiredOption("--session-id <id>","Chat session id.").requiredOption("--content <text>","Message content.").addOption(new ye("--mode <mode>","Message mode override.").choices(Object.values($n))).addOption(new ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=X(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(S({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(_n("Chat message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function Km(e,t){const n=e.command("chat").description("Manage normal chat sessions.");km(n,t),Um(n,t),Cm(n,t),Jm(n,t),xm(n,t)}async function zm(){const e=[];for await(const t of process.stdin)e.push(typeof t=="string"?Buffer.from(t):t);return Buffer.concat(e).toString("utf8")}async function jt(e){const t=e.trim();if(!t)throw new w("Provide --input <file> or --input - for stdin.");const n=t==="-"?await zm():await(0,Ci.readFile)(t,"utf8");try{return JSON.parse(n)}catch(o){throw new w(`Invalid JSON input from ${t}: ${o instanceof Error?o.message:String(o)}`)}}var Lm=["first","random"];async function jm(e){let t;try{t=await jt(e)}catch(n){throw n instanceof w?n:new w(`Cannot read HagiTask input from ${e}: ${n instanceof Error?n.message:String(n)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new w(`HagiTask input from ${e} must be a JSON object.`);return t}function Hm(e,t,n){if(!t&&!n)throw new w("Provide --task-id or --prompt-id.");if(e.input!==void 0&&!t)throw new w("--input requires --task-id.");if(e.targetBranchName&&e.targetBranchMode!=="new-custom")throw new w("--target-branch-name requires --target-branch-mode new-custom.");if(e.targetBranchMode==="new-custom"&&!C(e.targetBranchName))throw new w("--target-branch-name is required when --target-branch-mode is new-custom.");const o=C(e.heroSelectionMode);if(o&&!Lm.includes(o))throw new w("--hero-selection-mode must be first or random.")}function Tm(e,t){v(e.command("create").description("Create a HagiTask session. Read the task schema first with `hagitask schema --task-id <id>`, then pass the input JSON with --input.")).requiredOption("--title <title>","HagiTask session title.").requiredOption("--project-id <id>","Owning project id.").option("--task-id <id>","HagiTask id from `hagitask list`. Required with --input.").option("--prompt-id <id>","Prompt template id, for example auto-compose-commit.en-US. Used when there is no --task-id.").option("--input <file|->","Structured task input: a JSON object file, or - to read it from stdin. Needs --task-id.").option("--message <text>","Optional message that overrides the prompt template.").option("--locale <locale>","Locale for the HagiTask prompt, for example en-US.").option("--repository-path <path>","Optional MonoSpecs sub-repository path, for example repos/cli.").option("--target-type <type>","Explicit target type: repository or vault.").option("--vault-id <id>","Registered vault id for vault-targeted execution.").option("--output-vault-id <id>","Output vault id for research-investigation tasks.").option("--reference-vault-id <ids...>","Reference vault ids the session may read.").option("--editable-vault-id <ids...>","Vault ids the session may edit.").option("--hero-id <id>","Preferred hero id. Takes precedence over --hero-selection-mode.").option("--hero-selection-mode <mode>","Hero choice when --hero-id is not given: first (default) or random.").option("--need-push","Request a push after commit creation when supported.").option("--pull-rebase","Run git pull --rebase before pushing, when push is requested.").option("--target-branch-mode <mode>","Target branch mode: current, new-custom or ai-generated-new. new-custom needs --target-branch-name.").option("--target-branch-name <name>","Custom target branch name. Requires --target-branch-mode new-custom.").option("--script-key <key>","Optional stable scenario script key.").action(async function(o){const a=C(o.taskId),r=C(o.promptId);Hm(o,a,r);const i=o.input!==void 0?await jm(F(o.input,"--input")):void 0,s=X(this,t),l={title:F(o.title,"--title"),projectId:F(o.projectId,"--project-id"),promptId:r,presetTaskId:a,presetTaskLocale:C(o.locale),presetTaskInput:i,message:C(o.message),repositoryPath:C(o.repositoryPath),targetType:C(o.targetType),vaultId:C(o.vaultId),outputVaultId:C(o.outputVaultId),referenceVaultIds:An(o.referenceVaultId),editableVaultIds:An(o.editableVaultId),heroId:C(o.heroId),heroSelectionMode:C(o.heroSelectionMode),needPush:o.needPush?!0:void 0,pullRebaseBeforePush:o.pullRebase?!0:void 0,targetBranchMode:C(o.targetBranchMode),targetBranchName:C(o.targetBranchName),scriptKey:C(o.scriptKey)},c=ge(await s.api.createHagiTaskSession(l));if(s.outputJson){s.io.stdout(S({session:c,presetTaskId:l.presetTaskId??null,promptId:l.promptId??null,requested:l}));return}s.io.stdout(`HagiTask session created
59
+ ${Ve(c,[["presetTaskId",l.presetTaskId??void 0],["presetTaskLocale",l.presetTaskLocale??void 0],["promptId",l.promptId??void 0],["repositoryPath",l.repositoryPath??void 0],["targetBranchMode",l.targetBranchMode??void 0],["targetBranchName",l.targetBranchName??void 0],["scriptKey",l.scriptKey??void 0],["heroId",l.heroId??void 0],["heroSelectionMode",l.heroSelectionMode??void 0]])}`)})}var Qm=new Set(["Optimizing","Openspecing","Executing","Archiving"]);function Mm(e){return Qm.has(e)}async function Om(e,t,n){const o=n.now(),a=t.timeoutSeconds*1e3,r=t.graceSeconds*1e3,i=t.intervalSeconds*1e3;let s=0,l=!1;for(;;){const d=await e();s+=1;const h=n.now()-o,f=Mm(d.status);if(l=l||f,!f&&(l||h>=r||h>=a))return c(d,{settled:!0,timedOut:!1});if(h>=a)return c(d,{settled:!1,timedOut:!0});await n.sleep(Math.min(i,a-h))}function c(d,h){return{session:d,...h,transitionSeen:l,polls:s,elapsedSeconds:Math.round((n.now()-o)/100)/10}}}function nn(e,t,n){const o=e.trim();if(!/^\d+$/.test(o))throw new w(`${t} must be a whole number of seconds.`);const a=Number(o);if(a<n)throw new w(`${t} must be ${n} second${n===1?"":"s"} or more.`);return a}function Dm(e){const t=[["--timeout",e.timeout],["--interval",e.interval],["--grace",e.grace]].filter(([,r])=>r!==void 0).map(([r])=>r);if(!e.wait){if(t.length>0)throw new w(`${t.join(", ")} needs --wait.`);return}const n=e.timeout===void 0?900:nn(e.timeout,"--timeout",1),o=e.interval===void 0?5:nn(e.interval,"--interval",1),a=e.grace===void 0?10:nn(e.grace,"--grace",0);if(o>=n)throw new w("--interval must be less than --timeout.");return{intervalSeconds:o,timeoutSeconds:n,graceSeconds:a}}function oi(e,t,n){v(e.command("get").description(n.description)).requiredOption("--session-id <id>","Session id to read.").option("--wait","Poll until the status settles: not Optimizing, Openspecing, Executing or Archiving. WaitingForReply counts as settled.").option("--timeout <seconds>","With --wait: stop waiting after this many seconds (default 900). Exit code 31 on timeout.").option("--interval <seconds>","With --wait: seconds between reads (default 5). Must be less than --timeout.").option("--grace <seconds>","With --wait: keep polling a stable status that never transitioned for this long (default 10, 0 disables).").action(async function(a){const r=Dm(a),i=F(a.sessionId,"--session-id"),s=X(this,t);if(!r){const h=ge(await s.api.getSession(i));if(s.outputJson){s.io.stdout(S({session:h}));return}s.io.stdout(Ve(h));return}const l=await Om(()=>s.api.getSession(i),r,{now:t.now??Date.now,sleep:t.sleep??Pr}),c=ge(l.session),d={settled:l.settled,timedOut:l.timedOut,transitionSeen:l.transitionSeen,polls:l.polls,elapsedSeconds:l.elapsedSeconds};if(s.outputJson?s.io.stdout(S({session:c,wait:d})):s.io.stdout(`${Ve(c)}${Fm(d,c.status)}`),l.timedOut)throw new Jr(`Timed out after ${l.elapsedSeconds}s waiting for ${n.label} ${i} to settle; last status ${c.status}.`)})}function _m(e,t){oi(e,t,{description:"Read one HagiTask session by id, including a Super Commit session. With --wait, poll until its status settles.",label:"HagiTask session"})}function Pm(e){if(e===void 0)return;const t=e.trim();if(!/^\d+$/.test(t)||Number(t)<1)throw new w("--last must be a positive whole number.");return Number(t)}function ai(e,t,n){v(e.command("messages").description(n.description)).requiredOption("--session-id <id>","Session id whose messages to read.").option("--last <n>","Read only the n newest messages. Omit it to read the backend default page (50 messages).").action(async function(a){const r=Pm(a.last),i=F(a.sessionId,"--session-id"),s=X(this,t),l=await s.api.getSessionMessages(i,r===void 0?{page:1,order:"desc"}:{page:1,pageSize:r,order:"desc"});if(s.outputJson){s.io.stdout(S(l));return}s.io.stdout(wm(l))})}function $m(e,t){ai(e,t,{description:"Read a HagiTask session's messages, newest first. For a Super Commit, --last 1 reads the final result message."})}var j="-";function Aa(e){return e?"yes":"no"}function Za(e){return e&&e.length>0?e.join(", "):j}function It(e){if(Array.isArray(e))return e.map(t=>It(t));if(e&&typeof e=="object"){const t=e;return Object.fromEntries(Object.keys(t).sort().map(n=>[n,It(t[n])]))}return e}function ri(e){return[...e].sort((t,n)=>{const o=t.id??"",a=n.id??"";return o<a?-1:o>a?1:0})}function qm(e){return It({tasks:ri(e)})}function eb(e){if(e.length===0)return`No HagiTask is available.
60
+ `;const t=ri(e);return`HagiTasks (${t.length})
51
61
  ${ne([{header:"ID",value:n=>n.id??j},{header:"Version",value:n=>n.version??j},{header:"Title",value:n=>n.title??j},{header:"Description",value:n=>n.description??j}],t)}
52
- `}function Km(e){const t=[];e.origin==="derived"&&t.push(e.producer?`derived by ${e.producer}`:"derived");for(const n of e.aliases??[])n.key&&t.push(`alias ${n.key} (deprecated)`);return e.options&&e.options.length>0&&t.push(`options: ${e.options.map(n=>n.value??"").join(", ")}`),t.length>0?t.join("; "):j}function zm(e){const t=e.id??j,n=[];n.push(_([["id",e.id??void 0],["title",e.title??void 0],["version",e.version??void 0],["locale",e.locale??void 0],["description",e.description??void 0]]));const o=e.scope?.targets??[];n.push(`Target scope (default ${e.scope?.defaultTargetType??j})${o.length===0?`
62
+ `}function tb(e){const t=[];e.origin==="derived"&&t.push(e.producer?`derived by ${e.producer}`:"derived");for(const n of e.aliases??[])n.key&&t.push(`alias ${n.key} (deprecated)`);return e.options&&e.options.length>0&&t.push(`options: ${e.options.map(n=>n.value??"").join(", ")}`),t.length>0?t.join("; "):j}function nb(e){const t=e.id??j,n=[];n.push(_([["id",e.id??void 0],["title",e.title??void 0],["version",e.version??void 0],["locale",e.locale??void 0],["description",e.description??void 0]]));const o=e.scope?.targets??[];n.push(`Target scope (default ${e.scope?.defaultTargetType??j})${o.length===0?`
53
63
  None.
54
64
  `:`
55
- ${ne([{header:"ID",value:c=>c.id??j},{header:"Kind",value:c=>c.kind??j},{header:"Selection",value:c=>c.selectionMode??j},{header:"Required",value:c=>Aa(c.required)},{header:"Access",value:c=>pa(c.allowedAccessTypes)},{header:"Input key",value:c=>c.requestKey??j},{header:"Scope key",value:c=>c.scopeRequestKey??j}],o)}
65
+ ${ne([{header:"ID",value:c=>c.id??j},{header:"Kind",value:c=>c.kind??j},{header:"Selection",value:c=>c.selectionMode??j},{header:"Required",value:c=>Aa(c.required)},{header:"Access",value:c=>Za(c.allowedAccessTypes)},{header:"Input key",value:c=>c.requestKey??j},{header:"Scope key",value:c=>c.scopeRequestKey??j}],o)}
56
66
  `}`);const a=e.commands?.commands??[];n.push(`Commands${a.length===0?`
57
67
  None.
58
68
  `:`
@@ -60,106 +70,106 @@ ${ne([{header:"ID",value:c=>c.id??j},{header:"Group",value:c=>c.groupId??j},{hea
60
70
  `}`);const r=e.parameters??[];n.push(`Parameters${r.length===0?`
61
71
  None.
62
72
  `:`
63
- ${ne([{header:"Key",value:c=>c.key??j},{header:"Required",value:c=>Aa(c.required)},{header:"Origin",value:c=>c.origin??j},{header:"Type",value:c=>c.valueType??j},{header:"Label",value:c=>c.label??j},{header:"Notes",value:Km}],r)}
73
+ ${ne([{header:"Key",value:c=>c.key??j},{header:"Required",value:c=>Aa(c.required)},{header:"Origin",value:c=>c.origin??j},{header:"Type",value:c=>c.valueType??j},{header:"Label",value:c=>c.label??j},{header:"Notes",value:tb}],r)}
64
74
  `}`);const i=e.requirements??[];n.push(`Requirements${i.length===0?`
65
75
  None.
66
76
  `:`
67
- ${i.map(c=>`- ${c.type??j}: ${c.name??pa(c.names)}`).join(`
77
+ ${i.map(c=>`- ${c.type??j}: ${c.name??Za(c.names)}`).join(`
68
78
  `)}
69
- `}`);const l=e.scenes?.registrations??[];n.push(`Scenes${l.length===0?`
79
+ `}`);const s=e.scenes?.registrations??[];n.push(`Scenes${s.length===0?`
70
80
  None.
71
81
  `:`
72
- ${l.map(c=>`- ${c.sceneKey??j}: ${c.title??j}`).join(`
82
+ ${s.map(c=>`- ${c.sceneKey??j}: ${c.title??j}`).join(`
73
83
  `)}
74
- `}`);const s=e.request;return n.push(_([["endpoint",s?`${s.method??j} ${s.path??j}`:void 0],["presetTaskIdField",s?.presetTaskIdField??void 0],["localeField",s?.localeField??void 0],["requiredFields",s?.requiredFields&&s.requiredFields.length>0?s.requiredFields.join(", "):void 0]])),n.push(`Example
84
+ `}`);const l=e.request;return n.push(_([["endpoint",l?`${l.method??j} ${l.path??j}`:void 0],["presetTaskIdField",l?.presetTaskIdField??void 0],["localeField",l?.localeField??void 0],["requiredFields",l?.requiredFields&&l.requiredFields.length>0?l.requiredFields.join(", "):void 0]])),n.push(`Example
75
85
  hagi hagitask schema --task-id ${t} --json # full input JSON Schema and example body
76
86
  hagi hagitask create --title "<title>" --project-id <project-id> --task-id ${t} --input input.json
77
87
  `),n.join(`
78
- `)}function Lm(e){return It(e)}function jm(e,t){X(e.command("list").description("List the active HagiTasks with their id, version, title and description.")).action(async function(){const o=Y(this,t),a=await o.api.listHagiTaskSchemas();if(o.outputJson){o.io.stdout(I(km(a)));return}o.io.stdout(xm(a))})}function Hm(e,t){const n=e&&typeof e=="object"?e[t]:void 0;return typeof n=="string"&&n.trim()?n.trim():void 0}function Tm(e){const t=e&&typeof e=="object"?e.diagnostics:void 0;return Array.isArray(t)?t:[]}async function Qm(e,t){try{return await e.getHagiTaskSchema(t)}catch(n){const o=Jr(n);if(o?.status===404){const a=Tm(o.body);if(a.length>0){const r=a.map(i=>{const l=i.path?` (${i.path})`:"";return` - ${i.code??"diagnostic"}: ${i.message??""}${l}`});throw new Ke(404,[Hm(o.body,"error")??`HagiTask ${t} is not available.`,...r].join(`
79
- `),o.body)}}throw n}}function Mm(e,t){X(e.command("schema").description("Show the creation schema of one HagiTask: scope, commands, parameters, requirements, scenes and an example. --json prints the full schema, including the input JSON Schema.")).requiredOption("--task-id <id>","HagiTask id to read.").action(async function(o){const a=F(o.taskId,"--task-id"),r=Y(this,t),i=await Qm(r.api,a);if(r.outputJson){r.io.stdout(I(Lm(i)));return}r.io.stdout(zm(i))})}function Om(e,t){X(e.command("send").description("Send a follow-up message to a HagiTask session.")).requiredOption("--session-id <id>","HagiTask session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("HagiTask message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function Dm(e,t){const n=e.command("hagitask").description("Manage HagiTask sessions: list tasks, read a task schema, create a session from it, and send follow-up messages.");jm(n,t),Mm(n,t),Jm(n,t),Om(n,t)}function ce(e){const t=e?.trim();return t||void 0}function ti(e){if(!e)return"";const t=ce(e.mode);if(t==="once")return["once",ce(e.runAt)].filter(Boolean).join(" ");const n=ce(e.repeat?.rule)??t??"";return[n,n==="weekly"?(e.repeat?.weekdays??[]).map(o=>o.trim().slice(0,3).toLowerCase()).join(","):void 0,ce(e.timeOfDay),ce(e.timeZone)].filter(Boolean).join(" ")}function Ue(e){return{id:ce(e.id)??"",type:ce(e.type)??"",name:ce(e.name)??"",enabled:e.enabled===!0,state:ce(e.state)??"",nextRunAt:ce(e.nextRunAt)??null,schedule:e.schedule,agentPool:e.agentPool,payload:e.payload}}function _m(e){return{plans:e.map(Ue)}}function Pm(e){return e.length===0?`No scheduled plans found.
88
+ `)}function ob(e){return It(e)}function ab(e,t){v(e.command("list").description("List the active HagiTasks with their id, version, title and description.")).action(async function(){const o=X(this,t),a=await o.api.listHagiTaskSchemas();if(o.outputJson){o.io.stdout(S(qm(a)));return}o.io.stdout(eb(a))})}function rb(e,t){const n=e&&typeof e=="object"?e[t]:void 0;return typeof n=="string"&&n.trim()?n.trim():void 0}function ib(e){const t=e&&typeof e=="object"?e.diagnostics:void 0;return Array.isArray(t)?t:[]}async function sb(e,t){try{return await e.getHagiTaskSchema(t)}catch(n){const o=xr(n);if(o?.status===404){const a=ib(o.body);if(a.length>0){const r=a.map(i=>{const s=i.path?` (${i.path})`:"";return` - ${i.code??"diagnostic"}: ${i.message??""}${s}`});throw new ze(404,[rb(o.body,"error")??`HagiTask ${t} is not available.`,...r].join(`
89
+ `),o.body)}}throw n}}function lb(e,t){v(e.command("schema").description("Show the creation schema of one HagiTask: scope, commands, parameters, requirements, scenes and an example. --json prints the full schema, including the input JSON Schema.")).requiredOption("--task-id <id>","HagiTask id to read.").action(async function(o){const a=F(o.taskId,"--task-id"),r=X(this,t),i=await sb(r.api,a);if(r.outputJson){r.io.stdout(S(ob(i)));return}r.io.stdout(nb(i))})}function cb(e,t){v(e.command("send").description("Send a follow-up message to a HagiTask session.")).requiredOption("--session-id <id>","HagiTask session id.").requiredOption("--content <text>","Message content.").addOption(new ye("--mode <mode>","Message mode override.").choices(Object.values($n))).addOption(new ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=X(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(S({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(_n("HagiTask message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function ub(e,t){const n=e.command("hagitask").description("Manage HagiTask sessions: list tasks, read a task schema, create a session from it, read one session with get (--wait to follow a run) and its messages, and send follow-up messages.");ab(n,t),lb(n,t),Tm(n,t),cb(n,t),_m(n,t),$m(n,t)}function ce(e){const t=e?.trim();return t||void 0}function ii(e){if(!e)return"";const t=ce(e.mode);if(t==="once")return["once",ce(e.runAt)].filter(Boolean).join(" ");const n=ce(e.repeat?.rule)??t??"";return[n,n==="weekly"?(e.repeat?.weekdays??[]).map(o=>o.trim().slice(0,3).toLowerCase()).join(","):void 0,ce(e.timeOfDay),ce(e.timeZone)].filter(Boolean).join(" ")}function Ue(e){return{id:ce(e.id)??"",type:ce(e.type)??"",name:ce(e.name)??"",enabled:e.enabled===!0,state:ce(e.state)??"",nextRunAt:ce(e.nextRunAt)??null,schedule:e.schedule,agentPool:e.agentPool,payload:e.payload}}function db(e){return{plans:e.map(Ue)}}function mb(e){return e.length===0?`No scheduled plans found.
80
90
  `:`Plans (${e.length})
81
- ${ne([{header:"ID",value:t=>t.id},{header:"Type",value:t=>t.type},{header:"Name",value:t=>t.name},{header:"Enabled",value:t=>t.enabled?"yes":"no"},{header:"State",value:t=>t.state},{header:"Next Run",value:t=>t.nextRunAt??"-"},{header:"Schedule",value:t=>ti(t.schedule)}],e)}
82
- `}function ht(e){return _([["id",e.id],["type",e.type],["name",e.name],["enabled",e.enabled?"yes":"no"],["state",e.state],["nextRun",e.nextRunAt??"-"],["schedule",ti(e.schedule)]])}function $m(e){return{planId:e,deleted:!0}}function qm(e){return`Plan deleted
83
- ${_([["planId",e.planId],["deleted",String(e.deleted)]])}`}function eb(e){return{planId:ce(e.planId)??"",accepted:!0}}function tb(e){return`Plan run accepted
84
- ${_([["planId",e.planId],["accepted",String(e.accepted)]])}`}var nb=["id","createdAt","updatedAt","state","nextRunAt"];async function ni(e){let t;try{t=await jt(e)}catch(n){throw n instanceof U?n:new U(`Cannot read plan input from ${e}: ${n instanceof Error?n.message:String(n)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new U(`Plan input from ${e} must be a JSON object.`);return t}function yt(e){const t={...e};for(const n of nb)delete t[n];return t}function ob(e){return{strategy:"random",agents:[{heroId:e}]}}function oi(e){return{...e.name!==void 0?{name:e.name}:{},...e.heroId!==void 0?{agentPool:ob(e.heroId)}:{},...e.enabled!==void 0?{enabled:e.enabled}:{}}}function ai(e,t){return{...yt(e),...yt(t)}}function ab(e,t){X(e.command("create").description("Create a scheduled plan from a JSON document. Plans are enabled unless --disabled or the document says otherwise.")).requiredOption("--input <file|->","Plan JSON file path, or - to read from stdin.").option("--name <name>","Plan name. Overrides the document name.").option("--hero-id <id>","Hero for a single-agent pool. Replaces the document agent pool.").option("--disabled","Create the plan disabled. Overrides the document enabled value.").action(async function(o){const a=Y(this,t),r=yt(await ni(o.input)),i=Ue(await a.api.createPlan({enabled:!0,...r,...oi({name:C(o.name),heroId:C(o.heroId),enabled:o.disabled?!1:void 0})}));if(a.outputJson){a.io.stdout(I({plan:i}));return}a.io.stdout(`Plan created
85
- ${ht(i)}`)})}function rb(e,t){X(e.command("delete").description("Delete a scheduled plan by id.")).requiredOption("--id <id>","Plan id to delete.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id");await a.api.deletePlan(r);const i=$m(r);if(a.outputJson){a.io.stdout(I(i));return}a.io.stdout(qm(i))})}async function ri(e,t,n){const o=await e.api.getPlan(t);return Ue(o).enabled===n?{view:Ue(o),changed:!1}:{view:Ue(await e.api.updatePlan(t,ai(o,{enabled:n}))),changed:!0}}function ib(e,t){X(e.command("disable").description("Disable a scheduled plan. Nothing is sent when it is already disabled.")).requiredOption("--id <id>","Plan id to disable.").action(async function(o){const a=Y(this,t),{view:r,changed:i}=await ri(a,F(o.id,"--id"),!1);if(a.outputJson){a.io.stdout(I({plan:r,changed:i}));return}a.io.stdout(`${i?"Plan disabled":"Plan was already disabled"}
86
- ${ht(r)}`)})}function lb(e,t){X(e.command("enable").description("Enable a scheduled plan. Nothing is sent when it is already enabled.")).requiredOption("--id <id>","Plan id to enable.").action(async function(o){const a=Y(this,t),{view:r,changed:i}=await ri(a,F(o.id,"--id"),!0);if(a.outputJson){a.io.stdout(I({plan:r,changed:i}));return}a.io.stdout(`${i?"Plan enabled":"Plan was already enabled"}
87
- ${ht(r)}`)})}function sb(e,t){X(e.command("get").description("Show one scheduled plan, including its schedule, agent pool and payload in --json mode.")).requiredOption("--id <id>","Plan id to read.").action(async function(o){const a=Y(this,t),r=Ue(await a.api.getPlan(F(o.id,"--id")));if(a.outputJson){a.io.stdout(I({plan:r}));return}a.io.stdout(ht(r))})}function cb(e,t){X(e.command("list").description("List scheduled plans with their state, next run time and schedule.")).action(async function(){const o=Y(this,t),a=_m(await o.api.listPlans());if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(Pm(a.plans))})}function ub(e,t){X(e.command("run").description("Run a scheduled plan now from its stored inputs. The schedule is not changed.")).requiredOption("--id <id>","Plan id to run.").option("--background","Start the run and print the accepted plan id without waiting for the session.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id");if(o.background){const l=eb(await a.api.startPlan(r));if(a.outputJson){a.io.stdout(I(l));return}a.io.stdout(tb(l));return}const i=Ce(await a.api.runPlan(r));if(a.outputJson){a.io.stdout(I({session:i}));return}a.io.stdout(`Plan run created a session
88
- ${ze(i)}`)})}function db(e,t){X(e.command("update").description("Update a scheduled plan. The current plan is read first and only the given fields change.")).requiredOption("--id <id>","Plan id to update.").option("--input <file|->","JSON document whose top-level fields replace the same fields of the plan.").option("--name <name>","Updated plan name.").option("--hero-id <id>","Hero for a single-agent pool. Replaces the agent pool.").option("--enabled","Enable the plan.").option("--disabled","Disable the plan.").action(async function(o){const a=F(o.id,"--id"),r=C(o.input),i=C(o.name),l=C(o.heroId);if(o.enabled&&o.disabled)throw new U("Pass either --enabled or --disabled, not both.");const s=o.enabled?!0:o.disabled?!1:void 0;if(!r&&!i&&!l&&s===void 0)throw new U("Provide at least one change: --input, --name, --enabled, --disabled, or --hero-id.");const c=r?yt(await ni(r)):{},m=Y(this,t),A=await m.api.getPlan(a),R=Ue(await m.api.updatePlan(a,ai(A,{...c,...oi({name:i,heroId:l,enabled:s})})));if(m.outputJson){m.io.stdout(I({plan:R}));return}m.io.stdout(`Plan updated
89
- ${ht(R)}`)})}function mb(e,t){const n=e.command("plan").description("Manage scheduled plans: saved proposal or HagiTask inputs that run on a schedule.");cb(n,t),sb(n,t),ab(n,t),db(n,t),lb(n,t),ib(n,t),rb(n,t),ub(n,t)}function re(e){const t=e?.trim();return t||void 0}function Pn(e){return{id:re(e.id)??"",name:re(e.name)??"",path:re(e.path)??"",description:re(e.description),isMonoSpecs:e.isMonoSpecs===!0,monoSpecsVersion:re(e.monoSpecsVersion),monoSpecsRepoDirectory:re(e.monoSpecsRepoDirectory),monoSpecsCommitWhenArchive:typeof e.monoSpecsCommitWhenArchive=="boolean"?e.monoSpecsCommitWhenArchive:void 0,hasError:"hasError"in e?e.hasError===!0:!1,error:"error"in e?re(e.error):void 0}}function ii(e){return{projects:(e??[]).map(Pn)}}function bb(e){return e.length===0?`No projects found.
91
+ ${ne([{header:"ID",value:t=>t.id},{header:"Type",value:t=>t.type},{header:"Name",value:t=>t.name},{header:"Enabled",value:t=>t.enabled?"yes":"no"},{header:"State",value:t=>t.state},{header:"Next Run",value:t=>t.nextRunAt??"-"},{header:"Schedule",value:t=>ii(t.schedule)}],e)}
92
+ `}function ht(e){return _([["id",e.id],["type",e.type],["name",e.name],["enabled",e.enabled?"yes":"no"],["state",e.state],["nextRun",e.nextRunAt??"-"],["schedule",ii(e.schedule)]])}function bb(e){return{planId:e,deleted:!0}}function hb(e){return`Plan deleted
93
+ ${_([["planId",e.planId],["deleted",String(e.deleted)]])}`}function gb(e){return{planId:ce(e.planId)??"",accepted:!0}}function pb(e){return`Plan run accepted
94
+ ${_([["planId",e.planId],["accepted",String(e.accepted)]])}`}var Ab=["id","createdAt","updatedAt","state","nextRunAt"];async function si(e){let t;try{t=await jt(e)}catch(n){throw n instanceof w?n:new w(`Cannot read plan input from ${e}: ${n instanceof Error?n.message:String(n)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new w(`Plan input from ${e} must be a JSON object.`);return t}function yt(e){const t={...e};for(const n of Ab)delete t[n];return t}function Zb(e){return{strategy:"random",agents:[{heroId:e}]}}function li(e){return{...e.name!==void 0?{name:e.name}:{},...e.heroId!==void 0?{agentPool:Zb(e.heroId)}:{},...e.enabled!==void 0?{enabled:e.enabled}:{}}}function ci(e,t){return{...yt(e),...yt(t)}}function fb(e,t){v(e.command("create").description("Create a scheduled plan from a JSON document. Plans are enabled unless --disabled or the document says otherwise.")).requiredOption("--input <file|->","Plan JSON file path, or - to read from stdin.").option("--name <name>","Plan name. Overrides the document name.").option("--hero-id <id>","Hero for a single-agent pool. Replaces the document agent pool.").option("--disabled","Create the plan disabled. Overrides the document enabled value.").action(async function(o){const a=X(this,t),r=yt(await si(o.input)),i=Ue(await a.api.createPlan({enabled:!0,...r,...li({name:C(o.name),heroId:C(o.heroId),enabled:o.disabled?!1:void 0})}));if(a.outputJson){a.io.stdout(S({plan:i}));return}a.io.stdout(`Plan created
95
+ ${ht(i)}`)})}function Rb(e,t){v(e.command("delete").description("Delete a scheduled plan by id.")).requiredOption("--id <id>","Plan id to delete.").action(async function(o){const a=X(this,t),r=F(o.id,"--id");await a.api.deletePlan(r);const i=bb(r);if(a.outputJson){a.io.stdout(S(i));return}a.io.stdout(hb(i))})}async function ui(e,t,n){const o=await e.api.getPlan(t);return Ue(o).enabled===n?{view:Ue(o),changed:!1}:{view:Ue(await e.api.updatePlan(t,ci(o,{enabled:n}))),changed:!0}}function Eb(e,t){v(e.command("disable").description("Disable a scheduled plan. Nothing is sent when it is already disabled.")).requiredOption("--id <id>","Plan id to disable.").action(async function(o){const a=X(this,t),{view:r,changed:i}=await ui(a,F(o.id,"--id"),!1);if(a.outputJson){a.io.stdout(S({plan:r,changed:i}));return}a.io.stdout(`${i?"Plan disabled":"Plan was already disabled"}
96
+ ${ht(r)}`)})}function Vb(e,t){v(e.command("enable").description("Enable a scheduled plan. Nothing is sent when it is already enabled.")).requiredOption("--id <id>","Plan id to enable.").action(async function(o){const a=X(this,t),{view:r,changed:i}=await ui(a,F(o.id,"--id"),!0);if(a.outputJson){a.io.stdout(S({plan:r,changed:i}));return}a.io.stdout(`${i?"Plan enabled":"Plan was already enabled"}
97
+ ${ht(r)}`)})}function Gb(e,t){v(e.command("get").description("Show one scheduled plan, including its schedule, agent pool and payload in --json mode.")).requiredOption("--id <id>","Plan id to read.").action(async function(o){const a=X(this,t),r=Ue(await a.api.getPlan(F(o.id,"--id")));if(a.outputJson){a.io.stdout(S({plan:r}));return}a.io.stdout(ht(r))})}function Nb(e,t){v(e.command("list").description("List scheduled plans with their state, next run time and schedule.")).action(async function(){const o=X(this,t),a=db(await o.api.listPlans());if(o.outputJson){o.io.stdout(S(a));return}o.io.stdout(mb(a.plans))})}function Wb(e,t){v(e.command("run").description("Run a scheduled plan now from its stored inputs. The schedule is not changed.")).requiredOption("--id <id>","Plan id to run.").option("--background","Start the run and print the accepted plan id without waiting for the session.").action(async function(o){const a=X(this,t),r=F(o.id,"--id");if(o.background){const s=gb(await a.api.startPlan(r));if(a.outputJson){a.io.stdout(S(s));return}a.io.stdout(pb(s));return}const i=ge(await a.api.runPlan(r));if(a.outputJson){a.io.stdout(S({session:i}));return}a.io.stdout(`Plan run created a session
98
+ ${Ve(i)}`)})}function Sb(e,t){v(e.command("update").description("Update a scheduled plan. The current plan is read first and only the given fields change.")).requiredOption("--id <id>","Plan id to update.").option("--input <file|->","JSON document whose top-level fields replace the same fields of the plan.").option("--name <name>","Updated plan name.").option("--hero-id <id>","Hero for a single-agent pool. Replaces the agent pool.").option("--enabled","Enable the plan.").option("--disabled","Disable the plan.").action(async function(o){const a=F(o.id,"--id"),r=C(o.input),i=C(o.name),s=C(o.heroId);if(o.enabled&&o.disabled)throw new w("Pass either --enabled or --disabled, not both.");const l=o.enabled?!0:o.disabled?!1:void 0;if(!r&&!i&&!s&&l===void 0)throw new w("Provide at least one change: --input, --name, --enabled, --disabled, or --hero-id.");const c=r?yt(await si(r)):{},d=X(this,t),h=await d.api.getPlan(a),f=Ue(await d.api.updatePlan(a,ci(h,{...c,...li({name:i,heroId:s,enabled:l})})));if(d.outputJson){d.io.stdout(S({plan:f}));return}d.io.stdout(`Plan updated
99
+ ${ht(f)}`)})}function vb(e,t){const n=e.command("plan").description("Manage scheduled plans: saved proposal or HagiTask inputs that run on a schedule.");Nb(n,t),Gb(n,t),fb(n,t),Sb(n,t),Vb(n,t),Eb(n,t),Rb(n,t),Wb(n,t)}function re(e){const t=e?.trim();return t||void 0}function qn(e){return{id:re(e.id)??"",name:re(e.name)??"",path:re(e.path)??"",description:re(e.description),isMonoSpecs:e.isMonoSpecs===!0,monoSpecsVersion:re(e.monoSpecsVersion),monoSpecsRepoDirectory:re(e.monoSpecsRepoDirectory),monoSpecsCommitWhenArchive:typeof e.monoSpecsCommitWhenArchive=="boolean"?e.monoSpecsCommitWhenArchive:void 0,hasError:"hasError"in e?e.hasError===!0:!1,error:"error"in e?re(e.error):void 0}}function di(e){return{projects:(e??[]).map(qn)}}function Xb(e){return e.length===0?`No projects found.
90
100
  `:`Projects (${e.length})
91
101
  ${ne([{header:"Project ID",value:t=>t.id},{header:"Name",value:t=>t.name},{header:"Path",value:t=>t.path},{header:"MonoSpecs",value:t=>t.isMonoSpecs?"yes":"no"},{header:"Error",value:t=>t.hasError?"yes":"no"}],e)}
92
- `}function li(e,t=[]){return _([["id",e.id],["name",e.name],["path",e.path],["description",e.description],["isMonoSpecs",String(e.isMonoSpecs)],["monoSpecsVersion",e.monoSpecsVersion],["monoSpecsRepoDirectory",e.monoSpecsRepoDirectory],["monoSpecsCommitWhenArchive",typeof e.monoSpecsCommitWhenArchive=="boolean"?String(e.monoSpecsCommitWhenArchive):void 0],["hasError",String(e.hasError)],["error",e.error],...t])}function hb(e){return{projectId:re(e.id)??"",name:re(e.name)??"",isMonoSpecs:e.isMonoSpecs===!0,hasError:e.hasError===!0,error:re(e.error),repositories:(e.repositories??[]).map(t=>({name:re(t.name),path:t.path??void 0,displayName:re(t.displayName),type:re(t.type),branch:re(t.branch),isValidGitRepo:typeof t.isValidGitRepo=="boolean"?t.isValidGitRepo:void 0}))}}function gb(e){return`${_([["projectId",e.projectId],["name",e.name],["isMonoSpecs",String(e.isMonoSpecs)],["hasError",String(e.hasError)],["error",e.error??(e.hasError?"The project failed to load; its repository list may be incomplete.":void 0)]])}
102
+ `}function mi(e,t=[]){return _([["id",e.id],["name",e.name],["path",e.path],["description",e.description],["isMonoSpecs",String(e.isMonoSpecs)],["monoSpecsVersion",e.monoSpecsVersion],["monoSpecsRepoDirectory",e.monoSpecsRepoDirectory],["monoSpecsCommitWhenArchive",typeof e.monoSpecsCommitWhenArchive=="boolean"?String(e.monoSpecsCommitWhenArchive):void 0],["hasError",String(e.hasError)],["error",e.error],...t])}function Yb(e){return{projectId:re(e.id)??"",name:re(e.name)??"",isMonoSpecs:e.isMonoSpecs===!0,hasError:e.hasError===!0,error:re(e.error),repositories:(e.repositories??[]).map(t=>({name:re(t.name),path:t.path??void 0,displayName:re(t.displayName),type:re(t.type),branch:re(t.branch),isValidGitRepo:typeof t.isValidGitRepo=="boolean"?t.isValidGitRepo:void 0}))}}function Ib(e){return`${_([["projectId",e.projectId],["name",e.name],["isMonoSpecs",String(e.isMonoSpecs)],["hasError",String(e.hasError)],["error",e.error??(e.hasError?"The project failed to load; its repository list may be incomplete.":void 0)]])}
93
103
  ${e.repositories.length===0?`This project lists no repositories.
94
104
  `:`${ne([{header:"Name",value:t=>t.name??""},{header:"Path",value:t=>t.path??""},{header:"Display name",value:t=>t.displayName??""},{header:"Type",value:t=>t.type??""},{header:"Branch",value:t=>t.branch??""}],e.repositories)}
95
- `}`}function Ab(e,t){X(e.command("create").description("Create a project through the generated project client.")).requiredOption("--name <name>","Project display name.").requiredOption("--path <path>","Project root path.").option("--description <text>","Optional project description.").action(async function(o){const a=Y(this,t),r=Pn(await a.api.createProject({name:F(o.name,"--name"),path:F(o.path,"--path"),description:C(o.description)}));if(a.outputJson){a.io.stdout(I({project:r}));return}a.io.stdout(`Project created
96
- ${li(r)}`)})}function pb(e,t){X(e.command("delete").description("Delete a project by id.")).requiredOption("--id <id>","Project id to delete.").action(async function(o){const a=Y(this,t),r=o.id.trim();if(await a.api.deleteProject(r),a.outputJson){a.io.stdout(I({projectId:r,deleted:!0}));return}a.io.stdout(`Project deleted
105
+ `}`}function yb(e,t){v(e.command("create").description("Create a project through the generated project client.")).requiredOption("--name <name>","Project display name.").requiredOption("--path <path>","Project root path.").option("--description <text>","Optional project description.").action(async function(o){const a=X(this,t),r=qn(await a.api.createProject({name:F(o.name,"--name"),path:F(o.path,"--path"),description:C(o.description)}));if(a.outputJson){a.io.stdout(S({project:r}));return}a.io.stdout(`Project created
106
+ ${mi(r)}`)})}function Bb(e,t){v(e.command("delete").description("Delete a project by id.")).requiredOption("--id <id>","Project id to delete.").action(async function(o){const a=X(this,t),r=o.id.trim();if(await a.api.deleteProject(r),a.outputJson){a.io.stdout(S({projectId:r,deleted:!0}));return}a.io.stdout(`Project deleted
97
107
  projectId ${r}
98
- `)})}function Zb(e,t){X(e.command("list").description("List projects from the aggregation endpoint.")).action(async function(){const o=Y(this,t),a=ii((await o.api.listProjects()).projects);if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(bb(a.projects))})}function q(e){const t=e?.trim();return t||void 0}function si(e){return{key:e.key??"",value:e.value??"",valueKind:e.valueKind??"string"}}function Rb(e){const t=e.isValidGitRepo===!0;return{name:q(e.name),code:q(e.code),path:e.path??"",url:q(e.url),displayName:q(e.displayName),type:q(e.type),icon:q(e.icon),optional:e.optional===!0,tags:e.tags??[],metadata:(e.metadata??[]).map(si),isValidGitRepo:t,branch:t?q(e.branch):void 0,hasUncommittedChanges:e.hasUncommittedChanges===!0,unpushedCommitCount:e.unpushedCommitCount??0,hasTrackingBranch:e.hasTrackingBranch===!0,trackingBranch:q(e.trackingBranch),aheadCount:e.aheadCount??0,behindCount:e.behindCount??0,syncState:t?q(e.syncState):void 0}}function ci(e){return{version:q(e.version)??"",repoDirectory:q(e.repoDirectory)??"",configPath:q(e.configPath)??"",commitWhenArchive:e.commitWhenArchive===!0,yamlPreview:e.yamlPreview??"",metadata:(e.metadata??[]).map(si),repositories:(e.repositories??[]).map(Rb)}}function fb(e){return e.isValidGitRepo?[e.branch??"no branch",e.syncState,e.hasUncommittedChanges?"uncommitted changes":void 0].filter(Boolean).join(", "):"missing or not a Git repository"}function ui(e,t={}){return`${_([["version",e.version],["repoDirectory",e.repoDirectory],["configPath",e.configPath],["commitWhenArchive",String(e.commitWhenArchive)]])}
108
+ `)})}function Cb(e,t){v(e.command("list").description("List projects from the aggregation endpoint.")).action(async function(){const o=X(this,t),a=di((await o.api.listProjects()).projects);if(o.outputJson){o.io.stdout(S(a));return}o.io.stdout(Xb(a.projects))})}function q(e){const t=e?.trim();return t||void 0}function bi(e){return{key:e.key??"",value:e.value??"",valueKind:e.valueKind??"string"}}function Fb(e){const t=e.isValidGitRepo===!0;return{name:q(e.name),code:q(e.code),path:e.path??"",url:q(e.url),displayName:q(e.displayName),type:q(e.type),icon:q(e.icon),optional:e.optional===!0,tags:e.tags??[],metadata:(e.metadata??[]).map(bi),isValidGitRepo:t,branch:t?q(e.branch):void 0,hasUncommittedChanges:e.hasUncommittedChanges===!0,unpushedCommitCount:e.unpushedCommitCount??0,hasTrackingBranch:e.hasTrackingBranch===!0,trackingBranch:q(e.trackingBranch),aheadCount:e.aheadCount??0,behindCount:e.behindCount??0,syncState:t?q(e.syncState):void 0}}function hi(e){return{version:q(e.version)??"",repoDirectory:q(e.repoDirectory)??"",configPath:q(e.configPath)??"",commitWhenArchive:e.commitWhenArchive===!0,yamlPreview:e.yamlPreview??"",metadata:(e.metadata??[]).map(bi),repositories:(e.repositories??[]).map(Fb)}}function wb(e){return e.isValidGitRepo?[e.branch??"no branch",e.syncState,e.hasUncommittedChanges?"uncommitted changes":void 0].filter(Boolean).join(", "):"missing or not a Git repository"}function gi(e,t={}){return`${_([["version",e.version],["repoDirectory",e.repoDirectory],["configPath",e.configPath],["commitWhenArchive",String(e.commitWhenArchive)]])}
99
109
  ${e.repositories.length===0?`This document lists no repositories.
100
- `:`${ne([{header:"Path",value:n=>n.path},{header:"Name",value:n=>n.name??""},{header:"Type",value:n=>n.type??""},{header:"URL",value:n=>n.url??""},{header:"Local state",value:n=>fb(n)}],e.repositories)}
110
+ `:`${ne([{header:"Path",value:n=>n.path},{header:"Name",value:n=>n.name??""},{header:"Type",value:n=>n.type??""},{header:"URL",value:n=>n.url??""},{header:"Local state",value:n=>wb(n)}],e.repositories)}
101
111
  `}${t.yaml?`
102
112
  YAML
103
113
  ${e.yamlPreview}${e.yamlPreview.endsWith(`
104
114
  `)?"":`
105
- `}`:""}`}function di(e){return{results:(e??[]).map(t=>({path:t.path??"",status:t.status??"",message:q(t.message)}))}}function mi(e){return e.results.length===0?`No repositories were selected for cloning.
115
+ `}`:""}`}function pi(e){return{results:(e??[]).map(t=>({path:t.path??"",status:t.status??"",message:q(t.message)}))}}function Ai(e){return e.results.length===0?`No repositories were selected for cloning.
106
116
  `:`${ne([{header:"Path",value:t=>t.path},{header:"Status",value:t=>t.status},{header:"Message",value:t=>t.message??""}],e.results)}
107
- `}function Eb(e){return{isValid:e.isValid===!0,config:e.config?{version:q(e.config.version),repoDirectory:q(e.config.repoDirectory)}:null,warnings:e.warnings??[],errors:e.errors??[]}}function Vb(e){const t=e.isValid?"MonoSpecs configuration is valid.":"MonoSpecs configuration is invalid.",n=_([["version",e.config?.version],["repoDirectory",e.config?.repoDirectory]]),o=e.warnings.map(r=>` - ${r}
117
+ `}function Ub(e){return{isValid:e.isValid===!0,config:e.config?{version:q(e.config.version),repoDirectory:q(e.config.repoDirectory)}:null,warnings:e.warnings??[],errors:e.errors??[]}}function Jb(e){const t=e.isValid?"MonoSpecs configuration is valid.":"MonoSpecs configuration is invalid.",n=_([["version",e.config?.version],["repoDirectory",e.config?.repoDirectory]]),o=e.warnings.map(r=>` - ${r}
108
118
  `).join(""),a=e.errors.map(r=>` - ${r}
109
119
  `).join("");return[t,n.trimEnd(),e.warnings.length>0?`Warnings:
110
120
  ${o}`.trimEnd():"",e.errors.length>0?`Errors:
111
121
  ${a}`.trimEnd():""].filter(Boolean).join(`
112
122
  `)+`
113
- `}function Gb(e){return{path:e.path??"",removed:e.removed===!0,message:q(e.message)}}function Nb(e){const t=e.removed?`Removed checkout ${e.path}`:`Checkout ${e.path} was not removed`;return`${e.message?`${t}
123
+ `}function kb(e){return{path:e.path??"",removed:e.removed===!0,message:q(e.message)}}function xb(e){const t=e.removed?`Removed checkout ${e.path}`:`Checkout ${e.path} was not removed`;return`${e.message?`${t}
114
124
  ${e.message}`:t}
115
- `}function $n(e,t,n={}){const o=ci(t);if(e.outputJson){e.io.stdout(I(o));return}const a=n.heading?`${n.heading}
116
- `:"";e.io.stdout(`${a}${ui(o,{yaml:n.yaml})}`)}function An(e,t){return[...t,e]}function Qe(e){const t=e.trim().replace(/\\/g,"/").replace(/^(\.\/)+/,"").replace(/\/+$/,"");if(!t||t===".")throw new U(`Repository path must name a directory below the project root: "${e}".`);return t}function Wb(e,t){X(e.command("clone").description("Clone the configured repositories that are missing on the backend host. Exits with code 30 when any clone fails.")).requiredOption("--id <id>","Project id.").option("--path <path>","Configured repository path to clone. Repeatable; omit to clone every missing repository.",An,[]).option("--include-optional","Also clone optional repositories when no --path is given.").action(async function(o){const a=o.path.map(Qe),r=Y(this,t),i=F(o.id,"--id"),l=o.includeOptional===!0,s=di((await r.api.cloneMonoSpecsRepositories(i,a.length>0?{paths:a,includeOptional:l}:{includeOptional:l})).results);r.outputJson?r.io.stdout(I(s)):r.io.stdout(mi(s));const c=s.results.filter(m=>m.status==="failed");if(c.length>0)throw new mt(`${c.length} repository clone(s) failed. See the results above.`)})}function Sb(e,t){X(e.command("init").description("Initialize the MonoSpecs configuration of a project. An initialized project returns its existing document.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t);$n(a,await a.api.initializeMonoSpecsManagement(F(o.id,"--id")),{heading:"MonoSpecs configuration initialized."})})}function vb(e,t){X(e.command("reload").description("Reread monospecs.yaml on the backend host and refresh the local Git state of its repositories.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t);$n(a,await a.api.reloadMonoSpecsManagement(F(o.id,"--id")),{heading:"MonoSpecs configuration reloaded."})})}function Xb(e,t){X(e.command("remove-checkout").description("Delete the local checkout of one configured repository on the backend host. monospecs.yaml is not changed.")).requiredOption("--id <id>","Project id.").requiredOption("--path <path>","Configured repository path whose local checkout to delete.").option("--force","Delete the checkout even with uncommitted changes, unpushed commits or no upstream branch.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id"),i=Qe(F(o.path,"--path")),l=o.force===!0;let s;try{s=await a.api.removeMonoSpecsRepositoryCheckout(r,i,l)}catch(m){const A=kr(m);throw A.status===409&&!l&&/force/i.test(A.message)?new Ke(409,`${A.message}
117
- Re-run with --force to delete this checkout anyway.`,A.details):m}const c=Gb(s);a.outputJson?a.io.stdout(I(c)):a.io.stdout(Nb(c))})}var Yb="--version, --repo-directory, --commit-when-archive, --add-repository, --remove-repository";function Ib(e){return{name:e.name,code:e.code,path:e.path,url:e.url,displayName:e.displayName,type:e.type,icon:e.icon,optional:e.optional,tags:e.tags,metadata:e.metadata}}function yb(e){return e.split("/").at(-1)??e}function tn(e,t,n){const o=ci(t),a=n?di(n.results):void 0;if(e.outputJson){e.io.stdout(I(a?{...o,clone:a}:o));return}e.io.stdout(`MonoSpecs configuration saved.
118
- ${ui(o)}`),a&&e.io.stdout(`
125
+ `}function eo(e,t,n={}){const o=hi(t);if(e.outputJson){e.io.stdout(S(o));return}const a=n.heading?`${n.heading}
126
+ `:"";e.io.stdout(`${a}${gi(o,{yaml:n.yaml})}`)}function Zn(e,t){return[...t,e]}function Qe(e){const t=e.trim().replace(/\\/g,"/").replace(/^(\.\/)+/,"").replace(/\/+$/,"");if(!t||t===".")throw new w(`Repository path must name a directory below the project root: "${e}".`);return t}function Kb(e,t){v(e.command("clone").description("Clone the configured repositories that are missing on the backend host. Exits with code 30 when any clone fails.")).requiredOption("--id <id>","Project id.").option("--path <path>","Configured repository path to clone. Repeatable; omit to clone every missing repository.",Zn,[]).option("--include-optional","Also clone optional repositories when no --path is given.").action(async function(o){const a=o.path.map(Qe),r=X(this,t),i=F(o.id,"--id"),s=o.includeOptional===!0,l=pi((await r.api.cloneMonoSpecsRepositories(i,a.length>0?{paths:a,includeOptional:s}:{includeOptional:s})).results);r.outputJson?r.io.stdout(S(l)):r.io.stdout(Ai(l));const c=l.results.filter(d=>d.status==="failed");if(c.length>0)throw new bt(`${c.length} repository clone(s) failed. See the results above.`)})}function zb(e,t){v(e.command("init").description("Initialize the MonoSpecs configuration of a project. An initialized project returns its existing document.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=X(this,t);eo(a,await a.api.initializeMonoSpecsManagement(F(o.id,"--id")),{heading:"MonoSpecs configuration initialized."})})}function Lb(e,t){v(e.command("reload").description("Reread monospecs.yaml on the backend host and refresh the local Git state of its repositories.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=X(this,t);eo(a,await a.api.reloadMonoSpecsManagement(F(o.id,"--id")),{heading:"MonoSpecs configuration reloaded."})})}function jb(e,t){v(e.command("remove-checkout").description("Delete the local checkout of one configured repository on the backend host. monospecs.yaml is not changed.")).requiredOption("--id <id>","Project id.").requiredOption("--path <path>","Configured repository path whose local checkout to delete.").option("--force","Delete the checkout even with uncommitted changes, unpushed commits or no upstream branch.").action(async function(o){const a=X(this,t),r=F(o.id,"--id"),i=Qe(F(o.path,"--path")),s=o.force===!0;let l;try{l=await a.api.removeMonoSpecsRepositoryCheckout(r,i,s)}catch(d){const h=Kr(d);throw h.status===409&&!s&&/force/i.test(h.message)?new ze(409,`${h.message}
127
+ Re-run with --force to delete this checkout anyway.`,h.details):d}const c=kb(l);a.outputJson?a.io.stdout(S(c)):a.io.stdout(xb(c))})}var Hb="--version, --repo-directory, --commit-when-archive, --add-repository, --remove-repository";function Tb(e){return{name:e.name,code:e.code,path:e.path,url:e.url,displayName:e.displayName,type:e.type,icon:e.icon,optional:e.optional,tags:e.tags,metadata:e.metadata}}function Qb(e){return e.split("/").at(-1)??e}function on(e,t,n){const o=hi(t),a=n?pi(n.results):void 0;if(e.outputJson){e.io.stdout(S(a?{...o,clone:a}:o));return}e.io.stdout(`MonoSpecs configuration saved.
128
+ ${gi(o)}`),a&&e.io.stdout(`
119
129
  Clone results
120
- ${mi(a)}`)}function Bb(e,t){X(e.command("set").description("Change the MonoSpecs metadata or repositories. Reads the document, applies the given options and saves it.")).requiredOption("--id <id>","Project id.").option("--version <value>","MonoSpecs configuration version.").option("--repo-directory <dir>","Repository directory relative to the project root.").option("--commit-when-archive <true|false>","Whether archiving commits the MonoSpecs changes.").option("--add-repository <path>","Configured repository path to add. Repeatable.",An,[]).option("--remove-repository <path>","Configured repository path to remove. Repeatable.",An,[]).option("--url <url>","Clone URL of the single added repository.").option("--name <name>","Name of the single added repository. Defaults to the last path segment.").option("--display-name <name>","Display name of the single added repository.").option("--type <type>","Type of the single added repository.").option("--clone","Clone the added repositories after saving. Requires at least one --add-repository.").action(async function(o){const a=o.addRepository.map(Qe),r=o.removeRepository.map(Qe);if(!(o.version!==void 0||o.repoDirectory!==void 0||o.commitWhenArchive!==void 0)&&a.length===0&&r.length===0)throw new U(`Provide at least one change: ${Yb}.`);if(o.clone&&a.length===0)throw new U("--clone requires at least one --add-repository.");const i=[o.url!==void 0?"--url":void 0,o.name!==void 0?"--name":void 0,o.displayName!==void 0?"--display-name":void 0,o.type!==void 0?"--type":void 0].filter(Boolean);if(i.length>0&&a.length!==1)throw new U(`${i.join(", ")} apply to a single --add-repository only.`);let l;if(o.commitWhenArchive!==void 0){if(o.commitWhenArchive!=="true"&&o.commitWhenArchive!=="false")throw new U("--commit-when-archive must be true or false.");l=o.commitWhenArchive==="true"}const s=Y(this,t),c=F(o.id,"--id"),m=await s.api.getMonoSpecsManagement(c),A=(m.repositories??[]).map(Ib);for(const N of r){const B=A.findIndex(J=>Qe(J.path??"")===N);if(B<0)throw new U(`Repository path ${N} is not configured, so it cannot be removed.`);A.splice(B,1)}for(const N of a){if(A.some(B=>Qe(B.path??"")===N))throw new U(`Repository path ${N} is already configured.`);A.push({name:o.name??yb(N),code:null,path:N,url:o.url??null,displayName:o.displayName??null,type:o.type??null,icon:null,optional:!1,tags:[],metadata:[]})}const R=await s.api.saveMonoSpecsManagement(c,{version:o.version??m.version,repoDirectory:o.repoDirectory??m.repoDirectory,commitWhenArchive:l??m.commitWhenArchive,repositories:A,metadata:m.metadata??[]});if(!o.clone){tn(s,R);return}let Z;try{Z=(await s.api.cloneMonoSpecsRepositories(c,{paths:a,includeOptional:!1})).results??[]}catch(N){throw tn(s,R),N}tn(s,R,{results:Z});const V=Z.filter(N=>N.status==="failed");if(V.length>0)throw new mt(`The configuration was saved, but ${V.length} repository clone(s) failed. See the clone results above.`)})}function Cb(e,t){X(e.command("show").description("Show the MonoSpecs management document of a project, with local Git state per repository.")).requiredOption("--id <id>","Project id.").option("--yaml","Also print the YAML preview in human-readable mode.").action(async function(o){const a=Y(this,t);$n(a,await a.api.getMonoSpecsManagement(F(o.id,"--id")),{yaml:o.yaml===!0})})}function Fb(e,t){X(e.command("validate").description("Validate the MonoSpecs configuration of a project. Exits with code 30 when it is invalid.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id"),i=((await a.api.listProjects()).projects??[]).find(s=>s.id===r);if(!i?.path)throw new Ke(404,`Project ${r} was not found in the aggregation snapshot.`);const l=Eb(await a.api.validateMonoSpecs({projectPath:i.path}));if(a.outputJson?a.io.stdout(I(l)):a.io.stdout(Vb(l)),!l.isValid)throw new mt("MonoSpecs configuration is invalid. See the errors above.")})}function Ub(e,t){const n=e.command("monospecs").description("Manage the MonoSpecs configuration and the local repository checkouts of a project.");Cb(n,t),Sb(n,t),Bb(n,t),Fb(n,t),vb(n,t),Wb(n,t),Xb(n,t)}function wb(e,t){X(e.command("repositories").description("List the repositories of one project from the aggregation snapshot.")).requiredOption("--id <id>","Project id whose repositories to list.").action(async function(o){const a=Y(this,t),r=o.id.trim(),i=((await a.api.listProjects()).projects??[]).find(s=>s.id===r);if(!i)throw new Ke(404,`Project ${r} was not found in the aggregation snapshot.`);const l=hb(i);if(a.outputJson){a.io.stdout(I(l));return}a.io.stdout(gb(l))})}function Jb(e,t){X(e.command("update").description("Update a project by merging provided fields into the aggregation snapshot.")).requiredOption("--id <id>","Project id to update.").option("--name <name>","Updated project name.").option("--path <path>","Updated project path.").option("--description <text>","Updated project description.").option("--clear-description","Clear the stored description.").action(async function(o){if(!o.name&&!o.path&&!o.description&&!o.clearDescription)throw new U("Provide at least one field to update: --name, --path, --description, or --clear-description.");if(o.description&&o.clearDescription)throw new U("Use either --description or --clear-description, not both.");const a=Y(this,t),r=o.id.trim(),i=ii((await a.api.listProjects()).projects).projects.find(s=>s.id===r);if(!i)throw new Ke(404,`Project ${r} was not found in the aggregation snapshot.`);const l=Pn(await a.api.updateProject(r,{name:C(o.name)??i.name,path:C(o.path)??i.path,description:o.clearDescription?null:C(o.description)??i.description??null}));if(a.outputJson){a.io.stdout(I({project:l}));return}a.io.stdout(`Project updated
121
- ${li(l)}`)})}function kb(e,t){const n=e.command("project").description("Manage Hagi projects through generated project and aggregation APIs.");Zb(n,t),wb(n,t),Ab(n,t),Jb(n,t),pb(n,t),Ub(n,t)}function xb(e,t){if(!t||typeof t!="object"||Array.isArray(t))throw new U("Annotation input must be a JSON object.");const n=t;if(!Array.isArray(n.files))throw new U("Annotation input must include a files array.");const o=typeof n.totalAnnotations=="number"?n.totalAnnotations:n.files.length,a=typeof n.submittedAt=="string"&&n.submittedAt.trim()?n.submittedAt:new Date().toISOString();return{...n,sessionId:e,totalAnnotations:o,submittedAt:a,files:n.files}}function Kb(e,t){X(e.command("annotate").description("Submit proposal annotations from structured JSON input.")).requiredOption("--session-id <id>","Proposal session id.").requiredOption("--input <file>","JSON file path, or - to read from stdin.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=xb(r,await jt(o.input)),l=await a.api.submitAnnotations(r,i);if(a.outputJson){a.io.stdout(I({sessionId:r,message:l.message,annotationCount:l.annotationCount??i.totalAnnotations,fileCount:l.fileCount??i.files.length}));return}a.io.stdout(`Proposal annotations submitted
130
+ ${Ai(a)}`)}function Mb(e,t){v(e.command("set").description("Change the MonoSpecs metadata or repositories. Reads the document, applies the given options and saves it.")).requiredOption("--id <id>","Project id.").option("--version <value>","MonoSpecs configuration version.").option("--repo-directory <dir>","Repository directory relative to the project root.").option("--commit-when-archive <true|false>","Whether archiving commits the MonoSpecs changes.").option("--add-repository <path>","Configured repository path to add. Repeatable.",Zn,[]).option("--remove-repository <path>","Configured repository path to remove. Repeatable.",Zn,[]).option("--url <url>","Clone URL of the single added repository.").option("--name <name>","Name of the single added repository. Defaults to the last path segment.").option("--display-name <name>","Display name of the single added repository.").option("--type <type>","Type of the single added repository.").option("--clone","Clone the added repositories after saving. Requires at least one --add-repository.").action(async function(o){const a=o.addRepository.map(Qe),r=o.removeRepository.map(Qe);if(!(o.version!==void 0||o.repoDirectory!==void 0||o.commitWhenArchive!==void 0)&&a.length===0&&r.length===0)throw new w(`Provide at least one change: ${Hb}.`);if(o.clone&&a.length===0)throw new w("--clone requires at least one --add-repository.");const i=[o.url!==void 0?"--url":void 0,o.name!==void 0?"--name":void 0,o.displayName!==void 0?"--display-name":void 0,o.type!==void 0?"--type":void 0].filter(Boolean);if(i.length>0&&a.length!==1)throw new w(`${i.join(", ")} apply to a single --add-repository only.`);let s;if(o.commitWhenArchive!==void 0){if(o.commitWhenArchive!=="true"&&o.commitWhenArchive!=="false")throw new w("--commit-when-archive must be true or false.");s=o.commitWhenArchive==="true"}const l=X(this,t),c=F(o.id,"--id"),d=await l.api.getMonoSpecsManagement(c),h=(d.repositories??[]).map(Tb);for(const N of r){const B=h.findIndex(J=>Qe(J.path??"")===N);if(B<0)throw new w(`Repository path ${N} is not configured, so it cannot be removed.`);h.splice(B,1)}for(const N of a){if(h.some(B=>Qe(B.path??"")===N))throw new w(`Repository path ${N} is already configured.`);h.push({name:o.name??Qb(N),code:null,path:N,url:o.url??null,displayName:o.displayName??null,type:o.type??null,icon:null,optional:!1,tags:[],metadata:[]})}const f=await l.api.saveMonoSpecsManagement(c,{version:o.version??d.version,repoDirectory:o.repoDirectory??d.repoDirectory,commitWhenArchive:s??d.commitWhenArchive,repositories:h,metadata:d.metadata??[]});if(!o.clone){on(l,f);return}let Z;try{Z=(await l.api.cloneMonoSpecsRepositories(c,{paths:a,includeOptional:!1})).results??[]}catch(N){throw on(l,f),N}on(l,f,{results:Z});const V=Z.filter(N=>N.status==="failed");if(V.length>0)throw new bt(`The configuration was saved, but ${V.length} repository clone(s) failed. See the clone results above.`)})}function Ob(e,t){v(e.command("show").description("Show the MonoSpecs management document of a project, with local Git state per repository.")).requiredOption("--id <id>","Project id.").option("--yaml","Also print the YAML preview in human-readable mode.").action(async function(o){const a=X(this,t);eo(a,await a.api.getMonoSpecsManagement(F(o.id,"--id")),{yaml:o.yaml===!0})})}function Db(e,t){v(e.command("validate").description("Validate the MonoSpecs configuration of a project. Exits with code 30 when it is invalid.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=X(this,t),r=F(o.id,"--id"),i=((await a.api.listProjects()).projects??[]).find(l=>l.id===r);if(!i?.path)throw new ze(404,`Project ${r} was not found in the aggregation snapshot.`);const s=Ub(await a.api.validateMonoSpecs({projectPath:i.path}));if(a.outputJson?a.io.stdout(S(s)):a.io.stdout(Jb(s)),!s.isValid)throw new bt("MonoSpecs configuration is invalid. See the errors above.")})}function _b(e,t){const n=e.command("monospecs").description("Manage the MonoSpecs configuration and the local repository checkouts of a project.");Ob(n,t),zb(n,t),Mb(n,t),Db(n,t),Lb(n,t),Kb(n,t),jb(n,t)}function Pb(e,t){v(e.command("repositories").description("List the repositories of one project from the aggregation snapshot.")).requiredOption("--id <id>","Project id whose repositories to list.").action(async function(o){const a=X(this,t),r=o.id.trim(),i=((await a.api.listProjects()).projects??[]).find(l=>l.id===r);if(!i)throw new ze(404,`Project ${r} was not found in the aggregation snapshot.`);const s=Yb(i);if(a.outputJson){a.io.stdout(S(s));return}a.io.stdout(Ib(s))})}function $b(e,t){v(e.command("update").description("Update a project by merging provided fields into the aggregation snapshot.")).requiredOption("--id <id>","Project id to update.").option("--name <name>","Updated project name.").option("--path <path>","Updated project path.").option("--description <text>","Updated project description.").option("--clear-description","Clear the stored description.").action(async function(o){if(!o.name&&!o.path&&!o.description&&!o.clearDescription)throw new w("Provide at least one field to update: --name, --path, --description, or --clear-description.");if(o.description&&o.clearDescription)throw new w("Use either --description or --clear-description, not both.");const a=X(this,t),r=o.id.trim(),i=di((await a.api.listProjects()).projects).projects.find(l=>l.id===r);if(!i)throw new ze(404,`Project ${r} was not found in the aggregation snapshot.`);const s=qn(await a.api.updateProject(r,{name:C(o.name)??i.name,path:C(o.path)??i.path,description:o.clearDescription?null:C(o.description)??i.description??null}));if(a.outputJson){a.io.stdout(S({project:s}));return}a.io.stdout(`Project updated
131
+ ${mi(s)}`)})}function qb(e,t){const n=e.command("project").description("Manage Hagi projects through generated project and aggregation APIs.");Cb(n,t),Pb(n,t),yb(n,t),$b(n,t),Bb(n,t),_b(n,t)}function eh(e,t){if(!t||typeof t!="object"||Array.isArray(t))throw new w("Annotation input must be a JSON object.");const n=t;if(!Array.isArray(n.files))throw new w("Annotation input must include a files array.");const o=typeof n.totalAnnotations=="number"?n.totalAnnotations:n.files.length,a=typeof n.submittedAt=="string"&&n.submittedAt.trim()?n.submittedAt:new Date().toISOString();return{...n,sessionId:e,totalAnnotations:o,submittedAt:a,files:n.files}}function th(e,t){v(e.command("annotate").description("Submit proposal annotations from structured JSON input.")).requiredOption("--session-id <id>","Proposal session id.").requiredOption("--input <file>","JSON file path, or - to read from stdin.").action(async function(o){const a=X(this,t),r=o.sessionId.trim(),i=eh(r,await jt(o.input)),s=await a.api.submitAnnotations(r,i);if(a.outputJson){a.io.stdout(S({sessionId:r,message:s.message,annotationCount:s.annotationCount??i.totalAnnotations,fileCount:s.fileCount??i.files.length}));return}a.io.stdout(`Proposal annotations submitted
122
132
  sessionId ${r}
123
- message ${l.message}
124
- annotationCount ${l.annotationCount??i.totalAnnotations}
125
- fileCount ${l.fileCount??i.files.length}
126
- `)})}function zb(e,t){X(e.command("archive").description("Archive a proposal session through the explicit archive endpoint.")).requiredOption("--session-id <id>","Proposal session id to archive.").option("--hero-id <id>","Optional hero override for archiving.").action(async function(o){const a=Y(this,t),r=Ce(await a.api.archiveProposal(o.sessionId.trim(),{heroId:C(o.heroId)}));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Proposal archive started
127
- ${ze(r)}`)})}function Lb(e,t){X(e.command("complete").description("Mark a proposal session as completed through the dedicated completion endpoint.")).requiredOption("--session-id <id>","Proposal session id to complete.").action(async function(o){const a=Y(this,t),r=Ce(await a.api.completeProposal(o.sessionId.trim()));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Proposal completed
128
- ${ze(r)}`)})}function jb(e){return Ce(e)}function Hb(e){return $r(e)}function Tb(e){return qr("Proposal sessions",e)}function Qb(e,t=[]){return ze(e,t)}var bi="New Proposal";function Mb(e){const t=C(e.title);if(t)return t;if(e.defaultTitle)return bi;throw new U("Provide --title or pass --default-title to use the placeholder proposal title.")}function Ob(e,t){X(e.command("create").description("Create a proposal session only. This command does not trigger later lifecycle APIs.")).requiredOption("--project-id <id>","Project id that owns the new proposal session.").requiredOption("--chief-complaint <text>","Proposal chief complaint to store on the new session.").option("--original-chief-complaint <text>","Optional raw chief complaint text to keep alongside the stitched content.").option("--title <title>","Explicit proposal session title.").option("--default-title",`Mark the title as the placeholder title (${bi}).`).option("--enable-independent-workspace","Request an independent workspace for the proposal session.").option("--base-branch <branch>","Optional base branch for the independent workspace.").action(async function(o){const a=Y(this,t),r=Mb(o),i=jb(await a.api.createProposalSession({title:r,chiefComplaint:o.chiefComplaint.trim(),originalChiefComplaint:C(o.originalChiefComplaint),type:Dn.PROPOSAL,projectId:o.projectId.trim(),enableIndependentWorkspace:o.enableIndependentWorkspace?!0:void 0,baseBranch:C(o.baseBranch),isDefaultTitle:!!o.defaultTitle})),l=`hagi proposal optimize-description --session-id ${i.sessionId} --description "<description>"`;if(a.outputJson){a.io.stdout(I({session:i,nextCommand:l}));return}a.io.stdout(`Proposal session created
129
- ${Qb(i,[["next",l]])}`)})}function Db(e,t){X(e.command("execute").description("Start proposal execution only. This command maps to the execute-proposal backend action.")).requiredOption("--session-id <id>","Proposal session id to execute.").option("--hero-id <id>","Optional hero override for the execute stage.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=C(o.heroId),l=await a.api.executeProposal(r,{heroId:i});if(a.outputJson){a.io.stdout(I({sessionId:r,message:l.message,requested:{heroId:i}}));return}a.io.stdout(`Proposal execution started
130
- sessionId ${r}
131
- message ${l.message}
132
- `)})}var pn=["zh-CN","zh-Hant","en-US","ja-JP","ko-KR","de-DE","fr-FR","es-ES","pt-BR","ru-RU"];function _b(e){if(e.enableExploreMode&&e.disableExploreMode)throw new U("Use either --enable-explore-mode or --disable-explore-mode, not both.");if(e.enableExploreMode)return!0;if(e.disableExploreMode)return!1}function Pb(e){const t=e.trim();if(!pn.includes(t))throw new U(`--proposal-content-language must be one of: ${pn.join(", ")}.`);return t}function $b(e,t){X(e.command("generate").description("Start proposal generation only. This command does not execute the proposal.")).requiredOption("--session-id <id>","Proposal session id to generate.").requiredOption("--proposal-content-language <language>",`Language of the generated proposal content (${pn.join(", ")}).`).option("--enable-explore-mode","Explicitly enable explore mode for proposal generation.").option("--disable-explore-mode","Explicitly disable explore mode for proposal generation.").option("--hero-id <id>","Optional hero override for the generate stage.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=_b(o),l=Pb(o.proposalContentLanguage),s=await a.api.generateProposal(r,{enableExploreMode:i,heroId:C(o.heroId),proposalContentLanguage:l}),c=`hagi proposal execute --session-id ${r}`;if(a.outputJson){a.io.stdout(I({sessionId:r,message:s.message,requested:{enableExploreMode:i,heroId:C(o.heroId),proposalContentLanguage:l},nextCommand:c}));return}a.io.stdout(`Proposal generation started
133
+ message ${s.message}
134
+ annotationCount ${s.annotationCount??i.totalAnnotations}
135
+ fileCount ${s.fileCount??i.files.length}
136
+ `)})}function nh(e,t){v(e.command("archive").description("Archive a proposal session through the explicit archive endpoint.")).requiredOption("--session-id <id>","Proposal session id to archive.").option("--hero-id <id>","Optional hero override for archiving.").action(async function(o){const a=X(this,t),r=ge(await a.api.archiveProposal(o.sessionId.trim(),{heroId:C(o.heroId)}));if(a.outputJson){a.io.stdout(S({session:r}));return}a.io.stdout(`Proposal archive started
137
+ ${Ve(r)}`)})}function oh(e,t){v(e.command("complete").description("Mark a proposal session as completed through the dedicated completion endpoint.")).requiredOption("--session-id <id>","Proposal session id to complete.").action(async function(o){const a=X(this,t),r=ge(await a.api.completeProposal(o.sessionId.trim()));if(a.outputJson){a.io.stdout(S({session:r}));return}a.io.stdout(`Proposal completed
138
+ ${Ve(r)}`)})}function ah(e){return ge(e)}function rh(e){return ti(e)}function ih(e){return ni("Proposal sessions",e)}function sh(e,t=[]){return Ve(e,t)}var Zi="New Proposal";function lh(e){const t=C(e.title);if(t)return t;if(e.defaultTitle)return Zi;throw new w("Provide --title or pass --default-title to use the placeholder proposal title.")}function ch(e,t){v(e.command("create").description("Create a proposal session only. This command does not trigger later lifecycle APIs.")).requiredOption("--project-id <id>","Project id that owns the new proposal session.").requiredOption("--chief-complaint <text>","Proposal chief complaint to store on the new session.").option("--original-chief-complaint <text>","Optional raw chief complaint text to keep alongside the stitched content.").option("--title <title>","Explicit proposal session title.").option("--default-title",`Mark the title as the placeholder title (${Zi}).`).option("--enable-independent-workspace","Request an independent workspace for the proposal session.").option("--base-branch <branch>","Optional base branch for the independent workspace.").action(async function(o){const a=X(this,t),r=lh(o),i=ah(await a.api.createProposalSession({title:r,chiefComplaint:o.chiefComplaint.trim(),originalChiefComplaint:C(o.originalChiefComplaint),type:Pn.PROPOSAL,projectId:o.projectId.trim(),enableIndependentWorkspace:o.enableIndependentWorkspace?!0:void 0,baseBranch:C(o.baseBranch),isDefaultTitle:!!o.defaultTitle})),s=`hagi proposal optimize-description --session-id ${i.sessionId} --description "<description>"`;if(a.outputJson){a.io.stdout(S({session:i,nextCommand:s}));return}a.io.stdout(`Proposal session created
139
+ ${sh(i,[["next",s]])}`)})}function uh(e,t){v(e.command("execute").description("Start proposal execution only. This command maps to the execute-proposal backend action.")).requiredOption("--session-id <id>","Proposal session id to execute.").option("--hero-id <id>","Optional hero override for the execute stage.").action(async function(o){const a=X(this,t),r=o.sessionId.trim(),i=C(o.heroId),s=await a.api.executeProposal(r,{heroId:i});if(a.outputJson){a.io.stdout(S({sessionId:r,message:s.message,requested:{heroId:i}}));return}a.io.stdout(`Proposal execution started
133
140
  sessionId ${r}
134
141
  message ${s.message}
142
+ `)})}var fn=["zh-CN","zh-Hant","en-US","ja-JP","ko-KR","de-DE","fr-FR","es-ES","pt-BR","ru-RU"];function dh(e){if(e.enableExploreMode&&e.disableExploreMode)throw new w("Use either --enable-explore-mode or --disable-explore-mode, not both.");if(e.enableExploreMode)return!0;if(e.disableExploreMode)return!1}function mh(e){const t=e.trim();if(!fn.includes(t))throw new w(`--proposal-content-language must be one of: ${fn.join(", ")}.`);return t}function bh(e,t){v(e.command("generate").description("Start proposal generation only. This command does not execute the proposal.")).requiredOption("--session-id <id>","Proposal session id to generate.").requiredOption("--proposal-content-language <language>",`Language of the generated proposal content (${fn.join(", ")}).`).option("--enable-explore-mode","Explicitly enable explore mode for proposal generation.").option("--disable-explore-mode","Explicitly disable explore mode for proposal generation.").option("--hero-id <id>","Optional hero override for the generate stage.").action(async function(o){const a=X(this,t),r=o.sessionId.trim(),i=dh(o),s=mh(o.proposalContentLanguage),l=await a.api.generateProposal(r,{enableExploreMode:i,heroId:C(o.heroId),proposalContentLanguage:s}),c=`hagi proposal execute --session-id ${r}`;if(a.outputJson){a.io.stdout(S({sessionId:r,message:l.message,requested:{enableExploreMode:i,heroId:C(o.heroId),proposalContentLanguage:s},nextCommand:c}));return}a.io.stdout(`Proposal generation started
143
+ sessionId ${r}
144
+ message ${l.message}
135
145
  next Wait for the session to reach Reviewing, then run ${c}
136
- `)})}function qb(e,t){X(e.command("list").description("List proposal sessions from the backend Sessions API.")).option("--project-id <id>","Filter proposal sessions by a single project id.").option("--project-ids <ids...>","Filter proposal sessions by multiple project ids.").option("--active-only","Only return non-archived proposal sessions.").option("--include-archived","Include archived proposal sessions in the result set.").action(async function(o){if(o.projectId&&o.projectIds?.length)throw new U("Use either --project-id or --project-ids, not both.");const a=Y(this,t),r=Hb(await a.api.listSessions({type:Dn.PROPOSAL,projectId:C(o.projectId),projectIds:o.projectIds?.map(C).filter(Boolean),activeOnly:o.activeOnly?!0:void 0,includeArchived:o.includeArchived?!0:void 0}));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Tb(r.sessions))})}function eh(e,t){const n=t.summary,o=t.result,a=o?.validation?.isValid===!0,r=n?.appliedTitle||o?.optimizedTitle||"",i=n?.appliedProposalName||o?.optimizedProposalName||"",l=o?.validation?.diagnostics??[],s=[a?"Proposal optimized":"Proposal optimization returned diagnostics",`sessionId ${e}`,`title ${r}`,`proposalName ${i}`,`valid ${a?"yes":"no"}`];for(const c of l)s.push(`diagnostic ${c.code??"UNKNOWN"}: ${c.message??""}`.trimEnd());return a&&s.push(`next hagi proposal generate --session-id ${e}`),`${s.join(`
146
+ `)})}function hh(e,t){oi(e,t,{description:"Read one proposal session by id. With --wait, poll until its status settles, so a stage can be followed without guessing.",label:"proposal session"})}function gh(e,t){ai(e,t,{description:"Read a proposal session's messages, newest first. Use --last 1 to read the final message of a run."})}function ph(e,t){v(e.command("list").description("List proposal sessions from the backend Sessions API.")).option("--project-id <id>","Filter proposal sessions by a single project id.").option("--project-ids <ids...>","Filter proposal sessions by multiple project ids.").option("--active-only","Only return non-archived proposal sessions.").option("--include-archived","Include archived proposal sessions in the result set.").action(async function(o){if(o.projectId&&o.projectIds?.length)throw new w("Use either --project-id or --project-ids, not both.");const a=X(this,t),r=rh(await a.api.listSessions({type:Pn.PROPOSAL,projectId:C(o.projectId),projectIds:o.projectIds?.map(C).filter(Boolean),activeOnly:o.activeOnly?!0:void 0,includeArchived:o.includeArchived?!0:void 0}));if(a.outputJson){a.io.stdout(S(r));return}a.io.stdout(ih(r.sessions))})}function Ah(e,t){const n=t.summary,o=t.result,a=o?.validation?.isValid===!0,r=n?.appliedTitle||o?.optimizedTitle||"",i=n?.appliedProposalName||o?.optimizedProposalName||"",s=o?.validation?.diagnostics??[],l=[a?"Proposal optimized":"Proposal optimization returned diagnostics",`sessionId ${e}`,`title ${r}`,`proposalName ${i}`,`valid ${a?"yes":"no"}`];for(const c of s)l.push(`diagnostic ${c.code??"UNKNOWN"}: ${c.message??""}`.trimEnd());return a&&l.push(`next hagi proposal generate --session-id ${e}`),`${l.join(`
137
147
  `)}
138
- `}function th(e,t){X(e.command("optimize-description").description("Optimize the proposal description, title, and name in one backend step.")).requiredOption("--session-id <id>","Proposal session id to optimize.").requiredOption("--description <text>","Description text to optimize.").option("--title <title>","Current title snapshot. The session title is used when omitted.").option("--default-title","Treat the current title as the placeholder title.").option("--optimization-direction <text>","Optional optimization direction for AI guidance.").option("--original-chief-complaint <text>","Optional original chief complaint to keep as context.").action(async function(o){const a=Y(this,t),r=F(o.sessionId,"--session-id"),i=await a.api.optimizeProposal(r,{description:F(o.description,"--description"),title:C(o.title),isDefaultTitle:o.defaultTitle?!0:void 0,optimizationDirection:C(o.optimizationDirection),originalChiefComplaint:C(o.originalChiefComplaint)});if(a.outputJson){a.io.stdout(I({sessionId:r,...i}));return}a.io.stdout(eh(r,i))})}function nh(e,t){X(e.command("send").description("Send a follow-up message to a proposal session.")).requiredOption("--session-id <id>","Proposal session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("Proposal message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function oh(e,t){X(e.command("status").description("Update proposal session status through read-before-write merging.")).requiredOption("--session-id <id>","Proposal session id.").addOption(new Ye("--status <status>","Target session status.").choices(Object.values(_r)).makeOptionMandatory()).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.getSession(r);await a.api.updateSession(r,{title:i.title,description:i.description,status:o.status,metadata:i.metadata});const l=Ce({...i,status:o.status});if(a.outputJson){a.io.stdout(I({session:l}));return}a.io.stdout(`Proposal status updated
139
- ${ze(l)}`)})}function ah(e,t){const n=e.command("proposal").description("Manage proposal sessions through backend session APIs.");qb(n,t),Ob(n,t),th(n,t),$b(n,t),Kb(n,t),Db(n,t),zb(n,t),oh(n,t),Lb(n,t),nh(n,t)}function Je(e){return e?"yes":"no"}function rh(e){return e&&e.length>0?e.join(", "):"-"}function hi(e){return e.origin??"user"}function gi(e){return hi(e)==="built-in"}function ih(e){return gi(e)?Je(e.builtIn?.enabled):"-"}function lh(e){return(gi(e)?e.builtIn?.version:e.managedInstallMetadata?.version)??"-"}function sh(e){const t=e.items??[];return t.length===0?`No local skills installed.
148
+ `}function Zh(e,t){v(e.command("optimize-description").description("Optimize the proposal description, title, and name in one backend step.")).requiredOption("--session-id <id>","Proposal session id to optimize.").requiredOption("--description <text>","Description text to optimize.").option("--title <title>","Current title snapshot. The session title is used when omitted.").option("--default-title","Treat the current title as the placeholder title.").option("--optimization-direction <text>","Optional optimization direction for AI guidance.").option("--original-chief-complaint <text>","Optional original chief complaint to keep as context.").action(async function(o){const a=X(this,t),r=F(o.sessionId,"--session-id"),i=await a.api.optimizeProposal(r,{description:F(o.description,"--description"),title:C(o.title),isDefaultTitle:o.defaultTitle?!0:void 0,optimizationDirection:C(o.optimizationDirection),originalChiefComplaint:C(o.originalChiefComplaint)});if(a.outputJson){a.io.stdout(S({sessionId:r,...i}));return}a.io.stdout(Ah(r,i))})}function fh(e,t){v(e.command("send").description("Send a follow-up message to a proposal session.")).requiredOption("--session-id <id>","Proposal session id.").requiredOption("--content <text>","Message content.").addOption(new ye("--mode <mode>","Message mode override.").choices(Object.values($n))).addOption(new ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=X(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(S({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(_n("Proposal message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function Rh(e,t){v(e.command("status").description("Update proposal session status through read-before-write merging.")).requiredOption("--session-id <id>","Proposal session id.").addOption(new ye("--status <status>","Target session status.").choices(Object.values(qr)).makeOptionMandatory()).action(async function(o){const a=X(this,t),r=o.sessionId.trim(),i=await a.api.getSession(r);await a.api.updateSession(r,{title:i.title,description:i.description,status:o.status,metadata:i.metadata});const s=ge({...i,status:o.status});if(a.outputJson){a.io.stdout(S({session:s}));return}a.io.stdout(`Proposal status updated
149
+ ${Ve(s)}`)})}function Eh(e,t){const n=e.command("proposal").description("Manage proposal sessions through backend session APIs: create, generate, execute and archive stages, read one session with get (--wait to follow a stage), and read its messages.");ph(n,t),ch(n,t),Zh(n,t),bh(n,t),th(n,t),uh(n,t),nh(n,t),Rh(n,t),hh(n,t),gh(n,t),oh(n,t),fh(n,t)}function ke(e){return e?"yes":"no"}function Vh(e){return e&&e.length>0?e.join(", "):"-"}function fi(e){return e.origin??"user"}function Ri(e){return fi(e)==="built-in"}function Gh(e){return Ri(e)?ke(e.builtIn?.enabled):"-"}function Nh(e){return(Ri(e)?e.builtIn?.version:e.managedInstallMetadata?.version)??"-"}function Wh(e){const t=e.items??[];return t.length===0?`No local skills installed.
140
150
  `:`Local skills (${t.length})
141
- ${ne([{header:"Name",value:n=>n.name??"-"},{header:"Origin",value:hi},{header:"Enabled",value:ih},{header:"Version",value:lh},{header:"Scope",value:n=>n.scope??"-"},{header:"Agents",value:n=>rh(n.agents)},{header:"Path",value:n=>n.path??"-"}],t)}
142
- `}function ch(e){return _([["skillName",e.skillName??void 0],["status",e.status??void 0],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0]])}function uh(e){return _([["skillName",e.slug??void 0],["enabled",Je(e.enabled)],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0]])}function dh(e){const t=e.items??[];return t.length===0?`No gallery skills found.
151
+ ${ne([{header:"Name",value:n=>n.name??"-"},{header:"Origin",value:fi},{header:"Enabled",value:Gh},{header:"Version",value:Nh},{header:"Scope",value:n=>n.scope??"-"},{header:"Agents",value:n=>Vh(n.agents)},{header:"Path",value:n=>n.path??"-"}],t)}
152
+ `}function Sh(e){return _([["skillName",e.skillName??void 0],["status",e.status??void 0],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0]])}function vh(e){return _([["skillName",e.slug??void 0],["enabled",ke(e.enabled)],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0]])}function Xh(e){const t=e.items??[];return t.length===0?`No gallery skills found.
143
153
  `:`Gallery skills (${t.length})
144
- ${ne([{header:"ID",value:n=>n.id??"-"},{header:"Source",value:n=>n.source??"-"},{header:"Installs",value:n=>String(n.installs??0)},{header:"Trusted",value:n=>Je(n.isTrustedSource)}],t)}
145
- `}function mh(e){return`skills.sh audit (${e.provider}): risk=${e.risk??"--"}, alerts=${e.alerts??"--"}, score=${e.score??"--"}, analyzedAt=${e.analyzedAt??"--"}`}function bh(e,t={providers:[]}){const n=e.trustedProvider;return`${_([["id",e.id??void 0],["source",e.source??void 0],["skillSlug",e.skillSlug??void 0],["installable",Je(e.isInstallable)],["description",e.description??void 0],["repository",e.repositoryFullName??e.repositoryName??void 0],["repositoryUrl",e.repositoryUrl??void 0],["defaultBranch",e.repositoryDefaultBranch??void 0],["trustedSource",Je(e.isTrustedSource)],["trustedProvider",n?`${n.displayName??n.providerId??"-"}`:void 0],["installReference",e.installReference??void 0],["installCommand",e.installCommandPreview??void 0],["installVersion",e.installVersion??void 0],["installHint",e.installHint??void 0]])}${t.providers.map(o=>`${mh(o)}
146
- `).join("")}`}function hh(e){return _([["installReference",e.installReference??void 0],["normalizedSkillKey",e.normalizedSkillKey??void 0],["version",e.version??void 0],["status",e.status??void 0],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0],["commandPreview",e.commandPreview??void 0]])}function ft(e){const t=e.items??[];return t.length===0?`No trusted providers (directory version ${e.version??0}).
154
+ ${ne([{header:"ID",value:n=>n.id??"-"},{header:"Source",value:n=>n.source??"-"},{header:"Installs",value:n=>String(n.installs??0)},{header:"Trusted",value:n=>ke(n.isTrustedSource)}],t)}
155
+ `}function Yh(e){return`skills.sh audit (${e.provider}): risk=${e.risk??"--"}, alerts=${e.alerts??"--"}, score=${e.score??"--"}, analyzedAt=${e.analyzedAt??"--"}`}function Ih(e,t={providers:[]}){const n=e.trustedProvider;return`${_([["id",e.id??void 0],["source",e.source??void 0],["skillSlug",e.skillSlug??void 0],["installable",ke(e.isInstallable)],["description",e.description??void 0],["repository",e.repositoryFullName??e.repositoryName??void 0],["repositoryUrl",e.repositoryUrl??void 0],["defaultBranch",e.repositoryDefaultBranch??void 0],["trustedSource",ke(e.isTrustedSource)],["trustedProvider",n?`${n.displayName??n.providerId??"-"}`:void 0],["installReference",e.installReference??void 0],["installCommand",e.installCommandPreview??void 0],["installVersion",e.installVersion??void 0],["installHint",e.installHint??void 0]])}${t.providers.map(o=>`${Yh(o)}
156
+ `).join("")}`}function yh(e){return _([["installReference",e.installReference??void 0],["normalizedSkillKey",e.normalizedSkillKey??void 0],["version",e.version??void 0],["status",e.status??void 0],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0],["commandPreview",e.commandPreview??void 0]])}function Rt(e){const t=e.items??[];return t.length===0?`No trusted providers (directory version ${e.version??0}).
147
157
  `:`Trusted providers (${t.length}, directory version ${e.version??0})
148
- ${ne([{header:"Provider ID",value:n=>n.providerId??"-"},{header:"Name",value:n=>n.displayName??"-"},{header:"Enabled",value:n=>Je(n.isEnabled)},{header:"Preset",value:n=>Je(n.isPreset)},{header:"Rules",value:n=>String(n.ruleCount??0)}],t)}
149
- `}function gh(e,t){const n=e.command("gallery").description("Search the skill gallery, read skill details, and start managed installs.");X(n.command("search").description("Search the skill gallery by keyword.")).option("--query <query>","Keyword to search for. Omit to list the gallery.").action(async function(a){const r=Y(this,t),i=await r.api.searchSkillGallery(C(a.query));if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(dh(i))}),X(n.command("detail").description("Show one gallery skill with installability, trust, and repository details.")).requiredOption("--id <id>","Gallery skill id.").requiredOption("--source <source>","Gallery skill source.").action(async function(a){const r=Y(this,t),i=F(a.id,"--id"),l=F(a.source,"--source"),[s,c]=await Promise.allSettled([r.api.getSkillGalleryDetail(i,l),r.api.getSkillGalleryAudit(i,l)]);if(s.status==="rejected")throw s.reason;const m=s.value,A={providers:c.status==="fulfilled"?c.value?.providers??[]:[]};if(r.outputJson){r.io.stdout(I({...m,audit:A}));return}r.io.stdout(bh(m,A))}),X(n.command("install").description("Start a managed install of one gallery skill.")).requiredOption("--id <id>","Gallery skill id.").requiredOption("--source <source>","Gallery skill source.").requiredOption("--skill-slug <slug>","Skill slug inside the source repository.").option("--version <version>","Optional version token to install.").action(async function(a){const r=Y(this,t),i=await r.api.installGallerySkill({id:F(a.id,"--id"),source:F(a.source,"--source"),skillSlug:F(a.skillSlug,"--skill-slug"),version:C(a.version)});if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(hh(i))})}var Ah="The change applies to agent runs that start afterwards; a run already in progress keeps its skills.";function Za(e,t,n){const o=n?"enable":"disable";X(e.command(o).description(`${n?"Turn on":"Turn off"} one built-in skill by name. ${Ah}`)).requiredOption("--skill-name <name>",`Built-in skill name to ${o}.`).action(async function(r){const i=Y(this,t),l=await i.api.setBuiltInSkillAvailability({slug:F(r.skillName,"--skill-name"),enabled:n});if(i.outputJson?i.io.stdout(I(l)):i.io.stdout(uh(l)),!l.succeeded)throw new mt(l.userMessage??`The built-in skill availability was not changed for ${l.slug??r.skillName}.`)})}function ph(e,t){const n=e.command("local").description("List, enable or disable built-in skills, and uninstall user-installed local skills.");X(n.command("list").description("List installed local skills with their managed install metadata.")).action(async function(){const a=Y(this,t),r=await a.api.listLocalSkills();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(sh(r))}),Za(n,t,!0),Za(n,t,!1),X(n.command("uninstall").description("Uninstall one user-installed local skill by name. Built-in skills cannot be uninstalled; use `skills local disable --skill-name <name>` to stop one from loading.")).requiredOption("--skill-name <name>","Local skill name to uninstall.").action(async function(a){const r=Y(this,t),i=await r.api.uninstallLocalSkill({skillName:F(a.skillName,"--skill-name")});if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(ch(i))})}async function Zh(e,t){const n=await jt(e);if(!n||typeof n!="object"||Array.isArray(n))throw new U(`${t} must be a JSON object.`);return n}function Rh(e,t){const n=e.command("trusted").description("Manage the trusted skill provider directory.");X(n.command("list").description("List trusted skill providers.")).action(async function(){const a=Y(this,t),r=await a.api.listTrustedSkillProviders();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(ft(r))}),X(n.command("upsert").description("Create or update a trusted provider from a JSON document.")).requiredOption("--input <file>","JSON file path, or - to read from stdin.").action(async function(a){const r=Y(this,t),i=await Zh(F(a.input,"--input"),"Trusted provider input"),l=await r.api.upsertTrustedSkillProvider(i);if(r.outputJson){r.io.stdout(I(l));return}r.io.stdout(ft(l))}),X(n.command("delete").description("Delete one trusted provider by id.")).requiredOption("--provider-id <id>","Trusted provider id to delete.").action(async function(a){const r=Y(this,t),i={providerId:F(a.providerId,"--provider-id")},l=await r.api.deleteTrustedSkillProvider(i);if(r.outputJson){r.io.stdout(I(l));return}r.io.stdout(ft(l))}),X(n.command("reset").description("Reset trusted providers to the backend defaults.")).action(async function(){const a=Y(this,t),r=await a.api.resetTrustedSkillProviders();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(ft(r))})}function fh(e,t){const n=e.command("skills").description("Manage local skills, the skill gallery, and trusted providers.");ph(n,t),gh(n,t),Rh(n,t)}function K(e){const t=e?.trim();return t||void 0}function Eh(e){return{severity:K(e.severity)??"",code:K(e.code)??"",message:K(e.message)??"",relativePath:K(e.relativePath)}}function qn(e){return{id:K(e.id)??"",name:K(e.name)??"",type:K(e.type)??"",physicalPath:K(e.physicalPath)??"",gitUrl:K(e.gitUrl),createdAtUtc:K(e.createdAtUtc),updatedAtUtc:K(e.updatedAtUtc),bootstrapDiagnostics:(e.bootstrapDiagnostics??[]).map(Eh)}}function Ai(e){return{generatedAtUtc:K(e.generatedAtUtc),vaults:(e.items??[]).map(qn)}}function Vh(e){return e.length===0?`No vaults found.
158
+ ${ne([{header:"Provider ID",value:n=>n.providerId??"-"},{header:"Name",value:n=>n.displayName??"-"},{header:"Enabled",value:n=>ke(n.isEnabled)},{header:"Preset",value:n=>ke(n.isPreset)},{header:"Rules",value:n=>String(n.ruleCount??0)}],t)}
159
+ `}function Bh(e,t){const n=e.command("gallery").description("Search the skill gallery, read skill details, and start managed installs.");v(n.command("search").description("Search the skill gallery by keyword.")).option("--query <query>","Keyword to search for. Omit to list the gallery.").action(async function(a){const r=X(this,t),i=await r.api.searchSkillGallery(C(a.query));if(r.outputJson){r.io.stdout(S(i));return}r.io.stdout(Xh(i))}),v(n.command("detail").description("Show one gallery skill with installability, trust, and repository details.")).requiredOption("--id <id>","Gallery skill id.").requiredOption("--source <source>","Gallery skill source.").action(async function(a){const r=X(this,t),i=F(a.id,"--id"),s=F(a.source,"--source"),[l,c]=await Promise.allSettled([r.api.getSkillGalleryDetail(i,s),r.api.getSkillGalleryAudit(i,s)]);if(l.status==="rejected")throw l.reason;const d=l.value,h={providers:c.status==="fulfilled"?c.value?.providers??[]:[]};if(r.outputJson){r.io.stdout(S({...d,audit:h}));return}r.io.stdout(Ih(d,h))}),v(n.command("install").description("Start a managed install of one gallery skill.")).requiredOption("--id <id>","Gallery skill id.").requiredOption("--source <source>","Gallery skill source.").requiredOption("--skill-slug <slug>","Skill slug inside the source repository.").option("--version <version>","Optional version token to install.").action(async function(a){const r=X(this,t),i=await r.api.installGallerySkill({id:F(a.id,"--id"),source:F(a.source,"--source"),skillSlug:F(a.skillSlug,"--skill-slug"),version:C(a.version)});if(r.outputJson){r.io.stdout(S(i));return}r.io.stdout(yh(i))})}var Ch="The change applies to agent runs that start afterwards; a run already in progress keeps its skills.";function fa(e,t,n){const o=n?"enable":"disable";v(e.command(o).description(`${n?"Turn on":"Turn off"} one built-in skill by name. ${Ch}`)).requiredOption("--skill-name <name>",`Built-in skill name to ${o}.`).action(async function(r){const i=X(this,t),s=await i.api.setBuiltInSkillAvailability({slug:F(r.skillName,"--skill-name"),enabled:n});if(i.outputJson?i.io.stdout(S(s)):i.io.stdout(vh(s)),!s.succeeded)throw new bt(s.userMessage??`The built-in skill availability was not changed for ${s.slug??r.skillName}.`)})}function Fh(e,t){const n=e.command("local").description("List, enable or disable built-in skills, and uninstall user-installed local skills.");v(n.command("list").description("List installed local skills with their managed install metadata.")).action(async function(){const a=X(this,t),r=await a.api.listLocalSkills();if(a.outputJson){a.io.stdout(S(r));return}a.io.stdout(Wh(r))}),fa(n,t,!0),fa(n,t,!1),v(n.command("uninstall").description("Uninstall one user-installed local skill by name. Built-in skills cannot be uninstalled; use `skills local disable --skill-name <name>` to stop one from loading.")).requiredOption("--skill-name <name>","Local skill name to uninstall.").action(async function(a){const r=X(this,t),i=await r.api.uninstallLocalSkill({skillName:F(a.skillName,"--skill-name")});if(r.outputJson){r.io.stdout(S(i));return}r.io.stdout(Sh(i))})}async function wh(e,t){const n=await jt(e);if(!n||typeof n!="object"||Array.isArray(n))throw new w(`${t} must be a JSON object.`);return n}function Uh(e,t){const n=e.command("trusted").description("Manage the trusted skill provider directory.");v(n.command("list").description("List trusted skill providers.")).action(async function(){const a=X(this,t),r=await a.api.listTrustedSkillProviders();if(a.outputJson){a.io.stdout(S(r));return}a.io.stdout(Rt(r))}),v(n.command("upsert").description("Create or update a trusted provider from a JSON document.")).requiredOption("--input <file>","JSON file path, or - to read from stdin.").action(async function(a){const r=X(this,t),i=await wh(F(a.input,"--input"),"Trusted provider input"),s=await r.api.upsertTrustedSkillProvider(i);if(r.outputJson){r.io.stdout(S(s));return}r.io.stdout(Rt(s))}),v(n.command("delete").description("Delete one trusted provider by id.")).requiredOption("--provider-id <id>","Trusted provider id to delete.").action(async function(a){const r=X(this,t),i={providerId:F(a.providerId,"--provider-id")},s=await r.api.deleteTrustedSkillProvider(i);if(r.outputJson){r.io.stdout(S(s));return}r.io.stdout(Rt(s))}),v(n.command("reset").description("Reset trusted providers to the backend defaults.")).action(async function(){const a=X(this,t),r=await a.api.resetTrustedSkillProviders();if(a.outputJson){a.io.stdout(S(r));return}a.io.stdout(Rt(r))})}function Jh(e,t){const n=e.command("skills").description("Manage local skills, the skill gallery, and trusted providers.");Fh(n,t),Bh(n,t),Uh(n,t)}function K(e){const t=e?.trim();return t||void 0}function kh(e){return{severity:K(e.severity)??"",code:K(e.code)??"",message:K(e.message)??"",relativePath:K(e.relativePath)}}function to(e){return{id:K(e.id)??"",name:K(e.name)??"",type:K(e.type)??"",physicalPath:K(e.physicalPath)??"",gitUrl:K(e.gitUrl),createdAtUtc:K(e.createdAtUtc),updatedAtUtc:K(e.updatedAtUtc),bootstrapDiagnostics:(e.bootstrapDiagnostics??[]).map(kh)}}function Ei(e){return{generatedAtUtc:K(e.generatedAtUtc),vaults:(e.items??[]).map(to)}}function xh(e){return e.length===0?`No vaults found.
150
160
  `:`Vaults (${e.length})
151
161
  ${ne([{header:"Vault ID",value:t=>t.id},{header:"Type",value:t=>t.type},{header:"Name",value:t=>t.name},{header:"Path",value:t=>t.physicalPath}],e)}
152
- `}function pi(e,t=[]){return _([["id",e.id],["name",e.name],["type",e.type],["physicalPath",e.physicalPath],["gitUrl",e.gitUrl],["createdAtUtc",e.createdAtUtc],["updatedAtUtc",e.updatedAtUtc],["bootstrapDiagnostics",String(e.bootstrapDiagnostics.length)],...t])}function Gh(e){return{relativePath:K(e.relativePath)??"",fileName:K(e.fileName)??"",isDirectory:e.isDirectory===!0,extension:K(e.extension)??"",sizeBytes:typeof e.sizeBytes=="number"?e.sizeBytes:0,lastModifiedUtc:K(e.lastModifiedUtc),previewSupported:e.previewSupported===!0}}function Nh(e){return{vaultId:K(e.id)??"",deleted:e.deleted===!0,deleteLocalFilesRequested:e.deleteLocalFilesRequested===!0,localFilesDeletionStatus:K(e.localFilesDeletionStatus),localFilesDeleted:e.localFilesDeleted===!0}}function Wh(e){return`Vault deleted
153
- ${_([["vaultId",e.vaultId],["deleted",String(e.deleted)],["deleteLocalFilesRequested",String(e.deleteLocalFilesRequested)],["localFilesDeletionStatus",e.localFilesDeletionStatus],["localFilesDeleted",String(e.localFilesDeleted)]])}`}function Sh(e){return{vaultId:K(e.vaultId)??"",vaultName:K(e.vaultName)??"",physicalPath:K(e.physicalPath)??"",status:K(e.status)??"",errorCode:K(e.errorCode),message:K(e.message),isTruncated:e.isTruncated===!0,totalFileCount:typeof e.totalFileCount=="number"?e.totalFileCount:0,items:(e.items??[]).map(Gh)}}function vh(e){const t=_([["vaultId",e.vaultId],["vaultName",e.vaultName],["physicalPath",e.physicalPath],["status",e.status],["errorCode",e.errorCode],["message",e.message],["isTruncated",String(e.isTruncated)],["totalFileCount",String(e.totalFileCount)]]);return e.items.length===0?`Vault files
162
+ `}function Vi(e,t=[]){return _([["id",e.id],["name",e.name],["type",e.type],["physicalPath",e.physicalPath],["gitUrl",e.gitUrl],["createdAtUtc",e.createdAtUtc],["updatedAtUtc",e.updatedAtUtc],["bootstrapDiagnostics",String(e.bootstrapDiagnostics.length)],...t])}function Kh(e){return{relativePath:K(e.relativePath)??"",fileName:K(e.fileName)??"",isDirectory:e.isDirectory===!0,extension:K(e.extension)??"",sizeBytes:typeof e.sizeBytes=="number"?e.sizeBytes:0,lastModifiedUtc:K(e.lastModifiedUtc),previewSupported:e.previewSupported===!0}}function zh(e){return{vaultId:K(e.id)??"",deleted:e.deleted===!0,deleteLocalFilesRequested:e.deleteLocalFilesRequested===!0,localFilesDeletionStatus:K(e.localFilesDeletionStatus),localFilesDeleted:e.localFilesDeleted===!0}}function Lh(e){return`Vault deleted
163
+ ${_([["vaultId",e.vaultId],["deleted",String(e.deleted)],["deleteLocalFilesRequested",String(e.deleteLocalFilesRequested)],["localFilesDeletionStatus",e.localFilesDeletionStatus],["localFilesDeleted",String(e.localFilesDeleted)]])}`}function jh(e){return{vaultId:K(e.vaultId)??"",vaultName:K(e.vaultName)??"",physicalPath:K(e.physicalPath)??"",status:K(e.status)??"",errorCode:K(e.errorCode),message:K(e.message),isTruncated:e.isTruncated===!0,totalFileCount:typeof e.totalFileCount=="number"?e.totalFileCount:0,items:(e.items??[]).map(Kh)}}function Hh(e){const t=_([["vaultId",e.vaultId],["vaultName",e.vaultName],["physicalPath",e.physicalPath],["status",e.status],["errorCode",e.errorCode],["message",e.message],["isTruncated",String(e.isTruncated)],["totalFileCount",String(e.totalFileCount)]]);return e.items.length===0?`Vault files
154
164
  ${t}No files found.
155
165
  `:`Vault files
156
166
  ${t}${ne([{header:"Relative Path",value:n=>n.relativePath},{header:"Directory",value:n=>n.isDirectory?"yes":"no"},{header:"Extension",value:n=>n.extension},{header:"Size",value:n=>String(n.sizeBytes)},{header:"Preview",value:n=>n.previewSupported?"yes":"no"}],e.items)}
157
- `}function Xh(e){return{vaultId:K(e.vaultId)??"",vaultName:K(e.vaultName)??"",physicalPath:K(e.physicalPath)??"",relativePath:K(e.relativePath)??"",fileName:K(e.fileName)??"",extension:K(e.extension)??"",sizeBytes:typeof e.sizeBytes=="number"?e.sizeBytes:0,lastModifiedUtc:K(e.lastModifiedUtc),status:K(e.status)??"",errorCode:K(e.errorCode),message:K(e.message),previewSupported:e.previewSupported===!0,contentTruncated:e.contentTruncated===!0,content:K(e.content)}}function Yh(e){const t=_([["vaultId",e.vaultId],["vaultName",e.vaultName],["physicalPath",e.physicalPath],["relativePath",e.relativePath],["fileName",e.fileName],["extension",e.extension],["sizeBytes",String(e.sizeBytes)],["lastModifiedUtc",e.lastModifiedUtc],["status",e.status],["errorCode",e.errorCode],["message",e.message],["previewSupported",String(e.previewSupported)],["contentTruncated",String(e.contentTruncated)]]);if(!e.content)return`Vault file preview
167
+ `}function Th(e){return{vaultId:K(e.vaultId)??"",vaultName:K(e.vaultName)??"",physicalPath:K(e.physicalPath)??"",relativePath:K(e.relativePath)??"",fileName:K(e.fileName)??"",extension:K(e.extension)??"",sizeBytes:typeof e.sizeBytes=="number"?e.sizeBytes:0,lastModifiedUtc:K(e.lastModifiedUtc),status:K(e.status)??"",errorCode:K(e.errorCode),message:K(e.message),previewSupported:e.previewSupported===!0,contentTruncated:e.contentTruncated===!0,content:K(e.content)}}function Qh(e){const t=_([["vaultId",e.vaultId],["vaultName",e.vaultName],["physicalPath",e.physicalPath],["relativePath",e.relativePath],["fileName",e.fileName],["extension",e.extension],["sizeBytes",String(e.sizeBytes)],["lastModifiedUtc",e.lastModifiedUtc],["status",e.status],["errorCode",e.errorCode],["message",e.message],["previewSupported",String(e.previewSupported)],["contentTruncated",String(e.contentTruncated)]]);if(!e.content)return`Vault file preview
158
168
  ${t}`;const n=e.content.endsWith(`
159
169
  `)?"":`
160
170
  `;return`Vault file preview
161
171
  ${t}content
162
172
  -------
163
- ${e.content}${n}`}function Ih(e,t){X(e.command("create").description("Create a vault through the generated vault client.")).requiredOption("--name <name>","Vault display name.").requiredOption("--type <type>","Vault type, such as folder, obsidian, or coderef.").requiredOption("--physical-path <path>","Vault physical path.").option("--git-url <url>","Optional git remote URL for git-backed vaults.").action(async function(o){const a=Y(this,t),r=qn(await a.api.createVault({name:F(o.name,"--name"),type:F(o.type,"--type"),physicalPath:F(o.physicalPath,"--physical-path"),gitUrl:C(o.gitUrl)}));if(a.outputJson){a.io.stdout(I({vault:r}));return}a.io.stdout(`Vault created
164
- ${pi(r)}`)})}function yh(e,t){X(e.command("delete").description("Delete a vault by id and optionally request local file cleanup.")).requiredOption("--id <id>","Vault id to delete.").option("--delete-local-files","Request backend deletion of local vault files.").action(async function(o){const a=Y(this,t),r=Nh(await a.api.deleteVault(F(o.id,"--id"),o.deleteLocalFiles===!0));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Wh(r))})}function Bh(e,t){X(e.command("list").description("List files under a registered vault path.")).requiredOption("--id <id>","Vault id to browse.").option("--path <path>","Optional relative path under the vault root.").action(async function(o){const a=Y(this,t),r=Sh(await a.api.listVaultFiles(F(o.id,"--id"),C(o.path)));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(vh(r))})}function Ch(e,t){X(e.command("preview").description("Preview supported file content from a registered vault.")).requiredOption("--id <id>","Vault id to browse.").requiredOption("--path <path>","Relative file path to preview.").action(async function(o){const a=Y(this,t),r=Xh(await a.api.previewVaultFile(F(o.id,"--id"),F(o.path,"--path")));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Yh(r))})}function Fh(e,t){X(e.command("list").description("List registered vaults through the generated vault client.")).action(async function(){const o=Y(this,t),a=Ai(await o.api.listVaults());if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(Vh(a.vaults))})}function Uh(e,t){X(e.command("update").description("Update a vault by merging provided fields into the current vault snapshot.")).requiredOption("--id <id>","Vault id to update.").option("--name <name>","Updated vault display name.").option("--type <type>","Updated vault type.").option("--physical-path <path>","Updated vault physical path.").option("--git-url <url>","Updated git remote URL.").action(async function(o){const a=C(o.name),r=C(o.type),i=C(o.physicalPath),l=C(o.gitUrl);if(!a&&!r&&!i&&!l)throw new U("Provide at least one field to update: --name, --type, --physical-path, or --git-url.");const s=Y(this,t),c=F(o.id,"--id"),m=Ai(await s.api.listVaults()).vaults.find(R=>R.id===c);if(!m)throw new Ke(404,`Vault ${c} was not found in the latest vault snapshot.`);const A=qn(await s.api.updateVault(c,{name:a??m.name,type:r??m.type,physicalPath:i??m.physicalPath,gitUrl:l??m.gitUrl??null}));if(s.outputJson){s.io.stdout(I({vault:A}));return}s.io.stdout(`Vault updated
165
- ${pi(A)}`)})}function wh(e,t){const n=e.command("vault").description("Manage Hagi vaults and vault file browsing through generated backend APIs.");Fh(n,t),Ih(n,t),Uh(n,t),yh(n,t);const o=n.command("files").description("Browse registered vault files and preview supported content.");Bh(o,t),Ch(o,t)}function Jh(e){return e.includes("--json")}function Zi(e=Dr(),t=!1){const n=new Fi;return n.name("hagi").description("HagiCode CLI for project, proposal, vault, chat, HagiTask, and scheduled plan management.").showHelpAfterError().exitOverride(),n.configureOutput({writeOut:o=>{e.io.stdout(o)},writeErr:o=>{t||e.io.stderr(o)},getOutHelpWidth:()=>100,getErrHelpWidth:()=>100}),Sm(n),kb(n,e),ah(n,e),wh(n,e),Bm(n,e),Dm(n,e),mb(n,e),fh(n,e),n}function kh(e,t,n){return e.exitCode===0||e.code==="commander.helpDisplayed"||e.code==="commander.version"?0:(n&&t.io.stderr(xr({exitCode:P.USAGE,message:e.message},{json:!0})),P.USAGE)}async function xh(e=process.argv,t=Dr()){const n=Jh(e),o=Zi(t,n);try{return await o.parseAsync([...e]),0}catch(a){if(a instanceof Ci)return kh(a,t,n);const r=kr(a,{baseUrl:pu()});return t.io.stderr(xr(r,{json:n})),r.exitCode}}Object.defineProperty(exports,"EXIT_CODES",{enumerable:!0,get:function(){return P}});Object.defineProperty(exports,"createCliApp",{enumerable:!0,get:function(){return Zi}});Object.defineProperty(exports,"runCli",{enumerable:!0,get:function(){return xh}});
173
+ ${e.content}${n}`}function Mh(e,t){v(e.command("create").description("Create a vault through the generated vault client.")).requiredOption("--name <name>","Vault display name.").requiredOption("--type <type>","Vault type, such as folder, obsidian, or coderef.").requiredOption("--physical-path <path>","Vault physical path.").option("--git-url <url>","Optional git remote URL for git-backed vaults.").action(async function(o){const a=X(this,t),r=to(await a.api.createVault({name:F(o.name,"--name"),type:F(o.type,"--type"),physicalPath:F(o.physicalPath,"--physical-path"),gitUrl:C(o.gitUrl)}));if(a.outputJson){a.io.stdout(S({vault:r}));return}a.io.stdout(`Vault created
174
+ ${Vi(r)}`)})}function Oh(e,t){v(e.command("delete").description("Delete a vault by id and optionally request local file cleanup.")).requiredOption("--id <id>","Vault id to delete.").option("--delete-local-files","Request backend deletion of local vault files.").action(async function(o){const a=X(this,t),r=zh(await a.api.deleteVault(F(o.id,"--id"),o.deleteLocalFiles===!0));if(a.outputJson){a.io.stdout(S(r));return}a.io.stdout(Lh(r))})}function Dh(e,t){v(e.command("list").description("List files under a registered vault path.")).requiredOption("--id <id>","Vault id to browse.").option("--path <path>","Optional relative path under the vault root.").action(async function(o){const a=X(this,t),r=jh(await a.api.listVaultFiles(F(o.id,"--id"),C(o.path)));if(a.outputJson){a.io.stdout(S(r));return}a.io.stdout(Hh(r))})}function _h(e,t){v(e.command("preview").description("Preview supported file content from a registered vault.")).requiredOption("--id <id>","Vault id to browse.").requiredOption("--path <path>","Relative file path to preview.").action(async function(o){const a=X(this,t),r=Th(await a.api.previewVaultFile(F(o.id,"--id"),F(o.path,"--path")));if(a.outputJson){a.io.stdout(S(r));return}a.io.stdout(Qh(r))})}function Ph(e,t){v(e.command("list").description("List registered vaults through the generated vault client.")).action(async function(){const o=X(this,t),a=Ei(await o.api.listVaults());if(o.outputJson){o.io.stdout(S(a));return}o.io.stdout(xh(a.vaults))})}function $h(e,t){v(e.command("update").description("Update a vault by merging provided fields into the current vault snapshot.")).requiredOption("--id <id>","Vault id to update.").option("--name <name>","Updated vault display name.").option("--type <type>","Updated vault type.").option("--physical-path <path>","Updated vault physical path.").option("--git-url <url>","Updated git remote URL.").action(async function(o){const a=C(o.name),r=C(o.type),i=C(o.physicalPath),s=C(o.gitUrl);if(!a&&!r&&!i&&!s)throw new w("Provide at least one field to update: --name, --type, --physical-path, or --git-url.");const l=X(this,t),c=F(o.id,"--id"),d=Ei(await l.api.listVaults()).vaults.find(f=>f.id===c);if(!d)throw new ze(404,`Vault ${c} was not found in the latest vault snapshot.`);const h=to(await l.api.updateVault(c,{name:a??d.name,type:r??d.type,physicalPath:i??d.physicalPath,gitUrl:s??d.gitUrl??null}));if(l.outputJson){l.io.stdout(S({vault:h}));return}l.io.stdout(`Vault updated
175
+ ${Vi(h)}`)})}function qh(e,t){const n=e.command("vault").description("Manage Hagi vaults and vault file browsing through generated backend APIs.");Ph(n,t),Mh(n,t),$h(n,t),Oh(n,t);const o=n.command("files").description("Browse registered vault files and preview supported content.");Dh(o,t),_h(o,t)}function eg(e){return e.includes("--json")}function Gi(e=$r(),t=!1){const n=new xi;return n.name("hagi").description("HagiCode CLI for project, proposal, vault, chat, HagiTask, and scheduled plan management.").showHelpAfterError().exitOverride(),n.configureOutput({writeOut:o=>{e.io.stdout(o)},writeErr:o=>{t||e.io.stderr(o)},getOutHelpWidth:()=>100,getErrHelpWidth:()=>100}),Bm(n),qb(n,e),Eh(n,e),qh(n,e),Km(n,e),ub(n,e),vb(n,e),Jh(n,e),n}function tg(e,t,n){return e.exitCode===0||e.code==="commander.helpDisplayed"||e.code==="commander.version"?0:(n&&t.io.stderr(zr({exitCode:P.USAGE,message:e.message},{json:!0})),P.USAGE)}async function ng(e=process.argv,t=$r()){const n=eg(e),o=Gi(t,n);try{return await o.parseAsync([...e]),0}catch(a){if(a instanceof ki)return tg(a,t,n);const r=Kr(a,{baseUrl:Vu()});return t.io.stderr(zr(r,{json:n})),r.exitCode}}Object.defineProperty(exports,"EXIT_CODES",{enumerable:!0,get:function(){return P}});Object.defineProperty(exports,"createCliApp",{enumerable:!0,get:function(){return Gi}});Object.defineProperty(exports,"runCli",{enumerable:!0,get:function(){return ng}});