From 973f97cc098dc85e210164f9b380de494f5ec8dd Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sun, 17 Mar 2019 20:05:02 +0300 Subject: [PATCH] binary draft --- 1-js/11-async/03-promise-chaining/article.md | 5 +- 1-js/11-async/07-microtask-queue/article.md | 34 ++- 1-js/11-async/08-async-await/article.md | 2 +- 2-ui/5-data-storage/03-indexeddb/article.md | 4 +- .../01-concat/_js.view/solution.js | 18 ++ .../01-concat/_js.view/source.js | 13 + .../01-concat/_js.view/test.js | 31 +++ .../01-concat/solution.md | 0 .../01-concat/task.md | 4 + .../8bit-integer-256.png | Bin .../8bit-integer-256@2x.png | Bin .../8bit-integer-257.png | Bin .../8bit-integer-257@2x.png | Bin .../arraybuffer-view-buffersource.png | Bin 0 -> 41139 bytes .../arraybuffer-view-buffersource@2x.png | Bin 0 -> 101344 bytes .../arraybuffer-views.png | Bin .../arraybuffer-views@2x.png | Bin 6-binary/01-arraybuffer-and-views/article.md | 261 ++++++++++++++++++ .../01-concat/_js.view/solution.js | 13 - .../01-concat/_js.view/source.js | 18 -- .../01-concat/_js.view/test.js | 41 --- .../01-binary-intro/01-concat/solution.js | 13 - 6-binary/01-binary-intro/01-concat/source.js | 18 -- 6-binary/01-binary-intro/01-concat/task.md | 4 - 6-binary/01-binary-intro/01-concat/test.js | 41 --- 6-binary/01-binary-intro/article.md | 129 --------- 6-binary/02-text-decoder/article.md | 76 +++++ 6-binary/03-blob/article.md | 212 ++++++++++++++ 6-binary/03-blob/blob.png | Bin 0 -> 10619 bytes 6-binary/03-blob/blob@2x.png | Bin 0 -> 23964 bytes 6-binary/04-file/article.md | 106 +++++++ 6-binary/04-file/blob.png | Bin 0 -> 10619 bytes 6-binary/04-file/blob@2x.png | Bin 0 -> 23964 bytes 7-network/10-xmlhttprequest/article.md | 76 +++-- .../10-xmlhttprequest/example.view/server.js | 8 + .../10-xmlhttprequest/post.view/index.html | 36 +++ .../10-xmlhttprequest/post.view/server.js | 55 ++++ figures.sketch | Bin 4153148 -> 4165365 bytes 38 files changed, 906 insertions(+), 312 deletions(-) create mode 100644 6-binary/01-arraybuffer-and-views/01-concat/_js.view/solution.js create mode 100644 6-binary/01-arraybuffer-and-views/01-concat/_js.view/source.js create mode 100644 6-binary/01-arraybuffer-and-views/01-concat/_js.view/test.js create mode 100644 6-binary/01-arraybuffer-and-views/01-concat/solution.md create mode 100644 6-binary/01-arraybuffer-and-views/01-concat/task.md rename 6-binary/{01-binary-intro => 01-arraybuffer-and-views}/8bit-integer-256.png (100%) rename 6-binary/{01-binary-intro => 01-arraybuffer-and-views}/8bit-integer-256@2x.png (100%) rename 6-binary/{01-binary-intro => 01-arraybuffer-and-views}/8bit-integer-257.png (100%) rename 6-binary/{01-binary-intro => 01-arraybuffer-and-views}/8bit-integer-257@2x.png (100%) create mode 100644 6-binary/01-arraybuffer-and-views/arraybuffer-view-buffersource.png create mode 100644 6-binary/01-arraybuffer-and-views/arraybuffer-view-buffersource@2x.png rename 6-binary/{01-binary-intro => 01-arraybuffer-and-views}/arraybuffer-views.png (100%) rename 6-binary/{01-binary-intro => 01-arraybuffer-and-views}/arraybuffer-views@2x.png (100%) create mode 100644 6-binary/01-arraybuffer-and-views/article.md delete mode 100644 6-binary/01-binary-intro/01-concat/_js.view/solution.js delete mode 100644 6-binary/01-binary-intro/01-concat/_js.view/source.js delete mode 100644 6-binary/01-binary-intro/01-concat/_js.view/test.js delete mode 100644 6-binary/01-binary-intro/01-concat/solution.js delete mode 100644 6-binary/01-binary-intro/01-concat/source.js delete mode 100644 6-binary/01-binary-intro/01-concat/task.md delete mode 100644 6-binary/01-binary-intro/01-concat/test.js delete mode 100644 6-binary/01-binary-intro/article.md create mode 100644 6-binary/02-text-decoder/article.md create mode 100644 6-binary/03-blob/article.md create mode 100644 6-binary/03-blob/blob.png create mode 100644 6-binary/03-blob/blob@2x.png create mode 100644 6-binary/04-file/article.md create mode 100644 6-binary/04-file/blob.png create mode 100644 6-binary/04-file/blob@2x.png create mode 100644 7-network/10-xmlhttprequest/post.view/index.html create mode 100644 7-network/10-xmlhttprequest/post.view/server.js diff --git a/1-js/11-async/03-promise-chaining/article.md b/1-js/11-async/03-promise-chaining/article.md index fa9db925..41313bbd 100644 --- a/1-js/11-async/03-promise-chaining/article.md +++ b/1-js/11-async/03-promise-chaining/article.md @@ -69,8 +69,9 @@ new Promise(function(resolve, reject) { The value returned by `.then` is a promise, that's why we are able to add another `.then` at `(2)`. When the value is returned in `(1)`, that promise becomes resolved, so the next handler runs with the value. -Please note: technically we can also add many `.then` to a single promise. This is not chaining: +**A classic newbie error: technically we can also add many `.then` to a single promise. This is not chaining.** +For example: ```js run let promise = new Promise(function(resolve, reject) { setTimeout(() => resolve(1), 1000); @@ -92,7 +93,7 @@ promise.then(function(result) { }); ``` -What we did here is just several handlers to one promise. They don't pass the result to each other, instead they process it idependantly. +What we did here is just several handlers to one promise. They don't pass the result to each other, instead they process it independently. Here's the picture (compare it with the chaining above): diff --git a/1-js/11-async/07-microtask-queue/article.md b/1-js/11-async/07-microtask-queue/article.md index bc7c9cfa..30d14beb 100644 --- a/1-js/11-async/07-microtask-queue/article.md +++ b/1-js/11-async/07-microtask-queue/article.md @@ -3,7 +3,7 @@ Promise handlers `.then`/`.catch`/`.finally` are always asynchronous. -Even when a Promise is immediately resolved, the code on the lines *below* your `.then`/`.catch`/`.finally` may still execute first. +Even when a Promise is immediately resolved, the code on the lines *below* your `.then`/`.catch`/`.finally` will still execute first. Here's the code that demonstrates it: @@ -23,11 +23,11 @@ Why `.then` triggered after? What's going on? # Microtasks -Asynchronous tasks need proper management. For that, the standard specifies an internal queue `PromiseJobs`, more often called the "microtask queue" (v8 term). +Asynchronous tasks need proper management. For that, the standard specifies an internal queue `PromiseJobs`, more often referred to as "microtask queue" (v8 term). As said in the [specification](https://tc39.github.io/ecma262/#sec-jobs-and-job-queues): -- The queue is first-in-first-out: tasks that get enqueued first are run first. +- The queue is first-in-first-out: tasks enqueued first are run first. - Execution of a task is initiated only when nothing else is running. Or, to say that simply, when a promise is ready, its `.then/catch/finally` handlers are put into the queue. They are not executed yet. Javascript engine takes a task from the queue and executes it, when it becomes free from the current code. @@ -58,7 +58,7 @@ Now the order is as intended. Browser Javascript, as well as Node.js, is based on an *event loop*. -"Event loop" is a process when the engine sleeps waits for events. +"Event loop" is a process when the engine sleeps and waits for events, then reacts on those and sleeps again. Examples of events: - `mousemove`, a user moved their mouse. @@ -71,9 +71,11 @@ Things happen -- the engine handles them -- and waits for more to happen (while ![](eventLoop.png) -When an event happens, and the engine is busy, it gets into a so-called "macrotask queue" (v8 term). +As you can see, there's also a queue here. A so-called "macrotask queue" (v8 term). -For instance, while the engine is busy processing a network `fetch`, a user may move their mouse causing `mousemove`, and `setTimeout` is due and so on, just as painted on the picture above. +When an event happens, and the engine is busy, the event is enqueued. + +For instance, while the engine is busy processing a network `fetch`, a user may move their mouse causing `mousemove`, and `setTimeout` may be due and so on, just as painted on the picture above. Events from the macrotask queue are processed on "first came – first served" basis. When the engine browser finishes with `fetch`, it handles `mousemove` event, then `setTimeout` handler, and so on. @@ -120,20 +122,24 @@ Promise.resolved() Naturally, `promise` shows up first, because `setTimeout` macrotask awaits in the less-priority macrotask queue. +**As a side effect, macrotasks are handled only when promises give the engine a "free time".** + +So call have a promise chain that doesn't wait for anything, then things like `setTimeout` or event handlers can never get in the middle. + ## Summary -Promise handling is always asynchronous, as all promise actions pass through the internal "promise jobs" queue, also called "microtask queue" (v8 term). +- Promise handling is always asynchronous, as all promise actions pass through the internal "promise jobs" queue, also called "microtask queue" (v8 term). -**So, `.then/catch/finally` is called after the current code is finished.** + **So, `.then/catch/finally` is called after the current code is finished.** -If we need to guarantee that a piece of code is executed after `.then/catch/finally`, it's best to add it into a chained `.then` call. + If we need to guarantee that a piece of code is executed after `.then/catch/finally`, it's best to add it into a chained `.then` call. -There's also a "macrotask queue" that keeps various events, network operation results, `setTimeout`-scheduled calls, and so on. These are also called "macrotasks" (v8 term). +- There's also a "macrotask queue" that keeps various events, network operation results, `setTimeout`-scheduled calls, and so on. These are also called "macrotasks" (v8 term). -The engine uses the macrotask queue to handle them in the appearance order. + The engine uses the macrotask queue to handle them in the appearance order. -**Macrotasks run after the code is finished *and* after the microtask queue is empty.** + **Macrotasks run after the code is finished *and* after the microtask queue is empty.** -In other words, they have lower priority. + In other words, they have lower priority. -So the order is: regular code, then promise handling, then everything else. +So the order is: regular code, then promise handling, then everything else, like events etc. diff --git a/1-js/11-async/08-async-await/article.md b/1-js/11-async/08-async-await/article.md index bf777fa6..8ecb6d6d 100644 --- a/1-js/11-async/08-async-await/article.md +++ b/1-js/11-async/08-async-await/article.md @@ -307,7 +307,7 @@ async function f() { })(); ``` -There's no ambiguity here: `await` always finishes first. +There's no ambiguity here: `await` always finishes first, because (as a microtask) it has a higher priority than `setTimeout` handling. ## Summary diff --git a/2-ui/5-data-storage/03-indexeddb/article.md b/2-ui/5-data-storage/03-indexeddb/article.md index 22236903..a78f8db2 100644 --- a/2-ui/5-data-storage/03-indexeddb/article.md +++ b/2-ui/5-data-storage/03-indexeddb/article.md @@ -7,7 +7,7 @@ libs: IndexedDB is a built-in database, much more powerful than `localStorage`. -- Also key/value storage, but not only strings: value can be (almost) anything, multiple key types. +- Key/value storage not only strings: value can be (almost) anything, multiple key types. - Supports transactions for reliability. - Supports key range queries, indexes. - Can store much more data than `localStorage`. @@ -16,7 +16,7 @@ That power is usually excessive for traditional client-server apps. IndexedDB is The native interface to IndexedDB, described in the specification , is event-based. -We can also use `async/await`-based interface with the help of a promise-based wrapper, like . That's really convenient, but the wrapper is not perfect, it can't replace events for all cases, so we'll start with events, and then use the wrapper. +We can also use `async/await` with the help of a promise-based wrapper, like . That's pretty convenient, but the wrapper is not perfect, it can't replace events for all cases, so we'll start with events, and then use the wrapper. ## Open database diff --git a/6-binary/01-arraybuffer-and-views/01-concat/_js.view/solution.js b/6-binary/01-arraybuffer-and-views/01-concat/_js.view/solution.js new file mode 100644 index 00000000..2f51384e --- /dev/null +++ b/6-binary/01-arraybuffer-and-views/01-concat/_js.view/solution.js @@ -0,0 +1,18 @@ +function concat(arrays) { + // sum of individual array lengths + let totalLength = arrays.reduce((acc, value) => acc + value.length, 0); + + if (!arrays.length) return null; + + let result = new Uint8Array(totalLength); + + // for each array - copy it over result + // next array is copied right after the previous one + let length = 0; + for(let array of arrays) { + result.set(array, length); + length += array.length; + } + + return result; +} diff --git a/6-binary/01-arraybuffer-and-views/01-concat/_js.view/source.js b/6-binary/01-arraybuffer-and-views/01-concat/_js.view/source.js new file mode 100644 index 00000000..e88b1a53 --- /dev/null +++ b/6-binary/01-arraybuffer-and-views/01-concat/_js.view/source.js @@ -0,0 +1,13 @@ +function concat(arrays) { + // ...your code... +} + +let chunks = [ + new Uint8Array([0, 1, 2]), + new Uint8Array([3, 4, 5]), + new Uint8Array([6, 7, 8]) +]; + +console.log(Array.from(concat(chunks))); // 0, 1, 2, 3, 4, 5, 6, 7, 8 + +console.log(concat(chunks).constructor.name); // Uint8Array diff --git a/6-binary/01-arraybuffer-and-views/01-concat/_js.view/test.js b/6-binary/01-arraybuffer-and-views/01-concat/_js.view/test.js new file mode 100644 index 00000000..bcb19dae --- /dev/null +++ b/6-binary/01-arraybuffer-and-views/01-concat/_js.view/test.js @@ -0,0 +1,31 @@ +describe("concat", function() { + let chunks = [ + new Uint8Array([0, 1, 2]), + new Uint8Array([3, 4, 5]), + new Uint8Array([6, 7, 8]) + ]; + + it("result has the same array type", function() { + + let result = concat(chunks); + + assert.equal(result.constructor, Uint8Array); + }); + + it("concatenates arrays", function() { + + let result = concat(chunks); + + assert.deepEqual(result, new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8])); + + }); + + it("returns empty array on empty input", function() { + + let result = concat([]); + + assert.equal(result.length, 0); + + }); + +}); diff --git a/6-binary/01-arraybuffer-and-views/01-concat/solution.md b/6-binary/01-arraybuffer-and-views/01-concat/solution.md new file mode 100644 index 00000000..e69de29b diff --git a/6-binary/01-arraybuffer-and-views/01-concat/task.md b/6-binary/01-arraybuffer-and-views/01-concat/task.md new file mode 100644 index 00000000..6710104b --- /dev/null +++ b/6-binary/01-arraybuffer-and-views/01-concat/task.md @@ -0,0 +1,4 @@ + +# Concatenate typed arrays + +Given an array of `Uint8Array`, write a function `concat(arrays)` that returns a concatenation of them into a single array. diff --git a/6-binary/01-binary-intro/8bit-integer-256.png b/6-binary/01-arraybuffer-and-views/8bit-integer-256.png similarity index 100% rename from 6-binary/01-binary-intro/8bit-integer-256.png rename to 6-binary/01-arraybuffer-and-views/8bit-integer-256.png diff --git a/6-binary/01-binary-intro/8bit-integer-256@2x.png b/6-binary/01-arraybuffer-and-views/8bit-integer-256@2x.png similarity index 100% rename from 6-binary/01-binary-intro/8bit-integer-256@2x.png rename to 6-binary/01-arraybuffer-and-views/8bit-integer-256@2x.png diff --git a/6-binary/01-binary-intro/8bit-integer-257.png b/6-binary/01-arraybuffer-and-views/8bit-integer-257.png similarity index 100% rename from 6-binary/01-binary-intro/8bit-integer-257.png rename to 6-binary/01-arraybuffer-and-views/8bit-integer-257.png diff --git a/6-binary/01-binary-intro/8bit-integer-257@2x.png b/6-binary/01-arraybuffer-and-views/8bit-integer-257@2x.png similarity index 100% rename from 6-binary/01-binary-intro/8bit-integer-257@2x.png rename to 6-binary/01-arraybuffer-and-views/8bit-integer-257@2x.png diff --git a/6-binary/01-arraybuffer-and-views/arraybuffer-view-buffersource.png b/6-binary/01-arraybuffer-and-views/arraybuffer-view-buffersource.png new file mode 100644 index 0000000000000000000000000000000000000000..078af9b334bd1d681498acda89b6f864b76016f4 GIT binary patch literal 41139 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%0A;1U*0 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 B>s|l= literal 0 HcmV?d00001 diff --git a/6-binary/01-arraybuffer-and-views/arraybuffer-view-buffersource@2x.png b/6-binary/01-arraybuffer-and-views/arraybuffer-view-buffersource@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0c4d3daada46b35095009b53cbaf488954b42e2a GIT binary patch literal 101344 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%0ArqZZ?T;?{3i7tkuSFpyMVLS#h8{ zu^9ti_6Co8+;s_`Uz{_hmNh5E@7AYvxewn$p}02PoSAR!QW1wFIJza!Yv?_4T*=bz zvEsh}-Rpb`>If!Z8`g(|NBDUVD)=hs9K}UBpNmYgqDImc0!TPEp3y-dAN{v=9q-rE zmKrUmjN^It$y>)m-l-baL}m$|Ev+)H_sZtSvMTKBIb1(CH;|88ya~@w;bODhfci$8 zog6wL-8|=<#_m5NjuyF7jfPT2&4Z8$jnY?$5Ce-(&Nf?;S%#Z?59TU*J_Oj>&B%(B zxLgzCD;WKIffRp)+FDgTc9Tb$tH{;~Ce7Z|YX2UAB23gYO_jL1= z3l-YZ7V7jbm|02Y#=fqf+8#3Y=baxnu?(k8Tq27=k;&V5pTabw@KE@JQ->F1=ROGTZWQZk0)6MRAm2L0fQdFn&oqoTmRxkL$6r&pHY9 zF!IZm>t-O8Y*EL&1{{a&?S0+$MM!>p4^ggp0%J&!CEB&YrsFG*x)~4VV|y0&E6x2l zccPDm11}S`4U9ZE2P_urhh&oPyz<=+d09gh-7fd6%%+O<#0UN$ga1cp^i>ppDpb>J z8s(sH`75Mm3TBF#ld{fthJZE`y0Z_GfIeI+5M?uK}LIGz1)0KNeiTns&AV zwENYEJjG2S>6>zgwxM5xXRG7hmPI&Isy#B|co|xBT>Bu648)Ye|0XM=mVJ)+3x`@f zkM!H{Vohy=qvwq|Ca|uenb7E*jGsIlobyx+rdD3{5G5S(-XeI1V$BOYkgiW$;%l02j9Z52rYhMwBP=E zQgD5cKvSpPR38)!@t#tz&fO^{ZKG+u2g6cBqo94+ewx0!Zec-9wfM)N{Wyw9@fnp9 zcbi)0+3`Z%IPb&3K>p&X)?o9cM$(z`UNXL8ikjP9GLAvtaTxArysQHjG%mNxON5`f ztaP{D=AXKS@X4#3NHcTpPmu~{ z`yv`f^Zh|6XiQoS27_CG`@5SRiw_wLEvDy2MF&2Q>RTD~q7?s`wZ$PqE-9r;y_>FZ zvQzE4K=f@gt~?k*k6N{7M7~8#5!~$6jsok-_b?S7lpEnZJ~)Ru?%v%`)9+AXOMA*k z40F;qsg&Sv)%}b#O3re*&3hPX@6t&HhkK3>f-QV+vEWEfSzY_9Ey1|>chqSw)ur`c zv;OtJ04k1z5(K7zeM(C#9NGe$Dt6J`I;=ME358&*Z^~Z{C_i~C%nO=xd}2Ul=PsAF z=Goart-tuh@)Ti=HosMM_eZMbt#`{;o>dE!rkhS32#(l={w5vt9TR;*3PNX|TG}D| z$PphS4{qu{jZx?nRx1=v{0S*R-Is)3UL{Pn?x>3Q6K8DU!24xTlE zYwyoT$E%7T_I39Wggk={PYFXij!y1u#;M(36AS<1^u95&PgFwB1N}4A2z~8Vp1!o? z<3XzM9a_C|hDYPHieu@j7&NV;DvDy%Lu8+8oUsjs=s@sr?PY0QdaRaC){AQ=oTB= z#7T3xe+z3PN!Av-whS z2%f|2JD9})kLeyysyc&o=Bvw^!J8UNje(zsq0d!RwKaGeRlSri)xM)!b_?|AKS=Bi z!js(=;^WN%l}C?!v^}&vd4IV#Nhgq4Hv+oB8t_&DW=x$qGx%PQd2Oc~ZX&H8Z_td> zd)q#mKGjAv#L0v_SCgmjDG!dr(2SEsB6mzE zr^PYGakTswRsB^ypP>9YE-CI)fsG*HUZN23G=eE8gy8~Ob(bNe(^`t47+8S%F~*NF z^tvRHrD~s@#d6+}U10sg`COG*vZ}U6KWAe6`5lh7M;?t*x!eadvss3@Vk^FpkZu+< zl$gNRyqY^9Jx4X)@}ti|kE%(Y`-B##R+GaMrPB)&mNWfyw_EcviOs9^MKT4bJ!-bG zOUYLFY&;9BR#Q`zX7+wx%dM5{A?~Wory0fz+aQeE3GnWHna?Y)`NJ6O1bu zx@&AilE7%cMULXd>SQH1Yi2fCXvM$@wm4rOlOHxBTPxiAW|Mit_t)rR)-%? zM3SEAcBX1JQm-*Htz}Jjw_(s|9vh`rEm4oByLTCb=hVN`*xG%MmfFpUdRTdDOK3>in{OHsSq@)pe(&61{a%0$i#;s+pO1kHfuaSdI?eM}w)dWpoyu z_Y}{Ckl{k{$MWn|3)zf=;k-xQxSfF!epcs2FZ~7CIuBj2$&!@xIdB68disERFP=3 z0^jgswQWw&&%DE3zSauzaQoc;3i`;eRaMBOMFNbU$Rsj6Vf!`gAR5uJ67$M(AR6$Ts zPsR0#xiRTgY6gWO2C2elXtRl#9tAArrvap?gH}y8Alx}88dJaWD)b-#8CDjnCrhF3 z5E4zee*Y-A{aB{bn`dueZ(r@~b~{JYURb5}mMy1D!!*2_wv{obw|Ke-7)$ z6NN)<1(`Na=8J{T4g@JZxNca8}n<+dXvj;ax zA1x%Q0v+^H#s$L_^`gnt>Wf?sDw&|va-H4JJx46!m6lp`mSgXJ(~D^x`IVHV+faWT zh6Z3%a}?(tu_M+!(Vbl)x(hdwoIf9PcDk;MwB~u)_Jr(*)tYi_f0r=$z#lwu^xN96 zU@Q0rQUs@z58Hes?Tun}p3e}PB6z7?04x|gcegj|B@1Y&=gVvq$gW3%NZG{}TQ(+_2 z$gY2gaE-Fnzi@1<(uBlHm%p#pa6koEnX8*x?tX1m0TG;iI9FAqORHk}bnLv07cCsp zXU@`+4_dv4aH{Jm3z+BPk1>z8lQ-SOKo)@-;itH^hyY#QQxF^gwYy97GZga=Rr}IG zs}z4U4MJ|}0(d=D3F;-3`RYU6TQ{hDgJh9>hQhDQ9AVVHomh&RnSFD8>?+UKtEkSm z3m4n^L0fumsbN3PbY;F#Xgp+Ue8J+lNBqfb!qn*7w3z|76aV5M_~OgLhs}n@XDffW zLt_rN9eMMi#Cnh2!tjj>PwU?H?#?j|(yQCjpXONanA=cX+s#!{3e)FXS zl!(+4dew0hnaFdSzS}j`?bmp6bqH2peyfUF*LT6$RK`_l>0Sh`S#zL*|qs3-*F=vr{kq&HOzmExqqG7vRb545>iCqMLfMxrE}mx8fJbr)*=d+ z-lztKus8Qvf*T+0?`%C{=e=G|*NRCmrUMIYo;X5oGG>q-)~G{z@keYWDTIUBik>-h zX2!+s!J7X;hc08?xb@ZK-%4USU9HZ}k@YM2;L)o8avhGQ(NiWWTd8wlG2h(rob&Cv*fE~(_;(D+ zav=A`Wl;MXwv;kiH($zC)`4V>e6yU_^JR_h;8^GhPkZ^c?##FnZ8#Hc^pwqSaEticm--n^^slnZ`Y}2kp9ybW*TLB^YNpN%KMRVaZ0b zPMRSI?|iIzP081pzfYB@r~H)XH;6EG&Rs>$f1jhn^qhyeNi?4Ar4H@uXUHZs%X%M^ z*>9f&4?Y*WRdwoBZ!&^H0(PT{vYgwJq;rh@q4tvJgSD)=s|AK9N*aK-0JIv_RqYb( z`-ZxQQaG7u2C9?}RLk8rhhW_%H%I!8LrJP?j-eFxx5`B-<@`D40$RF3OD+v+%^rDm zo7L{JH4N!PuY*~yy@TycvJ7opuRTSetd%`fIIQLRvP3_T!|7?>o>fGCVy{NTc zfy|R%hA`?5t|(@x>;_ki%kLWzZcW#|hf>NChEZxz84B3fHUjD*vo*J;=HHDm+lGJ$SL9{p9;lmVr9R)g2RiLzFBNPo;>yj&1$;cR^_`- z$I3qCkf4dDH`DBnp&~WJM$T}{`0rM&&--x z_sl(OZ5qzHBeH|FTK1+>9RAl;Ezw0I0KamuO}JvtrnkBd^D>WL4$jjNKoXSmu1vyZ zbLFQ$B0h%wliCRXbOE5!Drv!D)s_6jekieEGmSaW)QMJR9?{-#1WnWRJAg4&7=&D2 zuzUH?K(HX-#0OM|&6Dgd^v0hYO&-960~#eag4JQj)7OR0#RH`nzuo z1y^*f7FKS@87%xt)17LaHXU5fruPW-=)nS5sd%-5m;KMn08&qxg5c6|sEI{w5#Ibn zPd5Y|kX`4yW!1NCT>N;h&+qZhj@Hh8PQfrwr=Tx%b;1BzirB99!L85~@9%tESD=_Q zr{*(#PfQ%6h)>LDE1d_Q>~h~~6+T*F-UMV3V)KMnQ;aiiLKbtbAsgjPQembjUZQfM z{c(pfPAl*c!&drsSjxJ9|58G6I3`1`C4?x|xd}`^qzFYt>UnlW=_}8JF!lB&pYo_` zLjTE(SY5XZG?v`?Hn?rwW!3~rY|;ZeQ+Gf1n)F2s{m4b1y~YOGSXOsui1~n%rZc}? zOolTA_ir|$Qh~{i@@(O9w{FekZ97LoZA>=C3rj!INoS-q?Je1pk!cELMFs4$0pguc z(>DZ`aToK@bwFeVbED9GW;lO>OK%MsO0ngTMbdY$1#&9U&~2W_Wv!yqcs`3U9t7Vt z7;C~=35Lj|iC8(HV(;=EI4wrCgcya2y0p&liki%4sFXL}+Zxd7LKb?1RD7_YTOlEp z@vnCyi39+CuGXxJ>wu&PM{8WBiuh_HCK?7=E^$KoBEqOnRTM$Iaeo<#>ux(2E_r>96mGe0+wc$G`dGql+)NEFt7L<=1fvIF$CW_PP+cf95K+Lr?evr zHBjt%N>3SctLW7+*?*d%$4_rGp!?AMCOOd)E7ClmbzH1U_wD@aw>a-zvf6&WYHYeP zsaraI<{_9%rJXQWk8C(Hdqt6nJh`?nZP4a@*HU3jQA{6%}Jvtb_nV_KoFu#G?@-ZnWKEw%@g@(@#s zViL5vxh+~j3po#Vno=M_R%L@GbAgv8uRXYO`E^QyB-?^%>=CP!$2jQ@ujw4FV}96( z1dx_>Qppdm=mrZ5t0f26vul8yiZ9KmN#{2Rc&1ZXqQ@(p7S(YGDE|T%AyW*md)j0X zI$vZ^KgsX*)4342?fq?2c?h!L!66VZL zAk7^KAfKGMar4H*HH*5hJUKb>h|7i$CC8u7!f z?24z8fl(F0X=4`{yj?;VQkpY{VTCL2f%}{Z(;cZ-?XF6ll}S5Hz;$KIbViB^{6sUd zpPXY)2tVv>t|^sEv(J;UuHF9%red&soc+Ie__B9xKX~rC$fWHw+wn!DE8QAK&LA|{={L{oRadB8n|gh8LYu++^?lv0 zDw-+Ta|cn(J{)NrFhtfG;8Ko_k&P(Gt!r{nFqCx;8BVvvz)f4qU1zEUD>4d!N1@*xwrVDN(x`k$j=%Ri?YR_ zMMI{W&z@?MzT^_7vi~ zT{gN^_~VdPQ{=C}))Y;+mS!CXE;K|FDm*sLG6|7@be`MfAB5)xZ%`>dAPM590bXrc zqFDMKfJq%`)2P%`ubO~VcoZ5$1WSsox$Y}(rcy@BwrYN_=z${J9?jG(9-z;KUes(| zQO_5$2bWt$2#T9BA5_%1=xM&!7GUK}1CM zR;lJk(-rGEcpOoswl8$LrHL#m+sgk4cC^`~VP^+6h|>Murjcq1OsRJ0L#l(f?4C$n zZ(Uv5@?$PPixGAn{_(3E^J?t21f(gq%^dYKAZD=WWy|20vn&I|^MiOH%66EVE^Jhs zDYm)To|Bi{$y!NzuK{#+roL|9*jjY%7A&4=4jdpMaxxM0zPV2$D{~8e7uKD=VT>V2TRE zYNC0=o=S;2H)T{Z?jYcPK-b90St!6aOWDpiVcDw}e#&NRY;o{>o<8mAn>t15lDisc`ztCyeZF5C+G!TPpsih=;V6kOV`9!#9js+onDQ&c{D1^Mx9%F$~Q zS|B*dyfII~u2@CO#L1O!F`O$ny)S##jsSIfZ4T4oUs@&73b?24$yqdsn>C(@y0wnc z7^w01WZ}!w8dAJnKzJS=;=J@e$(H42&@KP1Z1vXLh3OyiJD>qeABP1N;AJYO|7Hg> z9>Z5Yw?PCNqEmX8efH~8UMZon$EzO;=4m`COa?kC$!^CEg?M;Bf{8|XC1Xr;6he)i zrU~^I|0c`Eu}Un>PKzj%PUgyUn+pisDv|;-Ns?)AS+F98e7abL_|Qs1qQxU~J}HQ( z;4Ha&eJk@aNz|?CE!MNcXlb5cQY})bs2{lQD1=o{09}3>hKeCfnqQ^REqKIt1y=7) z_j_I0_m$E_lrwCiC9rqgL`*BTuIfas4t3u^$(WOe^l@o_B+8Fu*h`;XegCW6`1ZUy z{-F@(_9E@()DC}?FpUM(_W+_wp=_uR7c1N$(79q8u_f7knF5169Tf1z1$}}M=c{L! zYp(WBOu9};6OXmMifTLvx~12zk}=-$4rp2A&=?)K`x)N7>owi{FqCe%Go8lFXGp-e zqEE{_eYY7=la|x&-95tSB8=UIOqF@rwmKhWej7>S-#+i5?n%ZI%D_uF?ov_Nlf?2( zH%@6wjug(3v-1KMjgGovHb-L%G;Nf#!|gB(^x0+>6M)rl~Lx zDu;ELwpVy}k(SS_31~XXozH%&yR^fv!J*FXo4yqsRMA5n;=PZBvMl* zUA*l@OZ>5I0{Ri-I5SQ6apw&!uwH0Q4Y}Fzul9&Zx8tV+4ius_(C9HAAZpdolzvCu z-E%s&kWY9=*6cOACOAYy9d_-&lNM(L^ABT;tT#SGhQ7OM#wP+r;wO<1=@CPvHRFeG zf9BE{a7^G98o6}Q2M&}`S&0N<%#W${HX>6>QI&;k;_>r`dS71?`Vdkhh{(%jBqQg$ z-aqD#5;r&JRL~WTiE@y&}YPp@1D;q)K zQS_p-em;m8fpWUA#bz~+ z@qV@WyqR_1oHO!DdJ%%LkhrAoOr)#XeTXV$0i&a6>e-d-*k?cdJs@1c#n+QLJr>w2 zuThNR(ua^LqGe9~Kl`}<7#J4Ie1JSjKbuw_K1*Fc*=Q+=5O^j;anPFeO*@Tr-c*8pE9_518(ASqpn3l|&o~A8VnCpLBU6v`&aSUX-wPqS)w~*F>T~4j$SoY!u>d zw2hj9wE3oJ7hOM$xR7$8QF5i~OW%Og)OH)AqmS*b87%L0%G%cKBD@rnwsSue@z&?? zIubcXeAzyMJ&IK8i)`f(tEX;7t+TSG+h(MdQgwMU==gP=4#X2`0O;?K7Cs^$+D9libT?Iaj z#8%6PUAtjK*ur4%w|GoQSa(Sq2y}MfP}?Jm2*G9X;4-wL{wscq+Xc{=Z+BZ4zehdlI{S>@e3p~fHZ@Eb7SzMx@ySlh z!NrwO`2f>E>1_kf0)l28TswgjGE80>0UgW6V~;Gxy#?2oJ}37jY|MA*LOSthgT%wE zf|2x(R}CbH`MuE4@)`gUyAoelp;sVOxS2?W01bNz&7n4Ew=AWRrG zOiA*fOB66vsIgq-L5Pv@JXi;CDAcjIG$+okZ-4vsO;rJNU1H{3yRDJ$3Gya3m!;^3 zign<_qG8*&bh*_egPc+ycj%5z>cEtuYz7H*erjL4zpu>CunlNHoQs{`ZKcQ;BxK%G zz7UIm7TZ+Q?*=ijGEt7jNK??k@Vu$tMedKG3|38(2pVgF?azH`Ar{rk88uU}8=o)T zH?N($oN6St_Q9%@*3}@o^%8cmeQ|ft?q#7;p{va9<9N024lSG%&kW%rFjike0b9?2 zP8pu=`lgb}CmbqwdVGt}t4uPlcTIy%^br(=Z+`n|DUpm`fD~HwR>%7z301lZ4*%`~ zGr2d*WTA6|6|k*gYyJAb!MdP-Z^e7(OHtcW*9j!nX3ay)x;G!a)}5oh5vrwWBIQ@z zjKXslyB1A5H8r%(V@6k<%dkQjZ18m@L--tR}pVS^*N%`!LVr(nR=EyTYzmU zZok_kB3-6(&y&AR#NIgJe%6Qf=ipZ1eX_n^LBZR}JlbA0W7Z9-z3D`jDi?H@+gvV# z>eopofdFNKJH$D1(JL<=JDN#_y}W8va&{O> zFlxzN|AZgBg;8tx!X}1_sS=~(~Trbv~W24ao$Ze zxmhE7lN=yBRK&uUCGnI+p7!L8RX`Skk=A5#>KA+ELfCHrq}hJ9jV>o`+M7cV>wcw>3~NJy=GmLu#c}u!+Kh{YB?OL z?EC=xjgPG9j^%)BULV=yZk#DSQY zV{jOEaXrdK*oUFRp97XEM@_RMzZVR=pZ;p^5m z>+SelJu@eIPsikxJiRBEPL7UJ%(9E6@}_QSHx0CGMAC^m*(eqpB3eO-TW5i1V@^(u zr%Z*+HFLeHSYpH5iu2$fjfJ^B1Y9Qm4_vlLJzSgjf=(vk$!GB+#Hsfqk`yl3&gsc; zHtybY9bzf*W5q)IN&1!lXbyQ7fvUj~SOWPx%90vKd|Pj?@@!Er*n^@oi$dz;LsF0I zq%oS`^%i;6th~<9*B1hUXsFF_>Cv}w-59lRU-sjX>*JEk{Sn2MPG4ndh*-5-qo6i* z8!`5wz+Ba(^-G1p#K)n6@5Bp1I6`Y5Enl%m7fft0!ViusCJ z9i^8R`<5z#PEY%4@7es^;cv7v`A7uYc1!2{wdCC8lkV0OFN}8m<^xdNLCEA;u2Xgd zI8L9`_~1Y(E5gc5W9$Q_qk5K?PFDQ%_zROtqtcd-5FIi-kw`vwx;M8o?G3=*T9(eJ zJPo=u7z(-Um8^aa*pz9`<{ZBe-SqiLTY+drF-J}JdC~RvEDss)l)qM9fA=c(UVj?P z`zX^~uh@qO6=k_Z(_FQ<9?{JQev@n|u?!y^;?Jc}OV!Brp0oYyDF=B!f*1`dEOCRb zEv>Ppq!7l>+~Ye|&dYD54<=`Bpv$bL8W7Iti?&&$DRUpOwOk8l0Xb&_Lgt5QXx z3=Pv;pEfUb#IwU{z6f4aW)q(p*`v^6Jm@g{`fBzT?IW8H(mA}BDn4qiXHQLLfaFh; zZor+3Kn5mlUn4ehEZSBacEE(nI-`qWu2PMuM2B{Dk-==S|sq#1k><>l^v5TE6Ty3aNY-(5J4R)Pa1>px<9&;_4nCdn4IV53 z%qmkPyD?N5q@3Ezcd?RQ*krG1XI4!2;Zok`Pf}D8N`-1)3E0ABW`DBo968#Iu|!P+ zt;hJs5hkH5{iyuoy6Ql*lWQBJ*V7gM@+6f&{UQVSHw+GsMDA)DHkreg&*wG!$C447 z9mP<4r~Sssv$`egP5u)9lDaXxJ06oJw~5+-I$uKYV-D0EfF&xiL8we81r(TeT>tLL zC!&2fi29Y%uo6=@ElSw+)pn;VPPuZ8Cq9-d;V%W;mW=zTL1*(#RY z(|L^e?$8c3YaUIFp3JT3lwqtk`t(t=UkchIL%m>|n=BXD#w1|dsV;c`^s?))|Md}y z@x3QTZHK(=J+G*|>wT#tXJ7gW&UW%!aCCSN+!l9koUHIVkiipW>Xn!W8{#%Z87-WU4)tEBJ^p{>ho7mnk`e)WVS~SHTf*M`h<=VMyQf?J45H50dJmuMz$u zf$uC4g0LL*xFl!#O}RwrPqn~dCW4|vc1IUG4gq7rxS zDq-a-tgz}5!NYYg!xgUWQ*F>O>+7cNn>Y-)S)(2v`w8%II5Nukj>hP0fUdcYt8?nL zT`BU2&rTPwhzRKE(~IlD!&>ysesqA=syv)hu;>s!b-H%o>`{GxZc9p*1*l$n<)-$5 z?7F08qgRH#sP|7lT~7y-4caU@irPK5?(XT73E7d!_0yk8D8dE?sMEQ>8|(nH6EmPl zFY0GjzE{UC@98me&|URFzvMiZx|x2(F#g9CnagjppY2{PF-6$HVYUO#CWMZ-S@Ey{ z%8m6A{nHSMynf(k%Bp42L*^-HOryJ#(~u zghU39{oodJ?$h!tPk+4)^89aa$>sv5_62DrzBHlvFV3}`x=~=M!~pCU`>EB8kU0^7jSl8&te(mcs zj^&6O{>3uR?7AG$u~{E)v|rt!wb%piRd}8%9hrqM;QUVwac##xb&kSFTxRu7hFy}6 zTy1`K#y(b01MZeQ5Nyf#v6q8V;3z6G!q5`>tp^JR@~DpV@P10?{6%k~QE9^8DxH9` znrOS$UEACuTKls)->QWOE!p_o8-P#bDYt0eLuxKTP{K7&;@p1ZT!1>i(GgwhDGsEc z!lHzaf4+RL&M{qlyj)c{LVd-3M_!(2U=IYDIsx3odHBh3sJ!|}&WoM3NLp-EBEB)h zj`hUvH!Wh{94N1lc58TT@-a>vF7UpreqUtNq%!S%9D?3vt5Wlwy}jrNvRb-q^3=k{ zL?|#akq@8hFzpJww!hBK0uocv5w|p?ND7>h0m({Q&QVK)&dg7r4vkkdyOZ_jQ1aW@ zUvPA(Y>UL_6kicq>`2m0<^{7FXcSUujBnt6wz5tQ*Ekxpd!ZS9xRV>Ms!qr*F#Bf~ z@t8j9hA0F|>8%(XIriz;KCj7(WS|z9{(_ky({nfOCP}g%H8v9EiO^F6C$m2*KtHhW z*L&!dCaYQFa5OMoT3vKpv=}-UxwALI%*_^f)*w>a#QYLkvN-^D+CC}3Wzxs7y zDGWKjQ)|)`xEt|Fw!6tJ;}Lt-ER+93&jk8%52&cY1}6>XEK7YcK^q`5GQ7;uouXO~ z86$;dCVZK~&fGwuFy&8u6q;U1d2f}iM1M7NIs-tVnsoD}G>VB@baJf|dndcnUlH;G z*6lMjn5P$B#^}UNcm!&HMe-uuC9!IuJ-z0{?wk)8u}}TbHmIbDIH$JLsc8JCWjZH# zlhJ8itK$JppWAhJ*#nv{#)F+dcQN!3vq6Z0yW3O=O4uBV-Z(Pjs;8@A4K$2fFhdwfh`a!ol;RKCtqJo&Cai8K4B9#`YHNZ7E*8%3iWyh~XE# z?$!SJw15itG1Z;6+0U=esZEVeY(*bAc7H7v_OSNKKq_&ttq#rGa~WjSa%`>Ctz6fe zeneR$Hub40f>$1OJ=3^e^5aVKS5(>uIR}#E&FuEZ*J0iDE*tbWY~JbmQ7*^djBhkM zLeSPgDyvD5kW)?gk7BUy#4^cN9ee$og&38KGUy*UPRI<&YMGG-qs@TlP+A&IA)srR zZOALG`WWG7@0XXDOoVVmJeh*tX7HK7H*sIm-8VXq;;aX@tFnC0kRU-7^t8!(7Uiww z4;&IpuZD|2Y(BUxH0yHUGrG}1#ml*H&rK>vaj>YClh(+7SyGx5t7Uv#8UFq_b~-m> z`L@Uk>1t438x!zRC%bv+=ZkY9#fI%Ed20~Qb6Mb0K-h2_vMpq&=vZ_7o+wgw?Qs4rAne(J~EE2Ic{%`zr78(GRc<-(@_Rk z+ik3_Ne9JEY;IbwL_~j`7(a2gD1=5w!r;& z7cO0A`S&HZ`RZ-=2$axD=UKqqGA^)N3~HNoB2%j*dcbKEckAMnES{~d(J;?TH!>Jr z|M=np+17=7ovL;w^4(h8i6wmgA42~U|H+lx?lXd4G}5{_zykZ`#vZraSJAsvn5Nf2m^fgB&box-P8$j^baRSLbM^LWEcyP?1_Yy4VFQoL;7G(FX< z*k5MXFXdigiJgJh7aGJrE%11s{cNBr^J(NJZNYOS^ZJp7Y=?eXWFnV7SAWFb@}9}F zM*MwLjr-U`l#gDi0S67g>8?ZDVCQi0M6PcXh7Gs`Ul=W)@2f|CRtR0($m?FjW-UJO z0W-uuHj-DNP1g-i@_**LhvmogWWZ;SsvYra;2H;Bs=~qeT?3M5Z}a@)r93>jp4S#N z;N{f};7$s)ZZEvoS$zl)48rCNF`mVh-M79n9x(K?F=Y=}idseoYPBIhigEug)%Npu z)X=5Rc}Jd;!}A)2Oo{d**xiFj4bg*$Z(Q*ooN-J1g7`P;Ge0_XE8Iqy#52y&&q`+( zB;D9?a<5x3tL>k(=NIO3)w0$kvOU%Fo4nQ&Z3UkgCWFnXv;6DO)O>OIc0!3T0BT$y zOvAo!W{_)fa0OQ3(!x&a>Hr1_k6c`(|}4%=}UgMx*(FU$@j5 zf67C{XPn41BP6EPp#UH-(e?fp(N&#jv$|0mDJyjkfd>dqR2-{!? zMG8O107q0J<@pJ3+xZx)y?##uzsza-FmUQvqrWlRxwpTrfErpImtyK@7Yq@H0g{|D z#yg$e*gK}1M!Il{f>!PC8g&-KNG^IIyh>WuiYZ@}u-n65G+4vv_WO zaxD+FWKO>NB143pbvJ}RLV=@u+wu{2nuv28R$Ac_JO0^mu`C{VCz~_@j_2hp7@6k5K^7K`URb@7~88K+S%Sb?r!Qm!2v; zqw`~DrWJHe8iTm&i^kPnlghR2Fv|R#cc9FrmDQIE16ne%4^&E;V#t}KER75$IHY`c zk82?wP9`d-sJNRFDqu57=o>5LoeZI3g_gWz zXrR@bvp2%Q&}Hn2zt9;a>k^W31}Pw)$; zO8O=n$W7Pm5x>)bTj;TZW1(U$I*n_xa>=QHrlo_ucv&;1f>+zOCJaR?Sjo@uo3bkt z&hL0k8lUKu7}|&4;xsKPvt`8BHk{er4|Aw}Pv|f1+={bMY>S_&U7-;7UXHbVmSWlu zc!qf)*gx`kK7V{(7z*sXBEvo2j1i|y9sYcKb*NyrW<4Y-Eq9Egn9XDL#gYLmkW`!h#a);;?!M}c0Hb@15(kx`a8JAYY*;R8ZN2^9SL)YSOO$PHi#>Z= z;ohccOo~pMau-A-S7Rz;+jTFAhEvoud2U<-IldP(AE11_{bHo}(p`>kJ* zd--*w=9?DBz(Yatc)l*ZqWF~rWl4DV2Zi$^1jPE)YeUy#HM*P~&8yf>XHj8qarZ-h zk*x)wad4R~JE{_{no{3}k0oQ0um~3cVyd16Lu9Tx_bHXipw$Qo`}YjT`2yaGzRIVJ z(w^TgMH zMG^`qmAy4*rApJqVI9f5ft{2?c3o$eL#5g%n8oj@b;J5u4u6y@{4l%GnIY*lF*Z^~ z4vq)0?EO>=wZxlAIy~|kCzIN9daRoSGO^T7HCeHDX8W+5nPS zQAvfv?GS0d4RbPoY98;D)nUl&ffpTZ4+sn_^x&Y z9NKi$xEN^++i&?N+H%FXy@Vnk^--gxR9Fa8lqp7ri&HK~`$fD=D=e$mD(HednYzv?pwMN8`qi1DP`( z2ki;p?aw4yW10Ea6a&v1QydOYMg1t;0MRKSWOg69DLq36x)ETODgL6$91^x4f>uB9F`PE_i<9dW^1!zobF zgkt*Sj#Vo+^|i_VYW21fgoYYs?V>j3X`Sn0;z3#?t1bs=N|ZgdVX1~aO$Q*4t&*MW zUE`^f8wVT+oUfwUShE^9c55#)^N$v%C%jBKPDNMYJ)U2vXnx@9ct^|Mz=ru%o9&fP z#&!PFyGBzE)}Bq%ZKDio4@Rmb47{W8m&}dAePTRlli&mIMvu;KccjK$&LJdo)$LPW zXtrON(RGQ}+^DS^bUxzzK{Bp@UlpMWd(zfdm`EU#w~vnddoq7 z-{_Xmm}fn`D(~E(?2aF6N08yu2WdTdX&&>j8A}+1m1^fS5Wi9T?dir#}pMmw7w9|>@(RgL`UW)aZgx34+E#ibWvIJ#h zZJFlr5#BlHRYB;6SoZiSB8XT?QYBPn6akEat@sS#N7iiC49Tcb8Sv&4Fk*?8U9RmB zuT^V-iT!)@<h9^iL=QdoRO~U`hoQkkwsVEYl0H7aCne3dGJgWTJbjLNoFC72 zUK)QnyVUyG&-rgLxm;L8jK`JZ-PHwRUkSSL@e0d=*qY7~6IPSN42zn%m%)U+EM}bJ zcG?M^`dFv;ZgjgyKx?6K-GV-sY0cFV zt4Tj#;WN=fSg&3k-P7S5Ug{=0%6`}VXvuh=&J1z4VHg&X^-X^>Gv94JDFp&690&SO zR5zthxe`(gLE6C@Pxz6thP1qv)-{+;%|0w%&`%Gp2LB+rLcrK+o6doiX%f?gUcCby zZrS=9OHEycY48NI;KH8TbPJ7MoRW%>AO-y-igMQ-mjbVeG?6|*JqGC4j^wb9$~XzHaR>XIx-NWn8DSb>QX3 zQsoM4{Vt^EabT%*eZXRkT5YwE)81Gc&U9eJu}dw`3JT2onm^<^I$x|Y;>FAC`7EUD z$lWNE`7OlbEm#P`GtCS2$R}^foR7DoBk)N;j{pXd7PaLZ6>$1Yfm@{h?-|2A%FIH) zyBV23KwpnU$@nQ& zC~$0AlN9z{J!Gdjd&qJ&y<=`_O4_T0p&H3bDOK;j5|1`ma16P7Qtml*ZQy-H=}L8@ z9yx=UjZuNpo~y)>#%RvPW}~FN$3Ro(Q-eA~6H1dk2AqL7{rGqH0|*du zN_RMz*nUL`0RSCXe)=9RNUI%{U-+@Bcxoz;;nCnV>%a_z9HhjQ&6o+G9RK4i5Me*_ zDy3cLsa2KwPE4B8s~7NW`xzaM+3`BRQU>7!)|J{KQB~XioaAeJ_MNE9p^mml<=l+%yGhI9nr1c}`XixH4DnUPXiRc>9VJ8P^+?N;l z5u6sy@|tP{s}4VtkVh$zt#vdr`$bURWDxa@&Dc0D_L8ZFA)9PX0|gUA#krgzlb$aD zAJ7C$x_mdGM$khfVW#qAj@wU#@v?w3Bt4$XLP<-l+k;-Dvp_fB8IUA3(l1w*(4V8Z zQPe5<`m6N+oCVO7kMbT)U{|v<96k=bf68B(23$gpwAoJ8@aHVrxDNO}E&yGXskhzR zTw6zO7?ym`rs&w7=kV9m{%YwWSss7wZd)oA8+TO(NHQHl<_I#_|I8r`>s$MwX|>7C zdps$eA?2ew>^#X}t}*Ssr$~P&<=EOcG_$D|MK{`@DS7}F{t9wYF0G-9+Iq_H??T!? ze`9&^t{IS8^Cas*0gW-j{rKw`;(=qnZKHPRBcHJb#H9kAyh@sr5qE`s2m_k~FM;52 z@>*>71dJ-UxZ=}fSYgfpWa>0Bdip0JemE($DI1rsdQJ2@&CXfny9>!fUs-ijQA;UK)KUnBNF?}dLNXozkKJWP0+8xXy9E3vgLfKfg&;tmf`H0G3F2f=OyhjCWV(X(FZZ-xGTbwZu0$plz}^&7l{SSV zcI|ZOcS$ufbXrrl021}zo-G=!(WzTyhjeB=Ihwf*sEk|yH-S0t9j&?>pPG=bpCo6pl z0f8^{D*UcaoNBmw3?XIE7&!BNsi9Pt5u-JwRIc6T4&8i9Y{N&YYjoo(NoDyD;z#{BCwp4vp)+@C+DUTG?k9Ry01GcU|gUd{O zf4r-}SViBMS6>C)UP&%7sZ_heZx`dSJUF1)YayDorC`LfTC@W`>25ePhw-nc7M*GC z;lXRTQJ@cuv#`9S)g<=bBcwhtsX4|jL;p2a`AmUHB3ybJa{5~qMW z6~DW-n+~d&@LJ|m2#KP0l*c^Cc$%*?MYHjg^XiR-1W~iV4)F!>$Yh;cxTnF0kj=6U zt+;PG?L5v*>y(^Pf+ru*nmTw{)4oR`G^U-mOd?Hz`xC70YJ>jd`I2kWlqncbjncSe?`bQ&oftn9u4M=7+7vT836|K4B}z0r3O04?xeS75S;8!2V#m!vCioJmBoa$9BIX zr60Z-1IhdUw5~t9dLc(;VBN2IO{lyA+@+qi z*JRnTUPVO4wBkdthIea4it98Wvjwczql{qVD$%PS-9tC~vtw+^OqE{&#oZfFuj<74 zeycX$1Q4Lav5$KJ9(mY;a`LPryyGpuI*S+Qe(4UQ?jx)ENu8XhJ{|6Wi(DopSq_h< zzI)&pHVikWij50P=C87A#0>#xnZ~o!+p>3M^bR3JZx)<9bh02O6BBOsu{%dJ=y>GV z4VBMt79Z&Dzjp;---x6x0k>l`W^m=oof9VGBz#&yI`M?p;Bo2USXH1$d_J>_HHw$* z#~Hl`%VM|X5MBAINvhQRsShaUO)tUvIiTfH~`kJ;Qy*So=b4ZJcKqVr@32UEal2altl~F+a7j0mtczDVf6cJgRvNuWaIC1mKfbjsK?obm!in zwNBAIhgRqKUf$YaW3a1!V*_q@jlXL+N-fuLh~r+vi&8A1RnCAiCmrO@kqgQ-F`DEv zDevS9+!*EJ(qT_&WA+=BVctwg!MuKdhrPX?qb@nkini;C5qLgag=@NzlRwT6b z&G5)-hN*J5n5o=iY3D>pz}N76wbNQ+UFXEpY6j<#`dl)nyhnNxXJ0f`bBfRRefm`L2&7-t&# zik*U^uYIWiQ^(K>T7T+$e5XqC9L@gfOTzh~y*cfWgt9O?r$cbPj0k*w_<3VkHS}h? z(=;ak z1-?xW0D7LqeZLB9)r#soUBMd~8QZhGYBMyc@s)oOt_a3#ef=!c<~+2?3{9wieZLXS zae#R*I;Qa=2;)WR&BxifFTDdUX4ZYVjzTF?+<*7= z12914k{FTV&9_l<$Ga=WqDJ2CZ!0AOf_lpzWgGJ4+J5uqHdI|gf=t}&7`ep6q7wOD z&UqR?oD>!kEBH2?MqIlp?#`fQl9e!bj2DzRSY6N{kVVU4IYD_cz(8DOfaBO4LXPk* zuHTpD4<*dkdpCB<-xd@clcIuZ0 zzlgo_E9BtMmqViNa*s;~9CZ!}^pR?3s5n{q7sS5*nb zg6!_vEj-odYjGqCJsG;KkqkF&naJ<`HM+3e{Bj|I{^~>JziIEE`0j1-g&?gF8M=od ze+f$e8=is)4^R3c+VwvI*8hHXon^-G;w5MaQ0N8eZ$kg;_7WA#7VQ^?#ow^xziykW z2pToP+kCnEpYibD!(SmlFTv;HoxfY+pAx>aCoF&U`+d(J|JBC-^CZ`Q!TC(rM1|k# zod3EVAqeKak^TA2pCu!xEeIvI$Qk-)wUiJ9TNzhY`1xnaSe_H~64a?p{yz`%*IdJx zn}8{+VnV|IESX#;K`)n+vKjuYmRdcQ_A24*H`}T+y>m<>b3{h$el^RC4#C=dz(+4` z{8_R~Gz2fGWn}x!q5sDVa({Wj@#`*(tj!8o!T!i*!}jL_s^1D zHzs(&jA!E0KYKySFE3aL{%rVX$!^vXyr6l5Gwjc5;rrzU{X_~?|HTX5{_=te?f*0Q zUu@I-e+K`91GBu7`#%r=lbijYhyPzl|I51a|8YoXY0uruGTc`GC$Jggb&>qjy2SSj z*hDaszx*%2rui4JSyJNqOVs_}_3teKM{Ci@GJO4Sh?n>Qanaq}o3-LWzjC}f%I9>y z5KdO}>`MipD-PcldcVhEi(wv_jWg1QK+TfHU$Jaj_~hk3qkuy~YtQcN>)(@$e@%?JV8S|mxOJzF z=+825-6Aa1E#I#FdF&rVgmrp*mdlmmPueD+{QCrC78*?U=dnLg5b(=I4W3`6nw@d#C)v>&L7elZXGr7p0$7Ycss3np@E6(q)0Q-OcnwcP( z41>d;$CmTINdRWdkb4KQGgtC7&R_oO5z>T6CCy+n=>OLINa#|%7yIBLs6F_?CG4%k zZ44_;DIv!3<25oSF7A}>#^NM6A@P5pmb_kVnh@~^5ZgyZU{u|Iw#Uc`UG)tZ(85vi z+_&m{8D41_V~YN`0GGx26X*b3I$#g%krmWF5hvlk%JowML$d5@RO6IVj}lIP zv9dF2h3T2)sY^0Ugor z`1}+8*JGRsE|A~Ol>1kQA8SiMoO9#pH@$Mgrjh>bHGa#VUxoXtfg_yy@D4byL$9Ei zhw92yA*_MWe?Vw@^}X*NNh{i6y4mQbrZU9AJ+_7d3!C*oq`3*_u|~R@w14_rJaADX zgn~(5(?O9Sl1ir$gJj+&nddqxTw}H+;fmp z1Q8UZLqb~V1_h)+Noket?h;TD>FyaMrDN!!RAA_#VWfNl?ZMq6edE>x1_^|*2ClTlcBHk@35FdwG zouVRbxjj}Mr8XKNxAyceTIzEn$s|TVSxXSrhruE1?tuP^W==0IF2JuENx(#B;Ihem?rVFcX#W5kQ!d^|l8h z6Os~Y#WuG}(kGJ6+rFE44bT=IEdtlp`77a})#DD4jt$aO4+GfZ783RqP&qWpa8yXH^SP0>eH74|Uf zWPZo@_W-lePy_249|HU+uk{rEalU+v=qpiWE*Zf01L+9^{_*2GkP`!={2 zT57U8ct11t=Eb)E6$JJ<`Hy@~m0K$56D3PM(FQJoIY~;wPX>>g-NqFy`YW`zFS$)8 zN^^6T?1U@=!-brequ$Eg>hj)hury2dfBe1RA1F|J3S29e8hH>4S?=rX(b>;73y+fg z+8k>^==eGL&!(nTA_tT8hGgZIIA2i?qtUJ5xQQ^=c#A5S^D z{d^!2f-x<2$-p2cbf6>y29|PYZ-{ZQM<7UL6sJ28poR6or=e&esPUmI@^al^62S}jmv-vkfRVRC1Wu> zrn-cRzZT5AvbwONLO_if6Ki#B^{pWE1PdxGoe(k3BhZbiDcZfVH6c`5_1%Bk-ULEpwOMh(a zS5KEN=-8zm9%ip<`>6AMa zQwln~a3MMUnhn&i6@yOs7MBBlm>zHuXKSO6Vg|$J3M>zjLaIZ3Zt=uD4f5j4auVMA zm-*xY=s~hP8k+dXM2x4qdnK8!>cXI$*akg+;j;rx7)!C?;Z5jzB!^z(oz6An7$SMn z)%=4jO$-XAdd!}qK$3Xx3&%s4^cN@;-f8TS@q0u0z8& zJ>`0nfPl=JFVm`F*Q$d-HV+OuOb(e@T{46`=W~wWy?ftW;(vEM5LrKO@mJ6FaQ61I zmo|S^XOpmLCbT7hBXYO)14jNcy{QXpT~e#Wl~1~_s6|Nj+vLYv&tUX zfKI7}yoMpvZUE}H$89Y7G0H}Gdg}0X@hR7&=-rDXZr22TZpZ|)atd!IdyVbYpefs; zI?q5{E`SA<{|D0H{|}_2L7;0!d!jOm!_3SVX##~d4}T3HBR;g(v1}I|Ik*)|?&(|} z@xLJfVI&sO+fcaKk|(D?XrEkWXvv)?ifj^>p&;TFlKM~X#TstLTwjhB8yx1Qvxf4sda#=)&!qDwrt2+XE4j=az2=6mEh z{lsi4oSDN(#cOYvC0WG&3xuq&6i`R3K_ytZAAtQ=s5n>1M!JNG#Ys60nE--1f3YkK zk?9E_QDJPNlp{k?Tm-k$_&9vIj7GPQe9@@j*!VXT!sn*$gf_F2(;^sY0 zpBm;X0Bzwh+NgbbzR#5`V1%@zzcb}uil!SYTJ8qJMoocu)oE?G`H5lasVk^z>;bn= zm~AxKQ6NBU;z2q0)j+qo+^09teCuM5to*+K(cs z07@u}RPMnwnf`rY-vJrK^rF3Y?kISA0KiIsTFN6_g=_3vLLFM~Gnf zUsOq@G+l+nvFbeyKB(TL@h^duKtf_PD}^oV{HLK0O;w%?I;9~}K5y0XW8mxD2>08nC=C2u;;UEsSK zjmhhzb6?_QVhMDfSUwK(1WnusTCfWU!nq?KO|-~p^o`ria@Uf=U0d+aF}st`BcSC4 zQ7->dRFAn<%o&ynSp4Cs&NZd!zuCg({zZ|dH(FafVANq@#qs5-z{)w)XPwHH?Lo8J zvyHWxUeRaa2@AI&7RZTKGeVlms}NL+lVAc_f|k&o{IH^$EGiQ zHN>ABX;h39cRE;c95B-7O10b0K4#1axGYc=AT*czWMbBVoqpRIkV2sA-itp%ssQ5! z=f}cf5a_@khmUyZbPB7}O<)lQAZQj=O7M4AwuzLcZ+NBNAMZM{evMtSv_6yVEn_ec zu1r{>5pX5gU84`MUBX+wn+5Z>%5E01g{M7~HR(Dq+8k_j);n1VVgiX4)hcGJ;&1?( z{Zw`A3{*myR3~zF_XPbf1M^-!GdUD7_9~8=V$1NKyhgrL zEsY$kDb zJbej~e@458F)dsbk5ndn0ad$(mU#~OgvJP{stE1D?+ST|W?Sp$hLPE#mrOdJ)yIjL zkL{9$#`S-(EX@O2;p6zW(NVlITJQkqRu`KdKl{E7vMau3#zO}nB}CZ(=mG3u?AzpY z2#9HXt9(os-F~t63C>pR353~`GoSd@^wmx*XtRv1ilSj2VhtM|i4kyl^@rGtuP^?z zJX>TQtT!-E<~7YV>C=+?e2?Xkc8PvGFw7D0ht0(7Ycc>@Z87G-EEE6-RI#Li2RyH` z(x?eg^~JvC#Kg0Tuca|*85&ui2PS`M0$ZTHsZuK~<}jQNQ#{1S6FGIhV7NgKSqNy=XPuLofKijL z2{RbF-^X5IvU@+Oy7As|%b`Z}@7x{qT#H67$R9mIKs%>I48aPkizH zg?}O^kVeheAJvgjcnACJ>4r1q;Ix8{HXE#yOKCU@xe(!zVQNTgyvJ3gXt(Hxd~_NHudMuolQ?@8;@2PWp9%xGlpOj4k|w zn)k_*U2(S)H91LMnNe^j3p+xOE^FH&*phb$w@) z0NyYihd40kpyq<3PVV5kz*(Yl4=?5m^a3?#AiL$9ntS7QB}1ZJ~*VR8O;zv ztoOrlNy^0rM;v0-OYdwJ!E?3BTjT%2I!Y%NJITmzSLiz1KIy6?k5HI}=p(rKA1q<2 zr}!TCg$oK&!!W&$E@v)9dJ+W^&xMV{t_giJ0VlWu1*Q%3Su4^$+Z`-d{}j=rt~1q;>fHiu-y zoNxdDvi!^$&3N%lo&w3h->4?xf$r_7Xzw(}6fc$F-*i9!qyrLAq=IDggvN3v#~bx> zcOky9VGP`tOXMs*A8t-GsN~CzSWfzZNzXfeUx)Q|y@V0efuVvunpzL)$W{c6D)ZPc*EYg>?;z#x^GThr@j5Y-e{I|y~13~U7 z65pShm5!mv`v(`FuV#|P%pM@3>>iyK+r)Q8BERCoP*LwxGP!LQ9_XR&%=mT_9~?A& zP}TFHZ9Ka)3Ci+qI(sSXdy#{FGipGafx6v%(#}?4J!WT#JaX1Gh0Z2RSKSi!kp>&4 zpPO-M?orouSJF?}wIio%Eklu_8!n~q#G9{@xx8I1XfBGRoDwA=3B|T|STAg@^ z_BGnG48JGSU^3lhq=@}-=q1}2OSIH!Xv%#e3<0)`KLrftod!qq?^eAC4>=qB<7p>R zoALZ`iKw}Q1NnfYT}FQ7O%I`BBfV-5uKuAHeK{D!%&Ljb%YE{L4DvlV{kneELTib; zW)`2Kv}Pg8oV)?5&4_WbZVaQUlQ?zp{naOdpeKq{*5+Vd z&yVSn+LOKhr=4fzT9HW&j{{WiQf5v0YM@F?Ysu@t zDs_io*M%l6azXBKhpL$8a7g_1)2*=xQaW?4u|~o?2Yc~_rkN+BDnkJArK^R;3tBy+ z!R`>y=q(korfJb?~XI9v+xLPa43S;hyQixvo{ONe-5Ju^r0Gfc7 zKETKvUSr^R=m8KOW#YmwI0?rAj6S89n-Zr%z0Jq8@rOTT!>g`>*A@beW$|R9O;YFGAbKv+h#KZSr>Pu=a;3Rh0i$C6h^vPkefo>+Jjx-T_T>O=HA=w0=ZevMyj@v*sC z+R1SWuFq!;?mOBz%|lEt`Fb;_r&Hf^2KTPNf}FoiXfvb3wIT$vg;`EOK;kNz1YC8P zuW=#Fw~$J0G?{GWOHg)~3-f66j^(#ivHT>z2O~P4xB!xic?z}A0nX%z!42?4`rNyd zcPX%*2Ki@y1SAm)`U0o3uY?KZ5>eYTv&QhcLdT`l`zwQukz{x$vf!a?)l{vftCGBx z2P+KjxaW3EH5&tk;B=*Z^ZgGc1pd;WQ!xPA>QTPO6%9_O$dbDmtW-SF9qBo}{D7jI zYu0CGI7L(s8f~s-K!u}o12I{%UDn+y&y#%uQ_gV?9xXSrv?AmPa5HkRIid02cvA-` zb`G#oBytlU^TxhS#mOZmUCsOx9^8}p@W_f*BPe70Jtt0YA@)-;b~tSmp=65~#_CWG z1euU0AFKPBgwx_`i1kWR2dxp6GUXJ|ZB}ie3;-fY)7du{wNtz95zh`EC>^qL@4&>} zDCdyRpvYQGniFFpxCvr3y$Lq7e zL)1aKCcOJ14fcUURaT;m?nvLni^e*~A)37=Pd5O+8^t-@9ABWxI4Xvj-2=rcD4ir?t zZqMy&2HRnZ|6pm`iohe~^k98#ye9_^F^f&Q$*&mSAPdL{GM?ZenPnp=C>UJ0)RLav!)3ygIse zYHe9Q!?rHbx#aHlglzDIMj(ZH*iR)22sqUc?Cz;;-hYr?7`f)@06yg!VbWUgZfIVe z?Mp01k^V{dE2$PPr7Ph2ibv>oP?l7VpZ*s7UYP8MsGUaB0EU+x@O>oAl>N z47i5>pz{r&qj6LOaq`9j$hi#5@O7}YS!P*1mqNjT=XVYY0sC@Ta5&|<(9!p9`$^yP zPZSscvwb=LYxOxpoovh5{!(<7?8BmKeW1eSg*_TP4*^#n4uc`{q#343l$j0L{&Xf=D|1Opk-SW62UP7#cg_Czvn}$ltda735 z&3}`8;F8KOuUe5A*X_JRDb5122rc16nvnP&enr{RByOv_& z@pD-@wr{NfH`N!NQ18mTq$I!*MJMGYVs;3iQhSn$tg}HUJ*!-sQ+2Q{POUIH!}F6` zTjX^OWF*D4S{Gb(PW$xsatxuKk0Foht7Zk=*Cgrf)6L9g;_i9=t1-1DMP*(Bluv$U~Y(c`D%h>7M(&W3Iy_M8K1< z{)z9^w0k5AFsF^Z2+s2(2@e`H>&yK?mlC(D{PaeZcb zHZ&)>j~Tq6un(yIV(dK=&s92HOtt6J7zu+Nz8{~5lz2wb1$}FUF?Rth|Hn!}&T`P;z(?lC)3bfs)PBA z3N$c#=^>wsjZe2ZGz;P~W9J0ro6APXa++->pB`->*#0A2nf{}pUM}N5!j+o~GS^BT z*Q}v9ma4|2j({7%*#m6K3&)+YF^uX=A=^Ab(3Nsb{rF_aQdifAwe3j)$4qQ%h?HM2 zw$FD#wVhLYu%OzU-V0?wW$uq?^}qLCNz2ekp*TC1#g6S7FAd&UAar z*Xi=D9P~tuHCG5Wb5a3`h2t=wBWroI*^A#~mVebTgLETL)z0uo) zR2kH1aSeGC&!(rFz%}T}BX4)t<1bCd%bo6PO~xDIAI{yk8i3`HmGl_OtOv|(285WgwmcJZN(NYbz>_dD$JtaFePb~%^El! zQKOvO@b0tH+BTm{>(;EZ1F9WyKPxmQtKS&=TcJ_asYdczq7myaiN-qaFWK)O9N#{( zab+;veE713UHI&WDP+Yc1XB(lgJtffKJTBgCb`z^z~-3Z$l!>dsIp^e`%Dr;K;_+; zD^cBXv?(GD>tF@cGKWh};(Si!zdxvfO{;#MpnLa@0;?}s-noHUZGaBXX{m=vlU2-4 zk7KbjwmWizvf!VxU-N$y`I)Mf%2Uh>a|F;$h_ZO`)CSHqqVE z-o4K{-y>WndN=k7e44DP3sX#^b(*eAwR)^O-(cYGg?yeYm%iS05?DuY5J9?E*Qb}p z3+1vj{2Z;qviY1d$(7xo-Oh$~u_KeWlHntTED}fCtLcj$*M%*PjziQ9x2@n&@F^I-e+njDW#? zEA8f5q$Ew0U_-f^X~%e=<1xv+@5r@G3Qglx^-A`e<-QAMU{Bf4ObJl7)6V>8EvG2b z0!D`~Hk=Gv{F9wN)T4xkzBia=ji*VpCOyAXdJkzzWHk%P_AJBejS(ilQ(N6xxVe4P z=lPBBqL;*iKN2e37N# zisd;Uhe5SkivQsAgpyZ_H64rHGf1iTaBjyv7qImma^cS{<{nH(t6g~d3zq1P@N zZ}SGp;o#&Yd~nVagl-n5)(5U+EEMay#~r5fPu5%ds-_EXsv{|ESN`a(T5n{ZSX43x zhVGmQs};%7b=sRHcc<_{EZk>$k{^PTOnYiOkGKJmi^?0>_E*-yHsiHATP!74Cf8Zi zUkBnpe?$=ijgi@X+x?8t58@lSOC!mQwBtpx_l~FTrx-PE@pkw1+ZqzqGGZL*y%1@& z=~zvZG@8$7Ey16$4DD+#6^PG*sVZ>qD+9A~o2_82T}j2SD3SP9*1x*s$q zDXJK9R#F@H77`ycyc~(}G?iPf>SM(y=iG4{T2iai1!SEyD7Zq?5hvveaD|WTSPbp~ zgL_K79|2-+yTjqeTQj0jr@ji`Gb4WZf+dgGS(@?bM1!d{*x5oLSODoE<1)Hpo0^~) zSz;vP&D6{_=?1jeiP}DQCB3|nNp&!M%TmCd>aiGrN*T~80Sd9N*M;1CQGx_5>l^kapfT$uMAxiA;$dG^7hDW~d5+44gn?|-d*A8uV9`Af*Uq%8 zG7XP;9Uj9qL4TReCLw2k2%cPLnUWn$Vabvu`=XVX(K*^k zALNoPK$VO(Mg5EHv8ziGkeE1;^inT`3EdXtoSM?&%BVx&Yhpu;<-mq9I1 ztZ_J_p7P}Gf5m!i>DGK*Ij+{zPAbgWM2AMiW6^XvfDqGpwMD*0i3Wf#(V@jBZ{oDt z%*JARUH^Jc4N>P@<8!$x+h=!Hz+no0{B)>n6&Tby>KlFYwg2Q5vreN+1l)BSS`#}|NLJZS8gakw$MrtV0~Zh-aohYX)D-m^^SUW``-`f(HZRD@u(Tn# zVN^$^g%9I@(HsefiaDnHXa?7=xN6NsKx!JDzs|fgel5|X7=UrIv1_hWD8GHt=T+0U z>C?6TF`}8wVzA|l%1|~3Uw1qQald6{>RDPHo-G34&LhUwa=U$ET0=HZ0ahKoSShyH zI=_WY5C|R5$pZAJW6~%65&>PC3Fi$72f3z`qhMV46Zgw!p6xCpV~EP;bAnqQKmMx) z(2#61U8bbPm1?||SILpZGi6QngNZ8i0AOx*4Bz}=ic0z5WOAj2sC0|=IqJmWFT@5R z{c7q|pHLBeQHcNShIAN8(OBQ&!l%gzN3;=0>;R4S%Zjp}^%4Ux>7sy$_0kTsp>9?O zW8cp@j#GTU1hp}gI=vxVPKzL{HNXHyZ^z40dr9W1P|^X3NJZj^d@Mi-R_x|#ifPMb z{8G(7%(<5G695Fzs2fI58JC78veztgYHx`T=uG=l3+i9DtVGze28a8f*G7(>Rh z+|e1EXYxJUQheF9FYD<`Ww^K=--Og1!R6WeKSQdHX`>#APf7D`(=klY??teX60L@u zW0F(a5vMHL?~^w*+pjz|B>bct5SZJx1gL3=K2^=*ypzCXtzG51xHWy2HeG&M4+z!k z;o!fx1UH_&t0}*{A$S=NNRf3kXla>#$c*_EV<2ytB+r7MnQg!tJ$Rt))=_0z${?c0 z$_=UDi5a;%^X+r!t6Mfi8zy>h34xL8hmG)4F}NoPjWYDvwx9Bny+Ow7l3g@hE~g3> zM=>1v4VqZM?}#T<+_xiMZ=x#lSqAksCNNovbs83qX+WWR<%lI)jGS79^og48vTsHn zu^>>rroBtmv+1+3Kj9@0x+^UQJCdS<&SOAY`9*yS;Fo$6x(KK{7!tOfILe_Xs2NEq zwiQOT<~<{JxD^M;gbG8k38?41J9La1OzLcA8b);N4?BXML_mH9@CL{ceQIsZ;|o5O z&3fN%60SyG9#84@I_Wu?`-k#!O%n->P7a5}YL6a(O&&H0R5hUPNIJ0NqehWf%QjsO z-EytOaPlceq_yIRF;0!J<7@Qxp5wMVLr`@@WkL}ZC<0+M)CbN%S?dCi0Kjn&{aoP` zqr|GrKB?1UC2wQ7a|STYUe`4~cU|4x!`oAWxv6w_x1g%0zs^motw&4-QpJo_=H#dQ z|2Q-aqDD`9t_`!~DK@xPQD9T}|Hc|A2q`Dbo7(NLg5$EYgs4Gq$(f{M?2+Bd1$??KnMlkr6$f>=!>pVX205^~3_ac;$SD8awPMd7z!$UQOLJ57|9upr{G6J<1&Z!lh5^r~ti z*CAdSr5Ie ziH*IpqiuIk*+|x%k1erIct6Kb45gAgxhkFBs)_4E$bmZ*m|v^rE7_mwhPS*Odg7n4 zTizbh5(FGRlJi)%7U0Wi8}g%AP_>zcx<)A4vQSPHXy4eEOM~MXyS3yZtV>)+jnBBv zrc74P&(+JRnu^Y7tcM0xo9rQo$kE-WVmEc+$~{A)#eD0$M>g07)%KHWxhmj?K-5c` zcez>9v2!;oy}m}Pkd;y49-bGq$iD!&3;}YsyQ`kCNteYZ;kU^d`N*wAGaU<``{7ei zmgiy1tIA}&uaT^;Tus9P7~*JC&;Dmvc!J=47>(XyOF+<53FlCzBhfZ@Y_IhtzcrWh zWwOxGWQ5e0@uYPAPwH}Gw-B&o$K^wBW^G*6QSH`^v4vn?|XCyC#-`c-I`qQRD} znvt53N5%A?}Ks<*S|ej;5<^u+Rs{KXnY4ngR$yj1VDy+xDdgsSp(Jh+=fpH4yX zGxv@0RWXS=EdaE`k>|>;!iIILR=44FrW@%`6AwT0M?u+E>XqAv>*KAD&^KdqSI0r9 z#o7o8E1pgPXz9y-=kcE@e3IEWqmIKW1^V_sX1A0Z!%VI&Z_Jd*`xd1QO+mN)^qMtt zoO1U1a#YuDqu|ZsQh+oj>f-CrM7`7c=zcMm7>*4xCP(7z!}7SFZQH81&Hhp`NUE>G zV&IYTU|qcn+M_s6DOq@E`#9=N)^hRS9x7gJpG$! zwZ(1*{>b_%etVMRk$3n42QU~Rs&KGQcNEYNeilJ3wlo!`tiZGK^?!31V%dzK5F+cAd}{K7mDlSQZ#zWgL%WnBcsJ5mE$ zSJ9Kcn!-1=-?{BSuG(~tq=n}qohHJB-p;W^R$4GgHJ$W8R@sq$C`O$or+AwwAa$`k zkGjX6qzWjRvZwOfCKz}h3A>UH7d|wAilW5q=NBwz?6yX&cuUm2oZ}N|e$B9%Zjv&0 z2Q$FM_oekmxK5r}=Ob2=kKWozaO%^4_#B^Tt#}WZIOLa@HDMrDOzpoJ&$-t=*~sa^ z_44J1?7nn9D%8c9ffQDy?ZpljJPYGzI9xP6z<@t)Tn*IS)Nya!zHLPp^&NB2Qn6Kt zhp8iWQ%}esck{@7YXYUzYRo~jzvLLsk{lOlS}g8w$g9WBk|JiUwHeW*xWx5}!TV~0 zIY%)*YA&cbE(G;4l<~HhsY@l>iI)LF&1ti$O$=&m!0*Z|OUkLs3grt(om%W2s~752 zRy5SJ?giZP=c=z&@*#je2-9diU(@0)f23ETR|+I%VM3a zl%%%Mp5{RimhXAHVy`-4DJt`Q#k<~2yPF+hDH#yN$WWfDf2TbfF5%vJc>^aqn~9eT zwrsG6^BHvmn5VUTo5n#SSm=>@eRlSUqY|-h6Sbhyg!pcn^F-}7wj%2JA(2rt68`s}IcC(z}+kCJnwXlTBN?mD+iLNCLj z=lMPSS+?R&rX6O_M37-!rQ`tfg>V%E$Y}3{cI()D2fvQJ)bI1I)d#x*!*fhH42kt@ z=(Dwr{NX~=x-fnl2kp09ZJs|r|NERj45okVRqee1?$(C^a~19Prmf|kdQN1`@PTMf&JzPE6FK%o0lijR2wj|vHcs2s-emDY zdnvMNvM26Qe-inb`7%p{_uhGa==7c2fMCghf^pc#cy~TK=h68qM#b|&HR9{LdIiiq z%ru=}Se?OJ?u=IyUp*_~g_f4P)3E*gAhZsKwEDzg#>2bNdKw-Gr^Lt(gSg_lmn-@S z32?3CXTsX5)7}^rXcg&@Wu~9^wj4o#gR&2{xb|$d&Llg^ z92H{6Q!W4!Nr3!a&Baf2ibxo3FSZPbtd#w&aqdtu$`!m6^MO8K25ph7Aa2Je7YN zAcl8(p4ghW@N4yoR#w8BA*#q=t|AI$UiQ1X1`o^H*2$&?^nS!-pm+(aU&KhhYc(gL zb^1v}T(SZ_GCp0m$R69_;MZEwz*h{^eL?g{a-JvPwTA3JoW=jkZmWIt zClUC`3HMqFl&?tfT#Q_Y*9Xt6iM;5#KtRV?X4Xq?9ya&&>sP{Nb-SN(VOkcjOyetdiT+6n)+_fpsAL3KosI0}t z`e{S`=bvg(e}t%xbytLhTUm`i04HozhD2g?>r6k9aA2PN)uIF5%nKtr?YQ!0*w$c~ ziMelh5qUscOuB?c*yw}8-NfI0(KCJ8K_W2!%V^pkvg-A@6Se70@~Vn%eFHm{8=_I%MilPhzczfwo7bBJG#!%; zx&9@FzyBq;=GS*t8BG*;hI%d7EDgGL>HpU_{`uQE)_1Ypy51{C#BZF79N`Yt6*m!R z3{7Ue{;>-8!T|NDU5xzRFYiW(dn3TXewS>LjXW2}rrjMG)8!uI`s+*O>M){{j&1Tv zy9HM3^lGk#$H7iU58Z!)wEyjC{=jIuzPMow-$6g|j)l^|F}yJn>(}q}eSjnbleoP@ za}C_(#P>mi6!o9Kesl~>dPk=$D!ZWcKS^wUt(hU2ge(1a-udI%^fWcob`M_vKXsTu-gxZyg*1;HXu-eGT|NT9}L+ zzsySboppbgrX@0W-Tu10#S~u1t72_3kd%8D*%^^p$@!a&_v{rd5ixkQeyAONz_IjV z+#P5A*V`@12@5y{P7<3+idoR{j?2Hk%7O0s;j5boZ^3>(a{qo?w5E8{YYWd=&Wat; zzrF=w-X9@wK~KSd6CD4#p5-OrTort*r+9w7;H@l#A;v!K*iJdr9eIwrDEK&QInA$^ z{FxE$pq|f6W~oI*J4rY(c`Bcqg?`SQUf1e#-*5^a_lnss(DX>k^eD;f4-JB8I!)MZ8>;tQ{D?SbZErq_X$N+jhl*?T2$1 zMIzf#t{X@Bu?A!ACpM6u!~p-hqv)6jLpT8RWOGod3mG^&Pg7!597clh0cyj)I86YO zB;h@v{$wtX_I{QA4jm24+hPH`YW-%-F|SRh4sk*4#60U8x08RC3KuT?&FTkUZ*Bc~ zzdPZ?JK_`d>stehbC_wen!j-y*w^;f=PZIO?N-@+Y@gvu4d{4MN1kf@r7!fa9U5Rl z0{rY{K|Y#Qx9!4i8b0>&RkE`og8L)2vc?(h(%~B9{NG-hb6M(J^z`BD!rE_K zy!hRwXOW~;)AN}qJds6-g)^ub7(U6&cO*ZfkiNdG9dB%J6gqHYCymC$B$lv)Kdg<%SIQ!je^_F;EFe$-qqYfi-Z z!f;xA$#1F9HCYi=+3tpJI%fY2%Oi6A>%-5aUiYT(9d$nr`TY4-IK@1`;`^Wd$C=+U zTCA78e#V5wwTi>^qfKDNyn6Kb)x*@Y{r#1}?={&Y;cuHnUi~Tt1a@s42Voy@l<-LL znOTSyzkH6;4W}d@9pr2LSam8|SZ?$?YkWfw#Mr9d%A<`J@wD58jaz4G#)a6^WA_7o z8I()b;=W&Bcs{r1=RxqBMSTx=dFc$t-)*#N;J^F*B&Mi-?HU=LT?fME!|O@yyVAA4 zy-S%S1G9MZC^|+bOCPtH#_l&^4-p-(Vc^mZzq?O1W`Ki=&(RR+V>wjBE5p{2`sUi_ zUtUE(ere%GjLp{M)biii2v(^_*?i@&E@)NQ6zkyx0{-273AB{T; z?<~r%+2O%(lq}(u=1;*_Y7=74%|Nirgy9c&qF!iCdF)9|{Zli5RwZC+D+{#nIxSv( z_S?BQx?#jT{WlKt(;wG~FKExxy^{Cf+v}ejHGgkWIYQjA)@2%Tu5GX1J9WVRUBlqb zhtn51ZwyY617C9-b%TiLF+5o%i0IwF+X6Xx?X3+1{^9L`<2n=!5D`h#e76nj?&=Mu zo5kJnh0$PQ#;CsAZeD;a$KJ&~zr-7B&1+osBe%DlDkwM1YHnu=HzwCofRe-*CRRZ+Y{>^zqk1;3Q zp0^7cu6>E3z-JOv!~C^LM$;4aafokHQ4d>W?bd&EwQbgV82qtnqA2^N5h|*k`L{7J z@pb6!WjI7&P@Xi0_|knuo^V{bu(JOD`@q&3HB;%Q-vyZOuQSB24-S9h*cY(md_JDD z&12scZ*(Ub z2KM<@SNs$h$u%g$!?n%<5_VM>%u!67g#!a9qte8@wSbO2UA`Kk;q6VXU;?THpx(lC zF5UOPJ_~SR0iW)FS|9<39u~U~cyPT%ir?{*#}Yq1#$(Z~h|ws}73l*+Nzl&Pjj8h` zH4X#Z+pY7Mp$DJPFrC8TwVIJwCB!X7pl=XAg{7eQvFJm# zQk~V_3=U2AKo)GiVHALzw&|1eTGDyq#YJy;D$0$fy;RH6l1jcpeHVluiXFG>(Fj%_ zQ7goi(EDHc4x=CcJLn~BzfLc2qsF?jJ_NSV0kuohbvHzluU=XWD!;}U)+e}L<*_4v zU4K`H>8MJtcMD3;CIq3Fe7M#HY{C{TcBZ91M#fyT@OO!s7jD@uCNsHO33={i+Z?-Q zH4LL{S=^2Bg&byI_s7=QAed^V{309r5BZXd49?J7lgq;*P6xF;MrCqV!*&dfUjF0< zQ!VMp+n1xBI7ifg=Eb}|R~f;-Q)5C927~yI{l-0wH;-OGweS&pXSYr~ciG9fclM+F zzT>3w#jo5&c0@>MbvMJ@gvvFyFHTgb($1=-7lzJ z>&>Dm5j8rwN)PB>ez+yP?Bah&r2}#E?cWy@No2p!skY`u2#-xx6-h^?&$6HV`#hKf z>P*HyO$DV@6EY1GP|kUM6`9#g%)P~KHj*!f!eZ0n?HnYW`Y*ivcXF?#NR$Q>(jZGc zkuPCxK0wISnZg&^FoTlmjD85M>6>;RNhr_4S?&L`YT+Q6hkIjkVDBlsVg?n!mIbSg zNsG5HqIKJ%ut&$N4lQ@>qF}%PnXrHn#J>{zfXBqw0W6kpunOSuO3^d8Q&j6my#ktUL}1yg z%Sp04UWf15O3B>v%}w8eXNq53VzU@Fe6^XX)EO zJLB2%kbIm=`p|x0!j$R8@wV&jAsGNDgpFwQE={}GF1pA1LK48*vcO%vo)u{2FQAk8 zEj1v)6N1LMhAUz{XLHP+=!?j-eeXteeH?U7xY@e=XY7(>?M)z`<$1Eb!zI?qEzV5j z%)Lw-^(r8qZLFgQu^bx(T2B+)jWp*QU7XM9HXT`W-IEJ7<90c=II(JZZ9g3pd}n<; zOT^@~r;gkE^i^HXsq&1m_1Fc`0T0l{Vk8M@W1?4(LsWT3s$U#U+RG2K?;;>jGj|EU z4UZxks0-rO@<~x3qqt%MJEu(MEg_We^T^bD*7N(b-+uH#%zL7q0x}Cmp0%bpo757W z+s-y=gJb|O^)sV00OZr3F(!2`G03)WE?w|d7RE`alI8EvRem4wnVM_631MKk25bcd zD=HB_?`j*B?=D*nSbN_gstPj=o((Wx?bACC=0){D`gN^D%m1o{d^eyaf*spra`9=3 z(l?Ht^j+Z0vKok&zMO3A#R%x8@83_S=Jr35wja*-^$wIk$B!YMV?bkx9GhXWb#D%z zt&T2|bruzqs#*^2Eoz_ZMYxR^^W;f;XGw=-_L=h+8I3{V=;Pq+X0mPX(|x!Bx6|;0 zJU`UO!+Bp&-n{?S1@mMzlqrB!tLT%tdsq(8CtOuyOaoH9GR&_4W5TRc;;J=WusVDB zqE}Bu9^Q4oyL&j~p=r0hgkp1~moPEk=2Vre_+@3Yb7Kovh}f8J(`X|k*Jq$Kkv&O7 zr`lGZ#ox~GAu{qxtAuS`LF34yF^>r{cIvx;vZZmYhFh$|>3)bxRGb%dT(=9qFIe{V z1?x>QTMq7saQV|!{}kYUfBEj}qWw}!b?wU%`57N*xUA?KKKUe2GuI~xXi4yF;<%0S zzA;*{U#(}C(3v6$;hfU)YMPd+FzckBHuO{^Vb`DUsr4JtOhA$ZaUGeX;BoKJlQvT2=p6W%pelpTWLMXXIaP{O#Y9S zSX3pibC{%Y2u`#NH_lzc*29LjPMK9|$%|_Iie$o28$X|@w3Jx%EgRhzeW? zZ-qtcMsR@$3-0?0NqO6HA#txy0;{WaV{0P?f`v!Hz_=p`F=(vK2^uMzTE8t&NvEX@mYF)d0T89jDPt(_26K*)XSI=s5}|rh(h18b1h9hARVHrnbuYQOzK+Y zaIrXsG}hRyJUu_GQGN=0PbE%2A(Z!-NxnOdg$(8MZ&jHHjGNt}@3UGyfLGJBJf{tM zQ$D5B48t2^u`s@{J7`Z&#Biiq>nkD8dZI7R!&ZY`df?fdqv`eaOcWeNsg1qEcBU;Y zZ-_J-0;MDC9QFpBRY$!J%K25hn9_?_f+CuQY&u9|SmVQA-GzA6*O3B!R=XmN8NF{r z#o-iFn>PLuru94@^U$xO;>89fQhr$}OJdGmiol|VyP8-3hpIaWDJ zpI>!aMSeE#PF_WbYY;F_6fExw8!h(x*06oSSu>m0Hh7pLU^*9LI(R{o({DG$cQ92J!Yg zDjKt0!&r7-<-Zjw|5V6uGzCl@TygjV+!>R@W;#|f{T9*>%hUIDHM6{wBtG$)bs#&O z7F?Y?v+ew9T&qjQ=hg6v^yId1+|zwC{?;cy*AxRf2mz_O^BHF>u$3eH^SpYrCMFRB zVZ)!sft+{O;sHnmnYygvm%x*BlPT{;@sRxlj#b1LV^UybY#h%+gf&T ztl8JI={AtUXBQ2KRGi3s*c%h!c)oeO;^E?64<6L8?~}Q?|V>;G04hB(x6jAW`MbR@+dE_@Iqse^oyVKfcNP@s)^S;C{o## zxMelEc`=3ueuj@J&0Pm*yc8GX8Lt!Bs^Ab%y42oUfHKjK7cssqPN@-s*PBhBz5*k9 zKpq95JP#We-%Fe=+_0P!-ntnrIz6?SsZ3+RB2-d0%2mSRlkOe^mXFQrwoD%pzt{C$ zMsblb-J(k&bV=ECIe~Ald+o#CkBty+`%z5hE~JBRT8(awlT7--if~>;9`vj|+`mJO zYJXUPjfu~R^7y9+i%{sgVs`$@XuIB{)n0e`Yr9SOcXBOYV8z&QM<0_B;U|L(i@Req zsp={E5JwVYw$#hgU@1BniprxKduXQ+Eq);7!%Uu^s6q8yd z>0{8walcKeBm!_-kTaUPN!EFvxBp6x`H{V&w~bz^rAZnqfRUG4skDPUP)m<|@RL)5 z_gizMv!lB_->O><>>n$pl<))Xf4SGjK?@R>v^qQ16Z$k^lI#RB&1wVaTg_YN$(l)k zE^-2dGe8fN_xEO)hf6p~7n|?8FN<9?5-`aPaPwQ|YIJo>Hwi)~C!ieb=PjsJ8tk_^ z0MoFSErK3mPI)VUTNS&jLN#33w>@6Kx%Z}_u*&jap?P*&06D4?XcLvZJ9ns68jv@? z63$d>IkCTe@h-tpMiRWtjTQD&qGFM8`C{b8Az_Cc$-&-9^(*z-*3JIr(5aYcwqeZu zYmR>2iReo<9~C@%2MVh^PI9>RY>8L~f}uR{nr9d-vo4ZGW~G-ybIUIEDckQIRcP+9 zNUuVk6(&ohtamQ~yr3AL^_CWEUhTpf>j48GhD92Ty^pjNn%iaOF|B*!pl{)Y%Mj3% zp3(v$F*YFoy2L2ef4!08vUavIj}I90&Q44(u3CuGQ`Qsc73`uo$pN%k)@YBCD9ccf zSJ+!0^@q0HdB&gZY`D_4wU9znJBrC*XrhM%naW4OFl3du@lM+LJC@ zy}N_H;>vV!ktsqJFQs!V9LAdO>w@i6o7cuY#0%KB7uqlGZ11g&3jqD4pTmZuUfuX*R~f<#?GY5QXRw2@!a3SfLoK06khJCaLr)+U zwnUcS)|ziQ+hc7IH5vtrd%QliCSg$bI9H$I`+f|d(^alsaS*1~BS+>UT|?P_#r9@+ zBe|1V!mTNo2qkz=7jTdIe2zmp>3vfP0B+z|tW@?t9Dc)ItM#NLV8PU}BoQ!o@C}@Z zlJUh|i7jYy3gOnl7yk&g=Cj9o})mU?n_1h93m`6>==uxHbRP2A=&evIH^ ziu$laDJB&>?J^u6tJ8@#nGW3m)e)FGK_P>wQhsC(tdVL&5Lu3k(kzU9L=cqx&I)=a z+5o_-Ed5SFAonSV{Z8bc=waU+pZ?s$S@fbCnKD9O8;$KjKx^F1;cxPqvo(y-id!YT z28D5NFL$sfen45Dt}8IBt>0JsSkx5!>!Ok2=C8D}?8IkW6g-=00JX5cUT!!`8io~d z8u&qExb_3g=`X-1_4tYo@t<@jiBKN+ES&ij1*&>P^sfKAP$SXaaFzV5U6?EY^+M7& zqXT0#7<`2x(O=?rRzLQs&z}BKHgD|dK5j2DO)+DsH|!drqEfYSA(+uI77invr=CBK@h z`#`F2Ta**9!{RtD2Hq-VW1j`+=3_#Fpc5sQPym?q5Lq-8-xkK+SWmUC4JIQ{z-1C00A5y5#Z^sOMNs;7x}!?O#X_ zhojs|lxFEDlcH+E6l8ylRpctsYYMuUz8enBRKJCDWW;BQSH_t1IoX|!@_Np#lX}X> z!!okha60L+1vVwb#T9esL~p{_)i`bRb7l-T{tr5P4`zJN?bze(zx>wB=x3%zW<>xr14}{J zKNw-hE3r;kyJL$phhoQIVK1zlu$As15d}TFr_jZ}vPu8Go@>14xq=aSyG&hmpM5^1 zxANU2yPxqHP*ec^R*1#(o1FVt6m%X4wxdMsX{(oW^S(nrYIXxgH64WX7J&P(qn+Hp zk4vPdzmhV9!}N{Ng{lA|L_@C$hX#zc2+$zgePLHV*MOf=+*)hvbMXl?njeTjMGV(F zOxBpxG~&Vu#ECw87jpX) zz;ke|ZukmsIuY3l;L>@FYB(yDkAAbsg}lC{74!UJLp*_78jRRCJ%OXd+TrOf-g()o zNxB*-GJHPRwP(m|OrpXc>XfU@sFP7p8!8%Wsnt1OXs42*6#-!49 z$0SR*?lXs%$oPG~G+O7C=W+5O?S?YMTSWi&E$9a!`{uMc3?lwIF09B}sobT3;bJD&6#Ly9F}FZgqLYeWJj8Kr0x zFEh5RERkmM8nBVM)DNB_eF~&WG<=U6ZK}6Acy`fbC!xy1*ExTbC^N2{!h1La7SY;W zM=t4P0k7n=x~wixQO#_e(+g<2w{ec_{zti>aFYy;di-4W>q3QY0{A#?FBWyxOGRmh z=5nTaG;OKf?${M!7RU%f0?|`30>F;i*59!MhkHKZ9!q30tp=eV(K%E(w* zecR1xp!1d{3h+rF`E+?@r13Z&mAw1dEI$dqBxKE|x)9p`!OsME`LeY6yz}!e+Z4Oz zi+lnN*Hf48Ff+@Vzb&`JmtW#G)#!-H<0u#h-6)xa8;l%)!()N5?UVxH+Z;Ux;|a)o zw-n=&XO2bPFqLtF2%faWe#D3S!JKz{45;H^V%!c%=OfS>&O{+C-(qupc$;VrnX67#T&V{zEs%~ z-!+~tr?T3%I=R!+$hV3q0Bhcg1HWk$bP_m6yoxW>L?JT$k9}mE{RN{y&gAWhLMnEH zcAr4`w1HnPZjq4%WWDIN>igcer*;2CHsyGk$VGi-h3#J4%N}gn(TVrW$ILXZ*$JIw zqIV;YzN=q8P@Odjd-Z(z*?Ir-wEA^!)f}S3?Kk)m+k0oy=krdzs`v2O*f7st!R{ou zS^@sYE~>jpb*;!ky!=x;BL3plkrGv2qL8B|o@)egfs2;)8@P+!q#?P)P)^bfA5n}1 zFeunU(n4Uae;IYhnz$#AE)oFX7R_XCM!(6MjW%C}i$m&lWIQ*Dw^!+fEYIU9r<(Yr z#QE;~7CE93??v=4`s5S&s%GO=)=s*fE&N1>m~P}#>WX)+k}dWpr|vyT zd9e&fiMETqT5U~KdgZfx#_!xXS%!^&s$PCvEu(O}FW#h4t>pRZg4fuu?48CXo;l}O z4z2R}nzeVDT(`;CqF)@{HJ|gC&1hxB9E4>%LQ@|C)-(O&BaJtbWG6J@_|2BE*A&B- zi?t|dl_`%%YA7X!=3j^VwT=RXq!7BQk!oK4W2&mJndjd$)20sdSjtj%ZiMz1pS!~* zxoDyN_0II)5UTy~HrGXkw!k5Z%%pI}M1xw`c)&e@#;r<}#n}6g|He=^1IO(8JsPc# zny_mgB%1;(eme=;5@u7*n4Qg@On>gs- zm{Oc;4!+oPZl|%(fUT3RJ1SSl7%{GG^kEcqhL$m;T)VZ^YO89d6#NY`3g6Z! zRj-t3=%~H`d)9=YY(=l$HSr+ws;cCu@S)ZXj0gpTjqWa{Env^&eU%~B%J^J_>mU0j?J4Awcdji+BtWrX>Qr7(jR%!r<`}y{zu{vubi8&%16_uOaQG?wLV% zON{kqbge&TFA1TQwx6okw{}6tTP{yIBHnfzJExY}Yzijen=}P|_M{IqjXZE;puWA^ z36hR+R{>9@7WMrpObu*BUu#e$UBN>&{OTyE*5G>NcM_R?WmLYETi^B9mMw#QQ?z}1 zppymr$+=J}ufFY95mqskYCf9Ky-`_xE;80g&r^7@dn;fjtH!;kVzVsJP+FK9W-ocJ zOHXija-hye?b>=y5 zA5iz7@bkC@FXV&F-x@-*DCcOg(;WJX2988!7S4S* z;^e8^O7RiJ8YX_)W%DU;(q3D4vf8cLl>{%b^msd%Ee|%B1pbXZ=lv)4Jg^+VZJ|K5 zrRr_So>bL-{G`0p10!Qij}j;_s(hAfD8`|B6CdZZJjr#iJ?{>tyt=A#4$n-GTf!Ni zY0O`ojx5aQp@2ucWdofass*OOGkDei*su%epPYa0t z`E^-kTn&s@t)Crd0xw51x=3YI{f0_YBHRFqyvLxM?=|Mga9U)~22$|QC>Ex z9!@UF;D4$*9}n9MZaC$*2OWKSV_-TEmxVmq17fZg=_|$PnDEzj!Av2%dS+`NhLIFd z1$YL_rr`K8V{QEC;%Jj%RZX>#OF5t}svkBd@sHtu9Q}SYl4h@L{tIaj{KKAa;X71V zY}we`@eVcY`6~^r28w_A2T;`Q;#6^+Uy9gNPGH#pkHm)D5&;{kPMdum`kKYiqid4& zJTnoURJ^?B&5W*WrD#ECDdqJshOgZotphdX=iZ7`=N6g!zAQjIv-i+fePFNfM7h85 z$J~73thc1xDH&{4PJfCkxmHe$HIUCfr0lZmmTAS)vsmmy%pJ;y9HP!#2JLw$K#_LzGKZPcvu zL~6Jv*#3i;>hya=?+mIv&QZ#;Q6tb&_RV+gF`JMFNq43=Bp9UKGT=Oo?%PZvVC^yyfGv~tJU~^b;L)?KR zc0zz)E#@+&;)27bv-{$Jz7GFZoR(SUIsd;2PT}pTc8gciX!lm1UuMLV6V#>}jHE-y zGxpz}#$&tOCYK-9RJU5SmBersTLi7hdU$Qm?bRO4%N9kQ)xkWAf{ErNs5?EKf8@;e zZ!dr%UwpHn*5A4nGDUwtl->cLgDHw-Fb$v%TO~{+x-+sYveJCqOBk@w^oKX-I&8E0{e z!_t{8E?zBf%=cI;eP{Q#3@#x4GeC&Ru;9cOeNw7k=}>7pa|}xTx?=0aKpdsVnu9J? zn#!ITP==g25sFmxkj=YLV1ANxR_&Q-4&LEqMleH(we1coiT?vSrFhX4*AOX>HH}iE zii9apW`NIMU__<0ZR4Fho$Qk69bU6_$pk42NN8a`tOl0p?kek!E4SW$*=duK0J`)x zY}B@_+sNy9G`o3#TO@%z$I4Jf!5$IdttGod;&79chh8wt z!w@Xy(EpX5V#JS1INwZ9mp_GP$Srxs6)nvq+?+5E+DQ$S`q`k8^_WOBZr8#Q7Ned7 zR|-5wZ#fbvVDp?7Dr0v&^09wLa_99gEIs7P{Bqy7rE@4lJtA7JP_7tRcegn8Z?J*j z%QzkY9Fsm;TwcMcQJxvnCRXXV^rOVE36vP@J+?FGzwUJ&ze=$m>ni@z(rH}bT`*V~ z2P35p30sm-tfe3hN71Pb0EH$1TXkRtkoU{1aL1$HWVD0F>JFO zYL^*jkCTplE3zLgJ@b-=od%NlVlQ6WF8tI|8r*93>}c66-O|vud&#vp2mTP+2+$0Z zH!mB@i=?fKteZ;=jb+)ntG&g3CF&ymcKRi1-}EV06d$NH;XXEec&IgNP0150409!D z?ukgknWVD#n5jKyQ=uA?dg9sXJp1eLT~z=$;l>!_GQvZ!hasS54u-9mfw5e>733OB z9n=3*7aMweY1DRH)D)dwkQ#O3D>OKIWQ&6JIA?;~9hU5tMhBI>2|b`|z%KNh7ns4OZkh4AI4>|7>@TMVUdVnEFHrR?R(Y74#9OgoN}F@?U>5xIGo_(&~(!y__l(v48kp0fZH3j7VSa>Ck}fqq#hUSAMdtS}O+hI~qLt_)>WbiptsbrA%IR)e zsZy2%x$z2WyqUqM)s#D?@y^GymtzVfv!3pZDBq4^D@paT4cAxg)Kzm$BBNPx26lmr@l;ahR}MfQzpXQ|=yd;*DD{;rY8pV)-6&TwZHc>A({411)8(e<8$+jn3NsE#E;M~_BrPSTQK z&wTlhn2hTUn&9tq%AG%xw09G6Jy9RBQ=-egvt4Kc8s4v}qjjcOfN>_p!33J?o6Jx1lP63g_$& z#0h{=17rbM=B4HaUXgpY6rBU}8e_u-NbOg*pCN0up+JO5lgOl8fKKi$mdQtY4;J1b zzg|pW9z#6PIbF^?zM#9dz63B5TjU${@S>a7_5#(I<4y(#$Z?{hY3yhM>5A^)0&ww5 zsvot!(-tf1JM6zmm+ZQe(9h0Z5U%&WcWd{vdH){yFvg_CS4^KlEH}Pa_5S^%`cC6} z{GQBlsZz|rF%|g_^U?@xM{eDloFUL;hFPC1tYWGv+NnsQN!bBaXXvtoxS_I0zHxNL z8^f075won4gx8)kXVQ4O_(6ciTXHx0&I?SfrJUx=i1G~dEE6pL6b=KjRzsZlUXK9v zOOqFNvGZsDg@VRwRa+e{w_}9?(RZi)%UYphQi!^ zaO;cL>Tx)qo&$owJ&?f`1I_2EY~r(A&#AdYu4L(-xoVcXPDV>azWk#DmtZ zwU5f0JP|Tm(W< z-rm9{S72yosP1&OGRHuM=iFPqP(LLAkePm9XUB4Xav<=k#Z`%#AT=tcED>pXo>O=(jraS zO0Tnoob(dW-{uD&KE#*a&f=4ve@EMG*(R3iC29cpjLM%qH@LY6`qnZ9e^W3LsR&F0 z=5g~qAj={m;RjYwV!um60_lXhdi0j_8GEj=?}7~iGG|W_Uss#1UEGvZSTbeuaEC*r zTtbD8b1&?y@5VjK)#v{z>^Y%ysTfr?ex+Kp0aFXYchs1PwgEsidj-c4Pn-ZJRs>x2ka7gbd@ATTb}44mK8$^*=1 z+AA{G4Xw*%Pw^3c@Msg%d?D!ghhwo~%(JE6(^AN?~ zn+Duof=PhDlE3luXf)L1n0o%=1-Z``-X9-%01$8>lolXyD7J1@ryA$BV8D-*JP zbeoB;+#x|rtI?Fn8q&1kbr(kLA3$!|8$8?*Un^tI`S3qLaDNK2Tk+pWUT7`OC}}|A z`aO_ZO}MuTw#h8@x?VgvHv31a`*VMu zyNAd8-_}6cbh~UI*`eKhhG84w-r`c7^cPZZYvA3s^$Jq|iy8}<4$dx((cfwyhO>_E$Ed1+_G zh979gR24nx>Sy(`P$uW0K~oD+1?`7R#QcWS8#6ZqJz(=li#VfPy;$RFmlo;I%>VG4 z{uBh>%l7+ROJp07o*`8n^f1nrNR z-~xs_5wFL3gsgkoF6$Z3+`o%ioBnc-PjCzCx8;Ehj8`)D>;^V1`i4 z!LK_m>Inel)vb+tSRX8t6j%*FqL(MBc4N(;lQ&ap>p8a30x`0FM$8!6+*Ig6*tru? zL){`1fmY2b1|u`~AssEY+z--Y-%okv-eUv+KJEMnC~n7g2|IdXxlS$HUTVc-g=z4O z0thKwdh2JrR(73S#tVj?fQDT^(-g+$4Zl0-NpS^NIPMnLO>{5Fr2krxejz9RLz-LA zAf7b+>24%ll^k|xXff}3L<<$=3huZvF#B-bz&!W`If0SqFj{l;@=9yCk?CaPefi5# zX{Tke>l1Ze_HR`n$0c4N5Lx#u*AsHv0tw6gn+BzBuU)4uk97_Jc)woPy>rrFUO-C#vkcakgw_$(u)6)FzMM@Mpam zv`Moo*`reZ_A*(m-`3$;d;oa*!I#6WA?y12VUduzwuWv&tFL6i+;etqlSe}ymSL5E zbU2iGHW8H{i6_+9%r=s%3R?j@;TH-j8Q%{{aIZE|ps z*3>LHF4puB)xUoJX5=+r1z=Aq4s7-p8C~CT!(SmI)X}F{>bMwzg%R+`jWlqTZcN`O z!hOrGXR}B0Zh1%09T^5p`RX~+OL<2E0ufb>mG|jQ4NQD2JG?8$L zQqc&+#aaH%76?XNns&b+$i1(De-i)#@EPHqd(jY|pd!wrdX6i;ng#_v~GASU6X1D^1NM>*mu+@=z#kG^ws4OfFtif>C9@nM>V`ZCqX9uu z_SmMy?bb)T$+F&E#MZm(waenEeHneA@c6LXxK4paLgg8xa}@WZF6L)^^FQihhpT9S z1-0;aHWCb7@@jOYW|m$ZvHB0;K=$h#XLkJIf5-+Jg4k|jIt^LHd_ILG<1w;JvX9?D zaGQ9);T?y=y>X6%r@io=r>}e*-dp^}7~wJ_=mON*jPQy)(K~8yuDA;%y>K6DfP3+9 zZt51;Sy^{=ttIJ7L=)A2RE7^qn)j+Wp0eY+jevz6w2l~R{h5Vt)ZrD*T!eKqeCN%~ zZPrjH=&DjKHnnBTB!L?*s>l1Tuw_)BQ=#io@6ubuS%$03L5S8CpMzA6{Ypo;xtILg z%RDqY(yGlpiEGOWsEm>oA&0{u0@-V~H8kncjx;I-=s+4Dh?Tj{>860wtMvf4(3>>a z#8pOC^a(? z;&#JXz%Sc<1u&}xD21WX&%&OYPu_-DmahnvyFV*N=6>lh|4lTR#t)cLJ%HYuU?I9g z%=_-Z7_FClL&W}3JXfN0EkF-RUVACIgb0i6kTQu&0uAaSo%g$K*M`%4c^Y}XAv2`_ zo&p=tM!9Eo(HfBw4S3PUY|T3~2sjd@$kY!O>NNQ?L=dGfupbLld1TWll$YXmdoV^E`Ti= zz1WNoIao99Qbqr#zDd8?EJ>-~^jLCdFTdHLO^w^{&Ndh7ZK$>{V{kMi4($tg=-Uj#o?jr59wHL$px)Q4rf^(oCvYiisExqWe0UAQc;Ys&?f3~s4(})bTUoG! znJB9s?k9EvAf7t+L^}@;p1k1#4-Wk;X0p;KQFR7-A(u$A{(;bf3bxe?U8XIV?7Ls2<9+vHEscun_C6Sue%jSUFfB_-y0Nm0_d5tu#kb z%kM}nt`d45{CE7orNe5T@Hz$;a~mU-z3y$)BzO@ifaDOUF?jXzvpo4>wlyi`+RKy} ztF;=lbDmON}jGkCpv~(&)(m^T*TV9PHY9?cPdb1vER-RsLMqPhCYzVlw(2m5)EU`LJ~!&+F0!@n14_8((E%F1-u3KzhyLFTyT_^# zZVsGC$CJD4G8i792m`k)jWv*zSpj-?<4nN&WO`yiF%j99M*W*XT0n?g*NIn9XY{w@ zt4J2lIECtwyk|gKLGdX6frekQ(Crycj_;vnP}E#9K)Xp3M}%`5_ewN4pZF0x9M@pJ z6=p|(h`z(s?&L`BjIa@DwjKhBtJiYyd}*Mz<)~c6pN|YROzv4zzZK`&;2tYLqw~OJzH7;m ztJ<#HP(6-0Y#XQS+Z&ZElocK)IG@|O$0Rims&8$7&L*>#AnCSx{Z&wyi=n;Wu9vgd z^f5=t6w=0nM@#jYVH5_4?ETy^gZzte`^F`96+%Kj@21{h^{y3Gf~j-#l}x4BWSymIyhPCIYqxjI9Jz$ zZye0DzHX@H@2m-XXOOqxDEO?6%piT%u|=16>7ZHLB;#cGRZ0fhIu*j|Xw)imEvmw^ z;(zh^jQ;Lh;XK~23~>S|Y70jj(SvnIwDdAh%D1on?dMsWk7y41)eGxc4$1ZBp$HnM z!6J9%{%x%j@>yK`{SWtn3ah)vqGuR>ui9{x1pmQn8|ng%=QWtXY`CQyO(;Zmec%H% zuAeA}W@MYqi;MOzbuGe5wQD;#bw(ReBGsC~PrgJykK1uLnWLD>$gbEqms}yUVG1y# zat5+bd$iUt6$s@8sVKk2TK#nT^kM^e+(L+mRPpXnr-Lg6pnLNst}MT-FUp*RyernJ zp-j28E%tm>9T6O*YofK1kIr@vZ87zgp~TIIp6ZXu5lXQrAfhn>5MXaye`(zoQM);x#Prbe=%Kx$5}NW<`UF&Um_q6u0nx`oQ&04E~L!Y4d_mQzE#te4>Yc~hDL z`!8>pf8CB;6d{Iotufk=G4bYjuA%jaKk#!V?M>~hjB?xgW#lA29WlS=;nQjBVc!C@ zhLbQ!upg=)wjHt!mPx8=fycOc*jE;A%(kSaKDGfmo%EMz>s4oO-g_eS!R*t>$U6zw zryjYK43a7ep$xNXALk^T5wLooed=vQR@ote0GbLt-W<1PL=ruJ!6CFV=)900&#!Y= zQkJeP&#RUSAtBT_E`ij#jS}%n;a^3Dfo{bud8X(BPw$-Lyxn|5)-HQ$&tqnza?f5r z;l=l#7%W-`%70_-$tPs9m)*@d+Q zKj&y%iH^sf-c9JM`oYsi{iMDPTTUX^LtrvOU-LMst)Q zRb_CKZlvr(gc*`wbAH4cwI>U-z&ooyydx{>9Q#rJtSZ0_o%Kl^pgg2jms>!1gw3@_ zOHH9k@;rg0akSDg2=HLguzuHQ$ZJlQuix*Am})Fn#gmulrpuSJKj}%9c&TG$_Tq*6 zc;kEQ?oS-vewANvz4l9g)x-K1nq;Zn^__t@&^cL;L-7&0>C&?sN1g`N2e*i?o@&7C zzj`6J1wiickUfYXkv|IhZe-|4^~mC}uSwC)!R$t0p;2@8eV0;k8JR(44u616q?Gw~ zp5}1LpwyV}G7sBf-D4KZvby+Z5iAU=Ro1CM0{el@c=}{@lDzKGEaT@*#i&Oy;LLKH z2%6xJ*T-xGXwqWX4L(`|@~4k9R_gsKdA%QXXwE*=%J4mb-+Y&HvR&tj5cXK_TH_b; zSf9ZA$fg1fs7BE~3$O&Qp6v!_@19|VEK8gsGt(T{uA98vp-*_1^fSZ17O;Pzo6W&; z;Byeevxe>B60%nbg!=OrPOV7irc|P9w8x)x7o1uyNjFpJ-?P6DZdUlOcmW6>+SrIj zZ*NpTSc};E7^SR197IsU-#462;Swqj>j#xup!o^evU`<9L$9G;~_^f<;>{{(9q^$WSUi*4`bO)m(L{Sq$y{js!O4&1Zfm1%v#&BVR@7*yYw-=xCyTWt9= z%s!7M8Wq_Xy@MFP#iT-<+=z8c{%rjhS^BR}<;S<1^9c8b9E{$LqpF_W&3HcXk6&Yr ztRsAHs))_B*EKo3v9L*$sd7c`SN{4>#fLvHD`BWbXnMwleOHr7daeol!36Lnaj8Yo zx@jf)J1Yh3Hw@{=^pT^z&=&5GI3PzCI?zf4)t&owi2qhe&=9^=O@78?w?rwDRP$Gr z&d(T>m4eK&^)vb$$T@W>(u~v|J&=bhO#f{K`T3Io?FX252XI(bp8H6Cle{G4!@W~~ z8uUo{AGad1JCRb@bc^ZC%Cj7*PPg|t_f$HLxD4J{{W_`tz8)~)UyPbn8qCoX zWSrku3#RG(?|kX+CvyIt|Ll`0jQ*N;&APbwMna-Rd-&6wP4ep1^~`(66cVp~lQ{kO znfrHGrJh3ebXxB`EVhjP!_!p;u6}wuNbL#2{2%}K3%Qsd_xJFlW!WEo!hqPONO0cz zJDW*)0@Z+4!&%iI5473v@ldW#Vb~0SwKd}&jL80XHYj(73~0MBy2dW0>#j-ZY-+N9 zmT7FI*O=5tqgemKKhJQ>r>BTgl@UE$k~y!b*4%7zUs-u;{b7K^iOC>14P*|kSBtcB zwaz%`qB|KsbTQ!I%SEq0*bOFVvPzN4P^>K36uhzmi}ueDGrjB-kTkEPLKdP)C9fj? z*@FvMQjA$^Nn}En4s6m1Cl1bd0w%CUxFibAw_P(%*hG}p4fgI^?Sk}*H(3~cxOAP@dT?G|_9)L=U29{_S%gtX?{b@p9 zCo%wS*n-M^?jTOwCWw-OZ?9@lK$!DJB>!;A8zKLE=KXWhOsUJ!bnfpno6aM#^)RSOQom%_IpM=A_x*=K zI+D^^uSgUNJl9^~V4H*m_&*cTzdwGzOSpv7nqM)vW=YZIjC&86#ugvzpz2vag?AW8 zN`Jh^?DH|Rl8SCw?yo`Nf1Zzo?d>e&42*{2r6FQ{c=_?2UZiB`@QgJRk*cq6sanvQ zWZj1*cFBKst(9Yqrm!6TY&~sT!n#;1X`KCvsno7_J(+F8XnR|k_FZ>}KFaYv3=~PfS(?1`-d-nYP zx%RL3|1p+0|Hc{!OgABW;^2QiPR1oSEyP9v5Rd*PjsMS(gcU|Y25H$IogMkZ@r=Lx z5s|!VKN;A+{(`?JEwGUytRpP`U_~1V4CuYmTmL`ZxPS5{WaFw7k%9a)fTfq(Z1zVA zpg(%MXDGeclyUdN(_+jBDL?!@cyB6jCpOrItZROo;v zOJX8&G(2qfw`9|Ql^qyQpA=_P$4ewNs4>8c%+RF^B)$CzYKtng`Z#|U=ACOiobw7g zCeV0zUFd1go-AVZ#tO0^ehQ0?2Pm)YftW@m*TChi%VzE6^q5Y7RbmA&rAvJ#DHP$8i|!o4Xrx|w%JqvN5!ge#p=ZJtxi4cs?Yk3!@A9BrQ*(~8m<0X^Nf zbOPM8N_>VpBaX=$NyiOOL;P5)HN@{|v_nf*$33POHKOQ~q}{WUjB4Dtx&u8x$N^? z0u(#1U5oT3aj`_j_wXpP+LIHQ^31DZa!_MazU+0bj7ZN z1h?kJGG;3#GrhY*G9Hwi)%su~AyKRAE4H>hZ^mITG}iAhQCAOL#4fU)2r?BeEvGV9 zg<3s46R*hZGe!cke^kT~%~}60>qEBVz!+V{@WXp$!a$)%$WzQb)kp-}Sbi_-kP{tC zt0(%dB~0LXr$)j;ClMw53Cm<^eI-4n$0g+bQS|8`r6bj%n2*_d?^OAn*)MXaQ&!hV zjMS_VNtTtaxh;W%Vr0q!9~C^*Ym}Sh^1`Ws`610<>a@l{K4wG*ZF zco`b;gy+D*%BoI;JmdDN)3EwOw#f=$ipbS?ST4VZ!F`$hRNC_Jsa<84qsK&i)>;|R ztDcaHl+d)LNWmvuTf6nzX zLaUHcF`pA(t=~$othY^J3uBTUwHkPoqjmdngY#f6v&_*dg>qJrOu4RZkpYjhX2La1 z&~c=6FV^WqP%-?FW1AK-2Q(Nh)t3@KtHWC>Sgc>XvDQ8?nGvsW4!l-R(xbVw|5cu) zR-xII8CqAjIkxTc@+nPbxf%>tXjE=6&=RGZXHseF{(8Fup!NC@pV#I=_C?15pRFUTYzL#W z#xqSL9$w*C zeg~+7wMS)VdYR?_Y$hS6Kq0-kc)B&;Dz2}!`51U~C4bSU27^2UW!fM!>1Mc91F51Y-?<7M1Jc0jrUEx&5LIop%CQHTc>7csXs&c20UytG1v}IrPHFB z_?^Q@WKe@?{Iy|#En(?+OR|a+bNX%xKb-WKSf=(q<23D$UyrNv+OAo}(>D(g8YdBJ=Q{`ex^obnGn$;tHI+E4X7bj=#}$ zyh^lXD4c{JN64;uYveylOWuK2X;zuMPCj1uDVwBrTzQaV5ZyT;80Y_}(a!{Hn62Ss zhO@mTR4s^Zdi{j*Js|wih^Q!p_B||;78pWQk61}`r@$Xbnhqgl5sU{$h)JI^nV7tB zcpO|I;u(FmXpwb`glx`er9V3#x)a%0F-|Gy(*r5ldyw6Tztd(> z`r%WoZb9Nh^;YE#(o@9!Hy(EfkA$UNEXVHI7ixGjl{;#BTPL1mO-R?%i!8S9tiE&q zkDyG6SFXkS2{r6mq?7+;GhaRl4PF|Twpg)Joqd8`L2ml^9itar6y9eV-cYR>wjYqE z@P#p*XiVo@gd5$$sI8eyc6hA#i7#yB7(B-Br8qsO_+$#PrSNiHWs6V14Vyu0r;~RN z?T1+MQnbzT&w`(o^auu?^HFxODZ-?iGBIyekQQCsKTHXj0@|ehg`JCz0DtP!%>x?b z!srXOGw0qOy-$@~>b`$R)2JbFPsN#DO?Pi~bcOlekuAjF9=+HCJG6JeD67Y-;oJ!5 zWE`We(r4jAPiTXDGmBKD)(yc73A+&`>%z>&_ZTcMkj-AdW$D4*3#YwxZn6x}a(!%(}=bh5! zPZA;u429iwR-h8a1`fp<0x;;ha(nt{o)O$>Ktq7W+SD-V*`!mw5%0wzZ_Ru?xP~2g zjVKQwN`qH`VtL-ey5k4;&V?r_j{4+IJ_BOAizr>bB;|C~6_%9qw~%IK@&!Q$)7;0W zLaNU6y4r0BSLq}33w*2*>sw}Lr-Zm9%v$X)9~X+5u7E|%#;;7)xchvZ3{PFmTX6c) z*D|(qico)5D*9aMC^fP?4;S)*22h7ZG^U9jbqTnyTLdcz_&+ahyLk zrk{T@6j_%9)^{AjfGPI5Lg--gYXbfCl66uu4$Gzf%;-t81R<5`1A^z!y&ym2@@O`j zq2K&)-duIsjk)c49xHT@i3{5`JV)Q%3w~QZcUgyC!i2Iy)yv)UT>PvNNdR@hFCNe0 zcbC?8Cs;oaU0nfj^rZ4zmv?mCG2+s$i8*(5I&V4E=5(v)cO6%_LtmVpsCs$1&L+I) zMI5w5>vSrH6DWT6y~MGhH)jOWeAn0L>pY{-Gf4RGQazH5XDOf@R+J>XVOx(d;#9N{ zZbIgDIQ!4RIq{O-HODo1-(F@A&}G(oqH&LXL3{`u&jM<&ct$`KMamK{dxBF{v5)4x z*xIn1Thmyi4jn1@k}}rtJVCG>nsp%7LiTeH|1ngp=UHdBugG;NuvQSY+TY@f*c)MT zQd--KGCJ*#=7hbUcrwP3T{Nj_bW{A*hV9ymY~2(ELBD?C(ZV|jp^lg+9G%Hc z%JRfoN@SpwuuA)Y@6a(6*N$blyLO{ky$Vwvro|&`Q;glrhPlo*3G)oT-Mw;E{BRpy zbTPYeC#XUURLs=hPChij_u2Li5UKg82pbpb^cFyNcf|^=!C1EFLuJH)J0c& z3Di}oz7x}8*b?7Or_9dXN3ICA?8GKH)^(EAthce!UYah$BXN#}v8KMb>JQePJV|XG z^C21QuhE^2iS?Mv&P*7Ii2t4{kQy!T%8vi1z4wZ0s@vX&l_rW5ML|HC2uN2DPe3W#*+7CM9$5_%Jn5{k405~?%~V@zT+@L?H}(zsl|HWr1rz{oh?N=d5$`A6b%( z%5Y;wk@W1>Q(Re0Sgnv+rDq8DQ-`%vJTkV)+&;mr8}|m6<4>F}Z<=bIhvo9MNcJ*% zSb8Y>4y4&NA{kIfciG}Lr^Ky9emE@PFI#JV8WybI^a#z@4Ye-q-0OXK&9m7J3;xoZ z-S7}t!U;x8CK3`NnY;I1TBQPvK61gwH*#341UmsI%v7nhp}*Xs&dfP``r#_{2I?$- z*RY=aHQ#CflH<#3Q+UPWTD!?VmPCA=1UL)v3AVD--;_RnO;60wM<04m-X2Ku1awzg+AH9@T}^H`sma|8Tdn=^L9n z7e)e_33^8!R?6jZfNf^85Na{Sg=Yg#9>__bo_yn%Q@Qu9oAnITqm9f=bvCzjW5}QO z_cxYy53qoIcQ0I}B6GUnXws5>74U2h^G45}q4&Qv&sR#GYYJVe^S2BqGiQ@_^&F60dqlNG9IIzgw;yP5ZsVdmTj2&DH)H#^gLP!dYtbA~^tTMjbi*FaVdE4%W**Hz;hQb&~|E-q@FKoQq? zJ(RQXhZ*%|<-2X{E91S>Aw->g-5sAYWZ6#g(E`gq@Cq&t3Mu!gV)kz#X^tE30&|eg zG?_J?bN22`z=!=l3;<;$7&0um8FWA5V{5w4`oAScy&YZNV|EQ#Fg(J-V<<0^BN*cd z$==SH3jxb(yJKA4zRN6LV90@f#a^11<{YwYI9)JVsB3JH=X#WV6crO9TloDnYS95x z;+_QLV$d38^~tjxhuVHaxWA^<#=x7ec_hD|Ln{CH(MCQYN8<&qKQaQ!f>b>&v(k8* zRC>K2>yc%%*}hJK&lx$w3%G!(E*;1RL{pUlEYxm0j_7MGZ%I##7=#?-^_&J9E4Ojp z4hcTP;!hWe-iLr)oV#7;rP~L!EZ>CpCOM_?Y_JsJ?d18Snj8XObkUwu{Puw)*|XW)hnQJoR~{tvgSYnx0@kr-~_;W>OS z!uN-_g2e~NgD>P%flxmnAIJGi_pefRx3WWpC>ZVtJ{eC7J;uj{?(u(&GH0XD++A-; ziSVnwBw}_?;n=ne@mAQds+MLIVg)sVve9b;bL@OswlpF&M}z@EM=RO^gLLkD=lATR z8|soJK_~>;XC*J!UPa+~sMx*>)}_b@=C$F>ons9EOT8ZsQ$`A{`s^6ZE)&*K?w4pv zO$Rmr$*xXSwq0<@K9&p{gfrByP&$pGnn=jY>B&CEU8X_40~Y_inF>~=0pROB^8(GK zpMh13cE{T{7+G2v34XTi(aK|hus8XMsr!dhyqq-uE}?1$@Fv=TY`%`S>^L3y z4mN6&4ZXgRi7LB{L;OGsI{HxH+3AL)Bp|VEPcw;_mq5jfow?>;xt(49=u4+&jd@^Q z)`L)om}<9CxqbHUvlH?{-}z*m%Vgi&@e5aqq&^`T4jpe6SQ-cu)VKzxP9BsYkO z4%Nzs^6%pg0D;rEi#&KeWv+ViDG+YIXY^vAtt+7FH;rQ09s~8!Ve|vi;GQ4u>WTXM zJ&rPDl<*ki6j;WzT`jfq{auKFHkCY-^oHtG*aN;NS>xj#^IaGApOUDGJnZY<>wL7W zYG3sD9q#>U0hq_k93{GwT8Vd3Uf7wPWP1j$PMkm_qZ-zMc>}Z|Dy8@fC!zoMkH~;r ziSg-ZZq7f@{K8@wxHi%*^sJtgr+WRVb?=RVE$|JJG#-}TzrdofDv%nykkj=?|LHgL zY2 zDRaT3os(AUgKVT*Y5o|Ihu60O-6S)%zb{@^1|Z zyK@-;(F^$Bwf}wF!!`hW-Hy2lEE)gq_CFt=ywvPFbbrtV|MAHG+m5$-&N|#W6V`S1 zx3Eo@YwSP1r9VgOfx*@YxLw`EoBxe4@et_a)$H4JEPw3T?@uFv85op}^xpsF@zYT{ z&PmYeu}1yI7I^O!W>{iWClv`4rbygMHu;N0lgo_~m^)YBWyK8C%D=jL=dT0pAMVD> z69$29B=!%^#~=E{Py@WOIl_qN%zxScuQlpF*bILmDJV?<0iPI*L1)+>mbHI4Qt1vb zSZ8fN{1+;brw}k!-SpVc{FnW+0Q4W3_*CZaJN69%jMZ9spZ|6I5AXBj;s5WA|K)-F z9R{hU2&;Rjsc1LvLd_E6@X4s^5)FE>>u2ST0 z-K+#gt~rUj?2G?}k7#i+Wg~{aEB}`%+Y4|A5{IAu#t8ZSWBAwBw>+i(S~+JrnY9yU z$<^KRFlON6Ni%;k@V4>|-TM{YYjoLvw!WsiTzkG;EIFoYm+;}gJ3@cldI7|n|K43< z=sIZ*bV6W(^6$HIDok&R{O?_t_X~jgU|(m@L-W^4KmT;A$#NRc{IMCod)r)yvkZH^ zUIj_ae_N;E6woGr`agH`Uu^)i3V?^Vpeyj-#0u0wTO5Dq*aHk5VSd0LLS*S%{g(>t z414qPC#I^fwal_%;njum?w@fAZGS1h3-qGug;Kxp2CE+cIK6*Eadbp<2dY&@v55~p z;sflOOSxlb;p1cn~?)qVD#vqe4qt&jr{lLtWC1dBS|_d)wxudH4a-MVlG zD0V`0QCLVyw5bXO1L1fU{#KtmbEO7Q{<8L>!Dprv*G}5)mEv+X>;v`r;3HoDr}Has z2w9590{WFI{?d<&EFPh2Tt6wQc=MX^4e0?Dqs5xm*TsO+h>5h*q1< z7tQtw4LI91ah(aBVm- zT%ri42qEI6(}96YbvPKXBNcX120qxvA$92oH0T^^mii;~EXB|bCAJ)=mo}0V;u$aO z6hrVG&!mO3rB$s${R<}szhulK9}K__+RJ9`AQN%zz2FI_yV*dra^E;ZYL5KaukZv| zjrTvR=veL?`n;*t4u`--aXv^{$O*c^7P_bJjJzY{AvH(+Ew9xeB2sH7-De?NfpiUg z$fMpo3m=_Z6z%M-emACTP{~c)d~Ua*t6%Xe4angdW>dDm-g2x}r?pf+3t+TSmQx{J z0SMDp9*eWd@*HmC_jUCK>avT+i5;i8N-elNGLt+_c|qSf%uaz0wDMR)Wm zxM9I9P2QmyQE~X>d+zz}4c4QdC0@SkQI2T&+I5SCJYjKtW z!oG(o6fXKJ%^>0h#9RudtNov_o(2PTrh_q%NeFVD?kbN&`iYF0p)Ro125hE@9VWE;Q(BG^}E3tPkV~ z)fgQN(zxqeWqH0}!+y82s%?~%&okwLIOZlX=8?N%=%~y!T)~3;8m@XUZ)aiQ!a$D> z>&K9Vom-+mFx8qo?%M)p$~khtFvZz;4U0x0T`QF=4lK!xBqlg0Uj zIK|N?Kh0dfxWygfrxo=NwukealeLCc%FOfn_m`;3exfTIX7j&Tez(=A75)62ZR zp5?!8HkB<$+_rfW4wVuSA;NcLs$H>UIp#3c&nHy0eu!Z^AHRT=y5lPeME70E0m8uX zW@qfsTtD$}fLw!0eq7Hvi!mTD3^8772n!9|I={aP6|)^iLiCHirs>bEI(rRR)@TCp ze?}1n%UJ6GpXy6OMvuutuUab!MBE^)dS%g9BkK1 zcJLoDeZJaIzEoa}Zob{>cJuM0UH!lbv}8M43dR=D!bkChN@3HZI6NC%p{=+niFyK~ z{>l9d`(k*%U?mpSW7~(!z|X4Gk;;hkm}G63e?;O?-RLST09?ytRHCn}-lA}A^$l!= zt%KjA&(JkbuRMD#&wH_c#c0m*=PsJLq0nrYXnd{Qc2S3bqfif8a z67xl!oC#+Rrf}BZ(QX+vGd#!m*7y!|+oQr~I3~)}>QxNPjr;U5LH{JUA0jD_5Y;E4WX-7-KJfR3Pp*FefMpT3j;o%w2JgGgQ1Ag5c zIeUcL4$e61DNIS!bj_1CgFK&-#b=5$Vx`j$-u?0!aT7I7(W>1Vd*LvlQwoIQdTios zEiOB+#B{xt#CqjVO=!6SNV$5=+flAAUAr-;UXLkEG$l3z-t!_%bzYMcRFM0CtHFW> zpP7_uc2giwyUWsdBEhy>qW=c(fIPmo6a`9xX)1=!CR|61y-c;by6PqNH`v!-_p(_>SQHS z^yds_Fyomynpi4BNO5$oi)Xwo+(+BOQ_|%8e%Q1nsw&hJ2N32;rd}-(%TIGNKltFt z{;Fwn@s8>79N%~$dk!hj)pk*F;Sz3R@w}_o=h%q=eC$(WJsl?4&PR?nz4(eViQz2R zZjKg+181e6H;HqNXJ;AdX^0TfcHCKBzdkL%uT3jI9j6!&dJ%s=6C~><#58l>Q1|Y> z?Xm638!3zN2H%|Xp_`J@4acg%35_l75QpKD`sF-U9K1p;R*=5RQY7IHUUO$TIjM%opYp@p;aM_$xApcBGa=eR8%8+f-zFSE6*> zB{8#mf{%s8cydC~c7!O5W9jri z);=Pmw5ULfza!VKWo53E!oR!4Q~oLqE72NAV%fZd&2kdoZC6{XudwN)D>C^Mp6O#` z7(6glDCt}rCI50i;EUf{!SjX{PeKF?ijyq-)flm!AZDP9=;m?2 z^|HLD^!FVs{FGgp_vC=69Jg#*)tvv+59yD=`z~vtY7}ZteW8?Sd>2~kZ1IFXEA((PDs(cEc9|F59IF009xy>e~Tdunb^`S{sQ=SmP^2>;eNBHu|wKMM}r=KXE=WpD3 zO9gqmFI{thSy!>Y<&J?HxKN8SebCXYT(I&diPSg_aC8HP6NpfHP14r%ynN~MwH0UX zK4iWlZ`o*4SrIlcV*f}(5HGiJ$3Qkadv$XlC3Lpma|u+QP&von0A_9?ao+KJSSk=# zhiB>zuN$8K9Kh@c-PZ6p81SKVO_?hxZ;2Neo*ouVX-e2`R#@)abPEOd6`S$|RXqLP zYbtufEo<@lvfnCPsfqci>uWO&L4r(N3cyLG3Wr!K;jbtzE?h_Ld_jD-?lYes+zivZn3Eo^lEkxVl^9rXvZfF5xbPBE_ zzc!NLZNw_ocwsw2x4G0?}Nmod^P^5U(RnWB2Bq}V8woNn|-2vkLE6jU=wu3+Oo^>V|M36BF zD>OYmyUQCCO?7+OnUI-0Xv3$KbA}_?OcDenk0ur`VxE)bZCh$nkk%3%Q9WTZFx zWKe!r{#vxc!M(M{U1fiV!yCuN!Ndsx>E~;|LZ?(Q>*nQ#{^nNW_tt*JZwCh~7d3M} zKDzuh=D}#|2li-6Qw+@Mg1x}BEy4r#vB1uAT!$9)>?>M`2*l&(Lys{lZd5N3z1rGL zKDpupiNTLLKbYRi8lQvjN5OD*G+x<;khk!f{ntq%-jU!-w>8yct}awb7GxEzlSM;rV&2S#V&KnrxL|fwb$_WC65Lcb z?xXVt`b>^6y%otREr80sz=3-;sgOwc6*xb+YmaCxi0anrI|U>^Y3mn9g?m{HzSr9+{OARN%y=sfOTq$#c&q{}F|s?sRuug$ zFkd)OCMm?_j)NOaENj|&hg_|_@^nN%LlN&Bd*k_>@oMorTg~ch(gd)d*b=~ z&s9F}<@yl&w<@P7;2AfVW?Y8$^ab*jwNQ5*jteGqC`(LjVGc6R4e4!p&$0SL>VXL@ zjgQDHix)d!@;(juKv@aH>>Whk6h}X}=nL)dV0XcQZQ*8{NyW@zZN` zu1(1c*4|~S7W53EJ>`?yZD8M1m5m^s-d<+C4Q&(JXDk*phxQkBI_FkfXtPMhM1X0_@hrb>k-deUrS^R-tQ=agMhcP)&X*szc;|mRgwxd-L;eEff)hQ?{_RLY`ic6u?_Et_Ns$~oeG2(P)F`o&f zJwh{Bl(rYNR;kExZ&nppqjbs1K^HT@W}dWL%)7^mRAmlxX`Avu;QcU=jbA6@_SSmUbL{ZK7J{`)Ew%c6xlza$otv~CD7N(gM;i2A%8vCu zYEymHdpKRC>Qv+8O^b>rl_pAqMBS@zKt(u283-&71CScMGD};;V}*@jZvO|E_3A|@ zeRG8om(T{RBX8XbNZmSW*jq$rpgx-u^;9oh17JVL0-p1TW2G>er*MT6p6Phd9EO>x z+FCK(ns`V$-58X&IzkYIs7A*KV#j?0`xdL0*O+dfkck=)?wvSFMnG}2NcJW^NMt2s zY(}c)J~TyFgh}Q-u>1`r`qtU45Wa-zLEvtrs3;MEj=JaZInHAPt>(vxP({IYT&=hP4`(#DO?S7rUjGzia_k{mxY^%)q3!M)^f z6Db7^Zxp1xap%1|y|a8!^%aM%utR_=;Ve9+*(`g7G_~NmeO*`L{)GOiml_3```&-Ss{Qcai$^3chJ9aAPCHX%4wo9~cGaN5cW) z;Z9@x4C>Ne2wb?jwY8u|x3;r)kE8s9hiZTNrwWcwO&P+oR;p(Cp>&e}+RfGaav+J zERjP`8aGpgvaHFgr+r2YUG+zi+)@eh@I3HC)-u~|pF6+dnJY~pW$oD%CoDV~R^7Qu@vYV-`nl#a}Bb}3tyndw~Pw+2p@tu)hOh^>&)6veB2F?)%G zsCk)Bw7n>1REAx)0IZ6|EQvBd?8!O4l)(8+PHEh?_IE)4R;ZWmb0Km@#u4`pM=4U7C z^F}wkQzToWd}m(%9U#O@au7g7+^xDAw>40eOCcH_`}h?w=wR&RTq5((HMlWsdVzoN_8pYd zq!3R|BHI1IZE$WXpgZRit1~I4`JcFH6RO{5EO7?VJnQoSPNk%o zaJ14@8k6=Vqf#9}s}Ww>*LLP&cs2^`A_RP+T0^?#?Fh4O4YQ7$L%bJ>aE{87$7LUz z?8|+X@6iOACG(XByocSog4H*YxCu$^<4cu(@3g)r6Re31f3Y-EPyp;;_u353{loe~f z4UFlv0KBEw3a%;7bXa|;ZrE^01;f^tEQIX~-?n{J@T>LbbMEy;gWGh|>9&p|)v=&x zsq&-RkjEu9X64;L$*TCHIC+sk!dfzsBdFIhT9_#DxN@qu>0+6$pL_Fet>~=0RsC}( zcl|Dnb*d~_fsfN;lgYWkdU{qb{A!_Q1kW|tz+hdf~u=4aA`{6jL zt)c&9oG4XfAsi_b#6Zt0OX6>7NCb;8%H0Hwi%(5wU_s_PpX+_XyRSn(*v-RkLW8JA zWC|jK8a?b2yf4O{H8Sr^->UG6oHC&{7OpkX&v2_`qbINfn+=ujjdzu0)dMx8uu{8D z4mPvlHEk>TyLEQjVwQ)>pZkPI7ugOJHfmQs6wUce+Ien%ej`()UG4FevEhPuVu+h= zs4sl}2b+X@qm1w)$oq#Y9_))USC@m^ZUZx!@Oz$3gKX{>N=BC|ro17v(n2^4JFc)T z+dQs~(D8#z5>R1fU;pKV$jzmok^nmz?k6SP$6<=q%uET`bC9ySY3shp=Grq<{svwT z1Wdona8z#LSgj*fw2+%An3nC5XlqQPOBQ@+-p2%Jr(5|agUtZcP1)o0;mLLoNi|JAo*faDT=d#(i_PKFt6Fq<|=ZaUe z^k!~i5H1akR|<6xDdm6|e1uI4Cx)Rb<6-7bc60fVt#1YcnhOAXw_(ly2j{o5a^Hc8 zOVMjy`j|W0tEc;D^ZvVSTyOzs8db*2Y%%eeBlssvTA@z;cIcr~T}6n*z9n?46tWf= zxO2Y>)B7wX9`&_%i^ZdnYEl?;bK?EHZJy27wwIuA*Pq`iV2(kuUET@n^%sJ4#-K}~ z`gz~gyfn(sSmf8jctPy>l0WEVTq_1DV?>!p8HY4-1e%S=enrJhLI>>dz#JATNwrdz# zzqkzF+J=gCVGO2{7t^^NI%tye9p{9T1Sm>lrOLf|8a~|wRF-ZVbo~JVoO|=_&$18{ z%m_Y0&*8X1bz*AFaiu-6rZ@^%^DWTjbwVtgRJAt07;3`X&;rn7O;Gfp+jEnY{$z+u zPjPvQbMovk38SsY1PkSHx>6}cg^OykJ7;S2wAO2;Rqx0&Y&3$zIOps zRi^r>HT6l>_Jiz=`p3l~VW9TmGHhz3V>wcWXY1|chL&dFw-a$wiHmMmz%G(LWE*`K zew<21xpijX9o8FxY(8#on0PW;$*-4Hgu;84)$GplSb5|2X-BPk$hAwS=E6D|P!kIp`3#c~D!mbNSJqR2cyoCOi(I_DPqOra}A{)K%Kt-B4&V# zA^RFbIT@h8&H+^f11iw;{aOokrv{ZQ_eLF7>%lfdBD|mTd-E-oaHxzR?{l{&)_es6 zcg%D;ioMN=LOXYImy{T)%bbt=FS1c0Q#8Z{HQU zZtS=|o~6?KzO{9!284WN!I#JAoi$UU&v9kqKDOR_QPksD16i`?lZ7sL4!e#p-BE0~ zb#sa2YkMGTGZ6%89{~lln{&&Xj!a3d-V#Y$vSUQcP35EdJvz{d__w~0&1{Fr&XMdD z*htuX(SX}eLaMcZu23(yoi7{It;FM5qXWUQl$w(VT0fTg--eL?r7jW7{|;f|a7 zq0lEqmWuL3U0kyXN7#LU&l8h$9iz%XFwe^@9{pXe);U>Aso_5T=Y}00!^zh z(GLy~3X~JRtRi=0DrX{-;l|T9MnTBrV##H#?kb0FYT8~?$yGS(FIl5XXEjwxQ2SfT zH5tp$l1n0{rh>-hJZf4-3B&z`qG3&z7_WGM^nxf^J0cy#5=JQbM6R%vnLONkDc3<# z?Qqt>FhiHS!tkYLRv!L#-@KnG7q_<@3HnYF-)CABmZB}MBRQNQcrl;yI+LPeQHk4r zljqP8(97O3da@lG;WSbZn z^hs+)9PC*5{PZaQR#nv`=&wi1S}bpJ%;Gj^qbp|I9Aj?ZpGnzmFA<6U5iQoV#^+l% z%L>RnMH10Y5Hl&fI|AKHBb=h<+99qY5-kJay@QwI#T4o1eKvPlj@hl|iLq8K+Zq!3 zGPw;1YN9DAB+NB&b#&*wAZ8@Xu2dV-3Z~5Ji=y~iAWzIQKBGmEy)Jo<6+KlFX9b2V%ai!X4n|u#7I>3Gt2t=@+Yt(K_*r^C+&!{mOP-^D0MyVBLaKj+y*J?Y zu}p98foPtqgc$=dvY*`&dJZ`VXoDOgWp7K%OMI}~{>@Fg9{B9@P3R*P_5Bt181KGQ zuh1RC0|&)#F}pz0onZE}<6g4hRWB4H8~vzeijUOoEyL+pdvm_J1YpQ{VXFL*WjK{S zDHuT8`7$jrNkOtv9>{QS=!9K%aSeEfWFwz+ub;}u`m9mbu8~%S@Yw^n9rLT+Y_*Fj z={2h#if5J%cGz;mj~45yHQ9hNsX>+LVMPMKvfi1{UIirQ1vCP=YU3Pax0oud{2{3E zdLL))8c|et0;R+PrabkP>($9-+kqSj!+yo}tG@FfWSK8JW%3Az2WNdtY7qQ6+~kak zfB?#=lTL!Kg;%oJ*n6}N;;KkXZ`WQ)<{TAh2z8iz^asb@3Qt)3042Q`FD zEG_aV!PsRY!!7RES<2O;a<$jcI^??V_OC^>`+;gnnYkX4pz4)p6f9S9%%9riG+x-o zd-H>TGCbmnNojq9u@^{#HEcAj2`gvsb~>=!yi)0*5RT%vC^cIS(~peJHR05FS6uun zp@{6&CHrwA_N@`>wV^hhXejnLW%7Q-lyy4*wIQEFOKF<|*H-v}7}SFG2y(g+kh%KL zytWeNy9eq;R#I{x0tougLm6IWDAl-AKyYxdmIQ2Q;9>k~qb^jZth|T7Qal6k;{Fe^!|>>sUlQv*KNqHC+j6PmsgaQ@Na+O6@G^TnSg#Mj8f%jw;&^4)>!bFCzk7ju1;jFY+O1Ak}sN{SSd=1%gs zcD5SUE8aWD6IvLf&gMESBsEx> z)%5oIL!&PVmS*K${=xaGrGcx& zPQ$!T86y?!{dnj>i@Q;<5D;GC%D6~YRR_~)-7*`k2Uuv&SY!d<%tQK70Equa#2I;} zpVUE#-*r9+XEj{K-RN+mI;kK-Sc!9>aWnHKPw{6n3D^k%RvRyjR|D)^J6y+VJ0>YA zv02;s-)e7(X?rZGr^vgxJ_+a`Yn_U{gm5`;aReFUnNKf?gP#rR-%oYK*iQFYreBbI zkf90$>bA>1v+NluSc;pA7J6H4TwC)u>)(kwu;~_8YqWuR+nf5^yBdBx9z{LvklCyx z2)8E#d_JrUq;elw8j-ql#mzs%t?$L{rY&dR#I9`2-Kt_BlY~2Jb-rDyoAO-#gR5CC zdUJY?nEp6N{=1Ykm)?^C6OKc@*=P^EgVsK;`OtB0B~5q+?tZM(%rRq_khxV=JgX)- zJX*Yz{XsSrj;otKZiW%=GxullEse;@c2hmu=b%@(vVQz6gxY0tL#OLO-HgxBR?r74 z?SNg}dT7oobR?ptU z=rgjk@?(AQn#sl_5|2(LZ8j`Cm2G|id_cuC=8Ktj%}a{=ws*OWb;qHB(w++vnf(rVlQ*D{&E^F@i6bjbt=z}LZf~gNf+tr)*x~t%rRrI`q#wen z!R2Rf(_L*bkUa&}rD+;^C~>43%)GsLMj_vKIt=sdYM3Jp#WCIWISKSn7tXLd7c0Oi zrTo*|RPs1p%;erVbcmxJ>8o$)#{v<~?qCc-yxv5rg!DsR`qOfN2N}_nKh+&82rgq$?WfOk3qpmapD{K!yR|sYmQ!4r(8}EPeo+<&MaP#{sCz84ep~ zi2+y3mDk_H!46K5aMFFa{f$O@iDJW|c{I<}W2DfV@DEc8!x{2xuKenPP|9v9c~w_w^l+)KJy8yteoA&neygtrG!Zxv zzQfeG5@5q`y1)PRJrLA^pICEO;dTPRx0}cX@(`(u{Bn}L@k!de)Z|A`dY{uY{1t)= zzLJ_1D1=;Fho+M-z3Wl+r%uu6pX36_!(^@b&*Ye-b!?eAmMa?NoDL%tvFokFe#i`& zH?OMJnUuUVcQ7F+!gV9E`LPZkCvRBfN<&mA<#Bg7*F#%?%s_D<-3}Rmg~Ab-W8Tn^ zBa$^&CMn=A?^Kt928+-PDBzLHeS$OrW(@}ff5o-F)Dt$BDwVu}mz;oQ zVg|$n%imT3R(Uu@`1-cpOR!0ui)5&kj{dt{ThG}$bcLEzo4bKs!2 zxIS2G$KW>nWJI@bNKQ>cOE`MSO_##{BA*#|FC+0OTtfmU{NAk5Z}5H7jTWh8kvdaZ z(+aRKs(gQ9N0;5+`zgQq!%=anP=z3qko^VY?kwUx0dI9D`89*~GDc_h>s5t)GLmUa z;H%(6HfgsM#pjj?m1@qfn@0LxW#rb0O`WCk>MPVGua63=`t8F@oX?1I%DJ&eo9sLm zDsQ@dy`$+uAf{5PSh~>vZr_Hyp~Rv@;9ZXy{ywwGC9(qohmb|#$IK!e-Qth)(<4bH zO`VW8VL(PiUsU*d3+aJYikygKRMtFYVCj?OFPv}6Fq+O=C;$DX!X5~x-Xa4Ve3iLXEsWs5JX{!aed`@0n3p=a{fkk1$WXs=TK zLvWL(--=eOa;`7}uhUJ3#lt#bdJ)-1qKz|->(y>5F-Im~x`@f| zMXd~dW^gGnAcsdmR)7x^;>IUi(J<@VG;2M`EQ=q*=`d`t-cY~MHUDq2zBtbeS-%aB zF1k-H`F6khhIHSRUJ_kJjCtuj+gm!uP4-3WcwRZPk@NLykGhSrx{dfNYF-)|UVkUY ziksI>_cb0~G&OtjNz-ae{9HHYyf}A{OVe}T)tIWwOII^{T??Ih)4VxzOg$_lcC(l8 zhcd&Y{9yQAhCr2gwOD|K~> z5?=41xOPs0dD*N!e~eR{)5ZJAakfiKi(L`O)1flX^=RcAJrzfRgah&ICz}0{WexfR zg!~(x0&@2#&;dsjS9w^5>!(U z=ML)(zC?yzray={73O)imM$*3WJoXj?TSYpWxy>m$%~F5oHzDLA9-KPc?+mQd`Hzk zW|Q?zZxo+Xz>_-aeOGn%KYmaQo(~+yO^j#ha>xQ7z~1muK&Fz=*@*_l4{*2jJ}Qqs zt#a%0w(V~hVMEv`c~ok-RRL^8DsOz8quBq~c>Jq4!=S4&UUKXT0bAw1r*SO3L=fBp3DeZa`F{q+1;Ed$0br3+SHGhN=FYlb-(jw|{PMy?rqwp~XL{{GYpCC<$=w2@72P zXK()07zVW`W=Sd|kKDuJ^mKztc3EU(|D&~G_kr&(W<&?}cNcgFJW>&g|2PL|)z`Ds z3hl7R%741wKU+RFH_ZCm`}#rF-rnB9(T>C6KCL{y`lntUGC1C5?Ff@qfKdPcy*{-9 z5.0x10-324 to 1.8x10308. + +So, the binary data in an `ArrayBuffer` of 16 bytes can be interpreted as 16 "tiny numbers", or 8 bigger numbers, or 4 even bigger, or 2 floating-point values with high precision. + +![](arraybuffer-views.png) + +`ArrayBuffer` is the core object, the root of everything, the raw binary data. But if we're going to write into it, or iterate over it, basically for almost any operation – we must use a view, e.g: + +```js run +let buffer = new ArrayBuffer(16); // create a buffer of length 16 + +*!* +let view = new Uint32Array(buffer); // treat every 4 bytes as an integer number +*/!* + +alert(view.length); // 4, it stores that many numbers +alert(view.byteLength); // 16, the length in bytes + +// let's write a value +view[0] = 123456; + +// iterate over bytes +for(let num of view) { + alert(num); // 123456, then 0, 0, 0 (4 numbers total) +} + +alert(Uint32Array.BYTES_PER_ELEMENT); // 4 (that many bytes per number) +``` + +The common term for all these views is [TypedArray](https://tc39.github.io/ecma262/#sec-typedarray-objects). They share the same set of methods and properities. + +They are much more like regular arrays: have indexes and iterable. + +## TypedArray + +A typed array constructor (be it `Int8Array` or `Float64Array`, doesn't matter) behaves differently depending on argument types. + +There are 5 variants: + +```js +new TypedArray(buffer, [byteOffset], [length]); +new TypedArray(object); +new TypedArray(typedArray); +new TypedArray(length); +new TypedArray(); +``` + +A view cannot exist without an underlying `ArrayBuffer`, so gets created automatically in all these calls except the first one. + +1. If an `ArrayBuffer` argument is supplied, the view is created over it. We used that syntax already. + + Optionally we can provide `byteOffset` to start from (0 by default) and the `length` (till the end of the buffer by default). + +2. If an `Array`, or any array-like object is given, it behaves as `Array.from`: creates a typed array of the same length and copies the content. + + We can use it to pre-fill the array with the data: + ```js run + *!* + let arr = new Uint8Array([0, 1, 2, 3]); + */!* + alert( arr.length ); // 4 + alert( arr[1] ); // 1 + ``` +3. If another `TypedArray` is supplied, it's contents is also copied. Values are converted to the new type in the process. The new array will have the same length. + ```js run + let arr16 = new Uint16Array([1, 1000]); + *!* + let arr8 = new Uint8Array(arr16); + */!* + alert( arr8[0] ); // 1 + alert( arr8[1] ); // 232 (tried to copy 1000, but can't fit 1000 into 8 bits) + ``` + +4. For a numeric argument `length` -- creates an `ArrayBuffer` to contain that many elements. Its byte length will be `length` multiplied by the number of bytes in a single item `TypedArray.BYTES_PER_ELEMENT`: + ```js run + let arr = new Uint16Array(4); + alert( Uint16Array.BYTES_PER_ELEMENT ); // 2 bytes per number + alert( arr.byteLength ); // 8 bytes in the buffer, to contain four 2-byte numbers + ``` + +5. Without arguments, creates an zero-length empty `ArrayBuffer`. + +Here's the full list of typed arrays: + +- `Uint8Array`, `Uint16Array`, `Uint32Array` -- for integer numbers of 8, 16 and 32 bits. + - `Uint8ClampedArray` -- for 8-bit integers, "clamps" them on assignment (see below). +- `Int8Array`, `Int16Array`, `Int32Array` -- for signed integer numbers (can be negative). +- `Float32Array`, `Float64Array` -- for signed floating-point numbers of 32 and 64 bits. + +```warn header="No `int8` or similar single-valued types" +Please note, despite of the names like `Int8Array`, there's no type like `int8`, or similar in Javascript. + +That's logical, as `Int8Array` is technically not an array, but rather a view on `ArrayBuffer`. +``` + +### Out-of-bounds behavior + +What if we attempt to write an out-of-bounds value into a typed array? There will be no error. But the result may be not what we want. + +For instance, let's try to put 256 into `Uint8Array`. In binary form, 256 is `100000000` (9 bits), but `Uint8Array` only provides 8 bits per value, that makes the available range from 0 to 255. + +For bigger numbers, only the rightmost (less significant) 8 bits are stored, and the rest is cut off: + +![](8bit-integer-256.png) + +So we'll get zero. + +For 257, the binary form is `100000001` (9 bits), the rightmost 8 get stored, so we'll have `1` in the array: + +![](8bit-integer-257.png) + +In other words, the number modulo 28 is saved. + +Here's the demo: + +```js run +let buffer = new ArrayBuffer(16); +let uint8array = new Uint8Array(buffer); + +let num = 256; +alert(num.toString(2)); // 100000000 (binary representation) + +uint8array[0] = 256; +uint8array[1] = 257; + +alert(uint8array[0]); // 0 +alert(uint8array[1]); // 1 +``` + +`Uint8ClampedArray` is special in this aspect, its behavior is different. It saves 255 for any number that is greater than 255, and 0 for any negative number. That behavior is sometimes useful for image processing. + +## TypedArray methods + +`TypedArray` has regular `Array` methods, with notable exceptions. + +We can iterate, `map`, `slice`, `find`, `reduce` etc. + +There are few things we can't do though: + +- No `splice` -- we can't "delete" a value, because typed arrays are views on a buffer, and these are fixed, contiguous areas of memory. All we can do is to assign a zero. +- No `concat` method. + +There are two additional properties: + +- `arr.buffer` -- the reference to the underlying `ArrayBuffer`. +- `arr.byteLength` -- the byte size of the underlying `ArrayBuffer`. + +...And methods: + +- `arr.set(fromArr, [offset])` copies all elements from `fromArr` to the `arr`, starting at position `offset` (0 by default). +- `arr.subarray([begin, end])` creates a new view of the same type from `begin` to `end` (exclusive). That's similar to `arr.slice` method, but doesn't copy anything -- just creates a new view. + +These methods allow us to copy typed arrays one onto another, create new arrays from existing ones. + + + +## DataView + +[DataView](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) is a special super-flexible "untyped" view over `ArrayBuffer`. + +It allows to access the data on any offset in any format. + +- For typed arrays, the constructor dictates what the format is, then we access i-th number as `arr[i]`. All array members are assumed to have the same format. +- With `DataView` we access the data with methods like `.getUint8(i)`. So we decide what the format is at method call time instead of the construction time. + +The syntax: + +```js +new DataView(buffer, [byteOffset], [byteLength]) +``` + +- **`buffer`** -- the underlying `ArrayBuffer`. Unlike typed arrays, `DataView` doesn't create a buffer on its own. We need to have it ready. +- **`byteOffset`** -- the starting byte position of the view (by default 0). +- **`byteLength`** -- the byte length of the view (by default till the end of `buffer`). + +For instance, here we extract numbers in different formats from the same buffer: + +```js run +let buffer = new Uint8Array([255, 255, 255, 255]).buffer; + +let dataView = new DataView(buffer); + +// get 8-bit number at offset 0 +alert( dataView.getUint8(0) ); // 255 + +// now get 16-bit number at offset 0, that's 2 bytes, both with max value +alert( dataView.getUint16(0) ); // 65535 (biggest 16-bit unsigned int) + +// get 32-bit number at offset 0 +alert( dataView.getUint32(0) ); // 4294967295 (biggest 32-bit unsigned int) + +dataView.setUint32(0, 0); // set 4-byte number to zero +``` + +`DataView` is great when we store mixed-format data in the same buffer. E.g 8-bit integers followed by 32-bit floats, or more complex. + +## Summary + +`ArrayBuffer` is the core object, a raw byte sequence. + +To do almost any operation on `ArrayBuffer`, we need a view. + +- It can be a `TypedArray`: + - `Uint8Array`, `Uint16Array`, `Uint32Array` -- for integer numbers of 8, 16 and 32 bits. + - `Uint8ClampedArray` -- for 8-bit integers, "clamps" them on assignment. + - `Int8Array`, `Int16Array`, `Int32Array` -- for signed integer numbers (can be negative). + - `Float32Array`, `Float64Array` -- for signed floating-point numbers of 32 and 64 bits. +- Or a `DataView` -- the view that uses methods to specify a format, e.g. `getUint8(offset)`. + +In most cases we create and operate directly on typed arrays, leaving `ArrayBuffer` under cover, as a "common discriminator". We can access it as `.buffer` and make another view if needed. + +There are also two additional terms: +- `ArrayBufferView` is an umbrella term for all these kinds of views. +- `BufferSource` is an umbrella term for `ArrayBuffer` or `ArrayBufferView`. + +These are used in descriptions of methods that operate on binary data. `BufferSource` is one of the most common words, as it means "`ArrayBuffer` or a view over it" + +Here's a cheatsheet: + +![](arraybuffer-view-buffersource.png) diff --git a/6-binary/01-binary-intro/01-concat/_js.view/solution.js b/6-binary/01-binary-intro/01-concat/_js.view/solution.js deleted file mode 100644 index ce894698..00000000 --- a/6-binary/01-binary-intro/01-concat/_js.view/solution.js +++ /dev/null @@ -1,13 +0,0 @@ -function makeCounter() { - let count = 0; - - function counter() { - return count++; - } - - counter.set = value => count = value; - - counter.decrease = () => count--; - - return counter; -} diff --git a/6-binary/01-binary-intro/01-concat/_js.view/source.js b/6-binary/01-binary-intro/01-concat/_js.view/source.js deleted file mode 100644 index 5bf29aa2..00000000 --- a/6-binary/01-binary-intro/01-concat/_js.view/source.js +++ /dev/null @@ -1,18 +0,0 @@ -function makeCounter() { - let count = 0; - - // ... your code ... -} - -let counter = makeCounter(); - -alert( counter() ); // 0 -alert( counter() ); // 1 - -counter.set(10); // set the new count - -alert( counter() ); // 10 - -counter.decrease(); // decrease the count by 1 - -alert( counter() ); // 10 (instead of 11) diff --git a/6-binary/01-binary-intro/01-concat/_js.view/test.js b/6-binary/01-binary-intro/01-concat/_js.view/test.js deleted file mode 100644 index 0e613aba..00000000 --- a/6-binary/01-binary-intro/01-concat/_js.view/test.js +++ /dev/null @@ -1,41 +0,0 @@ -describe("counter", function() { - - it("increases from call to call", function() { - - let counter = makeCounter(); - - assert.equal( counter(), 0 ); - assert.equal( counter(), 1 ); - assert.equal( counter(), 2 ); - }); - - - describe("counter.set", function() { - it("sets the count", function() { - - let counter = makeCounter(); - - counter.set(10); - - assert.equal( counter(), 10 ); - assert.equal( counter(), 11 ); - }); - }); - - describe("counter.decrease", function() { - it("decreases the count", function() { - - let counter = makeCounter(); - - counter.set(10); - - assert.equal( counter(), 10 ); - - counter.decrease(); - - assert.equal( counter(), 10 ); - - }); - }); - -}); \ No newline at end of file diff --git a/6-binary/01-binary-intro/01-concat/solution.js b/6-binary/01-binary-intro/01-concat/solution.js deleted file mode 100644 index ce894698..00000000 --- a/6-binary/01-binary-intro/01-concat/solution.js +++ /dev/null @@ -1,13 +0,0 @@ -function makeCounter() { - let count = 0; - - function counter() { - return count++; - } - - counter.set = value => count = value; - - counter.decrease = () => count--; - - return counter; -} diff --git a/6-binary/01-binary-intro/01-concat/source.js b/6-binary/01-binary-intro/01-concat/source.js deleted file mode 100644 index 5bf29aa2..00000000 --- a/6-binary/01-binary-intro/01-concat/source.js +++ /dev/null @@ -1,18 +0,0 @@ -function makeCounter() { - let count = 0; - - // ... your code ... -} - -let counter = makeCounter(); - -alert( counter() ); // 0 -alert( counter() ); // 1 - -counter.set(10); // set the new count - -alert( counter() ); // 10 - -counter.decrease(); // decrease the count by 1 - -alert( counter() ); // 10 (instead of 11) diff --git a/6-binary/01-binary-intro/01-concat/task.md b/6-binary/01-binary-intro/01-concat/task.md deleted file mode 100644 index 2dcabb89..00000000 --- a/6-binary/01-binary-intro/01-concat/task.md +++ /dev/null @@ -1,4 +0,0 @@ - -# Concatenate typed arrays - -Given multiple `chunks`, concatenate them into a single typed array. diff --git a/6-binary/01-binary-intro/01-concat/test.js b/6-binary/01-binary-intro/01-concat/test.js deleted file mode 100644 index 0e613aba..00000000 --- a/6-binary/01-binary-intro/01-concat/test.js +++ /dev/null @@ -1,41 +0,0 @@ -describe("counter", function() { - - it("increases from call to call", function() { - - let counter = makeCounter(); - - assert.equal( counter(), 0 ); - assert.equal( counter(), 1 ); - assert.equal( counter(), 2 ); - }); - - - describe("counter.set", function() { - it("sets the count", function() { - - let counter = makeCounter(); - - counter.set(10); - - assert.equal( counter(), 10 ); - assert.equal( counter(), 11 ); - }); - }); - - describe("counter.decrease", function() { - it("decreases the count", function() { - - let counter = makeCounter(); - - counter.set(10); - - assert.equal( counter(), 10 ); - - counter.decrease(); - - assert.equal( counter(), 10 ); - - }); - }); - -}); \ No newline at end of file diff --git a/6-binary/01-binary-intro/article.md b/6-binary/01-binary-intro/article.md deleted file mode 100644 index 78c4212d..00000000 --- a/6-binary/01-binary-intro/article.md +++ /dev/null @@ -1,129 +0,0 @@ -# Binary data - -There's a lot of terms in Javascript, related to binary data: files, images and so on. - -To name a few: -- `ArrayBuffer`, `Uint8Array`, `BufferSource`, `DataView`, `Blob`. - -There are many questions how to convert one thing into another, because people just don't spare a minute to understand. - -It may seem complex, but in fact it's not. Everything's fairly simple. - -Let's sort things out. - -**The basic binary entity is `ArrayBuffer` -- a fixed-length raw sequence of bytes.** - -We create it like this: -```js run -let buffer = new ArrayBuffer(16); // create a buffer of length 16 -alert(buffer.byteLength); // 16 -``` - -This allocates a contiguous memory area of 16 bytes and pre-fills it with zeroes. - -```warn header="`ArrayBuffer` is not `Array` at all" -Please note: technically `ArrayBuffer` has nothing in common with `Array`: -- It has a fixed length, we can't increase or decrease it. -- It takes exactly that much space in the memory. -- It can only store bytes, the exact number of them. -``` - -**To manipulate an `ArrayBuffer`, we need to use a "view" object.** - -A view object does not store anything on it's own. It's just an "eyeglasses" that give different representation of the bytes. - -For instance: - -- **`Uint8Array`** -- treats each byte as a separate number, with possible values are from 0 to 255 (a byte is 8-bit, so can hold only that much). That's called a "8-bit unsigned integer". -- **`Uint16Array`** -- treats every 2 bytes as an integer, with possible values from 0 to 65535. That's called a "16-bit unsigned integer". -- **`Uint32Array`** -- treats every 4 bytes as an integer, with possible values from 0 to 4294967295. That's called a "32-bit unsigned integer". -- **`Float64Array`** -- treats every 8 bytes as a floating point number with possible values from 5.0x10-324 to 1.8x10308. - -So, an `ArrayBuffer` of 16 bytes can be interpreted as 16 "tiny numbers", or 8 bigger numbers, or 4 even bigger, or 2 floating-point values with high precision. - -![](arraybuffer-views.png) - -`ArrayBuffer` is the core object, the root of everything, the raw binary data. But if we're going to write into it, or iterate over it, basically for almost any operation – we must use a view, e.g: - -```js run -let buffer = new ArrayBuffer(16); // create a buffer of length 16 - -let view = new Uint32Array(buffer); // treat every 4 bytes as an integer number - -alert(view.length); // 4, it stores that many numbers -alert(view.byteLength); // 16, the length in bytes - -// let's write a value -view[0] = 123456; - -for(let num of view) { - alert(num); // 123456, then 0, 0, 0 (4 numbers total) -} -``` - -These numeric views are called "Typed Arrays". - -## TypedArray - -Here's a full list of typed arrays: - -- `Uint8Array`, `Uint16Array`, `Uint32Array` -- for integer numbers of 8, 16 and 32 bits. - - `Uint8ClampedArray` -- for 8-bit integers, "clamps" them on assignment (see below). -- `Int8Array`, `Int16Array`, `Int32Array` -- for signed integer numbers (can be negative). -- `Float32Array`, `Float64Array` -- for signed floating-point numbers of 32 and 64 bits. - -`Uint8ClampedArray` has a special feature. Usually, when we write a number that doesn't fit, into an integer typed array, then its most significant bytes are cut-off. - -For instance, let's try to write 256 into `Uint8Array`. In binary form, 256 is `100000000` (9 bits), but `Uint8Array` only provides 8 per value. - -So only the rightmost 8 bits are kept, and the rest is cut off: - -![](8bit-integer-256.png) - -So we get zero. Here's the demo: - -```js run -let buffer = new ArrayBuffer(16); -let uint8array = new Uint8Array(buffer); - -let num = 256; -alert(num.toString(2)); // 100000000 (binary representation) - -uint8array[0] = num; - -alert(uint8array[0]); // 0 -``` - -For 257, the binary form is `100000001` (9 bits), so we'll have `1` in the array: - -![](8bit-integer-257.png) - -In other words, the number modulo 28 is saved. - -For `Uint8ClampedArray` the behavior is different. It saves 255 for any number that is greater than 255, and 0 for any negative number. That behavior is useful in image processing. - -**`TypedArray` methods are similar to regular Javascript arrays, with notable exceptions.** - -We can itereate, `map`, `slice`, `find`, etc. - -There are few things we can't do though: - -- No `splice` -- we can't "delete" a value, because typed arrays are views on a buffer, and these are contiguous areas of memory. All we can do is to assign a zero. -- No `concat` method, we can use `set` instead. -- The `set(fromArr, offset)` method copies all elements from `fromArr` to the current array, starting at position `offset`. - -To concatenate several typed arrays, create a new one with the combined length and `set` onto it: - -// Step 4: join chunks into result -let chunksAll = new Uint8Array(receivedLength); // (4.1) -let position = 0; -for(let chunk of chunks) { - chunksAll.set(chunk, position); // (4.2) - position += chunk.length; -} - - - -The full list of `ArrayBufferViews`: - -- `Int8Array` diff --git a/6-binary/02-text-decoder/article.md b/6-binary/02-text-decoder/article.md new file mode 100644 index 00000000..e264a110 --- /dev/null +++ b/6-binary/02-text-decoder/article.md @@ -0,0 +1,76 @@ +# TextDecoder, TextEncoder + +What if the binary data is actually a string? + +The build-in [TextDecoder](https://encoding.spec.whatwg.org/#interface-textdecoder) object allows to read the value into an an actual Javascript string, given the buffer and the encoding. + +We first need to create it: +```js +let decoder = new TextDecoder([label], [options]); +``` + +- **`label`** -- the encoding, `utf-8` by default. +- **`options`** -- optional object: + - **`fatal`** -- boolean, if `true` then throw an exception for invalid string, otherwise (default) replace invalid byte sequences with character `\uFFFD`. + - **`ignoreBOM`** -- boolean, if `true` then ignore BOM (an optional byte-order unicode mark), we usually don't set it. + +...And then decode: + +```js +let str = decoder.decode([input], [options]); +``` + +- **`input`** -- `BufferSource` to decode. +- **`options`** -- optional object: + - **`stream`** -- true for decoding streams, when `decoder` is called repeatedly with incoming chunks of data. In that case a multi-byte character may occasionally split between chunks. This options tells `TextDecoder` to memorize "unfinished" characters and decode them when the next chunk comes. + +For instance: + +```js run +let uint8Array = new Uint8Array([72, 101, 108, 108, 111]); + +alert( new TextDecoder().decode(uint8Array) ); // Hello +``` + + +```js run +let uint8Array = new Uint8Array([228, 189, 160, 229, 165, 189]); + +alert( new TextDecoder().decode(uint8Array) ); // 你好 +``` + +We can decode a part of the buffer by passing it a subarray: + + +```js run +let uint8Array = new Uint8Array([0, 72, 101, 108, 108, 111, 0]); + +// the string is in the middle +// create a new view over it, without copying anything +let binaryString = uint8Array.subarray(1, -1); + +alert( new TextDecoder().decode(binaryString) ); // Hello +``` + +## TextEncoder + +[TextEncoder](https://encoding.spec.whatwg.org/#interface-textencoder) does the reverse thing -- writes a string into a buffer. + +The syntax is: + +```js run +let encoder = new TextEncoder(); +``` + +The only encoding it supports is "utf-8". + +It has two methods: +- **`encode(str)`** -- returns `Uint8Array` from a string. +- **`encodeInto(str, destination)`** -- encodes `str` into `destination` that must be `Uint8Array`. + +```js run +let encoder = new TextEncoder(); + +let uint8Array = encoder.encode("Hello"); +alert(uint8Array); // 72,101,108,108,111 +``` diff --git a/6-binary/03-blob/article.md b/6-binary/03-blob/article.md new file mode 100644 index 00000000..39dddad4 --- /dev/null +++ b/6-binary/03-blob/article.md @@ -0,0 +1,212 @@ +# Blob + +`ArrayBuffer` and views are a part of ECMA standard, a part of Javascript. + +In the browser, there are additional higher-level objects, described in [File API](https://www.w3.org/TR/FileAPI/). + +`Blob` consists of an optional string `type` (a MIME-type usually), plus `blobParts` this a sequence of other `Blob` objects, strings and `BufferSources`. + +![](blob.png) + +Thanks to `type`, we can download/upload blobs, and it naturally becomes `Content-Type` in network requests. + +The constructor syntax is: + +```js +new Blob(blobParts, options); +``` + +- **`blobParts`** is an array of Blob/BufferSource/String values. +- **`options`** optional object: + - **`type`** -- blob type, usually MIME-type, e.g. `image/png`, + - **`endings`** -- whether to transform end-of-line `\r\n` to `\n` end vise versa, to make the blob correspond to current OS newlines. By default `"transparent"` (do nothing), but also can be `"native"` (transform). + +Then we can access blob as a whole, or extract slices with: + +```js +blob.slice([byteStart], [byteEnd], [contentType]); +``` + +- **`byteStart`** -- the starting byte, by default 0. +- **`byteEnd`** -- the last byte (exclusive, by default till the end). +- **`contentType`** -- the `type` of the new blob, by default the same as the source. + +The arguments are similar to `array.slice`, negative numbers are allowed too. + +We can't change data directly in a blob, but we can copy parts of blobs, create new blobs from them, mix them and so on. This behavior is similar to Javascript strings: we can't change a character in a string, but we can make a new corrected string. + +## Blob as URL + +A Blob can be easily used in an URL for ``, `` or other tags. + +Let's start with a simple example. By clicking on a link you download a dynamically-generated blob with `hello world` contents as a file: + +```html run + +Download + + +``` + +We can also create a link in Javascript and simulate a click by `link.click()`, then download starts authomatically. + +Here's the similar "on the fly" blob creation and download code, now without HTML: + +```js run +let link = document.createElement('a'); +link.download = 'hello.txt'; + +let blob = new Blob(['Hello, world!'], {type: 'text/plain'}); + +link.href = URL.createObjectURL(blob); + +link.click(); + +URL.revokeObjectURL(link.href); +``` + +**`URL.createObjectURL` takes a blob and creates an unique URL for it, in the form `blob:/`.** + +That's what the generated url looks like: + +``` +blob:https://javascript.info/1e67e00e-860d-40a5-89ae-6ab0cbee6273 +``` + +The browser keeps an internal url -> blob mapping. For each url generated by `URL.createObjectURL`, it stores a reference to the corresponding blob. + +A generated url is only valid while the current document is open. And it allows to reference the blob in ``, ``, any other object that expects an URL. + +There's a side-effect though. While there's an mapping for a blob, the blob itself resides in the memory. The browser can't free it. + +The mapping is automatically cleared on document unload, so blobs are freed then. But if an app is long-living, then that doesn't happen. So if we create an URL, that blob will hang in memory, even if not needed any more. + +**`URL.revokeObjectURL(url)` removes the reference from the internal mapping, thus allowing the blob to be deleted (if there are no other references), and the memory to be freed.** + +In the last example, we intend the blob to be used only once, for instant downloading, so we call `URL.revokeObjectURL(link.href)` immediately. + +In the previous example though, with the clickable HTML-link, we dont't call `URL.revokeObjectURL(link.href)`, because that would make the blob url invalid. After the revocation, as the mapping is removed, the url doesn't work any more. + +## Blob to base64 + +An alternative to `URL.createObjectURL` is to convert a blob into a base64-encoded string. + +That encoding represents binary data as a string of ultra-safe "readable" characters with ASCII-codes from 0 to 64. And what's more important -- we can use this encoding in "data-urls". + +A [data url](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) has the form `data:[][;base64],`. We can use such urls everywhere, on par with "regular" urls. + +For instance, here's a smiley: + +```html + +``` + +The browser will decode the string and show the image: + + +To transform a blob into base64 and vise-versa, we'll use built-in `FileReader/FileWriter` objects. In the [next chapter](info:file) we'll cover those more in-detail. For now, it's important only that they can read a blob as data url, that we can assign it to `link.href`. + +Here's the demo of downloading a blob, now via base-64: + +```js run +let link = document.createElement('a'); +link.download = 'hello.txt'; + +let blob = new Blob(['Hello, world!'], {type: 'text/plain'}); + +*!* +let reader = new FileReader(); +*/!* + +reader.onload = function() { + link.href = reader.result; // data url + link.click(); +}; + +*!* +reader.readAsDataURL(blob); // converts the blob to base64 and calls onload +*/!* +``` + +Both ways of making an URL of a blob are usable. But usually `URL.createObjectURL(blob)` is simpler and faster. + +```compare title-plus="URL.createObjectURL(blob)" title-minus="Blob to data url" ++ We need to revoke them if care about memory. ++ Direct access to blob, no "encoding/decoding" +- No need to revoke anything. +- Performance and memory losses on big blobs for encoding. +``` + +## Image or a page to blob + +We can create a blob of an image, or even a page screenshot. + +That's usually done via `` element: + +1. We draw an existing image on canvas using [canvas.drawImage](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage). +2. Canvas [.toBlob(callback, format, quality)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob) creates a blob and calls `callback` with it. + +In the example below, an image is just copied, but we could cut from it, or transform it on canvas prior to making a blob: + +```js run +let img = document.querySelector('img'); // just any image + +let canvas = document.createElement('canvas'); +canvas.width = img.clientWidth; +canvas.height = img.clientHeight; + +let context = canvas.getContext('2d'); + +context.drawImage(img, 0, 0); // allows to cut image +// we can context.rotate() as well, and do many other things + +canvas.toBlob(function(blob) { + // download the blob + let link = document.createElement('a'); + link.download = 'example.png'; + link.href = URL.createObjectURL(blob); + link.click(); + + URL.revokeObjectURL(link.href); +}, 'image/png'); +``` + +For screenshotting a page, we can use a library such as to draw the screenshot on ``, and then download it the same way. + +## From Blob to ArrayBuffer + +The `Blob` constructor allows to create a blob from almost anything. + +But we can also revert back to lowest-level `ArrayBuffer` using `FileReader`: + +```js +// get arrayBuffer from blob +let fileReader = new FileReader(); +fileReader.onload = function(event) { + let arrayBuffer = fileReader.result; +}; +*!* +fileReader.readAsArrayBuffer(blob); +*/!* +``` + + +## Summary + +While `ArrayBuffer`, `Uint8Array` and other `BufferSource` are "binary data", a [Blob](https://www.w3.org/TR/FileAPI/#dfn-Blob) represents "binary data with type". + +That makes Blobs convenient for upload/download operations, that are so common in the browser. + +Methods that perform web-requests, such as [XMLHttpRequest](info:xmlhttprequest), [fetch](info:fetch) and so on, can work with `Blob` natively, as well as with other binary types. + +That said, it's still possible to convert betweeen `Blob` and low-level binary data types: + +- We can make a Blob from a typed array using `new Blob(...)` constructor. +- We can get back `ArrayBuffer` from a Blob using `FileReader`, and then create a view over it for low-level binary processing. diff --git a/6-binary/03-blob/blob.png b/6-binary/03-blob/blob.png new file mode 100644 index 0000000000000000000000000000000000000000..0947bfed3dfb645d04d4da814adbe6c0f148c69d GIT binary patch literal 10619 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 literal 0 HcmV?d00001 diff --git a/6-binary/04-file/article.md b/6-binary/04-file/article.md new file mode 100644 index 00000000..3c71322e --- /dev/null +++ b/6-binary/04-file/article.md @@ -0,0 +1,106 @@ +# File and FileReader + +A [File](https://www.w3.org/TR/FileAPI/#dfn-file) object inhereits from `Blob`, but is extended with filesystem-related capabilities. + +There are two ways to obtain it. + +First, there's a constructor, similar to `Blob`: + +```js +new File(fileParts, fileName, [options]) +``` + +- **`fileParts`** -- is an array of Blob/BufferSource/String value, same as `Blob`. +- **`fileName`** -- file name string. +- **`options`** -- optional object: + - **`lastModified`** -- a timestamp (integer date) of last modification. + +Second, more often we get a file from `` or drag'n'drop or other browser interfaces. Then the file gets these from OS. + +For instance: + +```html run + + + +``` + +```smart +Please note: the input may select multiple files, so `input.files` is an array-like object with them. Here we have only one file, but it's still the same, so we just take `input.files[0]`. +``` + +## FileReader + +[FileReader](https://www.w3.org/TR/FileAPI/#dfn-filereader) is an object with the sole purpose of reading from `Blob` (and hence `File` too) objects. + +It's event based, as reading from disk may take time. + +The constructor: + +```js +let reader = new FileReader(); // no arguments +``` + +The main methods: + +- **`readAsArrayBuffer(blob)`** -- read the data as `ArrayBuffer` +- **`readAsText(blob, [encoding])`** -- read the data as a string (encoding is `utf-8` by default) +- **`readAsDataURL(blob)`** -- encode the data as base64 data url. +- **`abort()`** -- cancel the operation. + +As the reading proceeds, there are events: +- `loadstart` -- loading started. +- `progress` -- occurs during reading. +- `load` -- no errors, reading complete. +- `abort` -- `abort()` called. +- `error` -- error has occured. +- `loadend` -- reading finished with either success or failure. + +At the end: +- `reader.result` is the result (if successful) +- `reader.error` is the error (if failed). + +The most widely used events are for sure `load` and `error`. + +Here's an example: + +```html run + + + +``` + + +```smart header="`FileReaderSync` is available for workers only" +For Web Workers, there also exists a synchronous variant of `FileReader`, called [FileReaderSync](https://www.w3.org/TR/FileAPI/#FileReaderSync). + +Reading methods `read*` do not generate events, but rather return the result, as regular functions do. + +That's only inside a Web Worker though, because delays and hang-ups in Web Workers are less important, they do not affect the page. +``` + + +It most often used to read from files, and diff --git a/6-binary/04-file/blob.png b/6-binary/04-file/blob.png new file mode 100644 index 0000000000000000000000000000000000000000..0947bfed3dfb645d04d4da814adbe6c0f148c69d GIT binary patch literal 10619 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 literal 0 HcmV?d00001 diff --git a/7-network/10-xmlhttprequest/article.md b/7-network/10-xmlhttprequest/article.md index 1cef98cb..cac3dc53 100644 --- a/7-network/10-xmlhttprequest/article.md +++ b/7-network/10-xmlhttprequest/article.md @@ -60,7 +60,7 @@ To do the request, we need 3 steps: ```js xhr.onload = function() { - alert(`Loaded: ${xhr.status} ${xhr.responseText}`); + alert(`Loaded: ${xhr.status} ${xhr.response}`); }; xhr.onerror = function() { // only triggers if the request couldn't be made at all @@ -69,7 +69,8 @@ To do the request, we need 3 steps: xhr.onprogress = function(event) { // triggers periodically // event.loaded - how many bytes downloaded - // event.total - total number of bytes (if server set Content-Length header) + // event.lengthComputable = true if the server sent Content-Length header + // event.total - total number of bytes (if lengthComputable) alert(`Received ${event.loaded} of ${event.total}`); }; ``` @@ -91,13 +92,17 @@ xhr.onload = function() { if (xhr.status != 200) { // analyze HTTP status of the response alert(`Error ${xhr.status}: ${xhr.statusText}`); // e.g. 404: Not Found } else { // show the result - alert(`Done, got ${xhr.responseText.length} bytes`); // responseText is the server + alert(`Done, got ${xhr.response.length} bytes`); // responseText is the server } }; xhr.onprogress = function(event) { - // event.total=0 if the server did not send Content-Length header - alert(`Received ${event.loaded} of ${event.total}`); + if (event.lengthComputable) { + alert(`Received ${event.loaded} of ${event.total} bytes`); + } else { + alert(`Received ${event.loaded} bytes`); // no Content-Length + } + }; xhr.onerror = function() { @@ -113,10 +118,8 @@ Once the server has responded, we can receive the result in the following proper `statusText` : HTTP status message (a string): usually `OK` for `200`, `Not Found` for `404`, `Forbidden` for `403` and so on. -`responseText` -: The text of the server response, if JSON, then we can `JSON.parse` it.s - -If the server returns XML with the correct header `Content-type: text/xml`, then there's also `responseXML` property with the parsed XML document. We can query it with `xhr.responseXml.querySelector("...")` and perform other XML-specific operations. +`response` (old scripts may use `responseText`) +: The server response. If we changed our mind, we can terminate the request at any time. The call to `xhr.abort()` does that: @@ -134,8 +137,46 @@ xhr.timeout = 10000; // timeout in ms, 10 seconds If the request does not succeed within the given time, it gets canceled and `timeout` event triggers. +## Response Type -### Ready states +We can use `xhr.responseType` property to set the response format: + +- `""` (default) -- get as string, +- `"text"` -- get as string, +- `"arraybuffer"` -- get as `ArrayBuffer` (for binary data, see chapter ), +- `"blob"` -- get as `Blob` (for binary data, see chapter ), +- `"document"` -- get as XML document (can use XPath and other XML methods), +- `"json"` -- get as JSON (parsed automatically). + +For example, let's get the response as JSON: + +```js run +let xhr = new XMLHttpRequest(); + +xhr.open('GET', '/article/xmlhttprequest/example/json'); + +*!* +xhr.responseType = 'json'; +*/!* + +xhr.send(); + +// the response is {"message": "Hello, world!"} +xhr.onload = function() { + let responseObj = xhr.response; + alert(responseObj.message); // Hello, world! +}; +``` + +```smart +In the old scripts you may also find `xhr.responseText` and even `xhr.responseXML` properties. + +They exist for historical reasons, to get either a string or XML document. Nowadays, we should set the format in `xhr.responseType` and get `xhr.response` as demonstrated above. +``` + + + +## Ready states `XMLHttpRequest` changes between states as it progresses. The current state is accessible as `xhr.readyState`. @@ -186,7 +227,7 @@ try { if (xhr.status != 200) { alert(`Error ${xhr.status}: ${xhr.statusText}`); } else { - alert(xhr.responseText); + alert(xhr.response); } } catch(err) { // instead of onerror alert("Request failed"); @@ -275,7 +316,7 @@ There are 3 methods for HTTP-headers: }, {}); ``` -## POST requests +## POST, FormData To make a POST request, we can use the built-in [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) object. @@ -293,7 +334,7 @@ Create it, optionally from a form, `append` more fields if needed, and then: For instance: -```html +```html run
@@ -308,8 +349,10 @@ For instance: // send it out let xhr = new XMLHttpRequest(); - xhr.open("POST", "/url"); + xhr.open("POST", "/article/xmlhttprequest/post/user"); xhr.send(formData); + + xhr. ``` @@ -333,7 +376,7 @@ xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8'); xhr.send(json); ``` -`XMLHttpRequest` can also send binary data using Blob and similar objects. We'll cover binary data later, in the chapter about `fetch`. +The `.send(body)` method is pretty omnivore. It can send almost everything, including Blob and BufferSource objects. ## Tracking upload progress @@ -371,6 +414,7 @@ xhr.upload.onerror = function() { }; ``` + ## Summary Typical code of the GET-request with `XMLHttpRequest`: @@ -389,7 +433,7 @@ xhr.onload = function() { return; } - // get the response from xhr.responseText + // get the response from xhr.response }; xhr.onprogress = function(event) { diff --git a/7-network/10-xmlhttprequest/example.view/server.js b/7-network/10-xmlhttprequest/example.view/server.js index e6e4f569..a387293b 100644 --- a/7-network/10-xmlhttprequest/example.view/server.js +++ b/7-network/10-xmlhttprequest/example.view/server.js @@ -28,6 +28,14 @@ function accept(req, res) { } } + } else if (req.url == '/json') { + res.writeHead(200, { + // 'Content-Type': 'application/json;charset=utf-8', + 'Cache-Control': 'no-cache' + }); + + res.write(JSON.stringify({message: "Hello, world!"})); + res.end(); } else { file.serve(req, res); } diff --git a/7-network/10-xmlhttprequest/post.view/index.html b/7-network/10-xmlhttprequest/post.view/index.html new file mode 100644 index 00000000..ba7f7606 --- /dev/null +++ b/7-network/10-xmlhttprequest/post.view/index.html @@ -0,0 +1,36 @@ + + diff --git a/7-network/10-xmlhttprequest/post.view/server.js b/7-network/10-xmlhttprequest/post.view/server.js new file mode 100644 index 00000000..5e182a2b --- /dev/null +++ b/7-network/10-xmlhttprequest/post.view/server.js @@ -0,0 +1,55 @@ +let http = require('http'); +let url = require('url'); +let querystring = require('querystring'); +let static = require('node-static'); +let file = new static.Server('.', { + cache: 0 +}); + + +function accept(req, res) { + + if (req.method == 'POST') { + let chunks = []; + let length = 0; + + req.on('data', function (data) { + chunks.push(data); + length += data.length; + + // Too much POST data, kill the connection! + if (length > 1e6) { + request.connection.destroy(); + } + }); + + req.on('end', function() { + // let post = JSON.parse(chunks.join('')); + + if (req.url == '/user') { + res.writeHead(200, { 'Content-Type': 'application/json' }); + res.end(JSON.stringify({ message: 'User saved' })); + } else if (req.url == '/image') { + res.writeHead(200, { 'Content-Type': 'application/json' }); + res.end(JSON.stringify({ message: "Image saved", imageSize: length })); + } else { + res.writeHead(404); + res.end("Not found"); + } + }); + + + } else { + file.serve(req, res); + } + +} + + +// ------ запустить сервер ------- + +if (!module.parent) { + http.createServer(accept).listen(8080); +} else { + exports.accept = accept; +} diff --git a/figures.sketch b/figures.sketch index f27e4640dfeeebc95d72b7529a7688cb55544de5..95202cdfbeb690777b2a523262fbe7a5fc505ba2 100644 GIT binary patch delta 86981 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 VEA4H(f{{l|;M@l;KY@cU{tq^hFG>Ia delta 74438 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