@sequenzy/cli 0.0.30 → 0.0.31

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.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -261,7 +261,7 @@ Check the top-level render call using <`+CI+">."}return kA}}function FC(m,kA){{i
261
261
  <%s {...props} />
262
262
  React keys must be passed directly to JSX without using spread:
263
263
  let props = %s;
264
- <%s key={someKey} {...props} />`,B0,KD,Q0,KD),LF[KD+B0]=!0}}if(m===B)pE(OQ);else tC(OQ);return OQ}}var PE=Mu;ue.Fragment=B,ue.jsxDEV=PE})()});var J9=uB(w9(),1),{program:pAA,createCommand:tAA,createArgument:oAA,createOption:eAA,CommanderError:AIA,InvalidArgumentError:IIA,InvalidOptionArgumentError:BIA,Command:H9,Argument:QIA,Option:EIA,Help:CIA}=J9.default;var R9={name:"@sequenzy/cli",version:"0.0.30",description:"Sequenzy CLI for email marketing from the terminal",type:"module",bin:{sequenzy:"./dist/index.js"},main:"./src/index.tsx",types:"./src/index.tsx",exports:{".":"./src/index.tsx"},scripts:{dev:"bun --watch src/index.tsx",build:"bun build src/index.tsx --outdir dist --target node --minify --define 'process.env.DEV=false'",start:"node dist/index.js","type-check":"tsc --noEmit",test:"bun test","test:watch":"bun test --watch",prepublishOnly:"bun run build"},dependencies:{commander:"^12.1.0",ink:"^5.0.1","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","ink-table":"^3.1.0",open:"^10.1.0",react:"^18.3.1",conf:"^13.0.0"},devDependencies:{"@types/bun":"latest","@types/node":"^22.0.0","@types/react":"^18.3.0","bun-types":"latest",typescript:"^5.8.0"},files:["dist"],keywords:["sequenzy","email","cli","marketing"],license:"MIT",repository:{type:"git",url:"https://github.com/sequenzy/sequenzy"}};import{isDeepStrictEqual as Cr}from"node:util";import cW from"node:process";import rw from"node:fs";import nW from"node:path";import UU from"node:crypto";import Dr from"node:assert";var hw=(A)=>{let I=typeof A;return A!==null&&(I==="object"||I==="function")};var H6=new Set(["__proto__","prototype","constructor"]),Qk=new Set("0123456789");function o4(A){let I=[],B="",C="start",D=!1;for(let u of A)switch(u){case"\\":{if(C==="index")throw Error("Invalid character in an index");if(C==="indexEnd")throw Error("Invalid character after an index");if(D)B+=u;C="property",D=!D;break}case".":{if(C==="index")throw Error("Invalid character in an index");if(C==="indexEnd"){C="property";break}if(D){D=!1,B+=u;break}if(H6.has(B))return[];I.push(B),B="",C="property";break}case"[":{if(C==="index")throw Error("Invalid character in an index");if(C==="indexEnd"){C="index";break}if(D){D=!1,B+=u;break}if(C==="property"){if(H6.has(B))return[];I.push(B),B=""}C="index";break}case"]":{if(C==="index"){I.push(Number.parseInt(B,10)),B="",C="indexEnd";break}if(C==="indexEnd")throw Error("Invalid character after an index")}default:{if(C==="index"&&!Qk.has(u))throw Error("Invalid character in an index");if(C==="indexEnd")throw Error("Invalid character after an index");if(C==="start")C="property";if(D)D=!1,B+="\\";B+=u}}if(D)B+="\\";switch(C){case"property":{if(H6.has(B))return[];I.push(B);break}case"index":throw Error("Index was not closed");case"start":{I.push("");break}}return I}function R6(A,I){if(typeof I!=="number"&&Array.isArray(A)){let B=Number.parseInt(I,10);return Number.isInteger(B)&&A[B]===A[I]}return!1}function U9(A,I){if(R6(A,I))throw Error("Cannot use string index")}function q9(A,I,B){if(!hw(A)||typeof I!=="string")return B===void 0?A:B;let C=o4(I);if(C.length===0)return B;for(let D=0;D<C.length;D++){let u=C[D];if(R6(A,u))A=D===C.length-1?void 0:null;else A=A[u];if(A===void 0||A===null){if(D!==C.length-1)return B;break}}return A===void 0?B:A}function U6(A,I,B){if(!hw(A)||typeof I!=="string")return A;let C=A,D=o4(I);for(let u=0;u<D.length;u++){let H=D[u];if(U9(A,H),u===D.length-1)A[H]=B;else if(!hw(A[H]))A[H]=typeof D[u+1]==="number"?[]:{};A=A[H]}return C}function N9(A,I){if(!hw(A)||typeof I!=="string")return!1;let B=o4(I);for(let C=0;C<B.length;C++){let D=B[C];if(U9(A,D),C===B.length-1)return delete A[D],!0;if(A=A[D],!hw(A))return!1}}function K9(A,I){if(!hw(A)||typeof I!=="string")return!1;let B=o4(I);if(B.length===0)return!1;for(let C of B){if(!hw(A)||!(C in A)||R6(A,C))return!1;A=A[C]}return!0}import fE from"node:path";import M9 from"node:os";import q6 from"node:process";var UG=M9.homedir(),N6=M9.tmpdir(),{env:o8}=q6,Ek=(A)=>{let I=fE.join(UG,"Library");return{data:fE.join(I,"Application Support",A),config:fE.join(I,"Preferences",A),cache:fE.join(I,"Caches",A),log:fE.join(I,"Logs",A),temp:fE.join(N6,A)}},Ck=(A)=>{let I=o8.APPDATA||fE.join(UG,"AppData","Roaming"),B=o8.LOCALAPPDATA||fE.join(UG,"AppData","Local");return{data:fE.join(B,A,"Data"),config:fE.join(I,A,"Config"),cache:fE.join(B,A,"Cache"),log:fE.join(B,A,"Log"),temp:fE.join(N6,A)}},Dk=(A)=>{let I=fE.basename(UG);return{data:fE.join(o8.XDG_DATA_HOME||fE.join(UG,".local","share"),A),config:fE.join(o8.XDG_CONFIG_HOME||fE.join(UG,".config"),A),cache:fE.join(o8.XDG_CACHE_HOME||fE.join(UG,".cache"),A),log:fE.join(o8.XDG_STATE_HOME||fE.join(UG,".local","state"),A),temp:fE.join(N6,I,A)}};function K6(A,{suffix:I="nodejs"}={}){if(typeof A!=="string")throw TypeError(`Expected a string, got ${typeof A}`);if(I)A+=`-${I}`;if(q6.platform==="darwin")return Ek(A);if(q6.platform==="win32")return Ck(A);return Dk(A)}import Rk from"node:path";import NQ from"node:fs";import{promisify as wD}from"node:util";var gk=(A,I)=>{let{onError:B}=I;return function(...D){return A.apply(void 0,D).catch(B)}},gF=gk;var Fk=(A,I)=>{let{onError:B}=I;return function(...D){try{return A.apply(void 0,D)}catch(u){return B(u)}}},S0=Fk;var L9=250;var uk=(A,I)=>{let{isRetriable:B}=I;return function(D){let{timeout:u}=D,H=D.interval??L9,R=Date.now()+u;return function K(...M){return A.apply(void 0,M).catch((z)=>{if(!B(z))throw z;if(Date.now()>=R)throw z;let y=Math.round(H*Math.random());if(y>0)return new Promise((V)=>setTimeout(V,y)).then(()=>K.apply(void 0,M));else return K.apply(void 0,M)})}}},FF=uk;var Gk=(A,I)=>{let{isRetriable:B}=I;return function(D){let{timeout:u}=D,H=Date.now()+u;return function(...K){while(!0)try{return A.apply(void 0,K)}catch(M){if(!B(M))throw M;if(Date.now()>=H)throw M;continue}}}},uF=Gk;import S9 from"node:process";var TR={isChangeErrorOk:(A)=>{if(!TR.isNodeError(A))return!1;let{code:I}=A;if(I==="ENOSYS")return!0;if(!Y9&&(I==="EINVAL"||I==="EPERM"))return!0;return!1},isNodeError:(A)=>{return A instanceof Error},isRetriableError:(A)=>{if(!TR.isNodeError(A))return!1;let{code:I}=A;if(I==="EMFILE"||I==="ENFILE"||I==="EAGAIN"||I==="EBUSY"||I==="EACCESS"||I==="EACCES"||I==="EACCS"||I==="EPERM")return!0;return!1},onChangeError:(A)=>{if(!TR.isNodeError(A))throw A;if(TR.isChangeErrorOk(A))return;throw A}},M6=TR;var kR={onError:M6.onChangeError},pD={onError:()=>{return}},Y9=S9.getuid?!S9.getuid():!1,dC={isRetriable:M6.isRetriableError};var wk={attempt:{chmod:gF(wD(NQ.chmod),kR),chown:gF(wD(NQ.chown),kR),close:gF(wD(NQ.close),pD),fsync:gF(wD(NQ.fsync),pD),mkdir:gF(wD(NQ.mkdir),pD),realpath:gF(wD(NQ.realpath),pD),stat:gF(wD(NQ.stat),pD),unlink:gF(wD(NQ.unlink),pD),chmodSync:S0(NQ.chmodSync,kR),chownSync:S0(NQ.chownSync,kR),closeSync:S0(NQ.closeSync,pD),existsSync:S0(NQ.existsSync,pD),fsyncSync:S0(NQ.fsync,pD),mkdirSync:S0(NQ.mkdirSync,pD),realpathSync:S0(NQ.realpathSync,pD),statSync:S0(NQ.statSync,pD),unlinkSync:S0(NQ.unlinkSync,pD)},retry:{close:FF(wD(NQ.close),dC),fsync:FF(wD(NQ.fsync),dC),open:FF(wD(NQ.open),dC),readFile:FF(wD(NQ.readFile),dC),rename:FF(wD(NQ.rename),dC),stat:FF(wD(NQ.stat),dC),write:FF(wD(NQ.write),dC),writeFile:FF(wD(NQ.writeFile),dC),closeSync:uF(NQ.closeSync,dC),fsyncSync:uF(NQ.fsyncSync,dC),openSync:uF(NQ.openSync,dC),readFileSync:uF(NQ.readFileSync,dC),renameSync:uF(NQ.renameSync,dC),statSync:uF(NQ.statSync,dC),writeSync:uF(NQ.writeSync,dC),writeFileSync:uF(NQ.writeFileSync,dC)}},jC=wk;import _w from"node:process";var Z9="utf8",L6=438,z9=511;var X9={},$9=_w.geteuid?_w.geteuid():-1,W9=_w.getegid?_w.getegid():-1;var O9=1000,y9=!!_w.getuid,bIA=_w.getuid?!_w.getuid():!1,Y6=128;var V9=(A)=>{return A instanceof Error&&"code"in A};var S6=(A)=>{return typeof A==="string"},e4=(A)=>{return A===void 0};import Hk from"node:path";import e8 from"node:process";import f9 from"node:process";var j9=f9.platform==="linux",A2=f9.platform==="win32";var Z6=["SIGHUP","SIGINT","SIGTERM"];if(!A2)Z6.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(j9)Z6.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var P9=Z6;class T9{constructor(){this.callbacks=new Set,this.exited=!1,this.exit=(A)=>{if(this.exited)return;this.exited=!0;for(let I of this.callbacks)I();if(A)if(A2&&(A!=="SIGINT"&&A!=="SIGTERM"&&A!=="SIGKILL"))e8.kill(e8.pid,"SIGTERM");else e8.kill(e8.pid,A)},this.hook=()=>{e8.once("exit",()=>this.exit());for(let A of P9)try{e8.once(A,()=>this.exit(A))}catch{}},this.register=(A)=>{return this.callbacks.add(A),()=>{this.callbacks.delete(A)}},this.hook()}}var k9=new T9;var Jk=k9.register,b9=Jk;var Zg={store:{},create:(A)=>{let I=`000000${Math.floor(Math.random()*16777215).toString(16)}`.slice(-6),B=Date.now().toString().slice(-10),C="tmp-",D=`.tmp-${B}${I}`;return`${A}${D}`},get:(A,I,B=!0)=>{let C=Zg.truncate(I(A));if(C in Zg.store)return Zg.get(A,I,B);return Zg.store[C]=B,[C,()=>delete Zg.store[C]]},purge:(A)=>{if(!Zg.store[A])return;delete Zg.store[A],jC.attempt.unlink(A)},purgeSync:(A)=>{if(!Zg.store[A])return;delete Zg.store[A],jC.attempt.unlinkSync(A)},purgeSyncAll:()=>{for(let A in Zg.store)Zg.purgeSync(A)},truncate:(A)=>{let I=Hk.basename(A);if(I.length<=Y6)return A;let B=/^(\.?)(.*?)((?:\.[^.]+)?(?:\.tmp-\d{10}[a-f0-9]{6})?)$/.exec(I);if(!B)return A;let C=I.length-Y6;return`${A.slice(0,-I.length)}${B[1]}${B[2].slice(0,-C)}${B[3]}`}};b9(Zg.purgeSyncAll);var bR=Zg;function z6(A,I,B=X9){if(S6(B))return z6(A,I,{encoding:B});let D={timeout:B.timeout??O9},u=null,H=null,R=null;try{let K=jC.attempt.realpathSync(A),M=!!K;A=K||A,[H,u]=bR.get(A,B.tmpCreate||bR.create,B.tmpPurge!==!1);let z=y9&&e4(B.chown),y=e4(B.mode);if(M&&(z||y)){let Z=jC.attempt.statSync(A);if(Z){if(B={...B},z)B.chown={uid:Z.uid,gid:Z.gid};if(y)B.mode=Z.mode}}if(!M){let Z=Rk.dirname(A);jC.attempt.mkdirSync(Z,{mode:z9,recursive:!0})}if(R=jC.retry.openSync(D)(H,"w",B.mode||L6),B.tmpCreated)B.tmpCreated(H);if(S6(I))jC.retry.writeSync(D)(R,I,0,B.encoding||Z9);else if(!e4(I))jC.retry.writeSync(D)(R,I,0,I.length,0);if(B.fsync!==!1)if(B.fsyncWait!==!1)jC.retry.fsyncSync(D)(R);else jC.attempt.fsync(R);if(jC.retry.closeSync(D)(R),R=null,B.chown&&(B.chown.uid!==$9||B.chown.gid!==W9))jC.attempt.chownSync(H,B.chown.uid,B.chown.gid);if(B.mode&&B.mode!==L6)jC.attempt.chmodSync(H,B.mode);try{jC.retry.renameSync(D)(H,A)}catch(Z){if(!V9(Z))throw Z;if(Z.code!=="ENAMETOOLONG")throw Z;jC.retry.renameSync(D)(H,bR.truncate(A))}u(),H=null}finally{if(R)jC.attempt.closeSync(R);if(H)bR.purge(H)}}var sW=uB(O7(),1),rW=uB(p7(),1);var tc=(A,I,B,C)=>{if(B==="length"||B==="prototype")return;if(B==="arguments"||B==="caller")return;let D=Object.getOwnPropertyDescriptor(A,B),u=Object.getOwnPropertyDescriptor(I,B);if(!oc(D,u)&&C)return;Object.defineProperty(A,B,u)},oc=function(A,I){return A===void 0||A.configurable||A.writable===I.writable&&A.enumerable===I.enumerable&&A.configurable===I.configurable&&(A.writable||A.value===I.value)},ec=(A,I)=>{let B=Object.getPrototypeOf(I);if(B===Object.getPrototypeOf(A))return;Object.setPrototypeOf(A,B)},An=(A,I)=>`/* Wrapped ${A}*/
264
+ <%s key={someKey} {...props} />`,B0,KD,Q0,KD),LF[KD+B0]=!0}}if(m===B)pE(OQ);else tC(OQ);return OQ}}var PE=Mu;ue.Fragment=B,ue.jsxDEV=PE})()});var J9=uB(w9(),1),{program:pAA,createCommand:tAA,createArgument:oAA,createOption:eAA,CommanderError:AIA,InvalidArgumentError:IIA,InvalidOptionArgumentError:BIA,Command:H9,Argument:QIA,Option:EIA,Help:CIA}=J9.default;var R9={name:"@sequenzy/cli",version:"0.0.31",description:"Sequenzy CLI for email marketing from the terminal",type:"module",bin:{sequenzy:"./dist/index.js"},main:"./src/index.tsx",types:"./src/index.tsx",exports:{".":"./src/index.tsx"},scripts:{dev:"bun --watch src/index.tsx",build:"bun build src/index.tsx --outdir dist --target node --minify --define 'process.env.DEV=false'",start:"node dist/index.js","type-check":"tsc --noEmit",test:"bun test","test:watch":"bun test --watch",prepublishOnly:"bun run build"},dependencies:{commander:"^12.1.0",ink:"^5.0.1","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","ink-select-input":"^6.0.0","ink-table":"^3.1.0",open:"^10.1.0",react:"^18.3.1",conf:"^13.0.0"},devDependencies:{"@types/bun":"latest","@types/node":"^22.0.0","@types/react":"^18.3.0","bun-types":"latest",typescript:"^5.8.0"},files:["dist"],keywords:["sequenzy","email","cli","marketing"],license:"MIT",repository:{type:"git",url:"https://github.com/sequenzy/sequenzy"}};import{isDeepStrictEqual as Cr}from"node:util";import cW from"node:process";import rw from"node:fs";import nW from"node:path";import UU from"node:crypto";import Dr from"node:assert";var hw=(A)=>{let I=typeof A;return A!==null&&(I==="object"||I==="function")};var H6=new Set(["__proto__","prototype","constructor"]),Qk=new Set("0123456789");function o4(A){let I=[],B="",C="start",D=!1;for(let u of A)switch(u){case"\\":{if(C==="index")throw Error("Invalid character in an index");if(C==="indexEnd")throw Error("Invalid character after an index");if(D)B+=u;C="property",D=!D;break}case".":{if(C==="index")throw Error("Invalid character in an index");if(C==="indexEnd"){C="property";break}if(D){D=!1,B+=u;break}if(H6.has(B))return[];I.push(B),B="",C="property";break}case"[":{if(C==="index")throw Error("Invalid character in an index");if(C==="indexEnd"){C="index";break}if(D){D=!1,B+=u;break}if(C==="property"){if(H6.has(B))return[];I.push(B),B=""}C="index";break}case"]":{if(C==="index"){I.push(Number.parseInt(B,10)),B="",C="indexEnd";break}if(C==="indexEnd")throw Error("Invalid character after an index")}default:{if(C==="index"&&!Qk.has(u))throw Error("Invalid character in an index");if(C==="indexEnd")throw Error("Invalid character after an index");if(C==="start")C="property";if(D)D=!1,B+="\\";B+=u}}if(D)B+="\\";switch(C){case"property":{if(H6.has(B))return[];I.push(B);break}case"index":throw Error("Index was not closed");case"start":{I.push("");break}}return I}function R6(A,I){if(typeof I!=="number"&&Array.isArray(A)){let B=Number.parseInt(I,10);return Number.isInteger(B)&&A[B]===A[I]}return!1}function U9(A,I){if(R6(A,I))throw Error("Cannot use string index")}function q9(A,I,B){if(!hw(A)||typeof I!=="string")return B===void 0?A:B;let C=o4(I);if(C.length===0)return B;for(let D=0;D<C.length;D++){let u=C[D];if(R6(A,u))A=D===C.length-1?void 0:null;else A=A[u];if(A===void 0||A===null){if(D!==C.length-1)return B;break}}return A===void 0?B:A}function U6(A,I,B){if(!hw(A)||typeof I!=="string")return A;let C=A,D=o4(I);for(let u=0;u<D.length;u++){let H=D[u];if(U9(A,H),u===D.length-1)A[H]=B;else if(!hw(A[H]))A[H]=typeof D[u+1]==="number"?[]:{};A=A[H]}return C}function N9(A,I){if(!hw(A)||typeof I!=="string")return!1;let B=o4(I);for(let C=0;C<B.length;C++){let D=B[C];if(U9(A,D),C===B.length-1)return delete A[D],!0;if(A=A[D],!hw(A))return!1}}function K9(A,I){if(!hw(A)||typeof I!=="string")return!1;let B=o4(I);if(B.length===0)return!1;for(let C of B){if(!hw(A)||!(C in A)||R6(A,C))return!1;A=A[C]}return!0}import fE from"node:path";import M9 from"node:os";import q6 from"node:process";var UG=M9.homedir(),N6=M9.tmpdir(),{env:o8}=q6,Ek=(A)=>{let I=fE.join(UG,"Library");return{data:fE.join(I,"Application Support",A),config:fE.join(I,"Preferences",A),cache:fE.join(I,"Caches",A),log:fE.join(I,"Logs",A),temp:fE.join(N6,A)}},Ck=(A)=>{let I=o8.APPDATA||fE.join(UG,"AppData","Roaming"),B=o8.LOCALAPPDATA||fE.join(UG,"AppData","Local");return{data:fE.join(B,A,"Data"),config:fE.join(I,A,"Config"),cache:fE.join(B,A,"Cache"),log:fE.join(B,A,"Log"),temp:fE.join(N6,A)}},Dk=(A)=>{let I=fE.basename(UG);return{data:fE.join(o8.XDG_DATA_HOME||fE.join(UG,".local","share"),A),config:fE.join(o8.XDG_CONFIG_HOME||fE.join(UG,".config"),A),cache:fE.join(o8.XDG_CACHE_HOME||fE.join(UG,".cache"),A),log:fE.join(o8.XDG_STATE_HOME||fE.join(UG,".local","state"),A),temp:fE.join(N6,I,A)}};function K6(A,{suffix:I="nodejs"}={}){if(typeof A!=="string")throw TypeError(`Expected a string, got ${typeof A}`);if(I)A+=`-${I}`;if(q6.platform==="darwin")return Ek(A);if(q6.platform==="win32")return Ck(A);return Dk(A)}import Rk from"node:path";import NQ from"node:fs";import{promisify as wD}from"node:util";var gk=(A,I)=>{let{onError:B}=I;return function(...D){return A.apply(void 0,D).catch(B)}},gF=gk;var Fk=(A,I)=>{let{onError:B}=I;return function(...D){try{return A.apply(void 0,D)}catch(u){return B(u)}}},S0=Fk;var L9=250;var uk=(A,I)=>{let{isRetriable:B}=I;return function(D){let{timeout:u}=D,H=D.interval??L9,R=Date.now()+u;return function K(...M){return A.apply(void 0,M).catch((z)=>{if(!B(z))throw z;if(Date.now()>=R)throw z;let y=Math.round(H*Math.random());if(y>0)return new Promise((V)=>setTimeout(V,y)).then(()=>K.apply(void 0,M));else return K.apply(void 0,M)})}}},FF=uk;var Gk=(A,I)=>{let{isRetriable:B}=I;return function(D){let{timeout:u}=D,H=Date.now()+u;return function(...K){while(!0)try{return A.apply(void 0,K)}catch(M){if(!B(M))throw M;if(Date.now()>=H)throw M;continue}}}},uF=Gk;import S9 from"node:process";var TR={isChangeErrorOk:(A)=>{if(!TR.isNodeError(A))return!1;let{code:I}=A;if(I==="ENOSYS")return!0;if(!Y9&&(I==="EINVAL"||I==="EPERM"))return!0;return!1},isNodeError:(A)=>{return A instanceof Error},isRetriableError:(A)=>{if(!TR.isNodeError(A))return!1;let{code:I}=A;if(I==="EMFILE"||I==="ENFILE"||I==="EAGAIN"||I==="EBUSY"||I==="EACCESS"||I==="EACCES"||I==="EACCS"||I==="EPERM")return!0;return!1},onChangeError:(A)=>{if(!TR.isNodeError(A))throw A;if(TR.isChangeErrorOk(A))return;throw A}},M6=TR;var kR={onError:M6.onChangeError},pD={onError:()=>{return}},Y9=S9.getuid?!S9.getuid():!1,dC={isRetriable:M6.isRetriableError};var wk={attempt:{chmod:gF(wD(NQ.chmod),kR),chown:gF(wD(NQ.chown),kR),close:gF(wD(NQ.close),pD),fsync:gF(wD(NQ.fsync),pD),mkdir:gF(wD(NQ.mkdir),pD),realpath:gF(wD(NQ.realpath),pD),stat:gF(wD(NQ.stat),pD),unlink:gF(wD(NQ.unlink),pD),chmodSync:S0(NQ.chmodSync,kR),chownSync:S0(NQ.chownSync,kR),closeSync:S0(NQ.closeSync,pD),existsSync:S0(NQ.existsSync,pD),fsyncSync:S0(NQ.fsync,pD),mkdirSync:S0(NQ.mkdirSync,pD),realpathSync:S0(NQ.realpathSync,pD),statSync:S0(NQ.statSync,pD),unlinkSync:S0(NQ.unlinkSync,pD)},retry:{close:FF(wD(NQ.close),dC),fsync:FF(wD(NQ.fsync),dC),open:FF(wD(NQ.open),dC),readFile:FF(wD(NQ.readFile),dC),rename:FF(wD(NQ.rename),dC),stat:FF(wD(NQ.stat),dC),write:FF(wD(NQ.write),dC),writeFile:FF(wD(NQ.writeFile),dC),closeSync:uF(NQ.closeSync,dC),fsyncSync:uF(NQ.fsyncSync,dC),openSync:uF(NQ.openSync,dC),readFileSync:uF(NQ.readFileSync,dC),renameSync:uF(NQ.renameSync,dC),statSync:uF(NQ.statSync,dC),writeSync:uF(NQ.writeSync,dC),writeFileSync:uF(NQ.writeFileSync,dC)}},jC=wk;import _w from"node:process";var Z9="utf8",L6=438,z9=511;var X9={},$9=_w.geteuid?_w.geteuid():-1,W9=_w.getegid?_w.getegid():-1;var O9=1000,y9=!!_w.getuid,bIA=_w.getuid?!_w.getuid():!1,Y6=128;var V9=(A)=>{return A instanceof Error&&"code"in A};var S6=(A)=>{return typeof A==="string"},e4=(A)=>{return A===void 0};import Hk from"node:path";import e8 from"node:process";import f9 from"node:process";var j9=f9.platform==="linux",A2=f9.platform==="win32";var Z6=["SIGHUP","SIGINT","SIGTERM"];if(!A2)Z6.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(j9)Z6.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var P9=Z6;class T9{constructor(){this.callbacks=new Set,this.exited=!1,this.exit=(A)=>{if(this.exited)return;this.exited=!0;for(let I of this.callbacks)I();if(A)if(A2&&(A!=="SIGINT"&&A!=="SIGTERM"&&A!=="SIGKILL"))e8.kill(e8.pid,"SIGTERM");else e8.kill(e8.pid,A)},this.hook=()=>{e8.once("exit",()=>this.exit());for(let A of P9)try{e8.once(A,()=>this.exit(A))}catch{}},this.register=(A)=>{return this.callbacks.add(A),()=>{this.callbacks.delete(A)}},this.hook()}}var k9=new T9;var Jk=k9.register,b9=Jk;var Zg={store:{},create:(A)=>{let I=`000000${Math.floor(Math.random()*16777215).toString(16)}`.slice(-6),B=Date.now().toString().slice(-10),C="tmp-",D=`.tmp-${B}${I}`;return`${A}${D}`},get:(A,I,B=!0)=>{let C=Zg.truncate(I(A));if(C in Zg.store)return Zg.get(A,I,B);return Zg.store[C]=B,[C,()=>delete Zg.store[C]]},purge:(A)=>{if(!Zg.store[A])return;delete Zg.store[A],jC.attempt.unlink(A)},purgeSync:(A)=>{if(!Zg.store[A])return;delete Zg.store[A],jC.attempt.unlinkSync(A)},purgeSyncAll:()=>{for(let A in Zg.store)Zg.purgeSync(A)},truncate:(A)=>{let I=Hk.basename(A);if(I.length<=Y6)return A;let B=/^(\.?)(.*?)((?:\.[^.]+)?(?:\.tmp-\d{10}[a-f0-9]{6})?)$/.exec(I);if(!B)return A;let C=I.length-Y6;return`${A.slice(0,-I.length)}${B[1]}${B[2].slice(0,-C)}${B[3]}`}};b9(Zg.purgeSyncAll);var bR=Zg;function z6(A,I,B=X9){if(S6(B))return z6(A,I,{encoding:B});let D={timeout:B.timeout??O9},u=null,H=null,R=null;try{let K=jC.attempt.realpathSync(A),M=!!K;A=K||A,[H,u]=bR.get(A,B.tmpCreate||bR.create,B.tmpPurge!==!1);let z=y9&&e4(B.chown),y=e4(B.mode);if(M&&(z||y)){let Z=jC.attempt.statSync(A);if(Z){if(B={...B},z)B.chown={uid:Z.uid,gid:Z.gid};if(y)B.mode=Z.mode}}if(!M){let Z=Rk.dirname(A);jC.attempt.mkdirSync(Z,{mode:z9,recursive:!0})}if(R=jC.retry.openSync(D)(H,"w",B.mode||L6),B.tmpCreated)B.tmpCreated(H);if(S6(I))jC.retry.writeSync(D)(R,I,0,B.encoding||Z9);else if(!e4(I))jC.retry.writeSync(D)(R,I,0,I.length,0);if(B.fsync!==!1)if(B.fsyncWait!==!1)jC.retry.fsyncSync(D)(R);else jC.attempt.fsync(R);if(jC.retry.closeSync(D)(R),R=null,B.chown&&(B.chown.uid!==$9||B.chown.gid!==W9))jC.attempt.chownSync(H,B.chown.uid,B.chown.gid);if(B.mode&&B.mode!==L6)jC.attempt.chmodSync(H,B.mode);try{jC.retry.renameSync(D)(H,A)}catch(Z){if(!V9(Z))throw Z;if(Z.code!=="ENAMETOOLONG")throw Z;jC.retry.renameSync(D)(H,bR.truncate(A))}u(),H=null}finally{if(R)jC.attempt.closeSync(R);if(H)bR.purge(H)}}var sW=uB(O7(),1),rW=uB(p7(),1);var tc=(A,I,B,C)=>{if(B==="length"||B==="prototype")return;if(B==="arguments"||B==="caller")return;let D=Object.getOwnPropertyDescriptor(A,B),u=Object.getOwnPropertyDescriptor(I,B);if(!oc(D,u)&&C)return;Object.defineProperty(A,B,u)},oc=function(A,I){return A===void 0||A.configurable||A.writable===I.writable&&A.enumerable===I.enumerable&&A.configurable===I.configurable&&(A.writable||A.value===I.value)},ec=(A,I)=>{let B=Object.getPrototypeOf(I);if(B===Object.getPrototypeOf(A))return;Object.setPrototypeOf(A,B)},An=(A,I)=>`/* Wrapped ${A}*/
265
265
  ${I}`,In=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),Bn=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),Qn=(A,I,B)=>{let C=B===""?"":`with ${B.trim()}() `,D=An.bind(null,C,I.toString());Object.defineProperty(D,"name",Bn);let{writable:u,enumerable:H,configurable:R}=In;Object.defineProperty(A,"toString",{value:D,writable:u,enumerable:H,configurable:R})};function _M(A,I,{ignoreNonConfigurable:B=!1}={}){let{name:C}=A;for(let D of Reflect.ownKeys(I))tc(A,I,D,B);return ec(A,I),Qn(A,I,C),A}var En=(A,I={})=>{if(typeof A!=="function")throw TypeError(`Expected the first argument to be a function, got \`${typeof A}\``);let{wait:B=0,maxWait:C=Number.POSITIVE_INFINITY,before:D=!1,after:u=!0}=I;if(B<0||C<0)throw RangeError("`wait` and `maxWait` must not be negative.");if(!D&&!u)throw Error("Both `before` and `after` are false, function wouldn't be called.");let H,R,K,M=function(...z){let y=this,Z=()=>{if(H=void 0,R)clearTimeout(R),R=void 0;if(u)K=A.apply(y,z)},V=()=>{if(R=void 0,H)clearTimeout(H),H=void 0;if(u)K=A.apply(y,z)},v=D&&!H;if(clearTimeout(H),H=setTimeout(Z,B),C>0&&C!==Number.POSITIVE_INFINITY&&!R)R=setTimeout(V,C);if(v)K=A.apply(y,z);return K};return _M(M,A),M.cancel=()=>{if(H)clearTimeout(H),H=void 0;if(R)clearTimeout(R),R=void 0},M},xM=En;var aw=uB(xW(),1);var os=Object.prototype.toString;function iW(A,I,B){if(!A)return!1;if(A.constructor===I)return!0;return os.call(A)===B}function mW(A){return iW(A,Uint8Array,"[object Uint8Array]")}function es(A){return iW(A,ArrayBuffer,"[object ArrayBuffer]")}function Ar(A){return mW(A)||es(A)}function Ir(A){if(!mW(A))throw TypeError(`Expected \`Uint8Array\`, got \`${typeof A}\``)}function Br(A){if(!Ar(A))throw TypeError(`Expected \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof A}\``)}function BL(A,I){if(A.length===0)return new Uint8Array(0);I??=A.reduce((D,u)=>D+u.length,0);let B=new Uint8Array(I),C=0;for(let D of A)Ir(D),B.set(D,C),C+=D.length;return B}var lW={utf8:new globalThis.TextDecoder("utf8")};function QL(A,I="utf8"){return Br(A),lW[I]??=new globalThis.TextDecoder(I),lW[I].decode(A)}function Qr(A){if(typeof A!=="string")throw TypeError(`Expected \`string\`, got \`${typeof A}\``)}var Er=new globalThis.TextEncoder;function o2(A){return Qr(A),Er.encode(A)}var ZCA=Array.from({length:256},(A,I)=>I.toString(16).padStart(2,"0"));var gr=rW.default.default,dW="aes-256-cbc",UJ=()=>Object.create(null),Fr=(A)=>A!==void 0&&A!==null,ur=(A,I)=>{let B=new Set(["undefined","symbol","function"]),C=typeof I;if(B.has(C))throw TypeError(`Setting a value of type \`${C}\` for key \`${A}\` is not allowed as it's not supported by JSON`)},e2="__internal__",EL=`${e2}.migrations.version`;class Aq{path;events;#Q;#I;#A;#B={};constructor(A={}){let I={configName:"config",fileExtension:"json",projectSuffix:"nodejs",clearInvalidConfig:!1,accessPropertiesByDotNotation:!0,configFileMode:438,...A};if(!I.cwd){if(!I.projectName)throw Error("Please specify the `projectName` option.");I.cwd=K6(I.projectName,{suffix:I.projectSuffix}).config}if(this.#A=I,I.schema??I.ajvOptions??I.rootSchema){if(I.schema&&typeof I.schema!=="object")throw TypeError("The `schema` option must be an object.");let u=new sW.Ajv2020({allErrors:!0,useDefaults:!0,...I.ajvOptions});gr(u);let H={...I.rootSchema,type:"object",properties:I.schema};this.#Q=u.compile(H);for(let[R,K]of Object.entries(I.schema??{}))if(K?.default)this.#B[R]=K.default}if(I.defaults)this.#B={...this.#B,...I.defaults};if(I.serialize)this._serialize=I.serialize;if(I.deserialize)this._deserialize=I.deserialize;this.events=new EventTarget,this.#I=I.encryptionKey;let B=I.fileExtension?`.${I.fileExtension}`:"";this.path=nW.resolve(I.cwd,`${I.configName??"config"}${B}`);let C=this.store,D=Object.assign(UJ(),I.defaults,C);if(I.migrations){if(!I.projectVersion)throw Error("Please specify the `projectVersion` option.");this._migrate(I.migrations,I.projectVersion,I.beforeEachMigration)}this._validate(D);try{Dr.deepEqual(C,D)}catch{this.store=D}if(I.watch)this._watch()}get(A,I){if(this.#A.accessPropertiesByDotNotation)return this._get(A,I);let{store:B}=this;return A in B?B[A]:I}set(A,I){if(typeof A!=="string"&&typeof A!=="object")throw TypeError(`Expected \`key\` to be of type \`string\` or \`object\`, got ${typeof A}`);if(typeof A!=="object"&&I===void 0)throw TypeError("Use `delete()` to clear values");if(this._containsReservedKey(A))throw TypeError(`Please don't use the ${e2} key, as it's used to manage this module internal operations.`);let{store:B}=this,C=(D,u)=>{if(ur(D,u),this.#A.accessPropertiesByDotNotation)U6(B,D,u);else B[D]=u};if(typeof A==="object"){let D=A;for(let[u,H]of Object.entries(D))C(u,H)}else C(A,I);this.store=B}has(A){if(this.#A.accessPropertiesByDotNotation)return K9(this.store,A);return A in this.store}reset(...A){for(let I of A)if(Fr(this.#B[I]))this.set(I,this.#B[I])}delete(A){let{store:I}=this;if(this.#A.accessPropertiesByDotNotation)N9(I,A);else delete I[A];this.store=I}clear(){this.store=UJ();for(let A of Object.keys(this.#B))this.reset(A)}onDidChange(A,I){if(typeof A!=="string")throw TypeError(`Expected \`key\` to be of type \`string\`, got ${typeof A}`);if(typeof I!=="function")throw TypeError(`Expected \`callback\` to be of type \`function\`, got ${typeof I}`);return this._handleChange(()=>this.get(A),I)}onDidAnyChange(A){if(typeof A!=="function")throw TypeError(`Expected \`callback\` to be of type \`function\`, got ${typeof A}`);return this._handleChange(()=>this.store,A)}get size(){return Object.keys(this.store).length}get store(){try{let A=rw.readFileSync(this.path,this.#I?null:"utf8"),I=this._encryptData(A),B=this._deserialize(I);return this._validate(B),Object.assign(UJ(),B)}catch(A){if(A?.code==="ENOENT")return this._ensureDirectory(),UJ();if(this.#A.clearInvalidConfig&&A.name==="SyntaxError")return UJ();throw A}}set store(A){this._ensureDirectory(),this._validate(A),this._write(A),this.events.dispatchEvent(new Event("change"))}*[Symbol.iterator](){for(let[A,I]of Object.entries(this.store))yield[A,I]}_encryptData(A){if(!this.#I)return typeof A==="string"?A:QL(A);try{let I=A.slice(0,16),B=UU.pbkdf2Sync(this.#I,I.toString(),1e4,32,"sha512"),C=UU.createDecipheriv(dW,B,I),D=A.slice(17),u=typeof D==="string"?o2(D):D;return QL(BL([C.update(u),C.final()]))}catch{}return A.toString()}_handleChange(A,I){let B=A(),C=()=>{let D=B,u=A();if(Cr(u,D))return;B=u,I.call(this,u,D)};return this.events.addEventListener("change",C),()=>{this.events.removeEventListener("change",C)}}_deserialize=(A)=>JSON.parse(A);_serialize=(A)=>JSON.stringify(A,void 0,"\t");_validate(A){if(!this.#Q)return;if(this.#Q(A)||!this.#Q.errors)return;let B=this.#Q.errors.map(({instancePath:C,message:D=""})=>`\`${C.slice(1)}\` ${D}`);throw Error("Config schema violation: "+B.join("; "))}_ensureDirectory(){rw.mkdirSync(nW.dirname(this.path),{recursive:!0})}_write(A){let I=this._serialize(A);if(this.#I){let B=UU.randomBytes(16),C=UU.pbkdf2Sync(this.#I,B.toString(),1e4,32,"sha512"),D=UU.createCipheriv(dW,C,B);I=BL([B,o2(":"),D.update(o2(I)),D.final()])}if(cW.env.SNAP)rw.writeFileSync(this.path,I,{mode:this.#A.configFileMode});else try{z6(this.path,I,{mode:this.#A.configFileMode})}catch(B){if(B?.code==="EXDEV"){rw.writeFileSync(this.path,I,{mode:this.#A.configFileMode});return}throw B}}_watch(){if(this._ensureDirectory(),!rw.existsSync(this.path))this._write(UJ());if(cW.platform==="win32")rw.watch(this.path,{persistent:!1},xM(()=>{this.events.dispatchEvent(new Event("change"))},{wait:100}));else rw.watchFile(this.path,{persistent:!1},xM(()=>{this.events.dispatchEvent(new Event("change"))},{wait:5000}))}_migrate(A,I,B){let C=this._get(EL,"0.0.0"),D=Object.keys(A).filter((H)=>this._shouldPerformMigration(H,C,I)),u={...this.store};for(let H of D)try{if(B)B(this,{fromVersion:C,toVersion:H,finalVersion:I,versions:D});let R=A[H];R?.(this),this._set(EL,H),C=H,u={...this.store}}catch(R){throw this.store=u,Error(`Something went wrong during the migration! Changes applied to the store until this failed migration will be restored. ${R}`)}if(this._isVersionInRangeFormat(C)||!aw.default.eq(C,I))this._set(EL,I)}_containsReservedKey(A){if(typeof A==="object"){if(Object.keys(A)[0]===e2)return!0}if(typeof A!=="string")return!1;if(this.#A.accessPropertiesByDotNotation){if(A.startsWith(`${e2}.`))return!0;return!1}return!1}_isVersionInRangeFormat(A){return aw.default.clean(A)===null}_shouldPerformMigration(A,I,B){if(this._isVersionInRangeFormat(A)){if(I!=="0.0.0"&&aw.default.satisfies(I,A))return!1;return aw.default.satisfies(B,A)}if(aw.default.lte(A,I))return!1;if(aw.default.gt(A,B))return!1;return!0}_get(A,I){return q9(this.store,A,I)}_set(A,I){let{store:B}=this;U6(B,A,I),this.store=B}}var CL="com.sequenzy.cli",DL="api-key",gL=typeof globalThis.Bun<"u",zG=new Aq({projectName:"sequenzy",schema:{userId:{type:"string"},userEmail:{type:"string"},_apiKey:{type:"string"}}});async function FL(){let A=process.env.SEQUENZY_API_KEY;if(A)return A;if(gL)try{let I=await globalThis.Bun.secrets.get({service:CL,name:DL});if(I)return I}catch{}return zG.get("_apiKey")}async function aW(A){if(gL)try{await globalThis.Bun.secrets.set({service:CL,name:DL,value:A,allowUnrestrictedAccess:!1});return}catch{}zG.set("_apiKey",A)}async function pW(){if(gL)try{await globalThis.Bun.secrets.delete({service:CL,name:DL})}catch{}zG.delete("_apiKey")}async function LB(){return!!await FL()}function Iq(){return{userId:zG.get("userId"),userEmail:zG.get("userEmail")}}function tW(A){if(A.userId!==void 0)zG.set("userId",A.userId);if(A.userEmail!==void 0)zG.set("userEmail",A.userEmail)}function oW(){zG.clear()}var Gr=process.env.SEQUENZY_API_URL??"https://api.sequenzy.com";class yA extends Error{statusCode;rawDetails;code;constructor(A,I,B,C){super(A);this.statusCode=I;this.rawDetails=B;this.code=C;this.name="ApiError"}}function wr(A){if(!A.trim())return{message:"Request failed"};try{let I=JSON.parse(A);if(typeof I==="string")return{message:I};if(typeof I.error==="string")return{message:I.error,code:I.code};if(I.error&&typeof I.error==="object")return{message:I.error.message??I.message??A,code:I.error.code??I.code};return{message:I.message??A,code:I.code}}catch{return{message:A}}}async function GI(A,I,B,C){let D=await FL();if(!D)throw new yA("Not logged in. Run `sequenzy login` first.",401);let u={"Content-Type":"application/json",Authorization:`Bearer ${D}`};if(C)u["x-company-id"]=C;let H;try{H=await fetch(`${Gr}${I}`,{method:A,headers:u,body:B?JSON.stringify(B):void 0})}catch(R){throw new yA(R instanceof Error?R.message:"Failed to reach Sequenzy API",0,void 0,"NETWORK_ERROR")}if(!H.ok){let R=await H.text(),K=wr(R);throw new yA(K.message,H.status,R,K.code)}return H.json()}var AO="https://docs.sequenzy.com",XG=`${AO}/concepts/cli`,eW=`${AO}/authentication`;function Jr(A){if(A instanceof yA)return{message:A.message,statusCode:A.statusCode,code:A.code,rawDetails:A.rawDetails};if(A instanceof Error)return{message:A.message};return{message:String(A)}}function Hr(A){let I=Jr(A),B=I.message.trim()||"Unknown error",C=B.toLowerCase(),D=I.rawDetails?.trim()||B;if(I.code==="CLI_AUTH_REQUIRED"||C.includes("not logged in"))return{title:"Authentication required",description:"This command needs a Sequenzy API key, but the CLI could not find one in your local login state or environment.",howToFix:"Run `sequenzy login` and approve the session, or set `SEQUENZY_API_KEY` for non-interactive environments.",docsUrl:XG,details:D};if(C.includes("already logged in"))return{title:"CLI already authenticated",description:"The CLI already has a saved Sequenzy login for this machine.",howToFix:"Run `sequenzy logout` first if you want to switch accounts, then run `sequenzy login` again.",docsUrl:XG,details:D};if(I.statusCode===401||I.code==="UNAUTHORIZED")return{title:"Authentication failed",description:"The request reached Sequenzy, but the current API key was rejected.",howToFix:"Run `sequenzy login` again, or replace the key with a valid personal API key that still has access to your account.",docsUrl:eW,details:D};if(I.statusCode===403||C.includes("access denied"))return{title:"Access denied",description:"The current API key is valid, but it does not have permission to perform this action or access the requested company.",howToFix:"Use an API key with access to the target company, or switch to a company you can access before retrying.",docsUrl:eW,details:D};if(I.statusCode===404||C.includes("not found"))return{title:"Requested resource not found",description:"Sequenzy could not find the company, template, campaign, sequence, or subscriber you asked for.",howToFix:"Double-check the ID or email value and list the resource first before retrying the command.",docsUrl:XG,details:D};if(I.statusCode===429||C.includes("rate limit"))return{title:"Rate limited",description:"Sequenzy temporarily slowed this request because too many requests were sent in a short period.",howToFix:"Wait a moment and retry. If an agent is looping, reduce the retry frequency before calling the CLI again.",docsUrl:XG,details:D};if(C.includes("--subject")||C.includes("--template")||C.includes("is required"))return{title:"Invalid command input",description:"The CLI command arguments are incomplete or incompatible for this action.",howToFix:"Review the flags you passed, add the missing values, and run the command again.",docsUrl:XG,details:D};if(I.code==="NETWORK_ERROR"||C.includes("fetch failed")||C.includes("failed to initiate login"))return{title:"Network or configuration error",description:"The CLI could not reach the Sequenzy API or app URL from this environment.",howToFix:"Check your network connection and verify `SEQUENZY_API_URL` or `SEQUENZY_APP_URL` if you override them locally.",docsUrl:XG,details:D};if(I.statusCode&&I.statusCode>=500)return{title:"Sequenzy server error",description:"The request reached Sequenzy, but the server could not complete it successfully.",howToFix:"Retry once. If the error persists, keep the details below and check the docs before escalating.",docsUrl:XG,details:D};return{title:"Command failed",description:"The CLI could not complete the requested operation.",howToFix:"Review the details below, adjust the command or credentials, and retry.",docsUrl:XG,details:D}}function zB(){return new yA("Not logged in. Run `sequenzy login` first.",401,void 0,"CLI_AUTH_REQUIRED")}function qU(A){let I=Hr(A);return[`Sequenzy CLI error: ${I.title}`,`Description: ${I.description}`,`How to fix: ${I.howToFix}`,`Docs: ${I.docsUrl}`,`Details: ${I.details}`].join(`
266
266
  `)}function iI(A){console.error(qU(A))}import{readFileSync as Rr}from"node:fs";function TI(A){console.log(JSON.stringify(A,null,2))}function XB(A){if(!A)return"None";let I=A instanceof Date?A:new Date(A);if(Number.isNaN(I.getTime()))return String(A);return I.toISOString()}function IO(A,I,B){if(A&&I)throw new yA(`Provide either --${B} or --${B}-file, not both`,400);if(!I)return A;try{return Rr(I,"utf8")}catch(C){throw new yA(`Failed to read ${B} file '${I}': ${C instanceof Error?C.message:"Unknown error"}`,400)}}function eg(A,I,B){let C=IO(A,I,B);if(!C)return;try{return JSON.parse(C)}catch(D){throw new yA(`Invalid ${B} JSON: ${D instanceof Error?D.message:"Unknown error"}`,400)}}function qJ(A){let I=IO(A.html,A.htmlFile,"html"),B=eg(A.blocksJson,A.blocksFile,"blocks");if(I!==void 0&&B!==void 0)throw new yA("Provide either --html/--html-file or --blocks-json/--blocks-file, not both",400);if(B!==void 0&&!Array.isArray(B))throw new yA("blocks JSON must be an array",400);if(A.required&&I===void 0&&B===void 0)throw new yA(A.requiredMessage??"Provide either --html/--html-file or --blocks-json/--blocks-file",400);return{...I!==void 0&&{html:I},...B!==void 0&&{blocks:B}}}function Bg(A,I){if(A===void 0)return;let B=A.trim();if(!/^[+-]?\d+$/.test(B))throw new yA(`${I} must be an integer`,400);let C=Number(B);if(!Number.isInteger(C))throw new yA(`${I} must be an integer`,400);return C}function Bq(A,I){if(!A||A.trim()==="")throw new yA(`${I} is required`,400);return A}function Ur(A){let I=A.isWinner?" winner":"";return` - Variant ${A.label} [${A.id}]${I}`}function BO(A){if(console.log(`${A.name??"A/B Test"} [${A.id}]`),console.log(`Status: ${A.status}`),console.log(`Winner criteria: ${A.winnerCriteria}`),console.log(`Updated: ${XB(A.updatedAt)}`),A.campaignId)console.log(`Campaign: ${A.campaignId}`);if(A.automationNodeId)console.log(`Automation node: ${A.automationNodeId}`);console.log(`Variants: ${A.variants.length}`);for(let I of A.variants)console.log(Ur(I)),console.log(` Email: ${I.emailId}`),console.log(` Subject: ${I.subject||"(no subject)"}`),console.log(` Preview: ${I.previewText??"None"}`),console.log(` Blocks: ${I.blocks.length}`)}function Qq(A){return`${A.toFixed(1)}%`}function qr(A){let I=A.period??(A.start&&A.end?`${A.start} - ${A.end}`:"all time");console.log(`A/B test stats (${I})`),console.log(`Sent: ${A.stats.sent.toLocaleString()}`),console.log(`Delivered: ${A.stats.delivered.toLocaleString()}`),console.log(`Opened: ${A.stats.opened.toLocaleString()} (${Qq(A.stats.openRate)})`),console.log(`Clicked: ${A.stats.clicked.toLocaleString()} (${Qq(A.stats.clickRate)})`),console.log(),console.log("Variants:");for(let B of A.variants){let C=B.isWinner?" winner":"";console.log(`- Variant ${B.label} [${B.id}]${C}`),console.log(` Subject: ${B.subject||"(no subject)"}`),console.log(` Sent ${B.stats.sent.toLocaleString()}, opened ${B.stats.opened.toLocaleString()} (${Qq(B.stats.openRate)}), clicked ${B.stats.clicked.toLocaleString()} (${Qq(B.stats.clickRate)})`)}}async function NJ(A,I){if(!await LB())iI(zB()),process.exit(1);try{if(A==="list"){let D=new URLSearchParams;if(I.sequence)D.set("sequenceId",I.sequence);let u=await GI("GET",`/api/v1/ab-tests${D.size>0?`?${D.toString()}`:""}`,void 0,I.company);if(I.json){TI(u);return}console.log(`A/B tests (${u.abTests.length})`);for(let H of u.abTests)console.log(`- ${H.name??"A/B Test"} [${H.id}]`),console.log(` Status: ${H.status}`),console.log(` Variants: ${H.variants.length}`);return}if(!I.id)throw new yA("A/B test ID is required",400);if(A==="get"){let D=await GI("GET",`/api/v1/ab-tests/${I.id}`,void 0,I.company);if(I.json){TI(D);return}BO(D.abTest);return}if(A==="stats"){let D=new URLSearchParams;if(I.period)D.set("period",I.period);if(I.start)D.set("start",I.start);if(I.end)D.set("end",I.end);let u=await GI("GET",`/api/v1/ab-tests/${I.id}/stats${D.size>0?`?${D.toString()}`:""}`,void 0,I.company);if(I.json){TI(u);return}qr(u);return}if(A==="restart"){if(I.testType!==void 0&&I.testType!=="subject"&&I.testType!=="content")throw new yA("--test-type must be subject or content",400);let D=I.testType,u;if(I.variantCount!==void 0)u=Number.parseInt(I.variantCount,10);let H;if(I.winnerThreshold!==void 0)H=Number.parseInt(I.winnerThreshold,10);if(u!==void 0&&(!Number.isInteger(u)||u<2||u>4))throw new yA("--variant-count must be an integer from 2 to 4",400);if(H!==void 0&&(!Number.isInteger(H)||H<10||H>1000))throw new yA("--winner-threshold must be an integer from 10 to 1000",400);let R=await GI("POST",`/api/v1/ab-tests/${I.id}/restart`,{sourceVariantId:I.sourceVariant,testType:D,winnerThreshold:H,variantCount:u},I.company);if(I.json){TI(R);return}console.log(`Started new A/B test: ${R.abTest.id}`),console.log(`Previous test: ${R.previousAbTestId}`),console.log(`Control variant: ${R.sourceVariantId}`),BO(R.abTest);return}if(!I.variantId)throw new yA("Variant ID is required",400);let B=qJ({html:I.html,htmlFile:I.htmlFile,blocksJson:I.blocksJson,blocksFile:I.blocksFile});if(I.subject===void 0&&I.previewText===void 0&&B.html===void 0&&B.blocks===void 0)throw new yA("Provide at least one of: --subject, --preview-text, --html, --html-file, --blocks-json, --blocks-file",400);let C=await GI("PATCH",`/api/v1/ab-tests/${I.id}/variants/${I.variantId}`,{subject:I.subject,previewText:I.previewText,html:B.html,blocks:B.blocks},I.company);if(I.json){TI(C);return}console.log(`Updated variant ${C.variant.label}`),console.log(`ID: ${C.variant.id}`),console.log(`Email: ${C.variant.emailId}`),console.log(`Subject: ${C.variant.subject}`)}catch(B){iI(B instanceof yA?B:B),process.exit(1)}}var uL=["product-info","domain","tracking","localization","integrations","products","events","tags","labels","goals","sync-rules","api-keys","widgets","team","danger"],QO={dashboard:"/dashboard/company/{companyId}",campaigns:"/dashboard/company/{companyId}/campaign",campaign:"/dashboard/company/{companyId}/campaign/{campaignId}",campaignPreview:"/dashboard/company/{companyId}/campaign/{campaignId}?step=review",campaignList:"/dashboard/company/{companyId}/campaign/list/{status}",sequences:"/dashboard/company/{companyId}/sequences",sequence:"/dashboard/company/{companyId}/sequences/{sequenceId}",sequenceList:"/dashboard/company/{companyId}/sequences/list/{status}",settings:"/dashboard/company/{companyId}/settings",settingsTab:"/dashboard/company/{companyId}/settings?tab={tab}",emails:"/dashboard/company/{companyId}/emails",email:"/dashboard/company/{companyId}/emails/{emailId}",subscribers:"/dashboard/company/{companyId}/subscribers",sentEmails:"/dashboard/company/{companyId}/sent-emails",emailSend:"/dashboard/company/{companyId}/sent-emails/{emailSendId}",segments:"/dashboard/company/{companyId}/segments",metrics:"/dashboard/company/{companyId}/metrics",transactional:"/dashboard/company/{companyId}/transactional",transactionalEmail:"/dashboard/company/{companyId}/transactional/{transactionalId}",domain:"/dashboard/company/{companyId}/settings/domain/{domainId}",domainVerify:"/dashboard/company/{companyId}/settings/domain/{domainId}/verify"};function Nr(A){let B=(A??process.env.SEQUENZY_APP_URL??"https://sequenzy.com").trim().replace(/\/+$/,"");return B.length>0?B:"https://sequenzy.com"}function RF(A){let I=A?.trim();return I?I:void 0}function wu(A){return encodeURIComponent(A)}function SC(A,I){return`${A}${I}`}function ZC(A,I=""){return`/dashboard/company/${wu(A)}${I}`}function EO(A,I,B){return SC(A,`${ZC(I,"/settings")}?tab=${encodeURIComponent(B)}`)}function Kr(A,I){let B=uL.map((C)=>[C,I?EO(A,I,C):""]);return Object.fromEntries(B)}function KQ(A={},I){let B=Nr(I),C=RF(A.companyId),D={},u=Kr(B,C);if(!C)return{appUrl:B,routeTemplates:QO,settingsTabValues:uL,urls:D,settingsUrls:u};D.dashboard=SC(B,ZC(C)),D.campaigns=SC(B,ZC(C,"/campaign")),D.sequences=SC(B,ZC(C,"/sequences")),D.settings=SC(B,ZC(C,"/settings")),D.emails=SC(B,ZC(C,"/emails")),D.subscribers=SC(B,ZC(C,"/subscribers")),D.sentEmails=SC(B,ZC(C,"/sent-emails")),D.segments=SC(B,ZC(C,"/segments")),D.metrics=SC(B,ZC(C,"/metrics")),D.transactional=SC(B,ZC(C,"/transactional"));let H=RF(A.campaignId);if(H)D.campaign=SC(B,ZC(C,`/campaign/${wu(H)}`)),D.campaignPreview=`${D.campaign}?step=review`;let R=RF(A.sequenceId);if(R)D.sequence=SC(B,ZC(C,`/sequences/${wu(R)}`));let K=RF(A.emailId)??RF(A.templateId);if(K)D.email=SC(B,ZC(C,`/emails/${wu(K)}`)),D.template=D.email;let M=RF(A.transactionalId);if(M)D.transactionalEmail=SC(B,ZC(C,`/transactional/${wu(M)}`));let z=RF(A.emailSendId);if(z)D.emailSend=SC(B,ZC(C,`/sent-emails/${wu(z)}`));let y=RF(A.domainId);if(y)D.domain=SC(B,ZC(C,`/settings/domain/${wu(y)}`)),D.domainVerify=`${D.domain}/verify`;let Z=RF(A.status);if(Z)D.campaignList=SC(B,ZC(C,`/campaign/list/${wu(Z)}`)),D.sequenceList=SC(B,ZC(C,`/sequences/list/${wu(Z)}`));let V=RF(A.settingsTab);if(V)D.settingsTab=EO(B,C,V);return{appUrl:B,routeTemplates:QO,settingsTabValues:uL,urls:D,settingsUrls:u}}async function PC(A){if(A?.trim())return A.trim();try{return(await GI("GET","/api/v1/account")).currentCompanyId??void 0}catch{return}}async function Mr(A,I){let B=await PC(I);return KQ({...A,companyId:B})}function dB(A,I){if(I)console.log(`${A}: ${I}`)}function Eq(A,I,B,C){let u=KQ({...I,companyId:C}).urls[B];return{...A,...u!==void 0&&{url:u}}}async function CO(A){if(!await LB())iI(zB()),process.exit(1);try{let I=await Mr({campaignId:A.campaign,sequenceId:A.sequence,emailId:A.email,templateId:A.template,transactionalId:A.transactional,emailSendId:A.emailSend,domainId:A.domain,status:A.status,settingsTab:A.settingsTab},A.company);if(A.company&&!I.urls.dashboard)throw new yA("Company ID is required to build dashboard URLs",400);if(A.json){TI(I);return}if(console.log(`App: ${I.appUrl}`),console.log(""),Object.keys(I.urls).length===0){console.log("No company selected. Pass --company or run `sequenzy account` to find the current company ID."),console.log(""),console.log("Route templates:");for(let[B,C]of Object.entries(I.routeTemplates))console.log(`- ${B}: ${C}`);return}console.log("URLs:");for(let[B,C]of Object.entries(I.urls))console.log(`- ${B}: ${C}`);console.log(""),console.log("Settings tabs:");for(let[B,C]of Object.entries(I.settingsUrls))console.log(`- ${B}: ${C}`)}catch(I){iI(I instanceof yA?I:I),process.exit(1)}}async function DO(A){if(!await LB())iI(zB()),process.exit(1);try{let I=await GI("GET","/api/v1/account"),B=I.currentCompanyId!==null?KQ({companyId:I.currentCompanyId}):void 0,C=I.companies.map((D)=>{let u=KQ({companyId:D.id});return{...D,url:u.urls.dashboard,settingsUrl:u.urls.settings}});if(A.json){console.log(JSON.stringify({...I,companies:C,...B!==void 0&&{appUrls:B.urls,settingsUrls:B.settingsUrls}},null,2));return}if(console.log(`User ID: ${I.user?.id??"Unknown"}`),console.log(`Current company: ${I.currentCompanyId??"None"}`),dB("Current company URL",B?.urls.dashboard),dB("Current company settings",B?.urls.settings),console.log(""),I.companies.length===0){console.log(I.message??"No companies found.");return}console.log(`Companies (${I.companies.length})`);for(let D of C){let u=D.id===I.currentCompanyId?" (current)":"";console.log(`- ${D.name} [${D.id}]${u}`),dB(" URL",D.url),dB(" Settings",D.settingsUrl)}}catch(I){iI(I instanceof yA?I:I),process.exit(1)}}async function gO(A,I){if(!await LB())iI(zB()),process.exit(1);try{let B=await GI("POST","/api/v1/api-keys",{name:I.name},I.company);if(I.json){TI(B);return}console.log(`Created API key: ${B.apiKey.name}`),console.log(`ID: ${B.apiKey.id}`),console.log(`Prefix: ${B.apiKey.prefix}`),console.log(`Created: ${XB(B.apiKey.createdAt)}`),console.log(""),console.log(B.message),console.log(`Key: ${B.apiKey.key}`),console.log(`Env: ${B.instructions.example}`),console.log(B.instructions.note)}catch(B){iI(B instanceof yA?B:B),process.exit(1)}}function uO(A){let I=A?.trim();return I?I:void 0}function Lr(A,I){if(!A.name)throw new yA("Campaign name is required",400);let B=uO(A.prompt);if(A.prompt!==void 0&&B===void 0)throw new yA("--prompt cannot be empty",400);if(B!==void 0&&(I.html!==void 0||I.blocks!==void 0))throw new yA("Provide either --prompt, --html/--html-file, or --blocks-json/--blocks-file, not multiple content sources",400);if(B===void 0&&(A.style!==void 0||A.tone!==void 0))throw new yA("--style and --tone require --prompt",400);if(!A.subject&&B===void 0)throw new yA("Campaign subject is required unless --prompt is provided",400)}function Yr(A){let I=A.generated?.blocks!==void 0&&Array.isArray(A.generated.blocks)&&A.generated.blocks.length>0?A.generated.blocks:void 0,B=typeof A.generated?.html==="string"&&A.generated.html.trim()!==""?A.generated.html:void 0;return{name:A.name,subject:A.subject,html:I!==void 0?void 0:B??A.content.html,blocks:I??A.content.blocks,labels:A.labels,...A.trackingCode!==void 0&&{trackingCode:A.trackingCode}}}function Sr(A,I,B={}){if(A.replyTo!==void 0&&A.replyProfile!==void 0)throw new yA("Provide either --reply-to or --reply-profile, not both",400);if(A.name===void 0&&A.subject===void 0&&A.trackingCode===void 0&&I.html===void 0&&I.blocks===void 0&&A.replyTo===void 0&&A.replyProfile===void 0&&A.label===void 0&&B.campaignData===void 0&&B.computedLists===void 0)throw new yA("Provide at least one of: --name, --subject, --tracking-code, --html, --html-file, --blocks-json, --blocks-file, --reply-to, --reply-profile, --label, --campaign-data-json, --campaign-data-file, --computed-lists-json, --computed-lists-file",400);return{name:A.name,subject:A.subject,...A.trackingCode!==void 0&&{trackingCode:A.trackingCode},html:I.html,blocks:I.blocks,replyTo:A.replyTo,replyProfileId:A.replyProfile,labels:A.label,...B.campaignData!==void 0&&{campaignData:B.campaignData},...B.computedLists!==void 0&&{computedLists:B.computedLists}}}function Zr(A){let I=eg(A.campaignDataJson,A.campaignDataFile,"campaign-data"),B=eg(A.computedListsJson,A.computedListsFile,"computed-lists");if(I!==void 0&&I!==null&&(typeof I!=="object"||Array.isArray(I)))throw new yA("campaign-data JSON must be an object or null",400);if(B!==void 0&&!Array.isArray(B))throw new yA("computed-lists JSON must be an array",400);return{...I!==void 0&&{campaignData:I},...B!==void 0&&{computedLists:B}}}function zr(A){let I=eg(A.targetListsJson,A.targetListsFile,"target-lists");if(I!==void 0&&(typeof I!=="object"||I===null||Array.isArray(I)))throw new yA("target-lists JSON must be an object",400);return I}function Xr(A,I){if(!A.at?.trim())throw new yA("--at is required",400);let B;if(A.spreadOverHours!==void 0){let C=Number(A.spreadOverHours);if(!Number.isInteger(C)||C<1||C>72)throw new yA("--spread-over-hours must be an integer between 1 and 72",400);B=C}return{scheduledAt:A.at,...I!==void 0&&{targetLists:I},...A.sendTimeOptimization!==void 0&&{sendTimeOptimization:A.sendTimeOptimization},...B!==void 0&&{spreadOverHours:B}}}function FO(A){if(!A.replyToEmail)return"None";return A.replyToName?`${A.replyToName} <${A.replyToEmail}>`:A.replyToEmail}function Cq(A){return A&&A.length>0?A.join(", "):"None"}function $r(A,I){if(I===void 0)return A;let B=KQ({companyId:I,campaignId:A.id});return{...A,...B.urls.campaign!==void 0&&{url:B.urls.campaign},...B.urls.campaignPreview!==void 0&&{previewUrl:B.urls.campaignPreview}}}async function pw(A,I){if(!await LB())iI(zB()),process.exit(1);try{if(A==="list"){let R=new URLSearchParams;if(I.status)R.set("status",I.status);if(I.label)for(let Z of I.label)R.append("label",Z);let K=await GI("GET",`/api/v1/campaigns${R.size>0?`?${R.toString()}`:""}`,void 0,I.company),M=await PC(I.company),z=M!==void 0?KQ({companyId:M,status:I.status}):void 0,y=K.campaigns.map((Z)=>$r(Z,M));if(I.json){TI({...K,campaigns:y,...z!==void 0&&{appUrls:z.urls}});return}console.log(`Campaigns (${K.campaigns.length})`);for(let Z of y){if(console.log(`- ${Z.name} [${Z.id}]`),console.log(` Subject: ${Z.subject}`),console.log(` Status: ${Z.status}`),console.log(` Labels: ${Cq(Z.labels)}`),console.log(` Created: ${XB(Z.createdAt)}`),dB(" URL",Z.url),dB(" Preview URL",Z.previewUrl),Z.scheduledAt)console.log(` Scheduled: ${XB(Z.scheduledAt)}`);if(Z.sentAt)console.log(` Sent: ${XB(Z.sentAt)}`)}return}let B=qJ({html:I.html,htmlFile:I.htmlFile,blocksJson:I.blocksJson,blocksFile:I.blocksFile});if(A==="create"){Lr(I,B);let R=uO(I.prompt),K=R!==void 0?await GI("POST","/api/v1/generate/email",{prompt:R,...I.style!==void 0&&{style:I.style},...I.tone!==void 0&&{tone:I.tone}},I.company):void 0,M=I.subject??K?.subject;if(!M)throw new yA("Generated email did not include a subject. Provide --subject explicitly.",400);let z=await GI("POST","/api/v1/campaigns",Yr({name:I.name,subject:M,content:B,generated:K,labels:I.label,trackingCode:I.trackingCode}),I.company),y=await PC(I.company),Z=z.campaign?.id??z.campaignId,V=y!==void 0&&Z!==void 0?KQ({companyId:y,campaignId:Z}):void 0;if(I.json){TI({...z,...z.campaign!==void 0&&V?.urls.campaign!==void 0&&{campaign:{...z.campaign,url:V.urls.campaign,previewUrl:V.urls.campaignPreview}},...V!==void 0&&{appUrls:V.urls}});return}if(console.log(`Created campaign: ${z.campaign?.name??I.name}`),console.log(`ID: ${z.campaign?.id??"Unknown"}`),console.log(`Status: ${z.campaign?.status??"Unknown"}`),console.log(`Subject: ${z.campaign?.subject??M}`),console.log(`Labels: ${Cq(z.campaign?.labels)}`),K!==void 0)console.log("Content: generated from prompt");dB("URL",V?.urls.campaign??z.campaign?.url),dB("Preview URL",V?.urls.campaignPreview??z.campaign?.previewUrl);return}if(!I.id)throw new yA("Campaign ID is required",400);if(A==="schedule"){let R=zr(I),K=await GI("POST",`/api/v1/campaigns/${I.id}/schedule`,Xr(I,R),I.company),M=await PC(I.company),z=M!==void 0?KQ({companyId:M,campaignId:I.id}):void 0;if(I.json){TI({...K,...K.campaign!==void 0&&z?.urls.campaign!==void 0&&{campaign:{...K.campaign,url:z.urls.campaign,previewUrl:z.urls.campaignPreview}},previewUrl:K.previewUrl??z?.urls.campaignPreview??void 0,...z!==void 0&&{appUrls:z.urls}});return}console.log(`Scheduled campaign: ${K.campaign?.name??I.id}`),console.log(`ID: ${K.campaign?.id??I.id}`),console.log(`Status: ${K.campaign?.status??"scheduled"}`),console.log(`Scheduled: ${XB(K.scheduledAt??K.campaign?.scheduledAt??null)}`),dB("URL",z?.urls.campaign??K.campaign?.url),dB("Preview URL",K.previewUrl??z?.urls.campaignPreview??K.campaign?.previewUrl);return}if(A==="update"){let R=Zr(I),K=Sr(I,B,R),M=await GI("PUT",`/api/v1/campaigns/${I.id}`,K,I.company),z=await PC(I.company),y=z!==void 0?KQ({companyId:z,campaignId:I.id}):void 0;if(I.json){TI({...M,...M.campaign!==void 0&&y?.urls.campaign!==void 0&&{campaign:{...M.campaign,url:y.urls.campaign,previewUrl:y.urls.campaignPreview}},...y!==void 0&&{appUrls:y.urls}});return}if(console.log(`Updated campaign: ${M.campaign?.name??I.id}`),console.log(`ID: ${M.campaign?.id??I.id}`),console.log(`Status: ${M.campaign?.status??"Unknown"}`),console.log(`Labels: ${Cq(M.campaign?.labels)}`),dB("URL",y?.urls.campaign??M.campaign?.url),dB("Preview URL",y?.urls.campaignPreview??M.campaign?.previewUrl),M.campaign)console.log(`Reply-To: ${FO(M.campaign)}`);return}if(A==="test"){if(!I.to)throw new yA("--to is required",400);let R=await GI("POST",`/api/v1/campaigns/${I.id}/test`,{to:I.to},I.company),K=await PC(I.company),M=K!==void 0?KQ({companyId:K,campaignId:I.id}):void 0;if(I.json){TI({...R,...M!==void 0&&{appUrls:M.urls}});return}console.log(R.message??`Test requested for ${I.id}`),dB("URL",M?.urls.campaign),dB("Preview URL",M?.urls.campaignPreview);return}let C=await GI("GET",`/api/v1/campaigns/${I.id}`,void 0,I.company),D=await PC(I.company),u=D!==void 0?KQ({companyId:D,campaignId:I.id}):void 0;if(I.json){TI({...C,...u?.urls.campaign!==void 0&&{campaign:{...C.campaign,url:u.urls.campaign,previewUrl:u.urls.campaignPreview}},...u!==void 0&&{appUrls:u.urls}});return}let H=C.campaign;if(console.log(H.name),console.log(`ID: ${H.id}`),dB("URL",u?.urls.campaign??H.url),dB("Preview URL",u?.urls.campaignPreview??H.previewUrl),console.log(`Status: ${H.status}`),console.log(`Subject: ${H.subject}`),H.trackingCode)console.log(`Tracking code: ${H.trackingCode}`);if(console.log(`Labels: ${Cq(H.labels)}`),console.log(`Preheader: ${H.preheader||"None"}`),H.replyToEmail||H.replyProfileId)console.log(`Reply-To: ${FO(H)}`);console.log(`Blocks: ${H.blocks.length}`),console.log(`Created: ${XB(H.createdAt)}`),console.log(`Scheduled: ${XB(H.scheduledAt)}`),console.log(`Sent: ${XB(H.sentAt)}`)}catch(B){iI(B instanceof yA?B:B),process.exit(1)}}function GO(A){let I=A.supportedLocales.join(", "),B=A.subscriberLocaleAttribute??"not configured";return`${A.primaryLocale} -> [${I}] | fallback ${A.fallbackLocale} | attr ${B} | sync ${A.autoSyncMode}`}async function Dq(A,I){if(!await LB())iI(zB()),process.exit(1);try{if(A==="list"){let H=await GI("GET","/api/v1/companies"),R=H.companies.map((M)=>{let z=KQ({companyId:M.id});return{...M,url:z.urls.dashboard,settingsUrl:z.urls.settings}}),K=H.currentCompanyId!==null?KQ({companyId:H.currentCompanyId}):void 0;if(I.json){TI({...H,companies:R,...K!==void 0&&{appUrls:K.urls}});return}console.log(`Companies (${H.companies.length})`);for(let M of R){let z=M.id===H.currentCompanyId?" (current)":"";console.log(`- ${M.name} [${M.id}]${z}`),console.log(` Status: ${M.status}`),console.log(` Website: ${M.websiteUrl??"Not set"}`),dB(" URL",M.url),dB(" Settings",M.settingsUrl),console.log(` Localization: ${GO(M.emailLocalizationConfig)}`)}return}if(!I.id){if(A!=="create")throw new yA("Company ID is required",400)}if(A==="create"){if(!I.domain)throw new yA("Domain is required",400);let H=await GI("POST","/api/v1/companies",{domain:I.domain,name:I.name}),R=KQ({companyId:H.company.id});if(I.json){TI({...H,company:{...H.company,url:R.urls.dashboard,settingsUrl:R.urls.settings},appUrls:R.urls,settingsUrls:R.settingsUrls});return}console.log(H.company.name),console.log(`ID: ${H.company.id}`),dB("URL",R.urls.dashboard),dB("Settings",R.urls.settings),console.log(`Status: ${H.company.status}`),console.log(`Website: ${H.company.websiteUrl??"Not set"}`),console.log(""),console.log(H.message);return}let B=await GI("GET",`/api/v1/companies/${I.id}`),C=KQ({companyId:I.id});if(I.json){TI({...B,company:{...B.company,url:C.urls.dashboard,settingsUrl:C.urls.settings},appUrls:C.urls,settingsUrls:C.settingsUrls});return}let D=B.company;console.log(D.name),console.log(`ID: ${D.id}`),dB("URL",C.urls.dashboard),dB("Settings",C.urls.settings),console.log(`Status: ${D.status}`),console.log(`Website: ${D.websiteUrl??"Not set"}`),console.log(`Created: ${XB(D.createdAt)}`),console.log(`Primary language: ${D.language}`),console.log(`Localization: ${GO(D.emailLocalizationConfig)}`);let u=Object.entries(D.emailLocalizationConfig.valueMappings);if(u.length>0){console.log("Mappings:");for(let[H,R]of u)console.log(`- ${H} -> ${R}`)}}catch(B){iI(B instanceof yA?B:B),process.exit(1)}}function Wr(A){if(!A.senderEmail&&!A.senderName)return"Unknown";if(!A.senderName)return A.senderEmail??"Unknown";return A.senderEmail?`${A.senderName} <${A.senderEmail}>`:A.senderName}function Or(A){let I=[A.clickedUrl?`url=${A.clickedUrl}`:null,A.bounceType?`bounce=${A.bounceType}`:null,A.bounceSubType?`subtype=${A.bounceSubType}`:null,A.complaintType?`complaint=${A.complaintType}`:null,A.ipAddress?`ip=${A.ipAddress}`:null,A.countryCode?`country=${A.countryCode}`:null].filter((B)=>B!==null);return`${XB(A.eventTime)} ${A.eventType}${I.length>0?` (${I.join(", ")})`:""}`}function yr(A,I){let B=A.emailSend,C=KQ({companyId:B.companyId,emailSendId:B.id,...B.campaignId?{campaignId:B.campaignId}:{},...B.transactionalEmailId?{transactionalId:B.transactionalEmailId}:{}});if(I.json){TI({...A,emailSend:{...B,url:C.urls.emailSend},appUrls:C.urls});return}if(I.htmlOnly){console.log(B.emailBody??"");return}if(console.log(`Email send: ${B.id}`),dB("URL",C.urls.emailSend),console.log(`Source: ${A.source}`),console.log(`Status: ${B.status}`),console.log(`Type: ${B.type??"Unknown"}`),console.log(`Recipient: ${B.recipientEmail??"Unknown"}`),console.log(`Subject: ${B.subject??"Unknown"}`),console.log(`Sender: ${Wr(B)}`),console.log(`Created: ${XB(B.createdAt)}`),console.log(`Sent: ${XB(B.sentAt)}`),console.log(`Delivered: ${XB(B.deliveredAt)}`),console.log(`Opened: ${XB(B.openedAt)}`),console.log(`Clicked: ${XB(B.clickedAt)}`),console.log(`Bounced: ${XB(B.bouncedAt)}`),console.log(`Complained: ${XB(B.complainedAt)}`),B.errorMessage)console.log(`Error: ${B.errorMessage}`);if(A.message)console.log(""),console.log(A.message);if(console.log(""),B.emailBody)if(console.log(`HTML body: ${B.emailBody.length} chars`),I.html)console.log(""),console.log(B.emailBody);else console.log("Run with --html to print the full HTML body.");else console.log("HTML body: unavailable (the email send row may have been cleaned up)");if(console.log(""),console.log(`Events (${A.events.length})`),A.events.length===0){console.log(" None");return}for(let D of A.events)console.log(`- ${Or(D)}`)}async function Vr(A){if(!A.id)throw new yA("Email send ID is required",400);let I=await GI("GET",`/api/v1/email-sends/${encodeURIComponent(A.id)}`,void 0,A.company);yr(I,A)}async function wO(A,I){if(!await LB())iI(zB()),process.exit(1);try{switch(A){case"get":await Vr(I);break}}catch(B){iI(B instanceof yA?B:B),process.exit(1)}}var JO=10;function GL(A,I){let B=Bg(A,I);if(B!==void 0&&B<1)throw new yA(`${I} must be greater than 0`,400);return B}function fr(A,I){return{prompt:Bq(A,"Prompt").trim(),...I.style!==void 0&&{style:I.style},...I.tone!==void 0&&{tone:I.tone}}}function jr(A,I){let B=GL(I.count,"--count"),C=GL(I.days,"--days");if(B!==void 0&&B>JO)throw new yA(`--count must be no more than ${JO}`,400);return{goal:Bq(A,"Goal").trim(),...B!==void 0&&{emailCount:B},...C!==void 0&&{durationDays:C}}}function Pr(A,I){let B=GL(I.count,"--count");return{topic:Bq(A,"Topic").trim(),...B!==void 0&&{count:B}}}function Tr(A){if(A.subject)console.log(`Subject: ${A.subject}`);if(A.previewText)console.log(`Preview: ${A.previewText}`);if(A.subject||A.previewText)console.log();if(Array.isArray(A.blocks)&&A.blocks.length>0){console.log(JSON.stringify({blocks:A.blocks},null,2));return}if(A.html)console.log(A.html)}function kr(A){console.log(`Generated sequence for: ${A.goal}`),console.log(`Emails: ${A.emails.length}`),A.emails.forEach((I,B)=>{if(console.log(),console.log(`${B+1}. ${I.subject}`),I.delayDays!==void 0)console.log(`Delay: ${I.delayDays} days`);console.log(I.html)})}function br(A){console.log(`Subject lines for: ${A.topic}`),A.subjects.forEach((I,B)=>{console.log(`${B+1}. ${I}`)})}async function gq(A,I){if(!await LB())iI(zB()),process.exit(1);try{if(A==="email"){let C=await GI("POST","/api/v1/generate/email",fr(I.prompt??"",I),I.company);if(I.json){TI(C);return}Tr(C);return}if(A==="sequence"){let C=await GI("POST","/api/v1/generate/sequence",jr(I.goal??"",I),I.company);if(I.json){TI(C);return}kr(C);return}let B=await GI("POST","/api/v1/generate/subjects",Pr(I.topic??"",I),I.company);if(I.json){TI(B);return}br(B)}catch(B){iI(B instanceof yA?B:B),process.exit(1)}}async function wL(A,I){if(!await LB())iI(zB()),process.exit(1);try{if(A==="list"){let C=await GI("GET","/api/v1/lists",void 0,I.company);if(I.json){TI(C);return}console.log(`Lists (${C.lists.length})`);for(let D of C.lists){let u=D.isPrivate?"private":"public";console.log(`- ${D.name} [${D.id}]`),console.log(` Visibility: ${u}`),console.log(` Description: ${D.description??"None"}`),console.log(` Created: ${XB(D.createdAt)}`)}return}if(!I.name)throw new yA("List name is required",400);let B=await GI("POST","/api/v1/lists",{name:I.name,description:I.description,isPrivate:I.private},I.company);if(I.json){TI(B);return}console.log(`Created list: ${B.list.name}`),console.log(`ID: ${B.list.id}`),console.log(`Visibility: ${B.list.isPrivate?"private":"public"}`),console.log(`Description: ${B.list.description??"None"}`)}catch(B){iI(B instanceof yA?B:B),process.exit(1)}}import vr from"node:os";var HO=process.env.SEQUENZY_API_URL??"https://api.sequenzy.com",hr=process.env.SEQUENZY_APP_URL??"https://sequenzy.com",_r=5;function xr(A){return new Promise((I)=>{setTimeout(I,A)})}function lr(A,I,B=`${hr}/setup/auth`){let C=A&&A.trim().length>0?A:B,D=new URL(C);return D.searchParams.set("code",I),D.toString()}async function ir(){let A=`${process.platform}-${vr.hostname()}`,I=await fetch(`${HO}/api/device-auth/initiate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceName:A,clientType:"cli"})}),B=await I.json();if(!I.ok||!B.success||!B.data)throw Error(B.error??"Failed to initiate login.");return B.data}async function mr(A){let I=Date.now()+A.expiresIn*1000,B=Math.max(A.pollInterval,_r)*1000;while(Date.now()<I){await xr(B);let C;try{C=await(await fetch(`${HO}/api/device-auth/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:A.deviceCode})})).json()}catch{continue}if(C.success&&C.data)return C.data;if(C.error==="authorization_pending")continue;if(C.error==="access_denied")throw Error("Authorization denied.");if(C.error==="expired_token")throw Error("Authorization expired. Please try again.");throw Error(C.error??"Failed to complete login.")}throw Error("Authorization timed out. Please try again.")}async function cr(){if(await LB())throw Error("Already logged in. Run `sequenzy logout` first to switch accounts.");let A=await ir(),I=lr(A.verificationUrl,A.userCode);console.log("Sequenzy Login"),console.log(""),console.log("Open this link in a browser to approve this CLI session:"),console.log(I),console.log(""),console.log(`Code: ${A.userCode}`),console.log(`Waiting for approval... leave this terminal open for up to ${Math.ceil(A.expiresIn/60)} minutes.`);let B=await mr({deviceCode:A.deviceCode,pollInterval:A.pollInterval,expiresIn:A.expiresIn});await aW(B.apiKey),tW({userId:B.userId,userEmail:B.userEmail}),console.log(""),console.log(`Logged in as ${B.userEmail??B.userId}.`),console.log("Run `sequenzy --help` to see available commands.")}function RO(){cr().catch((A)=>{iI(A instanceof Error&&A.message.includes("Not logged in")?zB():A),process.exitCode=1})}async function UO(){if(!await LB()){iI(zB());return}await pW(),oW(),console.log("Logged out successfully.")}var NO=["status","tag","email","added","firstName","lastName","list","event","segment","emailSent","emailOpened","emailClicked","emailBounced","emailComplained","attribute","stripeProduct"],nr=new Set(["emailSent","emailOpened","emailClicked","emailBounced","emailComplained"]),dr={emailSent:{yes:"was sent",no:"was not sent"},emailOpened:{yes:"opened",no:"didn't open"},emailClicked:{yes:"clicked",no:"didn't click"},emailBounced:{yes:"bounced",no:"hasn't bounced"},emailComplained:{yes:"complained",no:"hasn't complained"}},KO=["is","is_not","is_empty","is_not_empty","contains","not_contains","less_than","more_than","at_least","less_than_count","gte","lte","gt","lt"];function sr(A){return NO.includes(A)}function rr(A){return KO.includes(A)}function qO(A,I){if(!A)throw new yA(`${I} is required for this operator`,400);let B=Number.parseInt(A,10);if(!Number.isInteger(B)||B<=0)throw new yA(`${I} must be a positive integer`,400);return B}function KJ(A,I){if(typeof A!=="string"||A.trim()==="")throw new yA(`${I} must be a non-empty string`,400);return A}function ar(A){let I=KJ(A.productId,"Stripe product ID");switch(A.purchaseOperator??"bought"){case"bought":return{id:crypto.randomUUID(),field:"stripeProduct",operator:"is",value:I};case"didnt-buy":return{id:crypto.randomUUID(),field:"stripeProduct",operator:"is_not",value:I};case"at-least":{let C=qO(A.payments,"--payments");return{id:crypto.randomUUID(),field:"stripeProduct",operator:"at_least",value:`${I}:${C}`}}case"less-than":{let C=qO(A.payments,"--payments");return{id:crypto.randomUUID(),field:"stripeProduct",operator:"less_than_count",value:`${I}:${C}`}}default:throw new yA("`--purchase-operator` must be one of: bought, didnt-buy, at-least, less-than",400)}}function MO(A,I){if(typeof A!=="object"||A===null)throw new yA(`Filter at ${I} must be an object with field/operator/value`,400);let B=A,C=KJ(B.field,`${I}.field`),D=KJ(B.operator,`${I}.operator`);if(!sr(C))throw new yA(`${I}.field must be one of: ${NO.join(", ")}`,400);if(!rr(D))throw new yA(`${I}.operator must be one of: ${KO.join(", ")}`,400);let u;if(D==="is_empty"||D==="is_not_empty"){if(typeof B.value!=="string")throw new yA(`${I}.value must be a string`,400);if(C==="attribute"&&!B.value.includes(":"))throw new yA(`${I}.value must use the format "attributeName:" when field is "attribute" (e.g. "last_logged_in:")`,400);u=B.value}else u=KJ(B.value,`${I}.value`);return{id:typeof B.id==="string"&&B.id.trim()!==""?B.id:crypto.randomUUID(),field:C,operator:D,value:u}}function LO(A,I){if(typeof A!=="object"||A===null)throw new yA(`${I} must be a filter or group object`,400);let B=A;if(B.kind==="group"){let C=YO(B.joinOperator==="or"?"any":"all");if(!Array.isArray(B.children)||B.children.length===0)throw new yA(`${I}.children must be a non-empty array`,400);return{kind:"group",id:typeof B.id==="string"&&B.id.trim()!==""?B.id:crypto.randomUUID(),joinOperator:C,children:B.children.map((D,u)=>LO(D,`${I}.children[${u}]`))}}return{kind:"filter",...MO(A,I)}}function pr(A){let I;try{I=JSON.parse(A)}catch{throw new yA("`--filter-json` must be valid JSON",400)}if(Array.isArray(I)){if(I.length===0)throw new yA("`--filter-json` must be a non-empty JSON array",400);return{filters:I.map((B,C)=>MO(B,`filters[${C}]`))}}if(typeof I==="object"&&I!==null){let B=I,C=B.kind==="group"?B:B.root??(B.version===2?B.root:void 0);if(C){let D=LO(C,"root");if(D.kind!=="group")throw new yA("`--filter-json` root must be a group",400);return{root:D}}}throw new yA("`--filter-json` must be a non-empty filter array or an object with a root group",400)}function YO(A){if(A===void 0||A==="all")return"and";if(A==="any")return"or";throw new yA("`--match` must be either `all` or `any`",400)}function tr(A){if(A.filterJson&&A.stripeProduct)throw new yA("Use either `--filter-json` or `--stripe-product`, not both",400);if(A.filterJson)return pr(A.filterJson);if(A.stripeProduct)return{filters:[ar({productId:A.stripeProduct,purchaseOperator:A.purchaseOperator,payments:A.payments})]};throw new yA("Provide either `--stripe-product` or `--filter-json` when creating a segment",400)}function SO(A){if(A.field==="stripeProduct"){let[I,B]=A.value.split(":",2);if(A.operator==="is")return`Stripe product bought ${I}`;if(A.operator==="is_not")return`Stripe product didn't buy ${I}`;if(A.operator==="at_least"&&B)return`Stripe product payments at least ${B} for ${I}`;if(A.operator==="less_than_count"&&B)return`Stripe product payments less than ${B} for ${I}`}if(A.field==="event")return`event ${A.operator} ${A.value}`;if(A.field==="segment")return`segment ${A.operator} ${A.value}`;if(nr.has(A.field)){let I=dr[A.field],B=A.operator==="is_not"?I?.no:I?.yes??A.field;if(A.value.startsWith("campaign:")){let C=A.value.slice(9);return`${B} in campaign ${C}`}return`${B} (${A.value})`}return`${A.field} ${A.operator} ${A.value}`}function or(A){if(console.log(`- ${A.name} [${A.id}]`),console.log(` Match: ${(A.filterJoinOperator??"and")==="or"?"any condition":"all conditions"}`),console.log(` Filters: ${A.filters.length}`),A.createdAt)console.log(` Created: ${A.createdAt}`);for(let I of A.filters)console.log(` - ${SO(I)}`)}async function Fq(A,I){if(!await LB())iI(zB()),process.exit(1);try{if(A==="list"){let D=await GI("GET","/api/v1/segments",void 0,I.company);if(I.json){console.log(JSON.stringify(D,null,2));return}console.log(`Segments (${D.segments.length})`);for(let u of D.segments)or(u);return}if(A==="create"){let D=KJ(I.name,"Segment name"),u=tr(I),H=YO(I.match),R=await GI("POST","/api/v1/segments",{name:D,...u,...u.root?{}:{filterJoinOperator:H}},I.company);if(I.json){console.log(JSON.stringify(R,null,2));return}console.log(`Created segment: ${R.segment.name}`),console.log(`ID: ${R.segment.id}`),console.log(`Match: ${(R.segment.filterJoinOperator??"and")==="or"?"any condition":"all conditions"}`);for(let K of R.segment.filters)console.log(`- ${SO(K)}`);return}let B=KJ(I.id,"Segment ID"),C=await GI("GET",`/api/v1/segments/${B}/count`,void 0,I.company);if(I.json){console.log(JSON.stringify(C,null,2));return}console.log(`Segment ${C.segmentId}: ${C.count} subscribers`)}catch(B){iI(B instanceof yA?B:B),process.exit(1)}}import{readFileSync as Ge}from"node:fs";import{Stream as no}from"node:stream";import eq from"node:process";var $f=uB(pQ(),1);import co from"node:process";function ZO(A,I,{signal:B,edges:C}={}){let D=void 0,u=null,H=C!=null&&C.includes("leading"),R=C==null||C.includes("trailing"),K=()=>{if(u!==null)A.apply(D,u),D=void 0,u=null},M=()=>{if(R)K();V()},z=null,y=()=>{if(z!=null)clearTimeout(z);z=setTimeout(()=>{z=null,M()},I)},Z=()=>{if(z!==null)clearTimeout(z),z=null},V=()=>{Z(),D=void 0,u=null},v=()=>{K()},x=function(...c){if(B?.aborted)return;D=this,u=c;let BA=z==null;if(y(),H&&BA)K()};return x.schedule=y,x.cancel=V,x.flush=v,B?.addEventListener("abort",V,{once:!0}),x}function zO(A,I=0,B={}){if(typeof B!=="object")B={};let{leading:C=!1,trailing:D=!0,maxWait:u}=B,H=Array(2);if(C)H[0]="leading";if(D)H[1]="trailing";let R=void 0,K=null,M=ZO(function(...Z){R=A.apply(this,Z),K=null},I,{edges:H}),z=function(...Z){if(u!=null){if(K===null)K=Date.now();if(Date.now()-K>=u)return R=A.apply(this,Z),K=Date.now(),M.cancel(),M.schedule(),R}return M.apply(this,Z),R},y=()=>{return M.flush(),R};return z.cancel=M.cancel,z.flush=y,z}function Gq(A,I=0,B={}){let{leading:C=!0,trailing:D=!0}=B;return zO(A,I,{leading:C,maxWait:I,trailing:D})}var ow={};JT(ow,{setCwd:()=>fa,scrollUp:()=>La,scrollDown:()=>Ya,link:()=>ya,image:()=>Va,iTerm:()=>yO,exitAlternativeScreen:()=>Wa,eraseUp:()=>Ma,eraseStartLine:()=>Na,eraseScreen:()=>wq,eraseLines:()=>Ua,eraseLine:()=>OO,eraseEndLine:()=>qa,eraseDown:()=>Ka,enterAlternativeScreen:()=>$a,cursorUp:()=>$O,cursorTo:()=>Qa,cursorShow:()=>Ra,cursorSavePosition:()=>Fa,cursorRestorePosition:()=>ua,cursorPrevLine:()=>Ja,cursorNextLine:()=>wa,cursorMove:()=>Ea,cursorLeft:()=>WO,cursorHide:()=>Ha,cursorGetPosition:()=>Ga,cursorForward:()=>Da,cursorDown:()=>Ca,cursorBackward:()=>ga,clearViewport:()=>Za,clearTerminal:()=>Xa,clearScreen:()=>Sa,beep:()=>Oa,ConEmu:()=>VO});import LJ from"node:process";import Aa from"node:os";var MJ=globalThis.window?.document!==void 0,xUA=globalThis.process?.versions?.node!==void 0,lUA=globalThis.process?.versions?.bun!==void 0,iUA=globalThis.Deno?.version?.deno!==void 0,mUA=globalThis.process?.versions?.electron!==void 0,cUA=globalThis.navigator?.userAgent?.includes("jsdom")===!0,nUA=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,dUA=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,sUA=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,rUA=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,NU=globalThis.navigator?.userAgentData?.platform,aUA=NU==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",pUA=NU==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",tUA=NU==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",oUA=NU==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),eUA=NU==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android";var $Q="\x1B[",YJ="\x1B]",tw="\x07",KU=";",XO=!MJ&&LJ.env.TERM_PROGRAM==="Apple_Terminal",Ia=!MJ&&LJ.platform==="win32",Ba=!MJ&&(LJ.env.TERM?.startsWith("screen")||LJ.env.TERM?.startsWith("tmux")||LJ.env.TMUX!==void 0),JL=MJ?()=>{throw Error("`process.cwd()` only works in Node.js, not the browser.")}:LJ.cwd,SJ=(A)=>{if(Ba)return"\x1BPtmux;"+A.replaceAll("\x1B","\x1B\x1B")+"\x1B\\";return A},Qa=(A,I)=>{if(typeof A!=="number")throw TypeError("The `x` argument is required");if(typeof I!=="number")return $Q+(A+1)+"G";return $Q+(I+1)+KU+(A+1)+"H"},Ea=(A,I)=>{if(typeof A!=="number")throw TypeError("The `x` argument is required");let B="";if(A<0)B+=$Q+-A+"D";else if(A>0)B+=$Q+A+"C";if(I<0)B+=$Q+-I+"A";else if(I>0)B+=$Q+I+"B";return B},$O=(A=1)=>$Q+A+"A",Ca=(A=1)=>$Q+A+"B",Da=(A=1)=>$Q+A+"C",ga=(A=1)=>$Q+A+"D",WO=$Q+"G",Fa=XO?"\x1B7":$Q+"s",ua=XO?"\x1B8":$Q+"u",Ga=$Q+"6n",wa=$Q+"E",Ja=$Q+"F",Ha=$Q+"?25l",Ra=$Q+"?25h",Ua=(A)=>{let I="";for(let B=0;B<A;B++)I+=OO+(B<A-1?$O():"");if(A)I+=WO;return I},qa=$Q+"K",Na=$Q+"1K",OO=$Q+"2K",Ka=$Q+"J",Ma=$Q+"1J",wq=$Q+"2J",La=$Q+"S",Ya=$Q+"T",Sa="\x1Bc",Za=`${wq}${$Q}H`,za=()=>{if(MJ||!Ia)return!1;let A=Aa.release().split("."),I=Number(A[0]),B=Number(A[2]??0);if(I<10)return!0;if(I===10&&B<10586)return!0;return!1},Xa=za()?`${wq}${$Q}0f`:`${wq}${$Q}3J${$Q}H`,$a=$Q+"?1049h",Wa=$Q+"?1049l",Oa=tw,ya=(A,I)=>{let B=SJ(`${YJ}8${KU}${KU}${I}${tw}`),C=SJ(`${YJ}8${KU}${KU}${tw}`);return B+A+C},Va=(A,I={})=>{let B=`${YJ}1337;File=inline=1`;if(I.width)B+=`;width=${I.width}`;if(I.height)B+=`;height=${I.height}`;if(I.preserveAspectRatio===!1)B+=";preserveAspectRatio=0";let C=Buffer.from(A);return SJ(B+`;size=${C.byteLength}:`+C.toString("base64")+tw)},yO={setCwd:(A=JL())=>SJ(`${YJ}50;CurrentDir=${A}${tw}`),annotation(A,I={}){let B=`${YJ}1337;`,C=I.x!==void 0,D=I.y!==void 0;if((C||D)&&!(C&&D&&I.length!==void 0))throw Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");if(A=A.replaceAll("|",""),B+=I.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",I.length>0)B+=(C?[A,I.length,I.x,I.y]:[I.length,A]).join("|");else B+=A;return SJ(B+tw)}},VO={setCwd:(A=JL())=>SJ(`${YJ}9;9;${A}${tw}`)},fa=(A=JL())=>yO.setCwd(A)+VO.setCwd(A);import{env as MU}from"node:process";var ja=MU.CI!=="0"&&MU.CI!=="false"&&(("CI"in MU)||("CONTINUOUS_INTEGRATION"in MU)||Object.keys(MU).some((A)=>A.startsWith("CI_"))),ew=ja;var Pa=(A)=>{let I=new Set;do for(let B of Reflect.ownKeys(A))I.add([A,B]);while((A=Reflect.getPrototypeOf(A))&&A!==Object.prototype);return I};function HL(A,{include:I,exclude:B}={}){let C=(D)=>{let u=(H)=>typeof H==="string"?D===H:H.test(D);if(I)return I.some(u);if(B)return!B.some(u);return!0};for(let[D,u]of Pa(A.constructor.prototype)){if(u==="constructor"||!C(u))continue;let H=Reflect.getOwnPropertyDescriptor(D,u);if(H&&typeof H.value==="function")A[u]=A[u].bind(A)}return A}var Wf=uB(KL(),1);import{PassThrough as jO}from"node:stream";var PO=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],ML={},Ta=(A)=>{let I=new jO,B=new jO;I.write=(D)=>{A("stdout",D)},B.write=(D)=>{A("stderr",D)};let C=new console.Console(I,B);for(let D of PO)ML[D]=console[D],console[D]=C[D];return()=>{for(let D of PO)console[D]=ML[D];ML={}}},TO=Ta;var ka=(()=>{var A=import.meta.url;return function(I){I=I||{};var B;B||(B=typeof I<"u"?I:{});var C,D;B.ready=new Promise(function(f,j){C=f,D=j});var u=Object.assign({},B),H="";typeof document<"u"&&document.currentScript&&(H=document.currentScript.src),A&&(H=A),H.indexOf("blob:")!==0?H=H.substr(0,H.replace(/[?#].*/,"").lastIndexOf("/")+1):H="";var R=B.print||console.log.bind(console),K=B.printErr||console.warn.bind(console);Object.assign(B,u),u=null;var M;B.wasmBinary&&(M=B.wasmBinary);var z=B.noExitRuntime||!0;typeof WebAssembly!="object"&&lA("no native wasm support detected");var y,Z=!1;function V(f,j,s){s=j+s;for(var o="";!(j>=s);){var CA=f[j++];if(!CA)break;if(CA&128){var LA=f[j++]&63;if((CA&224)==192)o+=String.fromCharCode((CA&31)<<6|LA);else{var hA=f[j++]&63;CA=(CA&240)==224?(CA&15)<<12|LA<<6|hA:(CA&7)<<18|LA<<12|hA<<6|f[j++]&63,65536>CA?o+=String.fromCharCode(CA):(CA-=65536,o+=String.fromCharCode(55296|CA>>10,56320|CA&1023))}}else o+=String.fromCharCode(CA)}return o}var v,x,c,BA,zA,wA,uA,EA,VA;function SA(){var f=y.buffer;v=f,B.HEAP8=x=new Int8Array(f),B.HEAP16=BA=new Int16Array(f),B.HEAP32=wA=new Int32Array(f),B.HEAPU8=c=new Uint8Array(f),B.HEAPU16=zA=new Uint16Array(f),B.HEAPU32=uA=new Uint32Array(f),B.HEAPF32=EA=new Float32Array(f),B.HEAPF64=VA=new Float64Array(f)}var uI,qA=[],VI=[],WQ=[];function QB(){var f=B.preRun.shift();qA.unshift(f)}var BI=0,ZA=null,QA=null;function lA(f){if(B.onAbort)B.onAbort(f);throw f="Aborted("+f+")",K(f),Z=!0,f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info."),D(f),f}function oA(f){return f.startsWith("data:application/octet-stream;base64,")}var kI="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBAQEBAQEBCAgBAQEAAg4CAgUBAR4DBAcBcAHUAdQBBQcBAYACgIACBg0CfwFBkMQEC38BQQALByQIAUUCAAFGAG0BRwCwAQFIAK8BAUkAYQFKAQABSwAjAUwApgEJjQMBAEEBC9MBqwGqAaUB5QHiAZwB0AFazwHOAVlZWpsBmgGZAc0BzAHLAcoBWpgByQFZWVqbAZoBmQHIAccBxgGjAZcBpAGWAaMBvQKVAbwCxQG7Ajq6Ajq5ApQBuAI+twI+xAFqwwFqwgFqaWjBAcABvwGhAZcBtgK+AbUClgGhAbQCmAGzAjqxAjqwAr0BrwKuAq0CrAKrAqoCqAKnAqYCpQKkAqMCogKhArwBoAKfAp4CnQKcApsCmgKZApgClwKWApUClAKTApICkQKQAo8CjgKyAo0CjAKLAooCiAKHAqkChQI+hAK7AYMCggKBAoAC/gH9AfwB+QG6AfgBuQH3AfYB9QH0AfMB8gHxAYYC8AHvAbgB+wH6Ae4B7QG3AesBlQHqATrpAT7oAT7nAZQB0QE67AE+iQLmATrkAeMBOuEB4AHfAT7eAd0B3AG2AdsB2gHZAdgB1wHWAdUBtQHUAdMB0gH/AWloaWiPAZABsgGxAZEBhQGSAbQBswGRAa4BrQGsAakBqAGnAYUBCtj+A6ACMwEBfyAAQQEgABshAAJAA0AgABBhIgENAUGIxAAoAgAiAQRAIAERCQAMAQsLEAIACyABC+0BAgJ9A39DAADAfyEEAkACQAJAAkAgAkEHcSIGDgUCAQEBAAELQQMhBQwBCyAGQQFrQQJPDQEgAkHw/wNxQQR2IQcCfSACQQhxBEAgASAHEJ4BvgwBC0EAIAdB/w9xIgFrIAEgAsFBAEgbsgshAyAGQQFGBEAgAyADXA0BQwAAwH8gAyADQwAAgH9bIANDAACA/1tyIgEbIQQgAUUhBQwBCyADIANcDQBBAEECIANDAACAf1sgA0MAAID/W3IiARshBUMAAMB/IAMgARshBAsgACAFOgAEIAAgBDgCAA8LQfQNQakYQTpB+RYQCwALZwIBfQF/QwAAwH8hAgJAAkACQCABQQdxDgQCAAABAAtBxBJBqRhByQBBuhIQCwALIAFB8P8DcUEEdiEDIAFBCHEEQCAAIAMQngG+DwtBACADQf8PcSIAayAAIAHBQQBIG7IhAgsgAgt4AgF/AX0jAEEQayIEJAAgBEEIaiAAQQMgAkECR0EBdCABQf4BcUECRxsgAhAoQwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAAAgBSAFWxsLeAIBfwF9IwBBEGsiBCQAIARBCGogAEEBIAJBAkZBAXQgAUH+AXFBAkcbIAIQKEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAIAUgBVsbC8wCAQV/IAAEQCAAQQRrIgEoAgAiBSEDIAEhAiAAQQhrKAIAIgAgAEF+cSIERwRAIAEgBGsiAigCBCIAIAIoAgg2AgggAigCCCAANgIEIAQgBWohAwsgASAFaiIEKAIAIgEgASAEakEEaygCAEcEQCAEKAIEIgAgBCgCCDYCCCAEKAIIIAA2AgQgASADaiEDCyACIAM2AgAgA0F8cSACakEEayADQQFyNgIAIAICfyACKAIAQQhrIgFB/wBNBEAgAUEDdkEBawwBCyABQR0gAWciAGt2QQRzIABBAnRrQe4AaiABQf8fTQ0AGkE/IAFBHiAAa3ZBAnMgAEEBdGtBxwBqIgAgAEE/TxsLIgFBBHQiAEHgMmo2AgQgAiAAQegyaiIAKAIANgIIIAAgAjYCACACKAIIIAI2AgRB6DpB6DopAwBCASABrYaENwMACwsOAEHYMigCABEJABBYAAunAQIBfQJ/IABBFGoiByACIAFBAkkiCCAEIAUQNSEGAkAgByACIAggBCAFEC0iBEMAAAAAYCADIARecQ0AIAZDAAAAAGBFBEAgAyEEDAELIAYgAyADIAZdGyEECyAAQRRqIgAgASACIAUQOCAAIAEgAhAwkiAAIAEgAiAFEDcgACABIAIQL5KSIgMgBCADIAReGyADIAQgBCAEXBsgBCAEWyADIANbcRsLvwEBA38gAC0AAEEgcUUEQAJAIAEhAwJAIAIgACIBKAIQIgAEfyAABSABEJ0BDQEgASgCEAsgASgCFCIFa0sEQCABIAMgAiABKAIkEQYAGgwCCwJAIAEoAlBBAEgNACACIQADQCAAIgRFDQEgAyAEQQFrIgBqLQAAQQpHDQALIAEgAyAEIAEoAiQRBgAgBEkNASADIARqIQMgAiAEayECIAEoAhQhBQsgBSADIAIQKxogASABKAIUIAJqNgIUCwsLCwYAIAAQIwtQAAJAAkACQAJAAkAgAg4EBAABAgMLIAAgASABQQxqEEMPCyAAIAEgAUEMaiADEEQPCyAAIAEgAUEMahBCDwsQJAALIAAgASABQQxqIAMQRQttAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiARsQKhogAUUEQANAIAAgBUGAAhAmIANBgAJrIgNB/wFLDQALCyAAIAUgAxAmCyAFQYACaiQAC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRrIAE2AgAgAkEYayABNgIAIAJBHGsgATYCACAEIANBBHFBGHIiBGsiAkEgSQ0AIAGtQoGAgIAQfiEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAAC4AEAQN/IAJBgARPBEAgACABIAIQFyAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAtIAQF/IwBBEGsiBCQAIAQgAzYCDAJAIABFBEBBAEEAIAEgAiAEKAIMEHEMAQsgACgC9AMgACABIAIgBCgCDBBxCyAEQRBqJAALkwECAX0BfyMAQRBrIgYkACAGQQhqIABB6ABqIAAgAkEBdGovAWIQH0MAAMB/IQUCQAJAAkAgBi0ADEEBaw4CAAECCyAGKgIIIQUMAQsgBioCCCADlEMK1yM8lCEFCyAALQADQRB0QYCAwABxBEAgBSAAIAEgAiAEEFQiA0MAAAAAIAMgA1sbkiEFCyAGQRBqJAAgBQu1AQECfyAAKAIEQQFqIgEgACgCACICKALsAyACKALoAyICa0ECdU8EQANAIAAoAggiAUUEQCAAQQA2AgggAEIANwIADwsgACABKAIENgIAIAAgASgCCDYCBCAAIAEoAgA2AgggARAjIAAoAgRBAWoiASAAKAIAIgIoAuwDIAIoAugDIgJrQQJ1Tw0ACwsgACABNgIEIAIgAUECdGooAgAtABdBEHRBgIAwcUGAgCBGBEAgABB9CwuBAQIBfwF9IwBBEGsiAyQAIANBCGogAEEDIAJBAkdBAXQgAUH+AXFBAkcbIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC4EBAgF/AX0jAEEQayIDJAAgA0EIaiAAQQEgAkECRkEBdCABQf4BcUECRxsgAhBTQwAAwH8hBAJAAkACQCADLQAMQQFrDgIAAQILIAMqAgghBAwBCyADKgIIQwAAAACUQwrXIzyUIQQLIANBEGokACAEQwAAAACXQwAAAAAgBCAEWxsLeAICfQF/IAAgAkEDdGoiByoC+AMhBkMAAMB/IQUCQAJAAkAgBy0A/ANBAWsOAgABAgsgBiEFDAELIAYgA5RDCtcjPJQhBQsgAC0AF0EQdEGAgMAAcQR9IAUgAEEUaiABIAIgBBBUIgNDAAAAACADIANbG5IFIAULC1EBAX8CQCABKALoAyICIAEoAuwDRwRAIABCADcCBCAAIAE2AgAgAigCAC0AF0EQdEGAgDBxQYCAIEcNASAAEH0PCyAAQgA3AgAgAEEANgIICwvoAgECfwJAIAAgAUYNACABIAAgAmoiBGtBACACQQF0a00EQCAAIAEgAhArDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkEBayECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkEBayICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQQRrIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkEBayICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AA0AgAyABKAIANgIAIAFBBGohASADQQRqIQMgAkEEayICQQNLDQALCyACRQ0AA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAAC5QCAgF8AX8CQCAAIAGiIgAQbCIERAAAAAAAAPA/oCAEIAREAAAAAAAAAABjGyIEIARiIgUgBJlELUMc6+I2Gj9jRXJFBEAgACAEoSEADAELIAUgBEQAAAAAAADwv6CZRC1DHOviNho/Y0VyRQRAIAAgBKFEAAAAAAAA8D+gIQAMAQsgACAEoSEAIAIEQCAARAAAAAAAAPA/oCEADAELIAMNACAAAnxEAAAAAAAAAAAgBQ0AGkQAAAAAAADwPyAERAAAAAAAAOA/ZA0AGkQAAAAAAADwP0QAAAAAAAAAACAERAAAAAAAAOC/oJlELUMc6+I2Gj9jGwugIQALIAAgAGIgASABYnIEQEMAAMB/DwsgACABo7YLkwECAX0BfyMAQRBrIgYkACAGQQhqIABB6ABqIAAgAkEBdGovAV4QH0MAAMB/IQUCQAJAAkAgBi0ADEEBaw4CAAECCyAGKgIIIQUMAQsgBioCCCADlEMK1yM8lCEFCyAALQADQRB0QYCAwABxBEAgBSAAIAEgAiAEEFQiA0MAAAAAIAMgA1sbkiEFCyAGQRBqJAAgBQtQAAJAAkACQAJAAkAgAg4EBAABAgMLIAAgASABQR5qEEMPCyAAIAEgAUEeaiADEEQPCyAAIAEgAUEeahBCDwsQJAALIAAgASABQR5qIAMQRQt+AgF/AX0jAEEQayIEJAAgBEEIaiAAQQMgAkECR0EBdCABQf4BcUECRxsgAhBQQwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAACXQwAAAAAgBSAFWxsLfgIBfwF9IwBBEGsiBCQAIARBCGogAEEBIAJBAkZBAXQgAUH+AXFBAkcbIAIQUEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAl0MAAAAAIAUgBVsbC08AAkACQAJAIANB/wFxIgMOBAACAgECCyABIAEvAABB+P8DcTsAAA8LIAEgAS8AAEH4/wNxQQRyOwAADwsgACABIAJBAUECIANBAUYbEEwLNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEBAAtiAgJ9An8CQCAAKALkA0UNACAAQfwAaiIDIABBGmoiBC8BABAgIgIgAlwEQCADIABBGGoiBC8BABAgIgIgAlwNASADIAAvARgQIEMAAAAAXkUNAQsgAyAELwEAECAhAQsgAQtfAQN/IAEEQEEMEB4iAyABKQIENwIEIAMhAiABKAIAIgEEQCADIQQDQEEMEB4iAiABKQIENwIEIAQgAjYCACACIQQgASgCACIBDQALCyACIAAoAgA2AgAgACADNgIACwvXawMtfxx9AX4CfwJAIAAtAABBBHEEQCAAKAKgASAMRw0BCyAAKAKkASAAKAL0AygCDEcNAEEAIAAtAKgBIANGDQEaCyAAQoCAgPyLgIDAv383AoADIABCgYCAgBA3AvgCIABCgICA/IuAgMC/fzcC8AIgAEEANgKsAUEBCyErAkACQAJAAkAgACgCCARAIABBFGoiDkECQQEgBhAiIT4gDkECQQEgBhAhITwgDkEAQQEgBhAiITsgDkEAQQEgBhAhIUAgBCABIAUgAiAAKAL4AiAAQfACaiIOKgIAIAAoAvwCIAAqAvQCIAAqAoADIAAqAoQDID4gPJIiPiA7IECSIjwgACgC9AMiEBB7DQEgACgCrAEiEUUNAyAAQbABaiETA0AgBCABIAUgAiATIB1BGGxqIg4oAgggDioCACAOKAIMIA4qAgQgDioCECAOKgIUID4gPCAQEHsNAiAdQQFqIh0gEUcNAAsMAgsgCEUEQCAAKAKsASITRQ0CIABBsAFqIRADQAJAAkAgECAdQRhsIhFqIg4qAgAiPiA+XCABIAFcckUEQCA+IAGTi0MXt9E4XQ0BDAILIAEgAVsgPiA+W3INAQsCQCAQIBFqIhEqAgQiPiA+XCACIAJcckUEQCA+IAKTi0MXt9E4XQ0BDAILIAIgAlsgPiA+W3INAQsgESgCCCAERw0AIBEoAgwgBUYNAwsgEyAdQQFqIh1HDQALDAILAkAgAEHwAmoiDioCACI+ID5cIAEgAVxyRQRAID4gAZOLQxe30ThdDQEMBAsgASABWyA+ID5bcg0DCyAOQQAgACgC/AIgBUYbQQAgACgC+AIgBEYbQQACfyACIAJcIg4gACoC9AIiPiA+XHJFBEAgPiACk4tDF7fROF0MAQtBACA+ID5bDQAaIA4LGyEOCyAORSArcgRAIA4hHQwCCyAAIA4qAhA4ApQDIAAgDioCFDgCmAMgCkEMQRAgCBtqIgMgAygCAEEBajYCACAOIR0MAgtBACEdCyAGIUAgByFHIAtBAWohIiMAQaABayINJAACQAJAIARBAUYgASABW3JFBEAgDUGqCzYCICAAQQVB2CUgDUEgahAsDAELIAVBAUYgAiACW3JFBEAgDUHZCjYCECAAQQVB2CUgDUEQahAsDAELIApBAEEEIAgbaiILIAsoAgBBAWo2AgAgACAALQCIA0H8AXEgAC0AFEEDcSILIANBASADGyIsIAsbIg9BA3FyOgCIAyAAQawDaiIQIA9BAUdBA3QiC2ogAEEUaiIUQQNBAiAPQQJGGyIRIA8gQBAiIgY4AgAgECAPQQFGQQN0Ig5qIBQgESAPIEAQISIHOAIAIAAgFEEAIA8gQBAiIjw4ArADIAAgFEEAIA8gQBAhIjs4ArgDIABBvANqIhAgC2ogFCARIA8QMDgCACAOIBBqIBQgESAPEC84AgAgACAUQQAgDxAwOALAAyAAIBRBACAPEC84AsgDIAsgAEHMA2oiC2ogFCARIA8gQBA4OAIAIAsgDmogFCARIA8gQBA3OAIAIAAgFEEAIA8gQBA4OALQAyAAIBRBACAPIEAQNyI6OALYAyAGIAeSIT4gPCA7kiE8AkACQCAAKAIIIgsEQEMAAMB/IAEgPpMgBEEBRhshBkMAAMB/IAIgPJMgBUEBRhshPiAAAn0gBCAFckUEQCAAIABBAiAPIAYgQCBAECU4ApQDIABBACAPID4gRyBAECUMAQsgBEEDTyAFQQNPcg0EIA1BiAFqIAAgBiAGIAAqAswDIAAqAtQDkiAAKgK8A5IgACoCxAOSIjyTIgdDAAAAACAHQwAAAABeGyAGIAZcG0GBgAggBEEDdEH4//8HcXZB/wFxID4gPiAAKgLQAyA6kiAAKgLAA5IgACoCyAOSIjuTIgdDAAAAACAHQwAAAABeGyA+ID5cG0GBgAggBUEDdEH4//8HcXZB/wFxIAsREAAgDSoCjAEiPUMAAAAAYCANKgKIASIHQwAAAABgcUUEQCANID27OQMIIA0gB7s5AwAgAEEBQdwdIA0QLCANKgKMASIHQwAAAAAgB0MAAAAAXhshPSANKgKIASIHQwAAAAAgB0MAAAAAXhshBwsgCiAKKAIUQQFqNgIUIAogCUECdGoiCSAJKAIYQQFqNgIYIAAgAEECIA8gPCAHkiAGIARBAWtBAkkbIEAgQBAlOAKUAyAAQQAgDyA7ID2SID4gBUEBa0ECSRsgRyBAECULOAKYAwwBCwJAIAAoAuADRQRAIAAoAuwDIAAoAugDa0ECdSELDAELIA1BiAFqIAAQMgJAIA0oAogBRQRAQQAhCyANKAKMAUUNAQsgDUGAAWohEEEAIQsDQCANQQA2AoABIA0gDSkDiAE3A3ggECANKAKQARA8IA1BiAFqEC4gDSgCgAEiCQRAA0AgCSgCACEOIAkQJyAOIgkNAAsLIAtBAWohCyANQQA2AoABIA0oAowBIA0oAogBcg0ACwsgDSgCkAEiCUUNAANAIAkoAgAhDiAJECcgDiIJDQALCyALRQRAIAAgAEECIA8gBEEBa0EBSwR9IAEgPpMFIAAqAswDIAAqAtQDkiAAKgK8A5IgACoCxAOSCyBAIEAQJTgClAMgACAAQQAgDyAFQQFrQQFLBH0gAiA8kwUgACoC0AMgACoC2AOSIAAqAsADkiAAKgLIA5ILIEcgQBAlOAKYAwwBCwJAIAgNACAFQQJGIAIgPJMiBiAGW3EgBkMAAAAAX3EgBCAFckUgBEECRiABID6TIgdDAAAAAF9xcnJFDQAgACAAQQIgD0MAAAAAQwAAAAAgByAHQwAAAABdGyAHIARBAkYbIAcgB1wbIEAgQBAlOAKUAyAAIABBACAPQwAAAABDAAAAACAGIAZDAAAAAF0bIAYgBUECRhsgBiAGXBsgRyBAECU4ApgDDAELIAAQTyAAIAAtAIgDQfsBcToAiAMgABBeQQMhEyAALQAUQQJ2QQNxIQkCQAJAIA9BAkcNAAJAIAlBAmsOAgIAAQtBAiETDAELIAkhEwsgAC8AFSEnIBQgEyAPIEAQOCEGIBQgEyAPEDAhByAUIBMgDyBAEDchOyAUIBMgDxAvITpBACEQIBQgEUEAIBNBAkkbIhYgDyBAEDghPyAUIBYgDxAwIT0gFCAWIA8gQBA3IUEgFCAWIA8QLyFEIBQgFiAPIEAQYCFCIBQgFiAPEEshQyAAIA9BACABID6TIlAgBiAHkiA7IDqSkiJKID8gPZIgQSBEkpIiRiATQQFLIhkbIEAgQBB6ITsgACAPQQEgAiA8kyJRIEYgSiAZGyBHIEAQeiFFAkACQCAEIAUgGRsiHA0AIA1BiAFqIAAQMgJAAkAgDSgCiAEiDiANKAKMASIJckUNAANAIA4oAuwDIA4oAugDIg5rQQJ1IAlNDQQCQCAOIAlBAnRqKAIAIgkQeUUNACAQDQIgCRA7IgYgBlsgBotDF7fROF1xDQIgCRBAIgYgBlwEQCAJIRAMAQsgCSEQIAaLQxe30ThdDQILIA1BiAFqEC4gDSgCjAEiCSANKAKIASIOcg0ACwwBC0EAIRALIA0oApABIglFDQADQCAJKAIAIQ4gCRAnIA4iCQ0ACwsgDUGIAWogABAyIA0oAowBIQkCQCANKAKIASIORQRAQwAAAAAhPSAJRQ0BCyBFIEVcIiMgBUEAR3IhKCA7IDtcIiQgBEEAR3IhKUMAAAAAIT0DQCAOKALsAyAOKALoAyIOa0ECdSAJTQ0CIA4gCUECdGooAgAiDhB4AkAgDi8AFSAOLQAXQRB0ciIJQYCAMHFBgIAQRgRAIA4QdyAOIA4tAAAiCUEBciIOQfsBcSAOIAlBBHEbOgAADAELIAgEfyAOIA4tABRBA3EiCSAPIAkbIDsgRRB2IA4vABUgDi0AF0EQdHIFIAkLQYDgAHFBgMAARg0AIA5BFGohEQJAIA4gEEYEQCAQQQA2ApwBIBAgDDYCmAFDAAAAACEHDAELIBQtAABBAnZBA3EhCQJAAkAgD0ECRw0AQQMhEgJAIAlBAmsOAgIAAQtBAiESDAELIAkhEgsgDUGAgID+BzYCaCANQYCAgP4HNgJQIA1B+ABqIA5B/ABqIhcgDi8BHhAfIDsgRSASQQFLIh4bIT4CQAJAAkACQCANLQB8IgkOBAABAQABCwJAIBcgDi8BGBAgIgYgBlwNACAXIA4vARgQIEMAAAAAXkUNACAOKAL0Ay0ACEEBcSIJDQBDAADAf0MAAAAAIAkbIQcMAgtDAADAfyEGDAILIA0qAnghB0MAAMB/IQYCQCAJQQFrDgIBAAILIAcgPpRDCtcjPJQhBgwBCyAHIQYLIA4tABdBEHRBgIDAAHEEQCAGIBEgD0GBAiASQQN0dkEBcSA7EFQiBkMAAAAAIAYgBlsbkiEGCyAOKgL4AyEHQQAhH0EAIRgCQAJAAkAgDi0A/ANBAWsOAgEAAgsgOyAHlEMK1yM8lCEHCyAHIAdcDQAgB0MAAAAAYCEYCyAOKgKABCEHAkACQAJAIA4tAIQEQQFrDgIBAAILIEUgB5RDCtcjPJQhBwsgByAHXA0AIAdDAAAAAGAhHwsCQCAOAn0gBiAGXCIJID4gPlxyRQRAIA4qApwBIgcgB1sEQCAOKAL0Ay0AEEEBcUUNAyAOKAKYASAMRg0DCyARIBIgDyA7EDggESASIA8QMJIgESASIA8gOxA3IBEgEiAPEC+SkiIHIAYgBiAHXRsgByAGIAkbIAYgBlsgByAHW3EbDAELIBggHnEEQCARQQIgDyA7EDggEUECIA8QMJIgEUECIA8gOxA3IBFBAiAPEC+SkiIHIA4gD0EAIDsgOxAxIgYgBiAHXRsgByAGIAYgBlwbIAYgBlsgByAHW3EbDAELIB4gH0VyRQRAIBFBACAPIDsQOCARQQAgDxAwkiARQQAgDyA7EDcgEUEAIA8QL5KSIgcgDiAPQQEgRSA7EDEiBiAGIAddGyAHIAYgBiAGXBsgBiAGWyAHIAdbcRsMAQtBASEaIA1BATYCZCANQQE2AnggEUECQQEgOxAiIBFBAkEBIDsQIZIhPiARQQBBASA7ECIhPCARQQBBASA7ECEhOkMAAMB/IQdBASEVQwAAwH8hBiAYBEAgDiAPQQAgOyA7EDEhBiANQQA2AnggDSA+IAaSIgY4AmhBACEVCyA8IDqSITwgHwRAIA4gD0EBIEUgOxAxIQcgDUEANgJkIA0gPCAHkiIHOAJQQQAhGgsCQAJAAkAgAC0AF0EQdEGAgAxxQYCACEYiCSASQQJJIiBxRQRAIAkgJHINAiAGIAZcDQEMAgsgJCAGIAZbcg0CC0ECIRUgDUECNgJ4IA0gOzgCaCA7IQYLAkAgIEEBIAkbBEAgCSAjcg0CIAcgB1wNAQwCCyAjIAcgB1tyDQELQQIhGiANQQI2AmQgDSBFOAJQIEUhBwsCQCAXIA4vAXoQICI6IDpcDQACfyAVIB5yRQRAIBcgDi8BehAgIQcgDUEANgJkIA0gPCAGID6TIAeVkjgCUEEADAELIBogIHINASAXIA4vAXoQICEGIA1BADYCeCANIAYgByA8k5QgPpI4AmhBAAshGkEAIRULIA4vABZBD3EiCUUEQCAALQAVQQR2IQkLAkAgFUUgCUEFRiAeciAYIClyIAlBBEdycnINACANQQA2AnggDSA7OAJoIBcgDi8BehAgIgYgBlwNAEEAIRogFyAOLwF6ECAhBiANQQA2AmQgDSA7ID6TIAaVOAJQCyAOLwAWQQ9xIhhFBEAgAC0AFUEEdiEYCwJAICAgKHIgH3IgGEEFRnIgGkUgGEEER3JyDQAgDUEANgJkIA0gRTgCUCAXIA4vAXoQICIGIAZcDQAgFyAOLwF6ECAhBiANQQA2AnggDSAGIEUgPJOUOAJoCyAOIA9BAiA7IDsgDUH4AGogDUHoAGoQPyAOIA9BACBFIDsgDUHkAGogDUHQAGoQPyAOIA0qAmggDSoCUCAPIA0oAnggDSgCZCA7IEVBAEEFIAogIiAMED0aIA4gEkECdEH8JWooAgBBAnRqKgKUAyEGIBEgEiAPIDsQOCARIBIgDxAwkiARIBIgDyA7EDcgESASIA8QL5KSIgcgBiAGIAddGyAHIAYgBiAGXBsgBiAGWyAHIAdbcRsLIgc4ApwBCyAOIAw2ApgBCyA9IAcgESATQQEgOxAiIBEgE0EBIDsQIZKSkiE9CyANQYgBahAuIA0oAowBIgkgDSgCiAEiDnINAAsLIA0oApABIgkEQANAIAkoAgAhDiAJECcgDiIJDQALCyA7IEUgGRshByA9QwAAAACSIQYgC0ECTwRAIBQgEyAHEE0gC0EBa7OUIAaSIQYLIEIgQ5IhPiAFIAQgGRshGiBHIEAgGRshTSBAIEcgGRshSSANQdAAaiAAEDJBACAcIAYgB14iCxsgHCAcQQJGGyAcICdBgIADcSIfGyEeIBQgFiBFIDsgGRsiRBBNIU8gDSgCVCIRIA0oAlAiCXIEQEEBQQIgRCBEXCIpGyEtIAtFIBxBAUZyIS4gE0ECSSEZIABB8gBqIS8gAEH8AGohMCATQQJ0IgtB7CVqITEgC0HcJWohMiAWQQJ0Ig5B7CVqIRwgDkHcJWohICALQfwlaiEkIA5B/CVqISMgGkEARyIzIAhyITQgGkUiNSAIQQFzcSE2IBogH3JFITcgDUHwAGohOCANQYABaiEnQYECIBNBA3R2Qf8BcSEoIBpBAWtBAkkhOQNAIA1BADYCgAEgDUIANwN4AkAgACgC7AMiCyAAKALoAyIORg0AIAsgDmsiC0EASA0DIA1BiAFqIAtBAnVBACAnEEohECANKAKMASANKAJ8IA0oAngiC2siDmsgCyAOEDMhDiANIA0oAngiCzYCjAEgDSAONgJ4IA0pA5ABIVYgDSANKAJ8Ig42ApABIA0oAoABIRIgDSBWNwJ8IA0gEjYClAEgECALNgIAIAsgDkcEQCANIA4gCyAOa0EDakF8cWo2ApABCyALRQ0AIAsQJwsgFC0AACIOQQJ2QQNxIQsCQAJAIA5BA3EiDiAsIA4bIhJBAkcNAEEDIRACQCALQQJrDgICAAELQQIhEAwBCyALIRALIAAvABUhCyAUIBAgBxBNIT8CQCAJIBFyRQRAQwAAAAAhQ0EAIRFDAAAAACFCQwAAAAAhQUEAIRUMAQsgC0GAgANxISUgEEECSSEYIBBBAnQiC0HsJWohISALQdwlaiEqQQAhFUMAAAAAIUEgESEOQwAAAAAhQkMAAAAAIUNBACEXQwAAAAAhPQNAIAkoAuwDIAkoAugDIglrQQJ1IA5NDQQCQCAJIA5BAnRqKAIAIgkvABUgCS0AF0EQdHIiC0GAgDBxQYCAEEYgC0GA4ABxQYDAAEZyDQAgDUGIAWoiESAJQRRqIgsgKigCACADECggDS0AjAEhJiARIAsgISgCACADECggDS0AjAEhESAJIBs2AtwDIBUgJkEDRmohFSARQQNGIREgCyAQQQEgOxAiIUsgCyAQQQEgOxAhIU4gCSAXIAkgFxsiF0YhJiAJKgKcASE8IAsgEiAYIEkgQBA1IToCQCALIBIgGCBJIEAQLSIGQwAAAABgIAYgPF1xDQAgOkMAAAAAYEUEQCA8IQYMAQsgOiA8IDogPF4bIQYLIBEgFWohFQJAICVFQwAAAAAgPyAmGyI8IEsgTpIiOiA9IAaSkpIgB15Fcg0AIA0oAnggDSgCfEYNACAOIREMAwsgCRB5BEAgQiAJEDuSIUIgQyAJEEAgCSoCnAGUkyFDCyBBIDwgOiAGkpIiBpIhQSA9IAaSIT0gDSgCfCILIA0oAoABRwRAIAsgCTYCACANIAtBBGo2AnwMAQsgCyANKAJ4ayILQQJ1IhFBAWoiDkGAgICABE8NBSANQYgBakH/////AyALQQF1IiYgDiAOICZJGyALQfz///8HTxsgESAnEEohDiANKAKQASAJNgIAIA0gDSgCkAFBBGo2ApABIA0oAowBIA0oAnwgDSgCeCIJayILayAJIAsQMyELIA0gDSgCeCIJNgKMASANIAs2AnggDSkDkAEhViANIA0oAnwiCzYCkAEgDSgCgAEhESANIFY3AnwgDSARNgKUASAOIAk2AgAgCSALRwRAIA0gCyAJIAtrQQNqQXxxajYCkAELIAlFDQAgCRAnCyANQQA2AnAgDSANKQNQNwNoIDggDSgCWBA8IA1B0ABqEC4gDSgCcCIJBEADQCAJKAIAIQsgCRAnIAsiCQ0ACwtBACERIA1BADYCcCANKAJUIg4gDSgCUCIJcg0ACwtDAACAPyBCIEJDAACAP10bIEIgQkMAAAAAXhshPCANKAJ8IRcgDSgCeCEJAn0CQAJ9AkACQAJAIB5FDQAgFCAPQQAgQCBAEDUhBiAUIA9BACBAIEAQLSE6IBQgD0EBIEcgQBA1IT8gFCAPQQEgRyBAEC0hPSAGID8gE0EBSyILGyBKkyIGIAZbIAYgQV5xDQEgOiA9IAsbIEqTIgYgBlsgBiBBXXENASAAKAL0Ay0AFEEBcQ0AIEEgPEMAAAAAWw0DGiAAEDsiBiAGXA0CIEEgABA7QwAAAABbDQMaDAILIAchBgsgBiAGWw0CIAYhBwsgBwshBiBBjEMAAAAAIEFDAAAAAF0bIT8gBgwBCyAGIEGTIT8gBgshByA2RQRAAkAgCSAXRgRAQwAAAAAhQQwBC0MAAIA/IEMgQ0MAAIA/XRsgQyBDQwAAAABeGyE9QwAAAAAhQSAJIQ4DQCAOKAIAIgsqApwBITogC0EUaiIQIA8gGSBJIEAQNSFCAkAgECAPIBkgSSBAEC0iBkMAAAAAYCAGIDpdcQ0AIEJDAAAAAGBFBEAgOiEGDAELIEIgOiA6IEJdGyEGCwJAID9DAAAAAF0EQCAGIAsQQIyUIjpDAAAAAF4gOkMAAAAAXXJFDQEgCyATIA8gPyA9lSA6lCAGkiJCIAcgOxAlITogQiBCXCA6IDpcciA6IEJbcg0BIEEgOiAGk5IhQSALEEAgCyoCnAGUID2SIT0MAQsgP0MAAAAAXkUNACALEDsiQkMAAAAAXiBCQwAAAABdckUNACALIBMgDyA/IDyVIEKUIAaSIkMgByA7ECUhOiBDIENcIDogOlxyIDogQ1tyDQAgPCBCkyE8IEEgOiAGk5IhQQsgDkEEaiIOIBdHDQALID8gQZMiQiA9lSFLIEIgPJUhTiAALwAVQYCAA3FFIC5yISVDAAAAACFBIAkhCwNAIAsoAgAiDioCnAEhPCAOQRRqIhggDyAZIEkgQBA1IToCQCAYIA8gGSBJIEAQLSIGQwAAAABgIAYgPF1xDQAgOkMAAAAAYEUEQCA8IQYMAQsgOiA8IDogPF4bIQYLAn0gDiATIA8CfSBCQwAAAABdBEAgBiAGIA4QQIyUIjxDAAAAAFsNAhogBiA8kiA9QwAAAABbDQEaIEsgPJQgBpIMAQsgBiBCQwAAAABeRQ0BGiAGIA4QOyI8QwAAAABeIDxDAAAAAF1yRQ0BGiBOIDyUIAaSCyAHIDsQJQshQyAYIBNBASA7ECIhPCAYIBNBASA7ECEhOiAYIBZBASA7ECIhUiAYIBZBASA7ECEhUyANIEMgPCA6kiJUkiJVOAJoIA1BADYCYCBSIFOSITwCQCAOQfwAaiIQIA4vAXoQICI6IDpbBEAgECAOLwF6ECAhOiANQQA2AmQgDSA8IFUgVJMiPCA6lCA8IDqVIBkbkjgCeAwBCyAjKAIAIRACQCApDQAgDiAQQQN0aiIhKgL4AyE6QQAhEgJAAkACQCAhLQD8A0EBaw4CAQACCyBEIDqUQwrXIzyUIToLIDogOlwNACA6QwAAAABgIRILICUgNSASQQFzcXFFDQAgDi8AFkEPcSISBH8gEgUgAC0AFUEEdgtBBEcNACANQYgBaiAYICAoAgAgDxAoIA0tAIwBQQNGDQAgDUGIAWogGCAcKAIAIA8QKCANLQCMAUEDRg0AIA1BADYCZCANIEQ4AngMAQsgDkH4A2oiEiAQQQN0aiIQKgIAIToCQAJAAkACQCAQLQAEQQFrDgIBAAILIEQgOpRDCtcjPJQhOgsgOkMAAAAAYA0BCyANIC02AmQgDSBEOAJ4DAELAkACfwJAAkACQCAWQQJrDgICAAELIDwgDiAPQQAgRCA7EDGSITpBAAwCC0EBIRAgDSA8IA4gD0EBIEQgOxAxkiI6OAJ4IBNBAU0NDAwCCyA8IA4gD0EAIEQgOxAxkiE6QQALIRAgDSA6OAJ4CyANIDMgEiAQQQN0ajEABEIghkKAgICAIFFxIDogOlxyNgJkCyAOIA8gEyAHIDsgDUHgAGogDUHoAGoQPyAOIA8gFiBEIDsgDUHkAGogDUH4AGoQPyAOICMoAgBBA3RqIhAqAvgDIToCQAJAAkACQCAQLQD8A0EBaw4CAQACCyBEIDqUQwrXIzyUIToLQQEhECA6QwAAAABgDQELQQEhECAOLwAWQQ9xIhIEfyASBSAALQAVQQR2C0EERw0AIA1BiAFqIBggICgCACAPECggDS0AjAFBA0YNACANQYgBaiAYIBwoAgAgDxAoIA0tAIwBQQNGIRALIA4gDSoCaCI8IA0qAngiOiATQQFLIhIbIDogPCASGyAALQCIA0EDcSANKAJgIhggDSgCZCIhIBIbICEgGCASGyA7IEUgCCAQcSIQQQRBByAQGyAKICIgDBA9GiBBIEMgBpOSIUEgAAJ/IAAtAIgDIhBBBHFFBEBBACAOLQCIA0EEcUUNARoLQQQLIBBB+wFxcjoAiAMgC0EEaiILIBdHDQALCyA/IEGTIT8LIAAgAC0AiAMiC0H7AXFBBCA/QwAAAABdQQJ0IAtBBHFBAnYbcjoAiAMgFCATIA8gQBBgIBQgEyAPEEuSITogFCATIA8gQBB/IBQgEyAPEFKSIUsgFCATIAcQTSFCAn8CQAJ9ID9DAAAAAF5FIB5BAkdyRQRAIA1BiAFqIDAgLyAkKAIAQQF0ai8BABAfAkAgDS0AjAEEQCAUIA8gKCBJIEAQNSIGIAZbDQELQwAAAAAMAgtDAAAAACAUIA8gKCBJIEAQNSA6kyBLkyAHID+TkyI/QwAAAABeRQ0BGgsgP0MAAAAAYEUNASA/CyE8IBQtAABBBHZBB3EMAQsgPyE8IBQtAABBBHZBB3EiC0EAIAtBA2tBA08bCyELQwAAAAAhBgJAAkAgFQ0AQwAAAAAhPQJAAkACQAJAAkAgC0EBaw4FAAECBAMGCyA8QwAAAD+UIT0MBQsgPCE9DAQLIBcgCWsiC0EFSQ0CIEIgPCALQQJ1QQFrs5WSIUIMAgsgQiA8IBcgCWtBAnVBAWqzlSI9kiFCDAILIDxDAAAAP5QgFyAJa0ECdbOVIj0gPZIgQpIhQgwBC0MAAAAAIT0LIDogPZIhPSAAEHwhEgJAIAkgF0YiGARAQwAAAAAhP0MAAAAAIToMAQsgF0EEayElIDwgFbOVIU4gMigCACEhQwAAAAAhOkMAAAAAIT8gCSELA0AgDUGIAWogCygCACIOQRRqIhAgISAPECggPUMAAACAIE5DAAAAgCA8QwAAAABeGyJBIA0tAIwBQQNHG5IhPSAIBEACfwJAAkACQAJAIBNBAWsOAwECAwALQQEhFSAOQaADagwDC0EDIRUgDkGoA2oMAgtBACEVIA5BnANqDAELQQIhFSAOQaQDagshKiAOIBVBAnRqICoqAgAgPZI4ApwDCyAlKAIAIRUgDUGIAWogECAxKAIAIA8QKCA9QwAAAIAgQiAOIBVGG5JDAAAAgCBBIA0tAIwBQQNHG5IhPQJAIDRFBEAgPSAQIBNBASA7ECIgECATQQEgOxAhkiAOKgKcAZKSIT0gRCEGDAELIA4gEyA7EF0gPZIhPSASBEAgDhBOIUEgEEEAIA8gOxBBIUMgDioCmAMgEEEAQQEgOxAiIBBBAEEBIDsQIZKSIEEgQ5IiQZMiQyA/ID8gQ10bIEMgPyA/ID9cGyA/ID9bIEMgQ1txGyE/IEEgOiA6IEFdGyBBIDogOiA6XBsgOiA6WyBBIEFbcRshOgwBCyAOIBYgOxBdIkEgBiAGIEFdGyBBIAYgBiAGXBsgBiAGWyBBIEFbcRshBgsgC0EEaiILIBdHDQALCyA/IDqSIAYgEhshQQJ9IDkEQCAAIBYgDyBGIEGSIE0gQBAlIEaTDAELIEQgQSA3GyFBIEQLIT8gH0UEQCAAIBYgDyBGIEGSIE0gQBAlIEaTIUELIEsgPZIhPAJAIAhFDQAgCSELIBgNAANAIAsoAgAiFS8AFkEPcSIORQRAIAAtABVBBHYhDgsCQAJAAkACQCAOQQRrDgIAAQILIA1BiAFqIBVBFGoiECAgKAIAIA8QKEEEIQ4gDS0AjAFBA0YNASANQYgBaiAQIBwoAgAgDxAoIA0tAIwBQQNGDQEgFSAjKAIAQQN0aiIOKgL4AyE9AkACQAJAIA4tAPwDQQFrDgIBAAILIEQgPZRDCtcjPJQhPQsgPiEGID1DAAAAAGANAwsgFSAkKAIAQQJ0aioClAMhBiANIBVB/ABqIg4gFS8BehAgIjogOlsEfSAQIBZBASA7ECIgECAWQQEgOxAhkiAGIA4gFS8BehAgIjqUIAYgOpUgGRuSBSBBCzgCeCANIAYgECATQQEgOxAiIBAgE0EBIDsQIZKSOAKIASANQQA2AmggDUEANgJkIBUgDyATIAcgOyANQegAaiANQYgBahA/IBUgDyAWIEQgOyANQeQAaiANQfgAahA/IA0qAngiOiANKgKIASI9IBNBAUsiGCIOGyEGIB9BAEcgAC8AFUEPcUEER3EiECAZcSA9IDogDhsiOiA6XHIhDiAVIDogBiAPIA4gECAYcSAGIAZcciA7IEVBAUECIAogIiAMED0aID4hBgwCC0EFQQEgFC0AAEEIcRshDgsgFSAWIDsQXSEGIA1BiAFqIBVBFGoiECAgKAIAIhggDxAoID8gBpMhOgJAIA0tAIwBQQNHBEAgHCgCACESDAELIA1BiAFqIBAgHCgCACISIA8QKCANLQCMAUEDRw0AID4gOkMAAAA/lCIGQwAAAAAgBkMAAAAAXhuSIQYMAQsgDUGIAWogECASIA8QKCA+IQYgDS0AjAFBA0YNACANQYgBaiAQIBggDxAoIA0tAIwBQQNGBEAgPiA6QwAAAAAgOkMAAAAAXhuSIQYMAQsCQAJAIA5BAWsOAgIAAQsgPiA6QwAAAD+UkiEGDAELID4gOpIhBgsCfwJAAkACQAJAIBZBAWsOAwECAwALQQEhECAVQaADagwDC0EDIRAgFUGoA2oMAgtBACEQIBVBnANqDAELQQIhECAVQaQDagshDiAVIBBBAnRqIAYgTCAOKgIAkpI4ApwDIAtBBGoiCyAXRw0ACwsgCQRAIAkQJwsgPCBIIDwgSF4bIDwgSCBIIEhcGyBIIEhbIDwgPFtxGyFIIEwgT0MAAAAAIBsbIEGSkiFMIBtBAWohGyANKAJQIgkgEXINAAsLAkAgCEUNACAfRQRAIAAQfEUNAQsgACAWIA8CfSBGIESSIBpFDQAaIAAgFkECdEH8JWooAgBBA3RqIgkqAvgDIQYCQAJAAkAgCS0A/ANBAWsOAgEAAgsgTSAGlEMK1yM8lCEGCyAGQwAAAABgRQ0AIAAgD0GBAiAWQQN0dkEBcSBNIEAQMQwBCyBGIEySCyBHIEAQJSEGQwAAAAAhPCAALwAVQQ9xIQkCQAJAAkACQAJAAkACQAJAAkAgBiBGkyBMkyIGQwAAAABgRQRAQwAAAAAhQyAJQQJrDgICAQcLQwAAAAAhQyAJQQJrDgcBAAUGBAIDBgsgPiAGkiE+DAULID4gBkMAAAA/lJIhPgwECyAGIBuzIjqVITwgPiAGIDogOpKVkiE+DAMLID4gBiAbQQFqs5UiPJIhPgwCCyAbQQJJBEAMAgsgDUGIAWogABAyIAYgG0EBa7OVITwMAgsgBiAbs5UhQwsgDUGIAWogABAyIBtFDQELIBZBAnQiCUHcJWohECAJQfwlaiERIA1BOGohGCANQcgAaiEZIA1B8ABqIRUgDUGQAWohHCANQYABaiEfQQAhEgNAIA1BADYCgAEgDSANKQOIATcDeCAfIA0oApABEDwgDUEANgJwIA0gDSkDeCJWNwNoIBUgDSgCgAEiCxA8IA0oAmwhCQJAAkAgDSgCaCIOBEBDAAAAACE6QwAAAAAhP0MAAAAAIQYMAQtDAAAAACE6QwAAAAAhP0MAAAAAIQYgCUUNAQsDQCAOKALsAyAOKALoAyIOa0ECdSAJTQ0FAkAgDiAJQQJ0aigCACIJLwAVIAktABdBEHRyIhdBgIAwcUGAgBBGIBdBgOAAcUGAwABGcg0AIAkoAtwDIBJHDQIgCUEUaiEOIAkgESgCAEECdGoqApQDIj1DAAAAAGAEfyA9IA4gFkEBIDsQIiAOIBZBASA7ECGSkiI9IAYgBiA9XRsgPSAGIAYgBlwbIAYgBlsgPSA9W3EbIQYgCS0AFgUgF0EIdgtBD3EiFwR/IBcFIAAtABVBBHYLQQVHDQAgFC0AAEEIcUUNACAJEE4gDkEAIA8gOxBBkiI9ID8gPSA/XhsgPSA/ID8gP1wbID8gP1sgPSA9W3EbIj8gCSoCmAMgDkEAQQEgOxAiIA5BAEEBIDsQIZKSID2TIj0gOiA6ID1dGyA9IDogOiA6XBsgOiA6WyA9ID1bcRsiOpIiPSAGIAYgPV0bID0gBiAGIAZcGyAGIAZbID0gPVtxGyEGCyANQQA2AkggDSANKQNoNwNAIBkgDSgCcBA8IA1B6ABqEC4gDSgCSCIJBEADQCAJKAIAIQ4gCRAnIA4iCQ0ACwsgDUEANgJIIA0oAmwiCSANKAJoIg5yDQALCyANIA0pA2g3A4gBIBwgDSgCcBB1IA0gVjcDaCAVIAsQdSA+IE9DAAAAACASG5IhPiBDIAaSIT0gDSgCbCEJAkAgDSgCaCIOIA0oAogBRgRAIAkgDSgCjAFGDQELID4gP5IhQiA+ID2SIUsgPCA9kiEGA0AgDigC7AMgDigC6AMiDmtBAnUgCU0NBQJAIA4gCUECdGooAgAiCS8AFSAJLQAXQRB0ciIXQYCAMHFBgIAQRiAXQYDgAHFBgMAARnINACAJQRRqIQ4CQAJAAkACQAJAAkAgF0EIdkEPcSIXBH8gFwUgAC0AFUEEdgtBAWsOBQEDAgQABgsgFC0AAEEIcQ0ECyAOIBYgDyA7EFEhOiAJIBAoAgBBAnRqID4gOpI4ApwDDAQLIA4gFiAPIDsQYiE/AkACQAJAAkAgFkECaw4CAgABCyAJKgKUAyE6QQIhDgwCC0EBIQ4gCSoCmAMhOgJAIBYOAgIADwtBAyEODAELIAkqApQDITpBACEOCyAJIA5BAnRqIEsgP5MgOpM4ApwDDAMLAkACQAJAAkAgFkECaw4CAgABCyAJKgKUAyE/QQIhDgwCC0EBIQ4gCSoCmAMhPwJAIBYOAgIADgtBAyEODAELIAkqApQDIT9BACEOCyAJIA5BAnRqID4gPSA/k0MAAAA/lJI4ApwDDAILIA4gFiAPIDsQQSE6IAkgECgCAEECdGogPiA6kjgCnAMgCSARKAIAQQN0aiIXKgL4AyE/AkACQAJAIBctAPwDQQFrDgIBAAILIEQgP5RDCtcjPJQhPwsgP0MAAAAAYA0CCwJAAkACfSATQQFNBEAgCSoCmAMgDiAWQQEgOxAiIA4gFkEBIDsQIZKSITogBgwBCyAGITogCSoClAMgDiATQQEgOxAiIA4gE0EBIDsQIZKSCyI/ID9cIAkqApQDIkEgQVxyRQRAID8gQZOLQxe30ThdDQEMAgsgPyA/WyBBIEFbcg0BCyAJKgKYAyJBIEFcIg4gOiA6XHJFBEAgOiBBk4tDF7fROF1FDQEMAwsgOiA6Ww0AIA4NAgsgCSA/IDogD0EAQQAgOyBFQQFBAyAKICIgDBA9GgwBCyAJIEIgCRBOkyAOQQAgDyBEEFGSOAKgAwsgDUEANgI4IA0gDSkDaDcDMCAYIA0oAnAQPCANQegAahAuIA0oAjgiCQRAA0AgCSgCACEOIAkQJyAOIgkNAAsLIA1BADYCOCANKAJsIQkgDSgCaCIOIA0oAogBRw0AIAkgDSgCjAFHDQALCyANKAJwIgkEQANAIAkoAgAhDiAJECcgDiIJDQALCyALBEADQCALKAIAIQkgCxAnIAkiCw0ACwsgPCA+kiA9kiE+IBJBAWoiEiAbRw0ACwsgDSgCkAEiCUUNAANAIAkoAgAhCyAJECcgCyIJDQALCyAAQZQDaiIQIABBAiAPIFAgQCBAECU4AgAgAEGYA2oiESAAQQAgDyBRIEcgQBAlOAIAAkAgEEGBAiATQQN0dkEBcUECdGoCfQJAIB5BAUcEQCAALQAXQQNxIglBAkYgHkECR3INAQsgACATIA8gSCBJIEAQJQwBCyAeQQJHIAlBAkdyDQEgSiAAIA8gEyBIIEkgQBB0Ij4gSiAHkiIGIAYgPl4bID4gBiAGIAZcGyAGIAZbID4gPltxGyIGIAYgSl0bIEogBiAGIAZcGyAGIAZbIEogSltxGws4AgALAkAgEEGBAiAWQQN0dkEBcUECdGoCfQJAIBpBAUcEQCAaQQJHIgkgAC0AF0EDcSILQQJGcg0BCyAAIBYgDyBGIEySIE0gQBAlDAELIAkgC0ECR3INASBGIAAgDyAWIEYgTJIgTSBAEHQiByBGIESSIgYgBiAHXhsgByAGIAYgBlwbIAYgBlsgByAHW3EbIgYgBiBGXRsgRiAGIAYgBlwbIAYgBlsgRiBGW3EbCzgCAAsCQCAIRQ0AAkAgAC8AFUGAgANxQYCAAkcNACANQYgBaiAAEDIDQCANKAKMASIJIA0oAogBIgtyRQRAIA0oApABIglFDQIDQCAJKAIAIQsgCRAnIAsiCQ0ACwwCCyALKALsAyALKALoAyILa0ECdSAJTQ0DIAsgCUECdGooAgAiCS8AFUGA4ABxQYDAAEcEQCAJAn8CQAJAAkAgFkECaw4CAAECCyAJQZQDaiEOIBAqAgAgCSoCnAOTIQZBAAwCCyAJQZQDaiEOIBAqAgAgCSoCpAOTIQZBAgwBCyARKgIAIQYCQAJAIBYOAgABCgsgCUGYA2ohDiAGIAkqAqADkyEGQQEMAQsgCUGYA2ohDiAGIAkqAqgDkyEGQQMLQQJ0aiAGIA4qAgCTOAKcAwsgDUGIAWoQLgwACwALAkAgEyAWckEBcUUNACAWQQFxIRQgE0EBcSEVIA1BiAFqIAAQMgNAIA0oAowBIgkgDSgCiAEiC3JFBEAgDSgCkAEiCUUNAgNAIAkoAgAhCyAJECcgCyIJDQALDAILIAsoAuwDIAsoAugDIgtrQQJ1IAlNDQMCQCALIAlBAnRqKAIAIgkvABUgCS0AF0EQdHIiC0GAgDBxQYCAEEYgC0GA4ABxQYDAAEZyDQAgFQRAAn8CfwJAAkACQCATQQFrDgMAAQINCyAJQZgDaiEOIAlBqANqIQtBASESIBEMAwsgCUGUA2ohDkECIRIgCUGcA2oMAQsgCUGUA2ohDkEAIRIgCUGkA2oLIQsgEAshGyAJIBJBAnRqIBsqAgAgDioCAJMgCyoCAJM4ApwDCyAURQ0AAn8CfwJAAkACQCAWQQFrDgMAAQIMCyAJQZgDaiELIAlBqANqIRJBASEXIBEMAwsgCUGUA2ohCyAJQZwDaiESQQIMAQsgCUGUA2ohCyAJQaQDaiESQQALIRcgEAshDiAJIBdBAnRqIA4qAgAgCyoCAJMgEioCAJM4ApwDCyANQYgBahAuDAALAAsgAC8AFUGA4ABxICJBAUZyRQRAIAAtAABBCHFFDQELIAAgACAeIAQgE0EBSxsgDyAKICIgDEMAAAAAQwAAAAAgOyBFEH4aCyANKAJYIglFDQIDQCAJKAIAIQsgCRAnIAsiCQ0ACwwCCxACAAsgABBeCyANQaABaiQADAELECQACyAAIAM6AKgBIAAgACgC9AMoAgw2AqQBIB0NACAKIAooAggiAyAAKAKsASIOQQFqIgkgAyAJSxs2AgggDkEIRgRAIABBADYCrAFBACEOCyAIBH8gAEHwAmoFIAAgDkEBajYCrAEgACAOQRhsakGwAWoLIgMgBTYCDCADIAQ2AgggAyACOAIEIAMgATgCACADIAAqApQDOAIQIAMgACoCmAM4AhRBACEdCyAIBEAgACAAKQKUAzcCjAMgACAALQAAIgNBAXIiBEH7AXEgBCADQQRxGzoAAAsgACAMNgKgASArIB1Fcgs1AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhACABIAJBAXEEfyABKAIAIABqKAIABSAACxECAAt9ACAAQRRqIgAgAUGBAiACQQN0dkH/AXEgAyAEEC0gACACQQEgBBAiIAAgAkEBIAQQIZKSIQQCQAJAAkACQCAFKAIADgMAAQADCyAGKgIAIgMgAyAEIAMgBF0bIAQgBFwbIQQMAQsgBCAEXA0BIAVBAjYCAAsgBiAEOAIACwuMAQIBfwF9IAAoAuQDRQRAQwAAAAAPCyAAQfwAaiIBIAAvARwQICICIAJbBEAgASAALwEcECAPCwJAIAAoAvQDLQAIQQFxDQAgASAALwEYECAiAiACXA0AIAEgAC8BGBAgQwAAAABdRQ0AIAEgAC8BGBAgjA8LQwAAgD9DAAAAACAAKAL0Ay0ACEEBcRsLcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEChDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwtHAQF/IAIvAAYiA0EHcQRAIAAgAUHoAGogAxAfDwsgAUHoAGohASACLwAOIgNBB3EEQCAAIAEgAxAfDwsgACABIAIvABAQHwtHAQF/IAIvAAIiA0EHcQRAIAAgAUHoAGogAxAfDwsgAUHoAGohASACLwAOIgNBB3EEQCAAIAEgAxAfDwsgACABIAIvABAQHwt7AAJAAkACQAJAIANBAWsOAgABAgsgAi8ACiIDQQdxRQ0BDAILIAIvAAgiA0EHcUUNAAwBCyACLwAEIgNBB3EEQAwBCyABQegAaiEBIAIvAAwiA0EHcQRAIAAgASADEB8PCyAAIAEgAi8AEBAfDwsgACABQegAaiADEB8LewACQAJAAkACQCADQQFrDgIAAQILIAIvAAgiA0EHcUUNAQwCCyACLwAKIgNBB3FFDQAMAQsgAi8AACIDQQdxBEAMAQsgAUHoAGohASACLwAMIgNBB3EEQCAAIAEgAxAfDwsgACABIAIvABAQHw8LIAAgAUHoAGogAxAfC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQe4AaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAuFAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgAEIKgCIFQvYBfiAAfKdBMHI6AAAgAEL/////nwFWIQIgBSEAIAINAAsLIAWnIgIEQANAIAFBAWsiASACQQpuIgNB9gFsIAJqQTByOgAAIAJBCUshBCADIQIgBA0ACwsgAQs3AQJ/QQQQHiICIAE2AgBBBBAeIgMgATYCAEHBOyAAQeI7QfooQb8BIAJB4jtB/ihBwAEgAxAHCw8AIAAgASACQQFBAhCLAQteAQF/IABBADYCDCAAIAM2AhACQCABBEAgAUGAgICABE8NASABQQJ0EB4hBAsgACAENgIAIAAgBCACQQJ0aiICNgIIIAAgBCABQQJ0ajYCDCAAIAI2AgQgAA8LEFgAC3kCAX8BfSMAQRBrIgMkACADQQhqIAAgAUECdEHcJWooAgAgAhBTQwAAwH8hBAJAAkACQCADLQAMQQFrDgIAAQILIAMqAgghBAwBCyADKgIIQwAAAACUQwrXIzyUIQQLIANBEGokACAEQwAAAACXQwAAAAAgBCAEWxsLnAoBC38jAEEQayIIJAAgASABLwAAQXhxIANyIgM7AAACQAJAAkACQAJAAkACQAJAAkACQCADQQhxBEAgA0H//wNxIgZBBHYhBCAGQT9NBH8gACAEQQJ0akEEagUgBEEEayIEIAAoAhgiACgCBCAAKAIAIgBrQQJ1Tw0CIAAgBEECdGoLIAI4AgAMCgsCfyACi0MAAABPXQRAIAKoDAELQYCAgIB4CyIEQf8PakH+H0sgBLIgAlxyRQRAIANBD3FBACAEa0GAEHIgBCACQwAAAABdG0EEdHIhAwwKCyAAIAAvAQAiC0EBajsBACALQYAgTw0DIAtBA00EQCAAIAtBAnRqIAI4AgQMCQsgACgCGCIDRQRAQRgQHiIDQgA3AgAgA0IANwIQIANCADcCCCAAIAM2AhgLAkAgAygCBCIEIAMoAghHBEAgBCACOAIAIAMgBEEEajYCBAwBCyAEIAMoAgAiB2siBEECdSIJQQFqIgZBgICAgARPDQECf0H/////AyAEQQF1IgUgBiAFIAZLGyAEQfz///8HTxsiBkUEQEEAIQUgCQwBCyAGQYCAgIAETw0GIAZBAnQQHiEFIAMoAgQgAygCACIHayIEQQJ1CyEKIAUgCUECdGoiCSACOAIAIAkgCkECdGsgByAEEDMhByADIAUgBkECdGo2AgggAyAJQQRqNgIEIAMoAgAhBCADIAc2AgAgBEUNACAEECMLIAAoAhgiBigCECIDIAYoAhQiAEEFdEcNByADQQFqQQBIDQAgA0H+////A0sNASADIABBBnQiACADQWBxQSBqIgQgACAESxsiAE8NByAAQQBODQILEAIAC0H/////ByEAIANB/////wdPDQULIAhBADYCCCAIQgA3AwAgCCAAEJ8BIAYoAgwhBCAIIAgoAgQiByAGKAIQIgBBH3FqIABBYHFqIgM2AgQgB0UEQCADQQFrIQUMAwsgA0EBayIFIAdBAWtzQR9LDQIgCCgCACEKDAMLQZUlQeEXQSJB3BcQCwALEFgACyAIKAIAIgogBUEFdkEAIANBIU8bQQJ0akEANgIACyAKIAdBA3ZB/P///wFxaiEDAkAgB0EfcSIHRQRAIABBAEwNASAAQSBtIQUgAEEfakE/TwRAIAMgBCAFQQJ0EDMaCyAAIAVBBXRrIgBBAEwNASADIAVBAnQiBWoiAyADKAIAQX9BICAAa3YiAEF/c3EgBCAFaigCACAAcXI2AgAMAQsgAEEATA0AQX8gB3QhDEEgIAdrIQkgAEEgTgRAIAxBf3MhDSADKAIAIQUDQCADIAUgDXEgBCgCACIFIAd0cjYCACADIAMoAgQgDHEgBSAJdnIiBTYCBCAEQQRqIQQgA0EEaiEDIABBP0shDiAAQSBrIQAgDg0ACyAAQQBMDQELIAMgAygCAEF/IAkgCSAAIAAgCUobIgVrdiAMcUF/c3EgBCgCAEF/QSAgAGt2cSIEIAd0cjYCACAAIAVrIgBBAEwNACADIAUgB2pBA3ZB/P///wFxaiIDIAMoAgBBf0EgIABrdkF/c3EgBCAFdnI2AgALIAYoAgwhACAGIAo2AgwgBiAIKAIEIgM2AhAgBiAIKAIINgIUIABFDQAgABAjIAYoAhAhAwsgBiADQQFqNgIQIAYoAgwgA0EDdkH8////AXFqIgAgACgCAEF+IAN3cTYCACABLwAAIQMLIANBB3EgC0EEdHJBCHIhAwsgASADOwAAIAhBEGokAAuPAQIBfwF9IwBBEGsiAyQAIANBCGogAEHoAGogAEHUAEHWACABQf4BcUECRhtqLwEAIgEgAC8BWCABQQdxGxAfQwAAwH8hBAJAAkACQCADLQAMQQFrDgIAAQILIAMqAgghBAwBCyADKgIIIAKUQwrXIzyUIQQLIANBEGokACAEQwAAAACXQwAAAAAgBCAEWxsL2AICBH8BfSMAQSBrIgMkAAJAIAAoAgwiAQRAIAAgACoClAMgACoCmAMgAREnACIFIAVbDQEgA0GqHjYCACAAQQVB2CUgAxAsECQACyADQRBqIAAQMgJAIAMoAhAiAiADKAIUIgFyRQ0AAkADQCABIAIoAuwDIAIoAugDIgJrQQJ1SQRAIAIgAUECdGooAgAiASgC3AMNAyABLwAVIAEtABdBEHRyIgJBgOAAcUGAwABHBEAgAkEIdkEPcSICBH8gAgUgAC0AFUEEdgtBBUYEQCAALQAUQQhxDQQLIAEtAABBAnENAyAEIAEgBBshBAsgA0EQahAuIAMoAhQiASADKAIQIgJyDQEMAwsLEAIACyABIQQLIAMoAhgiAQRAA0AgASgCACECIAEQIyACIgENAAsLIARFBEAgACoCmAMhBQwBCyAEEE4gBCoCoAOSIQULIANBIGokACAFC6EDAQh/AkAgACgC6AMiBSAAKALsAyIHRwRAA0AgACAFKAIAIgIoAuQDRwRAAkAgACgC9AMoAgAiAQRAIAIgACAGIAERBgAiAQ0BC0GIBBAeIgEgAigCEDYCECABIAIpAgg3AgggASACKQIANwIAIAFBFGogAkEUakHoABArGiABQgA3AoABIAFB/ABqIgNBADsBACABQgA3AogBIAFCADcCkAEgAyACQfwAahCgASABQZgBaiACQZgBakHQAhArGiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAFNwMIIAgpAwhCBIYgCCkDACIDQjyIhCECIAgpAxAgCCkDGIRCAFKtIANC//////////8Pg4QiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgCEEgaiQAIAkgAiAGQoCAgICAgICAgH+DhL85AwALmRgDEn8BfAN+IwBBsARrIgwkACAMQQA2AiwCQCABvSIZQgBTBEBBASERQZkJIRMgAZoiAb0hGQwBCyAEQYAQcQRAQQEhEUGcCSETDAELQZ8JQZoJIARBAXEiERshEyARRSEVCwJAIBlCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiARQQNqIgMgBEH//3txECkgACATIBEQJiAAQe0VQdweIAVBIHEiBRtB4RpB4B4gBRsgASABYhtBAxAmIABBICACIAMgBEGAwABzECkgAyACIAIgA0gbIQoMAQsgDEEQaiESAkACfwJAIAEgDEEsahCMASIBIAGgIgFEAAAAAAAAAABiBEAgDCAMKAIsIgZBAWs2AiwgBUEgciIOQeEARw0BDAMLIAVBIHIiDkHhAEYNAiAMKAIsIQlBBiADIANBAEgbDAELIAwgBkEdayIJNgIsIAFEAAAAAAAAsEGiIQFBBiADIANBAEgbCyELIAxBMGpBoAJBACAJQQBOG2oiDSEHA0AgBwJ/IAFEAAAAAAAA8EFjIAFEAAAAAAAAAABmcQRAIAGrDAELQQALIgM2AgAgB0EEaiEHIAEgA7ihRAAAAABlzc1BoiIBRAAAAAAAAAAAYg0ACwJAIAlBAEwEQCAJIQMgByEGIA0hCAwBCyANIQggCSEDA0BBHSADIANBHU4bIQMCQCAHQQRrIgYgCEkNACADrSEaQgAhGQNAIAYgGUL/////D4MgBjUCACAahnwiG0KAlOvcA4AiGUKA7JSjDH4gG3w+AgAgBkEEayIGIAhPDQALIBmnIgZFDQAgCEEEayIIIAY2AgALA0AgCCAHIgZJBEAgBkEEayIHKAIARQ0BCwsgDCAMKAIsIANrIgM2AiwgBiEHIANBAEoNAAsLIANBAEgEQCALQRlqQQluQQFqIQ8gDkHmAEYhEANAQQlBACADayIDIANBCU4bIQoCQCAGIAhNBEAgCCgCACEHDAELQYCU69wDIAp2IRRBfyAKdEF/cyEWQQAhAyAIIQcDQCAHIAMgBygCACIXIAp2ajYCACAWIBdxIBRsIQMgB0EEaiIHIAZJDQALIAgoAgAhByADRQ0AIAYgAzYCACAGQQRqIQYLIAwgDCgCLCAKaiIDNgIsIA0gCCAHRUECdGoiCCAQGyIHIA9BAnRqIAYgBiAHa0ECdSAPShshBiADQQBIDQALC0EAIQMCQCAGIAhNDQAgDSAIa0ECdUEJbCEDQQohByAIKAIAIgpBCkkNAANAIANBAWohAyAKIAdBCmwiB08NAAsLIAsgA0EAIA5B5gBHG2sgDkHnAEYgC0EAR3FrIgcgBiANa0ECdUEJbEEJa0gEQEEEQaQCIAlBAEgbIAxqIAdBgMgAaiIKQQltIg9BAnRqQdAfayEJQQohByAPQXdsIApqIgpBB0wEQANAIAdBCmwhByAKQQFqIgpBCEcNAAsLAkAgCSgCACIQIBAgB24iDyAHbCIKRiAJQQRqIhQgBkZxDQAgECAKayEQAkAgD0EBcUUEQEQAAAAAAABAQyEBIAdBgJTr3ANHIAggCU9yDQEgCUEEay0AAEEBcUUNAQtEAQAAAAAAQEMhAQtEAAAAAAAA4D9EAAAAAAAA8D9EAAAAAAAA+D8gBiAURhtEAAAAAAAA+D8gECAHQQF2IhRGGyAQIBRJGyEYAkAgFQ0AIBMtAABBLUcNACAYmiEYIAGaIQELIAkgCjYCACABIBigIAFhDQAgCSAHIApqIgM2AgAgA0GAlOvcA08EQANAIAlBADYCACAIIAlBBGsiCUsEQCAIQQRrIghBADYCAAsgCSAJKAIAQQFqIgM2AgAgA0H/k+vcA0sNAAsLIA0gCGtBAnVBCWwhA0EKIQcgCCgCACIKQQpJDQADQCADQQFqIQMgCiAHQQpsIgdPDQALCyAJQQRqIgcgBiAGIAdLGyEGCwNAIAYiByAITSIKRQRAIAdBBGsiBigCAEUNAQsLAkAgDkHnAEcEQCAEQQhxIQkMAQsgA0F/c0F/IAtBASALGyIGIANKIANBe0pxIgkbIAZqIQtBf0F+IAkbIAVqIQUgBEEIcSIJDQBBdyEGAkAgCg0AIAdBBGsoAgAiDkUNAEEKIQpBACEGIA5BCnANAANAIAYiCUEBaiEGIA4gCkEKbCIKcEUNAAsgCUF/cyEGCyAHIA1rQQJ1QQlsIQogBUFfcUHGAEYEQEEAIQkgCyAGIApqQQlrIgZBACAGQQBKGyIGIAYgC0obIQsMAQtBACEJIAsgAyAKaiAGakEJayIGQQAgBkEAShsiBiAGIAtKGyELC0F/IQogC0H9////B0H+////ByAJIAtyIhAbSg0BIAsgEEEAR2pBAWohDgJAIAVBX3EiFUHGAEYEQCADIA5B/////wdzSg0DIANBACADQQBKGyEGDAELIBIgAyADQR91IgZzIAZrrSASEEciBmtBAUwEQANAIAZBAWsiBkEwOgAAIBIgBmtBAkgNAAsLIAZBAmsiDyAFOgAAIAZBAWtBLUErIANBAEgbOgAAIBIgD2siBiAOQf////8Hc0oNAgsgBiAOaiIDIBFB/////wdzSg0BIABBICACIAMgEWoiBSAEECkgACATIBEQJiAAQTAgAiAFIARBgIAEcxApAkACQAJAIBVBxgBGBEAgDEEQaiIGQQhyIQMgBkEJciEJIA0gCCAIIA1LGyIKIQgDQCAINQIAIAkQRyEGAkAgCCAKRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgBiAJRw0AIAxBMDoAGCADIQYLIAAgBiAJIAZrECYgCEEEaiIIIA1NDQALIBAEQCAAQYwlQQEQJgsgC0EATCAHIAhNcg0BA0AgCDUCACAJEEciBiAMQRBqSwRAA0AgBkEBayIGQTA6AAAgBiAMQRBqSw0ACwsgACAGQQkgCyALQQlOGxAmIAtBCWshBiAIQQRqIgggB08NAyALQQlKIQMgBiELIAMNAAsMAgsCQCALQQBIDQAgByAIQQRqIAcgCEsbIQogDEEQaiIGQQhyIQMgBkEJciENIAghBwNAIA0gBzUCACANEEciBkYEQCAMQTA6ABggAyEGCwJAIAcgCEcEQCAGIAxBEGpNDQEDQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALDAELIAAgBkEBECYgBkEBaiEGIAkgC3JFDQAgAEGMJUEBECYLIAAgBiALIA0gBmsiBiAGIAtKGxAmIAsgBmshCyAHQQRqIgcgCk8NASALQQBODQALCyAAQTAgC0ESakESQQAQKSAAIA8gEiAPaxAmDAILIAshBgsgAEEwIAZBCWpBCUEAECkLIABBICACIAUgBEGAwABzECkgBSACIAIgBUgbIQoMAQsgEyAFQRp0QR91QQlxaiELAkAgA0ELSw0AQQwgA2shBkQAAAAAAAAwQCEYA0AgGEQAAAAAAAAwQKIhGCAGQQFrIgYNAAsgCy0AAEEtRgRAIBggAZogGKGgmiEBDAELIAEgGKAgGKEhAQsgEUECciEJIAVBIHEhCCASIAwoAiwiByAHQR91IgZzIAZrrSASEEciBkYEQCAMQTA6AA8gDEEPaiEGCyAGQQJrIg0gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQYgDEEQaiEHA0AgByIFAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdBkC9qLQAAIAhyOgAAIAYgA0EASnJFIAEgB7ehRAAAAAAAADBAoiIBRAAAAAAAAAAAYXEgBUEBaiIHIAxBEGprQQFHckUEQCAFQS46AAEgBUECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQpB/f///wcgCSASIA1rIgVqIgZrIANIDQAgAEEgIAIgBgJ/AkAgA0UNACAHIAxBEGprIghBAmsgA04NACADQQJqDAELIAcgDEEQamsiCAsiB2oiAyAEECkgACALIAkQJiAAQTAgAiADIARBgIAEcxApIAAgDEEQaiAIECYgAEEwIAcgCGtBAEEAECkgACANIAUQJiAAQSAgAiADIARBgMAAcxApIAMgAiACIANIGyEKCyAMQbAEaiQAIAoLRgEBfyAAKAI8IQMjAEEQayIAJAAgAyABpyABQiCIpyACQf8BcSAAQQhqEBQQjQEhAiAAKQMIIQEgAEEQaiQAQn8gASACGwu+AgEHfyMAQSBrIgMkACADIAAoAhwiBDYCECAAKAIUIQUgAyACNgIcIAMgATYCGCADIAUgBGsiATYCFCABIAJqIQVBAiEGIANBEGohAQJ/A0ACQAJAAkAgACgCPCABIAYgA0EMahAYEI0BRQRAIAUgAygCDCIHRg0BIAdBAE4NAgwDCyAFQX9HDQILIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwDCyABIAcgASgCBCIISyIJQQN0aiIEIAcgCEEAIAkbayIIIAQoAgBqNgIAIAFBDEEEIAkbaiIBIAEoAgAgCGs2AgAgBSAHayEFIAYgCWshBiAEIQEMAQsLIABBADYCHCAAQgA3AxAgACAAKAIAQSByNgIAQQAgBkECRg0AGiACIAEoAgRrCyEEIANBIGokACAECwkAIAAoAjwQGQsjAQF/Qcg7KAIAIgAEQANAIAAoAgARCQAgACgCBCIADQALCwu/AgEFfyMAQeAAayICJAAgAiAANgIAIwBBEGsiAyQAIAMgAjYCDCMAQZABayIAJAAgAEGgL0GQARArIgAgAkEQaiIFIgE2AiwgACABNgIUIABB/////wdBfiABayIEIARB/////wdPGyIENgIwIAAgASAEaiIBNgIcIAAgATYCECAAQbsTIAJBAEEAEIsBGiAEBEAgACgCFCIBIAEgACgCEEZrQQA6AAALIABBkAFqJAAgA0EQaiQAAkAgBSIAQQNxBEADQCAALQAARQ0CIABBAWoiAEEDcQ0ACwsDQCAAIgFBBGohACABKAIAIgNBf3MgA0GBgoQIa3FBgIGChHhxRQ0ACwNAIAEiAEEBaiEBIAAtAAANAAsLIAAgBWtBAWoiABBhIgEEfyABIAUgABArBUEACyEAIAJB4ABqJAAgAAvFAQICfwF8IwBBMGsiBiQAIAEoAgghBwJAQbQ7LQAAQQFxBEBBsDsoAgAhAQwBC0EFQZAnEAwhAUG0O0EBOgAAQbA7IAE2AgALIAYgBTYCKCAGIAQ4AiAgBiADNgIYIAYgAjgCEAJ/IAEgB0GXGyAGQQxqIAZBEGoQEiIIRAAAAAAAAPBBYyAIRAAAAAAAAAAAZnEEQCAIqwwBC0EACyEBIAYoAgwhAyAAIAEpAwA3AwAgACABKQMINwMIIAMQESAGQTBqJAALCQAgABCQARAjCwwAIAAoAghB6BwQZgsJACAAEJIBECMLVQECfyMAQTBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEwEB4gAkEwECshACACQTBqJAAgAAs7AQF/IAEgACgCBCIFQQF1aiEBIAAoAgAhACABIAIgAyAEIAVBAXEEfyABKAIAIABqKAIABSAACxEdAAs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERIACzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRDAALNQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!oA(kI)){var eA=kI;kI=B.locateFile?B.locateFile(eA,H):H+eA}function RQ(){var f=kI;try{if(f==kI&&M)return new Uint8Array(M);if(oA(f))try{var j=kG(f.slice(37)),s=new Uint8Array(j.length);for(f=0;f<j.length;++f)s[f]=j.charCodeAt(f);var o=s}catch(LA){throw Error("Converting base64 string to bytes failed.")}else o=void 0;var CA=o;if(CA)return CA;throw"both async and sync fetching of the wasm failed"}catch(LA){lA(LA)}}function YA(){return M||typeof fetch!="function"?Promise.resolve().then(function(){return RQ()}):fetch(kI,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+kI+"'";return f.arrayBuffer()}).catch(function(){return RQ()})}function e(f){for(;0<f.length;)f.shift()(B)}function AA(f){if(f===void 0)return"_unknown";f=f.replace(/[^a-zA-Z0-9_]/g,"$");var j=f.charCodeAt(0);return 48<=j&&57>=j?"_"+f:f}function qI(f,j){return f=AA(f),function(){return j.apply(this,arguments)}}var iA=[{},{value:void 0},{value:null},{value:!0},{value:!1}],oI=[];function eI(f){var j=Error,s=qI(f,function(o){this.name=f,this.message=o,o=Error(o).stack,o!==void 0&&(this.stack=this.toString()+`
267
267
  `+o.replace(/^Error(:[^\n]*)?\n/,""))});return s.prototype=Object.create(j.prototype),s.prototype.constructor=s,s.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},s}var DQ=void 0;function RI(f){throw new DQ(f)}var UB=(f)=>{return f||RI("Cannot use deleted val. handle = "+f),iA[f].value},AB=(f)=>{switch(f){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var j=oI.length?oI.pop():iA.length;return iA[j]={ga:1,value:f},j}},hI=void 0,oB=void 0;function lI(f){for(var j="";c[f];)j+=oB[c[f++]];return j}var d=[];function MA(){for(;d.length;){var f=d.pop();f.M.$=!1,f.delete()}}var pA=void 0,DI={};function cI(f,j){for(j===void 0&&RI("ptr should not be undefined");f.R;)j=f.ba(j),f=f.R;return j}var _I={};function aI(f){f=P0(f);var j=lI(f);return MD(f),j}function AE(f,j){var s=_I[f];return s===void 0&&RI(j+" has unknown type "+aI(f)),s}function TB(){}var XC=!1;function TD(f){--f.count.value,f.count.value===0&&(f.T?f.U.W(f.T):f.P.N.W(f.O))}function kC(f,j,s){if(j===s)return f;if(s.R===void 0)return null;return f=kC(f,j,s.R),f===null?null:s.na(f)}var kD={};function Xg(f,j){return j=cI(f,j),DI[j]}var aE=void 0;function ND(f){throw new aE(f)}function EI(f,j){return j.P&&j.O||ND("makeClassHandle requires ptr and ptrType"),!!j.U!==!!j.T&&ND("Both smartPtrType and smartPtr must be specified"),j.count={value:1},rA(Object.create(f,{M:{value:j}}))}function rA(f){if(typeof FinalizationRegistry>"u")return rA=(j)=>j,f;return XC=new FinalizationRegistry((j)=>{TD(j.M)}),rA=(j)=>{var s=j.M;return s.T&&XC.register(j,{M:s},j),j},TB=(j)=>{XC.unregister(j)},rA(f)}var EB={};function eB(f){for(;f.length;){var j=f.pop();f.pop()(j)}}function JI(f){return this.fromWireType(wA[f>>2])}var gI={},LQ={};function WB(f,j,s){function o(_A){_A=s(_A),_A.length!==f.length&&ND("Mismatched type converter count");for(var aA=0;aA<f.length;++aA)gQ(f[aA],_A[aA])}f.forEach(function(_A){LQ[_A]=j});var CA=Array(j.length),LA=[],hA=0;j.forEach((_A,aA)=>{_I.hasOwnProperty(_A)?CA[aA]=_I[_A]:(LA.push(_A),gI.hasOwnProperty(_A)||(gI[_A]=[]),gI[_A].push(()=>{CA[aA]=_I[_A],++hA,hA===LA.length&&o(CA)}))}),LA.length===0&&o(CA)}function bI(f){switch(f){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+f)}}function gQ(f,j,s={}){if(!("argPackAdvance"in j))throw TypeError("registerType registeredInstance requires argPackAdvance");var o=j.name;if(f||RI('type "'+o+'" must have a positive integer typeid pointer'),_I.hasOwnProperty(f)){if(s.ua)return;RI("Cannot register type '"+o+"' twice")}_I[f]=j,delete LQ[f],gI.hasOwnProperty(f)&&(j=gI[f],delete gI[f],j.forEach((CA)=>CA()))}function $C(f){RI(f.M.P.N.name+" instance already deleted")}function jE(){}function OB(f,j,s){if(f[j].S===void 0){var o=f[j];f[j]=function(){return f[j].S.hasOwnProperty(arguments.length)||RI("Function '"+s+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+f[j].S+")!"),f[j].S[arguments.length].apply(this,arguments)},f[j].S=[],f[j].S[o.Z]=o}}function rC(f,j){B.hasOwnProperty(f)?(RI("Cannot register public name '"+f+"' twice"),OB(B,f,f),B.hasOwnProperty(void 0)&&RI("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),B[f].S[void 0]=j):B[f]=j}function aC(f,j,s,o,CA,LA,hA,_A){this.name=f,this.constructor=j,this.X=s,this.W=o,this.R=CA,this.pa=LA,this.ba=hA,this.na=_A,this.ja=[]}function pC(f,j,s){for(;j!==s;)j.ba||RI("Expected null or instance of "+s.name+", got an instance of "+j.name),f=j.ba(f),j=j.R;return f}function FC(f,j){if(j===null)return this.ea&&RI("null is not a valid "+this.name),0;return j.M||RI('Cannot pass "'+sB(j)+'" as a '+this.name),j.M.O||RI("Cannot pass deleted object as a pointer of type "+this.name),pC(j.M.O,j.M.P.N,this.N)}function _E(f,j){if(j===null){if(this.ea&&RI("null is not a valid "+this.name),this.da){var s=this.fa();return f!==null&&f.push(this.W,s),s}return 0}if(j.M||RI('Cannot pass "'+sB(j)+'" as a '+this.name),j.M.O||RI("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&j.M.P.ca&&RI("Cannot convert argument of type "+(j.M.U?j.M.U.name:j.M.P.name)+" to parameter type "+this.name),s=pC(j.M.O,j.M.P.N,this.N),this.da)switch(j.M.T===void 0&&RI("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:j.M.U===this?s=j.M.T:RI("Cannot convert argument of type "+(j.M.U?j.M.U.name:j.M.P.name)+" to parameter type "+this.name);break;case 1:s=j.M.T;break;case 2:if(j.M.U===this)s=j.M.T;else{var o=j.clone();s=this.xa(s,AB(function(){o.delete()})),f!==null&&f.push(this.W,s)}break;default:RI("Unsupporting sharing policy")}return s}function tC(f,j){if(j===null)return this.ea&&RI("null is not a valid "+this.name),0;return j.M||RI('Cannot pass "'+sB(j)+'" as a '+this.name),j.M.O||RI("Cannot pass deleted object as a pointer of type "+this.name),j.M.P.ca&&RI("Cannot convert argument of type "+j.M.P.name+" to parameter type "+this.name),pC(j.M.O,j.M.P.N,this.N)}function pE(f,j,s,o){this.name=f,this.N=j,this.ea=s,this.ca=o,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,j.R!==void 0?this.toWireType=_E:(this.toWireType=o?FC:tC,this.V=null)}function LF(f,j){B.hasOwnProperty(f)||ND("Replacing nonexistant public symbol"),B[f]=j,B[f].Z=void 0}function Mu(f,j){var s=[];return function(){if(s.length=0,Object.assign(s,arguments),f.includes("j")){var o=B["dynCall_"+f];o=s&&s.length?o.apply(null,[j].concat(s)):o.call(null,j)}else o=uI.get(j).apply(null,s);return o}}function PE(f,j){f=lI(f);var s=f.includes("j")?Mu(f,j):uI.get(j);return typeof s!="function"&&RI("unknown function pointer with signature "+f+": "+j),s}var m=void 0;function kA(f,j){function s(LA){CA[LA]||_I[LA]||(LQ[LA]?LQ[LA].forEach(s):(o.push(LA),CA[LA]=!0))}var o=[],CA={};throw j.forEach(s),new m(f+": "+o.map(aI).join([", "]))}function CI(f,j,s,o,CA){var LA=j.length;2>LA&&RI("argTypes array size mismatch! Must at least get return value and 'this' types!");var hA=j[1]!==null&&s!==null,_A=!1;for(s=1;s<j.length;++s)if(j[s]!==null&&j[s].V===void 0){_A=!0;break}var aA=j[0].name!=="void",mA=LA-2,FI=Array(mA),YI=[],yB=[];return function(){if(arguments.length!==mA&&RI("function "+f+" called with "+arguments.length+" arguments, expected "+mA+" args!"),yB.length=0,YI.length=hA?2:1,YI[0]=CA,hA){var kB=j[1].toWireType(yB,this);YI[1]=kB}for(var QQ=0;QQ<mA;++QQ)FI[QQ]=j[QQ+2].toWireType(yB,arguments[QQ]),YI.push(FI[QQ]);if(QQ=o.apply(null,YI),_A)eB(yB);else for(var HE=hA?1:2;HE<j.length;HE++){var WC=HE===1?kB:FI[HE-2];j[HE].V!==null&&j[HE].V(WC)}return kB=aA?j[0].fromWireType(QQ):void 0,kB}}function dI(f,j){for(var s=[],o=0;o<f;o++)s.push(uA[j+4*o>>2]);return s}function mI(f){4<f&&--iA[f].ga===0&&(iA[f]=void 0,oI.push(f))}function sB(f){if(f===null)return"null";var j=typeof f;return j==="object"||j==="array"||j==="function"?f.toString():""+f}function GB(f,j){switch(j){case 2:return function(s){return this.fromWireType(EA[s>>2])};case 3:return function(s){return this.fromWireType(VA[s>>3])};default:throw TypeError("Unknown float type: "+f)}}function qB(f,j,s){switch(j){case 0:return s?function(o){return x[o]}:function(o){return c[o]};case 1:return s?function(o){return BA[o>>1]}:function(o){return zA[o>>1]};case 2:return s?function(o){return wA[o>>2]}:function(o){return uA[o>>2]};default:throw TypeError("Unknown integer type: "+f)}}function GE(f,j){for(var s="",o=0;!(o>=j/2);++o){var CA=BA[f+2*o>>1];if(CA==0)break;s+=String.fromCharCode(CA)}return s}function YQ(f,j,s){if(s===void 0&&(s=2147483647),2>s)return 0;s-=2;var o=j;s=s<2*f.length?s/2:f.length;for(var CA=0;CA<s;++CA)BA[j>>1]=f.charCodeAt(CA),j+=2;return BA[j>>1]=0,j-o}function OQ(f){return 2*f.length}function wE(f,j){for(var s=0,o="";!(s>=j/4);){var CA=wA[f+4*s>>2];if(CA==0)break;++s,65536<=CA?(CA-=65536,o+=String.fromCharCode(55296|CA>>10,56320|CA&1023)):o+=String.fromCharCode(CA)}return o}function xE(f,j,s){if(s===void 0&&(s=2147483647),4>s)return 0;var o=j;s=o+s-4;for(var CA=0;CA<f.length;++CA){var LA=f.charCodeAt(CA);if(55296<=LA&&57343>=LA){var hA=f.charCodeAt(++CA);LA=65536+((LA&1023)<<10)|hA&1023}if(wA[j>>2]=LA,j+=4,j+4>s)break}return wA[j>>2]=0,j-o}function KD(f){for(var j=0,s=0;s<f.length;++s){var o=f.charCodeAt(s);55296<=o&&57343>=o&&++s,j+=4}return j}var JE={};function B0(f){var j=JE[f];return j===void 0?lI(f):j}var Q0=[];function YF(f){var j=Q0.length;return Q0.push(f),j}function TG(f,j){for(var s=Array(f),o=0;o<f;++o)s[o]=AE(uA[j+4*o>>2],"parameter "+o);return s}var SF=[],E0=[null,[],[]];DQ=B.BindingError=eI("BindingError"),B.count_emval_handles=function(){for(var f=0,j=5;j<iA.length;++j)iA[j]!==void 0&&++f;return f},B.get_first_emval=function(){for(var f=5;f<iA.length;++f)if(iA[f]!==void 0)return iA[f];return null},hI=B.PureVirtualError=eI("PureVirtualError");for(var Lu=Array(256),C0=0;256>C0;++C0)Lu[C0]=String.fromCharCode(C0);oB=Lu,B.getInheritedInstanceCount=function(){return Object.keys(DI).length},B.getLiveInheritedInstances=function(){var f=[],j;for(j in DI)DI.hasOwnProperty(j)&&f.push(DI[j]);return f},B.flushPendingDeletes=MA,B.setDelayFunction=function(f){pA=f,d.length&&pA&&pA(MA)},aE=B.InternalError=eI("InternalError"),jE.prototype.isAliasOf=function(f){if(!(this instanceof jE&&f instanceof jE))return!1;var j=this.M.P.N,s=this.M.O,o=f.M.P.N;for(f=f.M.O;j.R;)s=j.ba(s),j=j.R;for(;o.R;)f=o.ba(f),o=o.R;return j===o&&s===f},jE.prototype.clone=function(){if(this.M.O||$C(this),this.M.aa)return this.M.count.value+=1,this;var f=rA,j=Object,s=j.create,o=Object.getPrototypeOf(this),CA=this.M;return f=f(s.call(j,o,{M:{value:{count:CA.count,$:CA.$,aa:CA.aa,O:CA.O,P:CA.P,T:CA.T,U:CA.U}}})),f.M.count.value+=1,f.M.$=!1,f},jE.prototype.delete=function(){this.M.O||$C(this),this.M.$&&!this.M.aa&&RI("Object already scheduled for deletion"),TB(this),TD(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},jE.prototype.isDeleted=function(){return!this.M.O},jE.prototype.deleteLater=function(){return this.M.O||$C(this),this.M.$&&!this.M.aa&&RI("Object already scheduled for deletion"),d.push(this),d.length===1&&pA&&pA(MA),this.M.$=!0,this},pE.prototype.qa=function(f){return this.ka&&(f=this.ka(f)),f},pE.prototype.ha=function(f){this.W&&this.W(f)},pE.prototype.argPackAdvance=8,pE.prototype.readValueFromPointer=JI,pE.prototype.deleteObject=function(f){if(f!==null)f.delete()},pE.prototype.fromWireType=function(f){function j(){return this.da?EI(this.N.X,{P:this.wa,O:s,U:this,T:f}):EI(this.N.X,{P:this,O:f})}var s=this.qa(f);if(!s)return this.ha(f),null;var o=Xg(this.N,s);if(o!==void 0){if(o.M.count.value===0)return o.M.O=s,o.M.T=f,o.clone();return o=o.clone(),this.ha(f),o}if(o=this.N.pa(s),o=kD[o],!o)return j.call(this);o=this.ca?o.la:o.pointerType;var CA=kC(s,this.N,o.N);return CA===null?j.call(this):this.da?EI(o.N.X,{P:o,O:CA,U:this,T:f}):EI(o.N.X,{P:o,O:CA})},m=B.UnboundTypeError=eI("UnboundTypeError");var kG=typeof atob=="function"?atob:function(f){var j="",s=0;f=f.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(f.charAt(s++)),CA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(f.charAt(s++)),LA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(f.charAt(s++)),hA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(f.charAt(s++));o=o<<2|CA>>4,CA=(CA&15)<<4|LA>>2;var _A=(LA&3)<<6|hA;j+=String.fromCharCode(o),LA!==64&&(j+=String.fromCharCode(CA)),hA!==64&&(j+=String.fromCharCode(_A))}while(s<f.length);return j},uC={l:function(f,j,s,o){lA("Assertion failed: "+(f?V(c,f):"")+", at: "+[j?j?V(c,j):"":"unknown filename",s,o?o?V(c,o):"":"unknown function"])},q:function(f,j,s){f=lI(f),j=AE(j,"wrapper"),s=UB(s);var o=[].slice,CA=j.N,LA=CA.X,hA=CA.R.X,_A=CA.R.constructor;f=qI(f,function(){CA.R.ja.forEach(function(mA){if(this[mA]===hA[mA])throw new hI("Pure virtual function "+mA+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:LA}),this.__construct.apply(this,o.call(arguments))}),LA.__construct=function(){this===LA&&RI("Pass correct 'this' to __construct");var mA=_A.implement.apply(void 0,[this].concat(o.call(arguments)));TB(mA);var FI=mA.M;mA.notifyOnDestruction(),FI.aa=!0,Object.defineProperties(this,{M:{value:FI}}),rA(this),mA=FI.O,mA=cI(CA,mA),DI.hasOwnProperty(mA)?RI("Tried to register registered instance: "+mA):DI[mA]=this},LA.__destruct=function(){this===LA&&RI("Pass correct 'this' to __destruct"),TB(this);var mA=this.M.O;mA=cI(CA,mA),DI.hasOwnProperty(mA)?delete DI[mA]:RI("Tried to unregister unregistered instance: "+mA)},f.prototype=Object.create(LA);for(var aA in s)f.prototype[aA]=s[aA];return AB(f)},j:function(f){var j=EB[f];delete EB[f];var{fa:s,W:o,ia:CA}=j,LA=CA.map((hA)=>hA.ta).concat(CA.map((hA)=>hA.za));WB([f],LA,(hA)=>{var _A={};return CA.forEach((aA,mA)=>{var FI=hA[mA],YI=aA.ra,yB=aA.sa,kB=hA[mA+CA.length],QQ=aA.ya,HE=aA.Aa;_A[aA.oa]={read:(WC)=>FI.fromWireType(YI(yB,WC)),write:(WC,D0)=>{var Qg=[];QQ(HE,WC,kB.toWireType(Qg,D0)),eB(Qg)}}}),[{name:j.name,fromWireType:function(aA){var mA={},FI;for(FI in _A)mA[FI]=_A[FI].read(aA);return o(aA),mA},toWireType:function(aA,mA){for(var FI in _A)if(!(FI in mA))throw TypeError('Missing field: "'+FI+'"');var YI=s();for(FI in _A)_A[FI].write(YI,mA[FI]);return aA!==null&&aA.push(o,YI),YI},argPackAdvance:8,readValueFromPointer:JI,V:o}]})},v:function(){},B:function(f,j,s,o,CA){var LA=bI(s);j=lI(j),gQ(f,{name:j,fromWireType:function(hA){return!!hA},toWireType:function(hA,_A){return _A?o:CA},argPackAdvance:8,readValueFromPointer:function(hA){if(s===1)var _A=x;else if(s===2)_A=BA;else if(s===4)_A=wA;else throw TypeError("Unknown boolean type size: "+j);return this.fromWireType(_A[hA>>LA])},V:null})},f:function(f,j,s,o,CA,LA,hA,_A,aA,mA,FI,YI,yB){FI=lI(FI),LA=PE(CA,LA),_A&&(_A=PE(hA,_A)),mA&&(mA=PE(aA,mA)),yB=PE(YI,yB);var kB=AA(FI);rC(kB,function(){kA("Cannot construct "+FI+" due to unbound types",[o])}),WB([f,j,s],o?[o]:[],function(QQ){if(QQ=QQ[0],o)var HE=QQ.N,WC=HE.X;else WC=jE.prototype;QQ=qI(kB,function(){if(Object.getPrototypeOf(this)!==D0)throw new DQ("Use 'new' to construct "+FI);if(Qg.Y===void 0)throw new DQ(FI+" has no accessible constructor");var ZF=Qg.Y[arguments.length];if(ZF===void 0)throw new DQ("Tried to invoke ctor of "+FI+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(Qg.Y).toString()+") parameters instead!");return ZF.apply(this,arguments)});var D0=Object.create(WC,{constructor:{value:QQ}});QQ.prototype=D0;var Qg=new aC(FI,QQ,D0,yB,HE,LA,_A,mA);HE=new pE(FI,Qg,!0,!1),WC=new pE(FI+"*",Qg,!1,!1);var R1=new pE(FI+" const*",Qg,!1,!0);return kD[f]={pointerType:WC,la:R1},LF(kB,QQ),[HE,WC,R1]})},d:function(f,j,s,o,CA,LA,hA){var _A=dI(s,o);j=lI(j),LA=PE(CA,LA),WB([],[f],function(aA){function mA(){kA("Cannot call "+FI+" due to unbound types",_A)}aA=aA[0];var FI=aA.name+"."+j;j.startsWith("@@")&&(j=Symbol[j.substring(2)]);var YI=aA.N.constructor;return YI[j]===void 0?(mA.Z=s-1,YI[j]=mA):(OB(YI,j,FI),YI[j].S[s-1]=mA),WB([],_A,function(yB){return yB=CI(FI,[yB[0],null].concat(yB.slice(1)),null,LA,hA),YI[j].S===void 0?(yB.Z=s-1,YI[j]=yB):YI[j].S[s-1]=yB,[]}),[]})},p:function(f,j,s,o,CA,LA){0<j||lA();var hA=dI(j,s);CA=PE(o,CA),WB([],[f],function(_A){_A=_A[0];var aA="constructor "+_A.name;if(_A.N.Y===void 0&&(_A.N.Y=[]),_A.N.Y[j-1]!==void 0)throw new DQ("Cannot register multiple constructors with identical number of parameters ("+(j-1)+") for class '"+_A.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return _A.N.Y[j-1]=()=>{kA("Cannot construct "+_A.name+" due to unbound types",hA)},WB([],hA,function(mA){return mA.splice(1,0,null),_A.N.Y[j-1]=CI(aA,mA,null,CA,LA),[]}),[]})},a:function(f,j,s,o,CA,LA,hA,_A){var aA=dI(s,o);j=lI(j),LA=PE(CA,LA),WB([],[f],function(mA){function FI(){kA("Cannot call "+YI+" due to unbound types",aA)}mA=mA[0];var YI=mA.name+"."+j;j.startsWith("@@")&&(j=Symbol[j.substring(2)]),_A&&mA.N.ja.push(j);var yB=mA.N.X,kB=yB[j];return kB===void 0||kB.S===void 0&&kB.className!==mA.name&&kB.Z===s-2?(FI.Z=s-2,FI.className=mA.name,yB[j]=FI):(OB(yB,j,YI),yB[j].S[s-2]=FI),WB([],aA,function(QQ){return QQ=CI(YI,QQ,mA,LA,hA),yB[j].S===void 0?(QQ.Z=s-2,yB[j]=QQ):yB[j].S[s-2]=QQ,[]}),[]})},A:function(f,j){j=lI(j),gQ(f,{name:j,fromWireType:function(s){var o=UB(s);return mI(s),o},toWireType:function(s,o){return AB(o)},argPackAdvance:8,readValueFromPointer:JI,V:null})},n:function(f,j,s){s=bI(s),j=lI(j),gQ(f,{name:j,fromWireType:function(o){return o},toWireType:function(o,CA){return CA},argPackAdvance:8,readValueFromPointer:GB(j,s),V:null})},e:function(f,j,s,o,CA){j=lI(j),CA===-1&&(CA=4294967295),CA=bI(s);var LA=(_A)=>_A;if(o===0){var hA=32-8*s;LA=(_A)=>_A<<hA>>>hA}s=j.includes("unsigned")?function(_A,aA){return aA>>>0}:function(_A,aA){return aA},gQ(f,{name:j,fromWireType:LA,toWireType:s,argPackAdvance:8,readValueFromPointer:qB(j,CA,o!==0),V:null})},b:function(f,j,s){function o(LA){LA>>=2;var hA=uA;return new CA(v,hA[LA+1],hA[LA])}var CA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][j];s=lI(s),gQ(f,{name:s,fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ua:!0})},o:function(f,j){j=lI(j);var s=j==="std::string";gQ(f,{name:j,fromWireType:function(o){var CA=uA[o>>2],LA=o+4;if(s)for(var hA=LA,_A=0;_A<=CA;++_A){var aA=LA+_A;if(_A==CA||c[aA]==0){if(hA=hA?V(c,hA,aA-hA):"",mA===void 0)var mA=hA;else mA+=String.fromCharCode(0),mA+=hA;hA=aA+1}}else{mA=Array(CA);for(_A=0;_A<CA;++_A)mA[_A]=String.fromCharCode(c[LA+_A]);mA=mA.join("")}return MD(o),mA},toWireType:function(o,CA){CA instanceof ArrayBuffer&&(CA=new Uint8Array(CA));var LA,hA=typeof CA=="string";if(hA||CA instanceof Uint8Array||CA instanceof Uint8ClampedArray||CA instanceof Int8Array||RI("Cannot pass non-string to std::string"),s&&hA){var _A=0;for(LA=0;LA<CA.length;++LA){var aA=CA.charCodeAt(LA);127>=aA?_A++:2047>=aA?_A+=2:55296<=aA&&57343>=aA?(_A+=4,++LA):_A+=3}LA=_A}else LA=CA.length;if(_A=T0(4+LA+1),aA=_A+4,uA[_A>>2]=LA,s&&hA){if(hA=aA,aA=LA+1,LA=c,0<aA){aA=hA+aA-1;for(var mA=0;mA<CA.length;++mA){var FI=CA.charCodeAt(mA);if(55296<=FI&&57343>=FI){var YI=CA.charCodeAt(++mA);FI=65536+((FI&1023)<<10)|YI&1023}if(127>=FI){if(hA>=aA)break;LA[hA++]=FI}else{if(2047>=FI){if(hA+1>=aA)break;LA[hA++]=192|FI>>6}else{if(65535>=FI){if(hA+2>=aA)break;LA[hA++]=224|FI>>12}else{if(hA+3>=aA)break;LA[hA++]=240|FI>>18,LA[hA++]=128|FI>>12&63}LA[hA++]=128|FI>>6&63}LA[hA++]=128|FI&63}}LA[hA]=0}}else if(hA)for(hA=0;hA<LA;++hA)mA=CA.charCodeAt(hA),255<mA&&(MD(aA),RI("String has UTF-16 code units that do not fit in 8 bits")),c[aA+hA]=mA;else for(hA=0;hA<LA;++hA)c[aA+hA]=CA[hA];return o!==null&&o.push(MD,_A),_A},argPackAdvance:8,readValueFromPointer:JI,V:function(o){MD(o)}})},i:function(f,j,s){if(s=lI(s),j===2)var o=GE,CA=YQ,LA=OQ,hA=()=>zA,_A=1;else j===4&&(o=wE,CA=xE,LA=KD,hA=()=>uA,_A=2);gQ(f,{name:s,fromWireType:function(aA){for(var mA=uA[aA>>2],FI=hA(),YI,yB=aA+4,kB=0;kB<=mA;++kB){var QQ=aA+4+kB*j;if(kB==mA||FI[QQ>>_A]==0)yB=o(yB,QQ-yB),YI===void 0?YI=yB:(YI+=String.fromCharCode(0),YI+=yB),yB=QQ+j}return MD(aA),YI},toWireType:function(aA,mA){typeof mA!="string"&&RI("Cannot pass non-string to C++ string type "+s);var FI=LA(mA),YI=T0(4+FI+j);return uA[YI>>2]=FI>>_A,CA(mA,YI+4,FI+j),aA!==null&&aA.push(MD,YI),YI},argPackAdvance:8,readValueFromPointer:JI,V:function(aA){MD(aA)}})},k:function(f,j,s,o,CA,LA){EB[f]={name:lI(j),fa:PE(s,o),W:PE(CA,LA),ia:[]}},h:function(f,j,s,o,CA,LA,hA,_A,aA,mA){EB[f].ia.push({oa:lI(j),ta:s,ra:PE(o,CA),sa:LA,za:hA,ya:PE(_A,aA),Aa:mA})},C:function(f,j){j=lI(j),gQ(f,{va:!0,name:j,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(f,j,s,o,CA){f=Q0[f],j=UB(j),s=B0(s);var LA=[];return uA[o>>2]=AB(LA),f(j,s,LA,CA)},t:function(f,j,s,o){f=Q0[f],j=UB(j),s=B0(s),f(j,s,null,o)},g:mI,m:function(f,j){var s=TG(f,j),o=s[0];j=o.name+"_$"+s.slice(1).map(function(hA){return hA.name}).join("_")+"$";var CA=SF[j];if(CA!==void 0)return CA;var LA=Array(f-1);return CA=YF((hA,_A,aA,mA)=>{for(var FI=0,YI=0;YI<f-1;++YI)LA[YI]=s[YI+1].readValueFromPointer(mA+FI),FI+=s[YI+1].argPackAdvance;hA=hA[_A].apply(hA,LA);for(YI=0;YI<f-1;++YI)s[YI+1].ma&&s[YI+1].ma(LA[YI]);if(!o.va)return o.toWireType(aA,hA)}),SF[j]=CA},D:function(f){4<f&&(iA[f].ga+=1)},r:function(f){var j=UB(f);eB(j),mI(f)},c:function(){lA("")},x:function(f,j,s){c.copyWithin(f,j,j+s)},w:function(f){var j=c.length;if(f>>>=0,2147483648<f)return!1;for(var s=1;4>=s;s*=2){var o=j*(1+0.2/s);o=Math.min(o,f+100663296);var CA=Math;o=Math.max(f,o),CA=CA.min.call(CA,2147483648,o+(65536-o%65536)%65536);A:{try{y.grow(CA-v.byteLength+65535>>>16),SA();var LA=1;break A}catch(hA){}LA=void 0}if(LA)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(f,j,s,o){for(var CA=0,LA=0;LA<s;LA++){var hA=uA[j>>2],_A=uA[j+4>>2];j+=8;for(var aA=0;aA<_A;aA++){var mA=c[hA+aA],FI=E0[f];mA===0||mA===10?((f===1?R:K)(V(FI,0)),FI.length=0):FI.push(mA)}CA+=_A}return uA[o>>2]=CA,0}};(function(){function f(CA){B.asm=CA.exports,y=B.asm.E,SA(),uI=B.asm.J,VI.unshift(B.asm.F),BI--,B.monitorRunDependencies&&B.monitorRunDependencies(BI),BI==0&&(ZA!==null&&(clearInterval(ZA),ZA=null),QA&&(CA=QA,QA=null,CA()))}function j(CA){f(CA.instance)}function s(CA){return YA().then(function(LA){return WebAssembly.instantiate(LA,o)}).then(function(LA){return LA}).then(CA,function(LA){K("failed to asynchronously prepare wasm: "+LA),lA(LA)})}var o={a:uC};if(BI++,B.monitorRunDependencies&&B.monitorRunDependencies(BI),B.instantiateWasm)try{return B.instantiateWasm(o,f)}catch(CA){K("Module.instantiateWasm callback failed with error: "+CA),D(CA)}return function(){return M||typeof WebAssembly.instantiateStreaming!="function"||oA(kI)||typeof fetch!="function"?s(j):fetch(kI,{credentials:"same-origin"}).then(function(CA){return WebAssembly.instantiateStreaming(CA,o).then(j,function(LA){return K("wasm streaming compile failed: "+LA),K("falling back to ArrayBuffer instantiation"),s(j)})})}().catch(D),{}})(),B.___wasm_call_ctors=function(){return(B.___wasm_call_ctors=B.asm.F).apply(null,arguments)};var P0=B.___getTypeName=function(){return(P0=B.___getTypeName=B.asm.G).apply(null,arguments)};B.__embind_initialize_bindings=function(){return(B.__embind_initialize_bindings=B.asm.H).apply(null,arguments)};var T0=B._malloc=function(){return(T0=B._malloc=B.asm.I).apply(null,arguments)},MD=B._free=function(){return(MD=B._free=B.asm.K).apply(null,arguments)};B.dynCall_jiji=function(){return(B.dynCall_jiji=B.asm.L).apply(null,arguments)};var k0;QA=function f(){k0||bG(),k0||(QA=f)};function bG(){function f(){if(!k0&&(k0=!0,B.calledRun=!0,!Z)){if(e(VI),C(B),B.onRuntimeInitialized)B.onRuntimeInitialized();if(B.postRun)for(typeof B.postRun=="function"&&(B.postRun=[B.postRun]);B.postRun.length;){var j=B.postRun.shift();WQ.unshift(j)}e(WQ)}}if(!(0<BI)){if(B.preRun)for(typeof B.preRun=="function"&&(B.preRun=[B.preRun]);B.preRun.length;)QB();e(qA),0<BI||(B.setStatus?(B.setStatus("Running..."),setTimeout(function(){setTimeout(function(){B.setStatus("")},1),f()},1)):f())}}if(B.preInit)for(typeof B.preInit=="function"&&(B.preInit=[B.preInit]);0<B.preInit.length;)B.preInit.pop()();return bG(),I.ready}})(),kO=ka;var Ju=function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A}({}),bO=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),vO=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),ZU=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),LL=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),Hu=function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A}({}),XJ=function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A}({}),ba=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),Uq=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),YL=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),$J=function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A}({}),WJ=function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A}({}),SL=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),hO=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),ZL=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),zL=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),V0=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),XL=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),va={ALIGN_AUTO:Ju.Auto,ALIGN_FLEX_START:Ju.FlexStart,ALIGN_CENTER:Ju.Center,ALIGN_FLEX_END:Ju.FlexEnd,ALIGN_STRETCH:Ju.Stretch,ALIGN_BASELINE:Ju.Baseline,ALIGN_SPACE_BETWEEN:Ju.SpaceBetween,ALIGN_SPACE_AROUND:Ju.SpaceAround,ALIGN_SPACE_EVENLY:Ju.SpaceEvenly,BOX_SIZING_BORDER_BOX:bO.BorderBox,BOX_SIZING_CONTENT_BOX:bO.ContentBox,DIMENSION_WIDTH:vO.Width,DIMENSION_HEIGHT:vO.Height,DIRECTION_INHERIT:ZU.Inherit,DIRECTION_LTR:ZU.LTR,DIRECTION_RTL:ZU.RTL,DISPLAY_FLEX:LL.Flex,DISPLAY_NONE:LL.None,DISPLAY_CONTENTS:LL.Contents,EDGE_LEFT:Hu.Left,EDGE_TOP:Hu.Top,EDGE_RIGHT:Hu.Right,EDGE_BOTTOM:Hu.Bottom,EDGE_START:Hu.Start,EDGE_END:Hu.End,EDGE_HORIZONTAL:Hu.Horizontal,EDGE_VERTICAL:Hu.Vertical,EDGE_ALL:Hu.All,ERRATA_NONE:XJ.None,ERRATA_STRETCH_FLEX_BASIS:XJ.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:XJ.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:XJ.AbsolutePercentAgainstInnerSize,ERRATA_ALL:XJ.All,ERRATA_CLASSIC:XJ.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:ba.WebFlexBasis,FLEX_DIRECTION_COLUMN:Uq.Column,FLEX_DIRECTION_COLUMN_REVERSE:Uq.ColumnReverse,FLEX_DIRECTION_ROW:Uq.Row,FLEX_DIRECTION_ROW_REVERSE:Uq.RowReverse,GUTTER_COLUMN:YL.Column,GUTTER_ROW:YL.Row,GUTTER_ALL:YL.All,JUSTIFY_FLEX_START:$J.FlexStart,JUSTIFY_CENTER:$J.Center,JUSTIFY_FLEX_END:$J.FlexEnd,JUSTIFY_SPACE_BETWEEN:$J.SpaceBetween,JUSTIFY_SPACE_AROUND:$J.SpaceAround,JUSTIFY_SPACE_EVENLY:$J.SpaceEvenly,LOG_LEVEL_ERROR:WJ.Error,LOG_LEVEL_WARN:WJ.Warn,LOG_LEVEL_INFO:WJ.Info,LOG_LEVEL_DEBUG:WJ.Debug,LOG_LEVEL_VERBOSE:WJ.Verbose,LOG_LEVEL_FATAL:WJ.Fatal,MEASURE_MODE_UNDEFINED:SL.Undefined,MEASURE_MODE_EXACTLY:SL.Exactly,MEASURE_MODE_AT_MOST:SL.AtMost,NODE_TYPE_DEFAULT:hO.Default,NODE_TYPE_TEXT:hO.Text,OVERFLOW_VISIBLE:ZL.Visible,OVERFLOW_HIDDEN:ZL.Hidden,OVERFLOW_SCROLL:ZL.Scroll,POSITION_TYPE_STATIC:zL.Static,POSITION_TYPE_RELATIVE:zL.Relative,POSITION_TYPE_ABSOLUTE:zL.Absolute,UNIT_UNDEFINED:V0.Undefined,UNIT_POINT:V0.Point,UNIT_PERCENT:V0.Percent,UNIT_AUTO:V0.Auto,WRAP_NO_WRAP:XL.NoWrap,WRAP_WRAP:XL.Wrap,WRAP_WRAP_REVERSE:XL.WrapReverse},_O=va;function $L(A){function I(D,u,H){let R=D[u];D[u]=function(){for(var K=arguments.length,M=Array(K),z=0;z<K;z++)M[z]=arguments[z];return H.call(this,R,...M)}}for(let D of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let u={[V0.Point]:A.Node.prototype[D],[V0.Percent]:A.Node.prototype[`${D}Percent`],[V0.Auto]:A.Node.prototype[`${D}Auto`]};I(A.Node.prototype,D,function(H){for(var R=arguments.length,K=Array(R>1?R-1:0),M=1;M<R;M++)K[M-1]=arguments[M];let z=K.pop(),y,Z;if(z==="auto")y=V0.Auto,Z=void 0;else if(typeof z==="object")y=z.unit,Z=z.valueOf();else if(y=typeof z==="string"&&z.endsWith("%")?V0.Percent:V0.Point,Z=parseFloat(z),z!==void 0&&!Number.isNaN(z)&&Number.isNaN(Z))throw Error(`Invalid value ${z} for ${D}`);if(!u[y])throw Error(`Failed to execute "${D}": Unsupported unit '${z}'`);if(Z!==void 0)return u[y].call(this,...K,Z);else return u[y].call(this,...K)})}function B(D){return A.MeasureCallback.implement({measure:function(){let{width:u,height:H}=D(...arguments);return{width:u??NaN,height:H??NaN}}})}I(A.Node.prototype,"setMeasureFunc",function(D,u){if(u)return D.call(this,B(u));else return this.unsetMeasureFunc()});function C(D){return A.DirtiedCallback.implement({dirtied:D})}return I(A.Node.prototype,"setDirtiedFunc",function(D,u){D.call(this,C(u))}),I(A.Config.prototype,"free",function(){A.Config.destroy(this)}),I(A.Node,"create",(D,u)=>{return u?A.Node.createWithConfig(u):A.Node.createDefault()}),I(A.Node.prototype,"free",function(){A.Node.destroy(this)}),I(A.Node.prototype,"freeRecursive",function(){for(let D=0,u=this.getChildCount();D<u;++D)this.getChild(0).freeRecursive();this.free()}),I(A.Node.prototype,"calculateLayout",function(D){let u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,H=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,R=arguments.length>3&&arguments[3]!==void 0?arguments[3]:ZU.LTR;return D.call(this,u,H,R)}),{Config:A.Config,Node:A.Node,..._O}}var ha=$L(await kO()),PI=ha;var LV=uB(iO(),1),YV=uB(mO(),1);import bt from"node:process";function OL({onlyFirst:A=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",A?void 0:"g")}var la=OL();function zU(A){if(typeof A!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof A}\``);return A.replace(la,"")}function cO(A){return A===161||A===164||A===167||A===168||A===170||A===173||A===174||A>=176&&A<=180||A>=182&&A<=186||A>=188&&A<=191||A===198||A===208||A===215||A===216||A>=222&&A<=225||A===230||A>=232&&A<=234||A===236||A===237||A===240||A===242||A===243||A>=247&&A<=250||A===252||A===254||A===257||A===273||A===275||A===283||A===294||A===295||A===299||A>=305&&A<=307||A===312||A>=319&&A<=322||A===324||A>=328&&A<=331||A===333||A===338||A===339||A===358||A===359||A===363||A===462||A===464||A===466||A===468||A===470||A===472||A===474||A===476||A===593||A===609||A===708||A===711||A>=713&&A<=715||A===717||A===720||A>=728&&A<=731||A===733||A===735||A>=768&&A<=879||A>=913&&A<=929||A>=931&&A<=937||A>=945&&A<=961||A>=963&&A<=969||A===1025||A>=1040&&A<=1103||A===1105||A===8208||A>=8211&&A<=8214||A===8216||A===8217||A===8220||A===8221||A>=8224&&A<=8226||A>=8228&&A<=8231||A===8240||A===8242||A===8243||A===8245||A===8251||A===8254||A===8308||A===8319||A>=8321&&A<=8324||A===8364||A===8451||A===8453||A===8457||A===8467||A===8470||A===8481||A===8482||A===8486||A===8491||A===8531||A===8532||A>=8539&&A<=8542||A>=8544&&A<=8555||A>=8560&&A<=8569||A===8585||A>=8592&&A<=8601||A===8632||A===8633||A===8658||A===8660||A===8679||A===8704||A===8706||A===8707||A===8711||A===8712||A===8715||A===8719||A===8721||A===8725||A===8730||A>=8733&&A<=8736||A===8739||A===8741||A>=8743&&A<=8748||A===8750||A>=8756&&A<=8759||A===8764||A===8765||A===8776||A===8780||A===8786||A===8800||A===8801||A>=8804&&A<=8807||A===8810||A===8811||A===8814||A===8815||A===8834||A===8835||A===8838||A===8839||A===8853||A===8857||A===8869||A===8895||A===8978||A>=9312&&A<=9449||A>=9451&&A<=9547||A>=9552&&A<=9587||A>=9600&&A<=9615||A>=9618&&A<=9621||A===9632||A===9633||A>=9635&&A<=9641||A===9650||A===9651||A===9654||A===9655||A===9660||A===9661||A===9664||A===9665||A>=9670&&A<=9672||A===9675||A>=9678&&A<=9681||A>=9698&&A<=9701||A===9711||A===9733||A===9734||A===9737||A===9742||A===9743||A===9756||A===9758||A===9792||A===9794||A===9824||A===9825||A>=9827&&A<=9829||A>=9831&&A<=9834||A===9836||A===9837||A===9839||A===9886||A===9887||A===9919||A>=9926&&A<=9933||A>=9935&&A<=9939||A>=9941&&A<=9953||A===9955||A===9960||A===9961||A>=9963&&A<=9969||A===9972||A>=9974&&A<=9977||A===9979||A===9980||A===9982||A===9983||A===10045||A>=10102&&A<=10111||A>=11094&&A<=11097||A>=12872&&A<=12879||A>=57344&&A<=63743||A>=65024&&A<=65039||A===65533||A>=127232&&A<=127242||A>=127248&&A<=127277||A>=127280&&A<=127337||A>=127344&&A<=127373||A===127375||A===127376||A>=127387&&A<=127404||A>=917760&&A<=917999||A>=983040&&A<=1048573||A>=1048576&&A<=1114109}function XU(A){return A===12288||A>=65281&&A<=65376||A>=65504&&A<=65510}function $U(A){return A>=4352&&A<=4447||A===8986||A===8987||A===9001||A===9002||A>=9193&&A<=9196||A===9200||A===9203||A===9725||A===9726||A===9748||A===9749||A>=9776&&A<=9783||A>=9800&&A<=9811||A===9855||A>=9866&&A<=9871||A===9875||A===9889||A===9898||A===9899||A===9917||A===9918||A===9924||A===9925||A===9934||A===9940||A===9962||A===9970||A===9971||A===9973||A===9978||A===9981||A===9989||A===9994||A===9995||A===10024||A===10060||A===10062||A>=10067&&A<=10069||A===10071||A>=10133&&A<=10135||A===10160||A===10175||A===11035||A===11036||A===11088||A===11093||A>=11904&&A<=11929||A>=11931&&A<=12019||A>=12032&&A<=12245||A>=12272&&A<=12287||A>=12289&&A<=12350||A>=12353&&A<=12438||A>=12441&&A<=12543||A>=12549&&A<=12591||A>=12593&&A<=12686||A>=12688&&A<=12773||A>=12783&&A<=12830||A>=12832&&A<=12871||A>=12880&&A<=42124||A>=42128&&A<=42182||A>=43360&&A<=43388||A>=44032&&A<=55203||A>=63744&&A<=64255||A>=65040&&A<=65049||A>=65072&&A<=65106||A>=65108&&A<=65126||A>=65128&&A<=65131||A>=94176&&A<=94180||A>=94192&&A<=94198||A>=94208&&A<=101589||A>=101631&&A<=101662||A>=101760&&A<=101874||A>=110576&&A<=110579||A>=110581&&A<=110587||A===110589||A===110590||A>=110592&&A<=110882||A===110898||A>=110928&&A<=110930||A===110933||A>=110948&&A<=110951||A>=110960&&A<=111355||A>=119552&&A<=119638||A>=119648&&A<=119670||A===126980||A===127183||A===127374||A>=127377&&A<=127386||A>=127488&&A<=127490||A>=127504&&A<=127547||A>=127552&&A<=127560||A===127568||A===127569||A>=127584&&A<=127589||A>=127744&&A<=127776||A>=127789&&A<=127797||A>=127799&&A<=127868||A>=127870&&A<=127891||A>=127904&&A<=127946||A>=127951&&A<=127955||A>=127968&&A<=127984||A===127988||A>=127992&&A<=128062||A===128064||A>=128066&&A<=128252||A>=128255&&A<=128317||A>=128331&&A<=128334||A>=128336&&A<=128359||A===128378||A===128405||A===128406||A===128420||A>=128507&&A<=128591||A>=128640&&A<=128709||A===128716||A>=128720&&A<=128722||A>=128725&&A<=128728||A>=128732&&A<=128735||A===128747||A===128748||A>=128756&&A<=128764||A>=128992&&A<=129003||A===129008||A>=129292&&A<=129338||A>=129340&&A<=129349||A>=129351&&A<=129535||A>=129648&&A<=129660||A>=129664&&A<=129674||A>=129678&&A<=129734||A===129736||A>=129741&&A<=129756||A>=129759&&A<=129770||A>=129775&&A<=129784||A>=131072&&A<=196605||A>=196608&&A<=262141}function ia(A){if(!Number.isSafeInteger(A))throw TypeError(`Expected a code point, got \`${typeof A}\`.`)}function nO(A,{ambiguousAsWide:I=!1}={}){if(ia(A),XU(A)||$U(A)||I&&cO(A))return 2;return 1}var rO=uB(sO(),1),ma=new Intl.Segmenter,ca=/^\p{Default_Ignorable_Code_Point}$/u;function UD(A,I={}){if(typeof A!=="string"||A.length===0)return 0;let{ambiguousIsNarrow:B=!0,countAnsiEscapeCodes:C=!1}=I;if(!C)A=zU(A);if(A.length===0)return 0;let D=0,u={ambiguousAsWide:!B};for(let{segment:H}of ma.segment(A)){let R=H.codePointAt(0);if(R<=31||R>=127&&R<=159)continue;if(R>=8203&&R<=8207||R===65279)continue;if(R>=768&&R<=879||R>=6832&&R<=6911||R>=7616&&R<=7679||R>=8400&&R<=8447||R>=65056&&R<=65071)continue;if(R>=55296&&R<=57343)continue;if(R>=65024&&R<=65039)continue;if(ca.test(H))continue;if(rO.default().test(H)){D+=2;continue}D+=nO(R,u)}return D}function E1(A){let I=0;for(let B of A.split(`
@@ -320,4 +320,4 @@ ${df}Quick Start${qD}
320
320
  ${KF}$${qD} sequenzy websites guide --framework nextjs --use-case transactional`,H=`
321
321
  ${df}Notes${qD}
322
322
  ${KF}Generated content should be reviewed before sending.${qD}
323
- ${KF}Use 'sequenzy --help' and '<command> --help' for detailed examples and caveats.${qD}`;console.log(B),console.log(C),console.log(),console.log(D),console.log(u),console.log(H),console.log()}var uE=new H9;uE.name("sequenzy").description("Sequenzy CLI - Email marketing from the terminal").version(sf).showHelpAfterError().showSuggestionAfterError().action(()=>{_e()});LI(uE,{notes:["Use --json on data commands when another tool or agent should parse structured output.","Dashboard-aware JSON responses include appUrls when a company ID can be resolved.","Company-scoped commands accept --company for personal API keys that can access multiple companies.","Content commands prefer file flags such as --html-file, --blocks-file, --steps-file, and --emails-file to avoid shell escaping issues.","Sequence creation supports --goal for AI generation or explicit step JSON."],examples:['sequenzy templates create welcome --subject "Welcome" --html-file ./welcome.html','sequenzy campaigns update camp_123 --subject "Updated subject" --html-file ./campaign.html',"sequenzy sequences create onboarding --trigger contact_added --list-id list_123 --steps-file ./steps.json","sequenzy urls --company comp_123 --sequence seq_123 --settings-tab integrations","sequenzy websites guide --framework nextjs --use-case transactional",'sequenzy api-keys create --name "CI deploy key" --company comp_123']});var xe=uE.command("login").description("Log in to your Sequenzy account").action(RO);LI(xe,{notes:["Starts device authentication and prints a verification URL plus approval code."],examples:["sequenzy login"]});var le=uE.command("logout").description("Log out of your Sequenzy account").action(UO);LI(le,{examples:["sequenzy logout"]});var ie=uE.command("whoami").description("Show the locally stored Sequenzy identity").action(mf);LI(ie,{notes:["This confirms local CLI auth state. Use 'sequenzy account' when you need company access details too."],examples:["sequenzy whoami"]});var me=uE.command("stats").description("Show account, campaign, or sequence metrics").option("-p, --period <period>","Time period (7d, 30d, 90d)","7d").option("--campaign <id>","Get stats for a specific campaign").option("--sequence <id>","Get stats for a specific sequence").action(hf);LI(me,{notes:["Use exactly one of: account-level period, --campaign, or --sequence.","Sequence stats include per-step failures when the API reports them."],examples:["sequenzy stats","sequenzy stats --period 30d","sequenzy stats --campaign camp_123","sequenzy stats --sequence seq_123"]});var ce=uE.command("urls").description("Generate Sequenzy dashboard URLs for known resource IDs").option("-c, --company <id>","Company ID").option("--campaign <id>","Campaign ID for campaign editor URL").option("--sequence <id>","Sequence ID for sequence editor URL").option("--template <id>","Template/email ID for email editor URL").option("--email <id>","Email ID for email editor URL").option("--transactional <id>","Transactional email ID").option("--email-send <id>","Email send ID").option("--domain <id>","Sending domain ID").option("--status <status>","Status for campaign/sequence list URLs").option("--settings-tab <tab>","Settings tab slug, e.g. integrations").option("--json","Print JSON").action(CO);LI(ce,{notes:["Uses SEQUENZY_APP_URL when set, otherwise https://sequenzy.com.","If --company is omitted, the CLI tries the current company from `sequenzy account`.","Useful after creating a campaign or sequence when the user wants a review/edit link."],examples:["sequenzy urls --company comp_123","sequenzy urls --company comp_123 --sequence seq_123","sequenzy urls --company comp_123 --campaign camp_123","sequenzy urls --company comp_123 --email-send send_123","sequenzy urls --company comp_123 --settings-tab integrations","sequenzy urls --company comp_123 --json"]});var jG=uE.command("subscribers").description("Manage subscribers").action(()=>jG.help());LI(jG,{notes:["Subscriber list fetches every page by default so agents do not silently miss later results.","`subscribers get` includes tags, list memberships, sequence enrollments, email stats, and recent activity.","--attr expects repeated key=value pairs. Example: --attr firstName=Ana --attr plan=pro"],examples:["sequenzy subscribers list --tag vip","sequenzy subscribers list --tag vip --limit 25 --json","sequenzy subscribers add user@example.com --tag trial --attr firstName=Ana","sequenzy subscribers get user@example.com --json","sequenzy subscribers remove user@example.com --hard"]});var ne=jG.command("list").description("List subscribers").option("-s, --segment <id>","Filter by segment").option("-t, --tag <tag>","Filter by tag").option("-l, --limit <number>","Maximum results to return").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>w1("list",A));LI(ne,{examples:["sequenzy subscribers list","sequenzy subscribers list --segment seg_123","sequenzy subscribers list --tag onboarding --limit 100"]});var de=jG.command("add [email]").description("Add or upsert a subscriber").option("--external-id <id>","Customer-owned subscriber ID").option("--first-name <name>","Subscriber first name").option("--last-name <name>","Subscriber last name").option("-t, --tag <tags...>","Tags to apply").option("-l, --list <ids...>","List IDs to add the subscriber to").option("--no-lists","Add the subscriber to no lists").option("--skip-sequences","Do not enroll the subscriber in matching sequences").option("-a, --attr <attrs...>","Attributes (key=value)").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>w1("add",{email:A,...I,noLists:I.lists===!1}));LI(de,{examples:["sequenzy subscribers add user@example.com","sequenzy subscribers add user@example.com --first-name Ana --tag trial --attr plan=pro","sequenzy subscribers add user@example.com --list list_123","sequenzy subscribers add user@example.com --skip-sequences"]});var se=jG.command("get [email]").description("Get subscriber details").option("--external-id <id>","Customer-owned subscriber ID").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>w1("get",{email:A,...I}));LI(se,{examples:["sequenzy subscribers get user@example.com"]});var re=jG.command("update [email]").description("Update subscriber status, tags, or custom attributes").option("--external-id <id>","Customer-owned subscriber ID").option("--status <status>","Subscriber status").option("-t, --tag <tags...>","Replacement tags").option("-a, --attr <attrs...>","Attributes (key=value)").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>w1("update",{email:A,...I}));LI(re,{examples:["sequenzy subscribers update user@example.com --status unsubscribed","sequenzy subscribers update user@example.com --tag churned --attr cancelReason=too_expensive"]});var ae=jG.command("event [email]").description("Trigger an event for a subscriber").option("--external-id <id>","Customer-owned subscriber ID").requiredOption("-n, --name <event>","Event name").option("-p, --property <properties...>","Event properties (key=value)").option("-a, --attr <attrs...>","Subscriber attributes (key=value)").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>w1("event",{email:A,...I}));LI(ae,{examples:["sequenzy subscribers event user@example.com --name saas.purchase","sequenzy subscribers event user@example.com --name saas.purchase --property plan=pro --property amount=99"]});var pe=jG.command("remove [email]").description("Unsubscribe or permanently delete a subscriber").option("--external-id <id>","Customer-owned subscriber ID").option("--hard","Permanently delete (not just unsubscribe)").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>w1("remove",{email:A,...I}));LI(pe,{examples:["sequenzy subscribers remove user@example.com","sequenzy subscribers remove user@example.com --hard"]});var CN=uE.command("transactional").description("Inspect transactional email templates").action(()=>CN.help());LI(CN,{notes:["Use the top-level `sequenzy send` command to send email."],examples:["sequenzy transactional list","sequenzy transactional get welcome","sequenzy send user@example.com --template welcome --var firstName=Ana"]});var te=CN.command("list").description("List transactional templates").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>WY("list",A));LI(te,{examples:["sequenzy transactional list --company comp_123"]});var oe=CN.command("get <slug>").description("Get transactional template details by slug").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>WY("get",{slug:A,...I}));LI(oe,{examples:["sequenzy transactional get welcome"]});var OY=uE.command("widgets").description("Widget helper commands").action(()=>OY.help());LI(OY,{examples:["sequenzy widgets preferences-token user@example.com"]});var ee=OY.command("preferences-token <email>").description("Generate a subscription preferences iframe token").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>cf("preferences-token",{email:A,...I}));LI(ee,{examples:["sequenzy widgets preferences-token user@example.com"]});var yY=uE.command("email-sends").alias("emailsends").description("Inspect sent email snapshots and delivery events").action(()=>yY.help());LI(yY,{notes:["Email send rows are short-lived; if the row was cleaned up, this falls back to retained ClickHouse events.","Use --html to print the stored HTML body when it is still available."],examples:["sequenzy email-sends get send_123","sequenzy email-sends get send_123 --html","sequenzy email-sends get send_123 --json"]});var AAA=yY.command("get <emailSendId>").description("Get an email send by ID").option("-c, --company <id>","Company ID override for personal API keys").option("--html","Print the full stored HTML body in text output").option("--html-only","Print only the stored HTML body").option("--json","Print raw JSON").action((A,I)=>wO("get",{id:A,...I}));LI(AAA,{examples:["sequenzy email-sends get send_123","sequenzy email-sends get send_123 --html","sequenzy email-sends get send_123 --company comp_123 --json"]});var IAA=uE.command("send <email>").description("Send a transactional email").option("-t, --template <slug>","Transactional template slug to use").option("-s, --subject <subject>","Email subject").option("--html <html>","Email HTML content").option("--html-file <file>","Read HTML from file").option("--vars-json <json>","Variables as a JSON object, including nested arrays for repeat blocks").option("-v, --var <vars...>","Variables (key=value)").action(Tf);LI(IAA,{notes:["Use either --template or --html/--html-file.","--subject is required when sending raw HTML.","--vars-json accepts nested objects and arrays; --var overrides individual scalar keys."],examples:["sequenzy send user@example.com --template welcome --var firstName=Ana",`sequenzy send user@example.com --template welcome --vars-json '{"event":{"items":[{"title":"Plan","description":"Pro"}]}}'`,'sequenzy send user@example.com --subject "Welcome" --html-file ./welcome.html']});var PG=uE.command("campaigns").description("Manage campaigns").action(()=>PG.help());LI(PG,{notes:["Campaign creation supports HTML, Sequenzy blocks, or prompt-generated content.","Campaign updates support HTML, Sequenzy blocks, subject, name, labels, and reply-to changes.","Campaign scheduling requires a future ISO timestamp and a verified sending domain."],examples:["sequenzy campaigns list --status draft --company comp_123",'sequenzy campaigns create "April Launch" --subject "We shipped" --html-file ./campaign.html','sequenzy campaigns create "API Launch" --subject "We shipped" --label edm api --html-file ./campaign.html','sequenzy campaigns schedule camp_123 --at "2026-06-01T14:00:00Z"',"sequenzy campaigns test camp_123 --to you@example.com"]});var BAA=PG.command("list").description("List campaigns").option("-s, --status <status>","Filter by status").option("--label <labels...>","Filter by label name").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>pw("list",A));LI(BAA,{examples:["sequenzy campaigns list","sequenzy campaigns list --status draft --company comp_123","sequenzy campaigns list --label edm"]});var QAA=PG.command("get <id>").description("Get campaign details").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>pw("get",{id:A,...I}));LI(QAA,{examples:["sequenzy campaigns get camp_123 --company comp_123"]});var EAA=PG.command("create <name>").description("Create a draft campaign").option("-s, --subject <subject>","Email subject").option("--tracking-code <code>","Optional campaign tracking code").option("--html <html>","Email HTML content").option("--html-file <file>","Read HTML from file").option("--blocks-json <json>","Inline JSON array of Sequenzy email blocks").option("--blocks-file <file>","Path to a JSON file with Sequenzy email blocks").option("--prompt <prompt>","Generate campaign blocks from a prompt").option("--style <style>","Prompt generation style: minimal, branded, promotional").option("--tone <tone>","Prompt generation tone: professional, casual, friendly").option("--label <labels...>","Label names to assign").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>pw("create",{name:A,...I}));LI(EAA,{notes:["--subject is required unless --prompt is provided. With --prompt, the generated subject is used unless --subject is also provided.","Use --blocks-json or --blocks-file when you need editor-compatible blocks, including conditional content.","Do not combine prompt, HTML flags, and blocks flags in the same request."],examples:['sequenzy campaigns create "April Launch" --prompt "Announce our new analytics dashboard"','sequenzy campaigns create "April Launch" --subject "We shipped" --html-file ./campaign.html','sequenzy campaigns create "API Launch" --subject "We shipped" --label edm api --html-file ./campaign.html','sequenzy campaigns create "Segmented Launch" --subject "We shipped" --blocks-file ./campaign-blocks.json']});var CAA=PG.command("update <id>").description("Update a draft campaign").option("-n, --name <name>","Campaign name").option("-s, --subject <subject>","Email subject").option("--tracking-code <code>","Optional campaign tracking code").option("--html <html>","Email HTML content").option("--html-file <file>","Read HTML from file").option("--blocks-json <json>","Inline JSON array of Sequenzy email blocks").option("--blocks-file <file>","Path to a JSON file with Sequenzy email blocks").option("--campaign-data-json <json>","Inline campaignData JSON object").option("--campaign-data-file <file>","Path to a JSON file with campaignData").option("--computed-lists-json <json>","Inline computedLists JSON array").option("--computed-lists-file <file>","Path to a JSON file with computedLists").option("--reply-to <email>","Set reply-to using an existing reply profile email").option("--reply-profile <id>","Set reply-to using a reply profile ID").option("--label <labels...>","Replace label names").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>pw("update",{id:A,...I}));LI(CAA,{notes:["Provide at least one update flag, including content, labels, reply-to, campaign data, or computed lists.","Use --blocks-json or --blocks-file when you need editor-compatible blocks, including conditional content.","Use --campaign-data-file and --computed-lists-file to upload personalization data for repeat blocks.","Do not combine HTML flags with blocks flags in the same request.","Use either --reply-to or --reply-profile, not both."],examples:['sequenzy campaigns update camp_123 --subject "Updated subject"',"sequenzy campaigns update camp_123 --html-file ./campaign-v2.html","sequenzy campaigns update camp_123 --blocks-file ./campaign-v2-blocks.json","sequenzy campaigns update camp_123 --campaign-data-file ./campaign-data.json --computed-lists-file ./computed-lists.json","sequenzy campaigns update camp_123 --reply-to support@example.com","sequenzy campaigns update camp_123 --label edm api"]});var DAA=PG.command("schedule <id>").description("Schedule a draft or scheduled campaign").requiredOption("--at <datetime>","Future ISO date/time to send, for example 2026-06-01T14:00:00Z").option("--target-lists-json <json>","Inline campaign targetLists JSON object").option("--target-lists-file <file>","Path to a JSON file with campaign targetLists").option("--send-time-optimization","Enable send-time optimization for the scheduled send").option("--spread-over-hours <hours>","Spread delivery over 1-72 hours. Disables send-time optimization when set.").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>pw("schedule",{id:A,...I}));LI(DAA,{notes:["The campaign must be draft or already scheduled.","Omit target lists to reuse saved campaign targeting, or default to all active subscribers.",'Target list examples include {"type":"all"}, {"type":"lists","listIds":["list_123"]}, and {"type":"segment","segmentId":"seg_123"}.'],examples:['sequenzy campaigns schedule camp_123 --at "2026-06-01T14:00:00Z"',`sequenzy campaigns schedule camp_123 --at "2026-06-01T14:00:00Z" --target-lists-json '{"type":"all"}'`,'sequenzy campaigns schedule camp_123 --at "2026-06-01T14:00:00Z" --target-lists-file ./target-lists.json','sequenzy campaigns schedule camp_123 --at "2026-06-01T14:00:00Z" --spread-over-hours 6']});var gAA=PG.command("test <id>").description("Send a test email for a campaign").requiredOption("--to <email>","Recipient email for the test").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>pw("test",{id:A,...I}));LI(gAA,{examples:["sequenzy campaigns test camp_123 --to you@example.com"]});var MF=uE.command("sequences").description("Manage email sequences").action(()=>MF.help());LI(MF,{notes:["The CLI supports both AI goal-based sequence creation and explicit-step creation.","Trigger-specific options depend on --trigger. For example: contact_added needs --list-id, tag_added needs --tag-name, inactivity needs --event-name and --inactive-days.","Use --goal for AI generation, or --steps-file / --emails-file with JSON arrays that match the API step objects.","Use --enrollment-mode matching_field for product- or variant-specific event sequences.",'Explicit --steps-file input can include discount actions with {"type":"create_discount","discountType":"percent","percentOff":20,"duration":"once","appliesToAllPlans":true}; later emails can use {{discount.code}}.',"Discount action sequences require a connected Stripe integration before enabling."],examples:["sequenzy sequences list --company comp_123",'sequenzy sequences create onboarding --trigger event_received --event-name signup.completed --goal "Guide new users to activation"',"sequenzy sequences create onboarding --trigger contact_added --list-id list_123 --steps-file ./steps.json","sequenzy sequences update seq_123 --steps-file ./sequence-updates.json","sequenzy sequences enable seq_123"]});var FAA=MF.command("list").description("List sequences").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>Ku("list",A));LI(FAA,{examples:["sequenzy sequences list --company comp_123"]});var uAA=MF.command("get <id>").description("Get sequence details").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("get",{id:A,...I}));LI(uAA,{examples:["sequenzy sequences get seq_123 --company comp_123"]});var GAA=MF.command("create <name>").description("Create a sequence from AI goal input or explicit step content").requiredOption("-t, --trigger <trigger>","Sequence trigger type").option("-g, --goal <goal>","AI generation goal for the sequence").option("--email-count <count>","Number of AI-generated emails when using --goal (1-10)").option("--enrollment-mode <mode>","Enrollment mode: unlimited, one_time, or matching_field").option("--enrollment-field-path <path>","Event property dot path used by matching_field enrollment").option("--list-id <id>","List ID for contact_added triggers").option("--tag-name <name>","Tag name for tag_added triggers").option("--segment-id <id>","Segment ID for segment_entered triggers").option("--event-name <name>","Event name for event_received, inactivity, and frequency triggers").option("--inactive-days <days>","Days of inactivity for inactivity triggers").option("--min-count <count>","Minimum event count for frequency triggers").option("--time-window-days <days>","Time window for frequency triggers").option("--steps-json <json>","Inline JSON array of sequence steps").option("--steps-file <file>","Path to a JSON file with sequence steps").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("create",{name:A,...I}));LI(GAA,{notes:["Provide either --goal for AI generation or --steps-json/--steps-file for explicit content, but not both.","Each explicit email step needs subject plus either html or blocks. Discount action steps use type=create_discount and can run before an email that references {{discount.code}}.","Prefer --steps-file for anything non-trivial. The CLI passes the JSON through to the API.","Shopify replenishment and back-in-stock event sequences default to matching_field.","Use --enrollment-field-path for custom event keys such as order.id or product.providerVariantId.","Discount action sequences require a connected Stripe integration before enabling."],examples:['sequenzy sequences create onboarding --trigger event_received --event-name signup.completed --goal "Guide new users to activation" --email-count 4',"sequenzy sequences create restock --trigger event_received --event-name ecommerce.back_in_stock --enrollment-mode matching_field --steps-file ./steps.json","sequenzy sequences create post-purchase --trigger event_received --event-name ecommerce.order_placed --enrollment-mode matching_field --enrollment-field-path order.id --steps-file ./steps.json","sequenzy sequences create onboarding --trigger contact_added --list-id list_123 --steps-file ./steps.json","sequenzy sequences create rescue --trigger inactivity --event-name login --inactive-days 14 --steps-file ./steps.json"]});var wAA=MF.command("update <id>").description("Update sequence name, email step content, or branch paths").option("-n, --name <name>","Sequence name").option("--enrollment-mode <mode>","Enrollment mode: unlimited, one_time, or matching_field").option("--enrollment-field-path <path>","Event property dot path used by matching_field enrollment").option("--steps-json <json>","Inline JSON array of step updates").option("--steps-file <file>","Path to a JSON file with step updates").option("--emails-json <json>","Inline JSON array of email updates").option("--emails-file <file>","Path to a JSON file with email updates").option("--branch-json <json>","Inline JSON object for inserting an if/else branch with path steps").option("--branch-file <file>","Path to a JSON file for inserting an if/else branch with path steps").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("update",{id:A,...I}));LI(wAA,{notes:["Use either the steps form or the emails form, not both.","Each update entry can target a step by nodeId, emailId, or by array order.","Branch condition types include has_tag, in_list, in_segment, event_received, link_clicked, and field_* comparisons. Use activityScope (this_sequence, previous_email, ever) for event and click checks."],examples:['sequenzy sequences update seq_123 --name "User Onboarding"',"sequenzy sequences update seq_123 --enrollment-mode matching_field","sequenzy sequences update seq_123 --enrollment-field-path order.id","sequenzy sequences update seq_123 --steps-file ./sequence-updates.json",`sequenzy sequences update seq_123 --branch-json '{"afterNodeId":"node_email","branches":[{"conditionType":"link_clicked","linkUrl":"project-invites","activityScope":"previous_email","steps":[{"subject":"Invite accepted","html":"<p>Thanks for accepting.</p>"}]}],"elseSteps":[{"subject":"Reminder","html":"<p>Please accept your invite.</p>"}]}'`,"sequenzy sequences update seq_123 --branch-file ./branch.json"]});var JAA=MF.command("enable <id>").description("Enable a sequence").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("enable",{id:A,...I}));LI(JAA,{examples:["sequenzy sequences enable seq_123"]});var HAA=MF.command("disable <id>").description("Disable a sequence").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("disable",{id:A,...I}));LI(HAA,{examples:["sequenzy sequences disable seq_123"]});var RAA=MF.command("cancel-enrollments <id>").description("Cancel active or waiting subscriber enrollments in a sequence").option("--subscriber-id <id>","Cancel enrollments for one subscriber ID").option("--field-path <path>","Entry event property dot path to match, such as order.id").option("--field-values <values>","Comma-separated entry field values to match").option("--reason <reason>","Reason stored on cancelled enrollments").option("--apply","Actually cancel matches; otherwise only dry-run").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("cancel-enrollments",{id:A,...I}));LI(RAA,{notes:["sequenceId is always required. Provide exactly one target: --subscriber-id or --field-values.","Without --apply, this command only reports matching enrollments.","When --field-path is omitted, the API uses the sequence enrollmentFieldPath if configured."],examples:["sequenzy sequences cancel-enrollments seq_123 --subscriber-id sub_123 --apply","sequenzy sequences cancel-enrollments seq_123 --field-path order.id --field-values ord_123,ord_456"]});var UAA=MF.command("delete <id>").description("Delete a sequence").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("delete",{id:A,...I}));LI(UAA,{examples:["sequenzy sequences delete seq_123"]});var J1=uE.command("ab-tests").description("Inspect and edit A/B test variants").action(()=>J1.help());LI(J1,{notes:["Use get to discover variant IDs, then update-variant to edit a specific A/B variant.","Only draft A/B tests can be edited."],examples:["sequenzy ab-tests list --sequence seq_123","sequenzy ab-tests get ab_123","sequenzy ab-tests stats ab_123 --period 7d","sequenzy ab-tests restart ab_123 --source-variant var_b",'sequenzy ab-tests update-variant ab_123 var_b --subject "New subject"',"sequenzy ab-tests update-variant ab_123 var_b --blocks-file ./variant-b.json"]});var qAA=J1.command("list").description("List A/B tests").option("--sequence <id>","Filter by sequence ID").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>NJ("list",A));LI(qAA,{examples:["sequenzy ab-tests list --sequence seq_123"]});var NAA=J1.command("get <id>").description("Get A/B test details and variants").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>NJ("get",{id:A,...I}));LI(NAA,{examples:["sequenzy ab-tests get ab_123"]});var KAA=J1.command("stats <id>").description("Get A/B test variant stats").option("-p, --period <period>","Time period (1h, 24h, 7d, 30d, 90d)").option("--start <iso>","Custom range start as ISO 8601").option("--end <iso>","Custom range end as ISO 8601").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>NJ("stats",{id:A,...I}));LI(KAA,{notes:["Use --period or both --start and --end. Custom ranges max at 90 days."],examples:["sequenzy ab-tests stats ab_123","sequenzy ab-tests stats ab_123 --period 30d"]});var MAA=J1.command("restart <id>").description("Run another sequence A/B test from an existing variant").option("--source-variant <id>","Variant to use as the new control. Defaults to the selected winner.").option("--test-type <type>","Test type for generated variants: subject or content").option("--winner-threshold <count>","Subscribers before selecting a winner (10-1000)").option("--variant-count <count>","Total variants including control (2-4)").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>NJ("restart",{id:A,...I}));LI(MAA,{notes:["Only sequence A/B tests with a selected winner can be restarted.","Run `sequenzy ab-tests get <id>` first to find variant IDs."],examples:["sequenzy ab-tests restart ab_123","sequenzy ab-tests restart ab_123 --source-variant var_b --test-type content --variant-count 3"]});var LAA=J1.command("update-variant <id> <variantId>").description("Update a draft A/B test variant").option("-s, --subject <subject>","Variant subject").option("--preview-text <text>","Variant preview text").option("--html <html>","Replacement HTML body").option("--html-file <file>","Read replacement HTML from file").option("--blocks-json <json>","Inline JSON array of Sequenzy email blocks").option("--blocks-file <file>","Path to a JSON file with Sequenzy email blocks").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I,B)=>NJ("update-variant",{id:A,variantId:I,...B}));LI(LAA,{notes:["Provide either HTML or blocks, not both.","Run `sequenzy ab-tests get <id>` first to find variant IDs."],examples:['sequenzy ab-tests update-variant ab_123 var_b --subject "New subject"',"sequenzy ab-tests update-variant ab_123 var_b --html-file ./variant-b.html"]});var H1=uE.command("templates").description("Manage email templates").action(()=>H1.help());LI(H1,{notes:["Template content can be provided as raw HTML or as Sequenzy blocks JSON.","Templates can be assigned labels and listed by label for integration dashboards.","Use blocks when you need conditional content or an exact editor-compatible structure."],examples:["sequenzy templates list --company comp_123","sequenzy templates list --label edm --company comp_123",'sequenzy templates create welcome --subject "Welcome" --html-file ./welcome.html','sequenzy templates create welcome --subject "Welcome" --label edm template --html-file ./welcome.html','sequenzy templates create welcome --subject "Welcome" --blocks-file ./welcome-blocks.json','sequenzy templates update tmpl_123 --subject "Updated" --html-file ./welcome-v2.html']});var YAA=H1.command("list").description("List all templates").option("--label <labels...>","Filter by label name").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>iJ("list",A));LI(YAA,{examples:["sequenzy templates list --company comp_123","sequenzy templates list --label edm --company comp_123"]});var SAA=H1.command("get <id>").description("Get template details").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>iJ("get",{id:A,...I}));LI(SAA,{examples:["sequenzy templates get tmpl_123 --company comp_123"]});var ZAA=H1.command("create <name>").description("Create a template").requiredOption("-s, --subject <subject>","Email subject").option("--html <html>","Email HTML content").option("--html-file <file>","Read HTML from file").option("--blocks-json <json>","Inline JSON array of Sequenzy email blocks").option("--blocks-file <file>","Path to a JSON file with Sequenzy email blocks").option("--label <labels...>","Label names to assign").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>iJ("create",{name:A,...I}));LI(ZAA,{notes:["Provide either HTML or blocks JSON content.","Use blocks when you need conditional content or exact editor parity."],examples:['sequenzy templates create welcome --subject "Welcome" --html-file ./welcome.html','sequenzy templates create welcome --subject "Welcome" --label edm template --html-file ./welcome.html','sequenzy templates create welcome --subject "Welcome" --blocks-file ./welcome-blocks.json']});var zAA=H1.command("update <id>").description("Update a template").option("-n, --name <name>","Template name").option("-s, --subject <subject>","Email subject").option("--html <html>","Email HTML content").option("--html-file <file>","Read HTML from file").option("--blocks-json <json>","Inline JSON array of Sequenzy email blocks").option("--blocks-file <file>","Path to a JSON file with Sequenzy email blocks").option("--label <labels...>","Replace label names").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>iJ("update",{id:A,...I}));LI(zAA,{notes:["Provide at least one of --name, --subject, --label, --html, --html-file, --blocks-json, or --blocks-file.","Do not combine HTML flags with blocks flags in the same request."],examples:['sequenzy templates update tmpl_123 --subject "Updated"',"sequenzy templates update tmpl_123 --label edm template","sequenzy templates update tmpl_123 --html-file ./welcome-v2.html","sequenzy templates update tmpl_123 --blocks-file ./welcome-v2-blocks.json"]});var XAA=H1.command("delete <id>").description("Delete a template").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>iJ("delete",{id:A,...I}));LI(XAA,{notes:["Deletion fails when the template is still referenced by a campaign or sequence."],examples:["sequenzy templates delete tmpl_123"]});var dU=uE.command("companies").description("Inspect or create companies").action(()=>dU.help());LI(dU,{notes:["Company creation starts background website processing automatically."],examples:["sequenzy companies list","sequenzy companies get comp_123","sequenzy companies create example.com --name Example"]});var $AA=dU.command("list").description("List accessible companies").option("--json","Print raw JSON").action((A)=>Dq("list",A));LI($AA,{examples:["sequenzy companies list"]});var WAA=dU.command("get <id>").description("Get company details").option("--json","Print raw JSON").action((A,I)=>Dq("get",{id:A,...I}));LI(WAA,{examples:["sequenzy companies get comp_123"]});var OAA=dU.command("create <domain>").description("Create a company and queue website processing").option("-n, --name <name>","Company name").option("--json","Print raw JSON").action((A,I)=>Dq("create",{domain:A,...I}));LI(OAA,{examples:["sequenzy companies create example.com","sequenzy companies create https://example.com --name Example"]});var yAA=uE.command("tags").description("List tag definitions").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action(xf);LI(yAA,{examples:["sequenzy tags --company comp_123"]});var DN=uE.command("lists").description("Manage subscriber lists").action(()=>DN.help());LI(DN,{examples:["sequenzy lists list --company comp_123",'sequenzy lists create Newsletter --description "Public newsletter list"']});var VAA=DN.command("list").description("List subscriber lists").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>wL("list",A));LI(VAA,{examples:["sequenzy lists list --company comp_123"]});var fAA=DN.command("create <name>").description("Create a subscriber list").option("-d, --description <text>","List description").option("--private","Mark the list as private").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>wL("create",{name:A,...I}));LI(fAA,{examples:['sequenzy lists create Newsletter --description "Public newsletter list"',"sequenzy lists create VIP --private --company comp_123"]});var sU=uE.command("segments").description("Manage segments").action(()=>sU.help());LI(sU,{notes:["Use --filter-json for arbitrary segment filters. The CLI will fill in missing filter IDs.","Use --match any to create a segment that matches any filter instead of all filters.",'Engagement filters (emailSent, emailOpened, emailClicked, emailBounced, emailComplained) accept either a time range as the value ("7d", "30d", "90d", "180d", "all") OR a specific campaign ("campaign:<campaign_id>"). Combine multiple engagement filters with --match all to build things like "bounced campaign A but not campaign B".'],examples:["sequenzy segments list --company comp_123",'sequenzy segments create --name "Bought Pro" --stripe-product prod_pro',`sequenzy segments create --name "VIP or Churn Risk" --match any --filter-json '[{"field":"tag","operator":"contains","value":"vip"},{"field":"emailOpened","operator":"is_not","value":"30d"}]'`,`sequenzy segments create --name "Bounced A not B" --filter-json '[{"field":"emailBounced","operator":"is","value":"campaign:cmp_abc"},{"field":"emailBounced","operator":"is_not","value":"campaign:cmp_xyz"}]'`]});var jAA=sU.command("list").description("List all segments").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>Fq("list",A));LI(jAA,{examples:["sequenzy segments list --company comp_123"]});var PAA=sU.command("create").description("Create a segment").requiredOption("-n, --name <name>","Segment name").option("-c, --company <id>","Company ID override for personal API keys").option("--match <mode>","How filters combine: all or any","all").option("--stripe-product <id>","Stripe product ID to segment on").option("--purchase-operator <operator>","Stripe purchase operator (bought, didnt-buy, at-least, less-than)","bought").option("--payments <number>","Payment threshold for at-least/less-than").option("--filter-json <json>","Raw JSON array of segment filters (IDs are optional)").option("--json","Print raw JSON").action((A)=>Fq("create",A));LI(PAA,{examples:['sequenzy segments create --name "Bought Pro" --stripe-product prod_pro','sequenzy segments create --name "3+ Pro Payments" --stripe-product prod_pro --purchase-operator at-least --payments 3',`sequenzy segments create --name "VIP or Churn Risk" --match any --filter-json '[{"field":"tag","operator":"contains","value":"vip"},{"field":"emailOpened","operator":"is_not","value":"30d"}]'`,`sequenzy segments create --name "Bounced A not B" --filter-json '[{"field":"emailBounced","operator":"is","value":"campaign:cmp_abc"},{"field":"emailBounced","operator":"is_not","value":"campaign:cmp_xyz"}]'`]});var TAA=sU.command("count <id>").description("Get subscriber count for a segment").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Fq("count",{id:A,...I}));LI(TAA,{examples:["sequenzy segments count seg_123 --company comp_123"]});var kAA=uE.command("account").description("Show account info").option("--json","Print raw JSON").action(DO);LI(kAA,{examples:["sequenzy account","sequenzy account --json"]});var VY=uE.command("api-keys").description("Create company API keys").action(()=>VY.help());LI(VY,{notes:["The plain API key is only returned on creation. Save it immediately."],examples:["sequenzy api-keys create",'sequenzy api-keys create --name "CI deploy key" --company comp_123']});var bAA=VY.command("create").description("Create a company API key").option("-n, --name <name>","Human-readable API key name").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>gO("create",A));LI(bAA,{examples:["sequenzy api-keys create",'sequenzy api-keys create --name "CI deploy key" --company comp_123']});var mJ=uE.command("websites").description("Manage sending domains and integration guides").action(()=>mJ.help());LI(mJ,{notes:["Use 'guide' for code examples and 'check' to inspect current DNS verification details."],examples:["sequenzy websites list --company comp_123","sequenzy websites add example.com --company comp_123","sequenzy websites guide --framework nextjs --use-case transactional"]});var vAA=mJ.command("list").description("List sending domains for a company").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>nU("list",A));LI(vAA,{examples:["sequenzy websites list --company comp_123"]});var hAA=mJ.command("add <domain>").description("Add a sending domain").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>nU("add",{domain:A,...I}));LI(hAA,{examples:["sequenzy websites add example.com --company comp_123"]});var _AA=mJ.command("check <domain>").description("Inspect sending domain verification details").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>nU("check",{domain:A,...I}));LI(_AA,{examples:["sequenzy websites check example.com --company comp_123"]});var xAA=mJ.command("guide").description("Print framework-specific integration code").option("--framework <name>","Framework name, e.g. nextjs, express, python").option("--use-case <name>","Use case, e.g. transactional, subscribe_form, event_tracking").option("--json","Print raw JSON").action((A)=>nU("guide",A));LI(xAA,{examples:["sequenzy websites guide","sequenzy websites guide --framework nextjs --use-case transactional","sequenzy websites guide --framework python --use-case event_tracking"]});var rU=uE.command("generate").description("Generate email content with AI").action(()=>rU.help());LI(rU,{notes:["Generated content is returned as draft content. Review it before sending.","Use --json when another tool or agent should parse the generated output."],examples:['sequenzy generate email "Welcome a new user to our analytics product"','sequenzy generate sequence "Onboard a new workspace admin" --count 4 --days 14','sequenzy generate subjects "April product launch" --count 8']});rU.command("email <prompt>").description("Generate email blocks from a prompt").option("-s, --style <style>","Style: minimal, branded, promotional").option("-t, --tone <tone>","Tone: professional, casual, friendly").option("--company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>gq("email",{prompt:A,...I}));rU.command("sequence <goal>").description("Generate email sequence content from a goal").option("-c, --count <number>","Number of emails (1-10)","5").option("-d, --days <number>","Duration in days","14").option("--company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>gq("sequence",{goal:A,...I}));rU.command("subjects <topic>").description("Generate A/B subject line variants").option("-c, --count <number>","Number of variants","5").option("--company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>gq("subjects",{topic:A,...I}));uE.parse();
323
+ ${KF}Use 'sequenzy --help' and '<command> --help' for detailed examples and caveats.${qD}`;console.log(B),console.log(C),console.log(),console.log(D),console.log(u),console.log(H),console.log()}var uE=new H9;uE.name("sequenzy").description("Sequenzy CLI - Email marketing from the terminal").version(sf).showHelpAfterError().showSuggestionAfterError().action(()=>{_e()});LI(uE,{notes:["Use --json on data commands when another tool or agent should parse structured output.","Dashboard-aware JSON responses include appUrls when a company ID can be resolved.","Company-scoped commands accept --company for personal API keys that can access multiple companies.","Content commands prefer file flags such as --html-file, --blocks-file, --steps-file, and --emails-file to avoid shell escaping issues.","Sequence creation supports --goal for AI generation or explicit step JSON."],examples:['sequenzy templates create welcome --subject "Welcome" --html-file ./welcome.html','sequenzy campaigns update camp_123 --subject "Updated subject" --html-file ./campaign.html',"sequenzy sequences create onboarding --trigger contact_added --list-id list_123 --steps-file ./steps.json","sequenzy urls --company comp_123 --sequence seq_123 --settings-tab integrations","sequenzy websites guide --framework nextjs --use-case transactional",'sequenzy api-keys create --name "CI deploy key" --company comp_123']});var xe=uE.command("login").description("Log in to your Sequenzy account").action(RO);LI(xe,{notes:["Starts device authentication and prints a verification URL plus approval code."],examples:["sequenzy login"]});var le=uE.command("logout").description("Log out of your Sequenzy account").action(UO);LI(le,{examples:["sequenzy logout"]});var ie=uE.command("whoami").description("Show the locally stored Sequenzy identity").action(mf);LI(ie,{notes:["This confirms local CLI auth state. Use 'sequenzy account' when you need company access details too."],examples:["sequenzy whoami"]});var me=uE.command("stats").description("Show account, campaign, or sequence metrics").option("-p, --period <period>","Time period (7d, 30d, 90d)","7d").option("--campaign <id>","Get stats for a specific campaign").option("--sequence <id>","Get stats for a specific sequence").action(hf);LI(me,{notes:["Use exactly one of: account-level period, --campaign, or --sequence.","Sequence stats include per-step failures when the API reports them."],examples:["sequenzy stats","sequenzy stats --period 30d","sequenzy stats --campaign camp_123","sequenzy stats --sequence seq_123"]});var ce=uE.command("urls").description("Generate Sequenzy dashboard URLs for known resource IDs").option("-c, --company <id>","Company ID").option("--campaign <id>","Campaign ID for campaign editor URL").option("--sequence <id>","Sequence ID for sequence editor URL").option("--template <id>","Template/email ID for email editor URL").option("--email <id>","Email ID for email editor URL").option("--transactional <id>","Transactional email ID").option("--email-send <id>","Email send ID").option("--domain <id>","Sending domain ID").option("--status <status>","Status for campaign/sequence list URLs").option("--settings-tab <tab>","Settings tab slug, e.g. integrations").option("--json","Print JSON").action(CO);LI(ce,{notes:["Uses SEQUENZY_APP_URL when set, otherwise https://sequenzy.com.","If --company is omitted, the CLI tries the current company from `sequenzy account`.","Useful after creating a campaign or sequence when the user wants a review/edit link."],examples:["sequenzy urls --company comp_123","sequenzy urls --company comp_123 --sequence seq_123","sequenzy urls --company comp_123 --campaign camp_123","sequenzy urls --company comp_123 --email-send send_123","sequenzy urls --company comp_123 --settings-tab integrations","sequenzy urls --company comp_123 --json"]});var jG=uE.command("subscribers").description("Manage subscribers").action(()=>jG.help());LI(jG,{notes:["Subscriber list fetches every page by default so agents do not silently miss later results.","`subscribers get` includes tags, list memberships, sequence enrollments, email stats, and recent activity.","--attr expects repeated key=value pairs. Example: --attr firstName=Ana --attr plan=pro"],examples:["sequenzy subscribers list --tag vip","sequenzy subscribers list --tag vip --limit 25 --json","sequenzy subscribers add user@example.com --tag trial --attr firstName=Ana","sequenzy subscribers get user@example.com --json","sequenzy subscribers remove user@example.com --hard"]});var ne=jG.command("list").description("List subscribers").option("-s, --segment <id>","Filter by segment").option("-t, --tag <tag>","Filter by tag").option("-l, --limit <number>","Maximum results to return").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>w1("list",A));LI(ne,{examples:["sequenzy subscribers list","sequenzy subscribers list --segment seg_123","sequenzy subscribers list --tag onboarding --limit 100"]});var de=jG.command("add [email]").description("Add or upsert a subscriber").option("--external-id <id>","Customer-owned subscriber ID").option("--first-name <name>","Subscriber first name").option("--last-name <name>","Subscriber last name").option("-t, --tag <tags...>","Tags to apply").option("-l, --list <ids...>","List IDs to add the subscriber to").option("--no-lists","Add the subscriber to no lists").option("--skip-sequences","Do not enroll the subscriber in matching sequences").option("-a, --attr <attrs...>","Attributes (key=value)").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>w1("add",{email:A,...I,noLists:I.lists===!1}));LI(de,{examples:["sequenzy subscribers add user@example.com","sequenzy subscribers add user@example.com --first-name Ana --tag trial --attr plan=pro","sequenzy subscribers add user@example.com --list list_123","sequenzy subscribers add user@example.com --skip-sequences"]});var se=jG.command("get [email]").description("Get subscriber details").option("--external-id <id>","Customer-owned subscriber ID").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>w1("get",{email:A,...I}));LI(se,{examples:["sequenzy subscribers get user@example.com"]});var re=jG.command("update [email]").description("Update subscriber status, tags, or custom attributes").option("--external-id <id>","Customer-owned subscriber ID").option("--status <status>","Subscriber status").option("-t, --tag <tags...>","Replacement tags").option("-a, --attr <attrs...>","Attributes (key=value)").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>w1("update",{email:A,...I}));LI(re,{examples:["sequenzy subscribers update user@example.com --status unsubscribed","sequenzy subscribers update user@example.com --tag churned --attr cancelReason=too_expensive"]});var ae=jG.command("event [email]").description("Trigger an event for a subscriber").option("--external-id <id>","Customer-owned subscriber ID").requiredOption("-n, --name <event>","Event name").option("-p, --property <properties...>","Event properties (key=value)").option("-a, --attr <attrs...>","Subscriber attributes (key=value)").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>w1("event",{email:A,...I}));LI(ae,{examples:["sequenzy subscribers event user@example.com --name saas.purchase","sequenzy subscribers event user@example.com --name saas.purchase --property plan=pro --property amount=99"]});var pe=jG.command("remove [email]").description("Unsubscribe or permanently delete a subscriber").option("--external-id <id>","Customer-owned subscriber ID").option("--hard","Permanently delete (not just unsubscribe)").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>w1("remove",{email:A,...I}));LI(pe,{examples:["sequenzy subscribers remove user@example.com","sequenzy subscribers remove user@example.com --hard"]});var CN=uE.command("transactional").description("Inspect transactional email templates").action(()=>CN.help());LI(CN,{notes:["Use the top-level `sequenzy send` command to send email."],examples:["sequenzy transactional list","sequenzy transactional get welcome","sequenzy send user@example.com --template welcome --var firstName=Ana"]});var te=CN.command("list").description("List transactional templates").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>WY("list",A));LI(te,{examples:["sequenzy transactional list --company comp_123"]});var oe=CN.command("get <slug>").description("Get transactional template details by slug").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>WY("get",{slug:A,...I}));LI(oe,{examples:["sequenzy transactional get welcome"]});var OY=uE.command("widgets").description("Widget helper commands").action(()=>OY.help());LI(OY,{examples:["sequenzy widgets preferences-token user@example.com"]});var ee=OY.command("preferences-token <email>").description("Generate a subscription preferences iframe token").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>cf("preferences-token",{email:A,...I}));LI(ee,{examples:["sequenzy widgets preferences-token user@example.com"]});var yY=uE.command("email-sends").alias("emailsends").description("Inspect sent email snapshots and delivery events").action(()=>yY.help());LI(yY,{notes:["Email send rows are short-lived; if the row was cleaned up, this falls back to retained ClickHouse events.","Use --html to print the stored HTML body when it is still available."],examples:["sequenzy email-sends get send_123","sequenzy email-sends get send_123 --html","sequenzy email-sends get send_123 --json"]});var AAA=yY.command("get <emailSendId>").description("Get an email send by ID").option("-c, --company <id>","Company ID override for personal API keys").option("--html","Print the full stored HTML body in text output").option("--html-only","Print only the stored HTML body").option("--json","Print raw JSON").action((A,I)=>wO("get",{id:A,...I}));LI(AAA,{examples:["sequenzy email-sends get send_123","sequenzy email-sends get send_123 --html","sequenzy email-sends get send_123 --company comp_123 --json"]});var IAA=uE.command("send <email>").description("Send a transactional email").option("-t, --template <slug>","Transactional template slug to use").option("-s, --subject <subject>","Email subject").option("--html <html>","Email HTML content").option("--html-file <file>","Read HTML from file").option("--vars-json <json>","Variables as a JSON object, including nested arrays for repeat blocks").option("-v, --var <vars...>","Variables (key=value)").action(Tf);LI(IAA,{notes:["Use either --template or --html/--html-file.","--subject is required when sending raw HTML.","--vars-json accepts nested objects and arrays; --var overrides individual scalar keys."],examples:["sequenzy send user@example.com --template welcome --var firstName=Ana",`sequenzy send user@example.com --template welcome --vars-json '{"event":{"items":[{"title":"Plan","description":"Pro"}]}}'`,'sequenzy send user@example.com --subject "Welcome" --html-file ./welcome.html']});var PG=uE.command("campaigns").description("Manage campaigns").action(()=>PG.help());LI(PG,{notes:["Campaign creation supports HTML, Sequenzy blocks, or prompt-generated content.","Campaign updates support HTML, Sequenzy blocks, subject, name, labels, and reply-to changes.","Campaign scheduling requires a future ISO timestamp and a verified sending domain."],examples:["sequenzy campaigns list --status draft --company comp_123",'sequenzy campaigns create "April Launch" --subject "We shipped" --html-file ./campaign.html','sequenzy campaigns create "API Launch" --subject "We shipped" --label edm api --html-file ./campaign.html','sequenzy campaigns schedule camp_123 --at "2026-06-01T14:00:00Z"',"sequenzy campaigns test camp_123 --to you@example.com"]});var BAA=PG.command("list").description("List campaigns").option("-s, --status <status>","Filter by status").option("--label <labels...>","Filter by label name").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>pw("list",A));LI(BAA,{examples:["sequenzy campaigns list","sequenzy campaigns list --status draft --company comp_123","sequenzy campaigns list --label edm"]});var QAA=PG.command("get <id>").description("Get campaign details").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>pw("get",{id:A,...I}));LI(QAA,{examples:["sequenzy campaigns get camp_123 --company comp_123"]});var EAA=PG.command("create <name>").description("Create a draft campaign").option("-s, --subject <subject>","Email subject").option("--tracking-code <code>","Optional campaign tracking code").option("--html <html>","Email HTML content").option("--html-file <file>","Read HTML from file").option("--blocks-json <json>","Inline JSON array of Sequenzy email blocks").option("--blocks-file <file>","Path to a JSON file with Sequenzy email blocks").option("--prompt <prompt>","Generate campaign blocks from a prompt").option("--style <style>","Prompt generation style: minimal, branded, promotional").option("--tone <tone>","Prompt generation tone: professional, casual, friendly").option("--label <labels...>","Label names to assign").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>pw("create",{name:A,...I}));LI(EAA,{notes:["--subject is required unless --prompt is provided. With --prompt, the generated subject is used unless --subject is also provided.","Use --blocks-json or --blocks-file when you need editor-compatible blocks, including conditional content and per-block styles.","Do not combine prompt, HTML flags, and blocks flags in the same request."],examples:['sequenzy campaigns create "April Launch" --prompt "Announce our new analytics dashboard"','sequenzy campaigns create "April Launch" --subject "We shipped" --html-file ./campaign.html','sequenzy campaigns create "API Launch" --subject "We shipped" --label edm api --html-file ./campaign.html','sequenzy campaigns create "Segmented Launch" --subject "We shipped" --blocks-file ./campaign-blocks.json']});var CAA=PG.command("update <id>").description("Update a draft campaign").option("-n, --name <name>","Campaign name").option("-s, --subject <subject>","Email subject").option("--tracking-code <code>","Optional campaign tracking code").option("--html <html>","Email HTML content").option("--html-file <file>","Read HTML from file").option("--blocks-json <json>","Inline JSON array of Sequenzy email blocks").option("--blocks-file <file>","Path to a JSON file with Sequenzy email blocks").option("--campaign-data-json <json>","Inline campaignData JSON object").option("--campaign-data-file <file>","Path to a JSON file with campaignData").option("--computed-lists-json <json>","Inline computedLists JSON array").option("--computed-lists-file <file>","Path to a JSON file with computedLists").option("--reply-to <email>","Set reply-to using an existing reply profile email").option("--reply-profile <id>","Set reply-to using a reply profile ID").option("--label <labels...>","Replace label names").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>pw("update",{id:A,...I}));LI(CAA,{notes:["Provide at least one update flag, including content, labels, reply-to, campaign data, or computed lists.","Use --blocks-json or --blocks-file when you need editor-compatible blocks, including conditional content and per-block styles.","Use --campaign-data-file and --computed-lists-file to upload personalization data for repeat blocks.","Do not combine HTML flags with blocks flags in the same request.","Use either --reply-to or --reply-profile, not both."],examples:['sequenzy campaigns update camp_123 --subject "Updated subject"',"sequenzy campaigns update camp_123 --html-file ./campaign-v2.html","sequenzy campaigns update camp_123 --blocks-file ./campaign-v2-blocks.json","sequenzy campaigns update camp_123 --campaign-data-file ./campaign-data.json --computed-lists-file ./computed-lists.json","sequenzy campaigns update camp_123 --reply-to support@example.com","sequenzy campaigns update camp_123 --label edm api"]});var DAA=PG.command("schedule <id>").description("Schedule a draft or scheduled campaign").requiredOption("--at <datetime>","Future ISO date/time to send, for example 2026-06-01T14:00:00Z").option("--target-lists-json <json>","Inline campaign targetLists JSON object").option("--target-lists-file <file>","Path to a JSON file with campaign targetLists").option("--send-time-optimization","Enable send-time optimization for the scheduled send").option("--spread-over-hours <hours>","Spread delivery over 1-72 hours. Disables send-time optimization when set.").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>pw("schedule",{id:A,...I}));LI(DAA,{notes:["The campaign must be draft or already scheduled.","Omit target lists to reuse saved campaign targeting, or default to all active subscribers.",'Target list examples include {"type":"all"}, {"type":"lists","listIds":["list_123"]}, and {"type":"segment","segmentId":"seg_123"}.'],examples:['sequenzy campaigns schedule camp_123 --at "2026-06-01T14:00:00Z"',`sequenzy campaigns schedule camp_123 --at "2026-06-01T14:00:00Z" --target-lists-json '{"type":"all"}'`,'sequenzy campaigns schedule camp_123 --at "2026-06-01T14:00:00Z" --target-lists-file ./target-lists.json','sequenzy campaigns schedule camp_123 --at "2026-06-01T14:00:00Z" --spread-over-hours 6']});var gAA=PG.command("test <id>").description("Send a test email for a campaign").requiredOption("--to <email>","Recipient email for the test").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>pw("test",{id:A,...I}));LI(gAA,{examples:["sequenzy campaigns test camp_123 --to you@example.com"]});var MF=uE.command("sequences").description("Manage email sequences").action(()=>MF.help());LI(MF,{notes:["The CLI supports both AI goal-based sequence creation and explicit-step creation.","Trigger-specific options depend on --trigger. For example: contact_added needs --list-id, tag_added needs --tag-name, inactivity needs --event-name and --inactive-days.","Use --goal for AI generation, or --steps-file / --emails-file with JSON arrays that match the API step objects.","Use --enrollment-mode matching_field for product- or variant-specific event sequences.",'Explicit --steps-file input can include discount actions with {"type":"create_discount","discountType":"percent","percentOff":20,"duration":"once","appliesToAllPlans":true}; later emails can use {{discount.code}}.',"Discount action sequences require a connected Stripe integration before enabling."],examples:["sequenzy sequences list --company comp_123",'sequenzy sequences create onboarding --trigger event_received --event-name signup.completed --goal "Guide new users to activation"',"sequenzy sequences create onboarding --trigger contact_added --list-id list_123 --steps-file ./steps.json","sequenzy sequences update seq_123 --steps-file ./sequence-updates.json","sequenzy sequences enable seq_123"]});var FAA=MF.command("list").description("List sequences").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>Ku("list",A));LI(FAA,{examples:["sequenzy sequences list --company comp_123"]});var uAA=MF.command("get <id>").description("Get sequence details").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("get",{id:A,...I}));LI(uAA,{examples:["sequenzy sequences get seq_123 --company comp_123"]});var GAA=MF.command("create <name>").description("Create a sequence from AI goal input or explicit step content").requiredOption("-t, --trigger <trigger>","Sequence trigger type").option("-g, --goal <goal>","AI generation goal for the sequence").option("--email-count <count>","Number of AI-generated emails when using --goal (1-10)").option("--enrollment-mode <mode>","Enrollment mode: unlimited, one_time, or matching_field").option("--enrollment-field-path <path>","Event property dot path used by matching_field enrollment").option("--list-id <id>","List ID for contact_added triggers").option("--tag-name <name>","Tag name for tag_added triggers").option("--segment-id <id>","Segment ID for segment_entered triggers").option("--event-name <name>","Event name for event_received, inactivity, and frequency triggers").option("--inactive-days <days>","Days of inactivity for inactivity triggers").option("--min-count <count>","Minimum event count for frequency triggers").option("--time-window-days <days>","Time window for frequency triggers").option("--steps-json <json>","Inline JSON array of sequence steps").option("--steps-file <file>","Path to a JSON file with sequence steps").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("create",{name:A,...I}));LI(GAA,{notes:["Provide either --goal for AI generation or --steps-json/--steps-file for explicit content, but not both.","Each explicit email step needs subject plus either html or blocks. Discount action steps use type=create_discount and can run before an email that references {{discount.code}}.","Prefer --steps-file for anything non-trivial. The CLI passes the JSON through to the API.","Shopify replenishment and back-in-stock event sequences default to matching_field.","Use --enrollment-field-path for custom event keys such as order.id or product.providerVariantId.","Discount action sequences require a connected Stripe integration before enabling."],examples:['sequenzy sequences create onboarding --trigger event_received --event-name signup.completed --goal "Guide new users to activation" --email-count 4',"sequenzy sequences create restock --trigger event_received --event-name ecommerce.back_in_stock --enrollment-mode matching_field --steps-file ./steps.json","sequenzy sequences create post-purchase --trigger event_received --event-name ecommerce.order_placed --enrollment-mode matching_field --enrollment-field-path order.id --steps-file ./steps.json","sequenzy sequences create onboarding --trigger contact_added --list-id list_123 --steps-file ./steps.json","sequenzy sequences create rescue --trigger inactivity --event-name login --inactive-days 14 --steps-file ./steps.json"]});var wAA=MF.command("update <id>").description("Update sequence name, email step content, or branch paths").option("-n, --name <name>","Sequence name").option("--enrollment-mode <mode>","Enrollment mode: unlimited, one_time, or matching_field").option("--enrollment-field-path <path>","Event property dot path used by matching_field enrollment").option("--steps-json <json>","Inline JSON array of step updates").option("--steps-file <file>","Path to a JSON file with step updates").option("--emails-json <json>","Inline JSON array of email updates").option("--emails-file <file>","Path to a JSON file with email updates").option("--branch-json <json>","Inline JSON object for inserting an if/else branch with path steps").option("--branch-file <file>","Path to a JSON file for inserting an if/else branch with path steps").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("update",{id:A,...I}));LI(wAA,{notes:["Use either the steps form or the emails form, not both.","Each update entry can target a step by nodeId, emailId, or by array order.","Branch condition types include has_tag, in_list, in_segment, event_received, link_clicked, and field_* comparisons. Use activityScope (this_sequence, previous_email, ever) for event and click checks."],examples:['sequenzy sequences update seq_123 --name "User Onboarding"',"sequenzy sequences update seq_123 --enrollment-mode matching_field","sequenzy sequences update seq_123 --enrollment-field-path order.id","sequenzy sequences update seq_123 --steps-file ./sequence-updates.json",`sequenzy sequences update seq_123 --branch-json '{"afterNodeId":"node_email","branches":[{"conditionType":"link_clicked","linkUrl":"project-invites","activityScope":"previous_email","steps":[{"subject":"Invite accepted","html":"<p>Thanks for accepting.</p>"}]}],"elseSteps":[{"subject":"Reminder","html":"<p>Please accept your invite.</p>"}]}'`,"sequenzy sequences update seq_123 --branch-file ./branch.json"]});var JAA=MF.command("enable <id>").description("Enable a sequence").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("enable",{id:A,...I}));LI(JAA,{examples:["sequenzy sequences enable seq_123"]});var HAA=MF.command("disable <id>").description("Disable a sequence").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("disable",{id:A,...I}));LI(HAA,{examples:["sequenzy sequences disable seq_123"]});var RAA=MF.command("cancel-enrollments <id>").description("Cancel active or waiting subscriber enrollments in a sequence").option("--subscriber-id <id>","Cancel enrollments for one subscriber ID").option("--field-path <path>","Entry event property dot path to match, such as order.id").option("--field-values <values>","Comma-separated entry field values to match").option("--reason <reason>","Reason stored on cancelled enrollments").option("--apply","Actually cancel matches; otherwise only dry-run").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("cancel-enrollments",{id:A,...I}));LI(RAA,{notes:["sequenceId is always required. Provide exactly one target: --subscriber-id or --field-values.","Without --apply, this command only reports matching enrollments.","When --field-path is omitted, the API uses the sequence enrollmentFieldPath if configured."],examples:["sequenzy sequences cancel-enrollments seq_123 --subscriber-id sub_123 --apply","sequenzy sequences cancel-enrollments seq_123 --field-path order.id --field-values ord_123,ord_456"]});var UAA=MF.command("delete <id>").description("Delete a sequence").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Ku("delete",{id:A,...I}));LI(UAA,{examples:["sequenzy sequences delete seq_123"]});var J1=uE.command("ab-tests").description("Inspect and edit A/B test variants").action(()=>J1.help());LI(J1,{notes:["Use get to discover variant IDs, then update-variant to edit a specific A/B variant.","Only draft A/B tests can be edited."],examples:["sequenzy ab-tests list --sequence seq_123","sequenzy ab-tests get ab_123","sequenzy ab-tests stats ab_123 --period 7d","sequenzy ab-tests restart ab_123 --source-variant var_b",'sequenzy ab-tests update-variant ab_123 var_b --subject "New subject"',"sequenzy ab-tests update-variant ab_123 var_b --blocks-file ./variant-b.json"]});var qAA=J1.command("list").description("List A/B tests").option("--sequence <id>","Filter by sequence ID").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>NJ("list",A));LI(qAA,{examples:["sequenzy ab-tests list --sequence seq_123"]});var NAA=J1.command("get <id>").description("Get A/B test details and variants").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>NJ("get",{id:A,...I}));LI(NAA,{examples:["sequenzy ab-tests get ab_123"]});var KAA=J1.command("stats <id>").description("Get A/B test variant stats").option("-p, --period <period>","Time period (1h, 24h, 7d, 30d, 90d)").option("--start <iso>","Custom range start as ISO 8601").option("--end <iso>","Custom range end as ISO 8601").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>NJ("stats",{id:A,...I}));LI(KAA,{notes:["Use --period or both --start and --end. Custom ranges max at 90 days."],examples:["sequenzy ab-tests stats ab_123","sequenzy ab-tests stats ab_123 --period 30d"]});var MAA=J1.command("restart <id>").description("Run another sequence A/B test from an existing variant").option("--source-variant <id>","Variant to use as the new control. Defaults to the selected winner.").option("--test-type <type>","Test type for generated variants: subject or content").option("--winner-threshold <count>","Subscribers before selecting a winner (10-1000)").option("--variant-count <count>","Total variants including control (2-4)").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>NJ("restart",{id:A,...I}));LI(MAA,{notes:["Only sequence A/B tests with a selected winner can be restarted.","Run `sequenzy ab-tests get <id>` first to find variant IDs."],examples:["sequenzy ab-tests restart ab_123","sequenzy ab-tests restart ab_123 --source-variant var_b --test-type content --variant-count 3"]});var LAA=J1.command("update-variant <id> <variantId>").description("Update a draft A/B test variant").option("-s, --subject <subject>","Variant subject").option("--preview-text <text>","Variant preview text").option("--html <html>","Replacement HTML body").option("--html-file <file>","Read replacement HTML from file").option("--blocks-json <json>","Inline JSON array of Sequenzy email blocks").option("--blocks-file <file>","Path to a JSON file with Sequenzy email blocks").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I,B)=>NJ("update-variant",{id:A,variantId:I,...B}));LI(LAA,{notes:["Provide either HTML or blocks, not both.","Run `sequenzy ab-tests get <id>` first to find variant IDs."],examples:['sequenzy ab-tests update-variant ab_123 var_b --subject "New subject"',"sequenzy ab-tests update-variant ab_123 var_b --html-file ./variant-b.html"]});var H1=uE.command("templates").description("Manage email templates").action(()=>H1.help());LI(H1,{notes:["Template content can be provided as raw HTML or as Sequenzy blocks JSON.","Templates can be assigned labels and listed by label for integration dashboards.","Use blocks when you need conditional content, per-block styles, or an exact editor-compatible structure."],examples:["sequenzy templates list --company comp_123","sequenzy templates list --label edm --company comp_123",'sequenzy templates create welcome --subject "Welcome" --html-file ./welcome.html','sequenzy templates create welcome --subject "Welcome" --label edm template --html-file ./welcome.html','sequenzy templates create welcome --subject "Welcome" --blocks-file ./welcome-blocks.json','sequenzy templates update tmpl_123 --subject "Updated" --html-file ./welcome-v2.html']});var YAA=H1.command("list").description("List all templates").option("--label <labels...>","Filter by label name").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>iJ("list",A));LI(YAA,{examples:["sequenzy templates list --company comp_123","sequenzy templates list --label edm --company comp_123"]});var SAA=H1.command("get <id>").description("Get template details").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>iJ("get",{id:A,...I}));LI(SAA,{examples:["sequenzy templates get tmpl_123 --company comp_123"]});var ZAA=H1.command("create <name>").description("Create a template").requiredOption("-s, --subject <subject>","Email subject").option("--html <html>","Email HTML content").option("--html-file <file>","Read HTML from file").option("--blocks-json <json>","Inline JSON array of Sequenzy email blocks").option("--blocks-file <file>","Path to a JSON file with Sequenzy email blocks").option("--label <labels...>","Label names to assign").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>iJ("create",{name:A,...I}));LI(ZAA,{notes:["Provide either HTML or blocks JSON content.","Use blocks when you need conditional content, per-block styles, or exact editor parity."],examples:['sequenzy templates create welcome --subject "Welcome" --html-file ./welcome.html','sequenzy templates create welcome --subject "Welcome" --label edm template --html-file ./welcome.html','sequenzy templates create welcome --subject "Welcome" --blocks-file ./welcome-blocks.json']});var zAA=H1.command("update <id>").description("Update a template").option("-n, --name <name>","Template name").option("-s, --subject <subject>","Email subject").option("--html <html>","Email HTML content").option("--html-file <file>","Read HTML from file").option("--blocks-json <json>","Inline JSON array of Sequenzy email blocks").option("--blocks-file <file>","Path to a JSON file with Sequenzy email blocks").option("--label <labels...>","Replace label names").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>iJ("update",{id:A,...I}));LI(zAA,{notes:["Provide at least one of --name, --subject, --label, --html, --html-file, --blocks-json, or --blocks-file.","Do not combine HTML flags with blocks flags in the same request."],examples:['sequenzy templates update tmpl_123 --subject "Updated"',"sequenzy templates update tmpl_123 --label edm template","sequenzy templates update tmpl_123 --html-file ./welcome-v2.html","sequenzy templates update tmpl_123 --blocks-file ./welcome-v2-blocks.json"]});var XAA=H1.command("delete <id>").description("Delete a template").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>iJ("delete",{id:A,...I}));LI(XAA,{notes:["Deletion fails when the template is still referenced by a campaign or sequence."],examples:["sequenzy templates delete tmpl_123"]});var dU=uE.command("companies").description("Inspect or create companies").action(()=>dU.help());LI(dU,{notes:["Company creation starts background website processing automatically."],examples:["sequenzy companies list","sequenzy companies get comp_123","sequenzy companies create example.com --name Example"]});var $AA=dU.command("list").description("List accessible companies").option("--json","Print raw JSON").action((A)=>Dq("list",A));LI($AA,{examples:["sequenzy companies list"]});var WAA=dU.command("get <id>").description("Get company details").option("--json","Print raw JSON").action((A,I)=>Dq("get",{id:A,...I}));LI(WAA,{examples:["sequenzy companies get comp_123"]});var OAA=dU.command("create <domain>").description("Create a company and queue website processing").option("-n, --name <name>","Company name").option("--json","Print raw JSON").action((A,I)=>Dq("create",{domain:A,...I}));LI(OAA,{examples:["sequenzy companies create example.com","sequenzy companies create https://example.com --name Example"]});var yAA=uE.command("tags").description("List tag definitions").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action(xf);LI(yAA,{examples:["sequenzy tags --company comp_123"]});var DN=uE.command("lists").description("Manage subscriber lists").action(()=>DN.help());LI(DN,{examples:["sequenzy lists list --company comp_123",'sequenzy lists create Newsletter --description "Public newsletter list"']});var VAA=DN.command("list").description("List subscriber lists").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>wL("list",A));LI(VAA,{examples:["sequenzy lists list --company comp_123"]});var fAA=DN.command("create <name>").description("Create a subscriber list").option("-d, --description <text>","List description").option("--private","Mark the list as private").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>wL("create",{name:A,...I}));LI(fAA,{examples:['sequenzy lists create Newsletter --description "Public newsletter list"',"sequenzy lists create VIP --private --company comp_123"]});var sU=uE.command("segments").description("Manage segments").action(()=>sU.help());LI(sU,{notes:["Use --filter-json for arbitrary segment filters. The CLI will fill in missing filter IDs.","Use --match any to create a segment that matches any filter instead of all filters.",'Engagement filters (emailSent, emailOpened, emailClicked, emailBounced, emailComplained) accept either a time range as the value ("7d", "30d", "90d", "180d", "all") OR a specific campaign ("campaign:<campaign_id>"). Combine multiple engagement filters with --match all to build things like "bounced campaign A but not campaign B".'],examples:["sequenzy segments list --company comp_123",'sequenzy segments create --name "Bought Pro" --stripe-product prod_pro',`sequenzy segments create --name "VIP or Churn Risk" --match any --filter-json '[{"field":"tag","operator":"contains","value":"vip"},{"field":"emailOpened","operator":"is_not","value":"30d"}]'`,`sequenzy segments create --name "Bounced A not B" --filter-json '[{"field":"emailBounced","operator":"is","value":"campaign:cmp_abc"},{"field":"emailBounced","operator":"is_not","value":"campaign:cmp_xyz"}]'`]});var jAA=sU.command("list").description("List all segments").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>Fq("list",A));LI(jAA,{examples:["sequenzy segments list --company comp_123"]});var PAA=sU.command("create").description("Create a segment").requiredOption("-n, --name <name>","Segment name").option("-c, --company <id>","Company ID override for personal API keys").option("--match <mode>","How filters combine: all or any","all").option("--stripe-product <id>","Stripe product ID to segment on").option("--purchase-operator <operator>","Stripe purchase operator (bought, didnt-buy, at-least, less-than)","bought").option("--payments <number>","Payment threshold for at-least/less-than").option("--filter-json <json>","Raw JSON array of segment filters (IDs are optional)").option("--json","Print raw JSON").action((A)=>Fq("create",A));LI(PAA,{examples:['sequenzy segments create --name "Bought Pro" --stripe-product prod_pro','sequenzy segments create --name "3+ Pro Payments" --stripe-product prod_pro --purchase-operator at-least --payments 3',`sequenzy segments create --name "VIP or Churn Risk" --match any --filter-json '[{"field":"tag","operator":"contains","value":"vip"},{"field":"emailOpened","operator":"is_not","value":"30d"}]'`,`sequenzy segments create --name "Bounced A not B" --filter-json '[{"field":"emailBounced","operator":"is","value":"campaign:cmp_abc"},{"field":"emailBounced","operator":"is_not","value":"campaign:cmp_xyz"}]'`]});var TAA=sU.command("count <id>").description("Get subscriber count for a segment").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>Fq("count",{id:A,...I}));LI(TAA,{examples:["sequenzy segments count seg_123 --company comp_123"]});var kAA=uE.command("account").description("Show account info").option("--json","Print raw JSON").action(DO);LI(kAA,{examples:["sequenzy account","sequenzy account --json"]});var VY=uE.command("api-keys").description("Create company API keys").action(()=>VY.help());LI(VY,{notes:["The plain API key is only returned on creation. Save it immediately."],examples:["sequenzy api-keys create",'sequenzy api-keys create --name "CI deploy key" --company comp_123']});var bAA=VY.command("create").description("Create a company API key").option("-n, --name <name>","Human-readable API key name").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>gO("create",A));LI(bAA,{examples:["sequenzy api-keys create",'sequenzy api-keys create --name "CI deploy key" --company comp_123']});var mJ=uE.command("websites").description("Manage sending domains and integration guides").action(()=>mJ.help());LI(mJ,{notes:["Use 'guide' for code examples and 'check' to inspect current DNS verification details."],examples:["sequenzy websites list --company comp_123","sequenzy websites add example.com --company comp_123","sequenzy websites guide --framework nextjs --use-case transactional"]});var vAA=mJ.command("list").description("List sending domains for a company").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A)=>nU("list",A));LI(vAA,{examples:["sequenzy websites list --company comp_123"]});var hAA=mJ.command("add <domain>").description("Add a sending domain").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>nU("add",{domain:A,...I}));LI(hAA,{examples:["sequenzy websites add example.com --company comp_123"]});var _AA=mJ.command("check <domain>").description("Inspect sending domain verification details").option("-c, --company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>nU("check",{domain:A,...I}));LI(_AA,{examples:["sequenzy websites check example.com --company comp_123"]});var xAA=mJ.command("guide").description("Print framework-specific integration code").option("--framework <name>","Framework name, e.g. nextjs, express, python").option("--use-case <name>","Use case, e.g. transactional, subscribe_form, event_tracking").option("--json","Print raw JSON").action((A)=>nU("guide",A));LI(xAA,{examples:["sequenzy websites guide","sequenzy websites guide --framework nextjs --use-case transactional","sequenzy websites guide --framework python --use-case event_tracking"]});var rU=uE.command("generate").description("Generate email content with AI").action(()=>rU.help());LI(rU,{notes:["Generated content is returned as draft content. Review it before sending.","Use --json when another tool or agent should parse the generated output."],examples:['sequenzy generate email "Welcome a new user to our analytics product"','sequenzy generate sequence "Onboard a new workspace admin" --count 4 --days 14','sequenzy generate subjects "April product launch" --count 8']});rU.command("email <prompt>").description("Generate email blocks from a prompt").option("-s, --style <style>","Style: minimal, branded, promotional").option("-t, --tone <tone>","Tone: professional, casual, friendly").option("--company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>gq("email",{prompt:A,...I}));rU.command("sequence <goal>").description("Generate email sequence content from a goal").option("-c, --count <number>","Number of emails (1-10)","5").option("-d, --days <number>","Duration in days","14").option("--company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>gq("sequence",{goal:A,...I}));rU.command("subjects <topic>").description("Generate A/B subject line variants").option("-c, --count <number>","Number of variants","5").option("--company <id>","Company ID override for personal API keys").option("--json","Print raw JSON").action((A,I)=>gq("subjects",{topic:A,...I}));uE.parse();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sequenzy/cli",
3
- "version": "0.0.30",
3
+ "version": "0.0.31",
4
4
  "description": "Sequenzy CLI for email marketing from the terminal",
5
5
  "type": "module",
6
6
  "bin": {