@tokmizer/plugin 0.9.60 → 0.9.62

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.
package/dist/bin/tkr-exec CHANGED
@@ -1,26 +1,26 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
3
- var ul=Object.create;var xn=Object.defineProperty;var fl=Object.getOwnPropertyDescriptor;var dl=Object.getOwnPropertyNames;var pl=Object.getPrototypeOf,ml=Object.prototype.hasOwnProperty;var pe=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ae=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var J=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},Vr=(e,t)=>{for(var n in t)xn(e,n,{get:t[n],enumerable:!0})},hl=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of dl(t))!ml.call(e,s)&&s!==n&&xn(e,s,{get:()=>t[s],enumerable:!(r=fl(t,s))||r.enumerable});return e};var Wr=(e,t,n)=>(n=e!=null?ul(pl(e)):{},hl(t||!e||!e.__esModule?xn(n,"default",{value:e,enumerable:!0}):n,e));var es=J((dy,Qr)=>{Qr.exports=Xr;Xr.sync=yl;var qr=pe("fs");function gl(e,t){var n=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!n||(n=n.split(";"),n.indexOf("")!==-1))return!0;for(var r=0;r<n.length;r++){var s=n[r].toLowerCase();if(s&&e.substr(-s.length).toLowerCase()===s)return!0}return!1}function Yr(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:gl(t,n)}function Xr(e,t,n){qr.stat(e,function(r,s){n(r,r?!1:Yr(s,e,t))})}function yl(e,t){return Yr(qr.statSync(e),e,t)}});var os=J((py,ss)=>{ss.exports=ns;ns.sync=kl;var ts=pe("fs");function ns(e,t,n){ts.stat(e,function(r,s){n(r,r?!1:rs(s,t))})}function kl(e,t){return rs(ts.statSync(e),t)}function rs(e,t){return e.isFile()&&bl(e,t)}function bl(e,t){var n=e.mode,r=e.uid,s=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),i=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,f=n&c||n&l&&s===i||n&a&&r===o||n&u&&o===0;return f}});var as=J((hy,is)=>{var my=pe("fs"),Ft;process.platform==="win32"||global.TESTING_WINDOWS?Ft=es():Ft=os();is.exports=wn;wn.sync=_l;function wn(e,t,n){if(typeof t=="function"&&(n=t,t={}),!n){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,s){wn(e,t||{},function(o,i){o?s(o):r(i)})})}Ft(e,t||{},function(r,s){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,s=!1),n(r,s)})}function _l(e,t){try{return Ft.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var ms=J((gy,ps)=>{var Je=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",ls=pe("path"),xl=Je?";":":",cs=as(),us=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),fs=(e,t)=>{let n=t.colon||xl,r=e.match(/\//)||Je&&e.match(/\\/)?[""]:[...Je?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],s=Je?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=Je?s.split(n):[""];return Je&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:s}},ds=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:s,pathExtExe:o}=fs(e,t),i=[],a=c=>new Promise((u,f)=>{if(c===r.length)return t.all&&i.length?u(i):f(us(e));let d=r[c],p=/^".*"$/.test(d)?d.slice(1,-1):d,h=ls.join(p,e),_=!p&&/^\.[\\\/]/.test(e)?e.slice(0,2)+h:h;u(l(_,c,0))}),l=(c,u,f)=>new Promise((d,p)=>{if(f===s.length)return d(a(u+1));let h=s[f];cs(c+h,{pathExt:o},(_,g)=>{if(!_&&g)if(t.all)i.push(c+h);else return d(c+h);return d(l(c,u,f+1))})});return n?a(0).then(c=>n(null,c),n):a(0)},wl=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:s}=fs(e,t),o=[];for(let i=0;i<n.length;i++){let a=n[i],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=ls.join(l,e),u=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c;for(let f=0;f<r.length;f++){let d=u+r[f];try{if(cs.sync(d,{pathExt:s}))if(t.all)o.push(d);else return d}catch{}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw us(e)};ps.exports=ds;ds.sync=wl});var gs=J((yy,vn)=>{"use strict";var hs=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};vn.exports=hs;vn.exports.default=hs});var _s=J((ky,bs)=>{"use strict";var ys=pe("path"),vl=ms(),Sl=gs();function ks(e,t){let n=e.options.env||process.env,r=process.cwd(),s=e.options.cwd!=null,o=s&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let i;try{i=vl.sync(e.command,{path:n[Sl({env:n})],pathExt:t?ys.delimiter:void 0})}catch{}finally{o&&process.chdir(r)}return i&&(i=ys.resolve(s?e.options.cwd:"",i)),i}function El(e){return ks(e)||ks(e,!0)}bs.exports=El});var xs=J((by,En)=>{"use strict";var Sn=/([()\][%!^"`<>&|;, *?])/g;function Tl(e){return e=e.replace(Sn,"^$1"),e}function $l(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(Sn,"^$1"),t&&(e=e.replace(Sn,"^$1")),e}En.exports.command=Tl;En.exports.argument=$l});var vs=J((_y,ws)=>{"use strict";ws.exports=/^#!(.*)/});var Es=J((xy,Ss)=>{"use strict";var Rl=vs();Ss.exports=(e="")=>{let t=e.match(Rl);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),s=n.split("/").pop();return s==="env"?r:r?`${s} ${r}`:s}});var $s=J((wy,Ts)=>{"use strict";var Tn=pe("fs"),Al=Es();function Cl(e){let n=Buffer.alloc(150),r;try{r=Tn.openSync(e,"r"),Tn.readSync(r,n,0,150,0),Tn.closeSync(r)}catch{}return Al(n.toString())}Ts.exports=Cl});var Is=J((vy,Cs)=>{"use strict";var Il=pe("path"),Rs=_s(),As=xs(),Ol=$s(),Pl=process.platform==="win32",Nl=/\.(?:com|exe)$/i,Dl=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Ml(e){e.file=Rs(e);let t=e.file&&Ol(e.file);return t?(e.args.unshift(e.file),e.command=t,Rs(e)):e.file}function Fl(e){if(!Pl)return e;let t=Ml(e),n=!Nl.test(t);if(e.options.forceShell||n){let r=Dl.test(t);e.command=Il.normalize(e.command),e.command=As.command(e.command),e.args=e.args.map(o=>As.argument(o,r));let s=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${s}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function Ll(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:Fl(r)}Cs.exports=Ll});var Ns=J((Sy,Ps)=>{"use strict";var $n=process.platform==="win32";function Rn(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function jl(e,t){if(!$n)return;let n=e.emit;e.emit=function(r,s){if(r==="exit"){let o=Os(s,t);if(o)return n.call(e,"error",o)}return n.apply(e,arguments)}}function Os(e,t){return $n&&e===1&&!t.file?Rn(t.original,"spawn"):null}function Hl(e,t){return $n&&e===1&&!t.file?Rn(t.original,"spawnSync"):null}Ps.exports={hookChildProcess:jl,verifyENOENT:Os,verifyENOENTSync:Hl,notFoundError:Rn}});var In=J((Ey,Ke)=>{"use strict";var Ds=pe("child_process"),An=Is(),Cn=Ns();function Ms(e,t,n){let r=An(e,t,n),s=Ds.spawn(r.command,r.args,r.options);return Cn.hookChildProcess(s,r),s}function Bl(e,t,n){let r=An(e,t,n),s=Ds.spawnSync(r.command,r.args,r.options);return s.error=s.error||Cn.verifyENOENTSync(s.status,r),s}Ke.exports=Ms;Ke.exports.spawn=Ms;Ke.exports.sync=Bl;Ke.exports._parse=An;Ke.exports._enoent=Cn});function Xc(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function Qc(e,t,n){let r=e.split(/\r?\n/),s="",o=(Math.log10(t+1)|0)+1;for(let i=t-1;i<=t+1;i++){let a=r[i-1];a&&(s+=i.toString().padEnd(o," "),s+=": ",s+=a,s+=`
3
+ var ul=Object.create;var xn=Object.defineProperty;var fl=Object.getOwnPropertyDescriptor;var dl=Object.getOwnPropertyNames;var ml=Object.getPrototypeOf,pl=Object.prototype.hasOwnProperty;var me=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ae=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var J=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},Vr=(e,t)=>{for(var n in t)xn(e,n,{get:t[n],enumerable:!0})},hl=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of dl(t))!pl.call(e,s)&&s!==n&&xn(e,s,{get:()=>t[s],enumerable:!(r=fl(t,s))||r.enumerable});return e};var Wr=(e,t,n)=>(n=e!=null?ul(ml(e)):{},hl(t||!e||!e.__esModule?xn(n,"default",{value:e,enumerable:!0}):n,e));var es=J((dy,Qr)=>{Qr.exports=Xr;Xr.sync=yl;var qr=me("fs");function gl(e,t){var n=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!n||(n=n.split(";"),n.indexOf("")!==-1))return!0;for(var r=0;r<n.length;r++){var s=n[r].toLowerCase();if(s&&e.substr(-s.length).toLowerCase()===s)return!0}return!1}function Yr(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:gl(t,n)}function Xr(e,t,n){qr.stat(e,function(r,s){n(r,r?!1:Yr(s,e,t))})}function yl(e,t){return Yr(qr.statSync(e),e,t)}});var os=J((my,ss)=>{ss.exports=ns;ns.sync=kl;var ts=me("fs");function ns(e,t,n){ts.stat(e,function(r,s){n(r,r?!1:rs(s,t))})}function kl(e,t){return rs(ts.statSync(e),t)}function rs(e,t){return e.isFile()&&bl(e,t)}function bl(e,t){var n=e.mode,r=e.uid,s=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),i=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,f=n&c||n&l&&s===i||n&a&&r===o||n&u&&o===0;return f}});var as=J((hy,is)=>{var py=me("fs"),Ft;process.platform==="win32"||global.TESTING_WINDOWS?Ft=es():Ft=os();is.exports=wn;wn.sync=_l;function wn(e,t,n){if(typeof t=="function"&&(n=t,t={}),!n){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,s){wn(e,t||{},function(o,i){o?s(o):r(i)})})}Ft(e,t||{},function(r,s){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,s=!1),n(r,s)})}function _l(e,t){try{return Ft.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var ps=J((gy,ms)=>{var Je=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",ls=me("path"),xl=Je?";":":",cs=as(),us=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),fs=(e,t)=>{let n=t.colon||xl,r=e.match(/\//)||Je&&e.match(/\\/)?[""]:[...Je?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],s=Je?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=Je?s.split(n):[""];return Je&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:s}},ds=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:s,pathExtExe:o}=fs(e,t),i=[],a=c=>new Promise((u,f)=>{if(c===r.length)return t.all&&i.length?u(i):f(us(e));let d=r[c],m=/^".*"$/.test(d)?d.slice(1,-1):d,h=ls.join(m,e),_=!m&&/^\.[\\\/]/.test(e)?e.slice(0,2)+h:h;u(l(_,c,0))}),l=(c,u,f)=>new Promise((d,m)=>{if(f===s.length)return d(a(u+1));let h=s[f];cs(c+h,{pathExt:o},(_,g)=>{if(!_&&g)if(t.all)i.push(c+h);else return d(c+h);return d(l(c,u,f+1))})});return n?a(0).then(c=>n(null,c),n):a(0)},wl=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:s}=fs(e,t),o=[];for(let i=0;i<n.length;i++){let a=n[i],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=ls.join(l,e),u=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c;for(let f=0;f<r.length;f++){let d=u+r[f];try{if(cs.sync(d,{pathExt:s}))if(t.all)o.push(d);else return d}catch{}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw us(e)};ms.exports=ds;ds.sync=wl});var gs=J((yy,vn)=>{"use strict";var hs=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};vn.exports=hs;vn.exports.default=hs});var _s=J((ky,bs)=>{"use strict";var ys=me("path"),vl=ps(),Sl=gs();function ks(e,t){let n=e.options.env||process.env,r=process.cwd(),s=e.options.cwd!=null,o=s&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let i;try{i=vl.sync(e.command,{path:n[Sl({env:n})],pathExt:t?ys.delimiter:void 0})}catch{}finally{o&&process.chdir(r)}return i&&(i=ys.resolve(s?e.options.cwd:"",i)),i}function El(e){return ks(e)||ks(e,!0)}bs.exports=El});var xs=J((by,En)=>{"use strict";var Sn=/([()\][%!^"`<>&|;, *?])/g;function Tl(e){return e=e.replace(Sn,"^$1"),e}function $l(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(Sn,"^$1"),t&&(e=e.replace(Sn,"^$1")),e}En.exports.command=Tl;En.exports.argument=$l});var vs=J((_y,ws)=>{"use strict";ws.exports=/^#!(.*)/});var Es=J((xy,Ss)=>{"use strict";var Rl=vs();Ss.exports=(e="")=>{let t=e.match(Rl);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),s=n.split("/").pop();return s==="env"?r:r?`${s} ${r}`:s}});var $s=J((wy,Ts)=>{"use strict";var Tn=me("fs"),Al=Es();function Cl(e){let n=Buffer.alloc(150),r;try{r=Tn.openSync(e,"r"),Tn.readSync(r,n,0,150,0),Tn.closeSync(r)}catch{}return Al(n.toString())}Ts.exports=Cl});var Is=J((vy,Cs)=>{"use strict";var Il=me("path"),Rs=_s(),As=xs(),Ol=$s(),Pl=process.platform==="win32",Nl=/\.(?:com|exe)$/i,Dl=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Ml(e){e.file=Rs(e);let t=e.file&&Ol(e.file);return t?(e.args.unshift(e.file),e.command=t,Rs(e)):e.file}function Fl(e){if(!Pl)return e;let t=Ml(e),n=!Nl.test(t);if(e.options.forceShell||n){let r=Dl.test(t);e.command=Il.normalize(e.command),e.command=As.command(e.command),e.args=e.args.map(o=>As.argument(o,r));let s=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${s}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function Ll(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:Fl(r)}Cs.exports=Ll});var Ns=J((Sy,Ps)=>{"use strict";var $n=process.platform==="win32";function Rn(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function jl(e,t){if(!$n)return;let n=e.emit;e.emit=function(r,s){if(r==="exit"){let o=Os(s,t);if(o)return n.call(e,"error",o)}return n.apply(e,arguments)}}function Os(e,t){return $n&&e===1&&!t.file?Rn(t.original,"spawn"):null}function Hl(e,t){return $n&&e===1&&!t.file?Rn(t.original,"spawnSync"):null}Ps.exports={hookChildProcess:jl,verifyENOENT:Os,verifyENOENTSync:Hl,notFoundError:Rn}});var In=J((Ey,Ke)=>{"use strict";var Ds=me("child_process"),An=Is(),Cn=Ns();function Ms(e,t,n){let r=An(e,t,n),s=Ds.spawn(r.command,r.args,r.options);return Cn.hookChildProcess(s,r),s}function Bl(e,t,n){let r=An(e,t,n),s=Ds.spawnSync(r.command,r.args,r.options);return s.error=s.error||Cn.verifyENOENTSync(s.status,r),s}Ke.exports=Ms;Ke.exports.spawn=Ms;Ke.exports.sync=Bl;Ke.exports._parse=An;Ke.exports._enoent=Cn});function Xc(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function Qc(e,t,n){let r=e.split(/\r?\n/),s="",o=(Math.log10(t+1)|0)+1;for(let i=t-1;i<=t+1;i++){let a=r[i-1];a&&(s+=i.toString().padEnd(o," "),s+=": ",s+=a,s+=`
4
4
  `,i===t&&(s+=" ".repeat(o+n+2),s+=`^
5
5
  `))}return s}var v,He=ae(()=>{v=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=Xc(n.toml,n.ptr),o=Qc(n.toml,r,s);super(`Invalid TOML document: ${t}
6
6
 
7
- ${o}`,n),this.line=r,this.column=s,this.codeblock=o}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function Ut(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,s=n===39,o=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);o&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let i="",a=e.p,l=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),o&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)v.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!o||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(o&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let c=e.s.slice(a,e.p);i=i?i+c:c}return e.p+=o?3:1,i}else if(!l)!s&&n===92&&(i+=e.s.slice(a,a=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let c=e.p++-1,u=0,f=n===120?2:n===117?4:8;for(let d=0;d<f;d++,e.p++){let p=e.s.charCodeAt(e.p),h=p>=48&&p<=57?p-48:p>=65&&p<=70?p-65+10:p>=97&&p<=102?p-97+10:-1;h<0&&v.x("invalid non-hex character in unicode escape",e),u=u<<4|h}(u<0||u>1114111||u>=55296&&u<=57343)&&v.x("invalid unicode escape",e,c),i+=String.fromCodePoint(u),a=e.p--,l=0}else o&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
7
+ ${o}`,n),this.line=r,this.column=s,this.codeblock=o}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function Ut(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,s=n===39,o=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);o&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let i="",a=e.p,l=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),o&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)v.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!o||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(o&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let c=e.s.slice(a,e.p);i=i?i+c:c}return e.p+=o?3:1,i}else if(!l)!s&&n===92&&(i+=e.s.slice(a,a=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let c=e.p++-1,u=0,f=n===120?2:n===117?4:8;for(let d=0;d<f;d++,e.p++){let m=e.s.charCodeAt(e.p),h=m>=48&&m<=57?m-48:m>=65&&m<=70?m-65+10:m>=97&&m<=102?m-97+10:-1;h<0&&v.x("invalid non-hex character in unicode escape",e),u=u<<4|h}(u<0||u>1114111||u>=55296&&u<=57343)&&v.x("invalid unicode escape",e,c),i+=String.fromCodePoint(u),a=e.p--,l=0}else o&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
8
8
  `:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":v.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&v.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);v.x("unfinished string",e,t)}var Dn=ae(()=>{He();});var eu,Be,Mn=ae(()=>{eu=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,Be=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let s=!0,o=!0,i="Z",a;if(typeof t=="string")if(n)e:{if(n<3){if(+t.slice(11,13)>23){t="";break e}n===2?(i=null,t+="Z"):(a=t.charCodeAt(t.length-1))!==90&&a!==122&&(i=t.slice(t.length-6)),r&&(t=t.slice(0,10)+"T"+t.slice(11))}else n===4&&(t=+t.slice(0,2)>23?"":`0000-01-01T${t}Z`);s=n!==4,o=n!==3}else{let l=t.match(eu);l?(l[1]||(s=!1,t=`0000-01-01T${t}`),o=!!l[2],o&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&o&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=s,this.#n=o,this.#e=i)}isDateTime(){return this.#t&&this.#n}isLocal(){return!this.#t||!this.#n||!this.#e}isDate(){return this.#t&&!this.#n}isTime(){return this.#n&&!this.#t}isValid(){return this.#t||this.#n}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z"||this.#e==="z")return t;let n=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return n=this.#e[0]==="-"?n:-n,new Date(this.getTime()-n*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,n="Z"){let r=new e(t);return r.#e=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#e=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#n=!1,n.#e=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#t=!1,n.#e=null,n}}});function K(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Ln(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function gt(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||v.x("document contains excessively nested structures. aborting.",e);let s=r===91?qs(e):Ws(e);return e.d++,s}return r===34||r===39?Ut(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&v.x("invalid value",e,n),e.p++,!0):r===102?((e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==108||e.s.charCodeAt(++e.p)!==115||e.s.charCodeAt(++e.p)!==101)&&v.x("invalid value",e,n),e.p++,!1):r===43||r===45?Zt(e,e.p,e.s.charCodeAt(++e.p),44-r,t):e.s.charCodeAt(e.p+4)===45&&e.s.charCodeAt(e.p+7)===45?tu(e,r,t):e.s.charCodeAt(e.p+2)===58?nu(e,r,t):Zt(e,e.p,r,0,t)}function Zt(e,t,n,r,s){let o=n,i=0,a=!1;if(o===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&v.x("invalid value",e,t),e.p++,(r||1)/0;if(o===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&v.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||Ln(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return Fn(e,t,16,s);if(o===98)return Fn(e,t,2,s);if(o===111)return Fn(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:v.x("illegal leading zero",e,t)}else K(o)||v.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Ln(o,s));)i||(i=1),o===95?(i&1||v.x("illegal underscore",e),i+=11,a=!0):i===1&&o===46?i=2:(i===1||i===3)&&(o===101||o===69)?i=4:i===4&&(o===43||o===45)||(K(o)?i>9?i-=11:i&1||i++:v.x("illegal character in numeric literal",e));if(!i){let c=(n-48)*(r||1);return e.bi===!0?BigInt(c):c}i&1||v.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):Vs(e,l,10,t)}function Fn(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Ln(s,r));)s===95?(o&1&&v.x("illegal underscore",e),o=3):K(s,n)?o&1&&o--:v.x("illegal character in numeric literal",e);o&1&&v.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),Vs(e,i,n,t)}function Vs(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;v.x("integer value cannot be represented losslessly",e,r)}return s}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function tu(e,t,n){let r=e.p++,s;if(!K(t)||!K(e.s.charCodeAt(e.p++))||!K(e.s.charCodeAt(e.p++))||!K(e.s.charCodeAt(e.p++)))return Zt(e,e.p=r,t,0,n);if(e.p+=5,K(e.s.charCodeAt(e.p++))||v.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!K(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return ht(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&v.x("invalid date-time: time part is malformed",e,r),e.s.charCodeAt(e.p+=3)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;K(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122){let i=e.s.slice(r,++e.p);return ht(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return ht(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return ht(e,o,2,s,r)}function nu(e,t,n){let r=e.p;if(!K(t)||!K(e.s.charCodeAt(++e.p)))return Zt(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;K(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return ht(e,s,4,!1,r)}function ht(e,t,n,r,s,o){if(e.ld){let i=new Be(t,n,r);return i.isValid()||v.x("invalid date",e,s),i}try{switch(o&&(t+=o),n){case 1:return Temporal.ZonedDateTime.from(t);case 2:return Temporal.PlainDateTime.from(t);case 3:return Temporal.PlainDate.from(t);case 4:return Temporal.PlainTime.from(t)}}catch(i){v.x(i instanceof Error?i.message:""+i,e,s)}}var jn=ae(()=>{Dn();Hn();He();Mn();});function ru(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)break;if(t===13&&e.s.charCodeAt(e.p+1)===10){e.p++;break}(t<32&&t!==9||t===127)&&v.x("control characters are not allowed in comments",e)}}function te(e,t,n){let r;for(;e.p<e.s.length;){for(;e.p<e.s.length&&((r=e.s.charCodeAt(e.p))===32||r===9||!t&&(r===10||r===13&&e.s.charCodeAt(e.p+1)===10));)e.p++;if(n||r!==35)break;ru(e)}}var Bn=ae(()=>{He();});function Gt(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||v.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||v.x("illegal empty bare key",e),r===1&&s.push(e.s.slice(o,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&v.x("illegal quoted key: multiline strings are not allowed",e),s.push(Ut(e)),r=2,e.p--):i===32||i===9?r===1&&(s.push(e.s.slice(o,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?v.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));v.x("incomplete key-value: cannot find end of key",e,n)}function Ws(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(te(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,c=Gt(e);for(let f=0;f<c.length;f++){f&&(i=a?i[o]:i[o]=Object.create(null)),o=c[f],(a=Object.hasOwn(i,o))&&(typeof i[o]!="object"||r.has(i[o]))&&v.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&v.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&v.x("trying to redefine an already defined value",e,l),te(e,!0,!0);let u=gt(e,125);if(i&&typeof(i[o]=u)=="object"&&r.add(u),te(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&v.x("expected comma or end of structure",e,e.p-1)}v.x("unfinished table",e,t)}function qs(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(te(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(gt(e,93)),te(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&v.x("expected comma or end of structure",e,e.p-1)}v.x("unfinished array",e,t)}var Hn=ae(()=>{Dn();jn();Bn();He();});function Ys(e,t,n,r,s){let o=n,i=r,a,l=!1,c;for(let u=0;u<t.length;u++){if(u){if(o=l?o[a]:o[a]=Object.create(null),i=(c=i[a]).c,s===0&&(c.t===1||c.t===2))return null;if(c.t===2){let f=o.length-1;o=o[f],i=i[f].c}}if(a=t[u],(l=Object.hasOwn(o,a))&&i[a]?.t===0&&i[a]?.d)return null;if(!l){let f=a==="__proto__";if(e.uk&&(f||a==="constructor"))return!1;f&&(Object.defineProperty(o,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:u<t.length-1&&s===2?3:s,d:!1,i:0,c:Object.create(null)}}}if(c=i[a],c.t!==s&&!(s===1&&c.t===3)||(s===2&&(c.d||(c.d=!0,o[a]=[]),o[a].push(o=Object.create(null)),c.c[c.i++]=c={t:1,d:!1,i:0,c:Object.create(null)}),c.d))return null;if(c.d=!0,s===1)o=l?o[a]:o[a]=Object.create(null);else if(s===0&&l)return null;return[a,o,c.c]}function Xs(e,t,n){(t===null||e.uk===2)&&v.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function zn(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour==="throw"?2:t.unsafeKeyBehaviour==="drop"?1:0},r=Object.create(null),s=Object.create(null),o,i=!1,a=r,l=s;for(e.charCodeAt(0)===65279&&n.p++,te(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let c=e.charCodeAt(++n.p)===91;o=n.p+=+c,i=!1;let u=Gt(n,93);c&&(e.charCodeAt(n.p)!==93&&v.x("expected end of table array declaration",n),n.p++);let f=Ys(n,u,r,s,c?2:1);f?(l=f[2],a=f[1]):(Xs(n,f,o),i=!0)}else{o=n.p;let c=Gt(n),u=Ys(n,c,a,l,0);!u&&!i&&Xs(n,u,o),te(n,!0,!0);let f=gt(n,void 0);u&&!i&&(u[1][u[0]]=f)}te(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&v.x("each key-value declaration must be followed by an end-of-line",n),te(n)}return r}var Qs=ae(()=>{Hn();jn();Bn();He();});function yt(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return"array";if(typeof e.getUTCDate=="function"&&e instanceof Date)return"date";if(globalThis.Temporal){if(e.until){if(e instanceof Temporal.ZonedDateTime)return"temporal/tz+uc";if(e instanceof Temporal.PlainDateTime||e instanceof Temporal.PlainDate)return"temporal/uc";if(e instanceof Temporal.PlainTime||e instanceof Temporal.Instant)return"temporal";if(e instanceof Temporal.PlainYearMonth)return"temporal/x"}else if(e.toPlainDate&&e instanceof Temporal.PlainMonthDay||e.negated&&e instanceof Temporal.Duration)return"temporal/x"}}return t}function ou(e){for(let t=0;t<e.length;t++)if(yt(e[t])!=="object")return!1;return e.length!=0}function to(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function iu(e){return to(eo?e.toWellFormed():e)}function no(e){if(su.test(e))return e;if(eo&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return to(e)}function Un(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");switch(t){case"number":if(isNaN(e))return"nan";if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Number.isInteger(e)&&(r||!Number.isSafeInteger(e)))return e.toFixed(1);case"bigint":case"boolean":case"temporal":return e.toString();case"string":return iu(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return au(e,n,r,s);case"array":return lu(e,n,r,s);case"temporal/tz+uc":if(s){let o=e.timeZoneId,i=o.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||o!=="UTC"&&o!=="UCT"&&o!=="Universal"&&o!=="Zulu"&&!o.startsWith("GMT")&&o!=="Greenwich"&&!o.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(s&&e.calendarId!=="iso8601")throw new TypeError("Temporal objects with a non-default calendar are not allowed in Temporal strict mode");return e.toString({calendarName:"never",timeZoneName:"never"});case"temporal/x":throw new TypeError("Unsupported "+e[Symbol.toStringTag])}}function au(e,t,n,r){let s=Object.keys(e);if(s.length===0)return"{}";let o="{ ";for(let i=0;i<s.length;i++){let a=s[i];i&&(o+=", "),o+=no(a)+" = "+Un(e[a],yt(e[a]),t-1,n,r)}return o+" }"}function lu(e,t,n,r){if(e.length===0)return"[]";let s="[ ";for(let o=0;o<e.length;o++){if(o&&(s+=", "),e[o]===null||e[o]===void 0)throw new TypeError("arrays cannot contain null or undefined values");s+=Un(e[o],yt(e[o]),t-1,n,r)}return s+" ]"}function cu(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let o="";for(let i=0;i<e.length;i++)o+=`${o&&`
9
9
  `}[[${t}]]
10
10
  `,o+=Zn(0,e[i],t,n,r,s);return o}function Zn(e,t,n,r,s,o){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",a="",l=Object.keys(t);for(let c=0;c<l.length;c++){let u=l[c];if(t[u]!==null&&t[u]!==void 0){let f=yt(t[u]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=no(u);if(f==="array"&&ou(t[u]))a+=(a&&`
11
- `)+cu(t[u],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let p=n?`${n}.${d}`:d;a+=(a&&`
12
- `)+Zn(p,t[u],p,r-1,s,o)}else i+=d,i+=" = ",i+=Un(t[u],f,r,s,o),i+=`
11
+ `)+cu(t[u],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let m=n?`${n}.${d}`:d;a+=(a&&`
12
+ `)+Zn(m,t[u],m,r-1,s,o)}else i+=d,i+=" = ",i+=Un(t[u],f,r,s,o),i+=`
13
13
  `}}return e&&(i||!a)&&(i=i?`[${e}]
14
14
  ${i}`:`[${e}]`),i&&a?`${i}
15
15
  ${a}`:i||a}function Gn(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(yt(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=Zn(0,e,"",t,n,r);return s[s.length-1]!==`
16
16
  `?s+`
17
- `:s}var su,eo,ro=ae(()=>{su=/^[a-z0-9-_]+$/i,eo=!!"".isWellFormed});var Jn={};Vr(Jn,{TomlDate:()=>Be,TomlError:()=>v,default:()=>uu,parse:()=>zn,stringify:()=>Gn});var uu,Kn=ae(()=>{Qs();ro();Mn();He();uu={parse:zn,stringify:Gn,TomlDate:Be,TomlError:v}});var cl=Wr(In(),1);var Zr=Wr(In(),1);import{existsSync as Yg,readFileSync as Xg,writeFileSync as Qg,mkdirSync as ey}from"node:fs";import{join as ty}from"node:path";import{fileURLToPath as ny}from"node:url";import{StringDecoder as ry}from"node:string_decoder";import{readdir as fu,readFile as du}from"node:fs/promises";import{join as oo,dirname as pu}from"node:path";import{fileURLToPath as mu}from"node:url";var y={};Vr(y,{BRAND:()=>pc,DIRTY:()=>Se,EMPTY_PATH:()=>Gl,INVALID:()=>w,NEVER:()=>Yc,OK:()=>j,ParseStatus:()=>L,Schema:()=>A,ZodAny:()=>ge,ZodArray:()=>fe,ZodBigInt:()=>Te,ZodBoolean:()=>$e,ZodBranded:()=>pt,ZodCatch:()=>Le,ZodDate:()=>Re,ZodDefault:()=>Fe,ZodDiscriminatedUnion:()=>Ht,ZodEffects:()=>Y,ZodEnum:()=>De,ZodError:()=>z,ZodFirstPartyTypeKind:()=>S,ZodFunction:()=>zt,ZodIntersection:()=>Oe,ZodIssueCode:()=>m,ZodLazy:()=>Pe,ZodLiteral:()=>Ne,ZodMap:()=>Qe,ZodNaN:()=>tt,ZodNativeEnum:()=>Me,ZodNever:()=>ee,ZodNull:()=>Ce,ZodNullable:()=>se,ZodNumber:()=>Ee,ZodObject:()=>U,ZodOptional:()=>W,ZodParsedType:()=>b,ZodPipeline:()=>mt,ZodPromise:()=>ye,ZodReadonly:()=>je,ZodRecord:()=>Bt,ZodSchema:()=>A,ZodSet:()=>et,ZodString:()=>he,ZodSymbol:()=>Ye,ZodTransformer:()=>Y,ZodTuple:()=>re,ZodType:()=>A,ZodUndefined:()=>Ae,ZodUnion:()=>Ie,ZodUnknown:()=>ue,ZodVoid:()=>Xe,addIssueToContext:()=>k,any:()=>wc,array:()=>Tc,bigint:()=>yc,boolean:()=>Ks,coerce:()=>qc,custom:()=>Zs,date:()=>kc,datetimeRegex:()=>zs,defaultErrorMap:()=>le,discriminatedUnion:()=>Cc,effect:()=>zc,enum:()=>jc,function:()=>Mc,getErrorMap:()=>Ve,getParsedType:()=>ne,instanceof:()=>hc,intersection:()=>Ic,isAborted:()=>Lt,isAsync:()=>We,isDirty:()=>jt,isValid:()=>me,late:()=>mc,lazy:()=>Fc,literal:()=>Lc,makeIssue:()=>dt,map:()=>Nc,nan:()=>gc,nativeEnum:()=>Hc,never:()=>Sc,null:()=>xc,nullable:()=>Zc,number:()=>Js,object:()=>$c,objectUtil:()=>On,oboolean:()=>Wc,onumber:()=>Vc,optional:()=>Uc,ostring:()=>Kc,pipeline:()=>Jc,preprocess:()=>Gc,promise:()=>Bc,quotelessJson:()=>zl,record:()=>Pc,set:()=>Dc,setErrorMap:()=>Zl,strictObject:()=>Rc,string:()=>Gs,symbol:()=>bc,transformer:()=>zc,tuple:()=>Oc,undefined:()=>_c,union:()=>Ac,unknown:()=>vc,util:()=>I,void:()=>Ec});var I;(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},e.getValidEnumValues=s=>{let o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let o=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(let i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(I||(I={}));var On;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(On||(On={}));var b=I.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ne=e=>{switch(typeof e){case"undefined":return b.undefined;case"string":return b.string;case"number":return Number.isNaN(e)?b.nan:b.number;case"boolean":return b.boolean;case"function":return b.function;case"bigint":return b.bigint;case"symbol":return b.symbol;case"object":return Array.isArray(e)?b.array:e===null?b.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?b.promise:typeof Map<"u"&&e instanceof Map?b.map:typeof Set<"u"&&e instanceof Set?b.set:typeof Date<"u"&&e instanceof Date?b.date:b.object;default:return b.unknown}};var m=I.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),zl=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),z=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(o){return o.message},r={_errors:[]},s=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,l=0;for(;l<i.path.length;){let c=i.path[l];l===i.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(n(i))):a[c]=a[c]||{_errors:[]},a=a[c],l++}}};return s(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,I.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];n[o]=n[o]||[],n[o].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};z.create=e=>new z(e);var Ul=(e,t)=>{let n;switch(e.code){case m.invalid_type:e.received===b.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case m.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,I.jsonStringifyReplacer)}`;break;case m.unrecognized_keys:n=`Unrecognized key(s) in object: ${I.joinValues(e.keys,", ")}`;break;case m.invalid_union:n="Invalid input";break;case m.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${I.joinValues(e.options)}`;break;case m.invalid_enum_value:n=`Invalid enum value. Expected ${I.joinValues(e.options)}, received '${e.received}'`;break;case m.invalid_arguments:n="Invalid function arguments";break;case m.invalid_return_type:n="Invalid function return type";break;case m.invalid_date:n="Invalid date";break;case m.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:I.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case m.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case m.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case m.custom:n="Invalid input";break;case m.invalid_intersection_types:n="Intersection results could not be merged";break;case m.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case m.not_finite:n="Number must be finite";break;default:n=t.defaultError,I.assertNever(e)}return{message:n}},le=Ul;var Fs=le;function Zl(e){Fs=e}function Ve(){return Fs}var dt=e=>{let{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",l=r.filter(c=>!!c).slice().reverse();for(let c of l)a=c(i,{data:t,defaultError:a}).message;return{...s,path:o,message:a}},Gl=[];function k(e,t){let n=Ve(),r=dt({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===le?void 0:le].filter(s=>!!s)});e.common.issues.push(r)}var L=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let s of n){if(s.status==="aborted")return w;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let s of n){let o=await s.key,i=await s.value;r.push({key:o,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let s of n){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return w;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}},w=Object.freeze({status:"aborted"}),Se=e=>({status:"dirty",value:e}),j=e=>({status:"valid",value:e}),Lt=e=>e.status==="aborted",jt=e=>e.status==="dirty",me=e=>e.status==="valid",We=e=>typeof Promise<"u"&&e instanceof Promise;var x;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(x||(x={}));var q=class{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Ls=(e,t)=>{if(me(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new z(e.common.issues);return this._error=n,this._error}}};function $(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(i,a)=>{let{message:l}=e;return i.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:l??r??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:l??n??a.defaultError}},description:s}}var A=class{get description(){return this._def.description}_getType(t){return ne(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ne(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new L,ctx:{common:t.parent.common,data:t.data,parsedType:ne(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(We(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ne(t)},s=this._parseSync({data:t,path:r.path,parent:r});return Ls(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ne(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return me(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>me(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ne(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(We(s)?s:Promise.resolve(s));return Ls(r,o)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{let i=t(s),a=()=>o.addIssue({code:m.custom,...r(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new Y({schema:this,typeName:S.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return W.create(this,this._def)}nullable(){return se.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return fe.create(this)}promise(){return ye.create(this,this._def)}or(t){return Ie.create([this,t],this._def)}and(t){return Oe.create(this,t,this._def)}transform(t){return new Y({...$(this._def),schema:this,typeName:S.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Fe({...$(this._def),innerType:this,defaultValue:n,typeName:S.ZodDefault})}brand(){return new pt({typeName:S.ZodBranded,type:this,...$(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Le({...$(this._def),innerType:this,catchValue:n,typeName:S.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return mt.create(this,t)}readonly(){return je.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Jl=/^c[^\s-]{8,}$/i,Kl=/^[0-9a-z]+$/,Vl=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Wl=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,ql=/^[a-z0-9_-]{21}$/i,Yl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Xl=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Ql=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ec="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Pn,tc=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,nc=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,rc=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,sc=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,oc=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,ic=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Hs="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",ac=new RegExp(`^${Hs}$`);function Bs(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function lc(e){return new RegExp(`^${Bs(e)}$`)}function zs(e){let t=`${Hs}T${Bs(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function cc(e,t){return!!((t==="v4"||!t)&&tc.test(e)||(t==="v6"||!t)&&rc.test(e))}function uc(e,t){if(!Yl.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function fc(e,t){return!!((t==="v4"||!t)&&nc.test(e)||(t==="v6"||!t)&&sc.test(e))}var he=class e extends A{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==b.string){let o=this._getOrReturnCtx(t);return k(o,{code:m.invalid_type,expected:b.string,received:o.parsedType}),w}let r=new L,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:m.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:m.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=t.data.length>o.value,a=t.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(t,s),i?k(s,{code:m.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&k(s,{code:m.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Ql.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"email",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Pn||(Pn=new RegExp(ec,"u")),Pn.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"emoji",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Wl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"uuid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")ql.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"nanoid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")Jl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cuid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")Kl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cuid2",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")Vl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"ulid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),k(s,{validation:"url",code:m.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"regex",code:m.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(t,s),k(s,{code:m.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(s=this._getOrReturnCtx(t,s),k(s,{code:m.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),k(s,{code:m.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?zs(o).test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:m.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?ac.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:m.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?lc(o).test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:m.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?Xl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"duration",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?cc(t.data,o.version)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"ip",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?uc(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"jwt",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?fc(t.data,o.version)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cidr",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?oc.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"base64",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?ic.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"base64url",code:m.invalid_string,message:o.message}),r.dirty()):I.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:m.invalid_string,...x.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...x.errToObj(t)})}url(t){return this._addCheck({kind:"url",...x.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...x.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...x.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...x.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...x.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...x.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...x.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...x.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...x.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...x.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...x.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...x.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...x.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...x.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...x.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...x.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...x.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...x.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...x.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...x.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...x.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...x.errToObj(n)})}nonempty(t){return this.min(1,x.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};he.create=e=>new he({checks:[],typeName:S.ZodString,coerce:e?.coerce??!1,...$(e)});function dc(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=Number.parseInt(e.toFixed(s).replace(".","")),i=Number.parseInt(t.toFixed(s).replace(".",""));return o%i/10**s}var Ee=class e extends A{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==b.number){let o=this._getOrReturnCtx(t);return k(o,{code:m.invalid_type,expected:b.number,received:o.parsedType}),w}let r,s=new L;for(let o of this._def.checks)o.kind==="int"?I.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),k(r,{code:m.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:m.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:m.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?dc(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),k(r,{code:m.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),k(r,{code:m.not_finite,message:o.message}),s.dirty()):I.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,x.toString(n))}gt(t,n){return this.setLimit("min",t,!1,x.toString(n))}lte(t,n){return this.setLimit("max",t,!0,x.toString(n))}lt(t,n){return this.setLimit("max",t,!1,x.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:x.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:x.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:x.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:x.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:x.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:x.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:x.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:x.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:x.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:x.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&I.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}};Ee.create=e=>new Ee({checks:[],typeName:S.ZodNumber,coerce:e?.coerce||!1,...$(e)});var Te=class e extends A{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==b.bigint)return this._getInvalidInput(t);let r,s=new L;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:m.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:m.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),k(r,{code:m.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):I.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return k(n,{code:m.invalid_type,expected:b.bigint,received:n.parsedType}),w}gte(t,n){return this.setLimit("min",t,!0,x.toString(n))}gt(t,n){return this.setLimit("min",t,!1,x.toString(n))}lte(t,n){return this.setLimit("max",t,!0,x.toString(n))}lt(t,n){return this.setLimit("max",t,!1,x.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:x.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:x.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:x.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:x.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:x.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:x.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};Te.create=e=>new Te({checks:[],typeName:S.ZodBigInt,coerce:e?.coerce??!1,...$(e)});var $e=class extends A{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==b.boolean){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.boolean,received:r.parsedType}),w}return j(t.data)}};$e.create=e=>new $e({typeName:S.ZodBoolean,coerce:e?.coerce||!1,...$(e)});var Re=class e extends A{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==b.date){let o=this._getOrReturnCtx(t);return k(o,{code:m.invalid_type,expected:b.date,received:o.parsedType}),w}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return k(o,{code:m.invalid_date}),w}let r=new L,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:m.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:m.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):I.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:x.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:x.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}};Re.create=e=>new Re({checks:[],coerce:e?.coerce||!1,typeName:S.ZodDate,...$(e)});var Ye=class extends A{_parse(t){if(this._getType(t)!==b.symbol){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.symbol,received:r.parsedType}),w}return j(t.data)}};Ye.create=e=>new Ye({typeName:S.ZodSymbol,...$(e)});var Ae=class extends A{_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.undefined,received:r.parsedType}),w}return j(t.data)}};Ae.create=e=>new Ae({typeName:S.ZodUndefined,...$(e)});var Ce=class extends A{_parse(t){if(this._getType(t)!==b.null){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.null,received:r.parsedType}),w}return j(t.data)}};Ce.create=e=>new Ce({typeName:S.ZodNull,...$(e)});var ge=class extends A{constructor(){super(...arguments),this._any=!0}_parse(t){return j(t.data)}};ge.create=e=>new ge({typeName:S.ZodAny,...$(e)});var ue=class extends A{constructor(){super(...arguments),this._unknown=!0}_parse(t){return j(t.data)}};ue.create=e=>new ue({typeName:S.ZodUnknown,...$(e)});var ee=class extends A{_parse(t){let n=this._getOrReturnCtx(t);return k(n,{code:m.invalid_type,expected:b.never,received:n.parsedType}),w}};ee.create=e=>new ee({typeName:S.ZodNever,...$(e)});var Xe=class extends A{_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.void,received:r.parsedType}),w}return j(t.data)}};Xe.create=e=>new Xe({typeName:S.ZodVoid,...$(e)});var fe=class e extends A{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==b.array)return k(n,{code:m.invalid_type,expected:b.array,received:n.parsedType}),w;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(k(n,{code:i?m.too_big:m.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(k(n,{code:m.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(k(n,{code:m.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new q(n,i,n.path,a)))).then(i=>L.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new q(n,i,n.path,a)));return L.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:x.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:x.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:x.toString(n)}})}nonempty(t){return this.min(1,t)}};fe.create=(e,t)=>new fe({type:e,minLength:null,maxLength:null,exactLength:null,typeName:S.ZodArray,...$(t)});function qe(e){if(e instanceof U){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=W.create(qe(r))}return new U({...e._def,shape:()=>t})}else return e instanceof fe?new fe({...e._def,type:qe(e.element)}):e instanceof W?W.create(qe(e.unwrap())):e instanceof se?se.create(qe(e.unwrap())):e instanceof re?re.create(e.items.map(t=>qe(t))):e}var U=class e extends A{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=I.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==b.object){let c=this._getOrReturnCtx(t);return k(c,{code:m.invalid_type,expected:b.object,received:c.parsedType}),w}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof ee&&this._def.unknownKeys==="strip"))for(let c in s.data)i.includes(c)||a.push(c);let l=[];for(let c of i){let u=o[c],f=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new q(s,f,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof ee){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of a)l.push({key:{status:"valid",value:u},value:{status:"valid",value:s.data[u]}});else if(c==="strict")a.length>0&&(k(s,{code:m.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let u of a){let f=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new q(s,f,s.path,u)),alwaysSet:u in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let f=await u.key,d=await u.value;c.push({key:f,value:d,alwaysSet:u.alwaysSet})}return c}).then(c=>L.mergeObjectSync(r,c)):L.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return x.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:x.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:S.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of I.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of I.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return qe(this)}partial(t){let n={};for(let r of I.objectKeys(this.shape)){let s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of I.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof W;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return Us(I.objectKeys(this.shape))}};U.create=(e,t)=>new U({shape:()=>e,unknownKeys:"strip",catchall:ee.create(),typeName:S.ZodObject,...$(t)});U.strictCreate=(e,t)=>new U({shape:()=>e,unknownKeys:"strict",catchall:ee.create(),typeName:S.ZodObject,...$(t)});U.lazycreate=(e,t)=>new U({shape:e,unknownKeys:"strip",catchall:ee.create(),typeName:S.ZodObject,...$(t)});var Ie=class extends A{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new z(a.ctx.common.issues));return k(n,{code:m.invalid_union,unionErrors:i}),w}if(n.common.async)return Promise.all(r.map(async o=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let l of r){let c={...n,common:{...n.common,issues:[]},parent:null},u=l._parseSync({data:n.data,path:n.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!o&&(o={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(l=>new z(l));return k(n,{code:m.invalid_union,unionErrors:a}),w}}get options(){return this._def.options}};Ie.create=(e,t)=>new Ie({options:e,typeName:S.ZodUnion,...$(t)});var ce=e=>e instanceof Pe?ce(e.schema):e instanceof Y?ce(e.innerType()):e instanceof Ne?[e.value]:e instanceof De?e.options:e instanceof Me?I.objectValues(e.enum):e instanceof Fe?ce(e._def.innerType):e instanceof Ae?[void 0]:e instanceof Ce?[null]:e instanceof W?[void 0,...ce(e.unwrap())]:e instanceof se?[null,...ce(e.unwrap())]:e instanceof pt||e instanceof je?ce(e.unwrap()):e instanceof Le?ce(e._def.innerType):[],Ht=class e extends A{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.object)return k(n,{code:m.invalid_type,expected:b.object,received:n.parsedType}),w;let r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(k(n,{code:m.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),w)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let s=new Map;for(let o of n){let i=ce(o.shape[t]);if(!i.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of i){if(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new e({typeName:S.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...$(r)})}};function Nn(e,t){let n=ne(e),r=ne(t);if(e===t)return{valid:!0,data:e};if(n===b.object&&r===b.object){let s=I.objectKeys(t),o=I.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Nn(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===b.array&&r===b.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let o=0;o<e.length;o++){let i=e[o],a=t[o],l=Nn(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===b.date&&r===b.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var Oe=class extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(Lt(o)||Lt(i))return w;let a=Nn(o.value,i.value);return a.valid?((jt(o)||jt(i))&&n.dirty(),{status:n.value,value:a.data}):(k(r,{code:m.invalid_intersection_types}),w)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Oe.create=(e,t,n)=>new Oe({left:e,right:t,typeName:S.ZodIntersection,...$(n)});var re=class e extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.array)return k(r,{code:m.invalid_type,expected:b.array,received:r.parsedType}),w;if(r.data.length<this._def.items.length)return k(r,{code:m.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),w;!this._def.rest&&r.data.length>this._def.items.length&&(k(r,{code:m.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new q(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>L.mergeArray(n,i)):L.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};re.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new re({items:e,typeName:S.ZodTuple,rest:null,...$(t)})};var Bt=class e extends A{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.object)return k(r,{code:m.invalid_type,expected:b.object,received:r.parsedType}),w;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new q(r,a,r.path,a)),value:i._parse(new q(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?L.mergeObjectAsync(n,s):L.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof A?new e({keyType:t,valueType:n,typeName:S.ZodRecord,...$(r)}):new e({keyType:he.create(),valueType:t,typeName:S.ZodRecord,...$(n)})}},Qe=class extends A{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.map)return k(r,{code:m.invalid_type,expected:b.map,received:r.parsedType}),w;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],c)=>({key:s._parse(new q(r,a,r.path,[c,"key"])),value:o._parse(new q(r,l,r.path,[c,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return w;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return w;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}}}};Qe.create=(e,t,n)=>new Qe({valueType:t,keyType:e,typeName:S.ZodMap,...$(n)});var et=class e extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.set)return k(r,{code:m.invalid_type,expected:b.set,received:r.parsedType}),w;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(k(r,{code:m.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(k(r,{code:m.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let o=this._def.valueType;function i(l){let c=new Set;for(let u of l){if(u.status==="aborted")return w;u.status==="dirty"&&n.dirty(),c.add(u.value)}return{status:n.value,value:c}}let a=[...r.data.values()].map((l,c)=>o._parse(new q(r,l,r.path,c)));return r.common.async?Promise.all(a).then(l=>i(l)):i(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:x.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:x.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};et.create=(e,t)=>new et({valueType:e,minSize:null,maxSize:null,typeName:S.ZodSet,...$(t)});var zt=class e extends A{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.function)return k(n,{code:m.invalid_type,expected:b.function,received:n.parsedType}),w;function r(a,l){return dt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ve(),le].filter(c=>!!c),issueData:{code:m.invalid_arguments,argumentsError:l}})}function s(a,l){return dt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ve(),le].filter(c=>!!c),issueData:{code:m.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof ye){let a=this;return j(async function(...l){let c=new z([]),u=await a._def.args.parseAsync(l,o).catch(p=>{throw c.addIssue(r(l,p)),c}),f=await Reflect.apply(i,this,u);return await a._def.returns._def.type.parseAsync(f,o).catch(p=>{throw c.addIssue(s(f,p)),c})})}else{let a=this;return j(function(...l){let c=a._def.args.safeParse(l,o);if(!c.success)throw new z([r(l,c.error)]);let u=Reflect.apply(i,this,c.data),f=a._def.returns.safeParse(u,o);if(!f.success)throw new z([s(u,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:re.create(t).rest(ue.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||re.create([]).rest(ue.create()),returns:n||ue.create(),typeName:S.ZodFunction,...$(r)})}},Pe=class extends A{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};Pe.create=(e,t)=>new Pe({getter:e,typeName:S.ZodLazy,...$(t)});var Ne=class extends A{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return k(n,{received:n.data,code:m.invalid_literal,expected:this._def.value}),w}return{status:"valid",value:t.data}}get value(){return this._def.value}};Ne.create=(e,t)=>new Ne({value:e,typeName:S.ZodLiteral,...$(t)});function Us(e,t){return new De({values:e,typeName:S.ZodEnum,...$(t)})}var De=class e extends A{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return k(n,{expected:I.joinValues(r),received:n.parsedType,code:m.invalid_type}),w}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return k(n,{received:n.data,code:m.invalid_enum_value,options:r}),w}return j(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};De.create=Us;var Me=class extends A{_parse(t){let n=I.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==b.string&&r.parsedType!==b.number){let s=I.objectValues(n);return k(r,{expected:I.joinValues(s),received:r.parsedType,code:m.invalid_type}),w}if(this._cache||(this._cache=new Set(I.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=I.objectValues(n);return k(r,{received:r.data,code:m.invalid_enum_value,options:s}),w}return j(t.data)}get enum(){return this._def.values}};Me.create=(e,t)=>new Me({values:e,typeName:S.ZodNativeEnum,...$(t)});var ye=class extends A{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.promise&&n.common.async===!1)return k(n,{code:m.invalid_type,expected:b.promise,received:n.parsedType}),w;let r=n.parsedType===b.promise?n.data:Promise.resolve(n.data);return j(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};ye.create=(e,t)=>new ye({type:e,typeName:S.ZodPromise,...$(t)});var Y=class extends A{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===S.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,o={addIssue:i=>{k(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(r.data,o);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return w;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?w:l.status==="dirty"?Se(l.value):n.value==="dirty"?Se(l.value):l});{if(n.value==="aborted")return w;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?w:a.status==="dirty"?Se(a.value):n.value==="dirty"?Se(a.value):a}}if(s.type==="refinement"){let i=a=>{let l=s.refinement(a,o);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?w:(a.status==="dirty"&&n.dirty(),i(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?w:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!me(i))return w;let a=s.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>me(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):w);I.assertNever(s)}};Y.create=(e,t,n)=>new Y({schema:e,typeName:S.ZodEffects,effect:t,...$(n)});Y.createWithPreprocess=(e,t,n)=>new Y({schema:t,effect:{type:"preprocess",transform:e},typeName:S.ZodEffects,...$(n)});var W=class extends A{_parse(t){return this._getType(t)===b.undefined?j(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};W.create=(e,t)=>new W({innerType:e,typeName:S.ZodOptional,...$(t)});var se=class extends A{_parse(t){return this._getType(t)===b.null?j(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};se.create=(e,t)=>new se({innerType:e,typeName:S.ZodNullable,...$(t)});var Fe=class extends A{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===b.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Fe.create=(e,t)=>new Fe({innerType:e,typeName:S.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...$(t)});var Le=class extends A{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return We(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new z(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new z(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Le.create=(e,t)=>new Le({innerType:e,typeName:S.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...$(t)});var tt=class extends A{_parse(t){if(this._getType(t)!==b.nan){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.nan,received:r.parsedType}),w}return{status:"valid",value:t.data}}};tt.create=e=>new tt({typeName:S.ZodNaN,...$(e)});var pc=Symbol("zod_brand"),pt=class extends A{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},mt=class e extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?w:o.status==="dirty"?(n.dirty(),Se(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?w:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:S.ZodPipeline})}},je=class extends A{_parse(t){let n=this._def.innerType._parse(t),r=s=>(me(s)&&(s.value=Object.freeze(s.value)),s);return We(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};je.create=(e,t)=>new je({innerType:e,typeName:S.ZodReadonly,...$(t)});function js(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function Zs(e,t={},n){return e?ge.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=js(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=js(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):ge.create()}var mc={object:U.lazycreate},S;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(S||(S={}));var hc=(e,t={message:`Input not instance of ${e.name}`})=>Zs(n=>n instanceof e,t),Gs=he.create,Js=Ee.create,gc=tt.create,yc=Te.create,Ks=$e.create,kc=Re.create,bc=Ye.create,_c=Ae.create,xc=Ce.create,wc=ge.create,vc=ue.create,Sc=ee.create,Ec=Xe.create,Tc=fe.create,$c=U.create,Rc=U.strictCreate,Ac=Ie.create,Cc=Ht.create,Ic=Oe.create,Oc=re.create,Pc=Bt.create,Nc=Qe.create,Dc=et.create,Mc=zt.create,Fc=Pe.create,Lc=Ne.create,jc=De.create,Hc=Me.create,Bc=ye.create,zc=Y.create,Uc=W.create,Zc=se.create,Gc=Y.createWithPreprocess,Jc=mt.create,Kc=()=>Gs().optional(),Vc=()=>Js().optional(),Wc=()=>Ks().optional(),qc={string:(e=>he.create({...e,coerce:!0})),number:(e=>Ee.create({...e,coerce:!0})),boolean:(e=>$e.create({...e,coerce:!0})),bigint:(e=>Te.create({...e,coerce:!0})),date:(e=>Re.create({...e,coerce:!0}))};var Yc=w;var ke=y.object({slug:y.string().min(1).max(64),description:y.string().max(255).optional(),match_command:y.string().min(1),priority:y.number().int().default(50),strip_ansi:y.boolean().default(!1),strip_lines_matching:y.array(y.string()).default([]),keep_failures:y.boolean().default(!1),strip_on_failure:y.boolean().default(!1),fold_passing:y.boolean().default(!1),fold_passing_threshold:y.number().int().positive().max(1e3).optional(),mask_abs_paths:y.boolean().default(!1),preserve_exact:y.boolean().default(!1),truncate_lines_at:y.number().int().positive().max(1e4).optional(),max_lines:y.number().int().positive().max(1e5).optional(),scale_with_level:y.boolean().default(!0),transform:y.string().max(64).optional(),on_empty:y.string().max(255).optional()});var hu=pu(mu(import.meta.url)),gu=process.env.TOKMIZER_FILTERS_DIR||oo(hu,"..","..","filters"),nt=null,so=!1;function yu(){return process.env.TOKMIZER_DEV==="1"||process.env.TOKMIZER_DEV==="true"}async function io(){return nt||(yu()?(nt=await ku(gu),nt):(!so&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
18
- `),so=!0),nt=new Map,nt))}async function ku(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(Kn(),Jn))).parse,r=(await fu(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await du(oo(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,c]of Object.entries(a)){let u=ke.parse({slug:l,...c});t.set(l,{...u,matchRegex:new RegExp(u.match_command)})}}return t}import{createHash as bu}from"node:crypto";var _u=y.enum(["normal","compact","minimal"]),xu=y.enum(["off","light","balanced","max"]),kt=y.object({enabled:y.boolean().default(!0),telemetryOptIn:y.boolean().default(!0),outputVerbosity:_u.default("compact"),reducer:xu.default("off"),filters:y.object({enableAll:y.boolean().default(!0),disabled:y.array(y.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),ao=new Map;function X(e){let t=ao.get(e);return t||(t=bu("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),ao.set(e,t)),t}var lo=new WeakMap,wu=256;function rt(e,t,n,r=t){let s=lo.get(r);s||(s=new Map,lo.set(r,s));let o=JSON.stringify([e,n?[...n].sort():null]),i=s.get(o);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(X(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=wu){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as wf,readFile as Lo,writeFile as Tb,mkdir as $b,rename as Rb}from"node:fs/promises";import{readdirSync as vf,statSync as Do}from"node:fs";import{createHash as Sf}from"node:crypto";import{basename as Ob,join as Xt}from"node:path";var vu=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Su=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function oe(e){return e.replace(vu,"").replace(Su,"")}function co(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}function uo(e,t){return e.map(n=>{if(n.length<=t)return n;let r=n.charCodeAt(t-1),s=n.charCodeAt(t),o=r>=55296&&r<=56319&&s>=56320&&s<=57343?t-1:t;return`${n.slice(0,o)}\u2026`})}function st(e){return`\u2026 (${e} more lines omitted)`}function fo(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,s=e.slice(n,e.length-r);return{kept:[...e.slice(0,n),st(s.length),...e.slice(e.length-r)],dropped:s}}var Eu=/^\s*(?:[✓✔√]|ok )/,be=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function po(e,t){let n=t>0?t:5,r=[],s=0,o=a=>{s>=n?r.push(`\u2026 ${s} passing checks folded \u2026`):r.push(...a)},i=[];for(let a of e)Eu.test(a)&&!be.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Tu=/(?:\/[\w.@+-]+){3,}/g;function mo(e){return e.map(t=>t.replace(Tu,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var $u=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Ru=/\{\s*$/;var Au=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Cu=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function Iu(e){let t=Au.exec(e);return!t||Cu.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var Ou=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function Pu(e,t,n){let r=t;for(;r<e.length;){if(e[r]==="\\"){r+=2;continue}if(e[r]===n)return!0;r+=1}return!1}function Nu(e,t){let n=0,r=null,s=0;for(;s<e.length;){let o=e[s];if(t.inBlockComment){if(o==="*"&&e[s+1]==="/"){t.inBlockComment=!1,s+=2;continue}s+=1;continue}if(t.inTemplate){if(o==="\\"){s+=2;continue}o==="`"&&(t.inTemplate=!1),s+=1;continue}if(r){if(o==="\\"){s+=2;continue}o===r&&(r=null),s+=1;continue}if(o==="/"&&e[s+1]==="/")break;if(o==="/"&&e[s+1]==="*"){t.inBlockComment=!0,s+=2;continue}if(o==="`"){t.inTemplate=!0,s+=1;continue}if(o==="'"||o==='"'){let i=s>0?e[s-1]:"";!(o==="'"&&(i==="<"||i==="&"))&&Pu(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}var ho=/^\s*… \d+ lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/,Du=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function Mu(e,t,n){let r=n==null?"":` (${n}-${n+t-1}): Read offset=${n} limit=${t} before editing`;return`${e}\u2026 ${t} ${t===1?"line":"lines"} folded${r} \u2026`}function Vn(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=Du.exec(e[n]);if(!r)continue;let s=Number(r[1])-1,o=n+1;for(;s>0&&o<e.length&&e[o]==="";)t[o]=!0,s-=1,o+=1;n=o-1}return t}function bt(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if($u.test(o)&&Ru.test(o)||Iu(o)||Ou.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,c=!1;for(;l<e.length&&l-s<200;)if(a+=Nu(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){c=!0;break}let u=l-s;if(c&&u<t){r.push(...e.slice(s,l)),s=l;continue}if(c&&u>=3){let f=u-2,d=/^\s*/.exec(e[s+1]??"")?.[0]??" ";r.push(o),r.push(Mu(d,f,n?s+2:null));for(let p=0;p<f-1;p++)r.push("");r.push(e[l-1]),s=l;continue}}r.push(o),s+=1}return r}var Fu=/\b(?:function|class|interface|import\s+|export\s+|def\s+|fn\s+|impl\s+|package\s+|namespace\s+|using\s+|#include|=>\s*\{|=\s*function)/;function Jt(e){let t=e.slice(0,4096);return!(!Fu.test(t)||t.split(`
19
- `).length<6)}var bo=/^\s*(?:\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?|\d{2}:\d{2}:\d{2}(?:\.\d+)?)\s*/,_o=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,xo=new RegExp(be.source,"i"),wo=/\bWARN(?:ING)?\b/i;function vo(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let s of e){if(_o.test(s.replace(bo,""))&&!xo.test(s)&&!wo.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var Lu=/^(?:DEBUG|INFO):[\w.-]+:/,ju=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Hu=8,go=1,yo=2;function ko(e){if(e.trim()===""||/^\s/.test(e)||xo.test(e)||wo.test(e)||ju.test(e))return null;let t=e.replace(bo,"");return _o.test(t)||Lu.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function So(e){let t=[],n=0;for(;n<e.length;){let r=ko(e[n]),s=n+1;if(r!==null)for(;s<e.length&&ko(e[s])===r;)s+=1;let o=s-n;r===null||o<Hu?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+go)),t.push(`\u2026 ${o-go-yo} similar log lines dropped \u2026`),t.push(...e.slice(s-yo,s))),n=s}return t}function Kt(e){if(e.length===0)return e;let t=[],n=1,r=e[0];for(let s=1;s<e.length;s++){if(e[s]===r){n+=1;continue}t.push(n>1?`${r} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1?`${r} \xD7${n}`:r),t}function Eo(e){let t=[],n=0;for(let r of e){if(r.trim()===""){n+=1;continue}n>0&&t.push(""),n=0,t.push(r)}return t}var To=new Map;function Z(e,t){To.set(e,t)}function $o(e){return To.get(e)}var Bu=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,zu=/^[./~][^\s]*:$/,Uu=String.raw`(?:[^\s\d]{3,}\s+\d{1,2}|\d{1,2}\s+[^\s\d]{3,})\s+(?:\d{1,2}:\d{2}|\d{4})|\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:\s+[+-]\d{4})?`,Zu=new RegExp(String.raw`^\S+\s+\d+\s+\S+\s+(?:\S+\s+)?(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${Uu})\s+(.+)$`),Gu={k:1,m:2,g:3,t:4,p:5},Wn=1e3;function Ju(e){if(e<1024)return String(e);let t=["K","M","G","T"],n=e/1024,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(1)}${t[r]}`}function Ku(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?Gu[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function Vu(e){let t=Zu.exec(e);if(!t)return null;let n=t[2].trim();if(n===""||n==="."||n==="..")return null;let r=t[1],s=/^\d+$/.test(r)?Ju(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:Ku(r),isDir:o}}function Wu(e){if(e.length<3)return null;let t=new Map;for(let s of e){let o=s.name.lastIndexOf(".");if(o<=0)continue;let i=s.name.slice(o);t.set(i,(t.get(i)??0)+1)}let n=null,r=0;for(let[s,o]of t)o>r&&(r=o,n=s);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}function qu(e){let t=[],n=[],r=!1;for(let f of e){if(f.trim()===""||/^total\s+\d+/.test(f))continue;if(zu.test(f.trim())||!Bu.test(f))return e;let d=Vu(f);if(!d){if(/\s\.\.?$/.test(f))continue;return e}r=!0,(d.isDir?t:n).push(d)}if(!r)return e;let s=(f,d)=>f.name.localeCompare(d.name);t.sort(s),n.sort((f,d)=>d.sizeKey-f.sizeKey||s(f,d));let o=[...t,...n],i=[];for(let f of o){let d=f.isDir?`${f.name}/`:f.name;i.push(f.isDir?d:`${d} ${f.size}`)}if(i.length>Wn){let f=i.length-Wn;i=[...i.slice(0,Wn),`\u2026 ${f} more lines omitted`]}let a=n.length===1?"file":"files",l=t.length===1?"dir":"dirs",c=Wu(n),u=`${n.length} ${a}, ${t.length} ${l}`+(c?` (${c})`:"");return i.push(u),i}Z("smart-ls",qu);Z("smart-read",e=>bt(e));var Ro=1e3;function Yu(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)break}return t.join("/")}function Xu(e){if(e.length<2||e.some(s=>s.startsWith('"')))return"";let t=e[0];for(let s of e.slice(1)){let o=0;for(;o<t.length&&o<s.length&&t[t.length-1-o]===s[s.length-1-o];)o+=1;if(t=t.slice(t.length-o),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(s=>s.length>r.length)?r:""}function Qu(e){let t=e.filter(c=>c.trim()!=="");if(t.length===0||t.filter(c=>!/\s/.test(c.trim())).length<t.length*.6)return e;let r=new Map,s=[],o=0;for(let c of t){let u=c.trim();if(u.startsWith("find:")){s.push(u);continue}let f=u.replace(/^\.\//,"").replace(/\/+$/,""),d=f.lastIndexOf("/"),p=d>=0?f.slice(0,d):"",h=d>=0?f.slice(d+1):f;if(!h)continue;let _=r.get(p)??[];_.push(/\s/.test(h)?`"${h}"`:h),r.set(p,_),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(c=>c!=="")?Yu(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let c of i){let u=a?c.slice(a.length).replace(/^\//,""):c,f=r.get(c),d=Xu(f),p=d?f.map(h=>h.slice(0,-d.length)):f;l.push(`${u?`${u}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${p.join(" ")}`)}if(l.length+s.length>Ro){let c=Math.max(0,Ro-s.length),u=l.length-c;return[...l.slice(0,c),`\u2026 ${u} more lines omitted`,...s]}return[...l,...s]}Z("smart-find",Qu);var qn=1e3,Ao=200,ef=60,tf=190,nf=/^([^\s:]+):(\d+):(.*)$/,rf=/^([^:]+?)-(\d+)-(.*)$/,sf=/^([^\s:]+):(.*)$/,Co=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function Io(e){let t=e.trim();return t.length>Ao?`${t.slice(0,Ao)}\u2026`:t}function of(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=tf&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function af(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)return""}return t?t.join("/"):""}function lf(e){let t=e.filter(p=>p.trim()!=="");if(t.length===0)return e;let n=new Map,r=new Map,s=null,o=0,i=0;for(let p of t){if(p==="--"){s&&n.get(s).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(p))return e;let h=nf.exec(p),_=rf.exec(p);if(h&&_)return e;let g=h||_?null:sf.exec(p),R=(h??_??g)?.[1];if(!R)return e;let E=h?{line:h[2],content:h[3],context:!1}:_?{line:_[2],content:_[3],context:!0}:{line:"",content:g[2],context:!1},O=n.get(R)??[];O.push(E),n.set(R,O),E.context||(o+=1,r.set(R,(r.get(R)??0)+1)),i+=1,s=R}if(n.size===i)return e;let a=[...n.keys()].sort((p,h)=>{let _=Co.test(p)?1:0,g=Co.test(h)?1:0;return _-g||(p<h?-1:p>h?1:0)}),l=a.length>1?af(a):"",c=p=>l?p.slice(l.length+1):p,u=[];for(let p of a){u.push(`${c(p)} (${r.get(p)??0}):`);for(let h of n.get(p))"separator"in h?u.push(" --"):h.line?u.push(` ${h.line}${h.context?"-":":"} ${Io(h.content)}`):u.push(` ${Io(h.content)}`)}let f=a.length>1&&u.length>ef?of(a.map(p=>`${c(p)} (${r.get(p)??0})`)):[],d=[`${o}m ${a.length}f${l?` in ${l}/`:""}:`,...f,"",...u];if(d.length>qn){let p=d.length-qn;return[...d.slice(0,qn),`\u2026 ${p} more lines omitted`]}return d}Z("smart-grep",lf);var Oo=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,cf=/^[|\\/* ._-]*$/,uf=/^ {4}/,ff=2;function df(e){if(!e.some(c=>Oo.test(c)))return e;let t=[],n=0,r=0,s=0,o="",i=!1,a=!1,l=()=>{r>0&&t.push(`${o} \u2026 ${r} ${r===1?"line":"lines"} folded \u2026`),r=0};for(let c of e){let u=c.slice(0,s),f=cf.test(u),d=f?c.slice(s):c,p=uf.test(d),h=i&&p?null:Oo.exec(c);if(h){l(),n=0,s=h[1]?.length??0,i=!0,a=!1,t.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(d)&&(a=!0),p&&!a&&!(s>0&&d.trim().length===0)){n+=1,n<=ff?t.push(c):(r+=1,o=f?u:"");continue}l(),t.push(c)}return l(),t}Z("smart-log",df);var pf=/^[\s=]+$/,mf=/^\s*=+\s+(.*?)\s+=+\s*$/,hf=512;Z("strip-banners",e=>{let t=[];for(let n of e){if(pf.test(n))continue;let r=n.length<=hf?mf.exec(n):null;t.push(r?r[1]:n)}return t});function gf(e){let t=[],n=0,r=0;for(;r<e.length;){let s=e[r].replace(/\s+$/,"");if(s===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let o=1;for(;r+o<e.length&&e[r+o].replace(/\s+$/,"")===s;)o+=1;if(o>=3)t.push(s),t.push(` \u2026 (repeated ${o}x)`);else for(let i=0;i<o;i++)t.push(s);r+=o}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}Z("squeeze-output",gf);function yf(e){return e==="compact"?.6:e==="minimal"?.3:1}var kf=20;function bf(e){let[t,n,r,s]=e.slice(-4);if(!t||!n||!r||!s||!/^\s*Test Files\s+([1-9]\d*) passed \(\1\)$/.test(t)||!/^\s*Tests\s+([1-9]\d*) passed \(\1\)$/.test(n)||!/^\s*Start at\s+\d{2}:\d{2}:\d{2}$/.test(r))return e;let o=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(s)?.[1];return o?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,o]:e}var Po=new WeakMap;function _f(e){let t=Po.get(e);if(t)return t;let n=e.strip_lines_matching.map(s=>new RegExp(s)),r={def:e,stripRegexes:n};return Po.set(e,r),r}function Vt(e,t,n={}){return Yn(e,t,n).text}function Yn(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&!t.transform&&!t.mask_abs_paths&&!t.fold_passing&&!t.truncate_lines_at&&!t.max_lines&&!t.on_empty&&!n.smartCode&&r==="normal")return{text:e,droppedTail:null};let s=_f(t),o=e;t.strip_ansi&&(o=oe(o));let i=o.endsWith(`
17
+ `:s}var su,eo,ro=ae(()=>{su=/^[a-z0-9-_]+$/i,eo=!!"".isWellFormed});var Jn={};Vr(Jn,{TomlDate:()=>Be,TomlError:()=>v,default:()=>uu,parse:()=>zn,stringify:()=>Gn});var uu,Kn=ae(()=>{Qs();ro();Mn();He();uu={parse:zn,stringify:Gn,TomlDate:Be,TomlError:v}});var cl=Wr(In(),1);var Zr=Wr(In(),1);import{existsSync as Yg,readFileSync as Xg,writeFileSync as Qg,mkdirSync as ey}from"node:fs";import{join as ty}from"node:path";import{fileURLToPath as ny}from"node:url";import{StringDecoder as ry}from"node:string_decoder";import{readdir as fu,readFile as du}from"node:fs/promises";import{join as oo,dirname as mu}from"node:path";import{fileURLToPath as pu}from"node:url";var y={};Vr(y,{BRAND:()=>mc,DIRTY:()=>Se,EMPTY_PATH:()=>Gl,INVALID:()=>w,NEVER:()=>Yc,OK:()=>j,ParseStatus:()=>L,Schema:()=>A,ZodAny:()=>ge,ZodArray:()=>fe,ZodBigInt:()=>Te,ZodBoolean:()=>$e,ZodBranded:()=>mt,ZodCatch:()=>Le,ZodDate:()=>Re,ZodDefault:()=>Fe,ZodDiscriminatedUnion:()=>Ht,ZodEffects:()=>Y,ZodEnum:()=>De,ZodError:()=>z,ZodFirstPartyTypeKind:()=>S,ZodFunction:()=>zt,ZodIntersection:()=>Oe,ZodIssueCode:()=>p,ZodLazy:()=>Pe,ZodLiteral:()=>Ne,ZodMap:()=>Qe,ZodNaN:()=>tt,ZodNativeEnum:()=>Me,ZodNever:()=>ee,ZodNull:()=>Ce,ZodNullable:()=>se,ZodNumber:()=>Ee,ZodObject:()=>U,ZodOptional:()=>W,ZodParsedType:()=>b,ZodPipeline:()=>pt,ZodPromise:()=>ye,ZodReadonly:()=>je,ZodRecord:()=>Bt,ZodSchema:()=>A,ZodSet:()=>et,ZodString:()=>he,ZodSymbol:()=>Ye,ZodTransformer:()=>Y,ZodTuple:()=>re,ZodType:()=>A,ZodUndefined:()=>Ae,ZodUnion:()=>Ie,ZodUnknown:()=>ue,ZodVoid:()=>Xe,addIssueToContext:()=>k,any:()=>wc,array:()=>Tc,bigint:()=>yc,boolean:()=>Ks,coerce:()=>qc,custom:()=>Zs,date:()=>kc,datetimeRegex:()=>zs,defaultErrorMap:()=>le,discriminatedUnion:()=>Cc,effect:()=>zc,enum:()=>jc,function:()=>Mc,getErrorMap:()=>Ve,getParsedType:()=>ne,instanceof:()=>hc,intersection:()=>Ic,isAborted:()=>Lt,isAsync:()=>We,isDirty:()=>jt,isValid:()=>pe,late:()=>pc,lazy:()=>Fc,literal:()=>Lc,makeIssue:()=>dt,map:()=>Nc,nan:()=>gc,nativeEnum:()=>Hc,never:()=>Sc,null:()=>xc,nullable:()=>Zc,number:()=>Js,object:()=>$c,objectUtil:()=>On,oboolean:()=>Wc,onumber:()=>Vc,optional:()=>Uc,ostring:()=>Kc,pipeline:()=>Jc,preprocess:()=>Gc,promise:()=>Bc,quotelessJson:()=>zl,record:()=>Pc,set:()=>Dc,setErrorMap:()=>Zl,strictObject:()=>Rc,string:()=>Gs,symbol:()=>bc,transformer:()=>zc,tuple:()=>Oc,undefined:()=>_c,union:()=>Ac,unknown:()=>vc,util:()=>I,void:()=>Ec});var I;(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},e.getValidEnumValues=s=>{let o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let o=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(let i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(I||(I={}));var On;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(On||(On={}));var b=I.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ne=e=>{switch(typeof e){case"undefined":return b.undefined;case"string":return b.string;case"number":return Number.isNaN(e)?b.nan:b.number;case"boolean":return b.boolean;case"function":return b.function;case"bigint":return b.bigint;case"symbol":return b.symbol;case"object":return Array.isArray(e)?b.array:e===null?b.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?b.promise:typeof Map<"u"&&e instanceof Map?b.map:typeof Set<"u"&&e instanceof Set?b.set:typeof Date<"u"&&e instanceof Date?b.date:b.object;default:return b.unknown}};var p=I.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),zl=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),z=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(o){return o.message},r={_errors:[]},s=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,l=0;for(;l<i.path.length;){let c=i.path[l];l===i.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(n(i))):a[c]=a[c]||{_errors:[]},a=a[c],l++}}};return s(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,I.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];n[o]=n[o]||[],n[o].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};z.create=e=>new z(e);var Ul=(e,t)=>{let n;switch(e.code){case p.invalid_type:e.received===b.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case p.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,I.jsonStringifyReplacer)}`;break;case p.unrecognized_keys:n=`Unrecognized key(s) in object: ${I.joinValues(e.keys,", ")}`;break;case p.invalid_union:n="Invalid input";break;case p.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${I.joinValues(e.options)}`;break;case p.invalid_enum_value:n=`Invalid enum value. Expected ${I.joinValues(e.options)}, received '${e.received}'`;break;case p.invalid_arguments:n="Invalid function arguments";break;case p.invalid_return_type:n="Invalid function return type";break;case p.invalid_date:n="Invalid date";break;case p.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:I.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case p.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case p.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case p.custom:n="Invalid input";break;case p.invalid_intersection_types:n="Intersection results could not be merged";break;case p.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case p.not_finite:n="Number must be finite";break;default:n=t.defaultError,I.assertNever(e)}return{message:n}},le=Ul;var Fs=le;function Zl(e){Fs=e}function Ve(){return Fs}var dt=e=>{let{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",l=r.filter(c=>!!c).slice().reverse();for(let c of l)a=c(i,{data:t,defaultError:a}).message;return{...s,path:o,message:a}},Gl=[];function k(e,t){let n=Ve(),r=dt({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===le?void 0:le].filter(s=>!!s)});e.common.issues.push(r)}var L=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let s of n){if(s.status==="aborted")return w;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let s of n){let o=await s.key,i=await s.value;r.push({key:o,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let s of n){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return w;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}},w=Object.freeze({status:"aborted"}),Se=e=>({status:"dirty",value:e}),j=e=>({status:"valid",value:e}),Lt=e=>e.status==="aborted",jt=e=>e.status==="dirty",pe=e=>e.status==="valid",We=e=>typeof Promise<"u"&&e instanceof Promise;var x;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(x||(x={}));var q=class{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Ls=(e,t)=>{if(pe(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new z(e.common.issues);return this._error=n,this._error}}};function $(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(i,a)=>{let{message:l}=e;return i.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:l??r??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:l??n??a.defaultError}},description:s}}var A=class{get description(){return this._def.description}_getType(t){return ne(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ne(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new L,ctx:{common:t.parent.common,data:t.data,parsedType:ne(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(We(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ne(t)},s=this._parseSync({data:t,path:r.path,parent:r});return Ls(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ne(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return pe(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>pe(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ne(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(We(s)?s:Promise.resolve(s));return Ls(r,o)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{let i=t(s),a=()=>o.addIssue({code:p.custom,...r(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new Y({schema:this,typeName:S.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return W.create(this,this._def)}nullable(){return se.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return fe.create(this)}promise(){return ye.create(this,this._def)}or(t){return Ie.create([this,t],this._def)}and(t){return Oe.create(this,t,this._def)}transform(t){return new Y({...$(this._def),schema:this,typeName:S.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Fe({...$(this._def),innerType:this,defaultValue:n,typeName:S.ZodDefault})}brand(){return new mt({typeName:S.ZodBranded,type:this,...$(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Le({...$(this._def),innerType:this,catchValue:n,typeName:S.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return pt.create(this,t)}readonly(){return je.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Jl=/^c[^\s-]{8,}$/i,Kl=/^[0-9a-z]+$/,Vl=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Wl=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,ql=/^[a-z0-9_-]{21}$/i,Yl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Xl=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Ql=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ec="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Pn,tc=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,nc=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,rc=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,sc=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,oc=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,ic=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Hs="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",ac=new RegExp(`^${Hs}$`);function Bs(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function lc(e){return new RegExp(`^${Bs(e)}$`)}function zs(e){let t=`${Hs}T${Bs(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function cc(e,t){return!!((t==="v4"||!t)&&tc.test(e)||(t==="v6"||!t)&&rc.test(e))}function uc(e,t){if(!Yl.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function fc(e,t){return!!((t==="v4"||!t)&&nc.test(e)||(t==="v6"||!t)&&sc.test(e))}var he=class e extends A{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==b.string){let o=this._getOrReturnCtx(t);return k(o,{code:p.invalid_type,expected:b.string,received:o.parsedType}),w}let r=new L,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:p.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:p.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=t.data.length>o.value,a=t.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(t,s),i?k(s,{code:p.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&k(s,{code:p.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Ql.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"email",code:p.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Pn||(Pn=new RegExp(ec,"u")),Pn.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"emoji",code:p.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Wl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"uuid",code:p.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")ql.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"nanoid",code:p.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")Jl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cuid",code:p.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")Kl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cuid2",code:p.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")Vl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"ulid",code:p.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),k(s,{validation:"url",code:p.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"regex",code:p.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(t,s),k(s,{code:p.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(s=this._getOrReturnCtx(t,s),k(s,{code:p.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),k(s,{code:p.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?zs(o).test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:p.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?ac.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:p.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?lc(o).test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:p.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?Xl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"duration",code:p.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?cc(t.data,o.version)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"ip",code:p.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?uc(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"jwt",code:p.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?fc(t.data,o.version)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cidr",code:p.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?oc.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"base64",code:p.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?ic.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"base64url",code:p.invalid_string,message:o.message}),r.dirty()):I.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:p.invalid_string,...x.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...x.errToObj(t)})}url(t){return this._addCheck({kind:"url",...x.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...x.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...x.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...x.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...x.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...x.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...x.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...x.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...x.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...x.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...x.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...x.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...x.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...x.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...x.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...x.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...x.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...x.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...x.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...x.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...x.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...x.errToObj(n)})}nonempty(t){return this.min(1,x.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};he.create=e=>new he({checks:[],typeName:S.ZodString,coerce:e?.coerce??!1,...$(e)});function dc(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=Number.parseInt(e.toFixed(s).replace(".","")),i=Number.parseInt(t.toFixed(s).replace(".",""));return o%i/10**s}var Ee=class e extends A{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==b.number){let o=this._getOrReturnCtx(t);return k(o,{code:p.invalid_type,expected:b.number,received:o.parsedType}),w}let r,s=new L;for(let o of this._def.checks)o.kind==="int"?I.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),k(r,{code:p.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:p.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:p.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?dc(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),k(r,{code:p.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),k(r,{code:p.not_finite,message:o.message}),s.dirty()):I.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,x.toString(n))}gt(t,n){return this.setLimit("min",t,!1,x.toString(n))}lte(t,n){return this.setLimit("max",t,!0,x.toString(n))}lt(t,n){return this.setLimit("max",t,!1,x.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:x.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:x.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:x.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:x.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:x.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:x.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:x.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:x.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:x.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:x.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&I.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}};Ee.create=e=>new Ee({checks:[],typeName:S.ZodNumber,coerce:e?.coerce||!1,...$(e)});var Te=class e extends A{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==b.bigint)return this._getInvalidInput(t);let r,s=new L;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:p.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:p.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),k(r,{code:p.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):I.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return k(n,{code:p.invalid_type,expected:b.bigint,received:n.parsedType}),w}gte(t,n){return this.setLimit("min",t,!0,x.toString(n))}gt(t,n){return this.setLimit("min",t,!1,x.toString(n))}lte(t,n){return this.setLimit("max",t,!0,x.toString(n))}lt(t,n){return this.setLimit("max",t,!1,x.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:x.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:x.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:x.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:x.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:x.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:x.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};Te.create=e=>new Te({checks:[],typeName:S.ZodBigInt,coerce:e?.coerce??!1,...$(e)});var $e=class extends A{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==b.boolean){let r=this._getOrReturnCtx(t);return k(r,{code:p.invalid_type,expected:b.boolean,received:r.parsedType}),w}return j(t.data)}};$e.create=e=>new $e({typeName:S.ZodBoolean,coerce:e?.coerce||!1,...$(e)});var Re=class e extends A{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==b.date){let o=this._getOrReturnCtx(t);return k(o,{code:p.invalid_type,expected:b.date,received:o.parsedType}),w}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return k(o,{code:p.invalid_date}),w}let r=new L,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:p.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:p.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):I.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:x.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:x.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}};Re.create=e=>new Re({checks:[],coerce:e?.coerce||!1,typeName:S.ZodDate,...$(e)});var Ye=class extends A{_parse(t){if(this._getType(t)!==b.symbol){let r=this._getOrReturnCtx(t);return k(r,{code:p.invalid_type,expected:b.symbol,received:r.parsedType}),w}return j(t.data)}};Ye.create=e=>new Ye({typeName:S.ZodSymbol,...$(e)});var Ae=class extends A{_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return k(r,{code:p.invalid_type,expected:b.undefined,received:r.parsedType}),w}return j(t.data)}};Ae.create=e=>new Ae({typeName:S.ZodUndefined,...$(e)});var Ce=class extends A{_parse(t){if(this._getType(t)!==b.null){let r=this._getOrReturnCtx(t);return k(r,{code:p.invalid_type,expected:b.null,received:r.parsedType}),w}return j(t.data)}};Ce.create=e=>new Ce({typeName:S.ZodNull,...$(e)});var ge=class extends A{constructor(){super(...arguments),this._any=!0}_parse(t){return j(t.data)}};ge.create=e=>new ge({typeName:S.ZodAny,...$(e)});var ue=class extends A{constructor(){super(...arguments),this._unknown=!0}_parse(t){return j(t.data)}};ue.create=e=>new ue({typeName:S.ZodUnknown,...$(e)});var ee=class extends A{_parse(t){let n=this._getOrReturnCtx(t);return k(n,{code:p.invalid_type,expected:b.never,received:n.parsedType}),w}};ee.create=e=>new ee({typeName:S.ZodNever,...$(e)});var Xe=class extends A{_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return k(r,{code:p.invalid_type,expected:b.void,received:r.parsedType}),w}return j(t.data)}};Xe.create=e=>new Xe({typeName:S.ZodVoid,...$(e)});var fe=class e extends A{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==b.array)return k(n,{code:p.invalid_type,expected:b.array,received:n.parsedType}),w;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(k(n,{code:i?p.too_big:p.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(k(n,{code:p.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(k(n,{code:p.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new q(n,i,n.path,a)))).then(i=>L.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new q(n,i,n.path,a)));return L.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:x.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:x.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:x.toString(n)}})}nonempty(t){return this.min(1,t)}};fe.create=(e,t)=>new fe({type:e,minLength:null,maxLength:null,exactLength:null,typeName:S.ZodArray,...$(t)});function qe(e){if(e instanceof U){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=W.create(qe(r))}return new U({...e._def,shape:()=>t})}else return e instanceof fe?new fe({...e._def,type:qe(e.element)}):e instanceof W?W.create(qe(e.unwrap())):e instanceof se?se.create(qe(e.unwrap())):e instanceof re?re.create(e.items.map(t=>qe(t))):e}var U=class e extends A{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=I.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==b.object){let c=this._getOrReturnCtx(t);return k(c,{code:p.invalid_type,expected:b.object,received:c.parsedType}),w}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof ee&&this._def.unknownKeys==="strip"))for(let c in s.data)i.includes(c)||a.push(c);let l=[];for(let c of i){let u=o[c],f=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new q(s,f,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof ee){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of a)l.push({key:{status:"valid",value:u},value:{status:"valid",value:s.data[u]}});else if(c==="strict")a.length>0&&(k(s,{code:p.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let u of a){let f=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new q(s,f,s.path,u)),alwaysSet:u in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let f=await u.key,d=await u.value;c.push({key:f,value:d,alwaysSet:u.alwaysSet})}return c}).then(c=>L.mergeObjectSync(r,c)):L.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return x.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:x.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:S.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of I.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of I.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return qe(this)}partial(t){let n={};for(let r of I.objectKeys(this.shape)){let s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of I.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof W;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return Us(I.objectKeys(this.shape))}};U.create=(e,t)=>new U({shape:()=>e,unknownKeys:"strip",catchall:ee.create(),typeName:S.ZodObject,...$(t)});U.strictCreate=(e,t)=>new U({shape:()=>e,unknownKeys:"strict",catchall:ee.create(),typeName:S.ZodObject,...$(t)});U.lazycreate=(e,t)=>new U({shape:e,unknownKeys:"strip",catchall:ee.create(),typeName:S.ZodObject,...$(t)});var Ie=class extends A{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new z(a.ctx.common.issues));return k(n,{code:p.invalid_union,unionErrors:i}),w}if(n.common.async)return Promise.all(r.map(async o=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let l of r){let c={...n,common:{...n.common,issues:[]},parent:null},u=l._parseSync({data:n.data,path:n.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!o&&(o={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(l=>new z(l));return k(n,{code:p.invalid_union,unionErrors:a}),w}}get options(){return this._def.options}};Ie.create=(e,t)=>new Ie({options:e,typeName:S.ZodUnion,...$(t)});var ce=e=>e instanceof Pe?ce(e.schema):e instanceof Y?ce(e.innerType()):e instanceof Ne?[e.value]:e instanceof De?e.options:e instanceof Me?I.objectValues(e.enum):e instanceof Fe?ce(e._def.innerType):e instanceof Ae?[void 0]:e instanceof Ce?[null]:e instanceof W?[void 0,...ce(e.unwrap())]:e instanceof se?[null,...ce(e.unwrap())]:e instanceof mt||e instanceof je?ce(e.unwrap()):e instanceof Le?ce(e._def.innerType):[],Ht=class e extends A{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.object)return k(n,{code:p.invalid_type,expected:b.object,received:n.parsedType}),w;let r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(k(n,{code:p.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),w)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let s=new Map;for(let o of n){let i=ce(o.shape[t]);if(!i.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of i){if(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new e({typeName:S.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...$(r)})}};function Nn(e,t){let n=ne(e),r=ne(t);if(e===t)return{valid:!0,data:e};if(n===b.object&&r===b.object){let s=I.objectKeys(t),o=I.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Nn(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===b.array&&r===b.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let o=0;o<e.length;o++){let i=e[o],a=t[o],l=Nn(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===b.date&&r===b.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var Oe=class extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(Lt(o)||Lt(i))return w;let a=Nn(o.value,i.value);return a.valid?((jt(o)||jt(i))&&n.dirty(),{status:n.value,value:a.data}):(k(r,{code:p.invalid_intersection_types}),w)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Oe.create=(e,t,n)=>new Oe({left:e,right:t,typeName:S.ZodIntersection,...$(n)});var re=class e extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.array)return k(r,{code:p.invalid_type,expected:b.array,received:r.parsedType}),w;if(r.data.length<this._def.items.length)return k(r,{code:p.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),w;!this._def.rest&&r.data.length>this._def.items.length&&(k(r,{code:p.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new q(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>L.mergeArray(n,i)):L.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};re.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new re({items:e,typeName:S.ZodTuple,rest:null,...$(t)})};var Bt=class e extends A{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.object)return k(r,{code:p.invalid_type,expected:b.object,received:r.parsedType}),w;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new q(r,a,r.path,a)),value:i._parse(new q(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?L.mergeObjectAsync(n,s):L.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof A?new e({keyType:t,valueType:n,typeName:S.ZodRecord,...$(r)}):new e({keyType:he.create(),valueType:t,typeName:S.ZodRecord,...$(n)})}},Qe=class extends A{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.map)return k(r,{code:p.invalid_type,expected:b.map,received:r.parsedType}),w;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],c)=>({key:s._parse(new q(r,a,r.path,[c,"key"])),value:o._parse(new q(r,l,r.path,[c,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return w;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return w;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}}}};Qe.create=(e,t,n)=>new Qe({valueType:t,keyType:e,typeName:S.ZodMap,...$(n)});var et=class e extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.set)return k(r,{code:p.invalid_type,expected:b.set,received:r.parsedType}),w;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(k(r,{code:p.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(k(r,{code:p.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let o=this._def.valueType;function i(l){let c=new Set;for(let u of l){if(u.status==="aborted")return w;u.status==="dirty"&&n.dirty(),c.add(u.value)}return{status:n.value,value:c}}let a=[...r.data.values()].map((l,c)=>o._parse(new q(r,l,r.path,c)));return r.common.async?Promise.all(a).then(l=>i(l)):i(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:x.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:x.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};et.create=(e,t)=>new et({valueType:e,minSize:null,maxSize:null,typeName:S.ZodSet,...$(t)});var zt=class e extends A{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.function)return k(n,{code:p.invalid_type,expected:b.function,received:n.parsedType}),w;function r(a,l){return dt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ve(),le].filter(c=>!!c),issueData:{code:p.invalid_arguments,argumentsError:l}})}function s(a,l){return dt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ve(),le].filter(c=>!!c),issueData:{code:p.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof ye){let a=this;return j(async function(...l){let c=new z([]),u=await a._def.args.parseAsync(l,o).catch(m=>{throw c.addIssue(r(l,m)),c}),f=await Reflect.apply(i,this,u);return await a._def.returns._def.type.parseAsync(f,o).catch(m=>{throw c.addIssue(s(f,m)),c})})}else{let a=this;return j(function(...l){let c=a._def.args.safeParse(l,o);if(!c.success)throw new z([r(l,c.error)]);let u=Reflect.apply(i,this,c.data),f=a._def.returns.safeParse(u,o);if(!f.success)throw new z([s(u,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:re.create(t).rest(ue.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||re.create([]).rest(ue.create()),returns:n||ue.create(),typeName:S.ZodFunction,...$(r)})}},Pe=class extends A{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};Pe.create=(e,t)=>new Pe({getter:e,typeName:S.ZodLazy,...$(t)});var Ne=class extends A{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return k(n,{received:n.data,code:p.invalid_literal,expected:this._def.value}),w}return{status:"valid",value:t.data}}get value(){return this._def.value}};Ne.create=(e,t)=>new Ne({value:e,typeName:S.ZodLiteral,...$(t)});function Us(e,t){return new De({values:e,typeName:S.ZodEnum,...$(t)})}var De=class e extends A{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return k(n,{expected:I.joinValues(r),received:n.parsedType,code:p.invalid_type}),w}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return k(n,{received:n.data,code:p.invalid_enum_value,options:r}),w}return j(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};De.create=Us;var Me=class extends A{_parse(t){let n=I.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==b.string&&r.parsedType!==b.number){let s=I.objectValues(n);return k(r,{expected:I.joinValues(s),received:r.parsedType,code:p.invalid_type}),w}if(this._cache||(this._cache=new Set(I.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=I.objectValues(n);return k(r,{received:r.data,code:p.invalid_enum_value,options:s}),w}return j(t.data)}get enum(){return this._def.values}};Me.create=(e,t)=>new Me({values:e,typeName:S.ZodNativeEnum,...$(t)});var ye=class extends A{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.promise&&n.common.async===!1)return k(n,{code:p.invalid_type,expected:b.promise,received:n.parsedType}),w;let r=n.parsedType===b.promise?n.data:Promise.resolve(n.data);return j(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};ye.create=(e,t)=>new ye({type:e,typeName:S.ZodPromise,...$(t)});var Y=class extends A{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===S.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,o={addIssue:i=>{k(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(r.data,o);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return w;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?w:l.status==="dirty"?Se(l.value):n.value==="dirty"?Se(l.value):l});{if(n.value==="aborted")return w;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?w:a.status==="dirty"?Se(a.value):n.value==="dirty"?Se(a.value):a}}if(s.type==="refinement"){let i=a=>{let l=s.refinement(a,o);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?w:(a.status==="dirty"&&n.dirty(),i(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?w:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!pe(i))return w;let a=s.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>pe(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):w);I.assertNever(s)}};Y.create=(e,t,n)=>new Y({schema:e,typeName:S.ZodEffects,effect:t,...$(n)});Y.createWithPreprocess=(e,t,n)=>new Y({schema:t,effect:{type:"preprocess",transform:e},typeName:S.ZodEffects,...$(n)});var W=class extends A{_parse(t){return this._getType(t)===b.undefined?j(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};W.create=(e,t)=>new W({innerType:e,typeName:S.ZodOptional,...$(t)});var se=class extends A{_parse(t){return this._getType(t)===b.null?j(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};se.create=(e,t)=>new se({innerType:e,typeName:S.ZodNullable,...$(t)});var Fe=class extends A{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===b.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Fe.create=(e,t)=>new Fe({innerType:e,typeName:S.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...$(t)});var Le=class extends A{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return We(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new z(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new z(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Le.create=(e,t)=>new Le({innerType:e,typeName:S.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...$(t)});var tt=class extends A{_parse(t){if(this._getType(t)!==b.nan){let r=this._getOrReturnCtx(t);return k(r,{code:p.invalid_type,expected:b.nan,received:r.parsedType}),w}return{status:"valid",value:t.data}}};tt.create=e=>new tt({typeName:S.ZodNaN,...$(e)});var mc=Symbol("zod_brand"),mt=class extends A{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},pt=class e extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?w:o.status==="dirty"?(n.dirty(),Se(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?w:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:S.ZodPipeline})}},je=class extends A{_parse(t){let n=this._def.innerType._parse(t),r=s=>(pe(s)&&(s.value=Object.freeze(s.value)),s);return We(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};je.create=(e,t)=>new je({innerType:e,typeName:S.ZodReadonly,...$(t)});function js(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function Zs(e,t={},n){return e?ge.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=js(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=js(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):ge.create()}var pc={object:U.lazycreate},S;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(S||(S={}));var hc=(e,t={message:`Input not instance of ${e.name}`})=>Zs(n=>n instanceof e,t),Gs=he.create,Js=Ee.create,gc=tt.create,yc=Te.create,Ks=$e.create,kc=Re.create,bc=Ye.create,_c=Ae.create,xc=Ce.create,wc=ge.create,vc=ue.create,Sc=ee.create,Ec=Xe.create,Tc=fe.create,$c=U.create,Rc=U.strictCreate,Ac=Ie.create,Cc=Ht.create,Ic=Oe.create,Oc=re.create,Pc=Bt.create,Nc=Qe.create,Dc=et.create,Mc=zt.create,Fc=Pe.create,Lc=Ne.create,jc=De.create,Hc=Me.create,Bc=ye.create,zc=Y.create,Uc=W.create,Zc=se.create,Gc=Y.createWithPreprocess,Jc=pt.create,Kc=()=>Gs().optional(),Vc=()=>Js().optional(),Wc=()=>Ks().optional(),qc={string:(e=>he.create({...e,coerce:!0})),number:(e=>Ee.create({...e,coerce:!0})),boolean:(e=>$e.create({...e,coerce:!0})),bigint:(e=>Te.create({...e,coerce:!0})),date:(e=>Re.create({...e,coerce:!0}))};var Yc=w;var ke=y.object({slug:y.string().min(1).max(64),description:y.string().max(255).optional(),match_command:y.string().min(1),priority:y.number().int().default(50),strip_ansi:y.boolean().default(!1),strip_lines_matching:y.array(y.string()).default([]),keep_failures:y.boolean().default(!1),strip_on_failure:y.boolean().default(!1),fold_passing:y.boolean().default(!1),fold_passing_threshold:y.number().int().positive().max(1e3).optional(),mask_abs_paths:y.boolean().default(!1),preserve_exact:y.boolean().default(!1),truncate_lines_at:y.number().int().positive().max(1e4).optional(),max_lines:y.number().int().positive().max(1e5).optional(),scale_with_level:y.boolean().default(!0),transform:y.string().max(64).optional(),on_empty:y.string().max(255).optional()});var hu=mu(pu(import.meta.url)),gu=process.env.TOKMIZER_FILTERS_DIR||oo(hu,"..","..","filters"),nt=null,so=!1;function yu(){return process.env.TOKMIZER_DEV==="1"||process.env.TOKMIZER_DEV==="true"}async function io(){return nt||(yu()?(nt=await ku(gu),nt):(!so&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
18
+ `),so=!0),nt=new Map,nt))}async function ku(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(Kn(),Jn))).parse,r=(await fu(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await du(oo(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,c]of Object.entries(a)){let u=ke.parse({slug:l,...c});t.set(l,{...u,matchRegex:new RegExp(u.match_command)})}}return t}import{createHash as bu}from"node:crypto";var _u=y.enum(["normal","compact","minimal"]),xu=y.enum(["off","light","balanced","max"]),kt=y.object({enabled:y.boolean().default(!0),telemetryOptIn:y.boolean().default(!0),outputVerbosity:_u.default("compact"),reducer:xu.default("off"),filters:y.object({enableAll:y.boolean().default(!0),disabled:y.array(y.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),ao=new Map;function X(e){let t=ao.get(e);return t||(t=bu("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),ao.set(e,t)),t}var lo=new WeakMap,wu=256;function rt(e,t,n,r=t){let s=lo.get(r);s||(s=new Map,lo.set(r,s));let o=JSON.stringify([e,n?[...n].sort():null]),i=s.get(o);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(X(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=wu){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as wf,readFile as Lo,writeFile as Tb,mkdir as $b,rename as Rb}from"node:fs/promises";import{readdirSync as vf,statSync as Do}from"node:fs";import{createHash as Sf}from"node:crypto";import{basename as Ob,join as Xt}from"node:path";var vu=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Su=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function oe(e){return e.replace(vu,"").replace(Su,"")}function co(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}function uo(e,t){return e.map(n=>{if(n.length<=t)return n;let r=n.charCodeAt(t-1),s=n.charCodeAt(t),o=r>=55296&&r<=56319&&s>=56320&&s<=57343?t-1:t;return`${n.slice(0,o)}\u2026`})}function st(e){return`\u2026 (${e} more lines omitted)`}function fo(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,s=e.slice(n,e.length-r);return{kept:[...e.slice(0,n),st(s.length),...e.slice(e.length-r)],dropped:s}}var Eu=/^\s*(?:[✓✔√]|ok )/,be=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function mo(e,t){let n=t>0?t:5,r=[],s=0,o=a=>{s>=n?r.push(`\u2026 ${s} passing checks folded \u2026`):r.push(...a)},i=[];for(let a of e)Eu.test(a)&&!be.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Tu=/(?:\/[\w.@+-]+){3,}/g;function po(e){return e.map(t=>t.replace(Tu,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var $u=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Ru=/\{\s*$/;var Au=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Cu=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function Iu(e){let t=Au.exec(e);return!t||Cu.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var Ou=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function Pu(e,t,n){let r=t;for(;r<e.length;){if(e[r]==="\\"){r+=2;continue}if(e[r]===n)return!0;r+=1}return!1}function Nu(e,t){let n=0,r=null,s=0;for(;s<e.length;){let o=e[s];if(t.inBlockComment){if(o==="*"&&e[s+1]==="/"){t.inBlockComment=!1,s+=2;continue}s+=1;continue}if(t.inTemplate){if(o==="\\"){s+=2;continue}o==="`"&&(t.inTemplate=!1),s+=1;continue}if(r){if(o==="\\"){s+=2;continue}o===r&&(r=null),s+=1;continue}if(o==="/"&&e[s+1]==="/")break;if(o==="/"&&e[s+1]==="*"){t.inBlockComment=!0,s+=2;continue}if(o==="`"){t.inTemplate=!0,s+=1;continue}if(o==="'"||o==='"'){let i=s>0?e[s-1]:"";!(o==="'"&&(i==="<"||i==="&"))&&Pu(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}var ho=/^\s*… \d+ lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/,Du=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function Mu(e,t,n){let r=n==null?"":` (${n}-${n+t-1}): Read offset=${n} limit=${t} before editing`;return`${e}\u2026 ${t} ${t===1?"line":"lines"} folded${r} \u2026`}function Vn(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=Du.exec(e[n]);if(!r)continue;let s=Number(r[1])-1,o=n+1;for(;s>0&&o<e.length&&e[o]==="";)t[o]=!0,s-=1,o+=1;n=o-1}return t}function bt(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if($u.test(o)&&Ru.test(o)||Iu(o)||Ou.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,c=!1;for(;l<e.length&&l-s<200;)if(a+=Nu(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){c=!0;break}let u=l-s;if(c&&u<t){r.push(...e.slice(s,l)),s=l;continue}if(c&&u>=3){let f=u-2,d=/^\s*/.exec(e[s+1]??"")?.[0]??" ";r.push(o),r.push(Mu(d,f,n?s+2:null));for(let m=0;m<f-1;m++)r.push("");r.push(e[l-1]),s=l;continue}}r.push(o),s+=1}return r}var Fu=/\b(?:function|class|interface|import\s+|export\s+|def\s+|fn\s+|impl\s+|package\s+|namespace\s+|using\s+|#include|=>\s*\{|=\s*function)/;function Jt(e){let t=e.slice(0,4096);return!(!Fu.test(t)||t.split(`
19
+ `).length<6)}var bo=/^\s*(?:\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?|\d{2}:\d{2}:\d{2}(?:\.\d+)?)\s*/,_o=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,xo=new RegExp(be.source,"i"),wo=/\bWARN(?:ING)?\b/i;function vo(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let s of e){if(_o.test(s.replace(bo,""))&&!xo.test(s)&&!wo.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var Lu=/^(?:DEBUG|INFO):[\w.-]+:/,ju=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Hu=8,go=1,yo=2;function ko(e){if(e.trim()===""||/^\s/.test(e)||xo.test(e)||wo.test(e)||ju.test(e))return null;let t=e.replace(bo,"");return _o.test(t)||Lu.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function So(e){let t=[],n=0;for(;n<e.length;){let r=ko(e[n]),s=n+1;if(r!==null)for(;s<e.length&&ko(e[s])===r;)s+=1;let o=s-n;r===null||o<Hu?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+go)),t.push(`\u2026 ${o-go-yo} similar log lines dropped \u2026`),t.push(...e.slice(s-yo,s))),n=s}return t}function Kt(e){if(e.length===0)return e;let t=[],n=1,r=e[0];for(let s=1;s<e.length;s++){if(e[s]===r){n+=1;continue}t.push(n>1?`${r} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1?`${r} \xD7${n}`:r),t}function Eo(e){let t=[],n=0;for(let r of e){if(r.trim()===""){n+=1;continue}n>0&&t.push(""),n=0,t.push(r)}return t}var To=new Map;function Z(e,t){To.set(e,t)}function $o(e){return To.get(e)}var Bu=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,zu=/^[./~][^\s]*:$/,Uu=String.raw`(?:[^\s\d]{3,}\s+\d{1,2}|\d{1,2}\s+[^\s\d]{3,})\s+(?:\d{1,2}:\d{2}|\d{4})|\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:\s+[+-]\d{4})?`,Zu=new RegExp(String.raw`^\S+\s+\d+\s+\S+\s+(?:\S+\s+)?(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${Uu})\s+(.+)$`),Gu={k:1,m:2,g:3,t:4,p:5},Wn=1e3;function Ju(e){if(e<1024)return String(e);let t=["K","M","G","T"],n=e/1024,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(1)}${t[r]}`}function Ku(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?Gu[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function Vu(e){let t=Zu.exec(e);if(!t)return null;let n=t[2].trim();if(n===""||n==="."||n==="..")return null;let r=t[1],s=/^\d+$/.test(r)?Ju(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:Ku(r),isDir:o}}function Wu(e){if(e.length<3)return null;let t=new Map;for(let s of e){let o=s.name.lastIndexOf(".");if(o<=0)continue;let i=s.name.slice(o);t.set(i,(t.get(i)??0)+1)}let n=null,r=0;for(let[s,o]of t)o>r&&(r=o,n=s);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}function qu(e){let t=[],n=[],r=!1;for(let f of e){if(f.trim()===""||/^total\s+\d+/.test(f))continue;if(zu.test(f.trim())||!Bu.test(f))return e;let d=Vu(f);if(!d){if(/\s\.\.?$/.test(f))continue;return e}r=!0,(d.isDir?t:n).push(d)}if(!r)return e;let s=(f,d)=>f.name.localeCompare(d.name);t.sort(s),n.sort((f,d)=>d.sizeKey-f.sizeKey||s(f,d));let o=[...t,...n],i=[];for(let f of o){let d=f.isDir?`${f.name}/`:f.name;i.push(f.isDir?d:`${d} ${f.size}`)}if(i.length>Wn){let f=i.length-Wn;i=[...i.slice(0,Wn),`\u2026 ${f} more lines omitted`]}let a=n.length===1?"file":"files",l=t.length===1?"dir":"dirs",c=Wu(n),u=`${n.length} ${a}, ${t.length} ${l}`+(c?` (${c})`:"");return i.push(u),i}Z("smart-ls",qu);Z("smart-read",e=>bt(e));var Ro=1e3;function Yu(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)break}return t.join("/")}function Xu(e){if(e.length<2||e.some(s=>s.startsWith('"')))return"";let t=e[0];for(let s of e.slice(1)){let o=0;for(;o<t.length&&o<s.length&&t[t.length-1-o]===s[s.length-1-o];)o+=1;if(t=t.slice(t.length-o),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(s=>s.length>r.length)?r:""}function Qu(e){let t=e.filter(c=>c.trim()!=="");if(t.length===0||t.filter(c=>!/\s/.test(c.trim())).length<t.length*.6)return e;let r=new Map,s=[],o=0;for(let c of t){let u=c.trim();if(u.startsWith("find:")){s.push(u);continue}let f=u.replace(/^\.\//,"").replace(/\/+$/,""),d=f.lastIndexOf("/"),m=d>=0?f.slice(0,d):"",h=d>=0?f.slice(d+1):f;if(!h)continue;let _=r.get(m)??[];_.push(/\s/.test(h)?`"${h}"`:h),r.set(m,_),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(c=>c!=="")?Yu(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let c of i){let u=a?c.slice(a.length).replace(/^\//,""):c,f=r.get(c),d=Xu(f),m=d?f.map(h=>h.slice(0,-d.length)):f;l.push(`${u?`${u}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${m.join(" ")}`)}if(l.length+s.length>Ro){let c=Math.max(0,Ro-s.length),u=l.length-c;return[...l.slice(0,c),`\u2026 ${u} more lines omitted`,...s]}return[...l,...s]}Z("smart-find",Qu);var qn=1e3,Ao=200,ef=60,tf=190,nf=/^([^\s:]+):(\d+):(.*)$/,rf=/^([^:]+?)-(\d+)-(.*)$/,sf=/^([^\s:]+):(.*)$/,Co=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function Io(e){let t=e.trim();return t.length>Ao?`${t.slice(0,Ao)}\u2026`:t}function of(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=tf&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function af(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)return""}return t?t.join("/"):""}function lf(e){let t=e.filter(m=>m.trim()!=="");if(t.length===0)return e;let n=new Map,r=new Map,s=null,o=0,i=0;for(let m of t){if(m==="--"){s&&n.get(s).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(m))return e;let h=nf.exec(m),_=rf.exec(m);if(h&&_)return e;let g=h||_?null:sf.exec(m),R=(h??_??g)?.[1];if(!R)return e;let E=h?{line:h[2],content:h[3],context:!1}:_?{line:_[2],content:_[3],context:!0}:{line:"",content:g[2],context:!1},O=n.get(R)??[];O.push(E),n.set(R,O),E.context||(o+=1,r.set(R,(r.get(R)??0)+1)),i+=1,s=R}if(n.size===i)return e;let a=[...n.keys()].sort((m,h)=>{let _=Co.test(m)?1:0,g=Co.test(h)?1:0;return _-g||(m<h?-1:m>h?1:0)}),l=a.length>1?af(a):"",c=m=>l?m.slice(l.length+1):m,u=[];for(let m of a){u.push(`${c(m)} (${r.get(m)??0}):`);for(let h of n.get(m))"separator"in h?u.push(" --"):h.line?u.push(` ${h.line}${h.context?"-":":"} ${Io(h.content)}`):u.push(` ${Io(h.content)}`)}let f=a.length>1&&u.length>ef?of(a.map(m=>`${c(m)} (${r.get(m)??0})`)):[],d=[`${o}m ${a.length}f${l?` in ${l}/`:""}:`,...f,"",...u];if(d.length>qn){let m=d.length-qn;return[...d.slice(0,qn),`\u2026 ${m} more lines omitted`]}return d}Z("smart-grep",lf);var Oo=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,cf=/^[|\\/* ._-]*$/,uf=/^ {4}/,ff=2;function df(e){if(!e.some(c=>Oo.test(c)))return e;let t=[],n=0,r=0,s=0,o="",i=!1,a=!1,l=()=>{r>0&&t.push(`${o} \u2026 ${r} ${r===1?"line":"lines"} folded \u2026`),r=0};for(let c of e){let u=c.slice(0,s),f=cf.test(u),d=f?c.slice(s):c,m=uf.test(d),h=i&&m?null:Oo.exec(c);if(h){l(),n=0,s=h[1]?.length??0,i=!0,a=!1,t.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(d)&&(a=!0),m&&!a&&!(s>0&&d.trim().length===0)){n+=1,n<=ff?t.push(c):(r+=1,o=f?u:"");continue}l(),t.push(c)}return l(),t}Z("smart-log",df);var mf=/^[\s=]+$/,pf=/^\s*=+\s+(.*?)\s+=+\s*$/,hf=512;Z("strip-banners",e=>{let t=[];for(let n of e){if(mf.test(n))continue;let r=n.length<=hf?pf.exec(n):null;t.push(r?r[1]:n)}return t});function gf(e){let t=[],n=0,r=0;for(;r<e.length;){let s=e[r].replace(/\s+$/,"");if(s===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let o=1;for(;r+o<e.length&&e[r+o].replace(/\s+$/,"")===s;)o+=1;if(o>=3)t.push(s),t.push(` \u2026 (repeated ${o}x)`);else for(let i=0;i<o;i++)t.push(s);r+=o}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}Z("squeeze-output",gf);function yf(e){return e==="compact"?.6:e==="minimal"?.3:1}var kf=20;function bf(e){let[t,n,r,s]=e.slice(-4);if(!t||!n||!r||!s||!/^\s*Test Files\s+([1-9]\d*) passed \(\1\)$/.test(t)||!/^\s*Tests\s+([1-9]\d*) passed \(\1\)$/.test(n)||!/^\s*Start at\s+\d{2}:\d{2}:\d{2}$/.test(r))return e;let o=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(s)?.[1];return o?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,o]:e}var Po=new WeakMap;function _f(e){let t=Po.get(e);if(t)return t;let n=e.strip_lines_matching.map(s=>new RegExp(s)),r={def:e,stripRegexes:n};return Po.set(e,r),r}function Vt(e,t,n={}){return Yn(e,t,n).text}function Yn(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&!t.transform&&!t.mask_abs_paths&&!t.fold_passing&&!t.truncate_lines_at&&!t.max_lines&&!t.on_empty&&!n.smartCode&&r==="normal")return{text:e,droppedTail:null};let s=_f(t),o=e;t.strip_ansi&&(o=oe(o));let i=o.endsWith(`
20
20
  `),a=(i?o.slice(0,-1):o).split(`
21
- `);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>be.test(d)||!s.stripRegexes.some(p=>p.test(d))):co(a,s.stripRegexes)),r!=="normal"&&!t.preserve_exact&&(a=Kt(a),a=Eo(a)),r==="minimal"&&!t.preserve_exact&&(a=vo(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=bf(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;if(!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&Jt(o))&&(a=bt(a,l)),t.transform){let d=$o(t.transform);t.transform==="smart-read"?a=bt(a,l,t.slug==="read-tool"):d&&(a=d(a))}let c=t.slug==="read-tool";if(!c){let d=Vn(a);d.some(Boolean)&&(a=a.filter((p,h)=>!d[h]))}t.mask_abs_paths&&(a=mo(a)),t.fold_passing&&(a=po(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=uo(a,t.truncate_lines_at));let u=null;if(t.max_lines){let d=t.scale_with_level?yf(n.verbosity):1,p=Math.min(t.max_lines,Math.max(kf,Math.round(t.max_lines*d))),h=c?Vn(a):null,_=h?h.filter(g=>!g).length:a.length;if(_>p){let g=p;if(h){let E=0;for(g=0;g<a.length&&E<p;)h[g]||(E+=1),g+=1}let R=_-p;if(t.keep_failures){let E=a.slice(g),O=E.filter(N=>!be.test(N)),C=E.reduce((N,D,F)=>N+(!be.test(D)&&!h?.[g+F]?1:0),0);u=O.length>0?O.join(`
21
+ `);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>be.test(d)||!s.stripRegexes.some(m=>m.test(d))):co(a,s.stripRegexes)),r!=="normal"&&!t.preserve_exact&&(a=Kt(a),a=Eo(a)),r==="minimal"&&!t.preserve_exact&&(a=vo(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=bf(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;if(!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&Jt(o))&&(a=bt(a,l)),t.transform){let d=$o(t.transform);t.transform==="smart-read"?a=bt(a,l,t.slug==="read-tool"):d&&(a=d(a))}let c=t.slug==="read-tool";if(!c){let d=Vn(a);d.some(Boolean)&&(a=a.filter((m,h)=>!d[h]))}t.mask_abs_paths&&(a=po(a)),t.fold_passing&&(a=mo(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=uo(a,t.truncate_lines_at));let u=null;if(t.max_lines){let d=t.scale_with_level?yf(n.verbosity):1,m=Math.min(t.max_lines,Math.max(kf,Math.round(t.max_lines*d))),h=c?Vn(a):null,_=h?h.filter(g=>!g).length:a.length;if(_>m){let g=m;if(h){let E=0;for(g=0;g<a.length&&E<m;)h[g]||(E+=1),g+=1}let R=_-m;if(t.keep_failures){let E=a.slice(g),O=E.filter(N=>!be.test(N)),C=E.reduce((N,D,F)=>N+(!be.test(D)&&!h?.[g+F]?1:0),0);u=O.length>0?O.join(`
22
22
  `):null,a=[...a.slice(0,g),...C>0?[st(C)]:[],...E.filter(N=>be.test(N))]}else if(c)u=a.slice(g).join(`
23
- `),a=[...a.slice(0,g),st(R)];else{let{kept:E,dropped:O}=fo(a,p);u=O.length>0?O.join(`
23
+ `),a=[...a.slice(0,g),st(R)];else{let{kept:E,dropped:O}=fo(a,m);u=O.length>0?O.join(`
24
24
  `):null,a=E}}}let f=a.join(`
25
25
  `);return i&&f.length>0&&(f+=`
26
26
  `),f.trim().length===0&&t.on_empty&&(f=t.on_empty),{text:f,droppedTail:u}}import xf from"node:os";import{join as _t}from"node:path";function T(){return process.env.TOKMIZER_HOME||_t(xf.homedir(),".tokmizer")}function xt(){return _t(T(),"install-id")}function Xn(){return _t(T(),"content-cache")}function No(){return _t(T(),"restore.json")}function Qn(e){return _t(Xn(),e)}var jo="user/",Wt=1,qt=null,Mo="",Fo=0,Ef=1e3;function Yt(){return Xt(T(),"filters")}function Ho(){return Xt(T(),"filters-trust.json")}function Bo(e){return typeof e=="string"&&e.startsWith(jo)}function Tf(e){return Sf("sha256").update(e).digest("hex")}async function $f(){try{let e=JSON.parse(await Lo(Ho(),"utf8")),t={};if(e.files&&typeof e.files=="object")for(let[n,r]of Object.entries(e.files))typeof r=="string"&&/^[0-9a-f]{64}$/.test(r)&&(t[n]=r);return{v:1,files:t}}catch{return{v:1,files:{}}}}function Rf(e,t){if(t===void 0)return{tests:[]};let n={message:`${e}: tests: each [[filters.${e}.tests]] needs input and expected strings`};if(!Array.isArray(t))return n;let r=[];for(let s of t){if(typeof s!="object"||s===null)return n;let{input:o,expected:i,name:a}=s;if(typeof o!="string"||typeof i!="string")return n;r.push({...typeof a=="string"&&a?{name:a}:{},input:o,expected:i})}return{tests:r}}function Af(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=Rf(e,r);if("message"in o)return o;let i=ke.safeParse({...s,slug:e});if(!i.success){let l=i.error.issues.map(c=>`${c.path.join(".")||"rule"}: ${c.message}`).join("; ");return{message:`${e}: ${l}`}}let a;try{a=new RegExp(i.data.match_command)}catch{return{message:`${e}: match_command is not a valid regular expression`}}for(let l of i.data.strip_lines_matching)try{new RegExp(l)}catch{return{message:`${e}: strip_lines_matching has an invalid regular expression`}}return{filter:{...i.data,slug:`${jo}${i.data.slug}`,matchRegex:a},tests:o.tests}}function Cf(e){return e===void 0||e===Wt?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${Wt}. Update tkr, or write the file for version ${Wt}`:`schema_version must be the number ${Wt}`}async function If(e){try{return(await wf(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function Of(e={}){let t=e.requireTrust!==!1,n=Yt(),r=new Map,s=new Map,o=[],i=await If(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await $f():null;for(let l of i){let c;try{c=await Lo(Xt(n,l),"utf8")}catch{o.push({file:l,message:"could not be read"});continue}if(a){let f=a.files[l];if(!f){o.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(f!==Tf(c)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let u=await Pf(c,l);for(let[f,d]of u.filters)r.set(f,d);for(let[f,d]of u.tests)s.set(f,d);o.push(...u.issues)}return{dir:n,filters:r,tests:s,issues:o}}async function Pf(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(Kn(),Jn)),i;try{i=o(e)}catch(c){return s.push({file:t,message:`not valid TOML (${String(c.message).split(`
@@ -36,7 +36,7 @@ ${a}`:i||a}function Gn(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1
36
36
  `)?`
37
37
  `:"",r=(n?e.slice(0,-1):e).split(`
38
38
  `),s=r.findIndex(g=>Uf.test(g));if(s>=0&&r.slice(0,s).some(g=>g!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(g)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(g=>g.index):[],i=[];for(let g=s+1;g<r.length;g+=1){let R=r[g];if(Zf.test(R))continue;if(/…|\.\.\./.test(R))return e;let E;if(s>=0){if(/[^\x20-\x7e]/.test(R))return e;let O=o.map((C,N)=>R.slice(C,o[N+1]));if(O.slice(0,-1).some(C=>C[0]===" "||!C.endsWith(" "))||(E=O.map(C=>C.replace(/ +$/,"")),!/^#\d+$/.test(E[0])||!/^\S+$/.test(E[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(E[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(E[4])))return e}else if(E=R.split(" "),E.length!==5||!/^\d+$/.test(E[0])||!E[1]||!E[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(E[3])||!sr.test(E[4])||!Number.isFinite(Date.parse(E[4])))return e;if(E.some(O=>/[\u0000-\u001f\u007f]/.test(O)))return e;i.push({index:g,cells:E})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let g of i)r[g.index]=g.cells.join(" ");let a=r.join(`
39
- `)+n;if(!t)return a;let l=new Map;for(let{cells:g}of i)l.set(g[1],(l.get(g[1])??0)+1);let c=new Map,u=[];for(let[g,R]of l){if(g.length<40||R<3||g.trim().split(/\s+/).length<8)continue;let E=`@${c.size+1}`,O=JSON.stringify(g).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),C=`TITLE ${E} = ${O}`;R*(Buffer.byteLength(g)-Buffer.byteLength(E))<=Buffer.byteLength(C)+1||(c.set(g,E),u.push(C))}let f=new Map;for(let{cells:g}of i){if(c.has(g[1]))continue;let R=/^((?:\S+\s+){4})\S/.exec(g[1])?.[1];R&&R.length>=24&&f.set(R,(f.get(R)??0)+1)}let d=new Map;for(let[g,R]of f){if(R<3)continue;let E=`@p${d.size+1}`,O=`TITLE prefix ${E} = ${JSON.stringify(g).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;R*(Buffer.byteLength(g)-Buffer.byteLength(E)-1)<=Buffer.byteLength(O)+1||(d.set(g,E),u.push(O))}let p=i[0].cells[4].slice(10),h=i.length>=3&&sr.test(i[0].cells[4])&&i.every(({cells:g})=>sr.test(g[4])&&g[4].slice(10)===p)&&i.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(h&&u.push(`CREATED suffix = ${JSON.stringify(p)}`),u.length===0)return a;for(let{index:g,cells:R}of i){let E=c.get(R[1]),O=/^((?:\S+\s+){4})\S/.exec(R[1])?.[1],C=O?d.get(O):void 0;r[g]=R.map((N,D)=>D===1?E??(C?`${C}:${N.slice(O.length)}`:N):D===4&&h?N.slice(0,10):N).join(" ")}let _=[...r,"",...u].join(`
39
+ `)+n;if(!t)return a;let l=new Map;for(let{cells:g}of i)l.set(g[1],(l.get(g[1])??0)+1);let c=new Map,u=[];for(let[g,R]of l){if(g.length<40||R<3||g.trim().split(/\s+/).length<8)continue;let E=`@${c.size+1}`,O=JSON.stringify(g).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),C=`TITLE ${E} = ${O}`;R*(Buffer.byteLength(g)-Buffer.byteLength(E))<=Buffer.byteLength(C)+1||(c.set(g,E),u.push(C))}let f=new Map;for(let{cells:g}of i){if(c.has(g[1]))continue;let R=/^((?:\S+\s+){4})\S/.exec(g[1])?.[1];R&&R.length>=24&&f.set(R,(f.get(R)??0)+1)}let d=new Map;for(let[g,R]of f){if(R<3)continue;let E=`@p${d.size+1}`,O=`TITLE prefix ${E} = ${JSON.stringify(g).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;R*(Buffer.byteLength(g)-Buffer.byteLength(E)-1)<=Buffer.byteLength(O)+1||(d.set(g,E),u.push(O))}let m=i[0].cells[4].slice(10),h=i.length>=3&&sr.test(i[0].cells[4])&&i.every(({cells:g})=>sr.test(g[4])&&g[4].slice(10)===m)&&i.length*m.length>`CREATED suffix = ${JSON.stringify(m)}`.length+1;if(h&&u.push(`CREATED suffix = ${JSON.stringify(m)}`),u.length===0)return a;for(let{index:g,cells:R}of i){let E=c.get(R[1]),O=/^((?:\S+\s+){4})\S/.exec(R[1])?.[1],C=O?d.get(O):void 0;r[g]=R.map((N,D)=>D===1?E??(C?`${C}:${N.slice(O.length)}`:N):D===4&&h?N.slice(0,10):N).join(" ")}let _=[...r,"",...u].join(`
40
40
  `)+n;return Buffer.byteLength(_)<Buffer.byteLength(a)?_:a}var Vo={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},Kf={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},Vf=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,Wf=/^On branch (\S+)$/,qf=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function Yf(e){let t=Wf.exec(e[0]??"");if(!t)return e;let n=qf.exec(e[1]??"");if(!n)return[`* ${t[1]}`,...e.slice(1)];let r=n[1]??n[3],s=n[2]?` [${n[2]} ${n[4]}]`:"";return[`* ${t[1]}...${r}${s}`,...e.slice(2)]}function Xf(e){let t=e.endsWith(`
41
41
  `)?`
42
42
  `:"",n=Yf((t?e.slice(0,-1):e).split(`
@@ -58,50 +58,50 @@ ${a}`:i||a}function Gn(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1
58
58
  `)}var ad=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,ld=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function Qo(e){return ld.test(e)}function ei(e){let t=e.endsWith(`
59
59
  `),n=(t?e.slice(0,-1):e).split(`
60
60
  `),r=0;for(let s of n)if(s.trim()!==""){if(!ad.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
61
- `:""}`}var si=/^(?:(?:npx|bunx|pnpm(?:\s+(?:exec|dlx))?|yarn(?:\s+exec)?|uv\s+run|poetry\s+run|pipenv\s+run|hatch\s+run|python3?\s+-m)\s+)?(?:\S*\/)?(?:vitest|jest|mocha|pytest|py\.test|playwright\s+test)(?:\s|$)|^(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|t)(?:[:-]\S+)?(?:\s|$)|^cargo\s+test(?:\s|$)|^go\s+test(?:\s|$)/,oi={normal:{msg:40,diff:60,frames:6,code:!0,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,code:!1,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,code:!1,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},cd=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,ud=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,fd=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,dd=/^\s*(>)?\s*(\d+)\s*\|/,pd=/^\s*\|\s*[\^~]+\s*$/,md=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function ot(e,t){let n=null;for(let r of e){let s=t.exec(r);s&&(n=(n??0)+Number(s[1]))}return n}function Qt(e){return cd.test(e)}function en(e,t,n){return n===null?t:(t!==n&&!e.some(r=>r.kind==="frame"&&r.text===t)&&e.push({kind:"frame",text:t}),n)}function ir(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let f of e){let d=f.trimEnd(),p=d.trim();if(!p||pd.test(d)||/^─+$/.test(p))continue;if(t(p)){o=!0,n.push({kind:"out",text:p.replace(/\s*─+$/,"")});continue}if(o){n.push({kind:"out",text:p});continue}let h=ud.exec(d)??fd.exec(d);if(h){s=-1;let g=h[1].replace(/^file:\/\//,"");Qt(g)||(r=en(n,`${g}:${h[2]}${h[3]?`:${h[3]}`:""}`,r));continue}let _=dd.exec(d);if(_){s=-1,n.push({kind:"code",text:p,num:Number(_[2]),pointed:_[1]===">"});continue}if(md.test(p)){s=n.length,n.push({kind:"legend",text:p});continue}n.push(s>=0?{kind:"diff",text:d,segment:s}:{kind:"msg",text:p})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,c=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),u=new Map;for(let f of c){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;u.set(f.segment,Math.min(u.get(f.segment)??d,d))}for(let f of c)f.kind==="diff"&&(f.text=f.text.slice(u.get(f.segment)??0)),f.kind==="code"&&(f.text=f.text.replace(/^>\s*/,""));return{body:c,loc:r}}function G(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function hd(e){if(!e.some(l=>/^⎯+ Failed (?:Tests|Suites) \d+ ⎯+$/.test(l.trim())||/^\s*Test Files\s{2,}\d/.test(l)||/^ ?FAIL\s+\S+ > /.test(l)))return null;let t=ot(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(G(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(G(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:c}=ir(i);for(let u of o)u.body=l,u.loc=c}o=[],i=[]};for(let l of e){let c=l.trim(),u=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(u){i.some(g=>g.trim())&&a();let d=u[1],p=/^(\S+) \[ \S+ \]$/.exec(d),h=d.split(" > "),_=p?{file:p[1],name:"(suite)",loc:null,body:[]}:h.length>1?{file:h[0],name:h.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(s+=1),r.push(_),o.push(_);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(c);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),o.push(d);continue}if(/^⎯{3,}/.test(c)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(c)){a();continue}o.length&&i.push(l)}if(a(),s===0){let l=null;for(let c of e){let u=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(c);if(u){l=u[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(c);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function gd(e){if(!e.some(u=>/^\s{2}● (?!Console$)/.test(u))||!e.some(u=>/^Tests:\s/.test(u)||/^(?:FAIL|PASS)\s+\S/.test(u)))return null;let t=ot(e,/^Tests:\s+(\d+) failed/),n=[];for(let u of e)/^Test Suites:\s/.test(u)?n.push(G(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(G(u));let r=[],s=new Set,o=0,i=null,a=null,l=[],c=()=>{if(a){let u=`${a.file}\0${a.name}`;if(!s.has(u)){s.add(u);let{body:f,loc:d}=ir(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(o+=1)}}a=null,l=[]};for(let u of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(u);if(f){c(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(u)){c();continue}let d=/^\s{2}● (.+)$/.exec(u);if(d){c(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(u)}return c(),{failures:r,summary:n,reported:t,counted:o}}function ii(e,t,n,r,s){let o=[],i=new Map,a=null;for(let l=t;l<n;l++){let c=e[l],u=/^\s{2}\d+\) (.+)$/.exec(c);if(u){let{name:f,used:d}=r(u[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),o.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(c)||a&&a.push(c)}for(let l of o){let{body:c,loc:u}=ir(i.get(l.name),s);l.body=c,l.loc=u}return o}function yd(e){let t=e.findIndex(o=>/^\s*\d+ failing$/.test(o));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(o=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(o)).map(o=>G(o.replace(/ \(\S+\)\s*$/,""))),s=ii(e,t+1,e.length,(o,i)=>{let a=[o.trim()],l=0;for(;!a[a.length-1].endsWith(":")&&l<i.length&&i[l].trim();)a.push(i[l].trim()),l+=1;return a[a.length-1].endsWith(":")?{name:a.join(" \u203A ").replace(/:$/,""),used:l}:{name:o.trim(),used:0}});return{failures:s,summary:r,reported:n,counted:s.length}}function kd(e){let t=e.findIndex(a=>/^\s{2}\d+\) .*›.*─{3,}\s*$/.test(a));if(t<0)return null;let n=e.findIndex((a,l)=>l>t&&/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)),r=n<0?e.length:n,s=ot(e.slice(r),/^\s{2}(\d+) failed$/),o=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>G(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=ii(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:o,reported:s,counted:i.length}}function bd(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=ot(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(G(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(G(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(G(i));let r=[],s=null,o=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){s={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},o.push(s),r.push(s.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){s=null;continue}s&&s.lines.push(i)}for(let{f:i,lines:a}of o){let l=!1,c=!1;for(let u of a){let f=u.trimEnd(),d=f.trim();if(!d)continue;let p=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(p){l=!0,i.loc??=`${p[2]}:${p[3]}:${p[4]}`,p[1]&&i.body.push({kind:"msg",text:p[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){c=!0;continue}if(c){let h=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);h&&!Qt(h[1])&&(i.loc=en(i.body,`${h[1]}:${h[2]}:${h[3]}`,i.loc));continue}i.body.push(l?{kind:"msg",text:f}:{kind:"out",text:f})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function _d(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,s=[],o=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){o=l[1],i=null;continue}let c=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(c){i={file:null,name:c[1],loc:null,body:[]},r.set(i,[...t.get(c[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let u=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(u&&/\t|\s{2,}|\[/.test(a)){s.push(G(a.replace(/\s+[\d.]+m?s\s*$/,""),u[1]==="ok")),i=null,o=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(G(a,!0));continue}if(i)r.get(i).push(a);else if(o){let f=t.get(o)??[];f.push(a),t.set(o,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(G(a))}}for(let a of n){for(let l of r.get(a)){let c=l.trim();if(!c||/^goroutine \d+ \[/.test(c))continue;let u=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(c);if(u){Qt(u[1])||(a.loc=en(a.body,`${u[1]}:${u[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(c)||/^created by /.test(c)||a.body.push({kind:"msg",text:c})}a.loc&&a.body.some(l=>l.kind==="msg"&&/^\S+\.go:\d+: /.test(l.text))&&(a.body.unshift({kind:"frame",text:a.loc}),a.loc=null)}return{failures:n,summary:s,reported:null,counted:n.length}}var ti=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function ni(e,t){let n=[],r=null,s=!1,o=!1;for(let l of e){let c=l.trimEnd(),u=c.trim();if(/^-{3,} Captured .+ -{3,}$/.test(u)){s=!0;continue}if(s){u&&n.push({kind:"out",text:c});continue}if(/^E(?:\s|$)/.test(c)){c.slice(1).trim()&&n.push({kind:"msg",text:c});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(c);if(f){if(!Qt(f[1])){let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=en(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}continue}/^>\s/.test(c)&&!o&&(o=!0,n.push({kind:"code",text:u.replace(/^>\s*/,"")}))}let i=n.filter(l=>l.kind==="msg"),a=Math.min(...i.map(l=>l.text.slice(1).length-l.text.slice(1).trimStart().length));for(let l of i)l.text=`E ${l.text.slice(1+a)}`;return t&&!i.some(l=>l.text.includes(t.replace(/\.\.\.$/,"")))&&n.unshift({kind:"msg",text:t}),{body:n,loc:r}}function ri(e,t){return t.push(G(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(ot([e],/(\d+) failed/)??0)+(ot([e],/(\d+) errors?\b/)??0)}function xd(e){if(!e.some(f=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(f)||ti.test(f)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null;for(let f of e){let d=/^={3,} (.+?) ={3,}$/.exec(f);if(d){s=d[1],o=null,i=null,!/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/.test(s)&&/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/.test(s)&&(a=ri(s,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(f.trim())){a=ri(f.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(f)){r.push(G(f.replace(/^!+ | !+$/g,"")));continue}let p=/^_{3,} (.+?) _{3,}$/.exec(f);if(p&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(p[1],o);continue}let h=ti.exec(f);if(h&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let _={kind:h[1],id:h[2],msg:h[3]??null,inline:[]};n.push(_),i=_;continue}if(o){o.push(f);continue}i&&/^E(?:\s|$)/.test(f)?i.inline.push(f):i&&f.trim()&&(i=null)}let l=new Set,c=[],u=new Set;for(let f of n){if(u.has(f.id))continue;u.add(f.id);let[d,...p]=f.id.split("::"),h=p.join("."),_=[h,`ERROR collecting ${f.id}`,`ERROR at setup of ${h}`,`ERROR at teardown of ${h}`].find(O=>O&&t.has(O)&&!l.has(O));_&&l.add(_);let{body:g,loc:R}=ni(_?t.get(_):f.inline,f.msg),E=p.length?p.join("::"):"(collection)";c.push({file:d,name:f.kind==="ERROR"?`${E} [error]`:E,loc:R,body:g})}for(let[f,d]of t){if(l.has(f))continue;let{body:p,loc:h}=ni(d,null);c.push({file:h?h.replace(/:\d+$/,""):null,name:f,loc:h,body:p})}if(c.length===0)for(let f of e){let d=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(f);d&&c.push({file:d[1],name:d[3]==="ERROR"?`${d[2]} [error]`:d[2],loc:null,body:[]})}return{failures:c,summary:r,reported:a,counted:c.length}}var wd=[bd,_d,xd,gd,hd,yd,kd];function vd(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let s=r.slice(1).trim().replace(/,$/,"");return s.length>0&&t.includes(s)})}function Sd(e,t,n){let r=oi[n],s=e.body.filter(d=>d.kind==="msg");if(!t)return s.length?[` ${s[0].text}`]:[];let o=e.body.filter(d=>d.kind==="diff"),i=r.trimDiff&&vd(o,s.map(d=>d.text).join(`
62
- `)),a={msg:0,legend:0,diff:0,frame:0,code:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,out:0},c={msg:r.msg,legend:1/0,diff:r.diff,frame:r.frames,code:r.code?1:0,out:r.out},u=[];for(let d of e.body){if((d.kind==="diff"||d.kind==="legend")&&i||d.kind==="diff"&&r.changedOnly&&!/^[-+]/.test(d.text.trim()))continue;let p=d.kind==="legend"?"diff":d.kind;if(a[p]>=c[p]&&d.kind!=="legend"){l[p]+=1;continue}d.kind!=="legend"&&(a[p]+=1),u.push(d.kind==="frame"?` at ${d.text}`:` ${d.text}`)}let f=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return f>0&&u.push(` ${st(f)}`),u}function Ed(e){let t=e[0];for(let r of e)for(;!r.startsWith(t);)t=t.slice(0,-1);t=t.slice(0,Math.max(...["_",":",".","/"," ","\u203A","-","[","("].map(r=>t.lastIndexOf(r)))+1);let n=e.map(r=>r.slice(t.length));return t.length>=3&&n.every(r=>r.length>0&&!/[{},\s]/.test(r))?`${t}{${n.join(",")}}`:e.join(", ")}function Td(e){if(!e.loc)return`\xD7 ${e.name}`;let t=e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function $d(e,t){let n=oi[t],r=new Map,s=e.failures.length>n.bulk,o=e.failures.map(c=>{let u=c.body.find(p=>p.kind==="msg")?.text??"",f=(r.get(u)??0)+1;r.set(u,f);let d=u===""||!s||f<=n.repeats;return{f:c,full:d,body:Sd(c,d,t).join(`
63
- `)}}),i=[],a,l=null;for(let c=0;c<o.length;c++){let u=o[c];u.f.file!==a&&(a=u.f.file,a&&i.push(a));let f=c;if(!u.full&&u.f.loc===null)for(;f+1<o.length;){let p=o[f+1];if(p.full||p.f.loc!==null||p.f.file!==u.f.file||p.body!==u.body)break;f+=1}i.push(f>c?`\xD7 ${Ed(o.slice(c,f+1).map(p=>p.f.name))}`:Td(u.f)),c=f;let d=o[c+1];d&&d.f.file===u.f.file&&d.body===u.body||u.body&&(u.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(u.body),l=u.body))}for(let c of e.summary)(!c.minor||t==="normal")&&i.push(c.text);return`${i.join(`
61
+ `:""}`}var si=/^(?:(?:npx|bunx|pnpm(?:\s+(?:exec|dlx))?|yarn(?:\s+exec)?|uv\s+run|poetry\s+run|pipenv\s+run|hatch\s+run|python3?\s+-m)\s+)?(?:\S*\/)?(?:vitest|jest|mocha|pytest|py\.test|playwright\s+test)(?:\s|$)|^(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|t)(?:[:-]\S+)?(?:\s|$)|^cargo\s+test(?:\s|$)|^go\s+test(?:\s|$)/,oi={normal:{msg:40,diff:60,frames:6,code:!0,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,code:!1,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,code:!1,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},cd=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,ud=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,fd=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,dd=/^\s*(>)?\s*(\d+)\s*\|/,md=/^\s*\|\s*[\^~]+\s*$/,pd=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function ot(e,t){let n=null;for(let r of e){let s=t.exec(r);s&&(n=(n??0)+Number(s[1]))}return n}function Qt(e){return cd.test(e)}function en(e,t,n){return n===null?t:(t!==n&&!e.some(r=>r.kind==="frame"&&r.text===t)&&e.push({kind:"frame",text:t}),n)}function ir(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let f of e){let d=f.trimEnd(),m=d.trim();if(!m||md.test(d)||/^─+$/.test(m))continue;if(t(m)){o=!0,n.push({kind:"out",text:m.replace(/\s*─+$/,"")});continue}if(o){n.push({kind:"out",text:m});continue}let h=ud.exec(d)??fd.exec(d);if(h){s=-1;let g=h[1].replace(/^file:\/\//,"");Qt(g)||(r=en(n,`${g}:${h[2]}${h[3]?`:${h[3]}`:""}`,r));continue}let _=dd.exec(d);if(_){s=-1,n.push({kind:"code",text:m,num:Number(_[2]),pointed:_[1]===">"});continue}if(pd.test(m)){s=n.length,n.push({kind:"legend",text:m});continue}n.push(s>=0?{kind:"diff",text:d,segment:s}:{kind:"msg",text:m})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,c=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),u=new Map;for(let f of c){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;u.set(f.segment,Math.min(u.get(f.segment)??d,d))}for(let f of c)f.kind==="diff"&&(f.text=f.text.slice(u.get(f.segment)??0)),f.kind==="code"&&(f.text=f.text.replace(/^>\s*/,""));return{body:c,loc:r}}function G(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function hd(e){if(!e.some(l=>/^⎯+ Failed (?:Tests|Suites) \d+ ⎯+$/.test(l.trim())||/^\s*Test Files\s{2,}\d/.test(l)||/^ ?FAIL\s+\S+ > /.test(l)))return null;let t=ot(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(G(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(G(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:c}=ir(i);for(let u of o)u.body=l,u.loc=c}o=[],i=[]};for(let l of e){let c=l.trim(),u=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(u){i.some(g=>g.trim())&&a();let d=u[1],m=/^(\S+) \[ \S+ \]$/.exec(d),h=d.split(" > "),_=m?{file:m[1],name:"(suite)",loc:null,body:[]}:h.length>1?{file:h[0],name:h.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};m||(s+=1),r.push(_),o.push(_);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(c);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),o.push(d);continue}if(/^⎯{3,}/.test(c)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(c)){a();continue}o.length&&i.push(l)}if(a(),s===0){let l=null;for(let c of e){let u=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(c);if(u){l=u[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(c);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function gd(e){if(!e.some(u=>/^\s{2}● (?!Console$)/.test(u))||!e.some(u=>/^Tests:\s/.test(u)||/^(?:FAIL|PASS)\s+\S/.test(u)))return null;let t=ot(e,/^Tests:\s+(\d+) failed/),n=[];for(let u of e)/^Test Suites:\s/.test(u)?n.push(G(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(G(u));let r=[],s=new Set,o=0,i=null,a=null,l=[],c=()=>{if(a){let u=`${a.file}\0${a.name}`;if(!s.has(u)){s.add(u);let{body:f,loc:d}=ir(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(o+=1)}}a=null,l=[]};for(let u of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(u);if(f){c(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(u)){c();continue}let d=/^\s{2}● (.+)$/.exec(u);if(d){c(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(u)}return c(),{failures:r,summary:n,reported:t,counted:o}}function ii(e,t,n,r,s){let o=[],i=new Map,a=null;for(let l=t;l<n;l++){let c=e[l],u=/^\s{2}\d+\) (.+)$/.exec(c);if(u){let{name:f,used:d}=r(u[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),o.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(c)||a&&a.push(c)}for(let l of o){let{body:c,loc:u}=ir(i.get(l.name),s);l.body=c,l.loc=u}return o}function yd(e){let t=e.findIndex(o=>/^\s*\d+ failing$/.test(o));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(o=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(o)).map(o=>G(o.replace(/ \(\S+\)\s*$/,""))),s=ii(e,t+1,e.length,(o,i)=>{let a=[o.trim()],l=0;for(;!a[a.length-1].endsWith(":")&&l<i.length&&i[l].trim();)a.push(i[l].trim()),l+=1;return a[a.length-1].endsWith(":")?{name:a.join(" \u203A ").replace(/:$/,""),used:l}:{name:o.trim(),used:0}});return{failures:s,summary:r,reported:n,counted:s.length}}function kd(e){let t=e.findIndex(a=>/^\s{2}\d+\) .*›.*─{3,}\s*$/.test(a));if(t<0)return null;let n=e.findIndex((a,l)=>l>t&&/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)),r=n<0?e.length:n,s=ot(e.slice(r),/^\s{2}(\d+) failed$/),o=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>G(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=ii(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:o,reported:s,counted:i.length}}function bd(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=ot(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(G(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(G(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(G(i));let r=[],s=null,o=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){s={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},o.push(s),r.push(s.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){s=null;continue}s&&s.lines.push(i)}for(let{f:i,lines:a}of o){let l=!1,c=!1;for(let u of a){let f=u.trimEnd(),d=f.trim();if(!d)continue;let m=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(m){l=!0,i.loc??=`${m[2]}:${m[3]}:${m[4]}`,m[1]&&i.body.push({kind:"msg",text:m[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){c=!0;continue}if(c){let h=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);h&&!Qt(h[1])&&(i.loc=en(i.body,`${h[1]}:${h[2]}:${h[3]}`,i.loc));continue}i.body.push(l?{kind:"msg",text:f}:{kind:"out",text:f})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function _d(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,s=[],o=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){o=l[1],i=null;continue}let c=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(c){i={file:null,name:c[1],loc:null,body:[]},r.set(i,[...t.get(c[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let u=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(u&&/\t|\s{2,}|\[/.test(a)){s.push(G(a.replace(/\s+[\d.]+m?s\s*$/,""),u[1]==="ok")),i=null,o=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(G(a,!0));continue}if(i)r.get(i).push(a);else if(o){let f=t.get(o)??[];f.push(a),t.set(o,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(G(a))}}for(let a of n){for(let l of r.get(a)){let c=l.trim();if(!c||/^goroutine \d+ \[/.test(c))continue;let u=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(c);if(u){Qt(u[1])||(a.loc=en(a.body,`${u[1]}:${u[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(c)||/^created by /.test(c)||a.body.push({kind:"msg",text:c})}a.loc&&a.body.some(l=>l.kind==="msg"&&/^\S+\.go:\d+: /.test(l.text))&&(a.body.unshift({kind:"frame",text:a.loc}),a.loc=null)}return{failures:n,summary:s,reported:null,counted:n.length}}var ti=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function ni(e,t){let n=[],r=null,s=!1,o=!1;for(let l of e){let c=l.trimEnd(),u=c.trim();if(/^-{3,} Captured .+ -{3,}$/.test(u)){s=!0;continue}if(s){u&&n.push({kind:"out",text:c});continue}if(/^E(?:\s|$)/.test(c)){c.slice(1).trim()&&n.push({kind:"msg",text:c});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(c);if(f){if(!Qt(f[1])){let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=en(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}continue}/^>\s/.test(c)&&!o&&(o=!0,n.push({kind:"code",text:u.replace(/^>\s*/,"")}))}let i=n.filter(l=>l.kind==="msg"),a=Math.min(...i.map(l=>l.text.slice(1).length-l.text.slice(1).trimStart().length));for(let l of i)l.text=`E ${l.text.slice(1+a)}`;return t&&!i.some(l=>l.text.includes(t.replace(/\.\.\.$/,"")))&&n.unshift({kind:"msg",text:t}),{body:n,loc:r}}function ri(e,t){return t.push(G(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(ot([e],/(\d+) failed/)??0)+(ot([e],/(\d+) errors?\b/)??0)}function xd(e){if(!e.some(f=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(f)||ti.test(f)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null;for(let f of e){let d=/^={3,} (.+?) ={3,}$/.exec(f);if(d){s=d[1],o=null,i=null,!/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/.test(s)&&/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/.test(s)&&(a=ri(s,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(f.trim())){a=ri(f.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(f)){r.push(G(f.replace(/^!+ | !+$/g,"")));continue}let m=/^_{3,} (.+?) _{3,}$/.exec(f);if(m&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(m[1],o);continue}let h=ti.exec(f);if(h&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let _={kind:h[1],id:h[2],msg:h[3]??null,inline:[]};n.push(_),i=_;continue}if(o){o.push(f);continue}i&&/^E(?:\s|$)/.test(f)?i.inline.push(f):i&&f.trim()&&(i=null)}let l=new Set,c=[],u=new Set;for(let f of n){if(u.has(f.id))continue;u.add(f.id);let[d,...m]=f.id.split("::"),h=m.join("."),_=[h,`ERROR collecting ${f.id}`,`ERROR at setup of ${h}`,`ERROR at teardown of ${h}`].find(O=>O&&t.has(O)&&!l.has(O));_&&l.add(_);let{body:g,loc:R}=ni(_?t.get(_):f.inline,f.msg),E=m.length?m.join("::"):"(collection)";c.push({file:d,name:f.kind==="ERROR"?`${E} [error]`:E,loc:R,body:g})}for(let[f,d]of t){if(l.has(f))continue;let{body:m,loc:h}=ni(d,null);c.push({file:h?h.replace(/:\d+$/,""):null,name:f,loc:h,body:m})}if(c.length===0)for(let f of e){let d=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(f);d&&c.push({file:d[1],name:d[3]==="ERROR"?`${d[2]} [error]`:d[2],loc:null,body:[]})}return{failures:c,summary:r,reported:a,counted:c.length}}var wd=[bd,_d,xd,gd,hd,yd,kd];function vd(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let s=r.slice(1).trim().replace(/,$/,"");return s.length>0&&t.includes(s)})}function Sd(e,t,n){let r=oi[n],s=e.body.filter(d=>d.kind==="msg");if(!t)return s.length?[` ${s[0].text}`]:[];let o=e.body.filter(d=>d.kind==="diff"),i=r.trimDiff&&vd(o,s.map(d=>d.text).join(`
62
+ `)),a={msg:0,legend:0,diff:0,frame:0,code:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,out:0},c={msg:r.msg,legend:1/0,diff:r.diff,frame:r.frames,code:r.code?1:0,out:r.out},u=[];for(let d of e.body){if((d.kind==="diff"||d.kind==="legend")&&i||d.kind==="diff"&&r.changedOnly&&!/^[-+]/.test(d.text.trim()))continue;let m=d.kind==="legend"?"diff":d.kind;if(a[m]>=c[m]&&d.kind!=="legend"){l[m]+=1;continue}d.kind!=="legend"&&(a[m]+=1),u.push(d.kind==="frame"?` at ${d.text}`:` ${d.text}`)}let f=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return f>0&&u.push(` ${st(f)}`),u}function Ed(e){let t=e[0];for(let r of e)for(;!r.startsWith(t);)t=t.slice(0,-1);t=t.slice(0,Math.max(...["_",":",".","/"," ","\u203A","-","[","("].map(r=>t.lastIndexOf(r)))+1);let n=e.map(r=>r.slice(t.length));return t.length>=3&&n.every(r=>r.length>0&&!/[{},\s]/.test(r))?`${t}{${n.join(",")}}`:e.join(", ")}function Td(e){if(!e.loc)return`\xD7 ${e.name}`;let t=e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function $d(e,t){let n=oi[t],r=new Map,s=e.failures.length>n.bulk,o=e.failures.map(c=>{let u=c.body.find(m=>m.kind==="msg")?.text??"",f=(r.get(u)??0)+1;r.set(u,f);let d=u===""||!s||f<=n.repeats;return{f:c,full:d,body:Sd(c,d,t).join(`
63
+ `)}}),i=[],a,l=null;for(let c=0;c<o.length;c++){let u=o[c];u.f.file!==a&&(a=u.f.file,a&&i.push(a));let f=c;if(!u.full&&u.f.loc===null)for(;f+1<o.length;){let m=o[f+1];if(m.full||m.f.loc!==null||m.f.file!==u.f.file||m.body!==u.body)break;f+=1}i.push(f>c?`\xD7 ${Ed(o.slice(c,f+1).map(m=>m.f.name))}`:Td(u.f)),c=f;let d=o[c+1];d&&d.f.file===u.f.file&&d.body===u.body||u.body&&(u.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(u.body),l=u.body))}for(let c of e.summary)(!c.minor||t==="normal")&&i.push(c.text);return`${i.join(`
64
64
  `)}
65
65
  `}function ai(e,t="normal"){let n=oe(e).split(`
66
- `).map(r=>{let s=r.endsWith("\r")?r.slice(0,-1):r;return s.includes("\r")?s.slice(s.lastIndexOf("\r")+1):s});for(let r of wd){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:$d(s,t)}return null}import{createCipheriv as qb,createDecipheriv as Rd,hkdfSync as Ad,randomBytes as Yb}from"node:crypto";var Cd=Buffer.from("tokmizer-bundle-enc-v1"),Id=Buffer.from("rules-bundle");function Od(e){return Buffer.from(Ad("sha256",Buffer.from(e,"utf8"),Cd,Id,32))}function tn(e,t){let n=Od(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Rd("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as Yd,verify as Xd}from"node:crypto";import{join as Pd}from"node:path";import{mkdir as t0,readFile as Nd,writeFile as n0,unlink as r0,rename as s0}from"node:fs/promises";var Dd="state.json";function Md(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Fd(e){return e?.dir??T()}async function wt(e){let t=Fd(e);try{let n=await Nd(Pd(t,Dd),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Md()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Ld}from"node:module";var jd=Ld(import.meta.url);function Hd(){let e="0.9.60";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=jd(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var vt=Hd();function li(e,t){if(!e||!t)return!1;let n=e.split(".").map(s=>parseInt(s,10)),r=t.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=n[s]??0,i=r[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var ci=`-----BEGIN PUBLIC KEY-----
66
+ `).map(r=>{let s=r.endsWith("\r")?r.slice(0,-1):r;return s.includes("\r")?s.slice(s.lastIndexOf("\r")+1):s});for(let r of wd){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:$d(s,t)}return null}import{createCipheriv as qb,createDecipheriv as Rd,hkdfSync as Ad,randomBytes as Yb}from"node:crypto";var Cd=Buffer.from("tokmizer-bundle-enc-v1"),Id=Buffer.from("rules-bundle");function Od(e){return Buffer.from(Ad("sha256",Buffer.from(e,"utf8"),Cd,Id,32))}function tn(e,t){let n=Od(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Rd("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as Yd,verify as Xd}from"node:crypto";import{join as Pd}from"node:path";import{mkdir as t0,readFile as Nd,writeFile as n0,unlink as r0,rename as s0}from"node:fs/promises";var Dd="state.json";function Md(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Fd(e){return e?.dir??T()}async function wt(e){let t=Fd(e);try{let n=await Nd(Pd(t,Dd),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Md()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Ld}from"node:module";var jd=Ld(import.meta.url);function Hd(){let e="0.9.62";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=jd(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var vt=Hd();function li(e,t){if(!e||!t)return!1;let n=e.split(".").map(s=>parseInt(s,10)),r=t.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=n[s]??0,i=r[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var ci=`-----BEGIN PUBLIC KEY-----
67
67
  MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
68
68
  -----END PUBLIC KEY-----
69
- `;import{existsSync as Bd,mkdirSync as f0,rmSync as d0,writeFileSync as p0}from"node:fs";import{join as zd}from"node:path";var Ud=new Set(["0","off","false","no"]);var g0=["Tokmizer contacts tokmizer.com to keep its rules up to date and to improve the product. No account or email is needed.","It sends a random install ID, your computer name, OS and CPU model, a hash of your network card address and of your user name, and the plugin version. Command contents and output are never sent.","Usage stats (command names, token counts and install health counts) are sent only while they are on. Check with: tkr telemetry status.","Turn all network access off: tkr network off. Usage stats only: tkr telemetry off."].join(`
69
+ `;import{existsSync as Bd,mkdirSync as f0,rmSync as d0,writeFileSync as m0}from"node:fs";import{join as zd}from"node:path";var Ud=new Set(["0","off","false","no"]);var g0=["Tokmizer contacts tokmizer.com to keep its rules up to date and to improve the product. No account or email is needed.","It sends a random install ID, your computer name, OS and CPU model, a hash of your network card address and of your user name, and the plugin version. Command contents and output are never sent.","Usage stats (command names, token counts and install health counts) are sent only while they are on. Check with: tkr telemetry status.","Turn all network access off: tkr network off. Usage stats only: tkr telemetry off."].join(`
70
70
  `);function Zd(){return zd(T(),"network-off")}function Gd(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Ud.has(e.trim().toLowerCase())}function St(){return Gd()?!1:!Bd(Zd())}var w0=300*1e3;function ui(){return((process.env.TOKMIZER_DEV==="1"?process.env.TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM:void 0)??ci).replace(/\\n/g,`
71
- `)}import{chmodSync as E0,readFileSync as Jd,writeFileSync as T0,mkdirSync as $0,renameSync as R0}from"node:fs";import{join as Kd}from"node:path";var Vd=y.object({payload:y.string().min(1),signature:y.string().min(1),enc:y.literal("v1"),fetchedAt:y.number().int().nonnegative()});function Wd(){return Kd(T(),"bundle-cache.json")}function fi(){try{let e=Jd(Wd(),"utf8"),t=Vd.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var ar=y.object({bundleVersion:y.number().int().nonnegative(),signedAt:y.number().int(),filters:y.array(ke)}),z0=y.object({payload:y.string().min(1),signature:y.string().min(1),enc:y.literal("v1")}),Qd=10080*60*1e3;function ep(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:Qd}function tp(e,t){let n=ui();if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Error("tkr-daemon: no valid signing public key configured (set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM at build time).");let r=Yd({key:n,format:"pem"});if(!Xd(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(tn(e.payload,t))}function np(e,t){let n=tp(e,t),r=ar.parse(n);if(Date.now()-r.signedAt>ep())throw new Error("tkr-daemon: rules bundle is stale");return lr(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function lr(e,t){let n=new Map;for(let r of e.filters)n.set(r.slug,{...r,matchRegex:new RegExp(r.match_command)});return{bundleVersion:e.bundleVersion,signedAt:t.signedAt,ruleCount:n.size,startedAt:Date.now(),fetchedAt:t.fetchedAt,selectFor:(r,s,o)=>rt(r,n.values(),o?new Set(o):null,n)}}async function di(){try{let e=fi();if(!e)return null;let t=await wt();return t?.signingSecret?np(e,t.signingSecret):null}catch{return null}}var rp="tokmizer-default-rules-v1",sp=/^[0-9a-f]{16}$/,Et=null;function pi(){let e="_O1SjF-x7O0LpAJn39Mc0giIdfK3_8cPxAfzfR_a7KL0VKhJskvW12Be0lS2G-4_SDFq_tBtxgOTfsl8QAVNglzzfVR9DjfyZc3DwSXQo4muTQcN-IbfoZ_DMxBQedjPE-mxeMMrayxqIsMu8IiB8henfCeTEVd8ESfu5I8FrfFMQKPM_Nk1lDvjAYKXcAoyIHkpcIALYRP7-DMwuOE7gg64falGJON_JMZGQmj0EEjzUHtqixzojAtoWOS2pVzdYG9kraN6P27NT3kiC84WEYMxUMy4VDJBN7R7BNFTKJtJqBa8Vnw31xja5jyvfJPdhn69qEQ_KvclnoQChjH16FPwjUEralw3858XEBSZ3r5dShFR_StFQB_YWWkGPmu0EeRXCWN-RjgCGiAQTwhsuN4EzPUSSV6NjrUInhdHSgonS5uIFfKI3Hek7QTiMg1u5cUHcfMBjgRJSYlyBw51rWk4wH0xzDiXwHg-aC6loMVUBBmkhUjevbWOOCW-CjnX0q-y38ibT52YA89BZ9Y01DEB4E-WcG8HxEw_Qzzm8PfLz1MbA05TLgs4Gac4XcNKXjAk62d7g12Xf4ugncRD49CcXd4Xg-uHrF_Xb714rctYvAArja-YHkozYk8fkCUX0Hc6Rm4V7XwhIo2vr95WJwic2Pf28EAHeSLMc7VutWk6L99zpYCVmMjezWs9oel4xRXulp8LR5BV6YuDRtdye_gPpWtfGwBrhEZ4vCCOoN2XboE32Bt5bC67p53hSK0PPSBGdwCcoRiOc-LlVj8xWXUc-ia7qb_XCcRE0d6vHnos82Efjuoy5nv3XH5W6E30Q1l51txDgRq-uN8OncQL5EJ0CrjlZG9A1vnOONFRXEz6Q6UfPhkQxPca6odr7lhFXHyifi4vB5w9b1rV7G8KMAtz95JCMbJeJ61Qff1n0xP9nkCDVp60IuJZHTCLDiNfdCMaZF5dFhShz4NE73ApIepN2dKcUGLLrDRjQoeuIXRmejzVYvJVPY2fEsHncTYgETS3oGJLl0NBrnxw2e2ssRyqo0nzQErVQMoHvkw_GZvvjugCe6giTdDlItD2mYM4mIwDHS7Mg1k4Cu9q-cbdTDzJsrlXw5JofMXUGBVhjjOYzNv9oEMyNWKvtbPnKOrTJreRNcARhK7sy4NTmydNucbONfxQe1vUm5YpR1rWl6PbFKwgu5VF8yu7ebh0p1JMoQp72mNcr5-fkCTNiOyTlOUEQ3A2RQfCbldh4Amxj5ss_2wfnUC5Jm6rYoTYIWeySborPtn4YqBTSynDAqBUr5qZ5Dc3V8YrDNnafbUHYVZ2CHWkheUCFFfcMpkwLNu1pgi9VTtO0YlTo7hYA-Y16Tl56i1fUy0OlGU7xOmyC_Na7pierxxGeqMKv6wVE8IBSM9xcBU20iqhwUN5Ql1cVI9GxNxZh9175CCjqXtoNm3Z1ETZr-0t045fThKeOaVnGOlIJJtHBCwjVwjaO6I03INufvMhwA99LeU3UmLh0w1rtUEPuFFlHJerNK2V0lcw_Mh4Q1OxMc87W23o3XSEf2pWiolp5hGgMg3Kn-piOOmD5P1Uiuq6Gmbd4eyaFK4VjQrsiM_sO7MuyNNJqdTbFrgn7nYXEg_Hhjdh0aTacxlGCbqCfQ2t307TfEgijji0xlbheMxxXJyG4YVaYOEiaitEjfow90nYlbzRzgREgAxnXrdRfUm2Q0n0-ZIuBl5A-TXlLz0PJ3SL63uIP9-5yHaJIIIKqNuZi13PLvBy2sDAEfkiX7fi8rAvP1lRUXXacPijeAVhunNnLLK8p4IdLG_miogK7v2r5fs7sOcnkcgdw7ya-8hpeqAHDN1b3AjUaWfiev8yUb1sSYKgbFUBu37Oh-a7A5_BOvvGKVFOH1CBICUHOF-TQmvfiy5EUERi5q9UM-sQGZciRrCYS_CznbYh0Za1hA0jKeAEgp5fEASfCUkGo-Lu87u60vIQaQ2-MnlufFq6Q8m0GHAp0jTaz8vuy1OZDjH9K5PshKxmEt8neOlGbqFkCp9a-y2ymkFO8Zlw9vPNLd7Pa31D0k60OwZ0LxSOehZR0myQ84tU3345UhWWH9ui8lVrYJZDvYZAg7pkvWdN5ni4jyeez_6DOMTbX1VuFLeV0q1S-tPTr5w12sTRR8j_g9cptnrS5jJOEq45BDTM7WVqbr-jJLgOy02-g7hpRF8KjufDan2eIbCZJgM3tzQG8HqWXr9ar5k97f0-Ke1sj1c2aCIZbpeG0WslZRpLEuytSFWVswLj5BjVQ5bEI_MwE3LJW_yFRaZ-1MV2-fk1unGa26bdLLpxc0U6xbU6Z1hK4gWJSuBYfPqYnoub-ChwtP8ZOnbMjqT0P8jtW_rjcCtZuHUmvt5noWQgJclOOZJpVXofDDVF5_G-sKcWtkAoLmqTTOO_b5pyiwEO7ksmdyf5GKl36Y-fghYEoU3JnsU774TMf-PGa1mL5RS7vLXb0ys-7C_nMvVHZ7Eix3OaqHVdy-xvm6YclECpCNlo_FUl-c0ovXDO3c2aHifrr9uOXnt8yitKMHKcj6W_Jnkq7KUcW83eK7jJ64jX_Iz2I00Dw6ukgK7bIrHT9eQ3vOPwEc_VLhWIM-83f9V0NzOrZty4Jnl2MrAm3eEwc3G67H0MkkXNxBYVnJgvLQ_NE1QjtL_waup_fsX3U480bMwKwa4tpkz_xhPOOXK2LIUk_W9OO7wssG-qPnZl_iIHohGzq3N9RyIYaVBdoqf6Ef27HxkX6yLaadCIBLpjbrQB3rr_grexXDaY7gu2zzQ8j0aDup7AuQo3HBNq2xB-jn_IYF-zmdWcUYeGer5xlw4-lujP5ftDTAklRS51nBnKpTv9qxMyDLDFL7K3cyNaGRVdUwbvd1dmERvk2D6ijmzlo33wylS3igIQopUF3VRMpkATPIQHUK_xskfVmIIVi4nnf5cXZjNw6TxBtcIlEN4_U7vbB5HiIlv4huhkNyXSfiKldCjYf6e-JYtq_DprgZ3AKnlCVfm_uzr3vTUFnfEGz4g-ew-rVprlf_uQPGsFj-LQTbcSKDf4az2tOBlky_AzLl5ikEY8IQ97u9amUyFB3ePH-BjU6SJhpXIHCGBi1zia591ydVQmmL2oo1dToAkxTomtvrk9ehaZcXwSEHpqdEpQhGE1VMMmwF-1cJC6shzxi4MJKYHzFyu8qTI7bztuLHpEriKflprZ0knmcm6-e7eUvZ8dSUgBd_lpIzgLg6zxPHxL6oh8ZuQJlD8_i6MfNTNaSS2p7fEWU-5qTYNDlVIk7R08A-A6FUOGKRprCI8Ejgatgx5b1YFAM3w5BJoMJh4eADQ2G044UHGu9Cy1cTfrd5Jd2IutX3SvBpp8S2kD7ndTgyKiw0m-7voy56nQ7ALLBJ2qH51BPSzdSR0RUspzkyaYQmSkXkiBVl-cFG-8X4N6iajWHqMpbcjPq9CB-spmbvb6HeqrAp1hzuTjX_pIpt-NRjAcgPwcf58baDlBYwrlNOvWaRq_CKhgi7N1yE1iPpIEropSMR-Fu59bx4ZE6YsC8Sl0A8h1StWsZOWhVPr0BKHTtC-B3fZ5FjXKW65NywOyGDLOEsa_8Q54VBL9KJGXhzCWrGaKRAYmUXqs6hAcNkFFHjZhPQ7GCFiRycbQ3LvkkYeRlRfolECLitAfikNvkVOQMe2dCBMKApwPriszS3dpv8g5vrciiUyJNZZNy6gAXDQz9v7mP6Ed-T0d9OJYkCofyQb0by3u8GFuWcI8VQdw_JQ3paInH2cpNewdfFZ2gzbhW-5cZdoLH-mq18GR8x00KU0WGEEreSRmQ8_BtV36UWoTxYD_WV29ynOFnEShe4xDxDpvTZRlP3gdIZrAZeWMAeN-QBx5u3EUBrBrJiqQGKHnVaOwKPcr5J5ze7uAaavmVqOeELRui174AeS_HUCh1-OMrOEUqZVuYj0Xa_QYCyt-_SggN_aqFEf7j7BuHA13t3ATmq2597AeTPS8-mzC7DENz8C5GNSUYE7rk2JnG8bMNyMG2a2gkVegFNSOTL10juNCMpdoRN_xpzt8n60riOH6ZW8G3Oq8OsUGpFinuPC4EuapAsPmBIB7HcP9VXjhXVhHfIIJX94z6Kf1RTCTeBSk0X3gJ5ENurxE3W1VsplwczjSc4Znkr1MHlbWjQcVXM6URiAMJidvyTLP7wV7JQktH8lMWVDYq_nFJpQixAo_vizpaa-TXEZgfO1En5W8gFqNZLucFkZ9fSsiHJmVyVMpGIZqz89xd-Qd9v6cdLO08zDvTY7h7N4tfjj-OsMHCGbQ9RMnWcQiUJjHVuiJwFD1NDdZAKwM2Ua6KuOI8AoKF7zloOOJTNfBuY97zBzBvZu0_rdUeNxbMpMSSMjeVzSAM9bZkd3s0rezcK2hLPtz3K0rv7Ys4WV9r1aTCm4iBbaxaXNPfoY9gPfdYjfwoUUlfiGYajQIgZRFzgy-eRoTuCQVpengWpYDW7SlN-1QwLI8Xun4lXpX6OuWDEe5vWQNQiSvuMYxvO-f-7w2PS5yHVrx1pk5s6n6HIwVGkLSR85CsWFmbrmtmrDIebxxZPKH8mgOH7p46QwmOgdToxC6VkDP9P0zGtC1PA0JyQGH57yBE2GFxJnyYZzl0RLB1ZoiEOlBwQKx-ggKAq0X2Z3q4mIlrUPOagLgmelny_AIuzSMLz18A4-zcAMomMfuzb6FOrgQTz3XlPrmSnqNnSW37KxvWMdVXqg-LURASCkB8Z4bdG-1anzebyNJoULi56yQQMBNOWmktNE0uO3G7C_QAcAD44m91m1ni9-6W14xKe-kemb09NssiNPCaR2dTpNkI7s3toJnZ2eAumAWv1wa97yqwuePzvskpzEToX_9mSvj-JNjemHMz68jsG9iZu1DltxzI4hpNOZp79X0RpOFy5eC4if5JoAvqxC1wTH06s_vVBlnaXIDIHkLWyOtNgnnxpNcuXdz9Fh2zESzOW_QJnWZhb5Y1TtPJPYBaBNXUV0Yb3vNjTT1cS_YUCOLGCfnQyWCW_TZwCDw6I5iiL9Kyr0h8rt8GpnSUvNpNp5UFy5qE9sBX17xYmWjUi5x5SBop02g6xx88oIebJzZwfAktTXqMiW8wUpG-kHblaYQHio_qXpsuq-M7TQW0Q850QR9RFLYKl2i8hv9QVdL2Hwh65tUOshzF2d-VES6t74AIdiDI--UUiqL-4rZxsMF6lfjeqK2JqRS0bq15CI5_eN3Q6BJwYQskKlpvd_HGXgFSAqYMDDYxogYUes1N41Gl94kKSiqYK9ehRoGZVyPh_AKw6SSKEl_xQK8r48eLYu8_CcnK6P233k9OdymP4vGdp8A0utn_v47vVR36-TsZ-6wj_MvW2SbYLl7IhDK56p3pplexpDSV8YYRFam4EihnPbp3YAMuYowIHou6yTVf1TD-ULccPN_JNcLTz4sWFTExiLWu9Qu84EAOGwRnFTD8T6K2PFI6sKJihMoChLW4kahUaO9v8Sb0DYCyQ-SOzU4nS8zlcT1nVYNl-bzgfOu46qwBuTg5D_dgHGeZH-s1thyAkwa-nvIYwfQpnx3V4ePVDJYIxOHMq1gAPUS822DJ9R7rMjv9iyH22696qWvmPFOCKJfNNxlP1TVZsOcEjg1sWDbuqPIYCUZd7SM3DVc013TCO4pGZerD1H6bfjA-IFsj0sa3CiRNJ-DA_y1LZkA7J8GPqNFFI90OKMu86wtNczhF0lluj9Gqz3-qaP6PogpFfkjA--CeadmPGC5rlHDdozelV1vcpAFTNOZreDANUc5V_KF-MAemflVkkj3SEP-Mc_casBVGYI0c4QAQ-IE7hb47HcYF0V1bjZg_fPaB-hs4xIS1O-nAmiOt8SPWQ07ReOxm-tX08O2lwrt0RLLNZIHUdm4jBc0hyRiqC6thVKryWtVdiG41qbejETdqERUagwW86oUSMRyugaKvB9-StxdS-TJj9oFkGg2mjgKR2bBpm6vSpJgGbwnpnnbDLMMdawLs8pqp0KIDDKTzNMcdWv4J5VY7FeIAv5Q4ivroSmF4mS8qcJoPX5FcoDpavv1lAOZrJS5Vvd5PfqdMgJ3EysDOnQknYIOdf19K4OErf1Q3dddYMGX4eaaKVSpgalfaA49ZFW0exF93wQfCt3GKrue-0BfM2acgQdIG0IZf1lNBiDka-2gRAF1ip3PYecc0RsutsIg7rW1xpEmg---dXmWylsAESd3F8OdpmTyOrlM8mc6NfomGU1qvCuXYyi2IxhxV6hBIXdBURIX3y_VaF_5uhraH8TTGoqBkSsgUQVpWLn_TLgVb-dOzD1bl7bmY4ehwUjfUcsnDfbclQo4Pr6Fvjku1t1YAH7YMmK71T9r_jNfaQPHyBrKN7OHZ0_Fh6zBoIvcJ4w1vRXqeeEW75BkSajtgIuEYLZTHU2Fn9NmStyUrswNtTkcFJfs0ofbQV7fVgik2iJfyvSXJgfWEm9-jb0m9VmFleddQ9JXgNHB8qFGVZHus1SNHdPu7-vq06bBzsAfVKtWpZkc-D8BT3OoVVAVrep9Je5kjdHwTELKgaGFJgg8Nft01Dh3LHPzNdmDowhL0W5A6WSlUE7r_U2iiUlfekgicZfx21xqE__8O0QB0wPC_lDloZiH1tJsTOC06bFQWMiv0O8FsMuTI1UkgdM2ubGx2CxAR8ZELZ3we95gWYiXvWeAptCW_CZg1MsBoje01oBgY9rjFFFL6ZLGuEXhsdFdzw5QbLVFEJxqy-VZMVJq6MXCZlHQKcJdFctNqPhuO7IPw0FQ4-MWVp7xyvXexwigIwgbf8I9po3h7xnoq_Hqezm8Lya6BouO_6eA4yLKNLb1Qp8OzB18k-i-MFx7ARevkU1LNB2NwuWteTxy_HHGi_PcrYZ6IvtjvbDhO3iF7DDKfr-wuM_XGjITdpla5eMvgfNHFuoBk-SGbU14MEW82tIodXUHwzmt6kPLRM2sw0cJ7HLx02hPRCIWkIQMnL_cSa1FdhR41jyXdnJa3faPCNwqJjfgPduTzHAG14JgcB1BoS-718fvH2ad3Lxw28-Y3qcVojD95v88eiDIevxLKpG80LeCdMQusE1g2U47kfYHlg8IgGH74gRT1Cm0RgKBAw5DGNz-v52VuV_7mKCHtbQqGLd9ZR2YmUK63Kfvr1OkRq7vCNNBDijbBZ6E_rKZaspt1-W1P1priDaJ6WvzR1xYzWwyD5iK5gbCZH5vyOLg_IiAkCrSEiKAu304XJ8Gp2Y0hM8PWllukjQ5l9bAqiSrf2b30kf1BO-W_IyRKWgJgb-iSQd8f3dYfeoQ524BOq81ln8Vo_j6OPR1t8iirDLfKesX_hMclkXFcgP4gzf7CK_1UBL6HrgTygBiaOKLBYoJ-Xj0A54lJoynsdv3QlfqyD-gxCdu2Yvf5csRFDKqHMEOB6QrXrtEZTH75WXppv11FJp_Pwkd-S1st5OqjvUKkrjN_ML6x79paT1gQ3nLiLuSST2Ora6QyPgTDeHagYMbtJHaNJX7B4QJp7DfgrNB_nxPFONfWwyOSlL3EHeqacPWHSX6uWtQJGqcn7Re2p7mYMa-NnVA4KHdtP6rzkB1dJIgDFj03peYH-_zlCmYPywh2-xiaPERbU4Fz5TCcMcdGQX07hlG9SzBvXiELLdU1upYr3v56M3MnGF6ODB92EDmMVRlYJmGQiZT-a02bODa-C9qt1WkslOgWjvnZWeNqxOlJYbTo2EOuMi-x3OxmkcatbPMdpqwON3iCWvT2r-R3a13KVpuqCaxyytpOpRUaae07BOiEEjGLeeWNXWK5PaPEJ1bICD-Q9kqLnteoDmEf-FSZMdrvZ3qt6RWbwEBvLidPLe5KvycA23N6vMXzC5Tgo1kA7FASRQU2sDqkZz4PceKNY5V2uQIRe3-rtvLQW1SJnveBpoEdPMdJuM5_sO8HhM5j0BUCJqRynkRDU8BT4P97C54hHpytUTtRNjdBczio06LC2-Kpv7Pw17u9UY9GAj2SeCeCtu70OMkK7TuyQZ_7Lr3arIk9XWcOJrE-qwrVA2e2DsxlMO_oL2wjmyZ48Dzl-nI9cIpCNEbuDmFaHckVmE6_kbRIEY11OXPk8AxptbhwbfuZ9cgB4Dyy1B6F6vs4M5jlzX81ZHbKAdvssWffs_Ghcjpl0oitK0NvW6uox6knrC_vu4EfPJm7fFdzpGSoyM1oZ3b4GzKn42d_u3kH8Eo2QlGowTKZZFbq7PJk5azIdOGirCPKDs7Walmt5YRQUa8-Abs6qAvWo-iH72QLJojZo9Q4iG5BE9WBQiJ9NGzowyZgLYbGRe9whUEEWGBfkCNJ0pAUaeLqXgtKuDd3kYbvJkv1_J3B9SfmcnPmhnnaWdkiAFMur-dqG9s7dhOoljK0H0o62fGgjwuaq89iWb7Yfh3_UA-3MnaZOoCtjbGxKGnYLcNeYxYVrPgMS9n9ukr2383r3hEO1VCTwBBDRsGZAN7MPQ2TRQeoFLmj4cy4TLaySnV3qOTh0Rk_YBBxIo0RxnnTF6o8ciasOC7GhmTn_RW_gKmcvoiEl65KEvVxhhNDV9Cxx9AhsRgAGkQArkhbJyq4RwUC0o4F1FqFJRdP9LCOrY5zLu3whNjsnf5X2ItEY3QAsCgsUJpIK0BBRpetsnFkk2gLJH83uTw_0J25OG-l21wy6moJ7NXb766nsKzDqnxDTjCbm2obbLxnnxL_4Sie_bS4O_DNXdWRKxqFmoeEKHAV4B4Br49OZHmoDi-4W8RmlZUZm-uwo92XtxnD61RDmIfDE0lmHNAsE3QgzMD89Tle8fBgO00sjZZAWPC49lWzqQfFayCwBfkss7n_oDrA4GFNl5EKspUXPeieOU84b08nTvAMg2REZQEU16tjh3bPwkSGOtqGAv1PuwRN4rXrprnHA5bssQ1R97Bv6GjKsVAa4aawGOlaoeJlOPOH6wCkmL8YjtKcJyE-9vhvRNsjXnCgpFkWllUoQhXINeTE2g817sH_w7iNHqTaCh2KggyC3CTiDrjnjIn7-ZszhtWzBy4tUFkwhf8F92Hw_jCiLik90Uyp20LxX3WdG9jML1P1eEIlczofK5wb-49MBRP7AMCWJqIj119mrOAIqapjurGKDc0y5Q656E9RVjV6AS-UAqTXRTmI1BgOTh-F42twxDiNFii3BR15_QzlKEGyMm2s5nT5IicxJw8XzJFkOCM07dt2FubECBvqCI8O2JtqkiCZ_dmvsYmtS5Q59wQOwR_FrKsyilfSbarShep05h9IfpB5FvgGirJb54h86bQ3NJE6BLvilD1yr64Rjo0JFq9YIo8dNbibtYyqLlsKtwPF1iG8akHIo21USjg45hZyHJFzm_1BD9vk7-kZoOK2HMA8uuk9vlcFQY9AgUJKkfV5vId8iP6vx1oO-b63GWlLvTqF2P3td6M1GhAE74z-I7pkMap9oAxhdRz88A871b0jxPPQrRwnDeBQBozUwiQtg3ide7FCnxnQaA_e9HVlV2WEL1eDgrwO9vIjHiGd_ucmU_tOBuqFu0MS732PQyoj-ev81yqSs5xvXWHrBlTE7sLR_xBgc9rbrcqkvk8SicEyfFHa8ejhsJJkhxqgdLh6AARzxqcsSu_8Xk-bIIBYkjsm_nYr4kk7MtkORR_-L-xU5OPGH2iGPQRgRx5lVfGvKUWU9h4f2v4w7eEcKU4Yc6g4RtVvy6FK9YqyT257w_klmoZFbIY70riBd7UAO9OuK9Plln702-FIKaHHcnvyRW5yskV9_dqei_SIb3r7oVdpyQoY2F4Gy6Aj4XDoE1sl2Z2Qw34pftoxB3qTxP0vCaRCHRoSZ73eUXTPF-QuWHWuc5UdQYUisbfMQn_C14lxdT5mHAXZAoiOcQBhniahvUSpIV2jHARqk05cj0UQuLiRBvj16e1Mcuyx0ASGPqd9X99pmZU5RB7GmjtH1hFjpqUsFfAXmoHuFsNuq1FV3Zz4qO2u-AMT7F1ol6__PZ3d1ROQmz9_7s9od_yO-_LCnQT-hasrN7okNjqiXB2vDy-GrmOKevArvOnBwS3BGKl50jdSr9pNR8a-0JAzcAYorvYQYTwYnRe6h0jmjvIMgI5iiYp8PqKky1u0vsu2b1_v3f4OfysgSzDqwyfvdelQwtBRyXzWMa6zVY1jIQ3uaMdHnDZMzVodf98IZXn2TOmccO8PZRGsOJUiRAUo-ppkoOy2iHGBsGYfiHYwg1Cn0k73_mjn8QCAhd56PzWkGm_HIUmfUaCmACgcj4KGfICrMMT0bClRAdKdMru0RgYxLfgQu80bd99K9KftgUh90tK3Kgygpyqf-SD4YYeY4RGEqUiRjzaI5Ey3COR7jk0OUxpT64HqTJEM80l3WnC8t9Ts3Doz_6RMybqR0HIMoOHGa3DYPYOXZRc9xVviNUdZt6rz-lKmGgjwkCfSgSFHvqYIVvUovQaAAsz3QZhSqsu0WPeNWWH0yeBqB4MZgRBbwttbj7tuTubPsH7bsqSDT0btkr_1KM1uIMQ0YvFFkLad5cr-23YYZiS6nqCTRpNJqvLmonvIeck1r3yCWopyim-25gN-Ck42U3a2S08W3vco2dU1JYYbNK1onUrUfETHfwQpoZJWYSNomQlSjEei4qWhj9IYnrnrD-kJ1WXZgDYvU04I5cQGD6B3pT_AM57vNeOyYRTfhs9x_5t6wxRBPDYclOfZY-Gxa2gr4lfV4xX3-n8zi2KnkDTOENMcFIUahbm4SWU4qqVoft-UAhyOZabQ6Qvp8qwyITDmrnyHmUehnViKSAEJ_iRkpZY3vZB4NkfSnDGEcj6g8iEGp5ELGX7frCwKKbS3Pd0BCfLgqq4ycgzztL4d-VOZxwToaEvbq4_jq85MERfGVBxPhxK_QUmc5Rt-wAkABmVrhi3eCvvmW1W5_FY4bGMRjXrK0dawvKK_gkLEe-Mw1JzM2oyA5-UmBGhMAOCjRiTFG6L7earIZycuPdJrFdUk9_JP6WOEMenYioy6INNzrklmqYzzeeQuDEhS8Gu8LLNkMJ8n1J-enqT6ZUgb0bZFu5mQWpxvcw3oeSuhmUhEOwkiCtEdujoJA8oR0-ZjqCbd5Foj3PYcoa-2cW4HZYVkirNj0zy3NHX6sCHMVYPAwePq-PS86DeVoVacsMAeHMn9AVbZOexRs7z1uOadZ2mE0LFzrtP0pzLc-UZIdFhBy77fh1mSpKpkPDna3ysz0VJABpOJ2_2AvM3Sl4g6RjxIwJzmYhtfe4dF_LIdbVnVJxrturKp6GcOht-KboJzzx8ntWfowUqWmm45OQO84q4Qnx1KZwFHdspL0FGipYjuCp-EjAabmLnRtGAw1OQRGMdMB6XHzETtyxDNyw4KB-2-3WKfns2SBQjR4PxtbyGO81rBt8h1b8oGnnysl55EIwG1ZdeCFAwFGdQ4fphxCsFWICfHMhws6b00PyYjVt7IySJmcpI8sbozm5zLMEh0-qL60pJf07-_a7Q1duScA46XzYMeyJd1CWYkFlp-5cM1OzzcgMgY3gMvZUUUdMeFrexoZxrggzlDJvRY88DOFIFtlgG0suIRAGI5cD2aW2bCcq4PhYs54xTPcR4ZAiSuspHoZ8UMp04lIM7n18whNjnyAYeBZRxInEAy7jb3XQwaxVOmuPdJBlrBM5tKCcZyuJ0llDvbc6STExVr1XOSSj7YSLTrstfxkT1waXOBMBknv1LgH3LYJ5YAzKe8KqQO5VSt3IaKTJjkrpk2urbAxA5FWWT_d2q7YM5QK1qTWZbHuiw6dmyvlfG-UNapFqriKUhWWVdaWAfOEWmT4vGPxwiwtqvANNBt5rx0I-LnIDnlg17184KtTNgmkXE1GDtRWYWBk0SNMwmz_kBdzxy0Zqf4fcMNJy0kGGZHxAotwdp9V7ipvDNc7khrHUIgdP-JGgeL1Wc8tcx0AGtPFP_WQtoiT1J_H_KHPrxQ7RMqj-F9m4zi7-wPhkhNc2Xs_xsyxmr9TdNBJVRpghpam_Ql4uCaJ-Zaldz7XpxctTl6JWeh_HzOwwxp2Lr4vGzqSyM8RLL9dOD5aq4nXxLGa_jYA-Ty4Z3C9NcugS2IKbs73g8OqtLNQOt-WycFIsugWCBBpB8PdH2otaM_ZNqwM7mCFakTkG8z_UaHoJZA3EMo8h4pO_7uu0PrVdH9eb-yLYJk-PozQj2qTU5UNmneLuZ6k7-wb0SucOdfqjXwKXKMBbLQ8VovBjbGXUxGn7Z_dMBKDyIpfJI4BuMGDw_aRTrz0EXQHOKD5i78PmEKt3z3DIA8b2iTGVNVi_0-yB54ZLX0nzCCHkkGUo8Pww9-oCDTOdIhP7SZes2nH8oYfGJmzxRhtylTrmzG5Q4OU4BGIvigPq2fNbioNqIa7VtJLTgT3TTfDAistthZRtoXWpp_uUtdZvsOElj3_k8PXfdGE4REopY0aO9QsM7EljUjmxdvPAlS286hXh_dvZHBTh7IIP4IPewjCZEUwDVhed2g2IYQOqavLD4IA7Av_KckM2EQ0GKcgwxnocy4xQ-1tpXiPxDfDNBGsWG6FI4y41SfLH5FYBx_d1H2HMbjoclnJo8msV1CW3QfeFRRXwn_ygA6IaIo21rEIBzzHobqvcPMnojoJTlphxN7EkmDyXKx4MBcbzOus0JzhgwI_FVhJ1GJgj3wQ7elGQ50ynRh1l15yqaz6YjhueGd_YKKheVDwKPQBTpJjkGRbLM48MiLSzyQWgzLtZsOdFf6qnnpNlJS-Hcstx282WlF4YXFAt78vhamEmNgsmhi5wu9kx4U6z7QKFLl-8nyAFXp2oLa-ifUGgfJ4dxnjOCLFY3h6ZhTYiunODy37uP3RP7WTs55DSEdmHtFvQ69QGbuLvnIrRDaDHt0fTk2KdHdP5mLXSna0N3_wl-fv8I5aNlZWR-Gs3CiI1WhcFbIbW4qP4vheaCkE08sHa1BahPLRQmhvYpJqiahFqq6l5t7UoiuJ8xBOub6mCWU3hME6mTTE49Ds6WnsQYEnNYL3DhzUEGtyRpmoSkHcI-sYNiMdDz-ioiZuy9FGSWkHnCFNFYJkcswA4GQII1uvc5EWp9twFqweQGAdY7qvJYRpgJixJNqd8OsPwR9q_iBEa2s5rkTgm7Sll39j7KaBzpbglVK4gxXVq0qM-2GYV0Re3uxe6-AZ7mfKfi-LWwFBxhZ3FKmEMcS1pFKINjeRY6NTMHWtbX4XVOiQWhVjOeF3tKnXv55offtoucM39zFZBSJCYwzovGGqkugGKFr0Eb1jfvjaf2_wnJJnsRI_6Dj4pYTOhJ3aGmcQ8YAD7rtm7qN4w53xXR54zbLeZhilg3MNUvlbWf01BqH4pXiLf72C6qFvy3lVGOubbiXv1STTYNRTCRMpybJOeQNzGMRVfq-m0WiX6CcsdrUXJp_9NT1SukgLDEfR0lWc9MK2UOT_XZ5Q71S3dXRNM17R_7E5RKxEG8BnYLqwE12G_3vmC_lNRMUZqBTF7VDcUyWBH3hzMH0T2G7lMamN1XbLadgfLkvIzb0ZZ2Mw97zg_ThtCG7S5_oIk-ShVcVmygKP_VSbuQIJD_Oa6EgMUEQZQPkKsXuUedlM-NDeO1AtoeEFA54ELP6VoAXOlmcuwrIZhot0ohFYxiiI04VdhOVBKZTTOFajCKHR97hkbGOCWAeo2x9QWzkjoc_DOKmEseY14Gys4LZRsINjBRglAQeui1ZAVoAJ1dJUvng6RbnJbuy6yZYw9QdlQRIHc6V82j-yoq0pOOhxhtnM6_BP2tgQeBkbMWzqGPFBHfuTQnW5pn-rJb4RylmB8Br_IMzfDcwRqo1KpXfnytgsFZUQLhGaDZgR4EIRoV53j9JyslRGhYxM5Cqnd9MIQlz6cxWUF-tJ3U3RGSYM61hTWjZI4Y6v6mGmgRmnXLE8ecHaNmLIQH8r-B9DMxR4dtwtJjSeZHeCnHQoTAYCECR8Ee4rmyEm5ys22kkHEyUU6OcKiatmrLUHmVxVmhwIEG4XCDlLi-WB6pNNtGHfwMcAuoFhgAAIHHC5SJfyWwmEunm0uYXG9djcRQc2ZpKOTZF-ZaAwd55GY-Yev7GS5aIOLRX-eaO_kp_Ipqmb8_GL36oQyompg_SynhzM3Va5lvPWBHfkGHqkJVgce8yDN0V8fBBovLullZApKwwE9iZ2R8CQ2qJe6GV4TV3yFdYUOnwbvsodUgwpzSj7cs-uQG26hNL22WIVt4drEhuZVgr1fyZtHuyr0UhjVf1DCTO5Bgwa5IXK2THX7jvYO4ngrVR2xLabfGKOwgfy5bOPgcmKGaSSvVRls2fJVq1y_Ud0wHOe3wIxMUgpneV7En78aVDMacRKZI_rCoQP2WzVU_MC0DMG-0FgQbVFIpWo5KQzAVn4N2hv1rGijw02Ddvj8yjp3ZSjyGxeKnnkIvEvx0QcFtp9f8FeIz9Kv1R7QUwbUI9gOOkv5thmKPUaN6LPxdmOVKd1ffUTEZP-houIuLujdGX3Vv-vxx9yXjGvVrdvFZoFKz9apeVlpYv_nNGEGxTA7drvlLfmyxLbIfeF6S8WMa2PolM6s_AvAZRFAs2kvMqbvw2mtf_YAnEsMsoArNK7M-p72UhyLngDXitloqgm_-38Zx0DEXxfU0KQP0Sc2T9XUkaU7_EHf-c_XFuK0eLK8U24DQMbcImljp00zoMGA6lEFxTssy5yuoAslApnFHsofbJ533lrTB3z5X5PVhuE_4KRLd5D8W-PyvcgcIlvQ_xfGq0-VFg6YKsgmNby8iIci793v56HNSsP5eIfColB1w2Ju-oneHXQqsRBAKFoH26o18eiDV_15tM8vVS_ZGW4AtcV-YtgBUjHTaut3s9RWe-5mZiUiuF0NjAs1wS7lQ4jlGDvRCTumN3U23pTnUSDxVysVJv8F39lA638GvUaz9zcautj6lnmj3TUGJTA8l_syo5ta-3zjhTKSX2MJNFQ4mzfWxm8lKcfIy1ACwySEHdFKvqQO7c3l41eyjWvXT7h4GGeTcOOhKZ0_LMzXxpOCkfQkCRI1TZxJ2BOZuFhxPmULfXHtZbPFREjHvJftIoFU_D8N32ZBlWqN3fbXkDAU1oqL579-My_GIQ4Gh8HsrOteOlWw-IETI8cM0GM4BKz83L0iYrRk6JdaMI4WXR1gEwPEOIKG2f9Na0Z4Lm2xVbaGcifVwQs3t5f6mJiNtuwRKFVRdlU-EQ36UobTAyFWtdS11mLrphShbyy7-Ej3kdlW8pIaiGCN6k6rsiQjfL9JgCg7PgC-BfcBtv12h9GdqT8y16YBEEVcdrQNYMg6r0DvLwsYrHfcgAHSwgLITSqUc4lAGHqD7dwKKWguuECdWHZQ51ar-0uGukn2duUkmiwV-AoY0a6yzyMU8ANjwZdAXdOSUWjK4b33R-dXatgxDZvkp_zYBwfYCAbyY-Xzb8fBo4H7ctkKABuIa2EdR1yBvsZRaPadggMRZ7j6twpD8PZrXbCYI6KRJ0FsvpxIEXjPnlnSgtA6JKbzyyv8Rz5Q9L9L2EZWRmmcpvmJhLj-G-dAN9ZUlvXavJzSocRBG85jPKfXFzK6sjqIw0tiK-ccLiwYveEEzl7OTXD0VnqPZZqW1BgrJS9esoT_WZQeTOgH20mrJeWFGzNDuRnKJ3BcqMnOoq9MBxuqnRobNEIHm430rSulyWRF15ceFG7r6RkXOl_1glF1jdiqBsGLZTgBa30RZOV5hzWU9kZtu2JC9Sj9LWkxQdX6aTGhSKeEzZAfNn3AIpDi7OxBZRg4x77GdgApJxNH9F85DkNBFqyhDrQfC0850JK4qtwjRCfZWpATwGtT_5gVAvbHt1CetS68sUkGwd-sAjwruoFuCSXAsCGpqs9l_Enm401p3ramaMyWtxoPnc9cx6QJMCu4hfO2c3NeyfVUYvWndDY3fpkhn8M_4wVVYQtm6zAr5LcYa9IwxhXiwgqD9tPM69HwqDbUv0o3e054O2NSFXRkpwCb-kdQKh-UbCvJ_tOdoieHP_k0xt9cbTNnLcQ0heop2owAN61ZIIl4cYbvGP1cA-i2tUYD4Opyb0pgiL__4YRQQNK6Z-2UurBqdqG9peatTq8dgm_k1mFecHd7HSU1DPiwS_naJRVx3d9wzlfaLJEu2Mu6ASOAsRnGK2O7moWDEDH7I1F-_xhifvl0JOIErzDfLxdUgt9zY3OblWm1ZP9IPAa5FDUSBS0Pl8IWv7tCwQ6CntoNXCfoisIjhbIomZhgRHEJgUnFLynWPsPYlXg0MqOOP16LlO6kZFcUGkBmyvNQf-1JuSaowt8NlRCMBVE5oLWYHsVBQBdf9wW3yhtbHtthVCdWIDyFspUw3CmRKKf3ynXs9VffDaQ3V4V2xySANRIcdoBi2ILrz2UP5kQaKS3A8D9xq_PFCQr9l4gkUD8WKx_HOuGh1eeMaF8fkMhA1mln4tfylQf3sngiXNhIz2V1Q2FnnHWwJ2WpRLMLaPSKjRNnzITfxCWOmoJtzLvxffesNesYQwOnLiXm4-T4dY-cD4CA8hYu72YuZgTlzA5Nms4MbR8buNuAHIAJLZDifQBcmkZEiewxr9qiAxvhx-57jmRAlko6evRgHcWq8RN4jfB7f8vZ9MWBf0DJccEHKr7syrO4Am8ClmG3uK1rJFNETMPJO9R98cUm4JR__5zOUKI_k0cREndVklUTdsqxcApJttRIgRFi-ycfNm5tI2DcWZ8ubi5E9vfnZ1JSFAeiv87xwLc7MUt0tONFxP70sTl_q2Qn-3vivTBmxifYwGb5L1Xq3DeqdkahRk6djuXQGJaNCIbwnRI-pSm6QD8QA2ua30gY4MHJuwyTiiNBQInrZP1SRN1It3b06C3QcaWCO3LPRq0hWFO700IHSc8vYgIWgmHYoePaNtIdYZefRMQDp_6cvdjkgrQkuaHx2ed1La9kzyWZvhxS4pwfw_uD4stEkXBNJl1_OqVOKuTGusbAExt9mKH9CP7At-ffQIirvleAyJLbrZ0g5mU1LGlSv2CbyHA83ULpuCoWOWBFtl_ESX0vWminavorVSN924sXV7971d4_GGgkNfpFvG8NuQWePrL0-gZSyiEQ4eP9zBJXws2gdnUFn0cnb-akozYAz3f4z3HLqLz_-1zCjhuSNIcFukxH6jq6Q3LsWHpF7wZenZxznux0KAW3_-1TkoNXqs6GtQOmHy_EpaZrVOA61XpS_FInMEjWrqcgnCYPG9BtLlCfAqYk6dA_tvTqe1kRDXqi3Jhz1xWfQS9M0m5I4oiSvW1kauu6U7OZmPifMG02NdGEBt7AAe6JfWM1gnny1vAVFfI8xZAVKMI8IpdCfOgTVmbH-X_u_e5gaduWJkmWkhFS2_YveN-x7UpkPkjtg59rBAkaesCjqoscCnkMkszg0fofXKVX7GJwNpLLfITCBgcdYAtL9tgddQg9uZ7IF0EGk2vmX7ENT2vdIFRuD8OFrYu7kld4Gk26_EozdfW-QWpc17zRautOpzwdnwxXunrGQEmB6rVMMXdGY3uF781jlPhaBcM-zXJ3CyX4yUWiyuLs_DqCSJd8z71qs6j4IQO9Qx-xAbCnWHy_vUNb63aH27huJoOFGyjTmUJr8Yr5gNcxvc2e2RLjGo36MqRde7tji2M6NOeGaKEVl9CrAzJbW_0hYnnvdMtGrn1eFC5BojyWyat8xOeXG0dM2T0dB0npzTe41GFi2JrFhr3GqsBmrQ4ierJ2KBq3AMnFhOyoxUvOwn9rjTUYLuz_whJc-Jc6GgLj3pC4vfmqIP04mEMNVHKFcUU1k7M74a9MLbgzzO59L0fDGcIz6c4aAHVaHb7sRK1niLtRJk1x_UpZDQ-dkFqfIz0FMfusj_4MlQPJTaIjmWd8BF0Amew_LXg3LDAyYFlRGHZYYeET-AfXqk6dStoH_AxA-1xF4jrw0VCWDzvW_sEW6PSe1Qm3Mh8ynnbmPxXBhToO8qCegfXRWEjit6i1F0_72royE4AnAO0MlBQ7E_X3_NC44Xma_3vwfwMzWG6_OfUvt_mwMaDDwtO0LLmQbWoJGmjuTiCVd-4s1trN3QWClDlkc9NPOGsmVHlZMsn-4WRavSUMGrNHMrz28vgNzAHqtWtdteFZ8DAnxl7Fwa6erJtBY8neSxVDCvc88lG6hsB4eo37n3osbHhL0J0L9MC1ktnTZ-EO9Ak-96aGBFGswlRxc9eMOlvf2J-dRLSzy7TF3_Sxk3n8Zj_juU_6rtBP1t6CZvtKldJXAv0m_VRUWB7fx9yewjHBJ62wf721TsdlPDUSif12G7zKGnYCU8eGiQxTM1ANDGQz9YCMl3E8SLdIJXXrMkM23TPpvg6HWzQerSsU7oUSAh7rYvnU6TxylNXoHEqqu0u9w9ib3-IUcgdGEzXdj-HOf9y9xouYEEnMfPJ23rTZSQkOVvEx_IzLtGCCh6-1JQPoaGiCtvxtvvRS4LNs6rMvXdDY8uE3iFbS6d9VwVCCcd-nYZbETHyAoS93Gr1hYKRVfQQuHm5AcKj03uZAO-nJ0ZZB_kftJyoS6MndZHTLK0cgWpjXGTvkMxuYAFfUlhI3yqEB7MUDk1iXN0j8y3ZcbWQD36IjAPPGkLDDX_hpEN7UTDXkeWMjKpRbmnBsjS-_1lSRAgHIVvvEupLEnS7PvLgSF8qqliEA_lJG3_ZbgYjHBvdnYc_2sz54XuMJXtONopZJ0NLnm7uRbcc8H5TbWT8gLcyudVeTto1LxLJTjE27KL6bogmSBtl3ghK1IEghTLIfoOIabcMPEU4Er9qpl5E8Wt86Al-dY-SnHspNHkjGDjJeRTgRnxHOpA61y3MIWcwziabplDzaPcG3mOwoMANArkdrn3LlJA-Ew6g59wGhZA-_sLxMcy9Dm73ki01lldLs4IjQR8lfu-6CFx_-HiRBC4s8Deu1wBu7Poa36vIFpSCynboqPQwNQPQ6-WGrkz6y7VdlYFUv8nGGbY5pFXPlbgYxtw_-HIUS79fot1P8zjT1UAKdC1DsAfROzkbUmImRYDa2o6xYqFcUOhiMnQ2zH_jS-a0mKlm_GnQ7OwG2p1SzK9b5BlRMrizOfagFZSnLcJ01o90q3EicAaKcFfGpYFvWug50pPIZNrSZSWpz0MiimrxVIHi6UE3XEiE49uKmUhG3jeRDX8kQD50P8q8cSFxdGEeyzB8GTUEIYfgwvsAdxtkVXCsHf0hPfMPuSi6nVxR3QuhLuBFlhffQWUPSAEc4X9QdWMcGzrawyMUmVOuHGZVxfDoJpS14OQHPC-bEruye6TwlBux2kjYbPUy48Bnq2hqp_AbmVrDoXgLe7-g2rMd_WRW1Lu2hjSOfxy1HG0Winz3nAAAS4YT1vMfHNAjshU9OjC--cUxJH6sTyci46jNYqC7UwkW2ReV1WReTlQsElH3DvjtehgFkCgRnDsB632nd18dt5oecPdB0ZtSOLsEJAgpO-gJ6Z0upuCdzuQ0QtyozJg2fw1rVMa3AJeIkot8KTvw0xYriDRZIHGzss_R7UulsvPUpXhOmxC7MG0jOeKrNJQwQKyvODEVyDv1qBfZTEIrU48bElIIXU-HbPDm3FG1MENx0ik3e01i6VGr7nOHx3qKCw-qpCVPLX04xb73Oy44oRMjXeByxxA3rpVr1V7OrBJQZ3Jw1YlFcMeh476RnLp1j5cHf5BsmNTk8reyCs_k5WfpBEyW2QeJLhwX8rFTJxTj754T69zeyk-yJQYbM9_9zmcrgPFSbUkfz92dbi1XB4vVpKLwQ7Ir_EchAyykIN5Wqu3pT4Z5TG9PmlKXdyPfc5FqE9pE-JJzucXLEvpb6TlY8WXw4ZSif1a9baNlXlmOz3e_6W02Th0_Kgkh7JymK1OYNNlebdITK66MTsFEO_uvbRxEKIzQFi51t-jKv9W7oysR3aeHdFTNh_uSIVRn293pUa2AomQb9TP2HqDlbOdGZ1N4F5AvpoWuoXovVqKirscko1ht1f8ADX25QyCbN4KnNnx2sDlGh04hpi8N_ZljA8LKkDaaXcun2EkjPKa3Kn_2Y4LVPFGi_m5uDDQYBjxIsN6QmyxyR3tn4NhqY0hybro041gA7MV-9x5H0OU2C-kfz_hXD_9XyL5vUOfrotdD_bX6_qYry8XRSQ2S5oG2apX-xHwCjIxi5c6RMfoLCQEj32AUay5Nwx0D9kolAo_UYF9Oclh3zcaYwEohGcfi2depIOzEkIFb0ItifOOPRtE4bAaj9TTqGtMK5OR23v8JSKGaIPu7WSib9ertnFUfoKDn0x4qXXi94k_CowXMfKPPWU-OSWoP7wEtLaTq0TPlQfKWDhW8EBMsiFlEQZeG3Rz-KHP-6-3-vGDCWQ4XtuQC8xsHII0IJN8aE3GmBvA9eGAWJ7_L8yO_X1236_t0qSmv--1AS43jI8Fbu7p7ypuT1VGpO0U0dGcDS2E4kWHtL9ou3drssrI4SkgB2-oQZ_U59yite7FW692VZi7xlpfudEnOlCsxwww6wymaj00jhHFTo79atSkBkozCM0U_avoaj6LTXBoG10Hbd1y9W-NUwZXLGXd5sUyfJn9v5rfjBGNa1Qn0QljBDm1N-AQVgROMIWC0eRaCRrIk-xeKJL1xhK2wsgVXM5WmwM1bR2D8k_nWtzt15n6i9C77rnkKD1j0DwcfdOS7CoqaLQ3bmr6BZLxp_SEOZH9_K4ZiIqMGwhgEx7tWBiH2Kw2KYSWka12vNkO1jqQ2aU7ifUjIeAqayphzuwJQY1rwoUYbINl-Pe9lryUhtyLb7vgvXMa-Pop9RjfRBSY_qb-A9G05UjoxkiylREGp5BR7wp_JcDSsM9sbBeadmoJgtj_BzRRhnoDXCDByt-95c7T4mwhfB9m61eKJUrweI62CdU5S9RnUXFipgdr1npS7JlLmuV-1RRAX-DaY8ytpN-1jmh0V_5Xw7E-SVgNp_AnWpCyuVngT2KBY0SBXtkG6yPCM7UAXEpglGNpn2465m3dYptSHjBDS6gluUoBKpdzoepWWNtZngaPhTFnbLQcqFhBqnaEJjuoPowoXywN3cPmW8oTbH9rKqsoDYM2TYCw2b99T5KGjPux4Ort-aBXxGE0vNfgZqxhq3ylKF_0l63yW60KRsJylsZlPR-QJj604aAO-Qw17rH_17mstNH875UNfsv34yJZOZzfdpe2HA2ddEmJOf4yfHTXysiE8izrMUflUk60sERFhF9J5RqsWbma-jUz-yZ2vViuaLJi1noGwIIsn4Ab8fOC_ZJMcOv4juvsqLxvCL2Hnv9QN8jeXSw7Qu3in91h9So-CPksJhOZcdZdOOeaWMPA0ljeSXRv20GAl3pKgSYIabIcqvLLkUMH4ftm9HNlr69QTYoLHUW0UAn7iJtGSVIT9npMSN1ksczSJObRJiSibBzVz-aKvIprDogTRTMPnYD7pXUh5c_KpsW_jVP_Otvp4gL0BDXMDwoBnl4Gj2ISNqBMHACvEPdpRhAVrk3fxX40tal7dxaz12MQ4IAJD1CMUrOGEzmy4Xosr8gr0urlgAnd5ThCPXv0X0OZ4aqKx1ifb-pOizyJE_qMaF6kA7U4-JECOtwWV0Wa0If8DF2JCnFoq2fAuFAeLw335J0qC8x-ZvZka4FLitAJbH9Lr84FjK0-g5xZH3o7sSOXLWUYDoNsruggpaChr9thLlqR4qO3uhgsJjrF3zFMnsGPK5metVML7c0LJLz6lWW-JaedovXFiOL0hVsXLc1SZ7D-6Tjp_uO098j8KBrZRs2ebgX-dKPMuS1AOJSwlupLizsJ3inZicMIs0wf_0UFkkGe_c0SM7Ui1Xk5FeV4JH80McgWJPzhBZfP_7zQ2VQGVM7M0D8544zHqd51KudWBW6BPZEoM5RnhsPl2Q8_Qj-QmVpzW5J7bE1L1JQRc9chnYPDTWuVr5lp1TleINc7aHLngIEKRjwySMrq_j_dDw3L2MZI8DjWnsuMDWuB3PETEuQAWwbip8dvymH74GdqZUK_pnBSfntYL9BUMoOBHiT5kwuzlOdlxKimqcl74Ad82fD7816XUytakpNhaawn3CeApYpj4hQ7c4zShS_4mcYz4sGdebkewTUVFdCoznOYYcjTCK85j4MSW-_nceEzLJEttmU5Fzzg7fdCG1qd8Epbqqjxu5au_z9-9-tAPJFLb2TMsvTjRcdtIaMNq4obiisR7tCx8Cyi6wlQUU9njnOiot23VM9dOH31xOysZQYjwYhe2w48bwbLzHEOXWL5HgPpxzeY9O_KIk1qLM_pqnUXMtlAx3eLguBQBfwf6MYVdWyQy-JQ9WSvKHu1PWtxmWy5a1e6sFVhFN7NVJnfspMmADxGK5BA48F8IFKchi9N1PumWD2NHQtm5zLOGfj_2W84xDIbF8xlzePHQvZvCMc9-LzICKpm_k2oAOKeW7PK3e8LH3qTh4NmdogD2HtmqLWq5cUfOJHaw_DYce1WCRM_RHwwwGzGbK9rT8qEtxK6Tc9opUHoDUMvcXSRFJrer2NdxBUDznkPjzEdiK2cygo1aeBohUzHjCwut3wltbB9feE_jui5EJCfYujDF74jH_aLTiMPfn2txlQR_ZWkXPHFNrzjXFCMF4UUBfR4AKHVyabxWy6ID8hn_2FcBh1HmM0mWnJT060xfp4f01Xlnbs9tmYwaQdExVJlnHf7yNP10xtPjlWll1UDAbWvAn_8Tit9MKd_gjLBoJTq8bNtyoLXb_ey5T2FXhRiYtExxMf_SChp_wxotmp_HzuotQu9R8qMpyosiTm1ANyrMyRFQ1OD9MnVT9Pj2MCprik2pjIRDRN5UkENx9fssAi1dKZ-DKliJHZMDpDrF9v2WRa2mwoVWekKDqasVcP_ouscRZn6hleU1f1OPiHV7_f_HYZyhslaN6JD4BE30lTP_i2ZGna3888pKqDkJ81TIWFsYZkSbRIM66Y_LaTTVkjGx0w4ZsebY_MW6o_0ngtVt-rsV-4Mi78enic25Vf8aCq35TT1eM_Hh_ku6x0urhs5YkX_2iX5eEzwMmqE-QxE5oWrTzb8AOnM1YDhOvwjD8C8dIVmKQbe2DzFlWCWXLUShAdt5mCeKZtnmG14YaMIichaVX3jPoBppnfd0jjHplmHtbKup_TUT1GRUpXR5hqclOipbr7KSLVXG-s8mzOLm0DA_5U_wnlYrV_P2KRFcJ4DTdv3vl3TifO4QS8KjFjgY-DErXzCurY7O1O8XqiwskeyuSnu4lkrZy9nzkHD9_KXTDwf2-cbGtbERtESUd2OxcfjrlVQ3ZIRrBMIvbYrgrE-eITzeSIfLOpHjdQeWBLffAOmd86w-AADPoSn5ZqxyvXOHK6yuTr95fASF49u99NeRfqfqkblrx3KncGW5VA12aFT5SfWKAAnrJeEyOPJ-CTGNNEwHFzXGNvw7YA60XkV7poK3u4_qVMpiLgepWvlFy6WZUYtLUr-nZ48JBBWdpMR_fkfBxfCQm5ipCHmDC0XJzXdeK1W2KHrX30xU2cdHIqu1_w6Q-GJo_tpLYDLLctDi29mkuWHvkOWyYbFNNqKxnZnp558jSl7Pido6aMYhmbLwvy4yJt4rhLyIiPjnzFJCwwfM1stMuilDTNoHOiarsx_UP0zK-gpDUCI6gt5QrHBwVxatDnxCHjFrFCEWfFkhuYobP_lonXtJn5Z_94yNCB3BYSoTxw8Af8eYc3X78GJ8RwRcH-k4wu2D5NWt_e9XFEwYIm179hTViavPd5eQo3TSg_yXSCjXrLWuU0Efo2JW5po_0Eot1wgvHQcN-ct4geVFhLU-sSCebLvwOsTSBZJG_s8vlE_96rV30nVwoQwNAr8XrkZ8T2Pj6Up40IVoY8OESPz7-Vr3RbQqs3R-giSAFpOGaBG_32JcGMi3llzGhyI-EPUbhAFIrD1zSmrurQlBI9zohSalimklNOTa2J0lnOqoS_WnBKXrUY42uTBQAhrXqRoiwe7tCGrYYyAGWrFHpFzqS2miABfJWOt6KS_InnaLtkWdQ21gTO_ndoJufMJ3eRWswN6kduGiFaKNGIgw762MGwHrCjQhtQbqjuMIQLBnbMeZ1Noz7gJob01IqWEYE_q-0rZ0WXQtJXDG3B5mZMr44oDfvdSXjAyclDAlKKZwexjZe-n-SXOD5Qk70zl8CsjvnJTtu7xbE5KvC9X41h2TzLdedwmVywC8ErKgGKrrY0bFwCvQj70rvbuv6QigyE8K5r17cKLxgmrYOeHMnrFvct84tTzHU3B3Wsh5d2QH0_pChdEmn9_SqcNtFQzhj6J6VXwkhrBPDF6dcDTHIgAFDUqGlUgGHsJBZUbbgOOw--vA6fyCnodX-5XwihkTTfDQASXEOUA4ullaUpMTH_iejuOyTxm1av5XIpby53wxM84RR7ccmcKblzRoOQBMH7Cvom0VMkQptCIUAud-5wsIwJGhwzi8PPWtkQ10QB6EoYvPdoP_8_lH5mGjY20qe52jOEZnRzGeP8-hBxk60nOvVRBMAi828TxWMr_0ZxPU-0bFtUG3sU3Wb4tQwVyjweKFxRZ2kLofuseSZpwdej6fW1Je26wbfZ7I2beK7KmLGzF1g4jVXPcQ9gi6xn8l1C0ax7adgXFtUR7IlB93Zz15Wss8v_1mkP7fVJzvITtRaT5Aj3b_761lPFLou06fxNxfNJa1JQTmRALeC-WzyhGzBdp_vqm9G_pGkaVgC-cuF0psJtptalsZwb81lmmB0Dg0n0N5pHgGLKCtDgOv-axLrpdb4QiCVzJt5iygb7x83DrL04e5cDAtt2N2uMDbcqarHq_t0mhXmb_6IZZMypVFpOxmk-bJUbvI0U_aQMc9WvU3M2xOfyrzKwCSCCBErCxplhC0WpKV-ahQCG1cVnED3mu8-CXiEDaouzVEyU-v3LY70MhIeZFxmzr6RhKgAW7KGflGf-ZPYC6-CfU5Zo_VoA6nNLif3mLqT7e-TzFCQxLlvFgPOjI66BqU3tant1PvDhwRFQ19IB_f0-yPWivaOYRN72iPvAHIwd4Bua05mR58A6uSlKwaU1LAYuRR_joOg_SompfG3SaxD5WithPi1f-7UhGIsZfRuGqF5rZJTNQEvGP8Qg36NyKzHmkjWP6P21cq4dwvciMcdDf1KeXQsExfSZzQi_j5n3AQEcuQ6d4-CcUfuKhTjOG2TxrIQs-F4iUE9PxffMgjreQczRmHX_tFjphqjhICXFzrTCpMaYGFWSJkwBesXK_njlXP6P3awO4THGU4h_xGFgWMvzB-bq26r5bYpbIAC2QS9DsouQQK1y9vFbSqlxrWRH0qda7dNoFCykJReyVXGgwV3qi_4aRMemh6YuuuSDa2djx4EMAVE9RErXSB-NSFO9EIhZvVuX_F69N9dtJKF1uhJ-NfhrFMlPgO2nLEJtSiRzDBC5ewbDcQ6xqvn-nkhkJM9SS1f572eWkC11A7oMrtBU1I3kYcA7MrE2rI1ZIB3G1hIhi4kDFG71jZEVs-4gzcDZPFgsUFtsDYrPxhb8bDYk7MnEbLLsGQshXIo6zmjDraalwX1fFWBWfQQxjVCw9CAUcRwD46AxjCMWaqnaVzdeZt9Oi8eNRp4UqyTepS7tODEGv2h60OPWi6YwIayhFXfFuLVqzOPJYGYs_JDMp7tHq8xhyB8e1nURVfCzsKddi3OfK9ei3YsjPITr8u-XOK37_BmJBjvUsp3eoZr3bXOgAZopR7vfTeekMB_lMnKCB1c45lR1GyJum-3XZn8HREav1nAqbQDF6M2jz50i9CnGlX4t4v2wYrmlBzm59O1QaM2mdAg8Gk8lp3rCrmLfKXs5hxV3YH9gmrtCibvn_rqTw25XG-778zxivPTnZ81GUOG8yyS3UYpkpR01O37f6DClqdnQWcNB0NHLN6KRmW2tKktwEhMQ5wu1zr2vmplYZTr6H57-xvLNSXDsBvsKjhV1ZvSokZkivnvKvhoPXwdEEqbKHXF6C9ZUpo7PAn0o6APAyM2p3SCY3LcPX9hmfGRzuRk0E-A-zyPJiedkWMLGJJX_SekzTzAmoq8DOfkAkdrQ-GrIO01V7A4lM6voMhZuhDvcml-jTueZ1DhdZPQFb20j5pldthIeoHl6MiRKElJ7fRlKWg8fkkGqoYULmqqFXXd6ZnSBaIXhlosJJlKZ6UTApkjoZqEbEePnchacGaS5J3c0tckS0Se6_ppuNvqZ-ZjVqDHG2zvWJpTwlVAxulU9oSFdXfdxHeLrO9mJ0lEW58nyhUSSSCt9LL8LZeLrcL1BywL7vrw9LIUqQQjDxynjXriy3xnNS1EqAk86eUXKZQupfkPxOU9hzVj-5OQSb2Q85I4mYu_hKDl-pvlP_reh_1L3uQta5mkhvIX3zY4Ekl0sdvTV-xbkziDF33P1rg4Ihmu1PZ2cbS9rRLNC73crF8P7jXivQR4TRYd4L86RQPxP51XdP7s__wootwQnT7LqjxBXRG5HPAkH5KgUzIff91YW-QEgT99t9Co9fsx3OgE5L8GUrdcJ3BDZlwEIXDzUX4ZNqmWwnPfLXGcrmd74T_jZgV3a3h3xdrqrzvX3qG7EeiFpXXRT8H7GdcfDQsPjwIhfQermOIWktLIbqG5DX4M3TaYdzzjSvUUIo85iAku7I_j9D-yslJp0vLbCl94qsIsjP6evp5XFV4m5P41Dyo7MRaK78uW7njelk6HXA7Y2JXlMutMjxVljspKlC92LGMJkOZeTZUW9IN0td34eLvIbjw37Chy5hczbr6wNHkFoiPIRzXvixSYI6OcJgOgkJkEBe5IOcKcpyyDnLYwLQa-xYMIZ1h7TqtJVu7ZrmF71XcVKah0EnE_Ey9I9BQy4ZBQnEGRmAHV67LnzfN8rDYfzQYViUsuhCewAjC03Yz4WC4LqDlqhL51cgRhldqLyTM-YsWOyO-Oas8LkM78wyVg4QzfE2haW2lZS6UDDRgTyLUPrjIX9LUtJaRWfkqXkM7qSrmwvkbh89lH9rSi9WR-GY3EcjGptoRq35sXKsAb0bGxfRSV4OlSSCpyn0X57zB76Momk324dY0S-VqY_BG7RJiga5vztpc9Tks3g4EcbWaPMBaWuHV394dSQwxgr9Yl773zIX-UuaudybNB3sg7SqjgPhIVsMtsq7mFLzJY7HcVczCSGcePAd_6v9YlK8N9wcJExeubLboKHg-OAJU7RdjHEdgF1Tqq-0Oxn-v45H5X_RsUJGqVE669yM8elYbLXXA7Um7ArGtP91mJpIHnJBBMEioN598FXsY3bOi5FtbCyPAghIjpE9z_2oMjEJoWpNDoQFNnCetAduGLWY7DJyE7AJJg_wINNlPSbIYADloOwCwl--akGcLcc3ELVLatd1bERQpt_eLKOPjlB7ttQMe4AWn6EXGgmOyw6UgcRf_b_OnQtM0nwTs52qflNAQsexJ8odrWaAVxQUmMXsmB2DRKNPLwUblisZ6uPFTBAGR15N9vYmjx91v-mHsyTRYzPtJy0cN-NOah3MXDLWyHTsuZQuVlbrMHnZ_i5Jbfh_-5xns11XupS2Uw8RJvES89znCPanqS49Il_PB4d5ZjCXc7t4mZPrW13coNaNjcZCQdNrH4ubC_Gyq6N62RCHvmEPcifHZ1QbhUtPT0uhn9i2Et8CJ3h4zjuHoele4yNrOWgAEMominwEpSNRCy_trbgWEpCzxN9kIlHW5Ar6XjbEB2orXBmvGzV3x4SY82S0V11K4koEG2XVdj-sjZl_PsaeARMwTzd0b8H257KoKHlFKvosj57WwAuuB1k83-0lFisW-frIex1LK8FEca3xmvg2_Y3cXGlQorwVnBpNWFv_fyG9WHwf2oHBgppWSIzZ1zrndr2w_qN047FP1GsU-rjU1VrmQ7giWM6mhR_pEmJw0IQkHBbj9us9ywb0I1FN___cNPN8aZyPviZBkwsnVtMOOtea4Ga2OZ7KBYzu_6thERaKuBxNUyOxFuPdbheFHl_Z8HrFJwmmHF2sTDoEg8zg0L_r6DsDLaVfVqBbNBw44_wf0_a6lI2uIrOGoFzk-dq4eSP157MX7xDfXcTZiyA3maF1V7Y8PJMIMZkBkL04I0Hk2_XiDTosYGHZVuNs7tTGjFmh4OamIa3gjxvkYzAGb_ZgqRGGtsoGXpdSfs7HWm2DpbTi3RAT85PaxcnojxMk5ybjJsUHNqVMWbpmBW5MK3S1rGlcOSENY0_Iw6fvLi8Pmv51iKDL0totm8seDNwbNfP2bSbEoDSTT4pqY1-aKS1P-siQJa0m4cEESXkI4gnsmunsq5xSILOz24Y5UkOme4XlnvLtPlOydmrfuST4rXIBGp834LzknUWxdfL6nvsyyZeo4SnaV5nFx4qhhaxFd7J6WVuDysIMciMtKYXQEB83AdaHoe2hgEdcmz9TYXsIbj0CaJpqhFsl_HPdzsSxAZA-50hZpff8xnRgBNH7MMznK5kn7k-5PAdFwKHSAGfJsU9f8XPfRL5P3S7cQrRIGMJN6qeVAilwo7-PDflp1vwOAMmYSAAF94vMkDBDkMsC8XlYhVnT1rulsH2fwV2iYhSqdscX7ucGx1g9op4UCRRkE1gRgmTHg0giV4lStvOvP05swLQFKbik9ghuSUw1ACBFoNqteE_0EcNGtRl0BWzTuzy9avltHscANlAzxDQyoUInOd9j2cmP5zoiQQvq5okthRRP4Q0y5c5X4quXZjnyT3e37PKjN1nfcFFy-h9eWmeNbCHA1mYVRtokJz7oW1GPajG4Rbk9jhpDWoqwZHoe1XEbppHHo0KfFSQFQco64b374-cwl6BJHVN4a_EWtbjupy9oD3TeRfGrrcBm4pIruAFxxvzOg8Lz0fUChNzVeNw83gtGEMC30mYzZzs-RseeHCD7kiYEbsvbns19kDCsuuR_jjTw8lhL_1giIVdXaoZQJUGz2Z2-SGc1hFXsz_yYHzsakGPzfrTFXnLWpSk8tfmyWK64y0UHpQ0R-gPJ7Y49sOlqJMZlKH9eImoQwT-0HHmR1z95EoafvOuHaROZr8hzibfaO5ROeuKBUNMrrZ-T6d3wWbjHN4tbBSImoyRsjwUF4dydK-yobpQAIQRNPyUFoGlcm20tUXrIbg3ajZlDqOdo3iORYS8VxaIMia03xIYqcu_BVYEFtoAPGnprUHyBO14e-0h9ibuzyOIfEWr5sfY0YXh651H_G2mcCpJovFQuuFcqWHZBvRfD5BoIvNd4vi1wjsM96VD4yJ2eF1mVDPVfI5iP1MqOYlAnZ4l2Dxv7IN9sNcwV2FApzjlKS1nvuJAbajomAShagHFGLBZW-8kE4u-anbnUuFnWlHbIA_lgrCpY3sexAGwUYsxaite9gJAnIdJzecbU7RXzDWbhIgLwpowetQrBLn3v2sabpu5ArMrXyt09C7WgjIiJXu78XDtmUUPdCEfh7Bi7gGJjmNz_VCl2QBQzs4QPpEku5L2G3DPjet9npiBgbdEEgvJmxkdZZ_HM-9GpCzByrFUqtGl9Xbj-Y1iy8gjk3uiT9rB0R0d2hq1_U4VFyfobcC06M1r0Vd0wwczDpAdR9U4EPXFI2Fq_m-7WAcTKlkhSCoSOYrLM4tZIpicU3zZroeyS9ZomdEGO76oBXuH-pTvF0liVsp0FGPBTZbhEwjZ99TJtbtYNTveXhCxJLvGy04lafYurA3ChxuIt6jgl_XV2G3qxvAOqcjxueyrMqXFsOPnbXbUASrJLlDNKEt64fLnLNnX5_TUX_4865fnkbG940DwS3_qL4OEHrc5nGfTxJDzFqvAX2uDKBeimI43zwRXlDoycrxnMb8PkikKvPpA__I9iOX63-qEqgfsGuXDxK2rYiP4Te2cdUJNx3kGhehfLWhszWTnMc4bcLp7hLnC7xKUm3LUq1rhiW8UWy4L_-9ztjleZGz20GIkp5vhzDzIUKhUyLe1CHNWpyV6aBXuNRs85D76o8y-wsxwuYNTDWnj4oWhB7CySc2nzOyB8_1cCAzflwCo3J7zo8HrlOYPxTLXcog_njNKWE0-m1ad1dtJaS8uMNOaUrHzZbBBnNxb-bjiKXSei11V6HQQRbUuYOfAGe5FfWGc0Fn8P5EHjT4W05N6h91P73YaElsDJGQqDixxRQRyQD7Fpy4HYGAy3Ybwbsf4sybl7hHcQef0Cp9fRacCjPwEXSZoph9MPAWFAfEcX9konhWwIUrVG2T4F3I0pK-kEvUy2TWYPMpuSqUKmcR1U67H-bgfYr8LlqZsPcdSC5-JTykGC2cxpB_aUp48d8ahTvCKUKoqKg3uVhZ3xxkrzHT0jbfIxlhs-HvX1KbaJ4rLcB5NXRY8v2h7b12nwQ5CwJfq7w2i0JAp02usPA5Y7ZkKjkYsR-R3fQV2APzDpVMApK26Igwv77WvW5XgRD_yA4VdhoAJtGuPH07zzbVaTzyHajAxYq_TGSseIGTH-UlpU4HvljG9L7QDtv8X27rPHPSedlwF4E8dc9G6nQYOsp8JIn3yFC8w8fwzhIeuqqXMdd_7bsFqEYf2ON9VkBoXvw8qLnCDwDIL0NzpS7f2pJoJL8LZfDE75k9LpuHXJzDF8TAxwtSNuYqa80XO4SvYNNgOVGZFekUrY6pwA4Nd14luxFh1yR4X087kUwsRwczyiisd7KJ4T6WzK8b4aLcrcc-OUp7a9f3hVGB9nl5AN9YbXcI5-6xI53zXM2Cg3m8Qk-LDbGKuF_N0eV8HDokzyclmHsbq-dTuQDUJIDtNz7iMwzcvQLg95n7Z8_yTW6voyToAvtyP83d9RBdl2ubYIXjWgSSawsMchpDJN68BltP2UmXdO4rytLzJdCGk3jOj7K12kGaBRlxC27wQpTncwD6tNDbHiBP7GK24xeg1zfszLKgRhiRTvapu25xKG7SBwCRTuxqc7gw23ZW-jRCL57AXpr4q9Mx9FpNt35M677nDvfMKfMcESFJrWvuTEpxNwhtOViVY3hCJUp9EycWGoO-yl2gHZtDP_dMqMfbCDs3uzxW8fptF29hxC36z0kl2s1aUOZPa28Gh2FBNV3_5_UxEdM2b96t1GUvOrjGFzeRqShTywEv5-FKobDhj1PeJvwmAkzjRe0NEOgtxR816ug6cR32AsgmuDOyTF7RihrwfDJABR2tPuSdFslhZJxnWhXMvKnpINjMdo7Lzkh7bHa0auAPXgddiDc8NwZNQlSA3krRV18oWyMDx4Lip4GU07XUsNwO0ZY8JY1LF6yftMaDcWWbFJJv4lmkZQRxA33Un_EFOMIw7ivbEfVLiLtC13GsC_nC7Tqit9cFSR1s4oHGOhgG7ks7NZHJ7Tfc29iHSXonfeXUaCe8R0eJf95wkmGNaowcBGLc9mbb3KtrzzmYRvCDizRY2WCnRimTjyfaeQDbVi28jhtQfFPF581QFWaJiVIGWKlkdDId9W6L7RphDJ1qLdgHPjF2FIAgfEE9q4qwByS9VSgFLgYDmo3kOn9UEAINbfpDxmnrf93dKS0JdBRx9YXhdsrNynxJ13N4aAyuLpNt2zUPjukr_u350Mb0y9qpYvTJL2bHjpHgF-N196NvfbrtQjFywW7-lbrtZ4EDnE_WMIhSW8tsWD01b6yHPJy2FczfeJZXQ3RDnw2Q1mDQOubel63s_CNR6ucZyasgYjOSkDVUwcO1pJ_FpOLI65BjtAQYuMQPyDfjj1-c7dr1x5SfaHjJ35eB1Jfx7IaTDva_l5XvFxJGiNCL6DQhyCkRVxOkKuWiMXvStfF1ORxl-wFJvn1C22uag2lBnbnRvQpgDLM1MEEqdFgSWe1tUrMLZ8BBSIAo3sbz2nEiZnRRhmXKRhOSj3K1cMHwyCA-BU9HISrKGrzSnvb7yqLkN9JK08tpzOoo37ZIgTMhnuCvQl6rjUAmztqiv7z21egXGUkduM6gT4gbpLTKEf8nTNuN7D1M2sPBN110akzuJFT1qlK3GH3Ta3D3Qr2MOrHNzNY-MQYD6tl8v8rH94BmU6_QbkWZy4PTLH7RJWFV2OG6CBaNIVWkLDPMhTMMc6uKTBQGhCNxF-1C4UFj7Hk46Z8MsX5BbwJU3UBUbrkpNHvb260dlhj6j5tTkbSbp0NZgaqHT4i--oqlrGa9GrBBXYhvF134UZtK6WrEfz6wRD30K8pQUvvdlzjYb9FcAOreBOLfJHqyttCu-M06o8nMTljMcDO8WEWN05g95ommEEsYHEICfk8_4t3rl6d0oqIG_vDJ6eLIvDWXMJuW0DszrgYEPkDCY_5SJeUIqduIFYAVRPen-WTYWP2w9VYg_N4R3znjVYb7jU0rvQiHvMdMB3Ha3WQVFpYmZ19aJTUdjONBBp4UfUwX_eHAUXOAjusqXShMTh2m2TaWdVU7tnGfshvT-16eoBaE2j5cPsbBc5dh0r8_zVRQptlzR1GWglQv7LKdNvIa58GWeX53izRLiTrhA27mQwAeOeFAyIbkHoD3fwFJVJLMSSxfJuz9BQe7lD59Je1mG2_HCiBBxKEP7z2LLDsB2sHiX-L1I_3he5qh5vtVJTPQWY3iF86HfwGboJeFjnrZ48a55B65ID6IY7TlX9xnLB_3rO5kr9scvfQ5VoiRZEN0qD_TpKgoAB1Ig1ma6PpkwgQ3S0F7ztb6lARGO_G9_Etp6DJvMHrTP3hbfI2ntceCJSGvPHYx8lGHWJyZASz9GXd9jJGnIAA3OA2-yYMWCMCksYFUG0dKol3N-Nq_gC_kvUpo2G59bc2OSBP6vKOEZwFBl2CkNWzGwcKwaUHMtAnCRTu_zeCOqs09BHn8t3HKDyir6ggMD-kD9He0_Ce3MJJ3ZjuBt-3ql6khkLjJQ-2ffakRbAgn5Ld0G-3Rzz6SYkHgwpg7akwbS-1NTz7sCpCukrr2CrGlQk6yTfBQAyTJEDY6Du5-8sIUw_xPa-Ktng4jDnb9H3janLxnjD9Bx7Mw1F0ZtJ7FhCrmBCyERck0Vh9Qv4JMaUx2lF3MCxXUt3shO42uCYSjJ61UTVXLxAy8n2krLJQXdton1yB1ZcnlCZ8CkoNJdGfuIvz2N7TFiZHw7GCTtWw99M79vWmljLB26DSCUsQOb5zFwN99chNE7_4S5DNHY1ch7VMtRN1puPraSVlND9h4uKMMiSOAeOE_23Kc4RzTwPouhRAP5lcJJkkN5Vd5-r2ifwX1BES_SEhlomZk4QPdIzeJUfsXy8moUEZv-x5MU4JDYUmaxcAE5Kayevi-YcS657oTVnQud2W1XhmnGboDBsDRA9nrAWNFSte2Q-7cVN9wMgIKhQiysC7RTNpALE_5vQa94cNhSI95zngDLTogKpANYPrIxOkLryLbW9I8rnEWI8xYqHCgst3BRKH9gYh3L-fiOY_0je4_i_0Uh1LwgC_M3vcK3IjzL_plxJK9g_YuI_wUUTddDi0aA2U2fre3sjgWLJ1zN8XX8OSwI0BEm3mbN6xYWG3Q199phgNYTOdZBNNxiph3-QGrrQNvW0FqQfuEWueG5HIVexVdQxqGtq7BfsM0HYI4_xXr-_GweZNPmNSarCQYhTpX1i4NB_699UpPyKdEG6iie1y3UK0VFquL9bmrjdNXBsnetEzVA4X2bGHODp5NYBWhC3K36J1K0dGu7ShWh69nzIhDNJ8gA0WYLlrvzKGKp9VPyAX7k0Vrue2FUw0Ru7m3KPX2Upxtja97t8Kn7Vqptxp8AFFG7XXBmHIEuvMptN41dsDwPqTrEpScNNyn2ZnwPafr8W3zp43Qizk5GspYxYZXjht306NBPRmRUe78Y9Uy4jQtixhvHQaeDV2nJ8pOncO_uYMZlUdqlifHbnTqjUOKommTJO2PFmsEZ8Q_cZZrj2Ur_NjVMEbhFNa4yXSJj2OCd8UsPp8fv2iD3EbS-wuk8ewXBNPn5BSSEyudXchtYgeTszxk68b2a2FQuVU9ziRYyKWx8Ok8VVnm0b9f-r9g0gJq5s-Wl4XkbRvaf29ZWIDZnzlJkTLwge3LU2a0Ji_9jOOoSR-5QCTOb2XqPbJGzKKazNH-yx_WpiKYZSZUrzq6pj-h620BgG4ULjtPhQjuK9h5s5s6sdcQ7Tbf3FRwaCBrm2GOYWiVEq03EqwagLuZCBFSxpUaExEvCh7aVfOFxAydxW3vhF7Mtd3ak1QsgkUkqL8xm9qZfNodWRfoOGBe3Em1nH1_lqBTPFbX_REhXjdQh-hm2WLO1VL_gCUaAbNjQu3pOVBBwpnidNKqcavKY3mpsVISJn-hTVQoRjJYlVfdJP2iGk1zMjvZo9qu6Y7U0-ov7PwJqkzBF3FF8MvThimi-ju8u4p1oGOpTtMuq1EqxPP85sxhba47Ex4O372j2kO4NYVS62Ob4lvvYjBXXCc7-qRdxKc3dSYMTCnwpqD9gllEn2MDbMldRwe8ySOhpa0jSirjrIzZSYHKCql7cFzkuIsbyCeoi8teSlR3MvcXYP1Ep1Yhxr5h0X3gkqWDDyXqm7QxYGfuCJmfbZQmP7GX5LFPWOIg_rkAPtbQIxAeC0nuWSEJ34UPTxTnlquGYGAczB1oJAjMWx83a0jtUtmluuFBm5NQccL8AbMXfybRBuVVttDpC9m6iNFgps-xb8tlmJUD7vEYurfw_WZfh6hbfsi8spQvUbCMK3wtXomNV8QLh0UT3Ru5U7bbQwGoElElzoqsUOy71aOWXzWnoNTYLnOfiX1K3Hw1NGH3iCzin-wAg7qeikfeFplACBB3WTffIC999StFweo0bDEVIEDpb_3IrxKAmYcHjIw_FMxNSildcabPYxzdPSJ1FVx2PiNFDTpYhlOR3p-LcNaC21q-uUUy5JjIlv0ly8_bdRHrb7x7spUx_tXoO6wETbph4LRMCnGAwB7SuO9va625675kmUWLaUnqw7AhIjU0hlKLhnMfBJHd4wjfX_Mu0LrUdp428dsnKCl74r_w0gcdhfOvbK2BtH9gdiNS9O46qDJCOQ-fp32xwnKGqCCFuqScIjiugf74Seq2BbnO0fC5VBDGDdPECBPOUWv-OXOlUzd7JIQLFG0c6rub9ErxFPIzkN2Kqj2eSVUDqbyRiJJ2sP45NlC4vBnxvRYoaamYM58W9oXALB6FH2yBJ9KqUXB--gdjoh-6O9CkVJvUDRLWrPYRcGoh9dKUBNbcNYxdemRYkG63lzX56sPy_JWvBGkmrLUiG2ReSF1vvptk-eiHtCaQ_VHWTUofXgcqbZo3MuKIsRWwCHHWntOwt4uXn1kGFlXcnAv-MWMqkw7RMfVl1tuDmYUFsWHwl03wC1YccFd7B9YhZaxxzJiEFL5mJvxyzEZ4ceGa-XPcYdHADSY_19uyr-lWhamTgo8UYgiC8d-28v08o9mcIWbviSbAEvlpsAdoCakMlPl7bhrt-Pa71nlSGjTp_Q903MnIaOB7fBkKhdNoiPpoRzupZOlloSP_hZhxI2Z14PFmpN4vJ6gQtoRrekruqBxo-xtn_jUrZRCjgmD5u3OrDHY3JthLC7pW48ZcaJFeP2ZveneXGOHODS4GebETlYVeZp3pBd9D6MiAkr0n1zgVFStNgptciXfAgYksx5aixcSyrMrEChZxLSDiHHVOOyqgyg1I-3Kp7XmpaYA2NmvOLSUAAME7MAsfgQ1gISxcIBOcPN0lUJPs3p6IX0su8WnhYtfWWoskPOT_dZtjEF1GwOgq47pj86XiHg4FytTsA5oaqbvCqrmTtkBDkwxEmk-cVmFHUZm9R3fYwceHM09tVReNezzsqFHttawGpI7scs3zBokXLOYrexlyLHw3KvLzvNCkOwhqEZrIb6gI91yUR8GLXnPmLzY8qyEECim4xSa4tzP0CVx-xutN1KgX_Lepv5xN-AMdteTG79UpmIQFQphBzYyNFzxQOQHZzoA-9zNbJy2Q_Vk9v2asj0ntyg6-8J_blbYqpyB5IKC_LclTCMnRgqZRnHFM-teS_4OdlD-q0TexSIsMQKGpT2NcfUGXsM5nJrphby2wwb3Sh8tSV6Cfb6mKEGyO917MpJ0_ICIGqNMoAwfLixZyxUZYqz02-WGxm69oIf9O3vcECRAPvCuL66ryK1gVtiQwp5szR85N1Fw2UEOBIYu7tEVSNoGiP-P68R1E1L_X7-K3LcRp_-3VEZJtZjlg0yq6L_Bc2O21hDXkWgFyjXoLXAZ-1BEbYkc5UPebog-8MsoHXGziK4EuX8tVUaltQ5mhXBJNVwzPJP9389pmI5xFB2UF0mYpBbBY_9rWXXvCDyevH_9OJybskGDzoTacgY6JzF0SYRioav6Zzf5EC96khLYI4sMXYftlNI5E4r4zwSDPDnqY6ErRmMjMaxQAPI_qkBu6oLq2zHsU4Eku2b_L8ZWN3xTG2U4hL0R4qa4CFt_LfBn3PqiVgtjz6vBQV8IHx8fzrqcEEp1BxABTfb7soj6KtL_zdHvdGE0PLQCmgWP6ITFuNpYNoF4utyisFMyJGB0q_XUCsaKBJpg-bjqcFGKYXm4OQrht-cWmKJbXTgz2OG3asxub-luX0CUhZdDGkHSkangnTRRqD5ctg75FiYDON-VN2R3AJlGuSlOMWY2BDgCQ7PUbcwWNTVyMAQE7sm9IOlfj0jekEKq4_7QaOAvW9cEP_v-B9BY4VrMB2EGDoJ4erEtRSOftLb-VKpAi9INQyxaOkDu64Vp9qLl_Fq10LzLGeylMJQeTrxIRESFCW2uzce_z-qHo7WbMCBq33pgjM2yDu9epyf2DPRVj5iJ4FsIIal_HY2zFt00rY6773ytdAL-MDD43Z_uNfMOj-v0QfFv9-jkFUY6C72eJVgSeKpAO0E6hIdTa31VqD5fV2IiSjO0YwsD6Y7EQpzogqjLbNcWTf3x83j36bg3odWr4EWnfqpGnooF2CgvuSaHWmgLtYdAo3PkK7sy8lVN6WIvj0zZHC6Co2-zrvblCr11TVGwAaojNDm39-Lb6CRlid3d93RoUPiUrIq2d--rzc90zuztQZjRlEYl3YYoyoBzKTA1GvYC1r6vC-fGFtAFXYgY7MtwXK0VDJKf_bw1ozezM9aL4XWyqs7fURqAPvsV85LkhSot_a_5Z_w2xrTDcZNigbEMuFJcsCqc1J64zKFId8KaRmzkd_8RC1woLPmVvpQecN2X6wqp3SwSP-7-PtlTK3OuWuUf0WX7VF7RUh9-kOR3y88jt6ZFW0jTByroolrruDwvE3ttqJ6wSJwefbxU-yqeuOZIvDw4e-w8COPtsocjHuAGZx0GjFrnPAP9EkUz_tmcEYKDU_U2o5-UWYQi2w4I3g5FF1dXYFbHpYl0B2d4kTespFTnzMGTos5Nf2upSW-OymkSCiAoF6xRoi4u6URDAdzWX6VnVx6kJfM_uoFQ-NGyiHenb_I7zZXCeQ_AB0_5r-xkzOd1LRgqs1_stg3HqBzHlukzwuUqdIZB-S7I7wKQtcn8vmOlJKu63_Ch1ckwuF4Sg6OX-d3g2HO2zIZDrhvS18ewibiPKKIZ1MpVjvTnFLFPUuzVJo2nuDvBPiIkzNi2vzAj2_Z871uR89jmnc_Mamnab2NYW5jCKQtLRq7NY3E7-D_dQNJSWKAE_uKgIsiHXcDTN4rlsP_noj3nr2LMeU_ZYFqO7Fk-S5atOstaOVJC97pauQjwY74D2BDBB753eC8SH7HI9CFaLChwyoKg5a1P4HQYB88mgQgDdWwQVemwZm2Q_Gare5fmgdNEPniOVGFHvBgG5zvQ4uLITI832GD7b9TKaAmrKkVkPMPOHA03eHHwa-GvuNaH0WPVl1EaKKwTHDABG20WmbbypKsA8t4T7CUQkp__9kh3LTbxehm1Qd5yn8ljEnQDdrBEs0d-gjQxDXw81kj4npqQY-9MBFVMSQUzDSKW53uS2f-ETgXO08rg6jZRg5GW9tryinOO0eCdAiQ45ce_LHATk8MBXpYg036NIQkzbVgIINN0jAITsAnsD9jYXDxm6dix_QYml4g_q2GUckWEtCT5R-xbjs2eIUMLTchn_OiPyuYNrxW42IL0MbW0ROr3oPb9aNTUJ37G68890B_LGFE1roJud-gKkXhjcqQvLiPV-xcZayUZgv9-xyko91rjLHct0-4fA0SFemX8GtI7IzY7P_8suXmIKUEskpLAcGgVp8yXqwVtIGKAv0dyOwRBGpGs47YQitBGDcvYM0CFI_MxRRiDpTqUnKek4_g3SbNghKtjTJC4UIbsTn1ukxG14ryH7tX0QeRb9kuaIxR4kCFo8lqVUR7u5ZNR2WI3Rq8o8isbdos_IYncJ1X3uwx48IQ9dpBmfjnZE4tLzKpYUHZPXWqcKMP3IFEQ_334GgQvy7GrZF1Mn_-gAg9h9RzLtdJ5J3Jngkn4dMnpSW_qdJ3VmqoLEUW86UmCq1GVNpWpyFCFJZM2QSFb6SQScOQGHw_dgbcYnH10g2mzlYhm8NMRAO99vlUPnm8TVvZ63-a9UjwlS-b4Dl8mGT_epGx9ao8kdGO9D2NvsB4N70-By4ogRTuMJ0MG6ZHQ0pmKeSPoW2TX_NfkE1b_arDEJT_e93JcYNLPIFsn_Z6-rAfYlFgFtXe_7_jjMfJhrVqu4rnJEEW9h9ghoF5Edns4lb5u0H_HcC4dxTVV7SR-X4VoJhUWzBzySua7y-RCVHAIRVaj0kNyoavU4KxKhB-Hqg3LAcGg2mnVPrRFw3WU3ZpI7WozMGqzoRwGw_ItrHHAjldd1h6wit2PilJw5d7j3711HLcj1ChqSC1VNQvxFP7ktCXWmFRnUMpXuZU3FhY-H7uXwV7V5YSD7kQjOT9oezAuWxEGOPlVeDSFDQzzFz40FllWi2K_E3Y3Y8h9LNLHZtxgMWzlj8U0egsSlU5GuOkUvadpDUNlzHKpsIcjITnP3c04YFKHCqqCS8tnVjgxCVk4j3lnZ8acFAtOS-lsqjdQJnCwpqlXV__Z9_H1f1SsHwchhnzPhKTWX3stWHPlaPUZk3xRJlsGXSZNgAw0VGpoYr0_TSnEpyowdjUz3vkjyJnK4gDVnVQBzFEy5dszntOVJ95eiy5b-mlnQZX-O7Xm2lA6bk2Azu5MWQuaMnadvZGhQpdNQJN08Ss03Nvc4z6eRszAJsv1XarUB3qy8sEh_M28RS95SSdn1piQGG1BoYL46FwD4cGVjYFnGbKns_43eO0M2ikJi_8W4KBB1Gyo1AIem67NYk06a-p7C5OjoxiQSf7r8q3wVD2MHG5K841MoCCeoWgD8bqJA2Rj58sHV9cwSVGwGibWtjJMTaJEif500Wu3aoH3n5d7SkAKtcdD-heuH4-6Tc91XCKPlsuSrdmQpyuR7oGI59s2kwR4Ec4dA2H3kxmfC9rdufHkTx1RrJulIPkeo9qPWEfU4qUyHSUxeOKIoE9ZcZG4fIDRQ2ueG4kztH3qB9nbRuC9yUnl1oK60yE0YYOymtpRPzI-855hQvGQDE9TdhZ9ajS9ifc91hKCJLlbr-mNhHfeanBzxmR7dVJ8RkamfI-fXXgRO-iLGlRulb7WDWEVNbqasiodZWXRZXMgvGsq30OD1RirpeHny8a0ffQ8BpQaWAobgRuB-dEQBcgpOAp8mY7qUoDiaN5IIwss6Nd_0XPdOnuLOMCLnuIGVEIg89IY4Zf1Mu_KL_M6S7Isrto17jfEm7Ph9z9C8Gpr-FTtBVRm6SBYGU7YLCq4G3hJUBnmeIr3DcGz0gpBRPDbvJ4Cez8tKtGFaEAHxCGyPMjfDNLSZp16CNmvqM9W027Zw-TtWY-LXV9GdFNhpYM-yOeqRVDQl2XBktED2Dyr3MwqoiCXgZRE9dhYSInjnd7shV5god2qrrOe8f7LBNpmkccqMqTuvVCXNfaAS2uJBOv2EqJpWiqClJpFyfcgSbo9ZIdkFCJMNH11nPDsOlQENq3BG2r-9P3MpB_PxGvcjB3oR5Pqx_7m9k9vYfNmOL9Cgd1TjpHRNk120_CLzMKfWphjvY0C3rqlPt4LUQZP7Gf1pJAXhI5RUYC8QFVuDZUiLpAb1MdYsWSy7A4tP-Ra-efxn69l0Ai1oXDPjZg5exoa8217rm-8tnu73Dm2_Zf8dIhnRUT80v75djnh9xIV0iqJXno5R-1EwqIVWzagB1auLFqBThPtD9PZagbM6vRkkcAcIZARFI7etxbdQULSFezZUn3zSE_rRAb_nCCyqQj_uiy-GlVV6BtfnoUIjDs9WRs6zOcwOHn3KzwUpjfUPpggjYSh_Vr2KegTPYNN2AGfRpLpTxcCrvjIBh1Sj-g6yWVxmz2kiwSFGlAsW2zNo6vYghT0UC1gjskU2lo7fhy0Wddjv4OX-wauFVLQeQsPXqpwS4m7AxXEt5EJ6sKFwkheqPJjmhEez_bzWEznhP6KPyY0cbVygKrpK9LWKmJa01fhgA9E42qkX6nDf51jC3tU7L1W_e821jdFYNcOGGDuQwjvZTuuVfNCZ8uWsxZlfg0n0I3wfm4DwqNhCIT5G7mwZm2G8GoDtzWRmzgOT2wi91RpoooIej58_6AP_nXKn219ZIR9vNTAzhsHy_zdFLB3onbWn6vH0-UPeQ5oJH-dZrqyVHBx4YnymVlypwB1L50AwU5Js52eQSXRLpduvqeapfGAx9AwA0BQZWWhxfRLCA59XKlg2E4cVSlmdDba1L4_2WPYm94kIo1ooyFxvdNNEiY2APftUMSzD_wyclaVmgvTEHee0-1Gx7U6mYB5ombH2QUWde7BhdgQrCz8gAfwawow7WkakgsGfBfcisVHtflnmyMy3Lzm2K1iV-Qav3wiG-dKO0xR4O20CjVuy3AFkvw5ST0g_zMJxTAdXmNaXTf9llsKrr7DttYP-Qb7JlUUjW11e6hAHoXbwBomFqxM2zDsFzL3ImmJ4-uaVxws47haQxsFgx62WgUEhijqlCzaBbuC0KPeR_K4_qIk3BYf7Uk_wZ3u73nTpFAtcpkw0rPbHTr6lSoTVyzq_MuZ8Y3qIv5TSc-Ao1VkckG9NFf_qHF41Ro8tqJuDRIml3X6DzpI_W6jfGefAoeEZSIQtB3t-k_YXF_DLluNZrOEIy-k-V6Gg80Ctb4_WXXPxWXUJE7TbZZL061daT7nnnFcklX1WnCrlx1rrPWoZd6I8pR2sJOu-yuZUyaTTz6WVnOVScxEQv173mrttHnw1O10EYIHpy49vCgYYMSArKn2TEO8HNo9A_ZVFZ3OYtGkVQ9D1NIW3HfZUXlcM_J4vhSU05m0XEXvXrJFrvNMOPnmZmaUUYpC4Eyc8txvhbbdywi2J2yG5slXb-RlD5cA50br1DEOzHG4LkquGdlFjywJ8hXGTovCnUcz4XF-TJ0z-FpiGVvcPlGGMeSUi7UawBK0wYOnlAqAXlEkk-UfpDzUAtALz-LdDWyTai9o-PlPc9Y9KAGxKnEdhuCdrt3GfHQJtT_WM-Raf0jfnT_9uNYZv1BmE5ololE54NSoQ37hGZU_5RwovDnYxel0ukoLeIkZFHP2KoopgpWnK74OPb2RUQcmqlpBiHhs7GBhyehN_If2BDMDclakiSS2v6_j6fmhbRkMrjDoatu5MIoxdPa1IJv96THT-iyLJqVCtYQZK7CRsSvwbBUpNpuVNFlrMWcUiVJxmMyuqE_G81eke_DdUX0DlubzR6Ri259BhJVhSC6ky7dq6YS5R_f0C6izHwHko9b3Q4b0JffCR27Wum1Ncok1jgpVl7hlaXRgkBvIvUJfO_Vh-7Ycf8hBC0MzyKfg6MMv3krCUTg8emKh5kvRNh2bjC-JWnWUsEoOO1qsUQIW1jUZ0QJGNIJoP-CHU6j3HMBvcMnNfM6NmZZpxRWj_iQ4LyHQfEUd-Rxs-87nEqkCjGBFMhPYMXJv3_2jDn5G--ln801PdIBPbYogqkT55m2LmJbFbdPcgq0Pt5WZenf9JU_CSFMFqQZa1BJ3ZmoIE7cJ9Q3xd3fQC_C62IDhkvDmpHtZ4hTsormK0RMrq7n7854ocGPRqIZ6yXSMZVP4vw4-Oto_LerBRAtmrcKlW2_WV4rJ50Eq38NUUkLtc9UW6YWdkMPez_Dwbo-0ZJOecsLuRZKc_MtTBX_CEZ0ANCGC9ZRW7kmC0ycArgYZcek_Shm1oqY3ldG_g95OpCznUjJxMjVaWLnFaceZewsykH1EZVYNB_asEr0uOVGoSjB-ZtLOZWKn38awORkBTLHl8NVIKPYoEyiy7VVy9ND2NHepekYStSvF8sU06z1VXmflHCGxZtbg9dWfZzFZVuJUW5t5zBAiH9MIgEZ7k2vPQyQ5PhYF77MoWm8_-spBNE7ilCdjWJMsqZQzUZCo1BsaiVDMyNwbjKFGB4exwUeTWgpnneqEC0r9ML43tT_Ly0Nl2uDrMamORiSeup7fs7foVRjgSta6KXS2Kj1oUjjCr0dPPiz7rg2taxzRC1zuHyCbzQx3oMslIoFCwWuYCA4eWoXCV-JsTQ1chJ2l8rFfW1EdpYBILZq9Ned_hHzArELEIO8rI_m-UyNXd6k0l6ALt5m2ukZadAGfzcynZzpHYC31OOjkSdXF_Em37xUc0eSiS7W8QMkFFxSUJwCOjY5_1mJwEZScddK2jiAYZ7s6LH0k-_V-S21AoPWY_g3--o_GK4is6bIrbHaXz3UYz3-EF1tiK9kHrRfed5cdp-5qw_lHfLCncrIKUqe_-JHhrMJMJLqWc9D1C-akRBhKRVe48pguc8xDDRXWYcC4OqkXNK7fKQt0LCsxqk8XKgYFj8mwQegtJg0mTx1STM1-gyIvFpmpHBKqH-8Dnv4xTmW7GAGaUth8OadATY1k3HZm5hRTm8nGNYZxVuEuj5PMKnJPjK6iTGgBRV1cNO8N2OCwpzPcwgeU82XqHfNxhLoFqGe4Cx4XHnTQlt2c6iMUa9ynwqJPps8qSlIgMv9dx4K3iUo2kz7CBTVsJ5Sm_oegWad_oGt9-upFacmhvEE9LsIKdw4FvmDSLOkTCLP4xQLUyLPGJSAedTWbOGDLn-af8N2thnnL3gftOHCvLuo2Fd1LkqTr-NCHLPj4lg04Aq65xG0iRUXFc120C-EzonyGvKyHrcBTPV1-YfPM4UVAfKiNscc2rnzzEj_keJBqTwAv4D1sV97-7BbE3GpbmbF6h7vY8LI3JSeboL5Tm7W5WF7z67pMnpnQFFC4CVGZrzQNwAt0AiH4zqYpgFVM2zzq1T3V_kuOoevinu19aDQlFwQT5bGNw-uX3nI7LqinNKXDpHXx3MCJ3SYZ6FpKnQ5ZmpwSlZ77WkNb0B2O_Q0BFO3M78cMjXIzfs1pZElRdD_NmDUc6rB8If1nK5YcjB1b6vPpEovffyqLX8iYTlhzscAZzBi5MgLEunD4yI9tdHsu6DmzQzEkNT3NTPbXB8JSAoL8huICyn8MQjmTaI4CX4QeoTpj1bBeM_P7QafNIFaA_OGfbowI0GzeTP2mixRKB9uJCldeNUZ1XWP-lYKXH6GF3-W4n9ytcwaUzmaoN2aTYPDJfsy7bxI1OkkxX3ZKai9hMTu_nJwklo8qBX-wqA5Ls0Boep2BLdep_CQVeJ_SOPwr6FfZKU6cmeagCoz5jYgDUTKbjp0EXY4s54WNiRUfYzdscAOmU-xLG77dxXEaBtuQ-fEl0tFg3_3CbmRnI1wWMIVzip1PHyOWuoXUonap1yG85We7ZUqJEJ8Jhaw5eYsLC1m3EkxiQ4czaGTfZlBBfla6aW4xye_K06K762LGeHpe_J7xXspFLHS1QdLAmlW-_VxaAR_0QHDoeEh3nXAMM8-njkf8Pg9mGtXOa3vNSdI2-S72L_aaxdebPPnCqlr90UvO1W6FUzzPZzoQkol_U10Hg0rdJfTT8RPZI_957HDGY8N5GhBsBAIolGIbzKkLydX0KhJwd3q6_sWb64lEphzuoBgIi-c23k9akEJ_VVQwHczaRZkNX1OB8NR8_HJf22GnF16ulregmfH6rcn8mkYboxHktaArrKo6VOvw7U8H9xFefMFlBhinAlJxmzoQ2Z1_FwjiOpVvWY6rRbFCzzWw5miLs5U9A7eIAQnUH_WAd4q6Y1gqFq8Qb-ypVtbJcWi7pGIaAm6eK9mN1o4E9S3Lsy-ekAThBrREaJ6599-H0vvXgFwlvU_KQROQKebh3Ii-KtrpHrznwtLvLsFDCDdY5zhh27mKI5PFIbaG9c7ewl-4Awj4Ighs3Q7T5KTOaDnt2H4u4vyH-K9vYNTi-f6m0r7og0Lngubh-v-9wlgWrMLvZoC4YniIVNQmT1ufO6Az8j6Y90DrnFOIYFJO4l-0lUxUsB8WVU1vHRg7_NuWQla4TC9Jit9CKD6frYwXNlqZnNlxI1LoSmm5EkHybz6yTFd7ObXeIjRpnCO9GGnEU3tcoPcWP62fCXpNJ7YGr9sLamwE0q309QFZxxzHUN-KaOwr8XiQRMYcODaKv0xGSIb-e7APZz8Ck4xpsyx1ky3dww_6JSt422r9yobI7puxx74Bigr_6HwlQr6YnzXtTLmiaMsvN5Ku_vkaHK0GfZ5vW3i3_7tFiRrjK-tRq6ljZzbq-8f43gCzvYV6lCmtSdDI6-Fhcvcf6IHDxxdfC-zan6SOtujsEMzrke7XMKznGjnsDgflDKZfIO_x7DCuGOTR_bz2f2pMp8D6YSRSENIXVn5By__VYYeTnb_h6ZZxAAAHfap62Jr74ishmKx8dR0t3easuC9LwukxXPziZoHKCC2XUid1dffAoE-umh3UUVaQxyGTk57qBkUy-JyJqsIUUoYnJXpuIFm3VXUu6Zlr-dfirYGtWGP9FGZtZDPaB-R_CmrqvCWR1ElgOoPb8dDpUDtCVGnJpeGBeOGxzPzX6WEjplZv7YwFDMnkGMblrqN1c-X5udlmRBjF5zHsnRV3yAb7XGQMNlrJ8U1TIObgm-oxxU3ChS9q6e_SkV73_CMSRlwrygstaBaNv7KK1dFIGIg1RnvDamOXSBRdzFGTvT8ryYBhzqhufeCanMpVlWvQv5Vy8U-GyCsRLoP4skQhuBUpSX6IrmcBpFh24jprsKb_Ux_uhiaGlmM6wJBh4Za0498X46wRX2-3wQNHFdnQqtoPy0s7-Hx2Nv8ZGaRB_3_ZIsAj__6sBwTHpfwZnU_7jL9Ml-doGxTkfQZDYZ0R4CxQ-4SLCvDipVqjsHO21t06QGiM7-OYZlSZrJszIP4YVDGuWqhNjVnWQzmDk4Qf3ZF1r82RUpJvN03WYHeIfHf_V6HhAbj5Pdjlg0yZnsjrgYGCkFk_u0aUjA_tpaQlfJ7RdYwpAgj5wLA6wqIJKUpTtdsJrgS3TCCQC9SNUT8plYR4D1nxBkrsXAnsYjAfa_giYFiYyJlthwL99_ZuZNjFNwuXfd9ysBn1ASDhaV5pco8hQEmsxTdaVnIOoN1n_eG3gm_vqOAjDIPz0RNo623Tv9oxUbxjmX9RhvwbaxWQzZXeMATUAjnRB1eee2LmOkJUKe1RE28516J9gXh6aTKWeZ-YKOHVzvTLJ5mrXfzIgtxs5EyJD5dOup5w_F3a-30674rsYXfUKGMZf-oMkIE06w9NreOrW7kJgPJQh1nMY_TFBwSEvzdpBJjZ1sJfsgMsgsJo7j0nXolfccId-ln0spYzf3A00u21IWiNcgOzlzuqTTeCNAcHdhoUvt3DekznBJS_narGacbpVLxYy7m8vBaYxxRn5aAYxbyB7zhl0j39gvh08d2aYTHHC2ibSHziIzKRl9yliYFsG4cEYf-SccT8YiMCUnXAU4rg3b3LmTusvRJmdC9uYw0Oga5bLrJrz9lbBnonoHwKZV7rs7n2nrk_RuAnO5Zl3TUrVjWmNdCyMOtNvd1LYB69Aaq_9vmOqWOtKDS_6TGkBZjiQpT1xIwQ1ZB4ZjGLNf1dYBDpBYKxNQWQRsOGt-VnrweYIr9pJCbGQ9DyRStm4y1JVgg9IPA7a8uwKRdkNFimYFGin4k27Yquhbx6Ir7rW-a8AlD9FjLW33tSY19sFUabkvr48sHz89S0tT1ELnR0vXBBdiyRIQ3T_2gbD4HX-dsy-Itb2fYoT9-am-iyS4ZzoiagJ2xcuDKCgjjBYMhW8pmpAshmzwXkaBfVj_krML1hj6mLee5zo-m0dnSZUUps_ucD1mSQ1ICqvoLb8fL-j5kpFjqA8NEVdFBRUDYgxepjl8YPzdCduTcAP6x1HI79z0-oxnH718VyYzunpdtcJDZ0LqbfzW0nGssJClBGKhzFrApFwHfONQBrTT3gq7ueH6IIihvRxIotYftVW6cByfBdioyDRKaxPlRcF7CdPiBaNmN1Ojse26OWfh1mYWRM7LaHDuYpCmTCTsOFQCscOVXaEYaM9YdVYb0ZBdRiFOIhHTeNEaa3whlBtnXhJX_D0wXivn01H3TgSc1sq6UjJ24vqtD_4pyKbLdgwEPEgkx-Ko8FIQX6HedVa_S0TGTXHStUNzLyyouE2cz9yjS6x4PbdV4hEa0kIC2FLwWj-O4zlPBL98soFnLCYCnAqprZfoyEi6T0Fj97y2mKT6VbEAl4a3TnyS1itODzh3tUQYRSACnJrydSnd5o5mlOXlswVzQZzM5DGnymdDwfvyU91AIPccHTGaLS-ZoCrdmkiQFT0s9eAKphjtpgWTFaVPx6dyuvQH6UdKf6rAmbI75d7990PJW1nMgKAdFZ0LltA-qjVm5dEcVG6gQyfMVWKjQbnCD6eKjW5HcPJJXOU7xSzt8XDMk5EJgAazE3bJFGjpj4MATCCy2gsnfeXIxf4MfWH8rJFKcwMTUujQOyBNJgOpoYybuHbDMpW2EwH5NaxFevSFX-lQ07I5aOClS2VcFaHFVEvjWUM9k7ulukmAcLsR_HiTX3KbcbW34OzmXdw2vVE2Os67C7JWfvtFrZLA4AGSougSs_DldSQdI7qSuP_-oXvhUx_OUIpWbE9rSCU7SjaSVbgU7g6SQQLZ4E2uvzRIJrlpxCLfZs9M82HObC9EFv5v3dxkGEY9N-_Y0x7scxoRSL5Sadl-BtqDt-v-PeqOP-loa2-LV9U7aVVqc5RC8ytqsXWyUn7cUjyjSZpdq2yW2c9EslxnvFA0Ty8AuHR_dxJWHTSLwQLZQ_fulcz-VipoulYStGJDX_9zGIDqTaptWViAyufbotsrCCYxD-RnanoeSqgSeUaRUk4JkbW1w94-s-BdUtsfFrl7V1szXU0yiyliUfSoDnCrxOY4UiuaRuZPGWe7DKwGiAAeYJ3h0xOYDzDcCFL9ab_gcR3hdZZQ2oblk9bG_pnlmZZeHVsVeY1Lyr2pkPu7E_kRqdw_L3-J0A8Yn95E5aggHywuDD_QRL9uJ3luKwiv2LP8ZO6GybWvv6I-68gpkfnGwCcZIK-IDT9FP5oGEfI34hUtZAfQ-RcE3f-_Ec5YLm3bFskLFcb7ZmnAlh_bIoE6aif_g2JQE-hFJPfX0YT--PS4B0rBY0M8CXf38jSsh016xRollyfuzT72IMIII2ulXMxcTRg_mfiy-mKDu0qp1Rx4L6qkua-7sYkjSZ0C0OgjGu0-GiIH3ivvAE29zJxjfbex2Fc98vCNXRboYQNT__Ll353xDFDLkHTp8Y1I79Yq-wz9iGCLGz6sPm5o_Sv5Eb-sIiPnv23KAQ9NuCI7WhADVGyk1Ax5OnTRk7Tf5an_8McKd0ohDCjWV8oRM6l9bOZIa_jKrlLj-EmWH8JJcgX98gKgHLXJxMZdv4gSqhSxLi0pzWgkNW7lif_YzgXFLumCf7No3gzBQHWTRXwhB0YbkyRWKNEEC-DpYZNmQW2UXzNbzQie6Ehs1CVk5aZf90htSnMLjpPYlt2bP6Dlg-iYfs4PUO-CLLQnbzxAQg2OlUhRaTSQGTksH6tjIYW3xao2-FcyayGB3pS7N8mQxmfWwxXbHHiQkhOlLdvssK-F9Uizwany5K1HySWuKUSW__oWaqrfRhWfIH-x-ZZ7cGlQaxvvb4u05NmRhFWIoMeCe91m0i1ZDNVdJU4RwLbhTqCkdclvCw8kNOhz94IrWt1iorh5Xj3sJtmczOSGXSZAApQBHN7pZSikc3JypWy5tfQX3oKYLQ34F3opSWHVnlJSe5sg88wEGecQElQokjLy9cBOryrTjCyXL_LWf4uhznUm_CxXVvUWINFgzYTWNaaMlFKoI2wyt4ZAD0eBqJJ1DGjtWYLxjPzbkV5a-dv7a-xFpYze_vpZnyXs0WplRzUClpO-BjqDeyr3TGCLRVaD_2C6rAJgnABMqslOFesGuVD2dOfNJDahgrfLogtFxBjoI9vEEVB1D2jVg3QnWE1rokpXOo9CuXzbiz2mFbf6jVvgQk0kq15GBYXhfxf5yrH9kcePqS7d5psBg3V1sJQl-cb8AKa5SAYoh3CEhO2BCMuFIf5qYmbVsmbCk0gYjZGeCyXHpOCEs3kPMnqaQH7z6wrRjmF98ZQ0SSZgldeOdxY_ta7YXpH2nZ8fJlx3Pu8EGNqxCp3lt5fhATyk3DDTYjd2wd-ElTMbA5kwD-8yc5HkpLiTTsjnKug2zF2fd6xOahx4KBCCyDHndbluLK9L528VUZcnKL8IfSREhZ9x05kJRB-3x9gDsPMLtBoRz22wGiH4XXNrC_V1S8Qc-zaD86tgTqNHoqf_mbnpohJw2-DLD_TOHvS_SAyBlh0feVcAqDvDk6QRRmcsL8fwwyy98mp4dbUHYBBfTxYKlYnmyU0ekLOfPWhqyeHFFKFbsVyUjLcspb_MXLUR-g1xWjaitX6QR3l-3F1bAoEzneZ6_LjaPbscQ-W3Gd7gGc7Ac_tfTZ2QWutSH9tgXrv4lBLlVIK5xIYRbVMWr5QF4elepYgdZW1ZNGbz63pBdri9MeIEsUMoqSUgYBk2Uk0dXnlkM2gu6ILmYDoSION-HGZ0zJ5INDK3gn9cyWOkFIRweUzqNJnFb1N04boNdfnoK8eE2CKKMPzzwVX5EOe9SjS9qgpBol0gomLV7rL0aOu_7gRXWdybbS62oCIBhkMn3Au9Bp6K_L-j1loUt3Bqdk35BWOwzTluv6CodyvXaEAdcGvyZf1q5ugPAXo3GCbhN3pXYlb8sgVugXHlVYh3UOQfoxVQSuDza-K2VGwyawY8d7oMvVuu_BKNJkOtGhGIF9pS6rDq35C1eyBCs1Sy4NNM0LQxF66klI4DT3WrFiutWLQA7D97Pivano2J82CioAsdTNgAIZebdXs37AQfUevZ3McF4Q9_v5CxMkBEiwh7kTPdLXzXsrDjehOc5EmJ25moLLFzPuB1QJxGNF-aRpVfqClvZqJkxJDk7P19agou5NnJTVA8nwRGUT7QwftGxxIpsDQoSRFFOLr3QaDNX-woKKqm30ShVF9BdTI3FuqNeJ9Dn8Oxbt9lbU-gV-i_SeN13I4neveRg2HH7Ul7qr7Yd8tw9wAaLztZV5pKberAV6id2aJbEkHGRPkQ1t8XGp6AhvWXNNnMEUX-mGw3m2HXU7tevQsQbdUwSjYOwXW2NnTUCX2XG8SaNkzfHp5lCFKCGarm_tZ_rFVKqXJ8Qo8EecvPfoVk74rzGFg7WZ5yMfnuLA1gvjTmr7C3Kjqv1PNCOLLyHVm0mufooAHDIhfcfq3VZp8qWL3qDeUJ9PNP_3k-YvWt4rI0bBF9RRS2mdeLhm17p37NQjvlWaG1ia4SqpkjWBQrvqTBRzMQl42MS1WsFdoBUZtS8n9H3l5O5tjuu20NPvFoXm2uAn4kJwOZK73nFiYijkm0bLTBBGN60n6rNMSyMEYo5Y_RYSTApH0tOBU8yf0Avi9fEAywm7vdFbJFdnvhKIqj0jO6NiicJcJqElnWq8nYy29Y19o7LGXebI3vOI3S5rpUaMqf47bOqF5_gbDleKPquYT-W1h8vLvfYRuutEKn8B0DLGawT-J5o3R8YnzaQ2jAxw3Zppz50eKRXuB2IGrgFe7yAS0QAUb7NXOHJp3sjt4SWB7lvTHLisIZQgjP4YKqQ4i4DDDDNvEMUzus4stAI64F1XZZfYvra3chxb64qyk0T_W9x5QJlcI_bYly2VHo7HxfcNpOagQIW_7Zfq9Ajfjb2vD5om8FPDVCzkyme_B26G9zemaRGUJMeZ_00rU-x0pnWo_-yExeTb4w6Bnk1cbxP2I9l95O9P3pC5ABtnI37VQQGjgH0_b1cSqt8OlzcAH30wVDvfkwmktD4_3Rq_gnp52mgcfoL7KFKFEs-6Hv74xN1hXCxW4Q9_1dpNWK86NUAl-UxkrWq2zA0T69-n-a3eLBZKx0skvHWYuY_DtbruMzhFImUOhyEFfcAhQi5euVCvSELtdEGoVXQHjkBxTgUOGVKvMP97BPlx1nmUKVg3BIV5bPfh8N_nsEku16-_S0UJh4_615tJmQvNCoyMdgildxFaEdzYczNscrArC4SvFlj8JIZIKlx9ObrVPRG_79GDyeV-W3_N92Ab4hmLsNM3hBXerm_Zbz72AMsARdzt2tncnxbSy5PXGIVIXw8KoAeGVOeh-G-ioBP5fjwIm_GQJeMonr4eAC3kYNd2qWjm7bch88-PsEoRJu5gn6p1a2ZRIC5rvnGYYNU9z0KQeDPUZY4bBwPG6qixItycjS_D_qITWc0StB7yxZAOUPLpGZPEwKgVREE7L8_GsyYuymp2Ttl_0yZdyjQlA9gTb8qyPoMhLcEGcm1gcPi6a7DGVstmGJ4AjnXNAlTkWPDR_Jrc7YDa_IU-nc4kNn-lGo3FE-CYAL6EKgD8WDyYEjxPsJF-rt5E7Xr3kSxgSJq1JzCZOR8dPcfcFzW_2t-wyyB7yeDqQPuy5H_mYi6moMIi-KjYPkFsRfwQNswM6Wh7U_vCmgYhumbSbFb-flg066hS8YTR8ZaUqmTRfZ35EYFq_sG6yh2s_rjh7O_n71lg1843SOidgyFbZTk9oxPat3n1mJHAnG8b_izFNHGls1HoLzd2-3tBAkZW2xzaUIKvpTSgVIpL3Ey_P2P_tnmaKfoLom72n1nGH8Pb_LbOOOPohhv4Vi9WN6QcMZEKPrQvnYjSknfzzeCCxDCTl-f5gcKpiGX7OtP831hCItiLLZkxEUuOIZ6ytPDY-HsfXYqveSEpVSGIrnEuaaHQ9viB5GQTHarBjbmv6NZCmhECWwX64sK9vc4ggzMqYlGJLCUhoEmeyxRqYTRmkCTLQOByA-C0Mnq8awuwmCZ9Y9lrljvY44C_8lHhEHwGrPZFlQTYb9XRvKowqQmRHgrX8jU0xJifKshkekc_EiR0PLMfbpvjpLuBTk9M7dY1U9lXi6AlxtjH8wQmSMZZ72m3NZWQ6TSL2XUEf2XLte2PiJBC5X1psIuOqywDtmqsDmVRkmxoTSftIADsv90BIZgmancSEbn3mfP6rXORYxZvJ4D9ehUEUOPPIaul55FdaivltXE3DNmSvzx711LtqATlH-UqMzTnB0xT2-ift4kXE9uXINE0wgYX5MDeKjI1ZrQgpSX-g4UBMqzyfPE0dcqf7kgDsnwXpT5hj_t-k6uCM_g7QV0jNhyjcwVCyCInHbpKhDOlBFRwBF6gIKqJpcTDCBOUNfzUM_pAKobnfR_0oxQkWLcK9nl-b64XOyCuZCSJgXgCp9coiJzFRBwXQiOny7TJXgGsdmEZGRE17nWEFADxViEB7MLH2aTL4QmtMSwNpLg2cYRlZmTXxvWg-BgLWs8rBHTFh7AtZOD9eYlPMx2lulGB0RWFElsdmf65g-BfPFbWFlPm7D6hTsy3d3HElp-fzEmS-G9jqV9Ir1g0Hphu_gnvOFWV-2yFQ8Pxwyn6H5_ESWF8yi4fIZ82q6qOV_TITXN4y8IGllMI2Q9O-P3zTqIR-o8X0UCMLZISIhfCx45tWYPcYazDZgfvWdzlkzJGGX22T0jRZ1N6jchuBfvvvdYOI1oTrctg10sPbYPTqv9xIKXMYODAk3rVu2N13krwXr9JD0AGlpbk1TdEvf1eLYS8_z6N3nrrSZv0b3amWQ_hPWVJG2UwjDQOvrM-hsEa9sO3TCVRZHq-2oorxFBO6FFAF3BjdYfjpe0p85BfLFoS00Oq_sPjS16aY9PmZAgsKHbUT9nFYZJLVrRu7npjgr1LxCUokhY8xxK1GNcAD24uw5Xn-58OSU4ZhfYWhDzYo8n4kszhJYBrE__MeyKZJqA50KB2AMXR0vxJ4bR7X0dndu670FunL_caLgafEtACOMYAvGcHnU6sr6Gd2Y97qpYPc3K-GZv14h_iggNHQAwMJDcTdQhnz9fEd78I0jOFPSMcKFTNAAXo7w0P_NGZ-cvFWbnVhY6Fst7lvJDJemYIt3PUw98X6dF8f7dpwYRdG81ZzjaYigNYaW-uztervVlsaXKhUuGIPklVAQWIqLO3Q8DZ2NWebPZzPKvT541bpcN56TSyaMSFOCc7DDQJ9Ht7GWpjd0PXRcaJEKQtAwxjAsEj0EQe--SjlO5KjCJXR1PLQs_jy-MIBGO7TdXc7-n_toHARIIoxrKnKmdY0iuFDQOkIZ5aK39mrNt3sUrVfuMV6vw0AJ6MKaXMLORYEZjlvFib6MdZmfhpvrp_nck_q4aFXV4mqqTTohhsD8Z7tXCtJw1XrB3eOWfQ5K7XBNIa4NBmb6nOTHG2t2aZVgTz5RQOGAvGxdXJ4XMBCe5GlWWj1RMb50aCCbE703BoQE27SHu9oLe8KqTZJkAXToy7Fvt1mvjpTGZWuRLdWl-NFRs4z3ZPydp_ZIaKRoazNLHoQCoBG78VA0ANJOWHYrD0f5sfv3ssvIJVEqpa6PAO32hZK2kRHY1-oF0oJWoiHIhCzP7GXp7TEc5wUChliCsx3YPZi5Sc8DXJFhmmMOUiAP-DGOOfGnLsDs77ktEkPqvK_uVLJtg4K-fzRqz0MDKrYbFVxQG89Oi8GzXbsInK1Efpje3_qeRD3iUErJPDVWrAccBfig17RGiQfJa0p0VjS8djWAY9D-zCwzwCJMl0e0RoWISOMHEJ2i5Xb6L5gA7ixNlTec4nGWZzDQc-8BSN1LSdz0q57d8iOytpn6qWQGO3iZs7WDs1SNSBf2wr3ba1f9Jsw-CunblHcX1qIfkaxMjsENZOjp9elk78FPx9fs8-ZDuvrWU_nHrIH11w8tCHhONB8EjdFPpTfI0kZ2Z5MvbRRWbnLUA-6EKbe0NM2djSudjM4qod7SGoR_jquup25VZE0gN_qy4w1TawXVmQ_3jt7_jRT5Qn6YQ-bVYj6b-hDVI89a2hef7e5IBMzZCucdfe4p69BKSgDrP64iKIa2a4S-Be44-Xf9U6KgTiIvPNXCk3QGN7JZWpOixNob1kxtRe29M6mcNWZYRSoKDQZktsHPTmNX1TSAOx5sStVNJfHhrjtPeLmUObqksMWkMWMUpCaZid6ogEnVJ2p97U4AB5gHutv9tFZfYXRZjgey3L9bHNvo-rkSUUw82AdeeT_DySQ2vBehMY3fm1FWt6ZPfO4ejJeJ6L-WQJtmnRxH5sArs6Hn9NXky0TuAaIX3-sNRsvh4b_zIlIOe2XcAoZ3pVAIBghIlsauy6ZRpvwpIHzUMJ3BkzjJzj93-tGrerAmOL5DI1xx8kYVUuKEwmu8mJRZqjeqlPN6B85MxcINSDb0Kd-NG0upKCtztveyCJ4rlUtci5rnJob5uesp6BZZoQFfuMGRYgou_ZnM1z08Ce-KckC01NaDzC7gx1YPCi0Ni8iDfQHatZVisFqHXBd4hzsdtBUW2OxN704T3nm5jBB58VNxLaznbJE8ssJ2tzkofjTYncU3x4DWI53Viua_k0jQD_7lLvonkua8ChD4puvik-JVRva1OBsWFHauypeGJWWuw1PRpW5wpIo09gUzjn14Xk0XApTRkiuVCtCmJRRNotfdkD3sLU6qvPCE6DfK7hJ7lJ64er-Ep2LSYVqKYqBXH6XEmOuByV5jIuI0v-6iAtU8KNJH0fPbnZVWu4aY97AtMK8GPe4vNGgR3rQ37qdRA_evMbHrwvwPvPNjrxx_PUFu1rrngtfhY_w8N9cu3QH7kGjrToJ--ps0eU30T1q292hNc4ccG0uD5-xG_2V-iJoGpn2SUSEkqtgykMCGh2i0yirsJUMtg6IaJZ7UVev69ya32IlKqQnPP2S2UAAeAnmim85dnkvD1HAd2YFpZxyVQAulkSj8KNpIthXc3BC2dpG36yYgjNh2tyroKFu8uJXJWNWD03-QWKSOYcf6mXXxgKV6ECoy5rcR_ihZyU5_mwfJuGUJIg620C3gUjkiiaeWug5zz4BfntYZ_oQHyxgHjYAeZyKSVJ3pTVpjjDt9UGWOCGEarAeRNwbPovByCemLw3J23kqIOed3hxtwWYL4hDsgHC_YkhnyWrUxBt0Np4YqrrhGcoWAvA4SzMK5_r8x4SFRkHP3a6qUFHnv2xtb_5t1u5-MEq3wO3ciX9oe9Hv39oZIEgr0oxP6UUPiHfGkpl7LTTxHaZM5dOpfRHDFp9Y0z-qO41EU4qIv854vHrU5Ti3o4-0h-OsnPpQbnRlikfLUbFkOe32iTxBf0iTLMPBKoWaoV2sDb6-oX7MaOA-APyJiLi4dVaqDTbApbyDLuBGgqGWeDRaSK3WpjqfhAteewET9s2KS2Qf2J8JaZCRw841YEBhsFrGrNp4GpQCyODh8yXLzgQzm5jijDIjuY2hDnP6NuEOTZP-n4g1FprptaEG7WQEWUQZPQz9lIygORYpFez32tO0Xlusn4Yf7NF4gXdigTaicpJvZSQU8qGKxKT07-738-_3oIdIL36wbHK7846HQvW5LJrDUBzQO2VupcMxCoV0KXage55AnyjNPlg15BP_KqMs3z0fbOmI9-3KTMnchQg4wKoqxsLRzNU4UIN7euB8KURU9eomCU71VJvPWQ236Reritk4uB5wN3t7q96ze3s9AldTZhHFE5CkOLcBPXM9nHIyu_fkhAd07h5poUUQdA2puGbw1oBz79rwZA5I3vthjBRveJMBz-BbWIfB19xkWsiR1jIhkLTRX-SeWS5mfOVPQvhvNwa0EuIFxzRXdU63ivry3LiN0BBMf0t-CmjAIlYSiQNtcjXADpGyV-u7UC3A3WGQI37oHHV_1BxJc5YuXQukG-s3CJbxfao2sVeJOaEdfXYRjnwWanpGjdbUE7iRIlv2JU_htn1l4wB-QGfC47eyLG2Ll6ZvXVsKIdd5vXm5MRml_pxv7PX4KCOVsO93D8435PMVPhHCS_Xc9qn9A28y5TAtYbjb7GOTmCVEGiYMR_P5T5qu_Dzj-6DI1dBlJG8lMfJuJhp3YXmfyAhsWU-s7rMqqa4Quyu1YLcMvqcVWjR-SuMn89YYNMSKefD-DA9QbghP8a0CSRXN-PSvofmuDZwZ2oFpG8nzxc1ErIhkB5BQKl88yBzgRceiqlMC8EG12QZ9Xv90m8TeW5Wvgse1PkB2Y1YE5j0y-wAri3Uv64ERmFpR2ttjbf4n8Jg3NwZcxitb9h5iYw_S5tfxOUAGT3NscS0lWqt1I9UqMdA5eieWJkqNhVVaBzn1zJm7VZUYnUyLLEDbMu-8CFzghjUGvgwTpEEfvFsnYPRjWvsQ-sTOBiJo1pDQG98V5DVKREYIAVDcX3MEE3s8M1zjcHS_PN--uaaW_PVaXHsor7o_YAIaZX4a85mWrnpoOF1l7c66dPGLKelLHk-Ez2AaaAckEUeaqxfxXcdnxnG6ZULPqVp952rR6oOA6iS7i0vQq2tDGL_P9gyMOJICiW8ufuZczQTzpzsusGhyQlDErOK9v3lZSXDwYl_c8Rq5-M7F0a1Mb4lvxgkQnWVp4Jr-BDOFBOFk2JWabeSUr5tiOmg70ih4-kxOYYMFslbuFW4rKOId-Xq8DYxZur3wO_yAkjC5TiTcqqNZhTRc11NA98yBxPAqY3GPsvGgzq2rNan3uDf6fV5-ev-jlEg4Z4VcCQ3caB4NtoC8ZivVbzUZNvuQX1a40eGWYAzQTpIBO4a60xoBAXOM_Zd3ukd7mq94VINhZS7AOrSxPgYhycqrSnfr8aNumSv7qCC6fzLUrcLLkaO0pRoD3p8FTkS8-Gmo114g-xuS_V9wfldbU0A5fL4zjKhQJTigo9QOMePGwcWgm8PoNiT2JL7y7K49IXamosl-chNSoWGcBZXFjQM2usPedYXK99QBZy-8nOm6Ve40Ri_CibYa2I063qHE8Z651CQAZ_u_p4P4TCLHzdV-inlGuWofsGlC2ZEBUgIGxiosqbFKOcZ8ilyuVvstalybyptP21NRFyWH55NvV1xSgkrCq1PCs7Zu1x9fOJb1B40twQ_HuPElnl21XH0rjgSHq8sG-QhgcZWORDxJYfzzFWCp4VYpd4ax1ETJ8mQiSqE5p4foS6H00HQc5vDlbm8MEGW42r0MYAe0AVj6cjDbrisbLt-Hz36SZEjenM7bC32jwbD0L95aGSnUu0O_UcHghZPOG1MiSx2vPGbhYCAGC_rJnLKTa-mmk4o_B4AqFYNO9xLNu-wNWDulbgXwz1HQu3I8KOewPEYt3WmnlU_mm3AFCjhY3MDy-78w2IsJk9FI8AP4I8RUTQGucZucaZWptePr0SBx2VQyqs3KrZyMx4XW5EoQXVKzrTdXFLyTmbwICnwH3s0PNzrAZiL2-v2IDqCqe_tMYh5BLp07w8gsZnpBmiL5IU2kfqe3q_TZAT1FQjYUo8r7qIst8IM9LOV4h5mjT6W-gsQ7Tb6va8wkxIF5zXUhnvj0ysiahmPP6vd1gSzVSmEndJwLZyx9SqvMiQV6wL_nPdd54LERBjpI0ttxcogoBTBxNmAHfSGKHmJRRmMNLsq3ilW17Vp5Jh3EV0PrUdDuRkdL3cx1SeprV15mma-zH3q6PD6ws3KlBM-XQK629VKSzT7MpMMxBWEdQaYtJJ-1i75E89w8-nW9jTPctm0QtXLRhvCIy6jHQ3mHGqeQORVpJLDpRMWGADVtRE3YBaSS3pAfatHCv9-KwhdWCjNMJZFuLYmGhWlQJdUZhASYIGlWiCdNpif4P9jeT74AStW6Z_XR_i0nzA_7WnXgCS_9ZhosKutyvWkB277EvzYb0Q5Qv9yw-B9XfZxMJR5KJM-WW3tF7ZuNnjoQmq8fmiyJKST6K2MNGFAEIZCqxiLxttnyg3Lxm_ithCSjCwodH4Ggdg7M_kUIzczG7q20l0Xc1vEIo7Ja3_RV8NgyonG0JLVh83mWvM5R4V7vbonXHUtlaF8TWxiCD--i62T3x3SWt1qEY_q8d0pMe9X4pGYmaoZcmPsBa6QxErrabiG69rNh58qhyomKhCgtv_MPU7nr4JIS6KAVTwJatJAQergE2O5KgW5ilFTu-0GwRmy3hfzF7NSjeRPmecvBMUySmV_em92V_1NHxMJ8kng6DqMsvSiGi1ZdgbyZgyB1G6gtzs6aW8qHMFlcIZHMi_6HFAILc9aCVG7ekvXvBkqNIMsCK2zsJailLj3HUZ-UbaNn3PZpEiLr47oKZpgRACtBU8CtkYbitKrDsFBlWYpQ7CYLzSgazgV6AOXmnm5slPD54xg-zKvJMiZ4_eQEjQw0ytjeB3VofEZPWm4uMZ4RIBjKaycH8E2cy86X_6gby8oDipp3uhj0LRtzEpXLDiNBmc98FaxSMy4N9UuKJfGO-vCfUDe1nuFfDRGI3hyTxA2IW-nPQShWfR8AKL_oDAdzoGu8NehTZwSsU4d9QvSPudX7dqWymu2bUMAOzLul9WHNZJCJN0KjY__cfXZo7Cm0ht5fOCWAwPlplFbVOr7FFCgPpTd5GPbhVxQkZ7PVMDtXhCKHpDYH0_qsUuUfu_2SB1ysaTEBoAbJhKxfx8tlmsHvatsxsVEBR-gB6YTWDoEFDDhyKBmuojUgSJpKDLp5XUl-V-TSwxKKnhTPtPtNk_BSPcHCfZ4SuMm7D7ne4qk_ql91aYtMr22QOxOIXle1ueF-xJUmYuyM1NH-Dciiam3yRGfAw5GtyDXcLiKnFxMipr-tEBlPkPuGGdo28KwtYcNhmEF6qEyqb7KOxxyIpGySlEm9_j3hG55Vz3eeb4p8qrP6NSg5yWXH9c4U4bBL-7hXfYMfzIGw70hVJvudmwo718xvJgZQKQPPLFm4W7ep60TvCp45jeufyHbXNdeU2t3ohVVSnuv8vATRSMFB7r_djC54g4VdoYmntcDHf-Ybzr2Rr3y080wr1XmQzJEei3z0008tPr8BGIspCo1juB-HZ2NmTj29nPX6UPnvX6Wvonbl_wMZB_p7tFVf8Lx1-BbuRtj5PxIj7zUOBFROYMJLla9KEVkTxwzdVgkQjdX8hO6wKAaLLaOmYRKc6NpfGOHkd1PHQocMlJGe64lzvZ-IqlZD0rc1uLiQkM1dypiCbivrAkuPvnjw0jWzA3ZwMbYNB7Wlp0sLOTMyBLT-8CRCrh-L8x38LXRpiWLwkSa0IsPa4_Y4f9QRNx1uSz_tGIE0F9RS1x1OFNgfZxWfqJm8Y7XIh_rDGNET8gj9Jx7923z7WNOFgA6WXT3Qky3tI_abqgU5f7CYXXdV6fCkrKxL3YSi-eAlNIdY8zO4s5kTODfijC2uUqDlRqALl6CjhMrTkSopy5v73dPMCl74CipTwh8fnwBZSA7NNWVu_2Vo_QfFw-Af5O-PGU8p2z6TTHC3GSSI4V-jXfaY01ajAy4hOq2eiEv4qRWTwYqFDhkjrUAiOea8AS6I-KYIxUrnExgy1D0HoLBQCbRC_bL-2PEleBJ0QfbeDLU8rJh6fhge2DLjeBXXECmebd-xLSVdunHvH7Ait8EDGrZrz1xaZv4T8UkvEs3NxGySQiHYp6uVnZbC9TvgsxNscjyTvz6q0aQzSZ4wKsT5voj9ULxLNIb-FcndD85l1PanEk-34Tle2SEWbmAUH8sWDmHQcMX3-ivBw4NSfaihdj1NG8DN5nhzR9BSGB3UuaH6_0XdW6cNwfx4gEBetAhwkFeAUVXlY1yjDSiiagwnTnD2lR5eNFj-wjHKAbtGjTw4swwph9Ugmw5BJEr6tdYVkLIaVArl-w1jhe9WbKP0wjC2Uo-85vCYrUF51Ry3EWEgFkJzD_gZL5Bw4NXy_mZkF991XEU7CFu8lh4kDmK657e4X-GH4sTccvtX9R8rxNFtALUQBBJ5e4u5nQwOqxiQfheKjTYUcq9n5MnWGdZALtofP_33R6jVjz1y4RXMcs_R9DVLreI01EMVRUdnDDaPCoi7dgsYZSBxRph1VSi_Q6wGXPsA9cLLxElih_GGS01NcZvZfUN7Oh7RkBM-ymTdnT6Uhl-9LuRlXqWfTRlf4YHTCSgnopjF_ewDRHBnpyp42lqp0Ue3vY-Hk2laKd7FA6sXGVedffjed1FpYfZ_z6j7qvrltaxSIjsCB2549qK2yoD7pQM7csRmgEFWnV3E3An3iGf7aaoqHMmwRUEy2x7lGIeT_ZqEk3AC_6dTre0fpohCpAYHnI6HoOFoDd-dhsZWZRJNPHESLcvj92JrPzurNtww4j1NVoExC_yJEgrYa5ni1ug7HBjAwbgpaOI9Sb8sd95Yo0AmgjdN6Ggo8_ozNNsz8GRTy6Lfwlvco3AvdWQX9bSND79Qj8qzye6HQPxJH1NgrCBDe2IfSUv7OUCHHomCtDGp1UXnL3BQQ2VCaO1i8zm-RAWpBt8XVl-MMWWnRwDWVxy9W-43nA7tj5c4yG_hSuWuV13gX8VnaVWrDeNv2C4zultTHwZahs0HeeU0vfAiO3wO-Udvo-AlQNljIUCaCaA0uEkV1A-FARIZzw0Pp-c3PGHW8EeKz-O2OrkCkCgG3Z8wrEcKcjVytmr_Tiji2WByP_YXqDqpkiw_d4hMwIWsRR_P2DCKAol0jWQNUklziSg7i834OOVWdQLVLCzGfbM1nwBsnjM6_JoNXukFeUSHNRPnlFodw-MYSwbTCoVizz6pQAfwBomLTrV9KMsSKQNHd9cj5-sYom-mGe6NmT79kOtTaNVyW6lcs1RBE9atkcY1kXMyLfutX7JuQ3ESG2w_eG6-cVQQ4PuLEvJmFc3ejOXZLUqoCjOM5BEqbGPYWea8gJk6dOIDojhFeVLCfVTVJy9iH26a9o_dRHHXhpaCqdrUB0DD_WOo7yuOwrx-1U222qVqPzd1Rky3ch9oOEDUEr070_ZRJJhCwN4HhaQqdvN0AjRVpCdztQ6E9ZfdaGcAfwHQ_zAwpdUPPnJotMccXtth33njJ_B2MqCL45s57a06S2BrBFJ85ionlF1XML0mJ6yPSX1Sb0__FPYp_VBdlEr9CMh8trLvTRPZBXtl3Kaa02qUh91QQDvO4bx9GgOg371bk6b6ABAq4D_RCDn68hfDEXW28iguiJDQgnGN0AHHB6deO5qf9qDvK_S6HPJc8bS3HY8yvUC0-k8Tr-M3K5Xke0xxKbw8SLLrzG9wCUIWFTVEh7N50ObxojQtdfeGjcAI_FrMA7UI1tlVb2CuwlQBYkc60ooEFP825FiJ0nAu8SHK46TunlwCxKvAjKFw7PuQnKbW13g2hjyYtyS7SXSkcvFzjBEqg6t2cJjaPksOoCb-OE8PPq2LTIPrkVewHNkak6FgwdFyXKUbmK26AIVoIXQcTTnceXWCeJgC30v3TwijhHIw1yBXdwghTZYVmwHLOgd0MwvGfD2z3Q9zR0hwLmIkI092e0CQdecvwavXTVs_8ZoOJTLfDoTo47YtWe3GTidgzBKBOv3Nbb38qX5HyXctgchM68113QBRVdgvGbt519Esa2gPbvir5QBfdz1tp5n6oCGbePmpfrIB_-p82s5DoxZPWWhgTWCbK6xhXYof2cR8HQz6ogPqMdhDLHgCWJ-Zhxe_GJxYsMuI5OWhg0GMMlLRPE606S0MHOVezZTpfzWKe_bJN1wmWfoQHb3JyK-Pf2WB0hI9oelWfGlAbMJCNspQfAUPV-HYC4aPsX4IvwS7No14Bzl398HE8BucXntmyjBFCO-r_lbZzcO0Z_5efTb9V05qD4dZ7vvb7sWdheeB70H0S9Cbwl_Od0PlLSCDtYWoy58OGiy3MMyJMoHJkRmXWQOCW3Fig4UIPjIZqv6Yv0lLwVz6K3AwPdQgbA1jacXKDCSGMjMjFmLk6nl97jPQDRimejJHeMFxNgidzIwmazyoGVzMSqGug_lSe2wzvvONUzfhP5tbVs7Yt-u8uKTnKOfiZQt9S0b8FyqMjrijTXqvzw_WzeEdB-59wsUa0JpcJPsGpBhiP9bqbFTYc7_nPufVG0YzlNUoQyaUtOFgKfiJFI0RhV0o3oyvpTqe0qqIPdpsiM_-kOxdTeLQfUBPuI3i6WdIRztPq9YOfITpi1NuVV-n-nldFnNaJUavKUsMXEhBqK8E34wddBEVnvGyaHQzzHlAozirX9XySsdcvZYdiSYgOTRdwrDeKM-Q5JMbXMmbRkxh2ZVyKUqJzx0iJRtoYE9kIDYbPINvQgAq02ijrRYSSde7XJ9Mz508KfuCBopt0aDFkEG8Q6q1GRavADyruAl8lFdX5P4dCv3HY_J-Fj4oMDMczIV6hRDpGKrNDj0OqglkOkl2q1MzV99ezvb5ibM6fVVUqdT85_-tMVS3s-Uaj3URPAO-w71vmRmktdM9ZmM8aVVkh3sUKm7-nekwwgJG36tbV9DZ4YpnVQ_bM3vfMZYa1O33d48SRg4sj9t3J1zRjfeb6zSFQSARRpdD4VF7bjOjiM2y5R4QdPe0zgEmNo-zg7Wz2FCM53PRURmsWL2VLGCVZGEEheVmX9sWZLzT688-MKL0CMT2ym-c-m8N6kd7ZctawvdddjI9aBui9DvL2YEqZOdypNH4fOCzgVAcltgZMYVpWpidKDhOTw2YhOThdmuRSMLHqVWDRnixRW3zt_6hqcbn9iniGcZfsGYUmDs3exexqge3MxMlrvOuopb7cxdbz3O_T2n5wreOVkv40gUlNt8W9JgW4Lbb6hMh_Z-SWddAV7tKJ4vkfxKn5RD2iGEAOX_9ZF9_JXuteD2lJIIC7P6vXsQkV6qcH7yBX0g5G_ZDEM_3rWyI3EbMUY1Gc25O9Rg_Zj8O9zJMPOMcqjonYsLvCBNxBlmlH-2ppuVDhXvV8SWcGiGMyxKkEygBC82wXlkh0R2KUD9ZsIocjlq7jheX9FXTRK1Xh4qH5rfcQK3rrQrMEtVEzJj-D9Nr2PsZyTKT29lcGK0efkMm5URAz-use1meKvVRce1WKK-FAPehse9LIR_a6XwNCRumACWuTI4e_K-CcUEt8udg8rDOLzWFCRyGeSUrYRciTLTdQQFSvkHxGMcZArawiGKSQxvkDX-tuHe81RUct_ifNvS1SzPlQCo4Aq1Lwr83UL5uBuszagur2VdXP6_EKFQzjwrJW62IViy9LIyS-Ffkq7XTaFs07A2k_yyaXGssqbQq8IgnM6FgD68h-IBhwXN3Wj-S58Z3SUBM1HsXDggNh9oBi2Jsd6Vbe3AAJbsRAoZvZUTgip3khavvO4OMCvuHbyfMTUtKIXrl1yrFCoKhf38_Stv1xBEgQtd137LfyY08Mj2if2qR2gVt65v0sNxejriXH4Vt1AxhjkD9n-GUT7Ly03kE5nCLLwWb0-17KhXVwoz2IgFBYcfpj-1fTV8kn9APFRt9uOEJIcImnXM3uzHbZDy1a_A8if44Om6LhvIAVits4Jb7Mudz7nQWbNqEq0ANz08XfEpUZP2ApJZ57koJwSAJz_PdCCHHaJYJCEd8xapbQywMfEmXw0BUQ9l5tcszCfmjIzk3HKe5n1E7vFdm1cY0PHFPQ6V9sCjuAAZia2bocHeDfj48UgLby89A9cB1ElDKitDxQhb9vnXGiFctZXHKpw3IQHiJaLtBLDY2JeGUG_r6GgydR88aIkACUt-mzNfVikodYdqen9XlvrTqCofkmAnWWiyRIjRKnxyavFsgR3cPu_R5HW3Leg-8R3ysm_6V1Nlw-DDC_BNZp5w50h1_YZFbHMOur3TB_xq8no_Kz6-oX5D_Isti9c9OoCOpGNPtuoNgfanF68Yz4iqjte2g9UYpkefaQM-kQG3NT7r71PEZHvzUndf-MG3YmKBZlHPL86eN5dsYSEBkVYvlli-QhNPwmXn7wh_laRuQKTyabxy5xHGVcpOs8BIhdZ9IyyEuCBe5FUjUbCo33sgNPw6W5KoVPV8WvxTSwudNZ3tKYgohe7Q5pSIp5c87y7yc4-Zu0e00EFlc6svlFgG1-bHp0quSEVDlBIILBw0XF5WRlHCvYf0FPjIruvtkyoe3qCwGvhmAWwX_zoT-G6MnX5MZmauFIFyTU3u9PH0QI4-8N9KVptI-VPBGv1usJpD9hoDAtK_-JJla7HI5pBjaB6IItnaOTUfkFEiJgHXEXbblxScoxNh7NdEqV8IRqxreN8nZwVa-lkqvJqANv6HwPp2fNK3CObovRIf9CfzuEtBmHUbuI8BWPXXXW3wk-vgwNyR3m9LzAg7TrDqyBypvPuvAKR8IUdoRG9230ddmG4r9ZpnHtWTRjkbX-CYCVgsPl4nSsjFwsC3grSkuPiV3Y2I8VrXYKGie5kuGE2DDgQxrD1W1h8q5J2bhQNKPzPXYTN_Tf0WEVEtSNGYw7ptPRbChX4Ff1fRXgZel-7c_j-EgHTWtjkieju1px9qm3dVr1eevTTwKcV4r_0q7nYKuKKhBcRWVF_ZBVdl2kbjpjDrDowbvPQ-JIc1wtl54jKmZt6Xg3GacZJLHPEUT2-eyTxF5VemUvN5PqIxWeujS_Ua5RbM4njiedYYJgd5KUH7H3FMR50wJ0MyS6hVcn7qMyxU0BGHJA0CzR_CcVSZbLGD2021gjifXtFkZVFtb6QHGDz8uABDgINnOBBuZ6DMbXj13ghNefsxUJGpS_7lPCJvk1UuSnjwbCD6hLZ5qA2lNkX_PR4JEY5VIHkcQyuGKUVZSfuP__ivn1QAtbObi9vPWSf6pKhUnvHJ17HAfQIT5IIuWsbFTIIsHhEGPKwPlwHl03x6s78XZZ9TpvlKsklKaXpxUiJx-7RMEzUYktYExrVrAL0EEWxLgl647NPukhLZ6X0tT20BpHTu2lzLyth8pu4TAiKnKCzCVdb15a_zDhNgp7IplJbkE11dN7E8XKs67cg0viNpkqGTyUqqqvxjCYcpCp7lyRsze2OQYSe5CvW8hJmWKgayBZCdj1ZuuvCzzUMsm_-HR37jRamqxjIRwYiCgFnZuadp-N21p2CxCjAFhhpU0Duelj-0MngD8_jqRo__lLlO_r9Tpg49FCvyww6B7tk3jcAg5C1XdvXIOWdEcLTS5Xehx_VOOJiNxAIiVzS4OJs_YQFvd0UIAAqsphphRKvPECV4coAUzJxJsnu_kgksoZXppYoXhFkSng_IH-x385HJSavYj_TCOGtABD1atdYj-9hbXEzPHyTzWFwHpwFV7c1M6dImWb31B5nZOm2LBagl2HxTcO5el3BMgaS2YNtOSqppwXmKxvMSZ7mKIbh8HssI0JozOWASs2rk0FuzzHYvl5hXSSVpsY5Z2NZ24UAa1WIOszWMH8nhYB40Jk5INF06OAfM403ehTkkMTZLgvrIk7raMDYglqAyLTkvr-HvrNaK3rbnJsQziHp5MbSUqIttGp6etdTqziyRIG2zgsuEnOtyY5nnuOW-CiwJ6rBqsHyrrpPdy6Y9l7bj_3qNgXkaflxiM0amGGol2iWuduwr6OVqhHNpc9mx1O-q8UCPcUy0jRkkqkMH46_BNvSOCsKgfsnDgynzAJjQ53nCI3vskIo-FWRjH3KS0BML7Fp6DWeasp4jintsn1sV9e99SxOq9vqAr1su0pIaF_-41bWAsuv_bVn7QsyRH3unljLH6KBP5ELdG4CKZRRkKQwk5b03AVtzdjeGqugy2Ps_IGBNzMyO4kWVPHLYhyHb2CiXPadTweRbBW17YJMe0Pm0l59yX7dXBESmJ2EigQvuEaJHn3d3BpauJ0LeCjHRs69e4aGvrRqGDWyRy4Md37BziwWmOjhT3ovL5w7PlKLl1MInFhbep4XYCdxjSKRqJyjJHj0NrA0pobfQQD0XC-yXdjbRBbfS4dVKPM78fNyneb5R_4po0GZL52uX5a-yXQ0NVC8zTBruc7Ld2G3aOrmkZVBioVbg_noEVDtQ1hqbpxMdcfP0L225h-KfxrbE2-0iKnMSMBd-DIZHfkTLCajmdNLJCEuxzOpM3_YRNGxnvvGrtPw4wsyYs7MkghjtnvvzwuzE4SCaSa3lHX7HzYAzxUseKYNohpKO94ovENUxHSQTOIkGSSYkKq7mdupMtH8cldmZS0F8XzMrXirlnWQFcgB3iOz2iOU11ePR-dGdpqci82hi5wGJ19uAdWECi_TXsmX_0JgAirEh2CJ2wV4RScSTh8r1Trv6Y_Q1_NyLYU3xA4nDr64y8N7GzXoizEJNrxGCIvqYJpNjr4_OsCRajWKrcMnuGap0Q17gac7pk3vmIw0Jheiv4nsDYUQ1gsuWAv2xw4ohh3gb85yN1nkrVjoyXNhuENZ6BmHAijr1neg3Eb8iS49vqgkJSeTLh2jrbX-2OJ8v_Fl4B6ddNhhsdMHP0S7S1ipY_kXQJ9NEHjKVcC5pMelKyPSGCx8y0yOVgtRNxkwrKTsf6kuwrqpo7gk_w1WUzNpgN-xRDsAM1rXGIueSBY8GixNOcW4kCjcMtTQxpKENqJkrfNHlPsnLowuIrrxZ08BQjy21gLeEzRqwzyk3OTvdunTylcOICr0jJLri8gNLf3iO59xvHiW_Z_n8hNQJaIpLKQixAXsMGmHJPSl-DeD6sAloioNQLLNFKGXJ1dc-vUTqlGEFHJu0DasCWP_A7CD_XrIHUeeE6CWbaKDSDJbqpp8nwxGLrYXvHFkn5KM35fAdATHShZCMPzOiyaScQ4-m6ywiFQk3kdgyShgMZsCaQoasa51dp-jp5mNPVRPi4qUuBRZbyVzthO0mRQe4e7kvaPTYXpqbxTFZ4_papg8zyqiqn-HmeQQAb260aPsObCJt6AksQv2sMH-vjt3N9b5D_L42OKI5sd7uZ-gNv-5pGv8dPTwyuUH4pmilN6ZYJTtWtSZYnazkS5cUQD1UNf0-c1SBS6ko7VG3KsDe8Dtbco-jycLbeUcxm84F-GSbsqDIg8TIZ1zjM3Sr55Vln88kMpVlgAye_qIX9N2f8hDT6rdeaJgi1S5Qnz3_Vbacxg8kC6yHPxaZ3ynYRr-8Cfq4saNaIvCNlkmoY7Mctduaoj4-BffVIyEL8alHjN0FjjhfWGC5dh1UT-tfT2nnDIQ7Qr-vIhgeqjowrredLbfTNJ1BbaK4rKPC7YpQaOEvCSkQHqR6Uii__n57OiS_j2NCm9AvRPrMsGuok80pRQrZXka34ocAUE33w_xpiYieBzfiPk2vqoeedndArTWQHX4oqFMCb_msAd8ghMjhpDtrbyCAd8X1JcFMK2S7RH_X9GBMsbU-f-2DMLI6BK_YTweA8m5Su7lwiO5U3tuadYUJyOfheERbAmEjbzpabkXTvA5jyrT3iLcSgjup2arCBvoEHIyy7tDiICKf88MOJzoe5tbGvAwB9XbD1T6nC1J-s0D24xjEMLeCviwbBVhJ6qCKdo4IlqkeVVrl_eVz-nljB2nkushXy1I-NVnhf8BZMkEWjrHKXzED7AldgL1R6NnegUSDAW57m1E9LIUf5HPuclb7Z-A_5C3f-4i8pRaJ5-Orqw9p1AUks4e6SbBYA_gfUovruoRcAMXN0aTB6tF-res5dj9kdqJXj_FRTfDrhVfYhQHjGuuE8OPhW3rp0wuq2i_VT0nT4y19Qb7tL12PluB7PYdZ1apkSbNcZ8WY1NWp_-gLmTge8dkx_SFQEpMO2ieTIbCDvpDQwvrc5kRdgfSeCp4lzWyHvATAvUwU9ATcidLykTSmcMJpVLXE3A-k1zaW8IYgsM4_M3tKIS1cs2qRpwI00sFcY_FZbyAb2WQx9yEZFk4XhGWIxK7wQeUS1uqVJ9NUVRWZZryjShBIhU8xkXBaKXh0kg0nchwaPaV0bjGnR8m63FYBh_rIdYs1BKm4Jj189f0ZuTxKgbgS32mjTIQ05woauE-n7NZkGn9FOsQhk13Mqh0FA9kgSTNu0poYSlSOWAArY5YxyPpPhbWeRL0C8lJjG6HDHnPi6dosB7jCttJPs6GxEGqnBqxxq_MRLMAQM_hCa6Sgbw7M60v-E4hZRQkQVcWf_EJlMyGov85DFl50XZpm1TaZ2Jyy61yFozsuQCyZHuasj_jihLZ3PNigDSdMhgJRKPT5i9u0asA7X3po14Th9lSpe8RycjLNFzTw9NAw7JMyeaOTFS2-vCLQQnS4sLCc3LPWo7DQFIerX8CKTjCaJtKK0IZYu1l1bSVh1iX3jyq7ZTAkcGZ09TDukgfkhmlYj_kd8YioukwX7w7KonTK-w7fJWqQI3W8RAihqUf0tmLT_9--Qe9xso59tyLMD0tPEBW585FAUVjjC5tWJUQFkTOlRDdUvGZQPURKHzmGWb-ebbEQnl7FkteETYGpQhyM0pW0kMSRwEy-j4uUxVZYraOCYHEkHnfRU5qXAhmcDHge_QybqTVyiJDyLr-ViCwWC6Rj7pKoAv4lUy9q0L_Xb9bdxiq8-uCKeNtWfwKrDoag9TvpVXTZZYum8lmJRXTIITnAWWIDXs8BLfUkqPDlqNJegUsY0HgjpwbBC2LGqxK92pRimuM4mk3YCIdmBrywrdRz8fU6lOUgBOq_vWlgwHu3TQtHfd2rukupO1pz5OTA2pez2Z3MLIDqlaCRkLa6tZ5watxuy6AYRA5KCFiOKDOsu_em3usm3YM1z0N1j7VlRBBI4pSRygz5qm0Wmg0rt33huj2Wvu4mwQBxfKQXhZ4kFdc5tEDqV_drkDWGbbKneTMV46VUQfc8aPqVsd4-3lvsHsIrbUIEV5HV4NpmeWRQcTApmLOF0AAIveIh59v35IayW0oBXv34E1PLwSZM0jUmWUPk-zK648MbfUUDTMisGGEmzTAvYqGz0yHFz74yKolQbR1j8YH6QnS30FcOZ0avn1aO5y5hvreIpYtuwtweve3cN6kZ1nzqRLF--5LT3GTVK-4VYYIDt3KW_9BAG8VI-mJEZ601w01UYZAsX805cLLinS0oA3sZd8H3SUZuIguujp19dFmWHwrt5kYnDDN1dB9iTg4yW0xp-khjcCAiUdi3pc71oqKR4p70NOVO5ZQmm-Y-HpLfJjz_xS3L6JmA3dPbNKNUxqUdg9VMibWwjW9QK3QS77OfJm516JSAOQMG3pR12Vi4arPn6aoH9q2phO4GxoxATDBk6bPv0YjxmXxRxT9P9OZmbopNeI878ayNlSTgoPhz-MMGnkrYLoCKAxTbkzyzskWsH8TOYGbHHRd3eundVLTZ_6sAgEfYLjRMyNGEd4-BZnOsdhkWrn5U4R0iI_YaEP0ivJA2Jc3ADmmbhAmU9fKSXBKLBIyQxv_tlx7YzMbH2Tck1wX4rI6zQp68EbRCwNKewbnQXL7UUnMWh6sOjKsWHAEqAfyh2I5B_eXJRAnuBQBzYINFYR2qHgyTQGZBb4harsGKObZCt09mGK0uX0-RUl3uiX0hjvECFnseVY_kJVtcC8OVdhC5oVSdNcakh8pCZoj5piKZVC0bKEcHQOUTrONFNo-tQkq4Cm0R2cNLkrB7dhDdxFMbdxJ5Zb05VhoXt0GKKYEEdm0wz6V9djl_c6lmHDmypsTMKgH9yYE61yrMX4VBYk5krTKqq9ymiQAzM5SlfNWMQexfcuqU1etE91jVcF2zSatZ7kalk_TAh1AomEHOAJ-Fj9I65ts1l7OOtt9uKGEKI77z8GXjd3cVaX5NbWQLEqssF7zbZlI7yYoeclZHuL0bxFN_ehhVubJ-ot519LyVZjbO1ZWMH_No7IqTPoxK4wLUq_4CrOnUUkBV_MIx8WbeTsEJMuOSBmHB-nuYwWuICEddU4xk6qktHUoy5DIgHetouw-ZUIO9XnYp4HZgVu1MSbP0xkBiYdMlwZv-Jcf73e1zBQdbt4QqlSvz4SI86sprjt4vBeaRoGqqXxHmu7glek7Lj_xPkkCKgn_ETB5FwkKs5vG-lQ_7zDgo6_LklZzQyawqnR1gczLHBPzM5hF1cNFlsMyJa60Bqua5ywzbhpwpiCgxQlItQUNk_T7QMYk6eUXYpaVX-bb2zudjXBK334Rmx_mCunltIEjTMMQ5Q3iwhiIH-sS68k_UBPBje2uUUZXvd6B6JwTevURYNElCJKmPFxo_tetaKZZQ9Cpg7sl4kulu5U6AWJF8ojkNWS_S1sHORGF74pR7ClMJVBWKJRBwjRd94tmHx_sPVfw9_HehyH6WvgxpmLXFopGWMxTnZz3TtPoTxmHGIqWnOm8QopltEAi7RKLzLwABPT0Mq6NC5lrSAq5jOz-cpcLliebK6N5m14cTdHS04qsBr2TolTNiytvxRbluKZk9Qt3bCOoqAa4pk_paCS-KNmvv8tgaUJVRAHENwE8ShnKkbhVFEbn68xCIIjDUVUKHD40brJg-ws41WA2cz1QhcYjCsddAUtbns8wQnqWBSWkcWmc__u0rkz4BmVTnn8oIGZKbxezG-rAGuYh1h998pn6npEcZZ208SelGHzW7qPHS7lo4cPWvD48bKWG38v22Pqs-EYJ75yWY4-_uqFqoEY66tsdQJcqM8eno4Jfdgb_X6gbbnC8OoZPVGrNCScwE6mNgDUMC_VsmCYYUViw3OfRDQQ7D4Jc1k5PeEryRMoP5jYw7hI53hAhJ9gEdFnwnVAUTmWHqoypvavKLBQI4PJP_4zKi7Tfwvw7cEGV1fMIdtKdtKlrThH-_pEBhnrN4NYUDuUwmueRZ5Tw4AQ_wcMuHgi6CcGDHDLeCcW5f6iHnMEGWvkUWbgTegOI--NDX5DJZPJSeDgvaPR94SF162Ykdddcfp-N3ZN8bA0D8rlSx4HncpUxfX_oQlrZvRt0JNrt2Z-OK2gQAHrAhk4ioqF5tWWP1rnfOcBVtSUqV81L5ZQ9AmJPjjfWSyYRADAngGU5-LLp_OV0C2TgbWZtNBf-FC-Q2695ZgZMzHbKOM9Kp0kl0xRR-c--4aONYozCGN1flRy0gtoU4SxWIRsfJ0n_sf9E3Ccu5PaYw5NOGxwzKdTMUzIKV-8jDINnXG09k3UOHHajo7nutL9zPFjT_kd4joTzjbF32klH8mph4bTfgt_tSWdFBIGT_cvHEJqPSbpMwsjAo5JsrNm2KWyIVK7FOSU3i3Jvl48q6BJI8v_wbJpbcR67WOcjdzfPP7KxCFv93G0jSu9rHhPuyEJeL_KnhJsY5paeI2SGw_u_ra-UvXxezO853gWwjtWxZLtPj7TpVWfMUOgfnQJ87lh4U51EiNz3sFqHv8LIf_q2rCMgTdNg8uayb2Xg7M-slYp0Le531b2ncGs8_4Y8fUlJC7a4rJMU6j3it1zhPVHIblnz6hOqzAd6XPIkp7JJZvUeQhDx2v2u7CJap57OFd0tfmGxpymYDUocgLOz8LcscThAOWeygnM2J8LhhP5j8mBLyFibkOpIoDEaiWHRyhGIBqe7tsgCY05CCrJkmJ3mFyjh_XCYcphFMuGx13uNjqEwrJgzkzznBjnq9edrT5rL0GdIhc58GlW5qvOs316gsk4ET7nSgKViT3w0IaB5-Q1ttcuU5G87DXQydT0WN3M_FBomuMXZRd4O60GCFUPEEnP-t8lpidl5Mff1Yif38he8UETZ6HXm3FJDmWuV3izyusVIq_ghUs9CiFSgdYrQVTE5KIpfo4lHtgmo5frWs_cbmT-Edl7MB-gAbwfKbIAQxhMEa0bfFfRc3F_cvqaMQmQEhIjETFFYxs40azZsVhlV1wKE10K_VE7ntwWtY58YNEyclCKSKfBtvE5Voxk8b_wnu8gVTsDKeOrFnxP4cTY9A4gvSl9oVhsv5mG2rJgKnBeGofvkwJH4zA17LstJyCyVqtUKh4lSX0Wc-F9K20rw6UMZ5hX8fcC-DaktBoOaXLkiBQUODT4KXLuMeMhG4XQF5Uo0EcnY_7ojzdYDmMQT6qWXey2y_vj_j0tsWeFQlmAsHgjPP4ZHmk1shWGixbk0RqWvNwMIls3FLDayxaSEpU2bUR_HxnWXKjUYmaCv7tDx9juNJSYgwvr3YNtYS4xcisQzBP0lr8ZkhR1Zzl59HN8IHh9AGA9zTPYu6SFdX0qcgmC5KXTr3GTp1uKCduTiHkb_oFthRyqrIpYuaibmVaXa4dJk-9043yNWaobQXTdS4NOrKVvJQbFHEgn3fbjFjggh1ze34ICOSe_8xr9AdDQzFv0z0w0e3lkeE3EoXWOnqMYjFakLRjoYqV2vCjjXHV2w8-aTXlF2zlJDeKz6nMJBGcF3frDdz8FafdX_vKjYAM8l0gILMPDm2UopUGFkK516JuKOXsyRij_lRzdLcyTWICt-yLHpOjzz86maPXqkY9Ca7PBiGDxnzd1nKIArlzEc5fyiLflPujaBRUVfQ2qBcsZ9YWZqAJrQBCS0p6uBJzOlwwuHVgJ1kBj46qzrT5St3DbG8U4UvnsNCe902oSv8VTxm3AEiPAGphzDxv39h6fZPNL7hEQb08uQ9lhkPpW5o4U1E6pTaLl6xMQENu6I7jz1hXtqMV_xxxkC8gs8bhdRdBIsso87FwdNYBTPyJqqDto882WYd3oWouAU3v_r2A-tadrs64nr-TU1KKn9yywsCunxiellGigLjJa0U4caqcoF8hNByQvsKPlD-vblMosSjNmEB7zkvlTlJbcCbL8y71EEzH6eSOxWpzliL5UwcZtPm90gDVHW_Dd5gzOCtSbhkT8I0tfPLa3hEpryLhcV7oV_GNETKqc6_e8oLRYRyi7yZki4CJpmyeJJVUV0-3IiI0cgsle4FDxoVyYaWu2dpImUCLBrNzRlprFweaNhXSRz-o_mxZNpi1aAAxjAw32Ef9VOGrGRAE5ZQzXeJ1BSK_u3Ny356vk9LRhKfdp1XLilDBG0tP4N0jWLspTpQ12df-mx7yOIrdbXsyiDcubKVfHg7Nx0UfkHmY7CAy8tany1KQIHMCYi860z8e48HCXNvC5vCI0yEtCVuVbHzq2omwciUJMvVXlwExyTf2D0KDqCLPdIlTW1Jja0155hCd5evU-20TvaLCuffc7H1YKUiYLpb4pkFnLfxNVaDS9iEn2hzFKsRuoe8AXN6aDUZ39XkQL_TUvxphmd3z8_pmF6tXjlvupxUJo5LQtDZSrGQnOTUUEa6IRjdkAG1RcCxuznKIVaZ3mxB8ucwjdGMZJDOsk03b9zj5B6grii11M28N0Tk_60fTd8o9I0O_yh9AX5oBm6KWcihEteAEHxpT-tlJhlsgBMFDfzwMzxKjMKVGBxTuGy02p7gvgyzsL64XfieBZUk-Tc_W6TwQ88RVXKrRn2VpQU2xz-fJmeYRd-6E7FPR3dUEmyvhgQCRr_9iSdCcQvxJeFz0vo6jeMxToT-hnowQkVXSOULyL8e8fyq2LfRE8pVyznIgQ6BT4WpZwZxqOeo9eM3HhENeDy5hpJxT0-3AsvkUdP1hDtD6qBCUUBIo75XPoJJPJmkOCj2Yy0olrl_31JX0nKr98vybX8Lr11OVfczt89CP1vPlSK2jIYiSrqh1Y5LrSV6GA9e0o262DpPDUBdTEeKeN0LS0OKw6QtFMpb1jRqE_AqzfT-U86l-aXYJIk7_WEIuylsXeG4kKP_SXrAROJZ0BmgLP90IHgf7e17UNNt1smZvmchqUEJhU8jZhkNlpBjzJAXMe7vPQRe7Xq0nhxOqIXWUrKrcatw9UCkx5n85ykeaK6NdMdmPM5ji0CtQJZTM2ktu1hgpNKxLZehqZBhkCZfnM3TI19R7On1b2u6NXWGFbbM4NsESn_W8_3wwFeZUWHnuPHLHE2DuB9b2yIF5zNrXS37UYrSkVJSSE75-sJlv8f-ujTAHh8BPZG-HApx9P3O4OhA1-XrLerd509V2g4Gb5SocZaPEFQV0NIWfc0MlgwpWwmdOFoAYrT6PspwG7YRKzfhm5BMscUiYUe9kvjEvvDSLWlKjAHxP5KJeLvsVQk3lK0lIFKQMPI5oxYTGfckyMTUQofZYuWlj2ZLhhsTZaP-hNro504SrTKsCVWyzTtIie4SUsj2UwRoOWMdWS5Z8yTBSywHX1BHVpG3g-JFsiaWpplhY9CSYVRHux6QizQbBN6NhJeGMZ_ZV5Qrw-SlvfO21_GnkeW3WiGUSQcHglqlsGrdR68O7diMylVF7dgl9CxDiLZShtBbYKd4eFRAaAkSg0dMuMzf7bC67wWOoYPl3QFzTu_fdEfuduL2muzh_vU_ZNMF0khAbaqSuenlBN0BrTYxi2IcqdLp3eXHXBaCAlINg6JsGm61ktivDFhFG4iR-AMLKYgyCbhmhK4H3xYm9ltAt5Vp-3YpZbwHdFcEyGAD7pc2XRZs4mwjFdaccuICMiIl-V45B0vcfWYz3gJ51DXyJBrLOcx1LUixhxkuHMMNlsgzZnXNjZj99ACmgrW2mGGsCPMIyHJBTCs5BqhA1owZFOLB6gjqMDcMnzn_TYwIaA4G3syjCX4b93wSOF2ldKPP_pqpPF5l8EYecXzQX4NHp60U6PK9xSOa78-XWDSIkm4mv4-Qtg9VE_yC3TsmfqZGS-m9_r895mOmG4Qywbefzyt8b46RV7_i3QJqu7z2tvqfH7yKJgkoR0S-OCUHvtIsar6W3vOomw4YyYglZmWdfc7iWK7EYZ3tBuonF6dwoc7Uc6m2_vxB-bewborMk3ES8M8_lArUznav7cmV0iO1pcDEEMzoPB7lZ8N0Lroq9kfVZS3SPAExSIFIxCEGu5KCjKub61bS6HBBGKnVJWtgGRkcAWq7ZdJoUpZdgWVQ0RJgaR4X-WHTZcpJLntivEEFSrXDlLCID2XhMpkLC6Bs0wbYVtPfdqrg8IkFdvdwsmhp_-TDx3CfZwJwNphfVyYZLfo8oYbuviBJ11N63JNduVbNn5Y4N2g6cTeVkmY7lMH_TunYaC3drq2uwAE8Mr5UlMGgQl7OB0I78ILS3zMlPvggN-IOBooYMNTPGuuvqm9SXLAhNk-gW8QF4HlPPzYlRk46mzG5Y4vh-3WSDgDkEvr7bg31KHPvVvNqPey_IdgCXNSO94wAMHHYja0R6yZMg_JeFu6FW5wliuGZUus_Le-zCq3TJWjpOP3Q156VYVjKB_ra6KyTpUMciexTZCiGmp-Fg8XF8Ip8GVb6RctuzHRTZ-ooF8F5Q7AmtpAaqNeM1yZtHCouAHHVMmz_FBiNBe0rhHYhP-JJnUSD5sFjGZnA3GlvLBv4MgFO_aOF_3rmwv7-BQkspsfpcqCEH8_LoXZSH6z57_Q-eQjAlFbRePl7O5ExhJwxOXsfN5DkDzSdvrg4wvAmp0NL1zvTJFYA-ZDp6g3fqDbz_wFUeW2Xu4BVFtbZUmBaIP7f_FrOlaQC99Mt203qyPN9tqBpc2i4znVD0UlDR8NPUFHvWpErfXoJhUmtHwsMdDvc2atcfy-vvShKzBW21mMRqOCdjlwiNUG2qxrZ5lKZwzR238-cNFURJZqMjELhoNDrFjP82yh-VO5u9150ycA48Md4_6uhv4hZRe4tbrPAGfWo_ct5pL9bTRZOTupIS5p0sWMiMCMh0YxH1GgVkK_GOEZCV3AJ9qqD-XgftjAFRyHQQp0hmb3wjICYizBP7m70PGPPWNOaVY9FAJJpLDivOCnjScsprShQOA_DZH2yuupIMt6LqsC-kE8HEk8U1u0gGbawKGITFalAyAFG5SO5kfN2hNsXrXb8R3Esy_PhSE5G_i7NTCO0eIS_-A99pooQpym_xQhXKlP8OF4RiaUjOqzbvlchVKBbKD27gup6wFJb9vF6mMx1oWKvYffrHf7ggX3hj1b6W_Klu3HsQSwlemdzIfgf6qoKR7P-8NnzbHA0BdVAfIWpULmGqwZhPpMFJ3t0qKNNnsilVw5gISrFZtyMTsrbVoXUNVYtQPfDCz10BtR6FjxrzxZ8JEdseDZG_41bBMp1sZGZrqZbWtjJKdUtqs-3zyHSJ2hYB4_Ni5TVpyWV-jvsZJZK7Jorjr9jLtMgl4KHOKLNkjzH5PNs6PQFmtw8hJSKZz0gdugdVpT4vTYKPxQj5ueeHkOU3CubIcnG78lGGpWYE5aSM3vrh62L5lYkMpEcjqP4U0kR5YQRmN8fu-q1S1wg9x2n4UrP3KwzN1jvUmGlfKxPYGt9hxi46PntZmA6TwfDK7k0cstGjY7vI-agBU5L2Bl7d-VLKijCPQY3pwkd-pPx3CYDCtA3Cnr2k8KaPWK2fS-fXJYsI47-5eOWupZHAahalA7flPl_xpH8xAAEafq8zLwmY9452Auo4elUkzBydvSEJaUa-OTcMgbT97EJkeiySZw-Mcl9KRCa_hEqbiS6yFoRIa8BMyUOr-yxRuglT2NCUUOHVGTXPE1b0PwZpfwpX3S44tMb7VFUTgyGmRm_RTS_LK_wjYe1jCpYGNA3QwOjv6fbixjTT7nVX1DevlsuBAQLG0sIez4W089Mzh6cqyoymdqSBULMyAvWOWb7KA73t1bvGlMljexI7CZKCtSbi9lUOEmNcgDTS3rCuq6GsEEmneWAfrlJMy6dmoO-F0FpmeV8HipFJlKN7dNsACtBRnuy1ZmbPJOqeLTHWkWOIJg8ve2OIFlxV5onso95y_fi_ZvDgFIjJ3EWFpQcnEXiDzib5d39V5jzDFF5e2xprzLxNq3psr1t5F0AIRthibFMQpJ5u-EBOZOl5Xs3Augm3Nl_V12qeYXsGI9M2BHpdORV38p3QANnNsBcuZFCB1rEyUc2SU78lSb-h8JfDjrBft1WH4PCyBktKcvYSX8ijNwL5cgwwmMroVgZhlBuUNvgF_TcJc-ATAb5UVu1rKQKsyxZkz9qtKEtSY2j2Ib1bKzUeGXJWgSHZ7xgdQFNF3m007wWqd5dVy-xCmLyQtJ8vQxBD4ni0S6WjgWtRKFD4x2L8hLq-DodKN-SYXCWQZ3a6S_nU2NRCfnwFdceVcipieUh3MEeOmfGe1_gHrWjc3AEGxpAmdzcCuCuARr9wI59lmInpa81uOlucXv45T-k4oNGsXBoHFSz7DCPRiPH-a-IMBHztckBnl50gEx_2RQdzJkUKzHUi19Z83660CR4sXjPQuJPysxWvp-Cyl_w_gzYUPzeA_s8h9kT6vBcSLOCTnU9DNcl8M3vVvgKNuOD0_riZMORCgE-G5tzL-aYvoE2or9xCBoBAO4RjcNMCNMe33BLk4vBrMZZComFiAkdl8Qc-rXW46_zEceWR1Q39rkeXrPAz6MQIJKuMLwQoXACJJAayp5gsGF7jXPBwcJ79dr0xN4v7F4k-VZrVOxINmVYqsjrvWTn9wgxIzOVqv4tK1yuPni_X5LtUSIDJiOq28bezM_RmekV4QTpBOvO5Hr1z-Rz8BtamoHAnrc8aBCqREFbZUbIaBD-tpdzTnyBhc4d6J0PM7jaR2uQzp8uENdYse7eYzBSXutblqMXRuPzCjtiZdF9y3qemlkCHcsIqXqA8xCZquoul7fZWMdTME4UBfGYKup2iy4YuRbDGpmqpyPOGpUnKl-5SccbXWPLTxE7IhaB766sLlpA34Q3XOcqiVJ10_3y8beOxFFZk43SrI8TUWL8JqGJa4sl5evmd9a7QQUxCfA0u89TC_Tm1rlYkuiBJs8-zf0ykqZw8khljY9p1nuHaR8r5ccP_AlmfMa1PG6fZSdabBhuRd7mZ7hq_-GDCz9kEw7LVhwBQahoVeINbHXZJAowVm48BJMRbkmZHhwd62Cqo_LBWFfib7ToFWo1krqNM-KDh8kuw5bFwQuvaq_KCCcB807-Ik56NboryMOqMIBQazU_q40tPb47UCq08u89h7YUVBZRm2pyLahN-dTNuTCse3yNyfdgkE83MqJgBghM4gxMfc8GAnAjuS9qi9rQNUOYMdreqUCmZemRcMySGDoxefuf6kRaqSheVCi9XBLwu8wm6RI-cbr4uifh7Hl7V3XkrrU6qHTi-jfqCLCTNPuiw30Kmpae5G2KlXYDkFZEit9CRB19bs1lCvqyb7H-TBlTjsvBazxs73M8rCyztgCyihUTHqdFgIbg6yoOwAGzGmY7IS_5w4trrMZ91dbewrQA2-eFvHG94CjiG0oQK5Gjs3UDpsXmqAQV_A15NHJ5OZ71vkA8esimMLVoGPtFr7jkYm2t79xmcatkQ5oOWf7NUCNmMTA-6pPwrxkA6vh5HaGW2dge5TD8Bar7qoKnmsscdi6FO4X63nA2Q3SURZX6vUHWILxwSfW9iZ1OYRiiaq0yqEjsiaHUhnJU5Gty4ku-yDAJQuolxNLdVAkfE7t9Po4afb_k3yBfLSJiiij-CvFePFhYHCNw59GinoUfbgBMegL_CAgsy0GBYEaZ3povSByB70OzyMS-kSu94Zs81lnZAtUdeSJKcq5SfXKC6Ysug3DNXRjsLSy80xKc8K6su0ZWXGNywnYAGFmtgTmgd4saDr0fsxgeLaZSM1LFedZqXxjFghgPus6J9NjbvCpLx0j666eW0ahPzK3Pio29Yu1RKoOSwPq6ojCoDLM5J0Dbsao_YWsT4AMZpjeZvY7Vk0yMF5cdrjF2PubBJK7JU66j-a0HCsAGGmo6rUVAe5JeWGVyxRJ1TJQSkxMBAWbZuSJblFP_zYHmySakYXEHe3jl7jaXx9X98VyF4-zse_WA8voLCCDBo_AjZE8i4IpxA92AMiOU3WXwxZJ7XAaEWHwDyTggAjBm6bgWvelPPdCW6cO0ZlVAsUZ6sULPqhimRE3f46wvFRVVk6scPR-DhycVYrHdtt1uoLdRmszHRqIvnHkUCkPQjviVKYP3xgZWmf33laGbNXpY2qVB05Zgl4HKOa9uqBPhct7V60nkvxz17JZY9V1V8XIOFl7ruJ9FoNF3_57KbKIC9GnzCRJfwH5uSt4FL4hebgXKT4HRRADkDoAjYv88yh0p7O4ROAhLa7EclCCTHLqiuOE0P5Uu7NXyfRLIS7reZkh29g8-IXxKoejVFONiszgUaS-k_tjY_x2a9gt6QS7uNoZnZhrywqR085wqHBre5mYDrvc_hK2bdXTADtGkLWS9bh3Q6OrxyhxkmHR76NVfxq5M1AuE9f-9WDGMF7kGRJqRkXhgYiEiYLnxKxbUzoc_vzTI_UhfUDgi_fFBbsmpKUYPPHgADNwjS8z4cXCp2f4D_Y4M7MwlirJAak50CjRTts-uEtHrDP8GlD2PRH74bNZaTHNEQ9GvCEKN5tKrEDW0FtTnAktupEYbDoYnSVacMhdm0Grs29LWekCu_3tdofEGNK7c1gmHqEsC1ZxoG8occ8PUcEv425shlxN9pOc2mV4dyMg3Rgk99G_ztuzOIwh23GnXzqnDeg3flOqngVvJbO5ytC1kcaHa62HR8FMUVDf2PFprYrH3SceN5k1RyXc501hS5mYwVW4_I6tjv_UdHpvBvcGqskZO1BI_d1fdmcMwbuHbeAt60sFOfzNhODLNc--qyqNdxDvFh17gqhYESeFIrUVGIg7EBhakz6UULoTV0rHbnq2CG5XpQX_jyeHs38f9S1kd61yGG5pQt0ijmyu-mIchmH53YSuvCGLFnfIF-xuUUtKQMzLGlbbnrCFgeGeSow19wKuysEWGlBhv5fsJ1Bb-ws2fIcXaUgV_oTSKkuB4CrlWbLtiwCt184hhuwOro8m4cgoVoY-4SLCWzb7lL48z9_OOMe8583zIai6D1iQyJ5hadVpaifYoTWjDhQl22qVrRWeLn40aW4AHDkPhPOKbUODxCbFIe-rq42gHdXHNswLZERWacY0KwjKVjHg1sYBr21idPj3Cfn7DsT1gfjlV5Au1ZsgXypLPf5IrMdaEH7VvdnE5inGE7qO_wBLeDJsD1t4_ihgjalZvakx9oQIfUCRISNdaam05KTUBxvR0b2ZXcR9XcByt35Wx2ng2cgj-RsbtgH8uyyLivwRqS9jBi7t-sN9tRecUg7wkGN0-diGYqSPbhk3QVOYFkC6EUNggTKicsoVGHyLVAKWMCuRqfQDVXsT4rzJtb_RT75kp07-i9Zs02Ho0OyRRdFmq7wG8vBxoIzGDW-xUSiIrbogAXGkR_O6sxa2n_V5Ub2oKwjXR5KkA_bobAYewNLDpE0ubG98Mge-legJlHQImseik9MLT4Ssygr4ZwNwEm7p2CILHGOPRaEVaTbxgIEfffcwkkxLFUPojVFheBNZuIVHjrg8BTLT7ngN-ArM68LF4OXucqCKm4jWOdjoinPHh8gYqMy1xRSzQhefD5Ok-SI_5yA_PDk8prYiAzPwI4ywBoLOPaMHlI3vONbqBaVM2sSC7qRfG79pU60RnX5BGYHvvr5OqW05HSVOXhmygRt2ej17v6v2IBFJRdy_YLp6xOT5nr5ZRDOgRzgaqEZaCzPUhUwYuZU2NLcNjPhxjjQaz798-kV8TnksDg-4UjJDeXB2RfprM2iy4yt8dy-3491-ifgYvG6T88OelJWVGF96q1XiBVJ3ggiQNlyjglrmM3gDsm6q1l8MpUMdTWHWBJ6SVlMX9wV4wKnPz6_gT6F7mgQtAnhYh_4imc4Sf1Z2Xbkv4XhVDEw2XzXLKR0tQ4NXIoRytehx1k-2k9n0KuQlC1uMLdqnx9UBGJ0cXny9DYZ9_KkWwZ5XCTYogxRM_QT34vzS_Up4AwsmCVmzAdqerRj0l7Fqw8t6wA1yOG-ZxHWh_7DS3AI5TDkzy7HH9IR0DS3xUGxZjOy2iBtUIRzJt9ZD42YwoCmY61wJQWoIuKW6-b1wcfymM9e4SY_hRm7Awl2D78AohFhhOH-61wgZSlA0MLMdjl_kP-D3E5dbGZs6KeWkngryBLczi0tsjqOHUq8WG1RWhfYvky-Erw3iUAGQCO07yVxe32d7gg_icQkW7F_lIxV6wzVlfrYD7jHUJrmLC86NcnEAYyNglCU1Ibyb4XaN_3zXkTCPxzLZZrDFOpMNsSzWKOWKVMfJcN80p6Aa5__Mj8YHBRjqeZvD2dwV9fAOIU2b-W7RlPfXzFh5s_ZEW8GEcpBa6Q4naAaplDWjxWq6C5lECXGsUuDrmMiKjzLSsy7s-3bpFFgXISk2zDI6ZduMQv2rdeH5TCI7zjZPlkNzUGD9qVK1rSx0lhDxpbnNGF70F4kQ0YGDjR2i19Yj3kbkn2tnleGjG_KkNkzUGpvCqO71LmIA2XPv8fFn_lMcL06waaoSt0w0zt717gJAHvpQH0oNF2yJdO93eLj7Pr6YwhxihDwMAX5VzREUYeG1_1RcYoem3n9hsdmjf3P8HDYu_UOhlEwpYQ4h26Xsa34xeEqfQqiLP_MvytFdqPQEtRN9x0Ax0ESymDaqDgNC0yoirsl_Sq9nfU6tq-bNheTADqspzqZZ4XTasPmtk8Wkti4YLSipOez06ubMDzAKtYGvFy40R9rOZkJN1k_JaEGBeU5iYBmUa-IlKbn9D5-kkfpc0PvMwkDmgXJIj-koVE8S0LN7EVC6kPjc4DdBJyN2G9mg9UUlDmgaqripFdjZrOnMzLfHHk63T1YM58pUZws7NQJLco6uZEJpQEEU7ljONTEAKLgjrLFADyMGwaNq3igG6idzbSl-47qxhIEuJVx6q4cA8-lElul3nAXcTrooR7GAlDLxqtqyUtpE3-w5kJFijLeEVdV-cqk6kzQExswZFk9Ln6MoVHAQfRXHrwcvK9ncu5jpASln_TRTDL7alw4rp4YGvC5SzST34rXaRFeLcjhISDDdmC5XPY9-h68JVH3ubTDarKjhhEfEK6Mlw-WGsM9mFuiscFrMDAuF8-IkEnHpBA3J9Fg36GShwCBlL25xD4IA247RwTQYKQckBcb-n7xsHmuZdg5S0Nw2NxtCU4EB423mYk1HonoonI09rXz_hucRPPvwBfh4pZwfnymaBKoAQxzEQck2xsNFzENrun74OGx0rMXyFXWTzi9uabjPhX9_flJzci9iGgpHRg7xJIJJWZXRoSeSEKJGoEPQtwZRN_SuCT1IXLCos_9ayxzr5vyZ_N6_W0XRDQqplyKKw9vBNpL1PGmghf6ThnlVUy5SjvgHJfTPRpnozj86DxhvKl4Jx2voF6gzdpqzSlfWIrDNh-OgCsOJxZ6m2n9WS8AL8A3ioMDPsOc2bjBu4sDdIpbEyOht72v5by2GnADgfzY19SIqjTiB9cvXCSQJ7PJRyhYQeArjMVFL08i-q9_1MvKewQiTehunGnLWSfFxMWZgyTAZjJIHScpWSkGFjmIUic989tpGLfz1Xt_DE0qIbh9vsEabGnXfZCTTz--17-kw71dR0QcItumCOE0aNaRsScljHDrzrvN8XCLX3LzuQA2l3aY767CL1dxjNYSWA605qTEKYpTdQygK-PCh5I0Ir73pHA0gWoPJZF7p-wjgrpWs0VaELahzm_Yf-qe_ecDnIqmCfkcWOufj-HymhyhSObszWQDht1mgYZCKCfE-zso2c9jdMLPVeJBcvDriMt5k0GutnXKwlpEEeA";if(!e)return null;if(Et&&Et.sealed===e)return Et;let t=null;try{t=ar.parse(JSON.parse(tn(e,rp)))}catch{t=null}return Et={sealed:e,bundle:t},Et}function nn(){let e=pi();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=lr(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function op(){let e=pi();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>X(t.slug))),e.keys):null}function rn(e,t=!1){if(t||!e||e.length===0){let n=op();return n?new Set(n):null}return new Set(e.map(n=>sp.test(n)?n:X(n)))}var mi=null;function cr(e){mi=e}async function ip(e,t){let n=await io();if(n.size>0)return rt(e,n.values(),t,n);let r=nn();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var ap=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,lp=2048,cp=8192,up=32*1024;function fp(e,t,n){let r=Vt(e,{...t,keep_failures:!0,fold_passing:!1,mask_abs_paths:!1,transform:void 0,truncate_lines_at:void 0,max_lines:void 0,on_empty:void 0},{verbosity:"normal",smartCode:!1});if(r.trim().length===0)return oe(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
71
+ `)}import{chmodSync as E0,readFileSync as Jd,writeFileSync as T0,mkdirSync as $0,renameSync as R0}from"node:fs";import{join as Kd}from"node:path";var Vd=y.object({payload:y.string().min(1),signature:y.string().min(1),enc:y.literal("v1"),fetchedAt:y.number().int().nonnegative()});function Wd(){return Kd(T(),"bundle-cache.json")}function fi(){try{let e=Jd(Wd(),"utf8"),t=Vd.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var ar=y.object({bundleVersion:y.number().int().nonnegative(),signedAt:y.number().int(),filters:y.array(ke)}),z0=y.object({payload:y.string().min(1),signature:y.string().min(1),enc:y.literal("v1")}),Qd=10080*60*1e3;function em(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:Qd}function tm(e,t){let n=ui();if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Error("tkr-daemon: no valid signing public key configured (set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM at build time).");let r=Yd({key:n,format:"pem"});if(!Xd(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(tn(e.payload,t))}function nm(e,t){let n=tm(e,t),r=ar.parse(n);if(Date.now()-r.signedAt>em())throw new Error("tkr-daemon: rules bundle is stale");return lr(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function lr(e,t){let n=new Map;for(let r of e.filters)n.set(r.slug,{...r,matchRegex:new RegExp(r.match_command)});return{bundleVersion:e.bundleVersion,signedAt:t.signedAt,ruleCount:n.size,startedAt:Date.now(),fetchedAt:t.fetchedAt,selectFor:(r,s,o)=>rt(r,n.values(),o?new Set(o):null,n)}}async function di(){try{let e=fi();if(!e)return null;let t=await wt();return t?.signingSecret?nm(e,t.signingSecret):null}catch{return null}}var rm="tokmizer-default-rules-v1",sm=/^[0-9a-f]{16}$/,Et=null;function mi(){let e="GAEvzj_cl1cSD-1wUUvo0DWMRxxMvAGU-1MPitUGrrI1oS3G9OELrSL4zBl_bhCFbIvUH2vqsjTTByNots9zdNGvsGQ4yuYyemv-hLQiFZFs34jXJz24cfpHmvpaB2kGQjClNyTrfGNdJVxX0vUTqQizTdtWTdPa2CjMZ6ASGJkFyDL3xRcfnW11cSGXexuu4CE0zkcrQAN31JB471C6-QUCcRhBHQ_ClKxICI0Wd8IuskpwUqJBjGOKEbpo9A7P1IbhuPSYA7agBENCfIf3j1cdNg4DX1xQD-nZpkFbS8DSGlIu8biljYjpoh66UZEecldoUceGtdVIN8rPF_KZpgEbWVRBGkGhKoO7pcqNXR0z23PEBjqukzv6wUnh-9IZBZdWFui9ytW9tGfB6TZcZij8aQNoNU8E614J9-P-A-4ha-vyBPR1ZAscWQIuP5Ygq5rtC8meDBi5D5cNt1NOEsSs78PeEBT5O475vODyMKRSrTbvDSHsp0Mk25aMEUc9diZdrs9k2tFycbQOttwc88mf6PbPaDuodz1Ixsd2-tbmDPOzBtGxiE6OcKs9-BkvZly8-oqSe2jkxWKNNm6GfGUVw-MviA4Vptfkx60RJCjins_1DeBBo8V4K-wEDwFsiH0Xulg02gRNHOoWSeZ0XHnNBcfB1LPnLuSMM5AtbgSJxp_tS8sfg1zfmfiFT5TDCxM6j5zVldERJaJl8aXL658rChWeFc1MhP8_Fxl-d2Vj7cvw69Q4DfvLMbmisrSJGBqpfW7KYYEQHKLf92-zVxQ2VrgJEpE7YEEmcE4QYCD9VlU-jN6HCg9SS6oe7udifP8fUyJ7ilUhMWBUifoEFR9g2cKfirtnMQGtBU1ztTnKBgfejtxz9_KmQiZSDN_kgjoum2tSgXN0dMqXv5Suandk5PpBJH5ohWO1M5qk9Y3AViHuiSq9bbqe3uMI_TTIV3I7HN2DYYKE2N1rclYrfRHv6z4aRUL0xHIlBIL1ztTjLh1DJQf65NdI6RbbpzRSNBLLiKgZlIpvz47AauU_sxIiiIGo1IfnPlJ3SZVR13oZrMgyOmWhiXLAoLzppxCUfjRdYIGxkXw6k7whDDwbYClD1THVp_kBm6YRQoCaBISTKDU6GOSCmX1v-UUykwNlQHAPQEe_SH4NEf_8GCXY9k2a1_gg55Bgmo38NdodvZlIeKNrFzdkU6B3pikWHNuhC0IvwfHvyUgsagBqEK57YDHdgjbKNgp9U9JjuXsUNmYl6AXfIIc6gkH56GiRz7m1QyYznXZbptmRAmdlFGIRn-b1j5TEgzwmqpMT2WkonBt6t2U1ScK60x61VQIsZto9gaLCzGlDChPwZxbmUoRQU-BKY8B6PGsT2XdyMWDkzWMGEfcnVBDzSLRiCEz93f6cB9DgqnkqP7Mg3-9-law6MjmLEeqB8Vp12O_ALhlTvqwwZEnEOUyC5M9aNUPP_WGb_5v3ryB-rZq6QYPY0OxicmGJnhEIfGzvuAd7iYNX2dEWidOBT1ynL4oDk28Yg6iifv9MuYKvJMk9LPFTPEg3sPzUocmTdwfEGzlwDeRhX0bmIHtGm4Qu6FFzoWD4VEq_RE7VsX8oEMnKIyn0f_io5yXUxsncS5eQyfi48jjj04dM1AydfPRYL2kINO1u7tVfeODbDP-2Ex8hakcAN64f5XMkeXvo-j3s83L2ag23iyvG8SRP398yAssbDjrVZxcLEBvJqLwm_kOe14KJL3-Yu2yqsamXCc2G-zdgHDHadKVJXFtdQpN01P9ERH3TY-5dYzleoWTNc3mINCflICd9AS_SFuXLWBkBRajSTqCp5AbBU82VQO33XgIb3K9OX8AOVkckufamWbvBgIHdTerIFp0U6TYUcLe-hJvT2_bSDbIqwjxSWlc4pBAfu3BB1eBpQF9c1Q5I4aCWIhFuDYDLJmmhcE6INN39SkzHKipZ5db44rw4H5WYo7MLKrtnNveRT2nrOg1Izdk_lhR0sIATFj2g9Imaj55RhHXkVGIpnfeg0KXYfRJKQauUEtBR7v_3YhVtqm-Eik7WFgsVA4JXRrGlF8MaH-cE8-DzxB_084wgFLXXw8nuRWOesyx5p_4-It-zI_wbfsJFAnSz2N-D7OjM90JSrRVzBFEyZAKnyRxlxQha5gFwcm5nHlnBquDCZavXu_WYNwul6QG6gz2VyQtcshTkEhn2yzcRDISw8ZvwLHFpIrCTMTKNgkSG8pISIzC9tRln95RurKRPGsWevQmArW3suf2jIA7D354g0J5gp53xEWL1WJRODpEWoj09xv40c3Y9NC2EGInj154X0sT16CPzVxhpw-W2nJEYXz33hjV59aMk4sah5_7BFfyAFDUBkYLhW__7JmQLmB3NSnHRCxCGVwCeC9V1OaX2QIZSRyFTDKn9GSFjYeLk0kuXQD8ZZeB5OHbLSMeT3RfwrOja892-EQavZcb120rAm7mbZA4YPeXVlwy_WZCd0zP1hHcSzcYKd7HSD3C9VxqoSnvVxItQV75yr95tNKTjg19J1Ku1g_YELCVXx5WrecQO9CNQOQlcpG-fm1hq8EfWRkq7net_KUugRPJsOgO8wtdJP3a1fyxtkhDxaWqt6l6vLVI-k1-zWCvF02EiXShYVACVXUJnOlWsrsTW8vVB_KPX_N3Sa9u-BbeNxihH4JmyRP3H-m8SWQ80HCjVLuoPYfI0ZeDWpBQYcEe_yX2jHVaRCBkd6EFkLooamYvK810xeB-SMKPnqhBks_YLb8T_rx7KAjbjRyVJcuyBdMrKOSJ_-lKZUqyDbHg6HnaTwOMNL4zUQL6n3D-LwBgrI-P1c_XdYAU8KDwxRr8ytDmHqlxp0u0DGeAu__2E-AFyLtP-EStK53Y7PhgoyO4oJkXpQbNJT8rp1y_7We_T7pygRqWsiy8aGU36mYzHLcCw5SUT5DOJ-BelXcM7Yb_K-RM_kjq0cj-WbMawARXh1ndiA0wXsU5F1p3CEme9mKfTZjlkJwQfx6D0zH_6MQJ2ku3fMnG8c1uz1rvToMPa1SPDeB9obOduGnIFyCQB6onV37Uh-gHMAspbdNTTxZPDpENVkpwz9epz4hqt_MiUWFjSc2jCUwRjUoSIFKmOalP0NA4iJrfdvfaEnjwOJ1n6AATlt52LwgNYBSAmtvoX9qFFJyQYsvfNv9BebO0qgTwVN8d1E2g2DLXL1xgN8gJ5tZj3_HSSIMivKD7BJUhkKwReCNbd01I5C8HQXxA3smgu3vQAQ5Acs9CiyTDTj9_Pz4J9ZDnbpG1GC8e7NgrkYZLbDkSTlXNMZ3MPeig0vJjNWIEkzNeIIUxg-eqRZVMN4kATjEr5YESg6Uth2E1_Bd3xPkha4rCfqNoMeDnITccPqmu82uo7UGKOB3_b--obT9pumTnTBZawHpPCLzhOD-5zSv_YfwcSse5H57IHImtAzkeVTZHiBmwXtxU17TLti7rIxFQz90f4ehlKCzRNJENuBoSsKxw1fFOkqOShhUBHe7AdeA3QnJUX-hjyNvbUNEZSO9UL5AmIuXM4v4dRbR-g2NMojHmOYnh2RLky4GTGFUKUbx79fBl_VpT0blHkVu47Lk-BO-0ykDe1dh3lyDDUjhr9yOtR_kBSiZ1RmXlUurtt0gzqWfHPNGYGgGSN-sSgBJjiXEZDVe1e-vXR1_XL5L9NHxAYT9Dwpg-vyJC0_MykOazPEywiOX8ZlElgw8ntxWHhjFnQf6cgnHSHuDtf8PI7lLTJcaGxBm3gyWeRchNZRFUQns59TRIXj0EOq14hLzp5IFEPo5MPu7u5JbMxL7L-LJSVMQNTPs6sOlMqfsqseRd-6cvehvOKpGvgHOXz0RfwgY2paW9euWTUrEixh8AN9KTkV1aR0ztClSDhJhNNlr4yRz_OPjzTmxKxsabyU12xVbT9_wcaVmozwqfVKb6wifa5uVqZmwg0_jcE7oJKqNANRb92v1iu6iBd0-uVvm2q5TXmzZbG7RazzOyKQ0AOeFLrn6MRNZoEpnWY21L_9jqb1rRCzwrJgajLVF9FPaD4pACONTO6wIJrnNuhdJ8w2OQhnYaV2iS6DViJISTsVPgx5AV3HSauk37ijvY8IZGAYOm79czFaBYoSlNFoEo5lfwGkxelJ0eS7FcaykOx30IRCxzwgkrbDazLlaPRxwFHcWD2RY-PtKGHfKLNwE4XFXbJoV_OhJl_aoHShS1Lux2su18iiqpsfKFZrCqjSiOkiaTMOyKuP6C64YGv3fRDmqIx9qctucGb9Kxzg5qF2AWMrcoGBKhC7fD1K4NXUSIWqLqYkh3HdjweJRNOmRnLPVK2snvpW7yuvcPvC1CywWh2_8DOTsrBv9tjedkQQhwgzLhSicZpLnpItKAGk17cY73EiLkk_SusZMXNqITURIicqeqzagMqdKytXNaXb-N63OdPzNRNGSeUamEyIKo4zmuV-KiEWqNYjGHgOCe-Pi378a8rNyxq16daCldCXzH6Y51OxjiIgpSygVMuJOkN2jAwnrw9Nwq5bGMjRWqhIVZ5-bULvBcq3F1aypiSO-5Td2o6dIk9uVu7NMOnqT-u9enFLMv-Dwt_rmRkBu_f1D2ewSE2CviKgqZi8G93FmXRTAqmSVF1MgkK1utBqvxNJeYouTP8iOlLat2etvVLpQs22aXiA9Gvpv2is4YrFZIMwkOB9lZEzfThZTHnrIrD_sxakE_GkICrvaPNVa1vXc7QkmM8i7jdhad1C1M93vyYVnnGLD3O7sB2HXV7mwgGTNY7hOfFxv5-5U8LRaNrO4TlIGe_On0z3YIVm3Yqe1l9GFauPx8CNAr29EpQ4NHvzLZeUvt3apv4rplDAsVM2L8JelrprGgUVFmAYWVCOUY1Ei9fG_ObOM716Q033oLGMtAzaNBd3nwPmBFdasXiMBuGi6wjCbaou550ttxOjJ0yE-nYMJ_oWzVlbP4B6R-vf2X_MHdDgxG2Pcit6z-96k_KtedYvSyg_KuzLubX63gqaFBj0kGHbQKExWhi3lNvUGCBP48J9DbS7j4aIkJQ45lpjh6YnVxgLoRPJSYw5FM8mYrzllyqf6A9zoYgBtH1vLOjSTpz3YHRZuRKORsHvfS6lrKPnrZGLhyJPMkLBR7PZ_JmSuFK9kESuH-Zef08uUYvkSlGcvtV5e1BqkEmcWR8mvU9QYERhV1Qj_0uzeDq8c_pTcpl6v3JSTEtE60HpU6xdr05-slqDEqLdjjMJ6odJEirN52JfT9yDxpp9CBMKOX7b6kvICnqfCUWWIJ0RS4ziGo1V68cK0Rvpqatjr0CAtigH-GfI5mcOAxhD2sxT7l44lXRxfTpflhVoFNTregRS2F-XywcqPq0A3369htLlYeYfHv_4Ht9U8R2S-m-s_3ls2xNYMUrB5Fj8SJvjK2d-Z8mfphvwDQwbxGlFSdRJgu92xFSoUnEef6NN5CF1GJtp5T06eeWJt2LVGLBcBEf_eRdpiJy3gc3px8hK774FHjoXizN6mTkg94_jgG8fiKVOoDOyk7Wwq1eTRRns96BW0d04A8oDzFXGih99ZIzF3bwrUuvG2C-plHeIynib3ymdkQPdUJ7_hdWSiGQ9YONacT9lY6z8UYBi6l9eQmwoMTQV6ImO5Aji81kdXwMhMKixdSwmn6sIMmHafoVwA8M64YaZDrstNcJS-yysxjd2exQHitB7K-WlCNmaVeyijCr72zOViNzR8YprHyqxib-cKjZZL6FOxgNMKfe8rGS_UZBIAUGJop-kYXhIMw3hueL8p3o5Y-MI52NYxxUeJamdblxFFNyrIHIE-yKtdHEAkrs4IgL0SaIPxqGFlqK9s0YGuCDUwkosDVjMQLhZyevKP-JPp5bGfxMKxRlaba26S8RtTlPoEDdUdbBrw_jG30NLaIz461H7eQXdjOTHQ0vKy4Vpumrco6KJTUcpOXs5UJeDeo4yQyvO8GpqJvsWe4Mxhr-Ntapnk6Xv4U-_Vpfh5wSUJRLX2nINm3MBIvz8Mjqo7TOjf7Mwx9wGuoOcNOuKNvofPETFmMkRrYjnkBjpoayczgW3GvdYqhzbAppzpQIdIm685SA7Cw_5zZ-aVRg7C4Yj7ZzR6Dqvg5K-2FdTKgwFwAco3vdfjkWkMDS6M5tzitgcP_bSVfnykHan-xhRHhyjBORcLmIx4PxB2WYClYFOajhNX06-3Lz6f7e8tlB2HMp83SEQ8GDSciCd450meXjoiFy0A4pdBRG11osuaCmU1147cQDA1fuTR-xCdNF9NAUH1XQWuKNonWJgJJqsrdkcfNM3d4aZg1Ex0uKkHT0fKyQ-SAI8n_azGkgpSv8Aa7ogy4UBgM7SjvnjWh9K2E8ihBKl6lHtl6yJtLFfUksOCHxoIPhZR5HNV12fv9o_Gd0MMSWw8c4v2WpY6k0c1FxgbsXQ3NehZ5Sl588qS53-XgedGAtjyXORLtRjh5OsW1kxmMKwjnLw8IVq8kRLKlMxUCXk-xBj3r_u1rDGQ2AK-cldRiSVWFSpMJglRyuIlTiOU4Vj8Ccax1W2D3rqL5T6tnPgD9QVi6eMCzbfQqK-mXrfHfkQ9ypsngzncB50XN1vYE_6cKyiJQYWqZQP3Xw7hDcUxxA1O8Yo5nRFTij8li5P7_uEURRjWWoSFKFbNWI2vvCma9rmpUMlmT3JRcyThZ6XYh5nyUhdBZnvHKmEUqa2b3G8xfQMFg0f3Wx2DG4McIiIty1XsFjXcih0FBkYtIIpgscd2S7GBS9SrcyFFX9G_rFu4r91S6kK7erm0tAqw50dMRhzIZKTdHNeiPPeDGkXpMyMXsZ53ri86dOyBmxvqbE6sA0NX7TKg_AdkG3uQRqYtWpUGwWwIFsrS0x1br52nrky3CWLrXQse9DjO_OsROWnwHFLGpIVlfHh5okL1AnXH9ZzC9MYSNhX8mHZ5R4GC3HZeCm5HaoDzu6EMxWpmANnTbonfWFzd1tLRhq1gV-GHm_7qhltcPQYJApBpjErhZhVWFRZ-8zTZwL0vQNrRb5_NG2sGmUy5fwZpEwRPRHmNfE1BDSXrBm-H-rlmMX3W5qI7Ty_UTjMK0l5AmChYHgOCWpoH_1hRTXwAsMvJ_y_lPBVKxztlduMXkKhz643KMeOeDpWXAXujCjO7u-5enwJcjAQ_-RIL5dsg4i_f189kvBaokSScQuzKLamCBYFIOPfE9QrFUDCyINaXZnrOZfZbN9kA28hjE6RsxW-okx3dLx2WJ0kwQ5pI0QkZVx1i9ZW955yp7X8bOP0lXCgmUhpDs7sGrL4BfXuLlYHjzNq-9jfy8yxyIG2CnSS5ZKSTlKzYhJZ73ciDn5mXwi0jyeMtBhHc9VMutUe8fYVX3eXy8X-vJhuqsN3LGupZ9fEuWNBCJ4L9nFvjfVzB0CmLnIHQGMHc6k9Fe_6FByW_uCLoh3STrA1PM-Y-kxIHvU5TzbgyQes7Nb6i-kZ0H39-zveOQ_QLYyhbbyDQPDgrr1y6qa6ph2AEtUFKsXubuyTtMf0K8C47CVOy00usQ9MDYOw5L5dtvCOnbnKK7mGw73ntoUYdg-ElrwOoGhdbyEimYci7m8s7WvjcBSGhsGjSMAAscoNE5Qq2NipT2SG7rVTevwlwlwEP8NpHDdDL5-dTaA-leH_bWhlwC37XHZPFmgu04u1T4sijWJ7AyW1Jqrxf0sxNcsiQFg3D4FNI_XzwAEtQHbNLctC2X2ibz_fKqa0HUWnSdQuiJyyY8Les06LDVy1mHJn1_u89Adaqgl_GqKjc7eUMiCN9ROstEBiEwuRTqFjSQkvGzjyYgW9xzzUYXkgBJQytzII9DmdK0luyxd_FUn-PEHOiiyKAbNxbaod8yXsvqx8ont1UAOUJGxK-jYL9xih-TpQ_lvdv9zKsYlTVyyGExy2r85gTBVBPX1J7KIlk4fmwLt-4CzBPsXuDsWZNQUZlDFBANgs6ogSXGQhFI9dmUzqH1vpBXACnvrmzOcHueGnae_y9fvtXbIIy50j3bGW2SyBheHNHrzMoofuQBTF4e_Hc3wGnQ0jLbPPNOXe2RXk5pl2T4P4lKR19lwb-4sucfx9HiFdWXCsfJ1ZdCtEIS2Hg_4Wq00yjrZjt8u6TGJjmLJCIsxNbctgR5hSh_QgvItWe1xLXfQgjbaAqxTnBFdZU1xksWnJn6dZU7T22px_RddQSro-xUhcOP93Cim58XayTrhr4QhxqNF601rCCKLy_pZRllObjZ8XEg-G4MNDpax9WZKyT8Wd-Np5ShtTXoKjZiuUJLAhOrGB8CfG2j5e3hwE50sbTlhBtHAJPPI7qr7UxsI2-XVoUmJgNmv9rwTX4xiSBLbpFCKW_8Uew1ftJPX8Y7hzn4Coo0_zSrq64-VhwcM9K8s_onm_BtZzoOVo4al8yukwJysktRtKZSWw64prDJZdXGVHVMmKTuLFS3IEYSyk7G2STmZlamiVRhISDEAAsnJORU3SfJyrndFodz9pSgIVOhW3QKxjiYIuHSF7AW_3xtI8J7ybmsCnNTzos2pnp-V9RSHwr7-Q-zgeUBw3xXw9PDOFVn31_bb0SPvFZuAuAARD4MdRZMtGgUAWUHdsc_TZ3W2ORaKRKrVmyYXHl3l7bJjzYcUlNzyJwB9gWOnOMiZzDsLk1heoySYygANc0bNuTWZN-WYrMvkTTfwzd7FVQgB7pC9xMYvQY9AO_3z0NzQi3HS-IaZZVqbQjGswzb43lTiTSFMuGtWkaoxtFC628tQnr5m5zDTLCMorO_npDAAy5RtEXVdyXYVMuCO4F89c-5gFZsmnM4EJqzSIAjNPP-WkB3tjLXgj9GSzAuzRw20H51rKnJR2UQOdq3nsmqJ6aIZ2L-UaRJ3Evy3XPpkKqacxoUkSQuCzeSgv6W51FIiwAZfej7EWaK4H_5ReA-wxTrJXI_QA-FFVBmu7yvrE9GNXJRJVY3O-LltBT2IkH-OIMp3Z_o1iCxL_d5RgWfkalDI3FrRyK0gr-cWsZJRlYPf3KMfpHAxQm04cldkEjoaMUv4FOsNthp1hgJYmeB9SvoQ79kemxqoC85-5Q9afx0SGyejzMr-cq2yyx6ZPNzqwplQXBixL2acSLyF58iVz9XqNBGHszhAvsqBDLgkz-DovTCpVq9lvd3bSKkMY4T9v06__6hqWsQb9FTT2_-yoCbT9NVKDuGcaZiCFtzmTyqv-VMnVQezo-4ej0Pz-WelGNVgWzKTcD55a5VSaKUwL_jSXtWCoruDWVLC-scre6qLCPzcvdwi6BW0-9xUqUPxVOBGfQRcGV9MR7hxDvrucMOW4pLjFG-HnBC4WA8QEsl2yoHwaT3zezs2-tGXDouvbOGTsGaV8wbca0i6VHyzVI3-_nP1IgLx77q-_FJCEBvgrlpzJawpgYYsGnaGSiwwgqR_7PQr7orwOrBgvktgSM-c2DlZ-tmZjGIgnZTcBOp3K3fkl88n1aM_hcEcz4dclr0d_LxgJB2_1QQL-qmKNGfBl3-edfMUX7lHBVr11GcxFXfOeB22dxKRg_j3mhz9KN7md0CC2gRiJIzPdp_4X39oMacPOzN5BFdfzWoagOXirwcQDVRCV1-NaN1XuexH0Ds3RuoYGkQQKmZjgSnF2wovUKpunAwD9j3OLqNETjlQhndNIj76_Q7-xJAjS6FVUWaCMfyWzJK_V-15NCIpTAbhuQJaA6v_i7PRvhHum6USY4dVlYhjkvEYRnowJTzKlXDqvX56Www2EkveMbEl_7K8LMdKU3EA4ghtCl1HGumdeZro8k5CzAd3ncbyEDp83wV0_i3dQliAhJ0nVXhfxf7lz91vFZZ1lrmEwfO9T2_0USSvtxY-JVSmA5_khXVjCsAwXGbsgi34LhtKalPcH6P3LQSLppUZxRsg9teEcJAmh5CneF5wuuN6CplbyQiMDso03zFlv-1E03H2ierxt86t1nZ5BCchosLDbd_uEBRVZCXwz2USu-FbDf32ukEtW9xQ-RsfSzg3ni2bM4pf4Xb4gyDZOj_1vwXMEqtRB1Lcj1KYSDmCnfKU96ckFXtSv0-Slmd6xPFPzR_vUe1WRMvK_pBUlTnRpXVZBaC-OYhw27ik2OILGwC-295YAqyucEgbBo6ysUHiV2k_kP7dHnmMuuEa1-1futSTO6ffnl8Gm2s7rcbmm0xrNXzYtTS3n0EZ1RHPBMV-vgdYGCRg1eZmIkcs4Ice9eKIFUkwZOgsDzNrArRKuKbhNuwTlb7SXs3zR1Td-oIAuoeEZ36rDnxAU4jrfC15CW5aU8g54CHTWYoFy2bJQp1ck39IecXENIhEsAuVdQLKmZLt0yNPYXVQURKgyoeScrhqDzrtjxh5Qwog7MIkfz-EiXv6s4HXwYWBrgZnsZiQ8QtWCMyZaxwW1Co9Q6Cc9jmT-fgVR7TtD0zmBOg-luT-FyS1uLh1N_tjZjccchoHwKd1HgHcj0TqPhQWnO0QeTNn2wQcqU4qHdlLRS9IBniakRnGv8hnJPhaeaEU9JxRDci9TP1l9i-vyLJpm6xGx5LGLaTNtmCYu5mVb-v0euW0_h_O0UYTnewhsxGhjMo4FCHwOQ_2Fw5xqmGgThHq7ssaCpgBmjKyf9xrwPyu0T-YjJsRZgnpc1tNlHZa5YlD7MxBG1rzz5RjJ7_CxCepir57U2NU8qMYWVyKA615hQGXx7v-cxy6wfxmC3DG1fIm_-SsXVFYgyyYqImjme8so7q8LIBVv69sLxkj1Rbx7lQIWQjWFrs04O43OKIpEKSq7nKOU6XpNMk_5bBS5mW-Pbsuqj0OOnSfrNYzOOvEJubUZLhUgw0S4CHSkGgzUWQ2h3LHt_Q6jWN2t55yEwwvwNgJKcN-w4tzunHS7h_L_VE3ECsHFRHheJyE6YwnszwnXxrc7rX9jctSZUUfwqCcNXrSNwxlD3U-GCxaQmiVw6a7PlAFORIsP1O1x_M6BdSsaabBGiBMwelh-mUw3bFvL57JEtQgOdkuEw-eVVUxr0HU4OfTjRtg_DwN6D_6Gy65qDkg-dR_iNYmVSN34tLlwyUSikF9u5-Nhs32X2ieSQauzOYDEpOsf78GtUv2imWZTRbx9vFeD54MdfG6gESWHHvT67mi-iETjCv8ILeRhH3yCHCXI7F_O4b4n5X8geSCh6xV7J3hJLrD9QV5BTuyC0ioz4hKk8B55Z_6U-BYWX4sRYRehXvYTlOatmn44OHLQ6rE0bBXZR-AH8NEExySk8jYZEB8EN0vkrIUsUrNjJ9-Ki3N845TXn44r2oDiQP33Qrk1eRFmlJMEUJ75gFUrfnd4pFhZ8HtldaAXnBDnngYV3ehT6R--TtyE9BewObwWLSgAA4FA6E3q06he8tarXFjy49D1QQ-FU2p4D7DVediu0KKNaTIp5vR6sj5BfDo5TNmEGWZXBHHAfPopJ9O7f4wcrzbXBzT-Wby2HhAw1z_I7HGRrWkmTyUMMvC-ixt9UXXQ_-7qX9XtGdEmoFIQ5q43t_NerJvqFNOX4kua6IyFflGKdlC3UzsiKNMQ6BKwixjWIaQXri_5lSio81ACtIcRbGQngR75ikfu88sZEfc55vLIU0RCEejF76H5EJWApLem9kA6TApFcMnORJXPzQY88obaydnGO3cVkKblbnPGQwBDOWO6zkT1FJ0Lftk2SmUIw_TjAmX7ct2upbGDExXvjY4CesESm2kpXSyOXYHslquToqrw5IC3aED1OyoXhhHrmTyHNHemCEIhb017_eq_IZ889UiCt_dM0qllgcKEicJtyX1mYVyKl_qRW0mIokjsINPeVpbhrstQl-K48gBZOxf6K9WUD7BnijRd8p93rEEtIQ84A0ZpXvhLEzalvaNqKHU2zsFCudMrIYZWEXiV-SLayirzMe4P8-5aja64b7vlh1wW3dgknz-mris_JQ4CT1k_dbBvNMt64L6tEg8ly6UvgaYjlvet1sRy40Y-UwzHe53PeickRmm4Durxu5xRMqphePrSGjMG0EBbBtToyFyR1KX7XdXeXSyzyEbJ0FJTc_0zwVFR9PuVk2JkbYwgffiAJgrmLNcX3eofMqghrrST-R7vCD0OqR3ILqLXlJat4_sXBA349Egci7_HfaKAdrwK1fO_Lgbn4xbRCKqNVAPq-iegJUDxAMgFaq96iWp4f7Mj1eFzpkHKss76ycWa49qUQUh1w5bv6M5qSBk0hA0dPPqOX0mApDjFD4-qvbygfcaaWENYFLCzZXqWsJgi0k7krHr_WhVNyBZ5C4a8JmwsOezt4-YDHdWgHSS5GA4NyyI72fSHHirghY5fDZCn9Qag56CuYla5gUngEmchCF64sviVW-mtivAbxhDPhWz3Gr0fsC32SWuN0ntcJweeIZJOL0qjWMl4TmwZJFIlT9ZWMgerlBBk5lbwUg2PX6BR3MPP17MP2nVIQGpEnAXVHCM2T7f2yVDc9THIbSUASlI-imG1i4qcFnyuViGg-aMfiy82FjRaRUMkzsVGmdrrjpilWUtRU7_tgXy-AZ__3QWMjwmY3SHXbOMqjAXIteT82EaSXEch92OTZNWWgfK83E8Y0uFUgNw7jYBFYDXBoV6Fhv6N6XwvV811XdZISgfv2T7AekwJCMraaH6nOuvgAd41TFrlYfezRdZxU4vT7kD2Y559BsTQXt8utSCNzxC7_xGZXhtifK7_C9xCL36uDuR9DPJcHOP20lrDTAhR2LUhR56_gO5EFvxubKPVJeX_NQVbWahT_BzklQzLkGNhGM-JNh3IsgI-LbaAIhBKZr5OUvRblXSmPVFQEUy1GyhKcvQGZSZ9Jn8EMe7HbbGM7eqGjsGSqfMTsMjBoMPwWpzwBqpsSj_fMh6moG3QSs0tTfz1KHmwwIA0HUW7IT-UXT7hzgZ4kB39Abt5jQ1pQwz2LV92yN1MshElssUMiPXcjzepfXxHeYTLvfia9P-kk2SzaC9cOq5CJ1TRURXdOrbHxrSKzPB3FIeZO_4-5z-tNII3CwKVNcrnqWbhb8w-jpZ1d2vnZsWA4_w05iuz0LHa_Y4eyvvyxCrJS_dTQw3LukTvs9HfMZLow0aLFJlNR-ZzQVflfWXj5bGGl1T-aoMbq9lxauTgDiax1hfEdf7EqmCYjZeorrFOCfqPJMFj0QVXpCzuKgCa_ohPlMNFrG5iQ5NJVPmUAbpn-uBIvk1sGCRTRuikkySn0KngOryjgDSVPDA5n1K1qdAkiXOi9K6klxhh8w51CMq3SqSap5Kvo1WlqIcy0vbxR5uLMoo7plpCECYgPt_PQx0A5oLpXlhr8KgL5D2YmJcyTxesTRnn4Uw2kieg9Zg_lAIOrZQeM9WylwhEw4bmcGr_r_rG2C5RvfCBjl4FlUNAAy_YbtTo3sB-vg3FU5ZP9xvZIG0SwUJkACMi1ONtYDKOVFzhKbqq0TMMEHyGpezgmdHl4tTYtoGecYGjScnQCvalYtmPEgextszNGWmZdVbwKcXpMOk-NGjafBvbnlTXP3CVm7QxAWmy6DEzzBh8mH2sZuUKp9K_sd3otZRxjRrvDrUAfM6aS2hIRbFka_oljDXn6c4vfp8W1-q3U-GoZRr_Hkrsm3dC1SgkTXRHXtT6hDxe6cOqBhAbcg3OryDtA-LYC3vpPnJktIcqf7q9OUqG-5GMEniB95PHVqLH-Yej5Xb9RnREHk4ptxLKf6fOXrEUFolw7D-6G7FbCGQoUEXJFcrfpL1M7a_e-331vHvFK4l8do75m3bGA896bA7RDjK8hgwXfNjkTgwExadUIQbaFpylTKsnbPNIZpET7N67sJQfrZOFZqQUUZNkH0g9jFresgvwQdH9jOEGDw_GK74_9w_eZEH124XParlPRiZvJBeZU97ykb-K6xpVY2bWJQjeMKZKB8ZrJBj5qEF2fRalGek2OY_opBuJHg1QKNc5BJWWcVleqQibPICZKM-vnaJTZ4xM7JK8dsX8l4iF_3oYoPNUPdBfggPH3-3Qsy8Cs9k_3jGQm5XHeJ3KkGiAq4-ZSTOOpBGAkOHID4Hmd2XNd1Ia4WqlbaL9d-JfeluEHWdnnQrOPVRlN52z_9aA8AZYG7l1sUTYGr_dg1GuYcHp2l5iSxnucQxkgV4LSZ1Vn6tdDmhs7vHKaFPZpHjrr6qeLRdHCbUQPHfvE6ULIKPn4VoEJMfhq3Le-bWLQbskNv1yQI5aqzdYfdxZ74G8KPqPyCMQvOH3qy-Qv-_DBkHiQbX3TorpxucE94vhD_x4bay2hz5pn7LqouAsrflBLHJdY84HssafwN5ZtsD5H59wGx-8yTGsoD3iSN6RYtgyJUG9fsSWCUnMVtrp55eFZd6BvXm5WJermD94ZHgTFN-kf_H8U0FnHrdpgG_KaJbJaN4HMMapqycestkfXPC8s5OKIT_Wjz0fFvd54GKs-FlcnvdJtgW6608KQPXCPdTCi3Ib9rHUvLKF7KY-upkFbJTL053qzv2mFR99nLDdJm5Dfk8ej3WC0ANbu1sby4JUthojz68Im2sXDN41yHwZan0xbFygnODWrjUArHiln3LMmcrzgwDQzpaiHtfQXbqIVbFmEocQBiLPtYy_mGsOM1o0raus64w2_y0kzWVjztAMrnHMbKYsATiiYvYWmt5v_gqZ7oTjoAk2zHDCFXrm9s-leF6IyHUriGy_wplYwPLp2L5egqczJmu0zhlmpn5hKl5qulVz3Y20hrjbEcbYKK8OJxooWpLdaHN5_61RDFX18IejU1h3tL7h_eSXmYH8NHdn83Vj5AJe8AGUn35QVsSSJycKz0n3qEHFVq5ZVmvWyNPRpS_AMEZbMrUtsUx41GYE-xHKzEGnZcD_oLnIzrNhbQ7-jagLZRkBIwnITQpBpIKKsgG-smOwSPx5y9kVa0nwJTGh0cYqRKk2EllkeS2LqAIwiBopPloRweauiG1FzWpZ1VnrXEV7jtly4aFqbcS8Raaleo811loMspgOjqj3MeyZUbrt4uRO-QtTr9iMvUuPwGcR0JjCnW9UVBX31mx4BE8XV5paa3fQVyqqzosFF0Mli12fHlddRechZ329rLTJPtMo2IkQoZPndtKGrX1jY1mGysEhGGC-rnMVZkFNnR-hVKdsJhzSIy1xp-6StIYlJVvdCzodyNAqR2L8LiUlx6VNYfjIvtczlJyPkZzzNYrVwMEvdzPzUwnWCltnTkGhZz2wAsxgzSrkAW5qEFWo7e4Vivr0yjaWXD7_949Jg6-7KoaXU8dsClfX0XPkef5u2GdLu3ChTCn9yspafLvmCt5fMMsd0oMnCtYJHmWHXF0M6W-6YpqvrZxoN5evwd57GdAxuvaQgGt2ZhOHg66BvO-8w2ptI1AugdF6Qx_QBAbrSCBEZYolCXjn_7OOABnmY0Zd4HIvjxDH6DbWSOhGN7CCGPJ0FCVwxMXgvtz8pmEU4sfHG_1mmTXty67eykSaV4PhEnBv7ntGwRn5N7l5RyWiJq93tsOJfxyL-JzctB6h5XfY1ePPZbXnhA2CeSH5Z3Y-8Se4pF28zPH4gkaCraQ2OzlNT8AYMbElJbcd-g49nmk4BYYRLfPiWPkLkDezYmZGigXEBOeZwEPOl4eXFI5ubK37gIPnJ25jIgOR27Zs1vfGhskN2g3fwYi2OXFSDhh4EGKntT0qWuNExYOYuDZyL6jfwglS5huFjWx5JwBR7zBEVYQAQH66TkBscT_rsd5SWvBxbXyyeeHR_yQ-Gx1FsQtrUoqEFicCV7FStzYlmoXF8Pzr1j9MGecZM6h8J-3DvKH6iEVSb5sKnhaTTR4lxrdyECBwI_IIAd0-RE65zFL7d563GREfOEsWCm_LFZkGGhp5JxcZwUc_l0O_NcWvKDmEopxOWtWTPrg0yOuBxHICZBJBjAZsJv16RKi3z0rf1EbK9AiHxWeqEqG49ypOgds5YVkn44LysYXZ8tG6y8osUaNPsFQcYAGWz8TlGyDYwsmk4_65_eNgJt95czBDRCjgqzwzx7KVRd9jjR7NL4EPonwbNDMcQEibPN990PmFfe0MnvAHhNJj40WdB7Dr6w0fEAbIp0spBAd2w5oaFPR_-n61HHroTaMtLE2PWiBQXV47rRa7SJg2lVxzFd62W9mt_9nekmLvo66YMP8FmDEAApnewgNbIYCqm8930g00141kjIHIsEbTNSAVJZ6eSHFpTcGD2t8lGRYG5rJb-zcPtCgRQbpEZB7vxoZvb7zx2jxhgPUlNCjfkXk51jatlq0_aJA9lt7ytX_EZEXp7uP_74aFNAylmuOSC5L81Y6UIl82ofy4lovCo_HnFViYaJ9In7n7R3p1b8JoEeo-GE85ri-6Nm-m7eS7HCRufAvCF3c9Rj_w_SHlKjhQWdzezT-w0bRDMyzvVOcjIjO6DvNouTGfhbkZ4cmmMnymIA7NcfBptV3g8X6YdHvmnRNkRMdAzC2rXIUaRg_u73wVaprFxLD_AC_nG4jWaTxuPYYDBudHdE1tNnG-inzTVcMN7jylczgkTHOD0P61vQxQA71u5DAeLUaI9ORZfSeLDNNNt8zlKFdvcnxypH6Lt95BMlADizq1h3xkKEbnERseDfFlm2Tcz1n9OdLHEAznUa_-mHormozF3yGGqFutHFxY0NcFP8RD6ddC8oArC77fN8-_dxCFSJ1US2TofKnXP9N_cYUbULTiYaH_kSTf7mGTF6U8BUMovhMaNFKlONeO1NPyeNYP1d1nFXT9blu7UDIGWMl325ysgUoyY1DKjKyTBxw85N_BaJOjaYWY_grHS5vRaQFdMQTLQYsprhWAgr4GjAi-tOWJz9xl_J_0XLUzPtO6OpDOJwKWX4lVcN2rw6iXNjCuTaLcE9bAKudnRAXMsK0jHsY0faPsdcxCEXRmx8TCsHigUVVdB8ICACxqsqetPkdtziNc4iUbC2AROEW0VJB5YNBW7Dr6qKPHc17o2wM_Yv5bVoxiSqC7K_JVYhdCCtsqo12Mzi3IJRaHMEO0a_gX05tfeQq8UoTB4xkJ_Azv1GMqq9viPS_2bfmovEZn6TCuzDiZvpLsjxQdjOC1DVBpjHyuL-5vXeY2CfV4XTZe3Pd9kV6wJiPoQ9bCO4lpQEiCjrco-4d8ikiorjMAAzqW-5ZcSm_u9ol1DA3CMKa0w3bXi3k2iMRK5oXJKpSADR4Zrh1_cvvf-WWH2N8PRgOHKa4as0AJkO_E5A8F9X8nak4PriaJCT541uOO8GDfFLGUZ952jgSCQfTAynYY6GKKeqR9wt7pBjMc7VpRms5jh4DNpQQp1uR8mc85IyANhVXXbwxQ1l2aR7PEix7BnKKfQCC5ScP6kbTQedCu5H87TnSFWLKz0xfyMIiZSD5zRKMvyAAelVtnRAQg-UTM-ZMiM8c_UPxf3Yn_sC-Uh0yeXXN8zZ_8OCFEAuvdYuC6i1dcDkUXKEvetUq-lSCwt7R9J3xoPyqdv_g6VhJ8cHTCH1Gwz_oP-D7iUuBApFu0WsAeI1NOQhdnLeERQMAbH6WwZj4kAOduJKEA-qy7LQJHy-OQu0AruhoRbd8yfsJ2ArrDCel6AcUksfxXKqGDCltLCttnt2EA66e5IhkPjI1Eq5ATBL0VOoMZzEF4g1vqiP5Yxv--PaAW1sS-s8VBXF_VD0QXD6EpFjOHEe8Y8t7Nkdpg6KH3d0i_FgAAE1grxfS2X6V4HGrHxkj8sAygbz9nXovDBjIDd41hZJYT-IhoHTk1vRD7k1PuDIZnee2KHqcFT3K-A9j_YyH-0Cm0f5arml1q_NdtMkrRntsausbR6QI26opsgZTr-2Ln1JXzeBesF4DtYRp6b4JM5dIk217CxRzQQ2cwZMDftAKztojqCZU4V6WPjGe4FscKkJb0do00c_BkB2tMJjLHh4LxsCBDNJ5MIULO2cgQb8JIWgKCJBAdRey17oqPTnXPDxNbl1njEg-Y4D971r7boqVIvgYptM1y6JgC5CmBLTaqzXMTYruVRUTw4ETUHwtL1FrgL6Q_kwoix1im6LFymHpaPLkCpM2V7-15NXV8sY_0gh4DCssnY3p0Niobf7i47WElAN7Y8qg_MSfecYXUGWVzUHRJPbhxsfiwkmzM0k7N1WiXizeQXR6dVmLS5ChEx9FVQgM7zZJS_PUXv4nayi6sxA4mG2-zRhoWTL7KihIEfyDyVobpBoJG62xNQsbzBzCWDQaqBJNjLTsdGX-OTVaj9i4NfgTRWWVltDAr0j0JJVttPN-Vy4W4lLOQ2VJ09MrkFIJRKUm0UJptHye8LIHAovGZHbXvc_gH_Bl2WY6d03Uhx6-MmRia3Vyx3Wjzas4ip9HDeEfzr32AOGtKl1ng5Xt1IvjROg5PyoQrc15UFkMLaZlkJh8HuIH4FoXuU8685pttMXXrlrJQXu9jquQaUVVVruOcl1LgQSprzKTfbYx7w6TEjHSzAa7ili9Esnbn8EtTx9Dv2LVKxgf775gono8pOQChuCR2UbmSfGKQNqml9hk_H7HkGww2lkMv8-EEn-nToNW0WLaGOv-Bngf7Dfla4Apq_z3kLYJh9_D1y3bR5KBOzmDcsYe6jR0b0A5uv76np7Kii7RFE0ucw3ksnWiiNFlnnMnwnGcq9xJTNbQX-HJL6XVf2qV1PRuGcIb9R1sQxvavtZWR_qdfj67qsL07qj0IYzMinxRNXpdJprEsfMYZcgcLYpwQ5B02R8x6JoITOHkgpzWYbJgt7w6kEPlNI1p0JMoC-kHe4RGAcapZi9L_maK_NUlRgy0HQJ3pJjMfMjQVg08rDfqIayFjVK4UIMIk4UkX3-iHM39Koe9AnAz-LFMV0vc0Fv4rolB08C4o0eYZRgNbuBg8FbcCIXy623ELay9N09fN9Eco6iKw-6AXRAL9md0LUY4XmsQwTDxoTfwpLzEgaaNJcnx7CJ3zjHBpr7ljcqqh9yI4U1LDnS7HUG8K9agJiBpGsDSy9Wjn6PfDR-z2di2WLQLb1Cxi32XV79LSnxO7M2vujYibfXYRCo6ga4l3rOFIAP_fZasJp1XZQ-OL77-2D1p899owYCVKdOUzl0CCsbgSVhwoSd6mDEMQ8M0-5pvbWtR7cV3QIl6xUbjvDCeLByHmAufAZHVHgkzCRwX2kgEGkJpAfXyJ2UNktDtabrfVyjJPI3d1t5anGqsmsiBa-jFxtdqfwZQKd9cywk1hw8WxF14LeQcI4ydymFbEHVZCoWDoFN7x4vRGPBi9pLbN5_bxBlwQDNjxumIWEb3N2HUhZR5iwB2NUCO9-65sfT9MLezMzCaH2P5J6ImzBjqKShOHr1jqg1a7UgZAaexdMCbfW4AVYdJ6KV7pHww8zOv_FmGHCrIhYT64EIXoSl4PBjz4z6O1_BNR8xfFF1IgZhwFPfUCjgfUtdFt6bagz5XHqpC3nNSMLlDtcEj_8h86dAj6VHB9MlKe91GMxiDudkz_idTepHfe86LVX-R3ZRGP6tOSF9zJ2kmnCg7wH-tFOb1sTpI-2aTs2ChPYuEbL0vRudHajb2AKMsM_ccVKP-Uj8406a4f4JElFaf1dnryAGiTHMGbEonkAMdxpLRYndj4hfPE-OsI9f5xo1jO5ts9IMF1ci5LTHbm0XRBw4XxHgEd9eOHrxsBIpp6F2ctJFHmrfqdZpnM9_oRP5hleNAEZwfU-BjEgYGXjzD0tpyqnZqil4Beim12JMoeJqCgPawM3iCvyAbwNnne6p5idWa9m5O5O76ATgMs7U1DJHZFvByN-IMVVZ5t7N1naLq1s5wpByErkSGjrL48SpLZ5h5hQf16JwLsR75A0OheHa6g7o6TrQHUmLvBzhc0rLWRLO-p1xlWKpcrJS-rW7wNKfve52HOGw_hVhoanfoeEGGBBD8KC8-j9W8Wh563ZXZsydBD8P0YREdkbTGgHjE7Y7koyY0u0ok8Ewr457iNkde5WRGo4uAwfClHKfrvM9qjeZhrRmFwMipSn7dU7d1O_xGDBVMmuACU5iwvM0DUgvTNekXlrGAev8hhApAULMMQ1STw3BgyPBzYHY3Fjc6Ef74Z4T8iml5cUKz2VWVozewRV7yyDrVcfMcSULVpqMLQedP-Fpng7n6I0ChOIK40E5mQ6uXB_O5iZ4OKSj-edjXlp0VkdFeue-zQ9EzXFziEzoZ_SSF87hzR9QW52tNvcZD7CBIMqNgB0uMZ4O16TiRxJ0UB1d9ITyhsK_LNXkIV3gheC_mE_a7NjOfqL-AHBDwzq9U4FhsnfMxqzwPGd0_-YitjycGdT1NdPQ13gpWwqxV1B_62LSWHocg4zKVlBCgIRMys21frLN3rCVIKSwqCxWuI0vms5KHqipoaMq1aMEyDp9ZkdG68CD0JIljSWbVCapN-pSSw5rAwaByF5xn7kEkz3ZIRElqHDvoWfUoADQVBzTSFFSftquKtkjPXppzNa6v5_rNo4IxOJCzamY7DcKYKmVot0UbC1_pKW8VlA6lk72-Jn5uoaiufieY0HaBLlNLDmcw4_cx6q8rmHoLi7YOJtS4naEA11IlZM24nY9w5grTzp_vbeMeiSDtE5Ml3J-xZR2svTIQeGq98wHId8wOEvAKtW0bTUBkk3_9jlcoR4TkvMWz9ni5Ygr7C64L_jsal16hXLk_IIu8p296OEfpUdKbTpL1R9-co-vdRGPrsvX2GG_97b_yGfCRPtCb-rh1o1midg9f--Ct8UiI0mbn-jEBYW6UW9NVlivwoOPBgdo-3kRn1S1RbjEk7wzdkrPhmoIU-Axm5mEPPM2brus7hBGzL1aVczRkECBth4wks0nr3iBjqOywtJ3p3VzqA9Zgn4v9DH_LtlV9BHoWzDG_Ocz6Vl5yN6ZwBMpFj-OElL6KIj08hsxtP8Ppn8rdCG5wJoBzl_APJmJKhJr9K5_zNjBWA_DViYSe_d923urrpVj-AHk11x0t0MkKohrLNR2C5lpvkMldybU442dnXHjRbwOdP4XA-tQWilrSg5gZUeY_1qEleAdGtU8jjr8W4AUK2uFr6jHaxmm56rc4TRNyanFAImFlGBCPpZw2fH6zwpveSxHllfpuPgvOM-3ul64lAk2YDsXHNAo5vCcfiitzZ7e1xiTE0u-7LG9MuGE5CYhQlXSJcadn6CdwNjWHiIIpgHtdTKu2AmOr7ZYgz18P5wY0YDPUKLpwt1ZDj7Is3iNooCm2uTYbTi_zZOYIT08bUDkB_b4PKkRH6JRWJIy-Jx265RbZ_fXCsE7LdAiowcvZLc8QCdG-jWjiyN7XYrmu-YiKm5zdjyAPxqoUfBJOh1ZmQWZpwD6RdcpAUVcY850CuiTxET3FU_x7-6xCJNUOC_defostmccUCDfZabWJZhh050nmO_BK8psUf2bqsV6JRM6z8FXO-tbLGce0OJpE2KhBYVwZywyAjSEh8jgBcoEhFKJXZzij02PxTggAffosC2wAS73lR7qtMd9vTUvbJj5aiK42oHk6ScvdqqvQLHa_sIZ1jbnhmbJcWcShvyacZnzKBmXgNSYIs9rP70la-D67r-TH3EdrirqKcrO_PBaBX039lE6xkUKK7vSMgOPImmPbYaB5MTejFWg7_JLKAeu-2hReSCbh4uppV14C2ufI6-gOBOfAhf5ww6l4VtkXXKptnsxQkFWaNEYdwE8c2k6AxKly2pe3JY9rFdXd5Q-zJitA75RKpXDrQF-blxQz9BvLzMuCpAT_68-sArrDScUx6laq2jZ2sTLk2Wmpyq0Kzpoh43qAxVdc4x1s5vYjw4fSSDfz8D6rPVU_l8ZYn6nwWPmf7Z5BiiDGU39MHqNw0LCSdQVxeO602lW7VvWvwxxSTc3gnXIIzkISODNj0_YrnaY0dGbbF7HTn_gJDUR3VMhhf39DVWIhGWYfT-v28ChrNm_Pe9lMAtzomXKYTpa51BUZ907OYsQX1GjHb0A5Igm2tQsNV1nzX62sRldcugWsfOom_T80wBWU1T-j1lCjGMCNHvq9UQT3lgJRVaX19gqiiWB9ZDNFpmL5RNOGv1gCZfVbrGSJ8mToFvoX9Vc9FpkW9M_g_5yoVf4wTSRKFurD4wAijviJmvSlXTWb8-zrH1R1z4u420UToVANIy9CfM2YGkpnFnm5bMu4OCUDeGoloWGWjViRBk5HvMUY_3NjrLOwM1Wz9I4DoMQlB8rr20tvPI5y5hB7D6mNCZf8KCVg4iyqC8RHmMI-fQ9-0WuZ-aITBwlKd5tp28mnUpRX-JL9ppZ_OyrNCYbJ_TrplKqNbWFKuc8UG_LCXPpG-nEyScNrxu_iWRVNZ8exqs7ZKvCLIbXlCJUItdX4on8s-xuaMqu4_dxZRbSc_PXn2JcSRfDreV6IAqDXE87t43bfM69tLJ16LeQ4oI8CJwsKlbMY4GU8flRIMid90MEXrhw6PODRCt4PD8nyVumoxIWf6Y7hCuFbTAhhCmgtqJQt5QVQmVIqva4c0lZ1a8-n3SwVp1GyR8IyWLfHibE9avgdYKpGDG2_Qb5OziBtix5pJmjF1CFV91XktF94shCbb3kFWz7u5jGM-ObSTBIti8keL-CYVAP7udX5vng6S0qaj-jANdf2ADaO7gGWfAEtjnesaJn7f4_Q8E4DFpNCpMYy1Aot1C6_PBgcLjUnVno2V8qNmUn29riG8cZcfybK5bpQizzOM7bAtBUwvP_Ompbi_zshDouirRf4eeNlxRZ2LFgv8yM1WvKLX63fK9u6n5Vc-YhDuWBUMEKA8T0NEHZCUzfLpHhyEgmfnPpyxF4p-z85WbWU8Wmus0ysN2TKBo_1HXz3LCsimXu4kg2VNdUr22hC8hha-2Y_2CekYn-gcKqfOrW_ef46BM3k32YvcSq1kzmSsMQaSpopLtU71hvkPljv-y7E1QACfLteEUxkV2V-HN5rrLUMe5PBdlUGJKvJku2pURDo8lyp8JTQFh15fCWW-juxqdfjfsnZ3z3kajE6b0j7JRSupSuiBS5E1cJb9TdhL5aZ50A_3wMMMRWb8Xw9moslrjuBwmVVDroCizC-Zw9ugB17GA_47b5wheuopRlAxhiZ5YZ0jFi8Q0FxUn7MrWCN7SYZ6ygupL_UeP83wefwFTt9nnQ_od4r-IhphtmpofdofG_O_WWJHTgjPNyLPJ3CrdS8WxRgnsQqMyQGYqLJuRXEOtuOcRNMqY8XTVF6R99xxTLQTHrf90Eq_RL04HrN-nIBXgsj2YdG_TADXBIYnRQvAQmffqUMFbDxhuRd2CPlLS-MG_bNqMsyCW6PLjcrQY1o1NQqsfij9yfbBEzOhUOBAu3d6LvypgQefrqK5jqJOE1GnwBag-2trU6Aw-lyKf1LXEu5zH1UJlAUZbRekodqd7BX8uKQHtrmGXLJcO0cJxzTdcIl3FrbpbHmfZap-bHZRqQFw_B8jqLwSwNEGVzgs7FFRRbAcJEAmHZSqbGS_mWxpp81yvqhBLTMfChdYj2u6Jyemak8Br_1ql5q8-xOw3_fvmE4f5zvX1gBRoquhdxGpUxI2LQDr2P16_lqzDFasMRVhmGRyAoonSFoleU8ID4ZNQ_hvblKNoy28HzdCBQVmaFuZGbPX3dp7yY9v85dxUbgBD77qw0jYYd2BF7OSc1yTckqeD9lqDfVDikDwboMBdGyZcqWZmu2fCmeDlWqP_w2iyy9i8K31TrXKDCU5c_T7k50KcJ8pxb-pHrUvRq0g-097dUzHgmJTu1MkhBsv2pIrAX1QQNhyYZP76ljIifYpnzb4kzdc57dpTZDBiidk3NxCurMdXiu9oPnBjlPBGETV2Ng-VgmBqXQGqiQjbDmtCZR5PlB6bvKb_poYqiHoKfFwXn8Q21_zK6gdJ19KG6YjPjSD2IqStsQQlNluaoRWNNSE0u8AcRpkGJ-KbyxDNywKV1XQLgAvVxXil7yp0s_dMwlfj-mkL4e8Hy9VD4uLUjAaoIsEfWROnRy1OA34r-QiWKfaPWyTDzGrTH8aLTgpQuJvpgyymxjOBI3oz8RUyvWQ0-Wqtk9ZAhLidlpxeRMPtDkzvoNL0GY4CwUNPvrJRJrnlsbn9EQaqzBtABHsA2uBydvJVh_DaC5xPi2qYw6IqROJ_TAucf_8n5oQFpFxYIL8G4urAEey0q_78n6yXA7Umn5Qf6foAVyIB_E3H8JKPM4TbnAqJdZDMcovKLpMYxYhFnlzyKR7LSwVXtZ69oh6Xif0wp4BYD8elxti8pdYBFCjiimz5UD2gmcBqLts0ny1WYOF-2eoiE-XPo5GkT1qb7e2897x35jH79BHng84cfbCyxzBY1cFGNhx2aQQKfQ0zcdHSB9Foh1h0Eopk4CCQr_431kf7OtS92k6pZCg0LsP4Vkbrdy0ynD1TTNv8UJtrOsn4EHpPmriZZyCsidUREHT6E7NKCivtrelnUaN4wHGwfP-Jjwev-DiKOqo3tFEiWj3aQjmlD8pMkokDVclAHV4nVEUGeJ1TpWRdOMvXfi50JBeuJD_qU8XQX4HhnW8fSq4fjTuo4ddkTUiIYPZX2eG1MjWVkWwoRfXjlvhRfm7A3kavulQWM4e3ay-_NgqFNaBFrM38RMfITdSLWA0onNYV319yRfXVr-GHOP_zkC4w2ajXj-Lyc6PzDAeJisoONOx5wrb0N2XVaX_k2B8txhZ70ebI6YNkAkLOeq4WwwALQbLvr5jW2SpBUFwc7b1prHuPgLqantmnQ_Ie2JKiHoQWS8UKtJUJMvjHqK_E9mC2Sv4tWmecSo7ewjREM0a-S1T5tY00cQbYoFDOGL3_oKNYsDJs19TSEw4OdLOd4YxmcfMdJvH56DGFZGHzm2h6butfy2AMWVFQq83ZDyyW86gOBTJ_v6Cd2-AcuqFDvGluqtTTIgkT3HB1BXrn72ZOz0hjYSa7k6_7qyYBRtn4U-NUi-NvHYC6Ppx89rBbXn7jLvlDgz2Vl4HhszghAKzcSXqH7o_EBHBEkxLMKTWAIXbRtLp4dUqWvOg9yKNVS65VBaQBBJKp3xJdwXYhYWEnQh4N2yanjH2ti741b20yd65HW1UTkt3xyFdyZkU5oCSU2GOuz0I9gzs81h_QJDkzo4i8Utzi6DOxVxFpcMeEA9E-B2F_TT7Iamgi1x2_9TOBhs80UVgUDQqE0C1dJtZPEHg-HK40Yes6E8-y_7imX9H7RaeZ_YSw5ERUYqryd1vNZNgeL6K4irWNaVgGyIWJo_DdHvJe-cMusRnF3mMpImLd3ym6oto8iKyv8VITzgwgaF1CTa_CHScdiVJPVC7OohNVq33ZZBjbYgl5AX8Oc4Bu7ITYLkP8RpjI5A_uaBBHujhsTrVlqbgwpK-j9-EfxJ7GlizXG0YTiSpT2AivESNyQYWWhubD3AZUV-E-j7vj-CV52yLTZvLwRqAKU5nEJb1HXl5cxFh3AQs-PX0rkpvhugP7UWA6J-kUbsN-GL5HyEraduXg5CoxiVlDKbjLam_NpPNkSenM1Bdh0nVaJKYOsTliNA2l_sZNy1TXV6AD2IfbUGB0_QXoO-1Q6amWVNl1tY2NExD5H53zTVG6rQYUDXSZc3CdwPye3DsHwJhWfYyXKxkb2KWvDsg7XRmsYVee5MH9TqBGYz6bkbD-QC0HqdCz2Rt0cRshZOQJdmvaW9V8leEBhH1e2XKirs4leMzJ---TsENgsDdzjhpINddSeCXr-IDiTYJ4SGLgf3aZ-JUdanUAgwUPTaKUEOFdADSgMvhOCsRve3TH8J0-Zp46MIa8kT241ti3XFQoqogGhG6XY_gmHuRdR-jcuekrpVgWe2I0NgQl0HS1hal8T77mxSgEEF4N6EIDbTIZPGfFROrlLQ3KBUF42XpINPjv6bSFVwvkIJcsmZUv7wQP0hQPd2rOUMaM0q9DIF5EGSKq62GcJ-RQY6ysmYCWnGJvlUUhsBDHQ8LU-uluIuKaeiOSXRmdLwWBnZwaqTmNcbtvU1ooXfp9d9pGYfsyUep0ykmMkMYcTPFoNt552IXMp0LL4HEz5mvC4Vj3duWKI1lc5H84JcnA5r6KkS8tJM1Fx-fdmeGrf5n67DrjqruQTUhbC3TIk8_hrIKXZ_dUnWAVeQIQpJU4s_TaUJfqZR_wiOzQmWQB1CwKUMeS8PWAMOHOauQqS5IDMKWo5DfRO0LTwLDeFtLqAXEBSyrHpU_1RRrbx6EYPFw3ZFHWQxyvdYTzrefvoMmFpBM12oFabRCOuFSr0roCfV3SZlo4IJGg8lPVx_JlnH49-0fXuQabpDRrrYDVvRgzvWbOzqr7VVPb81khnIgqPoaRA7b1NJUhVWug7TcEf1-Z10KFU5J0JcR81pfMAFjfTIbXu3RX0GaQLMCyD_lL9GezJdEx63ncvYfCmTmloRsfcnUpr9ad_GYH7aKoMOkCx5LW_SQCdNr4_C9bMI2YgF3LttOGPMzbPLeqFjmyvjc59shmHqSIfWOG1coLOrln-IWMZslThrGgZlhv7nG7tjSXVyIx8oW7GYTMsPKoBskYoS7TGwlEAR9bC4aARsFUmtUpj869Kx33lsKO2_g6eCRVs_PmWWC9Q1NIFLj8Fdh1KOuhqH0gl4NTyn-_q6OqTBpojq2Gp5l_cP_ovtjmRWJAozBfL5GQVRQFQ2biwbShf6OdIVtcZK9gW2yqQO0INP2C-yq9AMGXuWLrKgijv4RmzNEOOfNaB2SeS-2FQm7E-x47jq9MhoF6vxeg3mzmEOtBgq1mcCguRbzThgTDLK5i81k_udzM5fOf6aGIKu1_ITwguyBYQFXMZsbeWbpCWupKvtRAOINv9Au5k7zsTv7E3YsqehLG62tvRbLWHoYQS8Cm28Eke68RX2T07QY7hstPglmL8BiPpDUp9Edaqt4BqZAsSNJwYXLdUPUkdIiPJXgpQ2Ram0VLmGzyxEQrEYHAEPDmqcO2B4A7zbRCNJzu2pts0LuXFlS_DeLSHWhkV8AdpI_DJtBtMORaRgRJP1M9-KVUxNvBi0iaI-AI3JbRU2nMEwU36feciyfhVm-d9QKdwG8MwWjIL1Ev7zC8I66NDhNFnnG8yyoWSgChStHql2VGy9koxyUV7AA2cELrZCQaIlI5A1z-9r74op2bHIVNBfRHX8P_-RdKm9YN9ebsRC_1jspi0MfQB2FnHbzN7jvej5kE3oIb29e5Tbb822bkFLiDvUS1lR4FrdHdjqI7JGIXqHhtsoDAvYWm5xCofvVd6IPp95xx15kXp9pqQKbzqHLR_HQxntsNydCxlpr4-wPAAyAnBMSIRt5j6E6nR4HIxxBLiP98xL425LbuSyM-uB8ydZhWJ7xAKKifGjWlSMreFxhoM68v4CoZmb-bgnohrD2u0DvnGyHuvFXj07mlOU5-zJQRT0YmFOQdN1fb1om9CjDqTadCHMB1tAh6Ul7rTEUP-NGBYL7DfxQp_h9rwCL5NV-BXlNLR2jaQnjGvTeAXidvgpEJ6nlKLmMGGnN0l1I-yIEX4dNdW9Ul5b1Nr4cp2BlCZVONqJZI8LMXqwbKKY8XXpC87BauXtVoxyP2-pUSXBe2rGWI3ntTvhrkjTKZhHdk3KlaolNPkCxgVG0JzYvmuVo6TYFKVGJ3tnq3q2Zws11GAa4AIrS2ax8wyWF30fxTiQIp_YlSUzxE-55Wtr_y2_b0ozbp9cPZmcCD5GHVwpp6qWxTrOw-HtFpqndtAbV-ikAhWIn5MNmxiVWBrlhUCHjOYHKZb-sjPLt7MTje3_lP1VHV75Ahfkw91zz32zR0ZpKKbiucAJx_9aHOzWdYQLXI1wzcnSMylwAiiqw2T4bo64vaIn9gXJCEtVDke2rHjCe7Eul-ZGt-MOSGuzhhRqtZ47oH1tR9x1RehU26TGPG8XqmxkmOT_QTLgNdIoToILckdgXlccEDiUR7-HZvTGJahZsOZJKeiavwdlK88g0zdVty7plFhMsLj6K5aG3QbvXPOp59-dV1FljyzDIMZlXBYkpKsKGnnyes4C5LeIlK_xn-oXo5R5wwkansgcNXD3qxQJvYYbuMzljJbszvpdQt4Qj2ln7V_2MhhkUeTZPYKHa4XcO1_ztHsn6yXaFU4aBh-Am8hS4gsT33y4axx0cLKd8AZagzqKMV_Kn5ZyE7nNYqqtRTRAQ9_bynSdpC3rDr6KBh2QOvVZrOq5q4LXlaJONhnMZ7JmWiED60f0S3bBlAzjn17cuGhodLvV6tx4OGaaEOkejzAxsLT3bZph3Cyyird2llFt4MRFrfqbAq3OpGhAMfkTJvSw7SDN4KUVG0kHYpIaok8ve0gY5iEYiXGBf-qDECpUaSVRRyF5wi7O6aqOSFhfyTs9j6O6p64Q7QT4vS5a8HdvUM3YYEC0tBo3IQNCpBXhLyAaBP3wzuW5D_Nyl6XrsatYdW-17PWpdNCOVWtimnG5bWEsHAn55eEVom8LXCm8S7_Zfz96YHKjgym6ele2D8MqppMFFtFCvra1A2TAnbYmPgoR4cJ07cOBAvzY5sJS8K9gu0gC57WbaB8BTgTI7md4vOvhSvk0m453-2IsAeBP_XZGuc0Rbf3kzRE0erdpdQTezp_m9VJbBNuSundCwN0tTb_FGkYAHDY_BLIYYyWyX_mF5zM7QY2JvNgKuKyc7DIMFqxGqgNncjQKpa7nXGK9QFaywYkxvC2qt-MUWMqrrXdSvQD9m6KjgRMPQvHv_IRns73AVPWdn4J_oEvPO3sOcsCqRVz3dhCdM8hN_cXwse9XAEKSNm12pANLTPX9wgl3pmFVPGx0iXlfOKFdndoKewPbS8wXW62wxmTUDu6B9qjVSMoNgUgIXLnvZkXFIPRVUYz2ALlvjUswmIwPrbXwZAszqm-7ovaQE4SBjba2fcZZ5ESkgmxgdjhCEx_Lyg006SP9yN3_gkG-hjBXGR9_SNerGH--wmtA73cxkSBo695fpA4GX2D42_7uFo10N2LPVBwIyGAWifQ7uIBkA1r2A6_LvPiSxKhCH-Vm0FiGHu4bLNcbzVye772y1Zma05oN-kx51fOo8ePpjiuW8j-aWch_86Zb8ukvRPOSAhLKE0zmIkLo10oTMN5XttgQyzUk9oUdHVgiecYBai9jSqDf8iRoVQsV0A5gM8R2yOOh3dRahcBJGYhBBVALHD32flSb9WYIZhZ1PrrdZT2jf0bpboNc7z1xdPyZrG6YCoQKMT2KmsOS5P1Pf7OQBqt8ttYgI38JP0frSvNBdkloG7ygsoFujMNq6b5VDvmLXyeyrTxLfibhPxcqLt-A6si-Jljn4OGmOHiTSusJg0og9U5QEDCbdTvfFQIrGmWgzZQFg9Zk7Bk-r79fE9Zut2emRdmeIIfRY4EtXjd4JxUlsqMOBVJigdK8bhO0MlbAtA_sA5Wn6QI7HV2TAyAlOpiVuNfR-w11aDhq_XTr9kMe7JNO3Os4nNpAtDQ2xY-UwiCJa4y3hTEwPU8ewhdNwVzchtrcKphhIpPLR3BBh__KBqhI7V8WUEPdgQhvwmb-xn05UO-_x3JTU9r6elDBRwPit-6dJxDynRZ-MyZ4GMWcTWTQF000WOYonZ7uVzDk6NeHlTF_DOGKbMnzkJBw1YBBKM3JXihQM5qny52GuWOGPTroC1nTD0GFy_yB1cWTNzRg__2zrYAuzQvknFxRapijZ1W2hYQBtlYVKyARG2BCWS8wmDy9UARhIdn1m8Ypl4aEMmN-JirLNPu-ZzW_lFbS67A-UbpAtnARYtkCc4r7goeiGEo-iwakpEi0bD-k4tHLslaOdML0jDxYKw07YZMHkuWbcqu4zgFSx9PKlLCBvR1IV47U8hFSfCHyv99I5EIXCA1i04fqC2bfoI64os4idEo-1xIxmAMMqo45KuYs2K6Q5xE9KWIE87eseWFHoEpJ3ndHofW8gGmN3_Xwe5MHyfljLpguwYVTF_Qeu-h_eQV6HKySu3fZI5-NzvKUPMU6vrq_ILhkDAPMe6q0_gBXhE1gy-s6inMwy04ZpV4zf4VFHAu0wMlhrYUw_ZvNxmNKBd3A1YAXpHpPdaRMBl-COwf6Nv9z5-Vkq99lwHsK3eviBihMBAYeN2Yp3IcPBlY1pTkbAdA6sBo60QNr_NQlDLCI2ZFE2CBfTW_XhRc_TgI_S5jl2njHpZEHvet4B6OxVuGqOz84YSoRUKn8aP2_KXus-IjoKgDq3dMFHD0tNPNTNDOyX6AB-pxga3olwmWhCK9e-6oYtCtlfLWkVv3XL7BWpLvREi7zJj9xwT-rC3-GsT0gtV-drDIBe6PhTxqzbmJ_KIsyfCzCKiUrQTafuMM1jRTraZ1vbbOPI6fM8hBW6ClUc0yc1fmsQ_9SqfM-B1oYOB6Ryb5DCSkqGo7J1VePcm1JeciskqSxy7qTYaV6kikF3M-Q9L74yxKaanaLA2hjwtEx3_JtPRyN1XUSRHrHhpMhiCXiI9iopTRbYoR3IarjwbNoIGd_ZqatoOqCxS2Co41bUtixO2sBUJJWDu4m6VbN6MAZFtdd5eJsNGfLQ4hNXTpQHfGGnCuwqW52XgK9CIrCuEvk-vo0zGX1kkAmL6mSVonG8bzk0nWAdzmDnXxZHmc77kEAAXssjdIlrVjREmQJKp0agczcDoa9aydk572iP8BT-vbHLMAYy3K6piox7WUiRmmkKAmognr-hLYRjaCl61YmofQTRl-3mXSzvbjmQ0NSlWeHuprqHKIE1VMoDNrVnf7YGha7OZ8y8Cj9HfEm0MsdRfd5ZRcCDm8UGCIOW9nongQk7nfG_A5Tq4V2_VwxJ89ve2QcQxutBWk1QoWtxWy-DfkYBkdNjk6ET8cuqT-H7wvtoUJyoZiZTFFmvX33llDF7oW6j2Ej_0wGT3jk4Lwj9LFg8COGIKCsSOdfSBtv2iinpUuyEXXMdEtOep3TjhPT1r4s4kC-PfRkEyEpKAcA262ZGyOAHtZPMWv5DKg_VfAGgksDU0Fu23dhN5Qh7fCzRnA6rknSjnGn-5SIx-ufTAsVyEX9od-tKjmKRKInrurZorAgIrQODNJvj2-y8sPVuTh9cT_7CG6b1Qa94kcujWzQxdB5mSEYyH8SEakOPWEfsEsOfyc_jtYGA2i0sPlF2Waj5yceVsFjz-T3wxAgma2V_oqcfpqXrr6_aUGR6-5jZS_MotXMKkxoEJOQNn1VFz--fhnlp_DByy-nAYS6DhIWD9CjtaeJbuo_w59AQZD2pWu0g3P0huXc4u6NO4R49VPtaXBJMXVgleNzGZmMsetI6n1FVqp8Ovmxns2Zh0FMcU2D4Soxg_FZCbvKLRjFm5CeftCpKSvluZoDbEQKnm9-EiLJESiU26oPzNnrAMlp1e1-Z_Cp08hSVjdGELyipMHMJpXXxrpo79yo-CNroUbMlCb-2rUYMMiBgIV-nMTPmaBaxGgi6RGnTpIII1gPqbfPlEw160FOp2mESDlauYVv5YUF46V-Q9s9bkS7MFpJ0wx-0NVPPweA15MJJI01gbdFVoKtbRCyALp-IEokMBNk7zm156Fze4J-aNLY7BqdMJ8OSrKHp5bAsZbu17kXP73uqi4j16Y3aYcVKXjg2IyRMc87Xs49K17-4SAuLGRB-dh0mWT8gn-UZ-8Bp69oh270jlGovt6xEa-5ftveJpdwiOhNqZ7msGEeOnI1i0a55H73-tAC74dbYpTC3n_Yoj1NmVe8uNjK7_mO0xeSEHX5VkJAvHCYK9RQ4xijXgu8FLaGe4xzdx8aqdWM6sOKJniLzGhqJeGBngSsEsYz5J7NHAbMDi0gjoMnJyno-qFrWSg8XAU3BmHeelSkePNbbVI1Xb7zW44QpIN1MNrYofTg4fasVBdGZJ2LeaYK8GII70I5pMynDJ7jSHgMG5-F7WIVmT8avQ-F12BAbBtz_lRq7pvERYTHmQlhAetYZ5H1GKLTkfbAbfNXr6fu32O1hWXXMZHuixJsk3lyJEiSgPHInsLZugBHMOBohlm-a3Vw8AU-TacpM_0BbWDDjuv5bymvNof4sPRs3jbtM0rKW7dW2LLjRjc_R_cpPbtQXStsIYIsnxosgSHq8VaGxmmE_kR0icHOqRCOOfO2DrYhPm53wn5URqY4pwaUhu1ny-6pzdqe6ousDBf1LON3a7GUUyxxsIETmDoqTmxUCxV7D6wYs6ffhoUc47HBhx6RtCIPUgD0FOBWinM-6ZCVF4O_gUN4SEjeQaPAWhg8S6Zk0DQQNeDLsOVTZ0sa-YO06hh4kBMfTvO8pXZIzA0eOiIJ7_xNcTlv6IW6YVra2bGtU8OEoBWagxhL_oiuPQPQD6aLtEJYsA1vGaGan3iDQrRzY4iOEGJHD-78Cl18N3a3b4f7ulctpsgSWNB58a2AOfdOoaG69ePpjNOWcIm7XbpawPIm_Icwci7zBCATQ4CFUZ4fhXkfyLa5UQ4ZJNn1cwQQzh-j3rbprc5niq2UExrPjqKO0je-8kVVZ_YgE0Vw7kIcDmioIjoEn_Uuen1d40m6AlR5jMXRuJHSfQoIuxmgfylT2dlSrZg4qVWfiNWV__h4wUp3d_ZDfQjD69lwRMzb-DVd5uMTpWB8B0Xd7vlIJFqCd_iyYm6qL5_LUldA0o5_Army7McMLMPan0JyGzdTZwdJiZMdTqd2CD__5hN1kA5u7KaRyCrOv-uXsQWX35lughtYDAfM6bPOgjfhE7AVfwXwmEGJQTIifCtYqimzYFgIRpkStd_AbPFjYkMp51ZCCHugJKxhvwyjX-Q3P3QInYwK82ZlNhJK7EdAnKOCMO41PG6NJvAC-njOKOib4QW_QA7sPvmkgQMnemKM6drToH-MnRdTAuzF3wSaamxZRLzKMMMZlRWMqFsNUzvC2THZwDry3UZ9oLfDkUjikj29iYkiYaV4Q4vfh9ZMB64Vk5egajqUGq23OyvNhNm_SA8foKM823hnDjrdr8UHtpfj1DIj9UFwJHDrZzkMgWa_n5HUzb_VDQrFh93SSgj3sJN956ABbR8BXTfaFkWGC6iIugKDxPvX2GTFMa8yP2qO5Fcoo6p5-KVszAjWkpvS3pFo1_yRoKw18hxMd1miU5SdNz2Zsd_x9GoxGyafC1H3_wMjBNAbkiViHJ-xJXzVh9n9LYnYOx1swI_aauUV0bX-qkWYGK4MEdbVe6AhTCcNp5Z1bm9XHjkO19GjGkJ1gwjvDXEJVtyomq9WREzMrrz-n6T3DjZExhSxgBp2WwWid_-bQir2SJlrzDw5mUUo0o7wQGZx21TD11W71xRXvN83lRu6NXzsISaSU1Kz4EbZSSA8MvGzQMONGNL-e_oMdvX-y2S2GGqYCG0hkj9XcUDCGuVTBG5O4Sl53QqdHDMNbeXyeSeXAugC1GfyStHquu57UcZyT1SEId0SCEa4grbEZhQ-w0bPl95FIV8vJ4sNTbxE22AX2hRdxf_S3NYBUPyzAHSW3Hc9OgaMrOLWx_2Y1y0btmnjBzMqAhBNUgp_J79wXM040T5v09OL1_06eDxwp1aDSvfcbZvVvEXrtiS_o3lk_TjgBy6j0lhXYfEC0fTCZEuMlBwIYUBDBWHL_-4R1yXiLmEq4ktAxGvkW1FzELgnVgZ_vf6Xca5aavCfcI2W6bdGJPEUjrNXOtYRPWKMXM-V6aHTRuUi9EK9x8ezPHaU1uoCWnjAlYQDnGywQEvso0aDH61SZR8g8z1SBsssGYbhdi6cJpFTZvZcOY5rP1L-EYS7NrC2JcZbYOxZja_NdRd-qZjMcbAUgVdjjZ18aiP7yY-qq9t3elkW9lQkLzhIuI5uT5WqA7ucjXwElKDgJQjp_J7D8-1Ed8B_2dtApqBCGsmzcSpem8gvsesgN68pTw8KDvE0MODdbu0do7_7Hqtf9wE29ZPbx8EquRAKPLjrRw-XbAaQ9LGvlN5LEHbTak-MEhtU3Hkq9D2fRmyY4kBNJ0e6jfsk0dNehplg2APiWB0vohV2SiNL47OSw3tKRSJXeXOnunBPRou2hj6HPuqhOq-G4s81DJzKySKZw1bVpwI1CUUVqYI9ntPtE5-fYJ4M6UaeLi8W_8qfIFIWwx2ep82w2B7dKRaGruE_yCjvbFqzphm-dct7FETuBEHDnjcyz5MbZDEdWU04UrkKEh7aWTT4nneVYdZrOuV0xEwkcufV8UkCgozW2ao8gNDHZW8n1gZ2pbfUAZp4od5-hRvXJB6KCs6mItSSgN0aVb1Xm_oPijidfn0agqxv2et2gHql0ojSEcp_-sCN6-_Qrh7Otz53yDLm7qFhEjsmURwySXG4S07LXdJCdJyzMAmZ09VhH81NxDJmZLwCI1uTyuIuz-cMtpHcsI-EDPNfavSxJ-34tTJ9x0LOY9s_35D5THo3ImxkGhjqCz83kiiwLb9tPL0Oxcj7oniIJLKZcOiGVInvVOWutxzBqoIi-cNawP2jIHW3q5wtx8BoIeEk16WgC72oV38Bf0c1Xiz-l_Z_JRDenFmGVx0lmUp_R35OqxWWqVD0Wo607A29NErrXYlIX5HM4-9n-0yfo60mdzg67LijJc85x0AIfg4wUm5zZBmVDqjAnDqO2XYej6lOEo9Gos12nkRo2uFOPlWs2-hr0lJXyZH-DSYuQPPWqIOfbAWBRp261IvsHAXpKoqawDOBbIks4qXBjl7q46uf8HuMzxqFFDgJk7v5BF-DGYQwrYxlYyl0GHdS6QGYxLaQ6MLp0CqUmleIoP2TS1rP0notoepcvFG7PjTHIKPFLYdrNWquHXGfhdP5XAtxR1BDE0Ch65bmZ4nBbnjF0EYEmUQoxaJGrrMcun_ZJD-UUvRqqlzZJTIDgceMHw4cGz9u7oWohYdmLh-YDwb-vyMsiFSYjv5_pplTwPL0S8Z1-JUXz1P7uz-B6vuRltk7Isz7FlbJti89NtC2SIFblc9_DWBphmJIx2nlxS8Ps7CoVNBtX4ti9kwbYOoYtIBNiJPgfaXieGujc0qm_Dut35sy46guFSMz5fRCghVKeKvjOWm-EeF6u6cyfhpzHi2KRVwyrxq2-Sfn4QYpDBqtqHsaR2eDj8G19aW65YmyL1yIbfwe2Ca1oGp7Slerd7K6lJDQCnD4OgvU0lqNBIg-FsJOcEs0Tfv4PGH-6fCtzqfoxx1l60P3x3K1gW4zJl-OXSb-n9h9pOvHxULC9HnQVQ9C4_-i4t3-lMSb7ARueFIBH9Z50InklursMtSrca-z8_eTyRX-SehkZrjPV9Ml3zFlCENwVAvQabQv5B4-3qZQEvtMwjwtS-aYFYhAi2Ju1ywE2rtcN-5ApAlDZkh7C2juOvnNOxC-Lzb-Gka5VLhz1DulnK5o0sLx6PAMwzvlKAVmQ4c1Ac3AthyUWGDvQ5_E_g9fkJy8q7JPOFCOg3qqDILw-JBw-kesb3JKujlqGzuiNtJ1hL5IbA3q4BGyseTWAzCGGUWE0o7H4kZzzaSKM8xEtIjb7b_E_Wzmo5SuiRLzoHads2G7i9Gxf9Rt37wfhD4oQ1_WBa6Zo1KeQJzK1imSniE2RbS9lAsAfX3YP6jWWFEQgL9eXjgjiGiq0xa2zT9Kw48qnW6IY9F4SA_CpMkm5gmpeyUqAty0PS7BZ11iGmv-pku-zfFyb2a1uQ582Ld20We30vj0JLsezD_ssoBq-H7A1WY4iyQKDqqph6EvjZIVnrAOOM3Tq-FaaJtrKQALbbsk3OAWe354iNFddojEtXpPdkFZYAJrvLGZaOb59HlF2jpuD0EN4fIqM1YLe-ypM-vWXh9aybm4dGZf6X4vplZgCOFeZweZoOKsh0gA6S8OJmGcaOktrx9biddpiLSxSohpy28-J8Nu71zBmX5Ur8Gi_yA7bHSFWrQuUBCf9joA6uBqdeRqvJRmqqkAvJRt62pyg4QTWIi4mGRJ3YM4kIN0r-CETNsRz08JoQuPHY7hOPyTVb1mDqO0wZK09PM20l48OB_HGi6WJNDal3C4IVk5dRxvEnOHdrpBPBxJx4I48sQq3zEi_wBhfW2wyJiByv1L9dO8pJvUXjX1pSBsFkHfQ8J8svFJUm9ZDZx-1yfGja43Khdfntimn92GOdMdk4XFK8sI1KpCVCVEkvgxTyeZhXO6H_fwtP1rODd1_h_tcqmsRvN8xOtDolcMP3q19adqws16-S3liTfp9LIn8aQ76v_cYv56-oxBo6W7IivrbUMx3IkK1ngCGdlVJ_qpjLEWgjpU4dJ9koKE_svOU37cqcqsCHUNX8x7xNwrzgLAUAlRuKcstgOuk9iGzQiXpj8zYMIYbW8kt81aqZCLHuSIYpi9cRuox5tvxtORcHKhi-H0FcMbTMIpBhXTmMsWhlPSwb21ygj1Rqdbsdzc6hmpZ3UoSYMjwkDtqYEe6E5r1715ba0fQ8eHXUoX4PT_40_Jq1RyB9lS8SWIBWkK8Wk0Vjc5tm3Tf1_XThqdhLZemdFKYnIzISg6mdVl1EgCL7npZS-H4b1zDCFUSAc69iLpVAyDvAND2_KATws90bfBCDL0aBZcdGS2iVdhKbKmFfOzqHvXcV6obAwee0C_nsPcAV79sbqE0x2KsEk1669TNwx88mFjdJt_iU5ROTGtaVqeBzRSxoKtFaLOTaH14YJ0bTF0tZm0mjBE_OKHl3I9Cy8LvJLIantmFI0lp61L1xV1ytnIv9AD4fXN2Zg4G6AhH8QuwRRd4pmtZGbHVAT1Mk6uCazOOI_2DwmAomuxFg8QqZbjUwP_PwPcPx9nJJJgVbJwD7Q499Lr9sVilwZadnBZUnkcu57m4oGOg1dC6BxlVFyql-QpRfHUPFwh3_ujJaIHSpvyg-Hjn_iAk7JWQmb-Ae16gsG4PjnM6MKCp40oDroVPsUlZ5JknzcPaq3Swer4mq-3RbSnaNC7dPIvPNUXqgFo1ZOajhFec1X_hWoNoaDJ8vjko-GTT_XRfHerjegUcDF1EP4mlqjgyqjWZmBreav0scV0xDr8TuFk75ADRknuL-CEKgsB6A6Zw9-PXZXaHZP9huc2_4ro2RCUnIvPNUQAfHagD4PqjO0qTWQE_b8nuzvQVuZ7Q7BZczK5hkaYxbRdvMoj2sKAYqe-fMXGe6W2BEuYAX-WvX-xpO0LBJTcKWkDEK-ctBhx8WmWWHOZV7ycH8o9u6H6TdMTOtUdEc8yA_zYjGcWV77a83hYBbFsblybTq5YLxXBu59jw7rl5dr7rXGfjV6p5DrTPomm5bOyD0-xNmFp3DbIPK6O2dUxq8amgq6QAflQPsdUSvlSczj7me0h53-IQe79FLn8BT7xJvLQrGwmpzsf7SdtsBR_af6ex1p8pLJWnbJAMyC5NUMQt7pyKaPrDGfD1i20XS9Wq0Ag6fLHPl15HRUtTnwHFCaZhSz206-ru-AnbVXPuNtqPgKClZWUi4o7gwU7JK5NsCnSxSeMucwTMmOtyGgkix1FPf-9LukPeagkITjz8vwdtmIkV83Sokekcmwv9IIcjDk92aN1O4b9TdxoQbLzIv-yzr6Ik7ocVH5hwMpzzdT2xfxCt-itoxp0d6p4Cc8wCm0LRpiR-BVe0dGT_X0ziPtxkxFWjsiop6vsz3u-w_Xe5pdBH66IVNeFH2oB48BWsEjEBSVqJDD1YytD39Bpf5GIGMC0aqOuPz_DB700JDnVsexNTbonLmYgiZJFs9k9kq8e6r05yNeDGpgroQxkKD3RkJFuZ4U2MW3tDfv4DT76YkcXYWVevg8aDS0O0mxbO8A2Cudlq-wyIyYc8hXsOOBYoo5sFf07aNxjd8Faydsg1gE-MMn2dYL9kb8E_SG4yvo6xKqZZR2SR4gSGcB2bINNMhFc10qieSkiMighUwCnH5WrDcw4lmn98ySNvaDWq6N8X6cBThPKV9OOZJSE_-T7AcptBaU7TTd1Ww_32OMF6nz79JN-Q5JzIT2_YusCkryVh6AN_Z3H-j7nU9Dnbf8McD50qpYB_fLCQeWqKc3ApvlFp8R0h6sufRO4Eql0QYNlZV1rcvy2GqGp4u4OJ0oFhWegB8kJN29dAdr8KI1n_wnehjtGsN_qxrTxGmd6y-Xys4OEQQRrM52B04cT6c-RGqdp91m_EHiYm2Wb1rAzSfVBPKmOgvEmUyGsE8ymao-9_qnoV1lol3o_DkjrjQCSnHostkOoS59jl_1ZU3LreWbXXI3DNFwUKPrPeUYhIilyZcHIT4J87X8bngrt_ULSzs3I5E611L6oPHZ7-Y43DdeMdP60aQkzlIQPtDyZujbLYzX2ryJKYIMv0GAXyDLNeW-SBAc7Nub0extZOv9rK0ecvIyjXz_hobsMXT4rqVdWKxo3fjQahtdCdu0ji-XIbd9tbfYKg_s6GC0VYMn5r4qymxPFXZlM7ClVGXzfJ-zbhhXiMqq04zNTnZRCIktsD18tIEVka_PyEDSd3zJ0woiJGeCWslpmy9n2Cfz3DqLFhqJ5Xmx5E7heqfVao1j3bcQtqySIz8e2F01rYAPK-KS2GCxhwh3zRBbF0CsfQp2TXl_R1xVjbUpR9Qz5tdHXwLiO-zWeY-lszL3iJqGvseBqa2HPJDkE9TwG4X59ayUcZU3zdLtMnIRPnXV-dbcvYx7FMejpOLJDRpmxsFS6fGwj9j5wgiHek-3kuqrCd_Zvc35S3kf2koIoecnMGwVPn_4YQoQ_co1h2KQ6H_tDciQ-THeyEUAzRMNNfXWe-iUMNpbtz83-eKZhQd97RyFb7bPSpsuhWz62LJ9Ns5jrZH9IMV4mrkw77tYL1fLUPoy_LleIEYyVLKsdsmjq2Le9SUy2BmdRBllB6gh3YdIxsUp8h-WOjwNEyR7LbrihE8zKS9nLqR5_bmskJaYLNTV7XtzKzr6K2BMQ2lzqlL52a2jTWrKCOFbb_RE_-1hZ_gQmV9nYMAQtKVmUjm8L5FRFDH9j_HSF-U-Cy-JW5keqhvo10egDKRhQBy-nV9-icEO41pYy_bxh29kxi26SEwlmsOZtuXSxzzEjL7VlVPCtU4rJ5tuhqswrRuoLGxmWrcLCI0-P7G0LkurYN7kRjNZhxqsjEYgsug96J8BO3Kao-Kuhy_7SREHcDbvS-dbzYYZD3-AhKwX5mx7o3ZPVvncLjkYUVzKfUCVJMc4eoGtq2fJG2Ne_52hTFSqgr-vU02dly3JWD3b2xvnpNie7LL7tTbmgRu5wqOSoReLioJHo5Iuo0z3WH-6vD8Gn06EFjc6BKWmYsF7SQjd9wCUbGI2BYoe1Cl1x4epeybix70TvlTYAcQhOim4iiStfA1Zc62VQ2cYgg_K-ALs_fcGpWoEWZponR-MLpuGDhG9NdtsgoSkfG9N5M6O7UGuDdailGqrKUmlSOGQuH4BovRL_-jmP8ASNioSdhNZBFUZT15jOvPvFrA2WCnIAXJ69mxMf9nqLY7nBZDmJlax_QO-0uEdqmSIEY4SPDUIfKm8fusKWZ-4nz-u9c3IL8VdOpFnGpd_eY8o4O5wcaS3EiMNeYhRJK63p0uG9-WebrqHwqSgc2lTjd0B9h7a-6HiOZolcAF4bb3HefKrAm3zFlcM6JmbRSjqJMbZc7RNY6yM2u0G43WM4hW0lBrAboUifj2irCaCFnETy6hqgevR_Ev9_1XtdjqOemMsxZg6LJtjjwtgzXwUO8NTGwkhelbKd1UHaAzRjTpofkfu3-_MWTgqRLq2g86VSlAZ4AXKyPg72LYJGY2GbbFRINMPntS4fkg__iXNO4P2aDAFEwgnZq4x5YfgcrmLAZcO0gP1ATpnYuz9-fxkcMBKLuORTfv3DP2bHt8xiV43M3S5vIFhM_mpcGED4qLVhQL54TLv5u1OCzguaM5g-c9IXTRA_2Qw4kqxRFEgadLe9FiZrMuS63s2LuG06DGmYexx0QZ-snnG5bP8CvMDrTHuHM-tQWhZKeod_2QK-f-VS6f6JeGrFUBE4J7T7d01Dvwe0vQs6AfE4eWuk4KFk-tE0FlUmDdajXvRCOwuDt7CEki4rTXHBWxS9owR7RTPCQL4e2h6pYQTbvS9rYSa1LX4VSMSPFy3ENngYVMwW46CuUkCsfpBfQLkf0-xL7YsRvUosCTfaQwupR03fPsnhoCgbi30mXWCcDrRh9qDQmonv2h-dFfS0_Gps4XrcCyyG-xhS8Df9YuyNh7lwrMQSeghvRXk7gnLr5e4VBVHFpqzA4ygFWYnRqt7Op574A17ZGc5-IZu9WOM-LWdcXea2uEigX3A9wm32kbNhmFdHRByXaBBWRIrumLeHCz-qWCYD2jjZczcERtLewbvirhJ4vmr0kp5Q60GNRO9Ca7P6GAGZsd7T1QYudhui-D7SZcqwfru23VlL2lbPpjaEhVwer_StDu_RhposUpXlcHy2jjOLZ4NSCdoGaymnC7OsCtHbCJMdBgspCe2Ql0aMD_4WJJCMDd9jtwh9NtV1t8job58ivUOHVLCBG9MclhOwDAjR1zBo1vmEUAr-TC73Xrfd5rpzNIhsO5OnfxIhDn8qv_w_AfYS3WXLlf2xoquIm3JSfK08T33rCoiCN6gzoj2KJWSuUaUv7kKILlr7sETfsVTTfHaFijYGfadvXbrewL0Ht1GZrdndqL11cDclvmhIsXbj9OQC6gechw7607H64IOI9ZO6QeuKIL3aCLs5dUtClD9jTkjqYu0gVHDVT2w7FdVi1qp3ohkDVuhynIC1NOvmXekyOEZGjYWPyLyCVrI_8X6ogS9dHQaK-VVFE-rcJZIvp7RUvZ7w-oKiJ6Wr-5-auPDsxiE21uHIhEu7VhAwKenZPd3nKozN6PhhAA3WklazcUqiVNus3wR6MO2IE1v_kAZ720ar6_XPbTWK53qZZNF_LaGxe9k8-B3GZebhCfx4wfCJcxIrTdUZJdF42IaawO7VIOMOX_r2q7BjKQLA1Ak0OKnKRQk3gbkTYiMxh1ayqc4fk0jVjqJgjEJPXGGsz9NledE57VjbL07Od7ZuirS9_-6TzaYlrQJlRqigc3zBxZV0JAECyaoPQedOR2u9o-D5ps-5kPXcJOekItF4cebT-gKDWZGnGgHMFBLp2RN9wRzEGrWG8s4EHkpAyYUe9rm9Sqxikt88Z8mciU3_tkeVJkcCRalDro-ydkiLT-LNzX3h30bLTSw8P-wGOQ0IMc2oDOLHfKKDLfod1TR9TsUM_Z5g4v-lpRG8MgMiMcq8axsZgwFda-810kBn09c1Yj4xrdBzfzNwpRkjFkEsVQ01BQmKnmqLlafRa0pwkmbYzVxx_hDq00t3pwAIJxI78JPCPgHJYLAihqk71C5X490apSywPT3Pqtleq3CUyCze1TTlMBR7atNgn27V8jk7V85Okwc-b37IlyL-ZUSLhdgfQOqXI0JWKD0KgIp0jXvwCWMJwXK5Zw65vmBYfwJulEaaWohYHkIROdVNnj80qqYLGMIJscxkTCJWLKeRCd7e5YYJcnzyzAnfOk2ZO7xraos_SJYSZBCkCvMqnp9HW3J0xZ-S6FN-MG0KuKrc2XTsv4x95EdvcgmgYjwHfrVrDo8H-xxC573u5RsG2dxH8rgehvJzbWIvRYJNyzUocavRz0JXYjJ9ldsUMWO96GCzILyBalvr3gRF4_zoJfD3dSpWgugMWOBZEa96Fs7I6b3sYJvTRNu8uRr5NsMFV89YhMB7tBOamzj0g1jC81001dNUhc668ObQYCjs0FqeRcaovkxTieg3cP0m3PXMhl9gyDhLxTu40gwA6Sgc8cb6DJdqyC9BuXKt8l45mNfRFVdzzSEVN-8jdz1CHsO-FSFooMEFYUR2K0oZx_vv1xkxmdArAhydI61_vDFiJN8YSsD6S_ovKPscbt5TJ33SMfdBFZQ2HahJiUouEOl5jmujfHGnJ1n9kYG2o53sfMwiEEyihTfeImuYWRhc00-ocYQi23YYD_G5NP5QReA7seTbQ_h-UvWsy1WEkU6rRwMuyxcyjLlBxKWIFpTQM6sdlIpUbc2NXIMNDWln_l0Uq3eknoYV5_RczikYhcm8_kMs-ko09u5ucvta8ZLNO6zUlmoem1BG3pbatfMW61l4IqMDVkpqu1iGd5wknsvficYYNIoaMt2qmk1gIOX-9aI7kfOYpcc_ygqagXLV1P_Fk6fALD5BsO_KuaOEqZo1cEa2u-KOjDDLHnB3MqeEsopq62qLYopUkfITR7p8LUTPMYSS3G1G9vg6y1p6e2eXiXIoJtMreY--CCuO_jWHF5toCUN2Dmqw2DREP5k9kHOB64RSMfHezPCwg37khFWz4XY3NdR5RExgY7FO4AAh7TvUjQbcgC7WuL3YLRz3KhD4Ysq40i4S-kAPCZypuywLGhvXLqLEPrTvJJgFSvUEl9Y58euGITU8CtxlD4civlg48Hn8tVRokH166U4j8EDIN9MhP6Jbl3IxR7VUtUydkoBu3dTR5mzyStYEfyDqta7X5oh0m_esgGFnTsjCqDDT5-f7oE6mDuyDWfkBQroTjfhXAoe00Bm8pwVR_oN2btOfKw6I961nQHX6JCigJw6cJEJemm1y22IjecQ5be3z6TyUzjRum7bu136S1t_knhGwlvR01oh2s1HcGwxQsgaXkM1k3KuseD959YAHOm1WcOdlkUI5iitfEDwKPPGeCQ0gxuECwccD3bR0hXBYNVGpR0JpjofInmBTJEwo2JjAlwNu6mC-KQ1Bi-kLP_j3eX9DQ0H7PnAb-gjR-ClaeMadawiBwlaoTBOjRgOav9x9qaczFb24e-euSSNSiZdHKyae1-MtqJTMiWBXG7msf6ZfGEwiceSnqKeF7uOJUlJi6yruKFzPHT2-wtNLa6GSMVI92IJAAJd4GcTrrwZFYA4GTqLSoJ5yZlDT4TztjI8Rp-BrM9F_OERaF_tti3JiRwVtTPqtMqmrNw2WNJJyGUA8vhTkNCsAoWbPEOLFSqA-obaxm8un36X4ajioaJBTTiiJA_HG3GIDZdI6Jp7m3GN8TJ-gpJP6ABLyWnNKaf02yJyPdSCMG5PeqgjN8S647RnW7sL3eMeD0XNGLW_L5YyjJFMNwN2bbP6wGVn3ttTFXcalben-_Ozdql-Fq2flzAo6S7z-BfrQvvFXCjW3bMFPCa7A9TPBp8OcZvOGOTZ0ixcgOQsW564MY0zGjIZbcPCmssHSrSXN_CJ4iE4eynmNbr423E1A-mepwIkKqZAxhVV6wKg_3ljI-P64-nAjXCu9kPKz_GHEUUyX02-9Cb99bRGa0HIzhKBwClxeBqBKs8upCowfQCzqWIXqqp0RqNIounivrqVQYmAmiZ2bevcJIrj5o_VSz1sogd7_idvnMKP7YN6iCa5eSLqO2HumIifaFRga_LoOpSYtElPukOAfVNEywfm9PwixciAFxRlUN-63mEjPieEOra1PL5gDSBq42veEnxEP9DZA5eWnt6Urz1UXLmNBsSUI2FjjRrkZHa9OVYfQG6gGJrqHcrCaMcr6LIV9rqZzky1ID-Qd2VRrX9KwSm3t5uMF0GExIKEuOaWHLUqrFxloJW0FpHyCcgMYTq15R6Osmpa77Ir28pZP1aTQkZwh2RnEPVaCN5MvVzQzUL2zgv-Tv2qrgG7iVkVMnq7YAtUX__uMwtIVE5w_ATsQsENsiw_n4cCXXs7Httnp-9mKqs7Cp9G6_99CtBm2NwyRO0FXoSvttme6fW_ThJhyl9BpN12IZZ47qP1essGD_R9sVAa0obQZ7Rx6d5KIwOulzcSrD0rNTCiKEamUrMaIIP4usVxk2C2jmQbWbh1MgLl8k8lsPp9zoYdymjth-KTduz2MiNhp7xmx_fdxBLjrylZ61Ems5pOtPc3660LxxmzQFTQdn89iUeK8ZHy2IjC2SvFtb6uu7MAVmziS4lCPvuXgwdEV9p_0tlJIIr2PnYLrP6bx0eW2U-iYW34QIJ_LIQHHkR7q3adjNhjf3gkXdbD07Qx4i3f_wp11c0T8V5ADW7J5R8otzvG53Afn5R7FCH5jmJfhG_jHxo5VzrQIFxfjKd3_yaiShaDreZd3uCEtGUkCeZKMRqxK22EFdW2yNZ-GQqlqbfahP6hvpRm8US7Ab80UIEg2j-68AgKbQIKkZqJj73AWBCdfL517J4Neq8T6NHmzyPjRLRTQuHGgY7QjzqaVhB7eqg1TM-15lZfzovlvmXqj2ajOuNzt9ayut4eyE-MyOYWfUaEXDN22oi0B4iD8R9yyDTsZ1OBaf1MxfHlSu4zU4DgfdqkXDY0U3YRxIbSTPzOVN8EwFxBCEPLg6lL95-vLiWQCgDhJ-CC_CviuGZeSdUJCLwamQxzBc4KD9BIMcbFq9FqAuF_IZ9LdF2yFuGUR_tDXih6j_FIWv87ME7PR4F4-vcl11HhKpRkfFHDJ_Ko7m-MQ-M1wa32WbKr7FRHhU6UNieq-_eGie1slamsuFSX3K26KOCSPk4zWPTk3QjuI9QWb-GcO-GGQ_PX-Kp588kExclpyL94Sax9_4k9T7xZmd-yh-iXEdyEkTq9KxZNxiHPUSm7EdvFzHqeXxAskxay_RvG_0dA0GJ6xIUUIJpf1UNRE0fpgEHIk_KZun_dvu-1PbWWQsnuuVNFe1xhowNHxt0uIKPZjyg_IKgQeu6cJRGJrTJAixaakAJpbSBQZj3hsEY8vKRSPKU_2b5Hc0vg5euRtNUgbBBclCvD-f7qLCKFREz8P7GMGemyICg6m4XAsmup4R_xwLAGG1smA8FaCcEbjWPf4eWHDw6NUhLAYHW1MDB_p9DvlBMwrRYAVCUgPr5FduMwE3cCK18kJAD9IngRkaB2vXq3Q09W6INmA--TcbVk5HpTMHCXAegJBBaVLJl2ZySN1MDat74eHJWYy9ZLamZ_cPIGZj2it5bnVVyBmjBQv_1wf1SYdh-vFTZXpxztQR_v2zo11T3zn1rq9d1-46wIpystsKL4R5zj0aKev-42RSvWOltI-XvFwrcSUZsn_f-ddC90E33ucQubcMGTnEsm7BrQYxktMNDqkT-YlOcaHS3BsNIaVsdsAZw-03CginZiWD9N6JkgU9xyETHJx39e7VXooShtDsP-BXsZWYQ4f_qSFOhbkhKiChYSAUvByBkgiGo7LYHZrkBkDntpGPhdE7NJk5lugTK2hfZC7KDpcM7fN7npqfdiTBlPzXE8p1mtCUkSEuVmmD_l1_58dX53eAW5qAk21Ev-xOQkgmBEdLnyVje4m2lkDmJIfo6U6Mn1QplTtmTZy-7gHND2jf1HQ-OtQrmwNfgNno-f-OS69mizyl_Yngy5a8CY-OTsQBnN5YO-9fZ14xFuz8O8volHK4OYl7kUejQxcXTVI4F996M_b2TuetoKaKwLiFZrTqJQ-uxdZ2PC06Ncm9sM9zZUxZyRGy9pzn1-cjEDdh0XK0YPpyzrvWEWxIvzNzlDKtFhhYfbDQ3cptIpIi66YgP4ogkgiVfz5h_PNZPZ0WZmWG60Yu0dMe91BcDoKctGxaTqfIiYlFriITWR3nnhZdTWAPWS3d5S-F0iADKNKTBslofIh2cC1pZ9nmFIXlxov-PwmYyo9QG9I5P1xdwZIeZKIgz054tvPqzekXV4rBsiQNRwqFiHT6m6-qVVY1cCoP30kdBx1xRPXrm9sR3jABHB-ZpHJOp22TSZ6aupQAXFyb-LBrjt0t3ypnofSVR6RQpetUOkFjJsqvZAkj7GsUJfPXg24xJqbM61BWpGDQWn7VdU_YzYU_Lh7R4PRSPOKTLDKttWEnbOhfxDsl8enyR8M9MsJwbAGP0881KdWU4VnAynMtSMozVm2I0gPLtNfRKGlbDH8kHVfL9Z_PlD5ScKbiUMaJ04cBSzewWaQm_kM1Sq2Cn1qyKUES-YqAwTphw-xN6ZsetAjflyrd_VgcZEh6vsqlIREqYZAkn6mFqtGSTsUTxYul4HvfRG23iKTkM-YvawrrO19-d-7xoMd66MrBKG6VT3FO6m_c5qAc49rZs180dkJpp-9K1rZezwHPt8r1b4pgQNPy4NXk2kIQSk6KtpuppYSEzkPFyOOnLgoja5KrKRDtMgR04wt4uQZR16w5BZHVk4UFOZ3EztR7VyVL0grBtZTxEFfP5MBzB1Ln61drPgjd551-oOkcED7wqVENrb53qGoNR_3N8NXJv3EwZwhaeGkKyOjp48kVzNQKhKAQMx8KJ-GA8r4DK8vp9Y4sbRdmrqN0srGfe1RhlAibPTVotop7KaEMX8xB-YqU3017uMelmT_aU2XzqvnWxVFwCMId5fzklYSh0-fAXAnBolrYaIyZtIwxGm3LvrZ69Iag0B8-rrsGUWxiERsjBqZzZ9uu_IG_MrJEQ7_HJRifrVQnlp8JsduERibi3funiJnLoNA8SNeZmgjVB4npZWMBog6GHvD0XUNxy9dpBFxdzGWmmcFqrGuyjkErSTVoDJUPQGJCvMI8cASMYZ663eZV3tDvf_RMmRbXUYw4bY3bcN3AMBJR1VY2COZY_-PUAWi0awGkM2mIH2JL9YwiSYYTITKk-tkOE0L3d1lJOhQuABEfz0r_h48uU0bEPqB-IDnMqGIp-69pI1o6Tuz4z4wWXWMJKBJ6897Z5rI2Cs2d3uzzCpJfFAqphXUvGxsnyefARV5Jna-1C4bfLEve0XdTpEO9-e-6KlsNE_XhX9mBwg696K6uMSUzaPoM2eoZg5vkx0cdtqdGJTuhpYRlMl8G06F61mXm-kfBYkFJZ-euUXRmOGfN8lPxplqmUogbafaYGG8w1n6yNzDCRxqzxImopBrYIactYQvhhVbHvqnonRgnURzmqhlBRosC0aNzENCqymo-Z5I9HFKdNJx1SQ1uo8pB728VXyK7AWeaaBKElVXj4009C9w6bluKSHZwu6b5EH4O5rTh5HNVAzxL-gSnq2_kb3k79676W6l6Qbz1r2-X10PY7WtxRzIl82VGjlIBIHSHDCt751zbzgxhCyaTUEmnZuWYv9s0zMMHgQR22zJGHuM8AX6fIda9ibYynoqoH4XYd0vDMLtLcAj-7Cyf6ST1LUrwrAGgLzajNE4Pt6gm3Qo83aazQvS7HDSOW1aXAhxb_HyfMNlqrSmHNMqsQB1qj4qe-YFasAQwk3dJpEJ55jf7c5YNLVgLxIQHRAlHG5VQg7a9ZcOnC-uZQDV1BcBnsBJr7kYoNEs4wtLcOXCjknu-ySG1S5JWkeCfykBwgDPyk5CrbIFHWhrXudwsPJsuUukWb2mKHHr3pWhbBVu-XqvrPZFasMRBKaeqhJOX9swA2uRIkg9b-OT1kdPK9Q-E15p3UZOOAwrsnVOjtebSm8ZRYLOQv4LIgS2V69wTU5LDqj_Jm3tkom8zVSHNdJZ2zJynYVmJghrsOoCQYQWyPNCrUxy3iFboEPkHBibK_h3Y1IDCpTn0Oz8Fuza1LGR-g4iuBdreRV39jZS7WWHM3tZYACnntVFSwTvtWGldE-ejC0zNlpHpzhTFYojukKd1sdYdmcixVtGU93MDlMlNPyYzsIOAmsgiPK_FYf2YIsbI9sk_6A4fKIifOzavzVa_rka8UeYafkDoqWFw_X58oI24EDt1h8pFSDU_8Y4C-1mebReoeE4xRo4J8LTeYh_wFPxlb6qitk6F0CnEAHbApzGVsQmU-WOCru5aTHkAOougewciLcxzCbEy98RLnfsOFL6O6196xYi2J6imHO1iJTEtcQnJKhvoyPKXlUaX-la5zBylf408HUMMnH6NfeLIwVFUMF-jF6Spv7Y5jSrX7G1Dpcf9wk1muDq3yA14osU2twKo-CcQJuDU388x3HkaMhIUpo4s6rDwHTtC9AHOM9GoInPunXTbfTHLE1mKSTqo55tny04HFZU4hH6m36r1wauCVOG4w1PmpePua5TRBJoF0Llu0HTnie9r-MqRx1oHvwpnqDzscNK3bXHTIlsbtAErSSoW8gEe1RTHmzgjD5PcVi9vKJnyzxExLTLs9ScD9vai-omO-phLDtN5ip7CPNqFqprzbNnOzRxU_8m9IwXysIiMiGsgEr9-dXGeUhXSzu3VMSYt8amLgJgqrd9A6cAplaFgSdDfLvNPY2BrijQ9OihFDg-uXXdNg8L_NpTzTl14t7UG7IiW1kph2d5rDcF2nd-iDV-Zy0pq5x-TNIET_m3gcb4fCSYHMHwBh0ZzRcoUQZKmZgVgocb4UixivRqoQKMVTnOJT4ejAXK8OzzZ_VJ67bV2YhEl9Y3MPWMn21dVq4p_RleCSNDxTrpncDfC5pnq7IhstiOFxqYgMqLJyQXkXkIDSxKHrqmG5ildq_-Fg5ZBuyRTF7dLoDRJKmltrr2Oa3q1_pJ72vpNbw5_dCXuHGd8Zi-gPnu8iEsID-F5En1JSnIZG1xDJXviEAtdbhAhT0jXCL7KIwSd7TvcSrqQ_hqanWpoPgB-bUI1n6BNZjMGN1EOxB5X4wGNmQBBSzGy802hAHp3UmiwIVA_KdSoqGCLC4GCEiuGqrLZr9Zdvp2UHNp_8BCdefvmk8RR-Nk_q-HowKD_k1OtvwBS7BNx7wxBaJU479At1WXTbxgcEc_8Zaw9hEd2sWM8bh5lL--PQ_y-lo-nGN9s60BtHl-kMQttmFt7h4VzlOj8lE3s1r4yF7oCTjd7ZkiVt57OulevdyB8K40WYVF3NJt9UYpVyALaxbKBxaLyjpy6pODXqO-6KN8PqKhCd9D61VvOG3YSSTkAeZJEcGrLxEnK9U0UqjLoqFx6IZevhYxoQRSd2s7s4EE-EtnzV3YTgWqsj1WEgybHWUTQtyK29_O5x3CUmKbR3_cK-yipMvBYl6zrOBb4vVDYZwl8gUdax34whtiY-rjGoUVy4itvlP6EXS3Fe-Em5LSgrt92ah__aiASYNZEN-4LzbaVMwh36YHBs8endLyCzQB6gu5TgDN5B0KLf0HCNqEomCR8CncopSClmXIKN4a3wHs9zR2P8OMjIV9CzMGcu2itiR9s6ThmnBawECjb6qX27EuE0QX4T18CTWjnTWXEnHy3ACZRvIa6hZYdJLsuky8DNtr5V7mFxMDDgqeS_cIxDoyNOy2V5PwbRc3fVRa04bVtfUOM7q0OiLtJz_qEr6Ig2InPA3_eUKk6du_mdfNfdgBr-T7DCBxh8-Y40VMX8rA3CA4uS6L67gCuTE7jXXMtzugSyORCs1RUCaYyXwY6paaUhWUlJ0a1aDO37E9f6Vd28JqyK4YzMAss4G6-a5W9PUVykgGhUoE7WB-jWwxOlBPSU_TMphlcbkF16Q5piDgaaWxgi1Iz7VAm7XablxK02ZRET-qTUU83OxF9hHv8z4fVIANu_q-Xc6QuSARnSbx_5veQkxLr584rjx1_fErQPvn_ajBRZ3sPgflmRG5X3bjqJbOe4nkGyAv_vE_4i-MkDOWcMMnNKBBN7MnjtkuU-_bMZQUwHOUVxaRnJpGz0grj7pydtNnw6o1faqK4lxn8s1Vd-NBPbCShl6lbhZkDR3D3fqUd14AkRbRxYjgOYfE_ug31pZqCKEwix5aU2d0ulD_DOXpXIpVHrUIKU4W20iM9hMU8boUDzdRZplVS6U-yrUJXzxezKcmLExsH1aAbXuPeF2IubQ04wsi21XiTiy-B-MMhzWIdMNNnHkXG2XnrwxHN3FMPf5hH_oMXdVY8KZsIGEWVAibxqGu3UVCTB5D9pKUdelln_D4BCsoBMIEKqH16Nq-opJP2XWLVdbiB1SRDYym8HlBEw_V_XjvGfxNGaXv5r2YBXxuLM7cNq4tXEu6-jH8rLv6UgeB3V6Sx-Xx3cpwo88jgA_FC9-azZdZt8gCWBHaiKikPp6wUiIlYiXXq-Q6-Jl9Hg1s-N8cmIg1hcuxfpX4MNl5sEfPl-9j6GSL1L0bArobjyxaJEBI61mFN8FubrYN_z_1QmXcVKbsQbkofaVJFWuIdmhWllzlxy1sXX0O19nusF-DV-9cd4s_z8qcLFtipDPQ6KUyNVqehxYKrXKbizf1u3LoNvXgtOM-WPRIFBg8SS2Jd-GZW07E17pNjDEMpWl_xZJx9PIyBmeW4ioVt2QaD6mFz3pH-lr5CuTcYdt4IRhMXlfT0zArPJl1FKTiZtnTzat9F72Othnlovpxt0VBy1oQtkucuaZsdUJpw3QX4m-KtDu1Kf0ArE1c_OEDtAChn-YoTn3JWqVy1epWi8357-eARtmvwLlMjW3Po_6llLbSEUQLHB4GzKay3G6bhl7iVtXLshAOcEE1Aw6gYrrNlYw2s45QgGywKf85mNj7BFp2WMFME0qDzkG5wNLW5wRcHEmjrPoLv_phXmeOAqmYawnEIdn_fRqb3i4jxAL6_Rys080i1K7JThN1YfG72YZPYSRkSZ2S4jLA0ZVRZTbwXwd-NL2HiThfh2J-Tx0yJhFz_uRs-JsWqQDTDvaaAIIL367U357jb_Q5RgNWm2SqbzvGnZJxdgsyC33kssgDopBk8x0cYNJL16HAw9G-2mMHgJXzjmPQbeaE9fwBENGI1SqKaYUoGe35AaxQNN89VR71yqnnwBcIOi9hw7NrjabSwSu9oSWJ-NjyvzHctASCwTGDSvqIxWPzUdvao7zUXyiXeYVPf6x2yfb1uOjOpSg7svG-hQAzF-_V_VCksUlZKtUmqSBlXMeS60oXVc9HZwpXAtTVYoiT5gJnypfZPeujfgLALoVtfDS3lUZtWTbqsRQr0YgV_Ib86gf9YzmnjCwlUbSOIPh6woMbTix-WT2FgA2H0QqfIoB8-d8lEvcJ4utWW-elUEtU_Y2988mSE0lz1e5WNZr1FCzMn_GoHLb9pw7qMSn1gh0IE7TVoXeM5gWU8tXH97TvUK5N2Tij-QnAhQ9j8nPkf_VxNiuKKe8gAsUF7pJlMXOnSnga_VpWnGAv5Xylf9xj03RSqWLWDPwkwRRz7YPMKTnpGfeTabZMflFkotc837fsbi6-J44XJF-aMwlV6LexPAS1ym-UB-nuHx6uIJCONHDqv046DQng8yjAS-LCPUVkmLfauCIHJ536YngVuQYwRFKxfBEkepeMqFKVoIHD4KmNusHlWL2BeYQDfZI3RXOcstEurSveYdhQSrp1p0NmxbQ7NNgQQMjSNEwlhtOuApjiZ96mlOkq4-KzYfeiSC5ZLJTTaAHM2LvHmsyXz_CN0gjm80X4uXQgOh92JmVl9qTJB_RL260GmABXAV30vdtR2etX_6NjnjgK_oAuS-PRhQX5TUnBOcqyDmp8-LZv4RbMouvP2LwZYbb8jEQ1L0Z1GRbPdgjYMiwWmd5GErS7G_GIBmRqLOmfEAxxjLmyGxXbu37G0JITCFDjRye0sCCgJ-mnVgcg_hushfiVO2wAOlsYmcUOJhQ3iyBWevNjTIcVwzObL2olfVoS0SshdG0R7sdN7EXhG8nP34pb1ovSs1HHj3MgfJX5Nf43Xkxq53d1WGxzpEzbde4jzLNHpI96WN1y52OUJ0AMaQSk5LMFRWJEvlSiW1Nc4cRSAVpMSc3VRAojzLJ-Tue8ff0fqfMqAy1Zu_t8E1GDy_xpw8DbRbJVqZd_xr6R6cNoXTD1Qa_vFn_dPZB5MPP3kRg-SwJvh_Fmrx5pPl09Y2u9kmYm1T6ZxVY7PBetsQOn0_bLWB-iS0PRGlNYnxh5fyhWWxQjmeOtbCf5IOHHDENhXUenCumZcKCxOfjvyPBdAy0lFg57qOMXelb6jU5pJc6SLH-tawkxkjIid1C2iueMll3xFAfqGGGF8OIjSHmCD25aJiRor1G_uPhYpDInv3oJhV9Mdc1JqbenXPh0tyh84J4_gh_GSfICmUZk66RSDnuPPP7yaRSbneHr6_ikCsd3IRCBX73Nu3K13hHdO86fHHgSIrZ32LG6iBd__5BuzmlSJEIV989xija8XHaEfX4uobmCcHgBnHtXkAjpuNRVQHdHw41K2FuRzBd4xuTfbI6vt4R8V_U-L-5ynZW8ZPktod_Q9T3JgHTtNYCKeTONJ-ZERYFqblzN-5U_ndSh4hik6STt8KP3ms0GvqAphDScZIDBsYKpN5d2nQeKQOYrdSg474mkzMJZ-JFfsc0Fl-Lz_JkHZUX9yBL2SafGCy-LFIXBuN3qLlO7TxdpJRnHdod0ctOcc-enQrj88QxgBq4UQ5QEphyuiWvXQhaPUE9cyGytDqgiCGM1Bf32PINEG_lWb8CGdNUUc_UcM8TcYfL0EUzoGyplYxs3ckX4EdU-HmSJLTxyKFto7sNeLQsFIKgH004TU5H-AiEW4u3hSdGCEtu3uyPAHvsLWJNwlaNcghVIVK7MYU0sqMd9ZHx-IVn1VwWBULL4FIweESHCZsRKR-JYVlwPkL_aQNA63SSs2wJcDtD0CY64iQ0aDKTc2nc-0oz93vpmO8PpVrgCcbYI7IPFxQInxsXFmkbwCtnfN9Bd5-GhROuwi5wnAxjbGsY7IUOhwsBGFa9WwlJIc-6kCao0OGs56-mupp2NWCk16pzYEEvl3g8x7fF5mQ1s-UdfNsAPb7xzJzXzvRW-wxUmajRWzNAxQ5LBQoVDMijELudfjV63NYuS-Rs1ZYICR579NPuscbL7pmx9cl0Unm_TMSgM1QCLx4ygMlVdIiL7yoyjLMaUO6Ouvy6elq7cIDRzI1F6EQIuL2-PY7vZ5v8yW-qdG2_tbztnZazdEVlqIZ6vhV6O8hdsD5O1cnqU0hZJiLW3rdWnZIvBqRuNwE0yycg5DBfRRBtScSsea0qoElAgQ6QuvqNtFQKgDWzsGR44pPctRcyudSrhgjZ5Tp-wMicpLTif9BG5zn53D6KC4IG7hLuVtvBSjRlt193EY2cs5lVqcPGJUOVYbSX_LarP3vwvEDHD_poJOlpzLnuGO0NAO_XcA75FLUDWPiZ4C1FhIy0_ak-J1vghYOEdWyLP8hjqWUcPPe_62IXzON6HFG_k_B0tX6sjyzl4VYdCB2xj1iDp3oQg1jmr42NEe_ry7DdmfPwaSh1AWoWN_NdEA4gIzgkCbEcpKrnKSrxYc5qZav54bVHq13KFixXt63VPSZxY9xFFEK1aEL_8be-0fNcbyJjwEuY6xkC_gqmaBsKUX772iBrGMB_115VYm5w7DSaq695lGmqZfx71tvXA85kryA3S6s0rULSl29njqIpEJq8WaHRos60otg4iUSKqAaKM2_W886mjvrHxNYyruqlwQGSD1GurwoaVHfiuqmFhbL48YTdq9m3p1lf0qfvSBlSQDur1Ry0ImzSDxC1eiDgnyGhM2MCO82FMjBjhsu5Nx9lfPccDSdZnBjri4pGMf_whWnqc42cOmjVxARZPnH0mhodx4twy-nHS3DfleqoKlmP_JPZa8P__Oclnqemt0OqnJqWd31_aCCHmMA1DKvy6P2N_ajKwLQd3kSWlmBGkhhDQ5INMDnZuLJ2SQ4wwcLeebObodGAw7_8hNQQlSNfDBzVzkW5jNNn9MyklQiBYtueSrbtJVYZ8DI6pzeiK8mweqbePtmjKq1WzWSp47sPgR1wSwxgKfGhQta-920CxRqXuN9GTq1zz8VAEALhu8zfomn-cXBbFN6YlCXXMhx1hl4C4If4QqH3QKQ_fHN0xIGWgTw6fDCqozwUgx1r-NxuCMGpXk4yxvg5_AQXsZA0C3wK7JUdqY2L-fT44iRjgt-gIOIBugMxRpRxDw6_19WDt4oCDkqIH3fMX6PJ77Zy8c3_dh5y5npsf1YUVqP7WLpcdWkWyTmKhxfhYwzStBsbPhPQZm4EN6O-GgrGGChfwcdJoXzS4olb28cGIH0G7WCPrmOL9ObXjSxW-NYaNEeMkHe8JUApacCpIqIIWZgqykZV-Q_tQJtHe05YTHGhfmpXrE2DJlbd19rJ_dMebLZrQbi7lJnOXP1o3G6ElARhLUqi_v55lNvZrSaA2O8zTFxnOMkh4cVxBYF9TIBVeQtXfSHtRXtuB2MuGsXmT4YwWa7Bf9ujfVXJ4QjRnjvcfKrZ1moQUhzrZg16cdr8-K0FHzWloMQJoHqj78shy3_6uco82RH7yGC3gjzdf6p-27_waSqw6Zw6tb-6-K8e52hdj5oFlJwopsu_lZE3uAotw9IVrv4KOBfao30xy9zWPksJmi1zO0q6yZYpAlLSerp2ZyyyQUffvkElo3f5Ls_4tyez3l4Z9JDqTlAq6okT6TpbBnNs4IkKAMBA31gPjkGePeMTXSvI9jk8iE_F89SZqu-AlzkAp6C6TT4l6ntR4yAcZcvfnmkJE2HXPwogkZo1ktTeqW72tFruy7ayMfCuq5PBxehL8Z9YLTNC0biVKvmjGUVIWmGXGEmSEfiApi2ALYXO09yPHMNN-FAmFPb2bt5V-mAqzyy2zJgyGVhZXOjH_UdU5xZuFLenYEwgZNPjRhUZt6QL-7cmUGUW1nX7vSsEVsaap44J8oiUazdSSxyFb6hUNLWvRalzgiUZ40qvyX7ccLCv30tr0rIQUUyxr4fkBNnuj4u34ijGGY7kYcMsRNGJYYwp6JSuGbfSVjRpS5RYfYz6Y8iHVTDSF_-uwQ9F0PE2I7byj3Du2jEwCaaJCJET7xhlWIQYWRbNePtHCv24_xoL_yg02ALxZE0eNm9sr2Ux_7IOZ_QXUsXoVesDszXW51Tjp_Kl1u7vLf4hAvasj11sl24JM5ffIOcu_pV0MnIil4CGBMs9mC4l_rQkniZTOdXOMDTm-LLRtTMDsB_RujRko5MNPgLilg2u2fqNqDijSuWI_WdBQL2UsqAOcMKvu9_sIThnuOlm3PKZRN5rnM5yiiWzJdN9qugB42PZN7-GbumaJDUtdjOqqBc2Xd7u8b6cil3sGWyhfm6XELHNsUXZKMgLjlJfH6YOYBPp6_wO7FBJ4xRK2zSAgGZApNtnLizyS4RzsWkuVha91_rZw1ToPwliobOyleLUFS8sWMCfROm7u3ZeLE0qj0Z91TZLgRI2DepzjnG5nor6Nd6hsJjLGu4LMZ-eSvj0IsJsN29p-gj-NGV3a5czaIZcC0IpGJx_r2bbrXwHeGI7xTZ76geM3RjgrLuXyyzlgcNU4nqUX_57ClrBc02zRE0pizFUBo2UC3CGso53kTzx3mduQ8kYajlNWiFmIgsAXKnwOe6XWsg3X6pTjKn4S33LLoXqDYTpmxTlcKRsikoRDfor-ymVRTvuO8hkT-coFFekLH7_z1lOyuMPQPHj3Kyv17hQebuSQPnZe7TguJgtjgooHYqJbnXXUNBgUsadelXSw_YRQCERAnlD0Oeu_zGfx_-6KSGki0TzMU9gV5HueOHPLSAp3QTep_EOHq8VbofhK4siE_be1qIyE-OhtQOD527vFhlT6hOC2tFw9M7joqc1PqwbAs2gEFKjB0oue-qpBqAujXUChWjNQbtDqYIYgFF4rWkxiHOERxJnmJ9jTZQW_jUyBmuFxDi4cLX8XEtpbtZib7GxRyBbXXMC5sLRQEM7vTGvjLEo6u2PrTtzN8yY0DMnIq917FpdKZ5DcUUbi4o3qhYBarbPomDN1G1CiANeLbQs_AvaCfsJH2s90phYwV73IEUt9A_kIFcRRhAOg-kB1nTz_B6f4y2_PS1YJwTqXdimgNLvQ-Tmw_m08J53BgXSEAXEMh7LcJsTxXOs5YidnqKIrwznKB1z0C3_FQYZ9Gk-F3AZU2zkYm1cDWjnFJEtZIksrLXYYmRg9mP-d79me_NjRuVMYk3Yo42uY3pMWkDw8kZCfpCWSknkuhz6TYo-apOA2lgwLB60CErTxy6MCrrCSTdmFVzyfX9BhzUKtKv4l1G9DiZzqAYUvAwKZ0DBbZAldFhKoidNZc54Mjoih-pbtUaH_GWj78SgXfZVaJ4LLwkrQKV6RcRPCB1Qlj--YzYVnGDKcCobQlk-2QC1_zSCh1xDi7Vb_Dz6gSsDONZD2Oslx_HsOgow62h5tSKhSeUUsxCeOY3K4ehNhLL7RtAoYv3Xy5jon_W3dvwTq953UD4DJOcLcHxP_TSoSIb1n_VpJahJxGPW_WYllnizHJKqbcvWENYphLm3CzRDQF4Jcl6TDQzIamgvPedIT1xjnaJwvUsgfeaybD3mekHIkoUaewqbvqEDODw5ni2NiM9aE7Jp4TlqNx6eCskrEtui8ejoETe8Kx_j5n7Di-eCeXgB9AsXZQbP7MsLv5AgneTBarUgdclr2Ok-KAGoaHUoWqsrRNJmm8U_AglWKjBze4ePPDTxVbSEJhZOu0abWTC9JrU0k01aCcHb2PpuaT_4Ki6hxsNyaimKyUnN3DnH_6Y3vGNo2MLIAuebjHOTRVUQ1tYHqu9V_geVzNXpKxZo7b7TvyNI2_9nE-pdc1B_w1AsvzUxdfwo9sehZCHdW9uR-R4AiL1wPnpgz9-4u6QR-qJFWCK8NKKfTA3s0jPiZnNn4TI0eQKu-zsc7DR_STisl_6TWVdjvz3vQoZE3mJNCnfB8oSyIGh-Ju12REuUQiYNChNtnl9KDAxPo29lilAmBxW6MhSK6Ao6-AMITWfFP0TURmb_67DHw75-nXbXdFmP3sjgXmuo3Ep5RRxtlMBPS2v_E1WUqRLetCQXlUZz1vBgV8QpNXxMkdecjiFc9l--fDCdJ2yE7llMYUosarA2uOwH_7NBPuM8YVcICh6XMLKjXo8dcl1Cv3MBS0EZeJ2W8qD_liNhqBfSZmndd-62njZyWdbmpmr2dH34g87yjWgkEbos-3rWRMrtz_yJ4TuTwS2aN7M5CgcqjCq-1AvDHgb7OevX9MQgnw7onOUBgmF3zlEZLYUy7KEVDmlkOt53ynlXXkEUkJbQyEyeJ0NjIKr_GtYXD3WaPbEvOyeNlIBEAhLK258Z2eX-PqTvTVf85GmQkstVjKF7KV_izcRhL9Vpx2w3JWJZUvXLNuQZyqLTNrezKrukSBVVFVHZt2ey8AkJQ97JK8cLpvelUXtzQVahAYj4POMnJXCVovcMQ8Pv9dUk7hznsl9Zp6Uw6KrmMYbz4wKY6YFynAPHpzEoYqSDwxcTV6iYnzfHL50YMdb6pwzP5qGiMkf3Dzne3Y0KBzajm5bE3Xfv97dPiMm-0quC4h99gg3H-A6SayBYFVwtMVnXuH6t3z9Y5TL6FLUn7H8W3ZJYX97xCxzPpwaNdFsh5Htgn4iNuwT6xRLeLfgxhNd82IumnksGJoaxgVgFoBEPgLWbs5Nvy_fc1JXTfhM5mCtCmgffkDS2q6RtpHVoUU0XvDE8u9g6_fl9NWn8asl6O_-1XzYuxtm1vCmOgBEehyopN7_I6f2OMLE1vu-sQoFFvqqZXNJ344odkDqYwgkpYYCuPPQirxjXCPKKkQD5RTSy3UDIj2h8_Ry-T8Sef9V3sd83iZtA3FEahFNFOMg-PhBx0xe7ODNtj_uUVrg0Dd7G4gGEd4aoZ2j-zAUE5htmCGbsFgTMAOt6xrAeWAq8V2rSu3UXYQVOKXsZcFAvpbwE5VoTMJmN7IEqaqEAKkxV9wRuaAkUw8RjMw0LHNdIZL2CzLXW_u2LMFu4izSaBhUDH8z1ewBA84rS0D_xRq2qMAboNp1FKHsy15UCuJkXY5UfV7W0QRe7g-ASfcwq-VzROeeIIxzfAg4z81PVbeJXhcUwVOt03GO8e9C_Es0h2rQS9asJBVzMMFy_kXeaHMGW4wn9QiUDPJFwetrZTImp1HRXd8fYMZxcDOPYNPnwc0vBa2BwJ_J55IME45aqQ_j4OSeBO8IGh9urcwMTpC5emeUZb7wge6P5Cw7lV_d_lOCELp9LB5hPtrhLo7Fghh6-12qUbBauZpmgm-ewVeOq_ms7qYn3VRwDQFzkIR9YLQZk8SqdkN-Yh5uRPFDiwF8nh1FCxTRmacqCMvauf0_Q7ULFxpexnDkoV3ZsBa6SwQViAupJRPUua3ZIF8aGWmkQCbAH_-EoUdZtIsc7UaWblXJTeXBAJQJzy8yxL6hRlECtVPhVnYJmv5HQKTwIkAQ5b9YJnK9iOfFPmG4nRvRrQu67Gt0BrmMPoe2eoDwt4jkR6FNqgEZWP2MR3AuZ97azNuvVgXZESJ2zmD4To-wNq2QUmGFiZkbvWz0svB1ngY3K_WpPsMVeKqrnzeEexiFyXOT6d_7_iPm7WtYhgJdd1HP7616ZDYw2icWk08byrYGs5h3KRN25JekwwR4fEawV-ki6Wexm5klopQP5k3HQP3uQsuiDoyilKhc-adCOeIehl7u0AceOTr1syFTTpGZpGe1y_1_diWtxAQHCjNvptlfEMsePqnObYFDgnmqbPX2TtMdKFZln5FWbJhV6FU_17FRopAewRMU9qgsgBYvIcWDOKWzZNY49RvzOsYK6wIq7VVsJWzwkD0Vsc0jJD8zTJ2CbLv8rF6x5eH0lgbMAO4fw9BpM6Ff9SGV1RC-4iHglROHraD11v5nQsob84fGyMWhHuhUMoI8q5E9ikkvhD0K-BLhNcxBIgR88DNb9yn54RYnEgGpkeGi_m9eVO8N0k42u6axhNw9cHTa6rEWVsJv4sgspNilvm4HjUaRzlU4LKFyNMX3eUyIVP7V7KpLhsfAQV1CK5qJOeqyEQkXfiJQw2XOzuE9wKN1v0oBwk9KcwUAeMt3giarxs7nOk_w8FKHZpPOFZwMu3CabdEI2ruIl9QYF-IeWcmVuRokW0LawNuXjx4DITqrxIizG7yZMy1wn6u0jrfR66kJ2_wCL8SFimZO9-rvmQ2tR0JeEuGZFAn5FVrgdgta-kz8zyrZSb3n5iPG1c4kN2VCTwQM_R_2aXsNYllV6xHd7C-YqqrFxhpcV90yBAHYGSn32A87yJkJkpPuhHfFD7Yi7h6QkRJ8dGkiI0y0aZDH8Y8vgsFZ4dUnBuHccJ5IvKZ__uO_W84cSCR-d143PRYj5EAmP9_smwT9u9i6xIWVTV40epi9S_tHYQpc0MgQbauQuJsyxH4PPFThBiCH2P2MMTjWLCnsyRtKvqltzhSe4GHo82taFpnZ5zUwZlGj0XNoab5QNgVxWC9WTRRic9Q3DGDH5gPzfq6sP575WdHm76kOB1oCqyNY_xLUA587DHnnZFvgJwm9Y6aW69-iC18UDNScF7_vAZIzT_XGz7SKsSGAMt5BoF4IGb22gJRR3kvw0OpuIQD6AnOqH2_3lVS7Nt6SJLQ0y9xNdd5QhXe4pGVt8hz-PCt8Q-bwCL3Xm6g308lPffFbvR2Q2pIY_G8qIy-i0n4AYHBwmDOMpqhdiAw0HBOWDdnAWK6vvGZOJEfMz1n_lcndZPuDrbMQKvTaxIWFq_zMz16xFLRJR02wklDlkjrPwqwR2AtZwz928SpG2Ge5icOpgEj9un8Thhjt6ApZVi9nWdPt4i2mXwzWxO2f4Fo5_g7I9375P_0eq6-gRo9f2I_rZWNJQ3laynuV1dTl791iIjBQ2bG4Rr7IqB99JmG0flTKTIx9QDGuBmKaChbpAmTMRrHTuZ7w1Te3oFzPTE0JsivIl-hs7z2zadV8FVMSBAco-lthxiXX5fCeG2ngkn6leRMsodfOUbSjlDV9JU3z_n7bpK9EpFXPGTthivHOeEBx9ILJy-lYKLP7wTnQRGsBUMZi0OFSz_rc6ag900BwavICawLCsSNC8PDtbd7kvXk5aSj7zlWEMK7yjo41R0TBK6pZIJZDoAcqZaXLC_aYjlgqHf2AuZfpZbnPaWFREXgTUSoAw9dX9I7XQrIGQi4KohemafIAmUenTHkrMwcdtI5mQLQQvuWQeanbB-aFwSnMhEujKd81hPOnjXOWgNQXCDB4WeNuxIMqLxi1wxEbJVV2pVmbh2D3LwLEQC88MhvDSs2Sylhh7iP8T0QF18awRUW7LqO-32P-qio0j-AzJYLKNd2FCCEqas95_OdLNPA6TqH9cR-qOSVu7_s2m_TzFxCG8zfYv9Fbf673A33IBFVz-zY6VqS5jYRA8Gyc6KNAiwUCw-7j2zik2PF1z-STXZFJUdQMT5U5KrHKY2ZIqrItmblKK9vv5edSAJKdiW95lnurSV0ufqmOT2Ee_hyuJP4DvNF4ynq4hq-hsSew8hXwmEZ78v2JjOH84Sf4WCn6cSNAdIIIn8M28xb5rWiYdnrbyBKceYa5_IkWnWG3px7jPAcZb5uHzNKbHuZHNm2EHVWIgEcLQWQ7g8xbrPzV01zQFcJb_F89u_lU11pkZBFXtvTjUsvBY657XtprznvnsmqUyDvB838D0F3kglVaOYWJ7OqLpUHP_7oWQr8kZWOPLmwRY1HTk1up_JV2QouRAb8UpgrDeehpnzI0X3Ulh7DGk6flQeVyR9E6TlgK_3HbWUgUz3g6xUaLpka5L8BKymA1gIb9VfFpMS2fdSe9aKCSw9nldT8VB6BLAsqwBZovvmAwSxrSMrv2DKnHfuFHgKttPk9rOg8BiJNgP5v4uWHoZbBta0TGNCORViMKa7iK4UIHM_0V5jD_zse68-czoWOb6BX71Wym6SGBlnX-avD-r7hHeZDYe0VRCCgcZIqx9-k_SuYzyo6CpyK4_0aVI1_z7KJOXEKQmMbSYY2YUvYB9owVHTMrRwpAQStXmRROZD6WdMEmjTJLHdAUnSQaQgXTNf0VAqEhrmnPG8cYe7TOz67riSzZIMt4oQC3QEy2_zoHvUkP9Iewh0odaGb8-ge39LVg1PnCuuc96eX4jE9nsr3bkHGRWswZc1U3nR_tRaOc9S7d9KrNWst-kpd31afEAyTgGKgunDtGkYkMPgsSoJx5BdGWnapvMXiwOaPL8xu1TNcuPfPZpyGQDCpW6lLgjllHiZ2ANMX6nldTWAiKgPwJ60yDFsb9QKogvnkEOFBjaNHkvqgIdpgF5Zh_L2qGcreTtey9-mepLbY-nopIXRphkOQ6aHrHoIhKgVqA_USGu6rQp65TFUG-nM7WhaMVOyi7LR7kdksoCGUCg9E7bbCitNI3k-hULLwjTYpldkS26aC5vPZYVPRgF5wdft5USgBie-dPA5CekdjQOqpiHBYgTb09uXkvrEU-DT-ybla8vh-8Jz48nmoymsqPPm_akAddciSB9yj9j0YSNTM0jkTqcQnyRMiPFVVdetqJ55-7RFjJy6w5dgh5z6wiLgXwsIgqVjb-1AqVKd7J4dJ-vlEMcLMu9Z4weh-3_ho1XeBdc1oyw_3739SmRBBJQCleIk2GUelNHhEhUQ14eDb-8mIA1QYD027NRS4eHdb4lI_ArvR_hhw2O6rjLYFVbHYtT7bzHvUHuq6sdPzFoD0WinM-gO-s3ZqcXVE6dlAoGvzN5OhdurOZT8lrarJhVzm2hvOao-vH0ZqkKamnv-sGgjX1ENoivUjb8SeXmGvYxGbuuNGKN4N-vODizG9bAK9trtwPt7YlLXH7NXeERHOQ9ps8X6FM2wko5SHBniI7zr8VGay-AzF63bJX98xtk2EOwD78ggNOJd0wcvbsEHJgqgH3oEVtKwGGOqb1DJXhPw-fSxuKsn1j5gXh6oWaQsHJWa8ef8wAG6xfy_Qas6Vs5CukxRAG-XIbTW8FuxuFLMgtpCxMY_sucMDRafiay29jZKZDS6rzczUrgo4lVoanzf4bv-Nr4r77YpC2uoZDDdNcYJYCChTfbWah66mPftCj1pJzvQ4-Qz4avwhwnmjZ7dIQLlNmUrRzfNaRI6UZV7a0VLEIRb4V0Wscin1QgyzLnVWBSjpJHf4UEBaUx5f8SlxJxAMmpZwayIx5lcPAyGGb1ACve4j96afuF9IGryFsH-lRs-zodxQBHsLs_wg3huRPEL1MvcfF1NGxPhzNKmmOltjxCUGqbusKQ_htjjNPOYxLRMJl_lAfNEdYsiPuWGN8WcdLOYXayzL-GSb8eKeylix-L_Abzr-1RpFtQZCXTXG43xL6KUsVW7EQngkoTnl5chAKVQZ1euJjfJa6v8W4w27ixOAwbfZ7SGfua85FqaGEFJFWaZ71_e37XBcIlmtir7uq7HzRfPrz9VG_NhwOWJVaY9dBUyV9OeHIXL7k-tQ0ap1SirrQZipp17HpDz8EhqeB_RGKWOMlC4-QbrsHGV6h3ruUvndGy9UPq3atF666r2GB1tvGTIfFyODCusGEVMZElRZep3VlP4Q1ruEKlbQtb5-cIoMKlOvfNAeW5LkdfqkIscPylV-nSvi2uOic_wkgdKyzrUEdCXPhmwjYRISjx5pRFXY57HS8qjNcy13Z63MZGLJZcmstO4NQNPR1J71U6LIJK2rJfmT04tlRF9rg0BKCDCb1SFFBFBVfqCFroeNwEiuOZusKT0umRT1F-w7gPenHbcizfv0yRpJob_HBqdTLb5kyDRk0Y6aKr3UxPKdfUWoYEILT86bdL21ILTSAEPg7m4EKi7wjjKQXR-QLVFOmRfMMmcuJw4_WHN5bZFmr34uMImxybfHlzUPGy9FDQFzs4ieDKr7AoOXSxSfAOAbq-cxCHamT9R1qZefzZIW88U30kfRm7ctZ_y4dBymiqPfz7KBs_XsuSgzUTAGOnb38vbPWLxs04o2RZegE23FAvGuoad3VWoUW9SK2ldHAPUSmxtysdu8NwK9CZDp3VjFhplfC_noxgz5e8UgpoUfQL0JTAhpnE5S3w2PJSmzUhNoq6WBo9TdD43wgKw5l0mz32v0MYWQK6vPGXxNIltBsr4MXRv0owC73JDoH5NOznuCRJ_JFoZg138HXcuwUNFK8ykODTUC7SQ5XMJAnVRJPRUycraFzh-wppkAkQ2sQt2nQhP95w_MwoVjXsLiyo02C6mBuF-qJKshhafUu5SGOVUXcBj6EBtnM-mm92hwAP0z6fVWuesLcP7ERq_5VbJqS1D3tHSuUlgX26V1ew__R_Qz1p0aGKls_W66tDSpoI_YrNc_jsD1ok9iR7afYTZmYX-AjazenHdMzi1OcDrCPnCfCyFYsTqhDGVzyo1nyIGzLeZExlxHzfvh7bu9IU_TRxCw8nmXvBuD8MdgvaTzrvmp-qSOWBa4kjfNVGKQA_7peWV47h_pa6XHivnNo0O88K_C0NsNpLI1C30fCR39oZ1wcjTA6etU7hAarkZKStsHWv-bJphWRlwtyfTQxtF9yo2H1J4hU-NGstxx_WIHrGQ4cAt83CBSpeeVzKtENAjWofdnuQCYIGBJ29SEywyQpG63XzHHybpXrsjnXAhLYimi5RsOmlawn74gPN9Y91-HxwSPWfgvhvpTAmu0oXpxSrUjLCTpmd0dcvPit_vTeo5AZNs4Pag1opdg4V49nd3fubwSFksIm6tnCGVNn0KarIGyWsSv1xrTFy38TKuTsDgoLrY4oq8h9X8_lA78GuOaqzMSRCJYh_IHhAVNjJDKAJP_arDF2M5a0LkVh3dr0BqkKSl7XM5TXd-3YkQiwSTMnDBUX7kVUoo7TGVV98RZTnpA3Nicl5fQsgUefCNa1qOKIyT6hYfotZwGpo-nQrT9hHXnci7mHMmiw_E2PD_5g2MuL0RvUm3YmhZFDaw2Gbgv_yiXtxr_fCg1UB8uQV3qHIrPbx4kzs34mg461fvxkouVb2dA9YpAo0Ef7pg_lJOP9TsEuJUNZ5NdwIjhHv0t1hLb8b8q19DvzdmiuTNSOSuMpzcQZmc5RXnw9X5w-JXpa7J4_GpiWM3xPIWdfYEJ3LoMh5Be6wg0J8nj_PbaTWaxioNje8HeV5fgMDtFZaFsfyuZ_VkuIm9A8M0wRfzaHyJ_3c8cv0U4W3N0ge4fFpYRjDtQ7p7oTQ_2wCQhZ0SwuJ9J5kh2biqZpGclBAHhAXvrVmD6KXLQzOABGaGLa5yvKXmZNBZkLBTzvxHLHhwXDMATH-VmriBFcmci0pIGksUhx19iQ9Ved5ik4GkflTYcbTm29vxxUFOsfQsvQ30oK3Ac3-8vUpZV7D16d9er2PxSPIhyEm0AUutR3ZRTje1KB_9BNtNkF2M5rUIEa3iFC81igJKtv9NAhfnKDHRui11HBkYJ53LZdx3pcrWLB9NQPp6zhGqUBQsYZhHImXldSCIuiSILUafGLouS0IKbplN4CfdP-oPcginSIFUfTMVQa89mgbFeR9tFjGM9gSeol1M4D_razzicJWXFXeMIRTx0piP2FajsBYhXj57BRgAsmwPIyv8v0oIIv1_GPQdl2785JtqazChrxFuYPU5Oz5CPuRFd2qQCCmeNXzKK-MLjv_WjwE6IJUpe7gBWoSUoz7TbD1oPfoKC5CfH7WVdKZ5-pQFjY3xAQSr1YHtkV8ZhmBQjINVI12ob7S_2rSjpIhC6hVAZA1tqgpyhVfMzjKn83dZaB57o9Ve62lgZS5ou3AJ19SkiMgrEuA4UulA6Cm_aQXBkAEh48GwFyAYkhvffxfREftdVuyFIC-h1ccE3xGAfqKG9vzSj0IDha1hEUlRep1qbsShvJsUuYN6KytNp6iTOD68VRBvNQryjvPP89zDec2s5qetC8Ilv6HYuwm57KY5P6eGefm-FXtNOOB3n36cIBoFJ1AdN5KZFydSf5x7RDfdaHE0orvIiGFwDKtWaSb_ZUHLWZodswK4fOOJjDyADLMErcY694yr0bVyrBGtNbWbd50l-DGonEIFHQxVIfZp-Ed13Gm8-XQm0ZUcBUs7xYh5GYVLtWDEl4O1Hzoq8JwffPz0ya2b1z7YP69qP5iKUKPnfJnRg_Yxq-hXv6ZB7sIdj1OpuA0pvtpt_fmVKGOpUuf4sjLxOjwKIyJm7WOFAdVIb6JA_nCoi7axKsaCmZ4RHeFhND5td8Bq0Qk6WQ-aYl9gYAsNZci8sFyGHiFC04JdPUeU5Ibc8sw8lfr_y5m8--ultYCx7Re1wjFfJqRejyLjfBvJWvvKOxu4rZs8G2v6bVkid0fkH2tuIIZJbQ715pME0d2gBUnSRDVX31s0oRugyGKwxhR3VibvyEqT_6i22_ZkHcB5d23TnRjNZBpeHhYpDMumAUdfobGNtBhHGodO-q0_zMgPTc-UL6H5aOsItLUHo-uuBDd_ml9uwhNST_2sYdb9DHMWHFZ8qpdnieGH9upsI8NKie0Qff_-SrD3jaLSYZ3ahGLiPHOoVcFgRDgt5EuzQHppfSj0PuJvI5YEAtOynT-KMKkR5IJmbsYqGdN7sDC8pabDtT6Q6kM4nO07Zmi3fW830CcWlWqcwhh1-2x56OI7nKdiynSmZq7Z-d5HAtzQcwzirissuqn29jz3bOizXG2AR0m25cndmpzS95f5YEX3mARSdkvmeGz7juDv5UI_YXGkCfDxLrcZE2byq3-BDdJsyaNInuKj5xNtdPWnPu6o8xM-B3nJApjpbQyUsrCmylYoSO9BkNgSBj8ABgB9dSQI0_4ZavgP-mt1cJYiAfDMlbSwn17qnpvoEMpjtGIWeq9_8dLfNi54frTSWJDh2-2c7PVQpyItyjLLLZ8_l0iVBIymUVqtEXj9E1Ghm8PRjb4Gunv6n9DP5wTOb5gIPbTzQS65nsyKjiUKQWE515h1MGdf7uqtinGiNOcK3_hK6rUDc41yvu0ceWoM_NEn4d8lQkJKCI31qEpuVGpYEonNf26TZxhqzqN9EXx9tNy8JloakUULfEoGxeKR3RewYXrJUY43KC1LgC9W0fJsavebkTNx6T1uJW3beH0vUI0NLmFwHQdOrQQb2970mfgsjw_JXYI5iVYxuAK9g3m_n-L1o7Og-fNzahKUQieSlxMkj6eTZEkBmb5D5i3KjRXNdI8FTk_mS6JoKTJpE-i33KBM9-jgfr9nf0fkF2RfNnnjDtP5drxp3vhKQKOCNmsTbl0p-F1NplQdRMDsdyo2coHsbTtDAtAZlTVWoXadUkT_I6Z5ktPBwLnwcWaj6q4PXwXOR53gFy9mbjr3za3489k1TKeEPUmQJWzywkw0cKFlwa_pvDI7RZnizIxuJDcu-pF29SoU2jb86Q9BF6I3iIVRYWyJRa_yK6V9z1AbtgQHeaNdSrdfeBWsICEIxvgVDZdAWQCuphPe3FAb_kDx28LYyLL1-tX6r-ncZReyFu4L7aRNXPPEhxLXRQA1jP2Tow8-J94g5_QHQ_nRLovo27dHtjQOYsPoAutrMH6TdoPMwYwvgUObfIyRTAN9tPLzhBmdsMNUlM81YjokIfxberB2ZbOH56fnfC0C8E8ILQ3Hulsgt61iYdZDbE1oPYTHK6k8A8AYW9EQnqIdyIyEt-4C6ns5SIxpLUTmgSsIY-aqNUIrhOvPYXygVxKc9khoaY8Qw87WrZ-9hUC60xCyCj6m-2L5g4pmZe1YM8iE75TQFXb1CfuR6xyy7BD2bHG5WuJsgiHAi9kYQbj16pklfckmOI7A9-sj0qDDQmCBggvz2pOsv-paR_epXbHIZhXSbV4eJBycckrW-oS2OPv8GiJfbn3QtGyrNueaDgCYvz822EWcN9oeEXLCR4jZAYXC383yQXmHmCkxBrL_exay5fByefVyc5sSK2Bsvq1wIqbZJbPzheDsN-hWmOPJECimFYPcpocOK0_XFM17yUKVBuyxWeGNXlBVMOR7oinV02ERLb1ZPN38jiZA7-y65KQokMGGBZGIY4W_qe_U5mqOO5qKjl7ck99dlUooKWgTmoIBuX8PN-qatTsFhOCxfIhP0RtvPG0uP3eGb5VmcG4G0wgAfeqW7rVuMXnB7gyLd4spcMaUeyzmSa_R-CHdXDu6vIovUNqMjw-EzidTiXzBlTvuT5-nzcibbqqJwmO2hUSy5AZtPh7R6lxyHLQnf39gEB0HqAUH512wIIMPZLl_LbdmQOSJESwI347EQ1m2Y37_Xj9fXmVedUDmkSbYaMCaobBfym-KZTYmPDO3rdHf0NTFQLT78vGdog4FvxBwiaFXypHgv8WI2UxXsgeV7oPVGvitoKCh0dp9SCSFtpBskzzvOhI_n3aA9RpEU6O5zLnMam_ueqOIG_dezOqOc_pGtvSNmbJpQ5PAgYNTEsb3zLAopcK0l947c6hR_SG7fCjOg1Hyu6UIHQjTsggB8hhWuNXsW0aLeMrVE-ZCqt4KV8OD1J1EgEzb5vJuf6AVIp_SKrZ124CxdNlgYDj-TByCna6ydw8EGuzYq8DgZfImlgaSfpIWPxJICPGOlWaVcdF7I1prEuPa-eajrSLOdKRfM5pLlLFt2S7rPhs1mCUaBqrMj3i3YJdhykV3rZORVkWBb57E5MKJq5v7rCBwGxLSVjaCdMudDUKG0NV6Q4karv7ZqGt_oNN2qHnaQc5rh2SovMnbX9TfGAtS52uWnlinDM-XnB41IoiLGdAJKjVA3PPLi-2Zkvs6d88giY0_nuVw7R-ZBYmBE-E-72R4aaos6Ed_tDVdnx7DhWKi4b2l--s80kCmeBzV2g6lA8vWPFxlDGeeS6GugvBpkd3le_YRsM5Aj6oq7tMjrf3fwpAOW0myzpeCBg6HKrYO7bIthwQ2sbW1UG0uwyKUP4lQ9VDln7qRiXz4bBf7iyztfrmiMHwuupswf6uhbhkSLwJtuX2eJYroOvEpL_cgKhk107NWi2qIw_WhxGICYe3GpO0vAr_Kg6YTzzeTGU11P5653cgd9UPhZKGN9Dc659f3ufJbTnWdpMNw2XRmCs-jOjz9M2SCZWqJs0HItuioYvMobXegN60wOBMBvCZEpVPIP9R3lG4KAuTquMMl5OCX5YRgX0xXz_6OmbJbSMIQrw7jsHLOSc-LNVNAhCySm0ybaAN2Qz7vPP5TT4dl_cBdE4j_gqJcyoRQsXf-0-pMm0dx6NqFqBKOzceDc1CQO_YB2IiBpbrF6ANZS2C4unIaTgNAbyLQsC9fGj1RqrR6kXXsMEGosqrlGVSl5zM_yYfBXeWIsoxISBWgA_yeEsiZni8SlEqeS0ly4hHNHWHFe4tp5GZSTxHrteFEBEMWVIRR1ifQtkiktqg9R1-yYgqnhR4wNBuQ6nFdLuM9h-bLuYbB8m5sDzCFTkGpHxveu8WxUEWmxorzbuWzvBouro1BP2LDo5RcpWjOfosMvcDXIvD2dzPi9KnBBWsxh4QpTMbm831Dgz3nkZa88Vfys3RJ60hN72FfFMYq2_0Jjb1d22lPqXVdzKL6BRNquhMnNcndIFqSWQ7CffvZ2eB6j_dcSOMx2ZNKo5UN3LPUcHv0eAjZfXYLjdQ9paTOLxMPxQDf__Yy1X3nh2oyCPfdv1JH80r4wtMxt3mI5B_aOWY_AaWtx_CaOdWTnY3giMM7rD5qJH2X4Ga6quAPJMMiKpy4R645IbdeWUP8POHV43CVG2TBtdrFZ-ZF4WBnit0a5cuGox9DBnKW8eIPg0x-04Or4NGfEyo4avebOzyrBnLetr2jipBFYKJ0lN1vI4zkjtXRpOGrOsQh7kerzQh9Khbm70sMg5tuZW2O-QYSA2KRkfl85JGgwDaAQ6lNa5QQQiFrMl_WQcnSQV3RgIXfUKCi2ENp8sRx62YtkYEo-rnLtYC8snVzpAlL51Y1Y1TMFQQPydy3jm-9Wo3lr-gfoTbbPyxsY-ZbH-QEyUQTcGh5p8ie4s7S2dtHqk-ZQQMpGNi-9ofeFW9jighJH7GU4vfiEXUKS5piReZ5vshmBWXqxuL2xj60Ts3qas6cz-0daLGCSANq61l0pFWF4q_CRo5wvu9QLcSKibisVEEQvNfVi1-xX0Bqj3hyBC87w9Px-BU4gYzBbJ9CSjmNLDrulOtShQaiID3lkQuM5TaFrLECkMDhYhOWyXiMIsHJhVWJgmPX7onRRD1bJnX4HrouyGKuibEKYxqHBrRoQn17Fv-FyckoWfREYi8Kcz7iFg3mi_yYw1-8H3Tr82YaxYsL6mVDajivEEgsiQAXzYDpZdimSo6wb0PiYT4ptYb0rIEMqKBtLIXrWELvTyqDN1N1RRm0GmbuevCkJ256Q2Fph1V-DDbCS0566ZQJq70y2ssiqh12i9say61alFtNH8zEeEFWwXQWy_4ABqKlRglGS5aumqRIsW46s0Adk08Zfucgz_Y2lflYlw3i-hrkzVG1tsOwfppv5czbLyKv0h0pSw3gYYLIsAPQMJ5g-u45-CeGRa-KVxIRbBpnW74dPnSv-w3G0YnjHt77w21QcgiBehqctGbfUOkVHZqM9cSpiOLwCO3okqxab1GOp6SkpHzWeXxB5fPzDO8Jn_anEFSDLGUxUoelJVvmCM5uKLAeyKkqVdkHKW_eHLwxxawa5yrTv1GZFc5ChpEWpgr65sbkjTADL9oARdp2XbohhlI6PGG9WNKkcW36DPYqfnFKgaPsqzeMJf57ir2qEkL0V6sXrHFM3lLXMRWjmF6ma4jZltpyOC0sw-rrL2cAufRrlXEJ3No2A1u5fyB_UIWq5u_saAlNuUIAg0xOx_apSWH79qJQVMeyWKCINqLpOBe4bGXrZ2KEs10r0bYhQGBq8X8epkJ874dD7_HDjAPoLChI98LlwwMrCT7G62gEN-VK8F5yYFhcn-jWRs03jjF8_aDHKFnd8k1Uf4MjvX7VjBZUku3BiP7s0D-EZtxQ2i3SEsISuaB_Yliwj_IFth1v8eHs4mrHbPRD4oAEODY_Fi-afPjPI0gVvIPNV-wlk3bFKbes2mx7alOtoPomSOEBX84Ep9ppmcdgD1SBnHJYckJwp9ZVrRnA6r1JiyJHt19PckAZQbWi8BNW_PtYQeuawRTzpIWo7VJ04AQtJCYHELVxKi6QfTpKQVop0Az7iBfvNcAQi-vwNHrz0pbr_ccX-zCfbfoXvNQCLI9a8Nnsj3jgbIL0R-M1SjCx-p55TxzfDOATYBuxq8OeNtYnnrxqiBcW79O8-OkNGcfusD_vcCFWJOOJxGmo6ey0cxC5M8EsAfjLU94PZrzZhoJPv5ha-MaYKAMSh9fOy4WKxUpYmu2HX4cRyl865-hZgh13f1EFAsQGUg67e4P9jk8DeZqd3ScCP0kccd0fJdCDhCAXhCKdE8PfwY9m1-WlZDXHZxo1nzXhpH0XqwU_e7iVnSkSa70HFNIyTZxozafSvqlkmjkiPji5j6zJ0q10Z_OJFhIphgGlMlTEp7e1FqtZF29ThWfWwIgPbLouXPTjSP02VrECQoeHxaB13ajD6aPjCeLl3rdU-OhDlHLGWlPP-uM-pJLdsMGAVbvZxHM_713Nh6K7Q4D9YD3TFAPYH2a-87Mkaw62jPOobWHK_xkXh6smozNzdbJO4KgEap16P6jbcoiEBKAL6u325pjSYnUGr9aHiRlBxayyFaxhHeuQ7HGCNgOqFRisj7bNBoY8Kk9DGdD2_nf64Uhevus1l9nLPPTw0c0kHlT2Dm_ahziQzR59Pc0gE1zgREfQEg_7q8f81BgZI0FhzLesis9xSZnUPbFmobygbOWQd6sUztilrXQEOUb-2vAAkoNoicpE5wo1H0HalXMv-Tza7EkjKHCKoPuFgzYg4FN6R-43GG1jagCM5zdMoXeToTO44dpl_0Rsx3ewmbWmNJQS3TFfloNXYtwtNxXaylAghD63s3DOc9UXYZZfwmhSdc3419vZkRGJmvwz5tOhb3tbLrPXNvTYtzYr8f9CW8x6Yi20dd3ZoD2vTv8lZDx8lmEyOmw9ww0yYHyqLM9HCSESVXYgUvf-JHqsi6geF2-pECdcpIvKKhVcTAg73ogvUn6yY9KTgmf3iwA6VRwS0-hTRjWHZKsahx5Y2Fgt6GGnZqvpAudyLk6WiwWXBO4EpI372u2pBsOmzivwaBNq3UD8tyatUBpm_61-HlhoxBE9mZZGciI9VZDl71W3l_7Pkne9qBowJDmRdwgZqsh6IV5dt2vlC2Y5NAQG2n5GbjcchpdVfJiJG6znpKlX9CBjW7y5eG6c0RQl0E_P92MVcUnS9ZDf6QtEDre8qlWuv_qtEltsFDfvIjG4xA0Br_UOGcVDKu16eWh2jUHrckLTEbHeu3zOBLer5A6hDLMoS_vFBpGfkf8pXn0-61Jke_AxDA1i649sUBg1th3iVJNp26ND8HXyHkcqcUPvNqgmPCa7EqYYIJn5shXbxWgqDsM-SEwtLBOyoI4culqiKCzkzrwGQ5oyt9CNzQ-IrE4-BepfgM9kOgAcUUpETkONh2hWEhoL0afiwcpCWOnvySBgknlJfPCFqHI35pqLXvw9jHNz8NhCYpaOzkd3DfYQQUEjLc1njUDI4YBbCf3ZYs7lr-G5ZyOMLVimDI3psAQxC9eZ_jAY-Gn-6L3uOGv6W8Jt0bdpWGCk2iJ4DGOwdq2bRlAoXy9p0M4mh8UScU3yJfL25tvOLDk9ziPMoYzxZ9XTDuW5b4kHH4axAzZnJq-j-69msZn6TzNUB6dZRcVUcSAJhWFX5RS85I8az9rcyOy2_T3HmqKVBNDrzsLtHOznc8xgwKyGtHbtMUPdETdStXEg-e7mCxWFry3oBwXAYAFq75pj_gHsLKGyakGiIUc8v7EWLdiuE25JKx-5EYQFV90Ddzp9PM3xFfoWEO7XhQ8dvn1GefaicySOsDgMSHam91mFb9akXaRjJuuoOYj4btseiPVD53AqFjr7mY3ws6880pjAi6pyrjLGa76dLPNLCV_yf5PbNrZtfo5Jd-dPKEwO7JNP2zElICBARa64ain9tMA9xKf_uFgweh38Zn_gcLKo_2_0PTsVk6ZnHuSYlKolTBGvx2-KiLWuT9qlse1pDjODjaZrsNC4_GrvLmCeAPh0xpKp5hU3p5pqZSHNEXtAz-65V0rocFGpbcHKFz71zmkFxQkRen1GS5HhboGuiZcgTTkVoQKkgO3ttQn44N8gTB2nkjY_VMjhL4jIG9_2oumun9Fe0EOTt2RbbBd55PpYQHQ0e5VKQsa1M4oTQU_QAtjuP1IhiEuKzXomSPDYVMmitfMrZ1QkX4Embs2F5Ck5h4EQg93Pliknv8q-5Efdy3ramk8CV5Wd1S0o7Tn6151hdWXsbHi5G8lEpdC4gRJsvnS816kuVnqNEge7_k2nhVk5PqLPd1DZNMW55mtRnNE-lHMBnX5MbnUcle5pWCzbf-2VBUTy_vXplzNrSzx5kqiuKGT5bswfak2AiZhiJIFcg1tZtxcbBTIbhzY3HVUsQGNyL7FbSywNqi4ESJeOqSZWMCjsPxz2lUpTCuO3LjK2D30XgwtRFODMeA1xvF7K4G0ijD0JSmanJLWLQAADnGLS6gR0lacIOOxXSjeYcIa0TfgLE6J3py_QDu0FCNmUrx3Sy61oUQn2g1yjTStPCDrouVh-F9rEf0y3vZ41w4aO9EnJAVBWrdqp1xheJ9-kKhEnTVfROFXLQ5-SPtTe6mvgaSExw2dUfQVNAgEX6fW3AnR_c73-liZ_oSsTHH_QgARfQyzgms9HXXBziu_X5xpyorJpU-DtFivAo0CiN2a8jwwSpyu4KcseXNvBW3FVbtE5So_8CTz_wBNPcJLfofBhc6r1UfdDKLUHPHptHs9OwVcEP-UAfTv-7C1DzAeKkZYB9TU0OEuvLj3U5kA63LuS-C_XVWU56mVr7D5Albgl6QgZYNqaucgI3ch8A05CwXBIe2Sh4G7NhTEbzn-v08moNsNgzcFQbpxLLgfB9GxaCLrxmHh1LbuD0gFNTG2f1TrxM5MKB4Vuxt69q2FYKlShKZEjX3rnV1j5W7gPQAqh-94YvMvtv0iLcCj1U9BQ34dGwe4jQzfRqgJNYiciPYBMkIN0P7CEHh9-CjtbVU9op8okOBTim-E4WOAsKlw0AsiZlJJUgo4CGuK4eODu7M1oPuJo7mV5hkwlyYUCs_fi2Twz8pXfQGCMqgmyQKR0eOW5cQadZhu2W_p9IjI_rlyiewIziyWy2up-Gu3Jtke5dGriH2JdjrCkJTWNPma-AZay9yF7t5NTeGUp99dgBSGwS0_Q0ibQ02rBwI0KrLCCj1gxZo2cyDh6YrV2iIUbw6p_UW9Owa17t0JxbOtWyR3pHTPiOnEod7NgS39ETvzd38QyQdt_q6kPW-QmHqxk9vLGW3849d4bB3SqU_rPulw0s83uXGPHcSsYfSJCvRSJCscBeocL-UmWfMWVmVNgFNKQoKHNlf17wfPZPLjG9jp7B8t3gX3tahmfWGZzns-u875nTjq8PtklB8aI7xLWsKPNDXSdA0mMKTzn03hOkAaXS0NEO5S_BA2Mi_EWF3ZYSuNfnr7x6JIOSA0lcatBkwEh16y4H38XmmY_HQsSxSGeZLq2Gij6R8L5AaF0Wev74dEjPX7tWftaHE0rzRBPKqkNYdBmtRHf7wtYSovFXD7_zD9D0YAa8hN1_xPbWuYtBo0dLBmsX4bubLoxhTE8iwu1L3kyL5AQf-bDkH4-O6Up0JZZCQ8cxn2WzMgxo-PXcml-rlkurICJAAV9iRF9bOGsv7FzNJIJWauokNZoVfRX6GUvr0b4K6hS--F7YV-zjZpwOmghFgH20ufolBilzhwkzfkoPrG_G-vR7j0W2hdxXsRl3_2v7b59zP9UjKTx48eqkdJ9zQU4HZgqXnT9gwg7gaZKeGv5v11nfK7KWRwrOpGV1uoZ_gwmY0nZ96vaSt9uhW5Rf4SjG-g3962jC-9q6lDy4spSY3545ef9YjdnnEPGxYp4N_MFRN4DJCEAKCogpoC9GmpGwKbUe1vOG9vyj_El7VepOYWilSs8hKxfmefeAeNAbSfUuTCuUT6cv0ugTkmHrNMV2nP1HjwEAwLbgeRw0nKzjJ6wUeTLVE4vxsEQUu6EoP7vqK8cEGO-hd6Hf2BtGNoP9s9iIVdjLgFuAx3i9oQba3G30mwlX5WgTJZPp80WPOBBg1uqTtX1Ypehg92_eq3S0lCb1LXqYLvYlIzgjWr1E09zoq4-uW7CDwS9uKqcoOkrJgM6XYZk4VNdiLkziI5n76bkzz4OyzVoCCBWWkM0R3nRXS9U6IyoJtchwpg7G329daDkFNTflSKvg4eg4nIsp1jPqhHrnnBPLHxR8YavrC6fAwcF_8NmeoH7hDtM-U85jAYMtVrdqGfl29YJwJLPRwzMUUI99qIy49Luo16kJYWimw7RL_TQI4lXCaimWYEzLzQOMCTpI8i5I_XeJ2ud1DosrjVdJEs_JJnDqvM9YhpcwOQEMjpPtK8YsBOWYI7dRS28K77uRuph9kx5tWEFf2DgFQvr0awigqncxikcPpmxdgbIn-jRP2Llaj7tZ6-DuMoDK2fOdHLNG_j4g4XvCwPaMFevpJFpDNihkYdflhcO6VK7d3Mg9REyfDNoudEULk7SRhjnVizsRUe4Dso6NdhBkGFL3XoaPapQSJr1rx8QuxB36FYibNelgWbSG5ez-SKAbHBkpv6DQtRLSwAFJJ3wXPNgncg_RF2Mfc5oGjCo5udM5B54YZ_v8ZQ_DjMc7WR7aw4dpMFYL0fegHz-w4OornT6N9VH09fhC2V9PUIU5GviJxUjykhcdLPvva8Jo69nKPqvabIEDV2OAD6VlGh4lqRCE5qsr-Ifs0-X3tIlAnhdN3g1OKCMENeuO-gvyv49mI9JLJKDv-i2FxEGz_xHIEtfkjBMWUp9Itds3dUeepVk8dtsA3P0qekxQWIth9EARHsdRke5cidZGVKMpesWoxj-bsL0M_xZU9A6taEJGCTocGsoo8Y2RDdJ6T4CixLXJ5QAC93Dd51yZonG5cf6QBT1rgQJadnHW1MhkWPjnHI5pz4iLZ9pMm-cT2dPfGNjXO8y6ub-HRGEq_SPnwPK_gynVIWMZIAGSFX-M1Fd9dVBAOjeBifkho2nHYlH3ynio2FwCs4DGkKQbKe1UHNcx8CnDh4prT51nxgM_Ck1LhWy1Dr9rXLC903-YEv7MtnyiKkHKuIMIanbcYNOdGbs0ntWBDyuOq6ahEblLZ8dCjqRtC0_hwRI71GhbJQygqKlLwblM4uLnLdcM2k1GbkBgKmcLrqAJOWI6fJHm8b0uulzQqcwVLE8samQbJd5BhXfiVeCir2af-l8DsRa--PGz-skeh1aKTbVX7tIalafV8fyhActUdc5uE1OGHOZmIKTzerzZw6lI8zkblOfSrncXCmaAnHsuHY6Gom9Naye_EkqyUA3Uw-0pQc0APa6yTU5JsyFdQ5x_qrI8k6yGLap5Av_FRUatc9eBaJfhc4ikHjF-LzqOzXKwiMOAjMT7b1a8u_6sERqWQSJLnQrDZGgzsnnL0tOkhFIYAjl4jr4H4aN94e6jfOkur9a9fhue1KFdDU-puOrL8MNQgEg3AvB7vyo_Y4qeIQnmUFzLuGWM50edjxECjLqFfL9xd5fW53WQFUzxpRlKVdcEhT2YbskVI3fqERMSMF6SSeIfOoW4ik0C0hW26pMd4QYFYjXTycRoKhIiL072RF-N9hufa2g1WEqI-6EenXtzMep6EQ6FsP2MdhLsWm0JXMFnszrUXXIHdkieV7Rxp6-o5ihcOJX6uOpcISB9zw9MdG2IXaHIRF5kv4lrxBMeSxp884i-oITAY_sGvW0MbxIe1J-Y-E0S3R6CedCYYxZSvo7RQdtVFzfhO3HltvbtWSXO9S5UC39ZxTWcIRemMhm4hS3oJDyGXFaei3mkiOYEvWZFG_4m7LCMqtADCPdfklWZCktsr6y4_yH50P6NeHwQt-C87GSH26usHohyhs1WiCED8gXT8v_sDgtN5-vG4v444VzzXoXl-mksuLe_nVI5IHhpcT7YiBOjoCyoaoIzqI80hlS9an4dj0rolRymoVZLuh83jjZc9JQfajRR0RoiHZ29AQ757CH4RzEBG8hK7r0kSWWcDOXFFmfVd2JDAIBo_C9W56JoZEZ19CyOy7ErIPLpCJtGntSkdLAFw1WP7IkwVGGhJZyCJ6nEYXicv0vLwR8h-aUx5CA85crt89fLp426vaVfgBetiZnmN-9pRTgc6wTYTlevkvtjRTde5F30lenSyBaKdXt8uFZnHBBpQs4GVWb3l3zqvpq5X9uUMWcFPB0tQi8wAC3WQvQO-wssdY9AXFBr862ezu4_2V61NwhzoV9V_0MS9sGgewOhhNerdE-d2B-3uGCwH-yMjCUjt0h3SCM4ry3685i5G13q6_834kEAhOQhTW13VnfCqbmEBmGJqt6X1FHartQk0vJvRv3hat2Ev6ZjP0fcYIt-UZscX8YldFWxUxXgE8E-4QcUzU2L2c-D_88Ea9oRfjIBDAAMm4nXgPuAjy0-0u0g08ZwqrCswD4OS9CklHPdAZwXzcMumsjUyzGaA83VtctKxvRsaWgvqnLebGPxCV0q3f67uwpsA3Zf3xUq1_UvoItz4JDjZIN42umMxgx6MrF_0MmZPeyx6XiWn3J0JcJvs6F6TdhnfGIc5oRt9AMuS0kFaBzurfvWriJCIPMLp1tOmQqnBZqodAXA9RptEysl93Zlxbg_L9O1Cm6OuWx1iN-GIaWQaB0rHtGvNd8cmtXbj7FZerKI8DUE72yKpazNSm-9owrlRRKz6uEW34k0u7oAksSrWZOVn5L150WzZRNgNUcHstsmxlpfcBgVxShD3E3cnCh53Jd98tdtbMT6qzmTYEb1PPbUI1LURBNgBXHUBxSxmcUV3gyuUZUlOY1VWz81VU_nSjXsM0jwKZISsWFoJ6oFF8SJ6P9lOwrE1up1EQ38nFaQawbLfPgtvCTyGE-6bVyBApu18VQfE17KpGp_MasxHDeW90mf3-4ogcmIMWF-Tlxnp-3YfBZBNVrSPWesagIz_75BV6rj6EjIeOnV2r0FNIwk_h0-hSNcazVSb757Vz-S5dfCCVHmN_QvyjH3uLt4T1kGENUD5x8bfd5Kx-LklauyWDN4dbBIZYFNqDbSeB-mnyt2fjwWh6qFDbFw1ScbvXIdwS9e4Inw0iehnBUcGoyk5XQY3Rv6IHGsFBU_unSx6wn67oyLyDVu6l1VZkab6oPFcHQE3t4etQH1dFp1KLZFoXiZWdYEhR6L3jNO4ErMrYvSasl3Pi-WcdTYdXP7RTcxp35jF8x7HVuFNHZUf0rEdmXEVnrOL8qMS9OWgQ85Gjc6cDicM5BXuewIki1oS11r8Z8M5pEWcdWDgou4bwMGvNIQ9M9PmJ_HN1ihlUCTjjZfjNgKtFftvoj2FZs3A4GBbNNxrLPexSaQT1kdCdgMgqUUgufN29jHA2uE-_-F7s-FWXxq49B-gnm65Gp09tZrVfI64FDm4ismvO4qN_hhSCAOwA1xUm9REFPHLmk_hOfoy-0m5CP7U_h-B6JGalTDTd_9xlrb1QheXOx0C7IihV0kCFwCShArpt97V77jWMWhteOzKjKuRCCVN_prbu6XChWkBWJrp1jE7TLtFXM098FeZ-s9mr6_sQMIU3k90PThE_5bvX2W1DdjTPKWaWBSXi8XNOyDbm5l0zyRb1xI2oKiAldOjPdKkTl7xC7lWgOdPXV-CjCjkf0OKWEm3lZdq6ZSM7AIVU6efWjpUt9XuZocbIJlFgB4wOLZNPsQSQSYLG7MjyM6UsbcMvyIRR-XIkAIski04q8e2gx0GelAUZZvktwBnZwQrj5nKT4ADvW13yPBQg1Qrvls_UW4GigZyfgDuyqo8Ztl_gKpgmCgFMB2diFAAh7MxxoOP4mDqUbyfQ14Ca8c12kpn1XZ-I5O8foAxhueGhMpBIArHl5s2gSR2l5f9crGDaEvEj95C0TfQfVIkk6eY3TjmxUWdJ8RE1A_4SK-ZMrgmsF-jOdl2yW2lyWyjQ9zrdBy6E2_0IT9CO7yUDqLoGkmV4rfYEOiQgrcOR8Sx3IbwwqAmqHuw3RKV4eys49yrSsRbWTwgnmyTeLyLDZTpCMjDRozepd-rftQtcZfZd9UVoEsfKQQ8u3aikUMFQZzw2h5uUKSZVTl8iL_mGUUgQSbgh7a6wY4Jx1vyGxe5tHgQ39JJU9sZylqVLZTDSsCejPo3OUgpD9y-tEm8WhWH1DVzo_sLnYdosUOtTgw9No0X87782rCSJ1kbpGyrAgyZPhnpcsReeAg_OwtmpO73XN6bYMRXCBMtnYd44IbsDias2og0jviRzJulW850pdBAuESXAPCkTce_b7yWKEBP25aqihZrmq-spbwwqFOVpN-38CHTPGyHOXF80lqnYdyid4N52uy4mVjNZpE6AIl8J0ARXnHmNOhwyBluge0V6RU5mJGcssQmz3sU8UWnAi6W9KmhQC5XUOkismNhImECSqNcj2tgbvPnPY2gfRaHbFWehjuRjdvWTaFeKl9Mr2Hoj3hJJ9Rxy_RvaB76uqqOZUAu5sj9Ys9cF5R7_soNf_9HXzIc8y83p1iZ56EHlCUxZr-I8mQe66XgMUeG1vSETteCgkPeWNvkEyxGPSOi6dWdgV1XgJzOhoKEznzbEmSgcp2Ma7wFOgZCGVbLcHrl3-o9l5kKK_02MsnNNJr0YvZtq-znECVPTokNjWB9mNLkXYeFTZCMRQS7FdHz6O_0Pij3fkjYiP8vKzFmgaFlm9Nf6ZkC4O3L3lXH6Pt3MjUH0tKI8s6LCpZfymqSoDagMs3AvMv_Ew_0fh86qFzlU5wQAwq7LiTViIh97tOUG_R8FOgjeQ-jCg_s44PTbOaHGV5Axa9Lkh49y-FcTO95Wt7A6HCLq_sZGgcyiGjaIoIAU1ViJC1_oQDHp2qXAve6834AkZb0jtK4UqnmVjCY8v2BDgTCFjmoZZHVAWSlYtItq9HHoVfXYHIg8nL-zarua1GNXGlOBbzZOAR5fms4mgJ9pJ_zAle8angWpl7dptWkwg3In3VThXkGrpa3MFi80hLSkknu3LaxEmJrwtolKDrM1EmXc8miQxin6lFcQpTkMsgKypARE0YY3QVJdKfYN47wAwfIYHG8ymoDVZSGitLAnMm9zerlh9mtJeqDf_adqLyPdm9VNfR7HUX7ex1g_rS6ZPVWppKS1W8fcolKAoVehT8wZ6hRpITGuXa7rP9_ITILI8tfrSEeE4tv8qKa3vaaJjeKUkIpzuqNnrNzX3eJCI7yjvFmIXxe_pTP6G1hSJpN6fSGLFY1Z3nfsy4fIKLMtEstHn09cmu3zCZnMGSGt6S3GS7_olBDDeD-xXN1405OBNJK0T8r4m3RN07zavdiI6Civ1BMBX90cUhuOPLMRCkrGVg9KbJyZHO9_wkw3VzDKt20uhCjx85yVrXja3II84JAkk1N-MN0yJhb89VgtFaHCTleSUxKR23CTcjlImhGCU1TawOTAWFPChsNvxJlEGvkrzXx2ATP2AZ5yiz4-uso9-LioZFAIU3d3TvgO5uNNYwVdIsmUq-LITWPAT_hJFRMCVikdGTF6cj9FthSL5Tk0WtD3Id5Lfz-MU5yF9g_jEArER6_hBc1insIvTtnvykNjBigtzzItiLKgCM5_6LEcrL0sWjMt3a61tDvXiwtah0qWmmA4quHNmkvdad2Iq2krIppS2BdkYysap_JA7PaN4-4ZIS7Gd4j4mRZNXRgw08uVoI2S2av01CmTMipOeXpvTyy3wTZEVI6p1dA1hKBW4jadNSZSChGyBthc-y3FCxlJAy6QhHDRJBBcbgaBbMETvqRhRutXantOilae-wC8xhHcFlcJcHE6EwrkERRaCgLoprmvdr7GDn93eiPRtxtzUfo_LqV4wG-qkSiy5_Z0dULd1IQs1FBE_qzFkZa4qkhe5Ru1rPMyosaTU9mxKS-xmiQM5XXYRyrSyx7HIplPHz-HaOuvcUyF9caOibYqy2CCVJEQuC7QgWG0NQCIeiKgPhKFLL2tWS6qOAhoiKXXlPUJGtVhLHu4HBD2Bdb9JLYsG0n68qsY_QAGBeQ2btc9w5Vbd4uIsvPgoNY8tk59rVXxn0izWgg0eMwiXf0fvK18uoppyXrCIBpd5SATXe4m1hsZE5JKQeklT89lG0nR_mqD4aUDZb3aiv6f2pp7OC_OA4cKYpT5FbDLqS_IAm5jlEVTJSZy30aCYkP1zDM5kMS8-o2Afl0nk8EwxRdYB2RqhrtJ1Q6bJJOnSMSs0DoyjctWqAysh--vZYKNcIf5liGv3_IOU1F3K0BmLyeGehqxjiaHnCijvcyeNLGtPj2Bq1YTVilpK2q0JfA4dLjxbbAnCqEHsVVvB5E7Le9TWBhFVWaYsXysszjUxInVQBt-Mpzo4e0AlLKE0F7hA0OdACTdaRv2TPR959d0VhXDlWM-wLDScLDvwgWF6r5xHDXqYrPSDGt8wAdAHL3g9joGfYRXpp8lRaCYoJ8GWeWkDH0qRNzESDqoW7KK6Qsw1B36eMtibvXF34KVOR8vkygEL1v3vwhHfWxpjBhZSkI4o4WL3ZFi6bilyRgP6ARPTgDp0bg0p4TazZyidlo3EQSMzXTiCf9pZK6sMh2ZVZXsrUhhBClW5z_hFe006GO1GomZxFQ0nqHMr4geQJuvBpzA1UNIme3enqkht-o2HSgULk5BqTX5vGoQXD9zuqWcia7Ou2A3DD0qWAo4RTgKlXk1x7qu3qAbhuMZPCTLQ20Illa0JP9Dz5u7KoxzaoZak5_bqv5BeH_i6HRjAb5-W0d5fV2Os8_nBeR8_j2fu-ZZSrmGPhRb-xu6FC3RLeU30mFVgSGgQN5i8q5r0cpPzsgQLoqAyOhI7pQ5wM1viy6E_D9AhyXvRuF_rp09_4y9keNA4LWpojwr2Gal44rViCmBo9-7_D374xneWZRN1hJ694-Ny4-RcqN4y7YkxLLvXAjvEeY8eu3Qoc1cA6_rpZaZEorNw_WAqims_h1vwoxxhG-GpctDYQdVGkWZdxdRfepDIvdzhP3Z2OIkYIDSGKdbDXfuLYVhDT0-GIPmYrVW2ErM1DqzDCDXC4MlV9IwPJ7G4zZhllBiIWCo0r1Y-v_vXoG631A8Td3kuqK6u6rY5kDyJ6TARm6caZjy8mQDOCXeMkHzI5WCidcE4AXoDZMUt3VNs8E0NBbVNQHHjNkx2JDWexISqsIQzH4i0bbjAnhmUGawO9Ep13BkIbmeWGJd6F-OebRpRW_8g2CNZtFC9NGgMFD45srXxUkqxgFqBDo2KVPqJkox1dCppEasN1snoFnp9QeJj6mp7dW5zRSNvDxE-tx3SbVqsEftLXKF6RWx7s9M6VcMheZQWbJnzGAOF82GZ5GIZDChcmkcYJj8EkFXzUo3w5FftKb-kWXbCC7xUger9Mdl3CTYz9en0lrkhYT9-JXWUfp4f338Scs3Bg-DccmbEXz_3PdDmghC1wIBpdTxhleAIMhi5Tqqp9OFNNeo-WtYoQF59ehOEY8z65nPJXCy371W9qVtvViDcqvjnVFJjfvo896YWjffNXn2Ij4Kb99wQv5CCLRdm0nGEEl1DU5_z3cmK5-IHzHxcrhKZAGLg9dJEBzD9cBjQGne11PG7GTZ_nIW_houGOxzwO5SWOhM5JaSAgS-mnzZojI1gzR0-w3G7TRIjn1aK5tUauKflAQM6Y96vlzHO8XeKXeZXa-V9szj5nPv5tWN-Mn7ERCm3HlfYFE00nmn8SYWlnRpPrRoa84ycuLKsDuTCe7nI_Ow0fU3SlzBDw42b_BygxKRTuKa1o5rDufgLeIHYo2M-R3wbFx_JfWj0f1pAh3tA3co8m06ijje4GzOzAbMpl0Mn0pPJ2Eykb8xJQ3gdoqGP31bxyandMs9VIj5-MedyPb_onzOuLSAx9FRAp_2uego98ziW7B9FQRdUNIG-1Rx6MmYWR8r3R0d8oegaFjYPXlffZReOAFVeHXicBNFFEcJrcBudDOAlyWKFB3g_Z_XoohEZl90dmvyQPjYV2rL6GjKSjBKXX8LofNQtogvgBgzx4A5NUYs2pxXdxIdfKlXj8tU-fNCcHEY";if(!e)return null;if(Et&&Et.sealed===e)return Et;let t=null;try{t=ar.parse(JSON.parse(tn(e,rm)))}catch{t=null}return Et={sealed:e,bundle:t},Et}function nn(){let e=mi();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=lr(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function om(){let e=mi();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>X(t.slug))),e.keys):null}function rn(e,t=!1){if(t||!e||e.length===0){let n=om();return n?new Set(n):null}return new Set(e.map(n=>sm.test(n)?n:X(n)))}var pi=null;function cr(e){pi=e}async function im(e,t){let n=await io();if(n.size>0)return rt(e,n.values(),t,n);let r=nn();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var am=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,lm=2048,cm=8192,um=32*1024;function fm(e,t,n){let r=Vt(e,{...t,keep_failures:!0,fold_passing:!1,mask_abs_paths:!1,transform:void 0,truncate_lines_at:void 0,max_lines:void 0,on_empty:void 0},{verbosity:"normal",smartCode:!1});if(r.trim().length===0)return oe(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
72
72
  `)?`
73
73
  `:"";return Kt((s?r.slice(0,-1):r).split(`
74
74
  `)).join(`
75
- `)+s}async function sn(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,c=ze(Go(e.startsWith("bash-tool: ")?e.slice(11):e)),u=o!=null&&o!==0&&!(o===1&&ap.test(nr(c)??c)),f=zo(a??mi??ip),d=null;for(let P of Jo(e))if(d=await f(P,n),d)break;!d&&s>=lp&&!er.test(e)&&(d=await f(`bash-tool: ${e}`,n));let p=tr(e.startsWith("bash-tool: ")?e.slice(11):e),h=d?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(ze(p)),_=o==null&&(h?/^(?:fatal|error):/im.test(oe(t)):Uo(t)),g=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
75
+ `)+s}async function sn(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,c=ze(Go(e.startsWith("bash-tool: ")?e.slice(11):e)),u=o!=null&&o!==0&&!(o===1&&am.test(nr(c)??c)),f=zo(a??pi??im),d=null;for(let P of Jo(e))if(d=await f(P,n),d)break;!d&&s>=lm&&!er.test(e)&&(d=await f(`bash-tool: ${e}`,n));let m=tr(e.startsWith("bash-tool: ")?e.slice(11):e),h=d?.slug==="git-log"&&m!=null&&/^git\s+log(?:\s|$)/.test(ze(m)),_=o==null&&(h?/^(?:fatal|error):/im.test(oe(t)):Uo(t)),g=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
76
76
  `)?t.slice(0,-1):t).split(`
77
- `).length<=60,R=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(ze(p)),E=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,O=d?.slug==="read-tool"&&s<up;if(!i&&(E||O||R||g&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:u||_,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(u||_)&&si.test(c)){let P=ai(t,l.verbosity??"normal"),B=P===null?s:Buffer.byteLength(P,"utf8");if(P!==null&&B<s)return{output:P,filterId:d.slug,rawBytes:s,filteredBytes:B,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(u||_)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:u||_,...i?{droppedTail:null}:{}};let C=P=>{if(!i)return P;let B=P.filteredBytes>s||s>0&&P.output.length===0?t:P.output,de=!P.debugBypass&&!d?.preserve_exact?or(B,"minimal",P.filterId??""):B,ut=rr(de)===de?de:rr(B);return{...P,output:ut,filteredBytes:Buffer.byteLength(ut,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!u&&!_&&!Qo(e)){let P=ei(t);if(P!==null)return C({output:P,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(P,"utf8"),debugBypass:!1,droppedTail:null})}if(u||_){let P=i?Vt(t,{...d,keep_failures:!0,transform:void 0,max_lines:void 0,truncate_lines_at:void 0,on_empty:void 0},{verbosity:"minimal",smartCode:!1}):d.strip_on_failure&&!d.preserve_exact?fp(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?oe(t):t;!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(P=Xo(P)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(P)&&/^={3,} FAILURES ={3,}\r?$/m.test(P)&&(P=P.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let B=!i&&!d.preserve_exact&&s>=cp?So(P.split(`
77
+ `).length<=60,R=s<=16384&&m!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(ze(m)),E=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,O=d?.slug==="read-tool"&&s<um;if(!i&&(E||O||R||g&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:u||_,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(u||_)&&si.test(c)){let P=ai(t,l.verbosity??"normal"),B=P===null?s:Buffer.byteLength(P,"utf8");if(P!==null&&B<s)return{output:P,filterId:d.slug,rawBytes:s,filteredBytes:B,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(u||_)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:u||_,...i?{droppedTail:null}:{}};let C=P=>{if(!i)return P;let B=P.filteredBytes>s||s>0&&P.output.length===0?t:P.output,de=!P.debugBypass&&!d?.preserve_exact?or(B,"minimal",P.filterId??""):B,ut=rr(de)===de?de:rr(B);return{...P,output:ut,filteredBytes:Buffer.byteLength(ut,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!u&&!_&&!Qo(e)){let P=ei(t);if(P!==null)return C({output:P,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(P,"utf8"),debugBypass:!1,droppedTail:null})}if(u||_){let P=i?Vt(t,{...d,keep_failures:!0,transform:void 0,max_lines:void 0,truncate_lines_at:void 0,on_empty:void 0},{verbosity:"minimal",smartCode:!1}):d.strip_on_failure&&!d.preserve_exact?fm(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?oe(t):t;!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(P=Xo(P)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(P)&&/^={3,} FAILURES ={3,}\r?$/m.test(P)&&(P=P.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let B=!i&&!d.preserve_exact&&s>=cm?So(P.split(`
78
78
  `)).join(`
79
- `):P,de=B.length<P.length;return C({output:B,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(B,"utf8"),debugBypass:!0,...de?{droppedTail:t}:{}})}let{text:N,droppedTail:D}=Yn(t,d,i?{...l,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:l),F=!i&&!d.preserve_exact?or(N,l.verbosity,d.slug):N,ve=Buffer.byteLength(F,"utf8");return t.trim().length>0&&ve>=s?C({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):C({output:F,filterId:d.slug,rawBytes:s,filteredBytes:ve,debugBypass:!1,droppedTail:D})}function dp(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function hi(e,t=Date.now()){let n=e.lastHeartbeatOkAt;if(typeof n=="number"&&t-n>dp())return!0;if(e.subEndsAt){let r=Date.parse(e.subEndsAt);if(Number.isFinite(r)&&t>r)return!0}return!1}function gi(e,t=Date.now()){return e.plan}var pp=[[/(authorization\s*:\s*)([A-Za-z][A-Za-z0-9._-]*)\s+[^\s'"]+/gi,"$1$2 [REDACTED]"],[/(authorization\s*:\s*)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/(bearer\s+)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-b|--cookie)[=\s]+['"]?)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/(--?(?:password|passwd|passphrase|apipass|pass|pwd|token|api[-_]?key|secret|bearer|cookie|jwt)(?:-[a-z0-9]+)*[=\s]+)\S+/gi,"$1[REDACTED]"],[/((?:^|\s)-b[=\s]?['"]?)[^\s'"=]+=[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*:)(\/[^/\s'"][^\s'"]*|[^\s/'"0-9][^\s'"]*|[0-9][^\s'"]*[^\s'"0-9][^\s'"]*)/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*[^\s:/'"0-9][^\s:/'"]*:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:[A-Za-z0-9]+-){0,8}(?:X-Api-Key|Private-Token|[A-Za-z0-9]+-(?:Token|Key|Auth|Secret))\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/(-i\s+)(\/[^\s]+|~\/[^\s]+|[A-Z]:\\[^\s]+)/g,"$1[REDACTED]"],[/([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^:/\s@]*:)[^\s@]+(@[^@/\s]+)/g,"$1[REDACTED]$2"],[/(AWS_(?:ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(GOOGLE_APPLICATION_CREDENTIALS\s*=\s*)\S+/g,"$1[REDACTED]"],[/(AZURE_(?:CLIENT_SECRET|TENANT_ID|CLIENT_ID)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-(?:proj-)?[A-Za-z0-9_-]{20,})/g,"sk-[REDACTED]"],[/\b(OPENAI_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(ANTHROPIC_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-ant-[A-Za-z0-9_-]{20,})/g,"sk-ant-[REDACTED]"],[/\b(GH(?:_|ITHUB_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(GITLAB_TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(SLACK_(?:BOT_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/(xox[bpsoa]-[A-Za-z0-9-]{10,})/g,"xox[REDACTED]"],[/(xapp-[A-Za-z0-9-]{10,})/g,"[REDACTED]"],[/(sk_(?:test|live)_[A-Za-z0-9]{16,})/g,"sk_[REDACTED]"],[/(gh[a-z])_[A-Za-z0-9]{20,}/g,"$1_[REDACTED]"],[/(github_pat)_[A-Za-z0-9_]{20,}/g,"$1_[REDACTED]"],[/(gl(?:pat|rt|soat|imt|dt|ft|agent|oas|cbt|ptt))-[A-Za-z0-9_-]{16,}/g,"$1-[REDACTED]"],[/(npm_[A-Za-z0-9_-]{20,})/g,"npm_[REDACTED]"],[/(?:AKIA|ASIA|AGPA|AIDA|AROA|ANPA)[0-9A-Z]{16,}/g,"[REDACTED_AWS_KEY]"],[/AIza[A-Za-z0-9_-]{35}/g,"[REDACTED_GOOGLE_KEY]"],[/hv[sb]\.[A-Za-z0-9_-]{20,}/g,"[REDACTED_VAULT_TOKEN]"],[/dop_v1_[A-Za-z0-9]{40,}/g,"[REDACTED]"],[/dckr_pat_[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/pypi-[A-Za-z0-9_-]{16,}/g,"[REDACTED]"],[/rk_(?:live|test)_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/whsec_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/SG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/(eyJ[A-Za-z0-9_-]{6,}(?:\.[A-Za-z0-9_-]{4,}){1,2})/g,"[REDACTED_JWT]"],[/-----BEGIN [A-Z ]*PRIVATE KEY-----(?:[\s\S]*?-----END[^\n]*-----|\r?\n[A-Za-z0-9+/=][A-Za-z0-9+/=\r\n]*)?/g,"[REDACTED_PEM]"],[/\b((?:--?)?[A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|AUTH|_PWD)[A-Za-z0-9_]*['"]?\s*=\s*)(?:"[^"]*"|'[^']*'|[^"'\s]\S*)/gi,"$1[REDACTED]"],[/\b([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|_PWD)[A-Za-z0-9_]*['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/((?:^|[\s'"{,])['"]?(?:[A-Za-z0-9_]+_)?auth['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/(\bpwd\s*[=:]\s*)(?:"[^"]*"|'[^']*'|[^/~\s][^\s;'"]*)/gi,"$1[REDACTED]"],[/([=:]\s*["']?)[A-Za-z0-9_\-+/=]{40,}/g,"$1[REDACTED]"]];function Tt(e){let t=e;for(let[n,r]of pp)t=t.replace(n,r);return t}import{join as _i}from"node:path";import{appendFileSync as bp,chmodSync as _p,existsSync as xp,mkdirSync as wp,readFileSync as L_,renameSync as j_,rmdirSync as H_,statSync as vp,unlinkSync as B_,utimesSync as z_,writeFileSync as U_}from"node:fs";import{createHash as p_,randomUUID as mp}from"node:crypto";import{readFile as yi,writeFile as ki,mkdir as hp}from"node:fs/promises";async function ur(){try{let n=(await yi(xt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await hp(T(),{recursive:!0});let e=mp();try{return await ki(xt(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await yi(xt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await ki(xt(),e,{mode:384}),e}}import{readFile as gp,writeFile as k_,mkdir as b_,chmod as __,rm as x_,rename as w_,readdir as v_}from"node:fs/promises";import{join as yp}from"node:path";var kp="settings-cache.json",bi=kt.parse({}),$_=kt.partial().extend({filters:kt.shape.filters.removeDefault().partial().optional()});async function Ue(){let e=null;try{let t=JSON.parse(await gp(yp(T(),kp),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?kt.parse({...bi,...e}):bi}var Sp=512*1024;function xi(){return _i(T(),"spool")}function Ep(e){return _i(xi(),`${e}.jsonl`)}function on(e,t){if(St())try{wp(xi(),{recursive:!0,mode:448});let n=Ep(e);if(xp(n)&&vp(n).size>=Sp)return;bp(n,JSON.stringify(t)+`
80
- `,{mode:384}),_p(n,384)}catch{return}}var $p=/^[a-z0-9][a-z0-9._-]*$/i,Rp=/^[a-z][a-z-]+$/,Ap=/^[A-Za-z_][A-Za-z0-9_]*=/,Cp=new Set(["gh","glab","gup","hub","gist"]),Ip=/^(gh[a-z]_|github_pat_|gl(?:pat|rt|soat|imt|dt|ft|agent|oas)-|npm_|xox|sk-|sk_|eyj|a(?:kia|sia|gpa|ida|roa|npa)|aiza|hv[sb]\.)/i,Op=24,vi=new Set(["docker","podman","npm","pnpm","yarn","npx","bun","deno","cargo","rustup","go","pip","pip3","uv","poetry","brew","apt","apt-get","dnf","yum","pacman","kubectl","helm","terraform","aws","gcloud","az","systemctl","composer","bundle","gem","dotnet","prisma","tkr","rtk","token"]),Pp=new Set([...vi,"git","gh","node","python","python3","bash","sh","zsh","psql","mysql","sqlite3","java","ruby","perl","rg","fd","jq","make","gradle","mvn","vitest","jest","tsc","esbuild","vite","webpack","playwright","rails","rake"]),Np=new Map([["git",new Set(["status","diff","log","show","blame","ls-files","rev-parse","branch","fetch","pull","push","commit","checkout","switch","merge","rebase","stash","tag","remote","add","reset","restore","clean","grep"])],["gh",new Set(["pr","issue","run","repo","api"])]]),Dp=new Set(["-C","-c"]);function Mp(e){if(!/[\\/]/.test(e))return e;let t=e.split(/[\\/]/).filter(r=>r.length>0).pop()??"",n=t.toLowerCase().endsWith(".exe")?t.slice(0,-4):t;return Pp.has(n.toLowerCase())?n:""}function Fp(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Dp.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function wi(e){let t=e.toLowerCase();return t.startsWith("git")||Cp.has(t)}function fr(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&Ap.test(t[n]??"");)n+=1;let r=Mp(t[n]??"");if(!r||!$p.test(r)||r.length>Op)return"";let s=Np.get(r.toLowerCase());if(s)return Fp(r.toLowerCase(),s,t.slice(n+1));if(wi(r)||Ip.test(r)||Tt(r)!==r)return"";let o=t[n+1];return o&&wi(o)?"":(o&&vi.has(r.toLowerCase())&&Rp.test(o)?`${r} ${o}`:r).slice(0,64)}async function Si(e){if(!e.telemetryOptIn)return;let t=fr(e.cmd),n=t&&Tt(t)===t?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";on("telemetry",{cmd:n,tokensSaved:Math.max(0,Math.round(e.tokensSaved)),...e.tokensRestored?{tokensRestored:Math.max(0,Math.round(e.tokensRestored))}:{},...e.rawTokens!=null?{rawTokens:Math.max(0,Math.round(e.rawTokens))}:{},optimized:e.optimized,...r?{sessionId:r}:{},...e.host?{host:e.host}:{}})}async function Ei(e){if(e.plan!=="pro"||Bo(e.filterId)||!(await Ue()).telemetryOptIn)return;let t=fr(e.cmd);!t||Tt(t)!==t||on("learn",{cmd:t,filterId:e.filterId==null?null:X(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}import{appendFileSync as jp,chmodSync as Hp,mkdirSync as Bp,readFileSync as Ii,realpathSync as zp,renameSync as Oi,rmSync as Pi,statSync as Ni,writeFileSync as dr}from"node:fs";import{basename as $i,dirname as Di,join as an,resolve as Up,sep as fx}from"node:path";var Lp={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function Ti(e){return e?Lp[e]??"anthropic":"anthropic"}var Zp="stats.jsonl",Gp="stats-ledger.json",Ri=2*1024*1024,Jp=3e4,Kp=3e4,Vp=new Set(["n","g","e"]),Wp=256;function Mi(){return{n:0,nc:0,r:0,f:0,or:0,of:0,x:0,sn:0,sr:0,sf:0,mr:0,mf:0,rn:0,rb:0,tn:0,tr:0,tf:0,ox:0,t0:null,t1:null,cmds:{},prov:{},rl:{},fb:{}}}function qp(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return typeof n.t!="number"||!Number.isFinite(n.t)||n.t<0||n.t>864e10||typeof n.r!="number"||!Number.isSafeInteger(n.r)||n.r<0||typeof n.f!="number"||!Number.isSafeInteger(n.f)||n.f<0||n.r+n.f===0?null:{t:n.t,r:n.r,f:n.f,m:n.m===1,...typeof n.h=="string"?{h:n.h}:{},...typeof n.k=="string"?{k:n.k}:{},...typeof n.c=="string"&&n.c?{c:n.c}:{},...typeof n.p=="string"&&n.p?{p:n.p}:{},...typeof n.s=="string"&&n.s?{s:n.s}:{},...typeof n.o=="string"&&Vp.has(n.o)?{o:n.o}:{}}}catch{return null}}function Yp(e,t){if(!t.c)return;let n=e.cmds[t.c]??{n:0,nc:0,r:0,f:0,sh:!1};n.n+=1,t.f<t.r&&(n.nc+=1,n.rr=(n.rr??0)+t.r,n.rf=(n.rf??0)+t.f),(t.k==="sh"||t.k==="restore")&&(n.sh=!0),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function Xp(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function Qp(e,t){let n=Xp(t),r=e.rl[n]??{n:0,nc:0,r:0,f:0};if(r.n+=1,r.r+=t.r,r.f+=t.f,t.f<t.r&&(r.nc+=1),e.rl[n]=r,t.f>=t.r&&t.o){let s=`${t.o} ${t.c??""}`,o=e.fb[s]??{n:0,r:0};o.n+=1,o.r+=t.r,e.fb[s]=o}}function em(e,t){if(t.m){e.mr+=t.r,e.mf+=t.f;return}if(e.t0=e.t0==null?t.t:Math.min(e.t0,t.t),e.t1=e.t1==null?t.t:Math.max(e.t1,t.t),t.k==="sh"&&t.r>Kp){e.ox+=1;return}if(Yp(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):Qp(e,t),e.n+=1,e.or+=t.r,e.of+=t.f,t.f>t.r&&(e.x+=1),t.h==="shell"&&t.k!=="restore"&&(e.tn+=1,e.tr+=t.r,e.tf+=t.f),t.f<t.r){e.nc+=1,e.r+=t.r,e.f+=t.f,t.k==="sh"&&(e.sn+=1,e.sr+=t.r,e.sf+=t.f);let n=Ti(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function tm(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function Fi(e){return an(Di(e),Gp)}function nm(e){let t=Fi(e),n;try{n=Ii(t,"utf8")}catch{return{}}try{let r=JSON.parse(n);if(!r.days||typeof r.days!="object")throw new Error("invalid ledger");let s={};for(let[o,i]of Object.entries(r.days))!/^\d{4}-\d{2}-\d{2}$/.test(o)||!i||typeof i!="object"||(s[o]={...Mi(),...i});return s}catch{try{Oi(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function Ai(e,t){let n=`${e}.tmp-${process.pid}`;dr(n,t,{mode:384}),Oi(n,e)}function rm(e){try{return dr(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Ni(e).mtimeMs<Jp?!1:(Pi(e,{force:!0}),dr(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function sm(e,t=Ri,n=Ri/2){try{if(Ni(e).size<=t)return}catch{return}let r=`${e}.lock`;if(rm(r))try{let s=Ii(e,"utf8").split(`
81
- `).filter(c=>c.trim()!==""),o=s.length,i=0;for(;o>0;){let c=Buffer.byteLength(s[o-1])+1;if(i+c>n)break;i+=c,o-=1}let a=nm(e);for(let c of s.slice(0,o)){let u=qp(c);if(!u)continue;let f=tm(u.t),d=a[f]??Mi();em(d,u),a[f]=d}let l=s.slice(o);Ai(e,l.length?`${l.join(`
79
+ `):P,de=B.length<P.length;return C({output:B,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(B,"utf8"),debugBypass:!0,...de?{droppedTail:t}:{}})}let{text:N,droppedTail:D}=Yn(t,d,i?{...l,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:l),F=!i&&!d.preserve_exact?or(N,l.verbosity,d.slug):N,ve=Buffer.byteLength(F,"utf8");return t.trim().length>0&&ve>=s?C({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):C({output:F,filterId:d.slug,rawBytes:s,filteredBytes:ve,debugBypass:!1,droppedTail:D})}function dm(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function hi(e,t=Date.now()){let n=e.lastHeartbeatOkAt;if(typeof n=="number"&&t-n>dm())return!0;if(e.subEndsAt){let r=Date.parse(e.subEndsAt);if(Number.isFinite(r)&&t>r)return!0}return!1}function gi(e,t=Date.now()){return e.plan}var mm=[[/(authorization\s*:\s*)([A-Za-z][A-Za-z0-9._-]*)\s+[^\s'"]+/gi,"$1$2 [REDACTED]"],[/(authorization\s*:\s*)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/(bearer\s+)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-b|--cookie)[=\s]+['"]?)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/(--?(?:password|passwd|passphrase|apipass|pass|pwd|token|api[-_]?key|secret|bearer|cookie|jwt)(?:-[a-z0-9]+)*[=\s]+)\S+/gi,"$1[REDACTED]"],[/((?:^|\s)-b[=\s]?['"]?)[^\s'"=]+=[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*:)(\/[^/\s'"][^\s'"]*|[^\s/'"0-9][^\s'"]*|[0-9][^\s'"]*[^\s'"0-9][^\s'"]*)/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*[^\s:/'"0-9][^\s:/'"]*:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:[A-Za-z0-9]+-){0,8}(?:X-Api-Key|Private-Token|[A-Za-z0-9]+-(?:Token|Key|Auth|Secret))\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/(-i\s+)(\/[^\s]+|~\/[^\s]+|[A-Z]:\\[^\s]+)/g,"$1[REDACTED]"],[/([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^:/\s@]*:)[^\s@]+(@[^@/\s]+)/g,"$1[REDACTED]$2"],[/(AWS_(?:ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(GOOGLE_APPLICATION_CREDENTIALS\s*=\s*)\S+/g,"$1[REDACTED]"],[/(AZURE_(?:CLIENT_SECRET|TENANT_ID|CLIENT_ID)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-(?:proj-)?[A-Za-z0-9_-]{20,})/g,"sk-[REDACTED]"],[/\b(OPENAI_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(ANTHROPIC_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-ant-[A-Za-z0-9_-]{20,})/g,"sk-ant-[REDACTED]"],[/\b(GH(?:_|ITHUB_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(GITLAB_TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(SLACK_(?:BOT_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/(xox[bpsoa]-[A-Za-z0-9-]{10,})/g,"xox[REDACTED]"],[/(xapp-[A-Za-z0-9-]{10,})/g,"[REDACTED]"],[/(sk_(?:test|live)_[A-Za-z0-9]{16,})/g,"sk_[REDACTED]"],[/(gh[a-z])_[A-Za-z0-9]{20,}/g,"$1_[REDACTED]"],[/(github_pat)_[A-Za-z0-9_]{20,}/g,"$1_[REDACTED]"],[/(gl(?:pat|rt|soat|imt|dt|ft|agent|oas|cbt|ptt))-[A-Za-z0-9_-]{16,}/g,"$1-[REDACTED]"],[/(npm_[A-Za-z0-9_-]{20,})/g,"npm_[REDACTED]"],[/(?:AKIA|ASIA|AGPA|AIDA|AROA|ANPA)[0-9A-Z]{16,}/g,"[REDACTED_AWS_KEY]"],[/AIza[A-Za-z0-9_-]{35}/g,"[REDACTED_GOOGLE_KEY]"],[/hv[sb]\.[A-Za-z0-9_-]{20,}/g,"[REDACTED_VAULT_TOKEN]"],[/dop_v1_[A-Za-z0-9]{40,}/g,"[REDACTED]"],[/dckr_pat_[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/pypi-[A-Za-z0-9_-]{16,}/g,"[REDACTED]"],[/rk_(?:live|test)_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/whsec_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/SG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/(eyJ[A-Za-z0-9_-]{6,}(?:\.[A-Za-z0-9_-]{4,}){1,2})/g,"[REDACTED_JWT]"],[/-----BEGIN [A-Z ]*PRIVATE KEY-----(?:[\s\S]*?-----END[^\n]*-----|\r?\n[A-Za-z0-9+/=][A-Za-z0-9+/=\r\n]*)?/g,"[REDACTED_PEM]"],[/\b((?:--?)?[A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|AUTH|_PWD)[A-Za-z0-9_]*['"]?\s*=\s*)(?:"[^"]*"|'[^']*'|[^"'\s]\S*)/gi,"$1[REDACTED]"],[/\b([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|_PWD)[A-Za-z0-9_]*['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/((?:^|[\s'"{,])['"]?(?:[A-Za-z0-9_]+_)?auth['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/(\bpwd\s*[=:]\s*)(?:"[^"]*"|'[^']*'|[^/~\s][^\s;'"]*)/gi,"$1[REDACTED]"],[/([=:]\s*["']?)[A-Za-z0-9_\-+/=]{40,}/g,"$1[REDACTED]"]];function Tt(e){let t=e;for(let[n,r]of mm)t=t.replace(n,r);return t}import{join as _i}from"node:path";import{appendFileSync as bm,chmodSync as _m,existsSync as xm,mkdirSync as wm,readFileSync as L_,renameSync as j_,rmdirSync as H_,statSync as vm,unlinkSync as B_,utimesSync as z_,writeFileSync as U_}from"node:fs";import{createHash as m_,randomUUID as pm}from"node:crypto";import{readFile as yi,writeFile as ki,mkdir as hm}from"node:fs/promises";async function ur(){try{let n=(await yi(xt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await hm(T(),{recursive:!0});let e=pm();try{return await ki(xt(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await yi(xt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await ki(xt(),e,{mode:384}),e}}import{readFile as gm,writeFile as k_,mkdir as b_,chmod as __,rm as x_,rename as w_,readdir as v_}from"node:fs/promises";import{join as ym}from"node:path";var km="settings-cache.json",bi=kt.parse({}),$_=kt.partial().extend({filters:kt.shape.filters.removeDefault().partial().optional()});async function Ue(){let e=null;try{let t=JSON.parse(await gm(ym(T(),km),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?kt.parse({...bi,...e}):bi}var Sm=512*1024;function xi(){return _i(T(),"spool")}function Em(e){return _i(xi(),`${e}.jsonl`)}function on(e,t){if(St())try{wm(xi(),{recursive:!0,mode:448});let n=Em(e);if(xm(n)&&vm(n).size>=Sm)return;bm(n,JSON.stringify(t)+`
80
+ `,{mode:384}),_m(n,384)}catch{return}}var $m=/^[a-z0-9][a-z0-9._-]*$/i,Rm=/^[a-z][a-z-]+$/,Am=/^[A-Za-z_][A-Za-z0-9_]*=/,Cm=new Set(["gh","glab","gup","hub","gist"]),Im=/^(gh[a-z]_|github_pat_|gl(?:pat|rt|soat|imt|dt|ft|agent|oas)-|npm_|xox|sk-|sk_|eyj|a(?:kia|sia|gpa|ida|roa|npa)|aiza|hv[sb]\.)/i,Om=24,vi=new Set(["docker","podman","npm","pnpm","yarn","npx","bun","deno","cargo","rustup","go","pip","pip3","uv","poetry","brew","apt","apt-get","dnf","yum","pacman","kubectl","helm","terraform","aws","gcloud","az","systemctl","composer","bundle","gem","dotnet","prisma","tkr","rtk","token"]),Pm=new Set([...vi,"git","gh","node","python","python3","bash","sh","zsh","psql","mysql","sqlite3","java","ruby","perl","rg","fd","jq","make","gradle","mvn","vitest","jest","tsc","esbuild","vite","webpack","playwright","rails","rake"]),Nm=new Map([["git",new Set(["status","diff","log","show","blame","ls-files","rev-parse","branch","fetch","pull","push","commit","checkout","switch","merge","rebase","stash","tag","remote","add","reset","restore","clean","grep"])],["gh",new Set(["pr","issue","run","repo","api"])]]),Dm=new Set(["-C","-c"]);function Mm(e){if(!/[\\/]/.test(e))return e;let t=e.split(/[\\/]/).filter(r=>r.length>0).pop()??"",n=t.toLowerCase().endsWith(".exe")?t.slice(0,-4):t;return Pm.has(n.toLowerCase())?n:""}function Fm(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Dm.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function wi(e){let t=e.toLowerCase();return t.startsWith("git")||Cm.has(t)}function fr(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&Am.test(t[n]??"");)n+=1;let r=Mm(t[n]??"");if(!r||!$m.test(r)||r.length>Om)return"";let s=Nm.get(r.toLowerCase());if(s)return Fm(r.toLowerCase(),s,t.slice(n+1));if(wi(r)||Im.test(r)||Tt(r)!==r)return"";let o=t[n+1];return o&&wi(o)?"":(o&&vi.has(r.toLowerCase())&&Rm.test(o)?`${r} ${o}`:r).slice(0,64)}async function Si(e){if(!e.telemetryOptIn)return;let t=fr(e.cmd),n=t&&Tt(t)===t?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";on("telemetry",{cmd:n,tokensSaved:Math.max(0,Math.round(e.tokensSaved)),...e.tokensRestored?{tokensRestored:Math.max(0,Math.round(e.tokensRestored))}:{},...e.rawTokens!=null?{rawTokens:Math.max(0,Math.round(e.rawTokens))}:{},optimized:e.optimized,...r?{sessionId:r}:{},...e.host?{host:e.host}:{}})}async function Ei(e){if(e.plan!=="pro"||Bo(e.filterId)||!(await Ue()).telemetryOptIn)return;let t=fr(e.cmd);!t||Tt(t)!==t||on("learn",{cmd:t,filterId:e.filterId==null?null:X(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}import{appendFileSync as jm,chmodSync as Hm,mkdirSync as Bm,readFileSync as Ii,realpathSync as zm,renameSync as Oi,rmSync as Pi,statSync as Ni,writeFileSync as dr}from"node:fs";import{basename as $i,dirname as Di,join as an,resolve as Um,sep as fx}from"node:path";var Lm={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function Ti(e){return e?Lm[e]??"anthropic":"anthropic"}var Zm="stats.jsonl",Gm="stats-ledger.json",Ri=2*1024*1024,Jm=3e4,Km=3e4,Vm=new Set(["n","g","e"]),Wm=256;function Mi(){return{n:0,nc:0,r:0,f:0,or:0,of:0,x:0,sn:0,sr:0,sf:0,mr:0,mf:0,rn:0,rb:0,tn:0,tr:0,tf:0,ox:0,t0:null,t1:null,cmds:{},prov:{},rl:{},fb:{}}}function qm(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return typeof n.t!="number"||!Number.isFinite(n.t)||n.t<0||n.t>864e10||typeof n.r!="number"||!Number.isSafeInteger(n.r)||n.r<0||typeof n.f!="number"||!Number.isSafeInteger(n.f)||n.f<0||n.r+n.f===0?null:{t:n.t,r:n.r,f:n.f,m:n.m===1,...typeof n.h=="string"?{h:n.h}:{},...typeof n.k=="string"?{k:n.k}:{},...typeof n.c=="string"&&n.c?{c:n.c}:{},...typeof n.p=="string"&&n.p?{p:n.p}:{},...typeof n.s=="string"&&n.s?{s:n.s}:{},...typeof n.o=="string"&&Vm.has(n.o)?{o:n.o}:{}}}catch{return null}}function Ym(e,t){if(!t.c)return;let n=e.cmds[t.c]??{n:0,nc:0,r:0,f:0,sh:!1};n.n+=1,t.f<t.r&&(n.nc+=1,n.rr=(n.rr??0)+t.r,n.rf=(n.rf??0)+t.f),(t.k==="sh"||t.k==="restore")&&(n.sh=!0),t.h==="shell"&&t.k!=="restore"&&(n.tn=(n.tn??0)+1,n.tr=(n.tr??0)+t.r,n.tf=(n.tf??0)+t.f),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function Xm(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function Qm(e,t){let n=Xm(t),r=e.rl[n]??{n:0,nc:0,r:0,f:0};if(r.n+=1,r.r+=t.r,r.f+=t.f,t.f<t.r&&(r.nc+=1),e.rl[n]=r,t.f>=t.r&&t.o){let s=`${t.o} ${t.c??""}`,o=e.fb[s]??{n:0,r:0};o.n+=1,o.r+=t.r,e.fb[s]=o}}function ep(e,t){if(t.m){e.mr+=t.r,e.mf+=t.f;return}if(e.t0=e.t0==null?t.t:Math.min(e.t0,t.t),e.t1=e.t1==null?t.t:Math.max(e.t1,t.t),t.k==="sh"&&t.r>Km){e.ox+=1;return}if(Ym(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):Qm(e,t),e.n+=1,e.or+=t.r,e.of+=t.f,t.f>t.r&&(e.x+=1),t.h==="shell"&&t.k!=="restore"&&(e.tn+=1,e.tr+=t.r,e.tf+=t.f),t.f<t.r){e.nc+=1,e.r+=t.r,e.f+=t.f,t.k==="sh"&&(e.sn+=1,e.sr+=t.r,e.sf+=t.f);let n=Ti(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function tp(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function Fi(e){return an(Di(e),Gm)}function np(e){let t=Fi(e),n;try{n=Ii(t,"utf8")}catch{return{}}try{let r=JSON.parse(n);if(!r.days||typeof r.days!="object")throw new Error("invalid ledger");let s={};for(let[o,i]of Object.entries(r.days))!/^\d{4}-\d{2}-\d{2}$/.test(o)||!i||typeof i!="object"||(s[o]={...Mi(),...i});return s}catch{try{Oi(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function Ai(e,t){let n=`${e}.tmp-${process.pid}`;dr(n,t,{mode:384}),Oi(n,e)}function rp(e){try{return dr(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Ni(e).mtimeMs<Jm?!1:(Pi(e,{force:!0}),dr(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function sp(e,t=Ri,n=Ri/2){try{if(Ni(e).size<=t)return}catch{return}let r=`${e}.lock`;if(rp(r))try{let s=Ii(e,"utf8").split(`
81
+ `).filter(c=>c.trim()!==""),o=s.length,i=0;for(;o>0;){let c=Buffer.byteLength(s[o-1])+1;if(i+c>n)break;i+=c,o-=1}let a=np(e);for(let c of s.slice(0,o)){let u=qm(c);if(!u)continue;let f=tp(u.t),d=a[f]??Mi();ep(d,u),a[f]=d}let l=s.slice(o);Ai(e,l.length?`${l.join(`
82
82
  `)}
83
- `:""),Ai(Fi(e),JSON.stringify({v:1,days:a}))}catch{return}finally{Pi(r,{force:!0})}}function om(e){let t=Up(e),n=t,r="";for(;;){try{return an(zp(n),r)}catch{}let s=Di(n);if(s===n)return t;r=r?an($i(n),r):$i(n),n=s}}var im=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),am=new Set(["-u","-g","-n","-s","-k"]),lm=/^[a-z0-9][a-z0-9._-]*$/i,cm=new Set(["git","npm","pnpm","yarn","npx","docker","kubectl","helm","cargo","go","brew","gh","pip","pip3","apt","apt-get","systemctl","terraform","aws","gcloud","az","bundle","rake","rails","prisma","poetry","uv","gem","composer"]),Li=/^[A-Za-z_][A-Za-z0-9_]*=/;function Ci(e){return e.length===0||e[0]==="cd"||e.every(t=>Li.test(t))}function um(e){let t=[],n="",r=!1,s=null,o=()=>{r&&t.push(n),n="",r=!1};for(let i of e){if(s){i===s?s=null:n+=i;continue}if(i==="'"||i==='"'){s=i,r=!0;continue}if(i===" "||i===" "){o();continue}if(`|;&<>
84
- `.includes(i)){if(o(),Ci(t)){t=[];continue}return t}n+=i,r=!0}return o(),Ci(t)?[]:t}function ln(e){let t=um(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Li.test(a)){n+=1;continue}if(im.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=am.has(l)?2:1;continue}if(/^\d+(?:\.\d+)?[smhd]?$/.test(l)){n+=1;continue}break}continue}break}if(n>=t.length)return"";let r=t[n],s=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,o=t[n+1];return(o&&!o.startsWith("-")&&lm.test(o)&&cm.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function fm(){return an(T(),Zp)}function ji(e,t,n=fm(),r=!1,s,o,i,a,l={}){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t===0)return;let c=s?`,"h":${JSON.stringify(s)}`:"",u=o?`,"k":${JSON.stringify(o)}`:"",f=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?om(a):"",p=d&&d.length<=Wp?`,"p":${JSON.stringify(d)}`:"",h=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",_=l.o?`,"o":${JSON.stringify(l.o)}`:"",g=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${c}${u}${f}${p}${h}${_}}
85
- `;try{Bp(T(),{recursive:!0,mode:448}),jp(n,g,{mode:384}),Hp(n,384),sm(n)}catch{return}}function Hi(e){let t=e.filterId==null?void 0:e.filterId.startsWith("user/")?`u:${e.filterId.slice(5)}`:"b",n=e.filteredBytes<e.rawBytes?void 0:e.filterId==null?"n":e.debugBypass?"e":"g";return{...t?{s:t}:{},...n?{o:n}:{}}}function Bi(e,t,n){let r=n!=null?Math.min(e,n):e,s=n!=null?Math.min(t,n):t;return{raw:r,filtered:s}}import{appendFileSync as dm,mkdirSync as pm,readFileSync as mm,writeFileSync as hm,renameSync as gm,statSync as ym,readdirSync as gx,rmSync as yx,chmodSync as km}from"node:fs";import{join as zi}from"node:path";var bm=96*1024,_m=500,_x=168*3600*1e3,xm=120;function Ui(){return zi(T(),"sessions")}function wm(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return zi(Ui(),`${t}.jsonl`)}function Zi(e,t){try{let n=wm(e);pm(Ui(),{recursive:!0,mode:448});let r=JSON.stringify({t:t.t??Math.floor(Date.now()/1e3),tool:t.tool,target:t.target.slice(0,xm),...t.fail?{fail:1}:{}});if(dm(n,`${r}
86
- `,{mode:384}),km(n,384),ym(n).size>bm){let s=mm(n,"utf8").split(`
87
- `).filter(a=>a.trim()!==""),o=s.slice(s.length-_m),i=`${n}.tmp-${process.pid}`;hm(i,`${o.join(`
83
+ `:""),Ai(Fi(e),JSON.stringify({v:1,days:a}))}catch{return}finally{Pi(r,{force:!0})}}function op(e){let t=Um(e),n=t,r="";for(;;){try{return an(zm(n),r)}catch{}let s=Di(n);if(s===n)return t;r=r?an($i(n),r):$i(n),n=s}}var ip=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),ap=new Set(["-u","-g","-n","-s","-k"]),lp=/^[a-z0-9][a-z0-9._-]*$/i,cp=new Set(["git","npm","pnpm","yarn","npx","docker","kubectl","helm","cargo","go","brew","gh","pip","pip3","apt","apt-get","systemctl","terraform","aws","gcloud","az","bundle","rake","rails","prisma","poetry","uv","gem","composer"]),Li=/^[A-Za-z_][A-Za-z0-9_]*=/;function Ci(e){return e.length===0||e[0]==="cd"||e.every(t=>Li.test(t))}function up(e){let t=[],n="",r=!1,s=null,o=()=>{r&&t.push(n),n="",r=!1};for(let i of e){if(s){i===s?s=null:n+=i;continue}if(i==="'"||i==='"'){s=i,r=!0;continue}if(i===" "||i===" "){o();continue}if(`|;&<>
84
+ `.includes(i)){if(o(),Ci(t)){t=[];continue}return t}n+=i,r=!0}return o(),Ci(t)?[]:t}function ln(e){let t=up(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Li.test(a)){n+=1;continue}if(ip.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=ap.has(l)?2:1;continue}if(/^\d+(?:\.\d+)?[smhd]?$/.test(l)){n+=1;continue}break}continue}break}if(n>=t.length)return"";let r=t[n],s=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,o=t[n+1];return(o&&!o.startsWith("-")&&lp.test(o)&&cp.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function fp(){return an(T(),Zm)}function ji(e,t,n=fp(),r=!1,s,o,i,a,l={}){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t===0)return;let c=s?`,"h":${JSON.stringify(s)}`:"",u=o?`,"k":${JSON.stringify(o)}`:"",f=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?op(a):"",m=d&&d.length<=Wm?`,"p":${JSON.stringify(d)}`:"",h=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",_=l.o?`,"o":${JSON.stringify(l.o)}`:"",g=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${c}${u}${f}${m}${h}${_}}
85
+ `;try{Bm(T(),{recursive:!0,mode:448}),jm(n,g,{mode:384}),Hm(n,384),sp(n)}catch{return}}function Hi(e){let t=e.filterId==null?void 0:e.filterId.startsWith("user/")?`u:${e.filterId.slice(5)}`:"b",n=e.filteredBytes<e.rawBytes?void 0:e.filterId==null?"n":e.debugBypass?"e":"g";return{...t?{s:t}:{},...n?{o:n}:{}}}function Bi(e,t,n){let r=n!=null?Math.min(e,n):e,s=n!=null?Math.min(t,n):t;return{raw:r,filtered:s}}import{appendFileSync as dp,mkdirSync as mp,readFileSync as pp,writeFileSync as hp,renameSync as gp,statSync as yp,readdirSync as gx,rmSync as yx,chmodSync as kp}from"node:fs";import{join as zi}from"node:path";var bp=96*1024,_p=500,_x=168*3600*1e3,xp=120;function Ui(){return zi(T(),"sessions")}function wp(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return zi(Ui(),`${t}.jsonl`)}function Zi(e,t){try{let n=wp(e);mp(Ui(),{recursive:!0,mode:448});let r=JSON.stringify({t:t.t??Math.floor(Date.now()/1e3),tool:t.tool,target:t.target.slice(0,xp),...t.fail?{fail:1}:{}});if(dp(n,`${r}
86
+ `,{mode:384}),kp(n,384),yp(n).size>bp){let s=pp(n,"utf8").split(`
87
+ `).filter(a=>a.trim()!==""),o=s.slice(s.length-_p),i=`${n}.tmp-${process.pid}`;hp(i,`${o.join(`
88
88
  `)}
89
- `,{mode:384}),gm(i,n)}}catch{}}import{existsSync as tw,readFileSync as eh}from"node:fs";import{join as th}from"node:path";import nh from"node:os";import{readFile as zm,writeFile as Um,rename as Zm,mkdir as sa,chmod as Gm,stat as Jm,unlink as Km}from"node:fs/promises";import{existsSync as Vm,lstatSync as Wm,readlinkSync as qm,realpathSync as na}from"node:fs";import{basename as Ym,dirname as dn,join as Xm,resolve as ra}from"node:path";import{basename as vm}from"node:path";var Sm={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},Em={codex:"tkr-codex-hook",cursor:"tkr-cursor-hook",gemini:"tkr-gemini-hook",agent:"tkr-agent-hook",copilot:"tkr-copilot-hook",droid:"tkr-droid-hook",trae:"tkr-trae-hook",qwen:"tkr-qwen-hook",crush:"tkr-crush-hook",junie:"tkr-junie-hook",zcode:"tkr-zcode-hook",grok:"tkr-grok-hook",context:"tkr-context-hook","pre-tool-use":"pre-tool-use","post-tool-use":"post-tool-use","session-recap":"session-recap","session-start":"on-session-start","reducer-session-start":"reducer-session-start","reducer-prompt-submit":"reducer-prompt-submit","reducer-stop":"reducer-stop"};function it(e){let t=vm(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(Sm))if(r===t)return[n];for(let[n,r]of Object.entries(Em))if(r===t)return["hook",n];return null}function _e(){return!1}function $t(e,t=process.execPath){let n=_e()?it(e):null;return n?[process.execPath,...n]:[t,e]}import{rmSync as Tm,statSync as $m}from"node:fs";import{join as Gi}from"node:path";function cn(){return Gi(T(),"shims")}function pr(){return Gi(T(),"fail-open")}var Rm=24*36e5;function Ji(e=Date.now()){try{if(e-$m(pr()).mtimeMs<Rm)return!0;Tm(pr(),{force:!0})}catch{}return!1}import{chmod as Pm,lstat as Vi,mkdir as Nm,readFile as hr,rename as Dm,rm as Lx,unlink as Wi,writeFile as Mm}from"node:fs/promises";import{createHash as qi}from"node:crypto";import{basename as Fm,join as Yi}from"node:path";var Lm=".tkr-bak";function Xi(){return Yi(T(),"backup","config")}function mr(e){let t=yr(e),n=qi("sha256").update(t).digest("hex").slice(0,16),r=Fm(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return Yi(Xi(),`${n}-${r}`)}function Qi(e){return`${mr(e)}.written`}function ea(e){return qi("sha256").update(e).digest("hex")}async function jm(e){try{return await Vi(e),!0}catch{return!1}}async function gr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await Nm(Xi(),{recursive:!0,mode:448}),await Mm(n,t,{mode:384}),await Pm(n,384),await Dm(n,e),!0}catch{return await Wi(n).catch(()=>{}),!1}}async function Hm(e,t){let n=`${e}${Lm}`;try{if(!(await Vi(n)).isFile())return!1}catch{return!1}let r=!await jm(t);if(r&&!await gr(t,await hr(n,"utf8")))throw new Error("backup");return await Wi(n).catch(()=>{}),r}async function Bm(e,t){try{return(await hr(Qi(e),"utf8")).trim()===ea(t)}catch{return!1}}async function ta(e,t){let n=t;try{n===void 0&&(n=await hr(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await Hm(e,mr(e)))return!0}catch{return!1}return await Bm(e,n)?!0:gr(mr(e),n)}async function un(e,t,n){return!await ta(e,n)||!await fn(e,t)?!1:(await gr(Qi(e),`${ea(t)}
90
- `),!0)}function M(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function xe(e){if(!Vm(e))return{};try{let t=JSON.parse(await zm(e,"utf8"));return M(t)?t:null}catch{return null}}function yr(e){let t=ra(e);for(let n=0;n<32;n++){try{return na(t)}catch{}try{if(!Wm(t).isSymbolicLink())break;t=ra(dn(t),qm(t))}catch{break}}try{return Xm(na(dn(t)),Ym(t))}catch{return t}}async function fn(e,t){let n=yr(e),r=`${n}.tmp-${process.pid}`;try{await sa(dn(n),{recursive:!0});let s=384;try{s=(await Jm(n)).mode&511}catch{}return await Um(r,t,{mode:s}),await Gm(r,s),await Zm(r,n),!0}catch{try{await Km(r)}catch{}return!1}}async function we(e,t){try{await sa(dn(e),{recursive:!0})}catch{return!1}return un(e,`${JSON.stringify(t,null,2)}
91
- `)}var Qm=String.raw`(?:'(?:(?:[^']|'\\'')*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?'|"(?:[^"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?"|(?:[^\s'"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?)`;function at(e,t){if(typeof e!="string")return!1;if(e.includes(t))return!0;let n=it(t);return n?.length?new RegExp(`^\\s*${Qm}\\s+${n.join("\\s+")}(?:\\s|$)`,"i").test(e):!1}function pn(e,t,n,r){let s=i=>i!==n&&t(i),o=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){s(a)&&(e.splice(i,1),o=!0);continue}if(!M(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(c=>!s(c));l.length!==a.hooks.length&&(o=!0,l.length?a.hooks=l:e.splice(i,1))}return o}var rh="tkr-cursor-hook",oa="preToolUse";function sh(){return th(nh.homedir(),".cursor","hooks.json")}function oh(e){return M(e)&&at(e.command,rh)}function ih(e){let t=M(e.hooks)?e.hooks:{},n=Array.isArray(t[oa])?t[oa]:[];return{hooks:t,entries:n}}function ia(){try{let e=JSON.parse(eh(sh(),"utf8"));return ih(e).entries.some(oh)}catch{return!1}}import{existsSync as aw,readFileSync as ah}from"node:fs";import{join as lh}from"node:path";import ch from"node:os";var uh="tkr-gemini-hook",aa="BeforeTool";function fh(){return lh(process.env.GEMINI_CLI_HOME||ch.homedir(),".gemini","settings.json")}function dh(e){return M(e)&&at(e.command,uh)}function ph(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(dh)}function mh(e){let t=M(e.hooks)?e.hooks:{},n=Array.isArray(t[aa])?t[aa]:[];return{hooks:t,groups:n}}function la(){try{let e=JSON.parse(ah(fh(),"utf8"));return mh(e).groups.some(t=>ph(t)!=null)}catch{return!1}}import{dirname as Nw,join as Q}from"node:path";import wh from"node:os";import{existsSync as mw,accessSync as hw,constants as gw,readFileSync as hh}from"node:fs";var gh='"rewrite", "--host"';function yh(e){return e.includes(gh)}function ca(e){try{return yh(hh(e,"utf8"))}catch{return!1}}import{readFile as fa,mkdir as kh}from"node:fs/promises";import{existsSync as _r,readFileSync as da}from"node:fs";import{dirname as bh,join as br}from"node:path";import pa from"node:os";var ma="tokmizer-rewrite",Rt="tokmizer-rewrite";function Ct(){return br(process.env.VIBE_HOME||br(pa.homedir(),".vibe"),"hooks.toml")}function ua(e){return JSON.stringify(e)}function _h(e){return["[[hooks]]",`name = ${ua(ma)}`,'type = "pre_tool"','match = "bash"',`command = ${ua(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
92
- `)}function xr(e){let t=[],n=[];for(let r of e.split(/(?<=\n)/))/^\s*\[\[?\s*[A-Za-z0-9_-]/.test(r)&&n.length&&(t.push(n.join("")),n=[]),n.push(r);return n.length&&t.push(n.join("")),t}function At(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${ma}"\\s*$`,"m").test(e)}async function ha(e,t){try{await kh(bh(e),{recursive:!0})}catch{return!1}return un(e,t)}function ga(){try{return xr(da(Ct(),"utf8")).some(At)}catch{return!1}}async function ya(e){let t=Ct(),n="";try{_r(t)&&(n=await fa(t,"utf8"))}catch{return"error"}let r=_h(e),s=xr(n),o=s.filter(At);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.filter(l=>!At(l)).join("").trimEnd(),a=i?`${i}
89
+ `,{mode:384}),gp(i,n)}}catch{}}import{existsSync as tw,readFileSync as eh}from"node:fs";import{join as th}from"node:path";import nh from"node:os";import{readFile as zp,writeFile as Up,rename as Zp,mkdir as sa,chmod as Gp,stat as Jp,unlink as Kp}from"node:fs/promises";import{existsSync as Vp,lstatSync as Wp,readlinkSync as qp,realpathSync as na}from"node:fs";import{basename as Yp,dirname as dn,join as Xp,resolve as ra}from"node:path";import{basename as vp}from"node:path";var Sp={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},Ep={codex:"tkr-codex-hook",cursor:"tkr-cursor-hook",gemini:"tkr-gemini-hook",agent:"tkr-agent-hook",copilot:"tkr-copilot-hook",droid:"tkr-droid-hook",trae:"tkr-trae-hook",qwen:"tkr-qwen-hook",crush:"tkr-crush-hook",junie:"tkr-junie-hook",zcode:"tkr-zcode-hook",grok:"tkr-grok-hook",context:"tkr-context-hook","pre-tool-use":"pre-tool-use","post-tool-use":"post-tool-use","session-recap":"session-recap","session-start":"on-session-start","reducer-session-start":"reducer-session-start","reducer-prompt-submit":"reducer-prompt-submit","reducer-stop":"reducer-stop","command-expansion":"command-expansion"};function it(e){let t=vp(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(Sp))if(r===t)return[n];for(let[n,r]of Object.entries(Ep))if(r===t)return["hook",n];return null}function _e(){return!1}function $t(e,t=process.execPath){let n=_e()?it(e):null;return n?[process.execPath,...n]:[t,e]}import{rmSync as Tp,statSync as $p}from"node:fs";import{join as Gi}from"node:path";function cn(){return Gi(T(),"shims")}function mr(){return Gi(T(),"fail-open")}var Rp=24*36e5;function Ji(e=Date.now()){try{if(e-$p(mr()).mtimeMs<Rp)return!0;Tp(mr(),{force:!0})}catch{}return!1}import{chmod as Pp,lstat as Vi,mkdir as Np,readFile as hr,rename as Dp,rm as Lx,unlink as Wi,writeFile as Mp}from"node:fs/promises";import{createHash as qi}from"node:crypto";import{basename as Fp,join as Yi}from"node:path";var Lp=".tkr-bak";function Xi(){return Yi(T(),"backup","config")}function pr(e){let t=yr(e),n=qi("sha256").update(t).digest("hex").slice(0,16),r=Fp(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return Yi(Xi(),`${n}-${r}`)}function Qi(e){return`${pr(e)}.written`}function ea(e){return qi("sha256").update(e).digest("hex")}async function jp(e){try{return await Vi(e),!0}catch{return!1}}async function gr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await Np(Xi(),{recursive:!0,mode:448}),await Mp(n,t,{mode:384}),await Pp(n,384),await Dp(n,e),!0}catch{return await Wi(n).catch(()=>{}),!1}}async function Hp(e,t){let n=`${e}${Lp}`;try{if(!(await Vi(n)).isFile())return!1}catch{return!1}let r=!await jp(t);if(r&&!await gr(t,await hr(n,"utf8")))throw new Error("backup");return await Wi(n).catch(()=>{}),r}async function Bp(e,t){try{return(await hr(Qi(e),"utf8")).trim()===ea(t)}catch{return!1}}async function ta(e,t){let n=t;try{n===void 0&&(n=await hr(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await Hp(e,pr(e)))return!0}catch{return!1}return await Bp(e,n)?!0:gr(pr(e),n)}async function un(e,t,n){return!await ta(e,n)||!await fn(e,t)?!1:(await gr(Qi(e),`${ea(t)}
90
+ `),!0)}function M(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function xe(e){if(!Vp(e))return{};try{let t=JSON.parse(await zp(e,"utf8"));return M(t)?t:null}catch{return null}}function yr(e){let t=ra(e);for(let n=0;n<32;n++){try{return na(t)}catch{}try{if(!Wp(t).isSymbolicLink())break;t=ra(dn(t),qp(t))}catch{break}}try{return Xp(na(dn(t)),Yp(t))}catch{return t}}async function fn(e,t){let n=yr(e),r=`${n}.tmp-${process.pid}`;try{await sa(dn(n),{recursive:!0});let s=384;try{s=(await Jp(n)).mode&511}catch{}return await Up(r,t,{mode:s}),await Gp(r,s),await Zp(r,n),!0}catch{try{await Kp(r)}catch{}return!1}}async function we(e,t){try{await sa(dn(e),{recursive:!0})}catch{return!1}return un(e,`${JSON.stringify(t,null,2)}
91
+ `)}var Qp=String.raw`(?:'(?:(?:[^']|'\\'')*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?'|"(?:[^"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?"|(?:[^\s'"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?)`;function at(e,t){if(typeof e!="string")return!1;if(e.includes(t))return!0;let n=it(t);return n?.length?new RegExp(`^\\s*${Qp}\\s+${n.join("\\s+")}(?:\\s|$)`,"i").test(e):!1}function mn(e,t,n,r){let s=i=>i!==n&&t(i),o=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){s(a)&&(e.splice(i,1),o=!0);continue}if(!M(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(c=>!s(c));l.length!==a.hooks.length&&(o=!0,l.length?a.hooks=l:e.splice(i,1))}return o}var rh="tkr-cursor-hook",oa="preToolUse";function sh(){return th(nh.homedir(),".cursor","hooks.json")}function oh(e){return M(e)&&at(e.command,rh)}function ih(e){let t=M(e.hooks)?e.hooks:{},n=Array.isArray(t[oa])?t[oa]:[];return{hooks:t,entries:n}}function ia(){try{let e=JSON.parse(eh(sh(),"utf8"));return ih(e).entries.some(oh)}catch{return!1}}import{existsSync as aw,readFileSync as ah}from"node:fs";import{join as lh}from"node:path";import ch from"node:os";var uh="tkr-gemini-hook",aa="BeforeTool";function fh(){return lh(process.env.GEMINI_CLI_HOME||ch.homedir(),".gemini","settings.json")}function dh(e){return M(e)&&at(e.command,uh)}function mh(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(dh)}function ph(e){let t=M(e.hooks)?e.hooks:{},n=Array.isArray(t[aa])?t[aa]:[];return{hooks:t,groups:n}}function la(){try{let e=JSON.parse(ah(fh(),"utf8"));return ph(e).groups.some(t=>mh(t)!=null)}catch{return!1}}import{dirname as Nw,join as Q}from"node:path";import wh from"node:os";import{existsSync as pw,accessSync as hw,constants as gw,readFileSync as hh}from"node:fs";var gh='"rewrite", "--host"';function yh(e){return e.includes(gh)}function ca(e){try{return yh(hh(e,"utf8"))}catch{return!1}}import{readFile as fa,mkdir as kh}from"node:fs/promises";import{existsSync as _r,readFileSync as da}from"node:fs";import{dirname as bh,join as br}from"node:path";import ma from"node:os";var pa="tokmizer-rewrite",Rt="tokmizer-rewrite";function Ct(){return br(process.env.VIBE_HOME||br(ma.homedir(),".vibe"),"hooks.toml")}function ua(e){return JSON.stringify(e)}function _h(e){return["[[hooks]]",`name = ${ua(pa)}`,'type = "pre_tool"','match = "bash"',`command = ${ua(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
92
+ `)}function xr(e){let t=[],n=[];for(let r of e.split(/(?<=\n)/))/^\s*\[\[?\s*[A-Za-z0-9_-]/.test(r)&&n.length&&(t.push(n.join("")),n=[]),n.push(r);return n.length&&t.push(n.join("")),t}function At(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${pa}"\\s*$`,"m").test(e)}async function ha(e,t){try{await kh(bh(e),{recursive:!0})}catch{return!1}return un(e,t)}function ga(){try{return xr(da(Ct(),"utf8")).some(At)}catch{return!1}}async function ya(e){let t=Ct(),n="";try{_r(t)&&(n=await fa(t,"utf8"))}catch{return"error"}let r=_h(e),s=xr(n),o=s.filter(At);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.filter(l=>!At(l)).join("").trimEnd(),a=i?`${i}
93
93
 
94
94
  ${r}`:r;return await ha(t,a)?o.length?"updated":"added":"error"}async function ka(){let e=Ct();if(!_r(e))return"absent";let t;try{t=await fa(e,"utf8")}catch{return"error"}let n=xr(t);if(!n.some(At))return"absent";let r=n.filter(o=>!At(o)).join("").trimEnd(),s=r?`${r}
95
- `:"";return await ha(e,s)?"removed":"error"}function It(){return br(pa.homedir(),".gemini","config","hooks.json")}function xh(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function ba(){try{let e=JSON.parse(da(It(),"utf8"));return M(e)&&M(e[Rt])}catch{return!1}}async function _a(e){let t=It(),n=await xe(t);if(!n)return"error";let r=xh(e),s=n[Rt];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Rt]=r,await we(t,n)?s===void 0?"added":"updated":"error")}async function xa(){let e=It();if(!_r(e))return"absent";let t=await xe(e);return t?Rt in t?(delete t[Rt],await we(e,t)?"removed":"error"):"absent":"error"}var Ot=()=>wh.homedir(),wr=()=>process.env.XDG_CONFIG_HOME||Q(Ot(),".config"),wa=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:Q(wr(),"opencode","plugins","tokmizer.js")}],next:"Restart OpenCode so it loads the plugin."},{host:"kilo",label:"Kilo Code",command:"setup-kilo",kind:"shim",files:()=>[{template:"kilo.js",target:Q(wr(),"kilo","plugin","tokmizer.js")}],next:"Restart Kilo Code (CLI or VS Code extension) so it loads the plugin."},{host:"amp",label:"Amp",command:"setup-amp",kind:"shim",files:()=>[{template:"amp.js",target:Q(wr(),"amp","plugins","tokmizer.js")}],next:"Reload plugins in Amp (or restart it), then check it with: amp plugins list"},{host:"vibe",label:"Mistral Vibe",command:"setup-vibe",kind:"hook",file:Ct,installed:ga,ensure:ya,remove:ka,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:It,installed:ba,ensure:_a,remove:xa,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=Q(Ot(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:Q(e,t)}))},next:"Run: openclaw plugins enable tokmizer && openclaw gateway restart"},{host:"pi",label:"Pi",command:"setup-pi",kind:"shim",files:()=>[{template:"pi.js",target:Q(process.env.PI_CODING_AGENT_DIR||Q(Ot(),".pi","agent"),"extensions","tokmizer.js")}],next:"Restart Pi (or run /reload) so it loads the extension."},{host:"omp",label:"Oh My Pi",command:"setup-omp",kind:"shim",files:()=>[{template:"omp.js",target:Q(Ot(),".omp","agent","extensions","tokmizer.js")}],next:"Restart omp so it loads the extension."},{host:"hermes",label:"Hermes",command:"setup-hermes",kind:"shim",files:()=>{let e=Q(process.env.HERMES_HOME||Q(Ot(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:Q(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function va(e){return e.kind==="hook"?e.installed():ca(e.files()[0].target)}import{existsSync as Tr,readFileSync as Rh}from"node:fs";import{join as H}from"node:path";import Ah from"node:os";import{existsSync as vh,readFileSync as Sh}from"node:fs";function mn(e,t){return M(e)&&at(e.command,t)}function Sa(e){return e.path??(e.nested?["hooks"]:[])}function Ea(e,t){let n=e;for(let r of Sa(t))M(n[r])||(n[r]={}),n=n[r];return n}function Ta(e,t){let n=e;for(let s of Sa(t))n=M(n)?n[s]:void 0;if(!M(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function Eh(e){return M(e)&&Array.isArray(e.hooks)?e.hooks:[]}function $a(e,t){return(t.matcher===void 0?e:e.flatMap(Eh)).filter(r=>mn(r,t.mark))}function Ra(e,t){return $a(Ta(e,t),t).length>0}function vr(e,t){try{let n=JSON.parse(Sh(e,"utf8"));return M(n)&&Ra(n,t)}catch{return!1}}function Th(e,t,n){let r=Ea(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=$a(s,t)[0],i=t.entry(n);if(o){let a=pn(s,c=>mn(c,t.mark),o,t.matcher!==void 0),l=Object.entries(i).filter(([c,u])=>JSON.stringify(o[c])!==JSON.stringify(u));if(!l.length&&!a)return"present";for(let[c,u]of l)o[c]=u;return"updated"}return s.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function $h(e,t){if(!Ra(e,t))return!1;let n=Ea(e,t),r=Ta(e,t),s=t.matcher===void 0?r.filter(o=>!mn(o,t.mark)):r.map(o=>M(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!mn(i,t.mark))}:o).filter(o=>!M(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function Sr(e,t,n){let r=await xe(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=Th(r,t,n);return s==="present"||await we(e,r)?s:"error"}async function hn(e,t){if(!vh(e))return"absent";let n=await xe(e);return n?$h(n,t)?await we(e,n)?"removed":"error":"absent":"error"}function ie(){return Ah.homedir()}function Oa(e){return e.version===void 0&&(e.version=1),e.version===1}function Ch(e,t,n){return Promise.all(e.map(r=>Sr(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function Ih(e,t){return Promise.all(e.map(n=>hn(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Ze(e,t){return{...e,installed:()=>e.files().some(n=>vr(n,t)),ensure:n=>Ch(e.files(),t,n),remove:()=>Ih(e.files(),t)}}var Oh={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Oa};function Ph(){return H(process.env.COPILOT_HOME||H(ie(),".copilot"),"hooks","tokmizer.json")}var Nh={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Oa};function Dh(){let e=[H(ie(),".trae","hooks.json")];return Tr(H(ie(),".trae-cn"))&&e.push(H(ie(),".trae-cn","hooks.json")),e}var Mh={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function Fh(){return H(process.env.QWEN_HOME||H(ie(),".qwen"),"settings.json")}var Lh={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function jh(){return H(process.env.XDG_CONFIG_HOME||H(ie(),".config"),"crush","crush.json")}var Hh={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function Bh(){return H(ie(),".junie","config.json")}function zh(e){return e.hooks===void 0&&(e.hooks={}),M(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||M(e.hooks.events)):!1}var Uh={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:zh};function Zh(){return H(ie(),".zcode","cli","config.json")}var Gh={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function Jh(){return H(ie(),".grok","hooks","tokmizer.json")}var Kh="tkr-droid-hook",$r={mark:Kh,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},Vh={...$r,nested:!0};function Er(){return H(ie(),".factory")}function gn(){return[{file:H(Er(),"hooks.json"),spec:$r},{file:H(Er(),"hooks","hooks.json"),spec:$r},{file:H(Er(),"settings.json"),spec:Vh}]}function Aa(e){try{let t=JSON.parse(Rh(e,"utf8"));return M(t)?t:null}catch{return null}}function Ca(e,t){let n=t?e?.hooks:e;return M(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Ia(){let[e,t,n]=gn(),r=Tr(e.file)?e:Tr(t.file)?t:null;return r&&Ca(Aa(r.file),!1)?r:Ca(Aa(n.file),!0)?n:r??e}var Wh={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Ia().file],installed:()=>gn().some(e=>vr(e.file,e.spec)),ensure:async e=>{let t=Ia(),n=await Sr(t.file,t.spec,e);return n==="error"||await Promise.all(gn().filter(r=>r.file!==t.file).map(r=>hn(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(gn().map(t=>hn(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Pa=[Ze({id:"copilot",label:"GitHub Copilot",setup:"tkr setup-copilot",bin:"tkr-copilot-hook",restart:"Restart VS Code or Copilot CLI so they load the new hook.",files:()=>[Ph()]},Oh),Wh,Ze({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Dh},Nh),Ze({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Fh()]},Mh),Ze({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[jh()]},Lh),Ze({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[Bh()]},Hh),Ze({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[Zh()]},Uh),Ze({id:"grok",label:"Grok Build",setup:"tkr setup-grok",bin:"tkr-grok-hook",restart:"Restart Grok Build (1.0.4 or newer) so it loads the new hook.",files:()=>[Jh()]},Gh)];var Da=[{host:"claude-code",vars:["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX","CODEX_THREAD_ID","CODEX_SESSION_ID"]},{host:"cursor",vars:["CURSOR_AGENT","CURSOR_VERSION","CURSOR_TRACE_ID"]},{host:"cline",vars:["CLINE_VERSION","CLINE_API_KEY"]},{host:"aider",vars:["AIDER_VERSION","AIDER_MODEL"]},{host:"qwen-code",vars:["QWEN_CODE"]},{host:"gemini-cli",vars:["GEMINI_CLI","GEMINI_CLI_VERSION","GEMINI_API_KEY"]},{host:"windsurf",vars:["WINDSURF_VERSION","WINDSURF_USER"]},{host:"copilot",vars:["GITHUB_COPILOT_VERSION","COPILOT_INTEGRATION_ID"]},{host:"opencode",vars:[]},{host:"amp",vars:[]},{host:"vibe",vars:[]},{host:"antigravity",vars:[]},{host:"openclaw",vars:[]},{host:"pi",vars:[]},{host:"omp",vars:[]},{host:"hermes",vars:[]},{host:"crush",vars:["CRUSH"]},{host:"droid",vars:[]},{host:"trae",vars:[]},{host:"junie",vars:[]},{host:"zcode",vars:[]},{host:"grok",vars:[]},{host:"kilo",vars:[]}],qh=[...Da.map(e=>e.host),"shell"],Yh=new Set(["claude-code","codex"]),Xh={cursor:{installed:ia,setup:"tkr setup-cursor"},"gemini-cli":{installed:la,setup:"tkr setup-gemini"},...Object.fromEntries(wa.map(e=>[e.host,{installed:()=>va(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(Pa.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function Na(e){return Yh.has(e)||(Xh[e]?.installed()??!1)}function Ma(e){return null}function Fa(e=process.env){let t=process.platform,n=t==="darwin"||t==="linux"||t==="win32"?t:"other",r=process.arch,s=e.TOKMIZER_HOST;if(s&&qh.includes(s)){let o=s;return{host:o,source:"env",os:n,arch:r,shimRecommended:!Na(o)}}for(let o of Da)if(o.vars.some(i=>e[i]))return{host:o.host,source:"env",os:n,arch:r,shimRecommended:!Na(o.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}import{existsSync as iv,realpathSync as Qh}from"node:fs";import{basename as lv,delimiter as La,join as cv,dirname as uv}from"node:path";function ja(e){try{return Qh(e)}catch{return e}}function Ha(){let e=cn(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",s=ja(e),o=r.split(La).filter(i=>i&&i!==e&&ja(i)!==s);return t[n]=o.join(La),n==="Path"&&(t.PATH=t[n]),t}import{createConnection as pg}from"node:net";import{spawn as mg}from"node:child_process";import{existsSync as Ka,openSync as Ir,closeSync as Ga,unlinkSync as Pr,writeFileSync as Nr,mkdirSync as Dr,readFileSync as hg,appendFileSync as gg,rmSync as yg,statSync as kg}from"node:fs";import{dirname as bg,join as Mr}from"node:path";import{fileURLToPath as _g}from"node:url";var eg=y.object({id:y.string().min(1).max(64),op:y.literal("filter"),cmd:y.string().min(1).max(2048),plan:y.enum(["trial","smart","pro"]),allowed:y.array(y.string().min(1).max(64)).max(512).optional(),installId:y.string().min(1).max(64).optional()}),tg=y.object({id:y.string().min(1).max(64),op:y.literal("ping")}),ng=y.object({id:y.string().min(1).max(64),op:y.literal("shutdown"),installId:y.string().min(1).max(64)}),rg=y.object({id:y.string().min(1).max(64),op:y.literal("reload"),installId:y.string().min(1).max(64).optional()}),xv=y.discriminatedUnion("op",[eg,tg,ng,rg]),wv=y.object({id:y.string(),ok:y.literal(!0),data:y.unknown()}),vv=y.object({id:y.string(),ok:y.literal(!1),err:y.string(),retryAfterMs:y.number().int().nonnegative().optional()}),Ba=y.object({filter:ke.nullable(),cacheHit:y.boolean().optional()}),yn=`
95
+ `:"";return await ha(e,s)?"removed":"error"}function It(){return br(ma.homedir(),".gemini","config","hooks.json")}function xh(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function ba(){try{let e=JSON.parse(da(It(),"utf8"));return M(e)&&M(e[Rt])}catch{return!1}}async function _a(e){let t=It(),n=await xe(t);if(!n)return"error";let r=xh(e),s=n[Rt];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Rt]=r,await we(t,n)?s===void 0?"added":"updated":"error")}async function xa(){let e=It();if(!_r(e))return"absent";let t=await xe(e);return t?Rt in t?(delete t[Rt],await we(e,t)?"removed":"error"):"absent":"error"}var Ot=()=>wh.homedir(),wr=()=>process.env.XDG_CONFIG_HOME||Q(Ot(),".config"),wa=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:Q(wr(),"opencode","plugins","tokmizer.js")}],next:"Restart OpenCode so it loads the plugin."},{host:"kilo",label:"Kilo Code",command:"setup-kilo",kind:"shim",files:()=>[{template:"kilo.js",target:Q(wr(),"kilo","plugin","tokmizer.js")}],next:"Restart Kilo Code (CLI or VS Code extension) so it loads the plugin."},{host:"amp",label:"Amp",command:"setup-amp",kind:"shim",files:()=>[{template:"amp.js",target:Q(wr(),"amp","plugins","tokmizer.js")}],next:"Reload plugins in Amp (or restart it), then check it with: amp plugins list"},{host:"vibe",label:"Mistral Vibe",command:"setup-vibe",kind:"hook",file:Ct,installed:ga,ensure:ya,remove:ka,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:It,installed:ba,ensure:_a,remove:xa,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=Q(Ot(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:Q(e,t)}))},next:"Run: openclaw plugins enable tokmizer && openclaw gateway restart"},{host:"pi",label:"Pi",command:"setup-pi",kind:"shim",files:()=>[{template:"pi.js",target:Q(process.env.PI_CODING_AGENT_DIR||Q(Ot(),".pi","agent"),"extensions","tokmizer.js")}],next:"Restart Pi (or run /reload) so it loads the extension."},{host:"omp",label:"Oh My Pi",command:"setup-omp",kind:"shim",files:()=>[{template:"omp.js",target:Q(Ot(),".omp","agent","extensions","tokmizer.js")}],next:"Restart omp so it loads the extension."},{host:"hermes",label:"Hermes",command:"setup-hermes",kind:"shim",files:()=>{let e=Q(process.env.HERMES_HOME||Q(Ot(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:Q(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function va(e){return e.kind==="hook"?e.installed():ca(e.files()[0].target)}import{existsSync as Tr,readFileSync as Rh}from"node:fs";import{join as H}from"node:path";import Ah from"node:os";import{existsSync as vh,readFileSync as Sh}from"node:fs";function pn(e,t){return M(e)&&at(e.command,t)}function Sa(e){return e.path??(e.nested?["hooks"]:[])}function Ea(e,t){let n=e;for(let r of Sa(t))M(n[r])||(n[r]={}),n=n[r];return n}function Ta(e,t){let n=e;for(let s of Sa(t))n=M(n)?n[s]:void 0;if(!M(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function Eh(e){return M(e)&&Array.isArray(e.hooks)?e.hooks:[]}function $a(e,t){return(t.matcher===void 0?e:e.flatMap(Eh)).filter(r=>pn(r,t.mark))}function Ra(e,t){return $a(Ta(e,t),t).length>0}function vr(e,t){try{let n=JSON.parse(Sh(e,"utf8"));return M(n)&&Ra(n,t)}catch{return!1}}function Th(e,t,n){let r=Ea(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=$a(s,t)[0],i=t.entry(n);if(o){let a=mn(s,c=>pn(c,t.mark),o,t.matcher!==void 0),l=Object.entries(i).filter(([c,u])=>JSON.stringify(o[c])!==JSON.stringify(u));if(!l.length&&!a)return"present";for(let[c,u]of l)o[c]=u;return"updated"}return s.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function $h(e,t){if(!Ra(e,t))return!1;let n=Ea(e,t),r=Ta(e,t),s=t.matcher===void 0?r.filter(o=>!pn(o,t.mark)):r.map(o=>M(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!pn(i,t.mark))}:o).filter(o=>!M(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function Sr(e,t,n){let r=await xe(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=Th(r,t,n);return s==="present"||await we(e,r)?s:"error"}async function hn(e,t){if(!vh(e))return"absent";let n=await xe(e);return n?$h(n,t)?await we(e,n)?"removed":"error":"absent":"error"}function ie(){return Ah.homedir()}function Oa(e){return e.version===void 0&&(e.version=1),e.version===1}function Ch(e,t,n){return Promise.all(e.map(r=>Sr(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function Ih(e,t){return Promise.all(e.map(n=>hn(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Ze(e,t){return{...e,installed:()=>e.files().some(n=>vr(n,t)),ensure:n=>Ch(e.files(),t,n),remove:()=>Ih(e.files(),t)}}var Oh={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Oa};function Ph(){return H(process.env.COPILOT_HOME||H(ie(),".copilot"),"hooks","tokmizer.json")}var Nh={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Oa};function Dh(){let e=[H(ie(),".trae","hooks.json")];return Tr(H(ie(),".trae-cn"))&&e.push(H(ie(),".trae-cn","hooks.json")),e}var Mh={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function Fh(){return H(process.env.QWEN_HOME||H(ie(),".qwen"),"settings.json")}var Lh={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function jh(){return H(process.env.XDG_CONFIG_HOME||H(ie(),".config"),"crush","crush.json")}var Hh={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function Bh(){return H(ie(),".junie","config.json")}function zh(e){return e.hooks===void 0&&(e.hooks={}),M(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||M(e.hooks.events)):!1}var Uh={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:zh};function Zh(){return H(ie(),".zcode","cli","config.json")}var Gh={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function Jh(){return H(ie(),".grok","hooks","tokmizer.json")}var Kh="tkr-droid-hook",$r={mark:Kh,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},Vh={...$r,nested:!0};function Er(){return H(ie(),".factory")}function gn(){return[{file:H(Er(),"hooks.json"),spec:$r},{file:H(Er(),"hooks","hooks.json"),spec:$r},{file:H(Er(),"settings.json"),spec:Vh}]}function Aa(e){try{let t=JSON.parse(Rh(e,"utf8"));return M(t)?t:null}catch{return null}}function Ca(e,t){let n=t?e?.hooks:e;return M(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Ia(){let[e,t,n]=gn(),r=Tr(e.file)?e:Tr(t.file)?t:null;return r&&Ca(Aa(r.file),!1)?r:Ca(Aa(n.file),!0)?n:r??e}var Wh={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Ia().file],installed:()=>gn().some(e=>vr(e.file,e.spec)),ensure:async e=>{let t=Ia(),n=await Sr(t.file,t.spec,e);return n==="error"||await Promise.all(gn().filter(r=>r.file!==t.file).map(r=>hn(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(gn().map(t=>hn(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Pa=[Ze({id:"copilot",label:"GitHub Copilot",setup:"tkr setup-copilot",bin:"tkr-copilot-hook",restart:"Restart VS Code or Copilot CLI so they load the new hook.",files:()=>[Ph()]},Oh),Wh,Ze({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Dh},Nh),Ze({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Fh()]},Mh),Ze({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[jh()]},Lh),Ze({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[Bh()]},Hh),Ze({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[Zh()]},Uh),Ze({id:"grok",label:"Grok Build",setup:"tkr setup-grok",bin:"tkr-grok-hook",restart:"Restart Grok Build (1.0.4 or newer) so it loads the new hook.",files:()=>[Jh()]},Gh)];var Da=[{host:"claude-code",vars:["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX","CODEX_THREAD_ID","CODEX_SESSION_ID"]},{host:"cursor",vars:["CURSOR_AGENT","CURSOR_VERSION","CURSOR_TRACE_ID"]},{host:"cline",vars:["CLINE_VERSION","CLINE_API_KEY"]},{host:"aider",vars:["AIDER_VERSION","AIDER_MODEL"]},{host:"qwen-code",vars:["QWEN_CODE"]},{host:"gemini-cli",vars:["GEMINI_CLI","GEMINI_CLI_VERSION","GEMINI_API_KEY"]},{host:"windsurf",vars:["WINDSURF_VERSION","WINDSURF_USER"]},{host:"copilot",vars:["GITHUB_COPILOT_VERSION","COPILOT_INTEGRATION_ID"]},{host:"opencode",vars:[]},{host:"amp",vars:[]},{host:"vibe",vars:[]},{host:"antigravity",vars:[]},{host:"openclaw",vars:[]},{host:"pi",vars:[]},{host:"omp",vars:[]},{host:"hermes",vars:[]},{host:"crush",vars:["CRUSH"]},{host:"droid",vars:[]},{host:"trae",vars:[]},{host:"junie",vars:[]},{host:"zcode",vars:[]},{host:"grok",vars:[]},{host:"kilo",vars:[]}],qh=[...Da.map(e=>e.host),"shell"],Yh=new Set(["claude-code","codex"]),Xh={cursor:{installed:ia,setup:"tkr setup-cursor"},"gemini-cli":{installed:la,setup:"tkr setup-gemini"},...Object.fromEntries(wa.map(e=>[e.host,{installed:()=>va(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(Pa.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function Na(e){return Yh.has(e)||(Xh[e]?.installed()??!1)}function Ma(e){return null}function Fa(e=process.env){let t=process.platform,n=t==="darwin"||t==="linux"||t==="win32"?t:"other",r=process.arch,s=e.TOKMIZER_HOST;if(s&&qh.includes(s)){let o=s;return{host:o,source:"env",os:n,arch:r,shimRecommended:!Na(o)}}for(let o of Da)if(o.vars.some(i=>e[i]))return{host:o.host,source:"env",os:n,arch:r,shimRecommended:!Na(o.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}import{existsSync as iv,realpathSync as Qh}from"node:fs";import{basename as lv,delimiter as La,join as cv,dirname as uv}from"node:path";function ja(e){try{return Qh(e)}catch{return e}}function Ha(){let e=cn(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",s=ja(e),o=r.split(La).filter(i=>i&&i!==e&&ja(i)!==s);return t[n]=o.join(La),n==="Path"&&(t.PATH=t[n]),t}import{createConnection as mg}from"node:net";import{spawn as pg}from"node:child_process";import{existsSync as Ka,openSync as Ir,closeSync as Ga,unlinkSync as Pr,writeFileSync as Nr,mkdirSync as Dr,readFileSync as hg,appendFileSync as gg,rmSync as yg,statSync as kg}from"node:fs";import{dirname as bg,join as Mr}from"node:path";import{fileURLToPath as _g}from"node:url";var eg=y.object({id:y.string().min(1).max(64),op:y.literal("filter"),cmd:y.string().min(1).max(2048),plan:y.enum(["trial","smart","pro"]),allowed:y.array(y.string().min(1).max(64)).max(512).optional(),installId:y.string().min(1).max(64).optional()}),tg=y.object({id:y.string().min(1).max(64),op:y.literal("ping")}),ng=y.object({id:y.string().min(1).max(64),op:y.literal("shutdown"),installId:y.string().min(1).max(64)}),rg=y.object({id:y.string().min(1).max(64),op:y.literal("reload"),installId:y.string().min(1).max(64).optional()}),xv=y.discriminatedUnion("op",[eg,tg,ng,rg]),wv=y.object({id:y.string(),ok:y.literal(!0),data:y.unknown()}),vv=y.object({id:y.string(),ok:y.literal(!1),err:y.string(),retryAfterMs:y.number().int().nonnegative().optional()}),Ba=y.object({filter:ke.nullable(),cacheHit:y.boolean().optional()}),yn=`
96
96
  `,Sv=64*1024;function Rr(e){return JSON.stringify(e)+yn}function*za(e){let t=0;for(;;){let n=e.indexOf(yn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function Pt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import sg from"node:os";import{join as Nt}from"node:path";import{existsSync as og,statSync as ig,lstatSync as Ua,unlinkSync as ag,mkdirSync as lg,chmodSync as cg}from"node:fs";import{createHash as ug}from"node:crypto";var Ar=100;function fg(e){let t=ug("sha256").update(T()).digest("hex").slice(0,8),n=Nt(sg.tmpdir(),`tkr-${e}-${t}`),r=Nt(n,"d.sock");if(Buffer.byteLength(r)>Ar)throw new Error("Temporary directory path is too long for IPC");return Za(n,e),r}function dg(e,t){try{let n=Ua(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function Za(e,t){lg(e,{recursive:!0,mode:448});let n=Ua(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");cg(e,448)}function Dt(){if(process.platform==="win32")return{path:`\\\\.\\pipe\\tokmizer-${process.env.USERNAME??"tokmizer"}`,isPipe:!0};let e=typeof process.getuid=="function"?process.getuid():0,t=process.env.XDG_RUNTIME_DIR;if(t&&dg(t,e)){let s=Nt(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=Ar)return{path:s,isPipe:!1}}let n=Nt(T(),"run"),r=Nt(n,"daemon.sock");return Buffer.byteLength(r)>Ar?{path:fg(e),isPipe:!1}:(Za(n,e),{path:r,isPipe:!1})}async function Cr(){let{path:e,isPipe:t}=Dt();if(t||!og(e))return;try{if(!ig(e).isSocket())return}catch{return}let n=await import("node:net");if(!await new Promise(s=>{let o=n.createConnection(e),i=a=>{o.removeAllListeners();try{o.destroy()}catch{}s(a)};o.once("connect",()=>i(!0)),o.once("error",a=>{let l=a.code;i(l!=="ECONNREFUSED"&&l!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{ag(e)}catch{}}var Iv=5*6e4;var Va=500,xg=3e3,Ja=1,wg=6e4,vg=256*1024;function Fr(){return Mr(T(),"daemon.spawn.fail")}function Lr(){return Mr(T(),"daemon.log")}function Sg(){try{let e=Number(hg(Fr(),"utf8"));return Number.isFinite(e)&&Date.now()-e<wg}catch{return!1}}function Eg(e){try{Dr(T(),{recursive:!0});let t=Lr();try{kg(t).size>vg&&Pr(t)}catch{}gg(t,`${new Date().toISOString()} ${e}
97
- `)}catch{}}function Tg(e){try{Dr(T(),{recursive:!0}),Nr(Fr(),String(Date.now()))}catch{}Eg(`spawn failed: ${e.message}`)}function $g(){try{yg(Fr(),{force:!0})}catch{}}async function kn(e,t){return new Promise((n,r)=>{let s=pg(e),o=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(i),a){try{s.destroy()}catch{}r(a)}else n(s)},i=setTimeout(()=>o(new Error("connect timeout")),t);s.once("connect",()=>o(null)),s.once("error",a=>o(a))})}function Rg(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:_g(new URL("../bin/tkr-daemon.js",import.meta.url))}async function Or(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let s=0;s<n;s++){if(r)try{return(await kn(e,75)).destroy(),!0}catch{}else if(Ka(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function Ag(e){let t=Rg();if(!_e()&&!Ka(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Dt(),r=process.platform==="win32"?T():bg(n);try{Dr(r,{recursive:!0})}catch{}let s=Mr(r,"daemon.spawn.lock"),o=null;try{o=Ir(s,"wx"),Nr(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await Or(n,5e3))return;try{Pr(s)}catch{}try{o=Ir(s,"wx"),Nr(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await Or(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Ir(Lr(),"a")}catch{}let[a,...l]=$t(t);if(mg(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{Ga(i)}catch{}if(!await Or(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{Ga(o)}catch{}try{Pr(s)}catch{}}}}async function Cg(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Dt(),n=await ur();try{let r=await kn(t,Va);r.write(Rr({id:Pt(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function Ig(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await kn(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function jr(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Dt(),n=await ur(),r=null,s=0,o=!1;for(;s<=Ja;)try{r=await kn(t,Va),$g();break}catch{if(s+=1,s>Ja)throw new Error(`tkr-daemon unreachable at ${t}`);if(Sg())throw new Error(`tkr-daemon spawn on cooldown (see ${Lr()})`);await Cr();try{await Ag(n),o=!0}catch(u){throw Tg(u),u}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",u=>{a+=u;let f=-1;for(let p=0;p<a.length;p++)a[p]===yn&&(f=p);if(f<0)return;let d=[];for(let p of za(a.slice(0,f+1)))d.push(p);a=a.slice(f+1);for(let p of d)if(p)try{let h=JSON.parse(p),_=i.get(h.id);if(!_)continue;clearTimeout(_.timer),i.delete(h.id),_.resolve(h)}catch{}}),r.on("close",()=>{for(let u of i.values())clearTimeout(u.timer),u.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(u){return new Promise((f,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let p=setTimeout(()=>{i.delete(u.id),d(new Error(`daemon request timeout (${u.op})`))},xg);i.set(u.id,{resolve:f,reject:d,timer:p}),r.write(Rr(u))})}let c={filter:async(u,f,d)=>{let p=await l({id:Pt(),op:"filter",cmd:u.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!p.ok)return null;let h=Ba.safeParse(p.data);return h.success?h.data.filter:null},ping:async()=>{let u=await l({id:Pt(),op:"ping"});if(!u.ok)throw new Error(u.err);return u.data},reload:async()=>{let u=await l({id:Pt(),op:"reload",installId:n});if(!u.ok)throw new Error(u.err);return u.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!o){let u=!1;try{let f=await c.ping();if(f.version&&li(vt,f.version))throw new Error(`newer daemon ${f.version} already running`);u=f.version!==vt}catch(f){throw c.close(),f}if(u){try{await Cg(e.socketPath?{socketPath:e.socketPath}:{})}catch{}c.close();let f=await Ig(t,2e3);if(await Cr(),!f)throw new Error("stale daemon still running after shutdown request");return jr({...e,skipVersionCheck:!0})}}return c}var lt=null,Mt=null;async function Og(){if(lt)return lt;if(Mt)return Mt;let e=jr().then(t=>{if(Mt===e)return lt=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Mt=e,e}var Hr=null,Br=!1;async function Pg(){return Br||(Br=!0,Hr=await di()??nn()),Hr}async function Wa(e,t,n){let r=await Pg();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(X(s.slug))?null:s}function Ng(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function qa(e){cr(async(t,n)=>{let r=e==="free"?"trial":e,s=n??rn(void 0),o=await Og();if(!o)return Wa(t,r,s);try{let i=await o.filter(t,r,s?[...s]:void 0);return!i||s&&!s.has(X(i.slug))?null:Ng(i)}catch{return Wa(t,r,s)}})}function Ya(){if(cr(null),lt)try{lt.close()}catch{}lt=null,Mt=null,Hr=null,Br=!1}import{chmod as Fg,mkdir as Lg,readFile as rS,writeFile as Xa,stat as sS,readdir as oS,rm as Qa,rename as jg}from"node:fs/promises";import{readFileSync as Hg}from"node:fs";import{createHash as Bg}from"node:crypto";import{readFileSync as Dg}from"node:fs";import{join as Mg}from"node:path";function Ge(){try{return Dg(Mg(T(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var zg=1440*60*1e3,uS=30*zg,fS=200*1024*1024,Ug=8*1024*1024,Zg=/^[0-9a-f]{8,64}$/i;var Gg=".meta";var dS=["usage: tkr restore <hash> [--lines a:b] [--grep pattern]"," tkr restore --list"," tkr restore --grep <pattern>",""].join(`
97
+ `)}catch{}}function Tg(e){try{Dr(T(),{recursive:!0}),Nr(Fr(),String(Date.now()))}catch{}Eg(`spawn failed: ${e.message}`)}function $g(){try{yg(Fr(),{force:!0})}catch{}}async function kn(e,t){return new Promise((n,r)=>{let s=mg(e),o=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(i),a){try{s.destroy()}catch{}r(a)}else n(s)},i=setTimeout(()=>o(new Error("connect timeout")),t);s.once("connect",()=>o(null)),s.once("error",a=>o(a))})}function Rg(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:_g(new URL("../bin/tkr-daemon.js",import.meta.url))}async function Or(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let s=0;s<n;s++){if(r)try{return(await kn(e,75)).destroy(),!0}catch{}else if(Ka(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function Ag(e){let t=Rg();if(!_e()&&!Ka(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Dt(),r=process.platform==="win32"?T():bg(n);try{Dr(r,{recursive:!0})}catch{}let s=Mr(r,"daemon.spawn.lock"),o=null;try{o=Ir(s,"wx"),Nr(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await Or(n,5e3))return;try{Pr(s)}catch{}try{o=Ir(s,"wx"),Nr(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await Or(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Ir(Lr(),"a")}catch{}let[a,...l]=$t(t);if(pg(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{Ga(i)}catch{}if(!await Or(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{Ga(o)}catch{}try{Pr(s)}catch{}}}}async function Cg(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Dt(),n=await ur();try{let r=await kn(t,Va);r.write(Rr({id:Pt(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function Ig(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await kn(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function jr(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Dt(),n=await ur(),r=null,s=0,o=!1;for(;s<=Ja;)try{r=await kn(t,Va),$g();break}catch{if(s+=1,s>Ja)throw new Error(`tkr-daemon unreachable at ${t}`);if(Sg())throw new Error(`tkr-daemon spawn on cooldown (see ${Lr()})`);await Cr();try{await Ag(n),o=!0}catch(u){throw Tg(u),u}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",u=>{a+=u;let f=-1;for(let m=0;m<a.length;m++)a[m]===yn&&(f=m);if(f<0)return;let d=[];for(let m of za(a.slice(0,f+1)))d.push(m);a=a.slice(f+1);for(let m of d)if(m)try{let h=JSON.parse(m),_=i.get(h.id);if(!_)continue;clearTimeout(_.timer),i.delete(h.id),_.resolve(h)}catch{}}),r.on("close",()=>{for(let u of i.values())clearTimeout(u.timer),u.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(u){return new Promise((f,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let m=setTimeout(()=>{i.delete(u.id),d(new Error(`daemon request timeout (${u.op})`))},xg);i.set(u.id,{resolve:f,reject:d,timer:m}),r.write(Rr(u))})}let c={filter:async(u,f,d)=>{let m=await l({id:Pt(),op:"filter",cmd:u.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!m.ok)return null;let h=Ba.safeParse(m.data);return h.success?h.data.filter:null},ping:async()=>{let u=await l({id:Pt(),op:"ping"});if(!u.ok)throw new Error(u.err);return u.data},reload:async()=>{let u=await l({id:Pt(),op:"reload",installId:n});if(!u.ok)throw new Error(u.err);return u.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!o){let u=!1;try{let f=await c.ping();if(f.version&&li(vt,f.version))throw new Error(`newer daemon ${f.version} already running`);u=f.version!==vt}catch(f){throw c.close(),f}if(u){try{await Cg(e.socketPath?{socketPath:e.socketPath}:{})}catch{}c.close();let f=await Ig(t,2e3);if(await Cr(),!f)throw new Error("stale daemon still running after shutdown request");return jr({...e,skipVersionCheck:!0})}}return c}var lt=null,Mt=null;async function Og(){if(lt)return lt;if(Mt)return Mt;let e=jr().then(t=>{if(Mt===e)return lt=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Mt=e,e}var Hr=null,Br=!1;async function Pg(){return Br||(Br=!0,Hr=await di()??nn()),Hr}async function Wa(e,t,n){let r=await Pg();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(X(s.slug))?null:s}function Ng(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function qa(e){cr(async(t,n)=>{let r=e==="free"?"trial":e,s=n??rn(void 0),o=await Og();if(!o)return Wa(t,r,s);try{let i=await o.filter(t,r,s?[...s]:void 0);return!i||s&&!s.has(X(i.slug))?null:Ng(i)}catch{return Wa(t,r,s)}})}function Ya(){if(cr(null),lt)try{lt.close()}catch{}lt=null,Mt=null,Hr=null,Br=!1}import{chmod as Fg,mkdir as Lg,readFile as rS,writeFile as Xa,stat as sS,readdir as oS,rm as Qa,rename as jg}from"node:fs/promises";import{readFileSync as Hg}from"node:fs";import{createHash as Bg}from"node:crypto";import{readFileSync as Dg}from"node:fs";import{join as Mg}from"node:path";function Ge(){try{return Dg(Mg(T(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var zg=1440*60*1e3,uS=30*zg,fS=200*1024*1024,Ug=8*1024*1024,Zg=/^[0-9a-f]{8,64}$/i;var Gg=".meta";var dS=["usage: tkr restore <hash> [--lines a:b] [--grep pattern]"," tkr restore --list"," tkr restore --grep <pattern>",""].join(`
98
98
  `);function Jg(){try{let e=JSON.parse(Hg(No(),"utf8")),t=e.maxAgeDays;return{...typeof t=="number"&&Number.isFinite(t)&&t>0?{maxAgeDays:Math.min(t,365)}:{},...e.disabled===!0?{disabled:!0}:{}}}catch{return{}}}function Kg(e,t,n=process.env){let r=Number(n[e]);return Number.isFinite(r)&&r>0?r:t}function Vg(e){return`${Qn(e)}${Gg}`}function Wg(e){return e===""?[]:(e.endsWith(`
99
99
  `)?e.slice(0,-1):e).split(`
100
100
  `)}async function qg(e,t,n=process.env,r={}){if(Ge()||!Zg.test(e))return!1;let s=Buffer.byteLength(t,"utf8");if(s>Kg("TOKMIZER_CCR_ENTRY_MAX_BYTES",Ug,n))return!1;let o=Qn(e),i=`${o}.tmp-${process.pid}-${process.hrtime.bigint()}`;try{if(await Lg(Xn(),{recursive:!0}),Ge())return!1;if(await Xa(i,t,{mode:384}),await Fg(i,384),Ge())return await Qa(i,{force:!0}),!1;await jg(i,o)}catch{try{await Qa(i)}catch{}return!1}let a={at:Date.now(),bytes:s,lines:Wg(t).length,partial:r.partial===!0,...r.label?{label:r.label.slice(0,40)}:{}};try{await Xa(Vg(e),JSON.stringify(a),{mode:384})}catch{}return!0}function el(e){let t=e.TOKMIZER_CCR_DISABLED;return t==="1"||t==="true"||Ge()||Jg().disabled===!0}async function zr(e,t,n,r){let s=Bg("sha256").update(e).digest("hex").slice(0,16);return await qg(s,e,r,{partial:t,label:n})?s:null}async function Ur(e,t,n=process.env,r={}){if(el(n)||!e)return t;let s=i=>`
101
101
  [tkr restore ${i}]`;if(Buffer.byteLength(e,"utf8")<=Buffer.byteLength(s("0".repeat(16)),"utf8"))return t;if(r.raw){let i=await zr(r.raw,!1,r.label,n);if(i)return`${t}${s(i)}`}let o=await zr(e,!0,r.label,n);return o?`${t}${s(o)}`:t}async function tl(e,t,n=process.env,r={}){if(el(n)||!e)return t;let s=await zr(e,!1,r.label,n);return s?`${t}
102
- [tkr restore ${s}]`:t}var ct=10*1024*1024,nl=1024,sy=6e4,sl="TOKMIZER_EXEC_CAPTURING";function ol(e=process.env){return e[sl]==="1"}function rl(e,t){let n=new ry("utf8"),r=n.write(Buffer.concat(e));return t?r:r+n.end()}function oy(){try{if(!St())return;let e=process.env.TOKMIZER_TKR_BIN||ny(new URL("../bin/tkr.js",import.meta.url));if(!_e()&&!Yg(e))return;let t=ty(T(),"enroll-kick");try{let o=Number(Xg(t,"utf8"));if(Number.isFinite(o)&&Date.now()-o<sy)return}catch{}ey(T(),{recursive:!0}),Qg(t,String(Date.now()));let[n,...r]=$t(e);(0,Zr.default)(n,[...r,"heartbeat"],{detached:!0,stdio:"ignore"}).unref()}catch{}}function iy(e){let t=Number(e.TOKMIZER_EXEC_TIMEOUT_MS);if(Number.isFinite(t)&&t>0)return t;let n=Number(e.BASH_MAX_TIMEOUT_MS);return Number.isFinite(n)&&n>6e5?n:6e5}var ay=iy(process.env),ly={SIGHUP:1,SIGINT:2,SIGQUIT:3,SIGILL:4,SIGTRAP:5,SIGABRT:6,SIGBUS:7,SIGFPE:8,SIGKILL:9,SIGUSR1:10,SIGSEGV:11,SIGUSR2:12,SIGPIPE:13,SIGALRM:14,SIGTERM:15};function Gr(e){return ly[e]??15}async function il(e){let[t,...n]=e;if(!t)throw new Error("tkr-exec: missing command");let r=Ge(),s=(0,Zr.default)(t,n,{stdio:["inherit","pipe","pipe"],env:{...Ha(),[sl]:"1"}}),o=!1;s.on("spawn",()=>{o=!0});let i=C=>{try{s.kill(C)}catch{}},a=()=>i("SIGINT"),l=()=>i("SIGTERM");process.on("SIGINT",a),process.on("SIGTERM",l);let c=[],u=[],f=0,d=0,p=!1,h=!1;s.stdout?.on("data",C=>{if(f>=ct){p=!0;return}let N=ct-f,D=C.length>N?C.subarray(0,N):C;c.push(D),f+=D.length,C.length>N&&(p=!0)}),s.stderr?.on("data",C=>{if(d>=ct){h=!0;return}let N=ct-d,D=C.length>N?C.subarray(0,N):C;u.push(D),d+=D.length,C.length>N&&(h=!0)});let _,g,R;try{R=await new Promise((C,N)=>{s.on("error",D=>{_&&clearTimeout(_),o?C(1):N(D)}),s.on("close",(D,F)=>{_&&clearTimeout(_),C(D??(F?128+Gr(F):0))}),_=setTimeout(()=>{s.kill("SIGTERM"),g=setTimeout(()=>s.kill("SIGKILL"),2e3)},ay),_.unref?.()})}finally{_&&clearTimeout(_),g&&clearTimeout(g),process.off("SIGINT",a),process.off("SIGTERM",l)}let E=rl(c,p),O=rl(u,h);return cy({argv:e,stdout:E,stderr:O,exitCode:R,truncated:p,stderrTruncated:h},{yolo:r,env:process.env,onMissingState:oy})}async function cy({argv:e,stdout:t,stderr:n,exitCode:r,truncated:s,stderrTruncated:o},{yolo:i,env:a,resolver:l,onMissingState:c,deferAccounting:u,...f}){let d=s?`
103
- \u2026 (output truncated at ${ct/1048576}MB)`:"",p=o?`
104
- \u2026 (stderr truncated at ${ct/(1024*1024)}MB)`:"",h=()=>{let _=t+d,g=Buffer.byteLength(_,"utf8");return{stdout:_,stderr:n+p,code:r,filterId:null,rawBytes:g,filteredBytes:g,truncated:s}};try{let _=await wt();_||c?.();let g=await Ue();if(!g.enabled)return h();let R=a.CLAUDE_CODE_SESSION_ID;R&&_?.token&&Zi(R,{tool:"Bash",target:e.join(" "),...r!==0?{fail:1}:{}});let E=_?gi(_):null,O=_?rn(_.allowedFilters,hi(_)):null,C=new Set(g.filters.disabled.map(X)),N=O&&C.size>0?new Set([...O].filter(V=>!C.has(V))):O,D=e.join(" ");_&&!l&&qa(E);let F=await sn(D,t,N,{verbosity:g.outputVerbosity,resolver:l,yolo:i,exitCode:r}),ve=n,P=0,B=0;if((i||r===0)&&Buffer.byteLength(n,"utf8")>=(i?1:nl)){let V=await sn(D,n,N,{verbosity:g.outputVerbosity,resolver:l,yolo:i,exitCode:r});ve=V.output,P=V.rawBytes,B=V.filteredBytes}else if(!i&&r!==0&&Buffer.byteLength(n,"utf8")>=nl){let V=await sn(D,n,N,{verbosity:g.outputVerbosity,resolver:l,exitCode:r});if(V.failureSummary){try{ve=await Ur(V.droppedTail??null,V.output,a)}catch{ve=V.output}P=V.rawBytes,B=V.filteredBytes}}let de=F.output;if(!i&&F.filteredBytes<F.rawBytes)try{de=new RegExp(ho.source,"m").test(F.output)?await tl(t,F.output,a,{label:ln(D)}):await Ur(F.droppedTail??null,F.output,a,{raw:s?null:t,label:ln(D)})}catch{}let bn=de+d,ut=ve+p,_n=Fa(a).host,ft=Bi(F.rawBytes+Buffer.byteLength(n,"utf8"),Buffer.byteLength(bn,"utf8")+Buffer.byteLength(ut,"utf8"),Ma(_n)),Jr=!1,Kr=async()=>{if(!Jr){Jr=!0;try{ji(ft.raw,ft.filtered,void 0,!1,_n,"sh",ln(D),"cwd"in f?f.cwd:process.cwd(),Hi(F)),await Ei({cmd:D,filterId:F.filterId,rawBytes:F.rawBytes,filteredBytes:F.filteredBytes,plan:E}),await Si({cmd:D,tokensSaved:Math.max(0,Math.round((ft.raw-ft.filtered)/4)),rawTokens:Math.round(ft.raw/4),optimized:F.filterId!=null,telemetryOptIn:g.telemetryOptIn&&(!u||(await Ue()).telemetryOptIn),sessionId:R,host:_n})}catch{}}};return u?u(Kr):await Kr(),{stdout:bn,stderr:ut,code:r,filterId:F.filterId,rawBytes:F.rawBytes+P,filteredBytes:F.filteredBytes+B,truncated:s}}catch{return h()}finally{l||Ya()}}function al(e=process.stdout,t=n=>process.exit(n)){e.on("error",n=>{if(n.code==="EPIPE"){t(141);return}throw n})}al();async function ll(e){let[t,...n]=e;t||process.exit(2);let r=(0,cl.default)(t,n,{stdio:"inherit"}),s=await new Promise(o=>{r.on("error",()=>o(127)),r.on("close",(i,a)=>o(i??(a?128+Gr(a):0)))});process.exit(s)}async function uy(){let e=process.argv.slice(2);if(e.length===0&&(process.stderr.write(`tkr-exec: missing command
102
+ [tkr restore ${s}]`:t}var ct=10*1024*1024,nl=1024,sy=6e4,sl="TOKMIZER_EXEC_CAPTURING";function ol(e=process.env){return e[sl]==="1"}function rl(e,t){let n=new ry("utf8"),r=n.write(Buffer.concat(e));return t?r:r+n.end()}function oy(){try{if(!St())return;let e=process.env.TOKMIZER_TKR_BIN||ny(new URL("../bin/tkr.js",import.meta.url));if(!_e()&&!Yg(e))return;let t=ty(T(),"enroll-kick");try{let o=Number(Xg(t,"utf8"));if(Number.isFinite(o)&&Date.now()-o<sy)return}catch{}ey(T(),{recursive:!0}),Qg(t,String(Date.now()));let[n,...r]=$t(e);(0,Zr.default)(n,[...r,"heartbeat"],{detached:!0,stdio:"ignore"}).unref()}catch{}}function iy(e){let t=Number(e.TOKMIZER_EXEC_TIMEOUT_MS);if(Number.isFinite(t)&&t>0)return t;let n=Number(e.BASH_MAX_TIMEOUT_MS);return Number.isFinite(n)&&n>6e5?n:6e5}var ay=iy(process.env),ly={SIGHUP:1,SIGINT:2,SIGQUIT:3,SIGILL:4,SIGTRAP:5,SIGABRT:6,SIGBUS:7,SIGFPE:8,SIGKILL:9,SIGUSR1:10,SIGSEGV:11,SIGUSR2:12,SIGPIPE:13,SIGALRM:14,SIGTERM:15};function Gr(e){return ly[e]??15}async function il(e){let[t,...n]=e;if(!t)throw new Error("tkr-exec: missing command");let r=Ge(),s=(0,Zr.default)(t,n,{stdio:["inherit","pipe","pipe"],env:{...Ha(),[sl]:"1"}}),o=!1;s.on("spawn",()=>{o=!0});let i=C=>{try{s.kill(C)}catch{}},a=()=>i("SIGINT"),l=()=>i("SIGTERM");process.on("SIGINT",a),process.on("SIGTERM",l);let c=[],u=[],f=0,d=0,m=!1,h=!1;s.stdout?.on("data",C=>{if(f>=ct){m=!0;return}let N=ct-f,D=C.length>N?C.subarray(0,N):C;c.push(D),f+=D.length,C.length>N&&(m=!0)}),s.stderr?.on("data",C=>{if(d>=ct){h=!0;return}let N=ct-d,D=C.length>N?C.subarray(0,N):C;u.push(D),d+=D.length,C.length>N&&(h=!0)});let _,g,R;try{R=await new Promise((C,N)=>{s.on("error",D=>{_&&clearTimeout(_),o?C(1):N(D)}),s.on("close",(D,F)=>{_&&clearTimeout(_),C(D??(F?128+Gr(F):0))}),_=setTimeout(()=>{s.kill("SIGTERM"),g=setTimeout(()=>s.kill("SIGKILL"),2e3)},ay),_.unref?.()})}finally{_&&clearTimeout(_),g&&clearTimeout(g),process.off("SIGINT",a),process.off("SIGTERM",l)}let E=rl(c,m),O=rl(u,h);return cy({argv:e,stdout:E,stderr:O,exitCode:R,truncated:m,stderrTruncated:h},{yolo:r,env:process.env,onMissingState:oy})}async function cy({argv:e,stdout:t,stderr:n,exitCode:r,truncated:s,stderrTruncated:o},{yolo:i,env:a,resolver:l,onMissingState:c,deferAccounting:u,...f}){let d=s?`
103
+ \u2026 (output truncated at ${ct/1048576}MB)`:"",m=o?`
104
+ \u2026 (stderr truncated at ${ct/(1024*1024)}MB)`:"",h=()=>{let _=t+d,g=Buffer.byteLength(_,"utf8");return{stdout:_,stderr:n+m,code:r,filterId:null,rawBytes:g,filteredBytes:g,truncated:s}};try{let _=await wt();_||c?.();let g=await Ue();if(!g.enabled)return h();let R=a.CLAUDE_CODE_SESSION_ID;R&&_?.token&&Zi(R,{tool:"Bash",target:e.join(" "),...r!==0?{fail:1}:{}});let E=_?gi(_):null,O=_?rn(_.allowedFilters,hi(_)):null,C=new Set(g.filters.disabled.map(X)),N=O&&C.size>0?new Set([...O].filter(V=>!C.has(V))):O,D=e.join(" ");_&&!l&&qa(E);let F=await sn(D,t,N,{verbosity:g.outputVerbosity,resolver:l,yolo:i,exitCode:r}),ve=n,P=0,B=0;if((i||r===0)&&Buffer.byteLength(n,"utf8")>=(i?1:nl)){let V=await sn(D,n,N,{verbosity:g.outputVerbosity,resolver:l,yolo:i,exitCode:r});ve=V.output,P=V.rawBytes,B=V.filteredBytes}else if(!i&&r!==0&&Buffer.byteLength(n,"utf8")>=nl){let V=await sn(D,n,N,{verbosity:g.outputVerbosity,resolver:l,exitCode:r});if(V.failureSummary){try{ve=await Ur(V.droppedTail??null,V.output,a)}catch{ve=V.output}P=V.rawBytes,B=V.filteredBytes}}let de=F.output;if(!i&&F.filteredBytes<F.rawBytes)try{de=new RegExp(ho.source,"m").test(F.output)?await tl(t,F.output,a,{label:ln(D)}):await Ur(F.droppedTail??null,F.output,a,{raw:s?null:t,label:ln(D)})}catch{}let bn=de+d,ut=ve+m,_n=Fa(a).host,ft=Bi(F.rawBytes+Buffer.byteLength(n,"utf8"),Buffer.byteLength(bn,"utf8")+Buffer.byteLength(ut,"utf8"),Ma(_n)),Jr=!1,Kr=async()=>{if(!Jr){Jr=!0;try{ji(ft.raw,ft.filtered,void 0,!1,_n,"sh",ln(D),"cwd"in f?f.cwd:process.cwd(),Hi(F)),await Ei({cmd:D,filterId:F.filterId,rawBytes:F.rawBytes,filteredBytes:F.filteredBytes,plan:E}),await Si({cmd:D,tokensSaved:Math.max(0,Math.round((ft.raw-ft.filtered)/4)),rawTokens:Math.round(ft.raw/4),optimized:F.filterId!=null,telemetryOptIn:g.telemetryOptIn&&(!u||(await Ue()).telemetryOptIn),sessionId:R,host:_n})}catch{}}};return u?u(Kr):await Kr(),{stdout:bn,stderr:ut,code:r,filterId:F.filterId,rawBytes:F.rawBytes+P,filteredBytes:F.filteredBytes+B,truncated:s}}catch{return h()}finally{l||Ya()}}function al(e=process.stdout,t=n=>process.exit(n)){e.on("error",n=>{if(n.code==="EPIPE"){t(141);return}throw n})}al();async function ll(e){let[t,...n]=e;t||process.exit(2);let r=(0,cl.default)(t,n,{stdio:"inherit"}),s=await new Promise(o=>{r.on("error",()=>o(127)),r.on("close",(i,a)=>o(i??(a?128+Gr(a):0)))});process.exit(s)}async function uy(){let e=process.argv.slice(2);if(e.length===0&&(process.stderr.write(`tkr-exec: missing command
105
105
  `),process.exit(2)),ol()||Ji())return ll(e);let t;try{t=await il(e)}catch(n){return process.stderr.write(`tkr-exec: ${n.message??n}
106
106
  `),ll(e)}t.stdout&&process.stdout.write(t.stdout),t.stderr&&process.stderr.write(t.stderr),process.exitCode=t.code}uy().catch(e=>{process.stderr.write(`${e.message??e}
107
107
  `),process.exit(1)});