wisp
 
(Arne Babenhauserheide)
2017-08-20: merge 10 more examples and polish stable v0.9.2

merge 10 more examples and polish

diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,15 @@
 wisp ():
-- 
+
+wisp 0.9.2:
+- README: note the releases and split usage into setup+usage
+- also add examples argparse, y-combinator, unbiased-std, ild, duel,
+  commandline-handling, cartesian-sets, advent-2016-day-7
+- added datatype benchmarks in examples/benchmark.w
+- ensemble estimation: setup deviations from the covariance matrix
+  by cholesky decomposition
+- enter three witches: i love you (dynamic dialog generation)
+- enter three witches: multiple scenes, whitespace in names, colors
+  and .. as escape for .
 
 wisp 0.9.1:
 - add enter three witches: minimum overhead for a theater script
diff --git a/README b/README
old mode 100644
new mode 120000
--- a/README
+++ b/README
@@ -1,74 +1,1 @@
-Wisp: Whitespace to Lisp
-========================
-
-    define : hello                    (define (hello)
-      display "Hello World"     ⇒        (display "Hello World"))
-
-<a name="fibonacci"></a>
-
-    define : fibonacci n                 (define (fibonacci n)
-        let rek : (i 0) (u 1) (v 1)          (let rek ((i 0) (u 1) (v 1))
-             if : >= i {n - 2}         ⇒          (if (>= i (- n 2))
-                . v                                    v
-                rek {i + 1} v {u + v}                 (rek (+ i 1) v (+ u v)))))
-
-
-Wisp turns indentation based syntax into Lisp. The conversion is homoiconic[^h], generic[^g], and backwards-compatible[^b]. It is inspired by [project readable][], but tries to keep itself simple (and stupid: just add parens for indentation). More information is available on the [wisp-website][], and code in the [wisp-repository][].
-
-For a short presentation, see [Why Wisp?](why-wisp.html)
-
-Note that this is full-fledged scheme, with all its capabilities like hygienic macros (programmable syntax!) and full tail recursion.
-
-[wisp-website]: http://draketo.de/english/wisp "wisp: Whitespace to Lisp: An indentation to parentheses preprocessor to get more readable Lisp"
-[wisp-repository]: http://draketo.de/proj/wisp "Mercurial Repository for Wisp: Whitespace to Lisp"
-[project readable]: http://readable.sourceforge.net/ "Readable Lisp S-expressions Project"
-
-Requirements
-------------
-
-* [Python 3.x][] to bootstrap wisp
-* [GNU Guile 2.x][] for running it
-
-[Python 3.x]: http://python.org "Python Programming Language"
-[GNU Guile 2.x]: http://gnu.org/s/guile "GNU Guile: The official extension language for the GNU operating system."
-
-Usage
------
-
-* Get wisp: `hg clone http://draketo.de/proj/wisp`
-* Bootstrap: `cd wisp && autoreconf -i && ./configure && make`
-* Preprocess files: `guile ./wisp.scm infile.wisp > outfile.scm`
-* Wisp at the REPL: `guile -L . --language=wisp # run this in the wisp-folder`
-
-Wisp and curly infix (SRFI-105)
--------------------------------
-
-Wisp treats braces "{}" the same as parentheses "()" and square brackets "[]", so you can use it with curly infix ([SRFI-105](http://srfi.schemers.org/srfi-105/srfi-105.html)) to get more customary math expressions. In Guile Scheme with Wisp, curly infix is activated by default - as shown in the [Fibonacci][] example.
-
-If you want to use a curly-infix expression starting a line, you have to prefix it with a dot:
-
-    . {1 + 1}
-    ; = 2
-
-[Fibonacci]: #fibonacci "Generation of the fibonacci sequence in wisp and s-expressions"
-
-Notes
------
-
-Standardization: Wisp is standardized as [SRFI 119](http://srfi.schemers.org/srfi-119/)[^srfi][^ess].
-
-[^srfi]: SRFI is the abbreviation of Scheme Request for Implementation. It is the official schemisch way of suggesting new features. SRFIs are maintained at [srfi.schemers.org/](http://srfi.schemers.org/).
-
-[^ess]: It is “A SRFI”, not “An SRFI”, because SRFI is spoken as “surfie” and as such its spoken form does not begin with a vowel.
-
-Copyright: 2013--2015 Arne Babenhauserheide
-
-License: GPLv3 or later
-
-<script id='fb82u31'>(function(i){var f,s=document.getElementById(i);f=document.createElement('iframe');f.src='//api.flattr.com/button/view/?uid=ArneBab&button=compact&url='+encodeURIComponent(document.URL);f.title='Flattr';f.height=20;f.width=110;f.style.borderWidth=0;s.parentNode.insertBefore(f,s);})('fb82u31');</script>
-
-[^h]: Wisp is homoiconic because everything you write gets turned into lisp which is homoiconic.
-
-[^g]: Wisp is generic, because it works for any language which uses brackets to start a function call - which is true for most lisps. You simply get rid of the speerwall of parentheses without losing their power.
-
-[^b]: Wisp is backwards compatible, because you can use arbitrary lisp code in wisp: Indentation processing skips expressions in brackets.
+README.md
\ No newline at end of file
diff --git a/README b/README.md
copy from README
copy to README.md
--- a/README
+++ b/README.md
@@ -13,7 +13,9 @@ Wisp: Whitespace to Lisp
                 rek {i + 1} v {u + v}                 (rek (+ i 1) v (+ u v)))))
 
 
-Wisp turns indentation based syntax into Lisp. The conversion is homoiconic[^h], generic[^g], and backwards-compatible[^b]. It is inspired by [project readable][], but tries to keep itself simple (and stupid: just add parens for indentation). More information is available on the [wisp-website][], and code in the [wisp-repository][].
+Wisp turns indentation based syntax into Lisp. The conversion is homoiconic[^h], generic[^g], and backwards-compatible[^b]. It is inspired by [project readable][], but tries to keep itself simple (and stupid: just add parens for indentation).
+
+More information is available on the **[wisp-website][]**, and code in the [wisp-repository][].
 
 For a short presentation, see [Why Wisp?](why-wisp.html)
 
@@ -26,19 +28,37 @@ Note that this is full-fledged scheme, w
 Requirements
 ------------
 
-* [Python 3.x][] to bootstrap wisp
-* [GNU Guile 2.x][] for running it
+* [GNU Guile 2.x][] for running wisp
+* [Python 3.x][] for a full bootstrap (optional)
+
+[GNU Guile 2.x]: http://gnu.org/s/guile "GNU Guile: The official extension language for the GNU operating system."
+[Python 3.x]: http://python.org "Python Programming Language"
+
+Setup
+-----
+
+From the repository:
 
-[Python 3.x]: http://python.org "Python Programming Language"
-[GNU Guile 2.x]: http://gnu.org/s/guile "GNU Guile: The official extension language for the GNU operating system."
+* Get wisp: `hg clone http://draketo.de/proj/wisp` (needs [Mercurial](http://mercurial-scm.org))
+* Bootstrap: `cd wisp && autoreconf -i && ./configure && make`
+
+From a release:
+
+* Get a release from [bitbucket.org/ArneBab/wisp/downloads/](https://bitbucket.org/ArneBab/wisp/downloads/)
+* Unpack and build: `tar xf [release].tar.gz; cd [release]; ./configure; make`
+
+Install systemwide with `./configure --datarootdir=/usr/share && sudo make install`, then you can run `guile --language=wisp` anywhere. Install in your home folder with `./configure --prefix=$HOME/.local; make install`. Use `guile -c '(import (language wisp spec))'` to get rid of auto-compile errors.
+
+Run tests with `make check`. Distribute your own version with `make distcheck`.
+
+If your Guile is installed in your home, you might need to use `./configure PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig/` and `make distcheck PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig/`
 
 Usage
 -----
 
-* Get wisp: `hg clone http://draketo.de/proj/wisp`
-* Bootstrap: `cd wisp && autoreconf -i && ./configure && make`
 * Preprocess files: `guile ./wisp.scm infile.wisp > outfile.scm`
-* Wisp at the REPL: `guile -L . --language=wisp # run this in the wisp-folder`
+* Wisp at the REPL: `guile -L . --language=wisp # in the wisp-folder`
+* The files in examples/ show how to make executable wisp programs.
 
 Wisp and curly infix (SRFI-105)
 -------------------------------
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
 dnl run `autoreconf -i` to generate a configure script. 
 dnl Then run ./configure to generate a Makefile.
 dnl Finally run make to generate the project.
-AC_INIT([wisp], [0.9.1],
+AC_INIT([wisp], [0.9.2],
         [arne_bab@web.de])
 # Check for programs I need for my build
 AC_CANONICAL_TARGET
diff --git a/examples/advent-2016-day-7.w b/examples/advent-2016-day-7.w
new file mode 100755
--- /dev/null
+++ b/examples/advent-2016-day-7.w
@@ -0,0 +1,2118 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -s "$0"
+; !#
+
+;; Advent of code 2016, day 7: http://adventofcode.com/2016/day/7
+
+
+define input "rhamaeovmbheijj[hkwbkqzlcscwjkyjulk]ajsxfuemamuqcjccbc
+gdlrknrmexvaypu[crqappbbcaplkkzb]vhvkjyadjsryysvj[nbvypeadikilcwg]jwxlimrgakadpxu[dgoanojvdvwfabtt]yqsalmulblolkgsheo
+dqpthtgufgzjojuvzvm[eejdhpcqyiydwod]iingwezvcbtowwzc[uzlxaqenhgsebqskn]wcucfmnlarrvdceuxqc[dkwcsxeitcobaylhbvc]klxammurpqgmpsxsr
+gmmfbtpprishiujnpdi[wedykxqyntvrkfdzom]uidgvubnregvorgnhm
+txxplravpgztjqcw[txgmmtlhmqpmmwp]bmhfgpmafxqwtrpr[inntmjmgqothdzfqgxq]cvtwvembpvdmcvk
+gkxjhpayoyrrpcr[mwyoahlkqyhtznyzrm]mvmurvsrgjunjjepn[mkoumuohilpcfgbmsmh]hpwggyvjkusjxcyojyr[wqxyuzbewpjzlyqmkhw]nniczueulxtdsmkniex
+vuzyoofrvaanszwndyt[mzcbhmabgnetrpje]tqnygwhmwrbyosbke[gehqzyhlnyufknqmueo]ngendggbjcvazwol
+vdnploylmxnipfudw[pbkxlaozhqhlbzz]kpxnzwjhybgcenyw[fpukiqrjraomftt]rosyxtsdltbsmhykxu[wrucjfwuyypmiic]ydnbgvicfnmwzuatudd
+lknaffpzamlkufgt[uvdgeatxkofgoyoi]ajtqcsfdarjrddrzo[bxrcozuxifgevmog]rlyfschtnrklzufjzm
+kajqeqlafxtmzirn[mkftybdukmghmyoclxd]plvjnikiozkikifpodt[cmufoktkndkhaeqbztz]drjixnnsdxqnrmn[cmzsnhlirtskunngcee]upgxlcjhmoethppx
+joibiixuzgtkjquor[xmnqotlqrhpvlglwaxe]kjmfrpihitjydwda
+kouyuiijgsmpzynmt[xvwuujrfkqjmtqdh]ukjscwcnwktrfvrmvew[quzbelbcfxknvqc]drtrmvnabjkslahadad
+hhlcltfpiwfjhguif[rpasuqltkbudhwjeew]mkcmvbxqukjczex
+xxqceycviwyzqxekn[tiidftrsnlgpesxlf]obtbqfgogpwkoqow[dabhpdntfvbhgtmupy]hbvtghnycgyywavqbtg
+zlqdqmuxebccmndzbl[ykefimjzdqdmfvlflj]ptlphteflzxmolkof
+babzuaikmedruqsuuv[emlhynmvfhsigdryo]iyblsqlpplrlahtwr
+byddropvzudnjciymyh[jcebyxyvikkshpn]ggmrxgkzsrfkfkzo
+ektijwczwnlancuqfv[luqhtfgwmlilhwnk]gxgivxlnerdhbhetfz[bzczfdorrsptzikjmct]mfrsvxgxijtusmvjd[sbpnwycbrykuhsinudc]bmpikuskzlxcoidp
+igefoemugshofmibco[uhahihzaglmzdpzjvfp]tfbuuhoughgismec[inbtuzxnxekfkulodyk]fxykxfkfnjvswwc
+onmmhtsykubbpdiqvjm[kbfbiyjyuzmemaomkwa]prqwqocsihfnslooel[hysggeprqecalydywlk]taghiwhgnujsduhnffu[ibpvowghgttfsvt]wcajwcxhcriflxi
+evvhkvndeoxrrftqmih[ckxjgqvpdxjvmbwsor]odolgenlgaxujvqg[qyrnnrjgxskuxycoip]jvtjgwaaywdphxpy
+fffaewoawlzsmnqo[ubnpbqpxgenzjiytml]ztberlzwpzdvofcwo
+vhrwunprhbpclog[vqtnbjndcwpuyen]vzuudswovzmjviee
+yfeztpcfgazkijht[xqcjocbnjmvvrzg]maisokokpukpstgpj
+neudpatmnjayamydbrd[heckokdparzefxm]qulfvfivofznkyvkwq[owjrktbaejpffqef]oserqezusmubsertq
+ykgyzyqlodjvgqzmzy[ewsxadkknhduejft]yysinlpnxpaqdai[hqagzwigkpvzsje]auibbpljfmkoxaskuh
+kntmgvoypnpibjtp[ispxkdofjsdufpivwrj]ndecwlfcbjtrnrzw
+pvjsstffnygbjafe[ztrjbalsthujslnitl]xjsoqghvrjncejwww[khwjgywxyglvhgz]kaxctpvhleqfmlm
+ovbgzhzmenxocuvdhwk[mzfbtwpwnttyeykuwzo]qrmyqzvxetjbrhossb[tjvdprzdgjgdvjygpnp]bgkkrcsrmfrsrtahxus[owipixzcqisqapz]fsbkjqgxuimcbur
+mbweohfcgybqcqnl[yafsvfrduertfqze]hqaodhzkmhzmlrxuc[bytcgnvzvoovirqwn]njivpwgkkqvgowpenh[erodavzscuubhea]gizvzrqjzhkikhb
+azrzthfimarcdbk[usfjkmhedaqpfnisek]yqowqlqvlranjjvbauq[korlrbzcgrneashdrrq]fjicirnofvlrlnnkeqb[ktlfmzrqxcntvasev]urpuwoiogtcwskygxz
+htuzgcmjixiaofnm[mbmrnxkedkrjqwff]srvmeadhvwftjmx[vqkaxjmugwdmwcqlg]qxzxczyoqnkcaoqmsd
+qywanrnotepsgufhr[hsmvibiybrxwabambm]tdwinkqnjvirhgx
+cfurhuhjrbxqoefybl[kdcazzlfacaurqguqkz]yufsmycojcxiiomwteo[zcnzchsersrsapze]bhkpjaybdyilwdomfr[ddbxqanevcpjuodnj]ttmxojmazfqzqxlz
+xfpeuaftjtjzzyrlw[vxklxjatlbpevalmb]klpxbsifaszxapsosjq[kjzdnfadnybfnfvm]kodbuiigbiqdbarr[vkgxvvccoyknqcg]yusyefeqfqjkcmnrfd
+welumvdtzozzqkc[xunvcqdbwitokoerg]euvhbecekwaszsmxu[xrffdzabspotehwg]uqzwhrvygasatdaphac[xexwfcsgfyvciqdu]kioaakhmpgudcsrgnqh
+bvirojodecjwgsfr[xezdftvafflhsabc]dlsuqqzkekwsmgyz
+xxnrooghjqtrtkmhr[xhjrmkybtnsrdkp]krhveuyzhsnfrkxq
+fzgdyuackwckqwg[jcdyvdcmrqxizkqxhke]gkfhkoqwqvkfxgj[wfxghxhkbhxhfnscjy]tdpidwqwryxlubtg[ptldartinsqinuymsc]tglyhrzvexdqkkxrer
+qjmlxlnqzipdflotzl[mwewadvcvkoqjlvlruk]aciqxygnygyordpcvc[sirhqhrjopudmfub]kxexybjqhmqmukxmpug[bbvccqpfdebfmnvald]lgqcpzwrjzlhdcalvxh
+gytjulsxixxkwhtwts[bmwcdokbhvwmzvpths]amvwsotxkvsjszzk[rnbbbelvqlqxdckpgf]mfoelmolxsbibcyss[rhqarjczvrulkfd]smrmbwtejyrtbuxw
+yzlhtplfmpcelnlnfgo[czpwiwgzcuyingho]biwyfjhjxyaougycvdk
+nyqhnhedzzlbyucj[ahtgwmsprvxrhzkb]jutcnlfuavbirrvbe[oybwrlquyqzhlekfj]ngfnydtkqpdyusyk[ojxstfhzjmohguhnq]tupjbscsqbvxtrgah
+pktcuxqmiitdhfgja[urxogoqmprdhdod]rynibylhjlnummesvrt
+yetjrczvtanwejhw[fzqzeqjxwqqvpuc]nxjwkjqetsqmfxvjyg[fvyucxjhkszsvzhg]pashbrmyrjwpsii
+wrckfismggcluob[npzqpmftqwrntqh]jxusszbprbpawih[fpajhvucmcqbcodx]ebyukjvtjancdyauw[qowzzdtnwcttqmj]szzphzxntcrdllh
+tiuxthoqxxcdjolpw[xwmkhxrufrnidpzcmqn]bgtqysjkqdyoarlioc[xepsnctwhctkvkcoux]ytveeannchgdrwy[rqulamirtszjpur]pqpdocnfwnxcklwdkj
+knhexvmvgxbxazws[pgqvyqcafalkmitovbo]nkvxvhujdjntxkwvb
+njgihlbuvtogchsr[krsfdyuxkjpbtyqpth]isbqmarqmczgwxcavcn[vbnyzzkztdbmcfwuvv]pcadjqqhwticmggako
+lbjyzlehzcbkfkaxxbi[thjzncmjahzoioaxkec]odpqwbtyioalhdpln[adgbscuhmxwnocaf]zkkncvglgshdpdvyd
+hkehqhsovznpvbswih[opzxtethoiygsform]qqfpojzvraiqodrcxl[ovbkowvnnmmrpxkxgb]pacjulmvfjulpmusmb
+svagyqkejbghvrwjr[zhcbaehiqhsxkeggjae]kcpnpfidebpzbmsprow
+rxnqsxoxnfpnorci[zmwairvwgjnwhwllby]jtfuevbybpfyzck[pzckttxojhgqbame]kksmvjkwxluybydp[rvtglycwefrngwlxuok]nsnbgptselpykejj
+avwfrsrtlqyurykdh[ogdjcdswzzgdzccjky]qqlcnsnrnhasqkdv[dgycbwlbkblmatzzj]dshdkjbwaurjngilk
+toverwzrqnnonuvckoh[djsmkldxbwjbhgjnhj]vnudkekbeegljwxwsmw[pkxakvorxhwibjiz]yefrfdpzofzprngi
+ljiwgubplllnvaph[yuzecfphjkuhzsvbn]lcnyltmstziygmmbqq[xmvtnprtazfzedzril]tnbvxnqbjsguqckia[kfgbtyxgkdfzfvl]zvbvxbhntspktdyuia
+rknzylpqhgyblkqyapv[rlsevieskysudpz]zrqytaurmscvewhx
+ygvvlhyvybzurxscqxn[wpejtafceksukwwjpj]edsawjqusqcncfpne
+whpfhldfvqdkdevzcy[xetsfwodsropiymka]dulqatggkfpfjay[vwgpvysckcyiwloy]tvcztqlixnspgnvtzyw
+nnevzrqtilosoamp[korgdgnaogoonln]ojjmrvbhjjylrnc[dzpncsqmuzsykyyxlru]ruvcsmwpqvsgkrd[ivjfkyskzxjlodhrcf]gaohcofquvhuyyu
+awhprneuruwjztxtmwf[wcpcdlweyrmpkrvdyjh]cdaonqghxbsvtnt
+ntccvvcydxruscdr[wjrmhzszobaebuu]vrbeofykukjwjphhp[ujsccnrjhwpzbhbssn]macvtmbchbanwchh
+fadqomfsupaiapqufz[znkymlxtlllwvnp]nbhbfeabfhhnlean
+mwjhskllhfkyzfgmse[ldegjvgoybxqqjirkul]dacztqtrjzyzezf[hrekjyxytlgnexn]xgupvycugxrwncruiua
+ooldrugmiekmgizgzdh[ozhtqqczghctjoevzyx]ztoepnjmqwxazxspeeq[vbkkeecbzyjohddlal]zjxplybtpamkpsbtvb[hcmmumzyeufosnzrm]fzqgpczaiwqzmhaxurj
+snwnqixjgwhcrpfeun[mvseymbltdzywnw]xbogzgtddtzzadgsrin[sibgoazaxuyfaaf]tdtrrjbxjzusuvzogpa[etytgiqwoyxevcq]ifanoaaqoldczzj
+txwincbntmaddlmous[qnoqrahfvzcyknc]lyxgbednzodetdivvqa
+laqkpspaxfqdpnrr[sskaqoytvzoxubh]viaivwettzucesoz[lfyzcvouvgaiavpxnqt]lqoedmocedvtgehdeok[gceosyhfjabmrgdhyve]fstmrfbyesmoeuzjzd
+ubmtbxlcwzyjxkq[bdcpucmtupuahyhrg]qbacwmgpwrgwehhcley[vjrphfuixndpcqvlrx]myyojfenvnbulfpfvm[ebskbwkmpfpicpii]jqcknedxkvofewgb
+qdltorftziarmsmblzd[jkdgiezykxormlrhf]dudsablawcevrgc[udxosudcterktvqs]mmgdispwsohszhaijkr
+uqtanrclojcfacvbcq[pzkjktkncsqosczeqt]qlfpmwxfgosekmasaj[jtlzdjlllfzdbph]hrexthazwiykycquzf[mkunxvcgzvxkiisy]ckkkvrtygxrdkhl
+ruotffmomhcedick[dmnfkrkkwmcpclit]wasvoffbvwbqxzqkry[lgpydbqfvzavjjjh]goxeyzauaitzyuoyf
+avbqacrbszphimkgl[leemowpsauxeytdcqlv]drltanwwwpxqydt[fkckmeonkmfcckcdyiy]vgrqluieesnrxehopqk[qpofuybpxohvubnbo]nkqkzyumipccfhhnptm
+bcocswwxbpcrscral[zrffpdwqlffhxdbocop]fsnlztdroztjsikft
+pjxihfkytmmrowclw[savrpenougddqkuq]kfqivyjzfrpfwlftnq[tageosesgmlsmshmv]gjbgdqnwiwnltear[uoxbvzhexqonkbu]ivryntlnapjjlpgwv
+vjkvkjxswlamgvcw[ybrhbbrbjzojpwlvl]btdqklkxxdhnnfiqqmv[fqksqdobgdlklrwnuc]tpdcfuyvmpksrqallb
+xzikvuztmnvdqqf[uivapwxumjyrgvcboo]lavrjlftjbexetfuf[uwnhovxuzlhdndhkg]dpczhksmhvlrmcj[ulcbhpvovdolyarz]ojjkmzerdytbzvp
+hclgiouyfswdbwnti[nnwaflbcxvbbthsl]pxjjmisxbyiwmuqr
+fwfkxuhyfdnvvwqezf[dmeokyoipdwltkpg]ddnolvbvgpusjsa[vpoclwplrjknllhryu]rmqeqgagcqmofnps[yvhjhsmgddqtkde]kjijabccyvpsrszs
+jjtbppqfxshylfxwgk[lfwaleyvjukiuzpozij]ukepogmlcsxhfcx[prcunmlrcsvxdjd]mgerqzbqgxqexiqlg[zrmwvhevfcweixuex]fxdjurxhhfdvuikdn
+eawekhvzawymmdzms[kzhfljimwaqrbvv]dtherbwgzcqrrbharfa
+eyojauyxcrmzoqcqp[wxfhnyocnlbdajjwdzx]uywdludrfcaregojvlx[yrnenbzjowzhlqzkuk]iapeyfowndzpwgtw[nthkukeqpebwhdxekte]dxktirqzurivkqegnsr
+azdmtszcptojcctn[iusriojbrvjjlydv]qizrtjmzmjbmwgod[hbtonbvuffuhelmdip]kwcfekfqlhqpueir
+ctfdidpiwnnprnvnutp[lhlgiglwifvarkhbwuw]isarjxgvutokogi[etyigiqpfthpahnmd]izzwglokkvycageup[tyvnjnuluevhadlop]awzveqfsbhbgysco
+hpxtzoultqvmtkffpb[dokdhhnjxmscoplm]rqfnolhnrxvnozjdv
+dgcgifmrdaalcgcezk[ahmebeklyswhtnxlht]iayodwnhtczfccw[epxnlylxxvjpntgcj]ikqsmqghefhjgnumyn
+wzmjnahgxidsrxhm[lcuntbdddrdpcrop]sqjwrkyelgfgkietb[olqqubshqcarkfa]xpydoavvjjzewcsxc[qzspebtniqsymfjik]dnqzxclkluzfsawdfxv
+audcrjgzeftljqzw[fzzpqcdxsxiricuds]eyjqrmfwcagyffagqc
+btxzsdjmldelvkj[oecrbttgfarihfju]xmdesiupsithszyf[hnsjqvzgoqhkkhoat]qgxxglikazknfcpjelw[qqbnfchiuduqraydibc]agtolrvhctxlheezjxm
+piqxruewvmckslykyi[wkvxhrntyrrdgknb]kjbncjxnwqcwvzbpuv[olvhfqgparupktaw]xyidaraeyxgahwkf[yjmpgconpxpeemipaev]spapofeonejskpgt
+rwsucmdalgforpx[fptofnnrzpisayej]cyjiuvtyykpvyzpqefv[qpsoezjuvbfbtznfa]iuqyhjibfpneszazjs
+tllzzoxwkvksmvrzns[fgnkysetxkybvch]storhozyqfulmet
+oacadxafckiudqmfhjo[fsamazbypvswtsgpk]eicndqjzospfxycc[prckjeeekbnutohbwk]ivsbxexsumtllceon
+jindledcszfmvquq[eequkemziiktdwwgd]vynsulrblnbldpv[hvehmekmguyhnyr]fpmkwyfzoemssyvh[qwffpztdkkedfipnpm]gmlmkucisbageapvts
+woqmosyyvxpfmlnle[hacqqmceujyvgpn]xfmcmokpdozknvxbju[fnrvwiakrfycqwjwo]rxilhfmwmbwbfuha
+rzxpewtaxroblzseavt[xnzgqkjlrygoawr]eyhljysneggmabio[hxchodkaancmpwhedyz]okxucbjgxqabvuwmkm
+quyfvhjxjrhkxzlgxdi[izgyrfkxrtrhhjqhxh]qoqndbfnisfqnmmn[srpfccbxhvercnc]bnhnfogyaghasifuj
+uwpvnobjjapdodvuvcn[tcyadiqhfgvyivfrj]gbxojvfhftssxxw
+wsrkdxhlmjrguuusl[bcojcehodsomathk]alirscvtcximlmc[jqkhsmycbmeeobrg]bxkpialtvbaoyyi[sdaazhnofawrugjugkk]uxchzsbcbnaqcpuh
+pfarrugbwahulsa[ldhddlvlbjibnvuv]tilarotebpmswyzf[bmpzdqouxybpyquaqx]djzgdyihpmokqwd
+zebobuzzdhxrqhrdx[qtxuxqkcskobopgreip]mafakpzsixxtswgbj
+ritgoytjhsvejqx[weinhscatdjtrox]wnctxtienkdruwuek[jajgbiwplipjtzz]ziycfhrkulmibaonfr[cukdkfiyvtcwkvmd]zrsfspitfvyouvyp
+lvqriqiwhkbrhcqs[djugxnocofekdjwmqj]thmudyjerpzhkdba[oiugxdrwlvhewjjr]blqbylawoxakibn
+inbcozwxxvvidqiql[kdcpnksdbyrejmqo]uondaihvtcuvhdi
+myokkyhemawvwbkp[dednvcdwlebnmrqvwv]ctcymbkrzawvlaago[lwspfpqgqnoionz]spabgsgwxprvjhvkokl
+rexffiwfnspzpmyn[mzvgqvurfjkidzqriqo]mxiihzysexwbttajwz[uunfaunxxyqbrotibf]yzrzzdxihtaxttejgr
+afzicsjqtkrxnijyac[ktvvxpacfayamavs]cysvgudsuvohfgfqq[vhexzvcyislgkcux]zrvzapbjmazvhuoqewg
+nnooizmnmckfscw[hkuowskeopjsjmwe]jhdbueqlfgpmdopyhm[rvlidktcaoxknsvl]gildtxkvfhnatfxeh[infjbdnojldommqhxo]oxbcsksyguwkkdugg
+mmqtlyvushtqihwafvk[mjnrjvhhalkwttra]xufqefhpncyugjddb[kxtjxxeugowjxqxbbr]krhojliwfhavzttfzsd[vgswlmisfnxwythrhi]kwtmlfbkfjtdsuqfxc
+lzaluvqdvzusmrpv[qypygkxwzogwejqtax]qyiumeiuoxfxbbq[xscktxkdyhwlayq]gwvtzqrrvjkhovkukm
+eslcdaqtfkucqxp[fcyifagugztsyggmk]fetbnjgqbuilwypcdhw[wspzciicbcfpuvfcwd]jzvppaoudhtpznrpqe
+rbmhgksoawmvqryer[mshujkyqkoixutlh]qnilyertndnhfbtuhot
+fmgtjtptpcgybdxs[oyozzxvclbnangj]znafmnkbhwvijexm[vmeeytrraevvvrnh]vpmfldxpxvruphurx[xpvudayopdhyjkitfb]jvzzhipudpokyuz
+tnntncwjwkepyjjj[rhiklabfhxebqoxjjd]nccutnmjduptofslfw[ztvcsayffkslzawquzf]bzicdywymajrjihcc[eaxrssfvhfvbswpqley]itikrgohakoqnmbxv
+oxpnarespssxlvbhe[mjactxdxwrjxjoa]aodrhgqmztemdxtbelo[vuslqwnngueagez]olwrulgbcmflenua
+gyccymmdplnqvfj[omhfidjspyequep]zntmrvroecllhmijfr[xnegyunervbkkskdxft]cmafcvmcdrqgtcg[gexcgkvwzzxjffe]gldghyxesjixbrogla
+gggmbiorxhmyikn[mdgbulsydzjldhpa]uwtdwcegkdlnznn
+bnhgjjhtffydhmndkp[lbqolggwsszlyozg]agzyenlcqvnrogy[ekhcwghezpmzaduqr]xzyeaxduqzjrygxneu
+yxtilzostvugtfnm[pjktbtpemtuuoew]ffjbtbdbhfzsgnxh[zutqqcmomxqjevc]ckhzcprrfbfitcbfxgd[kxquqirrvhqvddtkb]ijupwzfwguufapi
+cyctggsonxaxixcm[tohfyqjcubsndzbrzq]opxdpwdklhbroyhocip[endamtsslfqyzisyaxo]xmptlehqgsuvsytou[ereduvwssofzjlkygd]zkprvanvgbjyggvn
+nxktelnubcljypdxkv[xrtzoweqclflkhbwit]eotleemqnyazcjuxgwa[snmdckbgyopkpxunfdt]kenywhabxxddwxwww[jnblykmfrrqoctwavdw]yevwnyhtxqytkeeslmm
+txszmuaoxjkvjehv[keshifysmztfwbrnx]izfqdrtaovdmzsp
+wmphoqhrtbhtijxq[fbwpvxocpqqtnokrpcq]cmlumbobzfnypghr
+vtdxqtvthwjnvkjpsee[kcgyvjhwmqwzbyx]kaezesxvcerwqsp
+teqxlduxiirrgnx[zucffwlweaudpri]mzpjffiywjcbnuku
+jkqdvfmtbjnmklnmx[hmqoinkpzysxsrktpuo]eguyzxaqkkxuesxprk[hxgrqyycjsnjhrfmfns]pdugqdkbiygczaxy[vvsuyjuhjomhrpfyoea]pdhrjxlxyjiyjyualnj
+zojzbjfulrbujunusw[fnunifmehxzbamnfkzd]cbfvuivasqkakmized[vbjpvzpsakndpemroh]tixjxkptjnitrbvr[bxenidaryhykquy]qtoafogjffdctmrx
+rwvwgmaqhgqjueicg[bvjvjxgigxyvfixtg]wevbbttexalqtfqg[gurskiiyupflaaoia]weyshamkcasglulxb
+xcwjswerfgbbupnrp[tuseefeiwixjqlvp]guyprztjuwxbhxkuhz
+inmddvbxbzcapnrjjp[isuwmmfkbawoysuawwm]crqwcnynpuxmpnc[vkryjewmwncajmqnbpt]chngmwwggbyjilmizz
+yuihdfbeuocgylfqfr[dvyzcvwfzdmdtlnnl]vpmklsowcbnqhuvl[ayebixlsvkdwjoreyj]ixpbtsawfzyhhpfyes[eviatjhgsxmourwmj]xsodwoouovxauxrknau
+fpwvuyqazkzihhw[xrendoqzmhewvop]ktetyabvmujtvffcc[hzyvkrirmjmlrflal]gswncgkujekldvblnw[lfbtpqdmhqoxmegdlpb]jxmulcekdazqavd
+hkfcwyjikyfztomcqdh[caeeygfgwrhnlpoboe]bhldovhzlzfkncre
+zlbhtywlmsmufziawev[tudpnzttpwgwfqsyiip]gsmtnjikkghasjzbkza[qptaxafyakibdukwgz]kifbubdofpdqxrukibs
+lvxbdcwgasppyujx[oqfwissnkbkakmhk]nygncthwjgtvbwaz[veaazsfwgiqduizs]eytzwauysufqsexgt[toakaopkjocdxtpxh]mgmjiaktsovemtzl
+xnlqcpdgtkdgnkonwgy[fvyzkqcirtbmfvqsard]rnsffvvzhiikmotoh[bpnyaghincndggsxz]kqjcrdmvkuzeihsmbd[nmyysycixszjrzuxlu]jdswnlosdguqdpja
+jdnieroqeduzimxg[apihtfappedmfjwmebn]worvqicbopocech
+xyixktzuhugnowdoaz[muuaqgkhheqlkto]tfwvgrwlwrtwozv[nugeofmlhsleukl]tmctqkiphuncroetpek
+ovnratuwxpwzcykzpj[foqxyrskkmesltfrwg]yxodjprqnwqemak[ymbbzjpeiqdvdbjlqql]vubqbfvqtpaaejhbjf
+rfizkxgnhnvzysv[omwubvxihthnhpfb]ghjoyszouqkvjjcs
+vblsthcbmwurcllqht[fghsxxtabklblefkl]blbuqudblkhrokps
+zybpfjpahsyjoroypbv[pspmqreykvjrracm]cmtnycrboclakxllp[wedfbvnkdzkjeridt]jzdanlfyrkymuvuf
+hjvhopnvvbonrcih[qynsimdpflcjgfvxii]nibjddllyxyeerekprv[ooqcghsavzxkjwhowg]mlrfdizdusszgvjezqe
+xxmfnrvvmxvkwcnk[angqlvvvnhhzdaot]xbvxgrukhqkzmjnzi
+jtzuxzfnmgmwaxds[exfqygocnapdnyelw]lfvjnpnvewjdldvreg[yjynstmasvuydtzygci]elujbvkkjtnppkdon[ztvmfprwdmypovmh]fcourzlawmpneezhq
+tlgpkpcocdfhyiarw[ehknakogvjljkshok]uckpkzxzzmbeslzpyw
+mistdegjfgtbbrg[vyzjyxyagemysturc]xympgroewkrbynfj
+zeabxmbyoklbutcx[xurfybdchenrzbh]mzjqooejqhutzmbs[kztnsmrisqgcwhnaua]omvjcovqwrcrkjkiexr
+oxzletzsngrttcx[pjehxfxfphgfvjktnd]ivupaueotjstxizzjn
+ptccmbzycmsydavfxij[lazrpzwnahixpisflpi]rhdvbmwoakmormp[sqsictutmqpipuv]baevorxifbunpxn
+flencoljjwnpxse[ptdpigwlfeocmacw]sjuqfwyfdtvmxvl[dwkmzdasdrqgwhgq]idtqdgvwtakvgby[dpsntznqveznfgthmds]sihygmmnpyfzryj
+rkjmrunjubfjyjxw[zgweuykyhuwxchxn]beusqwafaiqyiusis[ivqowbexdjlfbjruek]lghaaldsrtqosxco
+rklovxjiopapoesl[elwskjmfpdkvhcih]dhkpeigfdcuiikkjw[hqryzvjfoyhqartgew]krpfhfwhjjcyscepd[wykceqswokmkhlsjmyf]dzuspslbrocmmnm
+fryazziglugprgfcrdr[moxeblgwqeuvghns]wxibobcvcgpfygza
+vnzccxmthrjglqjgiuh[yvuwzxakvwndqxv]vmwkikpdygmkwaurdk[rmqjpvepubstccus]dmrozydiidfceyw
+wqxkqopsmhdejcrg[jhknpshwohpnpje]lmtxmkyuyjscmzm[sfsrvcmzctxgzhvink]wpsmecgomyvnjwvbtcx
+itcyzdttzvuvqhkik[cescfxncujbknhub]fqsotealuatlwsbqvxn[xwnqysqjyvvzstlpsjp]diyqmxuikszeiejxxcf
+aourqwkobsicfstqk[sgnlfieszqpequnh]fkghwhahwnrwwpor[xuaemetxkjaaduqbi]kzwlgxlfvyzoror[ridqaivztpdxzeacj]wpphturgkbpsiwkel
+xolzcpuajnkpzoyae[aqcqprvtewmdlwqaleb]hkyjxrqsnndxmeazhe[dfgwjdrpebilinta]ofoggmssczeecqss
+swdxibbsmxkivtpx[ztynvlvmolopmji]bdqgjtkmnjlmsjru
+hpaiepzmwathlnj[gyupkpzataikzmrud]zwewwulioarborcbp
+yohefxiskmqbabbnz[bcyankaddygkumqv]uxvzlfsmushpfgly[htcgkbbcvcqznfg]byuxzaqjrzfldmava[rhyxlnukijhyjtahjps]vqmfvcgpxvjdjvgnch
+bozraaeperteyeqyu[dthgzhkjgalzoumuc]gtleiqtncvkdefzv[rsjbjasnseqaeqdsn]oyyytssftyvpssr
+wmpzdknivaejaoourhx[gcbcoftyaidwkmcfpfc]wjgdlyyfmcbcmuhb
+rfjmjswzmbdqilrwoi[wonhehqoslwkcuzb]mexwmjiczvztuvufbmp[wmlyprqcdprmjmhpukn]mjdqgcsbqgjhruwr[wyvwjsqvmybbwcfrnyh]wbjdjkgqajrwthha
+jafuyjvmvnlcyct[mryfhcxsflxqszhupfr]xnifqiwhdkwwcuvycy
+kbtwugmbfxmyakkrg[dvvyezeuchxtharp]crfckkuqyhwknfkxn
+acmtosqnsqsxkhdrd[jkapzaeusxzibvctt]uscjxyktvaphdkkdaw[tpsekpbdlqmiuoj]qcaudtzfapwuvjzxfxu[zhbsuykivuwguukvl]cqkrjlgbidtjkihjft
+lkjjcjauuoogrerw[flrslixtxcaobepjz]irjuforfcjxqakzhlnt[viebkwhwfmtdvbj]emjfmceqvgerepyzpzu
+zazhycdeclmwotqqavh[atizwuahmzwbwqao]wafplpfraqshiwrqvn[hoyrsljedqmcrdux]bqnplwvwfsndbxzvd[seixffhhbexvizfz]wrlkgcnfyjyurtftfv
+eqeeucxhyzpfiesx[ibdpqscwudjrphylb]ftpdqxskecdumuz
+tuaigpyydbbozvymwzi[omnxnrlltcpbzbch]ztdoamraigkkptodpa[ajqpmmnlqllnpdjqz]hnnxyynvacqsvxuhx[qoizstfmkzklrtbnxnx]nwwwmbxyxxaaodhta
+fkmisjreyrynhqmnx[kdzbuprwdcttzsiusk]avrtoelpvextcly
+dcejlfebrjejetdjmzf[ebtugaezmdvkxdl]babbgplruqqghxseeuj[kdjgtrnnzwffvxa]cevstjlmpskjzeeidz[gjckmdhojxehxuc]nqrngirtlagbwojukb
+falbwekyijnufsyrgqm[lgwnlauxjymmzavcws]davusoovwxmwgjo[gzvhlcaikjbuttssdq]wpdnbuvbqozxqvua
+jmhaipdyjojoexmgaf[yzeoffzdsyntjpawdah]eknpywjbojoskyiura
+peipgvusywbfkfb[dpdvkejzvcnfxubljtf]sjyxhekgywleihjz[xpebncztvxxonwuqt]eitivylwufensob
+xaeemympdbdanfy[zqxxxfkqlmqymzx]ssixxpwgisvxftal[twffyxxxzzfwejdo]gawoyoyptgwsuncuds[tnpwtclzavxnshge]rxiwzaghvviuddux
+ndmojeftchotsyrui[onrnsftjvrfnxdub]bjbtbwpaxunibohp[vobbfwfgnztwfwk]sakgxnmssejznuym[lrkjfeagimaksllzkw]tzjhoqgstnhiwtfwxv
+mkimrczxipnfjoenfyn[cthpigbgurreqaqm]bgvcttpetrjjcrn[wghqiaakyxmldcp]urwutrvkaukluecpf[vcrgtzezdvtjdaqn]avbpyjtujtvmsbkl
+kffuasdfmyyckbvcpi[mtlwqooxmdztgraecr]nxxxmblqjctmimlvxyj[kbuygkhxdjcpceg]ezcpukzxpntqfrbwf[lhldwijzzcqidqamcb]bjlitvbbanxtbiu
+ktlvgmzwavemrvzlc[guvmortwepibtzbvoe]iomcuyiybkjctwmk[mpaujwsppiwqfnpczk]anomefvhsofxngylnj[kvfesmnytlnjpxldqiw]bpxaqmkkjkqedkjinf
+aycmquumrixcpyhx[iglewlmfellbvdk]zqfiuckeyjomazh[wdtngaffbtofmbva]ayjshpmiazzlcjowue[xhwfuanyynpdsezcodq]okoqtpvoyxfqiutag
+kxymotzfhlhhbdl[tsbdokfypokswqetm]cxjtuubnqttfiapsbfy
+hqjrvqgcycvhzdtfc[gshyzjzeiuyrrfiluow]vufgsnuaifsevwbts[zkzfgyckxtaorpldyls]hvjyzbdfqyykluj[pfpowxclncoirdu]ymoaujufohlhrawpmz
+ldyqqxpficsgnsm[rvnztmernrjmvhls]ttduhtgvvmjkiil
+zwmxvgenqqbbqihujd[oxtwuouobesowqrao]gnnxgbmaeijeyeh
+khkdmxhvmdwdglpqjnq[zpcmwmjvuinqcim]ffzjfwsoxavawvusc[bentinefxinnuqkv]szerswbequtjacvwu[qttnymrwpyhamlubtl]vqnaphbflnmzjqei
+fhqsbeixwxbkrnyx[tjmtuauoufrvtmsnvod]znpzvpuvhncqtjt[icgckqkrkwgojirrq]ckxpkdfotnzrfzyldrc
+urwjarigxmgmgswtn[xjrjsopzksvzmgjhlrn]pwjsqoxtlshyaxf[axporznuyfctqhi]gvhznwrjrxljgmotleh
+quiqiilyzwmxyzbfgux[ocyzjvkyqaqfjoqag]wexivvgdhmslykwwgp
+bgsppuopeqshvdhrxt[yfblnbsqkjjueioisq]lwvpnboqojguqaulrlo[wnhlxlfouoglnqxgnev]iyqqhnmakvoxztpxnp
+ofswixrurgvazkn[jukbphamobnvueqdqnt]adfjlvakayvrgkmtwka[gmxkfhlglhaeznpff]rrwqdermdneysymehpc
+nazzydfglbansumot[ncsbwulgursrszyknha]urighqhhyroexekp[szxbjnxkasvwpwua]hdnzceosfcqebtprxxo[zwnkfvufmgdtvez]rrlcqspkcptjvulsfng
+vsodrkskysfmohw[hwrjtzyduqodkdjgj]xhiosvwdwuwvqwwqm[bwfslhlgujojxxsrhys]micvbxdgzihqzltzje[tggikdhiylakwufw]nntlstxdwwmxmjz
+ggwsdmfoilqmywvyktv[nqrfwjbmiipttqre]dpfehnkwftmeabpk
+idetgmlzizlewzpligc[xskqctlxfifwpgtxje]lymzlbqpnmeylzwrq
+wsnxdpcqyfleebzsp[jtdmlqmyetpcpqjzsyi]pitazjxjvewnjho[gqesisudfglpdolhn]jfaziwwwlpxwxhqfynx[cxwejyufcjbnvkz]ywcyufkunkitefy
+zoabcbmpdbfhiyzzrb[lindkrkqwhhouvhhvfn]qlmljywcpqtuytbydxz[ktyjpegljuoftdwcbza]mcgddpemsqxvicvm
+mxgthmyaupkuhkaolg[wiakwqprrxxrmuilza]pmuhwmouewzzxkq
+jdbxzpohbifmjlbesm[vqetjjqcvlniokar]pkdspazyhqfyvovxhmc
+aistnzrazhwdybv[ujwpnuzlxujgyijesso]tijdkwuxuyaotgi
+mvgtsndmrheqjrwhip[ohfummqvupizjumgvv]kczjngcfeuwozis[izjdzfhsafujllbgqz]smvuowfxvapaqhrm
+pcuiwlviqnyoachj[dlgxxylhzwhuvowtr]piyiyrxcvrbtcdn[kcegjaozyiyibnh]uwlkvkmzywsidhgcej[mqgatgmrdlffpjvp]ybsaqisekhdzkgzj
+voqzvcjzjclcqqiqqov[wzvjezqkeougixj]vqhvqanaiolmhkfpy[cgjtaytywwwoclclru]lrmisugdvvvkfsspfi
+xqkhogolmkblkxxje[kaejzosqwxresbgogo]ggddspicalpocithils[pztbyhclifuodlwhxda]cauqeecfiwpvyvzehjk[ufzlxamwsmaxvsol]mljctouodsupchz
+kcepuqpreuovyraar[aiwdwtperlwlvbqdxi]yqavrluyhkhupxxz[vlxuuotzuvlfvirqo]vaewvboqoxfnggrrnw
+gxeijqyqnnjzxvigef[prwrvyqyvxzojonqm]grlrsdpfhvpfjwrxr
+yytzwymxwisswxc[terkcypwqvvmdnirqph]xdsjnlpajeicsqd[mvawtnvvnbocxhdx]gbzyqvwonlpeuzrstep[unrdpcwvbnhnhjsr]hwuzwmraiplzplhb
+lavqcyjhwczvpyzipl[iqiuwaywidvolykuaq]nbgqhocjmvsbivzt
+wdwtvakvxdapqpaqwpw[tbhryfzypcqkmvl]qkocobnvijyumdif[tgzmvdqrflqpajv]iztejfulutergziy
+ksvcpqqpigrddnva[fvmdashpahovucg]faznkbnixlfjvjyhg[klrcqpbyyqexneuw]ogvdntbaxvikxut[pgbnoqdsjbhnnfsglz]vgmdegzvdtyirxq
+zrqbhwbscinzviqqbvw[igtgietobqjhjgu]jljelzghzqbmlkehrbq[tvrrrmcbuigfcfff]vfwgfvlphnwunvair
+wubsdikgqcdnnxao[fyobcpzfxepbhmtz]lgicisnssdefoquygr[uodoaghwyeovgwqd]qkaorrcwuumonbh
+kzjnwgqelqkmltc[mfqrapsousyrctoxlpl]khapytvlssxxwgblc
+oemekhuucnnkpglqn[grxxusqubxdzqyl]kjdmapmhyszfhemkjdv[feawbayehptooegn]kgdwtwvnavtiduqxwo
+royijobmlxsglmfotr[uazprkxsqtgqbdeb]zztikniqfvaxifmhupo[uqtzaxenoirdmlyhwp]htfohllugfrwalhn
+bgwuvkhyegrmdoffuw[uslzpejoesttiegxavn]ebebdisdaubdhbebp
+aggmxhtosvempmory[yxtlfxfztmwdrvxtvi]celvnswiplhcbolxw
+irgchekfpygvtxnu[rkmlwzeasngauzubwax]ujxwybzbmghcbglye[ryciioqcnrvzfoj]tsfhnuhouhepozzjabr
+nugltbtwohjpvwm[qumtmfynkzltsysg]hrrhwgzkohqiqaa[atmtoaosvluzogrsk]rewpjesmmmiengjek
+dfwxiypyrodbpyp[bcmienuitbibjciawg]wetmqwsernpjyzfiqg
+agxpdoozggfgqhpkups[wczujtsywkrldyoxdu]stxeteqmxajruxhxxhd[bqvzcgcflltfgfulcp]vdagkanezojneoe
+dvqelzyssahitfpag[grtomzhszpfebiev]kccedawmhuqkcrcrk
+xdiqoofhceqxmqs[ujdcazesabclofy]azfztgulqnhfzfcfc
+dlkchoeimefcrsuay[zopdjifnlcgnmbcdu]qdtevsrixomqydittn[ethvxsxqsiduxvzp]ufcyoijlrdwjiqy
+avzbzzdookhhinbstmt[hbetohoiyzeetxtjwwh]muuhqqyoenknrosqc
+ziaoosrpsgpmwdigl[fmgyicpxugwcenlnnia]ygcbciigvnqojgkrq
+eeclprewfejnypima[wuxinonqndaynnneh]warzohigntoyvbhdb
+bsscuanhtqgprwnq[sramwctkwarfhzewlyr]nqjbqlpohnbaqkxacfm[tfhsdqtivgdnvplvigp]jbhxkufifdlzppfso
+afkhlbzuvhwkqgtu[xljjasobpexxunibvi]zwsvpnaotvaghchckmt
+mmuvtymmslzxuxsl[bersttslewqgxvjgo]ipahuxiewzsnyhcgm[klpdvclduqwuaqzmda]xfgdcmvzzkyyhslmh[syfmraupugxlkobew]zxgbdgwwjnoietp
+srithuoihefavsxwgny[onounhtrnonigjpukmi]ucbyzheogikvqdhh[eqhrgtujasnhhkoobni]epijlgdvxvymfgrv
+ntbtfdqgcridugyoj[slmqwvjooruxoayeuya]elddyfwmkdaqrvj
+eagpolfqlnjahgrp[tntebocuegsbsjgkf]sixfopuzjvwqbhatmn
+zatwudnjplfwjaorjw[jqcqbirzvohixpl]fmlqzcprruflyfnxk
+fjbespfptraaisobk[dehykwsvkxiiehy]owzcfcbzmuszaui[vxtmjuyctrexdcai]gtafjdieoegejbbxx
+uznhobovgxlnclgsb[sgkamllpdkleossp]qwpimmrdmsizeea
+ommachltlnpcqsk[bcgqymqekxeduyteuc]sqqksjfqwcelmvxvmil[ivologuudhoyoljbpgc]jxuxubuvsocambjwrxl
+xigypxktvvgvvzpsmws[fefhqqoqufcqiicnj]nrvcqtvpvsyoefeyob[kpvzkboogiefpjei]yvmewqmkwqivsdfl
+bxfnfdxahjhmlyhviht[yagrdqoiwsjheeta]dbmekzhawtetapagtn[mwsgphhxnszvddmmmuu]myknrzpfuzigvva[rubuxbozbbkjbfmr]ekgepgpnlzjbrhux
+pxgynehaeperkzswyp[ctfzqifislcdqhign]kwjhjhadvkqfoprosyn[bxbjfjduweqqxshqrw]uaznlkxmssfmfzm[xbxwdysgytptaphpwse]ugekghaaepncbpgckzj
+fkznfudbiblxhhze[vacqcynzyiecofd]gxiktkcknhldckcp[hcouamymtafatmirx]xteiephuffemzeel
+oyokrsrvnjyehtinvg[wjwwwnyeucvpgszc]odoytwhhglrdodya
+ouasmyefboyrhlawsju[vvnkfdgkrzdizes]pusbufkrcycpnfrtm
+ljqkshuoyqbvfza[awtsydwgfkavhcjmpx]ujlnzhofnfrecdqnrd
+msexjvtxzrrrpxltxy[hpwhplpjyxwwjstedb]lpluzxqfapmpwfncv
+uzdzpjkqdjwtzflxaur[kjsxmwxaswopwyxw]lpztuktpdibkbhtqs
+bsghlbjkrmiwwrzfzzq[whofvbzzqaacwztf]ikkrevvznotvczoqnei[xzvrgqliulervgi]yseqpdruqmaiouwkj[jlczdjfmsjpgvzguh]waxydchzmoughmr
+iitiwhnalnlosnc[xpmwkcmbgrwisvoy]tfctoedzsmboegtjo
+ttqdrjzymuagqqiz[ckecwxlvhltgosighl]oiknxwhvpoefazvvkn
+dgzigyfngxcqwapqbfr[peyzbevhfbkconp]bbhycxlmzysynrcdij[qqsodhjuujzkehoeawm]gnlyrbnlgybeaaqyrzg[pouqbmatsfczqqrrkep]mdqnfjizjuaydagu
+nzojrnbfrxvappppu[gbhscjbspyjsviyhv]crhdedgpszdouzio[unnohemwxlecqsrhtez]blgpnlvjkmvznlm[edemkrkixzunqjbbw]wrofffrmxakiqwt
+hshucyqrhhwjdbyvil[rgqywsctjhucvsvsymw]xujmtuifweuvktqc[qwbxmhqfespgrzho]goevsvgqvbskpciebr
+dvdjksdazrasbbmdp[ramiuseukzwtkycxgc]ycppxvaitmsvdoy
+xtxspkgfoepqquwnf[viivstflpbvqrhmyt]gormtajywcijwfbpmo[jnkgkcuhodivxggiw]fdpkuzlipozqwtiwiq
+kidemeuvfksjsfhy[ocwffrbmscxzyyax]yuljtvukgbwalmfsfc
+fahhvpvwkkvltklj[jxnxhkvasjqewonzi]ttivuutjsoyjvfcpj[hpthotkiyjsyfhvk]kzendnponmwgjpyz[cruaaebmvuijcothir]cjqnlrjthvxeqdndpc
+tsgjzunbkpizyqeqr[wqaqjinfxbszyik]iwbntvvubmiilra
+dwiccjrwocgangcqdy[artytxoxbrrodhnrzmq]ohajkaeutwggiventwt
+ibtdoaidcrtbsmhvksf[akuyowgcojzfdwraota]haaqsvxhxaixwpuhck[mpwpofhciwnjzqatql]krgajuglqvrzbprtta[xeehypsucuajhon]pqqtmsrbsbdiwtxnpv
+baslapqsocqdaquvh[pjlzuqnuzytylre]gprhwiieirqfbbb[ytvearxznsjbbxhlf]mnwxjcfrvimrjpu[cvimuirdapiosohzulh]wmthcardkqnwpnypl
+dmpkayksbmxaxlrur[eeswdwprkphnaqd]eikxmwafysjqxxszjl[plcixcgmkbxzwzuhkp]hqoxumhablcnmoip[bptiogxgjindjhfrn]xxwatfkthcjwqyhnkje
+uhetvfadhbxpshtnf[maihnisbzjjddvdbh]khnxpuugcpiiaxdtl
+ehfeojfzbyhhvhm[dnztraunljulvhnzfo]zlqarmjvifwxevhv
+onjqzuwqztqelqhq[wwnytdpcnjphrjetxxa]gqbvuasgighpykjg[jrrtrvhhjtuzxiekcoq]rybavgoltejwzpx[uamnezcvwqhbtnpv]gfwaifghpqmdbtuh
+zbvlbzrwsnqtmxvevvs[akxdycrntehyhlsikqs]nqmrgxvxheqeinnb[tcaxyyaxqqyavodvqmj]vsllwhiddpqnylo
+zgegaqeqwyrhclzdlv[yhtevctgruszsqbcb]vygeingtolabpgyojf[bqsvkrlaqaughbr]zspqjczelulswra
+yeunxsaihaavuoavjp[frtgjtmwotxdxcapfsh]pagxqknufbkcxlnsyv
+vbvnrdomobobrkd[bfluwdqgdzzswav]ydzrlrtgohvqbwoto[czodsaxtotxohnje]nqgrqyggewjmklzthpm
+gkhqhprnmrtdejox[bvuuhvpvdylnnpbc]spjvarmyzcxldjf[vjotgcqnfrkofqfpju]rakmxvjrrocsemy[wclvowuqivvtshwlvl]vlbhrxnfadktffqwdts
+eieofbvelgfaaif[szerphlnujlfnltmlp]uczsdquecftuxywcon
+fjikwtjhppqemms[drckbokfgrthhjj]eccmyomrlztemnjlli
+ycvyiclwfsqfimqbqhr[salbqbgedsalzeukosi]vsnlwynocjtwfwykobz[gigasolhbyirzzgl]nlzlwbirifimfjs
+xgtkwdpokjwzsxmpgl[yfafhfdemntzpbf]xqqpbpmldbmxqkgzepg[fuouzqrvwysplja]jpvejlwtvcepklabv
+wwdngfpfaihzehky[ezwobhuctncfsxw]ujzubptpqmfbmtptv
+oqwujxuxffauxup[mnhbivdelqlevvxgvyj]xmgntwppomdgploofgc[hcgxkkuysqfsjek]bufawargqfsvcxqor[vjzndzuanzasgnkpn]svvtfrrflvtvndqliy
+sxxmkxkpzxtirrrkdu[sboyccxldcpclvtf]ygzlasdynwvphqjps[hpicrvgduavhjhi]vfdlyivngovuvzd[nqqzqbitpvgzlopktun]bayteidfcirbklhufdi
+bepcfmlepfsqmtpzypy[alucbktkeotktgnwi]xuurpicvnelquvcxpr
+igeoujaqikqpdbqhiz[pefrnbgmefclodb]lbxfyjpyvtwjsoe
+npfgcmpnsucijsoq[iczfocvqgerjglu]gniihzzfdbddgfvwopy[chvpghdnjjzqblg]lgdxocvckvfckxgjkj
+bvbuayzjrgreniq[vvkhefnfscetxxbpsk]mmvivsvdwravbvtrt
+xuglkaojzufpbpondc[twaikvgetnyzpiavz]saqkbnxkrbpbyfsc[qxztmpswmpvpvisgv]anzhylixdnapsmiyik[hgwnmcxtzpksgqeuurn]yzhtwfrdfyuvsjmjpa
+jtwxrqqqyluqufdf[tvkwjeghpejhivekqx]dcucgeqebqyhbshshm
+ahhdycrszsrwjjcvojz[fmrmjimjzxnpqiybvp]ltbfzymjiujtryu[mxwaqromkutcwbwcg]hasstnwcybuhlbmp
+hylwpmuxubrhdotqr[luufwrmuemdaqekttwi]ucyndgpufbbqbbsq[lzdvdhdfbvgakrqbi]tnciwujbyekicxguct
+elcdjqojmcwqmlb[lvvuaudbokptcauadl]qmuukgwvvfpipmtd
+ydpbccscfptppbic[phdmkbviawxqqyqevaz]oekifajbuhythyqyxt
+evbrgexbagkpwtf[ywfmvfpvkfgvwwpf]ktbfwirdfcftcxbqw
+tvkdxorbjljqdcsbp[anhtdvpapvcztmuybpi]igbiinywiyrlgunyvjb[evwzsfjmtgrzxnzkxmp]ycxgvldadmkdukwni
+fxuwajvzdihghvdn[xexunkfzvyhstbz]piyivjleyasndgnny[pdakxjkrgcpejwnnujm]wdzqcrxrzpauwfmq[nuxflgndvxrxtrnjw]dkaggsnracnbfamlb
+eqzmvcfzysxuymgypzw[dawchbjtjthjrwuc]onmnmwdlhucoaisobj[olpmwxvcemhndym]rhrzrnsqnmcqvoa[fbjcmnqxoclntvcvf]cjbvqfninuppvovkmqr
+pzcplrtxsmrrnkdhb[fsfhbmpmoltsrazzmsc]lqxfdwwrojxmcppnck[jwmdfvhfkirltazsho]bupaelpproqgqltj[hwuvzedqqeozddnmdkf]mmppkwlljdxrupt
+vdjlufjqpvyqgjx[omlvdzxsozlbrbkklh]avuprbrimlvpsfljr
+ygbspsbxxswmsnm[xfqgducuqczosts]rcrilaqyhaqdzms[cnwbokkgnuqyybrtnh]lujwyrdmobhojwyss[qulylkekdvrzrdbrbz]siwhfcfwuijumpal
+njzcgzhcswskgakj[yylntuikiucfrhp]umnlawqvcmsumomzor[wbkwjwbuinyfhcl]tdpughwogvaadspwsp[kybtdwntcawcvgg]xgmyammydawidxd
+ofoexaumaogmrvfxva[ythshgunuchzyqnz]myhfbnqhkusbyaujqfp[ydqvapsxvatmnsqnotl]jsjxikgtoscfartj[rijtqnjlysmylrpe]jehdtbtjovixxcynhbo
+ydfknwggrlosjxqy[cyhmgbqtompgkdoy]gqieuwyrjlbwxeyn
+qnsrnssvsajezhc[modvjehlkjvwncl]optcxoazpnhamypkhj
+optmucfvseahsayg[szijefttdjukyusqmz]xvdbredkrvydzjsbzhm
+pklknlqabxqxkvs[zmcklqcmqysvjltw]sdfkabzheilcunm[woirucskjhwztjwa]avgmygopoubvkavsk
+ulmcnycaeendwbjh[kbndrebyibzcijvgdk]ovyfstjzcawsgxjabc[wdtmeoiuiwkdfprpbf]vguvqkvghenzvvfi
+khtrfyldigxwnrked[vmiucwzgenhgmchjz]ronhhmptnvkesvj[riapvohhcegxukqfklj]bvbujrwmkmnvbjmwi[vhheuhbyrifhvbvhmr]elejjwfebkwsgasxu
+unjjhnpqehrjjcpzit[teuannuieyuxhrnpwt]eqmvmacjgajwwguysyk[nmmptfvozrpcnkiizs]jwrrglfbjgmampxzcxt[zksvtcdsnmceaghvco]pcxxattwhdmbhnkph
+borbdeklgxlodif[giciuekdouebfugvuu]jwnlmqbvdxdhylnfk[asjceksckpbptsuj]btiwucqbgxqsphyj
+pyuiibzuklinyxdxg[prbgjhutocdedjn]tvyzieshpeeluitw
+mvrpsasuenekvzdu[djydvckfgunrkzgkqv]jhpxgayasabadnezx
+rojzzwfajnxyfiima[qmcqljyjvpeccoemb]fnabwwocvkdbnymxzvl[uyooigklptdmxde]yeezkyxrmkoyqmxm
+abtrnotnozgmsiene[rvywymbjmrszznl]tsqcnkliijzsataue[jrhatzsogcwhymmq]dczjarobvhaucwaltmi[zqwdgmjdumbadsjmqrm]aphemnpmxcaosmmbap
+pqfeteyvtwhdxtr[yirceemqqrnkyfz]finsowielugfjti
+xvzclksfiyvugkjty[xiufmgdubbhqoqkuip]qntnenloqobxvrfjfim
+appwubxanahxahxqufu[lyujclxejirymgf]pgltzcbuirjhdndtsy[sxqixopfuviugyixptr]jdmjidcsiwbhkbn[zqdccjffpzqhaeow]bpyxcppnvfardsolbwg
+zwsdevjtorapcmdkmqs[entskvcteinmrfm]dyxljfompsvnhnrsfoy[skzzszqseguhsajvj]uzscvlvhvjvzezqiy
+enfsjrgrrbzhwkrrdb[baghohbyndbmgeta]vaekgqhilbkmxqfr[xzsirhckgfgtofahx]qkylgrvrqyknaju
+ricdzabzcnzvtkxjigx[ahylbnwxznaqhjicslf]ujhbdkubrzyxuvagpkr[sauwmblnmphxaltcgan]ljculzlcjdhkhrjhy[krtwaopxtqcjcquq]gslqucmuqlkcwmibtb
+rwagfoioguhsuxmnb[oqlchsmzdbbdiqs]itdkdkowiytntppqbpl[dkhveketihenwpjm]edkkekflzcsxrtbkoa[gcgunowkivsaizrergr]aykccxvaazjttbix
+ydonpbxrsrisnwzezj[tvrolgecurxoaqygrq]elczpgdzfqzbxcjdfas[bkcwijdelhknclfzsu]dgrvkzdsngxaetjoi
+nilekuwvaoeaohrbuq[tmmlftxmdyjgjwlcje]gnpgjgowjlkjvdxaaq
+wyurocurtxvudii[boyyycdxrqrfebzxtsk]zybwccrrhhygcicgxtg[chcumobehmqmtdc]avlvrqrttfvsrpyqux
+ukixopxocpvmxvkshjq[ilowajeaebgshbmcwc]vkgphlquuttcjdcaeaq
+hhqnyfyenekjnnzh[nzsivysdmzlxujnen]tpxgxxovrrctyzo[hxooqqzuwyezujqff]ufzjddsqmdynyxktvc
+aqgjlpapbewblghv[adxjmrbdowkfeuk]xwacrdlhqqisjbwgs[kmqrxtckdseljyzd]wywbycffohlnrpz[fgbdpzjxfjslaqeyvb]lzdfadvckypyddtrj
+ynscfejmfrmwegxawe[wwavlkfjotnrilho]intmsmrthguxgbts[gjyywgijvhtlcuslhh]suvzwdlryrrqoukv[dvbgyhfbogftrzkof]ttxugypmjcpwwrj
+glveidwbskfsjrpeivl[pntgsktknixclajqmli]vpxhkfquuqueaetktv[atrmrgcsygulmewp]tbhyqvdbmmqmjfp
+asmieghesyynwrr[kwhopbocvxcctveyo]tyutaxdxwlljoau
+hjxpjbafextgvdwyc[nubigljeloajrggv]uhnsrxgsxuyresxxtj[mhmgvlgvahmzdpxq]iiwirmqjgsfmaya
+eezdjzjjufxtobmln[jfhatwrfnoxnubhvz]nqmgjykvaaskoobuspz[eyzdfdrftbmhtsqvb]daqsijtchmoaemot
+cjrqdikuxpdlnjuw[kglodmoueecqfilsbc]kqppmkhtyvhbtedew
+lelpkfweqesqgosa[wyjxoguthueknybtks]cfprlrhaaevwnhk[jdjgafghmtpklneklt]answcorhdeoofdxokhq[kwjmwtzeztdxpwo]ryengohbsahkqaqaa
+gvtxfgnkdfhcpvpbqfw[fgullkfpxeqpxfeikv]pazghcjqpedihht[lpbmxqpmtsmhhvcftfe]cvuibwkuvzlyktklddy[nfxhoodduthgnhouwfc]hfcmvjxjvgdrriqzi
+nmnznunznzhpiqf[kzrnoanvyrslaiwesyu]ztlqljtilulefcfw[ocgvakqhpjrmhqrpx]vsplhxhzslknsqx
+bgzebaklxfotapk[qpkeedrozcythyekej]kchtifarcnclbdoey
+rhpspwhbsfjhdgnmbx[gvmhqbwispuioyaadyd]aqfkmehrkqucpmckl
+tnkbbytrqdxplxc[jrwexnliwrdpjxsbxs]pkatqnffpinqugyemu[eprydvhoczrmzsoov]edyqemyeqhauvmz
+nmnoyjnhhpjzofxr[rhbzfdxnkxkmytszl]idjiytwayqhqpsto[lwomwdehcsadyzonfv]fsqqortykpqakaylth
+bmcsapzfpbxulpxy[qyswwftkevpybymc]xyqgfdfoubxdnvsiuh[vwtoqdicblmfkdmkgmc]dkkfvbjicanywmqcryb[xnrvwydbdyssdwuog]zxaoerbwmuckyvijjl
+ekknhqyoxhdxdhoizw[ohhmxdxypqgovswjxle]gghvnqbvfolthycesco
+mwscyrzzomgdszdp[gaxvhxahstexdkuzal]hovwgjwfeuasvkgefjg
+ycbhyiqhyaxieqyn[xsezcmhvbgccguwf]xmxfqnvysvmamhh[uxazcglqdthhxpzp]osyxegeblucpdglg[aamfejvkyvnalveud]xqflvtznebofhwf
+gnzdxwwwisiqjsis[rdsyakldyidetzsaj]qocedtmvtnfsaol
+zirxvihavvvjmxlk[eavxbjgywyjaccuy]fwckhphelbffbpsrwqn[rcnwurjglsqhaqxhx]tcgwbzmxszrspwbpn[nnaiywfuvjmnnjbngrx]nnwzgnsynyjhodjjal
+yaklwokpliqzznn[voahnvbkbhdcrta]zpsfblandylkwetzblm[cviucbjqjxojxvfrbh]wxnmcgyslfyhjbb[xoeohbbquuflfczzrfx]huozeoewsqiqizrkg
+qqezbweffsvlhdv[nrwlstjmcfdeoknejxa]bjbzwhrpzwhdplgpxzg
+geqomfoxmohwtay[htuvkkoolcdjuwfkfi]ufnbtalpwnzxwawdo[wljakfwmzpzfawazm]glsmrgivnyqbvze[dypzcqcwpnnuuio]asqkiocooybnwotvhxv
+qfveyucsvamopzcevpj[jhontypcjxiqmok]ztqopuugothlvqkyjr[gtwslgehaoefonk]gbzpfggosbzbwbwfnj
+qgbbllwmdxvjbbdc[wilthdtqsnyidowz]fvsgrterxkfxytjo[vfbhaunwhnkucaa]nrmiutcaqjmmlvf[lslzfrijvupqytfsps]faoczeuslsurgnnj
+mghuczcknredmulpm[kxyvogjbjkmfhvs]xuuugkpxisrmoqzrktn[kkjpjmjafktnbfsu]iixqcqwjcusrddz
+acqlidiaismzjcv[krxwrizrblelrinmqt]dnhtoxugsddidzjpv
+ruihphiefqxdtzoilo[harngompsprwsrfv]rrdsqrfrwmwwtxfdanq[ufqijmrzriucjhzjovp]tuptegnjeqzjxcqp
+tdwxbgepspoqbphu[mvxrguzfqwbklaj]vrmibeoheitbarzdtw[piisgameaaskvbp]kouiijuqjufvhmyx[jwpqpekhyvbdvoyh]ivcmbeitdnzxalei
+wvwhsvattcfkxsjbif[bkesznrpxrlcnsmhbxv]rdycrgrtwazfqlx[genmoutcoedshrn]ucufntphttrvzmgt
+zbjsdpihltflxiyza[chbfofonfnheqku]lttrtaddrmooyaftzom[rpzbfrevbvvnqsoqta]vxqkgztdjwnyttshfq
+blsbpkqkhwimfjxa[tysyypqpwfsihvpumwk]adivipxtgjemvvvdgip[etebetmijxhanxcndzx]bswwmsrqqpdrvovbopg
+wljuhpitnutdkehqaqy[dudxaqawkozvbzjnl]oxcprdaaoaqrmku
+tsvqtnchyztmsrkepo[sbykwhwpipjcnmsny]jkbriyxmedpdpxakjvq[hdbpjwvsmeagsnqf]fovyworeftotyou
+tfgcfmqoawapbyqm[ezjehtzzfrelhfu]awpuzstowgckfmgrbh
+uovjidiphghdzzjb[dtdrzwcusjtvukuw]ulkcrugzaophsdkgp[rovxtnfmskkldle]vdbtxyoyinruobcdfbw
+ivdfqkjxsocxzmixvki[zbuuqoctjufuuge]xpllugxiqunyuelezg
+oxzelsopvmbaskzk[qjidgldtzyxafqk]yruckjcrisxaytxie[migurcagcnpcxysz]mmbalecstoccvznciuz
+kgtvaeutmykftmfxq[qkixsghbrdvmdxdfds]xcgrbqxjovoxdocf
+hugtmltsmyjidfr[qvvenxersilqpddsa]rlxwylthrhpizeawuj[jdspbsvecihzguv]sudnxjqwbctujnisgm[pwesrolivyjummxqe]yxmwuojvnocdfgfdt
+cngbxpbauezgfsoew[joasdwsddgnfaxy]qofsdoatlhczeekcaoh
+rtzafrvbouppejhjya[pernxzuagmhlccktw]htuaplcqixyrpiobrc[kovyuqunaiajujoom]rbkzijvudwqfhgam[hhnhqfqzaaocgkt]swpxpivnbadljnibjpc
+ervsgqmmagakjqslfzy[uvmkslgagnkyvxszev]eceaiknzayfbftt
+zwzczkexxkvpobp[fbkdnsksmqwjqev]molinnmafhfqgbc[xokcwrgmanamiher]ymvfovgayderspzxqxi
+ihpvknksyabxkbl[xrutpjyzjkmmglvvu]qjpmwlweqpzbuwwa[rcptostzorolknz]vsvkprnzbsbkkah[kppazroehhzhamfdeb]mfzzvblmbedqeui
+xtliiwhelmircssh[blziuctnlnbddxzgryi]ndebxzkwjrwvlnlo[zzmptzhnmcvgmqkfive]ldkndptftrgskfi
+vmcxolggxdtaawl[jrsapvcqpvpwzeyo]lsvrlnyqstxynwoluww[loswyflsrvkjqgjmyji]hvbkkapyfytegkbcvob[udbougwmipihlbqeyf]pyomqdbaiyqfwdngddp
+fsckaqoorayphqddex[gdhcfnmxahimfrk]pscnlqroybeacmzl
+faksrtkmppleuteolp[arpyspgdmmikuaxhf]qlfkpqvqsrthgsaa[isronuepalcjkfcsi]xoizuyhsovksivz[hctljitxdpncenbya]xcdavkilyghdcuhm
+sdeqalvkcrkrinxry[xezvqhybsiwnncuafq]wgmtvsnsbilzxdd[exabnsnnyiyrxkdd]wmtluopjkaunmyyogc[mcecujbnhewtxxny]fasqbsmncghkmvv
+imjsjagosjsapla[tulnvdectjfkpgfv]cycdjsngozzmkznmjro
+yzrtsvldibvyyvtrh[wsessluyckcgokgkqb]zhmcpufpsxctxoyag
+ptgavebppcdhrnhq[tttuwdmggqvjsyvqncy]watzcvwamwzegnlqyvr[xjgmshogcojhnjv]xltnwtmlptyidcevaw
+pzgrqoktlayqnrett[hjjxrqhsnzoyccaaq]brpjabtdfxnygqiaarg[rkqavgkgubozgownwml]wjxgbervjemzngf[sjvmflnoffnnefafiw]qyjfcbbzkfpxjeiijwf
+nfcostvpmrtsmxgi[mpsolgbkhgeaqxr]odzagbxqorrcvgbtqn[fflhwjduymmupdqtrzz]wckttgyhhfqroael
+cmbteyhpmjucbdu[pwwwivojyyhfhuxrem]bwkmgeggapphrfd
+kvqmdfjgukadbshzs[fdbbocfncwrodlocm]lvaxzdlzjfqguetpn
+oxsxjgrrwiwscddy[cejrtbzlcfjvfawlck]wcbfearmyztejbvphuc[qiubscyfrbvlkuptpf]zrpobbrogzuycnopoit[enphqttsdcbavwzu]clrymfxpyjrbbbjor
+hhkbpgfivocwsgt[ibvjydpzawdkukunm]gurrtsurksvdcmtim[sorhhoidukufzlzwc]iwioespgpdqtnroyq
+iamtdgvqmstvcco[hkpcvfwrobdkuxoc]mvhkxcbpjljjqdo[jycwjtxuauhgwwr]wdaorllxaauagld
+pbrmiwsixlfmsdwd[eogkhrzicmhfgpp]vynfbrwtkfevbzbske[jevcdynwfstxudo]qrvvassoiwkskcwrh
+eurmgfnrxqchakry[xaketetlgzadzwpzm]eypyfdyrnmlevmikrkn[suyrnrkrprufjpxro]mekswuvazvujealz
+mbrseqfrpnyimus[jzjzsthgcwtrzyc]fdrztnqjfeqfqutk[fvhqfugjkfthjoffols]iuydpdexhtvrhbthmn
+wpdjebvrzmivunrvwwu[wtvseusrowyuezwouf]qhrauglncxcamzwfjz[vcobhfnmhhhhpftxx]rrqqlthgismiahcrm
+qeljpmnlnlgfbwlw[gzrcgmwqbugtmvc]mveuxatewhiuxxy[hdazkerrbjavygs]hmoechcirywzjscbgs[eunkjyiyldyrnzz]kqceecablooujyhpo
+pvttquyqcivwqyb[qdewyprgoyjzstop]rniodvvcjaprzwhrugj
+yoqoqchbjoxlaujxal[qiovqowowzwjnqjnmv]zeujymywxrcdyxt[biudovwqwilssftvaji]cvllvfrnzvbpwqoq
+dfdmogzbwoqcxxjt[wjkxgbiadsjhasw]nahghhzvcmxzsuezbd[xldtozzfdfibzyfir]naoyetzdxxhsuayxhdv[bgnjxcjigctspvtphi]ofqodixdyoyllqwmm
+whnoowlrfbusppnmx[iqkoqqwuwpjymrfgmef]mwbcxqkekmkjuyec[ehjhwneoswbhfistr]dgimikumgypgcfgkhud[wcfspumwevprqkdkra]lkrqeomimrcuuutma
+cwfwtigiptyuoscgqjl[xfsopbkdejtqyfqcr]xgoctctnbrpgdpetx[jrvsqxlosucawqmm]xybgpxudsdlmuzkkk[pvmkpymwtmsvblad]tuadmrxepxtcfxnj
+hcrioqzpglfeqhk[atmukocquibjcdk]zevfvsavtdplmavzv[tqgaubxkybftifxnox]uzekdndrbdsgpuqdpc[ivnsdltuqiukdag]zujjefxyclbusavtb
+rubuyuyswgsvuryuhg[bggufeqnvnmcltkxdn]pdixuunidafnnzmvy[qmewpxbpqxfakkpjq]khvqslqcodcifoku[vgvnbaunegtxgdogryr]uyvkemhfsxruwonkyy
+wavmxyhhhthnxbqeu[zbvfbagorkymbgt]cxdkxjdiwemkbqcfs
+qcynqcmhyzosgclnlj[dkwoyvtlgqwferyplhs]ixqnfkjsytvyhwk[mskihexwsrthrwoxlkq]ybcepjxrwbfpwbrj[jtikhwoljzhnhxtd]bmbaqxydzmnsbbui
+tikuebtrsggwohnoc[gmsyovowwveyivxom]loedcvovnwjlxrin
+fkabwdkuftcibicsnpy[chlyzxtachvkcehii]efjkasydyavlmogrn[ljdwiemzattmpezhrk]hfvbegnrtuvvxrfpmu[iobgqgzwgicgdljml]sxehdovgegoxgfuoz
+jpxfbgmxcedzrhcw[awblqyolqotobty]zghskkdwhirzeabi[bpfnymgupwpyvtqno]rzxgvoakkarqzckqlm
+tpriezzqcwdapzmqi[uhbvdbykbjjugwx]updunlgopgmpuxhz[ppvimkoubpzdrdpnqs]nznhmtrcebortfmub
+yvhtcgpickhpkugv[peidlppzxitabkhqxqk]tewdgsemxtpdzlbp[cqlkzgucaeogcphup]sowzdzofzfxmuqm
+obsasbvikoqimtvhwig[zvnaytcddqphbstv]tfeurtvgujjmdqt[cjlpuwqhembtpto]qtgtjmciifvrjqvpl
+qqdcyxwbsygmkhe[bohkfvniilpcnylq]jsxsgqfvkcqgtlx[coqishgebcdedju]mvgfzpuqgdqqmlrahuo[skcrnqfagotgitdh]edhqioatknhvqgtksj
+ybmxgdftqlhmytcftg[leyqniwliccsyildw]mgwbzvbnxtmpeeh
+dldzrldldtqrrgeyy[gkwkejjgjmkasiszp]weovrlqtdhoefbf
+dcqsumoaiclldoocbu[rxmnzngtpqbvoaekut]qucfneogbyxmtnzjjs
+snvaekazpxnocmvoblf[ahgpcmeawumtzplcib]qvhpmwsttfbqebklb[kunfihiwmtokswlzbe]bjecsktfdhzxuzsekj[bkgmlzkpwrmuacgdbqo]nubfdchpgxxdron
+mshnjuzlppnyjksh[xkxximnofpivappllvw]qtjwjjyhubwlnjac
+ckilmywqvmrrrygjg[xvwolhywbdouyxttxlz]bwkzfunrjefbxctn[azmsxgpkdmcycberi]bdvvzbhvykxyyle[dkaxgvdfddserbyfii]juehqvwzulaosay
+dgrdibnxjppdktgoit[vvozfezhcvfpzpb]ympljeoeowdprztyw[ggojctjisspsgwkboj]gkmmhteczsojypwqf[tyqjmwiqzswilwt]ohwnrsiggvwhsxqrpd
+tnvdozwrubciyrdex[niwiaiphjxqouxf]uotsxpehznazjut[kyutlrycvciunrehme]sndicjrgcqnujkq
+wehiywednvqcusqc[edielesexiqqlslgq]xgmuihvoesidict
+jqdnckyvwyiermwlxu[hmaepthcfvaggphmk]ybzjbirijyxypoatll
+pxwtrngnidzoikjacbr[hmzpszagpflytcnl]nzbzixygkdfeyxcvnb
+exmklubmftcstgfar[rvqpqfvlepfefek]kujnqogijggldwbdhld[coinyznostzlfsppvqk]kseichzhzxmxvyhrfqt
+lstwjvommzlmudvdq[iemnxpjcvfmcdmsjglg]iozkhciriurjusbkwk
+vlzeeygnjpkujryahx[mmzjlmzzcnioefctryn]njdpfoaoawffveissqo[jdtrzsflacqptpj]hosvbnjbhkcrndipsbv[bzexrmoxyqlxeqhrj]mrhwasnckclqoeqkj
+pwpdkauxzallkcbpo[qpuxtpxjqpjpsurunws]hrzxcfelkqidswszccx[fuhnomwpwgiakrkt]omgjstlmqqeqpngtt[iyqymggrzzleeody]blvqxngiwkntvocjmo
+wnwvwnqfjujvwvk[lexdnhmrokvkufsnqmo]xpfgqupyzrotwim
+nbynnmofuvgajvkuwxl[tphszshufggusga]llbdbageokodcaoqehm[reiislkltazqdwkeedw]ruuynjfntbplyyx[vawvqtvxkqjzkqktoh]tjxdobeddpkmlhtx
+miahcruksdynhluwp[ytjrkwguartqhts]acubeswyhngxcuongsm[qieirczwzpogxrgsq]pkjvlwwoigzbdetcxom[girgybnrihgankqadyn]iinsphjfseslwef
+zsukwqwfvhamtzv[odtezxdtbxbbjxizth]knevuvdvkhhoxxvhqeq[dcuzmnxphpypagsip]midveqcwlvktcaa
+kzxcbzdabbovirtmgau[uswizwfejwhehvr]klbqftcmdrqefgel
+zgqspbdsiaworwaddt[xobuokktkigliim]kznrswhwmzuxpfesmd[wvemizuoujudbnvub]urjofqtkkuzkytpfsrz
+tevwkvcsisbfatbi[zbfthmfwgqkdqgpomwb]azkhhgkithojbelrs
+btbwjpqtashnwizlfq[xhjvuaewdpuetpqi]gzshtumvqhkszakb[rqjnrhvvpgqkquwzz]bghhfjxukqknaxtnn
+ianvqljsgiwwwpygbj[scrhaeddnjvtginln]jlhwjpdlnfeveigqprl
+jtsgfzkpclhjbovpi[ixaehuixnpbzgmtmm]pvrxiwkyrvbajrb[cjlelxhejwwnseumy]ikdowirllxmuglwdz[lzovvdawkjnghbyehh]cngbbbeqmaaqokewt
+qgdsbxninirijouefg[klekiewvjtcdxfdila]kzfwzfhzfoujtmrcuje[llkqwuyfoqjysyyc]wsmwhuxbtzurkeid
+txhobmmzrqlghsu[pakgwjuydphidahute]crrzoeehbiysjafngkv[luptkawydmuztmcblfz]kprmziqnzkhpxfabhb
+rvufkiktbvnotod[jphkdlpkjeigxjqgjn]bmknabjinjeuiki
+zwwxudbvwcsaruswt[zfjkmmbzxajtwbdj]eepmwkbkpmbkbxovhia
+ayzjygofeezlymze[ajmtrzvtwrplgzk]vwgedbdzfcdvlbdbd
+kyaahofyiptqlrdvo[nksbtkzihbjrafkedjr]xybomxqdnsfmxtelvzh[oaapzcjzmyhpqai]qbskvazcpbvjnfdhn
+zzddqjgykejlqow[surormryamavdrflsu]ovbhbhiofkemrmbq[zuxaxjaolswrzcglt]plirqfvhirouawm
+aigjnupodnwbobzvn[mmmbzvkaqyljfdso]udnugxtjwkzrqgxie
+ogwauwxanzadkougje[eqkqpzxvqvjoouh]lfkrkwwpjipktlcgvxs[guxerxzsvgztktamj]ggvheernrbzepvlheex
+zrpijmmyxifndxz[edeqiujkuymqywq]oxvkgxekhxlsvrrivvg[oehkqqldmldngnq]nokjsnpbyixvzimmbw[vfzdizgbrtprjkh]eeaxrkybwtpnfcyq
+pgmrgxidmtrmoqxnrv[bwwiifqqpkvpnqsrt]xymvgstorhhhlzhukfv
+nhhmhupflojxmwnh[xzlsoqntfifjcapmwn]rpviveyvhkhswito[ryeeofttqkhkbmokmi]ebsnrkidkxzrwwbf[lizqaxlfqjlrglxg]gdpmskujkulqitskwfz
+limvjkmdnvycrab[urpwsqwsfgftgidxbc]yfgcsvgurtsvkjqvxp[cgnqmeswvibvvoqbn]vnykqwjdflasldqdtri[pfbtzcegiuitkjopm]udmsysvgvmtdebl
+copajvuuvljurswjhlv[yrmkyjydqjdysdkldln]wgzfebnjrmuaxbqhr[myrpufkfkowxvwbt]htntuquzgxqmwnjetpf
+ohtwpsadxznphxkjidu[bdpmoqxtfwehcigpw]ztrgpyoxyuwugnqdwh[axurupvztacpqrourzd]ixcwkdcvbdijyhz
+guqlgnplqehqvzldn[sswhwgukeunvezgbws]clkdyxiebcedrnhrb[slmbnjtbhdnjqkb]kdhitjgvqotodlgqus
+zbqynkvuyzsrnaycxa[xicrbiytzgwnrzg]bnchnjvqnvvamulteym[vyobaxgfdudkusb]utjdxdutkirbrcnru[nziciprzormocagfd]bhewqskrdgmwxke
+qxrmuodvindqvno[tadfrqogkqjqhzx]yinnblpurapwhewsown
+cjxdkqnspksopxpkee[knvnqkjekmtdnazd]sihvdgnuujsadypbjfu[hpxlankhthglgho]pofexznitmwezidwupm
+kvnnkdxlqbpnjph[qrgzlftpjiehardjfcp]davsfmgnxtfqbiwrou[pvtpamwiamcejklvb]vchjfnblkxebwsbqqlq[jeeggmzmoogpujvnwpc]rsqkrddlpieuthtjk
+syuaknunjsepwcxotfy[zujyunuzyvehhqjf]wyfoxvcfmhqxhvgjn
+utkiczwafvwtqukzo[difdyqhszswzosvyqb]lhkisgbqynprsae[veibfwkkeyjcaxth]uxdekjckzkifulxs[jrjgwyduwrlgddnw]qdyhsivqjprjbstf
+ulpgdxuwfjglisvwhgf[evlwiyunqxabguz]wkgdyfouunklxvcom
+xxcuqshmfgedytfdt[whavzobglhuethmyjtb]htuhmvdgyvcswufnixa[cbkipdlosqgamuz]fbxdzemkfnaofqhy
+fmnzrstzqotjqfpswhs[vbqaazsgdkzowgy]hljkdlhlivihlhww
+vxnvfwncvtddmxn[qdztvykawmixzsmhbf]hrummwvapcqokkxtyva[dlxuybkyamqjorwk]yhecpgjzirblrgpi
+vrbwcrefbfeyheckd[tfuieucjwqdsyhbhq]nbvhmebepywyrkmto[rncncajyznsqjmvsv]tfxqlxrorzfnapste
+vmemxnbmynxzogwcd[qbvahclyysulqgltzeq]ujwzxcermwzdixhxzhv[ovrdvzwzaowbpqha]xoabyrojezmgwaqd[todpqenmramguxrjwi]sabztynxcjgbuqxmr
+lcksticedysidnlkxq[bfltyxyfbfvdmrjajpc]puqmhazeoztndtjlfw[iqpueljanqxaepulk]rydqkyqdiaiicrmerda
+vuobbnewwsdcmeu[ufsyoetyczrvixkmxqk]byuxuqzwryfgjtfdx
+iprsucnzcpjjcwxb[roawxineaovtmlc]thtfcccdiryzdxc
+clnftfuslfkusrc[jdjlerrcdkdroeua]dwnvmspacjkuubvuu
+frdnlaqcbvkvyggwbzl[kybcvggyflcwlitzxo]zthkkszsnajwtfdw
+fvqsnmfgbpixbyryp[eadgyuttmxhlptccb]phksccteigdnbldmtsb
+tiaezunggkakzbv[tkmctgtihulchag]bkiatejazgeozzfih
+ckqpdxyowthtfkrqhma[sicmvwqvsnoftvte]lcosjiegmeilkkzwcj
+nvazrbkmooazozl[jeznxzzyxhmnopr]bxltiqjuxqjcunb[aixtzkozgngkwhlrj]frctkysebyvixjadkv
+tstprjkgjvpbqptc[xthwfmchopcfzrjin]lyyobeeuqgoevymyzd
+vzqsdhcylskoxrip[gjgzmmhryphljuzbxzv]lqhdhhelntgqsjyj
+drkktrcuclelctvphj[lgvizjvqzcpdlvtgvn]houegqpucrquzdp
+bjryqckxvymkcdydn[nqivnqzbjhreueaajna]fxpfigwhtxixllsir[pkushhryhehrccy]xishkltxvbfsxhkling[kulvofivcvexawp]soiyukxfuwwdgccug
+kmailxqkywaagznq[kdwonyaofeekdeppdtv]pnthputkjvdbgyru[lpiwcpmcudqzcbvzggl]pbznywxvbckrvapuql[rbfkbmejtuayrlh]fykknsratzeksdgm
+vsvtjxjkmzzcqsiu[pwsgmqzkemnofmlsqz]rbmcsnujrpgnpao[intigncrzlaxkbbnvzv]jdpakshhywqkdtpzsfg
+fqlxdtfrxlbrastov[sidhdltoumwhntbjbb]xxpxptxxuenjeqexgn[niaxbptapvcsoax]mwfkjhzdxsfmpdd
+zwjiosjujxsundbpr[qtakztwdxjnsnbj]hstbhwdwjkfujcl[zlavkjuknwcrshv]azyjashinydxtglzap[soonufsmdppzwxws]eulwduyyqxwxwtxvf
+euixknsdzvnvairuenb[lriewvmalbssnurfbva]dvkofaligokdhjdfhmc[cegqoaqltfwtkexh]jcpdqbzoykxsaewvkle
+jlvzlamdbscjkfim[nogqesekrawfckn]pedfdrkstthxprlzhqp[mgkxjaxugoyetlbybky]owtfewvpbwmiobnt[gsmtvavsebjcytbl]gldttejkthcainnw
+vleehsdlxbcduyk[epbegqkqvpbetnqqur]utbvntyotvbehdw[wokifkvqmwgzhqi]gshozqmbybvdpzw
+psberheospownrstmdb[hobixrwwbcjzlkrhyg]uusuyjsjdbjdipw[zfcosustjcjhunt]azpzempiylqhxzfdgd[okrowkogfwtccgrot]ezvgnigzhusxnyb
+cawisrurjjercfxhg[anmauekxeejeiximk]qxxixahhioggyzxgt[ckrftztwxaprurc]cqgqlcuaxlsqrslm
+mztqprjejzrfqcknl[hgvormumunnhyinact]oqmfdxtlqwvkcbnjq
+ddqxshliyzpwmxfz[efqwuxzhnnnwvmae]jsnnwmmkbppdxqzuebu[tuqnsjbhkznrjeaewy]qgxdbtoafuaopmrrc[rrztddfevqzsszvama]laovqbyjxvhpqei
+jftpvubbjalxusud[gixzcxhftfszswi]pzsztljzizffceb
+hnqlzwizmeivopno[ybdwictmpmudjoelhe]tmqlhikpqeasdgikoiz[ooksfcddcpwmdbr]ickslqdrtjybyhooipk[mqbxxbyvktocntv]kbecbfiqbywiclxoa
+mxaocnceliygtnt[chgbrdkhugvdfvt]bsscipyhkcfsekr[nuzlhwyhkmxuxclzwk]nuwnoksstdpfemu
+yuptzkxnywmlcstq[azizdckkaibnwtjh]kesoaxduowrjwnnuuhl[mtzhwqznjijbgfmncgm]adqfnionvyioeoh[rgctldknwjmedqrxfof]wujfhdmcxyoudxjew
+aojnbfwkkmhzkrlvmls[bnydjrladlbfsjm]ppferzjwrjmvgdq
+pvbkgycmswoaofxzt[jqpftuvzelyrqiur]jtvbpwgglokuycce[odeunkfjfnhsdgk]xaphgtoqxoxeiaprz
+hiykncscrcsfznwlsa[idrrvtjpeljmnuzcwg]tjlkziajdeqsakkao[xuojrksmvmablcz]jafrcrvnbkhyjjng
+yuykiwvwvugeegtbkx[gtfoajutbcxcorxnp]stupzwvwhfaloddsotp[gqurzoxqyhksfkie]itbshgnwomnxpqz
+vbpomdpserlvmieask[tqjuggfhprmneivw]djxlzdgolqmhkao[cpiglqvurgbaxadba]cwyeykmfnszwyhlaf[teqhpayrwdnxagiidq]ptvnkeifvimgqbfqj
+wnnkshlawsyprxvsgy[bvhyqlvxtgwttgvgmb]ajkhvejrdevvilqvm[ujtzkisrhcwjawkpp]prfxzvzmtcccialpo
+uyhofsbngqurnhro[plqzlpngwhzhfiarqz]xqajzmywhyiqamuyhof[zbgmoktjsjelnkb]xfypsqvgzjtgzbyubbo
+svtvybgrxkankzx[fuvinmadnipjxrtj]whnciqgscsntbktd
+ogmihypeokevbjqtvb[cuogkytvglrpvpkcl]cpfkxrmfqcejxjazd
+enskyoaaijegndjox[flvbziostlkjvowo]oskdogvvipfdkvwxus[rhhyxymeviwltjpnws]nwvpwwvxzxnngtn
+kegxoylxvwpmgdrin[mmmvlxpcthmodjykqvg]gpyysciahkottruuy[hswsbitgguxjpzi]zdforhdaexvaskgkxud
+qeezojkbjgqstiyvtkl[ubhdzobsjvakjhri]krfizmrhuqhwkzzl[kkrkurrvbsjbzru]rdedxlmltkbyrfl
+jbdkqtpbpekdupxqmz[emavdfxjrmcupcagh]hucmtkkzbozsefonohh[gykdmwpdwcggqozmf]xypzhnaejxoovwmey[ygpjhlilnooukjlpie]qbnlaggaqpfazbzcz
+mrxhbcizrazzesmtn[nkskrvdwnxhsksugs]dhsgjqblxzzvfehk
+mgriwdwzebmpsyeisz[iyfhezgmcpwvqmng]jfdmdkcnpmfaxdwdv[jnatlhvlqgotxfoet]toyymdknbbiljioo[endxmgmktdygkbem]xtxirnbghkbhgyt
+iwkcwctaiifccyvx[dhreuhwgdcxdoaesacj]krojhzfgsypullwh[auulusartlbzxww]wvtmyrlsuoaqshxs
+qwlajgzkuijkxyyobu[gbblqehetozmviszvb]itpdcmwthdsvqebfwig[odigspkfzgljypqzck]hhekbpjywzgbutrsmjh
+cynmrmkfvmoebkgez[jzaybzotjlunvvfqot]tiocypxzwggoxmcmx[gwcvebutfmbpxuqh]ggqtjzmrjurxqcdxivu
+agxxvohnbvmcjufyjdk[qlqeonouztkfircb]wggnpwpnjbhmdsdy[omrwycukclrnonoo]cqfgbcjzejfbiozco
+drrgfvmqoumkispbtyp[iufgziylbvyleequkcc]rmukeddqyhuqevq[ruluasxbpvhpooctqf]jkjotjldovfjhsvtc
+xxlahrtevhandbwroy[pcraznkocuurcgsj]pjajsaxktcpdvsbyyzp[tgmvgtqdcjkqsiqhi]meyzuvytavmvqvwkbt[lzpuiedmvmzcttntk]wlvylpwgbphxadzzw
+dvuxzjrjwvnmblmj[vfbseaawbpftutnh]nzvmqwsnulncdxujiy[scainwpdjofjqjtoaaj]vhtwsvzjcxkcriev[hwxjhdlcsoosbgei]znobbrjigcpnsekcp
+aohprtieaesusqzct[rxeifkybhndprydjfd]krwfcrwdefuwhwl[qncjqacmkmuxnwhpgjf]cyrismwksodxfswc
+wmcyfvxwfnhneauhgge[jrvogoqcmfoltzs]qbaegqpmphkondsxcvh[ahxrnnjutnixwos]exmftfnqdjormjpl
+nleqavohxgdpbxemz[ieaoydhnfcxrcnaea]cfnacaezpqaxeaef
+uzqtoyqmvlugqwlyitr[sgxfuoyuymvktnvbj]xcyadfqmlxgmzqasbp
+vwtwrwthqnkdhjlq[ilrhmekzbibtyrdzefw]oflmshlxwclsrsn[betodlpmjiqvzkmxaj]pnwzfzthqidonyx[swqvtscumgjohkuy]yiiohppikeskcygdht
+zpmeptspcezjvhak[uyjaxzismpxzmqs]acvugzigemnoelhes
+eefdpemsqjhxthkhbfj[gsvbehxnyhhoehtmala]cwqtbyqnndgjfdab[snsdcfxtdcpmocaig]lbzzubcayijfxjvq[nnglxyyepowuzcfxfc]exftztcstqqkjzxgcfl
+kbfpnwnlptrkchm[jvgtlrciswdwjpmre]otpqukbkhqgxzhl[xfygtxgedseyctuf]sywdtsfgzwqtzipzujy[rigonhegruewmqqknj]hqqjsjjilqwbcgjz
+sgnkiiabcovqzfpnn[vkygnyxpngrdlzkcy]dfgbiqmwnuixulrubdm
+vacsabexiddvjpae[uvxtrszpciapnxshb]ghuwfleiiwyxvnfh[nlyyctrjyodrltml]oddtljkktizflewj
+sjagfvgzfirwgzfncvi[escyvycktqqteujdf]tzscvdivppgiunla[gnmeersqdxblaqxdxx]orweuxmleakfshe[cnagekzxxornsztbjb]yzvsmxolljxxxtabjd
+jyrxuhirgsjwvdb[cgyfsvjjyjtgbfh]mtefdrhxxvxhzdfzvt[ftlnxxaroyqzurox]yeeggfwhkkdqdmwdjq[qojfuvhtfvbyiiqzjs]tzpetihzcsaqmpqrfa
+bjaexsnawropmbsyqah[axjgbptxigrrcqefs]pbizjcylfxsjztupl
+mkfwnwfmaxjfvbd[tbdqrfncqhqfolrohlh]vufbysbumanpwsvplk[hgccgaugrrifthwqmn]jqfuefpubmxlljqwasj
+sxlxlxhmodwwwlxld[emazxtunmycokpo]zmtpdjhowqqognt
+tsqdulffcaxdqzhreo[dhxegtmgfyqeggmanm]cbfkamkmmudpqqe[lguxotzyuadywbg]bopsbcslvtkabqmly
+iqvjzuupdyywqsnfml[wmrdmfcjcvntngbbw]ctoelddeeyheejp[mvdgitdtomshgeyfrl]cqxjyvfoikwebiho[rkltpvwgobbhvocruq]xdkwjfechyvrlbpxet
+xdoqpyeckdlaiszs[rukukzfdtfzmmnk]aqpqwackscsqlml[xakkukhjyrloxombkn]ocqtwftdgowrrtr
+miavqilsngerosmmlh[yqnwyxkptnrgwuh]zmacdwkbtmeiogmw
+tirgarumxgeguzenzic[bnvitcpldegejsk]ncqjdmckryasjokmrr[wokprgiunqngvojn]srqqnuyooampjrzwo
+wsqnzcgeghjpegehafn[khldptwssfvljpvt]etwlcnkuxlbzymrlsmb
+kiquxnadzdgxxpex[eynkhbuajcefvhzxc]bjcsllfwpvuymnbiqr[roiyobkmmfomhnflpr]wftiprlltbfjjxckzhh[dpehbckgfqksmudek]hyiqoytirusiqmkjqio
+galgxbwpysunvtadi[tixmvajxwyaqbkkbrtn]wiqwynobloyzexeb
+klujuavsjcsvjju[wewpoytrayrqrhsqnm]tcrlmzsqhdoqlnyann[gfnbvifqypvxipyoun]dilnsipmuhjesppqju
+ddesjlkpijlflrolxrj[mtouorsfscxfdyrwac]ppyvpitgkmchfjhgup[qtunszixycukqwhmycc]bqoxbvbpayesttsz[mynsuxmrxhmhjuupfp]bpvlqetvfwvddhh
+niibfqknwxomycwayj[uwpbncnbnbjdktrfp]xticnctzogcgummf[uymncaoblvekoeq]kycgfcxwpluejthfigz
+zvdnfqgnpxzckphgak[cikazwnixzopcdu]kqghwzhlhshodbgwyaf
+dlmkotqywgjhwbx[xbmqztdikktzmoop]iqzahqdnhrjsscw[vtbnldlnlyiemtkh]zgubuvnujaavugb
+gukffymwcehuzqmm[whsnyfteuuztughezd]unjohwlbznalhzziio[vtuadjvxthrwsvbumqp]vnialcxezvuolabtlq
+pwkslkjhgcpcwehque[xrjuhatdqjzppuz]mjwsyqiidzbigcjkqc[nluvxxbfpmaljcjfygd]naiapmpcpdqatidqrv[uffwdvbvthmlhcfkkge]cnlmdjwaoubyedma
+ehnjnlgljdsybmrkvha[jqaqcxtwzfbynxfzlry]kknsqtggstgkonnwqbw[zfhbcthldvkqzeeamv]ztsziucppbuckie
+vbfpxyrslfviwjasotr[igcqcyzanjkknjrtec]kvvpsdwqsdmeophr[nbaybnnckjgjvzpqbz]wjfvxaecmhtxpbrild[fyulyzxzafftwhpz]unojeclbmzclhzx
+pkgmdwbjrzzgicfpsc[mqfflkezdwpwykan]ochvvwteukpmhrhxjdx[fcskceneoiiylbmn]ixkkydgafasxxogq[erqgeoxbdrizkacisih]pcbrdfjopcdentkhyht
+yfywjwtlknqfoubst[xzlppjcjwgkncwa]sbsifrdawjsphpziem[xmxeveuycvhurgnf]hntcfimfscaohlvwpu
+ngarjrzglcxqbjqxo[qyybkrmiohhwlalfm]evhremxjrjsorhhsm[csawqocrcoxsupodwd]lnwsrxgoexppbnmlt[frvavptmamvyqclcwwu]uxbegecmhuoipnlvux
+gwlyylsyblqqnvbj[jzzagfujmvwcvhlnhm]bgqddudaiuchcfh
+mvijkuegdrpnmnb[fibqrzhhvjjaleraa]fcjabpshhhkbcmcr[yodmibpoadyyjevu]orjjwjrplvsitmbdca
+tddarkqzgzcroswo[yiizkkpjcrnwlagt]qnbzxxdgzgnxygowzw[tghcmhqbbtkddvp]runjmyflfgzyjajg
+znkhgknlwpazsethi[amnxbwdzvbtckymm]fuagoeyfosfplnvdxy
+exrrjmkvsiplddrfk[lirnsrcctykvjrgu]dgwbrkchnkuochq
+rpsoyrvptolnlxr[xalcytpzlzithaaujb]ihcahmluroytiem
+hzhjvwoiwyajqkwkmks[fpmzbcuxxqarjimbpbm]fholbzryqsprgswx[tslkyxnthjytovov]tlgcsrdfeyhbfdei
+ogfidlqvtruzlqiqx[cqknmhfmkbzdzdnrn]ubszlidbpcietcbpib[pdcpbucpspopdcgmn]ohhqskqdwcahmkslps
+pzorygrmbbofzzzlhr[djxceuyvowbcbyrrp]cokaahrpabxwqccqaw
+wqkcjtsnsnrnoguze[qtkujvopoiwnsnyj]wjpnbkzsrkdmjwhk[myorbznqrnieutxbt]bivalvvdqsjssmgoin
+gvswtukculoxwywlgvc[rxhwthbnvgiszqj]dlxlwsnngfxtxaxra[mmibrdioonvaptadxnq]zblqqlhosassxdsmj
+njwxcxsbmlqnujsv[zrpjfusprxajnokgam]gpohycqghidttoylbyu[jvqgapignxfrqlo]lfrmfxebbwhrukamfc
+gkbgeoxxwwajzwloo[wglhbpldleateucgvnp]gebfovxsodntrawztcu[luvrntxtspjxpci]qutrtvabsfmedptbwld
+walfhzzejzgjfpsx[yikqqzzxxwcvmsrpi]mokawvbvxfshenhrgyl[qzhowtlxzlhjnrvos]uzedstyhtxyodwfxngz
+awoizwpnpjoinkj[vrqxkukowgftublkxq]ojorrutzzusfsiq[jfpjktqlszpktiaz]eknozpphyjgvjock[nblfkbhtcbiywbgqx]ybfsrfiqqhuwwfizjpn
+kzimhyucwdjwzsxueb[ihapqjxphsmmxpx]rezebnatvsijssj[avjsvhfagnqhqda]wdropwgmvfbdhxkyz[bxstvyjafvdzzhhj]mwioxpzxyxdycwmotv
+wdgbhmdblqkfgcbkqij[yecckefvryjvkdimdj]owpkgnzzbkmirdvij
+vvtclwrmitixpftahev[qpwnsefletbjzuayn]fdpsflowuakwchowud[ilsvarhwqwjncud]tdabbnvupamppngbxet
+yajftdfqbdgelonjdak[cruzjzvtanizzvynbw]vkxpoufluztpjhb[znuobtwgeitdmkclh]fyagithnpbhoypm[dftlbnxeuoasdurqbk]rpyzntgwhlojjxuj
+ozyzmowqiyoztwjqign[repdsdluemsybnljcsc]qvpndzlnkqibgxtxt[vvktkdwnendwgsmmaeo]klrmgwgzfhttmbhs
+nkuebzwzjkpebvqhbm[pffmbiwfocdszvehp]mvlvhepzzgqzegswk
+jrcergxhhyywczqsiml[jvqkldlewhqxtqyxlje]tjxhzshbfycmdsdld[lazzgyvnsjasozw]ewmpsrjofcfvzyws
+jmdoaouxainwodpyklc[qduttzgoerzgvkhdah]xbhooltfzxprajhre[ahtslpntzsaogqegun]dmcgjgeqiiiuzkydjap[vqwgftbjdxftggd]qbovldiitpdlythgrq
+essziziabrdbohunp[ipgvyhitrfwkdon]obxpjfscqsxzznfk
+swwyhoqigjoshxypupr[ljqjnmcmfoznekdz]vlfdlqwurtizditszb[hnmvrsihruqihuyjxm]kakjymekxbirxmf
+qjfyellapmwfmyly[kunxkuvvwdgxsefm]sdpzdyvpapvnfybmkrh
+yofobbkttxblpfbuyee[pfpmckdnyfrownjfup]siyloupsjrixrhwl[wyhppbrjcvlqzhgtg]zvtbzjswfqjtikkpdlh[rfphcxkyguxdyje]yillsqvxrnswpwzau
+lpxrtppstnwbkugxfj[gmioyrpgnsqtrkh]cqvxtvzwgvaotzwjij[yqqrhqvlqeupibi]tzkunpenomvrkwpbfd[nngwswtnogzzuwb]vvfadzquqbhqgrh
+jkujtmmvicmjbxukil[bafidxizxrpnanagh]ysakzpjpkpmyqpotfgw[zbpeepkvzafmbnf]fjssjhkidnseugzc
+mlyzeywblxtjlvw[ghktomogaldxwtljod]ijjkbhgjvsorjqh[sbtijfnepdpmzskwzrq]bkwjgvhycaitsow[zvvorhjhrttukklnyq]ejyrfajqucpjfky
+fzobxvurbcyszmbvb[ndqmlifmppvhmcfjmhp]ecuketkngdpmhqdnte[uwhufpdalnwarrqqnmw]wcgemlenpitwqztxgd
+uybidfvdwsftvochwe[sfehkmzqoqiadkky]ytfxldmshamrzftqlba
+eikkyfkguyhyghs[bacnjyjwhljzbtfrejv]hwiyjtsgncwtvqqf[avhvopepuinywcbw]yqlwlhnpevxqseqawt[tlkkrddoxbowvgpsxy]iencigijldepvgsbv
+nbflbqiqkunampmoo[rnmxqissfolgstsska]kjrmmogbujwwefrxng
+tuqhrszpjlxatqml[hxdnhgixlavniikr]sdwonwuqfyfdtukyvcr[skyxxmuzalmqetltb]ubhcvwrpqkfagxqddxc[otpczwgqjycfcjkbn]mgvwealiwijddyw
+xtfpwupdjzgbiguw[ilxpnxsmicnhciwzed]sxujrtrobjxzbnl[utaftqrponqfxollpo]umcdnurpmduumbiqw[fsiplgyzeygxdam]lrcidphtbpgeioifwa
+hwcoshevixvzeohpnnj[omkygcmnmivmzxtul]vmagndyfccnvivsj
+dadyrmuqtnaavsg[bonytbjlittroyfwdkm]tuqrsrjkovehrcuoq[nzxtnakmzxfxpjqs]pcvsvijqxlhcxxfe
+fubygknvjuwgvgshymj[puqpnkunirqntid]dmbnbjrijwpphajnwa[wlzffvubhjxaimienv]rhmuvzdefpbvinbn[zebucojhlguuusjmc]vlfivdncfjszmtglnq
+hnpjvwcaeveaegzetm[yfhawojltwnwkwlphlr]hybipxasndfbtyqz[lvcbmzffftidyscecvh]vaxlwmjbxmsawhq[etkzvjppzikagthunsc]yeoxhcxatwxwynsomaw
+ebzcmhhycomllbjvvw[ginoigaubpravsyzv]qsjnhtstgukhonvnrj[ddhwvakrvrngudjyk]govlhgeseypwdml[upamuhmwxzyechcxsae]adgykulqufpnvyhkoz
+dsjnuwymuydynpsbx[srhehfurrxstlvh]aizdwywdkydydqhrrm
+whnypyswxdvibuaf[jprrzmmgtuapbsq]fnezzlbhdnyyzyfsgdo[zbkrotmyfemqlfhj]motfxyxhhfcvbsmqth[haplhxagaiyfbbvw]mqvuamzczqzzutalvm
+qejybnzauvklezaxat[lvcyutafowlbxiyjvry]nlrivlmlsrwpmymaki[pqynpncxdmchcdlcey]kivqpctoajqprslcya
+bbqtegzobdomeyp[moubpdrdmsilsvduug]kmpsljwwlfsfnxisn[jupswttsazzstqcxnns]besgduewpkaxdgfpy[sfsshbcwxpznogtpl]ggdynqzbpgfkdna
+pchcgopdpykzejlzet[jnemalefeqibkwkztf]jcbzvnhvgvsqrnc[krgonprelrikhqbm]avtigocdwcmhqlanl
+igkahohuybjjdsvk[ddpqgrxwizhtypk]chtowtzshvlozhf[xrolpgignxavtcjmaxk]buxbbdgppyjqurfit
+qyegpxetuwnvtxjcl[haodzsylpffsytbkbgd]duofhwftoyanbkrikbk
+bxjuktpoqhnzhapoboa[ijejsuzsaamipeuqe]ugfhuvymiejnoyglivi[nlfenjfnxuofpsqv]gmsgugkqcnenabl[ruapmdnisfjitrzmnr]jxojarsmfmrtmcc
+hzkmfirdfdhysgbag[glregrenstflcrd]dczcchuaisyvpofbdm[ofnuphddpiimwtljk]eamhpkkwyyjcudoqjlp[iqxmnhhruhvwykr]yghmonjhccqlbwqfjp
+coksvymgefyduvwqyb[omlsfgbrafolaxqrarl]ztlchazfvqvofntyqn
+kojebokyfqpifeqr[waveewleyvhyyxbbwi]rlftzvgorbwdeboixif[lqiyszzbjnbllhmn]lprxnkmtivebztmvha
+ugmzrcwbhsctsaetwa[yoydtlzukeyfxiojis]zaddblqtllumigpup[fpgfbpoemablmbovgai]lxvlbchpysxadxy
+dbuzmvrmwlyahqjxd[ysbljqipyhbtfxfsz]zzbmobgoogmmqfxuw
+aofdjmsgbgwrrbfe[vcnkrktlkrjgpqwo]crnyyvrifvccdsffj[sivwwrcsqlsncytebdj]zxwovtacgykwcqu
+xtimiqzhzrpmdzoeu[dumiqkncikqwlpbzuwc]ijgoorzwtoyogahbzw[sndiwpejqbzbksi]bqissljfewmhthzfr[fhfvptvkrwmsvxembv]bmcylnvgczaoykwxto
+smbefwqfowpnjrvj[jsrmqvxzrlockwrfdkn]xzbebsvxickulfvcc[bgqnrsyhahbwlkglwx]zcqswywwfxsgdytwwrc[kbjybpynqssoype]kuvceztxgdxfzef
+zptgyycvygzcpqyr[zopbfyswmfcyqnzw]czjhcywofjoemnmgk[hkfjofyhiklfjtys]cgguodgbyzgilgjr
+azebcnxvrxgwqftti[jbjfvarjyawqoms]iumqfeogzuwcdsipoj[zqbzgzdbrhoahav]rpbmxhvdzkvffnegip
+rnkbchnaplcaugzser[qqnwunmwppjnnzuw]frhraurwhtayoegoa
+djdnoqvailodztt[priqsqdrtywaxmepuvp]lbflkgxysuxjammwj[vgxrcsygyqnaaxso]nrfpdwfnmzznmvigdzj[vxindvfzagauwfaflar]cxemhrdhcsbnuanr
+kxryribjlgxthbcrd[occbuoecgilmgfcrotq]dnrojjqevzdxplwizr[xeytpiswulytyma]ppjdfxllbqsijgg[nmjjllckovlktab]slbrqhmiouzuqqdsyi
+ojnsmjuloqvprufj[tkpxxbbgmagiatfiwvt]ddgixitcijsibqydznl[pcugesshfvmbqlshpr]ecdnyhjksojvcbwjmwz[orcodadsxpbwlqpjy]bxrtwpebbnalwwaajzm
+jdvdquoycomtlulxi[vilkkewafttknrz]unvacfrcqrhhguidtl
+abudfhatbaveagp[uwlypdgoikgmwvqly]djhbjwumcgercmstac
+owtnzftxhxmhdol[nctmtlusvapfjbmj]hsulaqofhhlydjdbrq
+oyijndyohfltcvf[lbupfppgfpfvhcarwjr]tseynqkdfvlkzjcwfhy
+fdtdkedwxvfnnodin[beafbnlmeuzyeghzlnd]rpxwxuejmkfvafyzkfi[drhznurgrbstytrnirr]egmxcqmbxkhisxp[dtgdbnxelpnefhoi]fhecbdfkbdrgrgmyx
+gzlnfqowkbyqmibsg[lzywadxodwavkhtxu]wpccrmtyleifychjr[spglwgrhypdouknj]sndgxjpilgsfyxedpw[uafazaaiwyzyhxrinje]mpfezcobffuqliauwnc
+ufrgsazkacoofwcupij[asrwuqgfertmqhum]tufxgwsknrocnry[kpwnjrbysrpfexnh]uiyxwhevpcsahwrpt
+mwpyjvycgsamjfo[llbftirpmajykidf]xbplgjaytbanccwggq
+zhnceamqyoqjxafvep[kmvpoihyjubmolutkba]shdkiobkihapietwdln[rzsvvyriruxubmzw]lnjwcdewziosfrh[yyfcxuivqytghxbans]cgruobtjvdavlyaswzv
+yfaeecsnjninyyq[izsyflxexjsfczjw]ajzghdmkbqourodqkd[efbiapsnvvshxkszvv]ahyleppbvgepnpsndws
+nvaxrowtfoihltgbnh[oicqahjzhoqawldc]xjmimdfpycnfabpsmi
+ecbzvkvwejugizqkkau[ilkbcblyfmwyerln]ikxgldlxptakjstofw[lpplocnwmlkwzxj]flyizzmlmwycjyid
+rxizygcwbwfmudujg[adxdzbnomnidudamavv]yqcigoejcfahjqioc
+oplxtbvzxwqmldl[nzhtesvtcuuhnuodbek]xyywwnhnfprudxp[qurogpiljgrtzlseble]garylcclffgnjoabqny
+axstkggsonlnbwali[blveytyeyryrrmeyenh]xcgepcxzqgkrnovmw[rfgktkfrsvorqbinnc]atmhkdbxvrsnyix
+emawdiuxcsjsczh[xxemsxaurgebphwq]siacfvvocetalrm
+hoqezcmfxcbyldzbdgj[ncczfgmdqzsslvwuw]wbywkeznhcuvhyxis[giyuqsdztfjzibzuu]iicxqdsgpkzuwouu[fbbiakfcdmatawdhu]rnfjechuwuvbkjes
+pxlkjszedeyandtg[vzmztqfouhicjgyhn]ghdgurhvaqyjvwfzoi[hdunjbenuuwsxgoh]jgzxuctibegtzxrdi[vtkikughinykgouumj]lwkhwpgybfxftojc
+inkbtzwtccdnerpdx[mzwxeqyfiflhakjodsj]mnsglzqiugdvutbs[dxcjbamluuvpfajhbk]durhitycearjavxqbo[boldvrkzywpxpwacs]tjgqrsxrpmaaqzn
+zetkijkpzfjwtkl[patsujyyufdjfjdlyin]crskagradcyyupn[qmfftenpdtzmolxplis]hwdllotorjkqtag
+gfsmrmrrhmhumyqjsp[otatbgppuxthhvoviri]ydqdfbezsnbqiulb[ryqfalrmrxsencrv]cobkfmwofrhzaofnwu
+extvjeumduqukszdj[qqvnhgfrlpwquqoqim]aqopphxuenwysihpqes
+bkfftlgxbfywpkzn[stxjgnocrsxcnxnl]rmauhhaigkbagyiw[wqjohxfdiwvoebtpzf]aqypecqnfkrapjq
+vfisywjwfomqnxdyt[tflglumsfyusvtsu]cjelvptmnjpamqfdoj
+vpzyomkkfpuizfab[nymsqhheiemwakf]nlsaqwycgasqvto
+kfsphnukvapezubfa[rvpcbqzzfmhfoafgg]thmzksirdnczecb[idnjlzzhtswtdkpjkj]laekyuhoaphgcxiavs[bsnaphjpbybtsccdtv]aejpyabhmmijvspvl
+wplvbgumtphjdcyoz[itxailnslkhdprewbx]uciulwglmwuhmbiai
+ktksdqvsrshsvggve[grfqzwaqjzafpouzx]erfxekjmzygkxknwpd[bebppmnerartdednzxd]bdtlnylaxjkdiuz
+ixjuswimkhrepohn[llzfpekerkwbmbdjx]wfencfejxqugytmc
+vzofsqoquvdpcmd[zrzxijrndisptemytlz]lucezitrkbsuxtfcsxn[rhcovsvwnjqsycbblp]nsgbadwkfbyomsyufn
+opxoxtwdyxabcjqlsp[jsbryhbfmhvtjciohd]bqwushnbkblygsnugyl[xigxexrxyphtraydo]xdbmkyrxlyoboshb[antssfzqawswqovigu]dnxnfgaerzwlippmc
+dukgppmqemezybpyj[dzewikpugbtdzixqjc]mqeinaonmeaisbfsr[hmjrbimmfceegblerib]agmofjqzwimbwqja[odsegwxtsuasjpkqn]wikmfsuuhxcshqmf
+pwvqcqktvvsfwzoskb[ijshyeopqvhobqwvnj]txalkphvegektizxygy[daifwzdfnajqdifjsm]jnqzrunzmgzpeqwvvl[gzncgfsgqltttcvedxa]cbfuzivokyoadqac
+gsgjuwftbhhfikewzd[nzsndocppxqeccyxhwj]kfqzfilqmjpkpersl[iqydsbvxstcexvu]ltownmcrtkdleeqit[axjmjeddwjwwkajy]bunnjmdtrwdckohsbh
+vhukbemzjwjjywbv[ueidxjmdurwauemunrz]amqiepbhdmmdzxhzs[ysrgfjmdlkrycxx]qevervspvsigsjafp[ylfhzzhmpbvfwlqwppw]jixmhgnhstfzqem
+bjakgnakukatldw[iwlecbanzufuuhfpv]rftfqqralrxmruo[awkuqaoypgaatlz]ayfnqvewpbtkqfrmzph
+wtngccotjxnlpag[zzzqkhkhspyqswml]rdhwakgcytjxptgeno
+qdsjlfoqdstuwmize[wgchicxbtioiuywxubv]ocaxcmnefuyrocckw
+jxdgkwiboqykzgpl[sylyvaoismnuimyms]yjeljspizddmqrts[eddmtxaxjayqyldrkab]kknnogloewbujcwwqsn
+xeszwcfrudkhwgvhlz[gfzrcibirbunjbftwj]ngkygalyrekcbduhltv
+vbugbnooeufxostaeg[kqkrqzrfsppmkyhht]zdcedlpugauoquq
+ewpjlfbltsqhfpxgm[fvmecdntimvzdbnpin]biasqqndykbxhormg[tmexezovdnezsjdpu]tetcfwyrwtrqluenrr[pqdwbntptnnjzagxvfd]cakfqmnzrchyjif
+btfpfterlwsvxom[shuzfmaoxfjtkes]yvsxvqtlkryepfpz
+jcghfctceivcaiweue[eftngalnwvhjjsmznr]fawobojxajdxwqqzs[ooswxgrpxwyohdyruo]nmtyadyigbjerrgww[kawttctyrgxigajaicc]hmwgzbdzmeoyths
+xgztroshpxqwqrsig[albtlndeyhthxeysq]xssxdcyjkygctnmt[kusgxaspwbcwxdiwanr]qgxqzkufuibdvexiqlw
+aupdftbvutytjjx[jgqshwanddjcznrt]bjiwzvzrgpjhphjmazs[zxqiwfrsraampecpqr]trtnmysitgttyqibzpu[egnarxlbujtfwducwub]kpooslliceekqkjspg
+nrltgwhurffmbzkvik[pfytsodylbargsdnkfg]cyftawynysetaggk[tusfvggrehkdyqynsn]fsdzpvhetavusseeep
+rishwwchkjtvjkgcvym[clboufuojnycwdykmng]nrzsdoqccrzoqosytw[mhacptzinfmyruq]ruobszhillkzobd[vwgzdvemczewlfdape]jpjduefvxvkgdku
+upnzmqxezzcuzpzi[sfbzitvncxzvdsan]bxhuatpfqfbbymcaqg[itxiiqrgfdiqhqfqkgs]gpykhbwfsnltkghfxh
+bxjrsxeqhqtlklmzwr[okufumtxukxzjmrfmyw]vxgitxdacjxfufuujg
+adiajjvqyjwyntoub[wcxqhnhrnuztvwqlm]erfjdukzqyrszhtax[kzrmzsgszhjkgfkmvg]tutivtoomopkzuhz
+jmfdcptafqhalvgp[acykarxccznwnon]qljwybbiabdhpyf[bzdebbpnzrhbxng]fuxeqebhacjqgono
+qdclvvpmahtnmubxknd[olhalegsarjferqax]qprlwnitnszmduzhu[qctlsakxesqxuczbqj]yteehljxvedbtiex[dwigqthtobxjrdcgtgw]thbbpflwfpvcxvskpix
+awrnjmsqjoktdahkeqz[grzlijsrdqkvxmoa]wzgzmyxsiqybpsrxyjy
+sinwoqzusuveolw[gmiafnhtabdkfxyfwz]kwcyzjfxiznfzlmfsd
+crmcidayayyyyioqinz[azvxsonkimgggddb]yorlkxpvolfjbglxvzw
+pknzemrnlhfrajkog[frkiaelszmelrcgc]bsqoeaktflqoflqz
+bvhbloqmuktajazwuk[yulzhoaebdclieex]rqtszqjfacjvsjq[vrybeabdclrxhxp]cmvixojwapyymzqa[wsgbuxnmfkfvdgdf]uhxbtdorobyjptfx
+vmadexpdpxtzmepfrh[ztavnqbmxjvtmhjb]lukmdktfzxmduxk
+cjfvizczqyqtyzswz[tmlhxvszektensftbc]eavgloujdjdrksy
+ceuagjmntpsfznxkei[ydzsscglmaefrglzqw]rgbhuylnwnlthnmm[bkwhkcvwglgvlqsqzez]kckzcvjoakdtivghu
+mxiknolwiwwkfxzq[ecpirmmrhbcnsel]mwoacrqwpkzjgrukydd[ckrpozlopnumxau]zlujhgccbrayveinccc[apicjpatyfymmqpm]yvxsjjrfhjhrbgqm
+kdagqbilqlgxsqsydu[bjurycpobwakkhdynbm]oiigpwlkpppteqlqph
+upfwmcrlhwbjrpspnb[qdhwjtfplxjlgshw]apoxxaxjxnikymhmavb[qbmshekxmrypwmnftyk]hraxfltpaxhwphiw
+byigpthtxeetehtygs[dyjvyqzjnitdakuqdx]hfesbffgslbplwug
+xdgznsxshfuvvhy[gwlfajmssomjseg]unlmteiufthtldgxw[xsvoroqswoitjkdlool]bvpsmfjevwvsdzryycz[rfajwhdmwspvwpy]zizcfstjmmrkyga
+iuywcnjjgghpmpj[cnccavsvbpousjxxu]hncnlufnqhnkyfdbzbj
+thjipbjkfgddudxs[spfbsnppzkkrjocz]rhjypobsmegxjxbnz
+yiniphjdjqyhbwcqumk[vxctujvgetvbnin]oznxmbhfgorugvnbqhm[tpneajssmiyyciuv]doipfgzftkcpfgkqjg[ntoauuoaetjmwcdgl]muvskibkdazqpzle
+zatpeicrnqvfwhzevir[achkrxpoddhoouvw]zqomirycphnjvvnnmrq
+gyewjnzbzlphmcl[goentnfvtqkjbhengqk]issvkihotsdxrtrcge[pjjynwjxqbgdazrar]vfdodmebolxxrtblp[rnafaodqrqgyudz]bokbyzqkrlatadrafic
+fcrqnhiztsbrqbfpmu[fekxlgvgnvdrgpewsh]mlvilpahenxjdnkfd[ekrovnfkukxcttdybv]igiafsaabmjtesxoez[poymdoqpgmvklnplxs]qvfvnidapmufkipfcaa
+dcemjkltlvmtwmofo[kyaudzwtxgzgmfmxzm]yghjbhjodvfcesp[jwnfoviyntxidpqlnpj]mqlrvdrlysriwcvkx
+vziylsyzlvipnsh[cqfgzfmbmnmpgebrbh]vkrxdbgfihqjbka[egmgpijxkmdpabo]blbwhpvabwahytns[tsrrxdxqiyuiysi]hwrcfdlrnlrqogzjphb
+rkgwphaqmotuuygbi[bpbbruvyanbcjfhfp]aanaxgqysluifteswxr[fbkbtztunqaeegygqua]ssyhyfmomjjvgao[snutrvblikqraplvqpc]aqmgbfijmnrlazy
+qyxtxwfuyatwfkk[miumakzwpbjaxrqssh]lxzwtxthscuobcmqdo[imxykzorfeucoihmte]xxfwdpaeravliey
+vunybsvbkzmwaqulat[uensrnacojplrywisqd]ivuvkgwszkrlrkfnne
+otlulepkuriopamwh[enqkhypbjtxousmlvtf]atumpzporzbmfxc
+axcaovnvmcsghqylwi[ruleoatoxsimpta]hlhbkpdtzetwpdsmrh[dzhszusmrmytlspbf]wugvqdtzbapnfnqmj
+inhfttxwgfttwid[elrhovmfckezycyi]orzwappwaaqffsetsc[veggwpvoxfubwplaqb]indtxjyutvbzuulrw[btlasmpvwtjhpwhu]sxogdkhsqgtdleenjn
+vpwaegumvoaxdvx[xzzubnmcxpipvhqdcc]deqghyudmqkokmasp[fovrmnguzanmxhuaw]hthncgthtpecouvybk
+scixwaywmasqlyl[orceqekzfxviuhkaad]qpqjnkswbgoztrreipf[ylmiivwsnskbpquahom]qazoofovxvylyzov[aigwlcvwrhyelwwunw]masxonmxibbgdpnx
+tsddqheerfdpyey[xwfsqaquovppcqej]tahlfpvdmdwugtef
+eixnvtawreuhmftwc[evyrbnlbkghbgcdh]rcepebeinmlmxuu[djpjavkjyzstzysv]nhbwbzyobrsjzeer[gnmuhoyckprysxjoabe]mbznbasseysitcdsl
+ayerjogfkvbtcmgaq[ypxqrsfznolrfwfjlyi]pxycrizrpgzrymalj[lptbdsejlsfritmojo]gqfsrlirmuvqmcffvit
+gwsubtcbyclfsrzrqwe[ozgxofiupxoobtettqg]jcfmhhbeqwttvotop[ytegfilkxzpbnnmxvl]engbwytwqgfnscmuet
+dtbijivxxdayheh[oysdmyqutgglmhs]pshfpdqvzmkyttsztp[bruwawtcymsqtpixsy]vajcsjaelcehuha
+hrowrexwdkjaxuu[edhgxzoepzajwcwxvie]goqjmpzfnhapvckyad
+klkfnhbjcsvetmgls[ogbrnnzixyzwsul]epnzozjdzuffrtuipyy[ohjtzufdgczsegdop]iwlwgkhuwektdgkqb
+exgfmperyunkktocei[ajenbklubiwdguvzay]dqfcyrzkxrlarscihrd
+amwaprqbaslfaemba[vrybktqzolkxsykmb]uppwjsgamzzzzdr[hmawicwlazgpebkfmj]vqbzilrohqhydvrdlyd[fsocktbxlwkkqlrvcq]ebhizjlhessodzfcumv
+bwsdcvuawqxzlfr[xumvqamkhmeaojhmz]tfljemjnnswaexn[zjobasyqwzlyrvr]ciqqmfkvbtrfmvaib
+ljimrxzjagtjkono[gqqmbamscacuaxfg]okynonzqyielzjbyj[dfqemwwhgzaeihmpqg]uqphfysvmmjgszshcx
+erhewvsixvvxcjrz[eyfritdtwjtdehuhsi]rpjpspqqejjjqnqx[cemzcwmjisxnepo]thkimqfwnfqxteknhu[kzbbxfyrvdqcrzway]hnbffqdyclalrqrbz
+wwderlwkzxrftov[zrizcsrhfncxxhipgmq]evrhodzsbqxtqtsdxp
+mrpnopyfrbcspgrly[ooyfmuwumbdlamnpeed]zorwgbsvgwmfupfmd[xfvegbcyklqjzodcv]xujauhxtvanvrivzmme
+egyjwwzzdhjpwanajg[vnanejmhmsxfuqx]kapnbrddoomlbvel
+yfyhrkxnnoanzrlcdjk[qbuntlfyfapkyzmjzp]darztduyenjxyhum
+jnonzlgpufyjnmamixf[ilkmivptsamagfx]rvqfxkybopuhwajawqc
+rjomaggyirzljvf[xueoknoqfpbfyrp]vcsijujfuhtxyiz
+buzpfyqcgoaoqfjeflj[pahnywsxbhzyurcch]oshukcataepznwjjton[vnumrerfgrawvok]qyywuqlucfzwpnunhdb[avdwhfwkjowovjgtkct]iperivwvqtuepmsj
+elziwqlyknthlsh[qrkhzurvujgpcml]szsdkjevjgxkffjhbxo
+svkvkdnnljqwwoda[xwznynicehzqeeurqbm]xcdbvrwhslvqnbwtkab[nwvkvkvlfbljzkuvixy]pauwjcnjdiaaxihkan
+drywhovxupgktbdzbho[npczquslwmmbtfqdkmv]xnqswspesaincxxaw
+tidyrfvdudmssoznady[krjhxhuyysnzclehaha]qvqakaxmebzqeckrtt[rjllwmvyrloyfyvyo]nwawencbmnhjuoulnp
+twthnuwmlfzvujyqx[ojbeeirfxaxwqwpp]fttuhnhfcpftnkhyd
+vlwukqnxcgvqvuxfkqu[qvqzcsatchyeejylo]bqsuzlobnqtzwlfeub
+ceeceksffqchnmvj[izuzaozpvkmrndrc]uzubqdxupnjukurd[vuozmmzihsdnvvknl]ejerkicmcnifawbqju
+ayekndnigdqycrpnlx[xxykzedhqwwnckaqu]yphmzyprhhzeowdaoqw[irmlnpnugysdornrtdu]njtkadbeifdveunhpfz
+cpeszbxnhskirxolfov[rqxzblndfgzvcast]fhwjntsvomzhpms
+iqekaxrwfpgllwdgbvy[wexszmqervjoletnghi]jdcrafwyovopiurtsnf[odjyasbfoogcbvfvzzx]itngdpzcuibvjac[cceirisjlxqbfxk]ogyythcefijdyfiymv
+kjilxivdlgapzubqvv[kdflzpupfrwemledtt]mazidupukldqsfbnzo
+gkdgwdphyrnqcciqx[xyrdtyvqjpyqzqne]rxczahyeiwdopuik[azamosvzssaydnafs]cijixpozetemnhf
+gsbgcxxrcsfhzbnrzc[fqbsuahvhspgbco]ijeencjmsbpozedvkxp[ogxizvbeztjbxjmrz]qszpgaqlqaniqmr
+xojjfjndicsbfkuk[fuixcydcggzgkupbumc]pdmagdpsiiilbqzp[grppnkoycvmqsbetpi]xrrdnfessbzbkyjczu
+pvxxauchqzwtppcbna[jyxogwglsdoqqbx]tiashymveuqfzqdsyi[fdkkrkhptxwyqkr]jqlvtibdwcxmwdfojnj[agoafviidlyogjezhkt]oeipjirampmhhgm
+scdzytmxeoaepuxr[urolfouojzzrhmon]frebdwuouxgsqtqw[sgdlyvwltjrgtwhsp]xbjfuzrxrdlecygz
+otgklupktkmwbtavac[wyvprsjidzacbdtwgb]ktrzyvbzsnveqhr
+oepabzcnimrxthgu[ebsvaioyvpgawvxwlv]gsyvwsmuadcmjfta[subtakwszcanhdsstd]otmqooxijiyokuu
+tumtmxzsvomlsgstv[gdjdgawczfzbzwt]ajcpjdjlvrvlivvb
+leygxteqdwiqyxf[xswsevnmiejuyzpwf]ufuucwyuoggkkggm[yxkivwuqyqzcuuspecj]zlxqdstoausbpeki
+iikdzjucbifeolwply[mmtddfoasesrcmxc]tddkgqcvngvdvek
+vnfqehrouoftynm[syrugqbozyvlzlq]ytuuouulpavbrfq
+ausrmizadkahfrh[beowyvexfyonqjtstme]celvylbfdvpqpqkreb
+ytptllepvyoythdr[estilqmvzfdodmmybk]buehrbcawkbmemftkw[izepojfemxcrvucath]gjfaesekjmixzrcdrh
+evdtdmaowwmfwpwulz[bwrggzenbjnqsyku]qgwcrqfgfnfjhyjyn[ayqqzteezuhmsfoz]joqsyzyllhqzlkrebaf[aahixqinyxxycwcy]kxcsoruengmnfzuj
+yeadegkqhjjdeyeg[dvrhwoumlkbffoca]vqrrypwcbymobavcl[qccxmwheinlwnxqprop]phtvdrzuntnzeqp[fjdaddrcssrzlokngyw]rtsmqlzjpordish
+gtdwlzyrtbnirzqgijn[qbjuhyhlzxciwzihtn]vgfezhcijflxugrod[amfxfhfpiaqeegvk]sujqwinnjojjjkveufj
+mjrvqtjwmmnjifhjj[jywhwpwuhwhjuhozphc]vkyewhwcvwlilsxiy
+ouyfkgjxhdictfuoim[vnwqzszsvlucdhhtvtt]mlyaasjkojbxosartom[iopppsiygmpiceaoii]plzvnvscipkkyhvyma
+xfhwixrqfffxynxmb[nzxstdnckwqfeytf]hpndwxudqblkjnqhgzs[kvmiharowcqigkgz]jcvujbhlqglxgkcgv[cmuxxdzwwavcujsbxl]aphgbxkiomeyzcrz
+trhkvukqejwkgbjz[hlljygrisvqzdgln]ffruvyhhxzxpbtkzou[ljfckzfabfallju]cfbupnmggpzxzklfdox
+wbqwyyrcpigsaergmh[zaapwugxhbjnrjlz]srbswjghfprtpbteb
+gvqstfxraflbmnizmtp[vqqpwxrbfaglxpwzafq]cphvveovkynmudsnl
+yzymzczvyvccvgsex[enwyuawiydvyvydy]ywmzufzgdvszexk
+thtrxdiihhwqgrnkwt[trgnqhnfwkwmttxlu]owngvlipscuztlgi[ciurpcebccvhkyk]lnuyoiyzbgwobagu
+psttgjvwniwynersrs[oamyvshfynaslrqu]lhidxwfyxnteooqqzs[pnxwfetkofgdgeigll]skkakydgcmfyfuwyfpi
+mylmuolvzqegvsrys[slsfmaklnwmlbaqqib]ilutpaqqvgbkexrhksq[qnouzvltrmjvtstaubv]ystsornebtqdepbfn[rwzptvhlfmsvjgp]vqdaqpbjownbtlz
+xfugcgbismoojdaiw[nuwyrjiqrcddsckgka]rmwpvltwfpxcuoq
+trmkejgqteugbyplxr[jxnfhdtqduoudilvo]gfhvptjfzqolpzn
+brxbyjkpskhyxelqzc[eherfigxymatyzc]uhnpycfyhuexifmhw[mqtufbhlvchtjfyqrie]wstbnihxfestirjqg
+gmsfaffefdwpylycgu[ycffvzzgcpfnnevwvl]fxaevbvraehcyaxkjhi
+wsqshnuceysksrqsp[azogmtnfebuahmqf]ovupfnvnzrdeljgict
+gproaacfmidokatbox[ngntwrnzmhuqttk]ertfafnfchokaiuf[lbacfbidrxjrayell]fwzbaikmpnudlqwgwak
+csqccwbysdzhoiwq[kqmxkcgwmkhsaraadtl]twmikglnikmbbvulgam
+xmikhqxprkkpbrbm[fcwmsjyxoigmdezpgr]qvoohhzozfllrxrmvw[uldnkzvdedrczko]eoqubtfldrkdokd[exvlggwmmfnavdyjq]wcdyuriygbvdtsmwx
+yzwaojjbgvqouerlqj[wupouzamjgcxelugdwz]gudoblwwedojufgbl[hlnmcvdsgitydqaergz]liauykhyeanfbqnz[kxznetqxvuxlzovyqx]fthhvuyqixukncruvxd
+pljzzzfwedxoctvarjf[preuhfwjhyatfkeepbl]oqvbccylyczavpve[jttaesjxfofxudw]syndrygyumrahgypl[xtyiwwkrtspyhkppx]xfixdfntvxpdsqqryrm
+iibobxpwfctxezwbyhl[pxqibtdzredjukbs]xspxwfxzwkmtbqbpp[qtoqwbdslluvfxxrte]rztobibnpprgbkvd
+fzycsudjxxyqsebqnf[xdhyyrilwqhohrjop]qjoukdgrtogqcjvi[ujgpjsfipgxsdkajlmj]ugeeytrhbcaqjvfys
+rjnxaitoquekpqa[hizdsfyfinelugp]uzilarrjtcouqxw[cxouglsexamjmfxkem]ugfeendmvhsamxdsbkc[jevmalycyvinoivws]mrchcvmadwlpyym
+cxgdigdcavedxkwoz[ixkshnjpohrhzgclk]ljfstqblntfdwxxr[nktbospjrfsmodi]pmvdcbwwsuvfvhkdc
+xihpbgawtsjdaemqsi[exappnkwhzpuxbtabo]asygirvecghmzwek
+agsrysnebomkidgddk[scnqmapfnvzwdldlj]foufoyrxgsrxphsmg[ekpyrgsshqxveoui]igrrpyodnkfuszvphq[ldvwvfmkzabivyqida]tqgcqaqhiugqginmgdg
+ftalokkmwvnmychcxe[qmkmclrthtqvrzpbbnl]sebxgmjvtzpgwwa
+sflfifzvrstqwxv[ehloimnuhsnlfzclo]pidzhpgnlvmeouhdblh[bymcgygrripjvluh]qwtfcwpwyjjzsdbg[gsieausklaxbhvv]mbwcknsmekbsvzxy
+tcqwxtntpnjmyde[tzvwggjvmousnkgr]vqcrulftlhwcxax
+vaxpbeuoxndqnqfqfrw[zgmekxeilvdxhis]kdjynxgskvfsllrlrk[adbeyrhbylvxmauf]gujqnzsnrapkcugkh
+zyaiyhzzabwxdktkcak[gvocmwficgznesg]syhzrwxfixdzdcn
+kdvtcvgdauvuzuoaqjk[bllhxeuwtzeumulkr]xfehllnbstqtnpi[tszagvpenbqdvjfymzn]jnmvkrfkdugqvrk
+fbuyhgbwosevmlfzfa[dumgjdlumtridjl]ipaiotiwbvovrhfci[rtzswwdbazbrtzunsv]kcfoduojhpbocsaocd
+zbrdkpydedtihdrwth[mtmszuqzjkbiqoi]cxvnykrffutmlpv[mhenchsemaqeakeh]blxmgldcgsedeyerdc
+rfybjscluiprxixzds[owvvwlwspqmwwgzqe]suohwxrmpgtwvkn[bhkujnvspuwsortys]thwttaamaopsuynnvxy[vscgitzsyujngksy]sxyttonsquzryswvjye
+pvdgotkcfqvayxluj[bzefwpnkonqpbzshl]tuhxhtjtcxdybbi[vgivnvqwthkppdhjo]xthnruhpxrvubxpc
+kmevercvnugttmuxejw[pgkmrkfsppeomnpj]axdiwgeroyrbnnamw[cdjxejxqcvciydtlowb]hcqdkovuniidorztqb[ckexdghbagizrztvkct]brrudblfaephsdveu
+tcnppvakkkcvlyadeh[afjjeqqnialrfdapylb]upgmkjuhcdqmxbtf[hztsvlwpihcduoxd]incybyshqjvmqia
+ftxxajvfagituqlel[wxzqvpqjzkbagapyi]rhmjkhphhyogbhvhhk
+lbaxvfkxgpjlgnbiv[epnghhcmzmlribr]bzfkgixukpjlkivvvx
+kqhfbwargcfljca[dajwcxdpnzupgtj]omzbajtlbnvzsfl[lgthltbhsaymfcbyjio]lgcriypdynwkmaxg[zrveyqlcymzdaokxmcx]xrvsydzwqcyopjjkhz
+zlmqfywvqzlvhdjx[opyzjeyvgrpuficjptx]yekbdsloensbtwcji[zzdmocooaokswkhoh]xbeqovknhbymfkwoils
+zlmikilitbrphmeql[fvwagtsyxxlefxij]lnrbggidsccigwmavw[nvwngkikedakbjsqg]rcsrtdkiulovdlybyt
+evfbszgzwvopjmrw[apfxqhohwsuyqqndos]mbbrkclcwcxyasw[vcebwhalumupkiixf]zsjlvlvifmyslpo[wornduwuvfwacvyt]orhbyltvlclyqtzh
+wwiwutciwsouadnf[fcixatjbhsjkvqyqhan]zavxccqxwbzukmrtf[uzzmdfqjktviijwx]bxelmiwiltaouycvz
+uxhnypkqwipstnqlpx[pfmrltrkbxxjrohon]qcsudiligpjjnuzz[dgwmslhoedycdih]klilxgivqifiyrxmdj[rafcmynfdpuaarugr]wzlinkrbastxbytrqwv
+gwcazcrtdocwtnxpw[uyrnqhfkhknvpvqk]lxctiwkoxodvsoxont[gxcdvbggzpkaynquk]tybqiclmwidzuiheat
+bycgcwgekvhhvrrv[yhbjxdhpvjxvfvnxgye]zvvgshtnnkfybapoptj[arjnewupuqezonqpnan]mjrpprtoiciensf
+dqktatenwybipsoxyrt[alessjzyowtyhmt]rvtajbosmcsskpwkxf
+lhagnapuxhiursmf[zthearqsonwszumpkwu]oefbbresvhnetbr[vuqhwuumioepvchm]habghujmnhqwojlbvw[gdxupjwwasidgxe]xyvxxbxukvlsvys
+wsjmynhruoauandx[nmacrlctobhycjl]odtmnavnougxrqowzgp[vhfdmwhldzrsccqh]kzghmvmscrxeqamakod[wsjsdpifbcprlmrkeqe]tbuiskombxnobrr
+rsfuxbdhguqrrje[lzmgnijeavfojttt]tvugblvtyuqohoink
+okydhbqlqxqojgnis[ebtctoijhlkrfbfggs]bvduavhztxbswbdtvz[kvaqznxwglyszfwvl]rirzscsulgfrlwki[nmpygrvpsbulgnzdolb]ubayxfezziquxwm
+epgceboifjuwmbtkx[mxsfqiocoaleeng]ihrcmuloriwkcahbaov[evwextxmoifutiu]ddjqvwbhontlwzmhg[cckszbzdjrwbkxnj]mkffonctplrjpiqve
+mzkqsihkkedzlvju[xyjsjvzuhhkruyg]pvqumdhbbzmmcmlw[pjzhzzmtpldqcowxi]ociobpshmzbqflbgxo[hcwbiqmukroioqjxs]bczktiepzmlaaeku
+gamdwrspfolycty[tktugqpvahqrxmfhu]jrzxddrtbixcdqlqplm[vkowvisvfyatzyom]jdxopjmaxksqyknrtbr
+godrfhnofdwcebpjwr[keiatgzgdqjbtfr]uqadhoarbsbdrevh[tusewuvtmgaiafj]qkumgsziwtssnsyjct[gmnefsbeuqiacdsdllh]zrzhjvphsxsucwcd
+afcgjmwkvdmckrklma[cnhrelyjocpgqpsni]rdkjzzbvwfzophp[cynhzryouowuuiy]jhdacyayikwftlmreg
+mmmxtororwxeiudhzh[unnuvhoroijqxsnhzg]ouimxyccojgnskozz
+xvjgurxzdtbaiul[zrmxlqiwyvfowgndigr]wbpakpahulbkvnweala
+pddiluioyvdczutysfr[dwcqglpljdixcntp]mezezfcpwvlzrsslah[ikozwlohjgwdsvwaf]lajbzlbaklmgaluaio
+qnetjiacxiotczgrlqm[rccudkslumutqlqk]naqwcwlrtkqcwcjc[bdedocqcutdkkbg]zrktdueobyofamj[vhwwecprhkldysvmka]vhpfiiadtjiegkprmw
+jwpmijanukxpafd[mgouzietwniuyoeozh]ojchhetiwykmxcu[msesxkispnyyhthat]gkclrzdrfdhfgnieke[qubdzcgsnogzgrrhr]tozejglmfonjlmghsn
+fmbbyrmspjegfiko[sczruvfxgqvogvvrr]mmthznzttuudwccw[nlugietncjawardjjio]pdjbzwndmymhedtzgp[fmcknqodbiisnzndwo]wnschxicvsccasmxbnm
+tjshdtqixcnucvkhgc[mxoyuobnokjhede]qhqoqocyqutowhqh
+ojqhxwnehyfhdvr[zwolerhoxwbjqdwyv]iwzswaejrzxowgmgqu[sfszzoxjmdqxkikleoq]nartznqpcaoncpzz
+wrzjdrigefohesrxdkq[pzxvrzhkohgqabojcrv]tottapfprfycyjoi[qldiorpimokqzoimuj]rlogwbnqbnqrydjp
+qhczurgopvddfumdkwh[dxzqerqfzfvclmpd]bexascwtlizoacpdrks[eqkdhaazxiyhisbjhkz]shwvmbnwoqbqqgjr[gqwhrpwehpqbqwtrnz]rskgbfaeulbtkuxzij
+ojqzacqecvtaikbi[dqfouvlvmbnqfpg]udjpahuaagajsslu[hnphkiftfddfjrkasm]mdwjcylvlvophtv
+flvgaovkteagpynv[szzperfoebcvyfkdmi]siwkxshdixitmgudlcj[cjaclojgffilrfk]wlfygguppsesoqqd[syxnwdheseoirapzsq]gtqcgykzckvsuobv
+mdiwtzfahcfddvqvjil[vgejbnbfzjgjqvqjguh]xlgwswsnxqrrikunty
+dmibswyxlxxadenxit[indzvmfqlsazkqpwler]zfgzmwfrysljdinb[zchkubvcqkchuhqqozq]fdxxvatlwlynvpcc[jpdqlqfzwikvmuuvvif]qxayqjtamrjkmmajfw
+cvuhsnxjwqqvqnktov[isynyancutzzaegsu]wafqfzxamdssndcezf[mlcqpcptyvzubjsjjtw]ttwxrnsjspbgfpdpuyj[vcbtyvnkxvhjxqxpnrz]cejbiqkdgdoocfp
+xmrgmkkhncmoxsuhwxt[knratlhklaubcmanoe]kwvoawpghbndceos[rpgghgrmzrvproskz]ililcrocksgedhjuhjr[osfcbrqhtkhyktkfxk]itklpoezpplrenxtqv
+mznmrotthwphvnqgrca[lzmbkodxnyqcihjwsp]tzgxczqosvxpfwlrc[hbedolihyyunfwj]izdaufruczpkxqj
+bzaknsueaptjdcsw[mfyqvkzdxuhedeo]khaxflvucwkbzgutsge[yqjpgywasndedvwsd]zmivwoqmrqjfkvmhr[asmmexyekrgrfhnfm]ggjhdjwdeczhoiipfz
+zirtgiiqekqpqny[gmyxihpinxlvrahsuj]hvgcviarxrtsofvcf[akymzspsfehurnuz]kitiugedgszjjnq
+oemqvouptnqauewn[chwelvewqnrwatnami]vsxhrtilwgaulrhrzq
+qpncwiwclnvcawai[gjrsbjrryhbwoviv]estrqlcofuysayrezlq[zmoixozgmgsncdalu]lnfbogvznfmxcuju
+dwfjbqqfnwsdodul[ehyolwsgpgsdxyitjqd]bqxqcfhexqxphqmxk[nxsjycrzzkicjqb]pcflghwqinnnpxruuqv[ownihwpcnizyyifkihv]cexjgqqhswpnrujgj
+ruugwpvhjyjwecfchn[ihtbgcwirdnuyjbx]jckbhwdmpsyquwckj
+eshkwnhkunybxdctmj[dkefiycsvmzhnjfea]knmcagrgdhctbzuj[weikvdezylymclftryg]wnvhotwryuerqui[epyensfacxyegnzdvz]wlgztwudoejbtqyu
+avuqgnzautxxbrteabq[ybapddktmqsaijqx]pccadttkazpdxub
+tvejinpchgummbg[uahhifivytznhms]xbsdcxyaiceykgjqjsd[npkermlinikufcunxro]fkbdthtbgjtorrkjpcw
+guswezvvjvnrgcqnb[ovvonjqfigdbfwchq]rdkjkwyvkalcjqnj[awcsmucmugnmeiugm]ugdrjtgsrgppconirkz
+zahfosuxhtuqptoaz[qhsqtkyovsddgol]kxgccetcutyrcethsil
+ytuxuxgzsvcecwamt[lovvgqqzfybywhcqfce]juvhcgndgfkwoynthrh[ruloprfijalospov]gdcheafirlvghthb
+jxethomfiwzhksww[vzcelvyiqjxayxifjkc]gnzrlibobanzorykii
+pjlywpqlpzjdabozer[lrehazdewzhixga]zdvzuirkyorztrwy[fikcexbaiwtnqbt]fobmkmgnxfmaftk
+taagvqjyhughwmkkvl[hkuztqckzdhnktvn]gsabfglsywphugckyd
+oshqjstzujgpiwczrj[hduptjzmswqkhbdqgov]hqmsoxukrfovbeopbg
+xgsjpvidzwicmsb[bunafjgrbtvqbapoopk]mqfyvvahpjyfoalzozh[mmfptgqrojhicfncbmd]saxxjfzzjihfmllsgcs[wyqlxccerdjykocqy]hzuwvusymrxywetmna
+lgieqmfglevrbdvnn[yuezptfbplhkimfq]rvwssgzdwlgpfqf[qkegiqztcofvvtrqzcd]wqfawsobdysrfqfqbv
+ccauaprhxrjdsbrqzz[sskvkaaspuldccrg]wjortlhzgsgpwesga[waszszzivlptpedsdx]iaklpnaaeiswyzgza
+mskrfzoumbmanthiths[jcbxermcqmrlsoe]dmiodqzankfosysgbpu[hqzvulbmguyvsqhvjuf]yiqcoarpbavqxsiwtv
+cknpfcczfjvmuifaii[oygofisiwuhemyz]tedofahngltwsufvwe[leioechdfhojycsimh]padlduabrmtbncr
+glqxkbujgswoysb[fimbwphbpeelcwdi]vpzolyuuqulcdplfr[psxblsccqodbrbs]jhrmzsgdemycrhzsm[gmdvsnwufhcgjqvof]psvervlisrluzisrw
+cxrafoyokflthjcy[wupjgniyzvgwnbgseu]jayoymnavgydhkpc[yyfumpawulrxokrcxw]ggfmtwrbqvjhecmn[zwtrupxseojrhqtwe]szlvbhlihmzeemcdvs
+zkbhccweyvajikkoxfy[fszqezsvtctafsv]vqumsjdlyznmzrwib
+fnzpumsusucgyjyqe[fcfhmlxixcswtijzx]elgibjruhpsnyeikpev[cxasrzvzoqqamrwxeyb]hvqjlnkfttgveuxzoa
+aqdyrsuxpeazhvpmv[oudjrdigbhovgnproor]zoqmqtismbzypyrssu[mmjhslzqmbfrzoez]pavcrhmjsnjudxk[usqrdmdxetgysgrnyt]tmhronwzwrzadepjt
+oxjgsxwdkvbtwun[voxemrcenvrllxim]xqpqvkzffsowfrxcvt[vuhmfghljhheozjp]iagixberjizzwukbb
+hhmnefofdypbkgy[piopbixdrssyawazfc]vfvwwevieiyevhciymp[tibldfadnlohqub]ifcjdjqmznrpnez
+idzefrctgukgftpkvt[xhfjwjaifgstqulkjsg]eppjpjpgvlurphg[ljzttsfemjpjlgmhnqq]gxuregbxdtglnnc
+swtdvbcjngxrzsqvmya[oscfcdxmjandmsdni]xlvamtsetxkjlmafuq[ndkesmiexgmkuyemqy]tjnsiobklvqxvkfg
+ciyxyauiynetvuysnqs[ovngnnbrpiavswcek]rnaeejyiqnynqkpyloz[mccrpfjqimexuyd]nnbignqcpdpisjkzdsz[vrvsahyhkexkxutcgmo]kctxzgiznbtghfsyl
+hpkxpqeyumhouklxoai[qxmisohfibgoaqnkcu]czzpaxszfcimeqjjk[grwuxysxuwxcwftda]spkpkckuiswehsh[itrxjgkpkowcbilvtgp]guumzewmubuuyfafli
+rivqomdhbrkecpbb[wdohqrdyvioabfbf]dbllzrwwbfbgdqktj[dxvafeshpdywcxl]uzstsjlisdrnfisduck[cjazhqptbxcixsf]nslumhmpbmqpivn
+qtjhnrwzpqaqpkdz[iocymnvkcvemkfiyt]qwrvnjzeopltnpytb[trvortqtdqfpmrwbcb]cxsunonoahemdaoywu
+eghqxxqrjofvlwtclmt[czflqhgwqesbeja]dkempvjqqctfbjtqr
+scoquhherndelmwbo[sshazaphvblvxlvcvi]wcvdremsljdidzbfo
+hrveibqmirdtsfvvp[phsldxexzafxwfyync]sotdtqgujticqic[osvepfuzgbcarhiupj]ydjbylbekezrtykjysb
+nlgdecifcwmuayibgrh[kasewwljltuzeobe]rmiyqugsqioouoxmbc
+hivavjyoxnbcjqgfkcu[vsgnoayjlewjsmfoge]rqctposdtaxiabiaps[uovebqmxopsmbzmbljz]ltpiruahxuaubqzsa
+pkpapgycinrwpglmkx[payhdtzrixoyoeti]vvudfhjejwfzqbv[udswjrppbnpeojfbxi]arkpkevytpytwlrzblc
+lxtzohxiknrbiydkuq[tjzcjzgasuadhqmrenb]dwleahtmccflund
+biokgvnjswuselhtuzi[comxhmihobxmgfua]elbjwejsnosujshbqd[tkwacudvjplpqaicmb]zadsfcvcemamozlimw
+pnqaihstdftozsriips[lkhdtkwnqrypfpi]peindlywisgzfcfry
+fkdpjbqytvzvjnws[slqefmhqexwhkkdhv]jjzqnutkhosrpvj[wjvzprupaavpuzmc]cqkdwaosyntbuyxhk
+oevqjtpbljycelre[qsjbtmwnxmimbtaf]simiksrgdafhjktu
+appbdxfomrzhtlb[njqrhqbvqvdvgackwi]cngofyjrrwisczz
+xucncimruxvabncx[gbubelyrtgutkqlsh]lfneuteufvnubxnnnce[spsauokwxkzlghxsvj]ticuuxutrlrqmlqo
+suzaytczxhxstoqodm[efhicwilrikymrvbe]diqcwvsagtjadurtkft
+escgmnsjlkclmkff[anasojtvnzzmawcboha]quxaypktxokdtjtvw[nnansptoensuvdqbqh]bwrvzncyicnclmkv[zklwtdlwbciplfuts]qsslygkcepyvfmrivlv
+kqdcsjdbvgzfpolkvr[nzfpjesnxmhradmeqh]xekfptpbnohnrdwe
+ytrjotkxynxsdlfdood[gfgsticgrqrefsbhd]dqrqmdqfitiqafmp
+dkcpuvmrctwtwtjveoz[hvqpvkumjmhbvtvnoy]ppvruhonlhfwltmp
+igkkzzqtjaczvwimgs[nxzvgepflgmumbr]xwbqpfpndyvaxfufwj[dylxopnrjlxdtvhoj]keepzdtkjrcszilhk
+kudscwhbhmiqkyu[npsoiozwddcysbw]qontovsowstkobmfx[vpypckodavrypggo]utmevbjiupwbqimzixo
+rexmfqfertkdkgyw[fazktroqmzuqnws]ssxqlyuuizozyafaa
+spaelxckytsjxewny[frhpgodqzkobawpe]urcygtcihbnpayer[ndhguaxbiqxmfgu]gyqdqofuhthgqmqu[xplcrhabqrvxtixlk]xuclgwuisbehygf
+nepcketqyhmbolu[klkpcndcxovtxgenahq]khcemvzgfitmgwboe[adgtmqlirrrclbpmimx]sgepebeedqtakqjg[wrdclimitkqejwwt]wcjuedbmdejtknxo
+poikpbptymruxwyo[vfhtxmdcfhmqvkbhfi]bestifhuiokqtqqzy[ewngjbizxocmhgf]bttdzjlguaddgmktnb
+hikyosezhctnprla[hnfrgdaujrsamhbfpo]wdpzglchlcxleofyqqu[yrpkmzeqrspoqfx]rfskxkbijoxsgucfpb
+zkkfdqkjmmxurilkrka[rijqjdcohanebspyh]srjevlnrwkaghovhus[kgrgzuklkakvzlexl]tgnqewvicnfyocaxfu
+bafjxjjsbkvwpbbu[ytnoocrzdceohcjzsmb]tfxyycvigweydqtt[fzgbgfqzlbdngjhfko]xxytzvgkqwrjpmwnqrj[hsclxpgznrwxorrf]jnjjvlzeymalkrw
+pvdeombqyhdeuracbsw[ogombzjnxmptwfwe]jwhfzfxjfwfkersx
+oqdoxgqsnzsyoiozcv[njjfqdqpljgsqjteq]xzyxqhzwulwjggwr[vftspkxrvlidhxpz]wsluksmzthfzialzbn[rnpnecucmnumicphp]iucuubcmodrgbezfi
+fhqgtjwndbvxhjnay[zhjyasrxjhshaibeee]gpnknolvzigrufpsy[uvkhwcshsalizlhln]miqggogcoalsnsg
+kbaefnclkfuaacyaqw[kvxkjtmhrpmfybabmrn]bfcgpluqgcvcywfilgu[itxwxuzuhirpwzjn]sqssnjplrwtusvkoq[xtswpgursrnfolfp]msgvzgspshljqvy
+fmtectsgyckgsxhtq[tolibcypycluxqggvf]ahsxzidiygtnpqth[fnxqvonhogepgcnm]qalfxkdyvzzwqav
+ivjntbzpeqkwncmju[tduwafmzuadkrarv]codtenbkheubswo[imscmiquwvjkktoqwhs]gxcioexacilhqpbgu
+nrxlalqatettzodgrs[zmscgfitelxpimva]ddcjrltymmxjejsdjb[yxfjgjwdazvgldbsl]xsqeusulfsqplrpet
+yachjgxyuilhkuxfy[cbmlgjovjsjscrb]qqhzalwoyrshsmaejb[jfwwyvjdgqpjunys]kbrfaibdtcknzue[jguruergvdgbjkv]tgsuseeylzhplgrpg
+haobgfarfwwsnsmt[ebkldjwmfkmsyjl]nvlelqzqjlqqplbrtwd[qvitfazopoylebv]jidnhpalxguenkeons[syannxpoqdjlsehj]nyoqfdaqlfexszfaf
+lkblrelkqvilunrpz[pqzkriftkhwruzxjp]uthvsrxlswtiuej[rqxmpszqrwyrrpj]idshhewuwwdgdys
+jtxtiohfhiutnkxrw[xpxcqczqpekfmusvwr]sbqsrjpvimcbpapxp
+cgbufgextzfgphjmpa[jhcpgxakwxrbedf]jdckfachzooibtpgde[upjxjgkbcocrtcel]zfuntskkkaqoaawlft[atvbrjlpzjmpqla]zkznozcvzbtilaqu
+npxehvadmrbadkjf[udleiusfgbphbicllz]hcffuslnycbpubqfmbj[omluucjltknwiebdefp]gbmwvqgieonzfwrclse[oelxxcfbljsyeijeefl]jofvmydknyufeyi
+xsusetwokemyldccer[lptgydchemsqljaxypo]ejtlagjmhaszjzqsnn
+sgodqumychhkvnk[roubwxyrgybcnaqv]rzlmvxkwxfhzhrgvjra[kwvngfedqvvuishjoji]qppuwczsfqqxxqsepu[zmdxnkvlrnkfssv]afnapqutdqznltezah
+pcnanwdmzpshbmyw[patcrbtvevbtanaxovb]stuyxlurceqhactp
+aivddjfrbkpvmlsooj[hvrvynurbxihuelkjl]rpixqxbknnktowmkdo[pkmxpdasehhkpyy]odwdkfrroynzswerbs[mfvmvxovfqegtnxllpa]ufboctmqfwfehmfebkf
+rtbhehgjnevzmmqgep[yzodzcckeqmwpbook]mldhiwfaxrnljjovg
+xzycdgrfzcgzuebvi[hugmldunkbtdxeli]qugxgdvvfygluodabgq
+uiocwjcjawkezsthdj[azmygforvoiglqaobez]xliasvcjctalzfdr
+svtsxepnrxkgyomsjt[dglqtylczubhqapb]kzyrpfjigqwaeavrus[wizgslqvgqbogptg]sdufetznpmxchfpy
+aqkjwedsgvucjvbu[kjcxtyswlcfkgimqqmo]cefzpwaqfbyvfcqc[dfjrksosggnnulxe]joaumybazgctrshh
+whzvbjllsrxgfnqi[jhgsvmmydwgwdjglx]ebshecvmjodytfhpsw[nmcgzfhovcwodbtif]ulsnbqybdkszugxd[yfocxkmabsdnelad]wggxekhcisugatilgp
+muqhaqwwzuoaqfyonl[cdiyytjrutnggkpfc]cwpbjzjinvmcfxilx[krzhyrpnexotxhapzkk]ljkitrakpbxghpweviv
+tqwtflnxvucqsgmd[fzflzmpqlsnmpjixres]ipfqmaohkqstxofevcb[gmgkfolwwihufdpze]owpyncadwgzzmqyv
+ixbexcxmoqpehwqabi[txmhelnipufwbwjzzj]mvmhtepvmvxpssr[wydqdqbtpbkrrexe]fqlkemrbdtpswbcqy[butplvsurilrgfawgco]tavqvajtocbvjevsil
+vwfkoxvaofxskyhbjqm[puvnruashljbsqbscf]taievkrmmgnxdpa[xrnlbvjmvidvnkv]gxudgkdjkszrjyfuy
+itnjahxgfxgjnslbe[hbwbbpvylfbyqbgfpvz]suqdsbpmptbrujuf[yfkvqhmseaimirlwamb]svktdnbormbmbsnilnk[xlybsibrczhbpnphw]vcslptwylljzxjlvcn
+lccctefsdrcdlkw[hnwxoelaqsswnrlipk]dxslofpdnwpdqqtyqk[lcptfiqjgjaakmshdu]ypnniarllzpkrinfo[zyrdjbowiiytfhb]qstsanwuwunmeytkmk
+wtxasrkodazruvnr[bewsicxijbwjblgjj]hnhtxsccchhcycbt[gycsmvclfyjlraerprl]wowibzopjcibenefiti[uuxeudxwqtrswbxuhxb]ttsgxsgkbamcaocut
+ntvwumbkdxpduiy[zkhhxzidmtujaytpsnc]hzzwgoqlwyadsvaejhy[bvbtzbhaqgusces]zfllkpmjpdddzkqdm
+vzwgoqznxdvefgbqkjs[swckbsoabtxlkhbksg]zqjsgiodujmdfxfhiax
+movhrjexteijabgzjtt[qmriigrpvzoanmnmvsw]nwmdizazbepnduo[qxezsdcvcwdfhfmna]igkggjfjshvekgaapss[weeuzvhhvucaytq]pwwxdlihtxesiffju
+xkluztptozcnbvh[btptpdpiztmrhfijfk]ffjcwrplvkhuuxugg
+hhfzzjrspqcimcn[kjdhabulyhfjytno]tcbttnaialvktxqqsfn
+xwrxducaozrhxme[magpnshvryqtljmijqs]oxusvmrtigxebedfk
+fzuvuhajudnlxscbofd[otmsbqkykhucrldvttx]blmfnsqkwlndpjqf[yqpwlhlpykachcqeesu]injosnmllqisgwqxfuo[vsbfohlfrptrxib]zqamtnzifmehdxxoh
+rperdjgiisvvnnkqa[wtgzipvjvnuyvtqt]llbszshmkckrtmk[qlidltzjvjtueyy]vaqxlpwkvspahufb[oatmkdkqqwucfodoilu]axluymagirjmerkhzu
+whferflocizjrokfcay[mmwecazbfcqkomqmtte]xzzqnxyjleqvfhdollz[qefcdifayasgncsitrx]eqcqtehhaetqlkl
+punmackiplnvsvaibb[duepoewfezjbmiprz]xeqtdtxsgdpjgquefny[enprhqhpeyfvjodhg]dqcbffvaeznzycitoz[gilxojkhxhttizc]canikhdckixnlnhm
+eiphpmokjfcyqttz[gtmpkvnsrbwqrdgkhw]gaedvjkebfmagujj
+vyrzozjvlflremttj[fmzcdwwhgxetugth]pahbkmcxhcuuexrqo
+izzyhwipmlykvvvmcr[fewicghbzxsojowdhg]mrzrbqtuvxaxzef[zbgnaaslocwtcne]mbzxovudbgkiwpdevin
+usxkkeufvdoggas[dswwfmzmseduqxhtvwx]zgqaeauwnbvslksyovd
+glfrqjuwkvdohyiwdt[pvjouwyzevujmgejnf]lrbkapwbsrreomofbo[wkjravacdyfclczuosc]mwmhplddwqgreyyzcko
+dkfnlleylbdaajb[yyintvqizzzxrfcpi]tngxominnsczlht[upwicgefegpbmnrr]fxfefjvyqvdcrmglrx
+rshswtpuebrupwdzqd[ksbhjfdzcolihpty]vxmdecfcljflahiuy[fdyfjnsmcpxgnbhzz]abuwcdidsndgdnsy[wpaglfwmquxtdvcq]odgxpvmwhlwzudtqpnz
+rplrsndfombfrzzlc[uiugcytieaoqilk]ntvrfovdvzuuonp
+mqzpzeudnxiqahnska[llussgmurjghbnnoole]eusafrqscbpinpaov[msdqfnpwmvegogpxo]inyrlydjdbqpztebbib
+qmmliykhvnkulamtuiw[udnzzpmmswzcavkuxv]gcewrmlypdeocvbyjj
+uiqhaiqjwqofbgqto[gkakppyupbxwnno]lcwfhzqpmowkejj[rtandvdifasfywsle]rlfkhnelytlzutfnv[fuoanrlavgjygzqhsde]dwfddcgrxzkgtcm
+bzgyinxpqvasnlb[hvsierfmklqiivawit]sqkqdyuvutegxzrkgyd[mvittbxhbtklpuh]afvaocxcbvrivxvuv
+rlpdcdvetmwhoeh[ustdwsmbojqbqwc]bbqvzwlscykctcgoho
+tahntlhdicpdnnalpp[fnmwvddaoxkmjqst]xixbiyqgxypqaedxnem[smuvqxwgwfubhmuw]lthrcrcxoimmqgk[ezaxxdumdwigkvu]crowudsyxfforlrayi
+hpvryeheavhrkjloujx[mhehgywzdejsbfuwey]pkrgqmqmudayqmyv
+umowweqsyinygfe[grtfniugpboogtgpv]ttgtktqopjsywulprqx
+csjlkynrlvbgwlzg[nsvnttchrhqipcn]xariwkhwfjfwehfswp
+cacydzczdaqfshhr[jzgqrfcnbqshdzqfnmo]dnlkizppyuvnyrkuxce
+kangosnlzmgeaiknm[bfajqjeohycglxswlra]tkqftnbkfagagcjvi[ovdubgbwoeqefrw]qvklbmsmtzwxwpuywel[usjzhltvradirrddsf]jmxnrjffssgjlfivba
+snomixyfcqkpwktt[iyxjqorsjqjuunteqt]tdbqjkrsdgdlyelcw[cfebyskawmwkgraytn]gsqrexnbkrwpcmyrft
+rafnquyxsuwvjgoah[bhcqlwyxonwuqowofp]mtdaordhobwntkco[rtyupdiocyhxkfsbv]cunuqryocxscununa
+dexyukhtvmozlth[omyonfjhuzikquoivfa]abyszyboigekahfgl
+cfaamntsdtevtoou[amuzpgjthvqzhdqn]cyadiddxurfpdakbwk[uyqjkkyhdalczourhr]zxhnnyzahmknirc
+zoqdnxwmhiwrqaejekb[qglzymehadgnhyoaf]whivbjvmjxrrrcju[xsiczgkcermegfxz]yrqdhyqsitcbuwat
+terznkuheuiksxrak[mvnbiknrfabvjwdkxn]cwddjxvgmetzjrkzea[xziqxlxbnvhkmqbos]fhxfhmqgpuadsubh[zeqlrmsxwvjemyw]nsfzmxgouassmcs
+ybeezzeojemnmzgcpdl[rjzpwdnraffmmqenf]bmsevuoarcwfysmav[yzvllscuulqatcxvl]vlmyukjcnfybkwdwp
+fnoorwmtmzwvwktqbo[ajydafoskqgtidoz]rkvcabzlcpxvxkjlu
+faikhkzhlrclghufqs[flkmuovmqyqnkfaf]asunufsqzdxoudiaxxb[hadjusanacyvrjedrms]kecxdaaazmwrysfyqml[egajblaxnaynubwlkzq]wmjxhcmohmeoyoukz
+lifjpuhsmpcwminulbp[ogsqhmitayjkvhxn]tpyrwhmddljxsuf[yvbworbmupysruqu]xcibjyvqwkwawzdfm[euriftllunddsasont]wnpqnncbbjrnzzwd
+dtwtsjecebuxxscwdej[gxutszjzoexdwwpxfxh]qfskmyjabemuxxl
+fjqeekfbyxrfxhqj[udaboiljhhoqfgv]vuoyvxfoxuqtrfyu[gdykotdfbbpwmie]rgszrfktcxyuhvkv
+xyqqdpygmeowmpkzxdd[bjxnjajhhffgsjtf]beeakoraqizrvllo[ttbjhpxiaijuyfunqd]hbxswggfvnjhzyymmxg
+srtnhdjdniufgyhgehw[vribdcfzbbuksonm]zyhzrsjuveucsawn
+uaolqhuxfyolzyzxesi[olnhuxcyyzywhqjkgcp]lhwtpfmegcpmuohh
+ztblwjazkufcifqu[gqwhahvnajlciqlab]yhloiuhbkwzmynun
+fylubozznhbgqgl[jhujcfrttvwsynxbv]baddxoctavloxqy[ymvtyrqgqmuedvtviis]iunkknlhgoauhckknz[qluvgkvaqhrawtvvl]gbjvfrdirkhuifrss
+xqujempeigpgeyifi[gmuequihzfuppqz]vtejaedoorvisdogx
+fdmbfvtxctvlsqpdg[ppfydrwmxhonatvil]jswiuniywrjammkuq[tcggdwprsapeogozg]gkaplvlfqulngueiprd[jvdyisxwrzgzanqjnby]soovzbtczxxxfzpj
+mlmotkwsacuwslthc[dopkkfjvrkqlmluai]ziyyyuqwvtjieocc
+unqckrsxtyadoeup[rcbvmphhdlbwbgzti]nxtsjyxkihfnxzgx[jeznsoqhajzekppvfgl]xhvbdrqswazjzsr
+qzonssvnqehuodjm[owetefyiumtshqqa]garcprzmvvujvlu[ufjepcondnxhcraknvp]sdwmafrnzdhabbr
+htlwjrpzxlqzaqyhhj[bhnrcyoqmpxkcwtoem]mwvnohqdiiyjgmr[vpmbiueqcsixwyxvqbr]ddqbaqtkoeiepkx[kjvlejrlcgogwewymqy]azlvqkhibkvpvgts
+fasqsusdjdurhzhmxy[beuhgugmlbobevxa]rkszfjsnzbqweycv[pobeqlhcuytqqgtkbp]ugmqmvhkunncokeqv[xjhcfliwmotyktlqaz]kjkawayleopewbhamo
+gjukuffemjaastxdtl[enqvehxspvgyaxtqo]fjtzivcxhwmgsgcf[eldofthqgeifmmjpqvp]pzmrzoktfngiatmaasl
+evswvustuzguawqg[eekvvswhthiuitu]gnkkxsqwsofsoioaan
+slbvgfuwwxdaekfjdz[nesgfzgxxsnrgedtlbr]csmhdgvsclsflwxq[phukwbprlliaewbqjrq]qqnfatzpalhuuchdl
+fcichhbnervkoyzgou[jqivwhooetniapnts]cmlbezxzjrgotgrkv[jwtovryqdnyurgdlh]iqrnakzkquqvlud
+twywruqrxmlimxi[cmbuaiyisjfucji]hnmqevywynqocxi
+uensckwobqnhwpmy[laeyyzcrkqwjwwtb]ztujdcvfodwlakjxa[hsnxusbqwxwijgveqo]dsflajtdxnptmvnm[zvrmewhwiyqzrdsri]udvmuglxpkdnmzbbkj
+jzgevefvzpmbnmwbuzk[iyncfkotavwinyt]efxtuwuclegiaksqhw[drfnvjygczdpflhr]ecjtnayoruhczrtiwa
+qxchkvrkswtdgxesbq[zozvdyjglsajwsymn]flxwmludxuuufikvwcm
+bvkauvycxhsfedi[etgucuislswuesfqudn]rxppectbqdozxmjlcy[bmqpcoljmvtifmx]dbdtweevpzvskqyefwl[uqczspdraplmucwfyp]bpufbddjskedwxltqgx
+lsccsgszfttmtbm[gicwhuzfyjzphptd]mktodtjlpwawglphs[dfsjbfnwfxxinue]nldonynzupojalctsds[hbimwpgmfhkdtedtig]oxxqsccdbnpzeikwj
+tlmxbhbpdjnagkuuurd[fxcuxmpnkvimfevb]fmtxsequpqgukvgo[cvrjsgzyirrqvgag]losjdyginsppgle
+acealhqzrrbnskwla[kpxiuidwwzswvvt]tlehlrejjirrpelcpvs[hicuazvidjdnuozqg]pljbbpztpxzqubh
+qvgvyjzkfkqecyfi[mtsswvgnyvbjkbdd]rcfpqdgxtcexwcgevf[jnutyvnxznanmkwbor]uitbdmbrvsczrqtlzb[deiyfcsvhwqkjyyraoh]mgsivfzvqzwerra
+xldbwzdplokritegpot[dkilyibmiqqhittcbe]dvolajbquiegpyzm[tiwarbemwlmwpty]nsknuzyyjfhrmaf[yrutylvvvkxpleg]dempcoygehabakatfsw
+xdtbsxcmwlyyewdci[qxtgtieblptxcrxjc]lfnfzcyzctxxwpxanp[zakzzhdzbgdmsuhu]gtrnswhdqhuhmkb
+jiwoxrumnfbjlwkmhr[puvnrkflogcazwtbc]zlebejqrzictznzjhj[hxbveahojvbdqaa]etrqwrobjqrxdyqzdw[qpkcavbviaajsbzw]yybkscfwkadoysg
+eteufxuerkogooqtds[tatatmxkqhdvvwwe]noedcedzspeyqfmmd
+cthiztqbwlgffekx[btugyjtwojnqocop]cpfwsoehhnfftbkup[rrcurvtjybfngzr]bftefflqsiacppggg
+cpbomncsxcooaynbyb[nmnxjillbkzozriaic]foyuenlrilyaaiavd[dilsdxhwvvuiyrpoe]jlnmynnwhggznnly
+emnwagolpfpzcpps[uedrxoasfqlnnynlhtb]didvjcpvkjnxeyxtvv[xvrtztsajljmixymooz]zuayhoxmtftlkidfrz[rwmzeoprmwvixth]occafpfaspkktqvsdo
+lodlbpyfqlpambnb[ujkoamorycpjdahia]fzcrwltfqghqbhvxn
+nizwzpivrpafchpsxh[onyomxlcatphdydyb]ydydlvlpsnrpfeyz
+bbnkumpfxywuaju[urgqyoeidnzcrhebv]ilnwwmvvjgpoyvno
+spdalcbxoljjsnnp[fztxwiuercdzikbbk]akolwywqiysxpubgu[zbwzwtpyfmicoch]bpzsdwoconslujf[uiizmxhuylhilnor]uhrqppehrrcztkfmkv
+rgddxscswnskqpxpan[mffqrbysmfatawfmxg]nbkentnrqlfynyy[voxcdqkhylzufrjekdd]voveqepyrzidwkscp[nfjvzhhaapnsvlgvq]vexwngjkdcxbwkidns
+jpntpuayoxlduqww[ezrqmpfomsfilulevvy]cjrjefmcnbswkrn
+mjfyrlfzelvjonnn[ulcbojuiaahlopwk]idenqpkorklddbnaz
+bhgshnxhcgbestmfnxv[mvebmbvioqohanjpog]mntsrtzfzurcnqxpk[bdcahsyheihtumq]eickztygasboinu
+zlplqtceqgefnke[gmqhyjmtykiyxnz]ipfqojghtbsioksptem
+lbbcqgzfdgerelg[wwfafbqlxcfomqyu]watztxtiqwqrgqzjxan[gxntmrjphcqsuvbygab]wirbojjuorwzwudlblj
+gjlljqgroftymgt[qbgnlxbwcxykipz]iihojyaziefwjyy[jnsmszgytndqggahn]qzgxgpudmhmyktg
+mzujymrvymlfuefmc[lowenpwwbljiuaex]zdoohchvifnhbln[kmmdgmmzpajpbpses]begvpvufpiiknphagyl[sblceylkgsmpmkkptpj]igmhiscbofjridkibs
+evlnogsloknvghdj[yxdrizzmnnpledj]mdphafqgsjokxfxv[jbjwluoucouakaef]iddlilvtxhmmzvhecf
+xkifittdfqhyilxath[qutqagtwjergmpzwozk]ommacqhnpzvalxyyowc[hotsxrwsqfgvvzpvn]xjpysvdceyiarwla[pcmqagoxtbiqvnk]xjyqptmlcqppwvun
+fsnqlrxepbchttru[wtbshrnrkwfipibyd]ugokorswuuvhmionq[tgbjfinuwfidoojqcb]dhrycpbrbgvwkqoa[aedbxtjjmhbplwhtkp]dipkjoflmykyisfwh
+qjzrvokvqtakxgqlhcr[xcsezvnaaqddnscyx]yphwgbeecgofsdoqkj[nzexfrstzntliwfk]nmjjavothhltpfzl[tqhxmitysrnznelkr]xzrteqpmzxxwfjmlm
+pjuefjhjpzypafnrz[icmlfeeurgsdrgpher]filoaxijpcrlhahuro[zldzwqaxyaazvbxnqp]tkomnofolyeclyxbfk
+ypcbanszbtapwax[yubwfxyblmrciwhvnvw]bgjciiddgwsgzqnzaue[qronyqcvzbelsywyl]luzqvtdkvasryrk
+pazfsvlvzjrhffpsckz[ymankdoapvwotrpjm]hygkvlsmknzdzwe[nmmponlmpmyecec]xlyouznwjdsvfve
+yoktdgyjyjmxoppisp[stjvdedbirzwqtpkb]qoqkdqwkpprxztgfc[tzahjyjnmnekwyokbn]mkcaateraenzzfs[cpgyhilznfdeyxrbtf]iylvsbxcjpflwyaqjde
+rvdotzpukiohsaz[coziezujbxmihzmjetw]loneukwuckqfvqkk[ynlwusyvfxkihdo]lezljajvdrepwjtxrzf[pzaxvbabpytdtedu]kzypirxlfccdorpe
+wncchvvpgqpgsfwtkx[jgxqaowxpuyccvaof]suhckeyiuukphsc
+bmmddzmbntvifwvjqke[kthmploktlagqdcp]yshronrwwxaumtezdwy[wyayyzswlygqljv]cpipupwpvtulpwmhfi[nbyjveyambtrzyg]taywpwuagvmzbyea
+dlzkgjhjrxhnvcu[lqykoztnlcoimougo]ijbtwesjymwjwtbbp[efdwxnuattyhuhy]zgsccjbflsvyskyjd[hndrparcadyfdmr]pkwhspnypwejvpbb
+yrudnkhmryctzxj[myculukcorfjveashn]nwqjutgwzwtrhywn
+sirwvtfdtmwlslskjqq[umfkwtinqleedyjk]krukyaewjyaxeddj[houzkplzbpbwyondki]vlcccazbpfsahmklsn[bcmdxhwrdchlquvvxtm]nfqvtnzbgotzxntk
+jlmjrojhqjwsjjlfx[yfpgrcpmohvwhkehp]xynfpofzesitrdia[juhtudcvapywgbirah]yabzjurgykvqxngvd[dustqrmgsyxfflxddxg]moqtjnsqgjzkqne
+jjcphhlctetsmrzqsdx[ptzjefvylkgmgdx]xjdygmcoebrmuqimky[gdzcbodwmtanfpjv]yljqodfuxztqciwxlkb[qehknsdvgdaugohfbrv]uvnjkrhhqhdgolm
+suabenrfopqsqowfvb[lhtpqqyzelakwktkvvp]dfpptubztvqslbifnht[rygoefoqzmcwipmedoq]fgluhxtmnxivcjb
+ekrrmuecrgdhpeotivv[kxkzwxjbtaizqpapb]hkxxbqllizgoifd[ndwtymhzmjkwhfsqr]tkjeezcokycysbq
+vahyryyfiekzmnaghy[dunuoyampibhomw]fuaolgtksarnxqzgoat
+opqrpddoyrgpvkt[xtylkrcogeirwiwjff]qddhfndaqfjyccjsasl[kdwqztteysjdealp]jvpfwepmuknsuvj[osyjycjxyxxhgwtozzu]auholwpmxhgvqhl
+finznvwrtmxdkynqq[znzojlzkdfoyeqkb]fnjmchixkxmxnyb
+gncexwppmxqmkhbhzw[tgqrfrdtfrfmfwegl]frqkfwbxrdlfcnfaf
+mgnaaimzjhippkz[afphuskevlwqzleiodn]emvyyesllcpoexkxwkm[zvfxpqmdtquznpumg]iegbxiqmjunxkqmwgjh[vmyqsqvwmbrpyoqyeo]yddgqlqdekpjdamz
+sqnxywmlpdbbuzqdny[tnljzbvgduiqwtkopc]cgjtjcdqvcrhnlrr
+pwktmqciycemwmznvg[hondgdpjvhllgez]zivqgvlldyvgdggevtr
+mnjcsuljiknowfdt[tnqyexaahpngwzxd]vbvowakfzaiwvmvmr[quqcepdcnxpfdymyby]iosgerilxasxtlfo[vgmkhzudwsahzfhlz]sfyqfjweawnpedhpa
+auzadgvorufbggazq[wtmlikewnvpjxwl]pzwshvhfhmvhpzn
+chzpyezzzomccxuy[klzfwlherejbxiknft]mepqrextkfdsymvehyf[wntgvziaxrikkmpe]vhkrbfpcwxiruuunmog
+fdhxyylnqyvixokzws[rznpbyrsiqveane]awaconkatxjrzoyqny[zubifcnqbeguvdb]pnfgvufswpgouet
+gdplslxmkeqrgpxmz[jytqvvijffchjzdwio]lkoyipmcdnvrobi[odvxcudnmizlalllpk]ndzooooetllelopjq[yxswnbybqkmogpxqxi]hhsiadkfchzmirqbe
+nasgwopoiadqpopnrhm[zddbvnqepjjpvyns]aygazvcnfsahyeia[qyxrvgubcntrfyb]dvbcycyrjglftqip
+scxtjmiyswclsrpfei[evcovzgqegkabyoj]oawbgsmtomjgrti[xewhzbgjxcnziin]vrfyzfdadraakih[veeypcuhjtrlqfowk]oyyftetquzaitaoaaw
+csjixpasemetnrfr[kttugethsxnxfvx]yfvtbjpvereefqqk[ejitlxyidfdanuhn]gnolniwucdhifqwmwhj
+ctrzppadihbcdxudtac[pivsitnhbimfsmou]jtyycbiaszrwrdjs[hyewishwbdqkztij]vhbnhuxwwswyhfeo[gxnszwutoqkeqrf]ldrzkosuqpzdbwtvfnl
+oyvvyenuvstzikxbjce[xzcmihyeisrgffhni]ahxuncdxhwfyrjmwgg[ndrpukceoakygxmx]ihiodqfxvxdovqjz[krbqfwgtncvhlqohl]oyvbwcqvcmnjnayq
+hstvsaoodhudeeraito[tqjnoxrjifgfniwsgns]jjqyywgpzztmfuyufgk[eegjtcvpnwbtxdlhxs]diraujizuvxirqg[avmxgioohhmrvbdfexf]hcicgciithjpfab
+guvkwabdcrjmfosxrrr[rwzlclrvprmdczgn]fiajsksyzvriefwxnon[crkryjxcpfwkdiay]ktmmtsjuktyxezk
+lqhqiadjoeveajfow[piesytfyuypdnupgkbu]bcxjuyihjoupntop
+lvcibleskyhgtpjok[kocymbjktkqgknggsa]dbhuuykasimgnmboohv[okarperllvkzvumc]ceyyisdbguwrmoqeynj[fdanqvyulqipsrheik]ikptohkxtqtzvjmgu
+siewppymykincvgi[qziquwvqdandeqs]zklhkhtusfbxcfke[jninzudoqzyohyjnnb]jnpphpcygdyeapndhph
+mqqkmtrfuxsrblh[fgjebegbyiskwwreznr]ejnuhhgmcpecrdozqk[fpalqibdtrcsfwrzwcq]kqpfqmuniiqfodatmq
+ghvwdujlylpycugan[eizafobyeauiaah]yaovrefpkcwrzialc[isvfdvszbgotqlh]twwumygawmuvgdq
+huzpfcgpkjqriwgw[wwfnkoxpidpovtfqqms]ezwghdwtxviubpttfz[esnueoxpiupdnfch]qedrgftkgeajzihb
+eylwwmjbkagljlls[wehomzjfgwrnqkso]ihgiziijkisblrjlj
+cjrqkcwraqtnqzpqhe[rlfsrayecejbfutd]diyzyuauaykhkicopz[lbnawmlieyiheut]wawrxpverseykyblnmj
+tyhvcqtbzdnwnuswbtb[brbsvmujllkoygmcrf]ssuklhhyuxxpnrsot[ilrnjgerrsibiahxb]dxsfzuyxtbtuqhcfk[jtfttgsgymzuaytbczs]bzkhccldohcveqxkxg
+wmxhvjtzrqofvqyq[gtqsuhzwzcenscxy]tiijmhjktmwptpl[xkjvinezorywsvgd]ourhlioqvpbruqgqwbm[ripdkceifjkebzzxrmz]vyejqgupwfzqlzk
+pzkxeampgfrxvkjwmvx[saxmfjcbvylcmpohx]dtbrookfdueiaiaa
+haibhyxjmwuvaqsqi[mqpydjhhspstfsik]kyhqgiczyzsjdizggfo
+hyutrxovudlcgtqaasl[kvdhdnugzqqgqrtsy]wjkjumtxyjtbqheviy
+ruhifdjnynmaztrd[umltrgurecjqdispa]jziknahqzbwnfaf
+vmftilsfiabxujkooz[vhuwubvqoswquse]kqrncdsyxwcqswtt[fsfotdrzanwngvf]vmcgykukxchqvbzqy[xamdrmnawmxwnnh]gemqmkhhygpnesfq
+tpfqkyiuhgsltihph[kpmygovubzuigsb]lnebyuiwfqmmqse[jutxvzssuzgrawpgg]nzvgiiwwbohkmcfuwa
+qqzgpzdgqomdudpe[doaqydguparcbevug]bdthytdnxltpngtxs[yyfajendprpdsrz]xvbnyllrvrbhtrrm[fhgitqxewvntdqaje]nddihvrjhegbvvn
+pinazwykcazurbz[sshvvraelgtrfgf]sesgkbttlqdppow[xbviulglabpfqjxix]qbepfhuupbjfhtrtgb
+nyyyfbgdbctjxrlsm[qnkjtwxapqfahaxfz]ynhenrdnuiygrsi[acibrssqmqnuijw]gkktazvrgsbcfkrgnlv[heqzhxymrbkyatmmp]npwpezwbiozxuwj
+jqdfkwpptvhyadpunwv[ifslbloolcaxrmewt]rzxpslpcbwdwnjgjmwa[eudjhujzjvwwpxhre]zssncqczbrorpihra
+wgrqmickpndzcsxnpsy[orymsnwemgvgdvqc]zddumfflitisvohyx[lhobkuefqssrljzsxzz]nckmxedsmroyysnrn[zccppgwxrxxhaunb]uyjmcppwnakgxtjroh
+xuirxfixfstoyav[txtxtanvbjlwzhjy]tzxucltxuiqiucmzob
+hqbnuolwklisljo[ccppvwpiymlirnpkbr]pnckxiikjkmguai[yzynhfcpxpaazwrkt]bxwzqcnfyzsqinty[fiochkeecjbsjckgt]gwebbynmsanvompl
+laadegnpzyzcuihz[zfattroimshqjstf]khfqzmasvpzehsd[ngwosqahikiqbbnv]sbmdllqrgaiwplbffb[ethsxhjrrlupxsgmm]vqywfmdgzdvsion
+nuttuucwnbwhyoousle[xoqhacnfwnnjopnhy]shxrsrcumxshluuj[opehhbczseexgtyrgqs]olbetjgecbsrytnzjsr
+wpkkpcplocnofso[xossadjiikfergczau]qiwuqiphcppdsrutxp
+okzxvxmfocsyoybgvs[zusjjfchztcjrcy]vpiipcrozcdvszecivv[kkglnuxxxpurhihbhxr]mmqtmmbuprnemdrpbdq
+niphkdkxnrcxhtmnr[jryypjuaaorivctdt]ovrwgrysibigupzm[rxvrnwosskfagouo]grctrjnateekgzt
+feecsvzxdnklcxlfy[bryrwvhvpgqdecftxhj]dsplaxuyxllravxac
+lfgubkzkoardzdf[qiagyqufzaggyaqb]yppfmghzluleefukte[jvaxizomwbofkvledjk]svdgdodidnfctqbj[ztgyesrfvsdhpgx]vurzpbpadhrdrrdiza
+urbxbghjweuedbtoo[ylydpscyumfpxuore]ssbkrwxjmwfwjqaljt[uwlwfrvqhozzerhtoeh]cgnzbzgqozoiyta
+hienhuwpcwfzagmibf[khfdoplbvoapbgbj]uqtsfqxtpasqtuwuc[fguibihgiebfiftg]jgcqyaeharvpvyy[cxqfeehtfnfokke]ihtuaduxkbjugie
+vwbsvafxdlwwrizvqo[uhzrldkjlgudrtjorlr]azplsihnwmvcusfh[ososullwghqsuxm]uhwdrftzhfnmrroqp[rdjlbrqexvdjzol]sjmefswddwxnnmnwi
+pjdujpcohrebenyig[dmaoaiofisjxiedobgj]bddiakgyfryqnye[aeppppahgwqdgulj]iucspvoyfouwezd
+zhkzmzxbizaiadjmohb[lujcebxtusmzjnfggsc]tjlquxvqzaqzpcynsc[yvcpypqprtubhiskq]aeunhwiwlifwsiddtdd[ybtelokgzqtdnvbzh]rsysmzmnehjxazr
+ciqrfxmwewtudofpi[pqwishdwbtrjostexu]vkygjcmbnllgtnmyjfs[zaptpojmomjsvqkme]jyrfxswxmmmhdyn[ruprqcsvyzmkeeu]upmqkqfsyquakoltryp
+ptvvimfpvxpdvqxnr[cbayjdthgudlsfqv]brgbpugjpulmcet[vzxqjdzvvujbumsr]qscfpzftpppwfibgs
+pmpcdmrdmricooy[wyopcogjkngqewnyzh]cpcirvlqmtgrjoso[gzpklputpgckxfzuwx]eilnrzxsajqinlxpzy[igkgvmaezsyfoukgkjz]vwrrhaemgouxydcmrom
+fbwnbgvlxrdsxcyzvey[uweuxgyvdzucqbpee]xiayhjagtdzgtxlhge[ldcgqzmbaevwqkvut]ztivhyevetijjby
+iwtqydhqswrbcqvkxqk[ytzedtgeyocjray]kctyawpureoyejf
+urbtdgykoerwhomda[tcfwziwvqgccvskcxnb]fevulnobgppmxruzw[vwbgppwwwqshlko]ioatlnhkosliptztwoa[aeavbhpnhgdlemsox]owabiqszcligpdbz
+tplrqokukffrtmlcga[jyuxtvhfudogzqx]gjugdhbfmwxnjtmrh
+swbwpexnuxtttzhh[xspyigzqwuafmarjin]qellirwonukbbvdizi[rkkwqekeufbvhzu]kwuzsqbisvinzxq[nfgwvgerkfwmgqgyy]ozjbmbifoxiqrgemvv
+geibbiqamcspqflbo[vbdzzyorxegvqrx]rktukmmbrdynjrnvfkp[djqcdeqfeydxadzbkj]hqijcjkzfbturfhy[xlmbymbynvokjtjrclw]ssbgszeektjtjabcp
+zaqgfhshahrzkbf[gwgqdumlqyhzbhbfoxr]bxsxoyjbvcxqjnfhwp[kxchpftippbfhmtmoi]ecozcxdwhecuexkf[ojtinjhzgcvxuxen]chgufqbtfczbvqh
+uwjbtudngtnhenh[xmszyblpzsxgwirizr]qrlknnfyxgttgzlsux[egetldzejvwkagyk]dcapecjizydleytc[ohboyhszqajjzudxfbx]qavyxwvktwjjmyx
+srpwicpxcbrydmvhvxl[zcoxgycbwkpxoyuy]yfblbajikrltjcm
+biqevzvvrqzgaffnhv[dsqfbbwkjeczlbrnt]kztaqzzzzlxvaqhcv[mcaircppwyjpyondde]yqsxkrbdcdxrwvjsgo[fvtjtxwmxlnadeu]bqhllahkduvydrvb
+ukbmjszvndgzbuq[ckmrzogujmemwsfwh]wdscgknyvtgsegsfuaw[mugogalgcsllfilvfv]zshfxqsdnmjebzgdbcg[erkesgwdhfgpfgrxhro]yezguyhbkkcdnphtn
+lmcmocgheniqfzeh[qomoqrujzxhiicet]qplxjgcfhyhmrzsnif[jodkvnzlkjtimlkr]gevkbeqeoxpbmompr
+fkitsqnkdbckyose[rnjpqsplojfzysplipn]tgjlgivockfzsnu[qmwmetgfapieyyij]gzhptamokjfcgxwr
+nhaccjkfkzhqjxlevlp[ztqkwewvjykqsmsq]qmvkyshwzjuqeqgv[vlggwfdxikilhmmyz]ogfjuhopnhsomtuupn[ctyoshqlieonmdainlb]yugmxswctqtktale
+yxbeuvultfhddgfxmkd[auylpdijopmthrq]dxoibfjfqgkvjui[vxbyklblajmpuvftws]dyfpmoiwlgpdzft[hpkzbkcigqespcnmby]fvvzvkzvcrynkwkhxo
+jjshxelsbssojrjj[ivrjrnasyhnoxmy]xkpwivngxdpbfkel
+tyfsedpncmhyrqtfgz[yjeggvuxhkgyfqxkotv]bkmhwmqbdhbjbpbya[hzxelmrqeehnyiot]chumeedtoybuadxhjx[bhskcnreqqkzriifpak]raipqqoxsewtwfbf
+vvlpzpyycntnurr[jthqurhuorgdlgmtcfo]mflrxkepbinrwldxkt[mutqsvtyzainkzl]oghwiiyeejukmsbdivn
+yunriwucdmubfnb[chsacprfyhickht]wiwxpaiqouzqbqn[pivpthswenluzhuv]qgzsiwitybdzyha
+wzekjsiosuxisuogprm[gsczvyeycmgtppfofp]wcjsdjdvukwitiiqswe
+xcexnnqlzutjelywcl[jqmgzsbaonjghgdqes]euslsftzmsrewvtygv[qljfgeahxazzlokiol]jrmgipsfxcxdlpkvmq
+aukotsjedvizsvki[pbzfgdfkdkipigwmtjs]uduwxmhfhbgmpcllnf[xqqxhnslpvmuxoldolm]wxsdpxxmcaljhxz[emxctxhghajgmeeqk]ztpoznxoqsqidohorpm
+pguuvxbikezqidtdurn[yxdjeqvznowhulg]muodbbbogoowckahla
+okojbvhagwjqahgrrdg[hycsxepwykzdypwi]yomtukpjmggiphyjk[culvswlfcoeuaqcimfq]wdrtcuygpmobnbwyoqj
+mzujjrundkzwnbj[qxnoeqduajlbzgahwb]ydeomokobxpwkyrzxf[gpildviabamrzjdgl]elokpqxifyyffld
+mpdksivufhrmiftntyc[klohhshgiajnhyolcm]dxojhbryrmjdrbqf[achjadgbqremfnln]esfqacvhywzqvlgo
+dwdewjxlordmximnhc[yhpwdgvfznbqjug]qefwqjonyclxccnhxn
+ssnfdxtouzqeruefim[ptumstdxyfllldiu]otfigtytzmgyvqsxe[vgtvvclfpidmglgzcup]njpcrqwyskhajmb
+wxrleulxjbkjssjns[yrvfgegncmwvdgfrpl]vtavixuclgdhjhwhmsh[rtqlhysweljhuqet]kvzabqkrvpaqegu
+tzdyticygcaeykyetwl[cxmigrcjvrnhnewd]udfdtdieexkukpkzy[zawjrmdumuqqcoou]osrlhnhlhmqvhxg
+rclvqrclhowiewpb[afudkrtbhzghwbcvkr]qdjjbvapbhksrjxt[atcxukkeqxgbwsfsem]vthozywiqhoyozw
+fcvwlbrcafnwtfkwl[bsutzlujekojshbsah]wpxtndvqbcwrahxiosq
+utckybdjhftkvzuk[qlponosvenyinmpil]mkmpnlhjwkquokgf[ogtzeotwzkmjdhoz]ehpcitmbqyahzdij[agqojjcxeartdrsncnf]dqhohvvtpgakncpl
+kzysopdelhivngw[trvtmyvevtslrvp]qphggcnojdcxper[yrpxdwqkodqwwfpquhc]ikrvkfrlvdvqzkhnvop[qwscaveveqqeolhu]fmathufisqcrzzvqkw
+spcwfvqrcdbrkzha[aacdfqguimzfxnuqc]vfjayebjpgkyarfwuod[ooejtemreiraorzuvkw]sbrgkqfyzrmowee[jguejbpfuatokoot]uyffbleqofaudlj
+iuiivvjgrowzxjzdwe[tipvsdrrvbmrnkqnq]wpxqhpqjejxviejj
+gpjhvftuuheinlmsk[yfgionxdgbfqodg]uvlgolalqmssslrqrn[xupwjjmnkisumruwg]ujpdcjhxrwuqryfp[dloaihpfoadfqpdo]ahuhpmtxnyibkaahe
+fybvgfiffkvwwycnivk[dwdzeostavtfscfi]unnydzkcjwijumjdbvn[pomamdfqmhocxigktg]iaejpuirmpkkfvkejj[pivxukllzqqugad]bxouayahmwtxkqut
+xdiuvigyctdfeaejx[rjyvmnwzclqxyhnno]rptychqruugkewjlbr[ttbftbvtxgjbqkx]mrylgxklxlalaeuvz
+pvzfosmraqanadbjzzh[tpdyvjvjytynaonz]xyceynlcrcoamkoyggl[beyogipinpnhdbwegxk]nltqaqbofjfihfo
+gfzfnhdazwovhqic[fbucazkpmigvubskbo]tfingbmegctkxbnei[qzzdlcbsvanckje]ydfrszjgtczjfwvfbzh[soizdivaorxfooy]ykibkbgwiurbmdvbbr
+myghtswolcjafngtf[zutfrslrmtbxdzpzrbr]lqwqsdxcbzmfdhebdt[eaphviremcedoopgotr]klqdporitfjgvfdcng
+zmpfcgnflxuqojtdzz[npdnxrmuyupjonu]dapxpbmmdmgibovzotm
+hsjsadzjikypnqwl[vrftvjdeihxpipdi]fuxpptfybkuqfyjh[srrqywcihpnwwipix]eldexczjxodugqk
+movlksoriejyxitxg[iaknxaszidebdyfxw]yysakcbvsslkhvwb
+rmbwwdeselsgwowqdtu[wlmcyaelhocbtxv]yqimqwiydexdpyoy[oezsqbrkwrxxzti]rphzznfghptscxc
+wjrkcdugygvotpovl[bifcvrbecoinaniafdp]gpwjewmcfaefgxlghsm
+qthtijcolamzmodd[gfdgnvtlfuftsthhb]kyueaoppjvhsmmcpwn[iydmuycwkbmgwgf]bpdtbvrsxighdlqyzi
+crtynoguhgrudlds[ijazuftctmjhihyg]zulfosdztpdpcsg
+toqrbpaosoikfdj[guigmlanmpgxecbf]wslmvwzngiqhpovwzl[bzkjldxxciuinqxuaxl]pmafduqjiwelgrgqbf
+vmqbwevkxcdbgrmtga[cshtkthlkgkqprzj]vbnpasrruwnckpirekk[egnsvjilwzsigenp]boqzfygrbptkyyvsy
+cfndlwialijdidbo[ncypuoyqemkzhwoio]mebhpaowwzrzfarmrw[wgjkjwbohgrovurdcf]tdaitjcszcmisetz[esfxareaykafawe]achdtioidaxwmeguzu
+dwelecgxyuvkntw[hcojsvpvyhsjezu]ytdjhxbjjjzmoxl[ntxoufciycjooraylrw]jsguitaddluldwku[ashlhstdjokagrfpcjv]qhkzhcdlqtgibdlzaxu
+prhhogdhsokjknsxoio[fykuuabtpuqrbalv]vvyhpipdwddipihiz
+xevwylfessbnioftxs[cvlubehyimgfkojldu]elqdlwnniimpsdbonu
+wbfbgkeoweyrwisjx[hypdbiwtphepkmbdns]kvzvbqoouuwqfafc[butwiexkmurmlqxnlxp]vriycrdqonbbniewds
+hjjreepqrxmrqbru[ipklhtqsevrqhilueo]vjkuyooudgwwdgpsj[bvtocxerejwvjyiply]atrkpzpzwoeoepnfj[dskzailalbbwgpx]qsqithvqbksqsss
+rmicaeebjkhedguaifc[ibtqvtfcjjxidapofor]tknwydhzhvxnlmzkuzc[tapzhzqftotqrxupea]oqmetuqhmbbayqk
+tsisneonoiivusbbr[yyjkxfjhhcexydhzgy]ksawozycbypmfwaqrmj
+dbhzicyfmcmemujkavv[cyyzbusshtktlxuytjq]jqvoffeifohsjljfw[ftmvnjkjszltbksva]scbbarilanrtgbqgp[xcswrqudixdbfetmd]oerxhemedytqribhj
+hnvwwadnhpiqzpkv[zozlerifsscpzjnqys]cysfhjxrfjvdzwwp[trflckrkwxugpwsyw]vltvkkfzqjwzpyk[qlxpwwgtqkqdpkdkqza]jkhoecssazokxfmb
+qruxwdxoktymrlkoduy[znhmihomcayftfi]iawvdksycxnufbjrct
+xkoknpwqhxiwcyskvn[pelivfbuweedqcuq]aanztpskjvvzlza[bjxzezpsagcgeyxifa]snqbrmqezeryvdb
+jvodylhbqwwiijcnymx[iivesedjbqrdqqhqvpn]jtgdnsvhdqknztknb
+mkdlnadkgkbtgvp[nnkhnvbpxoufuacfig]jqiilqtzqropmlxsc[kqkhzwgjpzpinaetnl]zozxleefishfngcut
+plpqlkcayycnmqgg[srqmqmdornbtapklsa]odegnymijiqxfilwkm[dtdaizmqpvdwwrtc]hgquqndfvfhihcu
+giejjddslecykts[ghjozfrjgyhmabf]lsiybqrbkmcqyefhv[pzmshjajpjgcbhneq]ljuhamojviphgceydd
+crqbdqgrbqtgzhe[dpsviouwumjphhygivq]ugpkrsusfgbvzckzxra[izanoqmcpbrqlbwb]uqieftfzzafyhav
+scdhccmlmbtewnhk[ujyejnmxsxvwqiz]ffzgxtmsuvhllqosd[xyluxilcsxgvcieiaz]ljohpjpzvfynvpk
+brcgbwwhkwsvvpxxssk[euzdkcxqaptnxnrvavi]qzxjsccldyywodhie[kcyaexzhlocdbqwvnov]ckecckpbgdynsowa
+jkxcumgjssmfevqfjyh[awomrgxjdcsmundgax]vbukfdztnqmipzx
+pqjjqvhovocfxvtf[ygrdhpwgfcjsadv]kituhoohxudiehn
+pbfgqgpgmkhchvh[aamlyufgsiqomrqd]ijpgkdykzqtvvjwog[hthjnricdullzfmpasi]rtkatzcpgsuxdqgfz[qudiysxyalvwskxxyo]qkzageunrxavmzjvj
+xychyhexbshcocf[bcllbjrhshfpjdn]kqmvakytshsxiww[rcxmrqbahpuufrejx]bbsdzdqgawawxgzpo
+srjbwqvczzuazrukca[rlcrsgjwunveouh]qzdpjacdwfzlssyxs[zhdfdosmhidpshy]zoedlfourwcznkg[irkyiphmiftygrvywx]mvzarvhbbezltccnr
+jgqzrsqsbaeukqkzgu[yrsxgxriwpyrjlpvlk]yerlfdummxyjxyhjogs[srtpykziynkajtcp]spostopwxfdpasgv[wyxnlteivwelaysj]nilrixjiorcdoujxd
+vtfrshcfcxnqjxt[qkqubplofpdttcpz]uvqsxsmaeswbmflq[pmqoilwznuphmnohg]wbowwnpffruiwxsxt
+hcxmpqwbwnuddxrkx[abqlynebkursbfmez]aakfxjescmydauthh[zbzjjailduwjhce]esjveeultejuzcuqgzy
+wyinzojxabrhxfrng[begmgspqgszayonfel]xbshjcyftuqfdhdgpv
+vuyhwnwrhhghobnmsso[ypxmxcajtvwbzqd]mxmglbocflgqykybs[vroinedksynhimkfhec]vtiiamzjlkuyytijwsx
+gucgfzgzaxpbfgrvrb[vzdpfjzluengblwm]valkcmtjmckwcif[qfddnijruoxnmvsqwb]hocgykbffrppoimgum[vkezmfvuejeykmuhsve]lugcuflbptxqinw
+qiyibgazdkkqfobirh[aszmrilbdvrvijmz]smojvlwxevizbbnf[shfjrfteigwnaiqkp]bgkrdeuduyafdvklqd
+euxkocmwyevgmpflmxh[yakuknewnjdpnhdbwo]rhqabxhqikqgekoiyi[kqgtjqrfsbfhfwtthy]dhjlubwnkogyqqeiva
+ymkslptxydufplr[giqbnlqqatbetodn]ompzqbzmjrtruuxkxlj[jhtnsfsnukqcpgvcw]mafbvhnkkfjzpwttq
+esksbtqfptuausafh[izxuyluohauavcizl]tujhzjaelyhxbabqr[jcteeownyxliuzkej]elzhopaawvtxacfocde
+tszapaduhtauqdfvf[xowocbwbgyqyevuym]fongzlnggdhnhqla[ulapnnawghssfirg]ekgcajislaflfkila[rmmkmlsexgtgxlqbpym]ffqzfzcnmuifxybwsmd
+uvtutbniagbgxyelg[zqfuzzanfygdqab]utuvbyknohhkgyfer
+acqjbcjhbbrpjkpm[whoaesoequjoguzcz]alusmcqapkcgsbkref
+rzuwgnempzphmgnh[lkundnoojtdrkti]xxvspbgofdndkrx[hgfxulqnzphcikwe]tmyxnsphrrngczazivi[wgtqdnjtltyjppzck]wgbdjvlzooehfdvv
+lopvvqqhsgahpzi[ppmazimecryovnvxm]ttkkqyvsrwtayjo
+zvfttfwzyzswyodn[dudhsomamquabhgy]ghamazncxlbnklaaobg
+cblrbaialhexeka[rafddyqfimdmsawwue]nqfmlmidvhbpdake[jvczldxdtinugiizhfh]rprwwgnzrelfwixrw
+tjbvzxfyokuidnlttlf[wsrdswnysiffeztzlv]ftuhyupciyzhcmold[tkphlnqiubjhxfmlvx]yezxjbnhqlpzhojdt
+cvzxdelnjskzuaj[yrvavspquyeuvnkm]dokeeqzqpgrzhkfg[jkjvoaajttsrgzgqdhr]ngpbpvrzwefnskvvjp[hwmxtnmjsovbtfslro]qcyeeupaeuvnpqeaq
+rosnzzjlyykxaumax[mtgxhoxetcskqfezo]teeffdnqgiznghb[ewspwrjvfhrnpvjhb]obzkpfqoexkbmxqzg[jrsmxennifwruawr]dxephcphlpxfexlde
+tvybshujicnmxpgkw[liwvwvadpytofvtzmpy]gxiskdumjsbdoij
+evohohxokbgyiqofbp[qluawmvnvrryhhsdrp]varshohxapbfbmkcdy
+vfdixowzcmduksfbi[vodkriidjctnhkcswl]fwmbsatwpslxgpsf[slfpoidaqgbpemyap]jwawlwemapeplxhxiy[nbksmqpfqjdojzhorhz]tsjjvjucdmvkfjhlk
+gvbegqsytohfannfonj[wnrhcgdhbeusykvxp]agoufxlccgsxbpuwzo[wvxazyhfneyocjtllv]geitasndyjkjpmnynbq[yghoooleyzscxpthkm]zpnikfbcjvnbwalmd
+noeqmknutcmwwmtk[hpfdivjpmbdwtrd]klmldkobucpwfrwsv[iotftpgwaksfazjeqy]ncdrncsgmjwqmmjlsy[qwcpmhndndiltvi]cbpgvhlrizoebrrgg
+zhdejtnnzgmzgyn[npxauoqmjbyviwhqw]rcsyhvgbblnwosstr[yacocdndvalyrug]zabsoslxjggivnnp[pzpjpxztpiijeoloon]jbgkfygdrwqvbuxlwqn
+wycbzoymtglyaqpk[pvfqpjodiuhufhkfje]gmmpbbyayhlytpce
+gwllhhyjfqdxindt[ujepssulchcxjwbcduv]raslrbcyvxgueavlmkb[woylgjdprggsgzwuct]eiknvynbmazkxyny[yfialkiqtlmqulr]asgswneidhdmgfiknbv
+kjxsymaugpdzjnnn[kqttktvhxwntaoq]cqmiytzlkquqoma
+iwzchfytihnzqhrihf[mfhgrsnvlvdywbkhdjd]oohqjzdjtvgaalomndy[udfkusdurmalgyhp]frbxekqhjnlctfzdyu
+hwcjiwcxcssnmnme[xlzppuxcxdpbvewby]pqdeqfmdyqmmbxqiupc
+xwuvppawdzrjisb[bmpeccjqsctvwyi]gwqpfhtubqauxqhfzxk
+ugyyhsvvvfczgel[cvyerwshlahgplax]oekcilkxiqatczwzhy[aipcdcarnifhyuf]rlgnwufaczioikwpqsf[fpxepwhtkqwtukh]caswtmvcnphxrazer
+vmsvqoheidspuinpzqg[rpozdnxdpfwuwlrm]vyjsktiqrpenvwaavmh
+sjmvrmdtbmhmphcjwb[eeqqallxlkskzbs]udgtfrihnhybypsihmh
+afdmxqobrfgjfwk[vpvemtovoprafzppvpl]qxrlubsqyijakdp[wupygbbbynslvmvli]qrzyjxhogpqqtjd
+tihxbrlnfmzegwy[qdijbejptemrzytqfbo]lrvnawdgjwfnvtyx[nglkdhpoevpcrpah]qwykwzxclrohynz
+sryakekpkeydjxueul[oiaglqlttnpiarl]esmhduixwxcfaoehxt
+jypdpivjwglmavgez[wqspyqitwljcriwndi]myarfryqmdrzqsgwfl
+kfnlvqfrqzfbevhr[eczqsuhqdwgozvytuef]hwbunynrglbixofeaa[pozsocjodzutnrtc]pfeercwfapxajkkgydm[msmxhohyjfovluc]kdrxkwutbveelpl
+secojqrvaqrthax[eszcgtimvyvmdsftmti]jfjikyfoabrqdmfd[ohksaqmuinkzsppw]dxklblmhezdfhmxbv
+jltltxwwktjfkuv[wjnkvtgzgmvdhbktnf]gnzjwbisstyuqckkmx
+czcaualhufbajyo[fqfnrhjlrfruhgdenz]pmlkiidyhzlhomh
+xjgjmbjsriykobqn[pwibijybuywbibhz]nziviewoncbghhtfcf
+oamkezqllrxnhhzs[befbgrgnjxtojus]qkwusccnfhdbsst[naqbibvvapqhkriss]abihzpaqtolpkvow[xnefxrlcnsyhxlhcnv]pmtpryhgsotfxcdtilm
+hvtrenjknsviucseda[bclufjqrovzyhiemnoj]gvgrolegqzonfkujsd[unnphajlgnfmzehlm]zksbscjjarexejpudv[nhpboqyxtdzxqvxt]iexgbhlrmcciitj
+ctmjaphrgijhgtfw[gouchexnzedcdwhem]gxvcsadlmroasxo[qfxzjndjcapxptsfm]jqfovcprndleoqq
+wlhykxnpzshszjne[bfqnfsstqeoahjdx]lolxbkosqsvolonmoj
+sthlhcsbauaebww[kuuxmhityeazoeqfhc]eysvldhkkkbyeozxop
+sdwfqlcpqeylhfwtf[nmbkqzjwbanvtxr]qiopzigqsdswvdvdxfc[gxpudnbbhnhkcrxdc]hdsdmzihjurcpbddz[rkeuoskwvfjeefu]cdbhfvxomytiopjumrf
+synqjoeasvoyswgv[kqoftptbgzckmmsks]lgajmrcctdzjjfyxqys
+trtvrdtpbtyxvqsbt[fibknusbgvujcxsov]tjqcrwopxytmxebqb
+sspdfvcppmtdurf[ivsjharmnrdpvcoriy]ubgfhohkvsszhabmet[djncvfojgzdpybwdz]rwldjpfzsnejcuhkbms[xjaqwrcprvqumkdqo]xirjztxykkxjwqyx
+viczzsntavwxmwjown[mhpxdxrklaskfrgbq]samdpaxsnttamvrmpx[czewaevsqkbaenhm]edkmgtvpcxtuscxmcqp
+vefxgudwkxtjokrfuss[rgffrfokbymuwum]cjzqxxfduznbqbt[cydcmvouabvvxuxxx]irucyonzfvxscofisbg
+jpeckcersibodzh[yxprjgczoerndzm]qzzqftprfevzozuyrj[eguuaxgzgttuvzli]fwtgwhdhlejjqvc
+gadnesbuiuzqiafjcc[kwctfzdkxtdliuixxom]arycduudngofnpj[rmqwuilezdfcxtofsk]segxynmaclycgpsqag[hzptpxllgogeyvszlr]nyrltuncqkfwiiskkg
+ijlecxcuexxcxunh[lqoxywueqpvhkri]hqbihfwtfloctkab
+ftgauixyucigpbe[iluiajlhofsvzljeprf]aqkwgegblbxawmhof
+xtxoyldwnvehxonytcn[sxrvbegltpbzztuc]xagvhzvpzpnxliwvdnn
+tsophvuauhabzfv[ceqxhicnzewigcdis]iabyzmhhebvptodqcm
+alirhzyoxvgxxtova[vudatqllgaqymtty]nivykkvsdolxggbuds
+uruwjwtifwljtsu[aybwraplpezehiju]oryubhjzxyqdwwrb[lxtqbcoumimcvewzly]basnbsekbxxaqfjbvs
+kmtekihebcvsgty[pwnqwysyzlkahwyj]dsysyduxqgefmlnqc
+dsunyioeihjynhnxryj[dlfwakjnireptem]btowzqrniwbcpsviq[yynburxyzuktrnhb]eqrpujiikkrxhmzbc
+chebtohanjhqlfrqf[idrxikrjujqopjynn]kbdsvjfvtzlcznr
+papbfwmccibasmwyr[ifrhfmbbnvcenimx]mplwskzzmfxksnjehv[wallxrhfuqevmidd]hwcoktxdlzboxrjix
+eptjqtxdsztdzdvkiv[vencdxzwnxxhvcmu]gdddumdnqzoxbzacf[xollkibylumzxclui]wuwybwkxkcvbzfdrfu[jvpshkdkgqqhazptcq]fiwvrgahpcruykbmowl
+osetyjfvtypylkwao[ccxfjjipcwnjyryku]olmxupovwwllxewrh
+lzocwgmaoypsigv[fzpaozucgautadgrru]hcakeugllheavbhiz[lgdupssdzzqrpaioj]opbyxmvortwdyktt
+vvsldrdbnolxydxoqz[uixwbpbqrdstyzc]mhoawiztewjblvq[xkwujyclunjamftlq]eldrjkncwnehqmaike[cwsnbvecidbdelw]xjvnnvpbpadhqeob
+jelludsopkopxvdhckj[vooyfpbhxotclgekyt]ombahlkfktpojjrn[rlbogijavtumxfvipv]ciihylgccmvjcfa
+zflbtdvqtyigiwzb[ysoyrcmpuvprtgfjltt]ftpvlqunjqdweqjx[hzvvdkudxouqatuzy]kalrxusgoqzcbiahvca[tfglytzetcfthioytfb]deexdgigqceflidj
+oaykrymajqyffwqfk[hlfppkcubhcbgvz]yejxoeldvtgitful
+vmcfqulheyfuvbaa[vkrpgbwdyjvrjuet]gtfmaldbjcaiaguy
+bdslurdjqrpwlmyy[iovfvvvqnsjqttjqgeu]ympnvldmmihjjkymcty[pqfnjveswpdougyxlg]pakkytgqzecydexh
+fsglfnqwtydvgxmq[vkcclnxeshpvejzyhzr]xvlfwbnamjzqmzrrmxr[jbuonpvqbqtiqek]eknuvcuvmnkeprjf
+nhfknvbxgvyyekeq[djldkdfocjbdaofo]fvvyptzxmpliiwkdkc
+vdpjbeluhukxzcc[oewefpztueezwwhb]pxxbnmsfcgoxzmqyhl[aqubfnabwmguqovi]nappxjrsgdfqlmdpiy
+pjnndvlkbgnbwarutny[jmklxmqttqpaijkmf]pqnqhvnsewmcfadxdd[uzwiexbboyfcflst]jsqwngfxfdmsxdxiobj
+jhkcbwhnfsgpaqqynvd[abninwnkumrjgpmoaoj]zliimvruxwmauyy
+lqqnummvihrlqxplx[zjdekkaigooxbjnga]tbizdcplonpsodwuep
+jjgkskszndlsflsiku[lwkwgieeyzicudn]utxrgdosycuhgqyeo[sanykskfeywnenzsm]dgnlnzwavpmubah[qyizyckdbvmfnqx]gbzgzwnlyuscspgw
+xnekvtdeeyskkpswfnn[kfnzkzkhcpmhwhpqsh]pfigokjarcfxlosd[cenibdbpdrsumbtt]lipwsaactrshnyybdjc
+dmojhtkuzejsgcyedbl[cymlvwmnwbbmbgo]ipsqvepupkyccqwnd[ysyhuposaefopyfk]txytximedsqwqoaitxd[vcwwpyvatzbzyakij]xxdnjorbgakbuetl
+ipgxfxvgslnignagep[tmuifmchyffcplvnolx]oojmnrsgotdeklm
+ugzbprvzfnfhehgfttf[tzptnsaefdshjek]tvqsmmpsphudpqd[bzglrjcbbpfpplyian]umjzaxrazbajsapqnhg[ipufrslijiqrwlbgmk]kzkpbixdegebrhieeoe
+hxmlffverhgfxwwaroa[fxkztuifvrvdruf]jexsfnykyaxftdbgbpj[xvshcnxickqwcefi]hchqbvhclinuowa
+vynqcfbrogqaznjlll[kcskfyibyiadaie]otkjiwdfxbdcestcatb[uiyegmmwupcjzyonei]llibnymxwmwzzxlnz
+bdjiutxtmtkzncrfbxw[wzdoeugxoqrhwug]jzqfkihcxqhszuuhoeq[rtvsfnykpwwiwohmh]rrxrwrcaqbfvtrie
+kmqmgmcggamtiyhlo[utsphbkqmqkyzcwyic]pjbmuokwcjdqlrhtu
+xpypokpqfoqocohrw[nvgryrwayzoilmftwm]nrsbscypdtewdapxg[vqkjvvmcrsrqiuuk]qwsphmcdaooxtyn[fvpdehayvcilrlpu]gstiqzpmufzxujacy
+tczqngmfcptykxkfy[qfivbtyjlyfjeqj]iffrsjemxkfenqmzn[nzaheesungxbpxszdq]bdsoysfandtdhpc[cjisndnfnfuoqiqwym]cltzpdhbtiybhxyl
+hnmvpwrgegmsdomih[wrnfmvvvwiyxghulre]zfxzgodlssnsusg
+colpncvdwwypholo[wnxyprbzhmywlolp]jipzcbvsklxbkat[bsiwaewerxxrneg]bcutnstrcvyuzewzqbs
+otzyetewozofrkx[thtnuafiqrakyzcpbm]ekylimlvvtqhhar[ycerkqaazvdcaszh]zrevfexceptxskn[xetwzbpmhdtdzian]fukjjozvlqluxrb
+gkywwkcjseoagrwk[kufpsjbvwjewvbx]kyckxktuxshyxwih[iiuoznpdootgptb]jduitjfkvxwllgicy
+uqmwvyplzgytbgqjq[loqigrwbnnimqcektx]spnuxxtllykkojh[mydgfcvvaxvvgsxzhjb]lwgulsodpyaltymasd
+fksodinyocwxnnkaebe[nmcqsirsfcrhkmey]xgkiwrxkvbqywwkxzts[vfizjjizxofrzltpl]memfyylffvmevcrwkh
+uchxcfotfekjecgy[ytrnfdhkjzdahluuz]imgbprgwvdldeixbt[zromhgwteoyuzcl]shdtontjnejkdljleq
+ulvelydmjmeicpcdo[fqlwmnhxsgjhugftais]zgrnkcmorycyslps[oxapavnxbkowooiol]pdicbxawyqmqtyzgq[oxgjkmbusdblnqbmzqi]unuvfzeeobmpqynunqo
+omrmyxygfmlnlpd[mvszaozmwrfqpup]zqdogulmykihlubuv[xdmdckgkvqmnetqlab]xmpghceghczgavrrv
+yoatzqilyyuivop[ykxyngmmcmotrjlkymi]yzsqqgxjtsuavagzznr[smtoxkxsmqjlxmdzmb]cmcobacpxmkwbywd
+fglceilfzoyffdjlfe[kezklbpwgpmhxuiq]setlktchqpqxxrnzxpu
+ntbuvzwoqchmnvafgvc[zlauayjbtjhfywop]crqfjqrgxqymacsgxnv[azuwpicqgavrqhgt]znatfrjfqxwxhgzs
+elzqwwboqgfxfnyfrsi[vzhksunahhykcdfswh]qrsqjbhxkrsmeszni
+sdiicfwffazszasltbt[tznbxqxeqtlryipaxz]qgbmitrvubbsmhtws
+mqkteepllctzakpkbu[gqsiyydzbwfqmjigtc]bbbxhitwhdwkkugm[muxdddndjbxhywyw]eqbarakixmyxhmv
+pocaqbemhftjejzvx[usknxixfuklqkan]miaichlaiabgvnfgqz
+rirrbedwvrscctg[icfecwbutkswyiri]knghflubjptlmwdr
+mjfwnobmyoythiyje[sssepkvlhhrvhxors]zlzpxjhhxxgjnazcfvj[ulqbynzrmjexgadwj]spleenuncdpsrqwq
+eoithdxjbgnbyyc[fkjnxenvoismcfuyysb]umbsyqabwxjkvqifbv[ymrqiqjoefnppoez]honsgygxslvsizfhamp
+ffjdubxyvazkwhvsby[krkpanuzuuxikpia]dptftdylturndqhy[gdqlzihoqfwdpaqc]eoicjxresawqsmftfxm
+cwcgopdynopgwfvgrbp[ikkdjijguwezycqbmw]egdllmqiilawuvz[bxilxeolqwdqmmuacoy]mgdvomzddskafqk
+eiiutongpvrxrkpyji[ykswsksoqhqbvgnl]yquftkxgwginbemff[mrwvbtwcnuacsfw]ykskpjofajoangpf
+rahyjyeezsvfqkm[zscuytqgfwahxdvp]okryildyuyjsmmvvr
+xpthozpeiuyqbalwlq[tdzyiluslgrohvirzra]cnjwxduhfoodixkpeog[xebrsoiwtjrewzh]nzrzyfybbfvpxvsr
+skslvtagmulcodbdab[egdeugynmziawpgrebr]ytyuxecnlihllqbw
+tdiajsypamyewbeufoz[moewrbzuqmctgvqmr]icnkdhxomhvzgedkat[afztmmsqfznglpop]hahfonuommldeqg[wohkagbtdsmxwby]eyxdtuxeyfvrfdcnbjv
+xjqnucbfimkvifudj[xtshlnaobzuyebfimex]ebhbavaeefqcvvavjd
+vuhaiiuaohbmegfvhhf[nguvmuqeupygtvctfkh]extrclsbdamvglnxo
+ysdrhjalujfvnrgcwq[bieoqkzejcsgmhu]obmmuqhrmjnpunpgeq[oskawgrrorijvmxpqoo]nfvocegjoslsnzzvdo[xnwcxjpqdeasuxuwn]mjkcuhwgktvchsd
+vykfhogyisfyumjt[eutrkfoumrjyqgzj]ptlytdgrzrtshiy
+ebsxgomqvzaaaprfmcb[cueqlexewblreiuzs]lzraiyzopnxupisokfj[rpdtjkxjepzfqwpga]guhftswcatwtqqz[fheshslcsaadmplqph]bqccysnlnabptrtls
+eboueezomzzsgxbvf[utawwotuztbgpxpmq]aeehegeusiwdfjlfsz[ziejqsczbebkaozpte]mwkqbfxlklbvijtl
+dovncfknhbcjicefn[heqnvtpizggkgudnm]nejfcqtstvzwatzeaj[iwdagahyrthvrqnaymz]nmznolwojrtdesddma
+gnkxpvhbdibupxna[lxssiiqgycrdiikw]fpbcfcgaqrnobaodbpb[svzdlwqhmlflwui]yexwgwfkgzkejwvmag[ghflfwssaoeooakxxpk]nkvnowymdpgsiguwyuz
+jheoazphamrwluf[lckkorhbrbrrxqm]ptwpouvktkwceornry[mojtegrvqcqmkdd]kfbowsycbpyiehrowk
+qufdawcohwrknqb[mgpcppsvpiacqbzrwh]ixvpwtbgaexthqwe[slxovbgdrlesgrtm]dhddpmqwxxplbqvxad[lryxhwvmnhoywds]qkrhdumjzxidmutx
+yusdbapezozrhjsrd[mfnmoctnmhdmefkpqbs]lqdxhxaxvswynqyx[ewzhsaccykeqjtfvq]dckqgmdjsrhuvsnoau[gercfplhujwazygnf]rcjpktzjjkohghwsqmd
+oimpphfxsruowxoq[ncdlctncjgujpaauw]oxafycborpayqzil[huzidruieieskxfjvyb]jfdollmeywtmtej
+fbdexkvmkvbsmytfqkr[hkvsnarsgpopkfqihco]witphhpuduxpbrmgij[agalckecqyjyyrvs]frxdfnybnlawmsrcsc[pnstdicnjramcps]gleulepthdwtaix
+aneanigfwrkzohkxxh[ucuiwsuzthliyodypo]waogofulqnjdpbep[zvmbrrcppbiscclczac]fwctpdnlzzrrijh[oqhyuaklrgpsiotuv]wazemeupvyrihlxzbu
+ckdyyvglbalddaq[yhhnqrttyjjakqid]jlhmafpnqupxrbqo[qefhpvcinhyzwtvzf]ulhrtasbwtkugjoipzh
+nwvrsbzowmjhivq[wzyhjoehewgxppg]ilurfrdhmalyobr
+qmrlrhbmhyegvyobjsg[deqoctrkekususgjm]fhxydpcmqstrssd[zpzkryziyeeuagp]vfllzbrkzqysusj[fgzaapjznvxkkijhfne]xgslyehnivgjwlacf
+kbtwkduqpvmbmuhgw[zdzjxyujptsnaadgns]ldnvtcvnqcrrgdmifs[svvtvwhewsdazxgsi]zyxyrocrxzeacrdqe[vbvjsjdskdsxtefnnd]wddyjjxkgmsbwfx
+xdapmrzaxqkjuoz[ahldgkmozbjwmztlt]euedbnamzopbnpt[pcmucmomozgealw]mgnqarjicsyvjfprl[swyhhdquxgsyyym]cdhvjmetmtkmpzycx
+pbjjgieinycscdiobs[fyqreavhvawquxnxpxu]aazgdyvkdvlsjyfqf[yrnwyrfmqgcwmlzhv]zbzntnpmfzhauaca[qgefeedmgiwkuglwtnt]koefqstfjnjvlfl
+pgbthpazqbeprmkylv[futhxbgmnyhrnobwi]snygyhmmpzrojekxg
+qozuzjwhthxbsevql[jbciuqxcimcokzkuzcs]kqocmrrdmekowfkcf[nfjmyfiavwewgsbnjz]xoiowsvpahmijohcqf
+ntutqubuhxoxgnf[kfvmpjlfxoddjayycx]gcdnaqzocopwfagqaw[fjlxtzmovoxonva]igucqjnidmvownm
+ozulmmhllvwdvwp[aoqfeopspzpxjwr]tzbmlyrtbfueqhemg[jghoksscgrempcubnio]twnzcjioicyzpdquwqv
+xmvyepyjxwyswemplmh[bdcwdpksksxpcos]nruigcwtbupuwix[eirujsaryrnafokvx]cmlzpxvgrjtrzued[bqohejpipkenwvhtaze]dovbgmthgpkhqrvomqz
+ysbyfzubhzlfakjf[bbpybxuuimeoikuv]qvfceoexeaggllol[itoqxzuykwetgjx]vmiiwpdaesonetk
+wrjfoblpjaaisaq[pcidvtrbpyywwfo]tnmtphgtitwlafajifk[xljzrwpjxjefxhkwmfq]fjesctkzoigeylcnbat[ftchankacrqowoc]fpbstrsmzodksjy
+ogllmkbpstadkigydev[fjdeezqpidvenougw]uzltqjlanxvmjbfc[djxjjgymiahdsrguqtc]uhjzbbgmhcdvolvggur[ioaatnmlfejotuw]mrhmijqjyxeioib
+gkmvnwoebeoquyzddrv[qsiediridzjhoxqsgyo]hsrevlgzioovmcp
+ldzfrxxxxpqqajwe[qfbwtgkbpfftykwor]qsrsfypomvqozrihw[jgvxztruoxayecoiom]wptkpgvyrrbzvrxlr[inzygbyafndrmdjhwo]atavhspuuhjakoscder
+assvouxaowizazddz[mplcyrqagrfmhayalce]qumunneqmgcqjumlyyr[nbdtvazalavaphpbkdl]ifhwfyhtoluqhduhk
+jvdbnhpclubnbuwd[pzrffqsvzwsdmmiox]oxncblupxgcgizxzwqk[uzzeupzxlntouaxjqd]eiujtlsizaptbprwluf
+xkqjkvmbkohqbqpl[fzjikqzfckhqjqa]euhqcdvcejpxzih
+ttnzbewupzwmegpg[rwmfymeikipraohixzp]cqizvjgmnfpvozqlyw[aotszpssukxnowbsq]cjqezsjomiuwozfq[uudmrnbsgwpjxhhklom]qhykiktusplvbtjznc
+hoveagrldomfoze[ywmtdjjqopenmqm]qvpjicyeznlfeym
+uevhmwoihdeptrrbuwu[aicgbidnmgmreid]gmggvetrrwmcokjys
+yrqrmaofofelmoxpewg[wmofoarjyntpilizux]bobughtzaqqrpdd
+ougekdkucjsgirpulu[qlullmdjnkzkimvvlkj]jqhjyswrljnfkswi[mcjvxpehvshbmtwnj]yackiargospshqt[wnmbjhzaediycalz]klzlghrqnxqltkbpg
+mvscfnpfptogupbtfkh[vvbcypopvppclyyjs]rghxlhkkskwxjegk[txbwshyykittluy]wiwedogmzwdxrlfl[iespheudeafnxmu]sopbobqnhcpeqrka
+vppjnarghjumornanod[iruvsxbssvyeokpsd]fgvxooooasjpcniyrt
+docrqvrgzaskdje[rlrjjojqowjgahz]ywzbjlysunkcajriaj[smlrlubjvujffejkl]yahnzgcldvxqugxu
+mxhhowgjvvhisjxieu[yaadtkrdtxuxeld]uxudxctvuuwkjzhny
+akauiqiexienuidqzps[npxzqticzqaizfqbwm]jsesrfmbdzcftaxlz[rvhfqiblhebjwepojcc]vjgzyhmlrxzpisjjdo[rdxcqiqtiqibdbpb]upycfngdlyklyvngtm
+iukhpogyqbukfrc[omtwrciodyertinicyu]tjahyvgwceuqiiyjoei
+ajiqhepodfuziofn[nuweilbnkfmnsrib]pfiwusvwdbuogbt[djnfwsynglfgcajflaa]erghhmedobvaltvjfb
+qubbxpwzwudaijxyav[kbhadxlkqwyzhxwb]cdukwdsqzxgceire
+dyoipoyihskswsmsa[cqrfmlmegzngpxfwvoo]ujurjagbwkbcjco[orukolmlyutjisrltfh]wcbxwkrynjqdbhil[rjmvkwhsbbuvvac]hhrcfuszusxhnsxavnz
+mfacicwuyblqlcrbma[neamcnnqrldslsm]gtyuiwxmpkxtbijvyu[xybupqxpakbqngpwh]ucalmrhghtprxxube[efbigcwynmrsodjfxv]nhzmqjvfwmiovbvt
+keejntcdhfyeawuxr[xkyziglybojfbeoez]twuleomhkjboapgbmg[bcbwbcykirbykzyxepc]fqwedycmvrqyovoiqqj[kgeospmsdtxiobid]eazviyzmzkgtcywc
+odzricjacwsewcjd[vjypaumdqwkgmngyj]bwfxysqxlicvqojr[gyixcgtfturmeydy]rhoreeupdydkevr[bhpmatygcagiztnwtc]apzgavbokckosesptz
+ijzusubrburbuqzrxyx[niesciebzmeqptjyuo]vmwqdsmavggtmojubo[uwlrhyhxupudswamjn]swxcpgbrgfgfkbxdr[hbiirasahgzdlorpzh]gyafmcksvzplopbqpim
+sxzmflhsbatcmaeorvd[wgzptiosahebcdkri]nfmlzngrnvbncvnf[qzevmspvdoesophb]xwrsfymjufcjouj
+prenzyptlpatdtl[owbjqoywsxinwdx]bgdxmckkyzjwfhx
+yjytemvncachepdpp[ajkdubkmjfucaij]vzcyjqjnvtuorox[audqoozyhnawqow]cnpwcdjckzqjqvxpwq
+hzvseyalkoukfinolf[mxfgpgohmghwjccoz]epnawldqhzzfyqzfpp
+atbabqgavyqjunxx[csqttgezpjviqso]emshshcecmudfjmdpxf[qldxfxekfxfkzpfui]ezttimakrqzpfhcwe
+oqasignmlcndcvxbp[bxwbzczioiafidkle]bmcmgkvoklibhutok[lfyyhxczcgxsqvu]dlotdyqpgqhpxadcl[yezngymyoxwjvsffsj]sotoucrcwsubsboyztj
+ktzqueeahqrxgao[jngvjanyqsoegvdnqeo]fmvtmptipadxmdh
+rebkyxyfcdnlwbsj[xlxsghzcrgcvposspy]urwgtqawynbfzjvjjon
+jguufdsodnlxuagnrik[viuyxczwtweybtbblz]hspnzxfffjslsxwbkyk
+ojkowvbqnnvkegqf[hfyjtfomnelqcznfwu]rtcfwigqcfxbpapt[yuwiygjwkgzopbo]rzqhloromfhbemgxtr
+zsisflucwgbzergujp[jqsyvmevlczujkgya]jfpdsrlhydgwmmznb[hzzuuwruhanrlacxjhu]ytfzjlcelnmpmisixl
+cjabzidrccarvsjw[gbitdfulhoasybqhf]cebzwvqlrdbzlxbldqq[pvftfahcvgbaoubs]kyzrynaxalqvazsryvp[drjarcxgvmitnpb]yrcopiziynsmtmyljuh
+pnvzdxszavvtxxqzu[mthhvsdtderjjwsxsye]jzhdepcliphabkirqj[crabarxvdvkkxoen]axcdjyxgbwxkjeuygry[wevvugzspmmgbnn]pkjlcvgpffsluejumnn
+uhwirqdlrbhktcedft[lvswaaqbaakyzwit]ufghayuaxgdcwff
+xhnnziwzhekpwyxxlfe[zffeuqksqcywznifqrl]gddhmdlzydwdidcn
+xrfwpuhachqutrwcqy[albdixdvplyvteboa]dzhcxxpqrzfehjh
+dedxzededczqrhpbbc[ctsvvgtqggfrpjeq]auijpocqkgbnjnf[ufpihbtafflvjbav]msvyrkwhmxlujtrpa
+vrfonzibtnkzotwr[zpqmjwxgrswxwvahtmz]nusxjvmmdexnxekq
+cytbfblpyyujruaxifw[exowaoxwzyvrtyfma]ipbuuiopdxiopznxv[jyykfklmsilaxznxh]pvkugaxufjdwuan[npuehzrqfjixjekz]fuzuqrmjkkjiokcw
+bjzdldvfwxxxefgtii[rwwaxdrvsjqctemv]hjilyebcdlurqbffj
+bnkigptbdgiisws[nlczvjmonksbiyk]bfymuwukbkqkvhyo[vejoxoqhxognrgc]bpzlhxupauzewxvuqvl[netcbnacylnyltcqc]beslyhhwheplirltas
+pgxzyeykndmxntip[dvlngmgydirkyojcl]hevogchhvwlumduamn[njefbfyhnppjoofp]jivtguydwpcfockqurc
+bskokeuunevhkbiwggj[hkwauozybrrwhfitnfq]airyuqgrnuokbzsyclk[oypotznidcpxkhwhj]tvjlkqqzxgebvam
+mkzhjtzjtzcddndrx[iuksqclypaohlzbkznc]ikpzdcmcvxotkdrxfq[wnynwueczbuctbeaf]zfcbatppugrpbwyx[mivcpesqgerjjcuqe]dsrdmzugwbepgbcqqq
+mnzvtidskweiychtc[wurejipylmzbwmwkl]xgdgccxgpallpbhyg
+ypomeqwcacphpqm[ofscrybteawrbvqhtxs]lpsimhrenerojoghoh
+nuzlbjqzbnxmomrjlpb[ztyepzctslllsmma]uwesrgzxvgepmzrbnz[lvkavpaohbgsdzvpp]dsmeiyrlkpfrahq[pzvjsgsikunmeseey]pfplecnjxgjfxvcqzln
+mcsalggrfrurkxsfufp[bdufquaaorjupnjtr]kyemyqkytctsbpsasyh[fkllkidmdhqhqsfnar]mtycxvanrloifsucae[lqayzpjtgmxvtaskzq]plpvcleipsxfsfjhmmj
+qewoofcsqvfeqiulfum[fsbdmgmrlbrcxqbltgp]vsavhutuqxqqyguivfc[avtvqpcbkjaxsdwcif]qrlumtxtbcirpfwxe[ergapjfseuqeueuse]jhxdqaoociqplgjxfc
+atyiwanxdchkpaorygi[zyjqciasgrjecnz]xojylxzsxvjfgqjft[iinfzfudroehnmbyr]blinjcdzwsghrddzqx
+sucnrmwljzsvipqfcsu[ccxjjvekhikxdgq]gvgrvgljgbbbnqfsh[zyxiohdkgvwkoxzhky]jicebgslukbzhdji
+mnbaiffupkfxpemr[uyzufdzkfvngnoogpb]sssjqfesnoegngu[pxoxygfniklvhwgfcp]kydobvhxtomntdmwp
+hzpelembrwbqphxi[qtatymcowjkgpiw]qipzlxwanhtwkkyut[pgcazmneiprepkrs]qsylhoplelkxxtn[ojoblpesurwcjkzmw]ybnygyagneroitehq
+qdnwpyegdrbmfqo[mpyvghubxywxodn]pdkygcgvqbigkxjln
+tbmxtcbosbngtpijv[efwxjziaiumatly]uvivkwastbzmmtunox[kyffxqqzpvpafqlf]cchjkiksobzfspeij
+orlelitjeeleenqlp[aymprhcrqopmcqpzyu]bxrezgoauocsjkhvzme
+cxdedomcafoqgxw[fdhzlcuebxoykssqp]thbzytmnhjdmlcpwtrx
+cumdrbdcvlcivlruu[sokvdlqnoepnxojo]iaeigxckpehotfixc[nqoqbomvzvvitunbfn]kdufmsqqqzebnrueau[pltgnudqherpyedgrp]mkglrgvgbxbggzmmqcu
+nsikjklxfeoitvqob[vmbxlzqgdqmynzp]bplnmqtnnhvpvff[nmlhjuneukjvjkjgzj]xmbqpenxqpfxvhbwb
+zlddovbifjiezsqz[crhesriswhownhf]clabhuqqnketuyv[vhtixbfjfdhmial]achmqaiunmuesmkkdkc
+gmsuhcgelhdspxj[sybzfmauqlgkjogzrb]mgzajsyejptvpsusds[covquenstvxpnnlbc]tadiwlnreyzgxcsgmbn[nfcpdnvcjuyldtoh]pqfmdmbmcnkdisfmys
+tjxmyqictefdozfmefx[fcgobkpwbcnpzgomkw]fspophklvonvlcbtid[mkfrgrxovqpbqoqkziw]ibgxvxumwutcsugay[jiaoeloiaxgxbfh]jykbetswjtedltzjnf
+fbsmekoosbvkognn[dfxqpqajgzhaimtyoo]pftspxmsqteibgjm
+pbgxdmfrqnwvdhxsfg[usrfcijvtrekavr]gwscetktrkspodldf[pnhvtgrgcppmuvl]spjltqxvvmlubbkf[ajpmhfmyqjobqoow]lswnfnklfdyfuqvbk
+cawugksswvlgxdstzn[ezfehjoeipttibvlx]npuswjpyatbrelllxfy[fdbjnnocpzatmflw]pexjyhnbuuqwamxhz[vigonxrdzipivgdji]dnfcyndhowhjzbyijay
+pdrksarqjvlrrcwov[tduyidcjcnzstoqka]umsllhkjhrlwvyrrbx
+hhkxhaghfxwpweaye[zhxivrocojhgwgd]omomgwxksxanqhomg[tmvbqezeztbytpyk]qvlolqozfbbkebwr[ytpjmiaqomipdmgmt]wbwqtuozsvnodxsgy
+petkkoaleoybvha[cedybeqszffnzygzu]falsgqmlztvovgxrc[bpbzewfubwshlvfou]unjsadlvpyibplqejoh[etkoencdmenqdxjn]pnpyohnpslrouhee
+tjifcboldeelxcaa[irfakfvczturdsi]ptyfvbsxqidcarakplu[fzjzyxwmkpvczwhmrp]pkfjobrepwrniaip[pywzpfjvifhgxgbzh]xagnarcjotulvac
+gszqyloltjqtzfbhich[qgshjjzqmjhzycjfkps]djlbecwdccxctkaaku[imybifywfkwtdzxa]xweatffhbsilhfdkyxa
+xulziztgnwdhcydxzsv[nwmualmytxsvfaef]lfnpclsvannzeyxowic[lnmesizizcaeghofyz]tldjkalslgsebiahzme[bwteirgjsnquwgpupjg]rwzvvwdgezrfprexsm
+kzfdabhpzfuvqzpvia[qrmffavoapeocslqef]cibfbrcmvckywojotp[fzqatyzbgmhjlgg]qjhlfaclhllzupcb
+htzlnnigoezmmmfxuvz[tayvpakyoxxtzyltn]dtdujuuutdvtrnjue[lcoegvnmayglhdgrwc]ilmabhmhbplhvatdtz[jzpbyzbxnpvdmalyk]ysuewcjqjctwobo
+mvjirrnzzluxqmdk[reykaseaqevebtkrc]jkfgzowvutbuckxxhwk
+vgterkzfbcmcesethyb[utqbftidqiicchbhm]kzfeujqxamtqftih[eoarrtyorhyhnpvtmga]ylcodxbpupdfrute
+jzgzqqllmuvggwwyv[tzyitevulcwevyata]iypnebqihjvscadoxm[mvnrcboulcmyotqqki]tueesgkaidhjeidrzre[zhtdipjtdehbxtntdjz]ibgvnjerjoxpyrcin
+qbkppwaozkpalvyvf[eslfeupnrsraqxhlh]vfvgdbmkspbwwiilhl
+ggppkguhwfodnfc[oicyrgagmmafiglul]vhglsdulvvkfrtydral
+kicuvlrhdillifbezq[xgyxwritxmvnmzsclzi]vwbemwvsfahknqebvw
+vboegzomiuaieemt[zhhquhjuaaazkhweo]ymvmrednlydsalr[otpjbvyujrtuxxplpuq]xjowlanxaqfphfbnrid
+ukkzmeacfkcpwico[tainlxdpkjmedeyh]aloiqpxevbitamsi[topflwgohkxlaetas]andrdhnpgvoifqrdrha[lchoadqizskorafwot]ouoxmcmjdaxnofddqko
+pnnepgtfvzijvvxcbk[vudouvjqfhnmocalmrf]ovlwvfwxryudapicoui
+rkxvyikqysdqwztrwwk[iczynwoubxdxwbwnw]oxdcxqabwbdlxxghnaw
+mnyqkobolicsbibrxvk[duytuwjunbqbmwf]byrnbtbzttduovxvbau
+fofdxbknsklhtxlncbp[xxkpqekrnoikzisdzd]sxtseawjlqnpcmt[vmdpbdnomdzoqtirusk]cejmchbtghptuxvlmme[sspxdpjrfotirejw]hbecxttpcplbprhgnqu
+fqbkapadvoyuujytwt[shtzysumpigydmcwkss]nqceoupxklfyswp
+dbhrlyowzywvydold[jvffjbezzdmlfvwkfwk]dtdhnwdejeffgaw[emsqelshiiuklgozvm]qfnocnyxwolkenaaoq[jkiwedcexufqwth]qkzulubbrauzistyn
+kfvnwyoxswzgegno[dbikkhvqdsegehty]jykwesaprpfogcz[etrqyxauilhcmeoubro]pdbgsjhckpzvbpkuv
+vjcrfqndpcisqrbjn[udbrvriucsdujetfntn]oztgeynclidukwo
+vysvtqeithvqslpk[thrgywribedmldzul]zifxqenfdqyuhwal[zbwvycvqgjutypqx]oaxgzslvhhiitcacvkc
+vmyizqxdhnhkrarb[dmdytoynjtesktjmtd]muvbmtrhwcononlv
+gczqehfmimgqsqc[imqplcuenfcvklaol]pvuchxxlhtkomyc[xlnhxnvtikshzqixhyc]gvrmejmkdtdjutnauk
+lodynussigujruayais[ktzzractmievvkmhjyz]zbqxkpvmnrsegwc
+nvdexfytibypqtq[gmjkkwpxbkrskcolj]whfkfuugcopbyboz[ialwkdpgfyodwta]nlwbvqltnhdnxpykl[fexwnkfjfynznmcf]fekphgzbosgluwstbim
+lpmgreadxvlituqykg[cjtmfajbwsjohwovk]jdijgoqjbcjnuowrq[unzekrelkbjpmzpqs]ravapumgbazyscnzzl
+bcvowpbqpmkgslvzgls[rmlllcjmnknhpfkncn]ezbxhnqcjdxoxia[ifkhknkieonsicgby]hatevlmiulgappqkzdf[jvwxtvtexujxxgdxanl]wcvstocdshkuybyg
+dbhllvhwblqoorvnopl[nnmamtezbloieops]brqypzbcxxlfcqvgws[jmbqogkabmtjkwiy]lhrouaarouwbspentkd
+zxrxfiadhqxnwoibkb[adpiddkbttradecy]eozpenaylhjtqlwo[qtogkzpyvazzeinpxxw]mjozglsnbnskvjgbnb
+zlrexphchavfoxs[xkchcuxvaopujja]bkdxsliitppkzdiilyr
+egizwfqcttdeamzotj[rcecwdldxvzitssmy]dphvxfiibhjbwjce[tsknmztgewuvcmai]lrrvupcgegnyhkrwnmp[rsxdxfckwdmmnbiaupf]efpgqegecmjqonko
+ikdnhbshmkoxydhi[igxtbmlowljhwzvfrz]vfjleyvxsebiiwshc[fedmlcegwiimlpenksd]xofxlghgkfdbmhqdsy[arfcqdwqjqfaysgwdmr]gyrzltwzjqjlgwoe
+dodoxezhtjlmdjgjd[nwymvwzmkvwrhfq]yawxmozgawmgvseotxq
+osrppxcaroupzotjnc[ihgsbwgihjxyhdt]rglspvnkdzzavyuoyyc
+tesoxodlthgyjlko[kdevzcptgfsnqlbp]rucwudduatnmdyo[exicgpzxonzphks]dogbplhjnywstfjruz[qjomksffyuhhiqnzkb]ymeobdgtcsblxpoebn
+wuarhtarirxliwrzcvz[unefpvwrqsnzlqiyme]serzxynljgcmkmnbbeh[ibxgiwqnqnzszec]wvbtpzaquvylychx[oynbqmhbmvdwbzwpag]kzejxwtngvayeglocqr
+hyjjgytpckgliajy[dwfofthghxucnptv]biobdtckvjbmofoo[grpvjhgzqqqpkoehk]wvkwkavjrcmawnzzk
+epqetfblxhozpueih[bnecsbzyoqeuyxnhuc]kxgpnameztkuffn[mjaxorphexetglamhhb]srhzqpfrdqkpuaxex
+xzahgksigbgoeycd[pbbgbjtxjfkrptf]bitjutwxsausvhtfy[emvnlpxrcgnlaosu]sgblxqbkfzzdfjqlat
+drqmaccamxdulrhug[cxriqysutqqetqogmn]ntlhqnkrfkduxikxae[zzzfapmviisfyytu]dekxbweansnlrrhjhpr
+cohsgbtzkuorrnym[euzrixwxznkzrgs]zkrzdjwridpourjhx[nsgrhgodwjtrxihe]fyhqouxlvnkqovbv
+eudnjsokyjpqopqmspo[lygdzuqvmwqvsaz]qsfdvzufzfnjxzflkdj[rkwpjvhqwhoobkrb]kyyqnkhztwpjfko
+ibksqrkftyysxggx[jfkwjuzaakymykesbpv]hrqkwwyvvzpyiuoaxrc[zqxyrgulrcixmdocv]radohjbdggmlzrbr
+gjeuzydlizovnfjtqc[mmqykhbhxztcmycgkgo]cyfymkpciprsryxfz[zmdewigwxrkuqeuyio]xfyfbmtbssfcscst
+quytjjbfdxlywabykqw[wrytqtdyeuzpwnaydcb]gdmsgkuwqkhlbfbiubl
+hcaltnxoualjwaibig[klhpumuywjmgoeklbov]najjmwgvwcaqloi[plcsefenjborwnjlw]snremuqxieoucfuaikn
+nnbgetxpcfabihc[zztuumdsokfgtof]nacllhfjauhywiay
+biywdxyloeifpkfitw[syqupakwarykmnpg]qajyfrfcrcqqjeq
+vmqqgxgubafggkfyjv[samgegnuzwimpfibe]wedvmxriezwrzvwu[cpbfohmvckgcrtfu]lxzynmskwpdnzwa[lwqrgdcvcwytlakeb]govnzecdihclqlnm
+gzvexxzzfhfhvyv[gsqyprtywhxcmqi]jwgvbqynppmhonofkor
+cinylclsqpelaftk[frijsczdbzkbrahsejw]gsfqcywfnpjhhxgrgu[tpxavuhzotceuxwbin]jsdaoqdvxkgarlw[kzfndalmklujzld]libylenfcnucwdq
+djnlfkxyvgcciygavgr[sbgddpmauvhoevarmt]zoadbqgmvljbnvzhf[xqrcnrarvzvdatewr]ddbkmgdmvzwqscvvld[pepjqizjdutkvwulr]mqhlspenmgnamam
+akmlmngwegfvpxpfc[khelhwvodxwvxgfhujm]loohnxfrcrfhunehf[aytqodcdwbjowoobql]tmjkmxpjvxxgilkq[aamongigaintswehsyn]obgraeifzqpfavxorz
+qwuiuwfuzeugzisgdiv[buhztxtutnsjqvznpco]zchcuxagskaiuigtc[bpxjwcknmopwieo]hbetzzhqbcetcktckfl[seykohqtrrugiwlxo]miqgbifchozmawrbnj
+gokmvmnenjhnlfsab[pyyxwdixtewgjgij]zifzpdbscpxkqed
+gvomkacoxqruraj[chbvfmlpzvwkdbxszzv]yqqblegkxznmjwny[zhakhxejpshkllocloz]zejncsowxmyjfsu
+kmzmakoecdeuwphlyq[bxkmcbxxqxbjxzvgcoq]wujgjsskyulinwafw[vrdhgjirbmpiimj]kdagywkfxucdqrqiof
+rkncghhmksarghy[cfgmtyveyfgjikcukdk]jmuflspuchuqxmp[dvhjanbripgblqgnr]pituzbqsqolglxrprii[pvexlzrdlvxsmab]qsldfnauwajhmea
+usomxhvbqmriwtturd[oudaimrmsngypdwgtv]ttiylejjeixntwle[mtantpbhnfnbqhums]wqqimtspbpwcwgkj
+msngkjkenyzsuvs[qtvlzgsmbvcnuvn]wfsuejzjpshjwek[zehjcjehpqofzkvru]cumensmiwaqjbakgdml[ptzvzzowsxwhrno]qiuhenzhdaaigllcuu
+tnkmbepgvirhbvhi[hsexgrjitwrdksqwg]tmtsljflseutvri
+exwijntpbtlxfix[htpkfyxechripaeuq]xvwfuyghxwxtbrvp[futepqkjvqjgcmaie]cltxnelzeixkgoazvye
+wxtniufytvnvfoi[lxoffaansaxwsvv]exyiiicouqllwtesv[cqjrccuswyqqscktks]rhxsosoakppbahngu
+osponabdzzpakjywk[hizagebrkdhzgvfvxwn]yfzjcsylumdlfhybo[qnajgrkojgnyejot]qkjtwjxpzvqwpqmc
+rzxmmbmmctzbvehcdoi[tmcjnprzcpovugdlvse]syprasycsjmvxassbn[cwoagxqnsmvchtybuod]ukdkctwlywpofoxjv[vjdkgcebgshzqchavu]tyoertdjnsrifeqcj
+djntcedqzjhhzvwbbc[gvmvlzrakynemvmg]oyadknsynzeppoifc
+zrzqcasptpgzkzo[ffriajdplzmjeaunm]cdmoajgelziwxhy
+hzagilfpwcxkdqenlt[pfnqxpllbzquoolcf]uzjuhczilfhsagj[ziueohgoduamdfd]ttawzghdavserflte[prieusxxbeogytknpol]ifsqydaoickejjhfcpm
+rtqyvbvkuhzobmmf[ceitppxyeeofhbihwmt]igkwtqtuspoesuid
+pcesitgxkjevqvivvz[hsmjxsuljwddfrua]ihnilctbdzmqsiaval
+vnauzswyqqcqxfp[rhmkxukgswpymqaccui]alnfshblhwmliptv[isrbkoxgplmzubfoarf]cfsbnqbfstksmyj
+jarrciiedilomtu[vqmrvshnqymuafkghj]sywvhqlonkyeicqihj[tgsipywkjfcntsui]krjeevotdoupwxggg[lacpflaydmuexswx]eyqiazqhrfidzoyjv
+tbumulwhnlrvcvo[dewrkdykuewgbmyv]irqalghftktpetbabmq[jhphvjrddugyhkzhdk]qlswcjdjiagwnzmt
+jykxdypogkguezgcgp[aeqqsfoolhjpjpzoztd]ftypflejbcgcrumx
+mccspzcjyjoeahapjhj[psodqsplydofbvvrlej]dfbbyflojtbjsdqi
+gmtoktgpbyaljwygh[eznlivsdfskxwhqyvi]qfzpnnsismbslpse
+lmfidqkfidudgvyfz[epwcdvjwuaevvavr]mzekkgdhqgdrqhbply
+wtbxbqefbzxbxrhazgo[wmasevszdflflcbz]cgkzpwjfxkjjiznjgz
+gwamjnltiyjwsqi[etpmmdxdyskalha]ijcwjhlkfvpmytrgki[znfqhfprcsifllp]eetiigtwrcijdonaga[jabwgtqxgnhamouzrrf]mgtwhdhoohpfjdwm
+ftcvaxemmkhcgisxd[lfchmpvdygikmivv]xipougvfmwaipvymhci
+dvbygqliriwcakpmata[wodhnceybjxjisagg]tvefxxirirlndlfiyyh
+mznolsiotpeszsn[vxuljfxlmbembsn]ypswpswzasktioilmf
+gyhdxvpctmlqklm[mggbzkyztsaeeanvq]osybcvddwhfrxpo[miqkvnbrkrpvdkw]bktmkbbyhpgkeygd[yujtsessfgstxaop]odzhouvvlceuftordp
+ojudzvhrgmufnjvnc[kawgqqjkegurfckbhjk]yqescbxwuytnknp[vmpspiisssjvjrjc]gajimhovnrwrtzoj[qzifmjawuzgjittfe]luzzohfgmwpgtjegno
+yrlihwonhunhiiizrm[hazgovkcfkwepjj]hylctefspjioxwpq
+mygugbmyasgwwtuet[sqisgkhcxqxozcgcuek]txribhuweqphrccp[rgirvganjngcgmxcrq]cyzhzifqeqmohmxs[zbhizuadkcuqvku]otcbkjlcvrbrgci
+yphtqkibqbtcwskaiy[ncztpmnmazsqtrpgipt]ubywagmohqvweqnr
+ltkacxcgeuzgqwndmc[fgqftqheajrmxmwkl]pzguyzrannpdkmoiiw[rumhgicakfauwdr]xxrotzzxlznkviqssoe
+kdteqbiezzcogrm[uyulaxnacehgkqi]vvgjxojcvaeuwse[lrbvujwaidbhupqqp]qzprzviadblrdjytct[ihixbmyzlchvqzok]ovatwjszinstkvkcwrk
+rvcpwirzvmxgipx[ngyuzdsgjvtodxa]aqjkwdlltcbxmbky
+nrfbnpazhvqoxufoil[atazhehzfbphvmmfmd]xavgaapdaangfvse
+fltumienffdqrogcz[colltugqcbqjhaqovny]hxsyqefqrjpfvtyo
+vdwliiyhqqneegueto[wromxahmpgxkedvg]vszttwnombqsvcpc[xnbuhhageytxqvz]vkqbzxqswjeqjebdkgz[itopywuifvgcuuthau]nwxlokywcfdmrmyf
+lnxfcfoxpklsxhnad[tvttrczwyrwrfsldkv]xvoyvjxkqmfstppn[kyeclggkmleveqlw]vtvsxvvrprmxvdxll
+bfbrujzleisjxfxu[drnbnoglwrlyiaj]pqmefgvscemrqgttdr
+abezbjfpqbrtkpugs[iskmwsrwcenfqfcq]bpghsuqvcoraihs
+lpmefpenkbzmlqgmq[avphunzetxfjsmmjdxs]aionmjdvqicrkkuhqkg
+oovycvpryzdfxqe[citmqfwvesbtemv]dpskdbxenzvkmdq[cxebfoqzbkridgsxa]mdvbrwsutplcwvkv
+xoagoeyhlcfwjijvv[vhtyjwosozccevd]yygksnlkcsulkxwnn[xjxhtcibykdzzito]vhpzqcjyngshmxvqfpx[nxmbzwbqntpjbly]nkrlhmjwwnisoslom
+bngreaenftyseubam[isooaeaaujjugyacg]prqqjctbrrvwlknev[hsudwgxcmeoeklchs]uyrmhtzwgbwqowwk[durtalssedcdpbpj]afxgbeoposqwbjj
+uegnvefthogmdrk[rfegmijatgpkzwygepn]rxrgtdntpivcexrghp[otrcktlhkoiuhzzmjrq]elltyvnqdnnttmxafr
+ecfvyjfcoogbbhcfcgv[amtrrevlpkabhaqbyzp]njmrtansamwlnlr[nnxrbkalmzfustv]yzfqdnnicgniytkxv[hhyhbujjwtdwgfx]oayimcktqrvayqr
+shkthohfaiuffqja[kypzkqszyejltld]zlptltkzsntvjftooga[nrevhlgxlxrdhfp]ntoiugoblmiyblfgz[etmdfpjnkssxxmflzgq]uameicduzizvskxt
+zkbwjiaiaapwrtl[zmdjoypqpcoohwiai]zhutipipeeoaggj[ipicjufclvyscnyhyf]vjbdthqyehomdvj
+edlvyecttfrivrrxx[zbxdriofrvcdvqxhtou]veptmlsgqmnmgydziyr[kqaicxgbpdvicogbiq]icpqpaeawkuqjpawg[anpqidabaxviwwnc]qdrhnbnwtfoshew
+rfivrodvhzbdcbrbdg[xepcryrugrdvdvu]oktqcihzwmkigwdif[utknwrvopeqnznelzsu]jhlayryeovpwlqqq
+kzpqjwynohsmyefwbun[uqijmrinjbfzhxx]jdmvhjadchyqzjtmk[fnvvjifdteoppkvwa]gvqtikxjgoxdqlm
+vrmlvtiqtmnkhzxjlk[pimbbahsqeuifhipra]exmvxfelanrjzqzq[jhqavhbsdzglohcyvd]vdmxeuuxbceyuajxyb
+qlzyhenvpnqlhftocwv[fgxvjjpwadeflhq]omyqdbxvdqvqwcwj[pvqpclzgyuxqsozsoiv]rbftgqwizitdviltxdz[twhkknisnspuzizics]yshtpvvilxzynzx
+scjtcmszrcywnorrt[csccijdirjkusdd]ixqwjxqgigntissnu[cfvfxijajdfxian]mpzfpsctcrzteay[cqzwbtfbqscsgoulqv]qiajsnvyhuocfbs
+auipynpqbrwjzlmzl[aujvitfxniudypagrvo]pssylomazqmizwlwi[csdigjqelfgzraldhzz]euqvrminyahycqtss[jeitaccwvctalfrl]igykfetkzrysfwudo
+eqyjthcldnhfkmrs[vokkahiukvtrqhh]yaeqjcljcbefdbdvga
+ffnlotzrjimasdesyvq[tdjiwphyoudihpfxcht]tryyqdjlcuqrvnqich[pbqacbutcqblosh]kwjtegfgffjejcs[cfpgdaeyjttqflljug]mmqqvplbayzjgljlkv
+fmedyfuhqjbpgdn[zgrnmpzjzltwzzrul]rwbaljlzamjxeyoh[ujapzqljttupqeq]srsnomadmxvnplt
+sdmsvobzqyyimoqxp[dlxsrcwlcliplma]ggjcgvaptysicxrf[nzbfjguguhgdbnkavi]cdwiukrzcdafcwvau[redyhialkkakkdw]tshgrsyjyhrdrgxfazc
+statywcdcubhgql[dxaddykuzlbwbncgm]xvbcrhfffhovlkjwc
+xwrjsohnxwhuxxgkal[drdarprpdqlmrnyyl]lcxqhtifgvumxhyfg
+dceusydtgvoidiwvr[xwxdkrpqztimdqcli]isbrbjqiotgrgpyesct
+dfcoyiynyqguhlvqps[ixywuqsjvkcvdgvtir]xjvatxxvkqxswffdvg[wgdvusxfyposefy]zsyoekezyjzgogrztv
+boxxwcovmrwtvpc[wvswxxwkgrfjzspxk]tcupcgnxuowpndaycqh[vykbdrgegnzsqlcxfru]aaldggnttnpoufwstkb[rrepursbaqqdznt]yupovasycjtwuysfxtv
+aferniqruinktcmafzd[zwmijickemmrgtqgl]pabcgqclmnkelnd[rnylsjpdxphsetesnsb]oansnqzlrsdzsoxufj[ygbbwrrxuceezoxmjlt]cdhxylrchoniesm
+zujuchvijhqnzbnncbc[sedjhgvmlhzzembtlxx]ofwmzrlmdabvkfqc[uxmleezwssylqghgo]okpqtbroeqklmxntgk[ddzdtvmgfbrdwfp]omsfvtbuqcxuhjd
+pkcrwivfpomxfofcqe[xrmhrperqofodgfdlt]dphiiahoqqquedgjrio
+kqdjfvkupfhlary[rvlklzcmhrhrkrlb]ttzeslijskqjeeru[nduifadlvotzxlvmfzq]rjgajfgfcmxfuhh[rmrkzsmkejolrjgjnn]xosjsaspfjqyfrsrw
+dlhzwfvcekvrggzv[ofqvnzupatpgzfahy]ftacvsvkgqxrqtanhs
+owtfabwcaygijoy[nosyvwsgkpyfesucm]esecvhmcjzycmsesybc
+paczhwhkhytwllmc[dxtpbrtkeekvoqqkvno]zjuyuhpzbsvzodpbrnv[ozdaihegoqeuihco]pxptnsdupkfgvmhruf
+fkxezddxwnlzlarhk[mswldjncrtgjijeo]ioddubxtscouxucy[qunukqpvvgzpxukwn]fsjmsbjibbbeccux[fomhpmrdrozafwvs]izzildhimulujdo
+cmoxgmdxxduzdczqoim[dyjnrdkyixdcdyqqz]ywngnwwpbamtjuhj[cyfwletseqzeesmxlz]olarxthcpvophvbc
+jihdvvjpiawlurkpna[rozyjywumsckmzsmv]rhppipwcrnrqnqymjm[cjozbldvixcbzgtdni]nhgtgqgnwkgvtqxcbq[ndpdpvdwyhckolnoiia]nrpriclcqejmjblaoca
+mqrofejeandcwdb[euzfcxvwvjgjsrjejm]zvialbaxczkcbamow
+lpjkrutazbxjrsh[aaokpurkwyqmqcj]ldlutqskisfsjehus[rwswxgrjiajnzmyva]kpxjkjranacklquuilh[qswseahkaawgoqbwoba]powmdzttqqgnwoz
+mtrgomgkttblalylml[fczsdkxnnhxkjvoxyp]qhcdlqnkhlqkume
+ejaxgxfqzttfjro[nbudxjzmewgejjr]yettpxcyntlbldt[ecxxeskbvsmevezs]mwwceidvokbtuji
+bajbfwkcbptthrpz[oxibvttbgfxxoydzozx]qyikbmrtebdqcxew[ezfeuqfqpkghozohpr]sjtwsvtsiuvulesw
+pkcglwyjkpslkzfbbkv[kzaxrqlcpdoafrhw]crsuleuevkueuhu
+yzvbeybjoiiawarzk[pchearjoaubhjushnuz]fnovtxneceajvroio[jjltmacrhiepqmd]bjwpzdgdusdlpon
+ntcswtooxfxewxfqs[whcrtyxxvojtbhvcwya]othglptbiumercc[zjvappnrruptaqcnhtk]vervxzljrmrfdmgepx
+mxylkjghptnxmngpxt[scnxrqcdftpsmfttyt]iqccdcdjhcdculfaxv[oypotbnuowotmgnutn]sqtevrkuolowyagy
+ilzgxgodlembephhrox[ficbjdyoqsontgftgjo]eoaksyzlqwolxcwxt
+azuhgtygltvpqybiuhf[aabjtnyzrjmxggpflz]dfbhxzxopayawmrehf[bfxaxfuuxmaiygdpohs]hjlapbinhdphibdz
+rbwahitvgoeoydvuuwi[ipgxmdggicierzxfl]kfvwfixdztoxdsju[nmmixwldeahcoszjyw]exlnyfffpmrqmapdzqh[deqslgzpznbktvn]dalcyomluamkjamhmcv
+clasxatlmbbhmpbe[fxjhfcsoxdrmjlhemjl]hiihjdiuandtorus[kkktqqtmzdzvonws]diaqvpvnyfndpukqtm
+oshcmchulrthjugf[hhkphbgxvavkutm]emqhtezcshpfezmun[xmizipuebzhdblrn]btiszwdiyykvovlhjs[kgbllnxkvfymsqp]kordlzgacffdjyes
+syfytdnzapvppsxwvuk[hssgmdjumfwcuahbzu]tjmijmhyixegulhwjda[obvfnrbrdefnkkxmy]iqfdmokbfvubkyv
+ooyhsaozcfvzbligkh[aezppzdmnnebgew]rjipwlwyzcadfrcm[ucpdhklscwpzzhmx]rcplkjidmzwgldmbxnh
+usgwebqpguedtwal[ucahxntpxjzwlkyks]rtkegixncuempbik[eqoxdwxwbougjjet]waqfnsxnwgbzhjas[rdjdmnzmkcoskhwmwp]lmndepamkrbrezgo
+lzexedsejjsovjhhmzq[xdzmigtseqsprybxex]ctqumfhtaatrinmk[dfqxslvuwdnqimy]ilfphdggfbvvmuuox
+ejomxwuqpakxbggi[tyaxtcrupbficckkic]hixqaeblbratemmv
+brcadksonvcvrovnlcv[xqxceanurghlxoop]tkjynckrlxjcwxcws[iwjtchdptjhnvfefujw]bpibnujwktpnkwal
+ozpqshbippcazgbjwsf[eeiatzwmxezmsphxag]wbmhjqnracacplsd[qqqskczuqsmsaffnqvy]rwexxbhvanycinne
+qjcbuqeoxvfzgzkjx[nmjdpsmgekqtgrz]psffzoymswjccwlvk[pzayorfnkpiqsiwdksr]dqjsdpxbdypbofvjd[rteibgexrljensnsfbv]ywtfitjjgcqjqdqnai
+eqctvrzmizmzadiv[nfkcjhlffxwichh]owulkigprckljfa[xwiexfzduspgkmamyz]dslflydyueutucbz
+gaptucbphbcauhpb[inmcacncuhnijxba]wojvrbwisnpqgom[lholtuvxkozwvqicgqc]yfqvzhaxgbtrtpt[lfwlypvzebajjcrfg]jptstikegtittkncnp
+rdmqymmuuvlqlifp[tunrfdqlqcskqzfn]mznubonmfmnddggsl
+bpfzfmjrnvvwock[jfgazbkopygtwbeyfb]zxilzgfaykfbfloqe
+jgoiehvyjxuigojewgr[wpejfaphlaoasct]abvacgtlnghcwjhu
+givjipvjxzexjhw[xhnibqkmqkccsqvdbmt]axhurinkxnjahjqrpf[kpuvbutiwegcyjcmhs]xvpeggiwqjftpkbc[elnyvjrckkoudanf]rbetfdgudyurbhjg
+llwritpzvxwzjcou[kywjmlrdgbptakqh]pjpxwtjfyvshsaof[fajaogkpjxnklwjm]tubchodcesdoseiyc
+jthqitsqmtsorji[xbpqxddyptkjplwkirj]yatiinytqnkxblve
+wwmxeeruhuctslt[eeolefqgiexdnepz]wtaprpghficxxhuhw[qivyocneharsphhqhe]wkjbvcfoalkjwbmf
+mmcrhrvyfzqlcrwhhce[tmreurytppiemvporrr]qjcivrzqwlbravpsra[zilvcfakxnllharqhi]hqztgurarfrpmtxvdwk[aybsiaabiqtxvegkfol]rdposwuhdwgdiqdnd
+bxxqkcnpyjrhckwg[ndxfglcetarccwax]ekgmeuxdzsevypla[lkyczdaqbgeusesaqpo]ycagugbwbyytiqqww
+zyjztilqxzyqhnsxri[eqdxnwvdejxnxhkl]jxvbrnndhkizjqpudnb
+jvjvdwddugygslqxxlh[khubfdbygyumlsz]klhfsjpeedjxsxbugq[zgyevzlwzhypnsjw]uqsfyxqdhtyhhqp
+cwuvzqzxwsptjpi[ydwizxalwppbndoy]doilzhmzzclxyolblo
+hvyktbbtisuoixxlbp[ielefwdbakmijesfd]ygoplccrqumknyeyba
+byxuiqrkocycxolu[keirspyapzwoeqsioyx]uqbfvwfyrigpovez[bexwlugermolrvyhajs]baxemomocyoxynb[xmuyqtsyflylfxuopf]rjboetafmjgrpsm
+tdklkptxgstlhke[rdmlbgaqzezppltw]mmmgqwlhurtjqygissa[mrbfvjpirijwrirqsjv]cxbsbwsckpmuelsrx
+zvltaytdxmaumarpia[bczfhpdfxomflhqmy]sqijqpemvyephhbi
+qmxcgorfdqsuiudpa[heapfprpzjujgtbg]mngqrqyywqrispeh[pgrhcnjpcunepjj]habgqhnhgbbqdptbo
+blfcfwbcvxfvhxav[hgaehlcybapzhxu]wkcghbrtkkwvjyzqlr
+knxtxqrxtialzcb[wnbtaiesijtoxcpa]bwxxslcjmzlmaccropd
+xsuneruvwxpqovsx[qoyrvfdonvtegja]osapkfmwfyoyfbomx[dngezvkrojaiypd]iheegrvjogprspujlk
+ezcdwtmyvgaqnwvir[blmpcywkvmzsuyo]zwisjrxqeselwsnbf[bmxecxmhgvutavznsxd]afuyhzbtlovctkvmppw[etavleaprramiwi]odmsaglweilbnemynpz
+pyrbvyndildippd[hfbkkwkkenhpegzd]glkplukxdjodpmndp
+rbnxzhtibohbvjbtlpk[eevybrbygduikemgg]vtkdqwgrzfmkgdpoz[zjcxbexbxmncrbrvlc]ezqsyjlbwumelgih[tselcvyztrdlkugvx]vgqjdcgybgbsddtaxaa
+conkuduwkjlgrfc[evbshdudauhmqhejp]vgshestjrgoxjmtedf
+qayvcfewuveyogr[hyenmhabxswictfv]golqmoruooihgeelk[kfizdlmpmizsnsdvcnm]dzbneckijzdnadazot[yfxhyaecuwdkwvzr]qhkicwsrsbzjwpota
+lcztngoqsiwvfqhnwmk[zvfkipklnsakhcpzgtc]vyesgzpglksagzezcfb[zgyhivlzfzatvqlk]autcwwoipxmtamazxcw[efvcjwlrypkqgap]hcvafpyqabhqrgklyll
+zedcfrhfzqxfsge[scfaefxzwalnttqmkwu]qtilslwpcadwvaj[npftppifpxpnvqtvetm]jiqtmeqjghuwqpsfd[txhrtyrvwdrazlnfu]nkzjxxiplnewcjv
+gjmomiqzzhsrnbo[jwhqsbyluqjjletch]crvorftrpojbbsd[znqatuxgxrclcss]rfjdcsjwsqmvuphcvxp
+mzjqzmseuxltakor[rjfzudufbzhemipao]vtzsxumzviwiqog[etectpaoshwzlut]osqieltnflfqdnksdce[lbueyqxlfuwefsuue]qybniqnpkdsmirlo
+flqybxwhijhdqba[hdzrbuxakxxrdbkset]qtxkjzatvekzawmt[koxwjtmbgymuqxggz]auwejfcoiofibpgtkr[lsbcavrwgygsuqlksef]tgqgzvxnthlpacbz
+eqtjkpttgwtnelvbwhn[hzjyymxntkqquur]qcoxaiyffkkitjn[wbywpfremnqzvepiqu]knvvkbrdfojkanufw
+ezacebuuwsjurgex[mlvnrrlipcdywriyatd]zlexrnirycvouts
+gimhfftrumsmvge[fkaxvinxrtcncwycj]lrnulsujawsmjsd[wgfadsurmhiydflwk]uyzksqugvstnkkybp
+wbjxgkmxhkqyypyfha[sepuyxyvgozypvacar]xbgdthsqwooasishixf
+tijyosliiskkmuwpy[cjqnhwnzbekvhlw]kltiqunfyjrtocv[aqtrefpxkelrjchy]vurioaurakqrwnre
+kupcmifhcvjbkuhydkh[rvanehtiejcvbiholi]qcaksnuoycdanmx[zeoogomzpdwezmugl]nlcgeroxhtitayvctx[ogvmluodhaqxnrhenx]zjjfjsgyfglhacjnrhg
+mcrxrkwvqoctzkthwzs[wxgrtuvzcyprxrxyu]xlbiinpyuhhzyxrppup
+rnxjtuzfichyyrkpj[rhirkzutlarvceqy]hpylofjvreuibpvr
+aucrxigpotylwkz[yxfeikktjcxbvnjo]prpnuvlyybvecrvxc[xtydsqbcxsadlfijqdd]abmuipmottbbcvcrfus[hbeqwrliqlaednpcbo]hlqboxsmzxdndwsgc
+rxcqvrkeazdwlrum[txghdyqabezfzxngb]uhphklwpwfwlohasmth[rxixwgamovwkutpysew]nmvnrdggfypawtro[qwikkddzvvvigqllnru]idezdxcxzczrmzscsk
+bvkryndkaaypctgubsc[oeagmbkzrpajjazm]oumyivtormkblitv
+uponvppnjwuqdzutdsf[cysewmcnwvxemsqnu]trfjheetuwtyugt[iqgjwbyeyxrncynfuo]iayzdndfzhuvgfn
+bbmyqlzefpudqwfrw[rdmdrgxiooxyvihppgh]ounosrgyslweaogvj
+emuuaxuvfmiwomd[gdovbgoyoyafbeggh]swiemcjscimazwbcqa[wsrjizehkfpeimwo]lgvmmtgzqtqhgvuru
+ufroikrhavhrurk[vbxpjvirmrjsvlu]voejxnvidkqgetnksnv[dbhrcnaybfatbip]wjpafyfywyqmsugaeag
+klsplmpgaxtpylszp[pasiteibxnjmtzbokc]xpadcdaechphntvdxv
+ykhxmwleggpiyzbu[zslsjywxxtxviladgg]txteqpaaovqculopkrz[awtygoizdamiaglxv]dbicgkaacrvfgyv
+xzriccfleusulnlvvt[vtsussorofvupuwrat]idoigjzaiabmlbwhcas
+mziqkskltbhvghsfuyu[aculbnusbqlnhnwpwt]nbmpwptnavupjxs
+rldmlvadnumupyxqm[gzzzjbieaiupkytkb]vibwqcvqvybamco[jnitcmgcxonojznec]qsaxoelsuixechvn[bxxubbxveflcfed]pabprztdqxmocfkqt
+xmpazxprwkwbasghfb[nuhgoguvmloomlgqyj]vtnakhlizbmtiqfqudc[ijjevcorrrjzangjc]eyasctcswtctxnu
+mvdiopzywfanaqy[hjvcxnznslqhcqrkec]khqxiuhqkvzbfkog
+ltrzictithutitxt[ghgxcrairpbnnoemvso]ekjiysoqubdndgkw[qipmdfcfxuqmolkxe]kxpapsvkobzmmbfiw[udpdrxeozgjdjhhnkm]mrpflzzjawefwpzeb
+fdyukyewblhyjyx[jopwomhiisxnuerpi]glsaylkpbyxllgwmfv[rueojdekuaimcvkniv]witrkqkmzkyxxwlspe
+uvfhyswjtnyhqobzfpd[nhgpmqskcogyceairy]xowcrcyirmuruxtckh[sxddnsiedqedpfiykji]kpbzbugmaleqxyl
+vqqimxfbueniooe[lzxzfjihkygecvzvv]flcrirjngewtumxzs[yandwyszuzlcubt]dvhbxvnywsqjyqhqo
+lunihongrpvpalzq[tkzljqepunhqznyptpj]wkipnucjkldgsubida[tdetpgexmnviwswpt]pimhitvqrrjvoqwis
+lvaekzofnqvdubfrsk[lvtmacbdzydqabjkgxb]jbxaasjiawptstqogi[yaenwdrdllrltchumxl]mbpslcugeuhqzgqz[uzducptflfkjdrgwrm]unxbcxdgnoykefjtzbe
+eukrbtlorkrtqfab[lekqnqbejpjadne]aelfusrvaapcnpjxb[wqqogplrxvgemxek]pwvvamjmbsszdamm[heouyapzgvjlotyuhxw]cbpecxzwilyxwhez
+pggpeuuyirrouzm[llkjbvwilxuvtyeiit]gupoanjhyesnwhpltp[ofhibtfooiebglzhday]yvjyvndeuucjrimrxr[yeylaewmxyfcyuic]csntkkssbctgwdwjvw
+nlytteqqgkalpmrc[sbpxcsqbctzpuaakx]bsddanjfxabwiljmlxd[ruegjrpgrmhyfoaz]onwknfhnjitgtubtckf
+csaiacfvzsbxgthemo[npnzkvvtguwizylow]htwpxuzhyqiukmldt[yhdfdlhdjhkcrlg]ipoknipafbwgxytfpoy
+xwfcctwnwjeskqag[lftxxdyrypdbyeey]mmkwkojnqpaohjijh[rpsfpligfoulumlq]yrosewdrqkbgicvsrmn
+vgmwxvnqhyblfpka[qnmplnesqondpvjxd]xkjprddmfvabofu
+btynuvvabcnisxbqvx[xlnbrzabytflrxd]fjphbndajvoiwisptv[mxqpntetsskqjij]hzhipxqihobzzzq
+xehxreqkkfjxipbdc[sxcdjlkmlhoxvdy]gahtakcbmopomka[dqxdvispmbnwwzhc]ypvvjdrhxypkpqyq[ibpufwgxwhokarghroa]gajqcodcioqeicayace
+qelkhkmkmustwwbgnk[uvppfsvufazoogql]rigakcrbqudgyvrm
+vclqaggfqozeeylqr[ozvvsgmagqdrieg]kwdavlebaonurwu
+cospfllecgkgqtzpoda[ygnwzkxglcitxfbpojp]fmjziwhwyfmlgymin[oxzpbbrgubhmnhepmeh]dtgwodfoyponzkgkq[uyruiqiqeiosqrgpd]vzqywdxoywfzagvlvgz
+wmpnhrjhmrljibaol[lkgtlecrklokuufgref]fpbroqptvihmmvlapv[kqyhpvvnziiatpmysj]ihgvfldqjawqblllm
+epmrcmqegwfrwduzatk[bwvgebhmynydytly]qkuxfjmlityuqpiuz[mrcbeojpwfmogyqtx]fcuwcopogsuxrwcmpd[fdjccinxufucskung]djrvwtngllkdkzpskbt
+ioysscombikdlfl[rgvssthnjkjyqbus]rxxgsfkzthnelrlqi[fmouezssntzpkpvoz]xpedmurwcxbmrogmqc[muvshqttktmhppw]bcaksnqurrkzfuvsy
+yrlqwmybuzttmta[wduvgviyivhsbsfoaj]xapgyafdheaypmliw[wzkgiqrgjgybkqlqtw]klbbzruoorgsbgnoh[fcztvzhzdcvytmx]xfuwxklasmlzdpmd
+hmlxxegorjkxmwub[szfpjebirhpctwhqjo]jhmflkbfjehpcmmjmc
+izroszkaqdimvccaj[hxneogylklgpkhnm]gxjrzoymwdorjxfbnfd
+zkcdwfzlffkzejmpz[wacjjgvdswnetpj]olypdweadesbolvc[rtyiqvmqmwlyirldxl]dshmdsgmhyvljdzucnm
+ckbqoxrgztxewnlzt[xmndrwzvoououidh]natgwmoyjmlqxspdouo
+swhnzjzdspsfdfe[emfqxuzpzupyqefdh]oqzqhvhkedpagibvkae[rzlobzqrpuvpkicb]bzoliytdrdroreles
+iztvetvxjqpltvkvsud[zhifpxvnvfweeau]fdfztegddzegjltcfo[cjapyvcsmyppiovo]zidpbkafpcfkzxdwv[moqbrmegacmdotcm]hspyralgfmhiyvxa
+jdafqreeawkefqtdyl[xoaybwduvbepfdfvz]gvqpeyxvzvulrjt
+pddpgibqytztkbgsuq[ymujijikkoudcngw]beufjijpbvnumuim
+ucxbhtwexygmrcg[uqurbfgrteletvvkqon]dubwuxxfagugtxsnrg
+wjsyuzatnltcqwfim[kbcgsyuzgxxjjvb]lilpvgkqxyzrpaj[dewurgblijpigaz]prryhpooioetvovtskj[uoskeykuyinefrz]dyyodskolistloiwsje
+vjdndymndnmoekurc[jhrgpcevpktrczlt]xwmyfsfdmppvxmrh
+ncotkjbzckbxpvdynq[jeagqygsdeylrzqct]putohmklmktyecovyk
+htryepnqeptnntbvy[ruetrynxkllonponrzp]uimyvygbbjskgfuuu[gossoavktylxmncyyfs]yotrlpozunzomjtc[tgoikyfrrmlvyvoe]rlnwzyigyvkhequuh
+quaqpykfzgcsvjvktt[uewzjdwgvbqsjjqorhi]jqpqlbvwatrkjwuefhj[qbnjoafobpfminlswxz]motffatnypzjzimkskx[znplbzndpvqyhyiuxjn]euozgurjumhmbsksaqn
+oqwcdtnqratojpa[tjzkliezitfoeej]jcmjzggnpndrbcdt[vmqdzdcmnaukaulpxrh]jvhftmpjndinconrd[jabrequmwzqgkflxe]qfbpwimzbdaedtyll
+dmojpwvuihorsnuuntz[jdyqngvtlytqqbgkhii]cregynlhfgjwcnep[rtumpjtsmrbrblxlt]fwweoejcozelkas[qjirbrbultjnrwxqgnw]crarxbqyfrflijjqvcy
+qjjmiujbippvbplba[rgwtrkyumzpcfeli]wzcernyldinuinn[vkckrhdnarhuete]lbxndnnigssqlvtd
+nnqvkwawhoswydu[vyogzkuofpiahaccjmt]iqmnxjlbjavnuyfupx
+ucnygbobqgvuyiuhxje[fuobokgfwbvpqbfiyj]jxcvhlictpfkaour
+rhuckpaaqppfdoo[wioieplfptapozwb]uoiohcdkyohvsjiis
+ewqoemggcqdhnrmehqg[mnekdxnxneimqudm]sjjhuhuphhusqtmt[mpbvgfwbhdiedzh]qsixlalnrwrbgjvi[ncuapspdwulmdwqva]uueriochuuievfzbt
+jsuomvkrvqofxwtl[nyuglrpjfuonsdktpz]mgejjewvakggbzr
+nuagdeojtvcbcoethg[dfrjdlokuqvyzoccyd]jybqgicldznxesoalgz
+drmtftzvxarkzim[eqfezqeviirhllnne]qedeseblbyjtwswj[rpsjqjbxrtzfazlikux]mxwswjacngrjggmpjjz[rrhkcjlsogctsnm]eaaugmowojdgcclp
+tbzffdcdmjlvzjo[xejdjrwbyqiocuxeiq]oghxfuptfdpnxcoluz[mrampxwfbmsssheliu]hfvydfhchubogir
+juvhuklkygekzbznki[wiykilvlzxkfuqvo]lzcvkmzznkwauzrh[jrhmbyqljqnyijio]yrrxyxcjlyeratxp[fvpuvopxdcpjjqdlez]adqimncfauwosnuu
+ukltbucihswauod[bhqaeqkxbwivywmt]qitkxnmylbyavvizdhl[tldglmhmjviujxhmqf]tpejtzahvavzgxdbuj
+fqtildszglpqzzjl[dgbnuttrslrulraavu]adjaybskolsnapzmuj
+goaoupqphzoejsqpqd[kmcnaedqlpiihaft]cffsimwkqvusstdj[jnkdxgldkvfyrux]ygigbtjpwzzuyzzpjm[tklflcorajolsxozxr]oguklnturjdlgnzokbc
+ewgkzbnemxmcxgkqigj[dzacevlmkuiyxlgqnkz]oxvvktrcmrahcvmlnbp[otrfgbaaqmkofacmrlw]etrmldlvsnhehvjk[ldvcxxpdqmgmnmrw]lqyafdemdlqcriwh
+psonarhezabpfsifv[uaqwtwobaexigqnc]fuqrrfgtwtqvbnjjx
+jzegdhrxnytavmx[kdldajeatgbqscvf]bprcipjdemanmczkt[piosrwzmzmqnwkh]hvcpvmuoblvumniat[exkpmlxhaynhxvrdmgz]vmuoxjinapzklxaru
+ovgbmdielzykiofb[oiujujsxewzjczsowk]ptlvujuolzevdlij
+ixubgymonljdliwyflg[naxmhtywscwdgncnhkq]zikafaodhrbjpslz[ofvxmfbsoijfofozrwi]ieymceoceiohwaxs
+kyindqkvkdulbxbu[twxhaiaixtafaydx]iwbaxohuhfafreuc
+sirqeuilhguzjwoildl[ddldmsqqierffbvftq]xniqqnqutqzclhoj
+uyjikikqsxdnvvqptpz[ymhsvvjxoijzkftht]hmcmhhdmmxkuzhfcifq[dwoqersxcrtdzdwa]rfxvekmjgrdfutfyrc[xhbfbjylhvtptculh]lbbwcmukfgskjvhyrf
+ohiiukzjxgigfnurxv[tqsjmkobruzafjl]nbsznnqdcaxetyxegku[ngbuxgnqpxnweesoxuf]xlzokactshqnwjbpzw
+xpixpwufmmfestlf[chjkyywtsoksgcffe]xyhkqtytuuazytydyw
+mjeioloitmqjfxpxk[jrrpevldwlolkfoaur]ozkxincwxwnrtwqaoqj[bowfbswohzbtdojftd]coiebgoxmwyvcsd[utolilugilysyjfi]ivzfjbjdkrldfxv
+yoydqexqgijzgbxns[klmoyhlynafcjwhgllz]lmblxlcbdxnzpdyfxuo[uqzaoedsewctgaplxay]acoovzqekxxjgrh
+iinmymsvhmzyqnss[buxwtdshunlxlfjbhvx]tymymgtvwiyirdt
+jslqipxcivbgifjpn[qkvesxvurjlxpxoi]uiskmkydgjuwipynyhw[ehwnfnirchutzod]hwyrmbmspvyxxcsbz[iblijoorvduvtrbtdfx]vmkmogtwknogvxheid
+ygamayhzabvmjweoojx[iuihqamxpamebyihhcy]shltbfotaolqije
+zfqtclfvfqqbztnch[mllzuqutsrywfxdahle]aivazuuusuunrnwoxj[zhqqwnbilfzqmow]smfhaitcdivwbhqsfc
+yyfiotslsucmofojc[xejwcsxptsxvlpik]rlslgphlgfxydgu[knmtespszyxpghrw]gmbmvaozgrvqqeeqg
+pqbjbexaeyakyaaxi[omgcbnluzwoklnv]ofuzblenimvaqtxjez[vcxbplpfqwpzkftml]cejegegtppicmmbu[yluyvzthmacplsvwpvf]layvotzubjmgejnz
+ljuprbgycxrhdmghqqc[nlrcynvlolnnqssdg]xhonbxirrxorjuzpujg[qlvlvpqpqtwjuneh]vikbwqmgwisndlqrmcg[xhethlrfkbthdmu]dckjqdbrblnojcrzurr
+mqutqmdwozuhzwqqxq[dzwzteljtplitdhar]rxghimhyqxowhlxv[mlyoqapnlnyyfocn]vivneyldkjcptbqhp
+sjhqaabpeywbipcxpnq[gowomrhpsyrbprhgy]epfpwebswptfcwghpus[xtyuymkaubtsklja]ymflhwvugjqzjro
+aozxxdegoqmyscxet[ssyqfwkxxcuazrt]jmzkmoouxevdffhmv
+egqxowrobuloznoyf[hgzcdrutkfegvbwehj]sbqgbkajfdvhylhy[pbyjyysgfabkqqlklz]bmgtcrxghywvnlfvgx[ufqpfqavzhnvbxqjnb]axmsnnumwpxscjufqp
+tgexouwlvezphimqk[akxteehqejbqofh]gqaqxpqtutrxjdwh[mgkvyppcynonofl]mvhwhpweeutuwoh[ykvtgfumeptgawckn]vbxioamtwgayepi
+ehwlukysindvrores[bmlmhiwontkxtkvr]qdadhkvcrvpfwewnt[qqrjjvoffqmwzmnkeve]iylhaugqsafcgfkzuqg[qlghikpisieuexn]encddrspyqffsprdz
+emhhugkpxoaimgd[gatktshudmjikpvm]hmdwdegfbdunpzqy[kqmktubpxtauvts]eixsnjdzhdqllhdo[ohpbpjtlcocmboouaq]gwkzaltcrojxdxfkr
+gyiflvcgrvflnqsfua[govhyextdputygvvn]mpazvdcrlxrozfyfcsr[lktddzwjgtvycwryw]jhexlibwfeiohlfjfom
+wvnbjqwykgnpujeos[bgpgcsvbguimschbxzk]fxlofwgixrlscmgdpa[rxjjosjniqheyesyyf]fbuovdpuwhognclgw[ftpcohfizteexczkrca]caihefjjiqvypct
+znsokldvcjpxjog[mmkosmhdjarmlpvp]rckhnldzjkcyxhpe[hxpzqoeheamnyjb]xpwcusvvjufgmqpjd
+wnfvoxftftdasxxvwzf[shljlydeedkfkwjzrjn]zoiutacwoqmzrtft
+aavzczotsjkzjqd[spctqczcqcyjbch]abwtqpotbsyxnqm
+psaxaferpdjkycbefq[xqgdjlcktplyirogu]ayvzfrwshchgkwk
+nqezrycwcuqadjxgygz[cqgfbndiaxmcigiglf]miznonmaygbxduatm[ytssutmaudrdfnaje]vwvblylaxpzyuqokqw[jkbbsvkgmwqibzp]rphvqqzskkjjykrlrl
+aastgvboysnlkxeq[amoiceiqwyyzwizpra]xvnidsjvbgmwndyvqup[fqmasljimjciejz]vsuaqkawwzcdegslhw
+kroepfhjfbtngclblv[nmqbwnzlppwwogx]tcmygfjunqozmnwhv[gnykhdptiycroiq]ejwqgdblbwxhprzuwww[tnfzvhsfvbgpnjdn]dxamipqvqyycujyqlg
+nmczyoxdczyqdnyzlo[iudpmifsntjgaakwxj]lbhyrfcescrxaabp[zpzkolmrfnnqgrlkj]vxrynwlcrmuqomi
+ozzsbixefedyqugctr[ehzredumaoouoqmob]ajhvlcgqyqgpphtwhxv[tnvtgncjfzpsgewcd]bwolubbkpwqqeoayo[ugtsozzakczenvgjtg]cxtduivacbeypub
+vjkbvjmsmwjqofeiq[qvwfansyyzzoxti]zuaejbqegivwayycbpw[eeiahaseruwjsqfbqpk]ikghnvcjvtxtgcd
+vivrgfiukxnbynsqp[cyuxfqupotifxozqnc]iobeautkmsbtwovbrdb
+gmswnmzxtlgkskz[ilsfgpqvhfczowcgy]jgbfasfqdxeckkl[bkknioqgtrirutu]mnwvreyzozmwsikmrq
+xvcbxpcxcekdkzjg[xhaezauemdknbbihbzk]tuuyyrxavoectcoudg[jpatgaisirkdlyuzul]ddafnkyfhdaazptd
+wjuuzneefhlnvmesby[zxqqpbcrljufssq]mehwiypnradpyar
+gejmupwxgpbfiugsx[gssvhpgjkbgyqdgvpx]phhxtbgfniztdxs
+tbcbksrhfnvybudmqsa[janytibukbknmcv]bnvnzoiztqsxnxvery
+zmcrbfzmzecldlunt[nizsuoobvamfrlu]pegsxhninuqxufq
+owgmknvhkuwplumklyv[tpcacgallsjgeuf]estbhqisggkmxcrxt[cecydypetuklwahrxs]okdiwhdydchkjhei[tpunnntujbzwjwrq]bcpxsvagbvvxiissg
+zlcfrdllydptpnljo[ysyvwymstsmbjoy]ukwowlyltntxpnvp[hfvczmmzgyhvpfvph]yssagzxajdthcxea[uixmfqtqbguxqsk]gfuddvwyinlvxcq
+ifwsawgrffgimlcwqz[gttlydqxzgwcfng]uezrozxqsrgoxnf
+sdzmakebdnqjulckb[kpeetbjmqnjsxypx]fattzpkviicgbzxhtad[dnnceupusnyubcrwoa]dwicwgfuccxltygmxe
+bhvftjhxhpxomsyawu[wszezzsyswrdrlqr]rhvaknuzoopejwnmq
+iddffrsryqmuvyrsyd[klvpmmknqkqbnxuew]wnsuskrkejoyetzlaij[mbxwmnqnrfqexoeaml]spyxfzlrewhwzeo[hogofwwdkwvyswdcey]edmmnhtfauckalllsib
+sicisnsqujdgmbdk[pjgkpjtwtzacufridds]xnoqmobgoaojxuccvi[akyizulhrpqvdzl]nuoxcrdvuxdtcwu[ejfydgnmckcjqhmbsx]lwbbrynehycwqui
+mmhwekjgjfjmmimta[gctswyndsthdyhire]baajrssklpzxqmlvke[ltkglmlowvpviklmnzp]xqgdcynvulmhzani
+fcwuhpcmcmusmcmzsk[daajoebedzmqrvtbpg]cmubtjbrxkumvect[swemlhyklrgynkae]msxqqcdegnmfewkn
+ohnbhxtnlvqsttsis[xibvstjbtnheqqqshhj]nlmikiiylisznwcq[dizyuuiuwhkhmtrzzg]fjgbjwxwlkcoqcgogq
+gkxejlwkxayppjevu[rlwqikjiqcxcvgw]zkcjcopkwedfihrqzke
+gcakbrxzymhacsg[edvagfjmxhrrytuxthe]mojwznzdsgxznkl[asvccotlewjfzypkiex]gdfoemtsozpsiayo[ryiippkmjzthrvwl]popxgzxfogjvgxry
+cjbixfgchamiiqvfk[gwxgfniaznjuurx]dszifvjwbmjffzn[dntqokjkwmynchvwx]lcxwmevpndfqswnin[jpwcnfxgzfdwcgsx]hxrfqzflyvumwksagie
+ptyeunotosvcwam[oimxlvevjqkzxlucnx]kzfesplnuzsakqhl
+zwhvoxdolwwwvxtprp[mskfzikftyxuifscxsz]poodydwynngwieq[onntfnfnhsbstcccye]fydyxjpspwpwuqx[cckukovhxxcxrkd]dpcuytdrvsgrsbfjrwi
+mgvvtoestsdfrrkqdp[jsgddzbtstbtgwcz]wbewvyvzgfcitls[byvjjhihwocudzfpw]uvswjmgdmezggeklden[zomsrocssnjxwxunet]gexqvwznakldhnds
+msfnmrvwrghyzjkgzfu[odljvajkagpzgmfrkyx]aggpfmghrovrwyknxw[ngqglnuypmgejixww]twcvrjddnhduugpxcvg[wiacotdtiglghlma]evtvmgrrqafpaxu
+qblqternpbrtiuh[fapmkfrpbuzhwcfnybk]ardetkryijgtjmdj
+agnvlcifudtpkskhz[ssksropazylummmbch]zjssxslmlnmjoxxf[wmedjpjwjtijfmucv]frmxcjyvhtnyglrkgxq[immpojsucooxlbdwz]jiqurgdnrjejroukde
+oieagfvbgeblwzzzm[lngokglaibefcvenlwn]fdsqzeblukuhfzyhf[twfxwotgbbehlaxntq]qydpgasujdlhkmhlb[tygpnjusvpadbkayoba]ntdupgbgwtyasupw
+nkhamuohfhcavwbv[hfugoocbsqqsdxmfc]vgkzdlkydwyqjyn
+gdoccbczcjldspfueoc[duqmkqhvplsatlhz]iafuyzmppcxzrtiir[qbxmjbnnzrvararuvhr]uipvgmhashuevyl
+tvrgoqgjslpixzd[dvcgrtjbyihdxvlginb]iyppczuwpewlklk
+mnlitvdbejsrnywrqw[jkjhnxyadzqdamvb]xywotroqfapnbhndpf[mhzstybvhusjhspfyyw]ctbjwfigduuutxu[wokoleeyoutpzcha]gpjmqufzmyldciqtn
+azzofyumdbjdfaoxzrg[qmdsebebhkhhdpt]ygyshnczkxlcruxjz[fwxrkvqhhlyuqvxhdcu]liavngiqxieczgjqa[jvptolwhlncroasmr]kancigwgphwgwxb
+mkqtbfxzplgmsslvne[vjgztezntbnrrptsabt]bnvqdmfenlchukjgi[ieavsusemvkjepivnej]gbyeowflyuuvgsowctc
+iddhnstlrmffvsaz[xnejqqslbnbgnmlyu]eujdrqjvxlpovzxwqmb[oqgwexhdhjujitcwy]dphgwjcaxssylcb
+pipmxilwapisesgun[ktzmndpffhnsfnchc]yljnipppqujqevubxg[rorbgmlkbhjoxbryo]ondmcsehqvvexnghqpm
+lktmrzrxpluntju[nljelzujtjzunkezb]ozrmieeacpmaqghf[jaexvmneyluaohiju]xtuzedgcugczrzle
+izpcfmamliqncmcgaw[rfyjbmvbiopojxxb]nogrshoiyvmxyzjyn[jegqvdtkcqhidepcda]sgdnnctcbmvtqsbwt[rtmyhffobmfvwcl]krvynuqvannkyicot
+dewutxcsanjdlmchu[wcicioikzjdejoulljj]bqxeefxgedpsavlw
+asfkiixaolgtwtjw[hdkpghivmztxiisb]wtwrflrthfrcattgar
+gvgvnlrikbfepogjf[ipgxrlfaltggvmkfiht]votekpzvkopkujkufl[iyhdgdagzhnrawet]ajhduyaxppxwgvgujmd
+tiebcylayagfdqw[lkftgyduvzdzpsjkcr]mqrdayvtvywsquj[xectwtbhvpnymjcmgon]sweddpysjrwgssll[lgzhfkzexgtxamjbmgh]zvlhicbqqvmwngosysq
+oewghkhhldonunufju[olrpkibylltmvokyjna]eedjithbjuymlzq[gomlxncpbgzolpm]qmxofuwfegkikwfihck[wudvrycglrxlypz]lsghgmgcidcxvws
+dzisgzrxauzpmmq[ehrywgvtnvhkvin]clqsfudqvcnwwxru[vzeqaaheyudnqgdfb]lmasdsjzekcpjht[gboxhzpaguxuvyha]ipqozarhswigzeqzdom
+dyyqwcghdabypdkgndn[kmnrezvgzkfmxyopiin]vbxvpeyeqncygca[biypmucmnkcqvqfjgyz]wqwfitifrfckzzhftkf
+ffrywmbbpzparzz[silwmcdyckltvwu]syphmujhpatfkccz[kagdkkcnnoxwtxfe]bbxheegelkvftabcky[mbuxajqsttmhnmfeobw]smploudflhpjbxgpnev
+qzqdfxgjmnrbltg[fnfbksredcpkbqtp]ncrdcfskzzqztrm
+uvfviatjevwnmugvgk[jwpgxsfvfkijpdxo]wpdwqxjmxddyigesygp
+qjsbieiciaeemfblfac[jjudeshcfzeiezuepgg]ktjghduwspdhkldzjyn
+usxxvmwheuvgleswoo[irucqcgtsjgxeqwur]pkjsipvxxkjoqqp[osjgklsxyryzoxkfnm]xqocoktbrletccuw
+jiirthsyxhzgjcrx[yfuorkbrffeseaakcr]amzdbwfoaioblppammo[pbrbaxhfftauuxvo]gpnsbsppifolsrra[kntharjptgxiztu]qatjusqejmdzaqycw
+ssyfomequfwxahvfvy[kctdlusjzhgntjy]zvtmizweshgffnlh
+pzfvptwkkdectmi[koencyjqifclilknecd]wctndrlxwbwkxqazsj[jklzmkhlqwwpvxv]mazihpfxewkjypfth[vannhyvviuyjhivwco]qghwmufezcwrxtuvx
+dltmdrlzeauhhwsom[naqwzhfcgzictvbsswp]rtlevxtzzviqkabimc[dafvtawzxjabdtx]kfuyxbmqrkqemkeetoq[dmalddncrdzuslnpovt]ufzjluhczhxmnanov
+xioeqonkswrhfwqt[hmpztzezyzpqafedtpr]wmwezeoixeriejbskie
+asocnxlrbkkafwscv[ouuntljnzdspcxxub]wzqnqrvlwoccjagszr
+scrsvkbwabaqpjs[xiijpmbiflmxyxwkfn]iysftpuvocbtwaggugf[yrqyvyoqxniqxcxmbqq]gixcxmltuozcxcqehl[kutzmitklfdfouflbh]xdozmussjlcttdf
+apnolukxcjppvyhjenn[ktziuhqmkbjuqffimzn]essdusalxlbxvbsva[skvzdkvwpchapohlyq]mgcfirbsdbqomtxmxi
+xxfucigatkfvpubv[yrpoezyzhwkpkkkmot]vapkpzcbwhacbrp
+itcqefgdapiuzqtdzm[vvcaufavmazjpfirrto]hbrtkmfzxjewtaswfm[xtuzqidapfxvuzgqm]xhpufritjjxpdlx
+nfeskfxpmbdjrhgusld[vkbvbootlttpfkt]nlsmsujsgjnjigxlpm
+lbindwpgcwkdslufzsd[pvxblmfzbdbtwihu]zmrgvwliqftoxtsaxg[pyldqlarmljuuzaj]cgzueqqndeotcvsnv
+xedaztzmryqxwnb[uhqpmhywmsnsyiq]ysaelvgeordrthhdtkw[jdnpojewrrdeotk]ynbkvsnjoxwgwxe
+vkfmkgsnqpgareui[lfezzjgbdptknrxfq]aatkorgxlumdhvjay[ngkudbpkmdvdskihzh]nyhmsgfgpuzhzkbh[vuejragqqtizjmqeqdo]ascjasathqvncdnkd
+cvotsugnqushbrpprhk[totbjscfphjjmur]rrxgqtuyulqpmywjz[nejrzhylbilebdtqvm]hlsppreuytghvew[bwooimafehcdzhmyp]qnowsbfdbeupqtila
+nykwyqwbrhifjickcwr[bkwtqhihmczedyoubdj]jjwfyabbyjjqihit
+dmpuzthecwjclvd[lxhxcrnhvdpijjuypu]wbwmabirpitypyjqk[ywytahvxbsnntgskdj]nmgcaavgvyndrcq[grkvyncdwfbmfdb]odnojfyxxgzspzuk
+cxguqyufjifeyzgkw[otebhoxdrvumjpzgb]svtkxxqnblsmaodb[mnfwxqqdwqotjbg]fcvefinmmnutloh[ljkeuuuxicazbuzlfx]qhrjvfrcqxsizjhn
+yuhhdmuebufhyly[llyllkurxorkwlx]tbpgsrxtmztlofcobjs[mqoepigsswhitdcnd]gxjxulsmxzqjnyx
+nuiovuspjehxkpv[qsyjmiietfwvqzj]ekuzppxgppqkpve[ozfsqvrxfeumsigv]xdzyqybyucoxdoklj[crnwzfdarswufanfljs]vsbixgjpzbdddcbe
+jmvfqdzgsklcrslovql[gjhklxyugbfvnqz]pzitsmcqszousne[ynlltwcmydmhewn]otvtxsxrrnmwswnje[aegqtdvcxhorjaof]hbekoaqmdlkljjuufj
+qqtgcjcihigaujbt[xqlhtduvqwoxtos]vpuvpxdusalphiafnq[jmwiomadjxspohwrxi]zjymzmygsnzzulziln[vqgdgsqkzgzbzbcsxd]xitnhrochbzbthxnzkr
+jrwchpzsztpxhvph[iqangpgvkiylfxnlvjn]dhnfjcukccyzjmw[gjugzeqyqfofstyg]vhkwihbkrhpnoplbksl
+jxegyldqmsgxgxfbu[laousqjpancokjp]uzcekpbvslycdabm[itwqqjmxywnpmlfhfq]lmzuyvovezbnoscoeog
+tlhzhxqkdcxilhio[dgocupjdlzogjwdxh]azfvreuwrvquptrlf
+llvukyljihylpgiq[rbdleeyvacbovvwrqt]khplkmlyeccipwqwoz[whvvhrzdwiecqbeb]hmkgsugxhfukfzg
+gqxtomykiwexvcyy[gennwfyucypiyhw]djjiwcipnaoakagmlw[mjoyxpjjsrzurtaozkn]xocuerjupzzlmbnshb[erhtdqhgsvjsczmzba]adbruotfkowmvwugbr
+dpxyxexpdkdtrcxr[jnzrmfjuxhkqvaj]vbzavumhudmpvccqsej[whqvbyszqaovrgmstr]ybockttkvclvxwx[nhowunciatmmsjsc]ohqeflsduaoelvu
+boajjbclanzyjge[pcviglbztbaqfvxfe]rnurgxjnrmwciev[psitzaorpbtywmor]duvoistyxrzdovakb
+ixnydttxbafquyvu[vuoyofxakqeocdu]uukrnhkrwvzbpyemn[cqndyeyyplkdvgkhaf]qtchwgkqvcrmsax[crqkwmpcxgvuhcepoe]huheekppokbwogmfw
+ltgsblvagefbohc[jqcolroyboslyuljw]hkdfbyjxzkkhglu
+iduenjlchukmkmkcyiw[hefkxhfefqcxtfgw]zmxzdcvoiaexqfxmy[zzunhvsdkcmwrtomxx]ftpbizjapbhzzpmjo
+yadqdnkbvrzyesp[qfectyenugkfoednlh]hetoqjdjygpjgpdo[coclcclcgbmjuqsolon]pvzoqiwtwwrlhrefxfq[fweutmyirwounikbbe]avwxlrppqyipxzbqsye
+hvzyppakbpizzqtzylj[fglenofdnkakgscsit]dtmyozwhcamapqzhmqq[mzwsceguaunjdqgzy]oqalbiyxztbhzcj
+kidpcgqijppstmrk[bvrxisbchiudttb]pxtcpbmjqnuzdnrrj
+vbbwnaciqnnywtdapbd[nxsuwwtdaezftmimh]hpfbjpprqiqstff[wblblaaxwoxhiui]ookdivqptkooppc[rfykjlavjvqshrc]udqozimcxwxvexdsodg
+ikoiloawdwwukhyog[wldmblycrwkogqdkmd]nonshrrxzgdyitowef
+iwxcdvpwurlwoua[bplgjzqiufihbpkr]vbznjwpmurnncebwqjl[mggntaecbkaivkc]foyyhitpcozlohpye[wmnupcvcxkkjrtwob]fehfpqrzptnjdbrjqm
+kqgccpaxaiawhlxwvao[jwqdyozkwlkjxaxeae]pmzegiqggikntebuqdf
+dinkcecgpjkucufxmmx[kghamrhzvzkmkvzvf]fsijghkzvcnruuch
+gqpmoujcqbjmbkw[wklovtupjtpakkr]bszxogslsmsuvdc[bzamfeevwtkxiaqmq]whvpwuqqpetbmxcxfei
+rzprsbmijwurxdper[stcbtzdffxiikekwkdm]ecsvpslvgzqdkmcmg[dubrkljphbedinwakza]tmuaknuopyvuuvb
+jejqpwjnjgswlpdw[bmlmhbehrgdhrfpn]bgcavfaqrbusgmdol[wcnqvfviopfafsh]qxbdmorlqqhziovvtsd
+gfkacbhzzuupzdciobw[apugufbmkzdcuvyz]rxxvujlycyyauho[jcgviszjgfrqvqddqbe]evzoharbjafyqtvpw
+lkhvmxrbbthjzsqn[vrsinufxgtdplcziyi]udnwpmlftjjyiyr
+bgbpjlqndbevlrx[uuzlxehnzsmjszt]mafmvjrgaehcflm[uysuexeaoyrfqiqoe]eogngphvosbbkbcbx
+biqleovznpnvlgbtgq[rflcogyjfnjnvrz]qjxffnzysxpsxxo
+nghkeaqqxrczcohg[bfqguyypsfcksjhz]ijcgbkcgogmyrih
+ajncuvxcuwllizxkfjl[iggocdpbmhuujlfukl]mpoulqjowqkzeebf
+qqqoxjvsvbiiaytvwu[aiwjzpwlfgalktoy]vbwyiusngxwciune[lkawkiqvzrgksyyz]pjokuzxjurxligex[alhahiygubefaljtv]azmhwehqgrglebxosta
+jtoauqvnncjmeigaamx[kfymrhjevoyhepqnc]ihlwiegxzchevpf[zxjjidnncpzbzaw]ebixvaawkwocytx[qlxbemucbynolblv]bzbjrtnghmcdkscxx
+mbtokokyfqfdhmxwhb[qgazmvdcwebeifi]rsntzgeqyfvjftliwa
+yuwtphemsequwdirfmd[icnjausljalhzphpy]cfzystpixjcmrrs[xywzdfebzgtzelgl]xswnagiklvbjxlfnpq[akxuhgxhpkdwmwigca]vinsbilqirohswgipe
+bqbosglgnqwsfbxddw[emjzxcffmxkqlmn]wfgjtfdvhemhejpmxa[zfxoffptksgmnlbntx]otneelfhzpamjmzwqg
+ushngvjtmvypcadpd[arcpanyyoceyyaee]udvkmybxmgahfle[jbalikfwxmcgtiurjcc]llxqjcpwoboxhaivwdm[crozklzdqjlrrhu]hojkvvqissprjoqwfo
+ofwpbcnnyzbqqvkes[peogfvfpyvbnydj]xvtiykidzuxltuxxp[tojcelfsgwxvwqhg]jpmadadkgfrumezy[monrbqpsppiaaifxz]kylmdiorjlsovny
+hnbxabeskhcgpoaexi[thvxentmengrzgkjuwi]mhxhszvkflnnftd[twqccachbgauoscdol]vvfcqjzsrwjvkwfsw
+bkjhqcswrncpikvpm[shqohewbmungadi]hcrqtimandhfbso
+amfxjvxvdmerqowdnxe[cumwepdamezeecnq]lkezawesphsybimf[lapqafmfsivtmytdoda]vmfmejuxoigyexwwyo
+ezvclrwlggiosvdqxer[kwumjgmaayygippb]zqwtdswaxmydbiihi
+lmandocgeressmfxga[cijznnpfcbsdystlges]fkllytsytcvvcnxl
+enbwhqlzytjctefqwhr[zoqcmvgpsfndvfvy]zlwqhyoulrcveni
+zwucvenctpqzlxeadn[toegrygcfpfkafgxs]axvqswugizubynzsb[luvlrbwplytdwlheaxi]nposqrfedyuugpjnik
+ymdzrqgulicxzfuf[twglxtaryubspobxclc]vucpqrzzyadvoiteqle[xbsxohuegxwudsrfw]axpmobgigohcmagr
+esgnejqywqqsywkg[hryixrmpqepyrovv]gqjccwoanbzljsf[maaujjtokmjpppsgk]qcvrrtrrxwevbvovo[xoymwepaurypzvpth]qmlqfhvovyowpdwz
+qksxeymivlzuscgsl[vjcwfdvybvoiahv]otcgndvvjerofpx
+ryxelxmxsrhtmsqvxff[wxblvfrersnfcyvvpv]rbxocxhparlhcaqexny
+ehvjcabqtmabutiu[ovzwhfvgwqxefpay]nzszulqbxsksloc[rgdlusvaoksgywaexk]xcwytqehromugefg
+svfhxiqruxzcjqlb[dkfccqvvehkwwfjmth]lvkfctbpueegqdfb[miffoptlmgzzses]yochzabyqkmnheasfl
+icdcifhjwhiqzqyu[wgzmgznoewglpcvgow]eujehgisllhkzmmivhq[exesoswhvvsthcso]pjcmtknevqdvmmamejh[ylqwwcuycvpofgqwqf]fyxecpnvxzecnzqew
+fdmskgwxwrznenwsp[qzplbuzhacotyil]plorkkwrjamagmzil[niohlobikfzfyqk]bmxmlxozzwbkrrhnce[xxcczenzizachda]hloxeszindohsfsnqx
+zqsfgmjarzxabud[sqbwrxrtfgydkkwsekm]tovzszloireanluvx[zrdwqaaruhiabxfjow]djnrprliuoenkrxkt[lojfktjsdwdjycamlzd]qlgczlpoxptsjooi
+gjwuximhfklvnyver[urndgjzxbrreido]eowyquwgvnxbsmb[dbigflhjsrccqacr]lhxcuzlmzdopnfluwm
+dnmbsutzllsxouvh[tqykceyhjdfisrswht]ufkpseiwzfjbtpkc
+madjaycornkcpolglq[vvnpkdstjgxcjsf]kvejknagbwlxtxbrbvi
+fufmmdtydxyrclcrqx[nrjdoldmmxxfhncdk]hdbebtjtcvcfqmw[rhfbbtfhhsqiwbtnlrz]kihpdnvnacqqosnhpa[gndixqjiyvfmvrgjrzo]fxwjbxmicjjyvepuzpb
+vyblgyhujolwblvys[zapkgjwxfsivrxdfr]wtqlezngwqoktfhiegh[ecalvtwzjxbqfrcbwvv]tvzxgabmyuvlztgux
+dnqbpkwbdwbfbyoz[mjnprwkicaftsgm]qvtafasppyrbtuqvn[pdlcgrzteozofjkfo]cevpxzfqcrroinmxy
+pdpjqznbmahueoc[ecsdszaxvxzuhamxqq]lyusvisydqemnslw
+phxrfpqtrkqzdtgwetm[muonzqrbiyeetiqxu]rwhbzxkfwcchkpumq
+ltvxqmlcrivtcytk[vcfeszakkcrjslo]tybwtklhhxsvhzxuio[tpcsmftwasalxhe]ivhbtyfxeknudns
+blotcckbcsxnxkbd[ijibgeakkajijumjeiv]svfnhnnkaqfnzpqdox
+zpesktqlipowpsmqubf[vjnynvphcvmazjotxm]bjdrheobrnylbebw
+ftoxxvywsxkptnvz[qcotxazjsqbnflu]xgmfsauvpibkozp[yzpsqrudrnbayikuau]vgtgzdoxpsonwmse
+dqamsxipelobmbtxs[slvyfkooyzbcuxo]dthowqdeedprlmyg
+ltozqbvhvyqclav[noavoyiuiyamvcanqoc]dkragjcbgfqhmujqkvs[pnzefpolsmchtkula]ihwxogvjbctklkk
+vtewmubtnbmusat[rpjmicrcyzajgpzo]khkjajkxflvurcsmd[gumvdiloapvorhmn]somhrdimswsyeeq
+zfrvenflhmjgoesmax[pgqxadyxekpnwwnckin]kqqmdrmcgyweogyfya[wbwicwmfsbthzmrfe]wbstpswtzaitlwbcv[nhialwkwamoawjq]usgyumpojqmvdxhzlat
+kztexifpjlasulbd[gplrmaltusmjvgovnq]yejlzyghxccxtnvihx
+liuvjttbtfsawbpfi[wtezrsztlnzmeaxu]ciolgkqyxkxxvwtblo[dtlfmyfrmfxdcikrb]kmerspmgttnjucijg[wdzyrbvslhkzqocimee]lrrvtrxcydogapi
+bbfeqegoyoyektexr[wceufdsxjpughajipa]lmnlqkrztzbtkwcbxhz
+ypwocnxnpuqetxgb[faqgbonmbihohshmtdo]cpjhlgocldldshzy[uhwgnkdervikvatfpav]semfeosdiynzoomskf[yvczydmxhxcaowkwg]kkwxeutjaronwowi
+rgvuclhfrvlkxiqo[qeywgwrafcswqya]xppwskysvkvseiltg[bykdhqgbgzjhgoungi]invxesxqmtohbmjllh[fuejhljykbpzxdykgj]xwnyayrfadhdwyds
+fbwwaocsouhupdi[efqzvlecvhwinsjeywg]lbjmwdbdjfnmtsaka
+gqvsxigtgoafmvbekhx[sjgsrwdtqwqqylakvbb]kqrtyagzfrqrvlfkumr
+xfuxljcwxkiomhkepi[iaprxlbtpvrvlsig]leqnifsqjfqalkgafib[rfxqsfemmpvfhmrjn]gbqvgdcfcjlcmnxkljn
+veiqbspjrjymoalmtrt[okpsiscbptuumxisiv]yrhuahhkvbigdlko
+uhhwsbsmsbklwewfc[dhnisoxocvomjaay]wouhbmhzfyighaufn[durxoxeyxjhvkwyjfx]novsbfibzjulaxzuesx
+kcfxkxnznogyvymzcbm[mkgpejhpbyziksgv]yvzndwangiuuzwvkv
+orkzkmqdeumjzdda[nsbmhjdjxqfnkkxto]goeaunixhitoaiog[nospihuvybakztioqip]vjzyxpmmezlnaumym[nwxvmqhsprcinifl]uvwjnqwjvuyjjpugj
+mfrhagodpscknas[sbrtzvfrqcxsufv]czqpqctptdlhmytumos[vnyckhoptjkjxuqa]pmooukcidyyvwqtgohu
+resxynlcutzggmtczo[nmmabdsbvwktiykqonp]gmelhvutrvcrgdna[obdmwoxrrlntfejymf]hdxasucdibwwxgot
+mnrhbocsgkfthhvnuke[egdgbouacqxndelu]ajtnqlomsyixsehntrn[mpprufbezhacatf]qeuwsfcjtkpzfbz
+logpvbfpghznuvcgwj[poykcbzvdrpbrlqzlxp]jctrzpridwbvgpvv[nihdkrnanrgbdqaaf]wrzphhqbpznufcxa[gjhuobpheguxqwut]xlxxdfunzjoknpa
+xckjcbxewjcqegrm[bksphbygnxtbklur]bnawweidbrdpfsw[uoyymiftyibdhjc]lpyeqreaxmmjquc
+hnhempuuiakcvgkv[ykdxjfqspjlwdamqd]nlyuylqcjgacgbtaq[swmlxfpggzcagkysuj]syrldafxedcddhhwddz[zgighmpfjmwajrcwihv]atdkrfhvjyqojist
+fkrrirhpatymfnakjpo[sxyemqclncjkjmmfncx]gvewmatlydgleqm[sgdeklgyvflcufvtplq]dundmukthwoddhaxw
+ibhwnndalipgwboov[oetxmvnstllojrpjggr]raawxffqpbwaoafsvfa[voaodafksfxrkimxfac]mrklxyjcdcfbsmpp[ojavtfuwkeogikk]exijoqwqduzdnvpf
+fvjerjfawdvkbzkke[ekoozekkfayzwzjgix]ysjkrywjcqpwoguoh[ykjvlzirmpjxbzpxtz]njyukqukczggofql[jkliiyuolnqdhdbvqae]kpsfxwfkweeexjxlsn
+hocvxscrqarpnhiyizi[edzlzfxffzfmxmssq]gqlnxmmhcmsabueqxaz[mpxvrwpnncxgddguygj]fwhbjqrziztgrkmx
+mdhjmsdwdhyhrqzucp[zuswgksuugzizfo]ekgygmdfansrlvzyt[efhwmzbpzwywckakd]xvwmsbwppzjvwuuqakl[igcjlcbgovpdyssmqc]lcumchflakunifgeg
+mplyixtwewxpmgxnmgi[ngrpejtnvrgwtupvr]kesjeqyleotfmggcea[zzokvnfeweaduwzfhrw]obyjyyqjkucokbu[snbyhfbchhqxknu]fivmakraikkuetpria
+xqgkoczxlgmlffarh[pqiqruxadypdionbepo]fxskihkjyfzlcoomvl
+afohxmbrfvqlacrf[imutjpvzzgvzgcjerck]lerhcxzrzkqlwumny
+yqjwgatgqryemqsp[bwzbdayfxdumyfojft]dfbuzmuzgxmnzqgshfi[pakwsmfbtitkiqvanoq]xuawmajdiicregkpm[kqpfntzvovcmfsxqmnq]ghppydhrurfeiuac
+kfhvgwfuqjsfepj[sncjjxefsdbvjumyo]remoooxfyjmsskyds[jtjwfchkozxniiy]jgfaixubqjcrtvh[npxegekihcqiurb]dvtfybcjyaoushdagr
+fkfbhopbvmmqxthr[kfkibyedkqhtkdu]fntaxfihxuwwpnxe
+sfpdwtxasoodsvwclzn[lroruhvvtivzyzydac]tmwhjsyqjqlpwzv[esrzuwvtzwvnitsuf]efviugvdcoegmashh[gvpwpimfmjnfuncw]fbfppbsyymzfazivsz
+amthppeoesqlfwc[kkasghvolqvbcbdeczz]onknhfpsjzvpvkegny[gxwbzdipdgehnryyj]jodjkpmhcwwszfbggsv[qfutgdlyxkdpbpcc]oadwfqaipddbwssib
+fqibujqjzfiraeobjzl[mtvzbskboukcyjenxrv]qjqwxujlhqrxyzmytd
+cwvxqqouchaqwkhpcfz[elwmjtglbrbyxnyoyyd]nccylfdoyorjbdi
+jcbygfuxandbdexnhc[jyhbtswhegyhooolh]aniljkdxybbdbsm[afokcqicbhltcge]omjynmdbdgknpxhjm[wkgmjtmhnrpamkfncx]skpgvvjpnmhwkcgomcg
+sacklxtvscuxwmhvtw[bahodhuctayhpnt]qicatycoooyspis
+mhexuvtezfzxnevd[drllkjffzfmmukleut]soquupmvgilyzsr
+hmhdovlwwfwcuikdx[qbkapgzxphauqrmjat]jqadlkhlgqfiacaepvm[ahqwowftcseuqezn]yltcacnflbfskajvakx
+dhnspqvpwgsexlwwrsz[xpowmglcpasxvuk]vbahprxinxmsxglxvgd[ukvfffwqirhekvl]pvbdddgneqxoqjp[rmkfpyqmzjpdderhme]svtqppchbmdqvldgyih
+agqlrgzefrrkrmdw[pqxuhlyvhdbcuvd]zyaedppqqpcyonyme
+rsvoaesmgxsttbl[gzleqcjyweilywpb]wuzskljcawklfng[ojzyojtotmukhfnjanu]aosalbogciawswglkw
+yochyqaasxdyfmegyac[okjzywgsmktayhmujpj]xgjqazwjvzhdleuhz
+psmnnwiolxpqymly[fcrevcjztuteryp]nnacfwnqwxbrfqhyuke[kudikhthknlfvqbm]kridanxqomwtelxk
+ppjowileomfhohmpcoa[euqrvizdyhubfilt]rbnwiaxaqveirvoeb[vbsvlpraulqyevyje]azqidrepohooimob[xlcvqhwzwdxluywoqks]mvgewzixvecqcqlmkzg
+ncepobognelfiytdx[ekvxtlhjnamkonm]pizszllzfgumulkys[xgpudqjkjzpilks]xirarekiuvcivtjju[wjflckjkfvvbkgxmp]rpvriqsyglljrskx
+odrrepfcxtyriobvz[kxiwrsavktuyjke]wnwydovrxmmuzehfm
+mfdxppslkzpwvwr[mavnyeavcuoywuv]vspiiafyboscewkcsmq[pyevwvptadphrskuivp]tekdmxlgmnwjgcs[aewugqwpbpvyrmqmyyi]cuedkzylgatqgpdc
+piufuojcfshdstw[udvhfbgmvpxffwr]doagyxjdtibmgoobq[fikftfravgtrtwni]wpuqessshgkrupqe
+elfwnlaowbgexiajkyt[eswlunregcncpmeqoca]kqquvoocucglemrhjc
+uzkfrwhffmydgqqzkl[trvjzqqorsdiimpk]znflqdahqdhvhlaa
+rjcogeolejfldwmoqhz[cloemdcanqiplavw]vpsyimqbgtwcxgyd[kakuadbjenwdiicq]exfcsokofcjmwseo
+qazslzzayvzvtbixrd[nofwkmnhotfyfptto]irajxlrmeszmibhk
+wirtatnszvxmlnkvjvv[btvgpyqdeiidexdeapn]unlvcnygttuetqfg
+bhdesglwqnjvgpovm[joeuqfahjhgmrth]jtzjppcucapkyzcpei[idqjrcxyjlupzjhx]kqljgcmnpjnswef[cszkdkqnmbsrxykt]ykkbwmiclaqwbpon
+zkptfvsmlnzuoryqz[uhbusiqtctqdtfma]ubdrujhmnyvflnvs[yovgsoipmkxmrtw]suwzspemdtfiojr[vsrttosqlvmzwoqmlyq]nnsnkiyhxjecfvkhxf
+gqrxyvtuvcyqvarsuv[dlulhvxsijobenjo]pqglecsfwgnuhelsh[rqouyrnjtlxfowp]nowkcfckezryxxg
+aqmbikwcxxevjbw[zwxktjxquhloozfgizr]ffpzrapawfkrsny[qqekkqexjyoghfnaxrm]uylkkxyxqlrjgbowycw
+ghesvpyxqricmgcmj[hvfcvovijglkxubrfqf]lbknfpyahabpypl[gashwurszsmlhfui]rsyxunohtmwvqfqslr
+ylpuzunivhaylsrfz[kieununfecpxgzhk]pbnqrgyrgymuimsgfa[duxocpauqtfctrpreji]gdtcugdjxbzmffq[hviaibmwbutaiatf]tutsegblquetvfomynh
+mgwtwourfjwmtws[ooawaihqxwinzat]fjallnmkhzbzfsx[rloquuqpzsnagpt]spehwxbmjexygksvt[xljdtevbvhddzwnoaar]auqtaqupgumspzpb
+yfdfpclchklypaljq[bmkgewuljfpwpgrrg]ovkpfmumrmlybqyumux
+wrftrzlpyrptwmj[penvkoodhzmwwzbya]itmeejhjetfomdla[aeilgulmlisvzluc]zkqdzajjhxkhows
+zmgmnslhogyzitpirm[mknytoayplqwltdh]gmgpnzmipdkegoxao
+uebarfghvpmgzhx[iuabicjfokgnybpb]swhnalbokpyqdrmaxd[tjsaihsqayjaywac]ywzuozbyvtsofvkiqj[afjkdhpemqsoivr]grtkptncyinxlfgdjgm
+riqkipsgbptayuab[bcwdvfvzxiaidpiok]xdssawxxjavachfzpf
+ypponvgfxgwquzkyu[vfbaoxpirtcgklminil]bbdxfwwptedctcm
+zwmwdfwutuaoqyq[orzmkmmagojdfhkry]oegdfradzppwqwjm
+fihqtfiaszddkwtozc[ggzvtiwjpuehpfvzev]sksgdqwtghgmavktpu[vovmwdwckbdggsuy]catvlusjdruqlgowf[bawanswujqcoxfzxbpl]sjmisqghvzvlpmvwuf
+bthfaqnohcrtyvcevz[shahnffqoqjxmsaskyl]hjtecdroaharoqqlwme[xoknhnevqdeypythrj]pcsqbcykpskqvofn
+qwrarlbyivqfsodi[ngpyxyllcdqmduhgx]hrqdfjoxtiuyqrcu[evlkctrqtadjostj]mthgbwnsfdkemvjlyb[bobjvmuycmotqja]wugdihgnugrqtcvv
+ylhkvimzlxrkvqinx[umqrxhhwphpigynkl]bzdbjvsmxzsrvotag[sucrmnnwziscfbuldhc]xwqxczdtomfyutk[wxytdduimznbnnelpt]tgsdbftehkvmdetx
+psavwiadlsloigorknn[yqsrbqsbzhogkdynyz]urgruwqpmycyslsj[ofdbbtooimzgubl]lbbisonaxmyudybcwm
+arehddcepyoemixmskt[wopnathzlqxnnoiu]mymgjthqiaunymyes
+pxfwbzbltiadcmh[lrdbtyxqdvcesyntzjf]jranlgsxskjjgfvhea[ytbmxhfejbdgcdtnul]zibykmovsdmyouxpj[fmfkhcfzstqapgjz]wnpjnohtpadnnlu
+nckwcvncimsthnlu[rfyyazzgngkygfm]hlpxvutwpmaggblg[qrexhoxbnoyaszjk]ahenipwwckpoqhpe[hknngnrucfiftgo]yssifrkfyaldeaa
+lrrhukctkbgoukeptxr[bzxzooiqwnebllazdhz]xjlbolmtakxdgnnjdeb[botuufiokrpddif]hbnqkqlyqamdugef
+vlhwjvmrmqjdhrzlrb[sifgbytoqrokxfbvzev]dhdnsqteiomronz[wboyewofjqjmwzq]tqdhhaysrgexceeofe[dnvowqfgopopoqstvhk]npxeihgajbtqnhqg
+cremegzznkdkyxj[mfuzjsratdlqxbgedy]zqrblvedvkrfgazq
+ckqzaquqgfbmjan[qjpbtrzoerbtibp]wcpozsyvrchscndex[mvknznmotgjrfgv]canwkxntkzmszwlov
+iqvyswlmcvrlgrh[cuexdiquljbdyzencz]omngyigmhnwisrohd[uejvjjgmlndhmtxzp]ucrwarxsiqtjmaddb
+ivzrwlxpxgzuuuqmtru[czyxcfcxribjycj]pntvptdzblfosriqk[lojzoiluavlebquqtex]sxfcfejktdlltmx
+tjppxfesnuonvyj[kmevdokeodpvknr]fesmrhpgdyxguvuvyiu
+leftawcmocfkpdmzdt[xmlgielmatgwhdnqzsv]jiwfzhxvzxqhhpizv
+xesonxwclvyetdcr[dvjijcenufeabkxnqyw]ogsuoydbnqoekzznh[dvsecdihbpfgacac]srwcmhiiwxtualx[bpemagylqzyxqoaa]kcuegvlpfzcwaker
+tffukwerhhsbvwnhhk[dgymmmsmogyrmpd]fihstccnovmeipbf
+njvhmuumwzwfzigojn[znpdqbjmfyuziavjv]hdnemtbdvbuxkkpkf[pbcvqwnquhbmugept]wseocpmukxsonkomrsk[nicixvgreikvvrat]fmvqxgrjzuspfyuqou
+hcysmytbwutfeit[lyimkduppuazwyarp]scmqvuzhptpjenj
+pbwoaecjkbbhcuiiv[znfkivdlaohkhmujeay]khezajqvgquousnjab
+ujzussbupuiluxxsluu[afziojarfxhlounm]rkeysyrwsheuxaj
+bobowsdmpdtlzzyjk[vhcmcwztdinxrzzqim]ooazeqoxyqipupm[kzbaizssrlwawrh]rwzglobtwokunia[aijrdsjpseqcsxds]otpxblmqfrdojgwndi
+ejxvdwerghueasxes[dfbujbubdntkmli]fruzltpmrrlxjtlnvt[humnridbnputqpu]dsembdskqhnrtzesh[bzeltfmllnaegsmi]pgldmpkdpimgxjcge
+cfommkiravpmqflvfg[mxrtecpvyrjkazvxuse]uqhkabaiqrafotd[tbyvblbmumrwdwovg]nfgbczychazchst[wfuotesxrieykalsd]uohrkgematczlrityxj
+qztosgsqradmgybxrga[hlejicgvaqzhkfbhbb]cgsgwzckhygbszdvi[njpxihtzdyryavflj]icnxdwnruwwyzsk
+uxyvrlyggnaviay[qwthehqgvglktqhqu]ksgnoxqxgkjmwuethng[sbbsvqnisduagslb]cuaobhmvuaqvvvnqfe
+erymnlrruxlqjcmkn[mevvbnpbexblndj]gfgvnksluyipaykfde
+dxscmhdmjkdhtudsqvi[gvrtwolegaemtia]opywqbkjbfndypc[oekozzbeqwfiflasv]yfgsbitixwbjtoi
+ysxudmuqzgoloqnykt[fcgtxmhrrcecqmddrj]qtrozsbcpficfquvkpj[cgqpatemexjkefdbe]ohnpfhftbocgsxzpumr[eiqhsgwotemjlnnqefk]gfaoeohysayszml
+cevcyseikybcbnmn[jpmyfkdmnmrhyakru]dxlrbhtjtuihtsdde[wvcrjtitpvlnyppnc]lcnpitcbcmfxhkrrjew
+qdaeiqosdnatmbdxwj[atfzmwbrygimubjbi]eqmwenccfvvdyyhd[yaumggrlwxuimpbjhj]opojnvgqlddssgz
+fiilqdyckyxglumal[mcmerdidyzyvolqlsu]tybpakjvysehukdzfs[hkquimszsyiivblq]ifkovlrqhlnvdcmctpw[bbfmqiuidwwtvxcyxsh]rxbulmjkszwcujvoxx
+ejnjgazbggstrokfiqn[hwchebnufwvztstxxk]knrowqqjlpkeaogreh[ispqgesjsangcoygvpi]limwwxptqsggumpkav[affknwmlnzrbabg]tupfguyoxwpoiatebzu
+qiapnmpiekmqwaxk[vfasdzfzabwydicao]togthxpkeucrpjuzq
+bqzmyqagrliazan[exfepmvuswdztkgzk]oitrytelbuvpmfix[fzcpqdblgkioqnm]xtzynyytsasaiajhtpt
+opicwmmyrisxmoj[owhsmoigdsolqmjd]pmgsqqwwjqvqobueh[zfcjdlleobetagnzt]mwckfcohdalqzeodptb
+ejzvbutzumjnzzfgnoe[ixayktiqmcngbks]jrfufjnbcocgaufucy[ryglzpvuwtgohxtw]fszrmyqiiikxktye[vnvfudzvmseqhzlfq]syipqltfrymgbgmqxyi
+fguhalhxpswuhwjmn[anqihfnbgmkkttimvl]hvkgwincfxssrnnzn[dmpiagbxeztyycsr]ufwamkmhsqvabiddztf
+urstysgnriccvbkiwp[yffbbcipbgnlhnx]voloohtrdgtmuosuj[sjkbdbvpbcnleib]nucopgkgenowcccvgqx[rjopvaiewdvgmumr]yxzxryntexnuhgrvdes
+yjkmxwouqlmohkv[mjogakueojtohoo]qobrjdolakkvxjbxb[qnerargpebiqxhkqawg]vhklgbktomjutbtm[islelkygphlpagjqij]xbtwafadjphpzhz
+pczqpuroxpifexe[uqcqtneiektkmrb]nyoakxnlgrxobwlduux[dhhfoxkqvnvcchsct]cqcouyerjxmkbkjccg[idyikrwqdreiyhsxdcj]xlzoyafazrrbdwljnd
+mpmjnhjgnmnqwowd[lfanwgamnmdxwiqe]npfvhehcxtlgcrzid[chzvtakthbbfgaamref]oaxeaktsxndsanlhxze
+pvfcksodcgsmjiqwszc[lpixtwnyrpkjsmui]bvjpqhqzesvyyjlogw
+ifzbfcvdoxkdzhrq[bxzpnkgzmjoocojqi]sihxbegqwropinnqu[uuemfqzpcjaegexhz]arbzkkywynrjjis[fhjxmtljhjhcexhjh]lectilzbsefciuxmj
+epgzlimhfeamgbakeje[movhrjjqpkxnjzmn]ujjejiojoiqyiyuvb
+kgyplkvxedlrivba[rrvhbjuukauesywzgi]sefglvbqrbfpwjpbndf[lxpmdnklhlnpooeq]cseosnrqjchpeicy
+hzxrpcnfcuvytvptmlr[xkqdzxmqajoisgy]itvqxuzohywmwuvlrm[unurstpskieknsp]xfxutqlwgxbkszbp
+nzyehlmbirflrigh[xkcxkxpmbzzlwnzbj]vtiuialppefxqhcuc
+ihggeghdsdhixvlbmr[csjfaddciewuprmr]kkfiuczfhmrmgolb
+ztiyoyrgufqxkfk[hsftvmvfjwplrbxum]xdeuxodxrcfwsvr[ifkfgxpuoehydemf]rqcnabfgqyrbtoxkp
+ygpwvcpcshyjslrm[ccytynfblnccxbstzuh]gjpwxmciaenmcizexf[bldgazexvgyaovzywi]wtynmfiznxylzzhsgwz[qaxcfaazazxsaozyks]odryojvivbgnachz
+xhlfqbqoatmvrfpe[wrfmrapwuzhqmqmzmy]wkmqmtbyshkyfwzo[zcifoyozwurqexe]pysjwmlknukydpnrzan
+elexrwwnwmearzxuzi[ajkpdbxrtpnwngx]raybcmpouawjfqlujp
+bdjnunqhhwlpeumihz[ytxkjsuighhjzfu]qeqjvpmmzpsfnus
+vupxgfyaxnciedexmom[fvqffpkeurmvxvopmx]dzlsrwjfphehbkyum
+ckzmymusejzabvuyb[wxbswbalirmbjumhxnb]hovexlwnzdbytmp[ulxyngaxvhwhcjlt]xfgofykhgqxxqbogmn
+xlgtwmtszopnrfpg[zcjobnutrnmuslxya]ouxjiahawxovbbhahcp
+bbezpvhanriufkcof[lspgjssrxkwcdyx]snwkrsinhjurvhicn[wyimmtkjbnxudgxx]fvhiaurorkxhogbown
+owjicopdgvoloyswyiv[wqqpvlolkvkeyljrxd]dtnqlobojrurxvhmoig[cwiehwzvrmhtqyfmlvo]ztvfpgydalzyzky
+akkrhttulhpzlyulceg[sosggqltgzfydzpco]tgefhbejbxfsxejsbgb
+rhaynhcvrkoikpbamh[tbgjdaikneziopop]czthnlotpopwgdvcl
+wscoyqvflhwskcjdf[mwpcrduwevtcjduw]uybsbwdhtlnwhvw[nukfdjraoqoaxyeuix]darwzmggglgaesyg[ryapeobwugpoohzy]ozudeagtfhlksnnrw
+nrkiszjbkgclvxgwfs[bclhxtwvelakriyxwv]daaunctownhuodswuc
+rqsftpfsggukeqa[czvrpfljtsdpbgzoqit]omksopmvqgdyhfvfiuc[ineryoovupytgix]ywfytjoppwkszftm
+sjtoqcuwwnmnklb[pmzwkeqnsgnhthww]zkootlimihbctpalhcc
+boewgrjfdxkepnlxo[jgcxotrswrdequngh]iwikkhflekspxykgiv[nelzixyahwsrtusfi]ictmunxrofoeccjtd[qeqijxvqhglwamdjcvc]mldxwzgrycapaexur
+gwswqgnbmgrekfoqgq[gvdnmnkwqfutvfaa]ivqlohrmbqsoineq[jjgcegcdnjzuigbjze]gyhjcoqoqxqwxouc[xgseyypojrsnohnrica]umzfkjzjdsvsodl
+zxamezowxmpjvvwz[cbdeavssccpvrznloem]ibjdhheoubjrhqu[nxvnyftysyuggqwr]mjbtcxyosolkeaahft
+rfwgmpzvpchijrhqfj[xjdrxfgheiyijhc]rbcfdtctoouponvr
+nqrslruljwsphkvf[dvlnrokayixcmgf]rsfivpietxptzwl
+yeqmixesucwapviz[mppclaadstzosfpay]ycztjinsvvywrevju[pigptwaieiahxpzcas]odlsffjpdacydqapjgm[zetjlzxbchwdopgd]lndltscdjxyfgxihbrc
+flsctoizaxydslw[grxlmkgckzdfxag]xarpwhhahlpvccry[vienektyecnyvagq]aavbdkiqjofyekil[rkaxahbatmfpimqj]qgkpebxjhwkpodufo
+ucckvtbprcmdjvmf[eeqvgsvkvyzhjluexx]gplguxddsudjqlmrdr[xlnqtzhxcbpbdqp]uuqkodbvgxekmeoa
+ophlkphyoqamwbu[nbsurlakpxxgyrf]xerxknhcyewzddcle[ydzhegufxmghoneeq]fwybaueovkjhkphx
+geawkbpklybiwrncbky[hftcemyhbxsjjdfur]vqnbxghowdbsesops
+vcdhlrxvycnvsizqop[fprxccobdsrfwhy]wdbvkhaosqznbtt[dmzbzdelxmitmje]whoekteomhigpjkwruu
+iqzznislctfbjfwqsy[tynnrwpeemglajphxg]gfzmrhextughasosati[qsejecgbbetmnzzydyq]ddiskcrtxfguwkly[xpkmunwhccmwkjapp]cdnlcbhhxuplehasn
+bmfhrhdtmvimxlmesez[lqmxqpdlqghxlevd]neolsesusvaxzdvx[irnrgqbigwlnzsuk]hrhxoxubvzkipgqfc[cjcvorvhyrvmfll]npkmtfxysboydkden
+nbmqatjicimprrcici[tbblcdhcvcupgvxibxz]ccslwipzsuyihkng[sbgzshzorysqctaaacq]dyssqkfywggiaaqu
+pcvyyabqmeryplh[jbqynrzyjkhwwgj]etwzjlszjzdbkkewtv
+bubxbqqbnbouodcgxzw[dowpsrdjpuuouuh]rhnrizcztkilhuuwhbh
+sbqkzpwosgujeovz[japgfjauipufpmlvn]ivnwbyatyuesvvrov
+joeqayhdcwcrvbnf[vqfpuvxduqotkdy]kuavekugumzajaxfw[scyzqisremjpsdcmuo]bjpynpdzyzrbmmg
+gwdqyqclwdfzpquzc[ozbvuwsgkcexhgsy]kdwdrqopthygiwdwm
+tvlczfnrbnpmoyp[wcnstymqrvfoqqosw]sjmunjohxbrybmnm[bnzbnogdxaffnvpjowf]waiaapexfkufpazqn[hodebokzgpbbtdewpb]qzbomhrouunriuxanta
+xcvjzwaytzttyobv[bzpagodqlpmmsgy]xpdfkpgsmkgpvkxumlu[chfejuaglsrkruoa]nagzgkrkpyxvjvlr
+bnrxwwtsvorohyu[pupbgwrkyqhkbgho]tffqsororwpcdlaphc
+riryuebgtvdzxdla[jtcopgrqurtfigfnrq]ovetktdsbrjpvgfg[xtsbnkxsdznzlwx]ftmymefonptpdbzsge[xjqgxcqpkqtvbmul]ztizzeufautgupcqelt
+bmlmvylfslqqicwviq[nvxmszbqlexbcef]rqkawnbpuelvwki[bwapsyibuhuopujwmm]yoojkyaudzhoddrmvg
+pjdpdxvrbbxxfwpeust[wztobueipqiaaicduq]onogsdcpainijdpz[basykjybxwuwjvxytb]mfxuzylepdplppj
+noixgkmkngsjnwwhm[lgcpbkrpmkxxeidim]augzuhmkhdatdrhnr
+xncybroqvekbvocdhm[ahxhavcyzvvnwwnfsf]eegitlwvzoqznxuktn[zjwkrbrjofgvedjuf]ujupljhpjfhtoddgqp[jwqpvwwjoaxbwkfj]strlqdkexjcnxwahdxz
+ucyrdkrbgaamnaoez[cnumtrblnknjveyjgwv]vrlouyjivhweembem[izybbytphodmvvonvz]iqnendwvqwwpbwpstuq[jilkvguqvtgjpetbkma]kgttxqsamveamxb
+ighlrtyekigrpbcx[uospnwlmvlhuujiro]jyrbqcrxoklegsmpeub[ferotpqcwlrfylet]vocevqkkydwdxzqavfq
+vreeihsrnbdaduky[uidmukwdoghwycpxzl]hvapmkokuoljwyxi
+zywvzrdkcvqbmwsbkuo[hipsuufkkjiunlqu]uhisdpbjcvkpunlayhr[iethrnmpmidjjrnnv]qnwoxpmbpmpnilkbq
+ussacrkglqvwqawhxvo[uqdvxdgtawrfdjc]cduwaedcvfpeolqr[nlyblneokgmpfelr]yerzpiiwkwuiwilt[hgekbtoncoseaug]kmdjmalprlowtbrav
+owhtgwpvffgjcletp[adgnkwibobvkgfkxale]jgqziknoasxylvw[mocmthhqcjfwjuuiuu]qlgqtnaljwdiejweksm
+vxmbqzeafbwvozvsm[jtyqkvagfwyfvuvay]ailxefllrxesazxlv[odmoxgdiadiaetdyvdt]tiavxclhxfqtbvbu
+jnfimlvvjtvtzajw[acyjznnyspczqvjf]ozltqkyrqtfrgpva
+lrqapqafjqfroqz[zenrntyrnrjtuij]kaewwkrjpcmeylerv[camcigwjgpyeaqg]wpkzihyjlcquzrg[ttfagxotubvfeiqkg]amqnhawihumfajhvd
+lvxcwtjjgsxodivad[gfigqaiqkxfcpmj]yaqjmrkuidrdwvviohz
+qbceftsjjcumflk[uucxifoxdpecfndprsf]gqthbmmgbbakgrlsm
+fsxulvnzmjywovnhat[bthhpzjyawpycgsuxbt]qbqbpjefdcfsfsqbe[uizjjjshwqgccitr]kiehvhvpwhfsasftyu
+bkojzixxqjfcftla[glqknzmobetfwsnafev]ratttzyklaxfmfufyv[muwgybxllocskzecx]wyfwhiljpcfcwbhjlt
+fcuieutbdlmwmpprjk[nkpbsvtngzrdxgwf]qmnuuepgdlzkolbcm[rjezaqbmfjycxai]paejktmptuiftsl[cbgxlqzqpflvskdmvy]aygzfhlhsqdcquut
+rxmngytsppvfcpcscx[phvvbrmqmyequosdztu]vchpgerlpizjwcwkumf[lbjjftbncxuvwdaud]rxfbttgxfwxudhkk[jjzqmfcswwkxsmsluwg]nnjbbkpqankgskjrad
+hlbdbzhwzlnpzurrg[rymtuuyqupqdpexefk]tukjhqaedzhzxsqz
+fpryuguzmsoizmyp[xtootqplumygzizsqye]abwsvuvxyxwwasvuc
+mtabpldrsqsirtega[hgbyvgmmoxihgzulnl]txvozvllasypksvhwhz[poeqvukgvlnbbbbk]lamyuvjvubyqvijesgr[ascxlaksbqqnrrqejx]guetmwzxqjlxjvdm
+duxjzazmbyqzxmntnn[mjguwpucpwblyypmkj]csgnjihsjwrwjjj
+pushontjgkevnlrkvn[dcibcdsbuftswnqifr]nneewpdmoaahwpt
+okcmoevreebuujjdl[nzonouoydhqlmxbyb]kzleqfmoglkipweur[rrtypikbmtkzegy]cmehcxntlavmojfw[tvvcithufoahlxby]odnzrzscwjvxtcpdh
+cxszxofnlpxzzurgqxd[islclvtnwrvxiqvybzp]agikgpscjwfvjrp[xfyvjgtigxamybfcxb]juslmurkvwlapendag
+zeoxbnfdtlgkqzsig[cyrzkztphbnutuie]otzkrrqohznqwhx
+yrsqyknrqcdvbdfcvie[uoikxvuzzihiihn]tdrrmpyisukewgxtz[pcdyynkvijsjpzelypx]axztekjsveddcukyu
+bvublvqfqtrxxxtj[vyyxbnmmsmwhmvwywz]zqnifammxhjjcdczxt
+iuhhzaiwcucvrrpcqi[cmqxwhpbiozhcjiew]thvzbxjvisbolbddky[tomeprddcnfanklkqq]fralaioewzbgbxxyad[zjgnnnznwqccfjyichm]rptkbqzdwmvjwarnuwr
+tfeyzjqxrymktfvj[rmtbxgyrpznwmdvxbdf]mlxqqrocxuzklptmiwc[qdjbddpsonpejdxmpoi]pusiuffhdzpemzd
+yclhxrtfzcdhrtm[hcoqrqbulbeziclq]xdlugofehqtqjonj[wcssoobwocoyxvdwq]lypemphdykevdonct[fuaunzhmdchbahgq]qfkfdkmmaxkewddwpmj
+lnlskpioicgxmxel[umysskqmyzaxfjeh]cpqruxvbujqkmdhnuev[rqwsypedhnfkfqebtr]cyvrdyivrmvznpcc
+shbqidoghlpjpxj[vmwwenaxupuvvptfp]yvjsbdunidbbkjnwpm[gwfgkpizyrvwzhaualv]tevcvdkhzjvniuut[sgmjeiemomrljvnlxu]cypgquavpduminrxlzb
+uropacyqybozvyr[eqrnjuuhlopqyqh]rvznyebhzjhjxkuels[iepxmgnogtcfiwcfx]gxszowxzwkrdjvohtk[uegnjpnkrqqmnnmxjjm]lvxhojwlawuzsszq
+cpeabckktwlhmnhj[tprdlautoabcpkronhu]jvmhenjwvhauljuid
+pthfhbxzjbvghynkmm[vpzaeaijtgtixhitqim]fsaypthcfkzrxtnwr[xzkggwpgnxnfgnvawq]uvjmfmxdcdrkanecd
+rxjlrkaudbmetnyrrin[jrjjzactumkuwruckg]vwzkipklzcprfquld[dfjpumtbhydndawlbp]cxwuyyzmhkhmyoaziwv
+bumtfjdmmowvduukwaw[ukzkunqpgzgahea]kgmtyvromleqoow[jcszbzaxnyacfyc]fcrzscgevcehniswrxt[mpuxkyphidwhukm]vwskwkgmcrmijtujpba
+qkupefsfxnqknoxrk[lvnnuhetjviiioxtp]pjtucqwmybjxnqoviyq[ylzusbponqrkwxll]kovqwsqvwscflkrcwn[zgefedeguzltsmlopj]navdwikahjyvimsnukl
+grckowghnjntaxdp[dnelxhpxwzyeggptoa]coenxbdzrpydaqwa
+lksmpxtjhpanwbuufn[snfzvkkfhiyibfgmtox]rpbqpzxkiwpxnsrie[datbzytabaylvvhek]uqvxzkzegrrxfcxinw[tmpqywtelhqohkmzuvi]fkwbbzvyzzkohjgz
+zyzsrrzsfdlvntmed[utfrddkienuaqcvz]amncxndkvsufgxsu[vpyegmaxvugmdehma]kmeyojxpoluetkqeky[fezcwvaxbuyqttz]mwaklylrcpgnxuw
+lkdzsmlnhsfwkmgftm[bpesperctavrfcn]wgzsbkjyyrbcjzghvlo[gixpfkuukvaoecc]zrvymealuxycdlse[cnmjogkfmapiwvkbk]vcgzczxskqenrst
+mpeadvyrbgymqhl[razwybnbnxlpdqdtp]imkqmksortpqdqmka[ykbtopscgbsursrwj]evdetgtlaoimeqemyq
+qoxokykipszydrgci[mykmfccqtwdxixqiig]iadoxhgcoxnhhliqvr[ttvqbebxyxnwndtz]aasvecaltuqijjmxx[lzovzwzsnwkglorhe]urcmgffjdzouaac
+gywgdpzjikpouyzhhx[fznqxhtzozbzijwjvk]ivvlsbwjwxhymwpmdsw[fehugmercmvunun]tltuczprzfvplhqcpi
+tgljlexexeebootoyce[pnrvcajzvoefxboyncd]snsnpsjxiyrdmgt
+buinlwzbaqgpuoot[pjdralopgcrobfpyl]tttsbhburbjfbtegc[zwdoqaxyubvarmisox]emdozhtvjfcmranqm[kcygeikmvgptspj]pezznfpmodndwvm
+xidbntshgqdckieib[urwkpgpqlzuroemjp]srfwixbhqgbnfpsgkpl[uygjtjaixctjtnanuf]qdloyaplyovscng
+qundlfpfexfkrmpcd[vukdaxqgqvrcqerbf]dehpfpgaymhudzz[vkqfgcllumlbuszz]eizntkyxsysnlfy[sdvnheddugqdagh]yicuzmoifivylgwmipz
+zzgzmnbevlvdlpv[bhoezbdqoelbzmft]bnfeqbplxfvydhluug[kjwpseyayhovkds]aqirzcbxtxginpmjn
+xwkvxxptyfibxunjdv[eigrywezdgwtwfzli]fbfurspemrezjyuhsqf
+yvnhkuzvtnirdxmxmd[vijtjbffcfxtnmxdh]untbfzmjmhmlfeyixu[edlyghinlksfxoikq]ixrupxdicymsuvkhvk[srnptcdcaczhrvqjq]wrqrzomktabfuupccbc
+ipwwgkvjagdlqkoxlat[widqrotdnywnnbdn]rtviotwkbdqpggscdt[jzbcukafvquuxiu]ctmziuyofwucvdvjom
+advbztpxdzdhyncuzz[ivjohzdjgqefgcr]nlqmqaenjzacgyaf
+knotcnkidizcpveacjg[vajecumyblgcfpy]biedjbtbahcygvsdax[odhgbqawgonxvlu]emxplzktdwcitdioi[wcmtnnqctaowoxwgjn]dgcgmhvajmoouri
+uumyvgqczjaadkspfu[cmacsgwkvcivtsn]cpefaqmflxkfmlkp[mfsvltdmnyzxqcrlxk]ykmjlnxxmsvfuqf[bciddbscmtyduhrwvy]cxwohnzlgzbtflqerlr
+klioqytpqhkxqiriz[rjgrssxpxozhzbc]fysfmaiblgqhkeue[bycqedeolknahiy]pdusnyfxfcgodvj
+sgjjqocmmcccpem[odeofpebaahroicm]pluzqzwkdzcovxic[zmyulzpuuiabvykn]ylxzlyooxnlibiy
+btrucplpxrokmcts[gytdxlzkfakenliallw]qhxznozsjsvhvnzhf
+nefefqadkmytguyp[ucqagcoyxinbrvbw]neksoxgtnnfojobtx[bxhdwvwfhybtbzkijj]poayieifsaocrboesfe[tnggfefcucifowqp]olmjwaqlaiwkkbtruw
+tivudfusgnewzshs[mausfjbgxmyibin]yponuityptavbhekrlg[qeyafuevtlqemtfa]owtdxadrwwbxbrkl[obfcyxbifipwhduubu]mjocivgvrcbrllso
+"
+import : ice-9 rdelim .
+define lines : string-split input #\newline .
+define line : car lines .
+
+define : extract-hypernet line
+  let extractor
+    : l line
+      hypers '()
+      inhyper #f
+    if : = 0 : string-length l
+       . hypers
+       cond
+         : and (equal? (string-take l 1) "[") (not inhyper)
+           extractor (string-drop l 1) (cons "" hypers) (not inhyper)
+         : and (equal? (string-take l 1) "]") inhyper
+           extractor (string-drop l 1) hypers (not inhyper)
+         : not inhyper
+           extractor (string-drop l 1) hypers inhyper
+         else
+           extractor (string-drop l 1) (cons (string-append (car hypers) (string-take l 1)) (cdr hypers)) inhyper
+
+
+define : has-abba? string
+ if {(string-length string) < 4}
+  . #f
+  let abba?
+    : first : string-take string 1
+      second : string-take (string-drop string 1) 1
+      third : string-take (string-drop string 2) 1
+      fourth : string-take (string-drop string 3) 1
+      s : string-drop string 1
+    cond
+      : and (equal? first fourth) (equal? second third) (not (equal? first second))
+        . #t
+      {(string-length s) < 4}
+        . #f
+      else
+        abba? (string-take s 1) (string-take (string-drop s 1) 1) (string-take (string-drop s 2) 1) (string-take (string-drop s 3) 1)
+          string-drop s 1 .
+
+
+define : extract-supernet line
+  let extractor
+    : l line
+      hypers '("")
+      inhyper #f
+    if : = 0 : string-length l
+       . hypers
+       cond
+         : and (equal? (string-take l 1) "[") (not inhyper)
+           extractor (string-drop l 1) hypers (not inhyper)
+         : and (equal? (string-take l 1) "]") inhyper
+           extractor (string-drop l 1) (cons "" hypers) (not inhyper)
+         inhyper
+           extractor (string-drop l 1) hypers inhyper
+         else
+           extractor (string-drop l 1) (cons (string-append (car hypers) (string-take l 1)) (cdr hypers)) inhyper
+
+
+
+define : count-transport-layer-snooping lines
+  let snooper
+    : l lines
+      count 0
+    if : null? l
+       . count
+       if : and (member #t (map has-abba? (extract-supernet (car l)))) (not (member #t (map has-abba? (extract-hypernet (car l)))))
+         snooper (cdr l) (+ 1 count)
+         snooper (cdr l) count .
+
+
+display : count-transport-layer-snooping lines .
+newline
+
+
+define : extract-abas string
+  if {(string-length string) < 3}
+    . #f
+    let aba
+      : abas '()
+        first : string-take string 1
+        second : string-take (string-drop string 1) 1
+        third : string-take (string-drop string 2) 1
+        s : string-drop string 1
+      cond
+        : and {(string-length s) < 3} : equal? first third
+          cons (string-append first second third) abas
+        {(string-length s) < 3}
+          . abas
+        : equal? first third
+          aba (cons (string-append first second third) abas) (string-take s 1) (string-take (string-drop s 1) 1) (string-take (string-drop s 2) 1) (string-drop s 1)
+        else
+          aba abas (string-take s 1) (string-take (string-drop s 1) 1) (string-take (string-drop s 2) 1) (string-drop s 1) .
+
+
+define : supports-super-secret-listening line
+  let ssl
+    : hypers : extract-hypernet line
+      abas : apply append : map extract-abas : extract-supernet line
+    if : null? hypers
+         . #f
+         if : member #t : map (λ (aba) (not (equal? #f (string-contains (car hypers) (string-append (string-take (string-drop aba 1) 1) (string-take aba 1) (string-take (string-drop aba 1) 1)))))) abas
+            . #t
+            ssl (cdr hypers) abas .
+
+
+import : srfi srfi-1
+display : length : remove (λ (x) (equal? #f x)) : map supports-super-secret-listening lines .
+newline
diff --git a/examples/argparse.w b/examples/argparse.w
new file mode 100755
--- /dev/null
+++ b/examples/argparse.w
@@ -0,0 +1,42 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples argparse) main)' -s "$0" "$@"
+; !#
+
+;; Argument parser
+;; 
+;; Status: draft (basic interface works, but does not do something useful yet)
+;; 
+;; plan: 
+;;   - simplest usage: (import (examples argparse))(let ((args (parse-args))) (write args))
+;;   - with setup: (import (examples argparse))
+;;                 (let* ((parser (setup-args #:help "foo"))
+;;                        (args (parse-args #:parser parser)))
+;;                       (write args))
+;;   - implement -h | --help | --usage and -V | --version, set up automatically and improved via setup-args.
+
+define-module : examples argparse
+    . #:export : args-parse args-setup
+
+import : ice-9 optargs
+
+define* : args-parse #:optional args #:key parser
+          if : equal? #f args
+               command-line
+               . args
+
+define* : args-setup #:key (help #f)
+        . #f
+
+define : main args
+         let : : args : args-parse args
+           write args
+         let*
+            : parser : args-setup #:help "argparse"
+              args : args-parse #:parser parser
+            write args
+         let*
+            : parser : args-setup #:help "argparse"
+              args : args-parse args #:parser parser
+            write args
diff --git a/examples/benchmark.w b/examples/benchmark.w
new file mode 100755
--- /dev/null
+++ b/examples/benchmark.w
@@ -0,0 +1,665 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples benchmark) main)' -l $(dirname $(realpath "$0"))/cholesky.w -l $(dirname $(realpath "$0"))/ensemble-estimation.w -s "$0" "$@"
+; !#
+
+define-module : examples benchmark
+
+import : statprof
+         ice-9 optargs
+         ice-9 format
+         srfi srfi-1
+         srfi srfi-42 ; list-ec
+         srfi srfi-43 ; vector-append
+         ice-9 pretty-print
+         system vm program
+
+
+
+;; stddev from rosetta code: http://rosettacode.org/wiki/Standard_deviation#Scheme
+define : stddev nums
+    sqrt
+        -
+            / : apply + : map (lambda (i) (* i i)) nums
+                length nums
+            expt (/ (apply + nums) (length nums)) 2
+
+
+define : stddev-unbiased-normal nums
+    . "Approximated unbiased standard deviation for the normal distribution
+
+    'for n = 3 the bias is equal to 1.3%, and for n = 9 the bias is already less than 0.1%.'
+     - https://en.wikipedia.org/wiki/Standard_deviation#Unbiased_sample_standard_deviation
+    "
+    sqrt
+        -
+            / : apply + : map (lambda (i) (* i i)) nums
+                - (length nums) 1.5
+            expt (/ (apply + nums) (length nums)) 2
+
+
+define : running-stddev nums
+  define : running-stddev-2 num
+      set! nums : cons num nums
+      stddev nums
+  . running-stddev-2
+
+define* : benchmark-run-single fun #:key (min-seconds 0.1)
+  ;; trigger garbage collection before stats collection to avoid polluting the data
+  gc
+  let profiler : (loop-num 4)
+    let : : t : get-internal-real-time
+      with-output-to-string
+        lambda ()
+          let lp : (i loop-num)
+            : λ () : fun
+            when (> i 0)
+              lp (- i 1)
+      let*
+        : dt : - (get-internal-real-time) t
+          seconds : / (exact->inexact dt) internal-time-units-per-second
+        ;; pretty-print : list dt seconds loop-num
+        if {seconds > min-seconds}
+            /  seconds loop-num ;; this wastes less than {(4 * ((4^(i-1)) - 1)) / 4^i} fractional data but gains big in simplicity
+            profiler (* 4 loop-num) ;; for fast functions I need to go up rapidly, for slow ones I need to avoid overshooting
+
+;; Define targets for the data aquisition
+define max-relative-uncertainty 0.3 ;; 3 sigma from 0
+define max-absolute-uncertainty-seconds 1.e-3 ;; 1ms, required to ensure that the model uses the higher values (else they would have huge uncertainties). If you find you need more, use a smaller test case.
+define min-aggregated-runtime-seconds 1.e-5 ;; 10μs ~ 30k cycles
+define max-iterations 128 ;; at most 128 samples, currently corresponding to at least 1ms each, so a benchmark of a fast function should take at most 0.1 seconds.
+
+define* : benchmark-run fun
+    ;; pretty-print fun
+    let lp : (min-seconds min-aggregated-runtime-seconds) (sampling-steps 8) ;; start with at least 3 sampling steps to make the approximations in stddev-unbiased-normal good enough
+        let*
+          : res : list-ec (: i sampling-steps) : benchmark-run-single fun #:min-seconds min-seconds
+            std : stddev-unbiased-normal res
+            mean : / (apply + res) sampling-steps
+           ;; pretty-print : list mean '± std min-seconds sampling-steps
+           if : or {sampling-steps > max-iterations} : and {std < {mean * max-relative-uncertainty}} {std < max-absolute-uncertainty-seconds}
+              . mean
+              lp (* 2 min-seconds) (* 2 sampling-steps) ;; should decrease σ by factor 2 or √2 (for slow functions)
+
+define loopcost
+  benchmark-run (λ() #f)
+
+
+;; TODO: Simplify #:key setup -> . setup
+define* : benchmark-fun fun #:key setup
+  when setup
+    setup
+  - : benchmark-run fun
+    . loopcost
+
+define-syntax benchmark
+  ;; one single benchmark
+  lambda : x
+    syntax-case x (:let :setup)
+      : _ thunk :setup setup-thunk :let let-thunk args ...
+        #' benchmark thunk :let let-thunk :setup setup-thunk args ... 
+      : _ thunk :let let-thunk :setup setup-thunk args ...
+        #' benchmark thunk :let let-thunk #:setup (lambda () setup-thunk) args ... 
+      : _ thunk :setup setup-thunk args ...
+        #' benchmark thunk #:setup (lambda () setup-thunk) args ... 
+      : _ thunk :let let-thunk args ...
+        #' let let-thunk
+           benchmark thunk args ... 
+      : _ thunk args ...
+        #' benchmark-fun
+         . (lambda () thunk) args ...
+
+define : logiota steps start stepsize
+    . "Create numbers evenly spread in log space"
+    let*
+        : logstart : log (+ start 1)
+          logstep : / (- (log (+ start (* stepsize (- steps 1)))) logstart) (- steps 1)
+        map inexact->exact : map round : map exp : iota steps logstart logstep 
+
+
+;; interesting functions to benchmark:
+;; - TODO: add to set/alist/hashmap
+;; - TODO: retrieve from alist/hashmap
+;; - TODO: sort
+;; - ... see https://wiki.python.org/moin/TimeComplexity
+
+;; operation benchmarks
+;; - TODO: or #f #t
+;; - TODO: and #t #f
+;; - TODO: math
+
+;; List benchmarks:
+;; - list-copy (py-copy)
+;; - cons (py-push / py-append)
+;; - car (py-pop)
+;; - list-ref (py-get-item)
+;; - list-set! (py-set-item)
+;; - take + drop (py-get-slice)
+;; - take-right + drop-right (py-get-slice)
+;; - last
+;; - append (py-extend)
+;; - delete (py-delete-item)
+;; - min (py-min)
+;; - max (py-max)
+;; - member (py-in)
+;; - reverse (py-reversed)
+;; - length (py-len)
+define : bench-append param-list
+  . "Test (append a b) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (append a b) :let ((a (iota N))(b (iota m)))
+  zip param-list : map f param-list
+
+define : bench-ref param-list
+  . "Test (list-ref a b) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (list-ref a b) :let ((a (iota (max N m)))(b (- m 1)))
+  zip param-list : map f param-list
+
+define : bench-car param-list
+  . "Test (coar a b) with element A and list B of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0))
+            benchmark (car b) :let ((b (iota N)))
+  zip param-list : map f param-list
+
+define : bench-cdr param-list
+  . "Test (cdr a b) with element A and list B of lengths from the param-list (note: this is really, really fast)."
+  define : f x
+     let : (N (list-ref x 0))
+            benchmark (cdr b) :let ((b (iota N)))
+  zip param-list : map f param-list
+
+define : bench-sort param-list
+  . "Test (sort a <) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0))
+            benchmark (sort a <) :let ((a (iota N)))
+  zip param-list : map f param-list
+
+define : bench-cons param-list
+  . "Test (cons a b) with element A and list B of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (cons b a) :let ((a (iota N))(b m))
+  zip param-list : map f param-list
+
+define : bench-copy param-list
+  . "Test (cons a b) with element A and list B of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0))
+            benchmark (list-copy a) :let ((a (iota N)))
+  zip param-list : map f param-list
+
+define : bench-set param-list
+  . "Test (cons a b) with element A and list B of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (list-set! a b #t) :let ((a (iota (max N m)))(b (- m 1)))
+  zip param-list : map f param-list
+
+define : bench-copy param-list
+  . "Copy a list of length N."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (set! b (list-copy a)) :let ((a (iota N))(b #f))
+  zip param-list : map f param-list
+
+define : bench-getslice-left param-list
+  . "Get a slice from left."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (take (drop a b) b) :let ((a (iota (max N (* 2 m))))(b m))
+  zip param-list : map f param-list
+
+define : bench-getslice-right param-list
+  . "Get a slice from right."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (take-right (drop-right a b) b) :let ((a (iota (max N (* 2 m))))(b m))
+  zip param-list : map f param-list
+
+define : bench-length param-list
+  . "Get the length of a list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (length a) :let ((a (iota N))(b m))
+  zip param-list : map f param-list
+
+define : bench-reverse param-list
+  . "Reverse a list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (reverse a) :let ((a (iota N))(b m))
+  zip param-list : map f param-list
+
+define : bench-member param-list
+  . "Check (member b a)."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (member b a) :let ((a (iota N)) (b (- m 1)))
+  zip param-list : map f param-list
+
+define : bench-last param-list
+  . "Get the last element of a list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (last a) :let ((a (iota N))(b m))
+  zip param-list : map f param-list
+
+define : bench-max param-list
+  . "Get the maximum value of a list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (apply max a) :let ((a (iota N))(b m))
+  zip param-list : map f param-list
+
+define : bench-min param-list
+  . "Get the minimum value of a list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (apply min a) :let ((a (iota N))(b m))
+  zip param-list : map f param-list
+
+define : bench-delete param-list
+  . "Check (member b a)."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (delete b a) :let ((a (iota N)) (b (- m 1)))
+  zip param-list : map f param-list
+
+define : bench-delete-smaller param-list
+  . "Check (delete b a <)."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (delete b a <) :let ((a (iota N)) (b (- m 1)))
+  zip param-list : map f param-list
+
+define : bench-delete-larger param-list
+  . "Check (delete b a >)."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (delete b a >) :let ((a (iota N)) (b (- m 1)))
+  zip param-list : map f param-list
+
+define : bench-delete! param-list
+  . "Check (member b a)."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (delete! b a) :let ((a (iota N)) (b (- m 1)))
+  zip param-list : map f param-list
+
+
+;; TODO: VList benchmarks
+
+
+;; String benchmarks
+define : bench-append-string param-list
+  . "Test (string-append a b) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (string-append a b) :let ((a (make-string N))(b (make-string m)))
+  zip param-list : map f param-list
+
+define : bench-append-string/shared param-list
+  . "Test (string-append/shared a b) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (string-append/shared a b) :let ((a (make-string N))(b (make-string m)))
+  zip param-list : map f param-list
+
+;; Vector benchmarks
+define : bench-append-vector param-list
+  . "Test (vector-append a b) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (vector-append a b) :let ((a (make-vector N 1))(b (make-vector m 1)))
+  zip param-list : map f param-list
+
+;; Map/set benchmarks
+define : bench-assoc param-list
+  . "Test (assoc a b) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (assoc a b) :let ((a m)(b (reverse (fold (λ (x y z) (acons x y z)) '() (iota N 1) (iota N 1)))))
+  zip param-list : map f param-list
+
+
+;; opertations
+define : bench-operation-+ param-list
+  . "Test (assoc a b) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (+ a b) :let ((a N)(b m)(c 1)(d 2))
+  zip param-list : map f param-list
+
+define : bench-operation-+++ param-list
+  . "Test (assoc a b) with lists of lengths from the param-list."
+  define : f x
+     let : (N (list-ref x 0)) (m (list-ref x 1))
+            benchmark (+ (+ (+ a b) c) d) :let ((a N)(b m)(c 50)(d 100))
+  zip param-list : map f param-list
+
+
+;; prepare a multi-function fit
+import 
+    only : examples ensemble-estimation
+         . EnSRF make-covariance-matrix-with-offdiagonals-using-stds 
+         . standard-deviation-from-deviations x-deviations->y-deviations
+         . x^steps
+    only : ice-9 popen
+         . open-output-pipe close-pipe
+
+define-syntax-rule : or0 test c ...
+    if test : begin c ...
+            . 0
+
+define-syntax-rule : oror0 test1 test2 c ...
+    if (or test1 test2) : begin c ...
+                        . 0
+
+define-syntax-rule : define-quoted sym val
+    ;; set the value to true using eval to break the symbol->variable barrier
+    primitive-eval `(define ,sym val)
+
+define* 
+       H-N-m x pos #:key all const OlogN OsqrtN ON ONlogN ON²
+                                 . Ologm Osqrtm Om Omlogm Om²
+                                 . OlogNm ONlogm OmlogN ONm
+                                 . ONlogNlogN Omlogmlogm
+       . "Observation operator. It generates modelled observations from the input.
+
+x are parameters to be optimized, pos is another input which is not optimized. For plain functions it could be the position of the measurement on the x-axis. We currently assume absolute knowledge about the position.
+"
+       let : (N (first pos)) (m (second pos))
+           +
+             oror0 all const : list-ref x 0 ; constant value
+             ;; pure N
+             oror0 all OlogN  : * (list-ref x 1) : log (+ 1 N) ; avoid breakage at pos 0
+             oror0 all OsqrtN : * (list-ref x 2) : sqrt N
+             oror0 all ON     : * (list-ref x 3) N
+             oror0 all ONlogN : * (list-ref x 4) : * N : log (+ 1 N)
+             oror0 all ON²    : * (list-ref x 5) : expt N 2
+             ;; pure m
+             oror0 all Ologm  : * (list-ref x 6) : log (+ 1 m)
+             oror0 all Osqrtm : * (list-ref x 7) : sqrt m
+             oror0 all Om     : * (list-ref x 8) m
+             oror0 all Omlogm : * (list-ref x 9) : * m : log (+ 1 m)
+             oror0 all Om²    : * (list-ref x 10) : expt m 2
+             ;; mixed terms
+             oror0 all OlogNm : * (list-ref x 11) : log (+ 1 N m)
+             oror0 all ONlogm : * (list-ref x 12) : * N : log (+ 1 m)
+             oror0 all OmlogN : * (list-ref x 13) : * m : log (+ 1 N)
+             oror0 all ONm    : * (list-ref x 14) : * N m
+             oror0 all ONlogNlogN   : * (list-ref x 15) : * (log (+ 1 N)) (log (+ 1 N)) N
+             oror0 all Omlogmlogm   : * (list-ref x 16) : * (log (+ 1 m)) (log (+ 1 m)) m
+
+
+define : interleave lx lz
+  cond
+    (null? lx) lz
+    else
+      cons : car lx
+             interleave lz : cdr lx
+
+
+define : print-fit x σ
+    . "Print the big-O parameters which are larger than 2.6σ (2.6 times their standard deviation, roughly 99% / p 0.01)."
+    ;; see https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule#/media/File:Standard_score_and_prediction_interval.png
+    let : : number-format "~,1,,,,,'ee±~,1,,,,,'ee"
+      let big-O
+        : names : list "" "log(N)" "sqrt(N)" "N log(N)" "N^2" "log(m)" "sqrt(m)" "m" "m log(m)" "m^2" "log(N + m)" "N log(m)" "m log(N)" "N m" "N log(N)^2" "m^2 N"
+          x x
+          σ σ
+        cond
+          : or (null? names) (null? x) (null? σ)
+            newline
+          : > (abs (car x)) (* 2.6 (car σ)) ;; 99%: 2.6 times standard deviation as significance level
+            format #t : string-append number-format " " (car names) "  "
+                      . (car x) (car σ)
+            big-O (cdr names) (cdr x) (cdr σ)
+          else
+            big-O (cdr names) (cdr x) (cdr σ)
+
+
+define : flatten li
+         append-ec (: i li) i
+
+;; TODO: add filename and title and fix the units
+define* : plot-benchmark-result bench H #:key filename title
+     let*
+        : ensemble-member-count 32
+          ensemble-member-plot-skip 8 ;; must not be zero!
+          iterations 4
+          y_0 : apply min : map car : map cdr bench
+          y_m : * 0.25 : apply max : map car : map cdr bench
+          nb : apply max : interleave (map car (map car bench)) (map car (map cdr (map car bench)))
+          ;; "const" "log(N)" "sqrt(N)" "N" "N^2" "N^3" "log(m)" "sqrt(m)" "m" "m^2" "m^3" "log(N + m)" "N log(m)" "m log(N)" "N m" "N^2 m" "m^2 N"
+          x^b : list y_0 (/ y_m (log nb)) (/ y_m (sqrt nb)) (/ y_m nb) (/ y_m nb nb) (/ y_m nb nb nb) (/ y_m (log nb)) (/ y_m (sqrt nb)) (/ y_m nb) (/ y_m nb nb) (/ y_m nb nb nb) (/ y_m nb nb) (/ y_m nb nb) (/ y_m nb nb nb) (/ y_m nb nb nb) (/ y_m nb nb nb nb) (/ y_m nb nb nb nb)  ; inital guess: constant starting at the first result
+          x^b-std : list-ec (: i x^b) (* 2 i) ; inital guess: 200% uncertainty
+          P : make-covariance-matrix-with-offdiagonals-using-stds x^b-std
+          y⁰-pos : map car bench
+          y⁰ : append-map cdr bench
+          ;; several iterations to better cope with non-linearity, following http://journals.ametsoc.org/doi/abs/10.1175/MWR-D-11-00176.1 (but globally)
+          y⁰-stds : list-ec (: i y⁰) : * (sqrt iterations) : min max-absolute-uncertainty-seconds {max-relative-uncertainty * i} ; enforcing 20% max std in benchmark-run
+          R : make-covariance-matrix-with-offdiagonals-using-stds y⁰-stds
+          optimized ;; iterate N times
+              let lp : (N iterations) (x^b x^b) (P P)
+                  let : : optimized : EnSRF H x^b P y⁰ R y⁰-pos ensemble-member-count
+                      cond
+                         : <= N 1
+                            . optimized
+                         else
+                            let*
+                              : x-opt : list-ref optimized 0
+                                x-deviations : list-ref optimized 1
+                                x-std ;; re-create the ensemble with the new std
+                                    list-ec (: i (length x-opt))
+                                        apply standard-deviation-from-deviations
+                                            list-ec (: j x-deviations) : list-ref j i
+                                P : make-covariance-matrix-with-offdiagonals-using-stds x-std
+                              lp (- N 1) x-opt P
+          x-opt : list-ref optimized 0
+          x-deviations : list-ref optimized 1
+          x-std 
+                list-ec (: i (length x-opt))
+                      apply standard-deviation-from-deviations : list-ec (: j x-deviations) : list-ref j i
+          y-deviations : x-deviations->y-deviations H x-opt x-deviations y⁰-pos
+          y-stds : list-ec (: i y-deviations) : apply standard-deviation-from-deviations i
+          y-opt : map (λ (x) (H x-opt x)) y⁰-pos
+          x^b-deviations-approx
+              list-ec (: i ensemble-member-count)
+                   list-ec (: j (length x^b))
+                       * : random:normal
+                           sqrt : list-ref (list-ref P j) j ; only for diagonal P!
+          y^b-deviations : x-deviations->y-deviations H x^b x^b-deviations-approx y⁰-pos
+          y-std
+             apply standard-deviation-from-deviations
+                flatten y-deviations
+          y-stds : list-ec (: i y-deviations) : apply standard-deviation-from-deviations i
+          y^b-stds : list-ec (: i y^b-deviations) : apply standard-deviation-from-deviations i
+ 
+        ;; print-fit x-std
+        when title
+            display title
+            newline
+        print-fit x-opt x-std
+        ;; TODO: minimize y-mismatch * y-uncertainty
+        format #t "Model standard deviation (uncertainty): ~,4e\n" y-std
+        newline
+        ; now plot the result
+        let : : port : open-output-pipe "python2"
+          format port "# encoding: utf-8\n"
+          format port "from __future__ import unicode_literals\n"
+          format port "import pylab as pl\nimport matplotlib as mpl\n"
+          format port "y0 = [float(i) for i in '~A'[1:-1].split(' ')]\n" y⁰
+          format port "ystds = [float(i) for i in '~A'[1:-1].split(' ')]\n" y⁰-stds
+          format port "ypos1 = [float(i) for i in '~A'[1:-1].split(' ')]\n" : list-ec (: i y⁰-pos) : first i
+          format port "ypos2 = [float(i) for i in '~A'[1:-1].split(' ')]\n" : list-ec (: i y⁰-pos) : second i
+          format port "yinit = [float(i) for i in '~A'[1:-1].split(' ')]\n" : list-ec (: i y⁰-pos) : H x^b i
+          format port "yinitstds = [float(i) for i in '~A'[1:-1].split(' ')]\n" y^b-stds
+          format port "yopt = [float(i) for i in '~A'[1:-1].split(' ')]\n" : list-ec (: i y⁰-pos) : H x-opt i
+          format port "yoptstds = [float(i) for i in '~A'[1:-1].split(' ')]\n" y-stds
+          ;; format port "pl.errorbar(*zip(*sorted(zip(ypos1, yinit))), yerr=zip(*sorted(zip(ypos1, yinitstds)))[1], label='prior vs N')\n"
+          format port "pl.errorbar(*zip(*sorted(zip(ypos1, yopt))), yerr=zip(*sorted(zip(ypos1, yoptstds)))[1], marker='H', mew=1, ms=10, linewidth=0.1, label='optimized vs N')\n"
+          format port "eb=pl.errorbar(*zip(*sorted(zip(ypos1, y0))), yerr=ystds, alpha=0.6, marker='x', mew=2, ms=10, linewidth=0, label='measurements vs N')\neb[-1][0].set_linewidth(1)\n"
+          ;; format port "pl.errorbar(*zip(*sorted(zip(ypos2, yinit))), yerr=zip(*sorted(zip(ypos2, yinitstds)))[1], label='prior vs. m')\n"
+          format port "pl.errorbar(*zip(*sorted(zip(ypos2, yopt))), yerr=zip(*sorted(zip(ypos2, yoptstds)))[1], marker='h', mew=1, ms=10, linewidth=0.1, label='optimized vs. m')\n"
+          format port "eb=pl.errorbar(*zip(*sorted(zip(ypos2, y0))), yerr=ystds, alpha=0.6, marker='x', mew=2, ms=10, linewidth=0, label='measurements vs. m')\neb[-1][0].set_linewidth(1)\n"
+          format port "pl.plot(sorted(ypos1+ypos2), pl.log(sorted(ypos1+ypos2))*(max(y0) / pl.log(max(ypos1+ypos2))), label='log(x)')\n"
+          format port "pl.plot(sorted(ypos1+ypos2), pl.sqrt(sorted(ypos1+ypos2))*(max(y0) / pl.sqrt(max(ypos1+ypos2))), label='sqrt(x)')\n"
+          format port "pl.plot(sorted(ypos1+ypos2), pl.multiply(sorted(ypos1+ypos2), max(y0) / max(ypos1+ypos2)), label='x')\n"
+          list-ec (: step 0 (length x^steps) 4)
+               let : : members : list-ref x^steps (- (length x^steps) step 1)
+                  list-ec (: member-idx 0 (length members) ensemble-member-plot-skip) ; reversed
+                     let : : member : list-ref members member-idx
+                       format port "paired = pl.get_cmap('Paired')
+cNorm = mpl.colors.Normalize(vmin=~A, vmax=~A)
+scalarMap = mpl.cm.ScalarMappable(norm=cNorm, cmap=paired)\n" 0 (length member)
+                       list-ec (: param-idx 0 (length member) 4) ; step = 4
+                          ;; plot parameter 0
+                          let : (offset (/ (apply max (append y⁰ y-opt)) 2)) (spreading (/ (apply max (append y⁰ y-opt)) (- (apply max member) (apply min member)) 2))
+                              format port "pl.plot(~A, ~A, marker='.', color=scalarMap.to_rgba(~A), linewidth=0, label='', alpha=0.6, zorder=-1)\n"
+                                          . (/ step 1) (+ offset (* spreading (list-ref member param-idx))) param-idx
+          format port "pl.legend(loc='upper left', fancybox=True, framealpha=0.5)\n"
+          format port "pl.xlabel('position (N or m) / arbitrary units')\n"
+          format port "pl.ylabel('time / s')\n"
+          format port "pl.title('''~A''')\n" : or title "Operation scaling behaviour"
+          format port "pl.text(1, 0, '''fit: ~A''', horizontalalignment='right', verticalalignment='center', transform=pl.gca().transAxes)\n" : with-output-to-string : λ() : print-fit x-opt x-std
+          format port "pl.xscale('log')\n"
+          ;; format port "pl.yscale('log')\n"
+          if filename
+              format port "pl.savefig('~A', bbox_inches='tight')\n" filename
+              format port "pl.show()\n"
+          format port "exit()\n"
+          close-pipe port
+
+
+define : main args
+ let : : steps 25
+   when : member "--quick" args
+       set! max-relative-uncertainty 1.5
+       set! max-absolute-uncertainty-seconds 1.e-1
+       set! min-aggregated-runtime-seconds 1.e-7
+       set! max-iterations 16
+       set! steps 5
+   let*
+      : H : lambda (x pos) (H-N-m x pos #:all #t)
+        H-const : lambda (x pos) (H-N-m x pos #:const #t)
+        H-log : lambda (x pos) (H-N-m x pos #:const #t #:OlogN #t #:Ologm #t)
+        H-lin : lambda (x pos) (H-N-m x pos #:const #t #:ON #t #:Om #t #:ONlogN #t #:Omlogm #t #:ONlogNlogN #t #:Omlogmlogm #t )
+        pbr plot-benchmark-result
+      let lp
+        : N-start `(1    1    1    100   ,(* steps 1000))
+          N-step  '(1000 1000 0    0     0)
+          m-start '(1    100  1    1     1)
+          m-step  '(0    0    1000 1000  1000)
+        cond
+          : null? N-start
+            . #t
+          else
+            let*
+              : N : car N-start
+                dN : car N-step
+                m : car m-start
+                dm : car m-step
+                param-list : zip (logiota steps N dN) (logiota steps m dm)
+              define : title description
+                  string-append description
+                    format #f ", ~a ~a"
+                      if (equal? dN 0) N "N"
+                      if (equal? dm 0) m "m"
+              define : filename identifier
+                  format #f "/tmp/benchmark-~a-~a-~a.png"
+                      . identifier
+                      if (equal? dN 0) N "N"
+                      if (equal? dm 0) m "m"
+              pbr (bench-operation-+ param-list) H
+                  . #:title : title "+ N m"
+                  . #:filename : filename "operation-plus"
+              pbr (bench-operation-+++ param-list) H
+                  . #:title : title "+ (+ (+ N m) 50) 100"
+                  . #:filename : filename "operation-plus3"
+              pbr (bench-ref param-list) H-const
+                  . #:title : title "list-ref (iota (max m N)) (- m 1)"
+                  . #:filename : filename "list-ref"
+              when : equal? dm 0 ;; only over N
+                  pbr (bench-car param-list) H-const
+                      . #:title : title "car (iota N)"
+                      . #:filename : filename "car"
+                  pbr (bench-cdr param-list) H-const
+                      . #:title : title "cdr (iota N)"
+                      . #:filename : filename "cdr"
+                  pbr (bench-sort param-list) H-lin
+                      . #:title : title "sort (iota N)"
+                      . #:filename : filename "sort"
+                  pbr (bench-copy param-list) H
+                      . #:title : title "list-copy (iota N)"
+                      . #:filename : filename "copy"
+                  pbr (bench-length param-list) H
+                      . #:title : title "length (iota N)"
+                      . #:filename : filename "length"
+                  pbr (bench-reverse param-list) H
+                      . #:title : title "reverse (iota N)"
+                      . #:filename : filename "reverse"
+                  pbr (bench-last param-list) H
+                      . #:title : title "last (iota N)"
+                      . #:filename : filename "last"
+                  pbr (bench-max param-list) H
+                      . #:title : title "apply max (iota N)"
+                      . #:filename : filename "max"
+                  pbr (bench-min param-list) H
+                      . #:title : title "apply min (iota N)"
+                      . #:filename : filename "min"
+              pbr (bench-append param-list) H-lin
+                  . #:title : title "append (iota N) (iota m)"
+                  . #:filename : filename "list-append"
+              pbr (bench-set param-list) H
+                  . #:title : title "list-set! (iota (max N m)) m #t"
+                  . #:filename : filename "list-set"
+              pbr (bench-getslice-left param-list) H
+                  . #:title : title "take (drop (iota (max N (* 2 m))) m) m"
+                  . #:filename : filename "list-getslice-left"
+              pbr (bench-getslice-right param-list) H
+                  . #:title : title "take-right (drop-right (iota (max N (* 2 m))) m) m"
+                  . #:filename : filename "list-getslice-right"
+              pbr (bench-member param-list) H
+                  . #:title : title "member (- m 1) (iota N)"
+                  . #:filename : filename "member"
+              pbr (bench-delete param-list) H
+                  . #:title : title "delete (- m 1) (iota N)"
+                  . #:filename : filename "delete"
+              pbr (bench-delete-smaller param-list) H
+                  . #:title : title "delete (- m 1) (iota N) <"
+                  . #:filename : filename "delete-smaller"
+              pbr (bench-delete-larger param-list) H
+                  . #:title : title "delete (- m 1) (iota N) >"
+                  . #:filename : filename "delete-larger"
+              pbr (bench-delete! param-list) H
+                  . #:title : title "delete! (- m 1) (iota N)"
+                  . #:filename : filename "delete-bang"
+              ;; strings
+              pbr (bench-append-string param-list) H-lin
+                  . #:title : title "string-append (make-string N) (make-string m)"
+                  . #:filename : filename "string-append"
+              pbr (bench-append-string/shared param-list) H-lin
+                  . #:title : title "string-append/shared (make-string N) (make-string m)"
+                  . #:filename : filename "string-append-shared"
+              ;; vectors
+              pbr (bench-append-vector param-list) H-lin
+                  . #:title : title "vector-append (make-vector N 1) (make-vector m 1)"
+                  . #:filename : filename "vector-append"
+              ;; maps
+              pbr (bench-assoc param-list) H 
+                  . #:title : title "assoc m '((1 . 1) (2 . 2) ... (N . N))"
+                  . #:filename : filename "assoc"
+              pbr (bench-cons param-list) H
+                  . #:title : title "cons m (iota N)"
+                  . #:filename : filename "cons"
+            lp
+                cdr N-start
+                cdr N-step
+                cdr m-start
+                cdr m-step
diff --git a/examples/cartesian-sets.w b/examples/cartesian-sets.w
new file mode 100755
--- /dev/null
+++ b/examples/cartesian-sets.w
@@ -0,0 +1,39 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples cartesian-sets) main)' -s "$0" "$@"
+; !#
+;; Implementation of the cartesian product over a list of lists, building on http://stackoverflow.com/a/20591545/7666
+
+define-module : examples cartesian-sets
+   . #:export : cartesian-product
+
+import : srfi srfi-1
+
+;; original
+define : cartesian-product-lambda . lists
+  fold-right 
+      lambda : xs ys
+          append-map (lambda (x)
+                      (map (lambda (y)
+                             (cons x y))
+                           ys))
+                    . xs
+      . '(())
+      . lists
+
+
+;; easier to understand
+define : cartesian-product . lists
+    define : product-of-two xs ys
+         define : cons-on-each-ys x
+             map : lambda (y) (cons x y)
+                 . ys
+         append-map cons-on-each-ys
+                  . xs
+    fold-right product-of-two '(()) lists
+
+define : main args
+    write : cartesian-product-lambda '(1 2) '(3 4) '(5 6)
+    newline
+    write : cartesian-product '(1 2) '(3 4) '(5 6)
+    newline
diff --git a/examples/cholesky.w b/examples/cholesky.w
--- a/examples/cholesky.w
+++ b/examples/cholesky.w
@@ -6,41 +6,105 @@ exec guile -L $(dirname $(dirname $(real
 ;; Cholesky decomposition, following https://de.wikipedia.org/wiki/Cholesky-Zerlegung#Pseudocode
 
 define-module : examples cholesky
-              . #:export : cholesky!
+              . #:export : cholesky! matrix-ref matrix-set! matrix-transpose matrix-multiply
+
+use-modules : srfi srfi-42 ; list-comprehension
+              srfi srfi-11 ; let-values
 
-use-modules : guildhall ext foof-loop
+define : ->exact-matrix list-of-lists
+       . "Turn a list of lists into a matrix"
+       map 
+         λ : x
+             apply list : map inexact->exact x
+         . list-of-lists
+
+define : ->inexact-matrix list-of-lists
+       . "Turn a list of lists into a matrix"
+       map 
+         λ : x
+             apply list : map exact->inexact x
+         . list-of-lists
+
+define : matrix-ref X row col
+  list-ref (list-ref X row) col
 
-define : matrrix-ref X u v
-  list-ref (list-ref X u) v
+define : matrix-set! X row col val
+  let : : sublist : list-ref X row
+    list-set! sublist col val
+    list-set! X row sublist
+
+define : matrix-transpose X
+   . "Swap columns and rows of a matrix"
+   list-ec (: outer (length X)) ; outer
+     list-ec (: inner (length (list-ref X outer))) ; inner
+       matrix-ref X inner outer
 
-define : matrrix-set! X u v val
-  list-set! (list-ref X u) v val
+define : matrix-multiply X Y
+       . "Calculate the matrix product of X and Y"
+       list-ec (: row (length Y))
+         list-ec (: col (length X))
+           sum-ec (: inner (length (list-ref Y row)))
+                   * : matrix-ref Y inner col
+                       matrix-ref X row inner
 
+define : mostly-exact-sqrt n
+       . "Calculate an exact sqrt if possible, else use a good approximation"
+       inexact->exact : sqrt : inexact->exact n
 
 define : cholesky! a
-  . "Modifies the square matirx a to contain its cholesky decomposition.
+  . "Modifies the square matrix a to contain its cholesky decomposition.
 
 sets a to g with a = ggT,
 
 a is represented as list of lists."
   let : : n : length a
-    loop : : for i : up-from 1 : to n
-      loop : : for j : up-from 1 : to i
+    do-ec (: i n)
+      do-ec (: j (+ 1 i))
         let : : sum : matrix-ref a i j
+          ; format #t "n: ~A i: ~A j: ~A\n" n i j
           when : >= j 1
-            loop : : for k : up-from 1 : to {j - 1}
+            do-ec (: k j)
               set! sum : - sum : * (matrix-ref a i k) (matrix-ref a j k)
           cond
             : > i j ; lower triangle
               matrix-set! a i j
-                / sum : matrix-ref a j j
-              . a
+                / sum
+                  matrix-ref a j j
             : > sum 0 ; diagonal element
-              matrix-set! a i i : sqrt sum
-              . a
+              matrix-set! a i i
+                mostly-exact-sqrt sum ; preserves the exactness, since the result is an exact number, though not an exact result
             else
-              throw 'matrix-numerically-not-symmetric-positive-definite
+              throw 'matrix-numerically-not-symmetric-positive-definite a
+    do-ec (: i n)
+      do-ec (: j (+ 1 i) n)
+        matrix-set! a i j 0
+    . a
 
 
 define : main args
-         display : cholesky! '((1 2)(2 4))
+   let
+         :  X : ->exact-matrix '(( 1  -1   1)
+                                 (-1   3 -.5)
+                                 ( 1 -.5   4))
+            L : ->exact-matrix '(( 1 0          0)
+                                 (-1 1.41421356 0)
+                                 ( 1 0.35355339 1.6955825))
+         format #t "X\n"
+         display : ->inexact-matrix X
+         newline
+         format #t "cholesky\n"
+         display : ->inexact-matrix : cholesky! X
+         newline
+         format #t "L\n"
+         display : ->inexact-matrix L
+         newline
+         format #t "L·Lt\n"
+         display
+           ->inexact-matrix
+             matrix-multiply L : matrix-transpose L
+         newline
+         format #t "X·Xt\n"
+         display
+           ->inexact-matrix
+             matrix-multiply X : matrix-transpose X
+         newline
diff --git a/examples/commandline-handling.w b/examples/commandline-handling.w
new file mode 100755
--- /dev/null
+++ b/examples/commandline-handling.w
@@ -0,0 +1,203 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+guile-2.0 -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+exec guile-2.0 -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(examples commandline-handling)' -s "$0" "$@"
+; !#
+
+;; This is an example for complex commandline handling for a tool
+;; which takes a list of tasks to run as arguments.
+
+define-module : examples commandline-handling
+              . #:export : main
+
+import
+    ice-9 format
+    srfi srfi-1
+    srfi srfi-37
+    ice-9 popen ; for pipe-open*
+    ice-9 rdelim ; for read-string
+
+
+
+define : runcommand cmd
+  let*
+    : port : open-input-pipe cmd
+      output : read-string port
+    display output
+    newline
+
+
+define : run-my-shell-command
+    . "Run a predefined shell command"
+    let
+      :
+        cmd
+          string-join
+            list "for i in {1..5}; do echo $i; done"
+      when : debug?
+        display cmd : current-error-port
+        newline : current-error-port
+      runcommand cmd
+
+
+define : help . args ; args used for simpler option parsing
+         if
+              and
+                 >= (length args) 3
+                 third args
+                 member (string->symbol (third args)) : task-list ; help got an argument
+              let*
+                  : fun : string->symbol : third args
+                    mod : resolve-module '(examples commandline-handling)
+                    doc : procedure-documentation : module-ref mod fun
+                  format #t "~a\n\n~a\n" fun doc
+              format #t "Usage: commandline-handling.w [option ...] [--] [task ...]
+
+Run the selected tasks given on the commandline.
+
+  -h [TASK] --help[=TASK]
+                 display this help or infomation about the task and exit
+  -V --version   output version information and exit
+     --tasks     list all available tasks
+  -d [LEVEL] --debug[=LEVEL]
+                 set logging to debug or to the given level
+
+Defined tasks:
+
+  ~a
+
+" : string-join : map symbol->string : task-list
+         exit 0
+
+
+define : version
+         display "commandline-handling 0.0.0
+
+Copyright (C) 2016 Arne Babenhauserheide, for IMK-ASF at Karlsruhe Institute for Technology
+See the file COPYING. There is NO warranty.
+"
+
+define help-option
+  option '(#\h "help")
+          . #f #t help
+
+define version-option
+  option '(#\V "version")
+          . #f #f
+          λ : option name arg operands
+              version
+              exit 0
+
+define : debug?
+    equal? 'debug : assoc-ref %options 'log-level
+
+
+define debug-option
+  let
+    : required #f
+      optional #t ; can take an argument
+    option '(#\d "debug")
+          . required optional
+          λ : option name arg operands
+              if arg
+                 set! %options : alist-cons 'log-level (string->symbol arg) %options
+                 set! %options : alist-cons 'log-level 'debug %options
+              format : current-error-port
+                     . "debug: activate log level ~a\n"
+                     if arg arg 'debug
+              . operands
+
+
+define utility-procedures
+    ' parse-args main run-task task-list runcommand debug?
+
+define debug-procedures
+    ' tasks help options version
+
+define : task-list
+      let : : mod : resolve-module '(examples commandline-handling)
+          delete #f
+                module-map
+                    λ : x y
+                        if
+                          and
+                            procedure? : module-ref mod x
+                            not : member x utility-procedures
+                            if : equal? 'debug : assoc-ref %options 'log-level
+                               . #t
+                               not : member x debug-procedures
+                          . x
+                          . #f
+                    . mod
+
+define : tasks . args
+    map : λ (x) (display x)(newline)
+          task-list
+
+define tasks-option
+  option '("tasks")
+          . #f #f
+          λ : option name arg operands
+              tasks
+              exit 0
+
+
+define %options
+    '
+      log-level . info
+
+define : options
+         format : current-error-port
+                . "Currently active options: ~A\n"
+                . %options
+
+define %option-list
+    list help-option version-option debug-option tasks-option
+
+
+define : run-task task
+       let*
+         : mod : resolve-module '(examples commandline-handling)
+           t : string->symbol task
+           var : module-variable mod t
+         cond
+           var
+             let : : T : module-ref mod t
+               if : procedure? T
+                  T
+                  format : current-error-port
+                         . "Not a procedure: ~a refers to ~a\n" task var
+           else
+              format : current-error-port
+                     . "Unknown task: ~a\n" task
+
+
+define : parse-args args
+    let
+      :
+        tasks
+           reverse
+            args-fold args
+             . %option-list
+             λ : option name arg operands
+               format : current-error-port
+                      . "unrecognized command line argument name: ~a arg: ~a operands: ~a\n"
+                      . name arg operands
+               exit 1
+             λ : operand operands
+               cons operand operands
+             . '()
+      for-each
+       λ : task
+           if : and (equal? task "help") (not (null? (delete "help" tasks)))
+                map
+                  λ : x
+                      help #f #f x
+                  delete "help" tasks
+                run-task task
+       . tasks
+
+define* : main args
+    if : null? : cdr args
+         help
+         parse-args : cdr args
diff --git a/examples/doctests-test.scm b/examples/doctests-test.scm
new file mode 100755
--- /dev/null
+++ b/examples/doctests-test.scm
@@ -0,0 +1,25 @@
+#!/usr/bin/env sh
+exec guile -L $(dirname $(dirname $(realpath "$0"))) -e '(@@ (examples doctests-test) main)' -s "$0" "$@"
+; !#
+
+(define-module (examples doctests-test))
+
+(import (examples doctests))
+
+(define (foo)
+    "(test 'foo
+        (test-equal \"bar\" (foo)))
+    "
+    "bar")
+
+(define %this-module (current-module))
+(define (main args)
+       " Testing doctests
+   (test 'mytest
+       (test-assert #t)
+       (test-assert #f))
+"
+       (doctests-testmod %this-module))
+
+
+
diff --git a/examples/doctests-test.w b/examples/doctests-test.w
new file mode 100755
--- /dev/null
+++ b/examples/doctests-test.w
@@ -0,0 +1,25 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples doctests-test) main)' -s "$0" "$@"
+; !#
+
+define-module : examples doctests-test
+
+import : examples doctests
+
+define : foo
+    . "(test 'foo
+        (test-equal \"bar\" (foo)))
+    "
+    . "bar"
+
+define %this-module : current-module
+define : main args
+       . " Testing doctests
+   (test 'mytest
+       (test-assert #t)
+       (test-assert #f))
+"
+       doctests-testmod %this-module
+
diff --git a/examples/doctests-testone.scm b/examples/doctests-testone.scm
new file mode 100755
--- /dev/null
+++ b/examples/doctests-testone.scm
@@ -0,0 +1,16 @@
+#!/usr/bin/env sh
+exec guile -L $(dirname $(dirname $(realpath "$0"))) -s "$0" "$@"
+; !#
+
+(import (examples doctests))
+
+(define (foo)
+    "(test 'foo
+        (test-equal \"bar\" (foo)))
+    "
+    "bar")
+
+(doctests-testmod (current-module))
+
+
+
diff --git a/examples/doctests.scm b/examples/doctests.scm
new file mode 100755
--- /dev/null
+++ b/examples/doctests.scm
@@ -0,0 +1,118 @@
+#!/usr/bin/env sh
+exec guile -L $(dirname $(dirname $(realpath "$0"))) -e '(@@ (examples doctests) main)' -s "$0" "$@"
+; !#
+
+(define-module (examples doctests)
+              #:export (doctests-testmod))
+
+(import (ice-9 optargs)
+         (ice-9 rdelim)
+         (ice-9 match)
+         (oop goops)
+         (texinfo reflection))
+
+; define basic dir
+(define* (dir #:key (all? #f))
+   (if all?
+      (map (λ (x) (cons (module-name x)
+                        (module-map (λ (sym var) sym) (resolve-interface (module-name x)))))
+           (cons (current-module) (module-uses (current-module))))
+      (module-map (λ (sym var) sym) (current-module))))
+; add support for giving the module as argument
+(define-generic dir)
+(define-method (dir (all? <boolean>)) (dir #:all? all?))
+(define-method (dir (m <list>)) (module-map (λ (sym var) sym) (resolve-interface m)))
+; add support for using modules directly (interfaces are also modules, so this catches both)
+(define-method (dir (m <module>)) (module-map (λ (sym var) sym) m))
+
+(define (string-index s fragment)
+       "return the index of the first character of the FRAGMENT in string S."
+       (let loop ((s s) (i 0))
+           (if (= 0 (string-length s))
+              #f
+              (if (string-prefix? fragment s)
+                 i
+                 (loop (string-drop s 1) (+ i 1))))))
+
+(define (doctests-extract-from-string s)
+       "Extract all test calls from a given string.
+
+          This is an example test:
+
+          (test 'mytest
+              (define v (make-vector 5 99))
+              (test-assert (vector? v))
+              (test-eqv 99 (vector-ref v 2))
+              (vector-set! v 2 7)
+              (test-eqv 7 (vector-ref v 2)))
+          (test 'mytest2
+              (test-assert #t))
+"
+       (let lp
+           ((str s)
+             (tests (list)))
+           (if (string-null? str)
+              (reverse tests)
+              (let ((idx (string-index str "(test")))
+                  (if (not idx)
+                      (reverse tests)
+                      (let ((sub (substring str idx)))
+                          (lp ; recurse with the rest of the string
+                             (with-input-from-string sub
+                                 (λ () (read) (read-string)))
+                             (cons
+                                 (with-input-from-string sub
+                                     (λ () (read)))
+                                 tests))))))))
+
+(define (doctests-testmod mod)
+       "Execute all doctests in the current module"
+       (let*
+           ((names (module-map (λ (sym var) sym) mod))
+             (filename
+                 (if (module-filename mod) (string-join (string-split (module-filename mod) #\/) "-")
+                     (string-join (cons "._" (map symbol->string (module-name mod))) "-")))
+             (docstrings
+                 (map (λ (x) (if (procedure? x) (procedure-documentation x)))
+                     (map (λ (x) (module-ref mod x)) names))))
+           (let loop
+               ((names names)
+                 (docstrings docstrings))
+               (when (not (null? docstrings))
+                   (when (string? (car docstrings))
+                       (let*
+                           ((name (car names))
+                             (docstring (car docstrings)))
+                           (let loop-tests
+                              ((doctests (doctests-extract-from-string (car docstrings))))
+                              (when (and (list? doctests) (not (null? doctests)))
+                                 (let*
+                                   ((doctest (car doctests))
+                                     (testid
+                                        (if (not (list? doctest))
+                                             #f
+                                             (string-join (list filename (symbol->string name) (symbol->string (primitive-eval (car (cdr doctest)))))
+                                                         "--")))
+                                     (cleaned
+                                         (if (not (list? doctest))
+                                           '#f
+                                           (append
+                                               (cons 'begin
+                                                   (cons '(import (srfi srfi-64))
+                                                       (cons
+                                                           (list 'test-begin testid)
+                                                           (cdr (cdr doctest)))))
+                                               (list (list 'test-end testid))))))
+                                   (when cleaned
+                                       (let ()
+                                           (eval cleaned mod))
+                                       (newline))
+                                   (loop-tests (cdr doctests)))))))
+                   (loop (cdr names) (cdr docstrings))))))
+
+(define %this-module (current-module))
+(define (main args)
+         (doctests-testmod %this-module))
+
+
+
diff --git a/examples/doctests.w b/examples/doctests.w
new file mode 100755
--- /dev/null
+++ b/examples/doctests.w
@@ -0,0 +1,118 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples doctests) main)' -s "$0" "$@"
+; !#
+
+define-module : examples doctests
+              . #:export : doctests-testmod
+
+import : ice-9 optargs
+         ice-9 rdelim
+         ice-9 match
+         oop goops
+         texinfo reflection
+
+; define basic dir
+define* (dir #:key (all? #f))
+   if all?
+      map (λ (x) (cons (module-name x)
+                        (module-map (λ (sym var) sym) (resolve-interface (module-name x)))))
+           cons (current-module) : module-uses (current-module)
+      module-map (λ (sym var) sym) (current-module)
+; add support for giving the module as argument
+define-generic dir
+define-method (dir (all? <boolean>)) (dir #:all? all?)
+define-method (dir (m <list>)) (module-map (λ (sym var) sym) (resolve-interface m))
+; add support for using modules directly (interfaces are also modules, so this catches both)
+define-method (dir (m <module>)) (module-map (λ (sym var) sym) m)
+
+define : string-index s fragment
+       . "return the index of the first character of the FRAGMENT in string S."
+       let loop : (s s) (i 0)
+           if : = 0 : string-length s
+              . #f
+              if : string-prefix? fragment s
+                 . i
+                 loop (string-drop s 1) (+ i 1)
+
+define : doctests-extract-from-string s
+       . "Extract all test calls from a given string.
+
+          This is an example test:
+
+          (test 'mytest
+              (define v (make-vector 5 99))
+              (test-assert (vector? v))
+              (test-eqv 99 (vector-ref v 2))
+              (vector-set! v 2 7)
+              (test-eqv 7 (vector-ref v 2)))
+          (test 'mytest2
+              (test-assert #t))
+"
+       let lp
+           : str s
+             tests : list
+           if : string-null? str
+              reverse tests
+              let : : idx : string-index str "(test"
+                  if : not idx
+                      reverse tests
+                      let : : sub : substring str idx
+                          lp ; recurse with the rest of the string
+                             with-input-from-string sub
+                                 λ () (read) (read-string)
+                             cons
+                                 with-input-from-string sub
+                                     λ () : read
+                                 . tests
+
+define : doctests-testmod mod
+       . "Execute all doctests in the current module"
+       let*
+           : names : module-map (λ (sym var) sym) mod
+             filename
+                 if (module-filename mod) (string-join (string-split (module-filename mod) #\/ ) "-")
+                     string-join (cons "._" (map symbol->string (module-name mod))) "-"
+             docstrings
+                 map (λ (x) (if (procedure? x) (procedure-documentation x)))
+                     map (λ (x) (module-ref mod x)) names
+           let loop
+               : names names
+                 docstrings docstrings
+               when : not : null? docstrings
+                   when : string? : car docstrings
+                       let*
+                           : name : car names
+                             docstring : car docstrings
+                           let loop-tests
+                              : doctests : doctests-extract-from-string : car docstrings
+                              when : and (list? doctests) : not : null? doctests
+                                 let*
+                                   : doctest : car doctests
+                                     testid
+                                        if : not : list? doctest
+                                             . #f
+                                             string-join : list filename (symbol->string name) : symbol->string : primitive-eval : car : cdr doctest
+                                                         . "--"
+                                     cleaned
+                                         if : not : list? doctest
+                                           . '#f
+                                           append
+                                               cons 'begin
+                                                   cons '(import (srfi srfi-64))
+                                                       cons
+                                                           list 'test-begin testid
+                                                           cdr : cdr doctest
+                                               list : list 'test-end testid
+                                   when cleaned
+                                       let :
+                                           eval cleaned mod
+                                       newline
+                                   loop-tests : cdr doctests
+                   loop (cdr names) (cdr docstrings)
+
+define %this-module : current-module
+define : main args
+         doctests-testmod %this-module
+
diff --git a/examples/duel.w b/examples/duel.w
new file mode 100755
--- /dev/null
+++ b/examples/duel.w
@@ -0,0 +1,68 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+D="$(dirname $(realpath "$0"))"
+W="$(dirname $(dirname $(realpath "$0")))"
+guile -L "$W" -c '(import (wisp-scheme) (language wisp spec))'
+exec guile -L "$W" --language=wisp -l "$D/enter-three-witches.w" -s "$0" "$@"
+; !#
+
+import : examples enter-three-witches
+
+set! *random-state* : random-state-from-platform
+
+Enter : Galtag Nimbleday
+        Lowlife Pirate
+        choose your answer
+
+define challenges
+  `
+    : You fight like a Dairy Farmer!
+      How appropriate! You fight like a cow!
+      And I've got a little TIP for you, get the POINT?
+
+; write answers
+; newline
+
+define : random-challenge
+         list-ref challenges : random : length challenges
+
+define : list->textline L
+         string-join : map ->string L
+                     . " "
+
+;; TODO: define-syntax define-interaction
+define : duel me other
+  let*
+    : challenge : random-challenge
+      tease : car challenge
+      answers : map list->textline : cdr challenge
+    say-name other
+    say-words
+      : ,@tease
+    say-name ' : choose your answer
+    ;; TODO: shuffle the answers, check whether the right one is given
+    ;; (the first answer in the original ordering is the right one)
+    say-words
+         : ,(let ((counter 0))
+             (string-join
+               (map (λ (x)
+                       (set! counter (+ 1 counter))
+                       (string-append (number->string counter) "  " x)) answers) "\n  "))
+    let
+      : answer : list-ref answers (- (string->number (format #f "~a" (peek-char))) 1)
+      drain-input (current-input-port)
+      say-name me
+      say-words
+        : ,answer
+    
+
+define-syntax-rule : Duel fighter1 fighter2
+   duel
+     quote fighter1
+     quote fighter2
+
+
+Duel
+  Galtag Nimbleday
+  Lowlife Pirate
+
diff --git a/examples/ensemble-estimation.w b/examples/ensemble-estimation.w
--- a/examples/ensemble-estimation.w
+++ b/examples/ensemble-estimation.w
@@ -1,10 +1,11 @@
 #!/usr/bin/env sh
 # -*- wisp -*-
-exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples ensemble-estimation) main)' -s "$0" "$@"
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples ensemble-estimation) main)' -l $(dirname $(realpath "$0"))/cholesky.w -s "$0" "$@"
 ; !#
 
 ;; Simple Ensemble Square Root Filter to estimate function parameters
-;; based on measurements.
+;; based on measurements with uncertainty.
 
 ;; Provide first guess parameters x^b and measurements y⁰ to get
 ;; optimized parameters x^a.
@@ -33,7 +34,15 @@ exec guile -L $(dirname $(dirname $(real
 ;;     x'^a = x'^b - αK·H(x'^b)
 
 define-module : examples ensemble-estimation 
+              . #:export (EnSRF H standard-deviation-from-deviations 
+                          make-covariance-matrix-with-offdiagonals-using-stds
+                          x-deviations->y-deviations x^steps)
+
 use-modules : srfi srfi-42 ; list-ec
+              srfi srfi-9 ; records
+              oop goops ; generic functions
+              ice-9 optargs
+              examples cholesky ; cholesky! for random variables with covariance
 use-modules 
   : ice-9 popen
         . #:select : open-output-pipe close-pipe
@@ -49,8 +58,46 @@ define : make-diagonal-matrix-with-trace
                       list-ref trace i
                       . 0.0
 
+define : make-covariance-matrix-with-offdiagonals-using-stds stds
+         . "this is a dense covariance matrix with (√1/N std_i std_j) as the off-diagonal elements, with N the number of elements in the stds."
+         let : : dim : length stds
+             list-ec (: i dim)
+               list-ec (: j dim)
+                 if : = i j
+                      expt (list-ref stds i) 2
+                      ; add smaller off-diag elements
+                      * (sqrt (/ 1 dim)) (list-ref stds i) (list-ref stds j)
+
+; TODO: Allow for off-diagonal elements
+define-class <sparse-covariance-matrix> ()
+  trace #:getter get-trace #:init-keyword #:trace
+  zeros #:getter get-zeros #:init-keyword #:zeros
+  stds #:getter get-stds #:init-keyword #:stds
+      . #:allocation #:virtual
+      . #:slot-ref (lambda (o)
+                       (map (lambda (x) (expt x 0.5)) (slot-ref o 'trace)))
+      . #:slot-set! (lambda (o m)
+                       (slot-set! o 'trace (map (lambda (x) (expt x 2)) m))
+                       (slot-set! o 'zeros (list-ec (: i (length m)) 0)))
+
+define-generic list-ref 
+define-method : list-ref (M <sparse-covariance-matrix>) (i <integer>)
+              let
+                : trace : slot-ref M 'trace
+                  zeros : slot-ref M 'zeros
+                append
+                  list-head zeros i
+                  list : list-ref trace i
+                  list-tail zeros : + i 1
+
+define-generic length
+define-method : length (M <sparse-covariance-matrix>)
+                length : slot-ref M 'trace
+
 define : make-covariance-matrix-from-standard-deviations stds
-         make-diagonal-matrix-with-trace : map (lambda (x) (expt x 2)) stds
+         ; make-diagonal-matrix-with-trace : map (lambda (x) (expt x 2)) stds
+         ; make <sparse-covariance-matrix> #:stds stds
+         make-covariance-matrix-with-offdiagonals-using-stds stds
 
 define : mean l
        . "Calculate the average value of l (numbers)."
@@ -78,19 +125,26 @@ define* : write-multiple . x
 
 ;; Start with the simple case: One variable and independent observations (R diagonal)
 ;; First define a truth
-define x^seed '(0.5 0.6 2 0.1) ; 0.7 0.9 0.8 0.4)
+define x^seed '(-2 3 -1) ; 0.7 0.9 0.8 0.4)
+define x^seed-std '(3 4 2) ; 0.2 0.2 0.2 0.2)
 ;; The size is the length of the seed, squared, each multiplied by each
 define x^true : append-ec (: i (length x^seed)) : list-ec (: j x^seed) : * j : list-ref x^seed i
 ;; And add an initial guess of the parameters
-define x^b : append-ec (: i (length x^seed))  '(1 1 1 1) ; 1 1 1 1) ; initial guess
-define P : make-covariance-matrix-from-standard-deviations : append-ec (: i (length x^seed)) '(0.5 0.1 0.3 0.1) ; 0.2 0.2 0.2 0.2)
+define x^b : list-ec (: i (length x^true)) 1 ; initial guess
+;; set x^b as x^true to test losing uncertainty
+; define x^b x^true
+define x^b-std : append-ec (: i (length x^seed)) x^seed-std
+define P : make-covariance-matrix-from-standard-deviations x^b-std
 
 ;; Then generate observations
-define y⁰-num 1000
+define y⁰-num 80
 define y⁰-pos-max 100
+define y⁰-plot-skip : max 1 : * (/ 5 2) {y⁰-num / y⁰-pos-max}
 ;; At the positions where they are measured. Drawn randomly to avoid
 ;; giving an undue weight to later values.
-define y⁰-pos : list-ec (: i y⁰-num) : * (random:uniform) y⁰-pos-max
+define y⁰-pos-sorted : list-ec (: i y⁰-num) : exact->inexact : * y⁰-pos-max : / i y⁰-num 
+define y⁰-pos-random : list-ec (: i y⁰-num) : * (random:uniform) y⁰-pos-max
+define y⁰-pos y⁰-pos-random
 
 define : H-single-parameter xi xi-pos pos
        . "Observation function for a single parameter."
@@ -103,6 +157,15 @@ define : H-single-parameter xi xi-pos po
              * xi pos 
                exp : - : expt xi-posdist 2
 
+define : H-single-parameter-sinx/x xi xi-pos pos
+       . "Observation function for a single parameter."
+       let* 
+         : xi-posdist : abs : / {pos - xi-pos} {y⁰-pos-max / 26.4} ; for (2 2 2 2) this just barely does resolves the two central values
+         * xi 15
+           / : sin xi-posdist
+             . xi-posdist
+                    
+
 ;; We need an observation operator to generate observations from true values
 define : H x pos
        . "Observation operator. It generates modelled observations from the input.
@@ -112,19 +175,18 @@ x are parameters to be optimized, pos is
        let*
            : len : length x
              ystretch y⁰-pos-max
-             x-pos : list-ec (: i len) : * ystretch {{i + 0.5} / {len + 1}}
-           apply +
-                 list-ec (: i len)
-                      H-single-parameter 
-                        list-ref x i
-                        list-ref x-pos i
-                        . pos
+             x-pos : list-ec (: i len) : * ystretch {{i + 0.5} / len}
+           sum-ec (: i len)
+                   H-single-parameter-sinx/x
+                       list-ref x i
+                       list-ref x-pos i
+                       . pos
 
 ;; We start with true observations which we will disturb later to get
 ;; the equivalent of measured observations
 define y^true : list-ec (: i y⁰-pos) : H x^true i
 ;; now we disturb the observations with a fixed standard deviation. This assumes uncorrelated observations.
-define y⁰-std 10
+define y⁰-std 30
 define y⁰ : list-ec (: i y^true) : + i : * y⁰-std : random:normal
 ;; and define the covariance matrix. This assumes uncorrelated observations.
 define R : make-covariance-matrix-from-standard-deviations : list-ec (: i y⁰-num) y⁰-std
@@ -134,24 +196,43 @@ define R : make-covariance-matrix-from-s
 ;; The actual observations
 ;; define y⁰ : list-ec (: i y⁰-num) : + y⁰-mean : * y⁰-std : random:normal
 
+define : matrix-times-vector X y
+       . "Calculate the matrix product of X and Y"
+       list-ec (: row (length X))
+         sum-ec (: i (length y))
+                 * : list-ref y i
+                     list-ref (list-ref X row) i
 
-define : EnSRT H x P y R y-pos N
-       . "Observation function H, parameters x,
+
+define x^steps '()
+define 1-AK '()
+
+define* : EnSRF H x P y R y-pos N #:key (penalty-function-of-x (λ (x) 0))
+     . "Observation function H, parameters x,
 parameter-covariance P, observations y, observation covariance R
 and number of ensemble members N.
 
+TODO: PENALTY-FUNCTION-OF-X is any function which takes the
+parameters X and returns a penalty.
+
 Limitations: y is a single value. R and P are diagonal.
 "
+     let*
+       : P_copy : list-ec (: j (length P)) : list-ec (: k (length (list-ref P j))) : list-ref (list-ref P j) k
+         L
+           cholesky! P_copy
        let step
          : observations-to-process y
            observation-variances : list-ec (: i (length y)) : list-ref (list-ref R i) i
            observation-positions y-pos
            x^b x
-           x-deviations 
+           x-deviations ; multiply the sqrt of P (L with LLt=P) with a vector with random perturbations
                list-ec (: i N)
-                 list-ec (: j (length x))
+                 matrix-times-vector L
+                   list-ec (: j (length x))
                      * : random:normal
-                         sqrt : list-ref (list-ref P j) j ; only for diagonal P!
+                       . 1 ; sqrt : list-ref (list-ref P j) j ; only for diagonal P!
+         set! x^steps : cons x-deviations x^steps
          cond
             : null? observations-to-process
               list x^b x-deviations
@@ -160,12 +241,12 @@ Limitations: y is a single value. R and 
                ; newline
                let*
                  : y_cur : car observations-to-process
-                   R_cur : car observation-variances
+                   R_cur : * 1 : car observation-variances
                    y-pos_cur : car observation-positions
                    Hx^b_i
                        list-ec (: i x-deviations) 
                            H 
-                             list-ec (: j (length i)) 
+                             list-ec (: j (length i))
                                  + (list-ref x^b j) (list-ref i j)
                              . y-pos_cur
                    Hx^b 
@@ -182,7 +263,7 @@ Limitations: y is a single value. R and 
                       list-ec (: j (length x^b)) ; for each x^b_i multiply the state-element and model-deviation for all ensemble members.
                          * {1 / {N - 1}} 
                              sum-ec (: i N) 
-                               * : list-ref (list-ref x-deviations i) j ; FIXME: this currently does not use j because I only do length 1 x
+                               * : list-ref (list-ref x-deviations i) j
                                    list-ref Hx^b-prime i
                    K : list-ec (: i PHt) {i / {HPHt + R_cur}}
                    x^a 
@@ -199,6 +280,11 @@ Limitations: y is a single value. R and 
                            * α
                              list-ref K j
                              list-ref Hx^b-prime i
+                 if : equal? 1-AK '()
+                      set! 1-AK : list-ec (: i K) {1 - i} ; init
+                      set! 1-AK : list-ec (: i (length K)) : * (list-ref 1-AK i) {1 - (abs (list-ref K i))}
+                 ;; display 1-AK ; TODO: What does this actually signify?
+                 ;; newline
                  step
                    cdr observations-to-process
                    cdr observation-variances
@@ -207,36 +293,80 @@ Limitations: y is a single value. R and 
                    . x^a-deviations
 
 
+define : x-deviations->y-deviations H x-opt x-deviations y⁰-pos
+         . "Calculate y-deviations for each measurement from the x-deviations.
+         
+         return ((y_0'0 y_0'1 ...) ...)
+         "
+         define (~ li i) (list-ref li i)
+         ; for each ensemble member calculate the y-deviations
+         let*
+           : y-opt : map (λ (x) (H x-opt x)) y⁰-pos
+             y-ensemble
+               list-ec (: x-dev x-deviations) ; x-dev has one number (x'_i) per x-parameter
+                     let*
+                       : ; calculate x-parameters for the ensemble
+                         x-opt+dev
+                           list-ec (: j (length x-opt))
+                             + : ~ x-opt j
+                                 ~ x-dev j
+                         ; calculate all y-values for the ensemble
+                         y-opt+dev : map (λ (x) (H x-opt+dev x)) y⁰-pos
+                       ; calculate all differences
+                       map (λ (x y) (- x y)) y-opt+dev y-opt
+           ; reshape into one ensemble per value
+           list-ec (: ensidx (length (~ y-ensemble 0)))
+                list-ec (: obsidx (length y-ensemble))
+                     ~ (~ y-ensemble obsidx) ensidx
+
+define : flatten li
+         append-ec (: i li) i
+
 define : main args
     let*
-      : optimized : EnSRT H x^b P y⁰ R y⁰-pos 40
+      : ensemble-member-count 32
+        ensemble-member-plot-skip 4
+        optimized : EnSRF H x^b P y⁰ R y⁰-pos ensemble-member-count
         x-opt : list-ref optimized 0
         x-deviations : list-ref optimized 1
-        ; std : sqrt : * {1 / {(length x-deviations) - 1}} : sum-ec (: i x-deviations) : expt i 2
-      format #t "x⁰:   ~A ± ~A\nx:    ~A ± ~A\nx^t:  ~A\nx-t/σ:~A\ny̅:    ~A ± ~A\ny̅⁰:   ~A ± ~A\ny̅^t:  ~A\nnoise:~A\n" 
+        x-std 
+              list-ec (: i (length x-opt))
+                    apply standard-deviation-from-deviations : list-ec (: j x-deviations) : list-ref j i
+        y-deviations : x-deviations->y-deviations H x-opt x-deviations y⁰-pos
+        x^b-deviations-approx
+            list-ec (: i ensemble-member-count)
+                 list-ec (: j (length x^b))
+                     * : random:normal
+                         sqrt : list-ref (list-ref P j) j ; only for diagonal P!
+        y^b-deviations : x-deviations->y-deviations H x^b x^b-deviations-approx y⁰-pos
+        y-std
+           apply standard-deviation-from-deviations
+              flatten y-deviations
+        y-stds : list-ec (: i y-deviations) : apply standard-deviation-from-deviations i
+        y^b-stds : list-ec (: i y^b-deviations) : apply standard-deviation-from-deviations i
+        σ
+          list-ec (: i (length x-opt))
+                   apply standard-deviation-from-deviations : list-ec (: j x-deviations) : list-ref j i
+        Δ/σ
+          list-ec (: i (length x-opt))
+                   / : - (list-ref x-opt i) (list-ref x^true i)
+                       list-ref σ i
+      format #t "x⁰:        ~A\n         ± ~A\nx:         ~A\n         ± ~A\nx^t:       ~A\nx-t/σ:     ~A\n√Σ(Δ/σ)²/N:~A\n√Σσ²:      ~A\ny̅:         ~A ± ~A\ny̅⁰:        ~A ± ~A\ny̅^t:       ~A\nnoise:     ~A\n" 
                  . x^b
                  list-ec (: i (length x^b)) : list-ref (list-ref P i) i
                  . x-opt 
-                 list-ec (: i (length x-opt))
-                    apply standard-deviation-from-deviations : list-ec (: j x-deviations) : list-ref j i
+                 . x-std
                  . x^true
-                 list-ec (: i (length x-opt)) 
-                   / : - (list-ref x-opt i) (list-ref x^true i)
-                       apply standard-deviation-from-deviations : list-ec (: j x-deviations) : list-ref j i
-                 * {1 / (length y⁰)} : apply + : map (lambda (x) (H x-opt x)) y⁰-pos
-                 apply standard-deviation-from-deviations
-                   append-ec (: i (length x-deviations))
-                     let*
-                       : 
-                         x-opt+dev
-                           list-ec (: j (length x-opt))
-                             + : list-ref x-opt j
-                                 list-ref
-                                   list-ref x-deviations i
-                                   . j
-                         y-opt+dev : map (lambda (x) (H x-opt+dev x)) y⁰-pos
-                         y-opt : map (lambda (x) (H x-opt x)) y⁰-pos
-                       map (lambda (x y) (- x y)) y-opt+dev y-opt
+                 . Δ/σ
+                 * {1 / (length Δ/σ)}
+                   sqrt
+                     sum-ec (: i Δ/σ)
+                        expt i 2
+                 sqrt
+                   sum-ec (: i σ)
+                      expt i 2
+                 mean : map (lambda (x) (H x-opt x)) y⁰-pos
+                 . y-std
                      ; list-ec (: i (length y-opt))
                      ;   - (list-ref y-opt+dev i) (list-ref y-opt i)
                  ; apply standard-deviation-from-deviations : map H x-deviations ; FIXME: This only works for trivial H.
@@ -245,18 +375,31 @@ define : main args
                  * {1 / (length y⁰)} : apply + : map (lambda (x) (H x^true x)) y⁰-pos
                  . y⁰-std
       ; now plot the result
-      let : : port : open-output-pipe "python"
-        format port "import pylab as pl\n"
+      let : : port : open-output-pipe "python2"
+        format port "import pylab as pl\nimport matplotlib as mpl\n"
         format port "y0 = [float(i) for i in '~A'[1:-1].split(' ')]\n" y⁰
+        format port "yerr = ~A\n" y⁰-std
         format port "ypos = [float(i) for i in '~A'[1:-1].split(' ')]\n" y⁰-pos
         format port "yinit = [float(i) for i in '~A'[1:-1].split(' ')]\n" : list-ec (: i y⁰-pos) : H x^b i
+        format port "yinitstds = [float(i) for i in '~A'[1:-1].split(' ')]\n" y^b-stds
         format port "ytrue = [float(i) for i in '~A'[1:-1].split(' ')]\n" : list-ec (: i y⁰-pos) : H x^true i
         format port "yopt = [float(i) for i in '~A'[1:-1].split(' ')]\n" : list-ec (: i y⁰-pos) : H x-opt i
-        format port "pl.plot(*zip(*sorted(zip(ypos, yinit))), label='prior')\n"
+        format port "yoptstds = [float(i) for i in '~A'[1:-1].split(' ')]\n" y-stds
+        format port "pl.errorbar(*zip(*sorted(zip(ypos, yinit))), yerr=zip(*sorted(zip(ypos, yinitstds)))[1], label='prior')\n"
         format port "pl.plot(*zip(*sorted(zip(ypos, ytrue))), label='true')\n"
-        format port "pl.plot(*zip(*sorted(zip(ypos, yopt))), label='optimized')\n"
-        format port "pl.plot(*zip(*sorted(zip(ypos, y0))), marker='+', linewidth=0, label='measurements')\n"
-        format port "pl.legend()\n"
+        format port "pl.errorbar(*zip(*sorted(zip(ypos, yopt))), yerr=zip(*sorted(zip(ypos, yoptstds)))[1], label='optimized')\n"
+        format port "eb=pl.errorbar(*zip(*sorted(zip(ypos, y0))), yerr=yerr, alpha=0.6, marker='+', linewidth=0, label='measurements')\neb[-1][0].set_linewidth(1)\n"
+        list-ec (: step 0 (length x^steps) y⁰-plot-skip)
+             let : : members : list-ref x^steps (- (length x^steps) step 1)
+                list-ec (: member-idx 0 (length members) ensemble-member-plot-skip) ; reversed
+                   let : : member : list-ref members member-idx
+                     format port "paired = pl.get_cmap('Paired')
+cNorm = mpl.colors.Normalize(vmin=~A, vmax=~A)
+scalarMap = mpl.cm.ScalarMappable(norm=cNorm, cmap=paired)\n" 0 (length member)
+                     list-ec (: param-idx 0 (length member) 4) ; step = 4
+                        ; plot parameter 0
+                        format port "pl.plot(~A, ~A, marker='.', color=scalarMap.to_rgba(~A), linewidth=0, label='', alpha=0.6, zorder=-1)\n" (/ step y⁰-plot-skip) (+ 80 (* 60 (list-ref member param-idx))) param-idx
+        format port "pl.legend(loc='upper right')\n"
         format port "pl.xlabel('position [arbitrary units]')\n"
         format port "pl.ylabel('value [arbitrary units]')\n"
         format port "pl.title('ensemble optimization results')\n"
diff --git a/examples/enter-three-witches.scm b/examples/enter-three-witches.scm
new file mode 100644
--- /dev/null
+++ b/examples/enter-three-witches.scm
@@ -0,0 +1,267 @@
+#!/usr/bin/env sh
+(# -*- wisp -*-)
+(guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))')
+(exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples enter-three-witches) main)' -s "$0" "$@")
+; !#
+
+(define-module (examples enter-three-witches)
+    #:export (introduced-names ->string show colortable color say-words say-name say Speak Speak-indirect Enter Scene))
+
+(use-modules (ice-9 optargs)
+              (srfi srfi-1)
+              (system syntax))
+
+;; FIXME: This version currently does not allow using the same first
+;; name several times. It will need a more refined macro generator
+;; which first gathers all the necessary definitions and then builds
+;; them.
+
+(define introduced-names '())
+
+(define (->string x)
+       (cond
+         ((symbol? x)
+           (symbol->string x))
+         ((number? x)
+           (format #f "~a" x))
+         (else
+           (format #f "~A" x))))
+
+
+(define (show str)
+      (let lp ((chars (string->list str)))
+          (cond 
+            ((null? chars)
+              #t)
+            (else
+              (display (car chars))
+              (usleep 60000)
+              (lp (cdr chars))))))
+
+
+(define colortable
+    `(
+      (#f . "\x1b[0m")
+      (black . "\x1b[1;30m")
+      (red . "\x1b[1;31m")
+      (green . "\x1b[1;32m")
+      (yellow . "\x1b[1;33m")
+      (blue . "\x1b[1;34m")
+      (magenta . "\x1b[1;35m")
+      (cyan . "\x1b[1;36m")
+      (white . "\x1b[1;37m")))
+      
+
+(define (color col)
+       "helper function to colorize the input"
+       (cond
+         ((assoc col colortable)
+           (format #t (assoc-ref colortable col))
+           #f)
+         (else
+           (format #t (assoc-ref colortable #f))
+           #f)))
+
+(define-syntax say-words 
+    (lambda (x)
+        (syntax-case x ()
+            ((_ (((word words ...))) (() lines ...))
+              #`(begin
+                  (let ((w `word))
+                    (cond
+                     ((equal? w #f)
+                      #f)
+                     ((equal? w '..)
+                      (show "."))
+                     (else
+                      (show " ")
+                      (show (->string w)))))
+                  (say-words (((words ...))) (() lines ...))))
+            ((_ ((())) (() lines ...))
+              #`(begin
+                 (usleep 200000)
+                 (newline)
+                 (say-words (lines ...))))
+            ;; lines of form ,(...)
+            ((_ ((unq (word words ...)) lines ...))
+              #`(begin if (equal 'unquote `unq))
+              #`(begin ; add an extra level of parens
+                 (show " ")
+                 (say-words ((((unq (word words ...))))) (() lines ...))))
+            ((_ ((word words ...) lines ...))
+              #`(begin
+                 (show " ")
+                 (say-words (((word words ...))) (() lines ...))))
+            ((_ (() lines ...))
+              #`(say-words (lines ...)))
+            ((_ (lines ...))
+              #`(begin
+                 (newline))))))
+
+
+(define (say-name nameparts)
+       (let 
+         ;; symbols starting with : are not treated as part of the
+         ;; name. They can be used as actor instructions
+         ((pure-name (remove (lambda (x) (string-prefix? ":" (symbol->string x))) (remove pair? nameparts))))
+         (if (not (member pure-name introduced-names))
+              (error 
+                (format #f "Tried to use ~A who did not Enter. Introduced names: ~A" 
+                  pure-name introduced-names))))
+       (format #t "~A\n"
+         (string-join (map symbol->string nameparts))))
+
+
+(define-syntax say
+  (lambda (x)
+    (syntax-case x ()
+      ((_ nameparts lines)
+        #`(begin
+           (say-name nameparts)
+           (say-words lines))))))
+
+
+(define-syntax Speak
+ (lambda (x)
+  (with-ellipsis :::
+   (syntax-case x ()
+     ;; Support form for modifiers: enclose by double parens (used later)
+     ((_ (((name :::))) ((mod :::)) (word :::) line :::)
+         #`(begin
+            (say-name (quasiquote (name ::: mod :::)))
+            (say-words ((word :::) line :::))))
+     ;; extend mod keywords
+     ((_ (((name :::))) ((mod :::)) modifier line :::)
+         ;; extend the modifier keyword list
+         #`(Speak (((name :::))) ((mod ::: modifier)) line :::))
+     ;; say form without modifier
+     ((_ (((name :::))) (word :::) line :::)
+         #`(Speak (((name :::))) (()) (word :::) line :::))
+     ;; first modifier keyword after the name
+     ((_ (((name :::))) modifier line :::)
+         ;; append to mod helper form
+         #`(Speak (((name :::))) ((modifier)) line :::))
+     ;; Strip the name from lines with empty arguments
+     ((_ (((name :::))) symbol :::)
+         #`(begin #t symbol :::))))))
+
+
+(define-syntax Speak-indirect
+    (lambda (x)
+        (syntax-case x ()
+            ;; Adjust name and lines for Speak for the case where I
+            ;; cannot match for the whole name.
+            ;; input: (((name1 name2 ... (word ...) ...)))
+            
+            ;; grab the lines one by one from the back
+            ((_ (((symbols ... (word ...)))) lines ...)
+              #`(Speak-indirect (((symbols ...))) (word ...) lines ...))
+            ;; start with the last line
+            ((_ (((symbols ... (word ...)))))
+              #`(Speak-indirect (((symbols ...))) (word ...)))
+            ;; no more lines remain at the end: the rest must be the name
+            ((_ (((name ...))) lines ...)
+              #`(Speak (((name ...))) lines ...)))))
+
+
+(define-syntax Enter
+ (lambda (x)
+  (syntax-case x ()
+   ((_ (name more ...) b ...)
+     ; new binding: only create it if the binding is not already a macro
+     (not (eq? 'macro (syntax-local-binding (syntax name))))
+     #'(begin
+       ;; process the name: define special syntax for this name (only
+       ;; for the first word of the name, the correctness of the rest
+       ;; of the words is checked at runtime in the say procedure)
+       (define-syntax name
+        (lambda (y)
+         (with-ellipsis :::
+          (syntax-case y (more ...)
+           ; just forward matching rules to Speak
+           ((_ more ... symbol :::)
+             #'(Speak (((name more ...))) symbol :::))
+           ((_ symbols :::)
+               ; this does not correctly make the second name part of
+               ; the name, preventing differentiation between name and
+               ; modifier
+               #`(Speak-indirect (((name symbols :::)))))))))
+       ;; process the rest of the names
+       (Enter b ...)
+       ;; record that the name was introduced. I do not see a way to do
+       ;; this directly in the compiler, therefore it is checked later
+       ;; during runtime.
+       (set! introduced-names (cons '(name more ...) introduced-names))))
+       ;; add debug output, must be added it here, not in front
+       ; write 
+       ;   quote : list Enter (name more ...) b ...
+       ; newline
+   ((_ (name more ...) b ...)
+     ; existing binding: Just allow using this.
+     #'(begin
+        (Enter b ...)
+        (set! introduced-names (cons '(name more ...) introduced-names))))
+   ((_ b ...)
+     #'(begin #t)))))
+
+
+(define-syntax Scene
+  (lambda (x)
+    (syntax-case x ()
+      ((_ thisscene args ...)
+        (with-syntax ((c (datum->syntax x (module-name (current-module)))))
+          #`(begin ; FIXME: this currently requires the Scene identifier to be a valid symbol -> cannot use "Scene 1"
+             (module-re-export! (current-module)
+               (module-map (λ (x y) x)
+                  (module-import-interface (current-module) 'Scene ))); ensure that all symbols remain available
+             (define-module (scene thisscene))
+             (import c)
+             #t))))))
+
+
+(define (main args)
+  (Enter (First Witch)
+          (Second Witch)
+          (Third Witch)
+          (First Eldritch))
+
+  (First Witch
+      (When shall we three meet again)
+      (In ,(color 'cyan) thunder, ,(color #f) ,(color 'white) lightning, ,(color #f) or in ,(color 'blue) rain? ,(color #f)))
+  
+  (Second Witch :resolute
+      (When the hurlyburly's done, (we ,(+ 1 2)) ); inline-code is allowed!
+      (When the ,(color 'red) battle's ,(color #f) 
+         lost and won. )); ,(read-char) ; and executed when the word is shown
+
+  (Third Witch
+      (That will be ere the set of ,(color 'yellow) sun ,(color #f) ..))
+      ; .. can be used for a . without preceding space. It MUST be
+      ; used to get a trailing .
+
+  (First Eldritch :crazy
+      (,(color 'magenta) gnignigni! ,(color #f)))
+
+  (Enter (Second Eldritch))
+  
+  (Second Eldritch :quick
+      (,(color 'black) Guh!)
+      ; . :goo ; invalid ⇒ would be an error
+      ; . foo ; invalid ⇒ would be an error
+      (Moo ,(color #f))))
+
+;; Making the name longer throws an Error, but only at runtime:
+;  Second Eldritch shoo
+;      Guh!
+;; ⇒ ERROR: Tried to use (Second Eldritch shoo) who did not Enter. Introduced names: ((Second Eldritch) (First Witch) (Second Witch) (Third Witch) (First Eldritch))
+
+;; Adding one who did not enter throws an Error, but only at runtime:
+;  Third Eldritch
+;      Guh!
+;; ⇒ ERROR: Tried to use (Third Eldritch) who did not Enter. Introduced names: ((Second Eldritch) (First Witch) (Second Witch) (Third Witch) (First Eldritch))
+
+
+
+
+
+
diff --git a/examples/enter-three-witches.w b/examples/enter-three-witches.w
--- a/examples/enter-three-witches.w
+++ b/examples/enter-three-witches.w
@@ -1,49 +1,309 @@
 #!/usr/bin/env sh
+# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
 exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples enter-three-witches) main)' -s "$0" "$@"
 ; !#
 
 define-module : examples enter-three-witches
+    . #:export : introduced-names ->string show colortable color say-words say-name say Speak Speak-indirect Enter Scene
 
 use-modules : ice-9 optargs
+              srfi srfi-1
+              system syntax
+              ice-9 rdelim
+
+;; FIXME: This version currently does not allow using the same first
+;; name several times. It will need a more refined macro generator
+;; which first gathers all the necessary definitions and then builds
+;; them.
+
+define introduced-names '()
+
+define : ->string x
+       cond
+         : symbol? x
+           symbol->string x
+         : number? x
+           format #f "~a" x
+         else
+           format #f "~A" x
+
+
+define : show str
+      let lp : : chars : string->list str
+          cond 
+            : null? chars
+              . #t
+            else
+              display : car chars
+              usleep 60000
+              lp : cdr chars
+
+
+define colortable
+    `
+      #f . "\x1b[0m"
+      black . "\x1b[1;30m"
+      red . "\x1b[1;31m"
+      green . "\x1b[1;32m"
+      yellow . "\x1b[1;33m"
+      blue . "\x1b[1;34m"
+      magenta . "\x1b[1;35m"
+      cyan . "\x1b[1;36m"
+      white . "\x1b[1;37m"
+      
+
+define : color col
+       . "helper function to colorize the input"
+       cond
+         : assoc col colortable
+           format #t : assoc-ref colortable col
+           . #f
+         else
+           format #t : assoc-ref colortable #f
+           . #f
+
+define-syntax say-words 
+    lambda (x)
+        syntax-case x (fdb6c10f-f8bf-4bb5-82c5-d3a5cd37b7c0)
+            : _ (((word words ...))) fdb6c10f-f8bf-4bb5-82c5-d3a5cd37b7c0 (() lines ...)
+              ;; TODO: move out to a helper macro
+              #` begin
+                 let : : w `word
+                   cond
+                     : equal? w #f
+                       . #f
+                     : equal? w '..
+                       show "."
+                     else
+                       show " "
+                       show : ->string w
+                 say-words (((words ...))) fdb6c10f-f8bf-4bb5-82c5-d3a5cd37b7c0 (() lines ...)
+            : _ ((())) fdb6c10f-f8bf-4bb5-82c5-d3a5cd37b7c0  (() lines ...)
+              #` begin
+                 usleep 200000
+                 newline
+                 say-words (lines ...)
+            ;; lines of form ,(...)
+            : _ ((unq (word words ...)) lines ...)
+              #` if : equal? 'unquote `unq ;; FIXME: This guard seems to not actually work
+              #` begin ; add an extra level of parens
+                 show " "
+                 say-words (((unq (word words ...)))) fdb6c10f-f8bf-4bb5-82c5-d3a5cd37b7c0 (() lines ...)
+            : _ (((unq word)) lines ...)
+              #` if : equal? 'unquote-splicing `unq ;; FIXME: This guard seems to not actually work
+              #` begin ; include the unquoting without extra level of parentheses
+                 ;; TODO: clean this up. This duplicates logic in the first case, and duplicates it again internally.
+                 show " "
+                 apply
+                     λ (unq x)
+                        cond
+                          : equal? 'unquote-splicing unq
+                            map (λ (x) (show " ")(show x))
+                                if : pair? x
+                                     map ->string x
+                                     . x
+                          : equal? 'unquote unq
+                            cond
+                              : equal? x #f
+                                . #f
+                              : equal? x '..
+                                show "."
+                              else
+                                show " "
+                                show : ->string x
+                          else
+                            cond
+                              : equal? unq #f
+                                . #f
+                              : equal? unq '..
+                                show "."
+                              else
+                                show " "
+                                show : ->string unq
+                            cond
+                              : equal? x #f
+                                . #f
+                              : equal? x '..
+                                show "."
+                              else
+                                show " "
+                                show : ->string x
+                     list 'unq word
+                 say-words ((())) fdb6c10f-f8bf-4bb5-82c5-d3a5cd37b7c0 (() lines ...)
+            : _ ((word words ...) lines ...) ; start of a line
+              #` begin
+                 show " "
+                 say-words (((word words ...))) fdb6c10f-f8bf-4bb5-82c5-d3a5cd37b7c0 (() lines ...)
+            : _ (() lines ...) ; finished showing the line, show the next one
+              #` say-words (lines ...)
+            : _ (lines ...)
+              #` begin
+                 newline
+
+
+define : say-name nameparts
+       let 
+         ;; symbols starting with : are not treated as part of the
+         ;; name. They can be used as actor instructions
+         : pure-name : remove (lambda (x) (string-prefix? ":" (symbol->string x))) : remove pair? nameparts
+         if : not : member pure-name introduced-names
+              error 
+                format #f "Tried to use ~A who did not Enter. Introduced names: ~A" 
+                  . pure-name introduced-names
+       format #t "~A\n"
+         string-join : map symbol->string nameparts
+
+
+define-syntax say
+  lambda (x)
+    syntax-case x ()
+      : _ nameparts lines
+        #` begin
+           say-name nameparts
+           say-words lines
+
+
+define-syntax Speak
+ lambda (x)
+  with-ellipsis :::
+   syntax-case x ()
+     ;; Support form for modifiers: enclose by double parens (used later)
+     : _ (((name :::))) ((mod :::)) (word :::) line :::
+         #` begin
+            say-name : quasiquote : name ::: mod :::
+            say-words : (word :::) line :::
+     ;; extend mod keywords
+     : _ (((name :::))) ((mod :::)) modifier line :::
+         ;; extend the modifier keyword list
+         #` Speak (((name :::))) ((mod ::: modifier)) line :::
+     ;; say form without modifier
+     : _ (((name :::))) (word :::) line :::
+         #` Speak (((name :::))) (()) (word :::) line :::
+     ;; first modifier keyword after the name
+     : _ (((name :::))) modifier line :::
+         ;; append to mod helper form
+         #` Speak (((name :::))) ((modifier)) line :::
+     ;; Strip the name from lines with empty arguments
+     : _ (((name :::))) symbol :::
+         #` begin #t symbol :::
+
+
+define-syntax Speak-indirect
+    lambda (x)
+        syntax-case x ()
+            ;; Adjust name and lines for Speak for the case where I
+            ;; cannot match for the whole name.
+            ;; input: (((name1 name2 ... (word ...) ...)))
+            
+            ;; grab the lines one by one from the back
+            : _ (((symbols ... (word ...)))) lines ...
+              #` Speak-indirect (((symbols ...))) (word ...) lines ...
+            ;; start with the last line
+            : _ (((symbols ... (word ...))))
+              #` Speak-indirect (((symbols ...))) (word ...)
+            ;; no more lines remain at the end: the rest must be the name
+            : _ (((name ...))) lines ...
+              #` Speak (((name ...))) lines ...
+
 
 define-syntax Enter
- syntax-rules ()
-  : _ (name) b ...
-    begin
-      define-syntax name
-        syntax-rules ::: ()
-          : _ (c :::) d :::
-            format #t "~A\n  ~A\n\n" 
-               string-join 
-                 string-split (symbol->string 'name) #\_
-               string-join 
-                 map : lambda (x) (string-join (map symbol->string x))
-                       quote : (c :::) d :::
-                 . "\n  "
-          : _ c d :::
-            ;; allow for modifier keywords after the name
-            begin
-              format #t "~A:\n" : symbol->string 'c
-              name d :::
-          : _ c :::
-            begin #t c :::
-      Enter b ...
-  : _ b ...
-    begin 
+ lambda (x)
+  syntax-case x ()
+   : _ (name more ...) b ...
+     ; new binding: only create it if the binding is not already a macro
+     not : eq? 'macro (syntax-local-binding (syntax name))
+     #' begin
+       ;; process the name: define special syntax for this name (only
+       ;; for the first word of the name, the correctness of the rest
+       ;; of the words is checked at runtime in the say procedure)
+       define-syntax name
+        lambda (y)
+         with-ellipsis :::
+          syntax-case y (more ...)
+           ; just forward matching rules to Speak
+           : _ more ... symbol :::
+             #' Speak (((name more ...))) symbol :::
+           : _ symbols :::
+               ; this does not correctly make the second name part of
+               ; the name, preventing differentiation between name and
+               ; modifier
+               #` Speak-indirect (((name symbols :::)))
+       ;; process the rest of the names
+       Enter b ...
+       ;; record that the name was introduced. I do not see a way to do
+       ;; this directly in the compiler, therefore it is checked later
+       ;; during runtime.
+       set! introduced-names : cons '(name more ...) introduced-names
+       ;; add debug output, must be added it here, not in front
+       ; write 
+       ;   quote : list Enter (name more ...) b ...
+       ; newline
+   : _ (name more ...) b ...
+     ; existing binding: Just allow using this.
+     #' begin
+        Enter b ...
+        set! introduced-names : cons '(name more ...) introduced-names
+   : _ b ...
+     #' begin #t
+
+
+define-syntax Scene
+  lambda (x)
+    syntax-case x ()
+      : _ thisscene args ...
+        with-syntax ((c (datum->syntax x (module-name (current-module)))))
+          #` begin ; FIXME: this currently requires the Scene identifier to be a valid symbol -> cannot use "Scene 1"
+             module-re-export! (current-module)
+               module-map (λ (x y) x)
+                  module-import-interface (current-module) 'Scene ; ensure that all symbols remain available
+             define-module (scene thisscene)
+             import c
+             . #t
 
 
 define : main args
-  Enter : First_Witch
-          Second_Witch
-          Third_Witch
-  
-  First_Witch
+  Enter : First Witch
+          Second Witch
+          Third Witch
+          First Eldritch
+
+  First Witch
       When shall we three meet again
-      In thunder, lightning, or in rain?
+      In ,(color 'cyan) thunder, ,(color #f) ,(color 'white) lightning, ,(color #f) or in ,(color 'blue) rain? ,(color #f)
+  
+  Second Witch :resolute
+      When the hurlyburly's done, (we ,(+ 1 2)) ; inline-code is allowed!
+      When the ,(color 'red) battle's ,(color #f) 
+         . lost and won. ; ,(read-char) ; and executed when the word is shown
+
+  Third Witch
+      That will be ere the set of ,(color 'yellow) sun ,(color #f) ..
+      ; .. can be used for a . without preceding space. It MUST be
+      ; used to get a trailing .
+
+  First Eldritch :crazy
+      ,(color 'magenta) gnignigni! ,(color #f)
+
+  Enter : Second Eldritch
   
-  Second_Witch
-      When the hurlyburly's done,
-      When the battle's lost and won.
+  Second Eldritch :quick
+      ,(color 'black) Guh!
+      ; . :goo ; invalid ⇒ would be an error
+      ; . foo ; invalid ⇒ would be an error
+      Moo ,(color #f)
 
-  Third_Witch
-      That will be ere the set of sun.
+;; Making the name longer throws an Error, but only at runtime:
+;  Second Eldritch shoo
+;      Guh!
+;; ⇒ ERROR: Tried to use (Second Eldritch shoo) who did not Enter. Introduced names: ((Second Eldritch) (First Witch) (Second Witch) (Third Witch) (First Eldritch))
+
+;; Adding one who did not enter throws an Error, but only at runtime:
+;  Third Eldritch
+;      Guh!
+;; ⇒ ERROR: Tried to use (Third Eldritch) who did not Enter. Introduced names: ((Second Eldritch) (First Witch) (Second Witch) (Third Witch) (First Eldritch))
+
+
+
+
+
diff --git a/examples/evolve.w b/examples/evolve.w
--- a/examples/evolve.w
+++ b/examples/evolve.w
@@ -7,8 +7,6 @@ exec guile -L $(dirname $(dirname $(real
 
 ; TODO: genetic with mutate+combinate, population which keeps the best and directed which only keeps improvements
 
-; NOTE: This only works after preprocessing to scheme.
-
 define-module : examples evolve
               . #:export : main
 
@@ -156,7 +154,3 @@ define : main args
          newline
 
 
-define : main
-       display "foo"
-       newline 
-       run
diff --git a/examples/ild.w b/examples/ild.w
new file mode 100755
--- /dev/null
+++ b/examples/ild.w
@@ -0,0 +1,16 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+D="$(dirname $(realpath "$0"))"
+W="$(dirname $(dirname $(realpath "$0")))"
+guile -L "$W" -c '(import (wisp-scheme) (language wisp spec))'
+exec guile -L "$W" --language=wisp -l "$D/enter-three-witches.w" -s "$0" "$@"
+; !#
+
+import : examples enter-three-witches
+
+Enter : Dr. Arne Bab.
+
+Dr. Arne Bab.
+  Hallo Liebste,
+  ,(color 'red) Ich ,(color 'yellow) liebe ,(color 'red) Dich ,(color #f)
+  Dein Arne
diff --git a/examples/map-product-sums.w b/examples/map-product-sums.w
old mode 100644
new mode 100755
--- a/examples/map-product-sums.w
+++ b/examples/map-product-sums.w
@@ -2,9 +2,9 @@
 exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples map-product-sums) main)' -s "$0" "$@"
 ; !#
 
-use-modules : (srfi srfi-42) 
+define-module : examples map-product-sums
 
-define-module : examples map-product-sums
+use-modules : srfi srfi-42
 
 define : list-product-sums list-of-numbers
        . "return a list with the sum of the products of each number with all other numbers.
diff --git a/examples/unbiased-std.w b/examples/unbiased-std.w
new file mode 100644
--- /dev/null
+++ b/examples/unbiased-std.w
@@ -0,0 +1,31 @@
+define-module : example unbiased-std
+              . #:export : std
+
+define factors⁻¹
+  ' ;; from https://en.wikipedia.org/wiki/Unbiased_estimation_of_standard_deviation#Results_for_the_normal_distribution
+    2  . 0.7978845608
+    3  . 0.8862269255
+    4  . 0.9213177319
+    5  . 0.9399856030
+    6  . 0.9515328619
+    7  . 0.9593687891
+    8  . 0.9650304561
+    9  . 0.9693106998
+    10 . 0.9726592741
+
+define : std . vals
+  . "Calculate the unbiased standard deviation of the values (the biased std for more than 10 values)."
+  let : : len : length vals
+     if : < len 2
+        . +inf.0
+        let
+          : mean (/ (apply + vals) len)
+            factor (or (assoc-ref factors⁻¹ len) 1)
+          * (/ 1 factor) : sqrt : * (/ 1 (- len 1)) : apply + : map (λ(x) (expt (- x mean) 2)) vals .
+
+;; quick test
+let : : res : std 0 0 3
+  when : not : > 0.01 : abs : - res : * 1.129 : sqrt 3 ;; calculated by hand
+         format #t "Bug: (std 0 0 3) gives ~a instead of 1.995\n" res
+
+write : std 5860.16 6141.81 6088.67
diff --git a/examples/unicode-math-fun.w b/examples/unicode-math-fun.w
--- a/examples/unicode-math-fun.w
+++ b/examples/unicode-math-fun.w
@@ -1,4 +1,7 @@
-#!/home/arne/wisp/wisp-multiline.sh 
+#!/usr/bin/env sh
+# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -s "$0" "$@"
 ; !#
 
 ;; Having fun with unicode and math :)
@@ -6,6 +9,9 @@
 define : Σ . n
     apply + n
 
+define : Π . n
+    apply * n
+
 define : ∪ . lists
     apply append lists
 
@@ -27,6 +33,8 @@ define : ∩ list1 list2
 
 display : Σ 1 2 8 0  5 7 59 12 5
 newline
+display : Π 1 2 8 0  5 7 59 12 5
+newline
 display : ∪ '(1 2 3) '(4 5 6)
 newline
 display : ∩ '(1 789 7 897 89 78 78 97 89 2 3 6) '(4 5 6 2  8 7 879 879 879 879 8797 97 97 987 89789 7 7897 987 897 987 87 897 896)
diff --git a/examples/with.w b/examples/with.w
--- a/examples/with.w
+++ b/examples/with.w
@@ -13,27 +13,44 @@ define-module : examples with
 
 import : oop goops
 
-define : enter thing
+define : enter thing state
        . thing
 define-generic enter
 
-define : exit thing
+define : exit thing state
        . thing
 define-generic exit
 
 define-syntax with
     syntax-rules : as
       : _ thing as name thunk ...
-        let*
-           : name : enter thing
-             res : begin thunk ...
-           exit thing
-           . res
+        let
+          : name #f
+            state #f
+            res #f
+          dynamic-wind
+              λ () : set! name : enter thing state
+              λ () : set! res : begin thunk ...
+                   . res
+              λ () ; : exit thing state
+                   . res
 
-define-method : exit (thing <port>)
+define-method : enter (thing <port>) state
               . "Ensure that a port is always closed at the end of the with-block."
+              when : not : equal? #f state
+                  set-port-column! thing (car state)
+                  set-port-line! thing (car (cdr state))
+              . thing
+
+define-method : exit (thing <port>) state
+              . "Ensure that a port is always closed at the end of the with-block."
+              set! state : list (port-line thing) (port-column thing)
               close-port thing
 
 define : main args
          with (open-file "with.w" "r") as port
               format #t "~a\n" : read port
+              format #t "~a\n" : read port
+              format #t "~a\n" : read port
+
+         ;; TODO: test-continuation
diff --git a/examples/y-combinator.w b/examples/y-combinator.w
new file mode 100755
--- /dev/null
+++ b/examples/y-combinator.w
@@ -0,0 +1,85 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples y-combinator) main)' -s "$0" "$@"
+; !#
+
+define-module : examples y-combinator
+
+;; Poor mans y-combinator from William Byrds talk: https://www.youtube.com/watch?v=OyfBQmvr2Hc&t=2844s 
+define fac-pmy-zealous-wisp
+  :
+    λ : !
+      λ : n
+        :
+          ! !
+          . n
+    λ : !
+      λ : n
+        if : zero? n
+           . 1
+           * n
+             :
+                ! !
+                - n 1
+
+define fac-pmy-pragmatic-wisp
+  :
+    λ : !
+      λ : n
+        (! !) n
+    λ : !
+      λ : n
+        if : zero? n
+           . 1
+           * n : (! !) {n - 1}
+
+
+;; Poor mans y-combinator from William Byrds talk: https://www.youtube.com/watch?v=OyfBQmvr2Hc&t=2844s 
+define facres-pmy
+ . (((λ (!)
+     (λ (n)
+       ((! !) n)))
+     (λ (!)
+       (λ (n)
+         (if (zero? n)
+             1
+             (* n ((! !) (- n 1)))))))
+   5)
+
+;; from rosetta code: https://rosettacode.org/wiki/Y_combinator#Scheme
+define Y
+  λ : h
+    : λ (x) : x x
+      λ : g
+         h : λ args : apply (g g) args
+
+define fac
+  Y
+    λ : f
+      λ : x
+        if : < x 2
+           . 1
+           * x : f : - x 1
+
+define fib
+  Y
+    λ : f
+      λ : x
+        if : < x 2
+           . x
+           + : f : - x 1
+               f : - x 2
+
+
+define : main args
+         display : fac-pmy-zealous-wisp 5
+         newline
+         display : fac-pmy-pragmatic-wisp 5
+         newline
+         display facres-pmy
+         newline
+         display : fac 6
+         newline
+         display : fib 6
+         newline
diff --git a/racket/parse.rkt b/racket/parse.rkt
new file mode 100644
--- /dev/null
+++ b/racket/parse.rkt
@@ -0,0 +1,836 @@
+#lang racket
+
+;; Scheme-only implementation of a wisp-preprocessor which output a
+;; scheme code tree to feed to a scheme interpreter instead of a
+;; preprocessed file.
+
+;; Limitations:
+;; - only unescapes up to 6 leading underscores at line start (\______)
+;; - in some cases the source line information is missing in backtraces.
+;;   check for set-source-property!
+
+;; Copyright (C) Arne Babenhauserheide (2014--2015). All Rights Reserved.
+
+;; Permission is hereby granted, free of charge, to any person
+;; obtaining a copy of this software and associated documentation
+;; files (the "Software"), to deal in the Software without
+;; restriction, including without limitation the rights to use, copy,
+;; modify, merge, publish, distribute, sublicense, and/or sell copies
+;; of the Software, and to permit persons to whom the Software is
+;; furnished to do so, subject to the following conditions:
+;; 
+;; The above copyright notice and this permission notice shall be
+;; included in all copies or substantial portions of the Software.
+;; 
+;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+;; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+;; SOFTWARE.
+
+
+;; Helper functions for the indent-and-symbols data structure: '((indent token token ...) ...)
+(define (line-indent line)
+         (car line))
+
+(define (line-real-indent line)
+         "Get the indentation without the comment-marker for unindented lines (-1 is treated as 0)."
+         (let (( indent (line-indent line)))
+             (if (= -1 indent)
+               0
+               indent)))
+
+(define (line-code line)
+         (let ((code (cdr line)))
+             ; propagate source properties
+             code))
+
+; literal values I need
+(define readcolon 
+       (string->symbol ":"))
+
+(define wisp-uuid "e749c73d-c826-47e2-a798-c16c13cb89dd")
+; define an intermediate dot replacement with UUID to avoid clashes.
+(define repr-dot ; .
+       (string->symbol (string-append "REPR-DOT-" wisp-uuid)))
+
+; allow using reader additions as the first element on a line to prefix the list
+(define repr-quote ; '
+       (string->symbol (string-append "REPR-QUOTE-" wisp-uuid)))
+(define repr-unquote ; ,
+       (string->symbol (string-append "REPR-UNQUOTE-" wisp-uuid)))
+(define repr-quasiquote ; `
+       (string->symbol (string-append "REPR-QUASIQUOTE-" wisp-uuid)))
+(define repr-unquote-splicing ; ,@
+       (string->symbol (string-append "REPR-UNQUOTESPLICING-" wisp-uuid)))
+
+(define repr-syntax ; #'
+       (string->symbol (string-append "REPR-SYNTAX-" wisp-uuid)))
+(define repr-unsyntax ; #,
+       (string->symbol (string-append "REPR-UNSYNTAX-" wisp-uuid)))
+(define repr-quasisyntax ; #`
+       (string->symbol (string-append "REPR-QUASISYNTAX-" wisp-uuid)))
+(define repr-unsyntax-splicing ; #,@
+       (string->symbol (string-append "REPR-UNSYNTAXSPLICING-" wisp-uuid)))
+
+; TODO: wrap the reader to return the repr of the syntax reader
+; additions 
+
+(define (match-charlist-to-repr charlist)
+         (let 
+           ((chlist (reverse charlist)))
+           (cond
+             ((equal? chlist (list #\.))
+               repr-dot)
+             ((equal? chlist (list #\'))
+               repr-quote)
+             ((equal? chlist (list #\,))
+               repr-unquote)
+             ((equal? chlist (list #\`))
+               repr-quasiquote)
+             ((equal? chlist (list #\, #\@ ))
+               repr-unquote-splicing)
+             ((equal? chlist (list #\# #\' ))
+               repr-syntax)
+             ((equal? chlist (list #\# #\, ))
+               repr-unsyntax)
+             ((equal? chlist (list #\# #\` ))
+               repr-quasisyntax)
+             ((equal? chlist (list #\# #\, #\@ ))
+               repr-unsyntax-splicing)
+             (else
+               #f))))
+
+(define (wisp-read port)
+       "wrap read to catch list prefixes."
+       (let ((prefix-maxlen 4))
+         (let longpeek 
+           ((peeked '())
+             (repr-symbol #f))
+           (cond
+             ((or (< prefix-maxlen (length peeked)) (eof-object? (peek-char port)) (equal? #\space (peek-char port)) (equal? #\newline (peek-char port)) )
+               (if repr-symbol ; found a special symbol, return it.
+                  ; TODO: Somehow store source-properties. The commented-out code below does not work.
+                  ; catch #t
+                  ;     lambda ()
+                  ;         write : source-properties symbol-or-symbols
+                  ;         set-source-property! symbol-or-symbols 'filename : port-filename port
+                  ;         set-source-property! symbol-or-symbols 'line : 1+ : port-line port
+                  ;         set-source-property! symbol-or-symbols 'column : port-column port
+                  ;         write : source-properties symbol-or-symbols
+                  ;     lambda : key . arguments
+                  ;         . #f
+                  repr-symbol
+                  (let unpeek
+                    ((remaining peeked))
+                    (cond
+                      ((equal? '() remaining )
+                        (read port )); let read to the work
+                      (else
+                        (unread-char (car remaining) port)
+                        (unpeek (cdr remaining)))))))
+             (else
+               (let* 
+                 ((next-char (read-char port))
+                   (peeked (cons next-char peeked)))
+                 (longpeek
+                   peeked
+                   (match-charlist-to-repr peeked))))))))
+                 
+
+
+(define (line-continues? line)
+         (equal? repr-dot (car (line-code line))))
+
+(define (line-only-colon? line)
+         (and
+           (equal? ":" (car (line-code line)))
+           (null? (cdr (line-code line)))))
+
+(define (line-empty-code? line)
+         (null? (line-code line)))
+
+(define (line-empty? line)
+         (and
+           ; if indent is -1, we stripped a comment, so the line was not really empty.
+           (= 0 (line-indent line))
+           (line-empty-code? line)))
+
+(define (line-strip-continuation line   )
+         (if (line-continues? line)
+              (append 
+                (list 
+                  (line-indent line))
+                (cdr (line-code line)))
+              line))
+
+(define (line-strip-indentation-marker line)
+         "Strip the indentation markers from the beginning of the line"
+         (cdr line))
+
+(define (indent-level-reduction indentation-levels level select-fun)
+         "Reduce the INDENTATION-LEVELS to the given LEVEL and return the value selected by SELECT-FUN"
+         (let loop 
+           ((newlevels indentation-levels)
+             (diff 0))
+           (cond
+             ((= level (car newlevels))
+               (select-fun (list diff indentation-levels)))
+             ((< level (car newlevels))
+               (loop
+                 (cdr newlevels)
+                 (1+ diff)))
+             (else
+               (throw 'wisp-syntax-error "Level ~A not found in the indentation-levels ~A.")))))
+
+(define (indent-level-difference indentation-levels level)
+         "Find how many indentation levels need to be popped off to find the given level."
+         (indent-level-reduction indentation-levels level
+           (lambda (x ); get the count
+                    (car x))))
+
+(define (indent-reduce-to-level indentation-levels level)
+         "Find how many indentation levels need to be popped off to find the given level."
+         (indent-level-reduction indentation-levels level
+           (lambda (x ); get the levels
+                    (car (cdr x)))))
+
+(define (chunk-ends-with-period currentsymbols next-char)
+       "Check whether indent-and-symbols ends with a period, indicating the end of a chunk."
+       (and (not (null? currentsymbols))
+             (equal? #\newline next-char)
+             (equal? repr-dot
+                    (list-ref currentsymbols (- (length currentsymbols) 1)))))
+
+(define (wisp-scheme-read-chunk-lines port)
+         (let loop
+           ((indent-and-symbols (list )); '((5 "(foobar)" "\"yobble\"")(3 "#t"))
+             (inindent #t)
+             (inunderscoreindent (equal? #\_ (peek-char port)))
+             (incomment #f)
+             (currentindent 0)
+             (currentsymbols '())
+             (emptylines 0))
+           (cond
+            ((>= emptylines 2 ); the chunk end has to be checked
+                              ; before we look for new chars in the
+                              ; port to make execution in the REPL
+                              ; after two empty lines work
+                              ; (otherwise it shows one more line).
+             indent-and-symbols)
+            (else
+             (let ((next-char (peek-char port)))
+               (cond
+                 ((eof-object? next-char)
+                   (append indent-and-symbols (list (append (list currentindent) currentsymbols))))
+                 ((and inindent (zero? currentindent) (not incomment) (not (null? indent-and-symbols)) (not inunderscoreindent) (not (or (equal? #\space next-char) (equal? #\newline next-char) (equal? (string-ref ";" 0) next-char))))
+                  (append indent-and-symbols )); top-level form ends chunk
+                 ((chunk-ends-with-period currentsymbols next-char)
+                   ; the line ends with a period. This is forbidden in
+                   ; SRFI-119. Use it to end the line in the REPL without
+                   ; showing continuation dots (...).
+                   (append indent-and-symbols (list (append (list currentindent) (drop-right currentsymbols 1)))))
+                 ((and inindent (equal? #\space next-char))
+                   (read-char port ); remove char
+                   (loop
+                     indent-and-symbols
+                     #t ; inindent
+                     #f ; inunderscoreindent
+                     #f ; incomment
+                     (1+ currentindent)
+                     currentsymbols
+                     emptylines))
+                 ((and inunderscoreindent (equal? #\_ next-char))
+                   (read-char port ); remove char
+                   (loop 
+                     indent-and-symbols
+                     #t ; inindent
+                     #t ; inunderscoreindent
+                     #f ; incomment
+                     (1+ currentindent)
+                     currentsymbols
+                     emptylines))
+                 ; any char but whitespace *after* underscoreindent is
+                 ; an error. This is stricter than the current wisp
+                 ; syntax definition. TODO: Fix the definition. Better
+                 ; start too strict. FIXME: breaks on lines with only
+                 ; underscores which should empty lines.
+                 ((and inunderscoreindent (and (not (equal? #\space next-char)) (not (equal? #\newline next-char))))
+                   (throw 'wisp-syntax-error "initial underscores without following whitespace at beginning of the line after" (last indent-and-symbols)))
+                 ((equal? #\newline next-char)
+                   (read-char port ); remove the newline
+                   ; The following two lines would break the REPL by requiring one char too many.
+                   ; if : and (equal? #\newline next-char) : equal? #\return : peek-char port
+                   ;      read-char port ; remove a full \n\r. Damn special cases...
+                   (let* ; distinguish pure whitespace lines and lines
+                        ; with comment by giving the former zero
+                        ; indent. Lines with a comment at zero indent
+                        ; get indent -1 for the same reason - meaning
+                        ; not actually empty.
+                     (
+                       (indent 
+                         (cond 
+                           (incomment 
+                             (if (= 0 currentindent ); specialcase
+                               -1
+                               currentindent ))
+                           ((not (null? currentsymbols )); pure whitespace
+                             currentindent)
+                           (else
+                             0)))
+                       (parsedline (append (list indent) currentsymbols))
+                       (emptylines 
+                         (if (not (line-empty? parsedline))
+                            0 
+                            (1+ emptylines))))
+                     (when (not (= 0 (length parsedline)))
+                         ; set the source properties to parsedline so we can try to add them later.
+                         (set-source-property! parsedline 'filename (port-filename port))
+                         (set-source-property! parsedline 'line (port-line port)))
+                     ; TODO: If the line is empty. Either do it here and do not add it, just
+                     ; increment the empty line counter, or strip it later. Replace indent
+                     ; -1 by indent 0 afterwards.
+                     (loop
+                       (append indent-and-symbols (list parsedline))
+                       #t ; inindent
+                       (if (<= 2 emptylines)
+                         #f ; chunk ends here
+                         (equal? #\_ (peek-char port ))); are we in underscore indent?
+                       #f ; incomment
+                       0
+                       '()
+                       emptylines)))
+                 ((equal? #t incomment)
+                   (read-char port ); remove one comment character
+                   (loop 
+                     indent-and-symbols
+                     #f ; inindent 
+                     #f ; inunderscoreindent 
+                     #t ; incomment
+                     currentindent
+                     currentsymbols
+                     emptylines))
+                 ((or (equal? #\space next-char) (equal? #\tab next-char) (equal? #\return next-char) ); remove whitespace when not in indent
+                   (read-char port ); remove char
+                   (loop 
+                     indent-and-symbols
+                     #f ; inindent
+                     #f ; inunderscoreindent
+                     #f ; incomment
+                     currentindent
+                     currentsymbols
+                     emptylines))
+                          ; | cludge to appease the former wisp parser
+                          ; | which had a problem with the literal comment
+                          ; v char.
+                 ((equal? (string-ref ";" 0) next-char)
+                   (loop 
+                     indent-and-symbols
+                     #f ; inindent 
+                     #f ; inunderscoreindent 
+                     #t ; incomment
+                     currentindent
+                     currentsymbols
+                     emptylines))
+                 (else ; use the reader
+                   (loop 
+                     indent-and-symbols
+                     #f ; inindent
+                     #f ; inunderscoreindent
+                     #f ; incomment
+                     currentindent
+                     ; this also takes care of the hashbang and leading comments.
+                     ; TODO: If used from Guile, activate curly infix via read-options.
+                     (append currentsymbols (list (wisp-read port)))
+                     emptylines))))))))
+
+
+(define (line-code-replace-inline-colons line)
+         "Replace inline colons by opening parens which close at the end of the line"
+         ; format #t "replace inline colons for line ~A\n" line
+         (let loop
+           ((processed '())
+              (unprocessed line))
+           (cond
+             ((null? unprocessed)
+               ; format #t "inline-colons processed line: ~A\n" processed
+               processed)
+             ; replace : . with nothing
+             ((and (<= 2 (length unprocessed)) (equal? readcolon (car unprocessed)) (equal? repr-dot (car (cdr unprocessed))))
+               (loop
+                 (append processed
+                   (loop '() (cdr (cdr unprocessed))))
+                 '()))
+             ((equal? readcolon (car unprocessed))
+               (loop
+                 ; FIXME: This should turn unprocessed into a list. 
+                 (append processed
+                   (list (loop '() (cdr unprocessed))))
+                 '()))
+             (else
+               (loop 
+                 (append processed
+                   (list (car unprocessed)))
+                 (cdr unprocessed))))))
+
+(define (line-replace-inline-colons line)
+         (cons 
+           (line-indent line)
+           (line-code-replace-inline-colons (line-code line))))
+
+(define (line-strip-lone-colon line)
+         "A line consisting only of a colon is just a marked indentation level. We need to kill the colon before replacing inline colons."
+         (if 
+           (equal? 
+             (line-code line)
+             (list readcolon))
+           (list (line-indent line))
+           line))
+
+(define (line-finalize line)
+       "Process all wisp-specific information in a line and strip it"
+       (let
+         (
+           (l
+             (line-code-replace-inline-colons 
+               (line-strip-indentation-marker
+                 (line-strip-lone-colon
+                   (line-strip-continuation line))))))
+         (when (not (null? (source-properties line)))
+                (catch #t
+                  (lambda ()
+                    (set-source-properties! l (source-properties line)))
+                  (lambda (key . arguments)
+                    #f)))
+         l))
+
+(define (wisp-add-source-properties-from source target)
+       "Copy the source properties from source into the target and return the target."
+       (catch #t
+           (lambda ()
+               (set-source-properties! target (source-properties source)))
+           (lambda (key . arguments)
+               #f))
+       target)
+
+(define (wisp-propagate-source-properties code)
+       "Propagate the source properties from the sourrounding list into every part of the code."
+       (let loop
+         ((processed '())
+           (unprocessed code))
+         (cond
+           ((and (null? processed) (not (pair? unprocessed)) (not (list? unprocessed)))
+             unprocessed)
+           ((and (pair? unprocessed) (not (list? unprocessed)))
+             (cons
+               (wisp-propagate-source-properties (car unprocessed))
+               (wisp-propagate-source-properties (cdr unprocessed))))
+           ((null? unprocessed)
+             processed)
+           (else
+             (let ((line (car unprocessed)))
+               (if (null? (source-properties unprocessed))
+                   (wisp-add-source-properties-from line unprocessed)
+                   (wisp-add-source-properties-from unprocessed line))
+               (loop
+                 (append processed (list (wisp-propagate-source-properties line)))
+                 (cdr unprocessed)))))))
+
+(define (wisp-scheme-indentation-to-parens lines)
+         "Add parentheses to lines and remove the indentation markers"
+         ; FIXME: Find new algorithm which mostly uses current-line
+         ; and the indentation-levels for tracking. The try I have in
+         ; here right now is wrong.
+         (when 
+           (and 
+             (not (null? lines))
+             (not (line-empty-code? (car lines)))
+             (not (= 0 (line-real-indent (car lines ))))); -1 is a line with a comment
+           (throw 'wisp-syntax-error 
+             (format #f "The first symbol in a chunk must start at zero indentation. Indentation and line: ~A"
+               (car lines))))
+         (let loop
+           ((processed '())
+             (unprocessed lines)
+             (indentation-levels '(0)))
+           (let*
+             ( 
+               (current-line 
+                 (if (<= 1 (length unprocessed))
+                      (car unprocessed)
+                      (list 0 ))); empty code
+               (next-line
+                 (if (<= 2 (length unprocessed))
+                      (car (cdr unprocessed))
+                      (list 0 ))); empty code
+               (current-indentation
+                      (car indentation-levels))
+               (current-line-indentation (line-real-indent current-line)))
+             ; format #t "processed: ~A\ncurrent-line: ~A\nnext-line: ~A\nunprocessed: ~A\nindentation-levels: ~A\ncurrent-indentation: ~A\n\n"
+             ;     . processed current-line next-line unprocessed indentation-levels current-indentation
+             (cond
+                 ; the real end: this is reported to the outside world.
+               ((and (null? unprocessed) (not (null? indentation-levels)) (null? (cdr indentation-levels)))
+                 ; display "done\n"
+                 ; reverse the processed lines, because I use cons.
+                 processed)
+               ; the recursion end-condition
+               ((and (null? unprocessed))
+                 ; display "last step\n"
+                 ; this is the last step. Nothing more to do except
+                 ; for rolling up the indentation levels.  return the
+                 ; new processed and unprocessed lists: this is a
+                 ; side-recursion
+                 (values processed unprocessed))
+               ((null? indentation-levels)
+                 ; display "indentation-levels null\n"
+                 (throw 'wisp-programming-error "The indentation-levels are null but the current-line is null: Something killed the indentation-levels."))
+               (else ; now we come to the line-comparisons and indentation-counting.
+                   (cond
+                     ((line-empty-code? current-line)
+                       ; display "current-line empty\n"
+                       ; We cannot process indentation without
+                       ; code. Just switch to the next line. This should
+                       ; only happen at the start of the recursion.
+                       ; TODO: Somehow preserve the line-numbers.
+                       (loop
+                         processed
+                         (cdr unprocessed)
+                         indentation-levels))
+                     ((and (line-empty-code? next-line) (<= 2 (length unprocessed )))
+                       ; display "next-line empty\n"
+                       ; TODO: Somehow preserve the line-numbers.
+                       ; take out the next-line from unprocessed.
+                       (loop
+                         processed
+                         (cons current-line
+                           (cdr (cdr unprocessed)))
+                         indentation-levels))
+                     ((> current-indentation current-line-indentation)
+                       ; display "current-indent > next-line\n"
+                       ; this just steps back one level via the side-recursion.
+                       (values processed unprocessed))
+                     ((= current-indentation current-line-indentation)
+                       ; display "current-indent = next-line\n"
+                       (let 
+                         ((line (line-finalize current-line))
+                           (next-line-indentation (line-real-indent next-line)))
+                         (cond
+                           ((>= current-line-indentation next-line-indentation)
+                             ; simple recursiive step to the next line
+                             ; display "current-line-indent >= next-line-indent\n"
+                             (loop
+                               (append processed 
+                                 (if (line-continues? current-line)
+                                      line
+                                      (wisp-add-source-properties-from line (list line))))
+                               (cdr unprocessed ); recursion here
+                               indentation-levels))
+                           ((< current-line-indentation next-line-indentation)
+                             ; display "current-line-indent < next-line-indent\n"
+                             ; format #t "line: ~A\n" line
+                             ; side-recursion via a sublist
+                             (let-values 
+                               (
+                                 ((sub-processed sub-unprocessed)
+                                   (loop
+                                     line
+                                     (cdr unprocessed ); recursion here
+                                     indentation-levels)))
+                               ; format #t "side-recursion:\n  sub-processed: ~A\n  processed: ~A\n\n" sub-processed processed
+                               (loop
+                                 (append processed (list sub-processed))
+                                 sub-unprocessed ; simply use the recursion from the sub-recursion
+                                 indentation-levels))))))
+                     ((< current-indentation current-line-indentation)
+                       ; display "current-indent < next-line\n"
+                       (loop
+                         processed
+                         unprocessed
+                         (cons ; recursion via the indentation-levels
+                           current-line-indentation 
+                           indentation-levels)))
+                     (else
+                       (throw 'wisp-not-implemented 
+                             (format #f "Need to implement further line comparison: current: ~A, next: ~A, processed: ~A."
+                               current-line next-line processed)))))))))
+
+
+(define (wisp-scheme-replace-inline-colons lines)
+         "Replace inline colons by opening parens which close at the end of the line"
+         (let loop
+           ((processed '())
+             (unprocessed lines))
+           (if (null? unprocessed)
+                processed
+                (loop
+                  (append processed (list (line-replace-inline-colons (car unprocessed))))
+                  (cdr unprocessed)))))
+                  
+
+(define (wisp-scheme-strip-indentation-markers lines)
+         "Strip the indentation markers from the beginning of the lines"
+         (let loop
+           ((processed '())
+             (unprocessed lines))
+           (if (null? unprocessed)
+                processed
+                (loop
+                  (append processed (cdr (car unprocessed)))
+                  (cdr unprocessed)))))
+
+(define (wisp-unescape-underscore-and-colon code)
+         "replace \\_ and \\: by _ and :"
+         (match code
+             ((a ...)
+               (map wisp-unescape-underscore-and-colon a))
+             ('\_
+               '_)
+             ('\__
+               '__)
+             ('\___
+               '___)
+             ('\____
+               '____)
+             ('\_____
+               '_____)
+             ('\______
+               '______)
+             ('\:
+               ':)
+             (a
+               a)))
+
+
+(define (wisp-replace-empty-eof code)
+         "replace ((#<eof>)) by ()"
+         ; FIXME: Actually this is a hack which fixes a bug when the
+         ; parser hits files with only hashbang and comments.
+         (if (and (not (null? code)) (pair? (car code)) (eof-object? (car (car code))) (null? (cdr code)) (null? (cdr (car code))))
+              (list)
+              code))
+
+
+(define (wisp-replace-paren-quotation-repr code)
+         "Replace lists starting with a quotation symbol by
+         quoted lists."
+         (match code
+             (('REPR-QUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd a ...)
+                (list 'quote (map wisp-replace-paren-quotation-repr a)))
+             ((a ... 'REPR-QUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd b ); this is the quoted empty list 
+                (append
+                        (map wisp-replace-paren-quotation-repr a)
+                        (list (list 'quote (map wisp-replace-paren-quotation-repr b)))))
+             (('REPR-QUASIQUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd 'REPR-UNQUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd a ...)
+                (list 'quasiquote (list 'unquote (map wisp-replace-paren-quotation-repr a))))
+             (('REPR-UNQUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd a ...)
+                (list 'unquote (map wisp-replace-paren-quotation-repr a)))
+             ((a ... 'REPR-UNQUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd b )
+                (append
+                        (map wisp-replace-paren-quotation-repr a)
+                        (list (list 'unquote (map wisp-replace-paren-quotation-repr b)))))
+             (('REPR-QUASIQUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd a ...)
+                (list 'quasiquote (map wisp-replace-paren-quotation-repr a)))
+             ((a ... 'REPR-QUASIQUOTE-e749c73d-c826-47e2-a798-c16c13cb89dd b ); this is the quoted empty list 
+                (append
+                        (map wisp-replace-paren-quotation-repr a)
+                        (list (list 'quasiquote (map wisp-replace-paren-quotation-repr b)))))
+             (('REPR-UNQUOTESPLICING-e749c73d-c826-47e2-a798-c16c13cb89dd a ...)
+                (list 'unquote-splicing (map wisp-replace-paren-quotation-repr a)))
+             (('REPR-SYNTAX-e749c73d-c826-47e2-a798-c16c13cb89dd a ...)
+                (list 'syntax (map wisp-replace-paren-quotation-repr a)))
+             (('REPR-UNSYNTAX-e749c73d-c826-47e2-a798-c16c13cb89dd a ...)
+                (list 'unsyntax (map wisp-replace-paren-quotation-repr a)))
+             (('REPR-QUASISYNTAX-e749c73d-c826-47e2-a798-c16c13cb89dd a ...)
+                (list 'quasisyntax (map wisp-replace-paren-quotation-repr a)))
+             (('REPR-UNSYNTAXSPLICING-e749c73d-c826-47e2-a798-c16c13cb89dd a ...)
+                (list 'unsyntax-splicing (map wisp-replace-paren-quotation-repr a)))
+             ((a ...)
+               (map wisp-replace-paren-quotation-repr a))
+             (a
+               a)))
+
+(define (wisp-make-improper code)
+         "Turn (a #{.}# b) into the correct (a . b).
+
+read called on a single dot creates a variable named #{.}# (|.|
+in r7rs). Due to parsing the indentation before the list
+structure is known, the reader cannot create improper lists
+when it reads a dot. So we have to take another pass over the
+code to recreate the improper lists.
+
+Match is awesome!"
+         (let 
+           ( 
+             (improper
+               (match code
+                  ((a ... b 'REPR-DOT-e749c73d-c826-47e2-a798-c16c13cb89dd c)
+                    (append (map wisp-make-improper a) 
+                      (cons (wisp-make-improper b) (wisp-make-improper c))))
+                  ((a ...)
+                    (map wisp-make-improper a))
+                  (a
+                    a))))
+           (define (syntax-error li msg)
+                   (throw 'wisp-syntax-error (format #f "incorrect dot-syntax #{.}# in code: ~A: ~A" msg li)))
+           (if #t
+            improper
+            (let check
+             ((tocheck improper))
+             (match tocheck
+               ; lists with only one member
+               (('REPR-DOT-e749c73d-c826-47e2-a798-c16c13cb89dd)
+                 (syntax-error tocheck "list with the period as only member"))
+               ; list with remaining dot.
+               ((a ...)
+                 (if (and (member repr-dot a))
+                      (syntax-error tocheck "leftover period in list")
+                      (map check a)))
+               ; simple pair - this and the next do not work when parsed from wisp-scheme itself. Why?
+               (('REPR-DOT-e749c73d-c826-47e2-a798-c16c13cb89dd . c)
+                 (syntax-error tocheck "dot as first element in already improper pair"))
+               ; simple pair, other way round
+               ((a . 'REPR-DOT-e749c73d-c826-47e2-a798-c16c13cb89dd)
+                 (syntax-error tocheck "dot as last element in already improper pair"))
+               ; more complex pairs
+               ((? pair? a)
+                 (let 
+                   ((head (drop-right a 1))
+                     (tail (last-pair a)))
+                   (cond
+                    ((equal? repr-dot (car tail))
+                      (syntax-error tocheck "equal? repr-dot : car tail"))
+                    ((equal? repr-dot (cdr tail))
+                      (syntax-error tocheck "equal? repr-dot : cdr tail"))
+                    ((member repr-dot head)
+                      (syntax-error tocheck "member repr-dot head"))
+                    (else
+                      a))))
+               (a
+                 a))))))
+
+(define (wisp-scheme-read-chunk port)
+         "Read and parse one chunk of wisp-code"
+         (let (( lines (wisp-scheme-read-chunk-lines port)))
+              (wisp-make-improper
+                (wisp-replace-empty-eof
+                  (wisp-unescape-underscore-and-colon
+                    (wisp-replace-paren-quotation-repr
+                      (wisp-propagate-source-properties
+                        (wisp-scheme-indentation-to-parens lines))))))))
+
+(define (wisp-scheme-read-all port)
+         "Read all chunks from the given port"
+         (let loop 
+           ((tokens '()))
+           (cond
+             ((eof-object? (peek-char port))
+               tokens)
+             (else
+               (loop
+                 (append tokens (wisp-scheme-read-chunk port)))))))
+
+(define (wisp-scheme-read-file path)
+         (call-with-input-file path wisp-scheme-read-all))
+
+(define (wisp-scheme-read-file-chunk path)
+         (call-with-input-file path wisp-scheme-read-chunk))
+
+(define (wisp-scheme-read-string str)
+         (call-with-input-string str wisp-scheme-read-all))
+
+(define (wisp-scheme-read-string-chunk str)
+         (call-with-input-string str wisp-scheme-read-chunk))
+
+
+;;;; Test special syntax
+; ;; quote the list
+; write
+;   wisp-scheme-read-string  "moo
+;   foo
+;     ' bar
+; baz waz"
+; newline 
+; ;; quote the symbol - in wisp, whitespace after quote is not allowed!
+; write
+;   wisp-scheme-read-string  "moo
+;   foo
+;     'bar
+; baz waz"
+; newline 
+; ; ;; quote the list with colon
+; write
+;   wisp-scheme-read-string  "moo : ' foo
+;   foo
+;     ' bar bah
+; baz waz"
+; newline 
+; ; ;; syntax the list
+; write
+;   wisp-scheme-read-string  "moo : #' foo
+;   foo
+;     #' bar bah
+; baz waz"
+; newline 
+; 
+;;;; Test improper lists
+;;;; Good cases
+; write
+;   wisp-scheme-read-string  "foo . bar"
+; newline 
+; write
+;   wisp-scheme-read-string  "foo .
+;   . bar"
+; newline 
+; write
+;   wisp-scheme-read-string  "foo
+;   . . bar"
+; newline 
+; write
+;   wisp-scheme-read-string  "moo
+;   foo
+;     . . bar
+; baz waz"
+; newline 
+;;;; Syntax Error cases
+; write
+;   wisp-scheme-read-string  "foo
+;   . . ."
+; newline 
+; write
+;   wisp-scheme-read-string  "moo : . . bar"
+; write
+;   wisp-scheme-read-string  "foo .
+;   . . bar"
+; newline 
+; write
+;   wisp-scheme-read-string  "moo
+;   foo
+;     . . bar baz
+; baz waz"
+; newline 
+;;;; stranger stuff
+; write
+;   wisp-scheme-read-string  "foo ; bar\n  ; nop \n\n; nup\n; nup \n  \n\n\nfoo : moo \"\n\" \n___ . goo . hoo"
+; newline 
+; display
+;   wisp-scheme-read-string  "  foo ; bar\n  ; nop \n\n; nup\n; nup \n  \n\n\nfoo : moo"
+; newline 
+; write : wisp-scheme-read-file-chunk "wisp-scheme.w"
+; newline 
+; call-with-output-file "wisp-guile.scm"
+;   lambda : port
+;     map 
+;        lambda : chunk
+;                 write chunk port
+;        wisp-scheme-read-file "wisp-guile.w"
+; run all chunks in wisp-guile.w as parsed by wisp-scheme.w. Give wisp-guile.w to parse as argument.
+; map primitive-eval : wisp-scheme-read-file "wisp-guile.w" ; actually runs wisp-guile.w with the arguments supplied to this script.
+; uncomment the previous line, then run the next line in the shell. If 1 and 2 are equal, this parser works!
+; guile wisp.scm wisp-scheme.w > wisp-scheme.scm; guile wisp-scheme.scm wisp-guile.w > 1; guile wisp.scm wisp-guile.w > 2; diff 1 2
+
+
+
diff --git a/racket/wisp.rkt b/racket/wisp.rkt
new file mode 100644
--- /dev/null
+++ b/racket/wisp.rkt
@@ -0,0 +1,25 @@
+#lang racket
+
+;; Implement wisp in Racket
+;;
+;; -Author: Arne Babenhauserheide
+
+; adapted from wisp-in-guile and algol60.rkt
+
+(require (for-syntax "parse-base.rkt"))
+
+(provide literal-wisp)
+
+
+(define-syntax (literal-wisp stx)
+  (syntax-case stx ()
+    [(_ strs ...)
+     (andmap (λ (x) (string? (syntax-e x))) 
+             (syntax->list (syntax (strs ...))))
+     
+       (parse-wisp-port
+        (open-input-string 
+         (apply 
+          string-append
+          (map syntax-e (syntax->list #'(strs ...)))))
+        (syntax-source stx))]))
\ No newline at end of file
diff --git a/wisp-reader.w b/wisp-reader.w
--- a/wisp-reader.w
+++ b/wisp-reader.w
@@ -1,7 +1,4 @@
-#!/home/arne/wisp/wisp-multiline.sh 
-; !#
-;;
-;; Implement wisp in guile
+;; Language interface for Wisp in Guile
 ;;
 ;; -Author: Arne Babenhauserheide