@tokmizer/plugin 0.9.71 → 1.0.0
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/command-templates/tkr-compression.md +1 -0
- package/command-templates/tkr-gain.md +1 -0
- package/command-templates/tkr-link.md +2 -1
- package/command-templates/tkr-status.md +1 -0
- package/command-templates/tkr-telemetry.md +1 -0
- package/command-templates/tkr-unlink.md +1 -0
- package/command-templates/tkr-update.md +1 -0
- package/command-templates/tkr-yolo.md +1 -0
- package/command-templates/tkr.md +1 -0
- package/dist/bin/tkr-agent-hook.js +13 -13
- package/dist/bin/tkr-codex-hook.js +77 -77
- package/dist/bin/tkr-context-hook.js +2 -2
- 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 +148 -142
- package/dist/bin/tkr-droid-hook.js +12 -12
- package/dist/bin/tkr-exec +0 -0
- package/dist/bin/tkr-exec.js +87 -84
- 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 +106 -103
- package/dist/bin/tkr-qwen-hook.js +12 -12
- package/dist/bin/tkr-shim.js +91 -87
- package/dist/bin/tkr-trae-hook.js +12 -12
- package/dist/bin/tkr-zcode-hook.js +12 -12
- package/dist/bin/tkr.js +280 -286
- package/dist/hooks-host/command-expansion.js +1 -1
- package/dist/hooks-host/post-tool-use.js +101 -98
- package/dist/hooks-host/pre-tool-use.js +13 -13
- package/dist/hooks-host/reducer-prompt-submit.js +2 -2
- package/dist/hooks-host/reducer-session-start.js +2 -2
- package/dist/hooks-host/reducer-stop.js +24 -24
- package/dist/hooks-host/session-recap.js +5 -5
- package/dist/index.js +105 -102
- 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/hooks/on-session-start.mjs +4 -2
- package/package.json +7 -7
- package/scripts/README-INSTALL.md +8 -0
- package/scripts/install-mac-linux.sh +3 -3
- package/scripts/install-windows.ps1 +0 -7
package/dist/bin/tkr-exec.js
CHANGED
|
@@ -1,132 +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 dc=Object.create;var Pn=Object.defineProperty;var pc=Object.getOwnPropertyDescriptor;var mc=Object.getOwnPropertyNames;var hc=Object.getPrototypeOf,gc=Object.prototype.hasOwnProperty;var we=(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})},yc=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of mc(t))!gc.call(e,s)&&s!==n&&Pn(e,s,{get:()=>t[s],enumerable:!(r=pc(t,s))||r.enumerable});return e};var ms=(e,t,n)=>(n=e!=null?dc(hc(e)):{},yc(t||!e||!e.__esModule?Pn(n,"default",{value:e,enumerable:!0}):n,e));var bs=q((kk,ks)=>{ks.exports=ys;ys.sync=bc;var hs=we("fs");function kc(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:kc(t,n)}function ys(e,t,n){hs.stat(e,function(r,s){n(r,r?!1:gs(s,e,t))})}function bc(e,t){return gs(hs.statSync(e),e,t)}});var vs=q((bk,Es)=>{Es.exports=xs;xs.sync=_c;var _s=we("fs");function xs(e,t,n){_s.stat(e,function(r,s){n(r,r?!1:ws(s,t))})}function _c(e,t){return ws(_s.statSync(e),t)}function ws(e,t){return e.isFile()&&xc(e,t)}function xc(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((xk,Ss)=>{var _k=we("fs"),Zt;process.platform==="win32"||global.TESTING_WINDOWS?Zt=bs():Zt=vs();Ss.exports=Nn;Nn.sync=wc;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 wc(e,t){try{return Zt.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var Ps=q((wk,Os)=>{var et=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",$s=we("path"),Ec=et?";":":",Rs=Ts(),As=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Cs=(e,t)=>{let n=t.colon||Ec,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)},vc=(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=vc});var Ds=q((Ek,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((vk,Fs)=>{"use strict";var Ms=we("path"),Sc=Ps(),Tc=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=Sc.sync(e.command,{path:n[Tc({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 $c(e){return Ls(e)||Ls(e,!0)}Fs.exports=$c});var Hs=q((Sk,Ln)=>{"use strict";var Mn=/([()\][%!^"`<>&|;, *?])/g;function Rc(e){return e=e.replace(Mn,"^$1"),e}function Ac(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=Rc;Ln.exports.argument=Ac});var zs=q((Tk,Bs)=>{"use strict";Bs.exports=/^#!(.*)/});var Zs=q(($k,Us)=>{"use strict";var Cc=zs();Us.exports=(e="")=>{let t=e.match(Cc);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((Rk,Gs)=>{"use strict";var Fn=we("fs"),Ic=Zs();function Oc(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 Ic(n.toString())}Gs.exports=Oc});var qs=q((Ak,Vs)=>{"use strict";var Pc=we("path"),Js=js(),Ws=Hs(),Nc=Ks(),Dc=process.platform==="win32",Mc=/\.(?:com|exe)$/i,Lc=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Fc(e){e.file=Js(e);let t=e.file&&Nc(e.file);return t?(e.args.unshift(e.file),e.command=t,Js(e)):e.file}function jc(e){if(!Dc)return e;let t=Fc(e),n=!Mc.test(t);if(e.options.forceShell||n){let r=Lc.test(t);e.command=Pc.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 Hc(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:jc(r)}Vs.exports=Hc});var Qs=q((Ck,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 Bc(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 zc(e,t){return jn&&e===1&&!t.file?Hn(t.original,"spawnSync"):null}Xs.exports={hookChildProcess:Bc,verifyENOENT:Ys,verifyENOENTSync:zc,notFoundError:Hn}});var Un=q((Ik,tt)=>{"use strict";var eo=we("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 Uc(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=Uc;tt.exports._parse=Bn;tt.exports._enoent=zn});function sf(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function of(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,
|
|
5
|
+
`))}return s}var S,We=pe(()=>{S=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=sf(n.toml,n.ptr),o=of(n.toml,r,s);super(`Invalid TOML document: ${t}
|
|
6
6
|
|
|
7
|
-
${o}`,n),this.line=r,this.column=s,this.codeblock=o}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function 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
|
|
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(()=>{Je();});var Vu,We,Wn=pe(()=>{Vu=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,We=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(Vu);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 V(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 vt(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?go(e):ho(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?qu(e,r,t):e.s.charCodeAt(e.p+2)===58?Yu(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 V(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)||(V(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):mo(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):V(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("_","")),mo(e,i,n,t)}function mo(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 qu(e,t,n){let r=e.p++,s;if(!V(t)||!V(e.s.charCodeAt(e.p++))||!V(e.s.charCodeAt(e.p++))||!V(e.s.charCodeAt(e.p++)))return Xt(e,e.p=r,t,0,n);if(e.p+=5,V(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,!V(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(;V(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 Yu(e,t,n){let r=e.p;if(!V(t)||!V(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(;V(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 We(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();Je();Wn();});function Xu(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 re(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;Xu(e)}}var Qn=pe(()=>{Je();});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 ho(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(re(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),re(e,!0,!0);let u=vt(e,125);if(i&&typeof(i[o]=u)=="object"&&r.add(u),re(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 go(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(re(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(vt(e,93)),re(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();Je();});function yo(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 ko(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++,re(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=yo(n,u,r,s,c?2:1);f?(l=f[2],a=f[1]):(ko(n,f,o),i=!0)}else{o=n.p;let c=Qt(n),u=yo(n,c,a,l,0);!u&&!i&&ko(n,u,o),re(n,!0,!0);let f=vt(n,void 0);u&&!i&&(u[1][u[0]]=f)}re(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),re(n)}return r}var bo=pe(()=>{Xn();Yn();Qn();Je();});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 ef(e){for(let t=0;t<e.length;t++)if(Et(e[t])!=="object")return!1;return e.length!=0}function xo(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function tf(e){return xo(_o?e.toWellFormed():e)}function wo(e){if(Qu.test(e))return e;if(_o&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return xo(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 tf(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return nf(e,n,r,s);case"array":return rf(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 nf(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+=wo(a)+" = "+tr(e[a],Et(e[a]),t-1,n,r)}return o+" }"}function rf(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 sf(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&&`
|
|
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&&`
|
|
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=Et(t[u]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=
|
|
11
|
-
`)+
|
|
12
|
-
`)+nr(
|
|
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=Et(t[u]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=vo(u);if(f==="array"&&df(t[u]))a+=(a&&`
|
|
11
|
+
`)+gf(t[u],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let m=n?`${n}.${d}`:d;a+=(a&&`
|
|
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
15
|
${a}`:i||a}function rr(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(Et(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 Qu,_o,vo=pe(()=>{Qu=/^[a-z0-9-_]+$/i,_o=!!"".isWellFormed});var sr={};ps(sr,{TomlDate:()=>We,TomlError:()=>S,default:()=>of,parse:()=>er,stringify:()=>rr});var of,or=pe(()=>{bo();vo();Wn();Je();of={parse:er,stringify:rr,TomlDate:We,TomlError:S}});var sc=ms(Un(),1);var us=ms(Un(),1);import{existsSync as ql,readFileSync as Hk,writeFileSync as Bk,mkdirSync as zk}from"node:fs";import{join as Uk}from"node:path";import{constants as Zk}from"node:os";import{fileURLToPath as Gk}from"node:url";import{StringDecoder as Kk}from"node:string_decoder";import{readdir as af,readFile as lf}from"node:fs/promises";import{join as So,dirname as cf}from"node:path";import{fileURLToPath as uf}from"node:url";var k={};ps(k,{BRAND:()=>lu,DIRTY:()=>Ie,EMPTY_PATH:()=>Hc,INVALID:()=>E,NEVER:()=>Ku,OK:()=>z,ParseStatus:()=>B,Schema:()=>I,ZodAny:()=>Ee,ZodArray:()=>ye,ZodBigInt:()=>Pe,ZodBoolean:()=>Ne,ZodBranded:()=>_t,ZodCatch:()=>Ge,ZodDate:()=>De,ZodDefault:()=>Ze,ZodDiscriminatedUnion:()=>Wt,ZodEffects:()=>X,ZodEnum:()=>ze,ZodError:()=>K,ZodFirstPartyTypeKind:()=>T,ZodFunction:()=>qt,ZodIntersection:()=>je,ZodIssueCode:()=>y,ZodLazy:()=>He,ZodLiteral:()=>Be,ZodMap:()=>at,ZodNaN:()=>ct,ZodNativeEnum:()=>Ue,ZodNever:()=>ne,ZodNull:()=>Le,ZodNullable:()=>ae,ZodNumber:()=>Oe,ZodObject:()=>J,ZodOptional:()=>q,ZodParsedType:()=>_,ZodPipeline:()=>xt,ZodPromise:()=>Se,ZodReadonly:()=>Ke,ZodRecord:()=>Vt,ZodSchema:()=>I,ZodSet:()=>lt,ZodString:()=>ve,ZodSymbol:()=>ot,ZodTransformer:()=>X,ZodTuple:()=>ie,ZodType:()=>I,ZodUndefined:()=>Me,ZodUnion:()=>Fe,ZodUnknown:()=>ge,ZodVoid:()=>it,addIssueToContext:()=>b,any:()=>yu,array:()=>xu,bigint:()=>du,boolean:()=>po,coerce:()=>Gu,custom:()=>co,date:()=>pu,datetimeRegex:()=>ao,defaultErrorMap:()=>me,discriminatedUnion:()=>Su,effect:()=>Lu,enum:()=>Nu,function:()=>Iu,getErrorMap:()=>nt,getParsedType:()=>oe,instanceof:()=>uu,intersection:()=>Tu,isAborted:()=>Kt,isAsync:()=>rt,isDirty:()=>Jt,isValid:()=>we,late:()=>cu,lazy:()=>Ou,literal:()=>Pu,makeIssue:()=>bt,map:()=>Au,nan:()=>fu,nativeEnum:()=>Du,never:()=>bu,null:()=>gu,nullable:()=>ju,number:()=>fo,object:()=>wu,objectUtil:()=>Zn,oboolean:()=>Zu,onumber:()=>Uu,optional:()=>Fu,ostring:()=>zu,pipeline:()=>Bu,preprocess:()=>Hu,promise:()=>Mu,quotelessJson:()=>Lc,record:()=>Ru,set:()=>Cu,setErrorMap:()=>jc,strictObject:()=>vu,string:()=>uo,symbol:()=>mu,transformer:()=>Lu,tuple:()=>$u,undefined:()=>hu,union:()=>Eu,unknown:()=>ku,util:()=>D,void:()=>_u});var D;(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})(D||(D={}));var Zn;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Zn||(Zn={}));var _=D.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),oe=e=>{switch(typeof e){case"undefined":return _.undefined;case"string":return _.string;case"number":return Number.isNaN(e)?_.nan:_.number;case"boolean":return _.boolean;case"function":return _.function;case"bigint":return _.bigint;case"symbol":return _.symbol;case"object":return Array.isArray(e)?_.array:e===null?_.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?_.promise:typeof Map<"u"&&e instanceof Map?_.map:typeof Set<"u"&&e instanceof Set?_.set:typeof Date<"u"&&e instanceof Date?_.date:_.object;default:return _.unknown}};var y=D.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"]),Lc=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),K=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,D.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()}};K.create=e=>new K(e);var Fc=(e,t)=>{let n;switch(e.code){case y.invalid_type:e.received===_.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case y.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,D.jsonStringifyReplacer)}`;break;case y.unrecognized_keys:n=`Unrecognized key(s) in object: ${D.joinValues(e.keys,", ")}`;break;case y.invalid_union:n="Invalid input";break;case y.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${D.joinValues(e.options)}`;break;case y.invalid_enum_value:n=`Invalid enum value. Expected ${D.joinValues(e.options)}, received '${e.received}'`;break;case y.invalid_arguments:n="Invalid function arguments";break;case y.invalid_return_type:n="Invalid function return type";break;case y.invalid_date:n="Invalid date";break;case y.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}"`:D.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case y.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 y.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 y.custom:n="Invalid input";break;case y.invalid_intersection_types:n="Intersection results could not be merged";break;case y.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case y.not_finite:n="Number must be finite";break;default:n=t.defaultError,D.assertNever(e)}return{message:n}},me=Fc;var no=me;function jc(e){no=e}function nt(){return no}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}},Hc=[];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 B=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 E;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 E;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}}},E=Object.freeze({status:"aborted"}),Ie=e=>({status:"dirty",value:e}),z=e=>({status:"valid",value:e}),Kt=e=>e.status==="aborted",Jt=e=>e.status==="dirty",we=e=>e.status==="valid",rt=e=>typeof Promise<"u"&&e instanceof Promise;var v;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(v||(v={}));var Y=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}},ro=(e,t)=>{if(we(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 K(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 I=class{get description(){return this._def.description}_getType(t){return oe(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:oe(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new B,ctx:{common:t.parent.common,data:t.data,parsedType:oe(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:oe(t)},s=this._parseSync({data:t,path:r.path,parent:r});return ro(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:oe(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return we(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=>we(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:oe(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(rt(s)?s:Promise.resolve(s));return ro(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:y.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 X({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 q.create(this,this._def)}nullable(){return ae.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ye.create(this)}promise(){return Se.create(this,this._def)}or(t){return Fe.create([this,t],this._def)}and(t){return je.create(this,t,this._def)}transform(t){return new X({...C(this._def),schema:this,typeName:T.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Ze({...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 Ge({...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 Ke.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Bc=/^c[^\s-]{8,}$/i,zc=/^[0-9a-z]+$/,Uc=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Zc=/^[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,Gc=/^[a-z0-9_-]{21}$/i,Kc=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Jc=/^[-+]?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)?)??$/,Wc=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Vc="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Gn,qc=/^(?:(?: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])$/,Yc=/^(?:(?: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])$/,Xc=/^(([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]))$/,Qc=/^(([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])$/,eu=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,tu=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,oo="((\\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])))",nu=new RegExp(`^${oo}$`);function io(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 ru(e){return new RegExp(`^${io(e)}$`)}function ao(e){let t=`${oo}T${io(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 su(e,t){return!!((t==="v4"||!t)&&qc.test(e)||(t==="v6"||!t)&&Xc.test(e))}function ou(e,t){if(!Kc.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 iu(e,t){return!!((t==="v4"||!t)&&Yc.test(e)||(t==="v6"||!t)&&Qc.test(e))}var ve=class e extends I{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==_.string){let o=this._getOrReturnCtx(t);return b(o,{code:y.invalid_type,expected:_.string,received:o.parsedType}),E}let r=new B,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:y.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:y.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:y.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&b(s,{code:y.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Wc.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"email",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Gn||(Gn=new RegExp(Vc,"u")),Gn.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"emoji",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Zc.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"uuid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")Gc.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"nanoid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")Bc.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cuid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")zc.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cuid2",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")Uc.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"ulid",code:y.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:y.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:y.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:y.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:y.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:y.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?ao(o).test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:y.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?nu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:y.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?ru(o).test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:y.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?Jc.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"duration",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?su(t.data,o.version)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"ip",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?ou(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"jwt",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?iu(t.data,o.version)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cidr",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?eu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"base64",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?tu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"base64url",code:y.invalid_string,message:o.message}),r.dirty()):D.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:y.invalid_string,...v.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...v.errToObj(t)})}url(t){return this._addCheck({kind:"url",...v.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...v.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...v.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...v.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...v.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...v.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...v.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...v.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...v.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...v.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...v.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...v.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,...v.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,...v.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...v.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...v.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...v.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...v.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...v.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...v.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...v.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...v.errToObj(n)})}nonempty(t){return this.min(1,v.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 au(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 Oe=class e extends I{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)!==_.number){let o=this._getOrReturnCtx(t);return b(o,{code:y.invalid_type,expected:_.number,received:o.parsedType}),E}let r,s=new B;for(let o of this._def.checks)o.kind==="int"?D.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),b(r,{code:y.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:y.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:y.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?au(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),b(r,{code:y.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:y.not_finite,message:o.message}),s.dirty()):D.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,v.toString(n))}gt(t,n){return this.setLimit("min",t,!1,v.toString(n))}lte(t,n){return this.setLimit("max",t,!0,v.toString(n))}lt(t,n){return this.setLimit("max",t,!1,v.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:v.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:v.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:v.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:v.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:v.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:v.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:v.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:v.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:v.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:v.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"&&D.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)}};Oe.create=e=>new Oe({checks:[],typeName:T.ZodNumber,coerce:e?.coerce||!1,...C(e)});var Pe=class e extends I{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)!==_.bigint)return this._getInvalidInput(t);let r,s=new B;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:y.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:y.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:y.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):D.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return b(n,{code:y.invalid_type,expected:_.bigint,received:n.parsedType}),E}gte(t,n){return this.setLimit("min",t,!0,v.toString(n))}gt(t,n){return this.setLimit("min",t,!1,v.toString(n))}lte(t,n){return this.setLimit("max",t,!0,v.toString(n))}lt(t,n){return this.setLimit("max",t,!1,v.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:v.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:v.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:v.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:v.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:v.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:v.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}};Pe.create=e=>new Pe({checks:[],typeName:T.ZodBigInt,coerce:e?.coerce??!1,...C(e)});var Ne=class extends I{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==_.boolean){let r=this._getOrReturnCtx(t);return b(r,{code:y.invalid_type,expected:_.boolean,received:r.parsedType}),E}return z(t.data)}};Ne.create=e=>new Ne({typeName:T.ZodBoolean,coerce:e?.coerce||!1,...C(e)});var De=class e extends I{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==_.date){let o=this._getOrReturnCtx(t);return b(o,{code:y.invalid_type,expected:_.date,received:o.parsedType}),E}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return b(o,{code:y.invalid_date}),E}let r=new B,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:y.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:y.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):D.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:v.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:v.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}};De.create=e=>new De({checks:[],coerce:e?.coerce||!1,typeName:T.ZodDate,...C(e)});var ot=class extends I{_parse(t){if(this._getType(t)!==_.symbol){let r=this._getOrReturnCtx(t);return b(r,{code:y.invalid_type,expected:_.symbol,received:r.parsedType}),E}return z(t.data)}};ot.create=e=>new ot({typeName:T.ZodSymbol,...C(e)});var Me=class extends I{_parse(t){if(this._getType(t)!==_.undefined){let r=this._getOrReturnCtx(t);return b(r,{code:y.invalid_type,expected:_.undefined,received:r.parsedType}),E}return z(t.data)}};Me.create=e=>new Me({typeName:T.ZodUndefined,...C(e)});var Le=class extends I{_parse(t){if(this._getType(t)!==_.null){let r=this._getOrReturnCtx(t);return b(r,{code:y.invalid_type,expected:_.null,received:r.parsedType}),E}return z(t.data)}};Le.create=e=>new Le({typeName:T.ZodNull,...C(e)});var Ee=class extends I{constructor(){super(...arguments),this._any=!0}_parse(t){return z(t.data)}};Ee.create=e=>new Ee({typeName:T.ZodAny,...C(e)});var ge=class extends I{constructor(){super(...arguments),this._unknown=!0}_parse(t){return z(t.data)}};ge.create=e=>new ge({typeName:T.ZodUnknown,...C(e)});var ne=class extends I{_parse(t){let n=this._getOrReturnCtx(t);return b(n,{code:y.invalid_type,expected:_.never,received:n.parsedType}),E}};ne.create=e=>new ne({typeName:T.ZodNever,...C(e)});var it=class extends I{_parse(t){if(this._getType(t)!==_.undefined){let r=this._getOrReturnCtx(t);return b(r,{code:y.invalid_type,expected:_.void,received:r.parsedType}),E}return z(t.data)}};it.create=e=>new it({typeName:T.ZodVoid,...C(e)});var ye=class e extends I{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==_.array)return b(n,{code:y.invalid_type,expected:_.array,received:n.parsedType}),E;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?y.too_big:y.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:y.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:y.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 Y(n,i,n.path,a)))).then(i=>B.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new Y(n,i,n.path,a)));return B.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:v.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:v.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:v.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 J){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=q.create(st(r))}return new J({...e._def,shape:()=>t})}else return e instanceof ye?new ye({...e._def,type:st(e.element)}):e instanceof q?q.create(st(e.unwrap())):e instanceof ae?ae.create(st(e.unwrap())):e instanceof ie?ie.create(e.items.map(t=>st(t))):e}var J=class e extends I{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=D.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==_.object){let c=this._getOrReturnCtx(t);return b(c,{code:y.invalid_type,expected:_.object,received:c.parsedType}),E}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof ne&&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 Y(s,f,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof ne){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:y.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 Y(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=>B.mergeObjectSync(r,c)):B.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return v.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:v.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 D.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 D.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 D.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 D.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof q;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return lo(D.objectKeys(this.shape))}};J.create=(e,t)=>new J({shape:()=>e,unknownKeys:"strip",catchall:ne.create(),typeName:T.ZodObject,...C(t)});J.strictCreate=(e,t)=>new J({shape:()=>e,unknownKeys:"strict",catchall:ne.create(),typeName:T.ZodObject,...C(t)});J.lazycreate=(e,t)=>new J({shape:e,unknownKeys:"strip",catchall:ne.create(),typeName:T.ZodObject,...C(t)});var Fe=class extends I{_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 K(a.ctx.common.issues));return b(n,{code:y.invalid_union,unionErrors:i}),E}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 K(l));return b(n,{code:y.invalid_union,unionErrors:a}),E}}get options(){return this._def.options}};Fe.create=(e,t)=>new Fe({options:e,typeName:T.ZodUnion,...C(t)});var he=e=>e instanceof He?he(e.schema):e instanceof X?he(e.innerType()):e instanceof Be?[e.value]:e instanceof ze?e.options:e instanceof Ue?D.objectValues(e.enum):e instanceof Ze?he(e._def.innerType):e instanceof Me?[void 0]:e instanceof Le?[null]:e instanceof q?[void 0,...he(e.unwrap())]:e instanceof ae?[null,...he(e.unwrap())]:e instanceof _t||e instanceof Ke?he(e.unwrap()):e instanceof Ge?he(e._def.innerType):[],Wt=class e extends I{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==_.object)return b(n,{code:y.invalid_type,expected:_.object,received:n.parsedType}),E;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:y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),E)}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=oe(e),r=oe(t);if(e===t)return{valid:!0,data:e};if(n===_.object&&r===_.object){let s=D.objectKeys(t),o=D.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===_.array&&r===_.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===_.date&&r===_.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var je=class extends I{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(Kt(o)||Kt(i))return E;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:y.invalid_intersection_types}),E)};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}))}};je.create=(e,t,n)=>new je({left:e,right:t,typeName:T.ZodIntersection,...C(n)});var ie=class e extends I{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==_.array)return b(r,{code:y.invalid_type,expected:_.array,received:r.parsedType}),E;if(r.data.length<this._def.items.length)return b(r,{code:y.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),E;!this._def.rest&&r.data.length>this._def.items.length&&(b(r,{code:y.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 Y(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>B.mergeArray(n,i)):B.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};ie.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ie({items:e,typeName:T.ZodTuple,rest:null,...C(t)})};var Vt=class e extends I{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!==_.object)return b(r,{code:y.invalid_type,expected:_.object,received:r.parsedType}),E;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new Y(r,a,r.path,a)),value:i._parse(new Y(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?B.mergeObjectAsync(n,s):B.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof I?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 I{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!==_.map)return b(r,{code:y.invalid_type,expected:_.map,received:r.parsedType}),E;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],c)=>({key:s._parse(new Y(r,a,r.path,[c,"key"])),value:o._parse(new Y(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 E;(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 E;(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 I{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==_.set)return b(r,{code:y.invalid_type,expected:_.set,received:r.parsedType}),E;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(b(r,{code:y.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:y.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 E;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 Y(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:v.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:v.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 I{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==_.function)return b(n,{code:y.invalid_type,expected:_.function,received:n.parsedType}),E;function r(a,l){return bt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),me].filter(c=>!!c),issueData:{code:y.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:y.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof Se){let a=this;return z(async function(...l){let c=new K([]),u=await a._def.args.parseAsync(l,o).catch(p=>{throw c.addIssue(r(l,p)),c}),f=await Reflect.apply(i,this,u);return await a._def.returns._def.type.parseAsync(f,o).catch(p=>{throw c.addIssue(s(f,p)),c})})}else{let a=this;return z(function(...l){let c=a._def.args.safeParse(l,o);if(!c.success)throw new K([r(l,c.error)]);let u=Reflect.apply(i,this,c.data),f=a._def.returns.safeParse(u,o);if(!f.success)throw new K([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:ie.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||ie.create([]).rest(ge.create()),returns:n||ge.create(),typeName:T.ZodFunction,...C(r)})}},He=class extends I{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})}};He.create=(e,t)=>new He({getter:e,typeName:T.ZodLazy,...C(t)});var Be=class extends I{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return b(n,{received:n.data,code:y.invalid_literal,expected:this._def.value}),E}return{status:"valid",value:t.data}}get value(){return this._def.value}};Be.create=(e,t)=>new Be({value:e,typeName:T.ZodLiteral,...C(t)});function lo(e,t){return new ze({values:e,typeName:T.ZodEnum,...C(t)})}var ze=class e extends I{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return b(n,{expected:D.joinValues(r),received:n.parsedType,code:y.invalid_type}),E}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:y.invalid_enum_value,options:r}),E}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})}};ze.create=lo;var Ue=class extends I{_parse(t){let n=D.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==_.string&&r.parsedType!==_.number){let s=D.objectValues(n);return b(r,{expected:D.joinValues(s),received:r.parsedType,code:y.invalid_type}),E}if(this._cache||(this._cache=new Set(D.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=D.objectValues(n);return b(r,{received:r.data,code:y.invalid_enum_value,options:s}),E}return z(t.data)}get enum(){return this._def.values}};Ue.create=(e,t)=>new Ue({values:e,typeName:T.ZodNativeEnum,...C(t)});var Se=class extends I{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==_.promise&&n.common.async===!1)return b(n,{code:y.invalid_type,expected:_.promise,received:n.parsedType}),E;let r=n.parsedType===_.promise?n.data:Promise.resolve(n.data);return z(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Se.create=(e,t)=>new Se({type:e,typeName:T.ZodPromise,...C(t)});var X=class extends I{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 E;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?E:l.status==="dirty"?Ie(l.value):n.value==="dirty"?Ie(l.value):l});{if(n.value==="aborted")return E;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?E:a.status==="dirty"?Ie(a.value):n.value==="dirty"?Ie(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"?E:(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"?E:(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(!we(i))return E;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=>we(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):E);D.assertNever(s)}};X.create=(e,t,n)=>new X({schema:e,typeName:T.ZodEffects,effect:t,...C(n)});X.createWithPreprocess=(e,t,n)=>new X({schema:t,effect:{type:"preprocess",transform:e},typeName:T.ZodEffects,...C(n)});var q=class extends I{_parse(t){return this._getType(t)===_.undefined?z(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};q.create=(e,t)=>new q({innerType:e,typeName:T.ZodOptional,...C(t)});var ae=class extends I{_parse(t){return this._getType(t)===_.null?z(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ae.create=(e,t)=>new ae({innerType:e,typeName:T.ZodNullable,...C(t)});var Ze=class extends I{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===_.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Ze.create=(e,t)=>new Ze({innerType:e,typeName:T.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...C(t)});var Ge=class extends I{_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 K(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new K(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Ge.create=(e,t)=>new Ge({innerType:e,typeName:T.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...C(t)});var ct=class extends I{_parse(t){if(this._getType(t)!==_.nan){let r=this._getOrReturnCtx(t);return b(r,{code:y.invalid_type,expected:_.nan,received:r.parsedType}),E}return{status:"valid",value:t.data}}};ct.create=e=>new ct({typeName:T.ZodNaN,...C(e)});var lu=Symbol("zod_brand"),_t=class extends I{_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 I{_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"?E:o.status==="dirty"?(n.dirty(),Ie(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"?E: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})}},Ke=class extends I{_parse(t){let n=this._def.innerType._parse(t),r=s=>(we(s)&&(s.value=Object.freeze(s.value)),s);return rt(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};Ke.create=(e,t)=>new Ke({innerType:e,typeName:T.ZodReadonly,...C(t)});function so(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function co(e,t={},n){return e?Ee.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=so(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=so(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Ee.create()}var cu={object:J.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 uu=(e,t={message:`Input not instance of ${e.name}`})=>co(n=>n instanceof e,t),uo=ve.create,fo=Oe.create,fu=ct.create,du=Pe.create,po=Ne.create,pu=De.create,mu=ot.create,hu=Me.create,gu=Le.create,yu=Ee.create,ku=ge.create,bu=ne.create,_u=it.create,xu=ye.create,wu=J.create,vu=J.strictCreate,Eu=Fe.create,Su=Wt.create,Tu=je.create,$u=ie.create,Ru=Vt.create,Au=at.create,Cu=lt.create,Iu=qt.create,Ou=He.create,Pu=Be.create,Nu=ze.create,Du=Ue.create,Mu=Se.create,Lu=X.create,Fu=q.create,ju=ae.create,Hu=X.createWithPreprocess,Bu=xt.create,zu=()=>uo().optional(),Uu=()=>fo().optional(),Zu=()=>po().optional(),Gu={string:(e=>ve.create({...e,coerce:!0})),number:(e=>Oe.create({...e,coerce:!0})),boolean:(e=>Ne.create({...e,coerce:!0})),bigint:(e=>Pe.create({...e,coerce:!0})),date:(e=>De.create({...e,coerce:!0}))};var Ku=E;var Te=k.object({slug:k.string().min(1).max(64),description:k.string().max(255).optional(),match_command:k.string().min(1),priority:k.number().int().default(50),strip_ansi:k.boolean().default(!1),strip_lines_matching:k.array(k.string()).default([]),drop_lines_matching:k.array(k.string()).default([]),keep_failures:k.boolean().default(!1),strip_on_failure:k.boolean().default(!1),fold_passing:k.boolean().default(!1),fold_passing_threshold:k.number().int().positive().max(1e3).optional(),mask_abs_paths:k.boolean().default(!1),preserve_exact:k.boolean().default(!1),truncate_lines_at:k.number().int().positive().max(1e4).optional(),max_lines:k.number().int().positive().max(1e5).optional(),scale_with_level:k.boolean().default(!0),transform:k.string().max(64).optional(),transform_on_failure:k.boolean().default(!1),on_empty:k.string().max(255).optional()});var ff=cf(uf(import.meta.url)),df=process.env.TOKMIZER_FILTERS_DIR||So(ff,"..","..","filters"),ut=null,Eo=!1;function pf(){return!1}async function To(){return ut||(pf()?(ut=await mf(df),ut):(!Eo&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
|
|
18
|
-
`),
|
|
19
|
-
`))?e:e.map(n=>{if(n.length<=t||
|
|
20
|
-
`).length<6)}var
|
|
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 Sf(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(or(),sr))).parse,r=(await kf(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await bf($o(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,c]of Object.entries(a)){let u=$e.parse({slug:l,...c});t.set(l,{...u,matchRegex:new RegExp(u.match_command)})}}return t}import{createHash as Tf}from"node:crypto";var $f=y.enum(["normal","compact","minimal"]),Rf=y.enum(["off","light","balanced","max"]),vt=y.object({enabled:y.boolean().default(!0),telemetryOptIn:y.boolean().default(!0),outputVerbosity:$f.default("compact"),reducer:Rf.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=Tf("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),Ao.set(e,t)),t}var Co=new WeakMap,Af=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>=Af){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as cp,readFile as yi,writeFile as X_,mkdir as Q_,rename as ex}from"node:fs/promises";import{readdirSync as up,statSync as mi}from"node:fs";import{createHash as fp}from"node:crypto";import{basename as sx,join as an}from"node:path";var Cf=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,If=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function ue(e){return e.replace(Cf,"").replace(If,"")}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 Of=/\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]+\])?:/,Pf=20,Nf=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<=Nf&&Of.test(a)).slice(0,Pf),i=s.length-o.length;return{kept:[...e.slice(0,n),...i>0?[dt(i)]:[],...o,...e.slice(e.length-r)],dropped:s}}var Df=/^\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)Df.test(a)&&!ne.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Mf=/(?:\/[\w.@+-]+){3,}/g;function Do(e){return e.map(t=>t.replace(Mf,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Lf=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Ff=/\{\s*$/;var jf=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Hf=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function Bf(e){let t=jf.exec(e);return!t||Hf.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var zf=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function Uf(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 Zf(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==="&"))&&Uf(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)? …$/,Gf=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function Kf(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=Gf.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 St(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(Lf.test(o)&&Ff.test(o)||Bf(o)||zf.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,c=!1;for(;l<e.length&&l-s<200;)if(a+=Zf(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(Kf(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 Jf=/\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!(!Jf.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 Wf=/^(?:DEBUG|INFO):[\w.-]+:/,Vf=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,qf=8,Lo=1,Fo=2;function jo(e){if(e.trim()===""||/^\s/.test(e)||zo.test(e)||Uo.test(e)||Vf.test(e))return null;let t=e.replace(Ho,"");return Bo.test(t)||Wf.test(t)?"\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<qf?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 Yf=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/;function Ko(e){return e.some(t=>Yf.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]*:$/,Xf=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})?`,Qf=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${Xf})\s+(.+)$`),ed={k:1,m:2,g:3,t:4,p:5},lr=1e3;function td(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 nd(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?ed[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function rd(e){let t=Qf.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)?td(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:nd(r),isDir:o,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function sd(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 od=12,id=3,ad=180;function qo(e,t){let n=[],r=e;for(let s of t)r.length+1+s.length>ad&&r!==e&&r!==" "&&(n.push(r),r=" "),r+=r===" "?s:` ${s}`;return n.push(r),n}function ld(e){let t=e.endsWith("/")?"":e,n=t.indexOf(".",1);return n>0?t.slice(n):""}function cd(e){let t=e.filter(l=>l.trim()!=="");if(t.length<od)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=ld(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>=id&&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 ud(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(ud(t))return e;let n=cd(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 _=rd(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=sd(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=>St(e));var ei=1e3;function fd(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 dd(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 pd(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("/")?fd(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=dd(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",pd);var md=/^\s*(\d+(?:\s+\d+){0,3})\s+(\S.*)$/;function hd(e){let t=[];for(let i of e){if(i.trim()==="")continue;let a=md.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",hd);var ti=/^\s*\d+\/\d+ Test\s+#\s*\d+: \S+ \.{2,}/,gd=/^\d+% tests passed, \d+ tests? failed out of \d+$/,yd=new RegExp(`${ne.source}|\\*\\*\\*|Exception|FAIL|ERROR`),ur=3,fr=8;function kd(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 bd(e){if(e.length<=ur+fr+1)return e;let t=e.slice(ur,-fr),n=t.filter(s=>yd.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 _d(e){if(!e.some(s=>ti.test(s)))return e;let t=[],n=[],r=()=>{t.push(...bd(kd(n))),n=[]};for(let s=0;s<e.length;s+=1){let o=e[s];if(gd.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",_d);function xd(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 wd(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=xd(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",wd);var Ed=/^\d+ \| /,dr=/^\s+\^\s*$/,vd=new RegExp(`${ne.source}|\\*\\*\\*|Exception|FAIL|ERROR`);function Sd(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)||Ed.test(r)&&!dr.test(e[n+1]??"")&&!vd.test(r)||t.push(r)}return t}L("bun-frames",Sd);var Td=/^\s*% Total\s+% Received\s+% Xferd\s+Average Speed/,$d=/^\s+Dload\s+Upload\s+Total\s+Spent\s+Left\s+Speed/,Rd=/^\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*$/,Ad=/^\* (?:Trying |Connected to |Host .* was resolved|Connection #\d+|IPv[46]:|Uses proxy)|^> [A-Z]+ \S+ HTTP\/[\d.]+\s*$|^< HTTP\/[\d.]+ \d{3}/,Cd=/^(?:\* |[<>] (?:[A-Za-z][\w-]*: .*|[A-Z]+ \S+ HTTP\/[\d.]+|HTTP\/[\d.]+ .*)$|[<>]\s?$|[{}] \[\d+ bytes data\])/;function Id(e){let t=e.split("\r").filter(n=>n.trim()!=="");return t.length>0&&t.every(n=>Rd.test(n))}function Od(e){let t=e.some(r=>Ad.test(r)),n=[];for(let r=0;r<e.length;r+=1){let s=e[r];if(Td.test(s)){let o=r+1;for($d.test(e[o]??"")&&(o+=1);Id(e[o]??"");)o+=1;r=o-1;continue}t&&Cd.test(s)||n.push(s)}return n}L("curl-progress",Od);var pr=1e3,ni=200,Pd=60,Nd=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 Dd(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=Nd&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function Md(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 Ld(e,t,n){return/^\d+$/.test(e)?!1:li(e)?!0:(t||n)&&/^[\w.-]+$/.test(e)}function Fd(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=Fd(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||!Ld(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},D=s.get(I)??[];D.push(N),s.set(I,D);let M=N.line?Number(N.line):NaN,H=t.astGrep&&I===i&&c!==null&&M===c+1;(t.astGrep?!H:!N.context)&&(a+=1,o.set(I,(o.get(I)??0)+1)),c=t.astGrep&&Number.isFinite(M)?M: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?Md(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>Pd?Dd(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/,jd=/^[|\\/* ._-]*$/,Hd=/^ {4}/,Bd=/^ {4}(?:Co-[Aa]uthored-[Bb]y|Signed-off-by|Reviewed-by|Acked-by|Tested-by|Reported-by|Fixes|Closes):/,zd=2,Ud=1,fi=/^commit ([0-9a-f]{40})(\s.*)?$/,Zd=/^Author:\s+(.+)$/,Gd=/^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})$/,Kd=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Jd=12,Wd=5;function Vd(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=Zd.exec(e[u]??""),m=Gd.exec(e[u+1]??"");if(!d||!m)return null;let k=Kd.indexOf(m[1])+1;if(k===0)return null;t.push({at:l,hash:c[1].slice(0,Jd),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<=Wd&&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 qd(e){if(!e.some(r=>ui.test(r)))return e;let t=e.some(r=>fi.test(r))&&!e.some(r=>/^[|\\/*]/.test(r)),n=Yd(e,t?Ud:zd);return Vd(n)??n}function Yd(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=jd.test(f),m=d?u.slice(o):u,k=Hd.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(Bd.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",qd);var Xd=/^[\s=]+$/,Qd=/^\s*=+\s+(.*?)\s+=+\s*$/,ep=512;L("strip-banners",e=>{let t=[];for(let n of e){if(Xd.test(n))continue;let r=n.length<=ep?Qd.exec(n):null;t.push(r?r[1]:n)}return t});function tp(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",tp);function np(e){return e==="compact"?.6:e==="minimal"?.3:1}var rp=20;function sp(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 op(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 ip=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("|")),ap=new Set(["grep","ast-grep"]);function mr(e){return!!e&&ip.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=op(t),o=!t.preserve_exact&&e.includes(`\r
|
|
24
24
|
`)?e.replace(/\r\n/g,`
|
|
25
|
-
`):e;t.strip_ansi&&(o=
|
|
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=>
|
|
28
|
-
`):null,a=[...a.slice(0,
|
|
29
|
-
`),a=[...a.slice(0,
|
|
30
|
-
`):null,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=sp(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=St(a,l)),t.transform&&(t.transform==="smart-read"?a=St(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?np(n.verbosity):1,m=Math.min(t.max_lines,Math.max(rp,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,D,M)=>N+(!ne.test(D)&&!k?.[p+M]?1:0),0);u=$.length>0?$.join(`
|
|
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
|
+
`),a=[...a.slice(0,p),dt(_)];else{let{kept:w,dropped:$}=Po(a,m);u=$.length>0?$.join(`
|
|
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&&ap.has(t.slug))&&!mr(n.cmd)&&(f=t.on_empty),{text:f,droppedTail:u}}import lp from"node:os";import{join as Tt}from"node:path";function R(){return process.env.TOKMIZER_HOME||Tt(lp.homedir(),".tokmizer")}function $t(){return Tt(R(),"install-id")}function yr(){return Tt(R(),"content-cache")}function pi(){return Tt(R(),"restore.json")}function kr(e){return Tt(yr(),e)}var ki="user/",rn=1,sn=null,hi="",gi=0,dp=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 pp(e){return fp("sha256").update(e).digest("hex")}async function mp(){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 hp(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 gp(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=hp(e,r);if("message"in o)return o;let i=$e.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 yp(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 kp(e){try{return(await cp(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function bp(e={}){let t=e.requireTrust!==!1,n=on(),r=new Map,s=new Map,o=[],i=await kp(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await mp():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!==pp(c)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let u=await _p(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 _p(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=yp(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=gp(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 xp(){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 up(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 wp(){let e=Date.now();if(!sn||e-gi>=dp){gi=e;let t=xp();(!sn||t!==hi)&&(hi=t,sn=bp())}return sn}async function Ep(e){let{filters:t}=await wp();return t.size===0?null:ft(e,t.values(),null,t)}function xi(e){return async(t,n)=>await Ep(t)??e(t,n)}var vp=[/\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)&&vp.some(n=>n.test(t)))return!0;return!1}var Sp=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Tp=/^[A-Za-z_][A-Za-z0-9_]*=/,br=/^([a-z]+)-tool(?::\s|$)/,$p=new Set(["-C","-c","--git-dir","--work-tree","--namespace","--exec-path","--super-prefix","--config-env"]),Rp=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 Ap(e){let t=0;for(;t<e.length;){let n=e[t];if($p.has(n))t+=2;else if(Rp.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(Tp.test(l)){r++;continue}if(Sp.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"?Ap(i):i;return a.length?`${o} ${a.join(" ")}`:o}var Cp=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 Ip(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 Rt(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(!Cp.has(r))return null}return Ip(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 Op=/^(?: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=Op.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=Rt(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(
|
|
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 Pp=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Np=/^… \([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 Dp(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 Mp(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(
|
|
45
|
-
`)+n;if(!t)return a;let l=new Map;for(let{cells:
|
|
46
|
-
`)+n;return Buffer.byteLength(
|
|
44
|
+
`),s=r.findIndex(p=>Pp.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(Np.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,D)=>D===1?w??(I?`${I}:${N.slice($.length)}`:N):D===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"},Lp={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},Fp=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,jp=/^On branch (\S+)$/,Hp=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function Bp(e){let t=jp.exec(e[0]??"");if(!t)return e;let n=Hp.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(
|
|
50
|
-
`)+t}var
|
|
51
|
-
`);for(let n=0;n<t.length;n+=1){if(!
|
|
52
|
-
`)}var
|
|
48
|
+
`:"",n=Bp((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?Fp.exec(o):null;if(!i)return e;let a=Lp[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
|
|
50
|
+
`)+t}var Ai=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,zp=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;function Up(e){let t=e.split(`
|
|
51
|
+
`);for(let n=0;n<t.length;n+=1){if(!zp.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 Zp=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,Ci=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,Ii=/^… \(\d+ more lines omitted\)$/;function Gp(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 Kp(e){let t=e.endsWith(`
|
|
53
53
|
`)?`
|
|
54
54
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
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
|
|
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(
|
|
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:Gp(c,a);if(!u)return[...r,...s].join(`
|
|
57
57
|
`)+t;l.push(u.join(" "))}return l.join(`
|
|
58
|
-
`)+t}function
|
|
58
|
+
`)+t}function Jp(e){let t=e.endsWith(`
|
|
59
59
|
`)?`
|
|
60
60
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
61
|
-
`),r=n.findIndex(i
|
|
62
|
-
`)+t}function
|
|
63
|
-
`),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(
|
|
64
|
-
`)}var
|
|
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=Dp(e,t==="minimal")}else n==="gh"?r=Mp(e,t==="minimal"):n==="git-status"?r=Ri(e):n==="gcloud"?r=Kp(e):n==="oc"?r=Jp(e):n==="git-diff"?r=Up(e):n==="tofu-plan"&&(r=e.replace(Zp,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var Wp=/^(?:\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|$)/,Vp=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function Oi(e){if(Buffer.byteLength(e)<2048||en(e)||Vp.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(Wp.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 qp=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,Yp=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function Pi(e){return Yp.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 Di=/^(?:(?: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|$)/,Mi={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}},Fp=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,jp=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,Hp=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,Bp=/^\s*(>)?\s*(\d+)\s*\|/,zp=/^\s*\|\s*[\^~]+\s*$/,Up=/^(?:- 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 Fp.test(e)}function Zp(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 Er(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let f of e){let d=f.trimEnd(),p=d.trim();if(!p||zp.test(d)||/^─+$/.test(p))continue;if(t(p)){o=!0,n.push({kind:"out",text:p.replace(/\s*─+$/,"")});continue}if(o){n.push({kind:"out",text:p});continue}let g=jp.exec(d)??Hp.exec(d);if(g){s=-1;let m=Zp(g[1]);ln(m)||(r=cn(n,`${m}:${g[2]}${g[3]?`:${g[3]}`:""}`,r));continue}let h=Bp.exec(d);if(h){s=-1,n.push({kind:"code",text:p,num:Number(h[2]),pointed:h[1]===">"});continue}if(Up.test(p)){s=n.length,n.push({kind:"legend",text:p});continue}n.push(s>=0?{kind:"diff",text:d,segment:s}:{kind:"msg",text:p})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,c=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),u=new Map;for(let f of c){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;u.set(f.segment,Math.min(u.get(f.segment)??d,d))}for(let f of c)f.kind==="diff"&&(f.text=f.text.slice(u.get(f.segment)??0)),f.kind==="code"&&(f.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:c,loc:r}}function G(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function Gp(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(G(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(G(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:c}=Er(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(m=>m.trim())&&a();let d=u[1],p=/^(\S+) \[ \S+ \]$/.exec(d),g=d.split(" > "),h=p?{file:p[1],name:"(suite)",loc:null,body:[]}:g.length>1?{file:g[0],name:g.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(s+=1),r.push(h),o.push(h);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 Kp(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(G(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(G(u));let r=[],s=new Set,o=0,i=null,a=null,l=[],c=()=>{if(a){let u=`${a.file}\0${a.name}`;if(!s.has(u)){s.add(u);let{body:f,loc:d}=Er(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 Li(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}=Er(i.get(l.name),s);l.body=c,l.loc=u}return o}function Jp(e){let t=e.findIndex(o=>/^\s*\d+ failing$/.test(o));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(o=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(o)).map(o=>G(o.replace(/ \(\S+\)\s*$/,""))),s=Li(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 Wp(e){let t=e.findIndex(a=>/^\s{2}\d+\) .*›.*─{3,}\s*$/.test(a));if(t<0)return null;let n=e.findIndex((a,l)=>l>t&&/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)),r=n<0?e.length:n,s=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=>G(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=Li(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 Vp(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(G(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(G(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(G(i));let r=[],s=null,o=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){s={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},o.push(s),r.push(s.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){s=null;continue}s&&s.lines.push(i)}for(let{f:i,lines:a}of o){let l=!1,c=!1;for(let u of a){let f=u.trimEnd(),d=f.trim();if(!d)continue;let p=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(p){l=!0,i.loc??=`${p[2]}:${p[3]}:${p[4]}`,p[1]&&i.body.push({kind:"msg",text:p[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){c=!0;continue}if(c){let g=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);g&&!ln(g[1])&&(i.loc=cn(i.body,`${g[1]}:${g[2]}:${g[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 qp(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,s=[],o=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){o=l[1],i=null;continue}let c=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(c){i={file:null,name:c[1],loc:null,body:[]},r.set(i,[...t.get(c[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let u=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(u&&/\t|\s{2,}|\[/.test(a)){s.push(G(a.replace(/\s+[\d.]+m?s\s*$/,""),u[1]==="ok")),i=null,o=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(G(a,!0));continue}if(i)r.get(i).push(a);else if(o){let f=t.get(o)??[];f.push(a),t.set(o,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(G(a))}}for(let a of n){for(let l of r.get(a)){let c=l.trim();if(!c||/^goroutine \d+ \[/.test(c))continue;let u=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(c);if(u){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 Oi=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function Pi(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 Ni(e,t){return t.push(G(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(pt([e],/(\d+) failed/)??0)+(pt([e],/(\d+) errors?\b/)??0)}function Yp(e){if(!e.some(h=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(h)||Oi.test(h)))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 h=e.length-1;h>=0&&f<0;h--){let m=/^={3,} (.+?) ={3,}$/.exec(e[h]);m&&!u.test(m[1])&&c.test(m[1])&&(f=h)}if(f<0){for(let h=e.length-1;h>=0;h--)if(e[h].trim()){l.test(e[h].trim())&&(f=h);break}}for(let[h,m]of e.entries()){let w=/^={3,} (.+?) ={3,}$/.exec(m);if(w){s=w[1],o=null,i=null,h===f&&(a=Ni(s,r));continue}if(h===f&&l.test(m.trim())){a=Ni(m.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(m)){r.push(G(m.replace(/^!+ | !+$/g,"")));continue}let x=/^_{3,} (.+?) _{3,}$/.exec(m);if(x&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(x[1],o);continue}let A=Oi.exec(m);if(A&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let O={kind:A[1],id:A[2],msg:A[3]??null,inline:[]};n.push(O),i=O;continue}if(o){o.push(m);continue}i&&/^E(?:\s|$)/.test(m)?i.inline.push(m):i&&m.trim()&&(i=null)}let d=new Set,p=[],g=new Set;for(let h of n){if(g.has(h.id))continue;g.add(h.id);let[m,...w]=h.id.split("::"),x=w.join("."),A=[x,`ERROR collecting ${h.id}`,`ERROR at setup of ${x}`,`ERROR at teardown of ${x}`].find(N=>N&&t.has(N)&&!d.has(N));A&&d.add(A);let{body:O,loc:M}=Pi(A?t.get(A):h.inline,h.msg),P=w.length?w.join("::"):"(collection)";p.push({file:m,name:h.kind==="ERROR"?`${P} [error]`:P,loc:M,body:O,exact:!0})}for(let[h,m]of t){if(d.has(h))continue;let{body:w,loc:x}=Pi(m,null);p.push({file:x?x.replace(/:\d+$/,""):null,name:h,loc:x,body:w,exact:!0})}if(p.length===0)for(let h of e){let m=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(h);m&&p.push({file:m[1],name:m[3]==="ERROR"?`${m[2]} [error]`:m[2],loc:null,body:[]})}return{failures:p,summary:r,reported:a,counted:p.length}}var Xp=12,Qp=[Vp,qp,Yp,Kp,Gp,Jp,Wp];function em(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 tm(e,t,n){let r=Mi[n],s=e.body.filter(p=>p.kind==="msg");if(!t)return[...e.body.filter(p=>p.kind==="source"),...s.slice(0,1)].map(p=>` ${p.text}`);let o=e.body.filter(p=>p.kind==="diff"),i=r.trimDiff&&em(o,s.map(p=>p.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
|
|
66
|
+
`),r=0;for(let s of n)if(s.trim()!==""){if(!qp.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}},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>dm,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 gm(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 ym(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 km(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:hm(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 ${gm(o.slice(c,f+1).map(m=>m.f.name))}`:ym(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
|
-
`}function
|
|
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
|
|
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 pm){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:km(s,t)}return null}import{createCipheriv as wx,createDecipheriv as bm,hkdfSync as _m,randomBytes as Ex}from"node:crypto";var xm=Buffer.from("tokmizer-bundle-enc-v1"),wm=Buffer.from("rules-bundle");function Em(e){return Buffer.from(_m("sha256",Buffer.from(e,"utf8"),xm,wm,32))}function un(e,t){let n=Em(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=bm("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as zm,verify as Um}from"node:crypto";import{join as vm}from"node:path";import{mkdir as $x,readFile as Sm,writeFile as Rx,unlink as Ax,rename as Cx}from"node:fs/promises";var Tm="state.json";function $m(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Rm(e){return e?.dir??R()}async function At(e){let t=Rm(e);try{let n=await Sm(vm(t,Tm),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=$m()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Am}from"node:module";var Cm=Am(import.meta.url);function Im(){let e="1.0.0";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Cm(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var Ct=Im();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 Lx,readFileSync as vm,writeFileSync as Fx,mkdirSync as jx,renameSync as Hx}from"node:fs";import{join as Em}from"node:path";var Sm=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1"),fetchedAt:k.number().int().nonnegative()});function Tm(){return Em($(),"bundle-cache.json")}function Zi(){try{let e=vm(Tm(),"utf8"),t=Sm.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var Sr=k.object({bundleVersion:k.number().int().nonnegative(),signedAt:k.number().int(),filters:k.array(Te)}),ew=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1")}),Cm=10080*60*1e3;function Im(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:Cm}function Om(e,t){let n=Ui();if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Error("tkr-daemon: no valid signing public key configured (set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM at build time).");let r=Rm({key:n,format:"pem"});if(!Am(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 Pm(e,t){let n=Om(e,t),r=Sr.parse(n);if(Date.now()-r.signedAt>Im())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 Gi(){try{let e=Zi();if(!e)return null;let t=await Ct();return t?.signingSecret?Pm(e,t.signingSecret):null}catch{return null}}var Nm="tokmizer-default-rules-v1",Dm=/^[0-9a-f]{16}$/,Pt=null;function Ki(){let e="qYBGsfHO175L8bEJXr085DKegk6epV3_PuzRunzT22TVGzM1nonFbXxazw9z8T4zGO25koitCgeOgR51vxcG9y69sB_sod6-Vi_VgyD0uD8O77JMI2r3gz65AJ5ZoGbJ9bAiwK_yF66RABZDO2EzXnntTp_p7xltlw92CMw1-phB0yfuRpOI4wUHIbpk1217Mjq2rjt8Fi6a6I8zqC73s691BNnTI1IKptoWtUUzysyRfGC7w1OyMD-DkviHvFzQsIF8fmneDHv6sseI0ZbrZx3ZXdiIhdkJBhocZfemi6G6HfyYZiq-u9i_gFLn7wW7mQvY9Sb5g6r98Ux-6JDqhZPM8xJw1sMsuBW9il9K5gvUfH1jIjTq3IXfkgG9PGK191b3ti9IsMN_Ep-GDnQdWPcmrcKXkJ2vdyHeRF7fFajOjxLEE61cj6raJeeUND1D2NZylX0D7TWJes_ZnT7O58j8lvfotqC90eyG-M8NlExi-k10nL0eqt_8j_joKMi1xjVOb4puEl48OFxD8HZ07mJlx0n8jEzxYa5Uxb2yvRHHTmIHf6IDC8pjZyz35CWDvpgv_YaHDDoYP4rXIaODJlLBVA-RTl9Ztli_XxjiemltiDixNYvZqeOSbPiRYhGBGUf0C1rcTdYLN40QemH5QxHOxT0vSiiXJMLBHwSPh2_zhbyTxIDK26PWZ1rknAfQJ_SN4SqO-xjyHt6YDojAxWsiRY6_A_mvFrQygRc0fSAJb0-pwXgxOINrMceyrpoUFNMKe2ZMMPaETtfsRce3Dug5yWoSCyGS-wpagZdgCZLzq7sAfYGhJbCwAJEf7rhJMIX5Y3KgaWKthK_ONEvQRTovH7B5Y5D_7fz3eMEglfEQpI_qXLn3-EmYeTnzFJ4raznZEh2jpjSofSRX-Wajs2KzwO4eEAK9g88bccR08ulehMYOMZGG0vkn6cpw-QYigSnBroTKtrWgSvfVJifF07y8MrejAx8xHO-wk6ubYUecJQ0mzRGS31SzZ4jU3a5OV77iwE13Imjt9qMqlbXk2q1umndjRkGu7UJDvtzPhBtX8AK1UVOdVpaNol8TRgGGt5PMinN7__uOYkFv8n95ET5y4JAmYVviwWhrcLfzx8ntvuyqWX-R4YPOPG6dJDj-2JAJ9oaER78iN-VTWD8ISc6CSyuC_UrQ6mAhb-m0fNvdRRIfYGyy3jxfFxFA8Qc2X1CuNAr6Dk3ulW8-XLYALV9KewR1h8i4hZEoiAYzzxvaHNGaJPT6cls7PDSVY1YQz36hRmf8pRI1yjaCMF9mYeCrB4D4b-zVDX_h29uIGLjwXzSj0phVRVMCRLHyKya2BdjsQGIT5nsZkUUdZZ0JaKMz_2HE88y5gYvsSx-Af7kNL0A-RHg4JWSMpWLh7WDBDBphme2U9ueOihxH48GgMqxqJ6A9KberYKe0WMAii8T-Z0BwSb4oQPxT7OnNrCcFxtcLgOhki3g8Q6d7jJieV_PyvRbMxSSEIwD_wlyGX0RUwIr1g9zvEtlEyCU8q81vW3XRAzRKbtATh7p3o_9MQyI6XjUhpmarO1F84yg6mhZqo1zalSsVi_5lA4uBOVhr3ylJaN2iCli-fTNQqvNWYiYVV_OyQ2dfoLgUptK2Xnb-oTNQee2RVbLFYaeAtxWEj1kPDgqX3_WTsf9hr8mheM_EmdZl-AaoRvwie4WhtuDWOUh_qKK0CIpv030ajBIXlN4WP1VYZb8yKHiYw0kgTcHjFBehH_paWNa4a5Zwtdc18JdQMbPGMwX1MHVwQFENzsfKT1kgSC9MNXTzorEywhsg8XUkHh-QlsxXwIRYvfHA9en7tuoFym1oSZ9rvI73piih3w44QuCdhHpCR8EUGe4XYh4CA6HrHPNbvblPomYLqsxPh210jnMPfkQsDamrJarAW332cb9fiWZQvHAV7R3RBSj-MNt1IGcI2I3DbPPeaIurhXw1i0nh2y9LxaMHCSFoQppyb54ni-6f94uAfOv2z6p-c5jW99VDHkKgFPsLxJgm2_CxS3fGj2Hx-TGsDpaVmJLz2GGw8rQpxtf4b2-mqvaTZ6043zVvJ-UL834uz0dUffUhknHSedvLFUfvHohLU0L6qAa_n7rBX8usn8PSVFaKgOfsOzr-V9St2S31DDMgyQrbf0mJnw0LbrOnQ7PnLWPQgtbyf0ayH3uYdidR0MSYHfFuxtgOIBgH2NxX4un-c4rcjxYRivtQs2KYIGRisUjJI2jF5kfnUGCcBzSV-p7Zw4aEIzq-J75NvycGXBoRQUc2l8M6Qk3DNOozy-wumBlJE_rViW7719RIeiYwXksvS7WnT14mfltLo5dJawW9eetP1Mx3Et2Llvbv6oIIJOXOAkVjmER3Z4BshCAxjTVdh9bVXJ-up2C-VPS-Cj9CovZ72zrzCf7mj6gi6ddTcp1ILTJkuG82Tmuw7u7iLOz93muxCCluTQUP7thLMTtJgRI4YraqU3uSqqeTBN7bSDl3Mc_QFvyoT209TKjr_kDK9ViSWdXBWg-LcXzJY6BaMH31SxCf50h1J5g8P3YNdvTRPZ4lsAo5b_tmQKOElu1EW9Te5o38LXOBA64e9cMCi-ec9wuyN-C99sMJmcMYrhzuZ8Blr6WyrhRzu15RvUTIopcInd_MXYOFuIVIK1oGp-shXz-geNLsLqauSw-vp4LJu04g5mV2x22KxVgyz6Tv68l21pdA2BezimZ0jcIOELwU8g0zi5XWj7nBQEXa8gXCFtaT4EpG4ocf-Fow5VRY8ssJ7pkKn8iDPTiRxkgHRnYP3DkVsOvpTs92irHHkPk2DYnlY32hI39NU_9yS9wmiChiCIrY3FQjvQ2yVUothbZFqY_XnCPH1HdUYl_Qv8SoswOv4g4UiQUvDO2HuPiaYuY0xfI_r-m6jmMKjKZFTdRI8KaTT-fKfjHSvKzKZjUWFlyYjf98G9NYSxYfvwERVAMtKKX4x3sDYSd7ht1731ZAsxtnz33LtWYD-Ya5wHX3V13uISgrhsYykKSaWdbVwKFy5nOtIFDp8Cjb402BKTYTYGMArpQJe0_Byn8UAOgl7Isqs0QcBMyciq4D4bOxb6d2083RI5xJqwMqcy_yuvNOyRtMUuNYeKMiKV9y_FgWR-vHZys0eOiceiw6Rv0umXTzB_lVxH98kGtA1mq1CQwj3QNQ6mSKz2YKdINm3P0sGnc_6VJ-eYsra5O3X8wlgZZ7GoaqShphSY1rG74WTIrak6Euxde6q9P6IUTt_Za-xDj_Nau5urCcNMujyzjY9X9SJPrKrZvmKrpeBycdLB-zu6AsAMprbwqF2frrK2ml_Mngo86GWHKQVNqjaM9Tjh6HV3brrTx0wUgcPmcTostwMv70bZmsuW1JW5lJaIhhnctD8Jck5wV7uI2zXOBEJsd_cG2HYQEvBKcClq4wWkM_Wjl1AtN85qvyw0gXuSFd44dpBS_7i3kDcy8FrESS0lpdpZorc8BJ-PpwDSS4Ki_tSv5XT-IAGPdsiUFCKzytAup4xFjDNbgaCE3ARnXZqhitaSn_E5T-I5D2FYc_2aB09m69Is8auGvCc3HDw-1rXDmMynTKrba98UkLhy1i-F7gqyT2g1Yv1WB3iQk8-HsxJEz7W-dnZN57kZpJdq0_I7VC9xHQ4TcWXm8B1TSdlzs1REJvLlWX33l6DDCxaNe3GI8FKgxs9pyXODj5pX5K1sUt-cxW-fUom0bMZoOhQnXNUnRJ19gXVmze8KwoSSW0T8ggALwrtjlie1Gdb5AFNIhcRsIpZmkuCmz9kNLrpoJRWki_SxzMxrUH5omK7IQjKghAwCr7INM0DwqeIuHAUgAxpZ7OTl_rRc0-KFW8A1UKmy2kw86rZA0IA4OYU9j8DOXqJrvCzT90-CtOJFfl1fxatXxm31s63C047i_i2S7GyfI12eZXOphMkBJ0fehI9RDcDjdNALPZYvu3d5OVEk4GhL1swBWBmZd3gPMMoOvhKysmNGK2cRZ0ijiaEyMFY-MTwNK8ZwOcCgJaDLwTOYOXR_C6sF1C62ZbM1KLGuLgg_ZO__3FYS8_E16UC-a6hjSG3CDTZGiCMPgnlsOo1o0QWmmJ-MsYKmrdGE9WzeiH5nNYeRwPchaXWrXpzQ7bNAbfDq0V8AcYlQDUFLCvdwsNzOIsNWjUTo6GLDHoDj4K5TaA7OkgUAmqhbR34iHkx4afM7ADSXrVgNEQxrerkr-5Wlupivpct1DF9cpsSRINyJ-JFwpcDKKnRRIeYuhqOo3AcCCjvLJj0iBjmbjC88Tw4VsGN97_pdNvUpjJPbBk4glUsXcs80YSBzvJBmWdncu8kZpZUHpEJifnr2jBKuKFn_ngs0uTqbvoU28ZxPafVfL1rsT5Z2PEOgC4hUASdMq3kztORIhH1W2V2GMGDngwYsSx6SXhwDq1_S7K6tyZLYVQjeLpDRuXoQQv1PnL34T7OHKfHSiGbr6wSbZolZA47dtmzv080eudAl7O1zsQy0XUmO_1ydkxJk6GHVk8Vmwl7u1eWySCz8PQGxdFS9QX97flJVfRp9o7NdcFMi9e9BjHZ-7aMtopIX6ZihDK46yZsNuxpgExQFBZP1wcaVchCz3NoQWkMz4q0BOK83-s4xxqeIF45nTbMZ3yVfjhArPNmITEydT-GJj8-oZb2HgdSbzvulLQ6BwRTRzLclCIFDPzAkY8nxPqs9YzWqR0OtQE5bzlnjmK1omvS5FrlsIuiYdnE2T1exnBUrxf_VE-gP4U6b_XCNxtGe8d1vxoA5tCfpe71ymcg9thW6AokAcZUhzflhMubrcDLzcA3L2yvJ-O2QRbXLce3yh0VjWsUrqCfX5VyyUOItcwnE5qWDfg541kbLiD11zDzB54qJCLLr4XLK9pTELm4xh2D1FaI0tqf95B6MqdrOMddPstLIkAK7-6zWX_H9njFKVOnsvmUnjIjDPzJ5-N5OHkVq8jcBx9Hs3o8PdhwPG5ChxVw4KL4FWVBopLn3pVIAKYKl32ALXXwVb3auSEeVyNRZUfBgGpfo43O7q-jeyu8Ip9teOpJETeGEQLq2oeHBKQrB64u9Wpe4jnVxTV2BCvijCJPTGcZA4jvN2_Y68Icd2UxTwJzeFyjjGWPOkDe6O7ado2ee89m0R44fMzZv91waSaLoqmx0dkOt3ZgA9wX7snPQ9G64HM5D6kqiqMX4TSB-BnI5sApklIte_qbQ1ZNt7jXqwWWamfDJgtLDJB1JAvyJKt5EVeGnMZr62PJRix-3SL9PlL_d_ysEJ7w5zg8wamqt4juyuflzv37_nvXHw9y43lXAbz3yjcTSJN-uZVft6Wj3Yfs0klh0-B-P-Mw7WAaLjLFSYaP87mKoUDI1h5eGj-aUcHsmOhjN8Wy9L4aoH3Z2ovs1VNlDwi1Ilfl0hTJxJoT5tj1pqYraCML_2RArDP4skiPl5c8zQjz3rirowvmZXFbzslJuxBYug_4xPlG59T0n5SOn43Bz7p1xA3P2itWy0M35vJ2jFbPpn7wqo3hevpN0v-2rp9v-6Ky03uDcv3biU50TlkJZmw6pmgicNO_Gg_uIN8VqEbgjDKOqDFGVXhTU5mfRm3oWVdbA1LlCXjN4ax5bq5U-mrtQ26sIi20XwmiKzEYp8dZpEyqpo2P8Off84jeIUqeSiQCcY2ouH-o3WrrpB05CU1lRx7PO6ZyHjZaHsez2qXqZqdMVvKWZm6usRKbOGbKDPk_DfEY2ri_20fS_t0Wwde2CcpGQTwPWGqMxwt7Jmd8LA7yNthTkyGnRvh-Hal7dI8mcGtcSG1pEEMF-xBR7qYa3rpICcc1Jhv7o8XDcEYNRGQsGI4TjxYXvisUrCNX4Sms4xq06H5AUC-sWlDLikLuhCA3xMofvSwA_seXeY92Gnn-tR43FQvoyAbbBvWDkqASUfdeQoqCHvXszCxWQG-3aA0Uzo7cclgstET9og9nSMcCz25l7fRJgGlkg2xHOFk3DxbphcSWPH3vKEZWY3NHqaUiE5rwzFR2sKcK-A6N8_3yRP-CcX7fvGnH7EvochfHyTPb7zSzF597PTc0Jyq-MIxu1-cg5LmhLaaS2L3K80QZ_wGOwg193ibDXwpIGrp6F3OsmG9P6SaJSc_INB8zsxZNQ96ERURjaR9KcZFKBkv0AcFQCZaIcSPYWtHPDkNQki0tqmxsQ7T6Ai2JdlwFgsyL9ss0r5jxwcOpVfYeWHa6Ceu6xmMQ8pVOEOxgGYG5KUYnMFLy7sqbMHHajjjL67Yyp_XVkrIDSoq7SU9ZIVrzg0Jiiv-LpkPJap_GYlJ6VHPaegBC_VkimVcTfkjwaXsU6ShMKzmF-ttbkLCzDZOUJdais_OK5HEcfKE-ydKycQ42vb9utsOfbueHJg3OLKk8RUb5tMaM5txKOP3WBeyBdd2qdA_Sba2jxZvYFHZk0zvpC6CJAf8vXzJaRXfZvXf8-od02RrdKEzjtCHYmbMM18Tng6d29PcDwV3Ke_NLbqYhjBCGtwB4UaUe_UubvwcOK2FagXHG64R9ZvCLWD8eD2sqS7n9xzxERjZth_14Hz39y3KyVbyI-4aU8A9zfTfXDrUOxQt9SgWGs9cQNfvRt3yNrZ7Hm86FV2Sebi4VTZS9zc2nYyRfvKvaxOW5Sd_SKRbXKwQ6WKJmRDg1k0152n8EvPDsBYPvue7Y9hwVVxN8H8fZro9FPUzhCbNGNHBQ1v9ZMMKHPqqCIm_sme_UyzahVbCn4opvA75lfCenT_aCUyrCJDmcJZCTQ_rLt35BeM8Cr4FLlZ1aZksOS0Q2qkWqkmsTjMYG3wxPk1LeBMPKjYngAW9CeCzkKKpDx349A9T2RESHzYZpmMerCLzif4cqX20SvtXuCMUOHNE6l8Xys0poYFJRdJGcxClt0TeivRcS34cHxUJ4k4dL9WbdOrKEjbygY6UU59tVxWsCdRi-eYpL0Cyk9OGVB83p--GagL10v1bLB5fzrshvzvGrVrElTT1cynBRcrBpD00Zrlx43rKDcWihvIkFFeBgT0wtjfgIs86g26aCEzzp77iOVWKhE2ET-G71tzb1vCYnww9S724szBFOUY-oCaE1siL4z5baLW2UI5xlUvS0oUOrEJP6CwLIfOHFh2e6m9_8CKuPyfHn8EkQmw3ZSR8ZCF9opT2YpkMR6jiGvFNYGZadBQ28F6gAJbSPMHp-aYcuLSNXZ5u8KTxvVKQmW6ZAtZnvh0Jipy1Go-THZjbkmtc8Oo-nn9zh_hQQJJcse_ZuSwCM_7louzMLeEbooFNB1QhWeUnu3wbWQcualbDFvcxqTWwug-XYXeExNG0bFoRZezfVJShfdFVx4BST4rk36jhF6luq7ZbNaTUycxFpfXS1AZW00ftyEBJvLzQDUyhobRjd3IDt3rlrKU98o9v1LgWhHr2jt8U0-I65SfuhbUB5GidPuysa6zTq90bEH8iL_vShmfRxZj-yHKGgPk56Wer-JhR37jWfsu-nyHx4q6AxVmQrJDGkCyltJzKN1u1RbVyl1H237EBibWPg2qE_OO3QNIbktjCrX9fWPddxpRRX_eeAg5nylumSszXe80R-WDd93K45Hy6w4h2zTzv5uiVhroIOY1_P8oRVpFjUoRIqisODA_b5wdpN9UxJZ3ISBPCwSkHTWjGiQy4sn11u2vTPv0two2Jypl_9OVtD7l1bBFftvJ6VjKwNpzWuryqNmib6zGfy6lP1FS2ABf1TVWjYt3Bka4xb6bgfYK65_dkjfFbfqtqqHUBXaP7Yb_MUEBxJ815O5KG5E3fiZuL4KhJUl0xYDdIVfjOmev0In8eCZRaywVQmTEjENtX9Tm8qHjwQFFR8dE-Jt3oc4jXg90xdUTZP4lt3fEOhWiYx0uyxOjAazEqYEOSZpCUQycqJCeTkF6b0zvsSCaKmcRp7lRVbEQOcBBDzfdu1Ak7EjI2UH1Z_Ly76yWUnQSGWp1Af94c79T60fuCw6SLbuDpEqVSRbPblVJOTHeJaehpsk4KsULwXUujJ_AG8UVjU3XOzg_9tw8LfSV_prgRMHXwbVKUI5pP6u5n157w-OvgYalOj1SHWpwrgYbq51Z7O57fZtLH0S_PRd7gsiwIsRbAjSc0Qhp4AYcGgb0nvPrAAMUDe1_2Wdnz4g92nS-D5GWRgJ_bSy8W-0RtnTPzOGCWy3R8L2zNzU1ATcrp5DOlS7ztCDrNnnXUU8YQ2iewZREtTdt0PWkKHBkR3ALke0VetbCVCn3uH--MFSgJuaHDgbfeH1DLnjdJPXMoioLshR1ur2pmUEqey1QIusuFFH7TZ6Awsc5RAw6YgQpevT6YQ6l7rO7pzfQxq2o7R29Y_ofAE6_eMA5uO6TpO03Xg65xvp4ocAawaqqEB82Oab3jnbNKO2Iqdq5uFKek1lsc2z3ZCgxR1KG_k-GMH7NzegjUw5UKJAnlyZkImQSLkdlS5qb32xGZ2jS92gPFI6N_UG7q_SkHo1rpGNI5xP4pFMB3z3J66EeaEAny7glnSgHZsC3wWedVaQsDxPrETqeED_EWfsKkDWMKPtCAlkF9yzwcw_t5l_mx2wf5dojFmTIqnLOwZI7Hv0Ievki2Pki8M7qu3kVSzqa6zAc5-mA1HxaOgBA0ZbmV2Du9CRkHj3X83yLsGdkOJLU37sgQYYzC6YBYdJAKUfZ5zfXi9CrfWat8aEqB49_iRV0fmAFQpbBe-jLPSuiwIZF9_1yMQI23mg-x-B8PPbGj5sGCQ_3u51dvSfYPspVm-SkDK-T8RjQeWxnSfLSAYNMunD4IaH0FALsKKqmWIpRBVp_XhZ2rqx37fuUe2IYIlcmb4dr5wjbjZc7Vnp5ekvevtXvkDD00sJ6ZfPpyXDKa3ML5TNlo82t7D9Ffn-yEAgONYcX4lj1-aBd5p4xUyvdcgyEarEw-ptdmPi_-d0k0sQDbANOPD-G99fM8-6vZLJFh6q9UnED6um1Ljlb8FGKemFwsA9FTIGxY1og5Caas7PjH9lfH0a8i0s2Ye9TCLaPBp4sgwe1U91qz0Zfs7W4jkU9gmMnq4K2V4X0J-6WSPAT5VNfTqwXMXCr_oXAK27UQNGu-Hx0XT6eEdMEpSyubL2vCprsUxgicRByMN7Gdufvn4CVAJRKGkFoPcFRKk_GdV5eFcthfLvA3PxYUD-SAjf-fA6QhFN_7xZxXlhYfM9l_9HxGz2RI3ufpv3_q_1g95hK1hR0UHz3UyvASeKXIVmk_xezUhHuVQNqLx72DvdrWZRK2Xlh2YD7OK44uYWgLRq_OT8H_YCGko_M-1xILeuI-LL1laEi0ud9ajbZuiAfXEebAkiZKWLWodf7rFgAog7WPMqW40YC-aQDrTq6Dkec9MP47PtYeJiPbi0qLwXM_gByGXok34ydmA7rwX-vSqInVSb_l2j2GqSzVcTqo-TqonMMUTtz2P4nBKZJqm5Mfw_MfED_Roj81BM0p0rgRK7ViOWk4U61bOQxOrYEsXmEWQhShyOxY2aQAIqDQ3789Gtx0r2Mwy22ezRPmRoTsijPWffhOiRoaQ2jCMdIRr4lRR2qJhzlbjO_8Dxtuo6o-ZRa0Opq1gN2PhaPkYhIDc7lfDrhM6xxnLF-DWSzWEVzQ6huoKCkFhn2-tLy1eeN6cCSb7D5qWNd_CGYTHWMy6IZPMMrGwbc2W0-NV2MSo1jDN1WKsnn5ssEtoISc3eYIo8_gLiOR-nmK45XOlq4WLZXwLy0xx5XKcfBYMcf7D9MDSJiJCkrNpbIHgqKP1D4MVTw3nZJ66qyxNzVi2wBlekLGHPPMzvbfO-yUiEJvOla6tgaTP9wzTrqXe2kT0oZE2uwb40ZNM4QXou2cS09-mjz3HGt59FQRShbphVrhW7kdX59EMSjjKT0zYuARL2eCRCn_IhsIn13huvHv4nr2NX9Pxhd_a1oI14-Fo3WrPBi-2sHnDtsychV2Bji6KPlIxu5SYh73PEcyac12mgTKkFfhPikwXTqTMv8TdkP4Xmsl5ZyWKSsQqUyErnP_XLqp45JNtYCtqHlAOm6z4NqJFMdCfe10-xQUdE5IuX6w4OHyz10FyiAyCAh7-ELkIXscJCvJy2MxU0H2OYvNbUNc4os0QjojBpkw0qgLAQRAQc5jeJoAQFSTu_ESSad63KqRXcZvbWAwblg_d_c3H05_GKeGhStJHZr8HKkoKTiCngt-WhmyydZmXKAsgNE0kyp9-sEQzBWNVE_U2pLPtO5AkHnKKhVoZtTKnz1lGlpZAgu6k5TICHKSpOpnrlS3yNNx9GTcVo_UIktQu0ZfpfM8673VYYFKISPSxrH0vBIzuK7PZIDLHIQEQlsLAK3NJf0kyT84cRHanP-YglYVUkWSob5dPam-bq7g_hQNMKCwI4NUjDFQgld0W9X3C_cpNJMcVRuWxW4uUnNbrJ07ri25hmrmIUa9grsEaYoIn0Y4ARjLd7JqOgBKd0KRaFqB7piK17DYg-VUk-dWdcbnQC2ObOfl39CBEzF0ri9byLVkbuqAK66aC_S8OFIf_rETxIicpFPSYyQZ5sJ90_PZnzU3IbWzmRHGbVM4aBiiudglArzza_R53TStqjS2cMpSjYKEOjaJVuCUph28IqNucvgQF1uqZsXGHza2qqyL95_dZ4wyoOuUUeYloId1VOpGP_QcGsw3uryb1HKiRrA7ibr1Y33OWzrfJ1qk8hTlWLD7tBG4fjidnHHCxmPW5y9pseUNeg9QKPr2jEkVftCrXni59anlzWTXI72vy5tUjZPaTeAqlGkapCFUQF6cKBSXNSDxVxsdt1KU7SiBs5fhtWma0VQjkTSbRTJR8Cv0Idp1nL87Zrzx2G1jCZSfVvV9ssnHJrMCZOuAUDOnHBAcU1uw9mSnAfY5jCU9Afcet_njWEQioeFcNTsDSJGqcpMrrnc2JmsviyNdo4lvqcxJruF83uBAAzQFvUt4VcoWk-w6t2hRlhYIRa6sVoakjjld8gQiN4yiwz4atqs7FAvhmqRRwioMYvbovQ1wC8smbnd3004x-K6ULrdaASB-Ea18lrUAi35HlTjhN0nRZYPZwKFonb6f6eQwFC8IuoIwfR-GdW2Tie2iEogyCXaw_gwsYK5bt5as9DLPheRRnMCwr6rmCBr10D4btwQdH2nwe0KdbdtxYSLycD2w26gJrHdq_ONoO9SosLEmO_Z1niXEAnDsLrpIWxBA66P6bE2aETh59mz-fDRf6o8kjYajDb246_7sE7c1fOzsQmXVs9AwRlIZlU8whqvvlXtgieTbrvz4MuzP1sqNIx0FYvxLxhn_HeJsuB20zJUBoSGBFAeXdbVk1xbDLQwYkhN0Fd5nUu-G4HffyZQxR-7EFiK_U3OFJxNVxyyinJWPM9lGHY1dkFHzb65OaIBpUMDNweJRVmoVLaCaINvuZxhrjK0wNb1aI0J74Deh4KHdybjk0pVyybXwNCYRssK3rbh8rqZXYfEnSaiDv42xjje73UJiPxpSnedm2C1IiSWCFjubDQ_6siuKkjxRVL8mDhqvXPdol6qaTxkKWSejKRRXiFkHMYYLPKJlWkwwTFbWaC8O1YWAclG_RiOKuN37D1OOrChzbZZX2nwxYXrn1Kz5LIdihQsOHVHGSuMbsOWTk_cFLzQ3owVr79zGtg1sFusQFkgBT7s54Usznk3eDt_RdSjkezTc_8O4cVgy54sYBjzvry0g8ykXuTn5N8CYzzBQ0tHJnhDKTBgS918Mpd9gKIsDKYQnb6lboxaTVrZVw7BpNcffUBqUUEJsf9jVATY8AMRREet088nMZ6-SpKW3qR-W6E1gPGW_UFMtZv-ov_5iQKQbPeWktaF5mEQInMviS6U5yLRPnfP9EdzlorILOykIjYDWMxEq-BK_paAj1jnz_QtVhV_Z0q-S_g3EiS88PXWrX4z2BxxbqhgqWP4J9DI3c7w6gyHxO7U5unPN4wFRPTfi2NgpKNHKrpZ-4K3dl6SljF672EWZLEPWohvjtChdze_ET4ShRz02dibXg-ojQUZx4i2AO8W8dQC_hB1Z08ML1qOIQE5NeUcqoRquc9EtySgZmq15baDRK5EUs3GGB0zF5HWfH77g4NARfhNPD_GyQa-lPSaiT8v_Pe3GhO3tq-r6E2-KfGYmrjKN29i8EbBBucHxF4wQ0M0GtfimFVAtLN6kil3pMYXOkdhIcM23z_qNnVJGB3VPp7VjxiZDlLKsRhGINcnFl27wUmnJdDAHTYY1kwRxenoTq4QDg5k3ywZfiz8ZJHG4ZVuvAOIX6_Hb3ZuIgUycQpWsnU4WxDhcuU8XNaJkgph427NefVBky40k_qQezOYa2mS3WUVC3y18QBbYH_qZYY0gnDlkiA2fC2qODL5D_gIIfiZtQrLqmdfj2Qjl-HSqhVNK_hSsXket-4FfWWyWJDFu8HRO94YoH9Z2HFfrTvSEQfyrU5-MSwaKDDPFY4goJW9aorHhnmNvXSEb3xn4Lr2TiF9lP2J80tKfJ5dEXTZcGCYujSn8aati8UluhhMxxdda9leSXQA5kqUsX--DC7TOft2a4-vruQeEMpNNZsmQDgi3940oah0WHFsdo932B5X_VLWX16AdvmISBAk3-jZYVAhEYJK1PHLS9IhDDkYN4Ch_HbrypQ-oVfjms62la3YRxJS4E9vM7UvVPz4DGQSlmKpsJ-HLat9Dt_w5w3xeRGGLT-bnXOyJOMPREm7UCxW4dipGa5uDjw8CWKsayZRkPh7OchtCplFr6Lpv_L8YqOHjT0NoHD5wC75-4IOWLtXFvseYbbuBRJkoBFKnDkoGpiyKq6S7_L1VLcMexhzsLKthK-d5a48Fa5Q6KrNLZKHpJx1_uEYmkdn05x_zDrC2K_sEsrscQZZi33I2OEaSh4HeVGdYUzJ061P3TXEkgOs90ns2c7J-K-bnaVUqyO-2R2YS5ca8Y9bn2LyHMKmrvb9MAZlMFOspET9w8URKq41wBbdMJ0bCNMA3xMP_zoqsSyLq2D8-Qq_EjK9tF2Os7Df4FmtGW8iwMTw1E5r1PvuaNpbfySJ-_x-iKpc0wqy1PnAclI7qSfRX12uz8KTad_7bPE5awhlEf8ZqErd6gyH3MIvrxbovJPIiq9YSFw3-zYCn6UPqqHFSELaZI1kahQOZjBQrkNxvF5zllCDWTG8OXJ5osWabSRLQrv4eUChb-qiI-rPZ-b45juXqX8AhO_tdCnPZqOrCc9Gd7IR09Lw0dfToyp58zgsnv05es-qhJ36WvJmj2oF59bXddMgJqywcKWh-BxMIAuZxPdJfDhkXL88uTl_n4wqrVGShrFt_W2SaMrKguUoulIp0qhK2zltefXoei1BXn1wZiqDol_cHLLvZytwznutaJoYIboLfu4L0mnqA1pOxo6ZeTTiWCfn1nM3S0ObCMQ5My1tHVCxQ2hxRCDbMYTIK7jejhSj5Fl5L39iRWlId7UKnymY6hDw1eO48jKUg8HZAtPoLgGYbzK3W31fLYrTtn9DSO9DDOAZ_uvfErrmXPPl0TWgroOxcbxz_9FXd1bA-CgyflxLsJniP3ELQAK2MV7UFKChg9Lf2_M13B7m2WTBAfHmxiocV5tyWkpGUONXe5gyx8vF0jwK5mkxbhCHMy61tFCD9RH_OY4ws01gNJ2kc4AoozGnOBaPrr9zYTnOZJY7q7OCFZaRjS_8wrOriXGh-g7ACNRreWYGFKvskPYO54Zc6T1A4n3IjtLgC7R3DIj3tfw7SsV6MFlgpi0-6urWS-HsrsQom9HUKcqnYocvhfiXjsBkI976J8a9vHZ-cgn47Uw8Q8NcbUoIEbh6S8ezgvDueqDoEFofHVKaPoxSn1OgqyuQVB4OKuW2s0djAXpCXeIPbhqKueLBGObxnFIas4oh3OhhR63cv2-Tvtojyv3gZUWTfC7H9JRJzrC_Jg3grVdiqHrg0mq6PcojJ3x5MQKxlOYw8DgQcKdk_eLcyPSwmGkRM5NIBpMZ1MUXHxRlpvMGLw9EcDpxKAdxiE9SlhDps_o68kzJa8knEY0caIEJ7MpgzaVYjiH9CD8crTzlKsvBO9lNBxIvmekNajgGW75rPD-9oKGS9i5zSWf0nWCvMnsIG8Oi6Y5jDSocblrICA5V-sT4jhFEadV3TXlM30ifb6RlWrq371pwyeqvLn6IIfQ1U_It1yq7GXP5AmKLN-tEYoZrGGKKkkv1lX1LoSKTCivLUWIsA3CNVbtJCKD00igfzrTe6dEhaaCxOWsdnOgGfdbR7gXh7U_U_7dT5ondOyeSQCqMqw_r_6NdBUn1mssNIIWKFLcHOwfmTq7hOyJfPZ-bu0gEHJ8a6tobe_j9zdKxF18b_4d0HPedbgtJW3WZcH6wHOOYi_olI0xlxyw04kVIPoQTmEMJltXt4HdqZFj_P95qrBiZABNm-B-dmAoTg55AkwTVoEr_FEiO0mAu2s9UOzFC0kzN224Iq2AVSEbxpoPNZoSfD78Oz0dXEICT66ux2GVirYwl9twemfQHGqCBmWy8pH33cFIhzrZqK6S4kfCcB9JaHnXsi68zA2grlS9MOOhqPjRFXJXjodi2WXZpGQFF3LDYyEtocUhNGPArWzabkD-69hSGrdHsSw9AhVZNfnnhf3f-VCCmHzR6kCGq7bfV4N5kRQ06wh6mRwejU5pZ-rU_JFX6JfENloyDXGaAi2cldIJCOB0GnKL_94ycKaem3OptVEAfhDu-h94pDGaGPPu-h-dzzPbn-8oYqkw-7f60rIn_bcD6xSTthGsScya5qM-4-rytxdpFtT5sGhpq10l9-qo3CL61QTzMEe2ZowiUnxpad0jQzltUJZgtn62YHOnXWuHFS1X5eM9HKfmaelZ-1PiJgq-T_EcYxmQgyTgQC0jjeHtFKA_ZVEPYxJvx498kI3feByEbBJiJJzniqEVrUEtzZIeonXmHjBwdJRq4RyqYS9D7w5m3q3QcWevTXTKb_gmj6wYWc3QfuNloXYAh65YENPybRH4W1UpdaIYLQdT17Or1q9ZMGoTO3PfB5jnJ2LKSgXdlNB0CtBkkeXdxp17bJTgT5lOIxDb3QeFuVfLh2q3JTqEOZEIdp3nY4rsnPtkQyQKCCvWDDqlGdBcQKzKD716E1EqoeR8v4jmYpBuSTp3sKV8Xx1oKKKWPzbwVu2voDkviL2PX-hWPG7Jbl0MkvFhmWNAMP2kb96sXfpnXEN3O1m6DJUM0UqSZLkOVFXeDJUgjOo1EskYyMJrlyX_y1Lvxt7fQHkKCNvAFfADiQU1N2xu8qyJhF9PLfrV_0UYMs3BroXeYstlwccNpNb2fJDdNUtLzZMH1kxvRdw0MaBaTU44KxpKyGaGVjAaNDtA5HGDWpyBa_-wFS3CdAAvxUvcr-jdqR318fGZMvaltdPFDLA-zw2CdDDyc--NfVOoXkZVeeN3ekDKeBmNj3Vltz2zzZ9voNFcNWr5fy81f_cHfTJsXd63RbkjvHBqFqMPUWLXr5ZjQkeypc4K4qXw1ECi_4FlQ9dI3zUS93KftZVKm-mRt9EvoUrvmHjsEuRbz15_nnu7tkRSsKzbwMkTi0Dm2SfCH7AmR-ZvpWHUF9--HsMfg5V7qqY2m2YsZX3FohduRVla0KzNXaYV8Hbmvs0aymjrcqegct-QnakI2LNqncurIIgORXYx-1dcjMpwhZEOIi5RHr7rZok7YqH84iP4irF6O8Uo3VAsLQ9t1-t1T8rbp-nzeZpxx_O0x1H9opv-Ua7Me0dal77TPQAvDlx2AX2pvDhyWXbNQVl0rMXBQ9yXDzpyVhJuI8rvnDRcZVY_zqAY8P8BsDKy6Rwg4j_Oe6EJ7jJeb220IPDuA3-BVgQF6iP_BvRJstKH2JNXn8uNcBzfYzXh-d1PeBSLdvMZPpv7TTETiYb4uiU7-JMCZfD95l3G1PdnIOxId5sABICBTN5c4yDO8aWW_67mgbonmDR4GOFdmvl0iUCopBelc1HYWckgImsrGe5gC0PBMP-uN01LEK_7CCNjRt5Ujls-VrRClMbrMQFHWtILatIlEjd2vy5FLjdorNVupQhQYtKWtqitTlD8hgwn3_hGURQi3tbOn__fOaIPR43hWIqK9VvuAhihvCTd125mgdV5jf8plOUUzP6ekya2xqn3ICXVuotxRh29BOs5lq-LHsXTMNHftw4U9d6Z6scBF5lPsNeZnJZ5yQCUlRBTa4XoYb5XMA3nYYv7QWQFwv6w16vI0Gzemv-3IEaL0c4gZ-2WgOfcFUlmu76uMqvuWzbsy4srvIzU4173kdHjeEZrwmOh_yeIGHNwBE26ADG3V3zTKnISLtVPFBg8F4R8_8Z85dMN0ca6xAA0wnqVCdA21NSmALznucRPjksich5_0hPnRSXyYkZYoyvevKiHKTBD0Bg26t4Dm6gVEs9G69qfcSDeOXSGNjak7geFkZvsfj7vBO3SH6XbvgIkjdQYwBmP7Ckk_GON9DlsZ7rZVhJhXptG5XDC1ZoBt_204SqTXShcwRSDdrnWjb5eVnpGlmtgMCFCl8Co6vui5aG2bLEnbQRvnX-Biz-mkX5vMU0QTJlc0Pin0n5Ey2nt8zgk2xPlwPMtL56NNrnjLF2bKWXZgRwJER1ccMNHid-iD4y2L0AFqBDLj-TGajxxv9t_FNn6Pi37LgDRBEefBMHK8UMmmlvFqnrDzEidOIHMkMX_FMqKabbGC4uMwEstiQ1lJ8jAhzXovIkgy26bsra3gd4z2O5MU_8-lOU60GkyX_LvWE72qxv3CyNsdVclW9dpnndYZWdfoNFfxQYeUCtfks_o6-CSoBlLSHiIKKwGaI4S4uTy9Y4kwUdDu0xYPs_kDKEhZ2mvI6e2sIfXstwHxBUnUZaFG2-SeLOx7ylqlHEELDQeSDUJjWtf5-BqrFt9GuEIUr3N2g8gq4YEatWT580cJGiYRdjnWKbPYlJ77bL1ahRuaO4SSG3eO8hSHldB4QqNt6eWEGjBJ7dpy073mkT-Ct5tVs_Olrv61YNQPcKNN5iTQyFgVEWVi1eTubxXik4h_DEfIT9Q4c01H_AQ5dqOCG_i6ugCjZfGvQL2VELMi0LerpZ0mLRSwhwV1HDyp1UTO76Hn8wwTrmazbbbADsaAreqO0iiHaHrR_nvPAgJcIHXMYxUGKBKn2D55PghPltXdXvgg4p_tXjLkW_5uJKnnE4SAwNXXuuA40pMXck76KN14HtHWqh4TAYKj-8J13lLdI-oYYJuG7JUP0JKseBkMYvLpl5ZY5Agg914T9d6ViWyeQ_5s1zgcloCRuPfYp9_o2_pYkIniBm2YfF7asI5younYm9lpYaolLFiXvY8K6ygLu7ngGv3d5wtSBjtG0ZKdFtWjHeT9_i6r1m57wRaUfp_rPf8cldjU49Qko-4WhGUNxj9O2CWE_JvUfxf4ZJoHmX4Ppc7K7KdzXuqAMEZhFsl8r5c4CLSumt82RAPj_4BsIF83AMrEvRZ-jBAQI4z-t6wrQtV6kYjUMEXIhtpJEkj1S9Hh4mXATUtAgng1fU5Z_7nmN-v6fEkgicSvhUpuSjAbICnYTbw7gtj8pY0-MqKZs37rQg8Z9t19Ndpfd19jS8GVBn8fZJb7p08v9Yfekz10Fn0LfJsVHrowiOhOeRy6rVkB-gzZQYDcL1NEpkl8BNim4RD0ZN2trOwStXQXn10pqNjORT3WD3fSIb7c4RS2vPo4fscoUSZFLl-UcJ7T11PjwAdfKnPRASmkAxqDLNZaFxEojNYVG7Wci_mh0KgdvrFSQF3lKBDpM1V_-2pzIjSMmRaApl7lgzJ9wx9238alCTHDmP16BzVFGXCoJULl4lPLgQc1zMclMALzg7o3ryvTnXwBeX1-9y6VDC0Kg-oXokMllxMuII9LdPxRQRHV70yGYxkYhlAIK7O8zL2bqGU8UIjzaIEn_7DS5dY9jqpN_zY64fBcym0_X7e2S548ulUXc8HgeUWg-rc8BGsH_isfCA_Qlkfii9-6xxLcM6dMCPi7pLic-ftJeTTDl44CpM6J19g5uy0lB-vs3qn0OlWrg78VK209DemlMldnMpVKLnr5AwX4dluhtQvupKD29wTEh0RqVQErAOOd1Jgks1YELu37H3dR3AmCjLjETlZ9zeXF8-Nb1KAPR-7R4QDQ9YxHhePXN7Uq4B5WNYOfSv-adGvIMzGcP2oz55xLiVlqZVek-5XDnEDnzY-WrZQUUqmui-Z1fPao1OiCsnGpfNYE6Tisade5QhOBp7pWd3Dhezyy1OG44zWLbJed2Nnz-RmcXRxQG-1_3MFg1QI4Rxn8knvXhvjADZyJCqRwlgC7Lbs_vwmShmn8r26Ytb1TkrHArSBYksvGy6QdHui9bMWMa4g79ouTbtuFI76FkY8V7WAw-Q_ZC6Vkv_BhO2-WJNY4hpUfYcY3PH_ctpm3PwabxyNhTt0eqG98m9aWSSz5O9BlUxcK00uLIDQKR5qZB37CCGu2m1y4QRBKdcm60wDZe6rrjd_vI6VvwblEKFSXX6uVWCwT0qt7Orcuq9WdGwV3hXJvHRKuPw5JpHEiXSLwpMrBh86ieutQvWZln92Ri8NXbURFByJuirHa67-ty8cwqTHLQyMAPYIRzzQU-o1oAil5APzyBc25A8vlyZsqiGXHDZ-cWjnH1CqVuH8yRB9kykh-e_kXnhP-SIEoTBR5oCd1Z8Oj1qibJneH_on18lQHowkJ7qNuVt7Th7vw6TW917GKnPgVluMTSt3uLimZphx_ZQ-zAibT82fu4YjyRzCanfSwepMYq59CO1SksrfGVtEvSXfK_IVtQVqNbH0S_t-LQuNcnkhVZQERqfb_SY2cgx_ZyWSXC7idoBUwUR5PMg2nf5i-zApyGWRotf9uzwSv4ZCn94WeREe4H4EY-6lE8DoMkGe6zxQYQT2Dp5nAqzeNqFiYYLIQwD5Cp4cjd8-ONIOJGxiDzcyxONkaz-0FgSzn1cYamLkkfYrCZMi7mHLqIT-SSF-nS__Q-TzAFmpvuslIrj6ve8DlCVimW1soSidX6lVclSvv2pQ1XOpYNeIKvSx_oqmoEx1wNrp2e3dngJtiZwofsDvj0FZjcbknQa_JCj2uWlzeBQ6IYF0ubxL-cL4wdYvoP92uQZg6c6KUlSXWGmQjSunPKJmehz6XRyIPpNXzpiW8fhh5O_I3RRUP0xcKeKSGcvxvqPAiZ_NM7nnsPG8V1ugzdiDwTjdIiRe7Vajvn39dqy2L7L9PDjaQXwFi_fRdzBpSH9tN_kXZ0__f1P5gsNt90FrJphFrmZHlai33rCFQ07W06mIz1yJQvptvD6oqNt-Ex53i6Sr2y9wDqYRQs7q5geFQpg54FAzyoW7t-wrqyPZvkzUPCJpdVtwLPgNOra1GU-7IN5FuXR_pIhxtmlebJX_BNVxupI5aCw6Gw94JvBWRrHBAAbtPMyNqtGOl9xbz20aqzyrKCecmgiCZuZuE2MjsoL3a3yR3PMeQjehjwYUCTpfyC4t3_PoXUW4nIjCLll6CFizgo4rzvGmAy9dMw6pNQ1_hksrz3x7FvYPZNWvVRCIrfqGPxPmW47H1vUIgU_YIN_YqT8fIToc_40Q11tgOhq4kIxSl-yxJLg6G-Mz9U2qSYuJCJ0HXf8nJo5y4_DvFRPWQJkwyvXTs-5hFRtMU67EQ7ZcWvDJLXK2VQfgCTqiH-kodSp6GU5ztC5O6P1HNQ4VXLyYnGJYZ00HeNj0OridkPt2BrqMOF-nDsCQdSfj6fJOFuhD4YqKW03KCoC7iZ7PZEysyagZAMnspEJnBifcBBq1G4-XlwJMauGKaovSQxuxH0oUvkQdp1vNiJaP7VIVP9DtAf88ge-r560wpx-a0QES7sWQVqmX-ushEsX_FFQecN7AosE0Fjjq5EdCOViM-EG0lQ4M7ToXjSWtIu1wvDElxQAM5mvbTZv9RHtIsiMeODv2auo0viqLhT_ksGc_LfurESXgLRijOCoZEdX3ISsP0ifvu9qbaAxqG8I5QOdcMqdS07acNT0RUBiw9Ca1S-eBxeBGWoiLq4GdLfqH6lpYbR9M-I3X7r1HaHZaxGRZ9_2zODFFngEvVKuv6mNmwohY2En3wUBarIm9Yv5QYHzHJI9wmlRsvyxl6ldqE4V-UkSkGa0fOvBzX_StChM5UMWRswfBeEExjqlWsz-BrrZUj9nK4UQXnA9aQjnBnXNj_qWi5fquKm7KuCoT8qhWx1bOCZzj5T0aWNldSErnrHcVByPWkSPFEpA2trn0ixaP4GI6cH4V9G4eDTvCDDFpZJbLl-mDfgox42gCHDwFrYsLfVhQ9MyLQY0aj9AcRUMvq4oh9iRnvBKkot7YnWMVgPNG66j32w1Wv4bV-anDvRAlFSRnoFviYdGTdSfee1BDjRiB-tpwRtgtD14_duB4vcNpSMa62EZMlQGYbxBL2UKkW3kBvapHxk1sJ3z-LCtrx2vdBPgwpIueIWCZA8B1uQ6M4apZMbm3A6ZAAgIkuFBXKFxZf8Zi4NtCYHuo53-8g3Ei_RPwy10aYPf4OtPZy0P_u6yteLLWRHlindLYDcAjcTCApFJwFb98mR5sifcv-1gS96M0kbepzYa62a7ehoj9GYYX5awGru2lqkUZ0jvMJQA6P1BDtNxL_ERXrdByI6Vd1iBKH947i4mXNAbEO9u7_objlwuJAgw4DvG9jMa8obWfh5d6C0vu5Qd9b9FhenaG-11vh1i8id1XD9aoPpEkswttzsBf7x3FAdwox9lbZ-7q7hgXy54Q6jNYTDwhrTcf9yQQnTm9iTbLg7riMf9JW-2ykP4fnE9vROtstk6iWJTHxi0uGQ9tyKivAFniXoh8wFXv__5S6k_Hb1jEAVCP2OML033yXbaGIp4pwIRPcmKXyQ9_5AqZCd0BnOoKRVE7TwYq0IktPGFdxPNM8sTXDrE7fOxT4uYDMfr3kZUzphzBMyexcD2UVo-9hZlteL642clGrqWpFo286kuywOJz7OGir9puunk3U8DTAa4L6QxeKFF3hwVy6XnmlxAG1GEuG1bRpZ52CJMA6xCCbmfQe9Y4mfohd3thbO-2gHkBAora5xaiJE17NiBX7aaao31hGNWQO5omkivQWHUitoMbA0XwXiXLQXKXi47O8_RfOYIx6onmrKlgraMEb97t7Gx2D2H-q1E1cRbnw3DNCgsiPdmPrq8wu79FmnnEDG4gXFpd9Rq-wiQdKhCZFUajK4V-hxukBLvlILtzwJK27Pa6JmyLdEUqg-HIycIXHIkDSWRnddYQNPFIECDm7UZdbQI_h9ipqFv6Kgq0ausRX8JBFYtlo3EMygI-B07UhFqG_Zqf0_gg7z-pAo448bspHH4VDyg5VQJySLo7YjIFdTqkAFIq6F5XQ07-a-1bGoBXfRMCt4oM5Mvs8BMOcz4QQ8Vxez8KnFlqg-Zj9dVfq-r_PTOXT7uZE72toJSWvD56LhTIPAN-kYWNsC5hJaPcETcj5aoP-HVQf7gdicINfhZPleunoXQRN-0xfzEBRCyxide5JfTi7Ngzhhk9b7eZnCf7jNwHR7_reHc9ik9Lk1T8oAzKPvS07y7WfXH0F0g9LDumUwR3Jd1OuTFezlZYPLZfbo0LBgQ_OJvjja37OpuagPaWkx7o0NKZkcENoLsTsUWp3cPX5zWnazb8FD2TR8-u1NnDYi6BNsPZz0trVIhsnQK0ZAld5i8ZwiFQGf0cRNDU9DXH6iCtAGaOFColLwr2EwhhDM4bVyeKMG1tmbopL6tO0tKl3YOMbu_itw2rMJITjtIMW-tlYKucXQpPpnyiiZ5ueQgoYPnLBdYULmf_RjJSggmK8HRCG-EBkUrtjrd1-E9wC-O1ZCs2DPz1eIbewcCAJQn-I7Md28lpGkcfIcaU0inS8yckGr4gIdDGjFa0G4vacsfh_cPX5u3yjuOxUnK-VCPvI4gGHqTlT5Fwy9yCX18AhVsfnfeRedIHx3gTS-xM8GQu0T-2uojybwr5uGLRR-ffehI-Htcb3ay97mXcKzYnaxutzsQ8XnkAdSubucGIyu6egLqlvhOkTasbqgS6NM5Tm9hsZJxnD17SiKKv3MVtL0-T0894j0BQcol3Z70dZVS-39aCoCE5W7BEZ41v4kCEBfgxaTBWmE3jfijvVwferUjI5ZHL5w3XRpodzH0oTZTLv08grRyTAiLiO1xUa0QS05FIuQcqWer_TZuL_YkG5VpVorzbr-l3rTjVGODcLm-DRWwE1OCzTspZ2uKLsH5YSw23-ANQRFYWt6dD9ybxVDbk6uJdMUMOFNULMBGxOQeuwffekK5BnoemdWH4dNQTlllRVWXkQ8HiUMVWK0k4sfOPxkLDt_SICJ862Va7jrmW7B8KhGle3EA9YPEVTUwc5Y5bA6QyunzUCRBehDnh8KJMK4JNXPs21ziCH0S_dyGCbleUwRo5P057DBvnx_gGIKsyZ8nzOqBySptsspECY6wgTpG-LzEIJ9rkimOXTsI4Fa66HCcK7dN0te12CNh_E3nzOTeULQGTfbY3iIAq05hYkRk5m4muL9hCM34L6LdPt59d_hUfgt4dZn2cFfa-TTfNcHY1POK7D3w8FG95OA0rBpBYVZlmaizfsQr8Q5akDoYCXkFA060qcpPrLRpOH_jDaNAGiFi5RS0A-hgz2nN3ZMsc3eVaqDBtMtmFcAhoV5lcA_zWDrsOA8TyDLNB1kr8G-1e1RtuCorfeGRxPRFYeW-XyIhTIliL-zHaAytSeMr-ogLWnBuoZCY6YB-s-8--ShhWeGuclIZeukAD9RELYCoIqODByvcLNxqdvrnxy3PQSvMDLHr3jHPm9PdFsREEHdoh3dKFQ-mCZvDYSjor5-0zKAPzuD2cAERd9Swi9AryxVRX_ElVsXHN45yslsscoXYBUwaBfR02PsG94zKbo6-UdHQxo1e71dSlwJ89mq2OMGVTXS0QQqRRJvhaFaI0KkU7-UQcw97G-xBmtIe5B_GuQqwvDqwEjbGG3puejeWTNdkFNlQLnNFYOzS5y4yPEohKBFUs1mRxBHOGmqHdd6wwAkpnhjieyWUU1Fydc2jM0MSYFx1dgXNDursQj3XC50HQ0vkudz5t8ZDlNFCdaOI2zZoqDaTnknPlC3qRiBxlrXeGHGuRmKsAAPgl2wt7Um7Xn4TjTqCwoQEbW72814Q2u7H_OlaZIIrTJN3ncEXOk5XItfD0SSISVdxumQSAcxvVI_q_JmApslwQ03Rf2frma8E9T9Ti6C8jq0WUF8cucBpiJKahE2X4kVXnN4xuMNkozi3Fb1Zbs4tEgVxDW21AVuLiyw4rlXk4w2fSACE6Kgce4AGNcMJKhpgSw6X8tQ-bubF2UGVOL0CDsM-tPyUzatvk9-Pqv_Vy_AbCzzr8mkodVjd_oENJgTgJ1eoAyhSVbsTu0me9OAVYmC5tGExiHGHaI8Cubbq-ZI_2YWs0MXnDL9EF12lkRg26ztubThjJo3eZ3FKX1MFVFyIwVmWEv6EfQot9cP1G4YZeBvjDH-xI1Mti8-Ra6hKvvPTsoC22hDaIXCrHAokJhEky-foPXpdJl8sheDZdhjY4bU75GhuUHUJgxqLKUrlUBLkBVShQnCPd4KfdkQumnCM05UdeA8vyc_9KL-nqHSUoEfJUYO-ygM2sUUZJ0xtEK9kG1P9OtulSuc4c7TTuswxVbCeAN2Dh4Un2By8bcUMYWyLA03ADDoSLjG-_KGjWe1Pvr5XPGVPVLGFIeYwAqS8M-9WtqRpxoRbmBrulekykeYlg6ZIhKXI_HSJMHCHNffGoAUgDMT772ySvlE3xJe3MKF5XEnIwrYJzsXwmK1MUWJDT9y9gDThnA9jzUasUskiFhYQP7odspNesud3c0an3psJyk6n4vGL9nayfEF4QtUkg7kFAKB7BhavZo7G6J8eVTBVKkK1-fpulprn6A27j_vteEzdk48W3co5Le3YRd2Ekyf8YeQZIEap30702Yi86hYDtxDde5wtMdxlHZccczP_QHPoYP3gba_BhKxUMjGtX6zxaxYW8O8b9Qc50Oemlj1zMcrqEeWnaZQ1Ig9ZZgzQ8WgOgj-l7k0B9Nb2O7edks0vs9822JLc8qTp8cYWu6RrznEH4fZss9u4jakmXf-D5URPRO9mdmEoWAAeGS8wbcBj4AXYhRkf20-a7x72cFCdm5mk7mVURjt8F5kFdPkLvqjvOOtTI8B2xEs1kl4jIFTQxlwDkS4Q3ENmVVWXgGSTrKHWe6RHgphTwvZCXTLSr-ySb7dCUpP-FaLYGpziCwUTQD8oK7boB2iGp3tvRii8NecKtIwPpzvewsmC49vYUABtEyfUpNVKFEf9WmQaEzqMMoI9yiaaPwawNSc1bEzWqa0D8PgUpRtMqzhnURJULaAgOaeOATg7GAhiq7Lwg5KvEDBWpZZtG0_NymHODEib0QmHMSVaNpkAypruJUXBjXD870rlKw7BxFU_J028EQRo1vOmjgvPmAqOYnNXMZ2H_LFyfSMMmpna0ml1wqagi0aD4v5wxvbNXK5PoE0pTDby7GN_58qE1cvxtO3uYwGJFtqhh5f74YWnRDfK1w07d5q1jFPZ27tBy-JLR0ereWwybIx9m7ZqhbXL9dF3AkCx5VjN22KMteCvD6AcUMKJr_Ij7c9rSmrP7aHVZnIUypH8nFes3-cNCle-PJZQU3HqRhNWcPLPajARUBFDt9xkXz7Fp3Cfe1W4DyT6wj450GBGNW8hMtiHHyAQekNUkksmRgKAMwY3C3FHaASJOXRoM4POj2vmcX9VuOMsHIV7M2Aoam052eKOuqZ85z7NLhI2ev_vzaBnddtGWZ2Vw17STlC2DuMQ0NTO5k-vB95lF0ub5gfz3PV9VeZnjwibFm1VSPt0fVrT_Bviq6MnpU97yPTHYL2W4s3Pb68O7do3VhkDNUxATO1lecCI4ah1eGqoqGcTDP4vJtR7ZlzZe5dJvb6KMBScMpYFX85qZjl02xh2nlV68937RsyxIsws527tFv_NExCxPsQJMd7tcOIkw6_m3SHQ3RxIj2RPitMyLqYb3jXmX_DbFN5Ib6XlgOaqRaxJyHBDKCTf3Crlar7oP_t4NPAnQ-geDOUWEcr3IwBL0bfpQEDgw18CFv0T1rU4rgbCGeE9lQvz576xqeqcIPBIw3qM4GqT6Bv-mzu_vgdFqWAlqZ7l11cbpiZFKjS0UgsmZNiFs3Xh8T333NZWG-WU5ShgBDzpKeT87ksz6QgPW3C1_q3fekN1LndVYawl5wLpfqfNBa162rGc_-DDFS-HWQd0UoWftdP7Mg1f8pnIZl2YfWDLRd3oCgijUBywA_d9xa2Hrfs25WZUx22DbcRRRdDrf7PzGKD9zvX61o2xhmBkSpGj1s3I6HP0AaBukqtcrP1B26cXroGzHM9iE9u48EQ2jCUfEquLi2SeiRh4U2AlICsACT_D9MW36GLMHnB518nYgOUeqApduI3duXYB9q7Fwg-vekhS6U7yrZp1JYpT_DAH9p2vQAAGU3P_diG1tnIvxIDfmJa1o0cyVpdfXgYc0CEb8SiUUeqPCeeC9qgWozHd0X7ukvrLT4HGGr5yXt4wn4G4TnTFYkY0no00Te-vFy1S6JxNhVFw2GKQPcnBXDrLEXger5G5fMBoYo-lzccvBO9qfgiYbSDDVAw4YtlK71ySoA19idEeYmXt6vvDBDQ-7RQA_uoOED4tIAKPYti37_fGlmsb-_VjX2ey_x152Ud0U0wz8sVoEt01YFWmHGfKI5_xRAuFzWra_qtvo6_DqyOwDwmLra6GuGrnHyse6tfrSd6sfEnyWECJ_NCRDK6Ch6Fyc-52UqN7tn92O--056YjahzkKZbkZ9V32SChlyZ3MfonslJCFMfZa7HKu0KWzzwy_fGKa6qzA1e2XYH2YXPb3bmupAk8WsRu9nwIVmPQejB9MNuShUbK-UvBACkCzSLLYfYA8a7th_B6jD3kXzY-25pYm5OnkJ6mgDWEh2cKdy1eVfsYMsAJbazgrzbdqOzTmq0NEY5hpFAL1jqIKuF0DyDsfQ_iPCTUcNEGMitWOUhBbR6pHiAOcgLe9e_4vln9wp8NS2i5r17eNWQWtW2BytRWxJczZu9eENTAHssRpvck3vaJH-WRwj43ONHoJdMrtqjAnex6Hr3m6ppROWVUGD9WWmqwFtzi7WyoOtfwxzhhvI3VIDKJA3jEOjaGi44bcKlvNc1Jx8DNZgyk0jOny1F5LG-fsmNx3lDFbzpI871P6FyvUDCeZzjGdR4H_U5dJAfN3BqYFK2ov2DuwDEr5NAY2LwjBUFGyoAwZwIj-oqacapmckyakqVRFlqT8Nesbq-ABGLlzDNqVYB_UaeZBzwbU13BdyM1VcblQqOuCp4njptNeWZji77U92zF26cRfzImBMqz-1j5SmwESnttyKwm9EuWH2h1Bz2yQEj4M44ekoBPCIw1vI7INjskOsP7nJtoOQEjG12icIHraagQvTv3lhg2TZQWXFrV3OeQENbyQ_PZd37p8vqzzqkn0D7qL9M8716JjIwBaHxMZUiJXzfjE9PuVIGdqTSbMoK--vB8mQJR7Q4mnivLUXNAj_MrqNlmrLii_uilj_fDDqrO7N7sHs0lvN6g6_kvDak6M_u269tLoYV0iIl-k-0ZQKhWN9BXZPffd1FuFlUGyMzoIVfrlwJnI2VlbpffLjyqVM1vCoA96qO5RqFcFBDxBBj0KsXiW3nBGMFP_BxKEVxi4OceG1kDNV_CtsbHkaSzHQxaMHOm_Vjg18BnKDj-nWEVE23EUTPP4C-1uClJicPiwxvutRezNSjFulYBVqtyH0yQVLZF5fQMRgZjyzxnwikr7sfX3j1QzjCDO021irrAbHEo1uZoJ_6PyeNT3Rjcqlhaa-z0vr8OO5k_tyJ5jCGdhKEyok7nhJBDZChhSONMP6_4GsPGCdTA-Y_z4FzzEB82q9fBbrZUBvhuTLy3TykiOBsZHZb34-plBlonHK0yLTJbsVw_WQBLBi_V0T7bzaVdTfEuju9VrRTjzix7UP2l4rvRLKtKZnqbT5wG-Lrl3lwoRavvM959PXzjPSI1xyDVx0pepn0EJQN9Oawv99zvZ2y-VEJoyyi6O8KNEyQ7yLr-S-4hcJaI-LNI-N-yIGnWjGpCxBpn8KWY8V6VaAJf7OT3EAUzG-mMikYDbBzx_ZsSTe7zDCbGocyEOW8n92_KTXxWqbNOR6aWeLo8R5Ci8H3uBCRcaENBQwzTTwpYZDrqJwXbT2tgo7KI8RstCbgMgNxhzOLFLbiouULRT9wI9s5lt_cRZjX9-WSvIXA5lFRguBg9Eyw8BO3E-G2JxV5CKQX3bAevvALh6OrlJzPdGZ252L-UK5wchaVRMSbihL7TzYe5QWQu-lx7RY_QECBZVf5wEz0vWtUy6RaXN_o7MbAKfOVrJEeXw-U4z9D-kq_SdjWsBNBfmfelz8N5uX5hVQFNcDeMvrp8ZEkbMQClxg8UclBqyAEjKjLoYdgCBTbYVQxgQESFXLgk_diAKsQCEIt50gVR6EEKFTsk81wWJ30KvzWgCcQC-LPWsLmB36nDqqqhe_Aa8FugnQp8OPkhdSyxlgbNvaFKo6xOI24QhY2x5L9K1-jHJMa0WTpeYiGH5SsYspv2kLuO1bDCqgko0_5L71lHKOk30Zr8LER1zKxgymC89LC7kc8ovdoagMYfUX9ORva1xilK-Icl-XlUNjYk4tjo1Dkx8-yvXb3ljWb_Yy_P-YqQA69iiTEMb-TJpjJG5_UT0a2Y6tIwtTsP0FDLETerrniyjKaInxgVWQ3R0_XRxPi7TfszCI26mJZZsIbSFf1lVE3RGu3qhuiqgxDPu6UJIhF1y8geybezKkYOE4vnUiV65Kdx69Vt3PyBGarZColLe-a8K6RgEO9zF6tNTBBcieaBEEbq0deWeLgBbnzgr1d438ELRRkPg0Bt86cI_yEBlbd2IEd1vBUAqbl-hw5ye9M5GPzVEznSedpovq8ZnefPtgHtya9wwHZWCEqWmJ_9b0y4Zqhqu2Zg_iZbggz9IDZf67cf4nds8U2K7_yGoBZwlIFRfgdJ8oUMYtyXfkh2LR3PnpzkxiB1jNrdZRNRMqBxQxQ5w1ycEQEZLZ7QHxaueTrFgs_u6Bfouk_PNcqzF2rVHrbR0M4TzQwpPD4JByQODegl_Bcmz8CMfA_lcVZEGWjuAP9h70WNW9AN36Oi1aMq0viRXCHUIJxJp16jsU_a5dRC8BPd4ii1_fE-SjNNJ5vJqRPP06UvfBaN3tZlpG7v38lLqItXG5HLXiP29Q9H9zGd_20zy2C3SP5pzbiuHH8uxvzmDJGRXBT1Qt_F2xlm0DEsmNCWZYbDP_mYkRoYqJHESpMh7AqI1l2jihW8GiokHYyOVDrYG_ynJNbqyWc9kBJKzD3BmhKEnCA7KZgCwQj85S1ZqR2BapPdfsXiJIJfgfl6SCMmRjPg4iXcg7jlFrnGwUMKlj02lqBGhliXJsOGmDiez_qVy0FNDPZEt2J_D-6UdZs1ThBQsCWGsQlfQCzY0W5-xfYaH77BAO2q2NUr-DhfPm-OW2o3bLo8V9u1ZqydmFfgwEWZlMskRI4DvQW9bIa8Ta_tNgGuJtsClw63Nmy8AG7j4ZuzlomXNdUNI-8MQ-ztRT-IB9p0ePUGqVWcB6zfbZSkzT3Nkgwuo6TII62nNGwRweVzKuYFuOoGWeZ3WbzD9F3VfYFNQ84vaMmcgMO9IrnpknXqSCIaRDqVOIQSKkAoq48RZSoQ4GNdfLkGCvrfssLcPrT8IieCm-qCdgK0FUtZdIOX2Uzc9SuzDcordk3AwzVqO-9u9BVgsX4EmaCNNxCVewFqhS2mnyG8HAxx53_m4bPFPHWGVYVdEkzIBE4YwHzWvmU_BMOVaD2MbDLmN_VIjVr-P7YAwdnv9edx-Xb3pqDLI-zYV6mxn-jRtF13TioMBmF6u9YdMOEQ92x2htIKgju0JxwCPNW5Lbk-u4PyWX3Dvt5NVfBXtjd7PlK132Rx8d5sdYs0Igiomw3CSa7T3dtXXGgVKz1aqOvRL-82U54dfi8LHhLnsDJhWpHL0xRZJraJ5BNUO8zGGlD-loMe49GeX8ls0_CcVgtxFAniCtKENOhKEB85N5T8YZW8Xyvaqbqi5zPm1SEzFz7yZwrM1Bg1_W0ipbx82aaspI3uCzkXs8XG-iPSTbZkzlgZqhpy30ZPJfnjb3Qduhu8yMKojvtDtBd0dKLuilCaJwSI9DbBQfpTVxvrWeNMXGfP6bi_SiNFYp76tiF8lNdU3hffce-5XCnsZKhKN8mJkBRXjI1gZ4hLDxB4GTXWV1K6XkJZT5t0h24W4zOgHEpz7RFuNEtfw6uj2CoOZ3suMbJWKopoVy-ogikXL00vBS1OMTe-gwOv3XXmaXXHn0DbGWr-A2XbL6rB1tr3QYzGS_tgZSv8PG-x3LMyW7L9WYVDGPtMIUKcVNgLiTf496ztqVRxeqVga1TVk81bYjtX_ZweVLVFLA4NuvG55jeJ5ZxEnkvTABm9nTOlDhVdCK-wmtOq-rNQPgIjmWlWzquMHPr6NqgNYf1UaRe9a0hpnprklQ65q8IVuKUrSj7UfNpLF-d8DOSijyyCrhUhXs6rfCCXGuawOY3VYmFBnCTfkEtqX7IvQ9RkOsAFEvuM2B7ryoM5-4SszPlPtHyGPrEeoOk6zX-4Rokbvc78Fwo2AGF0ycfTvyVL3wVbLCghbFQS3d22zsItKAsF2FnAV0VJnp3AXB9tiiLtnRTBmx2WZ2jQLiiejqC3aBdMwW7pgtpxd4okjql3zE4VbDkrRV5Lo3fRhXvTPB_ExikgpyW6mISWz5JRdLxec8fYtp_1aHLeEDsDdfLNetuWBF6G0FHCjfoicZKPVwpPGpj1Rkonku3cJxCn7NWLNHk_AtWfRwGKEDG7wKl7hNpBG4OiepHYGjnRJ3uThFma3eQhXegdbNxf6gKQfkHCsScRLNyWLJnE7N6flOUWosz4A0jlXiDaw33U8hGSr5zSf8BtRqwp6b2-QhTK5R5CHWOw5DgCGt4mmK7S_za5vWfRTphxO1kw61GJ_XrgU9Y3c2NgUIRIfiWFRWmxVOYxxCSp9vFXovlknzvtE6x0yU-_iPOX2Q_p5THgUrvnxy-A9Ig_l1MVmzCkMXgE21XAXpFJU-iZS7Knvqlah1rfiN2zQJh5b9Dy1rU95cgxapLoEv0xkh7k5PlwG35sDa_CZFVuvqhwYsCOlXYb9CFu0eWgCzBEZY37hTopNKnOaqLmHVaHOS_xUA5_qlLF2QSNlby7yezJuFXEZUS1VCe9OdymEL_mc7uYFJY-0bTz_TaWA_m25EDwLm-7eJasZVzXCN0Fs3LNQW-6R7Eqoy-OfKWDr3tBFgLe7zGsgsthY2aGEjK3jVyh0YbUsnx7pTDoz2Ptqr57qrqbmTnPJoxWTUE87x-XAfPlOXR9zJh3sQw80_OUOR49QJyu2DmFuX53Hh9J0fxMdTugQSdHONm0ZdgQo27DM7h7nd2U4Deg_S7cF2Mh8cn7BuaEY-WWrN1gfYx2XM0c4ran8UuURC-Id_N_JI2IkvrPS1n7N0uEvUfCu0b1TvKdymgM_SnCbb5qlQ1atAH-kDR4cZfKXbMtkMUmuFBaDrAqXqgXIdieYTZ015JBnEYKkSmfHnvlvL0JkkU8MnyOoD6C0PHBtfkvz0xZ-kAqNKqV5LbGMyRpPtbwxqZlHOojGHLYKgsMklzsuDYeDYVBIVoWA17Me8iZTK3IsJSmtFXopESuFHe4__puYfz1Jyum-_GQkF0vFtFLBS_6kOqKYvIixajzc9iFKpS2yVMAgoysXyVa_lPET2XIkRqvdTt2UM2GvbSazeCPHb7gB552Ha0Ovt27VeBDFYOulNpAaU6V9qZOhpQsD3Sva43ibE5kjICj0z2LkrwB60wU8ZWDJhnqTHdTcLDFcChcoMGXtLRxaZQUf2dnu0XZdVvxNqAKqJcywu1hioekR2xjhLssVsudFM35CKZy2K9RDeOQSGPQTkpLjyn-TxpHvr3GwxpIm_qmooFfchqPWDSxSHec1eYLpkpemQw4PVwrxYC4RDuFGFyDQCuRikcOkKi4jYZMIpfKCkLkkIetoqZq8YLaKubt6yTb18BOw9Ot-YIV8dEgHR_riPxZBw_6b5iC_hvVir29PDjlKsraLDODj4H4wjnPPNh4IhPGhiJHERhx87gsFLTZcVYXTHLRXIP7ut2RNnivRJkX0bBaSxD_1sWVkJlBcI5ZujAVLlMb4NepKo3_Qci1xyjMD0CtM9wZrvyUTjsEIlbVvrH7v6wXn1PUQg0W768WKFRuDP55RIkg2GtGrgIFJpLW8jdtbfLHzmad1TqHaDA6jRXiv2ptYXYdemoEqeAfM9W2Qdw5epqDgX_qTbMFwdP_zoVYy27cLemp3j4HwSFDb86zYM8wx4Xk7l7SZP6ej0qcLK6D72d1bAXWiyUw_RYbom24sb75I0PgJhggnIBy_brdn-_8Fwxdmy4tQ8NVAaR7yjnIfIXilh-v1K_lIPTQ911k5-bFxlChF3Ue2dsdmsSTSwHeMH35O8R8ZmjXupe9yfKGuLH-SRcfRMVFl_WcAH5mI_nG4pMrm0AIguN54zIwLX1Vl9Vz0Cso9VLvWLzWXeXwhtcnrfnXGkyXTbz-suMg70-7nvIJ__ExDeZesM98OqQQHKpD9IBCCWn1O-DWaszVvFB3hXYoZK7x2Jk1FrL8p-nR736j0oUJzYTsI7f7gwg1qIEGYbzj2iCM0E4wZb5wRVxxEdMW8yCwTZ_Q9GoEd1in8huq6MSAZk8k6dEvKKojVlpnk9Tcz4dxwz15hMRkRHsgbnS5Om_5vKc2JO3KLSf6THRAwDmSa0RrAfr83f7SfHpLWkwkaappIPW3v1Rd32Pg0DuxD6WO5xQuYcmbr9cQM8H0wL0KXQ5hUK-e3VxdG3HdYcYatjdjuZZ-R8G_vT5BkFcaVdQgI3bmbn70YkyzI24djXwfbgRkCboFSCFdhr1Odd2Ivtd9sbBtjOLmIIagXRuU3WdLGJ1JAG13VuwopQABx5oe5dmtYC-RUhz4fYDjmGay_Hz8GHwjaEMxmqbfqpyhyIWR8xlLgVXbwRdKZxBQu8UrndnZObNZIIN0gGkbixCJk-TTwZdOaQmazdnzkDRWpxzqHLfCzGNm97rair0cfp1d6nYe8xnEm17RmL9IlMkHdfImxpWr1XjcO0bgjsUfuxFcrr0cTIW8vrh3H9HxBYnnBht7_oj_oSOLouqNrwmACDyXXlIHl8pqSRlzLsIRUMTFlmes75SyfwDTk0cu6uZYv2NWNRO01TFdWqzrH6ZTW8zn1FGDqu6jnDcoPP_uyfpy1sKS6CJpeMi0U5-PAaOpNIB7miSWH11JOVPohBMEGL5fF-qwMacPjeKLdc0x99zS_jvQ3rlBMr8D0i4TPE5pFQN7LXLqGrIiGZ7LG5_01AADhEBcBxZONSHAgMOMp622m3YIAX6ruWWkw0vKrkNcreAzlHCQ45aSMc1muF2xkUVFMb_fk2OmJYbedNrMlasvkHRF3R-QVjvu4koTUOXFLdZyrUSr2ujuFlkVktrXfo_i4Jo3LO74X6jep47T1zL0GrxTpp4hSPFCIjafkmZnF2tM-rJsYvOrc6sNd1ik-rHJFdsjLQzAV5BUgR0djJ6TK1mBBjs3FAPDQVW4L-ZxkgDyCDQIuPYi3EkLRioCManJp5wFAgD46Xq_d6cIrLQAzIYmc6JenlirwrpgEa4IjH7yn-IgPyr9lsH9S6P63hrMiYsUXhA7R8V4GH23FSNh8_60IvLNEru4SLH15VftDyXVMKvGcwzZiB3jPORUYb5qJlndAw_1c2RXqAjLyikyqokZjpcfWXJTcjENYRhqGhPFLd3QIhCw7yvpNLiAaR0g9aK2AM2Z5de_9zHG_igkW1J8sXTEF0DV68hHj9Bghdz84IQ12HbDNGG4ykI5yLp6jVZSqspSVMVpQp-tn7vo5hIFIKkRMBD33fq-E9eFRZs2PAnw5znQJNaeETYySVm0z-eRqj1_C7HZvbkwSUrlvqWD9NTZXF-fBcIRCADysYEFP4OZX9QdCQIlxYrwDU9XFgKfd37uzjdoZYHXKsOdB7sqMtabWXqz3te2BLjsJcvAOsHH6jLacfKB3SSSUkK89xQ-y2x56y0NMTr7BymjdrgEQYm_yHsk1p8WPrdCFgqVfHzgXIVzaCMd2YqH91FphVVw58mw-k78vCO_utBr7zSkPgbWCZU2jkBB_8_0sfdn7gvrhTxEuBgyV1X5Ucm_nBWiUfLYAfjf4Tqf00p6-UJ2axscy1aAuURxjUBfYxV4ZySWBY0ZsrTJpgLF0NrENY0VS0SqSVwqa_dKv2YN-M_oE_i5Q-tFXIZhPcqFjNo6epzyCa8IweBev40CKQZdGTKRpXiQXwDJAB6nahsDA2SyqXRS6NubPXgWPJ-1BPo2-db7-5tIwl9lTwUc4xeDAjqcvyJgpjjDOBUpOtne7lLh_V36TR2RH7MG4rkiJFXzMTvrwIKBjzHk3m6NFxwLII3qx__1kaEIpPTxkzSNHESQamRCcMfD_lsyEDSNiqZT3FVWSXlHiA2rzeRTtYm47T-gfrUY7Se_RMPBYqp2lw-971Ei43tpPc_A8Ki3WK_6Llz1MdcGRu9cu-KL3n374rRhRcMxAW7uapQXF3HUgmbW5kCVDYR2HNsCpEyKSDH6Q7znLS9RUpklWtagmYh4z1Bf08o0Kes2Y1Q-g8o4qqw6bh_4XcQ5atpZr3bHDeRj_A0TclPfWbUH9osFtSmNP5e9Rqg26VcDXTsK4HKZEsJCBgrgC2k1UtbItz6pz-Zpd8Umc34SfZ2LPnloGoQnsgLiB579Q4YEFXNJWhhRgp1K4uSSOlcuxF6MMB3ENV2-ALSBjUliwxUBmyrcuDM4sjiskFRMBCIcF7KgtTFnKXXd4clr6MOcstTJR3KjZOl_PUUjckGni0lS4S3lJJgedLZU41S_80K1yjCO7yiACn5_25B1pSUbACWGSnJHZN_9tbRhZuSkZfPYtoBgqg_eTLnWdz-KzvgHOKYmPf6Q_U63quXDkXKaPO3jDZ_6x_xWtzNND3Ro-l3-2IbAzMrmOv4yH9mIXv1ILJbKqb9ARdyvxzhZqPfVOrwTemvxG8QXPqLdvu3PAiEWzso1SrVQEaz1FL2En5mPbjHSng1GKSyqFgDY4PsxgNr-Y7Lz3Z-0S-bcMQAkOgZrDThqDRPcWqUskjpQyqO7ghrlkkIP3JaeHuxmmB5R8QkXSYwPYnUm6ESosk5-y3JJJFjo7VoPRIwo6SgOnk7sZEi_flWLGRqMpP56ydxeLMPZwGRFqGdrpxCIq_uvHNM1zBK2ogwN8rr_8cg_yo8ycc9u1X-W8Rz1AFiMgjtDIlUbbaEoMDyedlu0hzK3Qc3dIcBSN2ZijB_J4Lw39KtoTWI9_6-6ceWIysWsPuyN-5xy1H0A0TgNVpFCvH2AdCT5UDGceglPFx5u4hC_IwPyJxxWnzGcsT8iBPOXoCZUwLAeYKm-FNcf0vkkXtBLtX4iwoADX8IGcAFQCn1pBnJUlNwK2Qpk6ojvnyiRIYA3Z4iX_cbP5Yb-SFbRIa8qu59uo2lllcKz_cpXvVdC5vxLA1PgVKy_F7pbb_Y-MZ0ttcTcUVSqU9K_j4eIlexjnMaEZCQKl6X5cXzVZejL09bHruPbnL7e30xWaBsKrdKeB7vSGcWHW_T2QVjbBaDmgOQXPe34QkWeqWQlDl1T91oPqfHdNBdx-oVe9Xq07TfLUj4pt-wQt-G0alm5ET289P90ctC0FcAkrFSOoE9LiLhi8fisOyDz1vBHM6BlSa_ukh1yAjKl-UUnD264OeNamuKO1cQlOTqSIbXvRelAKuWCZcdtCs6AEuKVDr68gLzyGLTFOW1xXijQUZNXPLYs8jkueNyxob8nAvShP4cAeG2l9OgxM1ODqyGqZ-H4v3ub8zgjKhANngl3dWiT6nkWr_9boQI-er0_Msgrn6pxZSIH40cCWyHG9OcW8JnnfgTtFm0f9BOEtJ8RO24iW89puKK0lVE6QdoF6rrFJFalvavA8mOV-prA91vX556MR1swnNCdgRKeZaPgFSuLjtMRs5CY2dudDjYvbSfPRkVJraQSO-KMnSdJX5I3xNbmjXFfImrtYKUecPcOzFoJqBnqoG_8p-D5Sjrh1KQwfxLWodNFeh2cMEAO2OuUwWb8HQ1VJHjI61Di-xZT_MpI2yNge4Fv4uhTgQ0KW_LoMoQSx41OR8iCFcCjI5uALhbvnVCtePazH-A3d9v5vJXqlCU0EQlLNRD-gP2Wrv3wCWTd2HEczl_s_aOW1TZKhgORZrE7K-arybIQkhHmtK5vEewMDX0WOxxBXiD_Xwb3g6IPhgstjtrNeKtTd_Db-m-nXOqfRRpG23hyyNMdEOtLOyVmGI-oXg-NIgsZdsMCud9ILd6CWBJzmHcSnXjbJAA0pXbX-4l1enXvXyBf76hOw1PbahaS4QKb4WUvZdaJrXowm3OFofHypUAP4HL39bYnAoFeRLznKpmJETWYKmdFbvcvLskPVsnDFzvvJ0eJR3K7_e9Qs3NFeHsbsLGp6bC-tSShC9lzsOSX5qtjmjhFKV82zCsUg_PuihkSkkCwFqzFLvFL-0B5HVe07upq8HMQ3LUChYbYJpw_Aog_LqECEw_HhCeIGckncmvb4jW7ilKXpF8MHA7Cfl_FDTmXbkaECVGHU-WG5pbiw0eTd7gqVMBNCJhdQeupFP4Sk81ZFX-gKu390AJtFEkw0VXqdG1MCvosNQOs9AYGJO28-68bwDWWG8kCDrwQOGU5ICLo3D-T1OEhP49DRrSlHVV1hQAlviMNR_wvpb1EZHJTxUjpn7ZPBFIxmh3Q24qbUWcToiMEpUe_6SsCL4Y8XHGQ7wXsfeEmfgKQE18LR32K5imGhXL0qZiZqfm6owmsLxMiWqCsGLD6gLDmN3nhN_zP6_WzBzQcbktOVHp6Jn2LNnNUU3V1wGjVHNpm8dqG8xUYbAFH-PIM-ImDYyqoGgTwJhru6XwE4ITyQP4kHtkDvtb1SFPDAQRnSp-oW9_eUuUTBdTn9IxB7LhB0gdacAqd1q_hnYtSjeXlRFjNClKlYCBIkhncd05Jmvod5HWwhNkBhdnru08xbps_XanXioGxZobWRJTHq4IPnm2-oEEWBSIRpjBbG-K0aS00PvyBcR8GqUNwSwHXCKHroZaQS30utkKl1EFLMLgu5GVUfeKgwqwP0enuIsPjusUXIslNnbu-f08hXGb8lwhtck6SUUAwslAnVg3-nS2KGuN9qMwxi2TVi31El_PGwMgAVFe3bCTBZR4K2SxqZzeAszEjxN_monTQuIdpIeF4XZn24spduplgu7Y4nJ9WXSJN2clnCenq66aQ-TD42BWnBYQbsjws8CzGzrY5m2s6EWMRM_Mq8o-qzPNptNM-i0-40ksJfMy1mU18CFUBzKHyjQbLdo77jkLcubajpbCGo9FstDJBadL1Afo5AIIViwr5BN13KgkDHgb3XzHORrlfDCoPugvsjsoP6bt0xIStMSmLzcIp2juz5aTmyDJ_ojymoEUWyNLDjSVOzz4vlQ4K_y2A1D9lgDscN_6aplOvstKpZaU0qWqhKc8YWhwwd3ZFpZN1ft4ynG7J-qw6T8Gd6X5w_S5WttOJXxVXWfBV_xF10wNBHOwA1g1-do6T5y1CP2GRcBt-q3dHEasPUeNKImDWGiv2auGDYpxByoyRmkSXmxkv9ieek3VQKGSpkUbbGHJ0MjaFilnMSlVWNvKdnuoNn7j7MBR_htDp2EgginE_IuwaAe5Vr_MnweD2IseFp_jdWEpCWRAHU6KUSreQaA5CVpOSy9cuG2sptahYAJ4IDSybH2ElRbwPteZK86w5EzIx3rjsxUwFMDIkfsdulTuqS4raIATRuydhVINP433jttL5HkoNpnGmOyL55gG6kfBwSxw-3eB1RTh1sCUzG_MkVBbox0tveBKpIQoYEe8tDaoTK8ppY1jvvT4L3iknOa71iPWnnI78k-gGE4X3UgojJx6UUFN-CLW3iGTEGOXKVBWWIaZ5TFrCMEvNejI_-r66qqqf4fOCNO-NpZjViCQGeEnAOsuswsnMqi3gGk7A26IF5FgVVq19nSUSS4NCBRti5BpbdQSjhYFDdO_KtZLcnOZ5pElqAEjZQaSKC3WiuVjX3Hdq1kle_E4XxzvsJYgA9_wUzkenTEm5MNs-5JSBGJKderoEC-XFz1VUmUwESdcW11zHkwE3lBkyl-JjBAtVidIDbdl3GEYvvWv-aj6RBxcR889MdD_He9u0ZjT_NUPaBOIo9hfpyZNIlWBtuvokvQi3Vaa_qqOJt66Gfs6JNxGh7nrLJ9aRid_3sS55TlGbkdXVGBiBLkdFnxbnLGAWM2nqEadDF4auhG3sgibRy55Am3NwSvAV0WR07JhLE6jV8sy7uVY991vrJ1IfFmtSj3U7cLQl-77pMIUu8anWkVcpGHE5n7CSX0Jt5FnEhD0RUjxha6wyujJH2dK1z-oNfW0fcNqajme1BLWF_CWykvD3zmhx8YZ5n2r0Aih89BgBs7mUYilB7YB4QOO4hhDEitgKxI31Jg935JYAghp8qCDShkPJLw9wacOwKdhDd9k1h_JywY1z-6Wp-MLZ0NkIqBl2QDj6H8ELoUOPV_c5GAa3KZAsTO_85ajQEBzFcoUpyyAbbhuhIZKqghqU6SV4cPuwWcZ0s0GEMFhgXQYiXCcSmbu6Q8ZrapY1KDu7iwMzEj3hKDvqXO30WDnJNCKYVhI2SuyOHfAhtKZFtHHWnepFtqFVtIw2jft_4MHnEju2-cmIzC9k8WirOVF1KUI8mvbeF4uHU-59iJ3j-2p0Rp-agjoJB_rIBHm6MZkvUAZQWONX_UY4BG9xmojmLunuH31EzNSt4wodKgnvRxlP91AvL2lzNGvIaSfVMVn9JkLBLAFWo5_EfOqxv0Mny2mpOMrqEC67YmAhHNm-6QVcpf_TwqWRc_QEta1luiWBQdZ6AboGTXwg4G19uFT_u-DQ6XHXssv0InO0QpaQDITTneUg0SOg_2coU0rPWsOsKvJlRkmHNzQKKcVl-TywI49gAfI6nUnbMrwCgColc6gsxgBupJmrfDRfF7tHbYDXJngVbyADsFL-DopJoBM51_HHzWDsjOCG45ORcutS0eGqiTTaq370ZI5Gxc3tqvIBvRMg4WNLyOz_r7IWHU8Ht1QKk4bahJcq_Oa9jF_q9DAYeixZOnC2J13xBSnF71778ptSDFSreB4Lb1JNT_F8GrMId_msaepanfkaB1uaG9rtz_hs0dJ55SYtlBrawEnHhqIs8SKuOg21s5y3RJqj2GzIoOJJ35zSIiuOiZllBrQ2nKfn_pynmpo1bgEW-1b-ybu8VeL4AROquTyUWS6j5EsCnlDz_htIOUl7Rhqwj_Rv1wgddgFAiADnixQGLKSr3At6welTWn9o3BD3EeD5k-9jc4vtIgr18p6BAfuTyoBUawRfAmO3fSCMLQOVV890FclFdX6792IvXfWguSL-KWNBhksRYtkPRYeJ0OsS-nKmv9BPxtXnGL_tePdswDHHqXN775EJLXJn4RNEOeiOjE1Q5uPSL6iXby4J7Hzol_350Mc5VN4wYiglEAKOm1Y-HmYg-HoCOfeDEiJbOV4NtVSglkXraIZ3urBdyzLuDKuW9MibQgRZiyj4OuRYuKHim_yCtbDKw5jKK8B3bZNaAuKkAXHqkuQUiKrj-MUS1FoUsA2rsQ21lPDRiqj7w09d0_1PHe2OBDxVb9D0m2DkEpJT9Kgg7P-4ZM5iykf-2vHODU6o7HHI-bA1oD8rck6fRJ8qjzBKrKnWJRttzsdRj8r9EhO5M7XD0E2fFGZfDli3YQwsmHSze0hhtWilhvr9N-5vC65Z-_7pf4RzddRdLLtnFDb9DDNZQpFs4DvXYVfjoThWgvG8xxsOPrRKGr658XCYwhZKaQV_2WiaPcMQFKqyA4cSVODh36_RVFFPRABT3mymMuzbWmq-6CGH7ro5JGFCtptsr6rhAbs8qZzLUhBE2rdlyTmIGpMIPVUQjW1O7wXVhjKiyYohHkucOPJiku3NLjGWPCyyAEQzOzvF5YzRFum-oeWyanBo5Zh1W0jQ86xZkh8Lc2PJbvLMH1ebvn8voK9o5sjTxHSlwtVpgOxAhiOEi52krEWaDTy34DayjHSUVg2H_ermO2SyCwndM-0mYcZsyTwqDgmmFZoDI5kbCccMkcv_ZApI4JqdCjzuJFzFp9ijkErQvpFMe2fHrde0rlUQ8967r36a8-fikCYZl5jiqphfLB_vFykyjj3a-i_G_OjtabzQ-55f_SkdTZoqNCUJgtYvF-K-5zLKZpOpNPrdKa0WA3x08G_hf8fLoW-GYB_TH5xYLyr-cbPGwh84L3B2cu6nvJQUXWKzC4Kw4mHbKxGpxgem90C4CY_vTN-QzIqMDrdcZAKYYPfioOUfKW_G32LAyXW3iScnJSmcXAOlxJ6YCw9GpCXzwy-gULQ47aDrauxY6I_DKy-y0pAitZXGIyiFSeCrsLG1JAkFeHTBrTElxazjr-bA0amZF0y9X7IJhdQEa2RyOaUGGVKpWbdBdB9yAwjqA50mBR99HP0K-4ZkiZbo2M_jQjmH2eikdhliRzD-fu9tKnyn7QLC-f3_ezBUZho956IDq4fckGcnpRft9ZvNwRVjEs8iqttK-HURU05l-qCq_2gMnhWlg3LhcYaOpI-oBqtVJjuaUgRQBA3B6JyYj-YYSqJ1YI8j8XUCeuxpxJE2QmKeBCKjb5qgDYGuoUjqOMOEUB178K1NqwkiAzygJbav7gIKI9RfzdLbMNMBer69fh5uETtN_bzDqGJwH_GZK41Z3KHvAfKOZq4aTsFXZ1Cj96cVYCBgdQyhtSPaxzUw9JryhNl9HUtwdBgQMX8o4820Y0CYchti6hmc3_1kLEuRSXxevEkiczT2j3xvWBvfddYaFy0paH5LA9Ok4MLjjwX3ifeXZ4IlnWzyVWkx4M3LSi0bzD0G31j-prdgMy1BKBFsTZI851wAFyB7UDQUGXzVRBmm86_Sey2m21wHyiiq7akC1CNWnP2tTnUt46GAvmK60mYGghsYxogKWA-e1YHi-WwSzvuoXFgN0agvXJU2v1aIUCnyz15Qer29KL738bkLUHIaEewfg4SlJ-PSuIlxfuApmeLVbJvOzval8GnXYUZ5EwB5AppwHNw-210DLjxEew8BOIuA8mOn-tWE7EDfNE_1fPE4aoDsp_RGxGGMkXCylH7oOBzz2SMjuWPCYLdjKSNXz3BesW5fzT50rT5EbZiWUq4SkgcYbiYV-jRR1yVb3gO2FVgcMmEHN_HWlAZzhDoCQzR_27T0HUKUnRFTRtAypygYIRM-BAjz5xWum1VEv0v2uAyYjLT-XtAwU8NWn30K-E7lVQdcXq5BGOIx0Sfgf4G90AzXuKBPxnPPDETxdRVbhOpQRKbyuiAhWvIkl0ZxVmEUz_OhHQ_1JJ5bqfzkwq47zAjpyOI8fzoEj0RpShkr9njZq_aPGDfAiqhlSEivH4_Q_OApzkpoVOyLMMF0SUhnF5sed9o1Ehdl309vpcVioEautERBgYEL8gGip0mzzy_sqPetE31h5_4soKiWUY5qNpepovL5UY88QAzInfUJx9pAZUT_ufTiYOEYxnMfdSMPkldT5ZmZo4dTULOfu8aiCjhhMmm7zgSFWBjf-J09ve_2NhR6dhqj3h8K_NLrjOYvR2nsetIR21QBz3nyuWOUZm8UHOpqWOpZU_4R3khv3GtU-NA9cd3qU8CqZzNTSX4K6lHTAkCISez0JEbiMzn5YX1zCC9kWNQjYVSKKSosfev4I-a7ladLtYaOZLEJIQvV-s3oEuBYwBJiBBtOUuZC9qEv5dAjH6IdS0w6r_UWUSC_2cpvuMcyp4pgIEwejT3-1Xk3xI_bZHRCjnGLlwEkCii6qtQFaYHk0ZBbl6KYHJryN-NQrClRjcwY6kkujrRz8aY0d2YAyxt45c5fPUkPETc412WxzE90wVccJu-Q8epTizPBDrarMh5Rqw06lF34Ps2tle9PKM9nrxo2Tbn_MrZufY5wWW-NozFHJS2R2krol92OLmLIFI1ZgqUX3kcUVaiaY4GddsTdOH6ib_jMHmLRvjL0kgwr0saDssHSz3a9mdZVgRIKjZAAnf_r0b10FKp3fIY73k7lBFfMqYieqggZ7fQxTuIN9MEsxVh5hnv_b5yP13QDpQrj6TosD5BBsZ3yyGB9mso47TWCTdEFLlONBh9o8WPXTI7oBK8tFGkY4ldoU3CVZepA2ELiwaNcBkH_eO4-CFZujliElKL3mhpNoNqeCLM5N_ia97ELTO5h36q2nZgyGghGgIQIVoGT6pdhlGhGtXi__qIPI4wtqbEmaU14ZTdHbSod7rHYh1FBNPa83hgtJTIvXlx-Y01AvMZiqLjd9y5CdMmdD4RgphXlluY6r54NC8BEbwYEP8H2kt0fVYJfKLJXw-2qSnT-9PS3buGoCfYcla5ePZ7Agz_2zkenZbH6FK8_rEt1ONRpznP1fPxAKxsobQYCw_nk8XvV6pvy_9DopuQi1EYsSh6aJZX3mKFjcXvPBK9HbLG4hMsM2aU-Pvd6c26t7aRvkgmypjuNwpzEPzRokpOuMHT2pekktmDHc1p1j9zc92Due92SkWVRVxTEHhT935hK9GlFyDiMzDJRYaqIAhwaJomOeGlM0LLxgMTsL6gE1z2_5POseRJybLK-GgvBFnEAJp4r7tavfj4ymPvqbZfyzI7TG-fGjSUIx5CoAAuSrQVZQw0k2n7FHXC_MNRpNXp_voQJNpZCyaLeSk3E99RNDhSGgzNYiAZCQn98srZ-IolPG4vbfsw1A7rECqpDcsh5ShSQ66MtNcQS20l4VA9DcDbnFKXZNh_0BoKIHHjuRSiQ3fWr4_nIa-TUUcCMZ5bwWRhdLKvM9L5lk9PR3TNo2LA_pLCtj6DuBr0s1c1SHMTC6Zsa79Uuvcp1g-UVdw53ltoNM6iJEKxzhYCG6BZRQS5yuhYQzPpHBN3lpe8I9zH3nKycM_lIDoqwG5S4cYph5sIM3HO49gNAWWs8bp29zWHeVfel01SnPwZNDHUKyU7t_zr-mFTmIdw_mMCu16VHrRoXHQcqqTAzA8xudf_zJq3P6e9I01rL3SPODOnF-FNWaiorwa9c4KjvqU417X9nL1u57Wq8ZIaiYHJbd_xgBc1jfCrCEbycxI54uubVS9BjQ0GkqHMzChn8GEU-aN2VeqIwQ4Dbm8BDNP33gvF1LHsuUZWJBbkLvWlMW570G3aa4Eq2-3UGtW-wIi3UnxIn5tZgo7_T9tY2Ma-7LvPC9LPq8FZLlrQ81PNNezgH9IPe9lzIzRG3GlP9DcL51_Vn1y7HjWHkn_EOSeJE9vwboqD0hXrMfqdNzOwbbCShVBPmlV-k12tcmGjKgC73PcpjwVLf3WGGzvA2_NabhmDV7u2OEhtPxQwI-2MG69ptYPeMbSz18Dg0SGM6s1PQz7-xeAWsd5Evo-GzxLiOZbrdf4qBBZcAXFIzByd-Eem-KXTc5zPcirmdjhlZrX4fURA20j03211LbS8czk1epnqhjF0UC8GeCcF0hU9HOuO-Yxl5DoU6VileFisIzA-dcoZ6Fje4zUWrYNztA1SstsZ3_6V1u4y9oTBAEuSikupUEKt5jv511M4BL-b-Khc8grzLxNj2NLz9TKz9WR_A9OPnCbGBRb1sGmF0c2TZpBVHa6DkIMu7BAqD-0q-QaxjSchQyHq2UGaiKiUSnVmVXxkfHabtZ41wDYFdZyVhbwDKxeJaaPBos_Iu1V3g_TGdS96Wdn9hXmstcdxeGkfdlsNKZyI-Qxxz40xePxGZ3qFwd3wuk8-ECLYw847_iaTGzTkHGSpWkas5AGo1zRTR7w7Qy-r1A9Ran5J6J4JTKj2eaEwWQ_vgWggDBqPgCGRU5texf_9n4GeeWMUhJUtfl3zOe3iMiA4jlICqOAnz1fVr0e-LX6lMHLaEiatUcktSeNu-zrApFyyFLg9fdYDTWiwcXyNdTObuQ5DjiyKKQ65xVP09xHYpp0tVpH-sBOCjyTRtL8AsEl5hLebWRl3_ROKPduqbKygBtdjQad4CcE8tcQRTfouQv-MzyhCRuS9hxq4OW0psrf9xtRrr1dwgqKnD7nXQ529anos_Id8gVQ1Yoouto6Tji_GiyR2dxDhUH_ovdY-sl_ZI0k83P0uYP8RWdRtNybLKSBAxPhnEcCjjQQyiPKqoSOoR1umF55MJRqamci2XtLpra9zZ4uZLz0c5WVkPL6dxMG-d-u3HAAAYFKbjK4I6nj3wClq0gFX-fgs4LMLvjBtMzI5AeGYPaU2Nidlt3H5M2xkAD6SvUYKkNdoDmd33FO_EMUF59elpwT7UeeK3K_AkTYQ-bt0QF2GOjYyDwu81Bl-YWBUxIKlpaC7tN2WIijFvyIqMnbjxwAtOydVkj8UZbVRNNzNOFV990c-KfVqI-rw3_718lgBWRsU2PedglXL2v32_gqjV62fcOmW_N-Ua_jmqrWlkHnQjxsO27ltdfVYqYn7AM7Zb_b4GlQim4BBJ2dn7Tosfk9OTM6mG5YpgHGiZqSzDsHwdMO7dPHLvTD3Ycys9wNhK28Nv6C5JAG5IEKF_f5TPqoVyP7R9BCFmWtsvIHJzCNQPDhAKczhoyeRLDeK0VGRzjhVWTyN7WHvXGtr1xOlfN5iDDEX29L80GTWPyXktIzIPf9AZlCszgS6as3ZrVnED-vzhLF8NVUQlHoNGWrVIkIJ-7jW2ennuMWPz2CtK9PLOwPnF7POC_i92fPXmjThMSPkRxUDUVMhVOqcR7tjm1LMtTCwk7ePR3wbURi5a1MnjJgGJpdJlkGw96m5SC2SXcdX7krrNeQTfzUn6il7a-mc8EAYiE-2YNVg7H9xFQ9bkq4oqV4A-757kXa3JuHsesre-iQv6Adj754P1pFVbTs8vnZq9yE3RcPEKfh2kYM72Psz_G2Hjj6inO1K-kPOat3q-IP12r-C8pVYY-zufSntcAeINr0NrLK1Umud0QypWXC4hBzZOwv0CG8q7xzXFgsBJI6VNn07OrLidUnQgS-Pf94eu-6TkEwtwQD-2YigFwaq-jD6EgnaOBseWn_KhCet9a36nwBiU8Am9AcNuK-hOM0bQ3tIAYp_y8kBOsvISiKuBexl-7BwGNz3e7Ts8g79sSQyr7gSWjwaTUzqS_xeUUZ0Q234YO1Lp6XFbj5ScZO7JMvJuFB4CMCamFXzPT0vGFfrLCmllKKfjwJ6LGBec4eEwovMr0IeuVJNDDMKf8D_Df-qKpdago-tQDqh8DgXom6vYxhj8dd-8Sq4bzqZ8kvl4VB1UHz68R2n1INs_HA5JIVmcDL_zXzrhK7Wc4kqDuJJTB5CuFl8D5qWaMJtus8cF1LtXmDQEXI7pzrKe54l1IcR6bV1wiIk73ulZ9lm7zydSXwDZSYBEMIV4-u0_QQwiTwDz8Xc42QN4XHZdE-2MeU7TpRXq0Aw1E80xea3CrDNZoG3hlm217MEnOiPTPTsrhzJzoTRMa4D9xmKHkQEi9AXPO19Mzmf2e2V-Ne4RS7HHKqNHlF1Lnzhr_v0ymAM2AIVpn_HUvxv3hStbB8bTeauchPHGkwYK16ZzgKEPzQlKtaqkuEt7SDiq6TLOGTE6S6ZGtlzuD27XrCW23RNm3d0Fx9GLtRp4I5YkpeMezn1jdDZyvtu8gvZRm5g52eHpqA0DfFlbYrC1HBzjCY9_kE-O1uZkNio8EH9-yPpgxvjpyrc0Nt6JDDVdZ9wfcUyfqrtNMcP5BC8jVvxcgJh_Wbw1RTHH_JRewSj-mls7R5_FYWszGeLPvMqP8bo4YF7_ifqpBxNtHjGvoRsWPEs2OddI-YlXsMzC2i9JruC7BFVsIKbhc-sVeaI0V1rVdW01mIqDDlAtV-NlrlYi8bzG47DWUQ4BuyzXkb3DPFYVNDlWSGTPVdQffsJmkKwBeK3LJJHR_bk1sdrm-sO9sLXNZAiQZqN0gSbMIDESAzbtazsjrTS9omdiTIDbvprC2GsFiI93tlCa4lLUIhPli0PXs_9cPfNUkoGRVuKGWK4jvqInRKh4F5NrJZFOet8Kjwxmvst9v72Ql_kf6lPIV65zwuJrodHIJ7wzOlb4VqzZQ-hStg6eM6DjwReuMMQ6cN3W5cSKK1wvbcLbtXggbPpE20Qx3iT3kI2UBNbB97gJ9LD6VApRMoLz6X-X8IrLGTgJBf98xQcFc1ujdSXeWiTUu-pOvH_haPFRhATCBGzfkly7d2NKLNl_CnZm4_lHo4T2x5f_2TxI66qeKcwd2gWwssQY5zFZFjmkQJRF33Z58CYTuFDFuTNjlsVxNiHK7cuUKyhJdVEYo-DKnm-AgbOW-7sii60damxa1BD8kDocy0JgKG9--H3uuK2QOSa-lG6duM8XDIvRzZtptxAyQ9kI6FEN22rLf0gACW12ZnyDJvqXQa7qIal-ejwPVqY3Yb2TkoPiIj3toTX5YboWMrSSWUlYCB5SZJzscYeCa1YheQDRQSy0Hqcu5nMq9ejulA8OBJbhFPS2JSODD59eV_zoulW1kOdZ4NZUFiHEEP2dzfjDBrPnmr21k-PsjDyojCJNEvIwoITB_w8PodHiG2yNFfZvbP9FPcng78T2NlGb3c4cR0I6CdqT-ypVDOqUHssrEZ_D7OPu1GlOvZ8XHoOdIdws_XWYtKpjb-LlBMHq97nETxzDRAKZ3hNAa8op3ufbCi1UsBQZSptGwRjvw2abt3-wsEhiaqvDhf5o8u12CFsWQQ2vIuiSpCPwhHFvBAbCvIN4NiBq7PrBX456efYygxClv-FyBxwkM-PkpNtrNnmKNq1hTmgkSAlly_VJPMgcEJ7shiYGHvMW4hm1n1BvPL3TU3psLGAk7SNc5VIYkMHXJd8J6eQ67gHExOfWE3AqjQrwej3O7qzwypHwpA2h1xR-HxDYHLmhhhD5sAqjwygwoKtd9-hgvRz4-mB1_645ShlXzI4FKnrFfNzBSdoJWREdZnzKzJexeROQLdo88Qri9vTh2f5cvmSSjVVtk1aWJFsoAt2ipLVExzhnJdhVxyZOy9beIuyTxY-RrmQj4HO1vbA7_hr9trrDh5AEoU_X5yMBAWmnEMluubN6zTLa-rXrcB99ukSqRME6PiuZxkuhGmhbzTkW7kRsTUMdiuwV4mM0uVXn56HzP4KUJijQF0skDYNSQIZeMqJZVSzxgAwBwpio0uOWJocQiEPzz5E7eRodeppsyMbnMneK47Yr9K2QBk35xcyzB2j9ZALLDDenZUk0UqsiPHMRp334kxsSIgRjt1XY-ury0nzXA_cDt9VZNihtlDtwLt6nPWCqm_sTMtcUBZIL1UcuaamiugFxk1RwsnkHEn6t_1Zl8eeRmnphYWz_JMNyxgXzx5qLvpi9x9cK5w_ytV9z1ieiBIl6ieYKRGvkt99cmYYf_t0jtULp7sNrlQpXkuXU83jyWwwS1J3d05wDNuLdiBxYFu3SYRaegsBgQOXUyhluYc9p3Orxl78pMjRG_u4n_Co_uvoyFQJkxDV9eBA3S6bU6UOmsUvc29HDVMPXGE_-czC7AgGhEvfpg6JVeppen04FT147EziyNHJCtPWtjluzRux2DNWNQh2mLQd9OzYBL70PfXwRBnspzm3kUR5nZlTY9TAK_yBfmSKZJC-t61pVxodITcuTg4MmGW3IFcb5rxYLn6vwifJCvZT8He4BIcx2mTv8HzjpNZmRBwHcMghe_TUh-vv2d6RnPcJHXd764McmN75RjfvDWJR4tcep3wLwzTP6M5_TsOEd_d5VX5-bVaqnnJl_uBACxBugLRTwrp18sOX-WPKvedXbHrRi8xacJFB8lc5w3bzLbo-icV553TjGjnf8iIUKBMgjakC_x5w9bIhYEcWfHCS2-CMaG43xqbuI0PoTwaPVY4RZ3aBMHSCT15nwxTx6FoTTK6hOmIVE_RVHBdWloh1fwi_3NwPycLUNzD7NPd4WSg2KoLrrlq3pSIhPMaDx2Zb_3flX9LM-7BC2kImIYGKL8hPkIIXRTseddcPjWIcVVLnkebu_VwXGAju4lv4gIugUrGlzKwepaJQD66AgWK-gU1TXSbxmY6sQO_p_MaimuK-GfFg0B5JMYkdlTQ4LOXgzzusIjW9aBL1HJWr8hq0s5Q5zfjaaJNTBJBbI7O7mtQt9CSrAxshlWnNWMxkAm642PueO5icQHTS74LwTC07FMtnNwAd7WmUz5-Ij7x-C2bD39WQufTzqtQ_f2TSxH8tB7CTcyZ2LkmlwW5CyRWikOammdwFGIf245W_KZIVmusF4zOTuQzRqJrvkHe6SJdoeLhr8r0g511o49zEoPt-knmuJTBc4R7kKetJFMGGlt4cvmFota8gLAeoJjNYi-xZQW-Rvguh1JxHk5Xty9FGSqRxd_yHWohEVllEQUaXqhIMqp8AFTth6AXP41J6KPmif0wi5JJMiVT8AQA3bPgjZBgCB9sZofX-BTUk8-9Mr6Ma49vSr5uPs9n3S5j-iWBfNnujSZgoT5qePZ_4pG6b5qjZufQRGOmi-B7ZSdYrR0WjsKDTxsqVff9HfJn2Z9jLFHBBQbEVc3iZmsuCe24StkAYfzs2f5DVmG-9CrZAonN98xXCryV7rqnvWf4iF08phSBDzh_zWCVISSxQdU35psDe7zd6PCMW7mUUo3GK00sI0yC71A6j0P0q2lEjb-4mQh-vqq5JdjvO-kAbJ97h9rqc7bqEnOWvU-pTRg2HJeHwUn13Lw4BTCPTVetJd0YZWjRvIEhpFkawjDAuFr17ef_UHpAejv9bR0hif87uFBN_I9L9x65Tl5wBXr1lYohtCpJxPd1igh8uu6X4ZLiW3G4WyhhuQQVOGy4PS1lTnfX4qOszqBm14izei9GjORqR1AO40DY-T37HF3gX9WdDLfTGujl7Hr_s6tdcYLczDmXFET8griV3qyHqLvauWAuCbA4e85wD0TdrjI6A-p6DT-1SUvVw2CMpX3p4KQaeTXefYGcDB8UyUeBWkfecBrxxl5WEwqn4KYZIWdQ1G-ezRj5ZV_vmX3lakMyBZvitL1cEISgrtCAs4gtu01RbHYXZUuUwwk30sqIcWhiWhJHXzD4kBrBxT0byCxnXga4CV1of84Uoq8raZQj4vdHVqFubIDx_q6GJfrTuvTnE6r0CL6rMShJ5cucfDRJckIUWh5o-qTFHIQT5kZ80addmt8uNGoUsp63ncTHSSoxWUeHt3VDSug2iW2aEFs4-XSha85FPabaRrHDobcAvs-QsCO8vKDnJ2uIICDGYupOy7QeLevsfMYxT3_Kl-ha3XX-1-bW4fX6HzYjiaDI8aImisnd7-06nQvxZZSUJZNboMhdaakPvZ4MwvUkH0cIXI3dQYiTAmQpFlSTvRiF5XLJDOQM9R7kbB0fwWz4mQioGvHbOYPDEau6vppZizyLL9MVMI1LaExd6ghcyBHMWeOAS6ZxFAi8tYPaQyHBUadoLKv9hiJcLCtddTXOFRTXnV64jqyTe3mzGTT1pbqIpsGNKCHd8gTaBTIIBJ59JxvbzpILmek3GOSvRaAcgByNY1EcfPhkvwqjpxnkTWyK3Ke8X8jTVQUlG49gAyHfyk6ksN48tBdbVow_UxkXJDhxhJ8sx9wAIqAI4J-cj1xBlTJdGfKfQJW_2nAWKvyISA7jJaW81VDsYwqyulUV3ChEs6NgfPWd5R1ZosI4cagqNqQZmncd9Yd43flnoSIwbPwruYEXSP_tOdBKfiqVK5jm1GBIxtj30r0Zhf1ckqZhW9HxQjWYuEhW8EPKN0GRFPRQC0SZ1NkKFcxAwref4c2tUvAvRDKrtU1_gbvCOFadNphS-eEy_VGnrI2Zt2--FvIYqU11mtN8yc4N1rcFSG0EwHxP6RT3r9pbFgcIp8v2-BCNdyPdq-IfKhK-S19k4t5H22cEZEzWGjw98OFPMaJ2YVQW4zzVtrZzEr4JKSR2_YlsLo1c83RmDdB6YM8nBE7jmC046o0dYWYzQgqnyyxjsdaiAHDNDepRW2BkJSiZDhjbObmmkg-OUjpcyJRbrWZiIiZftyo_SHZZo_RxBsv2ABrv8dBnvX_QVKjOAQKiluMR70cvqDEF7lcYdKsMS5dwIoxzoxlK9iKRE-d4KudhkagiMEFKYnNvPTmCs8LPX0LLBFRqzESPE7pkVHfJlePFpbUyqcyleqiJkccWLRF58OhVaq6xeImsgrxk-59BME56cn1CdFsT-JKnzKMvmCLsE91glXvzzSpX7eFav27KhSQu_Bv7eFelqswtuxE-_uTVuB_NEqf3xw3tBPo4t68HvmirBDHl37QB2udiyME8SDwTqvGAjK090l6hJZ1o3ALwRjUHSOvIpG9QUKAko4MqwF6kGjiLk_D3zdenJDQaR_lTa3_rF5b0OHcyViHFruQnP9OMwAWLrEmu-9IZSpCK0IbH9joUTxlWD97HqmLfGdFrDtWJunPCEeo4wf16Y2n4WXlD3fEevKFCaSci6T90D9-homunz0OAkLBcpAQtF616V7dfVfRIjIWfGHB1yg5L_xcsy6tUYM0HO0vrhXuRG4NbvlfDvo3Vk3QVuyYq_39-apXrTvT2NWuIuBt0PR9MRmbRwb0WNUP9AM7uyD8BfOaHhjPSXyCkhxFtSB7OyVa_1eV7S_Q88rr-n32tLWuUpF9H0yYZOnwX1tw-pDWwFBxqfZGIsUu4J4fqwtavmfyGRANde0wMVsczlRoJF9OUAiah69nSzMR5dfmb-kouEhAzY6-otScjM6kBj2tkZA_hrffu1GcA89YzlEaNpNOUYZo1JUQ6dXi67vfGeSwwb-nHBCwdnJlulhhfQFSBufCMb6jv8CqUpyaKqbKAL5FHp7i60NixM0uYE_xI5njt_ZNLPMkIyU_BkpygWmC3Mo-eZrJrltmiPx2MtKIolVos557cimqJ4qH6WXFsLocR61ASRd_YLTWKCq6j84uzGtxMtsAweVCqeb8MJpXhwJvV_t0bYmOPf0h0q3I4uuutAvV8OJGkUg9L6xM-gYmJxsx5Mf6CzdP66ieUnvPJIm8L6Lh8dXp3kWNesKXTUKW8zrYIE2sZpyjsnTpcS9c5TuoOU1BjHWjRcO-cvumtNJab0pBlYbULppQXlgHE4UjvnLHEPnAIfCKZWBTu3UvRimW9uzQDWrYelRqitzqldOm_muW5kGdG6-sJJuDn6bGzq1lVFasUthgkvJHiSpvcuuJR-88ZWMDrg889PrIMtyGZ88jQy258JchDQYCUElCv3AxnCaRA8LaujT3FlNbfYlZeL92cbs8Z1syQ87qagdTU0FKqXoqg-X10tsyOpk8VzUfoBffV0nH5K2aJF82ww-pJaXiHrkN7s0vottjEnALiqTAPoMvEVK2agQeZjJ6nXZLWTfwt9fnguxyE308HzJjAParRoYNhDBt_rOehyuwelJoycQmTR2-Q2To7YEPzh5mcpIX-rU1eHSKPBUHn0pvPbdgiN3f3OrEqLKdBSJ_RVTXb25trv2LIfnlVwz28ela6OERKqFladlM5kSqkX4hgHW4sBfOkXl1G01_kzkyoxjWeH_Lj4f7WXFo3iTGdfOt58msLNldk2OaAHhhb6qS5cACHmiRKHluaPQfHbFuAslgD9TfLOY1kLN33cjfVJmRtKXXjNpf3Cp2sTKMw_N_17U68XifOixberxtwSkp8ezt1WBuFNoKTvKw8FQTkzv2gwFIxuk4RcEZKuPT47k1RHdzweXQ5VnaN0FzBUVlMqcvkDLnjhZvvPj96OtluRI0hPkvVSe6SMaW76qvIA2rwTStoSOsvd0yS8EoqeAFu35j8LkXKTTkmDHLYv5Y3UAW294KRGXDkAQGrZqZ7YaiOE0MZtmJwykdrEeLNQMGn7vjyljgn6b5Ur3SCTrNeG-qOXD2hpPmoWcEn9OFSRuFQpNz5ptVvcXsJn4aUGq_xOUgODgVwxYEapV3epxx0-Aq_aO_jCLJGToH2dXmCZ5OsRwNdNXH-9LccKUwuHM7fUmjzJmJdG-frciV1bMLgnbaqZ07fyFv8OC0XKi-20_0m26OnjH8uChCOddrseQ5twwVQnAs3fH0xAIfDamZpe62b_67OblthnPPFgB8VzrWq0Pb2ZMTvwXzaJn_9WijyMykuz-xL7G5n1xnbogKanfEtCPB0RJQS_JXFKNRBTTj035in3BoA3dszdg16KsFTQPROp05BOoA-7FH7KONcw4zFg2WsyeE7UXZQVPQ8tXTII2wBEwaq3-POGbejRqBMs9-FWusQ5FI_8pX8VSjxwob75yO6-G4WiN681g5qGBgLp_Kq8GllQ-Sxb_62m6xqykoqTA8Px5PRpXt6lPtwjUshnSzEN-rFc6mWMhQ5iXHmdJSxZW0O0bYtV0gewGgsw5NboeHnR57hZlAJ3vFkToRiuLpGYHTjw1O56SMM1QCPpMrn9Ohl5ZjIwfrZSJvzkZNnANirZYgk2lXmSo_iApYaIbBZS2s0E_TgTZIMngpo5BuPehdVfZ1lQmePuvbeCJDmnEnbbzaz4JGnwT8wgYT9g-nnegHxDpHusH8faQgClLly5goNBvCEEgA4iWNutNfoMGbih_RfH-bQzUOGCM-VyE4W5_Zuz9nWKmBu52tRiak29d9j0IFQiNFUqtpesEktUgDYXrKCxSQZIyN3Eak96HQRvBCpzxjoaBXWAikWQb9AGVdNgI17T_lSRLCp8ShuNrONbcpwdgHw_7KJgTJ4LfDE2dh2sGKaD5ksM9L87PIAD-azVv3SvZpSEtmcUW2FtKMM41NeCPGGxo1Yrk6Lglsgg0MlNH4Pmsl1bppgjhS5JDSLEtYegFv2hgzyQ7sxTwadN4UZm_1G7l3JbW11eRx5SzkgZfgpb2ChMGgzjBOhtmHm_3zrc061vHSqN31BREAFErz_LcnncCwWTJf-0Zx0D7PRIJW0YlnRNLrLL-I4VZZ18IY3-D7XnZXws9Tc_l0xiz57z97JtJusvL4qwo8DRlHvaaJQc5lTLU1xm42l2n1bNE7sJQaWriLePqSI1jqmCQGzC4wpJV243Bmsk5sGSAG2UmgHIWkg768OqUASgwwSpeUPHCmY4-ROhHeMkxed67qnF4CqCjNCR-JILf3p0YxYipLrh-9NP6uvEBJU5GR_29Ni_37kKJJEtgRxCmof10ktUc3Hu4IB5evy-nx1VDrG2WSp3hxWh-EUF5J5DlpuCZepvKEfucpNuRS1II0qaSk5t9Ko0wFECUbtZ-HI0kC6IavOYxvx4mLK5mqUFMe_1zFcJDoNCLeSU6TCl1pal2WybPy2lauPphjxJFxpGgMypoSK_3U8EVMu5LXg-8YWlRujzuiY37204IQGzZZq7hdoyLUr038xG-Pbt9N6PfVHLxaR_4KP9Woe1fc453xKSXdoTVvusO3BpGDO0gDH82hRE6_BHjUD7y4zsm3qm2P8Tn_y0eo8LS7C894sh3flSdrmyBKMUioxYsfgqjGS3P_gbzkeq7sxuYofxTg7dMWPa24fYzHwrgnpvOhqZ0Xcjo_s7HUzTbJHiaNkzL_WhEQgFMYFZlypAFlUa9gViQ4UJ21dMkBI2dUqzZUq_Jy59QwrAXQnVdRudiSICsf6lM3jN28ngLsTQ5UAWgkg23R5SDoHOh6daPegPTTNVADz0qMG5QAgFbdqrY8erWdpsWDlV8hGtWgsKsQoGZQ82Rd9QIdRKz6KwyNuD8Y_3rn_n4_XfGLfRIBCk4BLNxUMFHh5SypmqlaPArf03E0y60GL4J83nEZbNIXwOz4jdCvej85z5FqO9J6ESeQ9dvMRi7y8vo5ibmrBajcIQu3FMH7PqzUl1ZPkIhewEuGODNcTgP2cDJskWwd1zyM6785IgSeTnroa5EEwi5S75O1DEf-EL94-RG0pU1Ul53JlZnRSWnSW-rkvYU6wGb4wn2wpohQ3mjfFusUfMb6NW_YSz4lz31BlT1A_TjFAuR5MaFfeF58Tpu034ncW_3S3uenXEzfKwmnNdmEBW-Cf8cYrn4nMSHPMqR_uEWSuy2v-lzjLB9Gz3lNxD7Ov1SINVBikLKzQGOW0g3FeiB4RIDckj6XDLnSCME0xI5wPF2gYvX26VoPTD-LjnCydDFNqpNml8J14JlGV14erEOSQSbGsAOAY6sucippbeydMrW3XSYvvAdswLxF4_ztmC_h61TgL5GlPLGRsp7BkxwUPALLVgPLT4orfJGuoPxPAq5LKcIYeBh0BAq2a5GcyHIkhrZ8F2qzsVgr31j51mhZamsSjF8EikirE4_F4xQeNP6ivrK5idW_KsMiZ_XSjahBPegrHF15_a1M05cFvZgdmBiOpJhsRvEIW7MecEeUgnzHanzTs49jjlCh2pk_ZFYDludXBa3_lVUG1IHNR3gUfnydnmShNIGxdUSxf5VIvDEUc0ahiu8N9B0a3SZlfQgKPAGaoOyZhZdU9C6-PZRq8ACGjoaY2ek-ysj7QMQBBSpzMaA1vh4XkolT8JVOZH-xkMta1Mn7B-q0ZVObJ7o1V_xd61etKv9RDfisKYkhh0DDd1Uqo9RvIJQmLFV3uQp3ZlwumxPtDZJhUoHzpdkRlmi822sgwi4RoSeVnnEhmpM3ZUl9d-k3zbkoJDYBUFbs9VxnKodpKrWpFnEQS1Bsw1S94Chd8hXoS6p_gJ1n5PoqD4HYkNRnMitgjJux37sH8FkiIqWufd_Mf_fDreZltNFy2YcQqKTpeI6pEMGXt9MZPlFTCSGkamIBzztVEyWIOZriKYdGfMiUbNQ9JcNz7m8lc5aTLZJWZQO87wjg8Oiv4DgkBOYUlQX_cdc9R-wYSuEizP0uibhMC9FHNN3gUIdHkvhWfPDlYLK_TESUCZ1NimkWZYabkf2vc5CI4LEY_zJfHOOPLzs8jeYRrm5zvXAC1nFsmOsFf-gAeAcAwQpct1CYO2cruYM9vhEdCV9OE1sQwMM3lkNLm-phlwYsuyRFmQw49K3a0f6tUYSxYNNe4VezxU8p5UiRLMZrdyZ7kMWddZKeqogpWZRdEHae3Olx7MLCGQ3docw09cJCaKJJ6n_S6SHKt2wZJA4lo7Xmodg_vKhsd2A0uUN8majlAhhdeyUAk9sf5vHiHo2JcyzqKppuNgEJxqhhhMPpGtmkxS_5UrMHtwGR2Tviqw5QSIab8rTMqUU4kna5RQFaClrUuEkk5THxOur0cmayH1luQztW9KIM5XsXJ1MIomMAvAw2xo7JZhLSj2PWSBjS1cJ3Xt_ILniI_gDm0yLyS3NWWhNROvc0hp__5a5UHpMUt2CKeN-K20wCgn7mrnfTXOYnfJlO54XXXZSCqMmeqkQTipdqOjfata8YGE9STOhyX7Smr0bWwp_uPfP0w79o-61f4KQkYSW5hGJHpFfouxJKRVXsF2z2HGnGhzlJzqTDJeTPsxj-YdohZRZUyHjIhrkSm8s7m8xulqolSq--xJP2RT6Vw_GReUtQQvAjFVZcwrWhiOfo-5Urnj2F844jvNJmPyevNksZgmWudqFS5PBY7w1gKr5r2vX6JFw3laaBj453a_QAg3YyK9TGBJWHlpLf1S4y6nsiQAQnQhFeJMKj_C7n9uoR95_Etja2hSP3QsG48k0-YUFCh2bO7Jwu2Wq7YZgJlRYZjdKk7n4C_5-TRvUU_MUCZFNzsq3UmAnZ-r-uS_t2ZPo63Y_dnKtsC5yIaJF0y-ZcTDIqfSRdSCd9rA25A2xwCDAmvJEdtRqfqUaMU2WAakatbOWhxvmPjeWVN9RU_I3JbXiHifUFoe2_QlXlOo8RZhrg6FZtXKocF8nb49N10-qDk0JxtHqO6ZJf8xeYZlTWemDmf311R2b-WMkcbHvNNbiJjD6KNeiQbhTM9QjYzMu5iXwAzp-sxwlrkqnbfgwHURGQVG7D_4bUQcO1tQhW9fEa17Wvfy39VnqooCQuch35KPmeu7jOyuydVVVzleY9gDvC0ridpv14chaD83EjwcntjAg7yfXD4FU79yOoFu1DB6Wk6oJTQrRkFR2WtG3GsWBmVNe5fveq22RJ-n24XY-Qa0c6UY-5TMj4YvucLiuiLJ9exdmpMkKxyEVJ0wRCA5IVomxpSMCWfikzd5OehCDnlnSR3xf1h6qZQKWH9MNfdfjZjKsTWMvckIDrBJJnREeQn7b5BV_dfykXALoVX5XQzmAXCLEU_DaHqozzdzaj1N2TcAfxACX5HLQ9QlKiw0_6jRHrNZnTXuV7nJpJUk-Jv1KCNOiLKL26VGlRi-ZVKxzJSt7G8JAx2qJJtBt7pJ2HB_lXVKxM9BJgncVtufeMmcBygcYkVUWjRV-4tcCiOgwPjtonUkwTrhicNNhs0xlEG2pmXafaQJA0D1FRLynCEvzTJLxJfzikPrWcrwAC4lvEGcdjolZYJyvOeDWlWLj_Qz40Y6n0VzXwId6CP6X4GZsRxuUJZdxGnMJa39oIVT8V9JxXehIAJcy4nxBJvxVwc16GKHer2Mq0rDJEMoOKqdUtxURW1kXzZOdoqB8SqbcKNnHLU1c_Y1mtqjgCOj5zrfLCXO1QyVjWpwvUaC5KfGM5E47ipgvjh82zX0RQrUxAry9_7ltykB6qlhsC1_W_3JIpS_1x58QRdMTzIsva3u70fHdK9Z4nN8czWm8nSU5Z6Ess5BJvlHLGoerwJnRi4AHRJrs66TFgao2EZ6XnhqGAQBifdUFvix9R6knY7DkzIExM8Jvyf4Zuz8TxjJ1_edWOWJJgfHVS1MwybrKbK7OQ-zO3ACpWoOLWl8sDJ79yzbSYsuJKBrsB7_OpHR8SjrlfeASRZ21q31pzvP0caMfn6X6uihYa7EvftW5lT9h4lOGA5HNrjMAvC6PNK9fkYPRaqoT1wcIqIG5riEcV8-08196jvir1yw2VItn0DRBsBsvGO2GxtqKxRzPwVOrzZHe70D_zAW4ieI2q5TSjV5SKOxM3wugmigGpjWUpmsIfC6_W_ozAqFB9n8GG4_UmZfj0J1-QG5_3Wv1pemAgPEUlYe9qHbJEYLlGWcxDNUOXEWkFw6LNt3_FpYjtADHYTszQN0rhvHhGiaqX9s8X0S1WvRFF33_0sUQsY8iPsVtmj9y7sqoaaaJvNCMEciWNw7Z5B347rzEkFSg12CGbUS-KovIlgBhWmu6lAUhd7TnZ10UBzLnAinAcYFN3RkXC3vSgb9Hs_GnqLJmz6heTTXjNpuJm7kQKS3Gdsv9aAZNzKxwRcg2-fJUkVhISUL_WI2UCEvZo6VR9K5i0RHx4I_RV0Eu8MoPW7VHz9c6HqjL6f73Zh304bBweWSr4A6x4Diq-VYcXsU4Ut08itheDuooxo7468hLZo3duAsPLzn4zWIVCqpNX3kq-ZC_8AcxkI80UgEzZISChBisfM-Xhv7EBVvnNofNiECefKPFHRwXpbirsN65pB0mXe4NZj1EcObkwfV_dVCLqAlyJkWuezbuxqPEqkdre6LqIjJJFjPCbyLwNIPdGkDEx7x7YFLsmp1HtttP7cPNJvR60mpmmxNt49Ugtpe6_4YrWwuby4ZN1xlHXn1jLVxCT5muTMp9WVc3nYZ62hOtGB_4eNME2WC1xH76-r8LMmdooEo8B8Lg0nLu8rO-JucwqcO58DR24IBYaQaaYr1cdn-YuS6MZUy5ypaUNV3TqObbnH05FOQdCD8Z1ybcKLsJ4N4YSpAHhdGzGzgKhDwkYiGk2k-EkQbsHxiuK9npxANNswQA7knNTr5o8ZFezNZ1Gv0ks9xAvtA9iSwx4D4_J__iOFX58NeXOoQJmC6Nl8VrHZygEf60PPdw8Go9jAPkBsJsHB4R8gIeJAii70HgL0Yh7AFoc8XWW4HUvjjNhzbv1z-1_GHhsVW7hpMeP7B-aVplbV3PagNiDVR0PF7-28vLy1QjOluahRbeOlaL3QtjzjKACUJn87PcJ7I7jQ8a93k54YbCMntG9vjSLeRwJmaLB4eIHpNQq1xe5QKAymkotjRgkgvhqb6QZE5YIMMbARCsnjGh9vuAAKEqEVz1Hbt1HvLvIvj2xNgX_yYOMGyHeRXY2Ud95iFjT-aUUpEA_VhXC5TTopEIU1eaKMl72N4fP4l-IjEdEp-LkpcHXuDqZ5ZNWARKScG0SMI9LbgVMN9rgQ5yI05hpcH0FHWkEJW0FK_sYWcJAnMBtLOO3z4Cik5ijWDjZA70pScCNWptRgoG8wTrnF9lwpiJvHgLnZM0dILScd026Dp11VH_ShCbjf-LvjSkXhYJYQW4dEMfXGTUNhWAmX5Gy6DZ2y8Xfq7uQGCOv9Oc4iQzMn2v6ryIxcbxx37a-E_uriSTPG7e8yesS-w4S3jddhBqCnADB98JJOvz8znIB4BOD8Zo6oFM_AYOiwCOVMUH3_G0WwJkeJGRcGMXw4BqNnNndoXLQH7SFqX4o8VCjy7MSh-n4KzcTU7B9-8ChPYZur9KQq6D37r7x1hc6GCf4M4ovgW-7PjTiSXc5NoLlxMLxosKYf6JP5gqdnp46UE3ZN1vmJThRubdfsV0MEZa8zLw4l1-BMYPbCBpkJv9m8NoPWuwB-JhOd0BWUXr-fVTK5J41vK6OrXgzlRFiJ1-Sz5FPlEMuBe7-ByicPkG6mEBFqroum1UcycteaHj9DuTk-8Xe-r1iliN9SL76qNLfD0JsUzNvHwPZFchm0yXZxUw6HPzkIw3M-ak9cxslG8TMhq_zKfUFVkeUhqLY7fo5gXZBlzjxDwI1li0gjOkyMXjQOzKgTTI1arOce36Eq51pbvo0WLAQkQ7aLTRPBK3K2O_BLWu3LVHLAr4PcUgdwjsNCEaZPQtNztpbMhMzarUqWyBvgf-_ls6RTurG2ni1Z2F0_z_6HKmwog8_hrWvVNVQfMQyHYesgxYRg-HvpReSLhCm75122BCuB2VI_kssERXX3RaEJ7CJy6NvXrB_5EzYbQ_kszM79iIuhIQ9Uh-oRFa7HMXHG54jR3viBxMR7yeMJSjWGEddVf59M0jNE2n4mt-morA0xs4ZwWqQ4PM7d9knvJbmo5Rgtq6GnY1_5r489mKSAfj2lCT8ax2yJHjF8RG_VXi9t0tDLonMDIRyj-6ckwHHuJmImMlCtNPC82oJ-maCNB4DFZudY2n3yyO0AQan5M7CxSC-98TCDIvSNsUPp3K6j9AqT9rbaWeoRYYaTrLpfJmmY021xM-SGNFNjgTxeFyOqhWtOe33ZXXTOUSkU5phdvtcrZqx7XPvWpMSVtHUIHkW4yqmMQW7RraGr7nYXD3Jr8xKbBtCnfcpz5F0Rt_riFsa7XG3pKfW_r62K5xnv0xRnxeDVRz5QB6oNaJnmyHa_rAJ5KbgzQ8Lm5gL-q7UmacKydZEAGKYe5zjlyR0iLREQUZlCBEajP9Uw50dT9GWJxh5jy98pf85ok69Ov_5QNe4_jExet-eYb0iVVzlSqMKNfd_4dCT3eoZRkobKW5bVLgEI68USGmfr4CYZkM5hNKER6Za2KIX8kYfzl1LiO7UmSqQ2o5-KY8YUeonRrSxOAT4_MMJkplXbQXHfv_dyLMnvLTXTi9ovFZQVRSFMnZXU_KP0X6c4fGI39aOplC8CUpJ4zeNFwbSqFVMK7VPq3lIn1mV7iN3qj_zuL1YHTKlK2S4NRV7_OXkR8mC8MDnw8CnluBOc_LAUhYVdPiCdsM9laDWPRRJNGteOO9IS0cruW-DtYFPM6XFs56-zgV9UZe45wDWg8bGJlXxzmd479LLOKXZDBYpSfoYbS8_hNXUydxgzLHznyTVEA7a29J-ZYWuSC-DXMB6Ia19R2qH_V2VxSksn8fwSu_-ewO5A0E5lf0kOEx7d9sP_57kPwijt4nMlzTIOMzWDJ5k-TjZ_0rRGZjhAphZG7zTohCJZiAzMVzUdRTp3jcTCnq0Ta6fBy4kKlzT-e642SftPwRyw1irI2cBqS7YMnAoh3Ynh_vP9ALFoUjfdxpRetDmlGR1wnAsLuckuH3ka_dfpheM4XhtMK2qEg3SVsCjQGXSR-OhOw7pp1fiQlY83uA8zM0_7tSbw3c8FoIkEPnC3YFNjhBKoQHmXzjq98fV9PjdSsD06fIC0SkUAwnkgAe3S02lqjnBD9xxQFmUv5z08Ukjxkp3Jl4YMbWbLijJ7tbFuBExZMGqV40Qrq9f0uHtIP2v7-aVryUR9isCT89aL1PeyTv1H2E16MEcTeabWP_tIRzxrcIGVIYaKPaqEgXBNR95cEbPBhj6GdRKRprefsJXNZzibWQaEEY7Aq9PH1AF8vxyBkFIX05KGDmS_JmgUh-qm2QJgI3cRBllqXgZsglz02LaM51e1x5xtg80-sUBMqcJzaESjif-QI3qB8Hy8SFS8r9v9oNqkwplbkN63zJNanNIvVeWJKnDeX88QNtNgi747xJA0vKlaTbJs_LfUu1SiDjlz-G35cvDTsNqM63lcqSXNhvihXBfZw0qIa8gj-iu5orTB9vUK29mPM824ualAghnbHCMyTTI8lpp-JZNeiTK83D4hV8UPxfH9zf2ZMVi_xCxbb-SGhytsL0K5YlUrbtCM4LicERLMtFoBdujyMb_6XugF698gyjyO5sU4uDn-iGT8bSAdZDcjm5YpH-G_zYoHkaFnCDirD6ytEHlUCTABI1zlFUJoS8hBXOoEGIoC0HjKF6HCaztur3gI2vy2z6ppqj0b3Cg0qqsKGYJNY-X5BGkAxIVErIE8HM2j2h70dbCzf3XTxCf1i6cghqv94s4-SII1Fs0qFg1BzOHcgZq26tcXIVzce82i0bpXQfsZHtFE3tsPLiE2VQom5LUKUnoXs5Jw2Wl45p-6QjYAAJoXKy_yOfjpHkcnxNC7aOiuvQ9Wffrx-wgvQT5TlyqdXUEN_iddLjheqkrZ_PXGHgiDKIBmKbEXCQMUJcPnZa6ZWx0A6FOPy55bAr7n7cc0pxCcoDXeiT6AXw6yuswCqDvqc0t1lyH2ozcMzMc98pf_HoZi3HydyElfAVJE1orxi2twCl2vebz3lD_F-7pvtOobQ_fzq1NkoW0f5iAdprcb7sm9vCnCE87u9oxDa0up0YAhl_aQDcyVBYpM-xnUMHozJ2VwoSX5_XiUesvKDBEFPlDCOSkPxkNC_KgQDudwaxLTgMdX9VME_wHleyIVFPJ7r7SxSHqILjG20DQCaS-vF-dhplh2D2ChmFyRhwIeKM4BirsF7YMCuehkkP8asQu0llYeIGL85EmqJooRGRpvxjC968tA44qJqcTirBywnRM1OqkCdUVGIr63dMn1MgxM-OtPr0oP7l3hcsYL8uGPKgPa66tNC6iVQ7HoKkE3PHFPDMQf2ljIEd8sxO6yjF0MHr9peJA-Sa7nMbqzDPnnt5LmcMCeUlzaM7RGERMJcNde40cjSgeUSRRxKOdF1DjVfygS1iJ-E6a1WgTGPnmoZyv7S2Iof5Vq8Hnin_6IABhYzK-AGJrMu7x3t0qcX-e1z1Sl3YZr8J8aXjJ4VfyE4jCWNcZ9GXxSAQAE3TWav9K-5l-MnAUyBMvQ9-22XF7_6fKI1nRFYBEwQyP3stZG144uzXWNeatxFz8NhdrFTYXjhwU5xn-VW5CzAMl7R_IOPn9wOcd22NuZG8QFBohihEqlMNYXJdBd3BaV40TpIIFfNcrT8sylcf096VqEXE-mDhMhqSPEwEduzxqGMqJcTiqNjKseBpZKDU_JG60Gw7XLR1HTk868g9XNARp58SQjjfkGBaC3is3i1UuIxB2Nr_lzw8VcURI871tPnctKtbr5j8TKXhfxXz4fd9j0DOIwWmpn0lkKJUQWICmXXnhfPZBRAmWON6NxoLVdYBfuGNP1DyGEHb2I4XVMEo9ZVN7tP31TTZoFOf27Y2JMUvhdVZnZHKciqycMa_o6zPw-nDMXI-FM75pT4_27AYlpjyAEWEss0XZj0wSKplagrY2F7SCcPw_rVu0AikZICYnd6ZUYYyEhORP00up_2_wpXQzrjtZjpupOHHSamryMhIlf-2d-gZLUA02dAoiSwC1Izyw-3rNqGemU0ZJy1vPVYMjqgJUYZMyaOhCf7QZK_Q498aCM4lCqsB6JNJa3J-nD9rPVtZpqiFNrN1qnTKCGXf5QMGyOyAVgoyGKlyyvEEl1Iaggay6Ru2qNhT5FrbSbToWDTT7zTQpekncF-XkedfpnPSBNMxWBedXzAChlVdYTyCHmUo7thFppaqCsSqiujKbJrgR3PjZPb-xmk_LkQ_qHQIUjfe5MlZI_EOE2AEzJ6Gks72xoG6anZnBtvklLpBWTizFW81lsMrD18P6DgFY6LTtmeABYpQHaHt4s3bMDe2hM_eMZ08dHtEjUGoiiVaRkZTo6k7XqDNUkA5qq_a4f6qu2MzS1X24pnFOVzEuhSAUSX3NeMbsuwjubMpbVq6mUWWnVXa3p9ccUUdeS9vQJaIioHDuqPQKwXItlKkxiXTZHJ-NeyKqfMJL419-3jX1zF9dsfvWT7vPHyOOpnyGPDiJjHShcKKIbjUPyAUITd9m8OauBQF3Kegcg2ihDWU-Nvqm7Y5VhM2_z3h34at-_y8JaPikE94t0rHIOxL4s0Q_lCp3H38yTDa9Fdtrozfk3DeMPQbloPDSV60AIkBJedSRulY76V36KU5x5n1FXb3FX2-2vFB6IbbrYfBGUBzxV1eeNWVxrUK4d6tHUWYHTJmPvbsuUmO9NLN4nnbwuTEaM-o1lgQQOJiXwTLQb_z54fr4-AJG22a9FTppE4HjPnvmDmddmPBsYVPNB4dplg3dh77PGbdd33subQCaJzCFHF-J6UiqtHVDlJhn4bX8RqOWRYe_hs_0Z5zYYGgazVwT2jXAniTzT-Jp3yn9nmV3stHfPlSWhbI4fhP2dfvzZr0177MmjN7kbeOCW4NH7aK9lRUdLmNfuOWVIdCWruGgI0AbMtUByI6gris3g0cOv3o1w63x_yuepwBNwuT3QcVagbkLZQ20dfoeAh0VOUorNBryAkST10EyV-NRwB52wOZTX0O3QBXHGvkcaM2AcxmjHVK9SLUCSJjrvmulobP0JgtvxLxVtsZAVIwPvYtdTbOtkkeGi52cG7JQAqVaGGGICh1gYIkJn8rJwnItc14TyPJIVskGuJiJZy8lDR5tve8ofnUt6rD6fasonT5uT_PeXryKeMB7knIv2Bdyn6vxzqF4uRshoLXvGmXZzZWSQifmrPDC124rwZTXRKVWPh9Kg1C_vK48AskJmrUv1o9CbF6k0Pgzeurt0ZWFOGh_uaO0zBrUC2RZXiIlKsDrjP79gzSelD6IATRb3peliHYcYnIU4Se1IaqIc5TQ0ndA8Xc6vASzyQIgdEtdVy3ADri98V33iRejTYv6SYHqOXShUQJTXAEtvIkyL4HiSiGz6NGDaBlOvhPWFzAcmUkXe-CFmzr4cJzu7hbuTZ9teRLhvkDtCcluv0_CjntSqJ0xeHzpayDkdVMYZvAVQfsnX4tPs6seES8sFp6jf5jxrsHX2XEGUU6bZIlcG5L-CQp417Zittn6M5PDt1i2Bt55VQoZBtfj-jqDX8H8fE_h0c5Y8SWlO9kM0ELol21ws-aFIHnBQaYy6cR7Cp6-HOwZ9Q9myaPD6c8Btd2Pe-37sUXuwRJc-eu57vEzK_GFgmIVwcE_ldhJoBeS3UarUHPoCQdpb_EuObt4k_vFCGvon0KeArYwCEav31rGtBOwUXfRApO0cqPHo4SFCOpcXTkVGGtpKzzKm5L52YcWS1K3N9Cln-7WunhHrwYcX7iT3zfO-qjX0ufIzpaWiegYP1FXvm7C4zHaL2Ta4Vq3MXcVP3F9O_N1EBlyil62ElCFNwgZxQ66zY7GKt1X5RuQybDsOBIGVMthPsJMjON610ccETbnnrZnNucmTBhoEe45q2xW4X6wo3oWqU_QQOXKCbmNbLmPozxaPS7f0F0IPLuddmegoOWNxLKRF0dmWI45CYSXxARIFE77B14p1WfMNTD7jWKI8LY-JoMs-59cJjLmdGygvSC5QrekRFpQvUWXNNZEb8WYm21-g2OADpB2aA2vR0R7qc7omTqL3vlzzttJHGxftw576c-7xdkW9-MYeLWufOM3Ge90VTJclk0hzSStFKxNM_8Yf37d-ieRaKTDLTGLAKLiqcW3SSNENdCPKdtKKQhgamGOkClU8Fz87UW1jg75ZH4XIcSg3nw3la8ARmzxqVMc9wVSMASkE4vfvnxEe1rv5R-ned9sxuvBG72Das6hJJHe77Y3RVxf48lExTKufWv74RZbFqLCG2QcwKYK1SiK7GXk0OvLME2a_IddNf-Ja5Wk0N_fBXQls-ZBzeAXfVSbDyL5QLXzCCRtVzKthuIZc2gEH-CPLgcckIxy83W-0x-Z99O2bTULpxFMQviqyhgQBqlABrOL814ept7V949uy2cVKJStOlwDLckhIQjhngUumABJ2TGgGjQaPObddaOwG788M3H-XIZkanHxq_7mAF6ot9NSXMXYfoAnKNcjM4saDtDl2DIrKaFo-HRoOwYv0fp2eAmCsqBQ29KO5nVBCF6x7A7QmEXdTWXr1h_SytDNK1pulru-G8V4TrlOgndIx-nyaarWqLOw2ZKSG-pT9-WRsyZZrw0nogrkU0U-XmupsKvV4v54Vl5aFvkVxlxZp0vUl2WQ64HaufTFZF0fyzw7PAcnLAb331YS1XYDcOK7-vvBVaP2I7nerBBcZzibwz64hstugxDPjAO7ccVrHzja_iLLk--JBkIBGZbEKZ8-3DybbruOMAems8KSffUgnHY22vOaEsAFVGcZ-veqvB7IymR8Pe3UGcWpFc8JDF8oZzt02JoH4ISozOg8vzwNtTjhll5ObjqIirTtjpEZju4XieyCAbSRy3SWEan9lAuP2307cKX0UTIXRKqzsICrB3XzK1LLj_CykDcGyd3Ehhm41IN22BSj0VjhXHARkRyuU9amlJsNnRlJhO4mcbNcYdAhh98I6EKjIF9FLCw4iyOAvSm19mUFS7qBZ3vs4U8hyW7gc6A4ttPZ83q6WrxDqj-GI_WjGgEwUMBhYIsDLztR6evL-i5kHCI9X2oZCe3U6uMyS_kf_GWdmdGpmNeL3USQQktHpnaFHinCbo_L0aRo8yhsw-lmyZmuN8ks6zMjfU2rAjaGbPOeUvqTk_OO3g7Ngm4rtHr1qRcLOnf0YaJWqZpdlvW2LMONCt_K1-AmF9D35ffGqKW04yAhkoTV6ruhqw2RGJq8seX6Vu0RdQl9Y5-5Qiahuq27Nw3vy06KtKcJmiVZVEqGJ3PhlX-bJDkDtcrqW9LOUECWoDCaHOrjz1kFoK6azpo7cQ1fCbYPTd8bxzjyiGc5wFyl1sbCp1oa4Al6DVmTZ_acSENiHRVmV_GRgioh2ZcX6Ypvm_Nm7mqXWRjQQ7IJJSg8EAspaqtPUl2hyGI4evjU4qiMN3qDxn4mZOiMx8kq_EQ-bqr1V0TAcGDT6HFZu8JgPj71z4CohdYfsFE6uN9KPDv2zPblUJhMnso9FOc91wHi5_kHs0Kpqv1LHzoeuISMrHLsPKyApIhnzFgRiwXLT9yLlanyHVP8w1xnGz-6Hrq83js14TyR5K5r8tklIC_HyKNcvo7eX5OB9hxcM_JJcmqfu_MWpfdIXpqGwXtz7MKRFyfzdxtigv5MPUJ8gz_7W6OgOJeOfwZT7wMnYpebjcVn5tbhSzEE-JZEljVeAblrOEtB2ahv8e9_OhbezjTWlhseRg-db7zXAfhY3GJQ-7NLiRVqLgqy7qXna2MsUwKsCnSPhJB84d2qFJWqxDTpyPUCF5Q-NdSa0mwwHafDVm-4rAVicC8KtOiEmf5Jh5Zn6PG2FN2PTeEVWR0NlmFZqAEx8riZeLt8MLX3JnlFlj926M2z44lvmwc9HGAE-lucKm0CUuNZgvTgtTLtDLXpf1kZ7zA1uKUQnDZIKq_jpv1rs5WWNIWB0kyzuKr4aiv8bplF4nEe4Mw7fGcStsw4uSNKvLEJWmhDby4M_0q4gGzaR-uwuFiL4H1i9VUGanNHh63NS081TxaPmDD6rKlX8F0cLGb2aNO7ScLWe4kxUfTdIy2uyqu_65tiDyq9c865VcKLA3Afdv4OJczR9xtx5hj_DMA5GEWdQNP__ohLvoRjGkmkMau96uD70kang6HzvUxkNc066u8rHEmHGeTwjosikkAT4Qh9CWpv4bBA7dXDUpxjkk-VZZcMQHEx1FH3E6dgD8cnc8g0KK1JhhWPc-jcnl8oS-gQpuQPHkiT5erT6RQsucr_xPy98cymqSCLOvDGJ4Xxji-5dK5h0eFfMb_Y9KfiZKgk0ZPCr9pJuYaW4FkHf0Sbgv0H03rlAsHZQ0LM_pb2mApcsXExzLnCanRada2wQCUXjcy99BdPNWEyhivGSP0QGHXBTdXLwsaKIo4wMdAXPupb6f71nYpsRW4vUoo1VwZf_sKF_brhgRRRUN8fovjiISMsCNrBhCfkVDHNrIL1teame8GFv9v9u2ND2t-Tt1LFuyQCGfayx8ZGre5jB4Ca2FI8xyo-11_O2w-CNXoQBy5zASTXWtbapQKWi5TSFAx4fLt8hLo0ijFUc2CPwHJefByElRqb1QQlzGneIh8sBqCa9YDluOzW9dTzm6jWU5ZbCPEgZ9L7FAtsfjqKy7dZWHSKTpYT637Y6UzxCIrICpf5RwJB4FUWJexk5YLcz-L2qp-6jp5yfwimHYyoTSsoDx8Z8x7wWWbRRXqqsjjw5LRYSST8IbcP5sqTF6EjXiLof3med5tssml36UXqKLaegJGqrzTwyI-asEPfkV78ORdkauIbtxOptEB55wjtl35eQ8tPsQXtYml8JTPEj4jUMNHADGy3TV-_edIsJObxEksU6c3Md3PgPlvQyFHcAAHB6eh4g2ylLpgTK6hzUfLjRSyOx3FPfMs2Ug7aLiCc21bIqRD2Nze558VXZkZAof8khMyurhZbv2tGUwBGQpwJrzdwWp6yQgY4BSeccZjR9VzugS0sqT8PbLb6I2oy37pVTqItwke5FNCmxfxefUSdz0W_yyNHPMuf94-xGc5NzQuWV0QkisJYXU6oYg45fwJYWP8roEn_IHHW6vuiVS4KIpHnWrFqx8EkcFMdNxHaw-C2U20TxT6HLmzuqGGYWiXwrfyf0buQeCQ3rwRrGb6opTVOO535_tAIOWLSzi6v69VH9TcBnaTEMJh-cEmzfpkaJNJqxYh4RZsSwNUvfbLMgBBddeML_SHs7qBFV1mGowSVQVWswY8S9j00mcC38syCYgRHD27l2L6_l11T035GDsMZNjc7QDjRBTCHJV-sAvV_bllNPACUyaN3rS4C0bunTVNZ_zkKZyPQHsf3aPzv4yT0JvZZ6uP9lhBf9yDC8QY4m4SRK6XeE2iDgK_iKJCye4v7cC3Gh8_K00ynqSz_7x9fK6epMvgDWPLgjbtfRIcrXeOuwtKPy7w8Gsz1NotF8oFGQfLh3q7OgG3EtCiVXKP-BeH_jWoCMD4wtERizMzx5V1vet9qZ5t2xAd-lVCr5Dtk95I38IHCY6lCMTDe2qqJD_OhboMNt8sD0EzmPcL_YlmLiXLGq0rrn2aHUBY3nckt-rpNPRLTJAtT0csRxC4ZAJHmuTWVcATIyAel8m1xCeFApJg8ESrYKxVAnys0HQ9JZM6yuOKqBPx9pLrXm14IYv-fMOoOVxsJVALYH5LeHayI1XIBvgxJOBr5H1Lq3mLL6VOnQr_QJyfplgJhR3IpxVLxtjQXVYaIt_CjWeTVEz3BxYv_24bAFvLAcujkg0W3JLwiBAuLazJuyadPCdsnvDCmykjFkChKwnMvW5fFWMtwaq2F2x6Vkog3cIDnMpTFBSqbVwTF4sYhKNycF7wFLhZhScx4G3AncAC3NymxwV8I7478CxMthMJ7u9smS2qA3fClKwNeZuj4aiyqOCWmHK1MO0gDJ0cRsXiJIEAoE7OJHb4XvoB3fk-oo4qrR9zv4o9dMT0D4e6Dv6xEiRdmKjPmIn0hCLu6AL1tZeGRl4S5mObcGw8D97I-Oyqr57sEPGXhInhWiBVjEET1rOCPsg_MtUT62J8EXxrhpUV9bzCrHFPjOM6Wd94mc-Ql5dre-s9WDLveH69HyWoytZlUnzaZVRZdGwfHb-oJ9tReUbzX1FKeUxJdNoZIgmGJJ9ONItxBauMOriXfcz8_KjDxtEtkcnjMp2_6X_lN1RfZ8nM_ZJyo50hOq-OsZagdbvlwmcrZywSM7Q2gngMW-J8hnyF7q714-cbrOZKpC44fcXKV9qnJHo4_qJC2e0kQDVxImptaJgk6hjepG7L_zBkOO-PCaAJlxMLH0sBUjI0gpOcJ_T_KvXddo7CMF1QM6HO3GusN57QDeEzZB4f1M2KN8N4wgYhP7JQGBANpuMiV_CFvLHhPnPGIdATXC9n_gs88z7zmLq5c24fluz5oU3oZBcyFBJPZZLBU66KAMnQTXr9do6N0sWGLMRgvQA3HjPvDUWVr-EHWHOCv7tv36Bqf7gndD3dg9jJDinjXVUL087lcrAF3GdNN7omrQ856xTOFCSg7oh6O1YBmEzjnd0RNnzO4UJk265iYMnrboa5YJN51jL5dSLYFdyj9zaM6lkZzRmVwVBK3QrccgvaHBvVDRtJGlCVrD92G4xgo6aorify5LoUedpEd5v1cnApAuFFK9LYKnj-pboVWbXqqjHto5NC6i2KCI_v7B9EKE91E5esAzDLRJ5h1SijYxGuma1iY9fKr2fsuiJWokVl-EfND7RQjg_pcF2QF6jg9SuXEbhQCuCdKG-HI-20xEwZtxIlRiD09ubbsLkU6eDs0Kbe48vX3H4IyvWBS0hjFfXCUi0wiYEdZkUEYONBuL0T5HiAan_i7OR81cQwcarheCvOGrqfkgL1IxcRA05iXx9GeTAY9sBSqnrcDJpvmC6NuXjVf9czLasXXGpEkMCChQNnaGiBEhKzkuwfzUMpHQzOWVqNrHbbpopTrDql7y41_d9eksIF8XPPVolM3ba3h5SL0r2mIb3u4chJftqyeHdD5w-P-hNkmwPfYHaV7-XfrrXN40nsMg5nBhxs8f4csCCHToMZ7r52hzj0GAULNEZvPF3yrtGGlI6Ky41uD5SXfHRFczTYlXwmCfAgyogeeF7xI7bXRWLnJgrZWRyeDk0OEErtzPj68eDKQndFlFXkQinqrg3Y3MUV_qlx6DyrxnCSMDiphmC5ohC2fSly3heSzxSIzs4Nzfb_a7RO7XzfgEqd-InAdX8dkWbRJlleEhV_ja6jn_CDFL6B1o50jxJDpQaCW4niWPJqDcLYCS_2hL4zN5KuN5cpjO0RCRFnxwPrfmxEJRt_f_08X4XcMbJSt0koU2Mv-1SCgCff_jMBU1ZtUh9GyU3HLfoPHynXXwX0CIlNH3tT4fdBdsbXk2IFtvkoXvl1OH0lK16Re_7dts3olcfNqsMd2xhn8_kM1pqnOvj039bdTc76MGwJlYtPpcMBKn6q8inYPxzE8QE4KykHLiwrZTbQ36uiAbYbb81ZWhG26Gq-N9T4c0pVvCbuvrbAboiElPb2EUViA6DExxlSkMDDS2p0k3ULzbSy1aqKphw_5Ljpi0sZXno3tb36mqRPP1aGUD_ZqvmZTMNUS6fXUo-9pDkDKE1DE1wgnz4-Evh4V9dwzu4FzcxPNCY_p7iNkOl0QJpO7yL5IYHZGBSr4s_DQUxLILBizosGiqA1Z4j-hWmrGnBhELPU54ut7sXM1dsLgZlJvTpIMY4wpA1yRi1EjdiJEqTJMGmvwXGmAjq7V07cd-n1_Xc4_00-0CMkVvQxUk5eTAblo71AkYGFgGguILnI1IJkWxNhuDJAArPV3LxGlPfG-pdghnECdSg7n9LgefU8vuJ2uZUW6n9V5tfGQN0v-bFve2qHmfMIkDyML7--eY6hCfP00f2Tlo7fi8pFPBPF7Q8rivVG9Ljnd8-LurzWrNAB0pjVGet9-5tQKSe9uXRtDDpaDf3jYATITd6HP_sgcfkdwQcbtN95RLrqeri22JmcAnWwWNJYhWhs89p4hKxJjHaAUMcVlLzDE3gBKChh51rWZz0dU7GVne_IOhTVCc0SBJXqnUVQabzqDu3Tb1pczIN80OPcl59LCWbxcE4M6gd9sXeGCxyKbnHCvUqL-iObSji9f5Rzrr_ehm4r78zOEU9S3DOJA4NNw6pJ--XbxbUEKFSw-PPYQcfPAawFGn_JSAcl9e9xo19ObolxqfHXFnuNsNvczb4Kni7jRASxZwuFAGhhSisQlCOVdmIUh3FJVGCa7ypvaAzrH39BF8Vh9ObR9wzg6HPwN7Of5bQsVoYGOIB0roDOZruUdpG-dtPWjkJO6LAA54Ljb5d0qWk0k0zdaLLzBIUdCxz6SpN9oHgcbVsz9Hn0QX1Q2ttRrXMCHGPHxk61ndxcly8ZjPJRAZ579Wkj81NYqcu88YVLSWruao4pwcY3tkL6TR5TZi27nTITYdQZXmh0HmnGIf6maj6btZaPBFOMv57TocPGjIY5pTwO1e9x-uinc1Gz5Z23pQjAJTasrX90ydJ5kJBQzI3onC68BO2psVqGTkaHDpHS5ZEpEOJRPEBfUNbJt1J6vLqbYSt7o3esKfwNA2YNziRyse2wjNIqWYhBhviI4kjdSWRVyZWVIsaQHoBZahtxnAlJwn3YjL-IoYRUOjto03UvMIDHL0zyUvbUL4wGwgi8VNcL0D7y_Gz6SH7g01eogAE86zIsj1A7AAt9wmIhVLkTIhRaBcg6QbAsKqzChI-I_p_j9fo0bxdf2hCMCTmohXfD1dpLmU08_SCYRTRyurCdwklMXmk7WZvw369oedm2v9vkSKP27DbEFBA944EXlqWqC06V6HKfFmKMBV3MYpQrIL_WQ3b2LQ94oJ-1N2gUiFJNNlrL-wAQoANMN1i6GdDlz3iDNbC6-5D2DuNvIZNrtDDzKytW3rrcHHeSoY6_bltSIC9YPEequhwM8JC42Dl5MpeFo7G6pl9GOye60swh3lFBT9N1YOSaq5tbsO5UJIbQtX5S2PQ4ICdezNmsL9vfcDkK_ZzEKPkbvYsRJorsPUDd__OlSqDr46WOBLyVdhjsncjIBUACQHJDFYqhd1Y3TRtm1YsM3tc_OCp9p02uKVFFAZ6gSF9FL_psKYCBIfgkVH-UJBr52RK4zMd0YYAaqof2BkqU7CgtBF0ep1Q-OzLIFntJ9_cmp3pDObHyGkkC9my69c13WDwL-X85X0n2f8skRRUImrM-kY8N_6GofVyrO5c5Avdf3dfqUAHgndYy-p4_zDY-8Q93IODag9bnwfGqqT6bqguvN2t_7oNO45Wvg_le08BM3rwOftE6CTfM5FP0WWCIasvqLxd6XXhkdkKATUHQSTLxOqvCcZHViy_7tR8n8bt-yz8j709a1TRJgBa-NR2b7N1UqfRemAK0CBfbeDKxkijV4-Ew5nu_C0UJtcO6_EbC4mSTEcp_xRevxSlXnCbfrLsQ-O2UJtHhbyLSUGG7rhxtIVV_0TxPkc3ZJU9Ehzmjl3mT1fo1NOg8Ubls3E5ynSS3GWAg_5nIfJYCOhH45BSDJza_8u8_7AfB1voBHcrPSZVqrhBYUYDobB8n4qevVSvldk7_D4IR3iv0_IoLvKj8_Akr7hAXMNw-5QIH29E14zjqqdVWMISAJ0HeAjylvpMWQhaEVlxntK8hVWOyFNjxk5zIFbThanLk0zT9nY7BbzMltfRlhYvfxXxwtuqPJ_Vku96W9wv1gF_gtgc2tpJRuR0kzzK1XIj6pDbE_U2_Eripjt7ry6HOfYLXzFZvIpZB5LvDApQx-it88zINdfoLr0LAMqn2ECqEboZTQjqBjrVsp8NgyMfYnp1yn9NTQIO3hxJmZT8SzZAdWJm8aPk-HXI9-tIZ2vQMw5Sc_0m0Jwx3LbjaIqOfT2MI79MP7cS_ZF4f4DHsKagvWZGAyAkCsSHnTCYCzAAv4DN2t2ZPt9wCQ82jwf_h2Um8xXeDdVlQ6kPhc_ucvfBn7JUERnVau0ruYTDnzsUllRztzmO-DN5PPgheJR_HPro6VY79GV_xYLagDO526ln0-qFs58OvoFllQmGd03OilCRGH83UEzU5SCHRalVUodbEAWT8rmewf7ws0K-TNKDDgrM-GD-6wY8Vd32xPeyZkpfiKn6alNkBimn8g2aTA-kAl0Zna7E-9vmROfGY_VEBA_9puLNP7Cg-cxOryAoT-NKeuJQVw3TBcFBM5o1sFNWB4piZ1m6TNU-OysUJrN5qylPZO2YH06C5CFf-rNGV4B7Fem9RYYZkd3cyGz9uPyMIb24wt5tdIHjcbPUdqoHKUv6kGDZDzwxdbvJS7WLTslo2reZWY7FTmdgcyq9HkK07ETP9jZkhqy5U8iCMI1pcLXXJ51FmIOvv7KAdQYj5k0fGMYhcomml_tWlcxAiV3Oml7GXhub9cjmv_yHGyOXV9NKdGmiKSU8qKMocIAiXfrDQGOF_h3BSa97yqr43SNOK9nKKmVwxqIXkEk2TNGi1SQPfeX2xkXHJCHuwkxq25Miaavdw4PSmDE56SSaM59O31W1RhOFj60r0q44UpbCa_VtG5c8wtK2DOnQFI5-rdPBryth5G90T_F90GMfERn2ZGZ5opPNckeW2HvPQbNlJ35PzH-mDfrEWOEMw5mRaX3BPIxmeHFOb6r8hDFCv-qaFBqJUX6yYuJtLupUU17AvnHA94eB400a1Mkeav15-gABxLAlVE0xgueVuaVzjkSQQzprTxHmdzc1MBSnVhZwiGlXLIY6liAS-Am9n3-Q76_cE13R3u6mzlbX1fQuLIgo5RIToTXpBzse3Uupn68SH4p6D6nM0nsaTRSEp8YJvrGBWs0TPgoFycDQU9_xsCaRSINT3phXm5h8y1fPVUYl74iOfqRHS6YB_uw7gPXSMAm1qg0PNRhEIqi_kFZUO_2kmW0mnyO1PXHWmnI3yZFUcJuIlIeXL-SToo6zv-gZFMyAjrr-_nO88anf0-qloXmK97pvCfzciTdeM_g2es9F5998W66k8DK9dZ9uK0r58WU7F8vdPrC958RY-Vd2IZZu9d5py55VHQr152bs2D-HtzGVJ7R0RuY8mvZD9TZycSE1olgSzIjmE1JnAI4GbyUhQZLjs35QfmW4677O1Bk7Xos36hY_RCTpfeNM77zCcFC1vg6GiTEXMoYGHIIqPUJ9BbfmcI1sg7alBwzQSS9OcL-V4lsVrd3i4aiY9aQY81gK6a37l0YCDjMXqK01k4RfWUq1EYnD586y0AxC4FyAkmraplVS_0ZIIad9hA_aVpC0fkGMRCw3hNMV1u3P9z35vUtHmV4nr9b7hlH4yuaKv3x_4-W7XPYPm73OHbyJvEd8rTMcCgXbgEtoVCV2KwnOtZN_O23_3GwEy32PruR-WSfxlWfrz6zZolFHYlizOeQ9RbX8m4PhX-epLfozCHk61QIKHSD1DKWMt7Q-D27NueCfZTghzFmoWikB31oamzytNk1ebfG0w4f4-u0ZgmNRWhpqsZDkoolKCATZd1HP2oZgU3oPu_T6-yxPXieMWia6ixwajJ_qqBl0vDjffkDkKgjTQN0MrHUkYm3KBA7z19b4E3o8lPSlBqBjygXskNdQRhsqpJaHhCq-EKIiCbIpSrgmDUzOyZguaPUTdXOzQ6R6sFKLcgIxC9sQncQJ_Y0tc8Wv3_sjZMRxDPsHC6JCxGWznStO1D_1nOHVIUbJRP8MnOZ_0wFDTK69QFRuQr-QkkBIOy-pWYbSL-duYJhCBCAFVwKsAHzZot_Pmq8v6AxYSXB3u5JwTuXYKGIsu59wJhvX-w63YPA4M_qImji7wRZD4kUd4hf0XjyCMhPKnznOl-M6jOnszRzV_PaX5xhzXUlmkWvyscUzjgPYfw0rfC-Zl6UVjYqw5wNoD7vHbr7dcqP9eTq3PwL0HH35VYpcEu8KFIfIJCQ2hjHZ9t06TPtHfDj5UyzRpgIViOlwJ1YwTp9g0VGRgWth5x3mVDMeJro3Bexe2iA4ituaya2NCV-GDWyvlBCTdtRErWavXSwxyBoTMrBjSSefmo5RpYOeQai373mpVNJgxnE0z1q2fZYfwoXQev_3HjaYJYDd_vebrwjpvtu94AW9n-BHrHkj4EWYzPfo03eL9W2UgtniiucnjrCpw6XXaX12dXjxjNO9HigaPxEUmCa0OlRAmQKfeXCot9TMFmyUUl8IJkzX8FnRqRtK31dwSQlceS7bBcYbhJvhhpAD-QFSEvBRdx1pX-lXz26sfZbNYdVHZhCosdaic0VXonLQiVNCP_Lptx5VSSJ22qlHP7rKPEcW2sQXcv6S7apj0UgxovCkAY5hYvGQ6CbDlEKP0NArDv2RwDx6vDafE1zWs_OsmVsKa82KMuwTTxPXneUwHTs7xuWgnW2X_EuizcE68_zT5L9w22j_xz3KMuvUpGrXW5O4UaAEoWtQc34gQN7ScIEX1VVCxQXGAzEqiFbwt5f8GtpP3LlP-alo8DbKnndmLQVNjPxc20sOCNO73n442AaZyufxlFWrGO8_eFamIkP1JWch3nB_TaKQzPUuVTNUhC62doxEPoiEjquZyWfhaFs_BtiXdfXnX489sa8JX26gNm_3-WVkRG-uRiF-2qRZL9sRWSkpBXAYv0wsb0SQDzwuE9iwZr30PPSce3mnYuXv-8vAssp9HGPCfjpWkfOTHKsDhu0MQ53ezPRIoeCRURxs_lBpnjLgtqo6SoaWsoI2NvP8UgF-yLHZ_JXNnYFNuIJL_0Ak3peT8rROKcuLsiCNpK5P4DEkD63XqPW8fhNutqzYkNmMVOwmmpABkEOCv1AhXQZvlxuhI_HC9EfCgTv9gd-qqj0K1mgg4QteSBzkD6JxF1DYfBVjOiZTBtZmg6HH11LuGWcYwOUaQkLYjgh56BX2wE9f0JJkQuhKypZ-zN4mxw-M_wokV_0HAGYsRbi4dCzS1430vlivIO1Hvrulnh0_8reG3HDHuoXc4R8rtMoffHOk1yURyDmOfrCYc5cFlZFXPRRHshtbdTtBbSU0gym5Lcho3l1eCwAYQ8S4KHh1OpCGfjkmJ0uoO59VrftgnhmYWYVE-fg6882j_SZeuKbRND0gXh1D7rtLh2NKLQbp5hJN3dc1YTaV_xV-5mOBadKeFqlbKbBldNZCZEKzA0u1jwFKPk9PUc10rRE5WJTTMXJT7cjC98P5pGnnOsT2x9HW3JnLNGpgRliqpJEHYcgYZ70o-5f4DCrKKhi4TkDhGejyhT2aiJfRikEZU7ibTQ_KYmVWtDaIkX2InEt27YR4XiB4Hoyfj4knlCERXfthKSRsPs4T9PJLkWizpKOxSo-FU8tvkS8CBe6Tx2wVrylXzdgwi0fHERsyx6pC_dscuQ1cN22LNjmRdV9xV7G_ag4QgPrExRfkkrFM59HzH6H4DXoyWpzQZ_GXnLsANn-KieT3ck1495-LruNaCM6cjYDSEI8HB7p5-2DS5TinYp4MpSAOjrSN_9XezUkcUpj-vAxOstqh1OWvDmo8gGj_rL2UB4eousO9jYvSUgwgGT2thptPMiB6iDRG1ckSH1u-DPN5wZ-u2tTK_3L3K-c1x2PxzIrABo8ITqdtuUwzb2E-UYsCnsbVy86nOjFOmeJX3MLEQvFjpzl_NY5iuVUxDRh7_I51TtKMtSDvoKQk-bURUsqrvqS_JAtDrcWnVtS2aaUB7TpniKWoX-6l_Wc_UIHlSqQF8iedwu4fnyE9u3ldrMKvt91f3mOq5rYyCXJydNcBAZ8-j2HTyjpjzfr0_q-8y_qKUgeeqi2BkTN4LWak5oN7kL1xKaKPDRn5MeJVjvK-pbaVVSW7Hd1pqJqh44SH93x3hc2bKoU4_P0DfqIWUMswStYbKTueDE0XNGIhY2aiJ8d8ZXHXFyvGd4JtkrgqhwAAcsIC_TrlJ8v85u7ujQ51nCpEnVumMtjXfFyGAyI_2LeLBpO2n6QDrAK1dkv53XubKXg7pWEEz5BuUI8AxSoKuJjr6ov00fg7FFFMF8mn_OrxrGOEQSbvw2gd-XtvIQoPG2TNxez2-XxGKXXvRR7UUHTQZ2AF92GaJ0gf9MA_cY6f6MQYykof5Zu7aCbLXoLwg8RqwjgJ33zjpL2GAYaFUzOiWT5EDRslAJtWEacK4t1ccJK0xS-NGLu_aQkUbyqRMM7dB26dh6J98Ch_O0EpjOduUexcB9kC_7jeTbTmMFwIV2A4ZdyPhoBDdOeUXdN44efxy1p5OkeNQQoMZLLuWM3O9rR8HAul0zNLNtW5-SFtQpf50kEEiWyrd22QAZrR9cG3kwJvJgbGVV4tXH5UZc-sDK4RxzrmpQapteHdP0I5P_2WxWFWkPU8rqk7hEfGYvRBPkWdX2nl9TuYztPo5fgan6C364rRGHLf42JUClMc13FuzDdK1h2rjWxAEfQzO0i3ap_FCJzYa3QjDrLtkEkJw5jBMzsnJE2f3F-vnGGb3_woYO4r6WH1Dg27rDkXgddlQ2VRdnrLRGiwGMI5ZVzELUvtijF43F2_5x9tRb_hjdJVQGYS7388yuv02NFi3wcZwyqGRWdgLDBnjDzN1FLmtF_YUdhfmJiVrkeGvzOkvP6XXSeFagLmmB1UVCUHohZvoM_FbVxuhA9s4CfkJXQf1VhmyCjupILbyGxyiPGIwzMwLIc-Vs26-hXictcZSbK3wA9MgbIc3RihEdtfTeCWtFM35bHRkj6JrWDv4i1OpUEMSnEXEJ9tSelnXeXFSr6Y4RU-0dBqTA_o5DYvBqywZ0wlkSK67WhA7uLrSYQByxGi3bcRIOJnRQIKif5o-VSSkdP16PruYxMEBHMsgmd4Fc9J5a87Ain6QM4R3SWFJst5ot2rTV6EfYhys7rS2ASbV0xNAJyZ8HZNLgc5SB58G0uKxfS5qPFAsO4J8b8Ttn0E0L5azfw4isA-P5wTq4sh87eD8F7x9cAEYYHHe4MGe8OscJdrsfR9jwk3fQTACbOzX4-xa9Bup_8a3KVqR-n2I09xjUdpYHrNGlBSvaw_saEMQ6GM1PYJuNWrkSzgRYHQ0TKIk_63ZSYtqcuSCz_YDqKlseiLZVi7880tuJwU7Mkj6mqyf0pBASVmW8lEYlBaFHOn0JEtHvbhwhKGxxof5D763k9MaO2hW2qRzyjMWPlWR7d6MPkErhR26IQrKTMidi_5-hu524tYqMErGTo9hlsU9S8UNCXimiiCwEig5Pa3YoWKLWxyiva3yi9Vwb4Ir3FjOLxGmnCjXBUxbA84dnzcAeRrqoqfLLzHxMpa-WpQAT9KBQZ2NZljFWAt0g1d_0mH157RzL-Sen3g0If0UG0QMfnKDHym5jGCRe4FQhHNCAlGPqDm1wlqUw3cANl0Gfx7266O5j2Rtrfm2ODXpaVF5_EWVCVfqBWwkxnBdBPSaQM8k4TwSoUoc6k4YStnGibRQsNZMi43ZDMwLr-5IhDOyqilFzKtvhcnHx9L9m4hqDt_JncdKUduir0vbblag9pj_GxTv-k-E4QeIBJ5daqY4qvi-LIz8F0nZMCmmqRkRazCuavthDNY8i24zxqGs_Tv640bGdcLBeozBaJ6R3TeSPmgX3sa84SxgrZVPIuOsxtbKaB-hpGbSPIdtywqhxqWtp57XXBXcv6c5FZqyZmZIaIGob7risuRRRvL9K-g2izx9UZ-na5gzcqEhh9t_-sFWG6lu-7HNv1QyXzA_qUUVic1bGf113mtxADPIyKtgkbogjnyLCHU8_SBGRiufkOf3tO0WyKpPJfjGYnn31ciCGUIHz5qvqVT9kwU1rbOCxDD1UmPylzzbVbzRSGlRGgK-cprwEsLQ1PgPLtoNFXNX4Ij9dR6FQLm2ST5gAfKuTYhtfzG-kKe68xj3T8f_ZnrR9k-7Yx8zHkv_sV37K-b_o06k54gXyl6Xk_BgefE8tIYIn5laR9NmNzza-esLky2NerRgZ3AKb0ahXwHuhZN-ZYK8hMqAn8lwKn9M8g29uFQmzZL4kyTmEA3W3Rxy9JUrv1qqjCck_lni7cwPnUMpWcj8qXTKtsew7N6VqFrrboZ1jqWFiGCmpCuTWlN0tgFWSfzKjm6H4laqNxGd7sRUXpAXwjIccA7VW6f8OvRY38y3DLtw6GqLVBSzo0rnHSZm5wASY_-keWyGmxaG8QzrrSrNWsGcYR2SsnAxNiWydTBw6LuripGNiA2Gla-y_jLmgnL-RkqwzG6boDVo7o_7qc7ZP_pHSVQwLzuEtPIZEu-VrQP1dxDpy5QvLTRqgWt4j2DjvRRc2LvmhHmsIsA7eSGaG8lVBbAKke-I2dJDhErLgJWfSMPJi5kkdbYMGOQuhjwfVnOYG9d48eDBnwl1MecJ1PWz1OG_iMr2ZzRq_r9FMAJ9w1wx0r1WhzznfBpHj9FQ33ac1dtafHRafR_2ugiyj4lnvHKmZuFMfj8JbgVsPgnfddWmPztv-V5XaK-fV-EEcJ20TSkSrQlPdfOOCzGMYNyV-7AOnHdzvrbAh-T1kEj1uUrrPNm_DStC75vkCOjoGe_6GeclQhYUeS0zPI66HBGRwhdQZCSjWRw6eWBlgmLAxq1B0VMkmmsgQjnDIsDQWsVQpaPSQYH5KvHu_o_hrWpbSXILhN51tAAyBtGR02Wtm7ms8QbhO6KCMbDXuWE973-PhEVZuxE_ffNL0MqsWuS9GKAAo6I5kkrvEzpb8FLoTX374i4YmQUsB4bxnRz8R3HJ4r9nMZvOysppNz_78BMJh2_XGW_9IohV_mnCg5MyN6-vHtlpDTLWkpPutlnfVJcaBoTUBufVI7mf8aJbT6ctzA3-EasDN3O6kcdfCccp3LLxXIpIL9x0ym9SkND0O5jjXuLPPzWiQKF37koWzaMYJ2C914v6tN4A7_x-XR35B7BAIDddL3eMucBeXzdVRfuIlLq6isSdvrsdBqZCht_x7aeJ_DlTAeEMLW58usuEeet4y3eQ3TGmqMyCw9nnGiMSlKlX8cLwcO7796TsosQ7DIajGitN-7ky94F4ThieR3XUcs8M3XbCevhFIsrHvgqjm6hZLxHEQ3Wl-W9KFBmZrL37wj_QeVX4OgSqi1ZfTZuHjcdQ6hi5JJYdQco_7nsV5Vv78PGv85zzpRQPr2rS0N60XiCikwnYbP7IY474NAb1HpHByB2PXqQXIrcxaBmdCI9QZTW36iMNIZxCdhO08j3koBCauAWkJyC9BGR8ngAHNM4v2ZulJZVB6wNtt3vCPtOFQEehQw1_R0-qMy1mbPgk909p6TPFnj84uf9KutJWg-0ieXsSfVMsW3kMsjir96O2I0pXYjHgsot8HaldZzz_wxL3MDSyoWv57Ml_BCe-nSjYtdl2mrfG8-OP_ViQA6KOUlHPauYmQPe7HwQe7ErW8xTeFUZ5-hxXiC_ZMe7xPH1qbjEJcRvqymuxwtwybblwjTqXCyjpnFpVjsaXxDtK2oyZJDf00UIunvyEddxtHIY9J6FbP7dWgbfxE0lEoeaAkRxZ4B0zyqlvORow27cKlLpQrU32CkQOSwZXWMFqyNm61LdtBhpNRqEph6Re6b2S8hkSI94q6-HV2-YAfcx7sr4zYpo8ZgU3Ex1jZswVH3tL67G9yIfdu4A5xNmgy4Ziw7FFmwhwhwxKVZbDo_7BLtIsit_P38r7lYJMNeXR1wEiWzFrDmt5d429bShgmGDORPl96Ja3pb61je-TeNzIdvGrqD0x5YZ7PmtgZDHysSgURpHsnPQxTfNk6yKzEcODMv99yyAHle9e0t4sI31kYIOLuk-rN-xK6iPjHmCdBfZrLAJT20GVJUfiHMmBPPT68V5hmsXXyWLkE4k1tnJuaQzf_qqsQgKWsjXRm3Ua3Vl7avAV4bm04KYr2tDQqLx5LkLYnQ-njywx8LTnd-dERxRLpCvkftq55jm3AmFSG4pO6Fb5g1Fehf0hZkC_67pGNx34lbC_c4soXJjHdVnrLgCQ_XTmvgul6GXWHoWNougJoYMXCCaGMDxAM_qzctEjXcTirSjaTvPaG2oQisb3ah2Qv5hzVQI1wu4M9_TIXelHF26qVoWZeJ33JhB1llr2tDyvMAN0r1n99WwX1eeb72Gdiay7ANvytLK7DNvzWGhMWMfM_qscyRVjKzGc3ngy9q8ifGSlvKhbVadBAAufFFMoNxaSpQkU0dgcrt65PwTP866zRc7n9bMCbUHvR4uDh0l6RAaqP7z75vzog5zT-aD-ZxEKrWllX63tgArCtrKVRZAOwrWowDi3rtoYg8eU3caTkrxIGfhMTvdrQJbrcvs1ZXwNy42t_4I-GgBu8gSdEuj-cCm4wvM8qAoa_9toBXjxmqT2BQHONMLDzRq4c_v_SctcQmTo_4MLXXAzs8Ptx6N3U__BiALXj0iokzi9ssIh3I-HaUak6aE9IPah2RLXUBCX9u0i6P5V71FcGdXGKVgq83e3bHZvZZpNOXQOd2Oi6H9lnFitl_keCPXz5kN_vBEP8Lx5FWDz9EBv-5hmMFkfxUCOLWuwBaTruQknWKo65T_BC92MUsXatoK6VpDuu8O2GlzCYu_en_Ou4FAR193oGmkMSOpDPDDJfrhQckSS-fGeO3PD7Rml2CKjKFpI88qWKyqr5QiByma6nhHise9gt8qDlmD9iUZVKhEWfHGXJ3A4uV2vnV5lrWE-Vw60TLPjmgI1dRYl9X-sxIWKoj85I4Odp68PogA4idYAJLFqfQvV6cbhQNn6TF_hO-EPH_SmCOtIYRD1725DenMmnviNQrhxeqBdC539wblq8H9LkIuuXqnQnBSYy7U4e_TK_Qnd-ILhX02snlGt_2wRvJNVIs65TTh1GFTK6JDBbZGWfXBIhgOJL2iSuIoOb57QJ85193xrcRgFdN-NwYO3DXaqQzELDnbiVjFaUaU--bEi2XS80TpehNndjCG1HocJN_oA91ZgDDSZVp5rklpSFUzNRK70toDwY5jEGDTNb2Y4yY-Ca4-Q-WKQNXPXvYFFbr4BIxIfcFmCQgYSe_cBz2FGU1Lq2QiSMO8LIEYgmP6DIoFSoA_Zn3XO4AK2EAxsh2P1Bdr-E4Hl61iX7Yi6eNPmP7nH1oiJ_2MS_kQnoJf27OwG97wLqlT-GYX2CWjHImVVhUXpl10M9R83Mw6FoTRSN9-dXEpGZr-eyNPuR0TbUkzgtO04QSV3z1PoKJW4tBtUfWhEffyBBiMsvfZEGvh8BINjaOO_bDVCRg9bCdsKUH0hV3M27cFKD2X4OFDBekeFuHEUcN_NGMknUR8_ss8MWrPJviiQavlDkIFajF92fiNLXVRo0bzeqTJP6r7YQeRKPKfU6wnEDmoKFMHHTu8TItafZr-bKln0Q3E_-Ni-7hQSC7kwmxn5pGSmMoe51q-b1AE89dZ_NTg6l-8SmwvzvZ-PbFwO1vGn-AWwbdZNzNMVpyb4w4nvzq8dg9FPgIgLk0c9fpuSWHkYLp4tW7DviRLtZy7EwS3O_0Jwn8kHx71YBzkYYgJNxMSbv35599LqTZOvRjODzABG3WuhDMki-sJS_VDxPOaHLs4FIqHA0sfLXeSzOM9FeI2Bk3yOuWyPJj37ZLi6VbhZwB0slFB8EkHLiPziePmXXVWQ9Ek5pW9_qUMlM_BSJxTEvn80LO7z5SE5GXdzurQ-Bvlqar1zpnDLYLu-A3ALW_YCt93fwhWLHLc9iS3PkDfMgg_R6BudEeJxdQcR2t5yaXQM9NnFCCgXVxsEGvGFbj06reJSCj_ho76rlCz3jwcaIiTonuMuFJ_ytUZ_jlr4ggbp-MVv6CAgxtuqMxQj98zuiur805aqroMg_VI-pq6z75crsyIzDF0oFSSShKDZRSa1gNrAD9NM2_xbJLayux4jvn5aM1e5e1N6u2bkPKpi6-ZT4N0HkU0zXLjcvNWISVnKbQJ01KtYm9hZp6Kr53_3sgZSL2jhrVMFKD84ORptTWXGoNl3zxVv2Vi25QeIUoLYyKwkV6xvh4Hu3Spntbp-6AjUNPXEJLqatwtueWwJ3Ro66hyMLrDXFBf7i0DHAR7GTaDa9Ii0b4Mc0Uu0LxUKEU5VnqMJifgv58BhvWtUTydNYcCFFM4srRa2KuscDgNEXc6vM-MhiGBMqssE-z3IXnvauhK5I17Gh9zWeZhR-KZcc02BxQn7-j12sYY8lq6SVzBDZ9ECUqa24C0iIHWKEEDsQoR-33oSqsYFPwQsTmU3H3NViQhCtkoBsIdytmhVm04ChjFkdiZBULNw1ZOipR1yCV7wcE_aoh3KKU9iOoYHVwrr1Bz4Ayj85fYCW4PbJRAi7Vvv-DspyZnxg4EhUAyjUrgDRfGbS_omD8TxhaaPbVZ55mY1Fq_MhGMJ5rMYqhiJBZb4nGYf1T-Kv_H-nentoayTPkeF207ZNt1HMMSfXWLmTrhGGRwpLIyzslSy_T4qASQ5eCtqwCukS6b4QSLCEbm4QFo_mxDBEYAIP24Tsruv89KDhC86suRHgcv81PFRwvqB4Udn5dCmWuXd9IbSSAN-8xEVbh0wogJn_pAAmbr0DdDIWRAMou5ekmzRAaZjcfLYIvZ8mAqh5SHGtOXm9Am4x1iadykrJ2oaQxaC6eFVLo7VYDn-10_5Ed9oL4ZHgmQGapG6ewZ-v0M4nm2eF75NgtGoAUm_M1TlTqa44hUvtFy8O-MKllWuYV_Y-ajv7LApAihoisSiCGo0LmUXPZfyVLTPkpfXn0h8mW9ycM5TSnDRBOLWfAd2ObU2U2xmNpw-QoDcfXpzdayLNwSybZfCK02577dGAYRYYubDp_COqAqvO9prf2nGLjETQjJUUspndROnqtuNeSoUgzmkLKXsTDk8sh9KOq96J0hmsU7204TQUf-5d19_N5l7dJbFU1yO5rMVPEsVISAo3woLnR45mbd-3iqWUTacpDWqrehWnaOdeEP_awyR9yuf6-DhTGsQEednEvhi1nAxjIhlYi3mdOv3ziti3wQ34oH7lslTTROIph4Bs7-Ryx8iAZfeYNCWJv1IfNfpk7MEk9caXdWPNvSchHNmyb7ZTbOND2tD1KfWHkZT4C56hL8DloL7-UO7nP8skCaaw9whBZFHwtGjLxAYzrcbETXr84xMX-F0yDgczLnc8ti6ID6hwREzi5zpVNuFucEOXxwlhouZ0czPjkv5vXh8vSr_wrLiWldbAiXNCQGrQfrR4yieyomcsO0nJPySja0thBSMQhgdUrDWSjeVqImgMjy9DRciC4EESDSrYFHFfUU-HcWQ7uNWjsj6BdobyOxop-1P6yR-6ia04e4oepqzUTHkLKOsKPjTrdc8fapfDeL27uV51HPYoegn7m9yvJvd1a8eCv6nUcE63vMhWdPMq8BuWghj9TROkOM0UpUK5MO_HooK5yUQO2KytczXQ1sBu420EJoLqh24zQwalYpYPTfmVvuzvTJJKTY5TtyjYhJ18SndNty0Tky7DMEjRYBMcBkSorf08oS9WYl4BLTe5leNcfW8d3kihmEuocao60fOlGhBRjocoHzAPamhHDfZJ60QqxgVYsPSDrUk0bwqF94UcZu9gnAl3jJNrfrU77xwJfHpPiQd39oEWRAeC3hajNTuFq4u96qDbMAD9GPxW3MXb0CcBau6Mtd3gKEqZdb36kKQeW7QikicplPokCC-_lf2ggLj9SH80n28WZ_XjkLfDQjgQ_FHb8gE2HkNrtEz7oiK8K_1WMxzuIHvd8rr7qwqkwNs8n8zgMwe2SDULMknPq23xTe7EOsgQIKEC6LqZ8NrDnUugGHi-sGVEZxXTionSkRnTKtXtJqzten-AKz-gKGKYlcY5AaYR4i9D3bf6O6IA1EZJqRQmR6HOx7jBvyRRy7QD3Nx-8x_DHDDb0p-wcXB91QEdk5na3-ekDuK6P4ltIWbDP2T4jEDQKOkNWhu5CXQXOu-wNX2rzsRJe92XVOtAuHL5MC7t3cCWdLNhMfk8DFvdlhFVJe8ujBBeC5qKGsl0AAyAf5BleZbrhnlrafbIu7C0j2lQAzhyilzhsnwDUkfTQAE2uRUm-C8sGj7Tk3g6JBlYCvk3ekDZVTA-7wYlJk1zjDcvoZGYP45swF-GI3VsuJkXhr4V288PCjdOvmBNuovmkcOS_fiMaCgIJF45v0hjY-0-oYd4R5sh1L-wdWi20rtxR9lG3lK7hCQf5f9SlGYCNwDS0wpOMGeCYesh2g42BtNnPZDzRUwkurrhHGmKrulG8a_l1OVtZ1nj1mqbDo89jqefUljM4bkiXkD6MNvUxyytTuor-InW8srPlrgK5jjlnjjfcGI86BFNBO_VScaVU3bYXfvjrdk7Yg8e5aSQmku-GL2-3i8cPdBxiKPUz0X6vyz_3ruQ35YCz8zjb4MykWKkMBU04Qt2qrda0ZBQLk1RhgmZ0eyu-SzXnnvphWG2SE4LDN6U3H1c4C1GrTpSaxJWPsL3QrSJImrxUqvxCzzXsGNpdnR_6tbWIVufLWXktL3ZzBmgIMzdkY4Ux1_LwnQ9E1BIUReC_DU2wy0ChCfzsi0MMxB9ewpShx7OgOe7GCjZONj7c38P074g2xAdZ_-wzFvyAQ6Vy4m05C5Ro14TFCIlchAjVJX_bcB2wL4g3wMBJjylUGWIlF0tUXAaku6MTmRUWo-EyNnfnlWPl2W1fQtgD3sgwOOLU7QPTFqV-VTRTi-_Gp7kk1LwsQopv2vDpzwNFIdSVga0dYx7iPgsF5yAmZrH_tBzJD8FUztwFDgX7cqUlEm8w8c2FBetGgUDVsy-7hyOPcYPu31-DDCj2dGs5weRVknpRwytuYaDs5DWcspPxQQ9d2ycQmK3hzzWPGWHi5ByAsK4FGX8XsjiaC1RboGEfnh-DyGejdLFhXztNlKgIipXa3rJQMsx37PkWXcd2qJHybJtrHwffDc_dCCkOIl7gqfuEObmVkMz1EuMMMnxxqjvCuX4Mq8tVioSMr3g_Hh4kcOiXVSDw_1l_R2C78-wT_CP1shfQHmzpfjLcCqziG6dQmjZxUoyNg2mQ6fPATh5EAYKwnU1Kbwpr_vSI6cQSmqa_V_IID8D1Kah6lrbgheb7MbvZgycm4GrdJ_HUIrBel_kRcT06S8TTEZMGQBpQiXgTEoyRF_whJ5PJbj__hpKN6yy_Nb8Ws2cAw5KIehdW9u0LlD3cK_6L1JkD2z48UpmEXaLtJD_XvZuosSMHoQDNzVpvOVCR8pwqtuW5Hlj0_qEHW5tW0cDHjbH1s-R5pQceh3qeiNlGREZpfoNHcQb_P_WzVWilPq4K3noWdgmdD1XoTerIYJy4ArlNLcaBKGVX5wt0z33KczR8CSwRACjgMb3NNIDLDWysNXC0BspdsP7p6QlXbhyDDtvxIHUaGDTb0sPDUA-lnMu9TBWR8PzpB520JDYDpOjYru3zduENGDQdU0yBn96Du95OqyljbXbhp5wj0x0rcRFanBw6JtndJ92XgCeU54zvR34V96wkCM1XMcrjTBkjsG2m8gXPm17Ci8vzkXy0CJwm9Bu8lvgVbJhyoREzrh_hSq1tKYBhYzJvNRxk4e8NfI6cKWGTEMuiGu_SOnv2FPDIDxwj_qOv5aIpVmsdNK2CmhVjQxN0Uyxogd-Q1QVD1oseu9lW2OYhibPQf99rDT54J3EF_i7pfbUEjBPrGvW9aY1gVNj_KZglmPos3hXGCKWYbmsgjSfyLiBwF07LQtDrustjzc4StiC2Wb-m3uMjzzqiE3dBb2rlvUuSzybHUIuw12wfXZI-DWA6JfqfyA4CcamuCI-7nJbQGcDASluy7Bu2qgUuFHKwZ1ougT-YKEYYtqeFhNnHsm2I9BakEM_U4eEuTG295LOGf32BMrHX9JPim7NN-xjnbKaSH8tQFiBeP9oVCBLe8hGO6wuVCp12jnCGqUUokVI-Pk39szyHgwXHHkSTsmgb6YQMbkGKqr7cIEKj_s3GIjOBVzkve6nrgWzRDPi7kMF5zly3ihaEL6TK8pCFgddlsB0qrAMo4FYvxTnm1kpC7p7engknodpVGOuSelG9qFKIn3-tGqwgKM4DOyTCjF7lhSNaqb_PJQJ42q9f7KNaTWNarQIfWZGrRf_cN8RRfQFgzkrsnuyIxpHhHbcXdBOrPLaOfw-PUE92P-T3WfoB0SvXTVHMBX4ySMHb5QPX5KU_sw7ac3aCEXttGqeq5OJI-B7jBGK_6PaCWouzHWcpMteJvaZalsVm4Fw7OcpJhxfgj0kJSw8nzImtv-G1mkqtLEIO3ca5bhiHwq5tyKHTj0sVKp4nM3sfy2Q1M_QgL453za2yGSJcWAjLsnLC-NOqT5COq7k-EfFeF4NWhAbCrVzpitL9xuBdAYURyGIhjCN1bhq7UVvDGVw6d-oCc5r0EIJenXC0yoDYOAwh6bPTX5LSYVBEnOTRIJT-WoHibAAjEi-Pot1X57T9opdcqJ-tMxNA2Gjp26b8iZqXo81SuLFeWAiXpC0eSE-XA3vnkGlPk2xLcK-mGr7zXhaQ612Ncs8zqzqiNO_e7FPCGZfx7mCF6_nVT2ew6eE6hLtoWYbtnKKV7OcRl00AYehfcu0jas9gDoVQyzuwYo1s6r1NS8hJfSe3jx-fB7EVvcR63Y0gymIAMpel9H8FJAiO-ReuNYX1jG1YWxCqGJcal3RAflA2OOnjtodUT1ChzAOfoKTrKdgzab--zGpSvSkNyZOX79jTY8_KzO5FbHZQktlXUr0vm1R14qJ3ZUQXZK1YUE5w1uAToqjBqmI3vh-rhQpE6LMuHta9wtNv9ht5epycdmLFjjjP_yc6E755vBeN3mS7qwJEmH18uxcxzU6Dvsc4ks05FWNg7e-8JaBigze_8mI2x-C7Sn9lw5GVwOBLAd2LeN158BXU0nua3yS3hyfKeQlz-G4dSCy5BdsqI9xeVkf2rImtUrVqLqcL2pcQjMnYxWu_vrELVbvhQ4PPbPGaqegiTXsZIFyk8oYb_eQ3BezyFj6EV0D9KdDq12hmd7Q1tP65lpqYpjyHcyerSp84OmP3cv83kkAmKlqRK_qJ7a-UisevcsLEyZrLeI2krXW9hBrh7S53rJcUFGHXBp4xPMF55Jt7CfxP4v9KGWgN2sTtUADyKq4gGW6bwA_HsrPYXHsxPH2x86K-TZ0G9ijSUjdsGL1JK1th6xOYC8f4pYN7EuAqQn2EVnTDKbFyT26tKvpU45nsE24l3Tr9stbDtvI9zWwQkPokZ-PCEYIci--izZVe3OjQ6kbIOHi12mSiubOBBNyp9vwWhv-zw2EEJeUdsQuSayBpu4q6PHjPj_DOtkotMCmFV14C02z8qW0A06CD1e6RLvXyJClgwloO8LKWXohEvBlJzf0YMdVHcbBpljPINGcmJKvl3TWDPq86zUnmz7JsPQkq_aSCw0ROZMB8DBd2yu10nbLxGFmtfj_JgcK96U2NKsbpVWUWEV7TGZ06wgC2WZHqdX6Nj-jwcUxYK_Jj9HTtVmce08eb4-CAOvdx31N92YkVfdnrRmgWuLTDGviIS5cCIMo4uYuUJL_Xth2dqjm5XrDnw8aZ2I5q8zmWlxuR9jzvfPGDxRuR_9ZW5v4-bJP-ilE1F5gnDXm0s4JboTkNW-nt6FX4I0jbz4GMbZR9gTKvtfF9Cic6mJC4bJoXhUpWnLZ9jfoiaH5M57d9Gu5qjUgg9v2nfEph_E0BshxPFHa1d8QxVbvqRrXKSGxifNNuoPxpihxEaRJFJUkNuXsi1LpoI2cW4RT6eXY5-kqyQOb6zFWVeeBfCgyMaCiljKo4WGCVrD315uGu_cCotCaKLiM5K145y-e4NbB7G5tDE_uTt1IC-cs_yRleegnXCD9RanxtPkm6riXDkGfrEMolh-h96K5FGZ-FaagCzj51ks6i430qodJgYLEieNnJRRzdBqCB1rnd_YUpnbimi4WOIJDFASAiVHDaquipl7Gpa8tf_Zk0GrONZyLCuur_TD-KSPa9TclrRAqQBTpMaGJvRKnhojy7HbzofGKXLWYFjDc8TM6tl6zlsRwp15z0utSMQcutSdn6qd9Nb02mKzcZvu5YaI4qrRfEv7aBFKB3rueQ29fs78UCFhrDIjzAPw1511DkIV3AMf5-dQSyesC5azZAdpOBXEGYxU139YXQZpRtMIovi_7WQcGlCDkytyRTAB-pc6PRtPhZKX-28Xg0oabBTYNwOr_DnLE37gfLw7WF0qpjcFUJEUo9batFkarzPl9rWUjN_jN1R3cBsoeNXFSIe8VHR3qnN05K1qjk0qpKB6gPi63qY8Pj9eu_qj-Qd6mHDL67Q2opifte3lsj6biP7sws_nCvbsJex5ECWUegFM0JM8yozb2v811v_nAXOA-bTLI45OKmjLmbT37jl1kcTHl2tzzwQ9CDiSwmBaJWr-V8_7AJvHPxrhf15WAYh7JsDWRyIC7X3TN6yabm_oqmi8dOY-_sgc14VPd02fh7uzqth42khWWipz6ADaPMkol-ZJD2A9MZByTs2xL6CgqdeWb4PXext4WN3VXbelrLlOnnUxlItZ1XECewzJN-GXeVePqK3Jk9RNOTgK_xjojBKw29XewZ8r5pacedYES_UwWUM-IbYZrxgN1Bl713HTZ0d6abiJZeLqr3PjyJUyuAyI3kJ3RGp_l3JufXC-g3YgHY2-wGRUgRmT77idc5ZTYuSL88eO2Nq439opzvWf8UVdkDUuN2AZaiaEnkescK5mY5HnuKX36nO0gLC8ZOjk-fc2VrsZ62wEgmyUXIiZvaYOsYx6FRTtKC8ub07B14TiHGPJeZzlx69IJ05QVVqab3pZMOre9PBVBHnZ8GV2gteU8K11EHs0eqFibLaIQBJYoK2tBWGABJr9yB5YsVFwlil9vQkctzcr2Fzc6qo_EG7LPEbPmvqZwZJLPr8AzHZEf__FvwjzCGV7pFOgVtx1GGpihEYz8QcaeMSVw96fype1C_pKC2xhPFLPMHXtAnOoNj9-mYsAkAy3rn6WbPVZigGCMq--3Mv-HW0vAOFWDPrS0ex5RDAKVJLbF-qap27He-_onVfzmnxmQxzdca_L7cPU4O_tObuUbRPGDbTwVzAgpkZ53hnxmDncYTLAJGIKRJU5dXVSeMDfFDz2ps9mcTZ5OV5ppJEx-JMNMztip22qBiAgBN-BJdhNFY737MKRWEcRJucUXhPFZfhZ1grAnnqm2NjOMU2zrNklxwwmMlZENe6OFfaHkBRrfXW5hE3XVZUE20RcWM7T4Vk9AZLhE6slvXC0l6jTk5rP4o_EYZHgrTfvJjCMUrdSdN8DAVmDNRQa2swU7RCVYiACNpSLEFu7RvxUL2a6NFjKxbQEO1LrGqb82ng5_cXb45wmh3PxY-EYQqoAX3WEy8KkaXPnfSGEiMnU67v4UQykSgAlmmf93v_SGPK0puxBzj6hWuKivfvOx6klY-MKtBkpPdehyhOcugyfo4N6sKkKkVtg23ri1w-ZtN_PBpHWB7zuv5z6NBlbgbUaLSIi-FOf-yQPkfsy2wrgIqzE665p9S9JUZ_fATdAcNcTFFC0Phuye2DhB1KdKv563SU7N5rxXhl-yreh3mIrWLEcjgzx2t-EpAoTw8unoG3ipEaLJ96cuMS6zywh6lsL-NWYx-obSQEL6ejhm72FhHhX7NmdPZs_Z-UD56o6Y1qpdJRAU3uMIcTlemP9sAAkWDDK82I88JOwW8Tf19QUMhfs005dUC0oNkXaxgcM-RHMHj5XcZA9BQ3B5cLw4HAbJTSqB75-LZmeLcq_pNlwE_wI_Yu1HpnAMawnKJYTtY5V113xaw2l9mHH4VrU2gEoVsXa3Uco2x0ZdLqcD1eky1UINcc6r6zHA9k6zvYU-BQaTNWa3d1QlEUCjZJ9bMo3ikLs9ydHxHN30cN8gcpxlcKSQQDyEI0Ql1uPNg-OrBnvxIjxTW_S-FjS7hVZqVwnKnqHwANGuTeXz2ZMJzAsqjEj6fsZ9OcbhVVNGnN-aSVA5-ah1jBLTdy089TY9CelTw_d0b9HzPwByCDiBCxaJAqT23q43g15Kk63xfhbAfEDvMCyjf2hprG9FhuiUe06l-P1NHfqeaylSMnbfLht7XJdMfEf4ZU1kvd2F4G8JtUq1v2mXUksSChFnv08YfEhhQ2eOEHGK9Bugggo3Xa2BpvOL-XXxGObRwWMzXiuMd5x5GJYS3tq58zW2P5JQevwdCpc8Ejw_zPwkRqmA7EZWxNpiG7oaCP7glsADuk1hcn4ZdQY1gcoSNT8ZTa-d2_b3wev1W0DIBY4WS8YCrLlUg1O3Dgv7WFxvWG7V3TMIRzbPtu1-9q_C7QxRWVZBRNKjl4QPsUYx0H2NrpeHJYQxy5kfRNqP0rvgQbdmCNCAOYwq5BYrQqVJS3uVdJJrjIPZE82kPCJtbvnjQ6Kv0AufC1pf0iim-VhiT-O7_ACBw3Kspx_zbbWL4qn41Gh5__KW5LHt5yDYmxJASwc6ESuIc2-zjhEZxfcCzfvRLyYx4qMXLe4ojbEBGNkxiJ5ru2zcNeujEicX2-TyHcF5CiV9oVlUKGXEZfCchO9LMTvEhi4kwAsIUPwLHnxEWyS3D1T4o0An6yr0iEHZv_sXvwq4XN67Z7b2CY0YySR7x2t_v41N3p1w3kJXLVRoKkNFALFlASMGU1mY4Rlc2UNNK1RJV32NJvPiE9Oo4ybESvyJR5XBcu7LEos23qonL4bxuj7A_HXCD46J-T0MvBgzxap0uWMX3s-nV0ieqiYLdsVFLOCKsazX7P8VTzB_UMVszwnu0hsd7SCD_BHDM_qBP_orfyPenR-2-ePwmRiRvtdt2fgkCv83BMnONvSu2Q2V69x80K_LtR2cMyqGFL313W3Os1nRFzhMzwSTE9bYvsrGrc5Y0dtj67jUzUvRkEg8wG9vsLn7CGSTJs2t5_XXrkURAp2XhNCFx1Owvr4T_Xd_cw71SQgNIkPMPAzGph9X0MemEwQBftbpGRP0iKaCGIjnLPqKNosHSoSiARv-tB2SiASMEUlgjv3nQ_Kk0ai_8MmbO8NGxfcvLVkm8dkoTQD_4j36oRQ-Qp5PhRGwrpYpWxMo1mbcqqBw_sBR2H7bXmfmPE2qJiz2Dt1XP84a-NbRgPI7yodaV0LrPzqIl0I9l2PNlI91FpwUk_yV9HntpMuY7S7_InG8PWkEgBQk5sjUT9UdDOlaY0wcEOIVuDxuTgnVAppgDj541yb06XXk-nA0xwIl428iI5oGEwlOuPxin-t0NbI4S6ZBNWps1nuHazBi4jTYYhuFtGGo5mOHphNg2z22HQtrXId4JsM03UmSLo3NbQM3Xxy8p3XcdoOtmG8myHRMqZ8Pqc2_P0W3d2fUoZBWByP4NLePDaoPT9DoOn3zEVyLWEaGjmkbrK6tY0ATchWZ0WlHEw-Cghmw-83mTQBWOPLQo_HhDUnu0CnGefXM3E3TAzF3_VXjxFHiq2iQOKP8o-gtTQ2BIB3bV3qakNlRv3qfB9TbmMzKD0jQDB7KLRbOdFqdMUopXoeFuZaFyKBVDA5JzxyTgwYkB1rFpbXktlm-BsdxVfypZDujY868xFy81YkKDn1N3kl9VKi_bMvKZK4kX_zWZk_-6F1htPuHBaf1iS3AGO3ZpmqubT2QxBmkKHdo0Xa0Yc7VU6g9G5pXoImo1llkJQ9qLkASp5Qcyp3IGyy9dAocomK-JQDtZIjVvSbfy2fFgwEHvReETSOFVV9oamAZu__NqRWb7QU1tkAiBUgt4UNoP3Hziir6I6FHgvEZub1wZG09zt9wOFddBdX1eGP2Ole5YYyYDVUX8-8FAWxt1QFdhJ9c1CTOO0IswFQdhJTFWA1HQpbuhSTt0WI-V4Pa_fA2nUy4GL-NZ_Zpdl1jdNIcTpdGItRGgGh4yNAHyknIB8JGpTm8zKuwovcdvjBMIz44o7Frs9qK1J6RreTt3Yco7OyaBWo05pxSzNQvcOjxs_kVFXwnhVd_-dqS5MgbSU8BRYTzyzmbSaiTISWfY7e9BqpmyKFpP17Dr4jRajXOnGhvBsUVvm4EqClVJxVspMjIMXJo7xZB5MbRqTCurO_AdQPHE5lv3v6fqwUjOQj4v0qmKwXwXNNs4fMhuTATARycGis2mV9ducGodjmB8QJimuryHPpHnH35Xpz_6FHjf35I89NMiT885knVFgC5HHOV0cNXWcXNTZ32tIlk6Vwe7X09xHN4Qu_8ax8DzvuY3hCfymr-TrvYxVSY8GBJiKtmrnGNRIRO179tTGodhgsj6s_aB94MVgi-g4WfZzzJUPsogfMHJt-y8nsYbWtAP-2l656Tdqg80JB7hS30dQ8hBk488tS9XM7FPaoEjoyoNLtuNeU2uca-lHXAajnMcqaL7tqYFzFVw6MHIoU5L93xkZ24mRu_Gxn2QOCExk8HpXQFI637IBLSYv8s472ZlurNe8ia18reOuH3UUkM6Z6B-KYZNAQpf5AH6M7N84fW3yzM8kmvGk9j5wG0WX2b2BntvuTQjXe7jzHcBGf7tqotmFzDdRm8lsHAX1gvaWAGvgA97oyPj4W1bUVCL7jETnTpeQe_btanuuPIme8fnn6GkXxXdBPfgF0IdQkKlj5E34oJ0SKIvB38DzZRJhHBmQ16e7IuI1YRPklwDC8CC6ZN36LNwzVb4QnIXtbd1EAzKJQYShhbUhbPtD_ZjRlf3Cc5KaFbISya6FxmDz3zoctinhNi5M9dA4W8WrNEEhguk5SkCsNmPU0e-UsJS-oFL1X9eriAKr9MZ7WdyDpzrGwTZqgSVJhiS4mKNLIN1TsPxomcpLUBXdPaua12PRkje7cStppEKMnq2V_soqFYFdqygjA-Z67wo2Z21RRSVI7eDOrifLuCGNSuZXEmIZ1QGcOarYOPyxs0h3KIFP312LNOhlHO9xxIgKI7MSc-vcQl6rN_P7I4Wwnxt9usvL9aKXChBBX2NY6CjpOhVQPUQASg7OHD567o2tvMyp3WpBxODq0ZSINDTX5ULUukc8ZD5Np4B1v99-eQfVYV2wRxHqkk925ErDhwZuNVI20BpH-LCmi3MnNWpJGFAKxNJkCplergIVfn0W87bU00vJY6tFAiur_YpV4XRd2PFoN9Em6pMwFKqKdgcPZJtjyFa4ybAtsHuMYszaFU6kXxGaqErDmqi5rvLZtuehxGGLE1S_wfpQEUjyyXmXYvDcZ3lA1m1bM0tgtSMS07dlTGi4Eqb9GM062F8X4F2lWXBw-kgUalcmzacVfEm1q2h1xqtxxK-pxpIUil3K9Jz4pmWzkQ8CZLOqyBk8sxxKiNqVkt50Sz4DpSDUvdKgKZsB_uPsMv94pafK5ZhJ3FA1k74hcixIHNSkF699TBZxkXihC4D-rWQMWMFh0fCcIs7Pn_hulj2UVFZMK8RlpvtKf7BiWw79jBt3uj1ElPI6f0HskvAUUxI9L-g3BSFjBCe9bDSDSnWhDMjz5L9VMKUOKMOUPmtq9-urC-8U1-UYy3JcS7gkWiOFi-89JCyZWiJM0kszhoICS3xF6P1KGyhdyQHtTfh1LnMi5rzIU3L7vgXXsyzF6UFvwvInPe9So_KUV6eXVa-A4hUkvhzX8Etci78-KlqHtTy-7RtZgEbBWOohqHMPd5ywBsOQTu2KAbUPAVzA8G-jnKaYdbYW77563UdmRe6gtwMY5IO70jdnG_lm9tTdIR9GJCkgINye5G-vf7oTL1OA-Xfd1eu4pUJ-w0K7EAliIhV79nrMUiUG92SH5oVW9jQG-N5sIIyH4SusS8s4hGpQkj1LJz4Wd8-tuQOCGRvDXBR5aICSoIULlQ3CcMCmBtcEI5E5np_FyCls4HLGDIOLEt7UjttovHM6HpfoUWlri10uXyECSzubpntIlzMznECV74ht3BftMHxxPbQ2ZJeylZZhqsCebJpSzT6pFPNyJLOg4yWULbb2Rb6HoqFWi02ZULxaQbehL1Mta1KfYC1yLBwov2K_vGslqKm9QF2AkW7rGOcTFNbG5qE06zCouurJhGoWFDh4WWMhzYgZ5dbrvkJ3qTvjO9cxiZ0OAenLoLkO0rI--K2f17W5OY7AEYhnd-3KerOz4uzQWuKmEVZrVEtg7ZUz2IHhP8a8sK_faMTgCdV3Xt45E5a1TR3N_lqGqKDdIZWEPRyTs6WsMbR0vDa8DovQ72umXPFagv2T79UfeKTqNtmSodDBJmRXQuSe6HZVgHzWxelNNWgRB2tFIlYoTShg3ehUQ9IR8NUswHoxsmEdu1TVX6GQvi9Au1BA-o2fcwM-gVWpyonrlcJQuVYHYrZmwoof470INniD4q2g417_kvYXe0kslbrQYwpEbyzU41Z8DpUdZpon9YE5jWpMs7S-flMDFC5oAa9__-sSaovAU1ykGNyFoabjtD-Vf1yqBswUYPgylr5KUSAJ0uN1-awpC9uUK-qZ6Hy7P05vms4PLmp52Rs2gDgKKt3NzBMFxE4POG4bY2qRNHEjtDgTDoAIiojTRbiKZZ30T9m8JMRs1_fvqEIOgK35bG9fQH4Q7eFIsBrayO0eu-gEG3CcXo8ACpZKsx0J-qFfHWxcRKarc1xWORfZaH3A14gMinUGCe9Su2dJMzF9yjD-Zd67Kq5eARyyxnAdB-5QGw-EG5Qgan4Z1DkdMPqKo830SpbipWWDFuSQkbzriHPFKoBIZCb2bxfnIKdNOoT64lhjUKwamdD_qFDkMaYK8gCCucRE5CFtS2gcV1Nwrr_cHU7d_uA_irn4_WmtgSJlDk1Vz81ca5dOmkJEWVgP16BMlKOXPJSrFDVruoPuq8tA9GMSzQMy87ivb4ZH7hRvU0D37bpQ8GMUBgeDRoSZQb3s-kYiFJ19muu6hcv7G3vKWnx0F5h5Qhy2TxGUopL3vggfpIKbv_b1xf1SBT9EkEpIGTyyNA6GmUIwcrewRoRczCt7glZWp7rfKcFfffdm96O01SF9H_LJBr9QsN3HXoLzILxzve50b2r5qBHxSp1QnpMmtXa2ykCU_UyEwl5syRBz9CTXkNMbXkVotSU5Je2Voj0NTEjimuvNz3P38BXNxFdB-Gx8hCC9QrioQLnzcfn4k4JBbeJxjuSWilHIPtISCC0D2rCJpLYM8BPNx7Hao7c2UQc4lomy9OSryOo3zu6AF9TGCD5rXFkvHeZTwLItUcL94INkTKHDcmLu2ToZVf7d0zlq9qe5Jo-2tHEiCEt6rve7GTDWZDsrpVzNaCdXhYenuUskivcxV8rEmIOav8NTVyk2PBS-aIO4Mt248ClyVozhQ098whh6B_1pOSlXYnz3ZdEyJCaZOPUO_Ps40NJCTfk_oJA7-9biZXkKTAZHdMePfGceFeF16eAvsmRMBwH1-JDOnjRogUw9WlPKgB47rYA1Ofu3Mn2s9wIBmTyPZVm3ceHH0dCwVuiG1EdQsgRLZxcWiGoThxNKgF6JGRnF5nbY7ao3e9U_0e0LYVrMXdVjo2Q45YX0sYA9aKKFBohxTgYXXRP8xVGJa21aQvf9IjQxRR9mDDcUmmElyiNR3F4ZZcFgpGlNfxxAE0hxoBO0YNC6L2cru_wLDtkH24hyIFROKmfblAXS3C955N9_BeAdKx1jD2gKQcI7UIiaWavaZW27vuLgfxZjCbQM7pPqRTpHRG_KMZ1I27bbbKq0x9v98WcKEpe6d98in12xltvx3Kn6w-0_xaYk-CmmOADqPabt0nHj_9794nyJNOAoFutGF1k8WmkhUTCwKp-SxungnVWVRAiv0Wa0ZrsBM3J8Ob3Ej_0NUCfOAZwJ3dC-WXDVIo0AtAYXvopzvhV6mcPezOdWA5wOlEqiFSRSo5MFofrZYIgd6ACAs-4DxvmnDxldI5pPsapFQtXmVsT9s-uAghiEBRoXgi8asXPp7T8YdxWvRj5DRY0XXoyQ8lYGa5m2Sh8TzmB6-nVYBYoU5GNRh1_HM6khVW7F9Ch9oGMmnw684J-MxeL8KSYVnRtVjVuAIaxKTsXw4qlLir_KrH6N1J0zJcgsbTlPKq84jZi7O00W5c2yrSqHI7CJbGsRuNOIXBGUCD6mR_4OgNEf0GqgaBeYbyTtQMRB3SppDRgO_R6tDLYH7KksbLqzisk6RUmKrtxjgz7tEP63-1G-94yPheKb-AFZtGXQwEK6f81EQTAycbFUhXNehSI4EbpJhDunua76aNrsjQc2nnsYexjLGpseATJiaMEuZJfQtPJ-U67HhSOYpEbb9iiQ2emwMls5Ge_-3mv_jTROj4XS6qN69P1Tkc5xrmo53bhiCcyXJdfheMvzmAQGrZ8kMrKLeRbgQcZlFTbvs8vIBfMg0tubxmb0MnoqpB7ceixCxtOWXkXVjh8pPizx-L6jzrWaNlhwnyk0ko6Q4QGszf9bCpG4h67QyhgF3bbHYypwQYo450rfGe4tViYPh0XuXurCoJlvCpWBLlYNOypRa1V-xcsfDaVFBFLo00AGKU_Czpo9VM4WsvnABIbtc05mAL_V71GTUmtMuXSq2qdWq3g-mnlrg39-QX9AttTrsAm1R3mwIQgkXIvL-quwqFS0N3iFSMFl0aJzj0CbSUOJNe5GCTWIPMa3p1YChr8_hn4ulUoAIFC7gNybbIYk9StsbaazxE5sYKIdUjSC86ODFmd59tfXzN_5PZyoriczH14IH4qsbiIbhzLnT9IGmYkJoEt_b2cLBMsu3t3Bgmah9Q53R1i-L9cmLV7veAeu9Qid0lp8igHPlCJa32vM24TYwssRAYuhJue4csPiwXMrly39zX7pcpm4X-KADZwi8yeBKubL0a_E6c4agvL73Sug-Bxs1unQpSQYX7QAwH3lDf3VQQDiQ0YrJYTFHtat_HwtmYxZ9ln6RkO-UhZwugGhdZ6kNqnSw9W86cL-RPZ4_13d17HGe-0FvU4PIQ0rjALIZ6HufrnoW8aU3FYxNEth9Hdi-2dxn1fN-_qoqdzlR2s-M4G9NYJm0hjcZJZ0rHw66XtXNw27XDw-uIAIQ09x0WAeNOmlRANR5axxRlrH7Hl9fkOoiqjBXnnagPTbpiu-N81IxTaSgJT_L7QhcjKtrAIgHXMqVzQNQT2vKP0Ycm23CYgaLDRW7fKPUo64_NvfCdaDrJzm8GwIFmZFtMrXi320vfm_3Jy8XsSzyK-E8RK3wxLedAGtuVmmhDx6HRpx25ZAH6GlwOrcCh_-7ADF5oqaLV-wmXu8mEmlsf86ki0KPvR247a2eNdpZgobirHs1CkSjGvGpEh80djzIccwBCYaepAsSQ5bLVHFDm5jynRUQtbAQKtCb5t-fzWitSytIEJ9egwNtZdNUh-HqEiY4F_-WzEz5AWHDDuyV9a7YWy_hYbqrPdxs8QuUB2fq9SNxLxCQYS6VCU9O6a4o5e0JbAJPqRrkCFaa16ZEwa8F4q9UQKif4MmLUu0yp49zLunrQ18nR9GcG_B1AYzzE4jMGRbWeO_a7fQsJjK9NmEQrBvwXHO_IGQL0rI64OFBhdv5l_KZk5hFx6ITVvO2mS8sgoETOWv9M9MMlsBVA45WX1ZBIpWYIslJJdH1KNNm4_9MwsT4WVXG8J7qkD_tR96hMvPeSotx1x6knN-xRf3SYkcZA";if(!e)return null;if(Pt&&Pt.sealed===e)return Pt;let t=null;try{t=Sr.parse(JSON.parse(un(e,Nm)))}catch{t=null}return Pt={sealed:e,bundle:t},Pt}function fn(){let e=Ki();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 Mm(){let e=Ki();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>Q(t.slug))),e.keys):null}function dn(e,t=!1){if(t||!e||e.length===0){let n=Mm();return n?new Set(n):null}return new Set(e.map(n=>Dm.test(n)?n:Q(n)))}var Ji=null;function $r(e){Ji=e}async function Lm(e,t){let n=await To();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 Fm=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,jm=2048,Hm=8192,Bm=32*1024;function zm(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 le(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
|
|
75
|
+
`;import{existsSync as Om,mkdirSync as Lx,rmSync as Fx,writeFileSync as jx}from"node:fs";import{join as Zi}from"node:path";var Pm=new Set(["0","off","false","no"]),Nm="network-notice-shown";var zx=["Tokmizer contacts tokmizer.com to keep its rules up to date and to improve the product. No account or email is needed.","It sends a random install ID, your computer name, OS and CPU model, a hash of your network card address and of your user name, and the plugin version. Command contents and output are never sent.","Usage stats (command names, token counts and install health counts) are sent only while they are on. Check with: tkr telemetry status.","Turn all network access off: tkr network off. Usage stats only: tkr telemetry off."].join(`
|
|
76
|
+
`);function Dm(){return Zi(R(),"network-off")}function Mm(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Pm.has(e.trim().toLowerCase())}function It(){return Mm()?!1:!Om(Dm())}function Gi(){return Zi(R(),Nm)}var Wx=300*1e3,Vx=120*1e3;function Ki(){return Ui.replace(/\\n/g,`
|
|
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="NYP3-JEnsvWDMTD0H6T91MMwOsyzyS2uG8lv6kKvj6-mImhpsBOO1iv_zHo3QjqT_2ajpu2gUriTp99Qc1PYKVxRwKK1orHvHuvTkpqUNJZ6Sf7bQz5nSt5kcywd2GA7Qdh88ZQw8lZwVJOC456mIh0OW7CQG1e6xT8sIjmI_N1XJpIsEloNu6-rSk8VbM1OIndTnwJjt4w9JWuhQ51hlzn7gkS_8SS5bEGOh4bNcpoPrCuCCHkehwh_JWyzqBIIc5SoDh_plWKywgk0tXNyDoURPHzBKUYy2BjD3yL_YjRRz2UzFYbekJIjXQOIJ_PhWIB7EpCx3gJia-kKlH4AnZt8-8D7-kBZuvixC9Ggni0tt0RAAgCqZeKtVwZzGDDdYNd_jF292K3z4dh3tH-qZg0tA0FU6c3nxgYVncq-lIctWEbrJnXxMLMdMmZjlC9sMPrObFMssZtIgV1wGoDdCLAwk0XOnYweL9ECJEVC5Ld0ArVHlnUKmsNH9HWQy6jRZrPO13CrXWlAGlOyX7-yv18QZ_N027pGCNcGzEYa6Y4M8wq9iEqX2S16Bum2Qs6xHlwkHwVezegfSp5AmpVeZr56oS2KkVNbFkB2sA8lOIZdzuh3n8mbrKuWll41fHcwTT2aR9-8k3KRRfr0os0sYA4_WAxev6POsgfYJwBF-u8tRopHyv8brwuRSAq3eeRwZXvH0y44mWz5BvkXdyj8nomiXJWFBhuzdAfopONIz5ikfU5tIRzA98_s26wjDVoVW2yt9WJ80brQaf5nO5_t0xmZtqwXHSFq3rGg6M5b9umBujKbMLCwQzBM3KVpb78XZAsq37twceFZPUcr2-52tjUH_8k48JEuYyfihiZ0Vn5nfqf8_556sHEN-aQ7RBtUji1o1Rse_fEZuNBfFcfP_y8vgxsEzXPeakr8dou9zcY17wEUVJGpgXeAQFsW1d26DWWOzPJiCtD2rlaSXtQPOd2-QhSxQX02tRuiDOQbTYqYfetPfD4LcbOuca6noa3rLN3jG6m5bQa-bcI1ZmMrcLT65QQvuuuj6l_6l2Abebbc2gzQreJSDTyRhQFx-q96aVPGFwQPu6_svgRspRKmaftiaWWyNbejGrLJcYV89V9GkZaxzHBZTlCTSWwptAH2kLVgIef_9s_pGA_On_cPTxD51nSgmPiaQCz8729r8XWNdayJQ7nMD716kUDloDb2LHRKmJnZAyYSqpU2SNU6BbnHKePxdO5gSWxyqsbbvEv4uaxDqEumu_HeSXszV8NxcUV9RyN1J5Nq8pC0tb4yl7qrGXPqI5JsD4EzV0pdUhXd9EOp2U93kJ_OEgaCWX7DgYcL_KduQ_0Xn0S2tvkQ4G4EH2TbNiQzPZTPN6_EwzSwFqmAIP9p6EDQ78cUsrNEfCGmSWJ4QXGfYnWowD-WbJLXSOySulpa3MqnF4sQ0aGWJt7Ez0_uvzwhWdlbaC_EqUX7kb1kJEq3BBlZqs4uuxdB8-BhZuuEacf_VHQl3aott_hYl29IF0SOoSdStd6WHyrsYz3nmXabh0uI12rYltqnp37XR11iiXufL41YyuEShCkLTurzE4xE4A-MxrK9-5Aefawg7PAky-pX5-0mbY4uGoGAvgwgKrF4pbnrqR6V6wx7-Gsztvrh8azv3ta5zRnrpxOIk-NcaGv5mUDSEDb-bzKAq3bYkZsUTJR2dGIsSsGpRbhluTFgvn9yJz5slESfNmNyjorMGECt3ka6TrWg1xwk3o6YMNzh2W94usbXwESFUxUQw_NDg8ypJGMQFvzQgKYFqkfnntNBXaLgNpyMc3px1RpdKDUNSIPsUyVxyY4tvZg4FER8fo2NuTPaUeCWfphXDQfg_JGsKqoLXFTTB7L5f50JHhTWIDLVwswZh0xc-cUqkq_OcmZqG2BeACiDQtU5zx8pOmqXxxZQGK5-DwrXokVYEyNinG8ybnrpnuTYeevihkbqmkx9R3zMXQfjFeam28m03NDKd2Ssw2BOZnHIVkYzKO61kIDyy2TCjYXZ6ZpageHwlo_wqfit-30qejqJWjKi_HfGWV81NAsmZWWLLGv0NpZQP2Z_EYRr1BUUh46cpBMpL9dy2919Z0j9ZuAfMaItBxavmVDO3pLOtd-uNJ7CRJfoawY8kpbb0Nc3r23H4aziQd9jlbjkutS3rfUntEeWNR4wtvcWs8OA-ixNE9kSi9XdrnQ06dhBh5Bn-ylzzfM4FpjbpKH6MdsRlkupFgfDJLAR-sORj_5-487VNesRqic9O26Hfjkgq1adck7ODhoJtcsyI25T1W9G6X_vfu7CPJJBquZL5BGPC5w2aoVInXZEASGBYxL0RBfFWxWV2RM4RVif978AIoMF7PwoYXWMTSL-9yWR2kbXb1skDpQk5R_doJLU2I5kBuhBxB1ypQmvy7UrgdQ8co3dSPn7XDMGgnckWBQvt-5c1A2txxXW4H9p2GACN4KtsQj0lZlcU4YfeA6gDTGBjnFPDi6asXIA-3mu4lpDZONyGa4XH2tPuSiD4eUIk7PY7k3sN3MmUdEyx0hU-6LvFV6hpf_W4Z96RWFUnOp4BqGm8S3mzqGca0VewS8_AcwEC_v9mR551OQvIw-yk0W64uaAnt8PGXBGhYi3pdJeuuUqw4gLQIlwotmedZ8Rtyx3qsfBN4w2LIB7yodeDIlpigMXB22GsRs18B2spZs-mqlMOE-lw0nmr308TotRoQ8v3KCwtG14anGB08-8_l-NGVm91p_lPAul9MQQ5-Ix8yVHhD4PIiRJK3EAuvuO9-iqMnpJkWVCMcXgCPTqkLeDuzc5iTTTLXV0Wmq3iK3ZwMcLavFqCca0obrlNPbrQ1CNRiGVBNesRhFy38GKfwTbGCPQTUNR5I8AEc8EKydZKSVcBUUP-PBqIRg2yG7CnF8pXKC7VgywRYKLDdQfVWsH6z4YC5le_2lXOvXmdhwLsmF5_CvO39EhozlVAz9w823zCDpz_JIQa4e1oHnX14N9c5iU--Daccm2a5UJ_k8u7RthvnRVqNRYvbfwErNajCYGrfOje6M8zGBB-TieS7maFfpMudCE6MWazUk85zA18-ZdYwejh0L3JaRe2RuuD72zjKRI5-PYQWwgFwZQtbpGOBfWcheNi0FiKuR7YaZgV8s6ukFkl5m0fI5VmAGgcUERSnlwUk7qcEA7HzxgYV59f39glHt5uwLyL2kPWx1jJGB77ipgzUpu8p9GfEsJNHQZqMRvHYpRS2rz289Odzti0uIaN5Z62hQBuEtzWFjfVHRK6MSJpndQge5TPDugaE3VZlrr8iJq0Q0StBsjz7dtbW4uW64JsP4uJWtoOed9eDUPoCnVT-tQa6bJVTk4rD30BK7DWLnqIMG186QhFcCDm1QGrvLHIqpXI9OmUPezxfTwUN3nkHxBwobJGgYHvPQeprZ8V8TIPa4GA6skhl9COxdOPl5MKKdfb4YzNQWhNrJ5Ik89YOAIF0BePn2l-SXD4njePtZdbR9nWZsILBLUcrd4mjFe_2KNTGBfIP47VVRAeRR3IVZWMj2j5du_aLM7_uEn7GVZcdUN62D-0Bxuc3xy2gn08_eVA9_4roT1hqHFYs-Nh6sA-tlBYbBVPflxHX1LxF4IN3fbNiLe3Ffr6hpLVLDLYjyqrSKCYPtA2UJ8btazkmmRYy19gk4VGwN2EVbDjigaTak6Xjc3voB11GpdkALdl8RQ4Nr44Z9sd2PWi11zF7hvB4d3CwHRsmNbTD4PTh9iBvA6brT5kakWohvA_s4xCglMUMErLDfRHY7JMGGFAnjvjC-pX66wOdv_NEDW7lfNAljSb8mgwmYlYoIx-9F-jNByT6ClaJFlyOritGsTCBXRbQTzOighRM-rBBCzRtlSHNekjcHsyI7BgoRVSjePqdYNXzjMSM7Ioj0IjC0gvan0UV4FEuwKxUEhl4B6GxhOIk-AoKdcZv8VcqmRy9Za6lNxzX0seDKKKjjaPRpJznxw8HtWQLhFFB0kTHvoq0bQgiLjsIH6EV1Yf-L0WmjdreL0ydEVHHgyUgqpJjheWGtsl4JLN5UOK9K2qpn6xOV_UcZT6d9Hlrm-yTxA1eUYlkQDOZC5bW9BMJ4sU09YbZIXQMi35E48UJSk2nkxr-tKj53wUg7q-h4ogPMS4ZDrD7oZiD3GVsnpvV8KuUn0uHLUMNKD3FdFlToEG0QxN9Ue74X7Ho2PRFa35lWwr81k9IV2WXr0nYc9kBfVfszACnJuLogXtUJC6NJ8hTclZmXJd2Kq5ofPwz3QgXY5vQSS6ePSO-XXUPG5b1jDCYq9CseT5Lf4ZZEhFdC_zRgLj0xZkK8xvQOtgc24ckHyjpkUfXFrZxTWOV5Bx68JuZZoaMdLuFqSqx0GGDhmE80KfPkaFuHgyzVAvWUvaUgcCy9apnIq4GUb_cFJpl49K7NXxijU_bzBpKRiNAVu4c6khYLZGH_rETw3d3LiRJQ781g_F5mkt6lLTJSjB5IXUxxayjytBsui0E2aGjmVWAQNCgB4wraWklEFBs2jZStpKV8NDwoH8MDsMm2g04LXE7CmR-CQ3FxXLDsvIt638OMLMoTuQI7ndhiLYVhCmhqCiTmRVewUzKhZC9hwkgKFsassqpri0h7Rz3oX-OrNnSXEMLlG-mDoOaSz9zkKGRT7xYAtXzFkh5oTkbgp-IWCb5rz1JVb-J67LUdhOfYXor3DkgzB6HM2LJuiFGcHq6j0Hi9TYJZ_LAHAdEhHC7rN_BYEHiJnb4rZJJJHRLLDMgt0dJh5gG_LGOUkN-qzZdwGr5adPmJ2AvxP6nXfh51vq86jS4Ri99cReEMdnVB8U3nXHIPL6Pb4DnO-AAhkBxAAOZolIFTB73HgXLIA3d0uFQIHauas6bc6ihHqiRS2bEWOiRrzFfnpYAFAsTmXU5QtE72gYOa-invycHJrYWI6azp03UodjRlqA2W5i03KF691mR9t6mgXJbz9Tni6q_4_auzpy9WTbDXWHpPKd4R5_QdmCW4ML8Zgo9hBftaRdGS9g5FfTFbxteO1f--1zXT5GZQnj77wPyDCvW5qCwoFJ0WwnCiQSriceqRv3Jc_ioLjjWQQF4PsFsM2ifabVxcnQy7McitNI4zAWqffdyiJuQXDapB-p0opTaFWXF4UgvmLGIpj-TpcR7S3ER6nsA-HHxzmlb4oLvALEU3t9hufont-M7DOrgTttkVJsJl25b8jfnqhY2kZm7A8vzhZvTB3lpEKQGieDW7MxhAl_LBTdHm0m6_jFFIV5Z6_Um89kL9Uw7GVXGEm8reX_B8eYP8ZjTXPosLKZUqYICjGcd6-7B9KXFRcw_eRqnf3Fdl55XLl0NnjXJxgLHOvV9eHwv0mrhCSlThovzqWnbrA3-MHH6q0NN1AYpuOw3Mj1Li3bwsH37eHI_fzdHIElYkR8cWEkakUuJoOUa3VSHgcy5YCAmjqeMkVVQUor4c0PxtHsplWY3ejquzGPu4Bon8cqY6aIS1FQLGlKV78MKKguFqH9c70nlbuJJk-HrvVtwSsNtARLsVtwOKcMyGP4tkJGQfav-iHoAWMy_vph4Pm4i0sfRmiUPIv9oqBMEBEEs05JEgx2zKJWrufjfJT8KNgV6XXRutl4d4fT1V6NYvMbwXHbtL0WpcXJfORpImIMLtynBB-zrUmpjwVq2DTOHxWuYm-IXyBu_I4-Wdu3pDI2wehTnXvhjWJ9en1ngEdXjPTZYE3idHwSmzyyXSSmAAkzDwNPnz3sFVI5o5TUR1WvNQRddz9xzIHeNx5LZEmPY3rwd2MDGX-y3hjjsAINbkY9l5CDpanEnU5CZpScqrHVGuOh52t9IgPoGqNfNF6YpWOhWcUENq9tZCkhpX1lxKblh1vsCEshmrPCpqUYLG5j9Dp0EeBHmERsMnE2pQXSvwKsAaINpxI-KjE4Nq47gmPFacBku8Bs5fWRIRF-CFtcenVZ2XQOYk7biYZsh1PQn2q59wUkTE-5zFDOdv73dgUoAxJ8tK5KXaVRrj4C3Z9MRQ-cP2XTouws6KZRQPb4LgbOj6JDRyZj_CqYBvrbJQhNKbpQE63A_O7IwSR4SSKvAdCqBnx1qnekbYwTU3BPUXfwOg9bKjC4jDvmR7v84PaIPPRxul2mopfCOPKUENX_MypCTrEOSmU_SyF48xrrPdlhbzeVcwZ4yRuRHu0Yc0OKkZDrwQAg6US9wyXMwrSwBregynBuNyO_WC-N5qqLAjv2q_b1eRCTo3K_tcAaW-zC1UOihY5XYV2aasmn-I5QhcOU5sU1KAhvbSCWVfIA9UoWh53nFijFzKvrzKmJfnRGsmMoNz7M94b9na8Z8uNTFlZBbj1VjJ5eIiTF5zm44Yvgq97Wj0WoYox-9WLVOlVYUXDtwgrLQdveWCXz3bT3fZjOkY5JgzSiJFZ3hEyWIjV0LE-tWM59uDDW7M7ggb-dloAubtlF7oenNnpJSGx1Xq549UKy0pnd4ZpfD89DBpLj1MU4xvCMN4cAgcU4fOUJQZa0KOGXcjYsEN-FabQfLEnQmlnIi6AwxOnFoRMODXI8q6b7xKjlaPIn2wFMtdU6Kg9hswx2XJMwgkJFQtXekShHqDOpVjwzrdOcE-DNLZfO6Mp-hca-xHhqs795CPUlBJ-Rimpf75tnrHOzNGJGK_w9I21VlFrmJDA3SCiIqLCpbx_LBIel7szqhBv8_dtOHRIveXPtThnmkDVueg1ApyhRkbN96SLDgk3CRhv3nhbnlLmPBVNxQjKL45wXJkP9OHZnEbtDtPXGSBQpZS96ZlVZVAFcz2fzs8egzJiR-Veo6WV-bjG1_q6sMpBbWpRJGfFv09dX6JInqRvfF_k6h9pdwAH7F5-1hd36hyioFyI9nv-Dzrvbe1sAZ4z0OhvvIoO11qe0zbT2Rk3TKrgpn1t72Wf2T_N5Jis881Ui764WUIoaXk5_Oi7acwaMRrDKHy5XAN1T_WACXqAoZ_IhzULILLv7MkZqBeo9PP4xBQMFF4lJBxiMUwtg-PQlTG9rhvj5lERc9SeyAG3MoSlrW8yl1narUELAiX3dJ5OdT77hdElB9ToXIv5cqtFlQd3wfeoFyBh6Vy88_CvwqlxHfOA3sy8P_e4HF54uQAYjcLnyby4nNMBX92MfJX30z9bTX4eNsCtSH7TwcA89581oFolS22NUed6y3DeaRM_uVUnVzQZf76uE1dry8Z0qmIEWrFlcTyp88xAmQ-YVWJ296s-dlBnChGpbpXEnrl56pht72L3AP9IOmr42dur2IOuDR568kAk3juTFm6HmIAtnm8PCy_F49MI4AcCf83AXyNqpypEybzacG0FlfhUVCw0D4xOyRMT6SyquZOKgoFt_bL8z7wde5af8-WhLiH5ZkedYTKlHQkELFgVmgjm4Pffmno8Hep-xaOi3y23KmO0UV4yq8WysZB-8iJtH4hMGIdHudomRQ2JoE1YPuTG3JeriKHrxlNxn2ze_AYYBj3VJLocfoIX2S7edu0TVGPzzEPtw5LGn346Rhz9qzBSW5N80vdOOiPxmwcCxHzDrX2FipXKp3vAYTFst60Ly6b1qYUjsqtcusnT40l6ERrWtYzbDye4JJqH6pXXhHf2O7jKDwhq7zt9HtB17u6YVk_V63dKDEoGjtJ0g6Ku29zX-KYwzH4QFxy9_D0ujnhKreiD_G6elBPl25VKLVnH_3xh7Ei2msvYIgo7BsXfjB65Bwizik4hOR7Ycw1jZnflaCkdnDfHQdP2JpEwC9yKY-5Gc4msus6VGvrvKZ_DHhNe997XpdUgZ5jTn_yRoSJa3QRRey5uJ--NIW6HHC8kzwZz7aAY0YL9EfUeIHa_ZjVOaXFo9UI4F3-7NjYMSP1SSjieOflg9jjHC646TY5JAKkKzeyXW8poNYklP33knuhxYeIQMj9X65lDSZr53m00S7v8fZ1ZHU5PAD1vmYQePCk0QcOLB4PN2khtCoAYipj0L5qlFw9KZza84uJCjuKZ7VhB9pA8YZJi4xjrxTMX0I0sJPhSplLBzjWMRQGTONpR0iUUIXzbyrhndcvFHnORmnYgcgSOoZ3vh3bgd9SDXxuT4E1FStoj-blsihaGj_UjVou6c8FeLYqUDASBnvrjHrO4VG3sYUXYHVq5MSMONRU8aON5uJaXowwmKvlSJBoiKxjBwbsWdeZLQcQKU0ZNAgcNpc-tNt6-hTIr9Ivs1duJBTSoHVdWk2wLyQjigbUhg8clTl2j6X1GRMgJPvjtTH5Vl2EnU6tN67QZQwPTJmKIRr94gme7QG9Xc5mlIGBNyLNsLWw_N501wqL9i_goTJ1n2JGFmyJCvP5tF_8PodY0FNsIP8m8JPd2QQAxadhOv69ZpEAGs75qt-LuQ-Wml1bsjwuHzR-LCmCAD6h6nGEHpWTrapTWoHJDk-lXqpXVjcFCwRwkj9DkrsjC9TDzlj57jEUgZIXGaXJ_ql-4BlbtHajl6Dh32py55k2FpOCYVuA0wrwbYUTtejDjHTzOp_oy79yJjaDVPUZWPVi3PiORiiLYCs42GteSfnaPposT-kj-SH5VcYu85JGhssyca40zOOatXu5JMVN_fjFimrJp4Xtg-5J-zPPLPwuelgve25r2Gqx6RjCuUW-LV7ikbb4oCao3DJldSqYdUeSpK7fU5gzz19uztosWevPMP0ZmB3Azh3635rsZFWdLKKYwii26C-wTI1c_H7knKTL-q7kmKvQtqTSvVJ4r8l2b8656JIWSbcRWaiw_qyLJMU8fLZ2bMk1_Fe7i_gDA-9ma5HbQ1CKR8dgg8pOchjlVhN0DGtm6nXRTcPDB8bXDg097cG16eeKvXjMiQ3GM3kM3ywrM3UmTSoGb3j4adBia-7sMXfdX8dvPTW9Eqee-9knrogHbon3ufOp42PsPhCMCUQfRfCW0dL6v4tH8GZtRvrlOX39qrZfk50LLgFR6ajvwBVbMFx-ImFGNIg87DsbOMCKfvqvsyP73K9krl1pA3bGa-6cZy9ma1QwonAScqq-TBs5h5jAqEKaHVjZAkeV9cG8i_VKZ9qtrqlPQClOG-APvAMWgp-ynyXy8QwucQvLlvV0hVctBqkCNRj7mWjn9FYVV012nPq5km2rE5XcLBlVxCV8GR-oWXW42XVDgKJT8Vl7f5rR0O0U0HvNJ5rSjR64wBgY8z6qH-pThTpCK0zY1KWziLFQVr7V4NNSVcsz6UGUUnVd-5TuPQxugrPDgQ5bnPKlVV44Jrq-lXEUvvG38Qkafl9L_qUUDiaEUsZI7ECguM1lWk5VRnPWEteIKemFEufHFOz2oqDFWnZcV7nWOVXDJ48uCClDM293Z7HVVqSfLLv5YQD7f_5u87196Sl_tL4HAebOUqAnjBX40Uk9KaoGKGzMDXcygotJ-kmk3CmFJVMBHkiow11WsiewzLlZEtPcdosi-gvHuAjkmtkuMzG92XJzxnvI9RCVz2fRch5TxHVYNeNh2mWjgGohffRLc0HcHVBpxHJM3pKalFQPBwButfDSljiMjeEongmITqeMc2ZPREHAmw8bR9AP7B0wOmpuiLgKtYBGmTA_UO6lDcULBfH42Npkgcu6wbmQiFUWH6hNJm5_5bP3XU6FOVoqqBbAjGoJknE1B0M3p-C4oCngDbS7jK3yCBNko-5bXfLJ1SdIt6KXDBLcwF4dhN9brvTyS3WGyQyFr1RbGbXH8xEKAZI9wflyW5nP4RP-ayJjiHUZanjtw6yk49Xg5bmy_EH7oze8h_dsB-M6J_FX1miQk_cLLf3YbANNFNGKx8KwLozbmYxp2rBfujDKcS6f1XxyBJZ5JzlIrFDEeCJSFD2IbyukzRmJPhh6Edlg7Sexzqq9imzaTEcbU6zb2rCXGoC4NIjvEwtVYo5mdFCEHP7ChvSx39MHiJyg5K3cCgH35AiJ4M-9wM92UZ7Vn9lDP4kmZhhkkdBioErv8ylFqz82ZS2Jznm9AE67Cl-n9VDm09pjcF7kzwpG7vtITBZT8h8_hQsMJXa0ufaJkIzKfYQlTcMomkqu2fEUTfujZHijpeJKekx3BqAbnEoE2GKhNjPHlYDCMem2KcNQ__h2wqeaHtisxR8LKhvdMgm331oPGtNYx2Z02mBQJslxv-v2a_BrqUa7L_TuczOI5cPxNEdRl0Xm2XvDtTGvH6nmYRX1vUFj3F43B5vXnuDfVyTwmBwie6E0DpgoOb3V4EP6289aT8Ix1LENvLanv-iG7We0uwtUToTYpdi7Po9TVdgOxt5huK7AfX6gOnanbc3VMrORxN3a1Hjar_pbBsgaUbNbHZdlOMeEO8Ckemgh5t7Hxf0SnLNUDKlAZVWRA3rOHU9qKUqudTYU-u6dDjAPsc-T4naZzdu6DRmZspL50PgJBOhNFZ3tKFXYo9eIFhrSy7MbyAtWVPK7fCwmX_Ag31kMPBbezZFkLiFbRdO0bIkuPqIzjmMacfJ0aDAKlZis3ecOiuiT8sqp08_RlhAyjkNK_jISKnytQAU5b_7zkkuiDJ736LH85bFkeIOQBMyBiJD0JNVZRRS0qDAbB2PGj8I2tuj3QRaApRvf8BPKh_lNbCKhU6AmUWfdgRLNbJO_A8A6XG3d5x-k4guMRCERlHPSalY0t2hz8_q0Cp7tVnZheWAdvTczTRnkT0rFgFKQTn2IK0rpE80gERjMpaedxovtESH8epEpvuNjRLx_gYlr00yAyw-eOAlQhfwngT9_7FykxHEkr7FDdnd3lgiICP4qdaDQM2DCweOdDQ_jZuSwIdkM37C1Qfwr8EPvTzL9rgUQCOHOWDxy5Dn-8qeaZYn7rxWOiH0k9NLoT_FnG2iWVaUnkD5lomUoI956JUGBdMvFEckha0sQ0nmk2_viwWoaCZEbP0i-RJ1FrX1ksIg_CU45zF9Sb5_fE3AlVxQox-uAu64jq87gmzbBxF6VzF7TEEhIJ8h5NGvHTvIct2hBuXbBJmt1BwVsjmFgl6QZv4qCTCltssnriouY9OdhZDR_FZDjapWTsFU8aZx7MHOwgOkuFJRgCPUrhl_s26tEw0aM0fO546PmjnvvPX0-J_CHlx7Wq5arcv2mzRLuq7wSLAxrGaxuWku-v9D89TIxzL8094TNtqfQT6xCnraKb4FlB7q4_wBeHjklwZrDyQ5AEGjy20csJjlr-s1ogSay2dClGVrfe7FctXTi_5aQoPjx36oBOfup1pNEYe9zd5FnyTYdLH8KtRfSqJd0dfa69c0q5kQfepxumWDy69usUFXTloNNzRka4GAxYZzs-DiluyudAnLxHj5gq3p0EOwDnjzCaB_pspkVspAszmxDKuPoxXq94HKvH5vl2wkIIQZ1iMff4dOKIkmXbDb4WNHhsPc0qwdNMhieEl9us04DhTTGJ3vvIkl83jPEeKvEFhKdKCzQCZyhThj1SahffFezwI7yXRB1VhWG0vnSOFK86hRhbRfNmRbBD_wBzY14P3zG_HQj3M9v02SXUt0l0ffOFydquqAoz5e_klK-M-k74bpklH_DrgrG8Q9BZWr6C9iSul1UAQke_IsfaTXsA-gj__XLzDTiq8TKOHwRp8KGe0dhSgPl0OLsOxPF4VEQ82tMBp5Q9s3G1Kf1Aumv_ZxMvUimBufbUggMk2UhADcaL6GGOsY3wCRSOnvQ6EzOz2yibzA6kBbYMGAITNdWpMafEMTZD7oDxe95bEJZSk71kG9UJeDg1MaMWIhWZmeu-bNWpFa-962j6yNmTX6SVfxPDX0UpbPx_h_1YtcM6rmFhCT19qf6kRX9yUg0CJJtnr5bMI2JBpwi_OG83nDiHN_cPvQnH-0SyR5pX-EmD7v5UoadK3Bb2-GxuimPIhnoIzb7isO6Ykqr1ptfmBgs62nMDXl-T4eWcIFeKx6ldJ-Ib6YnBKfYmx7j53TjHVkXA0H522ZLLcRLp41MFhgDpiWEC2B6UNF68_iOipU5p5raj4u0Ddb2KBii4hW6O8HKSQGPlYaq3ZTnhg0y_voTSOkjkyKv4VqdLhmV_3owbLkVab52cQ0ii2S1iIzBLbSQ609j8UHJvOqX1JfIfvXiLO3OaaVz0jhKOsjC8DnqaZG9Vn77feFHWyhGl7SP-ScS38LbE-9ZHlxlJqo7T9UYDzQt-ZfADyvE28oTCUxlCOHefPd9ONBW2bUkgOIKJnNd6yn0YBqkvj0iKI6sS1oUdyOXwzfnQWFIYWU8lpVX10kiMjf2K0vfsMjJv9VXte5dnVAjaoqLfNDealpeUOhXxsG8a8n0TnGOPP9evoJkH79hhRdJLKXToCJuBZbR-xYFsjnogcTL7rWQLb42SG3wH2s5plV4ejUsSjEseDY6ibG3Br1zTI9gE8sglBaU8MnQwi4yWHlcUIDv2e5ApwNEh-T2ULhwWlJXrK4I_u2m4yFWZdMk04nj1yCEVtQQftZxxLRJ_KoZCDFg6ka8MLOLXbGN4SOKChglCm-v4aCYEC1WCpidMGQtKF47CV6zMAVAWwIlRu8HUMVM7a1TKwQN219JFMqH1GV5lcsU9Z1NSHO280pMNop-ZEjhsk2w_BVEwFLZyFlgmBZ23JuQojQX280-VvcHCxM7RAOpiYey1FLY1DbzR65Z0zv3hPLiiv51KXL3ZEWbimxpx5PvAGR3cwC-eIY6_GXEK1_nGf0GG7gPiduMhmXLiL4cujsfuaVHgI0ba7u4lz5a5JtPPMBLFXLn2ZZF1zQ54IV4qdk9CJAnVCb8vkIFb4ml0SwhBs1rpjUWMcmRAYuIc58DFmJnFdtj9kk1sPN4xjtJqH8nx5NYPftB86pfZDTwMkxRQefqz4SSUqKtoZ4gXF1rwz0aMwZLUMPAjZBUcVvODfjSMePmvRo_Tlf93CvihVOkLvgyPG0u_5WPVTAyz_bcWOODI2AXxRDJ7uE6QxwpdW-pp7kNl55bkz9TFnm1PJDAB2wXKsLZvpErFHbe0fOQnqB6mlclst7FZgMrmzdgM9UwFce70NOsod2PcGDO5UCKteKQUUbcJoXEGN5WOCUeAGkTtgnyTSC5tIm4nxKVBDfbBktwTfgJaNAQEW2VRIYl4CYs5pbghMluRRylELfB-CwBH1nGZ3nJQGeElqfX36xqgkhI0AXvNtExAVfIAVbZGcIAB0mpZS6N8keM-js6wWhlxCuT_mwpvIcfb2KI29QyWgAtQUSwxjXXqE2bmtKyh_esf5HbJNChQ4Fz5tsCOrrvbJJ9c9fycEUTWQMrn-n_a4e8jveC6f_ly0vjgGfuYLB7HGr1zDQyrxXFmG5rDDdzTpHtLq-CLcHmA6FXNUHKYge8zu4SnWBPB6lRuQYAuXmwYIOkLZmni_GB4TLqaOWP41HmeOmbfr5k0XGgXxiesMNKiuBbXs1lfbQY0fa_jFEjfEcXvc2U3Wx9FjslMPOVs0qq18OOMzRZc3DABSrDi3jVLigEHh0m93-jgVpEITJB9pemFSbGc4YtK4Wxc-VAqsr2KEfTcalYvagjI-M0BPKeD6lKr5JqLycs2aX_pwLlZ_Ql0jsBCqN7N2vhznt68EI235DIwce3-MmnSDdXfPA34U9GAoHFDwynn28Wgi-Cgx9WyTESp92V6N5DxZuuEPrn2o3kmwVOIbXpkkDQfwvquQcivdFVZWtGmFNKgx6PVa7IGDEB68Hmh1qbxiSDZ3pJa6OZk8xzLv-ooOwLnIfYoRTiLGHEXZP58g806XugyZEwuYiiCUFdVz-BCOnw6b2wh6X-og5rvxcgs9ZiZoiufIttS4qcE2Wv-T_fAcLxhO3SCIdRDptRNBn3zJf__9y3UiXcUhO8IGcVVXSpHCFuhcJCRP7y0TsBMlj5IHZ45qg6Az5Hr8oPXuIjfg9dEpaA566U3EpdtgWd4fIMZ7yyGI0ihfwn7FHPkQsoMnzfcblg9g2vQ173LeQsA01H_kI-VhBaQElh8-dguNqH-PkZzgJsMZoG4vq-3erls1ug6gnWrzq2DpABtr8V9znKgQmNdsrMVeEwdXVSHQi1UeBSbObLbI2MdZeiCj1eg5EGjMsrduxep7byZ8MaCDIrO4B3hEJVg1Pt443y57dpS4rLdqYmmh_WwldWGAaEK_YnHV6mJcpi6p3tDIzHvfkTElNJZeo6PeTV9w9A6vE0FNwEAyB6-Fo1s4Vr-XnPyf5rrPc4lVNFk-Yfo3Iv1oCCGGrEuZ7Xj1s3J-7shrIlc_qMtmTgxexL0FVQ-SgeSKjMY2l8Ac4ha_GsdXTSCZFsLOZutKm0chrYVecd1UGZURulcPF8nfiqI9om685zIPOWy9pzL-KHWgiDgTIyvN6xddZX1uGqQZk8xJwO3Z13VzC76tgHK-L4P_QNDd9lC2kPACHcg_2Z0-Tx7CA5v0ijUM0VpRbUR2xO7p7D_nfFeMnBjQJa3WqqSR980uejrHSYcwZBE6ztlYaiKP_pvWXbG3Kwa25MtLgQWpUDEuHs3sNl_sKWiqPV_Aj5S2QmJxXUDTpM0U3kmq49Y1JKa6sM-sZjBWnF_bEYqu1tqQtbyK64rS1H3DWIk8Kt2MxZcP4vl2bLlHhuaY_gzRGg8YinZasJtuPS5BuUQgpmys5Q3loHiJcOKQsD1SRIhg2JTGT8F23nEMj3jdtUOR2EAoqJRip5cH3cxiSpwdXh4rP-DWxW3hJt-9hmwVHjSqwSfw4VmwHDdg9OsTHDBOfnM-auT9-JDmY6kVIs3_N7F9y6_XD4SfnWLkJNJtCPe-RXrGZ6fcwx7b6G_xAxtSrQcZ4LV-ftIdooLBGjkTZpAEfbingxg62bSOnGaPTcj_Bt7XVvR_iJ9KRD8Hg4KwvfQB6yRAGgKYPxOqlcvLUk5EMmO8SybP222M-VTsJueRmDqEZjVjRAi05fIsPz1EYQep04aUcIn60O01rOIJwvTXpGIYiwk_GLuudftyJOu34TzY6Rh2YtgeCLk96rUqOgvCPAyuJAlo1EuoxYzZcV0FEND7myJ5IOVCUxBOtGqmsj34MdTm53J8T1i-b58fQFzoyJvsQQiuWS0c-G5h26kqUgMCb7H33UmQa8NASym5Co7UJWkUTBNNZynefNRkeJ8qGVZEIDtJxNk6K3ke3u6iPmkZMzEpG2_nwjC6n8f4UGuVsvBZvxS7y4uq0Pl8wK6OvtCIjhYwn0lJFwHB5vdq4QfvUG9YA49N--8vRwprZdR9XrUbbgl3-1nq87t00YlNXhBUOLnUb6thOcaz5FLhZDqzfsNpvCv5npeHWq6WUArdlYstzQXKKJEaCkEZMPhxzOkfzvmetHDjSvvJGj6siKTk1Meha9Q9EXm_4UBCGlDZmZ74Ox_FKnfM7g5K1WYV1RtO-O-ygUgvrxXYBP8vupqjvrzAk0895yUkif0iMTpbX04Di4S_jcYZOki6qoSbPu_Lr5AYHhqpLQyRwTo-RI90ndrJh7ixiJHCZ-4yobzuoRaPsZT3yiXwGdE9Dt9Br5nYT1LvrAdCyGHqxYUtqioYzUT4b_Dpp2AO9d1e8kY6cqY3PjLIJSB1Dl2ofNiDcvNptrxY3iTBIqKuJA8wph59JaE_0GfmztJqsWv6XjxNYlBC8HZHMxGPozc-InyAC5F26f4YsYPhMFP_vsMdS9tFBlYfmAVTnyaFEh7P6s-bvlP_fgHRT1vQatWAPJTJ74G-oNavy7mu-lpi4HDjSCEcMet6_33wDIdZmhKLpqqE0bzkf1_6-OTpRnX65yWAkfSLIo9YuHxZk1YGVnDF8sms7ucxQ7uMJ0--Dl9mixdMTpHDZ0SkJYfaHJ_CCJNvhLZX_cj1IFjddR38COrQimVJ2AhYgwpMVmF7ipvUOQKAzkKgGjSKtyUIIQ6NF-3CP6P2Ex85uERC2egsopi8P0C9xnEc1bCZttZQcKyy05DyF0_g6SIj5YKO7uI6aB3uCstrD1c5f7ZLw154wyMZz96ao__41DzTVO2V1_ju-_Bb1X-p0OyhYI2_Jx5zv-CA7TnSz_FaaCWPs9mR-kzSgONcABPDZ6baxhnD7zHeAIfvw1bVGOBI2Zv9819TJ0PatA3-38-nO69-ro7oLFpi9JdrVqqDO7Or0svfOKJ_A_ybXKtb7Ekwq3iyndEQenF4zBn6_9RZngAjMiiF90EuR3Wa0g5aqOBIvZkSUrtsndiBLdZdwZ2BF-e_wYKsOnhpq4erS5D3F6Cyv_7SPh1SVYbaFHmqcEIKf2lWS51omWyfnKbQTRvSrPYHdmkqxb2L67MLnmqfb9W85HpqE68HmR_-ZHpmK-erCaaaaElz6g2513R-QoJFncqTURYS7zJ_20LDv0Cwin8FS0eMnR2MFwwczC7Zl3Z-T5OybM9FTjmrwnhrw8Y1c9llK7F1amaAjKBJhuVqwZgl4ftCga1H9-W2bF2h2BS9c5-g6ayrHPEwkO4g4Bg8GZ1nKGilBe5c8PgpwvL3pUY6NgsZ0p3elC1JCTaVt2qf33T5R2xv1NzKCZCfT8HXlHUfO-1eqCaJ6VyugEjDAf2MfYNbjluuC1vIt-Uz5HxZAeR45GqxH2O5pUrf0Abs2oN__81YJp39S_nlBxPvDSn5K7OFj9geEA0z7LKK6kZPt8vfoeLBBtYS4dBbFM9cnLmyKI6ck_tC6olAqOq6obBTKBIji5x082qDT9i9uvBwygCOaqPG4MQyeo_i7tCFSTdMS5QNJPESKyEIWgrIfVG3D-2DKJ6K5IIIxSnCnynjucGnWLfSbqyFqxCuU51jBcIlsa_rrBAJkXzetCkhi69vJhPZzJT2EQJ0ji8rnkjFVwpH1CYPaMxrU8UzCH3Utz1G0KaVXHgGpfJ96rSJ13-7rYJMXqvD-zikFSkvw1PvJQvU46hTvDzpP994NsM5xHBoOxdGCbu02A_I1FUVrviQ64f0wEicfSWNeLM2U4nG5Slfl3ECWKdd8TTwMwcJOUWdRQRmn3emWpWccqPr8XL19ZFYA6fl5M90TNYBk3iqYKhkvkE2LKiYTib77DUze9Ur9CR5cdnnnO_hBOEvkeMAm4rj4YhBhRWnv1tYfltzLc1xzUT91vUiFrsQefS1hsQe_3kJnSSgSpcOCKTr5soNr7dIJGP7oNGyRwIEKrcnh-eSyMzfAIw_0ezbDyh8476_PZOSySNYRs5Mki4tY91JVZ19eGJoAy_RXP6_RrhdOpJe197K8gQYqyk7EAEilWz5bylSEQGsj_RPKPktw6Fxdq83S3L8aDSZoJKelZ3W0qp0rTN7VPm0IyA4raXWA4u_FIbBgFa70DNiEET52pLtU3kye8bRH2N2xoWHpJWo2210_Qc6r-UqEClz7jiYBWAwdg9VNFlWnwfsOOMNBp4YRz7BLl5EwvBt9iI_6VsLTTMC62pL8nVs3an2aTgoNTY2U6dATmpg-k2izdUO-FFE7muIz6j0exMw1QQVe68zarr9-uXdZm83X6xEPYx0UbES6WJSlng33wjMjxy-B8fBUXbz8SlYVrbfVq1f2Jv7hagImCWxJwq_1sStDIuf94rdUJvcXSEy34flO-Jmk6Ql5hozcFo2-rnkweh1rxx7G-8pu8izc87EWgOzzT1HJkU1R81BFJzpZ2GJfvfVBr2efu3fHFAI94ud-CMe-iDUG5ImfdfTFshxd2wnrtCxJPAEJlWHeBm0mhaKP-EIZGMoIEBS1U_PY2i-R0yqb-MImog1m9ldpQ-71A94Cs-x54GaLUQpQrORuV8CRFWidGyQEudT638QB35WjaNi3oTLVjCkahEre7R0PY4NxyYuXOiGi5wXpWIQoav-5DJmjn_57GqeEqtVH535Kz_CZfMaMqhdLHAvswY0YmLCeesHD8QhR31NsFzA4aehuLg1kNA3kroPiobPPkKbskvleg8hn0o3MHMgLY0zfA76C2PdGK_7rJXGZargoFKO131K_gkCraKE04LxQvv5-RHqX3vYZKUhrpiDntJHy2wC3SmxWRhTo27HMn6FlmkbMkDpVaqIbTL4khv36PQx0sw7nj10WKwT1n7GtpkcW7s-TTaMaODF7BLiR5ePnVQq5B41lHz1iuJH3DR-YfH2r9EOmcNe0V8Ys8fX8w1_q9Xt3f7lFro4eTS_-PuffjRSw-lv9iqOGS4UxViqFvjlyWMf6wLH2HGxGqiL1mtSGbJPgQNX7ZDMqdO17eH6TYz1qRHyfgbqWOR-Ci6S-uXGCvZv82C3GhBuFE_jM2olR82U5NSfzMFAuXTYOBXmORIcDaVhkFgpkj3pSBM0WignW6NMtef9FIAGTlu82oRiAtLdmnsUj_1CxNoZELj3jy46RRxTfahVOsx3LUGfOX8TPxHEva7lAuniJdQioAmhYIB_DrWmtwiwMubrputeR55wkDLYiWh3FH6cle8z0jh-yLwoxKZOAe5Wl0Qp3PN8DX30FY2b4HgIEV95Hc3BAEeezxqMNo_knthyHxJWPbGvSx73Tbk2prI_oZeO9m4129Akw5pzhwxMAnDynW9FqeIm4xvCcr421TuGjd6UpKxMATEvQZmw8wRb70hKPJy3ZFYp36iAdyipJ5S-2XcHEXv2DJ8qN5DxpFfPdXJvP2huk-Kf4v5oOyDLuS612YPG0hOdILB350HePX5z89DeregwI8zU_QF-mVvJy6DKVbUk3xVWzWVPMR9dbSyt7trzw8zf_MfuTZ2FdwSmutH9BaInV1YCp_c4WcP1p8dDaRA9mycVPBSUZ7jxNt_hq5hmPEX7RUufglymquGXmOEsSYp6rQPpF24ajqx45noQrwZgyMw6SdrJapGsXCGJBrogXwYcrKL_oRSt_efgB1OOHjPNDlUZa9OMPHaHUk0z13tfb9HbHHD9ag50lagF6tbvJobTx_oCvjtLhHTe-_LED1Fv4a_EV9NYyOsUalckK969O7HhP0ou_vimE2aKz55TuV3lkHqQ2nGR4iPPNIHl8qsoWFb6vnaqax4BtxmYXCwBjRbFnvGMz_J0-AQYZVoYK-SuFXOz6cvfLrBlJMQLy5RkzJ8tBFy79enxVeODBCGkCWS1oX-RNwZqUUN-foEqXDwTEhfJv4utZZzPSt-xrR0EfaEIy-ppkY0pPF6yNQTvcaJIj67AWJFEwL1zDkkIi7BRysbHDW3wkF5cqZzrEZWBzYUKJk5mo1eTl6oYbQp4h3jl6ER-MoMsirAW0SzyxtUf1meLfZPRH8fAkKgDN6vwr01pC9_TzHdqUB23Lmye_AhSAh8wRoVaWVFAOgYM1RvEX4hxDrrhdONpZRAvigdDWnGLSwLeQX1qqNJQnt-Ilglw1OI7jBNtayHyrP0nZaor3lVN99SCqmEaLCUUC70iEoS3M_txCe2vyqKybJVY2uAHA8FNa0qtgNdS9HMwyPdv2bE16Zmn5u3v3JDHYnBUsiA_qFPR56oHtP4Va1Eh581i-sbLWZ-q-WgVdykbZxPh1ioBZuKw9U3UIhFlfTVoSHy3KmJIlUwOMwTkhmX3BYSkN8P9a3N_9izOrphyNhQX3u0d3QPjZ87LXK9AOMRQv8OxGCX_1OCrUeqTff2rmoixjNqh6PrMKN5kdA3z0GFBk-5lSL-L8yH1C_hdHwvcCRwoFhe2xHeVFE8AXAUUTn1zkGzZlFRP1lAcWk7fI43clQZU8Stjkq9TlWfc-WC6tYZ-j98IpXNOTnsvZnwM7Cmo1ZTuusQIsI5T6NQx4b6qLcZWUW6UYIGUoqolfKcmBKyuS-CxpfPRy1nNx8CRgPWso2eBnH_AyhxuNSJvZJHc3rN2m4hI79O4ttL3zTVu2yfo2Wr2iPmVD8H46I4HwZe03Q7MUyQNHcBPv7SLjMyg6MIVQXOQMGoyrfw7LCPZgICipHRZlwZDyU7AzolRJPWOwCebceYJvPDuevhff_28ZG4mbHJWH_vjzuQSAj8PlpnMEwITuwkSvf_aWo0bYw-0Cy0jmmtYLPWT0A43RGuO24DGeo8N5PVPszG4Mf5_YzgCxjbfgVhetSsEOPTLEgaaaXySD50TsUS-UspvjpO1_TTmLAy_hfg5jQJbclplNyGxZEQB2OmRoTpj4qVkBN6Uy7dYpig43fsPNmmb9B6t5zZnBDePoQOlBLfpbzb_bkKfj-U6sPXf7NE7c7cXTAUGpdqVo14fLIDFh9bLLolD_-hMTIAxTChMmxChG3Dp4Ew2jAWY84CVrIOUSCfSUW_UMDLXwVkDoRIyLYzbyQLS43A1y-4kMffdtT1m0eB-lxXK1140gUr0JGjuT6InzmxKXXIt3-1OW8GzWvMy4PfCJhY2bE6coEPmFdB_MU5b4PbFgwddnPIUZSVTdgOGAyqeHA1lidTL6haGBqzus9XEzhPnFGxaPpp6vwSQVZNSlR5k7ElA0aUisEXBLunMBIxttnj6Ctv-OWB7bhgbnbIBXvCzlBviBhTmpJeIzOnRdPqPKxTGQoH8dVBkFudehIC3QoZV35cGnKwPfqPvI7p-Y7W4cZpggoEHpgeu-mSObdbjPLQGxNK6DSYCtwaCo2ybB95TUnZIZUw6fCwaH0CjynaiWPB3RzUOIZHj_CAt9H8Rpmusgzn-LQ5r4X-cm_oQK--PCgSmX-hvljeDP3IiQ1ntk19pGlyZQzyvhrEz_1T3wBcdm5DUKz3uvtXMz-obaeR4eJheNWaUY4kPwKKMZYzYDj2rHkEzN5TTbkscOyBLcmAZlfwzCEJ5-nExKSgGUemtz-96SpifjzHHodA1OzEferRKDA7OL_NeTubZuR6K-MsvC91AwvwVpvTiQrFlYdGI5m7a7nUCVAgUoTYgRsNAXGotNtqrKG9XOk6hUVGQU79W8rre1r-vLKUpdTO3wb_vwBx8jJyhZWfcIcf3d8_PuMx2njlFha8I7GveRyFLAZqHuslJ79CN1utduTezOV77GFd-JvTZMMIFSxEBiQ3xSrBkP9iT2neqnKaXFhT8eg2gSv253sIiTGkhpW3NX07gITJF6tS4UPHx3JS8cibqb2FbZm_XO5GDDN7H48sN5yUeDaiE7sXfwn_LfveucMLb6sq07cRuowAI_dmfAYIpU-kYhOQa_7PBnc1PDepQev3EIbUARQdL-feG1syT2qgKy6YAYY3C6X6C357Y4v31zlR65Nmn2DB0VaftlrHaNZbl4qJH8TzRiBjhcHLK3nENo2jKH1kwRpMyYDIHVaD37APgwmiC6Mhwmg__vJGpIt-INPHPpagyrDyOfkhV-0Y3ToFx0P0bne1KJExylX9loCOqHXxDZXAOk64adEMeRMcE1cf7hAOvbtJiBlQsuYHxaFSEQeVMpkFUoZblxFNzLzls_-dJccRH1PfE-CUo8umMYcnKBkzq-siiKd8W_YgQhc_ZDeCQn95Q7hrVEHI3J4UQ0IvBeTC5_Y9LuI1N_pu9Ne732V4Pw9qq1qq13v2QtULJb7RwgH86zh6rYcWbGrqpU8F_oIC0ekJ8FO-15Zr7rDzZx-s2wjvtNebHqHDsWZejZQSbLbyWR7yMEIvbx8fqTi5XP7EElSv2B9qnIozZQMT5dgWM1mTNj5BR-J1EPXktF8Oeiy8eOQ2vl3GGyYL_Pfrd2HLflqmwxbAHEwGEIKc6XusAT51-Y6SZ7eGscHUpu7pajcOlIrReI_vjIqVMYlYDAQBT5ttdJHEChJ5LCHcWH3ZgTByfbgXtgCa7bYdtxvXY1_HOfeF--KsY2UPcIe8cfu-BX1fp8HjdnFpCRyLTWFmQWTz8FUDkAQ28i9Tk3Bc4d1tRiSCwy8jjNMzAziQnGfSysvgeNz-kFdQt_bB47HcDD1G7PBpBvj41G4dHjLD4WiFST6ZXIafikDuSvSMZatrRRLE_e8NwOErkrzMU0wFjeJp3-cIoqV7u7Drnce9V4PFI0C9zKGix9nT7Cq3Y6U3i7yBa9GJQ-U9Wl3DHLTLPYGB6bw255VqOS1rv5CVzLWZwFz-wcg6y-hMUWH1xJvZIFHjGNaHJuGwmMcb2YO0wPNTfraBXUThYkcNeuYO-KZwiR0Gc2S3lspdieH3HAQy2_k_Yt1sVr3QmGK56IWPcnayB-HZbW1anKyrFWraf3IHEFFAnsiEzSbBc5fwj7ORL6STzf43JO4t_0b5Ojs0mOEQEnCa1AGSGrWU0-lZMIg-HRC4b2xKc-nognZWxJPK-8U_KhfCdEsRaGho34b7IL-4SJstO5PlPCuXtKTJrZ6_h7nPc5X8UugNtZfEi97TcDQvC9vP8MLiK7xNQ9RpsJtZKAzgt4SYqZnmw64LBedEK5R7HB4QBmIzAO7OViU6tSXJDAGcezSt0rAh0iLYVY2E2n9XP7hFJrtefkXuftr27voYWKQaJ68xJ1OvvHcfMwDgkZUCzRxe7u5yWtQpcN2Lu_RvzwMmH6TMSs3uCOKvUz1qWCBVECHqOIDtZ-v-lsVa_Yyo8z2bqo0Qb2-BxN9ujbLDf6XNwxBi7OD99hZTDlb0ELHmiNNeYek-S8m6uYO-oNbKlxqvaKVHKuP-HCDFs_Vt8EoH_xmObOeeDKhAa8rM3Q634suw6Cmcpy-XRJ561oeqMpnv953Z2ZqlItFdKPHdO9RJY5D2og1L8dNCs_wr3XQ87vpDotDohq0nRFLXIX2T3soCufRaewb3ZJm9a1sJyRuvqXEq-Y-NNNSqJDP6KsCMgZdIAnH_HMbJHth6mMMUWreg1ugfQIj-djZ2tpUolqbq9GZw32INfFM8x1AY7cFbzSsVY-wK2Kt3GVHIErOi2xJ96SWRjVU86u7rrmepz8qnOA_aivLxtq-HXLPaJ0tifFK895CE-dDjavso7QUpnsCcV87FCkmJ2vEvk_LzayX8tQtvZ0njbUzcpLqE2Mz9xo-yt_YWkbGY1s2t_WkLft5rU_wRBcKTtG7_7NKf8rddoQz61p0Lloo7cHnr1SVdIC9wXGkI4eX9lbEXxd8etHsIATsyg-GlY7mKDz5b5014Vqe5Hoq8FuHcc9Bn2WjFojdAwRbK4xJJFHDCWeuKj-thJDcDps0P7Lz6pjmwaZ_RvrtZbZRl2lHeV2pYZmCZ8HMiljlK_ZNJcJECSBPPg0BXtnh0jG6BFcGLE06aJq6xhGKhV6VmmqCUtjabfWWSNfccogXxVrrsLPOfkNMrwR55CcraFFsbFoS9MZJbfa_IcW3QKyjV7XszC8SYE9vvwJyINCAfxdl5u32SjunwZbk8Z6RZy2FR8DL7M_p2IC_lppohw9-Vzzw_c2Yin2sL8Ad7OxSKnBD0RxcVf6eqc5N0p_5YV3gEoAmkWHQaMOWAj5KLJ9xvox5FjSF3S7Z332haRJW4OjDIGrUiBUc9tCXVgUphQtRHucnVeIUK-Vd5GfeWOhih9URDpB88wPLQX0ONKjLY7VRWQL-ycjJTS7Ba3zSptmF2E0KIDsKcgCkN3PWazbLRSzwO_n-9qY46XejVcMiErVX5eHPwdFQbNeI5_25EpQcVuMpeHlbF_yErHLTmwep0apOfj4MZ9nLhtuCwOAuZ-akdtQ4GGbKSbOypyjk_EScyU2QcbaTIL5FPGTGhv3mw9r_Ilj-FcqaggY3TaWNuidhATEwIzSlLgLhi3Q0B-tISedFlwD5EWFIfftZJQPDcSrsuEexYfcRMuPelaI8akCm5vkozbea5ODSs1MlYX0QTgdQWFlYqBmMZQHVOSFsX_wBMlYsymis3omyoN8U9G05Iqh7HRaHtFZkmf4Y1_xfLlj0sI3fsWCJFaO2h1Eq3IMf4srfL5R-pY4cbHYiB6me9icYkm8pp4lr7QkpfuQiSt1p_qhSPa4sGXo8R03IfgTCJh506ktBcaijHCX8pnVqLFC1ls3Mb684CqLN_KnPbghNbyJYYdBbsSk4BQrbM92ptv0SAXxWzjO1OKaTEZaLwbI9Y8JXycULItsBbmZTOQ51-xbW8QSyuHZk5QKp8Wc48Nz7AREj16JZTgGKrO52WevKnOzNSKU6k8Gou5ucWOtReejP1XL57rO7mUTA0z2OdsHUSL__K68dpnCuUzKQIDWZS9vVRpsu--FPTutySRr6jDuGabbAS-rUuwz0I_WXvBCMK2pNSkrAAWNrL6HcEGBPxwEEmMPHOdqkKoO3ssHSvNsijJklTZeB0tBZMU52o4kl_nomSXl3paRi18kE1a4QdZQBIt5eImkP-0gwAKaOjMHkjNO4oRfL6jo2n5ETRS7-HOv7cc-isw0NJWMJ-H3-dfxKB8SKdHJbtImerrqsHGlDLrxz9AOnvFH35T-PNlGTalc4wso2WFJnzVfqY7ExyDmfrvmWi_Ffstu7ZUx-kA--u4ezkJlPpmRzKWg4yAViWLGO1ogWDxXIf-GacXr-8eQhuHYdns5SytbGo3IrJ6atv0WHdDIB_nHGamh1KWzxAoHMz4BC4ssqV_kaUvVk8yCbHULiXdUtU0aUnLZwG-h_TE7Vg_RhlQ2MeprlCajwMOAzdtdbfz4dxsWXVJWmcmwkojr5pZue63F7xgVRlrOXwYo57si0WsbCXl-s7saN2vesrR5An_33dYD3XOnlpDoUa4Su-l9gMxtdz_BFy52hh_hF7yQaoEPwOtSsJUH33Mcio5P6eXNjet8k24fREmLnexxIdEduO03P_zSAx6Br16fkYAwCeVSwR5PjTsoZBB4hb4v6-tJRbtLu7L2P0PGrXdpWTQgdy16Jv-Mvq3Id3MMeix84f3BP051Y6C1PksPmH5qX6gYvOv9k9AO-x0Mvv1KBhZVKL0sHe8oJONn-QH5vwQMciQygoFZ15RhSTF2h2uBu9KsqlzHz6qNQVroK6Mhlh9Kw7aYFkDXPrWYZ0lgU1nqclkm2V0MBV9NkizhjmzZ46OObrHp-ievVkg0wLQkMNaenW76T8AQt8oMZUczG9cmeHt1MHVGUSSTJEsWfUnEacYgdGwhIpjpVhg3mfNTANW5k60PMR9sXxbhj2x8km-jzhfg2Fp7IZrH4XE5PPsglwEr5vXLr_eAhTEEXW88ghIcQ1A6ehyQPwLjFbR7Ru-4Qcw0FdqBk4jZBXZNdIDhh0okL7q4rMhKPMUHccfH-yWO0eFh_z4hFQKV1x2d0W6DkiixnngLdeP0V3tTQZA2CnKWLfqB-wGdmwr9zqtoDdJ11M6msy15AYSPcdqhCYM9PQvWnF1pU24jJNqoVsGS1QXsml4AQbpZpIa9zSesvgYiYeYbtuvGBaXJAEVCe7RGUWAh-Bp1sHnuERCGOLZq2VgAhx-J4fnOA_4KHNx16xO1GegZv64O0TdT4_Nvb1ID6JpPlRoRM3_uda5QMlSFr1cO1DKa5bDN49lH6HYf_nRA2g0vH8qnuC1-9dk67PZ_kvXTcUbnHJXoVQjvJ9kg1lo73DsHnUKcavtkSPfCVg4mL_SQM-IZteLcF4jBgU7U8kLBVV7QkI05FnrQPKsDjznLxkCgeFMeA5Lag6UyVn1JW6PxJM8Rx3Il8_W5j_4-XPai2w4qQfdEmNOf_chYPUD-HO46MVIHCA23t2FoN22dBhSxWnYoyxCixPRRdVmazSHi8Ds0d8lwX01uU0Q1HRy26xz_LoDyKfWXfBDsyd0Sx0ryI6pjcDgT-L1FpSfBsgdUDvpHr3Eq0s-H17pgSQ_y1-L66_9NEc-SGczxEx6KMw0fHzYhJOFJLez30bcUcTGZDzgDxunbCDc4wMwzZ4lq1XUnKQyVQ_AH-5HHcGnkdHXu6jVnQ9kUhmcMHMGd1ZdhBw1hDamrCEBgkhJu3wVJS920UyUayVodCWZ3_zPR5ou3o3Z_jsUhN8gir9anRw92GAfTmWQyySkvclpZc3uM10K5nWNgfnGyvSyimb_mGphe4YOgR6aTx0pPUcJjzmHq7y6XC_2kTfKJjKm0raWWrklq_LV03vui312U4fcQzrvulTekZ8asxY0S_7BW2-71VQ_0YDF9Al27LzUPIqjq9wAdyjQlzXXarzsiR-LH-A_uZSY4z0Ej9yrE9MhucImOoWfx_HeZgMGG_OlxBihPoLmhb3hkju2k5ovdOEqw_gzhzZuC39KxWClV1netZROeQRxXdgBFFsH22EePsUH1UFBMfG1bj4TAS0kIvM878Ri28SeiIJNR4uQwJZKskWDAhiDWxvAccHiEUPnx-p6YATXzcaMCfwBm1vuWlMfaNzXpNyuqSmTaXLFigtrz8eVo9x9J5YoBIESNe7oxfiT3yhfp7etT-ZBUwMIRf7vt2pPkLoyT1mXM95ynOFqJ5YKW2A9hfzcjzbm9Z1k08CH3Jzsd5W1mjUMLreDVLju9Nty9SleppugQq9STB9WtGDNZSh1x1-vH6O7cgHezPz1BwdeK9S6SYbzIYs0hqYiVpEakz6Zbg5CuAADmfnh_233gE-gTtaeDQOaqb7o9X1xCoxU59KvjvhILqhht9lN2xR94xYBI4taVnK8IEdGWdnYvem7IaBl99hthsEgFPezcCBZbuVfmaKZgKIIR_OVaWPnPR6jwiZYFjNYBO7Ga36QX1wTGRdqYFx-ayS-RJOmJGv9ZJ8pipQsviL_LhkJca5b1z38DeEjK5H6I_f5QLvHC0dUMjx1xpEh7_mrVRorlVXOLbQ8k6LvIZH2aqSORYyhM9zl0b34sRu45WCF70myXHx4XkGZGJGmPEmxAvoAYzICGkNqkYwRwAb0iRZdSXqmjQw8MPYHV-4k3p8nkk8SY4dXasd84Wr4BCJavGPxAAGCCc72Rt2z2AZZFeTub6tdjKCMhXeP1H1diEgQySOxq85xZIOh_H-N262lU24-iaDNellhJUo4JmeT99WIeVHHVI8if88VUxXwQL_c_D8Lo-wb0vZ8E-4XQg0ROMPlx4v7AqSOpMyzy2xe52ErtO4lLnipWOV1XIvKHqckPbMPbJOIdeGH8taqXWuCPvCDFg19ZhkB2ix3062nwT3Rm4-sNYWHlqNGc5AOKeLjLyPtB20-w0p-djJO8QfWBQ18RxAmBkIcDfzMA6e6AG__wNWdDCm2hgLglUddRpR0KNXULYPDRkzH6GXSijL_eND1gx47zL04GC8kHrA9gudCxGYfjN0hlSP5PB5MhWGCCYXSvR9tIlMIOOh5rLK4k2T4xwh1PPgdEumkaWe85r3ZWTRBslf5LikTdQpMYZ6ZVPD5qzVxokSTddiPv9XCcEA-zIZKA8nc-jWdoo1HzOU7yz4tWjSTV7p1ViYzXuOa1PBmUP2xvWWqECf9aA7W62x_2nhSZsRaM1roEeNtsCVs42alNTMU8pqvsIYdOzb4YsoUWI6wppdwYd4HppvdhOBtDomPnvRfVYRK2nXNwsAdkLAxR666pruGS-y_taVarCo3RGfxXlxL5YQn8sa5mfVW4zl-58Uo959v_P428wl6gvkjqoNk8yYErUq32cLVoLHSxWUTHpZWhg1hBSDCP4Rcu2v9Ey_7ELE7QPChmnz76eQpGOtb6YUwiO4BGUD11Mtu4aDED25IGs_b5Oo2AxSympMDpYM10nHp9xhrYbgWy8tuGt6PiKXobHTIj0F4b_j-lBd16jqCl88q0jwPFEk0uoyGP2vQ2LNKmT6lpcdMLvU8ZeDvdHP4VDPUrmfSVx9kyJJyZ0ABC4vYh53GcWYKrNaoMrRtvb3zNgGxS1VOyo4Gyan8Z9wP7nh1sAgvyiGeM6VQSD31ebAOeC4sgEtZWuwpr5v6Rt_ZhLc_MWiP6XXZ-5LIEyAS7Rdz3B21K_tcnHa98AjSPQbFDME7kQ_s-em73U-SUbcL0HoH7yxPJmjGvW0lYCwA8hQL26tos_2h3jLNFp7xTEf-2pyqrZosEB8nX-sXOAs-zDiDz0mqZiNdztfHai8785vaK8iwvr6aRClFY7ZL-WpzjJzspafGHY5BNP7HQ1N0IRTffINkKpGvHiewGA3furF4Uqd_mubkFr5oa4QDhPoC6lnVp2qy7Hja78VoieoKIKNvULr2625xWnPrXUw6RoVd3JQ1aOnzqUoKgIM9kWGr6CNFgN6F5JBNZX8WVpIAneMXC7dhSHG2bfCL0QoJ0lcc_QGSb9aPx7kAwSDt48yw6V1UAwUtLD9mVezjdHCPxgSOSLlturJoa3yiOkNVTRpFoffSqMFcFuw4uh-Y37bPopY9K3b1Bpl8xYt8_Ah3LESaTar8C2GQCmSeCY-WHHiGM8NaghXfSGToW4e0w33atI7gS1sRixKTyhZqd5a7IUwy-FEsMMUoGYBwz2rbcxBNMwa1emywllSwpK6cp30AzusWZUX1bHk2HEpIBQPddljsVpws-xcheVuRNTfu1KoejpE3GEUJtUarNX-7tvrlPPrUtCE5IJ-0zzEdmDNFiXkD8Sfpc20Dk2YgEwU7T6O5jrr_hu_W1wvchCkz2M5DRB4ULuqvaQjU03cKxkwrUclfUBBdKghp6CFAzUpOEyrb6VupAfit02VhGoasdY6YVJI5ck0e8Fv-4oXukk5mCS5YXOQj10NZ-6wSlLPEO50v0QJQkCqnd6PeoXfN_8fa6h0gV_9vj4KuGOZW6H2Bcg7jrebEXAjyspHjrstJmZ_RFFCtdrb2UUvZVlwdrqRVePfJf1zzUUdwZe3v9OD4SQzMABlXQdkoO14FJkubrnb_o9z8BXtiymauM-97bFVynW2KE5aTKOYbe1iAYzf39aRCaKINpYkafCF0pCjEgi706tI9XQPDeh9dzcsWGI6YM0ST20R-CyRHcGk4HcyFj-NfV7B6NT2VMf3LCMoe6q_bQyH2XXE3kQjvWSTYiNT3yLCqCW4eJCVEBLwbOuLLupPdfidY4w1qtxrmAlFLd8uIktz2UBOKrNFdNg-IwvMvxysJBjoRiroyiN-pJWgxEhSY-TEIE4wAALDe5bztzW6I5IBoNYx2L6fXAjwxnEtOx3Qqu0veTEkkHfFHW-d-jBZ1pCSvNNBiRVpKPZiIqZasG-lmnDrnBwGrrIi4iuhj7q0M-ygn9CDvuIpDgq8m5oqFYjVBr4W0KPi9TXOqkD-AVs8vlZJrzgKxixNCMintaYcUCE4h-TkfMpYtNLKpjvMeOY8LvTuTbDtmZnJ8pGitIVSD_4Sh5Lcw4yMfkQqNEZfXPVHJhIJk1wp5OnYkg51NGiQCF6w7EKUAZKKWb6xLtu1kNrMxP59Nf84nHwFuO4oLYeKGiGrSi3Ok0qnYMSNhjoS13ZViwHxNKPX4A6qa_N9s5xGKS9dCUItUVs2to4-_B2cN2KKaKSqDr6mMxcGmiv1EZ_6QwbQtPB6XSkReNr2avHXncQahlAcmX3FfNry-TbqmPjXfyUZhs4_aBS5-TE17AejbClAJwv9VWF2KIw3nliucOnaRsRQUvP2pJ0-CgEIcNFOnbrN6cJp5SFDN2PT8S5zmP6e6AGgwsL9rkYx_IemMsk-Xd_JbnK0kA-YdoOHWLolYUImk7PztP273gnhxJXXw14K3I4qDJ1Xvw5-FzSFXkvJsfCgDnuC88gg93q0eyFs8WmwzfuIu3_MKBIXJjPFKIJDsSib_StxY3A3-e4y3JjjEWgUEjG9pUz4J3G7dMd5f1oICJMo90onJTkjQRbNNLl8XnDP12-rmwnMqedg3vUo9cQeYMxdv_TS-BZ1XsX2z9haA-AItzFzAkYwwZAp2F878VFZ1lYV7Skf_J9vEWrQag_B7enniHZKB0nke0yUPbNIPa2otXpdrYcpXVaKoJwOtHUgVohaJ_0EUi5qRlrkAYwqtdFKZKtBJ2lGRRQCRD-s7uaDwVEDG8bp_GBp8_yAikKTo8C8jgaI0eSzy2Md9Njpr5jYN9vX7ikSl8b2SZbB8JMGQ0zJb2xmDJ0EVAc9Eb6yCxLWhqwXVmqGz-qfb7g-PE6l6x99O_NUd_4_-E-0epB4Xxnao9Ks3U5vtyQ5lR32yvx9bYj8VYt-dKbPSIEFQH4aEauOu00VrzoMdCCvUIhQghdlISoaren6Uafpqz7yv4FUmiHtXKWIvNybgToMPWXSkIF_Zs4vqxeq6KfeGG_R38iqfUpMm-kNHHUtsUexDRl1ukxSEbnMhhuRXrYUhmhTqAOfmWn2g0Ht2xWHUo61no36GMw6Twk0tDxeGmdU3NB-F6fW3IjQhb7RaDWcWWMAS_sg26HJvUzeMtqxnnEiohcwotMRQuG1Gc8Ebq1C87KGCzYiGgXLafJxTEgSQJeKGnjBd8mri0ZgREYGrLjU53pV_1LiVpNyE57qSfEZHdAqSsA7l7efSDs3kFfBuGybfyb7J5PdfervpgnJjtQCuZC0pFlE7wYCYt4Qh3tsvilWxUpSOA4vpBsp7EStQ4oENliJG8kD4XSBs1FLqRX4jtUMHIQEyHimkvVYt-yvr1y6DGEKd0ewTa76dhAM9dh5Xga5oLD3HqJ-Y9_vb8kAHS_QSGGJlDl6Vb25pbC5ZmAkdMtSU5KMZ7Qv_d1mC_CyqpOOxnUdPeM2U61cmPy_woVRJhRo1x39bXWp2bQ5q0aR0_aNAnm_lvuqZtXksgel-nV6KIj5rAkYljO-1ybcc2q8dSE7KWVH4F5GdNrq3vs6IEi1G7QhsWmr9oxLMI6QAzmavJOkWJmTuklg1G9LrPUciq6iwvlX8mximjEmmAiDPtI6rbFmPb96OqXhjG8QpWTc46VeCACzrKIGSzDTGcee9Ljf17U-WUl2jbDeBVpiMkafglgmS5DM5bnVLirvFQ5hyK4lwd8ewte6wqeGbqEgnpDVxaH4KbBpsdutT_45F01fEJ08pVg7ETzUNk4hrDmu-1sD4MGu-_aaw4dkAdisg7dVLuGGet-JNml6T09UJiCuVlBCns_1SAh4vHjeRL-sIfMGLQxvjqA57XVL5DM7cNApi5g8eGdgILbeHSgD10xG6ZqxHZA_ffUDthVxgAJmnDADC72wPdfE1s7fDnQOcZ_kG05Ct-wqyGoGbbnPw4mylYv4aSodWjV1y9jeJC2lagcuIX9EcZA-SxHTSLmnwqGgeHxUi4M8QCW9--Q0yedL8dm0jDcUS6rW5hVveG59dvZcAfgkKIqVlMJvTQYik9Bd645c53moB0WuNOonLTOpANFFWTFBXXoRKAXkRx0ibyP1A-N54vbFVwKu8ueyDm-g8NKAIYRLSyVyub05RdG1MZd_uwCUY8XJOgA42a6GQFBacKwVdB16TDx_wnLm1VEI2dO3h_m4CygIpXLq1xUaPl4xNQ6JL4BXplFi5ehSdckDfT3Jg-1isxTeoVO6A8oNVjm0mJpj281z8sj1W3P8jA4lEXv2DAUTmZrkdHNeaXccUJpxl1V8he2-vnjcZjCOznXbD-0cWzbOyqmVZ5z8lGATbvkTh9mI0YY1K6MXFm-R0H1IieMgTMceBjlhUSC5tM4OgaELsm6hkR4EYmdmrmjEHRnPGIy0RLhq8t30GsfuQg4XhEjfYyathrVbKGMHUFGpGaLpqdvJg56iMoqpe8-9m3ts_baDmzMGvrNAYTGCpPa1EWiEKpjAhg7AuYIzJ9nYzIrFAvB4B03Sjfl_nGhthqVJOJNtJCVJUtXphxsxTzKsKX_szbVjBXfk6XZ090QS-w1GYMfS4Ni97Tpxr7doTrMOOWsOEhy3GqPBQX44iNcOHKkP20NBal59nOWOFWGGQJg4kQlCXyv-FA9JuQuVyX30hjgCx6yFJ69DUyMovWsSgsvfLPJT5f7vqfgACMQsRbYJoGshqYH3hIy9BhEYBO77t7bwM0_psX34uvK7xA5y5QxIHfd42sMEDyf77i2i2k1M4owJdXRu1LoWFkF6pk4XU0Uhoh47WXrlaOVOyoq-hVV4Qx7aO10VV0z8MF4Day64ldS37FyvZ-vANwNqEW4V_21r9nFIKX4DhTzJds5yw6_zPEE3TJSUKGFNGXbv6wooZaQLN8giyIWvSzRnSe1z2zJa6jIrcOTwE9voBJBbHHQOfRzifwb7JRFVJaBeXwaBYRCG7wrzz4P4eUYXtfj6H8DyeRVFL0yw6oFE8nT0z5Z4IqCs6AuRbNK6hc75ghFx2jZ3tiR_397SujXQ4poJnoxrKiB728gk_4M2ozlTjiYij3IaRQWJ0lHfBarnDepSArwNvbcBolFnAct7MS-zuW6qVuMe6rCfj7NvnVu97V5gK-uZQnF9D9oyNTVQChQstcVxZdE6Is5ue9PjrRB8dxqA4eJT7aFh1AmHqlhabN1JAvb2OY0-bP1bA7nxQCd-2IoGz7Oa4c6HVngFyVocaAUkLnsYVVTRvY-pn2edqqhGa3ZljBZ2uNzcURZLbF-tGQdUeL3AGZ1FDlza4ujF3QCXhm4HBBxM-JHr7fQtPhbakE9_NEtcGbQvY2sZXAWsSIjHgiKl4S37WDHUIEggJMli1XkYOuIoHZR4wV8aCBMpsitS2_Vet9LwwONvDlifsOW9LmMV8XwJw9kcBPkQZKByVvsYokay9KqHZswxHhyiquXljnfv0_3eO0lrpMNIgbvUxxYlWKFbkSK6blJMJzglivXbb0PWTjTZu5Ut5D1_MOM_SG4dOPNQQgbZmfMdiKSrmz7sSo5ks5-t8Nrbp7gLjE0WqZIiDJ8blsqvDaHr-uWH2ZY0NDGK7O0nbIpIhY9Owb8AjMXsKoh6w78Fb6qrh7xtmkWIVIbEgTfMU3hQPlCCvpQJinrIeleR5Q58vKvIlOqnY1s9eZT98u4KwItRvolgvByIqtocbiGIv1wg88kyBwK1VLn08_NMklE3PJ4pqji_Gk4DMNPw6EWKDzYCASuKvb-tzUlt84of3xbldfI6cOSu3Szyofrei8gGerKzXQxAwtZ2UJDWITysKeoM6UXDZY-oX9gQ-pngUASZaaAYoggJKfhpHVnZ2Dijl6gtv33WJfex9dRSNM5L8LrRv1wgm_x858nmHsUKitakvW9hIBL2MUSDi0XHNtIO4HRA5Uj3dJ7uzNrM3-CdnwDdr_S026wqW7T9_DJYlzQEEOrUhUq5oBBxbFUqELzgbAlGiTo_YUj-5tcgcc1tj5Ii3aXOVYF2WO4k9o7uubi5tOmNCYYEMPRtiiSYpka2kM7HLCXWf05vYxRgHG9hHsoHmZiTWYrUGoFsmriTv8_BJuU6zW8xdETjzxnIOuiAsNNUtdJ7nZf7IRjXRnY_H6UCJYut3PC5ZjpZIsrGONhhZZS4S-jYArEkds63ynzPQG46TJe8hbSNO7JCfGCHGlym1mmG-WMbKlEXxNOy0yDUrDnE9zw6I9xbGCc-JWS5YWN4x8E4kRbxCQYLusHsc5pM-FG7XRKepH8cLKK38wHDSHpcMthx-anq2cAgbd7z9bxg0C2yuoro5_QTwzZQEUpXVOyVN2Ze3LNIEuEa-Zmbjs5z-jN6LThO4rcr6sn1K-QU_caL0nJ6X7-wuiVu-RL6goQutj9dIJbOmOyQz5HbjNk1b4PgTSqWDq2N84WYij_qGGqpjPG71mj4F_CGjPRRkcM5ZSX8OquJFSZh9qhZqZQ1Z5yITctmEoPqeYwiaA65YbVIZHxgHlEILQMoCVnZi5i4N43JfnVmUxs34QVN4X-3MgcHydKmTE-BH9qYLph1bnuqvjuVaF6z4pjbkoKmRnV3mlJUiAvFktx0brI-4JDFDQQkXQC1riCUPvfa3e6iqra5GonLr26AJIdzEJbnnkMuxYvqtt43Zkx3wRvf6C1Wwb_VtEd29BfIWmrNOr4vdHJZgxqHjmJLT720JJnymaeBBDaxgn62swspANuT5hpZDCzKRZAeX9_8uY319l4qJeMMqXUSBcqFyjdFihB_aUa-8dbfQ0tMXfvghscURtSswDNNKgVApx0ZLQOujsbQU1Ycg1DabqKuFzMWG00mNXX8UnlXqFwda4Hm-ooyY05vUZWXB2DMokxKtlNojaMjCwX_M3LTU-jvXybtbPyVB06MZGOIpHw3MWuQjQ_YkDqzfhE5pzHvYMBJalKD6GV_T75_8qJjtOJd6hpm_bV_ADBOglJfHkwrLltm7RuKbig9l7sssVSh0P-rkk-JFiUVRs6CwVr-J0lwlYmlU7JkeASpeJFZ9G9WH8IbWpQfrhIdPiZ3RfNW684Dmj6HFEmhuoX2xz5DitrYVVefH3yt2pOOt8Bp76DhSA1owj6q8pxwfSd57MdNeSTjf4-sfJEhHOMXV-EYPXijAhuzqTqy414mvmH3Q432cpDIVEUyEwS7ZIbQD_1b52RO6mRY7oPEPe8B5VuXJdmTDm7XGFsZuksbxOHOs3rBXk7B85u_hBUIhuUvBsAOTCGKzZiwzcddYcptv51QOnpF8YHBYFIYdWaeAaMoc5RfIq1r5TTxhr_Ele545qmxtRX40e_mI4j7WnH8SzHbxF_2EOktJUeZrlvqnhcSj0NmGVfr3YR8BzIVKDvW3-j4FDOwWRlUu_o4Q5VVMg3t3gzjhiTHuFyc_kd2fmOHZGTkeC5-1HBgyVNMBEIk_-rPAD6nU25sPtb_aSdfwJkqY7H8-MKLp3Bjv13p8hAFGfogsegWRUjE18qpHXRTBKo7IU5BzErBlZPLdAfihukUISyu2yxnStK3rSMe6UjaEdBfzbUzhoxFevKQ-rtUv5H14HKtl7w7nAyxRyTtvU53Yd71TGzMYW715QmkIfXD6_zwgkXjf57AaBuXfiTPspynzAJjk9nyg5cJzeD1brkKuLGF1rpayPUQgdr3f8tVl6qzpojCq8AYTImocY_SZgRVEdGjrFWyt48Fpz5RsgclfDVX6TLoJ70vm4Wc6tr8PMP5XQxCyHPptcmArQ511ybg-Rt0Ijr_CPP49dA-TlmseFot5KY0btuAgm8z-7vJDleNUXEi_-EOVBB4ECqeaqygIcKg5_bI0paWUhvhyncxgYJQ7x_UEfJT93YDii52RBOjHnBKmyiLjxC87KJ6HC7TnTGy4FGyzLlVcL6wbblnJI7Z4Ihz8Gwe1DJtqea3-eHxkMJiU2RsRSwfPK_xtYX82RjqPfLOJ0lnFlllKcl0EZ1GYFmZy5dOG7eYGkCX55sU3AATkvHhoQm2gRDT1zsmnAwfB5CRooam-SjF_AGpR6xbdAv592yfjzOjuMTtSVqpnCdtbyfFdPVcM4lE57DOGAyRK8_JRxlx_MjKFPu6M1mQ5LKYeqqXa7nNYLfPiQTjFpYPamaL6JKRI1N5cb-yyjszTCaMR8WDsIcbZ55tsJLAJdOpygRChMKW0qxX9sCqqLwDoQYizu-TatFX3LKKgKeDBM2rS_-fTxvb5k9NejzgtpSC71aV5Z1Cwo0LpU6Y5ZuXtu-UlfXqL_RfM7GDOnDCG5W7WgTjshzlIsxFPu4x8hY_O1i836YGtCOBEdUJ6d6oL29BdjAFG788j05txJD2L-fIX-j6r3mfsyTKGvyTZ4wyWTdcr3JamqQM-gZu0svAR7JTckf2x0NX2KNKxGwITkCJNLcFoKS61TpKwyBKvHbdlc6U9025E7nzcrSH2Dg-yZp27AkBfoC7lJZJrt6cHoELrvfSKa9brSjxW6w3WpFQ6kjGU_jZMtN5Itk3vnG3SiRfUvicrzelDKNDLErJoGIgGR_4bP7GLTKYpVcX5RIAkDuBmGlYOvBZ4svXemIEzewrjjOxkfZf24CURxEUh-KL3Tn-pO7He5nqtbQvB1AppfZfx65hrTgYjmzy0bbXZbIvl_gwc8T0b41zA4qEZm25O2X3lltt8BjxwgxeUFz8EOmsSfuHbre_YNUqGgkghdu08byDo1JRWEHUVKTk5kbdQxCybJgfJgP_CTTGsFgLVT-sZQPsXktthUcFoftG6SDNmntly-UcaINySECc-PsMM-7f6sn8nt20lGYrTVGxygXH0ezqPD-B7yNVOhKCBCPvYdRGpkafTsUB0ytAEMhrRcxDfhH-udqgTbdTDmIEa0kwqJ0wfAjo4tNOvMFTBr91aqKWaeWjDS1SYBICL0ugTBjF3SANSqwke-3BnS4vpcR99rSz6yIjlYO0VzAk1ukqaFdvyWh5XAE2H_RrQCnEgYYRwr-52gZ8MPRNm2T_tVKIxSnTkGEfn--E4VQwYtitIDmFRp047px6a3QZ4SmWLHH7sc7-wJmvMIdQ_wENnYuqDMN7_3_msoZSQpbFn9fVQoKwPkbU1ZQmlyTxaiQISSSsRju_e1XithRhday1VnPFmZFTWkZ-VMLbG1F8Bm3Xt1TVumxynhWXA0wqbmJh2gC9jk7jhMgQineXOv8J-vBP9qiz-mfZxHc17gRx05_muQfjIAtpwWDzpvsxdPtA5TuoElpgIRPs9K_vN5gtJGdt-H-jFecHhRUBavv8l_TJdrFGwokaDv_zPZlqSjAD03DWZlwQBOyoNYiE6Gaik_oReYMyAJz0HGmjmNiq64dPnoJMiC846UMwG0MPVDoiPQ3aBXM7pDig2nJEduX9iGBGqL8kQPyMqF_WBJtOl9R6B51Tv0eAaP3KjNmEpeANWNWOx_-4dH6ag8yj207hdgzaO_ESBitSMAxxcA-iiDA02tdpMx5cWVKxNW_YLTNhQ111zXnUajBQZnNUZGs-S7YWjOellaZuI0kQhSm49yXOyPcL-fMxw7KQbz-gc5tLD_OE6Llk5e1avE6WV8VZYm7-4PiJKsopxshB8I-ZFvda60TKCXwFy2_SXAXA_JOQ3zBk7KpNKIaF28NpHz8D8jaczTDGdf2eu6GYQzeUs1EH9h1_JVH4DAy7pH5vfjaiN3MJK_s0SQcVcPnPz0KEVO9tdUCR1GMz6YnkkCYL8tTBYr7WlJHWxWTj0kYKaQbvw711xhtg8XL2kSa28puWj2qJlj5hzS_1NnYVGM_VuFxZuc_B6EOPrPYtHJhUjpATyJeeYlxGsPEm2TflyBksC0s2pLwyLvYU1hYWim-COiGMn7JLaN1MNLZcVOhrC-rTONDukPNVW8N-XvaTjSfEplzZkOmPPB6YJHJOfASLkbUsi_v-RKpG0TbFYFQfJQZSXZkEN0XsOT34DAa_QyD-OtHcoOij4RjQcV_D-jPgZa5CJ9k4ow2mVP3Y_Kex4yGu4JSptAGjne_ngZwnIxBUCbydXSyeoAh8vOrzuUBCe4MjxN0cKZN2CSexTfkiOTgDU36bbgmElO_syD1ybGTk0n2GC4EUveb_hzWZBXQzgHSSzLxAxuZogjG5CwMmt6nhOU_nra34_9N-EoDyzB1RuCiCNOaxuP4_bmGHgnuQjUiiZYh2GpWmHqvMdZpqWdVl_ZkDFicVzWqOcInvsiGijKX4wA2ZFXSH2c5iJwwegk1YkiTHC8-WlI41HRDMbGJrmaXzXPlvjqbcxgMn8lCMUA2RNmoJrQLmO2eEk-GCf3460Y15JzbUzXLqeiOsuhptI-VLg6Ri_2EW_SjMQSrS4kjlxwUEl8lW4iKgBLDvOu8iLMp8wnwDR4f2l0PRCopQePN-UVTmupjVoItacJLqsfaD0JtChMfDTZUslzjxGJnh9CfUn_tMYisaFWqx07f4-acRCpJ-98Zj5IKg29J6wv_lRcroM3b3G3puJg8cG9aPRo-Kla5VD6gtOHc4XY5nV6vjtr6TaOBT16KPUBvHkH7OWqTDO3bFGp2CSwsLToK0q3rz0DwcWRNRVvmmBvcR3Zu6-fdeUke5sob6Kb3WC1s1hUVCToCOLpXKNJdnLGsw958vQoKzuj85ueBPTpyKLm-akjX0CgukR10MtatGCzmb1EFVrt4sLp603jDNMoZE5mCWjnRQ4pund_BL_Sfy2bN_kpi38kJntVQTUgaz42XQYrgQAVFus1fF-z_YSpQy0e7QtCp8hldnkb58mTS60P8XZ08hnwQGsqAhf8QhpxVrWvlY1-0-Yagjto5QESiIe850ZSdv_hdMAnvm8QOPr7sFmuvL4eqJM_6rEDzZIcl90HXFRZTh0xWTVaU3-BirdlXqhI3TElKECnjowN25ab3DN0NU9JIo3hhkzxid9pcl_noCGm3pQLDqORSitMER0bJyqBwn8byyv-epcIeYqtw6-7cy83BFx_a2LPLum3geKa9uuz2qpUvbYJ5hcsQdyH6xgvux-0xuNNylLPY10M2AShLZIMtgmeqV5NKtxHkFhmX3bT54PAm6E6jsvCx8zcbKRaqSJHfwY7mYp51pT8NnvPennhiIkT012ybG-PhQkVUhZRPxoDpW96BOsOX3HDh__FwIcPJbGI2r-4lCgyuEshGGL5hsKDHJ40VjIBnn8FTIhAhTEPATesRa5YUHdw4OvCBXeIATD4IB3z0wNirH1vM4VovD-8FXZOdvkNUfka4v1nYwA0fYpkKH1ahyfBghjK5WK42O-fPHZ416qbT_0igtZGpbpPyjrpaP4jeCkh-XTj27bkxWev9CKApXl1NHcwFoJ71rYPYYgpbbv7w7_pynVEIV-f7EE-AGHXa4oaK-kHGI3emKNfpWd5YVlCMNmuT5Ed3FXyqhqCM0tl8p2fWyAmbdNoG3j5p5OLxwP1F4UZ8v5BPY2hWl39QKdewKN-02XXHk2sa8AbBoAgnsLE4StMrZYmXa1s0-kUgMYY_yI0CPUii0W4hne8RT08AHGm2O16Tp9rJB2nqF0yArG04fVzSOEdFT7DR3Ss443KzwJrV5NKzQ7u5A6kffGJdCaTaQXskpouNvXyzgC09U5RHkwTCMmbD0SreYdTMeGbup8vP22ieDwI6NNCgO-yfk3OhG8A2mhTo8HklitP1m8VzP0HlwG_dyQpdnTMpTccY3yqFXoa98HcabiF1LfezAE1rPLa-0kTAUkYmSE-ZCqG4oka81rnIFpc1wgHoVdU59PnxzHq6NeC9zfXnt366fXe24fM4YasOjsnt-9KGXOV988t3C2w3cNVm2jcPf5m2uX6OqFHul9E9IIHgUmluv2SmuBAnA0ZLH-r9LwIIMYg1hKQV_VrGCpyF5l8mcXEfGicIRKwxYox47HE7YGEHlOo-WgdfV8BhBpnnZAO2qCo-KlZqnq0oYnaLfBzav_d-IqH9G-ZSldVrUJMkctucgCYjyg16LLk2omdkBqMCpTgycr2bltVNsBpsujQHpkuvr-L5x4k5gMIVQo2hrPQ7CcNzewyBMlGcZMigqv5EmlZr02jsE0n3U2zHYkcem9Nr6iAHTvAO1FN1hsXscboSH9Ggp_fRVJqBSjZWJhQB-927v8TrQdJcLAejEFCg1nfl0S20woyO3hBseJuDWvkQiUV9fdT1m1mGB8x-2bjJoWW7l8cTkyzorPflwX_AT1Tb5d4a1OREIk_1YJYXImHMowM6B3iZRbFoGA0jjHYPofoyebRij8zskJ-APGBHLqqTp8W16AlQvwo8aGjINYPlDkl2yBhoUroNkbIjFKX4zDfh_T88pjxcSOCYrFkvm70b9hvPIzcR67ZFRQWhURfXh9qNbRv1Q5rD7i70oo_9DQCt9ARbS3kUFWct6NNpRf8qBTUrdmRFK0QKeSDgmT5lz3QgzPVwmk0-xabqzLHDNVjjqR1Xi6T8CQ_zlwxH-cd8DOcut3sWOUwfRlTS9TcmVKhRWGwnX6RN2zFJjhQtppH2LGlNNQYyEuExLFRVJLzNwqmXuOutjpJv1B_lCFoWhdBDY1EA94086RXHCpY0vPWjiBLAIJ_6h8LAZ3lftxLCzmeaxz7ozH3s5M5jwVAjId1Xn8w1IOFNCC7wU0TsPqVusu5_IYReFmrApcBFuCSLq3cHKOtO1hv4v6qpueHwsf47KG6uR__BvsEEW5cUxQqOvDCFOfGX0iq58u5QYohQ9n5Q2Lo0GPur8Q37q73cOhBLpKv2AL_and4BC33inFW9U9D5VxxOCipw5uLTIYsFeFG0jakm-izgM341Pic3hV2cituHw5p9HKlCRT8yzvqJ0VlYaq_ELv19ypG9NbfszHAPZkMtMD7Pj7IPh1cH_XAvl8q5zc8KVZletXRRlvL3SHVRcS_-x_MIdDiTu9l_zQ51zYXxwhmMTYuEeeiTIMyk32xZ890zgQI4AjdyjTADOEfOp8ucj2d5m18oCff3JFlz3NmNwzlfIl9-0nQcK-UN8OvEWetpT-Do0UrEXmwZKgaWAQcjWtOFqG5gbBBeQqRQH9DxkgmpU8ZH4kVIp5sMk1cJSbARAQ5izCACFZLhAxm-4gSJre3UnR3bll2aMJeb2J1dKvwRl2A3KUwPonI4cNwlIdG7Ilcey433rxkcSv_qeZaonRpr1Rvv5urmJnEgwSB17M2NZHSO7SAIxgJIaT2CyhJ43_NtNEUDNzPGts86lrEd2ihD2c2DfzijOjRqxadlCKCMy_t51tgJXSmQcYA5DoKwIALjbrYWlOKQEfl26-cxDYCCGxtaWuCfS8JLzLdAHdsTYzd5kCzELuxag2Zj5thnoKZFhV3HeaKSqlW7VF6L2j2dxIsOr4wHiiYdj3RfTzE92gadwKDfDeYWgOOe8aS1g1DyQ5_PuktpMZQxDGKoSgaLFMntkiVhTdTKgPq03TxXlkyhCzAKgiKGyERrXY5YhDsK40mCvpgGcWAfDCOz0WdL_JWdGTfmjiHCN6pSHmzBpgQ0-hB7AKdUFeBXOpVAIQ_JjhcZRS259r5STzvGqJsZgH4YQAKov5uMv6LR4I8qxdjkHuvRlIXizSMXmsPVPo4FeGRzur0hrIdQooj9-CK3PcSLUldbXlJRl13t06J65CCPS3oE3mh31KLeSNJiMdyXzk7NscLIcZpvTVZnafA6ichgrsxn6zDJR2W9Qg1Tww3ISe2hQ7iF4T1MSAvwEc4F7IdSqqRM2x90ylFIPmGAYrf8kRZlJKqM0taCRVggYzTit5faQU5a5_viKET-cTrQKKOu5X5gbl4R6AzXOldwPAknetIl1USsgF27ZKhpyqw0JRUQpP189dkJFD8PgzAG4KfvlXUks07zgg3KneufzbNuydnp8HwzVlCci-BAJFrpIr_CrNMV71-cr4BBLl18-0wHws6aSmwm6g_dA-P08DoqA7Kv93J3wQh2LCsOseXc0u9Wp7IraGzFTOtZEh8X4loHyvW8BjGPTVqb_9HOUij_veiWUyCo7YE6UViBwA3hNaTpCLwXfDkQ4xsB64U7WzHKWb3KwYuG4ddUZP3C4Z7pgbR9LpV9Ns7TkZBenniy0U94rTaPxOqFv3M-iEPP1ozGUnSXB1l6tt6SuoEhEqIurWTYihpalj4wdTMu4VSriBDOYmi6uqK4X3TRaWO27WDS03hnW5ng7P0do90FqTn0BSwApmFHSVLMIrJuo98Dvbl8_pfvW6zYhr-d3deJuDL3dsieum3_jpQ63Jzj8hfr-0W6vfnxnpWQudFeA-nu2jmGdrRnrATq3aHghKRN0xpQsfIMXkXNmpZu7Pb00f-DSeJzAm1gq91zPEucjhXOc0aCA1miMH2JyRCCEBl7moGJ2onqA8_Hmw2vOR8QFFLnPu00qZpNLq3C5VUPPajvBrUihQhV6SM6VUlzZULIhhe9nDpD-6Ku4NOQDunGX8adtO6L-d4K_R8Qg3htB8-utl6HOvhseuZmAC_wMhS8xOw6iDGKSOwpvm11RS38Q-F-NjF_6t-r6YSDovJxPCEsDWtXqlXJMQBTvJlMdWl7y6-PoWporeEeLnNJoMjTT4ARTLrwVcUHxOlUbtgfzMEvPoREB4hD1KWFvEt6nMGVhsjF9L2bBu1UnZQMLjSzUXidNT8ti7jmRiBrBT4hRTaA_rtqmdWx51AyvKbNmSoQrO_qMZ5q-TjhCElK0Vv8SG67D26vKLEobsClVB4EDTiAP8id7Lp7ni7l6DHBG8iAKKVMAHvvUGxBgF_diPsqZTjOnbc_WNgglFom1cg6cAGMBdYfYqOb2qhXDnkvoIMRVrQ1nf5eVw1kVulLzxRl72-ZaAiF5Fp0xj7KVjc8PcMgUocs3s0zdZxDLfLrEP2HJ-UE6svaxJx-1nTUmkV3iGfY3qE-Aca2rw7YQAroE8Yi-TMTJOEpbMdEnCxF6bGOYnUSFOqYTCPrPkXYrVtJDBUfqiAKZxG3k70F2hh1t0qwCnDj4DRav19cOe-1iK3YeXtUBd-kgfAIjc8Fn7zFezRhKPEmbOmikywa1UqHz-OCnQcA5T2s6mMbSgKyclrRkVOcO_NT_mfkD9jymI8ZYXr5qp8kppRPezn79KHTzGkO4_rK6LMMgUhwDphOXrZc1Rid0is8ixcoUvwK_9GEvn22AHI4_FG9nMU7smUx2Yjvc7UblnvQ-Uz6iYq6pRXCZsjw0oLpW-e5s8WEQWMDMIyeE9vv0Lwj0q0ENunKNTM1pkRtE5vjzVYjHZMoq_-nN0RflKpHjw8J04g3aO0ywLp5AE7QGI0EA4ATjq1uAVujSWLpeP0vS_BRNyWkkSM7maKLSZddxM6Dqhcceb7F8lAYvdpLDW8aYzqOJsULzkaLPVTqvh6KiFAKkIqFueMlSiN4vDgs1_7jOqHDVlQCdyNZXbfZRL7r4I9D-WbDFdjb1DojO2O2YNIQEGPJLrubNojqcsh9E_Lx5X_fgMeGTlKIka2mFtAkCHrRl-wL-WDKFAPbUqQU5nReLwp8Eq4nIh395VALOWTEhWdpzoeVd1fz-PBwGU6WYY9GobC00qeBYzKtv8uveYa9FX3ldDOR2tms41LRe3C3MqVrY7iJHbkQMMggLa-hNiN9_Go7U9shpXS0828Fvh99asAA85b3KXV2FmfuNZY3CzkEi77gNUcnuITH99GUaSlX30ZSTgm1DeARd_q0_xMST2S96-NvIyL7e6TTuURvNCKXFkz3EhgfjJaN4QPGLikHTJBtqnRI2k8Cdd8YcuAsFzH2htnTYBPDwmhXvIL3EraqSwXrW9XRf-U9vtPFnoh93maYXXKl3D-JPO6RXsXBU9dmPXmekD7928fZTjOgsxvj-0gadHAK29KOPnEB9-Eo4ZyYFJI1F7YYo_KFrt8ngrQcssV6nU__zAllw3pIeh3PexSWo76GXokgWoqSKJRoJCjFxzw9J0GDmHwSHOMQwYLlY3ZSQ9SXwpgEfwmawOQTb3RKbVze3PJBsbxDuw3-hbi6tIWn5oKxzOgdYPh7qFYcUVlPwsw5ZszRkyr4fPTJcxT_dnsLWdIIOCDHK8roPo3k9OQPo9obSZigJ5sOT0_Gv9-c4HpeMrG-T3yBDvzbqCp5QAVJYKvXgPZgxE01eEzbuYgLmuIrqEJbVKZtepCx2alRl2s3YSF_RSMDHBmp9H4XQ4s2O6sIIxVVHQVUIb8PSkA33CR1DNpcYe65-N_6CQY4iN0IAnORT1ZEu6Zb5JKLLLMnGmAEWgXNGnZI9EE_xYOBm44t22hji35ZlOE1Cu7uCca9Ta64q7lNL_Qi6C3DMfshsbuqcXwT5pJvI_iX-85_8tLIvjuGzi5kw5Yukw6fpkBf7WI_2Pyz_BvYIcM67_2JsvLZY7b1t4KCxFCiV5OuvwSuQJKltJXrwJ31q8YSqWKTnqcwtlaH3DNPLQs-9tCQyghRN_8FGqmaEWqtStxzXOUZN6xfXisIrSiadnmVjvdHAcDio8qqYE1LgIhV0uOmvFVglwfbMs0p4t-NGrwHOKIWRQs_MFVArt5Sbxe_yYq3lBX2q6I_htOi7JK7R7eS77cuzj9GPJzBPsIMpRiHe3fwzt0EzuhakKc52HrMYSVuHKF8uGkGRXJaplH1q1U21W5BoNKkW-IEIfzBsyU8mClw6WRBCCkPzc0GnexdMnDdZexqP94wLjK-vtrhLnnHIuUG7WzbvMPKftubP0cwcHaoQYczQVV3iHvI2ARa9CQd372gAEgpQpLeXzE6eAqD0sP1X-KbsMc2kf21ZcOqqiWw3a2Yygj_lRpOl8CWU6XLjr77PPBG8cN2v91pWWi6D4Q6vrdS4EriezVTbiy3tir4EaBBsqrCVshT5StfsuJiL-SIbGUlRTF8ZA5hOSNwqjiwFW-ZJvLO0ia9bKCfp5F7nbktMMm69w6B-OL_RNvK616Zk91vVgoplMcIplsQXKpJljhd13BhkViNtQqYvKDw2Hqq6U9Syc2sP4R0XIMI-Yh8VJtD4ybY8ts8RIxW7p2IQyBLeiu54eJQSGGYuDfyAPE86U_7B01uG7fJn-7gyjAqdEy6uP0Dy2AaLPYWY9kEgBMorrW-XopVmfKg2-DUHj7Pk8Ivff2h7h36RR9bFLMYW_mk0e_62rT8dZLw6P3iYZPUUozfs7KuAgohQyF4jNo-JoRfWG9HWxDvKusbuVgdISd-lQQX2lLTN7C7eC5TEpES0qM6zqVgGpNGSF5SzLe2DuvRtazo6OMi2QvJyQZoI02XBdv6qiwCvj_OYUw-0gm0S2GiaNrOPzXhhK_cqLVv6x_bXS8ZOYw6gwuoQgmDmk1gbQQRT35mXkbapzOWdCpnUNRWK8Tao1kV2622xvWn1NZ6T4PwqJ5jzUwSVKygFQeV8bG0gPcHXWEuX9HQlecEWY53YTvaLt4G0XRKdnJxzGVpschOCXStKNsosSPnaoFlgBW96CoJG5hZZvOssOWM4EYr9CD7zjGlIIN18WNXQ52UIj34rjGCCffGqQ_qlC7L4_AvGEuwDxAiYzbCMpRPG1x4x5YrGNBEkcGYuafGVY_Su5qmqInnKzOetfvjCf5-YohpFkwwFNhcn8kMS7KLC6yyMVqtnsL1qPajBFokT4UwvboQ3ErDfpgcEmbDERTqllRnltJmrZvijxJ4w6p_1g35D6-2DcNoB8iGlb1tePsURASUpCgshvyD3xkXmGsW-QHC8TDub3FIftkCMPT6M_Hccy6iLWlO4L9JLfFHUOB_1TkMbEp1XNh4U9CVUtKvw990wKMKB8uhBuxpT3DOTECTzwHrHmdNVexOHOKPrG5s-PpSLsv-_NVFv46qYGi9pNqH4dVloE_xGdUENshn0hf173mDYqekMg7sZs-S6iESaO1aBfmyXDtHwsBg4i2rCCquVN3TYeXfCgN4H_4nKyMzKd1CJmS6ctjx7ZAe53bNgs4GIL22XxMxYta4PXZXqTzrGjDyCUmtBodAq57BPRZqQh1bfVuUBIz8cN1dXWetIrQSqmeKkkVR5B-cSOx4-_Gsh6zFy9Af14FInOWtULXCUuAZpzECQ_XOqnlVK3xu4dhyZKYhUuRosR5V2EF7CwPGa3yPOmsWmybXZqDpb1_OgIp0fMb_xJVhcbO72h4AFlQ4HExn82Hg1Nr5t21KIZ0Dkd9hmkA2QjwK4WmRfyGsdCGq8qh8IyOFaV9ZKNZBADrKkyd2u_g30VcnD-J_Lw03IbnZfX0hT8RrL8C33BsvxaDlA8fcX-jK_ctnG9dqmFJcnVIQFKwW6llls0X8WtZJ65JzhGphncw4Htw3f-0htF7zjAr3ii7pO-xPTvAcn6UGVsIIIS6qnPz_mab21rqWco9qiK73cM87d990J00XSHM1eUm6tecSq-4ABA6Y7m0HVK4XBOltiMjE8iI0kbx7n6g08mA-eK2gS6ehnFnW6D0K5tmrCBQfpL3J_F9e3Os4j3-BA3e0hvBOb20HnZwP3oOFBiu8Ajc0f5J3hpvfitHQLNXBr7BXDJLoNyoJ2EjzuS5a6NxF63rrQobFCQBOknFdPiTA6MrpOt-uVEQoZ4sfxGO2zX0Juk6CN-EY_mug2sVJeugc9DsG7-0NKfB0Gm-8wZeEZYX4hdf0eou9E7F_5HgWT-1gctLNNQgMRHq-s9P-2zcxfJ04IwmZgrcEN9WiY1CqpZ7aCjgb6IBRR8gJdVUocIV3zpEizB7srv55gP2ceV07n7RAIZLXnmrKHndN_cp7d0wm1zLhq40h3eh-PfkONvwUw69Bm_eBWwW9Q87PmFSNP1WNJZ-1T8lfHTTIinU_0W01od_Yz-7IeiQCgoiPiMKZrHhAaHuUwIeVnmB0VolicgIQvnRnydyzkkGcc1GgWaQFbSAcb-PgcSVoaHgW7SX6jb2ZEElRyw7L1JMHJWx0zkyfgH_tfi3PVHTBaScvUsGD63KK5dGfli2B1d7Ycs_UUOOUwKAu5dsWYYntTBaWuyv4BRoJPjYxZY0uLxgfkhL7kxx3_CCickBri6oCj2jGpRalRDp0ubL7rleaNcakOJ8P1_O46qIG2SYW3vGG9Z8eCcKpuXhqai97AfPctCJ5s605A1LijsaG6_9gBsiIdezjPACycvlRg_EdxL7sYLGjiILbu2eOTCSmmHzxoaGYKRaBSRMxOW90ZHLHxcsH7g95PlKipw2x5gAqmjwug8SzLO5UUdMcQROzJakrudb7PR_EFlwX1MjZ4ahdWHQbQtly7F5sX7nYOyYrjsAzrWk9DWxrsylD2Phb5CZq7b9u3hGXBSS_h3D5DNIjzxYLg83vweGtIixkft4NWS1Ko8Cx60KUhqLWQb_feL_QlSsGbd0UIoPcrAhswn3pSKbr5JuN89IbMON-3vijQ-IoRu-Co8PYkHAc_K-0S_Hd0uplIKioji6HFHoIu9ygnrrhi7LaeDqZYCiWvNqX6YP0OqesSgKkrh_oFQ5emTuS_P_0aE1kOqzfyRct2AjJwUzcojPsHXG87XuPzIKfATtvQi2bhMW3E7IjjRwSsPT7-3g6sKKFfvUINA7GM4hhfbnCmgOiNeirn2GyZzAozEib9Cje6F-gAbYqkHYMwhSVAvukJx4LO5qtdVXxjbvFREEbsBn68TnzSr-soG1l6FkPjpJapJ0ie6anw81umZ-E7XJPBPF5ZFBC9HoZHY1Zbezx9Z58sNB7W3zS6ImnFAdn_86MyMn0EIyfCfvKjvA9UiikaPlWA_NEEjFZ1kcY1kwGsGLBdJuIXT0GgqeVyVpwtAEvF5GFeVlautluflq_Y_KzNxNI2p4kPAVmgODqLirZf3l6umqLkeWIUZ0FNyj-0znwGuUc-4k_5UnAUqiPPBNAB2X7ZdNxFS1j8jguNBQ3d-6eTkWos7A3nrKvPwnBgtThe6uZiqbLJr5qW_cePEoaCtCGoxak-ioxEV3wwQsRlAib94mPIlhGsWqPtyBirYN6_3Bayk7nWsPzBy2Jb8q7bT76PTMlEiqMtgxGapKD3xN5vajPPtvOkqU4NsJOFyeNlOm0W0971I9Yjktt2SDXTrhij6mgyjn4mPMvO5g_lYd-AiLyktJ--hfRe8qkIHLvLtl5oVG0_3FxPVx1UhnFyEJW4qi7eUnJ94_6F6WV0WXxiEejDYEsbGqFWx3Db8R1m2uV-wh2BzPpwQ1vsQxO341kW-nUcapd36e9rjxnXNDnxKRcIKbG38GYzY-jO7jbB4cUjhtfyvxWZY-O-wCGfXHXEhGqDWs9o-Lj9bVbcBAfa6xz3PP50T-gIiBVXq2UibmMgnYWsm5OwxyaObS6wAaXIQIrT26kFjTNh1b2TpdLuD1gT3nXCEtYkn_I52CpCv3-U8SDq_kRlhXVRU5YUSE_CtoWKNcwjzqQJeZo-IDKqQ21b0I8qou2lz3ZMygLdFcGb2nwqTMgcRf6Kf_upnAZpJwzks8yY_NEyYLN7FOLy0H8wmC8RE2Clwivof_HVWGBwwyXS2y_vDq0TNC5k80_AhioKzOng_569NpNPeYiKxTyFfiWJotQHpyIj8-nRVotJAB-st47Z5vmt7AsRZM5xARzzCMc2csf5FvtNA3h8GY3tZJ6PfWArM4wq-iZZL9sUOWUQWWQbImrAsRKlU1WIUmxzI9-oeVNRywsRmsH0Rj30TFL8z9ogPE0a4arqVUvGOA1vgTvIvH-cocZE5kXk5VE89zKNrqBiAsJHsMyWzsN643yE4PrBf_1eBlxcqU7FctGolHoJC1QLE74xhIX6qR7OjiRrtkoiPY3UGOime1iCG9_RBvxWWKJCQyyRpYrISHvLQTeU1rcm_9hXp7gwGa4hearTJmZqkw70ztyueXo-MjHS40nsloauwa8FSQa201s211Tv2WziBP_ZcrRCwXtNM_2_iQWyGzVbqHZrwz_eaZKR6P9YPgCGRcYJ-YZH8s3UXKec0Z52X4Y5Fz3oMWnIHywrxU7np4pt5jSgv5Tjr3tDnvjIjMG0PmIzt3u3iU4W2P9e6yP2kqdFbMLOtN1EoZdlMQkUISb5oJoVso0r77QQ55XBSulxkj6wenYmaJjMxNiSR8asSLBpJ2A_7Wicr3tmENxB-TLWa2rcp1gkkWtf7ND2sc5NrrkpvKTIwJZbkW0m5FUP7hu-xpoals7XtMkyK8rtBoDFVc4WKNKF34YnxQJrAwYA4O1eULsELAPiy4SAUuN-4JoSQpWEavR4Ux7Ds2YJheESG3_3VvLDEO-K5651FImEX5pu2ykSryqSYN30AWn6tBWp5CCHeja68zreVVdpSWoqk_EQPpaViR-wTeJR451zj0TU1QAWW1p9rzQ-6yud-wJLPqAzqV_zpNif-hFVPfVqa-GUShFNXQ8CmpUyBNmdwZu1-_bNar937N110GCDzIxyrfSALBDZdxDqPF_IRQ6KkBGRDqprOmxZYHNJ1UWaRZj5ZEdMCW9agDJfvnvI-AIsLjLJtXdJEJvaZHHaLtcyH8Zd2aMSMHoKyw9fGR7rAaB0tXf-69UKDm_uOW0hToxtjj155gknTInnXbNXqPJTYJsxWp6lypg7UnYfg0rJ-1iXLqTwBnmjItsdM0NJXUaOu1OnDMLZOYndHyXQvd-6TmYpRMtYzD_PuO3ZhMfKyTtqk3IQVrqnLjIRIsP1CUe6k3NB0ZK7gPpc3EmwGYW0As1hWWm2Rg05lOSuYMYtfvlc_KIroiVdySiZmkhZJ0hUgnhr2n94vU4ZdNM58wgT-u8JHDAhGSM7QDnB553kG0_XDjrxD7z3s0xe4RaJfk7Zk1rZNSGYIW2Pxvf94wez8jGaSdIL39NgckeZAwEh1xksqo8W1c8v78izL5IHoMCUFIS-XWKJv2uVSRkhwLtrdj7wsj_TwKai3AckoxKrZ8r0Z9NsKkoRK7hxgBeWHFsKcmeyesAY0O8WdUia3qJ0FLRtZ-v9MXdZOR-BlGDicPV17D-4J9wExDM-DXMEw260GMmEcH6qxV6J8GcKP3huaGZKTMGkF6UNYgaPI90JcbF2u769AY4eg8geH9taHS0v8AKJECEX3Ukk9NHoGn7JGhp1VPWdkUO8Z3c2Dr-BZFuW6uTRTMgFJtYxTtd5_6Ei5Vhl_eGVj_nKphyl1brRozToChDHeTAUs-K1q1GAAUSXrsZQgRkrSy3XA-5SbqemXnt-9BCydElIn-IzeoWXkVxc8_3x4BTyMZkD8NY1iIN01RTfXiEBiYHlJnAoBlWI2WgzkewsKzg_aEG864iu8OptL-zSsJJXbRt-5jMknM4UJOGEoimvV1T-HqTpuMrwAKwqY4pxKx4f-jcRudDrVAJS4GqgDNhjA11faiBvTjp7Z985gJZ6I4XxHFE9pp0WaWty4KIDA3ohmJd8EIr8PYDsaRAfIUU0koK89qJMWZp_NI3ywC0mGIHQZY8FgWL9mqbPy0FnGr_lIXos8qQpjlTiIkigTYfFGp8CEKntUW0B0V7_BbVQdFnaLrDSQPOaO6InffTZ6mkGUCyH00WXIAJdwh4fvb4mg5kEMLrMTCscf8DsB5fDVMXVMr6Rulpew-VYpOiMPVDU5qlwiM4I2UYUNvvekjenVTdJzQwF5EEgaErJKU6jyu345wajuO9JnkKd46Y8i2Da9xqv5VPjRpfPX3IibtXZOO2JTjO-a6s9t-eg9BC-_aDCPNHEAukHjI9_6cepGoy-JGDoXA1n41UjR9DPY4997IzXou5CeVMclsWqEWWW8k9eqLW96fiTFVy9aQGi-aevxMZjhOl6JdR6LfZqUFS53e7nm-TSzXgDFPqv1dLHV1LDjKK-KKcgVG6YjA6c2-EGT-ISZHltE1zAlXdxeJkU8pcoObpaRFu9IjX3gJGbJgtwJEOqLklfrlCH-NjmhsDqri8ulXvD11NvGaiYC8u26X1SLDXEgbX808ZTJuHO_9SMth8wBoiXDyvfnypSQeno14nISlCQQOx3zrBxo03MlduaCQT5HD1BtHjqCnRfq38T4jMTvgcuZrZCw9YzoEGA1UxUEI6W2JHL9DftJHBG1-7e8C-Etd7vp2xSK75ykZ5bv3cPUyQJzPhl9JSMA5P3kyo7ebpbFqFeWKy2aSzaVBlU-kAlOoRPkeQhmw1wv5HCK34FfWh5sFqX_mnHTEzQka6i0RYtLYrYh9yO3BzPTI_IXlZD91DipM7Qx5hdFrXHDEzF_1EqkbDsJNimdkI0j4oCuuZVqGtUheVcefc1wTdGPbUdyoJCpXa3diZB3tMsl5rK3EZBM5L9ylZQPZORL_3qPvzNUYrYEylRjDyqwqltva-2tuuT2NIVVbEuMUM_spzJseZMfGuFE-FYNeC9oEyijG-Mt-2RtCwk6Ouf4Et4tx3-c__4O9YnHG_cwC06LUvjlZv7fxhTp5vQ2VzE9BsHG7a2nb32sorXfXIiDOfp9FZasz-_nJntHBLA_jIU-rVJRHklmU2BYxBTwVzcINpa3oR7B6X8w_pUQ_QeY9wgb-n9sTECb5Gqzp2VzRhlkl_OH0sv1f0cgFyE8JumDgzrL5R11sVjumnzMDqaSrn-Pql6BYWoLmKs11Sfgguh2ctO4Da8lwvZEIcgXo4L284AqRWflUBNeV8VYE2Y7ScYqIFj0lHV_M0QkgpxJONr2IRfiJkDFoFWbGcwysjddzn3xFd8eq89A5a6n154DHKd50VY-4bk3tbPp9QiqWfOZNLSJ4SqV6j_iL9A2gT8plXIc_d4iOuKF0uZUmJAvy64RVFoyAe-ZlGEhlADpwGKkdsTcybqaWfgEmo7KICJ3yc4L5anjmsmdtbvzQqzoqJubcyK-Vcl4oKdWB4d0z_jYmfK-doKipHUGMYiOlJqCcJfuScDg412Klhmt2OOdWfDDPcoEFPepisDHVF23rfdy8ELEDpEON8atapQr0IV3ic0xTtgLKxAPePwqwbDyYIfvt1HZsgr8ZTXjzLY238MK4YW8DrHy8zDRSU32P-U_lTtwBvI0cui1C2NRMaOG6BaEMc4HdDO-vE-HoOWQU8IIDsg1t3LrYZPJql3n8_S3aGZYVHDaCYQwUys9vK5EPBynp9xkZIpdpB-1wgfVcFRVuzE0i443o7zi5sBnnrYX_DQek427XkqBq2J0fIj6N5a2X9KbI6MOngxWmvElBEZvHsjdg1-_dH94VRJBEWPJdK8Q102KmhRv7z7vkaaySyqlZqcXDVfcoSMKeKmaGOyfTN6U-n_cSTz1FPbzT5JE3vNfeg8ek6udppKL6y3cofuZII3UM5-yNbHP-9rG_Qd_sGLzRRJgbNw_3I_SpHY4cNeetVaVTL5v-PQPY4UAh-G1kVweWwca5IQvytGeJ_iXYV7stDPUBEGVbQprYqID2pLI-eiQyZ63j9MK7UFItEpNGW8B2IRNLj3699fgMnY8YLovyHw7K2c2wHPE82MYgOOMi1HyGFMQxjES8jnpQWSxD9WIoYOC4iUkqUxZzBHXpbyNowWDpVfrMzXLHoPM3GU23HZO3deOOd-rd7UHw012ZYjRK5tKeAIVMrbx4rK8yc8ziLQXZirzo8DFiVAe9EWj7qmRMh9Xix2eiu3g3rBKsXYzNeavpp9w34Ag7rJEL1Nlc-MZTc-ciaxL7TtkzPtSyLPnmRiPSHPXtmkYvxHZ0BfD5Y0ihkhS1mwivXVi4XtyPFPlI6DoQt78z4mSx6H9u9mfWsQx_g_0JIVMqSwGM0NWM3h_MKnV4hLIEs6aH0mAH8RaJ0TVPVxJvQ1alWSiyJa77SpUXmrDB69f_WbEvH9R3EMNV-7C-ckYOxrOVG5miNcchqVWLF_Z9cuXEcpnwfajsa4lqpc8O1OokPJkpN-kLalMAcKhX1uDtYlJsp1TgTeOwUOeqkVIbPTJBJOfvcpYPLGaTLgguF8Zu9sDoIabapC0UeRZEt05PM9rLxT_2Wm3eP-j43S94aeP4yySJjmCsbtIZFZLNBl-oT4s2U-K0BjUK2KMfH5cPOOQfEqpV2xEv27tkL5tYQcTB_N_o1xU0OXxzeNiST5vtBu2154y4xQLOMDbQBhuNzPYDm36mVcFLDW4B_2PssC5thvl5Uq00ltMeihnoKGZIP1udrSaB7MH9tKkcuAb3NV_-MxUZCEmF2RETDKEHM_MpydFZL9Gsb-8KL4QjBTE19GXMmnxqwdsgBgVCnn3TiU4LB5uJtHuFOfrkTqmq3UD3lxkMWRz4UypJc_5a-BO5c-zPA-qltO3D2xpJNa6RCDdIposDLZzpi9AYaegBpyvXVXBiNFNenJlqfBFbIg1Rb-56e8Q-75pUW9nwUqTF8Of3i9oHfw-cA3k-NvbO0Gk8sFAkOUy186EjtBrz_KqeUQQFUuCbpDyHrNHt43Wj23_Ed7Ks-VDquY0Q1cqXSIJrmCtO21Ym8oSnf0rdR1sdBoZ4k-pq6lh_y1hI4dGXrSmWyec7ZJgF_d-OnNxYWDY9AxmJkB0cj9AwMJCzKZKZwBGcCOHiXf9hURzT707L5sbnC4p7ceuwqbPDZj9JFynqeAcEQlYyIcSE7OoB9vccz4tYPB1x0VHOvyqODlAhOKKRNUg1Jx_enLS-Pzl90niQ11rxJFDK7Crxw94Mz5pkXMLngLVWEUM9YIvM-3T5016nvsEHrga0GzxDb7Pbvo6pVdBLmtHbI8U8G5oo1sru_05bm2cXW5_-ddsJedwZmBVi_xtxdzPJ6MYKrfRtpU681q7DI9ZdiMHjt-LO-YxeCExM53UMHdqt4uT0yZ9MhxPErSPCsQvbehyJDaryqglnR5q0aMKtf7V-nC16U8I6hFz2GJiP9Jjq39zZkJKUalLTetEI2zQRjLnxwdl2Q36uEOIIdp_coAHXo8Hk_SIq_3wpBG8P18KR7Pk5Vo385peXmHIbghFvBOt-MV31vccqC4juSs2v05JgXt-MRONtWs6tYSDNekecOCkc10xEq-NRliZdGSo6eMgucBItd2dKTXtq5EUJ_F1oJJaUVrFPUR1W3UeX8ZGls3KU41xYmlCiT_FoN2GMesRIkeVbijdDlxNAYHYSebwTliN9I76rD2ODzo-2c6NKEnfgYH8Or2N9OguHnGhHlwMwbnaG3mFY1hrged99uNbwORIeCqsc4RDBX9WGGYrI5p3clEvPLEUgIJh__oaGGO0D2_y0iTWrc4VHBePJ2O7WKxt7LtupGXbOMtU0cZdyzHyohZQdLrMDF0_249N2qlglZbeeIBfnaM-s0ci6NlnUXDxJnk2RGLlNm1a0wnAb76ew3U3JnJ73QZU8PGbNZQWw6OdrF_xRQcZ2SK93BnmoZFZTG_DJ-W154dG2WUfJGXthYU0hTWVcZfdUvnCpVbH1pLDQEYrsITzHZQ9uPhEvSa57hptTlDZiLj0uSa5Y5aoe7hYrCtu6N5JCLngLnAN8yo0qJ8cat7nh_OnHLQT-tE5cUvRrw_TCIN2J9eDLguGficZGEGfeyaswEEH_2ijxdz00rXsYBNDn464PgG9YpIvaMJ7vtxNXaB6Jl2xBAR5pFWj9A-mO3VDRojjalaOJ-G7d-HoQgNs7xTTWCR6tC6h3JmZT-XHIa2GnRfKP_dYG0L3iLb6FKssxOk0Q_EGdsgF-gtk1jovWXfWPtbd3KOMGipcaK0btzqZkaI9zJXapKzavqBD3BfbkSJjSsgfElCV54ojvyMVJ8AMmfG1FYATmU0wPYkmu9rccVMCTDqKQM4W_nVL8Pl5UlfLU1k3VuKnzB2JbL6Rtg1Z5Ld0T_BfNn8n68qPqex75W_KZMU5m8gmn2k8AVTKUp2Y5ZlQxxkckNGwaIhMNTIyNGsmfNTSXEODjBTUGF_GeUZtuuZ_xyQwE6D6pi9en9r_vI8Y-L8SRCs3prd81FpE3ks8ThqwyLEnOKhgVGbExw3GajtDHNj_emxtwNMSyoPy89FSvB-6hXph181bKFlRROwi-gjhCV1NqD_kBkHia23d18mM5e2olC7nHfIePFVQH0yIOve7ErFSOeY_Pz4ZZ98iowIJQrRisq8lax1xani2RRHT4BqZ6RvVRWnMVc9X4xPfzHDguNIYwa776t_vXhbwZj_-71MjJOnEqM7FEB85JQo9MrR2d-bNedqw1G5jwbJs6r84tQzyaO7maw3eNzxjQJU6NNYGLrIFz3yysz3c0lFNhhgTylbEoupxwV7eIPfDQ9KuUP76KsES0tmqTSodPKp_H39aExkMn4viDHQP3V5w9jSJKr9ZbrnKz4HXm1DBrJfcPuc1eG46epUH0lPTnWadD0Ev1ihmBsmPEpDjCozUHDfH8uWH-FE_VkXXn5sYXnWAiaKRVaU10dNDcPoaw6RItCRInMRyfWwTJWycPqwBfg6VKFrd7-9O_PFidz-ppXiB95B_aSeq0tj2VvrK2-n2D7B9rU0N0C1MyhiOovE2LhwbLpC0M3sK-lW5HOblyFPKNzfkD1GDKvzeBdVp24k0NJ8td8pVHicC3lUOx482Mj2IOYI71NtVf7QhIFbGnaMoFp95B8Q3La0XT-d26ToaaTO2u6h0PnmNj2R0qlyVzcHaMjBkPZH1L_Kq99Nd3H2RLdyPDtkv_eW5UywIjo7miriZyAbGaurkTSZ7d041fsAoYlZwwTlTCKnsaA9DlG8B_oKvW0R6tjrKNDOmSRMNiuUNM5PFPrGewMpf4mQKCZqI26sVtcDMwHQtNbhEEYAxIhgguPpi2XavJBnNurNZk8aTCejb1gOfcIhCvQXG3WnG0NJlMZTEE2AtlbR4U2t0wAm3ZZFx0KmWPaGxqL-2RHmVuElG_BYkaLQdRuk71gIUBXiiFb3TCri8dG4hqiy-4az4dkzAKOwgMp1Qq53uKgG7twlqqC9CYNkWogfGCIKeYqOrQ4Es5LOUNL6VD3Gr580Ylis0cbA-2dhTQ7nYn5fayiz10DNW3-xzwAKofVfVEf7ZZMtvdn7owx05SHgGAn6pxMRkCUSuIkVmFWJDDGqB3xfcDoDNFJaQJGLzvcX0O_1ReqBuK3t11gM5P4Dy-59Kcj3CIz6HiWTVf0SUWNdOXwaiBnZleMpLbswBBa2s8EMDjXLwAQJV6slzOic_rG5RaCTK1-lg5a0CWERpeYXmQ-3O-9-twpWb_MGnzPEENIYm0Gf4mZTKpukb4tVDSDF4XpVCzMJTeDZ7hDHeEpO9-g9jfxd0GGz9UlOVXKSWY9efQPFnkE1EnKNM7mg1ezcNmrEGWoOWPzNwHDLolvkxTVRYArIEnf6oLRBfqWPgWKB3vOKhUBuB-Kdylx6YQDxzelJQhwQjO5-2DTGQwVz-QBJXACr1CYcp8cqucPI3uwGK1eNtinB7fpU34e-tPWctw-7f7vwXjVIuRwTSkj--pcyjzdaeYveSHDpA4Vi977VllnlSdIKH0epyYQzfdjvPGIm8DJb7_LX_LC3RvDc2b4vrLIOAL9Eo-9mNjLBWKIw5qJbsr9sLK7mGalakNP-brtHs7xV6gSjMPcOdnn2T_qjDDYHOcBx6GApOmDiM8MLQfobrlhGB3hoDMlwGfruYKR_oe-iVPtAihgh75tgk2vJ76RCXMLKh6LSdwRCIASfY9ra0t9Kqyfpvd9HQE80E01p5Bwyg7MFFbadtbtwQEFq7w77ItVE6GV5GsX-97Llon0rDh3Np-aRkLYto4n2fwZ7jxLWENTC2PIbGyeRPYa_OGDrcUrju4ujKWS3UaSk51A8qBxElcU6Thx9QtgWut-Pp2--OTfnotItzoeSttJPa-EeVQP_5pOUA1GkMScpu3dqANyGNxaCGBwWyzNxyPkwnl2m0Zn0hwNabGyEU1YuCASsApBAKCF8fcPxvm73qSA0q0UPSXQIvBWcQXlHPJLAiBedO9M2BSS8ocWggdZJW4RS73uYDn6Pr4rN1gVPu624tSueMal0bcjitkc4yzlQAWqGuJezhX8JMjAAHnFc1sMxVxvMqBfoju-kxwZiCTFae5BpY7RuUO1xSS63fkdgf8PsetLa07NS8l2jznsb0oXI8aWACxr62rKbaUYN5dQpMm3i3glQKszD4c_GzSLbuOHGXm3jeb9ZBmkuDOtEbLtH8OpOW_6i_PfoNESUs5GQBvabpXbUEi4LYx_a0mPIrCXkDw7_I885XGFL013lIwi2Q0FjN18rMIdYJTv-p-ltgrQ29Lzg7gPyPpB1r9ZRqrA4KJFjDx97og0d0J9nMTAQ1RsYWqSebzLCO0w05dQw4FqwdldEa7hUGwUQHWiWBAuzopQ9Uee_chmvuz1hk8uBNINdCygcILib9JePmfhGJRHPsz2J40ZnkwZxAQ4S7ILcyVOFfvdkVCpnfmP754YkoS7Z3YtivVxd_zpXih33baccaME5epx1ovOs2XkMGataZBJ_zjULBdAv1o_BAKNciyKsVkaEs0RixbRKvsgm61P140Wo5KtB8vlpOVAnRLx5dd8JOltYxi4g0E-SHgztNqL57HbnZSYU7ZL5RbSPqU72WRYPBZU8aqrsk4KZwraL2Pt5gZOT7qwTTwDVRgQsqJDT6_VZCrtUSyzZUWsezm3p9PERO95LY5oGfzjnLsyWRYrTUGWB0Iysqoe9JdSxR4CZzJ7c1eAu8bgMsjCOwJSF4IPRywLvgEeuQqSWhIaWwyC79jhMbmcenmX2_Zq10jmzN55YvQHSnScoN_8jx_9cphnzYMQSa1apo9VR-xSWhKCBVfl11qs6mqhDwEXU8MA4uS0wH3e2x4fLN3cWK53x_HE1R7mU3o2-8G98p4MyGBFpYrqXyA0qVu8-L49w0lMsNxEzfo0uT81Ui44fOTzyThB6v0ZT27NEhpwnG4ACclcxtNAoiaE2rTBvTIEQCZ6eeAewQkSKSiS15rD3cLkJZb0JHagRzVX2hehvxVvBzdxELXTmbqFQMV6BSO6lQaShdfPuf2oBEqG3PICMfvjMNVXLq9kEH8MBBsX3Lhlc6s9gHgvc0vM5k0y7fQr4ekO3stkpGvkgTqXXPOuuFmutd8Ba0Qy-3eStm8gp6HC48znYbSVUQErnRg2VtWJ813fLkAgQdzzbnhnvdP232iAMqstTKHAE32L8GMCdpTFFW6oazGYeT_kWFzGub6VXcYWb0MJTt7tO067mVoaqm94Gip4yu8b7KY3zaLlXrXpGonhXBGocjHreOcyeBL3IGL18_qeHRSroLaXk_Tmew4i7DwcjA3Xp7ZZXMaMuUcguI7O_p8afovv97Mwe9uY1JKbc9GfoloR9cM-fK-QTPwH8MZhifrbz9buJ6zxlrFO0_48K_D4SD_gSzLpl8PmEc3bcrvlTFqMexUld_puFuL2bpXXmsAm_Qgh-_TxmlQwmgbauUcU5he5XWj6x77Cstujf3hY5yR2J8CLWVcqKju6i7diQ1H0v91qFU7S4763mdSfT24qMUFk8LsHceUtR8f9in7-HFzZ-VMIs2JcQjqMNRG2CTSzQtQgrDTJYl0wC1K1K8ZlAfQSgVx8slCnn84CoENYEI3yRmY7uHeVqd0hf7W0n48NWKQgsrg_5gwxdpW3FmuSlUuBH8jEze0CqVeaiNE1eixqtr1Iq4MuTz7FHqKY-uDiz4R6zE6SzZg29M5uE7rA989ezXtSUqZEb2z4ncpizD3JbhnGQUUqbiU59QSg484kaJEjTeM6ZXfScDSL7uX9xVbywjQth9UOfPVSlsIM9gJE0DGyEURqAAbiXPZvE7zj0mYn0ZX7jGaJfK4mPgMVSlaE4wsrfS9m5nDl_9dz-O28jJdJLvQs6vw9YwBFqMNEQrM0ujZqyOjqW66dUHl6XG4H_k4pm8vwVEaxIwwtNiDuoAgLCgtnnrqYwR-lRICTVnN556ruoDPbuP_roMgxVIcffgKBZ49S3vUjh0FlFHXV2SEcmchOiQSIXSXvzFERuoz92hBWEt0NI85C4K8kTAETnUpZ_N9XEjj4LsV3e-LwoRxcqjhWROm1F8B67v48LcbOSCcKqnWYJsCpD4HAvdbu9HW0bnHVT1FwHI1WIyhNaaaZyKYuou6h_l6nL1XgeHU3dah7aEv3CjfYF-RmzOoqKMHEdL6bi9gldprIB4doBnFKjY1mHq35HtUvjg_HSkvlvzyuYrP7eRSTnj_odrrFhsWiB96bIRU-354ml00msaTEMfKXqo12I5Lj3XkEL9ZnJWFKZM55I5WyduCiYDx6hWB8uY0hXNxu4T8b9OHwQ2rzdVUk6bM3cIFUMXG7OIlb9xqGcF4R9yFZqthlpmlat3sygjLPs0Oa94EbG3t30y4hrtWMZu0moXa38iZRCst0m9elNJDxr5yGxkrzxx2VzbIze2FcrFkfLTL8SNqx4uj9xJ2i8kWydBhyfYhNDdXgQTohvt6-Vrpo2sZY-IxAFeZyaZI6M7uB7yiZ2EnyRIKSAxQfseOLxPyM49vvu5Z93Jqa_ECYcBDE-SqaPJcnk3XGXmB9qBECgn1vd_KTeFcXnsC1eX1OC1nDe1qqCmKf51YUHUxtedROQC8qupWFOKpdQ7LmTsu10ijYcqEOoe4DTd5-BaSz_dE3uGfgycUwCRqll9K5soz8NJAYbnz-DiWhUmUOhh2amCS-FVtQWPUa7W5ydlkWzkMkY1z-aM7W3kWmxp95ZEjv2W2lADORnnkmAgXpkmv99zJog5yUZEOhg6IiiukJSkZK9ITg8Z13zirpOci9CHphDlbP59T2HLrcv0B_9z_ZInXuG-Iq_gFZi0LdIomGGPEEfhPkrHbIi79EExZDw30JQcOF-ILXx7T34Q7HsDTH474vWUqgGC927MyNX-Ap3-uhM-WGdo0ZXhanASZqepEPY8Ofx5mEI0Ck_nhppfaj2rvT5AWMg5S_CfcdhnQwH8g-d9H857A5AICo29dpUwqm5VFABxreYkU96LQiGKaRE-ZDR18HNeaMLB9ypcK3SqVaHSkM6MnanTVHV1AGRkzrhmnxv9DxCNds3K81iXZkK4RnBcMRdAM3GAdExHJzNL2IwRAGA4p4epKpzVfb0L41Syhk7Ppu0xGEc3QGCdvvEvoZzm8gkwQjLpXC8MlmeQtmx2x7mYFI2i68YXVrMWJK3Bb-eOkJ0UBaBEjBOqUYr0OLynNWgNBpWV6vBJqEoyD41WZ3SMTelWYaARLLJ-ng0LVWFq0TnGkvyGCnujD4i2zrMX7Pgx_BL9QoG7vk2hMcsUe0QsxULkF4veL_5KDHj-LgVJkSldm_70b8zS7ScXWPE5VsO5uBJdap6klxNZf5kixNubyEZM1z4raewOgUkKuteibrcJ8vPDRpG8qwC7wHt_c8HTJAC8YYN5yeetOdpqPcUn6y77_wOaGc4oP33c_ozU1_iaEvl14UYqgHDbjws7y8NKQwQDgc9meCxh8a0JD7rlPLZrZY3LzPH_kKSztbPU-P4ywKeBpa8JOMI1bcJooIgvSpJSNDdqDtw4H_DQnlfRf2VSBw1v2gB-fUNqBzmMztV-Wc5zVeXPiGAom8lMrUPTTgt_jSAGg9-B8LkussgDhNSMNGDCMMhJQPsn7oFT2-7zTG-tcX2SEgDIsIkurYRTAAUI1xp431yxle1DpjmipcEMvSWQ1tcOmfobTIEZ1QwZn3VdTfPTwVxHoyYSZBY1fR7CAWa_v_EOAOeVP2EB5-fo2-AXkxq4HEK5um7NP_XFhk98bPnooVZEryNdkVuhf1J8ZvvWWIjKTc77BLBML65ZfxJT_nRwu5j3-vCbtBOdRlDNYijgu8cmqDyuvaQJj1Fzvy-GT1iJxoBQcLBuc8TqLgh58-NWpeQ5FnS7sk2B3sUvgYOvv0UstuEZOKi623MJUBOc4cKay3RjQox1ioF3JJ5HbQphf0v1VYSXqo5Ypsk93zp0QtGf9xyZV7tZ1CVPu1jKSGnyajU9eA3Ys22Nr9DNDXsruCpGWRSfSrraeA_38aQyMSrIYB-0W8kNBa6moMfYG_nBKUakF8meXgn38yV9erT7a64rxH8SI-RK0Lcnsw19rz1zboIKrvUmoWfNfESxvStijkLpQbQKi1nz2-agQf368G5XPemI49V1N0wyvzvsFUTD9JTXxxOJJVN9DA3ej6dZ6vkN5vyrv7HK9h2NyzhLSCyEYxnyBp9BSLv0cWcY986o_MjKJi8tdp-JKIAWKu1mwBjcONafX0neNFBLinANDbh_zItWAxm15o9T5boYJGjpgyPAegruBbl79qVS2fYWPE6P36ggtXle0VLLVFFxWn_zaxvj4akEqh_0cvBb9npdqe6VFYIpPOLWbahY7fQTmousJUzFmL2Ayg8gB5UnRgW2BI05SHtLFvXSj2QeWy4PJuVs8BJ7TGZohRkbIh9-0AuLOmfFtWdL3wdIsHrb9MLnFjZVyi3n-kSFZ6yQtWrniLGBCxNvl1brRJqGQI5F1jAXAOqHXUJMf5xkPW5YouCiv-ayhau5To4jF5gCVA0zCd94fnIj0UxK6SvewRKF-6CkcVLQge1GXlqQeMiaWbCbAY1HU12Q08wmuJOa6hC4wjzq8Rd05YKs0XW00FJreSfljYFF8Bc4cIo83ORLg8h03XRw_v0epRg6skKBkMp6Fg_FjKU4Ij8LAQh3nspkF0jlhw8e-g2g56PUesjCdCx-OGspYen1cNt2N3ZaHQ9XFzg14WBjHFzkjFi18VTm0pSxGvck2cW6kLOsw7mePisFA5RD45Xzc6itTxV8pg5Te5E1XEgMBy1j2lhUZ-WwwvYEnAFXhvRIYLQYtpAtxKwtZU-P9_BMOq84ArL5E4oh4z8LEwJjgtbD-aY6144kHDYcrdXXB9qTBJEEJ8HezN17rDx9wd2udJ8Ai5aiKW6CnUWrqT0XXYv5RRMKh5wNserFtdjxriMl58yqh3V4VEkyySRhqFGAhte_-YR9Qzu01GeK3mH_Lwy0yTOtKhIEuwXXs0pFOzfOCJpAeyjIu978zTNwy0ws0kApBl_eUrsO3j5pUEOQQwQCna4cd1CNu9XgUAtrwTWLW9GXhEPwEeTMEv2pIK5KTn2k1OexZL0d_EoXDVFmrtoU_Y453K3ST4AeSmVNRckk6dA2qLYEuUNPTAi5LOg1MOJMStRyMz_GqmyXlGKgZTQL9zL3jGHXqmaIqC2hB6tv3xxeGMtt-C69PvZ7lu_Jld4qQJ_O7vsQ7fQjK4yr1djFR4l-ZuJUmx_SjDKJ6NYZlP_8kYmaZXyAxBYqxG9Wxnzijb-iSdaOkB1xGk5wPBDZbxVzJqCv-i0k6m6rt2dBv71GiugD4D6uh72sG8uMPhUjm98UnulDaYokNpUHtKmy7aKEouaU6bZwaJG2hcyTzEvQKvf_ZyvNfL5xN29V7YSK3XKY1VM3Z3TdW2UOABZ2z5SffqL77K6BpJdaS4lioQ8DFGwxUllzu6T9loARZfroPEgZAxPIru36AtTybICSeax40OrojDZw2V86eF6tcfj_kns84KmZUmZQXJRlM2fEnH_S3-UYOwVyUH8Dx-lEeRVDLY4iAzl0tbvSIOnWCkAOwQUmtEYZZSmxipgbrm-UxifQ9JFlAKWyEh6tTq0Gxz7rFhOp--eqlqPzzE7FuxJt9bPu-ym4r0Um4nSqfHHYC2NUI9rJ8E9rGLUjE5-F91vixCoecYc6Kj2WCi7dHCray-dDqMvHEBJ0y-BtKnHlk_rMh8cXtJmsvKAKOLP_rMIZT2hWs_Zg77vCiQrQIBvJFqQy7Q8dDx8Y6i-oFV6NcL98zNc0CDeNSoeKNSep2Mzxe7zbisKmDZ0hsi-8aBFnae-DrYYyQTruawO0YExpyx3-wmuj6kQ7gB9pQ_tKc_oLGhl1MjhXVMkeBoxlFf-Ee7Klz0_rJE-TWHdSa5pP_WY4ly2WwrFmJrq1uLWZ8Ggqby39FUYPMnNeNCEK2gmk6vPScv_dMTstJkQDkhrWydVHCcmixSY2PS6ehfJoXBSHejiFdNS7vWeM782F_VbiPk5GOXjsuWKevSi_ZVwywIviggLn1KWENVp9Clw6VwCYmKTiG6EGNUfSup1YK95-8WlEBA3XzHQW5CIWeBzvKa_SAeGeYtNapcTWUtkrQNCSNQZACT-ADFAXpVIni5xkgIYf7ovxJnbS7z5Qs4II8UTLp2XkNv9ej6nhWLbjic0ZvvHLFDpE9S_8wbRKJNft0EH0XGQf0zcYi9bEqqrLaaknAAPuOuHE9mKX_VmDXhhX5rPK5nwhTnZuaOueZnz9Px2pJiP6e-Y0LJU4o2KcfvTRTgRAHgie9B-jjnB1wtU4XwMs80QhDT_sFzgV3M2qXMvdF7-6aTClLVB0c4XH7OFGWCIMvaLgceFOENl_QfKkmK__WypuiTzoawQyK8s8wW_j7Pc6sulb5i3F28RRPbvguCYajOVtStkLHhjReC6L6l7aakAc50CLAkZci9Tnfx8zT1xaJqgcYgZNRV17SHibXbo8IfWymV2ocpPtu1M6XIxav9eLHwFktTvhrc5s-LepigNs4mVc-t7GwtlKRez85InGIAQyVKaAusd_v6oQWUAvB50PBIzsDUdoxTDihW-n04OiVerIa7lwajAv9QwSl1ZIY9GTLfBWn2QaBdMKVRh5Mzvky9eIVGpV0_3GJdlZMFroy5PrXZ0odsgPwzvLkFUQeVPfbHfuvhCCveiAEiW3NwLZxY5glfNe-gMkH51y-CZHDmMB5b-bNB9zi8B4kuQdi5Hf1Kx_lJ8K2EcH7i8r2mdvsd74NLwBM4IfOdzSrxBae0xLvGQ08p79U5iT3h6cj_ixVzxtrfLzVw6IWtqCnpSlSs8gU-8p1Qa1XUpUS5HrtlWnLaE6ZpzXtpgKea3gaOkjnpcNtYrsW6iMAmHBQ4BpncXVN1K_twXD1TteQmbK8FoMJbekl9vZjoFeVWswungljic2xoww7Hm-pWjWYHPSx1nxkNkSWnMcbp7pSB08VBxv4qIxRurgwjHvuUfLZNU1rOEsH_ZNyRUuaBjgPJvAHSc0KtVm8U4rIXnl0bDFCB6NQknNPY0RPxFbYj-_mwRr2IalOWdJk5fpcbc5CBu80gdzqd54ucW3Xlz3TzaLqGcGb_dPpTkWoleMrsrs7SldWdVUcXuyRivvLxX7UPx_aQOGcLOH4ldB9FYN1N3ScMhpuZ39jaITu1U5-azBEDJxxa9p6av5__FvI_6_y_BG5yrQBrshiISAjUW30eE9k1K0Hx1d4LikB1_rVrj-EYoFajVIZbd8PDcuJpaztm5EjGSUnTESMOtl8K0D-zG7krKIYM9E5jZ3qx6fWAK0vXjbqguwq8bLS8QGqFH2WKEg-yGVGFWdJPFVlko1IG4XwBXTI1gklcCfq-O-TuC_ku27kP_zHVZnJYsnRnLRykD2abxD4qRj9sGkaws4YYVvEit9WK7a8NFtN-2JwVz9omFrBTCjK7VyG-Xu1IItkUXxGonfJJLtQhw6mPvIGfKlJ6Bolxz8I7IJ02KfpzsnAFwH8I-nxk7lm-TSGroaG2gvsfQCoXXDDXYWjM4NA_Imw9GTGJiWE3s8CJBmywTfkZr-OXKrvAqXum-jDAyivBEA9uMtRqqBYInYxr2rUvl0oEnEj_98LWFQ2qyWPKw51KzUNlOoIZgMKWlzpghtW1XN-nTGRqSdkfgrxqgwB2yHFr_8NmAwjIIzUKMDk7War6f_dwRH4Bp3AXUj-nqB59ZQ64V-bY8NI5KLXIlHLEBX3ly_YV7B4fUo-ES_Prwi7tdGHcvU2dXsK_bq3ZfmwUYESk4vg9e6YWjjAJxfuIgbUx5ergRbYApUfEvV_uWdMVd4UaRD_QZ5RLiAbaDKird4W55Ldsyras7ylalE-RyivsCEgTkeobqJEoKrlxY0dYnmOk5qipqR0Np-X8wZdIsgZKBkBm_A_61NjErciZuzobioj0W72tY83YVHc9Pw5jFYz5OMcOrPlRRO7SqbUyqkAtp6vjM8FXpQbiGOY8xeZqNqBE7aCcrNyf4pc7OzjJkFX-BFV_kJCz0IUfcwv-18NH5zo57ZMn6AiMjzSmGW6j2ldMKa6JK018ip0vGQmcRWc9hXFGaP_k9866maP26nSPmqHh4NzgUH9EQGzU8ZSreUds3MVHPRSgRvc-MyaTMzACEtMksq4U19yok8zpmiEsKqFN02sSFusWDxPYFLPWHcIgbNqzmlDG-oHnFzRwZBoM28Oeio03UzNA64qLOFcRbCSkCzBVUBUDoAAxjrNVAC3zMhsK8R4ZxWX0qt4WsSyH0Z0rFmoUmDOTtIW5kfvttpnFCcWhUiKQB22R-lIH1b9XgJK4Lsex3hjZchk1qt1fzRhgavlHFh9b0WsrIHaIk6eByKAYue1EnDz0dlF5bj8TzR-4MpmRPf0tJteDJxy3zwZorJwqvN2WpY3Vx_9oMR6VYcWz3C-jSzEKV-Ux62R1yH1bP_Pz8c7aH2pFtbfbps-mMl20vbkw5byxXqoHwUabfuSkWfIeLA7B7GiMoxj-mgqJbUamfB_TKF94dY4bdW_cG5TYMjfCpNZOonSkKH8JUm3ewhwr5rMtoOHmbppr8orsQtmq0C-GMH4TBE3lIzRIu10inz2lMUqg2qLIfJxvN0-RTDIcy4TSHt5GCfG6LQy1FSURZwVWGIRwKsrF3K1b9_SQm5yC3ISTNC0JGLaY5hovvhSh5FVQAe1tUDnrfK0TJwzH9ULy6n-xb--kx4fzrAdHWUQ4d7BPgCWRnC5zxxjyszh7aZlEf_FgF0NuZCe10U1oWG7HHeMgF7T7vSwhOsT_mAnOfJAAY-5puJoqg13wj5a7i8ch2zV2DolG7blvetwGV4qbkh860qMSUdMETsLiYI6yf1WbvWvn_wCIrizjBkEZA9_-jG2jBRa5bGmU3WpZnUMO84knMTi9W87q9aAZoMK8baMYGZdVFQeG4tuYyrlbmeZWLED2D9khjTVbg6EYnFcxhHPEAy3MYIKnTJiA0OKS_oepZPgdL3ozCMpcuGn__zrs5aHPd5gX-Xfc8inB6mO0viax7cx4zpgnXzu7wygTnDXYPlGZXdV8Fd-72vQYou3xX6_LsZhqDmdBPZueu1ykELHEHoeJoznxfTOiG0eeI_96uOrxE7CwKo6PSGQJaWfDzq5MQiWFIyAwBVWLmzmfcrdfhnZzHoKKojjfOaNffoYkrJBw4v7Kpj0gYgrO76KjqzVDFrsIPfByv0172r6LejkgJUn-DZHEmE0RBnaMUJqzXl4mZXHo_BExA5rVf-L121Sp26M_8OBZUYf8U-Zk3anm1FdV3Bf9Rf3p2oZ0s6rtAjMVWmvJ6-PpDSzxGiu05ZY-nHACwb_ZaEjs4tJFLUldpo4sNXdYDjiveMdaenf1jgZ_yqQhG-8bZ-Oaq0oq6_F2Gja9Uu4d7u5xKFqlwXfxHf5LDKEx62pTld6sG3Cg12FqZcHk7G3uBxNFHIa-akdriURbA-aAg3SRQrcOFS6feVMXXnqoT3FpC3qsV06DIXl18a6VVVarlwmdCNIVNtjhJHjuOlB5ljO4wccyGT3yR6_qBIqTECvaANz_-q_0iV94hVueorUavZCRG_f00HJ_UCnaNFq8nU16xkNkKHOqtk9lDeDNV0JkfQ7folIwR9lWS7rg5eYd8-FR9_MKLihZf_9KajktfKz31IyU63fQdULN4gbaivzzf6bIAefB73s4bTfa70rkdDeMcmK66m0_Tc272y-5fmzN6EGcdhsUu6u33DKQrfynXn19GJjzYyZNg7OSgz6ibHis5Z1eqLv0F4lPOATcs2IQWy1BHMqrKrWgxLuEBD54nBWf9TB2ZMq81yzf97icsQB0M7aJpAhjVsPJ30-YlMsl38TGFMTd9r70hCfe5zOrW5kNGBPkP6C0HV6dy8KqR0BWikWNyeGOTbVOPw3VxQkEYiT2vMWSksNaDStxSXgMjzUigzaI2tkd5zJoj6Igsonp8tW-dGtFI7sAYhrXe5IoBiXzVg1oxchCn3QbdPG_DTSp-6g2BMHLnMvKH_ZmHFXI5NN944BcM316roivUdGDfSFaWXk8SdBvvaKHBSIFoVwx6iRX3iBExDJC7KMzBmGmTzAYqtdzP_Us6Dqvl-Q3dj44h-hfkxWWPAddX8XEMb9czdUp1V6gwZ5tSFIw7H6NWFh3FZ0atMszPtzsvzq6Lnh_zgEAPrfHNbifcO5QOX960nROTweI8MX-H3ZG4BdeG1AUtUa_E4FPEIAkRxMHuIXKxcmTVX0z4cczv_xdr2lASoM_rE3Hl6Pms7ksSblZvRnm5F9FZtPMushKujtcoQL_eZ22DWwT_XOQRFs9xZe0fluxxStF_bVbKRuCySdPasixiln0O8lthTbG39-IVhPo9B4mzgZacyX-HgLuopbU7lBk_l7fAfVOPy_NKJ8WfUAGvOIw9J9oibJsr6igFYoLsn1CwaO_XcO0R-QKBvNqqum-7n700bwj5LvytDf-iQfnixyDXDqN72HUDrML9eA43F8LPsSGjQ_3ZelPpEQEsWa20-zSN6Ch1UN9gbpS8HdW0SskxAkttjeyRyfL86YKgVbyx5D-vidGyqfHM1jWaY8c0oamrTY00KB1EPE7EhTCyo8k--E0oaJmstnEF4rvC5Ea8DGUwWlOjha0fwu78z4tVA7vnuIAA1rA7q0BZ3zCPd6EVnzY52OwR0zAN0GDDK7p3Htgy4iLaB-gIg7a8slfCU3OlGo7AfphmFus5I6TzMQQaUL8o7TdH_nJcJ6sEX_BTzBHRGDLWTDU2ZzrigqtGjsT8N1t8ckmNYwP9YLDIi0Zte5BgeGDYJcmyZznUUxEwqTCn-8_FRKE1kMzK9zpj9mmVEcZ1HI0HA9CoMXDKprz5R_fEEPExfuIjJFzBY8v8KuYAGBV8fz4WW8cbhfdKMMHMZbNOSFiJYiHw8lGNTOxtgNPonhlufxNLezC81sYbMr3GVT745tdvMOU8RQ8TRrh4DKsu1HrcAB7qxG7Qj5lE1IoN5JqNJXfwcKoidR_cqlM4FAY1gPaj7stvNUdyrktug7IVO19opsYI4cygP5-5krB1wm2W2ohlTtMBhCU-LfFMBMMyix50e1_GPcXi1XmUKnAGJUs8ZJAtup7XDztLu9atdOEjb2yHSx4I7YmkRMlXO9B0xArHvwNHwIggY5L9eTo9N-u6WQGHrauKvMIp_VgYxPKz6-t6HmupNZpgMfaDRSirOwXWmUysZDjDRhVn1Nsb9FZKnXYasgwIDrn0o0MbJpYaSw7UESJM8qIGk9HlX43Gfo-oH3knz-GcZJSuVtM5d9UKz20SpHBAHUd9vb8fw9q6RXCOhQ5qGfpz93xEYIXE939aNncAiv-zInFoVXU56Vtc0y6XZojNGUiGCTpn2LD2oHXx_FkLbp1YYFuN1KrT1unUsbUvyWu0ms7vGD-GV_qY4H19e44GNYB-84PM3TiP8cgUhrqAUdqRaIbUNoC72N4_7AU2b4AJ3iyK0_MK0t0H4NY3EB5hhiF0hN5oeC_NdkG8WcPB4VR1PnX0Krv5XeZ5cBzDZ40FGcXSB4TMO7-KDSyRwNS8tZBJWngZQgl8Oz2Nw-kATSp0dBg2Qx3VFVnv8AYGHyyfyeeKo2PYqPV065PO5aKHFC9r7Y6ftrsxRZwBxHmYRTRgxOH4eo-zpxT_nc3-hJJ7zp_A3jh-3XalogMOaUTFadhX-CwddMD8R3andLtFwh9AabcKyZv0H8lVgB7f1LHP9rZnT0hb5jE6bFdgD1PdaXUUUAvOWz_DIx6v7V4t3DFIdxC7xoQO-UTyDW2mykVhmDRwzn-dnnca-fmYPv1XflPeAQDORKRNxQKMaJDRsY8pVePBoToxW5ODKVBRcuf6uBo-sjZyOWwDFwGwM0vco05NbZ1d0uKB93tkZkDuxoT6XL7qg6MmMyaHaTzuglvfS8ewPct5Al8FJyBqA87SvuxIrE8PvIiJhKG12lQZ09mLdwT28Iez9hISv-31ttdi82XeFFzFhhSmxdcwCg0GqEkUjqXzT9SoUn8SUzKtoHpRaCCaOifOIf2Ediz1Ivp9_HCWo81FBRWtMCDcTPdn20CzNVc4HpYbt6z62R32zUQZlZLClfpmMJs1SlFlfdmUF6cQYStTdMs6OF3zwgxSSxzlmxMqlyCGwj8hcJDo6YvbLMy8-jEJNWmzDjElcn8WzBsom0VDaEG7QMuCBbcoKh52zoCwxV2yTFrrKgA-_E7Vf1tTXHSCgF6n_PURbnfKKYbAlWlKfvAdxNbMVC8IaGyEhhAcgVxfqSQx34dqBt8fzf9ulJrFGC5o4tD_cxGqpXp-dDwQ-JoYsxExL6lKqAdtag0WCJ6189kIaZ5dmuY4oQBsBvLflOcolPmzCpcvEHZBuRByEONLvOKbWFzGZWbHLDLaAb9fHXx4OF10yayrgkIutDNP19MVeo2tpa5WtaWovoo3ZSCT0FhDcSSje7-CH1cimY17glH2FsXbdT3lqX1QIFWkiC3r9r3st63QAw0Zq2gNc6NvyF7YxQM913_5IPyxVqaZNjUnk0nQXJ5toDRohVy7A61yYSdEKU3OTkaDXNJqH4OHFh1WaFCWSPohYptAbYHd92fYp3zzG0J3I9MryiJeLcXBWvnWUt6OET7QTDFe2AB1p1m07HMDJ1e9EGI0RVodtoffMzrk05VDlBcZ2rjpILxMXIxT7uN6RskP51eoRRPQiOjwM0ucqTuhbf3317EHohLS2q0Ckx7dOH4bYXlplHwiYRQMZzbQchgN_nD7FdQBrCK5D82SukEJstuuE5WKRdMo23yK-gOdq8qLs2oAZq8NRGm4sfwEcIlibrGWsWSOK-4_xnZWIIOfzz_OhmsMgcZAxyJAHY7UayL2j49xGx5S_zMDscMvMTB5t-pN9qe05cqgnGPdFYcupEaCbk6C8rHLCwg0uLUF7HWTQ0nKrAFizcDX0nEDucDkYURSDn6pWUEYaTYyhM0CGz1CMVo8JVFTmE4R2M0a08CLu7mZEU91TI8MHcY0Xhh_HwQJZX-tPkG6Uqko81f7kT6BvI0-RH9JTktQz_JOTkBKTg21htzWiHdxKznmzqKTljUo2r5lEGoLnb7tQen-bI7Y3LEe9xFrOqW3KPYaF2sgAbUb4_J-u3m9DNkBLhJ7q5UYKsptAZn_ms1pi3fpM95TTwCKgc-6YlcsyAcnoXTdOLDbpB6ZQFAZE34i8gOBaD1Zw_EsvFrkI1GuhQF9iqzYZaUDy0mG9j9VkUKIqgur4mCxAeD4FuLm48lj9aaGGIEKV_ZRU6sT8Wi5KZgyWGSIF_N8TOgsO7tOzKA1O0oXlXgMvDSnAw7Nb8Z3vKAJJ5n8guNEczmAtgRFqjJXZW4mjMOZ3nY8qT_pFrViB8wtXEmGVAny6Ew2OU1cAfwxs-E5owzZqPZttl6geq_NLfn1ynpV6CVVlI35T3dkTmCx6VuARF55YwW-5SdPkXGTkQ60Z2o0wFuLoBnhROI3yfD0qbTGgBAERx68oRSubaON45rGajAzD2BpBRtzCktGFx5ObDBdaIEXzdz0aCrqiJG6BSHs_cBKw_Epr_8DOToshhcSadx8u49toEBDRccnXXpCE2Nfwh7uobjGV2q-IDekHCQ1oiNN3wegXqOLTKJ6I9deKevxwpUMbGFaGXxoWaVsWxU7p5zfZ5DIYIt9kaxp70R_mumnJ1r0TvPm37n-4NgQQH4Ee9Wy4tunxNksccZZhsA58ZBkXpVdKBh6uwNwzokZpnvaWlplxIkAbSyXQh2xroFjiiY0UCjRbPDPISAWTelsLO7pbWgl5UqqhUyMvuHSAgC3wPBdJplNO9WgpKpn2M7KeN0_oDt9ADcbYU6P4Qfcfmivu9j9AGHQUSv21qCycppXViDYrK9IgfWFviTAILcmHRgZETSNh_uJNgTSnrsFjjpypL87CHO0NAXWWMN58hIGdsWlnNgCIwQ1wrXJvfmnBsMRWbrl_A41oLUzkav7ECIfaAB1J2uD__xcO2aVsz0IP3LCSFqk1G7qw6IaxgH79HHfinvlpgiwLNgIRKhun90JJtic1iJDrmMP5atoPSPB9XbyGAPVwDRylvaFT8andbH8oPlfqeXCDmVcLSUfEuHPO4aW7kPETxNCOQsXg-BN_T-wkrF7fon58xVumgPn5DvWL-NlCcLqTQVMnLC_20GynsPJo6XaS8DB-t-sp4Pa2WDeAPdj_ZBV6VAE8sVrgq5WyQCLnvM39kUnP_tMn8VCIeKIJ-0Ff9cAL7XjPfDUuhnNDsimGqpDezLpAhdI7OOoTiGvQW84uZ9-4WGpIl-Lv5h9yiuPEbLVMY_iLUjsajdEBPC75G0OacBfQc94g-6VNHiJvjMAXpJBytnr5Bysc0LUIDqgPJC8BjSNjJXxLCad1HPUSDIT95tklVmQkreAMOeCnjDv1WGL7WHlut-hvwxsVAewV4Ylswy78jsGRiD4MC0rFiH4y5q2hWErvBZ6CnrcKxZleC1oDGW8dxFbOSW_m5xYAjklmk8CDlaKlC-KI5q5Aqp3zoxT4v_R_nOdTrc9aFaz5IS-_szhkzTfISRaQnR49Am7JsP-ewSSUotrpb9KwLd6S5PeBcjiC28OU_6VwXRr2udyC345uw_0mO4NwONgvY6Vjck5SF65h7nXwyf7Qa3J_8lvCPOMGplFYF6snKCbEDeE_ZOHii-4mbj9qkZBiEz_ftrYBCW7JNnBgM4tFlcsWKK66wghHmsJrkEslfc5Ke7OpTWx5txyucyjLRodJCJ_W-RlJG59bjzoRIRaLmXMxrOxicBCEUykV1M-0wwSlCf2DmoZy1FQWyiuotz8UoMV-UdDhX4YP2HaQw9SVNI_4Aw-S_h0Yo9X7HncTyMAVfOryBJ2iRuXRh596zvEKo99XUQHrBqlthHqOX2aIO30NkI8JmZK708uTyzdcumMR96nK-kp2x76nYHdHO4Gdnouqf_qkjk0PqfnzaYKvfSxq3Ml_Xoj61F8yjZyqgq-5VRCW56jH1YtrkHFp9dau3cYqAYb7MCoGGby_bwwdAE-QDbjuP5gRhUeylz_abDk-ivf0RRfjEApyLpekZby-SnYddWWK0xRv_xFgecK1P_2UJWs0_sig7QkbeAWmHZypSnD8KZnvw2-zKD49UpEndoWGSc8rPrxRJ31oVxeKxQm-3x-pqg1LfUmzMBW6vbvt95Z7HpvQdloqCZMDyXyQ1BRpzHelhI41Omre5vBoqYs_6mexRyQxtT0hZMfMiCcKZ9S7ftx95xEfGP3QjUg_SzzZZxVJO9nrZwoplDCyFB_x5XIiDXmcd3tD1ZwpBhpsA3z2QBmT3vXzcVYpddYwUGYZsp6ixyh-9wYoF3zWg73qfvTevoOHs0Cw1PnIHQKT-3vqiSETsJak6jWcdroXu_95kRlHhu3YjQwvmtrG43btt4iuCMntDl4Sp0-xjB2MKjcrLozZA4FTqhJwhgL2nUjl9L-5caOIyUNc6HbwdjaiRjAzwDEVeM4Vd88cOwRM0X2ZtSrcdPi5epkdKMY4hR8BcTWDEARIRcIs1b7dmFJkRs1SJJJAOjz3Ee4ejEWxtrlsF0OIuMP_bzqGHpRSOOnHyQBtUQRZi8BBnSvMPCdkvKoe_BvGWLlZbY2vXvzB7PxPc_nBpKtxR0JPFjJHziYW0fzLDv0NqTr8ljv8tSyeeyClh6Hiwnun41bov02mrcv4ZVyBwI1fQ9cj3Xf19EtiWLmeiFTJAgfJ1Y8O-cySyEq1FlAXRM7XzGYek9O2jWN3CkHTkAFO1xt0TmbtuWaZt1Egl9jPW2l5BKwCG_et_hmPmf96UJaHq37tiN9zhGrUHZBZ3sBtMnBIMFl9RkCFgWQhlbi5oWB1pGlBXG0KplvF0P9hzH-gg7f8bOYM7o9k5isBgjb2KBOV0HJSJwV7irlXtfU4f5AlfZUgsCvmrrxv-kCe9FdL5sUOk_kWFBNmEntGXQucAQeNmZT7zF2B2_b__3kc7PrhKXbs8PP2W1x7LbsO2NT-NqT6MmU3JZxcll8z5HWaRWJP5xi8ECvTZayVx1O8ie1maV0OUzVUd59CQt4TvMbs2BLVcpA38Z8Y7lOqfZkIclSBtjOenTPUoeVgsONwYC6NnjZ5kQWCVMP3o3gItDfpuznA41vw560RJD3a2Vnq2LMILIZ0e_tNus49QcpyAYuD9boD3muSQivSYOcGDSptCCvROnV5svZKx4maeoXPVrP9qE-9H3uh8bWlqfviFEv8ZwPtl2XCCYNotG30IHcpLJAMCM-QFcK2NGc8oArbZBjZ2z6K7ZnZUbtPpBMJm90IjQLFzxPs7QmqKkcY2N8HIAg0vwb8FSj7ZoEWHhMI1LBq2HqAFV8VZpS1a0LjnaNTyJhzrQ0Jq4kD_pclN2BYr4uAUodY5STVVkrebigcBN2fQ9-5shcNM5E4MfhUbE0TdbEm0JOP19xfO3wLoq__P5b6NhXyMOlDbTkNaekZondEQqknKBOu8No5cunZ5Is0__w0182dZR8YXQXaxOL8sDE9tXHjN-4kWt_-aobUJEQP4qfy8C3HlrkfMlcpL74jFpAIy47PGnruwTkG7sM2uelqUe6qYSD1nfxb7-Tm4SqHioF-1SPoV2EMiU-lXq56tQ5QKzwSWNcNr7kYnyPVQVK1mu4vW5FvE5pDPei5vCLj3uuzw9fiE-gIZ_180W-YxwtR2ZYC_Aiq6c5uW39mVXDwRiTttO5htehn9mbmnWhKjYlvYTbqDh1xpExn6B62HupnSSn5IdvTNNJcA949Yi5PqEv-CEDnkqm59cn7xtHaLS3X1FglvseZSsx44Abk5dxgDCBQSSLg-FEjzNncWjlxRXZPBDL3yI-KWRJeWlUonD5rRTmIXfghXxj9YdJO_6bsXqV71-4KE_qUF_yKKTVbDEsZgZGqOPxSqDhXMs39XqWOIwGlUmo6Mk6pmbBtJ0oEwEm1jasWl841abN1wExyu9ueATGCy7P-0iB7tXRZD6bFgQHiB6vf2qY6BI-4WybyiiccA80H3Px3c_mO1v3iE0FdTAf-55XkwEtUAweWD5uY7ritELqpMm9TjFCFpKaZ5MCfsrOiD4VCLK0triY7QO38rGQ4CRk1f1FvB7SMu6kk8_POL5PZC1p73YLC5u87gzK3LGMBaVHa9TDDfGInqIvbKtXZkwtRliIgQEdJi4XiIEPWP6yKEzaKSsdFQvnwsp6SdveITONV2wiHVcfbKy-37KBbIE0_i_fp34cGRaa3y9sURha6wEWY5v4Ih7mtoFv8pcFSs_kmI-Kkpm-nzacDqFImKc8ejKqIzP1st-C7Wu9lf3MGiWzORDv8nB96NZJw7OvjsVLalLbVJSmB2RPX6jNde3Kfg1C9LCHQDuDIWbbAEmEEnxrkFhiCdfZw2eeE4MnaGZpcSK1GeQMMGJRrfcWhXaSqyDUYWxwlKlOzbQ5OnuajZgfOi7kWC-dvrG4B4ft6aEhjLlcamo2e3qc8hMB-3A3jJos_NNVlZtXjHq-DnVDVKE39c6E6lFe8BH-NMj_BaDZ6bZmShkklaPEm-VYWahkhugKJ8jeWOAWvPOa7_hcY4ylEZLPcw5HTVcKp2GMB4R3UqJHOAfCRYLG0AcxOrQhOnWHugl3y72si_ovVi9nR3_SvdBynxpa04n3AgX53dl3m9LGfTX_TUhwq55oSlZtRBNPOUXh0Fw8jwxwDLkv1uCBMVf3whz0M7UaadfNRLQdDH1qsCT5ZOoRInqDAun_QoYtNWZA05y5OpEOY_NNgOMDmV9NF6O_wSWSn3vw2rUUp1sWFB1wqQQrUv5GP8_6P8yGkzjsmELsgMVit8HTNaKk_E6o_0NPeHgbqvf8M3XTKY7IxQem2mW6iik1mmufGi4Vv32FOKqvHjCl6RU6zr2wqN1A4BPF3aKVGPn_2ygkEDDKRgzwPG1GsyQY_de4OLhJ650w0lkRPF57QDsehPjQv4pqCZNulwQbRPkk9IQnWJujuXjp1hH7zPAo6DeBHrgFC3kQLK7EUOUF0lYYkxJp0lLwTYnDg7TV7h_01-asxKnXpX2wBQBuMWQyCAj4kR6DIs4xYz_9HkgHiyIic-Fot-rUnCAN--V8E07dnurpGKNl7NPyRRWEoLuHLrH1MGfDKrYGlvWBgJ7RwSoEGddbDR8NTPvPDGDJUC_bLLZGQGpoOJoMOYecWrXpmBKMZ4kvY51cQSFVsqnyr6RK3zoZEA70CjuUdE9NTPvz37eLxun3ej_QjcCW6u5ZusGBEKEWiBDpv9d_WXC_QlkQw1pQs963eHc7cu-LEOczux8UI3C-0r0ImvDanSDWKA_30-x-jMBFzuGi-x6DpUT1Tl9NEvwfZ6CdCUfeYIbXSY6t2j9TQ0LdawwD5yiWLDWO-T603F2a2obFPGSQM_fyrAsehxtYXFxsHHnvI0e0Tbe9ON5hJpCVfO_njuHyT9EVS8hOVXfQKzhKW5XkFBOkW2umi4UAgf1fcNV8gqc40GXkx2S4n7wGOdRWe7FQRh78Cg0ATzwmTXHOy5qGmXPSro3USyi0xLJdePuJbo2bW15mYKy1te54TmCKr0pGe1O7d2dijOZTx_Q1qOcPbUyjhx_pa2cigXun3q0lgePcaRrfxaH8nGM1SaEPmNQ-lCzQUK2tmyiNJy2A8StzTNX_CrPl1xG5YrezKeR-GHaAkEBjSGAQG47DIrzZMNHMSOS1Q9lZ1ho3AotpFQUDbx3N5dJcY8d2vCxEXMoItH5cF5vSMQcty7zHiBPngIAm5GkEOw5OD7yaqSQKzt3msbAqlWV388KqhOz83DyOspFC-wbEnQ5g3XVhk5c8TVcvfOvwlsPZCbKzi5AV2b_CH0jP3IcXFv5PQMHveUIg5U2O-tTEKVAFG4dWUs9Obi25maCdIZOXCFL2VzcqWtvq_ep_EHVOsc9MAo7LugwHmfKLKESvxxYtE8haetpIFzTz3pN3tRDplVLfmruh1xWtJvd73UpUCnA4tPDrmSkXQa7v2t0YAKg8gLjs7EWl7i-iU5QW0h6oL7rPKHHXWQOnf4SG5ljdnEYfAPuax6fe8X2pWPrvpjVmqxSAwrFrCtbhJkHYl4Mf4W0l6TWUwF5d6SFJUHKmYTc8-2p6xC3GaEVEiNQvfAOiViSCn3xc1_oT6YL94NwY99pT5_wVQwmKIHGngFmpQbvihT8dA3vw3NT2Sbqx9dVOOGxCysNhp_PUT0IRMb3KsAvQqy9lus5wjq76QC6y3NV6HVbZXSVSMxmtEJPZ_MOxq-k3HfSNIy-d0RrEqLNkhnYOlwwYsEOYR4fKTnvQ41fAfQOBXi5KlapCMyQqXrGShQVLCSQdgPiBJQnOnhqOrk4P-MBvMV2Lo-Qioj6RsgIjsT2DtZbQ5zvsRLHYlyVR3Eqvyb3ygZCmgMQYR_tpu-WBWsSVK_H9fLFx8ectH0JyUES_ty7kMp9GBulNIATVXv2sflKL2Ax6Qv3pHh0Qrac_31jGRgrsndAjSsN-SEpI40elPkxaf24NTX1lpfTAdifcj93JSMu1UMiopkE4IeJWRzmqalGLI3bLIrsc444FYR9EWarfTcOxVajnmqOZQTdDIQtS1DnU_-zNl2MoRCoT2bprX12SWPT07BMYUnwdHkqPTA8vNXQUM-2-nGfOFcOQylvPNUEMGv2UzHzgQdKYFpu9PB3g4GVVpAY3Kx-SDUzxsH9erLhhVNLEssUJbHjtEZSSWAwMsSqxaLJ3Bb30tl6DxLdzG9MFGUeP5kZOv4Nfz_AOcy1-n_jR-0hF9L6X8fSoMj33mncP5khXLEIyzOT4pRf8kPDQIvsBFLg6gmI-6ClD9kdz8TgfQun004Ilf7ZrIqHeG2Dk_dWBnLVYGkeI84yPnNmmn5d_NFylrc1RNMU-hTN05KIlvLg4eKRLHz8TDtfU-HqZMG7mWvUhaPfdlQoZPsu0XdlLDhWe4GMBqzYmti2vZggDIHIxBNbrDQdSsN-jrxGt1tZsec5WdPDc3FZhmC_09PR-jXZObllvf7dLwLm5-RyvYDitFlr6xLcAXMHWZOyG7fkDIA6YAOc6GAcweeq42gHU-N4ORExCbDgaHk7zAYzey0Ixg_5X1kHAp2pUzEl2Xq-nWfNsZ2arVNNgGacFUPE8gVAYNjnPFBhB-VryEvOpcV6Gp-bF1wU3AI6Mm-KHSYcpw8fUKsGuWIu5NtqEtR2bPd8BKAv4X7FHGR2LXGnPwSnVqQJ9iOrjdEvAwaE-ZbDDTMKtFB0d0Kk9Zdbwwv992HLoSTdRaE4gS4-dFqHFZWGljNDCZn5Q7711bTU-MTwJ5AC6zjT1mpLuf0KBuAx-CP064xAgxWJSq_NdwZGZst-6jVESOjPSfj2jIjtbz-ozioHwjUzo2PVIojM7eCLgliQFQruWHlufe7odvB6a6ON0y19zHNemDMCjpp2jPzcf5lJzYAv8vTqdbs2YK9XCx6zJQpBinQeKa3hVdBoaTPnKfV-Zlsnb6EuNupU4CP9nEJApbjSMbueLxoke643Pq--FpQLMz_HOW9cKHYOeHB9ETYXj-AB5Jxkqs23zIRAZkf__45d4uS5zVrMklqLYmf9fP9T7KdGIadg1oghtc727Ig_vkWYdi_Ow9iEwi_WLXqYUArcIicGyovXKn5Fn1k-5qDT00Ns-nsp0_mvL3R5UcIRgHG6hmd55dEpmHM2oVJbOjNd-tnjypSkAzFtR0ExzIULZj9ltyPF_otOLyBe3TjKdpbeo3LnAv4FjdE-1vriAj-Bi69X5eyx1JvpgSZbIfAQ-1Vl8v8XUP4zJQ9s6rA2JIfpeZNqj4boO8ZRGVqj-mrI45pR6WCMH6naXIjyzpaYaG6kLZUyheOp3z-J_JocpFKF5HvjBtQhn0EgDpKHHArmfaosPC21DniS7BSQRQ6OpDuapQ7v1AM4MGrCyg5rw-KuSHP3YZHPP_6KByxWhTQtA1vI9qIPtobYgtIrRtMJxmtTjYXh8ANacgUlNnR4SUmSrgomjDa8jLtfiINqzgbmrEXNBI2fzQ51gxfZuprDquMnlV4_GUHxtjaiXnyIePmda1KXz6hJOreG_zZNBFfbeZhvmnPNgme9qIIuslBOybtjqBH1TI057MHpX-nWKSAb-csPDFY5YrhWDZjgnTnWwDpcUqgm9zYLf5Yus_Kbr2TjzkslvjQcNO8u05wXpv55JjV8WKvLeE8zS8bB0Lnca3JtDjiiYzVBeMg8sxh86V5UJDCOj4Pl5o7tGiYDMEJgjXWk7M97uxAiOJtmxoN4E3ZzstS_qZSLFBN9gF4krNuGMhEuqB13g_LZpC69juiimtIyedA0uIOx475RK8SRMn-LpmkF5r3Z3oxCGQUppqXOxCvOxxaPHsOksvM5SlqYO3D-poZCicY31CCoLDVzxTsk6ScVTuTpMl55eqsohnIezzAmh7jMBdvI7p1jdM6Hp8kMk56EQ_adE6Id5uaUkXWkkB9Fmg8KmEINccv5JHXsK4lLvC3IxXkk74g93JW3dE9jKOOBU2mkTaprVVIfST6yZ3fiivGsb4PKqqvKdbtPU4rWSd8YmG3PWZct3OoCaeWtfZ5VHt_rFWgq_v7rDAs-lLoeyeemYwbHxHU3Bm78IhC-bC2hKyaugZKubv1szl4PzNGJrzeQNRxbMV24bLLPg1UQXm36vogJLNBNxCvUAavbloob_3DEIEcve__CCPlxzn4u-oOmhy5uTH6XJFDAPjhNyL_-Jpe0ipnUdIJA1X9GUL5zHGPpxphIKAM3L0qc4YLNbR14wBYPHFOCyzTKRDjcfwHVevWWSz6THPGCrFektdCVzHJF45DvoJSOzfdFmsK-ZTddMfZK7nyJIwjL1jeYbtZJbsTehaaAipyvWbZRP2MctyF1e64bTVdabm8nH-JtPqJuYP4jLGkbJUfiK5lve0UhHmJKGiHphEchcpAnNqWO8Gd9scw-6EdoirRD_w-k4gtsVH2L8XMIdiT-asqAq_k4RzbFOOZnzpTR0B7qOCrcNmBuN-eRJqm68qgBAs644hxUvbR4lp5HDyLsChy5oBI8f2OSkvRsJxK4T6GYKh2yfRO6sDuX3joir8b-LrGRKwfpkCpPFG2omD_JJOXPqPeBR-oxAE-BJopQVm9xZIrQRglk0qCU2XKt3h_cQj_8IYcBM9uS1Hi8ddbG77gFT4do4q3uEXaRfYBk-niBjTNzvgnD1e28byuIQIUGAJNbpwn3L99x1sy6G1r45Dk-vxNi6N8xguGqQYl5bP0whMWBgOrSIu6qA7ilRp2bA97iN8mHOAEijIiwVAa4RG7mk4YdiAIUhkr4IE3ucVrAzZ2RfBlKp71sZe1A-vZadsKzzawsXrZMiTgeZacTlHPu3Ka0l-z2QT-roQ0mBHu6KhW43D6IQ9fc_YKep2K1AzwOEorVlSWIooOBW9lnuJ-qhJlkoroonfvGGs0v8aKXt7OxklmXlwNfC6DaU3Y4Sja30vLoyhem-PcmdwfjI4inHeXtuYTQqap0zuMUJ489es-mPxSYItnwH9YOJc-wt1sfUYWwfoO1vEQB77BiOhsYVgNc5mEQvpUE1usTxeOLgl9jqQtgJyIS8w-LJ1rAR_taB-86HJUaGgPZvrazGqdm_PCJejX-MpRfVkr-n6AE2Wr7XFOFBE1Ijzw70Jfyhe3eahJeXavvnVcNUAjSmgUN-dqTRuRQxgPcteSK1c2OKOLWyTTkyVLPGH_FwCyVpE7KU0UruvWJlMAabqwH2_tY3-reNODPCO-Kd8jFXGc6pPUHeZpsw0JjgQKlcyfe_pdRKumBND4uVu4Y23i2DrxhN_iDiU3LEaJbwQhpOdKHuJ28v6ALHenaVkbglimQ8fFHhxbpFU24yQ-cIYyQxjrNq_aTjJ7MZx8xZQF5CPs2bkNGrMAkE_vNlNUcVlIcdV8z3_UI3Q0y1vrDu_iMN1AY8sA5jfUofoKyFfXe1kowjaJUnBq8_Ksj0RZHf77Xs7y7_sD3JhcZ0pEKnhdpjU2XQZtfZWiqjxyRwD8-WeILCQUKsEvM8ZWZEzGeKUj5HceJd7Y_Zmxj22deMFdIzntb0bx7o5umeU9IYkyeBcdo7eQ929bonjXZAf8GMCiN1woLzCWwea-9mBKqMhI7b8HI7Lum1KrFEDuqFDmWVKAkSK_lkmGuOytidKIQ_k9VWEkBwJ_Uo-A3iCZqjIXvp1GiarytLh30q1-ann2p9CRAAR1U0crIChq2VQJwqvtqHbZiuwWlPj5dW9x7whlfuG4FaOXUVfv84P6EB6FzXNLw9ZvvtF4biA_fmBt6yvb6tAIHLD5esJ8PK2yPGLUBNsGNf_TKrNaJHV68D_i5YC1BMpryZ681wJB5IHPB5YNx6b5ku9JSGS5Bexb_DVOCTK_HqOs8tLF4sS2r1FLInK0FUKsP7aUnWDF8tJiVKnd5ktuHBMgYJH5lx6bpnckUp0f9bjuy4I0ANdmYDqglmSHatabRtHp5wxKnrRelD6lgjgN-dmaqLuUR1XCjwb4VaBqrz7-v0Cnk005T5s638UBmRU-pqN7zq62K9PN9hZ7Bxx_LxhbuZmLiC0Xs8cIlk9-TSJLAnzOdZRVVZcFLHFYRniGf41qyPrAISVeQ9YPdLGsv7wB3uP9DaAywa0Nc4SbsdZZ9T3lKb9N2gjkgghxbqpK6mETVt84u4J-mRCmxwYsMbrOwr-RitSofecoMSnBWuDQz_j1uSKhNY13g_kB6mj-eUlSQccv9bqlsHo9qP9Rkd1j3znW5CVCI8MMOVPv3BX9X0_ATesd64vO5AtAcH0xS1eYOuA5Im8ankGHt3yq6oFmpxwN0OimLKwUKD36h7QkWFdDYQocF3IZpr6kxNCZ3yt7S5-FUguiNz0XhtMGi95l6QnWeDz-S7iuodq4dmJHW7LUWbuINGDQP2XoZaocVzAKn8E3HOmvJslQTBj4YKMBplA-VyVVxmwQBIhO-xn_n9GNaDqaTiMUuqZFH6PX9y0eRAAAhfn7ErRwa9ab9WjMvCzVi1mE3QtOdhZrITmd5YEFgm8R-9JW1yIHh8gK_ztQQztBhHj3i4K3svxIPrNDBJ7BitTT03j56QtEBLXerR5ssx1BXjO-rM93VXEc1O-zEot6Uu5qX4e30iQHVpOsP9c2oReFmkSXcjwtRWDricpGUE5levJqe-QoSHwRpRtPOQVOkXhkbG37oj_2xjuJVgFoEDDVxowfsnK2ure3FzS8dKVosY4zW_Pch-KA5N0QfFjQUKjjl7ioBmFguapVZc9ERfXgnAPusSmeoh82rSK7bSVvvBoBpfDaLKyC1LYyLyslNOCsIUhgeFSOIS6WV-sbyCSAzNoVHI_lHWbkzoA0UUSsazcTsNbHBjxtW3oOoiNA0mQlnzyEfMSm0mX-UMMCZnAGSTZUVPcHa1pZQIQxRAs2T_nzHk0IcXnr-XtJdrZDw8kNLJs5u0J2kM7_NS0Lpqj8JxUSrC6ANPmyISW-WBmXoMnzbzTgetR-OfsIzJf3Ir81D0UGWyJzyvRuuKEmHvV1Csax6qSOqZIe8XO-IZrPWdMX0nZfJCgCXOtXr99ZwuZIbqL-i6R4b-SdH_dM-Z4OESBo1sLz2FrHK_s-KhlU6dk6L2IdJnlIW66lPIRT_qZ7ygltIG0J_HILwtlEwETd0kpSTNwS9ZF43SGIGORDP26ts_4cTkjP3GahCvrgFhNp3JSsmG55ST4E683xrJwmwRMtvuPckOoec9U9qvhIUocjC4tyGZF5FgjBuB8iJ7WyvfHGduQ4kUkPxMkuwih3CnvZUOPJRC52UgI9Lynr_lSNr-DLyD49WilWxd6TaSALxtQRjc8SdsWCI9N--_4TQ-_LKl7ik4FgQIKjdj4yfPJk52aGx5SlYDKmP1IFj1UWRf_Q5zekWbuV-qvEu0OnsH-tBodDTrXbvKXWyE_wvgBni6GfMug2yKT4HSZ2vl6KuJM56wgQCMpAxgQBVxf2jubCV_74sL0TlFWLg9KccLZVOMiI93ZKPSVzgBg8bRjtIiFZ_njpDUtLh9Mp_Obf02OoU1MTjmSbEHNC-gXIRLIRJFVUMe6XvaEh_40IEewFuDrqSeHYgcxtX_4O2ebDR07q6PDUyv12z5TTXQk4Nh2Bs1SvWV2W-TxswpVZu4fp3-GSeKREvTv0jY0IFBSKe1JePxhrpwFyRH4GlFEJf0dyaIbUHN_LS5iHNpCbDDdK9uPFK43y4ByLIUjE0-DIltFZ2D0cPTUgzPcFQA9vTmkJhamr9flnU2ZELQ1oeAM0qdHqMXgYtM3nHPJteE0epaSnokDBL9MzTNG7uXfP7o41gHxOX-5oMqX6peBn2b45KtOf7Shr68Rq1qovPDCRKcNdsQCgw38rreD_YsjMIQn2iCYmnzQMMJeHty27J2wdxsxDIViM_jC7ASgwhOFttlr_xpe3MJc4uSVlp2iHHJoS1ZjzpQwipDYO-S_d5VLRyVqh7lfMEwd6kPZPG0f2uJtEbY17SyhZ9kM__xATycsq3nr-dj36OrqWVtCqJMv4dKNc171V0yWmWNXGe07JpcqTdfOGObccLh_Lad3wFyKNdlVMFvZpT1nanuUK_C5_YE13oGkaPY_8a2_7n4sYOatmXKJvex8oLvwAHp46ceZ72kPuH-tAv3jxuptCRohsBTyBiLD6HlCaZIzAxmdMKoivjp6q5cM_lM-MmbrUBe4Hqyrr0g9i-ImqWqz0k8QWSUj8q6TRCOJM9jQhUs520YmpOpx_scWjw_XZqbTX1BiWZ3jVqo62NFomaWgvcmy5JAssLykOeAmalaspy0S1Btm9uo2-V6-xbJbypngzx2byuC1TF45zpOixzT8II3dXyCH5NcJH_RPz6JOUm50LaKnuI4g64ez9xJvQBxT_TAk2KM0YLaMhRHwKxsqfwc-mGdtMFaEV7AR_MyhH2fbezTS4qt2b8P_nDP1XtAEoJdq_lHSn9RxQNPDlDt2ScXX633XdkZg-malWa6PjGYQJstfTUP6oCeCO7rMPAHA2n1ZLpT2iI8CC33hGddL8h2RA7Wkxv_zemMpLvLhW6uPrQ9Z5Jgrl_DyKXntw39DaAa6EiC50NAPIHqYiu17NLh6PX7zzihD-q6-dJPpemVZ7Ri6W86aIsOpVfAggbOftQSZD7lXpepIVtuPY9btmUFJqKi1zFUMOplSdXDLK_oyn4Ea77IT-u3kRCXmNEMcP-jHN3onnscXg6sXr_fa4hAOSB01W93Q5_eytiDY6T_p8HY0xd1HxJuYrjyhB96-nmjktlTTfMWmrfSDiA5Y5eP9Esy1vT6kaLy_dbq09QZIeBM2G9TWIltdEdF7d0pxrVlgTJgKuxySxHTUJapIQlLqZ61qejlciT7NAh6kTupfZyQmupByh0779gxsWXKSCRnJfVNMo2---N1C53wzvwB_6518M8hE_SE8Rx7xd7wgpOQmzA-KGQA0pNYMyoFf0paauu99d_YCIikd0n-dJS5lcM10dw8VwZwA2RHJk7pwmzQu9U8jWKghTJMZUYWeCTkL4NMJg2IisOigcm2GgeSFsuEe-J_ukI8r2gbwis8OtCuZuwfus8oOa_eBXIJwfoLur1faQmRkTeYV9_OoSsWoCboxFdnNgWCJmlTiVj0gmwFgkCM4Af_yrfnyVzIs3Y1rW7o-NM2YZKhIvos_N9JPv21CFD_RTenC2WCQWb3bI5uqshkYJ_RTWojaOpYLHX8Uxs6zvY5OiOKxsIfAOYAVHxiUHJTN6WCOvYcj4yKJc1VNo1CagUNslYhqRBrlQhnK-rozidnsa_MvOhaLoEG_DJKaWZmyHeTG06tzQ2N9QKpUF1cJa_prvo9UhBifTRzsKRNQpqU7cxG8w5egozRq5HCBs-mqLUkn8SXvik4Mkrpn4aIIcyFuffLeitnCNF4l_qaoZCgwKLz4f8rE4AKjPYwg9WFnaQloGnAVCjshM0ZtiVNFXuxIrAfaoBs-imp8H2obUp_9Ctq4VnuIDzlG1Lnb-UK2dWSC5Qw1om7dU836a96lVKXe30ZsdIXWncY9YfKb942RfYGlLJOFQy2qYqHIPg6YDKYGVoAN44q7rDlesuxnjR8rsXDvyU429sQoRzjXP2_e5tg27nV0sHOTGhxUOmkfLCQxfodWQA62GpMECM3uwjXSwKsdDQFD__DWiyDpoy37uKJtGgTEr3-rt3dfw4bbc7h3GyCHCWk6dmsWMMnX__egBjWXS3UFKhm1nHUWuHlf9X-YuDI6zFu_QAywDg7C4hLQjsMR_6-wdlG8Ki1sd54uC5KFCw-wOb1lA5pVMuxt7HBsTQoKv9x7eNU4XfB_sOwDxNbuN-AJF51BiqZ5dL4jB1-ylFcTPLLEMA0-zYAKIKHgQ2FMJTC6mYzwnADlF4WO3yVQys_kxcUPqQqMXlWx-LlDr3UESUNB3Y8IJPaGdmX970E8yUergMZ8jh751w38qNyFTtzN7Ln24p6EGa7Y3wpgB3wlI_YGizTVnDyooXa384AxucXBTGclhY5FAvUop9iJoI3Dap4Uzig1TT9pM2h9Yu_21qxNgGTXrTyalWtZhzDNpHnSMUzuMNr6AoyI8GE-IxhBsU_fNK6VySahmkLwRs9gPKHL54mgW0lHNGzRvMiPVAffnugCgLj1fduDy5Bq6Ym5sEkskB6xe46-_WCbwmNFbKZzQXyw51iA7rgASo5zVjUUIn0XScw3Q95daxS0T5MI1Vhq6b1UyJELjGDIEkkd_T5x-FnUE9NBQLIgXlLSLoPgvWC1LY69CMBqcrTMaZFZOTMgbL_DdKmq2PCBqck43h7rSmTq_brIS21Mfzu253I9Xq9zfu5X7IT7LoXFdkpMPNm6MQKWxBTvXhmiTEHgrSTeZyOMTX8V5Iwl4xHKm1GUVRVQFPgDk9G1U7jKKAhNytbiYs81GL8Q6WGAQ6iNJJBwgoYOyYfoFTO7e4WzTD5k1PFRg9wMnKNTYQASDElYveSypg3b2SGV02I__bEnt3PTcteK7ijK-HG8u0nOHExnhMj2pBvkHCbA6N-jWDg4utgE5Yf4e-XX1H_M0oRj575aRTIh1wmcggG2T45UQV8m3s2sgpTqablFAAGQumEUoJzsxwQYToTg3UNvVcNRNMht5cEJOBoWY9qMnll1lUv9IvQoY9rAtHOzeEh4nsjA5QEH2BHLHxrFRdwG9Hewxce3OYuu93qGL6m8cqV5KIVlwh7l05V7MFI2boU-3YZf22ldte-GWlGnMRLQSMbNVELyE991tVdnPXisnMjehKLwRilrwrfQaN-93VlLihOsAfxebm027VcivNGhpa2PRfl5HLbAFe3gMWrnLZsTwqsW7tcDhEAXmmPPNSnuab1K6D-H6NE_bfxQfYgHTtnQKHT-G8I-nlIlU_6wWIwH4ydGDXGNTVB6id3V7utYuk5s2edjpzN7cCDY7jV6i4f5dobcmUVs7BJZdMHA_ata8Dqm_4Suviq7YVPhBhjWQP8Q1f6MyvZ0dyf7ksAhy7ZpnZ9MkvzshdZiYa0VwnIQpDk7ayrHLwqILrldavvz2uBJxYQpeysvsAs8MyGcIEncefca1WRcyBm-7VN_gTm-itaTH5WtZsE2yefIxKXMi9t2onzYLO2xGQdxCYLoyIoamZOXV_Lqhoy4HyUHIDCSUptJvfRvO6YobBZHC2Ntuu-QIfa5ug5xZSIdLTcf5NVoJGQYVod-wtuH34E_w9UCVLEudZ0_QZlVin8YRkT8lOgWv8yZwS6JDqoWRVp5DMW5GiQNR2RQ1-iWtg7Zb3J2eUIsxCssKvsuGcr6LeMipOHtl_Hir60hxSutmnqo_PYZz41aSpBsAVX724zHSUCBdO9QuGZcyTuR5eT8-vOlAHIaTb6z-z_s3padoww7NaLh76XVTMK8PrkI4q8xDEvyRHcBdYsPOnsqO0XNx-hWJEGbiD2LNojIDdiwDeMEyTmTPi4ndXrgMrm4fyqoKxx-fUag3f2QKsHHysfP0rVo6o9y5v95QXtuNHoLrQrrvI2H8PEQ06E4ZJ9HcGeHxjykpfws79rukJ1LwM73TTWyCkcqZXPqRxafKVeQ5opS_2WS2_hPymTVQvu6yApxXBiBKyo3uHcuu1_-zfrEhDQCFxeid3jjoXJRZIitaULcaY0TEzMKzaIWTL7BjHijI7NOEYLfc3vr2xZyQ4AQe7qtcyBlj5T7rYQRUSTHSMnWLCcysOcIlXJ8_-JHT744Qnf0chBYgqoKBC-lr85BCGjS0jBtHtOySzEIlO6HeAA2tajifTWfrfnIzEhN6hqPaGSQEfld-VUu5JhsNgHoR44EKnMx_YipRzBvHVewri4gwXDTLzviD7VDBHWsNC-upLmUmd3JzAKoZqj-SXpVSVp9HIASPfRprrfUushWezTeaJn5P5UdLvvo_aGDUknsRod_tzZRILZeFVKIM5qdA00P0dZQuy2wwvfATfSBEiej5lKLah2ETphu-SLv5cwFS1yY2mipDO-fwiIqV1wkt0iOipPxwe5TlksS2kq-GZMRcWbamPAVaYHtvXPNld1pWqdZ0EHITYX32ORZ5RcQAUW-ppdA_4uIzU5xLD166gZM8EF__0xFnbHo3TxE-Kd86RREI07jczBfQFumGg95UdYUqE3UHS7Q17lW0IgTT1GzqEXYkhSuRsNeEAI7CJkL7oHvDT5NrxYeIVUF1rLa6_Y3FKoe_JI3WYTtxX-7SRGgDzC0G-wCh9Bw5q4VpTTbmjSQdmUPStzjbxSuj2rNQX6fnsoLE5EzUK23ZmnXZzOUQzR2IFRGVDQvqPk5pemlebie75AP-rHU0uNxHOn1mpA-LtUgpx9aZjLB1GuAUMfs-blhOmtLAIPybi-j64uSxzNnixctg5shlXNbJigqwSJCYxNbK0qV1wBvwDT8h62KiqF1EGuTLr1x27Qw3MHBOcMdbSJknv_7C6R-ILQ7VIVkC0fmtUkFdqOVFzLQp83Sr7vnQ0cahiaXX2sesAwt_Nfb3iFQ5prjD-vS3LMtFEq5-77O2DZOtoeD0eMN_AJ_dBOJtTiItQfp5hS_iHqGCgG6HvmkYdr3WFQAidvNFRoh5kp_rQVgyACn83ihleWh2y-0bWfvJgjRH8fyAiPwdVv-DPzGuwjAXVNEKyJiccJYIKgZ5aOLnxOCvikhjUwiX8ukjjb1qiAIvcb2zPnVeC-_N8v4oVA93GxEY_jKpXIbCFUKAr9gB_NuU_5CWXTuLBQom9M0wlMCkgZpVltKaJxtTsoc-UdVhGHp5NWw31Hnl_aUqOoeA09FV8lnzekIPEmcsPXZERtiTtjxavV9FlLUzjVClSjwzN-7uV9CwoMicSMxxbLf5h8nSuF1AamNV0cAZAiIzyxHnlDzB8DphbQjWxDCU6R3C1Pq8lNHe3UY2foBoZ-l60bEnv4uFxiLhn4xL-KouaxsqbLwkODJZTZ4fZWYkJOTZYmi-uNGFk4ys_LlLxddHfKZ8R0P25RnGw_MR4b-9iLNu0vJPZqUX3kN-xakL633KhbTwE4RD_4zuTBEAiRRkms9iJUnWxYsimslP0Y2FnKEVJ_h2gcE3FfvwkskTf4Ot_WxRtlFL7xiHNU1_TSwRF77mzjPP86zqNps6teQfmiBnTucAFnzeCctqS46BpaZpGTmGqX6eaJHtIcPWEX2RwfHI1NQ5IuYbzP2GYjorBEblgFsmegXQlFBgnWOw-8HYkmRFg1dIY6ncsYzbG7twnOyqXlXrYYjDXIqh7Zv3twBAwjELFyW7uuF-dZDGKdT_5bFhSngl6-xY34GPp2ttpAv9KlSSrsBoxoyZNUETs4hEf5krJCncK3sTNZDCXtzH6wNaBfcUAztNL0t6_39quPWJQh_J5k1451sSTFeiHuGfnokgvVSX8wfZPaBtskLBVdhAy3R1JNqFz68g6cyX4g-B9KaoCL8JbY--I63H59U89rEkZOLhmU5LP_M-FclhIPeM8z_FnOwCcsSCy4EPR_LHU9xH_W9xpp-vbtrnmVTjCs30h_6-UE63FBYiWbmLpXIp5mOnv305NjMsNSJ4yaPv9LM8j4TmlA2wf6wH8gwTndGGgSE0fVjZwZIoETyqOI8VSBTwih9DN0TN33RPsS6m5hPSLoTC73neXjTbOE4dngyR4YGkXMCYfHkkhZYphblDzny--7_BpHhVhGpyHm7JhVSQ3CsqUbPkY44r3nu0Yq1hFGLWw5SEqK6zRpiPlw3jI61Kx1k6h-eWkG5Qm3V9gZRUuoBJ6ogK9Y4a9lxL5PxNah5OSIPXyuTxG9Br8aoYt8O-94geQp6ldZWJI-gx1yx92FaM0tRj-1XK8qNkkOEh7d8Rd4AL52tjkO46rtOwSql4FuZhVxrx5KJhQ3HuUs8DQmcqMuzIrL9hnHlAQCuHpCAGV6DzDMfC36fA99CaxXB1hbeiV67oXD2ONNH7w2cSDzFVICv8_CGsNcD-MZVWpvCQHgjCjOSbXdlxTv0YaUwy4jYAITvxAUDnm90rCYOgccfOd_Wvv17TZIIdp7gqEaASJ_8bO851qjINI0fW5pXgQ6z4h-tIbSbB5UJGnX3jmdBrCqJ-Ghr8Gy5fbSLZIwt2SLDQgq_pYcnrr8IC_2_624B5lhJmAh3Az8wQaGOnD0LTvaiHrSGAGBCLeuVg4jGS2xDk0u7mj5fUxZBX8XL_KDKQ9h2NeZmBexR3yHm8ZaJAMpCMRA-XjxAbRkC2UpouRBMloExZQHKt8H_HF5iBbK0kIzJvd1gz_aC-n2xBoN3uzrGLvLWS6NJegOxXouR9V9AGzujrA-4S9mbvVm3MGy_hTPb9fiaECXlF4ObWWvJc9gELckI-srKnElnPECZJ9nvlhoknMXKkCYbm2-TAkdAdl64uER8CSxg1q4LVAZv62lK3w55FCFpnM3Yl7IcaEc-FrC5COM829uTWMYCrapqFjeNJ4cihX0v1cd3lB-ERJtnsN7bBdTle_M1FRKFAyw30pyI9E-X3HQmySsR-I3HEF_-DzkocMxYBMuoHrm7zm-oEvyl0O71xwAzNJpmdRQvR6nlYfn5rmk-DmcxlAp3m77b9z-iGsvFNBWVQluDM0EXjpKndbS1uGADAkcJY0xlf7nD0mI34WXNZRlLj6BA4o3XT9x4jffOq23K0-eeU5QA5ZQVZPydGPhsb5ivkY05-LjfhuDtjCJ6Hw2pJw39n6bEvpdCTTuf_gjdyTvMGT2_0I12dy29Z6eGfQeYtU5XBnHdNLUe_pm-wULgYXcIPraF_62okINfGvMeKQYafBaK7BnUDQDNPoFjOnbh5onRcD63L_fq3vVpL61EeRz7bU_RqOMeC16v7IS719ZqKh2q2JjXDNteQ4m-GU0lvc0NbxwlAPhMoLgBKGsj-_VmCXsmkxW4ShoibB90W0Cz5WRUH3geo_c3MBRE7zixPMHB_I_JTlM9j9maqOr3N6Pp6_c0OrvpNlp-EsTDXUHTvLu7YUrLJsbxwb8KyIipcA5xvncOyU6-Y2La9zJNy3G3QLKowW2MuK68tx9sJpWTOAhRpBF_n6BqI5lAw6hfsvNxK8s4jcaj7VlDUJbEwYgiv1k4Ip6Dg58DbICB3V-1raIoLV9Wv3OBafS0QST16UTgwMpNgLXhAxuYGKcX_65v9DjscZm6WSjP7TfhuBhaMRZO7qrZ0r6VLKJcsCwYHdTPUvgyW6__9zysjXnf3baGzG6PZNF8HT9hx0OJVPipbj1PFnTktx4ZXB7BHEKbEU2iodfjFaJYEdF9-xwTf4lNJvU_aF8UmJ_2CGBETXJGyTqkdpd8UQVwhrSP52-QD1mY_WpUlGPBKYYmb3r0zxTLA1bs_kgutCc1L67jMFIm4sVBIsUuNh28-gX8668gte3hJlOyunNzumvE9odPULEvjKdlDj5L7MP90o_4JMt7hAiQmLrN2EJPCR-wavgWbr4zIBqG8yp9mIukz3uzpVLvw6BXH11SGaisdXAJTh1tVgI8HyKpWX8tqTP3OsfCi_sOymPb6AQ39B72xb-iehQo8Tn7jrR-4y6rDYfJPed_yAoL5PjwDBXNuXvqqhcc1oFnvHoh_hBh-Vw8ahRni4__XknkXqu3LojI3Mtrf0m4Ri5cnTV64dP4Ck6JojcCet7VN6SC9EYnHCaTPC89y3-qAttemW5JCnFmmb9pP_le_dtsJnvIGOqSsFL_vGmv-K_PUuGOY-54K-XVu2zm8218e7gjnXZhWjoEGFPA2wvmrb_ay6CTl028r3V0x5uIMZ6jsT8B8b21NWKhA3dtuF--qJ5MPle9CPhNftFLsmcyHMfHIDEe3hMQgoikxBjsstLFT8uV2G0fcMm0qYidHbcbbwiMaUKt36eU2SqhXGm75Cg_o3-KLMz64m8Y4n499WqlRidQymknofzHOclusgasVeI0wQNAsTRRbI2_Uv7mr-YvTyz_DpYaNeXtdA53aiV40MfMpOoZbY2XNt1hWJIYEHbyU_Zrz9LsJnh6vYyro4920uqhuUSo0helVv4DBurc_bdiQ7_ubDQQ-KOzzEG24Y91aJ8XNznbh58V9WHfgcI_EcepR2Mn2Co_pnoWHOts_hqiIxGSmIYBA6APDxB9h9PaW_2PcDO0QmtIBdehrD6cZ_yypaZoXzD0bQOT8UHP0KRAKTObRRSyhf0uMzE9tA1CK8xdhFnnni5MysV_G4OuQRqRvoHpTBOVSw4Qhld6CfDCGkYj5OHLpwQWbwQedr-mg8yuK5ZNKjYAbHEbXeEEq8zd2SBdpLayj7_q4TUqAobf2d47hWXzeVk9tfcseh8ZsfSBQRjyI6PZzVllN-UIJA28VLrB5k4DeHWZ7lI_bn7Lzh16_yluTT7fa5SKvd-lU5IUERssAj4w6iUN7SLKHID_QBaZwH4k9IVQ103lRxwyCGesBmhes4F3x14N8BzAav-jCIn3usxG-I2iOVdhRUY-OkP6H3SSqnkmRWBgtKX-YB94UJ0-WpGDpnQCVjcWMYAROUmjArNKpnl_ekuzDQ_sMF96eOf-gCQ1l7pxHSaDBMj3zf6mhtQrfubfOpK8CkpoTsAEdXuia_VALnXQcPvNO0HR4dv_fR72HNm4U6yJrDJJwip9ivii7FoC_pGQq9wB_N1slrSrdB9JXY47vvM8yRIWxFlOthd9yc9Ig2iNkrALvJwbcq6tJhKusOrWvatEiJqJixrT64R3CBbfMHTbW-jqfmvK5lJBwyWL2Ao6MGzVykAwUtEuVcAE8Db7S2uDqpOFCa3MsPyyGLLRVSgPZ_lv_QdRqlFSTiQ1RrcixYuAChN7ryEG-ZySAxiIr-0vE2Y8dju0pxNfMReWIcWMa81059FJw8_iU7kvDahFsPNWSEWvsXxBCBfdiJVg3xgMyqRTMk3PAIeuDiyPYsOqeZ38TIBBZ1jKUo7WkiVByo3duwU-9h_SfCnz5_nMAtieax0G71ZjRqLwFBd4YNvbeMlqUlyq51VSE1PQxvYPi7LHLAutBX6wLKWhU664iWFd2Lz8z5CRQILEXWQnmD7w3Ad3ZNaDCQ0IwlUcaXaBc-ULa_lEfx2-IEy79G51qf6J_JGvkBJBd0DKwmxo5fj1yLlYsX2xzpkzK5D3Xu8eLG0JX4gLKs030Punn4XMzQAKcZnIBoyCd2l_g2l9QQMRQDEzkiBA5jIDbhGbfs787EAKcu8ZApgYBTVNqp9l0QkiiIrjYQq7wfAP8gBWjYK1O5nKlG0Z20DdaeYlCfGWKVhrTo59Ukqpp3u1lNc4eSpGcd4y0JIU6f6iHswLrI0bI-5tGqLhQwevi_-kKTldY0E6reqIFUjYQm3KDzKFQkmOu_jyKk2DDYYzZcLULKCg-m1mQWkEanCZdxyj9k9pzKkzJ_US258X6rlMJ1sZQhFguidX0A8RGWqLcBwsjIeECb6mcLVpESXhZbLZ5e10I9_pHhzbvWJRlAo6484bLiRHH4bnD1qdDUoZTpTCaXVEaNMbDPAlZnfVSR02eDnDIijdRuLbeCHSuoQfJljTFMU6Li2T5USvSCcvW0N7xGIPb3eZjnI4DZznTuaicRdvdBhFe-1meq8IYzqA75XDZKcpWP0BmFspeI6zImN6VLBCeK2Yxm14C5D54L9Q0UAHnyS9v-grOxyGMGunzKOXcqWpuw6EUBSP_im72kSjCoDbWk8h1I8iIY4iO3Vng2N9bHZkz0d9RwQeH5Ztuocc3ttXUtI6zvxZ9xAo_smjRPZ-a-sI8tFnkNW9obdbi1HkbrUELclk1pwua9LWFBgRmkf5oYPfEMhA7gf5F27VU-hnMCqxo8CjRQenKtPrEn40dq5Nhm4RoiBQWThmk8EDh34xRsJ_bSNoNTdm16sTZrV1pv3xXZvjM_aFLOcO1TtZbBbBE6w6nkL7cRSw-W5ACLzvWDCKN4fQTYIZ5poFZNCcnHocAnuXx_6QaJ2x6ggKkGTvW3isZCx3MbBjhiyGJk-u25tZLkCibLzBYiTJEJdJ2RADUtyFGNWkX4hs4sZ8srkQmrjy-JECSDrpNHclaBHWLvd9wjTWtqUcpGXzr6u0lQU9-ruC3zZJ0AWnbEJctsztdprKVsimotgkQsYMcpDp2RFYIWLQ65eFha6-OcZbjaAdHsmloriiaclBBnAvql36UjDO1LyLLJA2XW1Q0coZJOPX8Bg6Uf3LR--rC6HwSa8UesGGVzKbtAFkrbnpu3Hww499Au19WVtSKe2RAB8FLxtouPVBe05pB3GDmmPL2KVyIGDFngPlVHihnXKw344XlQwF1YOur-2oliz1TmozqRHqXLYmsHMjiZihi89FgW1E_WiKzIpluz7vPDIgtMzkVwqD5NOWVykVtqcXg8WANeWc2UsjWFS7nnOufOzUf_dJsdb6mcHqUwIQmAqHneIvQzm0V7B9MtjYYgHt7YvCVAcvpH40jJ7WRolMCYnEhVLWE-7sbLKpqEQXqLnJ6g-hqNR4HWaC0cxvPm_hguy9OvJUwAYo7riuHMgkPeFNtrIdRnHfsA6ERI990d90EiXTON5dY8nm-ALnY9rTAvbu7JFRqOLErd4YdaMKzBgQpugBrvOtjCjOQJle1OlGm9AcjDQiX30MmYB-30HoZK6wvtoc1Zgr3bbB5gqXlg8nhEvNMah6S8JmD-DP0hcjOOrGfLT_XMsXR-CpS6_uCH0r5Im-fWmaboIarHThXzqFuPOVW2JZvob8_0Fw_4Gqi4zw2Bu1MwLOPD9WsQSuLAuptTPUEAUc0IH1aSf3nhslaJ-rl7Lh4TN07jb12x7ukM4FuXxJ38dPqdX_CgP9I6zFqYrzyL4TITQYE6B9uwAmTuAaDcx5VxIq3pLFuzrsdgjbXUhpqy3zY_gR_idhmiyLa-9sHdw8B2RAT_GPDkXyVmCAyAAOoUnP_-Q-EGsN0pm3g-8UnH5ePG9YTxeC6bcRZ79mQbgtGpK4aUMSG8fnsi-aOJtwCrPE5IcqC96le0_DI2xie8dVGIKuG4g_DVKGw-Ylk620wgSOI3fdwU3ZoJ5UTmF9njrtpW26H7jw81tqxj1l2fIFCYLDga9kmNdwJqtv4twd62e0oLOaiNl1BpwKs4PoW5iTjCZIyeHd5bNUBq5EuDhowdkxav1XJGX7VdcFrkHNiqCgQH--poFDpX1Mh9tW6447to788G-gDSNL94E4I-WwOa-J9tgEYFvaPgU0drYZ7bQNwdkMBaKwdVLHPctLr7o0K5MZpWT10cYtf7IAqsrsf23Bfq_jEMqzZBboHYgdOXtkJ8JqHJJoU3h9krQVgQym7w6opMMvj0yf7mfwaz3y7VR_XWraGEd3PgHiH8nhfDL7DaD0meGgkLMOc2fdix9fI_HrPRZveVAV9SuvpLikpT9HPB5q2ubiJbjqyElo6Y5JuVaH1OKedoAeKWeqiXmh1mc4sHw8GiWuIBHgilIUy8lHnvHb3TOV5FofYVZ1CG-cyCHAlS8tPktukLN9ecnAPT957mJGnzzeil55ra-E_aT6Y_pFaP23s8laSQzTCaEzPnYrH7EZR0EgkFxbmEIA9f3-In2SnzgpKrLcalfkiQ2SoiSvH8C-9eL2LNjG5sP1XeB5E48hHWlo8sQzshY9G2J2_czcAMNpIILu7wGUWobiAJ7IIL6128cHnIc_XhJmojDt9eF8EHdshHJljY9piVW5JwvfZxqdb9hJcvxdyF2k1iWWY83BhYbIhOeZzyTRMv1w94CatoyLPVYh6dorkhb0dlP6YsHTzW4UdExrFPnF_2N-Nr7d8iss7NK5kYylIxrL9WhJ5Uq7KNvUyUVaZmRoo1kfK8wPalBiJKW7s3xNqOGf_M1ISfyPbobRnDDRBb_uEQBCppEfLsW_esrDrTz0g4f49s2_tHxN9aU_UQ1czSNqh6muVfB6CVMgEoKaVC8g2Na9AwUIwQzC62pV8NTi5c_uhKslQs1yRK0PpTFCJeP50Cuaq5ZPK-2LTiOs8yb_3uplfRRh0VO_OG26j86EjrJAQJLLEEaJ6lV7uiuslQbRtR7vvlsV_BNf9bc0Xt8jMTk5U3fc5TFlNcdTBa6VTHjzTsUCxSjJThBILifETRYVm3Jspi43trv-KrusKuX0PrFEJBIr_0xgPyLouXq7YMFhChw1fwG__Dj1QiR0yAaAXSEBSrS4wunTCYNL50X0bGr16D9PlcM0tk4oLjDetm1Go5NVINYqDjIL_sS8PfK8fBu1uzqneGhNr9pUlFzS3wNh__GZxFr1oZzqO7nIP5UY0iADrcFiti66QJR5DTDELkCkrO1pCn7Fc_AA6A49PLqwqBXZvlHGeckTIjaudGeOrN78NcaXYz0JI3Onz-801DSfDSIQMW4DbE0iWFSedK9Sb4uKbnHuKUTiE8CM_-XQA7Qi3JhrHuh6mh1p-SRlQiaipDpBGkEkPrYnnb59HM0BxnnTelATo3H4FqED4O1-rbb9hd6sf6Fy3tKMjV8S_0LsUoNpLwO5eKzyDrc4JwGuvoi4zbgC_3kA_z2f0v7cRPXIU39MvR3zc-evPuIF7PuaEHgLiVRA9C3JeDFSwGdNQnjko2Ec7f7PzYDVw96wtcaYtJ4UeIAE4aQlnCtp6ZkZ7Qc0sPcAs81ZSgWrOweSKlHvI5GBAG3rjT-u5_XxDFObNl07JYj3rjpZWoB3jiDcRIkvaJ9C-VQF-soRFpx1OQe1UA3QeJZ3Mjf71M0yXhMa3L0wHrp0CW-xli0GnI0rKHjIwHhUsDrC18ffrI2xljD_rQlcKgEvVIycByJD5Rv_7TP8WvbJGLXKxxbD_aPHK0oiUtbIEQxo5N5jXsM9CRvED22jdOQbHsXbo89ZdKbx4BwwN1IKrnk9Muz_k0_S3k4ycsVZIHHR1YbrExLYwDmd8wn5izX6KCfKlQbJKy6QUYdvMkwLBFPResp1o-PO_d9zdpkSNE82rOIgkc1ORxyRd80L43WwgdRJDPbUCYOI_kREuBIrS485xZr74AIIFYaGKQ21wvhQY3NfP_ViPXyBevi-ssGkwP_fl2hK59eoxEaEIjfeUVaE08AQiqqzFWR0c_e7TeXkkx8VgjEqDguvMkp80nMCOR3cF08-OwQOPqCIHdg8X-JV7vywSFJ-sM6MVahYH33gOcS4yA36FcstomVgDBa9WPqrF1y_j-hLx660IsqpjLeKTI3cWpmTWjuIh_S4YK-QoNdnoW_-wfsLrg7VHr6SncmvEF6V2_42KmGUZHoMR1FdUupIpI0p0wYNLPUIy-XBrpWmJG842qmfIrM3ILFOtL8yysZ0xkCRyOCa4qY3ZwE_Wxdx5-qVwNLu1TgUUDVrSbonlRhtbQYPOV0t0-Erhn09ihxLhtuDG9_O8P4_ftfoYYhfhLc9HSedinB52YIAajICGf7wyyqRZzxdENdCl7D5rEAzBMKXX5oa9KFx6lm7oocqZgq01EQzSXdiHaENeDZXeVwtWzVxHTVM0QWUm1csCqIR_h32srfZ5-X1NsZQOJISTynsRNBhX56MM73ZEcWlhELfwjKqPFuzWn5om3Xa29-k-LilJYSqXwrVjDlQ4bXm3vmRprd2mjhDMiXJtmdaBKFt7pkiTYOL97ZnkL6oOIUlzoKKP3mO6YK3tc0nutT_H9Bd3O5g48AtIY773fJmNrlZ1BvkqBTd4GLfy_reJ-hEj3xBevhJF2NwaEWbofQPS0NffgAsVXc1GCF2atoBIDReTHbKmjKJ_eR0T09SQipQ3I1Yso-cZjX2YNcy5ut4OkRvjKbuTVPNB9tu5InnFjqF4kbKdLIktoaSZE83g4OlScPer_DRBz9MC9ZRfGVywF9WDUHi6SRFMQrv6e5TqZ1IMjbw9BVUTFj5FNol38eIHJp7cqOFnoYOXM1IkrGFXEYX2ydIgDu1roiagAn3lQhcxaLw5cHCiRG6XIld6d2stXtTC1ttEiKH6_-UzbwU7hh5PrV0kJZmwQfo2yrEEQjLD3ppz4WzvfgCedn3_o1LczkbZ2StcXla_b618UcymVrJCO9kgJYXsHD9ATyFtpmcm5Ts1gktdRhVC0QBfJQQeDeR_dFG0DyGSfVWSwX17aMS-l7tITgXCf6JqezkwKy3E9REQZxhyypJt2faqcMeb5y6VxcmxzQvjPKjslyzCq3LGm7B5pJeFjfXRwoykY5fSEoNFG1ZqRCFMs6x0V2XfcaJQiurFCH7cOztC2Mk9nNkOeaa3ZT2bk12YUsfn9ukYf0llDDm_B2PPNq221bGnzlnUiyyqn6F3gndOhzqPnNP0jbS6fkne7wq9FI5fERlQB3omV5dnI9AUIfBLAHFZSHPUFtKeWPJvF-c47YPc7RVxAU-DEhhgqlXybe0f0TK1Hjz6YIjiq3Yq-mt-gTGKillxiIlpXJf_xH-4jVsoYfdYxdzPz6qafqVmf_M8jfVhFHebwb7w7tMPvag1XhvRfY6I9wCbYnjb4FQy1Aa3HJ7MMgRc1mHVGStwIN1T7pqaJGiIPSVt8EHWHdZjU0bCvxHpUvBGmDVijYOUrwwV4HQzNyCva5DNBBqESH84xlBRb3H-RpGWH8T6Z0kropAfV3DGEFrLD20O0oNBdYqZHwaMzApN7AYk0k8Qbhf1UBniNUIFbEs4fP5FPE6ThQYRfHtH7hDLu2k4f7QfSn9NE6FNpDpNymg4o4GVmvEIuBusjzKvC0Ox3cL4yg0gLb4O7AOaShLzoTdCkOKwwP_PBOTu7-GadElVnRCu-8hoj29RJNONpJ4Y9SVkWi2xZOgGDZ7aZIYdOAuf6zFaeXH15ZsxhgVtU_0jotA1s3xmZwBBJ_C5U_HmQF-nyIuUdj7H6mDhhf-lwz-nY0hZVdOSQJBEe1ws2JqvKTpI_9Zs2y4nk32IPUR5w8y0oOwIV5kGEWQjS1IdCZe1qHBdTr3I0rJGpDcx7pGPvSKayPWenG6-kyGXdqPS4kO_zwFv2tIPWp1o0Sw7CsSiyjbqkbh7aDzTz_XDyQPevawYQ_zRoAjstBUq0PPebWd6EP7SeYpy02I4WZfSM7I_AwN_BtLcSOpuaNCUv2vWXm_tyTbYuEJVlW9BK5nX0RjBeTck5mjfhXgGRQpPNwXQZcSMFvj9mJrTi7wUQKCj3NfweYhzs-_ju4MVApOx_knV9i5bqugNqMYycXoG0JqDx9MnvxWGRWCDpILFPtIRgufuDptSI9ccZfoU__139IwcTy8hAPG53glQij7Olc-HICwdYvmwzmLATtUbf4SO3Udm2BDR1hnOGRi6TvCVUY7CNOu98khpq2GFvcudCPu_Gx2gIoQvEngc6n3oXjueXdyuYgkNxN3sfPUPQtQvoDCcFPMqTow1JZiTbHSR76ADBNDGINI0XGlAfX1Dat2Q8jeZNyELAMuX25AbYhcNAJAlTVpmXtRWwcmU6qbCVorWoo-yuqRVvcY7IqN3fqWTXexPmn8jJ5avimV-VwKsC-PzeW82tSo0YxLSigVRZAtwZoFygFJg4Fux5h8UnSoojG0sMx1sEVpGYxgTqrFXdzg7CJP3wpQMV4i9tQtFIky-TRrB9cSA10MavRJzNlRN6jjvTwPEy1hBNgZCrBw9yCFIVlgxOqOa7vcFEW-Q";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(`
|
|
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(
|
|
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&&Xm.test(_r(c)??c)),f=xi(a??qi??Ym),d=null;for(let A of Si(e))if(d=await f(A,n),d)break;!d&&s>=Qm&&!br.test(e)&&(d=await f(`bash-tool: ${e}`,n));let m=Rt(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,
|
|
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<th;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"),j=A===null?s:Buffer.byteLength(A,"utf8");if(A!==null&&j<s)return{output:A,filterId:d.slug,rawBytes:s,filteredBytes:j,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 j=A.filteredBytes>s||s>0&&A.output.length===0?t:A.output,J=!A.debugBypass&&!d?.preserve_exact?Er(j,"minimal",A.filterId??""):j,xe=xr(J)===J?J:xr(j);return{...A,output:xe,filteredBytes:Buffer.byteLength(xe,"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?nh(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"&&(
|
|
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 j=!i&&!d.preserve_exact&&s>=eh?Go(A.split(`
|
|
86
86
|
`)).join(`
|
|
87
|
-
`):
|
|
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=j.length<A.length;return I({output:j,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(j,"utf8"),debugBypass:!0,...J?{droppedTail:t}:{}})}let N={...l,cmd:e,exitCode:o},{text:D,droppedTail:M}=gr(t,d,i?{...N,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:N),H=!i&&!d.preserve_exact?Er(D,l.verbosity,d.slug):D,B=d.on_empty&&H===d.on_empty&&!H.endsWith(`
|
|
88
|
+
`)?`${H}
|
|
89
|
+
`:H,Qe=Buffer.byteLength(B,"utf8"),_e=B.trim().length===0&&t.trim().length>0&&(o!=null&&o!==0||mr(e));return t.trim().length>0&&(Qe>=s||_e)?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:M})}function rh(){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>rh()}var sh=[[/(\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 sh)t=t.replace(n,r);return t}var ie="[tkr: secret masked]",oh=[[/(-----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`]],ih=/^-----END [A-Z0-9 ]*PRIVATE KEY-----/,ah=/^[A-Za-z0-9+/=]{16,}\r?$/;function lh(e){if(!e.includes("PRIVATE KEY-----"))return e;let t=e.split(`
|
|
90
|
+
`),n=[];for(let r of t){if(ih.test(r)){let s=n.length;for(;s>0&&ah.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 oh)t=t.replace(n,r);return lh(t)}import{join as Ar}from"node:path";import{appendFileSync as ta,chmodSync as mh,existsSync as na,mkdirSync as hh,readFileSync as hE,renameSync as gE,rmdirSync as yE,statSync as ra,unlinkSync as kE,utimesSync as bE,writeFileSync as _E}from"node:fs";import{createHash as Bw,createHmac as zw,randomUUID as ch}from"node:crypto";import{readFile as Xi,writeFile as Qi,mkdir as uh}from"node:fs/promises";async function Rr(){try{let n=(await Xi($t(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await uh(R(),{recursive:!0,mode:448});let e=ch();try{return await Qi($t(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Xi($t(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Qi($t(),e,{mode:384}),e}}import{readFile as fh,writeFile as Jw,mkdir as Ww,chmod as Vw,rm as qw,rename as Yw,readdir as Xw}from"node:fs/promises";import{join as dh}from"node:path";var ph="settings-cache.json",ea=vt.parse({}),nE=vt.partial().extend({filters:vt.shape.filters.removeDefault().partial().optional()});async function Ye(){let e=null;try{let t=JSON.parse(await fh(dh(R(),ph),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?vt.parse({...ea,...e}):ea}var gh=512*1024;function Cr(){return Ar(R(),"spool")}function yh(e){return Ar(Cr(),`${e}.jsonl`)}var kh=1024*1024;function bh(e){return Ar(Cr(),`${e}.dropped`)}function _h(e){try{let t=bh(e);if(na(t)&&ra(t).size>=kh)return;ta(t,".",{mode:384})}catch{return}}function hn(e,t){if(It())try{hh(Cr(),{recursive:!0,mode:448});let n=yh(e);if(na(n)&&ra(n).size>=gh){_h(e);return}ta(n,JSON.stringify(t)+`
|
|
92
|
+
`,{mode:384}),mh(n,384)}catch{return}}var wh=/^[a-z0-9][a-z0-9._-]*$/i,Eh=/^[a-z][a-z-]+$/,vh=/^[A-Za-z_][A-Za-z0-9_]*=/,Sh=new Set(["gh","glab","gup","hub","gist"]),Th=/^(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,$h=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"]),Rh=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"]),Ah=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"])]]),Ch=new Set(["-C","-c"]);function Ih(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 Oh(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Ch.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")||Sh.has(t)}function Ir(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&vh.test(t[n]??"");)n+=1;let r=Ih(t[n]??"");if(!r||!wh.test(r)||r.length>$h)return"";let s=Ah.get(r.toLowerCase());if(s)return Oh(r.toLowerCase(),s,t.slice(n+1));if(sa(r)||Th.test(r)||qe(r)!==r)return"";let o=t[n+1];return o&&sa(o)?"":(o&&oa.has(r.toLowerCase())&&Eh.test(o)?`${r} ${o}`:r).slice(0,64)}function Ph(e){return Rh.has((e.split(" ")[0]??"").toLowerCase())}async function aa(e){if(!e.telemetryOptIn)return;let t=Ir(e.cmd),n=t&&qe(t)===t&&Ph(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 Dh,chmodSync as Mh,mkdirSync as Lh,readFileSync as ma,realpathSync as Fh,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 jh,sep as UE}from"node:path";var Nh={"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?Nh[e]??"anthropic":"anthropic"}var Hh="stats.jsonl",Bh="stats-ledger.json",fa=2*1024*1024,zh=3e4,Uh=3e4,Zh=new Set(["n","g","e"]),Gh=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 Kh(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"&&Zh.has(n.o)?{o:n.o}:{}}}catch{return null}}function Jh(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 Wh(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function Vh(e,t){let n=Wh(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 qh(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>Uh){e.ox+=1;return}if(Jh(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):Vh(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 Yh(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),Bh)}function Xh(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 Qh(e){try{return Or(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-ya(e).mtimeMs<zh?!1:(ga(e,{force:!0}),Or(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function eg(e,t=fa,n=fa/2){try{if(ya(e).size<=t)return}catch{return}let r=`${e}.lock`;if(Qh(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=Xh(e);for(let c of s.slice(0,o)){let u=Kh(c);if(!u)continue;let f=Yh(u.t),d=a[f]??ba();qh(d,u),a[f]=d}let l=s.slice(o);da(e,l.length?`${l.join(`
|
|
94
94
|
`)}
|
|
95
|
-
`:""),
|
|
96
|
-
`.includes(i)){if(o(),
|
|
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 tg(e){let t=jh(e),n=t,r="";for(;;){try{return gn(Fh(n),r)}catch{}let s=ka(n);if(s===n)return t;r=r?gn(ua(n),r):ua(n),n=s}}var ng=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),rg=new Set(["-u","-g","-n","-s","-k"]),sg=/^[a-z0-9][a-z0-9._-]*$/i,og=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 ig(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 Pt(e){let t=ig(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(ng.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=rg.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("-")&&sg.test(o)&&og.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function ag(){return gn(R(),Hh)}function wa(e,t,n=ag(),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?tg(a):"",m=d&&d.length<=Gh?`,"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{Lh(R(),{recursive:!0,mode:448}),Dh(n,p,{mode:384}),Mh(n,384),eg(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 lg,mkdirSync as cg,readFileSync as ug,writeFileSync as fg,renameSync as dg,statSync as pg,readdirSync as VE,rmSync as qE,chmodSync as mg}from"node:fs";import{join as Ta}from"node:path";var hg=96*1024,gg=500,ev=168*3600*1e3,Sa=120;function $a(){return Ta(R(),"sessions")}function yg(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return Ta($a(),`${t}.jsonl`)}function kg(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=yg(e);cg($a(),{recursive:!0,mode:448});let r=JSON.stringify({t:t.t??Math.floor(Date.now()/1e3),tool:t.tool,target:kg(t.target),...t.fail?{fail:1}:{}});if(lg(n,`${r}
|
|
98
|
+
`,{mode:384}),mg(n,384),pg(n).size>hg){let s=ug(n,"utf8").split(`
|
|
99
|
+
`).filter(a=>a.trim()!==""),o=s.slice(s.length-gg),i=`${n}.tmp-${process.pid}`;fg(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
|
|
101
|
+
`,{mode:384}),dg(i,n)}}catch{}}import{existsSync as Hv,readFileSync as Yg}from"node:fs";function bg(e){return e.charCodeAt(0)===65279?e.slice(1):e}function fe(e){return JSON.parse(bg(e))}import{join as Xg}from"node:path";import Qg from"node:os";import{readFile as Fg,writeFile as jg,rename as Hg,mkdir as Ua,chmod as Bg,stat as zg,unlink as Ug}from"node:fs/promises";import{existsSync as Za,lstatSync as Zg,readlinkSync as Gg,realpathSync as Ha}from"node:fs";import{basename as Kg,dirname as xn,join as Jg,resolve as Ba}from"node:path";import{basename as _g}from"node:path";var xg={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},wg={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 mt(e){let t=_g(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(xg))if(r===t)return[n];for(let[n,r]of Object.entries(wg))if(r===t)return["hook",n];return null}function Re(){return!1}function Nt(e,t=process.execPath){let n=Re()?mt(e):null;return n?[process.execPath,...n]:[t,e]}import{rmSync as Eg,statSync as vg}from"node:fs";import{join as Aa}from"node:path";function yn(){return Aa(R(),"shims")}function Pr(){return Aa(R(),"fail-open")}var Sg=24*36e5;function Ca(e=Date.now()){try{if(e-vg(Pr()).mtimeMs<Sg)return!0;Eg(Pr(),{force:!0})}catch{}return!1}function kn(e){return`'${e.replace(/'/g,"'\\''")}'`}import{chmod as Ag,lstat as Oa,mkdir as Cg,readFile as Dr,rename as Ig,rm as wv,unlink as Pa,writeFile as Og}from"node:fs/promises";import{createHash as Na}from"node:crypto";import{basename as Pg,join as Da}from"node:path";var Ng=".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=Pg(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 Dg(e){try{return await Oa(e),!0}catch{return!1}}async function Mr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await Cg(Ma(),{recursive:!0,mode:448}),await Og(n,t,{mode:384}),await Ag(n,384),await Ig(n,e),!0}catch{return await Pa(n).catch(()=>{}),!1}}async function Mg(e,t){let n=`${e}${Ng}`;try{if(!(await Oa(n)).isFile())return!1}catch{return!1}let r=!await Dg(t);if(r&&!await Mr(t,await Dr(n,"utf8")))throw new Error("backup");return await Pa(n).catch(()=>{}),r}async function Lg(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 Mg(e,Nr(e)))return!0}catch{return!1}return await Lg(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 Ae(e){if(!Za(e))return{};try{let t=fe(await Fg(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(!Zg(t).isSymbolicLink())break;t=Ba(xn(t),Gg(t))}catch{break}}try{return Jg(Ha(xn(t)),Kg(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 zg(n)).mode&511}catch{}return process.platform!=="win32"&&Za(n)&&(s&128)===0?!1:(await jg(r,t,{mode:s}),await Bg(r,s),await Hg(r,n),!0)}catch{try{await Ug(r)}catch{}return!1}}async function Ce(e,t){try{await Ua(xn(e),{recursive:!0})}catch{return!1}return bn(e,`${JSON.stringify(t,null,2)}
|
|
103
|
+
`)}function Wg(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 Vg=/^\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 qg(e){if(typeof e!="string")return null;let t=e.replace(Vg,""),n=Wg(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 ht(e,t){let n=qg(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=mt(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 ey="tkr-cursor-hook",Ga="preToolUse";function ty(){return Xg(Qg.homedir(),".cursor","hooks.json")}function ny(e){return F(e)&&ht(e.command,ey)}function ry(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(Yg(ty(),"utf8"));return ry(e).entries.some(ny)}catch{return!1}}import{existsSync as Jv,readFileSync as sy}from"node:fs";import{join as oy}from"node:path";import iy from"node:os";var ay="tkr-gemini-hook",Ja="BeforeTool";function ly(){return oy(process.env.GEMINI_CLI_HOME||iy.homedir(),".gemini","settings.json")}function cy(e){return F(e)&&ht(e.command,ay)}function uy(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(cy)}function fy(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(sy(ly(),"utf8"));return fy(e).groups.some(t=>uy(t)!=null)}catch{return!1}}import{dirname as wS,join as re}from"node:path";import by from"node:os";import{existsSync as tS,accessSync as nS,constants as rS,readFileSync as dy}from"node:fs";var py='"rewrite", "--host"';function my(e){return e.includes(py)}function Va(e){try{return my(dy(e,"utf8"))}catch{return!1}}import{readFile as Ya,mkdir as hy}from"node:fs/promises";import{existsSync as Br,readFileSync as Xa}from"node:fs";import{dirname as gy,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 yy(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 hy(gy(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=yy(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
|
-
${r}`:r;return await
|
|
108
|
-
`:"";return await Ya(e,s)?"removed":"error"}function jt(){return Hr(Va.homedir(),".gemini","config","hooks.json")}function iy(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function tl(){try{let e=ue(Wa(jt(),"utf8"));return F(e)&&F(e[Mt])}catch{return!1}}async function nl(e){let t=jt(),n=await Re(t);if(!n)return"error";let r=iy(e),s=n[Mt];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Mt]=r,await Ae(t,n)?s===void 0?"added":"updated":"error")}async function rl(){let e=jt();if(!Br(e))return"absent";let t=await Re(e);return t?Mt in t?(delete t[Mt],await Ae(e,t)?"removed":"error"):"absent":"error"}var Ht=()=>ay.homedir(),Ur=()=>process.env.XDG_CONFIG_HOME||te(Ht(),".config"),sl=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:te(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:te(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:te(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:Ft,installed:Xa,ensure:Qa,remove:el,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:jt,installed:tl,ensure:nl,remove:rl,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=te(Ht(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:te(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:te(process.env.PI_CODING_AGENT_DIR||te(Ht(),".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:te(Ht(),".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=te(process.env.HERMES_HOME||te(Ht(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:te(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function ol(e){return e.kind==="hook"?e.installed():Ga(e.files()[0].target)}import{existsSync as Jr,readFileSync as py}from"node:fs";import{join as U}from"node:path";import my from"node:os";import{existsSync as ly,readFileSync as cy}from"node:fs";function vn(e,t){return F(e)&&ht(e.command,t)}function il(e){return e.path??(e.nested?["hooks"]:[])}function al(e,t){let n=e;for(let r of il(t))F(n[r])||(n[r]={}),n=n[r];return n}function ll(e,t){let n=e;for(let s of il(t))n=F(n)?n[s]:void 0;if(!F(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function uy(e){return F(e)&&Array.isArray(e.hooks)?e.hooks:[]}function cl(e,t){return(t.matcher===void 0?e:e.flatMap(uy)).filter(r=>vn(r,t.mark))}function ul(e,t){return cl(ll(e,t),t).length>0}function Zr(e,t){try{let n=ue(cy(e,"utf8"));return F(n)&&ul(n,t)}catch{return!1}}function fy(e,t,n){let r=al(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=cl(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 dy(e,t){if(!ul(e,t))return!1;let n=al(e,t),r=ll(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 Re(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=fy(r,t,n);return s==="present"||await Ae(e,r)?s:"error"}async function En(e,t){if(!ly(e))return"absent";let n=await Re(e);return n?dy(n,t)?await Ae(e,n)?"removed":"error":"absent":"error"}function fe(){return my.homedir()}function ml(e){return e.version===void 0&&(e.version=1),e.version===1}function hy(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 gy(e,t){return Promise.all(e.map(n=>En(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Ye(e,t){return{...e,installed:()=>e.files().some(n=>Zr(n,t)),ensure:n=>hy(e.files(),t,n),remove:()=>gy(e.files(),t)}}var yy={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:ml};function ky(){return U(process.env.COPILOT_HOME||U(fe(),".copilot"),"hooks","tokmizer.json")}var by={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:ml};function _y(){let e=[U(fe(),".trae","hooks.json")];return Jr(U(fe(),".trae-cn"))&&e.push(U(fe(),".trae-cn","hooks.json")),e}var xy={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function wy(){return U(process.env.QWEN_HOME||U(fe(),".qwen"),"settings.json")}var vy={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function Ey(){return U(process.env.XDG_CONFIG_HOME||U(fe(),".config"),"crush","crush.json")}var Sy={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function Ty(){return U(fe(),".junie","config.json")}function $y(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 Ry={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:$y};function Ay(){return U(fe(),".zcode","cli","config.json")}var Cy={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function Iy(){return U(fe(),".grok","hooks","tokmizer.json")}var Oy="tkr-droid-hook",Wr={mark:Oy,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},Py={...Wr,nested:!0};function Kr(){return U(fe(),".factory")}function Sn(){return[{file:U(Kr(),"hooks.json"),spec:Wr},{file:U(Kr(),"hooks","hooks.json"),spec:Wr},{file:U(Kr(),"settings.json"),spec:Py}]}function fl(e){try{let t=JSON.parse(py(e,"utf8"));return F(t)?t:null}catch{return null}}function dl(e,t){let n=t?e?.hooks:e;return F(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function pl(){let[e,t,n]=Sn(),r=Jr(e.file)?e:Jr(t.file)?t:null;return r&&dl(fl(r.file),!1)?r:dl(fl(n.file),!0)?n:r??e}var Ny={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[pl().file],installed:()=>Sn().some(e=>Zr(e.file,e.spec)),ensure:async e=>{let t=pl(),n=await Gr(t.file,t.spec,e);return n==="error"||await Promise.all(Sn().filter(r=>r.file!==t.file).map(r=>En(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Sn().map(t=>En(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},hl=[Ye({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:()=>[ky()]},yy),Ny,Ye({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:_y},by),Ye({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[wy()]},xy),Ye({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[Ey()]},vy),Ye({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[Ty()]},Sy),Ye({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[Ay()]},Ry),Ye({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:()=>[Iy()]},Cy)];var yl=[{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:[]}],Dy=[...yl.map(e=>e.host),"shell"],My=new Set(["claude-code","codex"]),Ly={cursor:{installed:za,setup:"tkr setup-cursor"},"gemini-cli":{installed:Za,setup:"tkr setup-gemini"},...Object.fromEntries(sl.map(e=>[e.host,{installed:()=>ol(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(hl.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function gl(e){return My.has(e)||(Ly[e]?.installed()??!1)}function kl(e){return null}function bl(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&&Dy.includes(s)){let o=s;return{host:o,source:"env",os:n,arch:r,shimRecommended:!gl(o)}}for(let o of yl)if(o.vars.some(i=>e[i]))return{host:o.host,source:"env",os:n,arch:r,shimRecommended:!gl(o.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}import{existsSync as NS,realpathSync as Fy}from"node:fs";import{basename as MS,delimiter as _l,join as LS,dirname as FS}from"node:path";function xl(e){try{return Fy(e)}catch{return e}}function wl(){let e=yn(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",s=xl(e),o=r.split(_l).filter(i=>i&&i!==e&&xl(i)!==s);return t[n]=o.join(_l),n==="Path"&&(t.PATH=t[n]),t}import{createConnection as Xy}from"node:net";import{spawn as Qy}from"node:child_process";import{existsSync as Al,openSync as Xr,closeSync as $l,unlinkSync as es,writeFileSync as ts,mkdirSync as ns,readFileSync as ek,appendFileSync as tk,rmSync as nk,statSync as rk}from"node:fs";import{dirname as sk,join as rs}from"node:path";import{fileURLToPath as ok}from"node:url";var jy=k.object({id:k.string().min(1).max(64),op:k.literal("filter"),cmd:k.string().min(1).max(2048),plan:k.enum(["trial","smart","pro"]),allowed:k.array(k.string().min(1).max(64)).max(512).optional(),installId:k.string().min(1).max(64).optional()}),Hy=k.object({id:k.string().min(1).max(64),op:k.literal("ping")}),By=k.object({id:k.string().min(1).max(64),op:k.literal("shutdown"),installId:k.string().min(1).max(64)}),zy=k.object({id:k.string().min(1).max(64),op:k.literal("reload"),installId:k.string().min(1).max(64).optional()}),VS=k.discriminatedUnion("op",[jy,Hy,By,zy]),qS=k.object({id:k.string(),ok:k.literal(!0),data:k.unknown()}),YS=k.object({id:k.string(),ok:k.literal(!1),err:k.string(),retryAfterMs:k.number().int().nonnegative().optional()}),vl=k.object({filter:Te.nullable(),cacheHit:k.boolean().optional()}),Tn=`
|
|
109
|
-
`,
|
|
110
|
-
|
|
111
|
-
`);function
|
|
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 VS,realpathSync as qy}from"node:fs";import{basename as YS,delimiter as Sl,join as XS,dirname as QS}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()}),uT=y.discriminatedUnion("op",[Yy,Xy,Qy,e0]),fT=y.object({id:y.string(),ok:y.literal(!0),data:y.unknown()}),dT=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
|
+
`,pT=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 t0 from"node:os";import{join as Ht}from"node:path";import{existsSync as n0,statSync as r0,lstatSync as Cl,unlinkSync as s0,mkdirSync as o0,chmodSync as i0}from"node:fs";import{createHash as a0}from"node:crypto";var qr=100;function l0(e){let t=a0("sha256").update(R()).digest("hex").slice(0,8),n=Ht(t0.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 c0(e,t){try{let n=Cl(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function Il(e,t){o0(e,{recursive:!0,mode:448});let n=Cl(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");i0(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&&c0(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:l0(e),isPipe:!1}:(Il(n,e),{path:r,isPipe:!1})}async function Yr(){let{path:e,isPipe:t}=Bt();if(t||!n0(e))return;try{if(!r0(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{s0(e)}catch{}}var _T=5*6e4;var Ll=500,g0=3e3,Pl=1,y0=6e4,k0=256*1024;function ss(){return rs(R(),"daemon.spawn.fail")}function os(){return rs(R(),"daemon.log")}function b0(){try{let e=Number(Dl(ss(),"utf8"));return Number.isFinite(e)&&Date.now()-e<y0}catch{return!1}}function _0(e){try{ns(R(),{recursive:!0,mode:448});let t=os();try{Ml(t).size>k0&&es(t)}catch{}d0(t,`${new Date().toISOString()} ${e}
|
|
110
|
+
`,{mode:384})}catch{}}function x0(e){try{ns(R(),{recursive:!0,mode:448}),ts(ss(),String(Date.now()),{mode:384})}catch{}_0(`spawn failed: ${e.message}`)}function w0(){try{p0(ss(),{force:!0})}catch{}}async function Rn(e,t){return new Promise((n,r)=>{let s=u0(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 E0(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:h0(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 v0(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 S0(e){let t=E0();if(!Re()&&!Nl(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Bt(),r=process.platform==="win32"?R():m0(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(!v0(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(f0(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 T0(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 $0(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),w0();break}catch{if(s+=1,s>Pl)throw new Error(`tkr-daemon unreachable at ${t}`);if(b0())throw new Error(`tkr-daemon spawn on cooldown (see ${os()})`);await Yr();try{await S0(n),o=!0}catch(u){throw x0(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})`))},g0);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(Ct,f.version))throw new Error(`newer daemon ${f.version} already running`);u=f.version!==Ct}catch(f){throw c.close(),f}if(u){try{await T0(e.socketPath?{socketPath:e.socketPath}:{})}catch{}c.close();let f=await $0(t,2e3);if(await Yr(),!f)throw new Error("stale daemon still running after shutdown request");return is({...e,skipVersionCheck:!0})}}return c}var gt=null,zt=null;async function R0(){if(gt)return gt;if(zt)return zt;let e=is().then(t=>{if(zt===e)return gt=t,t;try{t.close()}catch{}return null}).catch(()=>null);return zt=e,e}var as=null,ls=!1;async function A0(){return ls||(ls=!0,as=await Wi()??fn()),as}async function Fl(e,t,n){let r=await A0();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 C0(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 R0();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:C0(o)}catch{return Fl(e,"pro",r)}})}function Hl(){if($r(null),gt)try{gt.close()}catch{}gt=null,zt=null,as=null,ls=!1}import{chmod as Jl,mkdir as P0,readFile as JT,writeFile as Bl,stat as WT,readdir as VT,rm as zl,rename as N0}from"node:fs/promises";import{existsSync as D0,readFileSync as M0,realpathSync as L0}from"node:fs";import{createHash as F0}from"node:crypto";import{dirname as Ul,join as j0,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 I0}from"node:fs";import{join as O0}from"node:path";function be(){try{return I0(O0(R(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var Wl=1440*60*1e3,H0=30*Wl,B0=200*1024*1024,Vl=8*1024*1024,z0=/^[0-9a-f]{8,64}$/i;var U0=".meta";var r$=["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(M0(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 Z0(){let e=ql().maxAgeDays;return e?e*Wl:H0}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",Z0(),e),maxBytes:Cn("TOKMIZER_CCR_DIR_CAP_BYTES",B0,e),entryMaxBytes:Cn("TOKMIZER_CCR_ENTRY_MAX_BYTES",Vl,e)}}function G0(e){return`${kr(e)}${U0}`}async function Gl(e){await P0(e,{recursive:!0,mode:448});try{await Jl(e,448)}catch{}}function K0(e=process.cwd()){let t;try{t=L0(Zl(e))}catch{t=Zl(e)}for(let n=t;;n=Ul(n)){if(D0(j0(n,".git")))return n;if(Ul(n)===n)return t}}function J0(e){return e===""?[]:(e.endsWith(`
|
|
112
112
|
`)?e.slice(0,-1):e).split(`
|
|
113
|
-
`)}async function
|
|
114
|
-
`).map(o=>o.replace(/\r$/,"")).filter(o=>
|
|
115
|
-
`).map(o=>
|
|
116
|
-
`)}function
|
|
113
|
+
`)}async function W0(e,t,n=process.env,r={}){if(be()||!z0.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 N0(i,o)}catch{try{await zl(i)}catch{}return!1}let a={at:Date.now(),bytes:s,lines:J0(t).length,partial:r.partial===!0,...r.label?{label:r.label.slice(0,40)}:{},project:K0(r.cwd)};try{await Bl(G0(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 V0=/^(?=\[tkr |\[tokmizer\])/gm,Kl=/^\[(?:tkr:|same output as )/,q0=[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 Ie(e,t){let n=e.replace(V0,"> ");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=q0.find(a=>a(o));return i!=null&&!r.some(i)};return n.split(`
|
|
115
|
+
`).map(o=>Kl.test(o)&&!s(o)?`> ${o}`:o).join(`
|
|
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 Y0(e){return`${e===""||e.endsWith(`
|
|
120
|
+
`)?"":`
|
|
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=F0("sha256").update(e).digest("hex").slice(0,16);return await W0(s,e,r,{partial:t,label:n})?s:null}function tc(e,t){return`${e===""||e.endsWith(`
|
|
120
123
|
`)?"":`
|
|
121
124
|
`}[tkr restore ${t}]
|
|
122
|
-
`}async function
|
|
123
|
-
\u2026 (output truncated at ${yt/1048576}MB)`:"",
|
|
124
|
-
\u2026 (stderr truncated at ${yt/(1024*1024)}MB)`:"",
|
|
125
|
+
`}async function In(e,t,n=process.env,r={}){if(t=Ie(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}${Y0(t)}`}async function nc(e,t,n=process.env,r={}){if(t=Ie(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 yt=10*1024*1024,sc=1024,ok=6e4,ik=200,ak=1e3,ic="TOKMIZER_EXEC_CAPTURING";function ac(e=process.env){return e[ic]==="1"}function oc(e,t){let n=new sk("utf8"),r=n.write(Buffer.concat(e));return t?r:r+n.end()}function lk(){try{if(!It()||!rc(Gi()))return;let e=process.env.TOKMIZER_TKR_BIN||rk(new URL("../bin/tkr.js",import.meta.url));if(!Re()&&!rc(e))return;let t=tk(R(),"enroll-kick");try{let o=Number(X0(t,"utf8"));if(Number.isFinite(o)&&Date.now()-o<ok)return}catch{}ek(R(),{recursive:!0,mode:448}),Q0(t,String(Date.now()));let[n,...r]=Nt(e);(0,us.default)(n,[...r,"heartbeat"],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}}function ck(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 uk=ck(process.env),fk={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 nk.signals[e]??fk[e]??15}var dk=/^[A-Za-z0-9_@%+=:,./-]+$/;function pk(e){return e.map(t=>dk.test(t)?t:kn(t)).join(" ")}function mk(e){let t=Rt(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 lc(e){let[t,...n]=e;if(!t)throw new Error("tkr-exec: missing command");let r=be(),s={...$l(),[ic]:"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=M=>{try{o.kill(M)}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",M=>{if(d>=yt){k=!0;return}let H=yt-d,B=M.length>H?M.subarray(0,H):M;u.push(B),d+=B.length,M.length>H&&(k=!0)}),o.stderr?.on("data",M=>{if(m>=yt){g=!0;return}let H=yt-m,B=M.length>H?M.subarray(0,H):M;f.push(B),m+=B.length,M.length>H&&(g=!0)});let p,_,w,$,I;try{I=await new Promise((M,H)=>{o.on("error",j=>{p&&clearTimeout(p),i?M(1):H(j)});let B=null,Qe=()=>{B!=null&&(p&&clearTimeout(p),w&&clearTimeout(w),$&&clearTimeout($),M(B))},_e=()=>{o.stdout?.destroy(),o.stderr?.destroy(),Qe()},A=()=>{w&&clearTimeout(w),w=setTimeout(_e,ik)};o.on("exit",(j,J)=>{p&&clearTimeout(p),_&&clearTimeout(_),B=j??(J?128+On(J):0),A(),$=setTimeout(_e,ak),o.stdout?.on("data",A),o.stderr?.on("data",A)}),o.on("close",(j,J)=>{B==null&&(B=j??(J?128+On(J):0)),Qe()}),p=setTimeout(()=>{o.kill("SIGTERM"),_=setTimeout(()=>o.kill("SIGKILL"),2e3)},uk),p.unref?.()})}finally{p&&clearTimeout(p),_&&clearTimeout(_),w&&clearTimeout(w),$&&clearTimeout($),process.off("SIGINT",l),process.off("SIGTERM",c)}let N=oc(u,k),D=oc(f,g);return hk({argv:e,stdout:N,stderr:D,exitCode:I,truncated:k,stderrTruncated:g},{yolo:r,env:process.env,onMissingState:lk})}async function hk({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 ${yt/1048576}MB)`:"",m=o?`
|
|
127
|
+
\u2026 (stderr truncated at ${yt/(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 At();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(G=>!$.has(G))):w,N=pk(e);g&&!l&&jl();let D=await pn(N,t,I,{verbosity:p.outputVerbosity,resolver:l,yolo:i,exitCode:r}),M=Ie(n,n),H=0,B=0;if((i||r===0||r==null)&&Buffer.byteLength(n,"utf8")>=(i?1:sc)){let G=await pn(N,n,I,{verbosity:p.outputVerbosity,resolver:l,yolo:i,exitCode:r});if(M=Ie(G.output,n),!i&&G.output!==n)try{M=await In(G.droppedTail??null,G.output,a,{raw:o?null:n,label:Pt(N)})}catch{}H=G.rawBytes,B=G.filteredBytes}else if(!i&&r!==0&&Buffer.byteLength(n,"utf8")>=sc){let G=await pn(N,n,I,{verbosity:p.outputVerbosity,resolver:l,exitCode:r});if(G.failureSummary){try{M=await In(G.droppedTail??null,G.output,a)}catch{M=Ie(G.output,n)}H=G.rawBytes,B=G.filteredBytes}}let _e=!i&&D.output!==t&&mk(N)?`${D.output}${D.output.endsWith(`
|
|
125
128
|
`)?"":`
|
|
126
|
-
`}${
|
|
127
|
-
`))})}
|
|
128
|
-
`),process.exit(2)),
|
|
129
|
-
`),
|
|
129
|
+
`}${An}`:D.output,A=Ie(_e,t);if(!i&&D.filteredBytes<D.rawBytes)try{A=new RegExp(Mo.source,"m").test(D.output)?await nc(t,_e,a,{label:Pt(N)}):await In(D.droppedTail??null,_e,a,{raw:s?null:t,label:Pt(N)})}catch{}!s&&t.length>0&&Buffer.byteLength(A,"utf8")>=Buffer.byteLength(t,"utf8")&&(A=Ie(t,t));let j=A+d,J=M+m,Ut=vl(a).host,xe=va(D.rawBytes+Buffer.byteLength(n,"utf8"),Buffer.byteLength(j,"utf8")+Buffer.byteLength(J,"utf8"),El(Ut)),fs=!1,ds=async()=>{if(!fs){fs=!0;try{wa(xe.raw,xe.filtered,void 0,!1,Ut,"sh",Pt(N),"cwd"in f?f.cwd:process.cwd(),Ea(D)),g&&await la({cmd:N,filterId:D.filterId,rawBytes:D.rawBytes,filteredBytes:D.filteredBytes}),await aa({cmd:N,tokensSaved:Math.max(0,Math.round((xe.raw-xe.filtered)/4)),rawTokens:Math.round(xe.raw/4),optimized:D.filterId!=null,telemetryOptIn:p.telemetryOptIn&&(!u||(await Ye()).telemetryOptIn),sessionId:_,host:Ut})}catch{}}};return u?u(ds):await ds(),{stdout:j,stderr:J,code:r??0,filterId:D.filterId,rawBytes:D.rawBytes+H,filteredBytes:D.filteredBytes+B,truncated:s}}catch{return k()}finally{l||Hl()}}function cc(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
|
+
`))})}cc();async function uc(e){let[t,...n]=e;t||process.exit(2);let r=(0,fc.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 gk(){let e=process.argv.slice(2);if(e.length===0&&(process.stderr.write(`tkr-exec: missing command
|
|
131
|
+
`),process.exit(2)),ac()||Ca())return uc(e);let t;try{t=await lc(e)}catch(n){return process.stderr.write(`tkr-exec: ${n.message??n}
|
|
132
|
+
`),uc(e)}t.stdout&&process.stdout.write(t.stdout),t.stderr&&process.stderr.write(t.stderr),process.exitCode=t.code}gk().catch(e=>{process.stderr.write(`${e.message??e}
|
|
130
133
|
`),process.exit(1)});
|
|
131
134
|
/*! Bundled license information:
|
|
132
135
|
|