@tokmizer/plugin 1.1.1 → 1.1.3
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +3 -1
- package/dist/bin/tkr-agent-hook.js +13 -13
- package/dist/bin/tkr-codex-hook.js +74 -74
- package/dist/bin/tkr-context-hook.js +1 -1
- package/dist/bin/tkr-copilot-hook.js +12 -12
- package/dist/bin/tkr-crush-hook.js +12 -12
- package/dist/bin/tkr-cursor-hook.js +12 -12
- package/dist/bin/tkr-daemon.js +131 -131
- package/dist/bin/tkr-droid-hook.js +12 -12
- package/dist/bin/tkr-exec +74 -74
- package/dist/bin/tkr-exec.js +74 -74
- package/dist/bin/tkr-gemini-hook.js +12 -12
- package/dist/bin/tkr-grok-hook.js +12 -12
- package/dist/bin/tkr-junie-hook.js +12 -12
- package/dist/bin/tkr-processor.js +103 -103
- package/dist/bin/tkr-qwen-hook.js +12 -12
- package/dist/bin/tkr-shim.js +66 -66
- package/dist/bin/tkr-trae-hook.js +12 -12
- package/dist/bin/tkr-zcode-hook.js +12 -12
- package/dist/bin/tkr.js +275 -260
- package/dist/hooks-host/post-tool-use.js +88 -88
- package/dist/hooks-host/pre-tool-use.js +13 -13
- package/dist/hooks-host/reducer-prompt-submit.js +1 -1
- package/dist/hooks-host/reducer-session-start.js +1 -1
- package/dist/hooks-host/reducer-stop.js +1 -1
- package/dist/hooks-host/session-recap.js +7 -5
- package/dist/index.js +46 -46
- package/dist/native/manifest.json +12 -12
- package/dist/native/single.json +12 -12
- package/dist/native/tkr-exec-darwin-arm64 +0 -0
- package/dist/native/tkr-exec-darwin-x64 +0 -0
- package/dist/native/tkr-exec-linux-arm64 +0 -0
- package/dist/native/tkr-exec-linux-x64 +0 -0
- package/dist/native/tkr-exec-win32-arm64.exe +0 -0
- package/dist/native/tkr-exec-win32-x64.exe +0 -0
- package/package.json +7 -7
package/dist/bin/tkr-exec
CHANGED
|
@@ -1,135 +1,135 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
|
|
3
|
-
var
|
|
3
|
+
var pc=Object.create;var Pn=Object.defineProperty;var mc=Object.getOwnPropertyDescriptor;var hc=Object.getOwnPropertyNames;var gc=Object.getPrototypeOf,yc=Object.prototype.hasOwnProperty;var Ee=(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 pe=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var q=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},ps=(e,t)=>{for(var n in t)Pn(e,n,{get:t[n],enumerable:!0})},kc=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of hc(t))!yc.call(e,s)&&s!==n&&Pn(e,s,{get:()=>t[s],enumerable:!(r=mc(t,s))||r.enumerable});return e};var ms=(e,t,n)=>(n=e!=null?pc(gc(e)):{},kc(t||!e||!e.__esModule?Pn(n,"default",{value:e,enumerable:!0}):n,e));var bs=q((wk,ks)=>{ks.exports=ys;ys.sync=_c;var hs=Ee("fs");function bc(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 gs(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:bc(t,n)}function ys(e,t,n){hs.stat(e,function(r,s){n(r,r?!1:gs(s,e,t))})}function _c(e,t){return gs(hs.statSync(e),e,t)}});var vs=q((Ek,Es)=>{Es.exports=xs;xs.sync=xc;var _s=Ee("fs");function xs(e,t,n){_s.stat(e,function(r,s){n(r,r?!1:ws(s,t))})}function xc(e,t){return ws(_s.statSync(e),t)}function ws(e,t){return e.isFile()&&wc(e,t)}function wc(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 Ts=q((Sk,Ss)=>{var vk=Ee("fs"),Zt;process.platform==="win32"||global.TESTING_WINDOWS?Zt=bs():Zt=vs();Ss.exports=Nn;Nn.sync=Ec;function Nn(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){Nn(e,t||{},function(o,i){o?s(o):r(i)})})}Zt(e,t||{},function(r,s){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,s=!1),n(r,s)})}function Ec(e,t){try{return Zt.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var Ps=q((Tk,Os)=>{var et=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",$s=Ee("path"),vc=et?";":":",Rs=Ts(),As=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Cs=(e,t)=>{let n=t.colon||vc,r=e.match(/\//)||et&&e.match(/\\/)?[""]:[...et?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],s=et?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=et?s.split(n):[""];return et&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:s}},Is=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:s,pathExtExe:o}=Cs(e,t),i=[],a=c=>new Promise((u,f)=>{if(c===r.length)return t.all&&i.length?u(i):f(As(e));let d=r[c],m=/^".*"$/.test(d)?d.slice(1,-1):d,k=$s.join(m,e),g=!m&&/^\.[\\\/]/.test(e)?e.slice(0,2)+k:k;u(l(g,c,0))}),l=(c,u,f)=>new Promise((d,m)=>{if(f===s.length)return d(a(u+1));let k=s[f];Rs(c+k,{pathExt:o},(g,p)=>{if(!g&&p)if(t.all)i.push(c+k);else return d(c+k);return d(l(c,u,f+1))})});return n?a(0).then(c=>n(null,c),n):a(0)},Sc=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:s}=Cs(e,t),o=[];for(let i=0;i<n.length;i++){let a=n[i],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=$s.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(Rs.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 As(e)};Os.exports=Is;Is.sync=Sc});var Ds=q(($k,Dn)=>{"use strict";var Ns=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};Dn.exports=Ns;Dn.exports.default=Ns});var js=q((Rk,Fs)=>{"use strict";var Ms=Ee("path"),Tc=Ps(),$c=Ds();function Ls(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=Tc.sync(e.command,{path:n[$c({env:n})],pathExt:t?Ms.delimiter:void 0})}catch{}finally{o&&process.chdir(r)}return i&&(i=Ms.resolve(s?e.options.cwd:"",i)),i}function Rc(e){return Ls(e)||Ls(e,!0)}Fs.exports=Rc});var Hs=q((Ak,Ln)=>{"use strict";var Mn=/([()\][%!^"`<>&|;, *?])/g;function Ac(e){return e=e.replace(Mn,"^$1"),e}function Cc(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(Mn,"^$1"),t&&(e=e.replace(Mn,"^$1")),e}Ln.exports.command=Ac;Ln.exports.argument=Cc});var zs=q((Ck,Bs)=>{"use strict";Bs.exports=/^#!(.*)/});var Zs=q((Ik,Us)=>{"use strict";var Ic=zs();Us.exports=(e="")=>{let t=e.match(Ic);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),s=n.split("/").pop();return s==="env"?r:r?`${s} ${r}`:s}});var Ks=q((Ok,Gs)=>{"use strict";var Fn=Ee("fs"),Oc=Zs();function Pc(e){let n=Buffer.alloc(150),r;try{r=Fn.openSync(e,"r"),Fn.readSync(r,n,0,150,0),Fn.closeSync(r)}catch{}return Oc(n.toString())}Gs.exports=Pc});var qs=q((Pk,Vs)=>{"use strict";var Nc=Ee("path"),Js=js(),Ws=Hs(),Dc=Ks(),Mc=process.platform==="win32",Lc=/\.(?:com|exe)$/i,Fc=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function jc(e){e.file=Js(e);let t=e.file&&Dc(e.file);return t?(e.args.unshift(e.file),e.command=t,Js(e)):e.file}function Hc(e){if(!Mc)return e;let t=jc(e),n=!Lc.test(t);if(e.options.forceShell||n){let r=Fc.test(t);e.command=Nc.normalize(e.command),e.command=Ws.command(e.command),e.args=e.args.map(o=>Ws.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 Bc(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:Hc(r)}Vs.exports=Bc});var Qs=q((Nk,Xs)=>{"use strict";var jn=process.platform==="win32";function Hn(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 zc(e,t){if(!jn)return;let n=e.emit;e.emit=function(r,s){if(r==="exit"){let o=Ys(s,t);if(o)return n.call(e,"error",o)}return n.apply(e,arguments)}}function Ys(e,t){return jn&&e===1&&!t.file?Hn(t.original,"spawn"):null}function Uc(e,t){return jn&&e===1&&!t.file?Hn(t.original,"spawnSync"):null}Xs.exports={hookChildProcess:zc,verifyENOENT:Ys,verifyENOENTSync:Uc,notFoundError:Hn}});var Un=q((Dk,tt)=>{"use strict";var eo=Ee("child_process"),Bn=qs(),zn=Qs();function to(e,t,n){let r=Bn(e,t,n),s=eo.spawn(r.command,r.args,r.options);return zn.hookChildProcess(s,r),s}function Zc(e,t,n){let r=Bn(e,t,n),s=eo.spawnSync(r.command,r.args,r.options);return s.error=s.error||zn.verifyENOENTSync(s.status,r),s}tt.exports=to;tt.exports.spawn=to;tt.exports.sync=Zc;tt.exports._parse=Bn;tt.exports._enoent=zn});function of(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function af(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
|
-
`))}return s}var S,We=pe(()=>{S=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=
|
|
5
|
+
`))}return s}var S,We=pe(()=>{S=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=of(n.toml,n.ptr),o=af(n.toml,r,s);super(`Invalid TOML document: ${t}
|
|
6
6
|
|
|
7
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 Yt(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)S.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),k=m>=48&&m<=57?m-48:m>=65&&m<=70?m-65+10:m>=97&&m<=102?m-97+10:-1;k<0&&S.x("invalid non-hex character in unicode escape",e),u=u<<4|k}(u<0||u>1114111||u>=55296&&u<=57343)&&S.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
|
-
`:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":S.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&S.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);S.x("unfinished string",e,t)}var Jn=pe(()=>{We();});var af,Ve,Wn=pe(()=>{af=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,Ve=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(af);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 Y(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function qn(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function wt(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||S.x("document contains excessively nested structures. aborting.",e);let s=r===91?ko(e):yo(e);return e.d++,s}return r===34||r===39?Yt(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&S.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)&&S.x("invalid value",e,n),e.p++,!1):r===43||r===45?Xt(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?lf(e,r,t):e.s.charCodeAt(e.p+2)===58?cf(e,r,t):Xt(e,e.p,r,0,t)}function Xt(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)&&S.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)&&S.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||qn(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return Vn(e,t,16,s);if(o===98)return Vn(e,t,2,s);if(o===111)return Vn(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:S.x("illegal leading zero",e,t)}else Y(o)||S.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!qn(o,s));)i||(i=1),o===95?(i&1||S.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)||(Y(o)?i>9?i-=11:i&1||i++:S.x("illegal character in numeric literal",e));if(!i){let c=(n-48)*(r||1);return e.bi===!0?BigInt(c):c}i&1||S.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):go(e,l,10,t)}function Vn(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!qn(s,r));)s===95?(o&1&&S.x("illegal underscore",e),o=3):Y(s,n)?o&1&&o--:S.x("illegal character in numeric literal",e);o&1&&S.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),go(e,i,n,t)}function go(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;S.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 lf(e,t,n){let r=e.p++,s;if(!Y(t)||!Y(e.s.charCodeAt(e.p++))||!Y(e.s.charCodeAt(e.p++))||!Y(e.s.charCodeAt(e.p++)))return Xt(e,e.p=r,t,0,n);if(e.p+=5,Y(e.s.charCodeAt(e.p++))||S.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!Y(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return xt(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&S.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(;Y(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 xt(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return xt(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return xt(e,o,2,s,r)}function cf(e,t,n){let r=e.p;if(!Y(t)||!Y(e.s.charCodeAt(++e.p)))return Xt(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;Y(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return xt(e,s,4,!1,r)}function xt(e,t,n,r,s,o){if(e.ld){let i=new Ve(t,n,r);return i.isValid()||S.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){S.x(i instanceof Error?i.message:""+i,e,s)}}var Yn=pe(()=>{Jn();Xn();We();Wn();});function uf(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)&&S.x("control characters are not allowed in comments",e)}}function oe(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;uf(e)}}var Qn=pe(()=>{We();});function Qt(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||S.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||S.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)&&S.x("illegal quoted key: multiline strings are not allowed",e),s.push(Yt(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?S.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));S.x("incomplete key-value: cannot find end of key",e,n)}function yo(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(oe(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,c=Qt(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]))&&S.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&S.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&S.x("trying to redefine an already defined value",e,l),oe(e,!0,!0);let u=wt(e,125);if(i&&typeof(i[o]=u)=="object"&&r.add(u),oe(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&S.x("expected comma or end of structure",e,e.p-1)}S.x("unfinished table",e,t)}function ko(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(oe(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(wt(e,93)),oe(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&S.x("expected comma or end of structure",e,e.p-1)}S.x("unfinished array",e,t)}var Xn=pe(()=>{Jn();Yn();Qn();We();});function bo(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 _o(e,t,n){(t===null||e.uk===2)&&S.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function er(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++,oe(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=Qt(n,93);c&&(e.charCodeAt(n.p)!==93&&S.x("expected end of table array declaration",n),n.p++);let f=bo(n,u,r,s,c?2:1);f?(l=f[2],a=f[1]):(_o(n,f,o),i=!0)}else{o=n.p;let c=Qt(n),u=bo(n,c,a,l,0);!u&&!i&&_o(n,u,o),oe(n,!0,!0);let f=wt(n,void 0);u&&!i&&(u[1][u[0]]=f)}oe(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&S.x("each key-value declaration must be followed by an end-of-line",n),oe(n)}return r}var xo=pe(()=>{Xn();Yn();Qn();We();});function Et(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 df(e){for(let t=0;t<e.length;t++)if(Et(e[t])!=="object")return!1;return e.length!=0}function Eo(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function pf(e){return Eo(wo?e.toWellFormed():e)}function vo(e){if(ff.test(e))return e;if(wo&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Eo(e)}function tr(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 pf(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return mf(e,n,r,s);case"array":return hf(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 mf(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+=vo(a)+" = "+tr(e[a],Et(e[a]),t-1,n,r)}return o+" }"}function hf(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+=tr(e[o],Et(e[o]),t-1,n,r)}return s+" ]"}function gf(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&&`
|
|
8
|
+
`:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":S.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&S.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);S.x("unfinished string",e,t)}var Jn=pe(()=>{We();});var lf,Ve,Wn=pe(()=>{lf=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,Ve=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(lf);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 Y(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function qn(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Et(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||S.x("document contains excessively nested structures. aborting.",e);let s=r===91?ko(e):yo(e);return e.d++,s}return r===34||r===39?Yt(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&S.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)&&S.x("invalid value",e,n),e.p++,!1):r===43||r===45?Xt(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?cf(e,r,t):e.s.charCodeAt(e.p+2)===58?uf(e,r,t):Xt(e,e.p,r,0,t)}function Xt(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)&&S.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)&&S.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||qn(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return Vn(e,t,16,s);if(o===98)return Vn(e,t,2,s);if(o===111)return Vn(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:S.x("illegal leading zero",e,t)}else Y(o)||S.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!qn(o,s));)i||(i=1),o===95?(i&1||S.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)||(Y(o)?i>9?i-=11:i&1||i++:S.x("illegal character in numeric literal",e));if(!i){let c=(n-48)*(r||1);return e.bi===!0?BigInt(c):c}i&1||S.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):go(e,l,10,t)}function Vn(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!qn(s,r));)s===95?(o&1&&S.x("illegal underscore",e),o=3):Y(s,n)?o&1&&o--:S.x("illegal character in numeric literal",e);o&1&&S.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),go(e,i,n,t)}function go(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;S.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 cf(e,t,n){let r=e.p++,s;if(!Y(t)||!Y(e.s.charCodeAt(e.p++))||!Y(e.s.charCodeAt(e.p++))||!Y(e.s.charCodeAt(e.p++)))return Xt(e,e.p=r,t,0,n);if(e.p+=5,Y(e.s.charCodeAt(e.p++))||S.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!Y(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return wt(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&S.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(;Y(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 wt(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return wt(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return wt(e,o,2,s,r)}function uf(e,t,n){let r=e.p;if(!Y(t)||!Y(e.s.charCodeAt(++e.p)))return Xt(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;Y(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return wt(e,s,4,!1,r)}function wt(e,t,n,r,s,o){if(e.ld){let i=new Ve(t,n,r);return i.isValid()||S.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){S.x(i instanceof Error?i.message:""+i,e,s)}}var Yn=pe(()=>{Jn();Xn();We();Wn();});function ff(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)&&S.x("control characters are not allowed in comments",e)}}function oe(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;ff(e)}}var Qn=pe(()=>{We();});function Qt(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||S.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||S.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)&&S.x("illegal quoted key: multiline strings are not allowed",e),s.push(Yt(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?S.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));S.x("incomplete key-value: cannot find end of key",e,n)}function yo(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(oe(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,c=Qt(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]))&&S.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&S.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&S.x("trying to redefine an already defined value",e,l),oe(e,!0,!0);let u=Et(e,125);if(i&&typeof(i[o]=u)=="object"&&r.add(u),oe(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&S.x("expected comma or end of structure",e,e.p-1)}S.x("unfinished table",e,t)}function ko(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(oe(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Et(e,93)),oe(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&S.x("expected comma or end of structure",e,e.p-1)}S.x("unfinished array",e,t)}var Xn=pe(()=>{Jn();Yn();Qn();We();});function bo(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 _o(e,t,n){(t===null||e.uk===2)&&S.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function er(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++,oe(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=Qt(n,93);c&&(e.charCodeAt(n.p)!==93&&S.x("expected end of table array declaration",n),n.p++);let f=bo(n,u,r,s,c?2:1);f?(l=f[2],a=f[1]):(_o(n,f,o),i=!0)}else{o=n.p;let c=Qt(n),u=bo(n,c,a,l,0);!u&&!i&&_o(n,u,o),oe(n,!0,!0);let f=Et(n,void 0);u&&!i&&(u[1][u[0]]=f)}oe(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&S.x("each key-value declaration must be followed by an end-of-line",n),oe(n)}return r}var xo=pe(()=>{Xn();Yn();Qn();We();});function vt(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 pf(e){for(let t=0;t<e.length;t++)if(vt(e[t])!=="object")return!1;return e.length!=0}function Eo(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function mf(e){return Eo(wo?e.toWellFormed():e)}function vo(e){if(df.test(e))return e;if(wo&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Eo(e)}function tr(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 mf(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return hf(e,n,r,s);case"array":return gf(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 hf(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+=vo(a)+" = "+tr(e[a],vt(e[a]),t-1,n,r)}return o+" }"}function gf(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+=tr(e[o],vt(e[o]),t-1,n,r)}return s+" ]"}function yf(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
|
-
`,o+=nr(0,e[i],t,n,r,s);return o}function nr(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=
|
|
11
|
-
`)+
|
|
10
|
+
`,o+=nr(0,e[i],t,n,r,s);return o}function nr(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=vt(t[u]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=vo(u);if(f==="array"&&pf(t[u]))a+=(a&&`
|
|
11
|
+
`)+yf(t[u],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let m=n?`${n}.${d}`:d;a+=(a&&`
|
|
12
12
|
`)+nr(m,t[u],m,r-1,s,o)}else i+=d,i+=" = ",i+=tr(t[u],f,r,s,o),i+=`
|
|
13
13
|
`}}return e&&(i||!a)&&(i=i?`[${e}]
|
|
14
14
|
${i}`:`[${e}]`),i&&a?`${i}
|
|
15
|
-
${a}`:i||a}function rr(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(
|
|
15
|
+
${a}`:i||a}function rr(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(vt(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=nr(0,e,"",t,n,r);return s[s.length-1]!==`
|
|
16
16
|
`?s+`
|
|
17
|
-
`:s}var ff,wo,So=pe(()=>{ff=/^[a-z0-9-_]+$/i,wo=!!"".isWellFormed});var sr={};ps(sr,{TomlDate:()=>Ve,TomlError:()=>S,default:()=>yf,parse:()=>er,stringify:()=>rr});var yf,or=pe(()=>{xo();So();Wn();We();yf={parse:er,stringify:rr,TomlDate:Ve,TomlError:S}});var fc=ms(Un(),1);var us=ms(Un(),1);import{statSync as Zc}from"node:fs";import{extname as Gc,join as Kc,resolve as no,win32 as ro}from"node:path";function Jc(e){try{return Zc(e).isFile()}catch{return!1}}function Gt(e,t,n=process.cwd(),r=process.platform){if(r!=="win32"||/[\\/:]/.test(e))return e;let s=no(n).toLowerCase(),o=(t.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean),i=Gc(e)?["",...o]:o;for(let a of(t.Path??t.PATH??"").split(";")){let l=a.trim().replace(/^"(.*)"$/,"$1");if(!(!l||!ro.isAbsolute(l)||no(l).toLowerCase()===s))for(let c of i){let u=Kc(l,`${e}${c.toLowerCase()}`);if(Jc(u))return u}}return ro.join(t.SystemRoot||"C:\\Windows","tkr-not-on-path",e)}import{existsSync as rc,readFileSync as X0,writeFileSync as Q0,mkdirSync as ek}from"node:fs";import{join as tk}from"node:path";import{constants as nk}from"node:os";import{fileURLToPath as rk}from"node:url";import{StringDecoder as sk}from"node:string_decoder";import{readdir as kf,readFile as bf}from"node:fs/promises";import{join as $o,dirname as _f}from"node:path";import{fileURLToPath as xf}from"node:url";var y={};ps(y,{BRAND:()=>bu,DIRTY:()=>Oe,EMPTY_PATH:()=>Yc,INVALID:()=>v,NEVER:()=>rf,OK:()=>U,ParseStatus:()=>z,Schema:()=>O,ZodAny:()=>Se,ZodArray:()=>ye,ZodBigInt:()=>Ne,ZodBoolean:()=>De,ZodBranded:()=>bt,ZodCatch:()=>Ke,ZodDate:()=>Me,ZodDefault:()=>Ge,ZodDiscriminatedUnion:()=>Wt,ZodEffects:()=>ee,ZodEnum:()=>Ue,ZodError:()=>W,ZodFirstPartyTypeKind:()=>T,ZodFunction:()=>qt,ZodIntersection:()=>He,ZodIssueCode:()=>h,ZodLazy:()=>Be,ZodLiteral:()=>ze,ZodMap:()=>at,ZodNaN:()=>ct,ZodNativeEnum:()=>Ze,ZodNever:()=>se,ZodNull:()=>Fe,ZodNullable:()=>ce,ZodNumber:()=>Pe,ZodObject:()=>V,ZodOptional:()=>X,ZodParsedType:()=>x,ZodPipeline:()=>_t,ZodPromise:()=>Te,ZodReadonly:()=>Je,ZodRecord:()=>Vt,ZodSchema:()=>O,ZodSet:()=>lt,ZodString:()=>ve,ZodSymbol:()=>ot,ZodTransformer:()=>ee,ZodTuple:()=>le,ZodType:()=>O,ZodUndefined:()=>Le,ZodUnion:()=>je,ZodUnknown:()=>ge,ZodVoid:()=>it,addIssueToContext:()=>b,any:()=>Ru,array:()=>Ou,bigint:()=>Eu,boolean:()=>ho,coerce:()=>nf,custom:()=>fo,date:()=>vu,datetimeRegex:()=>co,defaultErrorMap:()=>me,discriminatedUnion:()=>Mu,effect:()=>Wu,enum:()=>Gu,function:()=>zu,getErrorMap:()=>nt,getParsedType:()=>ae,instanceof:()=>xu,intersection:()=>Lu,isAborted:()=>Kt,isAsync:()=>rt,isDirty:()=>Jt,isValid:()=>Ee,late:()=>_u,lazy:()=>Uu,literal:()=>Zu,makeIssue:()=>kt,map:()=>Hu,nan:()=>wu,nativeEnum:()=>Ku,never:()=>Cu,null:()=>$u,nullable:()=>qu,number:()=>mo,object:()=>Pu,objectUtil:()=>Zn,oboolean:()=>tf,onumber:()=>ef,optional:()=>Vu,ostring:()=>Qu,pipeline:()=>Xu,preprocess:()=>Yu,promise:()=>Ju,quotelessJson:()=>Wc,record:()=>ju,set:()=>Bu,setErrorMap:()=>qc,strictObject:()=>Nu,string:()=>po,symbol:()=>Su,transformer:()=>Wu,tuple:()=>Fu,undefined:()=>Tu,union:()=>Du,unknown:()=>Au,util:()=>P,void:()=>Iu});var P;(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})(P||(P={}));var Zn;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Zn||(Zn={}));var x=P.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ae=e=>{switch(typeof e){case"undefined":return x.undefined;case"string":return x.string;case"number":return Number.isNaN(e)?x.nan:x.number;case"boolean":return x.boolean;case"function":return x.function;case"bigint":return x.bigint;case"symbol":return x.symbol;case"object":return Array.isArray(e)?x.array:e===null?x.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?x.promise:typeof Map<"u"&&e instanceof Map?x.map:typeof Set<"u"&&e instanceof Set?x.set:typeof Date<"u"&&e instanceof Date?x.date:x.object;default:return x.unknown}};var h=P.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"]),Wc=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),W=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,P.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()}};W.create=e=>new W(e);var Vc=(e,t)=>{let n;switch(e.code){case h.invalid_type:e.received===x.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case h.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,P.jsonStringifyReplacer)}`;break;case h.unrecognized_keys:n=`Unrecognized key(s) in object: ${P.joinValues(e.keys,", ")}`;break;case h.invalid_union:n="Invalid input";break;case h.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${P.joinValues(e.options)}`;break;case h.invalid_enum_value:n=`Invalid enum value. Expected ${P.joinValues(e.options)}, received '${e.received}'`;break;case h.invalid_arguments:n="Invalid function arguments";break;case h.invalid_return_type:n="Invalid function return type";break;case h.invalid_date:n="Invalid date";break;case h.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}"`:P.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case h.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 h.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 h.custom:n="Invalid input";break;case h.invalid_intersection_types:n="Intersection results could not be merged";break;case h.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case h.not_finite:n="Number must be finite";break;default:n=t.defaultError,P.assertNever(e)}return{message:n}},me=Vc;var so=me;function qc(e){so=e}function nt(){return so}var kt=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}},Yc=[];function b(e,t){let n=nt(),r=kt({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===me?void 0:me].filter(s=>!!s)});e.common.issues.push(r)}var z=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 v;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 v;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}}},v=Object.freeze({status:"aborted"}),Oe=e=>({status:"dirty",value:e}),U=e=>({status:"valid",value:e}),Kt=e=>e.status==="aborted",Jt=e=>e.status==="dirty",Ee=e=>e.status==="valid",rt=e=>typeof Promise<"u"&&e instanceof Promise;var E;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(E||(E={}));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}},oo=(e,t)=>{if(Ee(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 W(e.common.issues);return this._error=n,this._error}}};function C(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 O=class{get description(){return this._def.description}_getType(t){return ae(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new z,ctx:{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(rt(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:ae(t)},s=this._parseSync({data:t,path:r.path,parent:r});return oo(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ae(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Ee(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=>Ee(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:ae(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(rt(s)?s:Promise.resolve(s));return oo(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:h.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 ee({schema:this,typeName:T.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 X.create(this,this._def)}nullable(){return ce.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ye.create(this)}promise(){return Te.create(this,this._def)}or(t){return je.create([this,t],this._def)}and(t){return He.create(this,t,this._def)}transform(t){return new ee({...C(this._def),schema:this,typeName:T.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Ge({...C(this._def),innerType:this,defaultValue:n,typeName:T.ZodDefault})}brand(){return new bt({typeName:T.ZodBranded,type:this,...C(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Ke({...C(this._def),innerType:this,catchValue:n,typeName:T.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return _t.create(this,t)}readonly(){return Je.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Xc=/^c[^\s-]{8,}$/i,Qc=/^[0-9a-z]+$/,eu=/^[0-9A-HJKMNP-TV-Z]{26}$/i,tu=/^[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,nu=/^[a-z0-9_-]{21}$/i,ru=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,su=/^[-+]?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)?)??$/,ou=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,iu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Gn,au=/^(?:(?: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])$/,lu=/^(?:(?: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])$/,cu=/^(([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]))$/,uu=/^(([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])$/,fu=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,du=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ao="((\\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])))",pu=new RegExp(`^${ao}$`);function lo(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 mu(e){return new RegExp(`^${lo(e)}$`)}function co(e){let t=`${ao}T${lo(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 hu(e,t){return!!((t==="v4"||!t)&&au.test(e)||(t==="v6"||!t)&&cu.test(e))}function gu(e,t){if(!ru.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 yu(e,t){return!!((t==="v4"||!t)&&lu.test(e)||(t==="v6"||!t)&&uu.test(e))}var ve=class e extends O{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==x.string){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_type,expected:x.string,received:o.parsedType}),v}let r=new z,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:h.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),b(s,{code:h.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?b(s,{code:h.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&b(s,{code:h.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")ou.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"email",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Gn||(Gn=new RegExp(iu,"u")),Gn.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"emoji",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")tu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"uuid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")nu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"nanoid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")Xc.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cuid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")Qc.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cuid2",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")eu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"ulid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),b(s,{validation:"url",code:h.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),b(s,{validation:"regex",code:h.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),b(s,{code:h.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),b(s,{code:h.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?co(o).test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?pu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?mu(o).test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?su.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"duration",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?hu(t.data,o.version)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"ip",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?gu(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"jwt",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?yu(t.data,o.version)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cidr",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?fu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"base64",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?du.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"base64url",code:h.invalid_string,message:o.message}),r.dirty()):P.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:h.invalid_string,...E.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...E.errToObj(t)})}url(t){return this._addCheck({kind:"url",...E.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...E.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...E.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...E.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...E.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...E.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...E.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...E.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...E.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...E.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...E.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...E.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,...E.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,...E.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...E.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...E.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...E.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...E.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...E.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...E.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...E.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...E.errToObj(n)})}nonempty(t){return this.min(1,E.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}};ve.create=e=>new ve({checks:[],typeName:T.ZodString,coerce:e?.coerce??!1,...C(e)});function ku(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 Pe=class e extends O{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)!==x.number){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_type,expected:x.number,received:o.parsedType}),v}let r,s=new z;for(let o of this._def.checks)o.kind==="int"?P.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),b(r,{code:h.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),b(r,{code:h.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),b(r,{code:h.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?ku(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),b(r,{code:h.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),b(r,{code:h.not_finite,message:o.message}),s.dirty()):P.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,E.toString(n))}gt(t,n){return this.setLimit("min",t,!1,E.toString(n))}lte(t,n){return this.setLimit("max",t,!0,E.toString(n))}lt(t,n){return this.setLimit("max",t,!1,E.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:E.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:E.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:E.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:E.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:E.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:E.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:E.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:E.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:E.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:E.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"&&P.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)}};Pe.create=e=>new Pe({checks:[],typeName:T.ZodNumber,coerce:e?.coerce||!1,...C(e)});var Ne=class e extends O{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)!==x.bigint)return this._getInvalidInput(t);let r,s=new z;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),b(r,{code:h.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),b(r,{code:h.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),b(r,{code:h.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):P.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return b(n,{code:h.invalid_type,expected:x.bigint,received:n.parsedType}),v}gte(t,n){return this.setLimit("min",t,!0,E.toString(n))}gt(t,n){return this.setLimit("min",t,!1,E.toString(n))}lte(t,n){return this.setLimit("max",t,!0,E.toString(n))}lt(t,n){return this.setLimit("max",t,!1,E.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:E.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:E.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:E.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:E.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:E.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:E.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}};Ne.create=e=>new Ne({checks:[],typeName:T.ZodBigInt,coerce:e?.coerce??!1,...C(e)});var De=class extends O{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==x.boolean){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.boolean,received:r.parsedType}),v}return U(t.data)}};De.create=e=>new De({typeName:T.ZodBoolean,coerce:e?.coerce||!1,...C(e)});var Me=class e extends O{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==x.date){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_type,expected:x.date,received:o.parsedType}),v}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_date}),v}let r=new z,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:h.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),b(s,{code:h.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):P.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:E.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:E.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}};Me.create=e=>new Me({checks:[],coerce:e?.coerce||!1,typeName:T.ZodDate,...C(e)});var ot=class extends O{_parse(t){if(this._getType(t)!==x.symbol){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.symbol,received:r.parsedType}),v}return U(t.data)}};ot.create=e=>new ot({typeName:T.ZodSymbol,...C(e)});var Le=class extends O{_parse(t){if(this._getType(t)!==x.undefined){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.undefined,received:r.parsedType}),v}return U(t.data)}};Le.create=e=>new Le({typeName:T.ZodUndefined,...C(e)});var Fe=class extends O{_parse(t){if(this._getType(t)!==x.null){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.null,received:r.parsedType}),v}return U(t.data)}};Fe.create=e=>new Fe({typeName:T.ZodNull,...C(e)});var Se=class extends O{constructor(){super(...arguments),this._any=!0}_parse(t){return U(t.data)}};Se.create=e=>new Se({typeName:T.ZodAny,...C(e)});var ge=class extends O{constructor(){super(...arguments),this._unknown=!0}_parse(t){return U(t.data)}};ge.create=e=>new ge({typeName:T.ZodUnknown,...C(e)});var se=class extends O{_parse(t){let n=this._getOrReturnCtx(t);return b(n,{code:h.invalid_type,expected:x.never,received:n.parsedType}),v}};se.create=e=>new se({typeName:T.ZodNever,...C(e)});var it=class extends O{_parse(t){if(this._getType(t)!==x.undefined){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.void,received:r.parsedType}),v}return U(t.data)}};it.create=e=>new it({typeName:T.ZodVoid,...C(e)});var ye=class e extends O{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==x.array)return b(n,{code:h.invalid_type,expected:x.array,received:n.parsedType}),v;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(b(n,{code:i?h.too_big:h.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&&(b(n,{code:h.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&&(b(n,{code:h.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=>z.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new Q(n,i,n.path,a)));return z.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:E.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:E.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:E.toString(n)}})}nonempty(t){return this.min(1,t)}};ye.create=(e,t)=>new ye({type:e,minLength:null,maxLength:null,exactLength:null,typeName:T.ZodArray,...C(t)});function st(e){if(e instanceof V){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=X.create(st(r))}return new V({...e._def,shape:()=>t})}else return e instanceof ye?new ye({...e._def,type:st(e.element)}):e instanceof X?X.create(st(e.unwrap())):e instanceof ce?ce.create(st(e.unwrap())):e instanceof le?le.create(e.items.map(t=>st(t))):e}var V=class e extends O{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=P.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==x.object){let c=this._getOrReturnCtx(t);return b(c,{code:h.invalid_type,expected:x.object,received:c.parsedType}),v}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof se&&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 se){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&&(b(s,{code:h.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=>z.mergeObjectSync(r,c)):z.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return E.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:E.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:T.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 P.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 P.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return st(this)}partial(t){let n={};for(let r of P.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 P.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof X;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return uo(P.objectKeys(this.shape))}};V.create=(e,t)=>new V({shape:()=>e,unknownKeys:"strip",catchall:se.create(),typeName:T.ZodObject,...C(t)});V.strictCreate=(e,t)=>new V({shape:()=>e,unknownKeys:"strict",catchall:se.create(),typeName:T.ZodObject,...C(t)});V.lazycreate=(e,t)=>new V({shape:e,unknownKeys:"strip",catchall:se.create(),typeName:T.ZodObject,...C(t)});var je=class extends O{_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 W(a.ctx.common.issues));return b(n,{code:h.invalid_union,unionErrors:i}),v}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 W(l));return b(n,{code:h.invalid_union,unionErrors:a}),v}}get options(){return this._def.options}};je.create=(e,t)=>new je({options:e,typeName:T.ZodUnion,...C(t)});var he=e=>e instanceof Be?he(e.schema):e instanceof ee?he(e.innerType()):e instanceof ze?[e.value]:e instanceof Ue?e.options:e instanceof Ze?P.objectValues(e.enum):e instanceof Ge?he(e._def.innerType):e instanceof Le?[void 0]:e instanceof Fe?[null]:e instanceof X?[void 0,...he(e.unwrap())]:e instanceof ce?[null,...he(e.unwrap())]:e instanceof bt||e instanceof Je?he(e.unwrap()):e instanceof Ke?he(e._def.innerType):[],Wt=class e extends O{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.object)return b(n,{code:h.invalid_type,expected:x.object,received:n.parsedType}),v;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}):(b(n,{code:h.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),v)}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=he(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:T.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...C(r)})}};function Kn(e,t){let n=ae(e),r=ae(t);if(e===t)return{valid:!0,data:e};if(n===x.object&&r===x.object){let s=P.objectKeys(t),o=P.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Kn(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===x.array&&r===x.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=Kn(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===x.date&&r===x.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var He=class extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(Kt(o)||Kt(i))return v;let a=Kn(o.value,i.value);return a.valid?((Jt(o)||Jt(i))&&n.dirty(),{status:n.value,value:a.data}):(b(r,{code:h.invalid_intersection_types}),v)};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}))}};He.create=(e,t,n)=>new He({left:e,right:t,typeName:T.ZodIntersection,...C(n)});var le=class e extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==x.array)return b(r,{code:h.invalid_type,expected:x.array,received:r.parsedType}),v;if(r.data.length<this._def.items.length)return b(r,{code:h.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;!this._def.rest&&r.data.length>this._def.items.length&&(b(r,{code:h.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=>z.mergeArray(n,i)):z.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};le.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new le({items:e,typeName:T.ZodTuple,rest:null,...C(t)})};var Vt=class e extends O{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!==x.object)return b(r,{code:h.invalid_type,expected:x.object,received:r.parsedType}),v;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?z.mergeObjectAsync(n,s):z.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof O?new e({keyType:t,valueType:n,typeName:T.ZodRecord,...C(r)}):new e({keyType:ve.create(),valueType:t,typeName:T.ZodRecord,...C(n)})}},at=class extends O{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!==x.map)return b(r,{code:h.invalid_type,expected:x.map,received:r.parsedType}),v;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 v;(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 v;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}}}};at.create=(e,t,n)=>new at({valueType:t,keyType:e,typeName:T.ZodMap,...C(n)});var lt=class e extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==x.set)return b(r,{code:h.invalid_type,expected:x.set,received:r.parsedType}),v;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(b(r,{code:h.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&&(b(r,{code:h.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 v;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:E.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:E.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};lt.create=(e,t)=>new lt({valueType:e,minSize:null,maxSize:null,typeName:T.ZodSet,...C(t)});var qt=class e extends O{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.function)return b(n,{code:h.invalid_type,expected:x.function,received:n.parsedType}),v;function r(a,l){return kt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),me].filter(c=>!!c),issueData:{code:h.invalid_arguments,argumentsError:l}})}function s(a,l){return kt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),me].filter(c=>!!c),issueData:{code:h.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof Te){let a=this;return U(async function(...l){let c=new W([]),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 U(function(...l){let c=a._def.args.safeParse(l,o);if(!c.success)throw new W([r(l,c.error)]);let u=Reflect.apply(i,this,c.data),f=a._def.returns.safeParse(u,o);if(!f.success)throw new W([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:le.create(t).rest(ge.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||le.create([]).rest(ge.create()),returns:n||ge.create(),typeName:T.ZodFunction,...C(r)})}},Be=class extends O{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})}};Be.create=(e,t)=>new Be({getter:e,typeName:T.ZodLazy,...C(t)});var ze=class extends O{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return b(n,{received:n.data,code:h.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:t.data}}get value(){return this._def.value}};ze.create=(e,t)=>new ze({value:e,typeName:T.ZodLiteral,...C(t)});function uo(e,t){return new Ue({values:e,typeName:T.ZodEnum,...C(t)})}var Ue=class e extends O{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return b(n,{expected:P.joinValues(r),received:n.parsedType,code:h.invalid_type}),v}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 b(n,{received:n.data,code:h.invalid_enum_value,options:r}),v}return U(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})}};Ue.create=uo;var Ze=class extends O{_parse(t){let n=P.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==x.string&&r.parsedType!==x.number){let s=P.objectValues(n);return b(r,{expected:P.joinValues(s),received:r.parsedType,code:h.invalid_type}),v}if(this._cache||(this._cache=new Set(P.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=P.objectValues(n);return b(r,{received:r.data,code:h.invalid_enum_value,options:s}),v}return U(t.data)}get enum(){return this._def.values}};Ze.create=(e,t)=>new Ze({values:e,typeName:T.ZodNativeEnum,...C(t)});var Te=class extends O{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.promise&&n.common.async===!1)return b(n,{code:h.invalid_type,expected:x.promise,received:n.parsedType}),v;let r=n.parsedType===x.promise?n.data:Promise.resolve(n.data);return U(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Te.create=(e,t)=>new Te({type:e,typeName:T.ZodPromise,...C(t)});var ee=class extends O{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===T.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=>{b(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 v;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?v:l.status==="dirty"?Oe(l.value):n.value==="dirty"?Oe(l.value):l});{if(n.value==="aborted")return v;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?v:a.status==="dirty"?Oe(a.value):n.value==="dirty"?Oe(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"?v:(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"?v:(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(!Ee(i))return v;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=>Ee(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):v);P.assertNever(s)}};ee.create=(e,t,n)=>new ee({schema:e,typeName:T.ZodEffects,effect:t,...C(n)});ee.createWithPreprocess=(e,t,n)=>new ee({schema:t,effect:{type:"preprocess",transform:e},typeName:T.ZodEffects,...C(n)});var X=class extends O{_parse(t){return this._getType(t)===x.undefined?U(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};X.create=(e,t)=>new X({innerType:e,typeName:T.ZodOptional,...C(t)});var ce=class extends O{_parse(t){return this._getType(t)===x.null?U(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ce.create=(e,t)=>new ce({innerType:e,typeName:T.ZodNullable,...C(t)});var Ge=class extends O{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===x.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Ge.create=(e,t)=>new Ge({innerType:e,typeName:T.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...C(t)});var Ke=class extends O{_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 rt(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new W(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new W(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Ke.create=(e,t)=>new Ke({innerType:e,typeName:T.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...C(t)});var ct=class extends O{_parse(t){if(this._getType(t)!==x.nan){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.nan,received:r.parsedType}),v}return{status:"valid",value:t.data}}};ct.create=e=>new ct({typeName:T.ZodNaN,...C(e)});var bu=Symbol("zod_brand"),bt=class extends O{_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}},_t=class e extends O{_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"?v:o.status==="dirty"?(n.dirty(),Oe(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"?v: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:T.ZodPipeline})}},Je=class extends O{_parse(t){let n=this._def.innerType._parse(t),r=s=>(Ee(s)&&(s.value=Object.freeze(s.value)),s);return rt(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};Je.create=(e,t)=>new Je({innerType:e,typeName:T.ZodReadonly,...C(t)});function io(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function fo(e,t={},n){return e?Se.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=io(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=io(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Se.create()}var _u={object:V.lazycreate},T;(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"})(T||(T={}));var xu=(e,t={message:`Input not instance of ${e.name}`})=>fo(n=>n instanceof e,t),po=ve.create,mo=Pe.create,wu=ct.create,Eu=Ne.create,ho=De.create,vu=Me.create,Su=ot.create,Tu=Le.create,$u=Fe.create,Ru=Se.create,Au=ge.create,Cu=se.create,Iu=it.create,Ou=ye.create,Pu=V.create,Nu=V.strictCreate,Du=je.create,Mu=Wt.create,Lu=He.create,Fu=le.create,ju=Vt.create,Hu=at.create,Bu=lt.create,zu=qt.create,Uu=Be.create,Zu=ze.create,Gu=Ue.create,Ku=Ze.create,Ju=Te.create,Wu=ee.create,Vu=X.create,qu=ce.create,Yu=ee.createWithPreprocess,Xu=_t.create,Qu=()=>po().optional(),ef=()=>mo().optional(),tf=()=>ho().optional(),nf={string:(e=>ve.create({...e,coerce:!0})),number:(e=>Pe.create({...e,coerce:!0})),boolean:(e=>De.create({...e,coerce:!0})),bigint:(e=>Ne.create({...e,coerce:!0})),date:(e=>Me.create({...e,coerce:!0}))};var rf=v;var $e=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([]),drop_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(),transform_on_failure:y.boolean().default(!1),on_empty:y.string().max(255).optional()});var wf=_f(xf(import.meta.url)),Ef=process.env.TOKMIZER_FILTERS_DIR||$o(wf,"..","..","filters"),ut=null,To=!1;function vf(){return!1}async function Ro(){return ut||(vf()?(ut=await Sf(Ef),ut):(!To&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
|
|
18
|
-
`),To=!0),ut=new Map,ut))}async function
|
|
19
|
-
`))?e:e.map(n=>{if(n.length<=t||Io(n))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 dt(e){return`\u2026 (${e} more lines omitted)`}var
|
|
20
|
-
`).length<6)}var Ho=/^\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*/,Bo=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,zo=new RegExp(ne.source,"i"),Uo=/\bWARN(?:ING)?\b/i;function Zo(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(Bo.test(s.replace(Ho,""))&&!zo.test(s)&&!Uo.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var
|
|
17
|
+
`:s}var df,wo,So=pe(()=>{df=/^[a-z0-9-_]+$/i,wo=!!"".isWellFormed});var sr={};ps(sr,{TomlDate:()=>Ve,TomlError:()=>S,default:()=>kf,parse:()=>er,stringify:()=>rr});var kf,or=pe(()=>{xo();So();Wn();We();kf={parse:er,stringify:rr,TomlDate:Ve,TomlError:S}});var dc=ms(Un(),1);var us=ms(Un(),1);import{statSync as Gc}from"node:fs";import{extname as Kc,join as Jc,resolve as no,win32 as ro}from"node:path";function Wc(e){try{return Gc(e).isFile()}catch{return!1}}function Gt(e,t,n=process.cwd(),r=process.platform){if(r!=="win32"||/[\\/:]/.test(e))return e;let s=no(n).toLowerCase(),o=(t.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean),i=Kc(e)?["",...o]:o;for(let a of(t.Path??t.PATH??"").split(";")){let l=a.trim().replace(/^"(.*)"$/,"$1");if(!(!l||!ro.isAbsolute(l)||no(l).toLowerCase()===s))for(let c of i){let u=Jc(l,`${e}${c.toLowerCase()}`);if(Wc(u))return u}}return ro.join(t.SystemRoot||"C:\\Windows","tkr-not-on-path",e)}import{existsSync as rc,readFileSync as nk,writeFileSync as rk,mkdirSync as sk}from"node:fs";import{join as ok}from"node:path";import{constants as ik}from"node:os";import{fileURLToPath as ak}from"node:url";import{StringDecoder as lk}from"node:string_decoder";import{readdir as bf,readFile as _f}from"node:fs/promises";import{join as $o,dirname as xf}from"node:path";import{fileURLToPath as wf}from"node:url";var y={};ps(y,{BRAND:()=>_u,DIRTY:()=>Oe,EMPTY_PATH:()=>Xc,INVALID:()=>v,NEVER:()=>sf,OK:()=>Z,ParseStatus:()=>U,Schema:()=>O,ZodAny:()=>Te,ZodArray:()=>ye,ZodBigInt:()=>Ne,ZodBoolean:()=>De,ZodBranded:()=>_t,ZodCatch:()=>Ke,ZodDate:()=>Me,ZodDefault:()=>Ge,ZodDiscriminatedUnion:()=>Wt,ZodEffects:()=>ee,ZodEnum:()=>Ue,ZodError:()=>W,ZodFirstPartyTypeKind:()=>T,ZodFunction:()=>qt,ZodIntersection:()=>He,ZodIssueCode:()=>h,ZodLazy:()=>Be,ZodLiteral:()=>ze,ZodMap:()=>at,ZodNaN:()=>ct,ZodNativeEnum:()=>Ze,ZodNever:()=>se,ZodNull:()=>Fe,ZodNullable:()=>ce,ZodNumber:()=>Pe,ZodObject:()=>V,ZodOptional:()=>X,ZodParsedType:()=>x,ZodPipeline:()=>xt,ZodPromise:()=>$e,ZodReadonly:()=>Je,ZodRecord:()=>Vt,ZodSchema:()=>O,ZodSet:()=>lt,ZodString:()=>Se,ZodSymbol:()=>ot,ZodTransformer:()=>ee,ZodTuple:()=>le,ZodType:()=>O,ZodUndefined:()=>Le,ZodUnion:()=>je,ZodUnknown:()=>ge,ZodVoid:()=>it,addIssueToContext:()=>b,any:()=>Au,array:()=>Pu,bigint:()=>vu,boolean:()=>ho,coerce:()=>rf,custom:()=>fo,date:()=>Su,datetimeRegex:()=>co,defaultErrorMap:()=>me,discriminatedUnion:()=>Lu,effect:()=>Vu,enum:()=>Ku,function:()=>Uu,getErrorMap:()=>nt,getParsedType:()=>ae,instanceof:()=>wu,intersection:()=>Fu,isAborted:()=>Kt,isAsync:()=>rt,isDirty:()=>Jt,isValid:()=>ve,late:()=>xu,lazy:()=>Zu,literal:()=>Gu,makeIssue:()=>bt,map:()=>Bu,nan:()=>Eu,nativeEnum:()=>Ju,never:()=>Iu,null:()=>Ru,nullable:()=>Yu,number:()=>mo,object:()=>Nu,objectUtil:()=>Zn,oboolean:()=>nf,onumber:()=>tf,optional:()=>qu,ostring:()=>ef,pipeline:()=>Qu,preprocess:()=>Xu,promise:()=>Wu,quotelessJson:()=>Vc,record:()=>Hu,set:()=>zu,setErrorMap:()=>Yc,strictObject:()=>Du,string:()=>po,symbol:()=>Tu,transformer:()=>Vu,tuple:()=>ju,undefined:()=>$u,union:()=>Mu,unknown:()=>Cu,util:()=>P,void:()=>Ou});var P;(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})(P||(P={}));var Zn;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Zn||(Zn={}));var x=P.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ae=e=>{switch(typeof e){case"undefined":return x.undefined;case"string":return x.string;case"number":return Number.isNaN(e)?x.nan:x.number;case"boolean":return x.boolean;case"function":return x.function;case"bigint":return x.bigint;case"symbol":return x.symbol;case"object":return Array.isArray(e)?x.array:e===null?x.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?x.promise:typeof Map<"u"&&e instanceof Map?x.map:typeof Set<"u"&&e instanceof Set?x.set:typeof Date<"u"&&e instanceof Date?x.date:x.object;default:return x.unknown}};var h=P.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"]),Vc=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),W=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,P.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()}};W.create=e=>new W(e);var qc=(e,t)=>{let n;switch(e.code){case h.invalid_type:e.received===x.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case h.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,P.jsonStringifyReplacer)}`;break;case h.unrecognized_keys:n=`Unrecognized key(s) in object: ${P.joinValues(e.keys,", ")}`;break;case h.invalid_union:n="Invalid input";break;case h.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${P.joinValues(e.options)}`;break;case h.invalid_enum_value:n=`Invalid enum value. Expected ${P.joinValues(e.options)}, received '${e.received}'`;break;case h.invalid_arguments:n="Invalid function arguments";break;case h.invalid_return_type:n="Invalid function return type";break;case h.invalid_date:n="Invalid date";break;case h.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}"`:P.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case h.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 h.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 h.custom:n="Invalid input";break;case h.invalid_intersection_types:n="Intersection results could not be merged";break;case h.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case h.not_finite:n="Number must be finite";break;default:n=t.defaultError,P.assertNever(e)}return{message:n}},me=qc;var so=me;function Yc(e){so=e}function nt(){return so}var bt=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}},Xc=[];function b(e,t){let n=nt(),r=bt({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===me?void 0:me].filter(s=>!!s)});e.common.issues.push(r)}var U=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 v;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 v;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}}},v=Object.freeze({status:"aborted"}),Oe=e=>({status:"dirty",value:e}),Z=e=>({status:"valid",value:e}),Kt=e=>e.status==="aborted",Jt=e=>e.status==="dirty",ve=e=>e.status==="valid",rt=e=>typeof Promise<"u"&&e instanceof Promise;var E;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(E||(E={}));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}},oo=(e,t)=>{if(ve(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 W(e.common.issues);return this._error=n,this._error}}};function C(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 O=class{get description(){return this._def.description}_getType(t){return ae(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new U,ctx:{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(rt(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:ae(t)},s=this._parseSync({data:t,path:r.path,parent:r});return oo(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ae(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return ve(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=>ve(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:ae(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(rt(s)?s:Promise.resolve(s));return oo(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:h.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 ee({schema:this,typeName:T.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 X.create(this,this._def)}nullable(){return ce.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ye.create(this)}promise(){return $e.create(this,this._def)}or(t){return je.create([this,t],this._def)}and(t){return He.create(this,t,this._def)}transform(t){return new ee({...C(this._def),schema:this,typeName:T.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Ge({...C(this._def),innerType:this,defaultValue:n,typeName:T.ZodDefault})}brand(){return new _t({typeName:T.ZodBranded,type:this,...C(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Ke({...C(this._def),innerType:this,catchValue:n,typeName:T.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return xt.create(this,t)}readonly(){return Je.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Qc=/^c[^\s-]{8,}$/i,eu=/^[0-9a-z]+$/,tu=/^[0-9A-HJKMNP-TV-Z]{26}$/i,nu=/^[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,ru=/^[a-z0-9_-]{21}$/i,su=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,ou=/^[-+]?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)?)??$/,iu=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,au="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Gn,lu=/^(?:(?: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])$/,cu=/^(?:(?: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])$/,uu=/^(([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]))$/,fu=/^(([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])$/,du=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,pu=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ao="((\\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])))",mu=new RegExp(`^${ao}$`);function lo(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 hu(e){return new RegExp(`^${lo(e)}$`)}function co(e){let t=`${ao}T${lo(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 gu(e,t){return!!((t==="v4"||!t)&&lu.test(e)||(t==="v6"||!t)&&uu.test(e))}function yu(e,t){if(!su.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 ku(e,t){return!!((t==="v4"||!t)&&cu.test(e)||(t==="v6"||!t)&&fu.test(e))}var Se=class e extends O{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==x.string){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_type,expected:x.string,received:o.parsedType}),v}let r=new U,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:h.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),b(s,{code:h.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?b(s,{code:h.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&b(s,{code:h.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")iu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"email",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Gn||(Gn=new RegExp(au,"u")),Gn.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"emoji",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")nu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"uuid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")ru.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"nanoid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")Qc.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cuid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")eu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cuid2",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")tu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"ulid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),b(s,{validation:"url",code:h.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),b(s,{validation:"regex",code:h.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),b(s,{code:h.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),b(s,{code:h.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?co(o).test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?mu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?hu(o).test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?ou.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"duration",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?gu(t.data,o.version)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"ip",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?yu(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"jwt",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?ku(t.data,o.version)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cidr",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?du.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"base64",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?pu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"base64url",code:h.invalid_string,message:o.message}),r.dirty()):P.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:h.invalid_string,...E.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...E.errToObj(t)})}url(t){return this._addCheck({kind:"url",...E.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...E.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...E.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...E.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...E.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...E.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...E.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...E.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...E.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...E.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...E.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...E.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,...E.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,...E.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...E.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...E.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...E.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...E.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...E.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...E.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...E.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...E.errToObj(n)})}nonempty(t){return this.min(1,E.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}};Se.create=e=>new Se({checks:[],typeName:T.ZodString,coerce:e?.coerce??!1,...C(e)});function bu(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 Pe=class e extends O{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)!==x.number){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_type,expected:x.number,received:o.parsedType}),v}let r,s=new U;for(let o of this._def.checks)o.kind==="int"?P.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),b(r,{code:h.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),b(r,{code:h.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),b(r,{code:h.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?bu(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),b(r,{code:h.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),b(r,{code:h.not_finite,message:o.message}),s.dirty()):P.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,E.toString(n))}gt(t,n){return this.setLimit("min",t,!1,E.toString(n))}lte(t,n){return this.setLimit("max",t,!0,E.toString(n))}lt(t,n){return this.setLimit("max",t,!1,E.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:E.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:E.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:E.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:E.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:E.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:E.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:E.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:E.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:E.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:E.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"&&P.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)}};Pe.create=e=>new Pe({checks:[],typeName:T.ZodNumber,coerce:e?.coerce||!1,...C(e)});var Ne=class e extends O{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)!==x.bigint)return this._getInvalidInput(t);let r,s=new U;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),b(r,{code:h.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),b(r,{code:h.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),b(r,{code:h.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):P.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return b(n,{code:h.invalid_type,expected:x.bigint,received:n.parsedType}),v}gte(t,n){return this.setLimit("min",t,!0,E.toString(n))}gt(t,n){return this.setLimit("min",t,!1,E.toString(n))}lte(t,n){return this.setLimit("max",t,!0,E.toString(n))}lt(t,n){return this.setLimit("max",t,!1,E.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:E.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:E.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:E.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:E.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:E.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:E.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}};Ne.create=e=>new Ne({checks:[],typeName:T.ZodBigInt,coerce:e?.coerce??!1,...C(e)});var De=class extends O{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==x.boolean){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.boolean,received:r.parsedType}),v}return Z(t.data)}};De.create=e=>new De({typeName:T.ZodBoolean,coerce:e?.coerce||!1,...C(e)});var Me=class e extends O{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==x.date){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_type,expected:x.date,received:o.parsedType}),v}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_date}),v}let r=new U,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:h.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),b(s,{code:h.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):P.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:E.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:E.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}};Me.create=e=>new Me({checks:[],coerce:e?.coerce||!1,typeName:T.ZodDate,...C(e)});var ot=class extends O{_parse(t){if(this._getType(t)!==x.symbol){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.symbol,received:r.parsedType}),v}return Z(t.data)}};ot.create=e=>new ot({typeName:T.ZodSymbol,...C(e)});var Le=class extends O{_parse(t){if(this._getType(t)!==x.undefined){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.undefined,received:r.parsedType}),v}return Z(t.data)}};Le.create=e=>new Le({typeName:T.ZodUndefined,...C(e)});var Fe=class extends O{_parse(t){if(this._getType(t)!==x.null){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.null,received:r.parsedType}),v}return Z(t.data)}};Fe.create=e=>new Fe({typeName:T.ZodNull,...C(e)});var Te=class extends O{constructor(){super(...arguments),this._any=!0}_parse(t){return Z(t.data)}};Te.create=e=>new Te({typeName:T.ZodAny,...C(e)});var ge=class extends O{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Z(t.data)}};ge.create=e=>new ge({typeName:T.ZodUnknown,...C(e)});var se=class extends O{_parse(t){let n=this._getOrReturnCtx(t);return b(n,{code:h.invalid_type,expected:x.never,received:n.parsedType}),v}};se.create=e=>new se({typeName:T.ZodNever,...C(e)});var it=class extends O{_parse(t){if(this._getType(t)!==x.undefined){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.void,received:r.parsedType}),v}return Z(t.data)}};it.create=e=>new it({typeName:T.ZodVoid,...C(e)});var ye=class e extends O{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==x.array)return b(n,{code:h.invalid_type,expected:x.array,received:n.parsedType}),v;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(b(n,{code:i?h.too_big:h.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&&(b(n,{code:h.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&&(b(n,{code:h.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=>U.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new Q(n,i,n.path,a)));return U.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:E.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:E.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:E.toString(n)}})}nonempty(t){return this.min(1,t)}};ye.create=(e,t)=>new ye({type:e,minLength:null,maxLength:null,exactLength:null,typeName:T.ZodArray,...C(t)});function st(e){if(e instanceof V){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=X.create(st(r))}return new V({...e._def,shape:()=>t})}else return e instanceof ye?new ye({...e._def,type:st(e.element)}):e instanceof X?X.create(st(e.unwrap())):e instanceof ce?ce.create(st(e.unwrap())):e instanceof le?le.create(e.items.map(t=>st(t))):e}var V=class e extends O{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=P.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==x.object){let c=this._getOrReturnCtx(t);return b(c,{code:h.invalid_type,expected:x.object,received:c.parsedType}),v}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof se&&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 se){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&&(b(s,{code:h.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=>U.mergeObjectSync(r,c)):U.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return E.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:E.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:T.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 P.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 P.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return st(this)}partial(t){let n={};for(let r of P.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 P.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof X;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return uo(P.objectKeys(this.shape))}};V.create=(e,t)=>new V({shape:()=>e,unknownKeys:"strip",catchall:se.create(),typeName:T.ZodObject,...C(t)});V.strictCreate=(e,t)=>new V({shape:()=>e,unknownKeys:"strict",catchall:se.create(),typeName:T.ZodObject,...C(t)});V.lazycreate=(e,t)=>new V({shape:e,unknownKeys:"strip",catchall:se.create(),typeName:T.ZodObject,...C(t)});var je=class extends O{_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 W(a.ctx.common.issues));return b(n,{code:h.invalid_union,unionErrors:i}),v}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 W(l));return b(n,{code:h.invalid_union,unionErrors:a}),v}}get options(){return this._def.options}};je.create=(e,t)=>new je({options:e,typeName:T.ZodUnion,...C(t)});var he=e=>e instanceof Be?he(e.schema):e instanceof ee?he(e.innerType()):e instanceof ze?[e.value]:e instanceof Ue?e.options:e instanceof Ze?P.objectValues(e.enum):e instanceof Ge?he(e._def.innerType):e instanceof Le?[void 0]:e instanceof Fe?[null]:e instanceof X?[void 0,...he(e.unwrap())]:e instanceof ce?[null,...he(e.unwrap())]:e instanceof _t||e instanceof Je?he(e.unwrap()):e instanceof Ke?he(e._def.innerType):[],Wt=class e extends O{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.object)return b(n,{code:h.invalid_type,expected:x.object,received:n.parsedType}),v;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}):(b(n,{code:h.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),v)}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=he(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:T.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...C(r)})}};function Kn(e,t){let n=ae(e),r=ae(t);if(e===t)return{valid:!0,data:e};if(n===x.object&&r===x.object){let s=P.objectKeys(t),o=P.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Kn(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===x.array&&r===x.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=Kn(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===x.date&&r===x.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var He=class extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(Kt(o)||Kt(i))return v;let a=Kn(o.value,i.value);return a.valid?((Jt(o)||Jt(i))&&n.dirty(),{status:n.value,value:a.data}):(b(r,{code:h.invalid_intersection_types}),v)};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}))}};He.create=(e,t,n)=>new He({left:e,right:t,typeName:T.ZodIntersection,...C(n)});var le=class e extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==x.array)return b(r,{code:h.invalid_type,expected:x.array,received:r.parsedType}),v;if(r.data.length<this._def.items.length)return b(r,{code:h.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;!this._def.rest&&r.data.length>this._def.items.length&&(b(r,{code:h.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=>U.mergeArray(n,i)):U.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};le.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new le({items:e,typeName:T.ZodTuple,rest:null,...C(t)})};var Vt=class e extends O{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!==x.object)return b(r,{code:h.invalid_type,expected:x.object,received:r.parsedType}),v;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?U.mergeObjectAsync(n,s):U.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof O?new e({keyType:t,valueType:n,typeName:T.ZodRecord,...C(r)}):new e({keyType:Se.create(),valueType:t,typeName:T.ZodRecord,...C(n)})}},at=class extends O{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!==x.map)return b(r,{code:h.invalid_type,expected:x.map,received:r.parsedType}),v;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 v;(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 v;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}}}};at.create=(e,t,n)=>new at({valueType:t,keyType:e,typeName:T.ZodMap,...C(n)});var lt=class e extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==x.set)return b(r,{code:h.invalid_type,expected:x.set,received:r.parsedType}),v;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(b(r,{code:h.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&&(b(r,{code:h.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 v;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:E.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:E.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};lt.create=(e,t)=>new lt({valueType:e,minSize:null,maxSize:null,typeName:T.ZodSet,...C(t)});var qt=class e extends O{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.function)return b(n,{code:h.invalid_type,expected:x.function,received:n.parsedType}),v;function r(a,l){return bt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),me].filter(c=>!!c),issueData:{code:h.invalid_arguments,argumentsError:l}})}function s(a,l){return bt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),me].filter(c=>!!c),issueData:{code:h.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof $e){let a=this;return Z(async function(...l){let c=new W([]),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 Z(function(...l){let c=a._def.args.safeParse(l,o);if(!c.success)throw new W([r(l,c.error)]);let u=Reflect.apply(i,this,c.data),f=a._def.returns.safeParse(u,o);if(!f.success)throw new W([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:le.create(t).rest(ge.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||le.create([]).rest(ge.create()),returns:n||ge.create(),typeName:T.ZodFunction,...C(r)})}},Be=class extends O{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})}};Be.create=(e,t)=>new Be({getter:e,typeName:T.ZodLazy,...C(t)});var ze=class extends O{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return b(n,{received:n.data,code:h.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:t.data}}get value(){return this._def.value}};ze.create=(e,t)=>new ze({value:e,typeName:T.ZodLiteral,...C(t)});function uo(e,t){return new Ue({values:e,typeName:T.ZodEnum,...C(t)})}var Ue=class e extends O{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return b(n,{expected:P.joinValues(r),received:n.parsedType,code:h.invalid_type}),v}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 b(n,{received:n.data,code:h.invalid_enum_value,options:r}),v}return Z(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})}};Ue.create=uo;var Ze=class extends O{_parse(t){let n=P.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==x.string&&r.parsedType!==x.number){let s=P.objectValues(n);return b(r,{expected:P.joinValues(s),received:r.parsedType,code:h.invalid_type}),v}if(this._cache||(this._cache=new Set(P.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=P.objectValues(n);return b(r,{received:r.data,code:h.invalid_enum_value,options:s}),v}return Z(t.data)}get enum(){return this._def.values}};Ze.create=(e,t)=>new Ze({values:e,typeName:T.ZodNativeEnum,...C(t)});var $e=class extends O{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.promise&&n.common.async===!1)return b(n,{code:h.invalid_type,expected:x.promise,received:n.parsedType}),v;let r=n.parsedType===x.promise?n.data:Promise.resolve(n.data);return Z(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};$e.create=(e,t)=>new $e({type:e,typeName:T.ZodPromise,...C(t)});var ee=class extends O{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===T.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=>{b(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 v;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?v:l.status==="dirty"?Oe(l.value):n.value==="dirty"?Oe(l.value):l});{if(n.value==="aborted")return v;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?v:a.status==="dirty"?Oe(a.value):n.value==="dirty"?Oe(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"?v:(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"?v:(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(!ve(i))return v;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=>ve(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):v);P.assertNever(s)}};ee.create=(e,t,n)=>new ee({schema:e,typeName:T.ZodEffects,effect:t,...C(n)});ee.createWithPreprocess=(e,t,n)=>new ee({schema:t,effect:{type:"preprocess",transform:e},typeName:T.ZodEffects,...C(n)});var X=class extends O{_parse(t){return this._getType(t)===x.undefined?Z(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};X.create=(e,t)=>new X({innerType:e,typeName:T.ZodOptional,...C(t)});var ce=class extends O{_parse(t){return this._getType(t)===x.null?Z(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ce.create=(e,t)=>new ce({innerType:e,typeName:T.ZodNullable,...C(t)});var Ge=class extends O{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===x.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Ge.create=(e,t)=>new Ge({innerType:e,typeName:T.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...C(t)});var Ke=class extends O{_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 rt(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new W(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new W(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Ke.create=(e,t)=>new Ke({innerType:e,typeName:T.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...C(t)});var ct=class extends O{_parse(t){if(this._getType(t)!==x.nan){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.nan,received:r.parsedType}),v}return{status:"valid",value:t.data}}};ct.create=e=>new ct({typeName:T.ZodNaN,...C(e)});var _u=Symbol("zod_brand"),_t=class extends O{_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}},xt=class e extends O{_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"?v:o.status==="dirty"?(n.dirty(),Oe(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"?v: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:T.ZodPipeline})}},Je=class extends O{_parse(t){let n=this._def.innerType._parse(t),r=s=>(ve(s)&&(s.value=Object.freeze(s.value)),s);return rt(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};Je.create=(e,t)=>new Je({innerType:e,typeName:T.ZodReadonly,...C(t)});function io(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function fo(e,t={},n){return e?Te.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=io(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=io(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Te.create()}var xu={object:V.lazycreate},T;(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"})(T||(T={}));var wu=(e,t={message:`Input not instance of ${e.name}`})=>fo(n=>n instanceof e,t),po=Se.create,mo=Pe.create,Eu=ct.create,vu=Ne.create,ho=De.create,Su=Me.create,Tu=ot.create,$u=Le.create,Ru=Fe.create,Au=Te.create,Cu=ge.create,Iu=se.create,Ou=it.create,Pu=ye.create,Nu=V.create,Du=V.strictCreate,Mu=je.create,Lu=Wt.create,Fu=He.create,ju=le.create,Hu=Vt.create,Bu=at.create,zu=lt.create,Uu=qt.create,Zu=Be.create,Gu=ze.create,Ku=Ue.create,Ju=Ze.create,Wu=$e.create,Vu=ee.create,qu=X.create,Yu=ce.create,Xu=ee.createWithPreprocess,Qu=xt.create,ef=()=>po().optional(),tf=()=>mo().optional(),nf=()=>ho().optional(),rf={string:(e=>Se.create({...e,coerce:!0})),number:(e=>Pe.create({...e,coerce:!0})),boolean:(e=>De.create({...e,coerce:!0})),bigint:(e=>Ne.create({...e,coerce:!0})),date:(e=>Me.create({...e,coerce:!0}))};var sf=v;var Re=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([]),drop_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(),transform_on_failure:y.boolean().default(!1),on_empty:y.string().max(255).optional()});var Ef=xf(wf(import.meta.url)),vf=process.env.TOKMIZER_FILTERS_DIR||$o(Ef,"..","..","filters"),ut=null,To=!1;function Sf(){return!1}async function Ro(){return ut||(Sf()?(ut=await Tf(vf),ut):(!To&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
|
|
18
|
+
`),To=!0),ut=new Map,ut))}async function Tf(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(or(),sr))).parse,r=(await bf(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await _f($o(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,c]of Object.entries(a)){let u=Re.parse({slug:l,...c});t.set(l,{...u,matchRegex:new RegExp(u.match_command)})}}return t}import{createHash as $f}from"node:crypto";var Rf=y.enum(["normal","compact","minimal"]),Af=y.enum(["off","light","balanced","max"]),St=y.object({enabled:y.boolean().default(!0),telemetryOptIn:y.boolean().default(!0),outputVerbosity:Rf.default("compact"),reducer:Af.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 te(e){let t=Ao.get(e);return t||(t=$f("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),Ao.set(e,t)),t}var Co=new WeakMap,Cf=256;function ft(e,t,n,r=t){let s=Co.get(r);s||(s=new Map,Co.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(te(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=Cf){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as pp,readFile as yi,writeFile as nx,mkdir as rx,rename as sx}from"node:fs/promises";import{readdirSync as mp,statSync as mi}from"node:fs";import{createHash as hp}from"node:crypto";import{basename as lx,join as an}from"node:path";var If=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Of=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function ue(e){return e.replace(If,"").replace(Of,"")}function ir(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}function Io(e){let t=e.trim();if(t.length>4096||!(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")))return!1;try{return JSON.parse(t),!0}catch{return!1}}function Oo(e,t){return e.some(n=>n.length>t)&&Io(e.join(`
|
|
19
|
+
`))?e:e.map(n=>{if(n.length<=t||Io(n))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 dt(e){return`\u2026 (${e} more lines omitted)`}var Pf=/\b(?:ERROR|FATAL|CRITICAL|PANIC)\b|\bpanic:|\bTraceback \(most recent|\b[A-Z][A-Za-z0-9]*(?:Error|Exception)\b|\berror(?:\[[A-Za-z0-9]+\])?:/,Nf=20,Df=4096;function Po(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),o=s.filter(a=>a.length<=Df&&Pf.test(a)).slice(0,Nf),i=s.length-o.length;return{kept:[...e.slice(0,n),...i>0?[dt(i)]:[],...o,...e.slice(e.length-r)],dropped:s}}var Mf=/^\s*(?:[✓✔√]|ok )/,ne=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function No(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)Mf.test(a)&&!ne.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Lf=/(?:\/[\w.@+-]+){3,}/g;function Do(e){return e.map(t=>t.replace(Lf,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Ff=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,jf=/\{\s*$/;var Hf=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Bf=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function zf(e){let t=Hf.exec(e);return!t||Bf.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var Uf=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function Zf(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 Gf(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==="&"))&&Zf(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}var Mo=/^\s*… \d+ lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/,Kf=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function Jf(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 ar(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=Kf.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 Tt(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(Ff.test(o)&&jf.test(o)||zf(o)||Uf.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,c=!1;for(;l<e.length&&l-s<200;)if(a+=Gf(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(Jf(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 Wf=/\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 en(e){let t=e.slice(0,4096);return!(!Wf.test(t)||t.split(`
|
|
20
|
+
`).length<6)}var Ho=/^\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*/,Bo=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,zo=new RegExp(ne.source,"i"),Uo=/\bWARN(?:ING)?\b/i;function Zo(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(Bo.test(s.replace(Ho,""))&&!zo.test(s)&&!Uo.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var Vf=/^(?:DEBUG|INFO):[\w.-]+:/,qf=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Yf=8,Lo=1,Fo=2,Xf=/^(\s*)(?:Downloaded|Downloading|Compiling|Fetching|Fetched|Installing|Installed|Collecting|Using cached|Requirement already satisfied:|Unpacking|Preparing|Pulling fs layer|Pull complete|Already exists|Download complete|Verifying Checksum|Waiting|Extracting|Get:\d+|Hit:\d+|Ign:\d+|Setting up|Selecting previously unselected package|Progress: resolved|cargo:rustc-[a-z-]+=)/,Qf=/^[0-9a-f]{12}: (?:Pulling fs layer|Waiting|Downloading|Verifying Checksum|Download complete|Extracting|Pull complete|Already exists)\b/,ed=/^\s*[-+~]\s+[├└│ ─]*\S+:\S+\s+\S+\s+(?:created|updated|deleted|replaced|refreshed|read|same)\s\(\d+s\)\s*$/;function jo(e){if(e.trim()===""||zo.test(e)||Uo.test(e)||qf.test(e))return null;let t=Xf.exec(e);if(t)return`\0progress${t[1]}`;if(Qf.test(e))return"\0layer";if(ed.test(e))return"\0resource-done";if(/^\s/.test(e))return null;let n=e.replace(Ho,"");return Bo.test(n)||Vf.test(n)?"\0verbose":e.replace(/\d+/g,"#")}function Go(e){let t=[],n=0;for(;n<e.length;){let r=jo(e[n]),s=n+1;if(r!==null)for(;s<e.length&&jo(e[s])===r;)s+=1;let o=s-n;r===null||o<Yf?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+Lo)),t.push(`\u2026 ${o-Lo-Fo} similar log lines dropped \u2026`),t.push(...e.slice(s-Fo,s))),n=s}return t}var td=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/;function Ko(e){return e.some(t=>td.test(t))}function tn(e){if(e.length===0||Ko(e))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.trim()?`${r} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),t}function Jo(e){if(Ko(e))return 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 Wo=new Map;function L(e,t){Wo.set(e,t)}function Vo(e){return Wo.get(e)}var Xo=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Qo=/^[./~][^\s]*:$/,nd=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})?`,rd=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${nd})\s+(.+)$`),sd={k:1,m:2,g:3,t:4,p:5},lr=1e3;function od(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 id(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?sd[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function ad(e){let t=rd.exec(e);if(!t)return null;let n=t[4].trim();if(n===""||n==="."||n==="..")return null;let r=t[3],s=/^\d+$/.test(r)?od(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:id(r),isDir:o,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function ld(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}var cd=12,ud=3,fd=180;function qo(e,t){let n=[],r=e;for(let s of t)r.length+1+s.length>fd&&r!==e&&r!==" "&&(n.push(r),r=" "),r+=r===" "?s:` ${s}`;return n.push(r),n}function dd(e){let t=e.endsWith("/")?"":e,n=t.indexOf(".",1);return n>0?t.slice(n):""}function pd(e){let t=e.filter(l=>l.trim()!=="");if(t.length<cd)return null;let n=e.findIndex(l=>l.trim()!==""),r=e.length-1-[...e].reverse().findIndex(l=>l.trim()!=="");if(e.slice(n,r+1).some(l=>l.trim()==="")||t.some(l=>l.endsWith(":")||Qo.test(l.trim())||Xo.test(l)||/^total\s+\d+/.test(l)||l!==l.trimEnd()||l.startsWith(" "))||t.filter(l=>/\s/.test(l)).length>t.length*.2)return null;let s=l=>/\s|"/.test(l)?JSON.stringify(l):l,o=new Map;for(let l of t){let c=dd(l),u=o.get(c)??[];u.push(l),o.set(c,u)}let i=[`${t.length} entries:`],a=[];for(let[l,c]of[...o.entries()].sort((u,f)=>f[1].length-u[1].length||u[0].localeCompare(f[0])))l&&c.length>=ud&&c.every(u=>!/\s|"/.test(u))?i.push(...qo(`*${l} (${c.length}):`,c.map(u=>u.slice(0,-l.length)))):a.push(...c);return a.length&&i.push(...qo(`other (${a.length}):`,a.map(s))),i.join(`
|
|
21
21
|
`).length<t.join(`
|
|
22
|
-
`).length?i:null}function
|
|
23
|
-
`).trim();if(!t.startsWith("{"))return e;let n;try{n=JSON.parse(t)}catch{return e}if(!n||typeof n!="object"||!n.files||typeof n.files!="object")return e;let r=Object.keys(n.files),s=
|
|
22
|
+
`).length?i:null}function md(e){if(!e)return!1;let t=/(?:^|[\s;&|(])ls(?=\s|$)([^|;&]*)/.exec(e);if(!t)return!1;for(let n of t[1].trim().split(/\s+/)){if(n==="--")break;if(/^--(?:sort|reverse|time)(?:=|$)/.test(n)||/^-[A-Za-z0-9]+$/.test(n)&&/[tSUfrvX]/.test(n))return!0}return!1}function Yo(e){let t=new Map;for(let s of e)t.set(s.mode,(t.get(s.mode)??0)+1);let n=null,r=0;for(let[s,o]of t)o>r&&([n,r]=[s,o]);return r>=2?n:null}function cr(e,t){if(md(t))return e;let n=pd(e);if(n)return n;let r=[],s=[],o=!1;for(let p of e){if(p.trim()===""||/^total\s+\d+/.test(p))continue;if(Qo.test(p.trim())||!Xo.test(p))return e;let _=ad(p);if(!_){if(/\s\.\.?$/.test(p))continue;return e}o=!0,(_.isDir?r:s).push(_)}if(!o)return e;let i=(p,_)=>p.name.localeCompare(_.name);r.sort(i),s.sort((p,_)=>_.sizeKey-p.sizeKey||i(p,_));let a=[...r,...s],l=a.every(p=>p.owner===a[0].owner)?a[0].owner:null,c=Yo(r),u=Yo(s),f=[];for(let p of a){let _=p.isDir?c:u,$=`${p.mode===_?"":`${p.mode} `}${l===null?`${p.owner} `:""}${p.isDir?`${p.name}/`:p.name}`;f.push(p.isDir?$:`${$} ${p.size}`)}if(f.length>lr){let p=f.length-lr;f=[...f.slice(0,lr),`\u2026 ${p} more lines omitted`]}let d=s.length===1?"file":"files",m=r.length===1?"dir":"dirs",k=ld(s),g=`${s.length} ${d}, ${r.length} ${m}`+(k?` (${k})`:"")+(l===null?"":`, owner ${l.replace(" ",":")}`)+(c||u?`, mode ${[c&&`dirs ${c}`,u&&`files ${u}`].filter(Boolean).join(", ")} unless shown`:"");return f.push(g),f}L("smart-ls",cr);L("smart-read",e=>Tt(e));var ei=1e3;function hd(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 gd(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 yd(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):d===0?"/":"",k=d>=0?f.slice(d+1):f;if(!k)continue;let g=r.get(m)??[];g.push(/\s/.test(k)?`"${k}"`:k),r.set(m,g),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(c=>c!=="")&&!i.includes("/")?hd(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let c of i){let u=c==="/"?"/":a?c.slice(a.length).replace(/^\//,""):c,f=r.get(c),d=gd(f),m=d?f.map(k=>k.slice(0,-d.length)):f;l.push(`${u==="/"?"/":u?`${u}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${m.join(" ")}`)}if(l.length+s.length>ei){let c=Math.max(0,ei-s.length),u=l.length-c;return[...l.slice(0,c),`\u2026 ${u} more lines omitted`,...s]}return[...l,...s]}L("smart-find",yd);var kd=/^\s*(\d+(?:\s+\d+){0,3})\s+(\S.*)$/;function bd(e){let t=[];for(let i of e){if(i.trim()==="")continue;let a=kd.exec(i);if(!a)return e;t.push({counts:a[1].replace(/\s+/g," "),path:a[2]})}let n=t.filter(i=>i.path!=="total");if(n.length<2)return t.length?t.map(i=>`${i.counts} ${i.path}`):e;let r=n.map(i=>i.path.includes("/")?i.path.slice(0,i.path.lastIndexOf("/")+1):""),s=r[0];for(let i of r)for(;s&&!i.startsWith(s);)s=s.slice(0,s.slice(0,-1).lastIndexOf("/")+1);let o=s?[`in ${s}:`]:[];for(let i of t)o.push(`${i.counts} ${i.path!=="total"&&s?i.path.slice(s.length):i.path}`);return o}L("smart-wc",bd);var ti=/^\s*\d+\/\d+ Test\s+#\s*\d+: \S+ \.{2,}/,_d=/^\d+% tests passed, \d+ tests? failed out of \d+$/,xd=new RegExp(`${ne.source}|\\*\\*\\*|Exception|FAIL|ERROR`),ur=3,fr=8;function wd(e){let t=[];for(let n=0;n<e.length;n+=1){let r=1;for(;n+r<e.length&&e[n+r]===e[n];)r+=1;t.push(r>1?`${e[n]} \xD7${r}`:e[n]),n+=r-1}return t}function Ed(e){if(e.length<=ur+fr+1)return e;let t=e.slice(ur,-fr),n=t.filter(s=>xd.test(s)),r=t.length-n.length;return r===0?e:[...e.slice(0,ur),...n,`\u2026 ${r} more lines omitted`,...e.slice(-fr)]}function vd(e){if(!e.some(s=>ti.test(s)))return e;let t=[],n=[],r=()=>{t.push(...Ed(wd(n))),n=[]};for(let s=0;s<e.length;s+=1){let o=e[s];if(_d.test(o))return r(),t.push(...e.slice(s)),t;if(ti.test(o)){r(),t.push(o);continue}n.push(o)}return r(),t}L("smart-ctest",vd);function Sd(e){if(e.length<2)return"";let t=e[0].slice(0,e[0].lastIndexOf("/")+1);for(let n of e)for(;t&&!n.startsWith(t);)t=t.slice(0,t.slice(0,-1).lastIndexOf("/")+1);return t}function Td(e){let t=e.join(`
|
|
23
|
+
`).trim();if(!t.startsWith("{"))return e;let n;try{n=JSON.parse(t)}catch{return e}if(!n||typeof n!="object"||!n.files||typeof n.files!="object")return e;let r=Object.keys(n.files),s=Sd(r),o=r.reduce((a,l)=>a+(n.files[l].messages?.length??0),0),i=[`phpstan: ${o} error${o===1?"":"s"} in ${r.length} file${r.length===1?"":"s"}${s?` under ${s}`:""}`];for(let a of r){let l=n.files[a].messages??[];i.push(`${a.slice(s.length)} (${l.length})`);for(let c of l){let u=typeof c.line=="number"?`:${c.line}`:":?",f=typeof c.tip=="string"&&c.tip?` \u2014 ${c.tip}`:"";i.push(` ${u} ${String(c.message??"")}${f}`)}}for(let a of Array.isArray(n.errors)?n.errors:[])i.push(`error: ${String(a)}`);return i}L("smart-phpstan",Td);var $d=/^\d+ \| /,dr=/^\s+\^\s*$/,Rd=new RegExp(`${ne.source}|\\*\\*\\*|Exception|FAIL|ERROR`);function Ad(e){if(!e.some(n=>dr.test(n)))return e;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];dr.test(r)||$d.test(r)&&!dr.test(e[n+1]??"")&&!Rd.test(r)||t.push(r)}return t}L("bun-frames",Ad);var Cd=/^\s*% Total\s+% Received\s+% Xferd\s+Average Speed/,Id=/^\s+Dload\s+Upload\s+Total\s+Spent\s+Left\s+Speed/,Od=/^\s*\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[-\d:]+\s+[-\d:]+\s+[-\d:]+\s+[\d.]+[kMGTP]?\s*$/,Pd=/^\* (?:Trying |Connected to |Host .* was resolved|Connection #\d+|IPv[46]:|Uses proxy)|^> [A-Z]+ \S+ HTTP\/[\d.]+\s*$|^< HTTP\/[\d.]+ \d{3}/,Nd=/^(?:\* |[<>] (?:[A-Za-z][\w-]*: .*|[A-Z]+ \S+ HTTP\/[\d.]+|HTTP\/[\d.]+ .*)$|[<>]\s?$|[{}] \[\d+ bytes data\])/;function Dd(e){let t=e.split("\r").filter(n=>n.trim()!=="");return t.length>0&&t.every(n=>Od.test(n))}function Md(e){let t=e.some(r=>Pd.test(r)),n=[];for(let r=0;r<e.length;r+=1){let s=e[r];if(Cd.test(s)){let o=r+1;for(Id.test(e[o]??"")&&(o+=1);Dd(e[o]??"");)o+=1;r=o-1;continue}t&&Nd.test(s)||n.push(s)}return n}L("curl-progress",Md);var pr=1e3,ni=200,Ld=60,Fd=190,oi=/^([^\s:]+):(\d+):(.*)$/,ii=/^([^:]+?)-(\d+)-(.*)$/,ai=/^([^\s:]+):(.*)$/,ri=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function si(e,t=!1){let n=t?e.trimEnd():e.trim();return n.length>ni?`${n.slice(0,ni)}\u2026`:n}function jd(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=Fd&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function Hd(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 li(e){return e.includes("/")||e.includes("\\")||/\.[A-Za-z][\w-]*$/.test(e)}function Bd(e,t,n){return/^\d+$/.test(e)?!1:li(e)?!0:(t||n)&&/^[\w.-]+$/.test(e)}function zd(e){let t=0,n=0;for(let r of e){let s=(oi.exec(r)??ii.exec(r)??ai.exec(r))?.[1];s&&(n+=1,li(s)&&(t+=1))}return t>=2&&t*2>n}function ci(e,t={}){let n=e.filter(p=>p.trim()!=="");if(n.length===0)return e;let r=zd(n),s=new Map,o=new Map,i=null,a=0,l=0,c=null;for(let p of n){if(p==="--"){i&&s.get(i).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(p))return e;let _=oi.exec(p),w=ii.exec(p);if(_&&w)return e;let $=_||w?null:ai.exec(p),I=(_??w??$)?.[1];if(!I||!Bd(I,!!_,r))return e;let N=_?{line:_[2],content:_[3],context:!1}:w?{line:w[2],content:w[3],context:!0}:{line:"",content:$[2],context:!1},M=s.get(I)??[];M.push(N),s.set(I,M);let D=N.line?Number(N.line):NaN,j=t.astGrep&&I===i&&c!==null&&D===c+1;(t.astGrep?!j:!N.context)&&(a+=1,o.set(I,(o.get(I)??0)+1)),c=t.astGrep&&Number.isFinite(D)?D:null,l+=1,i=I}if(s.size===l)return e;let u=[...s.keys()].sort((p,_)=>{let w=ri.test(p)?1:0,$=ri.test(_)?1:0;return w-$||(p<_?-1:p>_?1:0)}),f=u.length>1?Hd(u):"",d=p=>f?p.slice(f.length+1):p,m=[];for(let p of u){m.push(`${d(p)} (${o.get(p)??0}):`);for(let _ of s.get(p))"separator"in _?m.push(" --"):_.line?m.push(` ${_.line}${_.context?"-":":"} ${si(_.content,t.astGrep)}`):m.push(` ${si(_.content,t.astGrep)}`)}let k=u.length>1&&m.length>Ld?jd(u.map(p=>`${d(p)} (${o.get(p)??0})`)):[],g=[`${a}m ${u.length}f${f?` in ${f}/`:""}:`,...k,"",...m];if(g.length>pr){let p=g.length-pr;return[...g.slice(0,pr),`\u2026 ${p} more lines omitted`]}return g}L("smart-grep",ci);L("smart-grep-ast",e=>ci(e,{astGrep:!0}));var ui=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,Ud=/^[|\\/* ._-]*$/,Zd=/^ {4}/,Gd=/^ {4}(?:Co-[Aa]uthored-[Bb]y|Signed-off-by|Reviewed-by|Acked-by|Tested-by|Reported-by|Fixes|Closes):/,Kd=2,Jd=1,fi=/^commit ([0-9a-f]{40})(\s.*)?$/,Wd=/^Author:\s+(.+)$/,Vd=/^Date:\s+(?:[A-Z][a-z]{2} )?([A-Z][a-z]{2}) +(\d{1,2}) (\d{2}:\d{2}):\d{2} (\d{4}) ([+-]\d{4})$/,qd=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Yd=12,Xd=5;function Qd(e){let t=[];for(let l=0;l<e.length;l+=1){let c=fi.exec(e[l]);if(!c)continue;let u=l+1,f=null;e[u]?.startsWith("Merge: ")&&(f=e[u].slice(7),u+=1);let d=Wd.exec(e[u]??""),m=Vd.exec(e[u+1]??"");if(!d||!m)return null;let k=qd.indexOf(m[1])+1;if(k===0)return null;t.push({at:l,hash:c[1].slice(0,Yd),refs:c[2]??"",merge:f,author:d[1],date:`${m[4]}-${String(k).padStart(2,"0")}-${m[2].padStart(2,"0")} ${m[3]}`,zone:m[5],end:u+2})}if(t.length===0)return null;let n=[...new Set(t.map(l=>l.author))],r=n.length===1&&t.length>1?n[0]:null,s=n.length>1&&n.length<=Xd&&t.length>n.length,o=t.length>1&&t.every(l=>l.zone===t[0].zone)?t[0].zone:null,i=r?[`author: ${r}`]:s?[`authors: ${n.map((l,c)=>`[${c+1}] ${l}`).join("; ")}`]:[];o&&i.push(`dates: UTC${o}`);let a=0;for(let l of t){i.push(...e.slice(a,l.at));let c=r?"":s?` [${n.indexOf(l.author)+1}]`:` ${l.author}`;i.push(`${l.hash} ${l.date}${o?"":` ${l.zone}`}${c}${l.merge?` merge ${l.merge}`:""}${l.refs}`),a=l.end}return i.push(...e.slice(a)),i}function ep(e){if(!e.some(r=>ui.test(r)))return e;let t=e.some(r=>fi.test(r))&&!e.some(r=>/^[|\\/*]/.test(r)),n=tp(e,t?Jd:Kd);return Qd(n)??n}function tp(e,t){let n=[],r=0,s=0,o=0,i="",a=!1,l=!1,c=()=>{s>0&&n.push(`${i} \u2026 ${s} ${s===1?"line":"lines"} folded \u2026`),s=0};for(let u of e){let f=u.slice(0,o),d=Ud.test(f),m=d?u.slice(o):u,k=Zd.test(m),g=a&&k?null:ui.exec(u);if(g){c(),r=0,o=g[1]?.length??0,a=!0,l=!1,n.push(u);continue}if(/^diff --(?:git|cc|combined) /.test(m)&&(l=!0),k&&!l&&!(o>0&&m.trim().length===0)){if(Gd.test(m)){n.push(u);continue}r+=1,r<=t?n.push(u):(s+=1,i=d?f:"");continue}c(),n.push(u)}return c(),n}L("smart-log",ep);var np=/^[\s=]+$/,rp=/^\s*=+\s+(.*?)\s+=+\s*$/,sp=512;L("strip-banners",e=>{let t=[];for(let n of e){if(np.test(n))continue;let r=n.length<=sp?rp.exec(n):null;t.push(r?r[1]:n)}return t});function op(e){let t=[],n=0,r=0;for(;r<e.length;){let s=e[r].trimEnd();if(s===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let o=1;for(;r+o<e.length&&e[r+o].trimEnd()===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}L("squeeze-output",op);function ip(e){return e==="compact"?.6:e==="minimal"?.3:1}var ap=20;function lp(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 di=new WeakMap;function cp(e){let t=di.get(e);if(t)return t;let n=e.strip_lines_matching.map(o=>new RegExp(o)),r=(e.drop_lines_matching??[]).map(o=>new RegExp(o)),s={def:e,stripRegexes:n,dropRegexes:r};return di.set(e,s),s}var up=new RegExp([String.raw`(?:^|[\s;&|(])grep(?=\s)[^|;&]*?\s(?:-[A-Za-z]*q[A-Za-z]*|--quiet|--silent)(?=\s|$)`,String.raw`(?:^|[\s;&|(])find(?=\s)[^|;&]*?\s-(?:delete|quit|exec|execdir|ok|okdir|fprint0?|fprintf|fls|prune)(?=\s|$)`,String.raw`(?:^|[\s;&|(])(?:ruff|black|flake8)(?=\s)[^|;&]*?\s(?:-q+|--quiet)(?=\s|$)`,String.raw`(?:^|[\s;&|(])eslint(?=\s)[^|;&]*?\s(?:-o|--output-file)(?=[\s=]|$)`,String.raw`(?:^|[\s;&|(])prettier(?=\s)[^|;&]*?\s(?:-l|--list-different)(?=\s|$)`].join("|")),fp=new Set(["grep","ast-grep"]);function mr(e){return!!e&&up.test(e)}function hr(e,t,n){if(e==="smart-ls")return cr(t,n);let r=Vo(e);return r?r(t):t}function nn(e,t,n={}){return gr(e,t,n).text}function gr(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&(t.drop_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=cp(t),o=!t.preserve_exact&&e.includes(`\r
|
|
24
24
|
`)?e.replace(/\r\n/g,`
|
|
25
25
|
`):e;t.strip_ansi&&(o=ue(o));let i=o.endsWith(`
|
|
26
26
|
`),a=(i?o.slice(0,-1):o).split(`
|
|
27
|
-
`);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>ne.test(d)||!s.stripRegexes.some(m=>m.test(d))):ir(a,s.stripRegexes)),s.dropRegexes.length&&(a=ir(a,s.dropRegexes)),r!=="normal"&&!t.preserve_exact&&(a=tn(a),a=Jo(a)),r==="minimal"&&!t.preserve_exact&&(a=Zo(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=
|
|
27
|
+
`);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>ne.test(d)||!s.stripRegexes.some(m=>m.test(d))):ir(a,s.stripRegexes)),s.dropRegexes.length&&(a=ir(a,s.dropRegexes)),r!=="normal"&&!t.preserve_exact&&(a=tn(a),a=Jo(a)),r==="minimal"&&!t.preserve_exact&&(a=Zo(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=lp(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&en(o))&&(a=Tt(a,l)),t.transform&&(t.transform==="smart-read"?a=Tt(a,l,t.slug==="read-tool"):a=hr(t.transform,a,n.cmd));let c=t.slug==="read-tool";if(!c){let d=ar(a);d.some(Boolean)&&(a=a.filter((m,k)=>!d[k]))}t.mask_abs_paths&&(a=Do(a)),t.fold_passing&&(a=No(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=Oo(a,t.truncate_lines_at));let u=null;if(t.max_lines){let d=t.scale_with_level?ip(n.verbosity):1,m=Math.min(t.max_lines,Math.max(ap,Math.round(t.max_lines*d))),k=c?ar(a):null,g=k?k.filter(p=>!p).length:a.length;if(g>m){let p=m;if(k){let w=0;for(p=0;p<a.length&&w<m;)k[p]||(w+=1),p+=1}let _=g-m;if(t.keep_failures){let w=a.slice(p),$=w.filter(N=>!ne.test(N)),I=w.reduce((N,M,D)=>N+(!ne.test(M)&&!k?.[p+D]?1:0),0);u=$.length>0?$.join(`
|
|
28
28
|
`):null,a=[...a.slice(0,p),...I>0?[dt(I)]:[],...w.filter(N=>ne.test(N))]}else if(c)u=a.slice(p).join(`
|
|
29
29
|
`),a=[...a.slice(0,p),dt(_)];else{let{kept:w,dropped:$}=Po(a,m);u=$.length>0?$.join(`
|
|
30
30
|
`):null,a=w}}}let f=a.join(`
|
|
31
31
|
`);return i&&f.length>0&&(f+=`
|
|
32
|
-
`),f.trim().length===0&&t.on_empty&&(e.length===0||e.trim().length>0)&&(n.exitCode==null||n.exitCode===0||n.exitCode===1&&
|
|
33
|
-
`)[0]})`}),{filters:n,tests:r,issues:s}}let a=
|
|
34
|
-
`))if(!/^\s*[✓✔√]\s/.test(t)&&
|
|
32
|
+
`),f.trim().length===0&&t.on_empty&&(e.length===0||e.trim().length>0)&&(n.exitCode==null||n.exitCode===0||n.exitCode===1&&fp.has(t.slug))&&!mr(n.cmd)&&(f=t.on_empty),{text:f,droppedTail:u}}import dp from"node:os";import{join as $t}from"node:path";function R(){return process.env.TOKMIZER_HOME||$t(dp.homedir(),".tokmizer")}function Rt(){return $t(R(),"install-id")}function yr(){return $t(R(),"content-cache")}function pi(){return $t(R(),"restore.json")}function kr(e){return $t(yr(),e)}var ki="user/",rn=1,sn=null,hi="",gi=0,gp=1e3;function on(){return an(R(),"filters")}function bi(){return an(R(),"filters-trust.json")}function _i(e){return typeof e=="string"&&e.startsWith(ki)}function yp(e){return hp("sha256").update(e).digest("hex")}async function kp(){try{let e=JSON.parse(await yi(bi(),"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 bp(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 _p(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=bp(e,r);if("message"in o)return o;let i=Re.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:`${ki}${i.data.slug}`,matchRegex:a},tests:o.tests}}function xp(e){return e===void 0||e===rn?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${rn}. Update tkr, or write the file for version ${rn}`:`schema_version must be the number ${rn}`}async function wp(e){try{return(await pp(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function Ep(e={}){let t=e.requireTrust!==!1,n=on(),r=new Map,s=new Map,o=[],i=await wp(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await kp():null;for(let l of i){let c;try{c=await yi(an(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!==yp(c)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let u=await vp(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 vp(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(or(),sr)),i;try{i=o(e)}catch(c){return s.push({file:t,message:`not valid TOML (${String(c.message).split(`
|
|
33
|
+
`)[0]})`}),{filters:n,tests:r,issues:s}}let a=xp(i.schema_version);if(a)return s.push({file:t,message:a}),{filters:n,tests:r,issues:s};let l=i.filters;if(typeof l!="object"||l===null||Array.isArray(l))return s.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:s};for(let[c,u]of Object.entries(l)){let f=_p(c,u);if("message"in f){s.push({file:t,message:f.message});continue}n.set(f.filter.slug,f.filter),f.tests.length>0&&r.set(f.filter.slug,{file:t,tests:f.tests})}return{filters:n,tests:r,issues:s}}function Sp(){let e=[];for(let t of[bi(),on()])try{let n=mi(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of mp(on()).filter(n=>n.endsWith(".toml")).sort()){let n=mi(an(on(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function Tp(){let e=Date.now();if(!sn||e-gi>=gp){gi=e;let t=Sp();(!sn||t!==hi)&&(hi=t,sn=Ep())}return sn}async function $p(e){let{filters:t}=await Tp();return t.size===0?null:ft(e,t.values(),null,t)}function xi(e){return async(t,n)=>await $p(t)??e(t,n)}var Rp=[/\bERROR\b/,/\bFAIL\b/,/\bFAILED\b/,/\bFATAL\b/,/^Traceback /m,/^Error: /m,/^\s+at .*\(.*:\d+:\d+\)/m,/panic:/,/SyntaxError:/,/TypeError:/,/ReferenceError:/,/AssertionError:/,/^\s*(?:error|fatal):/i,/thread '.*' panicked/,/\b[1-9]\d* (?:failed|errors?)\b/];function wi(e){if(!e)return!1;for(let t of ue(e).split(`
|
|
34
|
+
`))if(!/^\s*[✓✔√]\s/.test(t)&&Rp.some(n=>n.test(t)))return!0;return!1}var Ap=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Cp=/^[A-Za-z_][A-Za-z0-9_]*=/,br=/^([a-z]+)-tool(?::\s|$)/,Ip=new Set(["-C","-c","--git-dir","--work-tree","--namespace","--exec-path","--super-prefix","--config-env"]),Op=new Set(["-p","--paginate","-P","--no-pager","--bare","--no-replace-objects","--literal-pathspecs","--glob-pathspecs","--noglob-pathspecs","--icase-pathspecs","--no-optional-locks","--no-lazy-fetch","--no-advice"]);function Pp(e){let t=0;for(;t<e.length;){let n=e[t];if(Ip.has(n))t+=2;else if(Op.has(n))t+=1;else if(/^--(?:git-dir|work-tree|namespace|exec-path|super-prefix|config-env)=/.test(n))t+=1;else if(/^-[Cc]\S/.test(n))t+=1;else break}return e.slice(t)}function ke(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let l=n[r];if(Cp.test(l)){r++;continue}if(Ap.has(l)){for(r++,l==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(l==="stdbuf"||l==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let s=n[r],o=s.slice(Math.max(s.lastIndexOf("/"),s.lastIndexOf("\\"))+1)||s;o=o.replace(/\.(?:exe|cmd|bat|ps1)$/i,"")||o;let i=n.slice(r+1);o.toLowerCase()==="py"&&(o="python",i.length&&/^-\d(?:\.\d+)?(?:-\d+)?$/.test(i[0])&&(i=i.slice(1)));let a=o==="git"?Pp(i):i;return a.length?`${o} ${a.join(" ")}`:o}var Np=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);function Ei(e,t){let n=!1,r=!1,s=0,o=[];for(let i=0;i<e.length;i++){let a=e[i];if(a==="\\"&&!n){i++;continue}a==="'"&&!r?n=!n:a==='"'&&!n?r=!r:!n&&!r&&(a===";"?(o.push(e.slice(s,i)),s=i+1):a==="|"&&e[i+1]==="|"?(o.push(e.slice(s,i)),i++,s=i+1):a==="|"?t||(o.push(e.slice(s,i)),s=i+1):a==="&"&&e[i+1]==="&"&&(o.push(e.slice(s,i)),i++,s=i+1))}return o.push(e.slice(s)),o}function Dp(e){let t=Ei(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function At(e){let t=Ei(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=ke(n).split(/\s+/)[0]??"";if(!Np.has(r))return null}return Dp(t[t.length-1])}function vi(e){let t=!1,n=!1,r=0,s=[];for(let o=0;o<e.length;o++){let i=e[o];if(i==="\\"&&!t){o++;continue}i==="'"&&!n?t=!t:i==='"'&&!t?n=!n:!t&&!n&&(i==="|"||i===";"?(s.push(e.slice(r,o)),i==="|"&&e[o+1]==="|"&&o++,r=o+1):i==="&"&&e[o+1]==="&"&&(s.push(e.slice(r,o)),o++,r=o+1))}s.push(e.slice(r));for(let o=s.length-1;o>=0;o--){let i=s[o].trim();if(i)return i}return e.trim()}var Mp=/^(?:npx|bunx|uvx|pnpm\s+(?:exec|dlx)|yarn\s+(?:exec|dlx)|(?:uv|poetry|pipenv|hatch|pdm|rye)\s+run|bundle\s+exec|python[0-9.]*\s+-m)\s+(?=[^\s-])/;function _r(e){let t=Mp.exec(e);return t?ke(e.slice(t[0].length)):null}function Si(e){let t=br.exec(e),n=e;if(t){if(t[1]!=="bash")return[e];let a=e.indexOf(": ");if(a<0)return[e];n=e.slice(a+2)}let r=At(n),s=r?ke(r):null,i=[s?_r(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var Ti=`
|
|
35
35
|
[YOLO: omitted]
|
|
36
|
-
`;function xr(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(Ti,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let s=t.length-(n-r);for(;(t[s]&192)===128;)s+=1;return t.subarray(0,r).toString("utf8")+Ti+t.subarray(s).toString("utf8")}var
|
|
36
|
+
`;function xr(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(Ti,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let s=t.length-(n-r);for(;(t[s]&192)===128;)s+=1;return t.subarray(0,r).toString("utf8")+Ti+t.subarray(s).toString("utf8")}var Lp=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Fp=/^… \([1-9]\d* more lines omitted\)$/,wr=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;function jp(e,t){if(!t)return e.split(`
|
|
37
37
|
`).map(o=>o.replace(/^[ \t]+|[ \t]+(?=\r?$)/g,"")).join(`
|
|
38
38
|
`);let n="",r=!1,s=!1;for(let o of e)r?(n+=o,s?s=!1:o==="\\"?s=!0:o==='"'&&(r=!1)):o==='"'?(r=!0,n+=o):o!==" "&&o!==" "&&o!=="\r"&&o!==`
|
|
39
39
|
`&&(n+=o);return n+(e.endsWith(`
|
|
40
40
|
`)?`
|
|
41
|
-
`:"")}function
|
|
41
|
+
`:"")}function Hp(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
|
|
42
42
|
`)?`
|
|
43
43
|
`:"",r=(n?e.slice(0,-1):e).split(`
|
|
44
|
-
`),s=r.findIndex(p=>
|
|
45
|
-
`)+n;if(!t)return a;let l=new Map;for(let{cells:p}of i)l.set(p[1],(l.get(p[1])??0)+1);let c=new Map,u=[];for(let[p,_]of l){if(p.length<40||_<3||p.trim().split(/\s+/).length<8)continue;let w=`@${c.size+1}`,$=JSON.stringify(p).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),I=`TITLE ${w} = ${$}`;_*(Buffer.byteLength(p)-Buffer.byteLength(w))<=Buffer.byteLength(I)+1||(c.set(p,w),u.push(I))}let f=new Map;for(let{cells:p}of i){if(c.has(p[1]))continue;let _=/^((?:\S+\s+){4})\S/.exec(p[1])?.[1];_&&_.length>=24&&f.set(_,(f.get(_)??0)+1)}let d=new Map;for(let[p,_]of f){if(_<3)continue;let w=`@p${d.size+1}`,$=`TITLE prefix ${w} = ${JSON.stringify(p).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;_*(Buffer.byteLength(p)-Buffer.byteLength(w)-1)<=Buffer.byteLength($)+1||(d.set(p,w),u.push($))}let m=i[0].cells[4].slice(10),k=i.length>=3&&wr.test(i[0].cells[4])&&i.every(({cells:p})=>wr.test(p[4])&&p[4].slice(10)===m)&&i.length*m.length>`CREATED suffix = ${JSON.stringify(m)}`.length+1;if(k&&u.push(`CREATED suffix = ${JSON.stringify(m)}`),u.length===0)return a;for(let{index:p,cells:_}of i){let w=c.get(_[1]),$=/^((?:\S+\s+){4})\S/.exec(_[1])?.[1],I=$?d.get($):void 0;r[p]=_.map((N,
|
|
46
|
-
`)+n;return Buffer.byteLength(g)<Buffer.byteLength(a)?g:a}var $i={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},
|
|
44
|
+
`),s=r.findIndex(p=>Lp.test(p));if(s>=0&&r.slice(0,s).some(p=>p!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(p)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(p=>p.index):[],i=[];for(let p=s+1;p<r.length;p+=1){let _=r[p];if(Fp.test(_))continue;if(/…|\.\.\./.test(_))return e;let w;if(s>=0){if(/[^\x20-\x7e]/.test(_))return e;let $=o.map((I,N)=>_.slice(I,o[N+1]));if($.slice(0,-1).some(I=>I[0]===" "||!I.endsWith(" "))||(w=$.map(I=>I.replace(/ +$/,"")),!/^#\d+$/.test(w[0])||!/^\S+$/.test(w[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(w[4])))return e}else if(w=_.split(" "),w.length!==5||!/^\d+$/.test(w[0])||!w[1]||!w[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!wr.test(w[4])||!Number.isFinite(Date.parse(w[4])))return e;if(w.some($=>/[\u0000-\u001f\u007f]/.test($)))return e;i.push({index:p,cells:w})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let p of i)r[p.index]=p.cells.join(" ");let a=r.join(`
|
|
45
|
+
`)+n;if(!t)return a;let l=new Map;for(let{cells:p}of i)l.set(p[1],(l.get(p[1])??0)+1);let c=new Map,u=[];for(let[p,_]of l){if(p.length<40||_<3||p.trim().split(/\s+/).length<8)continue;let w=`@${c.size+1}`,$=JSON.stringify(p).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),I=`TITLE ${w} = ${$}`;_*(Buffer.byteLength(p)-Buffer.byteLength(w))<=Buffer.byteLength(I)+1||(c.set(p,w),u.push(I))}let f=new Map;for(let{cells:p}of i){if(c.has(p[1]))continue;let _=/^((?:\S+\s+){4})\S/.exec(p[1])?.[1];_&&_.length>=24&&f.set(_,(f.get(_)??0)+1)}let d=new Map;for(let[p,_]of f){if(_<3)continue;let w=`@p${d.size+1}`,$=`TITLE prefix ${w} = ${JSON.stringify(p).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;_*(Buffer.byteLength(p)-Buffer.byteLength(w)-1)<=Buffer.byteLength($)+1||(d.set(p,w),u.push($))}let m=i[0].cells[4].slice(10),k=i.length>=3&&wr.test(i[0].cells[4])&&i.every(({cells:p})=>wr.test(p[4])&&p[4].slice(10)===m)&&i.length*m.length>`CREATED suffix = ${JSON.stringify(m)}`.length+1;if(k&&u.push(`CREATED suffix = ${JSON.stringify(m)}`),u.length===0)return a;for(let{index:p,cells:_}of i){let w=c.get(_[1]),$=/^((?:\S+\s+){4})\S/.exec(_[1])?.[1],I=$?d.get($):void 0;r[p]=_.map((N,M)=>M===1?w??(I?`${I}:${N.slice($.length)}`:N):M===4&&k?N.slice(0,10):N).join(" ")}let g=[...r,"",...u].join(`
|
|
46
|
+
`)+n;return Buffer.byteLength(g)<Buffer.byteLength(a)?g:a}var $i={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},Bp={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},zp=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,Up=/^On branch (\S+)$/,Zp=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function Gp(e){let t=Up.exec(e[0]??"");if(!t)return e;let n=Zp.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 Ri(e){let t=e.endsWith(`
|
|
47
47
|
`)?`
|
|
48
|
-
`:"",n=
|
|
49
|
-
`)),r=null,s=[];for(let o of n){if(Object.hasOwn($i,o)){r=$i[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?
|
|
50
|
-
`)+t}var Ai=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,
|
|
51
|
-
`);for(let n=0;n<t.length;n+=1){if(!
|
|
52
|
-
`)}var
|
|
48
|
+
`:"",n=Gp((t?e.slice(0,-1):e).split(`
|
|
49
|
+
`)),r=null,s=[];for(let o of n){if(Object.hasOwn($i,o)){r=$i[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?zp.exec(o):null;if(!i)return e;let a=Bp[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
|
|
50
|
+
`)+t}var Ai=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,Kp=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;function Jp(e){let t=e.split(`
|
|
51
|
+
`);for(let n=0;n<t.length;n+=1){if(!Kp.test(t[n]))continue;let r=n;for(;r>0&&Ai.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(Ai," $1 | $2")}return t.join(`
|
|
52
|
+
`)}var Wp=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,Ci=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,Ii=/^… \(\d+ more lines omitted\)$/;function Vp(e,t){let n=[];for(let r=0;r<t.length;r+=1){let s=t[r];if(s>0&&e.length>s&&e[s-1]!==" ")return null;let o=e.slice(s,t[r+1]??e.length).trim();if(o.includes(" "))return null;n.push(o)}return n}function qp(e){let t=e.endsWith(`
|
|
53
53
|
`)?`
|
|
54
54
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
55
55
|
`),r=[],s=[];for(let c of n)c.startsWith("WARNING:")?r.includes(c)||r.push(c):s.push(c);let o=s.findIndex(c=>Ci.test(c));if(o<0)return[...r,...s].join(`
|
|
56
|
-
`)+t;let i=s[o],a=[...i.matchAll(/\S+/g)].map(c=>c.index),l=[...r,...s.slice(0,o),i.split(/ +/).join(" ")];for(let c of s.slice(o+1)){if(Ii.test(c)){l.push(c);continue}let u=c.startsWith(" ")||/[^\x20-\x7e]/.test(c)?null:
|
|
56
|
+
`)+t;let i=s[o],a=[...i.matchAll(/\S+/g)].map(c=>c.index),l=[...r,...s.slice(0,o),i.split(/ +/).join(" ")];for(let c of s.slice(o+1)){if(Ii.test(c)){l.push(c);continue}let u=c.startsWith(" ")||/[^\x20-\x7e]/.test(c)?null:Vp(c,a);if(!u)return[...r,...s].join(`
|
|
57
57
|
`)+t;l.push(u.join(" "))}return l.join(`
|
|
58
|
-
`)+t}function
|
|
58
|
+
`)+t}function Yp(e){let t=e.endsWith(`
|
|
59
59
|
`)?`
|
|
60
60
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
61
61
|
`),r=n.findIndex(i=>Ci.test(i.trimEnd()));if(r<0)return e;let s=n[r].trim().split(/ {2,}/).length;if(s<2)return e;let o=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let i of n.slice(r+1)){if(Ii.test(i)){o.push(i);continue}if(i.startsWith(" ")||i.includes(" ")||/[^\x20-\x7e]/.test(i))return e;let a=i.trimEnd().split(/ {2,}/);if(a.length===s-1){let l=a[0].indexOf(" ");if(l<0||a[0].indexOf(" ",l+1)>=0)return e;a=[a[0].slice(0,l),a[0].slice(l+1),...a.slice(1)]}if(a.length!==s)return e;o.push(a.join(" "))}return o.join(`
|
|
62
|
-
`)+t}function Er(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let s=Ri(e);return Buffer.byteLength(s)<Buffer.byteLength(e)?s:e}let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=
|
|
63
|
-
`),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(
|
|
64
|
-
`)}var
|
|
62
|
+
`)+t}function Er(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let s=Ri(e);return Buffer.byteLength(s)<Buffer.byteLength(e)?s:e}let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=jp(e,t==="minimal")}else n==="gh"?r=Hp(e,t==="minimal"):n==="git-status"?r=Ri(e):n==="gcloud"?r=qp(e):n==="oc"?r=Yp(e):n==="git-diff"?r=Jp(e):n==="tofu-plan"&&(r=e.replace(Wp,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var Xp=/^(?:\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?\s+)?(?:\[(?:DEBUG|TRACE|INFO|WARN|WARNING|ERROR|FATAL)\]|DEBUG|TRACE|INFO|WARN|WARNING|ERROR|FATAL)(?::|\s|$)/,Qp=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function Oi(e){if(Buffer.byteLength(e)<2048||en(e)||Qp.test(e))return e;let t=e.split(`
|
|
63
|
+
`),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(Xp.test(s))for(;o<t.length&&t[o]===s;)o+=1;let i=o-r,a=`[tkr: previous log line repeated ${i-1} additional times]`;if(i>=3&&Buffer.byteLength(a)+1<(i-1)*(Buffer.byteLength(s)+1))n.push(s,a);else for(let l=r;l<o;l+=1)n.push(s);r=o}return n.join(`
|
|
64
|
+
`)}var em=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,tm=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function Pi(e){return tm.test(e)}function Ni(e){let t=e.endsWith(`
|
|
65
65
|
`),n=(t?e.slice(0,-1):e).split(`
|
|
66
|
-
`),r=0;for(let s of n)if(s.trim()!==""){if(!
|
|
67
|
-
`:""}`}var Fi=/^(?:(?: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|$)/,ji={normal:{msg:40,diff:60,frames:6,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},Xp=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,Qp=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,em=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,tm=/^\s*(>)?\s*(\d+)\s*\|/,nm=/^\s*\|\s*[\^~]+\s*$/,rm=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function pt(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 ln(e){return Xp.test(e)}function sm(e){if(!/^file:\/\//i.test(e))return e;let t=e.replace(/^file:\/\/(?:localhost)?/i,"");try{t=decodeURIComponent(t)}catch{}return t.replace(/^\/([A-Za-z]:[\\/])/,"$1")}function cn(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 vr(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||nm.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 k=Qp.exec(d)??em.exec(d);if(k){s=-1;let p=sm(k[1]);ln(p)||(r=cn(n,`${p}:${k[2]}${k[3]?`:${k[3]}`:""}`,r));continue}let g=tm.exec(d);if(g){s=-1,n.push({kind:"code",text:m,num:Number(g[2]),pointed:g[1]===">"});continue}if(rm.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.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:c,loc:r}}function K(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function om(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=pt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(K(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(K(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:c}=vr(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(p=>p.trim())&&a();let d=u[1],m=/^(\S+) \[ \S+ \]$/.exec(d),k=d.split(" > "),g=m?{file:m[1],name:"(suite)",loc:null,body:[]}:k.length>1?{file:k[0],name:k.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};m||(s+=1),r.push(g),o.push(g);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 im(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=pt(e,/^Tests:\s+(\d+) failed/),n=[];for(let u of e)/^Test Suites:\s/.test(u)?n.push(K(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(K(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}=vr(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 Hi(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}=vr(i.get(l.name),s);l.body=c,l.loc=u}return o}function am(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=>K(o.replace(/ \(\S+\)\s*$/,""))),s=Hi(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 lm(e){let t=e.findIndex(a=>a.length<=2e3&&/^\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=pt(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=>K(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=Hi(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 cm(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=pt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(K(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(K(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(K(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 k=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);k&&!ln(k[1])&&(i.loc=cn(i.body,`${k[1]}:${k[2]}:${k[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 um(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(K(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(K(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(K(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){ln(u[1])||(a.loc=cn(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 Di=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function Mi(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(ln(f[1]))o>=0&&n.splice(o,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=cn(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}o=-1;continue}/^>\s/.test(c)&&(o=n.length,n.push({kind:"source",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 Li(e,t){return t.push(K(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(pt([e],/(\d+) failed/)??0)+(pt([e],/(\d+) errors?\b/)??0)}function fm(e){if(!e.some(g=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(g)||Di.test(g)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null,l=/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/,c=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,u=/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/,f=-1;for(let g=e.length-1;g>=0&&f<0;g--){let p=/^={3,} (.+?) ={3,}$/.exec(e[g]);p&&!u.test(p[1])&&c.test(p[1])&&(f=g)}if(f<0){for(let g=e.length-1;g>=0;g--)if(e[g].trim()){l.test(e[g].trim())&&(f=g);break}}for(let[g,p]of e.entries()){let _=/^={3,} (.+?) ={3,}$/.exec(p);if(_){s=_[1],o=null,i=null,g===f&&(a=Li(s,r));continue}if(g===f&&l.test(p.trim())){a=Li(p.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(p)){r.push(K(p.replace(/^!+ | !+$/g,"")));continue}let w=/^_{3,} (.+?) _{3,}$/.exec(p);if(w&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(w[1],o);continue}let $=Di.exec(p);if($&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let I={kind:$[1],id:$[2],msg:$[3]??null,inline:[]};n.push(I),i=I;continue}if(o){o.push(p);continue}i&&/^E(?:\s|$)/.test(p)?i.inline.push(p):i&&p.trim()&&(i=null)}let d=new Set,m=[],k=new Set;for(let g of n){if(k.has(g.id))continue;k.add(g.id);let[p,..._]=g.id.split("::"),w=_.join("."),$=[w,`ERROR collecting ${g.id}`,`ERROR at setup of ${w}`,`ERROR at teardown of ${w}`].find(M=>M&&t.has(M)&&!d.has(M));$&&d.add($);let{body:I,loc:N}=Mi($?t.get($):g.inline,g.msg),D=_.length?_.join("::"):"(collection)";m.push({file:p,name:g.kind==="ERROR"?`${D} [error]`:D,loc:N,body:I,exact:!0})}for(let[g,p]of t){if(d.has(g))continue;let{body:_,loc:w}=Mi(p,null);m.push({file:w?w.replace(/:\d+$/,""):null,name:g,loc:w,body:_,exact:!0})}if(m.length===0)for(let g of e){let p=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(g);p&&m.push({file:p[1],name:p[3]==="ERROR"?`${p[2]} [error]`:p[2],loc:null,body:[]})}return{failures:m,summary:r,reported:a,counted:m.length}}var dm=12,pm=[cm,um,fm,im,om,am,lm];function mm(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 hm(e,t,n){let r=ji[n],s=e.body.filter(m=>m.kind==="msg");if(!t)return[...e.body.filter(m=>m.kind==="source"),...s.slice(0,1)].map(m=>` ${m.text}`);let o=e.body.filter(m=>m.kind==="diff"),i=r.trimDiff&&mm(o,s.map(m=>m.text).join(`
|
|
68
|
-
`)),a={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},c={msg:r.msg,legend:1/0,diff:r.diff,frame:e.exact?1/0:r.frames,code:0,source:1/0,out:r.out},u=r.changedOnly&&o.length>
|
|
69
|
-
`)}}),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 ${
|
|
66
|
+
`),r=0;for(let s of n)if(s.trim()!==""){if(!em.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
|
|
67
|
+
`:""}`}var Fi=/^(?:(?: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|$)/,ji={normal:{msg:40,diff:60,frames:6,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},nm=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,rm=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,sm=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,om=/^\s*(>)?\s*(\d+)\s*\|/,im=/^\s*\|\s*[\^~]+\s*$/,am=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function pt(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 ln(e){return nm.test(e)}function lm(e){if(!/^file:\/\//i.test(e))return e;let t=e.replace(/^file:\/\/(?:localhost)?/i,"");try{t=decodeURIComponent(t)}catch{}return t.replace(/^\/([A-Za-z]:[\\/])/,"$1")}function cn(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 vr(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||im.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 k=rm.exec(d)??sm.exec(d);if(k){s=-1;let p=lm(k[1]);ln(p)||(r=cn(n,`${p}:${k[2]}${k[3]?`:${k[3]}`:""}`,r));continue}let g=om.exec(d);if(g){s=-1,n.push({kind:"code",text:m,num:Number(g[2]),pointed:g[1]===">"});continue}if(am.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.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:c,loc:r}}function K(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function cm(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=pt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(K(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(K(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:c}=vr(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(p=>p.trim())&&a();let d=u[1],m=/^(\S+) \[ \S+ \]$/.exec(d),k=d.split(" > "),g=m?{file:m[1],name:"(suite)",loc:null,body:[]}:k.length>1?{file:k[0],name:k.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};m||(s+=1),r.push(g),o.push(g);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 um(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=pt(e,/^Tests:\s+(\d+) failed/),n=[];for(let u of e)/^Test Suites:\s/.test(u)?n.push(K(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(K(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}=vr(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 Hi(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}=vr(i.get(l.name),s);l.body=c,l.loc=u}return o}function fm(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=>K(o.replace(/ \(\S+\)\s*$/,""))),s=Hi(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 dm(e){let t=e.findIndex(a=>a.length<=2e3&&/^\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=pt(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=>K(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=Hi(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 pm(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=pt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(K(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(K(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(K(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 k=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);k&&!ln(k[1])&&(i.loc=cn(i.body,`${k[1]}:${k[2]}:${k[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 mm(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(K(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(K(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(K(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){ln(u[1])||(a.loc=cn(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 Di=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function Mi(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(ln(f[1]))o>=0&&n.splice(o,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=cn(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}o=-1;continue}/^>\s/.test(c)&&(o=n.length,n.push({kind:"source",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 Li(e,t){return t.push(K(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(pt([e],/(\d+) failed/)??0)+(pt([e],/(\d+) errors?\b/)??0)}function hm(e){if(!e.some(g=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(g)||Di.test(g)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null,l=/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/,c=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,u=/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/,f=-1;for(let g=e.length-1;g>=0&&f<0;g--){let p=/^={3,} (.+?) ={3,}$/.exec(e[g]);p&&!u.test(p[1])&&c.test(p[1])&&(f=g)}if(f<0){for(let g=e.length-1;g>=0;g--)if(e[g].trim()){l.test(e[g].trim())&&(f=g);break}}for(let[g,p]of e.entries()){let _=/^={3,} (.+?) ={3,}$/.exec(p);if(_){s=_[1],o=null,i=null,g===f&&(a=Li(s,r));continue}if(g===f&&l.test(p.trim())){a=Li(p.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(p)){r.push(K(p.replace(/^!+ | !+$/g,"")));continue}let w=/^_{3,} (.+?) _{3,}$/.exec(p);if(w&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(w[1],o);continue}let $=Di.exec(p);if($&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let I={kind:$[1],id:$[2],msg:$[3]??null,inline:[]};n.push(I),i=I;continue}if(o){o.push(p);continue}i&&/^E(?:\s|$)/.test(p)?i.inline.push(p):i&&p.trim()&&(i=null)}let d=new Set,m=[],k=new Set;for(let g of n){if(k.has(g.id))continue;k.add(g.id);let[p,..._]=g.id.split("::"),w=_.join("."),$=[w,`ERROR collecting ${g.id}`,`ERROR at setup of ${w}`,`ERROR at teardown of ${w}`].find(D=>D&&t.has(D)&&!d.has(D));$&&d.add($);let{body:I,loc:N}=Mi($?t.get($):g.inline,g.msg),M=_.length?_.join("::"):"(collection)";m.push({file:p,name:g.kind==="ERROR"?`${M} [error]`:M,loc:N,body:I,exact:!0})}for(let[g,p]of t){if(d.has(g))continue;let{body:_,loc:w}=Mi(p,null);m.push({file:w?w.replace(/:\d+$/,""):null,name:g,loc:w,body:_,exact:!0})}if(m.length===0)for(let g of e){let p=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(g);p&&m.push({file:p[1],name:p[3]==="ERROR"?`${p[2]} [error]`:p[2],loc:null,body:[]})}return{failures:m,summary:r,reported:a,counted:m.length}}var gm=12,ym=[pm,mm,hm,um,cm,fm,dm];function km(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 bm(e,t,n){let r=ji[n],s=e.body.filter(m=>m.kind==="msg");if(!t)return[...e.body.filter(m=>m.kind==="source"),...s.slice(0,1)].map(m=>` ${m.text}`);let o=e.body.filter(m=>m.kind==="diff"),i=r.trimDiff&&km(o,s.map(m=>m.text).join(`
|
|
68
|
+
`)),a={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},c={msg:r.msg,legend:1/0,diff:r.diff,frame:e.exact?1/0:r.frames,code:0,source:1/0,out:r.out},u=r.changedOnly&&o.length>gm,f=[];for(let m of e.body){if((m.kind==="diff"||m.kind==="legend")&&i)continue;if(m.kind==="diff"&&u&&!/^[-+]/.test(m.text.trim())){l.diff+=1;continue}let k=m.kind==="legend"?"diff":m.kind;if(a[k]>=c[k]&&m.kind!=="legend"){l[k]+=1;continue}m.kind!=="legend"&&(a[k]+=1),f.push(m.kind==="frame"?` at ${m.text}`:` ${m.text}`)}let d=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return d>0&&f.push(` ${dt(d)}`),f}function _m(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 xm(e){if(!e.loc)return`\xD7 ${e.name}`;let t=!e.exact&&e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function wm(e,t){let n=ji[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:bm(c,d,t).join(`
|
|
69
|
+
`)}}),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 ${_m(o.slice(c,f+1).map(m=>m.f.name))}`:xm(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(`
|
|
70
70
|
`)}
|
|
71
71
|
`}function Bi(e,t="normal"){let n=ue(e).split(`
|
|
72
|
-
`).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
|
|
72
|
+
`).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 ym){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:wm(s,t)}return null}import{createCipheriv as Tx,createDecipheriv as Em,hkdfSync as vm,randomBytes as $x}from"node:crypto";var Sm=Buffer.from("tokmizer-bundle-enc-v1"),Tm=Buffer.from("rules-bundle");function $m(e){return Buffer.from(vm("sha256",Buffer.from(e,"utf8"),Sm,Tm,32))}function un(e,t){let n=$m(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Em("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as Km,verify as Jm}from"node:crypto";import{join as Rm}from"node:path";import{mkdir as Ix,readFile as Am,writeFile as Ox,unlink as Px,rename as Nx}from"node:fs/promises";var Cm="state.json";function Im(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Om(e){return e?.dir??R()}async function Ct(e){let t=Om(e);try{let n=await Am(Rm(t,Cm),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Im()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Pm}from"node:module";var Nm=Pm(import.meta.url);function Dm(){let e="1.1.3";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Nm(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var It=Dm();function zi(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 Ui=`-----BEGIN PUBLIC KEY-----
|
|
73
73
|
MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
|
|
74
74
|
-----END PUBLIC KEY-----
|
|
75
|
-
`;import{existsSync as
|
|
76
|
-
`);function
|
|
77
|
-
`)}import{chmodSync as Xx,readFileSync as Lm,writeFileSync as Qx,mkdirSync as ew,renameSync as tw}from"node:fs";import{join as Fm}from"node:path";var jm=y.object({payload:y.string().min(1),signature:y.string().min(1),enc:y.literal("v1"),fetchedAt:y.number().int().nonnegative()});function Hm(){return Fm(R(),"bundle-cache.json")}function Ji(){try{let e=Lm(Hm(),"utf8"),t=jm.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var Sr=y.object({bundleVersion:y.number().int().nonnegative(),signedAt:y.number().int(),filters:y.array($e)}),hw=y.object({payload:y.string().min(1),signature:y.string().min(1),enc:y.literal("v1")}),Zm=10080*60*1e3;function Gm(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:Zm}function Km(e,t){let n=Ki();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=zm({key:n,format:"pem"});if(!Um(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(un(e.payload,t))}function Jm(e,t){let n=Km(e,t),r=Sr.parse(n);if(Date.now()-r.signedAt>Gm())throw new Error("tkr-daemon: rules bundle is stale");return Tr(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function Tr(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)=>ft(r,n.values(),o?new Set(o):null,n)}}async function Wi(){try{let e=Ji();if(!e)return null;let t=await At();return t?.signingSecret?Jm(e,t.signingSecret):null}catch{return null}}var Wm="tokmizer-default-rules-v1",Vm=/^[0-9a-f]{16}$/,Ot=null;function Vi(){let e="-pZGsFNqC8n2U6h-EWJXNI1O93DGoqybT0oPAqICMGlEfUTPjKEYjyHbis97fqbzVum-2EHHsnj_AQ1EbeGymOQBkjs3xCOfIY7Wd1Io-tYEJh3LI6-Xd26ntZMgIaHjGPxnycbXhj4-Vk3ZMIBZN-jA3z0GSQTbvbbzdmWDWoIiUt8vI1tbu70xCoX-HA2n4jOtFJQRd9xIJyqU04FNj-8LqInCrEifCPe7_2jB9Xc2qxOK21L7EYvkfc0Vy-n-IVegmltcW_nyH1UyLWuQIUKQn0Kzp9Be5rzhq2-0sCn6vzSc3iRrclZcfvir8WEElL6F59rf3v7wdg2pAPrespTH8slqwKYaKhNuOzZ0Iomm7uOBQeX7FIBgTdX_hDRlwYsY-T5UXsBww6KwkEtysv1rwgpynzcdCmLNnOdtOaLB8kywfEJ2uiTZcVYMT1dWYzLAErn9po5UunzpFV4ul8sawwda_qx-8v7UrmaI7ZWZuPEP5-SlCOgDBNSW8y65R9gdIdmUzNUC7tBYIx6BDnRk-BNiXHJ2Dm0xqDm4lNeGgJ52iVZ_CSZU6pj1Gn_eO5P3jSxQYuNmQ0_SmS09o0oM_gigvYODKtPYkgg-C8PxT0CFi7YjxW_R1odD_fHU2ShP6th2K_B6cokUvtuKL3hqWA39679JPtfjThyq5C1dhZ3YlHkSAu7kud0mlApwsRT8dCn3F7_JwANG86lvCGEj43jmK-CRT5Hic5v5bp9Q2VYWAtQ17o7sri7MHWXUi7OPisky6JuzCaeJ-63MiIHwYEK8a7_DaM9sLQ1sEquPHMf6yEQrtAn7axdNdWGUm7GhDPR2NGshG4OYEVGv2xNxl8Dq3KVWjyUIBb6t3uzlpFhFMHIsaiKmw2fpBhNgABYDWDXoz9dfO0QLxRi-R5Wh49WorHKZU5AxzF3GK2ZbyDfPVzcKZEszyFz4GsFP5W5ufZ6Yg0YHlx-ousex_peXtpTdXoj0SV4R_6RfCrEFgtXwnYq8kXdxsx6LTXJsd_3vgcLe6Er7NG4IxVyOVDUvICoNaykfeuwFp7Oi5n1OBuJdjQhWf_MC7rHadtX86rXeL5tv_V9mMTA1JJl0TLsxR40YC42IhZ6f8UOFH-hmqLEDvWdOxe89xvTiA6UrkVEkuQT3RPQvkgzD1WBHNdjD6n2BE-DISiHsi7d7-GYrkOt15lg1UAnbrUAGVGNGEWCYlISLNG2F8FubMqzxtcnfAl5EICeTAKKIeHM0RpTpwrvugWCHIZA3xZBpBq-gaJZoCxHnZI51f_Fgn6rAC7iurWerEGs4VZT3I-DYQN8wRcyQgyhunT6SZs73s7fci9uWBxiRCEAUVhBbYqE815r_D9tJGib53wS2PhBz5KZUevXFIz52DYo-p9JGjFCcuq5cntLl2lLJzyjWKWYTgbxhez4DE_KKZtInYBp6i_jMRaFVh6sFieYa1hMj3-xzsS6m7aKg1-xMXNo8NHRQ20i1Zvbw04claulRCZIcJiB-Cqux4FS83ZoGsMDqx6hhztBLQYpgXEeOfUHWTis4E3inyqeqhF4ftSgknt3J6Zu1nQhoVEgInnMxbsBtE6DLlM5H5L1hQQx1WDQQeuJqdJPRWJ7Wk_QtU0WKtwGRDxO4D_Nf0tVw_gVuSG_NJWd7C_McYyCpiXUdJSU3LTPwz9osGnqOoFKuD85MSexbY8JmdArX30JBYYSJ-9AObIwjezXTbFdUvzcKAm-YhYn1F5tC9N7rZKkIFew_GDSci1V44PfX90tvXLeoAPXh6FtBC8k1HBj9D6ojQTj7FPgsTn4hvtN34O_iu9ResfvgtKE38BLU3IKuJEsXmwJdxAxeY_KoYVK4mCBBPYmwFGbd_pdcsu1Wc6VuIOA877I_rA9W0_m37bVbKdTK2R498slLsyGFVHDYhYlLXWao0iZfy-1BkWtbDTrep3RRQjwwZDUesXb5MHCXkuapK5cd5SeK8_Mxah6FeuyjxfJ4FQDVdCNDJwm18ME0LrH9fhG-MxhBQlVggxOAPzbcCQNGuuXYCxZZ9ykPPkwJkHAYJULudQ0TMCmuHKAmsmstwKTy0flv5tF0eQkCnAv8GsbQrsmcYl0UjO__YNluSFDV_VQ9M0IJLSY0oQkUN4QgevX0luTl0bG-S5PwhxeY9fuwk_woTdVVMr3iAxFVyZrtPrQpqS7P2Latluvd89iwiO3NFG1ij2WkG4wnR8WPqaRUB0JkLarF41Vwy149RnKasAAIrjE-IlyiSQ0iwKmfO7RX4qUbDO8UCuz2BWeHNVDl7hEjuzgMdGf-ojLlTtdzw2D1HVsFEBgkuCVhBuHZBBRtayralCoYYxZA8mlozHTwvBF91_LGnDzQXCg7mMXE_UL74OmhbkrmBC4OPpRJTq7k8BNXtr_RujHYhW8ptIkSqnnwagvEJGJMzq6uFjAyuUO8xNjNj6p0SEQ7d-LeAplcuc5LsoxTSq3TeA1fcIey1dwkiYfcwX28bZ4aSLQQo7uxJy29gfyU40Z8-x3xvfU_j7eynTZ7Svxdbb4YHhLMXP5sBHhPQNF8s62ISfRSQ2wrxMEUIk3aDxR9f8yMdHcH5z_JhoHgG7Jp4CpU0mjlMBh8MDoGKXxmeIz8xfOt_qEU1UrYq--5NEP6xy-M2UEUgD5dNiXm8T_1ebzKPtUX_J7tplqLJuxF7KW_vWtBzPWUf54SRCpa203JuWNvNPr0EaD7scjp1Q14z8rTr2tOSwp35dSOITkVcJfAiDLtrvzqnHvhIXzratNr6FqqDAs__irY5t67IQtOA0y_XIiqIQ372TqzMch2Dhc9jGyIRcytKlK0PikVKo_X7HUYMqeUq_9ooCU2iLVQz-4VPaOz3suzAQH4tYuC5jshF3-7mylPVbVcHkmWt75hD_bmA06SyDxbsNDHRB62qcH5qRvh1cAmd9hMHBuJi5KJqBbWSc6o7T2PSLhDozGPIfWeNaHWBCx7woXH5YYd2gLPyQjpw-Xw0AGtauQdg6zvMTAIiHqPtcT2UqSbBG8f36zLWKOnW8xLNLqkX8lth33Vve5pkOvYgzMWIRze_50q7AOWwbWRLTKrvckfZRwxbBfQOHZbYaMYtRaLm2h3lSqRifpbZPegQ3hNV8W4o1jwapV7S_8Sx4pL-5Cn8aAYi4SPFYOMaeBoXvKHTATLkzvBOi7yMbNlA4lO4j9OeUBbpwyBccOgqq54zQluIjTQe5pHOIdprWW8InhVRIJ1yPe6wlNzJJ5UjOa8SteUP4s16FAzFuzKq3eLR8Pigbco3cii1LIBQrxSvY2xBumIdzDTe9Os64X8ZINtPSP9k1Tj3Iye3o-VmgXnnHzMV39I2DtVeYHTlNVcu5omdPWtyIY3XmEEOpJUpQaSCiFoE6Ty6Hi9VR6Nq-x_XBb5SMu2PQcP8e46q1sDfTyuQVBOWTvS2qWNYhL7ENiKQpO5U-vHZXnQKfRKHKcz0k38WY-xyJpYLvb019gJxRg-1O4Bpy4k7iHQO7AZssWf2tJwCYn1ogag3535yza7onUgAuj4uE70eHTf8WR0OzDwu-ynLgg_8ZuqDa5ghCDoTbmAcsBeiN5L8j0sLleRXf3E4Bk7Plf6Og5nQgPDIAMMwBVVt2x2eUagO8-cBM8IUd3RhWFaP-TunRiHsE3pCKRZAhveKqMy1MDqSFD5Qjp00aImyNAnpigyCFrMu95d4n6_tYLFuQplz1YeQM6JDMiUsaWqsud34wRIIBbhr3Asoc9ASNbfBFOmw1KaJbhwh0r-nK37ZXACZsdMvEb0LqShR5cUA3_3W4_7z-cS3yrsStQ62SLRSXjOnSbiH2D_8qrQ9VqqIT8T1BJyI8jA2RbUcZGRJR0HbX2S1O_mH1ncnMcOCnORSg6vxcoh9HhZ57GZ2LCeusXlRKv9jaMSwiwIowSe1KjKAgCwgj6V-_Mz-5h97ksrTPAkCPdZ7PcOClq-lwhZZxGCbYznEwd00HUI7nyzEAIvFJ3Z8a7aGYO30ZuESnJlDsQtLGkiYehwjbt0Am_P0K6q4H-YC6x-MCruzNiac-fvSjsI8HyO0F6MtyBH6gBSVO3lUYOTKVWHPuN_S13i0C4G3Vc_kIoypO60brrEHHtuVxa_e8bj7GWZ0cyVqOFDrUCS5ek8bviE_eg7SaY6cKU_HSWeDCJQ1IxepMdsnrMjJGaKGK4otZJpXnPnYuBPCK_keDJhTE9-m9qDN-9CWa0Ah9BDJ5kKPjpnlYqdoIvdeHzzBy4YC1e2poRlkkkBvCTRH8ufOnXdAID45q2ytUTTy7a1OUFxdRJzOuD9XIPPuJZaTAC2qXgYi-HVMVgeXOSoQByF_mOZ3oFy9gSerLU4o3Tf04abYWcAICdwxvh0qY04JetP2y-ymjLVT-iOH4XJe1wkZm7L44c4OVxQF3l5bhcl--zShkJRjH7a2ZN2kNkbsVy0431m0QkAzY2-kwkiUG-sy3zJhw5p3x4Iz3hoJE064ltD_d-zlVGnn-HW8ikLpQHpMkdzQdFgkU7SR7QoSVFJEKLlwTN0bVKwnMqh2o_VIguAELkEZEUBpaDrWAJJymCDBkiIFZqJ4jYjfpJxKMOSkUlYS54BF1kycYcjJrHWvqVHgYxYmPRK6sGeTbI7w93Ug83YYpuJfyVwKZFVev1QlzRnFABb9WKHO4csQz9HUHDXnDbEpMUwK-pSsEGc7NzlzHtGEMNzkY_odTF_3kVKcSXmp0Q7IuJp9FPq6KltYyZ-VvBgSLm2vy8fNsM1WzKdVJ0prj1coiOFZp11Bf6mDBnAGh-3ZottIB5_kZQUjaRFmFTuKBDdYjpVvj5AxKrfduod3TjFCSx1fNHnuwVYFXeo5z_mMmtaLXG3lN32yWGY5_-pu6sf2-gpU-EddarnWfB4aS-ryxIg7mG7PrfRepfmmf63EVLoB5YtVKNC6lNe0AaH2ksVenzGSokZJFWERfIHKifI_xc3IYeAqJOJSJJB_zzYQEM0BudylmWbtpSjx01cJnwDHO2KJZxDjoCRZWIjIPhczbuDOH5UDvi6CVM0cCFU5ZmQ1I0aeoBUZ0lLxPuIGg5JnwBI8V1S-DKmpCS8Zwbz4sSFB-FhinvEfKiqF8RCLypy-wCyq-D5t9C3F4qesKQI5hvXKFX8jhe4zqnHDxSt78mRkzLDpFc6QPe1o_BUxy0CIOZf2VSKiVjdglseQuFxNx6OTUHjkBIwJImpLIX8XqCbEYS8L8F9sbBqGoo9XeMZvv8uXf5NljmjALnR8ivKCWLo3_OdBN3Ua23yuOFDrrfO_uz1yHAc-E9Yrh-_1Y032u4f1ESQZhPnTOlfgMvXYBCuYwZI6a32YJhW3mP9mwV1n32B3CXVFLP1Wh3hqt8QMubqvgPyW-hkdr-r8S5ficwwQJ2psEDF0qxmEdVKYqfz-8jZvxMtYASRhBMFMfDbG2H8YicD4Ijs_sPFZ-Dbo5it_17glfTYSLXK2TD_ZduTEpeAqsntWT3zXJMncLApUKkb8m7RuZ_lDnXpOvwJi6kYzw067A58GpYF5sC7XDxqZC3yiDOL_XPoU2KrSOe45Y9ImY8A2nLzwuvHzvKUOmV3nP3xbF_wdSHqvvIEXUlhuEZLpXntZLPh9rl9IfhJxq0ffavAKGI6BCwWKWvcY8LRWrej8cQCT967VL-dfpUd7r4VG5s0QmPBcj7DH7HuWcg-Zijqiw-v4XRVo3EQ97MiADUlDvJ6YJLzRqfOwQ4qYHkjoFIYtAdY8eKGzCIBDlw9WucOTVg6n6GfNYbrsu_M0FKJW4Eo5jWDH8KsVi1XN3-CEX0iQkMEt0I8SAbWHb4cjujc_LqNk77xNT9SIHzva45r4rlU0TGYsFL_R3biTh_k2LvQt3Pv9EFft0GJBzPkl9aqbSk10-5p0JfiXEd6cuVwhC8jFPkjTFeI3Ows0gIqSdw54OKuirzF4Ds5XgXa-lCdMFvCyjcNaa7n-JUREmZ89FYGuHbUVVu5rWZpf6U6Kpxu76g_-m28zwU6GiV8Bss1nYW9saioheAfbgwO70NAzGbjZKK-MqcwTrz7O3IwbVzCHsmQuiONbzNqKpuZgbaGS7pHXY8NyYyxskkQUfjTMGg5AM--i9W0KHjZx36UxtsotLI9RsjrgiqWsZpVavlsjZ7eR9GAZXyRhWeH0vJak7CEK91m37NU4Y7aSeDb5BVBrBC6MXYQAwtmadUxELpnxHc5VXjjdbMV01jPgJooyBviCo4qVMZow6igp_IMyy-wBZugSNoOAduiuNMS6EaKwZdHWrrIyNyEMneMQayVeJagllAsNFwChonB6YqwVsPPnE5OF-gaRk29cwYnLiRd8zE0fgbXfwr8Vce8YV3nmVa_0RcreieNIuSawqOxqDrt2w4fUHghW4rth33cAeDEXnlrDeMOBB7wpOKADfGD0f2qFWUmhaUb6LTIeHHc-BvvuSc2hFwT3yUrmpNTCPI8IDRntp1Fg10q74DPeovUKY91oE6oGODa4bOYAsJUjGmcs189rkL7XDvPj3J7FeYZTmfXiixz7OfKvbdgTZg_iovfnbMtAy2mhkxbwgpzyWzr-V5ZSyE3bxht8H_C6a9O9LviMrA9Hg82Ll-t7GrMwM6rtj5N191nynD4lS9cMS6Gg_-B6OqG0WK3KfSb60FVG2ta-8W9uZ1yRITK1rx7MbaKacTsYt2Lw51osRDA3wUoXsElRUFksOewxj7rgA2al-RHVwUnq6wcwDGwt02CtAt9Mc6j6Wzz7ATjgKiAl7aTIxfYa5C4TiYLmLKb0Iu9WiAgmqZtVR6vRxCuUlidi7tSB_WUIaz2kJraNgwhZuGjAjAYtAYOOocuFvotWZ_GimlW9nEvDNlZOsmq-xquiGZPyC4xEbN3cVFfCJGFpNLwRYbHUQP8tsSSYbJEKvB1GEtcUR4rBYhWdqEM46PhcNVOtAUhTbopqPlh86DlCOhgYQTk3gi2LnYftRYHw_sGhpGjNhyJCP3mewVmg1oTJWHOAiKi1WkH3NhxunuoC4_-ChmqiBopbvIVCKFNuo7m-65qUP1P9lFO1qLz4vliF1CuESgMzZsE0rWg_kjR5ovzY_-34KPLN3KMHzZzTOtUzJo_SSvF-t-duLubaJU1mBrL9hwAM-DZcXP8H0JE26395HwpTnD_ziv9PMe4tDpGcom4YtTLi9XlXu7L9sEL-Aen187xKpsqGJlEzlXYZjpsKH3Jwrlf0vqW7xFTOMqFSx53jZLfT9ZDxMpIXCsVXLn-d2RXUXJCLq2qLXwF75MiJklnBx9jIlIrNTnVfNEYn3bre3Xo7HsjVK7L4n4bkqNXZqPvWrRityK8VjHwDgRifkjY8V94wt3zWtfOryb-jlbTWY3AuOpcc1xMsykVPHhmvGCMkNM9-QA2Ue7nRl0_WKur9rQ5GvCYyz4j9LAgKY5Tnp2vgFfuFdlOxTC8yfE4OeQLo4lm_ofxEIwOrvsOth3UKssKbMVgmxHT3wtDBnBtYzV9r5sBpT7DyvFkb4tEBbdZf1RgUp8VDoyMZOL-x_z96tQfDq9Dyj0UPLWxyv7Zj3eAcrqp7z85YpZJYFjkghEmAIGUiF6tNmDCVkfDwszD6lxNTf4YeCZBO9oNPYQxOq7TWSIXpAbyJ-XzIqIWAdQNtzSa3AL37QndwvNMOuQhf2dEneEzZrIJxye4pjapKaS-_WJFY834t1Ewx88aqYEx69v3l6oWwYTOIj0jrqTXUJymHYDcT2aZwB8o_6JDf_z8vC-XhP2a2SNZPxKYfb8MlQSbIeiA-YZqqwI1ycOTiut0R9RQEsNYeL8De6cZWW43D6jOcmNs6QKoR96r3paM9bA3yqtSZ8K_ZFSmQf4BbIQ2rDPFE_CAE81PKIZu3korX3hsvvWaRYuCAyNubjsUSFMnmvl4PHAGj4_eTMvsXojWfOlzG5lY6NiSTvUvi07WhQdlyBE21sqU5xcJ6P2TmquXHMUmuFIooqe7pydbrxej6vdktntOSPKMsgE35hpp7HN5AokoYheEnHOKpTBbIQeHZO5NCcqvK5wtAwqlbWPxYVs6wGaK8Ct_UPlvS68ie3TW8rDD-1XfLwT0lV8TR0JV4gFLYev_lOit94DOnDK4JOZIJS5ZbyLv86JHgmPYkMOfK4kKrOoiPBt6BohAO4jbqle1vzR1IUjywRN_ooUj9Wa4Bra6TiEj1dN0kMUuo9qv13hWzkfceSyzDx_TT46fbj8VfOb4PdyHo7YA68KJEuhFPeXcKO9GW_8G7JxCswHH61FWhYegdQo9dJ_v8M6YBqj0Htkj-TKPwiLzyQdLOudMQGn85W1kIGOEXrnCqdJowRjNOrFNWrOHAx4Hnve3qnVBcWR_c4MdAG2pI9DrOIkxdfPnftCuk98t2ZilELFL5iAcPyqPGw92elsGYV-yuFwWO8kK8bbJBSEGnmjVkclJJWM3gItARD2BWfXaHfmglc6t9cbEYCsHpJoKDGKEOD9UjkW8EZCx1qWvpUpB29-vqEZVcjwUvxHn4qYvPZHwx1PlYbpHs2zU9o59XWSOdY4u0nSlkd6Lc03AaAnPgVbWdIxn3SJuefGB5vsOfKq1d1fAwoDzHZOokTqkA0m5aEdVOMTdMggJn6ph3_07pjqotU93BCcHmH-eXjQfzApLd_QPutfqCJO3PGrfY4cBuFQ8wsnsIOX92nu9a2hDIkGFVNhjuuv6yl77-rriH1X_34Oowr2TXmiKIV9GZ_Yx3q7LYAw6MycB_ZQ--oACmFfkyk-eFE0PB6GlTaJ7L8Nqb9FLiP94kaMogXXK9Yh6f3ljnn-ng1YqiQHGTnG6XuneFQtFn1ckjTj22dGttsAqpWc2p5LIt1FspQ-jvXHMUiK1svU4S0e_wtJvuFreGW5QLfHnJnsBh09XZaYsg6NNgOepsUm_hZCSSjrxS2o8tKIQESZYUeR8UTh8BlcVlP_2emzpT5Mde-ZYrpyhadDSfmOVkBdING_kcfc3eE0cxpLY1wpGODC9g2cuGQJulm52tPIDvXTKas6KEXjw7v8klrwzaJRI6Y6DIiywD92bNRtxrEuiq5NnFhpGHlpA9sRQc4aPrbdKB6JD-Asut2pOdINyONddHNt4H9mhl9qfVxbmvslq_kSFnfw8cFLkXQuU8kXHcJPDr0sSslu9mNTgqFe5JHhHy0BZwJ3hxo7Um7pflg5aqH_BOWW3CK2_NMaQ5k12n1pkX1WwTRv7St_jBqWKF7o2UPlwAFciZwE12oMYmJNGu4xQgZGE908bgTAaeGQPv3k_HCI3Cc0-Pm486o4ZpOfnqV6MvXVCDqXKDk95ROoQoKYDaxQ9tiSlfnP8QTqU8K7SrRb9kkubl4ANi_Dhkc0_H0za94HR-tmJnZi2ZXG8lhuef6NnjrZzMozyvS1sXcFW-On1_uL4sm3IRD5QMy2NtxsIHVJ14xFMZZl0gKHw3S84C422c_M3lG3C-OyZEnG70FemIsBtFBZcIcPUiuWwjsuwJDdoOmkBf-pAGeBPBb3e1X0An9L5zRqjovslzxOs3gyehSbLLJlKqbkbcEQmeojB5tKaX0x3tjNazk6hqQPX2DTAi1D0SzneSwXk5oKbp45X0fPFBDenUMFJe3HU5B0huyYgP0KXPlA5pZqG5Q-g8uxUGfv7uwoJCz5fF8x_1NJw3aqV7Y5YNiW0ZBTCP7XCXzRfM6f63sdLoPCeOpzglFkaWfwL7Ej01TXdoPJoCoxIL7a1HoQ1YCaeUJS-ivfDRC0xH73pXLSX8jfzinUTbNZBzUjF4b9_06uN4_eEpGDsgswBfP3QB0kym0qe6UJB2wRRNqtRCpOPZ3gTvgnmgTznfk530KSNdVuDhjuTOTVb09GyFKHFnwTZV6HCBX8x2yTSx5vyxEjYDAFbupGEMEBajrsyyLQA-qcqSnHW_ZylD6NaOiruRTamke_oRdOwTExQ4RcI6i45pPuRCW8FmRfH6cU8S9CF4hwAPaGsoiTxG3VfPbt2UMmmZ6cPZsGxh9uLsNj0C1NlsHpQ3DkzkvK99myQZD1I9tq3WVfG72RZzH73qXQVrhjiTcwgTrwIpEPHrIrPTiTmKlgd9xFe3eS46L1s_DeybXWVditkXrzeTv6D0kmhQuuofMm3kp5FJ8_uyi-FNkeR7lSokh2j4AwtTMzIO5KzSC3dKTzas-zQ9NaSiPTC1MJu609XDTO3HMR6Rmx5vUGzh77l0Z4CrJCWXWK5KA1GUomWW-XPsqEn6Tt8G36PoUvDlGHbnqx9mKJvIEC6k-vA_rtVU4lTlM2JehDj0_s5wSYZWLauJxIzZ3ptrRc1pMUt1m4swOqiBW_uFV9qnVB3WXgZp8Miw9gJ3Uhfe9mLOryqxwuITo-BVk50A_rNETpXsO4oJjCY7Z5aHN7jPpfIRMKZQjtL3VvMCUdP1OjGwPJjFraXvmrWvK7ogZwC3v5cR7idrOaTV07HBpSUsAaM_pLWvqm9u1_lK4TZr-SpbS7mZL_UX8Lktx9-5sod0AVUufS5V9YrWKt2AOmIUugKvwobvVLeW0ueS-hhFLwFrcr-NI3OezI9tYAP2uy__ZnbDE8rs4EfDISItx80XyUjlHaDj0U96PdWrS14ipM4jcW_bThHS5Cgc4bvvnK_OhkJROLynhllZbqsAcDnE_csrpaOH-Ypq3TmAIPszqybGIlB2_tzdFKAwsMBnTQxlMCnZT4ltBiv0sVi06P3CM75zK_qeUN8JiAZqqC_OjGRb9IZ171T6KqckBmyqfUcIaPZVAv_gW65NCs239voLStfsYiVkum119eo0J9CLrxh3MiTeTYfe7CYbncyAhaEvod34Cx5Ig5cm2u1d4zJdstT2ZFznBKhScO_eS24qNiWP6lGYbTuvEP8SNSH-IC79FSEVyk1qlj4QA46Z7BpsNrbV9URHp3H6TJvmOaKdeP6i91cXyc-33DOvtYiagoelMvkfwKwId7DmKtIlAXzC6qmagAlBo2q__gIVPuKO-_6Aa_K7wCwKbT4jWiGg2JDZnoyjZUBIB4FZvKeOCVfx15_CB-ia_z_NlDh1pfBF40xSh_ABUsoshVAc1R_ZPzGih88C1lMe3Hi5MgSWRtpENVrqruV_sU2EfUB2VInGMPe9iH0QggyFOBtb32iP82ferODufOB-AvVYPA2uj7oxi_Fo75OySZJgeudAtqq71daArmu5y1Td5dgGSCOIxpJLMNrKi8G6H9Y6t2RUUDcc_kPEp_u0Z6Y1JlVKoMv06sS_l1M5BtjfN5KvGZPcNuy3yCYNxqSwjEv76qdQVuwT_lWnqwQqVwkF_5_Dbcs6jO0S1w-wOgWn1QsQtYb0PwfJDzrvO6OGZYi4yvk3zwkbDDzQ6RMa8BaRZs1FGfN8Eg1TWhKaxLDq8g35e8QJyfw_fIZ5EI6tYlFdZIGBtSTbL7o3lvq0lHGImMwDBI4WWScJK4eNWsRRA3sdZTLZmicPAG-qPKz1cfocKfaKUxI_BKF3gYUeKBbXPti9AzHuAeHLX54oHvlZ3PypyxOiX0kN8I_FesrreLyjnKk4tgqtzjkwBF_0Y-WSNL6AH1LAe_JrvPEaOUTvxPdMV6Z-FSXfTkyrEuJjsx8wz7a0N17DG3pII_EH1xTDr8QiNZi0m5svXhlYrNyty7VK5lJJHu9VlAs-7V_R6YuIpLaJgFVuWGDpVSpFGivUXOhgVM9DS8ZXQ9EaUwfvFkBmvYPutP4zij_t9Rh2TByG_AFtIkLTlci5zk9kzLfuIO-vMwUXdyMVweRnI6FcNisNdFuFWdgtVzXc0hZ4q30aSkMM3F2iOXE2ZooFMWl4A9MC1nRQ-4DVMCXEhgDo7a2VKd_zeKP3POnP8C_qrjrQjLQ8WZI-9z6L1ngMTr4eArHRWc49CX6lICWcx3xQKo5zEi_OZhKDyvGWMrV5A5nLQLAU0_jv8l9Iz-ElaJtz7x2RZLhjJS1M5d_JKFBXHUzGVME_gakMi5AlMw46MhcXyNAxMlCq0Ol6fLLQpphroU_x17OvkGVY8jm133MhmpBY-fMbYsqObFMKAa2vqBzMO43Gsx2AZJ0S59NklvaukQpbM0eNL2eoEIyIaaYtl4s8mHbuJNeheiwfH0fzQ-o0U70ws0HGauzCqvNSIHIjS8GXhtTCihhkMes3r_qObRBVLIrJ1rgy0QhIq2WGNzc3QEIAXXuzqaDF-N-EpnhEH1FAcj7By7qcdmtLcLWjKuSBwooeciNxM4d3deFGq1T-CkPtRysydpvsOwoTJB3D-khu9KhfVeo4A1vlEYTON0qF7BKQeUUrRUDGhzH3jUTEKbtyaWJn_LkyGJcuiYKwuZqeM4mMz8yJP7-0N7P8vWomgQLKBAVrPMbI_DKLRI-Hhsm3yGB4oG5k7CQNjaq5ExNw_KINl1UKTLN0JvUKb5LOyJPK33-FoHRxVtL32_mIsBuWPO4FoqskCuT6ckiHCtjxiqHr54v2lu5P4kfkN1LOvim7Rpg7UhIwFb9LYVBA-DlrmBULBuiRSxQqVEpK3_76KLSQ8MlKpNqh2WCPs9_n7gbF6HgFAqXMUbV9cqxO8Back8tNpt1LSE-UTUo6yMJAH8d84B11KiPz6YhIYDvNq2nS3tDsm2I3jcBkrL1wncJJr9cXnf7dI5o07-io_o5BcY9_f0UX3l49wztOfmeVvYmdTFqO7QgeHB_uHhnhUhDlvCaJSRt5kl1Khqq4EOczVkbYJSWkfCP8YDmz0ekYLxttxD1QPJSRmMGXuYiZcQ3iA_wFbW6ZuJ1ujPUEVp8HTvUtAZwTcPPzveBTC9ILrI2KBWx2qGfK1l7_z2QXrx3Jlx6qcmrTsyAueC70uh3kLQ8_rwksoB4eX_xeyqcM8mfJLvJC-W5k0ZwmxhCoEY2fJQ2dk1z00kvhejVM7AdTZpspD_vY8aOfUIckhVaQPPGmECAyXLHMkITov67EW1cqRZyMXUIDq3rKP9pKT0rEQVlNXAktdHPfLEocfwh8l0861RmQBZFXElSufWaGmbpFenAB2M7KxliecuIvX0xSfrgEQf1rhEadBQ5MX8Gk5imUvCya9gQbWJHNlk7Q73J9jbeRX8vjvQkJDK-CqcSC0KWwGuxXTJbeCk_hSSd5AG5Qer7GQDKuIQzM2e0MmZD33kX7vHKjf4-b8P6ptbkNHOanenAGY-E6HQcPQ-4Ksz9wlOKp_a-bqg4R8G0uIgPbDgEIBDWITKF-bbkls2UVftnNPWsXP50Ysjj6TWjbLB_LedGdFLtEfdPxPMucsPnK2p_tj-hYPMYcs3ZCMhse8UcvmQKKkd14mxAOqW1rQTvTPULF2qGX3DPRu3jyMbq6eeFc-OUNqqVkz_EL62caFDplyXdyI1Bf4Njcf2jKufCz_Sc0gg0voS9y1DLKaMrToDT_CrOLMTScGhAz-8OxlwlSURxawaLm4nEO8liOTGHBtVcP-nnJRR7AUbAKR-bfE0up8uh9YiQicMOQa-CG5UblME-NlxcpttgnwtIL3xOfirpN3T1T6LgkVfmY8d6w2NjSUL1-_A3VuUbvPZrbkLQeBbje-plbmoG-RVLehYXpAQXnfJe2PuSWnr0UDeXfBqAYibFoQlOevJTGktVwyHe1ESqpY9Pxo-GFfIzcyN44YSxdXKt1UakS6xvSjprsMk8933ntKO3RSV28vmaj8MSZ6fbGvW1a6NyKKQUtXhwtuj4177ignq5pX-sSEznyZFOCP-s1uksWNS-LCr709OxVtY2oGcto6ezFC6_TaSEOUa2ncY6GdNM2TrBqSJJjDYuQ9j7XH7QSE5i-WVjymPPZubZGAE6NAGUS0k_5QiMM90kMPfQYqaMm_5WSenmIaDF6yxUEcy6lhy1B2hBSE8MqFvf5itS767KZA_H0niTZ9qcL6-Zu8_brB9MgCRrAOEcAopsMn-jktBp8JTbGA9PQ-kow1eo2nA3Aerf1tOULMGfJ0n3p9aUHk3W0DHsz3osc4rNEED2iXE31C799aAdu0a_GhHeNaZr5iElP9_bs7ORc4sAlzv9mX-wDiq9pVspptZNJZLuo-ZzCeo4mCtW-f3Tz_gUFl8Iaty8spAulsIF9W-KrZ0405cBfvEFnVPC1aJJfB2BpOileNTDwqo_jp43_HBZQnUaAbD-rw4_elX0QFaJQyJanrZjO_JoMU15Ly_gM5XVz_iLDFMr0Qot60a6ukSmKRJHRH_mgtw5FxmUqdZGNSFmXRQV24WPzFmIWvznBmb0gODUIQHorly4pJ-3lmoiPM889p67p2KDEF9o-L4snZYsoPzeQSxA-NKwSN_d-CFMXurmrw974r6QHCJokgC8UexwLmBo7IIcj8YivhOIkAzIlHI1H7nJvMRhhpY2_RiafuI6sMrIvHZH6fr6rX15XdvU_mzsjBjZL0X0Un3EKSlNruKtFqd9slypryaCYI4Ce5wv6aIyVIYldPXrUZ0fwZhXJ0xdz0k95wBA5nqYvtMmCAbakxy5VO6D3pwfUaXs996fOprWDPFW-8floa9AObmfdLjbuzvhgpO1kUIJEvqIOjaVGfCXk2CTMKvbSr7bExkLIG5F6YwYhIkU8fZdJROXQ6eByGSsuN6fhIrFmAh1K7u7BRclrQk7GryyMnAMmC5wHyuJByJB7Ezz8MMdjYEiDNm0p7c9r19W6SCrI4ZEKNcthboNKHfCKvtsG63ZqIdwKoFPzPmKypwuzqssYjL5inRxYlWTM8i69Dhlg91mbIuz9GFXrF9tWFAE6EEBO2uNh7lUxoiq97LBeha_tneG6KQFNX5YD5ZQciuphSAetJv2cC6FrO7sd-m_AyTOLUGSdizeTxoR_Sr9UjvelytfB7Wd6PVt_ruYqDzhrebfGvZ5qBClND7K3D1eDhSR__JiPtwFZgTn5pJ2DszbKD6fR8n7YQ9_Yp9WosAuTu1CtfJLaEM97niiwPe5fO7mPxU59b4-5Rj_GbLKns6gjiUBHs0tfy9Pz9pSIn3l61JPEZYWXGi2pkhha9Kcsm20NY8nvgdEVl_yvv7KvQcAby7qtcg963DrbWLbYM_wnt25lF8W7lbC82k5ruR19U4g0GLvVj2E40uMyLgUXuWrZviZ7XCe8PKl2I7jZNtNcYeBiVB0de4eosnA74Wt8Ga_UmilWTuf2K0ASSKGIHBeGZXEj1zWl9wwf3zJk5A2sqXe6Ox616hPODL2GrpD6bivNVNB0zUwpPtz87Nj26vAuY6Y6VQiHP6PWcVwZq-X8sN-4TfSwI4anhjbFIXPTOJ0iGmB_E-SP6WSJGRuHn2JFRJkQASHDzBjNcYfeG5-6Grz0UnSYNFT3mWYhsbKXcGoxqyKb5bvYnaCJdbJZwHzEIQvWRP0XdlR8ZzZW4_4r4nuG25qq-fm4qHdcdATGojPTTWxiMNwzu9Ng7N1lhBCIh9WqiqB-8FK5Ke8yP33UVE6no0XdrjPNRzx6KR6f75rIK-W555Ae8DNgA8Nze_dL32iV44kFhGOkIbcsj_44Nd9axJ45E2pJSfWfPvNjyQn15NzS68B975X7natn3F31kB9Kep93edb8m4Fb7AJZnqtLJwAjsxSWco-u_t8LGvbEWB1siYt9eV-Z1q0D52O0uvdaukESV1wMBL8ccSsjeHi056leLxaSyhRjD_SwxssniMfdGoFkYp2Y63qXmKzRuqXodsBJd5Y1-AiH8x4SYGxpYpj9fTtoeiZsd3aFnOw12EoeaxLNj2lBDFHMKWZJb7X3Aqr09hBWFGmRSSl1wr3wxlFg3JUgoEcNF6LZl8DmuNNC_d2ulAk2niAGG6oZOPR6m3tsoMSOtepdDapZ4LDXAHJoCtxC2kprP-WbjRHt2BHUIlQsz8b1HdLvGNWGs5gENWX4TsiltZz-J5rZ5hSClX6wyvPVnxWKYeLraZzfnSky5wiYKA5qpp3BRkGDdFheRlMd5WuVLnx9KSgXe0DA0RaDjIsvznTS9WDsXL_YH6Zmf3tmtHWWs-A_Rl8ONwciK293xapXj7Qo3I8q0hV-Xuskw_X1yHVdccP7vjW3GP5IqPH5XEbD3frXoYDZUvvKBhxTfdwjQ7ZL4zEo9KZQHQiwfQ7g_uv1cOLV9tjba1JmQT3L2du-DWb69s8CLeYwuD4MK0gUyvW926cJX9woiTKwLg4vr_IQfTK17Gz2RdhC4hI0O0WxRc4T4YoJkRWB1QnYPzxOze9eAnK_Cqkp22nWJTJJawqJp_6nxzCZasmoGeQ3VSo344QOH-MZnoG_TfweiU5mfcrtYEE2gqRVFZToqHTHIgprpJ_Ca_sGVtV_B7R6BLIkt67d8ft9ZOumJxW6gxb90b_8FCmdymkU7r4QHdl5m6d_-I9Eh4C7qu8QSV_IO89zgoD0KS7ITA83VKpIKM1VQO0LMn-JCLGNGUAi4pfyerYfBdranLBQld_oBVM47LsAl7lS2raQJfhSXGc2tqtqTNbWL8mMWAuQx2xjvwZtQ_3DA-b4cE4ooSGG4pv3IfBwFVHgQMBBgZWVh0PgVOw1ezHbHj1vtWk2VIq8cxzc9usegYN7nRa8b9ES4ZpcJdF1NynqW4lnxVzzpAEwacE4W_JKx-B0RmIvq8NnSqGgGCm_lnQ2tkr9Fx_otCwrN9m_3VD0WiCBCZD1yHrAlu4J47cltIY6dXdZd1mm2aB2gKj-Qta8Xye0Ivdv_HNpl8vdpkbTXzjUplF5gowI_BkbktFVSTrzY809qqcWZQwB1GUW3sHBKQ6oSCKm2LDbPKXA6FwbiJ9htipwMcEcaB5ssCMgi5E8C7uHRWomu6Hb-8LrC-VssU-PbMFU_LeMxiTUFQwh-7Pdjs_MUnZay8O_3fyoFp9v5HilDYlYdHBviNv10cbEkF-1Y_5Ukrqt3o2390XjliikgkgfthTavVbuHZFadKIjkUIJplY5fgumG0gNdx-W1CUjhpyIaBLjRFbfTz1lO11vG2Wr0xhJTYjdC30ZgEGj9FxDmEeDErTe5OvWTpcczc1KxdXl5yEsaOt29EMuRusSlfXio1cBkVRDQRrwm-F4bmLecsCRuJKJ9ODyR-UTIrQh88mCxG1t5xYlszqoKUIbGBp3dKqmax_P8CnQTj2cAHpF_LHQETkrSS9a5ednuI3AQuHqhy6NS3BoFdSfn3jM3d1vWp4LRPh8cWK8gONzVPlLskseu3Onux-XsDPVTwZzB2jp_7hGRJnv5tMjeXc7MFJCDbn8EziKN4lq4RnD1fevcM-oX_unH2ozCJwUuvaqYTY-uWa8MuPyj0tUHzVsN_mBDhtJP8QZthT4qsIBC4LLR34NFPdsKtXzmWcaTriVLkAuBmWmGp-qjgWW0dWyAMTTPz0eK8yne8oSjkpSNbzhNRyyWdu-UqqAvwBHZyZ-x5pNnY2RW17bEqhsgYsLXeHWQLkf4RAHIzfr4jivCGIK8GtkxixTJ89Tc6MBcKunj7HjgzczPywicEgUHl9Hy5_1CxyyH4JXEdba_BYJrLU71Wa5p9AVy_9tQBK1v80AQwNRY_KfwYVjl8XcIgFTxgSl5P459OEA6ym32ZYMSHlfQc4DkVpePKd3Xwmlx4oio5eIIeX_M29Qbxhn6QKLlJqyk7ZBeRLauO-nL33iBKglX1sEAnQkHwi5H4bso6rixYikf1SiuDdcEIcw5d6haHNXz0LkMp3BFibUdCv-KavRiHTU42Dzympe9HeGnyVOheJHxDoL7j_IR-Ksta_j85PzWw_cMhD3z1xWVBcv1dKmXJO8iOaP35Du3QYEF-hX0nk3olV2J_JwKpYNQrErXzRcaZeS3D7c2zibz9iU4cR_VMkJjtdr742kxIqVKJBIwhxDeD2MSJP-2SR-VBQ1EKHhKFWwrTq5kZfplzlmJ5GSmCzSLVvsQ5usuq6LLlESiq6TxSXIr0Xu3lHvBTdI5j9Bn_R9Wufk6QBnPxRQUEHRxEz-bPsEmKDHTj54oWL7zJoVl3N44vU8LfvxKXgiOf5_U7oZqYlPYHxG8eZC32utxjr0RhR-NKYaOrSJa2o9bq2Sm9TY2C3t0aXSjpXZLVXq-aVHDC8cpfYv8xhtEieXQYQOmSvp7K95sz2d7w7o53hjwTb9SjeSwDRqe_ehTtvPg0vpGBM0OGXuQS_CxGBX-mkMJ945AHoNOCZ3OQmEeUCrA0dyrJejvMyzGjvD7oBET-PCY7mE-5eW5bJaj2XNWcSMn3d9I5MJZLqV5Ybx2tG2CP1WNjwve44iG6AavvReokPvPJ8jtMJc-HHXbvI31DKV2DLSXLr5evMB6PE7DmxM5NckscID-wSwvxIdk7v5r93ymq6Yx7uNteWfgsqgpKuPCCKJck8s5xxOv-FP9gTpzYTsWCxtaP4SUsLVrLudLkPykV3uspEq27meiCJIHnxg9CkGvKL1uS9EN_Am9-STfzgM_03C2Mbe8iJkYy2Z6H6ynqDt3vGDhuQMLygMpxQeyQpEgUSrpD-9iEIQL_LSfQqRVNf-Q5i-N-HveSF-bKiGyidGkEbh_x1mMDlD2qdn2HiBlbXfnxcAUhZfSTG4rML5A45u0N4Z1iWLyUjBab8Hs7brBKsqKjKcISdR-PMLUcVXRLG1QG2ynF09DIF-5oF4wBMScac18WanJrkJUKcr3uPlN2jr6rqbxUvoo_AvDyBWrV4s5TLe7UJ-zlHW-hrjl7lU-FjkLVX7s4Hokib35gX2-lM96AAx_967RX63_aeq_vssKnMFljFhiGFAt0iL99V7MZDMBYO2PIkXewJaovfulTzADPP479It7pixFzjvLIiZZvFEip_XSnzFukmm_D7ww6mynfpkEuncBxM0aTo5Jl1n6Xo5OzdHR4mz_BORIA9B6xKD_wnMI9JLnNsak_w7UpqcbB6VTh_TyL1PoxnKsObLQJ9cwTcnsvi6BLMwqMOdmMW8mc1PRMzTRpBPM3OCFKH1S05A6-bS93jF3XN5_nBu6wEzKnVI-ykfJbheHA1SxoZ6hWyjmUVYZzWftvezCnOP28eN2708u3uEtjvO09wIDc7u3ptCMxm97mO1eFt3hi0fQWA5wT-dQUf5zKYBEYQ6EnkX6xEPqIFCltYlvYJvqqrGMzZXwFK1zfjMDQmWJSVxXZu4GiahYBz1YEnmOmhy0xKnSvN1zHIczjpoVyFOT6WNXV4jbvS1ICX3WnfdaNaQje5rA7-a4r6k9L8z-yyr_N84wAOtcMEwrtWn9YkjGIJUtF9AEi_3_AAl3Dg964BW81URtQa9zeYpoArdcNafy_IM1Q8ezyMf9gKZhJRUwNnMnwyZGm9RLhYhMhF1Y1Fhe_zfcT83wDYEDtCP5PpFp2nwWLyb0siF8R8AGlY4xg34yFWArARwPIVkb5XKtFeALphXis_tSOh_Sji0YvAc2_kwoNk8C4WAWPfYea_3fUHy6jcHRR58xlVeNIB1XWv_rBsAcmouUqfolb1bYLsDRuslL4OrELROeGKCWIOcYw9S1sxaH0j9gvlitBOGZZMivW3u2BZPL3BcSwrIce5at0yYDNu1Ug9QIwihJwg3VoePMaOaEMACRVPg80tDZk49PalxA95SQ-_DYlV_Yc7yXjbxYO2cHL4djKz0GAqPv15L2ZnJVxp0i6s_q3k3K30TULaijnMNEMobBwWClVVnFHYiOGtfE0WNNZqLxOuXLdwKizbB0i8NaZqx-URniDrCXQ5KiRt56OqPwtrl8X3gazLz1Ax2phRro44Hgl5XDSo1l5xEFlm1lu0Z1TMOSCPwJJXycrVU9WREEQ9tcr_d0FQoC8vmfNVXYtTOAaWCdfkLiXESszHGqdcSVaHIJhY2CxRwu0-4JngAWXpO_ivCTxGEtYo7yw4Y5z5VNAvdBFrtnfH8tbkj5omEI0Vy1CJYKlZ1-LSNUGHs9BwUM9ar6f11b8QOrFkMv_699OelDRBeHNXlUBvYV8FN1rcf-gYVkj5lkXYQrg9BdrPoYFh53GS_tUvoLeGCL8dI8hh-ph6ayZTX0BI9HtyE33b5mX2dW0aWKa7N1lkusR2DTFhx06o1VebAqegdmh8USe3xPsBzbOj6UviH4BkfQjv_9zAkIq4WYUwtJi8AlrAsc9PZkeyFfrQlZaLjgiLFNtox7zCRtZHZ4XwBXh-OUAyXvfMtg3zzQyRP2lj-mGEpMHbYqouT0on15wmQ_wrqrzEpHs2yAKVA0Qy0i9MrM2SqA44oTt5DqSc2zEGqht6IkvsWC1jF9zyldgFWWt5SnILi5ifwBbgWYQCJ8M_P-tRCNBJzz_31ZoBQx1xnL1N39eN8jdcDEOpApM67DroR0p4tByPF7rK8bh1DV8MgYREkDCPABE0JJoGFHohixOBDd8R_PhaVMgKjqY7uJruUfYlpHSqfK1J62TtpS5vmqRj75Td55903_6bqchbonSdzEaD-pn3WhQ1I7q7d3yzQy21jJPozQHnyOrSaFhtH-8btNFx9J06yl84P58u7MEUnIF97dlKFoCXt4kxK596GN7x-HhcG1-EbR09aR1j6cFZYlcsAFlncgqOszvekB-q_nyKz2byTIG7nqmfN9dXKeHDwSIYnssbnEHRw-MGQeKkfFbrGg6oeFc35XjVv7ojAmq4Gm419tMaH9intI5zvwRjsp6TXCyDVgXsqUydBU5rIQExZ9u5zakwS_tR8Ts-ED6YbQVFe5PvH_7Ml3GBmbmFBqsxCyVHuDI0PLQFADGB0lPL_-az4JyaBdpDh0mp5wqM8xNnFAMKsLI4qHPex91Q-bDOuft9Scy_s2VieB8uRefAGKcNqVGyO5SwOBE-BVb_PIHH16W5GHxFBOQzKflo-9Dkm7sG6GIAp1Nw6Ut1nhiEVc1f198myRnu1LIUVrvDnNbVMEY6_EHbWgB_J1l7m3d0CAQF7mza2vsZds4tISiMS3DBDuBiLHg1fUgTPYzmU2VWSXCH07dqk3Gxn9Sn3cfEXPfaZNexrHKXmM5_3JT3_OR6GGewCkU0YZVORJ5beUUiJRBuMmBPHYBHWdwG6sa-vQDC-ND8G8HFDhXHFoTi_FAf8KnbZHeAxAJZmO-DuWlkIzH4cfw1J-aFv0kyLhbi0cJvDJlAH5hAqhvxjHvAqZxwNRNPOMWO8BJkFINwUE2c-giJuiu-Ee_RNlJVbDwjxg8KG8f2Z9KTT0wvmsGGBYyepw7V6safu_M-X6MTxW9FPHNfOO2VQIxXlzUq20E7hNB_MhvWUHqk0gDfTkRpnyZQJiq4iU8cn6KwVtJ5ynlV-6plVDfL9neQlgCSVO75dpc-lf7CnYzfxGce9MytnCQ7UiPz-sFrn574dq9PSlV23hIVvEIWr9VareU83Syw5_kYq9UqWeX42MN4ZyAeOCv7RO5BdB0Ib7BWCoLRbpoNWG7lJ_iuu9AM1xN1cJAytxFfLe_qnkkHjIFev_91QJ7CLFNlhS4S3c-09CXl5Fw3F27A6GV4uCGz8KgNZX_AZtFDKoDs2YyEuTr-jitwTlpfFMiLla7J06-p0qm4eYScbO51X6uiAPUmBMV9TKzg3JwlaEGpF6Ij-7Dz4EqLl-_X0btAG3LPFmzbkVqnr_KcdArwZU9GDtFx8D6LOEZTttHudW4044BpayKHBegXg2lk3LPaB-ycnsdIX3zxfUeeUVQ4qPX43616_VYGDFg3mvQqpxhT3uuCmHIRqVz4l2ndRZvGyx8FBoQfPVdDT45yu-TJgUbesHo9DLw1SJ7iUavjyokxONqcVNC9OhMWp86pHb5K3tqm6szmPntF2wdu3Nx4BdKA3npb-MEnB-mTubXyBf7Cu48jw_3Qbb8eF7a729fNV7hsjQKd_J_n3Wr1sHGTyMYATroxaIHDlfPHi2jyMKun9d2Mgkjz2DcpXiXSdRUJZPPJYk8QKv81MS6gj8b91LVMZvYj0Igy4Tyvbd4lgxp_LrSaG1xBCwKyK-oK9s-hwxiQPAlkNI2T-mbTssfZoDBwubccer1qaQjOc1Y_wUnqPgSjOjn5gt9VBcnhM5n1ImhWLtu_4qeGoTZOnqkk18Z0dpWaaGlWj_43Rukt4IPhCIY08oS3richE9NKtZxhmM2WW2SrxvSntPEYKRr2UanmmQotgvUxdt2tLd8wCx7UZKi9nMQMUUceL9v74bazOffSe1LCrzgddjtLsJnGstCZStnHiA_7ByPgQ84_dEoeMJlJ_-XgXl2gGultY-YVaTf9PrSCU9QzJq1FCN0uMhG8ThxruIRRF6ylGlneohgHwD3djAplINZwXpEjgOg94D2I0n3OuqzaurEASBclF7SoykY6joHwB_STgbAvk-EsTJur-9OdBynuk1KslhiXTZ0pdyzb9jhPRtLugwmEqn-Qcf8rEmKxt4L0L4ccndPD9XOFgbOeJovXTgg2c-BzqgU3FLkTthm-mOs3gKtvbEZziP56CnjKrm4oB6S253KCdZLp4eNgOY6JI00fDZ0Nzr8HqTjSaEhJlFabMfxfT5IKYX6E48IvlPAL7ZE5EnFFj8tzkh6UJAWd3tIb8PUaDDW1kxXyIEUUWPWxXx_5kpkTXFF6vw-Kqrx7esu9zDp7EjEtcotFyqBaBzdsPppMKtgx9zkjYT8PhRKQV6DDb9dSDIhaWnWIqnCoSUtG3ZHeQY6FrNlAWD4BS6VBaK4HQdJ_MiJKXevez50WIJjYlVG6SAXAzlswG-RrwY6cOLO01QEWkqcTjShbg20FzBId_K6VGCvZb7jS6KED-NEt2UP-cneKCGxGfB61ReP1yaoO2hPm-cnuYONcAkgVIEDL5JWwXCf3dXuZZ5XdKtWmqVGFk-vYRXa9pu3A7nm2nUUM3m9pRctdeXOm6tD2zLv21MkWZjich6gFshHo3Sq0jiYuvnLPMwFi4vhOAKgStzk_VSv53y4BWfKYRVLL2GPLonz8bBeYDqKQnFt1waVZKcv8D_x0gnyV6HabhVT0KgpcjGFDoYYHhN4PAA8RBrI0i0MCAZJt9uOMwb2WpqAd7GjTHz4FtY9MVyGJhgx8iLMHUVUMftjpx9gfCaLyMTWl0veD9Ubdwkm9bycYgsJIYdy--d1lmJIjI_uSylPwsFI3qdArWyJr4UGyJufimmmCdlysXk20aarHtDTX14ZA_UIr8BDsT9ziEkJZ1VZZCmizTLDmguS3mA7VwiIVCHmjm3UcvQi7geejru3zdgZwO_7d40Zpz2fi_LLHKU2XNaSpG8VncNS_JP15NRgEhyMnpBZBusLTlFVUWg5ALoWNYEcvQVKy9Pp40fCkn0tyFzKgtNBLv2RQafvNtRkk0m0DC9Iy9dKxs530ANdmEZ3ZyembSEyklpVK0jJ1NZz2yeTqDFCSD8_lnqiM09MfEVSFLkOQ6dqaLYCoGTMAE_EyzwVOgU3LkMepMcGT5RlUcaqhqQQll1aXsUtkSQctvr1cBxkqZ5J16FzMrlF-NFSI8IVBa5SEq2CUUwxI6InEHiyn5ObHGn3tBvcMpidxRwSSe1xhaY1gVF_yDcl0IEfRG1C5PJOaUcW8EdaD-lTzRmwkIC7hWBKSTgIRoBBqF1oI3Fbro1yOGkG-ZHkk9LdiozADJv88JOl6LxfhmBasuggKtbLhemIzFBJsEuh3j14a9d5cdg6BDxKikZ4OFP7q5Krk-Ee5Y99gURQ11CSeY2OQame45naK0MTnW5EvhalZ3VzGM0HN1R3g7HdyD5VsZmjcV4AdyUV1n33mjjfZ-BrO7nhzE2yU39W5PB5rv4vKQSbxDZSIebPLZqu2sTPaVj-qTQItMeI1H1ZDWxSu38TQTc-H_BZzQ6Ubzk0fM6juLvjyxQ-fxCuPPzfNtbS82P_oQ9IDhWD3Q8zp8u_ySICJJGVRAq5phqpDYH-4Gk9IISrokh_qyl7UQbfeR8XhdhSMcaJOeppQ2Sdt113E0TooyZKqrH9WMuoi9A3VDIm3TVfJqWJBxt7xAOIeLLHBv7FMRKFPDMxsuRVtZoe65IFjIUeD66SE4mVYxUSKi654kcrZkNkQAPN-csEjw3GHUoWkm5wPcaljTf2ZQv-utNKNUL7Vs3OUJt8M5fB5WQUQiBd3C4Jgdh9c-F72rMqpZULGvhJEidqpU-Qch0RY0L9oX5jn75uulzgzFajZ239ILWGcJOY4GQp8GfWtegkJ8WAmAG5tDGCy8vrxQ4acgP7cmRxubYyhFR0TME6mkA3iFFFn4_9PRMZ37VjZHD6qIPxgwpvkqF_HF5nZcudafbJeci2MWVH3LT4fVfGq7FRjWEAkP_2C6Bf56gJFEILKG2CQMRjnos4HEvkQvrjfsS-x6zOWgo7syasEZgQUUIG8wYSnJRPVYAzkhu9ID2OH6p1bfqxPMo2-TTLbEJe2vak0sTb1q9rjkx3ENFQe56Jrm9Kwg1oiokG0-I47JvZ4bGMfAu2oQvtRatizb_2I_GS1isEg69HVQhOcUz7t3bifzx0VjY55kdwC6mcypy8UJujlBuZa-uWT0aNEt_xL9R5A7pJBhCdKn0MNvw-v3J3gSjOrxLlRMiPhSaPIsR21kVOVL5RxbYcK19igRGLd2WdP34PbRS5OKf1L3-KfPko2ae7p_cUzRfG7ANLPrTK3PWt5m94uB1RoF6bp-b8DTPDf0vT2m9EapU6erueq_PsfVZiNBopNHSgVUsPnNm4q4-lSLPednz-N4h3oFswiyrRovzXeUIJY-uKbdxHYNngq4-wXLOc5c2uJFWDqVwMUIoaluKucUB64-QtDt8ro-UA6NWg73xDFxiEElfYo2K4QCEtr70MspqjFjTnhfLZI1pLJcOo3VeoWr-cZi1N7SGfPhkq85gO3WsKjG46x_7umkbq36TZXv5wbuGTxGBqRAnHFCppf0_8cBet_n82uXv4Dgv_0rNhSm6CAwZJ8aZsWJNf1yA9vcO_t9_I6WliukM7HOwMTDwY4P9GuJhRNuOX6dhmFf7ZLM8enaJb4EdoCta8B7dh7GQkXR5daiMVts4nP-GBRfkq2W9ygrnCCP1Mqbk2RZE-0-gMLCYJlcpmzlXprZh7rkdj_t24y04awGkMTwSC-967RbWdKLzP_qXfKDY6CE2S-mmXlvFc6aEmBEbWFIW3zOomtaBPFbhTcI_ukZ9Hj2iSTckAOuD_zvxs7I_Er4O1NrEq4Yf2_IZbuQeQqmQV7VUCVKwFjXoYiTP6aLEkkncDO1ksDAp-Yx5j1pPg_0v4hafrMdcYqpbFRYla9RNnGp7cojAhl2f-Vk5YjmHBGR-BiUS2RdGMKN0MXKa0LDydy-Dr8NaRbMx35fggPQKunJrMiEU1saTnqa-NDOK5fc4MxFyGyBWjW_3ss4R1gTqfKUUw6ScLh-Q-5peG3TFhs0wWyc9fxu-VevlPXUKMkxw5TcNnoeVqidIR6L7TdZ-2blfN-7a6ibFbqJoE7bmIqZ9LGgQK7fmcpi14Av018sefzEqJsVbwOF_Ad0SfidKPjvY_OzHfOwUtuhNQTpEJqgvQmwWmEB2QmLVayed7kGjzxcNK2I3VTea5n7vXtwgrG4CX24p7YzOgz-F90fZUiR1SX7Ubn0laVzO0uns54vzdYT3L2M7vKXtphSgOjwTgZBe7MLzmKCCkpgfvIG617veQOanZ5enXn9b5xMbvrg92l9yFaZw08OM26qCVY2L0pFsS0Ru_s3NBHj9gQZ27uKGw4vKIkWYO10fU-Rtodi2ctnZ_uIHze9nZ7ogHJTj5gRHkdEntPDxVaU9b447ag1HM3YZ24Bq4lbXEESRUw5Ent1InnvRRuyM2V5WVUrInFOyBglDJRzoqaghGWGuKn72t_tMIl-lRXVhVpNvHCqWIE7LUmJ9EJSbvL0UTHF-u0u-cIVCm862xISwhdWo1_4X7l-06ZQvyRAgtvMbyYSns5eMxTKBDDC2GvUUvxAl45e7Jr_kAmz7dbmUCRdLeetfTd7u8hWcoeX4Tz2B_Or_UVbb8o-pzBF3UBlgR9ZMBC_ngNDmr1BXoziihpNVpsmrisMWcMGsnbbgHWshSXD3q04G28KfMZmrbO8MPEIxS_8zsjd2E8xGr7SBkgUweehpkufzKvfW21o3K7yaiZ2D_-vVb4xsYkTxcNnL665UsUdFDpI380pYHe1VvCYRSDfV-USWJbTn3dU6ykECZjgucLKWRGX5W_1at0RYrz9LqX94IdOKs6I87_v0jGc8nD1Oig26YuMChrFvm53kSxwEX-mDQkp2oA1ATKt26QUhxA_BaHlIZ_h0NMrIo8MQnjCVVCSog2jlH19YJBP3VYompk_ISYaXS6NYn-8awCKkhfDW36batfMJGMzJjuaoCwNWgA7ynlTHG0_w2bWxFTYoAcSkVBcTYkSCIdTnQ9n6d1LD1KAasAxTddDe5UZ772SeHoyaBiEM0FlYoztLWy3dE7ZZEas5yeyYwwY3SuvmTj0bhX8-6eEiRa8ZznnIh1eJc32grkXPeeSmTtZjj-T0HvnDzYi2hYBKlGST6vM7jLoncQNARNJ0eAVBfctCko-qO9JiwDC_d9-s3smNYNCnVf6-e5yDU6wAN5L9ZjpaPccIV875TGZkFyvf_tj_NhahxA7rszAcwNwG100oJkpvaqXsRKyCicEbwCxh8KE5SxaeraREvGPfDrO188wp61Nor66ibDVv0-CZFNyaJMfKXoTmfsrbQmTw9Jtnx7fIkvYrkYmBDTxMSnb6HgG754Oq392sx7QgNVLbuEWnSyMK22cz24nYkVF8vMihO4KSjCN-O_6Pd3S9dete1VDHYXfUXPgoJzc9YFAzcAVw-kCHLDEfsq5dP4ufVSh-i_uHmzWx7w2qMYzc3-pqMhRbAq-deldGbclsuQOzFgp8iMD9mEpqwpiR6by8CYIRdSm74L-bvkb6edQ5XwUvLSdmEKDBnGMs9B5G7IIQN09enY9WiIzCczr7jrN3KdH_J-sHbVJGS1a0wHyaeSd0eVlL6xWTeEE2EZxnDMgD_hclzp0jCy6JbJHCsN9fIiD07D7CwuP8ulfLn7UVE4bBvkNuZytleHwkh76tAC3_tOEf5J6Ew6tGkKDyitviQ-MEkfwXvah3CljFUWNUokez2wUQGPEaZgMwH53FYaY25Y3QbVavq09dEidYzerAuw1cy37LUyI5G__Oqmxy5EnTM_0R-pN8QW0Q4yClm9dAexf3O0LQcOKyRigS4BIHW7aQKGEZCWmn-pQPytHll2kjL0Nw6QAW3d5mggmXjUpqj28NZeWicJxLDvBNQD5NepckPL8bLfREb6Iarp0FFcMcss31nni_96rD1ZtoWeCDitq6OE2LNTfuljikU-XKZRFVUtyt7G-Ix4_Yu5LJgQrNTkQVyjoYvHh9jdt8Q5rsW5Nbp5HKldFPaI0POqi5jou0--lehh3EAi3QLMDErYSth3TQz7-_sjf7KpDp5iwF3UwQ_WBfIzkFQAko-Yu2tL8y3_j1uOD-_bBvVNzOjXYPZtb4m2w9tw_UmFzSaLmTZ_35s0O2JX4-3-WsJEzbEWeVGT-Q9DVpANE0V2EMGZqbBNNG6xQmDbaAC11WxH2nddxaQ6TPr2EfoqraHmJkqj4TQnICMwE4NyP2xM7y1FSFJPAxUojVocv-l1ui3Ihbts__xzd9z4SPeDZbTk1hXG9zqulm4QhO8iFvnkV3kUsHFSBD_tKmqGKHkDPMedIy5TgnDMik3wGvnigX0K_ECj_QEHwGzUGgMYOnwN-weXsiqasiOf9OX9Bek_NFLPtL-ryh2G6v4R_2iQX-_R0aeWd4FImcuFoha7hUjNnsgRTrsgZQzb786Q8pkVtg_zGWugj_mJg5dFyDM-3DC7njoLLVDuo_c3Pq1dEUVN00id5gmzmNZBVTKBGKowc4E9QXYoyBtCyxMNCaKIowOOxJGuL2dZqJxDcHPISoyEv-L3LYPKALycRtP3dDi539IiKyWRKLrNRAxP4q0PZRDYzbE0p3aB5m9-ZHO64NEHIcyi6LlFQ2Qd8B95UfPlo9oYhs4Syg76lOinTGo5ZJr7hx6KAj6FUGCLTvXen3pzQto2UVMc4lFZZ9MSNckNimZ3lnV0DphPBa2v1Kl19r2MfKesUAW4_xjxCeX03QO_x_l0cZ9qjEM50Mt1NfeiAYnAOCAebze_IH-cXUxfOQt4mbj0AALHykwY0ECPTH0nlNqwdkPHEydNQeCXu0efURLlC6_5AjBanFSUdUzYCukVa56D73Dssvv91LWk7BmrMjb6HEyNBqv79JzkNy1_Q5lnMh-UA90vO_44TwmO5_KUEJZKM5KQoHBbCOjfsHwEsFbMPTG54d7HrGPtoWhhYA0OjjqBmsLML0q2ZpzY5f_sKbHoBiDx0uUMUpWJeSbx3wpsOZd_qWIXzNfGDhtd59rOLoQjVbyeL7jHCNZLXb8OZHoA67KDDOefWhWLd19ZA1jDxXGSsOzDDV5m4Uratajq8LFeIJgThEytLoKXfoVsnB26L5gq7UJ2f2fgNzuyfxQfKGBfYRMxHVjlQxDfE3l_2TqozRJ4pW7S0MjNb6v3XMT8xdF-ORtxg5-XDJRhzF5tFP7vDUxoe93sxmmoMakdyZrNl7apJ0DGE1XE3ag-3IE4swdmsERNe1zBXfZ9prU2grgJRQVu10pYTqlRHDlI8ETF-U4jmd4Wbf-ALr2muIz9nGjtuH_Rp1hxUkROvJkB3EUuPKDv6kutefN5nWAA3NjLYnwf5beIVBtJ4m0tydfGq99XS7RVZZr3vw3gynQJZJmeIu95WhdIyIUx_RQBI3oWrJeYidESTH-ZHrMuM59atjZmSxKPvYL-M9nRpmP7fT0dIsEnJws6TjqhqSEvLzJqL2ROZ_quLksRhJgu7PY7aMdoc3gLIHdC1P3Hx87mfB7y9m0K2gcun5DunhEU2gI3TC9XTkdr1qu_MaLs7v8d-kSlH6WHq4EDG2bbHJmtE764gEO8x7tGoy7CjWncQXWG0q9cuBRpk68tiQtokyZPK_tQsXKlh3An3Agwr9JN4VNX9oI6jV4lhHQBJpSUeVCGmJXk6et735glY1mc8I6qe30-z2REx7PJFnnmifAmYqI7_PPRFT_t96LrW3KZioO3sDJbB6BwX2u49a4OK_PK1hxkbK2AxMkIoWHYyxqIAv__3KftfS6Z5ibA4EzCxtx0hB9Grzllvl9JQCkwUBZRMlfa4QNVHzTgJY4_Q06-wdOQyBgkIXOPKr0t_gVbkSHFm7GziJKQ6oqS-VRTokjDvUjq7XaHybMG75EtGeF7N7z5bakyRRxOTsokSHqv_Krgbbu4886moy6flrv2a4Zd2JMSA0b1LhpbiqS-GlyH7h801jpphmpUecu_ojouabgMNLKhS9T0VvR3MYaSnH0wUp0fkQxaUftOWV0dYAi7Q0-dgg_PGs_3GNar9pVJQeFEcoEpwHgWfvtWpql07tkA9gcM6VBwP8e3eEKp7pIli_utyktZ-kBiTq_0BbkvZ3A8lOrp1cmz7WkF_8q8MN83jDpVfbtJEE-RhhlqG0hx8VoVtlkiHa5rj9sKZXgF1s8ed9O9_nucSqks__wcXJXAFQqg1YCj-_fTOOSg8YsoE1tiR_Wwb6eTqKg0Zze0ZMzrfEgL3g2qvY2l4t6fsezEeMH4cbKWS2osGFlPnaVTdDak5qtLiQkoXUm2VmhBwvjDzxJBrC6t_KC_PejEh7zbn0f3Rrk_KYKDcaG6tWKtsMqwrfqoulE448jCouBmVq3UD8gksU2mN0x7Ha2-83bPhr6G36gIZ3WYKyjZsPks2xvWsFWRb2bYeJKUlbQrpj0A_KUAVYr1XzDrxC09ieIzbRIiJS0Yj9aT8XiNbfXqIYgsb1A75j7vqILRvwwJdbQUWQCIGplHhcVF8nIz1TtTA9em_iyO_7-DqMBC90r5lcSHMnymsHGPSPaID2opPztB0AUcwEgPZ9e1c6gefhy7v2FVMnxswI0G1vb_poiR3XrnziMnZUSUamSV_nWmPZNZaJLA4ve8K_r0GKjnEvudsXUDeYBPgOVJ65ZQB_6jx-9I33o4xdQgE4LYhD5_qcDpZmy7nNW7BRe8VfuqknWF4yVU6k7tUIjQCvU82IKcerUh5dldWG6OvXRMxahiAtdnLTv_lGo2MOKHl17-YoEEIoWzRgFnu_LDYBTQ5ihaDcLbfEj4XiI6Q0Wlo15avFLMtQX5q1puwMO5nZ2UhXRJMMDCiPUuoYrLq4ZhaBPJwBi-TEdPa8xoh95BCkPW-q52V6CtaCEQaU9Ci5j8ANq1a_hqdipdR31eCLY_-Bjs2o5KkcCGraouNEgB2ANPAdB9258OGsc7SxZ9KUALSzMTPKRJrre4bfIAudgftakH1hJfWA4bdYf3sPgnj-9f1DQdJM5NDn4cDQvRw2NMVlmPFIeylEteNsyf7YRyq12FFPKp17nlga6hTEeLdgAd6rP2QG5vvvW2GQ6w3QijKdzJ9rasOVAokatcriCI3Di_o3gsFYHvUK9A4gM-IclNTcUvPFix3oXJ79z-VTNzbgHSoDYX0HRK3Q0LJwXcqj36w477uodJ4TUwXMjYhRdG1gKFkx9jEhsFA_x3ul534U4vzu3MsQxCZXYo6S6VoxiOUOJ1nyssmj7xg2PMWc19l18a_Q_U4oPXFp6rOAmrVgJiIvgrBgSr7V0qDKVOvM4H11bu8vX8rXTOomyGA2lKKCDaQzCuVemF92CsQbNWL6v7ERgjpRb-V2u6PK0J55vchkAk1ZwWtHaFzEYGoAXk1s5AjJCDpiPMFAJoUmZ5CsiHGgXrPXl1muWo-IVKeEOXscayp7bZsARwFYQI2B7QXRECinIr7r1k-fP7ZFFOjoNflSECk7Q9M0YZmk_EYR4WgZw9Poenmn86YCjAV1cttuCt23oBQhiXZYyUxHeDt2BHEk4bAcMTirYLVgni279FBSad_vkZJE3S8rN-pQjENRdQAj-rVOuVj8v73tMDjS1hwY-lJKGBmliqJmY6drpDIJMtC0PAe8rjQ_5sxnBkIFZk10FboY2_VV5roUC6h5Qb1EYUwkDU1SQ3DYvB-wfaMdYv9K5AjlZaKQz2jE5RPLD32nbzSb-rsOhyF0lVeVDWiK0DWq6fMBFZ29Q-9eeSmpKQ6unD2-YYrti8h1HJtVutxwSwO3j_hB9P7ao9DPwc3gsKSteqvdpRIuZrFuB8paJ8XL_sakfBeWYy7WAGzGKH4ilrVYCBWdYHj0PKE3s-_VKzgQPx0UERYjGUUCNBlvX3aZTeo_FI_4qCGTtUmddlz3HFUMUFscNsnx18SWb_F2kSshRNoTQ_7XFa0beSCELjId48akCSVN8E2iJYriBhVRIOtY4UiTUZJOFNIFTPfYXCnggRjdk8N3uoHyDXIl44bYrBbfCcsw3UeVJ8-1PVLqdO9ohyqtRRVLL-BRmE2wSN0dq_ce_6fLl3s0ZjU1fzHlIH9oIMoq0zIX3Kq_p97nm1OKCsU-j68H5TmRD48_aHZvSAPwERVlM-w40ilhDGb1pmcFEyfX2DZ0WUCU2BWkGZtN-NWrmCeIUpCx9qW400HMv3pUTmT3yGO84avxQBL8y2p6-fJWsApyuY-szdQQ84SzqqidqWSzbEVvnAy-lUYSTgz3Nw_K9jDDBB3zEIsXnNRUGAopUKoJ5t6z0otAg9yJ422Ne4zOEf4DpSsngPGAaK-UNY1UfFapId8X1Y1JeCENHRk0vCWyjlhrdsCXlB7QvgXrG-Tyt0N8IEsP1pBkjCT-I-sAEyZ9vGC7lnLW5RnMgueN7iwDBqZWIgyB6Bo0uQunaRu1M4uOti_SVSeZJ6jxyEXM-XAYQK8TXp7ohlPAbW0DnLXRBIa3GKBM7I_WSmQkZpvGtY-VI2UEEWgDsFnDyfRzzsF_okHzbe4ia6L2Fv1eJMSrgI2K9KFEgb0_3bPV2A0U8dkaDhjTUATO_Pbk8o370i_-cQ9OMCY8Ro0QkGdeHAJtCwpfhAZQMEmKtsnFxwBwNYsh45iKVB4aguF86E7cDoSDxk3VEm4f9GzDJtR07BiCcMK8rlC5hKfD1deoUMW_KRuZG2f7XhegeG6o2dN0xRIY5PDLUTCuowpSSE8PW3az-X4BpolawHJyhxhOvCHhzI2JZ9TGw0wnc2tz3TW8u2pZZBQE97P8FvrtcQkBNHX-evzhnDhAbd8WKRlNk7qVpZkL7OlNRoBIqjVoAQstw547ox6C_GgLyKcEu16dgrPVv_fj7Y5hOO7Hqha7NHWWiYcxpY37J01PN0U75cqphqUdObyioFrFHLCE6GFhWBAxORAa6lSEi5DpPPlAlsR4daiEKGCfzBPfIH_9WejXWKl2RosGhZu1jAzX3-d6Y4TRXDQGGIuIa1MeiPurcsLZfZbtlRWFI35dq7WACYoUg1MBH-ULyRoZRmp9p2b2nsU0bVhCRUAZfIuZs-AOGfR35KCR3EGeWWWyZcim1zdI_4ZwJjKcM_r-nnl6HQBg4oLShdvCFX_C5AUSTmMQ8TbWbEMP4zExSi6Ou5GxEU5PLPVP83oZq8imcB1OZoCYB7EFgE4KuTdhreCUdrH5fChaS6JbXwEAhuQsHFP67ygcQIEMeDgxddeYNd5QW1pINXBB7ADk_WQ9pYTlZ3dWojVKF9stPWnTYgy22DeAStDTFIYN33OyYk8CQrDcxIhlbUlt4UO3Gy-r9X6fNyQrpb9KQq7WzhFELcWB01TMj8RzO-1oAlVqeu9XUSob7oOztHiyL9GSPeFw88GCkWmXrYGWHpZ4KcCOdjPsbj0T0l8JA9PT-OF_BEjVw1BL-OKZSzf8ikTPbGSY3xYuhiKIpMqyW-kTkwOGfujRGmK6gqqju1Ncncy5DNju51PVQ0u1kv0P3lewMDxJpyaErrML8p4pbMDjadoK5iBph1zzfYPraNYIQrOMSeQG7Sv96trZmeSZLW0eZdth7L70buEULfv1tBINbCEhszCv8LfWflcPo8eApdxmfquFafZYH7-QVlwhENCIWBophKEit6KpnsehSdZXNggD_UiwhtztJXXT3hskEj9bQjDX9uEvqkOliGvZ8Gp8e68RCLoxDrf7L9b52mFjggThT_dClfohd5mvPDt2KvLp3dCzVoOmeQpa0RbGJByOOX_wpxLxy0I8SbzEqCA5yoPbqwvE7UrnRiD9yy7ToB5_0rv2UJFM1oNb-A0p9vbCKkIeSx-mruyBzDIoqnr3lukohay1FFavpQQv5OBXMJEC0CBmSSShjUHzniUOOb1xxxLnPxeXPtaKXN8WBghEvilvM0Z_b3348pOnV-esb9ONM3Ko8ruOuakYhiuB1QtZ367m_5uGYOG3Gxd9jg1IKwtIN6Ymy46qoIkQWx_oc8LUmmI1WM_clU4IiFZdjLKDdU5AkdywVJu1MrJS7H_jExvzCgxGEi0I3AZBHv4nqqx6hVN45_mgtDrwOXPX3GVPatjGzClRhLBozO5rJyb9nhUOg3Ru1yqXLQVeKQcsITLW7pAKFvgxjYoZMzmaaUDcmwLyKsEf0Y0KCcMUc5eHqia9t_7HO5z201q1iYUvNzC_da1jB-282bhiEwvC4CU-SrUq78WjSj6nOTkxXUspp4ce7U1dPSj_biTsSFYhRCGA4V099raKxMivLqznTX8D0LKt5hAiOtcdLa7qzUujzOqdP4oDWSNjSaPLFa43G3Ie8vyj5yDUNGjn9G_qSi67WZZ2GbgkLkepW17veg42T9Q0VpjgJGmet1mKOCWxm0K1xSmnu6hff4T-HtzD4W1OyFOPgAI3THJVSxGgKuVMd-qR5MVTIBeHT4gyPEs9KZCo7Yk8TQu1_jlMF4hS6zrppybs0-7i-mYaCszRcSpJvzAC5XcyAoM9GSpseIVgCYCBg-O7A-njsAtmu__GYutO2DY6kp057t62xZ-4SxFa-cWL76GnloMTcrzrho0MO8l_j8VajQNAJ0cnuLsAG7E2wVkHGX2V2_x17awGzWhOm-NylJTnA0lKl4eqUW52Yvob_lUGJYldcezwgf9ps-2s0Qkltb9KgIP4ozxkCWIIvypCunBVlxlHm8p0tN5OV1yhUO8QiGyPt2aQF71TzolVJprXkkqnujPADzqOshfqzUoVNZbIg9H-LEAH0Y2lL30CPHpOS5Fy4HlkYrt2MbhHh1XNPBMgEzaJ4ox11AypW5zIVT-daH_k_XEubAqpyXb92Wso0J23CujQMceRVAIcWIxqNFrrU3PA6a-2eOOOzyhR1hYk5iUS_KODrxMYDjhdUCzixpyfQe0MT09vEGm9jaknOOeV3PNEbwK986sWhOCNmagGSb6NMu_MTvEiCU5oz0Tvp5KMXVxmqo8CaOgPJKWumc1NIHMoIBCbNBQbHQC6Gurd_eTyiA0gEQ_Mm0LqHj49RKrK7B_IgM_k6BjPZnJFA-JHr-BQb5XcQTSztb2bB3ioZtuyTpmix9PM4l3Taxga4Ys4M73iHa6OewR0QFW-yg-RyC-bSzro2mxObpX6j-Aug54qf6ADk3lY9RoBNJLC3I4IS7FSYUD4StgruDK6vKhHqlGCWNZ1evGWKwUMi5ef8Bzs781U1MrZwtwNzXqofXrfiUjsIgpjM6ooyNlQmAb1k00wEZIc9bozDpLq4J7N_UkavpJC5DC1mFG225X3teluWadCllsY_zNKAhXP3niiWBEL88xYHGq3xTTO-ovBwV_W07O_Uxm3HpSdDCLq94yEibK4wwo7FQC210mGNGHOpw5s3P-EkqDQTUeS0DZxnsVNdXzrqIZ8AlanwH4c3AIHhueqwydCI0ZD4fYHEuXr-Yc-orwxSUrqU9iawYkkXLTPMG-mEMvbvrHCQgqUdDFc7wUm8rpyj1i5WUa_WBdG6pB-AJSutw_zqfWLX_gTj2zwqcgegGORZ7tVdEa9hwK30Xk-dmaPJYi-mFmueNpUz30YYuDmo8nKI6pS8i9mmCNhg2WMIKB9NKHU5CJuqEm93_DxNrXUNi5DKWfcWBmT8Q5NzK_90Im5in6p21SIzTFVKIDmi0i2WG-bQ8JGfhhLKUUmFHT5LDt1HsYBi40znNEaDnYoneHbOhZxR1cQcGzvZvLl-PCvHDbtArMZHm0SEZvpLh6mWaauhvPPFEON7KtqvMmNwee64dggv_eJ5XWd80RupPUNDgvZX8JF0RcnM3ycXXJbciW-kmInACt6Iz-gptXfZGn1X9uEcXQFpFRRcFKF50QRLjdbYFxrf0jBrEgo6pxio0dJzKH4vh9lAx2zdeHLt6b_OHMJfdrBwjm1B_FH9ySD-uFbZI__OMdtWpYpLr7H3vP03Njt9OQ8TPNbhWxkmDdXBtYjyBzqCbtSfLhVj-4AnYZYGVO33FhzByNpRFUf_fWndBOfuxigLlAaE-DMgXkhF4zWKgF7orT1Do4lADtw1z2Ap-Azaz-UOLzfS4wv_cXuhcdZnjJDOyvMLrkFornxV6vlsEJUC3RQ715bTc5tMGVr-q-K4bn5IVPbG83xkR9X6ODUfMbYFftqnUyEfajM3ttDn8O2vetS_3DjktsrcEXhi8BIl0xlvwZF5DBfjo3aCNDp9_QHhMkVtFlzubFLfZcVwil7FnlzRLZF4-rNXnH4Xp9cJhN7fOtoBoLScPnAAOX_cA46LK4JOtnhyFOWSbRNXl6qD3gU9ZXhPkP29yPrG9KduVbc-yJQWDwGA3_vycaX6I1aq2yfghEnhAqpL6CwpzkQG2VPpuVzSWyknK1h9iX48CG-qsA5eubtUbR0GhvB4zjCGmnpdq2guyRBaUJNURiwURmhhBOrVi_KXh4esrhk8mbgrTGhbt-qC3MGagrmAFmqbK2lzYFohGPtWclnY_wNBaPOw-MAUlhdQwV2eIxNOCJfg7nss6KECOE9St8GK6iAvQFQqRNqRP7h5EEvBrOJ7diKmj4VvyOGMoTfaw5betNCBf0W9LFmwPTyVXxPmNV0D4mZzXrOlVAXSjfaGk2hNPLeyfuNG_PcK0R1_oUzqxxMdGJI2iOUR6Gc8ZnG2iuc9TskOQIrYzkId3M7kLPSB1UIkDqP_2H4-DNy0GMylOWzxHNnJtbTMch40Vdg9hqIM8KUfdMnQFUcyn_hM5GxU4Rexhdwkbk5Cibi_SJK6xjBpdpW-GW_uJl_o8t0M22R_K7xDvLNQMgfUyca6kTMtuHPPz7i-sNov2ao4aZ76kPsczoeiVj47k05lMaeSMBKAOFvDbmDl2YHUxF_Rcjj0wx39lo1XwlQgnIOe8lxAT-DtI2CHTE48jHHVIL1mouvYiL69Md-9hPH5SQrV5OBRSIHfxm7m62j8V7rRpUJgoDhVFjHP8Kcq-6cMlCaRhcxmmqO0vkUe6zULT-ijUe2ivA3PkqHGYBW0QN6a6B45Ig8IDjvGRUqRgV7HqkyuDqmfg_798xiBskVuu7ZK4ThtOZPt_wWGn5OcVTIh8FKfxOHDeDP5l-CNeC2mlXkOnxpfm4Y4yBgQLq6MFBgwfsKUNBaIT99LuSb-_GisFHRm_BbujzydutQwvRfGEZ7EbluyWGUpTCEgoTOzSBFQxxPD3gVFWOGTtsmgWHtZEUwwYBtkezRnN0glysIWiKJ_y6UCYDYhLL0E-9DiIpMiaCV66BjbG7LovNXo8NzkCbFhPVinwjL6YozPXZZ785I6INKJM7Ki5erq2IhaYnmJ5JkiJELeheSoPw_WePoRPf_QcGxeh9mjtMNPZbeCayjuA4LKvUNwDg9JxnqyRWFEm9seQO_Nnibz3LCVf1VzpLnt7Nl_id4z8j7I2mAk3HoMDN2_ay7inJDlGw3wPpJoq79rU7ICXW_MxxfoFMRErKG2kGINmY5TcxD6UwS0LJPiPy6MUd2CvmMUv3sJvZ7RlP3IFKwiWNGn38rV3BFzeIt6faZ6ly68N46qMU66S36wb0xI7ovl0ILbzo72HUkYbyFiCFgRwTKfZLr-GLb17k1cmGheOma1d72yyEdLfSTsKKIQ-4cIsz4upoDdGvSsAgTRFUjtfLeY9atYvug7lldVsOazlB4eP10faSJs90uzr2RfoT3AVOV2SwluLhjl3BHmCuY5n7-a7Rwwe9mW9LW6cZFp-KIFoTlhco2egbAOWtP0Wgvf8AMJ6le1FhPKzOKX5fMwwk5C6BLh-GeFfVPsvZwQSBI6u9D8VxY6jTq17vAjF8XbioWkPeUy_mruHdpxDTUuz6P8TBKSWpJgir8srt2elA90ZXSfWSXQIIKKSc9vCcmCzw3e-GqJExb5losla_MDDY8rB9olC7xGo7KlKkppw_1F2wDdIjOoUcO6wLLKfEFd-pRe1mwk-OtghZzpqAZ7G8_2tbMf0oaXQX_CBvx4nM5gdtW4NxAh57ADL5STgT8CQZodhTzoycdOtw3pxgRNqirKz5Jis-WDxwgrN9qUiVTPp9Z4YVE9P_lB6dpHiKTC8TMnRDbdj4SNANIJi0fgyoUsMDHYTV0QNWAfmoGDwAiP3JDkeEkJY5W8-gmGx8iFFwdr5whK8zpLEv-OW8REBJPlTwE0M6kqJII3Ozy2Vv_YZqlASGdN9ws2JHANUhUgtP2ZN-n4Ma8JV7snjM11QQSeQ-YqYBqMJ1vSRsTGEoqD7QU7aRgFqUKZ6usSegYVL4rhEw8gpNbrydnPFyCSjb3Vi_DIEUhFJVh2hOO_D4Mo1nCUKTOFYW6TBkMs398sDgxZE9Z4OQHk867yIu6o3ooUuWKdshcp5l1QFzmVATe4I8t0xCgVTtEFu0nU3Gg4Nad17N5bDNr4NcKIsMhU3u26gA84_CP67Hj3FPW5M8k4_YEUjsHMELI0xRPQekpdRV9LAmn9HOpIPimxrcTfy_ejzS82iNSzJlnVXfTfDVu8zirViUkuFdgtKtI4P9QcWwcL1sM-zQuaPLEQ-ZZuGkIbGVbXy2K7dGyIiLcdnmwO7-J2esto_kNIb-DiNzBXRI8dR_fSiWc-KQn_3qI2zRbfLu1COXSo8LRNbq6LhgjgP4ztTOvy1ZZnLeIGW9GOWwuwrfSSMi6-yHAMTh4bGAep9xrJNyuyIo54tMe0mQ6ONYmVmG5sSlLwkcvK6Vyp92gfsPhsahSb10X7JdCG6LUl8dKlVAtA5H-O3Zr2Et6vPLX2qSZhmg_MV8qXyYzR5EndX5PNCs1QcyO6MKlNyoPw8EngnL15O5LSjqv2ij-eM9UtLLCU_BaZDsJSI3nqLZ6q6fGgkRN2o7gqUDH6C4kAKmNFN8bMQ88kg3ymL2T9tSGBEl3GWhuRn4zZFrzN4mhgXNssvWok1WOSMrruKynAZPMjVrfIh--SYliYMJ5QbFJKnKOKUPf0J8HCoE5axhqOfAdiEfq9aiufiGdzRo4JzHe60CSLiNu0aUEwX86kCQ_MdBi_142tSdKO12KwDIqAoF1SXvMbm4OSm2ibdqtwdBYJw0qUPbnQLwK_D-l0PIjS0gbOrJQcLKA2K1KcsZZdFJrtquwPso-3wkRC-aR1uR_EDh6BGbRImllVcB8_ozLD3f0djItPzAjSG_KJsC6KHMxaJtXeeK35h01J-LQ3N-dZ9uW3ESOP4vIXsaCaQ14tA9ltWl05zqrUyh9Vn4Ly3A-QWOq3oG1KMRPWZKvs04BO-kkH7WH4El8pXAVvTFh4gxNicWExUttxzoIiyPfojXgwvHktZmJL4eaIoef0XXtP36v1zDM0bHC9yuCqnvIHUQZehwvDZA0RtNfA8S7WY9qzwFkwdK6b7JAz7r_oTRTl7XAQ1w_t3eO1RyUIGMMNk7w1tTJBt-vdENeQ3tBwbTOGbLUlOCPQ9udYhJsSR6XvvrUYZO9C4DqEkUcNmmSbaB_ix_svA0M4zwPfU1Mntv3tq0OT-EObTMGqnY18p2nU0k9NZZF3_r5NNCA6oFwrPxrQRMDEWvgjnlE0ROJ2shzdZhFEK8iQH15Zva2d628xkb87f4Ri3llteo5Ie-8Xs2DiXuZ3U-28E6KE83omIONpBXq_ocEKxFqeNYdMhdVFjqXG8JMU7GGW8iOZGJ9JbyPlVttrIfitFZL3SCxkdU_HSgCuEhOh8jjB42tM8CWqkk8DiW02POW4kMixdFV4XP6wI0UZizJcbikaYdmzv0WF0p-JuIrg2o76Skn-uUEI6z-QXxwk_JewsjTR0xbTafMICZ3vVZojIUsr8CLOdhmWsr439cwMNeYVlgkFcmfUF-rP9zJh8KcYiP07ejmWiOkQgFWKHAI1t5nsTVzCZlHogCdpyMj1vbTErAMD_oOeZGCuB06L3S3eb6Y52P0r5ukdDZwnyU-xjGj7ALlLEXtaaCMtaZEuIuBXZtfpAyNp3nw8KBh7ZvRMLzAnAoEF-L-pXTOVOfHSrWHEdbCUjn3JqUIZvCh7hHk1mK-duDtdsH31SJucXD12AwNmVqEClEoOHgECm5Z4O1cMJ6OhHVCff_JPe3vt5zTa7BglxnXpuF9jNj96fyAnzQKlsfhR6EWhb6u_RvC-Ft-146EA0zNVRx4Gv2-vZuV-N33U2CET_PuY5K1-mJ-99DU-I5XNo7Tw044ly09rLYSp_aeEX_od87gjJeS6gTu9hc2yYHpBa4iwlIYxoFDdHRpiKi5YiV-xcjLkqFNPnjZnMzPqIQMtWYjNMRfIr0Dejv5u-bTFoNwYt_4s9atHlt5MiVNRl3hysftGRQKgtJu5NYBThuub4rlDvNL4sygfm3y3v0q7gdyBVw-L1SwamDjZYJE7dc67tPPDBNIPx6WxeIOUH3liWAg-o7hkT3LtApKmH2PibpdIHY8rpzGzIeBDs0vGJt63rdMXu60bnimjopWRUti-hQhRuJC0vPufrG7AMpYf_pKJwzAxGbp_i8An6XRlmjVcLW7SgTPO7jUda8GYtHPbrTJWiQRvFzFnl-PnQ4ZOxrp_eRnc23ELsIAG2sAeAU9pfZP9EUsRC3ijMlo27rpbjbg42UuSvSpfrPsWJbc6C7z329E_-2VRU5eLfgOz_LpG4_eyaPIxYzPGi5Y5-OVvXVGAhqa-P56ry_3iQ469zWPy7DDP6855c7SgcTAnvmD6JKHOoNsfJXlggcg83vnt3j_moSMjNlbgmYwFkvIqXEYW1obV4GIHeV7YJCrzi6kh7RzIqApm8-rtdrkjB7UP5g8n46zz-MLvqgRz2BeYQMHx4lklG3KuVAKGedUlPGlmu954fQ2kGeURGJ4p9r2ec8vC0TxsOs9nZGoAnESaVKr2SP5FGBsqkJRlLTw7z9UR3FZVaWv1OUHY6XgNedpqUwkupSN26vGq3s1HPv0CCG_XTW615eRgFw4od8xB-fAmTmf8-uz8Wqq-QJF9J0QY-3UjWfZKENxlX13DbAqsW3fcTV95q83cm_LLGiRw2Ry_uZ2X_kgPud07Tc2YuFaRmz2LLzMU5bYqwjhhlLyg9Eo2IvmPuaDmk5BSTQKS2JhrcTkN2hkzhTtjeV5lhrroRrOO4G34lhhWf_DKSBBlfQo04bIdp_80dTnk5jTOuj8OPxd1qtSWsFnYhXmYzkv48_hwjvhkUM93dSrpjwQKc5x5YjKqY5ppGvk_WBFAlizUJl3474nBq55fq12QE828V2hvUoWyOZrYO0qa-WIVIeGa5dfcLXn1wxib-WTGTNoXaNZglD-0Yt3h0mSIBXG3EeSWmmk1NP2tXL1LHrnSZUxNpjokrnep2jl5O5IhGnC9VTDkoeR_1ticexDxMXzhdwYs8HRwL7bB8j200Z3Xk8QMMnU1KwmWuOMB459ppfF-RCZu3yo68wGvsKI9r7BQ5f-r2cF3VhhyAiWji-f8JPpwPzJs9Fv4Ne40UBUoYCcGipYd35YTh7yUArNLD2MY-hf6LpBZaY5O7OavsKOjY-TAc0aL4dDNVxezPTVDEz2o_ZI_0SgwUlaTgM0aMb8Rdo5CQ7TrW6bZzxJ72GPEG3BEkU00Gg3p8XxLv8vxLOghu4uc77iqpk_wEvUsieEEejqZgVBPJorD83te4QVdoMoIQKL3JRlLhs9AjOlibHUKDMMEGOf5YCgN43r_vNz4ouRVrlK15luTrck_vXUtda4QWUtzE92efEPKQvhAxkEVMlvjddPOS6ne25BOy8dftRMNGDYJ4y0XArdntUMVRmEWH0OaLMvhIk6eVHwGwmMlvFRKtMfuDnta1DmOJDbs17C0VGhT1nZ-1BjxWhvppq755k1DEzSQox9xuoB-eblITjH8cWlMfsK4_D7Cnfgj2Y5rTYEb6C7Hf5qhUnbNQjkyuAjeocfbk-H27LD2dLofysfoUCp9ebozcNCcK7Sfjo4aj5u6Bi6ts_DTf6sTSYKZtOFgh9pAiJQUwBestKztxdgHbstXtqllxxVK1sfWNS7f6gIiOTZf03hQaWLweXnaPn7J_4hU5ZFcY2V6dHUDuWbwr5P3m60pxswOD5F3PaIYhu5GbWErJTg6Gpoi2mgi5NVJ69MaU2mfilDMOHbvt8hDKF25YckIPOD-ZdZBoJ9WoTpyb2U7jeR9sxI02CNtRlXcJqvBGrVnyxkHPl_GenSPVTGCY8oOmRkOXe1jdqVILG9PY7OQ0cznFodn7X8x5DXcwCZWM7op96nnvO491m9ESjCsOcavDsFLRD0tDBnXaY6VdKS_e5YYwRH7S3RwemNplA4Bj6IfVrY-NWwVIrCQQXcFISaE2lfmCO5sSWvmM29nXYayBkJnreAx6sTqQ8oYbLJhdqaNBMw_pefhB1XulywFThedIQe2GCfH237LByHwPnnDBEA9s15s--hmMTkWPyAP7J2x-YTEDAdXSFWO47dtzKk7pW6BW--0I8VJ-T2iNul2ng10M26hIWPa6s5HHM7Uf8JzuwxKOAq3yCm-_BqgvPmGNEBuRtspMHmr3JKuHGB8p9eoq4JnXPXDd4CopnhWVnnA4_uxi1myo3JD54a8ZDbKiU7_8Ru_aQptY_8se5Is8ZLegqQm_hR_PDhSwSt7qQHoh29JtkC8H9K8pTAzHfoJZL7k6cJBYJwsnxqKvSWh2DRg_dCPQM4_HeusGK7I1_HpYUSXSu3kXmppyFfUUEPZL1Qamzp4K0PuPa3hJYYjCnOf3o7YUncfL1MJCqlPh-atRZSyMzZSyuBIoaV5789MV8Oh2Z4FZrMs2XDoA4PKcSGfCt1LPEOnXFjPVbnlycFXZL5lZ6ehGk-ldYOmTdsVfUNlWPvq19mc77asw6Dg2vc_gx9g99vcYKfzSmT_ZDURHQMRWIhRNvIlG1OI1H6po-cefDek_QNLNvBJWVNq70h7ljyYL_3bCS8T-OK0zF4TUeYZRhFDuNrskC99pTAuKCR6ShZdK0wEJz_Ls9UhynLYYhZFjvBwjIuTMBhUeVINdqTa5-JbvxpFVVaUOcRssovUA76Em9lOpH7mJLzqgvvaN2ScrC81_qh9WXeNQHaPYga5-EHSFIITMDGkNBIJJ5STxvxnFjKum-vlHkHbq-cwKcFuF-uN0QdjzJfn8zetDuB3SB_LQAX14I16f03-oec8faOPdL5dxZatKceN0CwZGAzf0pzacXq57Ac2i2D5xOnJUHeXJwjxpysfjKmUQLGxfVACFs3lAuTEXmkuEerzLORY-qTYP2HguObweMLuO_Cf9rnZ056BW7f6guZ1lDpoIdTYKW53RP60vftVfsIpeaww5C4af0g32w-ex-9BNFDM5XnnLsHCk9fkrstcFfcksDaT5X5prPA9vVfAmey6p58k311X2RSkiMt6h3kACxEQ4X0PfIS65qolJjjAvT-pPnW45xkRQw7PpSLqkKY7ZCoktDxE5DO3RO2oJV6BDTS4rOs2UHFM734uhtze6jKfM1NMCR3e5-9vxNEiegmJVyZkrqOCjUlB5rmux5oPf8de0E1bLH-zysXgk3NLXmGpTtekqGLativ0VN1dNQXHtFniBKRW5TcSe7DtY3ymGou3hUS4afxkdqFZ3Y3MmGOF1f3zIULD4oK515OhkLeUmOeYhzJvCgRekAP6fSCLCOeCs3SvAvC-XJ5NA3VAOSImPjA4RbI_BxjtUwRZRUoguNfBbZK9oYkNhzW4s3sRNx_jEdj96yw8HHwUQcaSDGy_TljbMZ-F4ZK4GLonTH6mZwG_GQk9H4Ur3PFPRRnwgJmS6eBWQOex0Rl4LcBwH3q74pAj5l67VxtLb--lujE5c_wDF55SdYimxM5mWyEJGE9TLkb6Fso44eAMmSieGkH5-gAAzgXZsguy1GbaU6s2HtD6BvS-GD4S_j6BDHB7u1X8_8OXI45R1HPdO-0rDfxHo8w4fy6HUJbrnKL1RVjUPAD8FK5aEGRboFmIObEzxQY_ZkIkjMMEWrW5zdkH0VKzrhhBXD3nbjQlUTFA_C8zG53zIYvXaBZ7djrBP8hoGybBmKB75go6OGcqIGxTNWntTJI6HRelupus3xsTcq-PWZIfwdaZhwxCZToG6AtiPJK0AmMyTqR3UtW4ZQOJ9ZZqm7ouW7pbE7-H9G8VRlXRgHkbgvVQSK3SMfqzzF81JK-G7rmymTyfIkZV2JgGZALELKoCSXjOuet77c6PjDFWER0EU2xkvRBbA08Ty3dc2nUK4cMd6VCYqeBAfS91kDJlrYVS0q4IKCzJfNtSJmNimrfbwSSHxTiTpBwQ3RRrrvzkbjguf7uA_h2EmeDF0bVQDz9tsZMMYEP-Qs4BSuykTEGA1fZSOwE47mlYSFBY-h_nnb_x5VCPP5tUNv5cygNmwAHNYZhUWcgOXi2G8JD_F-hx0YzBzBemTs22V_gQbfVgl2C4ixa6CTbAcaZFvDGQnQf_PnzZExj16CeLvjBLjAtQ9wYF44Ys9QRw_ckulx6hsiYB9aZfjD6w4TTJhT2UjmIb4ga4wEjFK-Kiow7GP5OjG2eaGlUDq5JPUt4r-gxD28jJbfstzeQb3vX5OB-wO2HcWXVz4VxDKvXS-c3_Bw9g8UXrkVQGb_HnMRZTGylLoxFQ8rxjTSP5BJlVjRu-CYD0Lp_bZhSHFYcA0fTDP50_c7cuTyowy53gvVRCNTBmi7q70UtVxrokSgV0b-lp7PtUoksvY-j58-pv2UeeCA888R7oyH0UV-uSCnTxJ4wcbszSuXZhT1CQJWolKfJ9kKIToR7a0OYdy569R6rBLgqlsU2R1dQGfPlAOjPmldzKhott1f6pBW2k0oQh0b_Dnixs1iaSJNiMSbmK3SSrz00j7Pyb-wQGuNmtSlsnBbjiTCVyIP04kiPmt3CSeeg37uvgLfC5kubUX9IGlhs_HCCu_RxOSewpP0_qHJwpUhGYLVG-vBK8UnqFSUm5YOBueLHvDZCeIfiHianmZ8W20LDJGjx9eZF31zBHerEgNvDMgdE3V9nkhKOBxgH5KdrlZqtFARs52j2yU6FGREZYzLuSPqClmcLHm33OHF904LqCxJ10HgKk0x2XM_pNwZ3gYXQtdpZKXN52u-zATpqHcsJyTL4t-yrlxSNrywBS6hOliooXHP5QAwfJ8bgxJpGzG88brLoiGEsOSvv0Q5T1VunLRvagLC9Bh2TAO6ZVV_J4QrBkciEQ50oolA4HHCbsJUQT6-QLvrLT0AtoiY9O1WDP-MsJ7IDa1nHlQLTpW6Jx7WzbX36h68iXwXz8hW-ERCUttg9nKOvbW83Nvc7SD3aHKs1qJRa2yq3WPTXLQhnU3mh1l6cjhnwDvfEtC5WoiYWJMvk9WczytBalV350avA3z_cKXqxIlBNP1rIcwitcv1JGz2P8g-kTPsigOaSwpwjAUfenkl16796FGGVg4XfG4wCEcWMVixnojAF_oP47Ekb3fQyGDlzYaTcMrwyZncNnh72dp_l7w4hSfpWN3W34Je81q5oSsV1AswYkf9qBCv-g5ojBz2mT4XCxcrS_7qCmrlUCD7qFXIW635ISNgfuw_7Qna0e6W3QjhOQDgCqDZTwlAP3TjXgTDvKkZmT6xDifOL_K6ub-cQ7KCgRNJEksKy9lqvwrWVXEUBbKJH7AvvChT3xmRyQFzjTbwefpmxosoOw5Aic38w3OUn1Wn9AY_pQZsYJJhZJPX7RUBod9o_R2ZfQ6nqiku5N_kf4sfrOFIPvtv_GYA55Go6LWqjsfDN1LkxV6DLYsdj5_4l84LLX6fjr0nWxo28ZpAdq_9bhb8U6Nol5XzoEq-e1LA5zJq1AafBwYzRAAkgnd9Qfdt2X_dyPi11euBfkFlRu5xPHIFkvJAiaUyrJUK3o2J93IQiYZbGo-0CA8J8w3_RKAS0nNUbumLsr2fnMotYO9wjQkg9ovDYyT-NC45R5lZ2tnxmt_bsbPWtPg4kfVSDEwhe9gjVGVTc9JP9ude1oEwCo0S7untJDttOdQLii7kjF6FdZ99uOG9b7HcUv5odfLlisGbhazCTHG_VUYxQbRzjENB_QMPMncO5Q1PgI8adnDRHyjgRj41nMtY6zWIqHFJpQLi0S2muCKDjOvYBKDrVUEp1VMwZqb3Y9TwWsu35NOHGLJAClqNI6ub_U9YnKbZRTSGWrMoDTA5_qrKCggxixo4mooIrq6NNseLFwwnro6Jc-aQBnd1_qiclY8ZS2U5Oyo0wu1AZAaShwVF8ARIXTg95QaMU8dQzWCQZJvCwEauLMmYmo2w6gdkX6ZM0HKnox4s9ylWLb4O9Fd2GPYCOH2Zy7Y6Av0hl0MeOe5m6Wwj4sGggaU4pyA16UabUK3eFUOmE4UBBoXPQKwNB_3GA-MobeJykcMxet6lfMEVM-v61oW-s5xqvRW6w47vprPD0BsESrUeuS2SKB0O1tn-gVxHNK4kr4S79XRDhfeL5VF6QiYW49EBAByDWmf2zJ78JKyT3075OOhfnVac0xydOAnhXbO9MuCC_j5lI9fib9uVmH3UQ_6rQ1RoeUcLGwA-5cXgMCTnWY9rGsdjoyvjApqanNMIIM5PQ3P7mutrYU99Fy6vorFB3noFgg9XNdYIYogKPcyYiQq9EJ6B5EgA_SoDj7UOuv5E8hmYTHSc_tUpKXQNR1XEdaV5AFxIhF55-zZNb_Fmf1HaGmgfo2gtgMTGzS7NMn0R-OFztj3vBgcljauYwyOgWvb596K9elv5MUxPpo5FgiWMCd-BETC_Jct5hqEq_PF82vmfjdxY3J3A9Ha3JrbLdUpkZ0EI8Q2TYVXG69GUhnreW7bMxYbgPRlj3GIeFduFzbFU0Rg8-kOggzA4wexdCqGnlshaDNXi0txTQWmSYHLbTECsSeyiv1EpFZ7CXZyyCwmu6GiHGA-_FfhZqIJhN_xVZOCgd4I_WAy7amzfl26ByW057nNP8a79JjlmOqewa40dJSf8Q3SsFM0xgfkYDQo4psT3k8qwKXh6lLwFFnLBuZdYq5rhWQ1Acu6aK3hOMzAFBQ5TK8HJMrtwJMWb_0BZSNZV-4t6zZ8P31BrSgX-DZc-ELMdsxIMxvxh5VRpzTUWVKdqvgVL4HYbDF-zhEm0OBbu1xitIVbXrHQotxZOqNTWxyFmwZhnwLM-buw2OXwa50tASgGbnmXOLE3VTxjdnWkClPBOdERVssclTbAyFkqBfB6W_qq6imHjs0dHygW8Rt2jfuulIMF46OqWlZQGpGYSMHF_9HTYyvqnB1tXDJK69XpJtX3EnmRICoTiV9ZyS7THeful5nccStyMXtgrG602pFXpLtKb8avUPIrrquqyubtQM41Oxq30TUhRKV2A5TlrrMT9zyIkDJ-VLu5eOkYR-Otvy0DYAel_ciHm9gJY2V7CkiYjy1zgDkmjmluk1FppVSZVjFIwUtvv5EZC8U8450IJq3mTzjnovnWQMYlwa09P22OfKXxg7zx5nrrIQs3hgyTNuXSQ2O1eTC0NHYv5QJAx1y53fy0bdfhcjcOvURqzbefh-OM3I_WpwqY0dSeuCivyQbaLNE-ddlGZ6b3KEzDQ8z4kj62d3hA8q9ZYYKTmnbVC0itE-TehIidqlSPWqKu2fR3kD1Klqca2CEnSGqoTECnOGu_pTfq7NBIQjbmdsSInyU5c-LrQ-XsqGlJuRCMvA4SPYAhq3UQroGifQyYCaVCu1HHwPPWfY4UTkraSYC3tuFkt2M9UJ_Icx1N2VcB4gvioKI8zhAZFX9CXORRtCeHyRy6VthG03kD6Xyzdf75l3sdha4P6X4Kwb4rtcwRl2g-lyhgqAkvn_QVLD71e3C6fBU6byNWhEczeHMf68yfAcQWtuENz1-AxwrnqYWtj3LVL_rini_vTap6sRomqvfsvIm45YPzCkqkcfNfxKZbICHciHFG0PKDvRxaqVchuLrDTkVTg1NWnmsKGf0iXw5WJvWY-YMBcK3y9uKebF-7PdMAwu_seFWgkcUdt9xVGYhnf08GxIt6ZQ4ErnLZ-y_E96auun2Q1dglRI1smnEutYyh95tvEyTuacBUAy7zOTwa5QmrhLvZ6HS2lYye9rLH05TFUELEs4YGld1wl2RcIBr3T6p56VuB3J_TZYRnvwiqGr6kY-jR9gUBhpPUXArK-icjj6Pl34uN5AwYYOn8VdnwwYLap9ee8OAp38Y-dIpSjw-2tW9QiUCArQXnQXwxe4xIGxLWdrMCYKKQ-pKbDAphT22_T_0CUyOygt2-DRPGB6MimgO-JyOE5aQeIrH42zSKBYYrBMqgpIVZ6aaIOoP4pSySvKfldxA0T5g8R-ttPjy-kj_uON0LuS4npsUB1ch_5NVJtaLMERAvcGvsPB2ZV1xmMXSaRpFU-4UOqHjFcPUeHCTEFTVfQ58KIi6Bzcagpvi_ZP99eukXXy7zQ_jurdyzt1gEML668lR2Y8CDSnT8qT5BVawy3dElZKxVhbYqUiMLT_qisU6zgjjWffabWd0Gz4uZ4_wHLxMpTxLqZuol6Uv0jDjNdg67NV4Ipi6X66FJLFqRxgp4wTWzga8Y7xiCgzBJGWwVfMjHu3hMeKcrPoEpWxajyU8j5o81Qs5Mi4BkdMC7dkpuPuczgjwbrrMhzP_fUf0PVJfl7A6TTwZVLBfBaKIa4xTVmYcteb6zEgMwZSyVeFXkPK2Y1Gm2OXMv5d3fG1QwWqq_tBtdE52ESz0QmkmuqyIsXk9tZZZzfFrYFyzKkxPhtEgTSuo2PrtfGDQFXTaKEW4ZniCwNHm5wXrtij-hM0NpCzMTBzBLXkiDf0R6TtTQO-UBiGM7cPVrooYuITemqWgRNDIb5ECMayZEVN6xOR6MBWbnoydYjVwG9aGp1qVsjt46W1Ofn3JGah6JL76j0kiQCXrOUpSWS1FOc0keuou_G6pBMtPZPiaqWZnYw6v2n9hdICx4suHJaL_ljubR_FAhsw0WJD0r75oNyJvTsa1HhNSU1EjzaMWgpHXyI5gzAqJtMmxKiy0STAl659xayQaGqkzVlrh_V2Z8RpawTJ_15C8syqYQs3tEy_DooafNPLoZ6GtZG89Kd2o6JHrot2JcEnnuOWCg2HIS6pSucqvpLJXWgWf23SsCmCt-RwvN8RsCozFNnJcYjKB5y134asBsJguBn7ZMe8zZJwTwV9ieZs_gbQPkBZZiBwil7OKoVqtIogVNa0hrBdO_7F8TlzEmGQdwPoXNmWvNSrDlvObamW2za0_mxvaNx5xSmr1vO_gRyYqX37Qy2fc7LWnqOAWlYZZ3HzW4o-BpTdRWJ4D99-_ym7FsurIYhvf6ypxOWfHQBryUaH5jVYw-HwZK73SCyBx9WqUUB7QT0icdziHWxsq4hN9xVUSwbZ6DFRKlZd3fKiWBIcwW0z6wTI11JsPAnqYAmntfJHHjb3tDoyskLwg8lYv7dER6IAtAxyf0uiLLlRnRD2soxYPuc2Q0d65cL_yXCrY582Cv_tY692q5mp1bWOFBVUwd8UswOLZHNnBsxp4piFOTb0TMwqjGircV4KuZuO-O2esqWL62SLKouHYUkOq104uudyOifQI4z4WJggBYA00x3HreQZHPGUgz786kt12nRsEmC_eKfXq5ZBu9gDkppMzG3UGCNJpMFeWylgauU6wGJuMxufeLT49SL3ZJakjeyNJTt8CoLNunsAa7dCqCjmSQDdDgGGxnjXa5DDZyeIdrQiBaWHtMvyALXwYHNQ1JXDm2gj4C2VQF9UOomZewPyQxE1cOOKOx95HowqC1KnJUVhO0NoWSuCUgOJaCZTsof2aw7U8k9ATxukOUuIG7kt-FbG2kMAUhAONSaJXvuKkwfb5regWr0EJv2Yz14BN2gWTy5bCOTC0qtCi6PxjOk3LrMGAlm_Wal_xylD1JI9___JG4gGYar7DZqAndA4DljGME_9OjP5nnDg-wePJ8efqd-gwuVehuELMEIJCv_2jQrnqnRCslUgrU2HG-jOM5-AjnH9eybuuEyZoI9FHxeqAxHqo2mjnxP5jARNdMZpU_T9E3BR_p7PaP6S2UDR5v6ON6cYtfiWPl5XI1ZaJzd1tLo9-iaPuns2mrSNZrOfwA8CnkwOT1QEOhWcEXxE13MGkmVgY1aNbPaeF5CuSKhHkJijoLeUU2GZ3HFiLQBjj6NMol2SQPR5wQv0cjGZnBjzomSdeoXW9Sk2iCIIGND2qkzACg11f8TZN2w-uV_XuFTiAYzGNTPAlu3aU-_CMarAdqSjg-7KzTQlB-UwyDhO2FQqSG7J5GFNACqcTTif8kQKQvt6B5WrSqO8sIX50We-MaQh-dBYVDqc5aerKFySro9UIkIebAF5gC4mT_El6GTbQ3fX3vm_1jXQK1qm-Mo9usOeLRo2UY_SYimZoe4e5F2goxwWgO869-4eIN0qzaxbyhHwcBSt5udib9djFBh3bV-HSfKzMIKNwKGAM9ipu8V_Yf9bE6Gn0UR8cSKEqnC7JneP6HK25fhlcF8Q_w6_AocCLm7nAoWx5tD3NmP3zs6n2eGU3pe17dsst1lhbn3XEvndUEqzdKP5m6MLWmlZZVFPSY4ukN-yjw4EsE7V6nzhxdZhe4nH96bAGDLk69FRusemu64-oGKvkGJ5Spdf6dcCPTP_ddNTIvbBJzCcQg6628ykgURz1E5-pprI4-Gm8wKLFTO04YEQmW4Um29q-xl_SNqqM8xJwarvOvbhSbM1yCiNR7V9yvGsUi4Ph9FhLwbIB_Rptaer6IG96pAty2CYdML19PflgOy5mKQsA2aBwSqcD-GgwtQcCqWsFQJqm_DkpXkRdTaGvTiHokUCRSiWvAFsJvLCrxUnR7tWpBvFHuqA2GaD3xDFrt0ZyatnOFGAsEneI0F796ZqUI2ZmqBq-9gJotk1KquzlFxkg-ldB8MkG1KUfKChhMHit04LVMenfYTfT7O2eGkYqRbAGPuKo1FgJYLvlH4V1CkfZbTO9WdJiETbxxfOVWLlzOwiJKVFzSE7LmUM-5PrSX1YkUeZlZBFxHUfNuNtRldQahas3u1z3d7zhlxLNt6SOAuIB0f535ypT7iVR7xzzKsLUUI7W0zCAm8WvUwFlmwN0JYm6zBPALxzw-lC-1qA9Ximsc_zLvwEMBK0xkJgmEwr38vJo1ELniCQwo9QJ2ITmIx3Fk7ioMF8CaFG_QTytIBiaxBhfjX2dmBKTO1t4C3kAJnxvBOwgQ6JJ2vJTQir3XTNGeaJ6zNZ76LLL5L1FsHZ7fyuTtmFvwQXeLjYnw-ydOy9Fasa7lDWHzPNDOltRT54WIx7Hk-ygHR_O6E5PSsgSqTHNSiP0R2dQsgIuM4LF5FOWl0NBgKlIro3MHB9neS__DHBX1dUFDHEg-HZjcT6UlhIG42cLhHvYGdiEhagcRgkGy660R7SFqSVRu1vJDCPvnxGqZmVXLvzEDGAK6fQQfCylJXeNvHU8kaVMlUWYgw0XHb94OEtVDPK_ypPl4bpo7VjeK6UQL6p-Gqxy1d-ybymmvh98mtGiClgjVibZYUYndfa_iLwQ0KPLBJBXj1wbAQAH9OnUPoXB3JZBa3IC75XsINGNB-Oyd7_Kg-fU9UYpmE42oHLrry4jUZ1ssFlbDFUyAyOeRmElRuo30WxOKp_c0L1qsNcg3ifNeibgWXqZ1tabD0rLsoGxH9cnKsWCKZdMXv-DWKQiFAoSbWzoAk8HmGWaCGZB-e3juIGiJ_9Ql4XpeC-2Edyq9IUPHmTsEfC22zHrSFfFZylpB8x7La6Zasj2_o-2Vr4eZC5FDiQ56DkUj-gaNCrb--vhSS5bLU10giayT7UlIMf7k5U-emhZnqjMOkzBm0c5mmEG_ae2mZt5hTasxaOqEXKXImLmJ1RrMYsurMqkprj5_IcKBIIHB2RuW_GOkZnXj6O2ttqvPoGexOOnBA9SVE7M3CNfsMk07ATlJrpT0C1i2NRsoAt0I9jJ0kZ5wftP2uvNT2dGAlDSXRG6dsviZgqbOrumOv2uOUhMT0Gq9B3x0YFPkRYpyLmCM-1AQQZ0-S3enh3TFsfRmU468X5hqre7lpJqT86X8NnRQnUIYyCiCeBke5_AlF0iTKvUBcmgcxER1uiKYT2Dg0UHy1Jf_bQD51w6ksQunb4N2vBufAC8gMCWgp_BZjdQN7r0siT2pxorhb4q14bGI_1Nty8uZTzkTqYteBxnH5qXJ-NjdIPhcQe-yKVUrgPs-LOBUkKJA9IOY8DVWIek7CwVNXhSknxla2ZVOnXdvtcbdu-Y8SnWpnEgzSMrg6_TxMZTr6RZFmTGJKWOSG1MV3zQdNnxMdMDoTMqyOMTQZhNuXgll8zVeO07ppdqNePmqjHgXYyIP4rnjAjJtlSoaPrsZzvTmmMeMfi4Nu3m4EEa4P4QVX8-NreTQrMZKNU1-6KhG0JVbIJbia7gdq-xMlNazmn6cwW6yCRDSyIwAyrmrJO-B4AG6st7T5GpIo5YvK6EgN0FGTq1QEJocF3aPCVg4FATrZhfhmvLjl5d0SbMJCyhlMt5ilV6nXWegxKYy3DaXjilBckdsXNpasA0796pe5XeByJ8viy0bxHp8xzv8J4gIawQSLTKXRWIbrkzUvjefQqI9jZKavu1y5-iYl_RGi5AXraX6ALt_kbq_tfdKNFdJSvK3z04NDD9E5HPwceKYCwTcWiyS2qvWx7B5E0z9dq_ZxnGWwktBZK0tEOkztiDRpDj-yhzPOGZnNMbzFzHKByIZelScuQ6cBAThmZVlgwoWDaYm9KiUl0uxi4BM5-A7FiWemYwkTuF2KxwBTyNI5b6tgY6g3xYZNJJdqPjSGYDsFNIufqiMYKjflWAmkDIdh52YVf7fbWgMuHoaJ55pr-4B4Bm6rIaBBmRG-t2s7pKeWOjZrgh0gW01Kc6mQAKMwrj3dCL_98i0xNWqYSWPOMfc2hXNs0vfX7XqFMrvhyY4v1X2tZb6NcOjkFmQ_z_Sgw4wyAiAw52itBrCn46bOQKtRPPNEXoduq3p7claY1qv0XduDQnuWjbboNuaStZzQcsrF2dL3JfO6Dt3XBfeej2wcQnLnz_ahVlz5QrSP6PWRQ5pLvkt3_b820LxWIR1EPlsg3YtslVx761G4AJkzaO8DDKDEi2K-sxZGWVEFaYE9-WO_CYrvv5UZUVIAepAad2julrQcD5OUCaCa7WDH5qN8i-Bma6OPKPLKuNIS-vV5YNU2RBBV_k4Nv84vDU1tukJJeTL2J5yIopNkR477wCSXq9E6lKfYjY0K8MO6JF9ArM2yuaIzyxse9JH3JPAC0nm9tMqAwd5hYHJbqZOT_Bc8gATNl3DI39PFqdXQxHtqw_Wltn0DyHznOm2dJx1uE0OK7uDKxExIVXJWLwcPBx2G6gQp0Ylg5uGtxIkzISYqhieS6pgjONFyfXAYlWQkcEGKa18qq1nSWo1Z1ppFFbRsXaEEKwzTMQjiAfyJDv9XlZptpTBpDpCQoOqvN7DY5dfBrwb8na0Ky0AF0esGoQ9WAx3IsdEGDlzDmX_E_fjgXkwfnar482E07CppioqdB8l85MadLlxnhh66Vurz7WqBuZabZTqu_3WfPuTfeEDYLBA3IYZPL0-YkwJwzZHX2DnWkAYKKv3u35NjjZC33YKVPUf8dLvlknlN6hwEIi8LFiru1fNWzlZG25WdHfobeX002F-UyZcJMsbMltzH8suxfOXjGJYHLvrkYcuA_Z5K3V4hnmP_8KLRMRUWzmwyXGktaADco85veT2E9D9Jr-MdqyzkEEVPIpQaRcb-bZQpZwXIF_KUOfu2IOpfW0QsFWfhF_MVbcqogmWaSboioZhuswjHmfrnQUg-egTlYWl7bC3FakvBG_XaAY4O2aEkv2Tcs3Aq4rorWW8KwUBjU6jTNbkASVPIP5nh8aN9OFHpaUgcXUr4eqtKUHlqp16NPARam7T-LgrwmbUVG-GBkreAYG7UKGAukYcFSMacs6h5wx541M-bgne_2OLU21WaL9L8ZRjrMHg-OrERH_eiJ5RVuohD5pljDUBqOho44LHLR2j8762vwuqJ9pG7xufGkuFMp6HPAYO5xdGPIynooSC7CZCd-i1wAL_F8O0jGshRm_fn5xBQ6zZ4gZOF71ejfjY3Wkzhk5oHy48tJYp6-spHAs6xjZyu2iDkE-9o2u1V8TfMs4IPknDoJPJBhx2IyMNFbRRp3VfkMfDGVD79rVfjyvAZk1Vs57IjIfglyZhJNl3dpGSxhs-BUN61l9G1y9U9N80w__ztYVciXQ2A1cS8p1Y4FGO7eIchlgR5TM3MHaddHInqN9S6XeOi8OXNBQ1JG3XC9kl5EhJXkEGTSzu1_R_DFN88UNegWTayyAOcJLs-8FdKCR1y5CtYuRU191LY5A3CvK7STH8us-QKaP9H1OxZNnsZy-l_F1p51Bafcdyau1Xa7ybzVEXnsJMYaRvIw90jVSzHODmCX6he2rZKtjKvzc_d8qX8IGYD_PA6lXgtJarv3vJks4NECAxl9jxAfIh6LiKmXptufggu1vtDee-TR8EJuA33Is0EHYhky7CHv_VXyfQS--bB_zaJBW5DyPvoypwIpHxGsUYs1VqdiAIU9Nzfcdf_30uuAwbfB_KieFGDaEBcsFFWYtD8TGLtC1eQCw193YLQObCL0Tsbsg5hFNtJiZEUxenRE0ytMo-yh5mXyjnPm3uaZp557Ggb-raePIBlM2T0-qoQTFRGfKq1WAi8-Bm6eFJOzX3I7IMqUaaFf4Tjffs7cH9XnlWn0wSokpYxUWnT23nG5yOPyiybLN_y2e2PgviOEqpuA0bWs4naOM8Fb3uppYv6rOEd3PHJZusnFAzNvXmxxIdwUgdSjuVvfrRpZ0Kb-8J9s6tM2Wd34ejGNNfOhHDDFBjZWtHeLps9puwd1BAnpXkrUlKh2_pVnRO2yxDJtbOdWMaypZHHfrJZMrTbCFyEx7-l-yq-xcQFKDDXyPdwE5foYG57DFaOLfeAi0yip7BpIHkQYR9BJS85Os6i_e3U7hPFgdRZSe5oJ8UobBsb58iNR9UhTVTcz5DcBaXOVMTTMY90wzTd7VbDjjWTzrtgw_1iwD-v9NzJoXcPvx8b8-0Z5aHSmdcFK0mYc7-hu4uy_TPbtmYkzcpGKBV9Oi8L0Z4Le7R4XGPdjgwe6uHXIJycUV-WPgJ5VHcRbqQ0KphSW0WjpC8SiLF93-dwo3Vqh4WYeRh0WoATkTT086Gv40OmRF8SpGjsplIV3yYAeIFiv2rU-QfmJ0L2-jx8mjloyfRwVtOe-VZttQvw-MMh0GHg581UDpVlV2GDjgbWv4gJrh0uE71xcKBi6u-IBg2s2-xP43zXfCP7XigT9nJ06hucj_SXlVzf9apKXs6RO7hGupSuXJ3rObMF1oMTXpBNhcPe79iuTqZSI40Y_KcDrIpcUrK1ifdy-xDJXVzbe3rPwMSWU6k89nKs4MeG62Dsip6dBRPe8PLfWDGI6u3OyqzTPgDPttTdkR0XwEFGjy8pSZa9TgvqXRib2nClpOf3LtqoJqBRTl3wjbLuok0g5SWRdQw_v_jQBII1SsQCqNaub5M-BPLRyc5J-2P8jV4qszh5LB66o8aFAZ6mtEf74c-S9fpJNK2eFcfaCkHpSSDTEpG03iPjxtt1c82eKD1yqRNrae5_tMlVJ8ATJUIzCVz2omutbasuudE-jh22LkKY0RRNMXZn4rMLeSMWERPNtVFV0It7om3pCxpgplRdCoun4JBuIlG-jWJd_RhV_gihTk1iEm8xP1Gtj_Xn8qgLkWma49XCtHemGXuDlAgOJlnGjVVv2JyCP8qE_piV6Eiw7ISjfcCIWbAC13Wi39987Fsb6UoGOnWoVCK27k1AmUTr0l7WUZMW_01Q6wLOWiNqc7tc79_vhLZ7-uUBs7TswMOAFbs9Lz_Sddfhlt8o_ZNi0_Jp_BVcHme2Uf2bJlw7Ttu1x89Ldu78pQ9M6Ea7tEKsjnT0bDSsKcYISIGCAAwJpLZoshHlaGVXP-gDPLIMA9suEOFlzOmbco1zmgK9zwjzgkKrfol0IyJTGiXcIak10N_OJMUpYOoNPBG6k6tvUmoaD217ZdPh7F33iVpFLUA-hyefm0fZexG32NTu7BRKhEie79y6EUnEP3B317AyvbOZVHB6gULBU_kZTG8Xc9rYQK86WtGH_0g5WNgnr3iqM-aWKiailNnIiWJ--osea9koa2nM4jAU-I8Uq1eHicw9FR0EFqfZcMar-ZHQGmTcnsJIusQNTN9rBqCgI71u98qJHAqo3-sEK9yN_NDyEscO3_W91_j4PCbk4Ez5F7KwJfuIkd_ddFV1Cfc3OOUARYHZiRvD1NVvt6-dxtw6LQbwPHs4-oLWP-YN9dhMXQT8EOs5MZ7Mlnil02kbghVm2gHFVsBfT_0OXJNq-AM_ZLgSOhFG4Rw4_6wPpr3ejc1X-nIoogaOGoLP6ERaft-1x7HZe_5qtKkskNMlD_3W1olEUfcJiI-xLmYi5bhgYOQ9EL6r0LqUwl3osQJv7KH3e0fv6HEK3pFCKByhNr_hB6FfgJ90PIT9MQnANwQ1BN56nSPmZKQ8TUMaLThVKtX9zETaOdwOY09a4_pz4cNnKaEin7F_neQZVamrt06tG8PliKc-WdfkYAPiS-4TzSj8snpOogrsjLejeDmo-uuHLlbxA6Ex4wGzCGH1HTm5CV7f_OIkuCH1ztfiDwI1zCNypB6NAT_zybb_g39HgQR9QjuuFi9Sey3ND3SGe9hVvtOsVrjDmAFQzfmtm1oY-CZVxmxbi_vgB-exmcTWQ7OYZRLqS6349f53BtORhPIAMTJgWxXn0cxeMdDlgmGkxNsohz7qnWFVp4H7EMujYt-fMpABRueF7OR6mEqEH1tpmnXfCPP04o-IWLnB8Q7ExiWPdFQcej4IfdmQXFOQIILNDOLsfnblNfJ-0wNoXhBOMc1zWQuWUsgPjhEXXgVUnb6krb0xJHrLixhEkOi7vulR3J7sOH_yBXw6jXBcSjbEu3YeF4iVj1I1iTflGtBGUaHvyyeOCPCRfQ8FfDm8tygTGP7stp_ghB2A0u6LV_Dd7SmlqtuALBbkHzAnoJsuyjDapa50AgW7XpKfiGJAkXmWTcW1lpNjOV10eRnEmzAIxXRKJK6AO64aniwHuOoT3i-jZhJ8OhasBdGKTu583k1-KDhwN_pjMOrP7-2DzwhMX9g3cePg8nmZLm-Q8ltbL317sit37QWP6c8qVnuO5OmblRt-vID3OE0391lqgYcopCs2oR0QkO04RMNcHET6LySuODlGwAOoIIzFKuscAIy2rke4c5xRyjkNWuAsRbswJjE1S_vbRdx1LVw09oo8gwkRbKE2LgC16-7KvaM6T0--Y0AScxSKYin7uBu_tq2jZpAa3RXKXTdPBThyn8SNY0PsPlb7f4LCYPGd3ubwXTeauVflUB-oQ6lRerZW1fL9HNpEm2ftGaUtm6g-v-gujd-maEDAt5Sk-xs33PpqYRa9Cs4I1ye3H_Uuyzzm5uSdNV26fDMFlW3wl9q0Z5ulIMextDC6DynT8lUs9N6a8aBdM1cRL2krs86u-xsTQV0SFySpkU9RKqGByKd9CVmbbp6RybEu8LAGCX6-UU5EOC-fAoM5Aj8lzR9uY5Rhl0dXGvrsqkAutbHOTRoU1-pCspXuyJBHuPnHutexrNaeBOjQziRnV3B3n2gYu4AjT0WMx09nkjXzqsjPEI3q51nKAkcWmWQMFMr0wP2Xim7eEafnACGHjdhHWvZZR_Id6UDAO3j52JeteMBR2dLcVP1ek1hG_uXWayATxCPat6291Y36Bbmj9SeRJuFZK0tKNde-dODGXuv2dM5ILNcyh4bIniUyNXlVEKXVPq6w1ofdUl_fkKt8vuCaJoj-xlFCNrEgKhiaZZtdGc6PFY-CU_YH9Xb2LSmPeosVD62EfZaWIlOn7TWDHi2H--_9YCXIvbZa3ZuQWMftoDc1MTaRX2AWCMvkrQuLipr8KQ-iaRhXgtuVOOzG4wQKEHjRWeXxXhqHcDpcjiFFYcsBO3NOG21suEyVfIU7Xlu8aiCO5Sf48MptwTvFm5dre8u3Q5gtHm5_-aYC5VR-Va2WTSjb0sO64XaNtBAEy0Cok5mk-HAZ-Bky3VzCDVlapZdjutn2Xn_8niSTQj0TXM81LgsfZMqvAMfb0kuHnA7McfKFT9pnMljvArr-eNxsMMkJSHcwN9YtVWsF4dVxRLiQ8GL69cSb32WjxQ0EK2fdtQkJheh7dW32K9Mo8lumRrctbg7xknajE0eXpyKWUjWDcVRzNyXLQ5jERVfAklsiQ3cdNG6AMSLtB_n8NmkDjBMDNDmdqXq41k1UTswwwvu0H5yjdb2ngAO1SQ0mya4HSYX27UYQNMJM9JOzTCCoWX2nkomHTnXkbT_UkJDE-xsfTAHSfFvZ8CjaFTaxBn6UYOHur9syopw4usV-wTbQljY0CkndpVs6fyDx4QY5M0UmqIVQ2ieEvwJjR6QpheqTMX9R-PxU51qGUffgr7I3hoBcCz1mjOiAIy8sxphIuf5ghElM2Gb3ZBUTTjCYUonYXlN9ZECG7vlHCCovhRsBXO8zwge5G7sy9Rbm3TIr-gLCeO8WErJK3bQMoB3CbWRFGqE7Dp8iJyHc01xQlxZ7IDOq1Z6B8LqhxABCerzCv8ndZWU3u8wpOLoktrfG_z82E0ZSM-7btWZZ3GeonVXskaY5xDLeuV29XyrBDNoHISPJJ1w_DJu0gkByncubJPLG2sYV94NrKPMStrK-whisTytQF9uP0CZkE7m0IB-SImdLhJrhcSeOE-pTYVgbtolJHu0cK5rR5Dqeu578JaY9x3BB26vGZ6dRe2zFTq5ogByCmXSp3JDMZEI_UKl25UZRwzYwhebA2zAsvDShk82u7vBSgXcQnWF2Dai2AV5GW0curSavChT56fg2acFX9hj7IFpG-4GgtF07OaR6dvj249EDuH5F7dCrzDHsxeflZddowPTZzpP4xMkKjjivjUL9tQf4Vg3tKmaKXDDhN_d5lC8kN4yN8v5fUMH6OOOyA1Kh_W-YXEp2baeNJj2JQQp7pwx7PMFnmEY-P4XzrRPhpN1By2uhc9hNbw2Sv_2fZJEAcX6dhw52GwXGR9L7yOc-CsYhi3Afu83sfTtCtASf21RJlbjMrb4QmWE8GZnQqo0_YfHW7s8-uvBTrLqNAWmKJapo5ECeA_cN-Rc09J8YR1Mg79GJhNNWKngdKFuvCvK_28bAbpU7UykyqylQWy-boOJgMyf6dgBTMoETdoK9aygZwSslnAkXnj5yrh-eNn0wT4n4UBfVDP5IcjfLudENLRNRZMzI-98Cc4TB43355agGvb4Y-vaBmABRbQs9dNE0x0vePvyiTOJZRpk75w2-8t9EnrdSvYMSXblE_61iTbKblWfJDIbPLf6UCGwFy0XcoOgpNRbY4p_qOkjvyE-ZliJm7oVidM11nsKrPQFApTR8y_JvhPsgR49w8V_cHembuHTxrKjurlSwCG2GF1kDlYsN7JnJfjkh2Y6lwwtA_ZRFxCcCmVt6XyI9mP36hxdHT-txQ6L8C1EGQYAFXVtP9cyH6Kj7D6R_RFF0s_dzELUSe_KegRLECAyb_qCtrItHDcvyr5RSOnapCtR9LVEXgXIgUAiU0mYKFFrSXNarWtKr6Bl7ck4PEPO97YZUXDJcJYGQJc1uf6LDbuqsvvoCinr9TNVMCyvtmOayHEUSPnrW4YnH8aG8xFY79tpdtLE-ujMDO0T7ipBwPYN21WvJnKSTIqjT9UeG5iblj7N9sJpxjVjzbt1mo32XqaMMOQFbl8H-ewrRaTo4jklD-Xw7Bh-wZmtEUWcMTRfZ66Usl7nDrC0mEuV9K0Pm_a1Xz05JPwhrPL3B9eaJet76rDaqKecZ_OmQrpfzxvuPlrvfdkooFdO_YBQKDZfWz3-qmVIfaPKiK_oK4W1MNBdNoJqMAD7EN0UtZpGK81Z9t0APS5wshrK3XE0IWBs2gHsBKaSo1ZGJ3q95BvbVAbxE_NCPERiFzVPIJFn8DdWEbyr75PexPN4wG9Te8-8dXlbOedmhJxdpCX23VTNFJ0_VDHz4pzQpJ5U01D-HIPjo5jXW9TNtrIP7DwpRXEoAmUdw9Li8TXsjy4NlGCS3TJ3V9xfgJQ6orNZVOFHswPILksGVN9HcZp8nTbAhyhJgtkeL-5MTy1_wjiICL2c9CzukqUFwbd0mmOmBmcfXxuKWPmblq4KsukpmJE7GCY5WmZvHTJdX2PJTqatpyrx7wBo8IesU4qPy3Zh9MUpGQKpadCrzOWbOs9uWVQjvDcaB5v3L6G3afdYEkmlp5LH_jALTXCX9WhyV9V2dRjA6_GQk8QE2wpd3LvuEWRgfxd8K07l1HqI1-iShLxiVtF7Ed5Ea77zafB_CqafVM71fDHc_SjDJOFLnTS17XO1L1U5diXVOhZ2dZPZnuLFK2LpukfTV-qRlc1RIURq5tBM-noWvckmYsD7oIolRwJaN8-jU2jceepV-SXFTArDXKORjCRm1WNcXXUMkFgqQitqvmCkwupbMorE9GsnYzBpKHC16MV7aFq3a9BN7zHVlOc7Gm5Gs6UGMNNeTplIxCk35Apmtj-SMi-H4iZHIIUYdOmIim-0yElIquR6ulXw2HtkeV_rlPTJeqD2HmHJBJkzvzgKmMJpSVOxSSF2WCR6ncQKdutoMDmEnn8BVfJcaATXGMmPStpnbR5r2qRSuFpAhtoavOwHj5ou-DX4F9yAYGojPWQx1D9qJtq9-Xbj23ZdIX4jYhAMAV3hi1J_O5hJlGHJ77jFfraBPRbkkTfvcyZI4w1b_JDs5axnTedmtZLwWe_rP7JtoMMCeNyDsC6V3rw-_YfOD0tabZVIhAByQnzpLd2yAX_w-Gwl-qGrTn1fM8PFOP03JZ6jiARGQGnOscsJ1PCMsuFUoLzQTErQw98R8k2R3aDp3QRhvqFpsafhCnVKHAQJGdPEzaAv0MjZh8FBKzuk-ufYVTgXUyoqPzrciwaGIy2yI3XMXb7gErafbWHb5whhzc4-dCu-EAzZ-X-z83jKpoafO-pNfOiodGr8eCR5InKrORveGQdsyJuoOloTsSIyZt8tsaRoo9nLU7ndc5Zomi0zZPrsIAsnv2ym-JW2AezAZYo6VUg92HROZusMmNAXl1Wh9N_tQNqFlCKeEDf1Wd6Z-B3BXksWvBZwS43eXe1QbXxeKlSgDzEYJ4oFIB61jvDON-8-lRiu6oYtj8nIp2DLOnNzKDcTAPh6X8-mMcDEkAFfP0c8GVCh7uXq1hCRT5PPOFncqn_jqLgG2lMf2MVzBKbdCwS6Qck4se1osJ4yO6W9o9hv80niCmark1mMCBKmE-m-VQdRMhja3pYPrXA8kEpxObLBtALikOpR8mhTseFzhLYAAAHjrJn-tYLIpqYocCYf8UVm7wDZ0IhRQUKyiiAVL_IYyJCL67jvJrNI9_Oa2DVE3JcyDnUl45Sb8GjSc6PJaSYt03FbjIjHEOt9J9fkATRy_IG-hiox6l-8yeGPDHeBJQeZgkxs7oLhHIpTsu-nfABNbawHboz0DO88ePI8H3gkEnY3j3oBt0QWL8-R7SY2oNjY1S42R1jmvlu81ibV0m8JqrkFDjHWS2f3r12NnG9e0Rk_-8N2-WfBvL-Zustv_TArYwlu-_IWMZuQj2GSv5BKimxYQwaL3df2f4qmTYIKdLWuI-gFAnrIXtVRGzf8VRChviAC3uU1M6tJ7YFbNzRyB7XWPBwnXNWaqy9rH8W7PPwGjHAD1N89Rltw2nxmz4g64DgIkePRoUgREFSwJfcDodeOfBiv8mPWW30ZRGtVn7Gx6kHU9sRG6RM8f_MGXxKedXVzHmkOACF73FlFM7i1cegpqfWvd5iPHhksWGEaQ5Xf5JQPuvSybySvBKRUKZagFrv-dhSCCp1LspfKqYT1Pdy5x2DJ5xxECOUjwivGGqx3a4KNpEXXzuJpU1SeJMkqmodzwzI_EXB6ZbGDTHmZH-hYGNCUniJpXtvFCyBHyEAej_m-f0Iif07TSOLrJHodxV7f61zh1JIORbfCMh2uCj5qriWb8ldTnI0p7RJ0jbW8CLsG8ZO3rbd5u844Fxl-n-0bQAkqmj-q_hTe96Oj7HwpRwxhyn7-Z5TBl17I7uBQVROAkO91idg-xBRdcim_PK3dTQT9cgpSrrHuAfGpYCxuD8IEV9huchkNNlL2kD6PRPQBkeC3AmVYNF99KwMwUuwuS_2WPNiLX8sfBfaUQDJ1rUDDYg6wXLkTy7I-UP34GuLTIXHnunRlTmf5daS64Nilr52Z_8de0mmVJScDhNpTcdi9sBhZXEOOLrmUUvDJLwfiFH-XP6GTxMPDODvZeUfw_isXcvpp-up3Hx79kt_g_sE_38vYRE0L94V9sjJCLKEwPMEEYpLCfuxqRAH0ldY1Nw5K4hQMxjW3OW0MY9ngxIsqvuz9_d1YJa1vKHLlhR0o-xsQXNVt5iWTHHfnoIazSNmr2pBD5GtAZVF4XebO2optpJwXZQ-U4f0RogyU3opnyWDyAaZt6zEkRIrl7dZvIhffuuvwA28gqD4MKzyVJKaNYIqaxU6DnZgn9kBAQQauNEBjapckzw91aDKQCRibYcvrnxl0nsNC4Rp6BEa4pp0UtGFDU9Lw5h4nSMzGWNgXtifJPIVSgGDW2veLTtM1DZ504Y-oBjZPjJxs1Uej31YGfMX2PajlK-LnV8aQpXUZ4vlAzDc7f-4_RklXatM06AZx2FCJqotZzLDwz_a9NKzuw93mGBBbcKVLlmoUgfGaqnqp2xVFBpC5kt4wg7kHqH9XH7og-SCAQ-4IQngE41KxtBrQe6tgdcNa2PojJcMD0z3XNw_57mlefZmliK0BTDhX_l4yKyNTUugAzC3bj64kCDxQmEguhO833H1Hxe6JqeUVWa3mlY7BIRKRgfs2ZwDk2e4U6oyhXf5uakN1eRyUXvn75BYdAqbm5b-grhVNDTqy7Ez9VVSuJgDJfcWIV1P6el2difoy825zfluh36ibmyivOZRpV_5Edgt_XLs4Tmk3AbSGnI_7TlsFCRu5pVFieY9UflgUv47nYk7TJbWomWIOKKpFuAg3jzTprxWm2Y-N23EdW0GzNqxnUOsNf-O_nZPP1kwFakJ7UlEpopHR3udKLytVQKTjg6Lg6A1N1xCMjugHTXjEPmm67-eh8FM2Na5GjpoW_nKiW4Z3k0yqjJJPWhScItcbbDTSViK9v4ExiQR4F0NvLFJZOjipcfjQRPRw_GjdU455b3L9pM_7uGKxkQxnz66KXxB4GPqIaZkKfpXKTgKOV6MSomJ-T4hKOiyCPfCEIHqL6F4GkspUuCl0_U2Rof4i4cxe8VfWbJCPL-1uQE6lHUKNf9uvARNJhuz7mMWfIH8Pc62JofoHgZHKre1QgjExecc5QNPuFTJDnAADqFnYutlNnk7cmevc0LpTv5TGuO9adO965FxcPVaS264kXY_G67Bi7fY7btvDy3GUH2KIpCOKo9AA-4ofzqyYmgrifFX1IfxqMH3o0XSMy8GpwsTxJ42f_l20SitDNFgzkJwZAdN94DVa2oedyP87qqWcT5vpJqjQglSvxT5R7qZu4CIhULJ_lFagDVlefU9eAQfLagHWSJHp9yVt-Tbsf8Xom8SxOXqGDA37fZ3aYUuzhcwR5Ft5YupPUFLFQ04gClTQq4TWgi96GZLNfFw6CYkkh7b-p5qAGt_Cxz3TSyGQjobEk7XEbbDMbOnbo-dSGtMJEtoyP3tF37KP_0gQaUF8tH0bVKGHNDmRlwZZFg60B7yXnZRy8K3EtjxrPXgjTa__boKd_yhzXUtEZzpMqJXJ4GQG67hysR_WW5cG0LhluV8N_j9IzRpGro1qdSNwLvBe3ISJyLCxn3E0snKNL8a0U98b8u8DTKJ5HW4EvH6FjwE_Vq71kwztplkPd8YbP98mz0NBUtdCEZP0D9hdkP4v6iw9uGxOX2NxcUjAta0xO0QVvZqTTIenTsicnG5NiLduewOjsmdEGmU6AAr9VbiSt49CeiyI-ybXF3hcM6P4sSb-G6SBlzNwU08zSmAidz5b_fkHWGYsInNV3s0Y_u4eVCPRfEPfjQ0y5q6J-n_DjX63-Eal1OGsVX08tJ745f4oHUcKVxdTiZlGVGTblkdtKRund4AgkbcDajQnGAju1ozSEhtcqE2sMjLXMnBifYMUg6wsk-YCNnyH9VfhiOGjS-7OqWKaaCNaIVD_UCqfoV1xRgdk0QiUda02CcwVJx18W7bE1XKil5ajId_lMzGAMvXYe962rDTIO2QrYlewVG2joNICi6C_Iwu-CB-F0LVV1rSTdHQuDmjCf3wSDKr89qFx69SKWNPe3ZW2OhnNhZDj5nf-2qjvx6YeB9WLhWZO0wIjjIMoteiJgyzze6gNrH-GbT-K0fycDIfAvZuZZ3uYgnp6p3CK-74qaadtnXOj-z9svAkYLRGvw7iTVKt6MzED2l3sl9mSpgwGdZyDJ2f4Jbor-iSK0ZGm2doVMx_MJ0gPuUt0zhUGWAdkVOZS8WeoVeYK06AHC7Pc7HCJBUF-oHr6cP1A_87s08XhYeOMxhpDhcjF-qftGDEaqy-GV9eI8mUIeGKGSTOeaH7xZxdnS7MrBYVCkFu32gx8cDmGnc5HQrACMYAme9Po69G33vTjAUNclibLtRucLNzuVcDSmOpOfiCfw86Q-HzPnRqrYwwVhx2tIaYDNMJgdCaows8ET6rUQDDvibrhT_gQGgFvl4qjBp9RZ8PQ8LWsGrqV9UKFKi2PBy_B7C0E9vYMkapDeGRv68tqx05kHESe11EhLacrgd-etzBNcTdT3kQdintClv_2Atd1dWI54eBGJsol_7jahlzNiDoqePKnvexluz-dKp2bI4EBQv8R3YLD6s7Ep9S5G368qY2WMoDpTincLP3qZEtsjeONyzLArlSG3gGaYEDLBKoetOP6fYaPcKg7KZtpAm9GAwp7ROoaF5CyyXEQkQ2FBzRm_RsgCbMu3Pv0EQa6ji3yXwkJRvxyRWkn-BtQ5tDySJyj0s-OOixbkczi6vjuqumaH8ubYboOz-9X3r6SPAwEiupJzQewnGFgjHZB4yVaA8mFJWesQMg3JNQCXfb9V7aXuMWFdzc1IzznIdiEdZzB6XM7Z0QXFpDiaJuJ8N0KYHe_55EQe5WNKaCbNi43MNmmljyN2y82M7QXvE2Fdw5bVV6oQDE3syTk7Gccvln2WifP4HZQrYUiEdxk70qBAlTXXQwjtVLvJTQmPSdsGK2Xxg9ZtD1xoy98_9oqFwultlFwmfKI8NWoU-lYM4kr4rASQ4m720k_Gtq1scSn9oKZJyPDL8BuAmJeY5mdXfyUWHkxY5fdNJbW56qsxnoDyrAFj-bHwvZVsnKWWVHl7a9AZl5mPo8Q1Kjz0sRH8TobVUwgf6576jeioFF6UI7Xmnk2CX0jU_ghJ_f1qbqJj27jy2UFGGIslu0fMjoJTakyro5rgkbVT4eZ7Rf95aP2reZtPpkELRqC6Ly-mydLQ7V4u_JrU3w3JwHduV8oONqDrq_TpRhpoQ0NTkbtk88MdV1vrLFgdybP968aNp2LBLkXvyNdQF1EK1QGCe2d-QnWbPJRLc9Wvgh5cFSYfBgzXuJEt3kky-wJuujNjzU0-Q73jKn0UMWlaHTk7BYcURW-UpcBKLYRZLvRAjycAb_nveFMGl9t68QtrOwuXDV0zF-eQJgPXHPkfnTWEHwottjRubbIxJOzPaiGf6dKErNAIoK30tRUTegJJZHbCBeoszAt5NfGMkAWNTKT9CgRbrDMSsGkZJ6C8b5gm_K4AexP3ygXhfHMij_PLjVg0zOTsKM58pzwFDkRC3G-SUSVGyyGcOzsqL9lpXgzmVyMeS7HsLWg4K9YDf2A8j50qZVpN5b8V3dQ7iZHLaIo2m3Jc-WRVIS-ukAw1Uf-fVRLCrzo6O70WZaMpHrLmCvu98qr2YfYvQZMzVT1vLsFLcUr2kYoV2bMQY5-CKnLlzeXRB7L5OrS2FAFyYZvGr0BVM70fPXjRY0HnLMOHelT_oAIMy9kIqJ4jduxoCYJUuE13hRv3PQ95yLQeSh0Pr7Yn5XLMLjxD3-__6MrfSVyOeNcBUGIA38q88f8nisZTRLicS5g3xSM8SfVR6PrHdx1n5GHEkV-Rrm01Pkp9nsG8CIOOdP-ToEBfSSCIFVz3OKiUEMJA4UKd_U5qP8aocyC1cpRcV7ZDCMiM0epWLwp_pLOWb81Lr_4i75Yn_dSRNwDg5ao_FMeP6XFt72EDddfTQr3rFxCdfNTcl327odoEkOX5Lb5OoyQojBghsT6j5NIMlNbsAUl4-Ad_29wRPaLzUxlFIBuDG0AjlfdO4Wvpm5i_B3j6oJg9m_IacXwVmOaIapaP2v2F1TRiUOLorrSqYy-zClagIzoDvHrYAQ67ckbfB7dCpE-yU7AR3bEVPwgtTxPKgmVQA-S8FXPrgiPn_qnwpfkaD0CRMGI9Xkop2ECfgpjQbLDcZimkXlNWTSkpN1WgjQDa_8WooCCtTh5iqJta83T7v6nVUfES4yavjPrYNtGIg6HWxky3M30qjfXni2DdZcjrIjXp56g5jLVImjORTb7rcdZtRqPBmhPAjLeUybsCFs1ZGtaMVrx6mJUnC4-lGAi7W8x47mLBsSE_AQjguqh3gaD9kNrqGga0tDzEJBIe7HGj91Z76UqmGnqhSL8vgvYTg5SXOVDaLFu_5kPw2Rx483Kfi7XUrVRkYAsnKlEXzqoOh10U2OOX_OM0XR14obUhaJKWPGQkT1e4G0vb9JOsiTg-mEfh7c_LIm1dxnd1qsmfQYodXAjPvB0Za5R82pz0Thf7ortgzVjkPpMDnjggazXD48Cj9IBjUFyyheV9edXkD66O_bkwOAdDajCoW2MdhEoaaJnWBFxFF69tck1UibfWm_HRqWIR4dBenSEcqZaiylPaKm9U8sIpNU2LFOxLPZmeV1Vf8RSRPsIrAYgGqIlYaF49s_9FKrolSAkocbuBRMUdjiBpPvVBX2KExV07T3oh61xrIY_3ixaxh2cJlspHzvHZab2FLnqc_k2dK9wyZdc8U_NMDuaFUiREi2CuBuleSDaQ4bhnNNZ7fuXmkkalI3QnfdtcyPnzRgIBNxKlHNWL1VGfXoPS9ZrEsC96e4kXtuTNU7y4WQZagMxGbpPRrZdbc_o6eD-G19p7Hh0C39He8fGAJYU8b5Q9Ep7bLrzaqMLYBLByMpi40_C079PSGO0gfVBIwxlfxLsapnSGbSsOexYKNa1FM6eKUm32Z-cmYjBvmTfOVStKUDmc6JbvYrbW4uQBDLfm-iIVAKqsZAdycM4sjP7Xo4HU-kjLXNYjlgeZjXl8GVwP3jIisqOLTxvPzFVVf_OAO-s9ab-zftfO0nVDyQyZblD7glp4A1fhOTzXrN2uLfJkR-s_rCb1xWWQ6QSx1Kch55Q5Y6sNyad1CuhaO1C6jAmNPQXWjzSNedcBynu5yopKO_PsE97x59zPWWiS97-a6YlgDsNaAIV1i7FIPRrZHxWqsUfHWnL_uI77y_w2gBwe16Rk9QiWTqqIDQ--ojAJIa0MP4w8ZXZjBUHa9vf1PZUkMKctSd_171Y7pYZBmkGBCY7AZpLjCJh4yZTwTncAmAAkYLCfH7MNJ6iGTJWT5W4qWZ5t9SGcHrU0mExtrWdr5oqGfTz8c56--_5DvpeXCCpxIjNTl0IaPM9KuUYxE_JAvmPp8IVEiYOiQLww3GCgwBmcV-KZCpa0uEfhvwykamjKI_Mqa4mdlRpfrwKJBTwd8WgBU2N00pT5aAwFFpZ_o1vd8tSRonT0l2t2HVF5qpW1x_AT8Pl91BBJh8fgZfkaF8DXJ3SmLQyJMpJEbR89z3kpN2yB86YIlA_l4oZGWx-WujwDHuMXvOEzGeiynSBxZ5um34fE4uOaF1_qPwoVozVBEVR7OgF7AOBr_9unWgwsGHRFptwmWLmr2HCsRP4lOMkaxJOC_RR_xA2er1fl-0noLuMIhV-8B-Ht3gQSk3qwyyovqR55aHLnw2I5qtXj9dmRJ01-4TExfhPIwHTC6N_BCK9H8JkYtJEmRNsPwwzYuxYAWApCFGp79wCKYW34SW1fftILGkxL7-bZhuXcruPVTOWzCA4po7dkUpHSp27MUlQVctRqoXNvtZCsV2gxXR6FuBoL39LUNw-Y0_vf732l8Sm0JlxI8ZqzJZ-w16MXl03cUoG1K5hsf3c_j52XagzANFYLy14NfyYawHe1K7qx6j02pzN1qkyvBaedOKjMO4z9iEdr9DiDCDvzTnPSAjV1vDFcnmU3kzlvOy3v5efhlp6tTVsPiuL851v281wrfd-IZL6LDZYVonN1N6OXRaw8A372EtIrGHt_ETvvkcgfdDuvVcIIN3flMis1a-IafAk30tg5hmzjHxlRBktYe9MSuR5aVQJffnZldVWOvdf5tR_sE2mObBVsUgk66fE7nak-RgnCaChsgUZCQWrYcDArouAN43BD0E7DWcc-QIYtBjeSOU3MWpdnYdsBCeS_TGm6MRwX0Gak2WrbYX0m8p-mT3OPVlcTTwsela1twaASM9Nv-khmdjRQmoY8N9ch7Vgq4x8O3s0-lu9EpaYVRPmQ1csa6D0x38JY09o3mAEeKdV66-vUlgTnXrK48yPKgw7mQGFryY2xvoOAWlOJsrBIDu8x2HIbcuUSwLpEwB_ln6Rz1LH_0lN650EN86pw15ZJ4ZodcFLt4bAGE5snsTVRPsIXPbswsdqZaZVx80Hy9teXpZn4K3BDhZvul69w91y1XPI07MLgrDD9N_E00lqlAfV40fXjp6WKS3p77Yh78hJGTzfyzFtI22_6skZieFYK4PWM-qaZTFm1AXQ097zcpDmO5x4IkALLaELbmFkN3z_RwNJdypbG0o9FhmnAZY8R8w2HKFddx6uiztm6OhSUwEP0cGp2ncXtxo3TwsVKznTQcGB0XYLobKQnJzmCdIPbEfVOj6GQpPIX83bZfx3tbf6UX9bpYoTLyVqj_wurRnse_FkEdWUvrSGneBnxqxDtmB_lz_yVltYwZ04A2rezWBKzKxQFLnzZdk-fFIjGVqLOuVhXTOD74mOUINLBROgNMpejhkQMyWY_KVRr8H7jc4Nb_6Z4iWYWFUiiirnWNlPjSX-DUl2spoC9DC-jCf_Q8C-N8cF1X075XrPpWGidn5IMukyb3uksEEF6zYurozU8mjcw1f-KqDgCF6u0r4U7KN-aOQkP17D2eLHC5F_uRHgoLkVsiQgNyZ72J-KEZf5I6KhQnvP24lZaewUfy332CZHnAnN2wj2lrF7MIPsOtVbLpbn7hE4iQz1PKae2J-mDBcFvAJVWGwmOZUWBf261tu5KhZ4-YYtaez_mSYBXjSnGjArPwGA0AG0SA1mNo5Nhh0UFat-6OUe9b0eFjGFTO2Po85ZL_MjHnU8sYOIWPj-0EbagzhJM1EyXvpT3au08i9D0loJ5tTqiYqEGGpUtPEybn7iT0pNCk3BsZLAa3lpVNWzUCNo1-ow62ZYQEw3kbnrwjkeY4g7uHWVw0tk9r69ONRPIPlqAr6q3AJ0DGvb03zJmaP5n5i4LTFjhUuw03w4r0VXluEL7zLuUS2mEuHo8LizJ4fIvJKEv9ZPGIEBe8F58TZTGDgBpa-mJGay_HCXpj6a-r0Wlrh8CKdItmoDD_LeFkAwJ5NnFBfRrLcG-o4m4tDgExXI5WO4D0ODmYHWRTCmH4qInC2-VS_XolriOZ25owkWfQTC0xmnrOfX79uxJsAEgD-38YS7GsIVG7_TqOuBAGsNHl7Kt4BNPYfn2bz9OI2QDacMwqnFtCBGPzPczfMtPQEDvSBaUFL1r_mr72BpX4ZlWwRK7GidvFkWv6FWDhVgc_tJt-FkR8Imcoy7B5ZNKLjXsJIlz1xDlkuT-7sZ6jngTkhzz7silHBVPj_JI43NA13_hHk6Ggc4eO6UfcwxXFGZnYEbMxb4AYMCHwzeTp_rnLApvydtN_F5Wrq3hGhoPiy0EUV8820z9nKrZoxIprBMR73iW2R5wURlXWh5lFd9u7L-iKiD6TAwT3VWN9f5-jGp7WTgAs-u17mnNak5NFCzhJE_mj3D7g4n8Sb_cfv62Da9LLZAn_qbq_dpJNvqxHeSrko79vJ1mfWpAeLtIy9bPjIZljY6XWFmoYGbJ7AjAFyv94R2D2Z12OyZM8B6qshTMbu1S5r8EEwoEQRf56FnajtQpUd5Nv3_1_ZbyvGQRUEkNbAOXzn4jVKf-kXTtUfmTEVwcLiMvbNq5ii6Is_7a9JhQe0mMVOlnfaa7B-Hrn-9INVDtjdyTj_JUDkDDPUNfS8Zzwx7RcUBsPmMkAsFg4bQ7QP900xep9V0qiXurpUF0rfx6qhntNgLTESkilQ3KGTqsCadV2cZezaTisnLKrkna0dF9vxBtHRd7aCEceDnb3V1IWkYnZb5jc2vp380GblUbMYgI_IHx8d_61KDMNsi2kMcD5I0LFU5kUAoXXAtXBNy1K7bDUnCrvGyFdPk4VSG6gJYul49RbZOD8zybc5rDa4a8nS86exdjYGbi-mvoGx3E-4r9kaw2Ccr18VRi3RLorCOERyRq70SAEq9tb0q1nZFLvOamFkWOObQKTH4tn8YpG-GqgJBaVyVcgltg0kPCo-1L-fHomcH24rd0mRPhPDZgi73URAC2fKDBt1yitIGPg_fY3P0TsEIPDdp7sR-GgPajgEbola6Gqz5BJCiIfvfwWhL27HPKYO-m10cX_rPr5fJv6JtN4Iu2cZ7fUGoNJ2yCEEkczKfv0UhJ6VpxTWpQQbPSJ0LoG9RxGhkDgVN2hpvwSZ0wj6Z0I1uq-IBo2D9LFvrW-lkx7h90yJISNZDMHvaHiIu1fS_eF3hjyml-gzzwGqQeaxihZ_DBWRoA1DrCPksHYhCFCuuj5UwcV8q3LHoBl7te7XDgoQhGjGloY527MbO0Ssur7aPourHgO1j9ks8AUjQ2Z7Gl7o1nsD1m1tW3H-m8bGe44oBPvjPjO7Bzzx8VhRe7RJFpp4ql87bC5VYkBHzDpOUzvOTW6S3q-oXNrIEtbhRn2GaQtNEYZs9-YNBoLkrkeOiIvv34Rup16fJ2stTQUJwdXJioGRJ8h51ri4hw6CngK6yTaCNiYaalSr0nB1g15cvJhcrRiG8g6mFFK1JFear7r6hfjkTBje5iz8ktxktFxfzANrn9lwFxGg5bRwLZGjksPVOz94xJCG4i8WiLy_RQp0SIG0wjyEm4J3MwgzfbLA014qWmheOxxy0dSb935MzhCvD9xJ7nXL-1Bl-K8N6jeqr2yl1qwLop8A8NTC19INVAUODKwt-IbRJ6JPPEXX4uYlwB-OGECzoSz512OIzeUGy29CpCc-sPKO913PZ63W-fTxLIl6GnJEZGUwjzhLaSFJax6zke-JYNicvBdC38VPJ_6egvKZPAr566x92aQHRR98ZM-xSa6DaEWCkHEnlLemM2KXNz1HuNRA0dOEaJlhx0jyUDMejz1SMt-WPBI6zefWGpxifUsrQea5vBW8HOcBJlh2thwQmuC_77Ksp8q9Pqm_37a2JttyvvZGxhSoUvkNMIIHsHOqqPNxJXVf8pqXKiRqsohXwD1wF8P-RfjkPj54iU60chopNgyYHYNhNQQcKCGnsq9iHuPvcVpK79v81Qw-HRugvC0mM7d9gKYYwRHO6XvnKMu7V8wUrM-jEL9OQH78y44yCIRPNY54f9yYJdsST_YbVi6gHDcwYxTEq8VEA-bxK0GWfbAnIh4MyiAuIO7dzmq-MN0HSBtkMFDMeruwcf0aZIGmIGd7VCz-LCfrsUqPsSUwEfTuHl4dAQvNk3l-VRdVX0LkKT3AxodLTH8tCZx0tfRfndCJ4sBIjvSHYAmMBX27Go3rbC_SWZceulEIyRmFBISrA94lrD_HtNB5mzaz74ssm0fLbQrd_TxU8rD1EsxALU33XqVNqG8T-ilhK73E_zmumMFJdSk658_71DNmrf9nGXCNxUjJlXjUxUDfTOq9vAGMRvti9wIREwwd_aXKXReAcAc5ax0ubjb6vyOXeDEaE0VfglTIKikxmFCNMwgy2orNn6ZMka7_5lE567WS8XzCnO8K8QZo-SgpyhsALanwI3rCojA6IDwMz0eRkbHGuaNBC3HsfEWA9pulCtea_PkkROoXgQUGwnQjSVG3l34QFaUBYyjMrdk4LXi-HIOxcB3K1xp6Rsxvd7IzmPXGtinZbwvKGoqkYpLf6amrwy5nnr4ivdbI2b2mnz_VmNmecjHSZi41PG8KxjP2OTcANYaJEmJT1G_78UowUALGW8oNo_vNUWsSF7fFxxSsOaD2ZF5FU6m2Vtk0RropRGsxXmQKUAPADuD4iycDsRRVGhbUzDBaOu1mJliFY0hOmZSJX58KTkcSyHcYCrOZwU1Xwp91XIEFxyfsrDUrxLb-gDlGvbmVx07Sqk9hHWv5M9b8qc7xE6FmzWHhPv8oIycJXuaaYM2petNBQ41wHa-dvL9K0mEbZtsLK6o4ghLekMn__8e2cYv0GIaFtcsYg4DT5lyPmtmb0tGqFzuBH47l0Bj1h-vLUOWirBNqa8hIbvHBRoBI2gE3HiLW97bmPyk5D7Q8prqaFCKyFsdxd9iQIFbO6mKJa1sKi4ssrwNzU3UnippZwTiS-LDoArZZ9qRJ3jREYt3PuLtPqATGVyivz35AyFJXaOoU1XeGHPK_FI08Ab1fVFZcOhaDOMw5shg8p0iR5hMBftA24Dr1gA3JavHhow8pwC1SoWfFVntuKUUJsbZJFaBR_6vhj-QOpVoqWz8oUyJM4y_wkce6dcBbYcanQCLMg2aYRnd5lfHavSuNZ95V9rj9iFWS5-81FM00pb3GY9BvHMoAOCH-4W7r-PKj9J1FYcq61zvvCVandc0e_n9HOEwMNtBvyCht39JWVTyBnrFYy3vT6i2uZ9XskyvCiGYhe7mMbiAC0zaWA_2UpQqM6UmDlxgtFg_l-PDiqVN5MV_RLJymVginSTnbsKRCVTML-YItC4pPfixl1D6_i-Mz-IUqS-ncjH2ro4m6FE9iExkuDIbxp9RXaMnyxQZTU1aeHQuwYDtZCj1IwIIDTYgALxr-YQ3G8DuqwkJ4P3MtfcUEmd2FokND8aHXBnUUjUMOXRbbaPflha4nax4rfniH1EdJ2Mjm_OGUkYXNW9hYUcF6y7yKZbFeXw0UvvHLRYfDpqjyvi9fxvFKGaykUJ0aE1i5BhE92ZUAP_Me61fFy6x39G6C90z2iaS6kIckmKhZ4goVEIGhtgy0FTb_bABA-j0Rm1BABI3PELrkLNbfCGSc3dSimhM5WZeasZDKeM8uCWXd3hLLk80n_fj8WbKNsvb7tfvBEbO0W4tfjs-gNzlO7M28QURNldOWISJ5iu_a_BztnbcYI8HxIItJQyBf-7-GMYPgq3lNUQc1mVDn1pKZGDRUu3o7PKx95jbEzEua4DveAsKZNMNbwiBqeCq-ByPmkWKjN34CIIwS7bInbJ2hcBWqjsKAvOowUB9Xc5BmJ7RvPvszD-bGTe5-f35ptJ5Whrw-Zrz5kJgt63DcsHsF0YktX7ehqd193NBcbYrG777LW9fHD5hh0iV60menrm6jGBauFthZefm2G2ORQobdOEYGUJYwqUx1mFLXJK6-msDltegm9jslyyHyOaOXyK6V8i-MtAcwjBmeJoVJG56PS95i8e35xyx0q4Q0F5VtbLmZXmom3NhbQIiX4V7Vjbr8zQ9hoc_uWR0iWhnziOgqE0X4j63GF46SVIjjLk2kJ8Owpx4zUcxA4O9QG3zGZ5DuDMyY2QQo25-By9AllaRunRFBP1JvUR-iK3jnowkNEqN8eXA1TZkMSW7enVq9F_GyF8fbO3L2enAErz3aeolR5c0jWrU-BEuIpzJExTSkseHOjmnejf8XWXIDeCCMSsamdR6q_RrJh8q_p_ae1rejLEAiKQmyT5qksreQZs_4WEEcN7W2hKlqnuUdDmUO7rdgRJRL8AUA4y9CYSt4VkobI2DiGKOa26mip1H2BefHSjknnwLzev-d02at-1v-on3KJCGGSr-WdDIVIWK3zsq0Irpm6f5B1_YhxNX0UwjGEmAunVOrGguRtQ5ZgykRZ5Z0sySSS_v_MFJbrRnf9gd9zIFTqvZi5-VfhoIFt8nGMRN5qdZV8Fh2EnDYsVYlUWnJDeBS7HNhvlShbtzGG3oZEkfjxmYKgl5jyDIgoPue5lEOFIYLuLuSWehilEyEY4LvUnhFuf0LeWbEb4z0IEtKrl2NUqb09negbd-pSIg6-n7lwd_c6Rvfh2wCbP4y7njJrlHqIQm_FFYvXaP9bl_Fn9OKxvw7xSxeXuTX6lbzl4pXUZjS5reawGdNajz3fTHNjk73X0QLrlC4NdyFf_9MtyuTm63_d0r4j7wgL2OWrE0FBdGBqfk5ffkIQaUgOoW7mNnCfNmnu3KGUJUhUqe6q-9FATTiGxKdGxslY6Oj2xAUgZ-gbA6i-cmM5RdYCUKgrkVEbIaSUASI_8-mgp1gjjmsPgPLUG0_EbVSg9eknm_OpJPWeaqDRN8dnb6y30BZeyFnJRmaLMvOp4HAlZEQqzrBEh784rs0wl5REgCyAa3ExUSmKH6u-7mfJ8RIoCXpu4ulxNTrlIeI9u3bXXbgckZ8yFVKnBvoBBb_TUJBeMv_3uIFtwdrpI3kgYc6iHwM7Tr4CUJLP8r2hT4RB5dUqwX1JCaQVyLWCzRu1ubMjGMXHGH6MZ1egpi8LgXN-NYzjiLfBUFTAREEJBhZ4f8gaMw7p6J9XzjoGzSnruWUwRWX3y6qCxZT1ovimP3Q8DJM05ndNEOxlQhGTeOA1RH9jXX2VUJQoL2b8Y6aNPMDpwFX4xCil59deqOG-xH1Kqaw311osJbqL-jbl7ih_Zt1EBziEYqhmP46R4yrwc54QEbBMkSt0asMZ8uGis57e0WdmQ53G2EUpEvdoOALdheupXOg-j7rgy3-58O8awPiwLiU_TIAb6oqd1GfNMP49_Bl3EUuAExSWZIovK8E5x6mcusf-MQ65EYMRhpCFms_NqQRHyHGAQGO4tWockDStjwGRQTWARdRdeE8j_saIFcZsQjcSM8j5Z2yOR8bX_OJVDnVbVpAcEFQGtn3dqN_ifkGUprSRYG9Fr3wGhj34VrWP9N046l4Q9Nd4q94icIxDlMVmh4HjsErr8dCl8HcX9xbTHiQKeMRnWxKkfT5xwe96LeTteeHZFXrsSNRb6UsrNdnGjPgK766l4v02UXxxa_HTJiZH9nr-Yv03E2h9PTRQwn0Gx71Oj-9DiuEwx37zhi0qNAB1qAc07UBIbvH5rmcgIes6vPljCKkOmXE_NrYEA2w3S_fSKQ8Haywv_yNu8rTemk4tHFqAIuQ-X_9s9ZYZOHz-PO5DQrJhYhzYqvSk9s0j1pDTbKzwOaS9Od-YGbg8KYpDy0NkdJqvlUtu0xRfxVBLgETJ3EPY3KKoSCQv_S7-l4Rea5FpMbqckk1wqVbCxsi8TnDn1vRERzEu6nWnUfEf4GnhC_aZTM_XoaCneZniuxHJLCfro9dzoPzczm-CkGy50k02x8D2UHF9kfSusAxPIgQtFCtCLdie-J-8qsTB9i0Wjt8-y4iU0wR2ZLLSXyK93PHQQyI27pRWDNBaxQ4PTCACtx-lMuyu9RWx1JjnBvcGG1w11m4k0CleALNWRXRZqTFnlFHmqYxiTIxGEEO_OfdB1mJwJt61q_atkagcnh9j4woST9B0KSNX5WBRlPFlpw0J6Slx-2-eTwMfXjsCDdqVd-BVXoy6z08LtDqmb7u88cQKMqskxPV4krKcIlIpOyFr-AgJZTSm6vX4Rmep-YPiPaM0AySN8_m5LGujBwwOcnsxzvTplkW6TfEAXcQS0s6fsIqh6uyGhs08qv4uLkeLp7oezI985ALmPzykyecW5AgpTIhWy-84GZYUuQpERnc_bGzJmvni3fTiaZ1_QSw1d4lfy__Bm4UkjlFlgYyjaK0QQiQaCWeTu03d0LCIIZAtRnI2Y6NjEsOP65dwPSrcYEZfoCxBYHrTzJdK_FNy7yRpbKh2Y7VbyDn-obUwpRrJ8fJuaIhQdAS88z9UdPS_-oBVStd6Sitoh7DQsu8m6TD0BtyIBKq74uFZcAyyjtemLZOk5TGq2M5BZeYcbUsuD8WMdI0dZWyqYR3hd0M30-NYv7-1L5lIxySGIKOrIIY4JWCPs97ZFHpSq6cVnJn4GuYEhPXTybinh7pjNOnTAnAmUhXpjMPPdvGHMaPOgnMXANqVaBntZI-9jtDqt7NroTiSi63rkQKQo73PHLCJzEymCwUJTVlVfXScVK-JGWwtgqPSEEiQ5m6DN9CUV4rwvXYpM-_L3McQP66mX4-aG11-oLNp48_v9r2WU_VrwKIacXpL8V-ONDJqmdjN0RhBSkzVI-Kuh7RXnDEaLNemBGQAZHjuKJcEBdfYDAyUdqiCHrfyc8fCdz9-_JaSKSNjePcf_dLuKSAVt5l_nQyZ_I0v6weY8oSg0xGFGwlNGLW6olTGfRWLC61NODva3f9sLQ6i0dewh9tv9bzgsi2rPdkylH-y-TGDrScmHNgb7plrIW7PaibC20swcwJHQNZFYyBETihWj4aatJGWZaTEAVWx1gc7aCuNwd8vi8ItwvlotTkPlU5s5Zozg5vNbC-A09W1pE5xXpZLbigwnS7tQU1c2Zwtbqsx69HxqaJmdE25mtaosCcBsW2lmV6EUqi9VIMFDqJSDHXD6cBY7nmw4kP7o99sZ2qsJgZfCwoCnVf_jlMCsyGdKF4-VpRtnFdVxh8RnJEmRcZkOxsnPJcUaUS0vwtoLtc9lMkStcS1GfWiatZ-ZPzU2YOHux9TzchAVnJx94Ylns8ZTmmtCBpZZGDa5fLsP0eunbwuGbKzdZg4eal9p_qhevUfmst1dJZfoJfTXFRSsHvYWCYE4E_UPoKh_fG6z2wI75Ca9adQW2GszpUMvJj-0rXdYmF_cXUXP0FHhSvG-dnQW3xynchZ-1Y4dSDLeDAwRK0jVWc-Xp6QcsbCeJtHiN_mnA8gzI0-hy7FVpDPFeNPeIFhl1vNXvAkgMs-EGZrvDoXgQv2BDq8wEy7OdIcEWWL0aYQs9ceFOyGPhyppsQA2mKF605Vfz1hwuuUX0TNM0NS7unnqkoxcTAJY1kqMm5c0I7f7rdJxpLvyBDyF0KR79KYsE9OtcRj5ujaZgDgWNN5ZleX1Y-0mV_fbcEkIsIcurOOhWm55Lzjv8ZzRPt-_cSkTyjW6z7hwDX7wJxy55E-NVynnH4KLqN3yw38JY6wxxKm9nTWjqX1ur9aViqyh1f0FvfyLnnuulr9smRWQOnTLRbUjrw6AKjX-bTzSPiFPiHNnF55r4bmfHX8Jac6FiMDCgWdUcGR06YdwWoqXQAVAqqBbrv1I65vF8YmLh73-U0Xae_KCHF81pnGaQfRhRJY452KDWMrvNKRVPPGpHyfuNeKQgODS7w-ebSxWx_fbj6fCwnKPTkvOC_pmPi-7FcQA2Fb4EcdnCtEhMqcV7Wggaq38iMRbd_Zhqprz9MqqyPwcSvrOBqBCr77Mw61Fg0fIMXfAXEah1sjVny1k_B964_bmmzV2vJGnPsFrNjkNUIFstuEzBHYsyshkwwmFzd44UMXvTidCF8rGGz30Bw6VUzudyC7XYF3SmtXCD6ZIrVRlAk3WukTwZ7_9LspJikbyqFJNyAvAFbDlcBGLxPTBT1w4dmfBDSSueESPds4ejmBVidGw2j1b7pI7LT8GjNYnXSMwsQhLtgUIfN62ZArF4bLwf41NERkcT3VQPXJIftcsfCsGzDzOIekDHW0FwWq4NTUo723vpEtjV9317AzR3iBIooaBLYrRBYqoJ3Y5A2mA-SXXIWrI5f65pWMsG-J-81pvIYwwZ8SnW8juGT5EfyWScLBP8qJpAq_boXMfK7cUaBicaOi_Une25i0XwIIFdW7T334tIanHNYuW-6_7ItAhjr312rY41hksc-piPizC9grwAYyvLlxi9ksdIgEyrSfFiOkYZejR-Z_P6JnLg4KlYyHNCenBkB4VR03Gva17l0UIJ8ULFK2S0OCGZ5ykYCnLO_vxqNXW0r98VY_Q7yUs1yPDYtkkBy0kz_czKtGk30IEZeJFHYiheWcRpT7v_24Q6TzJtqImqXZWaRr1ijJuzOcRm2CX9WvHXWYwAth4iNexPCpbVBb7dJIzc9w1BdJkHsJ8dfm_ByIn7XKBYTdKOfjKVVm3qOQ-3haZg66QwJMLz6JPm4WhTFC-3D6tPRVmmPP_fbmI3L1gLlElSjOdbqrPSJe5m80gzf64ws6P9E42OXmqngaGgFTVXBL6CrfzO9Qt3U06-lFZPi3xi6CVzE71fHw8NWBwkF2XD4edpQVXOdvpsWV3LJX3omqetPPxdT6M6IZGJmxfmBthzmpx6PMpHzaG6bemyMUmmymGUwcPAVHz_xRAXOM_znL97kpZB9AqFnYBWiVGmM5zUvxGkeqrqdJvPJG3R5I7mU5Zo23CNlvrTAY0QtESLBbijm1OikSb45L8kMG6_V8pZg95o-4rT_REoFYdv8MgceKGiH3YyRnUgBRQ_w3nZ41flpltmhSar3zX-9uqSp-uPoE5UQ0j-Jjj6zwj08BbrnjD2m0fATSK9whQjRsL4kE-WyqCACibEBgBzwrMpeJKcDwCY6XHaM4suInHlN9Gh6W7MtKlra76VFwyjo9RePhcAV0AG2_hEx5u7gVfpTUn8Jqz77QXDwqwjgIbAfx-lfRtK7AVfjlsI4AEh8MU5KHvjw1YDvff3ltEPpnAU_qwX6bLF5nyMZ4HXW1-QjyKnwUi_-5glL2vmVLqFVDDwuSiuVZC2bnm_uphiO3qgc0RXs9viV4AICps-n19am6OFLqEa-AOvrmBI0cOYWxHzmX9ygHIFgK1iAj6-4vRVQPZNthFqsgTd-DW1txe7fZUkVdy0I-jd5sFczSQ89UzTpCPVh9ZDrBD2yw_iUgxNhmegoI7CWuyPOzIZn1Qv8VUMMsbgvx-NsoYQ3R2TtxCde_7vB6St0Ew-t0GwiBgq0_jyMm0WxwAQ0lV-FUYlOcnsGIXihZCI_oMhzQkIDj88RBBF-F8DeCaC6zi2t40q-vV3W-csUXZZtCK1dd8fOjiLKHf4WkjPIRXqkUzGsFLvLtKzJKN1w0TSx943q_azugD3_5t7aDs4Oc6fn49DP0iBmIYPQxZHI_KfqXg3mezWgKC0Y-JGI4WHuhQNr-dDobYGgCvqNvEg35UgFDNeh-LOq85wEfX-nIGRPcqt2IXBYcftTZ7c0hri6f2wBQY-07mwPPMZCcMcv_yClyrT8-Z8SZ_aMd3OfKhOXay8yKuC-siLUzpFymPIXLB7uzAx2DUVg-941v89v3Ave6voDdiHdP5MwZh3svoJ0YRaYVwteCEGoJNtRktF9L4ZlAXZA79xVdcA1tADyeu_8HD-ef2U1kIpIrWcGPFS6GMG2M0S63pwyNMHQieokwp088YV2I-pLSYVb-U3gml-SGK7Zii9vRX1J813rPpfNcR3kjPqsLRvEJYV5-CGuzm9vE5y1FVEJGkWX4kMXW9ExBTNX2haxJdxDAE03SCdNz0Iojt23jre8xdMDq9wcoAW24wR1MgaooeR2L71JsuxwG7WoiqtBRjV57j-eE7myTSAkwJywhx7bu0DnBf9Ifu5XQmLIhEJ6Chxn4EqxPD-9XWjFt59KQdHnAgvJNX0uOPmsTz7GrNp0HFV5qTDl6P_PaXmZcMU3BQ3t6TyDybTuugQeXscYM_prcs3KgGPZIcEiKkp0bVKjkm_LlvJblsvo-PWGxHxkQKxP-5ATdIF-gfqNi8yg9q66SJzU55lEB2_x93q7u2y5UxZ6XWfm7sRZDjdEUB4OvIbPp36vhBff6R1ji08imPRmDJb-EwlstIL1dW11DcA_UPA8IMdKWHOauUgKZtJdSb5d2kq_7PPpPUbKzS2LdO9PfVBCcpiJOvC8P0XkK2PCBYoVAKjUSTEHmqyBmF6bnIR7PsDWvL2GKULjVJT2bmVYC4acppnkwy7aI9aKsvlRBflmoEn15sSjyxXVhvQVGHVVBYNb9516AJARBqiclQzIMElKLeRlw5KAswP4L_0CZ2MgSpiUTxS8xg4tbjKvTQWvbc5ZBpF12qP7265FXyCjEIz62cXY22JPo3_OSQjnEidr-98fF9tOOO-VnMf_3S8m9A2Qm_2cx6qHZBpG3LVCuWl4XjBBtQ6Ql7QEnz9buRKBzTXuitNMbXLyYcrvQj_YzgjJHM20RUfML0o1-2_tMxLhY_Z4eZM2WvVP9mbkI_BGzSNEUDwcBMNn4BZuXAMvSwkXpsG3niE-PoMCuzBmka2dkRcC1LmPAuTYMxuOgIEwohFtz2BQrQkk8anzhnGjHfIz1pOAyjoHojNs05vwYXt-ocQiLWYeEpqj2f6N-tOt_5ycL70iKd5ljDWOtl-afB1N_wYrgWUlr3TWEdHwoLjq2ThLGCTuCHxidC92h-KzMxKSC6TxTYOomPRZYwYva-hXVEEqeXSCYYw7e0mnhb2Cfu7KyyyVlB2D0vtph1aXSqhpMAiOcbZwvYD1AqsmWPqLUGw4csbtblt98JQL8fX2_Krvo6nDXeDcYd27pvuLnudD4ED_c6TsNC7f6_YzLwkIPiWjrcuisA3A0WijhrHG49SohFOlUDRZDlKeKQHkBa8CUo6wiAso7YaZ2gRsJOM8-7b7HLCtxaWMeGVL-l_GcVgI9IYOLIFHiFxtgwLfNQJ5LEiUv5XKUu1zyCd5exKsfZOWBIcaOupGRVAzeL4sKdJaiwSc_N6TPKEVXZ9kLxowNjF99whXG92bdh0EO6lxspaG0_e9aiufMpanfy6fgnbXJobGa9f2JtZhLcucAZ9I8xPNnviWxegJi0L-4cqJ7KEiN0P_rNoU21840ZUHRa_nxQ6R0UHOo-FuoFGzE3U8pAhvWpAECWxwqZClcVJB5i19tEH-4HVfdzt6A6JmS5KJWRuBxuKxxpIsrKBlNpa9xjF3z7FyOYwIoJ3lN1GoGGj-0lcB9UvyfThPH-ZgP6X5sCVAobT2itX3JnJy_X4scu0O80UG6OJcW0RTIsLAu2Vf04tbdGOBvaSxuF7RnaeAJ31TdOJlIQBHGx2ar12pVyvtaIYI9Cs8gXiSGvZBVYVeOUmZ7ETr-j3A3AI8Vivx-NJM3fUtparTh9AgbuSf3NxzyR7HguMMjiAD1gAa3vuUqH_kL1agetomnCbIgXn4nIHp_lYYz7Alp7IO7_D_hPxvVFM2yWBr5APoYZBW08azlChM6Fg3naVjPRLA1akxG2vLFeFfWucjyAD2y2YlFE-c3S_TId_d8qN6SKN3W3IBVUz6BAuIPcHgTqyqaaqfU_0ghY4BaeWdxf66kgUXLzlT2DSCZVm0uwVzKdmLjU-DtNrWOlGi0HzjPYVZa60x-qFQu5pKPCERFPqaSQp2AmgT1ustVkvtzUGyFg26fZQyLuztP9rCM4YfznTrA05ueP5PxCypDzy0zwpMhuNrj8L1HwHhviwAVVJdlos4twW7c1on8IPqLtgmnKMmPgkkT1pztt26dQegKpD0yPmLnyULl4gChcDssQFjIQrIdS8WE065WmoRt0iro6bJzylrt3KyXuZhfDCnA92s0SXlLUhygbtV_AgH0pUokhiwdcsVhts1kl3RKEUHaY45zCd_5e61A6EzgyhGK_objoQJkuDAQUX3lzjlItvpBXLN8aJCb5YwLB9L7CNJr1Fq6_0PqebRsbxG8E-4jf4FL8hEbaWu37aK2yNB0h5QJyoDjLv775O7QQvkjalmx9nmZ5ojpdRHRnGk47uekDS-VWs7-ho6CcNALQ3RLClYL80-70hAJE8bwS8_cuI3SV4S7R2MJqoaXtSC3fRON8rEiQinYbPUY1ctCc0fswJ3pT_yRYA0kA2hrkeyChSt6RApwNVi9jpjyFg3q30Msztxfd88wJqHfUSCanywFYcPZf1cy8UXbfTM3KSEMentNnRX9B5VrfqqOok8H36VWuM5VDxZ8TuISnjKvmSGGZXCTi7bxBVH7j0HDxIPkG_FDJoFigjTTz40-IugUCCbxHYMqHnOl8Lro1NiWVEC-jZvbQ2BONNNJ4NC2B_8Cp0rFbXJZj3_0N4stBkoWcBIOO3Uww6z0yP4RgT9RG20igN41IdV3e04IITuDsKQWJZOiCtBqj5AePOglwcOLOxS3t1YwUFttGB2RUiVhoW-W0b2fDn88Fy6riGl1A0d-Kglk218dudPEqRFCaMciiS5ZgcywRfUh97o-refnhE5jHw37w6JsqUhfeW8WyQltH3rc5UOms5zOZMZykNRh5BkhRkM7agg4rso_3RUIjJO68hqN1RUXcNKvyoehuT8eOrTQBAyMlEvBxU_Kz-rNZiO885qu5bWFcNpw7euh13J42K6RumBjXrjmx1-JaGukr5A_0XR2f_JCPH58MdAZ7cDWN_ltK4uvbHtmvyFeVaIkCt5msgwwUDHZYuNTigLWWXHmKlB5m0JfOFRieIS9ClG12ba9JAvTDb8USoeRpdME7aILnjBSX5HQ6E0TmkVyhEpDOXgq-XWWwinHYT9vDIPekpEBbCpS17T-pzZX_8dRZkEJN2QADTfnA60E4_6ZOO1wVikuaaRq2oA_gl-7HdC7Wkx5NQSx-X-sSnrBRRa7Em3jTHDEuuO88EYchJjt7XZ0Uex_04kpThFjsg4hVkOhXiObN4BRfxjGANRJu3UCGnZ6eehOwWp6olS2NpwUucab4VciYNjKH2RfuNbilhk1aWq6DE6fkRM82IZlW_LNCi24vqss42uXD9J6WSqTCr0rPA3FdxZUzDDAq-4JXzkxL0zjaAUHtdRSuMAzxXH4GlVmIK7X7vHyGyT7LTnG6TKdwZCMGiiqFaBzx8TOHdyeDoaroObKq92FcNkOOXhIet4pOK2h2Hvuaz9aiTpHCgRHiOwy4WgW5BSpFEyASO21c7i_bFGoD72xETLXXXDTJAMeogiQdWE5p5FJpvr_K4f-y8YODSfdaNw2MB2dbk5pGtf5QZRMlBH--DxVMndZAUwvq3Z9TnrJ2-_YQUbj_DFTcd3YSqQxXcjDn6JdAf1C6nnZOh-11wmS7h_jIvgbCxt3JoeXdM0fRaFTyOulS7tTCmrzw5u6HlNXecjjV6y4Rr8HK7qSh0qTG7DcmXliTcsU2FBtbu8nUkqFvo_YZUrClQkFBKgvrEVguEu3ZEjSxJbi7ESYK-MXtKnt9MCWKpVNdXTREJnIAhM4Y_YMI6Eiz3jl3Pqt_qd6E1ZostletAw_rlzDDRjz3Ba0KVrBTMWqHfBMWeoSn5lSAXovgWLYHHXE72LBUtjpH0MEoTnrh6YmNBXdHp3y-iz_28h0JsuKAPb1QyG0Xe6LJDkQukckY9knPpoXUNTxp10DLzve17GYMiydJ3utHooCW8UgYyISf7YGXr46NyybyPV-2BOutykIt_lJLRzyMIz8Iwl9doOwT5kv_3QmZEevmFyGaka1VZVX94L8-vU6Tm-9YOsfHeR-cobe0MSxYeaTVWVGyi0swVnvNtqsAapg9gQCdaFRI8Y8WGi3jtePV66R2m8X6Jj90lARJbbHpasKuBF38yeVVpFv9fBo3Inmww56CBclCER-g0q1X5p8ummuGAzk2jvsoQoNr1AF1oKyPZyYYEhw7Bf3OmZEBhasQCCmQ691QDde7KS3I9ID6GYI41m0CP3iwzj2fVQLm3FsMhiNX7XCYGem3bIeEk8_YU-vhXeehIEVAekKdxL-M88-Uvu3wEjNTVQdqVrXMQzHpiZFDYtSmiarD2mbaTiIaPOAEkDcOs7l5XrDxbIhFxMQv9mT7_bVspJfpwqiO8tDjiR3W1sr0-DFkECjd39Webm7nPiTA8W_RhT_tQ_Qj4gP6Rv5tKdoxkL-CGwgKlkIPeUh6-Z8yzsSpZSz-EpZpm1noLA63-aDWe61AHeTIEIMOcIy7g3gT_h9rsSK1S2Usp0ey_RuhN8Ww5kCd4VyCxBumt1tfGrMSu6p8-kcx-rzUkkr-TTj44ziZMAB-v44noAIiyrZAaJdDypwVTBP4mgs5a71J7qfH7YlpmqJTzRmugSoinQpwF416f6zgR2xUWtVS_bclmvQZBcru4p6pmx0epgvQwyZNb2O7ecW0UY61je1ym91eLJxn8roIb1BJdM0bqgW91voPJh_9gwRdxuDHTJN7q1W0qS3kYhfhnnBZKKQosuDQbkQGqXA7KO4roXJgV26_j33ynYoirCUu_0VPGEwOJcnVP7aHf7vE6FuM5O2hjm8gZQyJJWXNEX-IpgjhIRCERv80Elq28sYEeVNa6F6jVUWGwoOIBwLZjABsqLuATOPIX_X6nJvVDY0b4MVfTMpXNuZN0hL7Ilsp-vxsc_7T3Nx6W1PkEQG14l5hj4Uzn8deX881b_jKtmfPR3bbAZ08JVPqbElmX3NyaH0YCiiqRAiCYnVS67we5qmOOaV7VMvkkdruTT6LOd73t8lfbM3XQaqzTA0jV2zOxAmg1JUQRtArR_jkh04SnU4kLfcCN8o2KlQThQrL5rBsOxceRQj4BcTJjlmrahDC12frLtUoAsZIGDh4-bwCRtdIgAb_FiFsVpyXPVa5BhTOSkMR6qn1EDygZ8RTkJ2qY2knGcAvJSGSbjJgifmfdjqGPusEUvcgA2RE0eeWBVWDx0z9ts4QqW7FX6V9YkUsmBmojZam47xvsBrqXBZf4VZXunx-twmabLBb0hcqMEYzrPSqlhSXPqajcNrO_t6PRAmQjETdAJ7kD27lkWKkRDjmvyd6BEVb3pp29cfHnViIqCl7sSWDtTvGZfWiNrvbIIihf9sBxlgdf_lbnHXHwMYBPl9Cxt3xigRnBLwmCdT1j0EBywkxnwArtdYU-MF6mQSvL3v4KPlKkNQ_5IceWu-ZcF7r8mECZyQ0THgwo_RFpwCCzuXHqJms2hZccJ3ZF8Z-s7a1w1l-L0qJrxFQHgi2rJvG1RNT8fe6AHBSuGbVBpI7jZkUbf8DMtMXpxtqDWkr-a3dHEX3vYTocxjM3e8YXPWdcHNMqf2xp6hBb7R1uqtTw9ND2p8Pf0O3JC_nP5UK6EpOjm4gwVmTT2YS8P9ghANEptQiEM9WUqwSNi5qSE5aNGyCYpuBH_uZcYwvV55DO6gR8RPkJzZGkbcm7UNRb-mXPQC1M0r072moIGXQmrH2XJpnL4k994zMPOQdeszsrgoob6V_CbFiKDUOaYHJRLTrhVhzoArKR1XEI28Yuy4hRkgQ7-caqZJxxVZf-VLINZjDBxIzLdZy7lFtdIpFXGNmrZaB0z2bGqaGm_mbid3jxKMHbnbzc1psg5mc3e0gZ7wacclSGsA2yxIW_ReOs-xBXKboXj5wugSGAbuAv8N-TBXqRJ1o_rc6Ur6Kn-_GqWlsaQKHk82ChtVq2lDM4iGJeBhqXNfIjhZ8-9a3eL_a-bEbBuQ6vHCJZRfffN6Brfct8AKGzgHohjWtZiSOkxCplb0uRwPpIlM3nosM08HZF8u2gSIiDPYbz0oKD270hkTs_i80v8usRNJM38uxBGfuYRsJAjM4cr-Q64a1QIs4sjbpvc1e8lCsx1uQAhlKVNxiM3cEcyR4N4V9n7p_viGGkvLemmmOrO-vwnRw7MwTRHhktd-P7bc-B3sYj-zcdt4_i_4IvQkTKhsPlS87P7kc5hH4dwoYN3wA3fFx6NBiWinRsHdAKWPyiRYvv3V1PfHgEFJGkJ2BqyocohAACsh6F0nintUQDobR5BD6I1j1qO1FeNeMBCErdKm3Oqoxh20DgvqdKdQZodPWrzcoQC6xFsm8WgvS1UCLWHGEJNgTCnAsTZ5M8DPALxNNe3Qd1loltY6aKcGbxeyGlHfgdE__o8xIzz5bELSLcsrljQTXBwyzdFw3wmndoaHU9NBSwijd33KJcGBYkihpXgK_GQDNWvHBJDoOrmZjwmBO_3qq8tAI-Od_VpCRv6ni1ZZwVKxNJZr9ttwmOQPypDvEO29qisjJ_mgh9ySERJbW0F2jICjk4mBOwUFBxiDQJ-zvYGSJ-YYZ98U-V-s18uBg-a0wjCyqt-9lzPsS_btEziQ4SzUigVEM72GkAV4RWkw_HOl6g0kuzlU9NzGPPjICUzcB9UbGWIpT_dXQGzjzP5jvVnf2hvH6GSRO_Ria3Wspg_09fBBfsCbFQMcQ5ucxVzkoox-OVHCQOVbOAiZLrwJ8k4jzLkSf5JupoqYLUmX2L5v9AKPb-BBAdNqZVdoTXLB_X-lN0ubTwAXDAyIUpkA7VepYYqkMErUeqLRO7MB-BbQFSp3822kuccqaYLNWSixg4Y6iMWXnqT5OIWEx1QuH0wVwJDZfDP17Wv_CT0hoktPN0SXdO8y-f5iCPSO_M2vftoWJbPgyBfEWgZnyCWCePkTY1c_tivhMwIRNzL0ZzQlRP3MgUiW9AEtGQVO99ZS_rdMyFSM8mblF-MMg9kOz82GBXx4Geo3nFka8K7Jh-gJqSg8NuJVCARbMmMvzf2Z4auUBFvF9NOrGx3X0pXJPzjmsfjENtIgolC69dFmw26z-2Fieadjcxw_XKxFQXATqDshW22MtiuZ3kxo0Ymg9j8R25uLzjxpCgMZ7LeE45Xi7ykw680fUzt8Oc1jhXri8LjMe9P5y02iAMyqzqhlKNVAUNk5R3HQ5hOzqDWRpPhQlZJrC2zM0HWu7zzTHHfpObfkWKEnW7Umej-nTLqeDshw1-YKITTeYlo1engJLaH-mBro4DMRXLp5pU4T1u4nMb-GM3KPf3iN2WTE9iUF2lMkL_M8W8D0L0hQI_OppBNNXnX7TeiAdio0LSfNy_7Rm17HWj--stssGRx98VFMGLbW9fwLAEDF4cbIDldL-xXnTVXEU8DqtJ4Q5_iIVW1RNROXeSPlRKqqaswEdo251AJgBc4BpHl2wFReZ0KiLg8Bk06a-vc16ZfEw2OPeU7w8PMrrPxvSEhbooq1cip4SPIunCvsrWD5fE-nIV6WuLwXr6YNLrXs8g9rpZoWNriJGALq7RXcvdx2aGTxQs-wuu3eAqFu_sRSQN9Oh8OzEY4L97LjtTUatSZcLiHMk3XJ_Dmqi82FSH1oHttRT26oBUbcS1r7f-revLGOaqIQOUHv2nIf8simoV6F1xOtmWwk6l7lkKPKBFV7A0b4GhIbjCfD58vFCOnmIeTFoZyFkhF8REwWK8EK9PyazMOeTOPse63qEflMVtoANsmcTS6Ui-wCr_RbpoEZIfSDvt2ypEiP7wOhOtDNJwa_GFF9rmwCe0CgjA0AluKbeeqFZ_hiqygAm6wAm7Bns5uRAu3BbyIjuPVIr8K7BezYQVNz6Bm1Y-38-TmUmXe9sdpmiseJgMjFkQ1unStpZS2Xg4_azZHd0NZZ-or8fst0JvxRy9ELWiarkSgwF5u0xsVxwLDw1cwy3q53L2U1GKkdUw9r_GPvvrwj4O4DOm04X3ddVXFVig9FIgcc-kFT72SAR_QaJUzfP9SoxItm0qXoIv4ij_F7fEva-ENQloFFmHqMbIcRvUNkogRYKcx49AiLePMk_QLGE-877IZcmYKm8iOPHDqgS-vIho2by7dSreBdlT5IC8vUUk4xvrucX_LV2HZ1IXsIFb4Bhi-b5BYmRyq-uaw7ssmdwZSPqpkC8Kj5uMWXx_EOa8cqftLLuIsN4yXNrqWRVe7MU1ev1rHYl_LpOF5DVxQGugijZnyYu6o1b_IpjKwZhZCg4El4_DyVSFLoZferlUgC0os8DXI6BWcYcGzehoZI6LYfmrSaUoxbl2Z5NphSWf1lT6HlAOKgx9LLge6OqFE2QqqTeSZN82JnxJgVNcXjhf2SME4gfQOWj9pIuS3T4oC4J3wE7LEDOQBSBNsQjjMIfXtwJOO3hgFnS_UOonpM6Sp7xuLaL0Wt7f-VMlZo5ctGyoaJviXSQlGPROwzDQM80jxRJMFLT0X79FJD_xoLJ8KWdfoYJJhtST2wBhTPvq06UEw4ZdtddYg_v8tlQ5Lz0zt0KpwgRYhcK-JAYXZSc-Lug1fzF2TV8aJj_55ZYFpHFTbtxANm00yaOnzPvWbjJdFzf8EwSsWLbr-IaNgEd57BK94KOMlQao_65RNlPb8O_hJ_EshB1_RFhAXB5Nzr8YjhXsgH2lT99y1tfMmhLh7U4kc3GElHx9r2z4fZ-b8VmqoE9y4MJ1cSsLrL2qQKRcKUIWQoCo0HHz6lG8O1pBoWYmLJ4v0NH9YcffPbR1GXZYPzfFZOz9R7W1TAAwxmkjllos2dKHpX8WYDch1oqBP9FfGX2Ws2OizkPNmhmiX0QcJ31xpykNC5pgZju53cmrnYr8F5YztS2YdioRB-G3HLCbu2ypgNptCf5JzeP5bzWanUfOhRix5QOVLV4iXCV5ZEHDwLXUYjpomWIRtcNsrt7bV4NNo7UQU3ax2yjQbc_YBhy5lGJJav1n9vQXpWCv0voyVvO_K8jMAT2ldFbxcNjVMR5QpaKdm-ZMDHakUC5QadAtBpJgViicPBXt7OxE9J89C88t06fQYcthc_adJw-WV9XfT5jWVtovNfFIbxwwvs-OpqDeCgvqxLiK_sujZG176QQpueXBGdRJIQEU9nI8w_zOpSYlnrRNG-RXujwV1JorJsnpqP15XK6aEDdmHFkGH0F-0k9BLEN3u1ApH_uiKrJkgBtZx7OUlFJSOA63jV_BmNXFClY31tPVfI42PlIsFVIWURkDvgJLdglY1HP5Da-OF8Q5cfluwb05Uc5WUzoj0ILSEwNjNXm8GTL27CA8mlzWQ59frQ-E4Wj-I2KflCP5eStwwIG_z6twkh1ESQSxoXITtUXfrLWlWKnboEWKG5Rrbi9TG1NWMPh_2XdLwODKQJ-241hv0AV1Iamq77oCXflVyHb2dmAMbLkvU3kleExT_htRc1QherLQZ3RGYvJbAIBLKJnmL0M8ISFHVik7Zto-u-vt8L9XsdopuMvkHfG2IgI1fassqQrh7I2VJ4GE0U7ZuKtI3VPVj7G1-q95Sm_DJSHSo1UZK-fy4JoA1X1WuHFQgCiTbZwnDop3MM0ZKmUHyGgkKY0xqQNZShGmJXgD7yZcwnswX6tTOIXXMbJy_lFs5zkT8Clv8cuaMjytvhPwS0V16Xr_yOytcBwcPSNctdbqcTocOflAshC1HvTSF3mMTI8WlqvAYwj4LFFxiCshvLmgxz1Jk2mtJNnrSfdgsvkY_Yxww7dZ0YejTytX_72tlpQ-nhG_dJgOayzUMto_kmEABhPP3mreaqlHgLrNjO5h05KU6AclqwJs7G61By3leRzZqjabkuFk1jDAWcYCqZVtch-iI2qD1ItdJca283Y_nEHkDRzgeZzJsK3-3s-MyzxArA-dfuRkzWIGbej8QMQfDe1PKY7YjqPBklLkgzFRkgtN58QJxrYlMP-UtMrr2JSz80J0UznfHyVi80o26vXhoHfaBeXhZQ23NFZFwyRLdiMSaycfoauzkBlpU2dLgFDKAp_9EDnaJNQT0MAHhwRGsLgsoOh-2NnC-4dC0Vt2WgDOO9utE3nyBNag24PPCR-hHbfSEsISxNdw8_LNQ8pZTA8NFKWNE_d8EbZlla8ri__4QMVowqZgFw4nTKXOJghkGMJd3Du7amu_e0ER5HrZtrYCVKZzO3MlrRs52UNkdhxU853N9auRVor1CPFqiW9sk8uAFRGaPKloeVfR6npBBaoyKQ_QV3CSIJ8_hcjm7AwSnVNEFsh1hiHKziyMwRr3t7wBg_CMEAtjtm__ho7g2ByCRIurtbYiczFXXIaNVA8dMmDlcbMd9Y-ewJWQbKDaA1eTt02RPnDvwKjeSIjZ6q0SAbtjac_PHlldu8_j63M9frMQxSQ_R2eOshimuLhCpX__TiemPlQJKuWf7hvntk8ciu3fEfVPncJMDhdjBkEUG_WJfq8xFOEuJpjpOly0pLrdMrzMv6d-JUIZKZaOoyUC95rfMlQBF-ogjyo7Jtt_LapE0rIad1xB960wE0X4d4fihw6-N0AWfkJQuNkoICBME5tlRpII6HpVV17GfM80e0Q_o0x6kR90SdWbXhVmeOvOr6szY3QhW6UQTD-yQHklPYQePnjOOcw22zpDs1Bq92uMLs54IuYMwBNjcw2lc3oZmY_mKUN3j_M0hUx9U7i0pnoEg4i_z4xcCLx5-Wvg8zrXVk6SacXsYWgZfC7m0-CAVlaGuin2UCOjvu_JXAf3diBEHekLYlXx2U4P3ZSxrkzVMimWC14qqNlJYnlZndZ5sj1uj30FwvqFP9R417W_gjWnHti6xF63MbQQXkY6zixok3jShZBqtmT3Wn8cv4m0iw9ib61Gt-SIOvgjp-j1Bu92_AQ86vsBEroUBUM5Tc1OT3Ww8BQns15MtEaM3L5Z3OiaRGT4RNKfqmvPVwNop7bcf3OZSPHLd20snMFtgTE6ZxcouFJM1A1YDfk1P4PPyA1XYdizEMaUXl0DQ2EZhkZ_8_2FmZok0UCtu1abqKe3rkYjB06rhXXE8OTxXGh0utB31vrYBZbxVWiJ4pnSVZMBCTsdUhoZsQ2kwFIfg17bS7kDNgoHVOLzHgqRUbfuWREQByXNNG3IE3jpTi-0zZmzCGjG_Oxv-Q-h0aAJVVLinq-dWrGyqxaG8OaAB7VN8d72nerd1nwd1X16j5WJ_DW-Dk7qHXk6lHELefJ3umuW8mnJWX4u90ShaiRs9ANRYqTpIt_NkiC3E1z9gUgFc-iBRkSgJt2fLk--1v9paoPLuFWEW9IAGNZGC6q4InnRL8tuBUUynxaBmUp3sebF_kTwqEvked8l97zx7AR4cFps7yqrpfLyR739HhHQUjm9l40wms9IoGukYoxUKNkHVJX-svNBgXecVLQ-xUnJ_xMZiT95RcU2eNvskXcoIKsSfxwHHvPljyplTVXak46xRSnmhdsOjLaeou1lcUV0-UwbQSCH7TYgQrO2ZWXBZYljQrr86RDNUTuOKWxJx1LeNoIqkosk01Bu6fyvhATkX8pxRvtcYIX_6ETl15W-RfsrhAkRhb3z_jxyu1P58UQWW_CKOgQ9RZuHmL97ewLACaTpUCxpHbBjymXN35BuGXRR3CjVwItqFtSASH1Jxc0urrOBlDGq3QmEywFa7wb0prAu9scLBvXav0cqwia3S041Ax_ZV38bx9hwn9kojtjtUs70WOyBb3A-RMiAJZIWyjBHrOqjxzsHQku_oOtTdmfegJ-lpQbWbk8suUF1m03ll4FGXCkdSaZgtIVF7hgNuK8-8WvLvBwGBxCShhjxPLaJRz4xVhzQ-uV4Gau5qIfO5rfWm_JsjOFqCT7yve9Xzm5PXF_Q1Rrry_wpqG4WYutxdQMEN5m47NMGG6Co0kPhbd2LgS0CXzPSoduZcXt-mK-sEWiwXxTOyRpxtVXYUG_WsmJ2nkyg5v4Zg7L6EVKY3Yvo8AAVqKrsnSCFmMlsjrHGJPUZGEG6d0Roy0Y4u2Nd2xy4Nxw7BXSpJC1GMSKBdB35exQ16sEQFgeMvV5wbNzK0DXLW-fh5ECRH7bYGfesiMURdiAjaemBcsgU7hlSzXgcJ-UiU9JT8JZiZSNx4eX0yhzUqcmOv7xtiuJblR0MNtBSF06Yi-3IVBFHPg8hp7RPJ9L2asioxpUW92kmInh94WrsbTh2TbiEqFIaZYf1WEB-G2-m3o4yvh5dYSVJaUbpD-pNaRwZ37JBSdSNa4igKt7T6sUX4UjryMBERbre2AKvHESlkcgXV8qhMFlcx1i-ayUHrnOmBSEdHYBCqaZ1yvK3hGRKyf70nffag-myfQtqdIkoC8Odoe6eu7qcsYbW95ehbfxmDwmKrBFwui7BSToC_OnETjOFUiA5TtlQKGDxEDMJC4wiINGKi4o3RsqjXQS5h_x1vXuo8o_aYMZRQooxyO5EuVdnTicBiFZAyd0XA58dsjuV877kM2BBIN_uzFbpJ3JA8_AH4SZ7rLJUsfAeZA3h0xwltjwEzSvYA3jpmi-ikdtBQkhDuMo_xOZ1Y2jOBlw2G0l9M-aX6k82Wgzzmh2mIoPmZcuJOL6rbLw_WEBzyLbxHwUyxrNkfjg3HP_39iBOwhb7aK1z_G8_r4Zv0S-EStcZ6VXM0PCJXHZka0RM-JidC7iu7emqPTI7mcOvoahP7bYngL3IHhkah6dl18qMWfWwVEGLT_kL5KxOHA8ozdCy7cJWX9SZPjtUIfb4WGZ9KKIFpm4EjYaSSwB4YkpnGJw5gPJbnzNa036vNBH1uxEWEiCHAyjR_Rmgl3mlo2v9zbp6qeq-Z4tq1RlZwRhq9rYquuhvMQprWnSFJF8_45NR-A97PRIJ9fImuV88B6N5Sx2pYZZYsSkVM2VRJpp7MyrUWnMM79KYnhxR-MnZLTmZainfyAbIv6KSID8E8Z8c0UAyGYBwVh6pFhcPQhV8xJkJrRkn20ABg-srM79LcnO4h0V8D8Bn7bN36pdQJ94KcTUQBphZVui0Jk5lvOG5EoTR9fzd7xSy-db06bNOuunYSoRoAMepJYe5mgAu3Pmv-yg2cbbbOnkvlS9T90ezYgfSy2WeQ-e3ARyXI6X6-pZDtuvhAtTIpc0N4UWFAyPTcrQvW4ZBr6wRQUjij68kZg6R2IAhDy2vkArJ8ay-l8Q5cDIMCQSdqil0-Nkcrc384Dda7431DKLNQnxZhzQ6jr0rHrjqQlWMxWcFWIny5GK6O7AAqJL1z8RI7-VguJQOaxUCIiPMk1j_omUkvctBw5CnfZZbeG7TYgGGr_GNTnpJlxDPPkx5og4F7t0sVesKIeMlTgQuLRmUTYQudOat4r6OJo9otyqm0x_RjpbqQZ1apBUBYxO7bHuNJewp8gjO0N5dLwVmM823zMELOnSnxJVYhOO6JmvwWygwWk6atAsKC1ykgnMWEF85hRFYHFLjtoIXIJa95DvcD8c10G1ZHwUF0muSHwozNyHS_wQMAsjIwuS-lJ8AXpxCEq6IiYwXl9juk-cB-8AU8hErmRdyvx1b0QCCU2Yz8IpXbC1_BHCIi4toIGRj6qmBhQNTCjgkHbsWcm6XDTQ5MP7PI6FnIENTYP2sLyXI15bHaVXYqRbw0DCVwxYl_YxgSVFmcM4IPBs367-BY4tz4YzTN9zOb8Cmxa2Fi0CA_cPFybdsYuqkehwcIguxDVcqFd6dhZAHqs0dldYYzUbQulQBfkMye-DYXJgoVGd2DM5RXYjSxjA0i7tQ74Og9Wh4J5-9DpPhDjA4AifYgatHoyVPrm0YStmzssOh9lTP3BFhZykjtdB9MYYGTpnVCbBinY72HhOIyMD7vXvq1J_tIxXyvDapJ5Ibjv0FmrPXWnLjn00nuerY9EAvAzgobeISacBUw9-OOP1cd9jRnF0Lxoyp1xOYz8vRQM--9XuT2xKoTsecbE8kmkSTrBsMxDSOcH2ujg_WR5bN9cwakdJLhd65Xy5R2zqiZeAYcEOK4qvoHCZ7Co5wcegbt45u3nvNw_ynJn6qyAU1y1x6ag9XZV0aTfgMl7M1PFt7M55dTDxjkYqVLyTRW6NwcZyYQ7PL0uwvNtww1YMYUssSKKCjC_BdXzj37bvzaMpjSnQVQjjwb06ce-aAL7S1daKRKenKKd4S1NixAIaK_yTWffmIqB-84fSLkYmuMDt6FS3mRJizFuMFjNTy1kl3IF255jgrBJYOkasxamaaa927qidDgUALTfiBJNKJ6O75CxjeeXDPMoPIMv5vqZNa2DTRplT3xtADOPfzMTAV-QJuGuB-jv-M3gOHOhzs2WvJh39obbPXsxkuSmcAxxrYYyly4BRseJxDa5J6zmfR06gzqfmVnpsIyj-xKe25B6lP-Dx25qZ3DVk0h3HEPhpU7QkoB9T_rKVmVoCLiTmqIv-ZLNVax1868HXdCk48YutIFgnfCe0xhPSOb2Xow4I8ljSRRVwZV8G7S_b_EwG4mjNs-dh86UIgJLetro7Jgkl_EqXK-4kDKDY_1i5VDO5lQbYQivxaFIVzbsnxR2x0NwkPR8PWPIUxTD67J4VKwAH3lwaqU09ymSlcuac7HYwERMqrjrjN53yHjmZ0nCv0UoadNZJHp_n_3XWOeVR46Oa2Vt1dkq6_M-u3k5pzoEfs5Z9OmW4V-nU9Z5LXrG9b0mqtgVenDM_GmqMrw4b-e4jfpxOBQnHP9PTPHqbyoAcYobJX-ntfoYmR1Zge3d-iI7DpHhqo7oDkOrlJE9PbMBCXORdkNmu76gk_graOTrJpaQYA0D7xCUaLZU6BIyr43XaCZfifEs4ZpPqZaJwAi_PKK4Ix1-fssZjtR8qvsh8Ymw16HzH1og7nND83Ir5bdIPaw8ZItkcLAOt2Nk1imgJkwx1eQoKpJvIljLmBdRn9wthvj2BvJJt5NV-Zk6eHPLoYpL-qUgy__OUZUQS3iaejLVemcx7StHn6zA5p6X7UJ2B0o6PKJr-KOoWozLgoUurhoiCvOrreTzurFevHIFb1BHCi3kcJm4e6xJmJ3eQS-GSGB_up8uymNA5EbYW_dsWjjBHWDFUGQH2E4UkCV7MDBWoo7WrLiRG-VewCwQz1TvCC_9GKlicOSY9eEGCrsbheTF9fhsVTsUQngLozTY22jOmDC07V_p5zmztlvs3UuAVBFD8IGpj813Oz8DwplW-sNYYhkxbNVjJ0PBAYGDcpeSktqcgfLnGxCJ1gqB0sr-fNYqJoQw4wffquLA8kfkppbyS1dnXbd5jw2B2haY_kZCf8hssdn2BaksHN3cJzLPOzdFKiBKn2qFUyuHkRwMJPC60pIzI-hCVdC9BmGCH_Ur-nWHpxW-iyEIQgMHHc2ZCoebyejGbSF0nANCEgYb0nSNJu_GRSptW7y6mC9dc7H-ArZIvF85a0DMAfBOKdLcRMQE13VYu805CeKATV8W5qymGvPG8UiZJ0xONVkMvIk1NnnsBqms1NzN4rw55bn9Rz9kLVobw9wxtXvhe0OrXtLG9tQAFspY9P-F152QIjplyCNUsHTj1vH8TmGJ7hjvVnC0veCT_O4yIPFW2yEe3haHdvFku85Bzl7-v5VBWVFN03tqjATepVJThyHUkqRLj8PE_8KxAwVKpyCL1EwumgK3_UmRd84NUHZ4NJlaSzi8gDoej1-A3Br8aLr9Z8KskrekNlOlTlz2dG1XPTpIIiBdJaxmfPtTEa-9wokLXEl9szcWtwwUtZMKu4NA469bnOc4FJPlaxEIFbE78u8D1J5-breEwzSy-J4s9dw_ws48jQN2tQbUZjy77rr2r8R3ZcLcutkQJrooK1mS_WdjXi0O-1OOMDgEXhIBqhkhzrh083_mx5-SdARSZbaqMOiF6Mu_1T8mgiAvhaDiihgVj325qourEVJmPmNkWMlyJ6oRK8a2DqFyBfocOM9beYTw3dXc5ZbTAPOGd1pIo4_sNFhHq4hnIE9bVkrR0SP3VyJ9oj_muQmvqS-6uFv2xqS70yuYiJRnql8viTP8JsghvMRTA_bbQ3sfjI9pDJ-K3RXQmI6H9txCQJ1_GB_pSgMAklB7ouHYXOpZKX-WpyikK6PPBGvSzVV2qZSez-6n--gFdIAtkPxwDrXkET6amVJUmt-MXU2E3Kedzo1zF3zSe7hGWW8QoYMXrVVl4-pK9fPy0XdufSZdTQNOS6R2oruY9qDBdSwfUZme-3JFid0LFB_-MzuF5Bwcn2bsLVvapB_GTJhitQLDwIPofzdnNijwXu8yaKkM31CsGjUfxQ2-XMq24_bSwyXzVAgLjmpocVdRx_zOckLBqEO83S1-TzQeyjvtK98DlZp1_MtUu6EbubxqliC9f9p4OgL6h7eqPft3Z6oPYXBU58mR-CbRKtv41so5lsxmuL6b6toFq2N8I9c3qLMskjRoKALDgdxkLcu2ychzWIAk97LgmzANiwR_Di98i1wsrNNibGZwbaDM_QzoPNNkHtOrp-M7sLosvjVGgOI6IV8SEDDsb2A65TCZgOnMmvoPtkqQlQbIYjHtK9KTcKCmErq6SBhreYaU1fGfaxMWUywOMFGtQRV0zUQWKSuAKsluvmdK7Fi6jtWIpsw1dCQ_eUgMYKbsCfXNMc3DJsgRoLXGgmCr3_jjUUhOSUB6qz_6t1-nNGaaadZ7BYuq3oDsGYQN39ar4xAtAsR6VHPytBAkmoJDV9KG_Ru5o_YYgUZNgoi6IIYM_SGRaGaXmtyRMQoAI3uO8VFB5h0LJe1yiUzBI9ppumqTq1psyDXjimDvNDOZQJ-DzccN4dBEpeJaD0KR-V_hJ84UuTYe17FmhfPUzvXyloViPutLt-BlJe9BlnODenNhR14B8oFv4KzY5m1GioF5ZiNhXCHeLIoleW2YoX8QHZyTqMil7j_FsXGg0Xlh-Hy8KZIzhfLuWZS5CPmUwmZBPz0_YAx5zks6pjBpB_uco68Np5RVEk6ap-uxAjjIaTQCd6DC2lAMawBC1k8HWV9SnzEM6sZCBnUaMfFwGz_rK5X3_VnI49w1bAoJvABiKRS7kVin3msUqIWLbqadSzeK5MyMFgSWzXgr6ObumowhNLjRovZe0WCPjQRLYf_GJySsnucesbNgOV-0ROYT1h-CdIOYsnWNE99QHAhVbaBsqaXbUtM6ba8XTGOC9SJ0Lnk1PAgWLUGzl7xPHDhWjgnzK4uCZdP31I3JCAbD2d-Hy4K5LpElECMeg0NxfXT7IJFTiHpvg2nlUZC5Uv0XPNXdO0oNo5phWs0hAT2l_4TotmLtq3VRCmlr0DhVSfkoH5-yziMP8TGW6eorwpoWjOkUI3mDD0_GpWXqqdRM549VCX3xyDQSFzs5K8alX8tmqYIzDWGThXIawUmd7ymSuw33WNTgmjA4FW1_j_xikYNTgHeoZTHYTsaVmh3HTR2pJx-PzcFFA_A_O4Kq_xo2ELMdzg56bW5BsPzbKIlIhErFns7OLKRADRvTPppYPfrWM1VkihWWuoe48QkyQKQKmotQUnBpcvrOXDWiO1C17GI1TmTGZmtG0Ntd00JYUlnAAwcUX7WEp2pe0E109sCvDq-CYCAM4z14ixexAaHFIGm61xtLXMuHa49XN_d_Tc9mXYMePEvts0tr8C8AcKZBTSmzEDxpmPuZr3AsmXnKmk9j_31iqTXAbWqJR4VH6c0i-56jBYdzzXbIRFcaItP-bGkh7BDqm5ssguXvMGEA06FilAo61PRf_pLd_1yPSYgMoo5dYFqdC0gLVgSKpXXu8BZ_XM_X0GTBEQrQFZnFDEXO4pUVz-4DGwZGzT3q3h0wY6qWDFKFwkbYU0jQQcrvH8mrRX3bPnkCvmthCdLZfpsoQ31XdkPKLPlgp9VIeN62-kUb2r4mxtcwilsHmQ6e8lxAr-R-WPWL-9R0ZVfk1RXlNBQAwNCMIAwOjd2nH6hQaOKow-QKvw";if(!e)return null;if(Ot&&Ot.sealed===e)return Ot;let t=null;try{t=Sr.parse(JSON.parse(un(e,Wm)))}catch{t=null}return Ot={sealed:e,bundle:t},Ot}function fn(){let e=Vi();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Tr(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function qm(){let e=Vi();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>te(t.slug))),e.keys):null}function dn(e,t=!1){if(t||!e||e.length===0){let n=qm();return n?new Set(n):null}return new Set(e.map(n=>Vm.test(n)?n:te(n)))}var qi=null;function $r(e){qi=e}async function Ym(e,t){let n=await Ro();if(n.size>0)return ft(e,n.values(),t,n);let r=fn();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var Xm=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,Qm=2048,eh=8192,th=32*1024;function nh(e,t,n){let r=nn(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 ue(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
|
|
75
|
+
`;import{existsSync as Mm,mkdirSync as Bx,rmSync as zx,writeFileSync as Ux}from"node:fs";import{join as Zi}from"node:path";var Lm=new Set(["0","off","false","no"]),Fm="network-notice-shown";var Kx=["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, the plugin version and how it was installed (npm, Homebrew, Claude Code...), nothing that describes your machine: no computer name, OS, hardware or user name. Command contents and output are never sent.","Usage stats (command names, token counts and install health counts) are sent only while they are on, to spot when compression gets worse and fix it before it reaches everyone. Check with: tkr telemetry status.","Turn all network access off: tkr network off. Usage stats only: tkr telemetry off."].join(`
|
|
76
|
+
`);function jm(){return Zi(R(),"network-off")}function Hm(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Lm.has(e.trim().toLowerCase())}function Ot(){return Hm()?!1:!Mm(jm())}function Gi(){return Zi(R(),Fm)}var Xx=300*1e3,Qx=120*1e3;function Ki(){return Ui.replace(/\\n/g,`
|
|
77
|
+
`)}import{chmodSync as nw,readFileSync as Bm,writeFileSync as rw,mkdirSync as sw,renameSync as ow}from"node:fs";import{join as zm}from"node:path";var Um=y.object({payload:y.string().min(1),signature:y.string().min(1),enc:y.literal("v1"),fetchedAt:y.number().int().nonnegative()});function Zm(){return zm(R(),"bundle-cache.json")}function Ji(){try{let e=Bm(Zm(),"utf8"),t=Um.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var Sr=y.object({bundleVersion:y.number().int().nonnegative(),signedAt:y.number().int(),filters:y.array(Re)}),bw=y.object({payload:y.string().min(1),signature:y.string().min(1),enc:y.literal("v1")}),Wm=10080*60*1e3;function Vm(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:Wm}function qm(e,t){let n=Ki();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=Km({key:n,format:"pem"});if(!Jm(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(un(e.payload,t))}function Ym(e,t){let n=qm(e,t),r=Sr.parse(n);if(Date.now()-r.signedAt>Vm())throw new Error("tkr-daemon: rules bundle is stale");return Tr(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function Tr(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)=>ft(r,n.values(),o?new Set(o):null,n)}}async function Wi(){try{let e=Ji();if(!e)return null;let t=await Ct();return t?.signingSecret?Ym(e,t.signingSecret):null}catch{return null}}var Xm="tokmizer-default-rules-v1",Qm=/^[0-9a-f]{16}$/,Pt=null;function Vi(){let e="H7EujItpdhjrSuwrzobe9zP1gm6ESspdQtzJbJSAcamIv7QxfOkZFPgPoSN3ffMt6wShYCrMjjwkz2JxJBPOaFGoeScGT6eEfJzlpP53DDlGlqJgR3s9sC-6ytksJf8GmQlFaAtqOqrdOB_bsF70hTThnbh_K2dDCtpeYWix0OVOlLANOc-k6Jwx4dD6a-a9T6i1k1JTC__mvhuKZDOWZ-82qzh_IzjAOcf-_XtUX7f16UM0GtbkLH9kBd6BdWFHatCvYKHsb0_zFOoO8OM8RAqQF9qX0KzByrMM6LWb-8hJ-N8fm6DQsYgQ1VHsrulQGPgMp_tGqMQ-CnSYMZO4sYSVxHRivBEqZNc9ZHR5ds_uEKCaaE075cl3DrckMhqjDPhBGXXPvJFAzUePmexCmk02N7nhgT3coIuHdfEe5U7C35vX2C6KRijs5Is5ehVljn5lNr6ayIoV5IPFFHWOk3eO4L3-OVmGk1jU1Kv1ZThyz35g5p3wk2yCqDqLpg7VWnc04bVyaf9oKUAqEMa-L2KZBl5eXK8arfsbhYfl9w3ak31w-n_X28qKc9ld5F41jzZh3nzpzTez_3YYuDbSp_0ZY1G4uLN84aTdXAdNU3rtCwfhzuuuj2qPymx4EtfRjitqjXHEAn0aF5nATT9IhzMizbp7dB1FMkiGGtaukclQoeT0t4-sbQXHkIKAJ3FGLLTMqljBEeUhzYj_8Eg665LufTN3E00eu0GmYhZOtXO7kufafi9kKNq3lws07O4AFcuUxMyKpe3vtLAkB2TU5LTI801yN7Ea6p9Dq1woOyrWDy1N-7m0J34YDySrzIltjTre_p2SGqddwregzBgxB56P1G0KVYGrp3J70-lIB5FD1suen8UjjMwDUmNRnfPDa7v4hk2VnF0mH2wwSMlgl-gMoTTzyhBG6EaaVMgiqBviLtjS7nFtFhvZVJXXUEvS83KjL8WH5nx1qxODvokDi5VM12WWlt8-b8BPIuIGdvY5jY7x2ZqxwwllGeLkBbjCEGgpk8NWGi_2wqaInW7-K3AXfADjZbYv9lvyVVL62MNbz0OSoc7CB8jn-KcIsPGRsAK0i2_XmfoW-8qNPcbaq_kk8IPwY-P-LQbM4YLgv75d_YO30SmjESUgumFyNDgSMqzqcEpPKZvu4c-iUGlXb6AekMBd-6SOKGp9QlaMvueeZ47uCoDMfTVAKcWy9aMM4CMBEE4MQcfJ54lULl5yOB8sguFjpbV3TyWo81ON6QOOHLwJyWYUiev2Cm-tDbC3hG6gh4DRRLIIS8yO_jC01Od9EANKzoePjdZ4d3nL1ZNLQ4Nwyu6NZzwNbJ5s3e4O9lexZawCkptGe35kcP1JelO2esvmdUkqAUGXS6BkaSXzpB2WSNWsU0vNgyAyx1MyLfmHKWvy0XrVli0aQGSjbPGY2fkZYeX9XB3prlXO9vqjF1WHM6KiJdxLhjyVWiAgdL_dLLE1zeDkSp7pmlqrvreQFJP-iNferOETI7kbCT3HAkPfO9tLLlpguB48yVlz1rj49Jf9wmNDaG7JBQPCkzW8bXSTHtBbMn3NiYHqwlvrLfpPMFHg2JQ5YU6IknLtyL_dmcp3wGkLnxWWI8V9heGNpBIFTi9jvw4_AjG5fxQowWkIiYWPKD5DcYpCd63oc5kt_v9uEg9XMp3Yae96cSd5-EjJ-ibGxgpJRCk6vj1yvaXCiNBz0u8Z5VL_ctqwpCzIJvKc2daB0DCJVCQ_KqDbI98wxP6IfawO_rJR7YTs-IL7KLU1WCiIPuumthEJd--43a3x0UNjqUDvn-82zUuQ_pyeZ4kVKl4n9sG2lmFLel1dEIKoEBtq1Mby0ZVVM5x_63ZIfS9IVaGZztGdWFa2HsCx921SrI5FP6Ue8lWQ8Yb3_WBdqJ-LyV980GIypVsKPuh9Zlo0je3pgU9UhLHmOH0nfziV-zLo0j_JkvmmjWgL9Zo3YKE7xP9N1fouKS_mFbLh-TU4oUJUjXupb7GJpunyXAAR_yt6focpRMYvfk_6xz4euDUt1hAB7x26_GW0rZgEGDO-ghh_eptl9AT8jXj333BsvT4bu2UthkhKA6r45zyfbQxeEc568cSgvqqKtRs-LIzzufzoLPQmEGJ6fXocxtwO9klT3rvh_P7O-dUQm1eCaD8oa2wKOo_L0PQx88LdQ59bp3vPIwkBLRbEkGjYGY5nEORvil2xfFoF-BhF8K1bw4qpe14zUIVFTTUDeE9x4Kqv_BM6WJRD0oU40DoOfwiFYJ8xEKVBcOCYrOaCCENiwXgZNqM-tPDvXyBuIesP3utS_uzoHuLb079iu--pFVgHjvHQ3Jv2a-4OJT0UgKGMNqSbF4S5nrngVDXWgonJbqmnruzhd9V6kj5soYJ_wsHaKUs0rEQuJWwrEGj6mOd_l7kH-qsrgAJqRhhJa5FalY7qrJ1BvIedSIbKSOq-_l_6_T0PSFJiFy3PpVzJeiSepEpEU8RDLUOrZwMmr1nh7E9q4QdDMvEl6HrKifb5IGmchQkPC7DQQLEBQbFEv0QN9wZ5HTxk3V65hrdn6l63cvcm_8IDpnLyRX4BiNaNizX9JLMpm0Gl0QcsjgAaPF9icun7C48GPTcswlYTvVIuoV8yL7nTRUSb3ayy5wNyubjHofPKHgDoBapKeMzrjM5GMpMrTf4OpZLihBFTuY1HoTi6sQTLobooYcbKned5-o0dyxeRLPUkEREh1Pb0oFJGi-AErrlHSQtWWRKTUKiB4I6DNB9dixNboo6MsHboFnYGDvZUX1Tx_MYZwjNn62Mf56tTRAWslYVTCFfpOY-r7UMVcezcYTnkIAEZGdJuKHka2O4jjS-FLOLpecyJk6LJDHYVB-4jvzdQhJBXNijWUXucGg96eGjXD_plrf-E0HdyzwYwHeVIw9BK7oZ4HwGBsmbvNquX8VS7HBXOCdB1dE78DS58Ne75LgZZC8tujVK-4KbcEtqinbgBDzHFDjtOuYn4ueVMBRRwbZlVWGejEsTT9RSpzevnuzme6ERjCy7t1EsPHirdVkHwuRsUwVTu7aYVhFrR9BFCVVurL6a4hTHbnxFTBmIPbfJLLYfk59RIpS_kdO7vvtDHbwCjJfDDI7xcasJ5sZnsnQLKLsV5Xm3uS3Wd-W2V7M_0Mc-gVZSqWBO2S7d7szz2ZNTPr2n270i7q7zx7F2etmzz3VcMuIEWv7TclmZ2j_i5K02nRBcnZ5doHTOLEUNEPKVpmlBLOMkdLW-ArqhVpKcnvYvDrZBQ17wBUod4sbvPklgyeuAE_HwtrKChZ_sEmaP7XOv8ZRt1jHUajbijGq_B-EOHR7_1hkurXyWyLT7MyzwvmAPTSUsje6TOzCwbdCDHh33h0IMaW41Id7ekrJfdQLD_dX_9Snbpj3v5pw7JooAbUO3jBci9snEubET8IJVk_jsTXSBdXhCchw_wK8DRVCEu7xSt-jcvXpV04xKJLa4B4GZaBEalxJE9OGLK2JFiTHgxb08zAlZzD1sRgR_X2Csjh9jEBX6mIn5Fqa77BTSLJwRG2SBzEz3dUXOPavUFFjY823xYOJE9rFQAOR3MsVxK1GU7UictyJHyXrITtLPIRCJr_iNCSRFc-Vbd8Nwl8K51T-5tSkAgKNomk3DAEJucx39vxdvdPCGB0SI2PR7NvFg0B2LE6DOz3KH46eR351-skhVXJYQNUFeyj9VBli_D9DGTM4E2Gssqg3Z59lcIdJYmuo78VH1LJ3WhDTXdJ2Zuj4JTuc0gUaUF96LdYeqWMBnNU-8AaD5-QJzI7BsxEGuHI9uT4u0dIe5qd4-fkqwRj3xGG-tAthCy_EC5xgI-wV2LxnvRq2ETgHvrEi0fZJ2EdobxDLOOxHwQ5by0L2ZKmDDnOJICgKavCitUGaSwYCh2Dc1OHSTqjpcqn2H2QgdlAdPnvtdLX00z9Fr02lUoCwv2aPfeCNTOFu15nxVhi8Ok1B2jpLOyJZzjGFTXDiXwfkoZ_Ky-Y-Larpyu5ZJx5MfSGzIfInLkmgAHtjqRwRVOM8Se6kphnqw9McsHRoYJyTPREosDWu-wL1y-XhkHF4x0HYtoX19acmP_tr4sqfPe-1B7qEB_4yNL1uXJg87e0JRVv-MbEs_dlPvMReVv4VTq_J1r7M9KklG5ijPrSJInGMpqzO1vra00S9sNEYHdP-SExPXavntImIJb0LkT1__h086uSlrKW-6jFupft4yrFF5G-fRiYxW6H_37wYRKJlrrHn947cfsfjRjQZZ1fIoilJH0PZp4_IfQmNCK82G5VmPGhlpbhraFdgEoaoUATaOd6b01VrrTjHBYkTV3_PrZe9jCMNKMeewhGPuk2F4qIRdBq9j8ToLew-BdUj39-ged9oYgeS3Oez3OvrC_fGvuB_qE-diPjI5TmEzQdCMAcI202ukRhjZNU3-1zuXPCnNX335Efqbnmr2BablM4G0o5zcuOZ-tZOvprQXDjpCTlJriBFCZnaGwJ8TxdvMmZ7nP2-U7EXPEyqdEZYi-Qzbd6qFw-xJVK1hTbodbAnElYEnGjrkllL9lEtGWYgQZ2Ovi2i-bpmW0DSyYkeOe8buKcWqT2w2c5UvdRTriMTI9eju_4z1ChbRlSsAcNR_Bm0HQVLYJhzQyXdLVJWViVlufFj5law_oaVGmwtR0RG1CQOL_ARiztIyBgFDDb7yXvmLHhZ8LLslQBGlsqEoaulysjD17keW5E4i_aLIsqeEf-tmuQ0KpMtSo0S-q-aW2ERyB4aKO1P-aNeIIu4cuV1KFCqJJZpCg03BpVxHXOWj8jj7NfZjfHlssYF9-ZxJYLAkIpUslNuB77XAkda3FRQYhbd1-kfaojESSIywdRmrrjgUJIhoi-pFAV2ykCURKgNE_JD_ghrUNpaYRVGX5x1lThOVmK3dgzT8XdlQmzDLGUPfPK64_5CDNWwsvCNnq8oocnxBGB92rcgVq0W2EfNLpCL1EFaNJudmKw_ccXgcGXm6CQVllwBQ8cxk-voTb37meQJDKrhLNt4lrVq6DnTM9m67ve0yXGFOMDNgSy6Kf691_3rS5HCsBZF4VpTlAYplrcHdMpvZSE-smPE04IQD74cW49ArRUmcvj6uyqiszi9lYxckN9VC30x2L1IdPs4XPwXiMcDmYASQJQhOIYuXzea60OYoNSH7s16iOo06WJYXazfipdX-6FiGqSo76L20b7Fl5f8lMGXoDnUa-HueVb4xPDtwIwwbyXbg3vK9xUymnyQyAYT5r5WrF8MHrTTGof_Q3to7O8yx6YLbkX3_0JIhaO_szQaQLNgvRoDrwkJlbYoU6tvuaA1E7v2foHMC8nhu3hTLmU6dcjkf8fyaP9dU1v_fxncf9Ma4t3uvZ02T3Nk3zmplQ9aGz8wPSQYoU5NKILgfy7kZH77R0aeomEd-O-T2mZ5hhh8pP7nrCyQkIcRIWrV9MltjxnCrcos7YkDvwNvHxsm3Bwjavz9YII2GtvKjsTWXLsrI3QsVaYJIJ1SHtHuGmsKHED2cgv4uzOaDef1m8CzeaxQUEiUOHkarVHjF_SPJacDEyEkxbhoVpKgXOavGId7xUWhyhyzBMXsdrsWPlUtkMGzP4_stVmsFMU25srSczORRx2cYhqmTvpfpblBYrqRKL13jswIQjEayAIi3XJ-9dRh68C4Z-2GM5du27BuYhY4ypcXLGwzllfAWmYWTWqNIY1ptJG-kn6kqvn0_MPwG276M00Ro_H2SfcwZUqURYJq6chkJLWAi1FwYX9Y2_tCpJI8BlugBViR5M_fsuRt0KZqWOY5Sjy6lEl52W5OA6ipg5yBximj65qeuiXQ3I2bFpkB8Oy8MXXqQ-RyFqjCsF7lyaOBp01SJT3gr-aPJZ9OiGtJIwFXXEQC6abx13T-W5Tsz_tv5p1a-LdyZgRE5tuKcD1N8GYQwG1i6MbXdN5GLSMcFamkTcVv_W1SMAaW8h9T8qi2M2scvKmLkRcGuLOiH-yG3musQjc3fgsxLDf260T963xkPzdZuRZYjfZiSA8muaF68a_Jxhf66QfZPs-RIC6eu5q5WMtOk2NyEa29z5wrE297sox9mKTgezZSser2doAan3uQT5bR7ILEiqexBbyepBUOJU_W64cgxjyW2laBgOdZzhXeJVVSb9v909_CVOVCNpmq5Oo3XEPHZThFUN78b2u1HTd-KVs3nNg-FBMMetlVsvAfKzW-E7DoopwWzQlmL-bJKmwmYxW5ry4TgDkZIxYPCcB76UCk3tUrO8jJo7rRyYxta7EqPx3ZQhPSwHGj-BMFyspKjQgwWaFusHEN2mIr_d_N5Qu4z009fmXwQIBQwE1ah6WNJZesr12oUBMx4eZZrp19NNzMlQur3Os7P7iSJTXkM7b2jFuLR44ju2QwnrscRh1tzZRdACbUqsZCXBA0ZFasOlSz1JKw5q1bQQNYtUw4_ct6kB41_OocPaDhYZ5jwIZaPXlJXq-ZcBWW5dQdqU62taCTt24jOnoKRD3YVdJ7rXsVHzk8DCW0TXVCKr9wGzvo8mYWKePs6luNZBJdtJ49uQygMHqQ6-tpKPJwcGtu-O7dGzAXwRutjyMTgARkn1DqDw5qz7ZTI_KbN5hbtZNgBu8cHaf4ye6G3w2cNn_BkM9LNYAMPNnJxoSeMW-1Z4PFDS-olfXlj1juAhxvQGLpHtDtvKFVzwwb1vzdqI-Ax_hIwP1HONaKgRF0AaPV9sYEE3-DAf9X89dO6llcrSl2ZyPk9U1gOr7b0PObRPwa_0s8r7XDU2yJjNA8cJrposKcVFPc5zs2AXTrDRya3KixLD3q8dXOcMIbf5Qtkaw9a86dfIy5_SF5hf7OZ-ovGDNaPcfAWkllMleGir0w-AKE_n_-uLUuEQcsjpALlJwl5rZz9JBwuPn-iGn4XqNtWKCfNXcts-IU3mKvIKpx43_xRJNXhLOBIEcIX3kK8tsGpMtKnXogqd2dBDOpSTFoNLQnu5z8CaaDn4qlp10M0t2ThCdkWsQnuRSBujmCveMs76SwW8CHMpmDhRLNq3Cks6PL2L6RFuEkAJiX2DE7fbGIOkjulRbWoIjy_zzEGnzlb7a6qe4dRme3i4aTcROBBT4EfgieLiBLit_2TZKXXdLees6gomuexajbF3F6cVA-8VxrlXOJTzmrvOZ8yUA5YpNYMeCv6SeRYJ-zf3ZC5L0v13YS_C0F7ldcM0wQurLALT8Yqr_DOwWZOJamBefaXpnPD7Ep1XQZWNElpkudxT6koLPPO6PbhI_tQONQDe_XzVZXxulHwb9zkLiQbHiVrKfUfnqgtDZTbCvL9UyKv4AXclg2o9L087XAI2fQooCuHSJow5YM7RzX4h_Kf0q-R1I_m1ZlM47duMXwo9IRRWZI4eqkq3VUGRPQSVYzpVL0mtbljl0lXsW55qGBmRcb14cu2IzJe3wnaqX_6Eiu-zcS6H2rNE6y8CtEzimSSRR93NCdOAYbo1uUFXcBO7cSblOX1yYWcfe64CBJ1uAKFyUoQfYust9YIH299TfZVKx7HsRwvcrEePRjG3_Jx-cg1el2Ta52UVX8uXva9pATuW13f9PouAvcBH58OQvMKxLzoWB9sGGvIXQ0Z_VmBopGAHpPiQw22AMbrmOZLwdfH8t_Vkmy3PCT4dElqtJzJxeEahFnn6G1j5_ENfXo7clofYzebNc8L_QCzGdqtEzIlRAzcP5NOZmKolh0ZMJI-sflJ51W4rUiPkVSr1xZUOWPPgLLpysuUuza_O5G2g9caRzRxSeV3NSr-LWbGas_IjGHFPnqno8D1sWbe7im1NVAUvsaMuoee8wVbDDGvFCGZHG11zfNHb6kJxKauDPC2NddUnKuU9k7j5C3WER9c8cO2GTFjg7RP_W3lilApqT_Hatu8wjFZk_hv69-4gK-dVgjxlmiiW-1OnEo1oBhC-VAdGdAeoaBqqp9Y4sdPHqE6xxA87knCQCNKpcF2OhvebmZ-61Szaq30-eQUxUZKxTDHkAhGAtz17O0Ncq-j8GnsCkGtUh8K4Tgv_p_L5bLEmhijujAOoYFTVG8XH1qMPBwkA7W1MnzvTNy3Wh4h1LNXwYmIK3UBb8tLOXbUVN0jbrGBpq1w1i71QkPyga2VrtsHKr0e3KGXgAgo1idkK0PxK-Qyvh5EEVY2PKtLBsFJC3Y6uwJFetP7D9eg_hQuc0-wZR8Ry5J6FXacUndYknPwhKaOzExzGWSFhRfxHyN32TlXvFlbTEvA8wa-ba0A_PHs2FsBw9mv5Vj5cAYbcXv9KpBMj8Wx6Ek-VEYsaC1QHWFfzwOihXBZHMAPmfPcgMra6Z6jCAtobeouNr14LxviZ6_52ZY_Eshdq8A_lWTKm3Y3LLJw8RD_V9QEgohbyobihX12FVmQpuFgwpyp6yHdBCDuBTIC4Tc073nK7n2nENJhUm_K5Bv8dO2fLy18Yoh-8OzSjqLzrDB6EDk9uzPpdQElI7srZSxs5dYcDMIQoYbiUrLOVThcatB_11ZQ0tby1ipyoqFsQP-0hmaBYY5medrB_2WFGpwMcmCQR0v6W2vNMYeV810fqfLujRZJ7072zlDDKdg64ZBWEEOFT8hksj6rOz3Dzs1NLNxx67aCJOqLaSQRZCfCxqZUyMfRBXkFKvaeCe1JmR0T9mKUiStWmV815zWGQX8vLgbCEPXzKMd62OWr-fg2j-pKStA6M8iQUW3MwptQc3X4L9gZ4Ubz6pn28fWKh1XGeoDoaQ4ulypPpLTofQcXSEikgh9lamdXYCkM_iMcKZOcP38l61Gia-sHCY7mGJ_JoBkY4ap_Zk35OOui2JXaUfDof32urOiKIj8ayZJcfZa0hUOvBWgUkgmcwUfQZippmIpFVtHCM16YQHoTSFbPmFOlRBG6d2pWlYNcxJRILSe-fEhvwRjwrRQWnt-QlaeaiHav2esgFq2Zb7vx9odrX21UiPEzabAEXDwhnvDDg6eyokiblvzSqIlWtm7kSdRBxruDaJKZ7asVOjOs45zZ3Q6nedYkQ7L7AuHchmj7IUX1uWXZs8LPs9zYP8j6thi0DUljRiKMJdDMeqY4TpQay0fiUkOe19y1m9gZFT0Lc_4Yf4mVkc-7gpXBIDCsyDkwO0m-130K82VqcJCC2LOL4aw-7A8h0fwTVmM1Vdcl98PmyUVrDOwEb1_0R7NuMaqhSpAEOiyp9t60BKTxu5GU8oFlyCJJlvL8pYqRyrDyOljMNHFiowxhO2DPbhSWHY3h8QSDCVJGNiDjPVESPt664iydZ85yZ-VRWdnJzIW6QVD1c5z_uGu7Sdw29VYnPktNcmxBOLG7zuImXq8bFcNY9jzzRtwwOS7Boinngz9dtZ52Zp_8y_jUQ8OVc_7BnJqgC-WzW3yaPaU4T-MPF9YDqpNmrPYwsbC_KSGDQLw4eXse3jZgJMGimLkZZU_n7eTyF0Obgm-DP7NMXvCbYYRV7e_aWSJgu6wsROq4ZfYr1s7y54hQHblJz-JSCTfiNorgd7sz8lNOwu-GI7sZm-kAL3mFkRD4dVsOB50IxjtIihOf2iKsJoM7CvA89nJVytGSe80AXO4VeXYglf7R_UywdKIYF1E9wVZiW7F6GIdv-nu7VgXAuH8qwxzBE0CbBC5lrkqVHfXWKpEYKuzqvUS1vLdFhIpo36kYbNgZ0nA3OMa_YCAVsq1bpDuk7SzXro9T8rYGm9I1aaBkxX5b2DyJCkmdXEo6TMGLgTpcYt5cvVfxWVIZjUS_W9aIxGtFSdPCT5kFGK8yopOiR4QBu_vEqIk2ytM6xkvEetu5JhAYsohDTspGI5sp4qo6vY5f5x3aE8W4EYB9BJPi9104Y0bYJGGBEJURbnnk0-KucrAT-FjIzLE5Rjv6ePD8T0InIhz0Pv0Az_Zd3q9-YWYtglymyLXp8lY1UvZxqKM4K6G9W0ajHv9ctKpE8Sshsh2OvuiDlyArPUrzK4s0yJYkR1yi5-s6ejiBWuoeze7v7lfwIruMwe2oPtOsQjFnkzwHFG4bub3f7bOne1TNRcozkBLfp463C4VeXV1dT3Eloq2UvYJWxje9zEMBtJYtHVoZkJrFzL7xaQIOsEX_vEtH07_V06wFfVwBT-w8ovkuY2_OqpC7FveQE09aoPD81Y7f7GDiaBH0ujVP-IE85IT7u8GJp0bLI8J_yYvXb5ar93DpEVLOP9EEs9LrWyK7FcP6Mm-XkpAPbBWlQT92yRE6eBplZ_ZVnzmZbjB0T5c1hkK5Os6TKo85xPDe6Y7Gf5EepDyHui5LIIHrf1mCKDBCyCbH-K8Upc2bHdTPXC4lwkAs-yH3zMLD5ChdlGrfhGo9zKwBeCEXDkpOnAtqFG0vEUPFdpQ32n3uGdo1Izx0oLw-XzZS9NJv_3Jpz2l2VH1TnADmzaqOxdqq9KIjUEdpiWaMuX8A6q8XD2TmSuHhRRMITUIa1oN8DBr3OW7-_InBz7sASG9B5ijJn0nfCkyqD65iKz5vNglHLiOqUi8bddvhwNJsaiOS6REVMbXuPANeYGmR5ZRLqUn91sJjX9pE3M5eBMwuLX_XY-nG9dQlpCU6w2TT-vmQTO6vkSYVIf1fXqdZFwkROSWzruwWgY1Wvpa3zSToDUvLUyu88Oq0F1fp6HW-H6yUddyMD3KaQvaxvFNH-nfiqRwAojPJRYy50dzNL6HEx-WnOKAfxiQF7zRnbRn408Io9h9FOU6CHuRltrphnc_7llxmvOe17NF_uiga5V_j4xsBYrNe-5aGi2b5bkSPQVPKACYb0C0IOeVPE_L3lvXVA0e3x5EgB59jNrXT4dO7H1chh9-Wi647iUioie5YqScsGMoNE_VTqJ9FNjMbaCd5cDLrX8KgfOrywF9BOI5GrSGCYjx0FLSOqxhHKL5fze6br8OpRL8sJq7fD_04iUx2mPQq3EC7ELjPpbXXiSiWkCvJHcUyGxlII2rD8PA_LJKw8qhOXZ-34mRkS-z4kwDaItgNtmY_cM3xiaAQdohboZ9WZNAKiaWxBpd5Dd_HuD5sDlRpR8fusiDLo2jiMNyOJGrVZ3XPF58sUSBrmheUCEASWJxtXNTCqGPPcAVIIIfXJAbLEOEFwC5rRyOgaD3hjFM_rZ4kGz9pKqCUFmmrFX08qtOIACQp4a1qhBl3tCWuvMLtXGfUW_Vjo1fwPdsgcBoC7Khl--7oEZTfQag6ejqNhdOOdZ9KgwoFxQ88ZH6Yy23KwtPG0d3-JRSi8xBGa_sgK_M1X8D-BATNR-bHS3op6x-bCZzOQMjwc7rnxxWcl1X99gD_gK5IeaYsgKmuhmO9Z9BXyA5q0TpSIZV5r6N5lsqxjGntmVLoHgTfITNdbltCVRzEdM9nKdwTzp997yZLmN4oTZ-ciOZvzaTk3MR7iV1ETeQi2YiS_s7bqlnnD9E7STrzi5iV3tCnmatSPb25xBNkkIw5p-C_uQ6VWY8Oxmat5bkUc-NkZARi_l88bJutNO0W7RF4t01oRAVarpzSFmqIySEhzj6I1o6ihKB6cvFnoZBMZZUH7lW-PdhgjZqrSTPxrtJXFbJ8JKDZB6_zw63jaM1cudfWyV13KNuOXwRG4Wt6_ZpouLSN2nJ_joFyaZIKMVqKysLkwdysLvZKZcRecP8zTlaChTRikssykKHKQKp2zcV6Q5NJN9eimNtigsyowzK2WSb7NXWmNAp3-VaqOq1pjAIDrGODibvE7A8TjK_GauTU6XsnnySXelV4nU25lPHmO5d9RdEOkBL9dAyyDw4eu8edOA__ebacWFMG8ZlSWtutUHeXyE_w4-Vm81CbFJdryV0C0QljcEU0mugTW8nNATTEErr-lzW7xJ4ZO6XvscwvwWJS08y0qhoi_TOXx_dNDsPAaZpCdpX_PzgBEGmxi4tEtsFq40VtrJ8V6Pe7fxQ75uRMQ8v58tsZVVKt5hnrHy9bgtDOchB3bMER9NoiTnJ1JMpZ4TXrfvj6pWVI9gP0Yozf5sRk8epZTKNa1RN-O8PQDgwAw8f9oQUfY6ZINanP3WJuKJw66XN3eJdrgg58xt2LPg7cvVRp9OgYDcmcxb5nWn_Kyeei2hW1yd58oBaMfYy_n30-4UghexkrQC-Ka5qlGAJlkEBaoVGB_PO_vCBm9IYWK4ytF_JU0sTIezT3lK7QzABoWPy-L7juCpmcDXoEfxRLFJE7T39f9V-H8dDld8pJZE5ADoE2H5GDswRXJfhRFT_Df3GR_pVUv-79tMs0dwAKziKCx5O1g9pFGYFMLHF-TIfZ8TzKEFwtIJZ5oTe87oZ2D6kEWF_GsWBW-0sla07p3zJ_mp7GdcOdo8r4upLCM7MIUuUzybQFiva8UHBi4ufPmSUez9omLJ1Hj1fXgcgosg-SuMAQr_pg5w-UVl-6pTkAYN0KUcyz9nN0VfLokWdRXgE4gq-bRpKCTs3i-ydQCZoPyv1yUL4a78v2GZ1Tig4pYGwMLhDi6H_krUimFFV-ySXItloVzg-nSWDeoyoll160yzMPtz4F2--y43zj7538reMfXTVHx2l0Oxx64divRgzrqk4UmeJp8Go2868jTjY2ByuMMH_2VysuBQpe8l-cslz-AeNnmdlvSofi5XdR6TIdAuS2PGbRht8OkPKrbqxFXISru3qn7Vveomzk23xPvElrWAGvZ6UqaI3mKxXQOPzV_uuU6Djh5b3fd7wc7XGZRz1IhVofwCD-_2U9O9kBXbuqrcvK8rhdr2uEyUq8gdvpEDoOVCGZCfGKrwMVKNDAQNYObUPPo2urYzgFrfKqWEys9YkUFIMGhU5Ertbr-paZ9nCgLdYC0nS3lGMlt6fZt-omFMzb_YYj7KnmEySA8BSb7zhhMMrNeJFxRhu6B_zaZEcnVoA7pq_I-jLsQHS6rfwQHMTVs8i5nKQ_9CqKRvuF8fhTGDKQVlMUyTPvEXNXhj7QSd9i4jqRwWapFU595H2TiISxAToCmXTLAKXZVsEvC-xqWluorH8-gU0nx4Vai39njAWFcXWFP7oBTB4Z4-K6wJETwTJFbYUdBy0fcTbCJG9eTyjoBKTk5sA6xpEGgCAZGYcqy81HRG_7J4VPQ-ew-7A1FnUmA3XCJdAj0wNCz8uWmxx7bTB5Uvs1yPjkmBUqm7ngjrnYlfRMwnVPMv9CrYBndHIQ51THXPKQoA1devhhyzpJo_8OPnrLURUKWQxlgB3GklYovtC9bt-lcjN1kdR1WEFj1wtVXazCe4H4ckV2KyXTzTRWt2kUtYUAAUexEbQCuI08B4P1MpF4-ZS4IL5xYCIfSbWLg-M9Kkm3YuCgNoYoXkV1Cz-UatgVGLG2YTL3b2up0Mix-5UNCYGNeVPhMDYSTE_sNF2-zdXcw8S1g1YHhR0B2d-w04wdrT_duY7Qmv2GPc7f49dgk_6EETJnPSPFcMKoEq9JX1HoR_e6rty5msHXDh6qdDFqRKzknGczW9hSEtXquoaCBjfFbZhz_inKEijykLAkr6A2bqEYBCZ1S381IfsTuwuaojDRAOIhMZqhoZzg_WosXnT24io59Z2HGnRnHZlGVVLkKs99GRvDUaiz2DOBKmcY_ebnzBKa7ssUMXAmiC88iN_QjN1OaAEejoAjI2Z2eTs4hZHq-2gFhJ2osoFwWQHlRsNJV-7rOfU_ulksrHgIUoHcMBH3P7so80qjZmVPtGMx4LWXZ521cq2aamBLXtnsQZXtVGzsP_PBxooAQ9-6ehTyBCzPZ4953gX7jqLnK2DcFvevXsZx6miR_L3LcdyzJbTdMSAnhgWK3mSAnvpI8hIFfv1C9CFetec9Hf-tEh51YnVL7PfBoEXZcm_c9TdX7L4roAnWVcIaLwnCQeOpOmqJwaBizHJU4U_n4NdcqymH5rRFa7qRNblDXWAbOXA2EqCy514HNesjSTRPIdDWldndN8CzuTwjfLuRktsJfm9grziAW1li2Ffa2ZfO2e3aKnMXz1zgaEw8Ma2b8YW0cks8C4e4hUUAnToVuV47wcRKmj4bsNIJboD-PSqiiaxY41yT2DnylCswyCYlms35XesJdlwRfpZkkErX56HOYtWWUZXm0IzQzc4QHVHaxcUkWWvmGNvlJx7tYE8V46jQOM6OuUuODT77sFxID1U9bahhsuUC54aclsOSG5oVC41VgrE0WSqMkd6qgkWkBWsYvuhGF1o3VNZul_hB3ULy1yc9n22Q630ZZH7yPx76OFiQGN4mVFp3fiAndsvVhqTPy5MgDG87E9BG6EGr1KPUE9QYh6h6joiO7LGSgkql6V1bBhdq16dL_ciVqsHQEnRJB3DhY-eucQ89D2xnLRUSukK--6hQAhPs3-KovVhtW22Uorihanuj1xUH1UZNL0FdQMYkchWVQUOuRKxshQ7_FLRIcxWEcxW1sn1rpyhZCpbgP1fx7dTmJJnUNkPQjttwjstsxFoWQ_RB3Ve8UTF2HTh1bWOR6--XcGNrLrZFqN3ypUuEYK-O5m1uX19oXC4Ru0LDwHlE0ZJZQ-iX9gZ7NkIN4X6eZvxAP8S2jqh6iP5H0mebc2x1Y9yO29if4pCvz_tXztDGh0Z0jEIhizeACaaf78NW5C-Op64sLfTxc1NmKezfJbvWZRNZCvpiLKfli9OW9ImSdWnTpFdoxZNc-ClzOq8_qBmBKtSt87KpUaqLrkE16yY0l6dJodWYHp_Yqv63mJiRu1vgQ7QArRMMcgfmY4fOJkV4j-x26hrpf2R3KTXoIFbFU1K4QEK9ZRwfEWLZAHRQsyh_mhF4Np5RvFKM95FEz9jtIfF1PVZ3KKcCxD4jXRAnycqAuJsdJFbVBh3-SlgaqJnkpT7txmvOdXIZFMhv0WLXIkWtdEa1SeN1i8KpYflRBS9BAobYDla3Rtfn1gEBbiCN9wkyafNw9l3SpMfI-3K2XRMPfI22aEJmpnmPLxAhrosc4uP3-p449pzyCNmYd8YqO2R-JUZMyhuh_SDUnqpC8gPuMNK0uAMG17Xi8kRC517kx-UecxxCxvcIhYM0eLGDGHOBAEZcFsV6o3q7cjWgAcwELEaS9xGeCNMcFTt8kkECX4lp6RRYUrTBr66PhIzpp1nGOYcMZymleAMCfR28Q_6ExlXRTgQyL6w-iw5wBcw1v7hs6h3ji5RPkPa7tLfR6A0-O1V3e8yuJ0-9FsiYRZH465ZdOYwGQehQ7OJ7Qw3kIELXF5N0RatyHjxBkf7ISterxfpxirLoWuISIrR4TqSwOUKlysWp5XvRtG_tSk2vq8nEkFedoUKbmxcGvD16uRnkNDxCudIxPk_nTkYxL7APRWE-GzhhR_hMaE-71HDDgZYUwh6SL-1M2MzlqYlN8pmPXSOFigUanpJzoViIKZOovtx6BMAa8TLk9RUg-98Yn8WLg0igJ9LiKb72XatBdvqrMrxpBkgCUw9Vsu9aYXuCnDqk9FvWyj7wOWo3wzgYj_UaCx6NltCTAN2n5q68sJ8Vk8SbdzBspAtDAQAferp3NZ_JPYjaxFJ1WlhzxQw7O3skBascxsZuLDjwg5XV4Yj5yjVWVo7gU5lyZxxKPd--eqosIRAfh_ZyzlI0fTnNmXYlX7KwT4RPiDQ4j65Z-VK9BZoEWit3fguN_2mWoFYtCgO-WFeliYbbQ-nyGZiUVmw6A1fluJJyaU05wBMUQrwCeTYTgGJWvNiB_1db5eH5B8eeu5oiayuyxsZj5Ik-lCBiAM68Iyf5qGy3VT5aSY_9PTHdOytyIcZeg37Ta1FxDG3Z2FEiDrA8xXxftMb5gK8esgF4eDUwDwd8Gl6DaJqUu6_BwW3E5U1RaiIXUj3VuOFA6oAfbW-oX7tKju-B_CkIJFLylk4-EbZAwSw1NiUZ4Sv6hZhQvGpULXFYhMj4Vf6StIkgIyu9tSehIQb78jXp2Cnpqx_3A4ktllwsmVtDwC1LDEXgPZYnFRy2v0U1iZ_PuKZ3qchJLSHLyFdrxhedH21EkyIC2o9sj-sk93c3C80qoEmyKJ5w0X00j3MVPbTisHh_8DdpDvjGNPGX-9il_B9MWoAt42cw26glWwSzRqbuzZOAOyB11pTuRV_5xwZgOubMpjEKenhbhjLdYUu3ki3c-edrz5n8Wv7tmFCjHhuHfyHawRD5r2drpC44MRrfng5ENcDvaJ0cDKftrs3-1lqpLpsVbAm1l8bNSgc-bYpODNbi9IRs8FffIzBAzh8aMxmFnGmIycumX6jlgsz8HaTCASpTtFPNNzICRAOOHe4CzxfrzQOe641LJ3L-rFV55eqDftQ9atH2uGwtvrc_TR6oAFYir3aQ4fzhCKyyPYpHq3HI1A00lvgNI-BzNMMEaT2UDv46gP_bJ1BHpj23MKvYfW7-RTyLWAYsgdQS-kc3vpHYoDmDcpzObY1RVBdUueNdkenQsMEUZYaOFj2Z-TvQ1UjUt9tCVSUZnlQEHmbnqsw7RwXINOWWyak3QBYhvX30WNnlOO3Uvn788U9m7SNxUnP_vFy8uCR4pWZzs6RktbGc97PlQeFhg3qDmp_GE0Bu0door7_AGpC_dK9vt3oJNlmVQYZPRnoeZqSJKGOdhjKlI3eTL7hsWBcUte9NSi4bAORPeeI-wv4S3cIv6q1X1nSJPxIB30__a14Kfvqvop-XQ6gv6kpC4QSF1WEmz5R32sGvn4aCd48YH2rI5UsYq3phjg1jf63daFpueECoBRZUDLoV4x1W-55l6s_fwL7si6hS2IU1_Y1TOutnyaYCIKRLsx_fENhNlL0TS_L7gN8SzARZVglRq0dKt4Z7TRZ6koiRO6hfDQlRhd2CnEfITY1T8CduUhsuYdepDUzcP4908ZwRTUeMaceZoKxUtZJe2nsg9iCir78Wmh_LJwrfpH0M5Gen_tgebFBqga7Nk0WXhhWwW5JP3-z4k7WumTBKyiWnbcbEANGFc_QwNdGpzMkMoC5Wz66Fp-p8Z9qjiYiCtfiq5uJ04GW_HkXCxYRA48z2rGaSAj4D2P8eTelcYv0EgcNwnoUIaNvDlyEMmdtik7HiSz82AUI3Ok_tq1CruqtuI6pxu1U83BAchYMnvb4yk7Bi2TpmLAo11zEGlNi6oqcW7oASlJztBH1LQw4uc1YIGsug0fy6riLtfdlnVkDXLnDTl3l9X53mQEqofqNeJC1geLjyL6k9aZFt-8VK4dMYMmE2V5DlON1y9hB6StDQgNZl3KiIe7Cd2kz5Ds6_ckLSTYCBeljPD8NMqaxjKuZhbc-pSit6vZj4KOQwHcyVhBjwDkpqOLazsw5DZv2sOSHrIUqLE-0jEb6IQjCovOaRWvOGsLBmIKJL2zUMgK2MgiZw9nv3OO5J1votQA9QEFNiMw49Ip44mOlQxVrXhHbQZlt9E5HJGpDZoDiAC6yobAwgt8IalpRRIGVDyZKWXZPxmmVlhGlPc_oh2J40i-iVB9hO01Sa4mAQizvnzAb5pzsQ3QaZcdZ9SKHRKUk9sNTwVN77khEPRtftgiGm-jlhv7Mk7B7Rb5LPI5kjGNRQEIa74ftv2DkHx69qQ-MlH67AWr2-72f_rVIbrkle19Qe-_Oykl2q-rJnojz_8NDNBSLE7xrDAEiyTR1r5NhbmDDvYf5mCl5J5WOgulgjUVAjWPaDEqEduOkcdyoqS2MOiba5FJLfVAgkZMST5RXI4aXY7MFoHDUhJy0KhW34u37gZnWAxLUwTYrex-3Ol9FbpADXwL_wIrwFfArlrH8wNDEJ-aWB5H-jZhvdj_spYASTlhj6hRgAb3P3Id6Zj3oYB2-2KwZaP6gC5TxS5XgINSWLa-rQSqEaBNfWNUbVWPHG5L308NcP6s58q1Agyyi_VgElDXjlcboPqUbdkkRcI8N7XHDjdMSwalr3d6V-i95b4QrrwWpRElJ7wo3Zh2vx8C0eT-3FGLOlKhkXgWamppreKJ1scn9dHeLZ2a7_IKude12Rp53KXAi2udOaIYzsoIkxY3yr3GA9owGBz2ZpyE1qDrYzUuIhIB-yYIo7vW4KOKENSbTzfloijfZEme98iifY3XGBq8xASw5D9ogMiEN7OrqDkQq3ygBJUCazDtW-AwvL30I-RR5-fMTJl-vNckB6AQHOFtKg70tkdk1WKASah6CshHZRTPgYbuiuh6f1gLLppw2JqszxDwkCDoViJlw_hHG5YdYIaARstSKXp3GkfJGdFrU8ZAM8VavVg2HmKZSTJsz_vxwjPL5zs6e5JcfsDWy-auiTo2Q6Sugpsm7fqh1uJ2wv53XS5pCpkeRFdUyTL1Wl_AfEZyFy7yt3VZLZvArSbp9nyFcS2bhTYa_XPAs3WpKEbirdEPUqs-KfQAZXmEXU9lRRGaoapHClQg7Doc5x_wy7jSmHDLK1NYleh3D-mBkUSijqZj6P1Fhi_8sqx1gVQrDNB7QL0LXKLTnoUSW2QkT2b1oEb8US1GeqGBaMAdORANuRV8e9Vlb-KK6-4Ra76yLBGBAVJ5KLc7fW0IaeKZs4xHd5vGzrggI0w85A7xXNl1DukXM46XazRg6sHrBiElCtYSsaKwe_yjUY1Dkqf_QEILjPVsc7sXfWAuynoftj3zMb-1yXFyMkmxyLpUdGKe35lvMcIUSZuSi82PTqT8S3GN1hR08yHC8hdJL3JjeU7I8iLFwIpuGIjrDxRL_72W_-WE2ZC2qvxwJaLrN8InMlQFfKB3wzTVKGAZoNOS_0aHfS5f6yNz6uLT0hLs4C2mTH-Dj-kA3Mnb5M4J95iwPuGzGUT6d97uUgdfIYCVCl2SIIaR_zspLyuKrYLk1Cu99Y8e0-Fl5L_BVRZwM0O8ytHNUCNuQw4WEWdQn8zwk-FbiN7BedlErL2NGpW-SkcgFKdA87SIlWPbMeF0MA_Iso3xjF6W1x4KLeaurXj8Gvl_FAHBHxQfX6k43mLrJyOQBQtFywVJqGHJOnXz3UhZ5X3s6dClHgnzI9Zf2YgQUb_vKwKcKCk2XRFTcxwf2pwwDf3OIxm9kO18kLOrI4Huvh-lMESHwvF-AecC4Fz1mfXi_uWdJUrKagFEDt7p7LeXmkSij3UQKNuw2FLfvnZ3dSbePHH7oKQEy60mV8hB1p0puHylHU0bvz0ejr-j1IyS6tl3yPwrh2Bdm-hBQObjGbGBDUSE77Bm2Al5MlsZ6ObFp519A1e14TaqLtrcRt8xQs-zXjv8l7CTJplUQwytj2nAh5vdgeX0iLLwwIeetrlEF5yVFut7gSZAL30tLOpKV5lKtF-4RknjkNGBwbOONtTWObTc3Cy1eFOrB-gLWSWeoItG5VuilZeuCFenw07ArslElTjrP9iQsExBtrHbcQLLy8L5g7rt5IRMPtc4N4p8IZpSJ7xMisdL8dFJB-sqHgtgdn0rDMGmX5Y9lNlz2eFhaWPRRzUjKn0BE81h21aP9_A9gGmg2JVS9rioOa9gj_pfOzAZua3lWod65W-N4tbIdC0ZgL3Iz30ZbFPvcUEyaMuMjwBoTsDQ1l50wdqeSC7AMXrLLHtiMS0QyjWs0BM5jyEalg14EiRtlLl7fZb_3gxx3Z0c8SYOzd9gIforEI1oJgmZmwoPNV_wnQh-ea3WlphJyXTcYtcP6WMwGlo8OdvCr3Ju93jgPbHl83cidTIfgXxoaTqQckGMcZqzomCQPTRlqggR-QHqZIT3rmBYwn8Oy7N0RFCsp9j4dpCAHCFrj_HHkLCLa8eHoclMdCDLmBbnXTid1loLEwZ-Pd0zGJh3LzYu85_9lokWwG3dHwf-e1V9DFMF_LgGblmnANXY7YDTaCdFC7VUIwBsQPRNGI6Qpx9ALGDBz7W_y4JjAEWZb7KanZiGsUqAArq5sIUGbTclvFW1XsssCqzRSoiTysNuePrefsGGsgZrCWvjzk2L1hu28TJhOEvZj5vUlu3jB7wJ8X_sbX9aXUzrbkSj7D9qx_ZPe0XVbX3BlDoYTd7LIai_ZOVbagp1PyelHCgMEWyw20JssDQQQDwG3zVTjPeddqo900kDThElccPaziq4FGNxoGoZeh29n7w7mvGjsBd0VOIPhk6IMBXncrzTrAb-c2pIAgYQSxjw60l4jNuOmOXKfYGWvcJjGfcAUbv5GeQDd001c3J0xak1WOOPbR8mo0yo5gD2KQgb1kWBq_IDadEvhZOeingjgZ2_AukNhKh5n0m-OrO-2aSAIyEJZF6flkLghOBM_lIflWwr35sfwWYk_smSHTXVnefz9QCd0IIyx0IzdMJqV4aU51G4e0rEwZezFGbHHpDIWgp_cr5oBThNHNEXWUVhj1Xzda24HrQEUlqlUjJa6tRstMBZJWpL6_gfxTrenJ6TCC9YOUP3Fyqx8tF_F5FfTCU8M1HdSNBCxcat6z0l3gqElX0CR8vJwjq0GfbX7z8D4SyiHmsyD5MbHZy5pzOmc1xEsPFBt-RMYAoUVroud9kNMML2rAExWUy87n0jNPfMxlOJsSbNn8BMR6_aW7-8Iu7tl6ibCFk91poJTZEaMB1eNGosqEQttjtNz7NDSOa-SnGIvCUMobFSnnNulxOY6xMvrNOzX-4qdWom4tYAI9KsfV_xhM5D75mdB64E_rs9vlj0PILggU2B0ikOuNc29VTD0N1e3LdeJ_wbfOylQGI7kBsIZ81Q3qOZNxyxKdUeqBAu5E-kJl5_VtXSPm2BocJjLATOUBTz4vMBd47o02fLq1KnQz2TqiCloK6Am7Vmnxku0R6MaZXnlC0cKoOw81RnhefAP0D6YPEzxUJrEoUEp59D0_OCR69FXC8HkSnhP0LglTP-Q79VYDnTxysrDtEw8a9oDxEoEgmXqNLr_tx4g9jKdqQlgRmhQ2X0a2kdhIxlTZ5i-5Q-7GmoQSYF4WXOVN_k0oevBKxsZPF4Jd4-pqHowH8efLXSZJHv5sgDmoLH0P6rz8-lEPpumBs2-EsOD9gzcISJBDQjRjTVIlDAbu0xrQtVvnqTjec2gfo6zENMV-7Ofwt3HbPU9ev25llsTpYH5Gn52g8IYF_ZlFGK01OpTgjUqdXReBraEsSEsFJAAguCMdGEsFi_1uanjlGFd2UU2dGo5wTiFz7BWv2p9FMSE5gtj-baf8rhvMG0g3QRhypJ4v8Q3k61H7NMDYgxX_vNeKLuB8WYW1dRT-9za4H3CygfinluIrtLRS8qEl6qZ-z4ip1r8xw9HB8jdUHUHRvI29M9RKS7rxDAimN_1V2oJKwPnR7f4HjB_g2iZidh0dS_ztTGQkiN6752NUAYSO_YCQ6-IZmNrwCICNg311WQ2voay72Z4FUvTIjYJcdttXA43OgsFf1eZ4PS_fF8EhMBDxPqpDaZyaIF7STTX0KLs-CkhtmCh_-ddTEVdTTE5KSVzMfMYtdMKhIeAbdb4UPJ5o-A5CiBBeSDqYcTP-HEmCP1Kq0JDEIvsFeCMDbI25U9XhotPUxTZ8ObjGLdJXgD5kkF9wCFX8LRhPzLEH2ERBZrQywtURy737NkpgIKggYJmayHjfdnT-D9gSiMnWbPMPGqA8aTwnIhN38k9DlDHn1IsQV4sDDfVNd2GL6DgOvOiZ4nD9xlFYwpq0VkSXrMrFII4HgKly0Jl3DCPTym4wlKl-Y9h5BtMyOHDu1Geb_mFNd0FxKrygeOoI2sA-9HiOlumi3wZwtTydRSatQ6WgFXe884B-cCfKFTNwrlFozJ_roE-Bj1sYBHtALWyzWWp5Xkv78ZYlochv90YfPuIoBs_AFN9i_donp3BIS8Otbk4jaXI0DRH2bMNmmKsalgxsRc8mYyQLIavpPJJu6jlAfTiUMMmQi4bb0IPIM9602eOOjG2c4TB_FjqiRRlaiqkjaiCdld0U_G59mEAq_zUPoiuaSvCssoLX2mkHWXh1oX_niO_dv0FkihmnvvCdC9pBdjqyXkJhNOJIwrLFeg_PN5ntLH_pjV8uE19IojE5MLGn1ceCVfEATN-V0x13rVcedc0EsUZEN7rbQuDZc75z49yTAD9KNi8ARY1GgrSUcvonXKv0rNvGPly6H0IzOFKtU6gE7dpdyLXLn1X3tFvh26EsuFeNZpeWj9tz2T0_X1LD6EyKWK28s_anEmQrxpn2YqNeyYYRaoGsNzZwpYj4dZgnp4SXAith_QK5taw67uahwkrT9YNxPJbgRbEuR7xmXOJn_fZjyIaVMOYM5pMo8BLq2n1HuFgEhnsmjPoZTbSw0mJWWW8KFRpFI2HaJ_GGYI1EQr0pzaBvtYhpEjq-_SxXEgJu1b-ncrB5jg5HxVpL6eRlkEIAxy77f32mi75kY3GkaQiwjuARXj4j2U8z5hvFTWEZAp1cj-UBRRDB0h3nO-jFXaxvGAFu6wV9nz69ITv92JEUTKiCiZRQmryF0paA8gX2Jug7vWRpoYEIB3erERXFCq1zX67At2GXZCWNcDMXFZpo9vTufNFq58x6zeLsvyZ7IXGb5AbEncZMAqrA7qnITgTD8fAxc5ld4hqIYha6nSsPBSKpmLoXmIjT_szqVLCBAUr8W3Gkl14UMz8R5SejmkIFtyz8wXvvGV4UPKqOUJipNo45TtUJvWLxynpXF2QhRvrpL3_lDaUn8L8cwpb64O0gX_POAuNjtmk7U8yJSWwvQrPSOr5KuBZOxLRS7nJJqkABpzPiHBVkAmdpOXgipJK4BGxTH9rTvlU0LTQHOwjU7RRntM3zrsLUmIWIQxz6cUYgwtilFofv1BrGktKamxQ4xVYKSyadv1TEMRtOL0sM09IC331_UgDSLRhoCtEI5onq_GSktaXVWESEp2y6-rlGENHN9NeVfIN3lzoAiILKNZ3kA1_NF12lXhAMrkVzHGxZonL8bYSkCrcfr7T9FEq90zSFOwizOoLA-h8cr33UX3H8xaCA3T8YAe-NDTrCZRB4kyFaX8Anpp6wBQQZhB1NJ7dIZZf5yF_bD8E6iFFCeUf1kKMtBBwI97TGkVIHApfVL1dvLiNI8njqvnAns43t8gY7IQnVDcJdptKCYKJK2OgU3IjvJ7l-9b3gUnlmIQh7ol_6A5ZgVs2Y11z76rZb_guIcZbZNzvQzHnKsZWefYXdmk9ZX_c0My7ITYnTPXFUU8jWlXAmgwYyq9BLg4HfhoBVqXmasGROOh-EdWTkwAd_OAOX4Ct2iOZh6KJwi_fk8zAEW4BQNHtCwrrdtGqnKj4gThvTCm6lZpsjvuKV267ZJsd2o5ak_zqeGy788qpgm48U6e69D6w4u7NoSq8q7VYD7KKAVOXONnigxicjtSaDOxaFx-qK3pEMdJEzhlx-A_wKLsMv6dUWMlYnEVSTh9kCfjcPAM0VrKGzIRC2cykMED8CoqDugBM5B5HMeNjGDQG-9XkgbwA_apgKyWOPVgYuUqOLNvOw0An0Y3M75Y1a88gKcfVmLaRtyfAGZKOndcNrBXgFBQiJcPwL6u_n-VFxD2arpPCdcimkkMhRz8Xjr6QvahYHnzsrurE-doz45zrhQWH28JK0LKnufElj-RP05nza6S8c_dRb8BCKvA_za-TQppmLzKHbmLQ3sv3SBNDl2PFxTtZ_cGDQ35TUX0ROYf8gSsFS7WJBEhBDC2iWuOGqLSJah02AZvbnDClhcIFxO8x-HWpy0h_UPQ4zgUZ_Qz9LH-HfOSUH_uSLhVjQ3seXIbT5Q5jodA57oajnlxeymR7iewEdpevmANUNkn4A3gQpUpDBlwxMFjSUwgbT_D-_xNAPHj1xjlLH6bswRrUufs931PmuzdOiiRrD4bbLT12nFajTYdAxGQN336QrJUcZTG6cZ8b6zLmCsDHwI2KWL4WDbB4DvuOjS1v3rfviFRY0j9WlQ9OfmV8hNikEVDHgTjDMaiAuLn21sgDMPOSaoWIdIq8JsohjnoduyWEYPdRwcC1Y4WFudkXoZJysardqis5sqEsJAl0ldTFOau5eodMFa3axM5XVyT5To1RiCx7CfwqcbpOAG53u6JOP0YDOKUzx2ca8RYyGSRPuknyssPwIdhU1XCKh5iHdL0DDlNpFzJsTJa_REKegGH49c5EK9fpwnHEL7YRuQx5HSiv7uGfWWTk9gbJIe0TCrCFCbigDVNqcyACIawsddDmOpugz6_ctcZqm8jlOq-meLkJr5fD3JL7QOUgLGhFqDkT2vRJE7AwN5KSVR9KGqP2yvokKcI40fj-YIHEzJ3UmKoC-0YdGs1dmrOt5agFleppOEFUra62kT_u92tA7ecZmCn04xtHJ8K4C3cEUVt3TqyMW9XRgrf7sLp21DSf-EMJUVmkw-DR2UtUCkec02_J64BDncyccyB3TbeVFEvl8OgaVxfSYjBaePm6MxTr3lfzRRW5c3ea7crCmdlKMWJBcLzmJqVBusVOzSyapPmk494aHm1v7BNtmL3yzzTAxSr8tUoctIejgyJZyj5JWZjJEw6ACTZpx-gMFLGoGWXB1UqZnSUNcaVO2g2SqGfrfTcLQi2xWrsuSP7SafSOngIDkXeLdoE7rCqHvP99gYTUzUBHx_T-ZFJgtxKEfIAgTmBNmOrd2m2-N6mk2aRhDn0ZVHu8nyreJfgae8OH8WxWArswgn-UVUnaLiUfUHAK1adqnJQ7d7LpHWOB2mjGA5X8jO-TuZOcbkVc8zTSb-yu4mV6Q1W4JoB9ECUmlDe00W30JYs2u9mroyioPKAlyuZrhrxf12LABtpvQa_I3ENgvNOiHAuPCPR5loKweh_hIXtoqOIV0SHMQsdF4XAMmOsOEQgOQPLpVlYca05I9uw0WRwAoEz8hPYVEKMlMGxFJOzApeXCqxZJCAL7VxkdzhiAgVnW-DAKWWxh0kfsjJITkJxVTkcsozoRQFby80vnLDNm1ZaFndR_1sEwmE_seZ20HZorf0CcRRgfLJMaL6yPJZSLVIW4XBZ5gM6x_WtH_q1kQIrurWB42-ypII4Ulob_E7Qzyf6MQrh_fsXxBlhXgc5RHnrJ3-RMS9LitZFytoSTLnOTzLxe4cZ4Jx2mlua8Tvq-svQT4knipeaMXOZq6pdTwEybPURWPY-xIMZFt5LWkBF6MbE_i337-tTMgWNHAK6MLKuhs1zlx7R8PGwWDX7s3brALT8i2ujey-Em8b7_1tctKuUhNtccVvJQ-Cpd6vwnM5MC6lNOX-N4aybDEfq0C8M2b9qbQgf1UzELTetQRHYxcR4t5zDqj3kiu_WawxiXo3gk0i63lJGQ2ovlrIQZF5rPIUdcXs28tCwczn8jHt-7AWTthND_BwJ1330OhQJFd1jzRh-ZGa5AtuMRJisbbJ3twYechwwhIxjgPcmUnIY6bLnM0Wi9J2fvrUOkvXGu5TLC03ByVEDkaBtwYvcjJj6Bt9M-VbWj1sMN-E7YBbi11MV1qDYqR98Fb467EQPFmYYtZzMscDwk0KCCIX3Vsz5WJhshJJKHhoEYD63CAo9UBifuo7uyybzRkCJ9f7kjhBcJeCCGJiYcU1oT7ltONCJVXGIFBXmPa4A9CkecN5ObAVgLuipBGuFNLXtaJiFhcNL8382N2Xovovvjv2obsAHZjhL3wIUWPq5Xm2itEQR-npoffAZEHWSYD21HHJvJXMjY7tWVTgoS0aPkxHdIGvNvitwSuta7OpG0B7_FS-JOLFEmMOFMGgpF1xKSFHguvkZqUmWi43hb8uTGr3cN8Jax4sxwoowpO_VgSOvgIhHGR_uq5OZh95fc46yUqr8YqT8vZIrHuNw4heTWdpF7HfEkaq8Le0FHx1FpNHSy4uLq29ugh9jjfkkDsdbXOJcMHC29AhjIDTrPqm4MxraHH8cDewOG8cOptGNMhjeylIsl9gmTf_dg9vFRnV6Sv0q0gEf6a826VX0gCVNxCrvuoCD-fuKLpdtQoznyCB3O239OH4Yz6sKoJXRtdkwJmagOdh_sI0pQWQtwpltRzwoXQdEtDQmZCEtyCN9RxcjAAKfCHE1ASyAAZu-BVWMt9qK40aLgraM1qywab0ErHr1YtFYaAJo-KOPo8oRpcYp5vfJDY6O8qivnrSfE9OTVO_of1-bt_9tt7G6ShwESpIkb822OiTIpjxf7WLCc0JD1is6b_C7_sJkPVRsD1H4nuX3EPh3QuNFAEzRoe9ra85VCCzgnwyAbMwJYtY_ed6aaOzztho-JC41Y6Sjnu1rcVINwECH4Eip1fmS2FUaJZ6qBSqlygE3prQlJQ6Pi873bSLZAv0T8Qrl1Ecqo4mCKb-UWi1x8wh9SNOxJL3N6SmQ-euRMJWB6UbGLNGrvrRsNA8zj3Y2FBM9Fxpyk6AnvNka5qv70_m0spyzzJ1XJP3mnqpItqfgwsfWG0GYbCHH83irlqH6VR85xRhCyaUBHjQRl1sNcsXfEgh6TgvyteMlJCsBp4ra2uVLnq8dYdQIn-pCH2iAI67xRb6xFYvlfWabNmMDELS3AvwsUZrlcM3NYpc5SR9_eQvD7qsvbjEqBdK-3Z58P5Z9ozOKAOTQqhRBYzo6zwXHByeGGsjjIcriX9LgOqIxYGv0W3Xa6CPIa9fZaBaXwzx4FzlLJiEwnluFslCU_8E75F8gQRMBq7r6h3EnH1HjjZUaPQfrXH9PP31s7nOhGrMtOldic7Eq2Cv3oZySYbPNmI-mviFGC01IUGuv7g7pJhCIlQ3DTcHWuDzHJ629_AZYPbEROmgpBJ_ov2MF8gJHWt2KdZ5s_b4AGdNq5ghIRl1JVWRwshXho5x5YoYNwx1ZhSf75LAiMQGlTQ4alQnPxzgoe7I8hoPRFaThlnH39WOkfB7jr7lPwfi58hlr4QX_s16JW-VUsUQJvNy7AB7h2PABtjpFOrnC-Fx4jJWO6zBfjvtqR6D8Hlg13UO6HlJKbbLzCj0AiXTPI4tRlzMiYac60EQKnxuGnKYiIXzk7pX8crio7I0B4DKnvLQC598lLsty-P7dP4uEmCmBSxOVGLCqoWxquw_eFkpmEdwFKUYnITDDY3_nexOdhS0YG0yAbKODYJjg7dTEUFMh9HzzTSwEXllgdtrURfrfocDZ8KNOVmOaBXeyEcgoSLvwNArAFM7T-Jsfk3Pau9g1JgSFxvBfxQ7L4yfcP0x5iRhWmSzeK3aU9m0GCL6ZoIJ6F26XUOHWWIXDJZvTbH0s9OQUgn-xv1eG9FgEkHjQ8qU3tNOh4FhDryLP9__CxMyxUkwVca3XAzoBgBcKccZFSaH2yeH7rgU3xDMGNHJWt2YQhh1cns8-Cn1XrGMmE1nZ0yBTdKt4KJuBrIpoBYd-71o1y0m-Q3Ih6UL4REq7bclytlO5vLwPziex6mXQrXtKUIuGCsra_KpYmmGLmVPinm_jTgprENpTOkIZ9mFqYmczTWHW2B63M-taKKzWeZVuqsHH7dI1uhG_r5JjVeW38iUF853lnb6yTlo4JRvX04auldog1pzfnLlYKRt4sbI_vvGBdxCxra3sF2xO47vE0DHOmGXUjYF_NkHV0ePEJhEy1vC_SpG9SzRdckCyzxB785M2q7GBva2hj5y0NY10v0z0U1FNbTukpdmd_L944NbjL2GNcfxIHt5I4mkVkkSYISKSfcSaBDkeK5zfeccWGGiKXHU75dvxxnDBXIW2gzPKvLX9autt0VOdFyOwDTqZcXcIY0_ICN_-8kvK8Uolp75427NLbFT72XL292OTMsHISqNyL2t2NvwDbGlfUrhEoMzrI82MdKGX1_RdWMspSlbxEuek6YTdZmM2ZP9__SeDSMgxd6wZI3-2Yk86ALo-of4jJMn-VFy0pailzE7C2G83ICA1ftoEQcxm0Z-ISyPPjtiAXlM-y4reLke1HNiaWa2g-51KWvc0R2pRHvtmiK2pZ9Qty26mQOEtieonga3KiDIU3XDNnMBJ9j5LcncsLnKfZM6_37uN2fbr5cZFV1J4Lx83DPQPoV_YZZKwdj1a-4_2F-lUmqW4tmh4tIvbvmH0ru1Voo4_OFkSnM2cwzlU7ad4WkFeEkrGe4AYNCgchsJ4BZfpNjGGR4oEoROiDTTVQUeyN0T_Sy2ta0aicopAMt8Gm2Enc52MEOsoxIbDSWo_IvsenFO24VGo1EJv9u57zpbERdYPaxsEmcJetdrR56wF7ipiwAAi6in400b9VOdkULkfGelXBGT9SyYPL51iB3vKpv3mxC3xMSb7e0lvY69t-jMQ04ukuhgoyUr6F6ObQQw71BKVWeo6nEBll5B9rni-SY_aljTPhYO4vmj6kJYFNCaInug0UbGs8QCt9e5MRs1A2HZS-AhTLV7ZUkmDgEKSumhhmrYU_p6SA7nNHSc7_N9R35PhO4RypQEzA1IJwvBYfxt1wu8Ol8OS_CR2fyNk8vz2XRfqi9ZQmqt5C1-YY19BZVpsBbsNew9GuqVoqI1clGDAByebabrZAkAkAcVQTeLGu-U4LCUGZwx7YtNiQwuq4CbUBrl_SGgfxnXiP14vwV4CL2lK733avv22KKLfjVy2hResHVMsBgefMHNk4eJop_8XXc2Qx1VX8LP32WPMZV0mk8bTaTZ-ZnQAOLysgk6FWfYdnxO6YUiTMZ8Xk66MtywduoRX8Ul2Gz8lmhbNWpZEqxO_esT7PXh3IxKmbAVm5WCbXd4aPxK6szoHI-r8ZEcBAxCxsBZpuwK4gnNWEz8rDvkqXC8AaKh4suAVYVFogcokHKnRcY-PBiNUriyQlkeXiBlvR9k2rSFMufmIQ_SlnQmarYuMjs2tNlcQFP5PBwnJC8Jp3SwbuSFjBNyxOAfKbJBClORtW51wz7kQde10jroXhQvtIvVWNFAYZWKf--f7gbHxDyl0zqGtCR7De5-Q1EgZreX29rD_sm8ZimLKRKIZGXP9zKBlM-39LTk4BeZ9jHat-cAOOQGII0kD6opEw5190UjX4z4rDTIAqsq-ObZ4rvNirE4tNMeTpeILAjS25pfRIyHcLMfuCXkZFBwbQKu5KMjWQfJO46NSvKcxlXaTAMM1mfoiJqGcb4jE_YhPIIueHVimQHdlze3A0QAk9fufJXL6w61c_u3T7WIqROt4XOsqbYWpuiLEOkq8vMd7GFecOFxA1lxk4jMWlSheAme7rlzJEzIDRnGS2Bt5p2JZYT8ivjbUg9Y36WmzZTvWk3152gAAnw-5Y4yomlgGTyfBMdy_BYfQ0yFDIzteUn9R_qWtfdSmZbI2IiNu78-bF3hUyhJCjl9gFpD0hSxr8yh5tme9JVPi4sgwo2aMeBPN0qHEIYEijkR-zj6gVVRQfiskb2xMYsPZiRBzhBUqzpxiJv9fx7hAtLuR9dhfR6FpMlh64bXX8txtxXXT4Mxj_K5QzKBof-0KUZJG5T6kxK0-3TkRB2QMldwG3fiqNKkybNj4Vn6-AfEx7lhShyRC-eQ2Lbodku4eWl9xPkThHvkDITQQfND640rzcmB3pW3mQGW1sc--DbYbD5oc6iagJNbXcNzsapsabML7vdTaWJMiOvpGUfqocRdtQtnekDRYtE90RsPaU_afaBXAZP_O5ByPfWmPPYMkcsnX4VfE4HQXL_TWfbZOpt8wsueYTGloXgDfO8AAvKC1yjYKiRkzeDhgeQFqj6lqMS5KvzbeCZ-81sdoBOS_pJWch8PzpzFeiQNHQSoPIdrxA-el5Jl2oZ0fWnCp5wW85XpVjhkQlJn21xl_03pDFEfpeE1EEekpaBEMKt9H5EsUjhYTK7rot9cLGirzJ5b0Mlq_Tk3H5Bas1SgUIUXGVqIh8YKefFrfyb6NclZqMZgRmkb55dM1RNDgPfGY-hxYtkru3Pfkw-prFRdweiHk2vkRUva72nWGRgurlI2trYTvBgpBBq_MHk2mkUOMoWPKUWvNcAjUjXdJaiOMmw4Ap_auOHapriSX7L3WoQI3dPcokgjFd9jcTcdABu5oFexUK0I0JiINZX-dgNg5lYt4AVn-z40_oT68uqkOQ1ADmBGiqLq8uKH8uP0O7gshBroCzQYTZO-Oc7RrzkEUvkpqw-ZfwDSI6FZi4LAbRyzEQkFVGKVa6VGK9k0tf2gLjFjUSZMNuJIfefeThB-C7WUYjTPz7bobBVkJSLpITyzzVkE6qMUVbglFc5XKewkGGEPKRFVMvSGLubCrfWIqAJmUrBdHcCyl10tSk6Nu1iDqq9fUWECszPjKukhxNBJJEBnuSkJPUt1EvDr4lQYKi4C5EYpW03x_A3Tgq9sscv3qjOf9ErpC_gx0vv9KugMwhK3iTmG6YBRDfW40PlLguCUM6Rft__dH9fatpGy7zkZj0XLq0YhtCFdPXlCKXhD4m-VMFu0rXWvPUpOoAudKPur7TkbcJj5NiNfgP05e8JWY6uS75ivy1YoGU2pIQELVIIkVYShHB1tVAYLu3aGtacLEbp-aFJMcGNCvM4qydDTKF7XigqCH1K24tJIWyvL0Lffr9ZTSKu9hSufRqsBUd2F22hKoR_1COyxoxi6Befy5uvHIG6RviRCQxpm3EaDw97KTN3-E4x4RZJcgQPVJ6j39Szap6pp_wvM1E-pCoUfKnLFwaZ9r0ayyJGuGBOn_ZoJxVr6jBeP4qr_-ahJTrcPPvDjwzPem7ucwcDhQULu9OHr4JEFN-4MjNYKievlNs7hMJtHGTzGHGmqDMuGDzmxiAZetxcYlv8GeWRkrzS-scozT-_jy6c_LACV_OzYs2APFmgfJjvqIE0wMBhAMEGrQMfHGoghJQoY7L0I0M0KuQtFcUQ2ib2s958H5eVuwpkKWHK-n3Chdbrgf3T08E2Hq3j8t_wFnlI3gPf9OQ4XTJDsazTzSoll4OulHef3DC_MuxD3HZAAn65A9eEpW3KDvkMDDA0epA_KT2AgkPfkt1YZNBKwJ2FGONNmJsioxOmQvqeYCAf7tREfwL5TGN-7rmwY0ef5-_YaHZTA7VpaVqtNf5cJm_b8UiNIrjlwfC6VWHJGPbHsFMtnChJzTafSYIwzMWuxpLiQ23z4lHcSsq2fl621__W6cm0xn2Plto4BIjlhHRh_mgZEmXthAG7VobY0dVwg079NzFxep63KA4ts9ZpKxa5EDBAP0oxyBHFK-rBiG1s1Y2NyqhDBGO_lH7OvQG0WebHDyibMV8Z2GdKAZHhks-uvCJQYvrR19rUJejc_tHlmA0EPnAoo3YFBGPFASmjgJnUDguaHf1_VDnGF640iDofJapAGA2QN-EC_35NIMjIPu8wIRu_r3WzRm0DwCW9uvab8Xoz0-coF3dtNQjjkiB4kB5Cj9Jvmlafj9rPfXbTQPAwIlwjPerFflphYHKZNiUAzfgB4rIQjz6CycaN7ObZprPKpCAffddp5rsbjSfkY1y-f2HXnKFCMejfhVCM9TQ8LGxyK7lj4b1tYyWMWvDzmjnT0G1Okzng6z6B5pQuu2QK0L_nXJo526BQqJfl4wgIOC847KbrUuB_4ZgF8b7TlrECIkw4OZNMjAbSrjAvUH8ExVS-uU1_jEb8_X59-Nj7tSkRgF0tFEEYiZe6Jkdo57n6fQcKVxLDR4X5vGRzb3ajc57PgimedPdYFwyNkDyFXdadBh3CiHgpT6dpdCo2SoDVg-iq7yjqjFnjShydMwCNJtS23Y6iCOaU8uonAyE7fdbk3G_X9zibSHH8m1KAQ4XkiuffAoDSZ36zi4-xwbyfZv4rCD-VpnXXElFjZJ5xREE6hFK-u_Strk4i2UgqJCZSTi3521t7DVEWdd7025s0eWIslkgMpu6WHbIATDJshwdCYxjcyKDYZ0ijjOBmkaI-gOagkw8XrM9LEx06W_TCq5uT21teOpNM6goEFGZWHkS_HFO-xRxUj3IZBB-G8wtAW_jz5Ujg8HiSHS_iAJz-lC7FDwRHkA2-pZoJblpDzYJoVbimxx585xP-XKZy7kwyttj8zIXIlqm1yhL1z8WHLqMFwdNZphpXJWFUlfS5A95r-j_G198Nknj1Flq1p16mpe3smWRhX8jdB3A9b22seaTtruZoIz4nyte8h22Nv1IVtozVsxBMXRRCqli-uDa82oUbpKeDzyzQT4MSqayPT0-Ptu2Y2HWD4YhchNgATMpdNi2Rg9AvbvE1eY9ypM-rS_M7XZID2J1pHxeqCzNB2SGaLY6lY1Q8xxWzntvWFx8hRxOgEIqUOVvvhEBXbX4qEpFFrkhxOUBEM19wXYaDETxgRfmauymQPbwNXpnSVlPvq7-9ybLlndHzod6WecC6hBMSAdQ6z9l4k37o1WtPNi2xfHAabeyhpjgI2yjPor-VMmt_Gg-P-fxxCaqSDyrzjXO6PmUimXfgehLnmrou9nI0tB_pgZmRVl6Mpenu3q89O4G4vF4M-VRVZyevSk-8DnEv-bBOcXy3cxdbZEn50OiJzSyXvSW7rSVrvYWxe0I53tNqgzk_JcAtn8paTWeQ63LSlJzns3PndkrTpvJKeCAtGBMijA8uzDQQiumtGVrOE3-MUH806vtUpg0TuwaJKnuTTdGUCeJEooCfsERlNT8_Mz-HqBdPFXNvGsCm1o_xnFO3lidA-PfXVK2TqEvsvQC8PNRb10EmKrfiniPDPu5K_ZAXkwyAhDIN4ClVTW7mq0R6R6iZDXDg7_RA8kJueOxjiehn9365fqbnUt_FnVQPkkgjZJ8T7F8x1FnYDVRhF-xI-NeUZKuKBXW2vaqRVKLOBwgJTrGS455l20ni0klmefeXWKVvWMb5sayOBLDFYyw6DQI_IhcrnVwKNP6qhpfa2o7z6C-_RTsROgO4nm5Ok16U0op4HRCu4sV9NMYwIvklcYgxuwZSFLQA9ElSkRp7XgwIC61FnWKt58vn3NyDs0LakXNmnzlcbVTzxH8vKOFT3iJwE0UpXIPZJ1lrfNeb9oggRkqpfaplAlv6iPtpwmTcaWINmDFUPicUIx5fvBZQtuE9VbsYz2CON8bLpaE1si3tJAMjIhJUEtkM23Z47n51mW5QwRYvySPniJtSVM18tZqrZ6Okw0BGYhYU6zZT35HRrlv_sxp-srE2l2cKre2UtCplKCWm7AvZNZAUO5Vs1OqNc5BwOZwX8xsJyDrV2tIskgA9UOd6IoLyyRcDWAFDX7yT6MofTn-F8nCXge81Ha8XWDUDNEeOOZnzuqlbu2kRvnx0zfQuM1fzDLtXyJfE48zrb2GQKoF08QHBUr0rJ6NE-7tfvbFn1qXLFFVd8d2MWpu2NByH3iuKJQIcKIlHc5Dre-rm1t95LaPJaKtno9FVeymb9OeWQb-KbU91Bhfae-AlcdzsAHUUyLvjlEfB2-qiulqSGYQgKCBxm7OCgpkTEb7SaGUwApoRXBLSAJBnHjYPRixS_W_6IxWpza-_PyVZtH70jDEygTJtniafNfZtbG4gqiyZXKbptST05Og3nYIxPCgGKQ5B5dFSLLEpFBCVOKnORKPbf9wwG6mowTTnwAxewJ5s-7G_5m4WgiIi4ZIyag-KnMb6VF2WtU72t51U4XnxcVWHAPbA1iP0WFx3J2uX0joxYenSSNyC8zRhIyyXIaPwNs3bc_EZANnNI4Onj2MhQAG2GCvzBCkwix9CjkUoXkHMuznIsiJvyjYF_oPVsgR7Ltnn-Xy24-sFBlQE-Brum9rHiFfGIJ2-aXRl2VPsrAuAeSL5CGQxokT-x9QjUdqw6PkrBpl02ziqc6gCobIvjWpINGRyCg-8OOLSdXOwvZZLANEwPs3R5T839zagnG4zUGuPL8JSDOr2NBuEF4yPwqVP4OP6jlbu6Rs68MOfUI7jcZTP0bFpk-zYMai6npw5zFI0BsNjx7h-gUOkT2qyrpX9t5fziCm_5kjop8vbn-YwlmTv6MFN_ZABvHqXRTJwfHfpdcF9nrtV2tSFKaPI7ZwhCtPT1ODbxdqXTKWSqF19dUpHmMF6jFS4KcfD2hftf3U_ddckZLa_5DT2WU1uiLhzGFmN4x_S7-msGVbpVcwabdH26DJd39J3nQfrfuS4d9Nuwb4MioSUCqjiHpubTQ0OpePn9LhEagnRqDwNX5G65MudO0s3pMtNpa5Bk3DAzT95ijkh2YILn9-hAgHx1hLrfCylz9KK8dxYSkVpN_SfRiJsP0uyIUOAurZ6ixKVtkydhvwc7GViFeBw9GLpKCP1t29JVrBZBD1L6tV9unBPaj98YeRpJuqPV_Z43QJFNuK6vigSe3MUjrzk60Asi0rCSs6SfYIt4cfwHjCVQCpJTMwRjJuHkesWfvLgQ77QXypBMqHGX_M6SniL0a63LB0lPbgKnvQwGFgrMwxUTaJNRWOt0JYD3qWtJYQuZ373d3snYgrBLO22HHlLEdiq_PiXMBzeO1nv7W9Xy-whxzncm2QwUIyUrNzuDTJfvxXhlVI004wevEfIcNxy-oPrE9JWbmRovCm-pYrTw9qm97GmbNyEj05Yi8tsVxPWoqvY7XtJrNxGfnC9575jt1QMyE31dmsjaEH4cVNhmcD-GH70jsk-1taVZA1O_PcQpZVHMm2cyXaCBeLQIU43rOfpxKhjYmM-zKpEHyJYJ-GGqtoxBKjecDaioQqxv2IUzag4p8Ivfst-f1CbcrnZAfNnZkS0HlM5v7kNKvQI8rxLiw9xn4cpQdxqRAb-z8UX7FOwvo3CETXx9pZB5aHHuV6bk546r7iFzPOWsUHaM94hn9z8b8y3DWW0fZJR0VW-a0tFZ2mc-nRz1Dm4ZJhbweurZJ4-LtlVX43W14XhAOMwJLYrggARXLgg89zXxQstr2ovayayld9DCwN7vkBIpRa8kig8Z9uukQTPIwtCelULRXx8ygQ1Cbrydid1O05ya-R4g1wYCbd0ja0Oq0Jces5FItKF2VcYzxesm_kSTV60sesvJEwHyW3uAVcdCcBGCCHeN0KYUgHxSSj0K1bwZGYYrOyNz64gLKY38lk3RqP8s62Gy4VByifeYp9ReS1xqdf7ADZXP39X3EK3aXJ5_1pjO3GUVEIDodlYBXkyOlAjBeM9DOzWMDq-2HMcQI31GvFPMN6VC7eRAj60gkfJBer4jOWttwSqLvNMqjqaQsz0UYKTk7N5ishkJvFHHv06QaLjzm0UZLUBTAYVJuOmSVje-AgruCUv_HJnDO5muNdVUe79u0Wt_2JAegIj8F8oNtej0nI4yZNgtvO8zL4eo5RJVR81ucOVwhFJX-JkvRCUydThEHkQlcEyFsKijeT8k5CmqLafaXPoIXwdQmGtdZva46U9Ih8Mg4h2Rw5CHhND7qogEtDN03nj7grxiGnNhJuJndD7Mz74V1E13b3ZHOAIXWud5F7FK8ZTk4pbTHkslzZCt3GrM5HpWheSOOU3F3JFrkXGEgJ0Nor0TmBUXxEF7ujRT_qGB5V4U18JrherbTLol6AFM4pdbj3YVcRrCcPPkdTrjMc_eMpOtMyKBWt7PGam3xzgCTOVnnIpXCq5JSFPSiGv0U3SrUjaQBNrsDWNixLht-vw24jXbr7MpskDaIWprQEh4N0JwVtfduwc3yjtvCPPzLbsqh6m_3R2lGZygryiwU0vGwGnx40ndSAkIytU9CDRtmGShRk6EislWbYDlI4PIx9CvOM_oAg0E1lES1km8x0OO93COlyMvUuUEwgQTMKCxlJ6uSe3g2xidaSi7YRXXDcii3zk5Mw8TQSBi8KcWpR53klr7uGpFimqMvz3xtAjr8g8OMB0m3dXYm_vLVULSQb8wcTutdPtB7Qxgv7H-lYKFdCrrdTmSqMFzN4uXpRKist6jfRGzu3oXEleRmFEV_Ni4gX_uYr4fMEHHCXXAdryzcP6QlIk3ADz_Orde8qGjkLom9KuDaUOrftb323zvALkGVvNL6lSVAzYiasNvndFaiTuaXP7mpHFaQs7YavAOGS-Bt_29-aUaNvngkQ7YybMQ1XCJl5BCq4iO6_9a9fisAeGG5O47BpMHGUyiiaTFACLNtapBPn67OZjW8myqlyf9-SYQywtXZeUouCiysH00NbZ40jZtzWPMHlt-v2YFk_4ffZgkK5rfFcs5H3MQFTrlgX3u19OFG9s72RmL3B8t5CErFzjlWV3lvFrJCCSWxYagWkHqkPxMLW63gN-hCcupXA2gHnoffodVs13XB5dEWpD16RRQ3DiBTm_9byiuQD5kfoTLvXTk78HVd2gIcqWhBvkgkuYbcD_8QGqLZ4aqMMxTm4CCaBrLdkIQA5nIzZBOyNOFxiioEgd-_IUxF6MZyWd0UnB11FnY8R4RCEP1LXVwqjcyMbQ8ciAmyJXWspGctQXLWfZSOHK8L1zJsyX3g-jUUumGMHDfCRdmm7bdditDNSgC_6Nho96m7pHG4oywd-w2B0W41eop3VTM7aqpuSkjUNtDx8_k3nkJVaz4WoeCzK2KtGMhHmVMT8IGupDe-RsmMF9IdUFvXSkCBepeR9Sg5n7eNFxEJVPU0uMycT7NGhoyw4QBPl1xnLUPlz3qRzZLDcPqn2vLz2iGa_gBtx7SmrytjFE7iAPm4POksVwsI9XVGAErmNzGxWwAFE3jNJ2KozoWEl4v6EQNUh2JbJdR7evSsg9zlmUu8ZW2Qh29y_TGK4zV1_WuJyyWUbH_-aLsQaZBWEGx6ZecxIj8FP0GP5_I-7oVCM_Ah-_P9GL6Le7NvNbTs4mbC91O3OqA-Pzx_vVuboCaPe5Rh9uFS0pNon0Fg9lu68nD4HnkMcG8UdMe5HFH9wofgcqdWh5jDzGZwkkDbdcv6ml2XZFLw2CD5q-e0r1PVYhBVYjOq5hnDSb0hKVWMO2zzPckYQ-54hx_khyJjtpM-7W4pz08hhKEzeCX8bABIS4aEdpYBtm2BvxT5siuMQ3u5REeVxcAdNcoN3MNkd-OhkEJnAKOfIBWlzg-AxIMB1tDKqki8vpzi_plrn-fOG0jCqWjBxuK8MiqR-d6zkra4ZD3nc_HNZSi-N4xv6xIJ310Itg_J_S-1ivRhZAjvV-tBNBhlHsHi0IUhETOGjFO9dphvhoQ2bkje42lSMXYmS1OCNyLTP-j1h2MtR76EXcqjbs8nWW2336Xe9y3ArMBdee4as7fNDUDHirTACDhJ363zDvt66D78J1Ff5TonDB9__vPZWNdL0wCK9G90JPTsxfpFFfdNL2BWksdQJVowlz2DlCy6lfki5kQII9EHQyZYnr-3J6obpg5Bkpm8Bai10yiGlM80LDXafm0oqJmOgri83YxTOBpxObr3j1vjVFhYhGwf00HUvoQYVujpxUATyq3lY6g8k52sE_rgeyUnwp20s_ZKnAwMgYibsKCIVhNsXau8gLYzoyCJ_Qp2ZfoH3MfziPAbFhDZ23bLY7m1YTSf51JiEOEYiDwtiSIVfwoErIrRz2O82S7T3vq0Ek4vBIYXkb7q0EutzVETXeaxfHwOdVgS-EfbjlHJpz5NIsgd6bqvELJyDCgpXSNvvCeVRqBtJGrR0kuq8XENTe4DspaNqU0rVLOvGlBglyJ2ZaXxb9qsGB9UeV5nGefl0rGnbtJd_je3lvJuzPq0GwFZtq2MzDvz_FH4EReEcEeN7A4vNrmhrzfKqAi79vFlTqI6uvgCyizIthS2-Yd4nr5eNe_-a-hIcDidZFX8SodRnN1avQ7boWDPGDnkCMzxILNUgOTXq1_VARN9RTk55qf4kqt8WM6AYzk9yfPZWJqdBzzkcPg5FpwKoD0SNpWNVGXerIjM-XNMiFX2S1t1jXkNwfvR6LfgvRFEJToydiGEG4IxqDt8pZw4UuIo5S_ZEG3RhZqtEGQKa_zTmbrQydui4V17UnWdX8cOP8SPjBjTL2Kf0ePfZdX0o5cqVgyvrWBPpfte0SBJx9HZREfC-DQeysiBjlJlqPhP3fb_GP2RoDfiUzt7fuoSpFr08KFSYiW8pFJ5PmDpsdV2q4exdTrBl2GGSBzXxytMBzB7x1dNEZI3Y0EP6BhfFxf5ugSe9WrAvVLsSnq-ViQhu_HbNwdQzuDhMSzB_Ic-bRjOl19km7Wzhq3vjezW7DXNZ5I42eSXpJ6CoJ6ZIDXiJhZfJkaV0SGHlRVntRdL486N5DtgLBa0ZZege6xXOMlZjzt3R5COFGmeNoQ3JnWN-jSZW7J3RbZAExMf_hTpV6MmklVhkx4SMKSF_No3-I833mE5pRUXIB8NrrPY4RkuBFKjtCJiM7QdWFomplsc5JPUs0Zy7RAsaXA1WkeSBk-tP8dxORHiz4LFRItgCGZV_c-f7FcP0qxSNAoQ5ZZ8Q30QCfXEGV1XuvSc1oq15d4DM6RIirXW936yq1xbNMGXEHrzJlrR459UcNhlweFfc388xy7XlZRKcrVD95Se7Yh3QIGqekLGlTnNu04bTo-1Kgzc7a8R45zdMuAsnh8v_UCoCRJkG_ftYE6F4NCWxx3RihBM53TzV46hk4tgAqwdKCx68X1VRxiyIiaWnC8qEcSvZ9jEPar2lsUjDmAjSBNsVoakEy4h3EBQC0PZwXutjyw25lwdEhnRPMBEAZBQ_XpTfplRPYyKprQmjSliPbCD2DPQoEd_uZ0DEnJuFinQIIEjXHZc1L6VvBjBafBdTtO0BR74HSvqb6AXvKKaYDVdkMkD3KnSZcoTiFcodmsCBrxWms8kfrsY29fhlL7WjqbDndOivfUGWRT4fB6YwaLoIXO9Xsiazipzxej_APKONJ1H2Xul3WvVEfV7MKYKFPmYbaDWwjyrpyND9HKavBzLi3GB7nxcLHTk1lemyR5QqsMJBoo0ONESNqCfFt5Krk9HGD7uiYcQ3nC0cNvECBi2mim03wHDpzR6PqWhTu_mV2NN8vHrW4Q-CjiEKhfwz1nCl4eb9G6qILsGWnqnrysAKkRofBS-IIFhQPGJdX-77BqhjGQOthuq1dGblQlNhuu_ozZdXuWpcsxJvwOlTJPlJP57I49tx8ymp1IJLjUeVtMev-Oy26tfTLn5mYnELxFJltqFv7l_z6YD4YeeRxNmaNMAFE14liWT1rQQrOcwTwMdbUbOCQVcrQrT1mQcRvKwfs-A7DjmCUghnSaBIbLu5HME9YQe7lZmtfeyVKPI3hhWGJV3032BCOsX3qZ9InUOLMGenth1SWTyHACcGD26-tNFAh9fP-lnr1Xc9QmP7abJBHVljcxio8EN64POt86TWPGVzoKM9CBO6nSUVK9W8aktrxvRnZdV3BAbfEoYtm27PuUyhkcapKwGJwcMy94EU8gtvuU7_zVi47EGc40GQJk9IucGS08ilBGIHkfGcLIvKlPq8103W5EJA8MkV94D-mAza0Rm1KO1eIVzNeH37Ywxj4AyaxRunrD-YNi0KcdQ7qj54pHor2WAZBN9pTgrXlNg-d4YDp58_3arI6UAZQBv-asuBAQriIKSv727XdSSjjFAAzT80yyEYNfiIRIpyC4hXYHIqE7uFG3EES7cal5u2i8hIZOV8Hder7tuB1X9_ARlg_Ouw9Qz5sRb_cW7XVqWoQiyiDoWymN2Bwi7SNRC3hJE1lKRD7cwlE_-MZhGuNifg4gnWEUQeoQ58213zeJaZGEcvtZRSgilBgC6pds5pAejPZlVv_PHhiPwzYcVPhwN9pgMHtAteKcP8gEi2lFdf6C-BUNV9JqxgEWQ6_GG2VuVl9VuNPmYodHxWID3WMueH8zZAg1UPsHvTiPdJziuxECZK3DiVgGfyB0QOWXb0ORp-JL0Tax1rPEuyNrkpuq5VteYqzhiiR8-Z8aHEAqnlHdQkTRPmP2QvViazSAZwz7sWhCyeEwZbYBQVwRiLEuOZKvqGaIOzT-mHQuNGiBB78iszBR-J0L2PgUDik7FzOSt-vmwejYW8L0ewAaCeFx-Hf9K3SnmPpPH1EcvKeM8FVQCQkONRzbXVmDKH-i_3B9ZqHWA4-02nYu_l2yN3KReznnjTTs_6KI-LNHSHgpgkNpBnfwBZ5a08eqE1IIxOljrx6k9TsMpWUbJEsBHjkbjhQ-Uqaj9Xzr__h8yTH5HhuYxfU4-CFEKd1MYiFY8UzuVvl6athJNfpmSryYqkYazdgpXNkKsbo8brJ_E9AGzm7N1QA-636g28UESg9hxwS5DBUh3GTclvXb3MftEPjwg2TZeEFs4CbqddZ-kBdJl9e8J4yjOjF80d5emCGFkGpWnuSdU2iRVW8eLjVQ0IRHEqMV9oN7hGnuHUHOFfpzmq2XlTeuXxh2GrApznrc5hLY4WZ5eW3OLZa9xXpIgThbtZGhb7j530swyHt4eC6A5Nhbw9_EbW-5NtuyyXNVolKPRqKdJZDW2YZWWVtriIkYofl3IzFKSbSTNjhMCkgEHBgAyErFiGkCDKOrDZwZLt2abOOhbIhp3i9aNZN93MB3hZAjzY3cD-l7lKkTzhO-SPfpfILKJSRao_lE-YubVBbkW4U2tMRruD0iaXVjoPKxcZRSny7NRLd9WR2U-HtfDSeMUJ7oe9IALMSAfzaRdyGyOVnWmDMwaXL52HtBsE_kf_d5mR8pdU9bVisH3sFL0k0V_h0F_GuWgCOpa-GqlcPqP6DlbK-xrjD3vIo7IxY6h-wZqAqLe3rjghoH98J6Cs8FBAjDtEGjSxjimYsKPc7txGI98O19uFckZ7CedRK4Aq-EtrX9Isy_BUipYPE-POpN5EWohTcE2lldjkD6BroPixgop72J8wrLwvOWPF6rZ8T8u1QA2trqOJwVWT3K9_uo-zbY-5XMd2vNR5_MDZa8wL-0MwMXW3LGlOcTYwgzMnfOe2pRH6bC6X7Osnm9lk5xmirK34Or4U-vecesxn3pxbpnw5pfpM3NBsw1ekG7ScmUZPdX2arFCczPrLGCx7t5cPXyJWLBkXm0qGpTf7qc_C1qLUMfUb9Y-hX6jj3mzxXNhudZxrckLsXFBNrOyQxdXif2Kd7HtNP1O05mHjiG9pKGVjTc_eFLA7GRwG44k7hFQK0t4tlQXmPxnxK-Vfk2Kb9moiMBs8480geKXOcFmGX3NJjk4IaUhMEtay5vUf0L7vBGwdGhuQvXsJ5iNkh60uQwnvdETmpi9pFJ5FRPEC4J0bmXwQZR1iE2VYfXrRg4uIQAoOlAhL1FzXUL4qseA7Wj9iZy6P5_cSicbm3VC7_v5iyfw63gnPxHe_uWof9aECdwROQkgNLI2uGP_nijd5Lsc1OOyZNbKUUXRlUcbtWuEwVD48ndBC7jCNiaDlI1F2vzNJoEJLPhmnLE7u4ppgeAEndS-HDxAPo7IDep-RC--aCMpIWUou1AkJSowLqBEqOLvaAXktZg7gi0O_oWnnx7HedUazsLJgLYDT54zaBnxGDk6TPd2XLsQ4Wf2dCGmkw6CwuFIInegdJh_zn5DPhK1-7yMoAkv56wBvt7ntByDvukJI4jMsct4nmTvmE5p2UO_RJLSs0cyJ64qbLZTF9oPl6N6DG2AGKtyxMuHRMqA3Rb__e_albhzI-fZLyLXvxZ7aGxTDIHD2zl8VzS6BW492VYmtka3Pgy8J3nkyCJRnOmyhjPqlWWvbHUOb8Uvpb7XReuF2hQoa1uZ6QppDfGd_Vffuxyp_E1vrvEmCpyLFxMPwvRA5_toxpar4vhSSN6zBSdDIer8lMsYR56Q3cs0W7Un_RgmVZQe_zoZh1BwdA8gfYSOtFali_8D3wCPflUWsVDe2IBBdcNwJOrH4eYDEQM9RVwajo6MDuPyQ9E5BTwXEZgdm9NdZS2X70zOTclkzQDcqGJoNRaCriBdmRE-MxLnlAX7EWZokw_jj6RpctQ9AvHl3NQx0TCW0_d2PMrBvPoe-zBA9k7_QO_zOoCszasSdzwJZ1DBibqBK5hwKQUfIutmEn7v6qpdkIJ_KJ5fJput4rhHm3fA7IA8w1Ivu2sKegQvNJJ_3CeP9hEg08PFFGq1vCAToi5MP2zokPRLdBnwPzFwOrqGZLaMnmlyxkbiWD4hBRmm4s8Ix8RHPehFyVkoOCXc8vLwIIXZb2SzZg_TwKV0mtemootsvhTMA3wh3kIlBC3-u3ENPzQMZRWhiK4FQId8E85Mf9BNmSHpYbEkV5A5hQuBHUHqWkDM3sNhABGpBXwuMMXItGIEeTZHlu45R7K0P-LMAd-NKFBLZFwyJhqONBawV_SZNGqqmt_9YqebCKLQcfqfp7uWkVqb6YMInCfRiQjevRYgtSnDeKv6igYn_tlnxigckpAMPNvnajbVUZzSSM6HuEDQPevvKQsEyIid9SCw_2LckO6s6hyh6GyrL1Gh3cFqEwsSgU0XZSWu4IE8FVWzhm1TkyVs-HMR-lEZj8ZqMeaPZkBE_UA3khRR75oO-lZ0EB-jKe6vVw87mFfCMwJKTynN_e0xrFKxeygjwmHKjzrKx99TDNs_9POhyyqDxJPQJvxEYQWiTlu7pANEYM0UsDF1P-i8TuP6YUN4jh6LiZ9Zm3AJOPn99EpAbiY9Q815rMG3HtOD6P3kJnpKq_H43CxmgXYR5FVRITMCDeR6P6GuJO0tFDBf5DA1TdbyS30eBl6oZc8--hy1WeONIhGX_v359vsR6NkW4EjUsF8KAMNUuh0U8P09eq0h8IKzGVUezKxShWdjg3w9IxTOi4xAJJGN1fFqm3F6BEsJP4Is2h_mpW2HhHTFxy8R7h6imUkflE1tRRGOOS0pRW1Tj2pXLFFSWjvdDLtK_MWFNGqHtk3RJHqabfN93pM_-9Jav5o6BakSvZZJCuG12teMPzPpkS8OfugLiQyrxCALHA_JQs6EBUK7PrwQK_dx2rR9qisL3wGuvcaQ83RFksrmMrSnOiqRFxtrXsX40rXzZIbLrs2oGi46Pleia0ZFUeYiiuOsTXIN1KAaS_o66X0XCC5TrxP4tgMRzKECLQATiVhs5RSCr3pGhPhwV8mC5TYV5bF0iGJEBwStFh_vTBvMs84NbUxBvm2ua1EcxazV0b_edMpLUZsvfn7eEDZvkiH7jHG2KFh6VuH4Plk2ryhI4snaJdLF-xYZjUxQc7wrQkgH8l6b7lwcZ1Adf0YfHp-tv6YYBOUujNgDHAT_iS45KKN_aWPQ78RfV6m2QnIC6hJ8UsJnkQix-YaJv3vOLPqzvqUeg7P33iuZqzddP-38Oaqk7fCxWlefB1k-fU9nhuiogKNl2UzpCyJazO_rtsSFjGIa0z0ZegnmdDY1Ic2PtaRrwFoaQxCJO4VgTAXSKTZh_tfiulKsoEQXKoCWKHCmmcV4ankp6NzuJ4xDfDypzjvK_yZaX15yDu5X6Ndy7ppk6aoBC8vTKu0rr1tRAGMkSRUTJuvtxz1ybfiXpoIwujeJ9BDcvnuJkGQMwH-i7Ej8jX0-XfgYNXmIo5oJRmvxkeJl05Uw6z2uVyDq-dvZlynDMt6NUTWVqsofVcvvTEjRUZo_848wxUvpecsnJD8dYj3N_Kf22WIaQ_w-oeUGKO_h-HIIPPXXLQGYQ5HuuyYJ0MzFpMa5R8UhILmhDI_8WdmSZsRnu6Kf5glY3WjgSs9ZNQJMLrBmlFrEzG1sy0ToX91lIWHEBcRUyjjngKvTkima3zHy-PL59DvzBWrbnu6boVTdpcahb-RV95Tm7GCWbhB06sz_GHrzU-1LFQNsyKGMc7sA1jR7jdMJgWOuVbDEHoUJFMsscDwljarI_ySxprv6SzfxCtSLc9sutsAD6vZ4qbMWzixSnD5paTGxIA6uJ6xDsN-fQq-Eih_1doiAP04zGReJ6e1vkCX0lWLxTx3Ar6frtam3Jy7934Y0wl0Lt05mJ-d9bS8JV91hjPxgMjMSBF9irFLpyZE7ShSZl4jC3ee0rbwrOlpDv7lQ4aR8WlIE1oQ6u7Rkb0sHJ5hCbP_dH-iMQvLilmjks4cnaqgr5QDt-andzQsTfTql8D36VFHkODr139yHsa1j8grzx5mOwCEykSj1BHjia4Vnk_IbCHpx8dn5TEa7B6kOC_wWF5eJSjS2DEdyHsAjnQFXTUwhXyJifsLXig9n9f1RQreQ5N3LypahHDslCBTxBaC3c6K3NRHYER8_GnJiK6wYLhX8nuoydftQeXWtM8Vqh2AvJXNCOqfpt_IDacVnSTjF7gQc53LsfasjuQzAtPIE3TqeQ8IfZTZr9LMf2R8Gf6Azj3GDc4dj8Mnyeqt4ML4QD7WcrjuYoSW3rj4_Hx0s9ncCf_uUQWDDfvA_SKPjZE_1pxetiE4AjFzR0hne83vEytxgerEXvnzKFWT4e5wMaF38vmvkQssY4lRl5igU2kQYZjvOizH0aUBcNVO-w0QpN-MB10MYYl2JwGft8Ua_cWZq-v7ZA1e37TlPkn-tKB8RJsxm41fOl7nLWftXh0dGkYkY0LbQcK4_bREgoBIusGwuEAxNbXji_xdvP-xT0Sm8pdql1TYH6L0j_0vjSh6AJUQ3sqzmMBLQwBYjvQDPtWEAvr43xc8pCpzGY8TdtmYhaLQffxKNxfplg6XM1awqhsnhldCarwIXf2AGrcRI6T9iCxVE4d1UNuafp4EYGpmGDeB-ra1mQHu7htze29N2QZ1gIBPa5o667kV18y-XBLh4f-ha4ZP1o_-f54NCpxCUTQzUvaGP5m72jsFJJxkXVsXIHikOwYzHXlz_xyYpWUDCLcNHeeqHIeSK0TlSKExVdL4Pj_3Vl9ncjWkvO5v_YyQ_nmXszPUoiVTvAm12YJoRUaC1x83GRQkioW79wTtns5mTr8E2xxE5iU5wlGPYmv1FGagu5-S6irvAIOfa_c-wpZ1IeOBj30mOLORfrVd5QpVkpLIyhUgXF_1CehUifRst5k1ZbJXgb3FY3cdhigOR2pbHkdIGQ0et1Nl6bQnDTkpZ8JW-kH7E9AjPnE8rctXAHX0SoRQ0xRguqDsiXdmA6fZ3Kj2Zwr28oFbvSTBjgrL6_pjrwupQxvLHNqwlJJCj3LWEl-vijBd_PGxmmRLdgHXqyY4caqxmdD32uw4p7wHwTObSSTX-s1CXg2B3uptOqawwhmUaAJAMRRdn5pSEMB2-UA1ptQyVBlTT_Sp1-y6va7WtuAvtiiIl8-jUQtor8Jy4Bqw-oM_u4622RRTLnAhHq1EAQYiq5tTSyGqIDjbvPo_lCuHmIAN4t5PCh7gI3cvyCuamsSKXFCseIbcWSAUX78pHIU1n4V2M1Cs2QukEOOefAohNWyVXnXQuCEzVuM56_QfL63jKHp5IJbDARDyAw5crEBM0nRBYfRKAYaJyMi9bh2w1L1Nu-f68qPxrgH3wxXGYyr4-dIFLcFC6X3E95BLN49jXAfuhGNZEytlthH4d0XqurKAm3lVGYVndXfzwXWlleURCinucWM2cAUo3b8GiFIkg-qSz0L5fHFiQUeHBqkEHTk8VWqEGnAnFNKQ2QZNaNuzgL8ydNNDfemuECtA4S4nQcvRWFktpG3ko73kO4eAzIMebiSFnsyb74vcx9uqzV0btl5h4GBdaYQDl2GyejcdRt1g0FeyG6tTD_UtoWL_1tqopqc_JGkTaU8y8L-kmKs39GLLzXW6pCopWb6ZAicmSNZG-c9WYOWOx9jOQ2GlUDNnxQs5ppeCo1IB3i8-CC0uL9R8Gg5OMTqUuop75Cx2MNNEejdn-ZGlSG8t5LDEONrVn2dmkH2iUPl5nDVvXc0gA4mqlI43X6YMR6tDeiitPMnwSd2G7he7VeXSMj1KUw5k3ngi_hbwlhGq2T6j0FuRe8phvIPNoEQ1lKnHW9AnlcaGszlf18O55BZKLUTL4pwKwz8mJPfRbjHQI9MmjSL2JHjIRDhV5vj0NHj7TUzFJV4Rx7eIeUuOQzAWeSPNFcA5gsrNu6hYY9PJkE1nhDA9l9zY_lzEqU1fHIuNo5-BaIjKy1rHoAX9cwmES3UCB00K6jSQum-3s59phaF24HkMB5Ki4M88QaQWYFH55A9Rm9mrmKczyc19ofrS29iWFUtSPOGCbPWF8RKwj8y6dqdh3FBm3DHVUliX5CPfG7BN8zYjcLapJHg1bMTI158gF78-QQNP-Iyzl9WA-BjiGlG4ZGv5ZFHtWjtZF9g8-naWuckncfx3zQpmYhq4Na_ZSIIVhTETud9EyxGElSYKzZYF8huNbdg85xYGbeT_3VSQEXxnHMbsr9L3Jx8awOy7PNsX7vfZ8KaS4d_RJHz9GdcaMBrQ6OymsRJ1mU0rigtDs8NL9I2fcWZtphTqqaDI7qsAIKAvXCXxzMNUtcRIaQ8c0SJnzzBTrWSSl-22CPiES7k5AJcy1132cG_W3ZPafYwp1wtPYgMQkiD70UqIb4sw6wEYw3floPCMNyXIo4vjro5v2pSYpMhkVxSVuWlM-uojrxrnIr5E8dbJEcu17-S8IB_Ai8Ovob7vcWidqCeWbrAyraRQW4XzRYhSTLxNLd3HSUEVsIvxFlXU_9f-BOn_kjVjHg-a1pJqmHxa7CK76x_XYggZ6j0UpG3zUYsLjiDVTvO90wOzCSXdmb96xQhysik_g9K974mp1ddKkFDxqHXR7rvdFcu0fboNLk3ZAq1B2m1HG5vhTu3nFXKQ-6VVH4_9WvlPUJE5rjJrqZVH62YPAb4NChZvqGRS26Bez921dV1OyOShx2TMM39kcVSCioAxF_IKpoaxfEJjp3KaFNjO8C4Mdyem7qGO5SfqlEjICdfCzt3t0xgKd7ReRQZCKyXT5HquVg_bqigiDD6JmWpC5ElExJQz2a3dSbi_euNPJ_G78yw3ZVT8G7p6jVID3HCh8gGr2ScYARoXPerFfEx-o-1n-2_2_S3IYOt33slKyTPv63crpc7DRNTaoDmE2kU83r2M0F8vUUXrExWpEBi_LVAcT_QncHzV-t9nk-P18uRTa19q6PgsuTSaFPDRYn6G6aKYpQnpSYTQI2PGNpalSxfDGCxwh1xNaHgawT4l2lJElYSJDneUQkanjfeZUlwIuYwUpgb-ZdAbvX6Gba7frm-z6Clb3Jx4ToYsZu1nNW1zaPXH2E_oGeILwJF1z8Kqf4-HAd8lYYhu6b5lbRnqDZ8xra2On3I-gZZrpTpKZpw2P2LzASmz_-qBdXcZuT0LXLCM7qcSr82vAy-m6GLu5f-j-24ApeMHby8gA3W_Q0UIESyJchksO9IRTr__k2yM9UxJW4vyIV0uUZVJLqr-c_IbNN2mFc0uAR-4g9RuQCS7mLtkBOdhrm_XYAY7A9wMfLE0CBS8osNOBWCgwAU9eOdUwha6RwFPZVHnx9ZzJcliJzBIsY-a9ksXpfzCshT23a58CZUobByqBbCuMKpVgsT2pVkasKaaVLdnQ1KTnDwR0B0AVF2KJJ_7bVRnKP0E-ieuJjsZsv5uO2sy5msukQay5-upN6iNPTKwWtetWud-jDpMQIN8cBXpoSSH8euGtt7y8dV5188I3u0g7VIhhdiiU4Sg2F_1uY7NspcrDYjUt30Yztc9zVJlr0Uq1x8iYG0e5S0DG1RxZpTLtY3J1yzEnde8bZj1BIETrUYhNTmPO-Z3P9npBvUG8HvTGdlcGEMSjRtDb7pJQTulDfHcpF1kG1AJPyp6U3vAZkyXdWMbwEhlS7ZXlZ-3HJJBEFjAeUpG3QrtoGj9lPr_YkqhfGbWceMvCsh1UTtpAWxjlTkkGA6uCqdabuCKUG_QwNxkuCvb0Dg-sHAB1oKkEyv6ZA12ucvxbDgLzB5GFzyHcS7aVHiufU-Ja4RogknbS2ZTKyob77F6z2RvfRTXLKPObygpWDN7XvW_wZJZRQf7ACglckahh1CmrNahENJLVTK9ps4h28lU9WFaAUXMhzBY2Ae2Lr7Pv24ricpxJFGukUlSmGVauwj2IjEKQOA4aw3xYVVpaXek6QlhfCH_k2X4uLnQN_TMuEwMCskTm-0qNFbx8K2SlhIQaHCen03kLZ7l8iDTUj1U4z9qbLjmZaQl1aq4lbXYuq227LZ05-KvmMmilTl9oKtaGixGrWS1Q4tqETc783yzRVEzWfBXkKGkXwy5Zyl0tiI6GkFXCMAhrCT-knAvC9ZyGixKUZLBjMraHpJqSPB9W_t4-wWKHr01fWRJmhfcuTsrFrSkvmw7GCoGl1IxvkOm85RCIK1F3j0Vxdbqob6zRTqKvJs53Tmr3gweVHw2bnxT8IJyxpHXdbyGZ569NGoDB-dlpYlVjXMqWAvdlP6LylVYc9YVOOuvzWJGAOoT7fH-VAcmAZhk8Fk9JHoNgMKzy8Tu-ai8AE0yay6hf7XP_drcWXmAzhBq6rDgWSYBKIBDHUjQqaW9tFCE_i-hqRh8T0UsZjNFvb6EbPTpqA1Nn4i9J-El4VbH9HR6LNUyelSEgTogWr-siR5y6NT3UFxazFQKokTRwSV5Z9DkpQhAYAqY06aqwKZ9mOwFKwC3T-WBlggXux57BCdi8m-4zWliV3da_taJQrGKQzmu0wZqW_ezTc81wuv87uxShyj7CB3TYaah17lH3SfgPkfcOYTopb8xTPe5KAQ_F8DWbZQMo2iSikRfrzaFqWyoIVuKWUFvf7B1129Eh-BnjfpftYXXPpfw9i5tBJrf5U6C02zJrStnwXRsAp7mcRJ9Fk-eJN3ishnMjmmFcvEwl_cxbxVNkA-zBKLj9y_IUkar9uG0EOFpr8bu8_onGChQzEi07uW_VKWvnk65mbxOwVRDWPJ03dNL32Iil5n5fAReV3J1f-V9Pyfm8eM-t3kd-vwT8c-6LMMOyPwvq44U9oELobm6uLcZ-CG-PxxnuHkTDuqUhKm7cjRv6YfhEl5eKRXbiI7GZRGP_AUI85GK7qs-2gK1y6jqaiIzFgpY9PJCvHXYMZzlCQGXHDFvlfnIks5TCqgEuYvIamZF6wv_cQIiLw2jfOxbwEhyGMTEVVj5_PbVDRd2_j8qRKyORzZ9PHeoqLADOBKC5UxyEQQim0igppaQ8jiJdGOGwHH1sdPuexU8pRasUVI5-xHcNIT7IBAdesbEYpIl0mY0OZZNzNFjZ_Q6GyeSBC5enQcyk1b8Tn0G7lpCJsqZPqopobiNuM1HoO5aUjRwKlHRgt1j1eyVJeIuVifoX_I86mpdKnKK2zVRxIl-wUQWEgmL6SEKAFVTSAshIQi41bnASVCymzBoeR2ZfmIUGm4i2mScLtZXMjiJYGUWbBdInN7uMVW21yfYKIeLlOsbwoJWzp0aGL1clvzpjuHJYgorY14b60jmwzRxRTbRvKeOYi8KkN42V6YiInip86CY0ONrw76hEeW6vSQlawhifHlnOCegogylRoys6oDmYJog9rnzJowJ8iEm91fzsWog4cYb15KuRwFrezb-huwlAgcNsAjYg547zIGwZiWaqLG9jYPPptf5jhNXDng5XRKha-25HsrzL_05XwGRA1BT8XL_d3jmRXOEHw94SR_75pxTP0c7up2G3zGtWwBcINUbi1WpSuQsBTU1ugaG1j1MzoE6sZLmAZrGHKYKdtp2Jv6k0HBpAp1x9SugzgRggYf9znXzdEHLnlKtNF1l6G0_-fDOEHKAZlHNt9KuJcWSLt1HCdmodortZHOw9kovxNpio8twTaDjKeATVl-Ob4QYvKfWqOonpBtfHPcjeShPdQDsORQazsYyhgMsgUvcye1aTqeZKqu31BrJT-OR53ySWjCbH3Vl1Uu4U3IRHq0gsWK0ofQBmANfge_JWk2mVWUllyRwCnoTon1mGvnUKvlbn0cEUzODDhJHsCx4n6ohqE3pBhczAlTLvnCEPNbmq5dJ5AssXAUVwyBnpOSbzMx-GyvshLv82qK_RNzEa3AJwtDH1mwg-W8SjLix7L7Nu8xldIY0NSfl4hR8n_1BeADYfvvNGr1LnPegstA_Tp_SP4Sj6VGgxjQC0HJeCRHSF-GdCvLqB-p3KZrgucl-GNuTUgmbi0lmUxG4Oi1Q9nRZXNuqhbbJQRps1F1Ofc8xsH4C94StQAFcY7kUW7HYOzz1AMKqXOn_SdLXUxI9Pm5VJJjSNzn-IqNt7XtvOYFJvh_-peGpKV5r3gCiDA6OcUoHZ3sHMYUt3T_l0He1rwLZJ4gl_9B7HT-bxr8z_8kkaeadgXbmDJMl0kBapR_LZ75M9K3mP4NvXXOFmR42D6XXXZKp86J0O_ZsTe2f1MsEJW25m7kBA-Wd8bQwvFJ5fBy_l0fGgAlmiHBjjIJJ5zgBbm8ZatUC4XnH25o5OrGh6BIQi8IQ3sqaMVM3SNPB-n0b4eR7vMTAKJACFS7FxodgloxHTWIISNICPb2cNKe2RfO96DdkUTb9TA9mZ4_KZhOr0GPS1G8QsmQkvyjn7rgLMs96O_Fhv4Gl23W69WlUCO0dbs5ERDuzYa8kLN1F0zZFuxx8s3hMV6o4ZHl0g8QkAmh-kNkVAsDrPl6e2ueqH5hhvl1toaH8umecwrPixHJU4A5yxyvv474gc9dPW73YfMF41rD-uzVp-ziDvuDLefhIJcSYiLrZ8GBLdl-EMwKa8L2jOOzwz_vtNuZnINSYE8rDmS2ET91PazOgCpE6CcIkYoSp86lPCBcVo8WBeePt_SIDwkB3H-vU5ecFAjCPgtMdGAhrnY1KgIL02G-ZsZsuJek_c3lNyUC-qFThE9cKlnO0WfsbEaAuUNPRV8X9T_3nuNLRUrg5oLvMQ3Kvri54yClYQ6la8P6URC21GDMvOClZe7GZqR9NNN0QQE6dHYsdz8Jl1cFGskxKPw2gDlP97I8VLrXBagxLMMC2ak5Uab9oUF5cEm8UAmDDpze6ZeOnRUPJ1QwDjTRBKrZh53KDnFz7aYqCFjSHMlSTXAQeuf3wwVQnlFJTEM2qP2tCw4uHKWwDy8Z_HsK9qma3RjWP6DT4AKHoqf2ysJUfFr4l-9TQYetn-iEQhKlx7X7Jn9RyhnuhQ96OYiSJUPZUn6ERtw2Vl2Dzrf9TcSegXPjPlnH-mWbR5cr5Rf3J0lYjxGK6WiO6iSkpfPFxT73QZaQG2t9AzcTBKqKpMqn1LJMye_w7G9cNQ3nexbOvQJ3zfMmOC-VQykWAeiQ0662UobIIdVu0YtC8sRUkk-Wih3FB8zXolEYzzdqe2dv04Ptp3WO4PQZGn6FpDkTQJKDqfLtvaQcewVhaaJWa3tBxEtF_8OdpL2itK7QAgz7Ug-e7uW1yiiXrW9nA_To4oVBvIV5Oj0Bi5CrYyjthK7jiJ5blP7y-5zYBYBKEXRk-bo8t4UFe2c4zvItxINTFkhVn30RuOuaD0q49w2RYqctFJt8YvQ6U5g2Ak9LbYdJdG1xSAmTjYkULbMwbV-Jhq-dvQYuZkdnanf3NswQsG0Lw1EMq97QXUUjvHmMfXNQ-6_H9Byf4GuOf2O8AQcR5HgKtlz5OFCJS59LxbTOcQadP-B6_V63xxhu1E_eXNnPVGC3MHavvhLxzkAIJV1puG-QUpttlY5PhPkWmO7LrHjtDRcqzfofWLbkjIB_ynY86TrZBoYvpSx83rpXvBRp7qEMqNvqaGNOG-42yyfC6fIdNsFgtsxca3gBEk0FeADIxrSXyWuxJNvVwU-igIKfY34ircZq8ZLF-W2IYVzU7F71dfguolYSUBHD7rokjzYzaXs4u-MzuTocjPa-RTxBWBq0Sw5xGQRqdrWRsgamI3Ro5OgGixZZNDXtkC_nYcBtgQ97dTPVwk2sjSJ-o_uait4QfCNhghRacw79wIFMOnyQTKtL0XMbz9D90wVYfau3STMEuFQbh2VBpXAk71SI6uj4TSxx4cqxvwD1kWj8CfX4H9AHK-_AAL5UkxDrUUHuPvJ7ZmPAF3Xrrwz31k-f0wOFHOx3dy5q5mTaYbJfYIayvSdPuONUy12N6Ck7po8qSGCQjqdVj4hNRb6ixpuwUOXd9Y126DDCsM2BLFZU-AIJ-CkN1NOUeqnL4YEvyq0fn0HI6agL1d-KNlmu0acjpzz4gtyDZ0FxEXLXlgeTXWKepUrDCpf60QFS4QuGA9lNIA_Of6kChyidlTu0589dcfV_A-tcnKWAwgRsSHpw9BQ-Kl-awLJsOynR9GoWwzFny-6dNaIi7yWfUKoyXg3SanJ56ZTzc_eplUrhPz4s_jeqZEX6htjKDDPAQQMm2IpsgoIMppiRTgGj8PIkW-pwr3uynLfCktvrp6xwcORNXFv8DpgqheqYnR-faQ6IZaNLdAbqqRZcsHrnBCl0tE4KzUaB-JW9uIk5GLE3m0TLrvXRlmOyMhq--o-PwwDO3UD0PCA5yODDrcfNGhaKxpRDslI3jQ_iwjyAfmuovPVtWJSulbKA2tMKJxweshEf0KSPMd7CB40uT4BJXyFdxveqMW7SaErRc8itUIZbVCUDkYvAa6p7oc8hNrw8DkDdsTguEAmBaVIFca17MHeK0jgmibbdtD3_sb_FOQeD99zBBi4F0pERUcJ06MTkOIFPjAvP-iAgw8EyFPvlT2pKWmV76wCAXTmuN5F1etd2PFDyMItkkdFs4gFW-2AU5pCGYStu8gwus4wxcMv4Yuq7yIRMDm9e34iHTLWsndIckWwVogKGG4hpuZiIaNZQWl3BAGdnMx0oiFm7IMy_IMIwky7MvO01fBjPcf1808KhRznFoGxIjMK4vnA9IYmrKaWKR3q6s4VMCODcjRY_AHZGsrzSm9GDbKzvzf_jCdTc34UA-9NRoR5vX1ro9PrLILJUb-0c4dH1j6JI2zTlBX9JLH1AidjzgdVfIFqRFy71xXv4PdDLvUTRTgL5mpopC49BGFissfK-lefHJN1uZGevhu8l8Fxxi-1XIbc5_ny__1JtnL0j1KOR2aGr8t2SYkpH5KDVxrbbaW_PIDQGv7t6W_iP3V35BzPnKAhf9C2OnwQzRa6X91_Q77pdSTEcftZGWOOkQGPsQ3Slkboc5l3vYGtz3ptnhmDDW8p20guJ3sttMB7uPVBP11epOvysRytlha6l7eOYlx9xrm7Qyc6gJSoHPLvVw0OPmTQvdfrMNg8dns3LJ7puLmdigF94dsc-8cpkBqjBeAtE2TcsOBjn7dPIvhnTN8m0r-5uzx1CtT5JG-oXGBgVpiSM3QddItTGBBSdQgZS0JdACOONRCwdMCtz8OGrELLhqid6fxqkFEz8LFdR2kVBenYnwTV2kyRYAC5RLkbUHBZP7hpAy92_caght7WnQi1fdBrIVahEsDrISDNTBY8tQCvix86n7bJbuU-jXXhpAiXi1ERCkhkzjzTtVTb0Fug3v9API0ibBPZICqqgyxUmEJx2jEvxQauo8eKJO0gUDksZZY6lR3X8o_2w7pjUJFKQ7hMxZAv_TnWu6MnMDtmrG5QwJkwsffS6zIEm3IyBkLHM40q8dUpYvudmz_zkjsSwazXDgz2QhW1fmbuITQOattVQSoMgoW3qUrONrDimXqzNoaUy8XanaDSfxScLkMXfuwcGk0A6TrEElA9ButK9LQGB9OpK_JbkcZcfNwqcUd6eyGadI-LO2crPsbnBMzrmKhGHDe-SlxXvzwMQbgqyU-8t7-5H21NswkN2CVGT8BK7qmxSZcuobsmh1kyueqRRQ4Q6ts9rTBeWPPYhuygToLaRlJZtx11Gb8b1bxgSjm7tpcBiZyCi2PbhVYkC_Fe7-dtE1EGAVGVvjmaM2pOn-U-PpXdDiTJzLJ1C0O-X0QwCH6cLab6-R3kwrrTlrHKAq7WxHdAze5ebcyuKE6tBFBslBg99WqzM1RzOz9PdFUFHyIFu_ImWw75ru50yFEXjba5IaJ2sOr0Z9fzbm9iJ-4akawy0qsz4fw8SI554-T3sKzMCMdOm1LdjB3laaHIS_uIcX1-dpPRSkz16Nw8DQLuXgRqAzlvOzy6xf6ZEqZIo3HtcFp_LLVtnJLRoszUrjpGnJ6Xkk6_J6FoxRNxEcjuJx-vEx8U970sGnSat8LZ3xHpz0zKdMLDql08CHmLd3zF8rrzI8KzWSs7cDUaXydu049RH08aHNuDZtmfKUyX_wl-_gQc9GsKYaAC2IGxuYdQMEEs_iipSGTM7LyviBSaUm4Lmr7urTGr8FFZZF_hxVhVNFLTwatJ5DiYwZlWGtPoSJIyI2m4OwoVgaXMWitruzq6BKwlqdt8UjGUIo0kSbDPh7LGa0-sCgqtTZV0g05SPR3eGV76kmJ4r2ZOidSmjjrAwp8dh1GkWI3CUTQ_hdPBciLUh4dRXgfhTrf8xxrySvcDmLp8F12NyeyM5UemPjcNpMQjdsdYHntlgxm7bnIHsmmqRe8Oa4MFVrjfHnDfeHLZTK1IGND0IFMVo1qeF5LtDS0pcOYiJMyX6tooLc6TsvhyRQR9Hfsx3sP0euuHZAtwyotBJ0KH95RlpkrMy-FO0CP6kr06DS3ketfzwO9Dotg6mu3Zcz13Y1m4Zim2yKyPrGkTvaMsoeyAHo5_kS2zRJqA3kX3Bg-xJ9ts6-FtzUenpYOxn71n8zpmG4T0TbAIsOKbmq2p2gekL1Io9XbYKCDFDDec9yszM6QiepNZC9XbqYZd6EsGDAhlLDpgwrVdRJRTJP144oozKp6P9PSU9pteJ70x4x_jI21CttnuaNlVsRUv-1VDh04U8V8WITJKg6ue0qOKs21HiFBUQB0NFLmkI4eBpXH8fdJPlTCnfTqXI6sxw9SZ4RCi8kgug10HeEE7U3Rv9AthxhSk5yy0oUoLxoOa-_NB4Jaqm4rhAEVcbldowCtIz4bQ87MOY6z-DZXq7wMpkT2mmynfWBETOudr6R3Yof74xQ3E1C7SweziUzDKId0BNFY--diNXn4XC-3PD9VUaNhoQDCeoJZn0DRdBj3vt_EPWwvfzzl-IsCruwbo0D48di2RyprbIDsWvpEYBQocq2gu0GqBQBiGo5IxQFaZBqsnhGIYnx8OPrwLzDsmuez6VksbzcyuHpTbcQ7ZRLDPeQ7mcuuvMx74ui4kCG3avbFuHOQWlwD5euZ5r1uzbjY8cld36PSv2bXzxUwYmt_pzJaQsBA4Jw6ID9zjZY-NLry2iQ9365UXiJh1e4pf6T-tw2YVPuBEKB-8lXBc3Mb-ZSNksJtiKx21RnIub5wzzC2Y-MT1LxajAeM-c5fzg23bKPIHOsjYaU-UChThiSpEXr2VaBTBUEkqhMLFkVuzZ9KvP4D9pcYY-JC3HSEt3ss2whrG_ROcwwn4akVp8Ex-bShMuNTNBbTb5_Ebxt2mMuvkMJnj-eovzFe-UIGFTr4gETL4ph_K5ULleSCUuCU0cONJtOp-bNB0bVAGRiw02rHElPdWsCE0ZtcO_N8GCKj2NiSpMVbZigGqcBSNtKOzS2bl_vzcMDh9BuoGmpdSeNHvmEKJUYzLy1JiAmQ9hfet0oxldOeFzAWSEA1KzkmNKgQ9sL_ARlgIB3DiJOCVU6aXDTQeaNnhnPr3zXNr1KRGN8w5DhssifRoXzQBdYFkUuZK3g3_WugJifE2vl6lpe9gQUfBAf52KY0rH03NK7bsAYGajdLbVGWV6BWeYN3O9QcJ3eKWnQQhyZAet-KseAIwO0D0dPphG5L0Sp5rMZIn10VGg9zpUXWDW0AWWIKzszRuAq0QSTao6vD4FgA2kl6qW-QVr_jALvf7qb8tAjOks_YRaGNUfmNgGlIGXiaO2WfY7kbD6AGpRXSW18PKIJ7P_EHJNsFbh7I86KeUZa9mMig0MCyTX9lT6deTaPAVIh-Y_bLBhCPVCVWFWIfwOOWCK4xTgvJdkeEeX7N-9F8lzlq81fgGJxgsjQJyoQuHJwxIMb32-jYaICtouAQWP7XgkSuqJhYEV0HPEEKLZmSF6Pp62q8sEyxWaURIH4TXqxMZywx3Sj0SrfGfyHc5ENN-BF02hre1atvrdnPw2XzTONeytalLzMf4I4YFtb0IoTCUTvPhInUYMBJcx9AxM1OJn46TKM0CzUAXPxsn3r4DB9oW4B1_e4NP0cyNWeywIlHqgOgYisSIhSOdynoBPu_S5qB-FR5rrhIAPlcoO99kacC-CXoyueyklMF3JekQ-u6ORPpKfIQiHL-p5PObtbaIqh17wBBNO6QMxXxBgdGjYS43ErHY_UIcSUfhtxtoOHwd6bu8yzKqKnQ1BUkRpqlvlVY1ItjCGDLld2zRVevlXWUS1rWMIC_wNRK3Sd7Q2ySMeOwjV6zkB8v6TvZssSQhrKJnCBNEVcFFZgv2VGL0ulIqic8xImBzSTdTGRe76JqdvvhE7LVG2Z45zGHCBdazqmCNInekgAxHxtAcd2IwhZmZwkxMBzGm0fGjbpqMKL3hcU0pZMzY48JmUJsdaoaGhStF2eJV-_jV2gyfHxIu7GwFDq5H7RzKlR94KQ_oUx6X1jkmghJP24QVglaTgylv0-hwDMbDnFPibDrnlmVrqTbuNHBZfvEPKWKNXUMUjVcv8KuCtfzJ4FF_GvMS9IySHwjnjEflW9vh4QevLVvcJgT1dvuUqmZo6__T6W-sEXOS6w8mRHUOCgkXYjKuonoO9lEylq5cXKyZteQsn0SIuh66CoQ6GXgTfU-ajBTq52nYk4sL8XVnI3rC9adEYxIm_KY4oL2KtYcm-JCoNA0LPwBuSFNuWqnQ3l93kaHCdKgWpxfLWYi6R0qX0EIG3V_91IHrE2dlibt1SgCC1-c6J2JSLnmkJY1dR41_n2t-Ss2pkF86Mi0_NqpLlH31cuMc4AdH1IQVvbebczcPbYGbR4ovza0W7b2_c4srP7Bd_h8wjLtva-EMtonLPAJgGzjXpZdg16CIeojywI5ZFp62rp6b8anq9pafcoEFMTYIZ3P2mQ7hicDNb0HPhAT0zfKoWyZGhfhwhiERVernHPHI9uuVfhS1lxZGc4Kbgf_md4WfyEtaYLsakLQJevWcG-kFdxN01bYyz5VQZdbf-bQb04bgEcvM867aGMg5oqcqpMZdc2Qsvq69BX6thgkouOcKqMPTGSHbxEpaB2sGw50fj2q0ZEOzazDUl15O13w6AZ10vLHUr0Z-ih9nsyophV2N2eNa_wlI6zx8VTIVdHebfyADd_ktmiT5YFLebU3Nv70P5lNZKWLZ_dAFAGw_QymCiWuchZptee5rLyuKr6sonNgr6DVSYrj5tbGp7i5ii5dPL68gp2vCCcB6KTVT0nEtpWUqdkGiad6qCyeiqemTnGfH6eO5naa8lXglP6IKR5v_5Rv5VChwa_xHb4CWGE-2XhruoAH8sq8LYAbX8w3s7JCZnXWFNZNHgTCpZQQ7JlermDfzESwet6aOkTZkN6FGLmqIwAlsSL4OU16N4GrHsmz0mklrGc-PlM9lc0FhVlV3T0HRCEkW61Hj4BgD--ZhD-hA111ydybJclWD_vKUI91vdc-1sAh5-C1uRUXKszVpgzOPpf3vUpqruL26CtgpxRSBCuo_AJMLBmaJ7aV3le0leUc8HGSr_DslFFNiKNRAAmRy6HS1NUTeE80LItr50ljiHAE9b_tzOls4C8trrXXc7SYPmuWVels2PhdK_DMWm-Ne4k0aeNFAvIyyoB2RMfXK65oGKqE6vtgQJ1N3po_hC7IehgHk7Qyim_hD-HOB_fn6vLU-rv0lpYsrMNoOupmbkTveQVIrav1ZcDQyDtcwW0oDZWxBk8Bybk9luJFu6PjecgZQwD-5WiHlNlxbmRI97MQMq0vei5H9KEPxdmVWm1uj2oQpnKJJsfO_f5UVTPWhiahPnZDv4mWqUygeo5-JaRCIINNBqF7DEzWeFdDuoXm62YVbuEox-bgHdePARMLcylJ2mqV0K9clgkBGU56GQPXVXpQyhTRLh6MM-kWZY7XqcjzbO3nazk9zdEHAeMWzuToY5aRHh9-IrXvioQ7gPJBLGtlKlTDYWpVEXU9dwlPYMk0X5HO9dOYkM5nIovdzAiD_yQmasLaYsZlx44jRyImeloc83Iv8W41pY3y5KVX671-SXBRxof2IRzJfCCzz7WHEmFAnP_9ZdIZTPkuhOvICcW7F1C8nzVux17yXZS0HDQbl1C98B9Ebz7ayGlfWV5JVqdMG-qlxYWi3R5hPUTFgB6zCHUF8qNtyXX204mI_VIDXKa3ucM74pfIy673qz7z07bzc8H_hNJEfuuoouRmujJgJQBhT1Ujwq-xfHsV2cGU8WSNzNgNmKh0VL1SCPidGON1UF7xEjJ-Is14W3Rw-8itMz-Gwcv7skFWtx-NQYzORzGxrRJp8glo-k3o2j9QRKIEwflVmH3GhXp1BXGCtgsGxD4qfKxzeO7lBwu6PbaUdju8nvywtwgsSQK9W0CA36Qp675sOMQcsaSbvFDTjmDAwjk-q0gvizn0e-9CunCA-FCUpx-crYCTMkfZgYTrKZclhNVjwUH4FrvM76RGlZK3MAbMu2dSjeNzvtISZ1K6YVN-nLvBrsI62nRNpwGG4wezglMxc4AiBWv6VGC3ro2goB5rPPLW4pOqtWVin87egnFf2IV64lMJYLR3kqzKjvl2qAhxiAjMMCtcawz8McCp5OBfzSyu87A5L-ieMlC8H0kfI9qZMjG7-GipfBmg5YrEAbulEWai8C_Fma4tK01z6dzpTE7jdMSawliCIlw4pJ0JXvPcFtF4wAdOUXKGFa-cIFMqnaLX_Y-jH_nQGcvJoHiwqc3ocfQ65Qgo7TKEkVLQ83XH5p_BmprxjKROA-sQEaCpnpIAVA6hQ7Dic86MnbsWmC814Ks5xErFDufgqnyuto02UIrmQmwo66SkJZI_PNgO8m9HeS9ZbFBcjF_D2dDjv0bZ0KE_oD13kAZ8tssIjEXJlSaAJzqTIHWFkSvviCOzrceKic5TsefCJBreFijLbidEaEPe1Fe0s1iVhpqOY2orIT_spNKXhiKaedveVIGn2ktTW0qU1qzYe1eRHRsAL4c0wzuMahVFokMRoxnq0_w8Q0CRXL70nCYG_TX88kbuO0woBOsxo56lC0sni3VwaypyXij-EhNZkLqlElsY8yyazvzeFH8x50u7CzYrI9OIhKunPTrez4upe7ae4zo_mU8cCNb4yrkRJOETs68JJTgjDJ4EoG0ZaR00JdvWDNnFJ0ETSPfe87oXLuR8dG0Vpzdk_KO-MxoHQyrJIRTsgIbrZMmRW3Dm25C-JqiPDzZRTuJ-yjHyPFh2rDPj-hOfWRm84DNnC1tYXpUS_yYWnKOjJY91EHEDwK7Od5jBtTZ7jCgjdmt0EQdi6OMbVlfYbXhGkrfsw54aLFHL7mENwUqmdjbkenBDhCD9gwyduPtYqF0dEej-VuvMgo6X6bzSTq8mOKoLSwSLX6yoBn3oOGgObgmI3CxtDHnK7II50Hh0TBCeAzwBnfoKCIm0VZtSHXBWtrJhbrqbhDriJXjS1dE3H2LbwH4RikSVeeATJ1V3NC6cTz2V3MqAZU-XUtimp-9Z7myGRuSg2kHF2_HMFNHny2jk8Nn_Obc6rP87SlRV1N2bTfbfnCmHtxWVc91z0t3om30WOwGmSL1mRFyxSeL0Zsp1nbeY4OZKYcnj0n2oTC1T5L35_vwRjgaMrPooBNNgJ9yWKX225_ZGvpWzbkAsdLg-gLSOs2iP96lqKccQDKp-M-9-NtWXcpalNl3B5-G98KsegpRiBFyXXWcIRJSdMK8d6QJFFkv9aN5gf0tamh5zYmWaLO_RMyJfENTJvBzGl4kqdkO4gpAFOMAOjBSaYywcxn7U_zEDwt57qNZHzTv-GGYBvyY-tOiNnLHhG5ETVzRImxk2G4LVM1dB-g59iXp4O5RtDgrx0Bg9GP-DhncJEVGorpLDswzplmmtZI43rK1JSayhhdBgcC9YDBzYKdzNG2kXDY9u6t6mfMQzPZ_2ux62ftRYuFqCkXPo2JMKVr80s5Y18u4L4rZwDGx0QbXdC50Ut6DgOw7o3HFvgUCg9PWpSTruBiZ3SgKc_BmwOodHtsBAkCn7X8PMUGU-fD7BhgOLnbAZMwlhhCCzye-rinJuPcC0goI_qtQ9DTIySEjdioddFI4qVVKrriphEPkcf9Qen8p5vxKY5WX4Aeow-ZzRZCvYntRcrVKeNoGqRACKKUAOtkHkfPRWi6UIgLx3lqlPpgsiDoCmmtjqhExV9XmhqLKzCn3VruCSCEVPKQNEEUh_Tk4AAx6byZ2ztHlnTcHgJD4MiRbtnjufxzrjcPUfoXa20tdq_lF53PtjAu8bxfL7pFKoSgHh9AF7tfqyJOgvycxeYOKJRCxNUmCewAg5wumqNCCsshRSYZ965GYQDJZzLeQqLUgfuzuhssg-hAKKid53tt2mw8pfp-4Q27tnxSxA2Ov2gXCWZhhj_oXRk4MG5ri0PPRn-CG5hKFwyxFUc0qjn4sRMMOIieNZuCh6hUQyp9xPxsNVbe_6KsAXlUMwKBp3pTNcSbDhbv10N_RF-zY5xMJfsUYGHt4s3jQMHo90H_Yok0G8s-jGJQvK2dfKbzwjcvpoKx9xW9zLDjYNL-HknFhjRmCD4sFN1Ktinkfi1iUZMA6G3CWEKZnsHx-q-WnwsQQXV8y2ISSpS7torWWLBDRCiyA9rsym9xJVMfSyV_8Epo7DxeUGhnHmgepQKqyVi0ZM1uQZntzTk0kiSeL7SM-o0fZQKS0ltDnBWzEfHkhgXx7YRe4ygbnEYG5AuPVlVVZqTsgA4M_FDWAbVobJrJg-862sD__qii2xLzVk6U0tcKf0RB_p6wECAT338HWT7GFuLUYtdUgJRaElkcgR4SGVegjcrahq7OMPUvUE-YfQT1f5hiiCjEh5HCrbdzPDgnxXt3LbyiilXftGPuYUWoWYyIFp24Hwzt99jYt_3nZp1PlmGGhqKc3atnLFHO4k8Jbh1tASz6ET0Mt7gLpaFJfWPfLnNi19aqoGPcaezVh4H8298V1kZPMr5cpvjXHqkEV3dhGBjbTVi6OqLAC872N5kvHxEaMqksNrjHvVygD8g2DE7QxAyMTax8TIdnsYWAWVqlXGzx6b3ko6HA3CledK-FNPOcEzuIEM6ME-ycrgtB8TbtOM6_V3habfWemb-44kB1_Uziun1bKWua5no8CMAgelUoUP7ea_VyeS4C7J3QjDLGLlnCOrf2dCwcw5a3MmLMmITkga1oDsydyzSCsQMatjZXn4V4GGWG50EP2at2oiGDSawTdatTjc_R8w6RoBlzcZ0m9d2phGTpzdXmvjn9y86vGhn_gAq9wXp_THeKGDfdHciZSbOwHRzKLt9qF5loJVxF--V6N8KMlqqG7sKq1wPTjQjRd4jLpQYnc4-bossqjjtWajEzxgKUN-_SQ3mOJqu3o_dxMGy7OfmCWtda_18gahnaM4Q_0icLYzMQx5cTDYv4AJN-u5QITOI_ruQl_zSFL8rQ-54T6GcQHCs_hs1cqzz5vOvqPWItoXkaiiYbiGfS1FsgH6mTYm9jskXgun4LAVOIcfK62C1RN_LVJJkVeft70O3P5LWPCIc532I3FsiMbt4SOFDjqFzmw9vogG3oeBN4hjyprysu3ecepf_Wbu-5VKsSKiBywi-WVQHiXsEeQNHAHDkPEj0104n3GoAYNntHrxm3pXAkpvkfS0RU9jpPGeZyLCiv2zE4OA42hxOLLfPu3dUgRS66jIH5DWvtUEyh6kwHqzn2Euro-0E-1XeTqsVyhkAfbYzJhtkljMC7SQjkAOal9T4slOJQcsk1R3lCO57uZMJOi7bHwe9d0qZNlTCtePlVaT5zxEoKvLvboG04USvoyBlZJqviSY3jwEA2jWm3leN2hN7PyC35cS4OdO1A838q8EZPJ4e4Bd6U5-HSJ3NBXCPgdN6fg7wp4lCHGUwTsBJffcAY1Pr3Wcr3HzpiPGct8NPB6_muP8tZ_UzVIkXFuDkEBg901fB6o6MRpvqVubBqtS6HrLfRX2xwA_HARuOX6cdg_EKCIo_d4TubvspYaDtqJKrLh-1gpq4lE-NWqU4fQiTgFsqYnO1wOYaZEDhGwBEFtFRd8gJVXuW8_9SiWHATfykQqJ1k4QnyunHHEMd4rUQhK_wRlY7z3W3sFw-kEko0y7kBV0Bc3P628sC0MgH7I0SidPrGVEPOwmm8K62zvGLaStTgKTJ0kNPBAfke_o6q1bRCMM5SYvGSA_jLOB6BlRoy4FTKx1cQnor42daug23qqaSjotdQybZyAF-fNQz7WPYYJ1tBsExiduQB8scPQnduHkBn8u-XApe_dP1PMbnCR7Lq1i2FbvFlJGUYfioIwpCvaXS37xK0yjvlnauVOJYcM3EdUsxtlWa142JfT0uXEwfmll3LKxN-qlBc0EeXYIj9Q8GOIKmYTILW123_HEK71JSiR3qxanHzuthf5C8_ex8UPnklUI6Gy39I3pM2rAMA2UHrCq06TW_P7p_mDhd5Gt4uq1ARX83IMHf8SdAci8D0E9YLHNbzHldg9xoAwDod1litf7sQdh7ut1WJV_Hfwjzp4r7F51Ud0QlWdWmCbjM2J0A2JikhxF5qH5OTe-2kbeyg2tDf0xTlQAbpagU1ugqfYEPRLPt5vEdgoffqrCLy-_2-ciZfDWXEL9ASbi9RfdY2UGap4kyULguDxFhIadvYJXjcCN12_T7FmwIhJmG5I9fjxYPBZVd8SZ784RW0eDQu1uJ0dzl9BvbafLJGtXhr3_wdxKoX38xe3ZzGaGjg6WPuRCm7q9ZM0vklHB-mZViYFhrUkbN9eVcgywGr_v0RM7x6IRublHMbMsC-oMEUPERI8-k_Vr8zQ_3sFg8ADzxqiXnzGfOCjeUyxF5u-4-6lKfMkTbfXzdMcqS-N6FlJ9FX5k2FnkYYcNeIVqEy-xWK9CbeC1JU8NtUYOTevdXl0w1z6UZ-0z0vttw4LBrSga12BWa4VU4yf3oIiItPVI4J8-isfwE0SWdAWgMODs1kQBq422-TD-YPhsK2nBjqpusjz-e4pIEhiHG3GnLzzaA416kfL5GjWT9gT0yHCvNfdPvvRLMCBVu3CtFOqWOxHLAduI824y2LRi-CuM1sFrv9nphMObnQsan8FUUDMT27dkC3GKNVju3AMahFHtFlXA_pg5VGOKCUo7Nf2FxjwBtS9jQ1lLoAw9WJiEkbX8MWzQh-E9lxbbQew355B_Kzd1SmmKLZXNSBbJgcvgGHAtpb3b4lK5Cf0K_kBln-2hqsEDaO4-SsPpFasdMncWCWJXatWeRClXBQd7DciVsDwytPpZ9F540kWeaoP8QTk4sJlsaCrLt24Zp3ENzU8wdrSdRe0SF10_tGp33MtKeqOkEKN6GdDeYS3T8zK6c6xKXDbBmibTxUSfa_JSXG4J7au3aucFwZpxA8D49kVEbxD-Po5Ph5Up-88nH5HWqDp50HwpiHtXr6xhUqLmOJ3SsX4JuoYAZ34utxnRaBCWaNcD8mitRB6LXDAgAeYlFB_yJMoEDIed-G1xfA2eGN0bFGqa_3wT0SYjWj2wwmv_oW0KQPKVnceBnKGXzPTlzgax2ZsPGoBdpGmysika9M3P5IdjDZIWV0N-TBxTREjNQBRobcssXjD9SbYewXxAIanfvdQLeoUY9W2QVh1GegK19kkjDjpq_57bBoNFTYgAnsvNcrk8XzJP-2Gxo1h1Jb5sz1W4_rkH0LRZ6jRaNUUaRGJEZje-BTsbq478v54fsAlzZBEVA5TIEc8wMRCQGse5uZW3uiFRoehm-n2--lFhXiCeyQvli0B28u3LbCAmsqoF133u5FXI6-OqXwbCYewLWSBh5SlWS_sccptgX0dZVAU10Bu-XE0Xp1r9S2LUfu0r80R5cRLwPZL72xt1couGIkfjEM-Bk9eJTfE3HrqVYzZwFfdSX9Wvc6gY9Yks09HTQiLZb2TqCxOwyGLgsrHP3AjuAITcEhmyFiGwLn1_BI1kITMBYi-quphq5yP81eh9c2hqC64kgy6AJ-60kQXwHShcUfsVQFavVJlMWtzQJIWAh2FMNUhXwV89IAfC0noq8Tg4mlJSZNeRAJrmF101F-toih-YhTdgrlL5B6LJXrnEfeSf3yspeXrokawsFjNDnt01podFGuTDNGJLSKf-MWtGvhRBPEGiurw-TfwwjoncCD9j1UH0pk_-9Ksjjr2N3Upti0n-TNMChpxi_1995h9mQAn1iuUaWz9nh_Xqf0HmdBv5jlqGQlBBJ1hBHky2Cqx9uKazPQJTP-uZj2qyHV4sy2rO4WhX-05-htY3m7-F9kv1ENx0Iq3aE6OvpBS6d7JKtAk3WA25tP_RPCfTteGA5pwUVhT8TmqzDOSFldAp9rh3WHbxaAB88n6Cy1NL8SSrqYZeNlMYnccIk0kOTOLG4XRkfY74YuQMpHTi_zBRhTmhjP63bJ5mR9pzA742ykPFyXRv-nZDJ6JjnvkyOHTw2DojsohwLve3bP8bueM7fsN0boTfQVx8ylKCyCd9Lvwv1Yr7tQp5t-XTcu83jOn0RCvtrx9glbmZqmUAyNXXoeXqgKNrs76RnPFg70dvgDhk227AA9VZrOKZnU5ph74sV24nOZcRL5ZrhJAGF7pC4Y0o1kPu0yZ1pkyLl1AX-_Vv5Vz-WwlxxmRbxoktMhHDyizZ6uuZ7OlnhCgMdEg8mNc9sXvfX0moSMWIsI93KfgdstXtgDTIviT36BXiCIGgaPXVb6ipTAHPa4CD-wOYVdKuFxPqyJH-IqIbwKImmmVM57_0FL7Auq9GCW27S-P5UCfsL0Ha2m6oeNT6rAyjLBxjwuUkDuyELUauT0HnTpIpy84E680QyMMaQCEZzb4V-1NcNyl4-xdAn-J3iD73HIbVHzbrA85BR-kX1L77z7ll1Q4Y-wIrn2WM-0Q4kvhwZT9ye6aRbM6XymDgATU1ogXN0XLxuJ3dYxHJqF_gPZl175z9IYpepfVWRNNNOkakUl5pn1pdzXZXMGvMfd2HZsMj_etPmhJ3NIePb8ebOj_fEfXAlL6BAIzH7CwNi25swpnLneX_QKgbF3BO2ZVCx61h_kXDJ9FG_PN6r9J114dhTTxWVKZCWt_uh6-NyRChAgwT6ih1Taf3anpFwP1kv2jnGPzwtjpRD-SoXAunVwLky70VQF_hN4r3zbzcd8Hi-n3aVrnAnz2UbGQrVKtBRxZxo6AgHmwFENvbpITBzkBW5c2Mr_IasqTChx_Unx5iID_mAkSA-BtJTp17wDWxlNGSm4X6621yfIZSDM2Kq_z9Pmaum1cdKM8t_HyWpicpdJVEqcZzfXwMq8mFuFm2Fph9P_CsTo8pwCba40dcJ1WrcKAGgA_bHJOLW7Fa4cjE7459P2CqsYKF-ku9chdfFUCo0ZJ3TXIj0Jm1s9H8kz3g3uIqa1QNsBM4Uu7QHnX-lznEiZgDo6gsK1bB9wBmWYuFNgVPGVAWGDYFLs6d-WgBruZgcB4a9_uXnn2ymkWD3ss41lSbXZIpWiW7J-4nRe3QmPJ4atxyHmEFjkQPiw2C_G5wDzlMBNN_OUCDMHzNJtr2rIDl7AKKXvF-fTRU6_S6AcRBvdCuGkezMjvZyYjZvRouS3xnzap_WNVzMV4eOGpaO0sPTzMh7lrRht0oOnEBpmjYnXmoSTTL0Frhm6WKoj1CsUS-Z3Re60BnWfv7xSj07IITmXO2uUE7KHhQbMVbEHmaJNjDhOg0dKxkYq4MtIUltxJ69Cos0grXVpgaIWmEiZX0kJ4ybKn7zsvGDYjOKJ0vEzI9RDASZT1Co-BhiizS3kcFBDBkaQG8nELZAQwzcOrRYENo-1wYwwg5AuA5htPsJylQLsdaJCQuDRU6NHFzWLbdeynN_5d3-VA3hglpZNzOtGLcn9AqCRhPL_mgsMYgoc4pAMLjTbLmuTMlUMocZr_2-xQ_O5SlAkRPWYJvPUofxBE0u8xnk6Fe6kZrobm4HCV9sWHjexEhZSLW-k9_jl0jeX10deA4Nmb-7n_WET8u1h9-bmQOGQXG6pSMsryB7ypwFUZiG_wrgOq4YVUBzKxjSafCCj_QkTsHlot9dmF-KaOtLZ326_0pOaEpQddz0E_K_b65n-dEez28LfilqRU9eWcA_OagU_A9Z6yk7yO5uBhIRETKBTepamPqG7pN8cFlKPJRWdrzqeNRiZxqEwqBWxdpQ3nVpW1_hpTRa81wtaWN8Cy-o0F0I2O6-14bH5jMZbucUitMPDlrBJxCbnX4ue2QsyPDOKYrYb7VPpP7WkJeorR-lw_qpqMtcHgpBbXpyT7YdEpQdQ8u5afdCt1pa7EgsS8asoKyy6bdi9NRSa2VG9AV4tuk0rdodKwZQquSaldscYrlGUsJOo_5hgObg1LYxlhQvzsYP6IbbSXeVKfQjKQxTNRkCnz7VdgBewf7C1sN_6EqEzqjHUxaOP5n8W-iA4YdVAsczNQ9odsVy1FeI2srGdKfd57uvXnBVZDKByNxrIyCcfuNLf74OKYT-z3G_t_F2VRih4ABGGyVe1KwGM8wuY2dQYcBHPawfmYPZP90QoK8wnhbtTLmcu9FYIToRDs-T3bhTJ1-SuW3bVTkQBhpESm5mbOj_2Qvc-b31-xXcav-WU0jdwyxicuQQfiKTE6tHA9PNjW8qEIzV1F7fNrHCjT0c56q-ezyRmp88oE32cKBuvX445oh5F5DexGqncnjLjuj0CkKE5E6gy9JJ3xN3hegxXL_-5esu-UrhuEtQEEBaxNKx38GLXIPiWTicqhoGN0lO_Vwlx0L2PmdeTQ9GiqbXqzNg6PNvHVF3akt0n0641EvVITpTUBa4NM4ofQvjXaCmPOTsb5D1H1LbVeHEgUV10QAWQLNJJpOsMVPFkwDPGP2aCA6PWM_qpsEfJyM0MgI1DHMPclJeHYp30yHM5XTOQm5mnK-O1jbOcKcJWIk_aQZEhm1a_qi4Rz9BrBqg549TxzUgf7rMLji7_-oqDpZj_PDCymZfiGdSx0Cix31qyZbM56U2bXkdlO63TDzUj_7Ogyboqk9gXozlTa3y1XO_uNhYELjrFFwswTURWpuNCqhZgYVCftZgoLUdJX7X7hC6LwztNPdNzfYaqgrXExPWWE9-swO0tAwknPge_mDDvqBrdTdPHo3Mln8QsFr9lCsV9ftGshrjtBD59YLBhzstsKf1WZUk33Cuc2kEeublW_T9dNhAmWJGftwz5WDdLOpBABVHaYb8wqK2MRffU0WwI1HyWJUKDKSoZuqdViaqV47SV0A77Hw5g9zzuL9cSwbkonHz1Obn8IGWjdaRG3O3vJAU9qqjGbnZjfBrQUtk6wDhfLqvjEuMSB4YbWkqOLnmi0P1kq33sQg8Z_4wAPU1DAl-zmquYzUtXB4ZrvzSCt7DSRC3sy-ehquF_zOPyX83SpwSeqpV-fkvYnYmSxBj-I9YUJG3X5Zu9qs5MhA3RfgrJ2qUcHCSJSNRAuQi7aufg6nNFcipFolOOyFzk6pz_gB6SX2lw0MKz6EKYQ5JY9paiyAYExgI8aJjdMftchc3B5F0dsXkSX5mvIerJb1OWZdPL4D-Vn3sVAe7bnZB6BvOVpT9Nk5Zgz6jRg1hidZikqyIZncDJjVZvDNLiHeySXwwxvPl7Jf9P6l3pr6C7RDmQwqOLjS4ZBs9yJU8ijzzzM7TX9jz6z4XCwyw23JY3kLhdd-uhn-R3bKvFcqJ9xVTDI2r4AQIBKRpKcHZoCSDCIUTCNKkvgXeqDAV1EFxMvI2uvoZZPk7pUJySz1GMCSGXthrFOGzRJ_gPkhFSG4jTslMoAE1N6ymRP-Ew1bMF6liSWnBiEORLTFTeR49H5kbvAyLqWuW2KWbGSNS_9cO_prTmNmjGJ-c4zTKnrNRA_SJTCI5F_GGkUIZGXlNpzx_pjw7MQGRpKiDDSqfmC1pFTaizAi0Ex6DVIfiYr8w79ZmR2k3V0BXDdiRvARmsh19kNKjt39uCKJhsB50TJzqTjXCqxVNXeGDF_BnIAX4uQyKAs5uzuCX_NtGPqFSj-gxvMW8tvZ2c2CBa4-TpwFapDMRcWI_5lgdly7GlK5ECYhUs-CEP6sGCQz7uXd_wfdoS7-heAvCw8Cbu1S_1gQjVUHkImoqwWtYyllAP-9mHzIlep1DKOaZ7Vm262vCMxk3hWjoHeno96oiSbn0dsMwwoh3KRJcGpvj0RRv1ZqqJenlmXBz6JeGuDgrD-KaASjukjUHf9AecRQKT6S27Rbrabx4F8eL4CjJ7rb6ftlQuBS0UI_BGyuD7jeLRwOy5bARB3hSMqEfmqVKKFwjQ7iSkKbq_2lPLEhduMCBvED429AaZ3K5f-JKA91bWdWLwBqcRwr3NgfLIo4ROesVkPp3WEbrJL8klWT0VFto1kukYU_SFIDaXsTdOJ2YisEQZ_FqwKc50Xv8aEaFhIbs4w7J-u-fX5FcJrbhIZwX4aMxq3BufRKr2JyoD-nWHbx3_Bz8Af4mvrgHv-3zpD-hNOzR-mCmcGdFtPIl9cUJ6LX9TyjhJlJfimGmOexf8tFA2F2WQub1MuKBnhX3CYK_p9_YxSYZPQemfxE5Be5SUB3uSPhRvSvLaNHKh_FxXxTIOWfeLCk-8jkzjL3U0eKgxdBU5qwEV3JrGbvriBgRvEs6iEKcey6zPoIbXU-xWHp4aTscGkyflyk3bYaFsD-EVMl_EvZPbQhzxo_7CnbSGcL7O-JtkwGSX1w-XvqK3N2DxbeHFoVWCvaj_apq03JZ4hyLD_sM0orrcWPBqBTWudUEfeTCr1-fSnAhTP1sb4OgQhHzqW2P0SEcyOAPp-fcodmfvGipHK2LGVjipzdrSDv8IW4REud5udNrByPBRS5JtUfc9XZiTnjJsbLba5wcwwS1dMW3BUAMMr2PvJT-z6pZ9n8ulnIK0ATidDpJE30nctPy29G-cLbJWQB2U1gxjEC7z1enD7oaGwQEUFzwK6CPVmQ-O4wpBLDzf14h7OsK2cZyeUsCq_xCTGQEowmuDeZP1CZaGEIJ8uCbuPGQKohAsOy0C6XZE65rjsk3Jz2BUMyqIAy0Ncf7-guMBPviv_U5hxKUOLZqHdw_4I8DEb0oxQmU_jL_nbNxh_s4bV6VBX07kSElWvVmCNr06qX-grOBmtQ4hEPd0aFVj6lYsvFQIoa3W__QVA2EKfP-EOPoiYzSuNugrPsLY-jRiY0veUY2DX4RiSy0xvVUcmMNSldxTmYPMZBQTKPGHTJuDRiAaDxOKBF7f0bXuJC0oelJC8STBfq8nWsimX8bq3U8AwmuPcfR8YJSwJYuuHUAFSXBFgnhQyPA8w2byBCkF_D-vYhUvUEMOV_-czFTw672Onyq7UP0FfsyleGLmmcrRWLwqTH73NNIiTkEyl0AEX2EVnY453FoeFWemnpGitEJC8pvwhCCw9ubOAmFyx9y21B9XU_ARTfbR7sqC8GLFnQNGrRlS7BLPhZGBVodmkpnJBUcqADUxZZlrAb32qJxd_IlhiDH2NMN15Bx69erpW5odBaJb8Y8oUzqdFFta_iWr4t4sSEToAxFwcvPl5LyX6_Y0vdUexrX4eMObTIIE0CrcLLAuMRY8uLVaL6dp2yhKkdnx9ZlKoJsCz3ek2jIQ149yN4fYDZ72N37iY3kQyfk7K2w-J-HcwGWMqhb6VUKiNRiSqi5Q6_Cr5y9iAHpOOuA3pI79Mu3h7cKfSi_IHyNQqtuZJO4iokK5ZGErEpRFOB6qE3B4w2WOSQvfg6kiu9DwV23FO35es5RgyeC7oaBZwVDWgRwBLibm1lY1ElKsGOAqAHJH5C4CBs5RWCXtIfOcGMVNR3l1lLQ3ToNLE8Ja7fuB8nDNpsS6rbxt9mCg76N20-RMoS9-IMZuz8xcwT6wHzbBEcFCgiTecEwwQVoo242GUmFtdniRfel_9-z5Z4-OKhNw44bn6GibqnuewdvyYX8HNERlDzYk5-RihRNhCPCEVIW-vV0gX6A6R3TkQDRkFdB-6mI8VidWnK0Cr_KXU7JgzhdbyMIGbLFwiwWzrKRp87vKkBUTHaxGQKnm8jy-ipBMDoJ-oVKUw4yBJ4jC2XBqro42UQXDts2EncolCUAr_3WGcVMEmRLjCAIeAwib1DFDfqdzKyZy-WxTALUer04bMCPjRgG6lcfPYxmR2gkwF9cvngMagKa5rFq-PCUWXXhEWvEIIZpsZfVpEja9xkPelfDQL_1KF9nNn2APHWEr8UsMfMobhaqHTITRIIeXM5RGo4Sa2IjPMxkclO63Dg03kdpc0BYUAhGE2Cajo8XsPqG8RhcwF1qTL-tS8Mzp7sZZ9c-9RbH7hCHLrrSUBwxP4W94mASCScr1gtBDCEeCqcdR75jn63_h0hFMFybbP0BVY9ETDr-WafuORFNgxN-5zI1_muoY9izS5zX_2HfiHQ-zeYh-GWorEdllO5gG-TrXaMJjqXBvReEygeasFwgkeiUvEJBrIGxrql3WuHVqeM49lzUYiQdgfotGxC83gLTQzZ41_w1xFvV5Mk-c3SWQRCTH2BayMkSdSiESFT7KIldfkw5J8BSJVzAX1d4oFi9XbwuiQiXri1CcHlXR2HiB51tr0-OryvmSKm0vyRfTl2IAGfv8IHAKwkiu0hK-IhF-HuFXHLcZvyzsNuV4KUgXms-hFuMZCT0OfsZRh0KmRn-1XpYVdDkFA3j1HrzF48jXMMDgA5mpUbMlvKIq978YxADzhbajXbXAUZdCTtjHPLPuzWtT-rvVa1lFXyuyxAXTl_9cJGKSletWB9lzyFbMWtgwmkyZcnph4UYpXJkNvO8J-bpW6QOdDpAXgubag8xHFrhkWJeKXjY2g7ChqK_MRdjhim7v-lX4n_s66QrAKfe1628RP6BExXPBBBB3hk4rmtOxAhfQC291Zce_XH-GevVpqtE_lx8czd8mGzu4JZM4xMLEenHvX-y5cT9nWkdQHzbI3N7RGfQQSMnm1LCza3IQb1j-0u2zAK0qLH9zTx64-_x5DnVSJTu4J9cvGM87N3CuueDlDW04S-46VOR99Qt4l43lmZ63tle2k5UOck3_amzXf2a9U9Gz5KB7Q_pEB03aSprXt2tK4gxzZ820TI0I3tmHljnNeODwX3PF26uoF7V1pWuIC8n6mEGrUWq3cVAS4GDrYBXTvo9OZnbqwnZH5fmXjnNMqCA63HBfVCATkdAOTcTpNIj9UT-S6i7Px0IO6qhvcmFXKX2maMEYGHcJnBkkDSVapCt_A0KpS6rT8JP-B_OOeOtGzUCizmeq77VxZ70bnTHWAZ1qQsiUuLoSac1wiIZzVghm6G0xdTjDxrB2hdoO3ehMTomwhXOOpxVhuwz4_Lgyrib4brEkMd8LrBKi8UTvNfsw61xq4LB9rCkPFZmJI4aWLwNs4AxCBUpOQNrI6cBPo1jqBO6b9dvruN8ExJ68gTotaI-zXUqRwfyICP1ooYQCXxKBQMAuchmSWj-NwrJ6GmUVU0IqJ_pwm1xAAVSixS0ftTE3N21Uxwxww4REnFA0MZZbQxlLUu5AHHtfjp1rWzubnPi52V5kqkd9HeKFMGxWBHBmZ8Qfk85EYx1fl7NMEtvKN0mAgbZbwCq8MhxEFNu0s6MAm12W3es1vwi-hxhPlcV4M2gir6t5ibE_615hHQ4aGseZ9B_Yfjd4afXjoFFXRA6yP3TM4Oa8-n4WZ-U1bRiV3m55sKTuYePx33qQc2DJcfjOBGAcSFKuPfxBrpCWnICdacRIEudVh5VWiv_uyBeJPwm7kE2pQ6Ve4JhjcsleK7yb2DLV6EyHY3b5l6Gx-22o_LlVIHBxPUl6OzxQskJMoLiWObri6IBL0J9zM6lEh8aaZnLcaKcZqu019bVSRXcTcsrYOyDUbUEMQ4_5afzo3xdVD4srkH0nvC428m2emIBIHBdLBvrTAW3hwyVJPFgD6voRG0LpuIAh6OKqFYG8wQiqlmSw6e61ljnPKTlMqN5nNFU1lIHEhZ6G6rnOXP9uKUqqRdhN5m9oH9FJDHqNXtHfUg6XgckBZcqrerId-FyIaigtUrMQ0zFlKtEP1Nl_hitp2oneEKOh5hFV0XUzzrdwvJGcu_3u_vbQm2RfdBjXffzhTNb2OCNq1ZSCQdnranPh0YvDxpj2dDMnbSXW9pbyBNaA4OfnhBj8r9114GECfHr4BZlbn2o5VXsUKWTaIMoZ_tmmlv92njnRGLem46UpDwqn_Pwqrh1os-Icjyu-wIx1oJLlGyV1USH0nb5_n4C-qzNWZ3DAQDkOQTonbxK2Opftfw93IhlhAdU_dUKYb8q7HYj09-Yhh8oIbatQkRa2mHOrcbx_Q2mj8M5skKLYF3Y8zHGqIyTIWoHK59rlTfBBjoDenFUkaNPDDsObmAmlv84gza6qrB6yFoycubYjkPgWiGx6unFpxQlHev3vvM9spDZt8qNDm1GDgrNPSdKO5zWRvTx13sYm1AWY0RsRVC2zyvAW9RrowWDDxp3qqwSJ715r2ppN76DrIDXdmoFKzm5cVSj5lgUHI9OJX1P8qq-d9m71sA2Viz2iTjdoWdCh98wbl8DlWacxN-WMmbBptotk-azXqHOTRL4NzqsLYn-lUnK3V68Eho722Aepm0AfUc8uiuZ5eB78N9ECCljTiN9D-862PwE4SIKOq0AKuOl5DY2l8mWbNdr_oq_CmfHqXJZz0w4w-vpmZI4W6yKV50kPXq8H-b9K_YyTFUFxbJBYNXoFZ38DD4-EkHFQ6nwu1QRqXPTjANre-bibDkrPaqPd-hz_hQ40MP5zrHLSijTeFgfXnT5eD3AK6h-Bwcp2zROcXiBNGPQrTqCf7dHJc0d5aGnn5CUxPSxszwAr7apMa-gaJPNub5zHfSDsP1y6B9hCPORuudFWsLCY3_7t8qyfQu15pvb-Vzy-XLMZ6SBzOMuJxJV4YIUQTwpV0DA1LFs3_Ob91Hw0s-C6JBkwEPZzKZmNSbAIpSx9H_S41RB_IklNWFohbmQlAGv8tmacx54N0dfRVi8tlAGSk33TTYfrRLnXnErtXUoSMThM_ZaYedr4P6gAvReKOOLSfXwwdpZRB03T2-Np5w5dlfCDfLwb20I7nvcvuAw_vW7FZwz9XYtw1VagBOZaKtlDfFXL-y9lzUeUnT3V0ft1_7tHzDV50uLowsCfY7KbQGahcWoJfqr_5Lgc9VRKRDZGp2JpPq7sFnuaNiZTuYx1BkD5DZ3FxV7FtKE2gYVjtUkad8chQaMRXRduf3l8z5sOU9HdGjrPttAcpd1FSwQJLwMpZE4tY9qxFHUInP6i-RUM4ADkvaCfeg1HpaM7BvNhQA8AvPdEKLyNp_AW5oItdzysL4AxqVuBSPgkF7uoLujxK6UHImdeT8nDeLZaRgx6v0o0FGxVd-T0mesjQ1fAmywvY-b85bchTizku541ND8mrl7mmO0K4poZ2IbQuBX9oInxWT4uEJIv4M5vmYfP3PrAxB0vdwyaa04LQm1NsxJzPkO3k1jS_pGdf0IH4AMcN-cOLknnLaGIIwXarA2LsdGBrELe5ieGcp9l6Qof1Eoy8XMFujgW2IJlwC8wpe5lFGQGU4Jx_bpgG7HqW192ySZNNaNb7Ndn8xEl3K8oMUftxQk_8gBts48f5ZKKknjMtkcmJBVpi1jII1kD3BtW6TeLBa4RQ4VRH-GfY4GdWyffgikOi4gKCXW4dNSUqgCAy03bjA_AQztBDCwA5Wi0emaFiaeE1mKzsd8WXneuh8CMV5PHx-DG38Iff4Ip83IkzaJQE4iJcrug1IwxTka7e1tflynhKl6PjalKBdIBshwZu7dpiAbQftx-G-7-uZHcfQg4FN7qQ-v-mLn7qMZpVyGMdzL2gXbSCFqsGj5_2UvGc8f2XdYWGzEEM6p5vY5VpQ-uwAbY6ZTgoKNF0q_-A1RhzRMbQCyEYwbBjXeh4fKyuY3A_oT1TPUb8epwxDXYHKUvwdrBhxyRw8TgtaUf1ZtPF40sbZ4rWtPLb3FD07MRt-wSyYNhDL23dnq89VfvHQjRKRkI_2xvMVvAFsOdgFyjClWKQtZcDyrpNMjMbJYFm0VRfUSem9F5RtiL7x3QAuQfOQtv2Tx4luafMoRlXgzAUsXmVS5BP8evju9qcRCELgrI0pFC2PYo5JJhU8SDugYZFkkJZ6unlENaQv9VdcpJi9EkjTgz3H1Nm1i7R65J4VrM_kpxV25FcoDWCqPWWDc4LikskCvJO5FrPk9qY1n1C9DzLwoXIGa5tpTolSLSGeGZFYJ2h03-lidmz7gOGOngUoYy9AU1mXln8_wH5vDuzfXcafzDZpZUdERj318Onh4yjSV0kHRsFpLfhPQDNqPpg5qFZNsilAHlhpQzrRt0mJmFfQ-chWbcCFaeGIzTKCtybLe_a73IL6tfWyG9Xukt7U3reS0CWtOCNGeBMp6MhdDCRV768UMBQhwJFXu-qkKUuof4uhkZyAY40ILujXTXLxBwZJMk4gIQ6fHayMFP2exHq40ENmQJe05b5RxjVBbqedbQVXFBgW5rkgzsJLRUozkZMrrTLkuGDYjhyZH4ly72vzPkWaJiLKUX-KNpWVRrtVIX9wEb-eQ7Hf_XMHBSjNImxz0jiHCwCag0aO6iOQ1T1K_G4S5z0_h1tI8PaHkR4YPh6YP3nuh4H7XF8Zmz-H1BvDndNJsrUAShweKYrbxUy0AnmdgelZn9T3LJ5g8nLAOE6ZamtO4dsoK17yxI6tG1JB04PnBCVwomalt1GIXf6lXI6qhLkErOTO1Z4uLhwev05njbFL1BSP6JMyAL4yc8WT00JhoiWY9QXPHXMOMwr2sNshhLaWEVQPR8ytNiXnPolKXJ87Ei75jsxsuTxTMuqMjcZkV_gWloNU-w79TqKAvlhYDAF6MAHp-RvVDZyS-jQbJ723fY2ZmaP5iG930IQ4WbsMq-fElsYpFvr78faQIWOpUpriIQVhWgRDyqzku_7mk7SzxIxkCr7i69fFsyeIhWozWflvpVBcQhG_v8ZUuj6AAXWe1Q1I3e896zK_2fe_pay4QQXP7aoAsw7PYPmdCwakQqNf593JDyEW3wT47WQHXcQSudgQqCPyy8SBol6XDAKinQgRn6hEiEp1tZ9mZ6refM8lDjF8UH5_wR6AEP7hQd9xzTlIQ1xde56GGWRxUN0IJKKgSVqefIoLS-wX5R4aeFA-QeUuQj6eeYvGhRmJhF4r7kAFFjzVnDFqyYL5iBM9PeqN9sh_ggmnzYSHOkmdPYqbtJy9GdRJbIoFLqx2VgVVB7YuAD9tfd5AdZa-pnjfjvJK53Oq79xuwsexnfyMpSn_j5tFuYDzVMsaXLz-VBXRBaYvC-hnCT_mbg_yenGaFejGL2SJBFAtkQfl6gRa9y7W4Nu5-Ub0CtaCK8mA6C-O_72A5prl5Qr36yLITsZI8pzuIrMkOcogn2jkU8HAT-4HrGP9s1PuwqAE5Cw1GyBcvGtOhGd_LQIOdLlhiX_K5A4oZzaaGc3v0RMZ_Rv-k3IQsoUUyIInspZpXmPmfQhj-K3oXfMERZAlTiiZfQhqhAdNtIG04SS36utFUHso9Dp5JOKm4LUPFrCzum6Ws2HLzZnskVCkNEHqWBEkmnSyOz94AEd8gTRWLmNMrm5cuGzKakEQTlgy2wGuwjDO-d733CJp4rJNkiToEJW5lEO5JEoljDXzQcEL49TULaFXKnkJHHmq0p8PPpflNBP32lDlN0--72pKGEeNWoGx-uz0M6BuFyQrjUOYhpcjT8t_FNBhV6987FDjIf3qFKvT9_zaZzg7cL5yEDMVTO7mZsS_tGNBiKKLKspYT123hSOxwRdCAOmUHay0zFl9qzMuOMxCbSjbvLdjGdzg1C-590gyFHQvVstJr91PNOiJlwdR6j1VcYQ2mijLZRWURsFPnI2oU2mbF2EZWMmeCTwM5QNOmsaoeKTukGEqoPB_ukXhmFJLq5NeOzsZtsm6NxvGxeOR5-e2lXSsGMyMourEXSNsZNEtdYz9a9Q8HqwtT37kVYwMcDqWTFaB8WF6Nkj1ImiaIIiQe41uQry9wu2BEy3ZfZNDDPnIE1vpmFLlo5JK56-YboMZW83F2MFSFbfIUI4O-lfjELB-24TF91P9P2HK8V-xSOw6JJVbBFC9s6VgYwgPNhUP3KKk022oZXpdrI5Nu8bh6BG5NmHm1kWJzeycqJowKFiQ7BdiFJqhih6CiFJJ0t-rMtqHRJop8lWen0RaPZ8BRJoQFahMEFqp34x5pt1d-umGh3cCdAwEI2m91iKvd6cEEXvCx084MDTRD_Mo2THc7KxNuNUz9xgaHg5Y0vA45Qvy5U4fNhYO1HSCp-dtdmhPsffKpxfD7Stk5C7zvyXuKKmOpw7A330wd4t2-ycIUTk11PV3-PiqNAnZ5FaqUSEiWJz9XMbTSTkMFCoOabNvLSstOMe4vNyoCJlsoCci5GFimOWQ-iy_VDoWO3KiTimdddOaIg5j1YHzFzzuMAGUFi2X8HspRCli_AMHltJszjUaHy4bmhtoPHIG2S2WxXKW4yFZj3-yUHKeRH2sSTb981FyQMMLj1Na3AG6h5K6O0R7VSd0evPmJQqZYOQLsI2jIx34uD-HS4pt_aTEYLVkjs-hJ6zOLEkizLKHy0-jqS-it1YTJlSL_XfcgUU6a0DeYpGXwmqigqmdbEjV01USh3VW1HjTm0-HZsOdFuv-Oj7zesKlheVBEsiq7aBx8FQ_OsaVrNml2f9vYzBm1z5KEj-nNRAy2FixnhtpIgHG2zQ9UV3ZGGKaPySdjPuQ056b8S7LCUfZ9L0vRpGK3gjtQB63tAwKQJyZQxA8F1CYAq7uMoe4t7xP-zJbx2mya1oYKzlxkE9v4uKx_aolXo2zkDrk1wjOiGzSaKSpihalvNDhVl4d1kjIen7XlsYoCAkbYwdE52lNg73dgXJtNKpCc3uIhJqXA8Ap44X83ZqYsyE0ccxhdabTNg-7H1GGyvpRAEIinXkaIAC4awvOzsZLUSZztHlr7orQXIPT7aZP-t9cZFyLH8DOCrlsUXWe6ONClRu5SIkIdq0jRwfmgoEoeuBrQ-a49P0WKny4SJL_TXzo3_f2luYFuimySnA5nSqRw5d1KArw7EpCkXhFzueoWuOH0EODCMMIJSpHpyGdMWDFKUrUgGRAP-V8qrWljPJzA4aQPCtM9yfdO0hfzlIRZP3bm7FsLCwaE5j-vBrZInxKThyMzZGOArKKS4UCtbevnQkRJ5eNULI1Kka15SuZSPnFZb1uRZdR8nRY58KUQc4kIgiXsacTJiGsfNr0I_ipVxJWrxQgTVfY_84sySgGcy8X104Vh_rxroMCY5kOuY7fiWOxl7qyQiWcrWd4mAEQV9c_aUC62Kj_T7d4oKkyjFR9W6Hjv4qweG7fCvL-fcIN9YqQPNI4IK4e5pW2TnfN-Kkl0TfacwV-fm4tG2nm963AMWwjcRFNMBwmrs1meRwyycwFJ6qxr47qIJ1uzHcvXa6bvzSBwsh9H3JCzEjs0tx93dnrY6kELwdmAQL_3RrBJ9uAix-9lkwUoPl-UHKB3Cg2jY-YN8aN2GlZ-jO-I0mtw2RGsaoBXzh4_4uBO-XXL2UUTqFIIQsJIB4HEuJ5QLWdKHKMrqTpMNT4IwIvyYeucsjMRDHQvz54VUoK-cFpl1CTxSsUudaLM33Yhy3ukmGF8eTccsgs8DQ3wH-Q4OmqL-pZ1GSYEglXqQMR75GLfuiFuGu-gP9faWvE8vgWcEz3O5ER1xMGphNuuN0mTk322VS1PBV1h4Hgnpx7iB1SNS8hzNs8bwqSYaE6jL-4DQL5csMktVysjjMFZgjUVfyYVMqo77vuCsmrxEYEP1YIW98pdppjwmlGKdenzxK4Hl5S1wEaz4ibIYJdpsAcWhfK553d8Yd83HFhEG1aBYUO6Hg91t9sNlJAu53Pqcwe1rzocOrwjyqCKdvrhBXmb7Cn29gbLlzpBcFPzXm_4mleTWP9mzU2JJBEIcV3KGgwtEjoPooYAZ5sgrcmHzQkTXYU8uK5ZkvtUzeGS2PkuNw04u_HCvxOGf7GqMbtCcvonlYZ9GKrUDicKjCArDlEfSan8G3nEhc2eRMho7CsgIDegN04yb110Jls4EPO3-7UGInDCZ4CHc9aIuZ96f4M07ao-PPbx4zUlKliIt5KYU6lRQQ_kNOO1wbE4GD2cMoDRCn-LDHjUj_j9XQE6SAi-ZLeWriYEHLu0BZhL6K_uyalVTwAJi8aBQ0zGuIzES8E_EPUYPE17MXho46WcYV-nT6VmkTCstogWEJjK1m-JXLMfLkGKh-pSVTuKdEZJL1ZcL2v0pq_xj1vVvCQgFdnRIhO0qNyH1f6Oj6MklQN95IasE31EHf7sXGA5qS-1SLM_Bs_fEGILgJQAMlYo6MlCkAh_qpHF-PRpKmydxR01CoOpucW9Wub8dZDmLKyYbLW8LLRlZ5drurE8VH2Zb5PGKmy0s9bjb9TY0TgBRGd8ZhNZq9rtKSn15i7XRhSHdqQdZEOPBA7fmPz4HbRDZ5cTsGWNUw9P7ojJeb_mK_tGTr5yQLCdbo3XSGzLHPuL7oM8jUlcFQDZpFPFKYAJVB7JXavM6N_D57ehKD9SE6jG_lXYV0jpEvffxIkqSw3W-Zyza0-CMd7kkYur1FMbz3_BLEYh6JuGwS_H0xy0Jk72MeJpFFEQL5J-ILjRs-ElMnuPuCDNUolDMcPP24JS5RBFJwXkdokgbIS4rbFyFcIUfSl2lUa3e6UjD3DIULPbbvSWdndsa9WMfgx6ieOW4Vfp-mj4q3W_InPYNnlUaRtY1tDmq9GLfkX9gWqeLpblL5sSjKLDPZb9JD-dEC6M6bxGq86w_exSMAvvpBnodv12Zv-vUMwkMPN-dsh5O-KVJZyG5wBDU8IQgQdyuzzybCZqn9iPtmRCho4g7ZabI5ymancRTFNbX6_304uWow9LL45HQ0wwJ7QnMTBsCheZQ02qqCulRFPvvbA31LYIfJO1y2cfDRdp9bH55V7fUJh0FYWmzDvKXVCtUhKcjrNlxmbdh28_mg2AcgZr8IAIXKQBPwcB-BMc5o9PIPt1hv3Y-5KJ-RdgtKMd6o5C_xlVeJx5Ulgwxn-y4M_QvC_uEVlPAUYMBw0LZ1dTKWoFC5WXhQStX0nBP535sHb91UoQxokn6q1nC05Z7y0R05_2boBfZKBULrAgj_M_G-wLaa4AAHTD-_4bqoF5YbEBLA6UlA_z3_-h7qgEr08SrQblyakcM25T50fCMU7DCW4TI9sgEDVwjvuaY3gtWet4Qe3CAkg2yyBz_wvlu2BitfachnlWm-eNeoA9XtEyWlxkxNcZGvzyjGMUd2gz9SLf8O-RlLh2ICcRJqJG40u1EZqBBZIVyQvQGjpKR0xq58mSi5aTgTXHONo0cHmUdssbny5nsF6G0fz3M7MUPV7jwME4sXccSuovZAlq6yUwl8ihGdTOYAxClm5DEJ-Rmrrtu1V4n5EGH9OpwCWBN0QO59IZGHYXdGyTOGOCXEcYCJ78OqkS9PcorV-fH1TeQJzrUtISYX5aiUsB5T96cciRWfxaxGnj7vy40xeDQBTaQtSlzHKtVyvpIUXleMSTkKs1JjpxNT-v1rY5pQR3a1iazwm3VRmN0S_ROe34Q87pUnMWuO9ScY8MH24jld9xrdW4NIhw_cdyvZnjHyFvHoIe0pU0sbT2cHHuNTFYksXe4zyLicaITgk9vO96Ujrh9ccOVq5RYnu8Ripu0ZnDHeQW-dxZiRu3vtJ3IJBEfXuY2_Rsq53NOsk5oIALgbAwh-VewW1U0IwBxBkVPriQfQGfEmN59jmPS1Qskf3eIPbpAPJFxWDQv7pAQdK181O-HnlS_B_KZD7LQWDSJwU-MZXtHK9R8JyRouFd5gUnclWZE89LiRRww8KuG996Z8YSh5gZ91OcXyulQ83bKDbpc8eUsYYznxh48APidBEKNmlyt3I_R6mHwWNZ-j_jkoLRH6KydTw7kZO6zLnt7hKzcDYAMkMRC4ACEci3Fr3J1iasGC9EMmipeqvDnzyJ1KUjwgwlvJ5aa3K3Wh88-cVANydv-_71eEoliksr-59JGqJcfoM01ryjmFF8tePTx4gBcajNEzm-av1B6RmIYBUaiFBfMhIXxWMzGlQQ2Z2kLeOM5_n54SZiQqxDqW-TeBm-gYLrKehC3h3pOEcz4FJYOGwarxK0_a39dQHep3F-CyD973UovTzwk4zz93UIJWx1DvGptv3el8Y9vP_CiZpjVDWZMHAn1bnU0Nn31UcHwQYT8J7wihP6iSqzzf0n4RL63oQ1bWvDtsNgY_H1OciehuJEHfCR3LSNa266cY8pmOA8gKu_EbFtC9Kn2roIxxiTgxbn76qQYyLYNZ-wEVDtlqd30cNTKzAqnW1LEJpkfYRaKI5wqvr3nRpssk0d6IfaPlRyv1ej8-PZkMyAPyAUf1FYXgnfE5sO4BWc_A7jTUf850uiGfThZCb1UKGiPShw_awKn36A6UfyDXH73YWLU0bYi2hUqw84dHnxshAHzTQJ39zdM5H5tO2YUEE3VdogGMxrsdAn4X0enMACYHlsNLgDy-zD3RfVvHAwF9bhtAawq4ZGZCQC-QbwncZ5FQDsVZXXGWQPAmE6yV3BRPn7oy65TC8NoQuPIG-eyMuoXIddFZzoKfXDEw_N6_C4ujL_t2hkkwkJr4VJB-02aekGqxxOenGhxNT5KYfFjdMrqmweITRsWKzn7OzXe7apP9l6ErYvhOvooP0OdONhjJOX1Fjau9_HBlgncQ_hIaGv8t2_Ph9GID7yNuZFJo1OQNhTypDX42kO5RpmyKoVV7TST8rOrv7jqibj8rygHGb9dLQR4sWC77KnZDG3Gb2Mf0PIYy_zkpgBTFLeFEVwz7KldRYCdwUBTbXaTu2U08oAGEbMPCY16mDzePF0O5nk4K39qLXZxbd0SwYbgRYxYbm6wJBWT8qysQRvaFr7STZzs2wGjl8RbHVeieJJ6nY7gAQULG4iqOJYJhQzxqJQgcwvKY-le00a1c0ve-VMRU2t5AAKf7J7L4vjVHfVRw6ebYNB37ENGXrsYeOxrV5wvXHXUAdOg_Ig4tV1gLm_1oIoY50bsKUw8NnAw1wxLVJFo3dzFFBqQuK9YkyhLyiq7xs85XtBTkln1zw4NtTtgyuiPdsMvM6-0n-3gcdcQ-qzab0pipd9GNAEkq1y3dhj0d2k_APy8XMQyWbbdrn5F8aHgad4gYG6ewflJImj5lCyWSREjrD1UFw_6Gt_5UpaNeYqRVfZVD67DfmTEfViQQDs28dqfIvkbFTgKxihX_DII5yDRk7d5FpRvHLziRWF99Vb5tWWnCP9OBWDgjUllsgTVg2U7rlxsBb8rBI-E0TwPC9Y0Xe4XUWqv6ST-XJFX4MPRVqIcffQEj2W5sdU0xuOh4X5bYNTp9IedM_kNgnrtMYifW9i6L92UetD17YstRY-9FGC-WpRyw80XHsMUxVkFDAUmTuqzTcgY5ZL0YAl7dCbURbkCjpU6fz8C_BJVk6_0v4VvEjHMXmWScrfUENDGESLM7CmqO79Wow8lom_fh6tydxzFtes5umQr4tjyz4jaWXP9c0CUahJhFZ8sLzU7ot28QVmRHsu2qVO_R7SUFdFfjKMiNKhXtevjWQGS4JBs2V9PflkcaKdXkpjKavjk5G0wZ4JMH9uRqYRhEcVWBUHfQH-HJZ0cdSxoVp23hQz4mtqiz3PQCIrL5Gm7WQefaeA5uq2KtLP77uWQ6l0iwO3ZRHQdutA_FYzkVyPxcq_uYq3aBw9wJ-EeM-YAYA6IpXxMZoMRmMVyI2wfrEOJ3QwDwhRk-_sv_v_8WJ5yWUT4ct_sOQ0ceX4Dvylz9gYGGlMIeETy15xSIOvc6vouRZnK7A392Z6IXO0Bp2MCsmIAMekSwep_FdYSn2iAL6tft1Yn3Js8s11UDcnyYsdP_xT5DQJ351Qw9OVuUXsOGTK8KToI2o1uIFEkUro44vmfaXVSKSebdJipWKaf7TsyG6DrdS_ApDKGmX9u2z2qB_3LXxrmV1MmhpubiW27IWXkrK2e-sDIyVREYxQMDYn5hYQSvuotqKtRrbP4VND34bsalYLK3dX7D4vrwZSjztNBfRf6xe7y6LoRdptbpyXQ7xEKk31rdXfq32nhRJUBCTpA1p5NNmeNNiKennqEJNHjzcWrCM73xmansSzF8m91To6YCDSih-wSPW7DXuIB3XyzHx8nHy8nS9xMATyH_xfk3gMq10XUP3CuWpq0I3VKerLT73y1M0XYumFUBv80Me-R6tSNTPrGpOE8MO9W8FVHGwmiYbXlZMoXAXsu36Jf-tnuaxcnPU7Mt9bqAEfnFK9hg8mAu4bLbvgp9zqfQs4Xl1ZbKl_jwZEQm-DniQzdeyM7DKQrjGdoWsLwUiYp4bYrc1YSIbM1GqhOF6yzm-50XnT0kp5-nJilWpe3A4sMMK1-JmpV9tVTUGJTIra2qSx5HNDeYP1YwddqmqptG3M2jMBCXXun6O-41nhFOpkdrx1olUr0ZYxwzXcA4kufWSojmi0pdL5GYJBvQ-wfJuIQmIq1rTCflPins26tX51rGHI3fMWfyTituU5FUqYC0yHnOOQ5MrTJxMTknaKui0ru167wlHVz7Z2XcFOecQfDXsAQMvNSBEqclAlAiPcTDRCbfV6I2rbRv07KVnscy32rC-GS8krDAHVrAUOaKzE2vNU6p3zCbkEO1Qq_MzYUQmAGHPmVKMEAJJb0pQDpKDsANqDwf6XmwrIPRuUaBowO_CSvo9bYHaG_M0R4erq59lKlv5MO5usnxJ_G8iWcwf7TYLSbrG32JT9DnOMBpDj8OhRzlbo0wmSPQIJBg6hQMHZXo2vYe5YspuUFmFEWAAL4QYErYmdHH4q3wnV2RkL5vIBHfGnmh32KF9so1ZDpis0qWbuSuFsgC0hQyPRecuXA4BFIa6fsN0HBji8iMHNf7eA6fjjjC_aRSo3uUqTVhuGVU04WIQQxLSvatmCVgIR-F_XkxPjTZvnahTZ_9UsSqfbhb20VSJXkJtt2kjvLPwKYKr3AYwaOn5ulqftKSwse-SsPrfZnoxeH0GSmHTr0cpIjYkIBcKr_YrRCIMXCkaJVMSMPC4BWKGkS9h6OqMc6bvh3hi1Uey1QZcvCsuSnnWIdQo1SnasWlrwQTguNsZH0KjR-DggEuuvpsO3FgsRqIPFn9qQkXV0xb_ogMixBN0edjLU1ikc66WBMczAyTm3q98Atni_IPByCQ-bruN6TidGI4YsBFOS4OJdE6BQhxcDke3T5x8aq0b_Nn4wzrtUOibbLEyXh49LM39M__zfvbhws5wvZV903DzbLuMXImSmcU_93ciHjIx6wOfFqufJ-7BFkdDY-gIJS2SeQ8etjQoCJT6leVbG0sC13EkychDEMPTC8fVUtBVDruh6yAvF7E406sq8S1M28fJyOzCERep9Bjm-fc5JNr0qei_kCuk8ps5qcjfxUbcwtv8sHyAnGCVP8xhKL2zZJd07CsQVIKvbKVjbhrypzBUljWeajD-au7yKoqxP89Yjz0Zivk7pdZFznJS5SRlIf-sqf2bx3eEE7Tdff_lM4NxSlqdiPKWvyHf-ZSTtD3ujX7zddBAF9lWVmasy4zIUuXjeyPUH25KpfHJYajW_Ye3w-Jagc7gqOwunTBvYBwfKdKkBhDiCD7GxgSHtLkxHAw3dDhjZdeyWFE-E-qwGBnvqgjYbmcM_xSRRRjACLiExliGYU2KRoTKNfolLILCSUbOxFVj3tO2KvWzKv8Ntx_AZ84pZfynnJNXHrWTC5fUQ-4ffVTXNLOFIaHtafl9zGP4yl6piNDjduLjnaM9afvzEuYCFSt6c86NJ4G44Cjkv7Mn63w5JiiNsDOTSlm-HFGuM1MNgp9FVtIilGAkxEkZUGOd8oXhd55fXXzyFdC6QuqIHViT1rGUDNkiEkxQbPH_mN9ZDlv2gpyIeqGacXAX3SNJ5SMUWpKdexNdZhebpi_Egqcl0y4-Q-4_In_cxieGUHBQO2WYe6emZx_TVH9Bq3qGH46r1Ynfv1vHHwxiOXgcwQdzYCz4RrrNBU93l7v9BV5fV8F4dKnVJq9IL05VPvaSVsKIYbPB7bSXIuF-rsD3If--va0Y2i5l841htrjIGi--fV02AGEucLyLKEl-Cyxe03zsCp8qPgVhMS7MpF4vejny6d6s3jVCsgogJHXoreTcfCER0xyaHESUAdjZEz5iiiT1Cav5Mvzi58Ka9S129J8OkG-c9y4IHR6Qy_Iod46_CDBvttmecj5U-Yytgzp1cQa9Oa2pxizy0o0ETcshi5nXaOqK7oc0wpiw0breqn2liTM7_Yujek5Q6Vk2M8DGyeb0xrTCupRQRx6tEuDxvpnISy-mfZNFQ9ksldLDLVLDo9HTPEQ6vZ4lDNUs00EDTi7hn34lHrtk9yovuRr1b422Ju-hC7YZKXB-suxw2s2zdUVrMizeM83FENbFtdBfkQe9YKErJygaQ3ZZDr7QF5xcRvH3Kkhg7JIwuIJwL7Y_5xcnkdOc5yeRdImhyDV7T8RrUbxuh_CeadCV2ckJRO91WcRl27fEc3LwT8Jd00U5IkFV2hItascbTWKQ_68zoBCClB0VfmL5uAW4ENhmYsKH1yV5TzhyX5JbRZVO-ru4HCSf2TuoWbmdg0rfJh8mJfDtADTmXrWx4byo4ngC7K7SqXngSbfvWxcis5eA7j_8Inz0IfqHjGilsoOHeX9VKau21ldK2IvoF7KgTI2tJDDZmeurYyOT16FLdVCewX75YmNNNfJIlPFMmAckMNYRIz8PwyowXHlRkoPFt3nFMkLUVj5MFzkG_R5MvStrQtexqZy5c2UCXJKeNCMJNa2Rmtk_d_8S0ithYZKvPQaGGk0ZFT9ju3gpi8wkqLxY9XxGCrmUHb3MkPJ8whSHmI8iJsYvaoIix-C82hWjVlHOnCpA9GWUCyA4JbduZKdAgwdQbQQjWbGGUV4hPDsjkrOXq_htbCjLcJE8SrufpFpqvRsyaMdvFQGF79IyX2ulGuylL4Z6rQalrbWbDPU0w0sKAS4ZK6JY9XJ_cB_-jgH9_2w8P56tu1Hsmp_ad69PYx6XjTSNT6nNUfpONQdZ4VQW1i23Jy_oBdv2RFrLgPmD-EznputZclUgd4R9y6zk5iCW8WQ1S6e2e-XYpuQy7CTh_UDqToBNtNfgvLTMM6n6CbbQOPIWXWUg9DDBf_oxUUcoE-0wlivQkRCdEaxWRKOZGve27ItoChHOSw2Bq9INpWhfZr3dJ-pv6H5hy5Q31lRr_lxjwtvMEayie6MEZvldfxEbKF5DcFvqKP-sv-OllV1eABpag3szOE-NQL05UyyK0DWsYPIpTArfsepOOUBPJ2AHP1_hWWJ30Kflv0dz4E9TpBoLGw6OJDoKtBvFhVaRnU9s4wTptPoeoIh-L0QRBZBtrV8rtl5TUvoYseOjjUVzc9frAOS2-Wnly-p8DdNOIShlCFWCnS6dlJerXenzt5tDcRwdqTI8LnCaeA1J0-Dkn3GVFkq_Y-myfs_hm31AxYL9IrZEpw8-fM2APl6fZmjRsa7uq3LgCG2tVQnB3AsXkNnIZE8ofniD7oEiZ8wnuekEbw-5iwDb2pBkQ7isznitRdtFToSS-pkpGa-PATkQ8ypVBFzWixPW6GmT9_jOEuCYmR471ZOqltxTteXvvxoWnFD02sYTeLoMionBTAP1Qv3q2zvT-VEYYae40M6VVIVjJK7Gq-GH-6G1WMyHPw2JxCdHBuneGnuQqM10P1IEqBZFZx8GYv8a5QAgm_zcYa44jqmDRY66RAD00HA3ObvlwrIb4jb10TKb-3nmfSyL_LBIPMTgbq8t1MnN8jthT8Gtk--ij474Rw0gKTIZXrq-SIyj0sAwgjRia8zWZJdTaiIFRFo6onH7Ozr1iQGJyAWi3I8FLpITkNPdRCNl8ehbq1_NpDpj4wwVHwZey1lvrRxTIsib643aej8wKfWkKXhATlAETqkOnTuofT8TO0zpZavzn6rpgSWhtcKkXdZGHF69qHM-TdND0n4MavNLrE4oG_zunRwtg6Qu27W5KH8SNyBzdd9jVp1ttfeGAPVcOGRRwVmwp3kP0VXsYZ-jZhRoEme3s8IU9XgyZQGC1f7bsjFxtdsiOrqFvoqNjfyY_anV7uBFaGEPDkFWidKgdiNcOcCYqnNYJqZBUMs48357Rm4CsRbbBOyIgCA-uN1Nbv5ipcrGGFW-MbfdcztZmtOPulO4rnDCjGKAM-ahL9EWSzs-OZBVckXH6o9ULMB6RFbv6qPik9DCAkawhnJ1i8Ouc23lEMckDNKk6YEtIvFg6h7Db6F1qutnTXm-EG1GRI5tYP45lHWqbAX0XWIy3_8F-RsRDpmWBs_ye3LuCtGSjbN9DBH-68S7to0LF3EIHFj8mTbXNmnP51MDK_h_lFJSrlwha9NHkwHMSLMIZjU3cKLcogeSMYWQxu5YO1f8TgMnyNmQRNDVxHBLJic49MgBFALTnvl1U1vl4EuCbzFVgu2DL4JoDIx3mJBOGDVgiVJrjrj4CmwSHKKjYXsc9bxeOktv1oy0ZOU4sHvjV2ppbVmxwWFe0CZ-GhXMYh9-n37xD7CUQIv-FkZ1-sFfm6M2IWPeo8lZoxqO3-bk3jVhPc0tIaupiquyYqD7eobYbMOEXsTG_3ajSsKyp-MHzx4m_VcZdWhI5rrHI8qK_rZkWj5GTnTqiIi1fpHqsdXVfqX7R82P2I8jDQ505lTaJYFIcz4d7Z0RBwMrR3hXih0U1mOSyznLeXiaUAKiWbeUm2aa8WDemCvDV02fxxPX7TS4FIGh_1VET1ZIedUX-xMfPoBCgIQpATK7aAQW7IEdmwzmOSobLo-kPiJDLKXXl7oZZ5kVJ4TJLrhMH2PE2qGV-BZHakMl2s4XUncb-RdWZ8kyrLlmOWyxnpefAKcnsOoLK5SlWClgEeN2HK9PMTBpv14xaAT3EjdkQFV5RwqGux6UmJ3_ScgWrlHtmOBu1PrBC7oakQcfl5opZxXEswuby49aJCvkS8v15i_vnCDBfKhion3KGInRcYfO-yOHKte8l6HkrFaRN7Pl0-W00_R5eqjm4XtuMTsa1cyNn0sW4WEQW7PUl87u8J6euwmfFFVrIC647-EMaA2jyGYl4BLf3Chq62ffC33cXVz_j9SrIKba6mw9ddAhxfoZtqB75pojIXpktPLbWAw3PCmALsBHWnBj7U6s_rEteEJ-GNIH5eVCqnuK0ogqdb4At3h6ypMJ4bG8u2uxi8EQJPYoUOx8jLurRI_BNqQ6m7uCeThSwplR6uMPUIfihTS0sKOdNWtfZJtEdbLyBW6Fp0eA42stuLt1NG01uDhfSclusI6oxflTD42NRO3f7hRqwMGm0j1rihfQupDtPeokoj0nwH7lTQfUPIPg5508TssBR3c-U5Cg4tVGPlfdKPb3FHSZT7CrbbCJoHvQWx-gr3hBxxCCGK3wnWQUCtNSELApAGUdO6OfifkJGuiblz-caBzO9WCTxqDquzp9UsgZv5MU3aZGEGKBCSw8ZBmtSuvwyirCOHpdjt0a1YW0bHCAvnQT1TdtHfiTROs05MYBq254J2Uf2bF5WzqKMXnTzR50B-AXRh0Tfkvc9rW0KNnTIXeYDIBFapMs3YOmczOLloeQ2bL1vGUCTD8q-ZbJddx49J1EXZFpuBJswAnAagNrDvhTu4VegLGXt0-ox3iL4UXJ6LN2hv7-T7y95Ttk_sbpFuxxueDjzdQP_HThUaQ4CzbTyzNV7c0V5zBC4nYpTDir_A4ZupLlNV29HL4WNGJ1KB9BpX7xIOBoeo4fpQNLfUbpqKPi9X_-0qtPWQY0N57IgRf0Bv8MCto6PTGCjyaQha1u1_IF8QH90yrpNNDzGdW8vAw61UeyA_zuAlgTz5kvnYj5-xwldneqJRlH4tDM4pXehwhRJQqX6Np_4BjwNJ_1eES2GhxQJeZVH5exJIjKWOLc-8AkrAu_9Eiw3l2F4fjZMm_lqQZ4ljs9MWNye_YBC1Dl2QizkpC7x9cku48PO_UCNx_jRVO6Q_DdZ9sNAVw-Mct61YtW4DguzOf0nDFCX7PC3patbn02QPEIy6usesrLRVaGs-TTntQe1YlMmNa3hXBaAIOQuLVn4WywlK0qHajdA5NJFb5ghOxg3BfF0quKsR6Y3RVurzIPW6d7s8a0Huu3G8gsVcmYyWmed6puZ9jbai2IRtrUkO9bLP2x4_Hj5yKrj88Q8exGss6TN_8CE7-NZQo2KbFbP2FB-lKryLDPJMjt4N_16DkL1LzsDT285vMDautt0w2Cc1O-si2HXxqLUysNy3pZw4DmLVeMrGmIkBjEvi4L97jlYJUQInqW-ePQ350gZpDcSbBZCJcrGuD-hmL6luzq1xt5iiGTU6NrjWyV2MgKhoEmCx2yiPZBPILSo_lTov9P_vvp7x7RU6P-CIKGY5sxJnk2_6fJEIvqWtBswA8FN7YcLzvxMcCO2lveVA86P9hEAo8AnglmcK1feXRl9VImLL_yiFIBBPkIj9AqJyDnyX0_9xqJNJVvQTqGvefGZqP3ordI6vfZEpyC4lY3IxeIjiY8uYudU9b7lifqTkFnjIvbevzf7XJxUPfrsIXPasd52W9WscFcOuohWwDyEMGAFp24T9KidkAXgSlPwNfGdsEHAYcJ0fhW0MyD14pSGwr5xUyaj42a-rfD6SvBF54oySjQYOR-HwMHTdkcKKQGgT33txPww6So-Mav6InDQ9vMRNSoP5bEnPBpVusToFZnBNmnj2UQwU1ikK7FPpGoD0EfqEgvEHXKX36QjrRhNvmTG9p7CSWka0BuncUn7bzGdDM_Jv3_0Q1aHRVxOvwTu2BPcPh6iNRJDJScmukFRxqZMdX4lkN_ojg_j1dKy9CrXkBhLllPQ81oS3MTQqcIhDBB9j98d3859TsIsFAlzcrNigOhRA3Gj2_W5PxB5EAp6Grke-YlP7_r96ROascPXVqkNiC7BEH1fNhIEgYpcEUlehYISy0PpIuYQwVkH8rurwUPoEpyvR0nPthFOa4X5JDmLldcKEU4A5LTggs552k3EkU7mK8KCwyPzS533Hh85IClmWU7iMY6pj9r8qwkKn_xDstRrSs1_1R1LPDqeEMbtIEC8SYFCfERyqgLNIGt_XslxADWM8ElEqCPRC_VJgduWk6oVeQy6BZ3CCt3vAIkAVJxRTKGcutPzypg1-9amH8vSbehtS_F6NZdrlSncGer1m7PImUdwQlDbSbEkcrfYPvkwtDfNOLhZjpmozCiY5LjOXjGOSihM2WvF1fDcjBh7knknujC788GRvFaAqYxcRsGoKTOKMq8Px2fyQvUa5NARnJOyJ6TRzD4vC49TZ5EhjSuHArcJzePWJIgiYu9JvoXpBPz5cMHz_2LeDTDaj5OFjH4W2OMs_AKSBDerOJHX-rsoNckmC31H4ekL2FP4yFwwFM2JZUKKNRrrXb1PvMju8xS4STSlhWuLk6qYhhSBmZ1LS2pkR1j7Ixn5D9QDfzLMmtSpkqTu-GPtBDM2cG_i5VT02HefWcb559brE7d3jOaM83zoog2ZLyA6KDCFjHPnOr5q--0jACxq64vhbUfrenoAB-pkEAkF22H7fWSj4D83vjdvCMceEE-ZbvtilnBofLACqn78uplkcMxiPCr-dQp-whTOZypZr6_sQnLLWlfoD0S75abrxJgI2z0rTYan0gkxHgYGn14uBct7iiKSnBIPKA36v5hz1ynGZQqbPOYp-2zNOaZ5yvhvW0xOuv1RaWw58ckk8NCF0fb1XHNp-6dpOR62ATAACdz_aOrc5vBMz3juDwqE4UCLzJ5iE6sQLrwyAV1Rs4FZYSgwDZRyQ0fEHZdEtUNjI4PjdvnP2Szp5lt9k9vIED5Fz7Ije3sMD3C8REy9doSoPdXp9C40JDIinv0QVfBM9EnR7g08-fiqW59Ca9j9LGuepZUfQb-VA_XlaGxMRir4sfEGuHQxOur-qXi1guzbrqIguX2O3XRyY0O0jNXrfY_Vey2CmZa5AxdG5qHLOIo11lIRKl-2A1hE2ZLIr4Kg3GWHz5ohe4R5bfRtTeExBkfZazmJkaNSEBKy0Z1w7I1PdmW9EH6m1NdtSrLS4AQhqcrW40OyyPQJYBkNvZlPd7x_NZbvQ1xLnnmQi9fRwodeWFisuAHytpj6pMvIf9ESKflnJ5MT0W_pIvtQIyuEaVZgiQ_Ot-l1OsYTSpi-ODTz01nD3VM1Mqm3NOI3CscYi_XiFSrZjhjRzLw_xoZwYiSe3xZ8v_vszfhxYI148hBDOVMJ6oOgJ7tWd-wAAmWZs6AdiwvNcCPvh6eifzy1Ce4LZlLE3VmIp6LaFYS1C8WJFdVG3YXR8keHu_lSqdlOW4m4eWHaFzmFRwLy1D0hqFcFwuTBYkGqTMBPobhlZO-ggVt36yukO7M47PcL2yslFMqlX1GFcAXPwLapynDXGJ0hwrevfr0zyW6mLtZiPkCMIlDq9D1EWmo3wFqVXXt37FZxd2SBWEgZ3WJrw4NygH6qarBQxpGYmcJcPD2dclo7ARLmy6V94GET8twctWVwKjXQDcUcTipsBHc4pFWo6J_hyT-2JBjbqdTAXU2UdK4-51Zqxum0GNcbKK2_s7A7en1Zz1TJwQrFC65iVvSH-MMKQbJMc0lPqkzPFVEYFfaRPwM82ANsZBiW24kPVYdG8DfeeXOhOFs4Qltq-Aa4yMe12pfuZwmoB8XmHC4rTUISeRI2sZslyM2My-40gD0bC3co0pKARmUTOp-nJB4iVeQfFNw_NBvihHfPf_G5H6hqB1VEBaieSfwA2I1ahrNFtdoCcUyM6kRWp-iPq9VkzlaV71Dry2gX-za_OlNOZh4DH-YwdQL-mtfybE-dD02-g-qfaf84CavQbaX1RgIaL7Lrq1GCgmlEPSJYk9mrapCgj2ODGwiNPKiHmWEAvdg1Rl4lnkXrgfTbxXmxebCTt2f44Dxv_rs_Hv2vfUk3f7WVilyqi5yoInUK-Y-fD1v40AArhYTNKxhsKRbhu992XMfEoJ5i3f8cINJ480kGfQr4Ns9jM7tbXneJgSmwywk6y2qNdOoE70In7fmkjNr2cU7zXgkG6bvW7Gy_rygWYQOEe1rPfMx5wnOL9kkw5hJeMyKO2c2DB8C4rDGmRbcS_JElA5CLrWk5tBLSU-IA34HG8137i-6Ge_ubMKwEt6TKtuEeLboyFh9ZLHOhM1tLFAN6w5OW4CmPLYcG_26zT6k-Q5SQcLKojIyeuNawzgmik7RSUbh-Vyw5UcwwFANdj49FvjvN3dH0MKrG4wsGiZq32O61GM4YalTnB3KOkHBTvlfLMaLCj29TMOMYT0ppiWoH1Bl_aOXghNZFB_b0pPhuxhoFO0POChnWMikK4kX8TKx7JE2ykDl4dOurmhU0Dex3_SJvNY383sQDN5vesr_95ufNyrkOEvieh_-iWD3lft5LqtCtC7e1d5utqbrilAihz6TdoWR27JLA443rIXDD7MP3bpUBTPCve_j4qP6MgBt2lsJ99KGrx58OdGgSbCikpaFrZL2l7paCYo5LUehxHuiqAvBerEZJy-jbx2QdV2O6QCMGl_qR_6umUsgzZVC2YrIDIfXM6PMCWnz3oE0SS3puNurT4yeCwhmythsT5xZHmADJLF1rF18Mboo_WwHtiVNnQESLARRFUEs8a2tjJrjtsgi1gkwogS3eNsXpg_c6zxAKxS0-7U-ymGgPh3iSsZUhdYejj8hW7DmY2Pd9bn74QlWeD5-1n3N_V2g3IhZuEmOSfYvScpSRg5-bD66UZujjiUaFDz04dZYXUaPmkNOkpLka30_akUjU-6ehhdesrXH_cmGfkqkOPcCBWV6jnkBvVs69MqvhI1_8boLDH8qmXNFA8PgwPjZpVJGilePj9noi65bILq6ZCVZRGMvyHhCnjo34aMIfDt9JCD8y_c7Pm4z8v80yR45Xj-29j6aXzMht92fw4ZBLBziwecuLjNLS9vYbg_pVzTbgFwRg0bGQAlqhp96WPRpMLj1TVx5Cq5HKUQ6ZvzNWiHN8u6tU1D4JVI6tcSeqRDOe9A_i6IOg7XMrReiL4MKJYyMnAiHJT7AyRI4YHlbu0SRVB-IJjyG8V38-miQ7t0v0p9PaYjGxQO0uTK4BpwOMf9D3HbtdzdU2EKxccYHjFDk2C6Qye33sTPO21ounw7yz_fEMoztdVU5DJ4oxASqgkX3I_SaGKCwwafTJq5E0QlhJILPOJp1I6gsniQrQ7CVI5a-RydtX7n44dYREPWyXHfwvd8pBgKsuj19Oo9mxDUjS9CsjdRs7IkeuZT3iNtD0KJePsprJpmi1W3G8zOq2RemXvii2wFxL8dx-i_uub5IqzKWrRArzlC5y_wWhTcvBtBRu5UWF-XnhR_AsBoCLFcnI0z4uYSfncaWkOEtAlCGjoYLOnpooBd_-4X9zq3EByFkPaWlIPMdhpg-bpnupeG8wssGLox-e9RWgytEThDw9uC4v1fwxLUdqDMiYSFC5rz6V9eBhK6tfItzfNrTj4IDcr3WcviiXQwyis-Mo3t8FmbwEjvsIsRAKTqOqFuBtfRggigx4HI4-tznlQIwk52E6qnFm2IIZ00QRWy1oOGwDh13xNmzNUm6ZxlbLQyv5jQfuFtRh0cYFq2in7RM_FBFzceK4G4b16VAnPw8V1GK0GLY9Xtg8mPbFXKCXhV5J-aqGofw67s-2MZ6LHByuSp1raMAQkWeIWi_HZzicipb6vIFr5dO6Fkq86cv2E-ki03gRd3Pg2Km6bL-ZT_3X0IKViOgWSqZ9YMeVkALgyd59UAV4DuJhqNVFyD_ul6veVJvuF4ILB2EbhG33VKc6XFPuy-Cp1jZcYVrEHnn6BOzW1USyw96AG45QxJ07S8duWDvSMKWgzAA8JzJvC9Q89c_Wkl12Jaw1b3nQQpmiOtV36efRndB8L_6SXmUgqBC6_g_F-yORXN7mpCljE1zqjCLk_jgSQBX_ZpUAam8xz0_QOqeT02u5lHlbQA770BT_jrCooaFh6yDvYSQtq8ap92XnLOu1nSGtXj4Uc_mQa-hic1S4s3mBqedoL8XDnctN2N7npZPg3VRXp6i7Q9APY0ThWOr9BWfzJECu7c4jAyCLOS7kbRJdCgb1KhysQLiP9kuVA4sm0nh3YKMOqd_fna5AG63WMiC1FPLEW5xeUC-HnTEsfEfLsCPigYTSDiRrFbIsT0xjJ4O7ulVokwSwRRAZKE3mlUGchMICFpB5Sf0OTi8rT81yHtNq0qx5n-lwMw38sCjFZko5YwQhXHrTjuQeJAP7Qenc1Tutwgh8EVBO3RPc2Q26mV1yw1WhQXEGPcl_ihXTPUbdELAqT0Yk2wOg0ihZ_FtaMulQuTELHMEACe-tAIeH0cG5EKpCCKjC88a2XRz6eRvww-PiqO3IPuRdZ1y9yWfG4T7c8hX02U3v22ZTcjSCMArIaS14ZC8x6gsUhe6WesKQAZ-B0VZSmbBbsPEfi3sFX9zO2v8VybgfiGObQhsYbKMviairvnxKWr1NAMEP40vDhlFylAi4s2eAjVc4XctVnK0EO8wLBHgQHxNg-gRJUVZQk8MxgZGoffmpVyO_wzPmFmrzB2-nBOLhr7-u7CSspCNmz2U5NXday-SIbRRAe_LSmyRjaTlgf0E7wq_xeO0q1SAln8MgT85rebm0xzdhoIcpShpKJYiv69egJoAu8ms-yt93jXLfaSI_tPKauDu80x07ZpcNnCohiRE3Eti5UguXrkjV8MUUcv1lLJbc6pqS5t0bjtBKtmCyLBoCLmntlaH9vY463rm3s5VyrakGCMb1OiU7_DdIl3SZCQc9tOdx803s4salgo83cRx_mGWOSs2yxOHdNI8JHb1ewsVBWaiqHqiwqL-JviaV4dxB2tHzIlnuae5o21wE90cCAnvfDTY-5T5TsbIv7fj1jITWqtp2lUcKILhO5qo3CyB1gVrIb067glVEHbiMlyW6gZCB24_FB4vzekjHttJ1DKv7QJo9U-PbiDMNgcBsHnBh44lnf80DIE1U_2HqOhLMZKTjiNC-U8Dt4yjGn5FJtWsBK_0kr4Zy5AZb6R-AQnjgF8fpJ9Yq_1CwThZ5WJ48WdWenMuo4ZpiEROi4rKRv5hIAPX2nOoiJdA_521aoSEjKpDmlnP2bnw5YwN2IR3C5cm5jOkTQhp1EoUt6bOczj-My5BnKQZmWUIZFkfk0Y54XZ4ND-3vV-usI_LhZdKriRHV50XSxGPARUH9SFabZytz6OkjsCYaijUBrhsnH-O9h7BT43vWJljl91Eef_m6eKrZ4nVMMqZOSp97vfPJOlJzCXbjzYE4nMXr07BKtkqaWvg6etg94O0uzeK8vWDKDxlpw9eFePxeVzmO02BJEKLdr0pL-qI9e4MNVaWKEWnZAsCBcs0a-X1RcE9Yv8M9fjqYo29Qcixn_k-euaB0aiH4x__aoJEL1CVksYFVER_NjIMPXYVSsjr7tr6bg5xxYUwNiitgp4egxhM_iZvotqdOCpgrh9iKOMgoqYPzvj_lcytbVZlnQ4wZtytZbsNaRY5AKqwOl2t8Il-OTW5ARJ2czCtjvbZgHWBqRTb42KVptC88jzLRMHaq733XTDt1IaAy3-xyNBOU5Dt9kva1Kd8rqSsocLtFMVdJbNMes1YMdj95t-T9RwGD77axVlFDCf-mCwx8imH6Zk3ajhfO0FmXgz4nKMNPgS4OT7ABZDjL07Axbna9ByUZjpjfzyVfoLxY5PmBK_mCqeLNZQ2fSFCRWc-uLkoRJ7llcMFRaPPgXt0cFAWR7MteMSJtN07ZyJ_qR0ISimf3_tOcKYLlDYIxVZIAP3fFajWzahNOeqrx1ETH0W-mvpAlohixBC1obLQn96onK_QhiWXJSXOmfF8INksAorGpy4bcilBTC0ysM_C5h9Bi3j-1RAH_9kZbvMDDjGWVM3jU8zSGC-DZcgUbgnesg1sXY9z6FUwch6aCaPkWkOPEVgspbRJkKL9wOVkZYquUKWWm67fh-GS7DNby5nKa1YXVD1uoOrfMZqbx0Daasr-y31NWeWJaoBFH-XRWw1hrF5z31d2KPvqmYc8Akx8CfuqxhfIDDYhBcYFOTvKPG9yU80QKnsgSaFHHdribF3b4YACjyWZ7L0iFKwHMLaaLEs-vjJEqdzKhIET2X5lBoLf0KokxfJpcbAYO9vEL7yj5n3aa862bZZGrNj_JUX7bph_VFtkngs69rW4vxaZUicHbh633x6CdVf3g6ynWdhBca5YP_q54ODqo2nIU_mRMeta-WF-CqII2cN8knKfLrFMfpx8sxz8KRtcfNsA7ugtZ6G8zMDem3II4IApfvDEcCCJ7-QHjiIZcglY8peM0rsM63gRRElpL4oNqINCAztt6F31Op2W2kqI_snPoC-LVgEON8cbKAwhIvyEMvAMNXnW7e0zZflaRRiQBXMvnhbCSG4jpzf7nJJW8mRkEaKIw2fKE-96w5DNnas8slynNFHto7M_xYWKOwfAeCJkSJTvRctIkIaG_rWK1uuybWql63tVD-etnqeQrxQb0l7A-FRW2alR_RvdtljfZiHx9D563LE5KnoCI6WyThdnzmlxGtYMPTY3HDi4bFE2So98x3DrxT1p4-gKqnHeopF7mwPX32CqzKMc0cqYepvnCaccW-M5dTTsijOz2_NW1JhW6fnjAwWkNcIwIxVArFb9j7tiNoFgSzgFpwSx4QJ8lKB0osyH_hDEHS-DTzsHXUpAX8UZSNCecsqFGVYH_-RASfh6MnaC-2FJ-V3ApDP_tkYKmh71Adp8oztKbGR7jyDjqV1-cB8LeVFbaAyCk4aXVyVu1sBw6EXBqAMGrPs_fRFV4h95SDGI0_APc5Lp-sFKEOEBpAC8HOYP67AmYP_5s72PAxBf41kQZYD4aXQxo3WeCyT6Sj8ARwCAXh77zq0h7Zd6MdCFM4slNeCQQzYDFnY-Un4woyobSUyV5DHOGu3Ki6wLIL_ClJhETo5ZAOrM1A6XM_DliQTj-oLFlc22vXwp9QlVH527GCsOBP9JO3VcIBt8PkN_Z0iRdhnsRsm2QxuTcQb4xnciwAGjaCpYtQpK1pSQrYl3bxtTtiNFanHBoHqA9yIxe9qDOr2HeH7MSeCKjwlX4h2xUL40zvcD2qPG5fn7iWAnb_kcxDmgsRYhh3ernJQuzNr1vhpK_yUk7-s44sgoAydoHQgaDWl3_Xpi7pF7Re_Kg2WviZgWJj-q4l6JDUayrf5x4NMKolgE-FUV_CtNboUprhqlkd0BwZjxITpsMmEE4fZPbEDfaraTz9YpehmSTeUuthvRBr04NvAfKsvkYLgYKWHvRI6dY8o3PA0Jac-4pDCk-qBBjxnONdMjAtoA1CZVpBaeYlBcCA9IZ7wpkq_JlFiTXPpz59ebxhADJDWb0Bx6SMvLYONbY0eiMRVZl08O3U2DWCmH9NVgIIco1B22up825Q19GLH3nWPeb4eQLjxpifv5yn4-R-6a2n3VrbajX08jSkQ7mNX9AXHz42FJZgTNRjh1tJVCl2Xfq4oPeMkWRrdKuHtcfDMQ7phSnqbBlIgaTrvYukLBWdlSjbhdId1hJ9suRVwDe72lNZwOx0eQkXVvTb7CJK5Un2GMRBSIsTQea6C-4qZheqvarqV4i4OQWkV-bTvrhHI_8231J33SXbeT1nYObrSVg0Xrn_qMZUVQ-mPgmPb4qpwnvqlbXO89rQ80vSCMjeVelejzISY9NPWJAzHg5YoJ-5AK2_XJPGUNOUb3lNlPpAuPTVIuaTA0CiZoaHuReR0-6iATDiKkUUCzc7414yOYX283V3oXagbma3flW7SpLW6lUlCjkj02fhZf29VUZcu2BdTmCsd9gL9sIMZKeHf9kuG8WefAZqoD-xSN6lhdTpl5ZUMEmHcjDiuNVlrNF5WNssYMKL-d-C6RZUHVsONrAj-re9nHgac5YQIeRCss4rFFgkrstcDQVVPTR4O-u6bZqaR_xSVdzBODavOJ5LbxJh6X2QFeLN24M4PtGo17BR_7d8POzgz_V2KU-5-W3asSFzvRiBNuVjOGBuHC3NYrsN4qeXyK3aIpgUJ8MVK-R0Oh51eqIhDpRSyIQuuE5W4ZF4KYzFTL2wKl73lCvlspUT0DOV7zIi317qsWmxQfkIBB26vjjb7tCu9ihXyuf_Ok_21Eh6uaG0hF39QagZ_2ZOfVW7fgouSurZFS5okXACties2sNYZmddFUoSvUQG-5h9HxoO5cX2XSIbgGQFB2KbDteJjKSQkRXpbN9ghKERfJahKMGMkXVq2Z-kPziPt6Zrya7q43EqgI1fFNihvEACu__l-OJUm4AcSuT3jmx4c3PkBY9xuHDcMdlSq545_91KAxaYWJU9x1A21WiN7plJWjdgXjUd_e1-l8U9iqsKefXt4609BJJPBZy3-GYaiNlN4ecttcf0MElHcgab8HNshYwJNiY4m4U1XIhLNY56hpCoPPs03HSg4Xcu5Z_zFVkQePUo0HBSuY4S-YJNS2jvQs3qyN8tQmlkzgA1T1Nx807yX2X6sbuynxrF7F64eHoky0kTXgDuj5qjZ4CBAKkO-t8hfhRFUvPP5FlrBu1yMhANNcxy0AgfoFc_jMtzntVEFQRrnII-x_fBKiHYEbG5AtjuP9CFMuJmINdldjbRoN-ZUXbzWUp47Ou8yx5cYg7ZvY6E-ZmkkPu7bwZjbHHRLZhp8MagenMCy2O9-1ArpmvSntbIso4gUmRzsvM7rDK4_4s3zwjdIAisvx_9ZyddO84rS2z3w-TvSLc12GmND_2K87oVPTq39dbgvFtvsC4JZpNyPjVw8KSn7V1Rv6tOmXMfRyVlZVTTvy91epI-NF2kqA2GlPgwM31W1poscO4d3Ph5ZmsGm3fxIe1_-KHefL0oaN6nMBTwUwNbSVUF26v_jdbBtyu3r4ajchyUxH2NnfP24Zl0aOHYxy4JNNdK2xZ1LAn71j2B7QebbC1rMRir6W6EfrYb_KHGl4ybaQo2h1xlz4NCwEL0jKsp5aJ7TcUY1vs38Ez7jNH0SmfAq6p-ZVXfLfBBJpxaddDSRdWX2d2mpsxHsK5tJJAflq9_sHOd4ZQrW4GDfFmwmQDPkkfgRlTMBBp3SFuAFPhPhf_vksi0YCkh8C6wKxMFFPqNvSdfLnAyn4lV_r0whO6UDxYHiE7D69M_uQSZ4qc6yX9Fkp0qz-zPG4pxuPMABHajuGAd76COMnw6MYLY7GolL987JuDp-suRWNAdNXrVllEJBtRYuYb2bIFuk4O_TFy3jMKF3XBINJzRcSeVKg_RQib9TAO4QO9nHIHcjqiYzt-ExMHLhX41E7bIAMvWI1_3NBhloydJUgWJAhj2iiTrtF5UJn98ekR6mbmUfTVSxpBUqJQc1Z5jxGFqqcl3KzSwh0V2wcKSPkkbI-Vc7p91aXf48NI0cb77ZfL_mFvVrI86T84W_nWsyiYpwrXgyIxxxlzJ9ysScouz_dXR_wvFcWWXzPqWxDy63mhAmKh6WNmTFCgXnDpRNM5lxIGuR3--E5oX3zxw8q8Q1teB05CdMmSf2C8hxZY9iBT988Mkhk8DKfsEuNOxqX3c1CqjLyjj87NZA3clymKql3vyAfizeGfXobnysB8S1Y7cTJ14h718TlnXjI9UPHmN42V2w2DQ-CpCGHFhY6m0dYmHpuJ9P5A4TynMKU2GoDWYKpBxq7jPuCQDegDmK3h_0XMcFysgOztBuJI3YnyuGmnV_u8kyjcIjceqSaArdkDb4hnuh5gz-xoielyuIJ9BNLiu2XOKR9ksuTen6sJTqtgHOG7i6L86tAP6G6wB3W_avb4ke--Dat9twcScUgowU6pcQAoUHodi9nMQ_IEQeQ0E_Mk_qz2AMD6f0q-YhiQKZAedLEMNdOBnDczn6kAeNM2wwOsSKXFofaxSBpKaTvzhHPVIRJVtztLekOoqohxMFSU--gY9Tt3lcsVKdKBEJkdArQjCjcB3bp85xI-ySyUcCja9Hh0Hq95D4oB5eVq_3IuE7-y0Iu5KzMK5goqCuUKAA1P6YKGkD6v2Zg8rNNTjwkOcYNaPa4vQRnuzCZHYk9Zg4yRsiDPlnFFDsJlx5eVw-4Zi4vPOwerUUtUZdnCHOqUUmxI1h_ROnUdjtZzHA5waRB7Dsj1GBaOWMC7P2_NWnScDVJdKhAUD9yOn9a3AlaytvbmbSC7JG2CBqjHJamCYaWxJxIWmO1EyeanKpneX_w_rVDB92x7dqk4GBgo1Q-AWCNHpk9ew6caUqW54KDSlLesw_d7OFM_HeRO-FJHlmAonto2TDEOA2ArOGvTAoHqAH8iAHoAKf1NsR2OtXX-LOVMbotGkWzDWZc2Xl84GEhLCCrK2F9DUF3GnaI-mC5fFIpuuFyxJ6dbfTh-4CKhoXRUMoiV1eBkil4LZV4E88bQkESfWQXBhQMEk9mkLkCWXo909017kKs4ZAbFMEpO0yrN0rIDkjBeCxYyuviujvg1vj13id6XEZ0qNfP3FImqgDaHfyPAOiOpoxlm8CbmX-TJoImqlI-LCSgCeaLgbg3wQEAHx907zjciMRqm88jcGrtWFHLf55VF2TSP6B8JBSuHAF7lMY-GB_y9EZv9XcmavlZnL7fuhg9V0Btz8SEUhri1bObzGIc8ySR3nX-PkKdmYQVlrZCdiLkqRQbv22oCUJcgzF9hmlvjxOLdvmLlLXZJvee-waMXvIbIXcH8vH6gK8Anduot7yTdUKtbjQQjWTqLFJMeuAhAWaCmLVqm42NATT_e_E5I3wvQyaLIImIG9pT0UFkxc7YR_yluzi8Q3CFWJuW06ZgMwWBHjzBpfNpR4jAPLEUMdJTrVS1ZJwJTX9USDTWtqI50QobqOCh8anJMDOVMjWj02kZ3MPHdXhF83e_11ysIftQWi7vUcH_BiR_a-eeMbudIa7tKY9QL3BjGc2oZRgXzlvfpKogXRWbMFK-yhaFHmna_bY8D8psP0NBvsAL8Foq0s_lfOl9mQ_MGsYcYtqwRuZ8hkOk8GFw09WVl40YW4QuGYPdKn_WvLii8bkqzIe5IXok6z5HRiReofamt017WpNPgMODBEuYID7632dAm6_H6GVGxWVB14_eaHryrj4yKxH88EXmjjJ0gRsbwfv2Hg1yetWfONaSKez-lf3kh_3KrxUJBZiJyWZl0IdlUll7eaA0HoVTZTMoveE8GfMg7KgT6cLhFskbGGewiaQBxwwHdaETdKlQvFSjx8HhYhFTZwwaXxKwVDygGibIO-O0eMD15pGb81gZ6ypdqgqqR7HQcHByAjumhUA4OLzbGqAH5ksTkg8BFAlKWah7oUqEr5IbWdycba75sDRM3nStg5XJkLrI6aM1_Bfx_U2l_4s6Rg4GMXcR1N6T12KDK4RLFYA5JEN_E4vxsEIEoCh64qRhxh_rB1Is3-3oKKGxNhrqGSAnAXTI95sh3rczUhk7bLEhFOAJ8gY9i5V2qbMIDQAMCgA4aqyWFpstFNhHCaJ14aE-RkEupG1VKprtDqeLtk-o3zvfTlF_2r6ZecH7CaCttsdE9EtzlTD2n6zDYyWPs1N7P_tonTPe75pIZP8mIzBCb9NbH7xIPqQuJt-j2j6dOI1R_eAc1Nqz95rOFJah-LXDYQcjG8xHgZ707xaRc90kWRfo15kugO2w1RgVf5tdlUI2KSAb6OekzlaqZLv7gQlXJUtGu0d5LxO5y6n-Jj7v3nWq6cTNqJS_JLDmBEvBaW8YhA8LH5q8TcCNYTZtBrwm_SM0fqiqjMNniOA0kATTmh0D6igPW0SbpZDMe2ZkMlBX5tDIM2pURJK0T4HXSlV0uwgKepcw3_XgbO0KCEyVY4kYkfvKvD6PjYJlGDaQLoRvxB0Dc7Kn-M9UIfmK3bAlXks9hdKjx1_pO7_XeWhMPQNHvHGbcixVuS9UI4_X0GxS0benbxFVPfFQw_GBpTKxLdsxoJuyhv15h9lxs2NocSKaZxE_xk8r53FJ9xm3A54CKVs41iauztZxx0n5i85wt6fUNVwwHiVlDFvu2focaNZxMDt3W3z_v1wUFHVMgULprCKlpYzIiWZwS2JnVI6xDPEtsZXiTsIieoXjm1rE499TqqjF7UzadVsBdQ4-Lrl38zdm1D1hpptUGe0IP9ybpa2f7USDcVM2v6WO3lv_0u-q6YKAl1SoU8kEwFEn0WORnp7pXE0rwMYPi1KPeHWwTbQOWIcaY928zxzuTNghto-q3Cox8r2QCt4cGqOlt_vn2y-XrUALlMXP2AR_5nQdwOPfyXObNdxV3iYbF5FgtijMaW0Ca3dpNHh2WqDIaYmPIe3KWPlhnrSy1ETPv67bcVFjhbIv8zRQRTAz5-CX5XBC2OSj_2rRE7A3w61zEAZi5y6keX3qEwHhaKfQB3Z5Q15k2h7QfcYcrERkXhGS_vKMORnan-S_Ftlb8ytuDOneegMb3ipMsh6RoaA9BSx9wli38XAD9Tx-sW_1_TEx-Mte4umNUkYvKHWjY0cRemiDaioP2Y_2juQI0xLdTdZ-mudLcfS8K0Z1Y4JpEzAcOe1vyi2tkOPkfqbKPCFTyx2x2bxIMLNUkpzIjQKFQy_RWdSsRZp9rSBbpn-dORWU0hW_o3c4ZcLiPPdXqUtZpOQimQ1jZ1YlhW4FNn73nY8aiq_wKUH6xm64ZUtVk4slPA_Jl3dgGOFylJK8VkQ1xU6eK28ksijf6ndlZnQ7REKAc2qjCXJh3ogwVdfo5dnTFD2U2tuTJbw4_JY7FrUB7N8DZkF9QKWz_oZ01DimlwMeqh1raF1glM4FHioy7wlY8kaBBCpOGj-nn3g55cjXhXZcWDYSaLvicWvzwKrCm1UrreyvykIZQ6Z7F2gTXtODojuJmxbhuP03zzGYbK6I1LTcqr-ZMEbPr57nJQp2DPz5KF2uhhCXCd4ZYJK-unYt1ZIVsAr_XHu8GKZi4IQHokegyPiZtc-ohpMHBUxBuRAC1ZoaMyKATo12Dc05eeCejBb6mTsBMFOE2Z4TieAFse60TgV0p3Gi-T2VbqSovTMdiBVfR96ogZdyJxZt2Br6qWY7Ybp1iyqLfuBkk1DoAx0mtD2UrER5PiXW92JV1GXL49bzgZA2oOu3wPgIuCmudnw9aIPkqtqeBE9sc3WzGWuab8rSvOsBowUSRHhnidNd--3WUeX9D3CY2SLKIky_sbr8PH-6hrzaIiIrmquNRuOvWJJAH4yKi_6515xn38XjCB_w92vcmKgmzpRKkoTyHIzwGmuG5ujFe6Zs9dfPqwlGphdEWYNCg48vSrc17UXv-aO1QsUZZ18foJnMp8hIZlCP6mHaRL96g1oIAJXYytrWaRyznkWFJGk_wMeobbUUNEGPAiLNjx3LugSNo9o-4RWN3vn268m5aDon9SB-ZWN7oeI9r6TGsOL3XWLf17sNMQumdsH8gzm-ZdCzAhL0Ad4JIkVrOLZGLcSIulB4GnF2xkYE_WAA8TjyFACYDU0zSS_KJNExHTsmnh8FRKZPb7lZ6o59nn2O_TyTauAnDwgDtNEir_mE_1IpPaltgZcXB0ttRW9t3pFaAX0gv3SNJMPjjMqBfmH6xw5pPTO8SYSX0DVB_XFMjXAqD24dejeaxamkrErxAgzdEbAxlUi11FmW-3cPtav4IjJZEnmLfAoVH8wPvRGoF7dUraUO9GNAPnR0hK8mfQqZqrQb_PQ1lHN6HzMkdW1oaTgJSm2lRj7ppslzyzQk3LRVs7jw_g3FBvfxFcJSoVHheGcaKGOjWc-KU9l7Am8tNprVmTsC2YptbLNj6wx2n1zfzStbUs6FOsmOObkMApv9MduX-v5kolvWwJvYj4hcX0fzs0lWLGYoDj42N2ayGBwNPdJ2V5kfAcdOCA_SnoiEcVquzm7sCb4eoSp1et6ND-sKhcfjWoa9bmJ3Fp1GGSZXt3jVwuvRDPVPL9MHNlPTvvUQ9MdEiZhmwgpruebGuiNV1IiF5rL7lO4xOiHAoI8EkRlzY-ERv10skvHCpgxfIGgEpaSavA73QmJPxlk6C3GY9PvRv-9055669SG00TkwrbtyCSdB_iZj02EHZzLq6cB4vf0QD4trW-dn_oi6DjVYxOHUTBL3PDZdKeMlIFluiu5ilhMvaQezo4ziK9NxRi1jgMr3jnPl9MBfPIioBgA5Ql2TNLWapICEl7C1xCts_x9GH34_0PUIaz5OlmmdaTH1W2ker7wmNBZ9F__WOAYEC1tHrP6x1NikA2Y_3eZ5WTVekxZyKuigLADwcQ0HK-QsqTxj4bvN4Af1O2cwh7MsObXZdDqlEvgtAba9YpehGHm2wvLJGgNQgTuAr2OT6r-RN8QxGt68Vny39oFGsBsMHpM5aVlyc3wQb8M8M8IB24aSYvvVMxUICPq6VbsDBLJJnNTi1kkJ1xqT5PuO3ppJ6m7u2DMjd-KcZkzATiJUE-qR9E3VxiHoXaEV7r_rI8YjHyl26vfp2U5k5OkeX3ckh5FOzswLX2XTdeyRAbYyfkFkKwzsRyPXlBW6Hp4AkMl4YtDcUUrtswEigBL0If-OtUIJuCYJlV1H-JJ4PjFbzGt_VuuJkix21rGftsoKogBhZh2Ap84Hus3JkxOh-ysOczllvcKbxQMm31KyzAsfDwVumdWJOQurdUpnDBTTmFn2YHrh6wNdvpJWki1sr5vc8Wc7G2OCCN3xCgrAVgo4TIluoMo3Qnm0r-Ya_4_DFT_VGh8PLh95x8BPlzmSXXyJPscAhlqV-eL8RqADRCYMwcnC55C2HhdOip63bz2iZmJtr4NNi5AoOtvUni0nDo1tFtja6ytCklQDEUu3gHXa7zLq0NcIfggvGeMnXJQP4hg5odRwx7K5Ze3EFQ1XfWpla1xpseAFkiADJd4TQTQ1RB01WQm-n2QvgYsBiDcJTjUGE-MyhB5jNU3MLICQHT4vP39cPk4N0MKLYraqdbTQ4kQKNmN_iMpGcNrdQ-kRrWgkUwHfqeO3ybpNE9BMiOGgwCWDtkquxvlZr5Nvu776AVhQFlUxSN2KA_tFl3pk9dLX7BVUeO7qTx-D_1KsElQXC3cqtujTps61F2n04EWt7RDDA5yPl0clL4tz-iEqvX-8zEhZFW9qX0z_EpDIwACWI-w3iWtaPNj-pv6R68tSrEClDv-_-yL-3iz3lGC1rlM0qpLe_Gnt68p2bItYRyemtxtNaMacWsejoKItJtH01oylBmVGAxlfKGtl5hkAMJ6XFtra_E4dPPnK7ogMy1xPy35n-n_J0AErgFTLi-wA2QXLreMtwaNQWcd1Vhr-wsydFuLAEw9IE71Zr8mWjrGrvR7tdWNTF5RbN6teavp7KpFgMbzxd1F3bpm1ogVzT1PAgw_xHeO71HsNeDepjNv6wbzRW_RAQXt74DbQAz5HJTuqqMOSLLKBhj2ecuE_lQ7S26Wwkqy1sLcIy1MUwyieHWfEfjdQ9_7vNTKYSA_yMgt2oBa5XhaFInBkQDDRd4WnvIH7y2Js9p622L-awTXSOpBwg5AMypOePH4CZPKr8daEDavyvu1cdJx3nViLUsvXOVv5W3Xsr2DrwRGbQ2bpixFJzTcrvs1FVu3yNSclJkBujSqLyd_eu3wlfbAsOqrsV8WonVYJn3k50kcpR4nQR9t6WlnCTjiiCw_N_frqKKCDwnI5EBI0UJdVaN8UIYrrmi1vGIkEIiTHwgUxeqlBHRsFr36mK33EZ35YKJ6XHO0ReObq-vH3m2xTGXwpGRFNtYzUL-oKCuUQi2TtD3EUbRFmcMZ40F7QXQjmt4JWW2iiM0uLQrb8a8oVwFOGfZPrcnLHbZwlXqRl1CMz4bXAFjVMc_mB-I2fI-TnIv3f4Aid224KjrgqE3rtdbBHbBpP3KalUwKPkhinKog3GAtx6LZSnAsmR6viXAc3gUzgtxFqrBBjo-2athfRrFF9ejXjIvcF-cL-jsbOBy_A3kJTZDQ5r7fGwqvD25UC35mI7ENLepskq1BCoTVSn75Hc2rJAB7cK4Pnaqw9vVWRd84aU0g86rdIkX1wbGSV_etkU6BlJNDy3PYrOkjBh07rE0mHwoskcHpHdqd";if(!e)return null;if(Pt&&Pt.sealed===e)return Pt;let t=null;try{t=Sr.parse(JSON.parse(un(e,Xm)))}catch{t=null}return Pt={sealed:e,bundle:t},Pt}function fn(){let e=Vi();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Tr(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function eh(){let e=Vi();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>te(t.slug))),e.keys):null}function dn(e,t=!1){if(t||!e||e.length===0){let n=eh();return n?new Set(n):null}return new Set(e.map(n=>Qm.test(n)?n:te(n)))}var qi=null;function $r(e){qi=e}async function th(e,t){let n=await Ro();if(n.size>0)return ft(e,n.values(),t,n);let r=fn();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var nh=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,rh=2048,sh=2048,oh=32*1024;function ih(e,t,n){let r=nn(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 ue(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
|
|
78
78
|
`)?`
|
|
79
79
|
`:"";return tn((s?r.slice(0,-1):r).split(`
|
|
80
80
|
`)).join(`
|
|
81
|
-
`)+s}async function pn(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,c=ke(vi(e.startsWith("bash-tool: ")?e.slice(11):e)),u=o!=null&&o!==0&&!(o===1&&
|
|
81
|
+
`)+s}async function pn(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,c=ke(vi(e.startsWith("bash-tool: ")?e.slice(11):e)),u=o!=null&&o!==0&&!(o===1&&nh.test(_r(c)??c)),f=xi(a??qi??th),d=null;for(let A of Si(e))if(d=await f(A,n),d)break;!d&&s>=rh&&!br.test(e)&&(d=await f(`bash-tool: ${e}`,n));let m=At(e.startsWith("bash-tool: ")?e.slice(11):e),k=d?.slug==="git-log"&&m!=null&&/^git\s+log(?:\s|$)/.test(ke(m)),g=o==null&&(k?/^(?:fatal|error):/im.test(ue(t)):wi(t)),p=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
|
|
82
82
|
`)?t.slice(0,-1):t).split(`
|
|
83
|
-
`).length<=60,_=s<=16384&&m!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(ke(m)),w=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,$=d?.slug==="read-tool"&&s<
|
|
83
|
+
`).length<=60,_=s<=16384&&m!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(ke(m)),w=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,$=d?.slug==="read-tool"&&s<oh;if(!i&&(w||$||_||p&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:u||g,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(u||g)&&Fi.test(c)){let A=Bi(t,l.verbosity??"normal"),H=A===null?s:Buffer.byteLength(A,"utf8");if(A!==null&&H<s)return{output:A,filterId:d.slug,rawBytes:s,filteredBytes:H,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(u||g)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:u||g,...i?{droppedTail:null}:{}};let I=A=>{if(!i)return A.output!==t&&!A.droppedTail?{...A,droppedTail:t}:A;let H=A.filteredBytes>s||s>0&&A.output.length===0?t:A.output,J=!A.debugBypass&&!d?.preserve_exact?Er(H,"minimal",A.filterId??""):H,we=xr(J)===J?J:xr(H);return{...A,output:we,filteredBytes:Buffer.byteLength(we,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!u&&!g&&!Pi(e)){let A=Ni(t);if(A!==null)return I({output:A,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(A,"utf8"),debugBypass:!1,droppedTail:null})}if(u||g){let A=i?nn(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?ih(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?ue(t):t;!i&&d.transform&&d.transform_on_failure&&!d.preserve_exact&&(A=hr(d.transform,A.split(`
|
|
84
84
|
`),e).join(`
|
|
85
|
-
`)),!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(A=Oi(A)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(A)&&/^={3,} FAILURES ={3,}\r?$/m.test(A)&&(A=A.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let
|
|
85
|
+
`)),!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(A=Oi(A)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(A)&&/^={3,} FAILURES ={3,}\r?$/m.test(A)&&(A=A.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let H=!i&&!d.preserve_exact&&s>=sh?Go(A.split(`
|
|
86
86
|
`)).join(`
|
|
87
|
-
`):A,J=
|
|
88
|
-
`)?`${
|
|
89
|
-
`:
|
|
90
|
-
`),n=[];for(let r of t){if(
|
|
91
|
-
`)}function mn(e){let t=e;for(let[n,r]of
|
|
92
|
-
`,{mode:384}),
|
|
93
|
-
`).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=
|
|
87
|
+
`):A,J=H.length<A.length;return I({output:H,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(H,"utf8"),debugBypass:!0,...J?{droppedTail:t}:{}})}let N={...l,cmd:e,exitCode:o},{text:M,droppedTail:D}=gr(t,d,i?{...N,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:N),j=!i&&!d.preserve_exact?Er(M,l.verbosity,d.slug):M,B=d.on_empty&&j===d.on_empty&&!j.endsWith(`
|
|
88
|
+
`)?`${j}
|
|
89
|
+
`:j,Qe=Buffer.byteLength(B,"utf8"),xe=B.trim().length===0&&t.trim().length>0&&(o!=null&&o!==0||mr(e));return t.trim().length>0&&(Qe>=s||xe)?I({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):I({output:B,filterId:d.slug,rawBytes:s,filteredBytes:Qe,debugBypass:!1,droppedTail:D})}function ah(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function Yi(e,t=Date.now()){let n=e.lastHeartbeatOkAt;return typeof n=="number"&&t-n>ah()}var lh=[[/(\baws_(?:secret_access_key|session_token|access_key_id)\s+)\S+/gi,"$1[REDACTED]"],[/(\bsshpass\b[^;&|\n]{0,200}?\s-p\s*)\S+/g,"$1[REDACTED]"],[/(\bredis-cli\b[^;&|\n]{0,200}?\s(?:-a|--pass)\s+)\S+/g,"$1[REDACTED]"],[/(\bopenssl\b[^;&|\n]{0,200}?\s-k\s+)\S+/g,"$1[REDACTED]"],[/(\s-pass(?:in|out)?\s+(?:pass|env|file):)\S+/g,"$1[REDACTED]"],[/(https?:\/\/hooks\.slack\.com\/(?:services|workflows|triggers)\/)\S+/gi,"$1[REDACTED]"],[/(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 qe(e){let t=e;for(let[n,r]of lh)t=t.replace(n,r);return t}var ie="[tkr: secret masked]",ch=[[/(-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----)(?:\r?\n(?:[A-Za-z0-9+/=]{16,}|[A-Za-z-]+: [^\r\n]*|\r?(?=\n)))*(?:(?:\r?\n[A-Za-z0-9+/=]{1,15})?\r?\n-----END [A-Z0-9 ]*PRIVATE KEY-----)?/g,`$1${ie}`],[/(?<![A-Za-z0-9_])(gh[pousr])_[A-Za-z0-9]{36,255}(?![A-Za-z0-9])/g,`$1_${ie}`],[/(?<![A-Za-z0-9_])github_pat_[A-Za-z0-9_]{22,255}/g,`github_pat_${ie}`],[/(?<![A-Za-z0-9_])npm_[A-Za-z0-9]{36}(?![A-Za-z0-9])/g,`npm_${ie}`],[/(?<![A-Z0-9])(AKIA|ASIA)[A-Z0-9]{16}(?![A-Z0-9])/g,`$1${ie}`],[/(?<![A-Za-z0-9])(xox[abpors]-)[A-Za-z0-9-]{10,}/g,`$1${ie}`],[/(?<![A-Za-z0-9])((?:sk|rk)_live_)[A-Za-z0-9]{16,}/g,`$1${ie}`],[/(?<![A-Za-z0-9_-])(sk-(?:ant-|proj-))[A-Za-z0-9_-]{20,}/g,`$1${ie}`],[/(authorization["']?\s*[:=]\s*["']?bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,`$1${ie}`],[/(?<![A-Za-z0-9+.-])([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^\s:/@]*:)[^\s@/]+(@[^\s@/]+)/g,`$1${ie}$2`]],uh=/^-----END [A-Z0-9 ]*PRIVATE KEY-----/,fh=/^[A-Za-z0-9+/=]{16,}\r?$/;function dh(e){if(!e.includes("PRIVATE KEY-----"))return e;let t=e.split(`
|
|
90
|
+
`),n=[];for(let r of t){if(uh.test(r)){let s=n.length;for(;s>0&&fh.test(n[s-1]);)s-=1;if(s<n.length){n.length=s,n.push(`${ie}${r}`);continue}}n.push(r)}return n.join(`
|
|
91
|
+
`)}function mn(e){let t=e;for(let[n,r]of ch)t=t.replace(n,r);return dh(t)}import{join as Ar}from"node:path";import{appendFileSync as ta,chmodSync as kh,existsSync as na,mkdirSync as bh,readFileSync as kE,renameSync as bE,rmdirSync as _E,statSync as ra,unlinkSync as xE,utimesSync as wE,writeFileSync as EE}from"node:fs";import{createHash as Gw,randomUUID as ph}from"node:crypto";import{readFile as Xi,writeFile as Qi,mkdir as mh}from"node:fs/promises";async function Rr(){try{let n=(await Xi(Rt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await mh(R(),{recursive:!0,mode:448});let e=ph();try{return await Qi(Rt(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Xi(Rt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Qi(Rt(),e,{mode:384}),e}}import{readFile as hh,writeFile as qw,mkdir as Yw,chmod as Xw,rm as Qw,rename as eE,readdir as tE}from"node:fs/promises";import{join as gh}from"node:path";var yh="settings-cache.json",ea=St.parse({}),oE=St.partial().extend({filters:St.shape.filters.removeDefault().partial().optional()});async function Ye(){let e=null;try{let t=JSON.parse(await hh(gh(R(),yh),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?St.parse({...ea,...e}):ea}var _h=512*1024;function Cr(){return Ar(R(),"spool")}function xh(e){return Ar(Cr(),`${e}.jsonl`)}var wh=1024*1024;function Eh(e){return Ar(Cr(),`${e}.dropped`)}function vh(e){try{let t=Eh(e);if(na(t)&&ra(t).size>=wh)return;ta(t,".",{mode:384})}catch{return}}function hn(e,t){if(Ot())try{bh(Cr(),{recursive:!0,mode:448});let n=xh(e);if(na(n)&&ra(n).size>=_h){vh(e);return}ta(n,JSON.stringify(t)+`
|
|
92
|
+
`,{mode:384}),kh(n,384)}catch{return}}var Th=/^[a-z0-9][a-z0-9._-]*$/i,$h=/^[a-z][a-z-]+$/,Rh=/^[A-Za-z_][A-Za-z0-9_]*=/,Ah=new Set(["gh","glab","gup","hub","gist"]),Ch=/^(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,Ih=24,oa=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"]),ia=new Set([...oa,"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"]),Oh=new Set([...ia,"cd","cat","head","tail","ls","tree","find","grep","wc","nl","sort","cut","uniq","tr","diff","stat","file","du","df","ps","yq","pwd","which","echo","printf","seq","sed","awk","gawk","xargs","sleep","tar","zip","unzip","rsync","scp","ssh","curl","wget","dig","host","nslookup","ping","lsof","journalctl","iptables","ip6tables","open","md5","md5sum","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shasum","sudo","env","command","time","nodejs","bunx","pytest","mypy","dmypy","pyright","basedpyright","ruff","black","ty","gradlew","mvnw","mvnd","ninja","cmake","bazel","bazelisk","sbt","gcc","clang","gmake","swift","xcodebuild","pod","flutter","nx","turbo","next","eslint","prettier","biome","oxlint","golangci-lint","shellcheck","hadolint","yamllint","markdownlint","mdl","sqlfluff","rubocop","rspec","bundler","php","artisan","composer","phpunit","phpstan","pest","paratest","pint","mix","javap","jar","docker-compose","skopeo","oc","ecs","nomad","consul","packer","pulumi","tofu","ansible","ansible-playbook","vault","sops","vercel","netlify","wrangler","firebase","supabase","stripe","shopify","theme-check","redis-cli","liquibase","ollama","ast-grep","just","task","mise","trunk","pre-commit","jj","yadm","gt","quarto","act","jira","fail2ban-client","ctest","pio","platformio","reducer","restore","read-tool","grep-tool","glob-tool","bash-tool"]),Ph=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"])]]),Nh=new Set(["-C","-c"]);function Dh(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 ia.has(n.toLowerCase())?n:""}function Mh(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Nh.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function sa(e){let t=e.toLowerCase();return t.startsWith("git")||Ah.has(t)}function Ir(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&Rh.test(t[n]??"");)n+=1;let r=Dh(t[n]??"");if(!r||!Th.test(r)||r.length>Ih)return"";let s=Ph.get(r.toLowerCase());if(s)return Mh(r.toLowerCase(),s,t.slice(n+1));if(sa(r)||Ch.test(r)||qe(r)!==r)return"";let o=t[n+1];return o&&sa(o)?"":(o&&oa.has(r.toLowerCase())&&$h.test(o)?`${r} ${o}`:r).slice(0,64)}function Lh(e){return Oh.has((e.split(" ")[0]??"").toLowerCase())}async function aa(e){if(!e.telemetryOptIn)return;let t=Ir(e.cmd),n=t&&qe(t)===t&&Lh(t)?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";hn("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 la(e){if(_i(e.filterId)||!(await Ye()).telemetryOptIn)return;let t=Ir(e.cmd);!t||qe(t)!==t||hn("learn",{cmd:t,filterId:e.filterId==null?null:te(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}import{appendFileSync as jh,chmodSync as Hh,mkdirSync as Bh,readFileSync as ma,realpathSync as zh,renameSync as ha,rmSync as ga,statSync as ya,writeFileSync as Or}from"node:fs";import{basename as ua,dirname as ka,join as gn,resolve as Uh,sep as KE}from"node:path";var Fh={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function ca(e){return e?Fh[e]??"anthropic":"anthropic"}var Zh="stats.jsonl",Gh="stats-ledger.json",fa=2*1024*1024,Kh=3e4,Jh=3e4,Wh=new Set(["n","g","e"]),Vh=256;function ba(){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 qh(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"&&Wh.has(n.o)?{o:n.o}:{}}}catch{return null}}function Yh(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,t.f<t.r&&(n.tnc=(n.tnc??0)+1,n.trr=(n.trr??0)+t.r,n.trf=(n.trf??0)+t.f)),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function Xh(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function Qh(e,t){let n=Xh(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 eg(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>Jh){e.ox+=1;return}if(Yh(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):Qh(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=ca(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function tg(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function _a(e){return gn(ka(e),Gh)}function ng(e){let t=_a(e),n;try{n=ma(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]={...ba(),...i});return s}catch{try{ha(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function da(e,t){let n=`${e}.tmp-${process.pid}`;Or(n,t,{mode:384}),ha(n,e)}function rg(e){try{return Or(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-ya(e).mtimeMs<Kh?!1:(ga(e,{force:!0}),Or(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function sg(e,t=fa,n=fa/2){try{if(ya(e).size<=t)return}catch{return}let r=`${e}.lock`;if(rg(r))try{let s=ma(e,"utf8").split(`
|
|
93
|
+
`).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=ng(e);for(let c of s.slice(0,o)){let u=qh(c);if(!u)continue;let f=tg(u.t),d=a[f]??ba();eg(d,u),a[f]=d}let l=s.slice(o);da(e,l.length?`${l.join(`
|
|
94
94
|
`)}
|
|
95
|
-
`:""),da(_a(e),JSON.stringify({v:1,days:a}))}catch{return}finally{ga(r,{force:!0})}}function
|
|
96
|
-
`.includes(i)){if(o(),pa(t)){t=[];continue}return t}n+=i,r=!0}return o(),pa(t)?[]:t}function
|
|
97
|
-
`;try{
|
|
98
|
-
`,{mode:384}),
|
|
99
|
-
`).filter(a=>a.trim()!==""),o=s.slice(s.length-
|
|
95
|
+
`:""),da(_a(e),JSON.stringify({v:1,days:a}))}catch{return}finally{ga(r,{force:!0})}}function og(e){let t=Uh(e),n=t,r="";for(;;){try{return gn(zh(n),r)}catch{}let s=ka(n);if(s===n)return t;r=r?gn(ua(n),r):ua(n),n=s}}var ig=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),ag=new Set(["-u","-g","-n","-s","-k"]),lg=/^[a-z0-9][a-z0-9._-]*$/i,cg=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"]),xa=/^[A-Za-z_][A-Za-z0-9_]*=/;function pa(e){return e.length===0||e[0]==="cd"||e.every(t=>xa.test(t))}function ug(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(`|;&<>
|
|
96
|
+
`.includes(i)){if(o(),pa(t)){t=[];continue}return t}n+=i,r=!0}return o(),pa(t)?[]:t}function mt(e){let t=ug(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(xa.test(a)){n+=1;continue}if(ig.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=ag.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("-")&&lg.test(o)&&cg.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function fg(){return gn(R(),Zh)}function wa(e,t,n=fg(),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?og(a):"",m=d&&d.length<=Vh?`,"p":${JSON.stringify(d)}`:"",k=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",g=l.o?`,"o":${JSON.stringify(l.o)}`:"",p=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${c}${u}${f}${m}${k}${g}}
|
|
97
|
+
`;try{Bh(R(),{recursive:!0,mode:448}),jh(n,p,{mode:384}),Hh(n,384),sg(n)}catch{return}}function Ea(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 va(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 dg,mkdirSync as pg,readFileSync as mg,writeFileSync as hg,renameSync as gg,statSync as yg,readdirSync as XE,rmSync as QE,chmodSync as kg}from"node:fs";import{join as Ta}from"node:path";var bg=96*1024,_g=500,rv=168*3600*1e3,Sa=120;function $a(){return Ta(R(),"sessions")}function xg(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return Ta($a(),`${t}.jsonl`)}function wg(e){let t=qe(e.slice(0,Sa*32)).replace(/(^|\s)(-p)(?:'[^']*'|"[^"]*"|(?=\S)\S+)/g,"$1$2[REDACTED]");return mn(t).slice(0,Sa)}function Ra(e,t){try{let n=xg(e);pg($a(),{recursive:!0,mode:448});let r=JSON.stringify({t:t.t??Math.floor(Date.now()/1e3),tool:t.tool,target:wg(t.target),...t.fail?{fail:1}:{}});if(dg(n,`${r}
|
|
98
|
+
`,{mode:384}),kg(n,384),yg(n).size>bg){let s=mg(n,"utf8").split(`
|
|
99
|
+
`).filter(a=>a.trim()!==""),o=s.slice(s.length-_g),i=`${n}.tmp-${process.pid}`;hg(i,`${o.join(`
|
|
100
100
|
`)}
|
|
101
|
-
`,{mode:384}),
|
|
102
|
-
`),!0)}function F(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function
|
|
103
|
-
`)}function
|
|
104
|
-
`||o==="\r"||o==="$"&&e[s+1]==="(")return null;n+=o,r=!0}}return r&&t.push(n),t}var
|
|
105
|
-
`)}function zr(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 En(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${el}"\\s*$`,"m").test(e)}function tl(e){if(!En(e))return e;let t=e.split(/(?<=\n)/),n=1;for(;n<t.length&&!/^\s*(?:#.*)?\r?\n?$/.test(t[n]);)n++;for(;n<t.length&&/^\s*\r?\n?$/.test(t[n]);)n++;return t.slice(n).join("")}async function nl(e,t){try{await
|
|
101
|
+
`,{mode:384}),gg(i,n)}}catch{}}import{existsSync as Uv,readFileSync as ty}from"node:fs";function Eg(e){return e.charCodeAt(0)===65279?e.slice(1):e}function fe(e){return JSON.parse(Eg(e))}import{join as ny}from"node:path";import ry from"node:os";import{readFile as zg,writeFile as Ug,rename as Zg,mkdir as Ua,chmod as Gg,stat as Kg,unlink as Jg}from"node:fs/promises";import{existsSync as Za,lstatSync as Wg,readlinkSync as Vg,realpathSync as Ha}from"node:fs";import{basename as qg,dirname as xn,join as Yg,resolve as Ba}from"node:path";import{basename as vg}from"node:path";var Sg={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},Tg={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 ht(e){let t=vg(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(Sg))if(r===t)return[n];for(let[n,r]of Object.entries(Tg))if(r===t)return["hook",n];return null}function Ae(){return!1}function Nt(e,t=process.execPath){let n=Ae()?ht(e):null;return n?[process.execPath,...n]:[t,e]}import{rmSync as $g,statSync as Rg}from"node:fs";import{join as Aa}from"node:path";function yn(){return Aa(R(),"shims")}function Pr(){return Aa(R(),"fail-open")}var Ag=24*36e5;function Ca(e=Date.now()){try{if(e-Rg(Pr()).mtimeMs<Ag)return!0;$g(Pr(),{force:!0})}catch{}return!1}function kn(e){return`'${e.replace(/'/g,"'\\''")}'`}import{chmod as Pg,lstat as Oa,mkdir as Ng,readFile as Dr,rename as Dg,rm as Sv,unlink as Pa,writeFile as Mg}from"node:fs/promises";import{createHash as Na}from"node:crypto";import{basename as Lg,join as Da}from"node:path";var Fg=".tkr-bak";function Ma(){return Da(R(),"backup","config")}function Nr(e){let t=Lr(e),n=Na("sha256").update(t).digest("hex").slice(0,16),r=Lg(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return Da(Ma(),`${n}-${r}`)}function La(e){return`${Nr(e)}.written`}function Fa(e){return Na("sha256").update(e).digest("hex")}async function jg(e){try{return await Oa(e),!0}catch{return!1}}async function Mr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await Ng(Ma(),{recursive:!0,mode:448}),await Mg(n,t,{mode:384}),await Pg(n,384),await Dg(n,e),!0}catch{return await Pa(n).catch(()=>{}),!1}}async function Hg(e,t){let n=`${e}${Fg}`;try{if(!(await Oa(n)).isFile())return!1}catch{return!1}let r=!await jg(t);if(r&&!await Mr(t,await Dr(n,"utf8")))throw new Error("backup");return await Pa(n).catch(()=>{}),r}async function Bg(e,t){try{return(await Dr(La(e),"utf8")).trim()===Fa(t)}catch{return!1}}async function ja(e,t){let n=t;try{n===void 0&&(n=await Dr(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await Hg(e,Nr(e)))return!0}catch{return!1}return await Bg(e,n)?!0:Mr(Nr(e),n)}async function bn(e,t,n){return!await ja(e,n)||!await _n(e,t)?!1:(await Mr(La(e),`${Fa(t)}
|
|
102
|
+
`),!0)}function F(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function Ce(e){if(!Za(e))return{};try{let t=fe(await zg(e,"utf8"));return F(t)?t:null}catch{return null}}function Lr(e){let t=Ba(e);for(let n=0;n<32;n++){try{return Ha(t)}catch{}try{if(!Wg(t).isSymbolicLink())break;t=Ba(xn(t),Vg(t))}catch{break}}try{return Yg(Ha(xn(t)),qg(t))}catch{return t}}async function _n(e,t){let n=Lr(e),r=`${n}.tmp-${process.pid}`;try{await Ua(xn(n),{recursive:!0});let s=384;try{s=(await Kg(n)).mode&511}catch{}return process.platform!=="win32"&&Za(n)&&(s&128)===0?!1:(await Ug(r,t,{mode:s}),await Gg(r,s),await Zg(r,n),!0)}catch{try{await Jg(r)}catch{}return!1}}async function Ie(e,t){try{await Ua(xn(e),{recursive:!0})}catch{return!1}return bn(e,`${JSON.stringify(t,null,2)}
|
|
103
|
+
`)}function Xg(e){let t=[],n="",r=!1;for(let s=0;s<e.length;s++){let o=e[s];if(o==="'"){let i=e.indexOf("'",s+1);if(i<0)return null;n+=e.slice(s+1,i),r=!0,s=i}else if(o==='"'){let i=e.indexOf('"',s+1);if(i<0)return null;let a=e.slice(s+1,i);if(/`|\$\(/.test(a))return null;n+=a,r=!0,s=i}else if(o==="\\"&&e[s+1]==="'")n+="'",r=!0,s++;else if(o===" "||o===" ")r&&t.push(n),n="",r=!1;else{if(o===";"||o==="&"||o==="|"||o==="`"||o===`
|
|
104
|
+
`||o==="\r"||o==="$"&&e[s+1]==="(")return null;n+=o,r=!0}}return r&&t.push(n),t}var Qg=/^\s*\[ ! -[a-z] (?:'(?:[^']|'\\'')*'|"[^"]*") \] \|\| /,za=/^[A-Za-z_][A-Za-z0-9_]*=/;function Fr(e){return(e.split(/[\\/]/).pop()??"").toLowerCase().replace(/\.(?:exe|cmd|bat|ps1|m?js|sh)$/,"")}function ey(e){if(typeof e!="string")return null;let t=e.replace(Qg,""),n=Xg(t);if(!n)return null;let r=0;for(;r<n.length&&za.test(n[r]);)r++;if(n[r]==="exec"&&r++,r>=n.length||za.test(n[r]))return null;let s=Fr(n[r]),o=n.slice(r+1);if(s==="sh"||s==="bash"){let i=o[0]!==void 0?Fr(o[0]):"";return/^tkr-hook(?:-launch)?$/.test(i)?{program:i,args:o.slice(2),launcherMark:o[1]??""}:{program:s,args:o}}return s==="node"?{program:o[0]!==void 0?Fr(o[0]):"node",args:o.slice(1)}:{program:s,args:o}}function gt(e,t){let n=ey(e);if(!n)return!1;if(n.launcherMark!==void 0)return n.launcherMark===t;if(n.program===t)return!0;if(n.program!=="tkr")return!1;let r=ht(t);return r?.length?r.every((s,o)=>n.args[o]===s):!1}function wn(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(!F(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 sy="tkr-cursor-hook",Ga="preToolUse";function oy(){return ny(ry.homedir(),".cursor","hooks.json")}function iy(e){return F(e)&>(e.command,sy)}function ay(e){let t=F(e.hooks)?e.hooks:{},n=Array.isArray(t[Ga])?t[Ga]:[];return{hooks:t,entries:n}}function Ka(){try{let e=fe(ty(oy(),"utf8"));return ay(e).entries.some(iy)}catch{return!1}}import{existsSync as qv,readFileSync as ly}from"node:fs";import{join as cy}from"node:path";import uy from"node:os";var fy="tkr-gemini-hook",Ja="BeforeTool";function dy(){return cy(process.env.GEMINI_CLI_HOME||uy.homedir(),".gemini","settings.json")}function py(e){return F(e)&>(e.command,fy)}function my(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(py)}function hy(e){let t=F(e.hooks)?e.hooks:{},n=Array.isArray(t[Ja])?t[Ja]:[];return{hooks:t,groups:n}}function Wa(){try{let e=fe(ly(dy(),"utf8"));return hy(e).groups.some(t=>my(t)!=null)}catch{return!1}}import{dirname as SS,join as re}from"node:path";import Ey from"node:os";import{existsSync as sS,accessSync as oS,constants as iS,readFileSync as gy}from"node:fs";var yy='"rewrite", "--host"';function ky(e){return e.includes(yy)}function Va(e){try{return ky(gy(e,"utf8"))}catch{return!1}}import{readFile as Ya,mkdir as by}from"node:fs/promises";import{existsSync as Br,readFileSync as Xa}from"node:fs";import{dirname as _y,join as Hr}from"node:path";import Qa from"node:os";var el="tokmizer-rewrite",Dt="tokmizer-rewrite";function Mt(){return Hr(process.env.VIBE_HOME||Hr(Qa.homedir(),".vibe"),"hooks.toml")}function qa(e){return JSON.stringify(e)}function xy(e){return["[[hooks]]",`name = ${qa(el)}`,'type = "pre_tool"','match = "bash"',`command = ${qa(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
|
|
105
|
+
`)}function zr(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 En(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${el}"\\s*$`,"m").test(e)}function tl(e){if(!En(e))return e;let t=e.split(/(?<=\n)/),n=1;for(;n<t.length&&!/^\s*(?:#.*)?\r?\n?$/.test(t[n]);)n++;for(;n<t.length&&/^\s*\r?\n?$/.test(t[n]);)n++;return t.slice(n).join("")}async function nl(e,t){try{await by(_y(e),{recursive:!0})}catch{return!1}return bn(e,t)}function rl(){try{return zr(Xa(Mt(),"utf8")).some(En)}catch{return!1}}async function sl(e){let t=Mt(),n="";try{Br(t)&&(n=await Ya(t,"utf8"))}catch{return"error"}let r=xy(e),s=zr(n),o=s.filter(En);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.map(tl).join("").trimEnd(),a=i?`${i}
|
|
106
106
|
|
|
107
107
|
${r}`:r;return await nl(t,a)?o.length?"updated":"added":"error"}async function ol(){let e=Mt();if(!Br(e))return"absent";let t;try{t=await Ya(e,"utf8")}catch{return"error"}let n=zr(t);if(!n.some(En))return"absent";let r=n.map(tl).join("").trimEnd(),s=r?`${r}
|
|
108
|
-
`:"";return await nl(e,s)?"removed":"error"}function Lt(){return Hr(Qa.homedir(),".gemini","config","hooks.json")}function ky(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function il(){try{let e=fe(Xa(Lt(),"utf8"));return F(e)&&F(e[Dt])}catch{return!1}}async function al(e){let t=Lt(),n=await Ae(t);if(!n)return"error";let r=ky(e),s=n[Dt];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Dt]=r,await Ce(t,n)?s===void 0?"added":"updated":"error")}async function ll(){let e=Lt();if(!Br(e))return"absent";let t=await Ae(e);return t?Dt in t?(delete t[Dt],await Ce(e,t)?"removed":"error"):"absent":"error"}var Ft=()=>by.homedir(),Ur=()=>process.env.XDG_CONFIG_HOME||re(Ft(),".config"),cl=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:re(Ur(),"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:re(Ur(),"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:re(Ur(),"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:Mt,installed:rl,ensure:sl,remove:ol,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Lt,installed:il,ensure:al,remove:ll,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=re(Ft(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:re(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:re(process.env.PI_CODING_AGENT_DIR||re(Ft(),".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:re(Ft(),".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=re(process.env.HERMES_HOME||re(Ft(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:re(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function ul(e){return e.kind==="hook"?e.installed():Va(e.files()[0].target)}import{existsSync as Jr,readFileSync as Sy}from"node:fs";import{join as Z}from"node:path";import Ty from"node:os";import{existsSync as _y,readFileSync as xy}from"node:fs";function vn(e,t){return F(e)&&ht(e.command,t)}function fl(e){return e.path??(e.nested?["hooks"]:[])}function dl(e,t){let n=e;for(let r of fl(t))F(n[r])||(n[r]={}),n=n[r];return n}function pl(e,t){let n=e;for(let s of fl(t))n=F(n)?n[s]:void 0;if(!F(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function wy(e){return F(e)&&Array.isArray(e.hooks)?e.hooks:[]}function ml(e,t){return(t.matcher===void 0?e:e.flatMap(wy)).filter(r=>vn(r,t.mark))}function hl(e,t){return ml(pl(e,t),t).length>0}function Zr(e,t){try{let n=fe(xy(e,"utf8"));return F(n)&&hl(n,t)}catch{return!1}}function Ey(e,t,n){let r=dl(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=ml(s,t)[0],i=t.entry(n);if(o){let a=wn(s,c=>vn(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 vy(e,t){if(!hl(e,t))return!1;let n=dl(e,t),r=pl(e,t),s=t.matcher===void 0?r.filter(o=>!vn(o,t.mark)):r.map(o=>F(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!vn(i,t.mark))}:o).filter(o=>!F(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function Gr(e,t,n){let r=await Ae(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=Ey(r,t,n);return s==="present"||await Ce(e,r)?s:"error"}async function Sn(e,t){if(!_y(e))return"absent";let n=await Ae(e);return n?vy(n,t)?await Ce(e,n)?"removed":"error":"absent":"error"}function de(){return Ty.homedir()}function bl(e){return e.version===void 0&&(e.version=1),e.version===1}function $y(e,t,n){return Promise.all(e.map(r=>Gr(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function Ry(e,t){return Promise.all(e.map(n=>Sn(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Xe(e,t){return{...e,installed:()=>e.files().some(n=>Zr(n,t)),ensure:n=>$y(e.files(),t,n),remove:()=>Ry(e.files(),t)}}var Ay={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:bl};function Cy(){return Z(process.env.COPILOT_HOME||Z(de(),".copilot"),"hooks","tokmizer.json")}var Iy={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:bl};function Oy(){let e=[Z(de(),".trae","hooks.json")];return Jr(Z(de(),".trae-cn"))&&e.push(Z(de(),".trae-cn","hooks.json")),e}var Py={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function Ny(){return Z(process.env.QWEN_HOME||Z(de(),".qwen"),"settings.json")}var Dy={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function My(){return Z(process.env.XDG_CONFIG_HOME||Z(de(),".config"),"crush","crush.json")}var Ly={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function Fy(){return Z(de(),".junie","config.json")}function jy(e){return e.hooks===void 0&&(e.hooks={}),F(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||F(e.hooks.events)):!1}var Hy={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:jy};function By(){return Z(de(),".zcode","cli","config.json")}var zy={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function Uy(){return Z(de(),".grok","hooks","tokmizer.json")}var Zy="tkr-droid-hook",Wr={mark:Zy,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},Gy={...Wr,nested:!0};function Kr(){return Z(de(),".factory")}function Tn(){return[{file:Z(Kr(),"hooks.json"),spec:Wr},{file:Z(Kr(),"hooks","hooks.json"),spec:Wr},{file:Z(Kr(),"settings.json"),spec:Gy}]}function gl(e){try{let t=JSON.parse(Sy(e,"utf8"));return F(t)?t:null}catch{return null}}function yl(e,t){let n=t?e?.hooks:e;return F(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function kl(){let[e,t,n]=Tn(),r=Jr(e.file)?e:Jr(t.file)?t:null;return r&&yl(gl(r.file),!1)?r:yl(gl(n.file),!0)?n:r??e}var Ky={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[kl().file],installed:()=>Tn().some(e=>Zr(e.file,e.spec)),ensure:async e=>{let t=kl(),n=await Gr(t.file,t.spec,e);return n==="error"||await Promise.all(Tn().filter(r=>r.file!==t.file).map(r=>Sn(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Tn().map(t=>Sn(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},_l=[Xe({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:()=>[Cy()]},Ay),Ky,Xe({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Oy},Iy),Xe({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Ny()]},Py),Xe({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[My()]},Dy),Xe({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[Fy()]},Ly),Xe({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[By()]},Hy),Xe({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:()=>[Uy()]},zy)];var wl=[{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:[]}],Jy=[...wl.map(e=>e.host),"shell"],Wy=new Set(["claude-code","codex"]),Vy={cursor:{installed:Ka,setup:"tkr setup-cursor"},"gemini-cli":{installed:Wa,setup:"tkr setup-gemini"},...Object.fromEntries(cl.map(e=>[e.host,{installed:()=>ul(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(_l.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function xl(e){return Wy.has(e)||(Vy[e]?.installed()??!1)}function El(e){return null}function vl(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&&Jy.includes(s)){let o=s;return{host:o,source:"env",os:n,arch:r,shimRecommended:!xl(o)}}for(let o of wl)if(o.vars.some(i=>e[i]))return{host:o.host,source:"env",os:n,arch:r,shimRecommended:!xl(o.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}import{existsSync as WS,realpathSync as qy}from"node:fs";import{basename as qS,delimiter as Sl,join as YS,dirname as XS}from"node:path";function Tl(e){try{return qy(e)}catch{return e}}function $l(){let e=yn(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",s=Tl(e),o=r.split(Sl).filter(i=>i&&i!==e&&Tl(i)!==s);return t[n]=o.join(Sl),n==="Path"&&(t.PATH=t[n]),t}import{createConnection as u0}from"node:net";import{spawn as f0}from"node:child_process";import{existsSync as Nl,openSync as Xr,closeSync as Ol,unlinkSync as es,writeFileSync as ts,mkdirSync as ns,readFileSync as Dl,appendFileSync as d0,rmSync as p0,statSync as Ml}from"node:fs";import{dirname as m0,join as rs}from"node:path";import{fileURLToPath as h0}from"node:url";var Yy=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()}),Xy=y.object({id:y.string().min(1).max(64),op:y.literal("ping")}),Qy=y.object({id:y.string().min(1).max(64),op:y.literal("shutdown"),installId:y.string().min(1).max(64)}),e0=y.object({id:y.string().min(1).max(64),op:y.literal("reload"),installId:y.string().min(1).max(64).optional()}),cT=y.discriminatedUnion("op",[Yy,Xy,Qy,e0]),uT=y.object({id:y.string(),ok:y.literal(!0),data:y.unknown()}),fT=y.object({id:y.string(),ok:y.literal(!1),err:y.string(),retryAfterMs:y.number().int().nonnegative().optional()}),Rl=y.object({filter:$e.nullable(),cacheHit:y.boolean().optional()}),$n=`
|
|
109
|
-
`,
|
|
110
|
-
`,{mode:384})}catch{}}function
|
|
111
|
-
`);function ql(){try{let e=JSON.parse(
|
|
108
|
+
`:"";return await nl(e,s)?"removed":"error"}function Lt(){return Hr(Qa.homedir(),".gemini","config","hooks.json")}function wy(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function il(){try{let e=fe(Xa(Lt(),"utf8"));return F(e)&&F(e[Dt])}catch{return!1}}async function al(e){let t=Lt(),n=await Ce(t);if(!n)return"error";let r=wy(e),s=n[Dt];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Dt]=r,await Ie(t,n)?s===void 0?"added":"updated":"error")}async function ll(){let e=Lt();if(!Br(e))return"absent";let t=await Ce(e);return t?Dt in t?(delete t[Dt],await Ie(e,t)?"removed":"error"):"absent":"error"}var Ft=()=>Ey.homedir(),Ur=()=>process.env.XDG_CONFIG_HOME||re(Ft(),".config"),cl=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:re(Ur(),"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:re(Ur(),"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:re(Ur(),"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:Mt,installed:rl,ensure:sl,remove:ol,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Lt,installed:il,ensure:al,remove:ll,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=re(Ft(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:re(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:re(process.env.PI_CODING_AGENT_DIR||re(Ft(),".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:re(Ft(),".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=re(process.env.HERMES_HOME||re(Ft(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:re(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function ul(e){return e.kind==="hook"?e.installed():Va(e.files()[0].target)}import{existsSync as Jr,readFileSync as Ay}from"node:fs";import{join as G}from"node:path";import Cy from"node:os";import{existsSync as vy,readFileSync as Sy}from"node:fs";function vn(e,t){return F(e)&>(e.command,t)}function fl(e){return e.path??(e.nested?["hooks"]:[])}function dl(e,t){let n=e;for(let r of fl(t))F(n[r])||(n[r]={}),n=n[r];return n}function pl(e,t){let n=e;for(let s of fl(t))n=F(n)?n[s]:void 0;if(!F(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function Ty(e){return F(e)&&Array.isArray(e.hooks)?e.hooks:[]}function ml(e,t){return(t.matcher===void 0?e:e.flatMap(Ty)).filter(r=>vn(r,t.mark))}function hl(e,t){return ml(pl(e,t),t).length>0}function Zr(e,t){try{let n=fe(Sy(e,"utf8"));return F(n)&&hl(n,t)}catch{return!1}}function $y(e,t,n){let r=dl(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=ml(s,t)[0],i=t.entry(n);if(o){let a=wn(s,c=>vn(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 Ry(e,t){if(!hl(e,t))return!1;let n=dl(e,t),r=pl(e,t),s=t.matcher===void 0?r.filter(o=>!vn(o,t.mark)):r.map(o=>F(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!vn(i,t.mark))}:o).filter(o=>!F(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function Gr(e,t,n){let r=await Ce(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=$y(r,t,n);return s==="present"||await Ie(e,r)?s:"error"}async function Sn(e,t){if(!vy(e))return"absent";let n=await Ce(e);return n?Ry(n,t)?await Ie(e,n)?"removed":"error":"absent":"error"}function de(){return Cy.homedir()}function bl(e){return e.version===void 0&&(e.version=1),e.version===1}function Iy(e,t,n){return Promise.all(e.map(r=>Gr(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function Oy(e,t){return Promise.all(e.map(n=>Sn(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Xe(e,t){return{...e,installed:()=>e.files().some(n=>Zr(n,t)),ensure:n=>Iy(e.files(),t,n),remove:()=>Oy(e.files(),t)}}var Py={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:bl};function Ny(){return G(process.env.COPILOT_HOME||G(de(),".copilot"),"hooks","tokmizer.json")}var Dy={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:bl};function My(){let e=[G(de(),".trae","hooks.json")];return Jr(G(de(),".trae-cn"))&&e.push(G(de(),".trae-cn","hooks.json")),e}var Ly={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function Fy(){return G(process.env.QWEN_HOME||G(de(),".qwen"),"settings.json")}var jy={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function Hy(){return G(process.env.XDG_CONFIG_HOME||G(de(),".config"),"crush","crush.json")}var By={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function zy(){return G(de(),".junie","config.json")}function Uy(e){return e.hooks===void 0&&(e.hooks={}),F(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||F(e.hooks.events)):!1}var Zy={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:Uy};function Gy(){return G(de(),".zcode","cli","config.json")}var Ky={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function Jy(){return G(de(),".grok","hooks","tokmizer.json")}var Wy="tkr-droid-hook",Wr={mark:Wy,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},Vy={...Wr,nested:!0};function Kr(){return G(de(),".factory")}function Tn(){return[{file:G(Kr(),"hooks.json"),spec:Wr},{file:G(Kr(),"hooks","hooks.json"),spec:Wr},{file:G(Kr(),"settings.json"),spec:Vy}]}function gl(e){try{let t=JSON.parse(Ay(e,"utf8"));return F(t)?t:null}catch{return null}}function yl(e,t){let n=t?e?.hooks:e;return F(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function kl(){let[e,t,n]=Tn(),r=Jr(e.file)?e:Jr(t.file)?t:null;return r&&yl(gl(r.file),!1)?r:yl(gl(n.file),!0)?n:r??e}var qy={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[kl().file],installed:()=>Tn().some(e=>Zr(e.file,e.spec)),ensure:async e=>{let t=kl(),n=await Gr(t.file,t.spec,e);return n==="error"||await Promise.all(Tn().filter(r=>r.file!==t.file).map(r=>Sn(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Tn().map(t=>Sn(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},_l=[Xe({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:()=>[Ny()]},Py),qy,Xe({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:My},Dy),Xe({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Fy()]},Ly),Xe({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[Hy()]},jy),Xe({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[zy()]},By),Xe({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[Gy()]},Zy),Xe({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:()=>[Jy()]},Ky)];var wl=[{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:[]}],Yy=[...wl.map(e=>e.host),"shell"],Xy=new Set(["claude-code","codex"]),Qy={cursor:{installed:Ka,setup:"tkr setup-cursor"},"gemini-cli":{installed:Wa,setup:"tkr setup-gemini"},...Object.fromEntries(cl.map(e=>[e.host,{installed:()=>ul(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(_l.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function xl(e){return Xy.has(e)||(Qy[e]?.installed()??!1)}function El(e){return null}function vl(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&&Yy.includes(s)){let o=s;return{host:o,source:"env",os:n,arch:r,shimRecommended:!xl(o)}}for(let o of wl)if(o.vars.some(i=>e[i]))return{host:o.host,source:"env",os:n,arch:r,shimRecommended:!xl(o.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}import{existsSync as XS,realpathSync as e0}from"node:fs";import{basename as eT,delimiter as Sl,join as tT,dirname as nT}from"node:path";function Tl(e){try{return e0(e)}catch{return e}}function $l(){let e=yn(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",s=Tl(e),o=r.split(Sl).filter(i=>i&&i!==e&&Tl(i)!==s);return t[n]=o.join(Sl),n==="Path"&&(t.PATH=t[n]),t}import{createConnection as m0}from"node:net";import{spawn as h0}from"node:child_process";import{existsSync as Nl,openSync as Xr,closeSync as Ol,unlinkSync as es,writeFileSync as ts,mkdirSync as ns,readFileSync as Dl,appendFileSync as g0,rmSync as y0,statSync as Ml}from"node:fs";import{dirname as k0,join as rs}from"node:path";import{fileURLToPath as b0}from"node:url";var t0=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()}),n0=y.object({id:y.string().min(1).max(64),op:y.literal("ping")}),r0=y.object({id:y.string().min(1).max(64),op:y.literal("shutdown"),installId:y.string().min(1).max(64)}),s0=y.object({id:y.string().min(1).max(64),op:y.literal("reload"),installId:y.string().min(1).max(64).optional()}),pT=y.discriminatedUnion("op",[t0,n0,r0,s0]),mT=y.object({id:y.string(),ok:y.literal(!0),data:y.unknown()}),hT=y.object({id:y.string(),ok:y.literal(!1),err:y.string(),retryAfterMs:y.number().int().nonnegative().optional()}),Rl=y.object({filter:Re.nullable(),cacheHit:y.boolean().optional()}),$n=`
|
|
109
|
+
`,gT=64*1024;function Vr(e){return JSON.stringify(e)+$n}function*Al(e){let t=0;for(;;){let n=e.indexOf($n,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function jt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import o0 from"node:os";import{join as Ht}from"node:path";import{existsSync as i0,statSync as a0,lstatSync as Cl,unlinkSync as l0,mkdirSync as c0,chmodSync as u0}from"node:fs";import{createHash as f0}from"node:crypto";var qr=100;function d0(e){let t=f0("sha256").update(R()).digest("hex").slice(0,8),n=Ht(o0.tmpdir(),`tkr-${e}-${t}`),r=Ht(n,"d.sock");if(Buffer.byteLength(r)>qr)throw new Error("Temporary directory path is too long for IPC");return Il(n,e),r}function p0(e,t){try{let n=Cl(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function Il(e,t){c0(e,{recursive:!0,mode:448});let n=Cl(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");u0(e,448)}function Bt(){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&&p0(t,e)){let s=Ht(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=qr)return{path:s,isPipe:!1}}let n=Ht(R(),"run"),r=Ht(n,"daemon.sock");return Buffer.byteLength(r)>qr?{path:d0(e),isPipe:!1}:(Il(n,e),{path:r,isPipe:!1})}async function Yr(){let{path:e,isPipe:t}=Bt();if(t||!i0(e))return;try{if(!a0(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{l0(e)}catch{}}var ET=5*6e4;var Ll=500,_0=3e3,Pl=1,x0=6e4,w0=256*1024;function ss(){return rs(R(),"daemon.spawn.fail")}function os(){return rs(R(),"daemon.log")}function E0(){try{let e=Number(Dl(ss(),"utf8"));return Number.isFinite(e)&&Date.now()-e<x0}catch{return!1}}function v0(e){try{ns(R(),{recursive:!0,mode:448});let t=os();try{Ml(t).size>w0&&es(t)}catch{}g0(t,`${new Date().toISOString()} ${e}
|
|
110
|
+
`,{mode:384})}catch{}}function S0(e){try{ns(R(),{recursive:!0,mode:448}),ts(ss(),String(Date.now()),{mode:384})}catch{}v0(`spawn failed: ${e.message}`)}function T0(){try{y0(ss(),{force:!0})}catch{}}async function Rn(e,t){return new Promise((n,r)=>{let s=m0(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 $0(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:b0(new URL("../bin/tkr-daemon.js",import.meta.url))}async function Qr(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 Rn(e,75)).destroy(),!0}catch{}else if(Nl(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}function R0(e,t=Date.now()){try{if(t-Ml(e).mtimeMs>1e4)return!0;let r=Number(Dl(e,"utf8").trim());if(!Number.isInteger(r)||r<=0)return!1;try{return process.kill(r,0),!1}catch(s){return s.code==="ESRCH"}}catch{return!1}}async function A0(e){let t=$0();if(!Ae()&&!Nl(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Bt(),r=process.platform==="win32"?R():k0(n);try{ns(r,{recursive:!0,mode:448})}catch{}let s=rs(r,"daemon.spawn.lock"),o=null;try{o=Xr(s,"wx"),ts(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(!R0(s)&&await Qr(n,5e3))return;try{es(s)}catch{}try{o=Xr(s,"wx"),ts(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await Qr(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Xr(os(),"a",384)}catch{}let[a,...l]=Nt(t);if(h0(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{Ol(i)}catch{}if(!await Qr(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{Ol(o)}catch{}try{es(s)}catch{}}}}async function C0(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Bt(),n=await Rr();try{let r=await Rn(t,Ll);r.write(Vr({id:jt(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function I0(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await Rn(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function is(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Bt(),n=await Rr(),r=null,s=0,o=!1;for(;s<=Pl;)try{r=await Rn(t,Ll),T0();break}catch{if(s+=1,s>Pl)throw new Error(`tkr-daemon unreachable at ${t}`);if(E0())throw new Error(`tkr-daemon spawn on cooldown (see ${os()})`);await Yr();try{await A0(n),o=!0}catch(u){throw S0(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]===$n&&(f=m);if(f<0)return;let d=[];for(let m of Al(a.slice(0,f+1)))d.push(m);a=a.slice(f+1);for(let m of d)if(m)try{let k=JSON.parse(m),g=i.get(k.id);if(!g)continue;clearTimeout(g.timer),i.delete(k.id),g.resolve(k)}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})`))},_0);i.set(u.id,{resolve:f,reject:d,timer:m}),r.write(Vr(u))})}let c={filter:async(u,f,d)=>{let m=await l({id:jt(),op:"filter",cmd:u.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!m.ok)throw new Error(m.err);let k=Rl.safeParse(m.data);return k.success?k.data.filter:null},ping:async()=>{let u=await l({id:jt(),op:"ping"});if(!u.ok)throw new Error(u.err);return u.data},reload:async()=>{let u=await l({id:jt(),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&&zi(It,f.version))throw new Error(`newer daemon ${f.version} already running`);u=f.version!==It}catch(f){throw c.close(),f}if(u){try{await C0(e.socketPath?{socketPath:e.socketPath}:{})}catch{}c.close();let f=await I0(t,2e3);if(await Yr(),!f)throw new Error("stale daemon still running after shutdown request");return is({...e,skipVersionCheck:!0})}}return c}var yt=null,zt=null;async function O0(){if(yt)return yt;if(zt)return zt;let e=is().then(t=>{if(zt===e)return yt=t,t;try{t.close()}catch{}return null}).catch(()=>null);return zt=e,e}var as=null,ls=!1;async function P0(){return ls||(ls=!0,as=await Wi()??fn()),as}async function Fl(e,t,n){let r=await P0();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(te(s.slug))?null:s}function N0(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function jl(){$r(async(e,t)=>{let r=t??dn(void 0),s=await O0();if(!s)return Fl(e,"pro",r);try{let o=await s.filter(e,"pro",r?[...r]:void 0);return!o||r&&!r.has(te(o.slug))?null:N0(o)}catch{return Fl(e,"pro",r)}})}function Hl(){if($r(null),yt)try{yt.close()}catch{}yt=null,zt=null,as=null,ls=!1}import{chmod as Jl,mkdir as L0,readFile as qT,writeFile as Bl,stat as YT,readdir as XT,rm as zl,rename as F0}from"node:fs/promises";import{existsSync as j0,readFileSync as H0,realpathSync as B0}from"node:fs";import{createHash as z0}from"node:crypto";import{dirname as Ul,join as U0,resolve as Zl}from"node:path";var An="[tkr: partial view; folded or omitted lines are not file text. Read with offset/limit for the exact lines before Edit or Write]";import{readFileSync as D0}from"node:fs";import{join as M0}from"node:path";function be(){try{return D0(M0(R(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var Wl=1440*60*1e3,Z0=30*Wl,G0=200*1024*1024,Vl=8*1024*1024,K0=/^[0-9a-f]{8,64}$/i;var J0=".meta";var i$=["usage: tkr restore <hash> [--lines a:b] [--grep pattern]"," tkr restore --list [--all-projects]"," tkr restore --grep <pattern> [--all-projects]",""].join(`
|
|
111
|
+
`);function ql(){try{let e=JSON.parse(H0(pi(),"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 W0(){let e=ql().maxAgeDays;return e?e*Wl:Z0}function Cn(e,t,n=process.env){let r=Number(n[e]);return Number.isFinite(r)&&r>0?r:t}function Yl(e=process.env){return{maxAgeMs:Cn("TOKMIZER_CCR_MAX_AGE_MS",W0(),e),maxBytes:Cn("TOKMIZER_CCR_DIR_CAP_BYTES",G0,e),entryMaxBytes:Cn("TOKMIZER_CCR_ENTRY_MAX_BYTES",Vl,e)}}function V0(e){return`${kr(e)}${J0}`}async function Gl(e){await L0(e,{recursive:!0,mode:448});try{await Jl(e,448)}catch{}}function q0(e=process.cwd()){let t;try{t=B0(Zl(e))}catch{t=Zl(e)}for(let n=t;;n=Ul(n)){if(j0(U0(n,".git")))return n;if(Ul(n)===n)return t}}function Y0(e){return e===""?[]:(e.endsWith(`
|
|
112
112
|
`)?e.slice(0,-1):e).split(`
|
|
113
|
-
`)}async function
|
|
114
|
-
`).map(o=>o.replace(/\r$/,"")).filter(o=>Kl.test(o)),s=o=>{if(r==null)return!1;let i=
|
|
113
|
+
`)}async function X0(e,t,n=process.env,r={}){if(be()||!K0.test(e))return!1;t=mn(t);let s=Buffer.byteLength(t,"utf8");if(s>Cn("TOKMIZER_CCR_ENTRY_MAX_BYTES",Vl,n))return!1;let o=kr(e),i=`${o}.tmp-${process.pid}-${process.hrtime.bigint()}`;try{if(await Gl(R()),await Gl(yr()),be())return!1;if(await Bl(i,t,{mode:384}),await Jl(i,384),be())return await zl(i,{force:!0}),!1;await F0(i,o)}catch{try{await zl(i)}catch{}return!1}let a={at:Date.now(),bytes:s,lines:Y0(t).length,partial:r.partial===!0,...r.label?{label:r.label.slice(0,40)}:{},project:q0(r.cwd)};try{await Bl(V0(e),JSON.stringify(a),{mode:384})}catch{}return!0}function Xl(e){let t=e.TOKMIZER_CCR_DISABLED;return t==="1"||t==="true"||be()||ql().disabled===!0}var Q0=/^(?=\[tkr |\[tokmizer\])/gm,Kl=/^\[(?:tkr:|same output as )/,ek=[e=>e===An,e=>/^\[tkr: previous log line repeated \d+ additional times\]$/.test(e),e=>/^\[same output as `.*` earlier in this session, unchanged, ~\d+ tokens\]$/.test(e)];function _e(e,t){let n=e.replace(Q0,"> ");if(!n.includes("[tkr:")&&!n.includes("[same output as "))return n;let r=t==null?null:t.split(`
|
|
114
|
+
`).map(o=>o.replace(/\r$/,"")).filter(o=>Kl.test(o)),s=o=>{if(r==null)return!1;let i=ek.find(a=>a(o));return i!=null&&!r.some(i)};return n.split(`
|
|
115
115
|
`).map(o=>Kl.test(o)&&!s(o)?`> ${o}`:o).join(`
|
|
116
116
|
`)}function Ql(e,t,n){let r=Yl(n).entryMaxBytes,s=e===""||e.endsWith(`
|
|
117
117
|
`)?"":`
|
|
118
118
|
`,o=i=>`${Math.ceil(i/(1024*1024))} MB`;return`${s}[tkr: full output too large to keep (${o(t)} > ${o(r)} limit), no restore available]
|
|
119
|
-
`}function
|
|
119
|
+
`}function tk(e){return`${e===""||e.endsWith(`
|
|
120
120
|
`)?"":`
|
|
121
121
|
`}[tkr: the full output could not be saved, no restore available]
|
|
122
|
-
`}function ec(e,t){let n=Buffer.byteLength(e,"utf8");return n>Yl(t).entryMaxBytes?n:null}async function cs(e,t,n,r){let s=
|
|
122
|
+
`}function ec(e,t){let n=Buffer.byteLength(e,"utf8");return n>Yl(t).entryMaxBytes?n:null}async function cs(e,t,n,r){let s=z0("sha256").update(e).digest("hex").slice(0,16);return await X0(s,e,r,{partial:t,label:n})?s:null}function tc(e,t){return`${e===""||e.endsWith(`
|
|
123
123
|
`)?"":`
|
|
124
124
|
`}[tkr restore ${t}]
|
|
125
|
-
`}async function In(e,t,n=process.env,r={}){if(t=
|
|
126
|
-
\u2026 (output truncated at ${
|
|
127
|
-
\u2026 (stderr truncated at ${
|
|
125
|
+
`}async function In(e,t,n=process.env,r={}){if(t=_e(t,r.raw),Xl(n)||!e)return t;let s=a=>tc(t,a);if(Buffer.byteLength(e,"utf8")<=Buffer.byteLength(s("0".repeat(16)),"utf8"))return t;if(r.raw){let a=await cs(r.raw,!1,r.label,n);if(a)return`${t}${s(a)}`}let o=await cs(e,!0,r.label,n);if(o)return`${t}${s(o)}`;if(be())return t;let i=ec(r.raw||e,n);return i?`${t}${Ql(t,i,n)}`:r.raw??`${t}${tk(t)}`}async function nc(e,t,n=process.env,r={}){if(t=_e(t,e),Xl(n)||!e)return t;let s=await cs(e,!1,r.label,n);if(s)return`${t}${tc(t,s)}`;if(be())return t;let o=ec(e,n);return o?`${t}${Ql(t,o,n)}`:e}var kt=10*1024*1024,sc=1024,ck=6e4;function oc(e,t){return e.length<t.length&&Buffer.byteLength(e,"utf8")<Buffer.byteLength(t,"utf8")}var uk=200,fk=1e3,ac="TOKMIZER_EXEC_CAPTURING";function lc(e=process.env){return e[ac]==="1"}function ic(e,t){let n=new lk("utf8"),r=n.write(Buffer.concat(e));return t?r:r+n.end()}function dk(){try{if(!Ot()||!rc(Gi()))return;let e=process.env.TOKMIZER_TKR_BIN||ak(new URL("../bin/tkr.js",import.meta.url));if(!Ae()&&!rc(e))return;let t=ok(R(),"enroll-kick");try{let o=Number(nk(t,"utf8"));if(Number.isFinite(o)&&Date.now()-o<ck)return}catch{}sk(R(),{recursive:!0,mode:448}),rk(t,String(Date.now()));let[n,...r]=Nt(e);(0,us.default)(n,[...r,"heartbeat"],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}}function pk(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 mk=pk(process.env),hk={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 On(e){return ik.signals[e]??hk[e]??15}var gk=/^[A-Za-z0-9_@%+=:,./-]+$/;function yk(e){return e.map(t=>gk.test(t)?t:kn(t)).join(" ")}function kk(e){let t=At(e);if(t===null)return!1;let[n,...r]=ke(t).split(/\s+/);return/^(?:cat|head|nl)(?:\.exe)?$/i.test(n?.split(/[\\/]/).pop()??"")&&r.some(s=>s!==""&&!s.startsWith("-"))}async function cc(e){let[t,...n]=e;if(!t)throw new Error("tkr-exec: missing command");let r=be(),s={...$l(),[ac]:"1"},o=(0,us.default)(Gt(t,s),n,{stdio:["inherit","pipe","pipe"],env:s,windowsHide:!0}),i=!1;o.on("spawn",()=>{i=!0});let a=D=>{try{o.kill(D)}catch{}},l=()=>a("SIGINT"),c=()=>a("SIGTERM");process.on("SIGINT",l),process.on("SIGTERM",c);let u=[],f=[],d=0,m=0,k=!1,g=!1;o.stdout?.on("data",D=>{if(d>=kt){k=!0;return}let j=kt-d,B=D.length>j?D.subarray(0,j):D;u.push(B),d+=B.length,D.length>j&&(k=!0)}),o.stderr?.on("data",D=>{if(m>=kt){g=!0;return}let j=kt-m,B=D.length>j?D.subarray(0,j):D;f.push(B),m+=B.length,D.length>j&&(g=!0)});let p,_,w,$,I;try{I=await new Promise((D,j)=>{o.on("error",H=>{p&&clearTimeout(p),i?D(1):j(H)});let B=null,Qe=()=>{B!=null&&(p&&clearTimeout(p),w&&clearTimeout(w),$&&clearTimeout($),D(B))},xe=()=>{o.stdout?.destroy(),o.stderr?.destroy(),Qe()},A=()=>{w&&clearTimeout(w),w=setTimeout(xe,uk)};o.on("exit",(H,J)=>{p&&clearTimeout(p),_&&clearTimeout(_),B=H??(J?128+On(J):0),A(),$=setTimeout(xe,fk),o.stdout?.on("data",A),o.stderr?.on("data",A)}),o.on("close",(H,J)=>{B==null&&(B=H??(J?128+On(J):0)),Qe()}),p=setTimeout(()=>{o.kill("SIGTERM"),_=setTimeout(()=>o.kill("SIGKILL"),2e3)},mk),p.unref?.()})}finally{p&&clearTimeout(p),_&&clearTimeout(_),w&&clearTimeout(w),$&&clearTimeout($),process.off("SIGINT",l),process.off("SIGTERM",c)}let N=ic(u,k),M=ic(f,g);return bk({argv:e,stdout:N,stderr:M,exitCode:I,truncated:k,stderrTruncated:g},{yolo:r,env:process.env,onMissingState:dk})}async function bk({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?`
|
|
126
|
+
\u2026 (output truncated at ${kt/1048576}MB)`:"",m=o?`
|
|
127
|
+
\u2026 (stderr truncated at ${kt/(1024*1024)}MB)`:"",k=()=>{let g=t+d,p=Buffer.byteLength(g,"utf8");return{stdout:g,stderr:n+m,code:r??0,filterId:null,rawBytes:p,filteredBytes:p,truncated:s}};try{let g=await Ct();g||c?.();let p=await Ye();if(!p.enabled)return k();let _=a.CLAUDE_CODE_SESSION_ID;_&&g?.token&&Ra(_,{tool:"Bash",target:e.join(" "),...r!=null&&r!==0?{fail:1}:{}});let w=g?dn(g.allowedFilters,Yi(g)):null,$=new Set(p.filters.disabled.map(te)),I=w&&$.size>0?new Set([...w].filter(z=>!$.has(z))):w,N=yk(e);g&&!l&&jl();let M=await pn(N,t,I,{verbosity:p.outputVerbosity,resolver:l,yolo:i,exitCode:r}),D=_e(n,n),j=0,B=0;if((i||r===0||r==null)&&Buffer.byteLength(n,"utf8")>=(i?1:sc)){let z=await pn(N,n,I,{verbosity:p.outputVerbosity,resolver:l,yolo:i,exitCode:r});if(D=_e(z.output,n),!i&&z.output!==n)try{D=await In(z.droppedTail??null,z.output,a,{raw:o?null:n,label:mt(N)})}catch{}j=z.rawBytes,B=z.filteredBytes}else if(!i&&r!==0&&Buffer.byteLength(n,"utf8")>=sc){let z=await pn(N,n,I,{verbosity:p.outputVerbosity,resolver:l,exitCode:r});if(z.failureSummary||z.output!==n){try{D=await In(z.droppedTail??null,z.output,a,z.failureSummary?{}:{raw:o?null:n,label:mt(N)})}catch{D=_e(z.output,n)}j=z.rawBytes,B=z.filteredBytes}}!o&&n.length>0&&!oc(D,n)&&(D=_e(n,n),j=0,B=0);let xe=!i&&M.output!==t&&kk(N)?`${M.output}${M.output.endsWith(`
|
|
128
128
|
`)?"":`
|
|
129
|
-
`}${An}`:
|
|
130
|
-
`))})}
|
|
131
|
-
`),process.exit(2)),
|
|
132
|
-
`),
|
|
129
|
+
`}${An}`:M.output,A=_e(xe,t);if(!i&&M.filteredBytes<M.rawBytes)try{A=new RegExp(Mo.source,"m").test(M.output)?await nc(t,xe,a,{label:mt(N)}):await In(M.droppedTail??null,xe,a,{raw:s?null:t,label:mt(N)})}catch{}!s&&t.length>0&&!oc(A,t)&&(A=_e(t,t));let H=A+d,J=D+m,Ut=vl(a).host,we=va(M.rawBytes+Buffer.byteLength(n,"utf8"),Buffer.byteLength(H,"utf8")+Buffer.byteLength(J,"utf8"),El(Ut)),fs=!1,ds=async()=>{if(!fs){fs=!0;try{wa(we.raw,we.filtered,void 0,!1,Ut,"sh",mt(N),"cwd"in f?f.cwd:process.cwd(),Ea(M)),g&&await la({cmd:N,filterId:M.filterId,rawBytes:M.rawBytes,filteredBytes:M.filteredBytes}),await aa({cmd:N,tokensSaved:Math.max(0,Math.round((we.raw-we.filtered)/4)),rawTokens:Math.round(we.raw/4),optimized:M.filterId!=null,telemetryOptIn:p.telemetryOptIn&&(!u||(await Ye()).telemetryOptIn),sessionId:_,host:Ut})}catch{}}};return u?u(ds):await ds(),{stdout:H,stderr:J,code:r??0,filterId:M.filterId,rawBytes:M.rawBytes+j,filteredBytes:M.filteredBytes+B,truncated:s}}catch{return k()}finally{l||Hl()}}function uc(e=process.stdout,t=r=>process.exit(r),n=r=>{try{process.stderr.write(r)}catch{}}){let r=!1;e.on("error",s=>{if(s.code==="EPIPE"){t(141);return}r||(r=!0,n(`tkr: stdout write failed (${s.code??s.message}); output dropped
|
|
130
|
+
`))})}uc();async function fc(e){let[t,...n]=e;t||process.exit(2);let r=(0,dc.default)(Gt(t,process.env),n,{stdio:"inherit"}),s=await new Promise(o=>{r.on("error",()=>o(127)),r.on("close",(i,a)=>o(i??(a?128+On(a):0)))});process.exit(s)}async function _k(){let e=process.argv.slice(2);if(e.length===0&&(process.stderr.write(`tkr-exec: missing command
|
|
131
|
+
`),process.exit(2)),lc()||Ca())return fc(e);let t;try{t=await cc(e)}catch(n){return process.stderr.write(`tkr-exec: ${n.message??n}
|
|
132
|
+
`),fc(e)}t.stdout&&process.stdout.write(t.stdout),t.stderr&&process.stderr.write(t.stderr),process.exitCode=t.code}_k().catch(e=>{process.stderr.write(`${e.message??e}
|
|
133
133
|
`),process.exit(1)});
|
|
134
134
|
/*! Bundled license information:
|
|
135
135
|
|