From 007d2f650c76f5b324d683721e57aba99351480a Mon Sep 17 00:00:00 2001 From: ben-clayton Date: Tue, 7 Nov 2023 17:07:03 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20d67ae?= =?UTF-8?q?2acb40bebfa7c7705cd28175b44fbb03b59=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 4 ++-- .../samples/A-buffer.json | 0 .../samples/animometer.json | 0 .../samples/bitonicSort.json | 0 .../samples/cameras.json | 0 .../samples/computeBoids.json | 0 .../samples/cornell.json | 0 .../samples/cubemap.json | 0 .../samples/deferredRendering.json | 0 .../samples/fractalCube.json | 0 .../samples/gameOfLife.json | 0 .../samples/helloTriangle.json | 0 .../samples/helloTriangleMSAA.json | 0 .../samples/imageBlur.json | 0 .../samples/instancedCube.json | 0 .../samples/normalMap.json | 0 .../samples/particles.json | 0 .../samples/renderBundles.json | 0 .../samples/resizeCanvas.json | 0 .../samples/reversedZ.json | 0 .../samples/rotatingCube.json | 0 .../samples/samplerParameters.json | 0 .../samples/shadowMapping.json | 0 .../samples/texturedCube.json | 0 .../samples/twoCubes.json | 0 .../samples/videoUploading.json | 0 .../samples/videoUploadingWebCodecs.json | 0 .../samples/worker.json | 0 _next/static/chunks/118.be674f7ab6c92e48.js | 1 - _next/static/chunks/118.d387cb71795d0f20.js | 1 + ...a51b05711fb.js => 808.edd40b51ce3d1c96.js} | 2 +- .../chunks/b8074065.9c81e039aea18b75.js | 1 + .../chunks/b8074065.f34e40bc56b8268f.js | 1 - ...a7ba18d.js => webpack-dc900569ea4046e8.js} | 2 +- .../_buildManifest.js | 0 .../_ssgManifest.js | 0 ...kwall_diffuse.png => brickwall_albedo.png} | Bin assets/img/toybox_height.png | Bin 30387 -> 35900 bytes assets/img/toybox_normal.png | Bin 54345 -> 58147 bytes .../img/{wood_diffuse.png => wood_albedo.png} | Bin ...kwall_diffuse.png => brickwall_albedo.png} | Bin img/toybox_height.png | Bin 30387 -> 30732 bytes img/toybox_normal.png | Bin 54345 -> 53868 bytes img/{wood_diffuse.png => wood_albedo.png} | Bin index.html | 2 +- samples/A-buffer.html | 4 ++-- samples/animometer.html | 2 +- samples/bitonicSort.html | 2 +- samples/cameras.html | 2 +- samples/computeBoids.html | 2 +- samples/cornell.html | 2 +- samples/cubemap.html | 2 +- samples/deferredRendering.html | 4 ++-- samples/fractalCube.html | 2 +- samples/gameOfLife.html | 2 +- samples/helloTriangle.html | 2 +- samples/helloTriangleMSAA.html | 2 +- samples/imageBlur.html | 2 +- samples/instancedCube.html | 2 +- samples/normalMap.html | 2 +- samples/particles.html | 2 +- samples/renderBundles.html | 4 ++-- samples/resizeCanvas.html | 2 +- samples/reversedZ.html | 4 ++-- samples/rotatingCube.html | 2 +- samples/samplerParameters.html | 2 +- samples/shadowMapping.html | 2 +- samples/texturedCube.html | 2 +- samples/twoCubes.html | 2 +- samples/videoUploading.html | 2 +- samples/videoUploadingWebCodecs.html | 2 +- samples/worker.html | 4 ++-- 72 files changed, 39 insertions(+), 39 deletions(-) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/A-buffer.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/animometer.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/bitonicSort.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/cameras.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/computeBoids.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/cornell.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/cubemap.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/deferredRendering.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/fractalCube.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/gameOfLife.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/helloTriangle.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/helloTriangleMSAA.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/imageBlur.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/instancedCube.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/normalMap.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/particles.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/renderBundles.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/resizeCanvas.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/reversedZ.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/rotatingCube.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/samplerParameters.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/shadowMapping.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/texturedCube.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/twoCubes.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/videoUploading.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/videoUploadingWebCodecs.json (100%) rename _next/data/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/samples/worker.json (100%) delete mode 100644 _next/static/chunks/118.be674f7ab6c92e48.js create mode 100644 _next/static/chunks/118.d387cb71795d0f20.js rename _next/static/chunks/{808.b76a8a51b05711fb.js => 808.edd40b51ce3d1c96.js} (71%) create mode 100644 _next/static/chunks/b8074065.9c81e039aea18b75.js delete mode 100644 _next/static/chunks/b8074065.f34e40bc56b8268f.js rename _next/static/chunks/{webpack-849f73b6ba7ba18d.js => webpack-dc900569ea4046e8.js} (56%) rename _next/static/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/_buildManifest.js (100%) rename _next/static/{JLmkatBKfvhCEo0dhqfFV => vxQHoUvAStzkcK00Zfo_P}/_ssgManifest.js (100%) rename assets/img/{brickwall_diffuse.png => brickwall_albedo.png} (100%) rename assets/img/{wood_diffuse.png => wood_albedo.png} (100%) rename img/{brickwall_diffuse.png => brickwall_albedo.png} (100%) rename img/{wood_diffuse.png => wood_albedo.png} (100%) diff --git a/404.html b/404.html index 662209f3..ffc899c9 100644 --- a/404.html +++ b/404.html @@ -1,4 +1,4 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file + }

404

This page could not be found.

\ No newline at end of file diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/A-buffer.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/A-buffer.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/A-buffer.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/A-buffer.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/animometer.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/animometer.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/animometer.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/animometer.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/bitonicSort.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/bitonicSort.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/bitonicSort.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/bitonicSort.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/cameras.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/cameras.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/cameras.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/cameras.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/computeBoids.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/computeBoids.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/computeBoids.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/computeBoids.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/cornell.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/cornell.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/cornell.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/cornell.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/cubemap.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/cubemap.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/cubemap.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/cubemap.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/deferredRendering.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/deferredRendering.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/deferredRendering.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/deferredRendering.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/fractalCube.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/fractalCube.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/fractalCube.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/fractalCube.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/gameOfLife.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/gameOfLife.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/gameOfLife.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/gameOfLife.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/helloTriangle.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/helloTriangle.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/helloTriangle.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/helloTriangle.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/helloTriangleMSAA.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/helloTriangleMSAA.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/helloTriangleMSAA.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/helloTriangleMSAA.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/imageBlur.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/imageBlur.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/imageBlur.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/imageBlur.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/instancedCube.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/instancedCube.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/instancedCube.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/instancedCube.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/normalMap.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/normalMap.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/normalMap.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/normalMap.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/particles.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/particles.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/particles.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/particles.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/renderBundles.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/renderBundles.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/renderBundles.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/renderBundles.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/resizeCanvas.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/resizeCanvas.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/resizeCanvas.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/resizeCanvas.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/reversedZ.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/reversedZ.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/reversedZ.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/reversedZ.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/rotatingCube.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/rotatingCube.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/rotatingCube.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/rotatingCube.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/samplerParameters.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/samplerParameters.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/samplerParameters.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/samplerParameters.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/shadowMapping.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/shadowMapping.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/shadowMapping.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/shadowMapping.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/texturedCube.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/texturedCube.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/texturedCube.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/texturedCube.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/twoCubes.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/twoCubes.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/twoCubes.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/twoCubes.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/videoUploading.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/videoUploading.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/videoUploading.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/videoUploading.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/videoUploadingWebCodecs.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/videoUploadingWebCodecs.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/videoUploadingWebCodecs.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/videoUploadingWebCodecs.json diff --git a/_next/data/JLmkatBKfvhCEo0dhqfFV/samples/worker.json b/_next/data/vxQHoUvAStzkcK00Zfo_P/samples/worker.json similarity index 100% rename from _next/data/JLmkatBKfvhCEo0dhqfFV/samples/worker.json rename to _next/data/vxQHoUvAStzkcK00Zfo_P/samples/worker.json diff --git a/_next/static/chunks/118.be674f7ab6c92e48.js b/_next/static/chunks/118.be674f7ab6c92e48.js deleted file mode 100644 index 6b5a4171..00000000 --- a/_next/static/chunks/118.be674f7ab6c92e48.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[118],{5671:function(e,n,t){"use strict";t.d(n,{Tl:function(){return d},hu:function(){return p}});var r=t(5893),a=t(9008),i=t.n(a),o=t(1163),s=t(7294),l=t(9147),u=t.n(l);t(7319);let c=e=>{let n=(0,s.useRef)(null),a=(0,s.useMemo)(()=>e.sources.map(e=>{let{name:n,contents:a}=e;return{name:n,...function(e){let n;let a=null;{a=document.createElement("div");let i=t(4631);n=i(a,{lineNumbers:!0,lineWrapping:!0,theme:"monokai",readOnly:!0})}return{Container:function(t){return(0,r.jsx)("div",{...t,children:(0,r.jsx)("div",{ref(t){a&&t&&(t.appendChild(a),n.setOption("value",e))}})})}}}(a)}}),e.sources),l=(0,s.useRef)(null),c=(0,s.useMemo)(()=>{if(e.gui){let n=t(4376);return new n.GUI({autoPlace:!1})}},[]),d=(0,s.useRef)(null),p=(0,s.useMemo)(()=>{if(e.stats){let n=t(2792);return new n}},[]),m=(0,o.useRouter)(),h=m.asPath.match(/#([a-zA-Z0-9\.\/]+)/),[g,f]=(0,s.useState)(null),[x,v]=(0,s.useState)(null);return(0,s.useEffect)(()=>{if(h?v(h[1]):v(a[0].name),c&&l.current)for(l.current.appendChild(c.domElement);c.__controllers.length>0;)c.__controllers[0].remove();p&&d.current&&(p.dom.style.position="absolute",p.showPanel(1),d.current.appendChild(p.dom));let t={active:!0},r=()=>{t.active=!1};try{let i=n.current;if(!i)throw Error("The canvas is not available");let o=e.init({canvas:i,pageState:t,gui:c,stats:p});o instanceof Promise&&o.catch(e=>{console.error(e),f(e)})}catch(s){console.error(s),f(s)}return r},[]),(0,r.jsxs)("main",{children:[(0,r.jsxs)(i(),{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"\n .CodeMirror {\n height: auto !important;\n margin: 1em 0;\n }\n\n .CodeMirror-scroll {\n height: auto !important;\n overflow: visible !important;\n }\n "}}),(0,r.jsx)("title",{children:"".concat(e.name," - WebGPU Samples")}),(0,r.jsx)("meta",{name:"description",content:e.description}),(0,r.jsx)("meta",{httpEquiv:"origin-trial",content:e.originTrial})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{children:e.name}),(0,r.jsx)("a",{target:"_blank",rel:"noreferrer",href:"https://github.com/".concat("webgpu/webgpu-samples","/tree/main/").concat(e.filename),children:"See it on Github!"}),(0,r.jsx)("p",{children:e.description}),g?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{children:"Something went wrong. Do your browser and device support WebGPU?"}),(0,r.jsx)("p",{children:"".concat(g)})]}):null]}),(0,r.jsxs)("div",{className:u().canvasContainer,children:[(0,r.jsx)("div",{style:{position:"absolute",left:10},ref:d}),(0,r.jsx)("div",{style:{position:"absolute",right:10},ref:l}),(0,r.jsx)("canvas",{ref:n})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("nav",{className:u().sourceFileNav,children:(0,r.jsx)("ul",{children:a.map((e,n)=>(0,r.jsx)("li",{children:(0,r.jsx)("a",{href:"#".concat(e.name),"data-active":x==e.name,onClick(){v(e.name)},children:e.name})},n))})}),a.map((e,n)=>(0,r.jsx)(e.Container,{className:u().sourceFileContainer,"data-active":x==e.name},n))]})]})},d=e=>(0,r.jsx)(c,{...e});function p(e,n){if(!e)throw Error(n)}},7118:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return S}});var r,a,i=t(6416),o=t(5671),s="struct SpaceTransformUniforms {\n projMatrix: mat4x4f,\n viewMatrix: mat4x4f,\n modelMatrix: mat4x4f,\n}\n\nstruct Uniforms_MapInfo {\n mappingType: u32,\n lightPosX: f32,\n lightPosY: f32,\n lightPosZ: f32,\n lightIntensity: f32,\n depthScale: f32,\n depthLayers: f32,\n}\n\nstruct VertexInput {\n // Shader assumes the missing 4th float is 1.0\n @location(0) position : vec4f,\n @location(1) normal : vec3f,\n @location(2) uv : vec2f,\n @location(3) vert_tan: vec3f,\n @location(4) vert_bitan: vec3f,\n}\n\nstruct VertexOutput {\n @builtin(position) Position : vec4f,\n @location(0) normal: vec3f,\n @location(1) uv : vec2f,\n // Vertex position in world space\n @location(2) posWS: vec3f,\n // Vertex position in tangent space\n @location(3) posTS: vec3f,\n // View position in tangent space\n @location(4) viewTS: vec3f,\n // Extracted components of our tbn matrix\n @location(5) tbnTS0: vec3, \n @location(6) tbnTS1: vec3,\n @location(7) tbnTS2: vec3,\n}\n\n// Uniforms\n@group(0) @binding(0) var spaceTransform : SpaceTransformUniforms;\n@group(0) @binding(1) var mapInfo: Uniforms_MapInfo;\n\n// Texture info\n@group(1) @binding(0) var textureSampler: sampler;\n@group(1) @binding(1) var diffuseTexture: texture_2d;\n@group(1) @binding(2) var normalTexture: texture_2d;\n@group(1) @binding(3) var depthTexture: texture_2d;\n\nfn parallax_uv(\n uv: vec2f, \n viewDirTS: vec3f, \n depthSample: f32,\n depthScale: f32,\n) -> vec2f {\n if (mapInfo.mappingType == 4) {\n // Perturb uv coordinates based on depth and camera direction\n let p = viewDirTS.xy * (depthSample * depthScale) / viewDirTS.z;\n return uv - p;\n }\n // Break up depth space into layers\n let depthPerLayer = 1.0 / f32(mapInfo.depthLayers);\n // Start at lowest depth\n var currentDepth = 0.0;\n let delta_uv = viewDirTS.xy * depthScale / (viewDirTS.z * mapInfo.depthLayers);\n var prev_uv = uv;\n var cur_uv = uv;\n\n var depthFromTexture = textureSample(depthTexture, textureSampler, cur_uv).r;\n var prevDepthFromTexture = depthFromTexture;\n var prevCurrentDepth = currentDepth;\n for (var i: u32 = 0; i < 32; i++) {\n currentDepth += depthPerLayer;\n prev_uv = cur_uv;\n cur_uv -= delta_uv;\n depthFromTexture = textureSample(depthTexture, textureSampler, cur_uv).r;\n // Determine whether current depth is greater than depth map\n // Once we reach a certain threshold, we stop updating cur_uv\n cur_uv = select(cur_uv, prev_uv, depthFromTexture < currentDepth);\n prevDepthFromTexture = select(depthFromTexture, prevDepthFromTexture, prevDepthFromTexture < currentDepth);\n prevCurrentDepth = select(currentDepth, prevCurrentDepth, prevDepthFromTexture < currentDepth);\n }\n return cur_uv;\n}\n\nfn when_greater(v1: f32, v2: f32) -> f32 {\n return max(sign(v1 - v2), 0.0);\n}\n\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n var output : VertexOutput;\n // Create the Model to View Matrix\n let MV = spaceTransform.viewMatrix * spaceTransform.modelMatrix;\n // Create the Model to View to Projection Matrix\n let MVP = spaceTransform.projMatrix * MV;\n \n // Get Clip space transforms and pass through values out of the way\n output.Position = MVP * input.position;\n output.uv = input.uv;\n output.normal = input.normal;\n\n // Multiply pos by modelMatrix to get the vertex/fragment's position in world space\n output.posWS = vec3f((spaceTransform.modelMatrix * input.position).xyz);\n \n var MV3x3 = mat3x3f(\n MV[0].xyz,\n MV[1].xyz,\n MV[2].xyz\n );\n\n // Get unit vectors of normal, tangent, and bitangents in model space\n let vertexTangent = normalize(input.vert_tan);\n let vertexBitangent = normalize(input.vert_bitan);\n let vertexNormal = normalize(input.normal);\n\n // Convert tbn unit vectors to mv space for a model view tbn\n var tbnTS = transpose(\n MV3x3 * mat3x3f(\n vertexTangent,\n vertexBitangent,\n vertexNormal\n )\n );\n // Condense to vec3s so they can be passed to fragment shader\n output.tbnTS0 = tbnTS[0];\n output.tbnTS1 = tbnTS[1];\n output.tbnTS2 = tbnTS[2];\n\n // Get the tangent space position of the vertex\n output.posTS = tbnTS * (MV * input.position).xyz;\n // Get the tangent space position of the camera view\n output.viewTS = tbnTS * vec3f(0.0, 0.0, 0.0);\n\n return output;\n}\n\n@fragment\nfn fragmentMain(input: VertexOutput) -> @location(0) vec4f {\n // Reconstruct tbnTS\n let tbnTS = mat3x3f(\n input.tbnTS0,\n input.tbnTS1,\n input.tbnTS2,\n );\n\n // Get direction of view in tangent space\n let viewDirTS = normalize(input.viewTS - input.posTS);\n\n // Get position, direction, and distance of light in tangent space (no need to multiply by model matrix as there is no model)\n let lightPosVS = spaceTransform.viewMatrix * vec4f(mapInfo.lightPosX, mapInfo.lightPosY, mapInfo.lightPosZ, 1.0);\n let lightPosTS = tbnTS * lightPosVS.xyz;\n let lightDirTS = normalize(lightPosTS - input.posTS);\n let lightDistanceTS = distance(input.posTS, lightPosTS);\n\n let depthMap = textureSample(depthTexture, textureSampler, input.uv); \n\n let uv = select(\n parallax_uv(input.uv, viewDirTS, depthMap.r, mapInfo.depthScale),\n input.uv,\n mapInfo.mappingType < 4\n );\n\n // Get values from textures\n let diffuseMap = textureSample(diffuseTexture, textureSampler, uv);\n let normalMap = textureSample(normalTexture, textureSampler, uv);\n\n // Get normal in tangent space\n let normalTS = normalize((normalMap.xyz * 2.0) - 1.0);\n \n // Calculate diffusion lighting\n let lightColorIntensity = vec3f(255.0, 255.0, 255.0) * mapInfo.lightIntensity;\n //How similar is the normal to the lightDirection\n let diffuseStrength = clamp(\n dot(normalTS, lightDirTS), 0.0, 1.0\n );\n // Strenght inversely proportional to square of distance from light\n let diffuseLight = (lightColorIntensity * diffuseStrength) / (lightDistanceTS * lightDistanceTS);\n\n switch (mapInfo.mappingType) {\n // Output the diffuse texture\n case 0: {\n return vec4f(diffuseMap.rgb, 1.0);\n }\n // Output the normal map\n case 1: {\n return vec4f(normalMap.rgb, 1.0);\n }\n // Output the height map\n case 2: {\n return vec4f(depthMap.rgb, 1.0);\n }\n default: {\n return vec4f(diffuseMap.rgb * diffuseLight, 1.0);\n }\n }\n}";let l=function(e,n){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=t?GPUBufferUsage.VERTEX|GPUBufferUsage.STORAGE:GPUBufferUsage.VERTEX,i=r?GPUBufferUsage.INDEX|GPUBufferUsage.STORAGE:GPUBufferUsage.INDEX,o=e.createBuffer({size:n.vertices.byteLength,usage:a,mappedAtCreation:!0});new Float32Array(o.getMappedRange()).set(n.vertices),o.unmap();let s=e.createBuffer({size:n.indices.byteLength,usage:i,mappedAtCreation:!0});return n.indices.byteLength===n.indices.length*Uint16Array.BYTES_PER_ELEMENT?new Uint16Array(s.getMappedRange()).set(n.indices):new Uint32Array(s.getMappedRange()).set(n.indices),s.unmap(),{vertexBuffer:o,indexBuffer:s,indexCount:n.indices.length}},u=(e,n)=>{let t=new Float32Array(e.vertices.buffer,n*e.vertexStride+0,3);return i.R3.fromValues(t[0],t[1],t[2])},c=(e,n)=>{let t=new Float32Array(e.vertices.buffer,n*e.vertexStride+6*Float32Array.BYTES_PER_ELEMENT,2);return i.K4.fromValues(t[0],t[1])},d=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;r=Math.floor(r),a=Math.floor(a),o=Math.floor(o);let s=[],l=[],u=0,c=(e,n,t,r,a,o,c,d,p,m)=>{let h=o/p,g=c/m,f=o/2,x=c/2,v=d/2,b=p+1,y=m+1,T=0,S=i.R3.create(),w=i.R3.create();for(let P=0;P0?1:-1,l.push(...w),l.push(G/p),l.push(1-P/m),T+=1}}for(let M=0;M0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"uint16",{vertices:s,indices:l}=d(e,n,t,r,a,i),u=8*Float32Array.BYTES_PER_ELEMENT,c="uint16"===o?new Uint16Array(l):new Uint32Array(l);return{vertices:new Float32Array(s),indices:c,vertexStride:u}},m=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,s=p(e,n,t,r,a,o),l=s.vertexStride/Float32Array.BYTES_PER_ELEMENT,d=s.vertices.length/l,m=Array(d),h=Array(d),g=Array(d);for(let f=0;f{let s=[];for(let l=0;l{let n=e.split("x"),t=parseInt(n[0].replace(/[^0-9]/g,""))/8,r=t*(void 0!==n[1]?parseInt(n[1]):1);return r},f=e=>{let n=e.reduce((e,n,t)=>{let r={shaderLocation:t,offset:e.arrayStride,format:n},a=e.arrayStride+g(n),i={attributes:[...e.attributes,r],arrayStride:a};return i},{attributes:[],arrayStride:0}),t={arrayStride:n.arrayStride,attributes:n.attributes};return t},x=function(e,n,t,r,a,i,o){let s=arguments.length>7&&void 0!==arguments[7]&&arguments[7],l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:"triangle-list",u=arguments.length>9&&void 0!==arguments[9]?arguments[9]:"back",c={label:"".concat(n,".pipeline"),layout:e.createPipelineLayout({label:"".concat(n,".pipelineLayout"),bindGroupLayouts:t}),vertex:{module:e.createShaderModule({label:"".concat(n,".vertexShader"),code:r}),entryPoint:"vertexMain",buffers:0!==a.length?[f(a)]:[]},fragment:{module:e.createShaderModule({label:"".concat(n,".fragmentShader"),code:i}),entryPoint:"fragmentMain",targets:[{format:o}]},primitive:{topology:l,cullMode:u}};return s&&(c.depthStencil={depthCompare:"less",depthWriteEnabled:!0,format:"depth24plus"}),e.createRenderPipeline(c)},v=(e,n)=>{let t=e.createTexture({size:[n.width,n.height,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return e.queue.copyExternalImageToTexture({source:n},{texture:t},[n.width,n.height]),t};var b="src/sample/normalMap/main.ts";(r=a||(a={}))[r.Spiral=0]="Spiral",r[r.Toybox=1]="Toybox",r[r.BrickWall=2]="BrickWall";let y=async e=>{let n,t,r,o,u,c,d,p,{canvas:g,pageState:f,gui:b}=e,y=await navigator.gpu.requestAdapter(),T=await y.requestDevice();if(!f.active)return;let S=g.getContext("webgpu"),w=window.devicePixelRatio;g.width=g.clientWidth*w,g.height=g.clientHeight*w;let P=navigator.gpu.getPreferredCanvasFormat();S.configure({device:T,format:P,alphaMode:"premultiplied"});let B={"Bump Mode":"Normal Map",cameraPosX:0,cameraPosY:.8,cameraPosZ:-1.4,lightPosX:1.7,lightPosY:.7,lightPosZ:-1.9,lightIntensity:.02,depthScale:.05,depthLayers:16,Texture:"Spiral","Reset Light"(){}},G=T.createTexture({size:[g.width,g.height],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT}),U=T.createBuffer({size:256,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),M=T.createBuffer({size:7*Float32Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});{let E=await fetch("../assets/img/wood_diffuse.png"),V=await createImageBitmap(await E.blob());n=v(T,V)}{let A=await fetch("../assets/img/spiral_normal.png"),F=await createImageBitmap(await A.blob());t=v(T,F)}{let _=await fetch("../assets/img/spiral_height.png"),D=await createImageBitmap(await _.blob());r=v(T,D)}{let R=await fetch("../assets/img/toybox_normal.png"),I=await createImageBitmap(await R.blob());o=v(T,I)}{let C=await fetch("../assets/img/toybox_height.png"),L=await createImageBitmap(await C.blob());u=v(T,L)}{let N=await fetch("../assets/img/brickwall_diffuse.png"),j=await createImageBitmap(await N.blob());c=v(T,j)}{let Y=await fetch("../assets/img/brickwall_normal.png"),O=await createImageBitmap(await Y.blob());d=v(T,O)}{let X=await fetch("../assets/img/brickwall_height.png"),z=await createImageBitmap(await X.blob());p=v(T,z)}let k=T.createSampler({magFilter:"linear",minFilter:"linear"}),H={colorAttachments:[{view:void 0,clearValue:{r:0,g:0,b:0,a:1},loadOp:"clear",storeOp:"store"}],depthStencilAttachment:{view:G.createView(),depthClearValue:1,depthLoadOp:"clear",depthStoreOp:"store"}},q=l(T,m(1,1,1)),W=h([0,1],[GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,GPUShaderStage.FRAGMENT|GPUShaderStage.VERTEX],["buffer","buffer"],[{type:"uniform"},{type:"uniform"}],[[{buffer:U},{buffer:M}]],"Frame",T),Z=h([0,1,2,3],[GPUShaderStage.FRAGMENT],["sampler","texture","texture","texture"],[{type:"filtering"},{sampleType:"float"},{sampleType:"float"},{sampleType:"float"}],[[k,n.createView(),t.createView(),r.createView()],[k,n.createView(),o.createView(),u.createView()],[k,c.createView(),d.createView(),p.createView()]],"Surface",T),$=g.width/g.height,K=i._E.perspective(2*Math.PI/5,$,.1,10),J=()=>{switch(B["Bump Mode"]){case"Diffuse Texture":return 0;case"Normal Texture":return 1;case"Depth Texture":return 2;case"Normal Map":return 3;case"Parallax Scale":return 4;case"Steep Parallax":return 5}},Q=x(T,"NormalMappingRender",[W.bindGroupLayout,Z.bindGroupLayout],s,["float32x3","float32x3","float32x2","float32x3","float32x3"],s,P,!0),ee=0,en=()=>{ee=a[B.Texture]};b.add(B,"Bump Mode",["Diffuse Texture","Normal Texture","Depth Texture","Normal Map","Parallax Scale","Steep Parallax"]),b.add(B,"Texture",["Spiral","Toybox","BrickWall"]).onChange(en);let et=b.addFolder("Light"),er=b.addFolder("Depth");et.add(B,"Reset Light").onChange(()=>{ea.setValue(1.7),ei.setValue(.7),eo.setValue(-1.9),es.setValue(.02)});let ea=et.add(B,"lightPosX",-5,5).step(.1),ei=et.add(B,"lightPosY",-5,5).step(.1),eo=et.add(B,"lightPosZ",-5,5).step(.1),es=et.add(B,"lightIntensity",0,.1).step(.002);er.add(B,"depthScale",0,.1).step(.01),er.add(B,"depthLayers",1,32).step(1),requestAnimationFrame(function e(){if(!f.active)return;let n=i._E.lookAt([B.cameraPosX,B.cameraPosY,B.cameraPosZ],[0,0,0],[0,1,0]),t=function(){let e=i._E.create();i._E.identity(e);let n=Date.now()/1e3;return i._E.rotateY(e,-.5*n,e),e}(),r=new Float32Array([...K,...n,...t]),a=J();T.queue.writeBuffer(U,0,r.buffer,r.byteOffset,r.byteLength),T.queue.writeBuffer(M,0,new Uint32Array([a])),T.queue.writeBuffer(M,4,new Float32Array([B.lightPosX,B.lightPosY,B.lightPosZ,B.lightIntensity,B.depthScale,B.depthLayers])),H.colorAttachments[0].view=S.getCurrentTexture().createView();let o=T.createCommandEncoder(),s=o.beginRenderPass(H);s.setPipeline(Q),s.setBindGroup(0,W.bindGroups[0]),s.setBindGroup(1,Z.bindGroups[ee]),s.setVertexBuffer(0,q.vertexBuffer),s.setIndexBuffer(q.indexBuffer,"uint16"),s.drawIndexed(q.indexCount),s.end(),T.queue.submit([o.finish()]),requestAnimationFrame(e)})},T=()=>(0,o.Tl)({name:"Normal Mapping",description:"This example demonstrates multiple different methods that employ fragment shaders to achieve additional perceptual depth on the surface of a cube mesh. Demonstrated methods include normal mapping, parallax mapping, and steep parallax mapping.",gui:!0,init:y,sources:[{name:b.substring(21),contents:"import { mat4 } from 'wgpu-matrix';\nimport { makeSample, SampleInit } from '../../components/SampleLayout';\nimport normalMapWGSL from './normalMap.wgsl';\nimport { createMeshRenderable } from '../../meshes/mesh';\nimport { createBoxMeshWithTangents } from '../../meshes/box';\nimport {\n createBindGroupDescriptor,\n create3DRenderPipeline,\n createTextureFromImage,\n} from './utils';\n\nconst MAT4X4_BYTES = 64;\nenum TextureAtlas {\n Spiral,\n Toybox,\n BrickWall,\n}\n\nconst init: SampleInit = async ({ canvas, pageState, gui }) => {\n const adapter = await navigator.gpu.requestAdapter();\n const device = await adapter.requestDevice();\n if (!pageState.active) return;\n const context = canvas.getContext('webgpu') as GPUCanvasContext;\n const devicePixelRatio = window.devicePixelRatio;\n canvas.width = canvas.clientWidth * devicePixelRatio;\n canvas.height = canvas.clientHeight * devicePixelRatio;\n const presentationFormat = navigator.gpu.getPreferredCanvasFormat();\n context.configure({\n device,\n format: presentationFormat,\n alphaMode: 'premultiplied',\n });\n\n interface GUISettings {\n 'Bump Mode':\n | 'Diffuse Texture'\n | 'Normal Texture'\n | 'Depth Texture'\n | 'Normal Map'\n | 'Parallax Scale'\n | 'Steep Parallax';\n cameraPosX: number;\n cameraPosY: number;\n cameraPosZ: number;\n lightPosX: number;\n lightPosY: number;\n lightPosZ: number;\n lightIntensity: number;\n depthScale: number;\n depthLayers: number;\n Texture: string;\n 'Reset Light': () => void;\n }\n\n const settings: GUISettings = {\n 'Bump Mode': 'Normal Map',\n cameraPosX: 0.0,\n cameraPosY: 0.8,\n cameraPosZ: -1.4,\n lightPosX: 1.7,\n lightPosY: 0.7,\n lightPosZ: -1.9,\n lightIntensity: 0.02,\n depthScale: 0.05,\n depthLayers: 16,\n Texture: 'Spiral',\n 'Reset Light': () => {\n return;\n },\n };\n\n // Create normal mapping resources and pipeline\n const depthTexture = device.createTexture({\n size: [canvas.width, canvas.height],\n format: 'depth24plus',\n usage: GPUTextureUsage.RENDER_ATTACHMENT,\n });\n\n const uniformBuffer = device.createBuffer({\n // Buffer holding projection, view, and model matrices plus padding bytes\n size: MAT4X4_BYTES * 4,\n usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n });\n\n const mapMethodBuffer = device.createBuffer({\n // Buffer holding mapping type, light uniforms, and depth uniforms\n size: Float32Array.BYTES_PER_ELEMENT * 7,\n usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n });\n\n // Fetch the image and upload it into a GPUTexture.\n let woodDiffuseTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/wood_diffuse.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n woodDiffuseTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let spiralNormalTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/spiral_normal.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n spiralNormalTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let spiralHeightTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/spiral_height.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n spiralHeightTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let toyboxNormalTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/toybox_normal.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n toyboxNormalTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let toyboxHeightTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/toybox_height.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n toyboxHeightTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let brickwallDiffuseTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/brickwall_diffuse.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n brickwallDiffuseTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let brickwallNormalTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/brickwall_normal.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n brickwallNormalTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let brickwallHeightTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/brickwall_height.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n brickwallHeightTexture = createTextureFromImage(device, imageBitmap);\n }\n\n // Create a sampler with linear filtering for smooth interpolation.\n const sampler = device.createSampler({\n magFilter: 'linear',\n minFilter: 'linear',\n });\n\n const renderPassDescriptor: GPURenderPassDescriptor = {\n colorAttachments: [\n {\n view: undefined, // Assigned later\n\n clearValue: { r: 0.0, g: 0.0, b: 0.0, a: 1.0 },\n loadOp: 'clear',\n storeOp: 'store',\n },\n ],\n depthStencilAttachment: {\n view: depthTexture.createView(),\n\n depthClearValue: 1.0,\n depthLoadOp: 'clear',\n depthStoreOp: 'store',\n },\n };\n\n const box = createMeshRenderable(\n device,\n createBoxMeshWithTangents(1.0, 1.0, 1.0)\n );\n\n // Uniform bindGroups and bindGroupLayout\n const frameBGDescriptor = createBindGroupDescriptor(\n [0, 1],\n [\n GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,\n GPUShaderStage.FRAGMENT | GPUShaderStage.VERTEX,\n ],\n ['buffer', 'buffer'],\n [{ type: 'uniform' }, { type: 'uniform' }],\n [[{ buffer: uniformBuffer }, { buffer: mapMethodBuffer }]],\n 'Frame',\n device\n );\n\n // Texture bindGroups and bindGroupLayout\n const surfaceBGDescriptor = createBindGroupDescriptor(\n [0, 1, 2, 3],\n [GPUShaderStage.FRAGMENT],\n ['sampler', 'texture', 'texture', 'texture'],\n [\n { type: 'filtering' },\n { sampleType: 'float' },\n { sampleType: 'float' },\n { sampleType: 'float' },\n ],\n // Multiple bindgroups that accord to the layout defined above\n [\n [\n sampler,\n woodDiffuseTexture.createView(),\n spiralNormalTexture.createView(),\n spiralHeightTexture.createView(),\n ],\n [\n sampler,\n woodDiffuseTexture.createView(),\n toyboxNormalTexture.createView(),\n toyboxHeightTexture.createView(),\n ],\n [\n sampler,\n brickwallDiffuseTexture.createView(),\n brickwallNormalTexture.createView(),\n brickwallHeightTexture.createView(),\n ],\n ],\n 'Surface',\n device\n );\n\n const aspect = canvas.width / canvas.height;\n const projectionMatrix = mat4.perspective(\n (2 * Math.PI) / 5,\n aspect,\n 0.1,\n 10.0\n ) as Float32Array;\n\n function getViewMatrix() {\n return mat4.lookAt(\n [settings.cameraPosX, settings.cameraPosY, settings.cameraPosZ],\n [0, 0, 0],\n [0, 1, 0]\n );\n }\n\n function getModelMatrix() {\n const modelMatrix = mat4.create();\n mat4.identity(modelMatrix);\n const now = Date.now() / 1000;\n mat4.rotateY(modelMatrix, now * -0.5, modelMatrix);\n return modelMatrix;\n }\n\n // Change the model mapping type\n const getMappingType = (): number => {\n switch (settings['Bump Mode']) {\n case 'Diffuse Texture':\n return 0;\n case 'Normal Texture':\n return 1;\n case 'Depth Texture':\n return 2;\n case 'Normal Map':\n return 3;\n case 'Parallax Scale':\n return 4;\n case 'Steep Parallax':\n return 5;\n }\n };\n\n const texturedCubePipeline = create3DRenderPipeline(\n device,\n 'NormalMappingRender',\n [frameBGDescriptor.bindGroupLayout, surfaceBGDescriptor.bindGroupLayout],\n normalMapWGSL,\n // Position, normal uv tangent bitangent\n ['float32x3', 'float32x3', 'float32x2', 'float32x3', 'float32x3'],\n normalMapWGSL,\n presentationFormat,\n true\n );\n\n let currentSurfaceBindGroup = 0;\n const onChangeTexture = () => {\n currentSurfaceBindGroup = TextureAtlas[settings.Texture];\n };\n\n gui.add(settings, 'Bump Mode', [\n 'Diffuse Texture',\n 'Normal Texture',\n 'Depth Texture',\n 'Normal Map',\n 'Parallax Scale',\n 'Steep Parallax',\n ]);\n gui\n .add(settings, 'Texture', ['Spiral', 'Toybox', 'BrickWall'])\n .onChange(onChangeTexture);\n const lightFolder = gui.addFolder('Light');\n const depthFolder = gui.addFolder('Depth');\n lightFolder.add(settings, 'Reset Light').onChange(() => {\n lightPosXController.setValue(1.7);\n lightPosYController.setValue(0.7);\n lightPosZController.setValue(-1.9);\n lightIntensityController.setValue(0.02);\n });\n const lightPosXController = lightFolder\n .add(settings, 'lightPosX', -5, 5)\n .step(0.1);\n const lightPosYController = lightFolder\n .add(settings, 'lightPosY', -5, 5)\n .step(0.1);\n const lightPosZController = lightFolder\n .add(settings, 'lightPosZ', -5, 5)\n .step(0.1);\n const lightIntensityController = lightFolder\n .add(settings, 'lightIntensity', 0.0, 0.1)\n .step(0.002);\n depthFolder.add(settings, 'depthScale', 0.0, 0.1).step(0.01);\n depthFolder.add(settings, 'depthLayers', 1, 32).step(1);\n\n function frame() {\n if (!pageState.active) return;\n\n // Write to normal map shader\n const viewMatrix = getViewMatrix();\n\n const modelMatrix = getModelMatrix();\n\n const matrices = new Float32Array([\n ...projectionMatrix,\n ...viewMatrix,\n ...modelMatrix,\n ]);\n\n const mappingType = getMappingType();\n\n device.queue.writeBuffer(\n uniformBuffer,\n 0,\n matrices.buffer,\n matrices.byteOffset,\n matrices.byteLength\n );\n\n device.queue.writeBuffer(\n mapMethodBuffer,\n 0,\n new Uint32Array([mappingType])\n );\n\n device.queue.writeBuffer(\n mapMethodBuffer,\n 4,\n new Float32Array([\n settings.lightPosX,\n settings.lightPosY,\n settings.lightPosZ,\n settings.lightIntensity,\n settings.depthScale,\n settings.depthLayers,\n ])\n );\n\n renderPassDescriptor.colorAttachments[0].view = context\n .getCurrentTexture()\n .createView();\n\n const commandEncoder = device.createCommandEncoder();\n const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);\n // Draw textured Cube\n passEncoder.setPipeline(texturedCubePipeline);\n passEncoder.setBindGroup(0, frameBGDescriptor.bindGroups[0]);\n passEncoder.setBindGroup(\n 1,\n surfaceBGDescriptor.bindGroups[currentSurfaceBindGroup]\n );\n passEncoder.setVertexBuffer(0, box.vertexBuffer);\n passEncoder.setIndexBuffer(box.indexBuffer, 'uint16');\n passEncoder.drawIndexed(box.indexCount);\n passEncoder.end();\n device.queue.submit([commandEncoder.finish()]);\n\n requestAnimationFrame(frame);\n }\n requestAnimationFrame(frame);\n};\n\nconst NormalMapping: () => JSX.Element = () =>\n makeSample({\n name: 'Normal Mapping',\n description:\n 'This example demonstrates multiple different methods that employ fragment shaders to achieve additional perceptual depth on the surface of a cube mesh. Demonstrated methods include normal mapping, parallax mapping, and steep parallax mapping.',\n gui: true,\n init,\n sources: [\n {\n name: __filename.substring(__dirname.length + 1),\n contents: __SOURCE__,\n },\n {\n name: './normalMap.wgsl',\n contents: normalMapWGSL,\n editable: true,\n },\n {\n name: '../../meshes/box.ts',\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n contents: require('!!raw-loader!../../meshes/box.ts').default,\n },\n {\n name: '../../meshes/mesh.ts',\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n contents: require('!!raw-loader!../../meshes/mesh.ts').default,\n },\n {\n name: './utils.ts',\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n contents: require('!!raw-loader!./utils.ts').default,\n },\n ],\n filename: __filename,\n });\n\nexport default NormalMapping;\n"},{name:"./normalMap.wgsl",contents:s,editable:!0},{name:"../../meshes/box.ts",contents:t(3583).Z},{name:"../../meshes/mesh.ts",contents:t(3150).Z},{name:"./utils.ts",contents:t(1146).Z}],filename:b});var S=T},9147:function(e){e.exports={canvasContainer:"SampleLayout_canvasContainer__zRR_l",sourceFileNav:"SampleLayout_sourceFileNav__ml48P",sourceFileContainer:"SampleLayout_sourceFileContainer__3s84x"}},3583:function(e,n){"use strict";n.Z="import { vec3 } from 'wgpu-matrix';\nimport { getMeshPosAtIndex, getMeshUVAtIndex, Mesh } from './mesh';\n\nexport interface BoxMesh extends Mesh {\n vertices: Float32Array;\n indices: Uint16Array | Uint32Array;\n vertexStride: number;\n}\n\n//// Borrowed and simplified from https://github.com/mrdoob/three.js/blob/master/src/geometries/BoxGeometry.js\n//// Presumes vertex buffer alignment of verts, normals, and uvs\nconst createBoxGeometry = (\n width = 1.0,\n height = 1.0,\n depth = 1.0,\n widthSegments = 1.0,\n heightSegments = 1.0,\n depthSegments = 1.0\n) => {\n widthSegments = Math.floor(widthSegments);\n heightSegments = Math.floor(heightSegments);\n depthSegments = Math.floor(depthSegments);\n\n const indices = [];\n const vertNormalUVBuffer = [];\n\n let numVertices = 0;\n\n const buildPlane = (\n u: 0 | 1 | 2,\n v: 0 | 1 | 2,\n w: 0 | 1 | 2,\n udir: -1 | 1,\n vdir: -1 | 1,\n planeWidth: number,\n planeHeight: number,\n planeDepth: number,\n xSections: number,\n ySections: number\n ) => {\n const segmentWidth = planeWidth / xSections;\n const segmentHeight = planeHeight / ySections;\n\n const widthHalf = planeWidth / 2;\n const heightHalf = planeHeight / 2;\n const depthHalf = planeDepth / 2;\n\n const gridX1 = xSections + 1;\n const gridY1 = ySections + 1;\n\n let vertexCounter = 0;\n\n const vertex = vec3.create();\n const normal = vec3.create();\n for (let iy = 0; iy < gridY1; iy++) {\n const y = iy * segmentHeight - heightHalf;\n\n for (let ix = 0; ix < gridX1; ix++) {\n const x = ix * segmentWidth - widthHalf;\n\n //Calculate plane vertices\n vertex[u] = x * udir;\n vertex[v] = y * vdir;\n vertex[w] = depthHalf;\n vertNormalUVBuffer.push(...vertex);\n\n //Caclulate normal\n normal[u] = 0;\n normal[v] = 0;\n normal[w] = planeDepth > 0 ? 1.0 : -1.0;\n vertNormalUVBuffer.push(...normal);\n\n //Calculate uvs\n vertNormalUVBuffer.push(ix / xSections);\n vertNormalUVBuffer.push(1 - iy / ySections);\n\n vertexCounter += 1;\n }\n }\n\n for (let iy = 0; iy < ySections; iy++) {\n for (let ix = 0; ix < xSections; ix++) {\n const a = numVertices + ix + gridX1 * iy;\n const b = numVertices + ix + gridX1 * (iy + 1);\n const c = numVertices + (ix + 1) + gridX1 * (iy + 1);\n const d = numVertices + (ix + 1) + gridX1 * iy;\n\n //Push vertex indices\n //6 indices for each face\n indices.push(a, b, d);\n indices.push(b, c, d);\n\n numVertices += vertexCounter;\n }\n }\n };\n\n //Side face\n buildPlane(\n 2, //z\n 1, //y\n 0, //x\n -1,\n -1,\n depth,\n height,\n width,\n depthSegments,\n heightSegments\n );\n\n //Side face\n buildPlane(\n 2, //z\n 1, //y\n 0, //x\n 1,\n -1,\n depth,\n height,\n -width,\n depthSegments,\n heightSegments\n );\n\n //Bottom face\n buildPlane(\n 0, //x\n 2, //z\n 1, //y\n 1,\n 1,\n width,\n depth,\n height,\n widthSegments,\n depthSegments\n );\n\n //Top face\n buildPlane(\n 0, //x\n 2, //z\n 1, //y\n 1,\n -1,\n width,\n depth,\n -height,\n widthSegments,\n depthSegments\n );\n\n //Side faces\n buildPlane(\n 0, //x\n 1, //y\n 2, //z\n 1,\n -1,\n width,\n height,\n depth,\n widthSegments,\n heightSegments\n );\n\n //Side face\n buildPlane(\n 0, //x\n 1, //y\n 2, //z\n -1,\n -1,\n width,\n height,\n -depth,\n widthSegments,\n heightSegments\n );\n\n return {\n vertices: vertNormalUVBuffer,\n indices: indices,\n };\n};\n\ntype IndexFormat = 'uint16' | 'uint32';\n\n// Box mesh code ported from threejs, with addition of indexFormat specifier for vertex pulling\nexport const createBoxMesh = (\n width = 1.0,\n height = 1.0,\n depth = 1.0,\n widthSegments = 1.0,\n heightSegments = 1.0,\n depthSegments = 1.0,\n indexFormat: IndexFormat = 'uint16'\n): Mesh => {\n const { vertices, indices } = createBoxGeometry(\n width,\n height,\n depth,\n widthSegments,\n heightSegments,\n depthSegments\n );\n\n const vertexStride = 8 * Float32Array.BYTES_PER_ELEMENT; //calculateVertexStride(vertexProperties);\n\n const indicesArray =\n indexFormat === 'uint16'\n ? new Uint16Array(indices)\n : new Uint32Array(indices);\n\n return {\n vertices: new Float32Array(vertices),\n indices: indicesArray,\n vertexStride: vertexStride,\n };\n};\n\nexport const createBoxMeshWithTangents = (\n width = 1.0,\n height = 1.0,\n depth = 1.0,\n widthSegments = 1.0,\n heightSegments = 1.0,\n depthSegments = 1.0\n): Mesh => {\n const mesh = createBoxMesh(\n width,\n height,\n depth,\n widthSegments,\n heightSegments,\n depthSegments\n );\n\n const originalStrideElements =\n mesh.vertexStride / Float32Array.BYTES_PER_ELEMENT;\n\n const vertexCount = mesh.vertices.length / originalStrideElements;\n\n const tangents = new Array(vertexCount);\n const bitangents = new Array(vertexCount);\n const counts = new Array(vertexCount);\n for (let i = 0; i < vertexCount; i++) {\n tangents[i] = [0, 0, 0];\n bitangents[i] = [0, 0, 0];\n counts[i] = 0;\n }\n\n for (let i = 0; i < mesh.indices.length; i += 3) {\n const [idx1, idx2, idx3] = [\n mesh.indices[i],\n mesh.indices[i + 1],\n mesh.indices[i + 2],\n ];\n\n const [pos1, pos2, pos3] = [\n getMeshPosAtIndex(mesh, idx1),\n getMeshPosAtIndex(mesh, idx2),\n getMeshPosAtIndex(mesh, idx3),\n ];\n\n const [uv1, uv2, uv3] = [\n getMeshUVAtIndex(mesh, idx1),\n getMeshUVAtIndex(mesh, idx2),\n getMeshUVAtIndex(mesh, idx3),\n ];\n\n const edge1 = vec3.sub(pos2, pos1);\n const edge2 = vec3.sub(pos3, pos1);\n const deltaUV1 = vec3.sub(uv2, uv1);\n const deltaUV2 = vec3.sub(uv3, uv1);\n\n // Edge of a triangle moves in both u and v direction (2d)\n // deltaU * tangent vector + deltav * bitangent\n // Manipulating the data into matrices, we get an equation\n\n const constantVal =\n 1.0 / (deltaUV1[0] * deltaUV2[1] - deltaUV1[1] * deltaUV2[0]);\n\n const tangent = [\n constantVal * (deltaUV2[1] * edge1[0] - deltaUV1[1] * edge2[0]),\n constantVal * (deltaUV2[1] * edge1[1] - deltaUV1[1] * edge2[1]),\n constantVal * (deltaUV2[1] * edge1[2] - deltaUV1[1] * edge2[2]),\n ];\n\n const bitangent = [\n constantVal * (-deltaUV2[0] * edge1[0] + deltaUV1[0] * edge2[0]),\n constantVal * (-deltaUV2[0] * edge1[1] + deltaUV1[0] * edge2[1]),\n constantVal * (-deltaUV2[0] * edge1[2] + deltaUV1[0] * edge2[2]),\n ];\n\n //Accumulate tangents and bitangents\n tangents[idx1] = vec3.add(tangents[idx1], tangent);\n bitangents[idx1] = vec3.add(bitangents[idx1], bitangent);\n tangents[idx2] = vec3.add(tangents[idx2], tangent);\n bitangents[idx2] = vec3.add(bitangents[idx2], bitangent);\n tangents[idx3] = vec3.add(tangents[idx3], tangent);\n bitangents[idx3] = vec3.add(bitangents[idx3], bitangent);\n\n //Increment index count\n counts[idx1]++;\n counts[idx2]++;\n counts[idx3]++;\n }\n\n for (let i = 0; i < tangents.length; i++) {\n tangents[i] = vec3.divScalar(tangents[i], counts[i]);\n bitangents[i] = vec3.divScalar(bitangents[i], counts[i]);\n }\n\n const newStrideElements = 14;\n const wTangentArray = new Float32Array(vertexCount * newStrideElements);\n\n for (let i = 0; i < vertexCount; i++) {\n //Copy original vertex data (pos, normal uv)\n wTangentArray.set(\n //Get the original vertex [8 elements] (3 ele pos, 3 ele normal, 2 ele uv)\n mesh.vertices.subarray(\n i * originalStrideElements,\n (i + 1) * originalStrideElements\n ),\n //And put it at the proper location in the new array [14 bytes = 8 og + 6 empty]\n i * newStrideElements\n );\n //For each vertex, place tangent after originalStride\n wTangentArray.set(\n tangents[i],\n i * newStrideElements + originalStrideElements\n );\n //Place bitangent after 3 elements of tangent\n wTangentArray.set(\n bitangents[i],\n i * newStrideElements + originalStrideElements + 3\n );\n }\n\n return {\n vertices: wTangentArray,\n indices: mesh.indices,\n vertexStride: mesh.vertexStride + Float32Array.BYTES_PER_ELEMENT * 3 * 2,\n };\n};\n"},3150:function(e,n){"use strict";n.Z="import { vec3, vec2 } from 'wgpu-matrix';\n\n// Defines what to pass to pipeline to render mesh\nexport interface Renderable {\n vertexBuffer: GPUBuffer;\n indexBuffer: GPUBuffer;\n indexCount: number;\n bindGroup?: GPUBindGroup;\n}\n\nexport interface Mesh {\n vertices: Float32Array;\n indices: Uint16Array | Uint32Array;\n vertexStride: number;\n}\n\n/**\n * @param {GPUDevice} device - A valid GPUDevice.\n * @param {Mesh} mesh - An indexed triangle-list mesh, containing its vertices, indices, and vertexStride (number of elements per vertex).\n * @param {boolean} storeVertices - A boolean flag indicating whether the vertexBuffer should be available to use as a storage buffer.\n * @returns {boolean} An object containing an array of bindGroups and the bindGroupLayout they implement.\n */\nexport const createMeshRenderable = (\n device: GPUDevice,\n mesh: Mesh,\n storeVertices = false,\n storeIndices = false\n): Renderable => {\n // Define buffer usage\n const vertexBufferUsage = storeVertices\n ? GPUBufferUsage.VERTEX | GPUBufferUsage.STORAGE\n : GPUBufferUsage.VERTEX;\n const indexBufferUsage = storeIndices\n ? GPUBufferUsage.INDEX | GPUBufferUsage.STORAGE\n : GPUBufferUsage.INDEX;\n\n // Create vertex and index buffers\n const vertexBuffer = device.createBuffer({\n size: mesh.vertices.byteLength,\n usage: vertexBufferUsage,\n mappedAtCreation: true,\n });\n new Float32Array(vertexBuffer.getMappedRange()).set(mesh.vertices);\n vertexBuffer.unmap();\n\n const indexBuffer = device.createBuffer({\n size: mesh.indices.byteLength,\n usage: indexBufferUsage,\n mappedAtCreation: true,\n });\n\n // Determine whether index buffer is indices are in uint16 or uint32 format\n if (\n mesh.indices.byteLength ===\n mesh.indices.length * Uint16Array.BYTES_PER_ELEMENT\n ) {\n new Uint16Array(indexBuffer.getMappedRange()).set(mesh.indices);\n } else {\n new Uint32Array(indexBuffer.getMappedRange()).set(mesh.indices);\n }\n\n indexBuffer.unmap();\n\n return {\n vertexBuffer,\n indexBuffer,\n indexCount: mesh.indices.length,\n };\n};\n\nexport const getMeshPosAtIndex = (mesh: Mesh, index: number) => {\n const arr = new Float32Array(\n mesh.vertices.buffer,\n index * mesh.vertexStride + 0,\n 3\n );\n return vec3.fromValues(arr[0], arr[1], arr[2]);\n};\n\nexport const getMeshNormalAtIndex = (mesh: Mesh, index: number) => {\n const arr = new Float32Array(\n mesh.vertices.buffer,\n index * mesh.vertexStride + 3 * Float32Array.BYTES_PER_ELEMENT,\n 3\n );\n return vec3.fromValues(arr[0], arr[1], arr[2]);\n};\n\nexport const getMeshUVAtIndex = (mesh: Mesh, index: number) => {\n const arr = new Float32Array(\n mesh.vertices.buffer,\n index * mesh.vertexStride + 6 * Float32Array.BYTES_PER_ELEMENT,\n 2\n );\n return vec2.fromValues(arr[0], arr[1]);\n};\n"},1146:function(e,n){"use strict";n.Z="type BindGroupBindingLayout =\n | GPUBufferBindingLayout\n | GPUTextureBindingLayout\n | GPUSamplerBindingLayout\n | GPUStorageTextureBindingLayout\n | GPUExternalTextureBindingLayout;\n\nexport type BindGroupsObjectsAndLayout = {\n bindGroups: GPUBindGroup[];\n bindGroupLayout: GPUBindGroupLayout;\n};\n\ntype ResourceTypeName =\n | 'buffer'\n | 'texture'\n | 'sampler'\n | 'externalTexture'\n | 'storageTexture';\n\n/**\n * @param {number[]} bindings - The binding value of each resource in the bind group.\n * @param {number[]} visibilities - The GPUShaderStage visibility of the resource at the corresponding index.\n * @param {ResourceTypeName[]} resourceTypes - The resourceType at the corresponding index.\n * @returns {BindGroupsObjectsAndLayout} An object containing an array of bindGroups and the bindGroupLayout they implement.\n */\nexport const createBindGroupDescriptor = (\n bindings: number[],\n visibilities: number[],\n resourceTypes: ResourceTypeName[],\n resourceLayouts: BindGroupBindingLayout[],\n resources: GPUBindingResource[][],\n label: string,\n device: GPUDevice\n): BindGroupsObjectsAndLayout => {\n // Create layout of each entry within a bindGroup\n const layoutEntries: GPUBindGroupLayoutEntry[] = [];\n for (let i = 0; i < bindings.length; i++) {\n layoutEntries.push({\n binding: bindings[i],\n visibility: visibilities[i % visibilities.length],\n [resourceTypes[i]]: resourceLayouts[i],\n });\n }\n\n // Apply entry layouts to bindGroupLayout\n const bindGroupLayout = device.createBindGroupLayout({\n label: `${label}.bindGroupLayout`,\n entries: layoutEntries,\n });\n\n // Create bindGroups that conform to the layout\n const bindGroups: GPUBindGroup[] = [];\n for (let i = 0; i < resources.length; i++) {\n const groupEntries: GPUBindGroupEntry[] = [];\n for (let j = 0; j < resources[0].length; j++) {\n groupEntries.push({\n binding: j,\n resource: resources[i][j],\n });\n }\n const newBindGroup = device.createBindGroup({\n label: `${label}.bindGroup${i}`,\n layout: bindGroupLayout,\n entries: groupEntries,\n });\n bindGroups.push(newBindGroup);\n }\n\n return {\n bindGroups,\n bindGroupLayout,\n };\n};\n\nexport type ShaderKeyInterface = {\n [K in T[number]]: number;\n};\n\ninterface AttribAcc {\n attributes: GPUVertexAttribute[];\n arrayStride: number;\n}\n\n/**\n * @param {GPUVertexFormat} vf - A valid GPUVertexFormat, representing a per-vertex value that can be passed to the vertex shader.\n * @returns {number} The number of bytes present in the value to be passed.\n */\nexport const convertVertexFormatToBytes = (vf: GPUVertexFormat): number => {\n const splitFormat = vf.split('x');\n const bytesPerElement = parseInt(splitFormat[0].replace(/[^0-9]/g, '')) / 8;\n\n const bytesPerVec =\n bytesPerElement *\n (splitFormat[1] !== undefined ? parseInt(splitFormat[1]) : 1);\n\n return bytesPerVec;\n};\n\n/** Creates a GPUVertexBuffer Layout that maps to an interleaved vertex buffer.\n * @param {GPUVertexFormat[]} vertexFormats - An array of valid GPUVertexFormats.\n * @returns {GPUVertexBufferLayout} A GPUVertexBufferLayout representing an interleaved vertex buffer.\n */\nexport const createVBuffer = (\n vertexFormats: GPUVertexFormat[]\n): GPUVertexBufferLayout => {\n const initialValue: AttribAcc = { attributes: [], arrayStride: 0 };\n\n const vertexBuffer = vertexFormats.reduce(\n (acc: AttribAcc, curr: GPUVertexFormat, idx: number) => {\n const newAttribute: GPUVertexAttribute = {\n shaderLocation: idx,\n offset: acc.arrayStride,\n format: curr,\n };\n const nextOffset: number =\n acc.arrayStride + convertVertexFormatToBytes(curr);\n\n const retVal: AttribAcc = {\n attributes: [...acc.attributes, newAttribute],\n arrayStride: nextOffset,\n };\n return retVal;\n },\n initialValue\n );\n\n const layout: GPUVertexBufferLayout = {\n arrayStride: vertexBuffer.arrayStride,\n attributes: vertexBuffer.attributes,\n };\n\n return layout;\n};\n\nexport const create3DRenderPipeline = (\n device: GPUDevice,\n label: string,\n bgLayouts: GPUBindGroupLayout[],\n vertexShader: string,\n vBufferFormats: GPUVertexFormat[],\n fragmentShader: string,\n presentationFormat: GPUTextureFormat,\n depthTest = false,\n topology: GPUPrimitiveTopology = 'triangle-list',\n cullMode: GPUCullMode = 'back'\n) => {\n const pipelineDescriptor: GPURenderPipelineDescriptor = {\n label: `${label}.pipeline`,\n layout: device.createPipelineLayout({\n label: `${label}.pipelineLayout`,\n bindGroupLayouts: bgLayouts,\n }),\n vertex: {\n module: device.createShaderModule({\n label: `${label}.vertexShader`,\n code: vertexShader,\n }),\n entryPoint: 'vertexMain',\n buffers:\n vBufferFormats.length !== 0 ? [createVBuffer(vBufferFormats)] : [],\n },\n fragment: {\n module: device.createShaderModule({\n label: `${label}.fragmentShader`,\n code: fragmentShader,\n }),\n entryPoint: 'fragmentMain',\n targets: [\n {\n format: presentationFormat,\n },\n ],\n },\n primitive: {\n topology: topology,\n cullMode: cullMode,\n },\n };\n if (depthTest) {\n pipelineDescriptor.depthStencil = {\n depthCompare: 'less',\n depthWriteEnabled: true,\n format: 'depth24plus',\n };\n }\n return device.createRenderPipeline(pipelineDescriptor);\n};\n\nexport const createTextureFromImage = (\n device: GPUDevice,\n bitmap: ImageBitmap\n) => {\n const texture: GPUTexture = device.createTexture({\n size: [bitmap.width, bitmap.height, 1],\n format: 'rgba8unorm',\n usage:\n GPUTextureUsage.TEXTURE_BINDING |\n GPUTextureUsage.COPY_DST |\n GPUTextureUsage.RENDER_ATTACHMENT,\n });\n device.queue.copyExternalImageToTexture(\n { source: bitmap },\n { texture: texture },\n [bitmap.width, bitmap.height]\n );\n return texture;\n};\n"}}]); \ No newline at end of file diff --git a/_next/static/chunks/118.d387cb71795d0f20.js b/_next/static/chunks/118.d387cb71795d0f20.js new file mode 100644 index 00000000..f04e46a5 --- /dev/null +++ b/_next/static/chunks/118.d387cb71795d0f20.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[118],{5671:function(e,n,t){"use strict";t.d(n,{Tl:function(){return p},hu:function(){return d}});var r=t(5893),a=t(9008),i=t.n(a),o=t(1163),s=t(7294),l=t(9147),u=t.n(l);t(7319);let c=e=>{let n=(0,s.useRef)(null),a=(0,s.useMemo)(()=>e.sources.map(e=>{let{name:n,contents:a}=e;return{name:n,...function(e){let n;let a=null;{a=document.createElement("div");let i=t(4631);n=i(a,{lineNumbers:!0,lineWrapping:!0,theme:"monokai",readOnly:!0})}return{Container:function(t){return(0,r.jsx)("div",{...t,children:(0,r.jsx)("div",{ref(t){a&&t&&(t.appendChild(a),n.setOption("value",e))}})})}}}(a)}}),e.sources),l=(0,s.useRef)(null),c=(0,s.useMemo)(()=>{if(e.gui){let n=t(4376);return new n.GUI({autoPlace:!1})}},[]),p=(0,s.useRef)(null),d=(0,s.useMemo)(()=>{if(e.stats){let n=t(2792);return new n}},[]),m=(0,o.useRouter)(),f=m.asPath.match(/#([a-zA-Z0-9\.\/]+)/),[g,h]=(0,s.useState)(null),[x,b]=(0,s.useState)(null);return(0,s.useEffect)(()=>{if(f?b(f[1]):b(a[0].name),c&&l.current)for(l.current.appendChild(c.domElement);c.__controllers.length>0;)c.__controllers[0].remove();d&&p.current&&(d.dom.style.position="absolute",d.showPanel(1),p.current.appendChild(d.dom));let t={active:!0},r=()=>{t.active=!1};try{let i=n.current;if(!i)throw Error("The canvas is not available");let o=e.init({canvas:i,pageState:t,gui:c,stats:d});o instanceof Promise&&o.catch(e=>{console.error(e),h(e)})}catch(s){console.error(s),h(s)}return r},[]),(0,r.jsxs)("main",{children:[(0,r.jsxs)(i(),{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"\n .CodeMirror {\n height: auto !important;\n margin: 1em 0;\n }\n\n .CodeMirror-scroll {\n height: auto !important;\n overflow: visible !important;\n }\n "}}),(0,r.jsx)("title",{children:"".concat(e.name," - WebGPU Samples")}),(0,r.jsx)("meta",{name:"description",content:e.description}),(0,r.jsx)("meta",{httpEquiv:"origin-trial",content:e.originTrial})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{children:e.name}),(0,r.jsx)("a",{target:"_blank",rel:"noreferrer",href:"https://github.com/".concat("webgpu/webgpu-samples","/tree/main/").concat(e.filename),children:"See it on Github!"}),(0,r.jsx)("p",{children:e.description}),g?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{children:"Something went wrong. Do your browser and device support WebGPU?"}),(0,r.jsx)("p",{children:"".concat(g)})]}):null]}),(0,r.jsxs)("div",{className:u().canvasContainer,children:[(0,r.jsx)("div",{style:{position:"absolute",left:10},ref:p}),(0,r.jsx)("div",{style:{position:"absolute",right:10},ref:l}),(0,r.jsx)("canvas",{ref:n})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("nav",{className:u().sourceFileNav,children:(0,r.jsx)("ul",{children:a.map((e,n)=>(0,r.jsx)("li",{children:(0,r.jsx)("a",{href:"#".concat(e.name),"data-active":x==e.name,onClick(){b(e.name)},children:e.name})},n))})}),a.map((e,n)=>(0,r.jsx)(e.Container,{className:u().sourceFileContainer,"data-active":x==e.name},n))]})]})},p=e=>(0,r.jsx)(c,{...e});function d(e,n){if(!e)throw Error(n)}},7118:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return x}});var r,a,i=t(6416),o=t(5671),s="\nconst modeAlbedoTexture = 0;\nconst modeNormalTexture = 1;\nconst modeDepthTexture = 2;\nconst modeNormalMap = 3;\nconst modeParallaxScale = 4;\nconst modeSteepParallax = 5;\n\nstruct SpaceTransforms {\n worldViewProjMatrix: mat4x4f,\n worldViewMatrix: mat4x4f,\n}\n\nstruct MapInfo {\n lightPosVS: vec3f, // Light position in view space\n mode: u32,\n lightIntensity: f32,\n depthScale: f32,\n depthLayers: f32,\n}\n\nstruct VertexInput {\n // Shader assumes the missing 4th float is 1.0\n @location(0) position : vec4f,\n @location(1) normal : vec3f,\n @location(2) uv : vec2f,\n @location(3) vert_tan: vec3f,\n @location(4) vert_bitan: vec3f,\n}\n\nstruct VertexOutput {\n @builtin(position) posCS : vec4f, // vertex position in clip space\n @location(0) posVS : vec3f, // vertex position in view space\n @location(1) tangentVS: vec3f, // vertex tangent in view space\n @location(2) bitangentVS: vec3f, // vertex tangent in view space\n @location(3) normalVS: vec3f, // vertex normal in view space\n @location(5) uv : vec2f, // vertex texture coordinate\n}\n\n// Uniforms\n@group(0) @binding(0) var spaceTransform : SpaceTransforms;\n@group(0) @binding(1) var mapInfo: MapInfo;\n\n// Texture info\n@group(1) @binding(0) var textureSampler: sampler;\n@group(1) @binding(1) var albedoTexture: texture_2d;\n@group(1) @binding(2) var normalTexture: texture_2d;\n@group(1) @binding(3) var depthTexture: texture_2d;\n\n\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n var output : VertexOutput;\n\n output.posCS = spaceTransform.worldViewProjMatrix * input.position;\n output.posVS = (spaceTransform.worldViewMatrix * input.position).xyz;\n output.tangentVS = (spaceTransform.worldViewMatrix * vec4(input.vert_tan, 0)).xyz;\n output.bitangentVS = (spaceTransform.worldViewMatrix * vec4(input.vert_bitan, 0)).xyz;\n output.normalVS = (spaceTransform.worldViewMatrix * vec4(input.normal, 0)).xyz;\n output.uv = input.uv;\n\n return output;\n}\n\n@fragment\nfn fragmentMain(input: VertexOutput) -> @location(0) vec4f {\n // Build the matrix to convert from tangent space to view space\n let tangentToView = mat3x3f(\n input.tangentVS,\n input.bitangentVS,\n input.normalVS,\n );\n\n // The inverse of a non-scaling affine 3x3 matrix is it's transpose\n let viewToTangent = transpose(tangentToView);\n\n // Calculate the normalized vector in tangent space from the camera to the fragment\n let viewDirTS = normalize(viewToTangent * input.posVS);\n\n // Apply parallax to the texture coordinate, if parallax is enabled\n var uv : vec2f;\n switch (mapInfo.mode) {\n case modeParallaxScale: {\n uv = parallaxScale(input.uv, viewDirTS);\n break;\n }\n case modeSteepParallax: {\n uv = parallaxSteep(input.uv, viewDirTS);\n break;\n }\n default: {\n uv = input.uv;\n break;\n }\n }\n\n // Sample the albedo texture\n let albedoSample = textureSample(albedoTexture, textureSampler, uv);\n\n // Sample the normal texture\n let normalSample = textureSample(normalTexture, textureSampler, uv);\n\n switch (mapInfo.mode) {\n case modeAlbedoTexture: { // Output the albedo sample\n return albedoSample;\n }\n case modeNormalTexture: { // Output the normal sample\n return normalSample;\n }\n case modeDepthTexture: { // Output the depth map\n return textureSample(depthTexture, textureSampler, input.uv);\n }\n default: {\n // Transform the normal sample to a tangent space normal\n let normalTS = normalSample.xyz * 2 - 1;\n\n // Convert normal from tangent space to view space, and normalize\n let normalVS = normalize(tangentToView * normalTS);\n\n // Calculate the vector in view space from the light position to the fragment\n let fragToLightVS = mapInfo.lightPosVS - input.posVS;\n\n // Calculate the square distance from the light to the fragment\n let lightSqrDist = dot(fragToLightVS, fragToLightVS);\n\n // Calculate the normalized vector in view space from the fragment to the light\n let lightDirVS = fragToLightVS * inverseSqrt(lightSqrDist);\n\n // Light strength is inversely proportional to square of distance from light\n let diffuseLight = mapInfo.lightIntensity * max(dot(lightDirVS, normalVS), 0) / lightSqrDist;\n\n // The diffuse is the albedo color multiplied by the diffuseLight\n let diffuse = albedoSample.rgb * diffuseLight;\n\n return vec4f(diffuse, 1.0);\n }\n }\n}\n\n\n// Returns the uv coordinate displaced in the view direction by a magnitude calculated by the depth\n// sampled from the depthTexture and the angle between the surface normal and view direction.\nfn parallaxScale(uv: vec2f, viewDirTS: vec3f) -> vec2f {\n let depthSample = textureSample(depthTexture, textureSampler, uv).r;\n return uv + viewDirTS.xy * (depthSample * mapInfo.depthScale) / -viewDirTS.z;\n}\n\n// Returns the uv coordinates displaced in the view direction by ray-tracing the depth map.\nfn parallaxSteep(startUV: vec2f, viewDirTS: vec3f) -> vec2f {\n // Calculate derivatives of the texture coordinate, so we can sample the texture with non-uniform\n // control flow.\n let ddx = dpdx(startUV);\n let ddy = dpdy(startUV);\n\n // Calculate the delta step in UV and depth per iteration\n let uvDelta = viewDirTS.xy * mapInfo.depthScale / (-viewDirTS.z * mapInfo.depthLayers);\n let depthDelta = 1.0 / f32(mapInfo.depthLayers);\n let posDelta = vec3(uvDelta, depthDelta);\n\n // Walk the depth texture, and stop when the ray intersects the depth map\n var pos = vec3(startUV, 0);\n for (var i = 0; i < 32; i++) {\n if (pos.z >= textureSampleGrad(depthTexture, textureSampler, pos.xy, ddx, ddy).r) {\n break; // Hit the surface\n }\n pos += posDelta;\n }\n\n return pos.xy;\n}\n";let l=function(e,n){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=t?GPUBufferUsage.VERTEX|GPUBufferUsage.STORAGE:GPUBufferUsage.VERTEX,i=r?GPUBufferUsage.INDEX|GPUBufferUsage.STORAGE:GPUBufferUsage.INDEX,o=e.createBuffer({size:n.vertices.byteLength,usage:a,mappedAtCreation:!0});new Float32Array(o.getMappedRange()).set(n.vertices),o.unmap();let s=e.createBuffer({size:n.indices.byteLength,usage:i,mappedAtCreation:!0});return n.indices.byteLength===n.indices.length*Uint16Array.BYTES_PER_ELEMENT?new Uint16Array(s.getMappedRange()).set(n.indices):new Uint32Array(s.getMappedRange()).set(n.indices),s.unmap(),{vertexBuffer:o,indexBuffer:s,indexCount:n.indices.length}},u=(e,n,t,r,a,i,o)=>{let s=[];for(let l=0;l{let n=e.split("x"),t=parseInt(n[0].replace(/[^0-9]/g,""))/8,r=t*(void 0!==n[1]?parseInt(n[1]):1);return r},p=e=>{let n=e.reduce((e,n,t)=>{let r={shaderLocation:t,offset:e.arrayStride,format:n},a=e.arrayStride+c(n),i={attributes:[...e.attributes,r],arrayStride:a};return i},{attributes:[],arrayStride:0}),t={arrayStride:n.arrayStride,attributes:n.attributes};return t},d=function(e,n,t,r,a,i,o){let s=arguments.length>7&&void 0!==arguments[7]&&arguments[7],l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:"triangle-list",u=arguments.length>9&&void 0!==arguments[9]?arguments[9]:"back",c={label:"".concat(n,".pipeline"),layout:e.createPipelineLayout({label:"".concat(n,".pipelineLayout"),bindGroupLayouts:t}),vertex:{module:e.createShaderModule({label:"".concat(n,".vertexShader"),code:r}),entryPoint:"vertexMain",buffers:0!==a.length?[p(a)]:[]},fragment:{module:e.createShaderModule({label:"".concat(n,".fragmentShader"),code:i}),entryPoint:"fragmentMain",targets:[{format:o}]},primitive:{topology:l,cullMode:u}};return s&&(c.depthStencil={depthCompare:"less",depthWriteEnabled:!0,format:"depth24plus"}),e.createRenderPipeline(c)},m=(e,n)=>{let t=e.createTexture({size:[n.width,n.height,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return e.queue.copyExternalImageToTexture({source:n},{texture:t},[n.width,n.height]),t};var f="src/sample/normalMap/main.ts";(r=a||(a={}))[r.Spiral=0]="Spiral",r[r.Toybox=1]="Toybox",r[r.BrickWall=2]="BrickWall";let g=async e=>{let n,t,r,o,c,p,f,g,{canvas:h,pageState:x,gui:b}=e,v=await navigator.gpu.requestAdapter(),w=await v.requestDevice();if(!x.active)return;let y=h.getContext("webgpu"),T=window.devicePixelRatio;h.width=h.clientWidth*T,h.height=h.clientHeight*T;let S=navigator.gpu.getPreferredCanvasFormat();y.configure({device:w,format:S,alphaMode:"premultiplied"});let P={"Bump Mode":"Normal Map",cameraPosX:0,cameraPosY:.8,cameraPosZ:-1.4,lightPosX:1.7,lightPosY:.7,lightPosZ:-1.9,lightIntensity:5,depthScale:.05,depthLayers:16,Texture:"Spiral","Reset Light"(){}},B=w.createTexture({size:[h.width,h.height],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT}),G=w.createBuffer({size:256,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),U=w.createBuffer({size:8*Float32Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),V=new ArrayBuffer(U.size),M=new DataView(V,0,V.byteLength);{let E=await fetch("../assets/img/wood_albedo.png"),I=await createImageBitmap(await E.blob());n=m(w,I)}{let A=await fetch("../assets/img/spiral_normal.png"),_=await createImageBitmap(await A.blob());t=m(w,_)}{let F=await fetch("../assets/img/spiral_height.png"),L=await createImageBitmap(await F.blob());r=m(w,L)}{let C=await fetch("../assets/img/toybox_normal.png"),D=await createImageBitmap(await C.blob());o=m(w,D)}{let R=await fetch("../assets/img/toybox_height.png"),N=await createImageBitmap(await R.blob());c=m(w,N)}{let O=await fetch("../assets/img/brickwall_albedo.png"),j=await createImageBitmap(await O.blob());p=m(w,j)}{let X=await fetch("../assets/img/brickwall_normal.png"),k=await createImageBitmap(await X.blob());f=m(w,k)}{let Y=await fetch("../assets/img/brickwall_height.png"),z=await createImageBitmap(await Y.blob());g=m(w,z)}let q=w.createSampler({magFilter:"linear",minFilter:"linear"}),Z={colorAttachments:[{view:void 0,clearValue:{r:0,g:0,b:0,a:1},loadOp:"clear",storeOp:"store"}],depthStencilAttachment:{view:B.createView(),depthClearValue:1,depthLoadOp:"clear",depthStoreOp:"store"}},W=l(w,function(e,n,t){let r=[{tangent:5,bitangent:2,normal:0},{tangent:4,bitangent:2,normal:1},{tangent:0,bitangent:5,normal:2},{tangent:0,bitangent:4,normal:3},{tangent:0,bitangent:2,normal:4},{tangent:1,bitangent:2,normal:5}],a=new Float32Array(56*r.length),i=new Uint16Array(6*r.length),o=[[+e/2,0,0],[-e/2,0,0],[0,+n/2,0],[0,-n/2,0],[0,0,+t/2],[0,0,-t/2]],s=0,l=0;for(let u=0;u{switch(P["Bump Mode"]){case"Albedo Texture":return 0;case"Normal Texture":return 1;case"Depth Texture":return 2;case"Normal Map":return 3;case"Parallax Scale":return 4;case"Steep Parallax":return 5}},ee=d(w,"NormalMappingRender",[H.bindGroupLayout,$.bindGroupLayout],s,["float32x3","float32x3","float32x2","float32x3","float32x3"],s,S,!0),en=0,et=()=>{en=a[P.Texture]};b.add(P,"Bump Mode",["Albedo Texture","Normal Texture","Depth Texture","Normal Map","Parallax Scale","Steep Parallax"]),b.add(P,"Texture",["Spiral","Toybox","BrickWall"]).onChange(et);let er=b.addFolder("Light"),ea=b.addFolder("Depth");er.add(P,"Reset Light").onChange(()=>{ei.setValue(1.7),eo.setValue(.7),es.setValue(-1.9),el.setValue(5)});let ei=er.add(P,"lightPosX",-5,5).step(.1),eo=er.add(P,"lightPosY",-5,5).step(.1),es=er.add(P,"lightPosZ",-5,5).step(.1),el=er.add(P,"lightIntensity",0,10).step(.1);ea.add(P,"depthScale",0,.1).step(.01),ea.add(P,"depthLayers",1,32).step(1),requestAnimationFrame(function e(){if(!x.active)return;let n=i._E.lookAt([P.cameraPosX,P.cameraPosY,P.cameraPosZ],[0,0,0],[0,1,0]),t=i._E.mul(n,function(){let e=i._E.create();i._E.identity(e);let n=Date.now()/1e3;return i._E.rotateY(e,-.5*n,e),e}()),r=i._E.mul(J,t),a=new Float32Array([...r,...t]),o=i.R3.create(P.lightPosX,P.lightPosY,P.lightPosZ),s=i.R3.transformMat4(o,n),l=Q();w.queue.writeBuffer(G,0,a.buffer,a.byteOffset,a.byteLength),M.setFloat32(0,s[0],!0),M.setFloat32(4,s[1],!0),M.setFloat32(8,s[2],!0),M.setUint32(12,l,!0),M.setFloat32(16,P.lightIntensity,!0),M.setFloat32(20,P.depthScale,!0),M.setFloat32(24,P.depthLayers,!0),w.queue.writeBuffer(U,0,V),Z.colorAttachments[0].view=y.getCurrentTexture().createView();let u=w.createCommandEncoder(),c=u.beginRenderPass(Z);c.setPipeline(ee),c.setBindGroup(0,H.bindGroups[0]),c.setBindGroup(1,$.bindGroups[en]),c.setVertexBuffer(0,W.vertexBuffer),c.setIndexBuffer(W.indexBuffer,"uint16"),c.drawIndexed(W.indexCount),c.end(),w.queue.submit([u.finish()]),requestAnimationFrame(e)})},h=()=>(0,o.Tl)({name:"Normal Mapping",description:"This example demonstrates multiple different methods that employ fragment shaders to achieve additional perceptual depth on the surface of a cube mesh. Demonstrated methods include normal mapping, parallax mapping, and steep parallax mapping.",gui:!0,init:g,sources:[{name:f.substring(21),contents:"import { mat4, vec3 } from 'wgpu-matrix';\nimport { makeSample, SampleInit } from '../../components/SampleLayout';\nimport normalMapWGSL from './normalMap.wgsl';\nimport { createMeshRenderable } from '../../meshes/mesh';\nimport { createBoxMeshWithTangents } from '../../meshes/box';\nimport {\n createBindGroupDescriptor,\n create3DRenderPipeline,\n createTextureFromImage,\n} from './utils';\n\nconst MAT4X4_BYTES = 64;\nenum TextureAtlas {\n Spiral,\n Toybox,\n BrickWall,\n}\n\nconst init: SampleInit = async ({ canvas, pageState, gui }) => {\n const adapter = await navigator.gpu.requestAdapter();\n const device = await adapter.requestDevice();\n if (!pageState.active) return;\n const context = canvas.getContext('webgpu') as GPUCanvasContext;\n const devicePixelRatio = window.devicePixelRatio;\n canvas.width = canvas.clientWidth * devicePixelRatio;\n canvas.height = canvas.clientHeight * devicePixelRatio;\n const presentationFormat = navigator.gpu.getPreferredCanvasFormat();\n context.configure({\n device,\n format: presentationFormat,\n alphaMode: 'premultiplied',\n });\n\n interface GUISettings {\n 'Bump Mode':\n | 'Albedo Texture'\n | 'Normal Texture'\n | 'Depth Texture'\n | 'Normal Map'\n | 'Parallax Scale'\n | 'Steep Parallax';\n cameraPosX: number;\n cameraPosY: number;\n cameraPosZ: number;\n lightPosX: number;\n lightPosY: number;\n lightPosZ: number;\n lightIntensity: number;\n depthScale: number;\n depthLayers: number;\n Texture: string;\n 'Reset Light': () => void;\n }\n\n const settings: GUISettings = {\n 'Bump Mode': 'Normal Map',\n cameraPosX: 0.0,\n cameraPosY: 0.8,\n cameraPosZ: -1.4,\n lightPosX: 1.7,\n lightPosY: 0.7,\n lightPosZ: -1.9,\n lightIntensity: 5.0,\n depthScale: 0.05,\n depthLayers: 16,\n Texture: 'Spiral',\n 'Reset Light': () => {\n return;\n },\n };\n\n // Create normal mapping resources and pipeline\n const depthTexture = device.createTexture({\n size: [canvas.width, canvas.height],\n format: 'depth24plus',\n usage: GPUTextureUsage.RENDER_ATTACHMENT,\n });\n\n const spaceTransformsBuffer = device.createBuffer({\n // Buffer holding projection, view, and model matrices plus padding bytes\n size: MAT4X4_BYTES * 4,\n usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n });\n\n const mapInfoBuffer = device.createBuffer({\n // Buffer holding mapping type, light uniforms, and depth uniforms\n size: Float32Array.BYTES_PER_ELEMENT * 8,\n usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n });\n const mapInfoArray = new ArrayBuffer(mapInfoBuffer.size);\n const mapInfoView = new DataView(mapInfoArray, 0, mapInfoArray.byteLength);\n\n // Fetch the image and upload it into a GPUTexture.\n let woodAlbedoTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/wood_albedo.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n woodAlbedoTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let spiralNormalTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/spiral_normal.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n spiralNormalTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let spiralHeightTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/spiral_height.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n spiralHeightTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let toyboxNormalTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/toybox_normal.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n toyboxNormalTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let toyboxHeightTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/toybox_height.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n toyboxHeightTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let brickwallAlbedoTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/brickwall_albedo.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n brickwallAlbedoTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let brickwallNormalTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/brickwall_normal.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n brickwallNormalTexture = createTextureFromImage(device, imageBitmap);\n }\n\n let brickwallHeightTexture: GPUTexture;\n {\n const response = await fetch('../assets/img/brickwall_height.png');\n const imageBitmap = await createImageBitmap(await response.blob());\n brickwallHeightTexture = createTextureFromImage(device, imageBitmap);\n }\n\n // Create a sampler with linear filtering for smooth interpolation.\n const sampler = device.createSampler({\n magFilter: 'linear',\n minFilter: 'linear',\n });\n\n const renderPassDescriptor: GPURenderPassDescriptor = {\n colorAttachments: [\n {\n view: undefined, // Assigned later\n\n clearValue: { r: 0.0, g: 0.0, b: 0.0, a: 1.0 },\n loadOp: 'clear',\n storeOp: 'store',\n },\n ],\n depthStencilAttachment: {\n view: depthTexture.createView(),\n\n depthClearValue: 1.0,\n depthLoadOp: 'clear',\n depthStoreOp: 'store',\n },\n };\n\n const box = createMeshRenderable(\n device,\n createBoxMeshWithTangents(1.0, 1.0, 1.0)\n );\n\n // Uniform bindGroups and bindGroupLayout\n const frameBGDescriptor = createBindGroupDescriptor(\n [0, 1],\n [\n GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,\n GPUShaderStage.FRAGMENT | GPUShaderStage.VERTEX,\n ],\n ['buffer', 'buffer'],\n [{ type: 'uniform' }, { type: 'uniform' }],\n [[{ buffer: spaceTransformsBuffer }, { buffer: mapInfoBuffer }]],\n 'Frame',\n device\n );\n\n // Texture bindGroups and bindGroupLayout\n const surfaceBGDescriptor = createBindGroupDescriptor(\n [0, 1, 2, 3],\n [GPUShaderStage.FRAGMENT],\n ['sampler', 'texture', 'texture', 'texture'],\n [\n { type: 'filtering' },\n { sampleType: 'float' },\n { sampleType: 'float' },\n { sampleType: 'float' },\n ],\n // Multiple bindgroups that accord to the layout defined above\n [\n [\n sampler,\n woodAlbedoTexture.createView(),\n spiralNormalTexture.createView(),\n spiralHeightTexture.createView(),\n ],\n [\n sampler,\n woodAlbedoTexture.createView(),\n toyboxNormalTexture.createView(),\n toyboxHeightTexture.createView(),\n ],\n [\n sampler,\n brickwallAlbedoTexture.createView(),\n brickwallNormalTexture.createView(),\n brickwallHeightTexture.createView(),\n ],\n ],\n 'Surface',\n device\n );\n\n const aspect = canvas.width / canvas.height;\n const projectionMatrix = mat4.perspective(\n (2 * Math.PI) / 5,\n aspect,\n 0.1,\n 10.0\n ) as Float32Array;\n\n function getViewMatrix() {\n return mat4.lookAt(\n [settings.cameraPosX, settings.cameraPosY, settings.cameraPosZ],\n [0, 0, 0],\n [0, 1, 0]\n );\n }\n\n function getModelMatrix() {\n const modelMatrix = mat4.create();\n mat4.identity(modelMatrix);\n const now = Date.now() / 1000;\n mat4.rotateY(modelMatrix, now * -0.5, modelMatrix);\n return modelMatrix;\n }\n\n // Change the model mapping type\n const getMode = (): number => {\n switch (settings['Bump Mode']) {\n case 'Albedo Texture':\n return 0;\n case 'Normal Texture':\n return 1;\n case 'Depth Texture':\n return 2;\n case 'Normal Map':\n return 3;\n case 'Parallax Scale':\n return 4;\n case 'Steep Parallax':\n return 5;\n }\n };\n\n const texturedCubePipeline = create3DRenderPipeline(\n device,\n 'NormalMappingRender',\n [frameBGDescriptor.bindGroupLayout, surfaceBGDescriptor.bindGroupLayout],\n normalMapWGSL,\n // Position, normal uv tangent bitangent\n ['float32x3', 'float32x3', 'float32x2', 'float32x3', 'float32x3'],\n normalMapWGSL,\n presentationFormat,\n true\n );\n\n let currentSurfaceBindGroup = 0;\n const onChangeTexture = () => {\n currentSurfaceBindGroup = TextureAtlas[settings.Texture];\n };\n\n gui.add(settings, 'Bump Mode', [\n 'Albedo Texture',\n 'Normal Texture',\n 'Depth Texture',\n 'Normal Map',\n 'Parallax Scale',\n 'Steep Parallax',\n ]);\n gui\n .add(settings, 'Texture', ['Spiral', 'Toybox', 'BrickWall'])\n .onChange(onChangeTexture);\n const lightFolder = gui.addFolder('Light');\n const depthFolder = gui.addFolder('Depth');\n lightFolder.add(settings, 'Reset Light').onChange(() => {\n lightPosXController.setValue(1.7);\n lightPosYController.setValue(0.7);\n lightPosZController.setValue(-1.9);\n lightIntensityController.setValue(5.0);\n });\n const lightPosXController = lightFolder\n .add(settings, 'lightPosX', -5, 5)\n .step(0.1);\n const lightPosYController = lightFolder\n .add(settings, 'lightPosY', -5, 5)\n .step(0.1);\n const lightPosZController = lightFolder\n .add(settings, 'lightPosZ', -5, 5)\n .step(0.1);\n const lightIntensityController = lightFolder\n .add(settings, 'lightIntensity', 0.0, 10)\n .step(0.1);\n depthFolder.add(settings, 'depthScale', 0.0, 0.1).step(0.01);\n depthFolder.add(settings, 'depthLayers', 1, 32).step(1);\n\n function frame() {\n if (!pageState.active) return;\n\n // Update spaceTransformsBuffer\n const viewMatrix = getViewMatrix();\n const worldViewMatrix = mat4.mul(viewMatrix, getModelMatrix());\n const worldViewProjMatrix = mat4.mul(projectionMatrix, worldViewMatrix);\n const matrices = new Float32Array([\n ...worldViewProjMatrix,\n ...worldViewMatrix,\n ]);\n\n // Update mapInfoBuffer\n const lightPosWS = vec3.create(\n settings.lightPosX,\n settings.lightPosY,\n settings.lightPosZ\n );\n const lightPosVS = vec3.transformMat4(lightPosWS, viewMatrix);\n const mode = getMode();\n device.queue.writeBuffer(\n spaceTransformsBuffer,\n 0,\n matrices.buffer,\n matrices.byteOffset,\n matrices.byteLength\n );\n\n // struct MapInfo {\n // lightPosVS: vec3f,\n // mode: u32,\n // lightIntensity: f32,\n // depthScale: f32,\n // depthLayers: f32,\n // }\n mapInfoView.setFloat32(0, lightPosVS[0], true);\n mapInfoView.setFloat32(4, lightPosVS[1], true);\n mapInfoView.setFloat32(8, lightPosVS[2], true);\n mapInfoView.setUint32(12, mode, true);\n mapInfoView.setFloat32(16, settings.lightIntensity, true);\n mapInfoView.setFloat32(20, settings.depthScale, true);\n mapInfoView.setFloat32(24, settings.depthLayers, true);\n device.queue.writeBuffer(mapInfoBuffer, 0, mapInfoArray);\n\n renderPassDescriptor.colorAttachments[0].view = context\n .getCurrentTexture()\n .createView();\n\n const commandEncoder = device.createCommandEncoder();\n const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);\n // Draw textured Cube\n passEncoder.setPipeline(texturedCubePipeline);\n passEncoder.setBindGroup(0, frameBGDescriptor.bindGroups[0]);\n passEncoder.setBindGroup(\n 1,\n surfaceBGDescriptor.bindGroups[currentSurfaceBindGroup]\n );\n passEncoder.setVertexBuffer(0, box.vertexBuffer);\n passEncoder.setIndexBuffer(box.indexBuffer, 'uint16');\n passEncoder.drawIndexed(box.indexCount);\n passEncoder.end();\n device.queue.submit([commandEncoder.finish()]);\n\n requestAnimationFrame(frame);\n }\n requestAnimationFrame(frame);\n};\n\nconst NormalMapping: () => JSX.Element = () =>\n makeSample({\n name: 'Normal Mapping',\n description:\n 'This example demonstrates multiple different methods that employ fragment shaders to achieve additional perceptual depth on the surface of a cube mesh. Demonstrated methods include normal mapping, parallax mapping, and steep parallax mapping.',\n gui: true,\n init,\n sources: [\n {\n name: __filename.substring(__dirname.length + 1),\n contents: __SOURCE__,\n },\n {\n name: './normalMap.wgsl',\n contents: normalMapWGSL,\n editable: true,\n },\n {\n name: '../../meshes/box.ts',\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n contents: require('!!raw-loader!../../meshes/box.ts').default,\n },\n {\n name: '../../meshes/mesh.ts',\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n contents: require('!!raw-loader!../../meshes/mesh.ts').default,\n },\n {\n name: './utils.ts',\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n contents: require('!!raw-loader!./utils.ts').default,\n },\n ],\n filename: __filename,\n });\n\nexport default NormalMapping;\n"},{name:"./normalMap.wgsl",contents:s,editable:!0},{name:"../../meshes/box.ts",contents:t(3583).Z},{name:"../../meshes/mesh.ts",contents:t(3150).Z},{name:"./utils.ts",contents:t(1146).Z}],filename:f});var x=h},9147:function(e){e.exports={canvasContainer:"SampleLayout_canvasContainer__zRR_l",sourceFileNav:"SampleLayout_sourceFileNav__ml48P",sourceFileContainer:"SampleLayout_sourceFileContainer__3s84x"}},3583:function(e,n){"use strict";n.Z="import { Mesh } from './mesh';\n\n/**\n * Constructs a box mesh with the given dimensions.\n * The vertex buffer will have the following vertex fields (in the given order):\n * position : float32x3\n * normal : float32x3\n * uv : float32x2\n * tangent : float32x3\n * bitangent : float32x3\n * @param width the width of the box\n * @param height the height of the box\n * @param depth the depth of the box\n * @returns the box mesh with tangent and bitangents.\n */\nexport function createBoxMeshWithTangents(\n width: number,\n height: number,\n depth: number\n): Mesh {\n // __________\n // / /| y\n // / +y / | ^\n // /_________/ | |\n // | |+x| +---> x\n // | +z | | /\n // | | / z\n // |_________|/\n //\n const pX = 0; // +x\n const nX = 1; // -x\n const pY = 2; // +y\n const nY = 3; // -y\n const pZ = 4; // +z\n const nZ = 5; // -z\n const faces = [\n { tangent: nZ, bitangent: pY, normal: pX },\n { tangent: pZ, bitangent: pY, normal: nX },\n { tangent: pX, bitangent: nZ, normal: pY },\n { tangent: pX, bitangent: pZ, normal: nY },\n { tangent: pX, bitangent: pY, normal: pZ },\n { tangent: nX, bitangent: pY, normal: nZ },\n ];\n const verticesPerSide = 4;\n const indicesPerSize = 6;\n const f32sPerVertex = 14; // position : vec3f, tangent : vec3f, bitangent : vec3f, normal : vec3f, uv :vec2f\n const vertexStride = f32sPerVertex * 4;\n const vertices = new Float32Array(\n faces.length * verticesPerSide * f32sPerVertex\n );\n const indices = new Uint16Array(faces.length * indicesPerSize);\n const halfVecs = [\n [+width / 2, 0, 0], // +x\n [-width / 2, 0, 0], // -x\n [0, +height / 2, 0], // +y\n [0, -height / 2, 0], // -y\n [0, 0, +depth / 2], // +z\n [0, 0, -depth / 2], // -z\n ];\n\n let vertexOffset = 0;\n let indexOffset = 0;\n for (let faceIndex = 0; faceIndex < faces.length; faceIndex++) {\n const face = faces[faceIndex];\n const tangent = halfVecs[face.tangent];\n const bitangent = halfVecs[face.bitangent];\n const normal = halfVecs[face.normal];\n\n for (let u = 0; u < 2; u++) {\n for (let v = 0; v < 2; v++) {\n for (let i = 0; i < 3; i++) {\n vertices[vertexOffset++] =\n normal[i] +\n (u == 0 ? -1 : 1) * tangent[i] +\n (v == 0 ? -1 : 1) * bitangent[i];\n }\n for (let i = 0; i < 3; i++) {\n vertices[vertexOffset++] = normal[i];\n }\n vertices[vertexOffset++] = u;\n vertices[vertexOffset++] = v;\n for (let i = 0; i < 3; i++) {\n vertices[vertexOffset++] = tangent[i];\n }\n for (let i = 0; i < 3; i++) {\n vertices[vertexOffset++] = bitangent[i];\n }\n }\n }\n\n indices[indexOffset++] = faceIndex * verticesPerSide + 0;\n indices[indexOffset++] = faceIndex * verticesPerSide + 2;\n indices[indexOffset++] = faceIndex * verticesPerSide + 1;\n\n indices[indexOffset++] = faceIndex * verticesPerSide + 2;\n indices[indexOffset++] = faceIndex * verticesPerSide + 3;\n indices[indexOffset++] = faceIndex * verticesPerSide + 1;\n }\n\n return {\n vertices,\n indices,\n vertexStride,\n };\n}\n"},3150:function(e,n){"use strict";n.Z="import { vec3, vec2 } from 'wgpu-matrix';\n\n// Defines what to pass to pipeline to render mesh\nexport interface Renderable {\n vertexBuffer: GPUBuffer;\n indexBuffer: GPUBuffer;\n indexCount: number;\n bindGroup?: GPUBindGroup;\n}\n\nexport interface Mesh {\n vertices: Float32Array;\n indices: Uint16Array | Uint32Array;\n vertexStride: number;\n}\n\n/**\n * @param {GPUDevice} device - A valid GPUDevice.\n * @param {Mesh} mesh - An indexed triangle-list mesh, containing its vertices, indices, and vertexStride (number of elements per vertex).\n * @param {boolean} storeVertices - A boolean flag indicating whether the vertexBuffer should be available to use as a storage buffer.\n * @returns {boolean} An object containing an array of bindGroups and the bindGroupLayout they implement.\n */\nexport const createMeshRenderable = (\n device: GPUDevice,\n mesh: Mesh,\n storeVertices = false,\n storeIndices = false\n): Renderable => {\n // Define buffer usage\n const vertexBufferUsage = storeVertices\n ? GPUBufferUsage.VERTEX | GPUBufferUsage.STORAGE\n : GPUBufferUsage.VERTEX;\n const indexBufferUsage = storeIndices\n ? GPUBufferUsage.INDEX | GPUBufferUsage.STORAGE\n : GPUBufferUsage.INDEX;\n\n // Create vertex and index buffers\n const vertexBuffer = device.createBuffer({\n size: mesh.vertices.byteLength,\n usage: vertexBufferUsage,\n mappedAtCreation: true,\n });\n new Float32Array(vertexBuffer.getMappedRange()).set(mesh.vertices);\n vertexBuffer.unmap();\n\n const indexBuffer = device.createBuffer({\n size: mesh.indices.byteLength,\n usage: indexBufferUsage,\n mappedAtCreation: true,\n });\n\n // Determine whether index buffer is indices are in uint16 or uint32 format\n if (\n mesh.indices.byteLength ===\n mesh.indices.length * Uint16Array.BYTES_PER_ELEMENT\n ) {\n new Uint16Array(indexBuffer.getMappedRange()).set(mesh.indices);\n } else {\n new Uint32Array(indexBuffer.getMappedRange()).set(mesh.indices);\n }\n\n indexBuffer.unmap();\n\n return {\n vertexBuffer,\n indexBuffer,\n indexCount: mesh.indices.length,\n };\n};\n\nexport const getMeshPosAtIndex = (mesh: Mesh, index: number) => {\n const arr = new Float32Array(\n mesh.vertices.buffer,\n index * mesh.vertexStride + 0,\n 3\n );\n return vec3.fromValues(arr[0], arr[1], arr[2]);\n};\n\nexport const getMeshNormalAtIndex = (mesh: Mesh, index: number) => {\n const arr = new Float32Array(\n mesh.vertices.buffer,\n index * mesh.vertexStride + 3 * Float32Array.BYTES_PER_ELEMENT,\n 3\n );\n return vec3.fromValues(arr[0], arr[1], arr[2]);\n};\n\nexport const getMeshUVAtIndex = (mesh: Mesh, index: number) => {\n const arr = new Float32Array(\n mesh.vertices.buffer,\n index * mesh.vertexStride + 6 * Float32Array.BYTES_PER_ELEMENT,\n 2\n );\n return vec2.fromValues(arr[0], arr[1]);\n};\n"},1146:function(e,n){"use strict";n.Z="type BindGroupBindingLayout =\n | GPUBufferBindingLayout\n | GPUTextureBindingLayout\n | GPUSamplerBindingLayout\n | GPUStorageTextureBindingLayout\n | GPUExternalTextureBindingLayout;\n\nexport type BindGroupsObjectsAndLayout = {\n bindGroups: GPUBindGroup[];\n bindGroupLayout: GPUBindGroupLayout;\n};\n\ntype ResourceTypeName =\n | 'buffer'\n | 'texture'\n | 'sampler'\n | 'externalTexture'\n | 'storageTexture';\n\n/**\n * @param {number[]} bindings - The binding value of each resource in the bind group.\n * @param {number[]} visibilities - The GPUShaderStage visibility of the resource at the corresponding index.\n * @param {ResourceTypeName[]} resourceTypes - The resourceType at the corresponding index.\n * @returns {BindGroupsObjectsAndLayout} An object containing an array of bindGroups and the bindGroupLayout they implement.\n */\nexport const createBindGroupDescriptor = (\n bindings: number[],\n visibilities: number[],\n resourceTypes: ResourceTypeName[],\n resourceLayouts: BindGroupBindingLayout[],\n resources: GPUBindingResource[][],\n label: string,\n device: GPUDevice\n): BindGroupsObjectsAndLayout => {\n // Create layout of each entry within a bindGroup\n const layoutEntries: GPUBindGroupLayoutEntry[] = [];\n for (let i = 0; i < bindings.length; i++) {\n layoutEntries.push({\n binding: bindings[i],\n visibility: visibilities[i % visibilities.length],\n [resourceTypes[i]]: resourceLayouts[i],\n });\n }\n\n // Apply entry layouts to bindGroupLayout\n const bindGroupLayout = device.createBindGroupLayout({\n label: `${label}.bindGroupLayout`,\n entries: layoutEntries,\n });\n\n // Create bindGroups that conform to the layout\n const bindGroups: GPUBindGroup[] = [];\n for (let i = 0; i < resources.length; i++) {\n const groupEntries: GPUBindGroupEntry[] = [];\n for (let j = 0; j < resources[0].length; j++) {\n groupEntries.push({\n binding: j,\n resource: resources[i][j],\n });\n }\n const newBindGroup = device.createBindGroup({\n label: `${label}.bindGroup${i}`,\n layout: bindGroupLayout,\n entries: groupEntries,\n });\n bindGroups.push(newBindGroup);\n }\n\n return {\n bindGroups,\n bindGroupLayout,\n };\n};\n\nexport type ShaderKeyInterface = {\n [K in T[number]]: number;\n};\n\ninterface AttribAcc {\n attributes: GPUVertexAttribute[];\n arrayStride: number;\n}\n\n/**\n * @param {GPUVertexFormat} vf - A valid GPUVertexFormat, representing a per-vertex value that can be passed to the vertex shader.\n * @returns {number} The number of bytes present in the value to be passed.\n */\nexport const convertVertexFormatToBytes = (vf: GPUVertexFormat): number => {\n const splitFormat = vf.split('x');\n const bytesPerElement = parseInt(splitFormat[0].replace(/[^0-9]/g, '')) / 8;\n\n const bytesPerVec =\n bytesPerElement *\n (splitFormat[1] !== undefined ? parseInt(splitFormat[1]) : 1);\n\n return bytesPerVec;\n};\n\n/** Creates a GPUVertexBuffer Layout that maps to an interleaved vertex buffer.\n * @param {GPUVertexFormat[]} vertexFormats - An array of valid GPUVertexFormats.\n * @returns {GPUVertexBufferLayout} A GPUVertexBufferLayout representing an interleaved vertex buffer.\n */\nexport const createVBuffer = (\n vertexFormats: GPUVertexFormat[]\n): GPUVertexBufferLayout => {\n const initialValue: AttribAcc = { attributes: [], arrayStride: 0 };\n\n const vertexBuffer = vertexFormats.reduce(\n (acc: AttribAcc, curr: GPUVertexFormat, idx: number) => {\n const newAttribute: GPUVertexAttribute = {\n shaderLocation: idx,\n offset: acc.arrayStride,\n format: curr,\n };\n const nextOffset: number =\n acc.arrayStride + convertVertexFormatToBytes(curr);\n\n const retVal: AttribAcc = {\n attributes: [...acc.attributes, newAttribute],\n arrayStride: nextOffset,\n };\n return retVal;\n },\n initialValue\n );\n\n const layout: GPUVertexBufferLayout = {\n arrayStride: vertexBuffer.arrayStride,\n attributes: vertexBuffer.attributes,\n };\n\n return layout;\n};\n\nexport const create3DRenderPipeline = (\n device: GPUDevice,\n label: string,\n bgLayouts: GPUBindGroupLayout[],\n vertexShader: string,\n vBufferFormats: GPUVertexFormat[],\n fragmentShader: string,\n presentationFormat: GPUTextureFormat,\n depthTest = false,\n topology: GPUPrimitiveTopology = 'triangle-list',\n cullMode: GPUCullMode = 'back'\n) => {\n const pipelineDescriptor: GPURenderPipelineDescriptor = {\n label: `${label}.pipeline`,\n layout: device.createPipelineLayout({\n label: `${label}.pipelineLayout`,\n bindGroupLayouts: bgLayouts,\n }),\n vertex: {\n module: device.createShaderModule({\n label: `${label}.vertexShader`,\n code: vertexShader,\n }),\n entryPoint: 'vertexMain',\n buffers:\n vBufferFormats.length !== 0 ? [createVBuffer(vBufferFormats)] : [],\n },\n fragment: {\n module: device.createShaderModule({\n label: `${label}.fragmentShader`,\n code: fragmentShader,\n }),\n entryPoint: 'fragmentMain',\n targets: [\n {\n format: presentationFormat,\n },\n ],\n },\n primitive: {\n topology: topology,\n cullMode: cullMode,\n },\n };\n if (depthTest) {\n pipelineDescriptor.depthStencil = {\n depthCompare: 'less',\n depthWriteEnabled: true,\n format: 'depth24plus',\n };\n }\n return device.createRenderPipeline(pipelineDescriptor);\n};\n\nexport const createTextureFromImage = (\n device: GPUDevice,\n bitmap: ImageBitmap\n) => {\n const texture: GPUTexture = device.createTexture({\n size: [bitmap.width, bitmap.height, 1],\n format: 'rgba8unorm',\n usage:\n GPUTextureUsage.TEXTURE_BINDING |\n GPUTextureUsage.COPY_DST |\n GPUTextureUsage.RENDER_ATTACHMENT,\n });\n device.queue.copyExternalImageToTexture(\n { source: bitmap },\n { texture: texture },\n [bitmap.width, bitmap.height]\n );\n return texture;\n};\n"}}]); \ No newline at end of file diff --git a/_next/static/chunks/808.b76a8a51b05711fb.js b/_next/static/chunks/808.edd40b51ce3d1c96.js similarity index 71% rename from _next/static/chunks/808.b76a8a51b05711fb.js rename to _next/static/chunks/808.edd40b51ce3d1c96.js index a834cb7b..d66da419 100644 --- a/_next/static/chunks/808.b76a8a51b05711fb.js +++ b/_next/static/chunks/808.edd40b51ce3d1c96.js @@ -1 +1 @@ -!function(){var e,t,r,n,o,i,a,u={808:function(e,t,r){"use strict";var n=r(6416);let o=new Float32Array([1,-1,1,1,1,0,1,1,0,1,-1,-1,1,1,0,0,1,1,1,1,-1,-1,-1,1,0,0,0,1,1,0,1,-1,-1,1,1,0,0,1,0,0,1,-1,1,1,1,0,1,1,0,1,-1,-1,-1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,-1,1,1,1,0,1,1,1,1,1,-1,-1,1,1,0,0,1,1,0,1,1,-1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,-1,-1,1,1,0,0,1,1,0,-1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,0,1,1,0,-1,1,-1,1,0,1,0,1,0,0,-1,1,1,1,0,1,1,1,0,1,1,1,-1,1,1,1,0,1,1,0,-1,-1,1,1,0,0,1,1,0,1,-1,1,1,1,0,1,1,1,1,1,-1,1,-1,1,0,1,0,1,1,0,-1,-1,-1,1,0,0,0,1,0,0,-1,-1,1,1,0,0,1,1,0,1,-1,1,-1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,-1,1,1,1,0,1,1,1,1,1,-1,-1,1,1,0,0,1,1,1,0,-1,-1,1,1,0,0,1,1,1,0,1,-1,1,1,1,0,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,-1,-1,1,1,0,0,1,0,1,-1,-1,-1,1,0,0,0,1,1,1,-1,1,-1,1,0,1,0,1,1,0,1,1,-1,1,1,1,0,1,0,0,1,-1,-1,1,1,0,0,1,0,1,-1,1,-1,1,0,1,0,1,1,0]);async function i(e){let t=await navigator.gpu.requestAdapter(),r=await t.requestDevice(),i=e.getContext("webgpu"),a=navigator.gpu.getPreferredCanvasFormat();i.configure({device:r,format:a,alphaMode:"premultiplied"});let u=r.createBuffer({size:o.byteLength,usage:GPUBufferUsage.VERTEX,mappedAtCreation:!0});new Float32Array(u.getMappedRange()).set(o),u.unmap();let f=r.createRenderPipeline({layout:"auto",vertex:{module:r.createShaderModule({code:"struct Uniforms {\n modelViewProjectionMatrix : mat4x4,\n}\n@binding(0) @group(0) var uniforms : Uniforms;\n\nstruct VertexOutput {\n @builtin(position) Position : vec4,\n @location(0) fragUV : vec2,\n @location(1) fragPosition: vec4,\n}\n\n@vertex\nfn main(\n @location(0) position : vec4,\n @location(1) uv : vec2\n) -> VertexOutput {\n var output : VertexOutput;\n output.Position = uniforms.modelViewProjectionMatrix * position;\n output.fragUV = uv;\n output.fragPosition = 0.5 * (position + vec4(1.0, 1.0, 1.0, 1.0));\n return output;\n}\n"}),entryPoint:"main",buffers:[{arrayStride:40,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:32,format:"float32x2"}]}]},fragment:{module:r.createShaderModule({code:"@fragment\nfn main(\n @location(0) fragUV: vec2,\n @location(1) fragPosition: vec4\n) -> @location(0) vec4 {\n return fragPosition;\n}\n"}),entryPoint:"main",targets:[{format:a}]},primitive:{topology:"triangle-list",cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}}),s=r.createTexture({size:[e.width,e.height],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT}),c=r.createBuffer({size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),l=r.createBindGroup({layout:f.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:c}}]}),p={colorAttachments:[{view:void 0,clearValue:{r:.5,g:.5,b:.5,a:1},loadOp:"clear",storeOp:"store"}],depthStencilAttachment:{view:s.createView(),depthClearValue:1,depthLoadOp:"clear",depthStoreOp:"store"}},d=e.width/e.height,m=n._E.perspective(2*Math.PI/5,d,1,100),g=n._E.create();requestAnimationFrame(function e(){let t=function(){let e=n._E.identity();n._E.translate(e,n.R3.fromValues(0,0,-4),e);let t=Date.now()/1e3;return n._E.rotate(e,n.R3.fromValues(Math.sin(t),Math.cos(t),0),1,e),n._E.multiply(m,e,g),g}();r.queue.writeBuffer(c,0,t.buffer,t.byteOffset,t.byteLength),p.colorAttachments[0].view=i.getCurrentTexture().createView();let o=r.createCommandEncoder(),a=o.beginRenderPass(p);a.setPipeline(f),a.setBindGroup(0,l),a.setVertexBuffer(0,u),a.draw(36),a.end(),r.queue.submit([o.finish()]),requestAnimationFrame(e)})}self.addEventListener("message",e=>{if("init"===e.data.type)try{i(e.data.offscreenCanvas)}catch(t){console.error("Error while initializing WebGPU in worker process: ".concat(t.message))}})}},f={};function s(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={exports:{}},n=!0;try{u[e](r,r.exports,s),n=!1}finally{n&&delete f[e]}return r.exports}s.m=u,s.x=function(){var e=s.O(void 0,[746],function(){return s(808)});return s.O(e)},e=[],s.O=function(t,r,n,o){if(r){o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[r,n,o];return}for(var a=1/0,i=0;i=o&&Object.keys(s.O).every(function(e){return s.O[e](r[f])})?r.splice(f--,1):(u=!1,o,\n}\n@binding(0) @group(0) var uniforms : Uniforms;\n\nstruct VertexOutput {\n @builtin(position) Position : vec4,\n @location(0) fragUV : vec2,\n @location(1) fragPosition: vec4,\n}\n\n@vertex\nfn main(\n @location(0) position : vec4,\n @location(1) uv : vec2\n) -> VertexOutput {\n var output : VertexOutput;\n output.Position = uniforms.modelViewProjectionMatrix * position;\n output.fragUV = uv;\n output.fragPosition = 0.5 * (position + vec4(1.0, 1.0, 1.0, 1.0));\n return output;\n}\n"}),entryPoint:"main",buffers:[{arrayStride:40,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:32,format:"float32x2"}]}]},fragment:{module:r.createShaderModule({code:"@fragment\nfn main(\n @location(0) fragUV: vec2,\n @location(1) fragPosition: vec4\n) -> @location(0) vec4 {\n return fragPosition;\n}\n"}),entryPoint:"main",targets:[{format:a}]},primitive:{topology:"triangle-list",cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}}),c=r.createTexture({size:[e.width,e.height],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT}),s=r.createBuffer({size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),l=r.createBindGroup({layout:f.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:s}}]}),p={colorAttachments:[{view:void 0,clearValue:{r:.5,g:.5,b:.5,a:1},loadOp:"clear",storeOp:"store"}],depthStencilAttachment:{view:c.createView(),depthClearValue:1,depthLoadOp:"clear",depthStoreOp:"store"}},d=e.width/e.height,m=n._E.perspective(2*Math.PI/5,d,1,100),g=n._E.create();requestAnimationFrame(function e(){let t=function(){let e=n._E.identity();n._E.translate(e,n.R3.fromValues(0,0,-4),e);let t=Date.now()/1e3;return n._E.rotate(e,n.R3.fromValues(Math.sin(t),Math.cos(t),0),1,e),n._E.multiply(m,e,g),g}();r.queue.writeBuffer(s,0,t.buffer,t.byteOffset,t.byteLength),p.colorAttachments[0].view=i.getCurrentTexture().createView();let o=r.createCommandEncoder(),a=o.beginRenderPass(p);a.setPipeline(f),a.setBindGroup(0,l),a.setVertexBuffer(0,u),a.draw(36),a.end(),r.queue.submit([o.finish()]),requestAnimationFrame(e)})}self.addEventListener("message",e=>{if("init"===e.data.type)try{i(e.data.offscreenCanvas)}catch(t){console.error("Error while initializing WebGPU in worker process: ".concat(t.message))}})}},f={};function c(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={exports:{}},n=!0;try{u[e](r,r.exports,c),n=!1}finally{n&&delete f[e]}return r.exports}c.m=u,c.x=function(){var e=c.O(void 0,[746],function(){return c(808)});return c.O(e)},e=[],c.O=function(t,r,n,o){if(r){o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[r,n,o];return}for(var a=1/0,i=0;i=o&&Object.keys(c.O).every(function(e){return c.O[e](r[f])})?r.splice(f--,1):(u=!1,onew Float32Array(12)],[Float64Array,()=>new Float64Array(12)],[Array,()=>Array(12).fill(0)]]);o.get(Float32Array);let i=Float32Array;function c(t,n,e){let r=new i(3);return void 0!==t&&(r[0]=t,void 0!==n&&(r[1]=n,void 0!==e&&(r[2]=e))),r}function l(t,n,e){return(e=e||new i(3))[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function f(t,n,e){return(e=e||new i(3))[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function h(t,n){return(n=n||new i(3))[0]=1/t[0],n[1]=1/t[1],n[2]=1/t[2],n}function s(t,n,e){e=e||new i(3);let r=t[2]*n[0]-t[0]*n[2],a=t[0]*n[1]-t[1]*n[0];return e[0]=t[1]*n[2]-t[2]*n[1],e[1]=r,e[2]=a,e}function M(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function w(t){let n=t[0],e=t[1],r=t[2];return Math.sqrt(n*n+e*e+r*r)}function d(t){let n=t[0],e=t[1],r=t[2];return n*n+e*e+r*r}function m(t,n){let e=t[0]-n[0],r=t[1]-n[1],a=t[2]-n[2];return Math.sqrt(e*e+r*r+a*a)}function v(t,n){let e=t[0]-n[0],r=t[1]-n[1],a=t[2]-n[2];return e*e+r*r+a*a}function p(t,n){n=n||new i(3);let e=t[0],r=t[1],a=t[2],u=Math.sqrt(e*e+r*r+a*a);return u>1e-5?(n[0]=e/u,n[1]=r/u,n[2]=a/u):(n[0]=0,n[1]=0,n[2]=0),n}function b(t,n){return(n=n||new i(3))[0]=t[0],n[1]=t[1],n[2]=t[2],n}function q(t,n,e){return(e=e||new i(3))[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function y(t,n,e){return(e=e||new i(3))[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}var x=Object.freeze({__proto__:null,create:c,setDefaultType:function(t){let n=i;return i=t,n},fromValues:c,set:function(t,n,e,r){return(r=r||new i(3))[0]=t,r[1]=n,r[2]=e,r},ceil:function(t,n){return(n=n||new i(3))[0]=Math.ceil(t[0]),n[1]=Math.ceil(t[1]),n[2]=Math.ceil(t[2]),n},floor:function(t,n){return(n=n||new i(3))[0]=Math.floor(t[0]),n[1]=Math.floor(t[1]),n[2]=Math.floor(t[2]),n},round:function(t,n){return(n=n||new i(3))[0]=Math.round(t[0]),n[1]=Math.round(t[1]),n[2]=Math.round(t[2]),n},clamp:function(t,n=0,e=1,r){return(r=r||new i(3))[0]=Math.min(e,Math.max(n,t[0])),r[1]=Math.min(e,Math.max(n,t[1])),r[2]=Math.min(e,Math.max(n,t[2])),r},add:function(t,n,e){return(e=e||new i(3))[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e},addScaled:function(t,n,e,r){return(r=r||new i(3))[0]=t[0]+n[0]*e,r[1]=t[1]+n[1]*e,r[2]=t[2]+n[2]*e,r},angle:function(t,n){let e=t[0],r=t[1],a=t[2],u=t[0],o=t[1],i=t[2],c=Math.sqrt(e*e+r*r+a*a)*Math.sqrt(u*u+o*o+i*i),l=c&&M(t,n)/c;return Math.acos(l)},subtract:l,sub:l,equalsApproximately:function(t,n){return 1e-6>Math.abs(t[0]-n[0])&&1e-6>Math.abs(t[1]-n[1])&&1e-6>Math.abs(t[2]-n[2])},equals:function(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]},lerp:function(t,n,e,r){return(r=r||new i(3))[0]=t[0]+e*(n[0]-t[0]),r[1]=t[1]+e*(n[1]-t[1]),r[2]=t[2]+e*(n[2]-t[2]),r},lerpV:function(t,n,e,r){return(r=r||new i(3))[0]=t[0]+e[0]*(n[0]-t[0]),r[1]=t[1]+e[1]*(n[1]-t[1]),r[2]=t[2]+e[2]*(n[2]-t[2]),r},max:function(t,n,e){return(e=e||new i(3))[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e},min:function(t,n,e){return(e=e||new i(3))[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e},mulScalar:f,scale:f,divScalar:function(t,n,e){return(e=e||new i(3))[0]=t[0]/n,e[1]=t[1]/n,e[2]=t[2]/n,e},inverse:h,invert:h,cross:s,dot:M,length:w,len:w,lengthSq:d,lenSq:d,distance:m,dist:m,distanceSq:v,distSq:v,normalize:p,negate:function(t,n){return(n=n||new i(3))[0]=-t[0],n[1]=-t[1],n[2]=-t[2],n},copy:b,clone:b,multiply:q,mul:q,divide:y,div:y,random:function(t=1,n){n=n||new i(3);let e=2*Math.random()*Math.PI,r=2*Math.random()-1,a=Math.sqrt(1-r*r)*t;return n[0]=Math.cos(e)*a,n[1]=Math.sin(e)*a,n[2]=r*t,n},zero:function(t){return(t=t||new i(3))[0]=0,t[1]=0,t[2]=0,t},transformMat4:function(t,n,e){e=e||new i(3);let r=t[0],a=t[1],u=t[2],o=n[3]*r+n[7]*a+n[11]*u+n[15]||1;return e[0]=(n[0]*r+n[4]*a+n[8]*u+n[12])/o,e[1]=(n[1]*r+n[5]*a+n[9]*u+n[13])/o,e[2]=(n[2]*r+n[6]*a+n[10]*u+n[14])/o,e},transformMat4Upper3x3:function(t,n,e){e=e||new i(3);let r=t[0],a=t[1],u=t[2];return e[0]=r*n[0]+a*n[4]+u*n[8],e[1]=r*n[1]+a*n[5]+u*n[9],e[2]=r*n[2]+a*n[6]+u*n[10],e},transformMat3:function(t,n,e){e=e||new i(3);let r=t[0],a=t[1],u=t[2];return e[0]=r*n[0]+a*n[4]+u*n[8],e[1]=r*n[1]+a*n[5]+u*n[9],e[2]=r*n[2]+a*n[6]+u*n[10],e},transformQuat:function(t,n,e){e=e||new i(3);let r=n[0],a=n[1],u=n[2],o=2*n[3],c=t[0],l=t[1],f=t[2],h=a*f-u*l,s=u*c-r*f,M=r*l-a*c;return e[0]=c+h*o+(a*M-u*s)*2,e[1]=l+s*o+(u*h-r*M)*2,e[2]=f+M*o+(r*s-a*h)*2,e},getTranslation:function(t,n){return(n=n||new i(3))[0]=t[12],n[1]=t[13],n[2]=t[14],n},getAxis:function(t,n,e){e=e||new i(3);let r=4*n;return e[0]=t[r+0],e[1]=t[r+1],e[2]=t[r+2],e},getScaling:function(t,n){n=n||new i(3);let e=t[0],r=t[1],a=t[2],u=t[4],o=t[5],c=t[6],l=t[8],f=t[9],h=t[10];return n[0]=Math.sqrt(e*e+r*r+a*a),n[1]=Math.sqrt(u*u+o*o+c*c),n[2]=Math.sqrt(l*l+f*f+h*h),n}});let A=Float32Array;function g(t,n){return(n=n||new A(16))[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n}function S(t){return(t=t||new A(16))[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function _(t,n){n=n||new A(16);let e=t[0],r=t[1],a=t[2],u=t[3],o=t[4],i=t[5],c=t[6],l=t[7],f=t[8],h=t[9],s=t[10],M=t[11],w=t[12],d=t[13],m=t[14],v=t[15],p=s*v,b=m*M,q=c*v,y=m*l,x=c*M,g=s*l,S=a*v,_=m*u,F=a*M,z=s*u,T=a*l,k=c*u,V=f*d,j=w*h,D=o*d,E=w*i,O=o*h,R=f*i,C=e*d,I=w*r,N=e*h,P=f*r,Q=e*i,X=o*r,Y=p*i+y*h+x*d-(b*i+q*h+g*d),Z=b*r+S*h+z*d-(p*r+_*h+F*d),U=q*r+_*i+T*d-(y*r+S*i+k*d),B=g*r+F*i+k*h-(x*r+z*i+T*h),G=1/(e*Y+o*Z+f*U+w*B);return n[0]=G*Y,n[1]=G*Z,n[2]=G*U,n[3]=G*B,n[4]=G*(b*o+q*f+g*w-(p*o+y*f+x*w)),n[5]=G*(p*e+_*f+F*w-(b*e+S*f+z*w)),n[6]=G*(y*e+S*o+k*w-(q*e+_*o+T*w)),n[7]=G*(x*e+z*o+T*f-(g*e+F*o+k*f)),n[8]=G*(V*l+E*M+O*v-(j*l+D*M+R*v)),n[9]=G*(j*u+C*M+P*v-(V*u+I*M+N*v)),n[10]=G*(D*u+I*l+Q*v-(E*u+C*l+X*v)),n[11]=G*(R*u+N*l+X*M-(O*u+P*l+Q*M)),n[12]=G*(D*s+R*m+j*c-(O*m+V*c+E*s)),n[13]=G*(N*m+V*a+I*s-(C*s+P*m+j*a)),n[14]=G*(C*c+X*m+E*a-(Q*m+D*a+I*c)),n[15]=G*(Q*s+O*a+P*c-(N*c+X*s+R*a)),n}function F(t,n,e){e=e||new A(16);let r=t[0],a=t[1],u=t[2],o=t[3],i=t[4],c=t[5],l=t[6],f=t[7],h=t[8],s=t[9],M=t[10],w=t[11],d=t[12],m=t[13],v=t[14],p=t[15],b=n[0],q=n[1],y=n[2],x=n[3],g=n[4],S=n[5],_=n[6],F=n[7],z=n[8],T=n[9],k=n[10],V=n[11],j=n[12],D=n[13],E=n[14],O=n[15];return e[0]=r*b+i*q+h*y+d*x,e[1]=a*b+c*q+s*y+m*x,e[2]=u*b+l*q+M*y+v*x,e[3]=o*b+f*q+w*y+p*x,e[4]=r*g+i*S+h*_+d*F,e[5]=a*g+c*S+s*_+m*F,e[6]=u*g+l*S+M*_+v*F,e[7]=o*g+f*S+w*_+p*F,e[8]=r*z+i*T+h*k+d*V,e[9]=a*z+c*T+s*k+m*V,e[10]=u*z+l*T+M*k+v*V,e[11]=o*z+f*T+w*k+p*V,e[12]=r*j+i*D+h*E+d*O,e[13]=a*j+c*D+s*E+m*O,e[14]=u*j+l*D+M*E+v*O,e[15]=o*j+f*D+w*E+p*O,e}function z(t,n,e){e=e||new A(16);let r=t[0],a=t[1],u=t[2],o=Math.sqrt(r*r+a*a+u*u);r/=o,a/=o,u/=o;let i=r*r,c=a*a,l=u*u,f=Math.cos(n),h=Math.sin(n),s=1-f;return e[0]=i+(1-i)*f,e[1]=r*a*s+u*h,e[2]=r*u*s-a*h,e[3]=0,e[4]=r*a*s-u*h,e[5]=c+(1-c)*f,e[6]=a*u*s+r*h,e[7]=0,e[8]=r*u*s+a*h,e[9]=a*u*s-r*h,e[10]=l+(1-l)*f,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function T(t,n,e,r){r=r||new A(16);let a=n[0],u=n[1],o=n[2],i=Math.sqrt(a*a+u*u+o*o);a/=i,u/=i,o/=i;let c=a*a,l=u*u,f=o*o,h=Math.cos(e),s=Math.sin(e),M=1-h,w=c+(1-c)*h,d=a*u*M+o*s,m=a*o*M-u*s,v=a*u*M-o*s,p=l+(1-l)*h,b=u*o*M+a*s,q=a*o*M+u*s,y=u*o*M-a*s,x=f+(1-f)*h,g=t[0],S=t[1],_=t[2],F=t[3],z=t[4],T=t[5],k=t[6],V=t[7],j=t[8],D=t[9],E=t[10],O=t[11];return r[0]=w*g+d*z+m*j,r[1]=w*S+d*T+m*D,r[2]=w*_+d*k+m*E,r[3]=w*F+d*V+m*O,r[4]=v*g+p*z+b*j,r[5]=v*S+p*T+b*D,r[6]=v*_+p*k+b*E,r[7]=v*F+p*V+b*O,r[8]=q*g+y*z+x*j,r[9]=q*S+y*T+x*D,r[10]=q*_+y*k+x*E,r[11]=q*F+y*V+x*O,t!==r&&(r[12]=t[12],r[13]=t[13],r[14]=t[14],r[15]=t[15]),r}var k=Object.freeze({__proto__:null,setDefaultType:function(t){let n=A;return A=t,n},create:function(t,n,e,r,a,u,o,i,c,l,f,h,s,M,w,d){let m=new A(16);return void 0!==t&&(m[0]=t,void 0!==n&&(m[1]=n,void 0!==e&&(m[2]=e,void 0!==r&&(m[3]=r,void 0!==a&&(m[4]=a,void 0!==u&&(m[5]=u,void 0!==o&&(m[6]=o,void 0!==i&&(m[7]=i,void 0!==c&&(m[8]=c,void 0!==l&&(m[9]=l,void 0!==f&&(m[10]=f,void 0!==h&&(m[11]=h,void 0!==s&&(m[12]=s,void 0!==M&&(m[13]=M,void 0!==w&&(m[14]=w,void 0!==d&&(m[15]=d)))))))))))))))),m},set:function(t,n,e,r,a,u,o,i,c,l,f,h,s,M,w,d,m){return(m=m||new A(16))[0]=t,m[1]=n,m[2]=e,m[3]=r,m[4]=a,m[5]=u,m[6]=o,m[7]=i,m[8]=c,m[9]=l,m[10]=f,m[11]=h,m[12]=s,m[13]=M,m[14]=w,m[15]=d,m},fromMat3:function(t,n){return(n=n||new A(16))[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=0,n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=0,n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},fromQuat:function(t,n){n=n||new A(16);let e=t[0],r=t[1],a=t[2],u=t[3],o=e+e,i=r+r,c=a+a,l=e*o,f=r*o,h=r*i,s=a*o,M=a*i,w=a*c,d=u*o,m=u*i,v=u*c;return n[0]=1-h-w,n[1]=f+v,n[2]=s-m,n[3]=0,n[4]=f-v,n[5]=1-l-w,n[6]=M+d,n[7]=0,n[8]=s+m,n[9]=M-d,n[10]=1-l-h,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},negate:function(t,n){return(n=n||new A(16))[0]=-t[0],n[1]=-t[1],n[2]=-t[2],n[3]=-t[3],n[4]=-t[4],n[5]=-t[5],n[6]=-t[6],n[7]=-t[7],n[8]=-t[8],n[9]=-t[9],n[10]=-t[10],n[11]=-t[11],n[12]=-t[12],n[13]=-t[13],n[14]=-t[14],n[15]=-t[15],n},copy:g,clone:g,equalsApproximately:function(t,n){return 1e-6>Math.abs(t[0]-n[0])&&1e-6>Math.abs(t[1]-n[1])&&1e-6>Math.abs(t[2]-n[2])&&1e-6>Math.abs(t[3]-n[3])&&1e-6>Math.abs(t[4]-n[4])&&1e-6>Math.abs(t[5]-n[5])&&1e-6>Math.abs(t[6]-n[6])&&1e-6>Math.abs(t[7]-n[7])&&1e-6>Math.abs(t[8]-n[8])&&1e-6>Math.abs(t[9]-n[9])&&1e-6>Math.abs(t[10]-n[10])&&1e-6>Math.abs(t[11]-n[11])&&1e-6>Math.abs(t[12]-n[12])&&1e-6>Math.abs(t[13]-n[13])&&1e-6>Math.abs(t[14]-n[14])&&1e-6>Math.abs(t[15]-n[15])},equals:function(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]&&t[4]===n[4]&&t[5]===n[5]&&t[6]===n[6]&&t[7]===n[7]&&t[8]===n[8]&&t[9]===n[9]&&t[10]===n[10]&&t[11]===n[11]&&t[12]===n[12]&&t[13]===n[13]&&t[14]===n[14]&&t[15]===n[15]},identity:S,transpose:function(t,n){if((n=n||new A(16))===t){let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,n}let r=t[0],a=t[1],u=t[2],o=t[3],i=t[4],c=t[5],l=t[6],f=t[7],h=t[8],s=t[9],M=t[10],w=t[11],d=t[12],m=t[13],v=t[14],p=t[15];return n[0]=r,n[1]=i,n[2]=h,n[3]=d,n[4]=a,n[5]=c,n[6]=s,n[7]=m,n[8]=u,n[9]=l,n[10]=M,n[11]=v,n[12]=o,n[13]=f,n[14]=w,n[15]=p,n},inverse:_,determinant:function(t){let n=t[0],e=t[1],r=t[2],a=t[3],u=t[4],o=t[5],i=t[6],c=t[7],l=t[8],f=t[9],h=t[10],s=t[11],M=t[12],w=t[13],d=t[14],m=t[15],v=h*m,p=d*s,b=i*m,q=d*c,y=i*s,x=h*c,A=r*m,g=d*a,S=r*s,_=h*a,F=r*c,z=i*a;return n*(v*o+q*f+y*w-(p*o+b*f+x*w))+u*(p*e+A*f+_*w-(v*e+g*f+S*w))+l*(b*e+g*o+F*w-(q*e+A*o+z*w))+M*(x*e+S*o+z*f-(y*e+_*o+F*f))},invert:_,multiply:F,mul:F,setTranslation:function(t,n,e){return t!==(e=e||S())&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11]),e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e},getTranslation:function(t,n){return(n=n||c())[0]=t[12],n[1]=t[13],n[2]=t[14],n},getAxis:function(t,n,e){e=e||c();let r=4*n;return e[0]=t[r+0],e[1]=t[r+1],e[2]=t[r+2],e},setAxis:function(t,n,e,r){r!==t&&(r=g(t,r));let a=4*e;return r[a+0]=n[0],r[a+1]=n[1],r[a+2]=n[2],r},getScaling:function(t,n){n=n||c();let e=t[0],r=t[1],a=t[2],u=t[4],o=t[5],i=t[6],l=t[8],f=t[9],h=t[10];return n[0]=Math.sqrt(e*e+r*r+a*a),n[1]=Math.sqrt(u*u+o*o+i*i),n[2]=Math.sqrt(l*l+f*f+h*h),n},perspective:function(t,n,e,r,a){a=a||new A(16);let u=Math.tan(.5*Math.PI-.5*t);if(a[0]=u/n,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[11]=-1,a[12]=0,a[13]=0,a[15]=0,r===1/0)a[10]=-1,a[14]=-e;else{let o=1/(e-r);a[10]=r*o,a[14]=r*e*o}return a},ortho:function(t,n,e,r,a,u,o){return(o=o||new A(16))[0]=2/(n-t),o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=2/(r-e),o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=1/(a-u),o[11]=0,o[12]=(n+t)/(t-n),o[13]=(r+e)/(e-r),o[14]=a/(a-u),o[15]=1,o},frustum:function(t,n,e,r,a,u,o){o=o||new A(16);let i=n-t,c=r-e,l=a-u;return o[0]=2*a/i,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=2*a/c,o[6]=0,o[7]=0,o[8]=(t+n)/i,o[9]=(r+e)/c,o[10]=u/l,o[11]=-1,o[12]=0,o[13]=0,o[14]=a*u/l,o[15]=0,o},aim:function(t,n,e,o){return o=o||new A(16),r=r||c(),a=a||c(),p(l(n,t,u=u||c()),u),p(s(e,u,r),r),p(s(u,r,a),a),o[0]=r[0],o[1]=r[1],o[2]=r[2],o[3]=0,o[4]=a[0],o[5]=a[1],o[6]=a[2],o[7]=0,o[8]=u[0],o[9]=u[1],o[10]=u[2],o[11]=0,o[12]=t[0],o[13]=t[1],o[14]=t[2],o[15]=1,o},cameraAim:function(t,n,e,o){return o=o||new A(16),r=r||c(),a=a||c(),p(l(t,n,u=u||c()),u),p(s(e,u,r),r),p(s(u,r,a),a),o[0]=r[0],o[1]=r[1],o[2]=r[2],o[3]=0,o[4]=a[0],o[5]=a[1],o[6]=a[2],o[7]=0,o[8]=u[0],o[9]=u[1],o[10]=u[2],o[11]=0,o[12]=t[0],o[13]=t[1],o[14]=t[2],o[15]=1,o},lookAt:function(t,n,e,o){return o=o||new A(16),r=r||c(),a=a||c(),p(l(t,n,u=u||c()),u),p(s(e,u,r),r),p(s(u,r,a),a),o[0]=r[0],o[1]=a[0],o[2]=u[0],o[3]=0,o[4]=r[1],o[5]=a[1],o[6]=u[1],o[7]=0,o[8]=r[2],o[9]=a[2],o[10]=u[2],o[11]=0,o[12]=-(r[0]*t[0]+r[1]*t[1]+r[2]*t[2]),o[13]=-(a[0]*t[0]+a[1]*t[1]+a[2]*t[2]),o[14]=-(u[0]*t[0]+u[1]*t[1]+u[2]*t[2]),o[15]=1,o},translation:function(t,n){return(n=n||new A(16))[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=t[0],n[13]=t[1],n[14]=t[2],n[15]=1,n},translate:function(t,n,e){e=e||new A(16);let r=n[0],a=n[1],u=n[2],o=t[0],i=t[1],c=t[2],l=t[3],f=t[4],h=t[5],s=t[6],M=t[7],w=t[8],d=t[9],m=t[10],v=t[11],p=t[12],b=t[13],q=t[14],y=t[15];return t!==e&&(e[0]=o,e[1]=i,e[2]=c,e[3]=l,e[4]=f,e[5]=h,e[6]=s,e[7]=M,e[8]=w,e[9]=d,e[10]=m,e[11]=v),e[12]=o*r+f*a+w*u+p,e[13]=i*r+h*a+d*u+b,e[14]=c*r+s*a+m*u+q,e[15]=l*r+M*a+v*u+y,e},rotationX:function(t,n){n=n||new A(16);let e=Math.cos(t),r=Math.sin(t);return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=e,n[6]=r,n[7]=0,n[8]=0,n[9]=-r,n[10]=e,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},rotateX:function(t,n,e){e=e||new A(16);let r=t[4],a=t[5],u=t[6],o=t[7],i=t[8],c=t[9],l=t[10],f=t[11],h=Math.cos(n),s=Math.sin(n);return e[4]=h*r+s*i,e[5]=h*a+s*c,e[6]=h*u+s*l,e[7]=h*o+s*f,e[8]=h*i-s*r,e[9]=h*c-s*a,e[10]=h*l-s*u,e[11]=h*f-s*o,t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e},rotationY:function(t,n){n=n||new A(16);let e=Math.cos(t),r=Math.sin(t);return n[0]=e,n[1]=0,n[2]=-r,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=r,n[9]=0,n[10]=e,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},rotateY:function(t,n,e){e=e||new A(16);let r=t[0],a=t[1],u=t[2],o=t[3],i=t[8],c=t[9],l=t[10],f=t[11],h=Math.cos(n),s=Math.sin(n);return e[0]=h*r-s*i,e[1]=h*a-s*c,e[2]=h*u-s*l,e[3]=h*o-s*f,e[8]=h*i+s*r,e[9]=h*c+s*a,e[10]=h*l+s*u,e[11]=h*f+s*o,t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e},rotationZ:function(t,n){n=n||new A(16);let e=Math.cos(t),r=Math.sin(t);return n[0]=e,n[1]=r,n[2]=0,n[3]=0,n[4]=-r,n[5]=e,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},rotateZ:function(t,n,e){e=e||new A(16);let r=t[0],a=t[1],u=t[2],o=t[3],i=t[4],c=t[5],l=t[6],f=t[7],h=Math.cos(n),s=Math.sin(n);return e[0]=h*r+s*i,e[1]=h*a+s*c,e[2]=h*u+s*l,e[3]=h*o+s*f,e[4]=h*i-s*r,e[5]=h*c-s*a,e[6]=h*l-s*u,e[7]=h*f-s*o,t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e},axisRotation:z,rotation:z,axisRotate:T,rotate:T,scaling:function(t,n){return(n=n||new A(16))[0]=t[0],n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t[1],n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=t[2],n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},scale:function(t,n,e){e=e||new A(16);let r=n[0],a=n[1],u=n[2];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=r*t[3],e[4]=a*t[4],e[5]=a*t[5],e[6]=a*t[6],e[7]=a*t[7],e[8]=u*t[8],e[9]=u*t[9],e[10]=u*t[10],e[11]=u*t[11],t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e},uniformScaling:function(t,n){return(n=n||new A(16))[0]=t,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=t,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},uniformScale:function(t,n,e){return(e=e||new A(16))[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=n*t[3],e[4]=n*t[4],e[5]=n*t[5],e[6]=n*t[6],e[7]=n*t[7],e[8]=n*t[8],e[9]=n*t[9],e[10]=n*t[10],e[11]=n*t[11],t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e}});Float32Array;let V=Float32Array;function j(t,n,e,r){let a=new V(4);return void 0!==t&&(a[0]=t,void 0!==n&&(a[1]=n,void 0!==e&&(a[2]=e,void 0!==r&&(a[3]=r)))),a}function D(t,n,e){return(e=e||new V(4))[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e}function E(t,n,e){return(e=e||new V(4))[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function O(t,n){return(n=n||new V(4))[0]=1/t[0],n[1]=1/t[1],n[2]=1/t[2],n[3]=1/t[3],n}function R(t){let n=t[0],e=t[1],r=t[2],a=t[3];return Math.sqrt(n*n+e*e+r*r+a*a)}function C(t){let n=t[0],e=t[1],r=t[2],a=t[3];return n*n+e*e+r*r+a*a}function I(t,n){let e=t[0]-n[0],r=t[1]-n[1],a=t[2]-n[2],u=t[3]-n[3];return Math.sqrt(e*e+r*r+a*a+u*u)}function N(t,n){let e=t[0]-n[0],r=t[1]-n[1],a=t[2]-n[2],u=t[3]-n[3];return e*e+r*r+a*a+u*u}function P(t,n){return(n=n||new V(4))[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n}function Q(t,n,e){return(e=e||new V(4))[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e[3]=t[3]*n[3],e}function X(t,n,e){return(e=e||new V(4))[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e[3]=t[3]/n[3],e}var Y=Object.freeze({__proto__:null,create:j,setDefaultType:function(t){let n=V;return V=t,n},fromValues:j,set:function(t,n,e,r,a){return(a=a||new V(4))[0]=t,a[1]=n,a[2]=e,a[3]=r,a},ceil:function(t,n){return(n=n||new V(4))[0]=Math.ceil(t[0]),n[1]=Math.ceil(t[1]),n[2]=Math.ceil(t[2]),n[3]=Math.ceil(t[3]),n},floor:function(t,n){return(n=n||new V(4))[0]=Math.floor(t[0]),n[1]=Math.floor(t[1]),n[2]=Math.floor(t[2]),n[3]=Math.floor(t[3]),n},round:function(t,n){return(n=n||new V(4))[0]=Math.round(t[0]),n[1]=Math.round(t[1]),n[2]=Math.round(t[2]),n[3]=Math.round(t[3]),n},clamp:function(t,n=0,e=1,r){return(r=r||new V(4))[0]=Math.min(e,Math.max(n,t[0])),r[1]=Math.min(e,Math.max(n,t[1])),r[2]=Math.min(e,Math.max(n,t[2])),r[3]=Math.min(e,Math.max(n,t[3])),r},add:function(t,n,e){return(e=e||new V(4))[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e},addScaled:function(t,n,e,r){return(r=r||new V(4))[0]=t[0]+n[0]*e,r[1]=t[1]+n[1]*e,r[2]=t[2]+n[2]*e,r[3]=t[3]+n[3]*e,r},subtract:D,sub:D,equalsApproximately:function(t,n){return 1e-6>Math.abs(t[0]-n[0])&&1e-6>Math.abs(t[1]-n[1])&&1e-6>Math.abs(t[2]-n[2])&&1e-6>Math.abs(t[3]-n[3])},equals:function(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]},lerp:function(t,n,e,r){return(r=r||new V(4))[0]=t[0]+e*(n[0]-t[0]),r[1]=t[1]+e*(n[1]-t[1]),r[2]=t[2]+e*(n[2]-t[2]),r[3]=t[3]+e*(n[3]-t[3]),r},lerpV:function(t,n,e,r){return(r=r||new V(4))[0]=t[0]+e[0]*(n[0]-t[0]),r[1]=t[1]+e[1]*(n[1]-t[1]),r[2]=t[2]+e[2]*(n[2]-t[2]),r[3]=t[3]+e[3]*(n[3]-t[3]),r},max:function(t,n,e){return(e=e||new V(4))[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e[3]=Math.max(t[3],n[3]),e},min:function(t,n,e){return(e=e||new V(4))[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e[3]=Math.min(t[3],n[3]),e},mulScalar:E,scale:E,divScalar:function(t,n,e){return(e=e||new V(4))[0]=t[0]/n,e[1]=t[1]/n,e[2]=t[2]/n,e[3]=t[3]/n,e},inverse:O,invert:O,dot:function(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]+t[3]*n[3]},length:R,len:R,lengthSq:C,lenSq:C,distance:I,dist:I,distanceSq:N,distSq:N,normalize:function(t,n){n=n||new V(4);let e=t[0],r=t[1],a=t[2],u=t[3],o=Math.sqrt(e*e+r*r+a*a+u*u);return o>1e-5?(n[0]=e/o,n[1]=r/o,n[2]=a/o,n[3]=u/o):(n[0]=0,n[1]=0,n[2]=0,n[3]=0),n},negate:function(t,n){return(n=n||new V(4))[0]=-t[0],n[1]=-t[1],n[2]=-t[2],n[3]=-t[3],n},copy:P,clone:P,multiply:Q,mul:Q,divide:X,div:X,zero:function(t){return(t=t||new V(4))[0]=0,t[1]=0,t[2]=0,t[3]=0,t},transformMat4:function(t,n,e){e=e||new V(4);let r=t[0],a=t[1],u=t[2],o=t[3];return e[0]=n[0]*r+n[4]*a+n[8]*u+n[12]*o,e[1]=n[1]*r+n[5]*a+n[9]*u+n[13]*o,e[2]=n[2]*r+n[6]*a+n[10]*u+n[14]*o,e[3]=n[3]*r+n[7]*a+n[11]*u+n[15]*o,e}})}}]); \ No newline at end of file diff --git a/_next/static/chunks/b8074065.f34e40bc56b8268f.js b/_next/static/chunks/b8074065.f34e40bc56b8268f.js deleted file mode 100644 index a2c47bcd..00000000 --- a/_next/static/chunks/b8074065.f34e40bc56b8268f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[746],{6416:function(n,t,e){let r,u,a;e.d(t,{K4:function(){return q},R3:function(){return I},_E:function(){return Z},vh:function(){return nr}});let o=Float32Array;function i(n=0,t=0){let e=new o(2);return void 0!==n&&(e[0]=n,void 0!==t&&(e[1]=t)),e}function c(n,t,e){return(e=e||new o(2))[0]=n[0]-t[0],e[1]=n[1]-t[1],e}function l(n,t,e){return(e=e||new o(2))[0]=n[0]*t,e[1]=n[1]*t,e}function f(n,t){return(t=t||new o(2))[0]=1/n[0],t[1]=1/n[1],t}function h(n,t){return n[0]*t[0]+n[1]*t[1]}function s(n){let t=n[0],e=n[1];return Math.sqrt(t*t+e*e)}function M(n){let t=n[0],e=n[1];return t*t+e*e}function w(n,t){let e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}function d(n,t){let e=n[0]-t[0],r=n[1]-t[1];return e*e+r*r}function m(n,t){return(t=t||new o(2))[0]=n[0],t[1]=n[1],t}function v(n,t,e){return(e=e||new o(2))[0]=n[0]*t[0],e[1]=n[1]*t[1],e}function p(n,t,e){return(e=e||new o(2))[0]=n[0]/t[0],e[1]=n[1]/t[1],e}var q=Object.freeze({__proto__:null,create:i,setDefaultType:function(n){let t=o;return o=n,t},fromValues:i,set:function(n,t,e){return(e=e||new o(2))[0]=n,e[1]=t,e},ceil:function(n,t){return(t=t||new o(2))[0]=Math.ceil(n[0]),t[1]=Math.ceil(n[1]),t},floor:function(n,t){return(t=t||new o(2))[0]=Math.floor(n[0]),t[1]=Math.floor(n[1]),t},round:function(n,t){return(t=t||new o(2))[0]=Math.round(n[0]),t[1]=Math.round(n[1]),t},clamp:function(n,t=0,e=1,r){return(r=r||new o(2))[0]=Math.min(e,Math.max(t,n[0])),r[1]=Math.min(e,Math.max(t,n[1])),r},add:function(n,t,e){return(e=e||new o(2))[0]=n[0]+t[0],e[1]=n[1]+t[1],e},addScaled:function(n,t,e,r){return(r=r||new o(2))[0]=n[0]+t[0]*e,r[1]=n[1]+t[1]*e,r},angle:function(n,t){let e=n[0],r=n[1],u=n[0],a=n[1],o=Math.sqrt(e*e+r*r)*Math.sqrt(u*u+a*a),i=o&&h(n,t)/o;return Math.acos(i)},subtract:c,sub:c,equalsApproximately:function(n,t){return 1e-6>Math.abs(n[0]-t[0])&&1e-6>Math.abs(n[1]-t[1])},equals:function(n,t){return n[0]===t[0]&&n[1]===t[1]},lerp:function(n,t,e,r){return(r=r||new o(2))[0]=n[0]+e*(t[0]-n[0]),r[1]=n[1]+e*(t[1]-n[1]),r},lerpV:function(n,t,e,r){return(r=r||new o(2))[0]=n[0]+e[0]*(t[0]-n[0]),r[1]=n[1]+e[1]*(t[1]-n[1]),r},max:function(n,t,e){return(e=e||new o(2))[0]=Math.max(n[0],t[0]),e[1]=Math.max(n[1],t[1]),e},min:function(n,t,e){return(e=e||new o(2))[0]=Math.min(n[0],t[0]),e[1]=Math.min(n[1],t[1]),e},mulScalar:l,scale:l,divScalar:function(n,t,e){return(e=e||new o(2))[0]=n[0]/t,e[1]=n[1]/t,e},inverse:f,invert:f,cross:function(n,t,e){e=e||new o(3);let r=n[0]*t[1]-n[1]*t[0];return e[0]=0,e[1]=0,e[2]=r,e},dot:h,length:s,len:s,lengthSq:M,lenSq:M,distance:w,dist:w,distanceSq:d,distSq:d,normalize:function(n,t){t=t||new o(2);let e=n[0],r=n[1],u=Math.sqrt(e*e+r*r);return u>1e-5?(t[0]=e/u,t[1]=r/u):(t[0]=0,t[1]=0),t},negate:function(n,t){return(t=t||new o(2))[0]=-n[0],t[1]=-n[1],t},copy:m,clone:m,multiply:v,mul:v,divide:p,div:p,random:function(n=1,t){t=t||new o(2);let e=2*Math.random()*Math.PI;return t[0]=Math.cos(e)*n,t[1]=Math.sin(e)*n,t},zero:function(n){return(n=n||new o(2))[0]=0,n[1]=0,n},transformMat4:function(n,t,e){e=e||new o(2);let r=n[0],u=n[1];return e[0]=r*t[0]+u*t[4]+t[12],e[1]=r*t[1]+u*t[5]+t[13],e},transformMat3:function(n,t,e){e=e||new o(2);let r=n[0],u=n[1];return e[0]=t[0]*r+t[4]*u+t[8],e[1]=t[1]*r+t[5]*u+t[9],e}});Float32Array;let b=new Map([[Float32Array,()=>new Float32Array(12)],[Float64Array,()=>new Float64Array(12)],[Array,()=>Array(12).fill(0)]]);b.get(Float32Array);let x=Float32Array;function y(n,t,e){let r=new x(3);return void 0!==n&&(r[0]=n,void 0!==t&&(r[1]=t,void 0!==e&&(r[2]=e))),r}function S(n,t,e){return(e=e||new x(3))[0]=n[0]-t[0],e[1]=n[1]-t[1],e[2]=n[2]-t[2],e}function g(n,t,e){return(e=e||new x(3))[0]=n[0]*t,e[1]=n[1]*t,e[2]=n[2]*t,e}function A(n,t){return(t=t||new x(3))[0]=1/n[0],t[1]=1/n[1],t[2]=1/n[2],t}function _(n,t,e){e=e||new x(3);let r=n[2]*t[0]-n[0]*t[2],u=n[0]*t[1]-n[1]*t[0];return e[0]=n[1]*t[2]-n[2]*t[1],e[1]=r,e[2]=u,e}function F(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function z(n){let t=n[0],e=n[1],r=n[2];return Math.sqrt(t*t+e*e+r*r)}function T(n){let t=n[0],e=n[1],r=n[2];return t*t+e*e+r*r}function V(n,t){let e=n[0]-t[0],r=n[1]-t[1],u=n[2]-t[2];return Math.sqrt(e*e+r*r+u*u)}function k(n,t){let e=n[0]-t[0],r=n[1]-t[1],u=n[2]-t[2];return e*e+r*r+u*u}function j(n,t){t=t||new x(3);let e=n[0],r=n[1],u=n[2],a=Math.sqrt(e*e+r*r+u*u);return a>1e-5?(t[0]=e/a,t[1]=r/a,t[2]=u/a):(t[0]=0,t[1]=0,t[2]=0),t}function D(n,t){return(t=t||new x(3))[0]=n[0],t[1]=n[1],t[2]=n[2],t}function O(n,t,e){return(e=e||new x(3))[0]=n[0]*t[0],e[1]=n[1]*t[1],e[2]=n[2]*t[2],e}function E(n,t,e){return(e=e||new x(3))[0]=n[0]/t[0],e[1]=n[1]/t[1],e[2]=n[2]/t[2],e}var I=Object.freeze({__proto__:null,create:y,setDefaultType:function(n){let t=x;return x=n,t},fromValues:y,set:function(n,t,e,r){return(r=r||new x(3))[0]=n,r[1]=t,r[2]=e,r},ceil:function(n,t){return(t=t||new x(3))[0]=Math.ceil(n[0]),t[1]=Math.ceil(n[1]),t[2]=Math.ceil(n[2]),t},floor:function(n,t){return(t=t||new x(3))[0]=Math.floor(n[0]),t[1]=Math.floor(n[1]),t[2]=Math.floor(n[2]),t},round:function(n,t){return(t=t||new x(3))[0]=Math.round(n[0]),t[1]=Math.round(n[1]),t[2]=Math.round(n[2]),t},clamp:function(n,t=0,e=1,r){return(r=r||new x(3))[0]=Math.min(e,Math.max(t,n[0])),r[1]=Math.min(e,Math.max(t,n[1])),r[2]=Math.min(e,Math.max(t,n[2])),r},add:function(n,t,e){return(e=e||new x(3))[0]=n[0]+t[0],e[1]=n[1]+t[1],e[2]=n[2]+t[2],e},addScaled:function(n,t,e,r){return(r=r||new x(3))[0]=n[0]+t[0]*e,r[1]=n[1]+t[1]*e,r[2]=n[2]+t[2]*e,r},angle:function(n,t){let e=n[0],r=n[1],u=n[2],a=n[0],o=n[1],i=n[2],c=Math.sqrt(e*e+r*r+u*u)*Math.sqrt(a*a+o*o+i*i),l=c&&F(n,t)/c;return Math.acos(l)},subtract:S,sub:S,equalsApproximately:function(n,t){return 1e-6>Math.abs(n[0]-t[0])&&1e-6>Math.abs(n[1]-t[1])&&1e-6>Math.abs(n[2]-t[2])},equals:function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]},lerp:function(n,t,e,r){return(r=r||new x(3))[0]=n[0]+e*(t[0]-n[0]),r[1]=n[1]+e*(t[1]-n[1]),r[2]=n[2]+e*(t[2]-n[2]),r},lerpV:function(n,t,e,r){return(r=r||new x(3))[0]=n[0]+e[0]*(t[0]-n[0]),r[1]=n[1]+e[1]*(t[1]-n[1]),r[2]=n[2]+e[2]*(t[2]-n[2]),r},max:function(n,t,e){return(e=e||new x(3))[0]=Math.max(n[0],t[0]),e[1]=Math.max(n[1],t[1]),e[2]=Math.max(n[2],t[2]),e},min:function(n,t,e){return(e=e||new x(3))[0]=Math.min(n[0],t[0]),e[1]=Math.min(n[1],t[1]),e[2]=Math.min(n[2],t[2]),e},mulScalar:g,scale:g,divScalar:function(n,t,e){return(e=e||new x(3))[0]=n[0]/t,e[1]=n[1]/t,e[2]=n[2]/t,e},inverse:A,invert:A,cross:_,dot:F,length:z,len:z,lengthSq:T,lenSq:T,distance:V,dist:V,distanceSq:k,distSq:k,normalize:j,negate:function(n,t){return(t=t||new x(3))[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t},copy:D,clone:D,multiply:O,mul:O,divide:E,div:E,random:function(n=1,t){t=t||new x(3);let e=2*Math.random()*Math.PI,r=2*Math.random()-1,u=Math.sqrt(1-r*r)*n;return t[0]=Math.cos(e)*u,t[1]=Math.sin(e)*u,t[2]=r*n,t},zero:function(n){return(n=n||new x(3))[0]=0,n[1]=0,n[2]=0,n},transformMat4:function(n,t,e){e=e||new x(3);let r=n[0],u=n[1],a=n[2],o=t[3]*r+t[7]*u+t[11]*a+t[15]||1;return e[0]=(t[0]*r+t[4]*u+t[8]*a+t[12])/o,e[1]=(t[1]*r+t[5]*u+t[9]*a+t[13])/o,e[2]=(t[2]*r+t[6]*u+t[10]*a+t[14])/o,e},transformMat4Upper3x3:function(n,t,e){e=e||new x(3);let r=n[0],u=n[1],a=n[2];return e[0]=r*t[0]+u*t[4]+a*t[8],e[1]=r*t[1]+u*t[5]+a*t[9],e[2]=r*t[2]+u*t[6]+a*t[10],e},transformMat3:function(n,t,e){e=e||new x(3);let r=n[0],u=n[1],a=n[2];return e[0]=r*t[0]+u*t[4]+a*t[8],e[1]=r*t[1]+u*t[5]+a*t[9],e[2]=r*t[2]+u*t[6]+a*t[10],e},transformQuat:function(n,t,e){e=e||new x(3);let r=t[0],u=t[1],a=t[2],o=2*t[3],i=n[0],c=n[1],l=n[2],f=u*l-a*c,h=a*i-r*l,s=r*c-u*i;return e[0]=i+f*o+(u*s-a*h)*2,e[1]=c+h*o+(a*f-r*s)*2,e[2]=l+s*o+(r*h-u*f)*2,e},getTranslation:function(n,t){return(t=t||new x(3))[0]=n[12],t[1]=n[13],t[2]=n[14],t},getAxis:function(n,t,e){e=e||new x(3);let r=4*t;return e[0]=n[r+0],e[1]=n[r+1],e[2]=n[r+2],e},getScaling:function(n,t){t=t||new x(3);let e=n[0],r=n[1],u=n[2],a=n[4],o=n[5],i=n[6],c=n[8],l=n[9],f=n[10];return t[0]=Math.sqrt(e*e+r*r+u*u),t[1]=Math.sqrt(a*a+o*o+i*i),t[2]=Math.sqrt(c*c+l*l+f*f),t}});let P=Float32Array;function R(n,t){return(t=t||new P(16))[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t}function C(n){return(n=n||new P(16))[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function N(n,t){t=t||new P(16);let e=n[0],r=n[1],u=n[2],a=n[3],o=n[4],i=n[5],c=n[6],l=n[7],f=n[8],h=n[9],s=n[10],M=n[11],w=n[12],d=n[13],m=n[14],v=n[15],p=s*v,q=m*M,b=c*v,x=m*l,y=c*M,S=s*l,g=u*v,A=m*a,_=u*M,F=s*a,z=u*l,T=c*a,V=f*d,k=w*h,j=o*d,D=w*i,O=o*h,E=f*i,I=e*d,R=w*r,C=e*h,N=f*r,Q=e*i,X=o*r,Y=p*i+x*h+y*d-(q*i+b*h+S*d),Z=q*r+g*h+F*d-(p*r+A*h+_*d),K=b*r+A*i+z*d-(x*r+g*i+T*d),U=S*r+_*i+T*h-(y*r+F*i+z*h),B=1/(e*Y+o*Z+f*K+w*U);return t[0]=B*Y,t[1]=B*Z,t[2]=B*K,t[3]=B*U,t[4]=B*(q*o+b*f+S*w-(p*o+x*f+y*w)),t[5]=B*(p*e+A*f+_*w-(q*e+g*f+F*w)),t[6]=B*(x*e+g*o+T*w-(b*e+A*o+z*w)),t[7]=B*(y*e+F*o+z*f-(S*e+_*o+T*f)),t[8]=B*(V*l+D*M+O*v-(k*l+j*M+E*v)),t[9]=B*(k*a+I*M+N*v-(V*a+R*M+C*v)),t[10]=B*(j*a+R*l+Q*v-(D*a+I*l+X*v)),t[11]=B*(E*a+C*l+X*M-(O*a+N*l+Q*M)),t[12]=B*(j*s+E*m+k*c-(O*m+V*c+D*s)),t[13]=B*(C*m+V*u+R*s-(I*s+N*m+k*u)),t[14]=B*(I*c+X*m+D*u-(Q*m+j*u+R*c)),t[15]=B*(Q*s+O*u+N*c-(C*c+X*s+E*u)),t}function Q(n,t,e){e=e||new P(16);let r=n[0],u=n[1],a=n[2],o=n[3],i=n[4],c=n[5],l=n[6],f=n[7],h=n[8],s=n[9],M=n[10],w=n[11],d=n[12],m=n[13],v=n[14],p=n[15],q=t[0],b=t[1],x=t[2],y=t[3],S=t[4],g=t[5],A=t[6],_=t[7],F=t[8],z=t[9],T=t[10],V=t[11],k=t[12],j=t[13],D=t[14],O=t[15];return e[0]=r*q+i*b+h*x+d*y,e[1]=u*q+c*b+s*x+m*y,e[2]=a*q+l*b+M*x+v*y,e[3]=o*q+f*b+w*x+p*y,e[4]=r*S+i*g+h*A+d*_,e[5]=u*S+c*g+s*A+m*_,e[6]=a*S+l*g+M*A+v*_,e[7]=o*S+f*g+w*A+p*_,e[8]=r*F+i*z+h*T+d*V,e[9]=u*F+c*z+s*T+m*V,e[10]=a*F+l*z+M*T+v*V,e[11]=o*F+f*z+w*T+p*V,e[12]=r*k+i*j+h*D+d*O,e[13]=u*k+c*j+s*D+m*O,e[14]=a*k+l*j+M*D+v*O,e[15]=o*k+f*j+w*D+p*O,e}function X(n,t,e){e=e||new P(16);let r=n[0],u=n[1],a=n[2],o=Math.sqrt(r*r+u*u+a*a);r/=o,u/=o,a/=o;let i=r*r,c=u*u,l=a*a,f=Math.cos(t),h=Math.sin(t),s=1-f;return e[0]=i+(1-i)*f,e[1]=r*u*s+a*h,e[2]=r*a*s-u*h,e[3]=0,e[4]=r*u*s-a*h,e[5]=c+(1-c)*f,e[6]=u*a*s+r*h,e[7]=0,e[8]=r*a*s+u*h,e[9]=u*a*s-r*h,e[10]=l+(1-l)*f,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Y(n,t,e,r){r=r||new P(16);let u=t[0],a=t[1],o=t[2],i=Math.sqrt(u*u+a*a+o*o);u/=i,a/=i,o/=i;let c=u*u,l=a*a,f=o*o,h=Math.cos(e),s=Math.sin(e),M=1-h,w=c+(1-c)*h,d=u*a*M+o*s,m=u*o*M-a*s,v=u*a*M-o*s,p=l+(1-l)*h,q=a*o*M+u*s,b=u*o*M+a*s,x=a*o*M-u*s,y=f+(1-f)*h,S=n[0],g=n[1],A=n[2],_=n[3],F=n[4],z=n[5],T=n[6],V=n[7],k=n[8],j=n[9],D=n[10],O=n[11];return r[0]=w*S+d*F+m*k,r[1]=w*g+d*z+m*j,r[2]=w*A+d*T+m*D,r[3]=w*_+d*V+m*O,r[4]=v*S+p*F+q*k,r[5]=v*g+p*z+q*j,r[6]=v*A+p*T+q*D,r[7]=v*_+p*V+q*O,r[8]=b*S+x*F+y*k,r[9]=b*g+x*z+y*j,r[10]=b*A+x*T+y*D,r[11]=b*_+x*V+y*O,n!==r&&(r[12]=n[12],r[13]=n[13],r[14]=n[14],r[15]=n[15]),r}var Z=Object.freeze({__proto__:null,setDefaultType:function(n){let t=P;return P=n,t},create:function(n,t,e,r,u,a,o,i,c,l,f,h,s,M,w,d){let m=new P(16);return void 0!==n&&(m[0]=n,void 0!==t&&(m[1]=t,void 0!==e&&(m[2]=e,void 0!==r&&(m[3]=r,void 0!==u&&(m[4]=u,void 0!==a&&(m[5]=a,void 0!==o&&(m[6]=o,void 0!==i&&(m[7]=i,void 0!==c&&(m[8]=c,void 0!==l&&(m[9]=l,void 0!==f&&(m[10]=f,void 0!==h&&(m[11]=h,void 0!==s&&(m[12]=s,void 0!==M&&(m[13]=M,void 0!==w&&(m[14]=w,void 0!==d&&(m[15]=d)))))))))))))))),m},set:function(n,t,e,r,u,a,o,i,c,l,f,h,s,M,w,d,m){return(m=m||new P(16))[0]=n,m[1]=t,m[2]=e,m[3]=r,m[4]=u,m[5]=a,m[6]=o,m[7]=i,m[8]=c,m[9]=l,m[10]=f,m[11]=h,m[12]=s,m[13]=M,m[14]=w,m[15]=d,m},fromMat3:function(n,t){return(t=t||new P(16))[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=0,t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=0,t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},fromQuat:function(n,t){t=t||new P(16);let e=n[0],r=n[1],u=n[2],a=n[3],o=e+e,i=r+r,c=u+u,l=e*o,f=r*o,h=r*i,s=u*o,M=u*i,w=u*c,d=a*o,m=a*i,v=a*c;return t[0]=1-h-w,t[1]=f+v,t[2]=s-m,t[3]=0,t[4]=f-v,t[5]=1-l-w,t[6]=M+d,t[7]=0,t[8]=s+m,t[9]=M-d,t[10]=1-l-h,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},negate:function(n,t){return(t=t||new P(16))[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t[3]=-n[3],t[4]=-n[4],t[5]=-n[5],t[6]=-n[6],t[7]=-n[7],t[8]=-n[8],t[9]=-n[9],t[10]=-n[10],t[11]=-n[11],t[12]=-n[12],t[13]=-n[13],t[14]=-n[14],t[15]=-n[15],t},copy:R,clone:R,equalsApproximately:function(n,t){return 1e-6>Math.abs(n[0]-t[0])&&1e-6>Math.abs(n[1]-t[1])&&1e-6>Math.abs(n[2]-t[2])&&1e-6>Math.abs(n[3]-t[3])&&1e-6>Math.abs(n[4]-t[4])&&1e-6>Math.abs(n[5]-t[5])&&1e-6>Math.abs(n[6]-t[6])&&1e-6>Math.abs(n[7]-t[7])&&1e-6>Math.abs(n[8]-t[8])&&1e-6>Math.abs(n[9]-t[9])&&1e-6>Math.abs(n[10]-t[10])&&1e-6>Math.abs(n[11]-t[11])&&1e-6>Math.abs(n[12]-t[12])&&1e-6>Math.abs(n[13]-t[13])&&1e-6>Math.abs(n[14]-t[14])&&1e-6>Math.abs(n[15]-t[15])},equals:function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]&&n[9]===t[9]&&n[10]===t[10]&&n[11]===t[11]&&n[12]===t[12]&&n[13]===t[13]&&n[14]===t[14]&&n[15]===t[15]},identity:C,transpose:function(n,t){if((t=t||new P(16))===n){let e;return e=n[1],n[1]=n[4],n[4]=e,e=n[2],n[2]=n[8],n[8]=e,e=n[3],n[3]=n[12],n[12]=e,e=n[6],n[6]=n[9],n[9]=e,e=n[7],n[7]=n[13],n[13]=e,e=n[11],n[11]=n[14],n[14]=e,t}let r=n[0],u=n[1],a=n[2],o=n[3],i=n[4],c=n[5],l=n[6],f=n[7],h=n[8],s=n[9],M=n[10],w=n[11],d=n[12],m=n[13],v=n[14],p=n[15];return t[0]=r,t[1]=i,t[2]=h,t[3]=d,t[4]=u,t[5]=c,t[6]=s,t[7]=m,t[8]=a,t[9]=l,t[10]=M,t[11]=v,t[12]=o,t[13]=f,t[14]=w,t[15]=p,t},inverse:N,determinant:function(n){let t=n[0],e=n[1],r=n[2],u=n[3],a=n[4],o=n[5],i=n[6],c=n[7],l=n[8],f=n[9],h=n[10],s=n[11],M=n[12],w=n[13],d=n[14],m=n[15],v=h*m,p=d*s,q=i*m,b=d*c,x=i*s,y=h*c,S=r*m,g=d*u,A=r*s,_=h*u,F=r*c,z=i*u;return t*(v*o+b*f+x*w-(p*o+q*f+y*w))+a*(p*e+S*f+_*w-(v*e+g*f+A*w))+l*(q*e+g*o+F*w-(b*e+S*o+z*w))+M*(y*e+A*o+z*f-(x*e+_*o+F*f))},invert:N,multiply:Q,mul:Q,setTranslation:function(n,t,e){return n!==(e=e||C())&&(e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11]),e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e},getTranslation:function(n,t){return(t=t||y())[0]=n[12],t[1]=n[13],t[2]=n[14],t},getAxis:function(n,t,e){e=e||y();let r=4*t;return e[0]=n[r+0],e[1]=n[r+1],e[2]=n[r+2],e},setAxis:function(n,t,e,r){r!==n&&(r=R(n,r));let u=4*e;return r[u+0]=t[0],r[u+1]=t[1],r[u+2]=t[2],r},getScaling:function(n,t){t=t||y();let e=n[0],r=n[1],u=n[2],a=n[4],o=n[5],i=n[6],c=n[8],l=n[9],f=n[10];return t[0]=Math.sqrt(e*e+r*r+u*u),t[1]=Math.sqrt(a*a+o*o+i*i),t[2]=Math.sqrt(c*c+l*l+f*f),t},perspective:function(n,t,e,r,u){u=u||new P(16);let a=Math.tan(.5*Math.PI-.5*n);if(u[0]=a/t,u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=a,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[11]=-1,u[12]=0,u[13]=0,u[15]=0,r===1/0)u[10]=-1,u[14]=-e;else{let o=1/(e-r);u[10]=r*o,u[14]=r*e*o}return u},ortho:function(n,t,e,r,u,a,o){return(o=o||new P(16))[0]=2/(t-n),o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=2/(r-e),o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=1/(u-a),o[11]=0,o[12]=(t+n)/(n-t),o[13]=(r+e)/(e-r),o[14]=u/(u-a),o[15]=1,o},frustum:function(n,t,e,r,u,a,o){o=o||new P(16);let i=t-n,c=r-e,l=u-a;return o[0]=2*u/i,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=2*u/c,o[6]=0,o[7]=0,o[8]=(n+t)/i,o[9]=(r+e)/c,o[10]=a/l,o[11]=-1,o[12]=0,o[13]=0,o[14]=u*a/l,o[15]=0,o},aim:function(n,t,e,o){return o=o||new P(16),r=r||y(),u=u||y(),j(S(t,n,a=a||y()),a),j(_(e,a,r),r),j(_(a,r,u),u),o[0]=r[0],o[1]=r[1],o[2]=r[2],o[3]=0,o[4]=u[0],o[5]=u[1],o[6]=u[2],o[7]=0,o[8]=a[0],o[9]=a[1],o[10]=a[2],o[11]=0,o[12]=n[0],o[13]=n[1],o[14]=n[2],o[15]=1,o},cameraAim:function(n,t,e,o){return o=o||new P(16),r=r||y(),u=u||y(),j(S(n,t,a=a||y()),a),j(_(e,a,r),r),j(_(a,r,u),u),o[0]=r[0],o[1]=r[1],o[2]=r[2],o[3]=0,o[4]=u[0],o[5]=u[1],o[6]=u[2],o[7]=0,o[8]=a[0],o[9]=a[1],o[10]=a[2],o[11]=0,o[12]=n[0],o[13]=n[1],o[14]=n[2],o[15]=1,o},lookAt:function(n,t,e,o){return o=o||new P(16),r=r||y(),u=u||y(),j(S(n,t,a=a||y()),a),j(_(e,a,r),r),j(_(a,r,u),u),o[0]=r[0],o[1]=u[0],o[2]=a[0],o[3]=0,o[4]=r[1],o[5]=u[1],o[6]=a[1],o[7]=0,o[8]=r[2],o[9]=u[2],o[10]=a[2],o[11]=0,o[12]=-(r[0]*n[0]+r[1]*n[1]+r[2]*n[2]),o[13]=-(u[0]*n[0]+u[1]*n[1]+u[2]*n[2]),o[14]=-(a[0]*n[0]+a[1]*n[1]+a[2]*n[2]),o[15]=1,o},translation:function(n,t){return(t=t||new P(16))[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t},translate:function(n,t,e){e=e||new P(16);let r=t[0],u=t[1],a=t[2],o=n[0],i=n[1],c=n[2],l=n[3],f=n[4],h=n[5],s=n[6],M=n[7],w=n[8],d=n[9],m=n[10],v=n[11],p=n[12],q=n[13],b=n[14],x=n[15];return n!==e&&(e[0]=o,e[1]=i,e[2]=c,e[3]=l,e[4]=f,e[5]=h,e[6]=s,e[7]=M,e[8]=w,e[9]=d,e[10]=m,e[11]=v),e[12]=o*r+f*u+w*a+p,e[13]=i*r+h*u+d*a+q,e[14]=c*r+s*u+m*a+b,e[15]=l*r+M*u+v*a+x,e},rotationX:function(n,t){t=t||new P(16);let e=Math.cos(n),r=Math.sin(n);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},rotateX:function(n,t,e){e=e||new P(16);let r=n[4],u=n[5],a=n[6],o=n[7],i=n[8],c=n[9],l=n[10],f=n[11],h=Math.cos(t),s=Math.sin(t);return e[4]=h*r+s*i,e[5]=h*u+s*c,e[6]=h*a+s*l,e[7]=h*o+s*f,e[8]=h*i-s*r,e[9]=h*c-s*u,e[10]=h*l-s*a,e[11]=h*f-s*o,n!==e&&(e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15]),e},rotationY:function(n,t){t=t||new P(16);let e=Math.cos(n),r=Math.sin(n);return t[0]=e,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},rotateY:function(n,t,e){e=e||new P(16);let r=n[0],u=n[1],a=n[2],o=n[3],i=n[8],c=n[9],l=n[10],f=n[11],h=Math.cos(t),s=Math.sin(t);return e[0]=h*r-s*i,e[1]=h*u-s*c,e[2]=h*a-s*l,e[3]=h*o-s*f,e[8]=h*i+s*r,e[9]=h*c+s*u,e[10]=h*l+s*a,e[11]=h*f+s*o,n!==e&&(e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15]),e},rotationZ:function(n,t){t=t||new P(16);let e=Math.cos(n),r=Math.sin(n);return t[0]=e,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},rotateZ:function(n,t,e){e=e||new P(16);let r=n[0],u=n[1],a=n[2],o=n[3],i=n[4],c=n[5],l=n[6],f=n[7],h=Math.cos(t),s=Math.sin(t);return e[0]=h*r+s*i,e[1]=h*u+s*c,e[2]=h*a+s*l,e[3]=h*o+s*f,e[4]=h*i-s*r,e[5]=h*c-s*u,e[6]=h*l-s*a,e[7]=h*f-s*o,n!==e&&(e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15]),e},axisRotation:X,rotation:X,axisRotate:Y,rotate:Y,scaling:function(n,t){return(t=t||new P(16))[0]=n[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=n[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},scale:function(n,t,e){e=e||new P(16);let r=t[0],u=t[1],a=t[2];return e[0]=r*n[0],e[1]=r*n[1],e[2]=r*n[2],e[3]=r*n[3],e[4]=u*n[4],e[5]=u*n[5],e[6]=u*n[6],e[7]=u*n[7],e[8]=a*n[8],e[9]=a*n[9],e[10]=a*n[10],e[11]=a*n[11],n!==e&&(e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15]),e},uniformScaling:function(n,t){return(t=t||new P(16))[0]=n,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},uniformScale:function(n,t,e){return(e=e||new P(16))[0]=t*n[0],e[1]=t*n[1],e[2]=t*n[2],e[3]=t*n[3],e[4]=t*n[4],e[5]=t*n[5],e[6]=t*n[6],e[7]=t*n[7],e[8]=t*n[8],e[9]=t*n[9],e[10]=t*n[10],e[11]=t*n[11],n!==e&&(e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15]),e}});Float32Array;let K=Float32Array;function U(n,t,e,r){let u=new K(4);return void 0!==n&&(u[0]=n,void 0!==t&&(u[1]=t,void 0!==e&&(u[2]=e,void 0!==r&&(u[3]=r)))),u}function B(n,t,e){return(e=e||new K(4))[0]=n[0]-t[0],e[1]=n[1]-t[1],e[2]=n[2]-t[2],e[3]=n[3]-t[3],e}function G(n,t,e){return(e=e||new K(4))[0]=n[0]*t,e[1]=n[1]*t,e[2]=n[2]*t,e[3]=n[3]*t,e}function H(n,t){return(t=t||new K(4))[0]=1/n[0],t[1]=1/n[1],t[2]=1/n[2],t[3]=1/n[3],t}function J(n){let t=n[0],e=n[1],r=n[2],u=n[3];return Math.sqrt(t*t+e*e+r*r+u*u)}function L(n){let t=n[0],e=n[1],r=n[2],u=n[3];return t*t+e*e+r*r+u*u}function W(n,t){let e=n[0]-t[0],r=n[1]-t[1],u=n[2]-t[2],a=n[3]-t[3];return Math.sqrt(e*e+r*r+u*u+a*a)}function $(n,t){let e=n[0]-t[0],r=n[1]-t[1],u=n[2]-t[2],a=n[3]-t[3];return e*e+r*r+u*u+a*a}function nn(n,t){return(t=t||new K(4))[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function nt(n,t,e){return(e=e||new K(4))[0]=n[0]*t[0],e[1]=n[1]*t[1],e[2]=n[2]*t[2],e[3]=n[3]*t[3],e}function ne(n,t,e){return(e=e||new K(4))[0]=n[0]/t[0],e[1]=n[1]/t[1],e[2]=n[2]/t[2],e[3]=n[3]/t[3],e}var nr=Object.freeze({__proto__:null,create:U,setDefaultType:function(n){let t=K;return K=n,t},fromValues:U,set:function(n,t,e,r,u){return(u=u||new K(4))[0]=n,u[1]=t,u[2]=e,u[3]=r,u},ceil:function(n,t){return(t=t||new K(4))[0]=Math.ceil(n[0]),t[1]=Math.ceil(n[1]),t[2]=Math.ceil(n[2]),t[3]=Math.ceil(n[3]),t},floor:function(n,t){return(t=t||new K(4))[0]=Math.floor(n[0]),t[1]=Math.floor(n[1]),t[2]=Math.floor(n[2]),t[3]=Math.floor(n[3]),t},round:function(n,t){return(t=t||new K(4))[0]=Math.round(n[0]),t[1]=Math.round(n[1]),t[2]=Math.round(n[2]),t[3]=Math.round(n[3]),t},clamp:function(n,t=0,e=1,r){return(r=r||new K(4))[0]=Math.min(e,Math.max(t,n[0])),r[1]=Math.min(e,Math.max(t,n[1])),r[2]=Math.min(e,Math.max(t,n[2])),r[3]=Math.min(e,Math.max(t,n[3])),r},add:function(n,t,e){return(e=e||new K(4))[0]=n[0]+t[0],e[1]=n[1]+t[1],e[2]=n[2]+t[2],e[3]=n[3]+t[3],e},addScaled:function(n,t,e,r){return(r=r||new K(4))[0]=n[0]+t[0]*e,r[1]=n[1]+t[1]*e,r[2]=n[2]+t[2]*e,r[3]=n[3]+t[3]*e,r},subtract:B,sub:B,equalsApproximately:function(n,t){return 1e-6>Math.abs(n[0]-t[0])&&1e-6>Math.abs(n[1]-t[1])&&1e-6>Math.abs(n[2]-t[2])&&1e-6>Math.abs(n[3]-t[3])},equals:function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]},lerp:function(n,t,e,r){return(r=r||new K(4))[0]=n[0]+e*(t[0]-n[0]),r[1]=n[1]+e*(t[1]-n[1]),r[2]=n[2]+e*(t[2]-n[2]),r[3]=n[3]+e*(t[3]-n[3]),r},lerpV:function(n,t,e,r){return(r=r||new K(4))[0]=n[0]+e[0]*(t[0]-n[0]),r[1]=n[1]+e[1]*(t[1]-n[1]),r[2]=n[2]+e[2]*(t[2]-n[2]),r[3]=n[3]+e[3]*(t[3]-n[3]),r},max:function(n,t,e){return(e=e||new K(4))[0]=Math.max(n[0],t[0]),e[1]=Math.max(n[1],t[1]),e[2]=Math.max(n[2],t[2]),e[3]=Math.max(n[3],t[3]),e},min:function(n,t,e){return(e=e||new K(4))[0]=Math.min(n[0],t[0]),e[1]=Math.min(n[1],t[1]),e[2]=Math.min(n[2],t[2]),e[3]=Math.min(n[3],t[3]),e},mulScalar:G,scale:G,divScalar:function(n,t,e){return(e=e||new K(4))[0]=n[0]/t,e[1]=n[1]/t,e[2]=n[2]/t,e[3]=n[3]/t,e},inverse:H,invert:H,dot:function(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]},length:J,len:J,lengthSq:L,lenSq:L,distance:W,dist:W,distanceSq:$,distSq:$,normalize:function(n,t){t=t||new K(4);let e=n[0],r=n[1],u=n[2],a=n[3],o=Math.sqrt(e*e+r*r+u*u+a*a);return o>1e-5?(t[0]=e/o,t[1]=r/o,t[2]=u/o,t[3]=a/o):(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t},negate:function(n,t){return(t=t||new K(4))[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t[3]=-n[3],t},copy:nn,clone:nn,multiply:nt,mul:nt,divide:ne,div:ne,zero:function(n){return(n=n||new K(4))[0]=0,n[1]=0,n[2]=0,n[3]=0,n},transformMat4:function(n,t,e){e=e||new K(4);let r=n[0],u=n[1],a=n[2],o=n[3];return e[0]=t[0]*r+t[4]*u+t[8]*a+t[12]*o,e[1]=t[1]*r+t[5]*u+t[9]*a+t[13]*o,e[2]=t[2]*r+t[6]*u+t[10]*a+t[14]*o,e[3]=t[3]*r+t[7]*u+t[11]*a+t[15]*o,e}})}}]); \ No newline at end of file diff --git a/_next/static/chunks/webpack-849f73b6ba7ba18d.js b/_next/static/chunks/webpack-dc900569ea4046e8.js similarity index 56% rename from _next/static/chunks/webpack-849f73b6ba7ba18d.js rename to _next/static/chunks/webpack-dc900569ea4046e8.js index a9ab46a2..7f21f198 100644 --- a/_next/static/chunks/webpack-849f73b6ba7ba18d.js +++ b/_next/static/chunks/webpack-dc900569ea4046e8.js @@ -1 +1 @@ -!function(){"use strict";var e,t,r,n,f,a,o,c,i,u,d={},b={};function l(e){var t=b[e];if(void 0!==t)return t.exports;var r=b[e]={exports:{}},n=!0;try{d[e].call(r.exports,r,r.exports,l),n=!1}finally{n&&delete b[e]}return r.exports}l.m=d,e=[],l.O=function(t,r,n,f){if(r){f=f||0;for(var a=e.length;a>0&&e[a-1][2]>f;a--)e[a]=e[a-1];e[a]=[r,n,f];return}for(var o=1/0,a=0;a=f&&Object.keys(l.O).every(function(e){return l.O[e](r[i])})?r.splice(i--,1):(c=!1,f0&&e[a-1][2]>f;a--)e[a]=e[a-1];e[a]=[r,n,f];return}for(var c=1/0,a=0;a=f&&Object.keys(l.O).every(function(e){return l.O[e](r[i])})?r.splice(i--,1):(o=!1,fPR;a0sHw803`h%UIWPVUmXwt5N-{C|F6!cSNhLm z{M!Dp`45H52L3N%Ht7Fq0|D7^|I5E>1AJrBVqOV~lf14g0D#&3PXm5u#Uy=2)3w&r zann&&5;k+R=P>!~Xll;kW$*Nl6+qNW_?5LccQc{#vbS?^74{ON`By{umH$V~NkjFo zikqz%jgGP!m9(RaITb$#7Y7%OI4Tttm8i>S3t^4-vi~)I?TOJ?xw$zBb8>omdUAO3 zayYtJa&ij^32}1qaPsi5ziP0%dONt8c(FUU(*6hJ|KhwicQtddc5<_JbfEeN*TmG( z-A#;!<{wA@^ZX}HH*1Uk_2l6C-?Uy6yqqcuvoxxz-;)VPop@O&40#@YVJqs{36$V3{Y@VbU3T}civv(t)ow0oUxT!2qkS|8|R6JXKI zpxrNaD3CBQ-?e$Tc5Uwx+<^ahjXMQi;3&&A-uWTGZhg;6*5~0=XW%%02>Vj-dRx6)r=~?EN>nW6`yKAJ*0GKlV`;J>&#{h#Ma~3g-Du z->`o}xw(L*SYX+qVLdkf8`o>7d|3504(nKG(BwBb65`V7 zNM>I~f^D7W63@_muc6gQWjB(;)j!RkPnTtHc_A|l&j+ADsx~Fq!F2Hv_7@HO5O9N7 z#qRY{kgb@SnN8G*r_tD-S=mGGV`)Huw10~*4seJk_cJuGRzQ(3n zLHB|s@fd&exbs8Ev-GkUEfBS6;}d*|#@O&%XttR3*`~C5m-d>}YzHqy<}onBr(*g{ z$T>yOS9ONIkjQT0#xHAQLO!cv`h$Yz=Bu&@S6uh5;A<#eS$+4;3q-I}kD zh4=0r6ijguS!~PkAY|uT)lGQ?CJeN}i!64DE~$sxCP*{p!=5n1(GdB`fw+p~fs&Iby3)*nfKa#`dqhkZ;-7Ah%SmCXypcubRNDPe+2 zOZq7dERJ!MKWX*9pV`KZ&Nl`b1+f8=0w~1pz_R*#-TghT`WGZT-qMI?R42=$rzeox z?Qp!>REgbh=^aK-{A&rK=$GeTWXM`&1VMr;^G=n0{LE8HD*H)ttN@n9gL=^VK#Vvx zDbHaOlX&~Uf(p7X8Nhb&W)s`jGh6rViUL?q0rn)@U@J*OaU zC_FxDwP9C)f2dSf)XUmpsqt6wHARZ6BJk0lVOJH zc`3VJwSRWhaQ}Xs0M8+!aXS_Qi2Ye<)MzP6)OazAhv?l-@v_ z_k3>}M&bQ(QN)XNKdYQ4gSZGH+f9ev#ogH2=6EbAXUtD6 z?@!2r8ZAby4ER)qAF!v?e}6u3-peoxsa*$ea+`xThpf@@WV$#P5FHd9)}5J7?WD`} zybrn&pVi@Mv20uo?XRW9H`YX&F3ZnPc*WTOdLZs-ULlOl1E5kDtDztmL}rNc#mL3^ zs>;ZciO}$;OVHvMA&H|0SxHxBqiJ`##X!Map-%h##;G2b8*P`OA;q5R6`Kd_6P$V9 zx7GUlMGnRjKu>hPLO9vtw-_$>ET>AWemg(*q0)ouu74PO&e?LrqgrnCTTvUD0DWEx zqcjJ(YpImz?>??>mZ+4(;FbLh7nw&1_|dON}{D|m64TO{5$*<-<2zEuUhryeOBer*~%8)QrL$< zqNaI{olNA8B*tQ_yB0l_vg#JS5z1P?7DM=jZhB~7=!0>EFo1FIw;l(KxxWb5`RPS_ zF&(}BGDIA5@cdWBejEOFQdOdWw1I>lyhqtA<^V)Kod4RyBoMZ>Yu2@dGY5?zyq=wE zUN6}%_s)>>EySX*eTrj$v9eFus8APCc>d10(Ngi#hzjrC)*G++b5=ZW>wrE~$q-}R z9)oi@J1K<%lDJBVub%mMUH#Zz>wOg>K9O>t+Zif$wc`FnVBcQuXuv9VcrybQ1P`tB z{LT}n#O1%acL_7%kzfOmXybET12~5>d8`v1n#cox5dh0jrwTBw>fF45$H(+;Sk`;R zJ~errWeM$nInjku21-+cZhPyH2m_SM4N?}|VvbU^4X)jld5`^f210NAOLj>}i^ZO! z2~(cu(&dT))}9mBYnVrTHf6bDYyi2$uyK<|6Ekd5T^5O!TI4;t(-3I+T;5*Ery>b6 zY1GtP?RN{){n>l?O_dmX-Rgz+*>gSjiS6-!M`q?_%(nB{Zkv~yO#K-+5R7sZ$)!hR zlEtE}KK_DeUeeqC7L_X3f1h3=w?NxCVI_^LY58jt&5O;go6i!0=2h!SFIY$NV9;fT zALL6I_`UMxM}-q6c~A%wyeQS@@hT z7;JQl761I#L_z3mmapmhsC_C^Z=$hI(cDJla(9M}9TH`BYd1rm0aM&Q8B6QiyNFh8 zF+Un<`iA`^Jb`9P@`;WCCNuf^Uyb@Rarmx`TUOlX)-P&|CcdgEZ!E=?KkhV&fyxl{ zQbq_!%AtNZoF7KRKEpB`En?m!Gg1$Js!6IvYS2Ex^-D=O%F%pC*l9>A5g~#}SE`f3 zkd6sq1_1?%OZjUdBOycGySBbUHF;z97_LUT3XhK38M=h;?iY$$wlEqF`)WP(YQ<7C zAJy-A8%l6>Pd7^Il#{dd=0&heovd9#(2ekYZbDahU-UR0LJBv?Y+3sq&GdIWk9DKk zu{AD>%vTJ3@jGrEYE*g-P`ZB+4FW}h29cavLSSQi#mBA&F(Fg_+ z05X2JUFzMJ2|8s+n7JnYvimdwjvYniDxg%zshh}?7Q?4JuSQ5RwsWZPTE?3hyZh;q z!t;%1OFee0Gc~HX;!8at$G4q8_$0qFTHu+6ITIn76CwTa5UXDyn%6z`o=pEi+u^V7 z(I%>yWE;wRVbN^_j=MN3)_~X$-aT`ve12{M?jz;3%iJMT#o!GY-IBP`>q%MBULs#1 z=q#;dap5yQEG+4D{+pHscd?G$gI&(k)LUY{B5jP#MvN|xq(}yRD;`hQB`y1*TEW~B z(BO@xYpj?^u=f0>^>3YdLv&I17l%2PtJ;pSM2UvQmrJwBSvpKD3m~Ak3{|ajP-CH0 z1_)o-!(21kTQjIEfrieHi_jYN)xrq3NuR}5<9Ksak8@J^M9rMz{m{|MS=`IN1kE375? zk%@DBDr*umsw}REIRoson1kM#}*Yn^=aLD91(sa7Q5x)=4mnN=F7V}-&%?l|L@J_$TXB*)@i$fL7 zHdpf!`9^oMj!VVN;@kPoF%v~t>R@D5!m2=>WGlw=HmVf<05!bI>Q6hyA}b~FGEZCI z{ohqxs~d!V@R(rp2eM5gFSQ;v!+fGcHv_53uY36-SDPE_sUbjLJ|B>$H{>EXxU^h+uTDg@i zwEH60waD}@_InJHVEgk~R4~K$sI%l}x~!QdLn~~-$)KV-Wv{HzbXEeHuKkJuEW4}P zZgBtVd3o@TVYrsu$lLY_za<~Tq8AoMdla!{uP)k8f_b3+MFk6bU`cavT3du_xzkBqDZM}@;Gph+pf?^Z-U0JkmP^aJxnIz z4xzz)h>U4IXKc!W%@TcK_dfr5v-J0v!_=PbGht#G@hNvR82FpivsNX;nQybaZ!PxH zz`JDFyTXqQ95AxXPkY7>Hpqtq{^zot=^$zr4RUYQ_t5iyFc%wk6% z*9J90;6vv?7QU9UI#^0^(<4|xSQtl%uEwX04g$o-Y_y4WK_oxm$xAyE%5V-t` zyDoZvxk%l@2Btd1_mtGGqqa!+wRd0SjJwpzWk=9cZ^T$4_$hJHd7^T9&^zF zeJ#R{9y`fPAFv>qCKo0pp)dwMvnhqTKsFoDzwmjOL934?`4ZFx!prtZu(Ym6YatZ0ljROlcQ(O0gnmV&$QAPOe5OACltb z=UE>y{m4s#);5@w8?m2;g?Voy{fiQzW|Y?zb@@Z)+rK>>lw9RrKmWwI{-yj{`ou#0 zi7v&YHlQo)U24}BW z2R%p#uSbX~GvQa!#(wjU1d%)o&{1LZWFw!cT7eCc?@jScMxod>wSW>QE@HYd`#Dg* zw)AWS8**_Adk<)G1@s96x83B0!KmJUvM^p4hZsYlxj7hv^i9PdcNt#?4SVT@4;u(= zMy0^#k?O<{?4u5ZbE;ZuMQ^yeIyIQ`gD-wy+9#MTO0!Fd1+OjFa6{D2fq)5Cu&hC` zWRj8j(0BSH?WYo3xs$?-v>Gto*Cue3V}Dc|YT2fcZmqIwB6uEjx@bi8Yr!LeWaRca zWQ8?I(W^Y?PMHuO;O@b3LA)!9%`1H~huP3)vl!p;F}pt#nnN#XmlfP=q8tG(C{jT-xylf8 zR4Y2TjS#kcmP?D8^6@CD89-0WsZL$6-$$JYqqE_}SOk)yeB91$K43FF5!2ttV!qF5 zj1Tve;>I0b=(xCrx-fGA%87eH4re%SXvNn+52S|FI%WZ6uV`Z44 zKm9V7OrUK1R}+C-T)elsMwbR>#OVa+;w|L^f4Ddr5X2K!F zFhtb0D16jHjG23O$)AY-SH_@Xyp=MoTOpqUDwy;w4EAv|!Q&0RS2Da7wni9Q0Anh_ zJG8SY}$r76W z7#*j4Xm=nb7bxCYW&;;`oqa3T@Z-Y&`JwKcztIj7tZ`@wYo^v?=tC7sCFr?_vGJr0 z(cih8-h4<@zO!}egnPLL@CL@d=eYhyEa?=>@_NT|dB%P4n%>V~ODN1_6BY!yVWU~g< zdEQ^v79~_`|B#+T1|QspP0lTRpRfbYwL*9050!<2(vU2gx{W^wF854MKh4U}rSGZi z-Xf-aO^a|4XtxHAv5lnH+sOHbWAZ6@MyyQBB80T$1p;Z;AJokmla17=G* zYVwg(VduW?eO~zOZlaK8j-8sCoH!Iwf!2co=dZPP){HGt{ICZM{qF`6Y}KQ+JzJ16 zyrN3DLEp>0TmT(|&!_v!ulf-OFjUrjv$?k(txasP8H|X6LR-=;gk5 z-P53IMB5H$k9>*i4tU@X*hpRBUXA&^8W$gD6to?e0ps1h9J)Zhd!*BvG{>gp`g!%I zjnt+jL_w{-R9&SUc@EmOOTrk-y`0ytSvEAc(n!FShq#S?&-=U=@PxQpxuaj~2b`1( z)D^&Ng`EpD+LdbVTjw`l&J_7HxWt6nnC`t!Ok1sal~`|G?n(~TU7W<})S^{6@2 z{eoiAG~?7FzYT}2tA9FPWl2TJzUqrTZMuN1okjv2M*HqahmqU5=d#$3j{qfzkNH8C zIzar9D++pu%=S!lK>EzWg9JuQAgfDmHert1fnM%i1-ZFqvA%6M@}-tvNvz>@%qZ5- zIrlI^)w@DSL8w2>Ph2PU`*M2OyY{!o0ax(&SGld$;|>Lu$s*iMuIcyErS4F6!%CRz zWu??z_2ojM3+7`=)up$(wtKd~?ATKtdFbP3`Ih@rcyDQFD=HM@NT_*;8 z=RzTS(c#XPbpsMYzr)50tP9I?HQ>dcBH9*6CC>&gFJqXwPunPz_IaXL3mUGDEGmA# zm)9I;`h0(trVZa&_GmlMc>Kda+N#n$y89-Z1Qw3|ZQi_ujmhWdOWo+)H{LQ3EWFJu z-B;^#HfSzTRS+g%i?>T-$7eC@Tw&yBD#0|6dI>Cc3w_$4er#-u5?Ya1e+^RG-M_q0 zu7XV1BUE3RfVUVO@<(9DZjSRzjtml6P1ygk?73>*IcW*}+HLu`sRA71Bmj&s;Q_E5 z5O~gL?>6hT@iRe|Q+sB#rFYnk?a z4M-BUvb?RsG|*`%XTleI=NN|)l#P*13OfP`t3psgW>?#JKPA`YFO2b|M?CA;(z=p8 zJhYQ7`;|bg%;@4W&fZ_95Wc=?1Y<#m-p>LAZi@%xopOkI&BDzNeKtygPGhD?uhkqv zh3BW``c(*SZ+#xJ4xjF=BVp={v}=H4Xgq8DwPRuH_TvF4`+PdgZH++b-uK2q zcC}lKobRi4ldw@I4-slI`9bs6{K13#b9wvo!AWs>+W<(7^Fi6r5ks(gd%o1Mq|OA* z62BaP%vAC2aY&RS@7iI%vdD?=2&hn;LkH4y%-i4Pfio8bIT)kquGv_hp! zc37rNvObc7-J^4hSaMHVnz+(+JJgXN$_FWG;T$+)~(A&%(ma@(p8 z?>L=qtQ5-(6)6csLb#_RP7NI@V$C$%-xV+8XDV&WkVp~)?hLsp^iSku^av@mn_ zJK(^?#KPiZ6y!qSGzq>RY27=5Jzs9BroxN@p4=HE5TJU2jmWoD@qvX-Q*dH-Gzd_| zfKjfc7d_FVMSmAxogI?wL5UcGKUo1#P@aKepUOosB}q1WOshVZ1ne#pM60NNdCyS>iZTIKJ&7AG`JY|5kkvsxGuRg*QNK*160Nw7A zDys_wP0gZNdy;sJ=DqXwq{ehWs5lM5+F-A~y}9r55P=HLu78`; zigG!~i%ouqaZ6w}2BQb)!L$9iSMaxgiXkMsSmN!Ll`2*C3gs?y`aD;}c2l@fP;Dd_ zntrWCc*1_r^K*S*mvTJM(H$?L6OCyz@adQCHw}z&( zE3zB@FaC4^bkBrF5a*j|0i#v_hbsYHfEOZkes!xH406T(0f#PD3vkk2Z3#twdaXdn z6R;mgJx>y5S&Rwzatq>6J-5tSOmsAiXWOrLEu=8m1&N+~)`_4=Et%C!>~VEDV3x`N>rp_}GJr0C$^Jvqo#Wb~`-up!4mQ%#V|X zY0kF|6Fs7LIc7_G6YzEd1c`2~Ms(>Ba@bDCU*D@B`oNfRN%S^~pXVJ=noD@dxy_C$ z7!B{GQ>q@CC5Mt6w&Al2tb4;SU^W5kUa$&p%d?jd1Onh|y{_}&w(H>Nz=Je)KWT3u&#`>y5lg_8XY-7%LD)HpC2Kr~=wn zOw59yix9FgJpjaq)Us311{idT;7GX>(lzT`7|A=sxEF8cDjg|KK=xn#A7i&bQ)O}mKvqOnXSyG+1%VrAhI#IJmjruET24}V^%2g z@}qUb3Xb714q=!rTz*%qv4QsN7o9*Qh}9&4gKhcO^AdKNklq1qKHa?EhMuJdY zwo{DiEa6(^p#oXM6>)$x(hh{uP^j~{D>3OywP0v#`nuRh-5*SVJIr?yzCpVsTRs;4 z0;z-nEALn6y1(F-#4$zRM%>AJ@DCA0m9f?%4{_aIAn(d5wE8|3wWkHIe$c1#7&ENg zvCx=9Zm%=w;2iw8pXCPpk@41XEqXP}@^ULS!7nqRwfvW7dgxlSN7m@~ATVG}=mPic z+fk-nyTnY2))5r_#H@!0rN`Ohpq!MKg|04XRNyGQ7r!L>g|-QD&ncy2!Sb<&z8$><~6MEX!Q$3K(mRiZk9cy5B-uzx|s0w({LBlnoGV zFU_ckx!MNlpPqEt$I5tMh@`Lxr}gB0d;*rCVlaTTiZgz{ zO-lkqd)ND2QuX!&@B8q5JizmG?wYxT+tNkSqoE0NFQl)@R4r=c(*+HDx#4D1=!IMN zg1*tT{|E1Yz9de-%_oxn8RFis-ZI$yeHLw>JX_+=%&l|dX9GWmwM7U5^hq2H4^I!q ze9L*2;9I6e(vz7J-+}2mb zL*zIB{89He`#hQ3M@J;w(rkAPcJX);D30WK=A;zdu()}%^r#UYPP(7dMtmr1+aJ2%XR&J2TzCCFN5jkt7Me-Vmb1+7D~s} zOWsOkejGcxr5lNzMF^d^OfEwf(ATsVlM2qIj@v58mtHbqT|8@ZGfoAU^2u8I?uuG_ zt4VgvL(INZOe!d}Ea5F_o$-BSZ>`dKm?K=KH)d8p&FJ@5k9DxW;$wXNk(@t+v3@_V zW+*oSpe(kbz~{`Q`2$Z!&i4QqIl2ZCLi+>s%A>pvsiI-Ve^2}m4cNm&=-w#-EI0=* zkQ+$p>vaKw%^`yCZqY1HYS%}JByU_>ra!+MeqsVh)UtxgF_GVW!YG7a+AKh%mWstN zjBzS=R0lbjOsI@T9uFlW)&g2paXd2Dvs`U+zNY6X_{k4p0lT+&!l?0Ab>IP?;LlT` zbV?Eyi8)BM9a&&a&JAC@B)0D*w*P5k`(@}FW+81;VQ?UjZZ929xgyq+x|UEgYq zI=W_sKNq4w@3z_T+TWk!YSK-NOLZoEWk~;?zSiPiECUTT!yc1G1HeRST`V@11EUsd z*F6%(=oX^=1F_VE7?lZvnEDJ+vUNzV|GqbK^vj|o$$VDqP2Ul(n@1?8ds&ry7$yvy z=0CP0kx2)vp$Wj_hND>Ij&iN>heTxNAx?^>gd4V@7Mr1ID4*NR&fKOnX#LPz2(f2{ zk2(oFNXe+4jQozGk~cW(^@qph(<1tlNtXG=*kjv?W-Sz2*)++i!sGaS%vW0hFpfy5tp8I;50wH2gplnx8H@mB7 zU}q}}WfQg4feCj-ISSGcRWZ*lcbdC(5v<|i z0@|^a?qy2BzD~*wFqEJ-2~ZH@Ml6qx3|QR+vuTF6Ic^i~FFKvb_=PfMD1+1i_xOP* z=4z=hS8Pcoj1j$i)W*I^L?5hU>@24?@)Y&ScZ{>4{^q6bKV&2W9f|q1a~Azk+>o`| zj>2zKePsk`7t^oo?kX54&Cmd1t}~~{*k(ytiUDand$zb`EBGr{N}~N(BXyyKo+eq^ z)ZuXRTF;?84$5_2r!$F^QkkSWGUfc$H1~7t`J=SyD%5W{qJk7u1MT+{uiIMdPWorU zl&&kJL=gRnmS@J2R;YxLRe~LajIe!)!_pLga6`t6us!2U;C!OezxB5;FMjjK+#{)V zv{iAw{t#F#-jCJVn~b>~B$B(hG0az`?S%$}=(fUX_)+Ul`zq(owrb3nUDpRxxl7x+ z3+ow6>a!XWhmhRHz=_{K1+ z#^0XV#(l@6wx)D!F_;~UxWr;t_a@acKbWFjd&z(KHaL51t6@YSGz+Bcz&+H8YI>Y` z)xq1NS}Ue~l+(;_;UiLx!@|>}u_%#jkhI{d?C68$bQl^7Z(&`DB6r>!<|ZJxd*Q2J zR!Pj)&y)JDFzv8~A*+G5)nK_*csuvkK}PRFp%`t4{%0#st1)|GP3J3(>KMW!o&$}2 z0%KAnyS;oOx?!an^S|8aSwl!N~%goO zT^~CqA&>9j3Xh|=u?s)#_=dktxh#1vkzRo1>o7h?`Lg_OB{MpW03cwhIy0S( zOD)5N%1D)WJ3x%~89?k=a*NNETCJ4claX^uv~JqrWN(RXJC!sEY=uHHgp-xi%bHc6 zIAxC4>YcXuEomSHk~!p9ZPB7l>{iLM_-=R=acaJv2lhz_(U`%XixfKdch>q2O_ZTY zA;sU1c-Nf_!a+$CRO^lq$OdeS0Xmr_y@neQjeFo5y703&9us z#$r2u`hl?TNp?CU>I+NjvYNu|fpbH?kS`Ex2cEtIkb!=wF0)2?18jMF-J(^*$!fR? zkPa)IKo&V-{>tBDIYY(V>Oo&}PW@}(SZU1G6R9=jq!0`^{k!4ILM@Jhn7HSz`Zg(A zJW7(T6(KMmUKaS<^4PaX!i4wksZy={D5gL|fMJ1!y_T9WFWyX_44%|@VK@R<`u z8Q_mW{@km2KK1$fD9!~}?vuHJ`P?eg+3+fYmz#uxrm8#6H@Q3Ls6^6xhUSQ#N9D%^ zm9{w5jkx@1&b`|pGPp_OkBl8cUETAf@e|m;^$oInDbdVd%R2T-i#{C#0IVF^yP^-@x`buk zfM{hsflR2qtI%+k_?E3F^mrVZ(`}#^vo~>m^P}?u>xutO`yDGF-P-9u$vCevp+;U9 z^c4in+P${34NmpCgivOM2jT%R#Y1-rsWA->%)|wpVP2AO>04kd3EbGWPk;uJ-`B>Q zQMa+a18!n{rrZ8!ZpH3-M@o~9)D5t(Z`4-k1PW4$q%BH_^F(a$C>sT9Ys{th;bNw( zcz~af8YJ!g)I~Pb32kAMiP+4mwMmGv`2>g%$*y%HU+Q^jZ8><D+EFoz_LVJ247K1F&Do4I48paGWb(=s9$V2WZW@ZN3I(zK%XmTU`;xe z_RTs*yi&kf0fJh6q4;=so*k;%KFF%naOoQNw^8d<9cKKS(1BWFj&TtdE8d$NPz zQ-O7sgi?J$=I#fC_pGQzrOcmda&=7g1ShGUe2nw;3$iA2G|hN*+aZeHlu0N1gn_LXKU=D* zV{D7!Wvr6=^lcLLGmqH;@UciipwcWfst6R#0LC{f`P;p+k9>>qSXn{n5~6ex3d*^@ zGoyNdq^HemHb7c_Ua!jME#ltxuSxqgl^bKW2W5n9Lp(Vjg4u~=cN=D>(s)06-Vt9; zKBs11-=enfkeHRM#%I)d(DPY`f`8O8rFgT0hPKU=6c<*iUADZpNOXENkzrh5pf~** z0X%uvL8~q}yShNt^z&**lp*l+PryBbaTm5-B4(M2Q9_k>L8BB31{oHd!iV55Te~+e z@>V~qjCw)@l2%ob665tVT?e7laH5YBTnO3xp!u!vmG0{y$kgt%Bp#}l;otf8GB9~b z7uHJco?bav*mw5Z1@rHq^{j$YOSG2g!furz0=72{`21dyadDy-yy2KXN*B;a7+N~J zr!!l>Yc~$DwoJ@&FHH23&xyJO85PCzXs-a)i!lOBviPwURT7b$?L9q{PW3ngVed@o8rCN5vX)G4a#6iS5vE zt&;c=iHbhb;w_%*0d^K#+2P02Tc#sp)BKQRAQ^n0$9_(c^?c@|WyKvg6dCT`^km0D z3rI<5J9%^=St5`_1t@3jE|{Lo>yfo$5Kl0VdKaYj9>mM}UF)^QuXQsX$(J~IL|%@A zHLtAh^T(bRx_%h}A}^L3ysIZ8LPr`=+Ff{>vD1bj?UC(mgY$RQsuIl)clHmO#5I}h z=ZuB4Kokv}`BBvPZn_tJK#_kREIDW+;q?l7aeK>OIqtPTuP2znlIJfcp6!EOdT^Ij zGYs`%39OMaQ}SpP{PLBHH-Sd$S2_N_QZ?xm7qn8NMAuIS(7o!GbIu zC?6SIP1aarM70XvuGv+Gt6J5OQC}<(27KY>y*?7v=6cSchX6WW_j^qaE21+;VMZrw z@jdRYemwLybo~9{u6ThYN_&HJv7>9QcM`GkA8@h;UmgeBGO!HoyE)JR5+5@V=)?~m z#?!8!Aq0U;ueZQ<#PRZXOQpQxu@UQ!r?KtpAoN^uFxvyR!1(fwyG|;t;m8!@U7|jG zk6Q#@7>4++@e##=h%)|&UylOs=GLFf;c(?J$9>dd7ouO&f3essZzHZ^W)gYJL4h&u zSiwm_RY$7G!hqL}v-t@&qW(hD3f#H!)N2N5+D5>kayV&9OmnpPCK%ZZ+#A(BU&+KT zcZ4=(DuGV06!UYo6*NghU^l)rLEx=fviFMwJ|Khy!r>|hT+_}Dn1FS~ZMY&k)342E zy)y=`J!chT9NkYZHC?m$c2&Nq(esX(6ugnI_oc%G85#QULr-7#Ck zTf1oQ&bUny&%-HG+Uee(zm_~yQE+q+38l=Pm>J6fOaOJ!x=a)`fFBHLSU$RjlWiz; z8o%Y>5B^SNh61t^0j{L&+1OD-wt4yOgW3<*kzI9r` z7zTZ6vCl4L1|!(CVy&TYZ3C?S*K@%JT!dNNwY5nR)q6?i+h2n1y3CGH?(*O=-GD@~ zal=q&TI9hnx{}dw*ZGzeFG)U&P9PJUU-X@bzoTJKs(=sZYdeoLkjq5ku}$o*T=m5k z$OTnPdo%>Tr>+E0DSD?r9kK%=Mmw5uf25u_ZT}o_D=`<-eG}3k1pRDPz0J41hh=y2 z8~@?MYUg3!m;P1K?QfJre>lIayGPL|gkiOS0xhm*lQRb7C||Fqui*M>N4;6}8$gFd zNj?i}&It@E`M)uBUZKkwZofWbw?QCcB-UCpAac0PkLL@#RwM7q*FueaRoup}@@?|c(({ddqLX~XL# z1tfis)!hfc5rtRGhl+myuQtnaKCsEAjB`X)(UVX=| z*PKBW;$dx%KPWop?y~-)dj3|6(pzJUW*D1X~6H}^%4cVwHC5{zzp=y+^+*65^tlfxkHu(aWXv-n7Et^)^)j4CN^s5 zNASAq4G;4A%`p7QOEB8Us~YHSgwhyuTYfl|zTt-trAtE@|Me&T){2hta>8SN;COOe z_syI{q@c$xB|(h;D1j3N&P#3msy5Jg(pN@e{s+z*1>AgE0wo9Q$Y{KXiu_Z{wX97F z?l+J3BT<4;)9-hVl%cS?bv<#QeD)dZm>V9ah%RVG;1s!aM_EpftRh%eUT0i>go8&?1d+Uv*6yjIC#|W5?F2c zJfD~xigFNTXVB8~vbBF`Rh1@@kWhu{Xo;n?_l~Inu%kr=X6N1|js}DJvUS-O>=Gt+ zm^)1($&$P!mrM?WRVF4nk7< z=#M!aU#l&F1-D)bl}bfz6(Jb(**w2%6iG$9a@2@67uFOS0T^FD==Xj< zq4C@WR_)@!WC)8PYqeYsKW!8^MX_jD}h2ObyJN}0r{I6^Kx$C2v7tzOfj4*K|zDQ zXRboWQd3apPAQq-vTBqb+CIqEiiuM5QQ84)W1Mfa;R~97SC;lo1NDi9S$0o3X_MY6 zUgR;--W~JLb@ExHVIC-M32(R|E?Fp-u$*2Y(Yp5b$1h?u`vtWlq89GoJnP1o%%Yrf z??Aux75X$xqaHS|=rmkJxtd!3h7DaF~6>wzmjb#<~%3@3| zfx|Jm_(2LEZe$|bbw@ufg;?A+_YBl_VxmbdZ`mTOMvLbaDCiySbBuBrX3x8v6QHX@ zV-P=I8skmX@KvHwyJdhug-=%5KY$hHR96b9rzZ4d&3XMU`?CB#!DDsNU*a-SyrQG9spHXkwg%*9K_gX&lCnU8o1;}bj`13DNT-hGLP;TaLVGmxk;~zj( zg>Cv>VQ>TGb-33)C(Vu0rzg25@F^UTW?eE@qagY@@J_44sqR~Qr}#I0t^COgm(S-* zHAO)k#nC5R^B^V^L@$_`bxEPOFpm=?A44D*ZqH(5>S@G+_5Q%>^wVBOkD>MCHx75@ z(0IWbK18!0m(&PSS~{ICO@^<(i#bpCvX@HCc+>R9xJvPH_Sh0 zSxoPm${TXgeL1aWh+8Pn^0akvSp59_*z>Es6eKz3bKP+kT@TXz8O)2h z-rvg6uq@^$srGgT4rm>JIL}1;ozH&T&~b5sp=j0Bp~OE<-Pv&3Yi4zVW|#o;N7c8S zyUUGhuhGusYL(wdVgc#j>tzDD{E-avq~{y?G*`Foi__T+RFSV2Spb3_D@-PT{~($G z*}Ir+mX@S5Lq$yU7uAe=J^=r|>929dUMl1!oE&ep)v)1m55tZcx$&9FwtL9WfaBR4 zpbHsaHa)8R!^s`4fR(Vb6{-FJPo4#F} z-GCU-!w4{I#Q0Vf9=3RwFO2~J1$WIjOQLEXDHvHF+vz6)GG5YnKqdtxa_+BKAhOHKg`TmYSY-M^{=HqE`JCpt$@2%UhPgS)FPMP``s32 zT`%rMmo`dTt?KNBkUc54b~@%US=z9pX`69c{YDrJ?`8@Ljhf z*}@=i#K0fOn_m*?lvi>t>$v5m_#SjO%$pDqFhF%a3ageKl6>S?nW`2LWgEa^E8YU~ zVv#*rz_yGm>Dex+Q}ksIu2xHk$`l<`wfv=A2{U+C-_Q2uDR$Q1FaduNXR+Ek9cU@~ z9#~AX3;+HErETz!(|f)F1yIdolbCIn>uOlC?n@?{_HV42;^m!qkMtG#Mc8UG2DIgV zv6J=W&$Vh3UL)LxTL#sre6L$EpSt)~Vmtt${MfE7ZIieHY3qg>tdxyBaUM2nIeg~u$ zBuN!#+&0Ep9N1)RRy0>+OaBYUJ{qHTI@Mm)6YFP3wVc4=z8iZyi9oq4)hu5=a>%#- z53;7D{XBM-yQWD&#jPW(gX;}Ec5@ou)4-Cd(#KE4JI>!Z9q4}pck?s-nOL7t39D2d z(bUJ&Y{vq~ARKmPsrn-rRCoWIeUVo{(d&H`)#b8c!_8CwH5`iLqY#OyiUjl8kdhyG%=7BA)~`$6yWuH;K-o;tvfL!|A26 z&0Jm=N{jP*CtCWEhU|0SX*;;w#2T)L+ILn`4NS5;MlDcRCjy77m&Yj2?D`uCJSIU- zZawq7M~0!mP>XIV~i%>i!tzL_P=e4v+Q=OY|FMgYEeg0 zSAFBO=tFwrAtWH4J}6giKM<(>!wp71RExR66R3l@2Yx|ajtK{^g2;qkdg?O1PF6<9 zmvhkVw>ybnV~`32+pPbP_3y$zv{+>1J8x3DvEBRGEybvk%G=-n$Rw%ql@s9he*mpO zQonm={TXMIu7ph@XTC&tnOpP|dnQo&Z%0?+WSVFM51j>2QnNrWA2z)!?IYR8y2}1h z3@&Q;CK~&Gbz*HQK<|aRH~G&45A9?j2C<^HVB#L5*99hjtEAU!l3>w*%76Y;@V| zgvn6)^a-2YHyqR+?FwG#i@4R05E?N`NA^MMk!;1E zRm?22;x@;V?@q1SH$~p&N>Q9`l`my3U_8Qe7;F{wYN5FN% z_4Tp5_9tr(e^?;)Y@7@1iQWPjdJ4=w$%mi-06+jqL_t*H39jtL+5J|?1$~^_)`hL_ zed;ehT8Zj3!#{zJi2P?`so8>X%oNx7R@&+&ARF5t86P+`W@_}n>r%|>n_x86s z>=n4xPd1#8Tp)ve$wOv%F5r_q`vW`1uM@8r9zI#c*OtxNB+mImRd?Ui{ndvL6@3l= z;T6C&f*y_5AUbk(A!>Qx!a6uAYjG%-%uL6;j=amWaG;yZj-zxqlKZ3cJn zCZDzxn#US$*{KiF>3#o$^y8DGHR;Pvlm1X)_er%$)Kfu#bIVto zHn^TGWQVbyqcw3Q!#^5p@?QdO{Bm^xz!|q_Ry+G$nPnr~uxbNi;9IZ^yufSm*-cbe zS);sZ-x>HUf3sL1NIiYgBpP}+W*K!|o&2QJ2P?#+L)>aT0~pW^`f5+*n{8AKeWe@Y z;`@wqX>jp{{ulKqx=~FG6hA$do>}hI1z;BN*mDEM@((~C?7?TcCpte_=M%N_db9e<{(2X<>5>;DlL<9b{909Mw&UDPER{f6s zb)7@T4lRYV`eY@4p6tm8y3})kN7UY0>t4+&_jr;{!^a{Q?&^aDx*i?MUX$+5u)W&f zo&vPjU8Wl#USa$-3#dlkK>x)es*QDA1!&tYK8W4x%C|K}hVl|0^V({xq`nfgD_muY zu{e95ZZqGryNXD<3OF-X&n8*1Iq|G{lkfr{0Zc5NAx-)Eazj7t)t}=*WT9nWwtTe( zJ6aF)6`y9Y4vbKrwgQ_Pbm!JPu{^oy)mH#pPIgsCIBBl!b#UFNb28kROkf4B4-3Gx2H)F?2Qs=D79i#v?5j9No}U(2Q(Qu*0m^I2Fi5++nIAu;j44oB z0g<|ES$B(pJ@5wgB&(RzbyY|=tbjK6&UJLz`b)NXt(l-5+0D+R9X84seLHV9%vyJF zHo-|PZ}n|&%L)?DoxYaa{iYX}_!*Zo!0uH+Wh6+9>Kx`+0GK-QkT zQz4HJx%z`Zk8jcqH5A9+Q0jw49R|*Wr5^~e0347!3^j-LJa4sN=r~0Wlmkid8Ht%k z{Pp2X(z?G#PF09Pe@Csl{v71nF!tBMhvx2k7>1$OV``iPg&3j}-@TWaB zXu_lsH{d&NzyhB#0uC(4J&6X*lvLWV;QPAyOSEc}2viad>P{TGLT(26fDG;iDdGyr z7{Z%sw9kG}oDQm4iG^qK7w`>h16sMEa2|ahwxu@i_Sz70+2kDbL;B{xoUxY(`SqXhTlZHNfLj}I zR-TUR8+w)=g1TWld?OgTz#0rb%t}~M2v6d+WOh4~2D&&h=iyIfUE?ft2}>xiYekmB zt|jH9E!b84ah-;XsMXyUx~z9WME+FEy4X0ACrP}3CCQVn(uVCDoXOCN!i$Cvx?kc? z1`n0W$hEtSffdmD4whwwgg+WK>~JUk@I@J{uM^f2*Aef+aYS{0+|>mD!)N1#&G1W% zmv?sw-FbU>0%q2mv|D_eJKQCMlZQ11I5!LVF?RFkKuG;v#OS)5{@kAb#NGNfP8K47A+PuHEAn&iG9*T}T(b3>rgGkxGynEOD9faWD zCH|MYpMU;&(7XtKjt@8>D*WmNjE>R##ZrBhh`<+;MvJh)m4jt^LcAhm4XGa;(_X9y zpUC9u0&vc5H}Mj>OK2Cz?@P>JTy1Khy>JuQR&N0ccN-2P)`da3i2c1DI9R$&^NnOjJ;Zit!DTsU3 z7(kB!Qg2&^6l`W}o*=Z_s)Vyy~p`_?v&SL3k_`m6`5Py9zRu@-pZWdwGgvqt3Q z5rJuNj(}(?yP6QdJ#HK?QziwV`Dw^tP7&xwh+YK~^Sy?Rt7jHPM)HL0Yyn5_B`v82 z=@=cfen0&W+(&L=%kd>ATst zMep7aTW7zVvwz;F@Y?vdr{|&Ydldi-)!4c@jxRB)%D9C75*lN4By(pP@MTMexYdtw z1k_C@aes;6h%UsD>=79Ktn~Khw{eO3Q{JxUaQ;21;CLQd$)mD5*G0*$CCqx-A8g zzT+PMn{U3!#Q)-pFLKPiKYrD>CO>nU{%}5YOatQyItqXd`CL(;``hoL5PbX1-Dlr@ zcK5sA{Voduw+neS08cDuJSeQbV?EQ{wc!DdI)@f}7Vl`y)9bG;04!k+P7~kFa+#~3 z5IFU2+yrjZ8q|FgX2%XEmkko;rlc@sZ7K>N{LsYV`nY5VOi=w83D4Oi&nR)Z`fVIP z{tyqX-o`y@1~BQ+3IO~BA!nG^Z$7;Hsoi zkDob=Cv-6u#@xMOTpMr>Xr=K=02$s|uxHisu9UmLTZU z1{AP>kXze&RxzD^0zKvFy$ZlnUeH5qBX9^BdIIz3pX14N1nGAXFr2x*iooUgI>zmR z)emvm+U`>cJezVj<8y||hfxt^TzYa4bf10pS;Akves%Zq#Y-Mg=am6h8U&qz>|0pM zHs_qLdV;k!0(XX0`~_ozeUf^@b&?PP$g^-Ta#@eRNPN%w_zwS)l+DkJ533(hbWH(( z9^ZRZUhHAceo@SS{3(ie6ab3QAO7%%+?Us{x#Ei=5_GPa{$zb9`YUPoDgZdLHXTl1 z+v3Iwy?pFfWd}!>ua>nHgK8Q`-2z#el^45T_QdBbKu~gq@;>zo5Rmabq1w%f`JDySWRcSY? zay%_KrvpFj$rkMpw76=MtO8fMb3)<;MI5f5XFmHrQ=b+hV%^>JYxVswA{Eh9E`z7 zzcd%`}cqU_q)IJz@;D%yfuJLeETkWB!G!PpSJ^%4Cy{@i~a znncUwj|Y7J*^{4QitlRDTL|!9nbHV|yupuXkK&1WMyYIQuYNsi26aj9} zUc^3dC16aY4i*^=THwk~V0lSDblL>FHx*Xs8LGd6vCMxJe#`OI1z=0L#;0Sp2o7NK z9*_*wmVBI@vB`!&S)ARwzc>xlj)1>i`*9uCK+^Y;h>ZWx4{w`tj2_}Lx0z5(*t zClWkI(uP}uwrzNWk(ivVNdEu(fB$cup-IX)`7?kw3P4@UkRAFg03^Q$$-r$y9-)_F zzybWvfBth80r*m8o*h|R3qoM7D|^=5*UdVCHE%5b1Aev*9~MdkA-;eRo__0ERPCBc zG>RsLl*2Q>1;D~-ujuMOVfMLZ6$S7dZRLZOLw}C>OJJPkqv-t5*2Eg1P%zfm z60oIT>MeGp9{e`LG~j|>zcrsW26Q&P7YKMD$*)!b9%%Qy*?F6XxA=0i$A)@$n%?E+EO4?J-he3K_u++FtY65HF7Kh~L z%ErX6zQb1(3VnB}G5VDx-D-6Y_V5&*)Qho^X89U^WS@~w;`7ipuL5GfT0x}>24(x7 zur2w&Mc8kq0JM$hEKmX_dWbzXXBx5Fj zPfh~61~KCr#5MQ~R1<@s^T+}aw-P_crDXn2kuSW8_wmo0X z)>Yq$(~sh+uce_!$6l*E(uKuYWU&$16sxcMtqaAPPY+TM@H2R1PzSQ%`^j$u1pzo{ zu4u0B3YG_x{%Qq)#olYdlT&rE&etP#!-b{J{D2Sp(~_UF6^ZX1ih%s^GUlK`&pQIIU%yGZPvULE47!Y`<&0I=s}IyqFMh@)ya%qg zOqH*V21> zj;nlVY~t&D6oQb?m?F%+^MKYp?plSi&cEm#&@Dp%6DC8Xj=(#85!5~4X|1Ao+`r?z} zr;xK)v+pDA%|7i92`I8LY>sRYXkxysuYpPUufF;+eELQDku`f*09+$$a2-QU$VDdW zU1TqbFAjRfvkYVdR|j;Jrs`u1oisU!7x>v{;(*xTRv_P=<)I-@iyV> z_&D*Pr*IH?x%ln@=3O2#ulA7~T^urymvZ7I^$oe$z9cHPn>6?pUjeI$Pr{jWO?0&o zRW11`02Tpzari|aC~w$>t^EL2bupI@-8N|Cp;sn*#d>%NDP7&Y|G%rKrZK?dM zLJ1g`Th~4NNSe`ypYTsMdnQ9jL!E%&+iCcOC;vY5+e&_eToKv{+(f6xPaKY+<8V%o z^?Zm2Kk7SsbTh8SN1eduCLeJ1z{~!B6VEePQ~JNh4qiYCe6C^3Gg~lp(7?%?fbwGG z63zZA=$j9pd;vIesoJ-e8q}##s~ya0&otem{`JhlIEq_%N;l+A2;1`N$Wn`#O$OX>}i5 zA5_@=!}mXAqTo0E0^Bv9N?RbTmjjuso8+elmW6;h2hT;o2b{*IC38<=UwHV)m?asa27B@J1UwBo4hw*n)!0f9k^ub7Ren=3ZUdIAW~CRVc=2N@^<{?Zck!iXP5GE0 z)bfKK`E}b!6nw?{^57eiA+sJuL=N>8Yc}yId|m=nn!qv@3@kOqeFW<1Ci>vin z^;L|~nwpD#^(KF%ABYw!Cw5-CuSL!^!>bE`8+whBThi7|Q*PVlWnU^h9oj#h${B*M zgZ^hE6c2egbNv(nY?9NP;EV|_g2}|UH&Ezlvrh~laEvQn`-M3tV3AMoXHZ8#lMGyf z@{EG3fKTFwE#Ac2Qaq5NrGD}r2Sl$Qz}0qPX=p4v!8zoG5(*Fv+xd(Hzvz=!P2o%Z z$C()WI9#hT^bh@<{1yOuF1`KYRQq`^ZiD*TLpQqICyEfaO?>6oBCd`4SX;EC_RxUG zChcZFyfWk)jdyqPEFk_hf3}PD^u$gfsPY*nAGFfX1Z9r&@Ls&Oe+6~Z;nfA;rrIwN zHaRO3s`3>)n~}lR@z9bL+&klZf`v=EFXCzS*WY~;KRFc%9x&h>25;>N0u$ff0HLQH z1$f#UHX4M<&|koj097Aj^cdJ&1^B%IzBBOpO?)^d_>wnMzR703*H)PBi!EB{T5xY+ z0|o(l&>zE}BgrjRKZVV%BmL70z?N^2?ireb=h@#eiO-j%e)s!0qW|c__Q9MNS$Nh3 z6>Bk0!9t^lW^T|C^i_v*^^sr{fjqnAr6|8-)1QV1zjBeTUuHe?T)I<> zX3Eoft_=af%;i7#$s`CLsm&vNlm0my;)S|dMZ zz{h7M^7bH#qgN2nrmfNABW&Uj27dUi>H9B<WAjLZ`)5>kre#6C8Z^#EAFHx zj`pz=`ChP2WMdk_S=-zAL?a)g=1Wr8tsm%*nm(!PX6@YTll*`D;~(?Vp9h~LK>8sP zF{P3`AsiW8*`=)5Uy2C7wcss+w#+`pE?|2NKJe}jy79kP0qD8duX{?K5d7)_fMe3> z(;{^Exy_&0&QC*MwvC_ya}sLU2Lmti#*mHVOv(ctsyR=NO>`b6Klp+(I1f5WelGi&)7q~sadpuZ zBfs;zzaM-+@o5i7DH`zOJM81I(9mPsmOZJgzd&O{4(rP+fatM4nkTfZH4!aMEEPV|#*&v55}O zfWt=4tlW|S;}>kOonI(wUuZ%bI@Mb}(c(z#8gt6A@>`LJh7r&)Y~kB>l#l-EN9@CP zlB4=bKct-gf-VkxQ^%bBNnDBm$q%j;6xdxyt_xjVX6lLg2l3Vfa*@TA68@s-S6#^6 zYT8=yuBGk?HhmCRD?>`z_msOMKXK54KceZz;p^t_@I$~{Ye(O#yH^3wFiddF_vJ1{!p7N(3eH)Sr`80n$;Rf60FKQiu(_8_czo?wTGvDmFFj4T;{?V_25`_w z4;+~AOc;`;AKEeZ`7}KWQl4%38LKD&@WkD3$|{kFifAJ=bF}5Zg`#m>{mQz+25r?J z`l9w}QD3*~x975-F_+aOEtl{lKMCsxeY7okob*2R#F(D;BCY~nylS@t%FADJiYq5| zA{+YV!(>~%D60aYWv#>l#h2#Wp#4jNmHcE3hqlIm$q9}2fna}@JxcC?obo{X&~~o^ zu%&b?AS`d2wJhO~ehaw)!-2@%Yw4ciSZRTi(D`E?dAqn$BQ-FVse*dRF>44&%GpvrxXJ>cBSs;~ol zwY3VGVfsWF_9P?^?nqeP>SI1P?P=={Y>$KH*)=sZ$fl^|ho?d&g$B7Mzq;vZLv9zP z?X}N+;mR;#iKdJ!1jSF_v`f3~LlNj<@0dVo>EXuQRsbyRAm&%eC z=M0C&I5(VLg5GC{w%y4f^=y@&7AryPCf7g)W)sicaqTNyp4uy`_LZM;)h%z*#MuVi zu)SZcBrd#=zRNYr^{^hfyDgFheeseckft3mkZ+#v$#T!>EdV5Ie#ocGmlv6-SHPKG zTll~fg@r2$-xUTk3UF1 z4}~o$wzTROduX=S2%ZAK89JY?lOPn7y2h#i{6P{)n!3VRWFyxr0P)xM$n$8IJ|Teu zcϢ|z|e{U!>)a2Jl-aNfXouM(qF&CCuay^T$bc@0kSa}SMl8B`O&77UWAXKOx* z8Ph6Hy#rYWNjKINgLKR6g~D*pAu7_3(Q`$WdQp=qn?Bd7?fOjn=_`%nYLYy_#4Ar- zC#x%QAipkAM$@tEVb$q)=n)XT{98E4+E=l|qOd`oh5dBc6W?E?J|)Cg?4uUuT#Rl;HFlPjg5imW$&&`oP+b9pXxm8@{ z1HRRS*PgNV()+*+xODk-fCxhV(W-uvG`DbGD_9MUqY<8ey^|4u{ymJN_+ z40oUJu-_YeuPcBfW7Cq{kz<>1P(6;R7i>B|rnqt(lVc4~xCVWEj@;x|FL+wrtOi+L zrQPcn%KgzE?+l+Mh&Rcq{m`bH4+3YFcgwl9(bLYwgml#gd3bv*-{GL3^|(knM7Kp& zwlNl+fWFb%#q|PL6)Bgii|~^+sCNh|18I~~P?*+a#30S;uazdp%_S$``vO=C{~n{= zs{lNPAvcvdZ2$?xlVBeRsmsK2ZZDjkW-u5W(jE1cw(>i!a+M>l_R{4V;(-=l34RI< z8?lN0zRg6W0PukwKBvLia`ykBeDWghg|MR9gUlcJ;8e)uGX?6JWqIXM;Z+WB_k*7i zk9)}gRO;XM_?3&hbQyb&to(Zw>#?dBx><)c(mr-Q;Qb3D@nagi)#O`3(6iB;Rp*1C z&@VL@D_ot@;TIdQ884lEl{=52@oW!{x$kTHDY=v%FN@aZgH(LO7v!sB#C-s?akg_$ zHU5EzW(?U|0QkaF{`yY;fDoUzdlxLyB{MScb(fXnK;(BmDA<8cdGV>wZ$h4*{M@?y zM=s4C`|6R%cwrClKSzEs2}J181nGW@{ew>@v%_@emNV+5x%k!Q3VdiE8_T~)@i<8I z_Dj1T#W&6J{pQ$6lb%hbC~&FhCUfa%;?YA(05Nub_N;$i12CGtfv+CGomV>?+hdPo z5}$9%VJo}@V4jVLVe$cm4{WSM+Yy!Psxr~VlgAAHR+PN5ay|6=gTA&3cZ^^0H;Kw` zG_Xe2%nzY9|AmC`S6yF9#a2)#=>CPCPfqfE4`h8Azv;(cCFZ*x765v6yH@RN`dSgF z>%ksBPmsQ^C9&@{W{ie`)!>1+-+r??3-&t>x> zs4~=mi%rNY4*EFQ#E(Dz=-UnRH>anKuB z`UPGB#~wIi=k)5fuP~B~#Nh16PhYwGJ4YMAACarCUNs8x#Q=z;z#*&kMxytk;zzIB7wi1Ae=(N$A2jR zeC<2G#1nhWJ}bi_kWBG1WKn41F!^0m-HZIAGTlkZr;w>f*Ju`r3LD7d!ATAslV6R! z`W9eIgO1(8%`lwykOnt@LASN#vOnPg6qESS#XJKh0{6o=ALb87SO5q*lHCorCkgAC z2pDmzjqS3f6}J~q${?WX7=6r5etKybbJaot;0lIh8$Qf{iWRc>=-O4!{rsChqjo`n z;!*YUr_DVxnk*z*U4QOF_Y-4%WPydAwbQd7BrkK;!rw&5pF|ITrA+R>S!dXptBm~x z4lQSXuOc$}<98oOeq`2X0PdA`xfbTtZpVB&k>@V>J%5gk_-#SeY*0|`!C$!z>Z@Yj z$N1`7fa)*}oSiECQTpy!eB5@TY1#C7p~Y^3l`oudCS`1Zn0Qutg3$nFZJse0)7-4O zZfPoBI+LB=M5+A|9^3q43q5?C6)+{u*<5&-aWnSZQ#>K)G!o3kBoeo=Ghad4J zW18_npNZW4m&pF2-|#aHI>r=Zt^&X_{yZ+<`F7yP{2pKU;l;~#KE#Avdt{<~BtOp( zC?NFAN&dQ*bx*Z34d^fKFH`MjUHrA+H~gU%9s<&ETr;3gizj1v$yr+;q<~-X<>~@3 z+ghDg$1|PtOK7Cs>x;YBBoTBqgj=A*`60f*LCo@VTAxNh@l{dI5*7feJ4c=^;%sj+ zyGhPbMqm(B^fTPGf%71^8PgL?92OkvU@v%AfJEl!zVHKo8^QJG$GhW0KF~o!;o#Sv zcsGH4h1XlTS_Ir9dhDE=wxfrGTP}W>l)Y#_%MM40z$!v;z!Kc$t8>=%6y{eKfQKyR z-n=?i-&dy}c`^97Jmd%5xObz1e->wdeszWd;8}t|;UG}3u_m_S2@DSc!=QrRb-_mi zUulJr*fq&51SY&a2}Qu0{D1%Ve}DJ8&wrPfpvcNKv98d4)Mo67+xGaU#DGs(x!zc( ziNde-VkZg0dhm;W)Ccr5{Zz;J40?PfTp9EvGG}yj;1_hzz_Di}y9sYW2flUouX~k3 z%8Tp44iEN~p?>mq4NbaH+@{!!rc|W#ZRBRgd-(9MI9jQ-exAY3&Ut z6Q15=XH1YWr}rS(xmEG^@jm&i{f#=mjyfm50a=sW#H}#bbJ%YL?2r*Se)uET6nli- z*vT`B@8j${`w^eG&-w@5b!-s;rf(gS)D&up0J`P^pgs#Y^Lil91DRE?`-4615j}}- z^0PJ$^g=(&fHxZ(;3jm?=#1siZ>zc!R`^ML+hZ4js|x^zofzM(1%9)ZqME!9ViReL z{OX{lu@)B~xls+(?QQ)0p5EvEr>6)i0*rt$fX)RA0Rj!SFs=b%aOofIC77Tkh!~sv zwI}gOdJhtcU&zU`fB%UrFmLK7*rGhkG4XCVEGxqx_2?k;D*-Bog2d3V%C+6HI^NfNkD$dp~`|T9# zXYDkShj~rDI!2awdgl1rbpxXiC<|Ws9mB)H9A4p-Ck0F|$i_|!G;_v0F!m?Pup?zo zyeT_jD{pO3T@I>=e>vCvC~sZ>?q|j$a>ZuSxOC<><7oV0%gg!C{$nNAuG1Qr`Ato6Z> z|6|km7x?DQ4@ivU4JvmZ8fe&rclwV#upBEY5e zKm5Z#-2Ky^|0xRq1tCJa6@bu%9%Saay6ym|_N1@Al1f{h!-Py*<(XlXP8>b&l~VwG z3U6^F5ozdj>^u?uMVnk7;9O_e1>dZ<&gW#Wda91fqipurgZ-sQll=ZVF`okn3&UTr$C#PQ*z9TkodMj$eJSrSk-L?$9rM zkSG{6^wdt!sLeSz{5qwVgAj;wFg_G&9KJ0oaOYh zdeh&rHsSO<3&5Y;T4A#fSoINoP1doVG*ii~SfC%79?Z9zGVGzLW9HiEn7K)Bk!Nq% zC-#FiPypByXpuJ#ghXTgi^U0QFF}8c#t!=rd9CE%Lh@S1(=Gt|Qcv5v1~w<1(*QF$ z&^Z{AlFMm+OFrDnnd|TW;qMd71Fihc_vmBi$7LY}pcVngBPe=+q>%n%kkJ!ZHTfA6 zXcPbn0b}kpx$OU^fBxs5{PDJ5B!4ChpTCdB`j9tT9~a0#&8|uW#h~&J>h(Z*n=%UN zuqEVjnao-~i;wV{_>$J7hX=n=AU5|#rs(zW&{J>>kNCyOOYcF_Gj?BUf#&v$h$Hbc#03E-z{tAO`lh){iSZC04 zh}&}@JX4be@DLZe^X~veVsZaUB9eUCBOL)iFdHBwKA$BZfcPAI26jj_z*TLa*~3qA zc$P8gEdreR(f{B6+keZ0;KOcz8XLQE9ev$t=Y|ioTRTqr4W1L40@w>^eLD0J*w`5I zvzYZFpkM3}%{Z@U`el8tE%@|(QNM!CwrtT?-kBa8Fwgw%saF8l%|7r)SSbR2?HWC< zlXcf|>bt_H$=iLEywgkCtaB&aV@+>f0B&k%_jYysk$i(HAx4FT|n zsQekok>Gsv^DkfgC2t4v$#x_$LG$+I+q+jk#|K{eUkxH6=Cc|4w}Ndh06u8ql9LC1 zfBMHi<-52fXKG+*C;ZD6hj>g;`Y@m_Q;UB&(%SU%fq?+vW z-Z0ls?ne`J+gEjX);HnVOUD#s_JV!j;G@6U@U826h*@=ykava5b9?X*v*5i~0odCx zH~FDPC4Y;q9JVk2^gyf546GqqbvqW^o)=P`-@*vXI1s|$dE zXg?c%>Dj57pR^gQl%MU~ZOm zc#kQ)m=NW)4Q?n|9blZ6VX3sXJU{bKPm-NvSiDyQ`1(J zOcF>WK=2~@dPb$^j<#Z*^(o^3^n&vA20)OMXJUG|GnxRii5t#S+$YG0CGocgV*+(x zBH}@D4PDr3qG<7J6VRm41R38k?_W64MCR>7pWvcqFg5YSB_2&Qapk5Gi$Cje<@#-T6a>~;AEq>Rnq#e-CXN=TUJKA-)vda&{`#~V z-#Sy9rv&Opi>(o>&Xr%cm|FPxv?6Z(b^EW$rWYA?#n0S?y~1xFv0XS;-4LK3ORWn4 zf>DVqd)X}XNSurfoO|Wg_>t4}73A8$bcp*G{dJ!HR;!*@>%0Abi^caxd<0uD=uS!t zQj6d3sE9*8*%*i!ol1>SJtPxWCv}x9e&t>H*LZ00>rPCcx>S7RBgc~2LLQ?e2Odk6 zxvs`Wo19^bJj=-8RK5aT*LY|HsP0Mlk8y`+F#;rySSy*YXW+kOMhTgS25iIXamqBt$op?(*~dkr>l)#WMt9j zFW5wXn$P|gQ(X3wLlZ9kXHILM6kCsP^h@~NBlOC3!7$m2_*Aowclzj#GAH3xIn?6% z77I-u8U7x3Lf_-hoBt87tMJ_cVYL~EPjwE}GY=uBl#a1tfvb%k8Eut*)z>Dh4PA?0 zrS8nW{T43>#-Qh?Ej^z~9l>bIjRwM#rMM%WJWraw3jWXrzyO>I>UPbZGQR;|#3vf4 z+5(iI-S*{Q3jU|AG8*|d$@Hs2`Ib>!HFA>2FVUnn2RC5-(8Sl|YZFrSU=SuwUF~F( zN3>V@90~y7O8bj8quVWADq>TMmrHf2&OGQ!t2=_f#80#R^}qher&W4Npx^D&ulFif z`POI8Nw)ijpj>j0FJvm0TrZo2KAWIV@@c$u)z^a8$(@)sWckp+mz&_041PMaw55H~ z5#4-?pC0~08-Q$cGDmqYSgt*~;^-fT?C#qJKL#pSjn>q9LA+W!T5LL)I4UKR-w+dj zV*H^g6RW#fO<|5krMN}Yt}O9WHK|T-vh7D!O-LS?U{a-;IHR35%?UIev^44La25Dz zUsgOqr?*Zttd02jYIC{fme;(Jhkq@$-{L9N|NM8n_!b-K?{OQhrvo~5H=w&JUSO3? zZj?Pg%oXzI(TZ1kmE-Ks_4UqaQ!l7QSAnRK^=$RKw3SkKK{aUH5&e zt^}z+aVlQ=G~}7P$sXPS2!H`0d3&A0=8CfV%jw-_U`z5HC+le%U=51f)CrM; z7XX368O>pm#tTEnr?D1TgD$fuxzdP0=wtb6_DP}#`q>5INJRHDa9L>qH*d0S+7%wY zus;^h+5;{1Z}{oL=DnvN?w0uZZe5Y{g}DBFoNp5Hv`SB{v>E6WZ{{;Ny{=ftg71r8 zPrLNNZN0qWYvG4XPX{z6dG{8ZO!6%q$l7fVdeXohD3#yyRtJbLhCI9h z+$QPb$e^>yiHONS`=$(=`iB_D5@M1EX5nF)Hl{j>QyO;p>b&0O3bMS_O+_E(EPTiV z6#rT9cu*XwJ2GiD9~#e4laC>2mBx=3Q_A7&*pzq0hMyS~vT5E@+4`Vo_xf!IU%0wL zYtd?v{(mg`zsG{tCZIF_ut&&rCy)y^#z2Q2GlvnQ7PK}2N-g~Fad#o!@BgV!U&iYX z@%E}d!70Du(J}aXcT+eX7UAudHbD0)J>L7kK*;6dHmb|NL-r4X9@+qu$hU0(rDMyY zT`O*;ewo1NiF@!!k;m@z1r&p%fr+BORwXw%Zt>8s!wXh5@Fpb&6Kz**Qbf{kaHyq` zf7%Q1R?>7E@`;ay>tu~^5_{AZ+Jo|I|#uub4dimEa zzsk=sGVss_pn+g82Gb9!Frc}&(};W#H(I-f-Zw=|}$2;+Hny zln=j1_e21-AU->aV-Tc}@;oXLK zt&a)Y=?#FvnQ*;Dl!L?sjzLk*mLVgACPjx-THud_%38iCZ zF=3CtHW88DDapkQ7S2}w$|Szc#TrjMrzU@ir}}7DdB&jym>4|(4h~(_5oH{mH*?eb zA$gv??<3D$UQ?1Ecg7jH=)8$lJ>`R`Qe4s&`>8R$#Os{o^adar1^+`kz~CvC-Y-oo z+w)^GF_;}NaLYWyR@eV}jLBaWYODVypJIJt8CF%zLANjJoYdr3<&?h~sqLgW(L2cU zg_*07k+U1!MlOdPmD*?dO|q8Z7M=tiXf!3lX_Wct$bPj?Rq!(BG8g!XQf*AxTnML@ z>9s##qp{4xIEM@ZFtlG$DvTbA=(8{V@fGgiJiP&A!XsHsP>9}D<^-?-A!j+D$opWX z4uAseqwXS!YkN$NR4$7>eHT13L76y}FLm}Hex~ihF7vtNR4y!&R@}qZIvLeu1lKXE z{#jhLD!;4#Re-ezZp0Bv%@fC1ee}BqligZ`qZVAFE*|<6Rri656*>(KWwwb|%+^;! zHb34c9NZ~a9CxrkQhj;@xGGppm@#S2lKKELa5hNO1rt6rDaORBK4X&T$}^5$Uy01e zz)=aEV-ZiwRs0R1T&&{Oq}?HuDql^PdFN~J_SojUIwe3qgi{}MdJLg%RsgNs>$AaB zUBzE?9!62!ZTbtR;$hx+%;_6}I~(;;Nq<0bp4#5m919fPU*adZ*zEHJYn0gs`r-0- z*FCp~eQ$R9FvA;x>v4ahL#oki(rD>3SrrpHn=tocN8oC z2YJusV#oOxQ=Ps8VDWG5UR(0oZ}GrYb!XbcUo4(YJ{!Gp7Z5Vlb;vH|+ycZ5F_YbJ zn(Z1wOtW~Sy22BfV7Uw3m4gKzbYnT-iyp=0d zp>Hae zxLit92}p%_mk6TK-$qPjJUEZn(UaHgal{8#>piH>6MY-~6)-?-0`SNJKaC5<&ZQhE zM{x=VwrhV#@z4gKNNcCJIy91$=_?8GF89Q^CO&&unfbX#lDRZP@!j?uFO-ed`@W2cc?>x6{M6`Vej7T+%Jb&BSJqE&00g7XaUwfX zs*|%b$ds``k;%(;8 z9XAH1s8`MIWGsW3kCnme8Y2c=WF9onOD0N;sZ|~eOu5yUrSy^9JZ8DV*OTQ#uQDI? z>HVTFl5xU=j<)p32(Y)4a+Z%!tn!ULoTY5oG>UZJ0Tv$4+Ok zrK$=0$f2FLANh%|s4o&Utz3Dq9ekh?utGI1e0Yq=hH)cobZ}BrkEjpjs)FBr z)XHStAZbAW*Ba1T>uzH-L(XMsu_l=VH>5}A;W{c>OJ=AwP2UiGY&U!(zRAzQ{>UG; zyK4bQFDy@Q0B2%h@y~2($7wULdZCd&=1H>h$`xb`*lLA)^2Z=*h#B}EMKpa!9@=Uj zrlOI!sd}YzGkK(hW5{M5J}84L;c}co_*V~Ch{l?Z`xe`R&A(-rfsb7D0FqDJ$P%}5 zloXwMSii$4VFuX1F8w@gXi z;c2gjHaw6-GY`d)*lwU-c_y|NLTe9M;F$Ldm%O%r$X-!iz5&#Z)S#u`!bq-#uOES^ z?=-ZeDt$VYY9$f&J~F*Xbv}RvrvY307jM!mWFtOd86+_*F*F`zuzSBoXrWw%1-O)8 z)T!3H0-!mFM`btO#XAJ8TxBL2!+)r~&q3aFQR;A93gThp5P_B8muMGd>Wml6mJM<- ztYTa!o4j)_^C03zR3be8 z-vIW)?o(;iVI`?1Dw7f8(U)eS)X22KT9T%u8Z6a%Sg=jo1~$KfDnUrqkvDISR)0*~bQammG8~(xfit_RepeE;D&`N?%+4+^9q};QAMDK}z#Qy8rXr|7V+JzBo z5tI$!LiV4Ns&5RLea}q@w21QuV&jEH&FQU8Kpki8!1K>(^gM!Yem`GckU!pA0Ai%uCgM-m1+Zx#J`Us~;}WAw5rTrQ=NH zq)MV)~X_q%<+qCZ!0l9x|TmU%%=W;vE_mMb;@ zY-V=?*vel2SU;`xnmfCfZUE}+=tRFYQYZ6goO+^I{K9Hy%+7bLWbZnBP-g@9t~kD$ zAM*0a$+3}P5rZaglKUxrzAzYbUI#kWa}DGc(3XDc%f(c(D~_i&fDE)OR&~S={q|cX zLC=Tcc@R6HWV7e|iFE?2i+f97{bII-M^EYYM{Q(VV}j=l2QhfL$AixCcl|A|Wv##V z>?BsNKJN0H?YpbQdR2_@sUOaX92sr;i=6h%UN)=&>A4e-T>rG>$C?R!ldjj4?5;YV z+5iYb9jEh@sneoY$JFWmmvST*hQ*Jq+X?S&{A|gkmu_~zX zs9t$oC%uk}Y0~ysKZwSc9#@#2^LyOr<)tyYJLxi#?sDouK|8 z-ApdEbhBd%U$Jg~#AXkV?g&qfgEky$^P&+tzk(p!^L1|nz?V3v!>iJ{(K{Bs>)gK9 zg~O)mw%QesFG|@}OyxR?bsW6N@Ikx!KwssxEqhLU=<2UEG8^A&e^vXE4S-Hl65QCy z`tuh}WUl6ZpHZwNLV^c!_zY7iK2MM*1Ip9Eneut7FD5ytK&&a@voSa30}utm@T9Z7?3o zmfSJ3x^uxHS;}Lb{NtbThhw|XaRKf6f$PL@39s{!~eg!3N$s2)D}x9o(QVUWQ?iF}Jsa$&%O!>-EF zdnpWfmmjTT>%OR?gKOps3^rg@qH|frfyq08{^KUd-0sTy=?%aGQr%AibD28HZNKET z)3R}yFtfukGyM@6+?8u4pUIB+*u%&#yp+Nd&rCMsbDZ1Hu+PZkhuDtrJQJ7Oy3Z~7 zk$BEv+z)m(s8cl5tcl&;OCD^iy^-K4KJhrpI3`Pj3Ja5Fl+Y2}UyB z>r}^PHZz%XQ9p_UKPyR$b9ticUk4wYh%BKIm+ui*tl$q zA2~L(AGLKm=X5zft}5LRoZ0}8tE8?tJQn2GxlXdG2Up8ry?M6`d-q@Mo@qb40mx}h zgk*G9IP?<|SKBl6m`4zi>a&H@BVnee z_cMI6_@0%`Vtkgnd-it+-{G{akYMW1E>UY ztUy`(u9sW^Zyf|J+>bnnV=IO;@xg@+CGssFN9E!Zm-FG{D92aF(YIIkOZ@oYLiVF` zL*Eq#u`%B0Jnm=XeRu;P7~S&oAs-KhAnAnbsKc>`0sG35IJSJ8i4QJpD3NdZI4T#P zxSS6kM>)Paj=p)nkX;$O`0;Ty|2;nZ*8XhSNzN%7F03xATu0icHvl>G+Yw#)d6g1} z-Z|>B!q6ek8t`uPuAzwUi%ZcYSIJaw|Hl9Re!RncJ4zuxAD5;RELLh4_j@8bziC<;Q`}(?sujK z>o{ayR@;iNdf8Tt^P!vBIqr&j_4TYz_>ROj^R;E~a@DyA>*CAZz!9Gnb9w_%&~oUv z{oWC;%UKQF^|9rQ)PCl0Zuh$-$Jd@-I_L5__Fg)d%O9!3C7<|3248I>KT^WE zg{|BbU-jatn4{d_w(KRZ{;CYUQp$&ky z`s9e9jPp~C3@A5y#~747&;vUBzKZ{Wklt#-oOGu%nd^VnI%BQ)AH55hZUFZtkDTfJ zcTMciIw3xB|9Lauo57(h^y?FU8u5@#1>M^yD*n^{WZ;v5*JR+)wK%;4sJjW|pDX@r z2JgfA$-osEVBNA_k8n;mfGxu_#9JI6`6mOP3|yB17QHjhWUlx6?gsG8g7+Yv;qhQU z^-l)=tQqk2bY%|yLoeoi7U-2J{cwFU@bhHgS1tY{8^AL=&@;9_Pbxo=elqZ5GB8`e zzUF3nBFzne2IZcCFzDS0wx9Cn%Yer7GnQX_+*or*qr8VlKkfh!Y&n?eXRShxZJ|ySy;2 z?(Z|ko{fL+y1qluzfAP|uW|gM4S-3ZddM;ZniR+%O$ih0S)NDzf9&QNsN=yn&Cws} z&y<0!b;}rQjrWWGFTcjO`u;Bz|BI5Z8PZ|CaYXw}>4DSkB`b^f=10jk9~DX}zIzyJUM07*qoM6N<$f^JgTPyhe` literal 30387 zcmV*6Ky$x|P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>Dc1TG?K~#8N?VV|Z zBe$)!+cV?YZI9zEcTMsu@4tP&+$D*VIElCM>@OY=heDxPrIK3e=^pn{Lq&oh2!aG^ zX|?*JXV0GfzjyE6J$wE7^~IYvZ!W+`AARH`SbLOO+lLIzZ)wh%e~ZI0^6xF?I91HO zefzfeC%#|4e0lNY$&-se{NWE5UwrY!KR){Gv(H|c&^;P+0;s^C%NTNt>xH_Ow*h&* zp!K+H%;mV{Bo94(`qUG^H{X2o`lCmW9=)^#@G-$pwz$Qw14~K%79S3@##&d75LW=d z``zy@zW(~_S06oi@ZdWO{LgO_z%6d^>wul~FaGmC|C3vQzuyVoEpBm(Um?zR1#sDW zms^|{`QGprHygUd&+94P2#+5>o?ZbgZ3OtD5psK_TU>A4uF;2seKEJx4)5;0d-wj! z%8xkv=S)&Nh?i*%YZ>Skx46ZA zN&>>j5HRBBN$tau-mTDB)hXx1ma(?@rONE{+uC@!@0PJMB#(^b;89*1vm)!s#}Tq# zjg^txX8O;dJGq+kMy1-0ic9GD!70D zzVp>yj};?+p42`p>D`J$#yS=10*tWcm!*FD=CU?k?z=Yj2$Dx;pN(tCefG^IgML-M z>RM|Dw8J~rhJ6@~w*<*%nGvt*Kt{p;{P}bLTmL#PP(QWJ6Tmx50CxGH>@hMn8$<#i z_))}_0Jj2qCV-r1geCrH%#5Xe$3prTci-5@Alobbr=G+6M)n(XgHGkkygvDOh!6MK z^1jz&%bbuAWe}^xEW!Wt&p$hn3`VHqoFoAd___+KmFua0PigUQ0539gONoSM~FTn zoq}{9iaIf2Z7d+Wgnjat#kut#ijluBW8=Q{J5=|n*9LuAkMzHfb*a7@*^uqa2>?EE zrOWCvEvmW%+j|JAog*7$ZziDNC-5Q8{sg{=7#{gS{nd7<1OW0g0FK-OP=-hb zN&-MSHK`2gTx%0XHk}Hi@jrCz^Y<}W^WiDP&mR0w4i!PcJgIC`OL2~{(DaVqI?A) z9!WsIA{3MiDza{%x{iRhYTHsf{M-iC`koqjtZJih$oQABJ^Mtc`j)VDoUQr<=^goF z#9KlgcO);FtUvQ|pDKG9RNIy?l7oj09ElkPKLKBpfD!>bVt8bGo!3zb0HA=ZMFP-+ zznlOR_~JwPc7XnG-`N<0&l!wRCsS?9?X=}_)W%VnHlyl3C9<8>M&Xe0*XF$s*(XBP zw}gG;Y}HdCy-WTW**roWe>Dqm%I5Y_o7#Wv3E*6FJ;bij+($f)RqtgWUD>t~4=nMI!O|Q?c4WXq zhBzT6`Bh&&(~lB>ZUxSo0MwcG(Jep@c=4&z_Tc`5i@W#kuHN%hY?+8az3RyJ3QPSD z!Dy@zmd1j=W&CRYn(bR`s`^faHM{m9+d}_CZLDLSdTy6No!e-x@G_q=d&g-UL>=OJ0Jj5o@7y&dJ10PSOpS90st#eqr=Iy+#ydoIAF4gldCD;| zG~bMB132}#m%$j+`8^l^7(DU%q(R0{oZV86Hvs(A9wW(3M>Q=+}S> z?i}>F{OEDWJlM&R2sBwpV@m%qpzp};CH^^3?Oz)=x2fM{eXxWjy(1egs@Q?9JH!V| z81-56i`tGE>wO^GE1QW2NWo9wXVM3KAWsTWzA*`aTY%hN9}J4NV2gc#dX-%pBg^iy zWh7hsEZMmPSpU}VFREcmDl|8CyBW2Bq?lc8HaP{%q1i}ofPw&*`p9*pJ* zmii+JnVvwNrGrpbql>mPJX?g`fyV`C{0`S`et3P@4K0v+7X1x_zc1;c(B6~{Yxq;DKvpv~PL9!#eFPi|W&MY$;Z!1P~1BdEA#-7nU z!BT(ZM{Si)T}0dwfBwMF0{{8Xc8UMI1-YN)t)3Hr%GV+RaP;7gpr0gzM=d$f4lytZ z06w<@JWEg#0F2K#c@iUgDlgjxmilM@WiT4&x?#yjYfu94!?gPhRX-SwaVlSp^uRkr zZ?<`BztKFwQvZE6(JlfCegfOi?iTpE=O@5<7N7vvS-%Fp=vpNJ4}POZ4;zo?09i(f z0bQdjfjpi-S^Qh9qb~X_rhDmq_=WKyUH0n}egu9E>R(>i+5eaEZvn*9Q3>PPBmfWm zsP_a=D9hI?0e~$PjJ>vS*~VWx>Z0Fbx-YKUFN~du;OCM*2RLPso&k^q)DGQ<1klTI z3-I{i<6h>{UosfNF<%L2d?kQ7A=*ci1ew1yk6Ya0s=;2=e&opB=FG3aRWSE}=Q%)n z2>8qMU6Qy_3BcPP+P(iE0YFLsl+mH*0*vwQZTr};-3-{^KD5KzqHIP*;T8_o?(9Bc ze|%VeuK{vupkHGs`2Bw00vGCmZuG$=00n!Ng_h*{m4LlG_zihdZl5L;R|!I$DBVB0 zBVJ>4O{p-N^KMMWi=tsJ*^qT~)d966jcNE~Q$p=iLHo>ZtMBGM*PEriEd(a^R9Iu~ z$Cw%;uS=K8!U?dwDQsRG&ma{8?T$QdU2~4vFB5zHeFvmmRyu4yHPI|d8+GKI(U9bJ z<4JZ3_A)=j7jaetw+Fh>S^~&&s%JgdE&=GQ@4Sb*b|rw`7V;2n^>!dnD%)2lyC&aQ z78JcrdJaec#v93kiCu9NdiOX|?=q&d%7facg7%@^aqN2gJf`xk&5KieW>^WRq`PU^ z9V%dZQ|MYAZ>M6Q-7#L@olTqUH9k^VmiCE^gLZg!lxP=eg{FeHCR=R)I`iwZ{rT)) z&+1xAPdQk7qWwLo-KhLiB6z4c?p?4j9pI(BI+3<|CH~xxP=VPJ9vQ3f!6i z;6ptbT+uDS{Lkc02wb9928PHOjB^8xWIFY`cklRB0Dn8s=+4C*<3s8LktDp$j%vR< z;7QK;rW^7xT<(tDD)8NF?fcifUy{3XH+Z3IH*V;Re#cO^uh7=^HF8;>2Y-mg71eH@ zcbq~ObF(@6eB_t#O`G3TXPvu!>FRSQ5Gd$Mr)6@ zME2GM0!?mCz>n%v`fbKSpw}c|H9unWAy`W!OL%VyU>|%g?X5dx4gA(XbiuPhx^VP* zqlp%8YemPTF#r#ezAU49=3NppDbwi?#+pyxLgo*R;cmu9A+nO!>D zs}a#5n2dKMuKWsM??h>Xn3yu_#DDWiTW#-RPS>$!g_yg z!aIEG1sjD8xLXTp&T|rh>Z56mdb485m$I`-odCrbBe*?I%VW;xHI}Vh`iaLeQ%7^~ zlm~*p1Xe>UGP1|V4idCC>K@sG_kIh|CnLw?iA~(m&^K+GtjoZQ7aFpIyxxiqFAwy9 z>Rcc>r#nXQg0NS8X5-{Gqct=;Oa?ilsZ|ZK!OQ8D(Pe^mqpF0wkq;AgNnQvWI&#|p zK4z3bw$p*Cpy~_ND?dYRS?^eK2P~3R*4vNSh76bNdgq!aa|ytyv=>Rw+I-hAvIX#< zaj9($SC#-UZq-1X0c9DAPWvaOMRW?DpgQiJxm@EKE%d@^8)g&o?RsAItuh( z&@p1~^)GFyJ*&v`o+%%xl%Aq<$%grgjIm_@P_NlJv3n1Y^ot-P+0*rg>TV~8C}y}0 z3SrBVy@w$0qkUK!Py9ptAza&sfS1AMWl0V@+;uAmy@%*rlpQYWcFkLTafq$QK*4s3 zpt&;KAXASCe(>HCz@|+xnA~dS%sM%$j(qgtJ(DA38&PlU4ikL$)~Jl@qVzFH9}mVa z1L>L3(wr;OTq}lL$;Lc7oXs_mUI{VAP+vw-IazOa9#n(|V4P;oc*MFVnyd=Dp{hL@ zwo{_CL)8oF{@P;y2cPc^x?{}S2T zt}XNPL=bUSdquU6)W)!y_p_SF;JP+qYr>dlM88q*IZ?5*qodSE0V7`Jn`it5XvuPw z?5$BC`yp$c$Oo#&Ch|cYVi-;NFs9FED0ezwT}}z++V|LjIBNp1W$3StaO~NU7QZ7q zC>B#_n`YTGcX0o7*WDc%uYd9j8I$!-nH3oyS;KQorU-1U^ec74)JDhFMNV>);RgL@ zoZ_2_Krv?x9)y8?n{%~wWOMKs!AGfnN*Isbc4h9hsG;=Ne(v(sUssHt@Q%Q>xB~DA zMET^<;y78oZU)AV@p=Eq%1C&?C$gwEX5;sOC$MP)p$B-Ph&FHMnCkwUgy6f6R^$7q!uC2+bU<+rFoRONQqKWgh6ayF*>q}AMa72d`h^Jcywtv>G?!}Z*V8}SU_ z?C^CpClcr$?2YHYHnI(&uW#bpS%3K9hl_vy^Pd-g|NGxBzJtE|?&5EM``g9e>_}O4 z+W+~Fe_Z@%@+1cm2Fb%WnEmkAgKQ)c0^~Ndk$0FeK5VQ$IK>wcfbz@xbkF-7yW-g3 z2Uni}NU$ZzdhkVgg2>KC1HC8~0n_Ja$*96-{PvfJ3dZ)GZ7*KDy!h$opDw=t=l2)i z{q4Jpzx?Gd7vFyStsh0-CKB(jfBkE3zpOVyH`td^Ey9G_) z({F3p|LMn{{A~WGKmYmS|NitxJN~H!GiQ4vo$Wc(L;rv*z_~i$2oJfx zSn&VpPk*}j;~)Qc@qhpKe;0qWGJ3xM{(DaZ{v8Zv5@S2{IVXD)<`>Bu(e)0nz#j8g zEYK#TpZ8r-yaPR?uLX2Vh@OxmF*aTz@iKM3jX9X--0EH31BgQEC%Z&_ZVQ+NKk|F} zoC?PVKe+lUfFrPf8;!7YiZUdN)Pg=Xnvq}j8{WKr<6o*kVE)wt`_C5m1n#%r{>20R zdkbtX|M@pfQ2j!OO8TM(`k=EX1g;G1DuTp9nPh=1iGU608<{rwQ=MsU~+7Fe0{CX zI3ns`!rKC~7m_vf>o!~gYD3!12!) z2vP#n1K-Zp3QjKBpQk|QS%8T9dVS4PE>{`)`GZ2!L-J5UAQAW#fn6nh|HJnt`_e7< z&CkX)P;V5k%e!X*RdK2>4C-sgu~nxk*qdp8YMmv5?{gA%V*LXohc|EET)cYCf6Qq< zoRIu$w^B+Z9u(;GD+TkR5o_)H3d;5s_#T8>r5%C#22_&7Ol4v0dX6E#2+TxYvf21? z3F>#5L~!@sy?g&<$47cVwNDxCT$=HNE!nZQ_##<(q zWx6As)%ZBEpB0SS*`G6lZLoCK*QGp{@B}HFjNs*2Kqj8*tIT-#jWS13ZkJ8Yk9PHA z1AAieL}9`I_MM;g@I#+J(=ZjT#>nU48rPBiatyq;>nM7v-dWvLL;|>(qYR5)WAIm2VxIX}mQD`d$co!<`cwb9pwefOB&j zYr-*$TRB%52m9DNnb=<{vtN4KE2B5Yv;En5K@+*cV~i2%ULe+pzX9C{z?DH2U~n6xb6VGyr=gc=*W8O7|}(3255He$Qre0 zE-et9tP!7*41ctMCfK><(ybB?RJk%!f`;_$MTtSTWauDh`k#94iUlut0VZ7BhWa`F%{#t53TK)hXf0?6%|_+J3M9~9+L0?77p zgu>kp@dPdhwIJ5wN5Dq;{`((%V-fspAg%;PXM70XWYXqQ5UZT2^3*Ta)mLSHGr%P; zi)jp{xrM)FvCK zvtjWCm&<(~0ZOW=Ew``X-J+cFXdIYym~zzFUDks<4SYYygLFZ1a=1wYQu zfnN!IOHSPa_0I&9Tr>`gm&b z;49Pp(%%A)`Th9Aj~4jfUi|m}{P)HG{_p?x;Me6l^Hvfdh$(w87ZP9cUg!Vn+Yvo} zTk+Sw`R6bG=fD5w;(z| zNdP+u3^p@oGyYd1(67v#oU;z3^g1~fHlF`FF6i!^dp_SE>=K<1RPli*F8R6K*OUB8 zJ*dqGqjt#KezvmFNDkfHPWnn}I-LQ?UUEG=iL9gB1MLKI)4$2S%Ghn`LRkNT>8? zTXGV>Za+KPnNu6L>!$3SsSh&t**?R9yv7>Nrp$#J_UU)=)Hy2?fSi$e;K!T@THV7# zwJaL(I{$?Qe_ZOncsZ4a{E8sf-XAd9_&onXj=9)9aDT=kV6P}+b^h6J609AnLW9bj(SBV_qPY zp?-E_lczIDCG}kc<1l_DY-OVoEPg9sNdTMOzR)}K#{fv|mkJbnsf}jf`WQQnKlx;z zU-q|q-yeSXJ}$-o+kd^M;D_>=K2r{2QEnT_X5K_ENx=31w|{)_irWEh4>&P2J1q?K zT!2HYaa}v+wwrDErTRa2sU5B%&XNGM4a|l8buzFhL4A=@*)NYH@CXhz2Ek7N>CCSr zAgX~6a#^|+)OwJ~!xTNt6i<|sfT-JO1Q-L-_)xY>R{?BdE@l1p#pWa1)L)jORXjms zRb&|fNtdRNXn@+&#|T-<{;<-7cz{K)6a4>e!T(na{``A;jwkk8aR4*Yu^arRpPcWS)6-W|07 zIc^~1O(VZ1XVZ%(&h+Q^>TEcj{qq@L!PbK)(Fh9a9OOChl?XCr*_s3@^7yii1fXQa z24@5RVDsV3H3N1Vp?R*oLGIHWRR`H7=~&X!5q{1(oH(o63!6FP|KA_~&jXKNzvduS z03(+v2Q@^w(h^^kb&)hR7W;tx!0iZ0fIr!OWBWq(`$JadU@y(f{S`iwU(^P&uXOCp z&bXd9djdE&`ewGH$}AwC@n@6ia#O(s5n#C=^$G=Sr5xzHn0yYm4z;oNg@ch!%bgAzlI81sA+UFK@>CY$G@I48Ddu{@66trC7KqKB3 zBB>wR2RlfnJc#5s5m z9zjol=&Y(Ue}!lMMA{HKi!0DG5%Bsq=lYlDwVk7MNM{}=BPRjbsWP@R9|DVy4NITk zGeTd|={)8t8ll**4@hU~unP0RUXrdp!u#`2?ZGRQgIv#HL?fP(HnhfrG)C1k;*kWn z1>nIT35xdSI^JSFfxcEzZ_u7@$5w7Y&i`G!NGN&_#c0o77H3HSa@Ec??G?VeERgMw<#H@5B<@ls{+PYLrnw_m;TJhFQx5ByU#mp_I`zCh)slarV&Q{M|v6B zuSN{mOE7WkMFQYRGEm^>;IBbh1G?6iXp0+>kyl-puPg|nM$rvXB`YSZKWE0v*-H~D{e>O?){hOL`%D(R z20oO>rEeykrIi361^%N)k37f;_AkEp;^OPCzn;;TUw+w>0f|5fL`gtr?mT9OY=dMk zbAtFh0|CX{*vQO4Hd|pguT1DKW2^z45YSOTOVy+~aOsSnfBx}jKdTa4*r}jjq8z9> zn9-$qXMW~o{t{`NnuH+i(?epC>)W?{YS1Uu=XD6=FTVm1Sc3)h^$J)mO536SS_eCXpS#XJTE_`rriq(vM&Lu)sC&p(RK4jT{L;Nr1pr@N>rh&2N5l@zqyf zU3~M+Hy-d`efgCq1IYPbf8#_QdHU(rKnb8Gfeh@cgxv}V=EY{!HwrOt{pLd$&XD#I zCDeY?)&ac#ZjIl*dF$V8px^bookj%RC^#YJlk3d020xVfwVi&syhJq_`4yGfNdoxM z_6*-a0Q^~o`^T%>kYx|)mr(b@AvmV*Srfoz(F4FM&T616>afY%55J3MVPDw7a-Y04 z@O8|A&yj%DB|n$>oZSg>f?H>K0{oGk=^s6Mc=7njM~$n;mn&7HlG*6#O~33C zN4#u<$`JN(6@b0`jl!#!uibI_Z2&%$?;(5hxmK*N;x=pv;4HI6ejna@0$>tbC*rc{ z)j|KLlEGiTvg~e)%LZVB_`(I2#)7Zl7wPQJWjtqc0-3=6)B^mW1v`P<>{qZ+=8vWB zT-<+f-;=}VkqAg0B$0dtAZj}1c4>plejS;Y2bK|K-;_??ypGVpXrheFuWd7!0A{!O zw}-3*y`K2jV1zU$sJ7MiHOjJ8#}dgNB?Tn|B?0WFjGz152R?0kuTgsiw)p=9SlTan zpKryLCjg8*#?YOYr*KW)*7R}->e-zIw#C+XnOr)Rft)JhBdi2JXKc>i1U*C$d(hg8 zUp1nGtB$@oZG7oPjw=IC9?w4aBRX^NE7@pVLH1SBX4b~#ui$WkHQ8aoNd^5c36B8t zcDM>Fht1fAP5i1-5B&%*1!xXBcpTx&Z{latT(ex|*S1Ww)p2XP{OF16=b!xJ#OCR? z9&KViKS4Fx!V|{i*0WtLTn6}X3+i4u2HH<&O#nFZU}$1yoF=+7S+x5^IGPCG1f#_s zZ4gabWdZ#;2nkI7JlTWa0-nGpc)1b)^k)qI!q6%7X&jAfOn-{}!1O%*q&+w!fz%|R zM6fu|(4FVx!DgG5KZSks?ydFZvbD{n0*=VBFwR!+fUEg(cl+VKH=8(m0?$jJREcX?Tr4BvsRcp$XrI*OW63^m`+`Ahp} z1dV%^1c1>a!!L!Q-x)*WwBJ7~qqB(AMRHnpoa)^faW;lX01xfn|5FQmo%#8r5#(JT zgp%kh^ZFP%niLP{c#c34@!JPWBsu6SRcOpiY+MDIk3&Dt0MW@X(l^q7D7ptJ#Mf_O z6ZR1N^1p&k8DL^CD303Bc~v3DhS%)Pl9e{}G1 zomA!+IvMXxjEhc^fF2s|o*(Q;$mI%jX+vxC`n*yXw zqbjr3XQY?1{FO;ElnH$7=kEik<3V2=FZm>$kUtmNXj8x&@iXck+6VdN#wUOd*2J!TR{}Kw9E)yGn(O-n&t0Hw z6URzIuIKj52f4ftwSV@1MdcIpB(HV_P~^9paHDXR1km!;@f&-H;R2+Q`oeodN8SuN zR^&iLhBBAvx>sj}tfvjw4r7f5^d$lBYs6Plp?56-EZGUFtrNSh5VAwoV*^2>vnsS? zoA~=^3r77iEg`o_R`&b13LEmum_(Esybs49Fki`KXiU*6P`si%?}?6lk6$bbukAcpfO~d>=Ox@w~v7QQ~5&W*E-mz16v7xB`}wf zPh$b8sh5{SM_$ABzLUGIkj+7t)$^0LGD1WOM75wiWcJc74}6^!NMNv#_=?YpLH3uLp8WM%Gzfb4|w zRX|PxlFP@6%+G#Yldo;H-&X22zuP4MUd@lL(xD=w#PmDFtNaRV%(MuGH(Snyv)%&i zbHWJyE2}q5+9i-Tdbcpxnv>TY-<;lT$o-wm=E(LHJ=A>mA)@|WN9}LOG9t-HUiB>F zb&X{Q=Tk7Sd8ebC20pG25!&q_TSmxpU6T`h4oR-oGe&&zvd`8~{n`QBXynJCHS~@C z!}e>4E58C*gdD$N!7{uTZ$Vnb$wD3o&H|jp`fn3L?_Oa0g8hD(Y&zI%=*^d!6?rVR zFKuM5B-}t?BFE4AaJWUuENs#3&AzLg%dAgE_6s^iBP`jYKG}Bu7GMphvHtzzED4}x z%z4%XYYXJC1=XTTHd98cX%uUZ4XA})>Q}*dA_YHBg88+UKM{V@o(S*LQ&Hv7&!-dp zS55JxIgh=DI+t8`7X77XMVIWn*#kgNuA-84O5nssd zqp{)fHQ^K6z0Laii(`;8TfdBHZ5>U-t@QEoNf5^nlgCB+QKOC zWuFp2{=*hPg7LEin+H3M)F%_5%{Q2l2ftlWWPQjnPVOfg)PIT4>vj-q%++|ug3-c- zGtBwELcNo0#U6s6|7Xb26R~_XAmlUUc~#zsuOrBH5p~}S_hLN%>%N_iY74R--*12R z%}2noop~}nTNxkc5QLX54^yH!E!m;=V{n!Pu$w$4x7S{{r;XMoqV`PAwh@d71Qt?B zVC0xJXGsr4Aaa%_VD+c1@badSF6m>InkhV&F+v}~&o>nD4LQ=4$5Oc>kKsB)FE(hd zY;4->&8YN2M^Hu{Yt#p0kgqr4`lBM*5WS)(ztn!>R0VL z1ZPPAi%1ixfa|38?3COm%3a=wU;V)+I9SO1H}}GllLa}EU=(qd=CkbtEyNW8GQMeT zbI&#}WaB7E{mg72`039#&yWPDYYdHBk$HK+(aE@)XFJ>4+?d|d6s=z;gEVuTk32-vrf*(6&tICz+yUf#ED_^wK2Oh^Pr~7(rxMx=b{Edg#JI`zjUt&9- z(xkn^*C*Cvv`%rHVL|>fkYAvRrG2yySDOIN3|oF*P~U(otSzKAi#Ep^a_~bW0D@lM z7z1%d0N)oP^lF3ke{XIC&z7Y3&tE&mWj~~Gz`n)Hi_e&xSsy;&W6B@5d96=v4*G1w zx+Jq~GR&PXMA6?)$TuRb18pMlMsnikdZm$k=27nB>EG2`a_YPwKKA|iQA=K2&G=^l zVr??q*VhEc1boHW5&+vmuMYFw$bmh(E={QRF**O6cB7v8qU$}&_+)b^Zv+KTCP6wx z3V!`2Kvw~L%@zMq=KFv0MVIl2K>vbzgfT&^xuB_ zmy2)z{O5~58T~cB7Mp$~5s?x=KKtj*qYc+>=Al(=Ue5T;>(RqU{?r;d@9%$?5DG>> ze;Q*SmORuos9?vQ#H@VJY$XBk)oGkju~o?`2PH>%A|(m6S6XVze3eD$ly1pW-jVt8 zVM|!Q`TTRcdU@i{418MrWhs93S_3|jUou}<+gIm?_ROI;>lHu^=ep4+7;I3Jsr7?`9dQs@rOt{8J|CnvT?W~ z;mptXClXkcl?0$1fC|o0T>-4JXv7mgw?j%U(wobwKQTXIE8p4p(2@ZUaJ4QXduz9x zfi!dXnbv87=yz4_ad4%tHcqlb^}R^^$0aqHu! zPyM$6K5u(FHlQ*t*ZXR4)&$VPvAuxhNk3M&v!gu1s4er9eZ}J`E{jf}kl|Tu1%FNi zv#cG^;zKzR@&z9YVQ3?F7hQzhU)m{Pk9@%Xe-!vP5)Wp&0 z*vhWh37zmr0xU9TAdUn~4ysH*i#J)sR3~^xq@+NgD*@!Qy#gOn;Ag!eq1vY4XCo8* zx~y&w|MG1_^N@Vyd_0kK@0^%;3+SSTEbaR7vyMS9x-IsDzqzdb?QehElK^(>ES%58 zJbCw{k=k<5s;!dRw@@AvJ9tKcZ6pBv>L2_G``aA0`v}P_?fnhzBQISIH0~idO9E(H zPflnr!8gl+s6E`V_U8PUv&Nyy!yC#3jlPJJMW?QS5-HHCUD^l)Y!2QW_?dKNFbe+M zPkJ+QAmzX(h(y@`>8GFBd_MKf4_X3fNx-Jt;Esuk4?|m!SK~MWHgIS)hombXS=xN1 z(aA%zH|8TFel^Nm9-7SrKY>QTkp$YanHGrrZ-q_~pqXl*uLb_7KR$yPQ{z%6G5yQG z{L96^{_DT`-oV#dBdv|EMfk&ETsebp{wT|dY*gn* zn@=v0SWfj%XH9MF)0J-1iV#?nz3 zja?G}o1R3*B`cTKeDoJRO&7_|^t9p*lPNThRdlY63C$&vOu=Lp*kW_^BQ{xwcSg*E zz~f)2{mZ}n)&q~Ttpby^QJEy*#|Yj`O98$$0f?}LeSkeACCZ!>@Hy~xVrH=pnJTKg z9ljoiVYiO&2UmLwU^r^Bu>ic!m%@WAk`e95B0` zBd0`jk(wg>AY?yWcU*Y_I4Ald`3kg6$+G}H>DA7lB!Q>CITTT;tUPvbZ0{?fv`<>tSvj^BA`uZ=xUir1*u5Gmc zvg0Fd;C%r=JDZiw$R^E4mHDuW>iMt1)Sfr{q+gba;8;a&w=%Wf$1Btcv^cwlPF=e5 zyKD7n-I|=2;+QewEn!Vofe$J1RDZBRwQ=>K8swB@6n6|`np(PxGU#C$JiS_nCez;6 zQNz3U!3K`fXXJB&RWu`q?F1$B(wu$%cjieLs{Rm(M{>-BUdR){gO(gfDkOgXHzQ~M zfB*M?_cHQsSNPHm^eNbzm#MgjLq(4L^8hi|z7PrW15hjRrCUW2&x`79KsQ2z!wW7ewIO(iEoS!Gf)VbdH$S)e4n*y2RRc&sUZDy(4DTC*+?WhDUZF?^BtNDX+A0^iU2 z5%~Czf8Wl-K5jv%^C2;;!zS%{H_zY04{1KmX(Bu1`C7S>^Zk8?ngDXpPxyNhz^LD~ zOaPtY3LyWkm%6C(SRnm1oovxY>PR+HLT+Mp>Su3GvRmU&=bwo9yt!O84X!5``QJMHqBEH{wUW#uYOTkGC2|G7U1cVNSa@Kaq*P}K4*PyH}o3_`pX{u z3AxZ`WcGP^*EIHz=4hDk1LAR{e@y^6a5JqXfRVgNCo}hTLEQ)V?@AJYUj07mtTHy@pU}m=gj|`-{`?_yX|0n{0L3# z^*4Kuc{OCq8+L7mm}3SUpQGABCw@FO0W2ki+Lr{-_eeqA2l(_xB!H16)xJe*O-^lo zjDGaznSjRT=+6eCP5M<9DVTFWXI^eonK|S#)aPlWI(85Me)h7n701W6x%s0etl=M3 zHngJ+G1;DsIRth_afI5sD4X?1xyn)(FWVzudD)0-Ex!7lGXHmhKgjXmwxDLtoT<6x zA*i2N0{qm<{DaodK5c(t2tDKDyXGVO^u_1x(}n~*5BKCh0{;PlZ?~X6JV9ur0Gau$ z)(4nK4CFf}=GSEy`@{*L(yt={$gv5k*J)$tY%cB`BV%*F&+UevT^P?ciUK(I<*4AL zT|7v^JtF3k>p9pnaaQB3&&Gv#+Rqt|;P7Da5gV|m*%kAO;@m3%?2KXt+}sjsmf>Rt zQduRpDX7^u#hla7`Bvaz-~;?YBCupgBET=7J|o~i^S{>fE2Hq!Z@y>`M@7#*Z@*RG zszAPPpO;{!5%>xY>};hSvfU+!Xz|uG$Ii=0{i+{o0wDOeB!Ef;`sg_TbW8%c*1rbK zPL|UJFWY39@MLj?RHr04oCLvT(-CZ(RlfT2tBbF{`r6JWU)tH_bH6NQGZCQqaun*x zYJntEWvP3@F@5MJ*g0!)$;y%Xdgy52cT@8Y|A0qeEp=$ z`tws>As3v7X z?sTa0_95gUMqnK4-F^e$I{2z5l7QL3=Cc>Nx$1agmyFMBLvbm|gChcx4aQkW_oSJ0 zUn){^5Gm+s)BP%EHt173Q*qWJ@Oe5-89wr$`KS3P&s@ISwGPmxsW(UK$8n|K0KUmM zsvP9#3Y$IqAlrd-cs+u%txF12JA0E1xJq+>4t(qnjO{kb&-UIc#_{zPkz`_Qh_PdQ ze@}H2XoujrohrAM8Q^z9_KfhkC8`+l_TelEz|8X_Zqw@&s1wwN6q&$|s5^zQp;eJ< zx*#3^!s63_4<6pPv&j<={I9?M=Hj>C{PyA-3(_x126p*LGSCAnNP%5R52~QYCeJ-A z{rMgAH}Q1(xBp^#txn=0N$9Nan>K87+hxC1b?`Qq@k8T@ADz@~j^&oEm}ziZlHCJL z)+y>N2xnp0{>G>!0V9O$4e8t$QbKnf0%Oxx!5&_T(R?f?+PuAi_9g>bZPz=1?m|nL z*mNdrv12RFehXmB6s0+~IxA21kV!Y~$VVSzgA}MIUwgkWx0f~UR zUxsoCYVF)hRf11DeZGMRdb_IN2#@|e)Ozs9F83|*m<7J^ee=heYaeD32l(aOU_QL| zA+LU4UlBgQ7ybuEb{QWJxf(SexeWaz%UUKsw3sJRv^p)j){QvAucu4`Yw=TY%(!Py z09T5(;!#;fbCi*G1mv5@ifkl%@v%@IVm`FXeSRIsa{_)Z??D~EYJw>12{c3*zCL`y zucf$mrN16harx>t#NO&jC^m6#7+^BHn8sCO*}B8AXnq8MBCvX;TG-DS9cSM_>Ob4kbkq-Kv z5?!B+2y%b6mc58+b=t)0$EDzD`uU8G#ugyNWEofPH?=Cahty5BFfJ z+#$FbR{$~bbqBB@ZBZst^znXB$n?c+@*O-6;Qo^{Ob}3SZV&i4D^HsJSA%@a*{%}! zHW{AYJ3YAX53lr5<|cpF|LRbS&F0}Uwk3d;Xt0sbC+P1M;AwMr13IR50qMRBG+w9R zPrw+AMKO^hY|u-ndId_Aw}bJF?|Nd)2?qVBAtg!IA2v<;5627Cw$a#uvE6}{eqif* z*({^fpnkRQR(%y`O#s#SCCG53yHk&tjL=6N=y3J0N9x@G$SfxT_^}14myI}k^Mx1w zD<;1$wGMs29r~rK`iBnj?d{?t`bLuJPx4EooKfp)}_0?{bo`&dJ{Yb%kvb0Ny4*{x_-!83@#%p zKyNWj+nSyQ#8|?#wt(Cx*}aGmU$SF(WzG>JN_l6cZN5do%mHm2+~s`6cB*fZ&8 z@OIj~xoK{a4ZbhDz0q)9Cq_Ohx~XYkxI8KPzMp4B-f z-h?KvGS;MW075rMFE^I+L{@9$)7d2)%}>cEO{<|Pa>{MJzaY7SHgw-7>W(PWS4Wk1XxusfILrb+(Dm;o z=X2YNxyCt`w5^VUt(5}uf44XIk{iuaoYgVCbvOTY**O?vKJw);nvby7wuEbQ1#m3( zE{ryZ!577y6tu8G9Pp#P(g?FaK@NF}UX6aE{vo?%letVCYY&hXO~y~Y8DY6)jIHuD zU~@nBRicbZTllN?cN8BltyzZj&U7X8WRsvhp)qp#sxjMxE0CRMO#m#fUc$(Uhd_pJ zaq@5!m|E=>$j%WhVI(`DkaJjlMjO!09`!e}_dX7?D$juY67X&E^N1=m?nvuM{$SL3 z7W=6&iqARPvy9r@lCWpO6ReG1BFQdcGR7(9dBwQ#R{(p#qTG;$Ii;0H>pHQo6coe6 zancp7sww(%;L`Y5n(La+~g9#De(@Do6WXX~EZKRDd@S*5e-1cg76(l(#9(RWGj z9&8QqdbQzoj;(sFapehMEh}9XXcd9UIC&FX(aO|W*17{56UjeLG&iXZZLAT2+NbvK zV7!7E2cL-wwyfbuMx6XTf{qx2_X(x3#l!aOpRNg=p?AU;7Uohh=^OHSE-KggO%lPL zvE2Sdr@%3K&XNFF8odDdu;s)tklJGU-U-qk)Me{JM7tI%Z?KF!gDLU82O2+)>N^=J z+E=l!eIH^Bw1_gWXFU5eAl9Lem&+UBzKr>}z6#^{JY(J+xeUS<=Vwye0+0x)o%|BA z&TEV-y#mkz3O)Ev<*2-_dy;*+iM}WIJewyfSLaiXxTr*_lq-L0gN4|jdT>~x23OSVxdPpD*rMI)wWK;hK-#u zvdl64%(u(7$!3dkYvcZ-KA991vrfx-Wv6Z?3qwUEQa@sKI%EQXcoc;W2Rxv&a}Z)nn@q9iM(%` zr?Aw2G*;&IegmDCMw0WTiv;y50>obc8-1OXQqDSK4q?@;DLP zR|n#338499_v*mLH9Oh(P*g$FWvCN0xys zgs>NmNLbRdvuSaZzF|9MA0`{}conrxdX{Jebab*YE7{wQwqmIdHegFsM{rv?1_^y0 zRz@qfd3zoM{Xnd$WCPZGwFdXq331jd0C!+3cHr9P-Z4hg8|lfI`Tq#Vu3?|ej+N$# zeb{!SecsEJZLr7CB{b&7ao0BIHVu~pV~9EqoP%(Pv;tp!_Vqo?k}-}=1gFB8Zvl=6 zF6n273V26k!uRLqtATkdN{3;s*Qw7q2V?8_m#}lxGxK_RIEL}yUxAEuvgO16zjMzpU!?QRq>0hA9*y0DYcyN-`6zK3*Me|EG zaZyJC;&oQX_-7xQ#iCtl!j(TxHGcTheKydU_fdv;+H1m)A8OT>LDPw5ay053M!2?D z09&C+Y7ugw8PfTpCOA6yBC`z<35ue zknAY(b;HTO{63};mC&&TAval9L3)b5ydMsM_Y2yLGWMYf^x*MMj2oE%aPek0qcJnnF2>7m=5`9$xoCQ{ZjqDunwny zex2I?y_wf`w$(XYN8Gpskk3MLxIn%0lAIG8A;`0Cy!IiFvYrH{xa`6+&*3H?@xro9 zjPI1@t+@-{-ii*_Jk(Fu=o_8Xw^P#FA!A(Pl31{72K*Mqj*)Gbgs%^UGw8lb-1u97 zn~s~keJ+8IZnxfbz>Qvo8a&k30%~9T2)a_xYZ06gf&`s4I|UzXwuLi{Xa#+2QG&*5 z8muiUNKGV5zYNJTi|I@@AnEm?eLh~8Q1y|6wg4qj?w4giu2G)0PN8`nf{FaVXKUkK zCF*`0;rb;28ElKXw4wLG7htdohiN$gW?$C5&*_^{Ha2w+o()*CVX61od?U=(k@9F% z@#Rx{H>2ykXY+{mt^NUd^juy-vnr6ssdGEPhWCwYe+AH;zObQ}VT-^*h+>hJ0)y?Q z*CAN!aj?Bpj5a*flVYA*YVR=q*aDNH0Tr#blgm1*-WYdFatrlSgrerJrpw7C8%0Ye zy@v%e$hJ;l^9b0T2~4En1s_oAl=@6i$3tethU@@MekBwHqzwCBRtO zF1HQ3BwPcw8fg={AK;IW$1mvpja;+IOmxAol!4CBD?4WJZnVT7VTCPD<>fX2AFCB} z`}B1r(lC2rHrA*49maPWq4KNWt~q{vPh#q(SXfs<;_G7k+v=^d2}!UQtAfqSE`e*b zY1{Pct6`E*g1m9&BZcuoqB;v^M%)N|*a<+Z&pu(p+_~fb;+tb5c+(A4$=*86_~t#z z{Lgx?C(5#mlsAodvWbjhguRWVyNUamRs>w%4wO}IXXT7qKLB0v{AxtuHnn67=Gv9H z?RJbgiycko3#}V|kw2nN-$X!m`LvUPx!SK{ip*wAeA>p%5a$@xSBXm}fcfTHM_#B2 z;EnhRqkb%-Hr@oz;!PyPIH+=cDp#^M`+1jW$BzwXRfiWEe@f9dB9P4TqVq!l{pj#A zhZxg&bBwujbe*vo^pH>e!>f%FhOs}=Sv9?T2hCU%zsLO^f{D^+gQ7Tx64VGRTjRa}bYmlQ5v8klI})^mVn)1glT z>}PT-yGrlZRN;$PwpK4+y}Ee$@@1nJjb23k)hk;|^N+73eHq6H|G4gt@D`jYWW%gU zCYvsroRHg1w!wJ?g!n4S0d z@nffl!Fxp6jvwE<=UH6Xmo(af+5&q;%iHGi&d#))DPF#^vj)LrXH=T*-o4w$Skgc9 zhl%<9c^@O-{XU&?}PeF3s)y3_+KokJ%9eZA4zbOGjU>i{>yWxUN>3w zgK|CVA%;imBzx3Gy#4<7zrXnEtFQk4VJ84h+=w%?9LVLP=IWPhd)xVa6c%lS6W%pWn2tx$hyxy}jTt~u|& zjQ2=cb~gEf>~x4^pyRA;&X?RhTLiUd%KcR5c-Mk*pDi<#xzpcu7`?Ok;UM2wvAI~3 zH;`>I+H_PILQXtLb;;(sNPKU5v+FB4wU79@4({H$d-3so^N|t$BmoGc#h!xs`=OJ9 zGh?5h7e~q6!p}ZJQKxl)uvv3uE!e=i%;yOG^wUpHY;0|Ikp~60aY5)1={BJI-o|MA zy4k_LZC7K>3vMRHhQX6d_TWt**-8b@F}_+D9y{{-LUj*7Tmh}sN0jF}LS0{C?Afzt z7f+r%`Q_>oK#|$UTT1|WZBgUr-dX^678@kWq8xy=EXsAYSGmf|ZMk0Ma+?+s zKjVvhS?iNxx`Qc?;65yFoO!kQDx(kMdXm&!$?lyu6?YBHXuAh*V|wsg;MTye!Jo?te)^FB zlmzm+;k!vNy<&}bNjL9nEafVye|E#cK8a%I8LXTnI^a1;w))J_{L(<{uR8%GS;>re zW=yXyC4lDGctv@KRJOU`c-LXX+;Ea_if|ggV)A2bB001MC~c7Vs;f_xuOzujZi`WF z2RZoNNB9b#*zG``ueP1$2)R#EeY80p$Z=@3h9%hybow#%?S<4I{j$NpQ+|G{L2wiJ zJk3||djj~mUG_UsHu41U^Yrq6b`|i-l0ZB#bf2ccXH0&Ts=W=c2|u#eC^s(qo@rpS zOLHE|o&9O$qGlVU!w#$c(eJV!`9m-+`w4CW zU!=3Wt^hdRxCveAdE__*VYa{=Ivz?Xgbp%wF3p&Fb~} zd7IB~j5hZjutDoA8tttclK|=_9hQ{Bn~F7uBHu`6s*NH{#5%Hm|F_Bmogu74kEFWIYu0 zD!VmiEVclyu<$AVz8jwtX!dd_lUhLDo0MmDj;-qO{g>8VYhQUcDgkJ->R8K81b*DZ zW*N~=E_hM*1Q26xM%lx@5HTMu0KqS(K{Y7Fms3SGa4S{$%2WTWU+qAfQh_h(KC)v^ zifrT(uyx%gt+c5<$@Nmv)nT&op{Rqs!g2T32aOirPbA#u7Q6)gKmYm9_CX#i>+GND z$DiVs;D<&^7BvCnB+#z{%$L5FaRorx_w?J{+>`(SXMcQqC*M}ZA)`&NG~kOUW@I1v zG4<2_%cS+s^uZ+n>Y^ zp4!E${QSHDK0enyzxqLZBVm=68QP zgJ&*pE?!uW62!Xf_W%!?1b^@p^pIo}{Q1n!Erowl()^hd0Qda*z>j~{;0@1$norz! zvB%xdc4ET!{-Dy1n60_20{JK^srbATs)o@X%6mj~)d^ttOXV{IBdQ?|c!@vU+#A8N zwAT(>^kEkpLH6NH&Ma&?HlL_&!b3@CFX>_7v}p1V#HP~5njvhQV8ok%_MOa7I&{c} zRmiq*uGg$fox|(buY9fw^6X3TASH-@{No=NfB*a6ohU0|)IPah`*QRvjUV{Pu(jDy zdTL*Yb>P;}ea<}ERHj&1i_BeIuWODgO8`RM+&DW^M&3{vy{7iy?3U1=F*wGUos8Z3 zwPS|rISH^)a`09f1$b_&JoKU;TilLB8P1C`b8xyemUYzek*qYffqq8xzrz*E?h}3r zHjbMA&(FsJETT?3e#%!%epV0CnNe#*fD`y#$3Mqc96rA37LPi1`qh|EW$J?w_DdMh zvq9JU#+4_4eZXZWciYlJBz{gxfI6Fx0A|Bv(nek)WNK1SKW*xI=FeF5!BI(oKD&O$ zXxIcZn&4+{{GpWQok_p$<9`2#AE&`j0Mn)fDIYCC2_0E{%6KFcC4$kJACg`0A=U{U zXY|aq#kEKPd3)xKuLXu?fS353EBpB}%M)CKAaj|@3n(ZVS7)-knMWHNo=Cy31fcdD z{OHy=Guwp0v?p^5&|5SE@`-prhlZ?Wv9FMI7`kljh=|>Pb9UzbocS|nk$eGp60qPT zU?IxLXa8jE^A+;+V;t#S3jWdBFfJb#_es(yGy&kC?4-V!8yq*< z5Mb=|vVxLf0XekVBDByv7eK!*HMME-CdyPddzOVqBGFk*&m1x>!|bPBGR$W4tZ zO>09ep^hUv+?F5?z+_1P{_rpSHKXS{;@5l%QshatK)%m3@>P}-kM+{kfX?uBEg-Fv z?Bs~uZMrswzb|90?Iz($6F^?PV=xZ(IiK@f2W>{k_{fYe+M_SqOA;V}*(iA&yoB`++uWY_&ceX9wR1wy49~E5UEgE*<`u_1y^dX*#0jW3;QLw{PG0e6vq} zd9m{m{*Zq-!W#uYWgo+632Kv1)ravJM^^wEN5onp15xHvq5ba$&}n*{0Cl5kOLyrF z#(TX5m@J-`rqF`catHMhzhaAwp^ia0pIz9bY@WP%AqBbWnUE)W)Qy^NKcpah5g~Qk|+Qj+H!jXDT3hzTM;qZ%o|a-exo+SP!9625}}l)#rH0mfu~WK$3JVi$iR z&gVq1<-PdwJ>kj|z)}DhbDBX@Fbw6_kmV2PTZ7OyL)2vhbvBKHUV&fBw6n2Bn>&v& zgtaeP9bMD29#$(QW35p*h zurlSKLnbFkbjj{+{{hJITx|h(K6WIfY)7s`*we?3zF8-5ek;yVWY2+W&t-Ae1b`d$ zItdP#{Gr=iK|Z1k)maEO3`u~X*Tbe9{K(|~M=u^aq{fT(dbiU%0wZZOBq!3+7gX0L z_Z1{AWdAsyx$$*dc7zCQ2tQP+0VjQ@20F2UvG`m<9(P2v`I^x;`fGk$t?O&dQRQol z8}$qz|Ldl6xz;y;7T!oapt{=NvuX0}00}{7HOXZ<4rR9JK_A7&nLDI6?8cOQqs-rx z_xV-*C!kYw#3v#pfe}@oo&zI0#LMkj#_QIGT?9v-ugd!@mJYB__E4PKU)MJQ*hF!n z9I4|3=4hd|vk2!vT>v%>Nr1rD*@dxv1C^)Ql#g0Krc$Sa8gz-MPGn-N)-(ixpM$?a zgVg~AoO=X|1}@(j!y3hN9~;jXx=yC3gEok zWDYrJ3na_ph=fxv*cuq+{cXz~vd82TmACry)X>;#=hu=)q<~PM4j!tOQkuuzB;WiKPA$F~%E= zImA2b2?f?x1gRz&CHwI&+)M$_k?%1OFW2SkQ=$5gI%E0wDg}Jf zKXDEMx-+3fn}JP2kn6wD5cvJSAq9_i1qLWSPGI4u=KG6sv z+wGHF@Ey+D^$+gQR(LtkMwGwuj5lKmSAnz{wxDiq7TwO{Ue+e}%l?Ot`oA_)@aIHu|KoN$kb$mCVbJ}&8*v`!OW@L( zAgVzQQHBrUJ6$R5O900}S6r->0$n!Ao+ZK_{-Nlv1!tY9<1AnQ;vVjPaFoga;4PbL4BU{~ZSR=nMCIcwiP zu0GY_vEsG9X@NGPEh0fF>R@rxBDWTMN3Oq$KF{i%vlr5>%><#9uQ%r(bSm%_{JAd5 zR|Raiyvg%(fkW(aAYTX#kRx~#H`|yQlePlag--N<=-c~HPx@49!?u3@{|r-5DdhD5N=)MMPei$jF)e+*uG2?IFy4f&2-tFJ zoFxG?2TosC0^hxDBTgX41)ul4VVq}e?eee5jSP?NwK>57Un{TXMX-;NI- z+nAQDWm6^AhAS6`>47HyEqDOhme#Gi>zd>0Zvl=03o?K^*%zzT7okN8JtJ{#q+ITs z*#bJB`TcAkq|IE3O{KE;d7PdJL=s>ew|@o5?KWA=l|J-s97kg}ekbvRDr(zIrjI*^ z+pZUX1cdKQ0X^>76~F_Vr~H-uqAMkczBZBhPd!j+*Oh=EA1#rBAJ7l~q8pvk z+phqMJt`{!=n9Q_47{-k*mRR{GZMfEd6O6&dhS?c?pV>)pz^ zJ_P#Gn2x-e)egZ=HX-HYd{y|NK-rG`Hh^a)52lyl3O@0kJhcSyi6sCFd;*sLR>P4x z?Meg$xCoz#XhQ~l^!fbr&o6%So8NRjN-B)ui6F*@e0(Fy=s@?>=P{SyWz0DZTBp38 zr-bY~CC-)r*bsW11vq(&qqCfjlZBoVPR<*vlafFLa8CdV{v70qx?JX)?Cz{Heegv+ zCkCh^T*=`OukMqdwB_+Yt!LoJpss^C*n!)e`}a93w_xvQVk0GheD;S3T!=vK!D}+e zPy81IUxEL{7hgD$0H~7yJn$9#mTVr!*czWYdTKIupRdh3&?VF-(0w8QTw`4MKL_pq zF*rzaxz6#fEl9UzixVZ27b5jze*VP|uc7vhFfa4Jm5wik0Gc1fm4M2!t=4@`M!h~D zeh1zCz|rJ&M&k%ccBUVB3ntF06HnOu@*F8qpYT%IQRQ3Fk+;0~@S2>xtAiRd2m+2V zKA#C_w!}GxburSHZt5(qxo6Vc@jZzW%0aIH?nxvP1xJ;gp0vRKh%NO~A!gt`at zE%P`3o#&r}E(JubimUC$f59LYep z2M;Zw@W4{@^zB0oFr(R|7O>Ek*W{`afKFf)zLp92_v{J4%N*mZmt`|e`bC}NQUVxa zK`!_A1b{Ow0pKu#pRb9+Y0O>o8rdYi+EmU|`Bj(d@?9qN$qAsgQC>;_6AXN@)sIMt zq(?n_P>4~`*rt~tv;A`(Ep0;soA1a(acxm*(hbr1eeTks>t zzg(|y^ZR51YyMkkW6o;1ssz9oBh>Y0FP$|3_>r@m&UEP(V7A!w<0xL}L1qcr#5H@> z<_nM#fL{Sb0??cpn+>OV_#9+oq9y(kWqHjzk0DZ9l~Lc1&6fmGo-d`@><9i>^U(~* zj&#Jam#T>RnX~6jZO?eXTbZNtBKWD-xz_|xuLhI|bX$;veMEZBz%7CYzui)~owok$ z4+pk0hgNiWEqIGidmPcB9@2A)1c1C>#in-gIbPcY;5!F7+MwayD zvc^?gOB-`@hehzqVR=54x{U+gh_r#BHTle6lk57Bq3(fWlZmNKHmNZ3N#>a!I;w1~ zXW1D{cBIRWzAo0L{p2q@@?elT?9Te*=K#!E$#`@XAc99QXHvlDGG~7!06vdF@G~x8 z23YPCQ^;ucCz;?aL2Z6aa;HcDOC&w`dxUB)em#2v=%llMx)sQjWjo)>jKSF=+v5}T zDsOFJK&u&rypy-I1@@!$b!VmT?lWee%Vc~b--v~`MoM6!s?Vv6!x%n}>cMOG&h5;I z{C)K^p3jAs*^WCVNWPjkP9Yyn{HA*1yUt7jZ_BVc9H?%@JN`h>+6aD&XCQOgxcp+31D;u zAYzOWvRwdwDgo?n%FY0DNq=cmR7Yi~O|5x-`lb?N1H4c4YXP(COrX_EOg_EllzAKJ zArzaEhf715v}wH_$7%<4?3?&0=F;ZTr?ta^Pe)kt|G`LlMjEx2Z5lrxla$TEVJZ*Hzl9?Zc99bNmKcKO(d{o~+gGFG{QLI2( zHUs9Te@FH5#fz3L>7VACb$MB5igO_5u{+kLzGp!XI#x*%_jjj_|81{eMyoUxjq3qyNA?{5PmpIb{+k)d)`|o`qSn5Y zKLB%5637VvABm{@?Uc1wG&9CN6k=5xthkf_x=sGJ6Htj(WPX(iKz}Oh^kByyB>*o+ zol9uO@BlS1w#ElbHdgFmaYSF}@wYUlv1^K?b;{Wx_jj3OPY3O?+us|yq_t=MJ2eob6(pas#Q8JIw(tw2)J^kZ{ykKgaTIcuad$HzhWOwviRBkD4u>4U3E zJ_a(eal0%>k=5NsJNiRWHZ}9;)V8GN=iW*_qoGO6k)#%}D6`^!54I?SW|Io7YwwP% z%UdISn;*Vl?hkFw{E-e1@ch}pv-T0;OrJfo`}@y6^^f}cM|?SP*a<`lpbZgY7%9PE zO5aCDGEX#zJUxYE=PeEJm)gz&&GS&4Edk)_=I$MqHYCu3WN1;gPHRaXtvcg>%vpl7 zDFGGazmLx3PpYRp$*vP)v~hCZ5vk9F$FIeL7~k!*4XsPrp8Pm?u@`L8ZPwb{YrbAW zQ)%x(BfobaGhQO!fYGM@exO>32H^d6_x5Uon6Hu`!OgGlICJ^!qLm4DB}fu!_K({k zo1{DRb{Y6VS#B%b)>a(CZD_@l;F$H?g0o)%m}~v$jvvgS@zZA0Lcos&g0x77E|mHL zpRDQ4o55crp7@hjo5F-#X2ADXlxMoEV}{EY zr^MM4z-Gh-xD0&51bsMYe%YJ&Vq+k6IWHcM%le&M;Fs#T9OTal-Zb(6_b(xVTCj`i z?D;!{(Jt?S6hU?Bz(U(;HJ%68A_44kR^8CM#omClxayHNjK6fOuNlATn9xKfx23wq z>augp`tZvAyl-Hj;9Q%n>fJXE?On!f?qChpf-JYuFXr3l9!a1FeF=OK&e2dF*sgGj z&a3t$bDO69*eZ84WTFkSo8uhECb6qe0DC+(YU*7!PH;5DUI(dDkZ-gFXICsOjQB%} zm*6$yJ1a;M5SUn>`g&y!7v|UwYjXfu(?~A2pBsDk_6p9D0JKOfo!zDRv17rrYYy`+F+oi> zPk0hoETk55BWi!w5vX-xBwOKja#Y#tR@<3A1*$}bkhXq}a&w5B6xpZM#6DljL2g?R z&>VZa3{QH&#CJ)CJ|i@JyED7JtFYr4xxU0~5)I9lO>j7ll=yLqk^Ee$VQCK671!bx zAa95zXYc!l){GWt=R@CUhP?|Oo3VpxvW^*N9j%@@$cm;wYTEbm7>|@t=Du&tz4{93 zUTFF?N@$xXY&@~FOC}`jeN6lmIR>XXj{3x4#8e&HeuR`m&N2vWt8il zOehC5D#u)&z!~bas&*ZKO+WrVhrK+PID;xo-}gyWl_CY3UU6%$T$X zZ2~qe*tJQAJ0u7ceUxU}%RH%N&Q#v~#(TTrpV{Q~Y=fwxv`b=U+X5u#wzT4v;Ha1~ zT>UeE00!rcE{BOg4~VFDl+CjRGY7>2L*BMfr=0uxs9}>Vh&>ncHflmHx9hnBJT$l# zpNqI-^ywNcOBHwrL$ZB>m>;A$W~zwcO|4lCIn&;Q=+Q}f5^sW}U-~+dPDhuuF|63_ z3!+sLy-yj{OUREf94kR%4X~iGL3*?P0s4F{0qHnK&y_p_Xj{EGAseb=-&8@4JelC- z>B*(XPP_sQqC?P^Haa#P%%jyo*2^(9MLBbp;nQTky|NL=9_XVjKE>))%lGIQ^_5Pi z?nE7%zFb>c|7njooX>va5Hwk|f~sdpuRwd2*(ZM)?EEyvB%T&)4}ur3uQoI~md3UI<>%$9GvM%ceQ0 zy<#e#s9=HJ5H?PHna19WBwNSHHg{jZOhpG34v7{K_RVBX$BZ{X_n94KuWXz6GqBq` z4Z9VdVu>$IJ}Q0yuH*{fAjnBfCLGs!OE_ZUa(s6hN6{W2(J9G`H^CPBqkTz=jWgOj z!lb2)M=4Won_yx7E5pvv=ReXDv<8>40XsEzLp7x6-$7PH`_cp!`yYmp_P$meomw?x zviA&az9Vhh(8oLwXL<&(qnm(g=U%%nv3W+i5Al;m=6I_OQAa%%wN(A9 zK8^DdZwm@nnmQPvj(N3B{@SD9gNUHo43m@ux4B0 z5U0zhjn8-?gh&GzP$M~z* zD=>!Z4muQ9k^rg$H^JuO|4{~FVlg@1`-Giy9{2)p!9Y%Zx7fFLF4oXxj52cH-hzzt z8b@tTy{*+(5wb$x^wCpw=W%pyLgMANCHbj6)TW$_K5l~73NOPoGIyW7Ag zgh|cYb=*-qgg*P}ox~40#`5puZ%sQ2nOydk=;J<>FGLwsU3R*4a?M4IoTvUp7k}mF zYG5#|2on8G?Ksi zIH32nHeOa%)48xO_}3u6T@Q5UE#RD<)VLgT0GtA-5gm)(Ka@;#4HOSpOF-1c_2zS@ z9PoPhWYW;!fn(GID8V@cK7c!G8Hrkd{b}$-*F-O6(E-RAfNJREU1R#V1iTu&F^)%I zF7Z9ogHO-nDkvB0unIdr@oF*Nvlpfyqu+-s7jjW%OOy z{{;}ABl4YZJpZ!CDC>(J`Tn<=v&;k>E2zymW}nx@3wwpEXRU1uYJZ{IlYF&=Dzl^$ z9BN-i)?4+|G1uA;v0>D2K0nqriUnKkI@Tt^EZ}VjXD`@38$X)0H`UIk^8j(h*V6m{ zIxynvy!k5cpMLtOf4w(f>+Q$#wcuV)Ujq*1y2_*f3$Wz3{I%fkKLNmx1n|Hp2fxPa z2pih_uC3SO*kSUMw!z#`$$g#AFZ7S(GLV&oKg9Avd``iOrpL-NEx}(ySkU@nlD#HA zI1thYx|Wz{w;c>jYxCqmowY?D31yqQ?^f)jw_07(in!|wjDl3{2l>VNNGrW4uO)zv zWQ!mUf9B?s2*x}9DvWWmeMZzFk^n(UuoASVN&x!50O+3huJ}i7!vuhFIeS#7GfMgH z^&I3i0q_q&C_jGG{^7@iht~dZo)CIJ@6-Mn2*enSmnY+>^)kU3Hp*+fE`NyLeX<$! zJ4F6m*gDUQ(np)ixwM^fZW_yBI;+}a><3xzzP=M1#vp-YKX{6%{i0oaEGGda0BB1B z$a0yde=vgH4A~|qo=%bg2w?w?b_?941kme7qXgjm;OWetFPkP9El8Q*42SlS{DR|v zJ2mUwX9K8qq(0fNSB0a-9L#y*mpIZk^VgwB{Z*RiQTqnnletEj_q}!{8cmsy-1@IOG=K0R`+#}ox$^Lx zz}0UD2xOiO{QUgqix)yI_0yyNi07?K}=l{FKgF&77 z0lKgIqE{!L8tA|7J~$_GP<+UKU~bG+M4h-J5$JNCD*(T*e;xsUlM?`S+8I=Jk^=XJ z*#XiI#Fya}Sr*g@u3?K#jo+T}?BvC7PkVzISkk*0bVqHB>!6tQ*7;p}%ni_(8jJcd z<5t^2)-XMVo*B?buKSrSMAf8!EBzuZs1 z2F$?^6#UYkksX&&W$Ogjutg^_s#p1?F_!cmilw=MwYGC%G~Z*!J(ZpgQ+JaR00b}d z`NyXIkkq=sClUn?yT@M8n=(}={HEX+D@7PL^%O4 z07RX$KY{{V}xNdg2q zNkF#)N&urP0EjDq42>nYU52w?0n`M*Zw>POj{fl`b?1e5^5zn65faT}W7DTtQ#;bR zggVxiK3jlZ(pGD)w`RUaAHI^MuNGaPFBW#*gb7N~2;Wk2vZ z;1#lp1&B6o$%#pw?Ue-b*}o=&D@_3Ptgj>V=bqnn+K&e{XSdL$4~Zz)l>k&< zg+#KsYu(1vIvJL2-VMCT1k{)yK3ZCf4*|XhlFPJ5E``w&yayL*e}lS)vy)u9-2*)) zOb78uQ0H5L9P}#di0sDU0>}hUm;Hdrx(@r983ywZ94PJ>PwQlu%|X>P zS1(oDt6lrruM5`f+%gA~>3a$RWF&X24{E=PtOwbxdJlx=1^V2UP;4eP6d&lxw*v}% z-40wP0sQWFzdL;b$o2doA3*j1 z_9+Qq@wWhAv|)2V6Z8bXF8krBoukUX7VMkv$e*{k#UWsi<$a_ww*$Hos0pC%JMGiW zR{&W7on-{S1t1Arh4*a1b&wYenn?G)GT4;aO7*p)&W5XnZD@g!QzUK#04l@51 zx46Y=kYfxe7U2`SBB92i`p*)8b((x1z)}E9!EJ!w;uh}*^+c;!6u-7-j1s_IyNv%Y zYj{K>bQ|2axW&yv4*C&lO!Hg2XV0GTM|;1t-zy}nDa#qBVy*2Kx46Y=p?KRD{QI!! z8Ng)+xy3DRaa!cq%<(Dy2$IXU0JAHA5!RI6;ug1fzaTzETcO0UDFNK#7Pt5?v6=vs zC3NX7Wg0YNkHfpx46ZJ2Yy4K_|~rhzxn2yS08=y$tSPgzI}Ud zO9Ht4b>J;-adVKb=!so@)`zd{|HB{tKmvIE(bK0-|DOpyBlvG`0d8@N4;KVKe=*1v i0N)4j<(FUnYNZL+a#+qR9n-#O==`~Ool)jd7WJUu-% zRWsGq;RG z2oO{N*gp;AKVCp^0smq9k3T68y#LjeK&bx*0}23yS^&WR2cz{*{-+uI>;GBv-x4ej zm=zjvnUP99e06-l0PX|e+L&W>XrfH#~0o0I{;r?xB z!)R!1XJo?YW@G=KRRCT$?tiL{3DA((&Bof+iQA2j^uG|?|MdTunMjHM3j(y_Bh`>q zAQrZBG$H0-{K5ExlpmIun3&hm*pypIMC^Z-{~Pg}-ku!)s_{=M3Z{CH;@1 z|84)hPoRbA|MO()^gm(!3y|qQGfd2kKbZcP``=RD|5&-@9W6}$dHxSSKQr%tA^(52 z|MA1i^dIN{pUwPtr2l387b-t2FVp`X8$T?L-YygXAPA5Y`K96pa?u&;LC%#@Y_R~J z%&p{Xq9$9J?mhAO)ceHnr_@tR-POdj2zD^fPGbYU4IV6%i2`-hQEp`l`fZ-FFGN$CQt;T!(sB;H&=r<&Eh;d;x^zZP z1NKLIK|2(IvqBg z+gYUr_h0|g8dWw)&vo`!(d9^rav-L|i+O2rusodY{EtYi`#n=}ZkLeH&g|V2d%Kl+ zXCl!{Vw8(BMAO46D9UN8^ftXgXr6kOMXE_Q1f4p~8+c^1PwV`a#x*sv_;|Ld9YUyp z2YEx^Gg0;M_dXhjh$lk`Hz{A%2H&v<%6pDvKC_FYkO!-^9ks2|xRHv%_^NHo)=o*h zp+vgR5y9;i=e;uk;D}^&pfUgx&+JdA`W|BgY;L-4@U=))v}p=%JOySw;a^43jKVUC zew?+~FLwvO8*BFOw%EQM=-Prp8bSrcB^~W&DOwe^E%BrNE7|BSnYkOjHkx zPG4Neli@5W3&-w=$_!=ST8^AN%}i{i*~G6k7|l^1vFs4R4mzlV)g!Saz_yJLP4sGc z3@*Wm9Gt3auf!2F5di}ScvYmWlU33#CS+0cXt<314TdivAGK--&_)k{l_uRu^!uH_ zIO=$oTLd%xpxrKqL9-cXZ3a4bvXwUQSZBd&;qetDYr&bHepe;s%H4Lt`&bQrZ*2$1 z&0gvn>HOqJb891JBZL$UOp;Da>nInP4=#{L?WP(3z~e?w0qeJ222rU`5QF>SDupT0 z3CSAF|3JP2lU&eLMG0bT1eX*kD9w5qQyxj$HDWiDWNyqg*=tax!;T8C{MMx`F`S9o z2V}GP^#%)PkQ;Dzml8=oNNy;b^SXxr{5I=Q!eAKx3e^ofZA=merq&2-_svE_a-2qTEfc8<5tWo+7TijnkTN<9 zRX41Zw*;fE$8(84=OyU~D6eoxtF%t&P8$g}YY7Pu=khoL6>UBA6Grqa7Cf#4Z&C`Z zBoUQJCJi!~VxAsBGv|KIm6EAhL;hC&YSx-8ZfJ0J~A zAlpgDy#y(GdacY>0;=ssL=8i^fn~~xsIqoF@bHINhD=J z^&w}wC95Z;5z#3jC;MW~Rn~-+jzSf&pxAPhz{2U&kx&LklN)%+0wV~1E5BfKry7A@ zm=LFOPqRB8G#?`&^gT=qM9h>{kwUQn-oQpT@j;k8rtOsY(@xxae8kvV!OSCsA-&?1mErGN}WM1CmgxAmGE zBRdyOzRwcJ#F~3sCQ}nHw640^aETm9%_oCcykje!fcvc92>a*>nId=VxECxYD=0Ur zD|r^jszBwRr!(7b;S{=bktSm>vM8(prUhe}%SLEHXU(cheW<5F98yM{mc&EoKel8d z9-M?wx9BC)$wX5Cwe`s&r)$#a9;L%di5)he95&L-cqu~h`@*H@^cI*%(6&3~3MG>5 z^8mdPgDchpQY_nY0Z{S4VAE5U zq2*7MKrROr2m;sP)Dy%=eeol79ha^!>zAbBN*JK5LNb>s3kkLP7|34(ggupHTD>GS zujFo0BNBMZY{`*29bM$4UbcO&!VIznp^gFMjV0j)A=-%rqpsEL6WEAZE~uuY_>6%z z?mSKy>48KN|9SFd8y;ekn-R*!5Ib~su)2xb!3YQ`PVYZYuExbK524w0v=kXjLTb4~ z1cHuh6UNKzS41O*Cg?r)0hjcc1u8loAg2NWsEPtXszC(enMVmW!Kd_Tbv?)hI|#!G z`}X1aQ-v^X%8P$NtQSVn->B0j+@un%#Pf`TXI9gAoN3Af;*4BGc?~0yZqsw;?AnQc z#mQyO5Bjlztr#5`6Qd}F-Y010u_^hQmJCbkS8fdIh4+V$SGtSJ(csxHrLr*h!e{B= z`BfpM(;QGz+(B$7>sYD=5!Z<(D`3yMiC|0@NGcEnsyA262+fbz2fzxsP{OW8L=Gl@ zP{BB-#+k-fI8Y>Xcr>mguu;}Qd#M?x(@@j;<}H@UbVJd=NjU&n)+5*DI&rWq6RV~*T!`^3NWvLA0k^KRL7O0{B@dV~ zz*C=-BrSAMsb4pC<(`CN8tE#1@zlcAJ`Y|~GIX^Z$gdwJD zDXgVLO>W%05l7@)ZqMZK05Io{1T_)MHpdH+p@S`YVjyT+)B~wxFclGkq2L4M#I6@1 zF*1|i%n|n`(YaPKRN%shq4iSaltv(UDm--=P*Vt6A-8v|7Hs!>UOYi^zPOOgwO>xC zYfZ6_Ggd6@JW}ggUipjQrVutJM^^0S5QG4$a4UNv`yH{_aPHW*k(rB}olfY0Q8*J4 zf?I_|2*JbA#>GP*O>4odRTq`sMNUk1jo3B=$Y#vr&yJp_MpyCg<+t+9%ZN$1ViHaM zRbDuZc0EqAsKx_P)`k%~)txwl9W)^ls*fRR%U}?-)7^qORPYxKuM4Sd?25e9(jp%H z2f3zyElE_{!q{xsDjKR-BNO0<)X&H3R1 zllrKttnESRP}EMb?p~~p+7}NA=&&f< zharg!wzI5oOrOlV$qiya?&ah~>W>?h#W;I6b#rd`9)HkA}kengZ-*>wO$%w5D*8Yv%beYJVkUgtfVRlg@;3h$iMLXnX(~< z?nQ&{kD5s;sqWs}@VMGl+o0UPWW*h^#l5-_iB4PJJnNiwuLyHuGJ&=UOAt;iC#_wf zSYAO&u2v@@=O>NZ8{5Pdk<%=g*r4XH6I?@OCN?{Va{m`_seiH5qm>b-zD}s&9xmQ^ z^BEYp`(|nO^ZjV>=Ik&Sa({EThi|6!p%P^B4i|3{K)VoMcE;xONXOwK-$zu@;(q;M z*=l?sutlV2&S5`@D>CkvNvC;%Ak6HhOX@a?ya~#en2G?Q7GH^P&2uDodc?KyRQEX7 zw*sUoM&|Q48=Xi3l{F+#1bRzu*GOi>@ox^J`MzUl2RKb^Tk9|h10`V%VVUVs4niF1 z6M#0F#Yvn9G^+!yU#?E=8(mo?x=rz~k(k)XT36N+jo3j=LD#TaLBf9!bj2;~ zj-eHB_eYgk6mMDf=1_6; zh>Y}_2LSY-&0%oMv4UrS403KP8-bqv#P(WnV07R(I&$Fq zRBweuLrp^02z<|E_Y{kL>Y4)7>+$R6!JR@2&?r}_4~p+2^#aGr*Ji-f2h3K~6(C#B zYEgPC`;Rq>d!1QIWiO(5sCKQ_~Ku9|1zVl87f^!r3A<_&)lCgEs^lJ8{#W^u_$5`&!3bN#9ZdZ}` z(Uuh-qJNe=(GB~_R3y$`qE~s_*<^)E?v9-xMaAdJ3dr8q>gysgE$(!`EmQTYf8Sl+ zoV6$Jg4oDq_g~eR&n=HIaEQgApg(CuE4@#pLc{5Hf`&r7U7(HNvmentGG<&Lg=WBP zyg#klJGrx7=#I^FzZtlFP4Th2prhZe!~!V#{Ua*KB>wKe7KdG7UQNX6vKx%xN*4PC z7|DoRl1rTy6^`TWioqnw-y~ygWYm#US>P44IBH7IP$B5VymQE}F`b`Gz-Z#ItSw-7 zJ|#8PnE#dnK5;xuRalR*FyvaZ@hQ)_IHCo0EF{-e*Kkl*!^(|Ux}cx7MLhy}aR|^B zU`4o?BV*`)RUMXyJ2n4e_u|;KYufdB>#y9^X8*Wmd&{jLTT$F!cInBp^O})wjV{(M zF%eL$=JNx`P~zc^0-$MRKg#cSrG!{5J!`>Tpa1FazxKgLWMpD{T)rI~?w4kOvRzRA zdshYq?Sr3EPl$Md+YWh6IlIvvCZ{ z^uYo`6r_|fksBp0h|0AjzY;7W{jO=Dld@o`309#f6>8&DWeLp|w-(fDAnUZ0aIMn9 z1C2YM-Xsq1(DIuwGfR82RlaHITPylI)A!ZX?Xf@ndGo0`xi%9dg9KgQy^ZO$+=xcL z{ND7)*}y(Heq04I*r8BP&^z&p^K5B*aM1o?|M7-DGvJKarOS)A!|lPK6&1l72G95B zAc6K7g>t~^6vh4*=u6`*Ai1&<&6nfVMa*uR_c9cLug3Z%`@_B>@wMSAmI zeZAn&>Z}$+1(K&@%YPppoHU+hhZg%8!$ zoU&6IPg&Tv9P<0|``=L&IDc0j*BU7-GQ0+xx9)TJP;=ksf<}4;`ZqTbl1c3W+W9cM z#&S>^0t|yK@)1I<2zU`%D+$kbPAhjieZQBag9fpP5U66WtQ7mu0`q^XHwKlNVzOK_ zNK}g@{b7KYK_gwX{xTW1ZTVxn(jiCXmjP68mH;~dHeh%G4>TE*52HnFr&)(sDp2M^ zWT2XOT=(=!6EDccfJoM<8Q%nKjJFu+cbpqDV_(T+t35lF7x_X~&XOiv++P@6e^KW$r8QIwn&)eF?NIDrrD{m6OMn1a17 zA`hIdKASi_Uj62T+P21bTwR~5pl_V)d6nRHb6c8^FxFk#N}3W0q+BT{M*w73J_3S9 zaogVg)y|bc*LJo3Bk4`1ZUKU?huCemN#Ccvg-gHeFI`AAbNJKhI2kI>m4$yff^G1u zIrQE*NOzWB61B=Y3b1qUpe%0k**$!lxgUZjcrFxQmg?DlSBQ1)(3Jye>(zu%)R)gJ z*9S`EUuXSC(YucgQi_V-9JZddrM6aAi!LU`TUrMMI68FKJ#hLVRnzH=%jEg^FUlog zMU4hB?~8wQC2BWbx(U19j_pEN8R~JUpMtg(wH<|Nvm_w=zUVf_iR4Gj4Uing8r`ExH5@o}!EF(?p2;CZAId z%-&Uo!e6~#msWsrq_Nk&O1LULW3z2M<_w=6lQ?Q%T#5ocfiVr|9%8mBF;61lp5keP zXe|8Gn?txK?_<37J$dseP=0H*)?GTAqnJxM01|!fhqeN!12?Ep4*H4J%0!SoXO#+w zmK`FsAh$_^epK?Bj46_EZDO*2`E;5DXQNXHz3De2LYyYzpRq0W__0O&;3deC<$nV1 z5q_GpVQ2p56qI-5E>Dz*t7hT4{V%qaa>jm2Mq35n=6weZ99A=}PvfjG&ejpf8SwB&)(3?*KEZA1hTN10*)jmH zrN(Cu$=}2A^kz7%nw&J~If|Gm5~ILBsfwhP2p4>oK=&e1HOB*}7Ag5oaq z#_Y=f0(pC^Dx5ZTv8vXm_VOMb*LlOz{Da>dC+eeq{hR9YWgexK*{Wrmtoxys1*+8{ zm>5cdZO#sy|1ojQts9(rqOV2;yavg(s({04u_Ecf(=~TJNNeF@<3w?=lqvLiqN?Pp zeYk&AxKpP}J@7Rdbz*mAaXuIY86e^>7o?DYhli!p9qyz*+juu^Laz(SxXB^@Y!xhf zFW2@wnK_oat)WXpk0+%zk{pBv?saprlj|XWz5p%%^L1Cp>gzg0;By|WbJcY(rM)!P z`{tal38JOJT&wp7m+}_dFQn2kTvY&xTF@-K0mLM>j`3^{OnI87Aoz~P7`i_5l{)P( zFIbPvj<+q?+|1*^j`StW2?ivV(FNQH%@LhcM5EH3e$7ie_uKRm!6_Ig>0&DUzl7k^ zGNl#!H6`1gT!WTQQ#gQC`iPDnetN=N|HGcct5ET~()VL+-p3Z{>a?H7bK|NpO9R)6 z+$KPpPlEjqr!xleC~s6Qm(4cF1hgh-`QbWdmAc64ErFjd160g|$o#v}&S1e{>KfWi zYVcS~PzR(^0o*}Qp>e+u&x3ve8Pdnndx!-Xl`PfGIFgDE?H}t$J}=$o{Fa%#m$PB@ z{zTt5+ZVBxH@TeiLBdUhoz<`GwU_IZ_L@Zrz}xXB@E9>q22ionfPAwcAnsc!)0uJg zPC>c}vJ>8m^nl1J?YH|J8>(yy$~#9*^;dyL;~OFznQj8=ejQr#uP*_{Tk8J3zA;st z^OkKyFC21z!CLe6<9*z8IAMn8oo^1j{MYNKeTBC71gzVAik;m9skwIVwEH48^-ost z__UOm*-L7!9o8YWLkn3bz-@_tIZxAIYXw!(8w0DTU6N-f?vIPJRZ~+?qA{2b`iITy zN6dUvP@gJ|PEvo0z*4t8umJM5ux(>vCma?=fzM)PiPEa>lH4WbPFZX8jA>hFTX>}r zCy$EGiv6#ISaILU5NGiVi0k|Bd3BHK=kTlhVKg7!oqg`>5L%1d>*5DSGTR8Cj#-}YHB8>8PAd7D{FgGt?0Qsb@0Yqr7FQ3 zigdLE?`IM937(jSXx4QX{soQ2cE(e`LJNNyWZq5Cq9F4r-&=j^4ub0+H&Wm&-Bb&! zwmd^lGAHrkQoO%kJeOlviUxO(CMMVUMriBb&8BhkE<^Ety&(C{S#|0osJ~?`cM$^i z{`$t+zlgCFrv!12&yK1GX50v!KK*2oVi2_{Z7MR>YWsr-I4bZnPmN0Qp9JM}OoBV$ z&=SRxlfYmPtzj3&9)t}0_bPOE;K%rSF?U=)!!B^0VD65GiuVht?NT$L0Gr_xxOw3u z{N}n(c0QDm4Jk}h&Bv1zDd7uZ@~*^U3Fx^c`*3iKN+outm}yGEC|>6ln}F59KTS$? ze$X$!DL8;i)v5|B*(6tSZ5Bx0(jYb@AFh=XtQzP_P=n7}DjjrOg+!-mRED!Fg;nU0 z3XPd3uFQx~Di=vE%Bd{yUXDfbc~)${B2PzN>%o6NBIzUOf8Q_n4~{E$j>5?aRc@1u z>|IPxWXekE%0u@6>% zyz1FSIs;GA^r*~c;>XtO^yJl^XX>gEWi7Kup1ICLr>8_OoeSf|gaYx>_TU+uOa1Yo?KOpu}k=JQ$*N9!MCEM1q^ zG{S!=>R*3Oe_zY@|K~aj!H18#{Y{9z^$w zg9>qZ#Zn>b4QW?vfk5=GokI9d0~FvkI-7@Tmjtge8^UB+-@;n?rkmhxM*g?LR&6> zi1{+uJQF~Y4b3u4`RTZY3*-#iPkt0X>lnT1Ff*a;eOxJK4v6PRn|lI2gdQhQkB4|U z1Myr=JuhIj+>VBaTL_@TXi%DK&xFwPb$#fax5#FF1R>|ZdTrC5j~rctJK9*hOAgC; z=ll+4i}AtAsAqOHiXujtzzOSe;xrE@+lYc0K{|m^*h$reHorlZw9;BP+1Io5_gWiR z+N{8&R&DzcLbj5rmK=Mam>Y7my31l~Fps+r$H#NGw*c>KX$PYmt*?DrZ>fg|;Ngg0RqA$4@+8FJXImB2L}~*QuCk;G#G( zqz$ZIS>nokb^qrDfFs4X62va5$LA`GmnB}V2b}Cgg!3m_G+cw9BSAcB!|rjJq2B9{ zTUj@%77+CTSQ}W$O;t-f{qSYXmVqXr;aWT$U7?^r>thu`7*jCjpXIw&FUNx|>K;#r z;b#vm`g}xF@{H_zte0jk$o%6Cn!0ulkmijCmopM_}!wCBm~Nnpot-Y{1FW?M2i1yK_xmIZJaw~|@LfykPocJ;3 z36N4oj@0Kz1t$fM0>FCdHoJr&VKhXf=X^y%{Vu5ECmgBnwqgKboIYUVW6L{4y9fWi z<#N2PLeI?b^Z--Zf64e0lfPbMTnW46IFZ7I8nq;^WEw;f%n@o12ItQ-BaFW=>j{AK zoatA5N&u%16Lf8Z^;Oc)pX1PJumKKM31Pddj*%+Y#96qmCA0d+xRU9To)s|`b0o$u zK|cO$mg|c;0w*EgXCVtO5n+3ti!0#A z;5`%Sk(jlnXs`%g!ICrd&YGokcSz3){4*L%_Ij&juWI)I%B;Kar~Ra|&y(9+FsMvw zPeK$qoeVp%WkKUtZiSL%kwZS&1p+pIiM2Z-gVzjs^YRj0HRG$aW=N42!s`nRS9^sW z?|t9rHy_{LaM`pjh^$#L?y78;$wyJ?Lgy?Y;O{(2GjMcb;vLn9OmLVX^MboXZUbu( ziC`vd<)d*ssAW}35R0U?GMODg(HT!XlEDd!5reb^DAf+%plFniCXui*W$E`&EOiuu zGcD0ME%Jq~!vm){X5YY~#@7o#Be~rzeo&2o&QLwxLD1Ucru{v3sbUOAD?qLEN-HnE zUa1p&eZMh3Jy;oq%dDDvwl6Jlw`2m-VdmK5#YT?6ZOpEbTpb1lLD!>OopY+ozYVeS zcefV{LSTnd^PmwHdO@47uri%rX>k%TS5S12QHLTAMs*7A?a6{&sa=VmrH&hF@Q}f) z3(bAL*2LMRyPQ-&n@QRR%%2T*)^*E&F+y{ZtjI~+jSg=8k)B>K`vNL$qiEF2MPlc| z(Tl+W$-cRmqi1$V%5r2)y)$?Po}p4YhU!rf11lfm5*+eDei_z8X<5YF6~2O7pEvhs zL|uO48Dzr13WkpEtn=)W z6a0)gPv-Aj3IER+FcK z0%laf9iIA?G3v1Iz?>f(^nDbMY;do=D6(=2Qwf}^AygK)l~PqjQ_1qsrovL`q4mPeVdR+5}%n(4`QjCNdy!j6)Ndkq1c{h9HQuOgQ z2i}d{H|eAtU7x~0=nuzVxi0KV0*V~k(wk;(+-rulD#Y3HBaZs>TdpbA!)H411g2By z?#Z~vfNj{P6pEfFZqCu)-S&0u2SgqsZxTx{oYpBxS3I9XKw8i^ewlf^ou&G)&I;NB zwPQ*!G&`o9c$|8<797Vi zO;Z3Btm!T&sTC&YZmhAwe%1-Ny_)@cxTYm(BzM=}gYq`&9vZee8ZYsb{L=h9yxp zQn3Q%ctu!m&hGU_WOy}|tx8Ib+I1!*B(FrGc_RHP7F1^UE}*1<-qwpPQ!k2zBly=`}ADDGI3 ziMj0uv(cRKs7jS2+s!>hxPK?Bu!7HhT-|1BAD_uaOb@5AZmR3|!;)r5;41iy8o$rk zp=HQS;V3#}iuBEo*GQ1XF%Leq&cw&%G^A!7t{zjGdQ{qEWsU}a=#5)`g}|IAz-iBI zrEu245Y2OP;aF{`B0CEk$b-wIG$fdPty#l*mC!kJ)8Ga(ut5tMd@eMxFo>U_8sId; zlX&7=z~3&z(a;#LnZhkv2=7WRk+Vmlrp9q)3_Pm8T?G)Dw(Z%55Yn) z)n)-0!-@zGWeyO|Rav~aYY6Si!H9aqS{hmE25?JqHx<%Yz*2QaP?;a!b5Kzkl$W<7 zwCeR*D%#;E{^@k+y$2P}o|;$VllL(*H$CSNpxV?>^q(RdE@~E%>v5IXs$q0OOY({N z4aV0pz9~2oM9y%#>Bb@_|qlZ)*)w^9Ku)(O7B1&oyriakLNb$$Z%RzIq( z2IWM(*V${&pIeXgCuibvD&vE_qQH`DNC#TLQI`oA{bop%*A8Tb94vJxm&RUeNgE+Y zggU6GbwBU2SFZe*2OQ~^S7vKP(OP1fsk9KTO@F7UHF<&vVYyTGN73oOpV26a26SYD zO1+GyI`m!S4Nru|FyG+gDezYrLFrIk4jlZc$(zoxD(s|kXHj}x?PR?L4`fh5ZGg~q zgG+@OMPCpnrqb_4&BZA8fa#ii+GibIY@PxWvc}{FIzH5j0?6zkwfL1Lnue2{F~21) zYFM1>%^Oi7u0T-3`CwsZKl>m#Lo9@i39ePn{A@$Jyk$%S#X=mx6->mm2&B>?=>a+; zWz&!h6T083M@30=UKD1rD?*0T91(@}%MlZDH5cRPoKmzV>hX;Y+6iH!N-@?y(uj;< zg#1oiXeBkBi1F5{vvnvFUKn#x&OSu9Dj_XOZ8`N7hm4m=2_S|8F3 zgvc6GGauphcU?|kP)p9uk@5nE8_AN}Bhu#9QSk&rg{6p&7I5S`qo&^52mjpB=bHC& zIBC)IaH<2qfn_5wfS4D4rn(y|GJI|NxfVjD-z`vadG4Eiri0m3E6@=!DVIYHdai|@ zp7nLabYAGrz##OhNCm3x?L`bP{xbCDkmld$Ep$Sf{C7rS+a?3v^m32e&mhoGslNv^ zlapeK-U_cts`3R?D+piI_RJGB84P~g;f*{f*KcJT2FGS1*$v<>l8>Z68{ZjI|ISs&@ur)<2wPPa$1J#vNQoXPxP(x9DNw$zk&# zn2ldVfJzMM1`QLjAn$CuCeG@&c;-vUs=j_t$=u9=k$;*c(FR-gOF7>nD+>LK5QNFK zl3oAY$;7MdAY+@CO>RFN`uUNTOg~sN3=x6NYs>y_u>e8>JeMc1y)`}34hvS|S$W%! z-mS6w5Y2m~`b5U9P#LY=6mkM(FXw~s zt*wUV4g6s;zRS|>+P;;G*S?MV_hPvVlh#sBG4c%q39f{(5eHpKLd=6S35$NOjgy1f z0&@@sLC-8RoBKh??wwM!q<(KF*F4mZ+erSaK3twqFaE13OKdGBvJ0No*bQf#tc)MB zv9f1%NrefF(?SEHg4goY9u&Fy`ub=6jc?7g$&0(6`-bYngIoUNvnGmo;@GP)lL-m0 z*$8U0n!gYW!?+7jzHF$J>>BYiEus88Bs_q9@YAr6aX+Y-esoveCuEQ18>Gt@E=qke zi~n+M7F2b9r1mY`wr}UwhcB(I2~n?|S_H{L;(UONTC!}uxmyo;tE)%5K~c$mC^h{h zUO;H1-?d+wgY>`y6HS;{4HK~ z{xq-cKplxwT+{_g~ zO^drL{Bi4`aE8S>S4=*WrW^azdt^nL0y8xbxa&&Xv*?nCf5pl#Zz1pDF^%e2xT^~{ z>_UxGMGj(Q$pRNxUi}itTfdT*V`^3dPRBxJpV`^BRQp@GxQH-o+1kvL{(9K6Wf5JU zr^czQE>OpzW*Yyi{81>4>#%4}PmD|8Xd7di+6lvk!?+=ORVJQ1h>LC2sTB4so{Em~ zqnNMZzw)pz+;$dBxrgfX>T{IvdLTd%QY-n>Rb$MA+vCcXR)cyNS{@Q??M=PT|JRqz z>*=f0@H^YH{~7ANpOyW?>NAcZ-&p~r5eeLmwK@nJIuf+wNiH1BDxb9!#4fxzW!=ql zG7SFBgmF?50$h&~CwFZ(Dg#l70R2Q8+9mbTng*Y+kGnC5RdWtfTtz|yqFX80yBzZE zWAO0i?7^|Mwe_wom!`{SM^eP{YmA4Ke&{ViY32^0TxnbN_>?h8jn6oud)mCv;?CZg z>q27r@pQ1RR&M8^cgxu{ z|CzUegBuWpe}Rx1`xG)C7-*>e$~70Of0a#Fd!TLJ(W^A)i<;1t)xuVN-3&odAx21j z=_NyxV8q!rZ|F9%{XH)e9P_%ndvz1+6LaOu+a=(2v(>qqjQfpb`NG+kxwI6+Aj9|D zuCVr0@uIme;X>1bTE}9t`Y0*|(0J#o+yhiGrllpH2No~3PO+PKKV4YAC=QqJ(fX?FS>%A?$*G5hlv*WuPd$)=WRrNvQYdKVcv;#)Krg zvOO+PHyMDT@YO5Gg}ZjGEwtP7I9XwvkZZ>N%a(^ZmO=vE^W;KG~>x>?jK68RT?B<<2I{yfmRGfxp9oc)>`!#m&E@ul2tR3e4TU zwukm_d)*nld<4Gt=UjL@kJ8FNyPPx$(+1$v^P{ziS-AM=Yc>G^gxhw^*;VU>Ei*QO zIq{reLQdQ{eZLp5A=Cpv1APOoEE;>T%iSmT1*>x*-77*~`WxqW-~Uw%rE`2}_<2ea zAFUA0ywt+NGWa|3C}7*mkYT8gQdXn=Fhwfa6OLb*s1m}s+Rv5upd?WH^0=`4yMk_|wx=BKt46#}>2BXfE(7^zJqk z2`Pk$-|L50MfrEtAH6Z3csGvW2FR-Cj{&;eO*%Y=Lr&qZ7?Vko$hb4% zV(sQ02uXz+G%9g9BNfUTJU+b^y|ZQUE?*yR-r1|i(_#b5GEc38<1WEt5SS|#v*1Zk znGg;OB7TYLY2t{;?`<6R(xIa<&R>w*LsOf=GN9y1R;kQKAaTv=04Fd zDciC~DzAB~>$A9ofMTX>-I@c2{;-rF^OF(ti}tm74Re7Vo#7l)cF()>n1AVFADTeK z0${LF1TP6Icc5BwCS}};k)vp@Mm}GWNTqK$>|8*qOgwA8nQ!RN?umDPt1qN$gxKwF z0sO{~IlaMP+vBrguRhG#=rMVZ-N!qSb{k?5jUBXjM(ATf1ZX_J0l&GQ2^GlibNwvR zPPjK&Hv!=I_xh0w{a*Df& zWDH}9jtS8smDMCbb=@}KMqLM=y4{aE#}~Ek&8KMG?{JRO5fW*8Pzd;TI6mSUuRr2~ z`VOu3nDP+*a#Th)Z-vNmjmPxZEVmS)8NEUuTX=c9=9nxeW`!0%f9PA#%9T`Q{xtx@F#yawh|ZcYgVv`8dl$+4KG-pG3UeGfCgQH=|HdA8kBj z_(;yWmNs=WRgtINa2S$HcsZh`ZIXeoHR&dPIomdO45GD zwME%wj9RlIz=ggObKCH(Ma7%qWbcj)<4#$RIZzJS4Ej)o*_F}lLZb>6uUgrP+Qk=r z^X1&h7QPhlVvdZ-K6`Rj$O9N+aOXH=+dM~c@BFQSY|zJ=3Wf)YrfnrW2E5lEUH?Ux zTR-GyjAxbeD=PtmV|SGbv`_B4zc~a3)fc+J3)dLyq~ECf1{hCD|4Ix6W-&hbfqkGC z8_K_p5~JlVvQVB3UmV20_-DLbw}pansrv94mN0p+LNIzoDJ48hjT;$AdZ3~4yWkTp zhpG`%Hot_E-^Gz)L$&i z4GGz4nqU`F+h?YZ_J>6>d}i~*v--HS1NAUhE0K`&9JdrYX{33>)DcN0*u zf}~f@tXI~E2I4A(4@+>%ZzrlVgUuSUGYdT`nh!Q_!<${pUZ6i(J4_oie2tHw&+qfo z>+b8;-YfP>a@x9%p1P|T>?YP-18L(PMAlp)`d&qVgiW_j>JU~qmB$aAtsf8uxl=X0 zqkbyqW>OxHocyw0vt+%6EXchSC{iFO#4wXd&$FwR#YHj z*ifD`3xYVSe($$WPDT~Ci>m^9@W2A*$CTu45Vc*@gAJ4)(s`x!X; zitfDQj>5G1%q4c)#NzitSH#fm ze-F{q`O@~DSYa2m+fF6+4jt(x1%`SEFAxxCdnZDet+H{Etik3AXEB)F+F~T9-3bLS z!;+8_Byd45#-_CpyFd>=nJ25cL_Iy${#(SEnbR2R6J>8$E=Un3CPBwL3;Z4(kKBcF z22HK-iW(@VqD}pm3&SLj3MidXRi&>zl9haMJ6Qf;lbUB+B=^6ykL3Y0`_x47sWk90 zq&*La5BF##ZaN)dx8eNcRoZV|x*Yi>kDPPwdEeJ)w(~*KI)JW7+zGS*ka2PaKgd#h z;x?@_jY+>SdYRHW_pyGk_IGvo{^(fo&3n1JQIM|Fb$0Pd(gGdHZh$U#Qqd0@`+)ha zs~{A*j{y||@{0)l;=xMa?kD=_zdM5D`=ZhQNkmwAYh{|J=Wq5+qka&iZjyCClAzxQ zx;tc>{mcIk^oe~DUUoJ>Kcd-{Q@0;>?Ol6tv zKR?1(ZKEJ(plrWGM683}^-5FEO}|4Ut%T2otnTeNwqox7g@5$%D?8<#fUFccAm6*> zMY4I}BR}17aQYc|vZ9pwojL_A*aZD~)O8 z`tH4iocR%!JhWabn0(cje0G1obm4u+i+#~Wzri6+?^$Pali~W@%!7oAFP?Z(q$&1G zi4>-BrzhvED)K{H^?-Mz@jzkKQ; zy?Rxwdy9KW#drEy$-Wj|r+Pc`$`(q%U?iNI@dF|B&O^e14SINNToeUTnLFAnGOb3-Rs`slN)*x1RiLP4<=PHgW=?#I*S&F7do5HB zMUm#QaF>a9%lu_XsDkWlhq!I_#-P2Ni1lzMAofb!|u z?jCIyZz?tXd_+&|#R3Wt#s^59`EcGq&?_0YY>g4`(T!!52VGfpeG6E7QqPaQIE}s^ zQ}NRYaKC?Qy2w&EL!A`x*+`tnX^SybzVIKM>CA;SWMXG83U8I&cW^6pJ-jfmRzgiL zo|Z?Q5Kr#2NP-o_Crppr4=8!S`C~s~sq^&5n=0jYm&WTy3oL&mQAOuc2ym+M{gmJx zOqugi)%r%18~5Rcag~A~#Ftd{7q9_;WSLR3pWB7|fwy&+d|K}BdIk`J8`Em0dlTXh zi2{Jw=3z<)Mtn9Cqw;$Or`6F@?j*9deAK9hQDuC0tAH&uQnMhhtHLaxp6=2ZKw-Ir zg+%Ezkon3-e-?@luSswdUJ=cbD9~W8DbSmSrE!AiLkXGW$Irho;kYk2Y;-I{?H-=m z7vVs+jOg5A`=c8=C1}Udi$8F*?enUMzvah>Cw%KzEmh*zE6j)PMFJ)1(up$?o~!H_ zW1i}I4)t;E9a=kHL1Fn}he0{AxrD(wC27GfYMfWeY^*L_8a(3wrn4K|Z6KW|nzuo{Tni4%>E8bG$ z6N`5@iY%4aqFIdZ8`HIN+Kuv>rg`jU90&;s7?0LALpmvwKBG?}tN9Z$)uQ2y8vdEE z=1Q$0T-0U90**^sgQu3!#%m5Y6=u*k^PVv>Ic2mU$&(7Ra2U?Y%94vC&qVlbESt-XdlH2;%x(_Fa5w9o6+hsxA?h^-lpT_d z?qi?o6et9|^M-1jKl$gW%sl|u5=5v z1%4PTrswF;ZGwMsB)Ad7!)2Ohjine2A@|?U-WsLd@Jxgp1ZEcY?=BV+-)u#tSbC1J z;@#aSuj)EZAya_xcu+%cDlGs{e|N6j9}e?wdGg|)g-eZvQGM8=GxPE8P4D*ou`l@W ze<#O1$wQ5b$%=u&&cboJW0#lE#zG}(TUHDiG~5o7ds;ukA!!E7^AdYmh@yw>`PGBr z(ctB9bq>D5Ko^}pR#>7;8&rft0SZO?e*kPAQ}r3 zALYuMeFyT{`+BSIcaLM_Ka!(p^9z+Z9RMA@b?8h$0-md(Mr*`GHHBYmqHx*n5})Fh z1y{%$kE9*clNmb_9gc=zOf>2M)*F|i#sb#!{CrrfjJ6Y_#FggEz6r-Czl8KukNa&< zxz|_zRL~23mWSlNTHHOo&dQpf5t_LqAG~C=@tWU4O8(L{B{{y(`!dSuM1$3FrJcvq zgTvwMSa&0|>kW>t2($3dWdr3z`;WZ}p|DA(16}Eyn0+ua*fjJeBI0d_sgBe?h1-sT zu{U9>R;H@df&MNn<)v+t7}=mo*@Zu#5@#?dKI8 zz?{JKhSO*^4KZp#of&AHZi~oTDX($&5)v8`>EHE-3=7mqp|n0srNLelv^CGiL}Ps6 zD(39yxnMeg`x^Q0F*2(X#SXFshOyAv#xS(78i;7p4F))Pc^#F0=TeRRQhNe7yac4q ziM;?e0Q}}(+J>#>i~Rvc{{t#Coscf0QLJbTYa-jyx*SGEEu(v@aZM}(=IG{Oba(Jz zhiyrN3OVWnp7VnM1er6X{OOrXZRYW?&?{xsA6-?RxjVpq0i!;9AV=CK`G}EUFZM9) zzbAisS*EETcLT;*MMG%e8gA9K*jrIVm<{UU&Z85OQFxl~6G{eCKJg3*qcaMabs1+82Q?^z0L9lpY)hibHJ%TE z5iCdYSXjrD+yy=>tq6UMOIng5rs;%lerUXh`@&!SpPkKDZ$|4S{T3Klr`*S-GF^nwp-e(v({sdjGnQ4khgiYZIMdVm#p)2q@dJgu}Fb~a`iI+;<-WORdo zUA9eEI5IxRx=tdvb@(}X4VIjK8K{AOlGrH67%~EEWJ1r;vJ$Kn=Sl}w4MjDI#uD${ z3#O3;y?$||RL&eZ>YXi_(%LEb~44LD1R8=fW5egx0O z@95nEK2qVwPi5z&1afQ9f1+i?r(>eG)-MX^!yz;;>9g%cM^?bGN>NQh;sx%a6Qb8k zhTI~3QzezoIn%7D_*D7QY+m0N+#8JY?GC?J2k-~IRrt9cuHpeL?(lH0UwuHd z$1DKxW|W91#u+17${0Ea!J1F+RfG2ioEn!ik|*0_)2=G9e@RG{k+p3+ZGf#lqn1+RF&2EBi2Nc#m*Z*= zX3oJYft{mrDgbws+7DpOub&zjc0YJH+ck@139di^B_jarjDm1H9*9ACwDz zaa6*V^`Zf2hGmMx^w+ejhedod{$;+m2T5CRvuw5l=v{-LGTw}>6(Vp&Rk)f>d;MSJdS_cSUM8yp zaK|vR1;V1VTxz<|0q#w#>`6b1tW>u|!e)9(#JP`3dv4*RgL7F*KYZkoy%%of@y`DJ zNBU&`zo`@4^a!w37r*^f_$lYjqq*n9F^<)n{|qDRiNPgJf1vVx~=Ld}=x^k0z1 z8x@R!gBhAGkc_$(tR1REQ^ACBneeScJW!#fHwE+hbg^Q#0|2*z-fWpwOGIb`7{C6s zHN!;Q9RD)R1z$KZ&rjQFl;_^M|5V_Nw&1+!!y;T8e+z#!K$~&8Jx8@#=$C<5hg$~n z#78_cowI^~8BtEy6rs#AU4ekQPf^6b7NiGXcJ+iI%MwPsU9DrGhXzI20l-IRbfvon z*v;~Vl}zZ3^IQQV=GK7lHxa5m5+<2$(z+JwX3c9jQ9BXM%z5QCYDFIDmf*)|7b0d#VpK4M&08PbNkL#pg>d|AvYKB+*W*lp7nd&FjJhjBV;Z%D%l7>Ys z7cnp$-Xkz3wzX)yG;W^#Khj+WUMW6Q2fzfyPZ{yFiz+=yyyJHPl;8m*Hn{W?8+>n5 zGPFDpybN~5m{2Qpm_cNlfYLV-BL8k%B_rfz8t{KXyP`txhq2@W&vum22YT)Li@*J3 z`26ob9`5OtUfv+2V}5#gJY0VAzJHYUk){iW`t5-oe|G^*=;u&9K!FZ71QPMDG<3yJ zM4{2)z?E`lxdkBMM$Vl=)*NOXY$~>xVHVOQjLvvDV40Y6WT|vmjOC`6oCx3*>(fRgKB!2IApy_x94=wjIpI%S^5->a^9o(~TxKd^xK6<4 z!fXf76I!6ez#s7*I}?X!<3I<}SB%XVQ8CI-8rQSi4k1*SG$LjI2kHP$bzeCir_(4* zdxM0=qz+)A4&X)|fZyL&J-N_s^QFF2v(Qg?WyNy2>r|bKEjFe%LdpT^(&~vSB8^y6 z03P>!R}UFI)-9}e=>W9;_v@`r!)2-35?Y{D%Rl z2OCxd6ACv&0%``lLeP3}))Zu>N;rBQeLOTrM-fl&DR*+iv0lCY+hGTub z_gclq3qAQ0-s;Wuft3B>>Rl}fcJ*GR9^QKQkKYal&tB*?W0nq5%0@!;0V;>cA@+F& zi0_J#)WPCOOtmkfGb#xK#a|0EsrnoOd;Jhr-bD_a9FY^BWnN@^+Qw1~51{=j!)A`p zY^n}8qfDoF)xfWKepJCfUo9d!fNOUE8dWqySnw%sjW%bRqMvFsI_8&q^dS*`&WrKt zM)l3V9gmP`{r0_`jnjeq95IhTqVqfO8r|=yk<<7;(i>}hmYR)8eW5No74s#B&XF4#e#^Gnz`CQl0Lp|B| zKh*gD?y;u*`eKmE#t-?Z17K6oivX1iPj>P_*XNHO4mV#!#eY|RK76Xrj#5^l_hzb! zdrv)mn8y4`0QuE`TkKp$V>yz34FR7_8~@nu)&WfOHOgZk*Oo0LZ!jQkPGoPE@s+6c z;*8Fvm~9c$XWlL6YrAv;S97^CINPNf5Mvse9h=`c%cSzs)Hxpki`+9#d`lFw!dO>*5AezvToz;<;=zr zfb(a=819tm#iCB_Qk$-9ydLXoOP~DphuZCbJUsgFq4sSU`t@%g!Nnn8YMQ|B3NW%? zse^c?y9761eB@cvdz82K1k{`O(P3Pg&udtiODAS=%~XuBRRJo|gm##;ps@CsChfLZ z%I)cZZ4;6{ubcCx&GBr>GT*GkWLhQ%LWL#FvIZ*7DaM4$)SxY^LlNajR+?4>Q!5pX zs{l<$2aqGLex=Ia+dtNucXR@mS~Fg&!L!cyRFBa>={;Wg)m2aB_yZMZ>I|+AX{2(L zM&I4V(_v4KqIz_Z7Iy&fx>YqFq#ZPV9#FYdMPyiipa)kz`Q-laKmYKdo?q81tJ=}O z(id@=(rb<(Thx8fxHWnyrOryX2sIOth~ebsVtA&n8J($-Fsk{khOT%Zz2U|O;0~e6 z=y9{%c+M}D>UTC<94EpGK~A^XNR0AvppkbH1wa$oxc7it_Yw8Q=UOnVZl%>F?U z(IA-onc3IvPQkk!&su7HkOVk{lsZ{D;s^nAO69?O5!dn~Px2k=r@B7-8yf#-!+RgU z<4sxaeE35ia%SW-rN=d;`TYUy{axuU&vVTL_P%^<`bU3Mx9T?uB}h7KkC^ap-US#* zrl54teK{H&o$V!BFV0Cz(IJOv6CPv+f{oh|N#))yf(&;ky$Kc!KoR__gIuo*tpgAr ztRXMX7L?pL#)klS$6-Dzb5PfZ!qs0=Qo=|>>mz~XitBpW#Gy}^c`I#3Vl=`bM^~4_ zgY)y@m1Y9GYRb3h)Xo(&RphFZzf7Y-(mcQwcSn`#=DvQS>+t>Icbd{e!mzVuaJ{6!Cq(R901P7W?JkoCVr=Pzw{NWGp4WE4aK=1$PHlv}2 z8-$4+Tqr6RunKh=o`BWcpAZxoy;b1eoE;Gdwk@j{VuYk2DjIeUkA&od92DX1|A-K={r^jpVt<71;T~5#%Q; zA;82b8lgBklfDXOu%!qxM>AsBfMQHPPIX2xdX(VKt*FM5nvEHAS_hEaYp*GRYi4pS z!x(96#-O{TQgd39G7_HYxN40~W6}t4ARpaV2k_ubKL>VmUq4lK=y%V(_*PNiC>{j5 z*0h`YzORL+U)7bDcK89wqld#noxqMhJGJwJzEtu2eAv-%4D4!jX1&QYpN@m?{_{1T zBi-YFsP71Vpb_okPaY2Mi;tJu&uQo=kggpbPj>Ia3(GWm8dk`l2RKzn@wN0kd8!{V zp_8D>&@-^~fWx4vCxi-YM7r}lWk)a*Mbo-~%%F)_u}sj=7M%y3SAdumUCU?J>WGgX z9uJ@W{inkh8u=f6sD>+_T&j0q-^3M}4h4bP;*p_1b+3A8*!ttyiW`;lwWdxl-qmv8 z_n-JS;ln?EHykh%kl&%>oe*!Xs@Dt)kr)Goyzh=5__*_dWS(n!+BcwjHXn@Z%qQTBq(FYl^Bh{GL89yrT_5?hxE) zea@~kdv-^9Z}*@$IYOhvyf#A#f8@(KvqRiI=6p7BSK}BXR<2){sNClLO1q&kNVIg4^DO8Cw;TEUVFwYXU-zHmQU4$sEWl;!-@=k&4)h2 z1z$DnV-=GIYp==u-hgHg^u5d~4ppJ_;GilM&l>Ri0lIal<48-4Lp`y!qfUk;C~Ns^ zZS?JPNIsnfb9Zj%aeI+7-yh&Z7c_up8u|a@>lec}-<=K@+Wgz)#Ub%vBefg)wYg^C_OrF`njOgm=Cq{{;n#*LXG%b-=90zmuIfE;YWks*Shgg)#p$n|BG>QfJW|#q8cbuNE)lyd~5MY73@F{qxh%7_{xtSBJ!`!NH-s@z=j|8$MRtqUg>Vbe}8u}{MVme4kxel@GBh@c=6LYWTg`*Ldi2U89Fy4Xsavy zDQ_ED?1#|d@*PEjThIdub_<5>JO-0Xi^(LTpllN5%Y4AtNGaupbJNT;1 zxIjY(Cy(}G_i|h{UGk|#R6pjG`WL;PAl8~x(^1LrTZn=ksImK_q|8CJ0jR#hGXXj% zW(0Hy7a9q_*VO+%|Leu@nZQfUIBves-2oNad-(CY=fj>l0gDo`-0yuGIxc#w zoDqa{*v-2jdl^AE z&Rl1gYYa4nf(7{Z#(OZSX=O2jRdiX%c(RX@IKzAXScErb6LvlMyx=pcFlIO&%m(Up&HSS+lENq`z zx#0|;Wd$+e;0F7-W0|#0?BJfgs)h2PLf3}i{U2TokJb1O^#ahz$M5Nr)OsLDtu1aF zu~`(I08>zo=oF%&D(OJwRu`aGb%AU2U@4#mD=Df#8rcNr%4ff|FwnF#9$~#F_H=lusXyN+;7$P}V<_W1R|0Be(kIHFG%Qtm8Gxnu&%eOS z$ggbD_&@pUk2LZ>9v*1T&u+g+m>iS_uSPa9zU7g!TGB%#MkNS9gLS_NNSzQH zgD>XK@}sXg%rOUXg(s$8rXjVV^QqzYn`jaK5KYr`2@K5Ekb&)bT{GUv(w?f|KrEu z-~Q!?;X7^o(Tni#5%W{uHbhuRluY8&fYzGRDe_L~rl!R#NQV11of7ti&UBC*ZbjN{ z_lG*8f_B;Ll{*i@DtrsBKGb$7-ucF z)&%?jG#a44G$hA(Jt_LAQf%Z&h~PV#ZR~0UWIn*R@Gtd5;4|&^fAz254gami|MZ75 zn=BG97vORBGAq-(3T}JMmB=JEaN|?WQi_2yMfI>E5fle~syivQY}WexhzhNoxB5Q* z{fEQjzxhzpem$k9cOjUo#BVH!6PJ`fMDnAn6lOMkqLvPf1HlVug1*ke1y?4w{e;sO8!LtP3 z@t2H+UMo1$r>=ke(~rZ~|M|o4?SDTTUjC@B-$}uNo+V%w;s#Ljm64L)>Sm=K5?>K_ zk026pMRd+MQj-NIP0_*#eW^x&p{WjU>D_z({_yzA5A;^w$HRMi5b8i5@?_S)$j>He zlmS=4X~N2P_)>~{g(4vtxkD)jsqjB(;|h&2Vt^`e!mGULT$sVdi&wkDD}7G@2eWaz zxBKJpfaSo2ew|o(pyfu${HF}gWv4K5*a22V;hU%3sslj8yqFbwdvMQK z^8v6Xdg`XA=YwLB9&t}_G}J!O_^U=b2UR?Vbm&;e@9}vlHO3pQ3HM*VKiuf?-9e+) zLO(viE2$dSG`eXd*Nnh+r+iu|9g5`nsXjIUC7yNvjc#$V)@RMjhd)^Yu=9VW$B19( zdv-tQDYb9a_@93Na=6g5{>V8{r^5ppULr_PtNi3fO0hk415$`eD%1oX*f)1ZytKD~ zok{`c+5K}Fa<1jgz8-)6KyUT&O7Hu62jWl@X*OLa%OE;SmqB!M#drxJ!&Xv+ zJDw`LM3MwXVx*UQ65@b5s>! z-)0ob9ZGdQhGXE($7$*bW^xAvZY`&`rhXS%)^UTN*m({FwPP@M!z4`jQ} zmJGCloXb&^MbgYuym=`4s!lapf51~7VcP%B?>_L$Js*Dhj=p%LxBAp^;?o^H3*hN` z;e|gtW_Am`UqV4hvPWDI(78e9v~e&&gKu?lDX3dgXqIoejS{Ocwqiw&CD-Z% zPTsjcJXH-i)=cm|%a^McS`M%=DB+Z!{#?!obqK37wbj-3iUSdEG4yIOKBsO)2hgm8 zc_aX**fEV}PVf{)LAZQIh>>JtkP58}ZbZABSmy3&V(K<0XKFdWO6$7=y82gnH5<6m za{@bRtT!5^cX-!a&z9eOa6ByDJ07m|=Gu+E~b=zb$BU&u5XlpT2X)f`%8;V}+oKXsBY}v9kwF7`~C9x&xZ|*VTdhywC()Np$r(RJDYMQrM{4(cZwWcIbDW(i!L( z!FTljfF5SK(T6J*y06S{4e+JjeMWobj|YBY>aJ{RwXpk&nZ(s_{z5MxJ$pHv>r1xR z+GD`ktVunx(C}3weftqxlu;U#|J(>#&RZ5*EU<1qjZm>E#R$1&Vk|3C_FF|LFN!}< zJ|3!p-B$;?`|p?jgxMvHpO>W+yeuMzqQy_U+zqj%VZS>Cr&EVrRWcKl#^5AHa!?8C zLL1`Irhk>A{OoQPxXKl{y{srt3i6=Pr8=$)IxsEGb~GE)Js44$%jFuKk$_!5C(<&c z4VjK>K$C7#oFo1*Uz0sAH}R6(cK|371HQ%ns&^{9q-zI|_$-VR&*TUB7KHVABtyAo zK{zSmRYq5fCj6O153;H}D;5wV9Gc`712IkoZ8=X+QLq8D)PmcET5`{C@LI`v&NuVD?q%Y4EtxLD%Rs zqVYQ~(l5>B2r|yLcPXy{ZTN^;AJMHs8YQMK+KdfhO(Rojk!nMgkC*taioV8kqqpx~ zs?q!LUKZR89&#gd@2r;2b2`C=KGBJ)RMgv&aJeYi0Yyl{U?fFsD#p!2_5i=86VPn# zM6&_D3&Fbt(NQp?NF7jS`B2_P&$M2aK{B$_*`jFLfy`~f)b`3Ngss8}R+W@NfsL+3 z9!x6NDB=zPHVe`fIb$&mlXR9aCNij=mW5Q*G_nQhl+|hHTd{TKG{&R`GUmtvWw)5w zfQwk%P$$Fp7uulsN}7SV|ZQxqy7{j)O9CPAZ&9s=@PeRQ4-BH$|z4pRbO z>tg$Lg0j(6;`Nbas10#Uo*uM^t;lMvG-g?$fA?IrXm5v4!(FpsD=~gzQ&->KwAkqA z#~Lt1%Xs|7C209KPGhKz8e=M(-bz1DJ(vr6NmVmiuI zd38Hi+@I{i*@6Ohol}}mQW0F)V03viC1$6aM}v)aLB)IMg+^eD3v@YGgGSKh#O;N< z%=303SWc&BKWZf9^+_Iyj=LlFj(mgXA{4hc{rb5{sna}$mZr7C%T~&e#_o+;T`fhY z(d@)5tK@g`kTXuc(G(Vp<(CwQ=w~r}r1LhbH|PMy0;}`{-=?85{IVl`HZp5ru~Gm$ zmr966w9F2pJIu2JROwY9Gz3K2En3{C5js|4c6KA}-B9oEou1HcG<; z$#h_SrkYj@%oeoiCpRabP?kJ( zQ2YY4x@F1I!lSIX7+RJ(DKk+E?cvM1d+c1C5kJ&Xi_?I#XJQB)eapl~#fAj4OhnDu zvIz_^YjZh+v<+*7GqK$|G(8f(b>_Bau!`-uHq2JbOsRoApqBxBg2SjZEGtKLCOzvY z2Zdoq+=yjGVq(Dxs$U|wch<6f&R6HjS#?WbSuQy>u$s|dm59;I*K}N-5@{+Ezp(<($ z$&7RYrkzTs-)myCbikr>mE_d$i@2(>U^ye_at_88-aS8K$z!SOQ$45SE|#>U$EN*R zZar?jj$b!>bK*AUwRq+#lF9I;H`P!PBVbGEym~Ca z;9Fz#HT_Y>-COyl1Wo@oz1NhB5n`D?$Bm}5%p9sC3XjEcn#h&7M!gHW92G)1DBejWS4W*TSeTPz-CI$DaGri zUtjJPGk{daHRCfGxZN)^Oxu9ox`HKR&=?hES$BA2>W`i-xW__!yoERPE$(fE(Xe_+ zeY~gJChkgmm&RX|EO&(S+ULA7Px*GCy}e`CFQ?LyX=x{X_UepoUNY+_(`SvQw~dSl9+nB3!WAaC1DF@ycr#|Y(6(ev&UE8m zYI59uMP_dsa`L#H`z{o{w&VxadoO8vm`JcKF7+Ic1{ILuBxCcv?j($h^y?v(UxGd2PxxPHz{`5)^E?P1q)Bb!&864LUHDp4J1 zRkSDVCH3*vjW;N;o_Ce}w+_d*GRwC3)NDj|Z)d|0Yu4X71Ax2^dP+1wsQ5Do&T!;9 z+}518I`=DR68uJ-_(p`R&cd6 zAKyq;&!G77&X4?$G`w)Ean}}m06$UVzl&!kj#{65vkKPuwwZxS7sw{MP2705 ziuLkil79JrrS-zmOQ4^tKd_*aeBT!{PcOY9a776-lnj-&H$Q; zJqu8!`7csxJud0Ye&1szY?JFmjP)ceZ6ckpJ~ow~^uQZ^PZbn%6FAdX0g4Ea$&?k> z={S|xUQY+BJ#^sdlS}8^GladVFfm0;lh$HM(yqZg7BNmW+SRfCX}5LS<|MSyXbxLo zHmP3-6&tgHiEOTXMiND9+h8q5&gOIkTwY#`^4FEqhz%76bkL45p@0&cu#wFr0WR@* zouf-xi6h;6t;ajgDTvC9T?u@eF!-I3vDVrFq@wlLB5gg^a<}1oJz8=QnrYsV zpKP?*B{a*7&!iJNjnZ@0gj5J2O}078w*g}*VH2e|E!jp-W^ajyhF;bw&~P9>+y4@M z2bf&~tW?x7TEn)vNWmRnf_l-@IOHA66kWX9z+`+?Sc4j~bPD0wm~SlQCr`butz?@@ z(PjUq$%7R(t&xxPIt@1CQ**?V(@)r&h)Ov1NtHB1TbW)nvSdn8YL$vt8(ve-lzrPQ zEzJPlmSNS&DB2!6ydRxa>|C=>$`z)y^8|5LVsQ_i$C{Ihh-Uz#~?$npp zjTzqr;jF)BfawQxX1_Jhk7 z!bYV1rW%Nqd70`TNf{?B1CvwO4DWdEFy^02Au7f6@j2R6uxVb$bZIQm&}2vjM+8g- zIhIx>SC5CdQ3qwCZye}sAvxCD+vtfUPlGN)8ZICmzb{(`Eow z`p=R4P)#@BtIDXx7}5*sU-*cTfPqE_RRrX;c@|jRJa+PKWw2^*i+)`?!oFbp(0D}CX+D22j87L(r0P$Yap(Y-d7`EQdedDobn!~`zP%Ij3U;RYaMJPczDFw zUd{M+rT!u+ESM~kyQ&f+K(v3)ppS3kw3xCMYIWmEue*NQ=%1WaZ&ww2*}IPZJx#@X zd6WEtu9i3o9xK72hCe0*kng*@Uq*7IJnLwt-dW1o~a;6}B~*esF4JyOC0i^_s0C5%YeY>nK-YC3O?O9UMTiu&%mEXhH!OUNZ+*Xz)ZqNVA$5Uf>9*nKiD=`?^iS%{RJH+TSP;csg&I>+o zcVlzOQ@_;Bc%?T}Y|mL&|HX4PFY6^Y9Ofkq{|3P-%_M)e1Xza{1sbJSWMc4nu}-2< zj*z!tny{SOEwUoH)T+{T?P)rRJ$P-S)zYKqQ*p2TF=N&eYh`t1EM9Bz!J67*xhlQubsNu3JjObtx308st^cAS;Er|IFZhi78cyu!7yg*JtiF;~2%n;H z(Q=)UuhD-*t(F!b(Ts4!s@xf1kyw^s$t&_pM2X?rYtXYCX8?uUXU^imp>c9}Ubxyt zaz?sLl%MLA3dK7__33rW{Pgf6-H0$o8i(piB`Lv07ueCMTE(=X#WBK==fsvn#ynR} z@elNXPPqvS+!bJra>;R`Mvqp3DWQ1eb(~$z!E0014ojLY zY65JCh3DQ>ODa%#jp0(K^5jc+b+-^(JVs{bj=)Z{CS+{B4d(xh2{XHkD-~o1HRp)GdC)}mc@Z)IIfm$_7BEX!4w-7of`V3zAfm);hZLjQK<`iLJ zZ@#9;JU@hPGsiwhJ&Jd7?;(A>r!v0k046>Q+(lt4xeLW&OT^Wpw9L|}MM1_G0CV>o*){I?kyU?2U8vaQ#=QcI&Efp1^*eFF z;HQT{i{JKb?=S~6d7AI9HYvJ-{AahPd zl{jDW997oz2-yH?Id-4axdXTl`!lp2S&xy=U>2k@vdJv+dZyJ7C283S3cilIx}P}N zF?xs+le^~_d5T$FGcPoZ&R3a%o!TZ!cF;y6Xml~q#qSN8w@yL8#X^+H0hyY@2GR-P z3&&EYJXa@F(KZo?x->TqPO+voEzTXOTZ|mT_39lVKPGy2WBhKoy}3y^6>=yo4j_Jh z+-U>H-66k7%yD}_Is^cw0{DUQQNG2EIG6&z>yz14kaAWaQk~0y+1`xoanHBcrffAF)Pp!oY1|G z4si?z)VDY)2PHh!A!ikGGQbm1rPNn+4`CCW#C<_z3CHjt>XGWfkx|STLGM&#rcTFr z?f|-s|6`&XY9^Y$8D%wQIRQJ;NJd@T@eJdqugMGpHqSVHH##5bYMSyHBcJ3D=fCAs zm2X)Ft7uPSwX!Jm-mNu!hp}V$=QqRY$IIdD^m4emykexk4x`_r-eQ6eQ%7=nCI5`?_kCg2J6*PMa;9mzFdV88T2!Oxu zu<8J;fT)el1+O}?+QLQ(AW28tMK?2hV9rdv2MdrOm7PeZm_{18Z77HwVeJT2?P+u( zM=z0M=Abo;90wgMMmh7OVAQgMdC=K%T1*Edt_h^TBo#YIjBE)|MX2jKRNLm)5UNgd zmL4S@ZZP`G%j@Ct>Sj1&)IU2Teum*Q`o~C5o$XUUR`o3m_8SvwJz!BwQMs-EWkts_ zXitl_Zka*s!*B0`WrMsQ9}PE;4~N@FM=?9NJHVAh1yWB=L5c@5v*xM>*Vl4EgKSJ} zs&Ns%Vtc?^?%8eCdy+TB*6TKN05YkvtVeIqD$7pDTRH8Vsi-Q<=ZUQfO3~TwF^=S@ z5MVnNg&cdYqlNMvc_PBBwB-wp^(pBFvg1aJfGX#j3fp^w%uM=RAQ8oa@ zp67Yah`%;-f%|}@>_!#uqbu2sz+_C*DR+$gq^~Y-hVzf-!-tO-!~2V?;p~z%KU4fe zD&`Qn1Dt0Vx}!AsPVsZCuS3X@J{|_LBGrs*h$X6fiT#+Shs%cpjDMdQ#_-{MxMoIh z_566aeR>j(;Euh5TW1S88J$M(kgaV&AgjfKx1iOa4ozTXE|LZQ-0PBU3@R|4#HY4n ze=C7ejx1k+>N;}(1-$QC0;9s4R#9O^2+Yc?&_x?)6;inOT@{z3XosnFt^{N#W|7sp zOEz$$iE;#L%XPjx%>QChYu(RIWT*WAM8vqd9uwsq6N8SMiKXAQir>BGMJJPTo zb(88g=C3Nm0mxvJMMJ`Sp=u&5&V^Ig!IpGCwY!BzI%5zy!&u5oSw7Rr@r)qQ5E3tV~mIH3j{1&ZPa~E*OO-sb4s(VI6|g! z6-rY$%_1BKcdd^;`?oj4!6kf|6&$j}xIViWuAZF?*H3T+$1D?adIAk?jZQgZ^NvIE zlwWKXc9m?O$sXeMz96H|3ri`cM_93M`gUqlL)*gx96+)1%27sF;F2?HRe)4aR9{aYy0qz z^(mb!I!??#frriO2;7vSn(1hJCvX76qAY_`Jv$z}qK+&IYF7sfSSyq8-NVDM zN4^gv>(Miw=U5?y7o;vJ+eb$Hmv25|{O7}kqrP=VJs*K{$Tb}&g+%u;>q&8)v2L779--zhWpcod`kOq&~m_bX?a(*9h;??o*`4oyG6rJHwqNAY2hT zF|$t@9DR-E;m&kUG~HRg3HJB20>FK`kb@|64io$3fgi4qvDk(dc{YC zpCM8*y~gf5T3lV>2=5$AG++l9_km6ThkkN;Jv_qxk8nosNS}T4Xt=g5 zP(nQ0uF7L1n;_34Ts`j%Vi!fy-%Ii{B7A}a=nM3fG_{_-R9#iwuTfPIX4{qMhaB0- z9G$M%ocf62zyEkToVq*BI`WQV#_?D3Lsb+a?J&QgH`+oiG)g4uC6Yv80GP zG>_n&nSGpqw;go^du#`&$RWo8`w>Spw)oOs&>lJg8#p#;sZgC&Iv8|m4UwGXzDuxo zm1eu(|GYSp15n4UB@=-|91oLSh^ZLq*6+KVDSEGnQGsHFE(Nj%n)tngS5h}lsTtmUs4wVt>^CkFt)icXCx z(m0MuBZg0ql!S|OU;N^2Cn$kUl$Xk0aLD9ledcuFH9lVGThXEHw5HA(<=?+Q8{WJ- zrPE$Af;lqqCn8rnr5(uWz7L}~HuOz6LC8@sootW8&L6%2kkd;$)&YA6d)y8ixJ`A$ zvVtvY9Kn;^l!EJRlbJoY6Qimd!j`NJ6kEWXt8^q1#VW8KG~}2SalN9juRmN4FIe+` zWY%N9I%41B2nUeseMkR^W*>O0{hQH?6Egys?s4c?Y$DsK`e--+J3sYo-Rf+8dQj)- zakuXtjTw0aK6>hkuaSKr4%ZVL#WBY|PXF#LypVPJjAsWzmn^EY01H~}o6xZsFh@$9NIAvW`&eVYlO&eJYgVj?JL&qbgDa^C;!MA|JAFH!<)CK!`Zph zRhpaOK5t`LCrK}Dq~MuQnWq5L;u!);!fQ=uL$C-e3+#~lcigMS2^@UL>nXF3i*HYc z8}3!>H10Hjn1-TDiU@|;sY;RpLJARe$}o1kG2J3u3TJ{$F*|vMQDy*20rL4b6(g?o zL@ErF8ognL^XC1<@K;9u_l*4VICkXM_%SMPh*+nwX96FMI!1e@1Ku@p@8wWj9PK{q zggpR+KzqO7-W}jS@VKN;w6h{t8#nm)u+I?e1>qJgxQBo5=MP885r3|5@0(x+X!`wzQb+NdoM~Z znIfBx$D~bUDq>Nz$ei#)>o^6<>=X_lnI%CKD2vr0iqVVjvK|^OHla`@mQ2=Zn=m`n z(g~Q3&MHc<6i_^AEaKT;YUIuiWrw6|&`~djA77shuQ7ffN43$SQ_>Ng3fj5t z^^yntk(<*ouIktRQiIG7j{||aW@jLm;l|N8fAKm106+jqL_t*Qkdf<{5$Krs2ks`E ze#=_)G54z(HDd(S32<0EPhN9GGa_*6kPS;})XuFfI*3bO0_5_MLY7^d9k}MpF*J4OIF2XW`@S z30KE+pU2q4p=#)NOr(4O=#JUdfCFF+5VL|iob0U!mB_>(3^E#OAB_&cC+`u_5k=)UNTWrrL(ncjrZ zaHk%kJ`?h62GDSSm6u8FN%@tE-J-cvK7Q)XGJP&Oo}=tXoOdrxQPgo8dzd4TwV%|e{ z^W@QRgJGokaR#qr+c8$k&mSz8Q*{lP${Ief(fK1wsJGl_ceFh$<0n5xdhw}WAJvVA zdxDG&K^+8}ZwEZXf551J#GR63NB@`sfPZ*|vmi~K`DCDVctbtk;5eNE>^b5)!XIJe z-kv>R&mm?2)E&ls$GyE<4E>s8@5)Bdn}W|JJTg0j8p0#^oIt2U){T{rm1&%%;j zUasI4+#s1Wro*6RMeGcNbF_NNl=YO`LCp7}gT}2OAdVk`3ojJ`fX#9M_`eAK?U!(c=Jp93F2lpo{%u^2I48@K)xSCcX$}8|s>=&F5k# zhHO`Z&?Pr?2AsR}=*jK3SM2n^`N(q;Iy8+RBZ}!f)9PAo#lt~51Yz_(jX!1yY=9ne zd-RZJ_H_V<$2tQXF?>XfCkdgu!6>sXXfN0NO!@a&It|p@-8FYw_L;#swa^iGIOP}S zYyi)H<81&uh_e%C12;MlO2BKSUL9l3;8EbWGlbKs6TH`VUB zNYkk{#*>%CnOn7KO5=AlN9Ex?`zCJug(Jn>ofUYyBDdBo_i@$WOjQ{JP!;RGXl zgz+DR1HkZE`sf4>K{y1a1MqQO4gVHrq36($X|cFF6BTFW;mm1Brtg;+KaTv6yEg}z zHN)?I%m#1*=nnb=GC2NxC)*(8M^QL=4SmRIb`n`zRQf~*pa8ih`!1UO1c0zmaKx%eK}kO#Naf*Z z*u+i(ichN3;JutS?Y9x>Jm-uYj#fXuKOH{M$Z7nHTJ|pvC!6_~jAM*|ou<{pOYC%2 zfmA~2y#|p&_xOvU#1*WLr_~jC_#p;x4@R2GVQ(3m-V)cG8T~`gF;a>wKMoGXiG@+zQ3`A3b99 z=at=)BSw9l0Gpo&lyx5maDdSr_+SppfE$+r&|HNx;F$?G8&Nja{jA-2rWotRX)<%T zJHtU-Qdb^vpV4P9XgQ|-QP=Dfgvqn?iXq+2m6%N24Oe@I!v!-0v)F+do;wq`I$-I* zegN{_FPgP~Us2VLU9Hnpf$zB-XP5m&qN?D)l7?>!Qog2(UD5m~uQ-_u`2##dv{(kp$y zIIb}`3+BiJS)+=Ji7yhW45hV9#|=m0A*Iz14po9AmU67`xMc9l#;S9u8m+m`_gLF+=bXY8}BHPT~fKh>3D9pSEQB ze#@rm4X+R1umrgEI{@Gf)R~)#t~<&&@=EEVfb;@%HDUeV!t0Jh-dF0113saSA2U$6 z95{vVB?WSmGY5yLgsC4^r3J^#t9nWqU543xKu|Y~=~hq)gI+CIpc(O{dLxa+Y0=Eq2BjjOd6M3a;ugotyV& zhnovVCPqU?qIf-4mmytam5du(E+aTW4?e5e7_#CKF+ryo>QSG*)pyGJ+ojAghVBTj z1BkJORk4?6m(FqdxYEk$XMy8hZdVhD#q0-{)sZaEGHfIB7!C} zoM7M{holGI+rN8?;d2b$4h4n{A~#2TALIce9L}{id5d#|?7}$Hc<I?^oZ;)!gNLzE;8N^*ctXxImKh&Gy@Wp(>YxUjWlimvwnEoc z^p50nv}~O`XO65rdf1$1N_~O@i0VT^nnjgkCJf*-IxQ8MVNRM53tsY-UIqe2^olh3 zGse+ky$BfdCFnq7| zaFDnA+y`(;;B4TK>mG0C?fZE2Q`Y-9hf4~3Lz~^;Z2V%-wYU8cxX*}uz`gu^ZWH=} zk873|SG;EF`x@R3yglO0KODdvcM10S*uY*Gw&qKHQ>O=bV`pD?@oFac7=J!oqniVV zfkBG8{k0=wLo?sd8Wu$Rm(s*y#DSl@sqQz{y9I5EE zkk7@DYJlwgDb-4hKWll^q>pE3h{~>(P&Io9M{HmM57yCZ&;veU{5kXc1F}N#kiN&)7;vGX%m#D>hrA?p$a@h0*p=ry9`AS` z;~h)3_m}Z__PHC4uHUK0*!1IBiM{8KhkdS0E4X#X#Q%mXPU+F*(Qty}Jmmgr%mi=% zw)TEhEc1jY4~jDT()fL-$iub1hVCXKnhZ~&dWyq%&v8z{;&C^lPkPn6=jay7d~l2UGo6nbZgvM#$a zO}N2nmJHDgTsy6Q*@5%uH)UO#FEloZL?9$A@#i%mwFh~P zQSjkZ*rA6^nqIlF=D3+K;h~Q-dH|Gg*V&3-d>fv#6!?b6RnO?WXXtERYzB$~t#UaB ze=pS;BmSUMaM?_eqQVLJp`9~|putQAuOrg|w1c>N0^?D}->%I12W|!oPr!NPo&c{& z?*nv+_U`4`@Z+D~46k1BSn*qyZQN>fIpi$>$n%?jyvBR`PtS(^fB9xO{Dp5X|aKMvRdrY79s6VIpKH|I2EkgSOV*`gz6|xsV+)deQ^uET^o&bA9 znV*t>f&;h$Kl+S~)Y^J;WqsY8^fxNe6p5yz&ju)AEvG3mPYJ{URD-W(HmaR2<$&zy zn}Rsz=hR88^)j;n3odqYLVq4HMxi}FjbCBu$*&nfV=4*2PeG|ejQz5j3;;9q-#yAo*@&iVw$8^?jSd+fHI~>kf z=h{*A-sZ=MByMU1l#b206^B^UbpeZvcB*1n+6)CL+NPVC7{fKkIkGR6$p)Ib9EIUi zL<-<;e~kVZ%puEyc*{1f#&Zd90x2tfjEwTZ;2DO01kO2o3a?+jAHMs;>*0GGz$tHL z-eCCgsc;JJhF%mEnmZof=1H#M_@@uU&HwzT;rM_2Zut203AYTHDKR4$4!Q5gQsEfg zbWFN_Y7`huNZTGx`*o;yI0hC1I5do(vfbhUe0tQ^mY*Q<39$262IRmpR`;UHOj>&$ z73`vgCam&%SmEw^?fEZhimy2FKu~rnQ|*v~w(wHHtR>T8R5-u(Yp-vW#YaYcH{EM2 z1H%hxi5!8{Mq(P+P;|!ZGN!|B%?#SErUJQ9K<`d-gz$*PDO?Ra9CaFPbjH>PL9>0v zqe%@a`LK)S11gR}k2&O;i-#tw45G141wQR8i(;c3%Psq6E0JmbrPE<_;n};$6fa(! zLf^o(d>%N0xPss&`hiXWI6i=x4G-Qp%7%l(5wPCz>AlxHn*E1=|7rN{ySKcW&BHz5 zaR-ofyvjhRVG@n?J9`5AEDHu+=^ajS@=Qz4{s&X}N4!);TU|3!tK)$*wp~ziX~D9& zuj0pDESDifkbop+2!1LoW+~|L9-vPX%L=jux2f)eQJoZ9%nR18Te23IpO_rw8d2Ij zgaZ&6EtOv0VKk1TSbLI5)V~iWCs!km$5E;b;Dre9#PXGk%L3vaZ1^#gS8k_ zS>PH?$n!ct`?zNXjlcWD|r=yMJ2cvitziwlGe07&MCSx zDs|8js!ro>Mx=EJi-SVyBzz&rUHteED8w4qBP#xmJ(`!VuZI8lJ!dGVvl4)lTS_ZJcVB(I~1|8IO)yME6`vMyV0#Es>hQaVpEmE$Qg) zU7m6$J{8OHQKK^E2yjXxUxd*+rPlCrWS?Z44pVBfQ~5TWzPY4)g`8C3~^ zm&nyN34%Y7+$B$0-tAD&96cw8&@@4R_0R!eC=lxaT#KF(F9*QDnre*|qqKr??dmIY zB6~b7VWJD0!8;yKnSJ8VWeC-pcod?XfC8hOT;p4RFseHp`p5Vt0tSSA#&-c+3iw9k zdtQY4ufLuR-+lisJ{o$!G~vMYyKPm#Z4iwUaHaZu-nAin2gvZH!WN8>|nWR2FwmFEl2k7l;fFx&UD%51F~E( zo1x+?XA(fu2YGA?eO~aGsCtfKsX3D?~q8DrB%bYz*m{^yaXAy@QIgu z;CXa?HJp58q}D08v(K|0*WAay;)qv;nGxs|EK=;RG(!nTn+1Wh5uH3x^`{`}c>>Kb zZLBl9#i?Zbh#rKEj!SB35FwWDf z!W&QC=JW#!5XjQopI_qDZ5T?<=s8c)&9sSBLEGGyGriL}fSttY6zz zwvHz@$eQ5#=1|G!op;~MTt_Oq%A92R)Nz_HnP!pX+(Xoyn3xv9`P%) zc1VxVgN_>4$mK+W4wE3Sb_$KqzZ|`tIL63M+PKs4_-q)6rtL%r^cpvrVw8taW0yV; zbwUz&@!|||CmVqy4{sTEX;SqJ( zoYH9Q4@F$J}s8&>a%-b7LnM{Sgk}oHqh}ZeY(DfYX-H0f)i*#m5Pp$Ow!o^VFP`&Lr-x zP{!EHKnL5!w}~TIsL(BwvW_!PF+rw#g&(Of(IX+R;Vl-hotd~8o{L36q8E^ zmnKm{lI!vd@9SJG*Dhg42LP+^cwAeji%K*Ze-YtCu&hWoKZ?z1Ql@1F;+oThxRRM> zDS{nsG||R8Bu#Rf;L=gmxm8V{f(}cHLmanxLCQ|s_%^+xxWPw}O1JUt3?7zEn12{2 zX`Mlg_~0duPC!G|3D}Q{RyrL?Qj?W*k(O3H8_&@JNDG{f9dcwSz>XNkg3_(-VyOc- z+6k0`cae;Cd6KG)AKGP4K7( z2q8J}EKn#I%8g1i2Ozs-DcjXxo?)IR<7nH;UZBje7nvrv2B?EUGA|KUZpDjSJ<^;e z4XaV@95Iy*WGL|jHnM#;HjyZR4#18S(^vRAjjs+c!p*M(+A!)!r|HBL9z6ml_-p8i!6oSJL>xyp{`bm5*gaH+58h>z#fWFfOf5jCEm5j*%&I0jfHz z%0*;Uf1>GttWo6v;XgL!*r1EAjPVLcd>8v$VI7cMd$REnP-<)-#@WIh)AN)+z~uiVo{^l@^J{ zi4F}ft_ihM5r@V;B8TV%#7&Pl5jU?HY~=@^h6~$r5NY5Vd>#Qe9|`6~cMV#2+VS}F zez&rfYiIN>!68#`KVRj@7Ei9BtHu&@t(Zo){$i`Llvm}U|j|# zEQDqot6Y3Vi3R?ZF9h-MN086}4hHrKCw?BSB#j*zzywEGIXUusL|f1f{F8tS4$N6V zAj_tOU`af#fox3aEhjS?_Se5C*<&>{eaP*W0P9hcc%CP@<)cdYGjGw&%$t)0n*^=N zNFj@J2v{kBvZt`hs~}zrS6$=Fvph~_hjNM;c{VUD9EJx$7(W^IKb?Wo_na*>V+SYh zYm*-a?Nwa)d!;VQ&?_x3H>T=)__5Ik&^5j|aUjPLK8zhM8hp+aG!F2<_vtw;!;P#P z*3FKhtrTM)8`JPzAK=l4N>Z+h_OU=U5Bb^F6LEYnwRtM*Hy*M7RZ>4rg*A zn$jgt;p!B6HHh`%5vqz7@)I`_ozk5H5cBUNL<2|TSPK{rM|_uF2cW^n`Ve!mVXX{1 z2>8`V(HUZNZ3bv(03}9-a13+`I-Fz)lZB3?IRI)rHw4ol!oeVHat_jxhF;wQPG=0K zpgJ72FA+`w#4tFfpWNnV)Z|-r8ck4CHz4^l1#2}%MLd<8eSX2{0O#ZerT6&la2~p- z+z4wUKXs?pqG+U7Oaaarsr``@*X>W(WqZbBf!7>ygb%A2HEhR`tEH07%n7I#=H)^$Ey4vxEc|1UK z$a~{A-U$c?kOmyI_JnX4S=P`_1LI%g_0J9#h8hk)W7UK;!R$ajFK#>zM>FKss2&{( z#Wd#N5wsn?bmZ$mbV^o6EDewq4+(K{rgF{5e@3tO`JlaD?3!UhP;ODOpk;d>n;vp^MYV-kIe-MT5ROH!2uNOERIGLQw+J|j*9P-%2Up&lAz#KP>LIsv~uf5|)NTDISk$4&_nrqpC6u^BMtVops5ElX`&Kfpg zCh0!RQ+-aNnlIHDQUt(+PV|}Kj<&U8wlc$rP&R(`SZ|Uq&?f>o`p+p{H&H%Uid4!mk ziQ?M<7f9uOesuKr81s>2+62X7IR>dNJlcR$8GgLQsPTKS$$1n{6tbK^M?VU3#u1W3 z_?o(k+{i>i(=lT9MIjFNOGkeU?7d&Vl@7v?rBHY*gCO~> z3xVF#h}frtXriu896UK$u46`9pNseB)%;j#I!H38=kzX=3fJ9{GCETV4yk z(veWf@zo(3D5v?>X>+)(?rejaJ)|?G-2uk*pR3;x@Y7`u2p7ou*p@9;xoYGGh)R(%d%jbmA0R$76d5bK=sCi2kyk#%27T9y7T~Z?hB4d0F;i$$o zylMs;1p}g!9n-N+I5e6o9Ka1d*3M*}KOI%UscXuIe_Ce)nD)OZ&~%J-yKp*Fbd11( zZ(z0&v609(MjtrFXb&Ka7~EI_Q1=>_hn?0BZ1{~#A8qwhW`5Gl8GtHg!>1CSOT_ld z12IBVzLH*p$;4%erqdBAMp5d_clnRF#@CiH63NB!hcH7Mzg|j+FYYkoa?{TbZis~) zQAQm>>TNsl8UHZaBNBeT>zL2BKV@_9?3@_}%eMG1sGGPxdq8C)I-VT#R^J8R1UTg# zg7-Lq3r6Ue;^P7QDe_o?H96&Y)43u~nQ?#ze*6X@jwU`>g5y1DO91WI*U9!M7 z(#8Aa;M>tvrVMSI>Wh_G#N-YRy&)ZdlB4<0N$!Wh1AUdIxl8aCMIQlyR zxdwIY{J_Zin)R(6Tr@kgxW-dL0A{CP2Sk~DSf(v%1g@!lk8M0DLK?{W%R?UIIbr10 zsa~*Ycgu0D!BDuUI;Q%T!_m=)e6((zZA`J)9E{PE0&C1MeMO4KDj$Cs#hJtbn|X)4 zE8u3}t>5~?8~T+W`T4o7i!grVvx#_tWnLk(M(>>3PYyNex#}8zexfXYwu~794d54w z>xiE#qacrvd3eNK1su{xHUPc5;NC^HH3~<)QO2%9yJ*y9l+$|f&&&>?svT$q(_MCh zu3id9o}U}$4gh|kDCZKQO2!l3DG2U_^FTF-oe){G)-*60PX{t{rl zrSSNE0w8-!Vr895BZg4l@wWkV2ni?8&JV%?0^NvGcV3hmUh}%_8%DTmjR*uCQ_zuY zS_EG*=Rsj2d`f^;@(d|Aru3EpV>{suyC+vi!zsV!bB1wh`0fWBxz1O|pw9YqjSw$m z+2$Os-S04Vzs3^}X=(f%zTU5ai+02G{>~+Z8wB2eV+M4~4}V^fe-22)ydqzj26yfK zN%zEM?OPR{ep3>D-R8`B5K5ks#6ar;Rj+*dg6(h$(5r z)9_tudVA4P)KSP=Tiz=B@!i$%J-=hb1S2X??l6~g|$HPq%myD&)o5x zXbqW-Kfj%?qdK~}8XljW4<}DghO=kA-3Oiw8+0@IS}nb z-1^m__^w5`4iTh-gG&c*+lq6`2z=|O-I#rZgBFeKxa;EXDQ)LZd+PvDrPX)NrearL zW9M*c?+=n5$H7{kbRO&*uyN>b7ijz^d}f@lo-^~}xdJ~+PMIAf{L9Ki0dzDq20?_v zm?}HrpK@+2=W?3RR#l(EHfSaX&{(W1%qMgI%7jxTuMrfMLG{})>?m}nBSwqo+#fz? zv*_ZRtKmIAJaNe`b3F0KXyRs@qf)+%19$%Igz@GYo!$-`f7E(4eJu^Dq3sTt=b5e& zY_iM5RJR#Jj3QzLvPOZsz_>L2_;j|j6FTx+UTOWqPp88l`9iMu|3S)52;Wvj)to{l zDs!GY;q4H!luh&06B;4fqz-JKY4;-*#!q0c!c5mVo3GI=;EUqQ zMt@TE$Mp z;fR0-KfJmap1*sK6L>US^5YYyj9ee-6n<{ncgP)GV-v~F1C5(n@o`CN$~Lz<=Bz+n z?63+25xD)+R34<^(TA8}M2C(VOIrXTpPpl?3c5d(@q`X}$klh`|M>dD@EHsGFp#G&E@UO#=rclmLs z7@s5bHHN;A0~mNG-~B)7d}`45|C1-&NXJ7%AP5WomJ7OgF$kbeC7vS?-c;21qk-Tn ztek*L2-^*>gKU>jZtz)kj{0Tr7=IW#vjB~seFf7R|6{&S_K2C`$s=Yu%)VZpUkoq& zT>@qR%79JisrZoF^x1w%XOxs;LcAet&e=dPf{W6+6Nq;F8;x2kg#%yB4LHY){GFev z1v_ANAMP`soeux>)0^SOeE@!p^4#B_!?^a?Y4=xU4AC7OT^I$N)*3WB|6A&D(M|jU7H>=^?c+v?J=$wFHeVm|I_>7r#Jja zD00g&*|B5E0>GLo*!V!@6V81uQAed)yevMgx2%%(Q(AXAz=JZF#g9+abgS#Z>aYdZ<#4F_42b~ z?i;wd7_8v#K>hQVZ^JNsH2Bs3{g30A>Pq$S9>lvQB_Q z1Ekx=v@`l{aC8Go@18~+Z-_Fn=kvGk zhmRQl#k0paRc2Rs2`BXjte^1#t*qX9r7ks8ZfEWZkG^08XMn}WegV9xrkH6t`wHiP z9AO3qbSpe))i2sM8Uf?P@Y4Z+!jwOs=EKmrl^8!oj^R7Kf5c)xevmX~0F3(dgD3nr z!Lw)lOc_q#?EH543l9~&czsU&D-LHDVo^?+Q896fG}^>}Wu{&&tF@YxJw@ey$!p4O z&a?z_wcXNn3G^_y5#2&42Hdr2hApaAR-qP?pXu6*kAgKo^d)qt{IEW)b8bIpq(Xza?BCg|*` z#2MCw>rcEobI|z1oya0aE3Y&JYIxt@QR}BSr^EmH{mbDG-@W3l#dWM<U zII2#Zh{!)ei$vZWlqoYtAgGvD)FMhd4OS|*6V8A|Y=Q1LEFh?>6`u@qI@6qnhI50Q~*I`W-@lg(&Xx$G!j~KY7pC6M9TvaOUyi&4=N? ze)t$aBpaUqhqrAL<+uJkOc?5FJm3YGS9I=S0Be0w^i82>zX|6)xIE?>tWt~)U^Qzq zqS+U z$-Z@@K4H7QAj1)(paw#R^_Oz#k8z*;_3N|Y|M~Zq!~go%m&5yy{OARI-NBA0)?`j) zsK5U?dPY>KtHFv3g}Uo1*2JK2!I5-bh&B(twmk&s?a1s4JWhzb?y;rrGX(O8ien>C7CB;bGmpBs)no7wk?#lCrcMlWq;ZXsD;!74Sz6tx zjwsgq(EAl(M}D2n0hM~>`kvAL(Fr4dH~=^OatUw@o)$Svi#LUHjI|UA0SRAIdD8|aI8lFrz4NJ)u$4x<*kF!oik=ek zqRxY|SB}25mD{$=(x~Sre!=1C};Oei+9VO(9(7|4#Yk$UP(XQk>(lzV<2St18BmM9GHBhqCqrFnK#M>-$5DxH2~en?d|k@;WJdQBmZ-6S0>;ED zeP(&KQmC4+Ca%))ZvElMkHh0X|Ae9P?D@?<41520GVHMntj*d18K^LN*X|lRoeSp> z1|Qt)z?L@~&7$a3Pemd5Xx0~pQz9ak74qj5YhJRpbb@lY|@b+JRH(X&@OaQ`= z;;~>x*dw0%jn{~MvX0twrsS^Sol63Y&?Q>T0I2)%g&`dPZQux8Ww2h-xu#Rm0r*=2 zhZz5XhOPs^=wrR_Qh>O>Q^*}h@|k(zpdPUi{FL_%ybXAY@&EBJ?}k78@ih+k9NysS z+$^0!r;DZj#9-}J2|kg<7bIJm0a(5Mjg34LwjMe|`MDFFO7m*X7Asg>G0a)XpuM5f zxa)k(F82O+{DvS?+3U;S4R`wZb{#qVRSs-??X6uSJWgw-L3KOyD7-6g1xKB0r)s@Y^>r~@-0KsF%v)_I%xck z&@pQu5e|Uq+aZoM9_z&c#Hg>+!2$SoU;H*<7(Yt^?*2UCr^p}S>@Ro$=}$ktAO4Nm z;191)5l!2IZ@FxbSs)pM#|(H+BKTCjPW5*W)tDW1Jf^0I@YJqi+juADM2)|#gk;gl z3b6JHmL-?ZLXPV-!?uc95x)XR9^1~Lr*axns8NYgDGgl}$Be+%_;c4iyLoIN(P4a` z<$zGj8NhvC0J;kV~m7jk=OpHanMhtc?bgUxpcya^S~AZ7&`yZK&2 zc%+Z;8u7$g*n|1>Scc7OMn8Y`_RU{k4=;ZI!|)@&hj-2cCzj03vpC>qg+?hj**?~< z?B^u|U|0*hH!BeqXJu>;S(k~II{F)Xs&Me(a(Mpz>*0 z=ed4vzwsFMEq7#&c;?^V_dC1>AE$88W&pl<;|81si`TZ@Y-pV{+^$9y4nSw>EC5H0 z(R$mj9DvjO_=O>4I_f(+@Q%O}M}8c@F}DIQeb|TJ75vx#dO7?VC*b!M4&uQioRMu1 z^PDzxppF`)TS(ouc6x9>CEQ#8+YIdi0!Ih1t@BL$RO?>VCiD$4okeo7<5-D1gfNE0 zo>7pPrD3&9Pu!6j9jHl-;-CW^*QsSZjmO5|@egl@1DnnPlwc&bmoOVVnrL&4Mj9zvsQN^-8r?RI>n%iPkDTP>s<8@<3!^nKuj2Z#5CS3-E zYGjs*hwQC9|I4e`yYO?`AOHCoZ(*|cf+M)V>E6X-y*^HS!7~_)&fb3IF2FwT7VP5y z_Hhn60NW%s(71Z{1bYt|&bnM)*)437`05YSs`#KsO!F~#oR4q$#fBh`=ZIUZ-ur*V z?Y<{&3W9&hL^eRDZ{e0jlfHk`8Icg~FCiYLvK868f3IFATbp-~7+@0Mq~YH6JU-cHs#AM1A%kW?~wq8aVog z@#_Gb4N&hIK8|Id8G%0to{a3!l1t%p}>C#r(v^&z-($~niWKU;SM7{?Vu40Cbn z&eZyVU+aC!OG8fcPk3?Y;(z{bxaDD?JvQXrWTo<0=ko&56|*ahUI*YqLa_$d2{3cg zxjGYw85(@U*$N8>tg$jxN2vUKmLoP8V<~_!JL)s#kDY$wwDpZ255WPyV7>pBKfWAZ z{Po>%&a2iZN8AAl<99x&=hnewjl~y$EoYW8Vh=t=1##M9{GzODqfN4=b|?%ugq%um zzfKNdJKoQqyS5N(fuE(@SlQJm0z4R1?pRAk1v6aTF(bHrN5%`_Ods#q-S#QMOFE1l zFYiCQp@@#|4}<~GmziSvocyIIP#~;py8=S!KyQl1}_@C%!w)-Df1LUs@pPU@WvmIHMRv_!43Ku2ZaC%5}ZD8?PVC9#}4`eiR08!RoxGA#flEFe)ltkp z`g3$72YHP>W|Sf$C-xK;ovfN*)J^)&3=iYgM)jG@(y9Z(bmBY3;t^=dbVvQfJ$#Lm z(fsh$$9Ui3hRx2se|gT*>gjOvJC;|^Syr(>VD+(@!ijo?ABJh#=K*vo#=R8?fCT#k z$k2CKeL0iDkl9>}Xa2qG!u?xZ3`;Pc=l6x4?>`PNzk5Ht`petloewSXJp*sY__b*F zZRBOJ8^G05yP!YOtbqoP%wPCK!K0;AX(zR+6xEj99>Aue1n*$pgl$560KBGERi#0y zPROa{!8&$vt0`M&UG`3}C`w==FzO*Yd!Dmm65L|~3F}33`jdNrNo!}+H!v#Q@YEh8 zW7*I%-%O)}fg@ZQ8ox##qa_f7?CkVnwf~mW#F(`u1nHK1vv$EryalG#6&dZCi7>i3 zW-A~0SvDdT$4X(*9{Vg#@qNJQ^z|_Ciu3h9^Z51u_3g0FM(Z)p;Pa8Dm=Rgmd*KlB zCaZOm4`I;^xQW&r9z1qk;tIAM(K?&|M1HGf`w2!RMIE7wo_@zOl%#xhA3M<{FoKXcp(GRJc_)cJYIBvIMu-<38 zIvw`7nR3*#?0f2$9u1UU$ZZvM?PR9GVk+yuRm)$W*1QuOK7O_ z8SQ#%6*q9!pG4UKZ9VY<+G(-KAz7KN3`$kg5nL!LQ^1bPYzff8$EY-E7s=MNB1SzC@*WvWS z6*73}RQ!pv1E%2n+!nok4UFgYZ=O6FZh4t#kGn0yw>SgtxE$~+L5J}$7E1_vt5bD% z{S_Cl2Qvxt_XPK@FNZ6hKR9J(ar)}RaP|%dzza$@%mREk$;Y>yIqW0n4nDc}qH zuBm=g+;RypKijvno6?!9>o;Z+@!E0d z<))&cTBceqfWO!&b^5fvQYG0%`Fm#o$z{CR#(N9VB5O@+Y* zlden?ket#bfjP3L)XLeU!^Cll$*!lXoVxbBdb}P!=P=Lt(y66hsgo_Z%xRJVPwg9t zhM5kr9DqBfjN`G^j~za11@t}M&EWGp!`=Ij@ky~8@GiKu$K0P$n;ii66bL>de1q}d zcxQzTSIPbUqEdL=i1+(3c4r$JJrMtbKlx+5>d6SR@m=;#^V;YdM2QrbMnhOeT0C_c zL0=*AWh7L|i`!xkpbcj0)t5FFuT)o~*I1*j)=_{{Vk*1D&nvKUxk@l0bs1kOD)SQ3 z3rbB35*?ybeuAqg8^Du%_>E3I86s0Y{&N^6-QXDioXCt#%&}t^a?-@PfjUS;OD_|m zY(NX#{^sh1j2qE|0jo0F~TKIWA zm4XUDAXd1#03m`)&pZHodoerDY8>Wtwj!2WN3wE!c|z zhO?9vwArbl^A3%|@hU!z85wbfM1y9w5Z`VLYk@dak-$*bOvPDQJBL+zA$2U-u)MV4 z001C>NkllD~jcHqFUyBsq{JtP4BYenJDY1y5XF*PtEG3 z8n@L!Un@Q9sK?QY;Z_Wr9+gb#q}Ue-7$>h0FQRoqLRWRnIGg!)Gg`M zX$wNj>hVgux(3QDaX-HvoU<4mz&bvn%EnG_e#V8~6E-nhA)63g z|9R-Qh1OW8OyRRoWM)1%6!9wIXxxF)k7il+zDuu)M&lmX#KfgWF7lJ>s_aDX8T8T; zU!2Bvl|jp!aS(Y1SWA|`5qB;@@~oE$9s^&;w~8mD4lDTPyh-FKCo!Zmv2qG>gd`izMj~ybLgrU0kjRdX6qS&;(Q%+v zqU)~QrInT=fxz145YSj3_S3H5IY}88mnxMax=f=JQ1+`~%CEdtyj7eLx63jbw4AC# z6kejOayEYsow`radhNsnxKCGnG|B?>3^v8Vjs6q)smY|zvf&5YOxiiIF72s`e^>dCg7n#%*l$C6?(>f@?`m*f;|)xj7WE z7&0Ia>aH?Re0SrZbm$mTRJu8e>Q_waUZJiGxH?&E0u^-cYJ<{8d`m~;vXzAZUT z6@a#Typ;vv6ul>=2ssz;iE@f9Sp;qpW>$K)P;iycl6rkQHJHmZRs7abjd_;e#GHH` zNx}lxdf$v7;~z5Dv^Y(G~GJHk>{4kr_#yN<_wD{ z{wrElMzrIUkj_*N9;HHEJ`t8R}`M#Nr0IhlYi^L2aiIZ z=-+hard&TfR;%@Tr%Gizlk^^Ef)c9?uN9vmY){N)0G~j=o%?;c2n?B48o2RN4NrQN zGx4XPeG50cMaJXyJ7E&+lsNmbXR%_<*~$Hrn6#K z#M}#5;j@8aBi@R4zK20qAx77gtwRZBz3gS)25BpNg9pStuXVJ2e#z=#(u~ih6jPsG zQX*;d;`1W(*?5jFgka#ntEbzCB`yA(;8nIhf0#jZBy8QcKB`f$uf|H4{|6#Ga-|8zP!&R8jj7B{Se@6w=G29`dYw4{ ziI&WSr7}5r85P4AYos38mJ?_r^d=>wOTJKIu^O$16?Va^qHo_`4sZE<))}vN`X%@q zp7ipkv-O#NTr-~?S88dylvHqWehs1YyHBseQ|J3|e+}jOd(ffke3$y}a0@*^3D1X^ zoc?ED*3gB;50mn7<5RwI{YvjdAhzGob zI5~u*739nle{=wWBYXupVapL7=xS(&Z$`4|nZdmA7aBQ&pz*^o8ucl^!uliM&U?XU zo8IyrKHlfznQmMF4!|$NSu%Z$g{m;c3X<1NMVVuL?Nn)3SGC#}3QwHEt?M?r-|`+_ z169{`-KCxrw+6nvD>b#0xxS9eCl6wZf5TG1oq!X*Px#EY6?sSD>lzqE)Z5rTH~&S<4hvZf(kat#Q}C1MhCFW=+i}4@-29JvBXm8amqgyK&qyI zXhfSDNfaQtB-RylKk)UI|9tsz`0*WIa^cMmKLB9`rd&%0a`5l?j@;&v(m9Fdc|U6^ zYJJjXyX+-imV7(ShTJ8q4QO8!e1EfiQE{KntQ5799#T;gF5Qrhn|umtQ)eH~b${H& z!pM)92|V>fq)jB3GDGu=JaA_TAWoDSbJ^7HLRjNg3r zQloa%rSX(MM@h(7aSe^e!bjeH_q7_y*Sn}`X?vfPz8uD+c>s=WEd3-FnAw&YbhZ zByI}&E6A}ZaJkSVB)g93qM)TkVT4)&IVvwma44pW?}AMvcbWmrn6Be;FANp_>qi1eE(ti3*U>oAoG9^I=U(tZ~Ijd*7j<(TWZ*KZba~9j!-v>*Vm3 zpMHatTiF-jX!=fGJe<1I|A`qXH1FYAz}On--&CJ!CX{{n-)!7WDlz9p_Zp$HtyE)pMXtxMIX-y6D^9(>~&Zq|cZM zcz59KaKbMrAK?uA#i>ASeA;w?PA?~qHIf?cWETaHO4|+D1>A7m=m3(1f|~(02BDBs z3nHl=*BEIR5;XoW;35PYJl%;KAAZT@B|nn!Z-4#B$j`JNxWC-0a|jub#crkv1EtXs zR5F3ndD2n_Vr{FkiSD=9ucroV!@r4UvwKA!qd(fmTc-^DTXj}X&8$2}k0g4?Po6#F zdxgHS_~AJ}Nc)5wHVWk#w*grejD26CAY9W<;tLL4*5vO1Y7U^S6`G)AyI!gS&2OSd z5oPS<3{1-*@KMn3xy1(^fnVbVe|UQ~{N6Rczmx-((|$ex8_xsCRNANn6D>qxBc8EJ zPZi(8E4QdW|Jv8cm*@WZ`u#0)nA-4frxdZji@H<4uvcWN{6h6eKa1`LV5GU@b;1C+ z_d#dCo&eDEXDkCW0Lc9Wdg56Z$uIeso`?9wB2n62Sz6qLQ*_B?f>*3L0MXJ3WX2|R zbHy#TM4O?TlVPG2%c*>PkdY5F`bp<27X2^Yo-^`)82-u+L|nrwe#w=*{M?)LQ1Ty~ zT4j{PiF*@w&!xvN9`}%}WcNHWbLy^3N4P@#8{qG<23C!~iaGVN>^EIHJ2)MizV33s zFC+62)W9I`j31zlkIfPf{xS$At35EKCGY5sdK~^SqvTiW+;g2T0pyo_c48uWBkAx} zmI9~lf1&a78D~&)w|~9T^8PLSRs(-GH9&_>>&QC=-V{8z zyBVJITL!}$HvoAM?&%2|hyMHtDUF)2)(!+__6CH^W;Y?iS{~%!047e!ZyMbi?RYW2 zaLNOY-aADfyfsa|G%=^@BMy$o*|Y6`IT2`Jt{O0Sjl!BmjtOq z>Jns0+rSH|DS2Q1gt;MB45F-wQ=knLzkzqHfoj~o8|+H^3*eQy^L~pW)gfl(AkoqV zmfpAvgF}`C&raR=+hb#pTZB9@c;l`h|L!q(>(EWTDLC)+Z-S4xMC2XEM3Au&Y04O9 z0Or*?e#%xrDiO53)hon5Gf-B68A>sy^u&RmUtJDAygna(&xYSmVf^Ib6@2+8aAZ;B zYht0>nE%T~O2;hoFQ>=ftK_QRzI@TW8X)>0@xtr#dYV4I3r^t|Zpjg@tV;KC1K0os zFGOu2V2yB0%dmsFC!h^!R);JJp79IH!<#hqvnR|1*f-ODa0}#N`O*axz^3*qtTd30%mB2LxLzo7yj-EV!08_*E@!m6jnDIx9 z|3BF9i;*92JmAAMjXxcRvX-IOBk}-*xE^r@sn7g6@zCKHko$E?^Xul?w|5^`>t%Xf zNp`_0y27pN626k&&v3pxKfniuuDM0X)3MwY zMdk=05@B=zrixX?C0h-RkxI2$ zgOW(b(|wNWZeVz;@5eW%!+-v8HvHAcdtr3I!~MS7uebA1z4bCOZ>EuAHzP~%TllR8 z{^n{Ry0s^QqrRj0A$JF!vs88n|A19qvK)w?S_em0kkf9BfkVUNh+$WIG$}I!k%mQr zy@bdaa|31O00I&u85_?qmQf0p!Q^**x=Dx|eopPx=i>5u_>o^`{lgC*+3mj`t|E{1 z1_km7z)r*yAsqRbLkI`g9-f zdE6K8>H2t2w}kiUO>yb_yq@2>yd`d*-W2b7_Bgx1dz^|ddGzT%Uii!FE;vQA#O>34 zyzn<&@5cp$fBR%unZ_R-G#!D_6W%L6U?yPxTWssnUr%QJ93#2&dqa_BDsXGFK>IHl zjd=nZuCUPol)|0K2eR;dx-TV#Q^CtP?RTn=Ub&mk)czXy5AQD6?LTez`FW)md;| zv_2>3FOtoS!|{{yu#B1Sh~xr~9!ChhWL@0K8ojQ~%r#aIW1P3)$O3 zn*n4m&hrwz6ozFOKPqDN^|229&IP~m{(@V5zS#3uUhKKT108~JWB3?5k zBc3^(MtYJ7J=QRx)Z&zyb-<2A2mLMjTMhiOHL&cLm9B2y`g)sCcU@om5Gk!hvN*7t zeIKx6^v|~l*%%}~@SM%fGiL&a4B0FPV#IG$?gKy{GlZy(w8CY@;6BRoB+MXbLG?$f z;lS;*{@7heG{3mKOYRvYpI~B6OQsh1y8?9Z zaimuf19=(E8AMBPk;t4PE&_=%UcCAobC;nwE#an%`?|dQV7=U)&*WlLLZ2rj={!#y zsx0Ok<~$O%o3`POgG2K1+-oq&oWsR4RDMsBIi8o$!Y+(Hf0fFNY+!>H~KEmc|~R z9ltx~6JtJRYtXLvFI{u|m%%)Y4!|r2=u|RNK`jFhH}hO#yuaY{-HiAzUo-9JV;&#< zumQ$@=*&QRy+u5X;8kH#TU4(enaXRXjYq6b(nWl%qF}Y`@X2$eHqyexw`4YD$WP{> zrm1p3C0h=mcSR;%n<`PvbwPbcRv=VqmT-0K^W@djO}tm}GH=pxD(^(KKGxHSu}sfl z>-3r0W6F((P$X?2xyA!7!Xi-8jd_K$%T*?DZ@g@qsRUDO&S`=->dY=SDAw4`$y#cn zu58*PfKZhlrl({fcDf0&9YGu!7IC4sG|7s24RlU-+*fx`;E2ulr>7UgjSmm8)^`Bj z+vj7Wu_*ur#$5FAqEN9PuibM1BWxCdAp*VM@Bbwp;1xgCarN{9A$tH%7;N`=f8dVeSRm5`7XUs|JULzoi#Ro}^Ed;D z>T5XZH!O)qD04z zBH2--S{8Fcyf>D{UuYe-0*%+6tMa$ujzk+GeZBOvjb8VtjS{l0Y%|3sfju~&>fCxu zwrepbmwGl;5NStxBb7n459`4R&8CCzx^{(0YuaQ7NzZGR*9+V!j>4^j$kVcBS$YXF zDrgVy3Y*!*YNOJ``Tb`-UPOPHVM+YDcx(36kU$*2}KeBYcy|gyJ;%@Hy z3h@zp0WAO71Mo>)N*WIaC>Mla*i#9g2Nn$g+7b9BQB+V>r+q06fv$SQsDE%WJeChG z%<2Dj5h6Y$D7ivuRO#il$6e-C`aT|ox68HU^*n`DdYND8;=RNxcwNmen!>F-q;%FY zI+H28#h{l(hr5C@%BY-_CI94GI#j;bRei=>vg|9Hbs8}jk&?58_kv8cZVDd(=6ioT4v*rvuw_r{7N&Y4~KsS4^SJ=loVk8w-^%>S?J&Lm4lr zK_=JZP8d^cB;Od3SMpoWbs}8PRcPh(9Kx43;$?oNi?_{VnBYC9)UPnA0ZZ%RvHhA2 z-f)8XT!J~JMR7`rle}KP!YM6!Zc{0G%_oZcW5q$PJ?Hx=#Yl>(ui}+C#chICtjbBc zK#iF>J!q0)Y#x?)^W4>x`bZOWB)ZAKIJI}64LtL~b%_u`1J(#DEfA16PV;pHhDdV` zr`QCHC2BZ{Ii1HPKuRtJl(b3_^3}>ig+fSY{1e|r3^gQPWx2p3iDQ|C@Lm%{HXa!k zxCQR6>DCf3(h*swN}Dw=kdYV2bIFqk;5}n9Cf=DbW|KGZY8?7ZL1V*3q9Lunl$>B; zdqm)BH0muevdf#T4bNJ>|>AV?ZYfh9ic|;WCF_n>4 z55nhtC5+ty7M_tlISQ^?j_iO+GLnsW_eXlVcrrGaO#G|<%4jDUP4@{EVSUd|*@-W8 za+s`~}7l2h56t`RV!qjQARl^Wxno^wRdujQfur!XTiUU2AKA#;YLY%&s^C91DT zjI+miqY4kTBeq9;g}K1~O1*M=KCoD4&U>#|PtPXDb2yc!C(lj(m%FZr$0er~7c@HE z3d>_WN0Y%v5x63(pJdk=%9I#ba|9QM9P1$aKK3GYr$Dli&J!{T1|&x=vR)4*qsXjI zk6kMJ$!1=2o)yS%R$Ihc3l?x7V=78< zGpABl?l>Q{@g9kIqf^bjB$3;U-Xp#VO@y4A9-roYqnZ%;)P&D@c6UIhB6!ZF0Sb=n z0c>V~g2Sn}uJZ?bvAzY+R+ykM2(Ym=4s1Q*y-u_ccc?s#+*p=?n=kKPYyMk*-cULV zbBKO>Hbj}j1!8=R)+fJC8Sxj6>h9Hdfjj4psLDImiwr+E+C6fnPs!BT5eI;HunXjefE`_r-bUy1de} zo^agzT4zYrj^A_1?J?#+zcoCPLKStxeqq!2#<3@W*yOg5M#fzj9ExUsPAQ5o7T%1x ze&*8#!NtGMG)ZH~}5Yu@r# zUMb!Zif}RB6wOpEp=qU@!Q!QXaK%8@jcq3__B#ZL*)nH+)`js>A*@7Pig99({mQdzq5ci0%3J$Svm%^0*Q+`bp!6e~=jKh_cEzKi+a| z;X$jqmiq^PGHiKxOT(YK0TfY;o@!We=MciVloI~CJr-$H)72WlaGJ&00`BM_r}K=S zGJZeys)r9G&iKBD&wYQ8e@^}-lyiXGH~k>*8~)zzPqU@t4-3D+Qj+~6B;mcyCE|P& b<_+L4B@LkFivxNC00000NkvXXu0mjfRm`ts literal 54345 zcmV)OK(@b$P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D)80u$K~#8N?EUGI zBuSFziHY0kcidNIRd!un)iZ+`>=NE!=0SEIWj+jMfv1{X;3Eh`SRyQ;d;6@)s=VUJ z2*2%e$N$GHtSYLeW^R5&WL9(T zr7e9{p^Ul81h!fcrT;1ttwNcg!RRKaB+2K^LC%}xDywr_Y3~zV&AV2v92w2tnYIk< zDxigRNj_B@T`y*xBF1=Ep0>Q}hUB$l`=cTRYYK5y`90o_I&ijnt3uSt=)e8n{vUTX z02bDYC>!m11CY;PbbW!n!7C%j;vg zs}@qVn-qHQ=&nWh8WPKczi9w;{=fdu|7&dkbhbop1(sTeAVa&-RYZ+4=-M_a6Lj#} z2pxrVRG|}*t}6NlGHg<}GEK0KGjUz}H3&)D$vYf5vgLKZ4sHHb{uatI zx=`kGW!fBFb?ah5vg_n10gp}Oc6nC|ebpggR~;>t4v~5_$8M0mop-t92=ghtPNz_L zu26XSk*|k)tCxD7g(Ui1xZj5!RL^+Mu0o67jNVDjpqayU-OEb%e?~x2Z%UP6wzd%M}Iymzf7SARQG8RkDst52IKrQK%hg2=kFQbWl|@@3#jK=F(riFpepi_DZlg>WRN^Lan@|Z0yG5M? zU2&g+0$p(%(YiV-&Zfj7O`uM*hRSpsP@oY`*+K2Ni0=wtL7?fEpiqvqQ?>}U1(?k* z(`4dX09*Z&o-}!IgUSUTvkr3V1mW|L5_R5)^##Z>D6isC9~y|f#E?EXxs1!{4J(2{ z)DeV5^k%*eMaBYH(?BijYJS~ZKpC@%JlCOFQnYoGb$CeIU1nG4>N>R1Oj(xJg|aNt zM7m`eHjq^nw)}K*7uo}135xe`164|Mtl+%~jCakw-cqy*T_t}5Z7BnU=lrl0^=TJT z&kD?hyDWxm!Lka+QBZ_OS|_iPQ=KAQAZIt263dhAN+-(nI4Zx%p2ITLk*iT9!Hf&_ zF{sU=4lmJF6s@?q@(158{^4I0@8~XRMfxs*8)=vGc=AY7$9J+?LX+S1>6fv(oRW7f zU$_j_pr{f2EOh07DY%qLGF2;NL!Gurl8JF&QY&5u)4QN5PsHW;GEa-zAhmxYzE0Ji zw0#R8cyi$C>z}Baj#6^~Ygu!Yf`LTGKi>ALDVWkMk(WLnD6qV={)k9%6_(cs+7h^>JTCmL{kb zw}z^t^2KtyE|Zw%hp^0@8u1}(CKt-%A{}El zDB_JQKBMLBM2@d`N1pIfZdG>600eqD($UDxr9(USxOynEuwW{GO7 zU}uNV!>Vw(mMP-ObnXsn!^4+9E?7>mDos$-DSte5orkNbZTYyiy81)jx>mtw^{1Vt zUF#-w@y#9Kgx}B#w>S$GIS==7s?$_`ol{;%&7(dAFR1;ouuPF=75QhmzEv1VTLK}16nbeNk8=*dIfUQiBTt^*U`V%#H2IX_zMAJcs`EvgRAjOjb?Hje zpj_9AV>f)Q0x6x1Wyzs)XD(w`#1)B(6~IC(fGe#4#8fR}$-_cq2AA^V>?wVZLItYN zO5hS%Dqz9j;DKRfB1x35t~8Wc8*Dxrkf1E7^oMktNrDx%{;Klb1UD-yU}chbZINA( zZuK$nj&_( zCaE`>rNIJDy);*zFaVsQx;dzM)*<4vSb1zks9**ta@C+d)!35TQdr)aCn()rsK#oQ zu*rd1JKCIF%7%2t?79+Hqtq4SSut+L1&H>Jl@wKcktt(2B*U{BI0Xyii=!bB^>zOi z1ER&WNZE{QL^y&^6=&?~OctNxt~Vx|0WJlrs^~5h$#S|fWIdMZX7K!F`JhVDs+T3B zy)9S=xz|ZRyDX&mmpr~N_juS(qn+)vH6B$fceV&Qv6suW4o(W*zyOfhgN<5iZdffSjg%T>q@)^%GxNSRd~snC~LtggC{Q21U&6B zNE_j}D^{5r%oN}QGRH;6j7VzdNJyeqIzx^QWhs^1py1B9B78IWxFZ)_TC5sp5Yd)a z6gk`DZzJS3@T2FqV=xYua+h_gODYl+p=Ew^%8l~RH5udC8}-t|{p~b-u$$&G023v? zl(uR;;9Qi(>ZHa9J08ygtS|tc5MVRdZ@^$Cdas%P-PuLDk^wk8nWep%@+keK5|V~p z4h4}TLW~zAhq2APO(=7C`s}mx?y6Dci-;V6af-l*YUeHC*|HotAteJpt_NA5khNyC zN$w6<=Qt!5M{^sBID(0BgBNgjm8L+MY8A?So1|X__=KdnWmjTdx>a#SD{KIA2Ooet z^UEjWmsy$;5N7^5ZH$Q`rq0U~OT190sdJ5E20rrhu8ATEhlpM`R1f!{b})8j&n(CkjRH>P0^ku1-imO_{;cJ z1WGrkWhmV>)%nY?GR<qhp`wwJcBi1)P4w+zP}>&>_*cqPU5nP0l7u)RSqy?QWCzj(TvK6^M$2jiX;8v~)V z6l>XnyO&^N%Ulk0wF7R$AOj8+z6D`L#=|t#lH=@fM}}aOX0k#GR^jYBB(O+31_eNh z#O0WBifHhR|b6S=&;zFioyr(JC;cdq`mEkuf9Xe@UTu{xUtVa;xkh?2y9>;Ni zKAx8`cUuRPVJS@H{BZjPJ$M;&6^3FjWJE4S+k>t2Li+c`)BW^Zv;WS{NNL#`_#^#X zv%6A2X;R=~z>|TRcA)M!H2G2lLkvLgYGHbMH6EmkgK;`}u#-+?45lM3I27KKaK7y4 zu7UC)6+~paA*pm!m}mtV$}~UGhNMGv4tE)TpQOV^e05j~`*S26Hmt8*JBu;D36<;R zTn6g`;&||fGyaA2Pdjue_abS_pI+>b(_cN?OV1weq_Ot>+@YIF@!1-%MSu}paXMLG z0S~40C6G0XRIecXARQ)?B$4tiRPed1(1(Y+=~x0yv?Sr4K1&_0OnMG43P#4yJ~<31 zu(DFt00mi&4*yT|6G7!z`5~#0$ws-p=uMl-be<1H7)Nx+HN)p@2RGZy04PWke|mW^ zOuu-so1Q-$rR@>RY_>CUP^SSfu>F86nU*V9BT~adrEqJI%3h9! z=|akXq?N$Y{wPg`ejjq6_<^k$q9_o>h5sk~ggb)qSda5RV@P47FQsnax|FWjzF(8- zNE`fDn(=@A>L9&*yq(4)DY?Su%14?jyBDvOL#JAIt9o~6p`X5Lw*x+lLZ`R5=%*z| zPlaD;pMSA8N=J|O((!?|1H*yk^9zHq8W0(q=q)&{K}46G`xnvCKjB88&;QK&{hE>O zP$Dkm*>es?Io#^YZ9J{86+V-WEf(`MQrPDY#_4Z9KTNNl?8zAP&0cUpa3MX5=OygA zMb%)z)X{88cXb*7viVZoKUgP3VjZ(}DGS3DJ{4#e1-0kc!um*{i@oi1^!PwVU?)wr z9k9HlgNzSnK3FLb0(xBKkKisuEq@l%i#e+UIb8XrTh+FrUP(At$o-%Wv$aBG ziUi>Y3d0)pREW-=0p(R1eK8B%ny`z5DsyXVkY?NCbo_8v+X25OKrZ;ORIvwq@LCZV z5;+=;0m7e&_@C$}g034I0h}TYw_8zJgp&@d$P%o9rRhdo0N0@+oB734le#Vcx!{NL z|N5o&{Dj;!?&=pq>^D_Q6Sd};U zt|9{}5a)2$jw*4?*6y_pvMaw71I6a|IYULhdLZT3p8xrS-PG4Ad#3HcY(7tO(<5;f zA6IMmD8!V}`DRVCxK-%f0$6V2se=USUAl^*w3k|rEK~@K3=btx9vOfw?MJqdUI}?v z=;+~|-5r?n0|j`HM%Kwi;|Q#v0{EB7%Gr?OQ@Z(tzf8N1Hc4BiiBDJDb=3Zp;bpq6 z@c6Xd?Q~uKlGde-Puty2S5iAo`6<(_qcUxLy5d0Xx;skF?Q)mNQM=kPj^N|GmZ8nG z6kA3B<(GoL)Xe{@7u@IHOT*#748u&TZCmz}f&1}->rvJy>89D1Y+#yL4r>_zXT>6) zh-x`hpQPIqj*=_H0)r`jS8!8u2{73mrw_7R7=bwtHDFAzBIJwgKjA0*rD17ccPXQT z>Ck^VuVuTG`)aXBV}-rkAEsYC-$~E3k{(F;eRbel15_w9*Epk#p;R3xL)$4jRsg=B zDD6}=XIDxO6e7QsZ5cRV0Lbr&u4JL6G6MFn(B3#L`aGSC5zrAMk@qS;;V1m1B4+$r zn`$uf(JNDIt&XoQ=V@Eo_DahCYrD_Cod!J~#6t&3894;$8!G1;01vORx~z7}4g=ts zEwP+tZLFY7#z95uY=skOF$6e!yE`EAMErJO+pYD8UL|}@`B{Iv6<2GHsH#r zwRBc~9^V~^$#boifBkYVy?nfrc1A;E%+r57;%k~>S}(O#VdZ3NepBa&TP{1NbRJo{ zmI3fAE?S+zllsvrZ3Rba0f%L%bMc@McLtd4la~LJz3uejp;iLhBYS@U1@{$a&j@%H z<5O|aA>6^%PGy=v7Ni~CNF#(l(p^WOE4(C7x` z{eG)Y%CFF;``hU^Jmm9aFKrJ;Htzk0Jx&CeV#5G8pHK(`Zc0Z_E7MTHViX?oftCTt zumYSY%$Dqg=bXVH?2nrZU_}^l!~pb}?Mb1f%!RfA?`9?=;HS_PK(Qs(XetY&`<@kh~71y$I$Zixp&**+!Mub;9Dy;Y|03ZVDVra-R z7)p16s$dDs6M>f)0a>{Z+#T2%rf>tv zU%%K-ue9tR4*K?hk6rDz)d2<|XOuRTJWKa=sPwp%VWk0Rqbkfay0j&0Lf~g`_ zn3n$+yCWHaZM!Bg)AoQ=c8f4mlty(c!3~7hs3d46`U(Gv;3Lrnr3VO2-^~&EZ^|Rm z+lp9YpP$8BST$_p@!qR6pQSXCMtpv_lYaYhKfQRcZ9fm@nSWm9!SnsL{LeWZwM5ke zL={|TR>RZQDcrTv0IX&QBaw2}uMck`LOI7srKYMy_ zc4fEvK6|i}e)sAyy?nTv2AcV~#plod*LTN^N1*_=hi@u`xW;ESs#s;MIj=DQ*8=N= zkXg`95Jk;Ni$asu{5^gBSA-w5>^a%nPV+v`34~aP>mO%QD}8m*L&V9-*VpEO+&DjK zvReFvKP%XHv(YB3@5AcSo5s2QV%CSJE4OGa3oug1=Lf^|*V^+x(InU(@-up}WE}w- zD-dJG+$}^pj%Y{wq8~Y2&d{T7tTg~ptQX?P(zgzgGLB5ucH06{!)Os;KOma!jM5Qz z2M)H=%zjF&bh+WG9S@Z?a&Md9S*Ho=PP>Z8(iMK6v?Ss!sEhBXpe|W9q0T^~w7LB3`Ccply5@m_nj|IsM@>ht~d^x+`&N4#rOhC%Tt zHMz*I0x{M;YodQn&A^&Qykk8KULI@4I3A)mINn8uy{(rvcCrf}4;1=Nr8G#Gl zER_1Gzt~E>xtwae_;G`;9`wyr31$I`yb$NoQSlRo{7%W+m(KeBXG0wo~c3~BXRn{FQMD&Q2w2Dbn`QK=d@uz7@@5PtI+F6)>21p;x$$tjG zN=b^wZUI3|7*awVX-dG!3b176GiRAAl%H7N5}4PX6PWA{)9K;1zi4#SPg}fDRK|hE z;^m^e59vxZ;z1|~>8arsuR^6IZcUk2XWWmFsPCtyE;%-$JGLt$xJ#Z-MvN~XXI(^G z5M%U8d7w-A7ffEN|9F_vv%_)v#gjdI(r+joa1-GKI6CQQI^p`0HH858NoPX&f#*Sw zoRei0Job8Y|20@3GDKxAU^y?WITKLHhZ_QTnR~qqMIr?o8R(_cKwmN?;O%Q_a0ue~V+x z$GAt|vH`$Gaq(~}-F%}J{Fhn*9I>JhQ{Eqleg?<`2UBO`p>x+3pcDlIZiR_hX1rIF z8vrRkL>ib`>N2Mz{E>p~1*o1b6i{pofc;KDIYu%9k7tYYMCI%%l_|f-o`$By1j}o3 z;SjTeUzB-U1fNY%metPJmgBzU`!RyL-K1Wt+W5!XHYTrx^U;^*?L6*7X7@2$Y0{EH zqE|z$USDkY($Dw%>BVSE+h*yJnDBy6|7ERERXSS518S{;WtGTaI;k+!m6)jxZ_NO( zO;=8Z55yn+4Okv?xEt?A1|a^1xHJIAax*)(4L~3`)SMi_oij!NhySav%E%j(ks=-` z?76t_%cA=1uSOMFlOeefrG`;)-*TCoAo7CJeI3fO+WFdYbjo)_VJ-Ph1pG*7i-7+o zRasSqE*>{*qK^WTSAw`KS)x4dLq6u$E$N0$Xd1K_fo&ytF-qw((UU%_S1GF!@C2-R zgc$e1si{qFB-$Dl27wg-uG<;_%#{bW3Rn%&iz3@KfNPs`_-QC(W6LIeqwazk@Xpf}Jc z=Gqm>c(hj&tv%bXWJVTY(Vq&9IuQln*HH^c-(}F@~liq;l`&cF38LG$KLBOe)-B3 zE?X%`92@g3xboXK!?eSlg1BUtLZv(w(@0V>t@Et|iO zM-ZS=_Q?&e))MKg1hBWQK$theL1j72!$B6XD5n(g~+cOROJ3PSvXN5E{sCnJcLBOJyEzCq1I<2of}(= zRm4Z`vcCxgFVg^_MTvaz2`a@?nE68!EsR6($`pC3yp~B> zaw+cBH}kMK9gD1OtZD*++fl}TMfzn#hi0Lwqr=*ug#1yaQ&)HAOzphu&`Mi+ad%OP z+Fwi7PG6Bld!O5bkPVZH^JsjnzXwu-q~q6YY{J|7}HBUG-bz=GOo~s~^G} zLF<}1;!3&+iehV2tA^{K+%PDUhTEqfBaUXlm6j(I6J+qxElast$?gd18i?eqbBn3~ z_j_Cwn-QUaIi$*zkyD!-?KsfncHh{Xdt34{XEUZ<16v8?PaEFO&L_C}xr<+jukr3XMeyhsG-9jzGFq5(azUN@q_SttgG`DqB8xNvSYuWN}XRscQK{0=cOb=PX~A z)wc^ZIg}1%4{ep-pCicON@nSE{w;K$F#L+Pi&Kk5x?E_Nm#-H4#UZ83=Oz*6?>O-P zM2Ov?J}#zQA~C1bfT@hhQd5AuF28vkm79b`Vndm*MugrswGk4Pl6hLIiIXBAf5${k zksf&Z`cos)mZ?ibTH+&3h@WZ2dX&RLXC zUD!;N8o{cI-MY9{p-o5B4tE6rVPby{=XL0e-B}=1|8s%j$x+&@#tW2pIyaQ{DvC?7NCxTRvKbI2E{UxV7w4^No4|woCgRRjZ^|yyKnvfAP$YHXDs4i{|1P-cVl&GR^cx>*wd!;~dj}K@_ zp3zpo8V#;iJss>@e++d39M!oDDH%1w4G|KdBy6U*cbF`z;KDXOW>7r5O*Yx!*4K33 z92#hAs$j#VKOo?*mw80NUt^`xFMiq8cM8FMbrpUof+5-%`(z#LAQAU83BY(Z_q+ zY3Fb!?LOX5yH9u1aDODlRlY6d6Pqo`N_p({d70x}eCCT@n$CM^b|L@KG%Y@yr>pNp z$7d;>U8Jq)%(fWT3A8ycN0s|ZopvdH#*jFTq!63aDg%Izwy-o7>ZntFY`6s7Se9Zb zL;XjPzb!V@%x;w=n>@cHQMh zkPF&`;^MaeW&kw#*slTk`K&T*XaLHe17G@&fk>$wh-K;V>&rXM>YoFv0J%x-#W^Sl z0udHi87}_!X#gzF4gqiAI)QUw|9!>JHl?u;Ju?^#(r{19`3K{)^LQ`qKH5!V{+V@u zCk+(d+mWIUkyUx5z*1qGy%(|sJm<|Si5ESvpXbLQwj$6LVsR$s$J2EA;UZlgou|do zB&Cx{>Yq;1V5$rfjh{nb(xWUVRDV_m{%nNA&7%7N4|pIgLU1I@NrhtY7a;Xr2Kh3| zQrdi7w!o@V?G3u>VC0HA7|Ed8!&xYA4&=n(jfn>$i5pOPJOvKRYi(%AXVOJ{gc;m- zm$oqjptBhOQNsY}Tp0jM?S6pY!~E!>j!0{Pl?Sg@o;q_`S$dz|W&`j+1Bs;NkAcW0 z(JIF44M3z)HW-kY#%=r@Sm9;>h!@p4a$)9cB4lsJtup{Sio*a<$@K=n!)ru%hIy5O zvh-1v?J7QXW{`pYu%Gs%@Q*$_Opm{Kl=hzQr{4Zpv;8nFdIRgY$>mJ5{7m`OUg}{} zbhW@tdjkI1l{9eU7mof!B1S^yi!xLwD~*LZX?ikGSFg`f|LYHF@a9;n0vQBZ4hAdR z3Jd@%ff)M%{9gMyu&%ccK0^eGUx{`reQZ=>WC~b4szCL-FeLWEM+|_{E>woi ziT66p9AI0Xr@}qBXorYYCevxv}Ky>cvVV8!YnLdD7<%yP9lC#M4J-E?1sT& zQbOVRi#hUROSv|~xKyY-++9Hp$e=N#^gO#^0~{h;M~{a%n9q;y^f=)z2EZZXEf(~1 zX#gInKPkdi0J(@-65s-4F&fy^0Q><1Acdid12qn92uN<#&U|jZ0?@fK01Fua)sDaP z@G%;V>;+k2=4*m*(2lzw15k3$@-U*vC66zbq*P)y*YbU?X}BlF+~3WWg+|$ADy5%XrJ2q%E#s$Js?WJAp!)mv0hu&l)%fkR5ot;nX!;yo`N4H*yW&fjvg05j{jIv&uLsd~xp^y;RYG5W zMmyT>r}6eM4ab@`^|k9Fw5`(Ew#tmK_$vP;w^=W=Dw}ZCl@&ua0!nM`lHK$RZj-|_ zP~{eth*6v+y#u-pz(XmEYWag2fH>dX0O-scfj+qbkl#)m#4va^xo3HpDrhNF8fO1q zp2;U^TYLEzFAvjaKYx;5Ncj(*?rDENOy`o}RBdrS@m0}6Zj^qZB|j@AR!JBUYzwmx zjn80aD=>!`VAMxs*9TBs&E|y9hP^Zy^wUiKOSx@8s+ZXJU(L0CI5|&a8G+s3zfGg> z-lyLA%m(t-U|?w(I2ZtL1M0}f>z$jWXpb5>Dx>x_!yR4u!F6f7;!9KpARl;L7H!H( zih(%T9jEcZcG^B1rQL_nb{ccdWvmsL47Ju>w!~))p!{aYH4bN@xeWCDR0iN^lCDHs z$7;8ei?oG7&;Y*T?U>mxR|Y^ZiHb_(QRCsahVy6`02#2)M1S4}K;+i|{32kr1<3Jr zj$DZOmeCbg834KI9{x4uRtBJAEC($n13)EdE%-C&rn5^e`M1*NKYyHl{kxax+2;>5 z@J99^&iV8*ot(|m>BS;l$UTn-crXAOakl4|Fx=*|CjptkkQm-7b*`c`9_6RZ+`t%~ zzE%cOdXyiUVg!bRv=Gg-%~)uFa_5FS0R4+;+WF=~+W(i=Y4_{z)8Kq+)w1fSie@aV zPPq)PZG}dAWR&r3-^V~*f?SMLzG@?VZPv#@Uog0a+vBwTU^nf`0Pj875sl3N40f6M z)h=Q&)l@&#GJnnmTjk}y^X%G-4Ejt=W*U!kt<)}0)koZM;cm-!$J$z*rKFVs4d;J3 zC#cLY(AJJcJ0Y)!lwqr}oZF9tSzqZ~8h}UYV@fasKvE&{fM!?|_i6w{J?U3A02^Kd z5S0eN?gB)-DCDDnD5MKran>0+Hw=Ihxd9-&j_2$MSHUe>h4i#om6!p?3_efeQ9u3S z7mw4ge)}>#ef2Q)wZxpL{%4vkF3#ua;zIj;8N;cJA^+lH|IMzYKeN@sW`7MdrRO;T zyI`dd z+E*SWR#|E*YdhLZGfIay**F;<8!SDq#csS##@g*VdOSzA_;VC zhK0}LYP3^YEOixsWUCB-v=9UE7z3a!as||p^66_DW5^Tu; zcwbXC;OMumwK4vW|LK4FFKRO>hj)^~a}tLoCZmX1?m~p}PvxiiEIv~kU14A;JPT$* ziqux7`1>OMJv9bjv+f=StYe6@R)TU4Ex*+tdFEcEv6f&z*Np!+zk8lueJiwJXCkdDEoG^D?j`%1X~V0m@RJejsA!V4Pma2!HYKK1;8D z^CCUeR%}~gJ?;7J;-~s?rsWiuMkcZVY98g+_?s(kQ4)PCWri>SY8$Q<%vn)sJGa>1 zPK$$`v>1()M#@Gzs~zp3FRN>=7lS_69e)=*ygr(%NL+Pg2E%Kfe%a!k~Iup|y04O9j|CmTZ|8G!%XG5{pVeHb=ThopDgN2XBu!26ne8>pXpqdL&@+v|sTAInUrLSvm`d?+&lNYvNZ54(t)7(U z3dJ|&*Lr}nlpBiQ0mP4o%m~Qc6e^9+;b=J4qYr2hy!%S45Ux3(~>d=E3c=j;)SVC)_>Fx`z*U($9bMEdBaF ze3qX7)nnU!F;Zm&&Co#BptB!8SncI+wwK z7k5m!i*mUmL%KIMgSudKYsPkw>`!Ph1X=k_cKaZy`+_)@un>LMwJm)^{B;Jv+pFf# z#mf*8oJHZS41kF1SJxVVoN= z@mMg5-$%{}R~oKKOb6N~jE3n_TZf^RucOm*kFTzn=Q`Vo*1-`}!dlK?{S@AIGVzO` z;ATrGvP4-K_<{meSPrE98CNEoZaBpg81e2=1!lIpWCe=wVHKGy{+k-i85Cz1;wC3$$qfsEzA!_ETrkiWNW& ze4eqn0>A*k+@d%K=K^KODz_n*8I9sAfEyYB9XXQ*c6MP-O2znn%zvqx2}h_D|gEL-{cfDE~CC1ZG+t*g!?;QGSg!^7#cpX85e|BCe&_ znev%w_;Wa&A%C=2M4X0#$*U-CU6}#M@m#|&BQPAKi3TsLfW70hG|~!$6^`{uzAa|$ z0-xLx>(EHkP7cokl@CWpTr;E@W@AcqM8Q$y#}8$Iwe|Y#zj>YxpY7S7W1QOx3d2i# zDy=f1_-ZZdJMyVT)NClaW_h`1DuI3f%nShIF#oM~Cc=y`0OCgS*iQcEvL4;O+!v=tnaEIb(P?H2~yrJ-Y_mFyl>WIjU>4K?Yy0dr<<~%*VhH7bsAc|dfBiW9?l(`;1Aa$AyJ^dHc_ziz zs><6>Z9{vo4-nb&0SyvgBbNQX3YclCzyPS#(sXN>CYdgh)8uj}mWo^S(uKyu#juyo zWQdM__9T7y;z^qBj_n#uKVOeQeqZSnEtMUWp9*21i-xeEOgBfx* z(XXEDr{8|@Fui!PZL=@8`Hs%!=}d#}!W5qeex&^Jqx=^#3g@DU+!HA)ijQ&NVIW&6 z$bi_a&lDqmK2W)sCn<5$m}*FS^jBvaSPJtv#8#e6)~G;ki;~x#_9KsYa$yi$YNnrS z8=xHa2dZPq)khh$oaNyld!Y$^ruecS0!tyDa2fOig=AQgDqWc&_eiAGR73mYwUw7- zi>3JC!7%;1-#tzL{;!{$GF1-EP;Vrq+kK`>&wpl}|};`#t9i>VC9q&GZ%chCcqo1hPFHpnY6|QA>diko+p-=~9M7}c z#Ys9@{+MyhZ^VEOwm#sEubtIDGG-WozGT?Z3ZXB#tQcb||M_p8*+1fP4f8@Y!7S;VFF4xdnQ|LtG42Kfr(^2XIrI} zArEPB%XP@bSnUhk4Cgk8`dTHM@VIC#Pv)-rjEN-YjSRpofRa`zgJ6w4FYCG)~*nzKgR- zI^lMol!qB;GSSSh<>y4R{l(cunrK@v(QLr=0iXRb0POj-H`M^0YxF|=YS6Fh`+%&7 zS%iyvI`@=*0BLabHN*AghPVxtuX5S#DDF%5R8C(?(K{DO9-dy?(w2Zb1k6wa$vrwd zOM{DxG*gcr9qy&$2M1|78mK9hhcc}>=ravEx$!sJ?HE(ETa8y%Rd$Iar>-9G> z08jUKR3{l*?x?737b0G;!n+Z!=GqEan@VjVwnIj=g^0GwX=ROdR-0+7)MvY-bbW1| zAl%kw;$gQ~=?@tY69{V{Be2D+Wh;-%bl&f$x6dA=*FSrjj-Nb`aUEK_^|a66sRFB~ z{9)`Ib*qNUeU4}c(8#ta3S-d4zv&@)t(BeS5m-c2*^96+5NpvY_aov~&1R7CQ(wyf zNZ5fo_h8&lFCGjNcbT|N$DaR80}$n(YM@M|fEQ9g9{jNjf3_l!QLwmtQ4rE#whLJ* zfRzO^)k1^Bo(vRm0gGqRnT_oJzRoEBP*c$ew}@L#tOo3iKgf&%q(LWn22y?}4PyB* z0DZ}b@(*RCa8G2}KFA21?u`?_Enu+rRCoKuTxU<+zD=(KrA3MMtOe~aLZ+t=hv_#z zJ4i1M$5LD^`%k9X0B{XN$}B~+dW*Kyj&3|vZ&P-Z9=|H3_VMc^o>rYFk|7Y;HIq#J z>BO#|(0*Lp8(=V$-&PSmIIO+dLT$^a(#AZP_3rUOdi(TYI^Wqe-&99;6MDPWS)VKO)c|4^Ysj+#l|*Dyr>U>azdw@lYv4WE?rF)a zC8uWB3(>g-ohi7HW_g`2P<|=;L<5bb=|qEMCgo%Tv9l>Wv%QT`+bUrYW*V$B<+lrc z%v?5reWr&n0xbOp8hqM)*vmisR-aQ(aq&EWtr`~0TCM=SFaVnEY;a=)v~uCr6|0Zq z?O{6E+fH*WV{I9S(osgVN2ZOjDnm4I8_ZP9J~m_ds)Kzx7g$mLhx>!{%NM)p=Z{7* zf@*6SuQL%BU3sk9XMd%Yp~V2=rVXgS&D=)nOv20%l;ruH+$i+(O2AfA*?{(Q9PJgx znw7y=Y4>D^_9V|hZ9LI-0E2pbc#!5pdkj(AF4d~t9#&`0?(M>j+Pp$DS3RrOWd7XN zE=Q#Cpm46ksw5pNfZJ8$eu21%)*)WICKA_wna7zNSDN*E>BYe~?aRVr`RyW~_WL|l z#%}?5%-4R}s{w+-JINSmuyEyiCZ(N8S>v%&zda?T*O_Ooxle8Psx_$mR%5i86k6^r ztq>qv4Jh46c}7Y%lz%9N7>Kww(9<~gi-&StYG&hhp=7Wp1|=T@dw>yOP-|<#kArx^ zaH=*qlM%Ss8QJYEYc0xE`PgZ*)fv@5xi!cSQ=OukLd*w@N2>4FEUuCkUg_sgcG9n& z?xsUor7IaQ6rT&K+%-WVuWX~Pc7xO(P<0aKj|C#}c~ zsq&Ja?Zp)aR_%;&X3sxTn~r2CFv1t(VS0bKosM_M_5c>!NoEwT(-=(omZ4N-ll=IQ z`v|O(wL`-;L&dOzb5ZUc;9MH)mnsvb&}I5)B=XYEJ*@y9ZEvNa%s4;k<%d1Y@V0uC zj$r_5!U(t_m`Xusrr56ZI>`WV1sR3MI5-h+PoSy!_@!QdJQ594Pow{8xaAk-G=K)m zGgA7oXdAbT!XQXtLk6VCW`8>~OF^0$b!M70>C3r{ozC^DK+0$oMnGq_1|q*s5C#Gx$}Lr24fM6-@2Sn~ zdVWNf%k_Ad>G_W@Z^Hk$lOt(cNl{XYWenmNyfv{D9c-ox;5!(WYtpaB(klk^RtSpte z(1ju3+5j@04M%ChbM8G%fND=WiOLm`wcl;AB5$-jZI1F-GPwt8mxnvU^k_$IqaYrL zn)9L~mMk*9)P=h!EXVm_mTjR}6-a@r$EfA^i+=fHpwj!b0L7v7K}svDZqE-~$uQb= z0j-v}P>8!H#Yg#vQvQ)vPD55uGDh&QCpMM8F9R^pwu+fyB275fit1!nTPyV&cVFx` z14dNR4w>Qzpu8}v8Quss?sK`Y2ocbUl4+$gEgA2{0Nh0WvV6~-k(oqW zS{2mjUXdD+#|FD)$Ytxyt*C9yzN5Ca<{ zz!o5u{mcyGVc#BRdHi@cJ$|y69@={Ychd0TZt9DAj}B7r@j<#$_*~1%#Wv5n%Mggi zSjs*YKbZ(SV*~~&%YIg^cxG{kl|!E;sN(E)m&jHKwh~}zs{yRAiHzN(KS*Z)@Qm_qVk2>Zg5{(NbF4oGlku-SNlr-k$u^ zY;VTENcEA@^9pv9+n4av*A>>um-85iD=Dmz`3sUUz$k2Smw~g$uL)oXd?nxp!+C7+ z`-%w{S0^$~+9s+kPe)^|uCxlUiu<<8&o%0{YPK3_R<$MYNvaDu*SgGsjx-Tu!5TE) zD^4X^*$lTg0IO?rdsGtQU|8h z{&w1Wu$L|$?Wc*1z^RPFbZ@M!LNDz|$~`gORRJTF$MX&nITITS838GNtOlw*DD5CW z*9%Y#jDg*TR9bEgvTx<3BeWCk1D^_A-IUvNnbx71#$6t!X0mekhrRSb+aMm^GUZoW z&ot9B+uQwo6dl4Kh%VJXcJYw@pkGA3ymzu|0Wt#d)MSIiA6{`WkQD*pY>#|vklnT= zfTZyFrTmb&xurPcnF`M0r+Q#iry}0qWCl}I*L4NZ1y8yf)>Jy!*+OoGGW$w4u}>*b zO#rQ^wmxkRc&)4Oosb!;hJIDlD;x8huM*@o8FDwN6GobW_M}bx2Adg@Jw3BGv%Ed4 z4@s%w7iux<)A9Zw33`^7{5nsiVAE_USn@x3u#+A=-B0@uchX2p-7TK-urJC>W6Hz8 zk+NUPAT0KF(z#X#r;oI(+#RKn2G+iK?P+?Enb3BHS2v4PM{O8n1YCjrLZXPX$Ql|V zObWtv0R}yHD5h$Rsp`xVgbc9y1C*zt0v_q-OcB(D?l`r(WTNd5EiS(9tL}Y?$E+XE z`1>1tq+l|p_6tdc+XX-o#=sx6inLr8klTpufs;LAJweG)`pl!^gW>R%gBcKYn70vz z!mlUzvj(0gRvGcU0e1t2_?3mp1Y>GXWaf&mY?~r}WttYkR@^&G>7BE^jJ8!y=`QWV z%?*H+gVL$B@RXddfn{~4A^hDe%0cX)RI|rKc%%(NKE2*m+BO5w)ACwlK%LF4I{T%b z28706R(KKd5bp4+DR`kLKfsx*g*4~ni_%)Y5Bllh{y05;G)_BO{%`SnbCqou3Nb2J zh)gVLc}~EdR+BuJT&+LYPUp5A7^iJ5FL}aoSMrXf0C_-$zx)`jp_VR2+A3fKFes+{ z;>T=nF9VUX+p`8x9>CP?;z~2EMlQWUlZb_pUA%(2pn8?CR4bC!AQLT}T{^Hpv3jcX zq3Xj5fY-RQQsKg${ZtyoMbV8=^6XcCk;JTMYhc-P=_Q%sW9_rWS2Jj5Z9g@&|L7AB-r={drO zQC7Xy-}v|(gDh7#NQSnVJPNP zAErYYfP-!A@2RtR+660?6xAT`#t!0uqS+OFjX5fECJlMNH%w>yTI_ER(l&Pyw6b6Y zz~c(MzKI=0C@@urhdnHm72cM z5{i8Vg$&_Ak{^+&b5b>EV!vI`N6Mx^vwW5hEn{`{&Vnuy7MOTIhE5jRU zR=2mI6}g-`dO43Dg08_D1MtIPZ6mAzl^u$h{aGg4QXJ*b*ke+*S=$s}aYoGkBDDa& z0Q3L)!>!${l%IFd_q1FeYu4Y>=-$@Wf`1R@Ar@|L`4ZyN9vih;HDE38O-~$81Y$IJ zOUsFr{%mKMF0~36VFaZ03QB$cV^A{K46eLJ_K}}*G7n!u`@qNT%W4e3W}SVXpvqBg zp1olE!t)Kxtp0Oo6y5jvw%3wwl0QfNSpO>1`XObWf zQdG=Q!0lxC?t*Af$*W{_pO(IL!rY?A#uPKDgn-d0r zw=VIt-9iSye(6V@O*RMx$0!irCKNl98HCz6G`0&i!xKhY<-=d*4dY>P%CDK7^32HS zjA1ZB>5aEYXAHXkvQT8<%1^r%%|IQ4mQjaxwp`V|n}Xh1{@@n~VUY~{)V7?H+!Igc9f@%lhm6s`@}3@dk}wy5wRN0#e0aMRubd^0dqzGA`c?TqsH zbr&g~^@S^&&&KT6Q9M^{pWX3$8qPl3W596}u5`8~kUNyv+(9{v{8fBTL%CIX?sp=+ zh;Z7@+BCPN;_W&PO_%G(C)c?8bVGdXe1}GF!}`&kt3YX+ml&x%hlX}=Cm_U^JA(7M z&O(rXKpB2lV9gk`p;M;NQI;3y$njP-+9G1G+AY33pqLqhY+#~1@VAuY)rZ-Z(aZE( zDZXeZzxM3C(ZKEi3{Xl_Ws#DzW#E^1Y#+GpV%J`fD+B(7nB0YNvZu@B?rYi~j73^q z3{*~^)rJTI;425uAHZ)vP{};Zt*s4P9UHV5$=n9H2?ejGyYeBkj1nreyp9~W6z2g{ z35x33DogyOw<5JSN^A<96&YpAebZ3%oX*2*e>uB1m6vS>Gk5qyndP=H+~KFp%rD}N zwCvY8$c=#75aE@cF@wRk-&a7bAD|8}NY?-Di7y(TCjt^cqJqM*S=KKr6zO zR7>~18j?2>_jg9Aw>{QsU?hW}^2`7!Vb&zBpG@pDdbBjBsEKbzorVOxstl=w?}+pZbesyeV6(%D8Sp8v04$ z(O>R&rA1Lg`6ImKN4)LnEw1K8Ui^NAS3-r6w8^00rL=Z8#rWj25$VKFb)x;O4RgDL zx&=IdBhBJXTUdM|3Ye0Lkat6L7=UF2|4$9(U1rQ~ z3A~bJRT+dD8)nGO0I1XRl;m!vsGNg}J7;}t=9j{2xexVtUDWO^Tb4H55B5s40~xaLnimm)ubFP0Y|JUAU{6 zpFBmlk?Lz(1BiH?%lL@HIN0q{@o^(5SDn`wZ6l!_b1GjRO!(272u3lM=>ffyQ-qC&!ok2&(%B@76nkVmE=lYs?nS}>3 z0z)a}fQxi{+bQjDru!`Q}fDg%8im|C2B0o6=x4)p{QmYAi_P)Na@^AWFl>qFURGyrJu8x5wkb_ z?qmZ&aWN=}Q^Ly6xQHJb*{wmPrG05Ln|Rb6Z1?g2GFgp>H!@5w7+%ggFpo}v5 zIv|h9w5brlGB~K-&0xZ+Dm03r;Px@0;;IG&xqQ3emdT7f3YV4627?D0+3YC=G5enD zz+}rsK27}g8ml2jfMq#9D%c&Tg$w{MkmO%~8SVC?9r3ljI8|5vXaOY3QrS_-HOBn8 z1Fn)EYR2cc1Uur%b%wYFSzU)v8e2{(A6o|BSNn3bL8^-z1r1#Jtp9xNX-w8F`6JWx#h z%FosUcZ7u-MMim9`s-YihpVwFIdIc%E)(%JFKo~<+H=|lHK6L^62Wy8*EFQ8Ss+qR1j< zc8Io#6+!j80Sp3RD7ul_Hut3)2Jthc4pKbrFLJ*GGNRoS4iRq#LJ>NfK_Gp!qlgKE zG>jL1nK@F;SRJaht)AjwpC-J0IT|&hn{8jhbTqrW&@N>i8hn`8GT}CvJjPJE%Q9L9 zAd)Ew11YEE#LQC#2(_zZeKUlR6$d%8{LMh1@}ta<#M9}J2Rl!2oiYg3p(x5gZu?EQ zMJr5hCv~mPEYf*t2nGN{5X6dr$8vkaQCjTprL$*`($R~@>FiL(KudcDDa%HG^N;vz zz*RE~%E-UiYQV)(c6WP_zWD4g{nZx_>~F7GO-z(D{@lVJJ62A~!C+(X`WTN+6~bV~jj<0R|7(X*f<)r&GBvFnrpc zAnO)S)7Zs8)d@nm74A!Ug+r#~qCDd}5$eVb*5w zWu})ADAJk%KpurLF2VysaMSVdZ4p8}0?bw)rbk3T%4ZJfNPB7OmA zkKrn9kK~aBgP;LmFXz-Cv3K<;*e*7TY)ha3Q!36{5%7Ed^QQ;t=!+-m_~(z)#gl#e zcVBx!D60T1cX`y5y{|v$B6pt6xFWv4vz>nSvxn)IzkHmYJm0lD3>WGo{;0x~Uk1g_ zl9gMP)sK@3qRO$g2_wLuNA{6q=5biq4=hx)X}MG05s9uikE`Y9zkIU@Yrn6wurN}6Qo4s zCoG4<%T|YW&iO=47TWmP&&lb36yFShDOFwl3QGZwrC{U?T7_J|3YIHTr$<_6VuqlI z0UqNhMe+VyLQdM`aqn2y9$k@L;-L5peiWDA#-FK5D3@7u4Jv!@UM2>CT{IK%lhx(Q zs}a?DeV%ETd!WI_Z9D#3?m|oVvtK+(=f8QLre8cxv&Xv%*A@YVmGaLfi!_~R^&u<7 zUs;XDBm3#_FMj(X{p#PoN{?P0q$?SYiKh8;83x|nK9$fjNx=kXzbw??=Ngs7Grr7{ zq4@fWFb+Ojkq8;LWkC2LQM8Sx%Wgke9Cht#zZ)Z%H1_N-KfO zxkN?DrDSFdAl0EDOB?l6y+}{}s>)Ci6daAub#KPkX$be3-znnMY@Ws_@(>>+gQgRI zk3Z5jF#aZAsSIAvKQDC2+YVDL%PNBGmu9tNx)5n@3-VVyi+>B-t8S~lJg7ti z*peNxPYv3K86jqcGOi8c+Iayj6r4R?ev4$ktPqup0XW(k$iQjkB)NGs7_ymLbwK%j zMZj6wrWJr+fRjJ>L$!A|ja69YUDZt#3JX|e2|KU}7%wJyr zkDsT{|1Y1X&;G~H(zCyLmbRbmrkR%Lr&9dm^F=zpy>KMR-aM?hAb)F- zldUugKd%{Qsk+VGL)Eo1kSlR*g7qi{w)MQ+l*s_{cjviLJL(P6F@Mp;C{KKC z+vCe`s~6SHNOdwLR9MW`^oJQ|@eJiQ<*@jmwm-t0n91!&S|a?uBJjA1zlbnjY57>- zRc*XUnisYB)^e%PVE`Ozo|=VK zz@3gNX z`UtRcD6_>s!VS563sX%Bu?2 z_EgGNz9gt>t-N*)zq_J+9d#UuVO5ozgI9wTPUXj#aL#0(%#)yI`I}?q3ZO(38}MRo zSKvzAkrfRPm6^(M($_4cFs=n?6q?fVAN&4_t-K;I(yBmb-ouNc~6R~@^}UL=`3A*n56UfQhZ28;6fY!3sZj0 z^bi*g<@Z-$;TP##&HgA$HUcqI+0T9@?@;wR)GB0O#Lt&wBE`0WRXtPo;Z1Q}UMo`v zuK%45dg+4<)QN2c6ruXqZx{5%P}%G&1Hi`yw}{!=W^BN@A~KPe!H&_ep|6Nc`DCUI zx6;~VueJ-rQ^6xFoVN8xhtjHrzpJ?_-G-Trs;=^G(UzWX|A->3oZF4 z{?}v>hQR-iFrO7>20`-h`Z61U3{dK#F$?*t%Vn@s$6d|(2U7kK_o^}~rC`9vpf3h) z4!ILb9;F&a1Q$`!;@My;9ZSCVqmfo)(x@=99-T#0e!G~N0}PT^-iG2sq_uNSTcjyx zK}(mVilezKUM^8A{j~tJ{Jfc&KQnnC1Hj!BGq#dzp?sAQkX+6WqD|{|ZO^>7+Zs1{ zd`h$oKvY-4xU)K!B3clQS|z#%v{=HHOzm*~=m|+w%{-r|`Xa10sKPeSWr!ok*F$5?$1JjkC0q--F zi)Rnd$UoAa|G~~E?P{sYu(VmR`qZ%Z02YWgyH}{e{ZZNQq8^f2Yv@xc)%%@sIvNe_ zujKic1`x zA?V9ku!Qx&tXk6=RNkqDXtL#)+X7AnHx=LpKu#F|9+o=U9i{i$SD%aqcG2JdmrsV5 zyD|gSZJ@o28Eork44DGya3kj#Ub8astaOg6(~>{P!(;T~H|19wVPNAG@jUg%7V7!I zZh9;k`Joo=XzflJjh1p=?J65A$_k~RaNQ2Z-wUZ%7TKM{qkpS-^UHb5Qo9X+klEMp zmMsG1&K3Sa5CvOfAQrMo9!Ry~H~iielI=RAEg7$T0E^7&j-*H zJ|t)fe08rheU3)IZh&atdP*pH$Yq7-pl|$;=1MD-sa65};pTf8f@7^%WKwPQW&fBg z@{4xla|$I6e-Ni;SoX_axO+L?oi$G*mC3aMlz&?@{?q+&dUCj(_GF-VEZoXgeX5VD z)~K_bHUZUz+IS;XMU*4g=BRlE;Pk1m(g2hKS>t7Q1qE1pEk)b`v|qHP5O*WW2C?GG z0D}UMM=tLW$*Y>prTC}gQ96>suo}P!u;(90+3oMQFalZmZND$Fx5rMkXw`W!o2G>f z!9q*+g%o$8<@!Q~U~zt~W&fF!UB*C5e&|XDU?G~z2+Xunn264f&qU|xLI&YX+XU$R zY_2VU-v!|5L3>dqGrnYTBfuV%nIGl%I|8fq$XJWn6)rd?kCqKsaAE?Y99`~jR+A7Yiz-8F1cQlvL# zfy}Gq*NGh8=6!$Y7GR|TDCPKQGOd91-5S$mSks_ng=lo%$$z9h-uIe0kF_l2nR}Gq zwgXyPbIXtI0owu$!9YsM|MO!6cxU`2D}W#=KTGl?BRQ{dQgoZoiCU1%Lt2nWbuM3z$(KXg~ezU?=VK z%caFkX|zhQW%Cb==2$nx?Nw%ZGXgTeM-R8tJJGQej{ge9(8cu^e<+K5%AENv)r)|v zWv-}MSt}4H5)W2TG2{D>j?}Igdd2MzN9oyv{q*ATUfSCkNa1|h&l-!nDOcL>E|q;P zOt?&IhvttCEj6nf_*y9GDyw$W1~fJeUU-6P#Ok1K>Kb;@%fDttxo*LQCWO4uzWMuu z?etzo;9M&K;>S|@Z7HDL9nc`*PJulpYz85(1h@_$g@tS@aK=Twi!_%q&$+;-Wj(X~ zRI34I{0nUl&Se-(`8C^La62&5#1x;4ef~$K{#V%rX%J$ZG+Ei~Z!WDsUtoFz`}&fdV^aVWnT0gXUsB!aIm$8CGZ#|$55$dY?fb1MwR zS6^aKZM7jcw@weV8hmcbe~=D%enW-XAFC*0{#78|a$4(dyEw!LSh+e> zX>-Pqr;^KrgcPDdU<%D((T4e4O7!7yC!MO}=RNKDG|+}pJf8j=YLK`Q$ax@z^Y66$ zy_Ee8H3ood0aE-c8GuXCf{T3G*V~0Y(FBtJLg5ogGyX(-{izh+{w7O`&-?Q28Gi$})c(;*0uJk4DEtklX!VEd z;6d#V!>1lXP?Irom|L*^&>@U~y-RRQtFN8ybgr5A_{na%(EfWq7)t4Q&AQSnof!iN z zRyan0M}KWAV1v*1r?|}sumqRlR(~p?{ri=a`ckwI&CjLW3WH{HPw{735U!>EOh&}_ z`z-faj`}j+6d#3$un42=cTmle-U@2?5dwn*th%D%QshibcLPY%+{=MU0jtw6T786~tmOMh6HnUSa6=>H1q?~QC3sxFn5Vs2b-*039nAN4& zC^<7cMgXPfUuNu2DMgk}#>3xTr@^WffIZSH(m2;@fIE>a`PuU`h*gH#^dQgtkN3Cj z{{v+y6vxsw>bJ6Wx^d$So1_Gmp83f`z zJu;bS-ZXNX?uZD_&ebRrWwJXOorpxBY^`Oi;t;6pR2x`X&C&}QyerlHO53zF z;_ug$S=G1YP#)lHHS7;mWJKbRTzGNIa5PA}d!uxyHhcVNFFh4c&im@);do#xNbZ`% z^A*vQrZZh2(geQ;WZ6G1ZYOa6KmMox{9ouB_Mfc4>}{z2tz|Zk+2S-2oyY|7E4LUB zw*R{ea{dsX$20k(&wZI>`(>5~=X0~H@Re1!up*QB#mDNV!NP+o3k|MCelaHl!v?1+ z$Sh#vjWB&3%4hx@W><{xs?CB5KZ+jrob7DkUXCyO+3Pc@OZl0R6fUvsmegY@zzZ#p z9~|u1+lq~!rEy8DGFGA6;kH@JeD01lmLtRic_rPA9Ih6zb8kzEJe0DJN9y!py3`io zYCN=#nIiH&-#chhNloqh6LNz>@r=!0pgNL{FB*uY=F^#UcG>#_M+Sd#hA|PiB zFV~3(()5weROpc${0}7`;z~ZDryOycF}08t2q7Ej47_hp$fgCA>8xs1ZeK2`$CY@V^5(u?&_ z>m3W=x&SLH*<<+$zmnCT%K-8g=1VE@<&(XXvGowbcV#@ccX_KbD+9O+rvJYBs*JJ6bfOwP2x`KvKvt#(y23zac@uOd z?+UDVTkGN|&evn>zy7!Xt`+K){aA&4DgRH8!Wg?K&^%ijuvh7W!oJoFc&syTP_-2r z*2EGz$kz6+0~fUD7Il#&=EV$;CC3X1u%ozazw^1tx%QRep1y*d#A5LX#W3)^I{VEY zb=9)8cQH%7Q-8*PpnW_)V`JuBDBjC;t8RZMjvF4v3!ajZv%;{%Y$-_VPxM)>ES?=L zHi9<-!-qk-qru7#d-nGZ4BTU#k;BH12t@i@K^d`gGzq`Ac&%~#<&;$b4>w6a z)jYHZ2|332CocYkwsQqw4G!TBlAm*g*r#mNf<6jL#vzm+3~d>*gmRh3l+&7l!JvV` zZ9jWO7!ll#;`Sh~{Ca+nE}k8v>7$*r(2|rDfweG$4`L5%XN4I_!L>rL_uOGLjPgET zasK?d-`-;Y^B(|X?Qi*ifR|c%@T%}fdG_Kj!vM3DKN091R{>8WU_EY-bOX?qqTJ`T zFv#eiDlF2Jl;f%)ScOA^nl-NSlg74S8gyo0*$OdWMf{oSK*V)X1~)Cno18OywVl$U zUE*W?Mt{T6oZ^Q=VC-7)8SeBWDQ-icbbm4+c2SpgXeaA50D-7Ts8V&lL4mi&ie@a! zm3v)-yO_1GWjY3!U1gS%+Jz}*6Dj7U_TFPaFZ|4zXW+(e& zQDX~NNVL`f{6!)+B5h$a zg3aPw+1K(>BZom~SLC*345XZM&C(0)GZ$JFBq{Bd_Mkl(1>XGA*M7CXJ4`+8JGXZG za`)3v?yKp&2D zh*?Q9HCx(eT&4GFwDKAN7R1vvQTnfI=jCevTj{YFcU}WPmJ-q7MTyI0`!Os&zG_hD zMA#PhpNouad2FAr_Aro6M#A18%PgcpX&0CHQH};5dp_fzZ&BF_L59ShlvG{t+loLf zhTmH^#&tbJ!$tWKXzib2L4}+*h4H-y)Dl->8eFt2V8~hZ5kW;=P{=51cYLh8K5>uEkFmB zmdyNIC&)@_F#DvkneB&C@Zq5TpMS;0K(w!sLUiV36LxpNRuAIc5U{RG4fq5~_ooGN z8fAYM+Ok(}Wuj*O2{@-P^YzLkw|(|o`14Wec&w{4I*o0WWAA*n&D z4tOJTc)6&D@*63{wg6hh@hBgUo|1jsD{#Zc?=}Ekt!HbKI-+S0m$9nD%3P~xRc`ZDQSPv#GT8+o<*s=|cu7hV*3l@t z4aVKzGg5ZrvUF9#PDJir-r+;iOsyc532qLa+@)RauBfOnSk>y z`8%qTi+1);jV7O(N>F-Jg4I~+hbW+GSk6SO2B`v_2Eg)1s^Hnlw`N7$HRU!6UPdmc zLN_;W-Xd;2(+$urv*x|T+6GSyqD&cECd!rf|qLz%8bS6N-W!73hvTOYf(f`_HsrCA>a1!jwL@N&VdZ zG9t|Qn6E3<{iBk-g)%(cWmt)I(zerw|3)?JD)bhJ@@~Vfly$A_Ya_kvMjJ$c2(>ZQ zsj!Ao2das_jf%gIL+5)v@3j{JZzkG$+?-ceEgiY8_lKCN3&x?uZ7N-cmKQ`&y&b4S zYWne`DQWh_2(H@9sai^lszGQ2@eY7RcHSB{V351MGmFI$u@S%EbVF>ye`6Uo!$ubY z?+dq+yUumXX1x)b?dz^Otd6NeZRgs7dN|ej9i{uGaO-|Ew9CIKyawyh)drSpQ+dl| zxJ8?k+l8fEw`0@5O<82Sc)#cp;*NFuqz2$-pl0{bb2kD#cHh1B<3+UaD*AKA4=evC zF8vP0tu_D~GQFv~Y$~g-AX!S*dFs5j`?j*H@;yU?Vkz1t9h$Tj#5;wn2y*D$xH4-X zFgr6mOO`s9UCLC-xQgxqFaPGBRfubzR(H-G+<@gq?lxIWi*np`H4%~wvWO*PVx|Z3#>K(*VM3Ri;sw|5+W?u*xO?X>)Io-R9TCG zVGpMewi1es^_{KpN_PwJEVx;DIZGQR$Db2ElE9z79aeNm7pw!_2{z32@o|GHv~lY# zK&vh89X7wOQmhtkS@$0Vm8>|Zp8GO#U@P=KP;$L5?(HkmUE|@t%DNL)3bC1Vma1L3 zd#hN<=o+T2Xj6|Icw1e(^EH5*7JN+=YvjuLXA_X2rt+%vbwnMS^`OL>nm(m0RtzN~ zO$~f?n&miALl*O9D#M#}8-x_%kdHU}ETIT8Ly+B_K;||XgMxDSebf~=*Wgj}ugFr| z0c$I)XvMdN$A&Pemp+xuS$+#Mzn^Z4AMr&%aEF@xga&?U$)C`Ll?LFBhGhxY^21s- zEand}WSdgfzHnu#W)RVe)qtZTtSi|^Mj`DTP;#m7_1lF>t9w3+8Z)@H)eneUws%?E zK-+&m$O3*G<_&bQztIZdmTh@0OfVfP{)ME3eXMc~Mf(SEm;MT+FmdU-1J&{@yPLd} zr#st61I69-M>;Fp6GkkXdI3oSd7xf^*vp)Hyx{YN_rI z!LyUEHH_jiEukaqKIALq=_ z8kr;fnok2EhfY2~@OxCigO#&IcxcMi`f>4HL`#F^#535izK>lWcQxzWY zux2SW+GRPpKae@wvH9)+4=c%Q=?Ko{Crap!EkAWi5L_)R0yA3PjZlr3Koq7hYc9Oe z-w|POKfW^i_16HD+RmRGrI?P}$h`m%i2XQhcvM+u8DO*G~u$;xPW+9lpJm%yNO#0*m(WP@_DXc3mimx#D(oyU#M3QgQLmLd^32*ip7Qz*mRV z`*KpYsr)R*RTl;UtD)#aC06Wzee| z*36bdnbx+3$N3`ao^X@KSK9UE!t5pte>}KVdy=Wj81-J!24M_iOmrq|Fl<5Lr9oYl z?2cF={RX&UE=%rtZd;X=24H0+t|{q;Ragx%GJ~JJ*MW3FVFVfBE=TcwdTc z_wlBPnW&nTt|O(TYSX`>UloJW$C&Jxj7MKN+gBac44+i1P39xhqOu^`~8@>O+B0vmzU#(*V%W z@ake0#Y9|`U&&FN+bGjqkIhpWg1N}rC)~*EieKeZph9s%!c5b z$ry7scYz$04;!P(b_aO=O5z^`f6*5KV;@+J9St1*v+ru=|J_$n{;TgMDXmdgTtRaY z{}0G{6XNg0bVeW>#8o+2Nc*or(jwd3&ioyDPjOuDA6h%&&i~P9@zIXfR%%ygZ4|hx;{K@6u3Q5vBPwkD*Z=n4)t*=BVzN-9 zU!^{OgRP9wNSyh5Y%ZWpuP)Pj@%&nJe7Thdn$iYJYgr0hUu+ZpRG9irglnwxBZa*X z-yM;RaiTd5MARirO%p z+u2W>g5+j(y-0)I%4w8I7%nM(ua^e=EqTA6)H&L+D70#Wo8$Jk1j{m=M;+3Xr!5`+ zYD8K2(e@rj5OOWlKMRaAhE-v`tzIUjRHIo=DYx~Bvii7VY!c(;sFf6<#A>rk%cD?F zZvAXogm%ByBi_?qhni0lSvuJu{{B6su@XKTr1Y8Sp@c(%xuq=2aaZu_DnEu>AXc)} zSFM$%I=_)Y{BnAgjuw66G3ZG*3$D~ZCBSyj563m1jo zeV`5j4Ad-m6D6Y(gd1~DU@{sLf)#NkVf3Y*J;}>oj`u{SAk2ECSA(|)#Ky>FZHhW| z6d1DB$JK~drDkJefHn@h{4YOZBuor0n?yvI5u@F?&3!tFpYP|Y45>)8Xt^Pe}9lJccuJl2GW@k+!6<+ovWP| zSN$}bsSVGj>FRir(ua%GKboYibNOWy%%G@5TSc%cpv~xCd#L4$8vtLvhXH_>dMwPUYDB%)?LRw6XFq?O zzWLeX^!?$!W)mseRLe#!9aWsO#CTE)15{r+1-T6JprGC`kk3XYgygJYoT_9YIq6(6 z-KbEGEr-R2TH+sQuiqaJq!>f>$vnOO>L`8rx8J7eAK#@XXOr|;R%r*buP<^rXX9k< z!2KHl&q#f(56oLIqdc{@_ktJbN7YZ^)NY|pnakj^0$>%h`(Q^(e~=!$d|=9NioYj? z@6WZToms!nHOpU#=ua~qqM3~5Ts-L_lnLJROOXctOq=1wxyn2`PrbLNM*Vj(1TqFa zWx%+y5cO*F&IhXV~d4F)Ne86#!}1_w(<(N!h}j;*;YT(cSB%ue`qc2a(p zn}p{uOCx?sWfX0Es2d`Msa<9F%pm+#WWv1T=D#Kl0X zlh?Se^{0cE-i@|QYGT{(FSO*JX@C;9y*o@#wG#WQzj>K{{XhIw`sIK4BE9N-}zj%~pzk87;zkQj` zzj&G^PY%*0*Hg4Dzz{G;^sP|E;VlL&6b!uPQeWi`cKu0$yh zv1N*oICuez=b&2J-*%r*(&*a{>A^p}NsoX3I_+yuJ&?u3^3FBjE;X~*w8C`5^uwqy zx6Fy$em`F6jpU>tOB3X2jWpN8=!{_N&|EJH=^PfLT+Xo{VMl}a_0Z?!*VqIz#v=9+tjV+_Vp5ByKe!Ij^ zdx^N(M;?s9bS|2il3#8Q()8J0I{)R9H2KZTH2v&RT4=jLKN=tI3Spsu8GfG?qYgn) z=ZcDGgTg8*5&m{~14U%;Set$|Zj)6lw+dDDHbB`VH_3OOh;n`I_j~3nu0`rpW@hv) zolesBw^{}K;k)$cPp{MN(XnO_ZGWWUI@(*X{E z0S_|(lqEU)8dZG;pOk-gcA4IPeUiTYyYJHLe|nuJ-=Czu2I)wv0xecFKwDkh@><>N zrf8n;4KNhtlk>NODN)!umb!D*bEfqv7gQfT+D*Us_0#m5fBPzZ{+p+1PsX6f1wLh+ z&yvz@rK#w0s*27AQev4!F`~*CUA6$eU7~*pm-4ekP&%F&xa1b1woOUIa{?IsnO0O& zm3yvj-|4Tk8u;uGeOpP2c_gZMry_D1r8A z+8Ws2l`2~KUK-SiuE-qbr`vq$y5ciO0qaABdHV~2u98S6-&z-@}AjaQ&%ycufYZ;KFq9fzs}CAJF76XeKTEK-y+Fe~<@M7;qQfaIRc z()OF<^zZ=sKn1_cx9RcMG6JU;Y77l<4Hj0EtT2HMdS*3eV^klA&2DuDWx(5~V5eGX z2v&CmG1@e%_eEs6nl94W+mrO&KYW{B|I3>+Ii6_0FL}8YsJ*LQQ>b_uH}P|#YzJx+ zAD7_na85P9l5393_4QdQDp&MJ z*)=Gi#*|$Yk0H3RSO4%4rG`7r(ZSC7-<2jetk8GkWN>0JACrRi(m&ci#*!dlE5 z=K(7s(H4Y(?Dx}fFcghs3uPcgT*Z!Jtw=eb=qK~j+&b`BG1nn3WHXLOqx4Qj;Pua+ zq_f8dcH!0T4j8o>cnvmB`Ds8?+(xFdCxzUJKf3DG$bG&9BsQ{0S3iHCV>vYnZQ7@} zo|fICx2L`m(3W8DY$~Oc0nkbTBjEg;qs?%}&(H1#Wf{5ciXfXbnDw)iea-%Mi$*if zLId;Y&1w4T@4ri5|KqpmOv;ZD8p;UyLs^-T^4t6$6)lSdx!BFn&fEpkc)HHi3iNup zw<;cmV+pR=cc@A}f3}l;@!5WQ{&1W|s?XMJp0>0{XB);d7y~JPUu*Zi+F~FYir-Lu zgTiyGkQG~hw3P;02@SWm({QX6gp`;ErMMg8_x5#W>6L}yX+c&5VFdUM2)DXtGB(^x zIU36dJbIA6fAJ`tKiEr`L#`z#p{*=3%E}43^($INo%UuZ^L6l8!`7pk30$@qX{$jl zsAT{gYs&ob!fK={TSwy6C%o2~S{5ooi%z>B$nu-ng_)$UrReybwgbQaHa+?Bb=p6< zum_0z_FlAy6<}oi!Y%#=OQeQZK&W~S%zi?c^;!1!RlEi*4{dyRlK%9!-=;sw0Gw*s zzr}zT`F&c1*Pz_eP{sh@H$KYE>CL9txtbUuRM4>TLUduEs0k(ZlWZ z#m^4X6V3cQ-MJ-&=P~U5+!cSQmCr!4GuK}Rkm@=TkCBvnJQ}2tW@mJ>*H@`1I=yn` zkDsZb?A9r__Ab?47z2ztTdRe5OqF_~Y!fZvwARqpK*m5#$+IpzFK|8@r*}^tqz}&? zq>F=Ht@_}vHkJ%1MZ4Z5x_bbu%e5)sQTBsAYUeJ}fv;sjCM#VIACs%4EYWEIevHWV zTnUf&51YBOrj+beE(K2O_kj?$xl{w6*Dmv7SE>A5Wuc&3~| z#qfZ&DZiZ6MHqRb9NQ{D6lUpNF}Sn9Qk0d&Kr>sPOW%urI(~be{`7a>+U(B-KYId@ z=ifCLna~`{Csy`Y@&+JPnQ~pONP8UttDigTz?>kiYs~GbMnQ)?E&YF{ng8>rdudzs zTFA&Qrd*w$XCokm*Q{(aKgz$DYkRQJ?5|aT>TY*M#D}fKLR+NC5o+%c#!2y>Cv7TWXo(#2NaXewIB5cF7;NQM!&B!|MV`M|KTW2zd22p zZ!gl7i~|=Oc^YuGHB1-%QM%}j(nPBSZRqUI0JmaUd5or0(IgFKGrQySVRt*dKip5} zJ3GEI6l6-QeX4%GrnM}sJ00E(x5N6P*1#tz%dY-lsCKa;3QJyh8zO@|oXGf3 zCfb&8}OY3v3qUa0~QY zihLx;M4iG%#npU_cP(#hBS>>CDke)Pt8(9{L^WTD?$B<~cck^kaFwFTI3m4WlP3W) zyhb3iJy(MV$LHzr53keH-+!A9KAdW{(o&R_0JAgeLr4hTOHe0Ze7KrF5^-URTVC(K z`#$~t|Mv$i{l7{R&HO{n`a>zd{|uXa`WiWZm)e3eJY7z`5_S5UA<8OgC6JNXgNC$5 zR6W&>&mWG`OBsP3a!;mdA?3Q%7J!$1up02EAZKYyvoN#$SbWCtIi05OfB!c9{{Qo3 z`se@m@6#Xu_pj5Ne|eWq|D@UeyOXq#VYqs$S^v#(y8QY>y88XQl>Xs$y81u96MdU{ zO52lRxMH;-d8V=~a~WO4w7U(q`jCe3)R9&KTNjc++ku(VoNkZP*?4Tv3@}RUSE3!Y zUk=%zoo<3#Got;2Hb>{!waH5qvX~Na2$Bc{sug(k|qw!&{QT{ zfl6E`SQ&Y|T^Ep|@)>9V4KyJ4|MY!&Dnsz#!?6-9(p1Vi(;&C;ZrOZRs~JNeTUhN) zSyf%lrs?SQ_vw#+`<0gc-=*1^mZDPrfs6{1O%s{9SYfK{lUdvRY3)#yl>H#CO;qTR zt#-9Qkt--f3Rts>x78hG!7WR$H{ME*b_Z!s#+0WYFL~5jWK*ru*$X{TLanlxjYl#7 zLrv53(|P*#%cJynQu=@Thi}u{cbe%H*V7cr>c}pf4*FUtKw2?zR@>P-9Zs~0`szd4 zkrCKa-m#4A*4c&q}U^gAty7uj8T6&OT&w48tRN(6Y)Hi0hnk7K}D@zA{~v& z>PHxeGa$9+sA2gOWaL2=+Wr7(+vo@?AWrHewqcNWSPA^~?C%H1$`t@<7`P}z3^)sI zNTTZIM!GW?Kr}i|;}~T&xw|MFN@^qcWKt4S9BUX6Uvs(x1+pAe6(hhZKwf?&I6OK} z559btp34Xv^7B$f%rv;?Y8MuZUXo3LA}^7qHa=OiXPRx^fA`+@{9kFdnjX)5@M;kA zun*-sC+9}#CILbOU%qvcI|J51w*^wurYIMW>T&_^aJ!!lP+0lrQgD|4Ylhg?_Q^`zBx{3=X2{SQ*!a*+DJbWPet03kqS>Een6#7huV3l zz8bwdP5b}yHa+;4@6z6z_i1=`E+ZsfTJA5Tmp^8>p2R&-x1sJdXDg8G@FkO@JdY&+8OP8@C^GXA-5>dvAayG%L>`SxP zDwLTkW~=jAhh*&`X;eD0)+{^?z0U(c3~;-0EX6(-XYyp1b5n&h23@Js4~Dm%As$=c@l)Grj-7$Cutb2f$K%BrmrDCt79wQM32o z{e$-W-=1k@erfG9l5%rhfa@nFa3;#E%4H?SwvCGi*=Uc%@8Fvc>G7Z5rHAj1()Ov0 zwhZtkav+n=NpjhXRW$n#6xY-0Y;mR4oear^Rsu8eq6~XzOkCmHZgs*Ul%DsI<-k?@ z1bIyE>}?{aB(gh!BQuTquSW-?6?tr!JJyxHjL3DZEG=}UzbOw#*1XL(W zRGde9CmJUWE>lhoFu>p)NbwK<_&UA#@=bccZ_5?F&_LxrwEfiAcwTA1DsT2K7V~th zJ?Ynf|2lp9Pj5BYC-#63dw%ZslcqT^a0PY13_*6^0l~dplG(o%px9>7o;Y|==N-+= z2cj`olP5DR{k8X(!r78v#B%^WDL7jL_T)SY{9Y@pKYpV&dUKIZwI8Px9v~V@3GITk z@z+*DM{Y8@!NeG{Hd2h5k$$?Au`p5_4bEq2|NG-~`1XC;J~~PL^NBrpv?ZC0aL?Qr z^^CL)U=<+V7y+&W#G~LyU`|ys>T03c<9<)qY#&FR=bo^JVN(Vrih#CYMgCmPZg{#C zrTr*zOId9^(MrCoXWwX7ftd;NY;bj{8AF5V@XOcfndtCX1B)T3!LsOUHP9Q{a$aAN z7;3oh&ra+75&SNt`=>nr{nO5N3wKNLa^32t{OR2OFI9o1_`O3TAN zS5mS|833O7XBp0l00UqT11X-Fn5F)k?=RBpqiH(lE)+Aac<~H?&*yZFD}S~AVZ@g0 zfYlOlO=dBGlvD1}#U$-~IF}1_625vWS;LtUOQ_wH~(| zdp|JLoFRC#s@B+iu(1W+{IcJx8pA(a1vl=D(Xvo~M`1wV1-8wFUk%hGa7D99E?Im({XVAUobJsvEQ z(H)&!q`tNVTNiVi@gd}?wkOCXSy-_k<4pOK!nSrkjzo3QHHa$EmE<~jo*U%6CMnU8 zr0S<@V9nh|HQ+NxI~DB^b#Jvng|gswo-!`b6&4__J06aO1kqU;uJn1RSd_;bFJr1h zCO!mW40zr@et8xK!gxTJ8lV~^!w;+k-lQjg{4O0F9jCEY2g8x_Nx`|ubf!K3cYpUy z`s(k#PG?6KuKX+wY*6K;Yc8{ikkREdxsVZ92YCG5ka-&4H56&8pj^I@2hm9W?nKrB zJio!rt-5isO*1-e!Ef~KcluJca5MW~Na2oT06u6Ha3Q0hxm&hY^KQP@;q6Xss1%b#|C*+*dzLCZyvuEr`+It_q9IjpE_D$y)v8Ij$1xwCSYVVeVv zL91bnlRwq^QLtP(@TjeIP$o+UF?a~Vsk6ng3gDui&ZOySV2wYVr^Bz_rzhWjpB_#x z(opFqn)P14Jx~Aqci*Ki|KXc-p=Btqsj^p9+4JlwMJ$Z3yw-Q3HY{GqeX9c@5qd{- zl(z}UR%MkaCYux;2TISwTg?94KewOYsx2UXiN_C~AX7Ze{yY~j)vS*Zm=KNu5i5vV zx&ibLUxR5>b`w^G%W33oYu5ynmd`*2Xryw6=NNzsl{>Stne`zI0@oo}nQ*oXg^Pu+ z0Gz263DpJOH=O(ZqvpG=giZrs8B|}+C;~9IJMX2U9N9oPiAJX6d{deh~{_rLpYsTSy z_QNr^seC}%M@%^f|2A^b1|Rb|M2T}%?gwQ-H$j!p+Y*_42G$Bdo-Ll9lmUo;_hA*l zkAwJ4KKJEqJ0K;zlw!_M$VY&de*m4f)&?)rSmnSijoG!>gHFgkc&=srxd- z>HNZ82}ik?lyAx}%BvFlMdHqdm>FfXP_vx$Oze#88H;3cYw;%p+QOnzpSAL-^tfJ2uSg5$<6Xx#u2)d5kT4OX+nL>CRP>2!O(03UJFaD24wI@ zhw;A)_89W{Oe+8>KQANUsz1gk)1?eKOMhhFl1%m(a2VTbM7WuRKR&EA0M~&gx+`wq zc)5czVui9SlXp>RDT`eCMnoo!MEX9`*nm=)Em2v@YwG98G@ceb)4=-b!$ta+ua48Z zFF&NcZ;sP*Z434lF4Y$+?ImRg;+}HFm7+F*rE|G9&9VucV@(y-6%vW50z|uE+(dYJ z`!BEkwm<2R;xoI)Z8m!zKz^3|Gb#T}%W%T%ExxoYhEi?It-R*q$mg-#YLy5OGqXMB zokOY?%JOBO{on_=E+;ZhJZB(c-3^D?1mpDF;@IKZIfU>&#~prSP4OFs1tGrVm%jKtq48vv30N|5Eh zg4||j=4Ck1ga1miIMM-Xh2aU-f}_`VVvLTgmIGEN2CLW~@aR zY5s!jLW)1-As?3eD%*aKpsfloY4JZKb-#qobZJ|=SlJjV$7+<)kX#(?T!wceGv~BH zIqTpoqQv#32Heoy2wsf+YYQJ6m5!*x?dsvYoFBA~Q=}=&Mw%i7KAE2lTw_)9W2tGu z8eBGp-B*wUHvTWY46LhkuEF%p_vh(fWB|TBnI$a*Y;`agvXoVttIIS}nw`@N8G%U} z%2?RTCV5;q>L#x#l>6lO^2{9|NaQC5H1%tw*Z|Z$N(s6Kx!h3rAbpLTN6p8LB#x~# z(-c0{nj59}Wwn$`WJZ89#=(dc02k*L_G`SM6pvp`Zp9~SN-1uSNc^h`+xhRQsNZG)1ABohC=O=i-5P4Yra|z z_eB~%EY*vj`XbZj$Ytk|bK$RpGhD~(K z8lmcN@$scUXPzaQrPuFH)0b~f)0@*-(xm3`N@p_$>nZXm??|)Uj#dFXAI{S7O#1_7 z8l~X}M45dj2yRE+txY#al)XZGLZNd4))XMaC{V5P*Y%@OOGrm2r zBqz}W41l&Y3?Y`|P(EX-FFF0}2n!!UF4xCJl)yP?Eo_E%vb6H^P!Ru6%Zi8vfX%WZ z{>{g3vB?0iH82C9tpGa!48V@sW$$ca&+gmLcDWYN=jkaQgP>|#t!8XS#*@poTaO~P zXsp6`_JWs!p31NspH8*>#{wy>^7vDW63}LQ+{mbCNDBn6{&RbmA0jp0$Sl;Z4iLFE zLBkokIa6kMa7YdJ+X=wkcpr)qGmLd18a z$-?ERaGg-HEn|loAX*qGUW17u z$x{UfvTwD z99W&rTFjkP+y{b9tns=yi~t6b|K~^X?co~DvOfF!i#+WWbeg8eTAm-AT%^5Y+J|TG z#0w)JN>g(Ofc{tHKag{q{r=qT3^;j7|r54fpgb(R@XA8W9v4z4~PO_f+)GI$7#S}?3|+bg?`{B1Kd z&O}R9X8u1&`M;C$OP`fd3Jx2}!-$Ab0Iq~r{FRv#Z@k^sz~0wvw97yIPNpWG|H=?0 zce#`_1DC>eG6f*W5|wE_K2+RFR5BTm5rd}vzm(=w3Unsnxfp25FQt#C0qyU>MKi@s z%|NLAv~L)n&(f}p0M||UwVqT|27oqzq=>A<<6P3lPi<#XN9)DJLvkaN+pNV9wMk;SdR%Ae#)RJ^iZvOyI#*B>{#nB!{im2Qo z;AyYHMu{?3rY$2jWoAuTq858)IT6FRJHf3`HrmY*f@BWn)ghSXo-yS#^XG%sBOUew z5_$QnuHjI#x6U&SUIx=2zB@}_e?LiDRoXpk3`BEws2jqEg%`t8p8+~jL+$33z#c0B z4RTAPc)L3QuL=w(23F>c!%`!$56m+4T@akRXcd}eXITlZ=KDnB_w}vnq1YF}Nk4y`)5nPdd2lh$la3=B|%|mKvmX z<^T|ZMUcS?b>~{N^0nDCur{(Ru%qCRF({*D0J_o2<7l+d-LOeJIm$|Ql#NVf5K5iX znchc!mVSjY1u@q6H=2RApxn=X{r)2T{+pBZl~w=@XuHbK$^fk<0|$L+#2_on=Xgcw zquE5+(onK(%Lp7Eou`8j=k|Vj2DiP@hO^R`=sKYDb;p#l6KbA2z}v(4uKASdAWE&o zC`2$jh+m>np9{6kvD|D0)P$yJYz1bTiSctiz@N9*3V<-R%R>BlNyzr;B<;RGNjqaks)roQD+g+W#DEkIqD-~-NK zyyZ8l0U?V9Qgu~R_TriDu16dY+EVHZaz@Y}~-uv@3;JNs01boTs$qnYVuFu7|DZ4A+ z5ws3vx-xC}%UT1IPFlv_shvteKlBIbT*}FkpEo119bgN<#WpUy*~K?y$xh=r&}w0u zt-$-!wEgZR4c?!nEp3}FwKZ6rInB=|X(pOzHFYZba5T{>?L58x{w%%waB6pIP-<@3 z(p~%r(-c1>&kB#v-Vvz6Nw+r|qz5~LH0C|@7;xf91a8sx)@APe_>ge7EsMH$BRH<& zOk3WxRaRhgHl$pW8tpZCJsnmb8U13K2NO+qaz&WIfV)zDDdCwE^iQwP(m(NM73mCrJS zw7yz(e#RP(k~c0~ep=8iTVSXJl(GC~GVLF1eJij1VvpX|97vJoPd)9ce*fqFJ zv=zT99M1S1|1=FXn-9MIkYt6^{Hu3q^7Z?4{>}Sz{M~VS|N1z+{q{J$k^7yD^eHbA zRbJY7pmwu9mD?l_`Mjt6Qw3>drY*+9-H}!RT4Ch$o`wV&;#ZRn5Gcbx1`weTqZ79- z-;HDeFUc&soW?g7UX>9J<@7eN!;R2YAHurAH$z8G1$qCuz*N=hq7Jv)L0j7U@fI45 z5?(nyV6aXu?cH?${Owu#M*B$a^YaFucn-j>_}k#9fx9ttdx#ww=f#AlSzb&uGP!s- zo=(%g_PhJV;VxoAifG=1TC_OxC)`Udpr^IsqMu^vxgIZT)f109Y(p>xXlhH7} z*Q|QVGF>x&kM%!9r|8S??Rk38NX;@=yUbY$sW0rppO)bLi&+}*Mjy4)m1g;w=t4&M z;z*>G0spHoJ>xh2Y8SDl54A(E`}lqOD)*Q5w+i*ao{gCf_{VB%{=MkI&d~DOGYg6g z;~Q9R1tE-pbIi0J7 zlBV$2i&Hmbiqle*4(EVs*}zbgJ>jQb@AU?n`LEJ9Z>9X-ou+S(rfI4?_FsKc%IbQ7 zc=^_X@*pu49}fw5$-qjJ(`R!F(pe4>Mu5Ml+CMr?2b$@4a}D}!YHsPBt9=k2igtHa zw?e^n!%r@6*-?R1j1dSqS@B$`U5~VLRW!FnE2YS3fGfk=*35zNX2@pWWV!%I^;Qx8lcpqx5`#WdCDe z*DFNaL85Ex#`g5iC&yibT*M7w(l$Sm!S&4JT&614J{uutZ-Q}Hh2B8g4a@Ap9kMnN z4H9C@kJIN~kmE%4yvd;Pfx}Z{Tl@*c7Rt|_|2+Nv^+|f8JteoOnDx2XWKCpJJ5?QP zRCa-%NNY`?+%< zH^kqqV+a%^LJkwin^7_ojsY;)R1jMd{8Z>u*zDQ+B0>xyta2f7wtKqeIIcY{El0<~Tborvu%gO;A$My+DPUg|C=~CCnvQ zq}tG^+wA7_AI^DEX)Hc%>2wMK9jU+li3-6@$`#=#wypF1R8?! z7~#w32FO6D1{%v&ZV`^>tOU;OsW^U0%u;|+%-3pZrnqsw zs<1-nd|D6B*lpvo6v4;$P1%#t@>YmE8_947_%O^v&Ya%)mCOX^_kk$8m3_}Qh3XK7h;TMYp!hv~}KPR(L!bG%T zHOMqT{Y4`tqFq4aIRPFP+CRQXLmnIEBZHOf9RymjXwM9v;A^};5oi%_6=0QYz(TAI za-B5G(th08m~Ic#>HbbS+1pMRqk&x`;Ay-bD*>gmRRL|Iyw*O-b1Ch$t&{Qga{ck$ zY+Q2tS&2F*mz8H{!bHY1cOTagSZC~wd+Eiao%G`IUK*=y`DJ3hLE(l5;VpBf0?nY> zSGjUzln+YxCRmv^^Ik$xKrP3r#6n9TRX2Q*N&bQ%Fohsk4Q{%i1m4Y&w}}Yl9Mpvn zILcu;?8?{X(1K;E<4iUVLSrE1BwU&1uee5<`B8q}M*I5vv-Gu={`|0K#*CzJevWD{ zs30#q;AdPjBEZUsI4>6;<)Nb<=J|3owHv9<$~ z5$_KcP-ty`w(O_6tOzu?)QGkkP#vs2jk9kVni2@!**+#AOH7#3L26H4PtKNupK0$8 zd)o7B=GSV3SGsYrl_wE-Ac=E)mQb~+Q?8ZCNKh5M3QBB~QwM9{BY@9p5Enc;`Q&fx4@U%UGA zi-rB3|4S+V+Y`<%tmktMjDV+xQ)b2;fE|u zb`x&v$_`Q-vfEK<8LY<6pxJ7+NMjj*-M1%c=lc`;b5j1xF3O3I=c_Vyqhp{3$hnU0 z3^9qNK3f8Q`*6NHN=I6Pe|UV5&K~S)doWIOb&xe9vo(sZwDHCskKpY5jASn$`pnxL zH)ScDe5@w;agX|ae`lDUJlst$pYNq7k9X5}dnASLX~y^4k7TJ41^ny5S_81UDWaiP zr(oCx-5WZJE2W6CyxhD_(SbL=oSa^yuU;RefBxo3v;TQInsVVs)h9t?&^a-Xj8M3O zd@z!}BxbE5Pen?rb2F`{_t#OO#7ZJLty~O)c(V%VUCiyT$+zDgr=52gfeU|wEol*1 zXX+hPA!IBOVL6;*D@7-oX}nciC!-qP>bCcXawz38yYrWc{1kd3BXIg?HyuAcNGFf? z)A_+}nrKBZ*UW6MPm?y=T>^+aqDp)k42MNz!<`93K2U#-`-60-EeA{emrwT6i)Z`k z!K3Xo&?>;T7LpNafI7h+T8HIIUk{~^?aW65%Kr9YT1Xs?pDINiq92xW}pix(`){PR{Q>MwYNS~t$X7^8g38MU^q-$ z+GD4_mZL!|P5HZ9Bg*ffT+&^L!N`Lzw!G(-pJ;2)xBtH9*Kb^*-j&iHNao$MY3lRK zI_2?YYe~^s9X()Lb9>w@H>ta2KtcIg?ofKmZ90D7Guf{&oq#SZ%v``KMBI#hioFfg!>cMsz%5c#i2#45BplI2-0=2QY8N8*;;qb;;kKDd7 zQ&X^C;nx_;7c`9vZ9Uh5T>aELpQfJ1B7ekc7x7d_yG^J3T&%Ng6In0{BL9gGrE2QMm#gLF*7JAG@`w^H}+x$vAx`ddPgD508fj zoc#?8DL@rzlc~;c=a=cr>1F!BBb90s6`7x9kxT?JZUjzoVOj>@zpL#vOHTa74Ll@M z-P+RW(-{EoAX3w4k2FXy06W8JFk%w7ZeK*zM zo@pz`V26EQQ$7!Kq4;J16lmp&FYgLqb>KzoKm?~ecsL@NgG?S4$GZRy(5(!BgG;4tW=%3edTp!@X`)8^ASr!s4t9@oVgh)RJ;VDypEuZxjo?7EVB01?L{pR z-s@_?6fcL}p|PS zpBcR2nust9Z?q!apcc{W@5@j%hKMC4D*|5pV1Evw#^bM|on#E5DI|X;{>;MvQo10e z3F4i1{tB!XDV^mj((+1db1R&9J8PyhVz5iO^|cpf_*--sR1%-+;4sS7y9OI1xnD>$ zs2a{1WxmpK@=)ZLWDrkbss1ec?Wr94L}&U2#rK;vQg&_K2ANPCnt-P_d2^G!X&3_` z?eaE4v1~LH$nsS9vmE{#qFwiHU_P_6-8df~OC=M~lDi$`?!sy|KxpJ(hb3@Qc#EHyEwBy7huI|gKtflr{04Lm;#IGi$6LF`Yx?8}Essy&t`4rZyXNt zHZ=pFcw4d6IjWDNE%T=XC9f*|&QclkbtN=oWB@*WgLI2WSFs3>*cEbxmr52(8o==I zAp#eDB8`@l?1^j-$}-VNL!lapc5r7w9BdFZNQV_zPMe81Pm+22@~|WmMUjx@VbCkk z+r-<&Kg8!+mW<(C$mTAN(IQ3Cdqb0}msY@{bTGM^v2}eEPersO^$H2m5RkQl`Ub`3 z4Dq3nboL&{jn6;czcS2N0!8Jd0{nwOL|CLy#^08%M_FP6dA!=*{02m^%~~wWL70D< zxQ8{+%Ie$2D_!L1_0zqohvAK-!o`2FQ@q_OE-i-m5h)_b)m@V>2g~Ck&wq5H4>KS zVjj6_ct}&?D6WfEVO`wjXv%gMRPrtfzFN{-YypCM&R00^7s0eCSNNJmHq*KfcY9ba z3u+-88l(ef5bp4=L0MK8b-~#xR-?L6OgI{&J-ZtT9j)9e%eyN|b4eN3mXni*bdkHA zZ;4lUR<(bdL6yuUEVFpqbd({K>28AC9b(>IJ%<>&+mqVI}np~IeP6*~! zKxxW85k7f=%V>|7Jfy+q(s_=OO%q))(eCR?iMUSA1m*~L*1Nx2RcjQ<8)%0`x{~7P zDBVI9vP!RgL{JghNtP~uYUKIJ6sHA(ir~oAp$IyrdUNK zYIz)`8@QxhC_`adGG5N%A>EvA26&XzE?r?AifT|;MAf0nSuF2k@zBay#TyBAyz{IA za{OB4w3d(j5s=-LzY_N5Wb?q1Fyb6(Qug=vL#@hH#X2BrIU@Cl-%K%*=<+VOV*d{^;X3M&F`wgsr9zXeuFR{-|* zWEiBxT>ZUNs4uZeQ8Vxqf$%j$o2ch*E5}@pw!8FK0V}9_GfheH=?HJiDT?|UEk~E+ z9Ng225`Rdp26>zVms5EQX)P6>K*42$kEe}e6VZqTI=p_@CR6?dBw`D7iM6{<)C?(o zO|nPRZ%twWAGslyHn)c&p_u=dDqO-vsmS<3Ep!AK%H$yf$it$-W?O&)CF6UAq(b3o zoLXT#qU>}~mT&SXI`)db1gqg3o!}LDEuTAmAc=CHeN@~B`*l3(`bN5@|Muh`A3=m{ z4$t2qhxJ=QIUIPOLlIJ-Y>Mqf9zQ7(4LEqb z=klEEaea!L$B&oC}%Tn#!-3dux_fdcOpmH(xISAo_3g= z85RF)(2%7>!P*-JL_nOfyNwpp%BzD-hHV7fAkYq5MMA~jKFf%B;8}9U&eYv7-evMi z1|3?&7N;GiLv=1joM;u=aXwzFuBc=$(=~antsRk(U~R%Syp1=>A_EY~+LgIyl+rZY zzz{1-S7s&FIew;FDSdr1l${+(s-QBV;Df^{LX7ZdXGIz9;I&l9Z`2iTpBf6XL?%)` zcadd+3TK0KsQvMY@a%5H-Qoi;Ac#m;OT=>cV5)@>;$|hi8f~r<@_j8SyN6 zJXcAjV-;2JM3FH6Y`6p%Kn=F@$ zD?wa43~Ol3L%C|OZI$sr^k{35_7ui%_~#P9-rEk@+aE2P^U@*SB~Zeyif3p@S)=!C z&9h~{JqdW$A|Q~1%9!O+mP1wpPNdg4XKR#N2iNEbh{4k^-#H!i1bH!PA@24VuPX=R z&_EfI*$Fvqjx=7i*RaGlXRcP&ibT251%vw3e&CdunBrR|4+~x%?aOsDEan$*B!Kz<_-AN$+1ig#|uTp$1KmBN~@1Vh<>CIS z^W2vKcr63quLSd7kMgplAH)EFy4WTNUkZ~TtkxukEuFU2fse*p>G{qe9q^LO98Smj zn_hyupS>yDT>ny0)-$(5M^GJDrqRK?c&dcgAkto+o)>hMFg+BEgGDJoed!^Qwu^6> zv2?hqz!%*Q75cHjmFmirf5w>Ba&uP-@?tShuSAEEo`0O4N;5CFc(q%sa+Xn5yM@Z; zXYfWKR?ky~vjV^X9Pxka%IpRJkSPp+GpPQAXXO?k7X+&=18}T(3;+cnXIs{sy+Xtj z-jx;^<|-fCb+|uDpS?Ov&mZrl-QmEL|57Uh_E7e$fHBV{AXqTXjNAPG@(?x5ZBUJh z+!ls*8b7%gPnGZ*ET=V}b%HZR8U5^zDs^cA0#)QP-zF4iN$SisUy*`Kwm%w3HYT*W z^oW0Q8f)x6IXO?ykIvG;*+tr#&(c(a^FBoT8@d&>D5_n-f?7>h8i4AhpqF_Cpg8n5 za4!bn`)mMW1#lY!0I-&XGMg`?+%uKU8(sDechb*({VaX{%O`Sg+t{`@2=e)Wxw`c8TuP%jnA8956)+g3a6J-Yo-I9aCdj zRt#`6XDEIf)V~sI1sXXcA%PL0FpPe85vy9b8wE=P{+r}qg^F+1TG|5z=bw+%TIt~Q zB0YWcAwBr+eHy(xPM4FZ;+2rs7Nfz{I=V)u0q79+9t^-WTL3Y!7Y~XW20+n6(RBu( z3@0qY;fs(c_k2FLx4w?{w$taodzF6q?_Q<7M>|#~uX>Vw5Y*XL8_Vbrvr1ILa(G08 zC=U>hzl;x*;bopKEE|Astm3mKO9Nf`H_f{VuB#{LY^zqrZsm0TM6D~Qku?(9;B+U( zhVs^xu_=N@RgCB+`B$Oho0&08d3h^F0Ko?u-v_5>>Csp3)5G7tNn;sth;7!?GMUtmemWo+XR#}G7R?0HIiYqdhv#YEYqMaIY<*-JX z3M<$fESf_{TpN~FiJT?F*YjWiHtL@r0jytj&9G3p`+1y^tIojWm^1n*I z_;*tNXM5J^i`k{U3=^5klC07q|Gj{MjKo|<$&_D0=DUO*9%%@x(${1>R>Z9&;}37= z@Bc|xlR}$m!<~sTtsh%t?=0*{@8so0Szh;$LE&^xjCdyfE zqna=B7%4cyE6RBqvRXf7cg2tV5mto5H=oP2KUSh$Z5t4NjcvPAB{zSGJ{yeEe0!`( zwwFeenP_TnLMD#u1~wxrtD$lLnAJhBcRzV7$aM2e`f?;ao_KOsa-AXaL|V>P7PR&` z0ALl>nP!QsLckv z>c)k6LQu*FTonBByY%Rvze&S)$M!z~i-EQRnzF5}XaLUU#N#bu{icC~JtPj@;D(P5}|B11-k$s%TR=nQj||7xE!Hi4)`bs7xIEs^4_EU z^t0c6mVT~f|KZa;OF5ru$EiLBl(C=s+9LF{7501K&W#4}zD7;+FJja{-o363 zv6#9Z!L*5$2EgRcWI!XsXC z=2tp5EX3aqD^~zsl;aNk?F#-vn$3OwE3JR_4pIIWmGYaVlwq)2eYBQ|1V!mTZj^)h zFL`iNt)QQ<237l@HCcl*h~ke=ZJBQq-c~x>-AQkM_B4I}SI=!Fz(Y5Et%SFv5b;AX zV|f=XUxSqfz=X|Ip%u^&39Dsf9{aGDXGzaRJ+6-KKHN*Me)lqc_Pgil;PH-Fsd&2} zs4UF>w%q9`q*2f+Y?5$eW@}+9qD*%e zO=v8f_B&H)x9Yn8XfJ*CH_y|nfAdr`|Jd21{4x?;6l^q>ak&ZB=R;nu%6<%l5dfu8 z_)CLzX{L3k#>%=u@|O(Sr);C5(L#f`xE{oiW#T*A+evSJ_B_4+;)S*Y`}XWje=#>h zVYy>sG|kVe0zo4#ySkBcRp||dr)2<|Y^9cVt{7xTtOGV$S{`<*n?2w)g!Q$r)`(ltN@yT zIb+<$c~w%utqhmUJXOf@X79nCJ>L77lpjNYwc{TDT*e`O;6p~|)HVbl7uS;F<>0Zp@N75rme9e*mhVteqfVVkh5c-aVK z1ArgcM5qaom*N~B?xpXv6?pfHS84j>F!f{v23k?~HF2W+rRsS8g1?;JtVP%wv<$#9 z>k3#Mix0|BX++syGD}Dv@8uER?FYN*jOa{=b@Q1koh9y5&%0^jCHO#bC*-He6_%aLV0*&z{N%yhxKL zJSU*71FHaxfO1^*WHMMtkhen9*R3N>h(#o7W)8arVRIsubDc6$s3Oe#n%WrzJBK^z z)o-}k|1#}9*|GHg41iquVupP*2)q;va$1Qe+&16M;e)%oydUeh54k>-eE(_; zKnt!*`q+g$+Q8evf8&x;U;1sg3gtiD+fHvje`3!GoXZGYVFY9&EZ#D4fDis0W+*v> zGOmfjhSbU1Fg0xrYK%R~ekoy?`R(`m3g6Zq=EbjHq|deN-+$^4`S5GQg{&88fc;2; z3nD7sCk+mnR*TVz$Z7em&ATGe4a?jd*E6PBT^Fntp8(NfHTfM9$br8OYsLlcs=$A# z*9ewc%M@K?f!UqO;!ym=g~3dh@@oan!$M>^*&C73Sr1jfUBH^*)BWl$Ge&19;uhA+u1snXQCfa5y4FHpEs z_54LH0>6b-DBT%%5G9m^&60~9!2=>Yt{3^Z~?eL%_bO!zip!%`YTS667*C<@~QI*wv%uLy* zD@D~M<_oOm)>*e3VAB;qcj@cE1QS%&y7~FkSgvhu+Yluu2*pKHSqb#HZYDK7+uJoG z@ZpQ6X|63c&j}2qe|}-mv)8pYPj+#1*Rl*NRsic@KW|_*=h0p%cYn}N2agZZt6yu+ z|JTpcp_VE9)Q}FghkUw9T|yT6UnBk%SN$hADy0`t7keUJ&>X6nUPgcwvO=W{kV|aDw;>wGFRqlw^zJL#VewO?^;=48Mr`@Lq z=>^aB|K?fRd!pru!Vnf4!Quq2W|de5VHo80Fp+{-9yxiKfif+wrtsGYF4D&r+b?DpQX=! z^*rrA*|YnVtP1#LA6NY=32dQ}8CC)cQHY^PuV7-_8-W=uuff>3j1IZF(yfAepe0Es zsx)QdwFN0*BdtL4BCIRg5N&j=FiMi$wz!RO zo^|FH>T()rcxwr|*f&^bPZeg4Mv4l?E7}-jXIB~P(9L}Xx)Ns@{S)QuXcq|Ov{kew zUPbc$z)R`fP+Vc!gG*_Hv(aV&SW6oE=0V)ObY+}ub-t?n)x3*_1`luW)fCBXjuPC zBxeO9vpv?}b$AtBAj{Vsxe7FvWvnw@Kga`Q3@Y;HbD)w7SLGp9P@Up-5RZ1D1tO{} z#li^4fp!rxdRVd5_+HAirXa&I4{u+9qm@5<*KsXHScj5FErp}agYYH3m7wdS>41{o zFvpG2kkveO2(GMhrldwhaLD18Ot7r52U2cLuo!{IUwxk*|LJww`u0Qm?r56+ApLuz z#JrGnBm=-3gQ7|D$sE;1Yc~LkrU6idk0VoC-f3bAeJ(m44AbOrKkfhWS$gqX?fIYW znDX7E6%jpjE3nuG@mJNR&(9)A5U4S)Y8z5n`s`ub#&-YGrtL+PHs zwcE!FER8c~9j-M1WFx~s>yO3NWtz%A+u2V2mygro7thk+i-Xi3@N&;tnrmxd%1b25P{r2?vq3Ue%P7({LF%r^l1tq<6%=6J2+J(0bOp;Y+pW zjE6kNm9q{T7y!?}(@B?Ci!?{EcSdRS|86=|QA%s>ekGs!wOQ z;QVg`|9^2;f*7|A1C!79_*VO>wrP@? z0R{viYIp6%>Bta?8SeIo{J zWE+hTiU4DfrOaZ8{Kn-o$gNJAGjx7lY9X_54Z-y$AYb+iiq`Bj$##>+=rf}GF)Ry6 zSuHF|7Y<~70o+aKZPI6Z!a6EfI7dNswBwlPjFQUN`7|WIe7uWrWmMxyd$f54%bu+) zZ7yV7?!tWoy$<4+z-vj-GhdV(Rn#E|dp!@3wDDzyg6hF}|B6W#auTd?m*-y)(ziA_ z8Tp@k_}9HLAHV67pI87Cl_o9z!v&yTgTxPrD^jE;uN?#8vE=$$zbsO=DGL1}+ilWU z!PTX4G};?0XT+j?k27=JgI;o#dHRf41*my4dVM|3oK&Y8Ua@%(BJ7IY<2olLl7rP4 z4mkMwj%VYh-t~rQ=Wp@@r??%orw6Sf?0u|9V4laB?!hek^>MDj@-EX? zO^KZx3+1_y4|mR05Z@QTgr>|N8H&+6{W%uiIHJRy-kPJ1>j31ju}8Igt|5FVMKV6B z@aw(*e2Er1u1i{*RC#wwev@^iOnSmYj6O-9U6RNK)2lU}5X$(9F@ZD<77 zK)Kt{lb40rMTFZtqTCCThiusZ_I*m&vE7iePA8N+^MlseAN3ICd(0{81gyw6kX;(r z6OH*s0FQ6Q@v-;#2WcGa8@<0()2eI!yZ!s1s2r1_nBcb@*0Wul-;hg3^@6@i4k=#} zXrgfSi2@ZABH6MlXJ|4=EI^rBal%hdY*OZltN%$LN$%M=Rx}&vN632Zo`N;#n~j-2 zf|F-!S!M*w5k%c7pahNXJ{AL%X|yy+L}={U$$Z+|rupAtbL&RBF z*kTg&<&H5^Bq8@92KMn9O4;i&He>3|+jjAGpLIV+kDI7qwF6epnZotkqNAIx2nURy zJP&bmv>;@Jt{e3L%Gu-s5-%shMjiO%9XohCGM3^&kUr$sC}J+vN5nMO69DLy1%RL= zUK*s-4H8l+3+7ipz)~uP3Ib@OIH4D>Udkd2inSzAgGs$m9iyGN?08|gh4O$Cakl=5X7fWW-tcYSYno4Hx{$mTs8agIt^EMsA1n-1IB zYS%7I-SYFcY_4?LroQu&yq$E9sQbOL?RLRg#`e`X|79aqwwaNCog9x8zw)gGfPw|R#)m?|I-StvX;&$-LN&RV2(7!YgzT9*qbl7d>L8#K z^+K!B5^+%C;E}?1QIm7m;J8KP*%8ME2f1Vk_9qFgV%5ji{UE*J)BQGT{)Uogb0EF} z%vLtxQIK3Uy-HU&&#G}J>n#$@lmHOla!J>7T1TY*5e@7$(EmhXaIJUgFLNR3B=^KJ zg?!~%)UHXV0%_7(k&Wh0Q3zv>hHZ)h;)^>XLh%~TmlOz{gpDEVHRFnPoBgDz_E1>1-+>r9(X)OY0{Q07x1__ImkFbs7 zyh0sA=X!7J{-3C7I;)Fz<_6v75p|sOq>d@;c9TwMy3G{3;@R)~2h#=!HaYo=QDD}| zmsI(v93Y=$+cJJc#z`l_t|vC#VcI<*HpM4C|MJ@(-}tM$fBpUMr!V|G5z7h(#>GOb zrn=4J1<)%z(DS0>5K9^0YNaD+ye(J2Nlw_3WjpbnoE?liV;}OC$xXi7QmFt*Z-v{N zSU(h7F#(G1QqR(+?IGNUqHec=e#z-(nUH9Xsn>4XX|o9~${&c^0upU71H92^2V=*h zzi#xPUw{AeumB*?eXOUTt4oXn%(!B&^Sv7j8}kOZ;K~e|u}(I`dvh9&b4F<&n_Z8K zKw*;fR6GgvA#lzt^3jR(tm^DE{RwbNz9q7yZ>77`LN_Fu?K}j;RWt+qOdJYK>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>DccDo{K~#8N?VZ_{ zBu9>(vo?}dT)N5LhckMDxzN#(`cgX5OU>JAx_czebhEkFzOaN3hTj~HF!%6?jL6C? z<{yc0GZ+j8gBjpUMn>NG=YRg^|NZRQvtRz7|MPz?Uc7j5@!-LOi@SI4Ufkjqw|Ku{ zasJ(%|M@@v=c}*2`s)6_{_DS9JbCiOga7{h`xkHDz74U9i#vDjMClf{xW#oxj@=RN z-Mi;xvHtqb|M(yOq0pDvz0ecA=~DY?ZhZgDfA1YjrjS9kvFfBmoDJbwK6 z^S}J%FFgU=;ug1ff5BCLTmgK0Py*1cz}BmS+gpcQ+~Vr7FFtbuxJ!`MKozf&Flrmo zEpBm(tH&r7p%HE$_ut|cKSL-XTsi@)WtUsr;uh})ipzbmd3yzLi(CARF?ci(+?@#@tpXDT5a66CiD;TE?zKh|P%>xo<^eWT}> zx&=T9hTI1KEpBl&Sc|uPu{cT)cmDXtKlbb=&4nf{iBmCUDqh+Fj@fGIP*Vx^vFq90w`5K8L@8xZ*hxTYy+{S6D@H?@bhbX1-}wNP8cK5eyIci zlmI^d_+!5k`0&FI{Ys$T4scx3af@5rVmtB)R+s${F{=bXLQuS&JpmB-N&x$A2O#Mj z8fL?oR8$(eT(E2VsgUP7v~7STzho@w+R|63I&$B&w(E#&@7g>vnv}iUPnH_Zbf5l1 z{j+A*8kWYX`u54up8F`SxVq*{PpoqG=cw|PBmmmzOwe-`pd$&O-VV@Tq`uNUgEikK zfL&A_x$j!rbwsvzZ5|m-%HHiKOO0l_PyeC*S+i>mOXF01`{Zb+tXKm1o}XCNnO|l7 z762^SPy5Ldz=*gVAPK|(t|LE~5Kr~CzU}3_SZY7gJh0)E7>(n0tze5y(mO-Ubt|eJ zYc`(SPnSivH++dT0qCe( z0!T?9U&5d#>vF8EA?qJo0W3}G(qM?Jx|q0wt!7j`>IdIQbMtwPbT0J=Yi-vF`|KRF z&sf?orQg|uzuL702bxsp;IUyW_Ji7fdh^r8i=&kKF;WNudk=IZlf${VIRcll@mP;+K~ zjfZW>LrZRhIkLGY{;1D>cdvLb5&V|V{CsUcWz}_5`Q#4)h1q5`C;{Z4SD7h!ePlfxLET?5W*>{H6?47YH8*EFLgzt=(|b>`~!=r_ctuu1v_#<5qQcjAG{UqsbALhiq$bIVu;_YE-+ zguS}#_uuueBml~yvm}7oCJoR=X9amq00g=cKyD`qK>2e5==Q}aLuAA2_$;Cp6!b;i zHFJX0`A|*J`)xoTYYm(1NZ6wHAe}KC_i6Y{e(ZX{M*B7+jhnHvhH6fix0eDc%9!ZH zuZ-Qthlku`PRG!{BfSHt?{MB?p&M8oyO7O(0jg)4^&y|^%O+Ch<1Gy0H*oYroO_N9ddBNQ}lgXl{X1 z={Xd2+&t!5+hwq{HdVjm;O9O|b}Z@5P~WX{8|g$A$|po(fqQ-r@aGobcJ?Q@PniG! zW5zA{c@u!jx*dQ=zx-g3G01vCHaw3%vMI~%g>`%92_R&U&$>tB95lB8da9p}(Q_!O z{dr7pQeEV~O*8Ch;+q>5Z*eP4}As+(y=`%aqKb?ZT zUl9b|xCDUQhYvrzc=T}k<00C49)KPafxvjzec>*HyeRMUJlC+cw@!g`>pumsQFiJ> zK04bIgAnDd2|%>va{%B{34k^NSAneHSG^_%0$pSBdP0yr@h3 zn*!N?6Ky{hnkz@^|)&xLZ z?GHb)`bViAq$Gf08jIuFWMt8)whv?Fan{D(f>D3*z*fEbkO;s(!V>=&Tz0O9Kx656 zS=%d)@$pq5+e5JCdwvi0AO$!N0y{sFLvDYk34kD00uT)ofCAovKPLbs0qLk$0&MU; z8GjGdiMhz!z9Ci|0vM}HnCuoucE~?Tc9ZQJkbUpAM1A5W8D|a}V+$5AYQH3V4!0uHWbckmYzbKs_gcK4x{U zwY66Ra=i9p#UYM7&OX@+^{xG!eF?owU_5jgN#l;c4jJp1KIekwwiU7+?CY22Ioo3u zmA_T5P~;g)<8jIFm;D5B1hek{X91so4X9g!g#;kFk_12-fl9#ETL6`FeJue(n&E6t3Ycurq_jf~*R~yIvz>lCNkmJlPQX(LjGd~A;t}6kEx8=70 zw37ffeGo{HQb1=V00nstc*?oHH35)JsPoVeA_?TnCLp_fQ?-I)Y0|xJ?b8ejtYOqz zb**7({OmWdq_c^QWwVZBYyyYcb?lfGb)1YkzqN6y%#z+iZLNB8|HU@rdyCa2on@8q z1lpk4(|!w95`bU2M*u@NA_34wX9YNv1DR3J^&~2|!L1+&niidpeGR z*$n8~1fNp|S+mJEb9)R-ZI)N7j|box$0r&)9WC zI_Ou_4)p@~JN@HWQRNKo2m4Wzx@wQfPhP8I(X=?n#`kw?^VT)l%=5DGjIS-4{j ziocHHb=Quf#=GnMCY)#llXqG|=;aUcL`XNvuLDuW9qG*Qw$cZ*K8M5ghd%jHE#BJs z!O7*$>u=M`s$zHQ^0ar!@GC71Y&c&-J3?xoB$5tea$JM=x1;M*Kh=#!Xl?DK@v{xy z9=dv4r7ULw#j)u~FL>5gPh^<{=^X*7(?;8bqZ7au*c79*AK4iPfo|L(WG~sh-A|@Z zBz7NzzdaBg1PvmMhHQ5lbH*16i|RnC!TOKdd=9jY^wY!JnOkb7=ylqn3V$nx!im|7 zR-inT-w5@;jE)TVhY`1t@=5m1sj;S7wp=3|odA}y)v17+*yJq?!f|q5YqWiCi)z9C zHi(BhIp8}|U)LG2-^lp<%8?@?J7jM`RDpGCdV)vYc}4T=gpwaorQpO8R0AW%Xuc8=P)ZL!l&vZ8E*g_srtMi>M$||FEEt?A?JL`=n}zH z-#*8nfQz)^PTLUH?tU1^wYf3wMA0ypr_B#Vmmfnm5!?)q9OCE9F|-B41kfkGfVIn& zHQ#dbxynl2Jb|1V6tdr?wR`@ic;>~_6Lhe~S8$nx{C+po&99-sH#xra?@{+;JXD^I1H{!M6Z?vPMT?PdAz;XL`*`L$I($b<=kT zVxtHo*-ZA^YmS|QzX|9~G_auQ4BCq=GD4p~9Ip`$P5_&nvxa@$wK+yB zv=7);>_d&KN_rRrjUFxj<5@ z(B4tT19krOHf=A;{I&On`)?oi^^yIMWXpW61CDwIkpC2Qgr#ks`Ad%Xjbp@-R+k9J zEo~}5i>S*d@bPjotc}}W=fG+LSaZe_{}jkh+v3F9zADe0I0R8&k{5q8Q!V_i%$(ysjM_-gh&Kb9 zY5_|+D|~|<0^|?rBR_E5+-<(4DXS~TtcI<|>7etXux0KU(wlW3iyrufY)99f<3n=n zg+xF)=K9*}Dsc2O02zBM_UgbvnHI390o^10;;re$wkS4GOZ^O;6XQ&Nff;&RWg07u zmp6e!vH@zHq&xAlPPFumMVa=3$-ar~ZK4sxXPgai>1NWNE+$F4+uL3v3z|L`Z1Tq8 z1@s4@(Q0pP?n0eoo$uQGz3mVTChT@$Q}Df>NT7W*9<%w$UYeEWeQI3!Gk`;p9hM!p z2FbaVT3}H{Z8xe?s=u{e*K|*oWSfwyeO+e)^0|+19BrO##~v(7WPN*pj!GHM3x9|f zHHXbh?L9$t+nW47__!{*O@0lGECQ}u#5{wRkmoSXW3I=M+O}de_U=wRJ&sBM?*(x7 z%3|+B-bhEGj=!>LhGVI}bYxwp#zx(;5$W|FCb?gz!N)c#vZ_X_Ba8GP4a((SKNa#i zEMUEL7X-gvz%2ITsd1wd04^E1B|Dq)%=s&R+>s5a%l!P$ds61b%xg>MWSe8(*`=ar zA7aPe75!WEZ9yJkXZ#M0HjUV}@+95*PIcel*+2#B3i8;8`1Vj>#ny!3vS!Oj+UFem z;GFgzf*X|pmRz>v>>cT@_>f<}uQBHGz_ zv_O=#5qTG>-D#k!^=LThnJ+LK--sccC~NdAFoMgs`8hS#s=bT8GgN+-t!pwuC+N7*ZvmZ9M0-VEEaf}(D*Av{*r5k z`G%Q-zLoFZYvkoj*3&7Er z*rBL>M%o1*zZKV!ZCvQ&w>un-Cn;YB6-;`+YAQDIXS1v5b&?! zKfCb7jQ*vJPuo9efV>=E+K3GDU3chddd>ZLY>t)mW`v{@eG{Idtxp;qb!S^uRM7h zZ{R2ScjV&{7Ui=a2dE>nvTb$GgM$-*0^+KW_SO!>A6e5Jx!Y5VBGQ6D)cs2!{cPXn zskyQ-_-0pvo#1}@2;N@4vrz{P?lUKet5i^3|*M z&l^k^ruovMKgM8R^t}O#rdD$}D`bc0o#$BT(Xk}se#~m|Nfco>n!L>!)C0=qsszcA zxp%TU-(ZU`Jds-Y6*3EiZ0l=vNNt@zpwwT)7_)Ig)|0r=3*-6vgda7ht{Rge=_50RtqI*Q|K$0Il~jw&=X4nI_vkdzsZP579IfRSKshP z=<|)x=hnu3q=0(fl=+Wz)iKIW3vY6N#d^*yjYP85x}s_^k` zEX^_7=vPd!*LwYRBk?L_d5Dvg;QM6(w8cs8`Re}#*a;E?9SPDc{}|+>hw1zO7yd5* zRR6;e#|M@KutU?BSz>lk_qNeQt z#lz|N$uAva0pwsvNsWJYg3m-gcRN0K@PW%=m;bs-c4Eg0`r2f>GlCzj+h95tN7XpO zK-Tw-@$rj)pS=;j!!O>u=%Cj5RsSi$8buMz%J|KQHTXd5V#K-$c^_7|E_77HoV=g4 zlVJSBU@?YY@Q+Ry+EY5oKzYB3C)q5MdF)B;3&n5+?b??n^X*Yr0C{8QGq=jBpXv%= z2k^0R$xhhbq(YPHEJxGfWPx{=;6vZrc7Km^Ss>2xKmPcmpYeY*`XS2jbp?R)^I}5u zXY-4wL-<(9gT-Km{kI4lv8S2WvAU>|7m!JEgC2_*Y~u-|u@huBw@`iyVDrcpmZUH1eEj%FPaN8a4l@Uv-1dR5XPlL_I0S2Jx`QH%`x^B^v^2eJ)SLt%)&1T( zC@0TK`Cn+|J_iwF4(z}_VYVM~c?){CR^VN|@ff~X@^fyZKi5}!of9X$0^peWGv2XR z0N9f3S#sc_&2lPKWn8ttdGIlRHX1?Mf^&YR_p^LC(^IY+3i50p8D5#1F(Br^5x)P* zFarPX9lHwPa|HZ$z~Hu-tZZN03Uyu;wOu|GKl>D(NXTXRGh{f5FqFA5FV1wF={0wq z!F9HRuQpNj*Ane(&x9<#Ryp^D5ANGNKl_f`H0{4QLwdWT`iO(SgQ;!SCqXvkIc9%| zm+gD?dfr|s%R-tDSh54qrYnGh69Cxv5Kv{+op*v;01tj_6IE1RS~ObF=d2KmFmv9k zm#;j)^BFq_elCj?{5ctLR5HMyA}ts+1%Eq2Zi(54Zy{`C_I)ih7prS76HT(-=7Iql zGm=kwn=5DpN7PYufFujN7IJSasrkdMm>ct7N{phsk#l{YY$eGU)-Uxw^65cA|+CnQ)QJ%kcKe+X#f`|UunS2nLb{1a7QT#E!y>y*8I zL;}#g7cQ2g9kQ?5Ij|efjB7H?PXu1SdhG%I;}7l3Pw>~L{JIjzJOW-sU5P+Rp>BFD zFw}!Tj$8#`&%L{r0F3-og^>h-UkXx;gEjEpKv6Um8YEXYF~~XsyBxznF7qh4ozUGo zHlOxuK<1^*$^7LH>N-|ZpWGM9$+EUBQI^vhXdM9l)t>tx_F&$B^8F6PFFwukltt`a z*)O}i9QMq3VXyO25*S?#RQYR>04NXZM_vI8aVQ_yS`kF(^r!6{jZG%zvj2x4?B3ky z$0ru}kDtsEz$g*qGNeSHBv2E877SvcAm129+8{uS!&wMFyAOO`&~!&Q^GzydAS=1N zRl9iB5g4i($Yma-Zm0eD#*9GIycK*R`6bI_A}Q0J+bBcgk7%Z2p&ftsJ#2gO!}yo< z_tQQ+X8&dRT-N%!4YJ+rkS}D{$Yzqj(yc(1zmf!?&ZEFpd04+>0+`vfWMA-kUyx{5 z6)xBA`#D>4#{cfyZ~Y1XlP4DF5!8<(87TN6|7}2AA>=CsNHRGY=vE*v5(~$XjiLW7 z=Vc=- zXPck1-J5As^MN1vO#M_}Bgu~XPzQDIeej_r0K5Fp{KW(yo~_jg-6yH`mwc+=td|y?Pb^@+x6A(T^r=09`RS93A0O*if0h(1 z33x(?pcmEPuU7yBf4u_83BdoBz=#bZP?CS|o4<4wpt*V3=Osov%;5aiM+njA+gf@c z$I%gOKncmqaU5Z?32EEx+ybPHskw`&Yx8%~SNjCOjf>?oZ6*VZ3>Qj z^{R({58~|4RhQaw0?_=Ns5^Iz-ltW(yeR=#0#p*DzV87bH1mm(<_KiR2(&2yC?c*W z2#g4hya9c3+0px8vh{MxkbVWoGY2IRG;d-3AAof%$R1hu*N9GES|Am-Gol#vs) z$u|<q%pQ|v&$$KZ;=0|^T z^YXSN`#$4ZUjeWv)0SBP3mDWl8tm3O+qllRH=T9-k9zW^A@J<--^l`yM4$u!QAdsq zOMtVf1kP$AHc;K*KA!1UQpsn3CmR#p+Q{NlW&<;x=62StiGxIEKu!XHdQJlPh&hYo z4+6ULp3Q?jlLtPsmLTvsw*v}(t%=b0%K>vml2w>#I-vh`!}Y!eD5wj#9o8?p=77}Z z;;3@pL?nYq0t$QrQJbX(`w|KC(|ij)b;Pw#0Jw38_#H9$ve zJq^rKe}VO#emri}6~JcLW~!SEg2jha*dW?mHQ+dt=n6n*XEr5Q4mALwHDoy@40Py9 zKxZsJYgt{CZGw>3Er5e#-4C6IO`?WetKC+S=9hI$+ya!l9Y(otDue115x~zRNdjIz z%D!=b=}L)Yoo)vxzj$fEZ~g090eD(RklVXoqRp7?81Ozcb;0w(tlD{<11C=aa`u&g zu`(r4^Tk!!Ui{Ae&71ZqGzAu$g<}u6=eF@;Q?bc%@Z}A&1+|X|e!mikB*U29h9Jfk zapgk4Mos_B3eyW|z7BYX-p^~hnDr5&Z*ODJ7?^i2iI?dBU=yfUR0JvWSHR0hm3l%5 zB5Cw9f9QgMj$7b%nGKo`?~U54@h5+}Zc(8799i*;z8Mgix?dS?^cBE9fAw}N;P5y6 zsc#CZOg-@88)tNNK=8W?Tf{>)(FoE3)n^eJPxdG=<+>-L^xFVa)Q*QD`qO)p1~xK> zpk0v6OY*g5uuV7CMK4qx@PvRBo$6qJit3;y>AH$DNdOr31eG6}3b8{j7k zAc6=|fI%Z3BuH1)3u--Mtqmw4B4W6+iU$tJfk z%7Sww3mAHzsYP#wk1hNC9ntX3xXTc|PeJABxd6Zy1UYAV0$-nxAoy7;`DRJ?7SJpA z_xXCMVW&OFfnP*{sWgY{F`|7*<|=VFFYL8MaqKa0XR}ENq!e7tn_~{RngptEPU$N) zQ?`MlsM_dcw=r$k_>AIx8Ma-cWZ<}>nP4la&L01$QN z&lQrc0_tTykPhh)#FOl-9Uk@4$C2$EwI2xAps~=M^}i$Bs9OMSo=p3I#Ej@iU|BgM z>r~*K8l%mbk;fN_*90_&R`!D07SKkUWY)%~B~#z5PGT~o*~BquCUYb-N7*;36Y#oS zQt->COY_S7HMt>j-$d|x86a24#}OTX=Gm*mwN3zXoo}?*5Qk#N{jnfx%c6~P&}KOy z^4Qws!n?6(4quN}JUjBbQx+YvK8MJj3fEzsw&3omos$>r%E8#NLGqE=F-Kiawtw^0 z=3OaYc8bo4JdVa*BA262>q_TF4*b64d-du)9h_}=EyCS5*ZZ~)=Z!(Z6LyE%1jfqy zhqA7Mn7jUz*T1~Oj`$=a_dO*TJ7ZQWZ9p83UOtmur@%?C08YIC(&mmFI64Da5m1?D z!@hy+n1jrNDF~>n_AGNQ$X|8bO0uKd;*)7bAhpI@@Wf3yk_! zyuE{ut%o|f0#yz}USsAZAMqs}{KF3ZiOk0zf9y$sgg~46WIurHpGt?|An9cPWx)FA zbxxc#0p!Iy8y3cZTU)TlDV5nU3OJFzg{V{fLle!1%TPhQt9vHT#|>yKAU`o@1wTPg0uaH|xB4ha0tI=uz35bZ zGtd`B!F3#}Cn4LFvBW*k%0K4wmX1bRGOF`%KK_fPlHdPHc;m|oE zpZmz)Y+CH#a@N0>PUFT`Q^`gzTT;Sy{m+2iH9O3vWuSL=KcHPy$LgjmnBdKOd^Yka z{$c+3N5QXKfLzYE10V-FI)u6ody##-$rMHWl@yByd?M`1QZ&KKgJvn`OHo*~CAv$Q#;mdeipeGD9u}p#nfxTgYfV za?mUAb5g*6ISIV0V7iGo`ELQvj+KR_g_$hPhHnJce}Tz?<{RyS1^oxc=L{<8aIg zfU5zOp%(mcC4!Eo#sYB)q-9H%K_4e{xSr60ekaB%6zF}az;;3gh9Ok7x&+3^K4p!V zuYz3uQGkooE>b&dN%8<$ul%%w?$bs{cYmZl_&Q@r-{LqMknO!Hycf3sYc8X$wewJj z?}Tr`$EF!=C~Y=~1fVC*N&>FQ7O4ic7Eh%1DyQH_?TERQ|%6(IPPjG1>{3$2sdDoKuV^H;kaknf>2 z^!Z6{$9KE^^M1(KlmrHS>9?ux331~Rz{o-3^o15>c-0&nXBak1KKp7D!4oM+KmGJm zKeDm>GJIi?G=5%GfP6l)NvHHOj>g1>y4iU^$b-R_075BXm>8;$h;5<;q;3u*8yPqE zALvlu+`nTq=70sVud;ub^Js0fJ|g)m`z@DABqUpOkJh9EezDtSMMB7!CVzFnFZ}`I ziUjq7v)kj{;Ais?a6-GkWJBo;UpEk>;Q#Ei&n|xX%U@pn;upX0fJKgtsxwSp;1Sr^ zx}QZSde8@<`_oS>34Gj=z{iiKL?H6F#!7qdl$g)r$Su0y3rwzN=b&5)en`Qe zc}tZ22GI|_b&Y2A9OM~G{39{)!F9m(PXH{$hQ-+AT+_qSb7tTS!KNX|A#E@PzK9_G z>=!KwC=tL%mJLgA_x~mvgnszi)aX_snFYTk6eXZX52p=IUHpC~!}9)ZK%xQ?5{E(= zi)TVdl|BLlR|J?_S;kY~iwH&~NX=hV&-$6a)F#4z9JNLoJHu^=qx%Z~1^FBxprfIA z*!u87U+A1`4&6Z+K3*cBk9)tO@)@4>KlwxR6DXXlflz;Qm`irHq=F=5W3wktEk zK*x}0(B_`a!JspL4Q2)SF+~6DOX@WVSOuzU#MpZkM|^{kL8|k(X`e49!z}Z9b7UAW48=7g2`@ zaFtc3o#a5W;rNm1d0=BTi$U8M@`>i+pu)l5CwPy+hH|;+Gi$A~eXJl@t)*ke!=4EBUJWZA4Wj@8NFy0JOy(zyALnI9sAkGqkTR63G22P)Cd- z!F|WZAi&F~>!e=^K$}Lv&qn2}0@c7*@aF*k_>)$i-S0;`N8}a!x;mhZUsp1|+v2}S zr@)WDMJ1TR$PWXo`cOw?@KvkL;QiGeB)qYW_=*jhHYa;a-)qQ5MP9zt`fKe)nV%`Q z`MMO@QGe>ldO|mnOqTNxiBU#2{60GyGsT$Z*eesVf6$-=kZCOe^na4NLZ?Uo*Zvj& z=Q*W?pgdccTwaCAxoGSE)_lYUAczS}ouw6^1ni8`8QL%Fzxe#(i!Z)drC)v?&klas z&g$G!IK^0yCx=w$SA%TCwn(v$%xcjNhRhYjrkr7;50ToDl##N~%M+`fL1Hb&gYgYh9eg*I#?2W%0(5DBr>9pB&3!tlk8QB#< zt`qb+`&0K{`MBieM@QT|9^&&-gj?vDU_kgFp1h0)qAfOvj(-*6R> z>AkxJ;G?_CmKaL=POxhpJwsZ3kS&p7!Slvoj!@?H;5TCP=39ZB00{b?1Rh!fc+>)2 zm;5S=bQJ&}JtP~=i!{|H=2iv;qL?^Vv0A2z5ifk=>t1Q#F9CUzaJkmk+5RuSUh}{1 zZBy3Zuj@Qo|6H#!wT-fFBgD(~ET7AeuW6J;YVRikCdAy9P~78wNJoH(62K@iI{!8S zOnNx_6@ZZq*v9qu0K9Bt)UnMe*v?BEct;0^D0BALgFbZlSzm#lY?X~l07?S76cy=8 zK#73h&Q}Bqe26-7^y9Y^ScTah{LQ>DH1D^mS@q|LmSi%o>JneaN?J3?a^IiVS#rJ)d`jVkoCt%}yg8xE z8giNBhY#=t3BZW}w_^@?@th6}e(3#605RqwR_t`pZiLM<$=t6mtjUlBEbzJPcYFC> zfUs>gm&8*7s8<0w5h(C$@NYNKkZ9eu+!;o0B02 zKX5m-HqE`u269~qzymx2p5KxXZ%P0=bVUi^&L98y$8R1#e*F2L{`4pR&UFa@46mRK zN3prtyxQy>>&AyZ{3wFrBdZ&!o~i2L$bA{N06{&%|g7-I`b3>QEJEQSQ0$zCY z))wsb#miUie+lw6)cQvh`Y%2>okc}&wk@3Nq)o|&V_rHE^pt5wuKh+LY%^q?eLb*N z!vxQf#un6P4cTUgb(t(^sG8LZKT9$mJifY||Iw$f?#4eE$o2W`v)h`P^Om^)^i|pF zLm)W<2BOZIX>A}9fA4`jN9)tHQD3(ykH;9?`}mQoL|2WA1;6!_@|MOE({s*YE zm$KwYCZqXgXs*Pt$$Wd80CXdShIs%`iQT}l8C{LhWs zXZroiM~p{Xhq{{{`evPdJrI&yo?96ksLvXz&G_L`3BZ`10K!lB4D?^K+6%dnZL-B> zquKutBFKX}tdMkgiSdyys(0oXkPWP#Cn*!t+VH30+=}VTS7_{G^m-YnAkXnO0Z>0h z0`Rw8n;dz<$XK;6lGVMJWU>xpsU~^enWt}n=)xjuvpDgP%kFjIx&9!*bwmR2-!I!G zzR!mrOECOK!LK$9y{|TW25lU}j>%Xt43aT)Zf-vSwbzc`1;}?K04{HN2uN>T*$B`IL> zw{wEHvI+DAK;TBOLZbu#<)HRtaK;3n6n8DbRNgX?g~=>pwqkjC45bQKOkN7aiKeqV z8o5{G%+2Nd!$2BCY0qHSt#u-W=d&e?^6(!AtHiAr3)>3&4tnK12*5fG*Hs=k0iGzs z>p{_0Bpg0mdu!CkpO7>ewZ-U!fDpRm(@gf}BDwDxG?q$haQ!1NHV4W+Uf8k$OH#A> zxKN&7kp0XoRwaq-lD%bu$)S~u6?`XCnP}>-aw6V(TW1F3Tcer54fwyU!5n*i=;Q6m zbl)9-efwk!uJtW|rZ;v=;vVA&x)}K(`Uh(Q?NBQ^v{0Sw6270wom$wFUwwcj#(74O_=#lKJocxqHmfn^P2f{f$VKYenm!^ z-+V=RB%Ap=)a`2PHLV+cn|;MC?;Wmn0$7Gt=e%fZ&$}oA6MT=Q4HYys*Vi?Ig7%!q z6K)Ra#g2_mQFq8#;VMIg3Ow4!w#zZ`Ci z=963FWj1zlnK;v`OF~l>4Ws#aze2EsntVKk531aRH$=S zb$QAi*)E@d@NWWcRsvup>Ou`xN1G5yQ3w5#4)yMRf|lS5%`wp!UGvP2T60?%GhQR5 zlHLcmJ7}f`A7wJ2kCNB=0Ie;fu_u1-1F}x$P{$46vrB7mm-=P@&E_`n z%POotBaBD6Ubs04Aa5cqk`QfMot|a3$P0ZVXIl()d$^o4wbf+VXtctwb2|f;wAXnE zYY8!<&AVu+^&^pO@Y0!lG}OwpqPQ8cj&8Sna3-5CgVh9p@mm-F+!!uEvh7eSkzeb> zczMj7@wM55Xcu*8;RD`Y`ZeOvbaWi(cY5>MH?Qh5uQ9L>KApj5wgCDWZQ2ugZhKJ2 z@;bgqB=oUY#&2GjUWcICQZZ^jY=rBF8~PCNJ;U4Sk2ro#xaq<3KHz3206RNyE;!3o zN;>lZA7Se_C$Y!I_sO+dhOQPesZh_FGnidjUGE$4eu?rpGG#I;YYGhJz3GZ!4;X(d z@(ky*9fKMAtIXZ!lF7h(D^2iv$ed*#o*CCV0kH58kaKx=Vv!8~QQ>nT#^|W^fN%0B zgIv}eyl3u@-I*3pH*pW{1zWBR%O-d13y9p>eKdm2Rqah?RoZ=4{We0=x&ZvU(Z`Im z!5!BU?<@iM+2z1ZJljxv0;fXb9Xck`PPw1Pt~MZ($JlCL=s}vhaQ*UZG5CcT&q+E& z);#ZRDE+I*pfkuXa@DmG{Q`VdSh1*)cLgrywqRC-i|b`?;lvsZuOgv z)dX-ICaL|Ep+#^+qimhE8J74!ywMzeLugYB+K+;C8lkyTL#s83)1q#2&3_+ey{tp? z*Sx2!?mjDM?F}=3%O`>E_W^lggLuJP0IS_r{4fm1PH1BXqFtVFVxKWL9R>R3zSjr` zUjfV}Ho(62lOUXIZ>^pYe(|0 z_P9-_MA!!Q*+(iErOCC_IkI_4&na=z1aQpR|ENTeS3pB%9g%fC1KZKX%Q(&xt&Hz2 zv{xDCD%y(FM`wo_Ardr#<}jp?5tej--ezMu1*E5w)t7;6dsV2vzz8Bo)>~}I=z2m% zep2*FFoB-B0#d$GXeD`WA z0{5TUCTh$BY&G3dnN_DDn!eEK<2h?#4CAXU>s!Uz1~~>{Zyn#QDr1diQTsVU=SaSy z_g@%m#$B6x_))lQNVMK_9jf(_n4`wsx-KD4ztfyq8F%B@M`G1ZCQ>)}h<8rN1q%L_ zNxgUw>Y2lJ1_3|1ZgHlz3ZK6yup~RU9~=f6{CSdwm|k+Cj)etkNNQr>b+1i5*!E8Og!VZB<{Oa|i8iC&xt9 zj#*p6nqMkhPLwg2^P&Hv&5V$vKI;i(T)mKsF3~x)&>b zNBg*0cEmVG;NUBOt($Tmrpd0Ox*|IaxQ?nvb!0`thB3SRpf9~M4N?156rCAW@6rC& z7;AP2`^MOy!-F1*y7$>KcE*YwOW#amUbtIohko(}k`Rrg{|1t*lP;-hl z9ruA1>U}$jy9=F!JP7L;X&w6bRc3%K>yN~m6sMVXszGjgodX9afI~O<63~-r5osa% zVkM|=*3rvaz@WWIV+pgq=+$_cf=|!f+wJ9;$Wg}76ZrN%$Et4vLmACwFrOVPjFGvN zRY&6zWvCDKiF~X~1(mZaaVBKrlh5Q^-bLp?_s!bOI$8pqtPL%Po&rk0A zBlVrqiWAT1e85+y_Ww1+^?wFXkb`3HRe;GxUTFJpH`bbne zt=3=X#N9&;-|NgXA={~PwR_)U(?X9ev#q*~5rqbHiQE>BK^d8!+tk+#cG~LKZBi3f zapUQs(rQJZ6+ThdOpqj5_}t)%Dn${I97wA$JU75c=9 zY66gxuRE|1${X41UJ|Ci%a%L@%979EZN9r2<$i+uXy7Mo(E|2g|C!-oE2{J0U*xEc%cH?IQU+;x0AlfN~BPdopY-vdE`9Kr1WufM`r{y+Zj-ShwH zf6rul|E$ByF*a%js^mOGb`X1K)U+AWfh}HwHF<3fQ;+lD-~`}j(PF%KmA}RKQNI~z zTWQCsLyY<@$%5Qw{jiD8pNoqosA}->tKJx!S8J=iTEDy@K<5PsO_RMsZ{y8LV^;X+ z3wn=1Uavm3Bk7HXKAsVM+P@9A2Kv)R&^k3a>Hg`>n~OJ4{Htz`udV*##mkEq&tEvb zdhzPw^{dwxZ(fJ&o1a|H|HXHh0Q`0#$le;w(Cl++-ZBasp}z&&W8XP`njzNO!YsJ0r zz6@5$uL}ZmI*=TnbtQZHna-91*I60fHKm72+ z#dqI*ck#_P-|W!WUw?h^jnTK?e0%Zz_upSUe*F02*|TSsC|-DCU@gp$K8Dt;+1AF> zK6IZNyopzcblGSJRvSV(T%VW5pug)4R2wqTq}Mrc{ci!@IdHtl;QL|PNS)#=mPwbS z_SX6qoN`IWBb*t@Ens~<;TJy}w_psmZ+wED;3bF&W&-b z<3Il6;%|TZ+r?L3edR>?uhtG9q746QOAMY2o;<#IZi#@agtvCpVWaxkzT^FBppETh zmXCsO2gq!ZyFoZO0c>(q;FMYGka0T}0&fX@KN#9tvoV5UP+X$&Fr2O zx^vIm8|_(l-~5Ixv!Zv?a7|GBy2Y}|PjNQ3*H3oY{^Hq-i|_3$&)J*+{;LJ{e^@Yc z{A&a|XZvrz{noDpD#6#)z~BG=_lv(rpT8MVr~UEcCl@bYzVzDzx5d|Ox*`yKkM#wC z&tuB%kglqC4Qu=QTxb1^OJ4zKvRfy78LT-g+u^o^J-mzB>NXuyDWE>S30iAwZ@pcw zZ(?&<=myx-Fa0YafLacA@5#o$haL!?$(W$ag4}n6(fovQk3%um64p6&+aZ|&FZd1> zT9?)ang0NRNI*WZz$8fjfZb7f0{o%(S{TAT4-2sj_amWgYxI!4w)2C0Jo|ycP z){p)qg1>Tg@K>%J{_3|0kAHk(w-%NNEb(C1U0V~`hRv+l%=K=+y+JP1D6dmpE7x@b zxGnJl$-5`T!3khAK{-)$PPo%K294l+7Dfvsa)fVy*9GT*G#W%b9>p^czE?T{`+s!Yl$Gnu*#$}?4vH;8e9T7kwF`B=A+QN1!$R6 zHk}QoLkb7*evtLa{U-5=|Jr;)uyWSs@}9t_{DWQkE07h~Bnjl9>SNk6ao?YbgyG4+ z0^hGJ?5cv>hVQIS;(2X4@Qtm8ud`plxs55I+so&K;rLOs0q%EE%zbSws_y_J>vb+1 zl>oA_zS#1*jxAoBz{U~}8Tq2hIid|z zpS4k@ehT2-5eLY2B}MRj2`I;S?TmWI66foSXBKS!aF68Z_vMd0Kx<(0TLAp+iP98u zth_an9DOps{i^VdC-9dqEYX-v*5GS!U!NneHR+&V6tgeEXb*Od^#fG~oANw487Nt4 z-q1{D4^?@_5Jol%v_-OeezF8G3-;j8cq<8@_T}gaU|`3ZZ51=gg?`SBwstAl5>Hz& zJKMkDQu48#LB8{#=gBmek_7(O-+X=X-M7;NDK@y1B?%G*^!V|QzS+6#+Ak_LceWv_&6BQy9guj>;V+fE|wM+Ub`WR_1nzPv=qL*Kvn2tJK=@vPOIak|5>*+Hj}Z6&uU>Jr&~7i_X+LxHsf4Uh{WtPwzyJOR4|?t& zAs#G!{k2`%|L}dgSAE*b0wW$6)$LHb$Ov5LD74QUj zro5n{+^z&c($Lj_e2xttJovzm+D0;SxE{uvant5=q&|b*10I_-iV3bY@n^OaK7=1p z#N4^^;jI6??JdgqAp1s}o{bCj08IpPxuVK~HF-ct(#kWP*L;%Dp98ctfVd^_M8KT9 zC8o;Ujih?U{gQ+Fl_jX$R_UE20CgS(Zzkt&NC4iJ^ysKt zfNaTVQM;|yM#=jG*_#nemuN-1JcaKsEBB}SMmUi`|G)qD|9bF~1pGrKwt4-GZ};+k zrsw0R5zINjwU}C1)$2k*$kShmgvDd-AAa~@+&g1Z7`_KSFXj~Ua0-kx?C`u#6x+ek z!lXg^#j~0py97GIx6GGY9(>8ZB55*5&0YTBs7%n785&%c` z^}W6ac^;to8re@DJKKOw9K1N$m+jOzKL6MgqXd9Ix^GBKMrs=+1IdcyOOVH}pzY)d zAeVa}uOtA^v>})K>gbo`VTTrL2eMObQJ3{pDT^kwh0^bV8GvBqOt0YQ9=``Zm-#QI z%X}Upv7sS+rX!1x7j(3^eUbfFh}LeG$>>BDK6B@xC_e7DG`GlswX&j%dnG5sXs?%U9t!L0hsR_3?_*?N_D zX9*xL&Os=BsExGb1&3G=mXD31cFtDZwrU?eCrDOfY*fL>}J@m-%KmagBD zfyx983FzPdz1f2;Y}Pxmv)o_!jX5Mg4CfzI;k@w2l1$^KmMmn0y@jHpb>vc--}Qg@ z-S?in@|j;}+qx!DhV}!;8r+$*vwwfVt|y~hrkzUB5);@||ZX81YLM@{2vA!cnNsz&;ZK41a0 zS=f}Eb@@v(&bS1g2d8ZS0xu_m9KfQS07PthsMbgQ`|X4gvhWy_GY?k+Bqg3h@To)W z_h%yU?KgfV^3B*bq~;4KsWxrY#80w2=o{6J5E`U}e(GxnAK#y$v@OIufBccpK78*! zQ}9Dd05u6@G<|J-v_>2i>`;APlqvU9UnK)5gRx}~wq@d^fc@+Z5*c-Zk>^opq0Gx+ z3`$I8KAYY87G$5~aTvLcetI070ID<338pWX)} z)5mCB1NZ%nPXgdeJ`^5JKzDLlJm9|a#W1AB&5I#$*{lzF z@NF`DPM-w8C98rz6T!(whI08B8uouZ{Xt6|n?#@_0C8!}m5d{8mi9_89&;bfza#n2 zeFuR-rx}ZWxo-ji!_`Z^@2|l>+vJA4mI{0Ye-8Lco&X{Vh$Nq{4A6tVz9$xJ#~$p< zHgjYiPoA_nv0nY*vA?%|!btOYvAuY+3EMiZ$B4&8tbVAm;bTO z_jcL;{AmwDorNjqV5L3R+3>kuc`9>UlFj@a{37h&3`7Fp%*tojZFe#wpVuL{tPcS? zq$h7)0*22;5GdF^3j8(X;8*Y}m^}$tus?kG@Z#f7KDqex(@!rxGx`O`&pz||qmMuK z_Ldl0g2>50iC_)cUL^w7rzPU{5pEs`dN9Ub0!uTadGgTp#!t~XM zEbRZ>A?(b=S@gMWRxYdCuc=z_D-bEGu5xaN6u1gvQEngcRId7JJtqNOR{H}fD|4ys zbMX({#AF?F|EyvuAd5e3peXDD8??)r8&Ce9TA*Nm52pD2dZr4kOAda{=sozY{ILc2 zFMj#Ui(h^5#l^3G{p*Y0{N^_ozYU@cpY~5IK|K8M;jF(BfX2xLs(nfT)B17i)_zOF zpLRREZ;<8``Wza=i_=&g)GIGAk~hnubRHa>0OYK9h0)k@87;XLzCXN)-=p)1ucuF+ zTzq2zMPT`tOZp#%OaZ7f0A&TIHiRf|63L5}__L?es}R(=(oS|B=9SvUq=G??Qeg3@jIhmeeo;5BA}mc3zPuz?Z6VSuP3h{)`EF) zCBR=a0<+rRL7x$GOY?IK#&U^~>;MG5S>Z=s=fbtW1*i`5Ma-1oHItofIAiJ)g#;d# zbl?B@!^PugcFD?Lgc%P$q|KX2L0M@eTS*(K^7rY1uOz{lpI=Ln0A9X)(dXsCW0Ug* zG+y`10B}1=Za`}R;-ERnaz&zK#Tioe`@ACo%+|u7F_gp ze(;g=lZxd1J-|HETt|?8=sMse2|x~%Q_c-W=_4^_9yc$7H2xw@5NNR?2!tJe8FMcqquFC?B?Ae%0THY$tjpj~xUbGdgp| z*E16?`JD)U0)NFK*-lXAAmvE#{?dZo&-8Xy=hB`tIBwh6*`P`%Q=JT7$Riz_yXf*x0zIboeP&v z0HcY#E4Tv-2!1~D%Tru7Dj)6T+h-JDog(nr)Z(%Dc_ZYyc)4C_BwzLP@r{<`Xyc>E z+-sAtm}T?&vhNqR-xy1qbqOYpul0Qi{6+&i6+EML$k3i4C_Rwl%+KXJ!OvNpvpo;= z*!=jRU#W$!T^DSi8uP_2zQu^RYR4 zZ5M9WQsbF$)D=K>VqS1LP7^VXzedRNt3YN&F8fP%b!tZVr7352|AQX8WMv^Ukqo$J zeX9po=>e7~&#|_NYWt|JGQ{S}B%bW@zZQ(m&36i7`%A6>;)5wZxlVJ)FC)*@9==`) zYIlk`K*5OmboCVAJG_)|X-Z6qB&uPiRE-YruzUn~-_?DBCi!2fGP=u2!hGE#l7Z<&n>KIr|}v zHW2R)=V{IChZgL}wq}S|+oVH8FzVNSeCTHsoU*6tnvd9^c9HlB2jY*xQoUxL;gQUdS? zc5$Z8*r%&P^8C>hdi9$CC4oHl8uDBq*1^}w$Xc6_`Mg?J`$53RTNyLUX3)c|_18IY zvMYdhiCwqNK_Dr3M!_b)qkRPR$^G_iqOBO&0%T9NeP$nfDvDPDx3Uko>?`>t`)4#q z+6hX6lQXu<r2QoYxcQZZ?=L}x9C3<452fR&7h6JFg|1(51t6f zXR@DTmdUb0mfw+yvF1GtNr(D34U>+BN%sho+ywO>wSo5i4EAQUtT`dZ*Edoh0v~GZ zfs^2D3BaAc;+^c|B}WU*35_x`Z#EPaA3k1Y3!eqxEKn~4w-Bf{=C+EZerxje2+3Y3 zKgg0C&!gOb;e~yE+z09Hpe`0;#S54fyYdOy&Rnj*W?kj@nLo{evDB~4GY~SgWO7)W z*R5aEJw5Xgayg^Q39`R`CxGNaR_$I+bO^GJtHj-!-^zKtYgUQPm8&VwZ`mBl*+G{%}vYi&o9$+jH=t)YUSqw`FU zmTy{y&<(?=+sBc=^DyG6ynaUyNq0{!sZLqwx(3K?8V_o=p^rIuvqSQgx)9|B_}sIy z1k=)eergXiGsh5xi-FJmuL${{YF$FzJe^< z58TcB*5XW%ZQYhVc1SKmefag7|AxbY(*!434sDWNtx&Tg3bM&Gd*Hj?NB~=Gm5lUc zP<5V>n-%Xnn0LE07^jVOdfbR-00*Ni071i(U_B5L6j&AFt4*7sZiqEx+1y{0`9f~b zZ5*-Xf!PmT2goMbcnop^;8U7>PJ=6(>i<;`7j`Dbifj)$U+}>x)2T2290h&7A^>$> zl-qpc8=8-w^0kBA)=V313zi(2(el-<%!qd?_#A>5#mVh#|NHI12klo)`jt>y(CM}y zlQw{4MB-JdZELckthW;FvO{(KUR$4%19jEJKP9>^y%w;FY^-)JA@3ROA(0XQfAB;S zAShkGk#u%>l{vNs-rL`N7~vGx_w?Dt6Vsue8{7?FSPP2hhN-yEYW0f@4$4*DXe4b3rc@=9xMOC-He zwnOC+kHFWTxzevq%-+JKyPiE9bscurhGKj2=ySk6`A+i@X+LC0UnYW*OLPL2KY8X` zkaQ*BI|e;Q9HkR8=xc92Zv{W?d{~FSnLyVMrt7)s;%_{Z0F(rvtP`jX<+;fJ-S;g8 z7@BQ6Q1gjk7WwNOIQSvpNVYms*fBa)4;^<76b&4LKI!x#Z;izwK79Dm#luGr+o#TK zLD{$?QqYOC3HI@}Qtqqr$Oe_!cmzLxCx73{`hpYCzM0pqdIs(|2;n#0MHTon;@{5B z+>*3U@L`|kqdATC18^M?^qIIuj zz3=!6wDEY?$UB;CEN?g4aO8&{e0cHkqmO$6(8kq*i?rC#s9lsdNR?aSL+DkRcGXAY zQs%0K1i%#xHg_Mo&y7^=o;V!-H|-mMM_ts2fBlyI2x&i660}!zHm*s4;QcoKI}cxm z3Ll`uzZO0GrZ45-?9aTB>t}v~Kfa(8o%tDnNXYi7oQY2-`m-0CBjdyK$xm+I#SzP( z@va&N-vW$`tWG^EVt7Vl;iuAI{3MIrY*zk2gfpo&ZVfsew~#htF7KnNqxP+B*rPve z;Rw&Riuv2-rRlFgA|ufq{+11h2y#Z)^1%FvFDZL-=-{Y1RcOED;D@+ZCy4pZM*ok@ z-+bfG1^6Nt{*!OpW9_oP&A&ZA;D0L+^n7(1-=9eG;7UNh0Z_6LE$!9Jm;KD^1KTJ5 zpPP9I2;7WGw(Y)nE$FU5ZmaA$ac}~t$dlMIp;JtHQG+cS3)jh5jOTyAVU-6T-0$Bm zo0EWuV9Vv23@T3>TpMLXRfl+4S1rp1>?7#0S6^_^11kH`ip;jn__Wy7IB~EAn;>kb zF5j!X249=F3LuaCb24A?jx5Q8B*Jq9 zJ^af_K>KfLAIf$Sw_G2_6(d(2ZS$qROi?6Q*;(O>>x_dFz-0pX=)SqzAu3FkG4&^$ zWbjWc@b!%`x)l(ykrjL+QlRECq`>8v13I@uSr_BwdM50^HU+qrDY-K*0tAf8$hU+m>fGP=a)+TrfaL(ie_h0|^S0{p8 z|106EzkhY{x4-?(|AiWSPZHcV#IF-aXMc@30`}#=hnNfVdgv#Mxb=$uV=W1Jz8bUm zU=6IXUgyNY2|x>37jz438$_w~U)7P?-bV4z5&MGsku%o(Yo~M-px_sYHww;7HPA== z9QauV(l{f+4(!9$FTVKV;?XCMTo+d}qm4|hZWZ~9<3YX)pZOXD_4P8of(f0>13UdY z_+pNbf=K=9T5ArFl7JF`h|74L*XM!aVM}y z`i2_NRM~y&{d*Um##c`fT>8?88jv|qM^uA(iK<+!Yb=gA2@z0yLyo@Wl6E#H;0&Dh zlB4=V81VqzGdXZlf%J-id<)^zhg_+cPf4ykFjD~K1h5A5DFG-6=yrgBCJ}I1uVlbw zK1a^@+%D*nUwxE7asprsXk<$be3h9G-%#|()`Ggvn`9EYAe?vS?fU#SAvu`6oL}Hv zN#Ljiu!en$y%%|&;S~HkXUj3uQ9!OQPKH$*|H6Zbvnt;yPZIErTY^%7S$UODK#SIR zqS{|P1-{03^zozqmDeN#Hl;S4Krz!nsQwXHzo5yh1|Pd6VnJta?vuGyA(=Ag9Q?Ul z_lDL9(pegPkdlCc8B#KU6!5tnQqU{#p*#*$AvOg#q0Z$d;(8|ld@h;}ndM*^X1u&eMz&4c z28;V=aLs0M1LrS{x6>k?@!-DgtfQkw6? z|A#;PgC_vw+^v8Ds8#timoh%%QqBuNA1H5(Oybu$3$DJn^&$}<2fA*rwfT>rvGSPo!#?**T)pt=L|xg)UrJ(> z^&OVIExw>OlVnAVA*}gVKCt8S>wN{l9P&Ko>&i@KtSS!r!Wp?Rl}R{jl(eqzK#lf%Gj#2KYM_LW*vQguFo|!c)84B@0_p=nFTqwJq^Oj>UA!hJOO9{ z_CX7@gFIK7GYJb$tYQEuk-)h8(TIP;uGQJ7Wc}Y;;PGIP%h*qBBM_iDi2dySK|6y# z{Kx|R!^BTClOOPMS;5a4hrs7{gw2P&e1ugWWA!=MocktQnSb>`$Dq#|mNvAweY~`m zT#2JOkM3lcmj4flNM=05-rcE%OtA&~JYI8@~r+Gbmt11nozU ztZd}v(k`M+XZlgQ&Ne)V^k)&j`@KJ$WFx%!Dg6m+*tmlYb3GJncfIz(mnVEK8~Jlt zk|Tjc62J#J35=))>M5b1XB-8;##Nas0PN(-1>*Az(YYNji>!w=J7C?;dG-fKC4i+s z8}W{YtKyBzxJF(t{!lfK?Pa5xs4apvT4-|OYr?sdM3_&teQsxBZU_GHpX`>v&dA&z z_!WVjmHm?a(G=8Pk09q*NqmA`^5`Kj*l1jBeEH><7ytB+|Kz`s;LOQ}B$)WRsW*It zIUt|=+?WT)fX{_`rUP(@^vtJeJap(g^9gq5$sF+=^R7uCmlc?RHL7$h)L-L_h~URQ zY~}Xv(Zfgn7lzD7zsjk90a5{16b}I2KU%PbzcF{28x21k5tp z9O84-10{#N<<+@udB|68yR{!MYh@F1%0vi8<*AUu`OP*>>20wIk8CU3=|C^`#GE zJ&l+Pe?UW7S2EL_meJ>AP+3Q<9rdlGv%JD(5!mZTJm< z>KtbYpdKsW=eC7%-#|eb8jB-@9XgAPa#G-^0M7{{lll|%oC$ft&x1Y%K4%>MI0+s8 zIe)XS{cAEe#UXp#J}3o&AN@Tb8I?1l-x6H9_8A}tA&}PA--|B8XD#l^W~1!P*`YE0y&>D-rKr=N z;OqgL0(U6^tOdU4oh1Mqsz9wrl{+c$@6Ba0NmgZ!vjmU;4{m%N0E{RYVxb)HOPlwj z=!}L*O_SAP`zA6wKH@tBY@={?Adoq7CWl9WbA)tur(LAYmCyDh0C==>%W>Dw`aYza z&+nUMl+RU0yNs+ggf&3zPAC5ulj~v7*>5Evo5+Jzz zsk%WQr3JJrh(!uw@j-4E(N|^3!xQ;FN@WN;NXq!1Ge2v=trvXs*jpPfUcM;76MRgL zMw*BB&Bs>pGBWuJK>wLq!4LHW@GAKFcl9fDZ4yAH%9G>8S6PcvWp!k;_?JE~W*gX! zR%(@rygqR{R_0J4N#DHu+Ra}2tiZkdcIg;je4(>C!LESk%+5xt#3dzXe26m1fKA5- zjQAV+exJ#h8kf!Fg!wjG=3qZ*ooDUnZybl~o_p(H$i7a&&jYz1 z?d4ypVRLq}^=)6QG2QdmKvyt#-9`#zNNuX;vi4Rc?JL%fHPD)|CM0jZFOr9s%~i7r zOw&p3V!VpV^IGuG=?TCC+k!R%cbEX+bN0W^34qQucp-R|FCIa(cHb;n9ha^E`a*C_ z%{!7SbI9mwOuhwRD>HUe(fANNzml;H^U=e&uaBz(r_UxLIp|8^qmSm_wJ@o~^xDu|=jV(+*Uzgdkvqc3LlXC$%C@MR}D zJ?Y2V=Ro&85djS!Qd#^g<79Obw*sG_=ZvppOhQMFG2H*GN219^&H2bdBUHZEf`_ht z1(0Z%05$}^=oAT{rQsvs4l=9_1k9CwY+G)UrQiO(1w~v{9cS{`7dARH*1mCRioOJ< zeizT@2K>WA#z%yW`oK018|*_UHg@0Ow%PqJ6ILXQy(rbGac+VKlbX&RcW z%R)8c02Idr=MN?#;%O`;1#z;1SSd7Z>!>23qB-i z;@?a_C#SphxqM} zklu7X`Tm!2NDd-xirvjo^v~L;Mm_Y-(c0KZ{t8*w7`8~e>^c_Szo=j|Sh&ppf4|9a z_TjADgVO?2&qoMQB?QjWTxB7fldFh8rybI>82Wr>m-y}3OMBo-;Q!j{=tP(QwgtOb z50QLfwCn#|-iFJ0^6GGO0+>7Kj9{EH*4~ZE0&+;y!2;W1ZGl_w0_&$=&-wp}&znaC zUlcrD+WA$4)n&We;H7;qdAexI3x03hk==2uSmZO_QsX*?eseUPy7h5C7?(uAgHQsK z;OB~f4@Bt`kz6GxA&@M%cjw3lw&3ZK9zqUk3B~mM-gH>t)AsQv+~-fflJv7ZcIc18 zcIHgEQRW_u9la~ikO4;4>zp_$0qkbTtHV<8?^uI<$wrlAch^JJsm;mTB^;QojrHTz zl7W@1-Zr+CeRGLgTa&l5A6;F+WWy%(fenLxG~peA!EUVX3c?C1l9P zZfk>WVP>8;e470jLdRgimrZTa>qfNVRpQdm0Imbxr6qmrwyHsmHNvIuxo#SYFT84R zo&-Dr*efO=YmxwD1sf>`p!gX&^LpDXJ5SFN)-lrRd)MF=%p|I`%k?q0A?u*0 zsIGz6DM(<)8o?SV7)Sj+*k6y>>=3BH+@!2CJ1+E{j_|B7Zu)_0JfvuGY9 z`AZnu5aaSbYhUw4MwRn1+qk^5*@n+4@_=@vsH*{gR>0A8JKv59_$<>XUE&Ym*4W$3 zr`0#3zPbHeV2Es1dYuyoCjif;M(-*C`1l-y1TUAx^b&8PK&j5kV73KJUrl&fezw_S ze8~?fM43gK$%HJIG2$5`3IVStUKIU+jmggWsLR+Ha|PWG^br}4fR`2|M0kQ%X9(V{ z?J<#~@N%G|UtWP>x!eU08Rldxjv)xr447>(?C7dR>b#*yf#7h2y2Ugtm|&obrjo=MH^Ei@524ev9wod&8x}I31IECaj8eEAGXa! zc2-*^y>_xlWv8`0a3I3sGWvEjUrrjNN1R5I*nJ7EC#b`U{7E@v4Q+ow3y^=V8b>_? z0K-Xdz-%)lawjESuGh&cUOx$i?k!|*oks0TB>Rse4LNE%fHv4*Z;gDnj%Ai<>OO97 zWN$mN!sk`->B29f84h;r7zx%N{q+vCvj`bE-5kb0;;y9ui;tFI& z{+h%4_V!7acokjtV4`p9-zy!tJcjff4Z246H9az|(cxnvt$xSQ7Wf#Q^qP2r+D&m| zY=qkqWyc|Qh3vaN!5o|b4nc9x40YnFi`PEo)kvTGdh-(xAo(O%d>SnM>Fp#Fb#F6y z$%I`0lU~W$LbSi;n|QOo^kXdas4e8R5nX1$JC>vi^7;6Yznn7?&*m~Cc-U<1($i(D zJaRT4|C3mgX~c(W^eH;#8K11Pde*r{ldd^!Z9kOw%Je>OBY0hJ%(1R}>)YlDPri|y z{N??Vu0BrTO*-e}H~CmI^CM%>4t#fqeCL%|0M^=H=fs^q{_&6BJbwK6^FRIRPyT<_ zof*c+zzo{>!wbGxL0{IuA7$t$^7_M6=RfJ>HapfYb%3vLdYS&PqXAo*T@ZGeYr1*i zJo(W1yh(OKb+#`=D|j8Kon!XFWWywr+h=;?2*l02irzEqS(NP!lf;_6N%IVFyQEdJ zRMufiTbsu4_c@SHJ!X*nsJ-fy%u*lm!OX@4=ZDUwpvmR65$68Ma_kYW&c>0BI(F8* zBu^sXE5P`-=Fgrz>!g2ou77#X(c7MGP)-FP`sSF{pgw6M*E%=`Qy|v_pfc?_*r98m03ZcC!LPuVy!z-HTo^CYRU$j=s>i<0SlbIfH^>KhuT;=B z@|6;RKoa0;AP2Mudm)|$^ma=G&WrkuNC3_w34AyOedotzzkg?&fhV(!IU4ue$PRlK z<6l>-?S)(H0)J&+sSH08$X5bA;3K%7znBt$2Yy@yT&o07iJ%sV$M>(RPQu{7uM+qW zdh(@_XbFtH)V?<1Ey(@1_5sx<={ZEl2y1#qbKN_hHLI6@2j3plF)llwbK+D!7xLV* z&N|K(AJzU)z8cV#fM5DskUx3$#N&|Q?up^L-U5hnz|XD#9<@5{1U_|c1-Rr_@H2); zV2q`)M|>cgE0*Lda{n!T*5uW;b?gzg=+9UitA4b9lmO6)j(xiG+;SPz`c)v?yKmgB zvRMwS&9$QH&2{zRC;}t_hzEWofM-uzaKCsN4+^cWpw9`wlS9xuPXHd|c81Rh;L*p^ zf7B)L)lPq*UiPCOS{i%A2eP?hNxmZY-_mDIUTs^)9wF<;M;ZAHBCL(IF9BqG^SDCR zJ(5*>tuFz&eKHkQUSsJ9wu~#R$!0l#ta$2IWrTe;2=o^L`Vqi6z;8?f$U*PH9_99b z@uu4XNKgCQr?c9|W}JP7UpH*AcholW=|0px2m7cF8Qrsz58qsF71OO z!MLNbmiSvC9}o+aA>yI`768(7fSZs2^gwWS1pqIe{_`wA!LP|m|7e`+f{`P!S2mB@ z!BW5Lf-UwTb84G4?vnpbFG4Ow%`L|7ff=TSsYfm7O;!8nKL zzKmTt8f6=t$p)H^NrAHH_v3FZ0zlk`>e@?6YlYT%nG6D7KEj4CUL*9NTwf z2RKCEp&0on2NOq?v17?bQ0*M)9>KJ>j}51BxE)ZCE6_P!iv*C*^a^pyvS!cH*=q0O-nY0SIgbJAt1Qf%wSi6MpCsWoVpzS?k;w z%@^Ki{(!dJXGu;N>E8$SS;8T@Mi}Y8tj?PR=DN?v6^E>2m8oOp@keb+0vzkdhMzon z;>UbD@Xix}&iZ=b2LW`5D$u32C4;Xcur>Q=G`GuQ%^#;2uj)U?9Ii9Yz2~YwNB$OX ztxbslo<1i~uK<()XctCvlTDXS0Cd(FUkMmRr)j8?7Z;Y)# zAG)%>ckRDZqx$e%K)=SQd-q*ow60q3>=zyk=39U(PXM~_&mZ#1ps#2N`^LE{jGUEm zh<$ZVI_?`|E6|6otnXd>@6@P11gG*}2KrCEKEghIOKY~&555R+V%38|;+8~kB?*8w z&iGsb=(4{KmivtiS~F6pW3R~`imV&G(7y3#ul+J;JH*B{U0a|&*{(G`c|0M@kJ^QO z_AT|zHdd_ZTzso?n7*pd`{g)Z<(79Ck(b)TR3QKk`^@l&QC-YQ> zFFoQdjrT4gJFyK?UGc}Q0Kv}@s9mUYyHo-ID1eZYQMZ^QFTe=r^4Y$%d*7iwnK9zM z56F9rX99ZQ4nMbP?mF&G09*0CI`$T~xM|3-xG4d|L%>V@?&CK2Z*hz3fn#HFm;jVP zY9`6$TioIn*9(eQl0l|59CQV6Y?isjEpBlhDCqOaIhXfgH34kNAWIk-c8gow;yC1Z z%5+)W<;mggnf(^G_<7>afB7%}<(sEZpML(Azx-wO*MO(UHn+INEl!Wo2|UMZZJ+%X zVAL7jh%fAGzs1eM?OI-cDCR~q!j^V$?+<_Y!@sbb>fQP<-(0lYt0 zid(HQ!5<0W^_~Cxpa1j!w!r`8zx~_4`JWZ?xBj=mdW&1U-)JZKi|_tFV^@Jh;eslw P00000NkvXXu0mjf!!Le| literal 30387 zcmV*6Ky$x|P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>Dc1TG?K~#8N?VV|Z zBe$)!+cV?YZI9zEcTMsu@4tP&+$D*VIElCM>@OY=heDxPrIK3e=^pn{Lq&oh2!aG^ zX|?*JXV0GfzjyE6J$wE7^~IYvZ!W+`AARH`SbLOO+lLIzZ)wh%e~ZI0^6xF?I91HO zefzfeC%#|4e0lNY$&-se{NWE5UwrY!KR){Gv(H|c&^;P+0;s^C%NTNt>xH_Ow*h&* zp!K+H%;mV{Bo94(`qUG^H{X2o`lCmW9=)^#@G-$pwz$Qw14~K%79S3@##&d75LW=d z``zy@zW(~_S06oi@ZdWO{LgO_z%6d^>wul~FaGmC|C3vQzuyVoEpBm(Um?zR1#sDW zms^|{`QGprHygUd&+94P2#+5>o?ZbgZ3OtD5psK_TU>A4uF;2seKEJx4)5;0d-wj! z%8xkv=S)&Nh?i*%YZ>Skx46ZA zN&>>j5HRBBN$tau-mTDB)hXx1ma(?@rONE{+uC@!@0PJMB#(^b;89*1vm)!s#}Tq# zjg^txX8O;dJGq+kMy1-0ic9GD!70D zzVp>yj};?+p42`p>D`J$#yS=10*tWcm!*FD=CU?k?z=Yj2$Dx;pN(tCefG^IgML-M z>RM|Dw8J~rhJ6@~w*<*%nGvt*Kt{p;{P}bLTmL#PP(QWJ6Tmx50CxGH>@hMn8$<#i z_))}_0Jj2qCV-r1geCrH%#5Xe$3prTci-5@Alobbr=G+6M)n(XgHGkkygvDOh!6MK z^1jz&%bbuAWe}^xEW!Wt&p$hn3`VHqoFoAd___+KmFua0PigUQ0539gONoSM~FTn zoq}{9iaIf2Z7d+Wgnjat#kut#ijluBW8=Q{J5=|n*9LuAkMzHfb*a7@*^uqa2>?EE zrOWCvEvmW%+j|JAog*7$ZziDNC-5Q8{sg{=7#{gS{nd7<1OW0g0FK-OP=-hb zN&-MSHK`2gTx%0XHk}Hi@jrCz^Y<}W^WiDP&mR0w4i!PcJgIC`OL2~{(DaVqI?A) z9!WsIA{3MiDza{%x{iRhYTHsf{M-iC`koqjtZJih$oQABJ^Mtc`j)VDoUQr<=^goF z#9KlgcO);FtUvQ|pDKG9RNIy?l7oj09ElkPKLKBpfD!>bVt8bGo!3zb0HA=ZMFP-+ zznlOR_~JwPc7XnG-`N<0&l!wRCsS?9?X=}_)W%VnHlyl3C9<8>M&Xe0*XF$s*(XBP zw}gG;Y}HdCy-WTW**roWe>Dqm%I5Y_o7#Wv3E*6FJ;bij+($f)RqtgWUD>t~4=nMI!O|Q?c4WXq zhBzT6`Bh&&(~lB>ZUxSo0MwcG(Jep@c=4&z_Tc`5i@W#kuHN%hY?+8az3RyJ3QPSD z!Dy@zmd1j=W&CRYn(bR`s`^faHM{m9+d}_CZLDLSdTy6No!e-x@G_q=d&g-UL>=OJ0Jj5o@7y&dJ10PSOpS90st#eqr=Iy+#ydoIAF4gldCD;| zG~bMB132}#m%$j+`8^l^7(DU%q(R0{oZV86Hvs(A9wW(3M>Q=+}S> z?i}>F{OEDWJlM&R2sBwpV@m%qpzp};CH^^3?Oz)=x2fM{eXxWjy(1egs@Q?9JH!V| z81-56i`tGE>wO^GE1QW2NWo9wXVM3KAWsTWzA*`aTY%hN9}J4NV2gc#dX-%pBg^iy zWh7hsEZMmPSpU}VFREcmDl|8CyBW2Bq?lc8HaP{%q1i}ofPw&*`p9*pJ* zmii+JnVvwNrGrpbql>mPJX?g`fyV`C{0`S`et3P@4K0v+7X1x_zc1;c(B6~{Yxq;DKvpv~PL9!#eFPi|W&MY$;Z!1P~1BdEA#-7nU z!BT(ZM{Si)T}0dwfBwMF0{{8Xc8UMI1-YN)t)3Hr%GV+RaP;7gpr0gzM=d$f4lytZ z06w<@JWEg#0F2K#c@iUgDlgjxmilM@WiT4&x?#yjYfu94!?gPhRX-SwaVlSp^uRkr zZ?<`BztKFwQvZE6(JlfCegfOi?iTpE=O@5<7N7vvS-%Fp=vpNJ4}POZ4;zo?09i(f z0bQdjfjpi-S^Qh9qb~X_rhDmq_=WKyUH0n}egu9E>R(>i+5eaEZvn*9Q3>PPBmfWm zsP_a=D9hI?0e~$PjJ>vS*~VWx>Z0Fbx-YKUFN~du;OCM*2RLPso&k^q)DGQ<1klTI z3-I{i<6h>{UosfNF<%L2d?kQ7A=*ci1ew1yk6Ya0s=;2=e&opB=FG3aRWSE}=Q%)n z2>8qMU6Qy_3BcPP+P(iE0YFLsl+mH*0*vwQZTr};-3-{^KD5KzqHIP*;T8_o?(9Bc ze|%VeuK{vupkHGs`2Bw00vGCmZuG$=00n!Ng_h*{m4LlG_zihdZl5L;R|!I$DBVB0 zBVJ>4O{p-N^KMMWi=tsJ*^qT~)d966jcNE~Q$p=iLHo>ZtMBGM*PEriEd(a^R9Iu~ z$Cw%;uS=K8!U?dwDQsRG&ma{8?T$QdU2~4vFB5zHeFvmmRyu4yHPI|d8+GKI(U9bJ z<4JZ3_A)=j7jaetw+Fh>S^~&&s%JgdE&=GQ@4Sb*b|rw`7V;2n^>!dnD%)2lyC&aQ z78JcrdJaec#v93kiCu9NdiOX|?=q&d%7facg7%@^aqN2gJf`xk&5KieW>^WRq`PU^ z9V%dZQ|MYAZ>M6Q-7#L@olTqUH9k^VmiCE^gLZg!lxP=eg{FeHCR=R)I`iwZ{rT)) z&+1xAPdQk7qWwLo-KhLiB6z4c?p?4j9pI(BI+3<|CH~xxP=VPJ9vQ3f!6i z;6ptbT+uDS{Lkc02wb9928PHOjB^8xWIFY`cklRB0Dn8s=+4C*<3s8LktDp$j%vR< z;7QK;rW^7xT<(tDD)8NF?fcifUy{3XH+Z3IH*V;Re#cO^uh7=^HF8;>2Y-mg71eH@ zcbq~ObF(@6eB_t#O`G3TXPvu!>FRSQ5Gd$Mr)6@ zME2GM0!?mCz>n%v`fbKSpw}c|H9unWAy`W!OL%VyU>|%g?X5dx4gA(XbiuPhx^VP* zqlp%8YemPTF#r#ezAU49=3NppDbwi?#+pyxLgo*R;cmu9A+nO!>D zs}a#5n2dKMuKWsM??h>Xn3yu_#DDWiTW#-RPS>$!g_yg z!aIEG1sjD8xLXTp&T|rh>Z56mdb485m$I`-odCrbBe*?I%VW;xHI}Vh`iaLeQ%7^~ zlm~*p1Xe>UGP1|V4idCC>K@sG_kIh|CnLw?iA~(m&^K+GtjoZQ7aFpIyxxiqFAwy9 z>Rcc>r#nXQg0NS8X5-{Gqct=;Oa?ilsZ|ZK!OQ8D(Pe^mqpF0wkq;AgNnQvWI&#|p zK4z3bw$p*Cpy~_ND?dYRS?^eK2P~3R*4vNSh76bNdgq!aa|ytyv=>Rw+I-hAvIX#< zaj9($SC#-UZq-1X0c9DAPWvaOMRW?DpgQiJxm@EKE%d@^8)g&o?RsAItuh( z&@p1~^)GFyJ*&v`o+%%xl%Aq<$%grgjIm_@P_NlJv3n1Y^ot-P+0*rg>TV~8C}y}0 z3SrBVy@w$0qkUK!Py9ptAza&sfS1AMWl0V@+;uAmy@%*rlpQYWcFkLTafq$QK*4s3 zpt&;KAXASCe(>HCz@|+xnA~dS%sM%$j(qgtJ(DA38&PlU4ikL$)~Jl@qVzFH9}mVa z1L>L3(wr;OTq}lL$;Lc7oXs_mUI{VAP+vw-IazOa9#n(|V4P;oc*MFVnyd=Dp{hL@ zwo{_CL)8oF{@P;y2cPc^x?{}S2T zt}XNPL=bUSdquU6)W)!y_p_SF;JP+qYr>dlM88q*IZ?5*qodSE0V7`Jn`it5XvuPw z?5$BC`yp$c$Oo#&Ch|cYVi-;NFs9FED0ezwT}}z++V|LjIBNp1W$3StaO~NU7QZ7q zC>B#_n`YTGcX0o7*WDc%uYd9j8I$!-nH3oyS;KQorU-1U^ec74)JDhFMNV>);RgL@ zoZ_2_Krv?x9)y8?n{%~wWOMKs!AGfnN*Isbc4h9hsG;=Ne(v(sUssHt@Q%Q>xB~DA zMET^<;y78oZU)AV@p=Eq%1C&?C$gwEX5;sOC$MP)p$B-Ph&FHMnCkwUgy6f6R^$7q!uC2+bU<+rFoRONQqKWgh6ayF*>q}AMa72d`h^Jcywtv>G?!}Z*V8}SU_ z?C^CpClcr$?2YHYHnI(&uW#bpS%3K9hl_vy^Pd-g|NGxBzJtE|?&5EM``g9e>_}O4 z+W+~Fe_Z@%@+1cm2Fb%WnEmkAgKQ)c0^~Ndk$0FeK5VQ$IK>wcfbz@xbkF-7yW-g3 z2Uni}NU$ZzdhkVgg2>KC1HC8~0n_Ja$*96-{PvfJ3dZ)GZ7*KDy!h$opDw=t=l2)i z{q4Jpzx?Gd7vFyStsh0-CKB(jfBkE3zpOVyH`td^Ey9G_) z({F3p|LMn{{A~WGKmYmS|NitxJN~H!GiQ4vo$Wc(L;rv*z_~i$2oJfx zSn&VpPk*}j;~)Qc@qhpKe;0qWGJ3xM{(DaZ{v8Zv5@S2{IVXD)<`>Bu(e)0nz#j8g zEYK#TpZ8r-yaPR?uLX2Vh@OxmF*aTz@iKM3jX9X--0EH31BgQEC%Z&_ZVQ+NKk|F} zoC?PVKe+lUfFrPf8;!7YiZUdN)Pg=Xnvq}j8{WKr<6o*kVE)wt`_C5m1n#%r{>20R zdkbtX|M@pfQ2j!OO8TM(`k=EX1g;G1DuTp9nPh=1iGU608<{rwQ=MsU~+7Fe0{CX zI3ns`!rKC~7m_vf>o!~gYD3!12!) z2vP#n1K-Zp3QjKBpQk|QS%8T9dVS4PE>{`)`GZ2!L-J5UAQAW#fn6nh|HJnt`_e7< z&CkX)P;V5k%e!X*RdK2>4C-sgu~nxk*qdp8YMmv5?{gA%V*LXohc|EET)cYCf6Qq< zoRIu$w^B+Z9u(;GD+TkR5o_)H3d;5s_#T8>r5%C#22_&7Ol4v0dX6E#2+TxYvf21? z3F>#5L~!@sy?g&<$47cVwNDxCT$=HNE!nZQ_##<(q zWx6As)%ZBEpB0SS*`G6lZLoCK*QGp{@B}HFjNs*2Kqj8*tIT-#jWS13ZkJ8Yk9PHA z1AAieL}9`I_MM;g@I#+J(=ZjT#>nU48rPBiatyq;>nM7v-dWvLL;|>(qYR5)WAIm2VxIX}mQD`d$co!<`cwb9pwefOB&j zYr-*$TRB%52m9DNnb=<{vtN4KE2B5Yv;En5K@+*cV~i2%ULe+pzX9C{z?DH2U~n6xb6VGyr=gc=*W8O7|}(3255He$Qre0 zE-et9tP!7*41ctMCfK><(ybB?RJk%!f`;_$MTtSTWauDh`k#94iUlut0VZ7BhWa`F%{#t53TK)hXf0?6%|_+J3M9~9+L0?77p zgu>kp@dPdhwIJ5wN5Dq;{`((%V-fspAg%;PXM70XWYXqQ5UZT2^3*Ta)mLSHGr%P; zi)jp{xrM)FvCK zvtjWCm&<(~0ZOW=Ew``X-J+cFXdIYym~zzFUDks<4SYYygLFZ1a=1wYQu zfnN!IOHSPa_0I&9Tr>`gm&b z;49Pp(%%A)`Th9Aj~4jfUi|m}{P)HG{_p?x;Me6l^Hvfdh$(w87ZP9cUg!Vn+Yvo} zTk+Sw`R6bG=fD5w;(z| zNdP+u3^p@oGyYd1(67v#oU;z3^g1~fHlF`FF6i!^dp_SE>=K<1RPli*F8R6K*OUB8 zJ*dqGqjt#KezvmFNDkfHPWnn}I-LQ?UUEG=iL9gB1MLKI)4$2S%Ghn`LRkNT>8? zTXGV>Za+KPnNu6L>!$3SsSh&t**?R9yv7>Nrp$#J_UU)=)Hy2?fSi$e;K!T@THV7# zwJaL(I{$?Qe_ZOncsZ4a{E8sf-XAd9_&onXj=9)9aDT=kV6P}+b^h6J609AnLW9bj(SBV_qPY zp?-E_lczIDCG}kc<1l_DY-OVoEPg9sNdTMOzR)}K#{fv|mkJbnsf}jf`WQQnKlx;z zU-q|q-yeSXJ}$-o+kd^M;D_>=K2r{2QEnT_X5K_ENx=31w|{)_irWEh4>&P2J1q?K zT!2HYaa}v+wwrDErTRa2sU5B%&XNGM4a|l8buzFhL4A=@*)NYH@CXhz2Ek7N>CCSr zAgX~6a#^|+)OwJ~!xTNt6i<|sfT-JO1Q-L-_)xY>R{?BdE@l1p#pWa1)L)jORXjms zRb&|fNtdRNXn@+&#|T-<{;<-7cz{K)6a4>e!T(na{``A;jwkk8aR4*Yu^arRpPcWS)6-W|07 zIc^~1O(VZ1XVZ%(&h+Q^>TEcj{qq@L!PbK)(Fh9a9OOChl?XCr*_s3@^7yii1fXQa z24@5RVDsV3H3N1Vp?R*oLGIHWRR`H7=~&X!5q{1(oH(o63!6FP|KA_~&jXKNzvduS z03(+v2Q@^w(h^^kb&)hR7W;tx!0iZ0fIr!OWBWq(`$JadU@y(f{S`iwU(^P&uXOCp z&bXd9djdE&`ewGH$}AwC@n@6ia#O(s5n#C=^$G=Sr5xzHn0yYm4z;oNg@ch!%bgAzlI81sA+UFK@>CY$G@I48Ddu{@66trC7KqKB3 zBB>wR2RlfnJc#5s5m z9zjol=&Y(Ue}!lMMA{HKi!0DG5%Bsq=lYlDwVk7MNM{}=BPRjbsWP@R9|DVy4NITk zGeTd|={)8t8ll**4@hU~unP0RUXrdp!u#`2?ZGRQgIv#HL?fP(HnhfrG)C1k;*kWn z1>nIT35xdSI^JSFfxcEzZ_u7@$5w7Y&i`G!NGN&_#c0o77H3HSa@Ec??G?VeERgMw<#H@5B<@ls{+PYLrnw_m;TJhFQx5ByU#mp_I`zCh)slarV&Q{M|v6B zuSN{mOE7WkMFQYRGEm^>;IBbh1G?6iXp0+>kyl-puPg|nM$rvXB`YSZKWE0v*-H~D{e>O?){hOL`%D(R z20oO>rEeykrIi361^%N)k37f;_AkEp;^OPCzn;;TUw+w>0f|5fL`gtr?mT9OY=dMk zbAtFh0|CX{*vQO4Hd|pguT1DKW2^z45YSOTOVy+~aOsSnfBx}jKdTa4*r}jjq8z9> zn9-$qXMW~o{t{`NnuH+i(?epC>)W?{YS1Uu=XD6=FTVm1Sc3)h^$J)mO536SS_eCXpS#XJTE_`rriq(vM&Lu)sC&p(RK4jT{L;Nr1pr@N>rh&2N5l@zqyf zU3~M+Hy-d`efgCq1IYPbf8#_QdHU(rKnb8Gfeh@cgxv}V=EY{!HwrOt{pLd$&XD#I zCDeY?)&ac#ZjIl*dF$V8px^bookj%RC^#YJlk3d020xVfwVi&syhJq_`4yGfNdoxM z_6*-a0Q^~o`^T%>kYx|)mr(b@AvmV*Srfoz(F4FM&T616>afY%55J3MVPDw7a-Y04 z@O8|A&yj%DB|n$>oZSg>f?H>K0{oGk=^s6Mc=7njM~$n;mn&7HlG*6#O~33C zN4#u<$`JN(6@b0`jl!#!uibI_Z2&%$?;(5hxmK*N;x=pv;4HI6ejna@0$>tbC*rc{ z)j|KLlEGiTvg~e)%LZVB_`(I2#)7Zl7wPQJWjtqc0-3=6)B^mW1v`P<>{qZ+=8vWB zT-<+f-;=}VkqAg0B$0dtAZj}1c4>plejS;Y2bK|K-;_??ypGVpXrheFuWd7!0A{!O zw}-3*y`K2jV1zU$sJ7MiHOjJ8#}dgNB?Tn|B?0WFjGz152R?0kuTgsiw)p=9SlTan zpKryLCjg8*#?YOYr*KW)*7R}->e-zIw#C+XnOr)Rft)JhBdi2JXKc>i1U*C$d(hg8 zUp1nGtB$@oZG7oPjw=IC9?w4aBRX^NE7@pVLH1SBX4b~#ui$WkHQ8aoNd^5c36B8t zcDM>Fht1fAP5i1-5B&%*1!xXBcpTx&Z{latT(ex|*S1Ww)p2XP{OF16=b!xJ#OCR? z9&KViKS4Fx!V|{i*0WtLTn6}X3+i4u2HH<&O#nFZU}$1yoF=+7S+x5^IGPCG1f#_s zZ4gabWdZ#;2nkI7JlTWa0-nGpc)1b)^k)qI!q6%7X&jAfOn-{}!1O%*q&+w!fz%|R zM6fu|(4FVx!DgG5KZSks?ydFZvbD{n0*=VBFwR!+fUEg(cl+VKH=8(m0?$jJREcX?Tr4BvsRcp$XrI*OW63^m`+`Ahp} z1dV%^1c1>a!!L!Q-x)*WwBJ7~qqB(AMRHnpoa)^faW;lX01xfn|5FQmo%#8r5#(JT zgp%kh^ZFP%niLP{c#c34@!JPWBsu6SRcOpiY+MDIk3&Dt0MW@X(l^q7D7ptJ#Mf_O z6ZR1N^1p&k8DL^CD303Bc~v3DhS%)Pl9e{}G1 zomA!+IvMXxjEhc^fF2s|o*(Q;$mI%jX+vxC`n*yXw zqbjr3XQY?1{FO;ElnH$7=kEik<3V2=FZm>$kUtmNXj8x&@iXck+6VdN#wUOd*2J!TR{}Kw9E)yGn(O-n&t0Hw z6URzIuIKj52f4ftwSV@1MdcIpB(HV_P~^9paHDXR1km!;@f&-H;R2+Q`oeodN8SuN zR^&iLhBBAvx>sj}tfvjw4r7f5^d$lBYs6Plp?56-EZGUFtrNSh5VAwoV*^2>vnsS? zoA~=^3r77iEg`o_R`&b13LEmum_(Esybs49Fki`KXiU*6P`si%?}?6lk6$bbukAcpfO~d>=Ox@w~v7QQ~5&W*E-mz16v7xB`}wf zPh$b8sh5{SM_$ABzLUGIkj+7t)$^0LGD1WOM75wiWcJc74}6^!NMNv#_=?YpLH3uLp8WM%Gzfb4|w zRX|PxlFP@6%+G#Yldo;H-&X22zuP4MUd@lL(xD=w#PmDFtNaRV%(MuGH(Snyv)%&i zbHWJyE2}q5+9i-Tdbcpxnv>TY-<;lT$o-wm=E(LHJ=A>mA)@|WN9}LOG9t-HUiB>F zb&X{Q=Tk7Sd8ebC20pG25!&q_TSmxpU6T`h4oR-oGe&&zvd`8~{n`QBXynJCHS~@C z!}e>4E58C*gdD$N!7{uTZ$Vnb$wD3o&H|jp`fn3L?_Oa0g8hD(Y&zI%=*^d!6?rVR zFKuM5B-}t?BFE4AaJWUuENs#3&AzLg%dAgE_6s^iBP`jYKG}Bu7GMphvHtzzED4}x z%z4%XYYXJC1=XTTHd98cX%uUZ4XA})>Q}*dA_YHBg88+UKM{V@o(S*LQ&Hv7&!-dp zS55JxIgh=DI+t8`7X77XMVIWn*#kgNuA-84O5nssd zqp{)fHQ^K6z0Laii(`;8TfdBHZ5>U-t@QEoNf5^nlgCB+QKOC zWuFp2{=*hPg7LEin+H3M)F%_5%{Q2l2ftlWWPQjnPVOfg)PIT4>vj-q%++|ug3-c- zGtBwELcNo0#U6s6|7Xb26R~_XAmlUUc~#zsuOrBH5p~}S_hLN%>%N_iY74R--*12R z%}2noop~}nTNxkc5QLX54^yH!E!m;=V{n!Pu$w$4x7S{{r;XMoqV`PAwh@d71Qt?B zVC0xJXGsr4Aaa%_VD+c1@badSF6m>InkhV&F+v}~&o>nD4LQ=4$5Oc>kKsB)FE(hd zY;4->&8YN2M^Hu{Yt#p0kgqr4`lBM*5WS)(ztn!>R0VL z1ZPPAi%1ixfa|38?3COm%3a=wU;V)+I9SO1H}}GllLa}EU=(qd=CkbtEyNW8GQMeT zbI&#}WaB7E{mg72`039#&yWPDYYdHBk$HK+(aE@)XFJ>4+?d|d6s=z;gEVuTk32-vrf*(6&tICz+yUf#ED_^wK2Oh^Pr~7(rxMx=b{Edg#JI`zjUt&9- z(xkn^*C*Cvv`%rHVL|>fkYAvRrG2yySDOIN3|oF*P~U(otSzKAi#Ep^a_~bW0D@lM z7z1%d0N)oP^lF3ke{XIC&z7Y3&tE&mWj~~Gz`n)Hi_e&xSsy;&W6B@5d96=v4*G1w zx+Jq~GR&PXMA6?)$TuRb18pMlMsnikdZm$k=27nB>EG2`a_YPwKKA|iQA=K2&G=^l zVr??q*VhEc1boHW5&+vmuMYFw$bmh(E={QRF**O6cB7v8qU$}&_+)b^Zv+KTCP6wx z3V!`2Kvw~L%@zMq=KFv0MVIl2K>vbzgfT&^xuB_ zmy2)z{O5~58T~cB7Mp$~5s?x=KKtj*qYc+>=Al(=Ue5T;>(RqU{?r;d@9%$?5DG>> ze;Q*SmORuos9?vQ#H@VJY$XBk)oGkju~o?`2PH>%A|(m6S6XVze3eD$ly1pW-jVt8 zVM|!Q`TTRcdU@i{418MrWhs93S_3|jUou}<+gIm?_ROI;>lHu^=ep4+7;I3Jsr7?`9dQs@rOt{8J|CnvT?W~ z;mptXClXkcl?0$1fC|o0T>-4JXv7mgw?j%U(wobwKQTXIE8p4p(2@ZUaJ4QXduz9x zfi!dXnbv87=yz4_ad4%tHcqlb^}R^^$0aqHu! zPyM$6K5u(FHlQ*t*ZXR4)&$VPvAuxhNk3M&v!gu1s4er9eZ}J`E{jf}kl|Tu1%FNi zv#cG^;zKzR@&z9YVQ3?F7hQzhU)m{Pk9@%Xe-!vP5)Wp&0 z*vhWh37zmr0xU9TAdUn~4ysH*i#J)sR3~^xq@+NgD*@!Qy#gOn;Ag!eq1vY4XCo8* zx~y&w|MG1_^N@Vyd_0kK@0^%;3+SSTEbaR7vyMS9x-IsDzqzdb?QehElK^(>ES%58 zJbCw{k=k<5s;!dRw@@AvJ9tKcZ6pBv>L2_G``aA0`v}P_?fnhzBQISIH0~idO9E(H zPflnr!8gl+s6E`V_U8PUv&Nyy!yC#3jlPJJMW?QS5-HHCUD^l)Y!2QW_?dKNFbe+M zPkJ+QAmzX(h(y@`>8GFBd_MKf4_X3fNx-Jt;Esuk4?|m!SK~MWHgIS)hombXS=xN1 z(aA%zH|8TFel^Nm9-7SrKY>QTkp$YanHGrrZ-q_~pqXl*uLb_7KR$yPQ{z%6G5yQG z{L96^{_DT`-oV#dBdv|EMfk&ETsebp{wT|dY*gn* zn@=v0SWfj%XH9MF)0J-1iV#?nz3 zja?G}o1R3*B`cTKeDoJRO&7_|^t9p*lPNThRdlY63C$&vOu=Lp*kW_^BQ{xwcSg*E zz~f)2{mZ}n)&q~Ttpby^QJEy*#|Yj`O98$$0f?}LeSkeACCZ!>@Hy~xVrH=pnJTKg z9ljoiVYiO&2UmLwU^r^Bu>ic!m%@WAk`e95B0` zBd0`jk(wg>AY?yWcU*Y_I4Ald`3kg6$+G}H>DA7lB!Q>CITTT;tUPvbZ0{?fv`<>tSvj^BA`uZ=xUir1*u5Gmc zvg0Fd;C%r=JDZiw$R^E4mHDuW>iMt1)Sfr{q+gba;8;a&w=%Wf$1Btcv^cwlPF=e5 zyKD7n-I|=2;+QewEn!Vofe$J1RDZBRwQ=>K8swB@6n6|`np(PxGU#C$JiS_nCez;6 zQNz3U!3K`fXXJB&RWu`q?F1$B(wu$%cjieLs{Rm(M{>-BUdR){gO(gfDkOgXHzQ~M zfB*M?_cHQsSNPHm^eNbzm#MgjLq(4L^8hi|z7PrW15hjRrCUW2&x`79KsQ2z!wW7ewIO(iEoS!Gf)VbdH$S)e4n*y2RRc&sUZDy(4DTC*+?WhDUZF?^BtNDX+A0^iU2 z5%~Czf8Wl-K5jv%^C2;;!zS%{H_zY04{1KmX(Bu1`C7S>^Zk8?ngDXpPxyNhz^LD~ zOaPtY3LyWkm%6C(SRnm1oovxY>PR+HLT+Mp>Su3GvRmU&=bwo9yt!O84X!5``QJMHqBEH{wUW#uYOTkGC2|G7U1cVNSa@Kaq*P}K4*PyH}o3_`pX{u z3AxZ`WcGP^*EIHz=4hDk1LAR{e@y^6a5JqXfRVgNCo}hTLEQ)V?@AJYUj07mtTHy@pU}m=gj|`-{`?_yX|0n{0L3# z^*4Kuc{OCq8+L7mm}3SUpQGABCw@FO0W2ki+Lr{-_eeqA2l(_xB!H16)xJe*O-^lo zjDGaznSjRT=+6eCP5M<9DVTFWXI^eonK|S#)aPlWI(85Me)h7n701W6x%s0etl=M3 zHngJ+G1;DsIRth_afI5sD4X?1xyn)(FWVzudD)0-Ex!7lGXHmhKgjXmwxDLtoT<6x zA*i2N0{qm<{DaodK5c(t2tDKDyXGVO^u_1x(}n~*5BKCh0{;PlZ?~X6JV9ur0Gau$ z)(4nK4CFf}=GSEy`@{*L(yt={$gv5k*J)$tY%cB`BV%*F&+UevT^P?ciUK(I<*4AL zT|7v^JtF3k>p9pnaaQB3&&Gv#+Rqt|;P7Da5gV|m*%kAO;@m3%?2KXt+}sjsmf>Rt zQduRpDX7^u#hla7`Bvaz-~;?YBCupgBET=7J|o~i^S{>fE2Hq!Z@y>`M@7#*Z@*RG zszAPPpO;{!5%>xY>};hSvfU+!Xz|uG$Ii=0{i+{o0wDOeB!Ef;`sg_TbW8%c*1rbK zPL|UJFWY39@MLj?RHr04oCLvT(-CZ(RlfT2tBbF{`r6JWU)tH_bH6NQGZCQqaun*x zYJntEWvP3@F@5MJ*g0!)$;y%Xdgy52cT@8Y|A0qeEp=$ z`tws>As3v7X z?sTa0_95gUMqnK4-F^e$I{2z5l7QL3=Cc>Nx$1agmyFMBLvbm|gChcx4aQkW_oSJ0 zUn){^5Gm+s)BP%EHt173Q*qWJ@Oe5-89wr$`KS3P&s@ISwGPmxsW(UK$8n|K0KUmM zsvP9#3Y$IqAlrd-cs+u%txF12JA0E1xJq+>4t(qnjO{kb&-UIc#_{zPkz`_Qh_PdQ ze@}H2XoujrohrAM8Q^z9_KfhkC8`+l_TelEz|8X_Zqw@&s1wwN6q&$|s5^zQp;eJ< zx*#3^!s63_4<6pPv&j<={I9?M=Hj>C{PyA-3(_x126p*LGSCAnNP%5R52~QYCeJ-A z{rMgAH}Q1(xBp^#txn=0N$9Nan>K87+hxC1b?`Qq@k8T@ADz@~j^&oEm}ziZlHCJL z)+y>N2xnp0{>G>!0V9O$4e8t$QbKnf0%Oxx!5&_T(R?f?+PuAi_9g>bZPz=1?m|nL z*mNdrv12RFehXmB6s0+~IxA21kV!Y~$VVSzgA}MIUwgkWx0f~UR zUxsoCYVF)hRf11DeZGMRdb_IN2#@|e)Ozs9F83|*m<7J^ee=heYaeD32l(aOU_QL| zA+LU4UlBgQ7ybuEb{QWJxf(SexeWaz%UUKsw3sJRv^p)j){QvAucu4`Yw=TY%(!Py z09T5(;!#;fbCi*G1mv5@ifkl%@v%@IVm`FXeSRIsa{_)Z??D~EYJw>12{c3*zCL`y zucf$mrN16harx>t#NO&jC^m6#7+^BHn8sCO*}B8AXnq8MBCvX;TG-DS9cSM_>Ob4kbkq-Kv z5?!B+2y%b6mc58+b=t)0$EDzD`uU8G#ugyNWEofPH?=Cahty5BFfJ z+#$FbR{$~bbqBB@ZBZst^znXB$n?c+@*O-6;Qo^{Ob}3SZV&i4D^HsJSA%@a*{%}! zHW{AYJ3YAX53lr5<|cpF|LRbS&F0}Uwk3d;Xt0sbC+P1M;AwMr13IR50qMRBG+w9R zPrw+AMKO^hY|u-ndId_Aw}bJF?|Nd)2?qVBAtg!IA2v<;5627Cw$a#uvE6}{eqif* z*({^fpnkRQR(%y`O#s#SCCG53yHk&tjL=6N=y3J0N9x@G$SfxT_^}14myI}k^Mx1w zD<;1$wGMs29r~rK`iBnj?d{?t`bLuJPx4EooKfp)}_0?{bo`&dJ{Yb%kvb0Ny4*{x_-!83@#%p zKyNWj+nSyQ#8|?#wt(Cx*}aGmU$SF(WzG>JN_l6cZN5do%mHm2+~s`6cB*fZ&8 z@OIj~xoK{a4ZbhDz0q)9Cq_Ohx~XYkxI8KPzMp4B-f z-h?KvGS;MW075rMFE^I+L{@9$)7d2)%}>cEO{<|Pa>{MJzaY7SHgw-7>W(PWS4Wk1XxusfILrb+(Dm;o z=X2YNxyCt`w5^VUt(5}uf44XIk{iuaoYgVCbvOTY**O?vKJw);nvby7wuEbQ1#m3( zE{ryZ!577y6tu8G9Pp#P(g?FaK@NF}UX6aE{vo?%letVCYY&hXO~y~Y8DY6)jIHuD zU~@nBRicbZTllN?cN8BltyzZj&U7X8WRsvhp)qp#sxjMxE0CRMO#m#fUc$(Uhd_pJ zaq@5!m|E=>$j%WhVI(`DkaJjlMjO!09`!e}_dX7?D$juY67X&E^N1=m?nvuM{$SL3 z7W=6&iqARPvy9r@lCWpO6ReG1BFQdcGR7(9dBwQ#R{(p#qTG;$Ii;0H>pHQo6coe6 zancp7sww(%;L`Y5n(La+~g9#De(@Do6WXX~EZKRDd@S*5e-1cg76(l(#9(RWGj z9&8QqdbQzoj;(sFapehMEh}9XXcd9UIC&FX(aO|W*17{56UjeLG&iXZZLAT2+NbvK zV7!7E2cL-wwyfbuMx6XTf{qx2_X(x3#l!aOpRNg=p?AU;7Uohh=^OHSE-KggO%lPL zvE2Sdr@%3K&XNFF8odDdu;s)tklJGU-U-qk)Me{JM7tI%Z?KF!gDLU82O2+)>N^=J z+E=l!eIH^Bw1_gWXFU5eAl9Lem&+UBzKr>}z6#^{JY(J+xeUS<=Vwye0+0x)o%|BA z&TEV-y#mkz3O)Ev<*2-_dy;*+iM}WIJewyfSLaiXxTr*_lq-L0gN4|jdT>~x23OSVxdPpD*rMI)wWK;hK-#u zvdl64%(u(7$!3dkYvcZ-KA991vrfx-Wv6Z?3qwUEQa@sKI%EQXcoc;W2Rxv&a}Z)nn@q9iM(%` zr?Aw2G*;&IegmDCMw0WTiv;y50>obc8-1OXQqDSK4q?@;DLP zR|n#338499_v*mLH9Oh(P*g$FWvCN0xys zgs>NmNLbRdvuSaZzF|9MA0`{}conrxdX{Jebab*YE7{wQwqmIdHegFsM{rv?1_^y0 zRz@qfd3zoM{Xnd$WCPZGwFdXq331jd0C!+3cHr9P-Z4hg8|lfI`Tq#Vu3?|ej+N$# zeb{!SecsEJZLr7CB{b&7ao0BIHVu~pV~9EqoP%(Pv;tp!_Vqo?k}-}=1gFB8Zvl=6 zF6n273V26k!uRLqtATkdN{3;s*Qw7q2V?8_m#}lxGxK_RIEL}yUxAEuvgO16zjMzpU!?QRq>0hA9*y0DYcyN-`6zK3*Me|EG zaZyJC;&oQX_-7xQ#iCtl!j(TxHGcTheKydU_fdv;+H1m)A8OT>LDPw5ay053M!2?D z09&C+Y7ugw8PfTpCOA6yBC`z<35ue zknAY(b;HTO{63};mC&&TAval9L3)b5ydMsM_Y2yLGWMYf^x*MMj2oE%aPek0qcJnnF2>7m=5`9$xoCQ{ZjqDunwny zex2I?y_wf`w$(XYN8Gpskk3MLxIn%0lAIG8A;`0Cy!IiFvYrH{xa`6+&*3H?@xro9 zjPI1@t+@-{-ii*_Jk(Fu=o_8Xw^P#FA!A(Pl31{72K*Mqj*)Gbgs%^UGw8lb-1u97 zn~s~keJ+8IZnxfbz>Qvo8a&k30%~9T2)a_xYZ06gf&`s4I|UzXwuLi{Xa#+2QG&*5 z8muiUNKGV5zYNJTi|I@@AnEm?eLh~8Q1y|6wg4qj?w4giu2G)0PN8`nf{FaVXKUkK zCF*`0;rb;28ElKXw4wLG7htdohiN$gW?$C5&*_^{Ha2w+o()*CVX61od?U=(k@9F% z@#Rx{H>2ykXY+{mt^NUd^juy-vnr6ssdGEPhWCwYe+AH;zObQ}VT-^*h+>hJ0)y?Q z*CAN!aj?Bpj5a*flVYA*YVR=q*aDNH0Tr#blgm1*-WYdFatrlSgrerJrpw7C8%0Ye zy@v%e$hJ;l^9b0T2~4En1s_oAl=@6i$3tethU@@MekBwHqzwCBRtO zF1HQ3BwPcw8fg={AK;IW$1mvpja;+IOmxAol!4CBD?4WJZnVT7VTCPD<>fX2AFCB} z`}B1r(lC2rHrA*49maPWq4KNWt~q{vPh#q(SXfs<;_G7k+v=^d2}!UQtAfqSE`e*b zY1{Pct6`E*g1m9&BZcuoqB;v^M%)N|*a<+Z&pu(p+_~fb;+tb5c+(A4$=*86_~t#z z{Lgx?C(5#mlsAodvWbjhguRWVyNUamRs>w%4wO}IXXT7qKLB0v{AxtuHnn67=Gv9H z?RJbgiycko3#}V|kw2nN-$X!m`LvUPx!SK{ip*wAeA>p%5a$@xSBXm}fcfTHM_#B2 z;EnhRqkb%-Hr@oz;!PyPIH+=cDp#^M`+1jW$BzwXRfiWEe@f9dB9P4TqVq!l{pj#A zhZxg&bBwujbe*vo^pH>e!>f%FhOs}=Sv9?T2hCU%zsLO^f{D^+gQ7Tx64VGRTjRa}bYmlQ5v8klI})^mVn)1glT z>}PT-yGrlZRN;$PwpK4+y}Ee$@@1nJjb23k)hk;|^N+73eHq6H|G4gt@D`jYWW%gU zCYvsroRHg1w!wJ?g!n4S0d z@nffl!Fxp6jvwE<=UH6Xmo(af+5&q;%iHGi&d#))DPF#^vj)LrXH=T*-o4w$Skgc9 zhl%<9c^@O-{XU&?}PeF3s)y3_+KokJ%9eZA4zbOGjU>i{>yWxUN>3w zgK|CVA%;imBzx3Gy#4<7zrXnEtFQk4VJ84h+=w%?9LVLP=IWPhd)xVa6c%lS6W%pWn2tx$hyxy}jTt~u|& zjQ2=cb~gEf>~x4^pyRA;&X?RhTLiUd%KcR5c-Mk*pDi<#xzpcu7`?Ok;UM2wvAI~3 zH;`>I+H_PILQXtLb;;(sNPKU5v+FB4wU79@4({H$d-3so^N|t$BmoGc#h!xs`=OJ9 zGh?5h7e~q6!p}ZJQKxl)uvv3uE!e=i%;yOG^wUpHY;0|Ikp~60aY5)1={BJI-o|MA zy4k_LZC7K>3vMRHhQX6d_TWt**-8b@F}_+D9y{{-LUj*7Tmh}sN0jF}LS0{C?Afzt z7f+r%`Q_>oK#|$UTT1|WZBgUr-dX^678@kWq8xy=EXsAYSGmf|ZMk0Ma+?+s zKjVvhS?iNxx`Qc?;65yFoO!kQDx(kMdXm&!$?lyu6?YBHXuAh*V|wsg;MTye!Jo?te)^FB zlmzm+;k!vNy<&}bNjL9nEafVye|E#cK8a%I8LXTnI^a1;w))J_{L(<{uR8%GS;>re zW=yXyC4lDGctv@KRJOU`c-LXX+;Ea_if|ggV)A2bB001MC~c7Vs;f_xuOzujZi`WF z2RZoNNB9b#*zG``ueP1$2)R#EeY80p$Z=@3h9%hybow#%?S<4I{j$NpQ+|G{L2wiJ zJk3||djj~mUG_UsHu41U^Yrq6b`|i-l0ZB#bf2ccXH0&Ts=W=c2|u#eC^s(qo@rpS zOLHE|o&9O$qGlVU!w#$c(eJV!`9m-+`w4CW zU!=3Wt^hdRxCveAdE__*VYa{=Ivz?Xgbp%wF3p&Fb~} zd7IB~j5hZjutDoA8tttclK|=_9hQ{Bn~F7uBHu`6s*NH{#5%Hm|F_Bmogu74kEFWIYu0 zD!VmiEVclyu<$AVz8jwtX!dd_lUhLDo0MmDj;-qO{g>8VYhQUcDgkJ->R8K81b*DZ zW*N~=E_hM*1Q26xM%lx@5HTMu0KqS(K{Y7Fms3SGa4S{$%2WTWU+qAfQh_h(KC)v^ zifrT(uyx%gt+c5<$@Nmv)nT&op{Rqs!g2T32aOirPbA#u7Q6)gKmYm9_CX#i>+GND z$DiVs;D<&^7BvCnB+#z{%$L5FaRorx_w?J{+>`(SXMcQqC*M}ZA)`&NG~kOUW@I1v zG4<2_%cS+s^uZ+n>Y^ zp4!E${QSHDK0enyzxqLZBVm=68QP zgJ&*pE?!uW62!Xf_W%!?1b^@p^pIo}{Q1n!Erowl()^hd0Qda*z>j~{;0@1$norz! zvB%xdc4ET!{-Dy1n60_20{JK^srbATs)o@X%6mj~)d^ttOXV{IBdQ?|c!@vU+#A8N zwAT(>^kEkpLH6NH&Ma&?HlL_&!b3@CFX>_7v}p1V#HP~5njvhQV8ok%_MOa7I&{c} zRmiq*uGg$fox|(buY9fw^6X3TASH-@{No=NfB*a6ohU0|)IPah`*QRvjUV{Pu(jDy zdTL*Yb>P;}ea<}ERHj&1i_BeIuWODgO8`RM+&DW^M&3{vy{7iy?3U1=F*wGUos8Z3 zwPS|rISH^)a`09f1$b_&JoKU;TilLB8P1C`b8xyemUYzek*qYffqq8xzrz*E?h}3r zHjbMA&(FsJETT?3e#%!%epV0CnNe#*fD`y#$3Mqc96rA37LPi1`qh|EW$J?w_DdMh zvq9JU#+4_4eZXZWciYlJBz{gxfI6Fx0A|Bv(nek)WNK1SKW*xI=FeF5!BI(oKD&O$ zXxIcZn&4+{{GpWQok_p$<9`2#AE&`j0Mn)fDIYCC2_0E{%6KFcC4$kJACg`0A=U{U zXY|aq#kEKPd3)xKuLXu?fS353EBpB}%M)CKAaj|@3n(ZVS7)-knMWHNo=Cy31fcdD z{OHy=Guwp0v?p^5&|5SE@`-prhlZ?Wv9FMI7`kljh=|>Pb9UzbocS|nk$eGp60qPT zU?IxLXa8jE^A+;+V;t#S3jWdBFfJb#_es(yGy&kC?4-V!8yq*< z5Mb=|vVxLf0XekVBDByv7eK!*HMME-CdyPddzOVqBGFk*&m1x>!|bPBGR$W4tZ zO>09ep^hUv+?F5?z+_1P{_rpSHKXS{;@5l%QshatK)%m3@>P}-kM+{kfX?uBEg-Fv z?Bs~uZMrswzb|90?Iz($6F^?PV=xZ(IiK@f2W>{k_{fYe+M_SqOA;V}*(iA&yoB`++uWY_&ceX9wR1wy49~E5UEgE*<`u_1y^dX*#0jW3;QLw{PG0e6vq} zd9m{m{*Zq-!W#uYWgo+632Kv1)ravJM^^wEN5onp15xHvq5ba$&}n*{0Cl5kOLyrF z#(TX5m@J-`rqF`catHMhzhaAwp^ia0pIz9bY@WP%AqBbWnUE)W)Qy^NKcpah5g~Qk|+Qj+H!jXDT3hzTM;qZ%o|a-exo+SP!9625}}l)#rH0mfu~WK$3JVi$iR z&gVq1<-PdwJ>kj|z)}DhbDBX@Fbw6_kmV2PTZ7OyL)2vhbvBKHUV&fBw6n2Bn>&v& zgtaeP9bMD29#$(QW35p*h zurlSKLnbFkbjj{+{{hJITx|h(K6WIfY)7s`*we?3zF8-5ek;yVWY2+W&t-Ae1b`d$ zItdP#{Gr=iK|Z1k)maEO3`u~X*Tbe9{K(|~M=u^aq{fT(dbiU%0wZZOBq!3+7gX0L z_Z1{AWdAsyx$$*dc7zCQ2tQP+0VjQ@20F2UvG`m<9(P2v`I^x;`fGk$t?O&dQRQol z8}$qz|Ldl6xz;y;7T!oapt{=NvuX0}00}{7HOXZ<4rR9JK_A7&nLDI6?8cOQqs-rx z_xV-*C!kYw#3v#pfe}@oo&zI0#LMkj#_QIGT?9v-ugd!@mJYB__E4PKU)MJQ*hF!n z9I4|3=4hd|vk2!vT>v%>Nr1rD*@dxv1C^)Ql#g0Krc$Sa8gz-MPGn-N)-(ixpM$?a zgVg~AoO=X|1}@(j!y3hN9~;jXx=yC3gEok zWDYrJ3na_ph=fxv*cuq+{cXz~vd82TmACry)X>;#=hu=)q<~PM4j!tOQkuuzB;WiKPA$F~%E= zImA2b2?f?x1gRz&CHwI&+)M$_k?%1OFW2SkQ=$5gI%E0wDg}Jf zKXDEMx-+3fn}JP2kn6wD5cvJSAq9_i1qLWSPGI4u=KG6sv z+wGHF@Ey+D^$+gQR(LtkMwGwuj5lKmSAnz{wxDiq7TwO{Ue+e}%l?Ot`oA_)@aIHu|KoN$kb$mCVbJ}&8*v`!OW@L( zAgVzQQHBrUJ6$R5O900}S6r->0$n!Ao+ZK_{-Nlv1!tY9<1AnQ;vVjPaFoga;4PbL4BU{~ZSR=nMCIcwiP zu0GY_vEsG9X@NGPEh0fF>R@rxBDWTMN3Oq$KF{i%vlr5>%><#9uQ%r(bSm%_{JAd5 zR|Raiyvg%(fkW(aAYTX#kRx~#H`|yQlePlag--N<=-c~HPx@49!?u3@{|r-5DdhD5N=)MMPei$jF)e+*uG2?IFy4f&2-tFJ zoFxG?2TosC0^hxDBTgX41)ul4VVq}e?eee5jSP?NwK>57Un{TXMX-;NI- z+nAQDWm6^AhAS6`>47HyEqDOhme#Gi>zd>0Zvl=03o?K^*%zzT7okN8JtJ{#q+ITs z*#bJB`TcAkq|IE3O{KE;d7PdJL=s>ew|@o5?KWA=l|J-s97kg}ekbvRDr(zIrjI*^ z+pZUX1cdKQ0X^>76~F_Vr~H-uqAMkczBZBhPd!j+*Oh=EA1#rBAJ7l~q8pvk z+phqMJt`{!=n9Q_47{-k*mRR{GZMfEd6O6&dhS?c?pV>)pz^ zJ_P#Gn2x-e)egZ=HX-HYd{y|NK-rG`Hh^a)52lyl3O@0kJhcSyi6sCFd;*sLR>P4x z?Meg$xCoz#XhQ~l^!fbr&o6%So8NRjN-B)ui6F*@e0(Fy=s@?>=P{SyWz0DZTBp38 zr-bY~CC-)r*bsW11vq(&qqCfjlZBoVPR<*vlafFLa8CdV{v70qx?JX)?Cz{Heegv+ zCkCh^T*=`OukMqdwB_+Yt!LoJpss^C*n!)e`}a93w_xvQVk0GheD;S3T!=vK!D}+e zPy81IUxEL{7hgD$0H~7yJn$9#mTVr!*czWYdTKIupRdh3&?VF-(0w8QTw`4MKL_pq zF*rzaxz6#fEl9UzixVZ27b5jze*VP|uc7vhFfa4Jm5wik0Gc1fm4M2!t=4@`M!h~D zeh1zCz|rJ&M&k%ccBUVB3ntF06HnOu@*F8qpYT%IQRQ3Fk+;0~@S2>xtAiRd2m+2V zKA#C_w!}GxburSHZt5(qxo6Vc@jZzW%0aIH?nxvP1xJ;gp0vRKh%NO~A!gt`at zE%P`3o#&r}E(JubimUC$f59LYep z2M;Zw@W4{@^zB0oFr(R|7O>Ek*W{`afKFf)zLp92_v{J4%N*mZmt`|e`bC}NQUVxa zK`!_A1b{Ow0pKu#pRb9+Y0O>o8rdYi+EmU|`Bj(d@?9qN$qAsgQC>;_6AXN@)sIMt zq(?n_P>4~`*rt~tv;A`(Ep0;soA1a(acxm*(hbr1eeTks>t zzg(|y^ZR51YyMkkW6o;1ssz9oBh>Y0FP$|3_>r@m&UEP(V7A!w<0xL}L1qcr#5H@> z<_nM#fL{Sb0??cpn+>OV_#9+oq9y(kWqHjzk0DZ9l~Lc1&6fmGo-d`@><9i>^U(~* zj&#Jam#T>RnX~6jZO?eXTbZNtBKWD-xz_|xuLhI|bX$;veMEZBz%7CYzui)~owok$ z4+pk0hgNiWEqIGidmPcB9@2A)1c1C>#in-gIbPcY;5!F7+MwayD zvc^?gOB-`@hehzqVR=54x{U+gh_r#BHTle6lk57Bq3(fWlZmNKHmNZ3N#>a!I;w1~ zXW1D{cBIRWzAo0L{p2q@@?elT?9Te*=K#!E$#`@XAc99QXHvlDGG~7!06vdF@G~x8 z23YPCQ^;ucCz;?aL2Z6aa;HcDOC&w`dxUB)em#2v=%llMx)sQjWjo)>jKSF=+v5}T zDsOFJK&u&rypy-I1@@!$b!VmT?lWee%Vc~b--v~`MoM6!s?Vv6!x%n}>cMOG&h5;I z{C)K^p3jAs*^WCVNWPjkP9Yyn{HA*1yUt7jZ_BVc9H?%@JN`h>+6aD&XCQOgxcp+31D;u zAYzOWvRwdwDgo?n%FY0DNq=cmR7Yi~O|5x-`lb?N1H4c4YXP(COrX_EOg_EllzAKJ zArzaEhf715v}wH_$7%<4?3?&0=F;ZTr?ta^Pe)kt|G`LlMjEx2Z5lrxla$TEVJZ*Hzl9?Zc99bNmKcKO(d{o~+gGFG{QLI2( zHUs9Te@FH5#fz3L>7VACb$MB5igO_5u{+kLzGp!XI#x*%_jjj_|81{eMyoUxjq3qyNA?{5PmpIb{+k)d)`|o`qSn5Y zKLB%5637VvABm{@?Uc1wG&9CN6k=5xthkf_x=sGJ6Htj(WPX(iKz}Oh^kByyB>*o+ zol9uO@BlS1w#ElbHdgFmaYSF}@wYUlv1^K?b;{Wx_jj3OPY3O?+us|yq_t=MJ2eob6(pas#Q8JIw(tw2)J^kZ{ykKgaTIcuad$HzhWOwviRBkD4u>4U3E zJ_a(eal0%>k=5NsJNiRWHZ}9;)V8GN=iW*_qoGO6k)#%}D6`^!54I?SW|Io7YwwP% z%UdISn;*Vl?hkFw{E-e1@ch}pv-T0;OrJfo`}@y6^^f}cM|?SP*a<`lpbZgY7%9PE zO5aCDGEX#zJUxYE=PeEJm)gz&&GS&4Edk)_=I$MqHYCu3WN1;gPHRaXtvcg>%vpl7 zDFGGazmLx3PpYRp$*vP)v~hCZ5vk9F$FIeL7~k!*4XsPrp8Pm?u@`L8ZPwb{YrbAW zQ)%x(BfobaGhQO!fYGM@exO>32H^d6_x5Uon6Hu`!OgGlICJ^!qLm4DB}fu!_K({k zo1{DRb{Y6VS#B%b)>a(CZD_@l;F$H?g0o)%m}~v$jvvgS@zZA0Lcos&g0x77E|mHL zpRDQ4o55crp7@hjo5F-#X2ADXlxMoEV}{EY zr^MM4z-Gh-xD0&51bsMYe%YJ&Vq+k6IWHcM%le&M;Fs#T9OTal-Zb(6_b(xVTCj`i z?D;!{(Jt?S6hU?Bz(U(;HJ%68A_44kR^8CM#omClxayHNjK6fOuNlATn9xKfx23wq z>augp`tZvAyl-Hj;9Q%n>fJXE?On!f?qChpf-JYuFXr3l9!a1FeF=OK&e2dF*sgGj z&a3t$bDO69*eZ84WTFkSo8uhECb6qe0DC+(YU*7!PH;5DUI(dDkZ-gFXICsOjQB%} zm*6$yJ1a;M5SUn>`g&y!7v|UwYjXfu(?~A2pBsDk_6p9D0JKOfo!zDRv17rrYYy`+F+oi> zPk0hoETk55BWi!w5vX-xBwOKja#Y#tR@<3A1*$}bkhXq}a&w5B6xpZM#6DljL2g?R z&>VZa3{QH&#CJ)CJ|i@JyED7JtFYr4xxU0~5)I9lO>j7ll=yLqk^Ee$VQCK671!bx zAa95zXYc!l){GWt=R@CUhP?|Oo3VpxvW^*N9j%@@$cm;wYTEbm7>|@t=Du&tz4{93 zUTFF?N@$xXY&@~FOC}`jeN6lmIR>XXj{3x4#8e&HeuR`m&N2vWt8il zOehC5D#u)&z!~bas&*ZKO+WrVhrK+PID;xo-}gyWl_CY3UU6%$T$X zZ2~qe*tJQAJ0u7ceUxU}%RH%N&Q#v~#(TTrpV{Q~Y=fwxv`b=U+X5u#wzT4v;Ha1~ zT>UeE00!rcE{BOg4~VFDl+CjRGY7>2L*BMfr=0uxs9}>Vh&>ncHflmHx9hnBJT$l# zpNqI-^ywNcOBHwrL$ZB>m>;A$W~zwcO|4lCIn&;Q=+Q}f5^sW}U-~+dPDhuuF|63_ z3!+sLy-yj{OUREf94kR%4X~iGL3*?P0s4F{0qHnK&y_p_Xj{EGAseb=-&8@4JelC- z>B*(XPP_sQqC?P^Haa#P%%jyo*2^(9MLBbp;nQTky|NL=9_XVjKE>))%lGIQ^_5Pi z?nE7%zFb>c|7njooX>va5Hwk|f~sdpuRwd2*(ZM)?EEyvB%T&)4}ur3uQoI~md3UI<>%$9GvM%ceQ0 zy<#e#s9=HJ5H?PHna19WBwNSHHg{jZOhpG34v7{K_RVBX$BZ{X_n94KuWXz6GqBq` z4Z9VdVu>$IJ}Q0yuH*{fAjnBfCLGs!OE_ZUa(s6hN6{W2(J9G`H^CPBqkTz=jWgOj z!lb2)M=4Won_yx7E5pvv=ReXDv<8>40XsEzLp7x6-$7PH`_cp!`yYmp_P$meomw?x zviA&az9Vhh(8oLwXL<&(qnm(g=U%%nv3W+i5Al;m=6I_OQAa%%wN(A9 zK8^DdZwm@nnmQPvj(N3B{@SD9gNUHo43m@ux4B0 z5U0zhjn8-?gh&GzP$M~z* zD=>!Z4muQ9k^rg$H^JuO|4{~FVlg@1`-Giy9{2)p!9Y%Zx7fFLF4oXxj52cH-hzzt z8b@tTy{*+(5wb$x^wCpw=W%pyLgMANCHbj6)TW$_K5l~73NOPoGIyW7Ag zgh|cYb=*-qgg*P}ox~40#`5puZ%sQ2nOydk=;J<>FGLwsU3R*4a?M4IoTvUp7k}mF zYG5#|2on8G?Ksi zIH32nHeOa%)48xO_}3u6T@Q5UE#RD<)VLgT0GtA-5gm)(Ka@;#4HOSpOF-1c_2zS@ z9PoPhWYW;!fn(GID8V@cK7c!G8Hrkd{b}$-*F-O6(E-RAfNJREU1R#V1iTu&F^)%I zF7Z9ogHO-nDkvB0unIdr@oF*Nvlpfyqu+-s7jjW%OOy z{{;}ABl4YZJpZ!CDC>(J`Tn<=v&;k>E2zymW}nx@3wwpEXRU1uYJZ{IlYF&=Dzl^$ z9BN-i)?4+|G1uA;v0>D2K0nqriUnKkI@Tt^EZ}VjXD`@38$X)0H`UIk^8j(h*V6m{ zIxynvy!k5cpMLtOf4w(f>+Q$#wcuV)Ujq*1y2_*f3$Wz3{I%fkKLNmx1n|Hp2fxPa z2pih_uC3SO*kSUMw!z#`$$g#AFZ7S(GLV&oKg9Avd``iOrpL-NEx}(ySkU@nlD#HA zI1thYx|Wz{w;c>jYxCqmowY?D31yqQ?^f)jw_07(in!|wjDl3{2l>VNNGrW4uO)zv zWQ!mUf9B?s2*x}9DvWWmeMZzFk^n(UuoASVN&x!50O+3huJ}i7!vuhFIeS#7GfMgH z^&I3i0q_q&C_jGG{^7@iht~dZo)CIJ@6-Mn2*enSmnY+>^)kU3Hp*+fE`NyLeX<$! zJ4F6m*gDUQ(np)ixwM^fZW_yBI;+}a><3xzzP=M1#vp-YKX{6%{i0oaEGGda0BB1B z$a0yde=vgH4A~|qo=%bg2w?w?b_?941kme7qXgjm;OWetFPkP9El8Q*42SlS{DR|v zJ2mUwX9K8qq(0fNSB0a-9L#y*mpIZk^VgwB{Z*RiQTqnnletEj_q}!{8cmsy-1@IOG=K0R`+#}ox$^Lx zz}0UD2xOiO{QUgqix)yI_0yyNi07?K}=l{FKgF&77 z0lKgIqE{!L8tA|7J~$_GP<+UKU~bG+M4h-J5$JNCD*(T*e;xsUlM?`S+8I=Jk^=XJ z*#XiI#Fya}Sr*g@u3?K#jo+T}?BvC7PkVzISkk*0bVqHB>!6tQ*7;p}%ni_(8jJcd z<5t^2)-XMVo*B?buKSrSMAf8!EBzuZs1 z2F$?^6#UYkksX&&W$Ogjutg^_s#p1?F_!cmilw=MwYGC%G~Z*!J(ZpgQ+JaR00b}d z`NyXIkkq=sClUn?yT@M8n=(}={HEX+D@7PL^%O4 z07RX$KY{{V}xNdg2q zNkF#)N&urP0EjDq42>nYU52w?0n`M*Zw>POj{fl`b?1e5^5zn65faT}W7DTtQ#;bR zggVxiK3jlZ(pGD)w`RUaAHI^MuNGaPFBW#*gb7N~2;Wk2vZ z;1#lp1&B6o$%#pw?Ue-b*}o=&D@_3Ptgj>V=bqnn+K&e{XSdL$4~Zz)l>k&< zg+#KsYu(1vIvJL2-VMCT1k{)yK3ZCf4*|XhlFPJ5E``w&yayL*e}lS)vy)u9-2*)) zOb78uQ0H5L9P}#di0sDU0>}hUm;Hdrx(@r983ywZ94PJ>PwQlu%|X>P zS1(oDt6lrruM5`f+%gA~>3a$RWF&X24{E=PtOwbxdJlx=1^V2UP;4eP6d&lxw*v}% z-40wP0sQWFzdL;b$o2doA3*j1 z_9+Qq@wWhAv|)2V6Z8bXF8krBoukUX7VMkv$e*{k#UWsi<$a_ww*$Hos0pC%JMGiW zR{&W7on-{S1t1Arh4*a1b&wYenn?G)GT4;aO7*p)&W5XnZD@g!QzUK#04l@51 zx46Y=kYfxe7U2`SBB92i`p*)8b((x1z)}E9!EJ!w;uh}*^+c;!6u-7-j1s_IyNv%Y zYj{K>bQ|2axW&yv4*C&lO!Hg2XV0GTM|;1t-zy}nDa#qBVy*2Kx46Y=p?KRD{QI!! z8Ng)+xy3DRaa!cq%<(Dy2$IXU0JAHA5!RI6;ug1fzaTzETcO0UDFNK#7Pt5?v6=vs zC3NX7Wg0YNkHfpx46ZJ2Yy4K_|~rhzxn2yS08=y$tSPgzI}Ud zO9Ht4b>J;-adVKb=!so@)`zd{|HB{tKmvIE(bK0-|DOpyBlvG`0d8@N4;KVKe=*1v i0N)4j<(FUnPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D(g8_CK~#8N?EU$Y zBuSFyiHY0gcN`fJc~xaqcTM;701Ki85eR?x;6*Ta5A2|439q#SJOOAyyO`eYx;v{f zBja`tKkamUKW1T7Q8hJl^CKd&vhp)yRXJH$4rUQiRa4vgAOD~K?<*lK7FS89lps50 zM*|VImCxS?T!v0bT7g!dwy2RNW2;CTZeUq++E$hihf>y3o)DlBPzu|bIG;ZzC{tu2 za0n7w;;uzbdwmVAPq7{$NbqU<1B73fW>XZEFWCxZH+maw)qeBc0m{6%+7jQbH0W=o z?NLAVb?*Pi|I7dFzfhPH2T$K^00OH-i9B}_^#*9k*cQ2~3JU8C?hO1`_2@t;PnT>Z zR>pq}`J?cnEDPeWLa>$cwj)aUyW&1n{nnLR;*RCppeuNkMKy|*;%3)P5V@{$8KLJr zc~O3h%ho^rkN>aM3ZPW|+I8p38iGg3_cn+s)i92kt;KPOVsc`uUq%&G#8o`2ydF}8 z-wRqom9QYi=OkAMXYL|TmoRHsR@fxXeIUwdqbS!`R&9Zbj5)|d@NB^JFA+BAREN&$ zMWEtylAG2x(vugGid&Jf0vHUoQqNL=oQhMGV^dm%rL;O2b;XGSU2!c6R#XbI@QejS zyv|0ri}(^2p5rQKD{X{-aMHmj`#FT${Gj1!p-kMSK-&+>bS0JOitnOTDAE+pZqlLZ zmmdIC{gP=ZO^L4fRRrR^4mr(I(vlAdf2LAib2G^sE#w#JQyYK^ZgCtqoVH@BEMUA9 z%-PoyT66^ExPk>CnKCRa^MG)de&So?;YB%{QprUAl8A5ktF(TquOrfRk;R8h z;crvK%Oh~2?IDW~KAbbTxRwxK6BgG&CE9*ag{f@&G=i2%he{^-ucxSI+Yg_T6vw%Y zuhMityeev=9WJ+6Rqb1cWxu}2R^`iNVFCO)t*g7`>qL%-G>x=!lrm&=mR0(@;-hW` zU*SU>WB{t<`UVkOg*tFl44q10OKVeQQUKeF=7;FQ4X+!0oP9}Poxe%9{V1==x&c}H zFi=ak57-+~S9vRC$e*grOr2>vNb7PZ+#cr0DXMr;*GJ(t9-s<2ZwIaYgbXFMKV4~{ zRoqSP9B*mm;%lTh8@!&N@)IPoswtDQRn_yd;!`EHMRZ;i<^OGP_L6 z>6&GCh3CS;3snv%$CsqWX{2qVid;ceQ#-F3@Xu#+hd-miqwwm`l(|V&d?#{Q8&I2v zc{6X@Qmr7DgF_2ZzYb#DG}^q1le0ZHM)~kSYHpq zt%k^o3pZmF=`4i&mc_{YMjldr>QoWePVpf=b!nWJOWah3GF|Z8ls3uNj_>-E@oj2; z0ukSZIxp1B2izZFt`K#~`r~QBb)TQ$w~nuu4$5;gPmW_?3gNeLDu+{y^Lo6y4rI!R z@l9ZxzteIUfT!tG4vlb7=Wt{(3zVsa?2RebIO<^R;iO;-!wbTa6o|O3|NKw?6UHW8 zapf$hiRDrxGhensRjat=AjFeF^1>!8g6*Y$Yn za;h9Je%&nFT;#8US{W>&9kw2I9qnlD&N55B9d+%JA4DBE*YWP~D77X2R^D>Zf!sS4 z%D#awv4mJ~jx!WOwRv_Tl4PC+cx1i}4wj}_Z;JNufscbnlCx3IO2!ByqXo!+l@>j6 zG)h|o=Mk(sE}qq#@s!88u^EmP!tq zi;fCJeIl&%*LAJSsdLigFwCA3Q3i>t_?(vDkhzRgMCBE73We2Dl=&LQxa0{eibD~$ z4s~HwS=RRo?}=}oY6#5VGGQ)T#L}2+*#Qk_^M~@-tn03vpL`Y|zXHqvTo21y)?cXm z&r$NB*hn6&i7ce4(&hU4!9%@`tBj7E#;T$)>mN^U^|kE*74AvHdVM9O9Hp_eIUyN2 zDsV2n?GLtO00wCwLy!%UvCSXz=B)A?r%XU)T!~U&Da63Fk~k-PJz1h?APdhkKVfw^ zhL!QVvkK3mM$@Wx19}hakZ?y0b`QK0yxiM>*Nw0ppX&VEI}E z%5ys`AV2auzmjw2-cBC~ovu zc({#KOGA*4#7zh#X@|MPT#oRI(1Kb9r}Ahh;+n`|nOEh{VHiKO%QTE2X7S;`&o-Wz z$#Z*(e9R(~2U)x257_#@YXyLt6@UjR5M{TFA`Z;-vK&1WUQ35G(s`?|I3;3Dv6z#R zoc8Hm^;B?O2p~LsrKO9R#Dy@YRg4@K8kyuZ?v+;E3|?X|D?pI(1_kdNW;rATXPVX; zolliCc-Hl^^w~o)(uaq-n?DDYes7l?MFAB#->fOXBIO>{VDPe;k`3;kOIe5wr#*X{^2oh&E`*@60TO zLv~d1dh{|fZ<3dF1J2&%w9vd%mx`G_ZVjaTQpv@1o@SSmw3y9Oe?elchHOh9Cp?VN zRhmhcdwB&g?Dv}n0Jw+zE`-Tu24JBKTWNH#od%C~)8b$+O-Cc?zv8Ad6(Yu#fg{#0 z3kq`=l10tAg{ra}!s>T>*~r<*9f2A37|wyEYzkrl+%z~1ZW+$h z^uPl=ht+jCeO9AJl#5Z80}6&Elnl8|r~fLR&KTaL;}8vlpG;et<@Z(SqeuH`@5@JN_T?w( z^x;98uob}S%;%cj_@+RZy<%qyapjLwXl?} zxGQoy!WS&M{1v}jqU^uBaSAl0WvoPjsM56p zmq2`1xKL)zh?EW6kkggPSy9w}ciAxqTKkH4VlS(ZuhJEd@(;8M9}I_SKHEy~U!0`( zU%yK8@7|{2#bp|aNnf-7ObSU>(?sKOBLl!`E3vqrW&`kvI`<2$03LnuC{2I)G#!2M zNjiDBtAbR3;S6t*^)Hwf~Qo3i5mmrkCH$?fh&7NPS_pdI}i(kJ?r+;{rw%?zo!`U?LO80uA zxiUGIH3r~+C=5VImrqvUOy>#9dnxu)`G29zpFS9+tIr;$w?BK9-hTNwojlNXK!RZa zwzL=N&GWTcYG#!ZDF7mzwzK#OIU=JOcmF^hKimX41C3GuUz=5=i10GUrp2yngNnxz zGXgwki0R`t60YM4l&<92!NacY1anTJjx3F^B^3N_4@!bZkYI(o1R+PDSsFf41YH9q zFAV?z)&yn*HbhR^Ra(Wx96G2hHv>7ff>3A+m;UvKik0#ozdlXRfBP!E{LQO$_2w)+ z(Iot&pVHpI=3kqtH^8_)|2C8bc#Dkn{C?QxYpQQ%if@cG~>4fjUr z?8$@l?#rj5CvF6=JhOS~PiM9rutrmum7Oi7IgR{ir#8C6R^SFn4U})F9D+6YD%3Jo zWfg^XmG8VFrr^9(NCb3o5mp4R7M2Ll)GYm)a)6TfAkQ-p$fL(vC$q4zl2b5NDwOUL zQMB={y@5tHJe>(vF$YD4oNQIVFVpkiy-Me=&(gm1?o%oD6KxH4nT*LTzQNkhTQUIL z225rExDD9<$AA34{ug3Hwg3!DQNXs8`9KzCUkx`z(Z^HKJPpKjKJ2IIz<0ep$&Cos zzInP29`Wd~2}C-bmxy#9np$OADCbVnL0?bnjaw3Ehmp!#qex%zsHt66Bc426)J}H| zwaW-9rJ|fl zHVbEK%Q?%WFq`~Z)T~S4F35R`pW5B|YPME{kz%x9XFqNV&#eDav;WzvGh1~t>pzqM z*yH*DwU<1ZWdVgzhN5{0h*gE0CXPj023er2vj&gR(ZaQ_kkyzEWCfIYa5+f_uivFl z{_S~s_Vst^;qjS_fkubYT-nU;xgFsa=V-JX@?)L8!}(cF18y@|e+8xZH$c$fQcaV zX^~4XtLRRHHOx==>&9R87`VRj%%5A*ezs=3u;=~T^Yra+SoVLHPTroRxmMw936f@h z9&27SG;A|08GxDv0_Lqj4s@&JmWjh$R%a&SI>F%mMSA%4>-6N$uhZTcMqr_M88kCr z&Y)8I%+Hy7IVB?cV}hD?e~61(-%PS*tyZIXf$8R0JsURLHfqqFx>@5kxw*W-MR(-{!v$=Le!>Bfu-kA|9LupcWT*);|V|> z1FrZr5Fup&%~WhHs(7JYnvHkP*l1uC``Kc5S|0utyaiYLEGG;;t)z z>b6`1(PC;(+PE4*}E1SCAv8}*%Ek7c{$0gTFY41ZB4h^&zY_kcEuj_ zq)+@)~&p1%2)7wN_CUZl&D3(HBGUcc{qelckdpG^#8#Knc`PB>SRdh(K? zI?&>+28Jv4`&<@~5!iimnm+l%tMpVxVE^n=ff9#n0@R5tW}z&Xef-M0fBqWLt-$w> zDCQ#-cVn!UOQYnY3VqwM$QQH%MYN56)r*e>N-yjYUldy*=Wj03xBvQGdj8w*(uKCz zD0`n}zv62~&Ww=I9(SXok;2o|h?Jf01Z-nfW_Q^wKeUDMSAkB zwgczd4qVNZMCt4&i+SfE)*+m8$cQ4VfFCz*GPvF1|CKb%_k|dYoz2|USA@00yTVGg zG4eg#*4Dyq&vB2Q1itLop8waH`H#=Flh&$$B|kGi`U8{3xCzdpVtjNUPj<~`t<7;>G1to>apyU0jL)q%1=ftUyC2j6HWAEMkxQs zUIqNnuu3k%e|R$c$h?zSMP{y(bFFVMBygd9{(1UV%YOF!7st{Y#oM2Fhp5w zHfls#O1HcOaudUOR@+lUF6XZpG3)=hX8!2pMrVKjkSOaVikNatMvgA3;R|~o_w0Fh@ z4F&4UyV8Ohs}DLD3g9ffe@(CpMVZzinyhTL9~0V&|DlY4-!;jeB}Bwc%P#U!59tQC z`*_0^L1%Br>G}WmTC@Mlbo%bhG_ya_o?q#>IAE)5XV3}cCEhe>X{@Z4wKf2oBJ<+P zJtbPf4gQfp0*iQJa5fm&a{{ac9{=&X^z2VB(*D`GEpPm>;jmM=gCRq9n?J(-y0M8N z__3pGgD?vBV+=MKXB&>irDT$qiIIs9on~3D@z2`#d5>RdDi?sb#M&RFG`V)ia7pkCA za?cY(pshnwSgIGsL0DIlpWwzg(~l8tlBWfLE_@{s@R?Rom{*Dup| zzkQL;-lP1BG#qS69i;pX?YE}2daF3!G*!R*RecY3>0y}P@Syy`thQy8}97?$tY}w z@4ubA)9j<_&<4lmY)C1a~S|B|FQP`l0P2*wQB?9&Gq7g z{;Y-~s{|+y`OQ_)Dy%R7>#{f~ul|J}f)a*}LJ+UC^$7$>s0LW50r>5}VlhuUZ{Me< zf0PmU`c*pQF-Njt0K^#Labf=*Ds144xYx_}LxQ!2MD`~jy?)U_6$r{7zDCy}+BVwv z9^ivl)WJ8D%oMF%CP5u}R)KP&O`=^k!CDz^3Gb8aS%+N5?xJDf`17Wx$g}bi!W% z@dqkg?L~eMLw41Hx>R8~e2^*9M4VkMuEQe^BN^dotlct*^0;WH--I@6ALku)bgJvf?_U;jL#FipY`hWujsfUzqu{;t?$ufP zc-{VE~?F1Hht&LfYu+h-k1H1c*Bf_)h^jd)uQl`Q$JifBGoB zmN7Wl-%%=AP#Fr0K*(kHQiUa!w*aCBpAh>dd_B){g%Q={ESa_o64sSPGUB@zfRxe9 z?Z&1VwvKTfxUOdrMo)G4dFaZ+KHmP3`qB20(; zC%f$DrTp(N(>H&3lm7g>S8{9FuNmKO_4(4DJf#5ur3|1dBEw6{20#v$|4RlyI%T#9 zD84oTycJlh4^|%cZU7YC4g$*tzyaR{uPT;cBg)ZA;AC$ny?n5j-W=?vu^O_kn(*RL zdr3&UC4K;~s&UA&HAJN1mSCOW#95+dvK$msdqhS5)ZHY9(kz!y@Vyo}ZBB4FC(_2<3`b@_K9&5#}x7S7p>Oaz?hS z{}tjD?(0FOM&Z{Wr?s+*!aYF90pSHpX+RbDBZu{Rc6t^hg>K+aqnfX*#IBogDw0AOKwmpH!q z8o)CdfFWr`Du0qqd8JZ<-UVcZ(5d@PpqF5R9mtb9Q z?IBV-u%gGydA_wsr|QJFi(Y!KaXZ$`%Y^|=yl&@Xd}QELR0Cy-GLCSFG4c@%07C%- zaFu?MR{-~C04Rw?6G}d}y8=g38GuPjFJuHR#oXFW@w^|MUl`i240BFrv08wtjkAK) z3cOC}NF%8HDy4OF@M(d7oRCv(0HQ>cT0Zm8Ew1E%F!g{A?)O2Y{FWi|2o{aUd3kDw zB{4oZaRlU4OKF$jX=}b=?C|08Tvcn73=v%?uTB{uba@K_DrXgeqeyTqngx`;ic2Ru z#!_|)jALrdTkX9K>d5*HRyFK*`3fec>L0rYsBtP9D9`L_kjkSW%Zmvr14H ztLHkS179JMp-fT6S-B!c(#;J(=N2FmAr~GG@GXG4UttgXDg9!*X#i{s(3W~bL^d-3 z^7JJx|2BLyOX*wDOBsN%%I40CDFumX#2XZtt7T~BTE`>jQe*HiM&=b^{c}wmuEC5p}1nj%I8!{_vUJl zjud{W6#>Sir%xYaU-UV^SC$IO6itboHZlM}@m&VM)X5Pn18q?Xw3FT#@XiAtS5*`P z5b2%lK?QA=*f&9JoR}4@?KY%bR6#lzb;Skgkjct5d2$$*=sHq5o4qZ4$d6xVg_%Fs zku+79$bS8mc?97%inK*so0@5IdFEc7&dJm2kg05oEN?5~i$&D0KKkx@D2sD>{N$xA>fe*+fp zPD8=-!ypQ4tN^-!EH2Ltq>7|<=1w%D+O1Fv38EdFX+Yaw!k592rL!ehJ{M%m?@sdM z0XlnWaI8h7jU}XqbaC)-=U&A}`PUKX3M*i;L%2Pt_EZ6Fh*8C>U|bFAOa-oGSzsxh z@hcdYeNh$G_IDshm9mrs>?}U@_=vdR8&sb>NC)!i6uitKs+)z`KDheP%hA~r*OxJ_{lkFxp7W^9MAqCj?ECviL5-B6np#o6=6h2@=DH0+u2mq-U2z{g)*(;cR*;?DS(WSOX#eHH(NHmbEvD!-Ydg7bOD;$^ zmA)G7(2f*^*Hv8~4Ul?2*+OT)QlL=Ew8^I_SsB9?XA_Fjf|DIhJh?J?A2m}#9OJ`x zJ?RkCinLEvPNr4iqN@2;QAW$V1sH4Mr$*|Dt3S3bQeABvdZN`> zW_UAPTL6dx%4-0vLc3%L*)}R;0|dWd$f@KV@m0Efye&%JWm)C9qzbhFHI~9W$4VZz z!G;X()+(zITsPrfrrAVjSA;vak3h*cssDB5)+QSnH{C2{Iwpms7_T*8s@ZsK6Z&B3vg5rFz*pWu7^gb7ApyBJQ>%p7FsQemmDe*Q4l5 z%SZkkWQfKr8Z_dUC%$mxG&;B}90C?lMp|f{6GV6&e>ZrYmQjW_CFm-*OPZ21?siE& zgRZ775X?wg_o?L#a@4+%rj#gR>e%otqX@5@%Ar2vgbxM!&M{?VhdkQq^T%}8kWkcVuU(v zNhR8T(48(mxMTj$=*l2OP*-yVqPe=#bg(SovTTkhq1Xbfko)6fT?>5xcyT)72>JjB z*4MRjw+K13v3yvC>*6=Z^<0{@*>pC!AL*J1N%$>(oZ;h4WWzFtbjm{tCCsx5|;`dyPB>=6cp_r?ke1g(=zHsx|ijy zI&DZ$hlDF)YAmO{H^8!D8=g(espVQ@019TA_f3k}49iV+Q>>FGgR)-*CSY*y6EPu#arn^75yk15nj*&_Xk{1*UVTbLR>afTf z$^2woYhUSILDtqmMU(xLrx96-u4$rkzb{E>&Z;hhd zJD_0zTsHr-5n)xa@|L%dHX$9HTDVzN$bVM?QEHT2#4CtF!I@{k`8#I&OXmCm_0CTr zwinfh0R+XP%k5{%Eu;AJ%PZQX_|za>q$iyP8gfhlBFnsYM{snmUSgw6lPiZPk##9f zg?qmE@ahZJ<8rGVY9+IvYJnXTtqGhDJiBQXs{8Y0T2Ve#jypQ|r zHzl^tf(X?odl?`6P{;qKxmS_>Sjm%nJ@BCTB74~*Z+zunk?cp{8a_cb0PE6hvJ|;8 zWJKW=mH2oqwp5Zt3FBuJbS2%}D0QU&d0;(_*VXKlt50DM-|%Q1+Npers`zNY3hw4MLR;u5^St)`no?K*Hp%$ zA~R^Gg@2BZWbpH35#c`n)hR9+aLLZQC`gD=@V=AmN?Tvg$!9}wuX@LiI$<`*f(f}$ z88761C*F)@(uu9Lmp`2vvMnP@0Hmo)Y|>P`4(0kn^hnHy^oMxQ8B2QngfC`zZK@NFI=H+Cf5h+U%8q;Yqo~QBU zB+bX7DX%VLuxP-C65}Snj`n8{%4`4g#@I*kHFGVt2Whc8(u_CMszAeoG7v%ew`2f# z_aVGYB+6Diay19u3Pii)q|KJy3~-3Cz6!2fxvUIke#&RSO~+aZ9bcxa%c&bSRzRo( zX#`&GZdV6X4)1rwff5?Wn~PkdDN+IYQK#rn4>EbVzC)2raP#>z4YYdOQD5!t?WCS) zqJH9^bzC-5260?2km?XhRjCsO;Jh*bS7|~bFIMp*)B!jHS8%?tox%wHO3 zW&m2R1cTsaOyv#(00RsF1L~n__0?$W+Sh__j*nmf0#!lIFuc|s8VF{Q7250Z+6D!w zR?Kr2)S#4QE5JL)Rp zDl6Rf-x-TB*?O7U~PEv0=S4S<G*^Q8-yWs1@QA_+aq1jMWo)wYNM8|h$!-B%UW zfJG6McOYXh(w1WH_&hy)dy*b#wXrKBuw_P|mliSt%s_>>w?-w>3R;Ql487`T@4?R> zud~`@IFu3COBat1()p8vG(Ol)3mFD)H1g4O%0d1rui{KGJBT=V(;n6)K?*0Y<lVysb?|N{b<goP}#(Gt)h)G?3#*1hq20F$;vG&-rzdb%=}i%^Or{#=|ro5S-!YI1NmU> zYg}l!+CWn=B~{WXO3s?dCqnTVlng*-cV5hHx0)2BrRlC#1c&c0)8X+r?Oe?K+Jn-& z0T4+}TWagW5y`r%*&QklYw4!2Jh^TrpU8}&(9;T=cOyNxXiwpCcbXSK&pu*O87zURsD-wpz)ljfaxw$-z*w|9<-X@ow7PvG-D^>D5d- zH*fQ}KTfpU!&AvEtd{1QV16DZh$?!A#@Gz0RJ=^ zw}qxctOjvyaZ3abid%)M4MnaPB+miRibjrl*cEzNdCqk3O#5?|`Y)w~r&I056~}#I zdypqDUF*7wky!;}Xkk&3dHIk(npTk}qdP>(sMW+(UuK6tKgBpG-S%Xf4o@%B!O3MB zY0H5XaAj|jrxq15d6-M#zUIf$uc7h-mx|yY$ZcALG}CgBV(~X_eHqgpcS=}Q4SVT= z>j9cs$J_lhQ+u+g^8SZvNn-HS7o{^jdJT}-Y%cJ>qObx0Es*y^(9~R4_pOxA#!@^`n(J{ zdy6tA?L{ea#za~1H*au>P#L)F^0d3n3F?(gesk zkTThJK!IZ!fs=!sbjBaP4u*E`nk($CX*#PtO5pSM&S#jr&&$cl=?CkJsC$!*3B+2; zmi;Kd4DK_@@yjQB>C30F=hqfcGymK+{?=nUXMW1-Eams&Ju0H_h|DsVu^y|7R7@4= z!gZ&O&?t>{>W>{}$>}vW>23s)S^9TpJ}shl^3<7>!5?4Y!+^4N zgeT0bxh2R9b7i;wxTo(%074m9bwIYNurSFYzHAh1%bmEE+v}h&^N`Ldr|FZ{D{!b6nmsU>E8#KgI%2fmM9X2tYob=NeSZDi8yQVtfgpK~F#?+&mHIcN=JMSzXRX9yU-I zL(y+jZKWOMInYYr;Bu07#EqTo`<~ zD?{K<+RasOd!E7?Q1v98I)JT{_cic1|F}OwJcGVfwLQjTwW^arW#%8L?57X5(=VSL zq|ZOuO?%r?@~fG?)3nf@-}*bZCPz~Y_X_ay827rriVOc8aVIV}%4~uQOhE0NcsFF` z9pWErgxrao=}@EMV{t~CW8?9xG`8QXG7z8>GRcWzvFu0V&NM5%Je{PsG6E9@r_$Ti zdL#H`USyY>K-_a3S+*LPn?WP6au@{RSH5Uj*eksm0Z4x47c&Tu_RO3y4EAU$D*^G? z7U#q1EIp6`*qP4l8Ub>!9e}(&OW+qZPokTBZVM~R4ib*`vNrRN)n9R@R60!ev>kZ7 zpH3g_%Lq_Y8q3oGblTF3yyXFBce_hRebs7~#y-k#*JSJ?#g`%F@8(Bp5QhJb(2Th4)h&og)Vz=^`fwU$(zL=)t%c=eGC<<&H zZfV_5H&+*sl$UD*zKmo!sRLW~?OqybAa83X+c^|zX}R-oCk-{bZHeX&_R>soa~}6a zskKk&X{H&-_}Jc91%(k{CE!)kf!_@9i#HjSedT$?g~7>G`TWYXT|hH|8TcXhsoqmE5*h}Nl$c=#7#U6(yy(rt#T*tDua^)rq z;Ew(h3!C+?Z01kt^GDn1Z$H~hUp!SGso&^B{)L*ZyjrNAwdAM2S(c$ZY|mVJjf7^g z1v&$-#VU5USAs?M`*Jo)%q4im!+%%Y;VDOBSiTjgPZW>aKUDE1ksr# z-syOej?O3PQUibvr-O}5ScoR^Kn#IW*-SrUU>U!Z_IC&AlgGR1srHgjK08d0o*kw` zxpzN*l(xTklm=gZlG2xt)9kZ{X{woSx;IMGp%hzr#obo{BAelIu{;)Fj|Rv{E!d9m zytcw0Xp}yfPPGb{+Mo~Foa7JS&Oshb;*SR_*JPrGw4I0ga$YX_M@GPY>?Fk`!E}3& zP9N>1lLxzLJmk;eeJqof6%U+jWdtjO*N%1|&LiZ3%pC?m{WeQ!DE}8S%D?*jApPvw zo@V}mZ8zrXQ2Ny7b2IcJ@;VD6zgVj@nXi!*WvNymr`rIVrMe!-xRP0jx<+Jc$D5*R zsE+_^b9ZhG6D@ZXdu`j>tE%Jam1h50I@7GmK)<@t{G zte-sGPfs52r6-!@A8Jpzf3U4pz;+t$ZKr{#zqe!5+uuo7S{ckVz%M^JNEeUx)1_7f zvmry;XEvMN3J*(vf8j`9#ILos(yo@G4>g+iHG8sZU_{!$&A_trA*2qiYOxgFg-z3K z0^>p3>+AebVq@AGTQXB}J=^3TL0u3W}53XffML z+iJrvWu*V+Gxq#@X?LVqUh$#)Tzg<8MU#ezLHJ$v9HxxqjWCC${C<%IvJ(f9oshL9 zFa9pv$^cY_sR64Qwxk@^{?uufu{x#$H%g3B`F-@W$y_UdnLplZvP&85>bsf&BVnYj z)rlld9=^LXNY6BzfBx)2daS`Z(ms-X;+$pq6-&xRTCk@S^DC9Z4}6&A(`b;UG8Pw4 z4%7LggLJvCJ+EeWE%NN~YChkW2{YXCawACtDF@BS3woYNHdi(R-}~cuv4?5h{<`){Pq< zH_qNCPF_(G%CELrs1L4`k)QN_`FJP&QZxUvN9rpzB0u1osXUsGY&G!_H-yR|A-kDX zUjjI+4u#)ff$q%tH^FA9u0t-nB~vNUb*K$M0W3A`Vxg3*eq9%7RgeZkT)<-hkZwoH{#5(OXHWLh!ND*M1~BF# zlN6qT2TzFEg+a!xJ8dy+rh}6de!jbtF16o1;~9DFe;4AxlZY4rh&SliTXa-5BH7cz zS}hDj4Cn_cabIN(*x=?F$p)yAquop;B4rod2fV$qGMP`DZM9-2otvex%(sW5)MkXv zwYoZc;13I(%Lq)=7F5;Z#l&;h`SDqObzp|3FRs+)veW5{$J^-_pR!8Zu{SsISoc(` zKl+DuYdk3bL(=d6gyyTj^C63lK^ko115GY=Q{6brU zb8Q92G6K8{fcFG&i;4$SSn}HzK*oWWHrOk$Bck9N9mj=2G!n|YzMd=LSk%+9DZ%UyOotE{ZCFy zqd3`(^y$Nqlz&&NwVkv*@|E9A{Of!D-f}TwaN8mCM<$|-C8-o(Kj=a}%R^6k-upl< zuA(+pg)hS;?u6=K_3A)n0KAh5M9EMUC(nv<$iKwn7O*1AGD3!cI;ldVyfRaE>EQdf zg$;tS6v%$g8_I68JtV&doBdLZL8oTnViLCDaBq}8IoM6RyiZP}iED>k!&+#W0Fll{ zAcIFmmZk_%DW5Cb_R24X%{8$3fecT@jpgQIABu0psz6F_%CExhT7ZldMq*pCuoc)5 z55zTi0omiFcOg;)!q2%KSHkuKn9@{=V`pVDYQxj#L@NM4^())XwdovP+?GrBRJj?uMFUD;X*y6D0MIR#a#|A zU+YTV?!q2_Hr0TV5kQ?GFRLCbcJwL z5yIE@*h+!on};*xOG=CY%DAh6xX-JT6vcYqFEnxgnE50Za&2??>}AW#Ofy-Zi=mde zGAtN?o|dY-Y1n6fE(qqI9%G;w{CP{j3V|Q8pzK!u4G;q%dhtV}-7IU%&Jp%rMU+i- z=ho@P!@YEIxSJ+geWAi;090|`^Rt}SmPqaKbbpw>dMf4rWZ&-8DA=9@Fy*K7tCE*H ztGoM1pIbPx8lP2I7uUv3(l)UyE4*&c4=|iMKv7*?xEf0qehpAcv*I17_^jmRIfLpZ z@DO)vpy1QNQi~yv|Jq}x%$`yzme{?%mf&UpJj|3$w8bqrEzkF)pu18!2Blr_Gv>KO z2C9Nr3~T+maW@UYOiRsmc$ z@fUQe|1{&X3PZVB5q)+rOn>uq&wtNP8Zk5F&lmh^L?KSrZ915*olakCH*4ff0!JuD znIl5Wuo6~+2zi`Vr(KQU0tJkpKEBOr$8Lrd2A~ZWy6V)spdsgKZqZDnK*&fL;nyN( z;6y{2@>Vmx&#?BQP7So`HBnMN6pr`Ek2IKexC*a$F6P+}SFFL?@J;}fWyR`XPo-l7&sD7o*sl-9>wl9($UH` zXD2Lq2F{Z142fXlJ2)1Fm1UT;dGPYdnJmI*dA3Z<`6-P@0~vu`(O$Y#8;#8X%+pYP z^7%nO{p#6n`ne3i0e4oE59Mcz#$6w-5%`ELN081{yJcC-RU@tmIC5;{v3#w#CI9^* zxCh$)o1>PSme~;AnD<-7nj5a$@GiTfLW7wUmy>F0ujiIRF{48E41mq}5N?qvp%hJu zsL9!{xQiF;j88QPgj`O@kiD5WdUzaR@Bb?SuF!@$tcK zdb_usPPub3N~Zk3e7v2$e84tM{f3dA&1C@ctywirv<(teQiL!K(8rl9M?*JxU{Vl5yEXu|!!z`RmF^2}Eim`k9Eb*mC(k3$i zJfm-WKz_f;@j}Zj?fH8eP|U_!aT_w5O5A#oXqbyRpE|_h$;%M=<-`Cmu(@Zg zVXCr~TeIA7N2>sBIffeS{F_bv&o(j;W(>Gks4alxvVXD>KL)JV6Q&eEV5U_l;v(sF zS#ApFmAP)pxJu`ZY(J;Q5U72*b91UTc==!_oqc|oKKbfl`kOBg)0ft8g$S*X)kP{F8&U`+xWC{ zz z-FKzjG6IR!hZMh-QN{ryVAM|w87{m1Xso(=r3k5t)S=ZcIig9C=1x$(e5!S>u(Xer zupTyJi+C(Yv-K;9z%_XwM)+M=uwZRHAJT~+EhHO8v; zScw~FXrU|ra#-$G11`JRC#5PC%Kw})FSRxE_OuM&lJX}Rf%(pMn#wq!aExSTBd!O) z%P9{XJXKib6>6CH9`*fZTwKDtFFP^5q|NBqV z(=Q&T#p4I*?X$<}?WYgYxwZxV%5ibOk|j_+Td#?kwY#$~3eN)Kw=fcUq{XNL)~^t5 zt58Oj=k~~)jqVe{uN2YSQ;2g1RvLh2hE>_`iVwv%&p_ss;)?98J1qUB)cmWgEvZGm z$Iis^TMC(WcG6UafY(~jq=XDeGXNT2HmLI8s>CmQ)WUOw!hAUKfs4kc!XOONwhR$( zqaCRn%I2@bkdKRy5Q@*mKL`WBHfAbLGx+Fi1C+ZIlwB8TbSvCCV;d4i4P>%po>{yG zh_iSR@z$nX+?>nE@tQW#jtucvfA@L%+kf~pJ$te%JK0N9r9T?&q&J^EPVc{bl*SKt z(}F$~BfE>B<%3;7^lz;QI7kx(5)b7anxz3GV+#?VsKiQSW;KV6;L_9tO80f#BHb$3 zSjDl1QKtb|PTwrb;uU1p60-P$a#;IQr`a6VL4`n`y9ihowt<+r?MF9SF7}4Qbfx8_ z&A6s)zU)TvjARIsW}Ml+Rsef402)~Kn*$p>D4u3;wX9!cLaFmd(J|1R;zM(gmq>qn zSaW~c8T8Y`-9dV=KQtr2odB1El}YXP$AU#tbd-K3jy7K9x0hI`P?OAxP-zuKm=00? zDr%&;3ySiAc-B2nSWpSoEt5y9emrQUegB?j_b>n9i}dL~e4h56?OR(crn5AiT%~bu zkWL;PrZ+$TG`;`oX_`JfkP%Sdsa;^iC&nlJ5`7kZVN&6)$i9}>2VHQ{ryPJ5(efKL z0Was*jjp%|3vOkaRlFi?nJ2oRLmswOm$b2R1rRWXnZ3KO!L9fCkmOlFrpQW8=2WhT$ zm~u^EI_2LymG~-6)GzNJK1{E_`aB(f^=X?i^Ou3x)9Z*l2R{Q1)ymBJvSHr;x?Pj z`XYXEhv`J-bi;_h$={_`%plO(BQExQ9&$<@v1U&C9BR2UEB| zjRD!!jE?d@eY}(Qv#$60Sh!BRzPl|0 zaFE_Vd6Z5cAEp_%1~ujPG)qD3GyT=yR-$ZyT;i<-yoH5r<$)A_h{Rt|BN4wX;N5gT z|NJ05da!HPA?7S?rQnN^8vzFVmdLMH$Ph@TvG|`zK`uo6??zQuL+x7IM?z_{N*+b< z?O}zl;uNKMyt%Tl+`per=b}a0*4FE@Up+}*Ncj(+93^%>pRzLY{9>N%Ly&I#iPxVPOO)^%L`w45N7*zbw2!tQo@~? zW*26IEoNEm^GA@BJ+A!2@GxU+S7l? z!^%W)XR62Xc$O}uBn)U?a@u@#wqVNFXyA=evI#VJZ-iWS{+Tp##+IOjrIP#*Y4|HH z+Gn8c&=-IAY5Ikh{g1WhA8HkZ3_SmDyl`vC())33haV927uq%`;d?3mi(hCZ@bf43 z=cEg*v?$+xWf*NknRp8VZk~b5#b-6BqfU_-lIaZz=afTs^$J(&Ur$t%dp1q` zR>y~ zmDb)i!yx8QC3VKlE2r(9^P2sKQtBt49Hd_2zdZ3w3hDEc}L~$4Z9!6rx zZ@=@0Fa}yJ@Dw0h1OCV0-T5q?jpg7a5Gjan&H?_&)TOfPQB77oiH%EK+ zG6fQ<5cyG@$X4~0C0H(4W7FDhB11Xc8)?Ze<^K;~rU%a+r!B3{>{))z?p{vhg_)Dp z8@HmkCc~enj4;URwd03}>9vf&>CYag8LKQMu*a?`6eD0POGK3< zgG6m8EchCXkvmslee88WsGyottd@Yut3zXq6zE<7tVC4kmSV3E;--L27prde+Fwgq z7%p4~*pmU+zZ|EbHkDV}k6-Z+4zrC`1YAL8DbAjpHXSIgY;Bse=eo}+yB!q(=Y#z zU!}*te3Fs|amn)&U*pSA$o?EOdSLXv;?ewJkF1_Nq`;MWQ|=qr%UIPaf{4*T4KMy_X@F9q!s~Q~QCDj45|>XhJja%I;#h zL4ksIDA9GWwC-#nVm4%SD|D;yrX}|O@jw2j|6;CI4(~85tv5El+s0Qt0psLG|7p2(P=>x@m$qBv!LH*!pQGC8wb{Os3#QgrU|PxrSqb!gAc&vH@5 zJR|eMPJRZ^SAF?cnbFo}pL-~8z~ zy?AqJ%D|(tw*OaSk+(wO1XZ0|i13m?7NG%)Lq;0DKsEap;o+K!PBdsP#F5d#N-7Kh zxtQ7giocBO-nM4`FVZjn_g|$)PakO8!}qwlziYRE`L|{J+j0$NW_IMletHJT>&d;9OUZbwK022SjQuFLgqP!P^JG-)^g$Zh z<4km+GHoowt4iav3hUw=VX(Bil`x0Oz<)__A(}=(yxcSfN~Y@=XFOcytKA%5C2qmO z^TE?Zj$5FsfKAXU(&e}gK7fqmqhkRt=-j=yNRQs1ribU3_S4##i~xU8HPK3deL24n zl$}djh^FnUS=w1l($0LMRm0R*12O_z+Qavr?4;4>`)T(V57L8QeUctZ*&k~u`^n!u zO^<)|I336cj6T^*Tf0M>?I#)%@{S_+ipudzf~#+F&)nzZd=6 zcPHt^>x(p*+E6s*w{4jEgHzEgx5jmCS;n{1QhvzbaU7laFz9S4ErYj^;@hwGG!yS= z=KtdFKes*q;V1iA1z{Xe{8;vrPwgC?Sd{__Dden@P@eMgkHpOOyaa{|gRg$|d3ygh zpQrIB5A1@kwVTF)X}4!Hzdt=#kDC&TsmM?{Oj7$aWh}8O{62upeku_qc0@JMy?$7N z8YOeObyY%=hBPbkGDnqRoE!?_cYMB0Ht(1 z1AzW=0dK0M#jNjdyyb7cc;DSTE5ALN$lVCd{+AlS-@HCcfByC~ot1M$ zSBzXikk6!nKtx|ht5C*Wm$roco3aVvlJKbQg4c3u)_3LKPG8DU{_GzKa?svp zF;`LX@tn|I(aj_GQ76bjxB3!M3a-Jpb8?;@zB*2yyg5$0ld+UpOKUB^Sy~U2W610; zL$EEzBl4hhW=X_JgV=5XYN^Wq{b>{_$4o-xC-pU;7IP`Pq9)T>8f(^@DD6Z%nE6fl zMLgUy)yjZdfvh~@r^yq^`sR3?zW(z`dUxbYfBSI|gB>~4ZM6Z=0TSA6V9^y__wjVs zVSPH5m`>aZWchA>wFk?7?)UE>Zl|B2{Qu#z^zhRI89f<5DV_aSA2YCc#K++ZZz1I% z#AQibB2)hChB(@C-&O)CoodDL=BsDv=$D^qC2**ffZAH+*>+6C%8;cqBLs_Oh6bk< zr!>5rQEU%nDQ<>$Ww zFigH-^E!g6YETPx(24|0*d$Fx2oNAEVIou4qOJUbpZ4TB?>*d0U;MkzZ1#WfbU*Qf zC$>PUqS847K5j&ug`sk1z6K9u1o|kPtxSc zep>LJ1=7-&jRFI~&)v4-kgJp;K$^3; zSSNgZER{)nK~gB5>7Pwy3|03XDgS5x?(_7y_Wk>xXy(_-2m7fgS9peE^#T@9*AEq> zcA<(D3U8#0ezF-{yjca95y(d9bbnh$;7NM-i>K-0Q>_HFRij9g1(|iW6^wB!ijX4= zKpXUHmF@?MF1dkP-9ds?iGG;y?y*jBr$`4Q53}%$s2lf>?RtO|5O@D_nhw7^N{{~h zDm{`BIJlf>&(Ho|if80TfLC!0M4GQ{Mc{)0t~4Qo*ZDDa?3ZVJlm=qpae-@YTLrmE zD+TcP5wP^vc0lQljxW+5|LtA+{qNqU*RRfO&~w2N<@aCzK}u-6{p=KgdxW&(ZinDv z^{IRUvPg!I!{=_=M1HiIEBRUp@vzUfmi^EE=4tx$?>b+P=m{kj?s zLiwCe<`qO)%4Ef3tk`JNv;Cd)_KT;s61aSNXn#fmZ&qyl$D@~# z3AeKm+(92#l!GJrDnwkx>Q;zS)|J$S)#)n(un7>ptbld8I%6&6&+UcJ$c2Yuy8;R- zV;#%7d}Y_kw(%GMRsm9Q6c;0K@a>!Q@DJaaG1xtu*fRtEH(k7(!*tN@3@}H@EI7|% zB*;t{+4?{{{hwzc#71~73FAl=oW&L(iG4Wxz<2*mKhDb?1-imAB8q`Te68n8pZ@YmdiL+0 zq=Tn>sjp=>ZDRNMaiEy0RF7*0B5zyZwS=$nHeb}-)8tmM5NmyvUw?qd;UnH(rYa>@ zXPzA%q<5b`O~=|2jI|=MABg2^Jl=CkOTU_2xm7(7m+=Jz)$&~r($!Mm1)G+*9>{(> zSYx>J`-cSSl7#`;LN$*OhY{empA5qAVv=@c1onUbUE2Ng+cbK2o`(F(FM~=mwY@)p zpY1Yh%Mxt)6(;e4oF~J~{`$#Q0~i|3IHViSQg5_KqtR6wig@ma;uo?9XKydkH@|(I ze*4eQ(;t8LI=xf5tRRNmU67%W?WtEBHZ=idrfNa89c?MG(Gy_APx6e$tX_D<|tL}10I61w>8Vyayyi#AKNc%t!1A`bbL6>($O59Hw_adzOxV@oBpJ>`_YE9*B)y5VYSJP%}9OKsis5_&>&@+<+*=4 zxv%B_=-YQ``?oRze|VEdT88&DJKJhOGXyW3;4QwssTBG9s~IsOjDm)YW^~)jGH5j0 zU-h-@@68mX?Sn=ae*nVX^zvkqUj9kT{r}&$>DT|?Z_?MA{f}h~xIM)z$#n=Gwqg*X z{B=Eapl&Txb^gG}EmuQjqQ``@jTuXbvD#qpXg_`Ocb}%u{<|;I<6k^V+Ye;*O!>7n z;DfB}taxn3)L8u_ zU_KHogD7Y@r^c+G1gzsXLQ!s0gc|e}4DCrkb-=j@g&=)NO|0TZOh=r82)E^`zLcq9 zqmOqiw~g2m3`D*2v1npH_}StvA2S2lbnsOGW6IsOU669~GEZCL(?Bu|JX3%Y4;C^W z<6auSo1~*}-=`OUc$uF6_Cm_(Oe8MfL&-mFhk1kIScGBTjpQNAt`_Jqhe!JRZ^ZdjWKb)HJ<0xzC-1eTC zKH%<(Ey20VB7SBIU~F-a{B{SGPo!oj-z&G&YM9PoxQ{lhP2*RsgWtn6bL! z2~W~b7HO=$IGtRjGv%GDP@3Dvd!XSFzheLalFYoE+8s0#o$`%IVJCId~ z>mPj$GOj-NCzAU7DqS93rn5Jv>HVws>HPRS&9&mN`_Rat*@=H4@-2i3WpZ+q$I>{c zh36^53Gvir+M6T#$ly%fX$@4DNI4-LeZ%+}tFEWoQcXU6ln(wzv;WT?rM*3^oM!w& za_ZLx^syRHPd+@@1Q*rUK2$xI;C-Z0JRl;xPfeUiOh>sF9>8-7^exd?YoM`ghDMQu z*>6A8kK6NUdZg{w{`2EBeSVbQ9G$1P8u&azfMK>(K?AuYFV6Y-DUVn6zs~2X&8G+C#)_qLTTGZhozI#k1uPwzUkBAvn}hac`sHMGhpS&3NX)9<|l7dhh9jw95~z)Sgq6Uo$_jZ4r!>k9OiBsB?>2 z`NtAisFQn(7*AZun@^rr2lvat*j77ROA}82nvXb%r?#JJJhQbMsSewxleG2jEM1&l zrVH+5D7Bd?^-UA-G4_rSK=APz1|XRMcqc|Y;DzRs)JT~l`#Kb?8$dQ%b*lRDJAf}l zkK`ZbGT`o`C}R@?U|FqJE*cA1Rsh64)IPQ{07_OGfcC&Cy@8yxh-)?g27r)Q0lX58 zmB1P_D~ng{b|_2h;$tDyU2S3agq5B!yM>f1%Kdx0cb|X4i*WD_+3Y19xM4H(TVXr` z%b$zF!Bz$u^tSv85p=d~Ma)uy%Ni0#!c}P2%&}R{B~(J)4Aj?@i~4b)ROjlix@bFV zR}y9efKzE80|SWQcJZFHJ6z4REN%qkGP0}9#tf;AYxSwxerA12zsL|v-YpE4-4UP+ z9j&04e&}!KRJVNQta{Rm*3SyNQ1lChz0nLssWt!;9K;5CDXfOqlj%$2o1vMb3Z{)PSr+jn-f$%Uz#!GVARSsK8z>C3Udwf?A z8&j6G?w|;y+$bl|_D4t^o*5dJQ*VMwA#VZOb5pElQvUjk6#*+L8!1%HQh9y(Mp-7Q z4y3$s>5-vpzzKD~dYQnA#hd%tf)!|Y4lrI^%TW;5B^Y~lw_*teUqenq8{ku(+5l(; zpzsf40C>Ed{lB&VO28Ii#P&+O8GliNpYO#0q-+4F$dAAP z=hsi|N~Qaljt*>6*N4=1fpfV1CpZ{#H4HXr z!y|;4tvUe=Kn3IBdHI2nKd)be=d|SX+z`G$@bsba1(YHaH;6Angmhk$m#_hHM_g1fu-8fy%(ef`P!Sa_gf>6}olFJQQ zhle2$>Rfder}EQ^6T_eyR*E|Xcai!B4k-$2$kKjgs4S zsOJmM;qEqkE-I1dimE8w;Q^&vXn9u@ld(Jtwf%QR)wegGHexnij-hgGx-GhRZAQ&L ztEI%%B#(=nal8)JE;;XqK`qg3aRUPo1zl6YzA(#c} zu!`>u3_!4Gicn!ia08p9`6!5n3u+?-6{+*8TSJhA*Lm=PCdU;%-4P;ZH~=SoBS(K)vp0xWx6~% zu4Ax51Tz5L%$H&5ytE}$7s76ccDcdlHoP`N7vpvq{*H7Cs^u-ybhn4{O0+As0;`fX z_*E&~2g2}t?~rkgPuD7=j*U8ix*p)#6@WEFk++%suK?BnRJ?omc4N6S3}rvu8Gm6t zQPjPZ+?v;&I&WI1GS`Pewc;!KtEj?iwDPRN21%9>Be1NwZPz-K-@;ZzmAKJGzz^Hx z8P^DWcie9Q8?^~VT2E|J_NM8&Q08me{XiGzu5=#`AFrhA5jF3UX;t`obdQId^SLWb z4i(FJ-59M5KwaH33n6l|l(QwOLLyN3ZN?C9TqikIqh5@oGL{v3DoY2XBqv0 zVLF%#zD<#ly^=kElIPGe-t<4aSE17YT$jmkn}!R)Na=H)-}Ed4tGFjdv^p< z-=L7ztbUWiRbx5i&JrEFNTB3o7HPG~KXCq>S!J>T+-Xi5%dz z&DpMNle|h!9%i0gcA$0vBx%Mq4UR&yGYf&b+X_Z%?%|-%l&Ur=3dlKy~=n|pqbh`+4PjUtu&iBN! zh2UIsH&+o<$NccIk*wKZm=X9uU_9K#5ZrDBKz)87z10xoMy>JjD{+^OT8j_H_`{%6 zTy;fU)vrN7N9uAW4tMxhz+#Kl0tDxhR-rSlktrNq<*%0MKCr&l8EX>U$^gWzDVosl znMP|wgom|1b(;G{RlnRCUGWQ86%#6jn-p7gSsd-b+-Lok_+$)Q^WBb}QfB0D!J~ z-E&>5)!hwnFCw&<+?J>8zh^EPY|4z;BRflM(j476H$z+8O<}X;Em7vI%a73I8hc2j zjC8dgEvv(_-;swI zflMo}N<%20DPU0P`b$75yOSS%TL3k%6zBmF+$4^In#n1***ziHuEx#E%F^Boq77DI z0|StoFb~32wY}XH=~}dE{AT{;1)&_Y8YHY)HPDV)k!&rZ?Azq+#M;W#C}nSFS;eBv zQ-bs*fzn-KRrrU2OC05O$?hq5Uw4N?%Sd*J6O%P zXcK+Qyg6ts8U|ox!NFzS6{lOFC=sW~%CmqP9=5s*yV95E5?yr!ooRF8GOpxZQWrYQ zD(V>dR>@=$Dv z!UWF*TI_S2jtrEb{8>gF9(+n(=GQ=}meM(}dNGGl1ZPK4PLvy;y1bI|iR=}1UFr77 zXx2KdD5Hwo0PTK=Yy<_Z1=c=O)y^A|w_8~kI~dzWy+n~FWP(Dtst<76G14@{RwCz* zzT?;&o7rO#q;+@neIaBX!4UdwspU6S?&!IjJCBQY=btpbTpum4p9ErCHqS; z{zW;$>@UYSXFuT?xWX6Qa|s_2^qTkFhbh0CYuyU#vDuiiGThGGr2?A@W!8FC;!=Q| zCgiH+bC_8ASr$vM>Yk%LjG46uXBkLC(tVg>@>-ZwHi%VU_NY^f1$mQ2!L<(__FlF}v=6o1K{A+9d z&#gJ!$UjkJumB#v8f2l&4V&ZxAq#G(-L>plxGX0Z_V`bJl->RTT3NR8*|WP*w*T^< zFVcKAPxI+4T}|iq7v%QO%+ZjZ+5b2cBY*)B5sWEt%51Y3CEDYmOhQah9oNA`2rhM+ zI>(2AwN;kR>Y#uq?Yfei2H?ZVShK!PqK)B9a+MntXoq>)$Wfz99B)D=PwfLSxY?l0 ze%rI=w2nw4m*V)}eA_o#Oy-eKAi^1-Rj|_gEZO8-qDsqoMWP5^NB0Sr$v??gxEX?A>` z7NR8DI=K*y)0NVu*~0$n-u@aJVT3-MRalUfPXyxeF*z-%K)<@o?sEdo(Cm)Lm1vs! z4+Yv1YRePj*yUcv)_?w||El_{v9P2-Cz3m#Es4HGn;L@${dxLow3VJ}sWp{!^%`~Hr$Fnrm>^{>hzYu9~r7gzg9AXeM8neL= z&%Su}Smwi1Znh5n{8!&>2Nv4{x&80S`SVt9QniY$8Wy&y$Wl5KU;Df^5Mf2Cj2zPH zCpY*6OE&p0@2?W#Y>~=_B zRrlUtEA4Fe(?E@njDOu|_Fo0-{%G}_#%C@y8Ur_z4?HIu43OORZ^7Zt=LSnTjI!Sm zv46Rs20dDr~0N<>Gvrj*l+WyEo_Q-RrY-{N^;Bygg5+@6OZt@kP4O z3SfLTNz?OLnxAXR5iQI;O>>3MPseGYG*?;~q&H`&|LR0^ng*{=Q}6v{N|#z0$bhgS zSkN!|+QF6-!1~W56#nv?|HfE00L>BEiAcf>vt+~yf7d{`D;nb6xPUrwWVJe&OT5M0 z^;8E1Stx$O)l$UuG`aLNfclzc`lEj8iIUAYKI?F1*6DH1VOv86oo0P8U=UIsGh0vQ zxoreoruB&QoXfl=qE6p8XuD`XGnxcS=_i+ybRy+^Ek%DRrF|=9KReY@U(0xw|BI<+ zXp~m%6#anFfNZL_p_^A+Hlx#~3Sp(7)x?(g_hl4@Z_mBHfG(q3?=(xl zlYcD5r0rN;4V0GUDf#*sTN%-wjA(BtKB6s*D#q4ka`{EpNAlZB3{tuDLth4E^zI_< zXjQQN@phL z$c9MxEyFUZp?DJ*Gm$k`ZnRn~B0MZUjX0y*!*a)959$PQ*;&B5(xW1}meSNzgGj_w zMe8uIR3AW53n}?jOUkj9ofj-mk1o=s2H03L*hDkU?9EAlT|^oo%J1 zI968d_gQJ#YD?~g!WP*$n2Zvtx0t7)49~XuY*&4>{rY_xsDHLDv~^f$D?uNS2R^Ja z_#hIU!dcW*GeC{X^E!BryP#bP{wk~~SfjM-N~WJSM6k*wH6$p|5!RJ#EmrXcT?)U_ z2nc2lona_{7c2z>MoP(S#f7D4orPxe>12^EweMv1I+cQ-zCKB3+Gk#9&pLi{k!D)T z&bT_QrRMzYNm_`mWDJth^)%>uG8TR9R|jJ)PiNMGX|6(T@a5SjEH_~2wxwQSB(K#% zo#BMf$$O_9YaV(%Y7QS19YtJMY98YEfNSb_>*`;_cQusBI_4qo}m!LgO z|NZ_@{(hQFX6gOOd3qxye)Zxcz11@E{hRZ2e#EV*Nt&LF(@Zl97o@lib#*aI3k~oq zg(dAlxlNTc(E2h2Lm7;o242$aGe5sbbIm@;XvW4xsm=<`AGsNXdEAAppd60nuq@pl z6CoRe$}jS5rKwgvZ`B6hs_w6}S~`^htliH-Vh(5GUdp=E7pih5k%R5wQ=V&7YmB%c$QA3 z+;26bzt)nK^Ls7n&$${cqcG0~z7{{B2Ym+^beeSEe-GOh!b z_)OOHL<^UZ7|0;(UCh&=Ru6}-&eQIzvow@)^mwWb z8I`^sbVY+AXLf>Xn)>#D@eP=l$*DH`b@u3E)%ES^W%^DA?}XKn>cl;I+uti5<>%>L z^p^d-k@oKx0n+tN(X|TWUcRU&>hBEF0FryKtu#hC-Ef#62hK*pW`E84Ei&VvI1B+7 z0f#c+57oa<-d?7?Q?1<8KU39XmRAeZ&UgQ7K)SMX8tBfuHp_yczCA|F=&}})fAVP8nl`XzI%C` zUTKzouK|HUaA<&Pg!eVb7@%e_EVJ?&iMuH}dIp z%i{evr)hL_p8DFKayyF>7s~EeroD6v3{h5qq>=p2xTY*%Np#?D2j(tM{AsE>yi?nK zr~Ur>OBqjvq4+z)e%eO))g~ogJ#afcz0yT3b3 zJ<*mZDQrut18&1!aY2xF7f(}m5f%zJD}k|SDx$$gG6Dw|ll1WTBJG@OJ0Ro5^%?pA z@)4Q)CD(gh^VADLK6zaxes*YOwBTF9Sk+2fG2;}WmZnu^301F#UrP)13pQ(V7YIeW z8*+K3pxGNh3<>C;?9JqkrBKUnU7$F~!u5qM6_-kC5Xz?|z}e+Iz0|V&x%TL9wH&;V zg7U;3%kgSi%3v@ekJ_mYFv1@fzN|guv^L3nvb7PBS3y^Etq7)RM=Op)?L~K0{@_AO zQH3)*v8N3qps#}}P?uaCBRi17hbo_FsrYDvQqlTPi)}?ZM7dQE{)M`0q4r!@dtOP~ zkF>02=6|o5p9}mbI7%P4_XcvC;zQZZ)&GH306bs83_lWWOR2Z_MEj$(Bii2ImVY~q zL_B_AwiXqccH#CL!SFPCJzw(VP|U$9Qj02^Wle2*|Ig3Lsp}m&hlz-wSSz1&qNfNn?TTJ zkfGWIvob@KEn`LQ+n^y;c)H4Km+Ai8{tdL+Ku|!%5@pL}DBd1H)!CI_9jqoeQOCb{ zt0n)jmaAj!@fAwPGke>GDBKzZ#wW8fr%_fpl%J1v3Ppu59%hNv+E=U;tZgdN5fAZj8<5%G6knMKss~2b6h4#R^6RIOX76njUkbdlU(@cvcG^AM zO}qQMX=iUYZ6EBW(ZOCC>O45uNdqbVKn7s2x08B%*#Km^62B|)UD%2si~!pJ83C>4 zE@dFbDxbF9ozBuDty~_TT&5kK9#s3&mZY%Zkq+ zFU%zlgG=Hc4^Ui7w8|@oFYP(&pfaQlngzGgNZAg@^YqElWqKeQ${;X(av_TgT6U{Y zs7n@F<$P>VJXibsb`@`^_Pa{2PA+5w#u}JXezha}eVg%fd)gI!h0(@6DJ2*4Sn_Xc z#@>;_?rO&0l``)gj->QZR(>h_4vPO^&uH*yH}xLuroQ3^G7Q6AkyZu0U6J?%ZH-t7 z4DELTGnF&XhJfb<{O-U&2B5D!zl@an`A{pr$1(yB&c-mKH(rONy`TgM&oAGI(vXz`kO@MgZIx}0F7};R3Be1hhcEpk8w6n@%e~Q83+Q6aY zcr1AiMMEB2<(hz!1yvO{ccvDi?s2{jWx8&b9fi<>3ikW`nnh*R-kwd;(b?3l0l4xr z^ZV?tuNgX9@+%A@&>yMJru+jb|3Jz=NPC*?p`F7W8G&8Vp3V3++dq`TKiW%Mq9g+V zZOI7qv>NEk0Q9B&{q2#?q8-slG#qJ@&nf^zFi3M593wLX+%k0KpW&B$N|pAt5_lj3 zysy>ZfQ!GT{i>%rz*@o%t=5&dY$b~&%sMUHe!e$|bqu8v7Gx2DR)PWy&yRv;y+i8N zg0*2Oty0m78i1}56;(=-fs&gs$sY?54<6q=lXZW?v*_A?U-C2>OL&yu6u3>wYNSI& zIgA#p{G6RQm3|L%3co!fEb`k`a%%vxGdP^g(<3dR549B-jc4|JyFKz5s|(Aov(+h% z4y&`#&CpJ7#ke!WL!vG5q5LQ{cQH?-FkJYiWR)lgf3yb730`MEH=;BE~DK>mrX3fu@BNbwKH)3hri+|zc< zerJ#eSk=BZvk1+G`e?9X84DqRi6gg#IS9&9cH))>Km{0QXV1qq&HbD$EK}vSG;-bo zRW+*$i!7i(F2+$tYNs#di6_m*nxUAjUY?w%Q*|=R&(hSFsy18_AzS(c}OZm05X7-oPTe~ykvnq&f!AMHDC*|J@ z#TV^Kc`*Q7>>G*vLZ9~b+6D|BNQob8OX+vhTt;EOe~=c3hiNVYFeglg!OmJK%$0Ys zH%eF9PNZGGjhMJih!K!nR|AF1FF~{g(}oaZz;-}>wgYSrMw%uLwGv=8Fi`z4z_t)j z>%_-9I77~AKFaVew}ZvC17KA*FdV8e5h(l?@6G~c z$a3s;u(COf1^F#k!CF$unI@{ZI)6)hLV>&>{!L&b$=vi zbZ~=oDAGojh$9adnr1Qv)BaVOXvI1oG7D)^)9mv|`{{kH0(xcuNN>5_)>MVwA7~$_ zM0wGR(r6j`$dDn^xmGO4YRidMDzu@^@)}tvzpbcfS9xszFY7iM@q2X5{93N>Xm;M= ztR*|Nt67_C0VB~s3fv0=@NmcW{R0_+zKlUn+k}Lo>pVRirAwu`&EF0xVpw2#hWKV%x7=Zggvza!5Pe5fJs?_wO-c--4=x$r4 z%GFnoGB_vd)MG8JPo-2dk}){d*{1vqR?|?Y`UA4d;yB5NTY0P%A&c{Egt;v)D5nXT zBdz2Lqv96_{Sj8KRPHXc6_{u%pjFDyeoWNUFf=C0Yu`*99kuKBXz++OH+iG9I>ltR zNGFo-d^R&fhVl=kOjZS>to*7gTLK;cV(CB9QhdZ&3deaz=Us(CysTohqt(KmRuL$_ zmj5FefNd%M_5;Q3igWW#*$IPz%oecT=i)lKN0hnmx%JcsAjJXD=E3KLX3ZR$@k7oc(k@Ypx0%IsU z>_d9vp)k@KkuQ^A&jy&=^GG#JHZwr-^YtIONRf0pxSFSjEJdYgTuruW8K>1ywp*hs zFXcs;7Y$MJ#EgJ)qroWc;zy-#I_-ScARGVnU#L|AI+5S?q{>7eF0lV92 zvZED%miY_z{ig7lOws*m!1%p@KPcq!7=kMdMQ@OXs>7b@b)Xf%$k+e24QNh0x4<2< zHvzMzMD*dNV;~R9n;_4;Dj{Y;K6SAcVPWxU#I1p)2%byHql#XBvkiT=uQMo?uP+;H zAZi7j&a_m0r+xK>&g5rsvL~&}RDO|NoP&$Wpo0bihQOD6o+ijo0L4H$zjc269Lg{Y zH1fFE$49Uk09Gg(h{!~sEt{Dw6@SQc05}oqFMj_c%m&8Kck^NUFPadJ0e?wsZQJx7>RfqaKtqL)zy9oghAjgfM^?IfLn^Z zubF=zBe2KCL@UhR{4+heNVB7}bj44tWyt&LOXNXmXCoN_Z6hwUrMMi9w4WcPnT!Az z_~N$!@#7#K^^M!BS1bV~r{AK@eoYQN(T@BFs@tyG-nU`-qlU0L(kL`eZXny5xwC?A z*OtTY4N-nBqawlp;nhAQ0v)$70N0?Smd&7!1Z|k~?rfte{wkE2r3~^;r7_3jd3vvb zgqzN*W-3urQPnIcq74SI$h{YX+J3#KIH%IB(sDWv&x9XIa(Mj+v7)3&&PK}5YQ%_m z%}N@$tWfq8|3KRTmZJkSU;a=^CvTP7?@*E(gFGs|%4_9F?y5W;%m^v$LVNyGwdaID z$?FEp+qJ&s=hs(I_#M$UZq?N&hwVrqceyAi<=@l3|L|ax_BEsP-pTp<%XI$DaXS9} z+w}I=uhYAKd7Vx~m%n+Frhj;wuAaY7TSqbmT7}S0Q>`v8c82Lx%l~r>f(!r`_IUIc z;^{x1^|cZZU9s6$fAd_1KXaj3Uh&)>Bz_=cu&>tGmk}OuH$bgW-HoY`Tby=)xW$--~P|vrf>c~ z-=vrS^Ec`3|MG2m|Gzv>r~m7>>EgeAo5uh8ZCd={Me4nLmj>q-l5LSLWdu%l25tnj zG8n5JQT&P85}Jwp(O~+--K+%M0EpD=+?8RKz*yK(UH8@Q+cE%s4NO)wipUM}{lRpk zt?hE7Lvg*Vh!tvAK(!#3<-8Nj>MiqcAmU9i)|A<){CQxzwB<)&M4BrydS+LCmj732 zrWur(YOZwl;Ee`^&BW?pCuPWN==31`@bL19cXy@SRetd+!=cR39upR^)Q|M`8Y>iB zvpiR$?Kkc$pYsx0nxpf;h=-DPdyDkoYL<4*0BDc~Z>y>=`Q^)>Tz@+{JbpDIPD3Yu zYE-u;Pr%&rG0>qxvXYTEXvLn;1& z;+f6geRGt){$IZ{dilH8>Gb)#G=6iEX7A3^T-$)fJJG9?wD{B8lz#m@jsCZ9)Ak=< zr_sAp`!Ua01)gj6ztDLsxp>Y3<>n$PKV6D`fG`C9$Tc&++>&87xUw^S;nxCWq*UJl zdrAM=u(P2Tz+HruQB~R^u8hA8*5!}>voxkqAad0Hh8c_C5?x_GWFT+5x^oQ(ew)s@ zp2<0wN<_kP-!u7p?o^%)I#0jV z^Q+dR9mxPN3t<41TXhUI7g!2_d+01!*vi6uUJW~Eu>o=1O}UgTGo-P4X|^{bhXEjn z6^%#=d0oG5`|Ut|?V|RiGoNU1S4mqV5NkK%J6#|CY@{ zvUXCN5iCK>4W7E2qG>Lc&>wE_s@R#i!?2)Ip! zwy=-pTEM>QGqjQC52irkTDLkJ9PIrP^Ebwf6A*ZoqyiIP{l+XbEAD z`0|1f+h)jc?7TTmhguOl`1(!SeSMPpmlJz&3;oa2iYP8ik>4-{f|ao4OA`UgTUP%6CLIHN^NN<2!uyk>4+zZB_yt977NqC znv71uZGH#wAi_6+n~|1i37-ng3n@ z#m69Wu`Vy&t>47d_wWkCKq&1<24(O4d3x~TZQ6VFF7;2((qcN10SF_YEnp^I^DtFC z?6RJOWn9FT(Q2-ECJWvuL^*5&_T}ETu^?atL^OHMVX(9D0E)~fONX}(s_6Fc+)twvEl4qp(zE`XRxU| zb!Oks?9XygAsV1I`^G@3NKL`u%|^hCK~{d-yEBUO7_`AoT$P77CzQH5qbr@1zk1WVyuXqO7cz@0xxl(IT5s}P9J0~JU}ey%+9)_~MkyVxGw#YLm_m~- z+-e04fKYNX5SdryX69z5m)n>33WIFMccb7+uQb^J*iT|fYkbHn%5qqk@eu#K+%=xW zTm7iFswlCR&=nTwh^w0(m$zlOs*pU`P0`_@cC+Uf?0SXdqJ0Z8r8iO>$&HZ?Qhxvc z1dM@#ri*lOHnIN)cz-cA#q{e0;z5CiS|(sskjJ`M>FmKCoyovzVkE`qEzId${4RKp zqi8lW1EAf4tq5!dk31qXEfUcCUreYEWPK?@79$E*8d1Gk4XNZbp|aR zeREw_0_N7*P9(oBONoYT#w$}GyS#LZ21(UxZ9 ztqE^Yo~8?aNvJbF)Iy=H{yLjt<_n)eUPWW3qi=&|if{vE}b|$)< zrs-6x0UlZAg0S{4vIVv}gcp46U`nrkS3fX57%$eRc}Q3~P*uudGG#@y4*@}b_(7r` zLu)}zi`xDGuq;i7eAWRBA%Q_vDUmw3p!jnM>tO~RW}dyJ27sl>ifF%MXTU2w$im9F zcD#||#0QFSGbEYJ$e=trLu?PsQ0VN&!QE~k{0h2~tMfiazZCqfA*FOu$hpp@ma1>H z0T7`$DcBJIP%SpPD5t#FKBCQDQFU27l0c3DhrA7fU!iX>qR3|6Np~l9k=Jypq zMlDzEs^QxUO8GvpX{kkZu7NFgM0r}s#?G41nlS>hyIPh+yb*|V2g+nEWE<@+r7_AO z;i|IYmAvGEY#C~^zdBQjWrSksjB9juB3Il%Pwk~d_8Wc_9V2k5^H_7ewi+0qt%X(|)WhlyPsyL;=S@#g)&!!(uJFC0~g_f zEG+yH-wuOsR%B^zL(z@DE4P;)a^N2-JeNT}QCtnTYXb}@jV6@8s$Za^X_~5YLy*zeDs>>uwk zj1>WuiT^V!LEa#5H`J>LwG(F?A0AdcceW7a+lDL9oz&4}Ro6oe#Mwh?BD~|{@teZ= zw9yP%mN_IXV_;*-BPF-lS{-Vg%aX28NSo!e67$Ct_68fyBPk`}a`OZl?#Ap+ST-OY z@8PkG_c!72NH64ZHF;S%l z_Wl7mF8tzc$?_-SPzqaBnPOm=ByT2+1DQ}*Bk}OrAH_ofWem6y&*VJ4(h5MH%W3Ls zOVGcXV^3_gW>4p-EHiQi*#|KMh2(0;0I(G3t8Em(OMNf2x|nmxKVNj@=gX99Dxq%`lEx_ zRR?PgjU}Dzz4TJ99`A_b4KcVODVtvmRG1W-a66;$S!qLg%{bsznz)Z|Grb0DY!NID zCAY9lq{)V1ARcya+tOed+&Bs4W#{3XIYytyJD-TqpSzIG^*sfzo?T)f4_b`Fxi4E~e=~f!mB+<>zO+_UJZ1 z+lsMEANyn7I$(gfMj~SMaH(1TOh#oa1Hga&q4l=!SHW9Sej~|X+Xq;Pm)*G#)xQu` zn5u&EQ%ANs6Bz~Bm6i%^hL7Dxnar4O-((jNKmH59aN$#Yz^AU zS>Ry+c!F!7<#lgol#*y`hnGe2+GtmHyEQ1o5bu$&_8i6x zjoW^_Q!6)Vd{v>rm5o5fBPi#^plm4}2FbP&I@_OR$c+sApygt*m6$MX_K~8jYaS1e z6m=?d)n0Q)ua>>+xl~3DpiC5+>Kls5&(MHHfo9Qg_x9;RsfMu8Ri+F;N<+)bn z_BipS9GBb?kP+BBwY8W^ z*=MOQ<>%oe{)4g4S>+EPrIpQ);`=iPQ2dmc6^{LpiPg`4By_G)FK7ozU>}Ol^3=q! z25n~{-Uv0_0Z~>3GmemZm*QK#5-SWqEu}NderjX;v+OUiT(O7lh4@+3pF#Eq3j|&kp`IvLy za`Lb^yY%5=JkowudkV0H9-dWOTlxAz&|y)L>=sqF{Lzi>16NwXFs`jm>Cza1-Z-BCi%m zTPeRU^W6Xp%{^2+WczsKw^VYbCmxY*iMO>HBx-qbZ~hn$cA+?eH^T$;<$v+R#CRtnk+K9+zZN%hh z!qZ85`)-_$PRDi!V5oJz{iH%=4>X1`0DUF|41mH-=^@e+Wb``%CX|t1 zxfdynGjktCKns3bs?VhSyr_jI|If6tJXQ7yGxqr;?Z3NByYDVi|Lh|5_-_RE4N7aP z5R*q`AddDFlZ$COJ-V=;4j&(1q^Y(PbeFw!L@N;cy@8V3?LFmYQyY5(!kngFQ~lyPuzSo(s^5hcjU9UW?H)jfSdQmOIeNZ z8%fD^_Ui?%@E8XShAD533+mhUf;csCkSR6F?MiO9mw3oWaklKo06>c4*MCD1@6lr! z%8yrgr5Pu>$@H(IkLJZwE8O+mDK8$}RChjK}WG39Ty`E9(t13*f`Z14ZSC&8Fb zt&@~oO2t0j-n65%@R=K743fQ>d7`A}YMwJS>4oCBUq3q2R^aG7ZNEKBy?3YS>i8_p zPA}8qVv^=E2vgC;*)+XBx=e51oTt}sPVKh@_EE?OY*@w z2qQpzPy?NTEmUb%Ctg*T$gv#ld`fPfhHmm)T(;QO@^XJNPCIkWChF|@_I6rq?`Rva zEk%{GO8L1yu-F-;>CQ0Cv%iyQyziv#kn`whXEg>Fg%cLJN3G zOQwO%1+@VNRc&cTRmx2rXKKTR+5lq^&jm1Vp!od#)?5ndga7_-U8N=ii@_hIW$OU z=V|9(g_=d1!_Cn&0OC~-sX#p-2+gva=hlX&szJqVb5N#H#iZbp!)SDKYGBei38fQZg-2xV?2Lao=6c(vg48PtMcjxi9(I9&kNi zB%b_sKbHJzZ8HM+#nOoP5)Reg+#1FZj3g^FJ^xt{etSi^h-(_>^DPz4wHMYbnpUj+ z#W17RnM~F|ink;j>a+opbfFB-+^Vo|Xyz%! zz$Tbo$Y2k~8(;XTC^N(Egwh9DenwZEQGWPI;YD^m0k_g|C&8Z*l+jUHMoQ}!ofwFk`4!LA|DKG|L@ZxP z-skTp_GczsMHXk<%Jiu0!Yf=4+(=(ixbL<=hUn0mx`Dyu0il6l*J=_h9Tn z89;Oz`&RyN^AT5>`E{5E#6*fV(SYTD;dp1fEnk_DrLfXQ83%~LoE2Y#gTIsF-2gtr zi+>P)4XQ8_2&y9fU%zO82OQ7(nQO{Nd6AL3=Z7QQ+M5VoQrilK=VH6(47NO`yGNwA)tH(q( zcIDlw!j?*0Bj^GiE=_4D2&D!kvcb)MCQ{cD`kykfv&^a99416a%^QlO}7?lFde7E z_b2J0mXO<8I&wGQY;Px>?ea$wQg&u+4Jx}xr@>+u3`Oj3Z8c!Co5&0UN)BNxSRLdQ zLJ)B}qu|vFBhqNFu~c4Yrg0;pav6wH{5{Dt5>2EKe|k4be|T}8j!yaW4Gntnvd3_( zA#$4rwP9`H&IZVPgQkzc;Ar>kxc3CS;uKw+%VOq--z_sWs_j*N+>jJdcgecp=@^Ov~2u^yKwX z`sD3N8p*<=-2AQ7g#Eq^Fm4Gk)5G77de z@BtgEhfn}UXm!<`v>J3go;;NDk7S5;4!GXXw}JQDKcA%6M^jUNyB{t>Hb6Hx{^B#ZxHQ62umYepp-ySGG7f!=i+j9cSV^{Q*-wcA%4y5Sp@7Y$Fvg_<5Mc?5< zpW0mVU;w!2x5qyf?~hVn?vqJMFOH|$|7(nBwZp|^YyYlh*%)`qyfHQ%7qtP%ay2p% z)*){Mbl0e>8c5_6%;RskY+XG6dRLc35XMTa!V?9pQLi!me~ z{+t2JVqYFJ`}bvhh9V3ATa4GI7wKPkJMN1UdySPnk}7ei5}+OGnmXG4`v5$RD4W7< zW?_a=n@aI`S?6dnONYlN>4A&@w+2!E$=;s-LoWs(*PlBoJb<-ecHL2%%6}yVtRB4< zVHjez=UK9Xf5&ht^KT6MR?_~Gx2~(Te?<$O>{3yEmbX(8);;mwN30zjqKxag>bq?L9K|9mZ z_59M_9{cQ1uhJ*)PW(qG8eaqHaBnDcF_eKb!0{JS^l_g}wF=NDR9Ys!h4 zt$MkJDrWVy1NGAxcvRIEP!4h;Z7ZxydmTKDTAgVS10dz&Ig4#=10KFUP6sFFrl=PW z_R{5{jKJy3<8EhMgYPf&~|1(+)!4xPf>c5 zAGZht&MmwVq&(XwJ~O;{?@F;NlH%{~@1~voZ8Hd?9lzSYr?x-P%)cw;U-Sm)#nB}F z+siZiBUygFY!3<1{$72jKs25=j?UpI6Uk?Nx7qc8>r-40cwEP)|BwIiKm8XRk+7-! zKFe_D3G8U_Kh(hA#quf{>V#r>o`P~%`x9}2+U4%BM*QI7MD290GuOQ$&eAXC*U`U@ z%3X&$@j+riyiugSX0G9wzkU{f2B-#s>8(9N$}{9Mdu|-k++}2LwFCO^im67#uLg;G z$|x%X)GqKT-0th!ti=O9%vvg+6^CXh9`|J+?rN}dA?p3fIQ_SOeU<)M^!{|B>S_rK zUk19hYwjx@?25FtM^Fv(kuch8IZ1`QU98gz5d_L?E&)kd3L_Kwr65{G4fy4qDu?o4 z9PF7PP*d1g@wfk~&1He82N}7TNq&EapxovWbIwY`Hc1UBr`i&Nkr`g)wf2>p_EtHx zJNNI0YR{qCm5Zq(W_=mh9j>dG0l*jxZMNr6NV(9rqgBSP&WGyz2M61>t$2GfO~3j2 zD1H6i`*g{(1=NAEiuUnl$gNa_79Qj0QRZO#Z5ZEs!SYmY{`lE1AEGl@*Z%;bZ@>tM(s`$LYcAcj>{~<20O4 z(^Pf5IM_`W`+I3D1?2jPUo(jnl7_14%~O*-#YrP`+YGe_=N$}M87UoPKZjO&%Ok$l ze#&QxuGzjOlv_%UQ7veXvkbzH<&lw);@cKM#(_QmzP1HiU_CjXrLVtvZ(FbP$yCb1 z%FpXeyBpC6`MA_V5!`~O(y_RONCZo z>BSw^=(-gE=SJSrQ^5l{x{Mqdu0B}f`E-6K-s9zzGcNKdR!YkA{Py!*jW-Ox)KjEc zUL5>3Q$8zbMtdMR2(y^z{4AffF6}6}7gFY_l%8t< zTI z?K+eZU?rx0;Lu>!bMTk+I_)!X9y+(sGJ<*vfy@aAu>0Qe(Q#vJK<#DgkVUID27w4=^T z1^~F409WwZ0HpN>pg_y(Sd#{~*c&$80vP0tkV=*c?X;>H`3bftYU<%VZ3p@nlhor! zC+c+e>Gne$jDRX@_m!>T@>zNM+9sG`5HAh$>?YhUIhp|=E%&JHO0*i?_NX>^#anSa z*mCszefs@>`!0Pg2sgu&uxb~VYwFPIpx{txLGfJ*A2AO_< zN{g3Wu2adF+~W#O>~Hr^5$3XDQaZ;i2ism(x&*G$8MBEB4FcK2mJ zG~gNlq;Oviux#}6XmFJ@8QD{1w(NwTN?c5@?60t1{M(!KZ~y!}efx(u>FoGY9mEAE zwXdv-UGzg{lhEsg{2_Z6RzbaiKmP;X0Q@!^)w5^_sMjo6-o z&eeWqB(^l$^JJx#6;V_;YE)jnn%MHql;MaEfa?XhhXUX98uKM>ymGd_xM%FnG- zl;3ZuvdXe_W*}rZFb* zHO65z>V>LLq7oHDsW*ZGNBYXEYk=#8>W!b(3Vc{b4s!CUb)r~NxEhM;$*)xf#P zW-}CBvybX;a!ax8Pb>S}p3`}tc%5-OX**yy1epEh7qL}fn=zAtIX@n!ci+BG-~IMw z`sUZ)rMKT4rSXOKo08l*#f(fANTKoJy9%DNtoyRd(80rl)-X4C3Gm7-mV+{Pofup; zSoH02>vAfCD&?Xvxbn|^|CsT)24J@aH4xRX3R9dZz7$o2!A0rqM_N)|+xPD%UJB3k zfq|6WmEYZ={6i@}WbyL%wH2vuv2vAPiof^3m7gsEZzg`Bng6%Hd6~ZclloyQxg{fp zC?*>lBT-ii%Hh=+xZ9EybXx;ZBEs5vXl`qAg=&7;zyPTKYzv^~HUpqK{^x)CuL`@8 z74+q>Wt1bbAT+CD!XB#Mej!uygu!jfpk zMwb!b&Va21#FOPdjn9AOk09-9d8B{_oSn}!<4@Aro3ZF3oxeUym;A8ha%^Ry^o%m= z6mxPw5IZ2!#`U}#>Qb8JAx9h?#9JELEw^7!1H$@>AVtljgy&y8PN#qKEM0v5(0(tl zwNN{$kNZ-#;bf}wEDc3Gl(n6SA8&2VdHQZ)gVy+qDeWm6Yu8!*N;(5tgINlT(qdoS zh_Y(%+lE|k;o1Iu8IXfLE&aK^BYxwPNqY6oar)iAewV)a)7vzeXvHSOLtj|?tL?39 z@wW1#>j3_gSb2$z**F1h8w03h(u?5fiM zI64?_2s#BcOo)Oa+>UCXEoL#zTw5BT2*d*{SDG=d4u@$=vqw)f*k@VEMY=r0t8MH; zl~|}Bv?S}N;gvQD<3$>4HNkQp1916%qJeiQgD|$i#WFb_Y{|ly9M$Zz0%a?7rCilY z*Qc$0T|6Q`q4uo6B*zaU%yG;{^?D6!R@{a8J^*`t=f3Qu&EA%8j=C<>gIYHyd~^NGV=+v zfliF6B?F*Dq_fp*R?-qp&P@KeIl($*V7Ne18T2ct{tI$Zze!nS%v-t6~6n=_U`n@XJO1 z31}cCwI|>v@{c+Le5yRU6scz14p3;cU+j$W6bnrRZx^+QnAo z!{nMW$_kpx=t@_{gH3q_mcu+G_#kSVsRil4?Nr=0Ce#Lf_2-sm^SNf{ zx%S}mrw`KBvqNpI_S5{)o>o@cR$)NN&&o@gH3^H46jSHEwhZPCplE?6Jf@8Mhz3B!e?&C50P75Z(la@!A6ON!Qo7avzyK@5ztKEY0bhN{ zYXCZ6dyh18b{PQgoDRktqEaejQJ0L%!f{o>ImFtAR`56HJ3?KFFOnC4$Rlrh*#qXQo7QF=65Wczxlkc~1iVr4-~GD$G|^Q0!`m#u)^tzpUE z8>Vd$Y5EJ^BREZq({Va`d79pS{mw4Dp1nKwKMN783|4Jy8IYAa*!U93*+d=SRrI6f zAzOqfzl~P~ehdR(<4?Q}bgm3Q=6x?K04qQhAoih5up5A$-F7eopmSr;kTH9M2dGn6 zlT~pjJit%KnE?>fh5=BdD;KgAW!(^z?B&)xG-T~;HLQ5&RBFihS*7Puel-Y!Ua&_?Y5HHi^cOtxLz8zI_<%IsQ zl>#9d0J})YpigYu8qGQ}5wUN?H;0_b>=t#FKKW^HFr{hR^yC*AB#w za8_ShzHd$0-_O&Ge*`|gNaJH(9d@2B-kzoD@ildJE-jq)M2t%q+CL8Qq~pNgo_#DODZxA-rM3tY5r+BA9r) zn?jt3l>m1D%z)-?l8rqnust5Ux0ALG_tMtm-PC`$n+6ZKy{E}W`+$Mna@82IEtJy3 z()g*1uB2|Wtu#HIr1RHO`nRX)f)|9IU8XtjDUjjm%j%+#CX@L1wHJj{l|Y>`6c(ZK zh*V!r(HeCmH8wvnp5$%@pkUoV#6>)Qbk_7!p|J&csKWW(g*T9=Lvbv>4maKcG!4L9 z24E{aQ${lY3cjrY@ND0Q0cZ+Vb3-k&uojqQQ=vIj2$#p1uWGD16=TXv(#M$i;PPZH zg)^_w@@900I;T}}_lvR=O7)VxO)A|1R#AoP6v4!^+JT8Fy*?zPU2Lz90?#l6Y9ULT zfAwb8!#lmiGei9$D}cOYR~t&F?axKoR&341Sz~2>F-wyZ6ko&}pTwAJGwko} z*OXj*VgDx0WqRTN!`=QB^W|FaY>J*hN75EDN?ABB&88T!9|$M}~1j zj;gUd-XJF>ksr5#v9wviEL8a@@xBc}pp3t{0a)GwAZvw|JWUX1=G;3KNmPtg#5`?^ zN*13weg)P<-4Co8-02m{1td>C1I5y#?X1VFvD%JUys0KgIUHUs6QP(cCqaQx zKaO@WPfEs0oQrQ)a=89!;6lvuG71T!Fx2qm@nMvh3swyHC`5TtXxq#4*sxZncGl`N zM`(2S?fL=+gjaelwlEMBY?5VI;h8e95Md>*MUgL~gJXqtajURal8RZ)mC+H3UF9=J zlp3LRIzvRS$69fm$!3h2$Sh;%e`v%YZ3hd3l0Zu?khv{rORi}APPT6@)YFE@);t%rSZ9Ih zC{Vf$O95+8rEO+%X?z4!lC}6+J7m;OT;3)**R_bYDN&W#fsRSoU?s!L;+>=Qu8Wl8 zv&X1D`I(FbRdKkpzg&&V>Epq}d?azs{cfZ%32YCS<@ozReO*jtSn>GV{9Ud(y!J2Y zR&@3%kku=JTgR%>Wo7+XlRipkjTC-;_(q8qx6r}v=y*esm^kh5+&CzV{1quV*K{f> z(l){~SqJG0d51O0wbdLVN0e0~;@i~Xg&(ra!Noaw4j%~au2H7~(NguND~y|H`9@mp zRz2*)`5Mx}_;Ri#t=rmBhuBBSt9JDSrW;n_7P;O;pNb5*OuWRK4?oA{kJU@*?0JD8 z*x0ekox{tI$66@7s}Ax|Pf+-)+SKs+a>UIzj{|xZY&Q28Rs)WTgfc1#XAZN}J+o=+Q*iwp|NU%^Hyi1y}PLm|wc|5!! zvWq=_LCAlbug1$^6E5FD1$-_8e1h{)c3tr*Y${cMVPyr?XxO<7q$7x;WAhKbq$qis{YM<@^c0@o*A~(M*|sB zA`g!^AL#|v(U6BW<3Y~8j571eM5`g`YTP3K-Jk+ZZq*aAA9-jnTEhxF;K6U`uXx;v zN62h@ppP<{trFR?P?pe1;Sfn9?iLjM+x~S_=5OSo9tEvJJKZ`0UEvKXWw-(5W?oD1 z?+PBS}g$<7Z!{1;)AKW_{Lt#~W5uR@ z1B$ef+=4tjE^?ySwxZQA<)^x*n%Um%kJ8!xPMYz+lEN_nycG&I(iYmn1`1{G zGvHitBp8*g5x#0gog+Dg0cidh$PEBukSLn~oC;eu03H7f)CA$7vW ztl&*Zho!KONE|knL5GI_CiQF)i=?jb4@saa{0B$Tt~%UkeCVLB>A1CTvws+${@OT= zbP?$Yi+3B6Wv;=_AEd+tiN@IY#s~k5+C@6otDq93V;!-r2#kRJGmyfv9TJtCd@IkY zyY*V|t`z`T{gqc!GO4m$1NfN?*pndzy5KTmp3*Ahs0%H`6=N$rhmpSD#{ewseFLwL zF4FH_oTcZ-<20G75?b=xDuXHCIO)Xm(;zP^sY8U+y5?@zpyJm36d2*EdG*VF_i`54OGHj*EXkgob_YZf|`<;OPb6};(Ivt$g(7px`#%C?cf^P?;fsYhg%rJod zgD-hhgST4t|NhUX>D#yCbg2g6pL6>XlI?*hI|87{wp<_#e-QpQ<+z;x`=gLg6|P7X z@1!yfRObJQ?w87bS=Ij6QSiym>_($}H7tk5-$LVfu8EF;zB8GnhbNcmp(eZ0#RLt` ziwOQ_O6kR*R@NG@y$M2;)%hZZlGng(oPSC*d@D;)ge(wN$PAGg0FfF83&lmh`Q%D7 z|1ACfo743C-6Tz9`q-Bc@5=8Pks_W9q@~>;1VwmFb-WIh`}-grmZ&Qoq(cXF1Z_m! zWqf$*lI5n<#rHnxc4g>LP(2>INC!wBAG;cprfFAcIGv{h8G#4c2=G1w+chX2p3XPS zfNLJK4jvyVn;ILOR$-+9h@w%yl8J>%qrGa5a`|5&E5B*KSpZMRMG;o@yx`%@(K!9) z`Dyy*WSaOhZ1yF*(2#`z9IJ-QQr0Cd!=?0cyaU|%6aI2wV=a%HA2cz}7+)G^Hq6W| z`Pt@LJ?g;t;I=q92U7ZjGpz*PUZkDVv6lbZ^RfrfIJeaUi5SC-d$O(qX>F{pOSB$M z)e8MtQz|iDrDmFFoPal!10i|9hrh-~xo5L^`tImF{p<7h>D%KA`^%)BG@l2m>>jFT za|4jwpf0hN0u&`x$F_X;0ZIw_3HOV-5C3uy6Lmc%>M>`kAR-M4%_Hp#BZW)Zw`a3- zcsfasGzspU%K)$)(5lz}JT)fDdK9l3&GvR_yJ%2LQG$G{@`9{uo}^B=%&10-WlQnP zyrkmUXx`+?ix~&n7x7Q5FODzMufNmG|NcTV|H5AS$n^m3EL8dB#AOwY5MMDVs{rj zji+y;=J^wT!jAwN%%;zp2zm1n?>`(~&C}tJo~2)F&;Q-~ zahfTez2=!nW6~sFI@KY-8_(Uq%CayWXfU1HR52*RZb}u8KrU}pnLp9ZscPh+ZGW&N zIV-t4;*1Js9p_%)c?s4E_-dw=z&Jg6cb<06xF)bj{NLYPy1@bW5D4#1 zS^Dkslk{3vjwhFR2qE6pju2#ZG+p7#rGBrdMwgusAU8Bi#Jq&iT+4UQIsdEIoCca~nBYUWp%{g1n>n;D4w>4KH*PKP|v$Q4D{N1(vRF88m3ylIzEhDV zo@~(=*L+_LL>Mq<=%B;Y(>@@lD^M8#P)08&4Ol7qVgNGoqJUd`D7LDUX46@EB}?|l zmlx?f`(cmLXjNb@W~e^vP;qyx7U(DZguhtWu+A#Auvz>{+ktsH)N1+Ru~q^y0w}z_ zE?s0=Unzrh#JsNZ@l)c6#bH|wIa#|qs#rsZ4z?5zAOOMD@}ro!Wub7R_ng6;!NUhXSPiBDJDb=3Zp;bpq6 z@c6Xd?Q~uKlGde-Puty2S5iAo`6<(_qcUxLy5d&RCTW5qZTTtvW!iPLK5Yrt9oHph zc$WI|^{&z=8-WK$XW9G`qW>a)jtRZ?F9u{t2He;oE4f$?|0 z!^^Q#cE&l9uA(li3f}~6z9D;rEypj%T}N${;bpq6@Ic$$PS@ox39Rx5+U|C`l0fM$ zQKnl*pmc+-xK#wY!n+8>IZ*n`wCf0Tg*Qnb8~5lDLt7tacM(f{oZIuO^Z+BEmGtP6 zHS{7aq)YZJLFffpbPB*H6yGQ9NEWGbprPI>6v3X*{r<5ljCuLtGHX$xnIB~~#gL#eH9PhMNkjkKZRX|@GYUvm0uC|n)R}D!?d|pTA%1<|3 ztF7Qwb%?AIFVEJd{4DG3L7tQ*66m><|6jg&pT6Pu{IWcKZ3q0>|Css3Cz!*M%4J$9 zU4adf{IJm7m_Omij?L6>4A4SD|zl$OfPdt{XPtPbu@h{wuqU$MgLxRmPL6^xfM_-}4_`$QWo_ zpm4j-&+5RlXUK=eSXJy_66oBrvwy-*xD!HCLigMV%%m@~tS;NrxwZq7^x)WkMcA86 zH3aoBl~R7jqp~mjbwwidjX2Q?kj;vY;>lQ!YuOP6Ig!|uzwa@ZlX-f1G)aGaah|?A zncB-kdAlzc`z%QY*2tg=Rc+!pTByz?WKrA>erdejUg)0lP(bbe?wKU!?vxeng~|0O<_Q8@(aF6USx9Hbn6? z5F|o9n=Ai7dyWyyepO6X>4gO1f*()+#npbZ?P;9sW4~L^q;v>QG$(=RqF}49Z$(g+5u#l8XQKQK$9h_d;!$LbJ^9TQIAjDR0f)oE7Cp07ZB-PW2&; z5hpl9E~C3S0}pq&oBW`R=|XVoLU6wgN}eU3=H@7*tl_a7>vZi@?G2Wv-9%bij&yY? zZRu8nxQOpAs~y_rwrNS5pjlS5$SMguoTH~~rfcU~h3o3GiVrg~kv8NxN6PHCFbi@= zya3l9@Db%SOoaAYac#GGnXWxvuNit@I=U;0KPfU+g4dO!N+dt4c+J#o(W~8o@g|+2 zD#?|}rW33q=$&@boHo!b<9dQwEn8EjGF_LvU1gQ|JYAp^ zJlyLD#5vH82X$Dx4z&zrdWEYU<40oFt{j!5rgd>QAug3e;gPe};mbS4h_V zA-+jE8oN5oZ|l{0;uG;s9F@_=JEX9JN2CGa(=_U&&BR~tl$5Fu2luQ*F z@k?!_SNas0ulMn@c5A znIk9iF5eX1jDe-{3pCOx;kvZfp=_5>atbJAx7LV4a&Twe%Ai81rIfJC1Jn4_ji>-0 zZV^J>DnE`QX^HM&5A`aFZ&$wxMH5(-GEF1y#!%*5H;&ZR*|nvJ&_>Ck?9Vck&D4dQ z%uwZ)!_L79e+M6H^=tqDqtWYLkIU>0R!e8%!_AYv{DheI^3VD@ZA=V{->UEc@m*y&I*rK^6i(Dy&1&cMwD5PnUA))uQxvMVTBcQq^y_3@1y`WW z%WRj0zbv=y|1c<}4R@?sO346Aet_`^MGjy9c-y#ZpVCSfc}y4|7wN5W^feyxTZ|0Q zioXU^0g8aV711&Pz~Zu(?Kv0yh__{p^79;%A)lI1poMd&d3K{@(4DqUQKr2P@N#}P zk)Q^l5mR!=jho$$wm)F=fKZ1wWx@CVFXzgV<+fp<9alNG%F$9za0w3~kmn^=p9MGea%ZDT23?E&?S^zT^K zt!5`q^27mX2fe_dxc#s`IA0*@kvHk%kQ_Gh5liQKn^+Q7cj$96+#Hk!^ju|zdE8aZKu{!n&8=8db*GopXXjOC8d zi`F)`gf&dm;>8?*lRVj~(HsTAT+5B0JnuLzwF6m(G=%DxG^~vsKl)t0( z&m4=x^9ILe)h-({knB0`@>jI?$JsnB|7u+$k9~C89iEJL%Hh@?P+V+GxB{nRxI*MS zj)E)>xF7T_>KpREGDty6sepT7f8c!n^g z-_#Toq4P?#4@e)u8jR`m#5627X6(>c4p9%Aw9B(3)#|K6nA?HTZ2(1fD)stsqi38C z%7Uot*N&mho^QzlWw7aVRzwu)ll{7gXXOFz4%$W8S(^-?wP{XD&h{bbN0g)&jt0TQgGRbYI75cqvr|08KOq` z8Exur!HyWPl3-lOh1?0>2m9Fo<61#J)NX8;=T7$@1?FWpXFnVJs|cO0SLNms+#oJ{ zCu_#gS~!e*wZ`9c#Htc}@N%~a*;pIvXu<6WE-=v$YJ0~cSB*N`v?jv-H|coj*HC$ zcD$mS^?=LldM(!DEPIQ0>j0EZqjGXOV5{~eMsn@j+iSm(0^8>1>%C$SVT=tTHwozF zV6e9Ue)D4=!25yN59CXBbh)UnD|)*_@)e{TXeZ<{(_Ty49cP~%PP!FfuQ7M3pWdFw za7TM3@6c_Rw3Fsxmmg^-5J*|$4nzDPWzapOa#;cTi^IfK4qKXw#y$55*^0Z|mc~!m zvC=ncY~V^Sq{vRPWnFR`gmm~CKkj()^S3|$=34;Y)bQvKj}N{<5URpuge1-QgTVnW zGDA)rQ^P9DcSf-4?PuVW)1w@^(UV{Yo73F=zo40TbM$>8Z$kLmc5p3sduvNHiMPO= zjc*F^uXexUEdYKB{KsF|0HT9w17Jyb&3BFtwafCO(I;ufYa2k<9)cRq+J6tHS$&j4 zH(CUfDCh9d;Y#&U^Ke4X>y>=q_g?-vYf-+4z9>(N*KpbZ6b7OmrA5Esx&i$1=?A%D V93XH}rmO$}002ovPDHLkV1i63;er4F literal 54345 zcmV)OK(@b$P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D)80u$K~#8N?EUGI zBuSFziHY0kcidNIRd!un)iZ+`>=NE!=0SEIWj+jMfv1{X;3Eh`SRyQ;d;6@)s=VUJ z2*2%e$N$GHtSYLeW^R5&WL9(T zr7e9{p^Ul81h!fcrT;1ttwNcg!RRKaB+2K^LC%}xDywr_Y3~zV&AV2v92w2tnYIk< zDxigRNj_B@T`y*xBF1=Ep0>Q}hUB$l`=cTRYYK5y`90o_I&ijnt3uSt=)e8n{vUTX z02bDYC>!m11CY;PbbW!n!7C%j;vg zs}@qVn-qHQ=&nWh8WPKczi9w;{=fdu|7&dkbhbop1(sTeAVa&-RYZ+4=-M_a6Lj#} z2pxrVRG|}*t}6NlGHg<}GEK0KGjUz}H3&)D$vYf5vgLKZ4sHHb{uatI zx=`kGW!fBFb?ah5vg_n10gp}Oc6nC|ebpggR~;>t4v~5_$8M0mop-t92=ghtPNz_L zu26XSk*|k)tCxD7g(Ui1xZj5!RL^+Mu0o67jNVDjpqayU-OEb%e?~x2Z%UP6wzd%M}Iymzf7SARQG8RkDst52IKrQK%hg2=kFQbWl|@@3#jK=F(riFpepi_DZlg>WRN^Lan@|Z0yG5M? zU2&g+0$p(%(YiV-&Zfj7O`uM*hRSpsP@oY`*+K2Ni0=wtL7?fEpiqvqQ?>}U1(?k* z(`4dX09*Z&o-}!IgUSUTvkr3V1mW|L5_R5)^##Z>D6isC9~y|f#E?EXxs1!{4J(2{ z)DeV5^k%*eMaBYH(?BijYJS~ZKpC@%JlCOFQnYoGb$CeIU1nG4>N>R1Oj(xJg|aNt zM7m`eHjq^nw)}K*7uo}135xe`164|Mtl+%~jCakw-cqy*T_t}5Z7BnU=lrl0^=TJT z&kD?hyDWxm!Lka+QBZ_OS|_iPQ=KAQAZIt263dhAN+-(nI4Zx%p2ITLk*iT9!Hf&_ zF{sU=4lmJF6s@?q@(158{^4I0@8~XRMfxs*8)=vGc=AY7$9J+?LX+S1>6fv(oRW7f zU$_j_pr{f2EOh07DY%qLGF2;NL!Gurl8JF&QY&5u)4QN5PsHW;GEa-zAhmxYzE0Ji zw0#R8cyi$C>z}Baj#6^~Ygu!Yf`LTGKi>ALDVWkMk(WLnD6qV={)k9%6_(cs+7h^>JTCmL{kb zw}z^t^2KtyE|Zw%hp^0@8u1}(CKt-%A{}El zDB_JQKBMLBM2@d`N1pIfZdG>600eqD($UDxr9(USxOynEuwW{GO7 zU}uNV!>Vw(mMP-ObnXsn!^4+9E?7>mDos$-DSte5orkNbZTYyiy81)jx>mtw^{1Vt zUF#-w@y#9Kgx}B#w>S$GIS==7s?$_`ol{;%&7(dAFR1;ouuPF=75QhmzEv1VTLK}16nbeNk8=*dIfUQiBTt^*U`V%#H2IX_zMAJcs`EvgRAjOjb?Hje zpj_9AV>f)Q0x6x1Wyzs)XD(w`#1)B(6~IC(fGe#4#8fR}$-_cq2AA^V>?wVZLItYN zO5hS%Dqz9j;DKRfB1x35t~8Wc8*Dxrkf1E7^oMktNrDx%{;Klb1UD-yU}chbZINA( zZuK$nj&_( zCaE`>rNIJDy);*zFaVsQx;dzM)*<4vSb1zks9**ta@C+d)!35TQdr)aCn()rsK#oQ zu*rd1JKCIF%7%2t?79+Hqtq4SSut+L1&H>Jl@wKcktt(2B*U{BI0Xyii=!bB^>zOi z1ER&WNZE{QL^y&^6=&?~OctNxt~Vx|0WJlrs^~5h$#S|fWIdMZX7K!F`JhVDs+T3B zy)9S=xz|ZRyDX&mmpr~N_juS(qn+)vH6B$fceV&Qv6suW4o(W*zyOfhgN<5iZdffSjg%T>q@)^%GxNSRd~snC~LtggC{Q21U&6B zNE_j}D^{5r%oN}QGRH;6j7VzdNJyeqIzx^QWhs^1py1B9B78IWxFZ)_TC5sp5Yd)a z6gk`DZzJS3@T2FqV=xYua+h_gODYl+p=Ew^%8l~RH5udC8}-t|{p~b-u$$&G023v? zl(uR;;9Qi(>ZHa9J08ygtS|tc5MVRdZ@^$Cdas%P-PuLDk^wk8nWep%@+keK5|V~p z4h4}TLW~zAhq2APO(=7C`s}mx?y6Dci-;V6af-l*YUeHC*|HotAteJpt_NA5khNyC zN$w6<=Qt!5M{^sBID(0BgBNgjm8L+MY8A?So1|X__=KdnWmjTdx>a#SD{KIA2Ooet z^UEjWmsy$;5N7^5ZH$Q`rq0U~OT190sdJ5E20rrhu8ATEhlpM`R1f!{b})8j&n(CkjRH>P0^ku1-imO_{;cJ z1WGrkWhmV>)%nY?GR<qhp`wwJcBi1)P4w+zP}>&>_*cqPU5nP0l7u)RSqy?QWCzj(TvK6^M$2jiX;8v~)V z6l>XnyO&^N%Ulk0wF7R$AOj8+z6D`L#=|t#lH=@fM}}aOX0k#GR^jYBB(O+31_eNh z#O0WBifHhR|b6S=&;zFioyr(JC;cdq`mEkuf9Xe@UTu{xUtVa;xkh?2y9>;Ni zKAx8`cUuRPVJS@H{BZjPJ$M;&6^3FjWJE4S+k>t2Li+c`)BW^Zv;WS{NNL#`_#^#X zv%6A2X;R=~z>|TRcA)M!H2G2lLkvLgYGHbMH6EmkgK;`}u#-+?45lM3I27KKaK7y4 zu7UC)6+~paA*pm!m}mtV$}~UGhNMGv4tE)TpQOV^e05j~`*S26Hmt8*JBu;D36<;R zTn6g`;&||fGyaA2Pdjue_abS_pI+>b(_cN?OV1weq_Ot>+@YIF@!1-%MSu}paXMLG z0S~40C6G0XRIecXARQ)?B$4tiRPed1(1(Y+=~x0yv?Sr4K1&_0OnMG43P#4yJ~<31 zu(DFt00mi&4*yT|6G7!z`5~#0$ws-p=uMl-be<1H7)Nx+HN)p@2RGZy04PWke|mW^ zOuu-so1Q-$rR@>RY_>CUP^SSfu>F86nU*V9BT~adrEqJI%3h9! z=|akXq?N$Y{wPg`ejjq6_<^k$q9_o>h5sk~ggb)qSda5RV@P47FQsnax|FWjzF(8- zNE`fDn(=@A>L9&*yq(4)DY?Su%14?jyBDvOL#JAIt9o~6p`X5Lw*x+lLZ`R5=%*z| zPlaD;pMSA8N=J|O((!?|1H*yk^9zHq8W0(q=q)&{K}46G`xnvCKjB88&;QK&{hE>O zP$Dkm*>es?Io#^YZ9J{86+V-WEf(`MQrPDY#_4Z9KTNNl?8zAP&0cUpa3MX5=OygA zMb%)z)X{88cXb*7viVZoKUgP3VjZ(}DGS3DJ{4#e1-0kc!um*{i@oi1^!PwVU?)wr z9k9HlgNzSnK3FLb0(xBKkKisuEq@l%i#e+UIb8XrTh+FrUP(At$o-%Wv$aBG ziUi>Y3d0)pREW-=0p(R1eK8B%ny`z5DsyXVkY?NCbo_8v+X25OKrZ;ORIvwq@LCZV z5;+=;0m7e&_@C$}g034I0h}TYw_8zJgp&@d$P%o9rRhdo0N0@+oB734le#Vcx!{NL z|N5o&{Dj;!?&=pq>^D_Q6Sd};U zt|9{}5a)2$jw*4?*6y_pvMaw71I6a|IYULhdLZT3p8xrS-PG4Ad#3HcY(7tO(<5;f zA6IMmD8!V}`DRVCxK-%f0$6V2se=USUAl^*w3k|rEK~@K3=btx9vOfw?MJqdUI}?v z=;+~|-5r?n0|j`HM%Kwi;|Q#v0{EB7%Gr?OQ@Z(tzf8N1Hc4BiiBDJDb=3Zp;bpq6 z@c6Xd?Q~uKlGde-Puty2S5iAo`6<(_qcUxLy5d0Xx;skF?Q)mNQM=kPj^N|GmZ8nG z6kA3B<(GoL)Xe{@7u@IHOT*#748u&TZCmz}f&1}->rvJy>89D1Y+#yL4r>_zXT>6) zh-x`hpQPIqj*=_H0)r`jS8!8u2{73mrw_7R7=bwtHDFAzBIJwgKjA0*rD17ccPXQT z>Ck^VuVuTG`)aXBV}-rkAEsYC-$~E3k{(F;eRbel15_w9*Epk#p;R3xL)$4jRsg=B zDD6}=XIDxO6e7QsZ5cRV0Lbr&u4JL6G6MFn(B3#L`aGSC5zrAMk@qS;;V1m1B4+$r zn`$uf(JNDIt&XoQ=V@Eo_DahCYrD_Cod!J~#6t&3894;$8!G1;01vORx~z7}4g=ts zEwP+tZLFY7#z95uY=skOF$6e!yE`EAMErJO+pYD8UL|}@`B{Iv6<2GHsH#r zwRBc~9^V~^$#boifBkYVy?nfrc1A;E%+r57;%k~>S}(O#VdZ3NepBa&TP{1NbRJo{ zmI3fAE?S+zllsvrZ3Rba0f%L%bMc@McLtd4la~LJz3uejp;iLhBYS@U1@{$a&j@%H z<5O|aA>6^%PGy=v7Ni~CNF#(l(p^WOE4(C7x` z{eG)Y%CFF;``hU^Jmm9aFKrJ;Htzk0Jx&CeV#5G8pHK(`Zc0Z_E7MTHViX?oftCTt zumYSY%$Dqg=bXVH?2nrZU_}^l!~pb}?Mb1f%!RfA?`9?=;HS_PK(Qs(XetY&`<@kh~71y$I$Zixp&**+!Mub;9Dy;Y|03ZVDVra-R z7)p16s$dDs6M>f)0a>{Z+#T2%rf>tv zU%%K-ue9tR4*K?hk6rDz)d2<|XOuRTJWKa=sPwp%VWk0Rqbkfay0j&0Lf~g`_ zn3n$+yCWHaZM!Bg)AoQ=c8f4mlty(c!3~7hs3d46`U(Gv;3Lrnr3VO2-^~&EZ^|Rm z+lp9YpP$8BST$_p@!qR6pQSXCMtpv_lYaYhKfQRcZ9fm@nSWm9!SnsL{LeWZwM5ke zL={|TR>RZQDcrTv0IX&QBaw2}uMck`LOI7srKYMy_ zc4fEvK6|i}e)sAyy?nTv2AcV~#plod*LTN^N1*_=hi@u`xW;ESs#s;MIj=DQ*8=N= zkXg`95Jk;Ni$asu{5^gBSA-w5>^a%nPV+v`34~aP>mO%QD}8m*L&V9-*VpEO+&DjK zvReFvKP%XHv(YB3@5AcSo5s2QV%CSJE4OGa3oug1=Lf^|*V^+x(InU(@-up}WE}w- zD-dJG+$}^pj%Y{wq8~Y2&d{T7tTg~ptQX?P(zgzgGLB5ucH06{!)Os;KOma!jM5Qz z2M)H=%zjF&bh+WG9S@Z?a&Md9S*Ho=PP>Z8(iMK6v?Ss!sEhBXpe|W9q0T^~w7LB3`Ccply5@m_nj|IsM@>ht~d^x+`&N4#rOhC%Tt zHMz*I0x{M;YodQn&A^&Qykk8KULI@4I3A)mINn8uy{(rvcCrf}4;1=Nr8G#Gl zER_1Gzt~E>xtwae_;G`;9`wyr31$I`yb$NoQSlRo{7%W+m(KeBXG0wo~c3~BXRn{FQMD&Q2w2Dbn`QK=d@uz7@@5PtI+F6)>21p;x$$tjG zN=b^wZUI3|7*awVX-dG!3b176GiRAAl%H7N5}4PX6PWA{)9K;1zi4#SPg}fDRK|hE z;^m^e59vxZ;z1|~>8arsuR^6IZcUk2XWWmFsPCtyE;%-$JGLt$xJ#Z-MvN~XXI(^G z5M%U8d7w-A7ffEN|9F_vv%_)v#gjdI(r+joa1-GKI6CQQI^p`0HH858NoPX&f#*Sw zoRei0Job8Y|20@3GDKxAU^y?WITKLHhZ_QTnR~qqMIr?o8R(_cKwmN?;O%Q_a0ue~V+x z$GAt|vH`$Gaq(~}-F%}J{Fhn*9I>JhQ{Eqleg?<`2UBO`p>x+3pcDlIZiR_hX1rIF z8vrRkL>ib`>N2Mz{E>p~1*o1b6i{pofc;KDIYu%9k7tYYMCI%%l_|f-o`$By1j}o3 z;SjTeUzB-U1fNY%metPJmgBzU`!RyL-K1Wt+W5!XHYTrx^U;^*?L6*7X7@2$Y0{EH zqE|z$USDkY($Dw%>BVSE+h*yJnDBy6|7ERERXSS518S{;WtGTaI;k+!m6)jxZ_NO( zO;=8Z55yn+4Okv?xEt?A1|a^1xHJIAax*)(4L~3`)SMi_oij!NhySav%E%j(ks=-` z?76t_%cA=1uSOMFlOeefrG`;)-*TCoAo7CJeI3fO+WFdYbjo)_VJ-Ph1pG*7i-7+o zRasSqE*>{*qK^WTSAw`KS)x4dLq6u$E$N0$Xd1K_fo&ytF-qw((UU%_S1GF!@C2-R zgc$e1si{qFB-$Dl27wg-uG<;_%#{bW3Rn%&iz3@KfNPs`_-QC(W6LIeqwazk@Xpf}Jc z=Gqm>c(hj&tv%bXWJVTY(Vq&9IuQln*HH^c-(}F@~liq;l`&cF38LG$KLBOe)-B3 zE?X%`92@g3xboXK!?eSlg1BUtLZv(w(@0V>t@Et|iO zM-ZS=_Q?&e))MKg1hBWQK$theL1j72!$B6XD5n(g~+cOROJ3PSvXN5E{sCnJcLBOJyEzCq1I<2of}(= zRm4Z`vcCxgFVg^_MTvaz2`a@?nE68!EsR6($`pC3yp~B> zaw+cBH}kMK9gD1OtZD*++fl}TMfzn#hi0Lwqr=*ug#1yaQ&)HAOzphu&`Mi+ad%OP z+Fwi7PG6Bld!O5bkPVZH^JsjnzXwu-q~q6YY{J|7}HBUG-bz=GOo~s~^G} zLF<}1;!3&+iehV2tA^{K+%PDUhTEqfBaUXlm6j(I6J+qxElast$?gd18i?eqbBn3~ z_j_Cwn-QUaIi$*zkyD!-?KsfncHh{Xdt34{XEUZ<16v8?PaEFO&L_C}xr<+jukr3XMeyhsG-9jzGFq5(azUN@q_SttgG`DqB8xNvSYuWN}XRscQK{0=cOb=PX~A z)wc^ZIg}1%4{ep-pCicON@nSE{w;K$F#L+Pi&Kk5x?E_Nm#-H4#UZ83=Oz*6?>O-P zM2Ov?J}#zQA~C1bfT@hhQd5AuF28vkm79b`Vndm*MugrswGk4Pl6hLIiIXBAf5${k zksf&Z`cos)mZ?ibTH+&3h@WZ2dX&RLXC zUD!;N8o{cI-MY9{p-o5B4tE6rVPby{=XL0e-B}=1|8s%j$x+&@#tW2pIyaQ{DvC?7NCxTRvKbI2E{UxV7w4^No4|woCgRRjZ^|yyKnvfAP$YHXDs4i{|1P-cVl&GR^cx>*wd!;~dj}K@_ zp3zpo8V#;iJss>@e++d39M!oDDH%1w4G|KdBy6U*cbF`z;KDXOW>7r5O*Yx!*4K33 z92#hAs$j#VKOo?*mw80NUt^`xFMiq8cM8FMbrpUof+5-%`(z#LAQAU83BY(Z_q+ zY3Fb!?LOX5yH9u1aDODlRlY6d6Pqo`N_p({d70x}eCCT@n$CM^b|L@KG%Y@yr>pNp z$7d;>U8Jq)%(fWT3A8ycN0s|ZopvdH#*jFTq!63aDg%Izwy-o7>ZntFY`6s7Se9Zb zL;XjPzb!V@%x;w=n>@cHQMh zkPF&`;^MaeW&kw#*slTk`K&T*XaLHe17G@&fk>$wh-K;V>&rXM>YoFv0J%x-#W^Sl z0udHi87}_!X#gzF4gqiAI)QUw|9!>JHl?u;Ju?^#(r{19`3K{)^LQ`qKH5!V{+V@u zCk+(d+mWIUkyUx5z*1qGy%(|sJm<|Si5ESvpXbLQwj$6LVsR$s$J2EA;UZlgou|do zB&Cx{>Yq;1V5$rfjh{nb(xWUVRDV_m{%nNA&7%7N4|pIgLU1I@NrhtY7a;Xr2Kh3| zQrdi7w!o@V?G3u>VC0HA7|Ed8!&xYA4&=n(jfn>$i5pOPJOvKRYi(%AXVOJ{gc;m- zm$oqjptBhOQNsY}Tp0jM?S6pY!~E!>j!0{Pl?Sg@o;q_`S$dz|W&`j+1Bs;NkAcW0 z(JIF44M3z)HW-kY#%=r@Sm9;>h!@p4a$)9cB4lsJtup{Sio*a<$@K=n!)ru%hIy5O zvh-1v?J7QXW{`pYu%Gs%@Q*$_Opm{Kl=hzQr{4Zpv;8nFdIRgY$>mJ5{7m`OUg}{} zbhW@tdjkI1l{9eU7mof!B1S^yi!xLwD~*LZX?ikGSFg`f|LYHF@a9;n0vQBZ4hAdR z3Jd@%ff)M%{9gMyu&%ccK0^eGUx{`reQZ=>WC~b4szCL-FeLWEM+|_{E>woi ziT66p9AI0Xr@}qBXorYYCevxv}Ky>cvVV8!YnLdD7<%yP9lC#M4J-E?1sT& zQbOVRi#hUROSv|~xKyY-++9Hp$e=N#^gO#^0~{h;M~{a%n9q;y^f=)z2EZZXEf(~1 zX#gInKPkdi0J(@-65s-4F&fy^0Q><1Acdid12qn92uN<#&U|jZ0?@fK01Fua)sDaP z@G%;V>;+k2=4*m*(2lzw15k3$@-U*vC66zbq*P)y*YbU?X}BlF+~3WWg+|$ADy5%XrJ2q%E#s$Js?WJAp!)mv0hu&l)%fkR5ot;nX!;yo`N4H*yW&fjvg05j{jIv&uLsd~xp^y;RYG5W zMmyT>r}6eM4ab@`^|k9Fw5`(Ew#tmK_$vP;w^=W=Dw}ZCl@&ua0!nM`lHK$RZj-|_ zP~{eth*6v+y#u-pz(XmEYWag2fH>dX0O-scfj+qbkl#)m#4va^xo3HpDrhNF8fO1q zp2;U^TYLEzFAvjaKYx;5Ncj(*?rDENOy`o}RBdrS@m0}6Zj^qZB|j@AR!JBUYzwmx zjn80aD=>!`VAMxs*9TBs&E|y9hP^Zy^wUiKOSx@8s+ZXJU(L0CI5|&a8G+s3zfGg> z-lyLA%m(t-U|?w(I2ZtL1M0}f>z$jWXpb5>Dx>x_!yR4u!F6f7;!9KpARl;L7H!H( zih(%T9jEcZcG^B1rQL_nb{ccdWvmsL47Ju>w!~))p!{aYH4bN@xeWCDR0iN^lCDHs z$7;8ei?oG7&;Y*T?U>mxR|Y^ZiHb_(QRCsahVy6`02#2)M1S4}K;+i|{32kr1<3Jr zj$DZOmeCbg834KI9{x4uRtBJAEC($n13)EdE%-C&rn5^e`M1*NKYyHl{kxax+2;>5 z@J99^&iV8*ot(|m>BS;l$UTn-crXAOakl4|Fx=*|CjptkkQm-7b*`c`9_6RZ+`t%~ zzE%cOdXyiUVg!bRv=Gg-%~)uFa_5FS0R4+;+WF=~+W(i=Y4_{z)8Kq+)w1fSie@aV zPPq)PZG}dAWR&r3-^V~*f?SMLzG@?VZPv#@Uog0a+vBwTU^nf`0Pj875sl3N40f6M z)h=Q&)l@&#GJnnmTjk}y^X%G-4Ejt=W*U!kt<)}0)koZM;cm-!$J$z*rKFVs4d;J3 zC#cLY(AJJcJ0Y)!lwqr}oZF9tSzqZ~8h}UYV@fasKvE&{fM!?|_i6w{J?U3A02^Kd z5S0eN?gB)-DCDDnD5MKran>0+Hw=Ihxd9-&j_2$MSHUe>h4i#om6!p?3_efeQ9u3S z7mw4ge)}>#ef2Q)wZxpL{%4vkF3#ua;zIj;8N;cJA^+lH|IMzYKeN@sW`7MdrRO;T zyI`dd z+E*SWR#|E*YdhLZGfIay**F;<8!SDq#csS##@g*VdOSzA_;VC zhK0}LYP3^YEOixsWUCB-v=9UE7z3a!as||p^66_DW5^Tu; zcwbXC;OMumwK4vW|LK4FFKRO>hj)^~a}tLoCZmX1?m~p}PvxiiEIv~kU14A;JPT$* ziqux7`1>OMJv9bjv+f=StYe6@R)TU4Ex*+tdFEcEv6f&z*Np!+zk8lueJiwJXCkdDEoG^D?j`%1X~V0m@RJejsA!V4Pma2!HYKK1;8D z^CCUeR%}~gJ?;7J;-~s?rsWiuMkcZVY98g+_?s(kQ4)PCWri>SY8$Q<%vn)sJGa>1 zPK$$`v>1()M#@Gzs~zp3FRN>=7lS_69e)=*ygr(%NL+Pg2E%Kfe%a!k~Iup|y04O9j|CmTZ|8G!%XG5{pVeHb=ThopDgN2XBu!26ne8>pXpqdL&@+v|sTAInUrLSvm`d?+&lNYvNZ54(t)7(U z3dJ|&*Lr}nlpBiQ0mP4o%m~Qc6e^9+;b=J4qYr2hy!%S45Ux3(~>d=E3c=j;)SVC)_>Fx`z*U($9bMEdBaF ze3qX7)nnU!F;Zm&&Co#BptB!8SncI+wwK z7k5m!i*mUmL%KIMgSudKYsPkw>`!Ph1X=k_cKaZy`+_)@un>LMwJm)^{B;Jv+pFf# z#mf*8oJHZS41kF1SJxVVoN= z@mMg5-$%{}R~oKKOb6N~jE3n_TZf^RucOm*kFTzn=Q`Vo*1-`}!dlK?{S@AIGVzO` z;ATrGvP4-K_<{meSPrE98CNEoZaBpg81e2=1!lIpWCe=wVHKGy{+k-i85Cz1;wC3$$qfsEzA!_ETrkiWNW& ze4eqn0>A*k+@d%K=K^KODz_n*8I9sAfEyYB9XXQ*c6MP-O2znn%zvqx2}h_D|gEL-{cfDE~CC1ZG+t*g!?;QGSg!^7#cpX85e|BCe&_ znev%w_;Wa&A%C=2M4X0#$*U-CU6}#M@m#|&BQPAKi3TsLfW70hG|~!$6^`{uzAa|$ z0-xLx>(EHkP7cokl@CWpTr;E@W@AcqM8Q$y#}8$Iwe|Y#zj>YxpY7S7W1QOx3d2i# zDy=f1_-ZZdJMyVT)NClaW_h`1DuI3f%nShIF#oM~Cc=y`0OCgS*iQcEvL4;O+!v=tnaEIb(P?H2~yrJ-Y_mFyl>WIjU>4K?Yy0dr<<~%*VhH7bsAc|dfBiW9?l(`;1Aa$AyJ^dHc_ziz zs><6>Z9{vo4-nb&0SyvgBbNQX3YclCzyPS#(sXN>CYdgh)8uj}mWo^S(uKyu#juyo zWQdM__9T7y;z^qBj_n#uKVOeQeqZSnEtMUWp9*21i-xeEOgBfx* z(XXEDr{8|@Fui!PZL=@8`Hs%!=}d#}!W5qeex&^Jqx=^#3g@DU+!HA)ijQ&NVIW&6 z$bi_a&lDqmK2W)sCn<5$m}*FS^jBvaSPJtv#8#e6)~G;ki;~x#_9KsYa$yi$YNnrS z8=xHa2dZPq)khh$oaNyld!Y$^ruecS0!tyDa2fOig=AQgDqWc&_eiAGR73mYwUw7- zi>3JC!7%;1-#tzL{;!{$GF1-EP;Vrq+kK`>&wpl}|};`#t9i>VC9q&GZ%chCcqo1hPFHpnY6|QA>diko+p-=~9M7}c z#Ys9@{+MyhZ^VEOwm#sEubtIDGG-WozGT?Z3ZXB#tQcb||M_p8*+1fP4f8@Y!7S;VFF4xdnQ|LtG42Kfr(^2XIrI} zArEPB%XP@bSnUhk4Cgk8`dTHM@VIC#Pv)-rjEN-YjSRpofRa`zgJ6w4FYCG)~*nzKgR- zI^lMol!qB;GSSSh<>y4R{l(cunrK@v(QLr=0iXRb0POj-H`M^0YxF|=YS6Fh`+%&7 zS%iyvI`@=*0BLabHN*AghPVxtuX5S#DDF%5R8C(?(K{DO9-dy?(w2Zb1k6wa$vrwd zOM{DxG*gcr9qy&$2M1|78mK9hhcc}>=ravEx$!sJ?HE(ETa8y%Rd$Iar>-9G> z08jUKR3{l*?x?737b0G;!n+Z!=GqEan@VjVwnIj=g^0GwX=ROdR-0+7)MvY-bbW1| zAl%kw;$gQ~=?@tY69{V{Be2D+Wh;-%bl&f$x6dA=*FSrjj-Nb`aUEK_^|a66sRFB~ z{9)`Ib*qNUeU4}c(8#ta3S-d4zv&@)t(BeS5m-c2*^96+5NpvY_aov~&1R7CQ(wyf zNZ5fo_h8&lFCGjNcbT|N$DaR80}$n(YM@M|fEQ9g9{jNjf3_l!QLwmtQ4rE#whLJ* zfRzO^)k1^Bo(vRm0gGqRnT_oJzRoEBP*c$ew}@L#tOo3iKgf&%q(LWn22y?}4PyB* z0DZ}b@(*RCa8G2}KFA21?u`?_Enu+rRCoKuTxU<+zD=(KrA3MMtOe~aLZ+t=hv_#z zJ4i1M$5LD^`%k9X0B{XN$}B~+dW*Kyj&3|vZ&P-Z9=|H3_VMc^o>rYFk|7Y;HIq#J z>BO#|(0*Lp8(=V$-&PSmIIO+dLT$^a(#AZP_3rUOdi(TYI^Wqe-&99;6MDPWS)VKO)c|4^Ysj+#l|*Dyr>U>azdw@lYv4WE?rF)a zC8uWB3(>g-ohi7HW_g`2P<|=;L<5bb=|qEMCgo%Tv9l>Wv%QT`+bUrYW*V$B<+lrc z%v?5reWr&n0xbOp8hqM)*vmisR-aQ(aq&EWtr`~0TCM=SFaVnEY;a=)v~uCr6|0Zq z?O{6E+fH*WV{I9S(osgVN2ZOjDnm4I8_ZP9J~m_ds)Kzx7g$mLhx>!{%NM)p=Z{7* zf@*6SuQL%BU3sk9XMd%Yp~V2=rVXgS&D=)nOv20%l;ruH+$i+(O2AfA*?{(Q9PJgx znw7y=Y4>D^_9V|hZ9LI-0E2pbc#!5pdkj(AF4d~t9#&`0?(M>j+Pp$DS3RrOWd7XN zE=Q#Cpm46ksw5pNfZJ8$eu21%)*)WICKA_wna7zNSDN*E>BYe~?aRVr`RyW~_WL|l z#%}?5%-4R}s{w+-JINSmuyEyiCZ(N8S>v%&zda?T*O_Ooxle8Psx_$mR%5i86k6^r ztq>qv4Jh46c}7Y%lz%9N7>Kww(9<~gi-&StYG&hhp=7Wp1|=T@dw>yOP-|<#kArx^ zaH=*qlM%Ss8QJYEYc0xE`PgZ*)fv@5xi!cSQ=OukLd*w@N2>4FEUuCkUg_sgcG9n& z?xsUor7IaQ6rT&K+%-WVuWX~Pc7xO(P<0aKj|C#}c~ zsq&Ja?Zp)aR_%;&X3sxTn~r2CFv1t(VS0bKosM_M_5c>!NoEwT(-=(omZ4N-ll=IQ z`v|O(wL`-;L&dOzb5ZUc;9MH)mnsvb&}I5)B=XYEJ*@y9ZEvNa%s4;k<%d1Y@V0uC zj$r_5!U(t_m`Xusrr56ZI>`WV1sR3MI5-h+PoSy!_@!QdJQ594Pow{8xaAk-G=K)m zGgA7oXdAbT!XQXtLk6VCW`8>~OF^0$b!M70>C3r{ozC^DK+0$oMnGq_1|q*s5C#Gx$}Lr24fM6-@2Sn~ zdVWNf%k_Ad>G_W@Z^Hk$lOt(cNl{XYWenmNyfv{D9c-ox;5!(WYtpaB(klk^RtSpte z(1ju3+5j@04M%ChbM8G%fND=WiOLm`wcl;AB5$-jZI1F-GPwt8mxnvU^k_$IqaYrL zn)9L~mMk*9)P=h!EXVm_mTjR}6-a@r$EfA^i+=fHpwj!b0L7v7K}svDZqE-~$uQb= z0j-v}P>8!H#Yg#vQvQ)vPD55uGDh&QCpMM8F9R^pwu+fyB275fit1!nTPyV&cVFx` z14dNR4w>Qzpu8}v8Quss?sK`Y2ocbUl4+$gEgA2{0Nh0WvV6~-k(oqW zS{2mjUXdD+#|FD)$Ytxyt*C9yzN5Ca<{ zz!o5u{mcyGVc#BRdHi@cJ$|y69@={Ychd0TZt9DAj}B7r@j<#$_*~1%#Wv5n%Mggi zSjs*YKbZ(SV*~~&%YIg^cxG{kl|!E;sN(E)m&jHKwh~}zs{yRAiHzN(KS*Z)@Qm_qVk2>Zg5{(NbF4oGlku-SNlr-k$u^ zY;VTENcEA@^9pv9+n4av*A>>um-85iD=Dmz`3sUUz$k2Smw~g$uL)oXd?nxp!+C7+ z`-%w{S0^$~+9s+kPe)^|uCxlUiu<<8&o%0{YPK3_R<$MYNvaDu*SgGsjx-Tu!5TE) zD^4X^*$lTg0IO?rdsGtQU|8h z{&w1Wu$L|$?Wc*1z^RPFbZ@M!LNDz|$~`gORRJTF$MX&nITITS838GNtOlw*DD5CW z*9%Y#jDg*TR9bEgvTx<3BeWCk1D^_A-IUvNnbx71#$6t!X0mekhrRSb+aMm^GUZoW z&ot9B+uQwo6dl4Kh%VJXcJYw@pkGA3ymzu|0Wt#d)MSIiA6{`WkQD*pY>#|vklnT= zfTZyFrTmb&xurPcnF`M0r+Q#iry}0qWCl}I*L4NZ1y8yf)>Jy!*+OoGGW$w4u}>*b zO#rQ^wmxkRc&)4Oosb!;hJIDlD;x8huM*@o8FDwN6GobW_M}bx2Adg@Jw3BGv%Ed4 z4@s%w7iux<)A9Zw33`^7{5nsiVAE_USn@x3u#+A=-B0@uchX2p-7TK-urJC>W6Hz8 zk+NUPAT0KF(z#X#r;oI(+#RKn2G+iK?P+?Enb3BHS2v4PM{O8n1YCjrLZXPX$Ql|V zObWtv0R}yHD5h$Rsp`xVgbc9y1C*zt0v_q-OcB(D?l`r(WTNd5EiS(9tL}Y?$E+XE z`1>1tq+l|p_6tdc+XX-o#=sx6inLr8klTpufs;LAJweG)`pl!^gW>R%gBcKYn70vz z!mlUzvj(0gRvGcU0e1t2_?3mp1Y>GXWaf&mY?~r}WttYkR@^&G>7BE^jJ8!y=`QWV z%?*H+gVL$B@RXddfn{~4A^hDe%0cX)RI|rKc%%(NKE2*m+BO5w)ACwlK%LF4I{T%b z28706R(KKd5bp4+DR`kLKfsx*g*4~ni_%)Y5Bllh{y05;G)_BO{%`SnbCqou3Nb2J zh)gVLc}~EdR+BuJT&+LYPUp5A7^iJ5FL}aoSMrXf0C_-$zx)`jp_VR2+A3fKFes+{ z;>T=nF9VUX+p`8x9>CP?;z~2EMlQWUlZb_pUA%(2pn8?CR4bC!AQLT}T{^Hpv3jcX zq3Xj5fY-RQQsKg${ZtyoMbV8=^6XcCk;JTMYhc-P=_Q%sW9_rWS2Jj5Z9g@&|L7AB-r={drO zQC7Xy-}v|(gDh7#NQSnVJPNP zAErYYfP-!A@2RtR+660?6xAT`#t!0uqS+OFjX5fECJlMNH%w>yTI_ER(l&Pyw6b6Y zz~c(MzKI=0C@@urhdnHm72cM z5{i8Vg$&_Ak{^+&b5b>EV!vI`N6Mx^vwW5hEn{`{&Vnuy7MOTIhE5jRU zR=2mI6}g-`dO43Dg08_D1MtIPZ6mAzl^u$h{aGg4QXJ*b*ke+*S=$s}aYoGkBDDa& z0Q3L)!>!${l%IFd_q1FeYu4Y>=-$@Wf`1R@Ar@|L`4ZyN9vih;HDE38O-~$81Y$IJ zOUsFr{%mKMF0~36VFaZ03QB$cV^A{K46eLJ_K}}*G7n!u`@qNT%W4e3W}SVXpvqBg zp1olE!t)Kxtp0Oo6y5jvw%3wwl0QfNSpO>1`XObWf zQdG=Q!0lxC?t*Af$*W{_pO(IL!rY?A#uPKDgn-d0r zw=VIt-9iSye(6V@O*RMx$0!irCKNl98HCz6G`0&i!xKhY<-=d*4dY>P%CDK7^32HS zjA1ZB>5aEYXAHXkvQT8<%1^r%%|IQ4mQjaxwp`V|n}Xh1{@@n~VUY~{)V7?H+!Igc9f@%lhm6s`@}3@dk}wy5wRN0#e0aMRubd^0dqzGA`c?TqsH zbr&g~^@S^&&&KT6Q9M^{pWX3$8qPl3W596}u5`8~kUNyv+(9{v{8fBTL%CIX?sp=+ zh;Z7@+BCPN;_W&PO_%G(C)c?8bVGdXe1}GF!}`&kt3YX+ml&x%hlX}=Cm_U^JA(7M z&O(rXKpB2lV9gk`p;M;NQI;3y$njP-+9G1G+AY33pqLqhY+#~1@VAuY)rZ-Z(aZE( zDZXeZzxM3C(ZKEi3{Xl_Ws#DzW#E^1Y#+GpV%J`fD+B(7nB0YNvZu@B?rYi~j73^q z3{*~^)rJTI;425uAHZ)vP{};Zt*s4P9UHV5$=n9H2?ejGyYeBkj1nreyp9~W6z2g{ z35x33DogyOw<5JSN^A<96&YpAebZ3%oX*2*e>uB1m6vS>Gk5qyndP=H+~KFp%rD}N zwCvY8$c=#75aE@cF@wRk-&a7bAD|8}NY?-Di7y(TCjt^cqJqM*S=KKr6zO zR7>~18j?2>_jg9Aw>{QsU?hW}^2`7!Vb&zBpG@pDdbBjBsEKbzorVOxstl=w?}+pZbesyeV6(%D8Sp8v04$ z(O>R&rA1Lg`6ImKN4)LnEw1K8Ui^NAS3-r6w8^00rL=Z8#rWj25$VKFb)x;O4RgDL zx&=IdBhBJXTUdM|3Ye0Lkat6L7=UF2|4$9(U1rQ~ z3A~bJRT+dD8)nGO0I1XRl;m!vsGNg}J7;}t=9j{2xexVtUDWO^Tb4H55B5s40~xaLnimm)ubFP0Y|JUAU{6 zpFBmlk?Lz(1BiH?%lL@HIN0q{@o^(5SDn`wZ6l!_b1GjRO!(272u3lM=>ffyQ-qC&!ok2&(%B@76nkVmE=lYs?nS}>3 z0z)a}fQxi{+bQjDru!`Q}fDg%8im|C2B0o6=x4)p{QmYAi_P)Na@^AWFl>qFURGyrJu8x5wkb_ z?qmZ&aWN=}Q^Ly6xQHJb*{wmPrG05Ln|Rb6Z1?g2GFgp>H!@5w7+%ggFpo}v5 zIv|h9w5brlGB~K-&0xZ+Dm03r;Px@0;;IG&xqQ3emdT7f3YV4627?D0+3YC=G5enD zz+}rsK27}g8ml2jfMq#9D%c&Tg$w{MkmO%~8SVC?9r3ljI8|5vXaOY3QrS_-HOBn8 z1Fn)EYR2cc1Uur%b%wYFSzU)v8e2{(A6o|BSNn3bL8^-z1r1#Jtp9xNX-w8F`6JWx#h z%FosUcZ7u-MMim9`s-YihpVwFIdIc%E)(%JFKo~<+H=|lHK6L^62Wy8*EFQ8Ss+qR1j< zc8Io#6+!j80Sp3RD7ul_Hut3)2Jthc4pKbrFLJ*GGNRoS4iRq#LJ>NfK_Gp!qlgKE zG>jL1nK@F;SRJaht)AjwpC-J0IT|&hn{8jhbTqrW&@N>i8hn`8GT}CvJjPJE%Q9L9 zAd)Ew11YEE#LQC#2(_zZeKUlR6$d%8{LMh1@}ta<#M9}J2Rl!2oiYg3p(x5gZu?EQ zMJr5hCv~mPEYf*t2nGN{5X6dr$8vkaQCjTprL$*`($R~@>FiL(KudcDDa%HG^N;vz zz*RE~%E-UiYQV)(c6WP_zWD4g{nZx_>~F7GO-z(D{@lVJJ62A~!C+(X`WTN+6~bV~jj<0R|7(X*f<)r&GBvFnrpc zAnO)S)7Zs8)d@nm74A!Ug+r#~qCDd}5$eVb*5w zWu})ADAJk%KpurLF2VysaMSVdZ4p8}0?bw)rbk3T%4ZJfNPB7OmA zkKrn9kK~aBgP;LmFXz-Cv3K<;*e*7TY)ha3Q!36{5%7Ed^QQ;t=!+-m_~(z)#gl#e zcVBx!D60T1cX`y5y{|v$B6pt6xFWv4vz>nSvxn)IzkHmYJm0lD3>WGo{;0x~Uk1g_ zl9gMP)sK@3qRO$g2_wLuNA{6q=5biq4=hx)X}MG05s9uikE`Y9zkIU@Yrn6wurN}6Qo4s zCoG4<%T|YW&iO=47TWmP&&lb36yFShDOFwl3QGZwrC{U?T7_J|3YIHTr$<_6VuqlI z0UqNhMe+VyLQdM`aqn2y9$k@L;-L5peiWDA#-FK5D3@7u4Jv!@UM2>CT{IK%lhx(Q zs}a?DeV%ETd!WI_Z9D#3?m|oVvtK+(=f8QLre8cxv&Xv%*A@YVmGaLfi!_~R^&u<7 zUs;XDBm3#_FMj(X{p#PoN{?P0q$?SYiKh8;83x|nK9$fjNx=kXzbw??=Ngs7Grr7{ zq4@fWFb+Ojkq8;LWkC2LQM8Sx%Wgke9Cht#zZ)Z%H1_N-KfO zxkN?DrDSFdAl0EDOB?l6y+}{}s>)Ci6daAub#KPkX$be3-znnMY@Ws_@(>>+gQgRI zk3Z5jF#aZAsSIAvKQDC2+YVDL%PNBGmu9tNx)5n@3-VVyi+>B-t8S~lJg7ti z*peNxPYv3K86jqcGOi8c+Iayj6r4R?ev4$ktPqup0XW(k$iQjkB)NGs7_ymLbwK%j zMZj6wrWJr+fRjJ>L$!A|ja69YUDZt#3JX|e2|KU}7%wJyr zkDsT{|1Y1X&;G~H(zCyLmbRbmrkR%Lr&9dm^F=zpy>KMR-aM?hAb)F- zldUugKd%{Qsk+VGL)Eo1kSlR*g7qi{w)MQ+l*s_{cjviLJL(P6F@Mp;C{KKC z+vCe`s~6SHNOdwLR9MW`^oJQ|@eJiQ<*@jmwm-t0n91!&S|a?uBJjA1zlbnjY57>- zRc*XUnisYB)^e%PVE`Ozo|=VK zz@3gNX z`UtRcD6_>s!VS563sX%Bu?2 z_EgGNz9gt>t-N*)zq_J+9d#UuVO5ozgI9wTPUXj#aL#0(%#)yI`I}?q3ZO(38}MRo zSKvzAkrfRPm6^(M($_4cFs=n?6q?fVAN&4_t-K;I(yBmb-ouNc~6R~@^}UL=`3A*n56UfQhZ28;6fY!3sZj0 z^bi*g<@Z-$;TP##&HgA$HUcqI+0T9@?@;wR)GB0O#Lt&wBE`0WRXtPo;Z1Q}UMo`v zuK%45dg+4<)QN2c6ruXqZx{5%P}%G&1Hi`yw}{!=W^BN@A~KPe!H&_ep|6Nc`DCUI zx6;~VueJ-rQ^6xFoVN8xhtjHrzpJ?_-G-Trs;=^G(UzWX|A->3oZF4 z{?}v>hQR-iFrO7>20`-h`Z61U3{dK#F$?*t%Vn@s$6d|(2U7kK_o^}~rC`9vpf3h) z4!ILb9;F&a1Q$`!;@My;9ZSCVqmfo)(x@=99-T#0e!G~N0}PT^-iG2sq_uNSTcjyx zK}(mVilezKUM^8A{j~tJ{Jfc&KQnnC1Hj!BGq#dzp?sAQkX+6WqD|{|ZO^>7+Zs1{ zd`h$oKvY-4xU)K!B3clQS|z#%v{=HHOzm*~=m|+w%{-r|`Xa10sKPeSWr!ok*F$5?$1JjkC0q--F zi)Rnd$UoAa|G~~E?P{sYu(VmR`qZ%Z02YWgyH}{e{ZZNQq8^f2Yv@xc)%%@sIvNe_ zujKic1`x zA?V9ku!Qx&tXk6=RNkqDXtL#)+X7AnHx=LpKu#F|9+o=U9i{i$SD%aqcG2JdmrsV5 zyD|gSZJ@o28Eork44DGya3kj#Ub8astaOg6(~>{P!(;T~H|19wVPNAG@jUg%7V7!I zZh9;k`Joo=XzflJjh1p=?J65A$_k~RaNQ2Z-wUZ%7TKM{qkpS-^UHb5Qo9X+klEMp zmMsG1&K3Sa5CvOfAQrMo9!Ry~H~iielI=RAEg7$T0E^7&j-*H zJ|t)fe08rheU3)IZh&atdP*pH$Yq7-pl|$;=1MD-sa65};pTf8f@7^%WKwPQW&fBg z@{4xla|$I6e-Ni;SoX_axO+L?oi$G*mC3aMlz&?@{?q+&dUCj(_GF-VEZoXgeX5VD z)~K_bHUZUz+IS;XMU*4g=BRlE;Pk1m(g2hKS>t7Q1qE1pEk)b`v|qHP5O*WW2C?GG z0D}UMM=tLW$*Y>prTC}gQ96>suo}P!u;(90+3oMQFalZmZND$Fx5rMkXw`W!o2G>f z!9q*+g%o$8<@!Q~U~zt~W&fF!UB*C5e&|XDU?G~z2+Xunn264f&qU|xLI&YX+XU$R zY_2VU-v!|5L3>dqGrnYTBfuV%nIGl%I|8fq$XJWn6)rd?kCqKsaAE?Y99`~jR+A7Yiz-8F1cQlvL# zfy}Gq*NGh8=6!$Y7GR|TDCPKQGOd91-5S$mSks_ng=lo%$$z9h-uIe0kF_l2nR}Gq zwgXyPbIXtI0owu$!9YsM|MO!6cxU`2D}W#=KTGl?BRQ{dQgoZoiCU1%Lt2nWbuM3z$(KXg~ezU?=VK z%caFkX|zhQW%Cb==2$nx?Nw%ZGXgTeM-R8tJJGQej{ge9(8cu^e<+K5%AENv)r)|v zWv-}MSt}4H5)W2TG2{D>j?}Igdd2MzN9oyv{q*ATUfSCkNa1|h&l-!nDOcL>E|q;P zOt?&IhvttCEj6nf_*y9GDyw$W1~fJeUU-6P#Ok1K>Kb;@%fDttxo*LQCWO4uzWMuu z?etzo;9M&K;>S|@Z7HDL9nc`*PJulpYz85(1h@_$g@tS@aK=Twi!_%q&$+;-Wj(X~ zRI34I{0nUl&Se-(`8C^La62&5#1x;4ef~$K{#V%rX%J$ZG+Ei~Z!WDsUtoFz`}&fdV^aVWnT0gXUsB!aIm$8CGZ#|$55$dY?fb1MwR zS6^aKZM7jcw@weV8hmcbe~=D%enW-XAFC*0{#78|a$4(dyEw!LSh+e> zX>-Pqr;^KrgcPDdU<%D((T4e4O7!7yC!MO}=RNKDG|+}pJf8j=YLK`Q$ax@z^Y66$ zy_Ee8H3ood0aE-c8GuXCf{T3G*V~0Y(FBtJLg5ogGyX(-{izh+{w7O`&-?Q28Gi$})c(;*0uJk4DEtklX!VEd z;6d#V!>1lXP?Irom|L*^&>@U~y-RRQtFN8ybgr5A_{na%(EfWq7)t4Q&AQSnof!iN z zRyan0M}KWAV1v*1r?|}sumqRlR(~p?{ri=a`ckwI&CjLW3WH{HPw{735U!>EOh&}_ z`z-faj`}j+6d#3$un42=cTmle-U@2?5dwn*th%D%QshibcLPY%+{=MU0jtw6T786~tmOMh6HnUSa6=>H1q?~QC3sxFn5Vs2b-*039nAN4& zC^<7cMgXPfUuNu2DMgk}#>3xTr@^WffIZSH(m2;@fIE>a`PuU`h*gH#^dQgtkN3Cj z{{v+y6vxsw>bJ6Wx^d$So1_Gmp83f`z zJu;bS-ZXNX?uZD_&ebRrWwJXOorpxBY^`Oi;t;6pR2x`X&C&}QyerlHO53zF z;_ug$S=G1YP#)lHHS7;mWJKbRTzGNIa5PA}d!uxyHhcVNFFh4c&im@);do#xNbZ`% z^A*vQrZZh2(geQ;WZ6G1ZYOa6KmMox{9ouB_Mfc4>}{z2tz|Zk+2S-2oyY|7E4LUB zw*R{ea{dsX$20k(&wZI>`(>5~=X0~H@Re1!up*QB#mDNV!NP+o3k|MCelaHl!v?1+ z$Sh#vjWB&3%4hx@W><{xs?CB5KZ+jrob7DkUXCyO+3Pc@OZl0R6fUvsmegY@zzZ#p z9~|u1+lq~!rEy8DGFGA6;kH@JeD01lmLtRic_rPA9Ih6zb8kzEJe0DJN9y!py3`io zYCN=#nIiH&-#chhNloqh6LNz>@r=!0pgNL{FB*uY=F^#UcG>#_M+Sd#hA|PiB zFV~3(()5weROpc${0}7`;z~ZDryOycF}08t2q7Ej47_hp$fgCA>8xs1ZeK2`$CY@V^5(u?&_ z>m3W=x&SLH*<<+$zmnCT%K-8g=1VE@<&(XXvGowbcV#@ccX_KbD+9O+rvJYBs*JJ6bfOwP2x`KvKvt#(y23zac@uOd z?+UDVTkGN|&evn>zy7!Xt`+K){aA&4DgRH8!Wg?K&^%ijuvh7W!oJoFc&syTP_-2r z*2EGz$kz6+0~fUD7Il#&=EV$;CC3X1u%ozazw^1tx%QRep1y*d#A5LX#W3)^I{VEY zb=9)8cQH%7Q-8*PpnW_)V`JuBDBjC;t8RZMjvF4v3!ajZv%;{%Y$-_VPxM)>ES?=L zHi9<-!-qk-qru7#d-nGZ4BTU#k;BH12t@i@K^d`gGzq`Ac&%~#<&;$b4>w6a z)jYHZ2|332CocYkwsQqw4G!TBlAm*g*r#mNf<6jL#vzm+3~d>*gmRh3l+&7l!JvV` zZ9jWO7!ll#;`Sh~{Ca+nE}k8v>7$*r(2|rDfweG$4`L5%XN4I_!L>rL_uOGLjPgET zasK?d-`-;Y^B(|X?Qi*ifR|c%@T%}fdG_Kj!vM3DKN091R{>8WU_EY-bOX?qqTJ`T zFv#eiDlF2Jl;f%)ScOA^nl-NSlg74S8gyo0*$OdWMf{oSK*V)X1~)Cno18OywVl$U zUE*W?Mt{T6oZ^Q=VC-7)8SeBWDQ-icbbm4+c2SpgXeaA50D-7Ts8V&lL4mi&ie@a! zm3v)-yO_1GWjY3!U1gS%+Jz}*6Dj7U_TFPaFZ|4zXW+(e& zQDX~NNVL`f{6!)+B5h$a zg3aPw+1K(>BZom~SLC*345XZM&C(0)GZ$JFBq{Bd_Mkl(1>XGA*M7CXJ4`+8JGXZG za`)3v?yKp&2D zh*?Q9HCx(eT&4GFwDKAN7R1vvQTnfI=jCevTj{YFcU}WPmJ-q7MTyI0`!Os&zG_hD zMA#PhpNouad2FAr_Aro6M#A18%PgcpX&0CHQH};5dp_fzZ&BF_L59ShlvG{t+loLf zhTmH^#&tbJ!$tWKXzib2L4}+*h4H-y)Dl->8eFt2V8~hZ5kW;=P{=51cYLh8K5>uEkFmB zmdyNIC&)@_F#DvkneB&C@Zq5TpMS;0K(w!sLUiV36LxpNRuAIc5U{RG4fq5~_ooGN z8fAYM+Ok(}Wuj*O2{@-P^YzLkw|(|o`14Wec&w{4I*o0WWAA*n&D z4tOJTc)6&D@*63{wg6hh@hBgUo|1jsD{#Zc?=}Ekt!HbKI-+S0m$9nD%3P~xRc`ZDQSPv#GT8+o<*s=|cu7hV*3l@t z4aVKzGg5ZrvUF9#PDJir-r+;iOsyc532qLa+@)RauBfOnSk>y z`8%qTi+1);jV7O(N>F-Jg4I~+hbW+GSk6SO2B`v_2Eg)1s^Hnlw`N7$HRU!6UPdmc zLN_;W-Xd;2(+$urv*x|T+6GSyqD&cECd!rf|qLz%8bS6N-W!73hvTOYf(f`_HsrCA>a1!jwL@N&VdZ zG9t|Qn6E3<{iBk-g)%(cWmt)I(zerw|3)?JD)bhJ@@~Vfly$A_Ya_kvMjJ$c2(>ZQ zsj!Ao2das_jf%gIL+5)v@3j{JZzkG$+?-ceEgiY8_lKCN3&x?uZ7N-cmKQ`&y&b4S zYWne`DQWh_2(H@9sai^lszGQ2@eY7RcHSB{V351MGmFI$u@S%EbVF>ye`6Uo!$ubY z?+dq+yUumXX1x)b?dz^Otd6NeZRgs7dN|ej9i{uGaO-|Ew9CIKyawyh)drSpQ+dl| zxJ8?k+l8fEw`0@5O<82Sc)#cp;*NFuqz2$-pl0{bb2kD#cHh1B<3+UaD*AKA4=evC zF8vP0tu_D~GQFv~Y$~g-AX!S*dFs5j`?j*H@;yU?Vkz1t9h$Tj#5;wn2y*D$xH4-X zFgr6mOO`s9UCLC-xQgxqFaPGBRfubzR(H-G+<@gq?lxIWi*np`H4%~wvWO*PVx|Z3#>K(*VM3Ri;sw|5+W?u*xO?X>)Io-R9TCG zVGpMewi1es^_{KpN_PwJEVx;DIZGQR$Db2ElE9z79aeNm7pw!_2{z32@o|GHv~lY# zK&vh89X7wOQmhtkS@$0Vm8>|Zp8GO#U@P=KP;$L5?(HkmUE|@t%DNL)3bC1Vma1L3 zd#hN<=o+T2Xj6|Icw1e(^EH5*7JN+=YvjuLXA_X2rt+%vbwnMS^`OL>nm(m0RtzN~ zO$~f?n&miALl*O9D#M#}8-x_%kdHU}ETIT8Ly+B_K;||XgMxDSebf~=*Wgj}ugFr| z0c$I)XvMdN$A&Pemp+xuS$+#Mzn^Z4AMr&%aEF@xga&?U$)C`Ll?LFBhGhxY^21s- zEand}WSdgfzHnu#W)RVe)qtZTtSi|^Mj`DTP;#m7_1lF>t9w3+8Z)@H)eneUws%?E zK-+&m$O3*G<_&bQztIZdmTh@0OfVfP{)ME3eXMc~Mf(SEm;MT+FmdU-1J&{@yPLd} zr#st61I69-M>;Fp6GkkXdI3oSd7xf^*vp)Hyx{YN_rI z!LyUEHH_jiEukaqKIALq=_ z8kr;fnok2EhfY2~@OxCigO#&IcxcMi`f>4HL`#F^#535izK>lWcQxzWY zux2SW+GRPpKae@wvH9)+4=c%Q=?Ko{Crap!EkAWi5L_)R0yA3PjZlr3Koq7hYc9Oe z-w|POKfW^i_16HD+RmRGrI?P}$h`m%i2XQhcvM+u8DO*G~u$;xPW+9lpJm%yNO#0*m(WP@_DXc3mimx#D(oyU#M3QgQLmLd^32*ip7Qz*mRV z`*KpYsr)R*RTl;UtD)#aC06Wzee| z*36bdnbx+3$N3`ao^X@KSK9UE!t5pte>}KVdy=Wj81-J!24M_iOmrq|Fl<5Lr9oYl z?2cF={RX&UE=%rtZd;X=24H0+t|{q;Ragx%GJ~JJ*MW3FVFVfBE=TcwdTc z_wlBPnW&nTt|O(TYSX`>UloJW$C&Jxj7MKN+gBac44+i1P39xhqOu^`~8@>O+B0vmzU#(*V%W z@ake0#Y9|`U&&FN+bGjqkIhpWg1N}rC)~*EieKeZph9s%!c5b z$ry7scYz$04;!P(b_aO=O5z^`f6*5KV;@+J9St1*v+ru=|J_$n{;TgMDXmdgTtRaY z{}0G{6XNg0bVeW>#8o+2Nc*or(jwd3&ioyDPjOuDA6h%&&i~P9@zIXfR%%ygZ4|hx;{K@6u3Q5vBPwkD*Z=n4)t*=BVzN-9 zU!^{OgRP9wNSyh5Y%ZWpuP)Pj@%&nJe7Thdn$iYJYgr0hUu+ZpRG9irglnwxBZa*X z-yM;RaiTd5MARirO%p z+u2W>g5+j(y-0)I%4w8I7%nM(ua^e=EqTA6)H&L+D70#Wo8$Jk1j{m=M;+3Xr!5`+ zYD8K2(e@rj5OOWlKMRaAhE-v`tzIUjRHIo=DYx~Bvii7VY!c(;sFf6<#A>rk%cD?F zZvAXogm%ByBi_?qhni0lSvuJu{{B6su@XKTr1Y8Sp@c(%xuq=2aaZu_DnEu>AXc)} zSFM$%I=_)Y{BnAgjuw66G3ZG*3$D~ZCBSyj563m1jo zeV`5j4Ad-m6D6Y(gd1~DU@{sLf)#NkVf3Y*J;}>oj`u{SAk2ECSA(|)#Ky>FZHhW| z6d1DB$JK~drDkJefHn@h{4YOZBuor0n?yvI5u@F?&3!tFpYP|Y45>)8Xt^Pe}9lJccuJl2GW@k+!6<+ovWP| zSN$}bsSVGj>FRir(ua%GKboYibNOWy%%G@5TSc%cpv~xCd#L4$8vtLvhXH_>dMwPUYDB%)?LRw6XFq?O zzWLeX^!?$!W)mseRLe#!9aWsO#CTE)15{r+1-T6JprGC`kk3XYgygJYoT_9YIq6(6 z-KbEGEr-R2TH+sQuiqaJq!>f>$vnOO>L`8rx8J7eAK#@XXOr|;R%r*buP<^rXX9k< z!2KHl&q#f(56oLIqdc{@_ktJbN7YZ^)NY|pnakj^0$>%h`(Q^(e~=!$d|=9NioYj? z@6WZToms!nHOpU#=ua~qqM3~5Ts-L_lnLJROOXctOq=1wxyn2`PrbLNM*Vj(1TqFa zWx%+y5cO*F&IhXV~d4F)Ne86#!}1_w(<(N!h}j;*;YT(cSB%ue`qc2a(p zn}p{uOCx?sWfX0Es2d`Msa<9F%pm+#WWv1T=D#Kl0X zlh?Se^{0cE-i@|QYGT{(FSO*JX@C;9y*o@#wG#WQzj>K{{XhIw`sIK4BE9N-}zj%~pzk87;zkQj` zzj&G^PY%*0*Hg4Dzz{G;^sP|E;VlL&6b!uPQeWi`cKu0$yh zv1N*oICuez=b&2J-*%r*(&*a{>A^p}NsoX3I_+yuJ&?u3^3FBjE;X~*w8C`5^uwqy zx6Fy$em`F6jpU>tOB3X2jWpN8=!{_N&|EJH=^PfLT+Xo{VMl}a_0Z?!*VqIz#v=9+tjV+_Vp5ByKe!Ij^ zdx^N(M;?s9bS|2il3#8Q()8J0I{)R9H2KZTH2v&RT4=jLKN=tI3Spsu8GfG?qYgn) z=ZcDGgTg8*5&m{~14U%;Set$|Zj)6lw+dDDHbB`VH_3OOh;n`I_j~3nu0`rpW@hv) zolesBw^{}K;k)$cPp{MN(XnO_ZGWWUI@(*X{E z0S_|(lqEU)8dZG;pOk-gcA4IPeUiTYyYJHLe|nuJ-=Czu2I)wv0xecFKwDkh@><>N zrf8n;4KNhtlk>NODN)!umb!D*bEfqv7gQfT+D*Us_0#m5fBPzZ{+p+1PsX6f1wLh+ z&yvz@rK#w0s*27AQev4!F`~*CUA6$eU7~*pm-4ekP&%F&xa1b1woOUIa{?IsnO0O& zm3yvj-|4Tk8u;uGeOpP2c_gZMry_D1r8A z+8Ws2l`2~KUK-SiuE-qbr`vq$y5ciO0qaABdHV~2u98S6-&z-@}AjaQ&%ycufYZ;KFq9fzs}CAJF76XeKTEK-y+Fe~<@M7;qQfaIRc z()OF<^zZ=sKn1_cx9RcMG6JU;Y77l<4Hj0EtT2HMdS*3eV^klA&2DuDWx(5~V5eGX z2v&CmG1@e%_eEs6nl94W+mrO&KYW{B|I3>+Ii6_0FL}8YsJ*LQQ>b_uH}P|#YzJx+ zAD7_na85P9l5393_4QdQDp&MJ z*)=Gi#*|$Yk0H3RSO4%4rG`7r(ZSC7-<2jetk8GkWN>0JACrRi(m&ci#*!dlE5 z=K(7s(H4Y(?Dx}fFcghs3uPcgT*Z!Jtw=eb=qK~j+&b`BG1nn3WHXLOqx4Qj;Pua+ zq_f8dcH!0T4j8o>cnvmB`Ds8?+(xFdCxzUJKf3DG$bG&9BsQ{0S3iHCV>vYnZQ7@} zo|fICx2L`m(3W8DY$~Oc0nkbTBjEg;qs?%}&(H1#Wf{5ciXfXbnDw)iea-%Mi$*if zLId;Y&1w4T@4ri5|KqpmOv;ZD8p;UyLs^-T^4t6$6)lSdx!BFn&fEpkc)HHi3iNup zw<;cmV+pR=cc@A}f3}l;@!5WQ{&1W|s?XMJp0>0{XB);d7y~JPUu*Zi+F~FYir-Lu zgTiyGkQG~hw3P;02@SWm({QX6gp`;ErMMg8_x5#W>6L}yX+c&5VFdUM2)DXtGB(^x zIU36dJbIA6fAJ`tKiEr`L#`z#p{*=3%E}43^($INo%UuZ^L6l8!`7pk30$@qX{$jl zsAT{gYs&ob!fK={TSwy6C%o2~S{5ooi%z>B$nu-ng_)$UrReybwgbQaHa+?Bb=p6< zum_0z_FlAy6<}oi!Y%#=OQeQZK&W~S%zi?c^;!1!RlEi*4{dyRlK%9!-=;sw0Gw*s zzr}zT`F&c1*Pz_eP{sh@H$KYE>CL9txtbUuRM4>TLUduEs0k(ZlWZ z#m^4X6V3cQ-MJ-&=P~U5+!cSQmCr!4GuK}Rkm@=TkCBvnJQ}2tW@mJ>*H@`1I=yn` zkDsZb?A9r__Ab?47z2ztTdRe5OqF_~Y!fZvwARqpK*m5#$+IpzFK|8@r*}^tqz}&? zq>F=Ht@_}vHkJ%1MZ4Z5x_bbu%e5)sQTBsAYUeJ}fv;sjCM#VIACs%4EYWEIevHWV zTnUf&51YBOrj+beE(K2O_kj?$xl{w6*Dmv7SE>A5Wuc&3~| z#qfZ&DZiZ6MHqRb9NQ{D6lUpNF}Sn9Qk0d&Kr>sPOW%urI(~be{`7a>+U(B-KYId@ z=ifCLna~`{Csy`Y@&+JPnQ~pONP8UttDigTz?>kiYs~GbMnQ)?E&YF{ng8>rdudzs zTFA&Qrd*w$XCokm*Q{(aKgz$DYkRQJ?5|aT>TY*M#D}fKLR+NC5o+%c#!2y>Cv7TWXo(#2NaXewIB5cF7;NQM!&B!|MV`M|KTW2zd22p zZ!gl7i~|=Oc^YuGHB1-%QM%}j(nPBSZRqUI0JmaUd5or0(IgFKGrQySVRt*dKip5} zJ3GEI6l6-QeX4%GrnM}sJ00E(x5N6P*1#tz%dY-lsCKa;3QJyh8zO@|oXGf3 zCfb&8}OY3v3qUa0~QY zihLx;M4iG%#npU_cP(#hBS>>CDke)Pt8(9{L^WTD?$B<~cck^kaFwFTI3m4WlP3W) zyhb3iJy(MV$LHzr53keH-+!A9KAdW{(o&R_0JAgeLr4hTOHe0Ze7KrF5^-URTVC(K z`#$~t|Mv$i{l7{R&HO{n`a>zd{|uXa`WiWZm)e3eJY7z`5_S5UA<8OgC6JNXgNC$5 zR6W&>&mWG`OBsP3a!;mdA?3Q%7J!$1up02EAZKYyvoN#$SbWCtIi05OfB!c9{{Qo3 z`se@m@6#Xu_pj5Ne|eWq|D@UeyOXq#VYqs$S^v#(y8QY>y88XQl>Xs$y81u96MdU{ zO52lRxMH;-d8V=~a~WO4w7U(q`jCe3)R9&KTNjc++ku(VoNkZP*?4Tv3@}RUSE3!Y zUk=%zoo<3#Got;2Hb>{!waH5qvX~Na2$Bc{sug(k|qw!&{QT{ zfl6E`SQ&Y|T^Ep|@)>9V4KyJ4|MY!&Dnsz#!?6-9(p1Vi(;&C;ZrOZRs~JNeTUhN) zSyf%lrs?SQ_vw#+`<0gc-=*1^mZDPrfs6{1O%s{9SYfK{lUdvRY3)#yl>H#CO;qTR zt#-9Qkt--f3Rts>x78hG!7WR$H{ME*b_Z!s#+0WYFL~5jWK*ru*$X{TLanlxjYl#7 zLrv53(|P*#%cJynQu=@Thi}u{cbe%H*V7cr>c}pf4*FUtKw2?zR@>P-9Zs~0`szd4 zkrCKa-m#4A*4c&q}U^gAty7uj8T6&OT&w48tRN(6Y)Hi0hnk7K}D@zA{~v& z>PHxeGa$9+sA2gOWaL2=+Wr7(+vo@?AWrHewqcNWSPA^~?C%H1$`t@<7`P}z3^)sI zNTTZIM!GW?Kr}i|;}~T&xw|MFN@^qcWKt4S9BUX6Uvs(x1+pAe6(hhZKwf?&I6OK} z559btp34Xv^7B$f%rv;?Y8MuZUXo3LA}^7qHa=OiXPRx^fA`+@{9kFdnjX)5@M;kA zun*-sC+9}#CILbOU%qvcI|J51w*^wurYIMW>T&_^aJ!!lP+0lrQgD|4Ylhg?_Q^`zBx{3=X2{SQ*!a*+DJbWPet03kqS>Een6#7huV3l zz8bwdP5b}yHa+;4@6z6z_i1=`E+ZsfTJA5Tmp^8>p2R&-x1sJdXDg8G@FkO@JdY&+8OP8@C^GXA-5>dvAayG%L>`SxP zDwLTkW~=jAhh*&`X;eD0)+{^?z0U(c3~;-0EX6(-XYyp1b5n&h23@Js4~Dm%As$=c@l)Grj-7$Cutb2f$K%BrmrDCt79wQM32o z{e$-W-=1k@erfG9l5%rhfa@nFa3;#E%4H?SwvCGi*=Uc%@8Fvc>G7Z5rHAj1()Ov0 zwhZtkav+n=NpjhXRW$n#6xY-0Y;mR4oear^Rsu8eq6~XzOkCmHZgs*Ul%DsI<-k?@ z1bIyE>}?{aB(gh!BQuTquSW-?6?tr!JJyxHjL3DZEG=}UzbOw#*1XL(W zRGde9CmJUWE>lhoFu>p)NbwK<_&UA#@=bccZ_5?F&_LxrwEfiAcwTA1DsT2K7V~th zJ?Ynf|2lp9Pj5BYC-#63dw%ZslcqT^a0PY13_*6^0l~dplG(o%px9>7o;Y|==N-+= z2cj`olP5DR{k8X(!r78v#B%^WDL7jL_T)SY{9Y@pKYpV&dUKIZwI8Px9v~V@3GITk z@z+*DM{Y8@!NeG{Hd2h5k$$?Au`p5_4bEq2|NG-~`1XC;J~~PL^NBrpv?ZC0aL?Qr z^^CL)U=<+V7y+&W#G~LyU`|ys>T03c<9<)qY#&FR=bo^JVN(Vrih#CYMgCmPZg{#C zrTr*zOId9^(MrCoXWwX7ftd;NY;bj{8AF5V@XOcfndtCX1B)T3!LsOUHP9Q{a$aAN z7;3oh&ra+75&SNt`=>nr{nO5N3wKNLa^32t{OR2OFI9o1_`O3TAN zS5mS|833O7XBp0l00UqT11X-Fn5F)k?=RBpqiH(lE)+Aac<~H?&*yZFD}S~AVZ@g0 zfYlOlO=dBGlvD1}#U$-~IF}1_625vWS;LtUOQ_wH~(| zdp|JLoFRC#s@B+iu(1W+{IcJx8pA(a1vl=D(Xvo~M`1wV1-8wFUk%hGa7D99E?Im({XVAUobJsvEQ z(H)&!q`tNVTNiVi@gd}?wkOCXSy-_k<4pOK!nSrkjzo3QHHa$EmE<~jo*U%6CMnU8 zr0S<@V9nh|HQ+NxI~DB^b#Jvng|gswo-!`b6&4__J06aO1kqU;uJn1RSd_;bFJr1h zCO!mW40zr@et8xK!gxTJ8lV~^!w;+k-lQjg{4O0F9jCEY2g8x_Nx`|ubf!K3cYpUy z`s(k#PG?6KuKX+wY*6K;Yc8{ikkREdxsVZ92YCG5ka-&4H56&8pj^I@2hm9W?nKrB zJio!rt-5isO*1-e!Ef~KcluJca5MW~Na2oT06u6Ha3Q0hxm&hY^KQP@;q6Xss1%b#|C*+*dzLCZyvuEr`+It_q9IjpE_D$y)v8Ij$1xwCSYVVeVv zL91bnlRwq^QLtP(@TjeIP$o+UF?a~Vsk6ng3gDui&ZOySV2wYVr^Bz_rzhWjpB_#x z(opFqn)P14Jx~Aqci*Ki|KXc-p=Btqsj^p9+4JlwMJ$Z3yw-Q3HY{GqeX9c@5qd{- zl(z}UR%MkaCYux;2TISwTg?94KewOYsx2UXiN_C~AX7Ze{yY~j)vS*Zm=KNu5i5vV zx&ibLUxR5>b`w^G%W33oYu5ynmd`*2Xryw6=NNzsl{>Stne`zI0@oo}nQ*oXg^Pu+ z0Gz263DpJOH=O(ZqvpG=giZrs8B|}+C;~9IJMX2U9N9oPiAJX6d{deh~{_rLpYsTSy z_QNr^seC}%M@%^f|2A^b1|Rb|M2T}%?gwQ-H$j!p+Y*_42G$Bdo-Ll9lmUo;_hA*l zkAwJ4KKJEqJ0K;zlw!_M$VY&de*m4f)&?)rSmnSijoG!>gHFgkc&=srxd- z>HNZ82}ik?lyAx}%BvFlMdHqdm>FfXP_vx$Oze#88H;3cYw;%p+QOnzpSAL-^tfJ2uSg5$<6Xx#u2)d5kT4OX+nL>CRP>2!O(03UJFaD24wI@ zhw;A)_89W{Oe+8>KQANUsz1gk)1?eKOMhhFl1%m(a2VTbM7WuRKR&EA0M~&gx+`wq zc)5czVui9SlXp>RDT`eCMnoo!MEX9`*nm=)Em2v@YwG98G@ceb)4=-b!$ta+ua48Z zFF&NcZ;sP*Z434lF4Y$+?ImRg;+}HFm7+F*rE|G9&9VucV@(y-6%vW50z|uE+(dYJ z`!BEkwm<2R;xoI)Z8m!zKz^3|Gb#T}%W%T%ExxoYhEi?It-R*q$mg-#YLy5OGqXMB zokOY?%JOBO{on_=E+;ZhJZB(c-3^D?1mpDF;@IKZIfU>&#~prSP4OFs1tGrVm%jKtq48vv30N|5Eh zg4||j=4Ck1ga1miIMM-Xh2aU-f}_`VVvLTgmIGEN2CLW~@aR zY5s!jLW)1-As?3eD%*aKpsfloY4JZKb-#qobZJ|=SlJjV$7+<)kX#(?T!wceGv~BH zIqTpoqQv#32Heoy2wsf+YYQJ6m5!*x?dsvYoFBA~Q=}=&Mw%i7KAE2lTw_)9W2tGu z8eBGp-B*wUHvTWY46LhkuEF%p_vh(fWB|TBnI$a*Y;`agvXoVttIIS}nw`@N8G%U} z%2?RTCV5;q>L#x#l>6lO^2{9|NaQC5H1%tw*Z|Z$N(s6Kx!h3rAbpLTN6p8LB#x~# z(-c0{nj59}Wwn$`WJZ89#=(dc02k*L_G`SM6pvp`Zp9~SN-1uSNc^h`+xhRQsNZG)1ABohC=O=i-5P4Yra|z z_eB~%EY*vj`XbZj$Ytk|bK$RpGhD~(K z8lmcN@$scUXPzaQrPuFH)0b~f)0@*-(xm3`N@p_$>nZXm??|)Uj#dFXAI{S7O#1_7 z8l~X}M45dj2yRE+txY#al)XZGLZNd4))XMaC{V5P*Y%@OOGrm2r zBqz}W41l&Y3?Y`|P(EX-FFF0}2n!!UF4xCJl)yP?Eo_E%vb6H^P!Ru6%Zi8vfX%WZ z{>{g3vB?0iH82C9tpGa!48V@sW$$ca&+gmLcDWYN=jkaQgP>|#t!8XS#*@poTaO~P zXsp6`_JWs!p31NspH8*>#{wy>^7vDW63}LQ+{mbCNDBn6{&RbmA0jp0$Sl;Z4iLFE zLBkokIa6kMa7YdJ+X=wkcpr)qGmLd18a z$-?ERaGg-HEn|loAX*qGUW17u z$x{UfvTwD z99W&rTFjkP+y{b9tns=yi~t6b|K~^X?co~DvOfF!i#+WWbeg8eTAm-AT%^5Y+J|TG z#0w)JN>g(Ofc{tHKag{q{r=qT3^;j7|r54fpgb(R@XA8W9v4z4~PO_f+)GI$7#S}?3|+bg?`{B1Kd z&O}R9X8u1&`M;C$OP`fd3Jx2}!-$Ab0Iq~r{FRv#Z@k^sz~0wvw97yIPNpWG|H=?0 zce#`_1DC>eG6f*W5|wE_K2+RFR5BTm5rd}vzm(=w3Unsnxfp25FQt#C0qyU>MKi@s z%|NLAv~L)n&(f}p0M||UwVqT|27oqzq=>A<<6P3lPi<#XN9)DJLvkaN+pNV9wMk;SdR%Ae#)RJ^iZvOyI#*B>{#nB!{im2Qo z;AyYHMu{?3rY$2jWoAuTq858)IT6FRJHf3`HrmY*f@BWn)ghSXo-yS#^XG%sBOUew z5_$QnuHjI#x6U&SUIx=2zB@}_e?LiDRoXpk3`BEws2jqEg%`t8p8+~jL+$33z#c0B z4RTAPc)L3QuL=w(23F>c!%`!$56m+4T@akRXcd}eXITlZ=KDnB_w}vnq1YF}Nk4y`)5nPdd2lh$la3=B|%|mKvmX z<^T|ZMUcS?b>~{N^0nDCur{(Ru%qCRF({*D0J_o2<7l+d-LOeJIm$|Ql#NVf5K5iX znchc!mVSjY1u@q6H=2RApxn=X{r)2T{+pBZl~w=@XuHbK$^fk<0|$L+#2_on=Xgcw zquE5+(onK(%Lp7Eou`8j=k|Vj2DiP@hO^R`=sKYDb;p#l6KbA2z}v(4uKASdAWE&o zC`2$jh+m>np9{6kvD|D0)P$yJYz1bTiSctiz@N9*3V<-R%R>BlNyzr;B<;RGNjqaks)roQD+g+W#DEkIqD-~-NK zyyZ8l0U?V9Qgu~R_TriDu16dY+EVHZaz@Y}~-uv@3;JNs01boTs$qnYVuFu7|DZ4A+ z5ws3vx-xC}%UT1IPFlv_shvteKlBIbT*}FkpEo119bgN<#WpUy*~K?y$xh=r&}w0u zt-$-!wEgZR4c?!nEp3}FwKZ6rInB=|X(pOzHFYZba5T{>?L58x{w%%waB6pIP-<@3 z(p~%r(-c1>&kB#v-Vvz6Nw+r|qz5~LH0C|@7;xf91a8sx)@APe_>ge7EsMH$BRH<& zOk3WxRaRhgHl$pW8tpZCJsnmb8U13K2NO+qaz&WIfV)zDDdCwE^iQwP(m(NM73mCrJS zw7yz(e#RP(k~c0~ep=8iTVSXJl(GC~GVLF1eJij1VvpX|97vJoPd)9ce*fqFJ zv=zT99M1S1|1=FXn-9MIkYt6^{Hu3q^7Z?4{>}Sz{M~VS|N1z+{q{J$k^7yD^eHbA zRbJY7pmwu9mD?l_`Mjt6Qw3>drY*+9-H}!RT4Ch$o`wV&;#ZRn5Gcbx1`weTqZ79- z-;HDeFUc&soW?g7UX>9J<@7eN!;R2YAHurAH$z8G1$qCuz*N=hq7Jv)L0j7U@fI45 z5?(nyV6aXu?cH?${Owu#M*B$a^YaFucn-j>_}k#9fx9ttdx#ww=f#AlSzb&uGP!s- zo=(%g_PhJV;VxoAifG=1TC_OxC)`Udpr^IsqMu^vxgIZT)f109Y(p>xXlhH7} z*Q|QVGF>x&kM%!9r|8S??Rk38NX;@=yUbY$sW0rppO)bLi&+}*Mjy4)m1g;w=t4&M z;z*>G0spHoJ>xh2Y8SDl54A(E`}lqOD)*Q5w+i*ao{gCf_{VB%{=MkI&d~DOGYg6g z;~Q9R1tE-pbIi0J7 zlBV$2i&Hmbiqle*4(EVs*}zbgJ>jQb@AU?n`LEJ9Z>9X-ou+S(rfI4?_FsKc%IbQ7 zc=^_X@*pu49}fw5$-qjJ(`R!F(pe4>Mu5Ml+CMr?2b$@4a}D}!YHsPBt9=k2igtHa zw?e^n!%r@6*-?R1j1dSqS@B$`U5~VLRW!FnE2YS3fGfk=*35zNX2@pWWV!%I^;Qx8lcpqx5`#WdCDe z*DFNaL85Ex#`g5iC&yibT*M7w(l$Sm!S&4JT&614J{uutZ-Q}Hh2B8g4a@Ap9kMnN z4H9C@kJIN~kmE%4yvd;Pfx}Z{Tl@*c7Rt|_|2+Nv^+|f8JteoOnDx2XWKCpJJ5?QP zRCa-%NNY`?+%< zH^kqqV+a%^LJkwin^7_ojsY;)R1jMd{8Z>u*zDQ+B0>xyta2f7wtKqeIIcY{El0<~Tborvu%gO;A$My+DPUg|C=~CCnvQ zq}tG^+wA7_AI^DEX)Hc%>2wMK9jU+li3-6@$`#=#wypF1R8?! z7~#w32FO6D1{%v&ZV`^>tOU;OsW^U0%u;|+%-3pZrnqsw zs<1-nd|D6B*lpvo6v4;$P1%#t@>YmE8_947_%O^v&Ya%)mCOX^_kk$8m3_}Qh3XK7h;TMYp!hv~}KPR(L!bG%T zHOMqT{Y4`tqFq4aIRPFP+CRQXLmnIEBZHOf9RymjXwM9v;A^};5oi%_6=0QYz(TAI za-B5G(th08m~Ic#>HbbS+1pMRqk&x`;Ay-bD*>gmRRL|Iyw*O-b1Ch$t&{Qga{ck$ zY+Q2tS&2F*mz8H{!bHY1cOTagSZC~wd+Eiao%G`IUK*=y`DJ3hLE(l5;VpBf0?nY> zSGjUzln+YxCRmv^^Ik$xKrP3r#6n9TRX2Q*N&bQ%Fohsk4Q{%i1m4Y&w}}Yl9Mpvn zILcu;?8?{X(1K;E<4iUVLSrE1BwU&1uee5<`B8q}M*I5vv-Gu={`|0K#*CzJevWD{ zs30#q;AdPjBEZUsI4>6;<)Nb<=J|3owHv9<$~ z5$_KcP-ty`w(O_6tOzu?)QGkkP#vs2jk9kVni2@!**+#AOH7#3L26H4PtKNupK0$8 zd)o7B=GSV3SGsYrl_wE-Ac=E)mQb~+Q?8ZCNKh5M3QBB~QwM9{BY@9p5Enc;`Q&fx4@U%UGA zi-rB3|4S+V+Y`<%tmktMjDV+xQ)b2;fE|u zb`x&v$_`Q-vfEK<8LY<6pxJ7+NMjj*-M1%c=lc`;b5j1xF3O3I=c_Vyqhp{3$hnU0 z3^9qNK3f8Q`*6NHN=I6Pe|UV5&K~S)doWIOb&xe9vo(sZwDHCskKpY5jASn$`pnxL zH)ScDe5@w;agX|ae`lDUJlst$pYNq7k9X5}dnASLX~y^4k7TJ41^ny5S_81UDWaiP zr(oCx-5WZJE2W6CyxhD_(SbL=oSa^yuU;RefBxo3v;TQInsVVs)h9t?&^a-Xj8M3O zd@z!}BxbE5Pen?rb2F`{_t#OO#7ZJLty~O)c(V%VUCiyT$+zDgr=52gfeU|wEol*1 zXX+hPA!IBOVL6;*D@7-oX}nciC!-qP>bCcXawz38yYrWc{1kd3BXIg?HyuAcNGFf? z)A_+}nrKBZ*UW6MPm?y=T>^+aqDp)k42MNz!<`93K2U#-`-60-EeA{emrwT6i)Z`k z!K3Xo&?>;T7LpNafI7h+T8HIIUk{~^?aW65%Kr9YT1Xs?pDINiq92xW}pix(`){PR{Q>MwYNS~t$X7^8g38MU^q-$ z+GD4_mZL!|P5HZ9Bg*ffT+&^L!N`Lzw!G(-pJ;2)xBtH9*Kb^*-j&iHNao$MY3lRK zI_2?YYe~^s9X()Lb9>w@H>ta2KtcIg?ofKmZ90D7Guf{&oq#SZ%v``KMBI#hioFfg!>cMsz%5c#i2#45BplI2-0=2QY8N8*;;qb;;kKDd7 zQ&X^C;nx_;7c`9vZ9Uh5T>aELpQfJ1B7ekc7x7d_yG^J3T&%Ng6In0{BL9gGrE2QMm#gLF*7JAG@`w^H}+x$vAx`ddPgD508fj zoc#?8DL@rzlc~;c=a=cr>1F!BBb90s6`7x9kxT?JZUjzoVOj>@zpL#vOHTa74Ll@M z-P+RW(-{EoAX3w4k2FXy06W8JFk%w7ZeK*zM zo@pz`V26EQQ$7!Kq4;J16lmp&FYgLqb>KzoKm?~ecsL@NgG?S4$GZRy(5(!BgG;4tW=%3edTp!@X`)8^ASr!s4t9@oVgh)RJ;VDypEuZxjo?7EVB01?L{pR z-s@_?6fcL}p|PS zpBcR2nust9Z?q!apcc{W@5@j%hKMC4D*|5pV1Evw#^bM|on#E5DI|X;{>;MvQo10e z3F4i1{tB!XDV^mj((+1db1R&9J8PyhVz5iO^|cpf_*--sR1%-+;4sS7y9OI1xnD>$ zs2a{1WxmpK@=)ZLWDrkbss1ec?Wr94L}&U2#rK;vQg&_K2ANPCnt-P_d2^G!X&3_` z?eaE4v1~LH$nsS9vmE{#qFwiHU_P_6-8df~OC=M~lDi$`?!sy|KxpJ(hb3@Qc#EHyEwBy7huI|gKtflr{04Lm;#IGi$6LF`Yx?8}Essy&t`4rZyXNt zHZ=pFcw4d6IjWDNE%T=XC9f*|&QclkbtN=oWB@*WgLI2WSFs3>*cEbxmr52(8o==I zAp#eDB8`@l?1^j-$}-VNL!lapc5r7w9BdFZNQV_zPMe81Pm+22@~|WmMUjx@VbCkk z+r-<&Kg8!+mW<(C$mTAN(IQ3Cdqb0}msY@{bTGM^v2}eEPersO^$H2m5RkQl`Ub`3 z4Dq3nboL&{jn6;czcS2N0!8Jd0{nwOL|CLy#^08%M_FP6dA!=*{02m^%~~wWL70D< zxQ8{+%Ie$2D_!L1_0zqohvAK-!o`2FQ@q_OE-i-m5h)_b)m@V>2g~Ck&wq5H4>KS zVjj6_ct}&?D6WfEVO`wjXv%gMRPrtfzFN{-YypCM&R00^7s0eCSNNJmHq*KfcY9ba z3u+-88l(ef5bp4=L0MK8b-~#xR-?L6OgI{&J-ZtT9j)9e%eyN|b4eN3mXni*bdkHA zZ;4lUR<(bdL6yuUEVFpqbd({K>28AC9b(>IJ%<>&+mqVI}np~IeP6*~! zKxxW85k7f=%V>|7Jfy+q(s_=OO%q))(eCR?iMUSA1m*~L*1Nx2RcjQ<8)%0`x{~7P zDBVI9vP!RgL{JghNtP~uYUKIJ6sHA(ir~oAp$IyrdUNK zYIz)`8@QxhC_`adGG5N%A>EvA26&XzE?r?AifT|;MAf0nSuF2k@zBay#TyBAyz{IA za{OB4w3d(j5s=-LzY_N5Wb?q1Fyb6(Qug=vL#@hH#X2BrIU@Cl-%K%*=<+VOV*d{^;X3M&F`wgsr9zXeuFR{-|* zWEiBxT>ZUNs4uZeQ8Vxqf$%j$o2ch*E5}@pw!8FK0V}9_GfheH=?HJiDT?|UEk~E+ z9Ng225`Rdp26>zVms5EQX)P6>K*42$kEe}e6VZqTI=p_@CR6?dBw`D7iM6{<)C?(o zO|nPRZ%twWAGslyHn)c&p_u=dDqO-vsmS<3Ep!AK%H$yf$it$-W?O&)CF6UAq(b3o zoLXT#qU>}~mT&SXI`)db1gqg3o!}LDEuTAmAc=CHeN@~B`*l3(`bN5@|Muh`A3=m{ z4$t2qhxJ=QIUIPOLlIJ-Y>Mqf9zQ7(4LEqb z=klEEaea!L$B&oC}%Tn#!-3dux_fdcOpmH(xISAo_3g= z85RF)(2%7>!P*-JL_nOfyNwpp%BzD-hHV7fAkYq5MMA~jKFf%B;8}9U&eYv7-evMi z1|3?&7N;GiLv=1joM;u=aXwzFuBc=$(=~antsRk(U~R%Syp1=>A_EY~+LgIyl+rZY zzz{1-S7s&FIew;FDSdr1l${+(s-QBV;Df^{LX7ZdXGIz9;I&l9Z`2iTpBf6XL?%)` zcadd+3TK0KsQvMY@a%5H-Qoi;Ac#m;OT=>cV5)@>;$|hi8f~r<@_j8SyN6 zJXcAjV-;2JM3FH6Y`6p%Kn=F@$ zD?wa43~Ol3L%C|OZI$sr^k{35_7ui%_~#P9-rEk@+aE2P^U@*SB~Zeyif3p@S)=!C z&9h~{JqdW$A|Q~1%9!O+mP1wpPNdg4XKR#N2iNEbh{4k^-#H!i1bH!PA@24VuPX=R z&_EfI*$Fvqjx=7i*RaGlXRcP&ibT251%vw3e&CdunBrR|4+~x%?aOsDEan$*B!Kz<_-AN$+1ig#|uTp$1KmBN~@1Vh<>CIS z^W2vKcr63quLSd7kMgplAH)EFy4WTNUkZ~TtkxukEuFU2fse*p>G{qe9q^LO98Smj zn_hyupS>yDT>ny0)-$(5M^GJDrqRK?c&dcgAkto+o)>hMFg+BEgGDJoed!^Qwu^6> zv2?hqz!%*Q75cHjmFmirf5w>Ba&uP-@?tShuSAEEo`0O4N;5CFc(q%sa+Xn5yM@Z; zXYfWKR?ky~vjV^X9Pxka%IpRJkSPp+GpPQAXXO?k7X+&=18}T(3;+cnXIs{sy+Xtj z-jx;^<|-fCb+|uDpS?Ov&mZrl-QmEL|57Uh_E7e$fHBV{AXqTXjNAPG@(?x5ZBUJh z+!ls*8b7%gPnGZ*ET=V}b%HZR8U5^zDs^cA0#)QP-zF4iN$SisUy*`Kwm%w3HYT*W z^oW0Q8f)x6IXO?ykIvG;*+tr#&(c(a^FBoT8@d&>D5_n-f?7>h8i4AhpqF_Cpg8n5 za4!bn`)mMW1#lY!0I-&XGMg`?+%uKU8(sDechb*({VaX{%O`Sg+t{`@2=e)Wxw`c8TuP%jnA8956)+g3a6J-Yo-I9aCdj zRt#`6XDEIf)V~sI1sXXcA%PL0FpPe85vy9b8wE=P{+r}qg^F+1TG|5z=bw+%TIt~Q zB0YWcAwBr+eHy(xPM4FZ;+2rs7Nfz{I=V)u0q79+9t^-WTL3Y!7Y~XW20+n6(RBu( z3@0qY;fs(c_k2FLx4w?{w$taodzF6q?_Q<7M>|#~uX>Vw5Y*XL8_Vbrvr1ILa(G08 zC=U>hzl;x*;bopKEE|Astm3mKO9Nf`H_f{VuB#{LY^zqrZsm0TM6D~Qku?(9;B+U( zhVs^xu_=N@RgCB+`B$Oho0&08d3h^F0Ko?u-v_5>>Csp3)5G7tNn;sth;7!?GMUtmemWo+XR#}G7R?0HIiYqdhv#YEYqMaIY<*-JX z3M<$fESf_{TpN~FiJT?F*YjWiHtL@r0jytj&9G3p`+1y^tIojWm^1n*I z_;*tNXM5J^i`k{U3=^5klC07q|Gj{MjKo|<$&_D0=DUO*9%%@x(${1>R>Z9&;}37= z@Bc|xlR}$m!<~sTtsh%t?=0*{@8so0Szh;$LE&^xjCdyfE zqna=B7%4cyE6RBqvRXf7cg2tV5mto5H=oP2KUSh$Z5t4NjcvPAB{zSGJ{yeEe0!`( zwwFeenP_TnLMD#u1~wxrtD$lLnAJhBcRzV7$aM2e`f?;ao_KOsa-AXaL|V>P7PR&` z0ALl>nP!QsLckv z>c)k6LQu*FTonBByY%Rvze&S)$M!z~i-EQRnzF5}XaLUU#N#bu{icC~JtPj@;D(P5}|B11-k$s%TR=nQj||7xE!Hi4)`bs7xIEs^4_EU z^t0c6mVT~f|KZa;OF5ru$EiLBl(C=s+9LF{7501K&W#4}zD7;+FJja{-o363 zv6#9Z!L*5$2EgRcWI!XsXC z=2tp5EX3aqD^~zsl;aNk?F#-vn$3OwE3JR_4pIIWmGYaVlwq)2eYBQ|1V!mTZj^)h zFL`iNt)QQ<237l@HCcl*h~ke=ZJBQq-c~x>-AQkM_B4I}SI=!Fz(Y5Et%SFv5b;AX zV|f=XUxSqfz=X|Ip%u^&39Dsf9{aGDXGzaRJ+6-KKHN*Me)lqc_Pgil;PH-Fsd&2} zs4UF>w%q9`q*2f+Y?5$eW@}+9qD*%e zO=v8f_B&H)x9Yn8XfJ*CH_y|nfAdr`|Jd21{4x?;6l^q>ak&ZB=R;nu%6<%l5dfu8 z_)CLzX{L3k#>%=u@|O(Sr);C5(L#f`xE{oiW#T*A+evSJ_B_4+;)S*Y`}XWje=#>h zVYy>sG|kVe0zo4#ySkBcRp||dr)2<|Y^9cVt{7xTtOGV$S{`<*n?2w)g!Q$r)`(ltN@yT zIb+<$c~w%utqhmUJXOf@X79nCJ>L77lpjNYwc{TDT*e`O;6p~|)HVbl7uS;F<>0Zp@N75rme9e*mhVteqfVVkh5c-aVK z1ArgcM5qaom*N~B?xpXv6?pfHS84j>F!f{v23k?~HF2W+rRsS8g1?;JtVP%wv<$#9 z>k3#Mix0|BX++syGD}Dv@8uER?FYN*jOa{=b@Q1koh9y5&%0^jCHO#bC*-He6_%aLV0*&z{N%yhxKL zJSU*71FHaxfO1^*WHMMtkhen9*R3N>h(#o7W)8arVRIsubDc6$s3Oe#n%WrzJBK^z z)o-}k|1#}9*|GHg41iquVupP*2)q;va$1Qe+&16M;e)%oydUeh54k>-eE(_; zKnt!*`q+g$+Q8evf8&x;U;1sg3gtiD+fHvje`3!GoXZGYVFY9&EZ#D4fDis0W+*v> zGOmfjhSbU1Fg0xrYK%R~ekoy?`R(`m3g6Zq=EbjHq|deN-+$^4`S5GQg{&88fc;2; z3nD7sCk+mnR*TVz$Z7em&ATGe4a?jd*E6PBT^Fntp8(NfHTfM9$br8OYsLlcs=$A# z*9ewc%M@K?f!UqO;!ym=g~3dh@@oan!$M>^*&C73Sr1jfUBH^*)BWl$Ge&19;uhA+u1snXQCfa5y4FHpEs z_54LH0>6b-DBT%%5G9m^&60~9!2=>Yt{3^Z~?eL%_bO!zip!%`YTS667*C<@~QI*wv%uLy* zD@D~M<_oOm)>*e3VAB;qcj@cE1QS%&y7~FkSgvhu+Yluu2*pKHSqb#HZYDK7+uJoG z@ZpQ6X|63c&j}2qe|}-mv)8pYPj+#1*Rl*NRsic@KW|_*=h0p%cYn}N2agZZt6yu+ z|JTpcp_VE9)Q}FghkUw9T|yT6UnBk%SN$hADy0`t7keUJ&>X6nUPgcwvO=W{kV|aDw;>wGFRqlw^zJL#VewO?^;=48Mr`@Lq z=>^aB|K?fRd!pru!Vnf4!Quq2W|de5VHo80Fp+{-9yxiKfif+wrtsGYF4D&r+b?DpQX=! z^*rrA*|YnVtP1#LA6NY=32dQ}8CC)cQHY^PuV7-_8-W=uuff>3j1IZF(yfAepe0Es zsx)QdwFN0*BdtL4BCIRg5N&j=FiMi$wz!RO zo^|FH>T()rcxwr|*f&^bPZeg4Mv4l?E7}-jXIB~P(9L}Xx)Ns@{S)QuXcq|Ov{kew zUPbc$z)R`fP+Vc!gG*_Hv(aV&SW6oE=0V)ObY+}ub-t?n)x3*_1`luW)fCBXjuPC zBxeO9vpv?}b$AtBAj{Vsxe7FvWvnw@Kga`Q3@Y;HbD)w7SLGp9P@Up-5RZ1D1tO{} z#li^4fp!rxdRVd5_+HAirXa&I4{u+9qm@5<*KsXHScj5FErp}agYYH3m7wdS>41{o zFvpG2kkveO2(GMhrldwhaLD18Ot7r52U2cLuo!{IUwxk*|LJww`u0Qm?r56+ApLuz z#JrGnBm=-3gQ7|D$sE;1Yc~LkrU6idk0VoC-f3bAeJ(m44AbOrKkfhWS$gqX?fIYW znDX7E6%jpjE3nuG@mJNR&(9)A5U4S)Y8z5n`s`ub#&-YGrtL+PHs zwcE!FER8c~9j-M1WFx~s>yO3NWtz%A+u2V2mygro7thk+i-Xi3@N&;tnrmxd%1b25P{r2?vq3Ue%P7({LF%r^l1tq<6%=6J2+J(0bOp;Y+pW zjE6kNm9q{T7y!?}(@B?Ci!?{EcSdRS|86=|QA%s>ekGs!wOQ z;QVg`|9^2;f*7|A1C!79_*VO>wrP@? z0R{viYIp6%>Bta?8SeIo{J zWE+hTiU4DfrOaZ8{Kn-o$gNJAGjx7lY9X_54Z-y$AYb+iiq`Bj$##>+=rf}GF)Ry6 zSuHF|7Y<~70o+aKZPI6Z!a6EfI7dNswBwlPjFQUN`7|WIe7uWrWmMxyd$f54%bu+) zZ7yV7?!tWoy$<4+z-vj-GhdV(Rn#E|dp!@3wDDzyg6hF}|B6W#auTd?m*-y)(ziA_ z8Tp@k_}9HLAHV67pI87Cl_o9z!v&yTgTxPrD^jE;uN?#8vE=$$zbsO=DGL1}+ilWU z!PTX4G};?0XT+j?k27=JgI;o#dHRf41*my4dVM|3oK&Y8Ua@%(BJ7IY<2olLl7rP4 z4mkMwj%VYh-t~rQ=Wp@@r??%orw6Sf?0u|9V4laB?!hek^>MDj@-EX? zO^KZx3+1_y4|mR05Z@QTgr>|N8H&+6{W%uiIHJRy-kPJ1>j31ju}8Igt|5FVMKV6B z@aw(*e2Er1u1i{*RC#wwev@^iOnSmYj6O-9U6RNK)2lU}5X$(9F@ZD<77 zK)Kt{lb40rMTFZtqTCCThiusZ_I*m&vE7iePA8N+^MlseAN3ICd(0{81gyw6kX;(r z6OH*s0FQ6Q@v-;#2WcGa8@<0()2eI!yZ!s1s2r1_nBcb@*0Wul-;hg3^@6@i4k=#} zXrgfSi2@ZABH6MlXJ|4=EI^rBal%hdY*OZltN%$LN$%M=Rx}&vN632Zo`N;#n~j-2 zf|F-!S!M*w5k%c7pahNXJ{AL%X|yy+L}={U$$Z+|rupAtbL&RBF z*kTg&<&H5^Bq8@92KMn9O4;i&He>3|+jjAGpLIV+kDI7qwF6epnZotkqNAIx2nURy zJP&bmv>;@Jt{e3L%Gu-s5-%shMjiO%9XohCGM3^&kUr$sC}J+vN5nMO69DLy1%RL= zUK*s-4H8l+3+7ipz)~uP3Ib@OIH4D>Udkd2inSzAgGs$m9iyGN?08|gh4O$Cakl=5X7fWW-tcYSYno4Hx{$mTs8agIt^EMsA1n-1IB zYS%7I-SYFcY_4?LroQu&yq$E9sQbOL?RLRg#`e`X|79aqwwaNCog9x8zw)gGfPw|R#)m?|I-StvX;&$-LN&RV2(7!YgzT9*qbl7d>L8#K z^+K!B5^+%C;E}?1QIm7m;J8KP*%8ME2f1Vk_9qFgV%5ji{UE*J)BQGT{)Uogb0EF} z%vLtxQIK3Uy-HU&&#G}J>n#$@lmHOla!J>7T1TY*5e@7$(EmhXaIJUgFLNR3B=^KJ zg?!~%)UHXV0%_7(k&Wh0Q3zv>hHZ)h;)^>XLh%~TmlOz{gpDEVHRFnPoBgDz_E1>1-+>r9(X)OY0{Q07x1__ImkFbs7 zyh0sA=X!7J{-3C7I;)Fz<_6v75p|sOq>d@;c9TwMy3G{3;@R)~2h#=!HaYo=QDD}| zmsI(v93Y=$+cJJc#z`l_t|vC#VcI<*HpM4C|MJ@(-}tM$fBpUMr!V|G5z7h(#>GOb zrn=4J1<)%z(DS0>5K9^0YNaD+ye(J2Nlw_3WjpbnoE?liV;}OC$xXi7QmFt*Z-v{N zSU(h7F#(G1QqR(+?IGNUqHec=e#z-(nUH9Xsn>4XX|o9~${&c^0upU71H92^2V=*h zzi#xPUw{AeumB*?eXOUTt4oXn%(!B&^Sv7j8}kOZ;K~e|u}(I`dvh9&b4F<&n_Z8K zKw*;fR6GgvA#lzt^3jR(tm^DE{RwbNz9q7yZ>77`LN_Fu?K}j;RWt+qOdJYK>WebGPU Samples \ No newline at end of file +WebGPU Samples \ No newline at end of file diff --git a/samples/A-buffer.html b/samples/A-buffer.html index 574985f9..b7ae6692 100644 --- a/samples/A-buffer.html +++ b/samples/A-buffer.html @@ -10,6 +10,6 @@ } A-Buffer - WebGPU Samples

A-Buffer

See it on Github!

Demonstrates order independent transparency using a per-pixel + limiting memory usage (when required)."/>

\ No newline at end of file + limiting memory usage (when required).

\ No newline at end of file diff --git a/samples/animometer.html b/samples/animometer.html index be721ff7..385db8c4 100644 --- a/samples/animometer.html +++ b/samples/animometer.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Animometer - WebGPU Samples \ No newline at end of file + Animometer - WebGPU Samples \ No newline at end of file diff --git a/samples/bitonicSort.html b/samples/bitonicSort.html index 6b3a5618..f246870f 100644 --- a/samples/bitonicSort.html +++ b/samples/bitonicSort.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Bitonic Sort - WebGPU Samples

Bitonic Sort

See it on Github!

A naive bitonic sort algorithm executed on the GPU, based on tgfrerer's implementation at poniesandlight.co.uk/reflect/bitonic_merge_sort/. Each invocation of the bitonic sort shader dispatches a workgroup containing elements/2 threads. The GUI's Execution Information folder contains information about the sort's current state. The visualizer displays the sort's results as colored cells sorted from brightest to darkest.

\ No newline at end of file + Bitonic Sort - WebGPU Samples

Bitonic Sort

See it on Github!

A naive bitonic sort algorithm executed on the GPU, based on tgfrerer's implementation at poniesandlight.co.uk/reflect/bitonic_merge_sort/. Each invocation of the bitonic sort shader dispatches a workgroup containing elements/2 threads. The GUI's Execution Information folder contains information about the sort's current state. The visualizer displays the sort's results as colored cells sorted from brightest to darkest.

\ No newline at end of file diff --git a/samples/cameras.html b/samples/cameras.html index 03ff5a47..e36cfeb6 100644 --- a/samples/cameras.html +++ b/samples/cameras.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Cameras - WebGPU Samples \ No newline at end of file + Cameras - WebGPU Samples \ No newline at end of file diff --git a/samples/computeBoids.html b/samples/computeBoids.html index f66813b3..6a3b19d4 100644 --- a/samples/computeBoids.html +++ b/samples/computeBoids.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Compute Boids - WebGPU Samples \ No newline at end of file + Compute Boids - WebGPU Samples \ No newline at end of file diff --git a/samples/cornell.html b/samples/cornell.html index a3592d21..7904fe98 100644 --- a/samples/cornell.html +++ b/samples/cornell.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Cornell box - WebGPU Samples \ No newline at end of file + Cornell box - WebGPU Samples \ No newline at end of file diff --git a/samples/cubemap.html b/samples/cubemap.html index 6a3a7413..b7dc08cf 100644 --- a/samples/cubemap.html +++ b/samples/cubemap.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Cubemap - WebGPU Samples \ No newline at end of file + Cubemap - WebGPU Samples \ No newline at end of file diff --git a/samples/deferredRendering.html b/samples/deferredRendering.html index 33aea27f..d4944baa 100644 --- a/samples/deferredRendering.html +++ b/samples/deferredRendering.html @@ -16,7 +16,7 @@ We also update light position in a compute shader, where further operations like tile/cluster culling could happen. The debug view shows the depth buffer on the left (flipped and scaled a bit to make it more visible), the normal G buffer in the middle, and the albedo G-buffer on the right side of the screen. - "/>

Deferred Rendering

See it on Github!

This example shows how to do deferred rendering with webgpu. + "/>

Deferred Rendering

See it on Github!

This example shows how to do deferred rendering with webgpu. Render geometry info to multiple targets in the gBuffers in the first pass. In this sample we have 2 gBuffers for normals and albedo, along with a depth texture. And then do the lighting in a second pass with per fragment data read from gBuffers so it's independent of scene complexity. @@ -24,4 +24,4 @@ We also update light position in a compute shader, where further operations like tile/cluster culling could happen. The debug view shows the depth buffer on the left (flipped and scaled a bit to make it more visible), the normal G buffer in the middle, and the albedo G-buffer on the right side of the screen. -

\ No newline at end of file +

\ No newline at end of file diff --git a/samples/fractalCube.html b/samples/fractalCube.html index 8c5928a3..b0fc571b 100644 --- a/samples/fractalCube.html +++ b/samples/fractalCube.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Fractal Cube - WebGPU Samples \ No newline at end of file + Fractal Cube - WebGPU Samples \ No newline at end of file diff --git a/samples/gameOfLife.html b/samples/gameOfLife.html index d6ae5fcb..69d2ef20 100644 --- a/samples/gameOfLife.html +++ b/samples/gameOfLife.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Conway's Game of Life - WebGPU Samples \ No newline at end of file + Conway's Game of Life - WebGPU Samples \ No newline at end of file diff --git a/samples/helloTriangle.html b/samples/helloTriangle.html index f614d6b5..237bf45e 100644 --- a/samples/helloTriangle.html +++ b/samples/helloTriangle.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Hello Triangle - WebGPU Samples \ No newline at end of file + Hello Triangle - WebGPU Samples \ No newline at end of file diff --git a/samples/helloTriangleMSAA.html b/samples/helloTriangleMSAA.html index c1e4aaa9..544ca449 100644 --- a/samples/helloTriangleMSAA.html +++ b/samples/helloTriangleMSAA.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Hello Triangle MSAA - WebGPU Samples \ No newline at end of file + Hello Triangle MSAA - WebGPU Samples \ No newline at end of file diff --git a/samples/imageBlur.html b/samples/imageBlur.html index 6c11ad72..9f4847ac 100644 --- a/samples/imageBlur.html +++ b/samples/imageBlur.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Image Blur - WebGPU Samples \ No newline at end of file + Image Blur - WebGPU Samples \ No newline at end of file diff --git a/samples/instancedCube.html b/samples/instancedCube.html index 150c0bfb..fe7d2105 100644 --- a/samples/instancedCube.html +++ b/samples/instancedCube.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Instanced Cube - WebGPU Samples \ No newline at end of file + Instanced Cube - WebGPU Samples \ No newline at end of file diff --git a/samples/normalMap.html b/samples/normalMap.html index 11efad89..e8737f9b 100644 --- a/samples/normalMap.html +++ b/samples/normalMap.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Normal Mapping - WebGPU Samples \ No newline at end of file + Normal Mapping - WebGPU Samples \ No newline at end of file diff --git a/samples/particles.html b/samples/particles.html index 43e3ddc7..1c673232 100644 --- a/samples/particles.html +++ b/samples/particles.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Particles - WebGPU Samples \ No newline at end of file + Particles - WebGPU Samples \ No newline at end of file diff --git a/samples/renderBundles.html b/samples/renderBundles.html index d1bff006..801e3e9a 100644 --- a/samples/renderBundles.html +++ b/samples/renderBundles.html @@ -11,7 +11,7 @@ Render Bundles - WebGPU Samples

Render Bundles

See it on Github!

This example shows how to use render bundles. It renders a large number of + of instancing to reduce draw overhead.)"/>

Render Bundles

See it on Github!

This example shows how to use render bundles. It renders a large number of meshes individually as a proxy for a more complex scene in order to demonstrate the reduction in JavaScript time spent to issue render commands. (Typically a scene like this would make use - of instancing to reduce draw overhead.)

\ No newline at end of file + of instancing to reduce draw overhead.)

\ No newline at end of file diff --git a/samples/resizeCanvas.html b/samples/resizeCanvas.html index 070389c4..f93a96c7 100644 --- a/samples/resizeCanvas.html +++ b/samples/resizeCanvas.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Resize Canvas - WebGPU Samples \ No newline at end of file + Resize Canvas - WebGPU Samples \ No newline at end of file diff --git a/samples/reversedZ.html b/samples/reversedZ.html index 0e824021..4fae5e8d 100644 --- a/samples/reversedZ.html +++ b/samples/reversedZ.html @@ -17,7 +17,7 @@ Related reading: https://developer.nvidia.com/content/depth-precision-visualized https://thxforthefish.com/posts/reverse_z/ - "/>

Reversed Z

See it on Github!

This example shows the use of reversed z technique for better utilization of depth buffer precision. + "/>

Reversed Z

See it on Github!

This example shows the use of reversed z technique for better utilization of depth buffer precision. The left column uses regular method, while the right one uses reversed z technique. Both are using depth32float as their depth buffer format. A set of red and green planes are positioned very close to each other. Higher sets are placed further from camera (and are scaled for better visual purpose). @@ -26,4 +26,4 @@ Related reading: https://developer.nvidia.com/content/depth-precision-visualized https://thxforthefish.com/posts/reverse_z/ -

\ No newline at end of file +

\ No newline at end of file diff --git a/samples/rotatingCube.html b/samples/rotatingCube.html index 77e22589..81d22889 100644 --- a/samples/rotatingCube.html +++ b/samples/rotatingCube.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Rotating Cube - WebGPU Samples \ No newline at end of file + Rotating Cube - WebGPU Samples \ No newline at end of file diff --git a/samples/samplerParameters.html b/samples/samplerParameters.html index b63015eb..1a68b6d8 100644 --- a/samples/samplerParameters.html +++ b/samples/samplerParameters.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Sampler Parameters - WebGPU Samples

Sampler Parameters

See it on Github!

Visualizes what all the sampler parameters do. Shows a textured plane at various scales (rotated, head-on, in perspective, and in vanishing perspective). The bottom-right view shows the raw contents of the 4 mipmap levels of the test texture (16x16, 8x8, 4x4, and 2x2).

\ No newline at end of file + Sampler Parameters - WebGPU Samples

Sampler Parameters

See it on Github!

Visualizes what all the sampler parameters do. Shows a textured plane at various scales (rotated, head-on, in perspective, and in vanishing perspective). The bottom-right view shows the raw contents of the 4 mipmap levels of the test texture (16x16, 8x8, 4x4, and 2x2).

\ No newline at end of file diff --git a/samples/shadowMapping.html b/samples/shadowMapping.html index a356ba0d..0f786843 100644 --- a/samples/shadowMapping.html +++ b/samples/shadowMapping.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Shadow Mapping - WebGPU Samples \ No newline at end of file + Shadow Mapping - WebGPU Samples \ No newline at end of file diff --git a/samples/texturedCube.html b/samples/texturedCube.html index b3e9afb1..90e52e28 100644 --- a/samples/texturedCube.html +++ b/samples/texturedCube.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Textured Cube - WebGPU Samples \ No newline at end of file + Textured Cube - WebGPU Samples \ No newline at end of file diff --git a/samples/twoCubes.html b/samples/twoCubes.html index 3c806c18..2cda0928 100644 --- a/samples/twoCubes.html +++ b/samples/twoCubes.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Two Cubes - WebGPU Samples \ No newline at end of file + Two Cubes - WebGPU Samples \ No newline at end of file diff --git a/samples/videoUploading.html b/samples/videoUploading.html index eab166f6..5c0150f2 100644 --- a/samples/videoUploading.html +++ b/samples/videoUploading.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Video Uploading - WebGPU Samples \ No newline at end of file + Video Uploading - WebGPU Samples \ No newline at end of file diff --git a/samples/videoUploadingWebCodecs.html b/samples/videoUploadingWebCodecs.html index 63b2ba77..097f9f44 100644 --- a/samples/videoUploadingWebCodecs.html +++ b/samples/videoUploadingWebCodecs.html @@ -8,4 +8,4 @@ height: auto !important; overflow: visible !important; } - Video Uploading with WebCodecs - WebGPU Samples \ No newline at end of file + Video Uploading with WebCodecs - WebGPU Samples \ No newline at end of file diff --git a/samples/worker.html b/samples/worker.html index 6e34e6b5..518824d0 100644 --- a/samples/worker.html +++ b/samples/worker.html @@ -10,6 +10,6 @@ } WebGPU in a Worker - WebGPU Samples

WebGPU in a Worker

See it on Github!

This example shows one method of using WebGPU in a web worker and presenting to + which is then transferred to the worker where all the WebGPU calls are made."/>

\ No newline at end of file + which is then transferred to the worker where all the WebGPU calls are made.

\ No newline at end of file