pax_global_header00006660000000000000000000000064130363705230014514gustar00rootroot0000000000000052 comment=6c8db69c4b49dd4df1fff66996cf556176d0b9bf compress-1.2.1/000077500000000000000000000000001303637052300133505ustar00rootroot00000000000000compress-1.2.1/.gitignore000066400000000000000000000004121303637052300153350ustar00rootroot00000000000000# Compiled Object files, Static and Dynamic libs (Shared Objects) *.o *.a *.so # Folders _obj _test # Architecture specific extensions/prefixes *.[568vq] [568vq].out *.cgo1.go *.cgo2.c _cgo_defun.c _cgo_gotypes.go _cgo_export.* _testmain.go *.exe *.test *.prof compress-1.2.1/.travis.yml000066400000000000000000000005321303637052300154610ustar00rootroot00000000000000language: go sudo: false os: - linux - osx go: - 1.4 - 1.5 - 1.6 - 1.7 - tip install: - go get -t ./... script: - diff <(gofmt -d .) <(printf "") - go test -v -cpu=2 ./... - go test -cpu=2 -tags=noasm ./... - go test -cpu=1,2,4 -short -race ./... - go test -cpu=2,4 -short -race -tags=noasm ./... compress-1.2.1/LICENSE000066400000000000000000000027071303637052300143630ustar00rootroot00000000000000Copyright (c) 2012 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. compress-1.2.1/README.md000066400000000000000000000445721303637052300146430ustar00rootroot00000000000000# compress This package is based on an optimized Deflate function, which is used by gzip/zip/zlib packages. It offers slightly better compression at lower compression settings, and up to 3x faster encoding at highest compression level. * [High Throughput Benchmark](http://blog.klauspost.com/go-gzipdeflate-benchmarks/). * [Small Payload/Webserver Benchmarks](http://blog.klauspost.com/gzip-performance-for-go-webservers/). * [Linear Time Compression](http://blog.klauspost.com/constant-time-gzipzip-compression/). * [Re-balancing Deflate Compression Levels](https://blog.klauspost.com/rebalancing-deflate-compression-levels/) [![Build Status](https://travis-ci.org/klauspost/compress.svg?branch=master)](https://travis-ci.org/klauspost/compress) # changelog * Jan 14, 2017: Reduce stack pressure due to array copies. See [Issue #18625(https://github.com/golang/go/issues/18625). * Oct 25, 2016: Level 2-4 have been rewritten and now offers significantly better performance than before. * Oct 20, 2016: Port zlib changes from Go 1.7 to fix zlib writer issue. Please update. * Oct 16, 2016: Go 1.7 changes merged. Apples to apples this package is a few percent faster, but has a significantly better balance between speed and compression per level. * Mar 24, 2016: Always attempt Huffman encoding on level 4-7. This improves base 64 encoded data compression. * Mar 24, 2016: Small speedup for level 1-3. * Feb 19, 2016: Faster bit writer, level -2 is 15% faster, level 1 is 4% faster. * Feb 19, 2016: Handle small payloads faster in level 1-3. * Feb 19, 2016: Added faster level 2 + 3 compression modes. * Feb 19, 2016: [Rebalanced compression levels](https://blog.klauspost.com/rebalancing-deflate-compression-levels/), so there is a more even progresssion in terms of compression. New default level is 5. * Feb 14, 2016: Snappy: Merge upstream changes. * Feb 14, 2016: Snappy: Fix aggressive skipping. * Feb 14, 2016: Snappy: Update benchmark. * Feb 13, 2016: Deflate: Fixed assembler problem that could lead to sub-optimal compression. * Feb 12, 2016: Snappy: Added AMD64 SSE 4.2 optimizations to matching, which makes easy to compress material run faster. Typical speedup is around 25%. * Feb 9, 2016: Added Snappy package fork. This version is 5-7% faster, much more on hard to compress content. * Jan 30, 2016: Optimize level 1 to 3 by not considering static dictionary or storing uncompressed. ~4-5% speedup. * Jan 16, 2016: Optimization on deflate level 1,2,3 compression. * Jan 8 2016: Merge [CL 18317](https://go-review.googlesource.com/#/c/18317): fix reading, writing of zip64 archives. * Dec 8 2015: Make level 1 and -2 deterministic even if write size differs. * Dec 8 2015: Split encoding functions, so hashing and matching can potentially be inlined. 1-3% faster on AMD64. 5% faster on other platforms. * Dec 8 2015: Fixed rare [one byte out-of bounds read](https://github.com/klauspost/compress/issues/20). Please update! * Nov 23 2015: Optimization on token writer. ~2-4% faster. Contributed by [@dsnet](https://github.com/dsnet). * Nov 20 2015: Small optimization to bit writer on 64 bit systems. * Nov 17 2015: Fixed out-of-bound errors if the underlying Writer returned an error. See [#15](https://github.com/klauspost/compress/issues/15). * Nov 12 2015: Added [io.WriterTo](https://golang.org/pkg/io/#WriterTo) support to gzip/inflate. * Nov 11 2015: Merged [CL 16669](https://go-review.googlesource.com/#/c/16669/4): archive/zip: enable overriding (de)compressors per file * Oct 15 2015: Added skipping on uncompressible data. Random data speed up >5x. # usage The packages are drop-in replacements for standard libraries. Simply replace the import path to use them: | old import | new import | |--------------------|-----------------------------------------| | `compress/gzip` | `github.com/klauspost/compress/gzip` | | `compress/zlib` | `github.com/klauspost/compress/zlib` | | `archive/zip` | `github.com/klauspost/compress/zip` | | `compress/deflate` | `github.com/klauspost/compress/deflate` | You may also be interested in [pgzip](https://github.com/klauspost/pgzip), which is a drop in replacement for gzip, which support multithreaded compression on big files and the optimized [crc32](https://github.com/klauspost/crc32) package used by these packages. The packages contains the same as the standard library, so you can use the godoc for that: [gzip](http://golang.org/pkg/compress/gzip/), [zip](http://golang.org/pkg/archive/zip/), [zlib](http://golang.org/pkg/compress/zlib/), [flate](http://golang.org/pkg/compress/flate/). Currently there is only minor speedup on decompression (mostly CRC32 calculation). # deflate optimizations * Minimum matches are 4 bytes, this leads to fewer searches and better compression. (In Go 1.7) * Stronger hash (iSCSI CRC32) for matches on x64 with SSE 4.2 support. This leads to fewer hash collisions. (Go 1.7 also has improved hashes) * Literal byte matching using SSE 4.2 for faster match comparisons. (not in Go) * Bulk hashing on matches. (In Go 1.7) * Much faster dictionary indexing with `NewWriterDict()`/`Reset()`. (In Go 1.7) * Make Bit Coder faster by assuming we are on a 64 bit CPU. (In Go 1.7) * Level 1 compression replaced by converted "Snappy" algorithm. (In Go 1.7) * Uncompressible content is detected and skipped faster. (Only in BestSpeed in Go) * A lot of branching eliminated by having two encoders for levels 4-6 and 7-9. (not in Go) * All heap memory allocations eliminated. (In Go 1.7) ``` benchmark old ns/op new ns/op delta BenchmarkEncodeDigitsSpeed1e4-4 554029 265175 -52.14% BenchmarkEncodeDigitsSpeed1e5-4 3908558 2416595 -38.17% BenchmarkEncodeDigitsSpeed1e6-4 37546692 24875330 -33.75% BenchmarkEncodeDigitsDefault1e4-4 781510 486322 -37.77% BenchmarkEncodeDigitsDefault1e5-4 15530248 6740175 -56.60% BenchmarkEncodeDigitsDefault1e6-4 174915710 76498625 -56.27% BenchmarkEncodeDigitsCompress1e4-4 769995 485652 -36.93% BenchmarkEncodeDigitsCompress1e5-4 15450113 6929589 -55.15% BenchmarkEncodeDigitsCompress1e6-4 175114660 73348495 -58.11% BenchmarkEncodeTwainSpeed1e4-4 560122 275977 -50.73% BenchmarkEncodeTwainSpeed1e5-4 3740978 2506095 -33.01% BenchmarkEncodeTwainSpeed1e6-4 35542802 21904440 -38.37% BenchmarkEncodeTwainDefault1e4-4 828534 549026 -33.74% BenchmarkEncodeTwainDefault1e5-4 13667153 7528455 -44.92% BenchmarkEncodeTwainDefault1e6-4 141191770 79952170 -43.37% BenchmarkEncodeTwainCompress1e4-4 830050 545694 -34.26% BenchmarkEncodeTwainCompress1e5-4 16620852 8460600 -49.10% BenchmarkEncodeTwainCompress1e6-4 193326820 90808750 -53.03% benchmark old MB/s new MB/s speedup BenchmarkEncodeDigitsSpeed1e4-4 18.05 37.71 2.09x BenchmarkEncodeDigitsSpeed1e5-4 25.58 41.38 1.62x BenchmarkEncodeDigitsSpeed1e6-4 26.63 40.20 1.51x BenchmarkEncodeDigitsDefault1e4-4 12.80 20.56 1.61x BenchmarkEncodeDigitsDefault1e5-4 6.44 14.84 2.30x BenchmarkEncodeDigitsDefault1e6-4 5.72 13.07 2.28x BenchmarkEncodeDigitsCompress1e4-4 12.99 20.59 1.59x BenchmarkEncodeDigitsCompress1e5-4 6.47 14.43 2.23x BenchmarkEncodeDigitsCompress1e6-4 5.71 13.63 2.39x BenchmarkEncodeTwainSpeed1e4-4 17.85 36.23 2.03x BenchmarkEncodeTwainSpeed1e5-4 26.73 39.90 1.49x BenchmarkEncodeTwainSpeed1e6-4 28.14 45.65 1.62x BenchmarkEncodeTwainDefault1e4-4 12.07 18.21 1.51x BenchmarkEncodeTwainDefault1e5-4 7.32 13.28 1.81x BenchmarkEncodeTwainDefault1e6-4 7.08 12.51 1.77x BenchmarkEncodeTwainCompress1e4-4 12.05 18.33 1.52x BenchmarkEncodeTwainCompress1e5-4 6.02 11.82 1.96x BenchmarkEncodeTwainCompress1e6-4 5.17 11.01 2.13x ``` * "Speed" is compression level 1 * "Default" is compression level 6 * "Compress" is compression level 9 * Test files are [Digits](https://github.com/klauspost/compress/blob/master/testdata/e.txt) (no matches) and [Twain](https://github.com/klauspost/compress/blob/master/testdata/Mark.Twain-Tom.Sawyer.txt) (plain text) . As can be seen it shows a very good speedup all across the line. `Twain` is a much more realistic benchmark, and will be closer to JSON/HTML performance. Here speed is equivalent or faster, up to 2 times. **Without assembly**. This is what you can expect on systems that does not have amd64 and SSE 4: ``` benchmark old ns/op new ns/op delta BenchmarkEncodeDigitsSpeed1e4-4 554029 249558 -54.96% BenchmarkEncodeDigitsSpeed1e5-4 3908558 2295216 -41.28% BenchmarkEncodeDigitsSpeed1e6-4 37546692 22594905 -39.82% BenchmarkEncodeDigitsDefault1e4-4 781510 579850 -25.80% BenchmarkEncodeDigitsDefault1e5-4 15530248 10096561 -34.99% BenchmarkEncodeDigitsDefault1e6-4 174915710 111470780 -36.27% BenchmarkEncodeDigitsCompress1e4-4 769995 579708 -24.71% BenchmarkEncodeDigitsCompress1e5-4 15450113 10266373 -33.55% BenchmarkEncodeDigitsCompress1e6-4 175114660 110170120 -37.09% BenchmarkEncodeTwainSpeed1e4-4 560122 260679 -53.46% BenchmarkEncodeTwainSpeed1e5-4 3740978 2097372 -43.94% BenchmarkEncodeTwainSpeed1e6-4 35542802 20353449 -42.74% BenchmarkEncodeTwainDefault1e4-4 828534 646016 -22.03% BenchmarkEncodeTwainDefault1e5-4 13667153 10056369 -26.42% BenchmarkEncodeTwainDefault1e6-4 141191770 105268770 -25.44% BenchmarkEncodeTwainCompress1e4-4 830050 642401 -22.61% BenchmarkEncodeTwainCompress1e5-4 16620852 11157081 -32.87% BenchmarkEncodeTwainCompress1e6-4 193326820 121780770 -37.01% benchmark old MB/s new MB/s speedup BenchmarkEncodeDigitsSpeed1e4-4 18.05 40.07 2.22x BenchmarkEncodeDigitsSpeed1e5-4 25.58 43.57 1.70x BenchmarkEncodeDigitsSpeed1e6-4 26.63 44.26 1.66x BenchmarkEncodeDigitsDefault1e4-4 12.80 17.25 1.35x BenchmarkEncodeDigitsDefault1e5-4 6.44 9.90 1.54x BenchmarkEncodeDigitsDefault1e6-4 5.72 8.97 1.57x BenchmarkEncodeDigitsCompress1e4-4 12.99 17.25 1.33x BenchmarkEncodeDigitsCompress1e5-4 6.47 9.74 1.51x BenchmarkEncodeDigitsCompress1e6-4 5.71 9.08 1.59x BenchmarkEncodeTwainSpeed1e4-4 17.85 38.36 2.15x BenchmarkEncodeTwainSpeed1e5-4 26.73 47.68 1.78x BenchmarkEncodeTwainSpeed1e6-4 28.14 49.13 1.75x BenchmarkEncodeTwainDefault1e4-4 12.07 15.48 1.28x BenchmarkEncodeTwainDefault1e5-4 7.32 9.94 1.36x BenchmarkEncodeTwainDefault1e6-4 7.08 9.50 1.34x BenchmarkEncodeTwainCompress1e4-4 12.05 15.57 1.29x BenchmarkEncodeTwainCompress1e5-4 6.02 8.96 1.49x BenchmarkEncodeTwainCompress1e6-4 5.17 8.21 1.59x ``` So even without the assembly optimizations there is a general speedup across the board. ## level 1-3 "snappy" compression Levels 1 "Best Speed", 2 and 3 are completely replaced by a converted version of the algorithm found in Snappy, modified to be fully compatible with the deflate bitstream (and thus still compatible with all existing zlib/gzip libraries and tools). This version is considerably faster than the "old" deflate at level 1. It does however come at a compression loss, usually in the order of 3-4% compared to the old level 1. However, the speed is usually 1.75 times that of the fastest deflate mode. In my previous experiments the most common case for "level 1" was that it provided no significant speedup, only lower compression compared to level 2 and sometimes even 3. However, the modified Snappy algorithm provides a very good sweet spot. Usually about 75% faster and with only little compression loss. Therefore I decided to *replace* level 1 with this mode entirely. Input is split into blocks of 64kb of, and they are encoded independently (no backreferences across blocks) for the best speed. Contrary to Snappy the output is entropy-encoded, so you will almost always see better compression than Snappy. But Snappy is still about twice as fast as Snappy in deflate mode. Level 2 and 3 have also been replaced. Level 2 is capable is matching between blocks and level 3 checks up to two hashes for matches it will try. ## compression levels This table shows the compression at each level, and the percentage of the output size compared to output at the similar level with the standard library. Compression data is `Twain`, see above. (Not up-to-date after rebalancing) | Level | Bytes | % size | |-------|--------|--------| | 1 | 194622 | 103.7% | | 2 | 174684 | 96.85% | | 3 | 170301 | 98.45% | | 4 | 165253 | 97.69% | | 5 | 161274 | 98.65% | | 6 | 160464 | 99.71% | | 7 | 160304 | 99.87% | | 8 | 160279 | 99.99% | | 9 | 160279 | 99.99% | To interpret and example, this version of deflate compresses input of 407287 bytes to 161274 bytes at level 5, which is 98.6% of the size of what the standard library produces; 161274 bytes. This means that from level 4 you can expect a compression level increase of a few percent. Level 1 is about 3% worse, as descibed above. # linear time compression (huffman only) This compression library adds a special compression level, named `ConstantCompression`, which allows near linear time compression. This is done by completely disabling matching of previous data, and only reduce the number of bits to represent each character. This means that often used characters, like 'e' and ' ' (space) in text use the fewest bits to represent, and rare characters like '¤' takes more bits to represent. For more information see [wikipedia](https://en.wikipedia.org/wiki/Huffman_coding) or this nice [video](https://youtu.be/ZdooBTdW5bM). Since this type of compression has much less variance, the compression speed is mostly unaffected by the input data, and is usually more than *180MB/s* for a single core. The downside is that the compression ratio is usually considerably worse than even the fastest conventional compression. The compression raio can never be better than 8:1 (12.5%). The linear time compression can be used as a "better than nothing" mode, where you cannot risk the encoder to slow down on some content. For comparison, the size of the "Twain" text is *233460 bytes* (+29% vs. level 1) and encode speed is 144MB/s (4.5x level 1). So in this case you trade a 30% size increase for a 4 times speedup. For more information see my blog post on [Fast Linear Time Compression](http://blog.klauspost.com/constant-time-gzipzip-compression/). This is implemented on Go 1.7 as "Huffman Only" mode, though not exposed for gzip. # gzip/zip optimizations * Uses the faster deflate * Uses SSE 4.2 CRC32 calculations. Speed increase is up to 3x of the standard library, but usually around 2x. This is close to a real world benchmark as you will get. A 2.3MB JSON file. (NOTE: not up-to-date) ``` benchmark old ns/op new ns/op delta BenchmarkGzipL1-4 95212470 59938275 -37.05% BenchmarkGzipL2-4 102069730 76349195 -25.20% BenchmarkGzipL3-4 115472770 82492215 -28.56% BenchmarkGzipL4-4 153197780 107570890 -29.78% BenchmarkGzipL5-4 203930260 134387930 -34.10% BenchmarkGzipL6-4 233172100 145495400 -37.60% BenchmarkGzipL7-4 297190260 197926950 -33.40% BenchmarkGzipL8-4 512819750 376244733 -26.63% BenchmarkGzipL9-4 563366800 403266833 -28.42% benchmark old MB/s new MB/s speedup BenchmarkGzipL1-4 52.11 82.78 1.59x BenchmarkGzipL2-4 48.61 64.99 1.34x BenchmarkGzipL3-4 42.97 60.15 1.40x BenchmarkGzipL4-4 32.39 46.13 1.42x BenchmarkGzipL5-4 24.33 36.92 1.52x BenchmarkGzipL6-4 21.28 34.10 1.60x BenchmarkGzipL7-4 16.70 25.07 1.50x BenchmarkGzipL8-4 9.68 13.19 1.36x BenchmarkGzipL9-4 8.81 12.30 1.40x ``` Multithreaded compression using [pgzip](https://github.com/klauspost/pgzip) comparison, Quadcore, CPU = 8: (Not updated, old numbers) ``` benchmark old ns/op new ns/op delta BenchmarkGzipL1 96155500 25981486 -72.98% BenchmarkGzipL2 101905830 24601408 -75.86% BenchmarkGzipL3 113506490 26321506 -76.81% BenchmarkGzipL4 143708220 31761818 -77.90% BenchmarkGzipL5 188210770 39602266 -78.96% BenchmarkGzipL6 209812000 40402313 -80.74% BenchmarkGzipL7 270015440 56103210 -79.22% BenchmarkGzipL8 461359700 91255220 -80.22% BenchmarkGzipL9 498361833 88755075 -82.19% benchmark old MB/s new MB/s speedup BenchmarkGzipL1 51.60 190.97 3.70x BenchmarkGzipL2 48.69 201.69 4.14x BenchmarkGzipL3 43.71 188.51 4.31x BenchmarkGzipL4 34.53 156.22 4.52x BenchmarkGzipL5 26.36 125.29 4.75x BenchmarkGzipL6 23.65 122.81 5.19x BenchmarkGzipL7 18.38 88.44 4.81x BenchmarkGzipL8 10.75 54.37 5.06x BenchmarkGzipL9 9.96 55.90 5.61x ``` # snappy package The standard snappy package has now been improved. This repo contains a copy of the snappy repo. I would advise to use the standard package: https://github.com/golang/snappy # license This code is licensed under the same conditions as the original Go code. See LICENSE file. compress-1.2.1/flate/000077500000000000000000000000001303637052300144435ustar00rootroot00000000000000compress-1.2.1/flate/asm_test.go000066400000000000000000000104331303637052300166120ustar00rootroot00000000000000// Copyright 2015, Klaus Post, see LICENSE for details. //+build amd64 package flate import ( "math/rand" "testing" ) func TestCRC(t *testing.T) { if !useSSE42 { t.Skip("Skipping CRC test, no SSE 4.2 available") } for _, x := range deflateTests { y := x.out if len(y) >= minMatchLength { t.Logf("In: %v, Out:0x%08x", y[0:minMatchLength], crc32sse(y[0:minMatchLength])) } } } func TestCRCBulk(t *testing.T) { if !useSSE42 { t.Skip("Skipping CRC test, no SSE 4.2 available") } for _, x := range deflateTests { y := x.out y = append(y, y...) y = append(y, y...) y = append(y, y...) y = append(y, y...) y = append(y, y...) y = append(y, y...) if !testing.Short() { y = append(y, y...) y = append(y, y...) } y = append(y, 1) if len(y) >= minMatchLength { for j := len(y) - 1; j >= 4; j-- { // Create copy, so we easier detect of-of-bound reads test := make([]byte, j) test2 := make([]byte, j) copy(test, y[:j]) copy(test2, y[:j]) // We allocate one more than we need to test for unintentional overwrites dst := make([]uint32, j-3+1) ref := make([]uint32, j-3+1) for i := range dst { dst[i] = uint32(i + 100) ref[i] = uint32(i + 101) } // Last entry must NOT be overwritten. dst[j-3] = 0x1234 ref[j-3] = 0x1234 // Do two encodes we can compare crc32sseAll(test, dst) crc32sseAll(test2, ref) // Check all values for i, got := range dst { if i == j-3 { if dst[i] != 0x1234 { t.Fatalf("end of expected dst overwritten, was %08x", uint32(dst[i])) } continue } expect := crc32sse(y[i : i+4]) if got != expect && got == uint32(i)+100 { t.Errorf("Len:%d Index:%d, expected 0x%08x but not modified", len(y), i, uint32(expect)) } else if got != expect { t.Errorf("Len:%d Index:%d, got 0x%08x expected:0x%08x", len(y), i, uint32(got), uint32(expect)) } expect = ref[i] if got != expect { t.Errorf("Len:%d Index:%d, got 0x%08x expected:0x%08x", len(y), i, got, expect) } } } } } } func TestMatchLen(t *testing.T) { if !useSSE42 { t.Skip("Skipping Matchlen test, no SSE 4.2 available") } // Maximum length tested var maxLen = 512 // Skips per iteration is, js, ks := 3, 2, 1 if testing.Short() { is, js, ks = 7, 5, 3 } a := make([]byte, maxLen) b := make([]byte, maxLen) bb := make([]byte, maxLen) rand.Seed(1) for i := range a { a[i] = byte(rand.Int63()) b[i] = byte(rand.Int63()) } // Test different lengths for i := 0; i < maxLen; i += is { // Test different dst offsets. for j := 0; j < maxLen-1; j += js { copy(bb, b) // Test different src offsets for k := i - 1; k >= 0; k -= ks { copy(bb[j:], a[k:i]) maxTest := maxLen - j if maxTest > maxLen-k { maxTest = maxLen - k } got := matchLenSSE4(a[k:], bb[j:], maxTest) expect := matchLenReference(a[k:], bb[j:], maxTest) if got > maxTest || got < 0 { t.Fatalf("unexpected result %d (len:%d, src offset: %d, dst offset:%d)", got, maxTest, k, j) } if got != expect { t.Fatalf("Mismatch, expected %d, got %d", expect, got) } } } } } // matchLenReference is a reference matcher. func matchLenReference(a, b []byte, max int) int { for i := 0; i < max; i++ { if a[i] != b[i] { return i } } return max } func TestHistogram(t *testing.T) { if !useSSE42 { t.Skip("Skipping Matchlen test, no SSE 4.2 available") } // Maximum length tested const maxLen = 65536 var maxOff = 8 // Skips per iteration is, js := 5, 3 if testing.Short() { is, js = 9, 1 maxOff = 1 } a := make([]byte, maxLen+maxOff) rand.Seed(1) for i := range a { a[i] = byte(rand.Int63()) } // Test different lengths for i := 0; i <= maxLen; i += is { // Test different offsets for j := 0; j < maxOff; j += js { var got [256]int32 var reference [256]int32 histogram(a[j:i+j], got[:]) histogramReference(a[j:i+j], reference[:]) for k := range got { if got[k] != reference[k] { t.Fatalf("mismatch at len:%d, offset:%d, value %d: (got) %d != %d (expected)", i, j, k, got[k], reference[k]) } } } } } // histogramReference is a reference func histogramReference(b []byte, h []int32) { if len(h) < 256 { panic("Histogram too small") } for _, t := range b { h[t]++ } } compress-1.2.1/flate/copy.go000066400000000000000000000016111303637052300157430ustar00rootroot00000000000000// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate // forwardCopy is like the built-in copy function except that it always goes // forward from the start, even if the dst and src overlap. // It is equivalent to: // for i := 0; i < n; i++ { // mem[dst+i] = mem[src+i] // } func forwardCopy(mem []byte, dst, src, n int) { if dst <= src { copy(mem[dst:dst+n], mem[src:src+n]) return } for { if dst >= src+n { copy(mem[dst:dst+n], mem[src:src+n]) return } // There is some forward overlap. The destination // will be filled with a repeated pattern of mem[src:src+k]. // We copy one instance of the pattern here, then repeat. // Each time around this loop k will double. k := dst - src copy(mem[dst:dst+k], mem[src:src+k]) n -= k dst += k } } compress-1.2.1/flate/copy_test.go000066400000000000000000000024301303637052300170020ustar00rootroot00000000000000// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import ( "testing" ) func TestForwardCopy(t *testing.T) { testCases := []struct { dst0, dst1 int src0, src1 int want string }{ {0, 9, 0, 9, "012345678"}, {0, 5, 4, 9, "45678"}, {4, 9, 0, 5, "01230"}, {1, 6, 3, 8, "34567"}, {3, 8, 1, 6, "12121"}, {0, 9, 3, 6, "345"}, {3, 6, 0, 9, "012"}, {1, 6, 0, 9, "00000"}, {0, 4, 7, 8, "7"}, {0, 1, 6, 8, "6"}, {4, 4, 6, 9, ""}, {2, 8, 6, 6, ""}, {0, 0, 0, 0, ""}, } for _, tc := range testCases { b := []byte("0123456789") n := tc.dst1 - tc.dst0 if tc.src1-tc.src0 < n { n = tc.src1 - tc.src0 } forwardCopy(b, tc.dst0, tc.src0, n) got := string(b[tc.dst0 : tc.dst0+n]) if got != tc.want { t.Errorf("dst=b[%d:%d], src=b[%d:%d]: got %q, want %q", tc.dst0, tc.dst1, tc.src0, tc.src1, got, tc.want) } // Check that the bytes outside of dst[:n] were not modified. for i, x := range b { if i >= tc.dst0 && i < tc.dst0+n { continue } if int(x) != '0'+i { t.Errorf("dst=b[%d:%d], src=b[%d:%d]: copy overrun at b[%d]: got '%c', want '%c'", tc.dst0, tc.dst1, tc.src0, tc.src1, i, x, '0'+i) } } } } compress-1.2.1/flate/crc32_amd64.go000066400000000000000000000020071303637052300167000ustar00rootroot00000000000000//+build !noasm //+build !appengine // Copyright 2015, Klaus Post, see LICENSE for details. package flate import ( "github.com/klauspost/cpuid" ) // crc32sse returns a hash for the first 4 bytes of the slice // len(a) must be >= 4. //go:noescape func crc32sse(a []byte) uint32 // crc32sseAll calculates hashes for each 4-byte set in a. // dst must be east len(a) - 4 in size. // The size is not checked by the assembly. //go:noescape func crc32sseAll(a []byte, dst []uint32) // matchLenSSE4 returns the number of matching bytes in a and b // up to length 'max'. Both slices must be at least 'max' // bytes in size. // // TODO: drop the "SSE4" name, since it doesn't use any SSE instructions. // //go:noescape func matchLenSSE4(a, b []byte, max int) int // histogram accumulates a histogram of b in h. // h must be at least 256 entries in length, // and must be cleared before calling this function. //go:noescape func histogram(b []byte, h []int32) // Detect SSE 4.2 feature. func init() { useSSE42 = cpuid.CPU.SSE42() } compress-1.2.1/flate/crc32_amd64.s000066400000000000000000000070231303637052300165400ustar00rootroot00000000000000//+build !noasm //+build !appengine // Copyright 2015, Klaus Post, see LICENSE for details. // func crc32sse(a []byte) uint32 TEXT ·crc32sse(SB), 4, $0 MOVQ a+0(FP), R10 XORQ BX, BX // CRC32 dword (R10), EBX BYTE $0xF2; BYTE $0x41; BYTE $0x0f BYTE $0x38; BYTE $0xf1; BYTE $0x1a MOVL BX, ret+24(FP) RET // func crc32sseAll(a []byte, dst []uint32) TEXT ·crc32sseAll(SB), 4, $0 MOVQ a+0(FP), R8 // R8: src MOVQ a_len+8(FP), R10 // input length MOVQ dst+24(FP), R9 // R9: dst SUBQ $4, R10 JS end JZ one_crc MOVQ R10, R13 SHRQ $2, R10 // len/4 ANDQ $3, R13 // len&3 XORQ BX, BX ADDQ $1, R13 TESTQ R10, R10 JZ rem_loop crc_loop: MOVQ (R8), R11 XORQ BX, BX XORQ DX, DX XORQ DI, DI MOVQ R11, R12 SHRQ $8, R11 MOVQ R12, AX MOVQ R11, CX SHRQ $16, R12 SHRQ $16, R11 MOVQ R12, SI // CRC32 EAX, EBX BYTE $0xF2; BYTE $0x0f BYTE $0x38; BYTE $0xf1; BYTE $0xd8 // CRC32 ECX, EDX BYTE $0xF2; BYTE $0x0f BYTE $0x38; BYTE $0xf1; BYTE $0xd1 // CRC32 ESI, EDI BYTE $0xF2; BYTE $0x0f BYTE $0x38; BYTE $0xf1; BYTE $0xfe MOVL BX, (R9) MOVL DX, 4(R9) MOVL DI, 8(R9) XORQ BX, BX MOVL R11, AX // CRC32 EAX, EBX BYTE $0xF2; BYTE $0x0f BYTE $0x38; BYTE $0xf1; BYTE $0xd8 MOVL BX, 12(R9) ADDQ $16, R9 ADDQ $4, R8 XORQ BX, BX SUBQ $1, R10 JNZ crc_loop rem_loop: MOVL (R8), AX // CRC32 EAX, EBX BYTE $0xF2; BYTE $0x0f BYTE $0x38; BYTE $0xf1; BYTE $0xd8 MOVL BX, (R9) ADDQ $4, R9 ADDQ $1, R8 XORQ BX, BX SUBQ $1, R13 JNZ rem_loop end: RET one_crc: MOVQ $1, R13 XORQ BX, BX JMP rem_loop // func matchLenSSE4(a, b []byte, max int) int TEXT ·matchLenSSE4(SB), 4, $0 MOVQ a_base+0(FP), SI MOVQ b_base+24(FP), DI MOVQ DI, DX MOVQ max+48(FP), CX cmp8: // As long as we are 8 or more bytes before the end of max, we can load and // compare 8 bytes at a time. If those 8 bytes are equal, repeat. CMPQ CX, $8 JLT cmp1 MOVQ (SI), AX MOVQ (DI), BX CMPQ AX, BX JNE bsf ADDQ $8, SI ADDQ $8, DI SUBQ $8, CX JMP cmp8 bsf: // If those 8 bytes were not equal, XOR the two 8 byte values, and return // the index of the first byte that differs. The BSF instruction finds the // least significant 1 bit, the amd64 architecture is little-endian, and // the shift by 3 converts a bit index to a byte index. XORQ AX, BX BSFQ BX, BX SHRQ $3, BX ADDQ BX, DI // Subtract off &b[0] to convert from &b[ret] to ret, and return. SUBQ DX, DI MOVQ DI, ret+56(FP) RET cmp1: // In the slices' tail, compare 1 byte at a time. CMPQ CX, $0 JEQ matchLenEnd MOVB (SI), AX MOVB (DI), BX CMPB AX, BX JNE matchLenEnd ADDQ $1, SI ADDQ $1, DI SUBQ $1, CX JMP cmp1 matchLenEnd: // Subtract off &b[0] to convert from &b[ret] to ret, and return. SUBQ DX, DI MOVQ DI, ret+56(FP) RET // func histogram(b []byte, h []int32) TEXT ·histogram(SB), 4, $0 MOVQ b+0(FP), SI // SI: &b MOVQ b_len+8(FP), R9 // R9: len(b) MOVQ h+24(FP), DI // DI: Histogram MOVQ R9, R8 SHRQ $3, R8 JZ hist1 XORQ R11, R11 loop_hist8: MOVQ (SI), R10 MOVB R10, R11 INCL (DI)(R11*4) SHRQ $8, R10 MOVB R10, R11 INCL (DI)(R11*4) SHRQ $8, R10 MOVB R10, R11 INCL (DI)(R11*4) SHRQ $8, R10 MOVB R10, R11 INCL (DI)(R11*4) SHRQ $8, R10 MOVB R10, R11 INCL (DI)(R11*4) SHRQ $8, R10 MOVB R10, R11 INCL (DI)(R11*4) SHRQ $8, R10 MOVB R10, R11 INCL (DI)(R11*4) SHRQ $8, R10 INCL (DI)(R10*4) ADDQ $8, SI DECQ R8 JNZ loop_hist8 hist1: ANDQ $7, R9 JZ end_hist XORQ R10, R10 loop_hist1: MOVB (SI), R10 INCL (DI)(R10*4) INCQ SI DECQ R9 JNZ loop_hist1 end_hist: RET compress-1.2.1/flate/crc32_noasm.go000066400000000000000000000012331303637052300171020ustar00rootroot00000000000000//+build !amd64 noasm appengine // Copyright 2015, Klaus Post, see LICENSE for details. package flate func init() { useSSE42 = false } // crc32sse should never be called. func crc32sse(a []byte) uint32 { panic("no assembler") } // crc32sseAll should never be called. func crc32sseAll(a []byte, dst []uint32) { panic("no assembler") } // matchLenSSE4 should never be called. func matchLenSSE4(a, b []byte, max int) int { panic("no assembler") return 0 } // histogram accumulates a histogram of b in h. // // len(h) must be >= 256, and h's elements must be all zeroes. func histogram(b []byte, h []int32) { h = h[:256] for _, t := range b { h[t]++ } } compress-1.2.1/flate/deflate.go000066400000000000000000001125411303637052300164020ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Copyright (c) 2015 Klaus Post // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import ( "fmt" "io" "math" ) const ( NoCompression = 0 BestSpeed = 1 BestCompression = 9 DefaultCompression = -1 // HuffmanOnly disables Lempel-Ziv match searching and only performs Huffman // entropy encoding. This mode is useful in compressing data that has // already been compressed with an LZ style algorithm (e.g. Snappy or LZ4) // that lacks an entropy encoder. Compression gains are achieved when // certain bytes in the input stream occur more frequently than others. // // Note that HuffmanOnly produces a compressed output that is // RFC 1951 compliant. That is, any valid DEFLATE decompressor will // continue to be able to decompress this output. HuffmanOnly = -2 ConstantCompression = HuffmanOnly // compatibility alias. logWindowSize = 15 windowSize = 1 << logWindowSize windowMask = windowSize - 1 logMaxOffsetSize = 15 // Standard DEFLATE minMatchLength = 4 // The smallest match that the compressor looks for maxMatchLength = 258 // The longest match for the compressor minOffsetSize = 1 // The shortest offset that makes any sense // The maximum number of tokens we put into a single flat block, just too // stop things from getting too large. maxFlateBlockTokens = 1 << 14 maxStoreBlockSize = 65535 hashBits = 17 // After 17 performance degrades hashSize = 1 << hashBits hashMask = (1 << hashBits) - 1 hashShift = (hashBits + minMatchLength - 1) / minMatchLength maxHashOffset = 1 << 24 skipNever = math.MaxInt32 ) var useSSE42 bool type compressionLevel struct { good, lazy, nice, chain, fastSkipHashing, level int } // Compression levels have been rebalanced from zlib deflate defaults // to give a bigger spread in speed and compression. // See https://blog.klauspost.com/rebalancing-deflate-compression-levels/ var levels = []compressionLevel{ {}, // 0 // Level 1-4 uses specialized algorithm - values not used {0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 2}, {0, 0, 0, 0, 0, 3}, {0, 0, 0, 0, 0, 4}, // For levels 5-6 we don't bother trying with lazy matches. // Lazy matching is at least 30% slower, with 1.5% increase. {6, 0, 12, 8, 12, 5}, {8, 0, 24, 16, 16, 6}, // Levels 7-9 use increasingly more lazy matching // and increasingly stringent conditions for "good enough". {8, 8, 24, 16, skipNever, 7}, {10, 16, 24, 64, skipNever, 8}, {32, 258, 258, 4096, skipNever, 9}, } type compressor struct { compressionLevel w *huffmanBitWriter bulkHasher func([]byte, []uint32) // compression algorithm fill func(*compressor, []byte) int // copy data to window step func(*compressor) // process window sync bool // requesting flush // Input hash chains // hashHead[hashValue] contains the largest inputIndex with the specified hash value // If hashHead[hashValue] is within the current window, then // hashPrev[hashHead[hashValue] & windowMask] contains the previous index // with the same hash value. chainHead int hashHead [hashSize]uint32 hashPrev [windowSize]uint32 hashOffset int // input window: unprocessed data is window[index:windowEnd] index int window []byte windowEnd int blockStart int // window index where current tokens start byteAvailable bool // if true, still need to process window[index-1]. // queued output tokens tokens tokens // deflate state length int offset int hash uint32 maxInsertIndex int err error ii uint16 // position of last match, intended to overflow to reset. snap snappyEnc hashMatch [maxMatchLength + minMatchLength]uint32 } func (d *compressor) fillDeflate(b []byte) int { if d.index >= 2*windowSize-(minMatchLength+maxMatchLength) { // shift the window by windowSize copy(d.window[:], d.window[windowSize:2*windowSize]) d.index -= windowSize d.windowEnd -= windowSize if d.blockStart >= windowSize { d.blockStart -= windowSize } else { d.blockStart = math.MaxInt32 } d.hashOffset += windowSize if d.hashOffset > maxHashOffset { delta := d.hashOffset - 1 d.hashOffset -= delta d.chainHead -= delta // Iterate over slices instead of arrays to avoid copying // the entire table onto the stack (Issue #18625). for i, v := range d.hashPrev[:] { if int(v) > delta { d.hashPrev[i] = uint32(int(v) - delta) } else { d.hashPrev[i] = 0 } } for i, v := range d.hashHead[:] { if int(v) > delta { d.hashHead[i] = uint32(int(v) - delta) } else { d.hashHead[i] = 0 } } } } n := copy(d.window[d.windowEnd:], b) d.windowEnd += n return n } func (d *compressor) writeBlock(tok tokens, index int, eof bool) error { if index > 0 || eof { var window []byte if d.blockStart <= index { window = d.window[d.blockStart:index] } d.blockStart = index d.w.writeBlock(tok.tokens[:tok.n], eof, window) return d.w.err } return nil } // writeBlockSkip writes the current block and uses the number of tokens // to determine if the block should be stored on no matches, or // only huffman encoded. func (d *compressor) writeBlockSkip(tok tokens, index int, eof bool) error { if index > 0 || eof { if d.blockStart <= index { window := d.window[d.blockStart:index] // If we removed less than a 64th of all literals // we huffman compress the block. if int(tok.n) > len(window)-int(tok.n>>6) { d.w.writeBlockHuff(eof, window) } else { // Write a dynamic huffman block. d.w.writeBlockDynamic(tok.tokens[:tok.n], eof, window) } } else { d.w.writeBlock(tok.tokens[:tok.n], eof, nil) } d.blockStart = index return d.w.err } return nil } // fillWindow will fill the current window with the supplied // dictionary and calculate all hashes. // This is much faster than doing a full encode. // Should only be used after a start/reset. func (d *compressor) fillWindow(b []byte) { // Do not fill window if we are in store-only mode, // use constant or Snappy compression. switch d.compressionLevel.level { case 0, 1, 2: return } // If we are given too much, cut it. if len(b) > windowSize { b = b[len(b)-windowSize:] } // Add all to window. n := copy(d.window[d.windowEnd:], b) // Calculate 256 hashes at the time (more L1 cache hits) loops := (n + 256 - minMatchLength) / 256 for j := 0; j < loops; j++ { startindex := j * 256 end := startindex + 256 + minMatchLength - 1 if end > n { end = n } tocheck := d.window[startindex:end] dstSize := len(tocheck) - minMatchLength + 1 if dstSize <= 0 { continue } dst := d.hashMatch[:dstSize] d.bulkHasher(tocheck, dst) var newH uint32 for i, val := range dst { di := i + startindex newH = val & hashMask // Get previous value with the same hash. // Our chain should point to the previous value. d.hashPrev[di&windowMask] = d.hashHead[newH] // Set the head of the hash chain to us. d.hashHead[newH] = uint32(di + d.hashOffset) } d.hash = newH } // Update window information. d.windowEnd += n d.index = n } // Try to find a match starting at index whose length is greater than prevSize. // We only look at chainCount possibilities before giving up. // pos = d.index, prevHead = d.chainHead-d.hashOffset, prevLength=minMatchLength-1, lookahead func (d *compressor) findMatch(pos int, prevHead int, prevLength int, lookahead int) (length, offset int, ok bool) { minMatchLook := maxMatchLength if lookahead < minMatchLook { minMatchLook = lookahead } win := d.window[0 : pos+minMatchLook] // We quit when we get a match that's at least nice long nice := len(win) - pos if d.nice < nice { nice = d.nice } // If we've got a match that's good enough, only look in 1/4 the chain. tries := d.chain length = prevLength if length >= d.good { tries >>= 2 } wEnd := win[pos+length] wPos := win[pos:] minIndex := pos - windowSize for i := prevHead; tries > 0; tries-- { if wEnd == win[i+length] { n := matchLen(win[i:], wPos, minMatchLook) if n > length && (n > minMatchLength || pos-i <= 4096) { length = n offset = pos - i ok = true if n >= nice { // The match is good enough that we don't try to find a better one. break } wEnd = win[pos+n] } } if i == minIndex { // hashPrev[i & windowMask] has already been overwritten, so stop now. break } i = int(d.hashPrev[i&windowMask]) - d.hashOffset if i < minIndex || i < 0 { break } } return } // Try to find a match starting at index whose length is greater than prevSize. // We only look at chainCount possibilities before giving up. // pos = d.index, prevHead = d.chainHead-d.hashOffset, prevLength=minMatchLength-1, lookahead func (d *compressor) findMatchSSE(pos int, prevHead int, prevLength int, lookahead int) (length, offset int, ok bool) { minMatchLook := maxMatchLength if lookahead < minMatchLook { minMatchLook = lookahead } win := d.window[0 : pos+minMatchLook] // We quit when we get a match that's at least nice long nice := len(win) - pos if d.nice < nice { nice = d.nice } // If we've got a match that's good enough, only look in 1/4 the chain. tries := d.chain length = prevLength if length >= d.good { tries >>= 2 } wEnd := win[pos+length] wPos := win[pos:] minIndex := pos - windowSize for i := prevHead; tries > 0; tries-- { if wEnd == win[i+length] { n := matchLenSSE4(win[i:], wPos, minMatchLook) if n > length && (n > minMatchLength || pos-i <= 4096) { length = n offset = pos - i ok = true if n >= nice { // The match is good enough that we don't try to find a better one. break } wEnd = win[pos+n] } } if i == minIndex { // hashPrev[i & windowMask] has already been overwritten, so stop now. break } i = int(d.hashPrev[i&windowMask]) - d.hashOffset if i < minIndex || i < 0 { break } } return } func (d *compressor) writeStoredBlock(buf []byte) error { if d.w.writeStoredHeader(len(buf), false); d.w.err != nil { return d.w.err } d.w.writeBytes(buf) return d.w.err } const hashmul = 0x1e35a7bd // hash4 returns a hash representation of the first 4 bytes // of the supplied slice. // The caller must ensure that len(b) >= 4. func hash4(b []byte) uint32 { return ((uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24) * hashmul) >> (32 - hashBits) } // bulkHash4 will compute hashes using the same // algorithm as hash4 func bulkHash4(b []byte, dst []uint32) { if len(b) < minMatchLength { return } hb := uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24 dst[0] = (hb * hashmul) >> (32 - hashBits) end := len(b) - minMatchLength + 1 for i := 1; i < end; i++ { hb = (hb << 8) | uint32(b[i+3]) dst[i] = (hb * hashmul) >> (32 - hashBits) } } // matchLen returns the number of matching bytes in a and b // up to length 'max'. Both slices must be at least 'max' // bytes in size. func matchLen(a, b []byte, max int) int { a = a[:max] b = b[:len(a)] for i, av := range a { if b[i] != av { return i } } return max } func (d *compressor) initDeflate() { d.window = make([]byte, 2*windowSize) d.hashOffset = 1 d.length = minMatchLength - 1 d.offset = 0 d.byteAvailable = false d.index = 0 d.hash = 0 d.chainHead = -1 d.bulkHasher = bulkHash4 if useSSE42 { d.bulkHasher = crc32sseAll } } // Assumes that d.fastSkipHashing != skipNever, // otherwise use deflateLazy func (d *compressor) deflate() { // Sanity enables additional runtime tests. // It's intended to be used during development // to supplement the currently ad-hoc unit tests. const sanity = false if d.windowEnd-d.index < minMatchLength+maxMatchLength && !d.sync { return } d.maxInsertIndex = d.windowEnd - (minMatchLength - 1) if d.index < d.maxInsertIndex { d.hash = hash4(d.window[d.index : d.index+minMatchLength]) } for { if sanity && d.index > d.windowEnd { panic("index > windowEnd") } lookahead := d.windowEnd - d.index if lookahead < minMatchLength+maxMatchLength { if !d.sync { return } if sanity && d.index > d.windowEnd { panic("index > windowEnd") } if lookahead == 0 { if d.tokens.n > 0 { if d.err = d.writeBlockSkip(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } return } } if d.index < d.maxInsertIndex { // Update the hash d.hash = hash4(d.window[d.index : d.index+minMatchLength]) ch := d.hashHead[d.hash&hashMask] d.chainHead = int(ch) d.hashPrev[d.index&windowMask] = ch d.hashHead[d.hash&hashMask] = uint32(d.index + d.hashOffset) } d.length = minMatchLength - 1 d.offset = 0 minIndex := d.index - windowSize if minIndex < 0 { minIndex = 0 } if d.chainHead-d.hashOffset >= minIndex && lookahead > minMatchLength-1 { if newLength, newOffset, ok := d.findMatch(d.index, d.chainHead-d.hashOffset, minMatchLength-1, lookahead); ok { d.length = newLength d.offset = newOffset } } if d.length >= minMatchLength { d.ii = 0 // There was a match at the previous step, and the current match is // not better. Output the previous match. // "d.length-3" should NOT be "d.length-minMatchLength", since the format always assume 3 d.tokens.tokens[d.tokens.n] = matchToken(uint32(d.length-3), uint32(d.offset-minOffsetSize)) d.tokens.n++ // Insert in the hash table all strings up to the end of the match. // index and index-1 are already inserted. If there is not enough // lookahead, the last two strings are not inserted into the hash // table. if d.length <= d.fastSkipHashing { var newIndex int newIndex = d.index + d.length // Calculate missing hashes end := newIndex if end > d.maxInsertIndex { end = d.maxInsertIndex } end += minMatchLength - 1 startindex := d.index + 1 if startindex > d.maxInsertIndex { startindex = d.maxInsertIndex } tocheck := d.window[startindex:end] dstSize := len(tocheck) - minMatchLength + 1 if dstSize > 0 { dst := d.hashMatch[:dstSize] bulkHash4(tocheck, dst) var newH uint32 for i, val := range dst { di := i + startindex newH = val & hashMask // Get previous value with the same hash. // Our chain should point to the previous value. d.hashPrev[di&windowMask] = d.hashHead[newH] // Set the head of the hash chain to us. d.hashHead[newH] = uint32(di + d.hashOffset) } d.hash = newH } d.index = newIndex } else { // For matches this long, we don't bother inserting each individual // item into the table. d.index += d.length if d.index < d.maxInsertIndex { d.hash = hash4(d.window[d.index : d.index+minMatchLength]) } } if d.tokens.n == maxFlateBlockTokens { // The block includes the current character if d.err = d.writeBlockSkip(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } } else { d.ii++ end := d.index + int(d.ii>>uint(d.fastSkipHashing)) + 1 if end > d.windowEnd { end = d.windowEnd } for i := d.index; i < end; i++ { d.tokens.tokens[d.tokens.n] = literalToken(uint32(d.window[i])) d.tokens.n++ if d.tokens.n == maxFlateBlockTokens { if d.err = d.writeBlockSkip(d.tokens, i+1, false); d.err != nil { return } d.tokens.n = 0 } } d.index = end } } } // deflateLazy is the same as deflate, but with d.fastSkipHashing == skipNever, // meaning it always has lazy matching on. func (d *compressor) deflateLazy() { // Sanity enables additional runtime tests. // It's intended to be used during development // to supplement the currently ad-hoc unit tests. const sanity = false if d.windowEnd-d.index < minMatchLength+maxMatchLength && !d.sync { return } d.maxInsertIndex = d.windowEnd - (minMatchLength - 1) if d.index < d.maxInsertIndex { d.hash = hash4(d.window[d.index : d.index+minMatchLength]) } for { if sanity && d.index > d.windowEnd { panic("index > windowEnd") } lookahead := d.windowEnd - d.index if lookahead < minMatchLength+maxMatchLength { if !d.sync { return } if sanity && d.index > d.windowEnd { panic("index > windowEnd") } if lookahead == 0 { // Flush current output block if any. if d.byteAvailable { // There is still one pending token that needs to be flushed d.tokens.tokens[d.tokens.n] = literalToken(uint32(d.window[d.index-1])) d.tokens.n++ d.byteAvailable = false } if d.tokens.n > 0 { if d.err = d.writeBlock(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } return } } if d.index < d.maxInsertIndex { // Update the hash d.hash = hash4(d.window[d.index : d.index+minMatchLength]) ch := d.hashHead[d.hash&hashMask] d.chainHead = int(ch) d.hashPrev[d.index&windowMask] = ch d.hashHead[d.hash&hashMask] = uint32(d.index + d.hashOffset) } prevLength := d.length prevOffset := d.offset d.length = minMatchLength - 1 d.offset = 0 minIndex := d.index - windowSize if minIndex < 0 { minIndex = 0 } if d.chainHead-d.hashOffset >= minIndex && lookahead > prevLength && prevLength < d.lazy { if newLength, newOffset, ok := d.findMatch(d.index, d.chainHead-d.hashOffset, minMatchLength-1, lookahead); ok { d.length = newLength d.offset = newOffset } } if prevLength >= minMatchLength && d.length <= prevLength { // There was a match at the previous step, and the current match is // not better. Output the previous match. d.tokens.tokens[d.tokens.n] = matchToken(uint32(prevLength-3), uint32(prevOffset-minOffsetSize)) d.tokens.n++ // Insert in the hash table all strings up to the end of the match. // index and index-1 are already inserted. If there is not enough // lookahead, the last two strings are not inserted into the hash // table. var newIndex int newIndex = d.index + prevLength - 1 // Calculate missing hashes end := newIndex if end > d.maxInsertIndex { end = d.maxInsertIndex } end += minMatchLength - 1 startindex := d.index + 1 if startindex > d.maxInsertIndex { startindex = d.maxInsertIndex } tocheck := d.window[startindex:end] dstSize := len(tocheck) - minMatchLength + 1 if dstSize > 0 { dst := d.hashMatch[:dstSize] bulkHash4(tocheck, dst) var newH uint32 for i, val := range dst { di := i + startindex newH = val & hashMask // Get previous value with the same hash. // Our chain should point to the previous value. d.hashPrev[di&windowMask] = d.hashHead[newH] // Set the head of the hash chain to us. d.hashHead[newH] = uint32(di + d.hashOffset) } d.hash = newH } d.index = newIndex d.byteAvailable = false d.length = minMatchLength - 1 if d.tokens.n == maxFlateBlockTokens { // The block includes the current character if d.err = d.writeBlock(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } } else { // Reset, if we got a match this run. if d.length >= minMatchLength { d.ii = 0 } // We have a byte waiting. Emit it. if d.byteAvailable { d.ii++ d.tokens.tokens[d.tokens.n] = literalToken(uint32(d.window[d.index-1])) d.tokens.n++ if d.tokens.n == maxFlateBlockTokens { if d.err = d.writeBlock(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } d.index++ // If we have a long run of no matches, skip additional bytes // Resets when d.ii overflows after 64KB. if d.ii > 31 { n := int(d.ii >> 5) for j := 0; j < n; j++ { if d.index >= d.windowEnd-1 { break } d.tokens.tokens[d.tokens.n] = literalToken(uint32(d.window[d.index-1])) d.tokens.n++ if d.tokens.n == maxFlateBlockTokens { if d.err = d.writeBlock(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } d.index++ } // Flush last byte d.tokens.tokens[d.tokens.n] = literalToken(uint32(d.window[d.index-1])) d.tokens.n++ d.byteAvailable = false // d.length = minMatchLength - 1 // not needed, since d.ii is reset above, so it should never be > minMatchLength if d.tokens.n == maxFlateBlockTokens { if d.err = d.writeBlock(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } } } else { d.index++ d.byteAvailable = true } } } } // Assumes that d.fastSkipHashing != skipNever, // otherwise use deflateLazySSE func (d *compressor) deflateSSE() { // Sanity enables additional runtime tests. // It's intended to be used during development // to supplement the currently ad-hoc unit tests. const sanity = false if d.windowEnd-d.index < minMatchLength+maxMatchLength && !d.sync { return } d.maxInsertIndex = d.windowEnd - (minMatchLength - 1) if d.index < d.maxInsertIndex { d.hash = crc32sse(d.window[d.index:d.index+minMatchLength]) & hashMask } for { if sanity && d.index > d.windowEnd { panic("index > windowEnd") } lookahead := d.windowEnd - d.index if lookahead < minMatchLength+maxMatchLength { if !d.sync { return } if sanity && d.index > d.windowEnd { panic("index > windowEnd") } if lookahead == 0 { if d.tokens.n > 0 { if d.err = d.writeBlockSkip(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } return } } if d.index < d.maxInsertIndex { // Update the hash d.hash = crc32sse(d.window[d.index:d.index+minMatchLength]) & hashMask ch := d.hashHead[d.hash] d.chainHead = int(ch) d.hashPrev[d.index&windowMask] = ch d.hashHead[d.hash] = uint32(d.index + d.hashOffset) } d.length = minMatchLength - 1 d.offset = 0 minIndex := d.index - windowSize if minIndex < 0 { minIndex = 0 } if d.chainHead-d.hashOffset >= minIndex && lookahead > minMatchLength-1 { if newLength, newOffset, ok := d.findMatchSSE(d.index, d.chainHead-d.hashOffset, minMatchLength-1, lookahead); ok { d.length = newLength d.offset = newOffset } } if d.length >= minMatchLength { d.ii = 0 // There was a match at the previous step, and the current match is // not better. Output the previous match. // "d.length-3" should NOT be "d.length-minMatchLength", since the format always assume 3 d.tokens.tokens[d.tokens.n] = matchToken(uint32(d.length-3), uint32(d.offset-minOffsetSize)) d.tokens.n++ // Insert in the hash table all strings up to the end of the match. // index and index-1 are already inserted. If there is not enough // lookahead, the last two strings are not inserted into the hash // table. if d.length <= d.fastSkipHashing { var newIndex int newIndex = d.index + d.length // Calculate missing hashes end := newIndex if end > d.maxInsertIndex { end = d.maxInsertIndex } end += minMatchLength - 1 startindex := d.index + 1 if startindex > d.maxInsertIndex { startindex = d.maxInsertIndex } tocheck := d.window[startindex:end] dstSize := len(tocheck) - minMatchLength + 1 if dstSize > 0 { dst := d.hashMatch[:dstSize] crc32sseAll(tocheck, dst) var newH uint32 for i, val := range dst { di := i + startindex newH = val & hashMask // Get previous value with the same hash. // Our chain should point to the previous value. d.hashPrev[di&windowMask] = d.hashHead[newH] // Set the head of the hash chain to us. d.hashHead[newH] = uint32(di + d.hashOffset) } d.hash = newH } d.index = newIndex } else { // For matches this long, we don't bother inserting each individual // item into the table. d.index += d.length if d.index < d.maxInsertIndex { d.hash = crc32sse(d.window[d.index:d.index+minMatchLength]) & hashMask } } if d.tokens.n == maxFlateBlockTokens { // The block includes the current character if d.err = d.writeBlockSkip(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } } else { d.ii++ end := d.index + int(d.ii>>5) + 1 if end > d.windowEnd { end = d.windowEnd } for i := d.index; i < end; i++ { d.tokens.tokens[d.tokens.n] = literalToken(uint32(d.window[i])) d.tokens.n++ if d.tokens.n == maxFlateBlockTokens { if d.err = d.writeBlockSkip(d.tokens, i+1, false); d.err != nil { return } d.tokens.n = 0 } } d.index = end } } } // deflateLazy is the same as deflate, but with d.fastSkipHashing == skipNever, // meaning it always has lazy matching on. func (d *compressor) deflateLazySSE() { // Sanity enables additional runtime tests. // It's intended to be used during development // to supplement the currently ad-hoc unit tests. const sanity = false if d.windowEnd-d.index < minMatchLength+maxMatchLength && !d.sync { return } d.maxInsertIndex = d.windowEnd - (minMatchLength - 1) if d.index < d.maxInsertIndex { d.hash = crc32sse(d.window[d.index:d.index+minMatchLength]) & hashMask } for { if sanity && d.index > d.windowEnd { panic("index > windowEnd") } lookahead := d.windowEnd - d.index if lookahead < minMatchLength+maxMatchLength { if !d.sync { return } if sanity && d.index > d.windowEnd { panic("index > windowEnd") } if lookahead == 0 { // Flush current output block if any. if d.byteAvailable { // There is still one pending token that needs to be flushed d.tokens.tokens[d.tokens.n] = literalToken(uint32(d.window[d.index-1])) d.tokens.n++ d.byteAvailable = false } if d.tokens.n > 0 { if d.err = d.writeBlock(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } return } } if d.index < d.maxInsertIndex { // Update the hash d.hash = crc32sse(d.window[d.index:d.index+minMatchLength]) & hashMask ch := d.hashHead[d.hash] d.chainHead = int(ch) d.hashPrev[d.index&windowMask] = ch d.hashHead[d.hash] = uint32(d.index + d.hashOffset) } prevLength := d.length prevOffset := d.offset d.length = minMatchLength - 1 d.offset = 0 minIndex := d.index - windowSize if minIndex < 0 { minIndex = 0 } if d.chainHead-d.hashOffset >= minIndex && lookahead > prevLength && prevLength < d.lazy { if newLength, newOffset, ok := d.findMatchSSE(d.index, d.chainHead-d.hashOffset, minMatchLength-1, lookahead); ok { d.length = newLength d.offset = newOffset } } if prevLength >= minMatchLength && d.length <= prevLength { // There was a match at the previous step, and the current match is // not better. Output the previous match. d.tokens.tokens[d.tokens.n] = matchToken(uint32(prevLength-3), uint32(prevOffset-minOffsetSize)) d.tokens.n++ // Insert in the hash table all strings up to the end of the match. // index and index-1 are already inserted. If there is not enough // lookahead, the last two strings are not inserted into the hash // table. var newIndex int newIndex = d.index + prevLength - 1 // Calculate missing hashes end := newIndex if end > d.maxInsertIndex { end = d.maxInsertIndex } end += minMatchLength - 1 startindex := d.index + 1 if startindex > d.maxInsertIndex { startindex = d.maxInsertIndex } tocheck := d.window[startindex:end] dstSize := len(tocheck) - minMatchLength + 1 if dstSize > 0 { dst := d.hashMatch[:dstSize] crc32sseAll(tocheck, dst) var newH uint32 for i, val := range dst { di := i + startindex newH = val & hashMask // Get previous value with the same hash. // Our chain should point to the previous value. d.hashPrev[di&windowMask] = d.hashHead[newH] // Set the head of the hash chain to us. d.hashHead[newH] = uint32(di + d.hashOffset) } d.hash = newH } d.index = newIndex d.byteAvailable = false d.length = minMatchLength - 1 if d.tokens.n == maxFlateBlockTokens { // The block includes the current character if d.err = d.writeBlock(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } } else { // Reset, if we got a match this run. if d.length >= minMatchLength { d.ii = 0 } // We have a byte waiting. Emit it. if d.byteAvailable { d.ii++ d.tokens.tokens[d.tokens.n] = literalToken(uint32(d.window[d.index-1])) d.tokens.n++ if d.tokens.n == maxFlateBlockTokens { if d.err = d.writeBlock(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } d.index++ // If we have a long run of no matches, skip additional bytes // Resets when d.ii overflows after 64KB. if d.ii > 31 { n := int(d.ii >> 6) for j := 0; j < n; j++ { if d.index >= d.windowEnd-1 { break } d.tokens.tokens[d.tokens.n] = literalToken(uint32(d.window[d.index-1])) d.tokens.n++ if d.tokens.n == maxFlateBlockTokens { if d.err = d.writeBlock(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } d.index++ } // Flush last byte d.tokens.tokens[d.tokens.n] = literalToken(uint32(d.window[d.index-1])) d.tokens.n++ d.byteAvailable = false // d.length = minMatchLength - 1 // not needed, since d.ii is reset above, so it should never be > minMatchLength if d.tokens.n == maxFlateBlockTokens { if d.err = d.writeBlock(d.tokens, d.index, false); d.err != nil { return } d.tokens.n = 0 } } } else { d.index++ d.byteAvailable = true } } } } func (d *compressor) store() { if d.windowEnd > 0 && (d.windowEnd == maxStoreBlockSize || d.sync) { d.err = d.writeStoredBlock(d.window[:d.windowEnd]) d.windowEnd = 0 } } // fillWindow will fill the buffer with data for huffman-only compression. // The number of bytes copied is returned. func (d *compressor) fillBlock(b []byte) int { n := copy(d.window[d.windowEnd:], b) d.windowEnd += n return n } // storeHuff will compress and store the currently added data, // if enough has been accumulated or we at the end of the stream. // Any error that occurred will be in d.err func (d *compressor) storeHuff() { if d.windowEnd < len(d.window) && !d.sync || d.windowEnd == 0 { return } d.w.writeBlockHuff(false, d.window[:d.windowEnd]) d.err = d.w.err d.windowEnd = 0 } // storeHuff will compress and store the currently added data, // if enough has been accumulated or we at the end of the stream. // Any error that occurred will be in d.err func (d *compressor) storeSnappy() { // We only compress if we have maxStoreBlockSize. if d.windowEnd < maxStoreBlockSize { if !d.sync { return } // Handle extremely small sizes. if d.windowEnd < 128 { if d.windowEnd == 0 { return } if d.windowEnd <= 32 { d.err = d.writeStoredBlock(d.window[:d.windowEnd]) d.tokens.n = 0 d.windowEnd = 0 } else { d.w.writeBlockHuff(false, d.window[:d.windowEnd]) d.err = d.w.err } d.tokens.n = 0 d.windowEnd = 0 d.snap.Reset() return } } d.snap.Encode(&d.tokens, d.window[:d.windowEnd]) // If we made zero matches, store the block as is. if int(d.tokens.n) == d.windowEnd { d.err = d.writeStoredBlock(d.window[:d.windowEnd]) // If we removed less than 1/16th, huffman compress the block. } else if int(d.tokens.n) > d.windowEnd-(d.windowEnd>>4) { d.w.writeBlockHuff(false, d.window[:d.windowEnd]) d.err = d.w.err } else { d.w.writeBlockDynamic(d.tokens.tokens[:d.tokens.n], false, d.window[:d.windowEnd]) d.err = d.w.err } d.tokens.n = 0 d.windowEnd = 0 } // write will add input byte to the stream. // Unless an error occurs all bytes will be consumed. func (d *compressor) write(b []byte) (n int, err error) { if d.err != nil { return 0, d.err } n = len(b) for len(b) > 0 { d.step(d) b = b[d.fill(d, b):] if d.err != nil { return 0, d.err } } return n, d.err } func (d *compressor) syncFlush() error { d.sync = true if d.err != nil { return d.err } d.step(d) if d.err == nil { d.w.writeStoredHeader(0, false) d.w.flush() d.err = d.w.err } d.sync = false return d.err } func (d *compressor) init(w io.Writer, level int) (err error) { d.w = newHuffmanBitWriter(w) switch { case level == NoCompression: d.window = make([]byte, maxStoreBlockSize) d.fill = (*compressor).fillBlock d.step = (*compressor).store case level == ConstantCompression: d.window = make([]byte, maxStoreBlockSize) d.fill = (*compressor).fillBlock d.step = (*compressor).storeHuff case level >= 1 && level <= 4: d.snap = newSnappy(level) d.window = make([]byte, maxStoreBlockSize) d.fill = (*compressor).fillBlock d.step = (*compressor).storeSnappy case level == DefaultCompression: level = 5 fallthrough case 5 <= level && level <= 9: d.compressionLevel = levels[level] d.initDeflate() d.fill = (*compressor).fillDeflate if d.fastSkipHashing == skipNever { if useSSE42 { d.step = (*compressor).deflateLazySSE } else { d.step = (*compressor).deflateLazy } } else { if useSSE42 { d.step = (*compressor).deflateSSE } else { d.step = (*compressor).deflate } } default: return fmt.Errorf("flate: invalid compression level %d: want value in range [-2, 9]", level) } return nil } // reset the state of the compressor. func (d *compressor) reset(w io.Writer) { d.w.reset(w) d.sync = false d.err = nil // We only need to reset a few things for Snappy. if d.snap != nil { d.snap.Reset() d.windowEnd = 0 d.tokens.n = 0 return } switch d.compressionLevel.chain { case 0: // level was NoCompression or ConstantCompresssion. d.windowEnd = 0 default: d.chainHead = -1 for i := range d.hashHead { d.hashHead[i] = 0 } for i := range d.hashPrev { d.hashPrev[i] = 0 } d.hashOffset = 1 d.index, d.windowEnd = 0, 0 d.blockStart, d.byteAvailable = 0, false d.tokens.n = 0 d.length = minMatchLength - 1 d.offset = 0 d.hash = 0 d.ii = 0 d.maxInsertIndex = 0 } } func (d *compressor) close() error { if d.err != nil { return d.err } d.sync = true d.step(d) if d.err != nil { return d.err } if d.w.writeStoredHeader(0, true); d.w.err != nil { return d.w.err } d.w.flush() return d.w.err } // NewWriter returns a new Writer compressing data at the given level. // Following zlib, levels range from 1 (BestSpeed) to 9 (BestCompression); // higher levels typically run slower but compress more. // Level 0 (NoCompression) does not attempt any compression; it only adds the // necessary DEFLATE framing. // Level -1 (DefaultCompression) uses the default compression level. // Level -2 (ConstantCompression) will use Huffman compression only, giving // a very fast compression for all types of input, but sacrificing considerable // compression efficiency. // // If level is in the range [-2, 9] then the error returned will be nil. // Otherwise the error returned will be non-nil. func NewWriter(w io.Writer, level int) (*Writer, error) { var dw Writer if err := dw.d.init(w, level); err != nil { return nil, err } return &dw, nil } // NewWriterDict is like NewWriter but initializes the new // Writer with a preset dictionary. The returned Writer behaves // as if the dictionary had been written to it without producing // any compressed output. The compressed data written to w // can only be decompressed by a Reader initialized with the // same dictionary. func NewWriterDict(w io.Writer, level int, dict []byte) (*Writer, error) { dw := &dictWriter{w} zw, err := NewWriter(dw, level) if err != nil { return nil, err } zw.d.fillWindow(dict) zw.dict = append(zw.dict, dict...) // duplicate dictionary for Reset method. return zw, err } type dictWriter struct { w io.Writer } func (w *dictWriter) Write(b []byte) (n int, err error) { return w.w.Write(b) } // A Writer takes data written to it and writes the compressed // form of that data to an underlying writer (see NewWriter). type Writer struct { d compressor dict []byte } // Write writes data to w, which will eventually write the // compressed form of data to its underlying writer. func (w *Writer) Write(data []byte) (n int, err error) { return w.d.write(data) } // Flush flushes any pending data to the underlying writer. // It is useful mainly in compressed network protocols, to ensure that // a remote reader has enough data to reconstruct a packet. // Flush does not return until the data has been written. // Calling Flush when there is no pending data still causes the Writer // to emit a sync marker of at least 4 bytes. // If the underlying writer returns an error, Flush returns that error. // // In the terminology of the zlib library, Flush is equivalent to Z_SYNC_FLUSH. func (w *Writer) Flush() error { // For more about flushing: // http://www.bolet.org/~pornin/deflate-flush.html return w.d.syncFlush() } // Close flushes and closes the writer. func (w *Writer) Close() error { return w.d.close() } // Reset discards the writer's state and makes it equivalent to // the result of NewWriter or NewWriterDict called with dst // and w's level and dictionary. func (w *Writer) Reset(dst io.Writer) { if dw, ok := w.d.w.writer.(*dictWriter); ok { // w was created with NewWriterDict dw.w = dst w.d.reset(dw) w.d.fillWindow(w.dict) } else { // w was created with NewWriter w.d.reset(dst) } } // ResetDict discards the writer's state and makes it equivalent to // the result of NewWriter or NewWriterDict called with dst // and w's level, but sets a specific dictionary. func (w *Writer) ResetDict(dst io.Writer, dict []byte) { w.dict = dict w.d.reset(dst) w.d.fillWindow(w.dict) } compress-1.2.1/flate/deflate_test.go000066400000000000000000000401271303637052300174410ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Copyright (c) 2015 Klaus Post // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import ( "bytes" "fmt" "io" "io/ioutil" "reflect" "strings" "sync" "testing" ) type deflateTest struct { in []byte level int out []byte } type deflateInflateTest struct { in []byte } type reverseBitsTest struct { in uint16 bitCount uint8 out uint16 } var deflateTests = []*deflateTest{ {[]byte{}, 0, []byte{1, 0, 0, 255, 255}}, {[]byte{0x11}, BestCompression, []byte{18, 4, 4, 0, 0, 255, 255}}, {[]byte{0x11}, BestCompression, []byte{18, 4, 4, 0, 0, 255, 255}}, {[]byte{0x11}, BestCompression, []byte{18, 4, 4, 0, 0, 255, 255}}, {[]byte{0x11}, 0, []byte{0, 1, 0, 254, 255, 17, 1, 0, 0, 255, 255}}, {[]byte{0x11, 0x12}, 0, []byte{0, 2, 0, 253, 255, 17, 18, 1, 0, 0, 255, 255}}, {[]byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, 0, []byte{0, 8, 0, 247, 255, 17, 17, 17, 17, 17, 17, 17, 17, 1, 0, 0, 255, 255}, }, {[]byte{}, 1, []byte{1, 0, 0, 255, 255}}, {[]byte{0x11}, BestCompression, []byte{18, 4, 4, 0, 0, 255, 255}}, {[]byte{0x11, 0x12}, BestCompression, []byte{18, 20, 2, 4, 0, 0, 255, 255}}, {[]byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, BestCompression, []byte{18, 132, 2, 64, 0, 0, 0, 255, 255}}, {[]byte{}, 9, []byte{1, 0, 0, 255, 255}}, {[]byte{0x11}, 9, []byte{18, 4, 4, 0, 0, 255, 255}}, {[]byte{0x11, 0x12}, 9, []byte{18, 20, 2, 4, 0, 0, 255, 255}}, {[]byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, 9, []byte{18, 132, 2, 64, 0, 0, 0, 255, 255}}, } var deflateInflateTests = []*deflateInflateTest{ {[]byte{}}, {[]byte{0x11}}, {[]byte{0x11, 0x12}}, {[]byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}}, {[]byte{0x11, 0x10, 0x13, 0x41, 0x21, 0x21, 0x41, 0x13, 0x87, 0x78, 0x13}}, {largeDataChunk()}, } var reverseBitsTests = []*reverseBitsTest{ {1, 1, 1}, {1, 2, 2}, {1, 3, 4}, {1, 4, 8}, {1, 5, 16}, {17, 5, 17}, {257, 9, 257}, {29, 5, 23}, } func largeDataChunk() []byte { result := make([]byte, 100000) for i := range result { result[i] = byte(i * i & 0xFF) } return result } func TestCRCBulkOld(t *testing.T) { for _, x := range deflateTests { y := x.out if len(y) >= minMatchLength { y = append(y, y...) for j := 4; j < len(y); j++ { y := y[:j] dst := make([]uint32, len(y)-minMatchLength+1) for i := range dst { dst[i] = uint32(i + 100) } bulkHash4(y, dst) for i, val := range dst { got := val expect := hash4(y[i:]) if got != expect && got == uint32(i)+100 { t.Errorf("Len:%d Index:%d, expected 0x%08x but not modified", len(y), i, expect) } else if got != expect { t.Errorf("Len:%d Index:%d, got 0x%08x expected:0x%08x", len(y), i, got, expect) } else { //t.Logf("Len:%d Index:%d OK (0x%08x)", len(y), i, got) } } } } } } func TestDeflate(t *testing.T) { for _, h := range deflateTests { var buf bytes.Buffer w, err := NewWriter(&buf, h.level) if err != nil { t.Errorf("NewWriter: %v", err) continue } w.Write(h.in) w.Close() if !bytes.Equal(buf.Bytes(), h.out) { t.Errorf("Deflate(%d, %x) = \n%#v, want \n%#v", h.level, h.in, buf.Bytes(), h.out) } } } // A sparseReader returns a stream consisting of 0s followed by 1<<16 1s. // This tests missing hash references in a very large input. type sparseReader struct { l int64 cur int64 } func (r *sparseReader) Read(b []byte) (n int, err error) { if r.cur >= r.l { return 0, io.EOF } n = len(b) cur := r.cur + int64(n) if cur > r.l { n -= int(cur - r.l) cur = r.l } for i := range b[0:n] { if r.cur+int64(i) >= r.l-1<<16 { b[i] = 1 } else { b[i] = 0 } } r.cur = cur return } func TestVeryLongSparseChunk(t *testing.T) { if testing.Short() { t.Skip("skipping sparse chunk during short test") } w, err := NewWriter(ioutil.Discard, 1) if err != nil { t.Errorf("NewWriter: %v", err) return } if _, err = io.Copy(w, &sparseReader{l: 23E8}); err != nil { t.Errorf("Compress failed: %v", err) return } } type syncBuffer struct { buf bytes.Buffer mu sync.RWMutex closed bool ready chan bool } func newSyncBuffer() *syncBuffer { return &syncBuffer{ready: make(chan bool, 1)} } func (b *syncBuffer) Read(p []byte) (n int, err error) { for { b.mu.RLock() n, err = b.buf.Read(p) b.mu.RUnlock() if n > 0 || b.closed { return } <-b.ready } } func (b *syncBuffer) signal() { select { case b.ready <- true: default: } } func (b *syncBuffer) Write(p []byte) (n int, err error) { n, err = b.buf.Write(p) b.signal() return } func (b *syncBuffer) WriteMode() { b.mu.Lock() } func (b *syncBuffer) ReadMode() { b.mu.Unlock() b.signal() } func (b *syncBuffer) Close() error { b.closed = true b.signal() return nil } func testSync(t *testing.T, level int, input []byte, name string) { if len(input) == 0 { return } t.Logf("--testSync %d, %d, %s", level, len(input), name) buf := newSyncBuffer() buf1 := new(bytes.Buffer) buf.WriteMode() w, err := NewWriter(io.MultiWriter(buf, buf1), level) if err != nil { t.Errorf("NewWriter: %v", err) return } r := NewReader(buf) // Write half the input and read back. for i := 0; i < 2; i++ { var lo, hi int if i == 0 { lo, hi = 0, (len(input)+1)/2 } else { lo, hi = (len(input)+1)/2, len(input) } t.Logf("#%d: write %d-%d", i, lo, hi) if _, err := w.Write(input[lo:hi]); err != nil { t.Errorf("testSync: write: %v", err) return } if i == 0 { if err := w.Flush(); err != nil { t.Errorf("testSync: flush: %v", err) return } } else { if err := w.Close(); err != nil { t.Errorf("testSync: close: %v", err) } } buf.ReadMode() out := make([]byte, hi-lo+1) m, err := io.ReadAtLeast(r, out, hi-lo) t.Logf("#%d: read %d", i, m) if m != hi-lo || err != nil { t.Errorf("testSync/%d (%d, %d, %s): read %d: %d, %v (%d left)", i, level, len(input), name, hi-lo, m, err, buf.buf.Len()) return } if !bytes.Equal(input[lo:hi], out[:hi-lo]) { t.Errorf("testSync/%d: read wrong bytes: %x vs %x", i, input[lo:hi], out[:hi-lo]) return } // This test originally checked that after reading // the first half of the input, there was nothing left // in the read buffer (buf.buf.Len() != 0) but that is // not necessarily the case: the write Flush may emit // some extra framing bits that are not necessary // to process to obtain the first half of the uncompressed // data. The test ran correctly most of the time, because // the background goroutine had usually read even // those extra bits by now, but it's not a useful thing to // check. buf.WriteMode() } buf.ReadMode() out := make([]byte, 10) if n, err := r.Read(out); n > 0 || err != io.EOF { t.Errorf("testSync (%d, %d, %s): final Read: %d, %v (hex: %x)", level, len(input), name, n, err, out[0:n]) } if buf.buf.Len() != 0 { t.Errorf("testSync (%d, %d, %s): extra data at end", level, len(input), name) } r.Close() // stream should work for ordinary reader too r = NewReader(buf1) out, err = ioutil.ReadAll(r) if err != nil { t.Errorf("testSync: read: %s", err) return } r.Close() if !bytes.Equal(input, out) { t.Errorf("testSync: decompress(compress(data)) != data: level=%d input=%s", level, name) } } func testToFromWithLevelAndLimit(t *testing.T, level int, input []byte, name string, limit int) { var buffer bytes.Buffer w, err := NewWriter(&buffer, level) if err != nil { t.Errorf("NewWriter: %v", err) return } w.Write(input) w.Close() if limit > 0 && buffer.Len() > limit { t.Errorf("level: %d, len(compress(data)) = %d > limit = %d", level, buffer.Len(), limit) return } if limit > 0 { t.Logf("level: %d - Size:%.2f%%, %d b\n", level, float64(buffer.Len()*100)/float64(limit), buffer.Len()) } r := NewReader(&buffer) out, err := ioutil.ReadAll(r) if err != nil { t.Errorf("read: %s", err) return } r.Close() if !bytes.Equal(input, out) { t.Errorf("decompress(compress(data)) != data: level=%d input=%s", level, name) return } testSync(t, level, input, name) } func testToFromWithLimit(t *testing.T, input []byte, name string, limit [11]int) { for i := 0; i < 10; i++ { testToFromWithLevelAndLimit(t, i, input, name, limit[i]) } testToFromWithLevelAndLimit(t, -2, input, name, limit[10]) } func TestDeflateInflate(t *testing.T) { for i, h := range deflateInflateTests { testToFromWithLimit(t, h.in, fmt.Sprintf("#%d", i), [11]int{}) } } func TestReverseBits(t *testing.T) { for _, h := range reverseBitsTests { if v := reverseBits(h.in, h.bitCount); v != h.out { t.Errorf("reverseBits(%v,%v) = %v, want %v", h.in, h.bitCount, v, h.out) } } } type deflateInflateStringTest struct { filename string label string limit [11]int // Number 11 is ConstantCompression } var deflateInflateStringTests = []deflateInflateStringTest{ { "../testdata/e.txt", "2.718281828...", [...]int{100018, 67900, 50960, 51150, 50930, 50790, 50790, 50790, 50790, 50790, 43683 + 100}, }, { "../testdata/Mark.Twain-Tom.Sawyer.txt", "Mark.Twain-Tom.Sawyer", [...]int{387999, 185000, 182361, 179974, 174124, 168819, 162936, 160506, 160295, 160295, 233460 + 100}, }, } func TestDeflateInflateString(t *testing.T) { for _, test := range deflateInflateStringTests { gold, err := ioutil.ReadFile(test.filename) if err != nil { t.Error(err) } // Remove returns that may be present on Windows neutral := strings.Map(func(r rune) rune { if r != '\r' { return r } return -1 }, string(gold)) testToFromWithLimit(t, []byte(neutral), test.label, test.limit) if testing.Short() { break } } } func TestReaderDict(t *testing.T) { const ( dict = "hello world" text = "hello again world" ) var b bytes.Buffer w, err := NewWriter(&b, 5) if err != nil { t.Fatalf("NewWriter: %v", err) } w.Write([]byte(dict)) w.Flush() b.Reset() w.Write([]byte(text)) w.Close() r := NewReaderDict(&b, []byte(dict)) data, err := ioutil.ReadAll(r) if err != nil { t.Fatal(err) } if string(data) != "hello again world" { t.Fatalf("read returned %q want %q", string(data), text) } } func TestWriterDict(t *testing.T) { const ( dict = "hello world Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." text = "hello world Lorem ipsum dolor sit amet" ) // This test is sensitive to algorithm changes that skip // data in favour of speed. Higher levels are less prone to this // so we test level 4-9. for l := 4; l < 9; l++ { var b bytes.Buffer w, err := NewWriter(&b, l) if err != nil { t.Fatalf("level %d, NewWriter: %v", l, err) } w.Write([]byte(dict)) w.Flush() b.Reset() w.Write([]byte(text)) w.Close() var b1 bytes.Buffer w, _ = NewWriterDict(&b1, l, []byte(dict)) w.Write([]byte(text)) w.Close() if !bytes.Equal(b1.Bytes(), b.Bytes()) { t.Errorf("level %d, writer wrote\n%v\n want\n%v", l, b1.Bytes(), b.Bytes()) } } } // See http://code.google.com/p/go/issues/detail?id=2508 func TestRegression2508(t *testing.T) { if testing.Short() { t.Logf("test disabled with -short") return } w, err := NewWriter(ioutil.Discard, 1) if err != nil { t.Fatalf("NewWriter: %v", err) } buf := make([]byte, 1024) for i := 0; i < 131072; i++ { if _, err := w.Write(buf); err != nil { t.Fatalf("writer failed: %v", err) } } w.Close() } func TestWriterReset(t *testing.T) { for level := -2; level <= 9; level++ { if level == -1 { level++ } if testing.Short() && level > 1 { break } w, err := NewWriter(ioutil.Discard, level) if err != nil { t.Fatalf("NewWriter: %v", err) } buf := []byte("hello world") for i := 0; i < 1024; i++ { w.Write(buf) } w.Reset(ioutil.Discard) wref, err := NewWriter(ioutil.Discard, level) if err != nil { t.Fatalf("NewWriter: %v", err) } // DeepEqual doesn't compare functions. w.d.fill, wref.d.fill = nil, nil w.d.step, wref.d.step = nil, nil w.d.bulkHasher, wref.d.bulkHasher = nil, nil w.d.snap, wref.d.snap = nil, nil // hashMatch is always overwritten when used. copy(w.d.hashMatch[:], wref.d.hashMatch[:]) if w.d.tokens.n != 0 { t.Errorf("level %d Writer not reset after Reset. %d tokens were present", level, w.d.tokens.n) } // As long as the length is 0, we don't care about the content. w.d.tokens = wref.d.tokens // We don't care if there are values in the window, as long as it is at d.index is 0 w.d.window = wref.d.window if !reflect.DeepEqual(w, wref) { t.Errorf("level %d Writer not reset after Reset", level) } } testResetOutput(t, func(w io.Writer) (*Writer, error) { return NewWriter(w, NoCompression) }) testResetOutput(t, func(w io.Writer) (*Writer, error) { return NewWriter(w, DefaultCompression) }) testResetOutput(t, func(w io.Writer) (*Writer, error) { return NewWriter(w, BestCompression) }) testResetOutput(t, func(w io.Writer) (*Writer, error) { return NewWriter(w, ConstantCompression) }) dict := []byte("we are the world") testResetOutput(t, func(w io.Writer) (*Writer, error) { return NewWriterDict(w, NoCompression, dict) }) testResetOutput(t, func(w io.Writer) (*Writer, error) { return NewWriterDict(w, DefaultCompression, dict) }) testResetOutput(t, func(w io.Writer) (*Writer, error) { return NewWriterDict(w, BestCompression, dict) }) testResetOutput(t, func(w io.Writer) (*Writer, error) { return NewWriterDict(w, ConstantCompression, dict) }) } func testResetOutput(t *testing.T, newWriter func(w io.Writer) (*Writer, error)) { buf := new(bytes.Buffer) w, err := newWriter(buf) if err != nil { t.Fatalf("NewWriter: %v", err) } b := []byte("hello world") for i := 0; i < 1024; i++ { w.Write(b) } w.Close() out1 := buf.Bytes() buf2 := new(bytes.Buffer) w.Reset(buf2) for i := 0; i < 1024; i++ { w.Write(b) } w.Close() out2 := buf2.Bytes() if len(out1) != len(out2) { t.Errorf("got %d, expected %d bytes", len(out2), len(out1)) } if bytes.Compare(out1, out2) != 0 { mm := 0 for i, b := range out1[:len(out2)] { if b != out2[i] { t.Errorf("mismatch index %d: %02x, expected %02x", i, out2[i], b) } mm++ if mm == 10 { t.Fatal("Stopping") } } } t.Logf("got %d bytes", len(out1)) } // TestBestSpeed tests that round-tripping through deflate and then inflate // recovers the original input. The Write sizes are near the thresholds in the // compressor.encSpeed method (0, 16, 128), as well as near maxStoreBlockSize // (65535). func TestBestSpeed(t *testing.T) { abc := make([]byte, 128) for i := range abc { abc[i] = byte(i) } abcabc := bytes.Repeat(abc, 131072/len(abc)) var want []byte testCases := [][]int{ {65536, 0}, {65536, 1}, {65536, 1, 256}, {65536, 1, 65536}, {65536, 14}, {65536, 15}, {65536, 16}, {65536, 16, 256}, {65536, 16, 65536}, {65536, 127}, {65536, 128}, {65536, 128, 256}, {65536, 128, 65536}, {65536, 129}, {65536, 65536, 256}, {65536, 65536, 65536}, } for i, tc := range testCases { for _, firstN := range []int{1, 65534, 65535, 65536, 65537, 131072} { tc[0] = firstN outer: for _, flush := range []bool{false, true} { buf := new(bytes.Buffer) want = want[:0] w, err := NewWriter(buf, BestSpeed) if err != nil { t.Errorf("i=%d, firstN=%d, flush=%t: NewWriter: %v", i, firstN, flush, err) continue } for _, n := range tc { want = append(want, abcabc[:n]...) if _, err := w.Write(abcabc[:n]); err != nil { t.Errorf("i=%d, firstN=%d, flush=%t: Write: %v", i, firstN, flush, err) continue outer } if !flush { continue } if err := w.Flush(); err != nil { t.Errorf("i=%d, firstN=%d, flush=%t: Flush: %v", i, firstN, flush, err) continue outer } } if err := w.Close(); err != nil { t.Errorf("i=%d, firstN=%d, flush=%t: Close: %v", i, firstN, flush, err) continue } r := NewReader(buf) got, err := ioutil.ReadAll(r) if err != nil { t.Errorf("i=%d, firstN=%d, flush=%t: ReadAll: %v", i, firstN, flush, err) continue } r.Close() if !bytes.Equal(got, want) { t.Errorf("i=%d, firstN=%d, flush=%t: corruption during deflate-then-inflate", i, firstN, flush) continue } } } } } compress-1.2.1/flate/dict_decoder.go000066400000000000000000000140411303637052300174020ustar00rootroot00000000000000// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate // dictDecoder implements the LZ77 sliding dictionary as used in decompression. // LZ77 decompresses data through sequences of two forms of commands: // // * Literal insertions: Runs of one or more symbols are inserted into the data // stream as is. This is accomplished through the writeByte method for a // single symbol, or combinations of writeSlice/writeMark for multiple symbols. // Any valid stream must start with a literal insertion if no preset dictionary // is used. // // * Backward copies: Runs of one or more symbols are copied from previously // emitted data. Backward copies come as the tuple (dist, length) where dist // determines how far back in the stream to copy from and length determines how // many bytes to copy. Note that it is valid for the length to be greater than // the distance. Since LZ77 uses forward copies, that situation is used to // perform a form of run-length encoding on repeated runs of symbols. // The writeCopy and tryWriteCopy are used to implement this command. // // For performance reasons, this implementation performs little to no sanity // checks about the arguments. As such, the invariants documented for each // method call must be respected. type dictDecoder struct { hist []byte // Sliding window history // Invariant: 0 <= rdPos <= wrPos <= len(hist) wrPos int // Current output position in buffer rdPos int // Have emitted hist[:rdPos] already full bool // Has a full window length been written yet? } // init initializes dictDecoder to have a sliding window dictionary of the given // size. If a preset dict is provided, it will initialize the dictionary with // the contents of dict. func (dd *dictDecoder) init(size int, dict []byte) { *dd = dictDecoder{hist: dd.hist} if cap(dd.hist) < size { dd.hist = make([]byte, size) } dd.hist = dd.hist[:size] if len(dict) > len(dd.hist) { dict = dict[len(dict)-len(dd.hist):] } dd.wrPos = copy(dd.hist, dict) if dd.wrPos == len(dd.hist) { dd.wrPos = 0 dd.full = true } dd.rdPos = dd.wrPos } // histSize reports the total amount of historical data in the dictionary. func (dd *dictDecoder) histSize() int { if dd.full { return len(dd.hist) } return dd.wrPos } // availRead reports the number of bytes that can be flushed by readFlush. func (dd *dictDecoder) availRead() int { return dd.wrPos - dd.rdPos } // availWrite reports the available amount of output buffer space. func (dd *dictDecoder) availWrite() int { return len(dd.hist) - dd.wrPos } // writeSlice returns a slice of the available buffer to write data to. // // This invariant will be kept: len(s) <= availWrite() func (dd *dictDecoder) writeSlice() []byte { return dd.hist[dd.wrPos:] } // writeMark advances the writer pointer by cnt. // // This invariant must be kept: 0 <= cnt <= availWrite() func (dd *dictDecoder) writeMark(cnt int) { dd.wrPos += cnt } // writeByte writes a single byte to the dictionary. // // This invariant must be kept: 0 < availWrite() func (dd *dictDecoder) writeByte(c byte) { dd.hist[dd.wrPos] = c dd.wrPos++ } // writeCopy copies a string at a given (dist, length) to the output. // This returns the number of bytes copied and may be less than the requested // length if the available space in the output buffer is too small. // // This invariant must be kept: 0 < dist <= histSize() func (dd *dictDecoder) writeCopy(dist, length int) int { dstBase := dd.wrPos dstPos := dstBase srcPos := dstPos - dist endPos := dstPos + length if endPos > len(dd.hist) { endPos = len(dd.hist) } // Copy non-overlapping section after destination position. // // This section is non-overlapping in that the copy length for this section // is always less than or equal to the backwards distance. This can occur // if a distance refers to data that wraps-around in the buffer. // Thus, a backwards copy is performed here; that is, the exact bytes in // the source prior to the copy is placed in the destination. if srcPos < 0 { srcPos += len(dd.hist) dstPos += copy(dd.hist[dstPos:endPos], dd.hist[srcPos:]) srcPos = 0 } // Copy possibly overlapping section before destination position. // // This section can overlap if the copy length for this section is larger // than the backwards distance. This is allowed by LZ77 so that repeated // strings can be succinctly represented using (dist, length) pairs. // Thus, a forwards copy is performed here; that is, the bytes copied is // possibly dependent on the resulting bytes in the destination as the copy // progresses along. This is functionally equivalent to the following: // // for i := 0; i < endPos-dstPos; i++ { // dd.hist[dstPos+i] = dd.hist[srcPos+i] // } // dstPos = endPos // for dstPos < endPos { dstPos += copy(dd.hist[dstPos:endPos], dd.hist[srcPos:dstPos]) } dd.wrPos = dstPos return dstPos - dstBase } // tryWriteCopy tries to copy a string at a given (distance, length) to the // output. This specialized version is optimized for short distances. // // This method is designed to be inlined for performance reasons. // // This invariant must be kept: 0 < dist <= histSize() func (dd *dictDecoder) tryWriteCopy(dist, length int) int { dstPos := dd.wrPos endPos := dstPos + length if dstPos < dist || endPos > len(dd.hist) { return 0 } dstBase := dstPos srcPos := dstPos - dist // Copy possibly overlapping section before destination position. loop: dstPos += copy(dd.hist[dstPos:endPos], dd.hist[srcPos:dstPos]) if dstPos < endPos { goto loop // Avoid for-loop so that this function can be inlined } dd.wrPos = dstPos return dstPos - dstBase } // readFlush returns a slice of the historical buffer that is ready to be // emitted to the user. The data returned by readFlush must be fully consumed // before calling any other dictDecoder methods. func (dd *dictDecoder) readFlush() []byte { toRead := dd.hist[dd.rdPos:dd.wrPos] dd.rdPos = dd.wrPos if dd.wrPos == len(dd.hist) { dd.wrPos, dd.rdPos = 0, 0 dd.full = true } return toRead } compress-1.2.1/flate/dict_decoder_test.go000066400000000000000000000106071303637052300204450ustar00rootroot00000000000000// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import ( "bytes" "strings" "testing" ) func TestDictDecoder(t *testing.T) { const ( abc = "ABC\n" fox = "The quick brown fox jumped over the lazy dog!\n" poem = "The Road Not Taken\nRobert Frost\n" + "\n" + "Two roads diverged in a yellow wood,\n" + "And sorry I could not travel both\n" + "And be one traveler, long I stood\n" + "And looked down one as far as I could\n" + "To where it bent in the undergrowth;\n" + "\n" + "Then took the other, as just as fair,\n" + "And having perhaps the better claim,\n" + "Because it was grassy and wanted wear;\n" + "Though as for that the passing there\n" + "Had worn them really about the same,\n" + "\n" + "And both that morning equally lay\n" + "In leaves no step had trodden black.\n" + "Oh, I kept the first for another day!\n" + "Yet knowing how way leads on to way,\n" + "I doubted if I should ever come back.\n" + "\n" + "I shall be telling this with a sigh\n" + "Somewhere ages and ages hence:\n" + "Two roads diverged in a wood, and I-\n" + "I took the one less traveled by,\n" + "And that has made all the difference.\n" ) var poemRefs = []struct { dist int // Backward distance (0 if this is an insertion) length int // Length of copy or insertion }{ {0, 38}, {33, 3}, {0, 48}, {79, 3}, {0, 11}, {34, 5}, {0, 6}, {23, 7}, {0, 8}, {50, 3}, {0, 2}, {69, 3}, {34, 5}, {0, 4}, {97, 3}, {0, 4}, {43, 5}, {0, 6}, {7, 4}, {88, 7}, {0, 12}, {80, 3}, {0, 2}, {141, 4}, {0, 1}, {196, 3}, {0, 3}, {157, 3}, {0, 6}, {181, 3}, {0, 2}, {23, 3}, {77, 3}, {28, 5}, {128, 3}, {110, 4}, {70, 3}, {0, 4}, {85, 6}, {0, 2}, {182, 6}, {0, 4}, {133, 3}, {0, 7}, {47, 5}, {0, 20}, {112, 5}, {0, 1}, {58, 3}, {0, 8}, {59, 3}, {0, 4}, {173, 3}, {0, 5}, {114, 3}, {0, 4}, {92, 5}, {0, 2}, {71, 3}, {0, 2}, {76, 5}, {0, 1}, {46, 3}, {96, 4}, {130, 4}, {0, 3}, {360, 3}, {0, 3}, {178, 5}, {0, 7}, {75, 3}, {0, 3}, {45, 6}, {0, 6}, {299, 6}, {180, 3}, {70, 6}, {0, 1}, {48, 3}, {66, 4}, {0, 3}, {47, 5}, {0, 9}, {325, 3}, {0, 1}, {359, 3}, {318, 3}, {0, 2}, {199, 3}, {0, 1}, {344, 3}, {0, 3}, {248, 3}, {0, 10}, {310, 3}, {0, 3}, {93, 6}, {0, 3}, {252, 3}, {157, 4}, {0, 2}, {273, 5}, {0, 14}, {99, 4}, {0, 1}, {464, 4}, {0, 2}, {92, 4}, {495, 3}, {0, 1}, {322, 4}, {16, 4}, {0, 3}, {402, 3}, {0, 2}, {237, 4}, {0, 2}, {432, 4}, {0, 1}, {483, 5}, {0, 2}, {294, 4}, {0, 2}, {306, 3}, {113, 5}, {0, 1}, {26, 4}, {164, 3}, {488, 4}, {0, 1}, {542, 3}, {248, 6}, {0, 5}, {205, 3}, {0, 8}, {48, 3}, {449, 6}, {0, 2}, {192, 3}, {328, 4}, {9, 5}, {433, 3}, {0, 3}, {622, 25}, {615, 5}, {46, 5}, {0, 2}, {104, 3}, {475, 10}, {549, 3}, {0, 4}, {597, 8}, {314, 3}, {0, 1}, {473, 6}, {317, 5}, {0, 1}, {400, 3}, {0, 3}, {109, 3}, {151, 3}, {48, 4}, {0, 4}, {125, 3}, {108, 3}, {0, 2}, } var got, want bytes.Buffer var dd dictDecoder dd.init(1<<11, nil) var writeCopy = func(dist, length int) { for length > 0 { cnt := dd.tryWriteCopy(dist, length) if cnt == 0 { cnt = dd.writeCopy(dist, length) } length -= cnt if dd.availWrite() == 0 { got.Write(dd.readFlush()) } } } var writeString = func(str string) { for len(str) > 0 { cnt := copy(dd.writeSlice(), str) str = str[cnt:] dd.writeMark(cnt) if dd.availWrite() == 0 { got.Write(dd.readFlush()) } } } writeString(".") want.WriteByte('.') str := poem for _, ref := range poemRefs { if ref.dist == 0 { writeString(str[:ref.length]) } else { writeCopy(ref.dist, ref.length) } str = str[ref.length:] } want.WriteString(poem) writeCopy(dd.histSize(), 33) want.Write(want.Bytes()[:33]) writeString(abc) writeCopy(len(abc), 59*len(abc)) want.WriteString(strings.Repeat(abc, 60)) writeString(fox) writeCopy(len(fox), 9*len(fox)) want.WriteString(strings.Repeat(fox, 10)) writeString(".") writeCopy(1, 9) want.WriteString(strings.Repeat(".", 10)) writeString(strings.ToUpper(poem)) writeCopy(len(poem), 7*len(poem)) want.WriteString(strings.Repeat(strings.ToUpper(poem), 8)) writeCopy(dd.histSize(), 10) want.Write(want.Bytes()[want.Len()-dd.histSize():][:10]) got.Write(dd.readFlush()) if got.String() != want.String() { t.Errorf("final string mismatch:\ngot %q\nwant %q", got.String(), want.String()) } } compress-1.2.1/flate/flate_test.go000066400000000000000000000211611303637052300171250ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // This test tests some internals of the flate package. // The tests in package compress/gzip serve as the // end-to-end test of the decompressor. package flate import ( "bytes" "encoding/hex" "io/ioutil" "testing" ) // The following test should not panic. func TestIssue5915(t *testing.T) { bits := []int{4, 0, 0, 6, 4, 3, 2, 3, 3, 4, 4, 5, 0, 0, 0, 0, 5, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 6, 0, 11, 0, 8, 0, 6, 6, 10, 8} var h huffmanDecoder if h.init(bits) { t.Fatalf("Given sequence of bits is bad, and should not succeed.") } } // The following test should not panic. func TestIssue5962(t *testing.T) { bits := []int{4, 0, 0, 6, 4, 3, 2, 3, 3, 4, 4, 5, 0, 0, 0, 0, 5, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11} var h huffmanDecoder if h.init(bits) { t.Fatalf("Given sequence of bits is bad, and should not succeed.") } } // The following test should not panic. func TestIssue6255(t *testing.T) { bits1 := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11} bits2 := []int{11, 13} var h huffmanDecoder if !h.init(bits1) { t.Fatalf("Given sequence of bits is good and should succeed.") } if h.init(bits2) { t.Fatalf("Given sequence of bits is bad and should not succeed.") } } func TestInvalidEncoding(t *testing.T) { // Initialize Huffman decoder to recognize "0". var h huffmanDecoder if !h.init([]int{1}) { t.Fatal("Failed to initialize Huffman decoder") } // Initialize decompressor with invalid Huffman coding. var f decompressor f.r = bytes.NewReader([]byte{0xff}) _, err := f.huffSym(&h) if err == nil { t.Fatal("Should have rejected invalid bit sequence") } } func TestInvalidBits(t *testing.T) { oversubscribed := []int{1, 2, 3, 4, 4, 5} incomplete := []int{1, 2, 4, 4} var h huffmanDecoder if h.init(oversubscribed) { t.Fatal("Should reject oversubscribed bit-length set") } if h.init(incomplete) { t.Fatal("Should reject incomplete bit-length set") } } func TestStreams(t *testing.T) { // To verify any of these hexstrings as valid or invalid flate streams // according to the C zlib library, you can use the Python wrapper library: // >>> hex_string = "010100feff11" // >>> import zlib // >>> zlib.decompress(hex_string.decode("hex"), -15) # Negative means raw DEFLATE // '\x11' testCases := []struct { desc string // Description of the stream stream string // Hexstring of the input DEFLATE stream want string // Expected result. Use "fail" to expect failure }{{ "degenerate HCLenTree", "05e0010000000000100000000000000000000000000000000000000000000000" + "00000000000000000004", "fail", }, { "complete HCLenTree, empty HLitTree, empty HDistTree", "05e0010400000000000000000000000000000000000000000000000000000000" + "00000000000000000010", "fail", }, { "empty HCLenTree", "05e0010000000000000000000000000000000000000000000000000000000000" + "00000000000000000010", "fail", }, { "complete HCLenTree, complete HLitTree, empty HDistTree, use missing HDist symbol", "000100feff000de0010400000000100000000000000000000000000000000000" + "0000000000000000000000000000002c", "fail", }, { "complete HCLenTree, complete HLitTree, degenerate HDistTree, use missing HDist symbol", "000100feff000de0010000000000000000000000000000000000000000000000" + "00000000000000000610000000004070", "fail", }, { "complete HCLenTree, empty HLitTree, empty HDistTree", "05e0010400000000100400000000000000000000000000000000000000000000" + "0000000000000000000000000008", "fail", }, { "complete HCLenTree, empty HLitTree, degenerate HDistTree", "05e0010400000000100400000000000000000000000000000000000000000000" + "0000000000000000000800000008", "fail", }, { "complete HCLenTree, degenerate HLitTree, degenerate HDistTree, use missing HLit symbol", "05e0010400000000100000000000000000000000000000000000000000000000" + "0000000000000000001c", "fail", }, { "complete HCLenTree, complete HLitTree, too large HDistTree", "edff870500000000200400000000000000000000000000000000000000000000" + "000000000000000000080000000000000004", "fail", }, { "complete HCLenTree, complete HLitTree, empty HDistTree, excessive repeater code", "edfd870500000000200400000000000000000000000000000000000000000000" + "000000000000000000e8b100", "fail", }, { "complete HCLenTree, complete HLitTree, empty HDistTree of normal length 30", "05fd01240000000000f8ffffffffffffffffffffffffffffffffffffffffffff" + "ffffffffffffffffff07000000fe01", "", }, { "complete HCLenTree, complete HLitTree, empty HDistTree of excessive length 31", "05fe01240000000000f8ffffffffffffffffffffffffffffffffffffffffffff" + "ffffffffffffffffff07000000fc03", "fail", }, { "complete HCLenTree, over-subscribed HLitTree, empty HDistTree", "05e001240000000000fcffffffffffffffffffffffffffffffffffffffffffff" + "ffffffffffffffffff07f00f", "fail", }, { "complete HCLenTree, under-subscribed HLitTree, empty HDistTree", "05e001240000000000fcffffffffffffffffffffffffffffffffffffffffffff" + "fffffffffcffffffff07f00f", "fail", }, { "complete HCLenTree, complete HLitTree with single code, empty HDistTree", "05e001240000000000f8ffffffffffffffffffffffffffffffffffffffffffff" + "ffffffffffffffffff07f00f", "01", }, { "complete HCLenTree, complete HLitTree with multiple codes, empty HDistTree", "05e301240000000000f8ffffffffffffffffffffffffffffffffffffffffffff" + "ffffffffffffffffff07807f", "01", }, { "complete HCLenTree, complete HLitTree, degenerate HDistTree, use valid HDist symbol", "000100feff000de0010400000000100000000000000000000000000000000000" + "0000000000000000000000000000003c", "00000000", }, { "complete HCLenTree, degenerate HLitTree, degenerate HDistTree", "05e0010400000000100000000000000000000000000000000000000000000000" + "0000000000000000000c", "", }, { "complete HCLenTree, degenerate HLitTree, empty HDistTree", "05e0010400000000100000000000000000000000000000000000000000000000" + "00000000000000000004", "", }, { "complete HCLenTree, complete HLitTree, empty HDistTree, spanning repeater code", "edfd870500000000200400000000000000000000000000000000000000000000" + "000000000000000000e8b000", "", }, { "complete HCLenTree with length codes, complete HLitTree, empty HDistTree", "ede0010400000000100000000000000000000000000000000000000000000000" + "0000000000000000000400004000", "", }, { "complete HCLenTree, complete HLitTree, degenerate HDistTree, use valid HLit symbol 284 with count 31", "000100feff00ede0010400000000100000000000000000000000000000000000" + "000000000000000000000000000000040000407f00", "0000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000000000000000000000000000000000000000000000000000" + "000000", }, { "complete HCLenTree, complete HLitTree, degenerate HDistTree, use valid HLit and HDist symbols", "0cc2010d00000082b0ac4aff0eb07d27060000ffff", "616263616263", }, { "fixed block, use reserved symbol 287", "33180700", "fail", }, { "raw block", "010100feff11", "11", }, { "issue 10426 - over-subscribed HCLenTree causes a hang", "344c4a4e494d4b070000ff2e2eff2e2e2e2e2eff", "fail", }, { "issue 11030 - empty HDistTree unexpectedly leads to error", "05c0070600000080400fff37a0ca", "", }, { "issue 11033 - empty HDistTree unexpectedly leads to error", "050fb109c020cca5d017dcbca044881ee1034ec149c8980bbc413c2ab35be9dc" + "b1473449922449922411202306ee97b0383a521b4ffdcf3217f9f7d3adb701", "3130303634342068652e706870005d05355f7ed957ff084a90925d19e3ebc6d0" + "c6d7", }} for i, tc := range testCases { data, err := hex.DecodeString(tc.stream) if err != nil { t.Fatal(err) } data, err = ioutil.ReadAll(NewReader(bytes.NewReader(data))) if tc.want == "fail" { if err == nil { t.Errorf("#%d (%s): got nil error, want non-nil", i, tc.desc) } } else { if err != nil { t.Errorf("#%d (%s): %v", i, tc.desc, err) continue } if got := hex.EncodeToString(data); got != tc.want { t.Errorf("#%d (%s):\ngot %q\nwant %q", i, tc.desc, got, tc.want) } } } } compress-1.2.1/flate/gen.go000066400000000000000000000155561303637052300155570ustar00rootroot00000000000000// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build ignore // This program generates fixedhuff.go // Invoke as // // go run gen.go -output fixedhuff.go package main import ( "bytes" "flag" "fmt" "go/format" "io/ioutil" "log" ) var filename = flag.String("output", "fixedhuff.go", "output file name") const maxCodeLen = 16 // Note: the definition of the huffmanDecoder struct is copied from // inflate.go, as it is private to the implementation. // chunk & 15 is number of bits // chunk >> 4 is value, including table link const ( huffmanChunkBits = 9 huffmanNumChunks = 1 << huffmanChunkBits huffmanCountMask = 15 huffmanValueShift = 4 ) type huffmanDecoder struct { min int // the minimum code length chunks [huffmanNumChunks]uint32 // chunks as described above links [][]uint32 // overflow links linkMask uint32 // mask the width of the link table } // Initialize Huffman decoding tables from array of code lengths. // Following this function, h is guaranteed to be initialized into a complete // tree (i.e., neither over-subscribed nor under-subscribed). The exception is a // degenerate case where the tree has only a single symbol with length 1. Empty // trees are permitted. func (h *huffmanDecoder) init(bits []int) bool { // Sanity enables additional runtime tests during Huffman // table construction. It's intended to be used during // development to supplement the currently ad-hoc unit tests. const sanity = false if h.min != 0 { *h = huffmanDecoder{} } // Count number of codes of each length, // compute min and max length. var count [maxCodeLen]int var min, max int for _, n := range bits { if n == 0 { continue } if min == 0 || n < min { min = n } if n > max { max = n } count[n]++ } // Empty tree. The decompressor.huffSym function will fail later if the tree // is used. Technically, an empty tree is only valid for the HDIST tree and // not the HCLEN and HLIT tree. However, a stream with an empty HCLEN tree // is guaranteed to fail since it will attempt to use the tree to decode the // codes for the HLIT and HDIST trees. Similarly, an empty HLIT tree is // guaranteed to fail later since the compressed data section must be // composed of at least one symbol (the end-of-block marker). if max == 0 { return true } code := 0 var nextcode [maxCodeLen]int for i := min; i <= max; i++ { code <<= 1 nextcode[i] = code code += count[i] } // Check that the coding is complete (i.e., that we've // assigned all 2-to-the-max possible bit sequences). // Exception: To be compatible with zlib, we also need to // accept degenerate single-code codings. See also // TestDegenerateHuffmanCoding. if code != 1< huffmanChunkBits { numLinks := 1 << (uint(max) - huffmanChunkBits) h.linkMask = uint32(numLinks - 1) // create link tables link := nextcode[huffmanChunkBits+1] >> 1 h.links = make([][]uint32, huffmanNumChunks-link) for j := uint(link); j < huffmanNumChunks; j++ { reverse := int(reverseByte[j>>8]) | int(reverseByte[j&0xff])<<8 reverse >>= uint(16 - huffmanChunkBits) off := j - uint(link) if sanity && h.chunks[reverse] != 0 { panic("impossible: overwriting existing chunk") } h.chunks[reverse] = uint32(off<>8]) | int(reverseByte[code&0xff])<<8 reverse >>= uint(16 - n) if n <= huffmanChunkBits { for off := reverse; off < len(h.chunks); off += 1 << uint(n) { // We should never need to overwrite // an existing chunk. Also, 0 is // never a valid chunk, because the // lower 4 "count" bits should be // between 1 and 15. if sanity && h.chunks[off] != 0 { panic("impossible: overwriting existing chunk") } h.chunks[off] = chunk } } else { j := reverse & (huffmanNumChunks - 1) if sanity && h.chunks[j]&huffmanCountMask != huffmanChunkBits+1 { // Longer codes should have been // associated with a link table above. panic("impossible: not an indirect chunk") } value := h.chunks[j] >> huffmanValueShift linktab := h.links[value] reverse >>= huffmanChunkBits for off := reverse; off < len(linktab); off += 1 << uint(n-huffmanChunkBits) { if sanity && linktab[off] != 0 { panic("impossible: overwriting existing chunk") } linktab[off] = chunk } } } if sanity { // Above we've sanity checked that we never overwrote // an existing entry. Here we additionally check that // we filled the tables completely. for i, chunk := range h.chunks { if chunk == 0 { // As an exception, in the degenerate // single-code case, we allow odd // chunks to be missing. if code == 1 && i%2 == 1 { continue } panic("impossible: missing chunk") } } for _, linktab := range h.links { for _, chunk := range linktab { if chunk == 0 { panic("impossible: missing chunk") } } } } return true } func main() { flag.Parse() var h huffmanDecoder var bits [288]int initReverseByte() for i := 0; i < 144; i++ { bits[i] = 8 } for i := 144; i < 256; i++ { bits[i] = 9 } for i := 256; i < 280; i++ { bits[i] = 7 } for i := 280; i < 288; i++ { bits[i] = 8 } h.init(bits[:]) if h.links != nil { log.Fatal("Unexpected links table in fixed Huffman decoder") } var buf bytes.Buffer fmt.Fprintf(&buf, `// Copyright 2013 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file.`+"\n\n") fmt.Fprintln(&buf, "package flate") fmt.Fprintln(&buf) fmt.Fprintln(&buf, "// autogenerated by go run gen.go -output fixedhuff.go, DO NOT EDIT") fmt.Fprintln(&buf) fmt.Fprintln(&buf, "var fixedHuffmanDecoder = huffmanDecoder{") fmt.Fprintf(&buf, "\t%d,\n", h.min) fmt.Fprintln(&buf, "\t[huffmanNumChunks]uint32{") for i := 0; i < huffmanNumChunks; i++ { if i&7 == 0 { fmt.Fprintf(&buf, "\t\t") } else { fmt.Fprintf(&buf, " ") } fmt.Fprintf(&buf, "0x%04x,", h.chunks[i]) if i&7 == 7 { fmt.Fprintln(&buf) } } fmt.Fprintln(&buf, "\t},") fmt.Fprintln(&buf, "\tnil, 0,") fmt.Fprintln(&buf, "}") data, err := format.Source(buf.Bytes()) if err != nil { log.Fatal(err) } err = ioutil.WriteFile(*filename, data, 0644) if err != nil { log.Fatal(err) } } var reverseByte [256]byte func initReverseByte() { for x := 0; x < 256; x++ { var result byte for i := uint(0); i < 8; i++ { result |= byte(((x >> i) & 1) << (7 - i)) } reverseByte[x] = result } } compress-1.2.1/flate/huffman_bit_writer.go000066400000000000000000000446521303637052300206630ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import ( "io" ) const ( // The largest offset code. offsetCodeCount = 30 // The special code used to mark the end of a block. endBlockMarker = 256 // The first length code. lengthCodesStart = 257 // The number of codegen codes. codegenCodeCount = 19 badCode = 255 // bufferFlushSize indicates the buffer size // after which bytes are flushed to the writer. // Should preferably be a multiple of 6, since // we accumulate 6 bytes between writes to the buffer. bufferFlushSize = 240 // bufferSize is the actual output byte buffer size. // It must have additional headroom for a flush // which can contain up to 8 bytes. bufferSize = bufferFlushSize + 8 ) // The number of extra bits needed by length code X - LENGTH_CODES_START. var lengthExtraBits = []int8{ /* 257 */ 0, 0, 0, /* 260 */ 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, /* 270 */ 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, /* 280 */ 4, 5, 5, 5, 5, 0, } // The length indicated by length code X - LENGTH_CODES_START. var lengthBase = []uint32{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 255, } // offset code word extra bits. var offsetExtraBits = []int8{ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* extended window */ 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, } var offsetBase = []uint32{ /* normal deflate */ 0x000000, 0x000001, 0x000002, 0x000003, 0x000004, 0x000006, 0x000008, 0x00000c, 0x000010, 0x000018, 0x000020, 0x000030, 0x000040, 0x000060, 0x000080, 0x0000c0, 0x000100, 0x000180, 0x000200, 0x000300, 0x000400, 0x000600, 0x000800, 0x000c00, 0x001000, 0x001800, 0x002000, 0x003000, 0x004000, 0x006000, /* extended window */ 0x008000, 0x00c000, 0x010000, 0x018000, 0x020000, 0x030000, 0x040000, 0x060000, 0x080000, 0x0c0000, 0x100000, 0x180000, 0x200000, 0x300000, } // The odd order in which the codegen code sizes are written. var codegenOrder = []uint32{16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15} type huffmanBitWriter struct { // writer is the underlying writer. // Do not use it directly; use the write method, which ensures // that Write errors are sticky. writer io.Writer // Data waiting to be written is bytes[0:nbytes] // and then the low nbits of bits. bits uint64 nbits uint bytes [bufferSize]byte codegenFreq [codegenCodeCount]int32 nbytes int literalFreq []int32 offsetFreq []int32 codegen []uint8 literalEncoding *huffmanEncoder offsetEncoding *huffmanEncoder codegenEncoding *huffmanEncoder err error } func newHuffmanBitWriter(w io.Writer) *huffmanBitWriter { return &huffmanBitWriter{ writer: w, literalFreq: make([]int32, maxNumLit), offsetFreq: make([]int32, offsetCodeCount), codegen: make([]uint8, maxNumLit+offsetCodeCount+1), literalEncoding: newHuffmanEncoder(maxNumLit), codegenEncoding: newHuffmanEncoder(codegenCodeCount), offsetEncoding: newHuffmanEncoder(offsetCodeCount), } } func (w *huffmanBitWriter) reset(writer io.Writer) { w.writer = writer w.bits, w.nbits, w.nbytes, w.err = 0, 0, 0, nil w.bytes = [bufferSize]byte{} } func (w *huffmanBitWriter) flush() { if w.err != nil { w.nbits = 0 return } n := w.nbytes for w.nbits != 0 { w.bytes[n] = byte(w.bits) w.bits >>= 8 if w.nbits > 8 { // Avoid underflow w.nbits -= 8 } else { w.nbits = 0 } n++ } w.bits = 0 w.write(w.bytes[:n]) w.nbytes = 0 } func (w *huffmanBitWriter) write(b []byte) { if w.err != nil { return } _, w.err = w.writer.Write(b) } func (w *huffmanBitWriter) writeBits(b int32, nb uint) { if w.err != nil { return } w.bits |= uint64(b) << w.nbits w.nbits += nb if w.nbits >= 48 { bits := w.bits w.bits >>= 48 w.nbits -= 48 n := w.nbytes bytes := w.bytes[n : n+6] bytes[0] = byte(bits) bytes[1] = byte(bits >> 8) bytes[2] = byte(bits >> 16) bytes[3] = byte(bits >> 24) bytes[4] = byte(bits >> 32) bytes[5] = byte(bits >> 40) n += 6 if n >= bufferFlushSize { w.write(w.bytes[:n]) n = 0 } w.nbytes = n } } func (w *huffmanBitWriter) writeBytes(bytes []byte) { if w.err != nil { return } n := w.nbytes if w.nbits&7 != 0 { w.err = InternalError("writeBytes with unfinished bits") return } for w.nbits != 0 { w.bytes[n] = byte(w.bits) w.bits >>= 8 w.nbits -= 8 n++ } if n != 0 { w.write(w.bytes[:n]) } w.nbytes = 0 w.write(bytes) } // RFC 1951 3.2.7 specifies a special run-length encoding for specifying // the literal and offset lengths arrays (which are concatenated into a single // array). This method generates that run-length encoding. // // The result is written into the codegen array, and the frequencies // of each code is written into the codegenFreq array. // Codes 0-15 are single byte codes. Codes 16-18 are followed by additional // information. Code badCode is an end marker // // numLiterals The number of literals in literalEncoding // numOffsets The number of offsets in offsetEncoding // litenc, offenc The literal and offset encoder to use func (w *huffmanBitWriter) generateCodegen(numLiterals int, numOffsets int, litEnc, offEnc *huffmanEncoder) { for i := range w.codegenFreq { w.codegenFreq[i] = 0 } // Note that we are using codegen both as a temporary variable for holding // a copy of the frequencies, and as the place where we put the result. // This is fine because the output is always shorter than the input used // so far. codegen := w.codegen // cache // Copy the concatenated code sizes to codegen. Put a marker at the end. cgnl := codegen[:numLiterals] for i := range cgnl { cgnl[i] = uint8(litEnc.codes[i].len) } cgnl = codegen[numLiterals : numLiterals+numOffsets] for i := range cgnl { cgnl[i] = uint8(offEnc.codes[i].len) } codegen[numLiterals+numOffsets] = badCode size := codegen[0] count := 1 outIndex := 0 for inIndex := 1; size != badCode; inIndex++ { // INVARIANT: We have seen "count" copies of size that have not yet // had output generated for them. nextSize := codegen[inIndex] if nextSize == size { count++ continue } // We need to generate codegen indicating "count" of size. if size != 0 { codegen[outIndex] = size outIndex++ w.codegenFreq[size]++ count-- for count >= 3 { n := 6 if n > count { n = count } codegen[outIndex] = 16 outIndex++ codegen[outIndex] = uint8(n - 3) outIndex++ w.codegenFreq[16]++ count -= n } } else { for count >= 11 { n := 138 if n > count { n = count } codegen[outIndex] = 18 outIndex++ codegen[outIndex] = uint8(n - 11) outIndex++ w.codegenFreq[18]++ count -= n } if count >= 3 { // count >= 3 && count <= 10 codegen[outIndex] = 17 outIndex++ codegen[outIndex] = uint8(count - 3) outIndex++ w.codegenFreq[17]++ count = 0 } } count-- for ; count >= 0; count-- { codegen[outIndex] = size outIndex++ w.codegenFreq[size]++ } // Set up invariant for next time through the loop. size = nextSize count = 1 } // Marker indicating the end of the codegen. codegen[outIndex] = badCode } // dynamicSize returns the size of dynamically encoded data in bits. func (w *huffmanBitWriter) dynamicSize(litEnc, offEnc *huffmanEncoder, extraBits int) (size, numCodegens int) { numCodegens = len(w.codegenFreq) for numCodegens > 4 && w.codegenFreq[codegenOrder[numCodegens-1]] == 0 { numCodegens-- } header := 3 + 5 + 5 + 4 + (3 * numCodegens) + w.codegenEncoding.bitLength(w.codegenFreq[:]) + int(w.codegenFreq[16])*2 + int(w.codegenFreq[17])*3 + int(w.codegenFreq[18])*7 size = header + litEnc.bitLength(w.literalFreq) + offEnc.bitLength(w.offsetFreq) + extraBits return size, numCodegens } // fixedSize returns the size of dynamically encoded data in bits. func (w *huffmanBitWriter) fixedSize(extraBits int) int { return 3 + fixedLiteralEncoding.bitLength(w.literalFreq) + fixedOffsetEncoding.bitLength(w.offsetFreq) + extraBits } // storedSize calculates the stored size, including header. // The function returns the size in bits and whether the block // fits inside a single block. func (w *huffmanBitWriter) storedSize(in []byte) (int, bool) { if in == nil { return 0, false } if len(in) <= maxStoreBlockSize { return (len(in) + 5) * 8, true } return 0, false } func (w *huffmanBitWriter) writeCode(c hcode) { if w.err != nil { return } w.bits |= uint64(c.code) << w.nbits w.nbits += uint(c.len) if w.nbits >= 48 { bits := w.bits w.bits >>= 48 w.nbits -= 48 n := w.nbytes bytes := w.bytes[n : n+6] bytes[0] = byte(bits) bytes[1] = byte(bits >> 8) bytes[2] = byte(bits >> 16) bytes[3] = byte(bits >> 24) bytes[4] = byte(bits >> 32) bytes[5] = byte(bits >> 40) n += 6 if n >= bufferFlushSize { w.write(w.bytes[:n]) n = 0 } w.nbytes = n } } // Write the header of a dynamic Huffman block to the output stream. // // numLiterals The number of literals specified in codegen // numOffsets The number of offsets specified in codegen // numCodegens The number of codegens used in codegen func (w *huffmanBitWriter) writeDynamicHeader(numLiterals int, numOffsets int, numCodegens int, isEof bool) { if w.err != nil { return } var firstBits int32 = 4 if isEof { firstBits = 5 } w.writeBits(firstBits, 3) w.writeBits(int32(numLiterals-257), 5) w.writeBits(int32(numOffsets-1), 5) w.writeBits(int32(numCodegens-4), 4) for i := 0; i < numCodegens; i++ { value := uint(w.codegenEncoding.codes[codegenOrder[i]].len) w.writeBits(int32(value), 3) } i := 0 for { var codeWord int = int(w.codegen[i]) i++ if codeWord == badCode { break } w.writeCode(w.codegenEncoding.codes[uint32(codeWord)]) switch codeWord { case 16: w.writeBits(int32(w.codegen[i]), 2) i++ break case 17: w.writeBits(int32(w.codegen[i]), 3) i++ break case 18: w.writeBits(int32(w.codegen[i]), 7) i++ break } } } func (w *huffmanBitWriter) writeStoredHeader(length int, isEof bool) { if w.err != nil { return } var flag int32 if isEof { flag = 1 } w.writeBits(flag, 3) w.flush() w.writeBits(int32(length), 16) w.writeBits(int32(^uint16(length)), 16) } func (w *huffmanBitWriter) writeFixedHeader(isEof bool) { if w.err != nil { return } // Indicate that we are a fixed Huffman block var value int32 = 2 if isEof { value = 3 } w.writeBits(value, 3) } // writeBlock will write a block of tokens with the smallest encoding. // The original input can be supplied, and if the huffman encoded data // is larger than the original bytes, the data will be written as a // stored block. // If the input is nil, the tokens will always be Huffman encoded. func (w *huffmanBitWriter) writeBlock(tokens []token, eof bool, input []byte) { if w.err != nil { return } tokens = append(tokens, endBlockMarker) numLiterals, numOffsets := w.indexTokens(tokens) var extraBits int storedSize, storable := w.storedSize(input) if storable { // We only bother calculating the costs of the extra bits required by // the length of offset fields (which will be the same for both fixed // and dynamic encoding), if we need to compare those two encodings // against stored encoding. for lengthCode := lengthCodesStart + 8; lengthCode < numLiterals; lengthCode++ { // First eight length codes have extra size = 0. extraBits += int(w.literalFreq[lengthCode]) * int(lengthExtraBits[lengthCode-lengthCodesStart]) } for offsetCode := 4; offsetCode < numOffsets; offsetCode++ { // First four offset codes have extra size = 0. extraBits += int(w.offsetFreq[offsetCode]) * int(offsetExtraBits[offsetCode]) } } // Figure out smallest code. // Fixed Huffman baseline. var literalEncoding = fixedLiteralEncoding var offsetEncoding = fixedOffsetEncoding var size = w.fixedSize(extraBits) // Dynamic Huffman? var numCodegens int // Generate codegen and codegenFrequencies, which indicates how to encode // the literalEncoding and the offsetEncoding. w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, w.offsetEncoding) w.codegenEncoding.generate(w.codegenFreq[:], 7) dynamicSize, numCodegens := w.dynamicSize(w.literalEncoding, w.offsetEncoding, extraBits) if dynamicSize < size { size = dynamicSize literalEncoding = w.literalEncoding offsetEncoding = w.offsetEncoding } // Stored bytes? if storable && storedSize < size { w.writeStoredHeader(len(input), eof) w.writeBytes(input) return } // Huffman. if literalEncoding == fixedLiteralEncoding { w.writeFixedHeader(eof) } else { w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof) } // Write the tokens. w.writeTokens(tokens, literalEncoding.codes, offsetEncoding.codes) } // writeBlockDynamic encodes a block using a dynamic Huffman table. // This should be used if the symbols used have a disproportionate // histogram distribution. // If input is supplied and the compression savings are below 1/16th of the // input size the block is stored. func (w *huffmanBitWriter) writeBlockDynamic(tokens []token, eof bool, input []byte) { if w.err != nil { return } tokens = append(tokens, endBlockMarker) numLiterals, numOffsets := w.indexTokens(tokens) // Generate codegen and codegenFrequencies, which indicates how to encode // the literalEncoding and the offsetEncoding. w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, w.offsetEncoding) w.codegenEncoding.generate(w.codegenFreq[:], 7) size, numCodegens := w.dynamicSize(w.literalEncoding, w.offsetEncoding, 0) // Store bytes, if we don't get a reasonable improvement. if ssize, storable := w.storedSize(input); storable && ssize < (size+size>>4) { w.writeStoredHeader(len(input), eof) w.writeBytes(input) return } // Write Huffman table. w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof) // Write the tokens. w.writeTokens(tokens, w.literalEncoding.codes, w.offsetEncoding.codes) } // indexTokens indexes a slice of tokens, and updates // literalFreq and offsetFreq, and generates literalEncoding // and offsetEncoding. // The number of literal and offset tokens is returned. func (w *huffmanBitWriter) indexTokens(tokens []token) (numLiterals, numOffsets int) { for i := range w.literalFreq { w.literalFreq[i] = 0 } for i := range w.offsetFreq { w.offsetFreq[i] = 0 } for _, t := range tokens { if t < matchType { w.literalFreq[t.literal()]++ continue } length := t.length() offset := t.offset() w.literalFreq[lengthCodesStart+lengthCode(length)]++ w.offsetFreq[offsetCode(offset)]++ } // get the number of literals numLiterals = len(w.literalFreq) for w.literalFreq[numLiterals-1] == 0 { numLiterals-- } // get the number of offsets numOffsets = len(w.offsetFreq) for numOffsets > 0 && w.offsetFreq[numOffsets-1] == 0 { numOffsets-- } if numOffsets == 0 { // We haven't found a single match. If we want to go with the dynamic encoding, // we should count at least one offset to be sure that the offset huffman tree could be encoded. w.offsetFreq[0] = 1 numOffsets = 1 } w.literalEncoding.generate(w.literalFreq, 15) w.offsetEncoding.generate(w.offsetFreq, 15) return } // writeTokens writes a slice of tokens to the output. // codes for literal and offset encoding must be supplied. func (w *huffmanBitWriter) writeTokens(tokens []token, leCodes, oeCodes []hcode) { if w.err != nil { return } for _, t := range tokens { if t < matchType { w.writeCode(leCodes[t.literal()]) continue } // Write the length length := t.length() lengthCode := lengthCode(length) w.writeCode(leCodes[lengthCode+lengthCodesStart]) extraLengthBits := uint(lengthExtraBits[lengthCode]) if extraLengthBits > 0 { extraLength := int32(length - lengthBase[lengthCode]) w.writeBits(extraLength, extraLengthBits) } // Write the offset offset := t.offset() offsetCode := offsetCode(offset) w.writeCode(oeCodes[offsetCode]) extraOffsetBits := uint(offsetExtraBits[offsetCode]) if extraOffsetBits > 0 { extraOffset := int32(offset - offsetBase[offsetCode]) w.writeBits(extraOffset, extraOffsetBits) } } } // huffOffset is a static offset encoder used for huffman only encoding. // It can be reused since we will not be encoding offset values. var huffOffset *huffmanEncoder func init() { w := newHuffmanBitWriter(nil) w.offsetFreq[0] = 1 huffOffset = newHuffmanEncoder(offsetCodeCount) huffOffset.generate(w.offsetFreq, 15) } // writeBlockHuff encodes a block of bytes as either // Huffman encoded literals or uncompressed bytes if the // results only gains very little from compression. func (w *huffmanBitWriter) writeBlockHuff(eof bool, input []byte) { if w.err != nil { return } // Clear histogram for i := range w.literalFreq { w.literalFreq[i] = 0 } // Add everything as literals histogram(input, w.literalFreq) w.literalFreq[endBlockMarker] = 1 const numLiterals = endBlockMarker + 1 const numOffsets = 1 w.literalEncoding.generate(w.literalFreq, 15) // Figure out smallest code. // Always use dynamic Huffman or Store var numCodegens int // Generate codegen and codegenFrequencies, which indicates how to encode // the literalEncoding and the offsetEncoding. w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, huffOffset) w.codegenEncoding.generate(w.codegenFreq[:], 7) size, numCodegens := w.dynamicSize(w.literalEncoding, huffOffset, 0) // Store bytes, if we don't get a reasonable improvement. if ssize, storable := w.storedSize(input); storable && ssize < (size+size>>4) { w.writeStoredHeader(len(input), eof) w.writeBytes(input) return } // Huffman. w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof) encoding := w.literalEncoding.codes[:257] n := w.nbytes for _, t := range input { // Bitwriting inlined, ~30% speedup c := encoding[t] w.bits |= uint64(c.code) << w.nbits w.nbits += uint(c.len) if w.nbits < 48 { continue } // Store 6 bytes bits := w.bits w.bits >>= 48 w.nbits -= 48 bytes := w.bytes[n : n+6] bytes[0] = byte(bits) bytes[1] = byte(bits >> 8) bytes[2] = byte(bits >> 16) bytes[3] = byte(bits >> 24) bytes[4] = byte(bits >> 32) bytes[5] = byte(bits >> 40) n += 6 if n < bufferFlushSize { continue } w.write(w.bytes[:n]) if w.err != nil { return // Return early in the event of write failures } n = 0 } w.nbytes = n w.writeCode(encoding[endBlockMarker]) } compress-1.2.1/flate/huffman_bit_writer_test.go000066400000000000000000001205161303637052300217140ustar00rootroot00000000000000// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import ( "bytes" "flag" "fmt" "io/ioutil" "os" "path/filepath" "strings" "testing" ) var update = flag.Bool("update", false, "update reference files") // TestBlockHuff tests huffman encoding against reference files // to detect possible regressions. // If encoding/bit allocation changes you can regenerate these files // by using the -update flag. func TestBlockHuff(t *testing.T) { // determine input files match, err := filepath.Glob("testdata/huffman-*.in") if err != nil { t.Fatal(err) } for _, in := range match { out := in // for files where input and output are identical if strings.HasSuffix(in, ".in") { out = in[:len(in)-len(".in")] + ".golden" } testBlockHuff(t, in, out) } } func testBlockHuff(t *testing.T, in, out string) { all, err := ioutil.ReadFile(in) if err != nil { t.Error(err) return } var buf bytes.Buffer bw := newHuffmanBitWriter(&buf) bw.writeBlockHuff(false, all) bw.flush() got := buf.Bytes() want, err := ioutil.ReadFile(out) if err != nil && !*update { t.Error(err) return } t.Logf("Testing %q", in) if !bytes.Equal(got, want) { if *update { if in != out { t.Logf("Updating %q", out) if err := ioutil.WriteFile(out, got, 0666); err != nil { t.Error(err) } return } // in == out: don't accidentally destroy input t.Errorf("WARNING: -update did not rewrite input file %s", in) } t.Errorf("%q != %q (see %q)", in, out, in+".got") if err := ioutil.WriteFile(in+".got", got, 0666); err != nil { t.Error(err) } return } t.Log("Output ok") // Test if the writer produces the same output after reset. buf.Reset() bw.reset(&buf) bw.writeBlockHuff(false, all) bw.flush() got = buf.Bytes() if !bytes.Equal(got, want) { t.Errorf("after reset %q != %q (see %q)", in, out, in+".reset.got") if err := ioutil.WriteFile(in+".reset.got", got, 0666); err != nil { t.Error(err) } return } t.Log("Reset ok") testWriterEOF(t, "huff", huffTest{input: in}, true) } type huffTest struct { tokens []token input string // File name of input data matching the tokens. want string // File name of data with the expected output with input available. wantNoInput string // File name of the expected output when no input is available. } const ml = 0x7fc00000 // Maximum length token. Used to reduce the size of writeBlockTests var writeBlockTests = []huffTest{ { input: "testdata/huffman-null-max.in", want: "testdata/huffman-null-max.%s.expect", wantNoInput: "testdata/huffman-null-max.%s.expect-noinput", tokens: []token{0x0, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, 0x0, 0x0}, }, { input: "testdata/huffman-pi.in", want: "testdata/huffman-pi.%s.expect", wantNoInput: "testdata/huffman-pi.%s.expect-noinput", tokens: []token{0x33, 0x2e, 0x31, 0x34, 0x31, 0x35, 0x39, 0x32, 0x36, 0x35, 0x33, 0x35, 0x38, 0x39, 0x37, 0x39, 0x33, 0x32, 0x33, 0x38, 0x34, 0x36, 0x32, 0x36, 0x34, 0x33, 0x33, 0x38, 0x33, 0x32, 0x37, 0x39, 0x35, 0x30, 0x32, 0x38, 0x38, 0x34, 0x31, 0x39, 0x37, 0x31, 0x36, 0x39, 0x33, 0x39, 0x39, 0x33, 0x37, 0x35, 0x31, 0x30, 0x35, 0x38, 0x32, 0x30, 0x39, 0x37, 0x34, 0x39, 0x34, 0x34, 0x35, 0x39, 0x32, 0x33, 0x30, 0x37, 0x38, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x38, 0x36, 0x32, 0x30, 0x38, 0x39, 0x39, 0x38, 0x36, 0x32, 0x38, 0x30, 0x33, 0x34, 0x38, 0x32, 0x35, 0x33, 0x34, 0x32, 0x31, 0x31, 0x37, 0x30, 0x36, 0x37, 0x39, 0x38, 0x32, 0x31, 0x34, 0x38, 0x30, 0x38, 0x36, 0x35, 0x31, 0x33, 0x32, 0x38, 0x32, 0x33, 0x30, 0x36, 0x36, 0x34, 0x37, 0x30, 0x39, 0x33, 0x38, 0x34, 0x34, 0x36, 0x30, 0x39, 0x35, 0x35, 0x30, 0x35, 0x38, 0x32, 0x32, 0x33, 0x31, 0x37, 0x32, 0x35, 0x33, 0x35, 0x39, 0x34, 0x30, 0x38, 0x31, 0x32, 0x38, 0x34, 0x38, 0x31, 0x31, 0x31, 0x37, 0x34, 0x4040007e, 0x34, 0x31, 0x30, 0x32, 0x37, 0x30, 0x31, 0x39, 0x33, 0x38, 0x35, 0x32, 0x31, 0x31, 0x30, 0x35, 0x35, 0x35, 0x39, 0x36, 0x34, 0x34, 0x36, 0x32, 0x32, 0x39, 0x34, 0x38, 0x39, 0x35, 0x34, 0x39, 0x33, 0x30, 0x33, 0x38, 0x31, 0x40400012, 0x32, 0x38, 0x38, 0x31, 0x30, 0x39, 0x37, 0x35, 0x36, 0x36, 0x35, 0x39, 0x33, 0x33, 0x34, 0x34, 0x36, 0x40400047, 0x37, 0x35, 0x36, 0x34, 0x38, 0x32, 0x33, 0x33, 0x37, 0x38, 0x36, 0x37, 0x38, 0x33, 0x31, 0x36, 0x35, 0x32, 0x37, 0x31, 0x32, 0x30, 0x31, 0x39, 0x30, 0x39, 0x31, 0x34, 0x4040001a, 0x35, 0x36, 0x36, 0x39, 0x32, 0x33, 0x34, 0x36, 0x404000b2, 0x36, 0x31, 0x30, 0x34, 0x35, 0x34, 0x33, 0x32, 0x36, 0x40400032, 0x31, 0x33, 0x33, 0x39, 0x33, 0x36, 0x30, 0x37, 0x32, 0x36, 0x30, 0x32, 0x34, 0x39, 0x31, 0x34, 0x31, 0x32, 0x37, 0x33, 0x37, 0x32, 0x34, 0x35, 0x38, 0x37, 0x30, 0x30, 0x36, 0x36, 0x30, 0x36, 0x33, 0x31, 0x35, 0x35, 0x38, 0x38, 0x31, 0x37, 0x34, 0x38, 0x38, 0x31, 0x35, 0x32, 0x30, 0x39, 0x32, 0x30, 0x39, 0x36, 0x32, 0x38, 0x32, 0x39, 0x32, 0x35, 0x34, 0x30, 0x39, 0x31, 0x37, 0x31, 0x35, 0x33, 0x36, 0x34, 0x33, 0x36, 0x37, 0x38, 0x39, 0x32, 0x35, 0x39, 0x30, 0x33, 0x36, 0x30, 0x30, 0x31, 0x31, 0x33, 0x33, 0x30, 0x35, 0x33, 0x30, 0x35, 0x34, 0x38, 0x38, 0x32, 0x30, 0x34, 0x36, 0x36, 0x35, 0x32, 0x31, 0x33, 0x38, 0x34, 0x31, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x34, 0x31, 0x35, 0x31, 0x31, 0x36, 0x30, 0x39, 0x34, 0x33, 0x33, 0x30, 0x35, 0x37, 0x32, 0x37, 0x30, 0x33, 0x36, 0x35, 0x37, 0x35, 0x39, 0x35, 0x39, 0x31, 0x39, 0x35, 0x33, 0x30, 0x39, 0x32, 0x31, 0x38, 0x36, 0x31, 0x31, 0x37, 0x404000e9, 0x33, 0x32, 0x40400009, 0x39, 0x33, 0x31, 0x30, 0x35, 0x31, 0x31, 0x38, 0x35, 0x34, 0x38, 0x30, 0x37, 0x4040010e, 0x33, 0x37, 0x39, 0x39, 0x36, 0x32, 0x37, 0x34, 0x39, 0x35, 0x36, 0x37, 0x33, 0x35, 0x31, 0x38, 0x38, 0x35, 0x37, 0x35, 0x32, 0x37, 0x32, 0x34, 0x38, 0x39, 0x31, 0x32, 0x32, 0x37, 0x39, 0x33, 0x38, 0x31, 0x38, 0x33, 0x30, 0x31, 0x31, 0x39, 0x34, 0x39, 0x31, 0x32, 0x39, 0x38, 0x33, 0x33, 0x36, 0x37, 0x33, 0x33, 0x36, 0x32, 0x34, 0x34, 0x30, 0x36, 0x35, 0x36, 0x36, 0x34, 0x33, 0x30, 0x38, 0x36, 0x30, 0x32, 0x31, 0x33, 0x39, 0x34, 0x39, 0x34, 0x36, 0x33, 0x39, 0x35, 0x32, 0x32, 0x34, 0x37, 0x33, 0x37, 0x31, 0x39, 0x30, 0x37, 0x30, 0x32, 0x31, 0x37, 0x39, 0x38, 0x40800099, 0x37, 0x30, 0x32, 0x37, 0x37, 0x30, 0x35, 0x33, 0x39, 0x32, 0x31, 0x37, 0x31, 0x37, 0x36, 0x32, 0x39, 0x33, 0x31, 0x37, 0x36, 0x37, 0x35, 0x40800232, 0x37, 0x34, 0x38, 0x31, 0x40400006, 0x36, 0x36, 0x39, 0x34, 0x30, 0x404001e7, 0x30, 0x30, 0x30, 0x35, 0x36, 0x38, 0x31, 0x32, 0x37, 0x31, 0x34, 0x35, 0x32, 0x36, 0x33, 0x35, 0x36, 0x30, 0x38, 0x32, 0x37, 0x37, 0x38, 0x35, 0x37, 0x37, 0x31, 0x33, 0x34, 0x32, 0x37, 0x35, 0x37, 0x37, 0x38, 0x39, 0x36, 0x40400129, 0x33, 0x36, 0x33, 0x37, 0x31, 0x37, 0x38, 0x37, 0x32, 0x31, 0x34, 0x36, 0x38, 0x34, 0x34, 0x30, 0x39, 0x30, 0x31, 0x32, 0x32, 0x34, 0x39, 0x35, 0x33, 0x34, 0x33, 0x30, 0x31, 0x34, 0x36, 0x35, 0x34, 0x39, 0x35, 0x38, 0x35, 0x33, 0x37, 0x31, 0x30, 0x35, 0x30, 0x37, 0x39, 0x404000ca, 0x36, 0x40400153, 0x38, 0x39, 0x32, 0x33, 0x35, 0x34, 0x404001c9, 0x39, 0x35, 0x36, 0x31, 0x31, 0x32, 0x31, 0x32, 0x39, 0x30, 0x32, 0x31, 0x39, 0x36, 0x30, 0x38, 0x36, 0x34, 0x30, 0x33, 0x34, 0x34, 0x31, 0x38, 0x31, 0x35, 0x39, 0x38, 0x31, 0x33, 0x36, 0x32, 0x39, 0x37, 0x37, 0x34, 0x40400074, 0x30, 0x39, 0x39, 0x36, 0x30, 0x35, 0x31, 0x38, 0x37, 0x30, 0x37, 0x32, 0x31, 0x31, 0x33, 0x34, 0x39, 0x40800000, 0x38, 0x33, 0x37, 0x32, 0x39, 0x37, 0x38, 0x30, 0x34, 0x39, 0x39, 0x404002da, 0x39, 0x37, 0x33, 0x31, 0x37, 0x33, 0x32, 0x38, 0x4040018a, 0x36, 0x33, 0x31, 0x38, 0x35, 0x40400301, 0x404002e8, 0x34, 0x35, 0x35, 0x33, 0x34, 0x36, 0x39, 0x30, 0x38, 0x33, 0x30, 0x32, 0x36, 0x34, 0x32, 0x35, 0x32, 0x32, 0x33, 0x30, 0x404002e3, 0x40400267, 0x38, 0x35, 0x30, 0x33, 0x35, 0x32, 0x36, 0x31, 0x39, 0x33, 0x31, 0x31, 0x40400212, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x33, 0x31, 0x33, 0x37, 0x38, 0x33, 0x38, 0x37, 0x35, 0x32, 0x38, 0x38, 0x36, 0x35, 0x38, 0x37, 0x35, 0x33, 0x33, 0x32, 0x30, 0x38, 0x33, 0x38, 0x31, 0x34, 0x32, 0x30, 0x36, 0x40400140, 0x4040012b, 0x31, 0x34, 0x37, 0x33, 0x30, 0x33, 0x35, 0x39, 0x4080032e, 0x39, 0x30, 0x34, 0x32, 0x38, 0x37, 0x35, 0x35, 0x34, 0x36, 0x38, 0x37, 0x33, 0x31, 0x31, 0x35, 0x39, 0x35, 0x40400355, 0x33, 0x38, 0x38, 0x32, 0x33, 0x35, 0x33, 0x37, 0x38, 0x37, 0x35, 0x4080037f, 0x39, 0x4040013a, 0x31, 0x40400148, 0x38, 0x30, 0x35, 0x33, 0x4040018a, 0x32, 0x32, 0x36, 0x38, 0x30, 0x36, 0x36, 0x31, 0x33, 0x30, 0x30, 0x31, 0x39, 0x32, 0x37, 0x38, 0x37, 0x36, 0x36, 0x31, 0x31, 0x31, 0x39, 0x35, 0x39, 0x40400237, 0x36, 0x40800124, 0x38, 0x39, 0x33, 0x38, 0x30, 0x39, 0x35, 0x32, 0x35, 0x37, 0x32, 0x30, 0x31, 0x30, 0x36, 0x35, 0x34, 0x38, 0x35, 0x38, 0x36, 0x33, 0x32, 0x37, 0x4040009a, 0x39, 0x33, 0x36, 0x31, 0x35, 0x33, 0x40400220, 0x4080015c, 0x32, 0x33, 0x30, 0x33, 0x30, 0x31, 0x39, 0x35, 0x32, 0x30, 0x33, 0x35, 0x33, 0x30, 0x31, 0x38, 0x35, 0x32, 0x40400171, 0x40400075, 0x33, 0x36, 0x32, 0x32, 0x35, 0x39, 0x39, 0x34, 0x31, 0x33, 0x40400254, 0x34, 0x39, 0x37, 0x32, 0x31, 0x37, 0x404000de, 0x33, 0x34, 0x37, 0x39, 0x31, 0x33, 0x31, 0x35, 0x31, 0x35, 0x35, 0x37, 0x34, 0x38, 0x35, 0x37, 0x32, 0x34, 0x32, 0x34, 0x35, 0x34, 0x31, 0x35, 0x30, 0x36, 0x39, 0x4040013f, 0x38, 0x32, 0x39, 0x35, 0x33, 0x33, 0x31, 0x31, 0x36, 0x38, 0x36, 0x31, 0x37, 0x32, 0x37, 0x38, 0x40400337, 0x39, 0x30, 0x37, 0x35, 0x30, 0x39, 0x4040010d, 0x37, 0x35, 0x34, 0x36, 0x33, 0x37, 0x34, 0x36, 0x34, 0x39, 0x33, 0x39, 0x33, 0x31, 0x39, 0x32, 0x35, 0x35, 0x30, 0x36, 0x30, 0x34, 0x30, 0x30, 0x39, 0x4040026b, 0x31, 0x36, 0x37, 0x31, 0x31, 0x33, 0x39, 0x30, 0x30, 0x39, 0x38, 0x40400335, 0x34, 0x30, 0x31, 0x32, 0x38, 0x35, 0x38, 0x33, 0x36, 0x31, 0x36, 0x30, 0x33, 0x35, 0x36, 0x33, 0x37, 0x30, 0x37, 0x36, 0x36, 0x30, 0x31, 0x30, 0x34, 0x40400172, 0x38, 0x31, 0x39, 0x34, 0x32, 0x39, 0x4080041e, 0x404000ef, 0x4040028b, 0x37, 0x38, 0x33, 0x37, 0x34, 0x404004a8, 0x38, 0x32, 0x35, 0x35, 0x33, 0x37, 0x40800209, 0x32, 0x36, 0x38, 0x4040002e, 0x34, 0x30, 0x34, 0x37, 0x404001d1, 0x34, 0x404004b5, 0x4040038d, 0x38, 0x34, 0x404003a8, 0x36, 0x40c0031f, 0x33, 0x33, 0x31, 0x33, 0x36, 0x37, 0x37, 0x30, 0x32, 0x38, 0x39, 0x38, 0x39, 0x31, 0x35, 0x32, 0x40400062, 0x35, 0x32, 0x31, 0x36, 0x32, 0x30, 0x35, 0x36, 0x39, 0x36, 0x40400411, 0x30, 0x35, 0x38, 0x40400477, 0x35, 0x40400498, 0x35, 0x31, 0x31, 0x40400209, 0x38, 0x32, 0x34, 0x33, 0x30, 0x30, 0x33, 0x35, 0x35, 0x38, 0x37, 0x36, 0x34, 0x30, 0x32, 0x34, 0x37, 0x34, 0x39, 0x36, 0x34, 0x37, 0x33, 0x32, 0x36, 0x33, 0x4040043e, 0x39, 0x39, 0x32, 0x4040044b, 0x34, 0x32, 0x36, 0x39, 0x40c002c5, 0x37, 0x404001d6, 0x34, 0x4040053d, 0x4040041d, 0x39, 0x33, 0x34, 0x31, 0x37, 0x404001ad, 0x31, 0x32, 0x4040002a, 0x34, 0x4040019e, 0x31, 0x35, 0x30, 0x33, 0x30, 0x32, 0x38, 0x36, 0x31, 0x38, 0x32, 0x39, 0x37, 0x34, 0x35, 0x35, 0x35, 0x37, 0x30, 0x36, 0x37, 0x34, 0x40400135, 0x35, 0x30, 0x35, 0x34, 0x39, 0x34, 0x35, 0x38, 0x404001c5, 0x39, 0x40400051, 0x35, 0x36, 0x404001ec, 0x37, 0x32, 0x31, 0x30, 0x37, 0x39, 0x40400159, 0x33, 0x30, 0x4040010a, 0x33, 0x32, 0x31, 0x31, 0x36, 0x35, 0x33, 0x34, 0x34, 0x39, 0x38, 0x37, 0x32, 0x30, 0x32, 0x37, 0x4040011b, 0x30, 0x32, 0x33, 0x36, 0x34, 0x4040022e, 0x35, 0x34, 0x39, 0x39, 0x31, 0x31, 0x39, 0x38, 0x40400418, 0x34, 0x4040011b, 0x35, 0x33, 0x35, 0x36, 0x36, 0x33, 0x36, 0x39, 0x40400450, 0x32, 0x36, 0x35, 0x404002e4, 0x37, 0x38, 0x36, 0x32, 0x35, 0x35, 0x31, 0x404003da, 0x31, 0x37, 0x35, 0x37, 0x34, 0x36, 0x37, 0x32, 0x38, 0x39, 0x30, 0x39, 0x37, 0x37, 0x37, 0x37, 0x40800453, 0x30, 0x30, 0x30, 0x404005fd, 0x37, 0x30, 0x404004df, 0x36, 0x404003e9, 0x34, 0x39, 0x31, 0x4040041e, 0x40400297, 0x32, 0x31, 0x34, 0x37, 0x37, 0x32, 0x33, 0x35, 0x30, 0x31, 0x34, 0x31, 0x34, 0x40400643, 0x33, 0x35, 0x36, 0x404004af, 0x31, 0x36, 0x31, 0x33, 0x36, 0x31, 0x31, 0x35, 0x37, 0x33, 0x35, 0x32, 0x35, 0x40400504, 0x33, 0x34, 0x4040005b, 0x31, 0x38, 0x4040047b, 0x38, 0x34, 0x404005e7, 0x33, 0x33, 0x32, 0x33, 0x39, 0x30, 0x37, 0x33, 0x39, 0x34, 0x31, 0x34, 0x33, 0x33, 0x33, 0x34, 0x35, 0x34, 0x37, 0x37, 0x36, 0x32, 0x34, 0x40400242, 0x32, 0x35, 0x31, 0x38, 0x39, 0x38, 0x33, 0x35, 0x36, 0x39, 0x34, 0x38, 0x35, 0x35, 0x36, 0x32, 0x30, 0x39, 0x39, 0x32, 0x31, 0x39, 0x32, 0x32, 0x32, 0x31, 0x38, 0x34, 0x32, 0x37, 0x4040023e, 0x32, 0x404000ba, 0x36, 0x38, 0x38, 0x37, 0x36, 0x37, 0x31, 0x37, 0x39, 0x30, 0x40400055, 0x30, 0x40800106, 0x36, 0x36, 0x404003e7, 0x38, 0x38, 0x36, 0x32, 0x37, 0x32, 0x404006dc, 0x31, 0x37, 0x38, 0x36, 0x30, 0x38, 0x35, 0x37, 0x40400073, 0x33, 0x408002fc, 0x37, 0x39, 0x37, 0x36, 0x36, 0x38, 0x31, 0x404002bd, 0x30, 0x30, 0x39, 0x35, 0x33, 0x38, 0x38, 0x40400638, 0x33, 0x404006a5, 0x30, 0x36, 0x38, 0x30, 0x30, 0x36, 0x34, 0x32, 0x32, 0x35, 0x31, 0x32, 0x35, 0x32, 0x4040057b, 0x37, 0x33, 0x39, 0x32, 0x40400297, 0x40400474, 0x34, 0x408006b3, 0x38, 0x36, 0x32, 0x36, 0x39, 0x34, 0x35, 0x404001e5, 0x34, 0x31, 0x39, 0x36, 0x35, 0x32, 0x38, 0x35, 0x30, 0x40400099, 0x4040039c, 0x31, 0x38, 0x36, 0x33, 0x404001be, 0x34, 0x40800154, 0x32, 0x30, 0x33, 0x39, 0x4040058b, 0x34, 0x35, 0x404002bc, 0x32, 0x33, 0x37, 0x4040042c, 0x36, 0x40400510, 0x35, 0x36, 0x40400638, 0x37, 0x31, 0x39, 0x31, 0x37, 0x32, 0x38, 0x40400171, 0x37, 0x36, 0x34, 0x36, 0x35, 0x37, 0x35, 0x37, 0x33, 0x39, 0x40400101, 0x33, 0x38, 0x39, 0x40400748, 0x38, 0x33, 0x32, 0x36, 0x34, 0x35, 0x39, 0x39, 0x35, 0x38, 0x404006a7, 0x30, 0x34, 0x37, 0x38, 0x404001de, 0x40400328, 0x39, 0x4040002d, 0x36, 0x34, 0x30, 0x37, 0x38, 0x39, 0x35, 0x31, 0x4040008e, 0x36, 0x38, 0x33, 0x4040012f, 0x32, 0x35, 0x39, 0x35, 0x37, 0x30, 0x40400468, 0x38, 0x32, 0x32, 0x404002c8, 0x32, 0x4040061b, 0x34, 0x30, 0x37, 0x37, 0x32, 0x36, 0x37, 0x31, 0x39, 0x34, 0x37, 0x38, 0x40400319, 0x38, 0x32, 0x36, 0x30, 0x31, 0x34, 0x37, 0x36, 0x39, 0x39, 0x30, 0x39, 0x404004e8, 0x30, 0x31, 0x33, 0x36, 0x33, 0x39, 0x34, 0x34, 0x33, 0x4040027f, 0x33, 0x30, 0x40400105, 0x32, 0x30, 0x33, 0x34, 0x39, 0x36, 0x32, 0x35, 0x32, 0x34, 0x35, 0x31, 0x37, 0x404003b5, 0x39, 0x36, 0x35, 0x31, 0x34, 0x33, 0x31, 0x34, 0x32, 0x39, 0x38, 0x30, 0x39, 0x31, 0x39, 0x30, 0x36, 0x35, 0x39, 0x32, 0x40400282, 0x37, 0x32, 0x32, 0x31, 0x36, 0x39, 0x36, 0x34, 0x36, 0x40400419, 0x4040007a, 0x35, 0x4040050e, 0x34, 0x40800565, 0x38, 0x40400559, 0x39, 0x37, 0x4040057b, 0x35, 0x34, 0x4040049d, 0x4040023e, 0x37, 0x4040065a, 0x38, 0x34, 0x36, 0x38, 0x31, 0x33, 0x4040008c, 0x36, 0x38, 0x33, 0x38, 0x36, 0x38, 0x39, 0x34, 0x32, 0x37, 0x37, 0x34, 0x31, 0x35, 0x35, 0x39, 0x39, 0x31, 0x38, 0x35, 0x4040005a, 0x32, 0x34, 0x35, 0x39, 0x35, 0x33, 0x39, 0x35, 0x39, 0x34, 0x33, 0x31, 0x404005b7, 0x37, 0x40400012, 0x36, 0x38, 0x30, 0x38, 0x34, 0x35, 0x404002e7, 0x37, 0x33, 0x4040081e, 0x39, 0x35, 0x38, 0x34, 0x38, 0x36, 0x35, 0x33, 0x38, 0x404006e8, 0x36, 0x32, 0x404000f2, 0x36, 0x30, 0x39, 0x404004b6, 0x36, 0x30, 0x38, 0x30, 0x35, 0x31, 0x32, 0x34, 0x33, 0x38, 0x38, 0x34, 0x4040013a, 0x4040000b, 0x34, 0x31, 0x33, 0x4040030f, 0x37, 0x36, 0x32, 0x37, 0x38, 0x40400341, 0x37, 0x31, 0x35, 0x4040059b, 0x33, 0x35, 0x39, 0x39, 0x37, 0x37, 0x30, 0x30, 0x31, 0x32, 0x39, 0x40400472, 0x38, 0x39, 0x34, 0x34, 0x31, 0x40400277, 0x36, 0x38, 0x35, 0x35, 0x4040005f, 0x34, 0x30, 0x36, 0x33, 0x404008e6, 0x32, 0x30, 0x37, 0x32, 0x32, 0x40400158, 0x40800203, 0x34, 0x38, 0x31, 0x35, 0x38, 0x40400205, 0x404001fe, 0x4040027a, 0x40400298, 0x33, 0x39, 0x34, 0x35, 0x32, 0x32, 0x36, 0x37, 0x40c00496, 0x38, 0x4040058a, 0x32, 0x31, 0x404002ea, 0x32, 0x40400387, 0x35, 0x34, 0x36, 0x36, 0x36, 0x4040051b, 0x32, 0x33, 0x39, 0x38, 0x36, 0x34, 0x35, 0x36, 0x404004c4, 0x31, 0x36, 0x33, 0x35, 0x40800253, 0x40400811, 0x37, 0x404008ad, 0x39, 0x38, 0x4040045e, 0x39, 0x33, 0x36, 0x33, 0x34, 0x4040075b, 0x37, 0x34, 0x33, 0x32, 0x34, 0x4040047b, 0x31, 0x35, 0x30, 0x37, 0x36, 0x404004bb, 0x37, 0x39, 0x34, 0x35, 0x31, 0x30, 0x39, 0x4040003e, 0x30, 0x39, 0x34, 0x30, 0x404006a6, 0x38, 0x38, 0x37, 0x39, 0x37, 0x31, 0x30, 0x38, 0x39, 0x33, 0x404008f0, 0x36, 0x39, 0x31, 0x33, 0x36, 0x38, 0x36, 0x37, 0x32, 0x4040025b, 0x404001fe, 0x35, 0x4040053f, 0x40400468, 0x40400801, 0x31, 0x37, 0x39, 0x32, 0x38, 0x36, 0x38, 0x404008cc, 0x38, 0x37, 0x34, 0x37, 0x4080079e, 0x38, 0x32, 0x34, 0x4040097a, 0x38, 0x4040025b, 0x37, 0x31, 0x34, 0x39, 0x30, 0x39, 0x36, 0x37, 0x35, 0x39, 0x38, 0x404006ef, 0x33, 0x36, 0x35, 0x40400134, 0x38, 0x31, 0x4040005c, 0x40400745, 0x40400936, 0x36, 0x38, 0x32, 0x39, 0x4040057e, 0x38, 0x37, 0x32, 0x32, 0x36, 0x35, 0x38, 0x38, 0x30, 0x40400611, 0x35, 0x40400249, 0x34, 0x32, 0x37, 0x30, 0x34, 0x37, 0x37, 0x35, 0x35, 0x4040081e, 0x33, 0x37, 0x39, 0x36, 0x34, 0x31, 0x34, 0x35, 0x31, 0x35, 0x32, 0x404005fd, 0x32, 0x33, 0x34, 0x33, 0x36, 0x34, 0x35, 0x34, 0x404005de, 0x34, 0x34, 0x34, 0x37, 0x39, 0x35, 0x4040003c, 0x40400523, 0x408008e6, 0x34, 0x31, 0x4040052a, 0x33, 0x40400304, 0x35, 0x32, 0x33, 0x31, 0x40800841, 0x31, 0x36, 0x36, 0x31, 0x404008b2, 0x35, 0x39, 0x36, 0x39, 0x35, 0x33, 0x36, 0x32, 0x33, 0x31, 0x34, 0x404005ff, 0x32, 0x34, 0x38, 0x34, 0x39, 0x33, 0x37, 0x31, 0x38, 0x37, 0x31, 0x31, 0x30, 0x31, 0x34, 0x35, 0x37, 0x36, 0x35, 0x34, 0x40400761, 0x30, 0x32, 0x37, 0x39, 0x39, 0x33, 0x34, 0x34, 0x30, 0x33, 0x37, 0x34, 0x32, 0x30, 0x30, 0x37, 0x4040093f, 0x37, 0x38, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x31, 0x39, 0x40800299, 0x40400345, 0x38, 0x34, 0x37, 0x408003d2, 0x38, 0x33, 0x33, 0x32, 0x31, 0x34, 0x34, 0x35, 0x37, 0x31, 0x40400284, 0x40400776, 0x34, 0x33, 0x35, 0x30, 0x40400928, 0x40400468, 0x35, 0x33, 0x31, 0x39, 0x31, 0x30, 0x34, 0x38, 0x34, 0x38, 0x31, 0x30, 0x30, 0x35, 0x33, 0x37, 0x30, 0x36, 0x404008bc, 0x4080059d, 0x40800781, 0x31, 0x40400559, 0x37, 0x4040031b, 0x35, 0x404007ec, 0x4040040c, 0x36, 0x33, 0x408007dc, 0x34, 0x40400971, 0x4080034e, 0x408003f5, 0x38, 0x4080052d, 0x40800887, 0x39, 0x40400187, 0x39, 0x31, 0x404008ce, 0x38, 0x31, 0x34, 0x36, 0x37, 0x35, 0x31, 0x4040062b, 0x31, 0x32, 0x33, 0x39, 0x40c001a9, 0x39, 0x30, 0x37, 0x31, 0x38, 0x36, 0x34, 0x39, 0x34, 0x32, 0x33, 0x31, 0x39, 0x36, 0x31, 0x35, 0x36, 0x404001ec, 0x404006bc, 0x39, 0x35, 0x40400926, 0x40400469, 0x4040011b, 0x36, 0x30, 0x33, 0x38, 0x40400a25, 0x4040016f, 0x40400384, 0x36, 0x32, 0x4040045a, 0x35, 0x4040084c, 0x36, 0x33, 0x38, 0x39, 0x33, 0x37, 0x37, 0x38, 0x37, 0x404008c5, 0x404000f8, 0x39, 0x37, 0x39, 0x32, 0x30, 0x37, 0x37, 0x33, 0x404005d7, 0x32, 0x31, 0x38, 0x32, 0x35, 0x36, 0x404007df, 0x36, 0x36, 0x404006d6, 0x34, 0x32, 0x4080067e, 0x36, 0x404006e6, 0x34, 0x34, 0x40400024, 0x35, 0x34, 0x39, 0x32, 0x30, 0x32, 0x36, 0x30, 0x35, 0x40400ab3, 0x408003e4, 0x32, 0x30, 0x31, 0x34, 0x39, 0x404004d2, 0x38, 0x35, 0x30, 0x37, 0x33, 0x40400599, 0x36, 0x36, 0x36, 0x30, 0x40400194, 0x32, 0x34, 0x33, 0x34, 0x30, 0x40400087, 0x30, 0x4040076b, 0x38, 0x36, 0x33, 0x40400956, 0x404007e4, 0x4040042b, 0x40400174, 0x35, 0x37, 0x39, 0x36, 0x32, 0x36, 0x38, 0x35, 0x36, 0x40400140, 0x35, 0x30, 0x38, 0x40400523, 0x35, 0x38, 0x37, 0x39, 0x36, 0x39, 0x39, 0x40400711, 0x35, 0x37, 0x34, 0x40400a18, 0x38, 0x34, 0x30, 0x404008b3, 0x31, 0x34, 0x35, 0x39, 0x31, 0x4040078c, 0x37, 0x30, 0x40400234, 0x30, 0x31, 0x40400be7, 0x31, 0x32, 0x40400c74, 0x30, 0x404003c3, 0x33, 0x39, 0x40400b2a, 0x40400112, 0x37, 0x31, 0x35, 0x404003b0, 0x34, 0x32, 0x30, 0x40800bf2, 0x39, 0x40400bc2, 0x30, 0x37, 0x40400341, 0x40400795, 0x40400aaf, 0x40400c62, 0x32, 0x31, 0x40400960, 0x32, 0x35, 0x31, 0x4040057b, 0x40400944, 0x39, 0x32, 0x404001b2, 0x38, 0x32, 0x36, 0x40400b66, 0x32, 0x40400278, 0x33, 0x32, 0x31, 0x35, 0x37, 0x39, 0x31, 0x39, 0x38, 0x34, 0x31, 0x34, 0x4080087b, 0x39, 0x31, 0x36, 0x34, 0x408006e8, 0x39, 0x40800b58, 0x404008db, 0x37, 0x32, 0x32, 0x40400321, 0x35, 0x404008a4, 0x40400141, 0x39, 0x31, 0x30, 0x404000bc, 0x40400c5b, 0x35, 0x32, 0x38, 0x30, 0x31, 0x37, 0x40400231, 0x37, 0x31, 0x32, 0x40400914, 0x38, 0x33, 0x32, 0x40400373, 0x31, 0x40400589, 0x30, 0x39, 0x33, 0x35, 0x33, 0x39, 0x36, 0x35, 0x37, 0x4040064b, 0x31, 0x30, 0x38, 0x33, 0x40400069, 0x35, 0x31, 0x4040077a, 0x40400d5a, 0x31, 0x34, 0x34, 0x34, 0x32, 0x31, 0x30, 0x30, 0x40400202, 0x30, 0x33, 0x4040019c, 0x31, 0x31, 0x30, 0x33, 0x40400c81, 0x40400009, 0x40400026, 0x40c00602, 0x35, 0x31, 0x36, 0x404005d9, 0x40800883, 0x4040092a, 0x35, 0x40800c42, 0x38, 0x35, 0x31, 0x37, 0x31, 0x34, 0x33, 0x37, 0x40400605, 0x4040006d, 0x31, 0x35, 0x35, 0x36, 0x35, 0x30, 0x38, 0x38, 0x404003b9, 0x39, 0x38, 0x39, 0x38, 0x35, 0x39, 0x39, 0x38, 0x32, 0x33, 0x38, 0x404001cf, 0x404009ba, 0x33, 0x4040016c, 0x4040043e, 0x404009c3, 0x38, 0x40800e05, 0x33, 0x32, 0x40400107, 0x35, 0x40400305, 0x33, 0x404001ca, 0x39, 0x4040041b, 0x39, 0x38, 0x4040087d, 0x34, 0x40400cb8, 0x37, 0x4040064b, 0x30, 0x37, 0x404000e5, 0x34, 0x38, 0x31, 0x34, 0x31, 0x40400539, 0x38, 0x35, 0x39, 0x34, 0x36, 0x31, 0x40400bc9, 0x38, 0x30}, }, { input: "testdata/huffman-rand-1k.in", want: "testdata/huffman-rand-1k.%s.expect", wantNoInput: "testdata/huffman-rand-1k.%s.expect-noinput", tokens: []token{0xf8, 0x8b, 0x96, 0x76, 0x48, 0xd, 0x85, 0x94, 0x25, 0x80, 0xaf, 0xc2, 0xfe, 0x8d, 0xe8, 0x20, 0xeb, 0x17, 0x86, 0xc9, 0xb7, 0xc5, 0xde, 0x6, 0xea, 0x7d, 0x18, 0x8b, 0xe7, 0x3e, 0x7, 0xda, 0xdf, 0xff, 0x6c, 0x73, 0xde, 0xcc, 0xe7, 0x6d, 0x8d, 0x4, 0x19, 0x49, 0x7f, 0x47, 0x1f, 0x48, 0x15, 0xb0, 0xe8, 0x9e, 0xf2, 0x31, 0x59, 0xde, 0x34, 0xb4, 0x5b, 0xe5, 0xe0, 0x9, 0x11, 0x30, 0xc2, 0x88, 0x5b, 0x7c, 0x5d, 0x14, 0x13, 0x6f, 0x23, 0xa9, 0xd, 0xbc, 0x2d, 0x23, 0xbe, 0xd9, 0xed, 0x75, 0x4, 0x6c, 0x99, 0xdf, 0xfd, 0x70, 0x66, 0xe6, 0xee, 0xd9, 0xb1, 0x9e, 0x6e, 0x83, 0x59, 0xd5, 0xd4, 0x80, 0x59, 0x98, 0x77, 0x89, 0x43, 0x38, 0xc9, 0xaf, 0x30, 0x32, 0x9a, 0x20, 0x1b, 0x46, 0x3d, 0x67, 0x6e, 0xd7, 0x72, 0x9e, 0x4e, 0x21, 0x4f, 0xc6, 0xe0, 0xd4, 0x7b, 0x4, 0x8d, 0xa5, 0x3, 0xf6, 0x5, 0x9b, 0x6b, 0xdc, 0x2a, 0x93, 0x77, 0x28, 0xfd, 0xb4, 0x62, 0xda, 0x20, 0xe7, 0x1f, 0xab, 0x6b, 0x51, 0x43, 0x39, 0x2f, 0xa0, 0x92, 0x1, 0x6c, 0x75, 0x3e, 0xf4, 0x35, 0xfd, 0x43, 0x2e, 0xf7, 0xa4, 0x75, 0xda, 0xea, 0x9b, 0xa, 0x64, 0xb, 0xe0, 0x23, 0x29, 0xbd, 0xf7, 0xe7, 0x83, 0x3c, 0xfb, 0xdf, 0xb3, 0xae, 0x4f, 0xa4, 0x47, 0x55, 0x99, 0xde, 0x2f, 0x96, 0x6e, 0x1c, 0x43, 0x4c, 0x87, 0xe2, 0x7c, 0xd9, 0x5f, 0x4c, 0x7c, 0xe8, 0x90, 0x3, 0xdb, 0x30, 0x95, 0xd6, 0x22, 0xc, 0x47, 0xb8, 0x4d, 0x6b, 0xbd, 0x24, 0x11, 0xab, 0x2c, 0xd7, 0xbe, 0x6e, 0x7a, 0xd6, 0x8, 0xa3, 0x98, 0xd8, 0xdd, 0x15, 0x6a, 0xfa, 0x93, 0x30, 0x1, 0x25, 0x1d, 0xa2, 0x74, 0x86, 0x4b, 0x6a, 0x95, 0xe8, 0xe1, 0x4e, 0xe, 0x76, 0xb9, 0x49, 0xa9, 0x5f, 0xa0, 0xa6, 0x63, 0x3c, 0x7e, 0x7e, 0x20, 0x13, 0x4f, 0xbb, 0x66, 0x92, 0xb8, 0x2e, 0xa4, 0xfa, 0x48, 0xcb, 0xae, 0xb9, 0x3c, 0xaf, 0xd3, 0x1f, 0xe1, 0xd5, 0x8d, 0x42, 0x6d, 0xf0, 0xfc, 0x8c, 0xc, 0x0, 0xde, 0x40, 0xab, 0x8b, 0x47, 0x97, 0x4e, 0xa8, 0xcf, 0x8e, 0xdb, 0xa6, 0x8b, 0x20, 0x9, 0x84, 0x7a, 0x66, 0xe5, 0x98, 0x29, 0x2, 0x95, 0xe6, 0x38, 0x32, 0x60, 0x3, 0xe3, 0x9a, 0x1e, 0x54, 0xe8, 0x63, 0x80, 0x48, 0x9c, 0xe7, 0x63, 0x33, 0x6e, 0xa0, 0x65, 0x83, 0xfa, 0xc6, 0xba, 0x7a, 0x43, 0x71, 0x5, 0xf5, 0x68, 0x69, 0x85, 0x9c, 0xba, 0x45, 0xcd, 0x6b, 0xb, 0x19, 0xd1, 0xbb, 0x7f, 0x70, 0x85, 0x92, 0xd1, 0xb4, 0x64, 0x82, 0xb1, 0xe4, 0x62, 0xc5, 0x3c, 0x46, 0x1f, 0x92, 0x31, 0x1c, 0x4e, 0x41, 0x77, 0xf7, 0xe7, 0x87, 0xa2, 0xf, 0x6e, 0xe8, 0x92, 0x3, 0x6b, 0xa, 0xe7, 0xa9, 0x3b, 0x11, 0xda, 0x66, 0x8a, 0x29, 0xda, 0x79, 0xe1, 0x64, 0x8d, 0xe3, 0x54, 0xd4, 0xf5, 0xef, 0x64, 0x87, 0x3b, 0xf4, 0xc2, 0xf4, 0x71, 0x13, 0xa9, 0xe9, 0xe0, 0xa2, 0x6, 0x14, 0xab, 0x5d, 0xa7, 0x96, 0x0, 0xd6, 0xc3, 0xcc, 0x57, 0xed, 0x39, 0x6a, 0x25, 0xcd, 0x76, 0xea, 0xba, 0x3a, 0xf2, 0xa1, 0x95, 0x5d, 0xe5, 0x71, 0xcf, 0x9c, 0x62, 0x9e, 0x6a, 0xfa, 0xd5, 0x31, 0xd1, 0xa8, 0x66, 0x30, 0x33, 0xaa, 0x51, 0x17, 0x13, 0x82, 0x99, 0xc8, 0x14, 0x60, 0x9f, 0x4d, 0x32, 0x6d, 0xda, 0x19, 0x26, 0x21, 0xdc, 0x7e, 0x2e, 0x25, 0x67, 0x72, 0xca, 0xf, 0x92, 0xcd, 0xf6, 0xd6, 0xcb, 0x97, 0x8a, 0x33, 0x58, 0x73, 0x70, 0x91, 0x1d, 0xbf, 0x28, 0x23, 0xa3, 0xc, 0xf1, 0x83, 0xc3, 0xc8, 0x56, 0x77, 0x68, 0xe3, 0x82, 0xba, 0xb9, 0x57, 0x56, 0x57, 0x9c, 0xc3, 0xd6, 0x14, 0x5, 0x3c, 0xb1, 0xaf, 0x93, 0xc8, 0x8a, 0x57, 0x7f, 0x53, 0xfa, 0x2f, 0xaa, 0x6e, 0x66, 0x83, 0xfa, 0x33, 0xd1, 0x21, 0xab, 0x1b, 0x71, 0xb4, 0x7c, 0xda, 0xfd, 0xfb, 0x7f, 0x20, 0xab, 0x5e, 0xd5, 0xca, 0xfd, 0xdd, 0xe0, 0xee, 0xda, 0xba, 0xa8, 0x27, 0x99, 0x97, 0x69, 0xc1, 0x3c, 0x82, 0x8c, 0xa, 0x5c, 0x2d, 0x5b, 0x88, 0x3e, 0x34, 0x35, 0x86, 0x37, 0x46, 0x79, 0xe1, 0xaa, 0x19, 0xfb, 0xaa, 0xde, 0x15, 0x9, 0xd, 0x1a, 0x57, 0xff, 0xb5, 0xf, 0xf3, 0x2b, 0x5a, 0x6a, 0x4d, 0x19, 0x77, 0x71, 0x45, 0xdf, 0x4f, 0xb3, 0xec, 0xf1, 0xeb, 0x18, 0x53, 0x3e, 0x3b, 0x47, 0x8, 0x9a, 0x73, 0xa0, 0x5c, 0x8c, 0x5f, 0xeb, 0xf, 0x3a, 0xc2, 0x43, 0x67, 0xb4, 0x66, 0x67, 0x80, 0x58, 0xe, 0xc1, 0xec, 0x40, 0xd4, 0x22, 0x94, 0xca, 0xf9, 0xe8, 0x92, 0xe4, 0x69, 0x38, 0xbe, 0x67, 0x64, 0xca, 0x50, 0xc7, 0x6, 0x67, 0x42, 0x6e, 0xa3, 0xf0, 0xb7, 0x6c, 0xf2, 0xe8, 0x5f, 0xb1, 0xaf, 0xe7, 0xdb, 0xbb, 0x77, 0xb5, 0xf8, 0xcb, 0x8, 0xc4, 0x75, 0x7e, 0xc0, 0xf9, 0x1c, 0x7f, 0x3c, 0x89, 0x2f, 0xd2, 0x58, 0x3a, 0xe2, 0xf8, 0x91, 0xb6, 0x7b, 0x24, 0x27, 0xe9, 0xae, 0x84, 0x8b, 0xde, 0x74, 0xac, 0xfd, 0xd9, 0xb7, 0x69, 0x2a, 0xec, 0x32, 0x6f, 0xf0, 0x92, 0x84, 0xf1, 0x40, 0xc, 0x8a, 0xbc, 0x39, 0x6e, 0x2e, 0x73, 0xd4, 0x6e, 0x8a, 0x74, 0x2a, 0xdc, 0x60, 0x1f, 0xa3, 0x7, 0xde, 0x75, 0x8b, 0x74, 0xc8, 0xfe, 0x63, 0x75, 0xf6, 0x3d, 0x63, 0xac, 0x33, 0x89, 0xc3, 0xf0, 0xf8, 0x2d, 0x6b, 0xb4, 0x9e, 0x74, 0x8b, 0x5c, 0x33, 0xb4, 0xca, 0xa8, 0xe4, 0x99, 0xb6, 0x90, 0xa1, 0xef, 0xf, 0xd3, 0x61, 0xb2, 0xc6, 0x1a, 0x94, 0x7c, 0x44, 0x55, 0xf4, 0x45, 0xff, 0x9e, 0xa5, 0x5a, 0xc6, 0xa0, 0xe8, 0x2a, 0xc1, 0x8d, 0x6f, 0x34, 0x11, 0xb9, 0xbe, 0x4e, 0xd9, 0x87, 0x97, 0x73, 0xcf, 0x3d, 0x23, 0xae, 0xd5, 0x1a, 0x5e, 0xae, 0x5d, 0x6a, 0x3, 0xf9, 0x22, 0xd, 0x10, 0xd9, 0x47, 0x69, 0x15, 0x3f, 0xee, 0x52, 0xa3, 0x8, 0xd2, 0x3c, 0x51, 0xf4, 0xf8, 0x9d, 0xe4, 0x98, 0x89, 0xc8, 0x67, 0x39, 0xd5, 0x5e, 0x35, 0x78, 0x27, 0xe8, 0x3c, 0x80, 0xae, 0x79, 0x71, 0xd2, 0x93, 0xf4, 0xaa, 0x51, 0x12, 0x1c, 0x4b, 0x1b, 0xe5, 0x6e, 0x15, 0x6f, 0xe4, 0xbb, 0x51, 0x9b, 0x45, 0x9f, 0xf9, 0xc4, 0x8c, 0x2a, 0xfb, 0x1a, 0xdf, 0x55, 0xd3, 0x48, 0x93, 0x27, 0x1, 0x26, 0xc2, 0x6b, 0x55, 0x6d, 0xa2, 0xfb, 0x84, 0x8b, 0xc9, 0x9e, 0x28, 0xc2, 0xef, 0x1a, 0x24, 0xec, 0x9b, 0xae, 0xbd, 0x60, 0xe9, 0x15, 0x35, 0xee, 0x42, 0xa4, 0x33, 0x5b, 0xfa, 0xf, 0xb6, 0xf7, 0x1, 0xa6, 0x2, 0x4c, 0xca, 0x90, 0x58, 0x3a, 0x96, 0x41, 0xe7, 0xcb, 0x9, 0x8c, 0xdb, 0x85, 0x4d, 0xa8, 0x89, 0xf3, 0xb5, 0x8e, 0xfd, 0x75, 0x5b, 0x4f, 0xed, 0xde, 0x3f, 0xeb, 0x38, 0xa3, 0xbe, 0xb0, 0x73, 0xfc, 0xb8, 0x54, 0xf7, 0x4c, 0x30, 0x67, 0x2e, 0x38, 0xa2, 0x54, 0x18, 0xba, 0x8, 0xbf, 0xf2, 0x39, 0xd5, 0xfe, 0xa5, 0x41, 0xc6, 0x66, 0x66, 0xba, 0x81, 0xef, 0x67, 0xe4, 0xe6, 0x3c, 0xc, 0xca, 0xa4, 0xa, 0x79, 0xb3, 0x57, 0x8b, 0x8a, 0x75, 0x98, 0x18, 0x42, 0x2f, 0x29, 0xa3, 0x82, 0xef, 0x9f, 0x86, 0x6, 0x23, 0xe1, 0x75, 0xfa, 0x8, 0xb1, 0xde, 0x17, 0x4a}, }, { input: "testdata/huffman-rand-limit.in", want: "testdata/huffman-rand-limit.%s.expect", wantNoInput: "testdata/huffman-rand-limit.%s.expect-noinput", tokens: []token{0x61, 0x51c00000, 0xa, 0xf8, 0x8b, 0x96, 0x76, 0x48, 0xa, 0x85, 0x94, 0x25, 0x80, 0xaf, 0xc2, 0xfe, 0x8d, 0xe8, 0x20, 0xeb, 0x17, 0x86, 0xc9, 0xb7, 0xc5, 0xde, 0x6, 0xea, 0x7d, 0x18, 0x8b, 0xe7, 0x3e, 0x7, 0xda, 0xdf, 0xff, 0x6c, 0x73, 0xde, 0xcc, 0xe7, 0x6d, 0x8d, 0x4, 0x19, 0x49, 0x7f, 0x47, 0x1f, 0x48, 0x15, 0xb0, 0xe8, 0x9e, 0xf2, 0x31, 0x59, 0xde, 0x34, 0xb4, 0x5b, 0xe5, 0xe0, 0x9, 0x11, 0x30, 0xc2, 0x88, 0x5b, 0x7c, 0x5d, 0x14, 0x13, 0x6f, 0x23, 0xa9, 0xa, 0xbc, 0x2d, 0x23, 0xbe, 0xd9, 0xed, 0x75, 0x4, 0x6c, 0x99, 0xdf, 0xfd, 0x70, 0x66, 0xe6, 0xee, 0xd9, 0xb1, 0x9e, 0x6e, 0x83, 0x59, 0xd5, 0xd4, 0x80, 0x59, 0x98, 0x77, 0x89, 0x43, 0x38, 0xc9, 0xaf, 0x30, 0x32, 0x9a, 0x20, 0x1b, 0x46, 0x3d, 0x67, 0x6e, 0xd7, 0x72, 0x9e, 0x4e, 0x21, 0x4f, 0xc6, 0xe0, 0xd4, 0x7b, 0x4, 0x8d, 0xa5, 0x3, 0xf6, 0x5, 0x9b, 0x6b, 0xdc, 0x2a, 0x93, 0x77, 0x28, 0xfd, 0xb4, 0x62, 0xda, 0x20, 0xe7, 0x1f, 0xab, 0x6b, 0x51, 0x43, 0x39, 0x2f, 0xa0, 0x92, 0x1, 0x6c, 0x75, 0x3e, 0xf4, 0x35, 0xfd, 0x43, 0x2e, 0xf7, 0xa4, 0x75, 0xda, 0xea, 0x9b, 0xa}, }, { input: "testdata/huffman-shifts.in", want: "testdata/huffman-shifts.%s.expect", wantNoInput: "testdata/huffman-shifts.%s.expect-noinput", tokens: []token{0x31, 0x30, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x52400001, 0xd, 0xa, 0x32, 0x33, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7fc00001, 0x7f400001}, }, { input: "testdata/huffman-text-shift.in", want: "testdata/huffman-text-shift.%s.expect", wantNoInput: "testdata/huffman-text-shift.%s.expect-noinput", tokens: []token{0x2f, 0x2f, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x32, 0x30, 0x30, 0x39, 0x54, 0x68, 0x47, 0x6f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x2e, 0x41, 0x6c, 0x6c, 0x40800016, 0x72, 0x72, 0x76, 0x64, 0x2e, 0xd, 0xa, 0x2f, 0x2f, 0x55, 0x6f, 0x66, 0x74, 0x68, 0x69, 0x6f, 0x75, 0x72, 0x63, 0x63, 0x6f, 0x64, 0x69, 0x67, 0x6f, 0x76, 0x72, 0x6e, 0x64, 0x62, 0x79, 0x42, 0x53, 0x44, 0x2d, 0x74, 0x79, 0x6c, 0x40400020, 0x6c, 0x69, 0x63, 0x6e, 0x74, 0x68, 0x74, 0x63, 0x6e, 0x62, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x74, 0x68, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x66, 0x69, 0x6c, 0x2e, 0xd, 0xa, 0xd, 0xa, 0x70, 0x63, 0x6b, 0x67, 0x6d, 0x69, 0x6e, 0x4040000a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x6f, 0x22, 0x4040000c, 0x66, 0x75, 0x6e, 0x63, 0x6d, 0x69, 0x6e, 0x28, 0x29, 0x7b, 0xd, 0xa, 0x9, 0x76, 0x72, 0x62, 0x3d, 0x6d, 0x6b, 0x28, 0x5b, 0x5d, 0x62, 0x79, 0x74, 0x2c, 0x36, 0x35, 0x35, 0x33, 0x35, 0x29, 0xd, 0xa, 0x9, 0x66, 0x2c, 0x5f, 0x3a, 0x3d, 0x6f, 0x2e, 0x43, 0x72, 0x74, 0x28, 0x22, 0x68, 0x75, 0x66, 0x66, 0x6d, 0x6e, 0x2d, 0x6e, 0x75, 0x6c, 0x6c, 0x2d, 0x6d, 0x78, 0x2e, 0x69, 0x6e, 0x22, 0x40800021, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x28, 0x62, 0x29, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x58, 0x78, 0x79, 0x7a, 0x21, 0x22, 0x23, 0xc2, 0xa4, 0x25, 0x26, 0x2f, 0x3f, 0x22}, }, { input: "testdata/huffman-text.in", want: "testdata/huffman-text.%s.expect", wantNoInput: "testdata/huffman-text.%s.expect-noinput", tokens: []token{0x2f, 0x2f, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x32, 0x30, 0x30, 0x39, 0x20, 0x54, 0x68, 0x65, 0x20, 0x47, 0x6f, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x4080001e, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0xd, 0xa, 0x2f, 0x2f, 0x20, 0x55, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, 0x20, 0x42, 0x53, 0x44, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x40800036, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0xd, 0xa, 0xd, 0xa, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x4040000f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x22, 0x6f, 0x73, 0x22, 0x4040000e, 0x66, 0x75, 0x6e, 0x63, 0x4080001b, 0x28, 0x29, 0x20, 0x7b, 0xd, 0xa, 0x9, 0x76, 0x61, 0x72, 0x20, 0x62, 0x20, 0x3d, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x28, 0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x2c, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x29, 0xd, 0xa, 0x9, 0x66, 0x2c, 0x20, 0x5f, 0x20, 0x3a, 0x3d, 0x20, 0x6f, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x28, 0x22, 0x68, 0x75, 0x66, 0x66, 0x6d, 0x61, 0x6e, 0x2d, 0x6e, 0x75, 0x6c, 0x6c, 0x2d, 0x6d, 0x61, 0x78, 0x2e, 0x69, 0x6e, 0x22, 0x4080002a, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x62, 0x29, 0xd, 0xa, 0x7d, 0xd, 0xa}, }, { input: "testdata/huffman-zero.in", want: "testdata/huffman-zero.%s.expect", wantNoInput: "testdata/huffman-zero.%s.expect-noinput", tokens: []token{0x30, ml, 0x4b800000}, }, { input: "", want: "", wantNoInput: "testdata/null-long-match.%s.expect-noinput", tokens: []token{0x0, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, ml, 0x41400000}, }, } // TestWriteBlock tests if the writeBlock encoding has changed. // To update the reference files use the "-update" flag on the test. func TestWriteBlock(t *testing.T) { for _, test := range writeBlockTests { testBlock(t, test, "wb") } } // TestWriteBlockDynamic tests if the writeBlockDynamic encoding has changed. // To update the reference files use the "-update" flag on the test. func TestWriteBlockDynamic(t *testing.T) { for _, test := range writeBlockTests { testBlock(t, test, "dyn") } } // testBlock tests a block against its references, // or regenerate the references, if "-update" flag is set. func testBlock(t *testing.T, test huffTest, ttype string) { if test.want != "" { test.want = fmt.Sprintf(test.want, ttype) } test.wantNoInput = fmt.Sprintf(test.wantNoInput, ttype) if *update { if test.input != "" { t.Logf("Updating %q", test.want) input, err := ioutil.ReadFile(test.input) if err != nil { t.Error(err) return } f, err := os.Create(test.want) if err != nil { t.Error(err) return } defer f.Close() bw := newHuffmanBitWriter(f) writeToType(t, ttype, bw, test.tokens, input) } t.Logf("Updating %q", test.wantNoInput) f, err := os.Create(test.wantNoInput) if err != nil { t.Error(err) return } defer f.Close() bw := newHuffmanBitWriter(f) writeToType(t, ttype, bw, test.tokens, nil) return } if test.input != "" { t.Logf("Testing %q", test.want) input, err := ioutil.ReadFile(test.input) if err != nil { t.Error(err) return } want, err := ioutil.ReadFile(test.want) if err != nil { t.Error(err) return } var buf bytes.Buffer bw := newHuffmanBitWriter(&buf) writeToType(t, ttype, bw, test.tokens, input) got := buf.Bytes() if !bytes.Equal(got, want) { t.Errorf("writeBlock did not yield expected result for file %q with input. See %q", test.want, test.want+".got") if err := ioutil.WriteFile(test.want+".got", got, 0666); err != nil { t.Error(err) } } t.Log("Output ok") // Test if the writer produces the same output after reset. buf.Reset() bw.reset(&buf) writeToType(t, ttype, bw, test.tokens, input) bw.flush() got = buf.Bytes() if !bytes.Equal(got, want) { t.Errorf("reset: writeBlock did not yield expected result for file %q with input. See %q", test.want, test.want+".reset.got") if err := ioutil.WriteFile(test.want+".reset.got", got, 0666); err != nil { t.Error(err) } return } t.Log("Reset ok") testWriterEOF(t, "wb", test, true) } t.Logf("Testing %q", test.wantNoInput) wantNI, err := ioutil.ReadFile(test.wantNoInput) if err != nil { t.Error(err) return } var buf bytes.Buffer bw := newHuffmanBitWriter(&buf) writeToType(t, ttype, bw, test.tokens, nil) got := buf.Bytes() if !bytes.Equal(got, wantNI) { t.Errorf("writeBlock did not yield expected result for file %q with input. See %q", test.wantNoInput, test.wantNoInput+".got") if err := ioutil.WriteFile(test.want+".got", got, 0666); err != nil { t.Error(err) } } else if got[0]&1 == 1 { t.Error("got unexpected EOF") return } t.Log("Output ok") // Test if the writer produces the same output after reset. buf.Reset() bw.reset(&buf) writeToType(t, ttype, bw, test.tokens, nil) bw.flush() got = buf.Bytes() if !bytes.Equal(got, wantNI) { t.Errorf("reset: writeBlock did not yield expected result for file %q without input. See %q", test.want, test.want+".reset.got") if err := ioutil.WriteFile(test.want+".reset.got", got, 0666); err != nil { t.Error(err) } return } t.Log("Reset ok") testWriterEOF(t, "wb", test, false) } func writeToType(t *testing.T, ttype string, bw *huffmanBitWriter, tok []token, input []byte) { switch ttype { case "wb": bw.writeBlock(tok, false, input) case "dyn": bw.writeBlockDynamic(tok, false, input) default: panic("unknown test type") } if bw.err != nil { t.Error(bw.err) return } bw.flush() if bw.err != nil { t.Error(bw.err) return } } // testWriterEOF tests if the written block contains an EOF marker. func testWriterEOF(t *testing.T, ttype string, test huffTest, useInput bool) { if useInput && test.input == "" { return } var input []byte if useInput { var err error input, err = ioutil.ReadFile(test.input) if err != nil { t.Error(err) return } } var buf bytes.Buffer bw := newHuffmanBitWriter(&buf) switch ttype { case "wb": bw.writeBlock(test.tokens, true, input) case "dyn": bw.writeBlockDynamic(test.tokens, true, input) case "huff": bw.writeBlockHuff(true, input) default: panic("unknown test type") } if bw.err != nil { t.Error(bw.err) return } bw.flush() if bw.err != nil { t.Error(bw.err) return } b := buf.Bytes() if len(b) == 0 { t.Error("no output received") return } if b[0]&1 != 1 { t.Errorf("block not marked with EOF for input %q", test.input) return } t.Log("EOF ok") } compress-1.2.1/flate/huffman_code.go000066400000000000000000000233021303637052300174100ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import ( "math" "sort" ) // hcode is a huffman code with a bit code and bit length. type hcode struct { code, len uint16 } type huffmanEncoder struct { codes []hcode freqcache []literalNode bitCount [17]int32 lns byLiteral // stored to avoid repeated allocation in generate lfs byFreq // stored to avoid repeated allocation in generate } type literalNode struct { literal uint16 freq int32 } // A levelInfo describes the state of the constructed tree for a given depth. type levelInfo struct { // Our level. for better printing level int32 // The frequency of the last node at this level lastFreq int32 // The frequency of the next character to add to this level nextCharFreq int32 // The frequency of the next pair (from level below) to add to this level. // Only valid if the "needed" value of the next lower level is 0. nextPairFreq int32 // The number of chains remaining to generate for this level before moving // up to the next level needed int32 } // set sets the code and length of an hcode. func (h *hcode) set(code uint16, length uint16) { h.len = length h.code = code } func maxNode() literalNode { return literalNode{math.MaxUint16, math.MaxInt32} } func newHuffmanEncoder(size int) *huffmanEncoder { return &huffmanEncoder{codes: make([]hcode, size)} } // Generates a HuffmanCode corresponding to the fixed literal table func generateFixedLiteralEncoding() *huffmanEncoder { h := newHuffmanEncoder(maxNumLit) codes := h.codes var ch uint16 for ch = 0; ch < maxNumLit; ch++ { var bits uint16 var size uint16 switch { case ch < 144: // size 8, 000110000 .. 10111111 bits = ch + 48 size = 8 break case ch < 256: // size 9, 110010000 .. 111111111 bits = ch + 400 - 144 size = 9 break case ch < 280: // size 7, 0000000 .. 0010111 bits = ch - 256 size = 7 break default: // size 8, 11000000 .. 11000111 bits = ch + 192 - 280 size = 8 } codes[ch] = hcode{code: reverseBits(bits, byte(size)), len: size} } return h } func generateFixedOffsetEncoding() *huffmanEncoder { h := newHuffmanEncoder(30) codes := h.codes for ch := range codes { codes[ch] = hcode{code: reverseBits(uint16(ch), 5), len: 5} } return h } var fixedLiteralEncoding *huffmanEncoder = generateFixedLiteralEncoding() var fixedOffsetEncoding *huffmanEncoder = generateFixedOffsetEncoding() func (h *huffmanEncoder) bitLength(freq []int32) int { var total int for i, f := range freq { if f != 0 { total += int(f) * int(h.codes[i].len) } } return total } const maxBitsLimit = 16 // Return the number of literals assigned to each bit size in the Huffman encoding // // This method is only called when list.length >= 3 // The cases of 0, 1, and 2 literals are handled by special case code. // // list An array of the literals with non-zero frequencies // and their associated frequencies. The array is in order of increasing // frequency, and has as its last element a special element with frequency // MaxInt32 // maxBits The maximum number of bits that should be used to encode any literal. // Must be less than 16. // return An integer array in which array[i] indicates the number of literals // that should be encoded in i bits. func (h *huffmanEncoder) bitCounts(list []literalNode, maxBits int32) []int32 { if maxBits >= maxBitsLimit { panic("flate: maxBits too large") } n := int32(len(list)) list = list[0 : n+1] list[n] = maxNode() // The tree can't have greater depth than n - 1, no matter what. This // saves a little bit of work in some small cases if maxBits > n-1 { maxBits = n - 1 } // Create information about each of the levels. // A bogus "Level 0" whose sole purpose is so that // level1.prev.needed==0. This makes level1.nextPairFreq // be a legitimate value that never gets chosen. var levels [maxBitsLimit]levelInfo // leafCounts[i] counts the number of literals at the left // of ancestors of the rightmost node at level i. // leafCounts[i][j] is the number of literals at the left // of the level j ancestor. var leafCounts [maxBitsLimit][maxBitsLimit]int32 for level := int32(1); level <= maxBits; level++ { // For every level, the first two items are the first two characters. // We initialize the levels as if we had already figured this out. levels[level] = levelInfo{ level: level, lastFreq: list[1].freq, nextCharFreq: list[2].freq, nextPairFreq: list[0].freq + list[1].freq, } leafCounts[level][level] = 2 if level == 1 { levels[level].nextPairFreq = math.MaxInt32 } } // We need a total of 2*n - 2 items at top level and have already generated 2. levels[maxBits].needed = 2*n - 4 level := maxBits for { l := &levels[level] if l.nextPairFreq == math.MaxInt32 && l.nextCharFreq == math.MaxInt32 { // We've run out of both leafs and pairs. // End all calculations for this level. // To make sure we never come back to this level or any lower level, // set nextPairFreq impossibly large. l.needed = 0 levels[level+1].nextPairFreq = math.MaxInt32 level++ continue } prevFreq := l.lastFreq if l.nextCharFreq < l.nextPairFreq { // The next item on this row is a leaf node. n := leafCounts[level][level] + 1 l.lastFreq = l.nextCharFreq // Lower leafCounts are the same of the previous node. leafCounts[level][level] = n l.nextCharFreq = list[n].freq } else { // The next item on this row is a pair from the previous row. // nextPairFreq isn't valid until we generate two // more values in the level below l.lastFreq = l.nextPairFreq // Take leaf counts from the lower level, except counts[level] remains the same. copy(leafCounts[level][:level], leafCounts[level-1][:level]) levels[l.level-1].needed = 2 } if l.needed--; l.needed == 0 { // We've done everything we need to do for this level. // Continue calculating one level up. Fill in nextPairFreq // of that level with the sum of the two nodes we've just calculated on // this level. if l.level == maxBits { // All done! break } levels[l.level+1].nextPairFreq = prevFreq + l.lastFreq level++ } else { // If we stole from below, move down temporarily to replenish it. for levels[level-1].needed > 0 { level-- } } } // Somethings is wrong if at the end, the top level is null or hasn't used // all of the leaves. if leafCounts[maxBits][maxBits] != n { panic("leafCounts[maxBits][maxBits] != n") } bitCount := h.bitCount[:maxBits+1] bits := 1 counts := &leafCounts[maxBits] for level := maxBits; level > 0; level-- { // chain.leafCount gives the number of literals requiring at least "bits" // bits to encode. bitCount[bits] = counts[level] - counts[level-1] bits++ } return bitCount } // Look at the leaves and assign them a bit count and an encoding as specified // in RFC 1951 3.2.2 func (h *huffmanEncoder) assignEncodingAndSize(bitCount []int32, list []literalNode) { code := uint16(0) for n, bits := range bitCount { code <<= 1 if n == 0 || bits == 0 { continue } // The literals list[len(list)-bits] .. list[len(list)-bits] // are encoded using "bits" bits, and get the values // code, code + 1, .... The code values are // assigned in literal order (not frequency order). chunk := list[len(list)-int(bits):] h.lns.sort(chunk) for _, node := range chunk { h.codes[node.literal] = hcode{code: reverseBits(code, uint8(n)), len: uint16(n)} code++ } list = list[0 : len(list)-int(bits)] } } // Update this Huffman Code object to be the minimum code for the specified frequency count. // // freq An array of frequencies, in which frequency[i] gives the frequency of literal i. // maxBits The maximum number of bits to use for any literal. func (h *huffmanEncoder) generate(freq []int32, maxBits int32) { if h.freqcache == nil { // Allocate a reusable buffer with the longest possible frequency table. // Possible lengths are codegenCodeCount, offsetCodeCount and maxNumLit. // The largest of these is maxNumLit, so we allocate for that case. h.freqcache = make([]literalNode, maxNumLit+1) } list := h.freqcache[:len(freq)+1] // Number of non-zero literals count := 0 // Set list to be the set of all non-zero literals and their frequencies for i, f := range freq { if f != 0 { list[count] = literalNode{uint16(i), f} count++ } else { list[count] = literalNode{} h.codes[i].len = 0 } } list[len(freq)] = literalNode{} list = list[:count] if count <= 2 { // Handle the small cases here, because they are awkward for the general case code. With // two or fewer literals, everything has bit length 1. for i, node := range list { // "list" is in order of increasing literal value. h.codes[node.literal].set(uint16(i), 1) } return } h.lfs.sort(list) // Get the number of literals for each bit count bitCount := h.bitCounts(list, maxBits) // And do the assignment h.assignEncodingAndSize(bitCount, list) } type byLiteral []literalNode func (s *byLiteral) sort(a []literalNode) { *s = byLiteral(a) sort.Sort(s) } func (s byLiteral) Len() int { return len(s) } func (s byLiteral) Less(i, j int) bool { return s[i].literal < s[j].literal } func (s byLiteral) Swap(i, j int) { s[i], s[j] = s[j], s[i] } type byFreq []literalNode func (s *byFreq) sort(a []literalNode) { *s = byFreq(a) sort.Sort(s) } func (s byFreq) Len() int { return len(s) } func (s byFreq) Less(i, j int) bool { if s[i].freq == s[j].freq { return s[i].literal < s[j].literal } return s[i].freq < s[j].freq } func (s byFreq) Swap(i, j int) { s[i], s[j] = s[j], s[i] } compress-1.2.1/flate/inflate.go000066400000000000000000000503141303637052300164170ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package flate implements the DEFLATE compressed data format, described in // RFC 1951. The gzip and zlib packages implement access to DEFLATE-based file // formats. package flate import ( "bufio" "io" "strconv" "sync" ) const ( maxCodeLen = 16 // max length of Huffman code // The next three numbers come from the RFC section 3.2.7, with the // additional proviso in section 3.2.5 which implies that distance codes // 30 and 31 should never occur in compressed data. maxNumLit = 286 maxNumDist = 30 numCodes = 19 // number of codes in Huffman meta-code ) // Initialize the fixedHuffmanDecoder only once upon first use. var fixedOnce sync.Once var fixedHuffmanDecoder huffmanDecoder // A CorruptInputError reports the presence of corrupt input at a given offset. type CorruptInputError int64 func (e CorruptInputError) Error() string { return "flate: corrupt input before offset " + strconv.FormatInt(int64(e), 10) } // An InternalError reports an error in the flate code itself. type InternalError string func (e InternalError) Error() string { return "flate: internal error: " + string(e) } // A ReadError reports an error encountered while reading input. // // Deprecated: No longer returned. type ReadError struct { Offset int64 // byte offset where error occurred Err error // error returned by underlying Read } func (e *ReadError) Error() string { return "flate: read error at offset " + strconv.FormatInt(e.Offset, 10) + ": " + e.Err.Error() } // A WriteError reports an error encountered while writing output. // // Deprecated: No longer returned. type WriteError struct { Offset int64 // byte offset where error occurred Err error // error returned by underlying Write } func (e *WriteError) Error() string { return "flate: write error at offset " + strconv.FormatInt(e.Offset, 10) + ": " + e.Err.Error() } // Resetter resets a ReadCloser returned by NewReader or NewReaderDict to // to switch to a new underlying Reader. This permits reusing a ReadCloser // instead of allocating a new one. type Resetter interface { // Reset discards any buffered data and resets the Resetter as if it was // newly initialized with the given reader. Reset(r io.Reader, dict []byte) error } // The data structure for decoding Huffman tables is based on that of // zlib. There is a lookup table of a fixed bit width (huffmanChunkBits), // For codes smaller than the table width, there are multiple entries // (each combination of trailing bits has the same value). For codes // larger than the table width, the table contains a link to an overflow // table. The width of each entry in the link table is the maximum code // size minus the chunk width. // // Note that you can do a lookup in the table even without all bits // filled. Since the extra bits are zero, and the DEFLATE Huffman codes // have the property that shorter codes come before longer ones, the // bit length estimate in the result is a lower bound on the actual // number of bits. // // See the following: // http://www.gzip.org/algorithm.txt // chunk & 15 is number of bits // chunk >> 4 is value, including table link const ( huffmanChunkBits = 9 huffmanNumChunks = 1 << huffmanChunkBits huffmanCountMask = 15 huffmanValueShift = 4 ) type huffmanDecoder struct { min int // the minimum code length chunks [huffmanNumChunks]uint32 // chunks as described above links [][]uint32 // overflow links linkMask uint32 // mask the width of the link table } // Initialize Huffman decoding tables from array of code lengths. // Following this function, h is guaranteed to be initialized into a complete // tree (i.e., neither over-subscribed nor under-subscribed). The exception is a // degenerate case where the tree has only a single symbol with length 1. Empty // trees are permitted. func (h *huffmanDecoder) init(bits []int) bool { // Sanity enables additional runtime tests during Huffman // table construction. It's intended to be used during // development to supplement the currently ad-hoc unit tests. const sanity = false if h.min != 0 { *h = huffmanDecoder{} } // Count number of codes of each length, // compute min and max length. var count [maxCodeLen]int var min, max int for _, n := range bits { if n == 0 { continue } if min == 0 || n < min { min = n } if n > max { max = n } count[n]++ } // Empty tree. The decompressor.huffSym function will fail later if the tree // is used. Technically, an empty tree is only valid for the HDIST tree and // not the HCLEN and HLIT tree. However, a stream with an empty HCLEN tree // is guaranteed to fail since it will attempt to use the tree to decode the // codes for the HLIT and HDIST trees. Similarly, an empty HLIT tree is // guaranteed to fail later since the compressed data section must be // composed of at least one symbol (the end-of-block marker). if max == 0 { return true } code := 0 var nextcode [maxCodeLen]int for i := min; i <= max; i++ { code <<= 1 nextcode[i] = code code += count[i] } // Check that the coding is complete (i.e., that we've // assigned all 2-to-the-max possible bit sequences). // Exception: To be compatible with zlib, we also need to // accept degenerate single-code codings. See also // TestDegenerateHuffmanCoding. if code != 1< huffmanChunkBits { numLinks := 1 << (uint(max) - huffmanChunkBits) h.linkMask = uint32(numLinks - 1) // create link tables link := nextcode[huffmanChunkBits+1] >> 1 h.links = make([][]uint32, huffmanNumChunks-link) for j := uint(link); j < huffmanNumChunks; j++ { reverse := int(reverseByte[j>>8]) | int(reverseByte[j&0xff])<<8 reverse >>= uint(16 - huffmanChunkBits) off := j - uint(link) if sanity && h.chunks[reverse] != 0 { panic("impossible: overwriting existing chunk") } h.chunks[reverse] = uint32(off<>8]) | int(reverseByte[code&0xff])<<8 reverse >>= uint(16 - n) if n <= huffmanChunkBits { for off := reverse; off < len(h.chunks); off += 1 << uint(n) { // We should never need to overwrite // an existing chunk. Also, 0 is // never a valid chunk, because the // lower 4 "count" bits should be // between 1 and 15. if sanity && h.chunks[off] != 0 { panic("impossible: overwriting existing chunk") } h.chunks[off] = chunk } } else { j := reverse & (huffmanNumChunks - 1) if sanity && h.chunks[j]&huffmanCountMask != huffmanChunkBits+1 { // Longer codes should have been // associated with a link table above. panic("impossible: not an indirect chunk") } value := h.chunks[j] >> huffmanValueShift linktab := h.links[value] reverse >>= huffmanChunkBits for off := reverse; off < len(linktab); off += 1 << uint(n-huffmanChunkBits) { if sanity && linktab[off] != 0 { panic("impossible: overwriting existing chunk") } linktab[off] = chunk } } } if sanity { // Above we've sanity checked that we never overwrote // an existing entry. Here we additionally check that // we filled the tables completely. for i, chunk := range h.chunks { if chunk == 0 { // As an exception, in the degenerate // single-code case, we allow odd // chunks to be missing. if code == 1 && i%2 == 1 { continue } panic("impossible: missing chunk") } } for _, linktab := range h.links { for _, chunk := range linktab { if chunk == 0 { panic("impossible: missing chunk") } } } } return true } // The actual read interface needed by NewReader. // If the passed in io.Reader does not also have ReadByte, // the NewReader will introduce its own buffering. type Reader interface { io.Reader io.ByteReader } // Decompress state. type decompressor struct { // Input source. r Reader roffset int64 // Input bits, in top of b. b uint32 nb uint // Huffman decoders for literal/length, distance. h1, h2 huffmanDecoder // Length arrays used to define Huffman codes. bits *[maxNumLit + maxNumDist]int codebits *[numCodes]int // Output history, buffer. dict dictDecoder // Temporary buffer (avoids repeated allocation). buf [4]byte // Next step in the decompression, // and decompression state. step func(*decompressor) stepState int final bool err error toRead []byte hl, hd *huffmanDecoder copyLen int copyDist int } func (f *decompressor) nextBlock() { for f.nb < 1+2 { if f.err = f.moreBits(); f.err != nil { return } } f.final = f.b&1 == 1 f.b >>= 1 typ := f.b & 3 f.b >>= 2 f.nb -= 1 + 2 switch typ { case 0: f.dataBlock() case 1: // compressed, fixed Huffman tables f.hl = &fixedHuffmanDecoder f.hd = nil f.huffmanBlock() case 2: // compressed, dynamic Huffman tables if f.err = f.readHuffman(); f.err != nil { break } f.hl = &f.h1 f.hd = &f.h2 f.huffmanBlock() default: // 3 is reserved. f.err = CorruptInputError(f.roffset) } } func (f *decompressor) Read(b []byte) (int, error) { for { if len(f.toRead) > 0 { n := copy(b, f.toRead) f.toRead = f.toRead[n:] if len(f.toRead) == 0 { return n, f.err } return n, nil } if f.err != nil { return 0, f.err } f.step(f) if f.err != nil && len(f.toRead) == 0 { f.toRead = f.dict.readFlush() // Flush what's left in case of error } } } // Support the io.WriteTo interface for io.Copy and friends. func (f *decompressor) WriteTo(w io.Writer) (int64, error) { total := int64(0) flushed := false for { if len(f.toRead) > 0 { n, err := w.Write(f.toRead) total += int64(n) if err != nil { f.err = err return total, err } if n != len(f.toRead) { return total, io.ErrShortWrite } f.toRead = f.toRead[:0] } if f.err != nil && flushed { if f.err == io.EOF { return total, nil } return total, f.err } if f.err == nil { f.step(f) } if len(f.toRead) == 0 && f.err != nil && !flushed { f.toRead = f.dict.readFlush() // Flush what's left in case of error flushed = true } } } func (f *decompressor) Close() error { if f.err == io.EOF { return nil } return f.err } // RFC 1951 section 3.2.7. // Compression with dynamic Huffman codes var codeOrder = [...]int{16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15} func (f *decompressor) readHuffman() error { // HLIT[5], HDIST[5], HCLEN[4]. for f.nb < 5+5+4 { if err := f.moreBits(); err != nil { return err } } nlit := int(f.b&0x1F) + 257 if nlit > maxNumLit { return CorruptInputError(f.roffset) } f.b >>= 5 ndist := int(f.b&0x1F) + 1 if ndist > maxNumDist { return CorruptInputError(f.roffset) } f.b >>= 5 nclen := int(f.b&0xF) + 4 // numCodes is 19, so nclen is always valid. f.b >>= 4 f.nb -= 5 + 5 + 4 // (HCLEN+4)*3 bits: code lengths in the magic codeOrder order. for i := 0; i < nclen; i++ { for f.nb < 3 { if err := f.moreBits(); err != nil { return err } } f.codebits[codeOrder[i]] = int(f.b & 0x7) f.b >>= 3 f.nb -= 3 } for i := nclen; i < len(codeOrder); i++ { f.codebits[codeOrder[i]] = 0 } if !f.h1.init(f.codebits[0:]) { return CorruptInputError(f.roffset) } // HLIT + 257 code lengths, HDIST + 1 code lengths, // using the code length Huffman code. for i, n := 0, nlit+ndist; i < n; { x, err := f.huffSym(&f.h1) if err != nil { return err } if x < 16 { // Actual length. f.bits[i] = x i++ continue } // Repeat previous length or zero. var rep int var nb uint var b int switch x { default: return InternalError("unexpected length code") case 16: rep = 3 nb = 2 if i == 0 { return CorruptInputError(f.roffset) } b = f.bits[i-1] case 17: rep = 3 nb = 3 b = 0 case 18: rep = 11 nb = 7 b = 0 } for f.nb < nb { if err := f.moreBits(); err != nil { return err } } rep += int(f.b & uint32(1<>= nb f.nb -= nb if i+rep > n { return CorruptInputError(f.roffset) } for j := 0; j < rep; j++ { f.bits[i] = b i++ } } if !f.h1.init(f.bits[0:nlit]) || !f.h2.init(f.bits[nlit:nlit+ndist]) { return CorruptInputError(f.roffset) } // As an optimization, we can initialize the min bits to read at a time // for the HLIT tree to the length of the EOB marker since we know that // every block must terminate with one. This preserves the property that // we never read any extra bytes after the end of the DEFLATE stream. if f.h1.min < f.bits[endBlockMarker] { f.h1.min = f.bits[endBlockMarker] } return nil } // Decode a single Huffman block from f. // hl and hd are the Huffman states for the lit/length values // and the distance values, respectively. If hd == nil, using the // fixed distance encoding associated with fixed Huffman blocks. func (f *decompressor) huffmanBlock() { const ( stateInit = iota // Zero value must be stateInit stateDict ) switch f.stepState { case stateInit: goto readLiteral case stateDict: goto copyHistory } readLiteral: // Read literal and/or (length, distance) according to RFC section 3.2.3. { v, err := f.huffSym(f.hl) if err != nil { f.err = err return } var n uint // number of bits extra var length int switch { case v < 256: f.dict.writeByte(byte(v)) if f.dict.availWrite() == 0 { f.toRead = f.dict.readFlush() f.step = (*decompressor).huffmanBlock f.stepState = stateInit return } goto readLiteral case v == 256: f.finishBlock() return // otherwise, reference to older data case v < 265: length = v - (257 - 3) n = 0 case v < 269: length = v*2 - (265*2 - 11) n = 1 case v < 273: length = v*4 - (269*4 - 19) n = 2 case v < 277: length = v*8 - (273*8 - 35) n = 3 case v < 281: length = v*16 - (277*16 - 67) n = 4 case v < 285: length = v*32 - (281*32 - 131) n = 5 case v < maxNumLit: length = 258 n = 0 default: f.err = CorruptInputError(f.roffset) return } if n > 0 { for f.nb < n { if err = f.moreBits(); err != nil { f.err = err return } } length += int(f.b & uint32(1<>= n f.nb -= n } var dist int if f.hd == nil { for f.nb < 5 { if err = f.moreBits(); err != nil { f.err = err return } } dist = int(reverseByte[(f.b&0x1F)<<3]) f.b >>= 5 f.nb -= 5 } else { if dist, err = f.huffSym(f.hd); err != nil { f.err = err return } } switch { case dist < 4: dist++ case dist < maxNumDist: nb := uint(dist-2) >> 1 // have 1 bit in bottom of dist, need nb more. extra := (dist & 1) << nb for f.nb < nb { if err = f.moreBits(); err != nil { f.err = err return } } extra |= int(f.b & uint32(1<>= nb f.nb -= nb dist = 1<<(nb+1) + 1 + extra default: f.err = CorruptInputError(f.roffset) return } // No check on length; encoding can be prescient. if dist > f.dict.histSize() { f.err = CorruptInputError(f.roffset) return } f.copyLen, f.copyDist = length, dist goto copyHistory } copyHistory: // Perform a backwards copy according to RFC section 3.2.3. { cnt := f.dict.tryWriteCopy(f.copyDist, f.copyLen) if cnt == 0 { cnt = f.dict.writeCopy(f.copyDist, f.copyLen) } f.copyLen -= cnt if f.dict.availWrite() == 0 || f.copyLen > 0 { f.toRead = f.dict.readFlush() f.step = (*decompressor).huffmanBlock // We need to continue this work f.stepState = stateDict return } goto readLiteral } } // Copy a single uncompressed data block from input to output. func (f *decompressor) dataBlock() { // Uncompressed. // Discard current half-byte. f.nb = 0 f.b = 0 // Length then ones-complement of length. nr, err := io.ReadFull(f.r, f.buf[0:4]) f.roffset += int64(nr) if err != nil { if err == io.EOF { err = io.ErrUnexpectedEOF } f.err = err return } n := int(f.buf[0]) | int(f.buf[1])<<8 nn := int(f.buf[2]) | int(f.buf[3])<<8 if uint16(nn) != uint16(^n) { f.err = CorruptInputError(f.roffset) return } if n == 0 { f.toRead = f.dict.readFlush() f.finishBlock() return } f.copyLen = n f.copyData() } // copyData copies f.copyLen bytes from the underlying reader into f.hist. // It pauses for reads when f.hist is full. func (f *decompressor) copyData() { buf := f.dict.writeSlice() if len(buf) > f.copyLen { buf = buf[:f.copyLen] } cnt, err := io.ReadFull(f.r, buf) f.roffset += int64(cnt) f.copyLen -= cnt f.dict.writeMark(cnt) if err != nil { if err == io.EOF { err = io.ErrUnexpectedEOF } f.err = err return } if f.dict.availWrite() == 0 || f.copyLen > 0 { f.toRead = f.dict.readFlush() f.step = (*decompressor).copyData return } f.finishBlock() } func (f *decompressor) finishBlock() { if f.final { if f.dict.availRead() > 0 { f.toRead = f.dict.readFlush() } f.err = io.EOF } f.step = (*decompressor).nextBlock } func (f *decompressor) moreBits() error { c, err := f.r.ReadByte() if err != nil { if err == io.EOF { err = io.ErrUnexpectedEOF } return err } f.roffset++ f.b |= uint32(c) << f.nb f.nb += 8 return nil } // Read the next Huffman-encoded symbol from f according to h. func (f *decompressor) huffSym(h *huffmanDecoder) (int, error) { // Since a huffmanDecoder can be empty or be composed of a degenerate tree // with single element, huffSym must error on these two edge cases. In both // cases, the chunks slice will be 0 for the invalid sequence, leading it // satisfy the n == 0 check below. n := uint(h.min) for { for f.nb < n { if err := f.moreBits(); err != nil { return 0, err } } chunk := h.chunks[f.b&(huffmanNumChunks-1)] n = uint(chunk & huffmanCountMask) if n > huffmanChunkBits { chunk = h.links[chunk>>huffmanValueShift][(f.b>>huffmanChunkBits)&h.linkMask] n = uint(chunk & huffmanCountMask) } if n <= f.nb { if n == 0 { f.err = CorruptInputError(f.roffset) return 0, f.err } f.b >>= n f.nb -= n return int(chunk >> huffmanValueShift), nil } } } func makeReader(r io.Reader) Reader { if rr, ok := r.(Reader); ok { return rr } return bufio.NewReader(r) } func fixedHuffmanDecoderInit() { fixedOnce.Do(func() { // These come from the RFC section 3.2.6. var bits [288]int for i := 0; i < 144; i++ { bits[i] = 8 } for i := 144; i < 256; i++ { bits[i] = 9 } for i := 256; i < 280; i++ { bits[i] = 7 } for i := 280; i < 288; i++ { bits[i] = 8 } fixedHuffmanDecoder.init(bits[:]) }) } func (f *decompressor) Reset(r io.Reader, dict []byte) error { *f = decompressor{ r: makeReader(r), bits: f.bits, codebits: f.codebits, dict: f.dict, step: (*decompressor).nextBlock, } f.dict.init(maxMatchOffset, dict) return nil } // NewReader returns a new ReadCloser that can be used // to read the uncompressed version of r. // If r does not also implement io.ByteReader, // the decompressor may read more data than necessary from r. // It is the caller's responsibility to call Close on the ReadCloser // when finished reading. // // The ReadCloser returned by NewReader also implements Resetter. func NewReader(r io.Reader) io.ReadCloser { fixedHuffmanDecoderInit() var f decompressor f.r = makeReader(r) f.bits = new([maxNumLit + maxNumDist]int) f.codebits = new([numCodes]int) f.step = (*decompressor).nextBlock f.dict.init(maxMatchOffset, nil) return &f } // NewReaderDict is like NewReader but initializes the reader // with a preset dictionary. The returned Reader behaves as if // the uncompressed data stream started with the given dictionary, // which has already been read. NewReaderDict is typically used // to read data compressed by NewWriterDict. // // The ReadCloser returned by NewReader also implements Resetter. func NewReaderDict(r io.Reader, dict []byte) io.ReadCloser { fixedHuffmanDecoderInit() var f decompressor f.r = makeReader(r) f.bits = new([maxNumLit + maxNumDist]int) f.codebits = new([numCodes]int) f.step = (*decompressor).nextBlock f.dict.init(maxMatchOffset, dict) return &f } compress-1.2.1/flate/inflate_test.go000066400000000000000000000200071303637052300174520ustar00rootroot00000000000000// Copyright 2014 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import ( "bytes" "crypto/rand" "io" "io/ioutil" "strconv" "strings" "testing" ) func TestReset(t *testing.T) { ss := []string{ "lorem ipsum izzle fo rizzle", "the quick brown fox jumped over", } deflated := make([]bytes.Buffer, 2) for i, s := range ss { w, _ := NewWriter(&deflated[i], 1) w.Write([]byte(s)) w.Close() } inflated := make([]bytes.Buffer, 2) f := NewReader(&deflated[0]) io.Copy(&inflated[0], f) f.(Resetter).Reset(&deflated[1], nil) io.Copy(&inflated[1], f) f.Close() for i, s := range ss { if s != inflated[i].String() { t.Errorf("inflated[%d]:\ngot %q\nwant %q", i, inflated[i], s) } } } func TestReaderTruncated(t *testing.T) { vectors := []struct{ input, output string }{ {"\x00", ""}, {"\x00\f", ""}, {"\x00\f\x00", ""}, {"\x00\f\x00\xf3\xff", ""}, {"\x00\f\x00\xf3\xffhello", "hello"}, {"\x00\f\x00\xf3\xffhello, world", "hello, world"}, {"\x02", ""}, {"\xf2H\xcd", "He"}, {"\xf2H͙0a\u0084\t", "Hel\x90\x90\x90\x90\x90"}, {"\xf2H͙0a\u0084\t\x00", "Hel\x90\x90\x90\x90\x90"}, } for i, v := range vectors { r := strings.NewReader(v.input) zr := NewReader(r) b, err := ioutil.ReadAll(zr) if err != io.ErrUnexpectedEOF { t.Errorf("test %d, error mismatch: got %v, want io.ErrUnexpectedEOF", i, err) } if string(b) != v.output { t.Errorf("test %d, output mismatch: got %q, want %q", i, b, v.output) } } } func TestResetDict(t *testing.T) { dict := []byte("the lorem fox") ss := []string{ "lorem ipsum izzle fo rizzle", "the quick brown fox jumped over", } deflated := make([]bytes.Buffer, len(ss)) for i, s := range ss { w, _ := NewWriterDict(&deflated[i], DefaultCompression, dict) w.Write([]byte(s)) w.Close() } inflated := make([]bytes.Buffer, len(ss)) f := NewReader(nil) for i := range inflated { f.(Resetter).Reset(&deflated[i], dict) io.Copy(&inflated[i], f) } f.Close() for i, s := range ss { if s != inflated[i].String() { t.Errorf("inflated[%d]:\ngot %q\nwant %q", i, inflated[i], s) } } } // Tests ported from zlib/test/infcover.c type infTest struct { hex string id string n int } var infTests = []infTest{ {"0 0 0 0 0", "invalid stored block lengths", 1}, {"3 0", "fixed", 0}, {"6", "invalid block type", 1}, {"1 1 0 fe ff 0", "stored", 0}, {"fc 0 0", "too many length or distance symbols", 1}, {"4 0 fe ff", "invalid code lengths set", 1}, {"4 0 24 49 0", "invalid bit length repeat", 1}, {"4 0 24 e9 ff ff", "invalid bit length repeat", 1}, {"4 0 24 e9 ff 6d", "invalid code -- missing end-of-block", 1}, {"4 80 49 92 24 49 92 24 71 ff ff 93 11 0", "invalid literal/lengths set", 1}, {"4 80 49 92 24 49 92 24 f b4 ff ff c3 84", "invalid distances set", 1}, {"4 c0 81 8 0 0 0 0 20 7f eb b 0 0", "invalid literal/length code", 1}, {"2 7e ff ff", "invalid distance code", 1}, {"c c0 81 0 0 0 0 0 90 ff 6b 4 0", "invalid distance too far back", 1}, // also trailer mismatch just in inflate() {"1f 8b 8 0 0 0 0 0 0 0 3 0 0 0 0 1", "incorrect data check", -1}, {"1f 8b 8 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 1", "incorrect length check", -1}, {"5 c0 21 d 0 0 0 80 b0 fe 6d 2f 91 6c", "pull 17", 0}, {"5 e0 81 91 24 cb b2 2c 49 e2 f 2e 8b 9a 47 56 9f fb fe ec d2 ff 1f", "long code", 0}, {"ed c0 1 1 0 0 0 40 20 ff 57 1b 42 2c 4f", "length extra", 0}, {"ed cf c1 b1 2c 47 10 c4 30 fa 6f 35 1d 1 82 59 3d fb be 2e 2a fc f c", "long distance and extra", 0}, {"ed c0 81 0 0 0 0 80 a0 fd a9 17 a9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6", "window end", 0}, } func TestInflate(t *testing.T) { for _, test := range infTests { hex := strings.Split(test.hex, " ") data := make([]byte, len(hex)) for i, h := range hex { b, _ := strconv.ParseInt(h, 16, 32) data[i] = byte(b) } buf := bytes.NewReader(data) r := NewReader(buf) _, err := io.Copy(ioutil.Discard, r) if (test.n == 0 && err == nil) || (test.n != 0 && err != nil) { t.Logf("%q: OK:", test.id) t.Logf(" - got %v", err) continue } if test.n == 0 && err != nil { t.Errorf("%q: Expected no error, but got %v", test.id, err) continue } if test.n != 0 && err == nil { t.Errorf("%q:Expected an error, but got none", test.id) continue } t.Fatal(test.n, err) } for _, test := range infOutTests { hex := strings.Split(test.hex, " ") data := make([]byte, len(hex)) for i, h := range hex { b, _ := strconv.ParseInt(h, 16, 32) data[i] = byte(b) } buf := bytes.NewReader(data) r := NewReader(buf) _, err := io.Copy(ioutil.Discard, r) if test.err == (err != nil) { t.Logf("%q: OK:", test.id) t.Logf(" - got %v", err) continue } if test.err == false && err != nil { t.Errorf("%q: Expected no error, but got %v", test.id, err) continue } if test.err && err == nil { t.Errorf("%q: Expected an error, but got none", test.id) continue } t.Fatal(test.err, err) } } // Tests ported from zlib/test/infcover.c // Since zlib inflate is push (writer) instead of pull (reader) // some of the window size tests have been removed, since they // are irrelevant. type infOutTest struct { hex string id string step int win int length int err bool } var infOutTests = []infOutTest{ {"2 8 20 80 0 3 0", "inflate_fast TYPE return", 0, -15, 258, false}, {"63 18 5 40 c 0", "window wrap", 3, -8, 300, false}, {"e5 e0 81 ad 6d cb b2 2c c9 01 1e 59 63 ae 7d ee fb 4d fd b5 35 41 68 ff 7f 0f 0 0 0", "fast length extra bits", 0, -8, 258, true}, {"25 fd 81 b5 6d 59 b6 6a 49 ea af 35 6 34 eb 8c b9 f6 b9 1e ef 67 49 50 fe ff ff 3f 0 0", "fast distance extra bits", 0, -8, 258, true}, {"3 7e 0 0 0 0 0", "fast invalid distance code", 0, -8, 258, true}, {"1b 7 0 0 0 0 0", "fast invalid literal/length code", 0, -8, 258, true}, {"d c7 1 ae eb 38 c 4 41 a0 87 72 de df fb 1f b8 36 b1 38 5d ff ff 0", "fast 2nd level codes and too far back", 0, -8, 258, true}, {"63 18 5 8c 10 8 0 0 0 0", "very common case", 0, -8, 259, false}, {"63 60 60 18 c9 0 8 18 18 18 26 c0 28 0 29 0 0 0", "contiguous and wrap around window", 6, -8, 259, false}, {"63 0 3 0 0 0 0 0", "copy direct from output", 0, -8, 259, false}, {"1f 8b 0 0", "bad gzip method", 0, 31, 0, true}, {"1f 8b 8 80", "bad gzip flags", 0, 31, 0, true}, {"77 85", "bad zlib method", 0, 15, 0, true}, {"78 9c", "bad zlib window size", 0, 8, 0, true}, {"1f 8b 8 1e 0 0 0 0 0 0 1 0 0 0 0 0 0", "bad header crc", 0, 47, 1, true}, {"1f 8b 8 2 0 0 0 0 0 0 1d 26 3 0 0 0 0 0 0 0 0 0", "check gzip length", 0, 47, 0, true}, {"78 90", "bad zlib header check", 0, 47, 0, true}, {"8 b8 0 0 0 1", "need dictionary", 0, 8, 0, true}, {"63 18 68 30 d0 0 0", "force split window update", 4, -8, 259, false}, {"3 0", "use fixed blocks", 0, -15, 1, false}, {"", "bad window size", 0, 1, 0, true}, } func TestWriteTo(t *testing.T) { input := make([]byte, 100000) n, err := rand.Read(input) if err != nil { t.Fatal(err) } if n != len(input) { t.Fatal("did not fill buffer") } compressed := &bytes.Buffer{} w, err := NewWriter(compressed, -2) if err != nil { t.Fatal(err) } n, err = w.Write(input) if err != nil { t.Fatal(err) } if n != len(input) { t.Fatal("did not fill buffer") } w.Close() buf := compressed.Bytes() dec := NewReader(bytes.NewBuffer(buf)) // ReadAll does not use WriteTo, but we wrap it in a NopCloser to be sure. readall, err := ioutil.ReadAll(ioutil.NopCloser(dec)) if err != nil { t.Fatal(err) } if len(readall) != len(input) { t.Fatal("did not decompress everything") } dec = NewReader(bytes.NewBuffer(buf)) wtbuf := &bytes.Buffer{} written, err := dec.(io.WriterTo).WriteTo(wtbuf) if err != nil { t.Fatal(err) } if written != int64(len(input)) { t.Error("Returned length did not match, expected", len(input), "got", written) } if wtbuf.Len() != len(input) { t.Error("Actual Length did not match, expected", len(input), "got", wtbuf.Len()) } if bytes.Compare(wtbuf.Bytes(), input) != 0 { t.Fatal("output did not match input") } } compress-1.2.1/flate/reader_test.go000066400000000000000000000072631303637052300173030ustar00rootroot00000000000000// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import ( "bytes" "io" "io/ioutil" "runtime" "strings" "testing" ) func TestNlitOutOfRange(t *testing.T) { // Trying to decode this bogus flate data, which has a Huffman table // with nlit=288, should not panic. io.Copy(ioutil.Discard, NewReader(strings.NewReader( "\xfc\xfe\x36\xe7\x5e\x1c\xef\xb3\x55\x58\x77\xb6\x56\xb5\x43\xf4"+ "\x6f\xf2\xd2\xe6\x3d\x99\xa0\x85\x8c\x48\xeb\xf8\xda\x83\x04\x2a"+ "\x75\xc4\xf8\x0f\x12\x11\xb9\xb4\x4b\x09\xa0\xbe\x8b\x91\x4c"))) } const ( digits = iota twain ) var testfiles = []string{ // Digits is the digits of the irrational number e. Its decimal representation // does not repeat, but there are only 10 possible digits, so it should be // reasonably compressible. digits: "../testdata/e.txt", // Twain is Project Gutenberg's edition of Mark Twain's classic English novel. twain: "../testdata/Mark.Twain-Tom.Sawyer.txt", } func benchmarkDecode(b *testing.B, testfile, level, n int) { b.ReportAllocs() b.StopTimer() b.SetBytes(int64(n)) buf0, err := ioutil.ReadFile(testfiles[testfile]) if err != nil { b.Fatal(err) } if len(buf0) == 0 { b.Fatalf("test file %q has no data", testfiles[testfile]) } compressed := new(bytes.Buffer) w, err := NewWriter(compressed, level) if err != nil { b.Fatal(err) } for i := 0; i < n; i += len(buf0) { if len(buf0) > n-i { buf0 = buf0[:n-i] } io.Copy(w, bytes.NewReader(buf0)) } w.Close() buf1 := compressed.Bytes() buf0, compressed, w = nil, nil, nil runtime.GC() b.StartTimer() for i := 0; i < b.N; i++ { io.Copy(ioutil.Discard, NewReader(bytes.NewReader(buf1))) } } // These short names are so that gofmt doesn't break the BenchmarkXxx function // bodies below over multiple lines. const ( constant = ConstantCompression speed = BestSpeed default_ = DefaultCompression compress = BestCompression ) func BenchmarkDecodeDigitsSpeed1e4(b *testing.B) { benchmarkDecode(b, digits, speed, 1e4) } func BenchmarkDecodeDigitsSpeed1e5(b *testing.B) { benchmarkDecode(b, digits, speed, 1e5) } func BenchmarkDecodeDigitsSpeed1e6(b *testing.B) { benchmarkDecode(b, digits, speed, 1e6) } func BenchmarkDecodeDigitsDefault1e4(b *testing.B) { benchmarkDecode(b, digits, default_, 1e4) } func BenchmarkDecodeDigitsDefault1e5(b *testing.B) { benchmarkDecode(b, digits, default_, 1e5) } func BenchmarkDecodeDigitsDefault1e6(b *testing.B) { benchmarkDecode(b, digits, default_, 1e6) } func BenchmarkDecodeDigitsCompress1e4(b *testing.B) { benchmarkDecode(b, digits, compress, 1e4) } func BenchmarkDecodeDigitsCompress1e5(b *testing.B) { benchmarkDecode(b, digits, compress, 1e5) } func BenchmarkDecodeDigitsCompress1e6(b *testing.B) { benchmarkDecode(b, digits, compress, 1e6) } func BenchmarkDecodeTwainSpeed1e4(b *testing.B) { benchmarkDecode(b, twain, speed, 1e4) } func BenchmarkDecodeTwainSpeed1e5(b *testing.B) { benchmarkDecode(b, twain, speed, 1e5) } func BenchmarkDecodeTwainSpeed1e6(b *testing.B) { benchmarkDecode(b, twain, speed, 1e6) } func BenchmarkDecodeTwainDefault1e4(b *testing.B) { benchmarkDecode(b, twain, default_, 1e4) } func BenchmarkDecodeTwainDefault1e5(b *testing.B) { benchmarkDecode(b, twain, default_, 1e5) } func BenchmarkDecodeTwainDefault1e6(b *testing.B) { benchmarkDecode(b, twain, default_, 1e6) } func BenchmarkDecodeTwainCompress1e4(b *testing.B) { benchmarkDecode(b, twain, compress, 1e4) } func BenchmarkDecodeTwainCompress1e5(b *testing.B) { benchmarkDecode(b, twain, compress, 1e5) } func BenchmarkDecodeTwainCompress1e6(b *testing.B) { benchmarkDecode(b, twain, compress, 1e6) } compress-1.2.1/flate/reverse_bits.go000066400000000000000000000037131303637052300174720ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate var reverseByte = [256]byte{ 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff, } func reverseUint16(v uint16) uint16 { return uint16(reverseByte[v>>8]) | uint16(reverseByte[v&0xFF])<<8 } func reverseBits(number uint16, bitLength byte) uint16 { return reverseUint16(number << uint8(16-bitLength)) } compress-1.2.1/flate/snappy.go000066400000000000000000000662301303637052300163130ustar00rootroot00000000000000// Copyright 2011 The Snappy-Go Authors. All rights reserved. // Modified for deflate by Klaus Post (c) 2015. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate // emitLiteral writes a literal chunk and returns the number of bytes written. func emitLiteral(dst *tokens, lit []byte) { ol := int(dst.n) for i, v := range lit { dst.tokens[(i+ol)&maxStoreBlockSize] = token(v) } dst.n += uint16(len(lit)) } // emitCopy writes a copy chunk and returns the number of bytes written. func emitCopy(dst *tokens, offset, length int) { dst.tokens[dst.n] = matchToken(uint32(length-3), uint32(offset-minOffsetSize)) dst.n++ } type snappyEnc interface { Encode(dst *tokens, src []byte) Reset() } func newSnappy(level int) snappyEnc { switch level { case 1: return &snappyL1{} case 2: return &snappyL2{snappyGen: snappyGen{cur: maxStoreBlockSize, prev: make([]byte, 0, maxStoreBlockSize)}} case 3: return &snappyL3{snappyGen: snappyGen{cur: maxStoreBlockSize, prev: make([]byte, 0, maxStoreBlockSize)}} case 4: return &snappyL4{snappyL3{snappyGen: snappyGen{cur: maxStoreBlockSize, prev: make([]byte, 0, maxStoreBlockSize)}}} default: panic("invalid level specified") } } const ( tableBits = 14 // Bits used in the table tableSize = 1 << tableBits // Size of the table tableMask = tableSize - 1 // Mask for table indices. Redundant, but can eliminate bounds checks. tableShift = 32 - tableBits // Right-shift to get the tableBits most significant bits of a uint32. baseMatchOffset = 1 // The smallest match offset baseMatchLength = 3 // The smallest match length per the RFC section 3.2.5 maxMatchOffset = 1 << 15 // The largest match offset ) func load32(b []byte, i int) uint32 { b = b[i : i+4 : len(b)] // Help the compiler eliminate bounds checks on the next line. return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 } func load64(b []byte, i int) uint64 { b = b[i : i+8 : len(b)] // Help the compiler eliminate bounds checks on the next line. return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 } func hash(u uint32) uint32 { return (u * 0x1e35a7bd) >> tableShift } // snappyL1 encapsulates level 1 compression type snappyL1 struct{} func (e *snappyL1) Reset() {} func (e *snappyL1) Encode(dst *tokens, src []byte) { const ( inputMargin = 16 - 1 minNonLiteralBlockSize = 1 + 1 + inputMargin ) // This check isn't in the Snappy implementation, but there, the caller // instead of the callee handles this case. if len(src) < minNonLiteralBlockSize { // We do not fill the token table. // This will be picked up by caller. dst.n = uint16(len(src)) return } // Initialize the hash table. // // The table element type is uint16, as s < sLimit and sLimit < len(src) // and len(src) <= maxStoreBlockSize and maxStoreBlockSize == 65535. var table [tableSize]uint16 // sLimit is when to stop looking for offset/length copies. The inputMargin // lets us use a fast path for emitLiteral in the main loop, while we are // looking for copies. sLimit := len(src) - inputMargin // nextEmit is where in src the next emitLiteral should start from. nextEmit := 0 // The encoded form must start with a literal, as there are no previous // bytes to copy, so we start looking for hash matches at s == 1. s := 1 nextHash := hash(load32(src, s)) for { // Copied from the C++ snappy implementation: // // Heuristic match skipping: If 32 bytes are scanned with no matches // found, start looking only at every other byte. If 32 more bytes are // scanned (or skipped), look at every third byte, etc.. When a match // is found, immediately go back to looking at every byte. This is a // small loss (~5% performance, ~0.1% density) for compressible data // due to more bookkeeping, but for non-compressible data (such as // JPEG) it's a huge win since the compressor quickly "realizes" the // data is incompressible and doesn't bother looking for matches // everywhere. // // The "skip" variable keeps track of how many bytes there are since // the last match; dividing it by 32 (ie. right-shifting by five) gives // the number of bytes to move ahead for each iteration. skip := 32 nextS := s candidate := 0 for { s = nextS bytesBetweenHashLookups := skip >> 5 nextS = s + bytesBetweenHashLookups skip += bytesBetweenHashLookups if nextS > sLimit { goto emitRemainder } candidate = int(table[nextHash&tableMask]) table[nextHash&tableMask] = uint16(s) nextHash = hash(load32(src, nextS)) if s-candidate <= maxMatchOffset && load32(src, s) == load32(src, candidate) { break } } // A 4-byte match has been found. We'll later see if more than 4 bytes // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit // them as literal bytes. emitLiteral(dst, src[nextEmit:s]) // Call emitCopy, and then see if another emitCopy could be our next // move. Repeat until we find no match for the input immediately after // what was consumed by the last emitCopy call. // // If we exit this loop normally then we need to call emitLiteral next, // though we don't yet know how big the literal will be. We handle that // by proceeding to the next iteration of the main loop. We also can // exit this loop via goto if we get close to exhausting the input. for { // Invariant: we have a 4-byte match at s, and no need to emit any // literal bytes prior to s. base := s // Extend the 4-byte match as long as possible. // // This is an inlined version of Snappy's: // s = extendMatch(src, candidate+4, s+4) s += 4 s1 := base + maxMatchLength if s1 > len(src) { s1 = len(src) } a := src[s:s1] b := src[candidate+4:] b = b[:len(a)] l := len(a) for i := range a { if a[i] != b[i] { l = i break } } s += l // matchToken is flate's equivalent of Snappy's emitCopy. dst.tokens[dst.n] = matchToken(uint32(s-base-baseMatchLength), uint32(base-candidate-baseMatchOffset)) dst.n++ nextEmit = s if s >= sLimit { goto emitRemainder } // We could immediately start working at s now, but to improve // compression we first update the hash table at s-1 and at s. If // another emitCopy is not our next move, also calculate nextHash // at s+1. At least on GOARCH=amd64, these three hash calculations // are faster as one load64 call (with some shifts) instead of // three load32 calls. x := load64(src, s-1) prevHash := hash(uint32(x >> 0)) table[prevHash&tableMask] = uint16(s - 1) currHash := hash(uint32(x >> 8)) candidate = int(table[currHash&tableMask]) table[currHash&tableMask] = uint16(s) if s-candidate > maxMatchOffset || uint32(x>>8) != load32(src, candidate) { nextHash = hash(uint32(x >> 16)) s++ break } } } emitRemainder: if nextEmit < len(src) { emitLiteral(dst, src[nextEmit:]) } } type tableEntry struct { val uint32 offset int32 } func load3232(b []byte, i int32) uint32 { b = b[i : i+4 : len(b)] // Help the compiler eliminate bounds checks on the next line. return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 } func load6432(b []byte, i int32) uint64 { b = b[i : i+8 : len(b)] // Help the compiler eliminate bounds checks on the next line. return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 } // snappyGen maintains the table for matches, // and the previous byte block for level 2. // This is the generic implementation. type snappyGen struct { prev []byte cur int32 } // snappyGen maintains the table for matches, // and the previous byte block for level 2. // This is the generic implementation. type snappyL2 struct { snappyGen table [tableSize]tableEntry } // EncodeL2 uses a similar algorithm to level 1, but is capable // of matching across blocks giving better compression at a small slowdown. func (e *snappyL2) Encode(dst *tokens, src []byte) { const ( inputMargin = 8 - 1 minNonLiteralBlockSize = 1 + 1 + inputMargin ) // Protect against e.cur wraparound. if e.cur > 1<<30 { for i := range e.table[:] { e.table[i] = tableEntry{} } e.cur = maxStoreBlockSize } // This check isn't in the Snappy implementation, but there, the caller // instead of the callee handles this case. if len(src) < minNonLiteralBlockSize { // We do not fill the token table. // This will be picked up by caller. dst.n = uint16(len(src)) e.cur += maxStoreBlockSize e.prev = e.prev[:0] return } // sLimit is when to stop looking for offset/length copies. The inputMargin // lets us use a fast path for emitLiteral in the main loop, while we are // looking for copies. sLimit := int32(len(src) - inputMargin) // nextEmit is where in src the next emitLiteral should start from. nextEmit := int32(0) s := int32(0) cv := load3232(src, s) nextHash := hash(cv) for { // Copied from the C++ snappy implementation: // // Heuristic match skipping: If 32 bytes are scanned with no matches // found, start looking only at every other byte. If 32 more bytes are // scanned (or skipped), look at every third byte, etc.. When a match // is found, immediately go back to looking at every byte. This is a // small loss (~5% performance, ~0.1% density) for compressible data // due to more bookkeeping, but for non-compressible data (such as // JPEG) it's a huge win since the compressor quickly "realizes" the // data is incompressible and doesn't bother looking for matches // everywhere. // // The "skip" variable keeps track of how many bytes there are since // the last match; dividing it by 32 (ie. right-shifting by five) gives // the number of bytes to move ahead for each iteration. skip := int32(32) nextS := s var candidate tableEntry for { s = nextS bytesBetweenHashLookups := skip >> 5 nextS = s + bytesBetweenHashLookups skip += bytesBetweenHashLookups if nextS > sLimit { goto emitRemainder } candidate = e.table[nextHash&tableMask] now := load3232(src, nextS) e.table[nextHash&tableMask] = tableEntry{offset: s + e.cur, val: cv} nextHash = hash(now) offset := s - (candidate.offset - e.cur) if offset > maxMatchOffset || cv != candidate.val { // Out of range or not matched. cv = now continue } break } // A 4-byte match has been found. We'll later see if more than 4 bytes // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit // them as literal bytes. emitLiteral(dst, src[nextEmit:s]) // Call emitCopy, and then see if another emitCopy could be our next // move. Repeat until we find no match for the input immediately after // what was consumed by the last emitCopy call. // // If we exit this loop normally then we need to call emitLiteral next, // though we don't yet know how big the literal will be. We handle that // by proceeding to the next iteration of the main loop. We also can // exit this loop via goto if we get close to exhausting the input. for { // Invariant: we have a 4-byte match at s, and no need to emit any // literal bytes prior to s. // Extend the 4-byte match as long as possible. // s += 4 t := candidate.offset - e.cur + 4 l := e.matchlen(s, t, src) // matchToken is flate's equivalent of Snappy's emitCopy. (length,offset) dst.tokens[dst.n] = matchToken(uint32(l+4-baseMatchLength), uint32(s-t-baseMatchOffset)) dst.n++ s += l nextEmit = s if s >= sLimit { t += l // Index first pair after match end. if int(t+4) < len(src) && t > 0 { cv := load3232(src, t) e.table[hash(cv)&tableMask] = tableEntry{offset: t + e.cur, val: cv} } goto emitRemainder } // We could immediately start working at s now, but to improve // compression we first update the hash table at s-1 and at s. If // another emitCopy is not our next move, also calculate nextHash // at s+1. At least on GOARCH=amd64, these three hash calculations // are faster as one load64 call (with some shifts) instead of // three load32 calls. x := load6432(src, s-1) prevHash := hash(uint32(x)) e.table[prevHash&tableMask] = tableEntry{offset: e.cur + s - 1, val: uint32(x)} x >>= 8 currHash := hash(uint32(x)) candidate = e.table[currHash&tableMask] e.table[currHash&tableMask] = tableEntry{offset: e.cur + s, val: uint32(x)} offset := s - (candidate.offset - e.cur) if offset > maxMatchOffset || uint32(x) != candidate.val { cv = uint32(x >> 8) nextHash = hash(cv) s++ break } } } emitRemainder: if int(nextEmit) < len(src) { emitLiteral(dst, src[nextEmit:]) } e.cur += int32(len(src)) e.prev = e.prev[:len(src)] copy(e.prev, src) } type tableEntryPrev struct { Cur tableEntry Prev tableEntry } // snappyL3 type snappyL3 struct { snappyGen table [tableSize]tableEntryPrev } // Encode uses a similar algorithm to level 2, will check up to two candidates. func (e *snappyL3) Encode(dst *tokens, src []byte) { const ( inputMargin = 8 - 1 minNonLiteralBlockSize = 1 + 1 + inputMargin ) // Protect against e.cur wraparound. if e.cur > 1<<30 { for i := range e.table[:] { e.table[i] = tableEntryPrev{} } e.snappyGen = snappyGen{cur: maxStoreBlockSize, prev: e.prev[:0]} } // This check isn't in the Snappy implementation, but there, the caller // instead of the callee handles this case. if len(src) < minNonLiteralBlockSize { // We do not fill the token table. // This will be picked up by caller. dst.n = uint16(len(src)) e.cur += maxStoreBlockSize e.prev = e.prev[:0] return } // sLimit is when to stop looking for offset/length copies. The inputMargin // lets us use a fast path for emitLiteral in the main loop, while we are // looking for copies. sLimit := int32(len(src) - inputMargin) // nextEmit is where in src the next emitLiteral should start from. nextEmit := int32(0) s := int32(0) cv := load3232(src, s) nextHash := hash(cv) for { // Copied from the C++ snappy implementation: // // Heuristic match skipping: If 32 bytes are scanned with no matches // found, start looking only at every other byte. If 32 more bytes are // scanned (or skipped), look at every third byte, etc.. When a match // is found, immediately go back to looking at every byte. This is a // small loss (~5% performance, ~0.1% density) for compressible data // due to more bookkeeping, but for non-compressible data (such as // JPEG) it's a huge win since the compressor quickly "realizes" the // data is incompressible and doesn't bother looking for matches // everywhere. // // The "skip" variable keeps track of how many bytes there are since // the last match; dividing it by 32 (ie. right-shifting by five) gives // the number of bytes to move ahead for each iteration. skip := int32(32) nextS := s var candidate tableEntry for { s = nextS bytesBetweenHashLookups := skip >> 5 nextS = s + bytesBetweenHashLookups skip += bytesBetweenHashLookups if nextS > sLimit { goto emitRemainder } candidates := e.table[nextHash&tableMask] now := load3232(src, nextS) e.table[nextHash&tableMask] = tableEntryPrev{Prev: candidates.Cur, Cur: tableEntry{offset: s + e.cur, val: cv}} nextHash = hash(now) // Check both candidates candidate = candidates.Cur if cv == candidate.val { offset := s - (candidate.offset - e.cur) if offset <= maxMatchOffset { break } } else { // We only check if value mismatches. // Offset will always be invalid in other cases. candidate = candidates.Prev if cv == candidate.val { offset := s - (candidate.offset - e.cur) if offset <= maxMatchOffset { break } } } cv = now } // A 4-byte match has been found. We'll later see if more than 4 bytes // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit // them as literal bytes. emitLiteral(dst, src[nextEmit:s]) // Call emitCopy, and then see if another emitCopy could be our next // move. Repeat until we find no match for the input immediately after // what was consumed by the last emitCopy call. // // If we exit this loop normally then we need to call emitLiteral next, // though we don't yet know how big the literal will be. We handle that // by proceeding to the next iteration of the main loop. We also can // exit this loop via goto if we get close to exhausting the input. for { // Invariant: we have a 4-byte match at s, and no need to emit any // literal bytes prior to s. // Extend the 4-byte match as long as possible. // s += 4 t := candidate.offset - e.cur + 4 l := e.matchlen(s, t, src) // matchToken is flate's equivalent of Snappy's emitCopy. (length,offset) dst.tokens[dst.n] = matchToken(uint32(l+4-baseMatchLength), uint32(s-t-baseMatchOffset)) dst.n++ s += l nextEmit = s if s >= sLimit { t += l // Index first pair after match end. if int(t+4) < len(src) && t > 0 { cv := load3232(src, t) nextHash = hash(cv) e.table[nextHash&tableMask] = tableEntryPrev{ Prev: e.table[nextHash&tableMask].Cur, Cur: tableEntry{offset: e.cur + t, val: cv}, } } goto emitRemainder } // We could immediately start working at s now, but to improve // compression we first update the hash table at s-3 to s. If // another emitCopy is not our next move, also calculate nextHash // at s+1. At least on GOARCH=amd64, these three hash calculations // are faster as one load64 call (with some shifts) instead of // three load32 calls. x := load6432(src, s-3) prevHash := hash(uint32(x)) e.table[prevHash&tableMask] = tableEntryPrev{ Prev: e.table[prevHash&tableMask].Cur, Cur: tableEntry{offset: e.cur + s - 3, val: uint32(x)}, } x >>= 8 prevHash = hash(uint32(x)) e.table[prevHash&tableMask] = tableEntryPrev{ Prev: e.table[prevHash&tableMask].Cur, Cur: tableEntry{offset: e.cur + s - 2, val: uint32(x)}, } x >>= 8 prevHash = hash(uint32(x)) e.table[prevHash&tableMask] = tableEntryPrev{ Prev: e.table[prevHash&tableMask].Cur, Cur: tableEntry{offset: e.cur + s - 1, val: uint32(x)}, } x >>= 8 currHash := hash(uint32(x)) candidates := e.table[currHash&tableMask] cv = uint32(x) e.table[currHash&tableMask] = tableEntryPrev{ Prev: candidates.Cur, Cur: tableEntry{offset: s + e.cur, val: cv}, } // Check both candidates candidate = candidates.Cur if cv == candidate.val { offset := s - (candidate.offset - e.cur) if offset <= maxMatchOffset { continue } } else { // We only check if value mismatches. // Offset will always be invalid in other cases. candidate = candidates.Prev if cv == candidate.val { offset := s - (candidate.offset - e.cur) if offset <= maxMatchOffset { continue } } } cv = uint32(x >> 8) nextHash = hash(cv) s++ break } } emitRemainder: if int(nextEmit) < len(src) { emitLiteral(dst, src[nextEmit:]) } e.cur += int32(len(src)) e.prev = e.prev[:len(src)] copy(e.prev, src) } // snappyL4 type snappyL4 struct { snappyL3 } // Encode uses a similar algorithm to level 3, // but will check up to two candidates if first isn't long enough. func (e *snappyL4) Encode(dst *tokens, src []byte) { const ( inputMargin = 8 - 3 minNonLiteralBlockSize = 1 + 1 + inputMargin matchLenGood = 12 ) // Protect against e.cur wraparound. if e.cur > 1<<30 { for i := range e.table[:] { e.table[i] = tableEntryPrev{} } e.snappyGen = snappyGen{cur: maxStoreBlockSize, prev: e.prev[:0]} } // This check isn't in the Snappy implementation, but there, the caller // instead of the callee handles this case. if len(src) < minNonLiteralBlockSize { // We do not fill the token table. // This will be picked up by caller. dst.n = uint16(len(src)) e.cur += maxStoreBlockSize e.prev = e.prev[:0] return } // sLimit is when to stop looking for offset/length copies. The inputMargin // lets us use a fast path for emitLiteral in the main loop, while we are // looking for copies. sLimit := int32(len(src) - inputMargin) // nextEmit is where in src the next emitLiteral should start from. nextEmit := int32(0) s := int32(0) cv := load3232(src, s) nextHash := hash(cv) for { // Copied from the C++ snappy implementation: // // Heuristic match skipping: If 32 bytes are scanned with no matches // found, start looking only at every other byte. If 32 more bytes are // scanned (or skipped), look at every third byte, etc.. When a match // is found, immediately go back to looking at every byte. This is a // small loss (~5% performance, ~0.1% density) for compressible data // due to more bookkeeping, but for non-compressible data (such as // JPEG) it's a huge win since the compressor quickly "realizes" the // data is incompressible and doesn't bother looking for matches // everywhere. // // The "skip" variable keeps track of how many bytes there are since // the last match; dividing it by 32 (ie. right-shifting by five) gives // the number of bytes to move ahead for each iteration. skip := int32(32) nextS := s var candidate tableEntry var candidateAlt tableEntry for { s = nextS bytesBetweenHashLookups := skip >> 5 nextS = s + bytesBetweenHashLookups skip += bytesBetweenHashLookups if nextS > sLimit { goto emitRemainder } candidates := e.table[nextHash&tableMask] now := load3232(src, nextS) e.table[nextHash&tableMask] = tableEntryPrev{Prev: candidates.Cur, Cur: tableEntry{offset: s + e.cur, val: cv}} nextHash = hash(now) // Check both candidates candidate = candidates.Cur if cv == candidate.val { offset := s - (candidate.offset - e.cur) if offset < maxMatchOffset { offset = s - (candidates.Prev.offset - e.cur) if cv == candidates.Prev.val && offset < maxMatchOffset { candidateAlt = candidates.Prev } break } } else { // We only check if value mismatches. // Offset will always be invalid in other cases. candidate = candidates.Prev if cv == candidate.val { offset := s - (candidate.offset - e.cur) if offset < maxMatchOffset { break } } } cv = now } // A 4-byte match has been found. We'll later see if more than 4 bytes // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit // them as literal bytes. emitLiteral(dst, src[nextEmit:s]) // Call emitCopy, and then see if another emitCopy could be our next // move. Repeat until we find no match for the input immediately after // what was consumed by the last emitCopy call. // // If we exit this loop normally then we need to call emitLiteral next, // though we don't yet know how big the literal will be. We handle that // by proceeding to the next iteration of the main loop. We also can // exit this loop via goto if we get close to exhausting the input. for { // Invariant: we have a 4-byte match at s, and no need to emit any // literal bytes prior to s. // Extend the 4-byte match as long as possible. // s += 4 t := candidate.offset - e.cur + 4 l := e.matchlen(s, t, src) // Try alternative candidate if match length < matchLenGood. if l < matchLenGood-4 && candidateAlt.offset != 0 { t2 := candidateAlt.offset - e.cur + 4 l2 := e.matchlen(s, t2, src) if l2 > l { l = l2 t = t2 } } // matchToken is flate's equivalent of Snappy's emitCopy. (length,offset) dst.tokens[dst.n] = matchToken(uint32(l+4-baseMatchLength), uint32(s-t-baseMatchOffset)) dst.n++ s += l nextEmit = s if s >= sLimit { t += l // Index first pair after match end. if int(t+4) < len(src) && t > 0 { cv := load3232(src, t) nextHash = hash(cv) e.table[nextHash&tableMask] = tableEntryPrev{ Prev: e.table[nextHash&tableMask].Cur, Cur: tableEntry{offset: e.cur + t, val: cv}, } } goto emitRemainder } // We could immediately start working at s now, but to improve // compression we first update the hash table at s-3 to s. If // another emitCopy is not our next move, also calculate nextHash // at s+1. At least on GOARCH=amd64, these three hash calculations // are faster as one load64 call (with some shifts) instead of // three load32 calls. x := load6432(src, s-3) prevHash := hash(uint32(x)) e.table[prevHash&tableMask] = tableEntryPrev{ Prev: e.table[prevHash&tableMask].Cur, Cur: tableEntry{offset: e.cur + s - 3, val: uint32(x)}, } x >>= 8 prevHash = hash(uint32(x)) e.table[prevHash&tableMask] = tableEntryPrev{ Prev: e.table[prevHash&tableMask].Cur, Cur: tableEntry{offset: e.cur + s - 2, val: uint32(x)}, } x >>= 8 prevHash = hash(uint32(x)) e.table[prevHash&tableMask] = tableEntryPrev{ Prev: e.table[prevHash&tableMask].Cur, Cur: tableEntry{offset: e.cur + s - 1, val: uint32(x)}, } x >>= 8 currHash := hash(uint32(x)) candidates := e.table[currHash&tableMask] cv = uint32(x) e.table[currHash&tableMask] = tableEntryPrev{ Prev: candidates.Cur, Cur: tableEntry{offset: s + e.cur, val: cv}, } // Check both candidates candidate = candidates.Cur candidateAlt = tableEntry{} if cv == candidate.val { offset := s - (candidate.offset - e.cur) if offset <= maxMatchOffset { offset = s - (candidates.Prev.offset - e.cur) if cv == candidates.Prev.val && offset <= maxMatchOffset { candidateAlt = candidates.Prev } continue } } else { // We only check if value mismatches. // Offset will always be invalid in other cases. candidate = candidates.Prev if cv == candidate.val { offset := s - (candidate.offset - e.cur) if offset <= maxMatchOffset { continue } } } cv = uint32(x >> 8) nextHash = hash(cv) s++ break } } emitRemainder: if int(nextEmit) < len(src) { emitLiteral(dst, src[nextEmit:]) } e.cur += int32(len(src)) e.prev = e.prev[:len(src)] copy(e.prev, src) } func (e *snappyGen) matchlen(s, t int32, src []byte) int32 { s1 := int(s) + maxMatchLength - 4 if s1 > len(src) { s1 = len(src) } // If we are inside the current block if t >= 0 { b := src[t:] a := src[s:s1] b = b[:len(a)] // Extend the match to be as long as possible. for i := range a { if a[i] != b[i] { return int32(i) } } return int32(len(a)) } // We found a match in the previous block. tp := int32(len(e.prev)) + t if tp < 0 { return 0 } // Extend the match to be as long as possible. a := src[s:s1] b := e.prev[tp:] if len(b) > len(a) { b = b[:len(a)] } a = a[:len(b)] for i := range b { if a[i] != b[i] { return int32(i) } } // If we reached our limit, we matched everything we are // allowed to in the previous block and we return. n := int32(len(b)) if int(s+n) == s1 { return n } // Continue looking for more matches in the current block. a = src[s+n : s1] b = src[:len(a)] for i := range a { if a[i] != b[i] { return int32(i) + n } } return int32(len(a)) + n } // Reset the encoding table. func (e *snappyGen) Reset() { e.prev = e.prev[:0] e.cur += maxMatchOffset } compress-1.2.1/flate/testdata/000077500000000000000000000000001303637052300162545ustar00rootroot00000000000000compress-1.2.1/flate/testdata/huffman-null-max.dyn.expect000066400000000000000000000001161303637052300234340ustar00rootroot00000000000000compress-1.2.1/flate/testdata/huffman-null-max.dyn.expect-noinput000066400000000000000000000001161303637052300251260ustar00rootroot00000000000000compress-1.2.1/flate/testdata/huffman-null-max.golden000066400000000000000000000200141303637052300226220ustar00rootroot00000000000000compress-1.2.1/flate/testdata/huffman-null-max.in000066400000000000000000001777771303637052300220150ustar00rootroot00000000000000compress-1.2.1/flate/testdata/huffman-null-max.wb.expect000066400000000000000000000001161303637052300232520ustar00rootroot00000000000000compress-1.2.1/flate/testdata/huffman-null-max.wb.expect-noinput000066400000000000000000000001161303637052300247440ustar00rootroot00000000000000compress-1.2.1/flate/testdata/huffman-pi.dyn.expect000066400000000000000000000032401303637052300223100ustar00rootroot00000000000000$]`woÛss: >AxZUtUybTR- mʊ=LMI7yQ}6fu!*/+fzCu"YdQ>۾|#rcAR=[uWyrg9}Y7{a.2⌲z|˃hv'RMlNd lF;l߁䥒‚5]& V2zF5L5\X ~JR!b-G4-qen :\RW5[5ÙDSbfo-ս;`)Iv279"8\4s]Tr4V{P c-5=e=IqD*nCMj}ѐ&]mj/Z#Dlխی\kYӶ [tC[gjd&ߛ$r{6Oǔ07̷`<ؗbΐWbqfϵ9_Rٻm %q⨏ )u퓾Yg'Ìnrᆽ̿ڙ!֝R11I$RڗN̺QSnhy9qS_?Q3JfqZb Dc!lrKVNҫsNEy^ۙ+7 ˴бPy3.';RȠ Ԕ ՚d6Z хN]Ldi왬Zm:>hCfԹ %}l% }z ^߰A7G5qAd][:na'A Ei7)# n;\s26>gxYjf~X:8a=3fcncaSn붢3^TSlݮlkD?u8V8 57OӠq*oeezhfsТ|rk\ޅvRFFL?kmwjNè,/fBX6U[ a;a#WX=bz][Jtsa:v.J B!1.//aw{`{quz[s\g=K8+oRMvxI&sK^I.Sڽuk[z|qu\b+#'<-#[&̄]pޔkCެ\Mq, Hj$'"] ÝMaa~pUْ,W  r*#႕.5;mJp]__kw% k,ҥ*s0Cp%+_p ݝ< o þ dUE:|5øt.AxZUtUybTR- mʊ=LMI7yQ}6fu!*/+fzCu"YdQ>۾|#rcAR=[uWyrg9}Y7{a.2⌲z|˃hv'RMlNd lF;l߁䥒‚5]& V2zF5L5\X ~JR!b-G4-qen :\RW5[5ÙDSbfo-ս;`)Iv279"8\4s]Tr4V{P c-5=e=IqD*nCMj}ѐ&]mj/Z#Dlխی\kYӶ [tC[gjd&ߛ$r{6Oǔ07̷`<ؗbΐWbqfϵ9_Rٻm %q⨏ )u퓾Yg'Ìnrᆽ̿ڙ!֝R11I$RڗN̺QSnhy9qS_?Q3JfqZb Dc!lrKVNҫsNEy^ۙ+7 ˴бPy3.';RȠ Ԕ ՚d6Z хN]Ldi왬Zm:>hCfԹ %}l% }z ^߰A7G5qAd][:na'A Ei7)# n;\s26>gxYjf~X:8a=3fcncaSn붢3^TSlݮlkD?u8V8 57OӠq*oeezhfsТ|rk\ޅvRFFL?kmwjNè,/fBX6U[ a;a#WX=bz][Jtsa:v.J B!1.//aw{`{quz[s\g=K8+oRMvxI&sK^I.Sڽuk[z|qu\b+#'<-#[&̄]pޔkCެ\Mq, Hj$'"] ÝMaa~pUْ,W  r*#႕.5;mJp]__kw% k,ҥ*s0Cp%+_p ݝ< o þ dUE:|5øt.ϭgY{)1vSo+Nq3/]ugFod/]OYt5p}3Gzߵc{B2y6c|╥_{Onn8Ӿ ogF@<ٻ{K==t`bhWtVYs@ wÛ#xl6ﶗa+z6Q5Kɛ5Wozt4Ok yx&VN1wv{Ԭ;ܜDdwBuDwaoNL(~{g {uT;OomVwϻjb[ixŃ [.Eh\U"%4/8h+3ݻxi,' (j4ϗwdɬwuxOw2Ue}wi -wڳe^A{Y'Yk[hu{exg[XK7#ۣX*Qu+wif+G6'ճb 4Awz9^o^_f&0o<Z][܂w4 H10Jx:",h׹W=w^ i\FN"[iV\99ΰOt^}=;%ƙ1wՎ{݆'Ćץ<\FȽxw^QT~;9δN%^:T/δΜKuiU4zGL9wCyYYxn|GyWKZcu5} 44^wqz:΋S!Rիʇa{3{&]^ywKOFXCaI<=ew >w38p;ʆ(g+ϗTŋvV}{טjOLotG<Ϗrp|K`y\^)LzY&ä]<Ƿcʑ{q;9,tvS5%a{aζ)sV2N{;Ix&(hLqj^x܃Y<>[-þCPgq:{#wFˑ /L/ ӘoatǢ{A^_9}kW TTF@uǔ9,|v2hivo]~M޼{ݹ{"+Zpy y(vg="hGn4V[>Na{4kz]iO{~huv멂|p罋7Rr{XEֈ-tEC0L0yN{v8n1 )(owsN^[a1yBxnS\y>`xn'VAG8uF YӦQ}Gi9)}FoMݘ;iչ)Āب4compress-1.2.1/flate/testdata/huffman-pi.in000066400000000000000000000071241303637052300206420ustar00rootroot000000000000003.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180compress-1.2.1/flate/testdata/huffman-pi.wb.expect000066400000000000000000000032401303637052300221260ustar00rootroot00000000000000$]`woÛss: >AxZUtUybTR- mʊ=LMI7yQ}6fu!*/+fzCu"YdQ>۾|#rcAR=[uWyrg9}Y7{a.2⌲z|˃hv'RMlNd lF;l߁䥒‚5]& V2zF5L5\X ~JR!b-G4-qen :\RW5[5ÙDSbfo-ս;`)Iv279"8\4s]Tr4V{P c-5=e=IqD*nCMj}ѐ&]mj/Z#Dlխی\kYӶ [tC[gjd&ߛ$r{6Oǔ07̷`<ؗbΐWbqfϵ9_Rٻm %q⨏ )u퓾Yg'Ìnrᆽ̿ڙ!֝R11I$RڗN̺QSnhy9qS_?Q3JfqZb Dc!lrKVNҫsNEy^ۙ+7 ˴бPy3.';RȠ Ԕ ՚d6Z хN]Ldi왬Zm:>hCfԹ %}l% }z ^߰A7G5qAd][:na'A Ei7)# n;\s26>gxYjf~X:8a=3fcncaSn붢3^TSlݮlkD?u8V8 57OӠq*oeezhfsТ|rk\ޅvRFFL?kmwjNè,/fBX6U[ a;a#WX=bz][Jtsa:v.J B!1.//aw{`{quz[s\g=K8+oRMvxI&sK^I.Sڽuk[z|qu\b+#'<-#[&̄]pޔkCެ\Mq, Hj$'"] ÝMaa~pUْ,W  r*#႕.5;mJp]__kw% k,ҥ*s0Cp%+_p ݝ< o þ dUE:|5øt.AxZUtUybTR- mʊ=LMI7yQ}6fu!*/+fzCu"YdQ>۾|#rcAR=[uWyrg9}Y7{a.2⌲z|˃hv'RMlNd lF;l߁䥒‚5]& V2zF5L5\X ~JR!b-G4-qen :\RW5[5ÙDSbfo-ս;`)Iv279"8\4s]Tr4V{P c-5=e=IqD*nCMj}ѐ&]mj/Z#Dlխی\kYӶ [tC[gjd&ߛ$r{6Oǔ07̷`<ؗbΐWbqfϵ9_Rٻm %q⨏ )u퓾Yg'Ìnrᆽ̿ڙ!֝R11I$RڗN̺QSnhy9qS_?Q3JfqZb Dc!lrKVNҫsNEy^ۙ+7 ˴бPy3.';RȠ Ԕ ՚d6Z хN]Ldi왬Zm:>hCfԹ %}l% }z ^߰A7G5qAd][:na'A Ei7)# n;\s26>gxYjf~X:8a=3fcncaSn붢3^TSlݮlkD?u8V8 57OӠq*oeezhfsТ|rk\ޅvRFFL?kmwjNè,/fBX6U[ a;a#WX=bz][Jtsa:v.J B!1.//aw{`{quz[s\g=K8+oRMvxI&sK^I.Sڽuk[z|qu\b+#'<-#[&̄]pޔkCެ\Mq, Hj$'"] ÝMaa~pUْ,W  r*#႕.5;mJp]__kw% k,ҥ*s0Cp%+_p ݝ< o þ dUE:|5øt.lsmIGH1Y4[ 0ˆ[|]o# -#ulpfٱnYԀYwC8ɯ02 F=gnrN!O{k*w(b kQC9/lu>5C.u d #)<߳OGU/nCL|_L|0" GMk$,׾nzj0%tKjNvI_c<~~ Of.Hˮ<ՍBm @GNώۦ zf)82`TcHc3neƺzCqhiEk ѻpѴdb457Fy W+ZjMwqEOS>;Gs\_:CgfgX@"i8gdPgBnl_ۻwu~2*NC-BSLEɋѴ%yrӼP ;Ԧ=x,i$t0^*VMh(NfŰnDuH浹4 c#>>?3ZF]}} O~AGU螇 SP-xt6quI)0_aaKm2(gh?q#yEE R2@v?}O&osvD*!@Ac2/ lL_/~L40nxNW,U:K8!sdϷ tx Uv6UB)1۰ߡghR^-xJ\DM>";E8DjoTt>NAqrSFÃZ-FGWFwaPuIOIy0^f N&L[6{eU)0;6,2QgSGx76} -zXyx֋_P*U/nTI ^c$~?b,{!46Fk$R)3s&W HRėcompress-1.2.1/flate/testdata/huffman-rand-1k.golden000066400000000000000000000017551303637052300223350ustar00rootroot00000000000000vH % ɷ}>lsmIGH1Y4[ 0ˆ[|]o# -#ulpfٱnYԀYwC8ɯ02 F=gnrN!O{k*w(b kQC9/lu>5C.u d #)<߳OGU/nCL|_L|0" GMk$,׾nzj0%tKjNvI_c<~~ Of.Hˮ<ՍBm @GNώۦ zf)82`TcHc3neƺzCqhiEk ѻpѴdb457Fy W+ZjMwqEOS>;Gs\_:CgfgX@"i8gdPgBnl_ۻwu~lsmIGH1Y4[ 0ˆ[|]o# -#ulpfٱnYԀYwC8ɯ02 F=gnrN!O{k*w(b kQC9/lu>5C.u d #)<߳OGU/nCL|_L|0" GMk$,׾nzj0%tKjNvI_c<~~ Of.Hˮ<ՍBm @GNώۦ zf)82`TcHc3neƺzCqhiEk ѻpѴdb457Fy W+ZjMwqEOS>;Gs\_:CgfgX@"i8gdPgBnl_ۻwu~lsmIGH1Y4[ 0ˆ[|]o# -#ulpfٱnYԀYwC8ɯ02 F=gnrN!O{k*w(b kQC9/lu>5C.u d #)<߳OGU/nCL|_L|0" GMk$,׾nzj0%tKjNvI_c<~~ Of.Hˮ<ՍBm @GNώۦ zf)82`TcHc3neƺzCqhiEk ѻpѴdb457Fy W+ZjMwqEOS>;Gs\_:CgfgX@"i8gdPgBnl_ۻwu~2*NC-BSLEɋѴ%yrӼP ;Ԧ=x,i$t0^*VMh(NfŰnDuH浹4 c#>>?3ZF]}} O~AGU螇 SP-xt6quI)0_aaKm2(gh?q#yEE R2@v?}O&osvD*!@Ac2/ lL_/~L40nxNW,U:K8!sdϷ tx Uv6UB)1۰ߡghR^-xJ\DM>";E8DjoTt>NAqrSFÃZ-FGWFwaPuIOIy0^f N&L[6{eU)0;6,2QgSGx76} -zXyx֋_P*U/nTI ^c$~?b,{!46Fk$R)3s&W HRėcompress-1.2.1/flate/testdata/huffman-rand-limit.dyn.expect000066400000000000000000000003451303637052300237430ustar00rootroot00000000000000J``"+oQQAC*:E(E:ԡEa*(KETtCt@;;:2˦8.n{} n&Eh!R5not9*xS7:Ljeru:`}34x~4ax}BUk*cԋpO,pusb+[]Q0{62xu)&f) compress-1.2.1/flate/testdata/huffman-rand-limit.dyn.expect-noinput000066400000000000000000000003451303637052300254350ustar00rootroot00000000000000J``"+oQQAC*:E(E:ԡEa*(KETtCt@;;:2˦8.n{} n&Eh!R5not9*xS7:Ljeru:`}34x~4ax}BUk*cԋpO,pusb+[]Q0{62xu)&f) compress-1.2.1/flate/testdata/huffman-rand-limit.golden000066400000000000000000000003741303637052300231340ustar00rootroot00000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa vH % ɷ}>lsmIGH1Y4[ 0ˆ[|]o# -#ulpfٱnYԀYwC8ɯ02 F=gnrN!O{k*w(b kQC9/lu>5C.u compress-1.2.1/flate/testdata/huffman-rand-limit.in000066400000000000000000000003671303637052300222740ustar00rootroot00000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa vH % ɷ}>lsmIGH1Y4[ 0ˆ[|]o# -#ulpfٱnYԀYwC8ɯ02 F=gnrN!O{k*w(b kQC9/lu>5C.u compress-1.2.1/flate/testdata/huffman-rand-limit.wb.expect000066400000000000000000000002721303637052300235600ustar00rootroot00000000000000J=̃ujCz_(o;=WoS|^Izwy /}2g%NAC5"+*%gi8/9ꕆ'RvMϻ^4O؃+,Kξ5\[ Wg:[/ĘSj%^compress-1.2.1/flate/testdata/huffman-rand-limit.wb.expect-noinput000066400000000000000000000002721303637052300252520ustar00rootroot00000000000000J=̃ujCz_(o;=WoS|^Izwy /}2g%NAC5"+*%gi8/9ꕆ'RvMϻ^4O؃+,Kξ5\[ Wg:[/ĘSj%^compress-1.2.1/flate/testdata/huffman-rand-max.golden000066400000000000000000002000041303637052300225730ustar00rootroot00000000000000vH % ɷ}>lsmIGH1Y4[ 0ˆ[|]o# -#ulpfٱnYԀYwC8ɯ02 F=gnrN!O{k*w(b kQC9/lu>5C.u d #)<߳OGU/nCL|_L|0" GMk$,׾nzj0%tKjNvI_c<~~ Of.Hˮ<ՍBm @GNώۦ zf)82`TcHc3neƺzCqhiEk ѻpѴdb457Fy W+ZjMwqEOS>;Gs\_:CgfgX@"i8gdPgBnl_ۻwu~p6fȦkxL 1s5oP%+7#`' i:M{ Ɛ1YQ12蝛k9]lL # ~ ^2N1 ++vXF"$YڹZa{H&9cuH)ʡa?bm& Ne]*G̛\I5 dxd#9@\(. lߝh6ݶ1M Fywp|FM{F~{{yq8I>5ZAwpհ0ur^w;ݺDm{ +\4v]`>6#`6?ڈy2ϩA+ʙ%Ȼ&\#,yVW?rD=1Lx@#qxL%WϣVإI8s~( WN+N#$ߝ 2KCKHuwq':n|$* G]DʦpFENNpS:j_0ˋ]4ys^7&!{ORcn g ދ`#s1IUWs`h,c"4U?ZÊ=rj[:x&Q5?>v$c:Xsw?0omjeKiFWK? |ڙpk㶇)C::-GvLq -`e%NăY>Yu~8*L ޴zϚ\Efyс#HMhMŹ!V9aVexР/ ?7"lɷ]${C7La _]瘱B'_ۘGrr݋r%z/I[jQ,^dߣGJ̰q_zŪ8KBk`6'7s8b+6eɈmoDhE+d>R.tdwUjr U7=^P`Dg%T2$ >{n4Q%-.D,ّa5ZLsDPQ%Xs[.3ZܺVۡDpǕpczЦϐ(nWOUU%'$]/ra:mL׀'v98}:S#M#KOKx/nc4 Ԇ^&RF)^c0R\¸:KnmJ R<ϸF/σJ+NWin%Gf c,$EſS`įfYF-NkѬ2@%D|5(-w} 1:s1(qE40񴝑*!w,A6xS4jQX̠k)~r7-leP|@Y}ۈzE A#"ˉB,['CB.ӒU)")ºZElJ#& YUNkڰMTgi'aMVof5qf$?Gfe𣜥=#΃j֍byu6lPg+.*4*2LOxԷ%4ʩhnbYl3͙,FY 8VTtcK:eb3'6-v"=Ɗ B|v5='8 hqi漰o׊_Vk؈p*{oՒpYoFC@w kvĦ]˯Hke:"8O-^]{΁q:P5Fh VqOύ BpFuS|bH< YT:kE6W"5axwhƏ,ZwezQ(MaCw1ݨ=D J'L>CI [Q#&@ֽ#@Je:: +@b7%-1Bwdh"PlEþv֛bT 󵣫)9"A6&Gj#H9pVcSl5 ~/"`ݘgl;31a\np`\SjSxT a[Dfϥ2t iL<0R%T$NptUKmصsKk glI$K#PȉƑ=qqN56gϟϲPzWP֫Bz/:{"BAMۊPdMAGF+%ZazExHcʢ-qt/V|\ P|CSF& Jrᛕ] -̑T~`%q̈́ ?FL5s. \Q,oyz{m]vw|۹-DB/܎xemwu谤Sɓ}pp_۫X2ϻ)hToʁ,㨒^.HL_ij-nr7HiWMOB?i\ilLzF~1^vb3AX+RxluD´2⓴ց9)U+,29ej_T1*_0eL,-5N C5s#aM[PQٗf8i Ge~E/4TȻ|'`b*-z}( F&Vd̶|RXcZ咼E-A7Y[+'+xO\";& $[$z&7ZzfoCGosAX66T&{%L/04/5S̅ReV,y#LKMgP u.4RQ/ĢgUi,A]4w1B%q#cUi0] y A2N x_~Gᨉ sg:޴A xAB(6{.+v]?=2YBgZt?6mEh0( z>TWٝ r)~/AY0V'ߚ$Hl<n:~&RT ,tˢ^xykcAA+Dfhe϶{ء!v̓4Afb]&2;i!Jqبo'YIܖB% \;w1 Byg\y.3eR)r<>nv&Ӡ?;6j|rdaš!Zr]Ua)6)]]I2 2U=`3P;)mY8^9pi_Qo]W۵ I IPYr;ܴ3҈~* 5``JgQ>$ʪX1R6b^?HܰW:l׶P3a޷0 2#Sz9pҺsp! tI}l4Cb`iwESSD*;Vc 0j筣B NERt(WK4y;Ԉ-(GwxLIȝ]e0SF#v;u}<+s n٠ewiLXc]x30(lI&_sjBhu*<gJ*bˮYP+ N^6 %5Rwsihp|dx\bt3jozooJ{]Zjr{~Dh^ L2D͕ =Ƈu3w 1QX]OV2cqM[,r.@"n1AU@d M`-|qVC#y{v׼umEkxg{SkO Im˽*Q b *ny5golyQn[9QIMLW4xY )?KYCF2*8üreؔ E3g$^B7)iY jX6q 0*(i 31m5կª"fwTVگ:ou%€Bt͈iZ+^fVe17TQ`OZUG%AN^}khp<_HȹƋ LR fegAU[ T5*9;>*vSZ|Λn2iDuKf{2@z 1ʌ]t(YzNӦ_V%"R8!/s3LeAѧ{#PfĢ ^1yi(.9wPл4GJZXO\ }y[j;Į_q15然Um+:5S /K9"K*@e'Xa"чE'DWFk]4 ]-w? ln՛{uXOeCgw#ԡ= B+c"Z/JČ1@WDQΚ2_i2֗OˣVL܎^ʏ(#$0C6֮Jkz Vw"7j/Sąx 9ڛgG>H|)Bu &eW#ǒ-x2x?g4~eM ѿL+0џ, *n$<ٛICfx l^[vnJwdl0.]2 sczͲs&yMI$kg%M߅ħ(`j$ߙWµ !a6[Ӷ!wѲ:"P7lK-mw"ޘGF(,Ete1y^ 6~eXn*&=}:6 P`snNx-C  gg@%O@R|o@\c"DW;)1|4Qk_L7>NRq?eeB@itBl%tP/@wqvVttƉ6q.$|^ Cx0S4NenM(݃^=So5twFWc2И>r&koOU Eko$,;…,/u jh۪Lr{$@2խ<7c*Lt/;8V{2˷"1$,2Z]z|!! pz83({<(=xX|N7q38 J(n ZrHs¾fF~PT)4V( Cdo~yh|!ӳ{3RaNe\tT ( Amnk ̕"G\7Lv{pqS6hX_Y 5bs-iֽ!]< R=t:M ȽѴaw1 tޣWdlD(%V(pT D|3%r 9G/0G )³R ܇>RSV3cFk뷱$}ymy`aq|q  >ҭ~h\P?{sJ(IYCZ/ļWmv/>pH8PLEb->zJbk,:ɴOӍ.~.ы,L۸WrG)oB7}14ݎTm»h:%ӕ4Lvzˁ4ڢ_X*7z˒XG^x E.kM#N:Jэ??ڊ]r%P2p5o""$Dx2h8q9fɸ@3T~7裔^q6z`r{D_I-?J`1n 4&/43 ސ)Q f>ǘQFH tGAݟ2 ".!|2T![$I%LOڽp \.#ׂNuEVa &׺AnL Y5;Y44T>C|vR|YPN,PPx9ӵ_dUnِ%TTfy:5wA:+U:^Sv9(Y-\Y!@Zmz )D&YmF? !paccnRcZaih|H!ɯ0q+eەh[p7 m0ߛ-"s: O}9'|W9炢qT)oyx-5G2k0RU\SxۍC8wa Q(ɸ5-a.@{#K+p,̈Yp eF@Ƹ45$kVcdq`Hg92N|v$^ͅ -rn"199B(wp({LEACc\({U_Y!?(,/DD& :`Nqj#}k*K44# VUP]tUj"k+q֫­ zɢ'*FL?[)  |e/r|ϝɴ%|Kd9C oY/_cw w-ٌYkڍ4j>E"b[dE9{ _͠PH\|⧃D z~UE|z%^]!-SFƺvz?#!jN*J`i  Z0 &]uȻw?\"`Qwg,1h\޼IzƁi0a`LXǞGe팵˽lآoZzVb?۪Q ܕqc 37\fidJ,&op*Go,ْi]FO=t Η49|?]Zxɀzt%&U!ͣtFr⛼-(]ݒrYf#U!.;o+َOv"0%磵\P׶oks-6nE{;!>rQ`Ou1ž;bm& t_x+eŖY 2}LH,_Ae0`iYbF󜉧hi%֛E1_.ƕ.7OnQg}uϷ_Eo]^ U&ld,i@(q w̄84Ұɶ"Uvb׆lc `$|wT\\%]LH5}W 0v'-؍+5JE.Hȶ.6>>Ƣ^[ݡi0ǸO~Wf[jac5`g>\x<U+M}ܢBc)4tyؕ7i5Nfu#{*CeX"c-sܪM+:7ZC.L!˻B!WYD Csd5 fB)/A0O0L([Tku& CE_@ )'hrs_<}Ħ,cBxCZٵ?f.͎ 1 oC 231Sr?{Fr348c".Wd{rz\eKtƈR9 h`f,T3.~G ΍j^e*81D=^VO5|//m,#'iR #\Q`k>F, :ܲ>%jw 9hK1:%"%q&buXqUdzT!Bѐ{ qV+(-\އ8ŠtT^yڈ }9СdӻF1D Ư GB\0B{cFbXl;W|50):Ih{iWn` ;`%3!r:HJ ]w#"Iŋ<`*oa"Q -eQDEkdUt#0ђޚZ9df9~TF7x}fu{"^jϹ5llezDV_ v]ZJU׎E`q D28$%^ĵŲ {rN.]^H|x;$Pؑ†LoR #hg4mp(;uPteOYjR.#SVG u[{F׆%-,(UYw3K<&}Qs~@,bnf$\oh-=2?tXpDjΞА`LvNg5VҽfЌ:<&kҭ?>7 eO*{jۣ#He-eN֭ T&&6M׊+1)med[oh6GWh,k3 npr&R#FYgf#.w&~Ry - hAslOI ~i2'N{|)KttMV:ce :l Uڌ闈IwznsDy4ظb /ԘTǚL3/nžL1 <_4_r![FF:oe^6XkrKZuR~ j[HșkfqZ*1ut/SSP@ML+%@稰)1nx]c7"<ق IX9LzUh; [͗yJC&@u7:H pW5ǪBh.W}QZxK@sWD7 ŌX-Q.H=+>ڋ฿kxJ#:5tmR|&9,Ct!b_p">d$[-{Ii>$R&eTD@eC h4Έ ]P+ġ~3! 5 덶6U64;,qfLA,  ^1\j$LOpMOht N-._i14l}FAbTBO2z ;PfAk&,1ZfYuE{3$<Cw5tr8Լd=gc06ըu)ۧ,uJx~Pp6(pA%!WqD"d6$keo14mh x2Iyɞaf|gkL-#YH#eP0"ʗ LXπ;{k89Ϟ|d6.wXE^8%3d`A:0} z݈Yx9.l@1bymkk۽8߆g{\/ij\Fn9}.o>@!׿:U<Ʀ2q`OT[:[8iF8Og8oH #KSu<wl~z6k2:#I|+ rp!o*O谄GNK% l~Ghj®Bޜ =]`^)wؗJPE%F?,#FB@+#iMgV&˦aRUЊ ){ymn3v!Ⰸ7^7xi,Z'X=_Ӿ )i]hl`l˟!*k~((q:9Q}]OS5`2UrOhcyMk'wڻTjO1GVLA_!@Ӻ6X Ȉ}g<ՃRwq_ ִMS?X5vrh%0lqF֘5]pCFY:MHIADKfmk\׃UlrXOd;DOjёfV}bY#BxmxgzA;Yϣ^NN߸^3~zg2 >t9B >a]ț;Tu\Z3!H 8O<+ݬsȃF}3|KbN Z ?da o8M ,Yp$tzTM3/}5`7!HH9 =!&AF[#At7a:!덿YF?w OUC4gGE]cǂڨ+S҇ǚɥn':=Zl3 XtD<"$,GgddZG5gb6Ok rd#gw!=E%w\5[JR+ pV#3|`Kka]# O7o?j|$ 218@hWy`&̮`8f(97 Ϻ[Я"Zi6?C>uU"ĵ.c j"~F@M]AT,8 (Zd'% YkqiIפ1ptllK%O0HGL }xxKC!ԥiNמJ>2MjrE WN܏a9a2@kN-pK^^j"Ъ掛ЂEz-(t&w"ʕ"sa/%yV+Tْ31xH-hE_VyƄcN3KbcXVYF.Mj1&PxZ @_ 5m1C~62 svwimIl Y(h5(F>hP4{䊰7+Ay*BmYbOvI)YK>$z%) l/(s<&"uڛXus7-|O,2>1'䠐Fon-𐅨?AdTgpR]'qdOk?bk|O2[8)uҼE#  2L\)چ u5F{' s7a% Ms.ԖU$عW꽗[`=k}@GS|3|AF۵QIJF]X[VIW 5 ~%;bp[RAWe9ගmQa͇nБ / us"=k^K.}<F1Zkuz%kΤc dE+:E)2;<%3SESFZAѩ̑@u 9 &βX}S%E]ՙ*eu1T6?&=R&vXd-ҭ58G8!d{0)׺ƔVx44|,- kB~bNQ`*O#HO(b/X yn/֟.7[&G{pB:cW[b*J+}G `W)ȄQ 4W?ݖMQ"PaG;*X =r`%3'j O? ozFbՠOhZEȱ5k<CTG g]m⸺{ ţ闄*&7lBG2G"D&6HQBY^O}X K`/6uK"\[@P1ڮGY'346u34yH>} S+8Q}@a6%ۻEa%l .)\)*3\(Kzo}[yT4 Ê)^#OU1cdP\57PrbHx u?{ˡbl,\g?!_G:ܨ{O ʌKuZNmG˫_Zxtq=&L} N>t"dD'KOB`СPGC(n(qxa2(Җu:$r᤮$pO4Or왌s1S(r,lm%teQ?^t1cK˃z0eΑJ u0K7u]_z˕xMzS@[k1;]joz)lcdzu( 5A>#R!%u3 ^GQ t< 2a:•):]=c ]YwRzMPCoR'XXb(3aX{DlgLWyߌ[ENR([ f+ :|J3u˱KI}l1$H@=OUi\mm$*>Q^֢VK ;,|s@]*ASA ʗ'3(޵WLQut7)&?'uyI݆V\# "m)q;aioތNZ&\V% 0;Q3%.D&jW3V(8XoN5$ST:[˶Ղn]l?ϦĕwĶrm- sq4z@JkDrMF71thO; 8F:or =GOc-q YWfcf08x(!b8rF(71yreHF҆sH?0KQn~8 5˨ HvU. |jݼBoA Q8r^1F\| "V{>ɦq K)8ȞxD_eRCaq.~-m3(>561j'Xq CD1=ߑ͆w/8MKɷ#3֊'GO{zX %h)3Ne OM] Cڮ*3J-KaVk1+8imN+V/mGOĜ!)\[%z2 ^B^L!LҮ2 >\("23]yKL:֯Od4m}OL誇4Ƿ636{ "yHg&a .{+33}7T~VlOO&+ aJ| P:unaJ^J<,3Hm%bDD%7.쩏6[P۹P0<NsQLgP|JɧsZf\ :)'ʌ 1NF hR?XR[f$ ?^,|ʸW<+R~kCvZ6FfA[ޣ=>lW 9-ciNk*E^N黀l4]N]kAKцLzd%Q/3OF|~JO_ j'?ZN|66}E$/VĨc0?d5kiLe&hMAnƟm#M2^{6*2ėz*W^bXs Z*I'rǍ9=oyq<p(p+覐m?J :\3~.!vY˹UlCx*w;͵icdUoba%g6Ǔ=qҊ6/|B"VY<M&Wk#`q1GjDxZT];- /~"޶C4;7?``EOancoIj .M{\YߵqBloZg}Rjee|=5Ma;ǡ| ox+z[,q a<#pQ[L\9Ryc? Fn>F!q!7:7 :!%%G?1msmc#&!H0u~ay|_-e5rFK6BTz ~鋶}6Fe@櫻5z[`=*dT?Sp{yBLظۄ,.veaers9S Lx0kP Ř'\5nfrl-'79yDPZR*/p?K01w(ڹHfm< {͎,0i“WHg|;CDr5-GJ7)b&mga(&Lq )Xo-٥٫X#~ͦiW0£Hv<}PL }sJaD!KytN^pCkt -}ߜZQ#C%4-!ǁQr# 9;Wӟ:ry׌tHz~zOi]lx@&2@W_TuH9'M%[b- q8p+ͿczMR!8X?CtW] ݛ9?mfmSaX^-GB󊕪$,Q> j&w"68~x8o"E=ݘV%/P.YjrJ1k,὾ ?MRy j3 R v{7KK>VHu:I_jeC-F AuJ9AB-M:go%p L$kڻ Ս +U}ׅҸ|[̠:B x,r9g+ zٷqzj˛=7A:K ޥ;yHf{\Eȟ6xʌЁ$P1Oj 43kG~LXezc,NټY|}/ӎFūIfP %ٗTԴ [ M8]VMȴbk~IEݤ~OVOaP&9NWr@SQ2&BK[kWN'X H~[bze58BTҦ"ʊ:}Run -1R^cWCo ZU}2ra7nh's40^ymG_j. UjR[~_)._ ~jfw}7APp3ꮫځMy.{.;-iޝ+sJfTy^F`l4SC.TY Jf9Ɓqz8J+wQi<6F5ޞ=2 &>@LP,[XcW^Fhv\JQo |pH*ڕF[qP߻x1ߣ6?1\7!끏 ?4,`ci; rtk]{n aL#SI6 :{#g$#RkVԻ#Tzs}-}W;v\O#WThB%Tr=\fBqQo iӓMn*"F}qjjOrڏM*p xsF>9떛E|]gxae{:= 8Dqǭ:=X©k[m0Y[yFFP^D ]xJO\S?[W7ѤpN%Ry3<8"$a~|B/ {CÉΌzPֆ׹(=ݛR >~fm8Lu&U@&]Gá@ꇖ o. +Wh#֘/=EO6TǴ+V}O!lSF$%JvF30$Z}L0=t`t:U|3C1"{|';EXd;JڃsVɡBn O*V| ]Ӳf7XQ;,2{BL[6Cٰ ZY ^Qљ'y1oJ3?V|TŦB;|*58Vcn$fA8l!>d^ ` M2C6 im$.Ir!2?|kt\^t#\ Џ5f-DqA@gD>UoIBwP+pQ{a3B{l $zcUaIև-\I ,'a%smu/ig[`5ծmWc3=쿼mD, Cq@k}im却99ZbKJSbZOM" *)O$u5N9eHKoݽ]A%s)@ee.qSCahv0HZ$?} b2҅]?.zK:ǻ) ߺN,km;gbc=wCO%|%}Vj >ΥZR(+M7Mr cyH)b<V.:"r9%$7}EʋtxY;JJهp2+`̃þH3ߕx[{ZV4#j4_ LåC_`UVbo\ӥP2jEk.G8kܳ\qŽF-3SMWYRo17]@ Q-{IDki̾?6$ ˇ8&/j&Vd|@BN:% *Hs\6!1 jGMYH(10? #ϕ}V71ޡ6_vӠ ~c?c_o;U0(#ZV;&iQ HfƈX\mjg]W,QdkUH2dQ8YNi/X>l6c[kj暯=dM4 l|E3%eδpbr˸I!N9ˢ{9x1ل??": H/ڋU.=2mw T|7 X(Ѵv.:*іѧ@t6*޺=56g' Ί D'I8893ێ{@qlj7jair)xv(jlJ=s@c'*X6(y,#,Z5^]avԞ9Ӛ7֐J/y c@Ԓ)Ϙ0A!f(yiAwϸqQu!Y%ER0=9G0WM/jV}۝cR>YR$ܻ˲$-Q;SޫP@M"xw$VQʆS]xgu0cl#5 'ݝ'Ѯ4PRm=XKޮs/9<&oae>Q 0˹yC<)FO#@ [%4 'QC/DNW[P.Ϻb֜N[6$mߝY_`e:,66_iz,5('wTAa0ՊNvY=};^@}8$5tY{ s]=-0&r ș;c`Y[0C)w*YaZ_tk56V4so۸4&6Ew @4SuniZ}褮OY=9s0PTjG5p.NsݏNO(/UUO\~5m֒ xG:#(h|t *m9_缽Pm^J =S;?U2nD$z 0AS-SfJM ioS9o*G2&uQ6c-ߵh@t*Ƅ,8Stt5p2_h}A:r.q_+F}RdR$v.89f~7! ρ`Ve& ;D eK٣;W ;+C,^`ǯK!/P4$}7`ICۛ e8Wk͂kVbQPjrc&nwsi4 2QG(}#uלD ͚)܈I+$'.QXSy[7€Ýђi]4\3 10Ba~G'nw<J=X,Z76ZHQie:x#)70{QIO>Y$hw3՞<l!򳽐^͵w6 g#F [o'8W&W_st9rp?{Qa2Vz2+OT.UKyUuahIiB,Tݖ;1CuZyu80eL(ƤSٻIhPTh!;,1W*mQ|c}db :tʷ>]@{ֲapDML8ّYB+?ɷ7)#t+dqVw,Flٴ1VB/Sf{l GIuO @Dv "5wZsߠ̩FB- ]Rݦ5󙴌flJ"dևlQZ4?#XTp0YyueYQ*"3YNkN򋏡81 a;s(xo#QtUl ɴK_c,ο_ZVZ!$q .jk9LS҈A{z}`h\Oc`»hՇ$5݊=a#u3eE_ 1i:ҙG= Vuϱf E՝u?s7ܪ|1cNE0>Tp~"@db:X_d߼~oBϕjIBV-=[a)9T /RawZm8j1\,q|nP3VJ!jDDfw>X NT77~=WԿ acNUq8%ܚ2US";<~TR}㽈SezzrDB٤']rJ'9-z>^3Ftx˂ݿH͸~J0(/$]3/JXërK`9ivv4t2>tҗ "n҉,؃_уb5n5ƛ҂zprݖ Zq"Ɛ(3{c>ewhal֮CBH&G/T*%^6z}iliō:F , l?vSuSr(mWCy\Vϵ(B,M ~_2f! 8Jzq98, Y:eo|}2O7%` ~BXL%7-46t_XYЛs2 _ްU ձ:|q2n?fW.09 x|#yة K*#{}W~>Ʋ#nicQLr/i˃}-"{꾤2D@GEMu[  7 ^v͐Mv%g5'Zh1w0q|'Fy$ܺƅuH=yHbb^.T?{W.5,X\Auσ=ՒR=t Y@t<68 CyW=D'ty Q2:E^\^!ƾc{.fZTب a#w)n]Q3\⎩~sK ^ʃ0q*x9bCC5C5Qz2DZ5?>vFO*Pv~ B.DyzJGبF8MRΰ܀uəWc9#f BU1hv[$=;HZ0@˚[ٍz6Y\92~LSOᯆTс )CVʐzkXzdyզ d۝8?o;Ɨs}cFVN:8Lt1+DH^ anDzP]yN={} /ZLylў?8Toڮ(”vL h.jY)W<@g!˶`.: u•eqKY ix~BO dR 0mQtsUBo5QPOp ʭ [ƧxyX"Av //ˋ.+g^)1x;kLM6k >?z)-R# m~(']RNY.%vL曗\PM";z,m!iʛTFeQr֞i"_ 7Y,/Ճ!~V&z_oF `0AKZX60D7;4R  ({Ʉd}Nc Ȓn8?0=W%2I5}nƣ86-Pqkt2Cs-B{W^Bj4;IZ4*ηXϭgBwLry/f'#RӱհY mM%ʹQ[IQ,)ճd"m5hrB`Z#7> =k[4m[>hj໖@lɊľ=&wb&'Wwkl<ްn$?1ӑ u@_>BUq+wﲁ/x~73$HH/51qGfF ܜґ^ŋ7޺fJ:3 wCGgM!%* HË%4i@* Q t"XA2kX(ݖk)ܹqd~ou!~ᮾ(sj!vP$%n|4S[ f^(Lv@ƭpDZ·b Job1;^n(0.DmLDGsltN+t.jf'ydz(+vJ0:ICz/l7^iH-cnn[.k"9U|]^ߥVRz,VyB1q>~h{k:rPwd|(<% skB g6d@ٌ"%-4%XHy(hIt#e(glZ?|ΎyG"fjݴ$.Lb✻{`]*THk^asW;!LBh0Uz}gK{ȗ:ϠrZע|#؉[8¡n@K[p)'}xiG% `I?q]ˢAm)$3Z!j_/PuG=m`A&j53+Hh;EqܝB`zqւ;N,\AGP?[,[x v!9d>M'!(jqnn,CV&Æer>P07_3E 9@'V[H- AϜe=Bh?TXN/>;JQŵ7W/~`6NG8up3%'=rKb?`w\,lt+5h!S \W<)Bӊ{Ute0F~*ש̸m؜ KO єCQ$IN/C@&s"v!Z¯lJhkׇAYTK@e.yMX'ȒFcPci0IJMqěll0Vbq%T&N}=z>Fŕ/ ΋箞1o6AZO7^gJ@PgsyU8(|2+^2'U:osih ΏMdB[zӈ1Y=%-S229ЀS7EG[s̩I@=ci6嵼r45yU'|<ԑ CK&9;xILh-Q;b4] kPjCm*9|u=2HW'O$lڮʄO]ru=^zšp^}~H!^`Y*g{Q͎gظ'A3?ɂPἶ+Nz?j{RcD8߽Li#]N.٭g[;u`q(Q2: ?ukӌݒ]'pZg:@ߪ -|gg7rƥX(@h퓆pK+sMs.݊¦ƌr@UMjx(GM-~M&D ?,j "iK})'7}ȴhD/j.*A`WZjYO#^oj[3~ 2xAE7W=lpTj/y9YKϚ% dylPݐoc*߶ .RTprx8Jȁ%3޹LT}QCͲ+#Uu)'5llz[]*/JKd5{ #W}9< tc,#Yb#]3N e.`u:,#\]=! (qT_ ]TӃ((c:%=C{Сe +AAP@`12ħo"y vktvnpYɔK򱲬{(`Ke«KT#zBO&Wj$/wc_rzF,9lwewe7#2@ZnyA?}jqDSZдHWfl #) (>&lX&n!ܦa`X]}BRhI$D t2|4ao})k 5xrrϊx1<`T<d ^ݸsz<~F~B8Q+1{i'>[*.OVFӃ?}/Ĕ{~Xd|9&buvF(>Dۆm '}fUҥszH-nf~ tHW$NjA=:_QBv|+eLwSD*d㻃2 xT xݓqQ*zSr2׶ڦ@%`m.Tq *+:"bL;q3mwR9zQ:®a`Lģ2X򛣚)٩{9VWqC#&;oo9[C}K!uw(!]|09O}"t-XBM04mg(* dF1Ea(|n* Is]w?&ښS|y7PntFzh[fOn^BBC18 L}@ߺAZkC@{7Y ?}7>0wGSdΤe"%\^r߄){IY3o'΃6!>]֚V eX~Wڒe2i{d [W&n"}qTNb }q3фhNnod@bA,T oCjPMHB𥺻egwck&Q~y\D1Xl_ݨ]e2ZMeo+KgY,xC CF/;u3j%mcnQw`E4Ûg18!=Lma gy/=^zew%=.+YxkΡSt!&{s IgaraO)0*{"BAZA6il6dO^4ӂ6I>#&:&zh3W%fKy:)Os|iFͽG0 D+w/` {]{E9`a0[Wf5qN(y1yi*5Y&+> OqI'Ǫ@ PP#> oZ|s|; <=b$i ? / &pWpz/rF!ܹ[JWy-6 \ Twϓ2s詿NgjBI{Srd곲L"d[.#<;TX3 o7ޥ}&ӈ4fW S.$Üj΂ пWؗ * ۔wD%}qc7mDTУe_o XY/PAdd *rgp:{A^zXI@"AeB?2u[!9ʏm29~jUv]Gu^M V*Pz?lǏ!L}cq3rI%g>ӹlD閗aMA},6Hqgu̪鑲Xlun.dH`hQ74;]e:n2q_8ՎU*3I@$]7&bQMYV=$ګɥ~lc#fd޻@Ayz`;u::ES9j`b5wOrQIS3t~aI"Y-Gq$Cbq Dpg ңeY~@>֊Y"ͻ r?%ek]jhy_Qƴg(c|>fzYeԎ_`UѸOѨdTP@<.VĎyZH/ d Hn23Ʋb3 庌o蓿2ٰ,I[m*)+Z4`.f$QC,2ٙէxi/쩿/%xʵZ4IV?Q5 gm &O)%+7 4h7>82A r?U,kD2/||ݠ [,l 9ƹv7żʆa:R.@VyZP*Zg9 ԅCvyVkIhѡgHq1SzH_*78cB( EA?V ?e<4X5 :IrW]AQV|E-r+f"*i`׭z[tz\a)^0a.64q*"2(c2rrg:^@]1N~^9mZ% Euka,:O ڹk0L)B+?S3~MK6h1Bh 2")}|A0U[soJFo8`}&Y Z%hK:9mF=&S55p]`Xꍛd[Z@˽zE`ѩ8Zh4wha|;Ϣr9~rL[[KEX(#votWvaٓ ܚe!lΒ\DʊZgMica:))M{w qBR [ͺxѭUG/;ZF4ݡ־o&]ϕn糯7=Jv0& B̫'񲀏` *Ԗ&?}ȳ_qSsvʨߔT<%aI3ƽ")CGMn4UOHb[I: oἑ;fE j02iB%\(\`juڇ6@X+#Iq dF{mNiTs* @6L qß$M{N4;=K1-z;"HZ] HJT" wE=R]^\bߔrۇܴ [,i|W049fPx:(.46A.m}!3>Եx:^B8P;^.s:yb~V1@t|"!9߽ay$"h1=5br_rS^fh#,:X~>͏rφ S*(:}|[FM>-̟Bb#DʓsgH?\bX#T$.2w=j PT_T/554PxR*B.UN%x{y5_I#T%cC"GK{w h&&˼K4!eBÞ2Cm.sE:m朎B&', x'qm_ ŎFtPV>FoS8G(:zيNI~2T:ɘ0F/9"zÉ WSu%; {BA^i?]fZyħޮ𳭨LjFȫ |鈿{{Qymv `~=_({4RZV!Fn@uq)E޳AqepѢ SK85LQij-RS$, 75$ߨ%nDmP<.Aq!YjxMh\d #iӮpd!>}Yau'I|`ycC/88/=~ja3 ϊ-<9%UG-I'˝51Senةg.P̕X=,qkzݡ."ǂUdݘ ! P 3נwT]B;;Iyՙr٠\|2$oadK.R,~k2Y|1>؜9c٤(Ũ1e_*b#뜻ܝ!fkMBۻd`O/4džmZ606 Yl"e7Lڝ3g*8P%#HyL F ŏ ~ˇ$yqNt<$F,oU6eÄ}v`0HS!0 WWR&t:n (H3ܨɩya}\.ǰφ̯L)ؙ4(]@-tOxr^+HF?+hxJ@*Z H^ȝ2ѪOWpҊ "Y[}mJ;yp%uZCv<$j s)H޴W c';mV([qsָrSh!$H)ױP:GJϪaAIݙ܃dg>Z فŢcWLS{hfVmBm.d| A71Yh9щנjЌ؎sx<{TYj@>Ŗ@$V>Iٜb>L~ʆß- Ip>keVw[Dж BcdTes,Xt3{Ҙ|AASλŕ![XphЧ ԜNw"Bv=C1Ox>`%`c3 3B.*Kc~ ^mr%vVK!e`%6%e&b3~]&T {$b'R};,pY j s.9{Cˎ@˸w<)fX i\ք;q'$θv%A*pZHװk,iMA\?Fz"X$6uG?P$Zi8s2Nڞpkt01o?n.MTu|CȠd;"sx@^xêbU}.zy>'|h/y66kHq%F[D/6k៱7qO50轻1[ʭ92{=}}tpLm~8jr1vOzaݫ9G@m4*At攢JM}E<⅌YmWY?x>cXԏ:x'ar򥑔I4]Yo7)*G`.`Y//r84&VW7>ntϊhHֵRּB%W9)oۥ&(bE*u^7o);)@^^TD 7Bf cW%%(>XX\5ۧeh?&N0an_rk7 S{`qy!_:?msoJ%+`]< LSTE+E3l0xBȆrnin̾-oüEtM\ط &bLQc1v0_0@壍}Tt%S>$]b+RpT,vv]Nbp *\<}EZnuYx7pGE,/ jQ+92XSIrysk9A cK4߿3"ct&9T_؟=J y  5ߩZY#)r)hAY藆~b*)ʃhaTDs0q\ 0v \Y9os&Xj9z}k0w0f/,wrB6GBŜ=,%udDCYjZm9WCtCkW -ˆ-t@KEBƔxi7UIk/˨цptl䯤8s83Eem(:f-sc,ʼnc\}Y3Vʪa !6[:Pb l8^psښn42ɒ׵_@DU#weߡ I_*$3hz'бrD6iF.QRs.X7zDNQceRIv84.q0K<հrt._EIp%πeNPi@KoTxeŭU#O}oAd..RAch2|k#x eKգ4]+RI V JϷةv{uXdTw^|!AkqoǬq ;~xInZz?PF0JΈL10*l_' *@=gcܧv?J8Áu??Vq=CZAOnC8qpN\W >[O Z۩ S4/搹W l 8 0;\yD9ӼN S]o%asX ++:NKV]2OQ*,Cz? pG^IiӌB22NU f9-&ځ=Si;%F%$%}OW!U٢WH*p{g6QiԧcOUûg e%)S7CϮ[}@r .owX@pc? d `yNL1bpҙ5zd}Dx%8-9lF''0PxNb =*ȁ'9Y?OXdXe_BwL3; $N˱٠2 yFe#r /=LLut-Sl'j#>(Qf0*80lmrKDYJM .{`qqBJ6F5xS|{cCȰSDlz{hT8q/&oۤ31M"Գ<35_(sXsZdLp0r`% P԰nO2B|YpV 򇈎fTD\s|Ԉ7i ~Yܺ LUH \q[)Z'>Ʉpi# }e?oiilf1ˀU^\*&75P齆B//Sbv%j-w7f;L65W!`/'E6V\PkCgiaq0 Zi+Hy)yr<`Ǭ~Y[{?<M>!rcbi11R\d(WnR4pZsKCܸ()( t6,r{4lf}BȴDX6.OR~ 14Nr=OwY5GNZ锲b7!y )yNW5-"m#̉QvヨE#+P*f>iXeNȵRqz|7)ϔ2c3Ev.v4̼ n4@/Y%E0gqQm D[)KY_mpKl f&٩`$Y۱AdSKڨIzs0QDc&~ dG3EJ }`7K |V%pΤdd E_#c iG눛E#S\NBGS'gL8ڣۚd%: +!!uR:+_l{wRnJAؔ@nv5FC \z]IWy0}KgЮ 5}O,CfXX%բsA|dhe~MԶݫ(rL$Qu[Ed2xC0`|NH_qy؍wY}vU 3ߜkeϡ "a'euZˮ9e$۽+oف5yt.ȋqd;yY)s(\>HYVrT(V&g9#W A# m?lbˏ,dĪ8+s4ΧlX$I.,nOv{ģv4x q4-UY jХm}_y hkPb!X:" ~e63"{[#֙+2밾@NpBrxXq :aKc}z0yW[;$bR(mU7w oŅWoac$J%#잂)n!a鴓zc> 7 2y uzf^<F< u'(4IIM4W:z_&Гs?3ܩZSeb9Aa`W+)VmmUnp[6W Vi%2fr7~ۗ0KۨY8I}N =>zDF~C*>. )MO DSٵGskܜIITb|{ZγO8>MnniW/Bz.=IP7jeŊW{Yhan/"$0pZYռ"Sܵ! 3sNQQ\f&]F뎱钹Ag @n=BX#'pNQ2',í1iceB0^$ RCVbWĐ G2l4k FJ(brE$ŕv6fS/bˉ[QaHv Q.DϤi>-(76*p>qY(-'Mt 0"1YeP7JLǙAI"a DTNJ҇`M)=Ҵ|\<נFY-@M*B%ny[l |jp!=>s?,3ijޅa~b ԧ$RWCvrC}LCޙ)+]}r%8Xd%GIQI,'t8P%9`.Mqv  j/t,PF?_ާu`60yh) xl9=iZ&c&sv<µ[V6#ҵ;ҙnxGZ}N冿 -ZfAZ/l0+Pݲ͔8X6l|f\zE+c^Kx O[1VO+j`wI)JKsT2@|@lekɪ/nvuY~^ؘS#ul3(gc<&F/s`FJb7Dԏer+$-+|pӁ_e q%L@HA0RHu-Zf飾 h!aE-W`c9Ja|E]wY8's ':r}q2(} X.#HGHA{Ad:%j&2h=])ݝm muz&Yɹ昗| Qx,\ZR,i <(%9) @d?S֊ò+ .b $5n!sb$xc|cQ4,sujAJJWgUZ "X?\(,2M)pGxgMl: M\9jLl\}?sK3Ѐv2`9.̻]f/WXt*32t--2|*~^V, .S4)t͌2vMt~>!ޖ4vެ6E pK<%P]?i !J{\>:HqN&<@cՁdh08^3~n,FെTa(%X&^zVQC/ Z7&ڠ"FȨV88gK#TLM6s©PYwC/ؗF)>FID򥚑l!f'OLfoDyi˃ 9K?5qYk0dH9`i~!8zî*UD:6wu_ܥ&e~9[V0AlTbJ*87լ{sJjP+xڏSȫ*d~{V!(-OŔ3 S||_!gИVSp͓߃+0GBIz}#" ̬D8uYӾ]V\|R':8"cV]~PӃ5H_I[~BiaWX]]/*Cuoj՜0&ƚBɸK?MC^t©\5hSO@)\Ü1`e%(nqbx_~}@58峲yĝ۔L._{|Qzp _z&OfLWn޻pm@ߣh{Cw 쬁F=MntVc' Ca>vJ!;9欽tUm/ rx޶쑑FrB&?YVy^4H-CFFa/7!xD X!h@l[J0ATj^B"AutA3G3I3<<>_S˥OԸKr h)hMqa:@!3?-MC#xE!%lBާ^J[ECa T} ծOʹJ,&YpBԘf%D6隣pCAe\,Z^F-|,~ʻZ/P>ҌS~3SF.A³LGM\]{nQO^y)?Ը8Jo_A1Mi;B_Цp, N?|O,aXAф2{ >2gE\D{E*v ,qn K:2.} KѠD߁]P[GScfʔxm#:9z JNYCJ˨,;<˫&/``㇨^9j/=:Z%fYƨAʊ :n;Q)$]²s OT&7zv~ZsZ$sBӰ#` |. @IϽ0̲,f,B^Omϳ**L=N2&eDp,؇̰gj;ng@`?FL;̢.w91Vnpu OL*"UΙ_]W{MP۔! ]Rvw-.]7)/#l/BZjFRyb[',.Fb?C [ui#䀄C#gpX!NL@ jg.]5 [L}`k .{V:RD[fY4mz-b%qc+ws=LT>Ou]mq2[Xv͟ky~ݷ͋'w!f_Y(1G;EFȟ~#,'sS/@(X`P,UaE߇~Vk=яEkYQm3P<T(Rz^gP|5ǐ%vosUqcNv=sb˻3f'r\[HE,+-ugzZC8 4/(ZYm+aZd&GeESsEWGyYOsəs*(`ʐk)tC?N |Y0lQ4*rPn^ >?1ـKH.[Mq+wNF9Q} $|.Kp9kUQ Y9F`@5-$m @f~N3dwJDeQ&s5To^!MJa嵰ot]3<nEg_="r]Qn&\8#1mt?]*Ͷ=)HB395ܻrvv^r"b#zzgIGQ׺1"WJ]O=>TNaT0IJ i7ox𾳻J`ǔf}"p9+fRIU*3za9)1nzIRd)iA*L,dfA1ɹj4!eϠC{J+ l KnqLB[ZXf=U'[8jsgCk!:Sc'A~oϧոc"#7s!Vn@u`3 ]OLM>NE<- CL{<j, r#硑F 8"Emۖ` @6hv|ifRQǀqUӊ4y=3LsNcNX?}uۼz9蔛QaFUڇ݄b].g{ /DoUjźq 1-4/ɫ+1:'St&A8ioxЕ_k=LN'J(?wwgQ>a/MVzoC3DX='8NL9Dt:Nnprg.y@s;M?e!:2nhgXKAp9-%:1%xx7`qL;V-gFWDLK_kkֿ:שp >3Vu7i#Su/WM*Ϟ Q_ڏW=X~( 2x儊l< YE_duS`ƅ+hu/@:Dw2Hufm1{S\wXNt%(Σ5۱Zzxw}FOZ^2 ȈI𢻨۱$[ӈ4)1ӢD8^k$ώaFs:pB#TJK֡Isqjwc pqC|0vzCrSG睽YeC2IMQtCUgȍEq1xoRfwbO vE p}c!*̼,"vy_%~%pPz~ғsUbiПRP52b?CGĥVy+m9Ϫlmw(;N3`Iq6s+eu {V CA, ~?矁;}PcMyXfd V>rW>_񋝐Es:x򎿀쩺!E_"ZVj2zZ)3Ygqm{>XO8~7/bX851=lAd|g|6eE66$N0Bxk٭?;1H|v9k:wJ#¥76Gh MqQ2KmC %f:d n`C$V>P2N )UGij7`pdLuŸSP=t}&{G2>*\RQZyNT4]It%rY2=ZxA!ښHr] s๠UzYQ%ayAkDazm3"lp?J-(<{2ݔKij[bIZ^Qgg;wߣC3ā#!4i`숭_J_f"q9;!&mh4;VD^|qV[n8Љ2uT^-b{bz"n2qE1wPڿYS2mΑ#* x*ǾoP@x0o5g@VRMf to(; 6+Щl~ /f>?MJ>$WIJKaw$LIi/R$i3)J^2 Xg!ouRuܯҖZ ƃL6=K};qʌ k[)x?X>Շ2υv4W}f\W 2G yqXG{gu5k2w|@3&N}Gl R&K~$"ZTw^ 9nj37m/7EkMsL+_zIc#Rw@9j=V֩FrXG! WUMGoƶ:1^JO*D^ʤ>XL bfoƉ~.lxq>3,@ DG p _z~&tFKDt(I* ȝGQ9HX>ztz)>n6x mK~WG/mQbQl jhhK2P+`"IPw&};b*H"[0A4M _xnYqMyvٷI˜Ujq7eZh\zTZE|+I9ɢ.kd<hOyA NS$'@Sf@u@|5mq!{a6,NxW@_=ùUC' ԧ|'&s`88͕TeԦrv‚4gIUL](줇&FjRt=s906p2VxKtTnXwС17BxIkU#t9,u\=aj9Ol}hRB:gB\:>doT0f+% VA?R+5 P>5w՚ܺ5%>جBYv)` a? rIRͬSB@Yiaie/S$w t [iqeioF_y21,-u\z>1 :?4V"LVM\`=?iΨe+GTtϵ;zqrXcJ)JV="h 9`ʍ)6J@fjĆגH^Mپ)kq%M ;,E'%QzX&U\LV^nZFxM&蝷)`wdۅqʹ$0cxIzo1?5 W4̦2xKA@L&Lm W# */MB>?B~n^xTi/K kCxd㰮֗SjU@<=3/r<_/QEfԞhkL d0HQ2jʥ/.\Ÿ{ =Hҡ`!@Kn-ac6Ad˳7G@*62b;X1orJsLP EH#'yK 1;ښϤJ?ayBR*]A77XJr4JWR4^M'L=ِ6".v{^ん2Y*3L'pRWyL`0D>>` sDB|'tcQqpV#mݴSxQD*5"xTF FESnYjFY!6>YTJŔ48Eu-ҋVs0}f+TdO3@ RFV&~`q&!5z9Ftp#oT Zbk*E\(f>V;Anyh,YU=٪HPciJ߽HRŸ@-gR@v{c= ՘3WD9.b ޭ{7ʊW#B[3[qdg pÚ91iBjv8&MK-Gd{݁EvwB}N&;V쟻X@c NWHYϣ!rhtduV"H)gZ6/۬e`V8OU>h;آ H#"?~W gٴ'NyuH dZ#IAw%^ihyQWdg'ij;ճrL 0c@Y G?ry5XciI#vu[!×ʸsлQ/G^)Ǜ]bkRWo?%Z&G2m8n`!GW\3>1cqKpO)k4A*f7 YXPSUG> .`f,ː7޳`q`[DZt+3ŽKߨRM69͙U e,]±SMՉ ֕d LRA8KzxE`~k\;~ˤ0b'tA'hr M|3 rԽKUc*hUaZj_I>#Qc.9=}y-g4W<CJsaT^CϪ67_RL?OT|c MƤUOFVh r@@p-I&gȲ"=GXo:Nʘ덮I~իCnLח~]Jm4njթKJ/uG 0AtaQ5y @R볆JOSPV?㰔l _/v] aa`zɩ[lp(T֯s)K[T~g~;:?\ =| [fgFI%< k=OH'ۘ%2VFX0ɈO2-Ch\PGZF7#/5TɌX#?.h9 ͑zjZ *g#~ťU5˂⽛^$ǎoJ s@F"@FДf"~W$Hތ̋C`h UinGe҂o=Saj['R)?62j9Q\PhpV-?vه X !"[O[Vy oϡ*^e,'_?P|Lޜw1 nԔ/[? Evr $.7JC K MTݛƖ^'pb^x|& iBejBm ?ϕC.^}c~!og5B8oP@qw}hpd-XZ}nlG%cv~wKWUZů{ Γ+waFF3bteJ@tvbL򯗔E]y6d(ڷ`8#у+#SmiM^sw/4H*6yB\q esP#KgqwE;cwЦA"qJIቛ'xSYJYf%hjfĆxQJ> G#4dژ7h-Ox Vpn eҸƑ:I\q%c6FyMO݃S!tW>"|Kڔ2K>" rXAB2,lXVųbL={#-u0o)G )'>[*=HwVgl6H<}V4RFt779>vxH0y+b9LWJue k6V}MOUZE/g%s+{GzaHi[2Zr<%~Bj bhUb0]T(9Qe}!A+ to6ļgs HY>?۩\Hb͊C֮'} 9@:7]Sߘ1I,8 'QQ9*9h4b/31M |ՐCt,BBTz d .⑨SUQkwb3@:nКK@=A G l]M(VBTQbԈ%V <=,9m zbt[؃]Y6Ȯp*̷+ƶe/TiZ"Z,&aOp͡RS] Xv=D6a^R6>SnbڹUAgMIlGg)xLaDv֯﾿]ݛ&CH+)HuwfdK,-̺ aܥ4é~nvnpq_QcoQ0F鑉~6lʞ >\۰AFHr  Xŝ{`y1 C0 "bNi]+\ GqS[<-(H{w6 *ȼŮ'f Ha72팘xD1ɸ]SzO'3Ig)IZVsQ:F_;Yqd ht_gБۮ;74eO?E6՛+'zb3:s֛Šg+8ak=ӥءNSHAJ}V)ESL@qis{JQD+iY^7N0 X& amC&f`: X@:&Ow-m3}&.q~b]~Ԕ0QW.I #ƗaA@%@/l*J68t[z}Dg =I&u*SȠ-S@Urӱ[`/%/>5{$֥w~Ё0u-hnM!>;J.&s+) @6zI9*_usm[_W7u#^}Ah|mw28F!c45NHљD/O<3-D Ğ)N}/&`N =1K/f (ӕ2:L>ρsHF"oU~)$բt.4&h~Y*bZWl>39[ɛK1"/>_Dű/>2h.Z.9/vSM8! 9eQ^˽>!BoLЍ:D~aHf~ T̔%edӃiqp?5 }ؚqI /6l#S,~?wSg=jA|]( <~'Il]X=1+\1(Z\2@CY8nۥ+LUSvllD"'%1P dQY\,B? ]LxEWW:p"0ݹ%O ϰ\ c#)i*\bIљp8ȱE_vt&&}qz_'QiWC/1"Bބ|Hʏ H[k3AGO~ȓXP~7TIXӱ%yuڔFƲ-cpԒBr D"> P caʸjI|b__}_l)|B˴2(!).d=VҥɂB9n$r;V^M9u)]djV@E& &JY6gth&PHN މD]v{+:Wicompress-1.2.1/flate/testdata/huffman-rand-max.in000066400000000000000000001777771303637052300217670ustar00rootroot00000000000000vH % ɷ}>lsmIGH1Y4[ 0ˆ[|]o# -#ulpfٱnYԀYwC8ɯ02 F=gnrN!O{k*w(b kQC9/lu>5C.u d #)<߳OGU/nCL|_L|0" GMk$,׾nzj0%tKjNvI_c<~~ Of.Hˮ<ՍBm @GNώۦ zf)82`TcHc3neƺzCqhiEk ѻpѴdb457Fy W+ZjMwqEOS>;Gs\_:CgfgX@"i8gdPgBnl_ۻwu~p6fȦkxL 1s5oP%+7#`' i:M{ Ɛ1YQ12蝛k9]lL # ~ ^2N1 ++vXF"$YڹZa{H&9cuH)ʡa?bm& Ne]*G̛\I5 dxd#9@\(. lߝh6ݶ1M Fywp|FM{F~{{yq8I>5ZAwpհ0ur^w;ݺDm{ +\4v]`>6#`6?ڈy2ϩA+ʙ%Ȼ&\#,yVW?rD=1Lx@#qxL%WϣVإI8s~( WN+N#$ߝ 2KCKHuwq':n|$* G]DʦpFENNpS:j_0ˋ]4ys^7&!{ORcn g ދ`#s1IUWs`h,c"4U?ZÊ=rj[:x&Q5?>v$c:Xsw?0omjeKiFWK? |ڙpk㶇)C::-GvLq -`e%NăY>Yu~8*L ޴zϚ\Efyс#HMhMŹ!V9aVexР/ ?7"lɷ]${C7La _]瘱B'_ۘGrr݋r%z/I[jQ,^dߣGJ̰q_zŪ8KBk`6'7s8b+6eɈmoDhE+d>R.tdwUjr U7=^P`Dg%T2$ >{n4Q%-.D,ّa5ZLsDPQ%Xs[.3ZܺVۡDpǕpczЦϐ(nWOUU%'$]/ra:mL׀'v98}:S#M#KOKx/nc4 Ԇ^&RF)^c0R\¸:KnmJ R<ϸF/σJ+NWin%Gf c,$EſS`įfYF-NkѬ2@%D|5(-w} 1:s1(qE40񴝑*!w,A6xS4jQX̠k)~r7-leP|@Y}ۈzE A#"ˉB,['CB.ӒU)")ºZElJ#& YUNkڰMTgi'aMVof5qf$?Gfe𣜥=#΃j֍byu6lPg+.*4*2LOxԷ%4ʩhnbYl3͙,FY 8VTtcK:eb3'6-v"=Ɗ B|v5='8 hqi漰o׊_Vk؈p*{oՒpYoFC@w kvĦ]˯Hke:"8O-^]{΁q:P5Fh VqOύ BpFuS|bH< YT:kE6W"5axwhƏ,ZwezQ(MaCw1ݨ=D J'L>CI [Q#&@ֽ#@Je:: +@b7%-1Bwdh"PlEþv֛bT 󵣫)9"A6&Gj#H9pVcSl5 ~/"`ݘgl;31a\np`\SjSxT a[Dfϥ2t iL<0R%T$NptUKmصsKk glI$K#PȉƑ=qqN56gϟϲPzWP֫Bz/:{"BAMۊPdMAGF+%ZazExHcʢ-qt/V|\ P|CSF& Jrᛕ] -̑T~`%q̈́ ?FL5s. \Q,oyz{m]vw|۹-DB/܎xemwu谤Sɓ}pp_۫X2ϻ)hToʁ,㨒^.HL_ij-nr7HiWMOB?i\ilLzF~1^vb3AX+RxluD´2⓴ց9)U+,29ej_T1*_0eL,-5N C5s#aM[PQٗf8i Ge~E/4TȻ|'`b*-z}( F&Vd̶|RXcZ咼E-A7Y[+'+xO\";& $[$z&7ZzfoCGosAX66T&{%L/04/5S̅ReV,y#LKMgP u.4RQ/ĢgUi,A]4w1B%q#cUi0] y A2N x_~Gᨉ sg:޴A xAB(6{.+v]?=2YBgZt?6mEh0( z>TWٝ r)~/AY0V'ߚ$Hl<n:~&RT ,tˢ^xykcAA+Dfhe϶{ء!v̓4Afb]&2;i!Jqبo'YIܖB% \;w1 Byg\y.3eR)r<>nv&Ӡ?;6j|rdaš!Zr]Ua)6)]]I2 2U=`3P;)mY8^9pi_Qo]W۵ I IPYr;ܴ3҈~* 5``JgQ>$ʪX1R6b^?HܰW:l׶P3a޷0 2#Sz9pҺsp! tI}l4Cb`iwESSD*;Vc 0j筣B NERt(WK4y;Ԉ-(GwxLIȝ]e0SF#v;u}<+s n٠ewiLXc]x30(lI&_sjBhu*<gJ*bˮYP+ N^6 %5Rwsihp|dx\bt3jozooJ{]Zjr{~Dh^ L2D͕ =Ƈu3w 1QX]OV2cqM[,r.@"n1AU@d M`-|qVC#y{v׼umEkxg{SkO Im˽*Q b *ny5golyQn[9QIMLW4xY )?KYCF2*8üreؔ E3g$^B7)iY jX6q 0*(i 31m5կª"fwTVگ:ou%€Bt͈iZ+^fVe17TQ`OZUG%AN^}khp<_HȹƋ LR fegAU[ T5*9;>*vSZ|Λn2iDuKf{2@z 1ʌ]t(YzNӦ_V%"R8!/s3LeAѧ{#PfĢ ^1yi(.9wPл4GJZXO\ }y[j;Į_q15然Um+:5S /K9"K*@e'Xa"чE'DWFk]4 ]-w? ln՛{uXOeCgw#ԡ= B+c"Z/JČ1@WDQΚ2_i2֗OˣVL܎^ʏ(#$0C6֮Jkz Vw"7j/Sąx 9ڛgG>H|)Bu &eW#ǒ-x2x?g4~eM ѿL+0џ, *n$<ٛICfx l^[vnJwdl0.]2 sczͲs&yMI$kg%M߅ħ(`j$ߙWµ !a6[Ӷ!wѲ:"P7lK-mw"ޘGF(,Ete1y^ 6~eXn*&=}:6 P`snNx-C  gg@%O@R|o@\c"DW;)1|4Qk_L7>NRq?eeB@itBl%tP/@wqvVttƉ6q.$|^ Cx0S4NenM(݃^=So5twFWc2И>r&koOU Eko$,;…,/u jh۪Lr{$@2խ<7c*Lt/;8V{2˷"1$,2Z]z|!! pz83({<(=xX|N7q38 J(n ZrHs¾fF~PT)4V( Cdo~yh|!ӳ{3RaNe\tT ( Amnk ̕"G\7Lv{pqS6hX_Y 5bs-iֽ!]< R=t:M ȽѴaw1 tޣWdlD(%V(pT D|3%r 9G/0G )³R ܇>RSV3cFk뷱$}ymy`aq|q  >ҭ~h\P?{sJ(IYCZ/ļWmv/>pH8PLEb->zJbk,:ɴOӍ.~.ы,L۸WrG)oB7}14ݎTm»h:%ӕ4Lvzˁ4ڢ_X*7z˒XG^x E.kM#N:Jэ??ڊ]r%P2p5o""$Dx2h8q9fɸ@3T~7裔^q6z`r{D_I-?J`1n 4&/43 ސ)Q f>ǘQFH tGAݟ2 ".!|2T![$I%LOڽp \.#ׂNuEVa &׺AnL Y5;Y44T>C|vR|YPN,PPx9ӵ_dUnِ%TTfy:5wA:+U:^Sv9(Y-\Y!@Zmz )D&YmF? !paccnRcZaih|H!ɯ0q+eەh[p7 m0ߛ-"s: O}9'|W9炢qT)oyx-5G2k0RU\SxۍC8wa Q(ɸ5-a.@{#K+p,̈Yp eF@Ƹ45$kVcdq`Hg92N|v$^ͅ -rn"199B(wp({LEACc\({U_Y!?(,/DD& :`Nqj#}k*K44# VUP]tUj"k+q֫­ zɢ'*FL?[)  |e/r|ϝɴ%|Kd9C oY/_cw w-ٌYkڍ4j>E"b[dE9{ _͠PH\|⧃D z~UE|z%^]!-SFƺvz?#!jN*J`i  Z0 &]uȻw?\"`Qwg,1h\޼IzƁi0a`LXǞGe팵˽lآoZzVb?۪Q ܕqc 37\fidJ,&op*Go,ْi]FO=t Η49|?]Zxɀzt%&U!ͣtFr⛼-(]ݒrYf#U!.;o+َOv"0%磵\P׶oks-6nE{;!>rQ`Ou1ž;bm& t_x+eŖY 2}LH,_Ae0`iYbF󜉧hi%֛E1_.ƕ.7OnQg}uϷ_Eo]^ U&ld,i@(q w̄84Ұɶ"Uvb׆lc `$|wT\\%]LH5}W 0v'-؍+5JE.Hȶ.6>>Ƣ^[ݡi0ǸO~Wf[jac5`g>\x<U+M}ܢBc)4tyؕ7i5Nfu#{*CeX"c-sܪM+:7ZC.L!˻B!WYD Csd5 fB)/A0O0L([Tku& CE_@ )'hrs_<}Ħ,cBxCZٵ?f.͎ 1 oC 231Sr?{Fr348c".Wd{rz\eKtƈR9 h`f,T3.~G ΍j^e*81D=^VO5|//m,#'iR #\Q`k>F, :ܲ>%jw 9hK1:%"%q&buXqUdzT!Bѐ{ qV+(-\އ8ŠtT^yڈ }9СdӻF1D Ư GB\0B{cFbXl;W|50):Ih{iWn` ;`%3!r:HJ ]w#"Iŋ<`*oa"Q -eQDEkdUt#0ђޚZ9df9~TF7x}fu{"^jϹ5llezDV_ v]ZJU׎E`q D28$%^ĵŲ {rN.]^H|x;$Pؑ†LoR #hg4mp(;uPteOYjR.#SVG u[{F׆%-,(UYw3K<&}Qs~@,bnf$\oh-=2?tXpDjΞА`LvNg5VҽfЌ:<&kҭ?>7 eO*{jۣ#He-eN֭ T&&6M׊+1)med[oh6GWh,k3 npr&R#FYgf#.w&~Ry - hAslOI ~i2'N{|)KttMV:ce :l Uڌ闈IwznsDy4ظb /ԘTǚL3/nžL1 <_4_r![FF:oe^6XkrKZuR~ j[HșkfqZ*1ut/SSP@ML+%@稰)1nx]c7"<ق IX9LzUh; [͗yJC&@u7:H pW5ǪBh.W}QZxK@sWD7 ŌX-Q.H=+>ڋ฿kxJ#:5tmR|&9,Ct!b_p">d$[-{Ii>$R&eTD@eC h4Έ ]P+ġ~3! 5 덶6U64;,qfLA,  ^1\j$LOpMOht N-._i14l}FAbTBO2z ;PfAk&,1ZfYuE{3$<Cw5tr8Լd=gc06ըu)ۧ,uJx~Pp6(pA%!WqD"d6$keo14mh x2Iyɞaf|gkL-#YH#eP0"ʗ LXπ;{k89Ϟ|d6.wXE^8%3d`A:0} z݈Yx9.l@1bymkk۽8߆g{\/ij\Fn9}.o>@!׿:U<Ʀ2q`OT[:[8iF8Og8oH #KSu<wl~z6k2:#I|+ rp!o*O谄GNK% l~Ghj®Bޜ =]`^)wؗJPE%F?,#FB@+#iMgV&˦aRUЊ ){ymn3v!Ⰸ7^7xi,Z'X=_Ӿ )i]hl`l˟!*k~((q:9Q}]OS5`2UrOhcyMk'wڻTjO1GVLA_!@Ӻ6X Ȉ}g<ՃRwq_ ִMS?X5vrh%0lqF֘5]pCFY:MHIADKfmk\׃UlrXOd;DOjёfV}bY#BxmxgzA;Yϣ^NN߸^3~zg2 >t9B >a]ț;Tu\Z3!H 8O<+ݬsȃF}3|KbN Z ?da o8M ,Yp$tzTM3/}5`7!HH9 =!&AF[#At7a:!덿YF?w OUC4gGE]cǂڨ+S҇ǚɥn':=Zl3 XtD<"$,GgddZG5gb6Ok rd#gw!=E%w\5[JR+ pV#3|`Kka]# O7o?j|$ 218@hWy`&̮`8f(97 Ϻ[Я"Zi6?C>uU"ĵ.c j"~F@M]AT,8 (Zd'% YkqiIפ1ptllK%O0HGL }xxKC!ԥiNמJ>2MjrE WN܏a9a2@kN-pK^^j"Ъ掛ЂEz-(t&w"ʕ"sa/%yV+Tْ31xH-hE_VyƄcN3KbcXVYF.Mj1&PxZ @_ 5m1C~62 svwimIl Y(h5(F>hP4{䊰7+Ay*BmYbOvI)YK>$z%) l/(s<&"uڛXus7-|O,2>1'䠐Fon-𐅨?AdTgpR]'qdOk?bk|O2[8)uҼE#  2L\)چ u5F{' s7a% Ms.ԖU$عW꽗[`=k}@GS|3|AF۵QIJF]X[VIW 5 ~%;bp[RAWe9ගmQa͇nБ / us"=k^K.}<F1Zkuz%kΤc dE+:E)2;<%3SESFZAѩ̑@u 9 &βX}S%E]ՙ*eu1T6?&=R&vXd-ҭ58G8!d{0)׺ƔVx44|,- kB~bNQ`*O#HO(b/X yn/֟.7[&G{pB:cW[b*J+}G `W)ȄQ 4W?ݖMQ"PaG;*X =r`%3'j O? ozFbՠOhZEȱ5k<CTG g]m⸺{ ţ闄*&7lBG2G"D&6HQBY^O}X K`/6uK"\[@P1ڮGY'346u34yH>} S+8Q}@a6%ۻEa%l .)\)*3\(Kzo}[yT4 Ê)^#OU1cdP\57PrbHx u?{ˡbl,\g?!_G:ܨ{O ʌKuZNmG˫_Zxtq=&L} N>t"dD'KOB`СPGC(n(qxa2(Җu:$r᤮$pO4Or왌s1S(r,lm%teQ?^t1cK˃z0eΑJ u0K7u]_z˕xMzS@[k1;]joz)lcdzu( 5A>#R!%u3 ^GQ t< 2a:•):]=c ]YwRzMPCoR'XXb(3aX{DlgLWyߌ[ENR([ f+ :|J3u˱KI}l1$H@=OUi\mm$*>Q^֢VK ;,|s@]*ASA ʗ'3(޵WLQut7)&?'uyI݆V\# "m)q;aioތNZ&\V% 0;Q3%.D&jW3V(8XoN5$ST:[˶Ղn]l?ϦĕwĶrm- sq4z@JkDrMF71thO; 8F:or =GOc-q YWfcf08x(!b8rF(71yreHF҆sH?0KQn~8 5˨ HvU. |jݼBoA Q8r^1F\| "V{>ɦq K)8ȞxD_eRCaq.~-m3(>561j'Xq CD1=ߑ͆w/8MKɷ#3֊'GO{zX %h)3Ne OM] Cڮ*3J-KaVk1+8imN+V/mGOĜ!)\[%z2 ^B^L!LҮ2 >\("23]yKL:֯Od4m}OL誇4Ƿ636{ "yHg&a .{+33}7T~VlOO&+ aJ| P:unaJ^J<,3Hm%bDD%7.쩏6[P۹P0<NsQLgP|JɧsZf\ :)'ʌ 1NF hR?XR[f$ ?^,|ʸW<+R~kCvZ6FfA[ޣ=>lW 9-ciNk*E^N黀l4]N]kAKцLzd%Q/3OF|~JO_ j'?ZN|66}E$/VĨc0?d5kiLe&hMAnƟm#M2^{6*2ėz*W^bXs Z*I'rǍ9=oyq<p(p+覐m?J :\3~.!vY˹UlCx*w;͵icdUoba%g6Ǔ=qҊ6/|B"VY<M&Wk#`q1GjDxZT];- /~"޶C4;7?``EOancoIj .M{\YߵqBloZg}Rjee|=5Ma;ǡ| ox+z[,q a<#pQ[L\9Ryc? Fn>F!q!7:7 :!%%G?1msmc#&!H0u~ay|_-e5rFK6BTz ~鋶}6Fe@櫻5z[`=*dT?Sp{yBLظۄ,.veaers9S Lx0kP Ř'\5nfrl-'79yDPZR*/p?K01w(ڹHfm< {͎,0i“WHg|;CDr5-GJ7)b&mga(&Lq )Xo-٥٫X#~ͦiW0£Hv<}PL }sJaD!KytN^pCkt -}ߜZQ#C%4-!ǁQr# 9;Wӟ:ry׌tHz~zOi]lx@&2@W_TuH9'M%[b- q8p+ͿczMR!8X?CtW] ݛ9?mfmSaX^-GB󊕪$,Q> j&w"68~x8o"E=ݘV%/P.YjrJ1k,὾ ?MRy j3 R v{7KK>VHu:I_jeC-F AuJ9AB-M:go%p L$kڻ Ս +U}ׅҸ|[̠:B x,r9g+ zٷqzj˛=7A:K ޥ;yHf{\Eȟ6xʌЁ$P1Oj 43kG~LXezc,NټY|}/ӎFūIfP %ٗTԴ [ M8]VMȴbk~IEݤ~OVOaP&9NWr@SQ2&BK[kWN'X H~[bze58BTҦ"ʊ:}Run -1R^cWCo ZU}2ra7nh's40^ymG_j. UjR[~_)._ ~jfw}7APp3ꮫځMy.{.;-iޝ+sJfTy^F`l4SC.TY Jf9Ɓqz8J+wQi<6F5ޞ=2 &>@LP,[XcW^Fhv\JQo |pH*ڕF[qP߻x1ߣ6?1\7!끏 ?4,`ci; rtk]{n aL#SI6 :{#g$#RkVԻ#Tzs}-}W;v\O#WThB%Tr=\fBqQo iӓMn*"F}qjjOrڏM*p xsF>9떛E|]gxae{:= 8Dqǭ:=X©k[m0Y[yFFP^D ]xJO\S?[W7ѤpN%Ry3<8"$a~|B/ {CÉΌzPֆ׹(=ݛR >~fm8Lu&U@&]Gá@ꇖ o. +Wh#֘/=EO6TǴ+V}O!lSF$%JvF30$Z}L0=t`t:U|3C1"{|';EXd;JڃsVɡBn O*V| ]Ӳf7XQ;,2{BL[6Cٰ ZY ^Qљ'y1oJ3?V|TŦB;|*58Vcn$fA8l!>d^ ` M2C6 im$.Ir!2?|kt\^t#\ Џ5f-DqA@gD>UoIBwP+pQ{a3B{l $zcUaIև-\I ,'a%smu/ig[`5ծmWc3=쿼mD, Cq@k}im却99ZbKJSbZOM" *)O$u5N9eHKoݽ]A%s)@ee.qSCahv0HZ$?} b2҅]?.zK:ǻ) ߺN,km;gbc=wCO%|%}Vj >ΥZR(+M7Mr cyH)b<V.:"r9%$7}EʋtxY;JJهp2+`̃þH3ߕx[{ZV4#j4_ LåC_`UVbo\ӥP2jEk.G8kܳ\qŽF-3SMWYRo17]@ Q-{IDki̾?6$ ˇ8&/j&Vd|@BN:% *Hs\6!1 jGMYH(10? #ϕ}V71ޡ6_vӠ ~c?c_o;U0(#ZV;&iQ HfƈX\mjg]W,QdkUH2dQ8YNi/X>l6c[kj暯=dM4 l|E3%eδpbr˸I!N9ˢ{9x1ل??": H/ڋU.=2mw T|7 X(Ѵv.:*іѧ@t6*޺=56g' Ί D'I8893ێ{@qlj7jair)xv(jlJ=s@c'*X6(y,#,Z5^]avԞ9Ӛ7֐J/y c@Ԓ)Ϙ0A!f(yiAwϸqQu!Y%ER0=9G0WM/jV}۝cR>YR$ܻ˲$-Q;SޫP@M"xw$VQʆS]xgu0cl#5 'ݝ'Ѯ4PRm=XKޮs/9<&oae>Q 0˹yC<)FO#@ [%4 'QC/DNW[P.Ϻb֜N[6$mߝY_`e:,66_iz,5('wTAa0ՊNvY=};^@}8$5tY{ s]=-0&r ș;c`Y[0C)w*YaZ_tk56V4so۸4&6Ew @4SuniZ}褮OY=9s0PTjG5p.NsݏNO(/UUO\~5m֒ xG:#(h|t *m9_缽Pm^J =S;?U2nD$z 0AS-SfJM ioS9o*G2&uQ6c-ߵh@t*Ƅ,8Stt5p2_h}A:r.q_+F}RdR$v.89f~7! ρ`Ve& ;D eK٣;W ;+C,^`ǯK!/P4$}7`ICۛ e8Wk͂kVbQPjrc&nwsi4 2QG(}#uלD ͚)܈I+$'.QXSy[7€Ýђi]4\3 10Ba~G'nw<J=X,Z76ZHQie:x#)70{QIO>Y$hw3՞<l!򳽐^͵w6 g#F [o'8W&W_st9rp?{Qa2Vz2+OT.UKyUuahIiB,Tݖ;1CuZyu80eL(ƤSٻIhPTh!;,1W*mQ|c}db :tʷ>]@{ֲapDML8ّYB+?ɷ7)#t+dqVw,Flٴ1VB/Sf{l GIuO @Dv "5wZsߠ̩FB- ]Rݦ5󙴌flJ"dևlQZ4?#XTp0YyueYQ*"3YNkN򋏡81 a;s(xo#QtUl ɴK_c,ο_ZVZ!$q .jk9LS҈A{z}`h\Oc`»hՇ$5݊=a#u3eE_ 1i:ҙG= Vuϱf E՝u?s7ܪ|1cNE0>Tp~"@db:X_d߼~oBϕjIBV-=[a)9T /RawZm8j1\,q|nP3VJ!jDDfw>X NT77~=WԿ acNUq8%ܚ2US";<~TR}㽈SezzrDB٤']rJ'9-z>^3Ftx˂ݿH͸~J0(/$]3/JXërK`9ivv4t2>tҗ "n҉,؃_уb5n5ƛ҂zprݖ Zq"Ɛ(3{c>ewhal֮CBH&G/T*%^6z}iliō:F , l?vSuSr(mWCy\Vϵ(B,M ~_2f! 8Jzq98, Y:eo|}2O7%` ~BXL%7-46t_XYЛs2 _ްU ձ:|q2n?fW.09 x|#yة K*#{}W~>Ʋ#nicQLr/i˃}-"{꾤2D@GEMu[  7 ^v͐Mv%g5'Zh1w0q|'Fy$ܺƅuH=yHbb^.T?{W.5,X\Auσ=ՒR=t Y@t<68 CyW=D'ty Q2:E^\^!ƾc{.fZTب a#w)n]Q3\⎩~sK ^ʃ0q*x9bCC5C5Qz2DZ5?>vFO*Pv~ B.DyzJGبF8MRΰ܀uəWc9#f BU1hv[$=;HZ0@˚[ٍz6Y\92~LSOᯆTс )CVʐzkXzdyզ d۝8?o;Ɨs}cFVN:8Lt1+DH^ anDzP]yN={} /ZLylў?8Toڮ(”vL h.jY)W<@g!˶`.: u•eqKY ix~BO dR 0mQtsUBo5QPOp ʭ [ƧxyX"Av //ˋ.+g^)1x;kLM6k >?z)-R# m~(']RNY.%vL曗\PM";z,m!iʛTFeQr֞i"_ 7Y,/Ճ!~V&z_oF `0AKZX60D7;4R  ({Ʉd}Nc Ȓn8?0=W%2I5}nƣ86-Pqkt2Cs-B{W^Bj4;IZ4*ηXϭgBwLry/f'#RӱհY mM%ʹQ[IQ,)ճd"m5hrB`Z#7> =k[4m[>hj໖@lɊľ=&wb&'Wwkl<ްn$?1ӑ u@_>BUq+wﲁ/x~73$HH/51qGfF ܜґ^ŋ7޺fJ:3 wCGgM!%* HË%4i@* Q t"XA2kX(ݖk)ܹqd~ou!~ᮾ(sj!vP$%n|4S[ f^(Lv@ƭpDZ·b Job1;^n(0.DmLDGsltN+t.jf'ydz(+vJ0:ICz/l7^iH-cnn[.k"9U|]^ߥVRz,VyB1q>~h{k:rPwd|(<% skB g6d@ٌ"%-4%XHy(hIt#e(glZ?|ΎyG"fjݴ$.Lb✻{`]*THk^asW;!LBh0Uz}gK{ȗ:ϠrZע|#؉[8¡n@K[p)'}xiG% `I?q]ˢAm)$3Z!j_/PuG=m`A&j53+Hh;EqܝB`zqւ;N,\AGP?[,[x v!9d>M'!(jqnn,CV&Æer>P07_3E 9@'V[H- AϜe=Bh?TXN/>;JQŵ7W/~`6NG8up3%'=rKb?`w\,lt+5h!S \W<)Bӊ{Ute0F~*ש̸m؜ KO єCQ$IN/C@&s"v!Z¯lJhkׇAYTK@e.yMX'ȒFcPci0IJMqěll0Vbq%T&N}=z>Fŕ/ ΋箞1o6AZO7^gJ@PgsyU8(|2+^2'U:osih ΏMdB[zӈ1Y=%-S229ЀS7EG[s̩I@=ci6嵼r45yU'|<ԑ CK&9;xILh-Q;b4] kPjCm*9|u=2HW'O$lڮʄO]ru=^zšp^}~H!^`Y*g{Q͎gظ'A3?ɂPἶ+Nz?j{RcD8߽Li#]N.٭g[;u`q(Q2: ?ukӌݒ]'pZg:@ߪ -|gg7rƥX(@h퓆pK+sMs.݊¦ƌr@UMjx(GM-~M&D ?,j "iK})'7}ȴhD/j.*A`WZjYO#^oj[3~ 2xAE7W=lpTj/y9YKϚ% dylPݐoc*߶ .RTprx8Jȁ%3޹LT}QCͲ+#Uu)'5llz[]*/JKd5{ #W}9< tc,#Yb#]3N e.`u:,#\]=! (qT_ ]TӃ((c:%=C{Сe +AAP@`12ħo"y vktvnpYɔK򱲬{(`Ke«KT#zBO&Wj$/wc_rzF,9lwewe7#2@ZnyA?}jqDSZдHWfl #) (>&lX&n!ܦa`X]}BRhI$D t2|4ao})k 5xrrϊx1<`T<d ^ݸsz<~F~B8Q+1{i'>[*.OVFӃ?}/Ĕ{~Xd|9&buvF(>Dۆm '}fUҥszH-nf~ tHW$NjA=:_QBv|+eLwSD*d㻃2 xT xݓqQ*zSr2׶ڦ@%`m.Tq *+:"bL;q3mwR9zQ:®a`Lģ2X򛣚)٩{9VWqC#&;oo9[C}K!uw(!]|09O}"t-XBM04mg(* dF1Ea(|n* Is]w?&ښS|y7PntFzh[fOn^BBC18 L}@ߺAZkC@{7Y ?}7>0wGSdΤe"%\^r߄){IY3o'΃6!>]֚V eX~Wڒe2i{d [W&n"}qTNb }q3фhNnod@bA,T oCjPMHB𥺻egwck&Q~y\D1Xl_ݨ]e2ZMeo+KgY,xC CF/;u3j%mcnQw`E4Ûg18!=Lma gy/=^zew%=.+YxkΡSt!&{s IgaraO)0*{"BAZA6il6dO^4ӂ6I>#&:&zh3W%fKy:)Os|iFͽG0 D+w/` {]{E9`a0[Wf5qN(y1yi*5Y&+> OqI'Ǫ@ PP#> oZ|s|; <=b$i ? / &pWpz/rF!ܹ[JWy-6 \ Twϓ2s詿NgjBI{Srd곲L"d[.#<;TX3 o7ޥ}&ӈ4fW S.$Üj΂ пWؗ * ۔wD%}qc7mDTУe_o XY/PAdd *rgp:{A^zXI@"AeB?2u[!9ʏm29~jUv]Gu^M V*Pz?lǏ!L}cq3rI%g>ӹlD閗aMA},6Hqgu̪鑲Xlun.dH`hQ74;]e:n2q_8ՎU*3I@$]7&bQMYV=$ګɥ~lc#fd޻@Ayz`;u::ES9j`b5wOrQIS3t~aI"Y-Gq$Cbq Dpg ңeY~@>֊Y"ͻ r?%ek]jhy_Qƴg(c|>fzYeԎ_`UѸOѨdTP@<.VĎyZH/ d Hn23Ʋb3 庌o蓿2ٰ,I[m*)+Z4`.f$QC,2ٙէxi/쩿/%xʵZ4IV?Q5 gm &O)%+7 4h7>82A r?U,kD2/||ݠ [,l 9ƹv7żʆa:R.@VyZP*Zg9 ԅCvyVkIhѡgHq1SzH_*78cB( EA?V ?e<4X5 :IrW]AQV|E-r+f"*i`׭z[tz\a)^0a.64q*"2(c2rrg:^@]1N~^9mZ% Euka,:O ڹk0L)B+?S3~MK6h1Bh 2")}|A0U[soJFo8`}&Y Z%hK:9mF=&S55p]`Xꍛd[Z@˽zE`ѩ8Zh4wha|;Ϣr9~rL[[KEX(#votWvaٓ ܚe!lΒ\DʊZgMica:))M{w qBR [ͺxѭUG/;ZF4ݡ־o&]ϕn糯7=Jv0& B̫'񲀏` *Ԗ&?}ȳ_qSsvʨߔT<%aI3ƽ")CGMn4UOHb[I: oἑ;fE j02iB%\(\`juڇ6@X+#Iq dF{mNiTs* @6L qß$M{N4;=K1-z;"HZ] HJT" wE=R]^\bߔrۇܴ [,i|W049fPx:(.46A.m}!3>Եx:^B8P;^.s:yb~V1@t|"!9߽ay$"h1=5br_rS^fh#,:X~>͏rφ S*(:}|[FM>-̟Bb#DʓsgH?\bX#T$.2w=j PT_T/554PxR*B.UN%x{y5_I#T%cC"GK{w h&&˼K4!eBÞ2Cm.sE:m朎B&', x'qm_ ŎFtPV>FoS8G(:zيNI~2T:ɘ0F/9"zÉ WSu%; {BA^i?]fZyħޮ𳭨LjFȫ |鈿{{Qymv `~=_({4RZV!Fn@uq)E޳AqepѢ SK85LQij-RS$, 75$ߨ%nDmP<.Aq!YjxMh\d #iӮpd!>}Yau'I|`ycC/88/=~ja3 ϊ-<9%UG-I'˝51Senةg.P̕X=,qkzݡ."ǂUdݘ ! P 3נwT]B;;Iyՙr٠\|2$oadK.R,~k2Y|1>؜9c٤(Ũ1e_*b#뜻ܝ!fkMBۻd`O/4džmZ606 Yl"e7Lڝ3g*8P%#HyL F ŏ ~ˇ$yqNt<$F,oU6eÄ}v`0HS!0 WWR&t:n (H3ܨɩya}\.ǰφ̯L)ؙ4(]@-tOxr^+HF?+hxJ@*Z H^ȝ2ѪOWpҊ "Y[}mJ;yp%uZCv<$j s)H޴W c';mV([qsָrSh!$H)ױP:GJϪaAIݙ܃dg>Z فŢcWLS{hfVmBm.d| A71Yh9щנjЌ؎sx<{TYj@>Ŗ@$V>Iٜb>L~ʆß- Ip>keVw[Dж BcdTes,Xt3{Ҙ|AASλŕ![XphЧ ԜNw"Bv=C1Ox>`%`c3 3B.*Kc~ ^mr%vVK!e`%6%e&b3~]&T {$b'R};,pY j s.9{Cˎ@˸w<)fX i\ք;q'$θv%A*pZHװk,iMA\?Fz"X$6uG?P$Zi8s2Nڞpkt01o?n.MTu|CȠd;"sx@^xêbU}.zy>'|h/y66kHq%F[D/6k៱7qO50轻1[ʭ92{=}}tpLm~8jr1vOzaݫ9G@m4*At攢JM}E<⅌YmWY?x>cXԏ:x'ar򥑔I4]Yo7)*G`.`Y//r84&VW7>ntϊhHֵRּB%W9)oۥ&(bE*u^7o);)@^^TD 7Bf cW%%(>XX\5ۧeh?&N0an_rk7 S{`qy!_:?msoJ%+`]< LSTE+E3l0xBȆrnin̾-oüEtM\ط &bLQc1v0_0@壍}Tt%S>$]b+RpT,vv]Nbp *\<}EZnuYx7pGE,/ jQ+92XSIrysk9A cK4߿3"ct&9T_؟=J y  5ߩZY#)r)hAY藆~b*)ʃhaTDs0q\ 0v \Y9os&Xj9z}k0w0f/,wrB6GBŜ=,%udDCYjZm9WCtCkW -ˆ-t@KEBƔxi7UIk/˨цptl䯤8s83Eem(:f-sc,ʼnc\}Y3Vʪa !6[:Pb l8^psښn42ɒ׵_@DU#weߡ I_*$3hz'бrD6iF.QRs.X7zDNQceRIv84.q0K<հrt._EIp%πeNPi@KoTxeŭU#O}oAd..RAch2|k#x eKգ4]+RI V JϷةv{uXdTw^|!AkqoǬq ;~xInZz?PF0JΈL10*l_' *@=gcܧv?J8Áu??Vq=CZAOnC8qpN\W >[O Z۩ S4/搹W l 8 0;\yD9ӼN S]o%asX ++:NKV]2OQ*,Cz? pG^IiӌB22NU f9-&ځ=Si;%F%$%}OW!U٢WH*p{g6QiԧcOUûg e%)S7CϮ[}@r .owX@pc? d `yNL1bpҙ5zd}Dx%8-9lF''0PxNb =*ȁ'9Y?OXdXe_BwL3; $N˱٠2 yFe#r /=LLut-Sl'j#>(Qf0*80lmrKDYJM .{`qqBJ6F5xS|{cCȰSDlz{hT8q/&oۤ31M"Գ<35_(sXsZdLp0r`% P԰nO2B|YpV 򇈎fTD\s|Ԉ7i ~Yܺ LUH \q[)Z'>Ʉpi# }e?oiilf1ˀU^\*&75P齆B//Sbv%j-w7f;L65W!`/'E6V\PkCgiaq0 Zi+Hy)yr<`Ǭ~Y[{?<M>!rcbi11R\d(WnR4pZsKCܸ()( t6,r{4lf}BȴDX6.OR~ 14Nr=OwY5GNZ锲b7!y )yNW5-"m#̉QvヨE#+P*f>iXeNȵRqz|7)ϔ2c3Ev.v4̼ n4@/Y%E0gqQm D[)KY_mpKl f&٩`$Y۱AdSKڨIzs0QDc&~ dG3EJ }`7K |V%pΤdd E_#c iG눛E#S\NBGS'gL8ڣۚd%: +!!uR:+_l{wRnJAؔ@nv5FC \z]IWy0}KgЮ 5}O,CfXX%բsA|dhe~MԶݫ(rL$Qu[Ed2xC0`|NH_qy؍wY}vU 3ߜkeϡ "a'euZˮ9e$۽+oف5yt.ȋqd;yY)s(\>HYVrT(V&g9#W A# m?lbˏ,dĪ8+s4ΧlX$I.,nOv{ģv4x q4-UY jХm}_y hkPb!X:" ~e63"{[#֙+2밾@NpBrxXq :aKc}z0yW[;$bR(mU7w oŅWoac$J%#잂)n!a鴓zc> 7 2y uzf^<F< u'(4IIM4W:z_&Гs?3ܩZSeb9Aa`W+)VmmUnp[6W Vi%2fr7~ۗ0KۨY8I}N =>zDF~C*>. )MO DSٵGskܜIITb|{ZγO8>MnniW/Bz.=IP7jeŊW{Yhan/"$0pZYռ"Sܵ! 3sNQQ\f&]F뎱钹Ag @n=BX#'pNQ2',í1iceB0^$ RCVbWĐ G2l4k FJ(brE$ŕv6fS/bˉ[QaHv Q.DϤi>-(76*p>qY(-'Mt 0"1YeP7JLǙAI"a DTNJ҇`M)=Ҵ|\<נFY-@M*B%ny[l |jp!=>s?,3ijޅa~b ԧ$RWCvrC}LCޙ)+]}r%8Xd%GIQI,'t8P%9`.Mqv  j/t,PF?_ާu`60yh) xl9=iZ&c&sv<µ[V6#ҵ;ҙnxGZ}N冿 -ZfAZ/l0+Pݲ͔8X6l|f\zE+c^Kx O[1VO+j`wI)JKsT2@|@lekɪ/nvuY~^ؘS#ul3(gc<&F/s`FJb7Dԏer+$-+|pӁ_e q%L@HA0RHu-Zf飾 h!aE-W`c9Ja|E]wY8's ':r}q2(} X.#HGHA{Ad:%j&2h=])ݝm muz&Yɹ昗| Qx,\ZR,i <(%9) @d?S֊ò+ .b $5n!sb$xc|cQ4,sujAJJWgUZ "X?\(,2M)pGxgMl: M\9jLl\}?sK3Ѐv2`9.̻]f/WXt*32t--2|*~^V, .S4)t͌2vMt~>!ޖ4vެ6E pK<%P]?i !J{\>:HqN&<@cՁdh08^3~n,FെTa(%X&^zVQC/ Z7&ڠ"FȨV88gK#TLM6s©PYwC/ؗF)>FID򥚑l!f'OLfoDyi˃ 9K?5qYk0dH9`i~!8zî*UD:6wu_ܥ&e~9[V0AlTbJ*87լ{sJjP+xڏSȫ*d~{V!(-OŔ3 S||_!gИVSp͓߃+0GBIz}#" ̬D8uYӾ]V\|R':8"cV]~PӃ5H_I[~BiaWX]]/*Cuoj՜0&ƚBɸK?MC^t©\5hSO@)\Ü1`e%(nqbx_~}@58峲yĝ۔L._{|Qzp _z&OfLWn޻pm@ߣh{Cw 쬁F=MntVc' Ca>vJ!;9欽tUm/ rx޶쑑FrB&?YVy^4H-CFFa/7!xD X!h@l[J0ATj^B"AutA3G3I3<<>_S˥OԸKr h)hMqa:@!3?-MC#xE!%lBާ^J[ECa T} ծOʹJ,&YpBԘf%D6隣pCAe\,Z^F-|,~ʻZ/P>ҌS~3SF.A³LGM\]{nQO^y)?Ը8Jo_A1Mi;B_Цp, N?|O,aXAф2{ >2gE\D{E*v ,qn K:2.} KѠD߁]P[GScfʔxm#:9z JNYCJ˨,;<˫&/``㇨^9j/=:Z%fYƨAʊ :n;Q)$]²s OT&7zv~ZsZ$sBӰ#` |. @IϽ0̲,f,B^Omϳ**L=N2&eDp,؇̰gj;ng@`?FL;̢.w91Vnpu OL*"UΙ_]W{MP۔! ]Rvw-.]7)/#l/BZjFRyb[',.Fb?C [ui#䀄C#gpX!NL@ jg.]5 [L}`k .{V:RD[fY4mz-b%qc+ws=LT>Ou]mq2[Xv͟ky~ݷ͋'w!f_Y(1G;EFȟ~#,'sS/@(X`P,UaE߇~Vk=яEkYQm3P<T(Rz^gP|5ǐ%vosUqcNv=sb˻3f'r\[HE,+-ugzZC8 4/(ZYm+aZd&GeESsEWGyYOsəs*(`ʐk)tC?N |Y0lQ4*rPn^ >?1ـKH.[Mq+wNF9Q} $|.Kp9kUQ Y9F`@5-$m @f~N3dwJDeQ&s5To^!MJa嵰ot]3<nEg_="r]Qn&\8#1mt?]*Ͷ=)HB395ܻrvv^r"b#zzgIGQ׺1"WJ]O=>TNaT0IJ i7ox𾳻J`ǔf}"p9+fRIU*3za9)1nzIRd)iA*L,dfA1ɹj4!eϠC{J+ l KnqLB[ZXf=U'[8jsgCk!:Sc'A~oϧոc"#7s!Vn@u`3 ]OLM>NE<- CL{<j, r#硑F 8"Emۖ` @6hv|ifRQǀqUӊ4y=3LsNcNX?}uۼz9蔛QaFUڇ݄b].g{ /DoUjźq 1-4/ɫ+1:'St&A8ioxЕ_k=LN'J(?wwgQ>a/MVzoC3DX='8NL9Dt:Nnprg.y@s;M?e!:2nhgXKAp9-%:1%xx7`qL;V-gFWDLK_kkֿ:שp >3Vu7i#Su/WM*Ϟ Q_ڏW=X~( 2x儊l< YE_duS`ƅ+hu/@:Dw2Hufm1{S\wXNt%(Σ5۱Zzxw}FOZ^2 ȈI𢻨۱$[ӈ4)1ӢD8^k$ώaFs:pB#TJK֡Isqjwc pqC|0vzCrSG睽YeC2IMQtCUgȍEq1xoRfwbO vE p}c!*̼,"vy_%~%pPz~ғsUbiПRP52b?CGĥVy+m9Ϫlmw(;N3`Iq6s+eu {V CA, ~?矁;}PcMyXfd V>rW>_񋝐Es:x򎿀쩺!E_"ZVj2zZ)3Ygqm{>XO8~7/bX851=lAd|g|6eE66$N0Bxk٭?;1H|v9k:wJ#¥76Gh MqQ2KmC %f:d n`C$V>P2N )UGij7`pdLuŸSP=t}&{G2>*\RQZyNT4]It%rY2=ZxA!ښHr] s๠UzYQ%ayAkDazm3"lp?J-(<{2ݔKij[bIZ^Qgg;wߣC3ā#!4i`숭_J_f"q9;!&mh4;VD^|qV[n8Љ2uT^-b{bz"n2qE1wPڿYS2mΑ#* x*ǾoP@x0o5g@VRMf to(; 6+Щl~ /f>?MJ>$WIJKaw$LIi/R$i3)J^2 Xg!ouRuܯҖZ ƃL6=K};qʌ k[)x?X>Շ2υv4W}f\W 2G yqXG{gu5k2w|@3&N}Gl R&K~$"ZTw^ 9nj37m/7EkMsL+_zIc#Rw@9j=V֩FrXG! WUMGoƶ:1^JO*D^ʤ>XL bfoƉ~.lxq>3,@ DG p _z~&tFKDt(I* ȝGQ9HX>ztz)>n6x mK~WG/mQbQl jhhK2P+`"IPw&};b*H"[0A4M _xnYqMyvٷI˜Ujq7eZh\zTZE|+I9ɢ.kd<hOyA NS$'@Sf@u@|5mq!{a6,NxW@_=ùUC' ԧ|'&s`88͕TeԦrv‚4gIUL](줇&FjRt=s906p2VxKtTnXwС17BxIkU#t9,u\=aj9Ol}hRB:gB\:>doT0f+% VA?R+5 P>5w՚ܺ5%>جBYv)` a? rIRͬSB@Yiaie/S$w t [iqeioF_y21,-u\z>1 :?4V"LVM\`=?iΨe+GTtϵ;zqrXcJ)JV="h 9`ʍ)6J@fjĆגH^Mپ)kq%M ;,E'%QzX&U\LV^nZFxM&蝷)`wdۅqʹ$0cxIzo1?5 W4̦2xKA@L&Lm W# */MB>?B~n^xTi/K kCxd㰮֗SjU@<=3/r<_/QEfԞhkL d0HQ2jʥ/.\Ÿ{ =Hҡ`!@Kn-ac6Ad˳7G@*62b;X1orJsLP EH#'yK 1;ښϤJ?ayBR*]A77XJr4JWR4^M'L=ِ6".v{^ん2Y*3L'pRWyL`0D>>` sDB|'tcQqpV#mݴSxQD*5"xTF FESnYjFY!6>YTJŔ48Eu-ҋVs0}f+TdO3@ RFV&~`q&!5z9Ftp#oT Zbk*E\(f>V;Anyh,YU=٪HPciJ߽HRŸ@-gR@v{c= ՘3WD9.b ޭ{7ʊW#B[3[qdg pÚ91iBjv8&MK-Gd{݁EvwB}N&;V쟻X@c NWHYϣ!rhtduV"H)gZ6/۬e`V8OU>h;آ H#"?~W gٴ'NyuH dZ#IAw%^ihyQWdg'ij;ճrL 0c@Y G?ry5XciI#vu[!×ʸsлQ/G^)Ǜ]bkRWo?%Z&G2m8n`!GW\3>1cqKpO)k4A*f7 YXPSUG> .`f,ː7޳`q`[DZt+3ŽKߨRM69͙U e,]±SMՉ ֕d LRA8KzxE`~k\;~ˤ0b'tA'hr M|3 rԽKUc*hUaZj_I>#Qc.9=}y-g4W<CJsaT^CϪ67_RL?OT|c MƤUOFVh r@@p-I&gȲ"=GXo:Nʘ덮I~իCnLח~]Jm4njթKJ/uG 0AtaQ5y @R볆JOSPV?㰔l _/v] aa`zɩ[lp(T֯s)K[T~g~;:?\ =| [fgFI%< k=OH'ۘ%2VFX0ɈO2-Ch\PGZF7#/5TɌX#?.h9 ͑zjZ *g#~ťU5˂⽛^$ǎoJ s@F"@FДf"~W$Hތ̋C`h UinGe҂o=Saj['R)?62j9Q\PhpV-?vه X !"[O[Vy oϡ*^e,'_?P|Lޜw1 nԔ/[? Evr $.7JC K MTݛƖ^'pb^x|& iBejBm ?ϕC.^}c~!og5B8oP@qw}hpd-XZ}nlG%cv~wKWUZů{ Γ+waFF3bteJ@tvbL򯗔E]y6d(ڷ`8#у+#SmiM^sw/4H*6yB\q esP#KgqwE;cwЦA"qJIቛ'xSYJYf%hjfĆxQJ> G#4dژ7h-Ox Vpn eҸƑ:I\q%c6FyMO݃S!tW>"|Kڔ2K>" rXAB2,lXVųbL={#-u0o)G )'>[*=HwVgl6H<}V4RFt779>vxH0y+b9LWJue k6V}MOUZE/g%s+{GzaHi[2Zr<%~Bj bhUb0]T(9Qe}!A+ to6ļgs HY>?۩\Hb͊C֮'} 9@:7]Sߘ1I,8 'QQ9*9h4b/31M |ՐCt,BBTz d .⑨SUQkwb3@:nКK@=A G l]M(VBTQbԈ%V <=,9m zbt[؃]Y6Ȯp*̷+ƶe/TiZ"Z,&aOp͡RS] Xv=D6a^R6>SnbڹUAgMIlGg)xLaDv֯﾿]ݛ&CH+)HuwfdK,-̺ aܥ4é~nvnpq_QcoQ0F鑉~6lʞ >\۰AFHr  Xŝ{`y1 C0 "bNi]+\ GqS[<-(H{w6 *ȼŮ'f Ha72팘xD1ɸ]SzO'3Ig)IZVsQ:F_;Yqd ht_gБۮ;74eO?E6՛+'zb3:s֛Šg+8ak=ӥءNSHAJ}V)ESL@qis{JQD+iY^7N0 X& amC&f`: X@:&Ow-m3}&.q~b]~Ԕ0QW.I #ƗaA@%@/l*J68t[z}Dg =I&u*SȠ-S@Urӱ[`/%/>5{$֥w~Ё0u-hnM!>;J.&s+) @6zI9*_usm[_W7u#^}Ah|mw28F!c45NHљD/O<3-D Ğ)N}/&`N =1K/f (ӕ2:L>ρsHF"oU~)$բt.4&h~Y*bZWl>39[ɛK1"/>_Dű/>2h.Z.9/vSM8! 9eQ^˽>!BoLЍ:D~aHf~ T̔%edӃiqp?5 }ؚqI /6l#S,~?wSg=jA|]( <~'Il]X=1+\1(Z\2@CY8nۥ+LUSvllD"'%1P dQY\,B? ]LxEWW:p"0ݹ%O ϰ\ c#)i*\bIљp8ȱE_vt&&}qz_'QiWC/1"Bބ|Hʏ H[k3AGO~ȓXP~7TIXӱ%yuڔFƲ-cpԒBr D"> P caʸjI|b__}_l)|B˴2(!).d=VҥɂB9n$r;V^M9u)]djV@E& &JY6gth&PHN މD]v{+:Wicompress-1.2.1/flate/testdata/huffman-shifts.dyn.expect000066400000000000000000000000401303637052300231730ustar00rootroot000000000000009 0I 6.lcompress-1.2.1/flate/testdata/huffman-shifts.dyn.expect-noinput000066400000000000000000000000401303637052300246650ustar00rootroot000000000000009 0I 6.lcompress-1.2.1/flate/testdata/huffman-shifts.golden000066400000000000000000000034241303637052300223730ustar00rootroot00000000000000A 0zſZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZkZk:compress-1.2.1/flate/testdata/huffman-shifts.in000066400000000000000000000146021303637052300215310ustar00rootroot00000000000000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323compress-1.2.1/flate/testdata/huffman-shifts.wb.expect000066400000000000000000000000401303637052300230110ustar00rootroot000000000000009 0I 6.lcompress-1.2.1/flate/testdata/huffman-shifts.wb.expect-noinput000066400000000000000000000000401303637052300245030ustar00rootroot000000000000009 0I 6.lcompress-1.2.1/flate/testdata/huffman-text-shift.dyn.expect000066400000000000000000000003471303637052300240040ustar00rootroot00000000000000J0 <(lP*( :stSADhJ$w wʪx6G&ݷ ZdrQ H*<5搽o+NIoAPZ者1vF +%WijuKm8%4bW[m.~Q2h}9pt$ɐ}\Lg#֍]0fl\;vk!%ߔl_-7S>q|compress-1.2.1/flate/testdata/huffman-text-shift.dyn.expect-noinput000066400000000000000000000003471303637052300254760ustar00rootroot00000000000000J0 <(lP*( :stSADhJ$w wʪx6G&ݷ ZdrQ H*<5搽o+NIoAPZ者1vF +%WijuKm8%4bW[m.~Q2h}9pt$ɐ}\Lg#֍]0fl\;vk!%ߔl_-7S>q|compress-1.2.1/flate/testdata/huffman-text-shift.golden000066400000000000000000000003471303637052300231730ustar00rootroot00000000000000J2A=pۏbtF  ],ZADpFܢIz~RaFj k3 &D16Rc8}-͆BJj"HiIy6|C5y6y9]@@ةm# ۅYtʑϋ/>VCޫg@02r= -^"q^q9^ͮ7jy~=?G2compress-1.2.1/flate/testdata/huffman-text-shift.in000066400000000000000000000003751303637052300223320ustar00rootroot00000000000000//Copyright2009ThGoAuthor.Allrightrrvd. //UofthiourccodigovrndbyBSD-tyl //licnthtcnbfoundinthLICENSEfil. pckgmin import"o" funcmin(){ vrb=mk([]byt,65535) f,_:=o.Crt("huffmn-null-mx.in") f.Writ(b) } ABCDEFGHIJKLMNOPQRSTUVXxyz!"#¤%&/?"compress-1.2.1/flate/testdata/huffman-text-shift.wb.expect000066400000000000000000000003471303637052300236220ustar00rootroot00000000000000J0 <(lP*( :stSADhJ$w wʪx6G&ݷ ZdrQ H*<5搽o+NIoAPZ者1vF +%WijuKm8%4bW[m.~Q2h}9pt$ɐ}\Lg#֍]0fl\;vk!%ߔl_-7S>q|compress-1.2.1/flate/testdata/huffman-text-shift.wb.expect-noinput000066400000000000000000000003471303637052300253140ustar00rootroot00000000000000J0 <(lP*( :stSADhJ$w wʪx6G&ݷ ZdrQ H*<5搽o+NIoAPZ者1vF +%WijuKm8%4bW[m.~Q2h}9pt$ɐ}\Lg#֍]0fl\;vk!%ߔl_-7S>q|compress-1.2.1/flate/testdata/huffman-text.dyn.expect000066400000000000000000000003561303637052300226710ustar00rootroot00000000000000_K0`K0Aasě)^HIɟb߻_>4 a=-^ 1`_ 1 ő:Y-F66!A`aC;ANyr4ߜU!GKС#r:B[G3.L׶bFRuM]^⇳(#Z ivBBH2S]u/ֽWTGnrcompress-1.2.1/flate/testdata/huffman-text.dyn.expect-noinput000066400000000000000000000003561303637052300243630ustar00rootroot00000000000000_K0`K0Aasě)^HIɟb߻_>4 a=-^ 1`_ 1 ő:Y-F66!A`aC;ANyr4ߜU!GKС#r:B[G3.L׶bFRuM]^⇳(#Z ivBBH2S]u/ֽWTGnrcompress-1.2.1/flate/testdata/huffman-text.golden000066400000000000000000000003621303637052300220550ustar00rootroot00000000000000AK0xßZLPa!xADI&#IEp]LƿFp 188h$5S- F66!)v.0Y& SN|d2: t|둍xz9骺Ɏ3 &&=ôUD=Fu]qUL+>FQYLZofTߵEŴ{Yʶbecompress-1.2.1/flate/testdata/huffman-text.in000066400000000000000000000004531303637052300212140ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import "os" func main() { var b = make([]byte, 65535) f, _ := os.Create("huffman-null-max.in") f.Write(b) } compress-1.2.1/flate/testdata/huffman-text.wb.expect000066400000000000000000000003561303637052300225070ustar00rootroot00000000000000_K0`K0Aasě)^HIɟb߻_>4 a=-^ 1`_ 1 ő:Y-F66!A`aC;ANyr4ߜU!GKС#r:B[G3.L׶bFRuM]^⇳(#Z ivBBH2S]u/ֽWTGnrcompress-1.2.1/flate/testdata/huffman-text.wb.expect-noinput000066400000000000000000000003561303637052300242010ustar00rootroot00000000000000_K0`K0Aasě)^HIɟb߻_>4 a=-^ 1`_ 1 ő:Y-F66!A`aC;ANyr4ߜU!GKС#r:B[G3.L׶bFRuM]^⇳(#Z ivBBH2S]u/ֽWTGnrcompress-1.2.1/flate/testdata/huffman-zero.dyn.expect000066400000000000000000000000211303637052300226510ustar00rootroot000000000000000bo,compress-1.2.1/flate/testdata/huffman-zero.dyn.expect-noinput000066400000000000000000000000211303637052300243430ustar00rootroot000000000000000bo,compress-1.2.1/flate/testdata/huffman-zero.golden000066400000000000000000000000631303637052300220460ustar00rootroot00000000000000%u@compress-1.2.1/flate/testdata/huffman-zero.in000066400000000000000000000004641303637052300212110ustar00rootroot0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000compress-1.2.1/flate/testdata/huffman-zero.wb.expect000066400000000000000000000000061303637052300224720ustar00rootroot000000000000002$compress-1.2.1/flate/testdata/huffman-zero.wb.expect-noinput000066400000000000000000000000061303637052300241640ustar00rootroot000000000000002$compress-1.2.1/flate/testdata/null-long-match.dyn.expect-noinput000066400000000000000000000003161303637052300247520ustar00rootroot000000000000001 Z compress-1.2.1/flate/testdata/null-long-match.wb.expect-noinput000066400000000000000000000003161303637052300245700ustar00rootroot000000000000001 Z compress-1.2.1/flate/token.go000066400000000000000000000101541303637052300161130ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import "fmt" const ( // 2 bits: type 0 = literal 1=EOF 2=Match 3=Unused // 8 bits: xlength = length - MIN_MATCH_LENGTH // 22 bits xoffset = offset - MIN_OFFSET_SIZE, or literal lengthShift = 22 offsetMask = 1< pair into a match token. func matchToken(xlength uint32, xoffset uint32) token { return token(matchType + xlength< maxMatchLength || xoffset > maxMatchOffset { panic(fmt.Sprintf("Invalid match: len: %d, offset: %d\n", xlength, xoffset)) return token(matchType) } return token(matchType + xlength<> lengthShift) } func lengthCode(len uint32) uint32 { return lengthCodes[len] } // Returns the offset code corresponding to a specific offset func offsetCode(off uint32) uint32 { if off < uint32(len(offsetCodes)) { return offsetCodes[off] } else if off>>7 < uint32(len(offsetCodes)) { return offsetCodes[off>>7] + 14 } else { return offsetCodes[off>>14] + 28 } } compress-1.2.1/flate/writer_test.go000066400000000000000000000173001303637052300173460ustar00rootroot00000000000000// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package flate import ( "bytes" "fmt" "io" "io/ioutil" "math/rand" "runtime" "testing" ) func benchmarkEncoder(b *testing.B, testfile, level, n int) { b.StopTimer() b.SetBytes(int64(n)) buf0, err := ioutil.ReadFile(testfiles[testfile]) if err != nil { b.Fatal(err) } if len(buf0) == 0 { b.Fatalf("test file %q has no data", testfiles[testfile]) } buf1 := make([]byte, n) for i := 0; i < n; i += len(buf0) { if len(buf0) > n-i { buf0 = buf0[:n-i] } copy(buf1[i:], buf0) } buf0 = nil runtime.GC() w, err := NewWriter(ioutil.Discard, level) b.StartTimer() for i := 0; i < b.N; i++ { w.Reset(ioutil.Discard) _, err = w.Write(buf1) if err != nil { b.Fatal(err) } err = w.Close() if err != nil { b.Fatal(err) } } } func BenchmarkEncodeDigitsConstant1e4(b *testing.B) { benchmarkEncoder(b, digits, constant, 1e4) } func BenchmarkEncodeDigitsConstant1e5(b *testing.B) { benchmarkEncoder(b, digits, constant, 1e5) } func BenchmarkEncodeDigitsConstant1e6(b *testing.B) { benchmarkEncoder(b, digits, constant, 1e6) } func BenchmarkEncodeDigitsSpeed1e4(b *testing.B) { benchmarkEncoder(b, digits, speed, 1e4) } func BenchmarkEncodeDigitsSpeed1e5(b *testing.B) { benchmarkEncoder(b, digits, speed, 1e5) } func BenchmarkEncodeDigitsSpeed1e6(b *testing.B) { benchmarkEncoder(b, digits, speed, 1e6) } func BenchmarkEncodeDigitsDefault1e4(b *testing.B) { benchmarkEncoder(b, digits, default_, 1e4) } func BenchmarkEncodeDigitsDefault1e5(b *testing.B) { benchmarkEncoder(b, digits, default_, 1e5) } func BenchmarkEncodeDigitsDefault1e6(b *testing.B) { benchmarkEncoder(b, digits, default_, 1e6) } func BenchmarkEncodeDigitsCompress1e4(b *testing.B) { benchmarkEncoder(b, digits, compress, 1e4) } func BenchmarkEncodeDigitsCompress1e5(b *testing.B) { benchmarkEncoder(b, digits, compress, 1e5) } func BenchmarkEncodeDigitsCompress1e6(b *testing.B) { benchmarkEncoder(b, digits, compress, 1e6) } func BenchmarkEncodeTwainConstant1e4(b *testing.B) { benchmarkEncoder(b, twain, constant, 1e4) } func BenchmarkEncodeTwainConstant1e5(b *testing.B) { benchmarkEncoder(b, twain, constant, 1e5) } func BenchmarkEncodeTwainConstant1e6(b *testing.B) { benchmarkEncoder(b, twain, constant, 1e6) } func BenchmarkEncodeTwainSpeed1e4(b *testing.B) { benchmarkEncoder(b, twain, speed, 1e4) } func BenchmarkEncodeTwainSpeed1e5(b *testing.B) { benchmarkEncoder(b, twain, speed, 1e5) } func BenchmarkEncodeTwainSpeed1e6(b *testing.B) { benchmarkEncoder(b, twain, speed, 1e6) } func BenchmarkEncodeTwainDefault1e4(b *testing.B) { benchmarkEncoder(b, twain, default_, 1e4) } func BenchmarkEncodeTwainDefault1e5(b *testing.B) { benchmarkEncoder(b, twain, default_, 1e5) } func BenchmarkEncodeTwainDefault1e6(b *testing.B) { benchmarkEncoder(b, twain, default_, 1e6) } func BenchmarkEncodeTwainCompress1e4(b *testing.B) { benchmarkEncoder(b, twain, compress, 1e4) } func BenchmarkEncodeTwainCompress1e5(b *testing.B) { benchmarkEncoder(b, twain, compress, 1e5) } func BenchmarkEncodeTwainCompress1e6(b *testing.B) { benchmarkEncoder(b, twain, compress, 1e6) } // A writer that fails after N writes. type errorWriter struct { N int } func (e *errorWriter) Write(b []byte) (int, error) { if e.N <= 0 { return 0, io.ErrClosedPipe } e.N-- return len(b), nil } // Test if errors from the underlying writer is passed upwards. func TestWriteError(t *testing.T) { buf := new(bytes.Buffer) n := 65536 if !testing.Short() { n *= 4 } for i := 0; i < n; i++ { fmt.Fprintf(buf, "asdasfasf%d%dfghfgujyut%dyutyu\n", i, i, i) } in := buf.Bytes() // We create our own buffer to control number of writes. copyBuf := make([]byte, 128) for l := 0; l < 10; l++ { for fail := 1; fail <= 256; fail *= 2 { // Fail after 'fail' writes ew := &errorWriter{N: fail} w, err := NewWriter(ew, l) if err != nil { t.Fatalf("NewWriter: level %d: %v", l, err) } n, err := copyBuffer(w, bytes.NewBuffer(in), copyBuf) if err == nil { t.Fatalf("Level %d: Expected an error, writer was %#v", l, ew) } n2, err := w.Write([]byte{1, 2, 2, 3, 4, 5}) if n2 != 0 { t.Fatal("Level", l, "Expected 0 length write, got", n) } if err == nil { t.Fatal("Level", l, "Expected an error") } err = w.Flush() if err == nil { t.Fatal("Level", l, "Expected an error on flush") } err = w.Close() if err == nil { t.Fatal("Level", l, "Expected an error on close") } w.Reset(ioutil.Discard) n2, err = w.Write([]byte{1, 2, 3, 4, 5, 6}) if err != nil { t.Fatal("Level", l, "Got unexpected error after reset:", err) } if n2 == 0 { t.Fatal("Level", l, "Got 0 length write, expected > 0") } if testing.Short() { return } } } } func TestDeterministicL1(t *testing.T) { testDeterministic(1, t) } func TestDeterministicL2(t *testing.T) { testDeterministic(2, t) } func TestDeterministicL3(t *testing.T) { testDeterministic(3, t) } func TestDeterministicL4(t *testing.T) { testDeterministic(4, t) } func TestDeterministicL5(t *testing.T) { testDeterministic(5, t) } func TestDeterministicL6(t *testing.T) { testDeterministic(6, t) } func TestDeterministicL7(t *testing.T) { testDeterministic(7, t) } func TestDeterministicL8(t *testing.T) { testDeterministic(8, t) } func TestDeterministicL9(t *testing.T) { testDeterministic(9, t) } func TestDeterministicL0(t *testing.T) { testDeterministic(0, t) } func TestDeterministicLM2(t *testing.T) { testDeterministic(-2, t) } func testDeterministic(i int, t *testing.T) { // Test so much we cross a good number of block boundaries. var length = maxStoreBlockSize*30 + 500 if testing.Short() { length /= 10 } // Create a random, but compressible stream. rng := rand.New(rand.NewSource(1)) t1 := make([]byte, length) for i := range t1 { t1[i] = byte(rng.Int63() & 7) } // Do our first encode. var b1 bytes.Buffer br := bytes.NewBuffer(t1) w, err := NewWriter(&b1, i) if err != nil { t.Fatal(err) } // Use a very small prime sized buffer. cbuf := make([]byte, 787) _, err = copyBuffer(w, br, cbuf) if err != nil { t.Fatal(err) } w.Close() // We choose a different buffer size, // bigger than a maximum block, and also a prime. var b2 bytes.Buffer cbuf = make([]byte, 81761) br2 := bytes.NewBuffer(t1) w2, err := NewWriter(&b2, i) if err != nil { t.Fatal(err) } _, err = copyBuffer(w2, br2, cbuf) if err != nil { t.Fatal(err) } w2.Close() b1b := b1.Bytes() b2b := b2.Bytes() if !bytes.Equal(b1b, b2b) { t.Errorf("level %d did not produce deterministic result, result mismatch, len(a) = %d, len(b) = %d", i, len(b1b), len(b2b)) } // Test using io.WriterTo interface. var b3 bytes.Buffer br = bytes.NewBuffer(t1) w, err = NewWriter(&b3, i) if err != nil { t.Fatal(err) } _, err = br.WriteTo(w) if err != nil { t.Fatal(err) } w.Close() b3b := b3.Bytes() if !bytes.Equal(b1b, b3b) { t.Errorf("level %d (io.WriterTo) did not produce deterministic result, result mismatch, len(a) = %d, len(b) = %d", i, len(b1b), len(b3b)) } } // copyBuffer is a copy of io.CopyBuffer, since we want to support older go versions. // This is modified to never use io.WriterTo or io.ReaderFrom interfaces. func copyBuffer(dst io.Writer, src io.Reader, buf []byte) (written int64, err error) { if buf == nil { buf = make([]byte, 32*1024) } for { nr, er := src.Read(buf) if nr > 0 { nw, ew := dst.Write(buf[0:nr]) if nw > 0 { written += int64(nw) } if ew != nil { err = ew break } if nr != nw { err = io.ErrShortWrite break } } if er == io.EOF { break } if er != nil { err = er break } } return written, err } compress-1.2.1/gzip/000077500000000000000000000000001303637052300143215ustar00rootroot00000000000000compress-1.2.1/gzip/example_test.go000066400000000000000000000047751303637052300173570ustar00rootroot00000000000000// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package gzip_test import ( "bytes" "compress/gzip" "fmt" "io" "log" "os" "time" ) func Example_writerReader() { var buf bytes.Buffer zw := gzip.NewWriter(&buf) // Setting the Header fields is optional. zw.Name = "a-new-hope.txt" zw.Comment = "an epic space opera by George Lucas" zw.ModTime = time.Date(1977, time.May, 25, 0, 0, 0, 0, time.UTC) _, err := zw.Write([]byte("A long time ago in a galaxy far, far away...")) if err != nil { log.Fatal(err) } if err := zw.Close(); err != nil { log.Fatal(err) } zr, err := gzip.NewReader(&buf) if err != nil { log.Fatal(err) } fmt.Printf("Name: %s\nComment: %s\nModTime: %s\n\n", zr.Name, zr.Comment, zr.ModTime.UTC()) if _, err := io.Copy(os.Stdout, zr); err != nil { log.Fatal(err) } if err := zr.Close(); err != nil { log.Fatal(err) } // Output: // Name: a-new-hope.txt // Comment: an epic space opera by George Lucas // ModTime: 1977-05-25 00:00:00 +0000 UTC // // A long time ago in a galaxy far, far away... } func ExampleReader_Multistream() { var buf bytes.Buffer zw := gzip.NewWriter(&buf) var files = []struct { name string comment string modTime time.Time data string }{ {"file-1.txt", "file-header-1", time.Date(2006, time.February, 1, 3, 4, 5, 0, time.UTC), "Hello Gophers - 1"}, {"file-2.txt", "file-header-2", time.Date(2007, time.March, 2, 4, 5, 6, 1, time.UTC), "Hello Gophers - 2"}, } for _, file := range files { zw.Name = file.name zw.Comment = file.comment zw.ModTime = file.modTime if _, err := zw.Write([]byte(file.data)); err != nil { log.Fatal(err) } if err := zw.Close(); err != nil { log.Fatal(err) } zw.Reset(&buf) } zr, err := gzip.NewReader(&buf) if err != nil { log.Fatal(err) } for { zr.Multistream(false) fmt.Printf("Name: %s\nComment: %s\nModTime: %s\n\n", zr.Name, zr.Comment, zr.ModTime.UTC()) if _, err := io.Copy(os.Stdout, zr); err != nil { log.Fatal(err) } fmt.Println("\n") err = zr.Reset(&buf) if err == io.EOF { break } if err != nil { log.Fatal(err) } } if err := zr.Close(); err != nil { log.Fatal(err) } // Output: // Name: file-1.txt // Comment: file-header-1 // ModTime: 2006-02-01 03:04:05 +0000 UTC // // Hello Gophers - 1 // // Name: file-2.txt // Comment: file-header-2 // ModTime: 2007-03-02 04:05:06 +0000 UTC // // Hello Gophers - 2 } compress-1.2.1/gzip/gunzip.go000066400000000000000000000227741303637052300162000ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package gzip implements reading and writing of gzip format compressed files, // as specified in RFC 1952. package gzip import ( "bufio" "encoding/binary" "errors" "io" "time" "github.com/klauspost/compress/flate" "github.com/klauspost/crc32" ) const ( gzipID1 = 0x1f gzipID2 = 0x8b gzipDeflate = 8 flagText = 1 << 0 flagHdrCrc = 1 << 1 flagExtra = 1 << 2 flagName = 1 << 3 flagComment = 1 << 4 ) var ( // ErrChecksum is returned when reading GZIP data that has an invalid checksum. ErrChecksum = errors.New("gzip: invalid checksum") // ErrHeader is returned when reading GZIP data that has an invalid header. ErrHeader = errors.New("gzip: invalid header") ) var le = binary.LittleEndian // noEOF converts io.EOF to io.ErrUnexpectedEOF. func noEOF(err error) error { if err == io.EOF { return io.ErrUnexpectedEOF } return err } // The gzip file stores a header giving metadata about the compressed file. // That header is exposed as the fields of the Writer and Reader structs. // // Strings must be UTF-8 encoded and may only contain Unicode code points // U+0001 through U+00FF, due to limitations of the GZIP file format. type Header struct { Comment string // comment Extra []byte // "extra data" ModTime time.Time // modification time Name string // file name OS byte // operating system type } // A Reader is an io.Reader that can be read to retrieve // uncompressed data from a gzip-format compressed file. // // In general, a gzip file can be a concatenation of gzip files, // each with its own header. Reads from the Reader // return the concatenation of the uncompressed data of each. // Only the first header is recorded in the Reader fields. // // Gzip files store a length and checksum of the uncompressed data. // The Reader will return a ErrChecksum when Read // reaches the end of the uncompressed data if it does not // have the expected length or checksum. Clients should treat data // returned by Read as tentative until they receive the io.EOF // marking the end of the data. type Reader struct { Header // valid after NewReader or Reader.Reset r flate.Reader decompressor io.ReadCloser digest uint32 // CRC-32, IEEE polynomial (section 8) size uint32 // Uncompressed size (section 2.3.1) buf [512]byte err error multistream bool } // NewReader creates a new Reader reading the given reader. // If r does not also implement io.ByteReader, // the decompressor may read more data than necessary from r. // // It is the caller's responsibility to call Close on the Reader when done. // // The Reader.Header fields will be valid in the Reader returned. func NewReader(r io.Reader) (*Reader, error) { z := new(Reader) if err := z.Reset(r); err != nil { return nil, err } return z, nil } // Reset discards the Reader z's state and makes it equivalent to the // result of its original state from NewReader, but reading from r instead. // This permits reusing a Reader rather than allocating a new one. func (z *Reader) Reset(r io.Reader) error { *z = Reader{ decompressor: z.decompressor, multistream: true, } if rr, ok := r.(flate.Reader); ok { z.r = rr } else { z.r = bufio.NewReader(r) } z.Header, z.err = z.readHeader() return z.err } // Multistream controls whether the reader supports multistream files. // // If enabled (the default), the Reader expects the input to be a sequence // of individually gzipped data streams, each with its own header and // trailer, ending at EOF. The effect is that the concatenation of a sequence // of gzipped files is treated as equivalent to the gzip of the concatenation // of the sequence. This is standard behavior for gzip readers. // // Calling Multistream(false) disables this behavior; disabling the behavior // can be useful when reading file formats that distinguish individual gzip // data streams or mix gzip data streams with other data streams. // In this mode, when the Reader reaches the end of the data stream, // Read returns io.EOF. If the underlying reader implements io.ByteReader, // it will be left positioned just after the gzip stream. // To start the next stream, call z.Reset(r) followed by z.Multistream(false). // If there is no next stream, z.Reset(r) will return io.EOF. func (z *Reader) Multistream(ok bool) { z.multistream = ok } // readString reads a NUL-terminated string from z.r. // It treats the bytes read as being encoded as ISO 8859-1 (Latin-1) and // will output a string encoded using UTF-8. // This method always updates z.digest with the data read. func (z *Reader) readString() (string, error) { var err error needConv := false for i := 0; ; i++ { if i >= len(z.buf) { return "", ErrHeader } z.buf[i], err = z.r.ReadByte() if err != nil { return "", err } if z.buf[i] > 0x7f { needConv = true } if z.buf[i] == 0 { // Digest covers the NUL terminator. z.digest = crc32.Update(z.digest, crc32.IEEETable, z.buf[:i+1]) // Strings are ISO 8859-1, Latin-1 (RFC 1952, section 2.3.1). if needConv { s := make([]rune, 0, i) for _, v := range z.buf[:i] { s = append(s, rune(v)) } return string(s), nil } return string(z.buf[:i]), nil } } } // readHeader reads the GZIP header according to section 2.3.1. // This method does not set z.err. func (z *Reader) readHeader() (hdr Header, err error) { if _, err = io.ReadFull(z.r, z.buf[:10]); err != nil { // RFC 1952, section 2.2, says the following: // A gzip file consists of a series of "members" (compressed data sets). // // Other than this, the specification does not clarify whether a // "series" is defined as "one or more" or "zero or more". To err on the // side of caution, Go interprets this to mean "zero or more". // Thus, it is okay to return io.EOF here. return hdr, err } if z.buf[0] != gzipID1 || z.buf[1] != gzipID2 || z.buf[2] != gzipDeflate { return hdr, ErrHeader } flg := z.buf[3] hdr.ModTime = time.Unix(int64(le.Uint32(z.buf[4:8])), 0) // z.buf[8] is XFL and is currently ignored. hdr.OS = z.buf[9] z.digest = crc32.ChecksumIEEE(z.buf[:10]) if flg&flagExtra != 0 { if _, err = io.ReadFull(z.r, z.buf[:2]); err != nil { return hdr, noEOF(err) } z.digest = crc32.Update(z.digest, crc32.IEEETable, z.buf[:2]) data := make([]byte, le.Uint16(z.buf[:2])) if _, err = io.ReadFull(z.r, data); err != nil { return hdr, noEOF(err) } z.digest = crc32.Update(z.digest, crc32.IEEETable, data) hdr.Extra = data } var s string if flg&flagName != 0 { if s, err = z.readString(); err != nil { return hdr, err } hdr.Name = s } if flg&flagComment != 0 { if s, err = z.readString(); err != nil { return hdr, err } hdr.Comment = s } if flg&flagHdrCrc != 0 { if _, err = io.ReadFull(z.r, z.buf[:2]); err != nil { return hdr, noEOF(err) } digest := le.Uint16(z.buf[:2]) if digest != uint16(z.digest) { return hdr, ErrHeader } } z.digest = 0 if z.decompressor == nil { z.decompressor = flate.NewReader(z.r) } else { z.decompressor.(flate.Resetter).Reset(z.r, nil) } return hdr, nil } // Read implements io.Reader, reading uncompressed bytes from its underlying Reader. func (z *Reader) Read(p []byte) (n int, err error) { if z.err != nil { return 0, z.err } n, z.err = z.decompressor.Read(p) z.digest = crc32.Update(z.digest, crc32.IEEETable, p[:n]) z.size += uint32(n) if z.err != io.EOF { // In the normal case we return here. return n, z.err } // Finished file; check checksum and size. if _, err := io.ReadFull(z.r, z.buf[:8]); err != nil { z.err = noEOF(err) return n, z.err } digest := le.Uint32(z.buf[:4]) size := le.Uint32(z.buf[4:8]) if digest != z.digest || size != z.size { z.err = ErrChecksum return n, z.err } z.digest, z.size = 0, 0 // File is ok; check if there is another. if !z.multistream { return n, io.EOF } z.err = nil // Remove io.EOF if _, z.err = z.readHeader(); z.err != nil { return n, z.err } // Read from next file, if necessary. if n > 0 { return n, nil } return z.Read(p) } // Support the io.WriteTo interface for io.Copy and friends. func (z *Reader) WriteTo(w io.Writer) (int64, error) { total := int64(0) crcWriter := crc32.NewIEEE() for { if z.err != nil { if z.err == io.EOF { return total, nil } return total, z.err } // We write both to output and digest. mw := io.MultiWriter(w, crcWriter) n, err := z.decompressor.(io.WriterTo).WriteTo(mw) total += n z.size += uint32(n) if err != nil { z.err = err return total, z.err } // Finished file; check checksum + size. if _, err := io.ReadFull(z.r, z.buf[0:8]); err != nil { if err == io.EOF { err = io.ErrUnexpectedEOF } z.err = err return total, err } z.digest = crcWriter.Sum32() digest := le.Uint32(z.buf[:4]) size := le.Uint32(z.buf[4:8]) if digest != z.digest || size != z.size { z.err = ErrChecksum return total, z.err } z.digest, z.size = 0, 0 // File is ok; check if there is another. if !z.multistream { return total, nil } crcWriter.Reset() z.err = nil // Remove io.EOF if _, z.err = z.readHeader(); z.err != nil { if z.err == io.EOF { return total, nil } return total, z.err } } } // Close closes the Reader. It does not close the underlying io.Reader. // In order for the GZIP checksum to be verified, the reader must be // fully consumed until the io.EOF. func (z *Reader) Close() error { return z.decompressor.Close() } compress-1.2.1/gzip/gunzip_test.go000066400000000000000000000517571303637052300172420ustar00rootroot00000000000000// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package gzip import ( "bytes" oldgz "compress/gzip" "crypto/rand" "io" "io/ioutil" "os" "strings" "testing" "time" "github.com/klauspost/compress/flate" ) type gunzipTest struct { name string desc string raw string gzip []byte err error } var gunzipTests = []gunzipTest{ { // has 1 empty fixed-huffman block "empty.txt", "empty.txt", "", []byte{ 0x1f, 0x8b, 0x08, 0x08, 0xf7, 0x5e, 0x14, 0x4a, 0x00, 0x03, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x74, 0x78, 0x74, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, nil, }, { "", "empty - with no file name", "", []byte{ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x00, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, nil, }, { // has 1 non-empty fixed huffman block "hello.txt", "hello.txt", "hello world\n", []byte{ 0x1f, 0x8b, 0x08, 0x08, 0xc8, 0x58, 0x13, 0x4a, 0x00, 0x03, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x74, 0x78, 0x74, 0x00, 0xcb, 0x48, 0xcd, 0xc9, 0xc9, 0x57, 0x28, 0xcf, 0x2f, 0xca, 0x49, 0xe1, 0x02, 0x00, 0x2d, 0x3b, 0x08, 0xaf, 0x0c, 0x00, 0x00, 0x00, }, nil, }, { // concatenation "hello.txt", "hello.txt x2", "hello world\n" + "hello world\n", []byte{ 0x1f, 0x8b, 0x08, 0x08, 0xc8, 0x58, 0x13, 0x4a, 0x00, 0x03, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x74, 0x78, 0x74, 0x00, 0xcb, 0x48, 0xcd, 0xc9, 0xc9, 0x57, 0x28, 0xcf, 0x2f, 0xca, 0x49, 0xe1, 0x02, 0x00, 0x2d, 0x3b, 0x08, 0xaf, 0x0c, 0x00, 0x00, 0x00, 0x1f, 0x8b, 0x08, 0x08, 0xc8, 0x58, 0x13, 0x4a, 0x00, 0x03, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x74, 0x78, 0x74, 0x00, 0xcb, 0x48, 0xcd, 0xc9, 0xc9, 0x57, 0x28, 0xcf, 0x2f, 0xca, 0x49, 0xe1, 0x02, 0x00, 0x2d, 0x3b, 0x08, 0xaf, 0x0c, 0x00, 0x00, 0x00, }, nil, }, { // has a fixed huffman block with some length-distance pairs "shesells.txt", "shesells.txt", "she sells seashells by the seashore\n", []byte{ 0x1f, 0x8b, 0x08, 0x08, 0x72, 0x66, 0x8b, 0x4a, 0x00, 0x03, 0x73, 0x68, 0x65, 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x2e, 0x74, 0x78, 0x74, 0x00, 0x2b, 0xce, 0x48, 0x55, 0x28, 0x4e, 0xcd, 0xc9, 0x29, 0x06, 0x92, 0x89, 0xc5, 0x19, 0x60, 0x56, 0x52, 0xa5, 0x42, 0x09, 0x58, 0x18, 0x28, 0x90, 0x5f, 0x94, 0xca, 0x05, 0x00, 0x76, 0xb0, 0x3b, 0xeb, 0x24, 0x00, 0x00, 0x00, }, nil, }, { // has dynamic huffman blocks "gettysburg", "gettysburg", " Four score and seven years ago our fathers brought forth on\n" + "this continent, a new nation, conceived in Liberty, and dedicated\n" + "to the proposition that all men are created equal.\n" + " Now we are engaged in a great Civil War, testing whether that\n" + "nation, or any nation so conceived and so dedicated, can long\n" + "endure.\n" + " We are met on a great battle-field of that war.\n" + " We have come to dedicate a portion of that field, as a final\n" + "resting place for those who here gave their lives that that\n" + "nation might live. It is altogether fitting and proper that\n" + "we should do this.\n" + " But, in a larger sense, we can not dedicate — we can not\n" + "consecrate — we can not hallow — this ground.\n" + " The brave men, living and dead, who struggled here, have\n" + "consecrated it, far above our poor power to add or detract.\n" + "The world will little note, nor long remember what we say here,\n" + "but it can never forget what they did here.\n" + " It is for us the living, rather, to be dedicated here to the\n" + "unfinished work which they who fought here have thus far so\n" + "nobly advanced. It is rather for us to be here dedicated to\n" + "the great task remaining before us — that from these honored\n" + "dead we take increased devotion to that cause for which they\n" + "gave the last full measure of devotion —\n" + " that we here highly resolve that these dead shall not have\n" + "died in vain — that this nation, under God, shall have a new\n" + "birth of freedom — and that government of the people, by the\n" + "people, for the people, shall not perish from this earth.\n" + "\n" + "Abraham Lincoln, November 19, 1863, Gettysburg, Pennsylvania\n", []byte{ 0x1f, 0x8b, 0x08, 0x08, 0xd1, 0x12, 0x2b, 0x4a, 0x00, 0x03, 0x67, 0x65, 0x74, 0x74, 0x79, 0x73, 0x62, 0x75, 0x72, 0x67, 0x00, 0x65, 0x54, 0xcd, 0x6e, 0xd4, 0x30, 0x10, 0xbe, 0xfb, 0x29, 0xe6, 0x01, 0x42, 0xa5, 0x0a, 0x09, 0xc1, 0x11, 0x90, 0x40, 0x48, 0xa8, 0xe2, 0x80, 0xd4, 0xf3, 0x24, 0x9e, 0x24, 0x56, 0xbd, 0x9e, 0xc5, 0x76, 0x76, 0x95, 0x1b, 0x0f, 0xc1, 0x13, 0xf2, 0x24, 0x7c, 0x63, 0x77, 0x9b, 0x4a, 0x5c, 0xaa, 0x6e, 0x6c, 0xcf, 0x7c, 0x7f, 0x33, 0x44, 0x5f, 0x74, 0xcb, 0x54, 0x26, 0xcd, 0x42, 0x9c, 0x3c, 0x15, 0xb9, 0x48, 0xa2, 0x5d, 0x38, 0x17, 0xe2, 0x45, 0xc9, 0x4e, 0x67, 0xae, 0xab, 0xe0, 0xf7, 0x98, 0x75, 0x5b, 0xd6, 0x4a, 0xb3, 0xe6, 0xba, 0x92, 0x26, 0x57, 0xd7, 0x50, 0x68, 0xd2, 0x54, 0x43, 0x92, 0x54, 0x07, 0x62, 0x4a, 0x72, 0xa5, 0xc4, 0x35, 0x68, 0x1a, 0xec, 0x60, 0x92, 0x70, 0x11, 0x4f, 0x21, 0xd1, 0xf7, 0x30, 0x4a, 0xae, 0xfb, 0xd0, 0x9a, 0x78, 0xf1, 0x61, 0xe2, 0x2a, 0xde, 0x55, 0x25, 0xd4, 0xa6, 0x73, 0xd6, 0xb3, 0x96, 0x60, 0xef, 0xf0, 0x9b, 0x2b, 0x71, 0x8c, 0x74, 0x02, 0x10, 0x06, 0xac, 0x29, 0x8b, 0xdd, 0x25, 0xf9, 0xb5, 0x71, 0xbc, 0x73, 0x44, 0x0f, 0x7a, 0xa5, 0xab, 0xb4, 0x33, 0x49, 0x0b, 0x2f, 0xbd, 0x03, 0xd3, 0x62, 0x17, 0xe9, 0x73, 0xb8, 0x84, 0x48, 0x8f, 0x9c, 0x07, 0xaa, 0x52, 0x00, 0x6d, 0xa1, 0xeb, 0x2a, 0xc6, 0xa0, 0x95, 0x76, 0x37, 0x78, 0x9a, 0x81, 0x65, 0x7f, 0x46, 0x4b, 0x45, 0x5f, 0xe1, 0x6d, 0x42, 0xe8, 0x01, 0x13, 0x5c, 0x38, 0x51, 0xd4, 0xb4, 0x38, 0x49, 0x7e, 0xcb, 0x62, 0x28, 0x1e, 0x3b, 0x82, 0x93, 0x54, 0x48, 0xf1, 0xd2, 0x7d, 0xe4, 0x5a, 0xa3, 0xbc, 0x99, 0x83, 0x44, 0x4f, 0x3a, 0x77, 0x36, 0x57, 0xce, 0xcf, 0x2f, 0x56, 0xbe, 0x80, 0x90, 0x9e, 0x84, 0xea, 0x51, 0x1f, 0x8f, 0xcf, 0x90, 0xd4, 0x60, 0xdc, 0x5e, 0xb4, 0xf7, 0x10, 0x0b, 0x26, 0xe0, 0xff, 0xc4, 0xd1, 0xe5, 0x67, 0x2e, 0xe7, 0xc8, 0x93, 0x98, 0x05, 0xb8, 0xa8, 0x45, 0xc0, 0x4d, 0x09, 0xdc, 0x84, 0x16, 0x2b, 0x0d, 0x9a, 0x21, 0x53, 0x04, 0x8b, 0xd2, 0x0b, 0xbd, 0xa2, 0x4c, 0xa7, 0x60, 0xee, 0xd9, 0xe1, 0x1d, 0xd1, 0xb7, 0x4a, 0x30, 0x8f, 0x63, 0xd5, 0xa5, 0x8b, 0x33, 0x87, 0xda, 0x1a, 0x18, 0x79, 0xf3, 0xe3, 0xa6, 0x17, 0x94, 0x2e, 0xab, 0x6e, 0xa0, 0xe3, 0xcd, 0xac, 0x50, 0x8c, 0xca, 0xa7, 0x0d, 0x76, 0x37, 0xd1, 0x23, 0xe7, 0x05, 0x57, 0x8b, 0xa4, 0x22, 0x83, 0xd9, 0x62, 0x52, 0x25, 0xad, 0x07, 0xbb, 0xbf, 0xbf, 0xff, 0xbc, 0xfa, 0xee, 0x20, 0x73, 0x91, 0x29, 0xff, 0x7f, 0x02, 0x71, 0x62, 0x84, 0xb5, 0xf6, 0xb5, 0x25, 0x6b, 0x41, 0xde, 0x92, 0xb7, 0x76, 0x3f, 0x91, 0x91, 0x31, 0x1b, 0x41, 0x84, 0x62, 0x30, 0x0a, 0x37, 0xa4, 0x5e, 0x18, 0x3a, 0x99, 0x08, 0xa5, 0xe6, 0x6d, 0x59, 0x22, 0xec, 0x33, 0x39, 0x86, 0x26, 0xf5, 0xab, 0x66, 0xc8, 0x08, 0x20, 0xcf, 0x0c, 0xd7, 0x47, 0x45, 0x21, 0x0b, 0xf6, 0x59, 0xd5, 0xfe, 0x5c, 0x8d, 0xaa, 0x12, 0x7b, 0x6f, 0xa1, 0xf0, 0x52, 0x33, 0x4f, 0xf5, 0xce, 0x59, 0xd3, 0xab, 0x66, 0x10, 0xbf, 0x06, 0xc4, 0x31, 0x06, 0x73, 0xd6, 0x80, 0xa2, 0x78, 0xc2, 0x45, 0xcb, 0x03, 0x65, 0x39, 0xc9, 0x09, 0xd1, 0x06, 0x04, 0x33, 0x1a, 0x5a, 0xf1, 0xde, 0x01, 0xb8, 0x71, 0x83, 0xc4, 0xb5, 0xb3, 0xc3, 0x54, 0x65, 0x33, 0x0d, 0x5a, 0xf7, 0x9b, 0x90, 0x7c, 0x27, 0x1f, 0x3a, 0x58, 0xa3, 0xd8, 0xfd, 0x30, 0x5f, 0xb7, 0xd2, 0x66, 0xa2, 0x93, 0x1c, 0x28, 0xb7, 0xe9, 0x1b, 0x0c, 0xe1, 0x28, 0x47, 0x26, 0xbb, 0xe9, 0x7d, 0x7e, 0xdc, 0x96, 0x10, 0x92, 0x50, 0x56, 0x7c, 0x06, 0xe2, 0x27, 0xb4, 0x08, 0xd3, 0xda, 0x7b, 0x98, 0x34, 0x73, 0x9f, 0xdb, 0xf6, 0x62, 0xed, 0x31, 0x41, 0x13, 0xd3, 0xa2, 0xa8, 0x4b, 0x3a, 0xc6, 0x1d, 0xe4, 0x2f, 0x8c, 0xf8, 0xfb, 0x97, 0x64, 0xf4, 0xb6, 0x2f, 0x80, 0x5a, 0xf3, 0x56, 0xe0, 0x40, 0x50, 0xd5, 0x19, 0xd0, 0x1e, 0xfc, 0xca, 0xe5, 0xc9, 0xd4, 0x60, 0x00, 0x81, 0x2e, 0xa3, 0xcc, 0xb6, 0x52, 0xf0, 0xb4, 0xdb, 0x69, 0x99, 0xce, 0x7a, 0x32, 0x4c, 0x08, 0xed, 0xaa, 0x10, 0x10, 0xe3, 0x6f, 0xee, 0x99, 0x68, 0x95, 0x9f, 0x04, 0x71, 0xb2, 0x49, 0x2f, 0x62, 0xa6, 0x5e, 0xb4, 0xef, 0x02, 0xed, 0x4f, 0x27, 0xde, 0x4a, 0x0f, 0xfd, 0xc1, 0xcc, 0xdd, 0x02, 0x8f, 0x08, 0x16, 0x54, 0xdf, 0xda, 0xca, 0xe0, 0x82, 0xf1, 0xb4, 0x31, 0x7a, 0xa9, 0x81, 0xfe, 0x90, 0xb7, 0x3e, 0xdb, 0xd3, 0x35, 0xc0, 0x20, 0x80, 0x33, 0x46, 0x4a, 0x63, 0xab, 0xd1, 0x0d, 0x29, 0xd2, 0xe2, 0x84, 0xb8, 0xdb, 0xfa, 0xe9, 0x89, 0x44, 0x86, 0x7c, 0xe8, 0x0b, 0xe6, 0x02, 0x6a, 0x07, 0x9b, 0x96, 0xd0, 0xdb, 0x2e, 0x41, 0x4c, 0xa1, 0xd5, 0x57, 0x45, 0x14, 0xfb, 0xe3, 0xa6, 0x72, 0x5b, 0x87, 0x6e, 0x0c, 0x6d, 0x5b, 0xce, 0xe0, 0x2f, 0xe2, 0x21, 0x81, 0x95, 0xb0, 0xe8, 0xb6, 0x32, 0x0b, 0xb2, 0x98, 0x13, 0x52, 0x5d, 0xfb, 0xec, 0x63, 0x17, 0x8a, 0x9e, 0x23, 0x22, 0x36, 0xee, 0xcd, 0xda, 0xdb, 0xcf, 0x3e, 0xf1, 0xc7, 0xf1, 0x01, 0x12, 0x93, 0x0a, 0xeb, 0x6f, 0xf2, 0x02, 0x15, 0x96, 0x77, 0x5d, 0xef, 0x9c, 0xfb, 0x88, 0x91, 0x59, 0xf9, 0x84, 0xdd, 0x9b, 0x26, 0x8d, 0x80, 0xf9, 0x80, 0x66, 0x2d, 0xac, 0xf7, 0x1f, 0x06, 0xba, 0x7f, 0xff, 0xee, 0xed, 0x40, 0x5f, 0xa5, 0xd6, 0xbd, 0x8c, 0x5b, 0x46, 0xd2, 0x7e, 0x48, 0x4a, 0x65, 0x8f, 0x08, 0x42, 0x60, 0xf7, 0x0f, 0xb9, 0x16, 0x0b, 0x0c, 0x1a, 0x06, 0x00, 0x00, }, nil, }, { // has 1 non-empty fixed huffman block then garbage "hello.txt", "hello.txt + garbage", "hello world\n", []byte{ 0x1f, 0x8b, 0x08, 0x08, 0xc8, 0x58, 0x13, 0x4a, 0x00, 0x03, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x74, 0x78, 0x74, 0x00, 0xcb, 0x48, 0xcd, 0xc9, 0xc9, 0x57, 0x28, 0xcf, 0x2f, 0xca, 0x49, 0xe1, 0x02, 0x00, 0x2d, 0x3b, 0x08, 0xaf, 0x0c, 0x00, 0x00, 0x00, 'g', 'a', 'r', 'b', 'a', 'g', 'e', '!', '!', '!', }, ErrHeader, }, { // has 1 non-empty fixed huffman block not enough header "hello.txt", "hello.txt + garbage", "hello world\n", []byte{ 0x1f, 0x8b, 0x08, 0x08, 0xc8, 0x58, 0x13, 0x4a, 0x00, 0x03, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x74, 0x78, 0x74, 0x00, 0xcb, 0x48, 0xcd, 0xc9, 0xc9, 0x57, 0x28, 0xcf, 0x2f, 0xca, 0x49, 0xe1, 0x02, 0x00, 0x2d, 0x3b, 0x08, 0xaf, 0x0c, 0x00, 0x00, 0x00, gzipID1, }, io.ErrUnexpectedEOF, }, { // has 1 non-empty fixed huffman block but corrupt checksum "hello.txt", "hello.txt + corrupt checksum", "hello world\n", []byte{ 0x1f, 0x8b, 0x08, 0x08, 0xc8, 0x58, 0x13, 0x4a, 0x00, 0x03, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x74, 0x78, 0x74, 0x00, 0xcb, 0x48, 0xcd, 0xc9, 0xc9, 0x57, 0x28, 0xcf, 0x2f, 0xca, 0x49, 0xe1, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x00, 0x00, 0x00, }, ErrChecksum, }, { // has 1 non-empty fixed huffman block but corrupt size "hello.txt", "hello.txt + corrupt size", "hello world\n", []byte{ 0x1f, 0x8b, 0x08, 0x08, 0xc8, 0x58, 0x13, 0x4a, 0x00, 0x03, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x74, 0x78, 0x74, 0x00, 0xcb, 0x48, 0xcd, 0xc9, 0xc9, 0x57, 0x28, 0xcf, 0x2f, 0xca, 0x49, 0xe1, 0x02, 0x00, 0x2d, 0x3b, 0x08, 0xaf, 0xff, 0x00, 0x00, 0x00, }, ErrChecksum, }, { "f1l3n4m3.tXt", "header with all fields used", "", []byte{ 0x1f, 0x8b, 0x08, 0x1e, 0x70, 0xf0, 0xf9, 0x4a, 0x00, 0xaa, 0x09, 0x00, 0x7a, 0x7a, 0x05, 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x31, 0x6c, 0x33, 0x6e, 0x34, 0x6d, 0x33, 0x2e, 0x74, 0x58, 0x74, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x00, 0x92, 0xfd, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, nil, }, { "", "truncated gzip file amid raw-block", "hello", []byte{ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x0c, 0x00, 0xf3, 0xff, 0x68, 0x65, 0x6c, 0x6c, 0x6f, }, io.ErrUnexpectedEOF, }, { "", "truncated gzip file amid fixed-block", "He", []byte{ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf2, 0x48, 0xcd, }, io.ErrUnexpectedEOF, }, } func TestDecompressor(t *testing.T) { b := new(bytes.Buffer) for _, tt := range gunzipTests { in := bytes.NewReader(tt.gzip) gzip, err := NewReader(in) if err != nil { t.Errorf("%s: NewReader: %s", tt.name, err) continue } defer gzip.Close() if tt.name != gzip.Name { t.Errorf("%s: got name %s", tt.name, gzip.Name) } b.Reset() n, err := io.Copy(b, gzip) if err != tt.err { t.Errorf("%s: io.Copy: %v want %v", tt.name, err, tt.err) } s := b.String() if s != tt.raw { t.Errorf("%s: got %d-byte %q want %d-byte %q", tt.name, n, s, len(tt.raw), tt.raw) } // Test Reader Reset. in = bytes.NewReader(tt.gzip) err = gzip.Reset(in) if err != nil { t.Errorf("%s: Reset: %s", tt.name, err) continue } if tt.name != gzip.Name { t.Errorf("%s: got name %s", tt.name, gzip.Name) } b.Reset() n, err = io.Copy(b, gzip) if err != tt.err { t.Errorf("%s: io.Copy: %v want %v", tt.name, err, tt.err) } s = b.String() if s != tt.raw { t.Errorf("%s: got %d-byte %q want %d-byte %q", tt.name, n, s, len(tt.raw), tt.raw) } } } func TestIssue6550(t *testing.T) { f, err := os.Open("testdata/issue6550.gz") if err != nil { t.Fatal(err) } gzip, err := NewReader(f) if err != nil { t.Fatalf("NewReader(testdata/issue6550.gz): %v", err) } defer gzip.Close() done := make(chan bool, 1) go func() { _, err := io.Copy(ioutil.Discard, gzip) if err == nil { t.Errorf("Copy succeeded") } else { t.Logf("Copy failed (correctly): %v", err) } done <- true }() select { case <-time.After(1 * time.Second): t.Errorf("Copy hung") case <-done: // ok } } func TestInitialReset(t *testing.T) { var r Reader if err := r.Reset(bytes.NewReader(gunzipTests[1].gzip)); err != nil { t.Error(err) } var buf bytes.Buffer if _, err := io.Copy(&buf, &r); err != nil { t.Error(err) } if s := buf.String(); s != gunzipTests[1].raw { t.Errorf("got %q want %q", s, gunzipTests[1].raw) } } func TestMultistreamFalse(t *testing.T) { // Find concatenation test. var tt gunzipTest for _, tt = range gunzipTests { if strings.HasSuffix(tt.desc, " x2") { goto Found } } t.Fatal("cannot find hello.txt x2 in gunzip tests") Found: br := bytes.NewReader(tt.gzip) var r Reader if err := r.Reset(br); err != nil { t.Fatalf("first reset: %v", err) } // Expect two streams with "hello world\n", then real EOF. const hello = "hello world\n" r.Multistream(false) data, err := ioutil.ReadAll(&r) if string(data) != hello || err != nil { t.Fatalf("first stream = %q, %v, want %q, %v", string(data), err, hello, nil) } if err := r.Reset(br); err != nil { t.Fatalf("second reset: %v", err) } r.Multistream(false) data, err = ioutil.ReadAll(&r) if string(data) != hello || err != nil { t.Fatalf("second stream = %q, %v, want %q, %v", string(data), err, hello, nil) } if err := r.Reset(br); err != io.EOF { t.Fatalf("third reset: err=%v, want io.EOF", err) } } func TestWriteTo(t *testing.T) { input := make([]byte, 100000) n, err := rand.Read(input) if err != nil { t.Fatal(err) } if n != len(input) { t.Fatal("did not fill buffer") } compressed := &bytes.Buffer{} // Do it twice to test MultiStream functionality for i := 0; i < 2; i++ { w, err := NewWriterLevel(compressed, -2) if err != nil { t.Fatal(err) } n, err = w.Write(input) if err != nil { t.Fatal(err) } if n != len(input) { t.Fatal("did not fill buffer") } w.Close() } input = append(input, input...) buf := compressed.Bytes() dec, err := NewReader(bytes.NewBuffer(buf)) if err != nil { t.Fatal(err) } // ReadAll does not use WriteTo, but we wrap it in a NopCloser to be sure. readall, err := ioutil.ReadAll(ioutil.NopCloser(dec)) if err != nil { t.Fatal(err) } if len(readall) != len(input) { t.Errorf("did not decompress everything, want %d, got %d", len(input), len(readall)) } if bytes.Compare(readall, input) != 0 { t.Error("output did not match input") } dec, err = NewReader(bytes.NewBuffer(buf)) if err != nil { t.Fatal(err) } wtbuf := &bytes.Buffer{} written, err := dec.WriteTo(wtbuf) if err != nil { t.Fatal(err) } if written != int64(len(input)) { t.Error("Returned length did not match, expected", len(input), "got", written) } if wtbuf.Len() != len(input) { t.Error("Actual Length did not match, expected", len(input), "got", wtbuf.Len()) } if bytes.Compare(wtbuf.Bytes(), input) != 0 { t.Fatal("output did not match input") } } func TestNilStream(t *testing.T) { // Go liberally interprets RFC 1952 section 2.2 to mean that a gzip file // consist of zero or more members. Thus, we test that a nil stream is okay. _, err := NewReader(bytes.NewReader(nil)) if err != io.EOF { t.Fatalf("NewReader(nil) on empty stream: got %v, want io.EOF", err) } } func TestTruncatedStreams(t *testing.T) { const data = "\x1f\x8b\b\x04\x00\tn\x88\x00\xff\a\x00foo bar\xcbH\xcd\xc9\xc9\xd7Q(\xcf/\xcaI\x01\x04:r\xab\xff\f\x00\x00\x00" // Intentionally iterate starting with at least one byte in the stream. for i := 1; i < len(data)-1; i++ { r, err := NewReader(strings.NewReader(data[:i])) if err != nil { if err != io.ErrUnexpectedEOF { t.Errorf("NewReader(%d) on truncated stream: got %v, want %v", i, err, io.ErrUnexpectedEOF) } continue } _, err = io.Copy(ioutil.Discard, r) if ferr, ok := err.(*flate.ReadError); ok { err = ferr.Err } if err != io.ErrUnexpectedEOF { t.Errorf("io.Copy(%d) on truncated stream: got %v, want %v", i, err, io.ErrUnexpectedEOF) } } } func BenchmarkGunzipCopy(b *testing.B) { dat, _ := ioutil.ReadFile("testdata/test.json") dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dst := &bytes.Buffer{} w, _ := NewWriterLevel(dst, 1) _, err := w.Write(dat) if err != nil { b.Fatal(err) } w.Close() input := dst.Bytes() b.SetBytes(int64(len(dat))) b.ResetTimer() for n := 0; n < b.N; n++ { r, err := NewReader(bytes.NewBuffer(input)) if err != nil { b.Fatal(err) } _, err = io.Copy(ioutil.Discard, r) if err != nil { b.Fatal(err) } } } func BenchmarkGunzipNoWriteTo(b *testing.B) { dat, _ := ioutil.ReadFile("testdata/test.json") dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dst := &bytes.Buffer{} w, _ := NewWriterLevel(dst, 1) _, err := w.Write(dat) if err != nil { b.Fatal(err) } w.Close() input := dst.Bytes() r, err := NewReader(bytes.NewBuffer(input)) if err != nil { b.Fatal(err) } b.SetBytes(int64(len(dat))) b.ResetTimer() for n := 0; n < b.N; n++ { err := r.Reset(bytes.NewBuffer(input)) if err != nil { b.Fatal(err) } _, err = io.Copy(ioutil.Discard, ioutil.NopCloser(r)) if err != nil { b.Fatal(err) } } } func BenchmarkGunzipStdlib(b *testing.B) { dat, _ := ioutil.ReadFile("testdata/test.json") dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dst := &bytes.Buffer{} w, _ := NewWriterLevel(dst, 1) _, err := w.Write(dat) if err != nil { b.Fatal(err) } w.Close() input := dst.Bytes() r, err := oldgz.NewReader(bytes.NewBuffer(input)) if err != nil { b.Fatal(err) } b.SetBytes(int64(len(dat))) b.ResetTimer() for n := 0; n < b.N; n++ { err := r.Reset(bytes.NewBuffer(input)) if err != nil { b.Fatal(err) } _, err = io.Copy(ioutil.Discard, r) if err != nil { b.Fatal(err) } } } compress-1.2.1/gzip/gzip.go000066400000000000000000000142511303637052300156240ustar00rootroot00000000000000// Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package gzip import ( "errors" "fmt" "io" "github.com/klauspost/compress/flate" "github.com/klauspost/crc32" ) // These constants are copied from the flate package, so that code that imports // "compress/gzip" does not also have to import "compress/flate". const ( NoCompression = flate.NoCompression BestSpeed = flate.BestSpeed BestCompression = flate.BestCompression DefaultCompression = flate.DefaultCompression ConstantCompression = flate.ConstantCompression HuffmanOnly = flate.HuffmanOnly ) // A Writer is an io.WriteCloser. // Writes to a Writer are compressed and written to w. type Writer struct { Header // written at first call to Write, Flush, or Close w io.Writer level int wroteHeader bool compressor *flate.Writer digest uint32 // CRC-32, IEEE polynomial (section 8) size uint32 // Uncompressed size (section 2.3.1) closed bool buf [10]byte err error } // NewWriter returns a new Writer. // Writes to the returned writer are compressed and written to w. // // It is the caller's responsibility to call Close on the WriteCloser when done. // Writes may be buffered and not flushed until Close. // // Callers that wish to set the fields in Writer.Header must do so before // the first call to Write, Flush, or Close. func NewWriter(w io.Writer) *Writer { z, _ := NewWriterLevel(w, DefaultCompression) return z } // NewWriterLevel is like NewWriter but specifies the compression level instead // of assuming DefaultCompression. // // The compression level can be DefaultCompression, NoCompression, or any // integer value between BestSpeed and BestCompression inclusive. The error // returned will be nil if the level is valid. func NewWriterLevel(w io.Writer, level int) (*Writer, error) { if level < HuffmanOnly || level > BestCompression { return nil, fmt.Errorf("gzip: invalid compression level: %d", level) } z := new(Writer) z.init(w, level) return z, nil } func (z *Writer) init(w io.Writer, level int) { compressor := z.compressor if compressor != nil { compressor.Reset(w) } *z = Writer{ Header: Header{ OS: 255, // unknown }, w: w, level: level, compressor: compressor, } } // Reset discards the Writer z's state and makes it equivalent to the // result of its original state from NewWriter or NewWriterLevel, but // writing to w instead. This permits reusing a Writer rather than // allocating a new one. func (z *Writer) Reset(w io.Writer) { z.init(w, z.level) } // writeBytes writes a length-prefixed byte slice to z.w. func (z *Writer) writeBytes(b []byte) error { if len(b) > 0xffff { return errors.New("gzip.Write: Extra data is too large") } le.PutUint16(z.buf[:2], uint16(len(b))) _, err := z.w.Write(z.buf[:2]) if err != nil { return err } _, err = z.w.Write(b) return err } // writeString writes a UTF-8 string s in GZIP's format to z.w. // GZIP (RFC 1952) specifies that strings are NUL-terminated ISO 8859-1 (Latin-1). func (z *Writer) writeString(s string) (err error) { // GZIP stores Latin-1 strings; error if non-Latin-1; convert if non-ASCII. needconv := false for _, v := range s { if v == 0 || v > 0xff { return errors.New("gzip.Write: non-Latin-1 header string") } if v > 0x7f { needconv = true } } if needconv { b := make([]byte, 0, len(s)) for _, v := range s { b = append(b, byte(v)) } _, err = z.w.Write(b) } else { _, err = io.WriteString(z.w, s) } if err != nil { return err } // GZIP strings are NUL-terminated. z.buf[0] = 0 _, err = z.w.Write(z.buf[:1]) return err } // Write writes a compressed form of p to the underlying io.Writer. The // compressed bytes are not necessarily flushed until the Writer is closed. func (z *Writer) Write(p []byte) (int, error) { if z.err != nil { return 0, z.err } var n int // Write the GZIP header lazily. if !z.wroteHeader { z.wroteHeader = true z.buf[0] = gzipID1 z.buf[1] = gzipID2 z.buf[2] = gzipDeflate z.buf[3] = 0 if z.Extra != nil { z.buf[3] |= 0x04 } if z.Name != "" { z.buf[3] |= 0x08 } if z.Comment != "" { z.buf[3] |= 0x10 } le.PutUint32(z.buf[4:8], uint32(z.ModTime.Unix())) if z.level == BestCompression { z.buf[8] = 2 } else if z.level == BestSpeed { z.buf[8] = 4 } else { z.buf[8] = 0 } z.buf[9] = z.OS n, z.err = z.w.Write(z.buf[:10]) if z.err != nil { return n, z.err } if z.Extra != nil { z.err = z.writeBytes(z.Extra) if z.err != nil { return n, z.err } } if z.Name != "" { z.err = z.writeString(z.Name) if z.err != nil { return n, z.err } } if z.Comment != "" { z.err = z.writeString(z.Comment) if z.err != nil { return n, z.err } } if z.compressor == nil { z.compressor, _ = flate.NewWriter(z.w, z.level) } } z.size += uint32(len(p)) z.digest = crc32.Update(z.digest, crc32.IEEETable, p) n, z.err = z.compressor.Write(p) return n, z.err } // Flush flushes any pending compressed data to the underlying writer. // // It is useful mainly in compressed network protocols, to ensure that // a remote reader has enough data to reconstruct a packet. Flush does // not return until the data has been written. If the underlying // writer returns an error, Flush returns that error. // // In the terminology of the zlib library, Flush is equivalent to Z_SYNC_FLUSH. func (z *Writer) Flush() error { if z.err != nil { return z.err } if z.closed { return nil } if !z.wroteHeader { z.Write(nil) if z.err != nil { return z.err } } z.err = z.compressor.Flush() return z.err } // Close closes the Writer, flushing any unwritten data to the underlying // io.Writer, but does not close the underlying io.Writer. func (z *Writer) Close() error { if z.err != nil { return z.err } if z.closed { return nil } z.closed = true if !z.wroteHeader { z.Write(nil) if z.err != nil { return z.err } } z.err = z.compressor.Close() if z.err != nil { return z.err } le.PutUint32(z.buf[:4], z.digest) le.PutUint32(z.buf[4:8], z.size) _, z.err = z.w.Write(z.buf[:8]) return z.err } compress-1.2.1/gzip/gzip_test.go000066400000000000000000000304421303637052300166630ustar00rootroot00000000000000// Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package gzip import ( "bufio" "bytes" oldgz "compress/gzip" "io" "io/ioutil" "math/rand" "testing" "time" ) // TestEmpty tests that an empty payload still forms a valid GZIP stream. func TestEmpty(t *testing.T) { buf := new(bytes.Buffer) if err := NewWriter(buf).Close(); err != nil { t.Fatalf("Writer.Close: %v", err) } r, err := NewReader(buf) if err != nil { t.Fatalf("NewReader: %v", err) } b, err := ioutil.ReadAll(r) if err != nil { t.Fatalf("ReadAll: %v", err) } if len(b) != 0 { t.Fatalf("got %d bytes, want 0", len(b)) } if err := r.Close(); err != nil { t.Fatalf("Reader.Close: %v", err) } } // TestRoundTrip tests that gzipping and then gunzipping is the identity // function. func TestRoundTrip(t *testing.T) { buf := new(bytes.Buffer) w := NewWriter(buf) w.Comment = "comment" w.Extra = []byte("extra") w.ModTime = time.Unix(1e8, 0) w.Name = "name" if _, err := w.Write([]byte("payload")); err != nil { t.Fatalf("Write: %v", err) } if err := w.Close(); err != nil { t.Fatalf("Writer.Close: %v", err) } r, err := NewReader(buf) if err != nil { t.Fatalf("NewReader: %v", err) } b, err := ioutil.ReadAll(r) if err != nil { t.Fatalf("ReadAll: %v", err) } if string(b) != "payload" { t.Fatalf("payload is %q, want %q", string(b), "payload") } if r.Comment != "comment" { t.Fatalf("comment is %q, want %q", r.Comment, "comment") } if string(r.Extra) != "extra" { t.Fatalf("extra is %q, want %q", r.Extra, "extra") } if r.ModTime.Unix() != 1e8 { t.Fatalf("mtime is %d, want %d", r.ModTime.Unix(), uint32(1e8)) } if r.Name != "name" { t.Fatalf("name is %q, want %q", r.Name, "name") } if err := r.Close(); err != nil { t.Fatalf("Reader.Close: %v", err) } } // TestLatin1 tests the internal functions for converting to and from Latin-1. func TestLatin1(t *testing.T) { latin1 := []byte{0xc4, 'u', 0xdf, 'e', 'r', 'u', 'n', 'g', 0} utf8 := "Äußerung" z := Reader{r: bufio.NewReader(bytes.NewReader(latin1))} s, err := z.readString() if err != nil { t.Fatalf("readString: %v", err) } if s != utf8 { t.Fatalf("read latin-1: got %q, want %q", s, utf8) } buf := bytes.NewBuffer(make([]byte, 0, len(latin1))) c := Writer{w: buf} if err = c.writeString(utf8); err != nil { t.Fatalf("writeString: %v", err) } s = buf.String() if s != string(latin1) { t.Fatalf("write utf-8: got %q, want %q", s, string(latin1)) } } // TestLatin1RoundTrip tests that metadata that is representable in Latin-1 // survives a round trip. func TestLatin1RoundTrip(t *testing.T) { testCases := []struct { name string ok bool }{ {"", true}, {"ASCII is OK", true}, {"unless it contains a NUL\x00", false}, {"no matter where \x00 occurs", false}, {"\x00\x00\x00", false}, {"Látin-1 also passes (U+00E1)", true}, {"but LĀtin Extended-A (U+0100) does not", false}, {"neither does 日本語", false}, {"invalid UTF-8 also \xffails", false}, {"\x00 as does Látin-1 with NUL", false}, } for _, tc := range testCases { buf := new(bytes.Buffer) w := NewWriter(buf) w.Name = tc.name err := w.Close() if (err == nil) != tc.ok { t.Errorf("Writer.Close: name = %q, err = %v", tc.name, err) continue } if !tc.ok { continue } r, err := NewReader(buf) if err != nil { t.Errorf("NewReader: %v", err) continue } _, err = ioutil.ReadAll(r) if err != nil { t.Errorf("ReadAll: %v", err) continue } if r.Name != tc.name { t.Errorf("name is %q, want %q", r.Name, tc.name) continue } if err := r.Close(); err != nil { t.Errorf("Reader.Close: %v", err) continue } } } func TestWriterFlush(t *testing.T) { buf := new(bytes.Buffer) w := NewWriter(buf) w.Comment = "comment" w.Extra = []byte("extra") w.ModTime = time.Unix(1e8, 0) w.Name = "name" n0 := buf.Len() if n0 != 0 { t.Fatalf("buffer size = %d before writes; want 0", n0) } if err := w.Flush(); err != nil { t.Fatal(err) } n1 := buf.Len() if n1 == 0 { t.Fatal("no data after first flush") } w.Write([]byte("x")) n2 := buf.Len() if n1 != n2 { t.Fatalf("after writing a single byte, size changed from %d to %d; want no change", n1, n2) } if err := w.Flush(); err != nil { t.Fatal(err) } n3 := buf.Len() if n2 == n3 { t.Fatal("Flush didn't flush any data") } } // Multiple gzip files concatenated form a valid gzip file. func TestConcat(t *testing.T) { var buf bytes.Buffer w := NewWriter(&buf) w.Write([]byte("hello ")) w.Close() w = NewWriter(&buf) w.Write([]byte("world\n")) w.Close() r, err := NewReader(&buf) data, err := ioutil.ReadAll(r) if string(data) != "hello world\n" || err != nil { t.Fatalf("ReadAll = %q, %v, want %q, nil", data, err, "hello world") } } func TestWriterReset(t *testing.T) { buf := new(bytes.Buffer) buf2 := new(bytes.Buffer) z := NewWriter(buf) msg := []byte("hello world") z.Write(msg) z.Close() z.Reset(buf2) z.Write(msg) z.Close() if buf.String() != buf2.String() { t.Errorf("buf2 %q != original buf of %q", buf2.String(), buf.String()) } } var testbuf []byte func testFile(i, level int, t *testing.T) { dat, _ := ioutil.ReadFile("testdata/test.json") dl := len(dat) if len(testbuf) != i*dl { // Make results predictable testbuf = make([]byte, i*dl) for j := 0; j < i; j++ { copy(testbuf[j*dl:j*dl+dl], dat) } } br := bytes.NewBuffer(testbuf) var buf bytes.Buffer w, err := NewWriterLevel(&buf, DefaultCompression) if err != nil { t.Fatal(err) } n, err := io.Copy(w, br) if err != nil { t.Fatal(err) } if int(n) != len(testbuf) { t.Fatal("Short write:", n, "!=", testbuf) } err = w.Close() if err != nil { t.Fatal(err) } r, err := NewReader(&buf) if err != nil { t.Fatal(err.Error()) } decoded, err := ioutil.ReadAll(r) if err != nil { t.Fatal(err.Error()) } if !bytes.Equal(testbuf, decoded) { t.Errorf("decoded content does not match.") } } func TestFile1xM2(t *testing.T) { testFile(1, -2, t) } func TestFile1xM1(t *testing.T) { testFile(1, -1, t) } func TestFile1x0(t *testing.T) { testFile(1, 0, t) } func TestFile1x1(t *testing.T) { testFile(1, 1, t) } func TestFile1x2(t *testing.T) { testFile(1, 2, t) } func TestFile1x3(t *testing.T) { testFile(1, 3, t) } func TestFile1x4(t *testing.T) { testFile(1, 4, t) } func TestFile1x5(t *testing.T) { testFile(1, 5, t) } func TestFile1x6(t *testing.T) { testFile(1, 6, t) } func TestFile1x7(t *testing.T) { testFile(1, 7, t) } func TestFile1x8(t *testing.T) { testFile(1, 8, t) } func TestFile1x9(t *testing.T) { testFile(1, 9, t) } func TestFile10(t *testing.T) { testFile(10, DefaultCompression, t) } func TestFile50(t *testing.T) { if testing.Short() { t.Skip("skipping during short test") } testFile(50, DefaultCompression, t) } func TestFile200(t *testing.T) { if testing.Short() { t.Skip("skipping during short test") } testFile(200, BestSpeed, t) } func testBigGzip(i int, t *testing.T) { if len(testbuf) != i { // Make results predictable rand.Seed(1337) testbuf = make([]byte, i) for idx := range testbuf { testbuf[idx] = byte(65 + rand.Intn(20)) } } c := BestCompression if testing.Short() { c = BestSpeed } br := bytes.NewBuffer(testbuf) var buf bytes.Buffer w, err := NewWriterLevel(&buf, c) if err != nil { t.Fatal(err) } n, err := io.Copy(w, br) if err != nil { t.Fatal(err) } if int(n) != len(testbuf) { t.Fatal("Short write:", n, "!=", len(testbuf)) } err = w.Close() if err != nil { t.Fatal(err.Error()) } r, err := NewReader(&buf) if err != nil { t.Fatal(err.Error()) } decoded, err := ioutil.ReadAll(r) if err != nil { t.Fatal(err.Error()) } if !bytes.Equal(testbuf, decoded) { t.Errorf("decoded content does not match.") } } func TestGzip1K(t *testing.T) { testBigGzip(1000, t) } func TestGzip100K(t *testing.T) { testBigGzip(100000, t) } func TestGzip1M(t *testing.T) { if testing.Short() { t.Skip("skipping during short test") } testBigGzip(1000000, t) } func TestGzip10M(t *testing.T) { if testing.Short() { t.Skip("skipping during short test") } testBigGzip(10000000, t) } // Test if two runs produce identical results. func TestDeterministicLM2(t *testing.T) { testDeterm(-2, t) } // Level 0 is not deterministic since it depends on the size of each write. // func TestDeterministicL0(t *testing.T) { testDeterm(0, t) } func TestDeterministicL1(t *testing.T) { testDeterm(1, t) } func TestDeterministicL2(t *testing.T) { testDeterm(2, t) } func TestDeterministicL3(t *testing.T) { testDeterm(3, t) } func TestDeterministicL4(t *testing.T) { testDeterm(4, t) } func TestDeterministicL5(t *testing.T) { testDeterm(5, t) } func TestDeterministicL6(t *testing.T) { testDeterm(6, t) } func TestDeterministicL7(t *testing.T) { testDeterm(7, t) } func TestDeterministicL8(t *testing.T) { testDeterm(8, t) } func TestDeterministicL9(t *testing.T) { testDeterm(9, t) } func testDeterm(i int, t *testing.T) { var length = 500000 if testing.Short() { length = 100000 } rand.Seed(1337) t1 := make([]byte, length) for idx := range t1 { t1[idx] = byte(65 + rand.Intn(8)) } br := bytes.NewBuffer(t1) var b1 bytes.Buffer w, err := NewWriterLevel(&b1, i) if err != nil { t.Fatal(err) } _, err = io.Copy(w, br) if err != nil { t.Fatal(err) } w.Flush() w.Close() // We recreate the buffer, so we have a goos chance of getting a // different memory address. rand.Seed(1337) t2 := make([]byte, length) for idx := range t2 { t2[idx] = byte(65 + rand.Intn(8)) } br2 := bytes.NewBuffer(t2) var b2 bytes.Buffer w2, err := NewWriterLevel(&b2, i) if err != nil { t.Fatal(err) } // We write the same data, but with a different size than // the default copy. for { _, err = io.CopyN(w2, br2, 1234) if err == io.EOF { err = nil break } else if err != nil { break } } if err != nil { t.Fatal(err) } w2.Flush() w2.Close() b1b := b1.Bytes() b2b := b2.Bytes() if bytes.Compare(b1b, b2b) != 0 { t.Fatalf("Level %d did not produce deterministric result, len(a) = %d, len(b) = %d", i, len(b1b), len(b2b)) } } func BenchmarkGzipLM2(b *testing.B) { benchmarkGzipN(b, -2) } func BenchmarkGzipL1(b *testing.B) { benchmarkGzipN(b, 1) } func BenchmarkGzipL2(b *testing.B) { benchmarkGzipN(b, 2) } func BenchmarkGzipL3(b *testing.B) { benchmarkGzipN(b, 3) } func BenchmarkGzipL4(b *testing.B) { benchmarkGzipN(b, 4) } func BenchmarkGzipL5(b *testing.B) { benchmarkGzipN(b, 5) } func BenchmarkGzipL6(b *testing.B) { benchmarkGzipN(b, 6) } func BenchmarkGzipL7(b *testing.B) { benchmarkGzipN(b, 7) } func BenchmarkGzipL8(b *testing.B) { benchmarkGzipN(b, 8) } func BenchmarkGzipL9(b *testing.B) { benchmarkGzipN(b, 9) } func benchmarkGzipN(b *testing.B, level int) { dat, _ := ioutil.ReadFile("testdata/test.json") dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) b.SetBytes(int64(len(dat))) w, _ := NewWriterLevel(ioutil.Discard, level) b.ResetTimer() for n := 0; n < b.N; n++ { w.Reset(ioutil.Discard) n, err := w.Write(dat) if n != len(dat) { panic("short write") } if err != nil { panic(err) } err = w.Close() if err != nil { panic(err) } } } func BenchmarkOldGzipL1(b *testing.B) { benchmarkOldGzipN(b, 1) } func BenchmarkOldGzipL2(b *testing.B) { benchmarkOldGzipN(b, 2) } func BenchmarkOldGzipL3(b *testing.B) { benchmarkOldGzipN(b, 3) } func BenchmarkOldGzipL4(b *testing.B) { benchmarkOldGzipN(b, 4) } func BenchmarkOldGzipL5(b *testing.B) { benchmarkOldGzipN(b, 5) } func BenchmarkOldGzipL6(b *testing.B) { benchmarkOldGzipN(b, 6) } func BenchmarkOldGzipL7(b *testing.B) { benchmarkOldGzipN(b, 7) } func BenchmarkOldGzipL8(b *testing.B) { benchmarkOldGzipN(b, 8) } func BenchmarkOldGzipL9(b *testing.B) { benchmarkOldGzipN(b, 9) } func benchmarkOldGzipN(b *testing.B, level int) { dat, _ := ioutil.ReadFile("testdata/test.json") dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) dat = append(dat, dat...) b.SetBytes(int64(len(dat))) w, _ := oldgz.NewWriterLevel(ioutil.Discard, level) b.ResetTimer() for n := 0; n < b.N; n++ { w.Reset(ioutil.Discard) n, err := w.Write(dat) if n != len(dat) { panic("short write") } if err != nil { panic(err) } err = w.Close() if err != nil { panic(err) } } } compress-1.2.1/gzip/testdata/000077500000000000000000000000001303637052300161325ustar00rootroot00000000000000compress-1.2.1/gzip/testdata/issue6550.gz000066400000000000000000002000001303637052300201340ustar00rootroot00000000000000@Q2PW^|>ÄuN, 0%ts _^U6lQM5V/P~PL%ձ)8#~|)U'PcyRUZ֨k$G:a.nO\JfQǕb}opsuj|E+qLGt=R/S2:*KUzvjjջRUt$b>FF:.bM[d+]Blqgس^;@TjNUB6QqDNbv5ȩYb{WTvHzriԜ rM6 \]<,Q8d毭p v%NL`130"nHQ>YV+[9׶jZͮI;b] wbKX}fȯ>]^Z""ceF/`K~\Up^(i 5%|ڜ0}hR(?^1IMɝle\9\8VֱM\m4/  t$6K=K3u;VEi'ߖ>^DKjkj%2s+&gz\2ZdjN&uݻ)JI\JA*[_nUŻ{bb8Z7obIBp_Ǜ| Dd|~TsQS =pzyX5j0B 1T!K<O瘰&J^:?8>tp75-&L\r*l)f+f^wo8QY)HGq7lۻC^f=I l5^UC}:F5M ܍|1/粹\+Z._5j65LnK;Sv?ؖAN\Sti&@uw$ CP$PAhϢ\NFD"!Az~^ |֌cc+Ydܲ<\Z9\ƩKmejLnwz;e΃1'J^0HЈci`70wxqomBmo4? n 'ٌ mNBL77O6rl\>ոFRI-]k#N%6ѫB!k r|7IGwX˒fyqI0F"= _w=3|}FSZ^)lab-I>sa8Ʉ#fbb{ƇAW߻+ 7meSB"BcX'/m 0PTT=0}qw;_hI 맷&cA*Ţq\-2b![y^NXOrIHx?g;HU;ak_ ce$]SO^9/aС|$]8)0mj -KF92T9ptpsNײN2Rfv38Tc,t&ߛ⫎chޜM'(D^<_C4xL&2xDZ,`>@^o/Lj(EA($Raub51ѱqxT7%^)^7:)F.vm ֣odORQZdzvIM'h'IC'~?aQ/n\Ɖ`zjPBCTS $iVUWGvH]]!qGFw L Z1܂`0@LWwuUJ`+a! Ӳ-H´2yGQYٵYYGGtއmMV/>}c{Vvm=# a8kr:P+|1Øt5۞KԵWjJ]{/?{Z—UԗߵN巿^?_{?xE6؋@|l܋foauJư}W*([SvW8g~r8"yO ja=  ?8_H# s/X|v>uZSwly}YQ*)y@@&|r(@1>|1zӼljz-jc9d4p:(<{/em>}MmDHE8WФ;{x߅0=^%^U F~~4 DO?δ2Tu6 lj8L8>,橞fx\N?z-l%q5T&q p\/?-$q8ƑIg%M{{M"(9gӡ1w,KSJJ axʥ$#$OK|v "$-|x^8~xnoz. #|:j8 `*"]Yܲũ2|+6졞z|@!GA [ato:FAHp4$EpiIG8,r\(pǕG=I\gBX?XG>٤n7Fӟē*A_\xJ0?Jx%js}П=&l|{A@;>?"|HeDp896-,=\^Y̟2GٛY+k&t@,hPMxo|mu%*zp+O@U&a i@J];8+*PDUg;ԓWz ջolv&A->zQ~z6[g[ϷN^|Z}I Nߺ^;F^_^۝f׎?BӨ6ҍ%S8 H?woi7Yԛ<8/e0@MŔ^\ n9 wPz=\OS;{9`ӄCk;9A2,HMRS͡p#n (eLw-X\5'Ё|K9r.?mW#@k!+뢡;o#j:j|"ThAuJBTd2O+$@ JGVH3+#&JmCՋ#| &R+_ ՔhFc9dc<DDW~ŧH_Nȩ޸|n0+ )+n=w+Tj:(5dIA'LJXH ~7,as7U!+d) rw'z G#:~b(x\5шSnuhyY*ks4+$s:N&qe M0VaH d@B=k:ȵ 됑'a'*]~"ϣ;Q#%R׵(/h#$SCj+],!|#tXvhzPjB(j4 A4'l->Lr|`/V~=m|&)K52iz2j-4lO xs<$BnzEG.C O5)LzQl Dj(5-pNʐpR9}F:3oH8X';AN{Vtt91e8 C6 $tI' YNJӱK@Lz~8 K6zۏdPhatkޑyŢ1Ƅ-㸀{ aYp-y`^;waR7$5jCφCc y1#cHrQ92.6|Cn ]zKDQ dkdHv-PZ8IIZDirǕMԍMPKjSy0]Y>u z>+r:RF8%@KyPvʔH&K%(Jw%GǾ|u3}xQZ7Rl8d8CNOBO\@ i|j}"E aZsCRbP)Pۓ~%ϒ&s sթ+./. &EX T,P2soٻyHd{'ųsջ$P*Ǯ[e]T. A!znC]ԣl h _i` -PaRA<0~Oݒn:b; K8nPȫ޳:tg `Pu9VŜn} kِWؔKBَԕ`tP&X[ Ay:d^VxeG9@e=O9(ZK9|rK9ޫNXl﮺VJXBz,9*MS"5̣aFXeOz{$– "͔e#^GI6^Gj:^8K@Nc2)N_*U´UE9ܧB./tPWS^m?T6[$!0Ah}|V:좡!Vœ4޼ ,q7}_ı{5e TUU &Fuv#sx3wrqAݼR҃*fj_%M=S@ ߩ:'\?4ˣ-7?<j:Ȱбc %:VxT-%.\RٹgG Q0o$3 D6C=-*xp$(g>Q\uQۚ_-Uoo**r7Wfթcxe^=d x;ʯ8d|!'^.My"7fK&ݨ+d @qF>MZ(eoXd(k-6w%8"og?C[\d(ŗ*h2#}fȑ6v·Tv@ Jvhe["^lϛ9dAƀ>sc-([  x}T'Y_-Uk7]؀Q,Iy.s50]HDKGA]zK/Nb4L#sI*D#Z0tR<*204tI6)'iNظltI%8 췿|b_X֙dvbi@bIEP\S z}iI/F/-Mbcuu`3enhono偕ԳYe86dE`G$V-F*%etLl<5l6++:%OLIDZ1yb{B#%eݻ/-+ fjt⾞5;( 9@ gy؃!^Vg/Vݾu2}}!~Pu.bvf5z|p`ԋLYT*La;9!Sذ}vDK/ޯ,㥇 d̛˯wzzoiouƨS{`?_9n3Ьv ]$}>~} B9l7`)*I;MgYTX)\AM! _J'rޫO~qpVBzTFݯ-BZc1|u`_HR\S}sZcJ$fbI cUJ;/Vҁf1wY>㐉0Ox_7(VKуMGǯLu=&J #Da's8s!)tSȁ\FAQcl2匓\1Tp<*ttL9)\ c- (-zoX TT2Bg@;%J&{Fsjbglf }yfmu@9iJC0F!)$W&K^J%r\ֳIy$[ZWnl#؃D\&E`:i1~x:8/>=Ũ8͚ܯ&Sœ]cUOSw낻ze%pF1уMވ7O&3ۄ Ƴ>epXKXN9#ݿY{Kj?`3Al0F,N(&/yW?) ByUlcxjĕ/}i|4)犺iLf"6sbRȎ+,P2 e:i~+w$ קl#f%1J'=pt.IH} Y>dO&YW+,!lL~Annm b`V t %.a^}rR/mszɆ d^d!:5tt_uh EGX \Mܗ^<G˦.1|./O':R$+ig`~%S|q)l@c9nސԤp6g^YR`Pa)\, 㳠Us{d]huka#kP9RŘ+0Q<:%q#'I]3%oaDl\h5CˎBB@.aX^ӵwT,<N[ەY cTԈ =Lp K IN+'S^K/MC&A[^\Fp#lF(Z> 񎴰1 4ir7|[yc % 2I՞UKnHL $$u90bϳ4L]1v;Owj-+2/HgL+vF׮)2 &2sl8Jw=i1#2&Tsp;lƊߟBwG0U9ā;PУB!s3/S͕a3pQĸk\i_y^arA-hA}g$0Tc0`O&C zN$ҵƬ8".f HDМV"OS]6k[J<ٓ[<iq ٬`g[ang-e.[Ɨr5{z6-Y*Rv= #Yrٕ.U]R+Օ/S惸a/O+G~5P,M 6TxbXc]?e~tX5;a};ӽIymu:#ҷߚz?VAdJ Aƒ R&ϱç,rGB 8̥dfͫxe!FTNC aD@}F}/iM '_[AD$`|AQK{ZEٗR+Qk1)d*lV0V_ŎtL JJ'1À2GX^ {Tp}xe扭{ps%L>3޾<8C6tu- \1bTYhU j<ȞdQ6wtYG.+q$wtJL{zm+x؝U۷w*2ztd"c̯IzÖTP Rf͊W{z:k%+qj_xm\0|VPLd`Z9vY xbߗ.)B$kҍFXo$U*KS6Z _-I13m4]r@/e{@OL?ùxN0>ʸů=Es 9mb7VA9G{my'e]\iZ8*uiBa8K<^<pt;h{&kQv-Xy#'ݰGb-:弾^-N($07#(D +V܄Iwu8X~x 1KT:N$0A_l}G+8q%B˧0Ną}ms(}=10k^kӂg%r@hHJb=sO-)RaJkѫ?cGm&}.xEvms~a0sG}bq(PN}SN x'E v:h/*nN &>5# $޳LRjR`8#AP:F,1k6q -e.4mjxvo՗nШ7,qTe-u|EP:$t|.hcr8M!LwEǦńe,::%ѥWgd[;xIh|t+k^l:PCa S]'W9y&7k'QwN|}~m&ɟ,I @*ʘ (Oj~/Q".Xyl?['OkO^ԐrhCLcQvyZL=ͣF`NVqc%[/ҿ},u"AfΆLGU H\5(x9օ7vcGE^~2{K)SS&VfV}N®3O0&x.lbSJhNnp#'f"tq38^?v,@ifkHD|,~r&UzЭގHZV` Yg =A0c+I&5-r#%p r}d鱹G6{?p;GuqaQ]_ (eu0ޱnc#cNXX'ЮrtYLj9+S05&EQ TS4Uu(]U\h>Yb3\&dxa )>Ѐ@sMS*2x.Yt;S&.|u4fAv_n㷨c[R 鷛[VG}勐)2? ԋ$3v!;Y-[j]A.^K)5i.HҲ&EN|A!@p @/sn&; qi.|]D)ۈWDV$WtK47yMRΎEFy$xqr9sg*iwcbǡ,MJ ňdXc=Þj(in18bu'ΞXsXxW7~ab|Kެ5c YHD`" ;{| g( 8c9j[3XԯYnvŵjV)i&e\<4m^. oW*2OgW]u !HP }3/];\1~bHfzZζ /S\舐Ħ+,5D5mTiT2jES ܰJ,Ty|XC+4jk76-/abY4I Sr0Ik:vfKa;5Yjxpp)hyF 8Cci9_[ }maީ/O+ҧ6&?)8ko]X^cU9@Ew28h#5Ƿq D)\pfיּi'S>| 7IY̹0tډg}j m4d:hP/},uezZmxO:oĂHaͅozod[gN0EyEZCm/{U{'e892r;)ؕ}8`IO5&sMp9ʁhm4*lR{Br4 b„<21YuDB9 h,Om9c 0D#9U%[d 8/@"ZQb_٧.ޣIIo>c#[\hɶv]_YUHIN'ps¾Ns7 q4Os"vvuڝ'VX2.$-+Ƥ: ZYi0.ޑNթ ζRQi([Gb+-BA(p. L M0O޵s*\}+('ׂzC[x/gUQnh _ 5Ql4S_s v_蓗%⬐|K5APIR;S2J, j}7W=lm%WTVm? %74i&p (s[`3Tؾ-_xFaQ^mMLJ~~IJV5+_8oGKҵ=HC/zVQ&Vڹ %{[ pdY/8XVlW-fkrѪhdRQ@xsLuQErzD7bxuNpa)'wW9ZdΖ k=id8& G7ʄkȩgrR_ 3/!= ytQJc -2Va8&D'r[2q!5Iq<|2\D ijk&S&𻱅ϕhJ@"DOV-lʚ,3BN(`LQ$47(5zz_HJӧӱ꘶ySy [tuej0<N[pZc2 v}aB8uSESGLG>FbNbD[Nޟ_цTpRO#4>Qdx`eEh/9XоıSc%xc3o_KvشF6hb`` %v+Kf^œ;#yT! sH o{\cֆRV2>sVpUqA&xU$I84c:kC]h_Q$0ٍ. _@ݕ+*S5zN}qywu2 MH9OUI镨LFܴ^ S%\w$ȡ]ߕUSmdu)=)2 p}?/.H٣I>7_}젱5h]4KjBtӇ jhNp6ES6<4 >c8y2]ZPt뫁=Pyݸ(BD;Oj>T>"#aۍקˋ(+Mrx^wEdCxLʶN;jet|3k҉;K3CڽdVtf]C+&߽$+w1$&1]a"9&9ZZY ,,5.|X(IKs?r~ +5nNzaA[wH>t'~j䬃{t][P@>v^db-eqmsgxSz^cYqN==Bc!KIL0cDHa84T9eR O\ +^@P*}ԾBkkf4_.Wbp?fYsҖWN:\2^JyHđT8/83If1ڍ-.U2r3mQt-VPr/xV E;[/4fl[< >غiGy݁57PM@C;d48.\X4j=!.E귞kV\zݮz^kutv\RO\^uŖ'5w.Ylt?A羴% %p̯ . ,<[`|Vۮwvxւ7=%U:͞ WT7%'{6[͸y;A pόo.1r=J*eeFytIHކ\.񇡮م@#OJ+W6typTOW/L7&zwS)A|~F썑)G44jdj PfٴOW]0&G3[{NGOƀЅb@ mvs(uv2̆Z˚Y!<%HPRIlt67]N"K%S,jCavKpL|qqחĺE(WeG{η%K}^^4{RU|K*K8-e-1w,%>>Z5I>)úndk{Ӎ _F'Y[pT88Dl2-|t ,͹uEhw%D;N][L@?yu6l$>-w>żyٝ,?|aJҵt0c}Jj2 ru_Ebs$qpH=r$\^{f Z|pbknhD)r4OAuNyμ&Jd)BD÷,q;klwZh_17b uM&/]2,hv.O '.oܭ1+^Z^K2?ޝ0mzkɇr8E)T3A*\xRE o}yb=NƢo;a2F($Ѳ^WC^ b2`cW8[Y{Cצ*. " @*A4 .DyFa# E1*q,ûp*Ʊ9{^;gE0Σ Ɠq"K@Pheh䆰,F)M2F ef^jXt=tQǶXxqbBi6. дF$5qjVo.nAdTabxPxFV?\U@n8p~%CaR52fGq$Sdl8%uY紒k,;5ƽ-KoԨ%aYcwwdOD]N5dO(U *5**v0%)h5psk ęB0I3(b}\! 32GW0{>qMvuk5qp5`ѵ!iqf;o`hk`:}xq{XG[@QeFz> u֬mf]}`'&E8EsĤ@*8 GC,^DtR 4g~tJEϢQp%;l2JUyd!C4k!1c8&Na'4\׋S7)֛:۽N"⼾;-8tcӣ)[ Mkom d/%ru9},y[1o1` c5#t:sG|863'7U0Ysn$Y77g\z_il-ʆ7-[l%1nLV{Pp)B}ʖ~*-?=JsFzQ*-Jy8 `BEөzJ }0OɘNh<_]pS ®$ZǛ8ƯT%x:FpPd@hĚ@"/=<{]xmXcG"Doyhjyqp^&W优,HrV&_*`op*kͻ#оo^оk?fM?&-c#Bc&!1 ?ƚGǥ'9AWB\(UJ >#O-j/KUЦpD&FhU>xϑAE@kyzjV^U4uGD󢁳hrYjxÑ8AR S (Cʝx3~J꣏ҷi"RCJH"˧P "IgU$ C;:Zazbo}"On3ˉIKeu<x|g6%!7k@?8 0J51ZѲKr﹒e4K,+kh`Ĕ/o'[Dި9 M,$ա1t O9S\3X \C/UͰ~WK^E耏\m[mR'i0v[D|/\*/PʨxJty_Ɲ}pVr9~՛LPFibPSckŃ|5,륂FE;S:<,742zsKՈ/K%H ; R9Ζ etuFq1NWωsȒ CZ6 ;7S6$Oܷe98J?yݱsw|STyrzKfq͚_zߒKb"&Ƥ?wm3N8 S#$hjh:4m@g*+Jp >90{g(MX3#o&LFZOYC#'–ʓ$+p 킫\f4jSalP29K֧￙*IZ٫5W5Y\:(6FRz,a-Cmx'<%WaqVM~\_;;|R(_>[1yB˵=`Xvo8d8&l†BwOIykPy<k|Pt&~* ݷ\na\P]v1tMp5μ(K$^xƲ fUw%;国Vo-/kDn$|5gK oI{d  0uӿ Hc[5#XjE)F8ٝ gtڛw%J^ #g

fˌe<60c>7fќy#ZޫzU{ϹgN~UK;Og/h6ۍ^Uo;u0&ٜ .<}7p]]gkh0uEg݈bGBAo_w沸OE@=INZ1m(BԢYeۮ^ œ|bvI˕L-Z.A4L^ɛ~_^ʤz'XQɔG#e1.|}+~dP8Pp»}w ė^9:^hj鐫D+jB0,Ĵzclѹ( ix/<n1Չ6|_g~}HUo$ZPq| >=/$xB;I|O"z<[I=T|T>k𧚪(+"ExwTm׼V|v P.<{4%fߙB`2vj0eԧu /[Ѳfzq&=@r 1 y|N@onZX7XH"x+lI|V ѐ;c %sJ+[iI, UBѻmWOw>#QET)(Ӓ>tJ%{xPr!cFstsJ.%#YV}D Uǧ#O%htmuэQ7L0 ITŔU=Av#lf1u :l1 Ґ՗ُQ{zw狗vvގ.~!`F QϦPA݊Z-L>/0!ߜ{F~OKVog|Q8CXeQ nP+|S ת 445iĺ܉J$!YN(Ԇ4FTZ ]ບɨKx0_Z8%UC&<XQ4Uuָ2T&.ՔJM֍K8nGbSrBc)2a:dxTف؄7;FKcI/?;ұHf2 0H犏&dTpzt!Zɀ@HY jPߞhI_=՛-%'SEZmpFcϿx>+.zJcLp|u:3ٞi[OI*xH?->ϾcyzV_g-Hf4kZpՑP@SPp"| \6h_<&e;~ٛ D@@ <r@,iZێensV]H;3e/)Dݠj{%?])TZ&O,mZy[CI!.?c;Ik56Y5^H]*'7(_óHJ;n Ț8HA@1b{c9ت$ہS"XdT+3]Lw<|Bw1aۚ_W@kf8ekͳYy6o7sW c8w}Q]WxF;-a v~_gQ⫮lD\*˗yj x y@S@r_o\kݵ qI4)vfݝH% 4 tb]b9QY2tl+^H%1:Lw!eR pGud< MWB*{ʡZ?<8d7(bZ=mLl]S+ኤ# 1 A(x" 1X.ULb8Abu=rZNUzqpbcg?UjۋK,bajW AˤiIͩ}_Q֜FDk_kGKVd^*6u}#:.1+tVD&I| n}dx³u~i6g%iH<fETm(o նI|SٺƵ%xy`!:ŒSWIv+9be2 ^,動]͹k8J֬.DH|r%gnn9[V|_Hq$jDIm<2H=K/mrx]+:_ꝩ DpZCkdp6h>uĈcl3|j}RQo DBj -_f+v8:z3Rez󬵞='Z޾(ixT:nYu aÎ*8B'H`ݬI㔹@@aX%x6ّK} 8iʈß8@ #> 7Nl3gua]ɱz'3VoKų JB &D6rn%~i@Yk?Z%GT'sfhzX{c)ܠ'JzLng SdaRj{#XcXM6 s GkB9WO/<[Ͼwyz !zWÅ@!2%~c9FB@(>Vpy.u~fTг<3 hBy7vf696BNP4)~+6O6xۤN2q΁/ :^b+`P.G_>,NV8_OG"iN 2-oimfQ5$Lj+on/ˏ'{<ސI(*`& i-j%U)29R2򴠀XֵˡMz.W%zԲ>D4:BQԋ!G:{2aX"}jj,_oIQfѩA5Ƞ)m;LJʄ@Pf5fނꞳat}Xu8bbbsQx0E;,KvbڴL=ճ#Y-;PVmn;]zܑPr;xiKH,MDUZ$sÌոwd;/$J^`Oz7uǖЬ*x"IDI*lF:. AeI\x1i|yx#ߺm׽u}ݷ|kyu| ;-%57۽V9S4av+@Y㺞-=rXK cv:ӝM%]RÒʔ2H3D0,bızF1II'y%4^h?xY8VMD O_o||SE6]HjGvvgrENƕ5[#>=Lo'gݹ-¿b,՞*9s}oz<43u`%"MLJe-KSEQVYĴ<Dƫ6`!"Kit//;x4XH(#G2Y+GM_'iSq14Yn3Qv gpAT 2W XI}Nk._Э AMWhYۨsZF0aZ ʙjny,+rnQAsvWi=$۫w:a/)22gR\_fF#G)mb3r|ƴ0qboI|58LW,ޝrn(PEi8P` #hg3h:6(#y|~6k98jYڵH]26L Ef r9[:$RVKC3gR(3IFB,&V{O`3U_1TOeUGCD < ixfsYpK@1e-9,SjYbӿnT`z_Q9` p k!qB1 f@{%CҼ; b0S/KIP3RV7wu{q0d[b4l7X _|K寚,~('?άP(bD G9EWLhM,h73ٺ`gI%9?,++ VK?Zw08v.C!# ԫ r V` B1޳s&7aįĐ&dߑq 1PFZmZNyN=l a8324ғ.0`l qBwc)Q$#ɨF4H+f+='A xՅvOQcȣMM!tkw;yQ ֔h(/>9LUyRj#}P )(6"e/+^>Ӈ~F'rxpl!vj6OZ'9}øA)8Pkp-0 ΆWzm4zϋgW0ܷc!!2a5|ɉJ)^rxh]9 >Lo[fV umǩh$#JMo8fpgQѝK'c[ iVdLN^ݘ]h$ I-mNxDbiv4cEԜ 'ؖF/l6NӘhÓN[^fomi(HzJt1y$L,cɤtPfjǨᔀj\=tI|OK mxxυF;u9mbh Fw5'ݙ$SB  ./fs®3YeOu巶S[ W :MPAPse P+:wK8|>=}H&S,wC$.xI}x}[@#4 ˗>4^Q+4*ĪTrvFXSeä{6Tua}H{~{M.5gtH`L5N1=[*lfY= C\ˡU,+u ^;i':(I>?itA[[%H;)^Z晽^A?(N +/`PSAPKU|FxV98?n5/mo@:]_'s>i.mV?%wMW'oƩЯN=-ItKuiZ߁a/Px@4sXK{{*";1MD4iMZ8 ID|ZUlPŹ7De7=^'J5v#1Lk2śf?gN2Ʈ^Rl)fm-`,O' q@mj5擛`̵ tj<*aö>,X oH]dk7'z{^i"2ƌΡ*OVupǽ7]j"]ٷJg!>jd4UK] U.|W3"^=it'օzb -׏%+#HFؐQ *؁:NypVqn#;w1eͻ6h;rQp33B!5U+qWv!vt5Jn8̮P{g;5z3tsyGRȟN۩8XLi,`!܇%xpT`u]x6ǧ~~ee,2& Mp*2p!tjV \Q漊C/x9 Cƅ,/.`, RlVAKm)6& %aS^zs!cdqQO lz MjʔDF [u3x N=tm!OlzJH{?<$at J{.NO«c.".6ة{2=w yL/F&FF$>ێAS{ NBU]%dz)޺&P#|DG ieC5&h'ZDJ8 N]jSbJZas-~ ndzHv}nusAE5miqǭ G+aElqBIghUMSCH4#q)RDp}#y+U~ H}7ݠ ^@~T1W is$*j8+"!Cl_^8-Հݿ"DΖO>VyO7Ft^۟gk Q!(jmF܂lǡ]šwdZRt|)WZ m~ZRUGykPV1Qb"<(cg֖O hMeubʑM%ow֟OکE2Lq-)b aZ *_u(8[l{+4,Oԯn8Q?ϦNThv[]m5yA>gZݶn1vu E%ϸEY(Ɔ/ޮh(RB@l^3R'J=&'a`?=Kr}n>%iwN5h)ptjZ@naf$`']$ZͩKOHVzxF/diP _ {ozֽ1R4yuj$j >Pq*TM5 [=Bn5,b&pYjf#osu%?>NٔOT p*R9M%r ])ֵ.$+Op((mw=p)3^%ptwwɺVJi~N5s5qԸ6~pUydC4%:sRWI8Oҽ\V]Z,<{Ov'Vc^#AѨVeJup׌gZ5,YNKF=CO%iहzݜ9G!h: &7 q A)N64L+Gʺ[EqDWQMbt7  z򁵛&7N?ݩ+@ S5 +=O>B@[r 4=eu~׏_Z(L$,e|W&eJY3PJ %y]ycGqht볼8yĝ׆lNv {Y.*.{.p Ln[@\!A$%xqMnroev^ө YBfgrȲ\x ZQ q Ǽ7NBן^w|Z{/7zz՛~a0υIN\Ua~anwgႠuJtW?Cv*G-0u,x5BΚf])vMɣ_t"7>NБ|o:\H pBSgbz Ɲq$*Ey+\A0ěԁ Ѱ9fyt[h3 DߴPC4U&;U U~e"GAǭxƕU,H8 8k-/޼ҫ̖(6!0hd GRŰ-zjylHN=vi\j:.-^\ϧXvj\2 %H=pCމjJgVjfq;,uJYV7m <}ԡrDƣHxķ@Ȕ0ywE%\8Ɗxy0K|=q֢Om&JJ!Y:-&pzC,h;yxJ0Y`!C.(@>JEbs݀9npA»iɅa @` !LiAp~a pu>.}avwxًR>kpǬzd b+(t/S+l~~F\=x^3G6T>TFp\0C]RR幖/XвqmHԿ}:)[W<[{]K-Lή#fM adhPe;#ׅ,|cTC|SdJF#=' }'4ྈ*N޽hȒa.MӦv`,ۦɳLKd}{ cIaNIa낟/ro]R ~.IAE7.|;w} b f ÁpXs3M1qJ8WX{X^ CncSp6 K^zg3#3{ȗ,)U|z@-5(wf oŜW#! b_٬ ;b_ri6uc200Thb&u.w)uWPJ1[8t|qu}R/\NYOY┺}v@*`mZந@,g+Q65B.pxfآ3ɴ Od $N5Od<*E\vW,{9/J--J7S8i,f 2j!Jf:|bva.cf/e=qr׉.$'s9km͝^ g5Ϭ3(zٙg SR cx'?-0LƫbLaOJw53no;/eQm: (-N`\Y/8chvT4IڭdQn晤pJ$VP`D!Nj rdLhcpcţgFbuL Y|YgT۬ϡ'v,]L8#0Ayp=Y?rM=o zHn&uktB#6$|X;W ]'XR&sF: 2$Qb&jٌi+bvrJEtꘌfj.OWUD,?~2&F4e>"cq6#KHX,S+{0MJr,$]q<2JTc DQNab{*'*@L+tpx+{3YZ.tOØ;vjd4EuѺf{l~nXy+TK{L٥{-5tVX?'Ezyv.ޜO&$58F۷|]=z%MzBē`aXO>%1dˆLΙv;2J jrN*0l^kmr.֛ JGRyٳFDˆkSm@!M( PD#- #%bV6I+|~nWe9~=QZH"@Ih5^KdjD_+3fS,Bq66'M !Hd$i4&ibɲ-RR1ChgYl|:e(R?ߠ$s).Ӝ'2\&-)B԰ YW0hӱ}}NU!f%cgϭGSn5C$k(FĮD 0܅T!f/|ӌ dN_J q Ez~}E50KDW ݋,5j bX;^7NR- 96^{skJI7 ưʵ7(# ;.3iMq)uPLD5a#lY/Qpn|\T)xU>Rh%qRjxyryC`  2mVQhԮ,}G 'V ].E9K|nWG%F=n@ h<$(4Y Sy. + RR+f*vXtx3~hõC湒8(^G!_݌YS]: 00yUȫZ=BLc G˻pݝc:]9i>SOf/ƇcL.s=b'yxxgޝoV<7n`td~Lqa bC"3l8r-ʿ7x%̃raRG܈wa8<N ~Ɍܻ2=bmc5SEAH0s=2bY56Ta@cZ}CE*nЋ?}N*wa_o4'~xH|I#cfSL'xDZ4E9lC Ol|ks؞ OToxHx`,GnU`[vJ0+YRbv'ꭁ,璻%W_KYnٛ5^uȏ[ۏׅqQ†ઓr#un>W7)(ߘTa<^ Gadc`f $fo6,_@rэ,'UC9xg 8"Dh|-Tn2n9 a?z!{^1_F_/ >1Lh][l'w3RndaݰЋKw~?|np_7ݬzkLCm4VyW/}I%T8jqL޿^!Ś#4USE95\ ζCtLě NL=EϧuNcV@(6.ƭ`tnRW|wtO7(O%wd-u<JYm;c77Q׮-"?XL޻ouVL4\I!Vd"m OuA}ϯs2QUY?!$vie#`JJC]^o Jw !TB2QP 5\Na; '/mٷ~>vuu1+_g%(Ok^:H GJ{|ʁRTt+Q/30זSoYg?<ĕXEr%3lp$|zzsf>jg`{Y|YTm|}rυA%2yB&sRa/& Qh*c-\<|{#YVm |6˒`@*%";,*jJ >dPKϣb,I_*Y47׻ 0z?Kٯ$RVQS4J8b>d L5Cȕ}ө¨Ì~9k46귵ifE #4-ֻL^qU lQ.sMj[XGc^ɐF!b7#^Gk✪M$,7%8>O |1>Tѣ6E .t ^lz8܃@O=uw7@3'M: p`x\UU1OxoĽ v;n7+VZ>i@rm7)xH+EALtdoq`0yf؞yk@5vΦ8'ybt2 t0AD(9u@-4, L$!{o1+\ p&nX鞣xpY3LM\8IN}Sux{*<e~/=*X_6 3x8g@d@aVq8Eb?x\|O(kGcx69F?, Phb/ !`{gjƁgxF㣗_zzz[gU$wK,,֧ϧ(oh6{`0j*4c"jy{:s76~{;zݽ U'^#PS.Y?5#iPn:ҫ{ON\ܺ+=zuQOA" {4ڑ$C_X{'xkgeP>#ٸ>%OA$#hڝ&[n4C1)Wku=`)@\g3$[ W%];-o{ >S}dOẃ(hc^ Gq-;,閞"|;ktRɀBNwonw7{*7$~?p55_sS"I@W3H<Oi[er=`m|3¿a( ҿwK sKódF#~wىjO4 G&cqք0]6Am8”J e.ߏd=U /53TX=Je|p+@!D6;%`)B~;{]FV޷A*3HIeFU,5jH-$jR s"S3Hׯ(]%(X/1* 2 7+e|`L@b7Lf.$?&x?85I ?³_NEn f⸩5HJLY;*`4EP䊇p)dxoF?|)XXRDB7Z+2FBUMIQjUZL b&-'~qU#Sd&DCў|)jfP IĘCM4FgaEրd4Sj[N 0'ow[g3 U1&&j0VJrp˲juS?fzZS [CIg'Z^ /IW$R/UQ)ǪQ n$ [ay.\[ti:տH ;<1Rp˶m#)m]BufTJk'|%5V%]&#I,62;#O%dDp˳@B iv&kBit7e{upQySK;}GSݠR<O?5z(yCt۪XF*UdI0yUKI/|5s$_,$?*~8LTrJ\pB,U H%edNfo|rs_/2A+UJbq8p_ :P:w9-*y*͵b˾x/-oIdl^_[%cY~=_PSU2L,+ ݲ$wVۛs8`q:AC) @acbjQ[ܫe+ދ 0^JZ@\0%aRgik=H e.eŶV& 'c _2z2[i[)HėD @4.uJZt\tfJi{@68K=zU,LjЃwLb }9mfFl(!Q>wP<^)Oǥ9v<SwucȎunNsFCBdDe6ĩHVH㹒9.z[( ф ;%\cM?IP\ͽ/')3@1OXN ᑅGUIK °SJ{|}oVeLF8`#ŠB`Q .9>$[<2k\xd?>t_Fu4F&hrG5ͪ(^I!PbT%uZݾ;K+)~ro'w띵Ng!eBjPPMP,αA_ *YeEek%4~kx2.-'&,E0;t2$ ƞ@cRKڵ 9uVpjWh:I__ZGXrxt+֑8lh#M!I)0kI@8fZ:yr< :g%HL}")妩ZM LNs ɨQ3R0|k7#a|/J%AA+d8UTr\p)3r F۠THY~8T)zP'"ctB $Q61O7@Lױ^ZGn+\JW+JEj5g=҅?f& 7m̛ǬvlYjQ ~xdсɨ?-f O.I}$ H(P.RDU,f)iA˗f ՓǼ۝F:%O- 'O&d:*Z5M2cII<2x-mnڍ9֧\HǸTmj*NKCt\6V_?^XKC 8Qg 4D놢H࿞kV[t?M_;^zAw'V1 .@B7;>\W Sw*ߗHEIƍ`< tuWo)≄,FSH$S(6*h7i/7w?/$\1H=>Y`L{8 cP-K>qU :9?KbW ߔ[<)S8hJ BA y 亀Q符W>m'5$W.p\ѭet܌(NX2j␖"L ҅EHvg+:y|/mv<($Դ"TI [..9P'jADITCHpsa%K_JkA4-B&XTLFcL!@?2rZza:p'CBix0 75McjZ\`:q OStN^Cq[,svvrDD>@V挻)o$:0OO$ }(DC1 wbt2 /`-1B>B2OԵA3XXH $VH "Z !יFM]g<_#r iSRš֠ΆF6"hT58:]akUdX\iY)Y␱igZ?-AT#D"Hc,C~6U(\YS&̨I))egPS'ba Dͦ5B=duaڮ7wM}hq;lo/ًzlxi ㈪L8 e5),3\O凷k !+LKDV%CP|Zc)edb!S˕գ#9M)K/KGZ8^dlʭcm OI#PO(F&S-e\VlV #R5dJ#Z[4`٩KiFsJae%DعDۃn(/`ˤJDh`VFOPy5 ;eu”XxӶw_SaK@Cx7C t<+Gq( lSKUZzXr |'^bߜV?il(әܺtmqbrxޣdޡ5E˪V#IutfbM<2 '"Xp։pND ɥ'aQ"gsjo WJEdCĬ}sǎicߴ oq 繐I&Gv3bs$e켵iw2X xz=|+<{WnB&)a&ã`vYT۫"b;U[ȎuĠνnxz=BSU$ 4m2TRyZC>T,.йiVuf0*;dNnBKHn%:ѰW|йmv' 4$wWp.- ΁c.(yO OH(i8"e R T(LzɹSq0b^O"|$~ӜǏ4M CfWTɝUv5A,vԗx[ xqyͽ$!Dl0)?|%|e"*p*-^T|cSStG8 f:k= [[`/"‡^/" xg? b SQ6FÀ\sM˖';[wjT閵"B~ubNLF~oŊ,Qx8a c%Ⱥ pQՔu};1l#?!T>44AMI8T }ea.&q&w>W~ދZ,B@\n]d*)Z0RmJ,88ϡE3LZ㺮XZr;&Zӳ^3;\BR5u^# WtKoqBA>ʶǪT"bŪ'S؛BN #rL4k*2˥^]₢I4ŪuŒYY-kAp% tG㑯L/4t<$`,J=1prO, X׫Io'P,)x2m"|:4qt dT.7uW:TA=fIK9i,M) Su$dvUaa؍f4z.Aܺ$b 4z1|GEi=DM4L&q3vۮP Px5%`ۭ^?;H!+bha1JbC-:tL_E졾!;x|%0z ެhjoN])&) eniEf-jB,f$'Iy%LPJIH1CPc0WOK1Avr5a d+5kk+ z/oSORtP0ؘ/ˎ1ۑi"ۗ`0^۬ ^~8Ys, $N3+*& > 9cI>@-iսm&@uQ"BϬW0ʼʒۮs\R(gJkDh,]W=D^Uq2̺] KVvE[BԆ>J. L iHW2UZzZ@VE-o?IןYGT#&&XHS)CsV$3Y- B"YU\uYg I$Qsn9kGbSʰ h,8KTmoQ@Be [^9wx EZ 㟂gT)ׄ0>;k_}RGC )-bN:-*ёiQQoἰo25/$PlN&LdFd|P-y%WvN9b44H'EKt}f|./J-S$q)5 SլLnS豵?z.ՕPfI8nT C8\o0xk8p?8s݇ck37$N $H,ṋ̃Jŀ:nĔ#n.p *(v1'.m\e`(&<۱ٞ!KخL;MQSB8ߏ:}DQT ,f$u$UYϔ ;q=S:/u/"GMpDisFL6|EGPa`wx.eeN^!F2.~фB}qU, *T?5w/wY%fZX#;|H ԃ0IӑO B&R?J nY{uYE<l%W%ޕ 4xC>?O tjNa8 `rljVG_h 6>+ qx.Ug1~'M"! !iQ7 Q;q{=^uLcb삨uWq-}a~_ʠ6ń[TJ,YQ}:*uBL@ t ;6Ig}7L;*6KԖu,j%nTA|Py<ؤ>Lvn{M ذL;S*CdE< \/e0h-|0 \>@,@|µ.c_L5I׊Rd&@ظog\Z9[ -U;W`!JU r:XX侐?@Fb< G 8_ ,1lL#LܢxӃfՐlp>W`~SƯ<~ힶN{F+5!!;C\\.YUcDXۗ?_}vF\x.1Jٍin:f> 12M͸xzEܓ6hyZ&uSqte*ß(w[xlU(1jQBIkf&U˅r*un7jN׾z) 56V-jɈwxhS]/fѺU] .y,:vKeyN0\QkWPRUg+*:ʼZ{ z9 ϥ;7ݚž&N-ꈀ/0ZxC)lkiD >/? ~d/؁~֝U."4lL?N8Րf Ǣ7~hnG jMSa#ia6t@@*elƒK+bu^pvY_<ȿ:~3(n1acdډ%G0v'W*9 l.`6HcO&jz鸱",1=T A곛~l7.cnϭ%;qt- H#)@+L\ m.eY%J[گwF aIhuO]TGFBP!a8ղQF .95CWZF!v\Iao'obtZNn'D&BN&Z( !t w!pN.ߑR޶ܺ=t`~$Bj x}KGсXAq{} ;e =_n ϥ7n;A;&*k!pc2-WABeĭK#x$BN3&?zppJF> w V.V&9abYXȱ5Jdzv9]!%V7<^DflHԢF0 @;b6g- *`iom:rc!xsϝN}:K^2J!d4@Dž| $O:]0uA-oǦ,U[O_1Jpk C)xOV-Z5cnKKav#Ǟ[O40~*'"$h`\.3piGH1WǺmSZL6ϭ}\bbg|vD8%aV,YF!ő:$Զ)lwՕ/$bXr<ᛀ%6k@ 1l4"j{|F3bߗ729̆&p"!MBP&˵g|c+@ah'otJI>>WI:U[As.$NHt'tpfuXt&^ v$gWf!h9!!1Eܬ1م12-,XYxU,]Px~ $\ciBSR*8cH`LL4MGg;8M FC_X% WO7\+.Hd3d|p;Ԋ\6igFA5~~OD~iKQ^o022sSIaalTWHiת)m*~T|~OP(-6F6dpGuu*[+p[ sYVrSxQ`Cֲj8oi:cj@jfEcm$NmNWW$ohz2l(I ؟r3[ΑJI $c٪mUUldEu~'_X8t:лY1xcͪ+VF)5wpXGAKBλNo7}˾_]\xMK;=*V5Nw~ޔX  [Pgi,ǰc5D>,Gϭox)s7;ALűe0o2f;YNTJaqI"Fÿ[ raͩOIM ^7>Q8=B*(qs:-+ %t\JS86O7@ (2vw(tzv<1B&> \@ax)HtR PNDIciq'n5@V9UݓqiV s|Mf!7-F-ˬDðR&95$q9禈nNw Q YҖi4&)RI6X,׋B"ecU}˱+0ڙ>K}~g}3=8;CBxJ 012MKT.ދgT2=йqkwNg=`NTjaGXƛJ&D5ѶYZ}G{Q`\Y(PHNec4ƣG%r\a;Tn/nMVQt)u|bi6MtMxhDKW-\{`z} (( #${YbY qS'I&$ FƊ(fdF䚁ר 4'b34}'G ;^M3ޓ])מLq6n˔0UTm!e6 QZ`^j7ckMĪݍVJOtqwPD* @眭~Z^[6[7 (!^LU95=*gK}=/Q>۽Jv )]ϯP^Yw,E4&X=:QkaN}>԰U7gT %yWU7] 7Nsvd2h1x ks(^ǔi[\b2 J |nvȬ'c.*Gr]6c͈v4W(/mee;uL_s¥2˱D4K#P DLY<Ѝ9*d2j摣Q)ɔL9wtX'ޢc>~1ƇOFaUVZe:eTFF.QZn_`"ZvɈ0AmF(@-XPqqGCB?`o!I"R.|ŷfF8U!"a)3ǙvtdU6ysMw' %k 2Y[7:~w0SZBp{مµ%<`kcP(uz 8S3)A[N@Cm<@EgDGX_vb9vkq6vzқ7! t0lH ) \k6f^saƸvYk휷\ii^Hd1BLƍ1Veq$(DV!'<\ӕ.ONOȼ/a-Sjŕ .em+@6·LD '^HW3ze7_0'_0`Ft%M)O-A?&Q?:()iY"P?tyYGlĕJ˩KcNܭ&pN:so6k zhz7E.~0hϴKj^é6UF á)HQ/7 )6B *(rRKMh*2"dvmp)|8W. Po|a7$I 2uK!޼HSêumf]е`7oFF;k;6j( Ehc4|$'Zχ_ze&̵_ķ^x?<8vݪ+ r=[9!U]dt7 =)H RP0_ʕltt\$;ԻF'ugߗʧ۝NyњĠN'f٢iVs!$SP`ƦQL\l;_XG%9`JdrJhul(WVm2(agK#IJ8Oªp0!ĭxi9sJ.l g1X,K͒^MsB9S&FRTEUr䫔rRQ##vsq78?!ݤ7:Bq9U-73ȫfK<7U υchr.lq)/qȦ=;meF̃W7%}(&|+\-#{|$S\qS5HP0MYpXrt+ZZQ5 [y^\y!I)d#`&g'5 nm-^;Vt>cKoA0- )bI \Ge" %Xd^ީۢm|1D 7b_V ik)q,YcWMK xߋf̩![S!P0u ɉ})s㞾fC7^V6g@x_x,@3H!׌̴qꔌlSgJVA+r{   -T)C%TH6BVZH%(ޚvUM1j0^7se_\e/=ó^+뜶Og]IOMepWQ9ұg/#~wڎ麵mn#<cB@6K Pl&h*Tmi0)%R2joW= jKN~T|-i7d$@Ysۦa VmJjэTJ2RipR.1\ȥA. KJ&>|/-հ,ӬڤZ8,nȐXceX+r7{傴dFUI җLP04iH(=99N8օ_g[X]LU GUF{x>saeNV=KJy^ &BS ьɵ+d$g{R̓pȝ F5`YqeT6*F͒9߽ytnpbxst͹Է¡hَܮD CfB= pC|Nj%ꋉ@fﴺ<$"PVCZ- ̈tJ䔚F%H}vVjXU(l8!:w'y&g9er_HxyBʸ8NGU 8~6p^V9qUR̓-\s>ls4Ozy ߇s!)'zMkWvv*jKQ5:3fAǰQ=Nd IZ(ElQl[ҵb𽩊\z݁6#N֩dv# P!g{s:%os՟8 M <{wB]\2>/sLUe"e(I,9GqrWpu4iL6 އHPtcI )CE8\1+rYɔZ F9eFNoXf.v҆woIe8nuv6sSNJ4UI?txDqWfnYf-W3Qۯ|mbbߟ"q[?Zp(ÿy\ɫ|>hM6UM32 ^Vv1l_ .T{Ҭ|{$^HU%>4I5OTq® Mj:ccQK:Ӌ㓐 r^J9؜52=SEcbEK1m%؜Ւj09zkK8Zvǡ{Z0;.su`I8Y*]/vTrT˦Ay)QNN [,TiTT] l$Uu\aI8dfU5t-zºmrO1vQ?80%i GA?<f%W /f նXt\!-&b'}/~x-z}/%"Nn::` 4#1 E>`$Bz)RS"i#,SfS+:%K-g\ V{61B W:rE7i.Y|UI9rr>>j_ZYHd-4<)|tWдmU P-*YQ;Գ Edn]Tr=0><{^fIƊ0,9R%tR;.c0m7~kН^ 1 4HoFKCDlhtOn>۱F|0>ec\\{1_P B1=ʲl&-rjTlɌYe 74uƅuAj\oƛ ĖKIF"Y;/%Cwg\Dbq|G*Pգ5Kd T06k|Um$ \u",;Qw9=nDs` { lo/Zfg0X1Spk[cKgO87uN$hN賗,V*SLb1x`h\89fz&wPRգJLsB/neh~Ec A;M}i#vy낺1u;ʻBÌ- /[YA9Qx7StWМUaW04F(*QV=ը^˒jr¾m4>RbcvqiW7{`,é `4Y6QC ˺22kxbTWv-mD/pXX&H~b%XRX fk;xt J~|7o_.U|^y7n*'CAJ1P,fsRTTjׯ}-U jU kcV/;+EKOmhDJS1:XP%rr%)WFjMr9tdDqeSӾKB¶W|6%NM!BLPjN;=OLa9*VY{DCF iw)x ĘLƘ 5qNd=Z{Bڮdq qg7#nbzf^Z+ w~ dzb+I!&iBKed?!MNAE ^?*J4 &wE6 mW HAqڕ+*ʁgqJT=QyJS/Wi1΄u$i@nLU FS3|7),o-{}?xi}A~)|Y[TXT0vFѶR2ͨ坜&d\5-l\Rpԓ/ϩ&E|5S$i8bJ8O#GOI݃'©{[~Y}jT&yY:/f.VFh0)\ YnF)B$;p!&ຶXC,aKIsK#q* s`+]1qzD`Rvt m0uMG_(S /8j҄8\\vo^s` hc*zlcUQ:&MLR t=>7/>Iۿ^Խ6T4:QJd(DkJ݉*N4wҨ/DQ"Qկ|kɴtpuΚ3?%c_UJId>mUqyu `)8RuyLt-Ł*?,AMEYy:X bٹESkYHK$ ǺmމUx#pTdrH6 1_"븈ܡiS2e(`<&-6Qã­S>Cei[KwM`4ozng>vaF? F1+pU8׽\N*[׬4 |kԫT2IabSB<װ$U:eoen9SV;E+׭؎]Ky[u6vzHضcNXB!K,Zt^Up+YQ"ʅ;֊C= 9gb#i2GxIQ:v 9i䎅!e٢ Ԍyw'&&Lg%A(MFd:%ؼP⫖n^!V-9-S͖vjCsi [g:E"a㉢BM^5h窹RN+b\I[[)oTCnYӛW")(ʨ!)ǒ6ÍDȪ˘pL[/K )>AΔ 'D~nbls@$϶%qL hc> 9r]<;;n`q K(\{6:}S85uL k8? 3`%1On/I}JqD}Efjdf3f3ޝZfͪYwCU"I 6Ha|O'SH5Yg6e[*MiUՙE!:nV_w.(d+ߝ1g&KA N!^y"2{]b<}*ȗ'.A(?>@HDD%a0!nԍe&rzu H0?$@R >;I縖7hBVqHK H0|(]1Ip,a0 ©6`W LmYGyl{/L0|8հ  9Dcۥafsjs"wlj;[MMӴWw 1݆~6}I ߳^g d"x*aNML>,㕌}t`hj`ٚծA^}H{Ϗo5^m\4\%!eCJlz!^?+.ă }KdSƲzR-kb!(Ƒ\)Ӻ:o 4Պh;\Ata|\ +G\i3idi& m* I$6IӷbgkDcompress-1.2.1/gzip/testdata/test.json000066400000000000000000004432421303637052300200150ustar00rootroot00000000000000[ { "_id": "543fa821aeca0fed7f182f01", "index": 0, "guid": "3526d142-6d2b-4266-9855-e6ec1589a265", "isActive": false, "balance": "$2,156.72", "picture": "http://placehold.it/32x32", "age": 29, "eyeColor": "brown", "name": { "first": "Rosella", "last": "Hale" }, "company": "SKINSERVE", "email": "rosella.hale@skinserve.net", "phone": "+1 (920) 528-2959", "address": "324 Imlay Street, Sehili, Guam, 3022", "about": "Est consectetur ut incididunt commodo elit cillum incididunt consectetur id officia pariatur pariatur cillum. Ipsum non incididunt tempor non. Cillum aliquip aliquip non minim ipsum voluptate incididunt adipisicing aute pariatur laborum minim deserunt laborum. Do do consequat enim adipisicing dolor incididunt reprehenderit sint. Veniam dolor consequat sint ullamco id enim occaecat.\r\n", "registered": "Wednesday, August 27, 2014 9:12 PM", "latitude": 43.44586, "longitude": -65.480986, "tags": [ "Lorem", "ex", "magna", "aliqua", "id", "sint", "elit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Etta Stanton" }, { "id": 1, "name": "Cora Velazquez" }, { "id": 2, "name": "Deann Guy" } ], "greeting": "Hello, Rosella! You have 6 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8218066e8499ef38bcc", "index": 1, "guid": "991a35b5-91db-49e8-8a1e-13688b5ed88d", "isActive": true, "balance": "$1,762.71", "picture": "http://placehold.it/32x32", "age": 28, "eyeColor": "green", "name": { "first": "Rose", "last": "Lynn" }, "company": "NITRACYR", "email": "rose.lynn@nitracyr.com", "phone": "+1 (912) 564-2131", "address": "485 Pulaski Street, Logan, Mississippi, 7453", "about": "Minim proident enim eiusmod reprehenderit excepteur laboris. Adipisicing culpa cupidatat eiusmod exercitation reprehenderit anim. Nostrud mollit reprehenderit reprehenderit id magna et id esse cillum et proident. Incididunt eu nisi excepteur est est irure voluptate id nulla. Laboris consectetur aliqua cupidatat ex elit proident officia ex quis. Minim officia eu eiusmod velit. Ullamco dolor non quis aliqua cupidatat amet laborum laborum ad ex proident qui eiusmod ea.\r\n", "registered": "Sunday, October 5, 2014 10:36 PM", "latitude": -3.548698, "longitude": 79.421107, "tags": [ "exercitation", "adipisicing", "aliqua", "do", "id", "veniam", "est" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Ada Little" }, { "id": 1, "name": "Lopez Osborne" }, { "id": 2, "name": "Tami Leach" } ], "greeting": "Hello, Rose! You have 5 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821255974bb9f89e5ea", "index": 2, "guid": "e5727238-63a4-4e1e-88cc-67300826259c", "isActive": false, "balance": "$2,131.97", "picture": "http://placehold.it/32x32", "age": 21, "eyeColor": "green", "name": { "first": "Gloria", "last": "Richards" }, "company": "SPHERIX", "email": "gloria.richards@spherix.biz", "phone": "+1 (884) 536-3434", "address": "493 Judge Street, Cetronia, Rhode Island, 4439", "about": "Lorem cupidatat ea et laboris tempor enim non. Sit consequat culpa et qui aute cillum ut ullamco. Nulla duis sit Lorem incididunt mollit nostrud dolor veniam ullamco. Sunt magna id velit in laborum nisi labore. Id deserunt labore dolore dolor aliqua culpa est id duis.\r\n", "registered": "Saturday, March 29, 2014 8:18 AM", "latitude": 60.328012, "longitude": 126.657357, "tags": [ "dolore", "laboris", "proident", "cillum", "in", "fugiat", "incididunt" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Bowen Cote" }, { "id": 1, "name": "Olga Gardner" }, { "id": 2, "name": "Evangeline Howard" } ], "greeting": "Hello, Gloria! You have 9 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa8212b7e1e8201a38702", "index": 3, "guid": "bab757bd-2ebd-4c2c-86b7-0d4d8b059d35", "isActive": true, "balance": "$2,509.81", "picture": "http://placehold.it/32x32", "age": 39, "eyeColor": "green", "name": { "first": "Casey", "last": "Hayes" }, "company": "SURELOGIC", "email": "casey.hayes@surelogic.co.uk", "phone": "+1 (993) 573-3937", "address": "330 Tapscott Avenue, Eastvale, New Mexico, 928", "about": "Eu elit sint sunt labore dolor cillum esse ad voluptate commodo. Dolor aliqua do dolore ex tempor sint consequat culpa et consectetur nisi voluptate reprehenderit. Dolor velit eu cillum tempor anim anim. Nostrud laboris eiusmod elit enim duis in consectetur esse anim qui. Et eiusmod culpa nulla anim et officia pariatur reprehenderit eiusmod veniam. Ullamco nisi ea incididunt velit. Ullamco cillum mollit ea aliqua ea eu et enim.\r\n", "registered": "Sunday, September 14, 2014 8:35 AM", "latitude": -43.494604, "longitude": 95.217518, "tags": [ "officia", "sunt", "dolore", "qui", "elit", "irure", "cillum" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Serrano Wise" }, { "id": 1, "name": "Lorene Macias" }, { "id": 2, "name": "Kristen Lott" } ], "greeting": "Hello, Casey! You have 7 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821bfefa43403d5d054", "index": 4, "guid": "675d1598-8c45-4d67-a4df-d38a270de371", "isActive": false, "balance": "$3,887.07", "picture": "http://placehold.it/32x32", "age": 35, "eyeColor": "blue", "name": { "first": "Price", "last": "Oconnor" }, "company": "ANOCHA", "email": "price.oconnor@anocha.tv", "phone": "+1 (855) 410-3197", "address": "447 Stockholm Street, Templeton, Wisconsin, 2216", "about": "Cillum veniam esse duis tempor incididunt do dolor officia elit eu. Excepteur velit reprehenderit minim Lorem commodo est. Duis Lorem nisi elit aliquip est deserunt fugiat ut. Nisi tempor ex est pariatur laborum eiusmod anim eu nulla. Nisi enim id aute id ex id nostrud.\r\n", "registered": "Wednesday, May 14, 2014 5:19 PM", "latitude": 26.083477, "longitude": 122.61114, "tags": [ "in", "ad", "aliqua", "minim", "nisi", "cupidatat", "id" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Montgomery Mccray" }, { "id": 1, "name": "Lucia Ferrell" }, { "id": 2, "name": "Glover Brock" } ], "greeting": "Hello, Price! You have 5 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821a699260d8ed4439a", "index": 5, "guid": "5e271270-fef3-48a7-b389-346251b46abc", "isActive": false, "balance": "$1,046.50", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "blue", "name": { "first": "Rita", "last": "Huber" }, "company": "VURBO", "email": "rita.huber@vurbo.name", "phone": "+1 (803) 589-3948", "address": "838 River Street, Gadsden, American Samoa, 2602", "about": "Culpa quis qui exercitation velit officia eu id qui consequat qui. Ea fugiat quis fugiat proident velit. Velit et reprehenderit quis irure adipisicing duis dolor id cupidatat ea aliqua elit.\r\n", "registered": "Friday, April 11, 2014 11:56 AM", "latitude": 30.717665, "longitude": -29.687902, "tags": [ "veniam", "ex", "deserunt", "cillum", "sint", "eu", "proident" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Oliver Terrell" }, { "id": 1, "name": "Lora Shepherd" }, { "id": 2, "name": "Guzman Holman" } ], "greeting": "Hello, Rita! You have 7 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821b888230e87ce950e", "index": 6, "guid": "7e4efd9a-4923-42ae-8924-d6d5fae80ec0", "isActive": false, "balance": "$1,205.59", "picture": "http://placehold.it/32x32", "age": 30, "eyeColor": "green", "name": { "first": "Peterson", "last": "Oliver" }, "company": "ZENTIX", "email": "peterson.oliver@zentix.me", "phone": "+1 (924) 564-2815", "address": "596 Middleton Street, Walker, Louisiana, 3358", "about": "Exercitation cillum sit exercitation voluptate duis nostrud incididunt cillum sint minim labore tempor minim ad. Esse ad id pariatur cillum id exercitation ullamco elit. Quis nisi excepteur mollit consectetur id et. Ea voluptate nulla duis minim exercitation aliqua aute nisi enim enim excepteur dolor ad non. Aliquip elit eu enim officia minim enim Lorem tempor. Cillum anim aute sunt cupidatat deserunt consequat.\r\n", "registered": "Friday, March 28, 2014 2:28 PM", "latitude": 45.092029, "longitude": 56.730029, "tags": [ "in", "voluptate", "sit", "sit", "Lorem", "reprehenderit", "esse" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Wiley Henry" }, { "id": 1, "name": "Downs Rowland" }, { "id": 2, "name": "White Guerra" } ], "greeting": "Hello, Peterson! You have 8 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8210f8589ab846b3d88", "index": 7, "guid": "afc25e30-7e70-4a87-bdd3-519e1837969a", "isActive": false, "balance": "$3,928.85", "picture": "http://placehold.it/32x32", "age": 39, "eyeColor": "green", "name": { "first": "Shauna", "last": "Morse" }, "company": "CENTICE", "email": "shauna.morse@centice.us", "phone": "+1 (926) 517-3679", "address": "752 Dunne Place, Ebro, Kansas, 3215", "about": "Cupidatat incididunt sit duis tempor labore dolore aute qui magna in. Consequat aute ut veniam laborum aliqua Lorem esse. Cillum in qui sint excepteur eiusmod eiusmod eu anim adipisicing et.\r\n", "registered": "Saturday, September 6, 2014 2:32 PM", "latitude": 36.341849, "longitude": 108.378341, "tags": [ "in", "nulla", "labore", "qui", "id", "enim", "fugiat" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Lizzie Carson" }, { "id": 1, "name": "Eliza Hall" }, { "id": 2, "name": "Baxter Burton" } ], "greeting": "Hello, Shauna! You have 6 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8213c997bd81d4a7fa5", "index": 8, "guid": "1337ad27-17e3-459f-90a3-a43b54b88184", "isActive": true, "balance": "$2,096.67", "picture": "http://placehold.it/32x32", "age": 24, "eyeColor": "blue", "name": { "first": "Glenn", "last": "Brooks" }, "company": "MANGLO", "email": "glenn.brooks@manglo.ca", "phone": "+1 (895) 595-2669", "address": "605 McDonald Avenue, Nicholson, Indiana, 2302", "about": "Deserunt incididunt ullamco dolore nostrud cupidatat sit consequat adipisicing incididunt sunt. Laboris fugiat et laboris est eu laborum culpa. Labore ad aliquip ut enim aute nulla quis cillum dolor aliqua. Culpa labore occaecat et sunt qui. Velit consequat ad proident non voluptate non mollit eu et cillum tempor. Velit quis deserunt Lorem cupidatat enim ut.\r\n", "registered": "Friday, March 21, 2014 9:06 AM", "latitude": -40.51084, "longitude": -137.771438, "tags": [ "enim", "laboris", "culpa", "do", "nulla", "anim", "cillum" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Shelly Cardenas" }, { "id": 1, "name": "Kristine Mendoza" }, { "id": 2, "name": "Hall Hendrix" } ], "greeting": "Hello, Glenn! You have 10 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821054bcf388259b272", "index": 9, "guid": "cd9601fc-7ca7-4d54-830b-145ff5c5c147", "isActive": true, "balance": "$1,816.14", "picture": "http://placehold.it/32x32", "age": 33, "eyeColor": "green", "name": { "first": "Maribel", "last": "Small" }, "company": "FUTURITY", "email": "maribel.small@futurity.org", "phone": "+1 (825) 532-2134", "address": "424 Rockaway Parkway, Vale, Alaska, 1834", "about": "Aliqua irure culpa exercitation nostrud qui exercitation deserunt ullamco culpa aliquip irure. Proident officia in consequat laborum ex adipisicing exercitation proident anim cupidatat excepteur anim. Labore irure pariatur laboris reprehenderit.\r\n", "registered": "Tuesday, July 29, 2014 9:59 PM", "latitude": 53.843872, "longitude": 85.292318, "tags": [ "dolore", "laborum", "aute", "aliqua", "nostrud", "commodo", "commodo" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Anthony Bray" }, { "id": 1, "name": "Vicki Kelly" }, { "id": 2, "name": "Baird Wagner" } ], "greeting": "Hello, Maribel! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821f14efb6f7f1210b9", "index": 10, "guid": "c9400d51-ea8d-4748-9a10-fa0e3a037b23", "isActive": false, "balance": "$1,395.15", "picture": "http://placehold.it/32x32", "age": 31, "eyeColor": "green", "name": { "first": "Kendra", "last": "Knapp" }, "company": "UNCORP", "email": "kendra.knapp@uncorp.biz", "phone": "+1 (830) 509-3054", "address": "765 Cameron Court, Ferney, Florida, 1963", "about": "Duis irure ea qui ut velit nostrud. Lorem laborum excepteur do qui ad sit culpa. Labore mollit mollit deserunt sint aute officia qui laboris dolor aliqua magna in officia.\r\n", "registered": "Sunday, April 27, 2014 11:55 AM", "latitude": 84.200593, "longitude": -155.377179, "tags": [ "laborum", "labore", "aliquip", "ex", "voluptate", "dolor", "Lorem" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Marva Cash" }, { "id": 1, "name": "Aimee Velez" }, { "id": 2, "name": "Eaton Delgado" } ], "greeting": "Hello, Kendra! You have 7 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa82119105322ba52b407", "index": 11, "guid": "b6862230-95da-43d5-97ba-13ed4bcc0744", "isActive": false, "balance": "$1,442.51", "picture": "http://placehold.it/32x32", "age": 21, "eyeColor": "brown", "name": { "first": "Katrina", "last": "Ferguson" }, "company": "MANTRIX", "email": "katrina.ferguson@mantrix.io", "phone": "+1 (938) 541-3037", "address": "447 Putnam Avenue, Collins, Georgia, 8421", "about": "Minim aliquip Lorem fugiat et fugiat esse aliqua consectetur non officia esse. Fugiat irure eu ut irure cillum mollit nisi consequat do cillum. Est exercitation deserunt proident ex cupidatat. Elit aliquip pariatur ad minim adipisicing qui. Quis enim laborum incididunt eiusmod deserunt cillum amet enim. Proident et do voluptate esse laboris nisi. Duis cupidatat fugiat adipisicing aute velit et ullamco anim velit velit et excepteur laboris.\r\n", "registered": "Tuesday, February 4, 2014 5:01 PM", "latitude": 43.287084, "longitude": 133.518964, "tags": [ "magna", "officia", "reprehenderit", "excepteur", "cillum", "veniam", "officia" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Tameka Mccullough" }, { "id": 1, "name": "Madden Vincent" }, { "id": 2, "name": "Jewel Mccarthy" } ], "greeting": "Hello, Katrina! You have 7 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821ee55902ac207b17a", "index": 12, "guid": "50161207-4477-47b9-8aa7-a845c3c2e96f", "isActive": false, "balance": "$1,937.64", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "brown", "name": { "first": "Gilliam", "last": "Flowers" }, "company": "INTERLOO", "email": "gilliam.flowers@interloo.net", "phone": "+1 (930) 564-2474", "address": "986 Elton Street, Bagtown, Alabama, 9115", "about": "Velit incididunt ut nulla adipisicing ad qui sint dolor cillum cupidatat in. Commodo aliqua deserunt ea eu irure irure nisi ullamco culpa nostrud. Adipisicing exercitation excepteur et id cupidatat. Ullamco ut incididunt proident est ad deserunt duis id ut. Excepteur cupidatat irure reprehenderit et excepteur minim cillum occaecat adipisicing. Commodo fugiat ad ex consectetur commodo dolore id nisi deserunt commodo aliquip. Veniam amet mollit nulla adipisicing eu minim sit magna incididunt adipisicing.\r\n", "registered": "Tuesday, April 1, 2014 12:42 AM", "latitude": -55.19047, "longitude": 177.975351, "tags": [ "sint", "pariatur", "incididunt", "exercitation", "quis", "ad", "sint" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Patsy Hunter" }, { "id": 1, "name": "Cecilia Green" }, { "id": 2, "name": "Meyer Jones" } ], "greeting": "Hello, Gilliam! You have 9 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821658f3962ce822678", "index": 13, "guid": "7017674f-79b3-43ed-8832-2b787c51f59d", "isActive": false, "balance": "$2,291.31", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "blue", "name": { "first": "Roberts", "last": "Floyd" }, "company": "OVOLO", "email": "roberts.floyd@ovolo.com", "phone": "+1 (935) 401-2916", "address": "723 Amherst Street, Brady, District Of Columbia, 4241", "about": "Occaecat incididunt eu do quis est. Est mollit incididunt sint aute sunt. Consectetur incididunt officia eu fugiat quis officia pariatur excepteur sint. In enim nostrud nisi culpa. Ex incididunt exercitation id voluptate.\r\n", "registered": "Thursday, June 19, 2014 4:16 PM", "latitude": 72.321258, "longitude": 28.548926, "tags": [ "et", "ipsum", "anim", "dolor", "commodo", "do", "exercitation" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Tracey Vasquez" }, { "id": 1, "name": "Castro Harrell" }, { "id": 2, "name": "Sanders Barr" } ], "greeting": "Hello, Roberts! You have 10 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821f95ca5383b9eb53d", "index": 14, "guid": "a6532d9a-d291-4a51-92e7-33c50ceecc12", "isActive": true, "balance": "$3,310.31", "picture": "http://placehold.it/32x32", "age": 33, "eyeColor": "green", "name": { "first": "Miles", "last": "Valdez" }, "company": "DENTREX", "email": "miles.valdez@dentrex.biz", "phone": "+1 (960) 513-3228", "address": "726 Stillwell Place, Soham, Pennsylvania, 3510", "about": "Sit labore ex commodo duis tempor labore officia et et est qui ullamco. Aute elit in labore laboris magna duis ipsum excepteur anim laboris ipsum magna magna non. Sint mollit eiusmod in est sint ipsum excepteur do anim cillum cillum.\r\n", "registered": "Thursday, May 1, 2014 6:08 PM", "latitude": 88.123309, "longitude": -121.226418, "tags": [ "voluptate", "sunt", "anim", "laboris", "exercitation", "deserunt", "culpa" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Bradford Horn" }, { "id": 1, "name": "Hanson Dillon" }, { "id": 2, "name": "Whitley Stanley" } ], "greeting": "Hello, Miles! You have 8 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821c52f80cda8ff36b3", "index": 15, "guid": "63820e33-a8c7-410e-afa9-32b7f7017a32", "isActive": true, "balance": "$2,616.09", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "brown", "name": { "first": "Floyd", "last": "Barker" }, "company": "TALAE", "email": "floyd.barker@talae.co.uk", "phone": "+1 (843) 435-2898", "address": "501 Sullivan Place, Cotopaxi, Nevada, 5498", "about": "Non deserunt voluptate occaecat est mollit dolor aliqua. Qui elit aute qui aliquip ipsum et labore est aliquip pariatur. Sint deserunt tempor dolore excepteur elit est sint in est ex anim. Nostrud culpa amet eiusmod incididunt. Ea exercitation amet labore cillum culpa duis aute incididunt dolore sunt. Cillum velit laboris quis eiusmod fugiat consectetur sit fugiat irure labore.\r\n", "registered": "Monday, March 10, 2014 7:48 AM", "latitude": -86.397923, "longitude": 171.646534, "tags": [ "dolore", "sit", "qui", "id", "aliquip", "mollit", "laborum" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Eileen Daniels" }, { "id": 1, "name": "Genevieve Wood" }, { "id": 2, "name": "Carver Fields" } ], "greeting": "Hello, Floyd! You have 6 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8219eb621c418384935", "index": 16, "guid": "ed67eac2-cfdf-4d28-a734-bc973cba8613", "isActive": false, "balance": "$1,917.58", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "green", "name": { "first": "Carrillo", "last": "Cox" }, "company": "ARCHITAX", "email": "carrillo.cox@architax.tv", "phone": "+1 (818) 444-3875", "address": "309 Randolph Street, Avoca, Illinois, 770", "about": "Labore consequat et nostrud officia ad. Sint ipsum ipsum sint laboris adipisicing minim voluptate aliqua proident est commodo nulla. Officia sint ipsum laborum aliquip adipisicing adipisicing ea et reprehenderit dolore. Et deserunt sint incididunt velit dolore voluptate deserunt anim nisi sit est officia fugiat. Velit dolore ea do enim veniam ut do. Duis adipisicing fugiat magna Lorem ullamco quis sint ut cupidatat laborum aute laboris sint aliqua.\r\n", "registered": "Friday, January 17, 2014 12:19 AM", "latitude": -31.228015, "longitude": -82.248255, "tags": [ "occaecat", "nostrud", "ex", "dolor", "magna", "minim", "pariatur" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Douglas Mayer" }, { "id": 1, "name": "Dorothy Riddle" }, { "id": 2, "name": "Melanie Thompson" } ], "greeting": "Hello, Carrillo! You have 7 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821e152869356625777", "index": 17, "guid": "1dc17af3-a194-42e8-add8-a73853f16da2", "isActive": true, "balance": "$1,703.08", "picture": "http://placehold.it/32x32", "age": 36, "eyeColor": "green", "name": { "first": "Ana", "last": "Reese" }, "company": "FORTEAN", "email": "ana.reese@fortean.name", "phone": "+1 (876) 419-2128", "address": "451 Brevoort Place, Leola, Tennessee, 3725", "about": "Consectetur officia irure proident nulla. Anim veniam mollit sit id aliqua. Do reprehenderit culpa magna magna aute est pariatur consequat ut occaecat cillum adipisicing consectetur. Sint qui pariatur id velit deserunt laborum. Minim consequat ut sunt qui. Ex occaecat tempor fugiat sit anim veniam incididunt mollit mollit. Non id anim cillum culpa tempor voluptate aute consequat proident reprehenderit.\r\n", "registered": "Saturday, June 28, 2014 4:53 AM", "latitude": 80.18306, "longitude": 70.818006, "tags": [ "mollit", "voluptate", "est", "magna", "ad", "duis", "est" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Mclaughlin Johns" }, { "id": 1, "name": "Leanne Hanson" }, { "id": 2, "name": "Isabel Leon" } ], "greeting": "Hello, Ana! You have 7 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa82168ed66f19f510aea", "index": 18, "guid": "87be73dd-bf5e-48c4-8168-f8f76cda905d", "isActive": true, "balance": "$1,307.88", "picture": "http://placehold.it/32x32", "age": 31, "eyeColor": "green", "name": { "first": "Daugherty", "last": "Ware" }, "company": "TYPHONICA", "email": "daugherty.ware@typhonica.me", "phone": "+1 (936) 470-3445", "address": "919 Oriental Boulevard, Westboro, Iowa, 2587", "about": "Occaecat in nisi et consequat. Laboris minim consequat qui proident id aute occaecat pariatur. Sint esse anim id ex voluptate fugiat culpa anim commodo incididunt.\r\n", "registered": "Tuesday, March 4, 2014 11:53 PM", "latitude": -15.007384, "longitude": -86.496257, "tags": [ "consequat", "nisi", "duis", "cupidatat", "anim", "eu", "culpa" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Maddox Wells" }, { "id": 1, "name": "Maura May" }, { "id": 2, "name": "Terry Calhoun" } ], "greeting": "Hello, Daugherty! You have 10 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8210abc44da895c5591", "index": 19, "guid": "32c4c5d0-b54c-4ea4-999a-f4fa517ac5ce", "isActive": true, "balance": "$2,706.98", "picture": "http://placehold.it/32x32", "age": 34, "eyeColor": "green", "name": { "first": "Sonja", "last": "Craft" }, "company": "KOZGENE", "email": "sonja.craft@kozgene.us", "phone": "+1 (808) 410-3427", "address": "808 Lawn Court, Blodgett, Massachusetts, 560", "about": "Eu occaecat reprehenderit ea ad ullamco ea sint cupidatat ex. Deserunt eu est veniam consectetur do anim in. Dolore minim veniam dolore elit sunt labore id eiusmod.\r\n", "registered": "Sunday, August 31, 2014 12:09 AM", "latitude": -47.101894, "longitude": -130.294589, "tags": [ "sint", "cillum", "magna", "sit", "fugiat", "nisi", "reprehenderit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Loretta Mcgee" }, { "id": 1, "name": "Wilson Merritt" }, { "id": 2, "name": "Susanne Lloyd" } ], "greeting": "Hello, Sonja! You have 8 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa82134480e13e931193a", "index": 20, "guid": "c4a7ded5-aa3e-411f-9956-f4b938ce93dc", "isActive": false, "balance": "$3,216.50", "picture": "http://placehold.it/32x32", "age": 23, "eyeColor": "green", "name": { "first": "Powers", "last": "Mathews" }, "company": "ANDRYX", "email": "powers.mathews@andryx.ca", "phone": "+1 (914) 559-2596", "address": "545 Nolans Lane, Brenton, Arkansas, 7607", "about": "In irure et tempor ad commodo culpa reprehenderit excepteur tempor ex. Exercitation eiusmod consequat anim incididunt veniam duis sunt velit sunt aliquip esse adipisicing do. Elit ea incididunt id amet mollit ea in ad ea cupidatat duis minim consectetur incididunt.\r\n", "registered": "Friday, July 11, 2014 11:27 AM", "latitude": 64.259332, "longitude": 111.604942, "tags": [ "ut", "ex", "cillum", "commodo", "pariatur", "ex", "reprehenderit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Woodward Witt" }, { "id": 1, "name": "Hazel Mcfadden" }, { "id": 2, "name": "Desiree Mclean" } ], "greeting": "Hello, Powers! You have 5 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821117e0b8bd3f6e566", "index": 21, "guid": "fae9ba5c-948b-429c-b1e6-a0a6835f0694", "isActive": false, "balance": "$1,046.41", "picture": "http://placehold.it/32x32", "age": 31, "eyeColor": "brown", "name": { "first": "Lola", "last": "Roy" }, "company": "EURON", "email": "lola.roy@euron.org", "phone": "+1 (920) 413-2000", "address": "237 Tabor Court, Berwind, Hawaii, 2276", "about": "Aute voluptate proident occaecat exercitation aute proident ullamco veniam aute magna velit cupidatat. Occaecat dolor aliquip adipisicing dolor do elit eu elit laboris officia magna dolore. Velit tempor sit ad et occaecat nisi elit excepteur. Non velit sint deserunt culpa magna irure.\r\n", "registered": "Thursday, February 27, 2014 1:20 AM", "latitude": 12.90929, "longitude": 68.693395, "tags": [ "ad", "officia", "non", "aute", "magna", "minim", "sint" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Lee Tate" }, { "id": 1, "name": "Miranda Payne" }, { "id": 2, "name": "Jocelyn Cantrell" } ], "greeting": "Hello, Lola! You have 9 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8211cf627425d947100", "index": 22, "guid": "590c913b-2457-47a5-ad5c-8a5fc3c249f9", "isActive": true, "balance": "$2,144.16", "picture": "http://placehold.it/32x32", "age": 22, "eyeColor": "green", "name": { "first": "Marci", "last": "Mcpherson" }, "company": "VIAGREAT", "email": "marci.mcpherson@viagreat.biz", "phone": "+1 (916) 417-2166", "address": "527 Kenilworth Place, Bartonsville, Puerto Rico, 4739", "about": "Duis velit irure sit sit aliquip sit culpa velit labore velit ipsum amet. Pariatur labore ex et sunt proident ad minim. Aliquip qui adipisicing elit do sunt mollit irure adipisicing in labore cillum. Ut velit dolor cillum irure voluptate ad incididunt consequat cillum esse laborum consequat do.\r\n", "registered": "Wednesday, August 27, 2014 6:55 AM", "latitude": 23.135493, "longitude": -133.213153, "tags": [ "ut", "ex", "deserunt", "mollit", "cillum", "aliquip", "excepteur" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Latisha Ortiz" }, { "id": 1, "name": "Ila Marshall" }, { "id": 2, "name": "Kathie Strong" } ], "greeting": "Hello, Marci! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa82113ff45aaf64d6b75", "index": 23, "guid": "a074b7d2-92de-4728-9032-ac711cc8ca1b", "isActive": true, "balance": "$1,927.67", "picture": "http://placehold.it/32x32", "age": 26, "eyeColor": "green", "name": { "first": "Lorie", "last": "Haynes" }, "company": "CUBIX", "email": "lorie.haynes@cubix.io", "phone": "+1 (914) 479-2574", "address": "209 Stoddard Place, Grahamtown, New Hampshire, 3422", "about": "Commodo eu reprehenderit aute veniam occaecat eiusmod ex enim mollit elit. Officia fugiat proident cillum sint sint. In anim occaecat in dolore pariatur occaecat dolore eu duis sint veniam labore tempor id.\r\n", "registered": "Thursday, June 19, 2014 3:03 AM", "latitude": -80.694066, "longitude": 98.315178, "tags": [ "proident", "est", "nulla", "minim", "aute", "duis", "ea" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Shana Jensen" }, { "id": 1, "name": "Audra Hays" }, { "id": 2, "name": "Shannon Stewart" } ], "greeting": "Hello, Lorie! You have 5 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8216788a07fe633c5a6", "index": 24, "guid": "ff361134-2ce3-4cce-b043-d571e87a041d", "isActive": false, "balance": "$1,274.62", "picture": "http://placehold.it/32x32", "age": 34, "eyeColor": "green", "name": { "first": "Parker", "last": "Higgins" }, "company": "ISOSTREAM", "email": "parker.higgins@isostream.net", "phone": "+1 (965) 467-3975", "address": "908 Division Place, Homeland, South Carolina, 2577", "about": "Laborum minim consectetur ipsum incididunt cupidatat ex ad labore eu non est consequat. Tempor eiusmod commodo Lorem enim aliquip ad non sint ipsum culpa amet. Eu sit amet velit est sit cupidatat aliquip magna proident id veniam Lorem dolore. Eiusmod ex amet proident enim ipsum proident mollit adipisicing ut.\r\n", "registered": "Monday, August 25, 2014 4:51 AM", "latitude": -28.784274, "longitude": -151.224185, "tags": [ "ea", "cupidatat", "do", "culpa", "ea", "ullamco", "nulla" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Bridgette Tyler" }, { "id": 1, "name": "Harris Pollard" }, { "id": 2, "name": "Davenport Skinner" } ], "greeting": "Hello, Parker! You have 6 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821ff898d23056717a4", "index": 25, "guid": "f5e85a0d-f46e-427e-86a7-657eaaadb169", "isActive": true, "balance": "$3,413.58", "picture": "http://placehold.it/32x32", "age": 36, "eyeColor": "brown", "name": { "first": "Rios", "last": "Reilly" }, "company": "QUILTIGEN", "email": "rios.reilly@quiltigen.com", "phone": "+1 (982) 565-3930", "address": "789 Beekman Place, Wiscon, Texas, 8745", "about": "Consectetur qui do sint deserunt voluptate sunt dolor in officia aliquip. Eu irure sit veniam nostrud culpa laboris. Commodo nostrud cillum nulla nostrud.\r\n", "registered": "Thursday, September 4, 2014 1:54 PM", "latitude": 6.093115, "longitude": 145.037939, "tags": [ "eu", "consectetur", "veniam", "pariatur", "laboris", "ad", "cupidatat" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Sweet Conley" }, { "id": 1, "name": "Key Grant" }, { "id": 2, "name": "Guthrie Moss" } ], "greeting": "Hello, Rios! You have 10 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa82125f7c765fcbb1743", "index": 26, "guid": "e5f12323-5c7c-4103-b20c-1a633845a28c", "isActive": true, "balance": "$1,645.61", "picture": "http://placehold.it/32x32", "age": 26, "eyeColor": "green", "name": { "first": "Hurley", "last": "Cooke" }, "company": "QUORDATE", "email": "hurley.cooke@quordate.biz", "phone": "+1 (841) 404-3894", "address": "369 Denton Place, Curtice, South Dakota, 2613", "about": "Nulla non in aliqua sit mollit pariatur do mollit. Ut pariatur ut velit minim. Fugiat deserunt velit duis consequat labore culpa voluptate sint voluptate consectetur officia voluptate et laborum. Et exercitation ut eu pariatur minim velit elit. Dolore amet officia ipsum voluptate occaecat eiusmod cupidatat do dolore consequat esse consectetur aliquip.\r\n", "registered": "Sunday, April 13, 2014 11:42 AM", "latitude": -78.463811, "longitude": 36.580914, "tags": [ "deserunt", "nisi", "do", "enim", "nisi", "qui", "ipsum" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Harvey Norman" }, { "id": 1, "name": "Porter Shannon" }, { "id": 2, "name": "Reyes Goodman" } ], "greeting": "Hello, Hurley! You have 10 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821f375b9cabd418303", "index": 27, "guid": "452fe001-7fff-4f69-9336-00e3e80e9792", "isActive": true, "balance": "$2,608.67", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "green", "name": { "first": "Jill", "last": "Blair" }, "company": "ORBALIX", "email": "jill.blair@orbalix.co.uk", "phone": "+1 (863) 519-2778", "address": "680 Cleveland Street, Kohatk, Ohio, 1688", "about": "Do labore sint cupidatat dolor. Mollit nulla voluptate nostrud tempor ad cillum in mollit officia reprehenderit duis commodo veniam ad. Adipisicing enim adipisicing consequat sint minim ut. Cupidatat non ullamco sunt mollit proident. Aliquip dolore dolor excepteur cupidatat. Consectetur duis adipisicing qui enim aute quis veniam deserunt occaecat. Duis elit exercitation ullamco voluptate aliqua.\r\n", "registered": "Tuesday, September 30, 2014 11:23 PM", "latitude": -33.279869, "longitude": 6.221211, "tags": [ "nostrud", "elit", "adipisicing", "esse", "in", "commodo", "ea" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Tania Flores" }, { "id": 1, "name": "Nina Blackburn" }, { "id": 2, "name": "Mathews Fischer" } ], "greeting": "Hello, Jill! You have 10 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821304372a99199671f", "index": 28, "guid": "d160ded3-911c-4ce2-a314-9ed9a8e6fa9b", "isActive": true, "balance": "$3,005.54", "picture": "http://placehold.it/32x32", "age": 35, "eyeColor": "brown", "name": { "first": "Estela", "last": "Dalton" }, "company": "POWERNET", "email": "estela.dalton@powernet.tv", "phone": "+1 (959) 527-2607", "address": "820 Montauk Avenue, Whitmer, Maine, 3867", "about": "Commodo est ullamco sit eu irure tempor veniam deserunt in aute cillum tempor. Occaecat velit et deserunt incididunt sint do eu consectetur enim ullamco consectetur esse ipsum pariatur. Tempor exercitation dolore tempor enim. Dolor esse est magna occaecat. Elit culpa sint non ea exercitation. Aliquip nostrud aliquip culpa Lorem cillum incididunt do sit sunt velit id. Proident sit proident est velit consequat cillum officia in et.\r\n", "registered": "Sunday, April 13, 2014 5:53 AM", "latitude": 32.713335, "longitude": 174.505048, "tags": [ "aliquip", "dolore", "proident", "pariatur", "elit", "cillum", "id" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Gibson Durham" }, { "id": 1, "name": "Carolina Cooley" }, { "id": 2, "name": "Rosa Mcintyre" } ], "greeting": "Hello, Estela! You have 8 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa82187c6143c96c5ce1f", "index": 29, "guid": "f62ae8de-8905-4ac0-9b5c-ce12dad96a86", "isActive": false, "balance": "$1,859.49", "picture": "http://placehold.it/32x32", "age": 34, "eyeColor": "brown", "name": { "first": "Martina", "last": "Jacobson" }, "company": "CUIZINE", "email": "martina.jacobson@cuizine.name", "phone": "+1 (927) 493-2997", "address": "234 Utica Avenue, Hinsdale, Vermont, 459", "about": "Pariatur nulla ad sint tempor qui in id aliqua ex et ut. Qui occaecat quis veniam mollit officia duis ad ea. Est consectetur sit sint proident sit do. Id ut incididunt tempor id irure. Qui commodo cillum labore anim eiusmod exercitation ea qui nulla qui amet.\r\n", "registered": "Sunday, February 9, 2014 3:54 AM", "latitude": -36.70558, "longitude": -140.397297, "tags": [ "voluptate", "adipisicing", "do", "deserunt", "aliquip", "est", "minim" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Griffith Martinez" }, { "id": 1, "name": "Richard Chavez" }, { "id": 2, "name": "Mckinney Butler" } ], "greeting": "Hello, Martina! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821392ebf56130b6eaa", "index": 30, "guid": "91c5f9c9-d3c7-435a-98cc-06e360c12e1d", "isActive": true, "balance": "$3,693.79", "picture": "http://placehold.it/32x32", "age": 21, "eyeColor": "brown", "name": { "first": "Althea", "last": "Valencia" }, "company": "BLANET", "email": "althea.valencia@blanet.me", "phone": "+1 (887) 501-3212", "address": "911 Adams Street, Brambleton, Delaware, 5831", "about": "Quis culpa exercitation dolor anim. Id labore ea aute aliqua. Dolor dolore sit duis anim cillum nostrud officia dolor sit. Laborum tempor dolore id consequat.\r\n", "registered": "Saturday, January 11, 2014 6:27 PM", "latitude": -39.101471, "longitude": -22.991091, "tags": [ "eu", "anim", "elit", "pariatur", "cupidatat", "cupidatat", "enim" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Dawson Foreman" }, { "id": 1, "name": "Sanford Meyer" }, { "id": 2, "name": "Ruth Barron" } ], "greeting": "Hello, Althea! You have 8 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa82111b129b44454e349", "index": 31, "guid": "184ea3dd-af3f-400a-aa64-429b6cac091f", "isActive": true, "balance": "$1,351.78", "picture": "http://placehold.it/32x32", "age": 20, "eyeColor": "blue", "name": { "first": "Morrison", "last": "Chan" }, "company": "TALKALOT", "email": "morrison.chan@talkalot.us", "phone": "+1 (822) 448-3384", "address": "599 Olive Street, Franklin, Palau, 3303", "about": "Ex deserunt nulla velit dolore. Sunt sit ea irure incididunt aute sint do veniam. Sit ut ad ipsum est velit ea duis exercitation aliquip consectetur Lorem fugiat eu.\r\n", "registered": "Sunday, February 16, 2014 2:04 PM", "latitude": 61.099205, "longitude": -37.736061, "tags": [ "eu", "deserunt", "pariatur", "labore", "reprehenderit", "magna", "consectetur" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Norma Montoya" }, { "id": 1, "name": "Bailey Gillespie" }, { "id": 2, "name": "Candace Kent" } ], "greeting": "Hello, Morrison! You have 7 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821aec56cb0ce50b54b", "index": 32, "guid": "b211ab76-8674-4ed0-9a40-2087930468ad", "isActive": false, "balance": "$1,492.99", "picture": "http://placehold.it/32x32", "age": 34, "eyeColor": "green", "name": { "first": "Walters", "last": "Potts" }, "company": "FLUMBO", "email": "walters.potts@flumbo.ca", "phone": "+1 (871) 461-3958", "address": "438 Highland Avenue, Elwood, Arizona, 9669", "about": "Lorem do Lorem aliquip ipsum. Elit labore reprehenderit tempor do. Incididunt labore ad eu occaecat enim laborum irure elit nulla Lorem anim sit exercitation velit. Proident ullamco voluptate aute ex et aute mollit nostrud. Adipisicing labore sit irure amet dolore nostrud. Tempor nulla aliqua culpa commodo aliqua ut esse velit mollit ad. Aliqua nulla enim non nisi laboris sint aute duis proident qui officia.\r\n", "registered": "Saturday, September 6, 2014 11:47 AM", "latitude": 64.732922, "longitude": -168.513014, "tags": [ "tempor", "amet", "dolore", "proident", "reprehenderit", "non", "tempor" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Freida Bailey" }, { "id": 1, "name": "Bernice Curry" }, { "id": 2, "name": "Ochoa Jefferson" } ], "greeting": "Hello, Walters! You have 6 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa82137be18ee6b852a45", "index": 33, "guid": "e8c67cca-c977-4668-9aff-46bfde1cd3de", "isActive": true, "balance": "$3,747.65", "picture": "http://placehold.it/32x32", "age": 24, "eyeColor": "blue", "name": { "first": "Meredith", "last": "Santana" }, "company": "GADTRON", "email": "meredith.santana@gadtron.org", "phone": "+1 (836) 438-3637", "address": "999 Centre Street, Chaparrito, Colorado, 4540", "about": "Magna nisi laboris sit quis duis anim et ullamco nostrud exercitation. Tempor enim nisi non culpa sit ex elit labore proident veniam dolore anim ex. Nostrud est qui do magna proident et. Nulla ea laboris incididunt elit labore id mollit reprehenderit. Amet in Lorem exercitation tempor voluptate labore anim adipisicing labore in dolor proident labore. Lorem labore duis ex Lorem nulla. Veniam in fugiat ex ullamco officia elit eiusmod enim.\r\n", "registered": "Sunday, March 2, 2014 1:38 PM", "latitude": 80.220732, "longitude": 79.102966, "tags": [ "culpa", "esse", "velit", "consectetur", "incididunt", "dolore", "aliqua" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Bernadine Manning" }, { "id": 1, "name": "Daphne Wyatt" }, { "id": 2, "name": "Keri Harrison" } ], "greeting": "Hello, Meredith! You have 7 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821ecdd700bb0b77dc2", "index": 34, "guid": "b93f3a6f-f05b-4d7e-93b8-4502d9c76cd2", "isActive": true, "balance": "$3,059.56", "picture": "http://placehold.it/32x32", "age": 25, "eyeColor": "brown", "name": { "first": "Samantha", "last": "Finley" }, "company": "XYQAG", "email": "samantha.finley@xyqag.biz", "phone": "+1 (879) 568-2419", "address": "349 Truxton Street, Haring, Missouri, 8383", "about": "Consequat do id et quis eiusmod eu irure sunt qui. Mollit minim nulla magna duis nostrud cillum ullamco sunt adipisicing elit ex. Minim fugiat deserunt nostrud esse laboris ullamco sit sit magna. Tempor occaecat Lorem qui ad ut tempor excepteur. Et sunt ullamco officia et Lorem est. Ipsum dolor ut ut elit do nisi in aute consequat. Enim esse ex aliqua anim aliquip cupidatat do Lorem voluptate quis ea culpa incididunt reprehenderit.\r\n", "registered": "Saturday, March 29, 2014 1:38 PM", "latitude": 79.209401, "longitude": -139.211605, "tags": [ "irure", "eiusmod", "nulla", "officia", "eu", "elit", "nisi" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Mayer Justice" }, { "id": 1, "name": "Mae Hancock" }, { "id": 2, "name": "Sherri Bradshaw" } ], "greeting": "Hello, Samantha! You have 8 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8218ac5365ad300d1bd", "index": 35, "guid": "f3b50cb9-da35-47fe-b0fa-fec9fc84cf8e", "isActive": false, "balance": "$2,819.28", "picture": "http://placehold.it/32x32", "age": 29, "eyeColor": "blue", "name": { "first": "Cohen", "last": "Finch" }, "company": "SYNTAC", "email": "cohen.finch@syntac.io", "phone": "+1 (950) 459-2729", "address": "436 Pineapple Street, Deercroft, Minnesota, 3218", "about": "Sint velit officia quis esse. Nulla aute laborum veniam dolore tempor adipisicing proident. Duis irure esse nostrud veniam est mollit mollit voluptate eiusmod anim veniam eiusmod. Ullamco sunt sit sint minim ea reprehenderit qui consequat ipsum. Sint id voluptate reprehenderit irure nulla veniam eu Lorem enim nulla. Cupidatat amet pariatur dolor amet ex nostrud dolor ipsum tempor enim nulla aliquip tempor Lorem.\r\n", "registered": "Wednesday, October 8, 2014 10:04 PM", "latitude": -84.299718, "longitude": 52.573184, "tags": [ "deserunt", "eu", "consectetur", "ea", "non", "officia", "reprehenderit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Stevenson Mcintosh" }, { "id": 1, "name": "Chrystal Oneill" }, { "id": 2, "name": "Janine Rowe" } ], "greeting": "Hello, Cohen! You have 10 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa82161d5c66d4bd0996e", "index": 36, "guid": "6dfc2232-f3c6-4818-956a-e8c683fd69fe", "isActive": true, "balance": "$3,262.20", "picture": "http://placehold.it/32x32", "age": 33, "eyeColor": "blue", "name": { "first": "Joy", "last": "Moran" }, "company": "UPDAT", "email": "joy.moran@updat.net", "phone": "+1 (968) 581-3365", "address": "279 Kosciusko Street, Smock, Northern Mariana Islands, 5007", "about": "Quis elit pariatur eu enim magna magna sunt dolore duis commodo. Pariatur sint duis ex aute eu est deserunt culpa fugiat minim non. Tempor consequat consectetur consequat sit incididunt officia id. Incididunt ex eiusmod excepteur aute mollit veniam quis excepteur occaecat excepteur deserunt reprehenderit. Est sit laboris eu dolor. Sunt voluptate quis aliquip nulla ex irure velit in. Aliqua sit id eiusmod amet commodo pariatur deserunt voluptate qui minim ex incididunt voluptate.\r\n", "registered": "Saturday, February 8, 2014 9:55 PM", "latitude": 53.735731, "longitude": 46.00211, "tags": [ "exercitation", "dolor", "minim", "incididunt", "laborum", "qui", "sit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Joyce Mckay" }, { "id": 1, "name": "Turner Murray" }, { "id": 2, "name": "Jackson Jackson" } ], "greeting": "Hello, Joy! You have 7 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821a9817ca1a9be6517", "index": 37, "guid": "84fe8707-cfbc-4434-98bb-faf9cb97471a", "isActive": true, "balance": "$3,224.80", "picture": "http://placehold.it/32x32", "age": 27, "eyeColor": "blue", "name": { "first": "Brennan", "last": "Stafford" }, "company": "LOVEPAD", "email": "brennan.stafford@lovepad.com", "phone": "+1 (873) 405-3600", "address": "471 Ryder Avenue, Succasunna, Marshall Islands, 2595", "about": "Et officia quis magna laborum et proident labore elit do Lorem reprehenderit irure. Laborum culpa culpa voluptate commodo consequat non et amet. Mollit cupidatat irure magna sint commodo ipsum proident tempor est. Laboris exercitation aliqua aute deserunt do in aliqua minim ex excepteur. Consequat in minim officia labore laboris laboris occaecat occaecat. Ex qui aliquip sint consectetur elit excepteur incididunt eu non laborum do eu excepteur.\r\n", "registered": "Saturday, May 31, 2014 3:28 PM", "latitude": -69.429728, "longitude": 46.837644, "tags": [ "proident", "ad", "non", "duis", "occaecat", "proident", "non" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Jones Kirk" }, { "id": 1, "name": "Howe Drake" }, { "id": 2, "name": "Kimberly Jennings" } ], "greeting": "Hello, Brennan! You have 6 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa8219251dc49e1cb846a", "index": 38, "guid": "c260bce1-46ac-4e84-9490-13eb8202904e", "isActive": true, "balance": "$1,330.69", "picture": "http://placehold.it/32x32", "age": 27, "eyeColor": "brown", "name": { "first": "Neal", "last": "Mooney" }, "company": "SOFTMICRO", "email": "neal.mooney@softmicro.biz", "phone": "+1 (883) 463-3623", "address": "818 Lancaster Avenue, Chelsea, New Jersey, 3590", "about": "Reprehenderit anim nostrud adipisicing non minim ea. Elit deserunt id in mollit nisi. Pariatur in consequat irure aliqua laboris ipsum.\r\n", "registered": "Wednesday, May 21, 2014 4:33 PM", "latitude": -57.826881, "longitude": 154.840249, "tags": [ "consequat", "aliquip", "pariatur", "nulla", "dolore", "deserunt", "ipsum" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Beach Roman" }, { "id": 1, "name": "Nash Young" }, { "id": 2, "name": "Carey Dale" } ], "greeting": "Hello, Neal! You have 10 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821cedc96e4f2209487", "index": 39, "guid": "ed7bbe27-811c-44e4-896e-cdf6ef62e048", "isActive": false, "balance": "$3,148.21", "picture": "http://placehold.it/32x32", "age": 35, "eyeColor": "green", "name": { "first": "Roy", "last": "Becker" }, "company": "KONGENE", "email": "roy.becker@kongene.co.uk", "phone": "+1 (895) 426-2172", "address": "414 Seagate Avenue, Watrous, Virgin Islands, 3905", "about": "Commodo mollit do minim dolor magna occaecat labore Lorem eiusmod. Occaecat mollit occaecat ex anim est amet irure non minim. Tempor laborum cupidatat tempor ex Lorem cupidatat incididunt ullamco fugiat Lorem consequat labore Lorem non.\r\n", "registered": "Sunday, August 17, 2014 3:16 PM", "latitude": -2.609533, "longitude": -143.844769, "tags": [ "do", "culpa", "sint", "ea", "duis", "aliqua", "anim" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Lowery Hull" }, { "id": 1, "name": "Abbott Oneal" }, { "id": 2, "name": "Nellie Hammond" } ], "greeting": "Hello, Roy! You have 9 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821668031e7f50e30e9", "index": 40, "guid": "14dc3a87-0acf-4edd-93e4-ddcbeeecf96b", "isActive": false, "balance": "$2,617.16", "picture": "http://placehold.it/32x32", "age": 31, "eyeColor": "brown", "name": { "first": "Courtney", "last": "Watson" }, "company": "ISOSWITCH", "email": "courtney.watson@isoswitch.tv", "phone": "+1 (882) 468-2163", "address": "385 Douglass Street, Iberia, Oregon, 7802", "about": "Culpa sunt amet eu magna id quis quis irure velit. Culpa nostrud do enim proident officia. Laboris laborum laborum esse irure proident laborum amet sunt ipsum dolor nulla non ipsum sint. Amet deserunt in esse aliquip laboris proident fugiat nisi cillum ullamco occaecat est. Reprehenderit laborum enim labore ex. Velit do adipisicing irure dolor pariatur duis magna velit. Laborum sint laborum eu anim aliquip adipisicing labore.\r\n", "registered": "Tuesday, July 22, 2014 6:03 PM", "latitude": -75.831312, "longitude": -172.468604, "tags": [ "dolor", "velit", "et", "id", "cupidatat", "exercitation", "laborum" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Mccray Gomez" }, { "id": 1, "name": "Hoover Rasmussen" }, { "id": 2, "name": "Hillary Castillo" } ], "greeting": "Hello, Courtney! You have 5 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8213c480453670f0428", "index": 41, "guid": "e7b97ea6-a13f-42ab-a998-e48614000aca", "isActive": true, "balance": "$1,499.72", "picture": "http://placehold.it/32x32", "age": 35, "eyeColor": "blue", "name": { "first": "Dale", "last": "Love" }, "company": "BULLJUICE", "email": "dale.love@bulljuice.name", "phone": "+1 (933) 588-3310", "address": "603 Myrtle Avenue, Allentown, Utah, 793", "about": "Ad quis anim commodo nulla et anim minim commodo irure excepteur. Pariatur ut anim aliquip id ex ipsum exercitation irure qui in nisi quis. Cillum deserunt duis dolore quis nostrud incididunt ipsum ea ipsum id fugiat eu voluptate nisi. Exercitation laborum fugiat irure anim. Ex nostrud aliqua deserunt amet.\r\n", "registered": "Tuesday, July 22, 2014 1:19 PM", "latitude": 55.335017, "longitude": 101.730023, "tags": [ "ea", "non", "fugiat", "Lorem", "tempor", "ut", "do" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Spears Diaz" }, { "id": 1, "name": "Nora Dominguez" }, { "id": 2, "name": "Tamra Paul" } ], "greeting": "Hello, Dale! You have 9 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821c82bf70ca08206a9", "index": 42, "guid": "4367142d-e2b7-475c-b430-ac617295fbfc", "isActive": false, "balance": "$2,698.29", "picture": "http://placehold.it/32x32", "age": 37, "eyeColor": "blue", "name": { "first": "Gibbs", "last": "Hunt" }, "company": "COWTOWN", "email": "gibbs.hunt@cowtown.me", "phone": "+1 (960) 424-3404", "address": "758 Suydam Place, Adamstown, North Carolina, 2800", "about": "Veniam qui incididunt officia amet commodo nostrud. Magna consectetur consectetur officia Lorem amet sit officia excepteur minim consectetur pariatur dolore. Mollit fugiat aliqua consectetur qui non elit in aliquip culpa Lorem consectetur velit ad.\r\n", "registered": "Monday, February 10, 2014 4:10 PM", "latitude": 62.263652, "longitude": 64.978136, "tags": [ "et", "dolor", "aute", "minim", "sunt", "veniam", "do" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Henry Schmidt" }, { "id": 1, "name": "Herman Wynn" }, { "id": 2, "name": "Wilda Grimes" } ], "greeting": "Hello, Gibbs! You have 5 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8210b1096c8a2f821c4", "index": 43, "guid": "5184508c-47f7-48b5-85ac-d15ed747ed07", "isActive": true, "balance": "$3,460.45", "picture": "http://placehold.it/32x32", "age": 30, "eyeColor": "green", "name": { "first": "Francis", "last": "Barton" }, "company": "COMTRAIL", "email": "francis.barton@comtrail.us", "phone": "+1 (881) 419-2936", "address": "562 Ferris Street, Ola, Maryland, 3838", "about": "Duis minim laboris in reprehenderit id ut laborum esse consequat. In dolore sunt consequat non fugiat do duis duis. Officia ipsum eiusmod laboris do aliqua aute velit minim nulla nisi. Dolor incididunt enim est eu cupidatat. Dolor commodo sit consectetur irure aliqua ea enim esse reprehenderit ullamco.\r\n", "registered": "Thursday, April 10, 2014 2:48 PM", "latitude": -35.457713, "longitude": 141.805123, "tags": [ "tempor", "officia", "quis", "tempor", "ex", "mollit", "amet" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Mayra Walters" }, { "id": 1, "name": "Casey Gross" }, { "id": 2, "name": "Aisha Santos" } ], "greeting": "Hello, Francis! You have 7 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821890ad48b2eaabcfb", "index": 44, "guid": "07497907-7e6f-471d-af9d-1dcbcf056a56", "isActive": true, "balance": "$2,166.79", "picture": "http://placehold.it/32x32", "age": 33, "eyeColor": "blue", "name": { "first": "Dina", "last": "Travis" }, "company": "VENOFLEX", "email": "dina.travis@venoflex.ca", "phone": "+1 (921) 485-3865", "address": "366 Tillary Street, Century, New York, 6335", "about": "Dolor sunt culpa enim sint officia sint id do ut anim ex in. Dolore est irure aliquip nulla laborum aliqua tempor id ea mollit in ad deserunt. Qui ullamco duis qui elit excepteur. Aute proident duis veniam enim commodo non minim id. Consequat anim eiusmod consectetur ut et labore officia ex ad cillum occaecat. Sit irure officia veniam sint et consequat reprehenderit officia qui. Aute esse nulla ad quis reprehenderit duis.\r\n", "registered": "Friday, September 12, 2014 5:53 AM", "latitude": 24.764352, "longitude": 148.493552, "tags": [ "qui", "officia", "dolor", "velit", "ex", "veniam", "ullamco" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Sharpe Foster" }, { "id": 1, "name": "Kathrine Ayers" }, { "id": 2, "name": "Cox Acosta" } ], "greeting": "Hello, Dina! You have 8 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa82101996fc944f7f215", "index": 45, "guid": "46b331f8-78d3-403f-8c93-cbaac9438998", "isActive": false, "balance": "$2,193.84", "picture": "http://placehold.it/32x32", "age": 33, "eyeColor": "blue", "name": { "first": "Haney", "last": "Garrett" }, "company": "EZENTIA", "email": "haney.garrett@ezentia.org", "phone": "+1 (965) 596-2629", "address": "162 Village Road, Southmont, Virginia, 6673", "about": "Laboris do veniam exercitation officia id eu minim irure Lorem laborum. Sint magna aliquip ad elit eiusmod cillum laborum. Adipisicing aliquip nulla mollit ipsum cupidatat nisi duis irure ullamco. Et elit nulla nisi culpa mollit esse in. Dolore non nulla anim magna enim aliquip quis amet non tempor incididunt dolor.\r\n", "registered": "Monday, August 18, 2014 3:42 PM", "latitude": 6.549909, "longitude": 32.226887, "tags": [ "laboris", "duis", "culpa", "qui", "dolor", "esse", "reprehenderit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Mariana Sharp" }, { "id": 1, "name": "Sue Baldwin" }, { "id": 2, "name": "Ross Arnold" } ], "greeting": "Hello, Haney! You have 10 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821453cc33bd1abd21d", "index": 46, "guid": "313f0c45-6eaf-46d9-a28d-ca31e79d2c1c", "isActive": false, "balance": "$2,303.36", "picture": "http://placehold.it/32x32", "age": 28, "eyeColor": "blue", "name": { "first": "Gale", "last": "Robles" }, "company": "NEWCUBE", "email": "gale.robles@newcube.biz", "phone": "+1 (996) 558-2811", "address": "597 Java Street, Sanborn, North Dakota, 1789", "about": "Anim fugiat do nisi dolor sunt consequat irure quis laborum. Nisi cupidatat dolore excepteur irure ea minim proident excepteur exercitation ut voluptate deserunt. Ad do amet id voluptate enim commodo ex. Sunt sint quis sint aute do ea aliqua. Enim ullamco dolore proident qui mollit irure consequat. Nostrud sunt adipisicing elit incididunt do laboris ad officia ea amet id reprehenderit nulla.\r\n", "registered": "Tuesday, July 15, 2014 2:25 PM", "latitude": -21.549196, "longitude": -97.373962, "tags": [ "ullamco", "amet", "sint", "elit", "tempor", "ex", "pariatur" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Bell Gould" }, { "id": 1, "name": "Denise Kirby" }, { "id": 2, "name": "Hess Hinton" } ], "greeting": "Hello, Gale! You have 5 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821ed643a410e2d79dc", "index": 47, "guid": "2620cb2b-df00-4303-a5ff-768ffb1697c5", "isActive": true, "balance": "$2,890.73", "picture": "http://placehold.it/32x32", "age": 39, "eyeColor": "blue", "name": { "first": "Alisha", "last": "Hamilton" }, "company": "FITCORE", "email": "alisha.hamilton@fitcore.io", "phone": "+1 (853) 468-3192", "address": "257 Bayard Street, Coldiron, Oklahoma, 9228", "about": "Sunt nostrud sunt magna amet excepteur est tempor veniam aliqua. Laboris id aliquip fugiat exercitation dolore veniam et anim duis sit esse ex elit ullamco. Lorem commodo exercitation in sit cillum ipsum do dolor.\r\n", "registered": "Tuesday, March 11, 2014 12:29 PM", "latitude": 85.840017, "longitude": -57.093095, "tags": [ "consectetur", "commodo", "est", "ut", "incididunt", "elit", "ipsum" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Steele Ellis" }, { "id": 1, "name": "Serena Emerson" }, { "id": 2, "name": "Betty Langley" } ], "greeting": "Hello, Alisha! You have 8 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8215c6db03112e3e13d", "index": 48, "guid": "28b59ead-0fd8-480b-8eb8-2d75290934f6", "isActive": false, "balance": "$3,497.68", "picture": "http://placehold.it/32x32", "age": 25, "eyeColor": "blue", "name": { "first": "Kaufman", "last": "Williams" }, "company": "COMBOGENE", "email": "kaufman.williams@combogene.net", "phone": "+1 (820) 465-3213", "address": "353 Clarendon Road, Wilmington, Michigan, 3811", "about": "Irure id sint elit mollit occaecat occaecat veniam elit reprehenderit esse officia cillum. Aute aute occaecat ipsum commodo laborum adipisicing fugiat aliquip dolore. Deserunt id excepteur enim eu adipisicing nulla ut non est dolore est. Culpa magna et sit et non ex.\r\n", "registered": "Sunday, September 7, 2014 5:57 AM", "latitude": 10.667631, "longitude": 157.707911, "tags": [ "consequat", "dolor", "deserunt", "amet", "Lorem", "aliqua", "minim" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Horn Franco" }, { "id": 1, "name": "Kathleen Hickman" }, { "id": 2, "name": "Rosario Scott" } ], "greeting": "Hello, Kaufman! You have 7 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821045c82593b79538d", "index": 49, "guid": "cef964ed-4208-41eb-a8d8-916d95d18f8a", "isActive": true, "balance": "$3,808.37", "picture": "http://placehold.it/32x32", "age": 28, "eyeColor": "blue", "name": { "first": "Tran", "last": "Gallegos" }, "company": "CONCILITY", "email": "tran.gallegos@concility.com", "phone": "+1 (925) 487-2143", "address": "969 Schermerhorn Street, Watchtower, Idaho, 413", "about": "Velit ut enim cupidatat adipisicing culpa in non incididunt exercitation dolor pariatur. Deserunt dolor occaecat dolor officia ipsum occaecat tempor nisi. Culpa et culpa aute incididunt et labore sunt cillum nulla. Reprehenderit culpa enim laborum nostrud consectetur velit nulla consequat aliqua non exercitation sunt nulla aliqua. Labore incididunt aliqua aliqua anim duis culpa elit labore. Aliqua ipsum mollit ut sint aliquip in aute do qui amet.\r\n", "registered": "Friday, May 9, 2014 9:24 AM", "latitude": -49.148583, "longitude": 4.911715, "tags": [ "labore", "duis", "proident", "adipisicing", "nisi", "tempor", "nisi" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Nicole Holloway" }, { "id": 1, "name": "Minerva Beasley" }, { "id": 2, "name": "Bowers Suarez" } ], "greeting": "Hello, Tran! You have 7 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821fbd8e9836595f96d", "index": 50, "guid": "966b2f5e-5686-4381-9ab7-87bc9ac9968b", "isActive": true, "balance": "$1,351.67", "picture": "http://placehold.it/32x32", "age": 23, "eyeColor": "green", "name": { "first": "Mable", "last": "Lambert" }, "company": "ZENSUS", "email": "mable.lambert@zensus.biz", "phone": "+1 (917) 404-3441", "address": "174 Concord Street, Somerset, Nebraska, 7318", "about": "Ad minim esse ipsum incididunt incididunt enim Lorem nulla excepteur velit fugiat ullamco amet reprehenderit. Labore velit fugiat proident enim Lorem mollit ex. Tempor voluptate cupidatat officia nostrud qui. Veniam duis voluptate deserunt commodo consectetur eiusmod qui excepteur aliquip. Exercitation laborum Lorem excepteur ipsum aliqua fugiat reprehenderit ea dolore deserunt commodo cillum ipsum eu. Ullamco quis voluptate eiusmod ea aute et pariatur consequat duis occaecat nulla aliquip.\r\n", "registered": "Sunday, May 25, 2014 4:54 PM", "latitude": 79.811908, "longitude": -62.629133, "tags": [ "sit", "non", "reprehenderit", "exercitation", "dolor", "labore", "irure" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Rosie Gill" }, { "id": 1, "name": "Parrish Dean" }, { "id": 2, "name": "Annmarie Delacruz" } ], "greeting": "Hello, Mable! You have 10 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821c85822cf149b785f", "index": 51, "guid": "1afd0e8f-b518-4bca-a4df-29e9b6a961d6", "isActive": true, "balance": "$2,628.22", "picture": "http://placehold.it/32x32", "age": 22, "eyeColor": "brown", "name": { "first": "Sadie", "last": "Clarke" }, "company": "UNISURE", "email": "sadie.clarke@unisure.co.uk", "phone": "+1 (905) 480-2930", "address": "326 Gilmore Court, Hamilton, Montana, 9217", "about": "Dolore do nisi reprehenderit consectetur in. In esse sit proident enim duis veniam quis laboris nulla cillum adipisicing veniam aute. Culpa sunt ex exercitation sit esse exercitation dolor ea enim ad est aute consequat qui. Esse esse nulla eiusmod eiusmod ullamco esse cillum aute ea id ex quis. Pariatur officia Lorem aute officia anim velit velit elit sint voluptate. Aliquip ad velit velit laboris et culpa. Do consectetur aliqua sit sunt eu anim culpa ut incididunt et.\r\n", "registered": "Sunday, April 27, 2014 10:37 AM", "latitude": -71.828101, "longitude": -138.908359, "tags": [ "nostrud", "amet", "minim", "occaecat", "proident", "sint", "nostrud" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Christa Estes" }, { "id": 1, "name": "Alana Schneider" }, { "id": 2, "name": "Frank Spears" } ], "greeting": "Hello, Sadie! You have 6 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821aa6b44e8d20db81c", "index": 52, "guid": "e0220e02-565c-424a-8834-f955ccb72f7d", "isActive": false, "balance": "$2,918.63", "picture": "http://placehold.it/32x32", "age": 30, "eyeColor": "brown", "name": { "first": "Deana", "last": "Fletcher" }, "company": "VISALIA", "email": "deana.fletcher@visalia.tv", "phone": "+1 (815) 430-2641", "address": "347 Tehama Street, Hollins, Washington, 5953", "about": "Est consequat id ad Lorem consequat quis ullamco minim pariatur ipsum cillum. Enim exercitation qui duis cillum ea amet ea sint proident officia dolor non. Irure culpa cillum minim officia est culpa sit.\r\n", "registered": "Monday, May 5, 2014 1:51 AM", "latitude": 51.516197, "longitude": 80.400628, "tags": [ "ut", "tempor", "pariatur", "ex", "dolore", "deserunt", "culpa" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Hansen Estrada" }, { "id": 1, "name": "Regina Munoz" }, { "id": 2, "name": "Bethany Cabrera" } ], "greeting": "Hello, Deana! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa82120c61930bc25e2ff", "index": 53, "guid": "99c62c99-ef16-4eb7-a41d-80feafca740a", "isActive": false, "balance": "$1,836.96", "picture": "http://placehold.it/32x32", "age": 27, "eyeColor": "brown", "name": { "first": "Long", "last": "Sandoval" }, "company": "GINKLE", "email": "long.sandoval@ginkle.name", "phone": "+1 (989) 541-2327", "address": "161 Crown Street, Omar, Kentucky, 8615", "about": "Et ea eiusmod ex consequat culpa proident. Reprehenderit proident ullamco ullamco aliquip incididunt ullamco sit proident dolore nulla fugiat sit laboris. Adipisicing ullamco laborum nulla exercitation reprehenderit irure ex.\r\n", "registered": "Tuesday, July 29, 2014 12:14 AM", "latitude": -20.766582, "longitude": 74.616145, "tags": [ "et", "consequat", "duis", "excepteur", "sint", "sunt", "aliqua" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Aline Rosa" }, { "id": 1, "name": "Olivia Quinn" }, { "id": 2, "name": "Fowler Carter" } ], "greeting": "Hello, Long! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821cc7ceb7da88472ed", "index": 54, "guid": "3a965f51-48f9-4d10-8a9b-a0b529749c93", "isActive": true, "balance": "$2,950.94", "picture": "http://placehold.it/32x32", "age": 25, "eyeColor": "green", "name": { "first": "Rush", "last": "Thornton" }, "company": "AQUASSEUR", "email": "rush.thornton@aquasseur.me", "phone": "+1 (916) 493-2777", "address": "344 Sunnyside Avenue, Brethren, California, 9529", "about": "Duis ut consequat eu laborum voluptate eu Lorem cillum ad in commodo adipisicing. Excepteur aliquip sint dolor voluptate cillum nisi mollit mollit laborum ex culpa adipisicing voluptate. Cupidatat do sit fugiat amet irure. Cupidatat ex ut commodo reprehenderit veniam sit est officia ad pariatur aliquip.\r\n", "registered": "Thursday, September 25, 2014 11:09 AM", "latitude": -61.409359, "longitude": -87.414208, "tags": [ "adipisicing", "consequat", "magna", "Lorem", "consequat", "voluptate", "eu" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Hill Good" }, { "id": 1, "name": "Hartman Rice" }, { "id": 2, "name": "Petersen Hogan" } ], "greeting": "Hello, Rush! You have 7 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821e221eb5b7ed845c0", "index": 55, "guid": "ab0f1517-8c25-46ff-a281-0dcc932e2f9a", "isActive": false, "balance": "$2,070.82", "picture": "http://placehold.it/32x32", "age": 39, "eyeColor": "green", "name": { "first": "Alyce", "last": "Perez" }, "company": "CAPSCREEN", "email": "alyce.perez@capscreen.us", "phone": "+1 (955) 432-2025", "address": "896 Troutman Street, Williamson, West Virginia, 6491", "about": "In consequat quis ex sint nisi proident esse excepteur quis nostrud. Enim incididunt ullamco sint quis eiusmod qui tempor ad laboris eiusmod nulla in aliquip sit. Nostrud fugiat fugiat Lorem laboris pariatur eiusmod amet ea do irure et. Excepteur pariatur consequat exercitation amet occaecat do aliqua non deserunt nulla cupidatat tempor id. Mollit ex incididunt et nulla culpa mollit veniam qui amet in excepteur pariatur. Commodo reprehenderit tempor laborum nisi anim minim deserunt eiusmod adipisicing deserunt ut eiusmod excepteur.\r\n", "registered": "Monday, June 23, 2014 7:37 AM", "latitude": -4.180393, "longitude": 21.4789, "tags": [ "dolore", "officia", "laborum", "aliquip", "ex", "eu", "sint" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Rosalind Lang" }, { "id": 1, "name": "Ina Pratt" }, { "id": 2, "name": "Tamika Mercer" } ], "greeting": "Hello, Alyce! You have 5 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8215e315c720e186460", "index": 56, "guid": "10727900-9be7-46d5-8f2c-7c6834d95a25", "isActive": false, "balance": "$1,907.19", "picture": "http://placehold.it/32x32", "age": 37, "eyeColor": "brown", "name": { "first": "Snider", "last": "Johnson" }, "company": "IPLAX", "email": "snider.johnson@iplax.ca", "phone": "+1 (883) 539-3127", "address": "424 Hancock Street, Springdale, Wyoming, 7054", "about": "Incididunt proident amet consectetur cupidatat ex officia labore cupidatat laborum. Tempor proident officia nisi Lorem. Lorem commodo commodo ea voluptate excepteur consequat anim quis excepteur sunt officia.\r\n", "registered": "Saturday, March 8, 2014 9:23 PM", "latitude": 16.66716, "longitude": 17.844641, "tags": [ "esse", "est", "eu", "dolor", "ea", "voluptate", "nostrud" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Bauer Burt" }, { "id": 1, "name": "Lowe Boyd" }, { "id": 2, "name": "Moon Garcia" } ], "greeting": "Hello, Snider! You have 9 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa82130f82b9ee9265e5f", "index": 57, "guid": "ba427ee5-5013-498f-a1a2-97a71b249a6e", "isActive": true, "balance": "$2,070.53", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "brown", "name": { "first": "Berry", "last": "Carver" }, "company": "EVENTIX", "email": "berry.carver@eventix.org", "phone": "+1 (907) 508-2463", "address": "415 Havens Place, Nile, Connecticut, 6089", "about": "Quis dolor aute consequat sunt esse dolore Lorem pariatur reprehenderit incididunt aliqua. Officia sunt aute fugiat consectetur id exercitation aliquip velit do fugiat culpa. Et ad amet exercitation veniam ipsum duis qui sunt incididunt. Eiusmod commodo esse aliquip exercitation pariatur consequat nulla nulla quis eiusmod dolor. Ut consectetur qui culpa id veniam dolore pariatur quis est cillum voluptate esse. Sunt eiusmod adipisicing mollit est tempor ipsum dolore tempor. Velit consequat dolore cillum adipisicing id nulla veniam nisi velit in magna id anim.\r\n", "registered": "Monday, January 13, 2014 10:45 PM", "latitude": -60.884888, "longitude": 139.360489, "tags": [ "eu", "deserunt", "minim", "quis", "eiusmod", "sint", "dolor" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Tanisha Dudley" }, { "id": 1, "name": "Dale Mcgowan" }, { "id": 2, "name": "Torres Pennington" } ], "greeting": "Hello, Berry! You have 7 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821bc354233d50ef914", "index": 58, "guid": "6ab626f8-6b71-4f17-ba39-4cc97fdf4855", "isActive": false, "balance": "$2,822.25", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "green", "name": { "first": "Kramer", "last": "Berg" }, "company": "INTRADISK", "email": "kramer.berg@intradisk.biz", "phone": "+1 (901) 534-3326", "address": "455 Bath Avenue, Hoagland, Guam, 2206", "about": "Labore ullamco aliquip id incididunt cupidatat pariatur. In magna et aliquip consectetur dolor ullamco aliqua reprehenderit. Ad velit nisi ex culpa consequat. Culpa eiusmod incididunt pariatur esse tempor officia mollit.\r\n", "registered": "Friday, June 13, 2014 8:45 AM", "latitude": -43.442578, "longitude": 69.627031, "tags": [ "exercitation", "dolor", "quis", "laboris", "exercitation", "sunt", "ipsum" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Love Hutchinson" }, { "id": 1, "name": "Hayden Marquez" }, { "id": 2, "name": "Macdonald Hahn" } ], "greeting": "Hello, Kramer! You have 5 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821cf5d51b48b4bd07a", "index": 59, "guid": "7b339d1e-d759-4fed-9e58-fd2608cdb0f2", "isActive": false, "balance": "$3,836.86", "picture": "http://placehold.it/32x32", "age": 20, "eyeColor": "brown", "name": { "first": "Joann", "last": "Elliott" }, "company": "ATOMICA", "email": "joann.elliott@atomica.io", "phone": "+1 (992) 429-2667", "address": "788 Willow Place, Lindisfarne, Mississippi, 3656", "about": "Ut consequat sunt ipsum minim velit. Lorem eiusmod dolor voluptate est deserunt cupidatat ut ipsum. Et et irure Lorem laborum sint mollit pariatur elit et enim eu eu sunt. Nisi do quis proident enim irure dolore ut Lorem fugiat quis voluptate non reprehenderit dolore.\r\n", "registered": "Monday, May 12, 2014 6:04 PM", "latitude": 14.309335, "longitude": 32.596666, "tags": [ "nulla", "magna", "dolore", "incididunt", "fugiat", "elit", "veniam" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Mason Hurst" }, { "id": 1, "name": "Castaneda Davidson" }, { "id": 2, "name": "Rasmussen Adkins" } ], "greeting": "Hello, Joann! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821876778d3d011eb7b", "index": 60, "guid": "a016ab64-b6dd-42bc-8b5f-dbbab7a01d2a", "isActive": true, "balance": "$2,795.00", "picture": "http://placehold.it/32x32", "age": 31, "eyeColor": "green", "name": { "first": "Barbara", "last": "Nolan" }, "company": "FURNAFIX", "email": "barbara.nolan@furnafix.net", "phone": "+1 (892) 600-2820", "address": "540 Dennett Place, Mammoth, Rhode Island, 6151", "about": "In velit officia quis Lorem. Ex quis cillum esse deserunt consectetur et nulla tempor. Lorem reprehenderit cillum excepteur ea veniam commodo et ad ullamco. Ex elit nisi non ipsum aliqua laborum sint aliqua. Reprehenderit consectetur dolore occaecat irure incididunt sunt.\r\n", "registered": "Monday, April 21, 2014 11:59 AM", "latitude": 71.103088, "longitude": -78.48592, "tags": [ "eu", "ullamco", "cillum", "est", "commodo", "nisi", "tempor" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Cynthia Aguilar" }, { "id": 1, "name": "Deanna Graves" }, { "id": 2, "name": "Bertha Caldwell" } ], "greeting": "Hello, Barbara! You have 9 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821d6e2aaf18a0b184f", "index": 61, "guid": "89ca6bc0-19c2-4d13-a37c-90d02005a6bc", "isActive": false, "balance": "$3,134.62", "picture": "http://placehold.it/32x32", "age": 39, "eyeColor": "blue", "name": { "first": "Penelope", "last": "William" }, "company": "UTARA", "email": "penelope.william@utara.com", "phone": "+1 (968) 575-2395", "address": "276 Ralph Avenue, Ezel, New Mexico, 2656", "about": "Pariatur officia anim dolore commodo ipsum labore sint officia. Lorem culpa ea sunt non. Voluptate irure voluptate ut cupidatat nulla nostrud.\r\n", "registered": "Monday, July 7, 2014 11:29 PM", "latitude": -83.184502, "longitude": -91.222471, "tags": [ "anim", "incididunt", "aliqua", "id", "reprehenderit", "laboris", "consequat" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Maxwell Rocha" }, { "id": 1, "name": "Roach Bryan" }, { "id": 2, "name": "Woods Daugherty" } ], "greeting": "Hello, Penelope! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8217abc85acd32fb42a", "index": 62, "guid": "cc58e868-7934-40a2-a350-13ad47e86a56", "isActive": true, "balance": "$3,734.05", "picture": "http://placehold.it/32x32", "age": 33, "eyeColor": "green", "name": { "first": "Kris", "last": "Cotton" }, "company": "CORPORANA", "email": "kris.cotton@corporana.biz", "phone": "+1 (873) 412-2513", "address": "650 Bushwick Court, Malott, Wisconsin, 9739", "about": "Aliquip cupidatat exercitation exercitation consectetur. Sit id excepteur ea ut laborum irure ullamco laborum irure reprehenderit nisi aute eu. Ipsum do anim ea veniam do amet pariatur. Lorem consectetur labore deserunt anim deserunt aute.\r\n", "registered": "Thursday, February 20, 2014 7:18 AM", "latitude": 41.787092, "longitude": -44.032192, "tags": [ "ex", "incididunt", "ut", "cupidatat", "commodo", "commodo", "occaecat" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Angela Middleton" }, { "id": 1, "name": "Hicks Douglas" }, { "id": 2, "name": "Shaffer West" } ], "greeting": "Hello, Kris! You have 8 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821c20dda84da819450", "index": 63, "guid": "6ecab19a-0268-4d43-ad43-af2e4941b2e7", "isActive": false, "balance": "$2,748.00", "picture": "http://placehold.it/32x32", "age": 33, "eyeColor": "green", "name": { "first": "William", "last": "Haney" }, "company": "PROSURE", "email": "william.haney@prosure.co.uk", "phone": "+1 (890) 508-3193", "address": "930 Hopkins Street, Bluetown, American Samoa, 9860", "about": "Ad aute aliquip eiusmod tempor ullamco. Et ipsum consequat consequat magna do fugiat sint proident nostrud ad fugiat commodo dolor. Est anim do laboris id esse minim do voluptate occaecat nulla esse. Veniam sit dolore aliqua pariatur quis commodo enim nisi sint excepteur pariatur.\r\n", "registered": "Friday, January 10, 2014 2:42 PM", "latitude": 70.057151, "longitude": -46.509685, "tags": [ "pariatur", "est", "adipisicing", "aute", "in", "ex", "eu" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Aida Lindsey" }, { "id": 1, "name": "Harper Roberson" }, { "id": 2, "name": "Flora Woods" } ], "greeting": "Hello, William! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8219387ab6d8ebd8c1d", "index": 64, "guid": "732dfcb2-f8ab-44bf-a11b-d98f5b589993", "isActive": true, "balance": "$1,010.25", "picture": "http://placehold.it/32x32", "age": 26, "eyeColor": "green", "name": { "first": "Barrera", "last": "Sellers" }, "company": "KLUGGER", "email": "barrera.sellers@klugger.tv", "phone": "+1 (968) 510-3228", "address": "954 Verona Place, Homeworth, Louisiana, 6862", "about": "Lorem ex voluptate cupidatat minim officia voluptate enim proident qui mollit dolore ipsum. Non consectetur adipisicing quis consectetur. Non est Lorem ad qui nostrud aute aliqua labore exercitation ea aliquip irure dolor nisi. Excepteur anim ex exercitation velit adipisicing qui excepteur enim culpa consequat sint. Velit consectetur velit culpa eu sint irure culpa consequat anim incididunt ad amet excepteur. Non est anim id sint ipsum id officia dolor commodo dolore labore consectetur.\r\n", "registered": "Sunday, September 14, 2014 1:44 AM", "latitude": -88.561319, "longitude": -44.881241, "tags": [ "aliquip", "eiusmod", "nisi", "aliquip", "minim", "ullamco", "commodo" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Bond Goff" }, { "id": 1, "name": "Cathleen Hatfield" }, { "id": 2, "name": "Pansy Burke" } ], "greeting": "Hello, Barrera! You have 8 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821ab4d9564c853db57", "index": 65, "guid": "bba298e6-ebca-4334-afe9-91807ed1b672", "isActive": true, "balance": "$2,345.80", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "brown", "name": { "first": "Mullen", "last": "Stephenson" }, "company": "POLARIUM", "email": "mullen.stephenson@polarium.name", "phone": "+1 (935) 461-2692", "address": "228 Court Square, Beaulieu, Kansas, 9445", "about": "Ex magna proident do dolore nostrud aliqua aute dolore enim mollit consectetur sunt pariatur. Ex id duis enim duis laborum do tempor proident exercitation duis. Aute dolor cillum anim incididunt voluptate. Qui proident consectetur sit laboris ex enim excepteur qui.\r\n", "registered": "Thursday, May 1, 2014 7:57 PM", "latitude": 34.294733, "longitude": 138.270754, "tags": [ "minim", "veniam", "do", "consequat", "esse", "sit", "do" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Bobbi Pate" }, { "id": 1, "name": "Moran Griffith" }, { "id": 2, "name": "Marian Hopkins" } ], "greeting": "Hello, Mullen! You have 7 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8218eb53a92791a3185", "index": 66, "guid": "d297bed2-0986-4d22-b120-0e04c253fb34", "isActive": false, "balance": "$2,586.70", "picture": "http://placehold.it/32x32", "age": 22, "eyeColor": "brown", "name": { "first": "Leigh", "last": "Kidd" }, "company": "SUNCLIPSE", "email": "leigh.kidd@sunclipse.me", "phone": "+1 (870) 427-3520", "address": "156 Keen Court, Chamizal, Indiana, 4250", "about": "Ut sunt elit irure eiusmod aliquip consectetur in. Dolore id exercitation irure consectetur. Pariatur occaecat cillum nulla cillum esse deserunt minim consectetur aliqua duis eiusmod. Ea proident aliquip cillum ullamco duis elit Lorem dolore aliqua. Do fugiat culpa reprehenderit ea eu non enim.\r\n", "registered": "Wednesday, January 15, 2014 1:57 AM", "latitude": 61.842523, "longitude": -56.422447, "tags": [ "non", "non", "incididunt", "elit", "aliqua", "proident", "nostrud" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Jean Burns" }, { "id": 1, "name": "Patel Wilkinson" }, { "id": 2, "name": "Lillie Lane" } ], "greeting": "Hello, Leigh! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8211c12bb8d837e265b", "index": 67, "guid": "6560e2f0-6bd2-4e19-bcd1-35297f162890", "isActive": false, "balance": "$2,040.59", "picture": "http://placehold.it/32x32", "age": 29, "eyeColor": "green", "name": { "first": "Perry", "last": "Leonard" }, "company": "CANDECOR", "email": "perry.leonard@candecor.us", "phone": "+1 (945) 556-2907", "address": "359 Barbey Street, Grandview, Alaska, 9082", "about": "Dolor fugiat consequat reprehenderit duis duis ex consectetur ea non ut. Irure et elit et mollit consequat dolor exercitation exercitation deserunt culpa mollit nulla. Est sunt deserunt incididunt exercitation eu aliqua qui elit labore id in eu ex.\r\n", "registered": "Tuesday, August 26, 2014 11:34 PM", "latitude": -67.974417, "longitude": 97.189082, "tags": [ "sit", "ex", "ullamco", "exercitation", "adipisicing", "non", "laboris" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Alissa Ramsey" }, { "id": 1, "name": "Adela Bell" }, { "id": 2, "name": "Pearl Henderson" } ], "greeting": "Hello, Perry! You have 9 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa8219a0b8e44380bd954", "index": 68, "guid": "4aa2bec3-3eaa-464f-9577-27f6c65e64b7", "isActive": false, "balance": "$3,911.59", "picture": "http://placehold.it/32x32", "age": 22, "eyeColor": "blue", "name": { "first": "Barbra", "last": "Mejia" }, "company": "ANIXANG", "email": "barbra.mejia@anixang.ca", "phone": "+1 (987) 517-2550", "address": "635 Franklin Street, Allensworth, Florida, 1895", "about": "Aliqua tempor excepteur velit do exercitation laborum commodo laboris aliqua nostrud. Aute aliquip nisi nulla labore id veniam ad voluptate non eiusmod minim mollit. Minim incididunt nostrud sint ex.\r\n", "registered": "Thursday, January 16, 2014 11:04 PM", "latitude": 44.320545, "longitude": -61.392889, "tags": [ "cupidatat", "excepteur", "eu", "consectetur", "fugiat", "aliquip", "deserunt" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Potts Church" }, { "id": 1, "name": "Dianna Valentine" }, { "id": 2, "name": "Valeria Whitney" } ], "greeting": "Hello, Barbra! You have 9 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821b618d050a076972c", "index": 69, "guid": "ef47a627-c517-4f5a-931b-d67c8a18614b", "isActive": false, "balance": "$1,771.53", "picture": "http://placehold.it/32x32", "age": 32, "eyeColor": "brown", "name": { "first": "Gonzales", "last": "Walker" }, "company": "EVIDENDS", "email": "gonzales.walker@evidends.org", "phone": "+1 (984) 510-3347", "address": "336 Pershing Loop, Croom, Georgia, 9128", "about": "Quis reprehenderit consectetur ad aliqua ad amet incididunt aute irure Lorem veniam. Consequat consequat ut reprehenderit officia cupidatat irure aliqua nostrud veniam velit aliquip magna elit. Ullamco amet nostrud est cupidatat adipisicing fugiat magna anim eu occaecat incididunt. Ut ex ut quis veniam nulla ad ea magna elit incididunt Lorem anim ipsum elit. Aliqua laborum officia magna aliqua. Est quis adipisicing cillum cupidatat sunt velit fugiat mollit exercitation cupidatat sit.\r\n", "registered": "Saturday, June 21, 2014 9:02 PM", "latitude": -64.407501, "longitude": -157.742045, "tags": [ "pariatur", "minim", "consectetur", "consequat", "ad", "aliqua", "ut" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Tina Patterson" }, { "id": 1, "name": "Gabriela Nielsen" }, { "id": 2, "name": "Amalia Mueller" } ], "greeting": "Hello, Gonzales! You have 8 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8210426ced41d67a58b", "index": 70, "guid": "5d045ae8-c32c-43f6-b404-30a943205f5e", "isActive": true, "balance": "$2,054.02", "picture": "http://placehold.it/32x32", "age": 36, "eyeColor": "green", "name": { "first": "Clarissa", "last": "Madden" }, "company": "NIQUENT", "email": "clarissa.madden@niquent.biz", "phone": "+1 (910) 480-3769", "address": "637 Scholes Street, Needmore, Alabama, 9344", "about": "Sunt nulla ad aliquip incididunt ullamco culpa laboris. Consectetur non enim in officia incididunt deserunt. Quis est consequat ipsum ad. Pariatur nostrud voluptate magna occaecat minim irure sint nostrud voluptate ea labore ullamco quis. Mollit veniam consequat commodo sunt.\r\n", "registered": "Wednesday, January 8, 2014 4:02 AM", "latitude": 46.115788, "longitude": 79.731859, "tags": [ "reprehenderit", "nisi", "id", "consectetur", "sunt", "nostrud", "laboris" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Mandy Buckner" }, { "id": 1, "name": "Hickman Brown" }, { "id": 2, "name": "Kemp Mclaughlin" } ], "greeting": "Hello, Clarissa! You have 8 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8211049b550404f3ce5", "index": 71, "guid": "2f9a6201-6728-4509-8d88-c0a614649311", "isActive": true, "balance": "$1,324.10", "picture": "http://placehold.it/32x32", "age": 22, "eyeColor": "blue", "name": { "first": "Joyce", "last": "Callahan" }, "company": "OPTYK", "email": "joyce.callahan@optyk.io", "phone": "+1 (893) 544-2327", "address": "567 Crystal Street, Freetown, District Of Columbia, 8319", "about": "Deserunt in nisi id consequat qui. Sunt velit proident id culpa incididunt velit aute dolore labore. Deserunt qui ea adipisicing cillum irure sit sunt excepteur quis et quis nulla dolore pariatur. Consequat ut et veniam dolor velit nulla veniam fugiat commodo velit fugiat ad veniam ad. Anim consequat labore deserunt eiusmod esse. Laborum labore eu et incididunt commodo dolore eiusmod occaecat. Nisi elit duis mollit cillum id enim.\r\n", "registered": "Tuesday, February 4, 2014 2:38 AM", "latitude": -76.437449, "longitude": -169.66079, "tags": [ "ullamco", "non", "officia", "eiusmod", "duis", "cupidatat", "mollit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Hendricks Logan" }, { "id": 1, "name": "Dolly Baird" }, { "id": 2, "name": "Wendi Wallace" } ], "greeting": "Hello, Joyce! You have 6 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa82176dab97e42086b90", "index": 72, "guid": "9680920d-9303-471b-849e-c30e38e06d45", "isActive": false, "balance": "$2,696.40", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "blue", "name": { "first": "Felecia", "last": "Gonzalez" }, "company": "CORIANDER", "email": "felecia.gonzalez@coriander.net", "phone": "+1 (923) 575-3582", "address": "315 Borinquen Pl, Rosburg, Pennsylvania, 9619", "about": "Laboris officia exercitation duis aliqua in sint consectetur. Ad ut labore ipsum ipsum ut culpa labore irure aute. Et exercitation tempor do dolor culpa ad ipsum pariatur adipisicing fugiat. Incididunt amet incididunt minim quis cupidatat pariatur enim fugiat reprehenderit est ipsum labore.\r\n", "registered": "Monday, January 20, 2014 11:59 PM", "latitude": -36.201421, "longitude": 162.994705, "tags": [ "cillum", "reprehenderit", "non", "est", "tempor", "exercitation", "fugiat" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Gould Waters" }, { "id": 1, "name": "Ramona Coffey" }, { "id": 2, "name": "Taylor Byers" } ], "greeting": "Hello, Felecia! You have 10 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821df55849ccd4ca74c", "index": 73, "guid": "01b7c49a-6dac-4b65-906b-4483de07a5e8", "isActive": true, "balance": "$2,037.32", "picture": "http://placehold.it/32x32", "age": 27, "eyeColor": "blue", "name": { "first": "Stanton", "last": "Rutledge" }, "company": "EXOBLUE", "email": "stanton.rutledge@exoblue.com", "phone": "+1 (817) 408-2566", "address": "741 Crooke Avenue, Newry, Nevada, 8555", "about": "Commodo adipisicing ea ipsum non irure quis excepteur. Qui laborum qui sit cupidatat dolore consectetur tempor esse occaecat cillum qui. Dolore in amet ea ex proident do nulla.\r\n", "registered": "Thursday, August 28, 2014 8:35 PM", "latitude": 87.299409, "longitude": 22.167535, "tags": [ "commodo", "aliqua", "irure", "ea", "dolor", "aute", "non" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Best Klein" }, { "id": 1, "name": "Dickerson Mcknight" }, { "id": 2, "name": "Gayle Washington" } ], "greeting": "Hello, Stanton! You have 6 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821f3516c63c6fa05e8", "index": 74, "guid": "c299ecf4-0528-4280-b6b4-909801b1e9dd", "isActive": true, "balance": "$1,695.83", "picture": "http://placehold.it/32x32", "age": 27, "eyeColor": "green", "name": { "first": "Thelma", "last": "Barnett" }, "company": "DUOFLEX", "email": "thelma.barnett@duoflex.biz", "phone": "+1 (947) 416-2234", "address": "325 Tampa Court, Zortman, Illinois, 3609", "about": "Exercitation esse culpa enim anim. Cillum voluptate quis tempor excepteur elit aliquip consequat officia cupidatat laborum ad cupidatat. Mollit exercitation esse fugiat do do id irure tempor et duis. Ut sit reprehenderit velit sit eiusmod in officia nisi commodo magna id in. Lorem sint velit adipisicing aute.\r\n", "registered": "Tuesday, April 22, 2014 5:11 AM", "latitude": 20.61329, "longitude": 48.592063, "tags": [ "et", "excepteur", "nostrud", "ullamco", "quis", "occaecat", "in" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Amy Parks" }, { "id": 1, "name": "Greene Nunez" }, { "id": 2, "name": "Janna Roth" } ], "greeting": "Hello, Thelma! You have 6 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821637950981c0fa4c8", "index": 75, "guid": "bc58930c-58d8-4223-8a98-20295ac61c4e", "isActive": true, "balance": "$1,836.33", "picture": "http://placehold.it/32x32", "age": 23, "eyeColor": "green", "name": { "first": "Nunez", "last": "Freeman" }, "company": "ZILCH", "email": "nunez.freeman@zilch.co.uk", "phone": "+1 (959) 439-2497", "address": "729 Varick Street, Marne, Tennessee, 1687", "about": "Sunt nulla ipsum non in nulla. Dolore in fugiat in laborum veniam enim dolore cupidatat. Elit tempor ullamco id in minim excepteur et aute ut mollit aliquip qui consequat. Duis esse magna culpa aliqua ad ipsum deserunt laborum amet sint. Quis voluptate quis quis aute.\r\n", "registered": "Monday, August 11, 2014 5:27 PM", "latitude": 85.57657, "longitude": -145.772132, "tags": [ "ullamco", "tempor", "et", "non", "magna", "non", "ex" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Latasha Randolph" }, { "id": 1, "name": "Neva Porter" }, { "id": 2, "name": "Drake Nicholson" } ], "greeting": "Hello, Nunez! You have 10 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821ed9d29afc180b718", "index": 76, "guid": "45fb73c9-30e9-4e61-b78d-41c8f79a282e", "isActive": false, "balance": "$1,298.91", "picture": "http://placehold.it/32x32", "age": 25, "eyeColor": "green", "name": { "first": "Bentley", "last": "Reyes" }, "company": "ZYPLE", "email": "bentley.reyes@zyple.tv", "phone": "+1 (919) 510-3585", "address": "227 Oakland Place, Farmers, Iowa, 9827", "about": "Cillum proident eiusmod id amet anim laboris elit sint ea et non. Aliqua et reprehenderit amet est ea fugiat aute. Minim aute aliquip nulla elit. Duis ad exercitation excepteur laborum anim occaecat nulla sunt. Quis pariatur nulla Lorem consectetur proident sunt amet est et elit eu sunt. Ut irure voluptate consequat amet sint deserunt quis. Incididunt ea culpa commodo fugiat qui veniam quis Lorem incididunt dolor.\r\n", "registered": "Wednesday, April 9, 2014 1:19 AM", "latitude": -82.587336, "longitude": -74.931056, "tags": [ "dolore", "nisi", "exercitation", "ullamco", "excepteur", "qui", "ut" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Nadia Pearson" }, { "id": 1, "name": "Reba Frost" }, { "id": 2, "name": "Lilia Mcbride" } ], "greeting": "Hello, Bentley! You have 7 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821a936a115315db0b9", "index": 77, "guid": "a1b82517-f6a6-437a-9f2d-2c0043591cfa", "isActive": false, "balance": "$1,016.00", "picture": "http://placehold.it/32x32", "age": 22, "eyeColor": "blue", "name": { "first": "Morales", "last": "Shields" }, "company": "CORECOM", "email": "morales.shields@corecom.name", "phone": "+1 (814) 407-2079", "address": "472 Coleridge Street, Shasta, Massachusetts, 501", "about": "Ipsum elit adipisicing nostrud quis ut nisi ullamco consectetur ex laborum reprehenderit anim magna fugiat. In nulla dolor esse exercitation elit exercitation. Laborum sit esse velit magna ea irure est ut velit id nisi sint qui. Laborum voluptate amet cupidatat laborum aute in id duis irure. Enim aliqua enim magna ut consequat. Tempor est commodo elit eu et ut occaecat culpa ex ex. Ullamco cillum sint ipsum tempor anim ullamco sit pariatur excepteur dolor mollit ad quis.\r\n", "registered": "Saturday, July 5, 2014 5:10 AM", "latitude": -20.583102, "longitude": -23.34973, "tags": [ "nulla", "proident", "enim", "dolor", "elit", "excepteur", "dolore" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Lacey Perry" }, { "id": 1, "name": "Stokes Foley" }, { "id": 2, "name": "Trisha Morales" } ], "greeting": "Hello, Morales! You have 6 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa8214ceb22176ac554f9", "index": 78, "guid": "1aa9258a-f508-4e73-adb9-5d2cce0dff79", "isActive": true, "balance": "$1,100.42", "picture": "http://placehold.it/32x32", "age": 21, "eyeColor": "blue", "name": { "first": "Chandra", "last": "Patel" }, "company": "PROVIDCO", "email": "chandra.patel@providco.me", "phone": "+1 (875) 430-3869", "address": "543 Bainbridge Street, Kidder, Arkansas, 3624", "about": "Magna ad tempor commodo esse labore mollit sit. Duis laborum excepteur dolor officia exercitation. Elit sunt ex voluptate anim consectetur in ullamco mollit qui non. Cupidatat ipsum et cupidatat cupidatat consequat nulla Lorem culpa minim dolore cupidatat ipsum sint.\r\n", "registered": "Sunday, June 29, 2014 1:41 AM", "latitude": 55.150075, "longitude": -26.185265, "tags": [ "amet", "consectetur", "occaecat", "cillum", "enim", "ut", "occaecat" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Geneva Snider" }, { "id": 1, "name": "Rose Michael" }, { "id": 2, "name": "Kirkland Mason" } ], "greeting": "Hello, Chandra! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821050884ba49ad868d", "index": 79, "guid": "88a0d238-e3c9-4b1a-8d19-08c622f9eaae", "isActive": false, "balance": "$1,263.98", "picture": "http://placehold.it/32x32", "age": 30, "eyeColor": "green", "name": { "first": "Elsa", "last": "Chambers" }, "company": "VICON", "email": "elsa.chambers@vicon.us", "phone": "+1 (940) 436-3956", "address": "190 Albemarle Terrace, Sheatown, Hawaii, 2654", "about": "Est do esse elit consectetur elit. Aliqua esse duis est sint non. Enim minim laborum ad duis. Proident laboris quis ea amet nulla occaecat ex laboris duis ut velit.\r\n", "registered": "Saturday, April 19, 2014 3:28 AM", "latitude": 62.679122, "longitude": 95.229313, "tags": [ "magna", "ipsum", "Lorem", "ut", "duis", "elit", "sit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Laurie Fuentes" }, { "id": 1, "name": "Juana Blevins" }, { "id": 2, "name": "Virginia Hester" } ], "greeting": "Hello, Elsa! You have 6 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821eb0dd28cfdc525a9", "index": 80, "guid": "e1574006-8d49-4399-8b59-92eaa0ed2be1", "isActive": true, "balance": "$2,395.40", "picture": "http://placehold.it/32x32", "age": 23, "eyeColor": "brown", "name": { "first": "Morris", "last": "Trujillo" }, "company": "ZOGAK", "email": "morris.trujillo@zogak.ca", "phone": "+1 (919) 553-3453", "address": "127 Clove Road, Keyport, Puerto Rico, 5969", "about": "Minim do veniam non elit excepteur enim sunt excepteur non amet. Duis eu consequat adipisicing nostrud ad cupidatat tempor occaecat. Ea id consectetur non anim. Irure dolor qui excepteur anim excepteur adipisicing ea sint id aliquip consequat eu id. Ea exercitation officia nostrud ipsum. Voluptate sunt irure aliqua tempor pariatur irure labore ea amet. Quis reprehenderit aliqua pariatur esse id anim laborum ullamco amet.\r\n", "registered": "Sunday, February 2, 2014 12:52 PM", "latitude": -86.963921, "longitude": -157.636932, "tags": [ "occaecat", "amet", "ex", "ea", "exercitation", "aliqua", "elit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Lester Watkins" }, { "id": 1, "name": "Kellie Clayton" }, { "id": 2, "name": "Valencia Edwards" } ], "greeting": "Hello, Morris! You have 6 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821f5f0ae13a893ce36", "index": 81, "guid": "9dd75e1e-8f3c-473e-800e-518254719ca1", "isActive": true, "balance": "$1,956.52", "picture": "http://placehold.it/32x32", "age": 36, "eyeColor": "brown", "name": { "first": "Gwen", "last": "Park" }, "company": "INTERGEEK", "email": "gwen.park@intergeek.org", "phone": "+1 (830) 581-3561", "address": "514 Beayer Place, Maxville, New Hampshire, 4162", "about": "Consequat labore commodo nulla veniam aliqua. Tempor ipsum officia exercitation amet elit dolor labore eu voluptate cillum reprehenderit exercitation proident. Id cillum laborum cupidatat reprehenderit anim cillum exercitation culpa aliqua deserunt cupidatat. In proident ea eu nisi est enim. Quis dolor sit aliquip reprehenderit in id ipsum proident duis. Sit eu sint nisi velit. Minim elit nostrud aliquip anim.\r\n", "registered": "Wednesday, September 17, 2014 9:38 AM", "latitude": -66.199245, "longitude": -52.824656, "tags": [ "ex", "magna", "incididunt", "veniam", "mollit", "eu", "sunt" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Nieves Potter" }, { "id": 1, "name": "Welch Reeves" }, { "id": 2, "name": "Hardy Forbes" } ], "greeting": "Hello, Gwen! You have 8 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821a20d620a7ec793ac", "index": 82, "guid": "1ae142ff-8d6a-4e72-a3f1-3ac4349ad0b7", "isActive": false, "balance": "$2,560.11", "picture": "http://placehold.it/32x32", "age": 31, "eyeColor": "green", "name": { "first": "Erickson", "last": "Lancaster" }, "company": "SCENTRIC", "email": "erickson.lancaster@scentric.biz", "phone": "+1 (980) 465-3465", "address": "412 Jackson Street, Chumuckla, South Carolina, 3216", "about": "Id laborum consectetur pariatur non nulla incididunt labore magna minim duis. Ipsum laboris deserunt velit sunt voluptate. Laboris ipsum duis aliquip non aliqua. Commodo veniam mollit voluptate elit nisi nostrud laboris dolor tempor pariatur duis laborum.\r\n", "registered": "Wednesday, May 7, 2014 8:50 PM", "latitude": -57.590749, "longitude": 117.31662, "tags": [ "ad", "elit", "non", "fugiat", "laborum", "incididunt", "enim" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Reeves Nguyen" }, { "id": 1, "name": "Jo Christian" }, { "id": 2, "name": "Myers Lowe" } ], "greeting": "Hello, Erickson! You have 10 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa8213747fd3443999762", "index": 83, "guid": "ec870637-4e65-49c4-abfb-7b99c2d2f094", "isActive": true, "balance": "$2,079.21", "picture": "http://placehold.it/32x32", "age": 21, "eyeColor": "blue", "name": { "first": "Saundra", "last": "Kemp" }, "company": "LUNCHPOD", "email": "saundra.kemp@lunchpod.io", "phone": "+1 (950) 433-2550", "address": "593 Stuart Street, Edenburg, Texas, 6251", "about": "Ipsum proident et duis reprehenderit in minim in sint dolore enim aute excepteur cillum eiusmod. Do nulla deserunt quis adipisicing sunt reprehenderit. Dolor pariatur tempor sint ullamco.\r\n", "registered": "Tuesday, June 24, 2014 6:44 AM", "latitude": 81.565149, "longitude": -92.061448, "tags": [ "magna", "commodo", "esse", "ad", "labore", "amet", "mollit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Tommie Mays" }, { "id": 1, "name": "Lou Hubbard" }, { "id": 2, "name": "Jenna Gentry" } ], "greeting": "Hello, Saundra! You have 9 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821524a5fd2a5f037a2", "index": 84, "guid": "e7894fe9-efd4-44ae-afd5-49bfde09b000", "isActive": true, "balance": "$2,320.08", "picture": "http://placehold.it/32x32", "age": 37, "eyeColor": "green", "name": { "first": "Christensen", "last": "Wolf" }, "company": "GLUKGLUK", "email": "christensen.wolf@glukgluk.net", "phone": "+1 (937) 519-3107", "address": "460 Porter Avenue, Irwin, South Dakota, 2498", "about": "Ullamco reprehenderit non aliquip amet do deserunt nostrud ea deserunt fugiat. Commodo pariatur est officia dolor dolore in excepteur pariatur laborum ut. Occaecat cillum ullamco nulla eu esse non nisi pariatur ipsum amet do ea ad culpa. Excepteur esse elit laborum deserunt ad consequat. Culpa esse esse nostrud commodo laborum officia sint ea mollit. Dolor culpa pariatur fugiat cillum quis proident non enim esse pariatur duis adipisicing amet. Consequat minim aliqua enim excepteur.\r\n", "registered": "Saturday, February 8, 2014 10:20 PM", "latitude": 22.478522, "longitude": 30.070646, "tags": [ "quis", "ad", "adipisicing", "exercitation", "non", "eu", "anim" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Bright Moon" }, { "id": 1, "name": "Stephenson Sears" }, { "id": 2, "name": "Fletcher Swanson" } ], "greeting": "Hello, Christensen! You have 9 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa82160fa0826e90b747b", "index": 85, "guid": "af08cc83-e8c9-4bcd-84b3-2f3251cf9a02", "isActive": true, "balance": "$2,575.60", "picture": "http://placehold.it/32x32", "age": 29, "eyeColor": "brown", "name": { "first": "Weaver", "last": "Parker" }, "company": "RETROTEX", "email": "weaver.parker@retrotex.com", "phone": "+1 (951) 411-2545", "address": "560 Madison Place, Sidman, Ohio, 5153", "about": "Reprehenderit esse dolor tempor consectetur occaecat exercitation consectetur irure commodo. Et eiusmod aute ipsum eu commodo qui id anim proident. Excepteur labore laboris aliqua incididunt ut nisi consequat deserunt dolore officia velit sint consectetur. Laboris sint minim mollit duis. Excepteur nostrud incididunt aute consequat ad magna eu quis. Id dolor eu aliqua deserunt cillum sint ea et nostrud. Lorem amet cillum nulla tempor commodo mollit aliquip do est enim enim.\r\n", "registered": "Thursday, February 6, 2014 12:55 PM", "latitude": 87.778566, "longitude": -122.687026, "tags": [ "eu", "voluptate", "commodo", "magna", "ullamco", "nulla", "ea" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Ratliff Mckinney" }, { "id": 1, "name": "Walker Frye" }, { "id": 2, "name": "Mcgowan Daniel" } ], "greeting": "Hello, Weaver! You have 5 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8217a543d20bd4b10c1", "index": 86, "guid": "5b670ab7-4ee6-4b8e-b379-4e1849b6e329", "isActive": false, "balance": "$3,114.39", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "green", "name": { "first": "Annabelle", "last": "Sanders" }, "company": "PHORMULA", "email": "annabelle.sanders@phormula.biz", "phone": "+1 (982) 489-2678", "address": "970 Llama Court, Moraida, Maine, 8694", "about": "Nostrud adipisicing magna nulla magna voluptate duis eu voluptate cupidatat ut dolore excepteur esse dolor. Aliquip exercitation occaecat amet excepteur sit. Velit adipisicing esse labore veniam duis ullamco in ea. Adipisicing eiusmod cillum veniam nostrud sint laboris sit id officia. Esse esse anim sint do ea id. Esse ipsum mollit sit laborum nostrud mollit nulla id.\r\n", "registered": "Tuesday, January 7, 2014 7:34 AM", "latitude": 9.515348, "longitude": -99.138606, "tags": [ "ipsum", "sint", "dolor", "laborum", "est", "consequat", "magna" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Juliet Clements" }, { "id": 1, "name": "Jeannine Pruitt" }, { "id": 2, "name": "Chambers Warren" } ], "greeting": "Hello, Annabelle! You have 7 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa82179c1fe89e1ccec4d", "index": 87, "guid": "31ecaae4-6443-4c00-a20d-82100c49b488", "isActive": true, "balance": "$3,803.83", "picture": "http://placehold.it/32x32", "age": 40, "eyeColor": "blue", "name": { "first": "Kelley", "last": "Miles" }, "company": "AQUASURE", "email": "kelley.miles@aquasure.co.uk", "phone": "+1 (819) 529-2967", "address": "680 Monument Walk, Wakulla, Vermont, 8903", "about": "Ea sint dolor nostrud dolor id commodo esse nisi. Reprehenderit minim dolore nostrud sint incididunt excepteur reprehenderit enim velit velit. Proident officia velit Lorem dolore ullamco occaecat.\r\n", "registered": "Saturday, May 3, 2014 12:23 AM", "latitude": 73.767872, "longitude": -118.631186, "tags": [ "consectetur", "irure", "nostrud", "nostrud", "aliquip", "quis", "reprehenderit" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Maynard Townsend" }, { "id": 1, "name": "Carlene Molina" }, { "id": 2, "name": "Mai Bentley" } ], "greeting": "Hello, Kelley! You have 7 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8218de20c1f1e1e93fa", "index": 88, "guid": "8f6b0aac-f2ba-45aa-a7c8-76c413bdeb7a", "isActive": true, "balance": "$1,898.86", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "brown", "name": { "first": "Mckay", "last": "Velasquez" }, "company": "NORALEX", "email": "mckay.velasquez@noralex.tv", "phone": "+1 (973) 599-3463", "address": "152 Roebling Street, Mathews, Delaware, 7958", "about": "Nostrud esse dolor excepteur cillum aliqua. Ea nulla elit minim sint non culpa id. Et ullamco aute laborum incididunt sint quis. Tempor tempor aliqua in sunt. Minim elit dolor quis excepteur exercitation adipisicing. Pariatur incididunt tempor irure proident exercitation deserunt sint.\r\n", "registered": "Monday, August 4, 2014 5:00 AM", "latitude": 81.463276, "longitude": -66.291508, "tags": [ "nisi", "anim", "qui", "est", "qui", "ipsum", "ullamco" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Myrna Rollins" }, { "id": 1, "name": "Tricia Gilliam" }, { "id": 2, "name": "Collins Obrien" } ], "greeting": "Hello, Mckay! You have 10 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821b3490524365bc954", "index": 89, "guid": "43825015-fed6-40c8-bd80-8aaf228067f9", "isActive": false, "balance": "$3,035.21", "picture": "http://placehold.it/32x32", "age": 40, "eyeColor": "blue", "name": { "first": "Brandy", "last": "Hayden" }, "company": "OMNIGOG", "email": "brandy.hayden@omnigog.name", "phone": "+1 (827) 481-2334", "address": "537 Pioneer Street, Saticoy, Palau, 803", "about": "Ea velit consectetur ipsum ut elit pariatur id labore sunt eu incididunt est aliqua. Veniam esse officia do non officia cupidatat proident id officia esse tempor non mollit dolore. Elit voluptate nulla exercitation laboris ex ad irure est do enim aute velit aute. Cillum adipisicing nisi dolor velit duis ad fugiat deserunt non commodo Lorem fugiat sint qui. Aute consectetur magna incididunt tempor in esse consectetur magna qui sit. Culpa consequat laborum duis adipisicing dolor in deserunt ut velit ea ex dolore ullamco esse.\r\n", "registered": "Wednesday, February 12, 2014 7:32 PM", "latitude": 4.319892, "longitude": 81.048442, "tags": [ "labore", "ullamco", "commodo", "quis", "aute", "nulla", "do" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Riggs Flynn" }, { "id": 1, "name": "Kidd Guerrero" }, { "id": 2, "name": "Rosario Wade" } ], "greeting": "Hello, Brandy! You have 10 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8211b737d086264c9a9", "index": 90, "guid": "ec5fe190-d16f-4728-bce1-c5140852c583", "isActive": true, "balance": "$2,932.98", "picture": "http://placehold.it/32x32", "age": 28, "eyeColor": "green", "name": { "first": "Sonia", "last": "Orr" }, "company": "MUSANPOLY", "email": "sonia.orr@musanpoly.me", "phone": "+1 (822) 422-2010", "address": "908 Dekalb Avenue, Elfrida, Arizona, 6925", "about": "Ut cillum ex irure amet aliquip voluptate Lorem fugiat reprehenderit sunt reprehenderit quis. Nulla laborum sunt elit ad labore ut cupidatat cillum eiusmod est. Ea irure amet excepteur mollit eu ipsum id adipisicing occaecat. Cupidatat sunt do veniam esse enim sint qui voluptate sint. Qui officia ad cupidatat mollit laboris. Duis tempor fugiat ea mollit cupidatat exercitation sunt incididunt.\r\n", "registered": "Thursday, September 25, 2014 8:21 PM", "latitude": 71.876999, "longitude": 79.322401, "tags": [ "pariatur", "sit", "culpa", "dolore", "cupidatat", "minim", "cillum" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Morgan Pittman" }, { "id": 1, "name": "Bullock Cannon" }, { "id": 2, "name": "Lakeisha Lynch" } ], "greeting": "Hello, Sonia! You have 9 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821b271c92236e5e9b0", "index": 91, "guid": "57cff12c-2a18-48c2-b15a-3c393de707b6", "isActive": false, "balance": "$1,874.97", "picture": "http://placehold.it/32x32", "age": 40, "eyeColor": "green", "name": { "first": "Stephens", "last": "Whitaker" }, "company": "EARTHPLEX", "email": "stephens.whitaker@earthplex.us", "phone": "+1 (960) 419-2183", "address": "368 Division Avenue, Fivepointville, Colorado, 8609", "about": "Do aliquip laboris irure consectetur esse reprehenderit. Cillum ex deserunt fugiat ut dolore excepteur culpa eiusmod sit ullamco velit consequat consequat aliquip. Nostrud officia est enim velit fugiat laboris.\r\n", "registered": "Monday, May 26, 2014 8:04 PM", "latitude": 7.153481, "longitude": 100.823578, "tags": [ "laborum", "irure", "dolore", "enim", "nisi", "cillum", "deserunt" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Perkins Campos" }, { "id": 1, "name": "Murray Randall" }, { "id": 2, "name": "Wallace Blackwell" } ], "greeting": "Hello, Stephens! You have 7 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821c115ee94a728efa4", "index": 92, "guid": "7bbe7ace-73f9-4d25-8f20-b50f4b9d4e60", "isActive": true, "balance": "$1,168.18", "picture": "http://placehold.it/32x32", "age": 33, "eyeColor": "green", "name": { "first": "Shepard", "last": "Sanchez" }, "company": "YOGASM", "email": "shepard.sanchez@yogasm.ca", "phone": "+1 (959) 436-3299", "address": "154 Seeley Street, Witmer, Missouri, 994", "about": "Adipisicing ut id nulla occaecat enim officia reprehenderit non magna dolor Lorem. Culpa ad proident duis cupidatat nostrud occaecat esse elit pariatur quis Lorem. Velit exercitation anim dolore nisi labore consequat cupidatat magna nostrud sint ut deserunt enim.\r\n", "registered": "Saturday, February 22, 2014 10:23 PM", "latitude": -81.429217, "longitude": -27.374426, "tags": [ "aliqua", "minim", "consequat", "aliqua", "qui", "proident", "consequat" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Sara Bruce" }, { "id": 1, "name": "Kimberley Mcdaniel" }, { "id": 2, "name": "Tammi England" } ], "greeting": "Hello, Shepard! You have 7 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821a094fdd2592addbd", "index": 93, "guid": "69bc8858-bd55-4fa0-95f9-d2cb680a390c", "isActive": false, "balance": "$1,746.96", "picture": "http://placehold.it/32x32", "age": 35, "eyeColor": "blue", "name": { "first": "Kristy", "last": "Johnston" }, "company": "KONGLE", "email": "kristy.johnston@kongle.org", "phone": "+1 (823) 558-3033", "address": "122 Cadman Plaza, Suitland, Minnesota, 3918", "about": "Laboris excepteur ea nostrud incididunt est laborum dolor. Consequat ad duis aute proident incididunt commodo adipisicing. Enim voluptate sunt et est excepteur eiusmod commodo. Mollit fugiat reprehenderit ex ullamco magna laboris commodo mollit. Cupidatat tempor tempor minim dolore. Excepteur ipsum esse ipsum nulla.\r\n", "registered": "Wednesday, January 29, 2014 11:15 PM", "latitude": 15.335329, "longitude": -78.001472, "tags": [ "veniam", "consequat", "ex", "anim", "culpa", "ullamco", "ex" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Johns Cochran" }, { "id": 1, "name": "Sheppard Hicks" }, { "id": 2, "name": "Cervantes Donovan" } ], "greeting": "Hello, Kristy! You have 10 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821311b6242dc75f718", "index": 94, "guid": "9de76ab8-2ef7-4b46-a478-5dea8732650a", "isActive": false, "balance": "$2,549.05", "picture": "http://placehold.it/32x32", "age": 40, "eyeColor": "blue", "name": { "first": "Melendez", "last": "Golden" }, "company": "GRONK", "email": "melendez.golden@gronk.biz", "phone": "+1 (986) 553-2124", "address": "647 Broadway , Reno, Northern Mariana Islands, 9487", "about": "Aliquip pariatur deserunt culpa eu nostrud eu amet. Adipisicing elit occaecat aliqua ipsum ut. Cillum magna consectetur elit esse sint laboris duis. In ea enim aute eiusmod culpa. Labore quis sunt aliquip excepteur tempor irure amet consequat eu excepteur et occaecat.\r\n", "registered": "Monday, April 14, 2014 9:41 AM", "latitude": 55.489443, "longitude": 3.620039, "tags": [ "pariatur", "magna", "quis", "in", "irure", "amet", "esse" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Hilary Dennis" }, { "id": 1, "name": "Tyler Burgess" }, { "id": 2, "name": "Eugenia Donaldson" } ], "greeting": "Hello, Melendez! You have 9 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "543fa821c394a9871527c834", "index": 95, "guid": "ec0f31d4-7264-4649-9af9-2716082915d3", "isActive": true, "balance": "$2,810.24", "picture": "http://placehold.it/32x32", "age": 34, "eyeColor": "brown", "name": { "first": "Eleanor", "last": "Curtis" }, "company": "ZAPPIX", "email": "eleanor.curtis@zappix.io", "phone": "+1 (824) 461-3776", "address": "981 Lyme Avenue, Oneida, Marshall Islands, 6015", "about": "Commodo labore do pariatur exercitation voluptate ea velit velit qui ex duis. Commodo est excepteur ad labore aute enim eu. Adipisicing irure exercitation sint consectetur exercitation occaecat aute exercitation commodo.\r\n", "registered": "Monday, May 5, 2014 7:51 AM", "latitude": -5.604007, "longitude": -125.532894, "tags": [ "aliqua", "commodo", "non", "magna", "quis", "velit", "irure" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Monica Carr" }, { "id": 1, "name": "Coleman Simpson" }, { "id": 2, "name": "Wilma Fisher" } ], "greeting": "Hello, Eleanor! You have 7 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa821a5b5e35d24f265b3", "index": 96, "guid": "c865c0ff-8505-4d02-af0a-c5a275d03fd5", "isActive": true, "balance": "$3,192.24", "picture": "http://placehold.it/32x32", "age": 22, "eyeColor": "blue", "name": { "first": "Terrell", "last": "Greene" }, "company": "AUTOGRATE", "email": "terrell.greene@autograte.net", "phone": "+1 (933) 557-3825", "address": "435 Bridgewater Street, Fresno, New Jersey, 8124", "about": "Elit sit ut anim reprehenderit anim ipsum esse tempor aliqua id ullamco. Exercitation est velit aliquip est elit mollit magna velit. Elit eiusmod esse voluptate consectetur enim id exercitation adipisicing et laborum. Irure fugiat ut sint exercitation dolor nostrud qui mollit eiusmod cupidatat. Commodo ad dolore incididunt ex quis nostrud veniam pariatur aliquip ea reprehenderit reprehenderit.\r\n", "registered": "Sunday, September 21, 2014 3:31 AM", "latitude": 76.638623, "longitude": 147.966829, "tags": [ "aliquip", "qui", "nisi", "ut", "non", "proident", "et" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Lucile Jordan" }, { "id": 1, "name": "Bender Sheppard" }, { "id": 2, "name": "Milagros Francis" } ], "greeting": "Hello, Terrell! You have 8 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa8216cc444257e522ec0", "index": 97, "guid": "90c19881-6521-4012-aba7-f4d143953965", "isActive": false, "balance": "$1,509.96", "picture": "http://placehold.it/32x32", "age": 31, "eyeColor": "green", "name": { "first": "Holman", "last": "Hines" }, "company": "NORSUP", "email": "holman.hines@norsup.com", "phone": "+1 (925) 565-2825", "address": "902 Monroe Street, Marienthal, Virgin Islands, 2354", "about": "Eu cupidatat consectetur labore voluptate nulla non amet incididunt labore non magna tempor. Veniam et sint qui reprehenderit reprehenderit sint ut laboris elit. Pariatur in eu dolore culpa nisi laboris officia magna do velit. Cupidatat proident excepteur officia labore irure sunt elit velit dolor commodo. Minim quis sint minim non incididunt Lorem elit cupidatat adipisicing quis esse non sint et. Laborum culpa incididunt incididunt fugiat minim ex deserunt et.\r\n", "registered": "Sunday, April 27, 2014 8:05 PM", "latitude": 61.825518, "longitude": -28.393161, "tags": [ "voluptate", "veniam", "Lorem", "ex", "in", "est", "exercitation" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Cecelia Chapman" }, { "id": 1, "name": "Isabella Castaneda" }, { "id": 2, "name": "Montoya Chen" } ], "greeting": "Hello, Holman! You have 9 unread messages.", "favoriteFruit": "apple" }, { "_id": "543fa8210659aa5cdca41f7e", "index": 98, "guid": "81adf15d-24b6-454c-a75f-f5be12f6ac75", "isActive": false, "balance": "$2,564.95", "picture": "http://placehold.it/32x32", "age": 39, "eyeColor": "green", "name": { "first": "Horton", "last": "Poole" }, "company": "GROK", "email": "horton.poole@grok.biz", "phone": "+1 (908) 520-3683", "address": "141 Gatling Place, Hackneyville, Oregon, 2976", "about": "Consequat nisi reprehenderit incididunt id minim cillum. Lorem reprehenderit fugiat irure dolor excepteur velit. Est nostrud culpa ut reprehenderit in duis id voluptate pariatur voluptate. Exercitation Lorem esse exercitation Lorem esse. Excepteur mollit sit ut voluptate ipsum pariatur anim sint sunt cillum sit consequat.\r\n", "registered": "Thursday, September 18, 2014 6:11 AM", "latitude": -3.525694, "longitude": -103.351985, "tags": [ "deserunt", "voluptate", "cillum", "id", "magna", "deserunt", "incididunt" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Hope Lara" }, { "id": 1, "name": "French Garner" }, { "id": 2, "name": "Stein Sykes" } ], "greeting": "Hello, Horton! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "543fa821cf1b15f13d8c3938", "index": 99, "guid": "44533089-c11a-4656-b2d1-9ab6be887f30", "isActive": false, "balance": "$3,192.31", "picture": "http://placehold.it/32x32", "age": 37, "eyeColor": "green", "name": { "first": "Wanda", "last": "Wiggins" }, "company": "ZEPITOPE", "email": "wanda.wiggins@zepitope.co.uk", "phone": "+1 (998) 461-3780", "address": "427 Canton Court, Heil, Utah, 8283", "about": "Do officia et exercitation dolor esse. Ut nisi eiusmod dolore laborum ad ex mollit minim. Pariatur qui culpa ullamco ex eiusmod.\r\n", "registered": "Tuesday, August 26, 2014 6:59 PM", "latitude": 44.770809, "longitude": 150.936963, "tags": [ "consectetur", "mollit", "laborum", "ipsum", "quis", "cupidatat", "in" ], "range": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "friends": [ { "id": 0, "name": "Kristie Cain" }, { "id": 1, "name": "Geraldine Zimmerman" }, { "id": 2, "name": "Ingrid Harper" } ], "greeting": "Hello, Wanda! You have 5 unread messages.", "favoriteFruit": "strawberry" } ]compress-1.2.1/snappy/000077500000000000000000000000001303637052300146625ustar00rootroot00000000000000compress-1.2.1/snappy/.gitignore000066400000000000000000000005531303637052300166550ustar00rootroot00000000000000cmd/snappytool/snappytool testdata/bench # These explicitly listed benchmark data files are for an obsolete version of # snappy_test.go. testdata/alice29.txt testdata/asyoulik.txt testdata/fireworks.jpeg testdata/geo.protodata testdata/html testdata/html_x_4 testdata/kppkn.gtb testdata/lcet10.txt testdata/paper-100k.pdf testdata/plrabn12.txt testdata/urls.10K compress-1.2.1/snappy/AUTHORS000066400000000000000000000007631303637052300157400ustar00rootroot00000000000000# This is the official list of Snappy-Go authors for copyright purposes. # This file is distinct from the CONTRIBUTORS files. # See the latter for an explanation. # Names should be added to this file as # Name or Organization # The email address is not required for organizations. # Please keep the list sorted. Damian Gryski Google Inc. Jan Mercl <0xjnml@gmail.com> Rodolfo Carvalho Sebastien Binet compress-1.2.1/snappy/CONTRIBUTORS000066400000000000000000000026631303637052300165510ustar00rootroot00000000000000# This is the official list of people who can contribute # (and typically have contributed) code to the Snappy-Go repository. # The AUTHORS file lists the copyright holders; this file # lists people. For example, Google employees are listed here # but not in AUTHORS, because Google holds the copyright. # # The submission process automatically checks to make sure # that people submitting code are listed in this file (by email address). # # Names should be added to this file only after verifying that # the individual or the individual's organization has agreed to # the appropriate Contributor License Agreement, found here: # # http://code.google.com/legal/individual-cla-v1.0.html # http://code.google.com/legal/corporate-cla-v1.0.html # # The agreement for individuals can be filled out on the web. # # When adding J Random Contributor's name to this file, # either J's name or J's organization's name should be # added to the AUTHORS file, depending on whether the # individual or corporate CLA was used. # Names should be added to this file like so: # Name # Please keep the list sorted. Damian Gryski Jan Mercl <0xjnml@gmail.com> Kai Backman Marc-Antoine Ruel Nigel Tao Rob Pike Rodolfo Carvalho Russ Cox Sebastien Binet compress-1.2.1/snappy/LICENSE000066400000000000000000000027511303637052300156740ustar00rootroot00000000000000Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. compress-1.2.1/snappy/README000066400000000000000000000071001303637052300155400ustar00rootroot00000000000000The Snappy compression format in the Go programming language. To download and install from source: $ go get github.com/golang/snappy Unless otherwise noted, the Snappy-Go source files are distributed under the BSD-style license found in the LICENSE file. Benchmarks. The golang/snappy benchmarks include compressing (Z) and decompressing (U) ten or so files, the same set used by the C++ Snappy code (github.com/google/snappy and note the "google", not "golang"). On an "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", Go's GOARCH=amd64 numbers as of 2016-05-29: "go test -test.bench=." _UFlat0-8 2.19GB/s ± 0% html _UFlat1-8 1.41GB/s ± 0% urls _UFlat2-8 23.5GB/s ± 2% jpg _UFlat3-8 1.91GB/s ± 0% jpg_200 _UFlat4-8 14.0GB/s ± 1% pdf _UFlat5-8 1.97GB/s ± 0% html4 _UFlat6-8 814MB/s ± 0% txt1 _UFlat7-8 785MB/s ± 0% txt2 _UFlat8-8 857MB/s ± 0% txt3 _UFlat9-8 719MB/s ± 1% txt4 _UFlat10-8 2.84GB/s ± 0% pb _UFlat11-8 1.05GB/s ± 0% gaviota _ZFlat0-8 1.04GB/s ± 0% html _ZFlat1-8 534MB/s ± 0% urls _ZFlat2-8 15.7GB/s ± 1% jpg _ZFlat3-8 740MB/s ± 3% jpg_200 _ZFlat4-8 9.20GB/s ± 1% pdf _ZFlat5-8 991MB/s ± 0% html4 _ZFlat6-8 379MB/s ± 0% txt1 _ZFlat7-8 352MB/s ± 0% txt2 _ZFlat8-8 396MB/s ± 1% txt3 _ZFlat9-8 327MB/s ± 1% txt4 _ZFlat10-8 1.33GB/s ± 1% pb _ZFlat11-8 605MB/s ± 1% gaviota "go test -test.bench=. -tags=noasm" _UFlat0-8 621MB/s ± 2% html _UFlat1-8 494MB/s ± 1% urls _UFlat2-8 23.2GB/s ± 1% jpg _UFlat3-8 1.12GB/s ± 1% jpg_200 _UFlat4-8 4.35GB/s ± 1% pdf _UFlat5-8 609MB/s ± 0% html4 _UFlat6-8 296MB/s ± 0% txt1 _UFlat7-8 288MB/s ± 0% txt2 _UFlat8-8 309MB/s ± 1% txt3 _UFlat9-8 280MB/s ± 1% txt4 _UFlat10-8 753MB/s ± 0% pb _UFlat11-8 400MB/s ± 0% gaviota _ZFlat0-8 409MB/s ± 1% html _ZFlat1-8 250MB/s ± 1% urls _ZFlat2-8 12.3GB/s ± 1% jpg _ZFlat3-8 132MB/s ± 0% jpg_200 _ZFlat4-8 2.92GB/s ± 0% pdf _ZFlat5-8 405MB/s ± 1% html4 _ZFlat6-8 179MB/s ± 1% txt1 _ZFlat7-8 170MB/s ± 1% txt2 _ZFlat8-8 189MB/s ± 1% txt3 _ZFlat9-8 164MB/s ± 1% txt4 _ZFlat10-8 479MB/s ± 1% pb _ZFlat11-8 270MB/s ± 1% gaviota For comparison (Go's encoded output is byte-for-byte identical to C++'s), here are the numbers from C++ Snappy's make CXXFLAGS="-O2 -DNDEBUG -g" clean snappy_unittest.log && cat snappy_unittest.log BM_UFlat/0 2.4GB/s html BM_UFlat/1 1.4GB/s urls BM_UFlat/2 21.8GB/s jpg BM_UFlat/3 1.5GB/s jpg_200 BM_UFlat/4 13.3GB/s pdf BM_UFlat/5 2.1GB/s html4 BM_UFlat/6 1.0GB/s txt1 BM_UFlat/7 959.4MB/s txt2 BM_UFlat/8 1.0GB/s txt3 BM_UFlat/9 864.5MB/s txt4 BM_UFlat/10 2.9GB/s pb BM_UFlat/11 1.2GB/s gaviota BM_ZFlat/0 944.3MB/s html (22.31 %) BM_ZFlat/1 501.6MB/s urls (47.78 %) BM_ZFlat/2 14.3GB/s jpg (99.95 %) BM_ZFlat/3 538.3MB/s jpg_200 (73.00 %) BM_ZFlat/4 8.3GB/s pdf (83.30 %) BM_ZFlat/5 903.5MB/s html4 (22.52 %) BM_ZFlat/6 336.0MB/s txt1 (57.88 %) BM_ZFlat/7 312.3MB/s txt2 (61.91 %) BM_ZFlat/8 353.1MB/s txt3 (54.99 %) BM_ZFlat/9 289.9MB/s txt4 (66.26 %) BM_ZFlat/10 1.2GB/s pb (19.68 %) BM_ZFlat/11 527.4MB/s gaviota (37.72 %) compress-1.2.1/snappy/cmd/000077500000000000000000000000001303637052300154255ustar00rootroot00000000000000compress-1.2.1/snappy/cmd/snappytool/000077500000000000000000000000001303637052300176355ustar00rootroot00000000000000compress-1.2.1/snappy/cmd/snappytool/main.cpp000066400000000000000000000034471303637052300212750ustar00rootroot00000000000000/* To build the snappytool binary: g++ main.cpp /usr/lib/libsnappy.a -o snappytool or, if you have built the C++ snappy library from source: g++ main.cpp /path/to/your/snappy/.libs/libsnappy.a -o snappytool after running "make" from your snappy checkout directory. */ #include #include #include #include #include "snappy.h" #define N 1000000 char dst[N]; char src[N]; int main(int argc, char** argv) { // Parse args. if (argc != 2) { fprintf(stderr, "exactly one of -d or -e must be given\n"); return 1; } bool decode = strcmp(argv[1], "-d") == 0; bool encode = strcmp(argv[1], "-e") == 0; if (decode == encode) { fprintf(stderr, "exactly one of -d or -e must be given\n"); return 1; } // Read all of stdin into src[:s]. size_t s = 0; while (1) { if (s == N) { fprintf(stderr, "input too large\n"); return 1; } ssize_t n = read(0, src+s, N-s); if (n == 0) { break; } if (n < 0) { fprintf(stderr, "read error: %s\n", strerror(errno)); // TODO: handle EAGAIN, EINTR? return 1; } s += n; } // Encode or decode src[:s] to dst[:d], and write to stdout. size_t d = 0; if (encode) { if (N < snappy::MaxCompressedLength(s)) { fprintf(stderr, "input too large after encoding\n"); return 1; } snappy::RawCompress(src, s, dst, &d); } else { if (!snappy::GetUncompressedLength(src, s, &d)) { fprintf(stderr, "could not get uncompressed length\n"); return 1; } if (N < d) { fprintf(stderr, "input too large after decoding\n"); return 1; } if (!snappy::RawUncompress(src, s, dst)) { fprintf(stderr, "input was not valid Snappy-compressed data\n"); return 1; } } write(1, dst, d); return 0; } compress-1.2.1/snappy/decode.go000066400000000000000000000135751303637052300164470ustar00rootroot00000000000000// Copyright 2011 The Snappy-Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package snappy import ( "encoding/binary" "errors" "io" ) var ( // ErrCorrupt reports that the input is invalid. ErrCorrupt = errors.New("snappy: corrupt input") // ErrTooLarge reports that the uncompressed length is too large. ErrTooLarge = errors.New("snappy: decoded block is too large") // ErrUnsupported reports that the input isn't supported. ErrUnsupported = errors.New("snappy: unsupported input") errUnsupportedLiteralLength = errors.New("snappy: unsupported literal length") ) // DecodedLen returns the length of the decoded block. func DecodedLen(src []byte) (int, error) { v, _, err := decodedLen(src) return v, err } // decodedLen returns the length of the decoded block and the number of bytes // that the length header occupied. func decodedLen(src []byte) (blockLen, headerLen int, err error) { v, n := binary.Uvarint(src) if n <= 0 || v > 0xffffffff { return 0, 0, ErrCorrupt } const wordSize = 32 << (^uint(0) >> 32 & 1) if wordSize == 32 && v > 0x7fffffff { return 0, 0, ErrTooLarge } return int(v), n, nil } const ( decodeErrCodeCorrupt = 1 decodeErrCodeUnsupportedLiteralLength = 2 ) // Decode returns the decoded form of src. The returned slice may be a sub- // slice of dst if dst was large enough to hold the entire decoded block. // Otherwise, a newly allocated slice will be returned. // // The dst and src must not overlap. It is valid to pass a nil dst. func Decode(dst, src []byte) ([]byte, error) { dLen, s, err := decodedLen(src) if err != nil { return nil, err } if dLen <= len(dst) { dst = dst[:dLen] } else { dst = make([]byte, dLen) } switch decode(dst, src[s:]) { case 0: return dst, nil case decodeErrCodeUnsupportedLiteralLength: return nil, errUnsupportedLiteralLength } return nil, ErrCorrupt } // NewReader returns a new Reader that decompresses from r, using the framing // format described at // https://github.com/google/snappy/blob/master/framing_format.txt func NewReader(r io.Reader) *Reader { return &Reader{ r: r, decoded: make([]byte, maxBlockSize), buf: make([]byte, maxEncodedLenOfMaxBlockSize+checksumSize), } } // Reader is an io.Reader that can read Snappy-compressed bytes. type Reader struct { r io.Reader err error decoded []byte buf []byte // decoded[i:j] contains decoded bytes that have not yet been passed on. i, j int readHeader bool } // Reset discards any buffered data, resets all state, and switches the Snappy // reader to read from r. This permits reusing a Reader rather than allocating // a new one. func (r *Reader) Reset(reader io.Reader) { r.r = reader r.err = nil r.i = 0 r.j = 0 r.readHeader = false } func (r *Reader) readFull(p []byte, allowEOF bool) (ok bool) { if _, r.err = io.ReadFull(r.r, p); r.err != nil { if r.err == io.ErrUnexpectedEOF || (r.err == io.EOF && !allowEOF) { r.err = ErrCorrupt } return false } return true } // Read satisfies the io.Reader interface. func (r *Reader) Read(p []byte) (int, error) { if r.err != nil { return 0, r.err } for { if r.i < r.j { n := copy(p, r.decoded[r.i:r.j]) r.i += n return n, nil } if !r.readFull(r.buf[:4], true) { return 0, r.err } chunkType := r.buf[0] if !r.readHeader { if chunkType != chunkTypeStreamIdentifier { r.err = ErrCorrupt return 0, r.err } r.readHeader = true } chunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16 if chunkLen > len(r.buf) { r.err = ErrUnsupported return 0, r.err } // The chunk types are specified at // https://github.com/google/snappy/blob/master/framing_format.txt switch chunkType { case chunkTypeCompressedData: // Section 4.2. Compressed data (chunk type 0x00). if chunkLen < checksumSize { r.err = ErrCorrupt return 0, r.err } buf := r.buf[:chunkLen] if !r.readFull(buf, false) { return 0, r.err } checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 buf = buf[checksumSize:] n, err := DecodedLen(buf) if err != nil { r.err = err return 0, r.err } if n > len(r.decoded) { r.err = ErrCorrupt return 0, r.err } if _, err := Decode(r.decoded, buf); err != nil { r.err = err return 0, r.err } if crc(r.decoded[:n]) != checksum { r.err = ErrCorrupt return 0, r.err } r.i, r.j = 0, n continue case chunkTypeUncompressedData: // Section 4.3. Uncompressed data (chunk type 0x01). if chunkLen < checksumSize { r.err = ErrCorrupt return 0, r.err } buf := r.buf[:checksumSize] if !r.readFull(buf, false) { return 0, r.err } checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 // Read directly into r.decoded instead of via r.buf. n := chunkLen - checksumSize if n > len(r.decoded) { r.err = ErrCorrupt return 0, r.err } if !r.readFull(r.decoded[:n], false) { return 0, r.err } if crc(r.decoded[:n]) != checksum { r.err = ErrCorrupt return 0, r.err } r.i, r.j = 0, n continue case chunkTypeStreamIdentifier: // Section 4.1. Stream identifier (chunk type 0xff). if chunkLen != len(magicBody) { r.err = ErrCorrupt return 0, r.err } if !r.readFull(r.buf[:len(magicBody)], false) { return 0, r.err } for i := 0; i < len(magicBody); i++ { if r.buf[i] != magicBody[i] { r.err = ErrCorrupt return 0, r.err } } continue } if chunkType <= 0x7f { // Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f). r.err = ErrUnsupported return 0, r.err } // Section 4.4 Padding (chunk type 0xfe). // Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd). if !r.readFull(r.buf[:chunkLen], false) { return 0, r.err } } } compress-1.2.1/snappy/decode_amd64.go000066400000000000000000000005251303637052300174310ustar00rootroot00000000000000// Copyright 2016 The Snappy-Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !appengine // +build gc // +build !noasm package snappy // decode has the same semantics as in decode_other.go. // //go:noescape func decode(dst, src []byte) int compress-1.2.1/snappy/decode_amd64.s000066400000000000000000000274661303637052300173030ustar00rootroot00000000000000// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !appengine // +build gc // +build !noasm #include "textflag.h" // The asm code generally follows the pure Go code in decode_other.go, except // where marked with a "!!!". // func decode(dst, src []byte) int // // All local variables fit into registers. The non-zero stack size is only to // spill registers and push args when issuing a CALL. The register allocation: // - AX scratch // - BX scratch // - CX length or x // - DX offset // - SI &src[s] // - DI &dst[d] // + R8 dst_base // + R9 dst_len // + R10 dst_base + dst_len // + R11 src_base // + R12 src_len // + R13 src_base + src_len // - R14 used by doCopy // - R15 used by doCopy // // The registers R8-R13 (marked with a "+") are set at the start of the // function, and after a CALL returns, and are not otherwise modified. // // The d variable is implicitly DI - R8, and len(dst)-d is R10 - DI. // The s variable is implicitly SI - R11, and len(src)-s is R13 - SI. TEXT ·decode(SB), NOSPLIT, $48-56 // Initialize SI, DI and R8-R13. MOVQ dst_base+0(FP), R8 MOVQ dst_len+8(FP), R9 MOVQ R8, DI MOVQ R8, R10 ADDQ R9, R10 MOVQ src_base+24(FP), R11 MOVQ src_len+32(FP), R12 MOVQ R11, SI MOVQ R11, R13 ADDQ R12, R13 loop: // for s < len(src) CMPQ SI, R13 JEQ end // CX = uint32(src[s]) // // switch src[s] & 0x03 MOVBLZX (SI), CX MOVL CX, BX ANDL $3, BX CMPL BX, $1 JAE tagCopy // ---------------------------------------- // The code below handles literal tags. // case tagLiteral: // x := uint32(src[s] >> 2) // switch SHRL $2, CX CMPL CX, $60 JAE tagLit60Plus // case x < 60: // s++ INCQ SI doLit: // This is the end of the inner "switch", when we have a literal tag. // // We assume that CX == x and x fits in a uint32, where x is the variable // used in the pure Go decode_other.go code. // length = int(x) + 1 // // Unlike the pure Go code, we don't need to check if length <= 0 because // CX can hold 64 bits, so the increment cannot overflow. INCQ CX // Prepare to check if copying length bytes will run past the end of dst or // src. // // AX = len(dst) - d // BX = len(src) - s MOVQ R10, AX SUBQ DI, AX MOVQ R13, BX SUBQ SI, BX // !!! Try a faster technique for short (16 or fewer bytes) copies. // // if length > 16 || len(dst)-d < 16 || len(src)-s < 16 { // goto callMemmove // Fall back on calling runtime·memmove. // } // // The C++ snappy code calls this TryFastAppend. It also checks len(src)-s // against 21 instead of 16, because it cannot assume that all of its input // is contiguous in memory and so it needs to leave enough source bytes to // read the next tag without refilling buffers, but Go's Decode assumes // contiguousness (the src argument is a []byte). CMPQ CX, $16 JGT callMemmove CMPQ AX, $16 JLT callMemmove CMPQ BX, $16 JLT callMemmove // !!! Implement the copy from src to dst as a 16-byte load and store. // (Decode's documentation says that dst and src must not overlap.) // // This always copies 16 bytes, instead of only length bytes, but that's // OK. If the input is a valid Snappy encoding then subsequent iterations // will fix up the overrun. Otherwise, Decode returns a nil []byte (and a // non-nil error), so the overrun will be ignored. // // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or // 16-byte loads and stores. This technique probably wouldn't be as // effective on architectures that are fussier about alignment. MOVOU 0(SI), X0 MOVOU X0, 0(DI) // d += length // s += length ADDQ CX, DI ADDQ CX, SI JMP loop callMemmove: // if length > len(dst)-d || length > len(src)-s { etc } CMPQ CX, AX JGT errCorrupt CMPQ CX, BX JGT errCorrupt // copy(dst[d:], src[s:s+length]) // // This means calling runtime·memmove(&dst[d], &src[s], length), so we push // DI, SI and CX as arguments. Coincidentally, we also need to spill those // three registers to the stack, to save local variables across the CALL. MOVQ DI, 0(SP) MOVQ SI, 8(SP) MOVQ CX, 16(SP) MOVQ DI, 24(SP) MOVQ SI, 32(SP) MOVQ CX, 40(SP) CALL runtime·memmove(SB) // Restore local variables: unspill registers from the stack and // re-calculate R8-R13. MOVQ 24(SP), DI MOVQ 32(SP), SI MOVQ 40(SP), CX MOVQ dst_base+0(FP), R8 MOVQ dst_len+8(FP), R9 MOVQ R8, R10 ADDQ R9, R10 MOVQ src_base+24(FP), R11 MOVQ src_len+32(FP), R12 MOVQ R11, R13 ADDQ R12, R13 // d += length // s += length ADDQ CX, DI ADDQ CX, SI JMP loop tagLit60Plus: // !!! This fragment does the // // s += x - 58; if uint(s) > uint(len(src)) { etc } // // checks. In the asm version, we code it once instead of once per switch case. ADDQ CX, SI SUBQ $58, SI MOVQ SI, BX SUBQ R11, BX CMPQ BX, R12 JA errCorrupt // case x == 60: CMPL CX, $61 JEQ tagLit61 JA tagLit62Plus // x = uint32(src[s-1]) MOVBLZX -1(SI), CX JMP doLit tagLit61: // case x == 61: // x = uint32(src[s-2]) | uint32(src[s-1])<<8 MOVWLZX -2(SI), CX JMP doLit tagLit62Plus: CMPL CX, $62 JA tagLit63 // case x == 62: // x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 MOVWLZX -3(SI), CX MOVBLZX -1(SI), BX SHLL $16, BX ORL BX, CX JMP doLit tagLit63: // case x == 63: // x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 MOVL -4(SI), CX JMP doLit // The code above handles literal tags. // ---------------------------------------- // The code below handles copy tags. tagCopy4: // case tagCopy4: // s += 5 ADDQ $5, SI // if uint(s) > uint(len(src)) { etc } MOVQ SI, BX SUBQ R11, BX CMPQ BX, R12 JA errCorrupt // length = 1 + int(src[s-5])>>2 SHRQ $2, CX INCQ CX // offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) MOVLQZX -4(SI), DX JMP doCopy tagCopy2: // case tagCopy2: // s += 3 ADDQ $3, SI // if uint(s) > uint(len(src)) { etc } MOVQ SI, BX SUBQ R11, BX CMPQ BX, R12 JA errCorrupt // length = 1 + int(src[s-3])>>2 SHRQ $2, CX INCQ CX // offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) MOVWQZX -2(SI), DX JMP doCopy tagCopy: // We have a copy tag. We assume that: // - BX == src[s] & 0x03 // - CX == src[s] CMPQ BX, $2 JEQ tagCopy2 JA tagCopy4 // case tagCopy1: // s += 2 ADDQ $2, SI // if uint(s) > uint(len(src)) { etc } MOVQ SI, BX SUBQ R11, BX CMPQ BX, R12 JA errCorrupt // offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) MOVQ CX, DX ANDQ $0xe0, DX SHLQ $3, DX MOVBQZX -1(SI), BX ORQ BX, DX // length = 4 + int(src[s-2])>>2&0x7 SHRQ $2, CX ANDQ $7, CX ADDQ $4, CX doCopy: // This is the end of the outer "switch", when we have a copy tag. // // We assume that: // - CX == length && CX > 0 // - DX == offset // if offset <= 0 { etc } CMPQ DX, $0 JLE errCorrupt // if d < offset { etc } MOVQ DI, BX SUBQ R8, BX CMPQ BX, DX JLT errCorrupt // if length > len(dst)-d { etc } MOVQ R10, BX SUBQ DI, BX CMPQ CX, BX JGT errCorrupt // forwardCopy(dst[d:d+length], dst[d-offset:]); d += length // // Set: // - R14 = len(dst)-d // - R15 = &dst[d-offset] MOVQ R10, R14 SUBQ DI, R14 MOVQ DI, R15 SUBQ DX, R15 // !!! Try a faster technique for short (16 or fewer bytes) forward copies. // // First, try using two 8-byte load/stores, similar to the doLit technique // above. Even if dst[d:d+length] and dst[d-offset:] can overlap, this is // still OK if offset >= 8. Note that this has to be two 8-byte load/stores // and not one 16-byte load/store, and the first store has to be before the // second load, due to the overlap if offset is in the range [8, 16). // // if length > 16 || offset < 8 || len(dst)-d < 16 { // goto slowForwardCopy // } // copy 16 bytes // d += length CMPQ CX, $16 JGT slowForwardCopy CMPQ DX, $8 JLT slowForwardCopy CMPQ R14, $16 JLT slowForwardCopy MOVQ 0(R15), AX MOVQ AX, 0(DI) MOVQ 8(R15), BX MOVQ BX, 8(DI) ADDQ CX, DI JMP loop slowForwardCopy: // !!! If the forward copy is longer than 16 bytes, or if offset < 8, we // can still try 8-byte load stores, provided we can overrun up to 10 extra // bytes. As above, the overrun will be fixed up by subsequent iterations // of the outermost loop. // // The C++ snappy code calls this technique IncrementalCopyFastPath. Its // commentary says: // // ---- // // The main part of this loop is a simple copy of eight bytes at a time // until we've copied (at least) the requested amount of bytes. However, // if d and d-offset are less than eight bytes apart (indicating a // repeating pattern of length < 8), we first need to expand the pattern in // order to get the correct results. For instance, if the buffer looks like // this, with the eight-byte and patterns marked as // intervals: // // abxxxxxxxxxxxx // [------] d-offset // [------] d // // a single eight-byte copy from to will repeat the pattern // once, after which we can move two bytes without moving : // // ababxxxxxxxxxx // [------] d-offset // [------] d // // and repeat the exercise until the two no longer overlap. // // This allows us to do very well in the special case of one single byte // repeated many times, without taking a big hit for more general cases. // // The worst case of extra writing past the end of the match occurs when // offset == 1 and length == 1; the last copy will read from byte positions // [0..7] and write to [4..11], whereas it was only supposed to write to // position 1. Thus, ten excess bytes. // // ---- // // That "10 byte overrun" worst case is confirmed by Go's // TestSlowForwardCopyOverrun, which also tests the fixUpSlowForwardCopy // and finishSlowForwardCopy algorithm. // // if length > len(dst)-d-10 { // goto verySlowForwardCopy // } SUBQ $10, R14 CMPQ CX, R14 JGT verySlowForwardCopy makeOffsetAtLeast8: // !!! As above, expand the pattern so that offset >= 8 and we can use // 8-byte load/stores. // // for offset < 8 { // copy 8 bytes from dst[d-offset:] to dst[d:] // length -= offset // d += offset // offset += offset // // The two previous lines together means that d-offset, and therefore // // R15, is unchanged. // } CMPQ DX, $8 JGE fixUpSlowForwardCopy MOVQ (R15), BX MOVQ BX, (DI) SUBQ DX, CX ADDQ DX, DI ADDQ DX, DX JMP makeOffsetAtLeast8 fixUpSlowForwardCopy: // !!! Add length (which might be negative now) to d (implied by DI being // &dst[d]) so that d ends up at the right place when we jump back to the // top of the loop. Before we do that, though, we save DI to AX so that, if // length is positive, copying the remaining length bytes will write to the // right place. MOVQ DI, AX ADDQ CX, DI finishSlowForwardCopy: // !!! Repeat 8-byte load/stores until length <= 0. Ending with a negative // length means that we overrun, but as above, that will be fixed up by // subsequent iterations of the outermost loop. CMPQ CX, $0 JLE loop MOVQ (R15), BX MOVQ BX, (AX) ADDQ $8, R15 ADDQ $8, AX SUBQ $8, CX JMP finishSlowForwardCopy verySlowForwardCopy: // verySlowForwardCopy is a simple implementation of forward copy. In C // parlance, this is a do/while loop instead of a while loop, since we know // that length > 0. In Go syntax: // // for { // dst[d] = dst[d - offset] // d++ // length-- // if length == 0 { // break // } // } MOVB (R15), BX MOVB BX, (DI) INCQ R15 INCQ DI DECQ CX JNZ verySlowForwardCopy JMP loop // The code above handles copy tags. // ---------------------------------------- end: // This is the end of the "for s < len(src)". // // if d != len(dst) { etc } CMPQ DI, R10 JNE errCorrupt // return 0 MOVQ $0, ret+48(FP) RET errCorrupt: // return decodeErrCodeCorrupt MOVQ $1, ret+48(FP) RET compress-1.2.1/snappy/decode_other.go000066400000000000000000000060741303637052300176440ustar00rootroot00000000000000// Copyright 2016 The Snappy-Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !amd64 appengine !gc noasm package snappy // decode writes the decoding of src to dst. It assumes that the varint-encoded // length of the decompressed bytes has already been read, and that len(dst) // equals that length. // // It returns 0 on success or a decodeErrCodeXxx error code on failure. func decode(dst, src []byte) int { var d, s, offset, length int for s < len(src) { switch src[s] & 0x03 { case tagLiteral: x := uint32(src[s] >> 2) switch { case x < 60: s++ case x == 60: s += 2 if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. return decodeErrCodeCorrupt } x = uint32(src[s-1]) case x == 61: s += 3 if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. return decodeErrCodeCorrupt } x = uint32(src[s-2]) | uint32(src[s-1])<<8 case x == 62: s += 4 if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. return decodeErrCodeCorrupt } x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16 case x == 63: s += 5 if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. return decodeErrCodeCorrupt } x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24 } length = int(x) + 1 if length <= 0 { return decodeErrCodeUnsupportedLiteralLength } if length > len(dst)-d || length > len(src)-s { return decodeErrCodeCorrupt } copy(dst[d:], src[s:s+length]) d += length s += length continue case tagCopy1: s += 2 if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. return decodeErrCodeCorrupt } length = 4 + int(src[s-2])>>2&0x7 offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1])) case tagCopy2: s += 3 if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. return decodeErrCodeCorrupt } length = 1 + int(src[s-3])>>2 offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8) case tagCopy4: s += 5 if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. return decodeErrCodeCorrupt } length = 1 + int(src[s-5])>>2 offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24) } if offset <= 0 || d < offset || length > len(dst)-d { return decodeErrCodeCorrupt } // Copy from an earlier sub-slice of dst to a later sub-slice. Unlike // the built-in copy function, this byte-by-byte copy always runs // forwards, even if the slices overlap. Conceptually, this is: // // d += forwardCopy(dst[d:d+length], dst[d-offset:]) for end := d + length; d != end; d++ { dst[d] = dst[d-offset] } } if d != len(dst) { return decodeErrCodeCorrupt } return 0 } compress-1.2.1/snappy/encode.go000066400000000000000000000217001303637052300164460ustar00rootroot00000000000000// Copyright 2011 The Snappy-Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package snappy import ( "encoding/binary" "errors" "io" ) // Encode returns the encoded form of src. The returned slice may be a sub- // slice of dst if dst was large enough to hold the entire encoded block. // Otherwise, a newly allocated slice will be returned. // // The dst and src must not overlap. It is valid to pass a nil dst. func Encode(dst, src []byte) []byte { if n := MaxEncodedLen(len(src)); n < 0 { panic(ErrTooLarge) } else if len(dst) < n { dst = make([]byte, n) } // The block starts with the varint-encoded length of the decompressed bytes. d := binary.PutUvarint(dst, uint64(len(src))) for len(src) > 0 { p := src src = nil if len(p) > maxBlockSize { p, src = p[:maxBlockSize], p[maxBlockSize:] } if len(p) < minNonLiteralBlockSize { d += emitLiteral(dst[d:], p) } else { d += encodeBlock(dst[d:], p) } } return dst[:d] } // inputMargin is the minimum number of extra input bytes to keep, inside // encodeBlock's inner loop. On some architectures, this margin lets us // implement a fast path for emitLiteral, where the copy of short (<= 16 byte) // literals can be implemented as a single load to and store from a 16-byte // register. That literal's actual length can be as short as 1 byte, so this // can copy up to 15 bytes too much, but that's OK as subsequent iterations of // the encoding loop will fix up the copy overrun, and this inputMargin ensures // that we don't overrun the dst and src buffers. const inputMargin = 16 - 1 // minNonLiteralBlockSize is the minimum size of the input to encodeBlock that // could be encoded with a copy tag. This is the minimum with respect to the // algorithm used by encodeBlock, not a minimum enforced by the file format. // // The encoded output must start with at least a 1 byte literal, as there are // no previous bytes to copy. A minimal (1 byte) copy after that, generated // from an emitCopy call in encodeBlock's main loop, would require at least // another inputMargin bytes, for the reason above: we want any emitLiteral // calls inside encodeBlock's main loop to use the fast path if possible, which // requires being able to overrun by inputMargin bytes. Thus, // minNonLiteralBlockSize equals 1 + 1 + inputMargin. // // The C++ code doesn't use this exact threshold, but it could, as discussed at // https://groups.google.com/d/topic/snappy-compression/oGbhsdIJSJ8/discussion // The difference between Go (2+inputMargin) and C++ (inputMargin) is purely an // optimization. It should not affect the encoded form. This is tested by // TestSameEncodingAsCppShortCopies. const minNonLiteralBlockSize = 1 + 1 + inputMargin // MaxEncodedLen returns the maximum length of a snappy block, given its // uncompressed length. // // It will return a negative value if srcLen is too large to encode. func MaxEncodedLen(srcLen int) int { n := uint64(srcLen) if n > 0xffffffff { return -1 } // Compressed data can be defined as: // compressed := item* literal* // item := literal* copy // // The trailing literal sequence has a space blowup of at most 62/60 // since a literal of length 60 needs one tag byte + one extra byte // for length information. // // Item blowup is trickier to measure. Suppose the "copy" op copies // 4 bytes of data. Because of a special check in the encoding code, // we produce a 4-byte copy only if the offset is < 65536. Therefore // the copy op takes 3 bytes to encode, and this type of item leads // to at most the 62/60 blowup for representing literals. // // Suppose the "copy" op copies 5 bytes of data. If the offset is big // enough, it will take 5 bytes to encode the copy op. Therefore the // worst case here is a one-byte literal followed by a five-byte copy. // That is, 6 bytes of input turn into 7 bytes of "compressed" data. // // This last factor dominates the blowup, so the final estimate is: n = 32 + n + n/6 if n > 0xffffffff { return -1 } return int(n) } var errClosed = errors.New("snappy: Writer is closed") // NewWriter returns a new Writer that compresses to w. // // The Writer returned does not buffer writes. There is no need to Flush or // Close such a Writer. // // Deprecated: the Writer returned is not suitable for many small writes, only // for few large writes. Use NewBufferedWriter instead, which is efficient // regardless of the frequency and shape of the writes, and remember to Close // that Writer when done. func NewWriter(w io.Writer) *Writer { return &Writer{ w: w, obuf: make([]byte, obufLen), } } // NewBufferedWriter returns a new Writer that compresses to w, using the // framing format described at // https://github.com/google/snappy/blob/master/framing_format.txt // // The Writer returned buffers writes. Users must call Close to guarantee all // data has been forwarded to the underlying io.Writer. They may also call // Flush zero or more times before calling Close. func NewBufferedWriter(w io.Writer) *Writer { return &Writer{ w: w, ibuf: make([]byte, 0, maxBlockSize), obuf: make([]byte, obufLen), } } // Writer is an io.Writer than can write Snappy-compressed bytes. type Writer struct { w io.Writer err error // ibuf is a buffer for the incoming (uncompressed) bytes. // // Its use is optional. For backwards compatibility, Writers created by the // NewWriter function have ibuf == nil, do not buffer incoming bytes, and // therefore do not need to be Flush'ed or Close'd. ibuf []byte // obuf is a buffer for the outgoing (compressed) bytes. obuf []byte // wroteStreamHeader is whether we have written the stream header. wroteStreamHeader bool } // Reset discards the writer's state and switches the Snappy writer to write to // w. This permits reusing a Writer rather than allocating a new one. func (w *Writer) Reset(writer io.Writer) { w.w = writer w.err = nil if w.ibuf != nil { w.ibuf = w.ibuf[:0] } w.wroteStreamHeader = false } // Write satisfies the io.Writer interface. func (w *Writer) Write(p []byte) (nRet int, errRet error) { if w.ibuf == nil { // Do not buffer incoming bytes. This does not perform or compress well // if the caller of Writer.Write writes many small slices. This // behavior is therefore deprecated, but still supported for backwards // compatibility with code that doesn't explicitly Flush or Close. return w.write(p) } // The remainder of this method is based on bufio.Writer.Write from the // standard library. for len(p) > (cap(w.ibuf)-len(w.ibuf)) && w.err == nil { var n int if len(w.ibuf) == 0 { // Large write, empty buffer. // Write directly from p to avoid copy. n, _ = w.write(p) } else { n = copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) w.ibuf = w.ibuf[:len(w.ibuf)+n] w.Flush() } nRet += n p = p[n:] } if w.err != nil { return nRet, w.err } n := copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) w.ibuf = w.ibuf[:len(w.ibuf)+n] nRet += n return nRet, nil } func (w *Writer) write(p []byte) (nRet int, errRet error) { if w.err != nil { return 0, w.err } for len(p) > 0 { obufStart := len(magicChunk) if !w.wroteStreamHeader { w.wroteStreamHeader = true copy(w.obuf, magicChunk) obufStart = 0 } var uncompressed []byte if len(p) > maxBlockSize { uncompressed, p = p[:maxBlockSize], p[maxBlockSize:] } else { uncompressed, p = p, nil } checksum := crc(uncompressed) // Compress the buffer, discarding the result if the improvement // isn't at least 12.5%. compressed := Encode(w.obuf[obufHeaderLen:], uncompressed) chunkType := uint8(chunkTypeCompressedData) chunkLen := 4 + len(compressed) obufEnd := obufHeaderLen + len(compressed) if len(compressed) >= len(uncompressed)-len(uncompressed)/8 { chunkType = chunkTypeUncompressedData chunkLen = 4 + len(uncompressed) obufEnd = obufHeaderLen } // Fill in the per-chunk header that comes before the body. w.obuf[len(magicChunk)+0] = chunkType w.obuf[len(magicChunk)+1] = uint8(chunkLen >> 0) w.obuf[len(magicChunk)+2] = uint8(chunkLen >> 8) w.obuf[len(magicChunk)+3] = uint8(chunkLen >> 16) w.obuf[len(magicChunk)+4] = uint8(checksum >> 0) w.obuf[len(magicChunk)+5] = uint8(checksum >> 8) w.obuf[len(magicChunk)+6] = uint8(checksum >> 16) w.obuf[len(magicChunk)+7] = uint8(checksum >> 24) if _, err := w.w.Write(w.obuf[obufStart:obufEnd]); err != nil { w.err = err return nRet, err } if chunkType == chunkTypeUncompressedData { if _, err := w.w.Write(uncompressed); err != nil { w.err = err return nRet, err } } nRet += len(uncompressed) } return nRet, nil } // Flush flushes the Writer to its underlying io.Writer. func (w *Writer) Flush() error { if w.err != nil { return w.err } if len(w.ibuf) == 0 { return nil } w.write(w.ibuf) w.ibuf = w.ibuf[:0] return w.err } // Close calls Flush and then closes the Writer. func (w *Writer) Close() error { w.Flush() ret := w.err if w.err == nil { w.err = errClosed } return ret } compress-1.2.1/snappy/encode_amd64.go000066400000000000000000000013201303637052300174350ustar00rootroot00000000000000// Copyright 2016 The Snappy-Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !appengine // +build gc // +build !noasm package snappy // emitLiteral has the same semantics as in encode_other.go. // //go:noescape func emitLiteral(dst, lit []byte) int // emitCopy has the same semantics as in encode_other.go. // //go:noescape func emitCopy(dst []byte, offset, length int) int // extendMatch has the same semantics as in encode_other.go. // //go:noescape func extendMatch(src []byte, i, j int) int // encodeBlock has the same semantics as in encode_other.go. // //go:noescape func encodeBlock(dst, src []byte) (d int) compress-1.2.1/snappy/encode_amd64.s000066400000000000000000000376461303637052300173160ustar00rootroot00000000000000// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !appengine // +build gc // +build !noasm #include "textflag.h" // The XXX lines assemble on Go 1.4, 1.5 and 1.7, but not 1.6, due to a // Go toolchain regression. See https://github.com/golang/go/issues/15426 and // https://github.com/golang/snappy/issues/29 // // As a workaround, the package was built with a known good assembler, and // those instructions were disassembled by "objdump -d" to yield the // 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 // style comments, in AT&T asm syntax. Note that rsp here is a physical // register, not Go/asm's SP pseudo-register (see https://golang.org/doc/asm). // The instructions were then encoded as "BYTE $0x.." sequences, which assemble // fine on Go 1.6. // The asm code generally follows the pure Go code in encode_other.go, except // where marked with a "!!!". // ---------------------------------------------------------------------------- // func emitLiteral(dst, lit []byte) int // // All local variables fit into registers. The register allocation: // - AX len(lit) // - BX n // - DX return value // - DI &dst[i] // - R10 &lit[0] // // The 24 bytes of stack space is to call runtime·memmove. // // The unusual register allocation of local variables, such as R10 for the // source pointer, matches the allocation used at the call site in encodeBlock, // which makes it easier to manually inline this function. TEXT ·emitLiteral(SB), NOSPLIT, $24-56 MOVQ dst_base+0(FP), DI MOVQ lit_base+24(FP), R10 MOVQ lit_len+32(FP), AX MOVQ AX, DX MOVL AX, BX SUBL $1, BX CMPL BX, $60 JLT oneByte CMPL BX, $256 JLT twoBytes threeBytes: MOVB $0xf4, 0(DI) MOVW BX, 1(DI) ADDQ $3, DI ADDQ $3, DX JMP memmove twoBytes: MOVB $0xf0, 0(DI) MOVB BX, 1(DI) ADDQ $2, DI ADDQ $2, DX JMP memmove oneByte: SHLB $2, BX MOVB BX, 0(DI) ADDQ $1, DI ADDQ $1, DX memmove: MOVQ DX, ret+48(FP) // copy(dst[i:], lit) // // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push // DI, R10 and AX as arguments. MOVQ DI, 0(SP) MOVQ R10, 8(SP) MOVQ AX, 16(SP) CALL runtime·memmove(SB) RET // ---------------------------------------------------------------------------- // func emitCopy(dst []byte, offset, length int) int // // All local variables fit into registers. The register allocation: // - AX length // - SI &dst[0] // - DI &dst[i] // - R11 offset // // The unusual register allocation of local variables, such as R11 for the // offset, matches the allocation used at the call site in encodeBlock, which // makes it easier to manually inline this function. TEXT ·emitCopy(SB), NOSPLIT, $0-48 MOVQ dst_base+0(FP), DI MOVQ DI, SI MOVQ offset+24(FP), R11 MOVQ length+32(FP), AX loop0: // for length >= 68 { etc } CMPL AX, $68 JLT step1 // Emit a length 64 copy, encoded as 3 bytes. MOVB $0xfe, 0(DI) MOVW R11, 1(DI) ADDQ $3, DI SUBL $64, AX JMP loop0 step1: // if length > 64 { etc } CMPL AX, $64 JLE step2 // Emit a length 60 copy, encoded as 3 bytes. MOVB $0xee, 0(DI) MOVW R11, 1(DI) ADDQ $3, DI SUBL $60, AX step2: // if length >= 12 || offset >= 2048 { goto step3 } CMPL AX, $12 JGE step3 CMPL R11, $2048 JGE step3 // Emit the remaining copy, encoded as 2 bytes. MOVB R11, 1(DI) SHRL $8, R11 SHLB $5, R11 SUBB $4, AX SHLB $2, AX ORB AX, R11 ORB $1, R11 MOVB R11, 0(DI) ADDQ $2, DI // Return the number of bytes written. SUBQ SI, DI MOVQ DI, ret+40(FP) RET step3: // Emit the remaining copy, encoded as 3 bytes. SUBL $1, AX SHLB $2, AX ORB $2, AX MOVB AX, 0(DI) MOVW R11, 1(DI) ADDQ $3, DI // Return the number of bytes written. SUBQ SI, DI MOVQ DI, ret+40(FP) RET // ---------------------------------------------------------------------------- // func extendMatch(src []byte, i, j int) int // // All local variables fit into registers. The register allocation: // - DX &src[0] // - SI &src[j] // - R13 &src[len(src) - 8] // - R14 &src[len(src)] // - R15 &src[i] // // The unusual register allocation of local variables, such as R15 for a source // pointer, matches the allocation used at the call site in encodeBlock, which // makes it easier to manually inline this function. TEXT ·extendMatch(SB), NOSPLIT, $0-48 MOVQ src_base+0(FP), DX MOVQ src_len+8(FP), R14 MOVQ i+24(FP), R15 MOVQ j+32(FP), SI ADDQ DX, R14 ADDQ DX, R15 ADDQ DX, SI MOVQ R14, R13 SUBQ $8, R13 cmp8: // As long as we are 8 or more bytes before the end of src, we can load and // compare 8 bytes at a time. If those 8 bytes are equal, repeat. CMPQ SI, R13 JA cmp1 MOVQ (R15), AX MOVQ (SI), BX CMPQ AX, BX JNE bsf ADDQ $8, R15 ADDQ $8, SI JMP cmp8 bsf: // If those 8 bytes were not equal, XOR the two 8 byte values, and return // the index of the first byte that differs. The BSF instruction finds the // least significant 1 bit, the amd64 architecture is little-endian, and // the shift by 3 converts a bit index to a byte index. XORQ AX, BX BSFQ BX, BX SHRQ $3, BX ADDQ BX, SI // Convert from &src[ret] to ret. SUBQ DX, SI MOVQ SI, ret+40(FP) RET cmp1: // In src's tail, compare 1 byte at a time. CMPQ SI, R14 JAE extendMatchEnd MOVB (R15), AX MOVB (SI), BX CMPB AX, BX JNE extendMatchEnd ADDQ $1, R15 ADDQ $1, SI JMP cmp1 extendMatchEnd: // Convert from &src[ret] to ret. SUBQ DX, SI MOVQ SI, ret+40(FP) RET // ---------------------------------------------------------------------------- // func encodeBlock(dst, src []byte) (d int) // // All local variables fit into registers, other than "var table". The register // allocation: // - AX . . // - BX . . // - CX 56 shift (note that amd64 shifts by non-immediates must use CX). // - DX 64 &src[0], tableSize // - SI 72 &src[s] // - DI 80 &dst[d] // - R9 88 sLimit // - R10 . &src[nextEmit] // - R11 96 prevHash, currHash, nextHash, offset // - R12 104 &src[base], skip // - R13 . &src[nextS], &src[len(src) - 8] // - R14 . len(src), bytesBetweenHashLookups, &src[len(src)], x // - R15 112 candidate // // The second column (56, 64, etc) is the stack offset to spill the registers // when calling other functions. We could pack this slightly tighter, but it's // simpler to have a dedicated spill map independent of the function called. // // "var table [maxTableSize]uint16" takes up 32768 bytes of stack space. An // extra 56 bytes, to call other functions, and an extra 64 bytes, to spill // local variables (registers) during calls gives 32768 + 56 + 64 = 32888. TEXT ·encodeBlock(SB), 0, $32888-56 MOVQ dst_base+0(FP), DI MOVQ src_base+24(FP), SI MOVQ src_len+32(FP), R14 // shift, tableSize := uint32(32-8), 1<<8 MOVQ $24, CX MOVQ $256, DX calcShift: // for ; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { // shift-- // } CMPQ DX, $16384 JGE varTable CMPQ DX, R14 JGE varTable SUBQ $1, CX SHLQ $1, DX JMP calcShift varTable: // var table [maxTableSize]uint16 // // In the asm code, unlike the Go code, we can zero-initialize only the // first tableSize elements. Each uint16 element is 2 bytes and each MOVOU // writes 16 bytes, so we can do only tableSize/8 writes instead of the // 2048 writes that would zero-initialize all of table's 32768 bytes. SHRQ $3, DX LEAQ table-32768(SP), BX PXOR X0, X0 memclr: MOVOU X0, 0(BX) ADDQ $16, BX SUBQ $1, DX JNZ memclr // !!! DX = &src[0] MOVQ SI, DX // sLimit := len(src) - inputMargin MOVQ R14, R9 SUBQ $15, R9 // !!! Pre-emptively spill CX, DX and R9 to the stack. Their values don't // change for the rest of the function. MOVQ CX, 56(SP) MOVQ DX, 64(SP) MOVQ R9, 88(SP) // nextEmit := 0 MOVQ DX, R10 // s := 1 ADDQ $1, SI // nextHash := hash(load32(src, s), shift) MOVL 0(SI), R11 IMULL $0x1e35a7bd, R11 SHRL CX, R11 outer: // for { etc } // skip := 32 MOVQ $32, R12 // nextS := s MOVQ SI, R13 // candidate := 0 MOVQ $0, R15 inner0: // for { etc } // s := nextS MOVQ R13, SI // bytesBetweenHashLookups := skip >> 5 MOVQ R12, R14 SHRQ $5, R14 // nextS = s + bytesBetweenHashLookups ADDQ R14, R13 // skip += bytesBetweenHashLookups ADDQ R14, R12 // if nextS > sLimit { goto emitRemainder } MOVQ R13, AX SUBQ DX, AX CMPQ AX, R9 JA emitRemainder // candidate = int(table[nextHash]) // XXX: MOVWQZX table-32768(SP)(R11*2), R15 // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 BYTE $0x4e BYTE $0x0f BYTE $0xb7 BYTE $0x7c BYTE $0x5c BYTE $0x78 // table[nextHash] = uint16(s) MOVQ SI, AX SUBQ DX, AX // XXX: MOVW AX, table-32768(SP)(R11*2) // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) BYTE $0x66 BYTE $0x42 BYTE $0x89 BYTE $0x44 BYTE $0x5c BYTE $0x78 // nextHash = hash(load32(src, nextS), shift) MOVL 0(R13), R11 IMULL $0x1e35a7bd, R11 SHRL CX, R11 // if load32(src, s) != load32(src, candidate) { continue } break MOVL 0(SI), AX MOVL (DX)(R15*1), BX CMPL AX, BX JNE inner0 fourByteMatch: // As per the encode_other.go code: // // A 4-byte match has been found. We'll later see etc. // !!! Jump to a fast path for short (<= 16 byte) literals. See the comment // on inputMargin in encode.go. MOVQ SI, AX SUBQ R10, AX CMPQ AX, $16 JLE emitLiteralFastPath // ---------------------------------------- // Begin inline of the emitLiteral call. // // d += emitLiteral(dst[d:], src[nextEmit:s]) MOVL AX, BX SUBL $1, BX CMPL BX, $60 JLT inlineEmitLiteralOneByte CMPL BX, $256 JLT inlineEmitLiteralTwoBytes inlineEmitLiteralThreeBytes: MOVB $0xf4, 0(DI) MOVW BX, 1(DI) ADDQ $3, DI JMP inlineEmitLiteralMemmove inlineEmitLiteralTwoBytes: MOVB $0xf0, 0(DI) MOVB BX, 1(DI) ADDQ $2, DI JMP inlineEmitLiteralMemmove inlineEmitLiteralOneByte: SHLB $2, BX MOVB BX, 0(DI) ADDQ $1, DI inlineEmitLiteralMemmove: // Spill local variables (registers) onto the stack; call; unspill. // // copy(dst[i:], lit) // // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push // DI, R10 and AX as arguments. MOVQ DI, 0(SP) MOVQ R10, 8(SP) MOVQ AX, 16(SP) ADDQ AX, DI // Finish the "d +=" part of "d += emitLiteral(etc)". MOVQ SI, 72(SP) MOVQ DI, 80(SP) MOVQ R15, 112(SP) CALL runtime·memmove(SB) MOVQ 56(SP), CX MOVQ 64(SP), DX MOVQ 72(SP), SI MOVQ 80(SP), DI MOVQ 88(SP), R9 MOVQ 112(SP), R15 JMP inner1 inlineEmitLiteralEnd: // End inline of the emitLiteral call. // ---------------------------------------- emitLiteralFastPath: // !!! Emit the 1-byte encoding "uint8(len(lit)-1)<<2". MOVB AX, BX SUBB $1, BX SHLB $2, BX MOVB BX, (DI) ADDQ $1, DI // !!! Implement the copy from lit to dst as a 16-byte load and store. // (Encode's documentation says that dst and src must not overlap.) // // This always copies 16 bytes, instead of only len(lit) bytes, but that's // OK. Subsequent iterations will fix up the overrun. // // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or // 16-byte loads and stores. This technique probably wouldn't be as // effective on architectures that are fussier about alignment. MOVOU 0(R10), X0 MOVOU X0, 0(DI) ADDQ AX, DI inner1: // for { etc } // base := s MOVQ SI, R12 // !!! offset := base - candidate MOVQ R12, R11 SUBQ R15, R11 SUBQ DX, R11 // ---------------------------------------- // Begin inline of the extendMatch call. // // s = extendMatch(src, candidate+4, s+4) // !!! R14 = &src[len(src)] MOVQ src_len+32(FP), R14 ADDQ DX, R14 // !!! R13 = &src[len(src) - 8] MOVQ R14, R13 SUBQ $8, R13 // !!! R15 = &src[candidate + 4] ADDQ $4, R15 ADDQ DX, R15 // !!! s += 4 ADDQ $4, SI inlineExtendMatchCmp8: // As long as we are 8 or more bytes before the end of src, we can load and // compare 8 bytes at a time. If those 8 bytes are equal, repeat. CMPQ SI, R13 JA inlineExtendMatchCmp1 MOVQ (R15), AX MOVQ (SI), BX CMPQ AX, BX JNE inlineExtendMatchBSF ADDQ $8, R15 ADDQ $8, SI JMP inlineExtendMatchCmp8 inlineExtendMatchBSF: // If those 8 bytes were not equal, XOR the two 8 byte values, and return // the index of the first byte that differs. The BSF instruction finds the // least significant 1 bit, the amd64 architecture is little-endian, and // the shift by 3 converts a bit index to a byte index. XORQ AX, BX BSFQ BX, BX SHRQ $3, BX ADDQ BX, SI JMP inlineExtendMatchEnd inlineExtendMatchCmp1: // In src's tail, compare 1 byte at a time. CMPQ SI, R14 JAE inlineExtendMatchEnd MOVB (R15), AX MOVB (SI), BX CMPB AX, BX JNE inlineExtendMatchEnd ADDQ $1, R15 ADDQ $1, SI JMP inlineExtendMatchCmp1 inlineExtendMatchEnd: // End inline of the extendMatch call. // ---------------------------------------- // ---------------------------------------- // Begin inline of the emitCopy call. // // d += emitCopy(dst[d:], base-candidate, s-base) // !!! length := s - base MOVQ SI, AX SUBQ R12, AX inlineEmitCopyLoop0: // for length >= 68 { etc } CMPL AX, $68 JLT inlineEmitCopyStep1 // Emit a length 64 copy, encoded as 3 bytes. MOVB $0xfe, 0(DI) MOVW R11, 1(DI) ADDQ $3, DI SUBL $64, AX JMP inlineEmitCopyLoop0 inlineEmitCopyStep1: // if length > 64 { etc } CMPL AX, $64 JLE inlineEmitCopyStep2 // Emit a length 60 copy, encoded as 3 bytes. MOVB $0xee, 0(DI) MOVW R11, 1(DI) ADDQ $3, DI SUBL $60, AX inlineEmitCopyStep2: // if length >= 12 || offset >= 2048 { goto inlineEmitCopyStep3 } CMPL AX, $12 JGE inlineEmitCopyStep3 CMPL R11, $2048 JGE inlineEmitCopyStep3 // Emit the remaining copy, encoded as 2 bytes. MOVB R11, 1(DI) SHRL $8, R11 SHLB $5, R11 SUBB $4, AX SHLB $2, AX ORB AX, R11 ORB $1, R11 MOVB R11, 0(DI) ADDQ $2, DI JMP inlineEmitCopyEnd inlineEmitCopyStep3: // Emit the remaining copy, encoded as 3 bytes. SUBL $1, AX SHLB $2, AX ORB $2, AX MOVB AX, 0(DI) MOVW R11, 1(DI) ADDQ $3, DI inlineEmitCopyEnd: // End inline of the emitCopy call. // ---------------------------------------- // nextEmit = s MOVQ SI, R10 // if s >= sLimit { goto emitRemainder } MOVQ SI, AX SUBQ DX, AX CMPQ AX, R9 JAE emitRemainder // As per the encode_other.go code: // // We could immediately etc. // x := load64(src, s-1) MOVQ -1(SI), R14 // prevHash := hash(uint32(x>>0), shift) MOVL R14, R11 IMULL $0x1e35a7bd, R11 SHRL CX, R11 // table[prevHash] = uint16(s-1) MOVQ SI, AX SUBQ DX, AX SUBQ $1, AX // XXX: MOVW AX, table-32768(SP)(R11*2) // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) BYTE $0x66 BYTE $0x42 BYTE $0x89 BYTE $0x44 BYTE $0x5c BYTE $0x78 // currHash := hash(uint32(x>>8), shift) SHRQ $8, R14 MOVL R14, R11 IMULL $0x1e35a7bd, R11 SHRL CX, R11 // candidate = int(table[currHash]) // XXX: MOVWQZX table-32768(SP)(R11*2), R15 // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15 BYTE $0x4e BYTE $0x0f BYTE $0xb7 BYTE $0x7c BYTE $0x5c BYTE $0x78 // table[currHash] = uint16(s) ADDQ $1, AX // XXX: MOVW AX, table-32768(SP)(R11*2) // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2) BYTE $0x66 BYTE $0x42 BYTE $0x89 BYTE $0x44 BYTE $0x5c BYTE $0x78 // if uint32(x>>8) == load32(src, candidate) { continue } MOVL (DX)(R15*1), BX CMPL R14, BX JEQ inner1 // nextHash = hash(uint32(x>>16), shift) SHRQ $8, R14 MOVL R14, R11 IMULL $0x1e35a7bd, R11 SHRL CX, R11 // s++ ADDQ $1, SI // break out of the inner1 for loop, i.e. continue the outer loop. JMP outer emitRemainder: // if nextEmit < len(src) { etc } MOVQ src_len+32(FP), AX ADDQ DX, AX CMPQ R10, AX JEQ encodeBlockEnd // d += emitLiteral(dst[d:], src[nextEmit:]) // // Push args. MOVQ DI, 0(SP) MOVQ $0, 8(SP) // Unnecessary, as the callee ignores it, but conservative. MOVQ $0, 16(SP) // Unnecessary, as the callee ignores it, but conservative. MOVQ R10, 24(SP) SUBQ R10, AX MOVQ AX, 32(SP) MOVQ AX, 40(SP) // Unnecessary, as the callee ignores it, but conservative. // Spill local variables (registers) onto the stack; call; unspill. MOVQ DI, 80(SP) CALL ·emitLiteral(SB) MOVQ 80(SP), DI // Finish the "d +=" part of "d += emitLiteral(etc)". ADDQ 48(SP), DI encodeBlockEnd: MOVQ dst_base+0(FP), AX SUBQ AX, DI MOVQ DI, d+48(FP) RET compress-1.2.1/snappy/encode_other.go000066400000000000000000000200211303637052300176420ustar00rootroot00000000000000// Copyright 2016 The Snappy-Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !amd64 appengine !gc noasm package snappy func load32(b []byte, i int) uint32 { b = b[i : i+4 : len(b)] // Help the compiler eliminate bounds checks on the next line. return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 } func load64(b []byte, i int) uint64 { b = b[i : i+8 : len(b)] // Help the compiler eliminate bounds checks on the next line. return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 } // emitLiteral writes a literal chunk and returns the number of bytes written. // // It assumes that: // dst is long enough to hold the encoded bytes // 1 <= len(lit) && len(lit) <= 65536 func emitLiteral(dst, lit []byte) int { i, n := 0, uint(len(lit)-1) switch { case n < 60: dst[0] = uint8(n)<<2 | tagLiteral i = 1 case n < 1<<8: dst[0] = 60<<2 | tagLiteral dst[1] = uint8(n) i = 2 default: dst[0] = 61<<2 | tagLiteral dst[1] = uint8(n) dst[2] = uint8(n >> 8) i = 3 } return i + copy(dst[i:], lit) } // emitCopy writes a copy chunk and returns the number of bytes written. // // It assumes that: // dst is long enough to hold the encoded bytes // 1 <= offset && offset <= 65535 // 4 <= length && length <= 65535 func emitCopy(dst []byte, offset, length int) int { i := 0 // The maximum length for a single tagCopy1 or tagCopy2 op is 64 bytes. The // threshold for this loop is a little higher (at 68 = 64 + 4), and the // length emitted down below is is a little lower (at 60 = 64 - 4), because // it's shorter to encode a length 67 copy as a length 60 tagCopy2 followed // by a length 7 tagCopy1 (which encodes as 3+2 bytes) than to encode it as // a length 64 tagCopy2 followed by a length 3 tagCopy2 (which encodes as // 3+3 bytes). The magic 4 in the 64±4 is because the minimum length for a // tagCopy1 op is 4 bytes, which is why a length 3 copy has to be an // encodes-as-3-bytes tagCopy2 instead of an encodes-as-2-bytes tagCopy1. for length >= 68 { // Emit a length 64 copy, encoded as 3 bytes. dst[i+0] = 63<<2 | tagCopy2 dst[i+1] = uint8(offset) dst[i+2] = uint8(offset >> 8) i += 3 length -= 64 } if length > 64 { // Emit a length 60 copy, encoded as 3 bytes. dst[i+0] = 59<<2 | tagCopy2 dst[i+1] = uint8(offset) dst[i+2] = uint8(offset >> 8) i += 3 length -= 60 } if length >= 12 || offset >= 2048 { // Emit the remaining copy, encoded as 3 bytes. dst[i+0] = uint8(length-1)<<2 | tagCopy2 dst[i+1] = uint8(offset) dst[i+2] = uint8(offset >> 8) return i + 3 } // Emit the remaining copy, encoded as 2 bytes. dst[i+0] = uint8(offset>>8)<<5 | uint8(length-4)<<2 | tagCopy1 dst[i+1] = uint8(offset) return i + 2 } // extendMatch returns the largest k such that k <= len(src) and that // src[i:i+k-j] and src[j:k] have the same contents. // // It assumes that: // 0 <= i && i < j && j <= len(src) func extendMatch(src []byte, i, j int) int { for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 { } return j } func hash(u, shift uint32) uint32 { return (u * 0x1e35a7bd) >> shift } // encodeBlock encodes a non-empty src to a guaranteed-large-enough dst. It // assumes that the varint-encoded length of the decompressed bytes has already // been written. // // It also assumes that: // len(dst) >= MaxEncodedLen(len(src)) && // minNonLiteralBlockSize <= len(src) && len(src) <= maxBlockSize func encodeBlock(dst, src []byte) (d int) { // Initialize the hash table. Its size ranges from 1<<8 to 1<<14 inclusive. // The table element type is uint16, as s < sLimit and sLimit < len(src) // and len(src) <= maxBlockSize and maxBlockSize == 65536. const ( maxTableSize = 1 << 14 // tableMask is redundant, but helps the compiler eliminate bounds // checks. tableMask = maxTableSize - 1 ) shift := uint32(32 - 8) for tableSize := 1 << 8; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 { shift-- } // In Go, all array elements are zero-initialized, so there is no advantage // to a smaller tableSize per se. However, it matches the C++ algorithm, // and in the asm versions of this code, we can get away with zeroing only // the first tableSize elements. var table [maxTableSize]uint16 // sLimit is when to stop looking for offset/length copies. The inputMargin // lets us use a fast path for emitLiteral in the main loop, while we are // looking for copies. sLimit := len(src) - inputMargin // nextEmit is where in src the next emitLiteral should start from. nextEmit := 0 // The encoded form must start with a literal, as there are no previous // bytes to copy, so we start looking for hash matches at s == 1. s := 1 nextHash := hash(load32(src, s), shift) for { // Copied from the C++ snappy implementation: // // Heuristic match skipping: If 32 bytes are scanned with no matches // found, start looking only at every other byte. If 32 more bytes are // scanned (or skipped), look at every third byte, etc.. When a match // is found, immediately go back to looking at every byte. This is a // small loss (~5% performance, ~0.1% density) for compressible data // due to more bookkeeping, but for non-compressible data (such as // JPEG) it's a huge win since the compressor quickly "realizes" the // data is incompressible and doesn't bother looking for matches // everywhere. // // The "skip" variable keeps track of how many bytes there are since // the last match; dividing it by 32 (ie. right-shifting by five) gives // the number of bytes to move ahead for each iteration. skip := 32 nextS := s candidate := 0 for { s = nextS bytesBetweenHashLookups := skip >> 5 nextS = s + bytesBetweenHashLookups skip += bytesBetweenHashLookups if nextS > sLimit { goto emitRemainder } candidate = int(table[nextHash&tableMask]) table[nextHash&tableMask] = uint16(s) nextHash = hash(load32(src, nextS), shift) if load32(src, s) == load32(src, candidate) { break } } // A 4-byte match has been found. We'll later see if more than 4 bytes // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit // them as literal bytes. d += emitLiteral(dst[d:], src[nextEmit:s]) // Call emitCopy, and then see if another emitCopy could be our next // move. Repeat until we find no match for the input immediately after // what was consumed by the last emitCopy call. // // If we exit this loop normally then we need to call emitLiteral next, // though we don't yet know how big the literal will be. We handle that // by proceeding to the next iteration of the main loop. We also can // exit this loop via goto if we get close to exhausting the input. for { // Invariant: we have a 4-byte match at s, and no need to emit any // literal bytes prior to s. base := s // Extend the 4-byte match as long as possible. // // This is an inlined version of: // s = extendMatch(src, candidate+4, s+4) s += 4 for i := candidate + 4; s < len(src) && src[i] == src[s]; i, s = i+1, s+1 { } d += emitCopy(dst[d:], base-candidate, s-base) nextEmit = s if s >= sLimit { goto emitRemainder } // We could immediately start working at s now, but to improve // compression we first update the hash table at s-1 and at s. If // another emitCopy is not our next move, also calculate nextHash // at s+1. At least on GOARCH=amd64, these three hash calculations // are faster as one load64 call (with some shifts) instead of // three load32 calls. x := load64(src, s-1) prevHash := hash(uint32(x>>0), shift) table[prevHash&tableMask] = uint16(s - 1) currHash := hash(uint32(x>>8), shift) candidate = int(table[currHash&tableMask]) table[currHash&tableMask] = uint16(s) if uint32(x>>8) != load32(src, candidate) { nextHash = hash(uint32(x>>16), shift) s++ break } } } emitRemainder: if nextEmit < len(src) { d += emitLiteral(dst[d:], src[nextEmit:]) } return d } compress-1.2.1/snappy/golden_test.go000066400000000000000000001236141303637052300175270ustar00rootroot00000000000000// Copyright 2016 The Snappy-Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package snappy // extendMatchGoldenTestCases is the i and j arguments, and the returned value, // for every extendMatch call issued when encoding the // testdata/Mark.Twain-Tom.Sawyer.txt file. It is used to benchmark the // extendMatch implementation. // // It was generated manually by adding some print statements to the (pure Go) // extendMatch implementation: // // func extendMatch(src []byte, i, j int) int { // i0, j0 := i, j // for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 { // } // println("{", i0, ",", j0, ",", j, "},") // return j // } // // and running "go test -test.run=EncodeGoldenInput -tags=noasm". var extendMatchGoldenTestCases = []struct { i, j, want int }{ {11, 61, 62}, {80, 81, 82}, {86, 87, 101}, {85, 133, 149}, {152, 153, 162}, {133, 168, 193}, {168, 207, 225}, {81, 255, 275}, {278, 279, 283}, {306, 417, 417}, {373, 428, 430}, {389, 444, 447}, {474, 510, 512}, {465, 533, 533}, {47, 547, 547}, {307, 551, 554}, {420, 582, 587}, {309, 604, 604}, {604, 625, 625}, {538, 629, 629}, {328, 640, 640}, {573, 645, 645}, {319, 657, 657}, {30, 664, 664}, {45, 679, 680}, {621, 684, 684}, {376, 700, 700}, {33, 707, 708}, {601, 733, 733}, {334, 744, 745}, {625, 758, 759}, {382, 763, 763}, {550, 769, 771}, {533, 789, 789}, {804, 813, 813}, {342, 841, 842}, {742, 847, 847}, {74, 852, 852}, {810, 864, 864}, {758, 868, 869}, {714, 883, 883}, {582, 889, 891}, {61, 934, 935}, {894, 942, 942}, {939, 949, 949}, {785, 956, 957}, {886, 978, 978}, {792, 998, 998}, {998, 1005, 1005}, {572, 1032, 1032}, {698, 1051, 1053}, {599, 1067, 1069}, {1056, 1079, 1079}, {942, 1089, 1090}, {831, 1094, 1096}, {1088, 1100, 1103}, {732, 1113, 1114}, {1037, 1118, 1118}, {872, 1128, 1130}, {1079, 1140, 1142}, {332, 1162, 1162}, {207, 1168, 1186}, {1189, 1190, 1225}, {105, 1229, 1230}, {79, 1256, 1257}, {1190, 1261, 1283}, {255, 1306, 1306}, {1319, 1339, 1358}, {364, 1370, 1370}, {955, 1378, 1380}, {122, 1403, 1403}, {1325, 1407, 1419}, {664, 1423, 1424}, {941, 1461, 1463}, {867, 1477, 1478}, {757, 1488, 1489}, {1140, 1499, 1499}, {31, 1506, 1506}, {1487, 1510, 1512}, {1089, 1520, 1521}, {1467, 1525, 1529}, {1394, 1537, 1537}, {1499, 1541, 1541}, {367, 1558, 1558}, {1475, 1564, 1564}, {1525, 1568, 1571}, {1541, 1582, 1583}, {864, 1587, 1588}, {704, 1597, 1597}, {336, 1602, 1602}, {1383, 1613, 1613}, {1498, 1617, 1618}, {1051, 1623, 1625}, {401, 1643, 1645}, {1072, 1654, 1655}, {1067, 1667, 1669}, {699, 1673, 1674}, {1587, 1683, 1684}, {920, 1696, 1696}, {1505, 1710, 1710}, {1550, 1723, 1723}, {996, 1727, 1727}, {833, 1733, 1734}, {1638, 1739, 1740}, {1654, 1744, 1744}, {753, 1761, 1761}, {1548, 1773, 1773}, {1568, 1777, 1780}, {1683, 1793, 1794}, {948, 1801, 1801}, {1666, 1805, 1808}, {1502, 1814, 1814}, {1696, 1822, 1822}, {502, 1836, 1837}, {917, 1843, 1843}, {1733, 1854, 1855}, {970, 1859, 1859}, {310, 1863, 1863}, {657, 1872, 1872}, {1005, 1876, 1876}, {1662, 1880, 1880}, {904, 1892, 1892}, {1427, 1910, 1910}, {1772, 1929, 1930}, {1822, 1937, 1940}, {1858, 1949, 1950}, {1602, 1956, 1956}, {1150, 1962, 1962}, {1504, 1966, 1967}, {51, 1971, 1971}, {1605, 1979, 1979}, {1458, 1983, 1988}, {1536, 2001, 2006}, {1373, 2014, 2018}, {1494, 2025, 2025}, {1667, 2029, 2031}, {1592, 2035, 2035}, {330, 2045, 2045}, {1376, 2053, 2053}, {1991, 2058, 2059}, {1635, 2065, 2065}, {1992, 2073, 2074}, {2014, 2080, 2081}, {1546, 2085, 2087}, {59, 2099, 2099}, {1996, 2106, 2106}, {1836, 2110, 2110}, {2068, 2114, 2114}, {1338, 2122, 2122}, {1562, 2128, 2130}, {1934, 2134, 2134}, {2114, 2141, 2142}, {977, 2149, 2150}, {956, 2154, 2155}, {1407, 2162, 2162}, {1773, 2166, 2166}, {883, 2171, 2171}, {623, 2175, 2178}, {1520, 2191, 2192}, {1162, 2200, 2200}, {912, 2204, 2204}, {733, 2208, 2208}, {1777, 2212, 2215}, {1532, 2219, 2219}, {718, 2223, 2225}, {2069, 2229, 2229}, {2207, 2245, 2246}, {1139, 2264, 2264}, {677, 2274, 2274}, {2099, 2279, 2279}, {1863, 2283, 2283}, {1966, 2305, 2306}, {2279, 2313, 2313}, {1628, 2319, 2319}, {755, 2329, 2329}, {1461, 2334, 2334}, {2117, 2340, 2340}, {2313, 2349, 2349}, {1859, 2353, 2353}, {1048, 2362, 2362}, {895, 2366, 2366}, {2278, 2373, 2373}, {1884, 2377, 2377}, {1402, 2387, 2392}, {700, 2398, 2398}, {1971, 2402, 2402}, {2009, 2419, 2419}, {1441, 2426, 2428}, {2208, 2432, 2432}, {2038, 2436, 2436}, {932, 2443, 2443}, {1759, 2447, 2448}, {744, 2452, 2452}, {1875, 2458, 2458}, {2405, 2468, 2468}, {1596, 2472, 2473}, {1953, 2480, 2482}, {736, 2487, 2487}, {1913, 2493, 2493}, {774, 2497, 2497}, {1484, 2506, 2508}, {2432, 2512, 2512}, {752, 2519, 2519}, {2497, 2523, 2523}, {2409, 2528, 2529}, {2122, 2533, 2533}, {2396, 2537, 2538}, {2410, 2547, 2548}, {1093, 2555, 2560}, {551, 2564, 2565}, {2268, 2569, 2569}, {1362, 2580, 2580}, {1916, 2584, 2585}, {994, 2589, 2590}, {1979, 2596, 2596}, {1041, 2602, 2602}, {2104, 2614, 2616}, {2609, 2621, 2628}, {2329, 2638, 2638}, {2211, 2657, 2658}, {2638, 2662, 2667}, {2578, 2676, 2679}, {2153, 2685, 2686}, {2608, 2696, 2697}, {598, 2712, 2712}, {2620, 2719, 2720}, {1888, 2724, 2728}, {2709, 2732, 2732}, {1365, 2739, 2739}, {784, 2747, 2748}, {424, 2753, 2753}, {2204, 2759, 2759}, {812, 2768, 2769}, {2455, 2773, 2773}, {1722, 2781, 2781}, {1917, 2792, 2792}, {2705, 2799, 2799}, {2685, 2806, 2807}, {2742, 2811, 2811}, {1370, 2818, 2818}, {2641, 2830, 2830}, {2512, 2837, 2837}, {2457, 2841, 2841}, {2756, 2845, 2845}, {2719, 2855, 2855}, {1423, 2859, 2859}, {2849, 2863, 2865}, {1474, 2871, 2871}, {1161, 2875, 2876}, {2282, 2880, 2881}, {2746, 2888, 2888}, {1783, 2893, 2893}, {2401, 2899, 2900}, {2632, 2920, 2923}, {2422, 2928, 2930}, {2715, 2939, 2939}, {2162, 2943, 2943}, {2859, 2947, 2947}, {1910, 2951, 2951}, {1431, 2955, 2956}, {1439, 2964, 2964}, {2501, 2968, 2969}, {2029, 2973, 2976}, {689, 2983, 2984}, {1658, 2988, 2988}, {1031, 2996, 2996}, {2149, 3001, 3002}, {25, 3009, 3013}, {2964, 3023, 3023}, {953, 3027, 3028}, {2359, 3036, 3036}, {3023, 3049, 3049}, {2880, 3055, 3056}, {2973, 3076, 3077}, {2874, 3090, 3090}, {2871, 3094, 3094}, {2532, 3100, 3100}, {2938, 3107, 3108}, {350, 3115, 3115}, {2196, 3119, 3121}, {1133, 3127, 3129}, {1797, 3134, 3150}, {3032, 3158, 3158}, {3016, 3172, 3172}, {2533, 3179, 3179}, {3055, 3187, 3188}, {1384, 3192, 3193}, {2799, 3199, 3199}, {2126, 3203, 3207}, {2334, 3215, 3215}, {2105, 3220, 3221}, {3199, 3229, 3229}, {2891, 3233, 3233}, {855, 3240, 3240}, {1852, 3253, 3256}, {2140, 3263, 3263}, {1682, 3268, 3270}, {3243, 3274, 3274}, {924, 3279, 3279}, {2212, 3283, 3283}, {2596, 3287, 3287}, {2999, 3291, 3291}, {2353, 3295, 3295}, {2480, 3302, 3304}, {1959, 3308, 3311}, {3000, 3318, 3318}, {845, 3330, 3330}, {2283, 3334, 3334}, {2519, 3342, 3342}, {3325, 3346, 3348}, {2397, 3353, 3354}, {2763, 3358, 3358}, {3198, 3363, 3364}, {3211, 3368, 3372}, {2950, 3376, 3377}, {3245, 3388, 3391}, {2264, 3398, 3398}, {795, 3403, 3403}, {3287, 3407, 3407}, {3358, 3411, 3411}, {3317, 3415, 3415}, {3232, 3431, 3431}, {2128, 3435, 3437}, {3236, 3441, 3441}, {3398, 3445, 3446}, {2814, 3450, 3450}, {3394, 3466, 3466}, {2425, 3470, 3470}, {3330, 3476, 3476}, {1612, 3480, 3480}, {1004, 3485, 3486}, {2732, 3490, 3490}, {1117, 3494, 3495}, {629, 3501, 3501}, {3087, 3514, 3514}, {684, 3518, 3518}, {3489, 3522, 3524}, {1760, 3529, 3529}, {617, 3537, 3537}, {3431, 3541, 3541}, {997, 3547, 3547}, {882, 3552, 3553}, {2419, 3558, 3558}, {610, 3562, 3563}, {1903, 3567, 3569}, {3005, 3575, 3575}, {3076, 3585, 3586}, {3541, 3590, 3590}, {3490, 3594, 3594}, {1899, 3599, 3599}, {3545, 3606, 3606}, {3290, 3614, 3615}, {2056, 3619, 3620}, {3556, 3625, 3625}, {3294, 3632, 3633}, {637, 3643, 3644}, {3609, 3648, 3650}, {3175, 3658, 3658}, {3498, 3665, 3665}, {1597, 3669, 3669}, {1983, 3673, 3673}, {3215, 3682, 3682}, {3544, 3689, 3689}, {3694, 3698, 3698}, {3228, 3715, 3716}, {2594, 3720, 3722}, {3573, 3726, 3726}, {2479, 3732, 3735}, {3191, 3741, 3742}, {1113, 3746, 3747}, {2844, 3751, 3751}, {3445, 3756, 3757}, {3755, 3766, 3766}, {3421, 3775, 3780}, {3593, 3784, 3786}, {3263, 3796, 3796}, {3469, 3806, 3806}, {2602, 3815, 3815}, {723, 3819, 3821}, {1608, 3826, 3826}, {3334, 3830, 3830}, {2198, 3835, 3835}, {2635, 3840, 3840}, {3702, 3852, 3853}, {3406, 3858, 3859}, {3681, 3867, 3870}, {3407, 3880, 3880}, {340, 3889, 3889}, {3772, 3893, 3893}, {593, 3897, 3897}, {2563, 3914, 3916}, {2981, 3929, 3929}, {1835, 3933, 3934}, {3906, 3951, 3951}, {1459, 3958, 3958}, {3889, 3974, 3974}, {2188, 3982, 3982}, {3220, 3986, 3987}, {3585, 3991, 3993}, {3712, 3997, 4001}, {2805, 4007, 4007}, {1879, 4012, 4013}, {3618, 4018, 4018}, {1145, 4031, 4032}, {3901, 4037, 4037}, {2772, 4046, 4047}, {2802, 4053, 4054}, {3299, 4058, 4058}, {3725, 4066, 4066}, {2271, 4070, 4070}, {385, 4075, 4076}, {3624, 4089, 4090}, {3745, 4096, 4098}, {1563, 4102, 4102}, {4045, 4106, 4111}, {3696, 4115, 4119}, {3376, 4125, 4126}, {1880, 4130, 4130}, {2048, 4140, 4141}, {2724, 4149, 4149}, {1767, 4156, 4156}, {2601, 4164, 4164}, {2757, 4168, 4168}, {3974, 4172, 4172}, {3914, 4178, 4178}, {516, 4185, 4185}, {1032, 4189, 4190}, {3462, 4197, 4198}, {3805, 4202, 4203}, {3910, 4207, 4212}, {3075, 4221, 4221}, {3756, 4225, 4226}, {1872, 4236, 4237}, {3844, 4241, 4241}, {3991, 4245, 4249}, {2203, 4258, 4258}, {3903, 4267, 4268}, {705, 4272, 4272}, {1896, 4276, 4276}, {1955, 4285, 4288}, {3746, 4302, 4303}, {2672, 4311, 4311}, {3969, 4317, 4317}, {3883, 4322, 4322}, {1920, 4339, 4340}, {3527, 4344, 4346}, {1160, 4358, 4358}, {3648, 4364, 4366}, {2711, 4387, 4387}, {3619, 4391, 4392}, {1944, 4396, 4396}, {4369, 4400, 4400}, {2736, 4404, 4407}, {2546, 4411, 4412}, {4390, 4422, 4422}, {3610, 4426, 4427}, {4058, 4431, 4431}, {4374, 4435, 4435}, {3463, 4445, 4446}, {1813, 4452, 4452}, {3669, 4456, 4456}, {3830, 4460, 4460}, {421, 4464, 4465}, {1719, 4471, 4471}, {3880, 4475, 4475}, {1834, 4485, 4487}, {3590, 4491, 4491}, {442, 4496, 4497}, {4435, 4501, 4501}, {3814, 4509, 4509}, {987, 4513, 4513}, {4494, 4518, 4521}, {3218, 4526, 4529}, {4221, 4537, 4537}, {2778, 4543, 4545}, {4422, 4552, 4552}, {4031, 4558, 4559}, {4178, 4563, 4563}, {3726, 4567, 4574}, {4027, 4578, 4578}, {4339, 4585, 4587}, {3796, 4592, 4595}, {543, 4600, 4613}, {2855, 4620, 4621}, {2795, 4627, 4627}, {3440, 4631, 4632}, {4279, 4636, 4639}, {4245, 4643, 4645}, {4516, 4649, 4650}, {3133, 4654, 4654}, {4042, 4658, 4659}, {3422, 4663, 4663}, {4046, 4667, 4668}, {4267, 4672, 4672}, {4004, 4676, 4677}, {2490, 4682, 4682}, {2451, 4697, 4697}, {3027, 4705, 4705}, {4028, 4717, 4717}, {4460, 4721, 4721}, {2471, 4725, 4727}, {3090, 4735, 4735}, {3192, 4739, 4740}, {3835, 4760, 4760}, {4540, 4764, 4764}, {4007, 4772, 4774}, {619, 4784, 4784}, {3561, 4789, 4791}, {3367, 4805, 4805}, {4490, 4810, 4811}, {2402, 4815, 4815}, {3352, 4819, 4822}, {2773, 4828, 4828}, {4552, 4832, 4832}, {2522, 4840, 4841}, {316, 4847, 4852}, {4715, 4858, 4858}, {2959, 4862, 4862}, {4858, 4868, 4869}, {2134, 4873, 4873}, {578, 4878, 4878}, {4189, 4889, 4890}, {2229, 4894, 4894}, {4501, 4898, 4898}, {2297, 4903, 4903}, {2933, 4909, 4909}, {3008, 4913, 4913}, {3153, 4917, 4917}, {4819, 4921, 4921}, {4921, 4932, 4933}, {4920, 4944, 4945}, {4814, 4954, 4955}, {576, 4966, 4966}, {1854, 4970, 4971}, {1374, 4975, 4976}, {3307, 4980, 4980}, {974, 4984, 4988}, {4721, 4992, 4992}, {4898, 4996, 4996}, {4475, 5006, 5006}, {3819, 5012, 5012}, {1948, 5019, 5021}, {4954, 5027, 5029}, {3740, 5038, 5040}, {4763, 5044, 5045}, {1936, 5051, 5051}, {4844, 5055, 5060}, {4215, 5069, 5072}, {1146, 5076, 5076}, {3845, 5082, 5082}, {4865, 5090, 5090}, {4624, 5094, 5094}, {4815, 5098, 5098}, {5006, 5105, 5105}, {4980, 5109, 5109}, {4795, 5113, 5115}, {5043, 5119, 5121}, {4782, 5129, 5129}, {3826, 5139, 5139}, {3876, 5156, 5156}, {3111, 5167, 5171}, {1470, 5177, 5177}, {4431, 5181, 5181}, {546, 5189, 5189}, {4225, 5193, 5193}, {1672, 5199, 5201}, {4207, 5205, 5209}, {4220, 5216, 5217}, {4658, 5224, 5225}, {3295, 5235, 5235}, {2436, 5239, 5239}, {2349, 5246, 5246}, {2175, 5250, 5250}, {5180, 5257, 5258}, {3161, 5263, 5263}, {5105, 5272, 5272}, {3552, 5282, 5282}, {4944, 5299, 5300}, {4130, 5312, 5313}, {902, 5323, 5323}, {913, 5327, 5327}, {2987, 5333, 5334}, {5150, 5344, 5344}, {5249, 5348, 5348}, {1965, 5358, 5359}, {5330, 5364, 5364}, {2012, 5373, 5377}, {712, 5384, 5386}, {5235, 5390, 5390}, {5044, 5398, 5399}, {564, 5406, 5406}, {39, 5410, 5410}, {4642, 5422, 5425}, {4421, 5437, 5438}, {2347, 5449, 5449}, {5333, 5453, 5454}, {4136, 5458, 5459}, {3793, 5468, 5468}, {2243, 5480, 5480}, {4889, 5492, 5493}, {4295, 5504, 5504}, {2785, 5511, 5511}, {2377, 5518, 5518}, {3662, 5525, 5525}, {5097, 5529, 5530}, {4781, 5537, 5538}, {4697, 5547, 5548}, {436, 5552, 5553}, {5542, 5558, 5558}, {3692, 5562, 5562}, {2696, 5568, 5569}, {4620, 5578, 5578}, {2898, 5590, 5590}, {5557, 5596, 5618}, {2797, 5623, 5625}, {2792, 5629, 5629}, {5243, 5633, 5633}, {5348, 5637, 5637}, {5547, 5643, 5643}, {4296, 5654, 5655}, {5568, 5662, 5662}, {3001, 5670, 5671}, {3794, 5679, 5679}, {4006, 5685, 5686}, {4969, 5690, 5692}, {687, 5704, 5704}, {4563, 5708, 5708}, {1723, 5738, 5738}, {649, 5742, 5742}, {5163, 5748, 5755}, {3907, 5759, 5759}, {3074, 5764, 5764}, {5326, 5771, 5771}, {2951, 5776, 5776}, {5181, 5780, 5780}, {2614, 5785, 5788}, {4709, 5794, 5794}, {2784, 5799, 5799}, {5518, 5803, 5803}, {4155, 5812, 5815}, {921, 5819, 5819}, {5224, 5823, 5824}, {2853, 5830, 5836}, {5776, 5840, 5840}, {2955, 5844, 5845}, {5745, 5853, 5853}, {3291, 5857, 5857}, {2988, 5861, 5861}, {2647, 5865, 5865}, {5398, 5869, 5870}, {1085, 5874, 5875}, {4906, 5881, 5881}, {802, 5886, 5886}, {5119, 5890, 5893}, {5802, 5899, 5900}, {3415, 5904, 5904}, {5629, 5908, 5908}, {3714, 5912, 5914}, {5558, 5921, 5921}, {2710, 5927, 5928}, {1094, 5932, 5934}, {2653, 5940, 5941}, {4735, 5954, 5954}, {5861, 5958, 5958}, {1040, 5971, 5971}, {5514, 5977, 5977}, {5048, 5981, 5982}, {5953, 5992, 5993}, {3751, 5997, 5997}, {4991, 6001, 6002}, {5885, 6006, 6007}, {5529, 6011, 6012}, {4974, 6019, 6020}, {5857, 6024, 6024}, {3483, 6032, 6032}, {3594, 6036, 6036}, {1997, 6040, 6040}, {5997, 6044, 6047}, {5197, 6051, 6051}, {1764, 6055, 6055}, {6050, 6059, 6059}, {5239, 6063, 6063}, {5049, 6067, 6067}, {5957, 6073, 6074}, {1022, 6078, 6078}, {3414, 6083, 6084}, {3809, 6090, 6090}, {4562, 6095, 6096}, {5878, 6104, 6104}, {594, 6108, 6109}, {3353, 6115, 6116}, {4992, 6120, 6121}, {2424, 6125, 6125}, {4484, 6130, 6130}, {3900, 6134, 6135}, {5793, 6139, 6141}, {3562, 6145, 6145}, {1438, 6152, 6153}, {6058, 6157, 6158}, {4411, 6162, 6163}, {4590, 6167, 6171}, {4748, 6175, 6175}, {5517, 6183, 6184}, {6095, 6191, 6192}, {1471, 6203, 6203}, {2643, 6209, 6210}, {450, 6220, 6220}, {5266, 6226, 6226}, {2576, 6233, 6233}, {2607, 6239, 6240}, {5164, 6244, 6251}, {6054, 6255, 6255}, {1789, 6260, 6261}, {5250, 6265, 6265}, {6062, 6273, 6278}, {5990, 6282, 6282}, {3283, 6286, 6286}, {5436, 6290, 6290}, {6059, 6294, 6294}, {5668, 6298, 6300}, {3072, 6324, 6329}, {3132, 6338, 6339}, {3246, 6343, 6344}, {28, 6348, 6349}, {1503, 6353, 6355}, {6067, 6359, 6359}, {3384, 6364, 6364}, {545, 6375, 6376}, {5803, 6380, 6380}, {5522, 6384, 6385}, {5908, 6389, 6389}, {2796, 6393, 6396}, {4831, 6403, 6404}, {6388, 6412, 6412}, {6005, 6417, 6420}, {4450, 6430, 6430}, {4050, 6435, 6435}, {5372, 6441, 6441}, {4378, 6447, 6447}, {6199, 6452, 6452}, {3026, 6456, 6456}, {2642, 6460, 6462}, {6392, 6470, 6470}, {6459, 6474, 6474}, {2829, 6487, 6488}, {2942, 6499, 6504}, {5069, 6508, 6511}, {5341, 6515, 6516}, {5853, 6521, 6525}, {6104, 6531, 6531}, {5759, 6535, 6538}, {4672, 6542, 6543}, {2443, 6550, 6550}, {5109, 6554, 6554}, {6494, 6558, 6560}, {6006, 6570, 6572}, {6424, 6576, 6580}, {4693, 6591, 6592}, {6439, 6596, 6597}, {3179, 6601, 6601}, {5299, 6606, 6607}, {4148, 6612, 6613}, {3774, 6617, 6617}, {3537, 6623, 6624}, {4975, 6628, 6629}, {3848, 6636, 6636}, {856, 6640, 6640}, {5724, 6645, 6645}, {6632, 6651, 6651}, {4630, 6656, 6658}, {1440, 6662, 6662}, {4281, 6666, 6667}, {4302, 6671, 6672}, {2589, 6676, 6677}, {5647, 6681, 6687}, {6082, 6691, 6693}, {6144, 6698, 6698}, {6103, 6709, 6710}, {3710, 6714, 6714}, {4253, 6718, 6721}, {2467, 6730, 6730}, {4778, 6734, 6734}, {6528, 6738, 6738}, {4358, 6747, 6747}, {5889, 6753, 6753}, {5193, 6757, 6757}, {5797, 6761, 6761}, {3858, 6765, 6766}, {5951, 6776, 6776}, {6487, 6781, 6782}, {3282, 6786, 6787}, {4667, 6797, 6799}, {1927, 6803, 6806}, {6583, 6810, 6810}, {4937, 6814, 6814}, {6099, 6824, 6824}, {4415, 6835, 6836}, {6332, 6840, 6841}, {5160, 6850, 6850}, {4764, 6854, 6854}, {6814, 6858, 6859}, {3018, 6864, 6864}, {6293, 6868, 6869}, {6359, 6877, 6877}, {3047, 6884, 6886}, {5262, 6890, 6891}, {5471, 6900, 6900}, {3268, 6910, 6912}, {1047, 6916, 6916}, {5904, 6923, 6923}, {5798, 6933, 6938}, {4149, 6942, 6942}, {1821, 6946, 6946}, {3599, 6952, 6952}, {6470, 6957, 6957}, {5562, 6961, 6961}, {6268, 6965, 6967}, {6389, 6971, 6971}, {6596, 6975, 6976}, {6553, 6980, 6981}, {6576, 6985, 6989}, {1375, 6993, 6993}, {652, 6998, 6998}, {4876, 7002, 7003}, {5768, 7011, 7013}, {3973, 7017, 7017}, {6802, 7025, 7025}, {6955, 7034, 7036}, {6974, 7040, 7040}, {5944, 7044, 7044}, {6992, 7048, 7054}, {6872, 7059, 7059}, {2943, 7063, 7063}, {6923, 7067, 7067}, {5094, 7071, 7071}, {4873, 7075, 7075}, {5819, 7079, 7079}, {5945, 7085, 7085}, {1540, 7090, 7091}, {2090, 7095, 7095}, {5024, 7104, 7105}, {6900, 7109, 7109}, {6024, 7113, 7114}, {6000, 7118, 7120}, {2187, 7124, 7125}, {6760, 7129, 7130}, {5898, 7134, 7136}, {7032, 7144, 7144}, {4271, 7148, 7148}, {3706, 7152, 7152}, {6970, 7156, 7157}, {7088, 7161, 7163}, {2718, 7168, 7169}, {5674, 7175, 7175}, {4631, 7182, 7182}, {7070, 7188, 7189}, {6220, 7196, 7196}, {3458, 7201, 7202}, {2041, 7211, 7212}, {1454, 7216, 7216}, {5199, 7225, 7227}, {3529, 7234, 7234}, {6890, 7238, 7238}, {3815, 7242, 7243}, {5490, 7250, 7253}, {6554, 7257, 7263}, {5890, 7267, 7269}, {6877, 7273, 7273}, {4877, 7277, 7277}, {2502, 7285, 7285}, {1483, 7289, 7295}, {7210, 7304, 7308}, {6845, 7313, 7316}, {7219, 7320, 7320}, {7001, 7325, 7329}, {6853, 7333, 7334}, {6120, 7338, 7338}, {6606, 7342, 7343}, {7020, 7348, 7350}, {3509, 7354, 7354}, {7133, 7359, 7363}, {3434, 7371, 7374}, {2787, 7384, 7384}, {7044, 7388, 7388}, {6960, 7394, 7395}, {6676, 7399, 7400}, {7161, 7404, 7404}, {7285, 7417, 7418}, {4558, 7425, 7426}, {4828, 7430, 7430}, {6063, 7436, 7436}, {3597, 7442, 7442}, {914, 7446, 7446}, {7320, 7452, 7454}, {7267, 7458, 7460}, {5076, 7464, 7464}, {7430, 7468, 7469}, {6273, 7473, 7474}, {7440, 7478, 7487}, {7348, 7491, 7494}, {1021, 7510, 7510}, {7473, 7515, 7515}, {2823, 7519, 7519}, {6264, 7527, 7527}, {7302, 7531, 7531}, {7089, 7535, 7535}, {7342, 7540, 7541}, {3688, 7547, 7551}, {3054, 7558, 7560}, {4177, 7566, 7567}, {6691, 7574, 7575}, {7156, 7585, 7586}, {7147, 7590, 7592}, {7407, 7598, 7598}, {7403, 7602, 7603}, {6868, 7607, 7607}, {6636, 7611, 7611}, {4805, 7617, 7617}, {5779, 7623, 7623}, {7063, 7627, 7627}, {5079, 7632, 7632}, {7377, 7637, 7637}, {7337, 7641, 7642}, {6738, 7655, 7655}, {7338, 7659, 7659}, {6541, 7669, 7671}, {595, 7675, 7675}, {7658, 7679, 7680}, {7647, 7685, 7686}, {2477, 7690, 7690}, {5823, 7694, 7694}, {4156, 7699, 7699}, {5931, 7703, 7706}, {6854, 7712, 7712}, {4931, 7718, 7718}, {6979, 7722, 7722}, {5085, 7727, 7727}, {6965, 7732, 7732}, {7201, 7736, 7737}, {3639, 7741, 7743}, {7534, 7749, 7749}, {4292, 7753, 7753}, {3427, 7759, 7763}, {7273, 7767, 7767}, {940, 7778, 7778}, {4838, 7782, 7785}, {4216, 7790, 7792}, {922, 7800, 7801}, {7256, 7810, 7811}, {7789, 7815, 7819}, {7225, 7823, 7825}, {7531, 7829, 7829}, {6997, 7833, 7833}, {7757, 7837, 7838}, {4129, 7842, 7842}, {7333, 7848, 7849}, {6776, 7855, 7855}, {7527, 7859, 7859}, {4370, 7863, 7863}, {4512, 7868, 7868}, {5679, 7880, 7880}, {3162, 7884, 7885}, {3933, 7892, 7894}, {7804, 7899, 7902}, {6363, 7906, 7907}, {7848, 7911, 7912}, {5584, 7917, 7921}, {874, 7926, 7926}, {3342, 7930, 7930}, {4507, 7935, 7937}, {3672, 7943, 7944}, {7911, 7948, 7949}, {6402, 7956, 7956}, {7940, 7960, 7960}, {7113, 7964, 7964}, {1073, 7968, 7968}, {7740, 7974, 7974}, {7601, 7978, 7982}, {6797, 7987, 7988}, {3528, 7994, 7995}, {5483, 7999, 7999}, {5717, 8011, 8011}, {5480, 8017, 8017}, {7770, 8023, 8030}, {2452, 8034, 8034}, {5282, 8047, 8047}, {7967, 8051, 8051}, {1128, 8058, 8066}, {6348, 8070, 8070}, {8055, 8077, 8077}, {7925, 8081, 8086}, {6810, 8090, 8090}, {5051, 8101, 8101}, {4696, 8109, 8110}, {5129, 8119, 8119}, {4449, 8123, 8123}, {7222, 8127, 8127}, {4649, 8131, 8134}, {7994, 8138, 8138}, {5954, 8148, 8148}, {475, 8152, 8153}, {7906, 8157, 8157}, {7458, 8164, 8166}, {7632, 8171, 8173}, {3874, 8177, 8183}, {4391, 8187, 8187}, {561, 8191, 8191}, {2417, 8195, 8195}, {2357, 8204, 8204}, {2269, 8216, 8218}, {3968, 8222, 8222}, {2200, 8226, 8227}, {3453, 8247, 8247}, {2439, 8251, 8252}, {7175, 8257, 8257}, {976, 8262, 8264}, {4953, 8273, 8273}, {4219, 8278, 8278}, {6, 8285, 8291}, {5703, 8295, 8296}, {5272, 8300, 8300}, {8037, 8304, 8304}, {8186, 8314, 8314}, {8304, 8318, 8318}, {8051, 8326, 8326}, {8318, 8330, 8330}, {2671, 8334, 8335}, {2662, 8339, 8339}, {8081, 8349, 8350}, {3328, 8356, 8356}, {2879, 8360, 8362}, {8050, 8370, 8371}, {8330, 8375, 8376}, {8375, 8386, 8386}, {4961, 8390, 8390}, {1017, 8403, 8405}, {3533, 8416, 8416}, {4555, 8422, 8422}, {6445, 8426, 8426}, {8169, 8432, 8432}, {990, 8436, 8436}, {4102, 8440, 8440}, {7398, 8444, 8446}, {3480, 8450, 8450}, {6324, 8462, 8462}, {7948, 8466, 8467}, {5950, 8471, 8471}, {5189, 8476, 8476}, {4026, 8490, 8490}, {8374, 8494, 8495}, {4682, 8501, 8501}, {7387, 8506, 8506}, {8164, 8510, 8515}, {4079, 8524, 8524}, {8360, 8529, 8531}, {7446, 8540, 8543}, {7971, 8547, 8548}, {4311, 8552, 8552}, {5204, 8556, 8557}, {7968, 8562, 8562}, {7847, 8571, 8573}, {8547, 8577, 8577}, {5320, 8581, 8581}, {8556, 8585, 8586}, {8504, 8590, 8590}, {7669, 8602, 8604}, {5874, 8608, 8609}, {5828, 8613, 8613}, {7998, 8617, 8617}, {8519, 8625, 8625}, {7250, 8637, 8637}, {426, 8641, 8641}, {8436, 8645, 8645}, {5986, 8649, 8656}, {8157, 8660, 8660}, {7182, 8665, 8665}, {8421, 8675, 8675}, {8509, 8681, 8681}, {5137, 8688, 8689}, {8625, 8694, 8695}, {5228, 8701, 8702}, {6661, 8714, 8714}, {1010, 8719, 8719}, {6648, 8723, 8723}, {3500, 8728, 8728}, {2442, 8735, 8735}, {8494, 8740, 8741}, {8171, 8753, 8755}, {7242, 8763, 8764}, {4739, 8768, 8769}, {7079, 8773, 8773}, {8386, 8777, 8777}, {8624, 8781, 8787}, {661, 8791, 8794}, {8631, 8801, 8801}, {7753, 8805, 8805}, {4783, 8809, 8810}, {1673, 8814, 8815}, {6623, 8819, 8819}, {4404, 8823, 8823}, {8089, 8827, 8828}, {8773, 8832, 8832}, {5394, 8836, 8836}, {6231, 8841, 8843}, {1015, 8852, 8853}, {6873, 8857, 8857}, {6289, 8865, 8865}, {8577, 8869, 8869}, {8114, 8873, 8875}, {8534, 8883, 8883}, {3007, 8887, 8888}, {8827, 8892, 8893}, {4788, 8897, 8900}, {5698, 8906, 8907}, {7690, 8911, 8911}, {6643, 8919, 8919}, {7206, 8923, 8924}, {7866, 8929, 8931}, {8880, 8942, 8942}, {8630, 8951, 8952}, {6027, 8958, 8958}, {7749, 8966, 8967}, {4932, 8972, 8973}, {8892, 8980, 8981}, {634, 9003, 9003}, {8109, 9007, 9008}, {8777, 9012, 9012}, {3981, 9016, 9017}, {5723, 9025, 9025}, {7662, 9034, 9038}, {8955, 9042, 9042}, {8070, 9060, 9062}, {8910, 9066, 9066}, {5363, 9070, 9071}, {7699, 9075, 9076}, {8991, 9081, 9081}, {6850, 9085, 9085}, {5811, 9092, 9094}, {9079, 9098, 9102}, {6456, 9106, 9106}, {2259, 9111, 9111}, {4752, 9116, 9116}, {9060, 9120, 9123}, {8090, 9127, 9127}, {5305, 9131, 9132}, {8623, 9137, 9137}, {7417, 9141, 9141}, {6564, 9148, 9149}, {9126, 9157, 9158}, {4285, 9169, 9170}, {8698, 9174, 9174}, {8869, 9178, 9178}, {2572, 9182, 9183}, {6482, 9188, 9190}, {9181, 9201, 9201}, {2968, 9208, 9209}, {2506, 9213, 9215}, {9127, 9219, 9219}, {7910, 9225, 9227}, {5422, 9235, 9239}, {8813, 9244, 9246}, {9178, 9250, 9250}, {8748, 9255, 9255}, {7354, 9265, 9265}, {7767, 9269, 9269}, {7710, 9281, 9283}, {8826, 9288, 9290}, {861, 9295, 9295}, {4482, 9301, 9301}, {9264, 9305, 9306}, {8805, 9310, 9310}, {4995, 9314, 9314}, {6730, 9318, 9318}, {7457, 9328, 9328}, {2547, 9335, 9336}, {6298, 9340, 9343}, {9305, 9353, 9354}, {9269, 9358, 9358}, {6338, 9370, 9370}, {7289, 9376, 9379}, {5780, 9383, 9383}, {7607, 9387, 9387}, {2065, 9392, 9392}, {7238, 9396, 9396}, {8856, 9400, 9400}, {8069, 9412, 9413}, {611, 9420, 9420}, {7071, 9424, 9424}, {3089, 9430, 9431}, {7117, 9435, 9438}, {1976, 9445, 9445}, {6640, 9449, 9449}, {5488, 9453, 9453}, {8739, 9457, 9459}, {5958, 9466, 9466}, {7985, 9470, 9470}, {8735, 9475, 9475}, {5009, 9479, 9479}, {8073, 9483, 9484}, {2328, 9490, 9491}, {9250, 9495, 9495}, {4043, 9502, 9502}, {7712, 9506, 9506}, {9012, 9510, 9510}, {9028, 9514, 9515}, {2190, 9521, 9524}, {9029, 9528, 9528}, {9519, 9532, 9532}, {9495, 9536, 9536}, {8527, 9540, 9540}, {2137, 9550, 9550}, {8419, 9557, 9557}, {9383, 9561, 9562}, {8970, 9575, 9578}, {8911, 9582, 9582}, {7828, 9595, 9596}, {6180, 9600, 9600}, {8738, 9604, 9607}, {7540, 9611, 9612}, {9599, 9616, 9618}, {9187, 9623, 9623}, {9294, 9628, 9629}, {4536, 9639, 9639}, {3867, 9643, 9643}, {6305, 9648, 9648}, {1617, 9654, 9657}, {5762, 9666, 9666}, {8314, 9670, 9670}, {9666, 9674, 9675}, {9506, 9679, 9679}, {9669, 9685, 9686}, {9683, 9690, 9690}, {8763, 9697, 9698}, {7468, 9702, 9702}, {460, 9707, 9707}, {3115, 9712, 9712}, {9424, 9716, 9717}, {7359, 9721, 9724}, {7547, 9728, 9729}, {7151, 9733, 9738}, {7627, 9742, 9742}, {2822, 9747, 9747}, {8247, 9751, 9753}, {9550, 9758, 9758}, {7585, 9762, 9763}, {1002, 9767, 9767}, {7168, 9772, 9773}, {6941, 9777, 9780}, {9728, 9784, 9786}, {9770, 9792, 9796}, {6411, 9801, 9802}, {3689, 9806, 9808}, {9575, 9814, 9816}, {7025, 9820, 9821}, {2776, 9826, 9826}, {9806, 9830, 9830}, {9820, 9834, 9835}, {9800, 9839, 9847}, {9834, 9851, 9852}, {9829, 9856, 9862}, {1400, 9866, 9866}, {3197, 9870, 9871}, {9851, 9875, 9876}, {9742, 9883, 9884}, {3362, 9888, 9889}, {9883, 9893, 9893}, {5711, 9899, 9910}, {7806, 9915, 9915}, {9120, 9919, 9919}, {9715, 9925, 9934}, {2580, 9938, 9938}, {4907, 9942, 9944}, {6239, 9953, 9954}, {6961, 9963, 9963}, {5295, 9967, 9968}, {1915, 9972, 9973}, {3426, 9983, 9985}, {9875, 9994, 9995}, {6942, 9999, 9999}, {6621, 10005, 10005}, {7589, 10010, 10012}, {9286, 10020, 10020}, {838, 10024, 10024}, {9980, 10028, 10031}, {9994, 10035, 10041}, {2702, 10048, 10051}, {2621, 10059, 10059}, {10054, 10065, 10065}, {8612, 10073, 10074}, {7033, 10078, 10078}, {916, 10082, 10082}, {10035, 10086, 10087}, {8613, 10097, 10097}, {9919, 10107, 10108}, {6133, 10114, 10115}, {10059, 10119, 10119}, {10065, 10126, 10127}, {7732, 10131, 10131}, {7155, 10135, 10136}, {6728, 10140, 10140}, {6162, 10144, 10145}, {4724, 10150, 10150}, {1665, 10154, 10154}, {10126, 10163, 10163}, {9783, 10168, 10168}, {1715, 10172, 10173}, {7152, 10177, 10182}, {8760, 10187, 10187}, {7829, 10191, 10191}, {9679, 10196, 10196}, {9369, 10201, 10201}, {2928, 10206, 10208}, {6951, 10214, 10217}, {5633, 10221, 10221}, {7199, 10225, 10225}, {10118, 10230, 10231}, {9999, 10235, 10236}, {10045, 10240, 10249}, {5565, 10256, 10256}, {9866, 10261, 10261}, {10163, 10268, 10268}, {9869, 10272, 10272}, {9789, 10276, 10283}, {10235, 10287, 10288}, {10214, 10298, 10299}, {6971, 10303, 10303}, {3346, 10307, 10307}, {10185, 10311, 10312}, {9993, 10318, 10320}, {2779, 10332, 10334}, {1726, 10338, 10338}, {741, 10354, 10360}, {10230, 10372, 10373}, {10260, 10384, 10385}, {10131, 10389, 10398}, {6946, 10406, 10409}, {10158, 10413, 10420}, {10123, 10424, 10424}, {6157, 10428, 10429}, {4518, 10434, 10434}, {9893, 10438, 10438}, {9865, 10442, 10446}, {7558, 10454, 10454}, {10434, 10460, 10460}, {10064, 10466, 10468}, {2703, 10472, 10474}, {9751, 10478, 10479}, {6714, 10485, 10485}, {8020, 10490, 10490}, {10303, 10494, 10494}, {3521, 10499, 10500}, {9281, 10513, 10515}, {6028, 10519, 10523}, {9387, 10527, 10527}, {7614, 10531, 10531}, {3611, 10536, 10536}, {9162, 10540, 10540}, {10081, 10546, 10547}, {10034, 10560, 10562}, {6726, 10567, 10571}, {8237, 10575, 10575}, {10438, 10579, 10583}, {10140, 10587, 10587}, {5784, 10592, 10592}, {9819, 10597, 10600}, {10567, 10604, 10608}, {9335, 10613, 10613}, {8300, 10617, 10617}, {10575, 10621, 10621}, {9678, 10625, 10626}, {9962, 10632, 10633}, {10535, 10637, 10638}, {8199, 10642, 10642}, {10372, 10647, 10648}, {10637, 10656, 10657}, {10579, 10667, 10668}, {10465, 10677, 10680}, {6702, 10684, 10685}, {10073, 10691, 10692}, {4505, 10696, 10697}, {9042, 10701, 10701}, {6460, 10705, 10706}, {10010, 10714, 10716}, {10656, 10720, 10722}, {7282, 10727, 10729}, {2327, 10733, 10733}, {2491, 10740, 10741}, {10704, 10748, 10750}, {6465, 10754, 10754}, {10647, 10758, 10759}, {10424, 10763, 10763}, {10748, 10776, 10776}, {10546, 10780, 10781}, {10758, 10785, 10786}, {10287, 10790, 10797}, {10785, 10801, 10807}, {10240, 10811, 10826}, {9509, 10830, 10830}, {2579, 10836, 10838}, {9801, 10843, 10845}, {7555, 10849, 10850}, {10776, 10860, 10865}, {8023, 10869, 10869}, {10046, 10876, 10884}, {10253, 10888, 10892}, {9941, 10897, 10897}, {7898, 10901, 10905}, {6725, 10909, 10913}, {10757, 10921, 10923}, {10160, 10931, 10931}, {10916, 10935, 10942}, {10261, 10946, 10946}, {10318, 10952, 10954}, {5911, 10959, 10961}, {10801, 10965, 10966}, {10946, 10970, 10977}, {10592, 10982, 10984}, {9913, 10988, 10990}, {8510, 10994, 10996}, {9419, 11000, 11001}, {6765, 11006, 11007}, {10725, 11011, 11011}, {5537, 11017, 11019}, {9208, 11024, 11025}, {5850, 11030, 11030}, {9610, 11034, 11036}, {8846, 11041, 11047}, {9697, 11051, 11051}, {1622, 11055, 11058}, {2370, 11062, 11062}, {8393, 11067, 11067}, {9756, 11071, 11071}, {10172, 11076, 11076}, {27, 11081, 11081}, {7357, 11087, 11092}, {8151, 11104, 11106}, {6115, 11110, 11110}, {10667, 11114, 11115}, {11099, 11121, 11123}, {10705, 11127, 11127}, {8938, 11131, 11131}, {11114, 11135, 11136}, {1390, 11140, 11141}, {10964, 11146, 11148}, {11140, 11152, 11155}, {9813, 11159, 11166}, {624, 11171, 11172}, {3118, 11177, 11179}, {11029, 11184, 11186}, {10186, 11190, 11190}, {10306, 11196, 11196}, {8665, 11201, 11201}, {7382, 11205, 11205}, {1100, 11210, 11210}, {2337, 11216, 11217}, {1609, 11221, 11223}, {5763, 11228, 11229}, {5220, 11233, 11233}, {11061, 11241, 11241}, {10617, 11246, 11246}, {11190, 11250, 11251}, {10144, 11255, 11256}, {11232, 11260, 11260}, {857, 11264, 11265}, {10994, 11269, 11271}, {3879, 11280, 11281}, {11184, 11287, 11289}, {9611, 11293, 11295}, {11250, 11299, 11299}, {4495, 11304, 11304}, {7574, 11308, 11309}, {9814, 11315, 11317}, {1713, 11321, 11324}, {1905, 11328, 11328}, {8745, 11335, 11340}, {8883, 11351, 11351}, {8119, 11358, 11358}, {1842, 11363, 11364}, {11237, 11368, 11368}, {8814, 11373, 11374}, {5684, 11378, 11378}, {11011, 11382, 11382}, {6520, 11389, 11389}, {11183, 11393, 11396}, {1790, 11404, 11404}, {9536, 11408, 11408}, {11298, 11418, 11419}, {3929, 11425, 11425}, {5588, 11429, 11429}, {8476, 11436, 11436}, {4096, 11440, 11442}, {11084, 11446, 11454}, {10603, 11458, 11463}, {7332, 11472, 11474}, {7611, 11483, 11486}, {4836, 11490, 11491}, {10024, 11495, 11495}, {4917, 11501, 11506}, {6486, 11510, 11512}, {11269, 11516, 11518}, {3603, 11522, 11525}, {11126, 11535, 11535}, {11418, 11539, 11541}, {11408, 11545, 11545}, {9021, 11549, 11552}, {6745, 11557, 11557}, {5118, 11561, 11564}, {7590, 11568, 11569}, {4426, 11573, 11578}, {9790, 11582, 11583}, {6447, 11587, 11587}, {10229, 11591, 11594}, {10457, 11598, 11598}, {10168, 11604, 11604}, {10543, 11608, 11608}, {7404, 11612, 11612}, {11127, 11616, 11616}, {3337, 11620, 11620}, {11501, 11624, 11628}, {4543, 11633, 11635}, {8449, 11642, 11642}, {4943, 11646, 11648}, {10526, 11652, 11654}, {11620, 11659, 11659}, {8927, 11664, 11669}, {532, 11673, 11673}, {10513, 11677, 11679}, {10428, 11683, 11683}, {10999, 11689, 11690}, {9469, 11695, 11695}, {3606, 11699, 11699}, {9560, 11708, 11709}, {1564, 11714, 11714}, {10527, 11718, 11718}, {3071, 11723, 11726}, {11590, 11731, 11732}, {6605, 11737, 11737}, {11624, 11741, 11745}, {7822, 11749, 11752}, {5269, 11757, 11758}, {1339, 11767, 11767}, {1363, 11771, 11773}, {3704, 11777, 11777}, {10952, 11781, 11783}, {6764, 11793, 11795}, {8675, 11800, 11800}, {9963, 11804, 11804}, {11573, 11808, 11809}, {9548, 11813, 11813}, {11591, 11817, 11818}, {11446, 11822, 11822}, {9224, 11828, 11828}, {3158, 11836, 11836}, {10830, 11840, 11840}, {7234, 11846, 11846}, {11299, 11850, 11850}, {11544, 11854, 11855}, {11498, 11859, 11859}, {10993, 11865, 11868}, {9720, 11872, 11878}, {10489, 11882, 11890}, {11712, 11898, 11904}, {11516, 11908, 11910}, {11568, 11914, 11915}, {10177, 11919, 11924}, {11363, 11928, 11929}, {10494, 11933, 11933}, {9870, 11937, 11938}, {9427, 11942, 11942}, {11481, 11949, 11949}, {6030, 11955, 11957}, {11718, 11961, 11961}, {10531, 11965, 11983}, {5126, 11987, 11987}, {7515, 11991, 11991}, {10646, 11996, 11997}, {2947, 12001, 12001}, {9582, 12009, 12010}, {6202, 12017, 12018}, {11714, 12022, 12022}, {9235, 12033, 12037}, {9721, 12041, 12044}, {11932, 12051, 12052}, {12040, 12056, 12056}, {12051, 12060, 12060}, {11601, 12066, 12066}, {8426, 12070, 12070}, {4053, 12077, 12077}, {4262, 12081, 12081}, {9761, 12086, 12088}, {11582, 12092, 12093}, {10965, 12097, 12098}, {11803, 12103, 12104}, {11933, 12108, 12109}, {10688, 12117, 12117}, {12107, 12125, 12126}, {6774, 12130, 12132}, {6286, 12137, 12137}, {9543, 12141, 12141}, {12097, 12145, 12146}, {10790, 12150, 12150}, {10125, 12154, 12156}, {12125, 12164, 12164}, {12064, 12168, 12172}, {10811, 12178, 12188}, {12092, 12192, 12193}, {10058, 12197, 12198}, {11611, 12211, 12212}, {3459, 12216, 12216}, {10291, 12225, 12228}, {12191, 12232, 12234}, {12145, 12238, 12238}, {12001, 12242, 12250}, {3840, 12255, 12255}, {12216, 12259, 12259}, {674, 12272, 12272}, {12141, 12276, 12276}, {10766, 12280, 12280}, {11545, 12284, 12284}, {6496, 12290, 12290}, {11381, 12294, 12295}, {603, 12302, 12303}, {12276, 12308, 12308}, {11850, 12313, 12314}, {565, 12319, 12319}, {9351, 12324, 12324}, {11822, 12328, 12328}, {2691, 12333, 12334}, {11840, 12338, 12338}, {11070, 12343, 12343}, {9510, 12347, 12347}, {11024, 12352, 12353}, {7173, 12359, 12359}, {517, 12363, 12363}, {6311, 12367, 12368}, {11367, 12372, 12373}, {12008, 12377, 12377}, {11372, 12382, 12384}, {11358, 12391, 12392}, {11382, 12396, 12396}, {6882, 12400, 12401}, {11246, 12405, 12405}, {8359, 12409, 12412}, {10154, 12418, 12418}, {12016, 12425, 12426}, {8972, 12434, 12435}, {10478, 12439, 12440}, {12395, 12449, 12449}, {11612, 12454, 12454}, {12347, 12458, 12458}, {10700, 12466, 12467}, {3637, 12471, 12476}, {1042, 12480, 12481}, {6747, 12488, 12488}, {12396, 12492, 12493}, {9420, 12497, 12497}, {11285, 12501, 12510}, {4470, 12515, 12515}, {9374, 12519, 12519}, {11293, 12528, 12528}, {2058, 12534, 12535}, {6521, 12539, 12539}, {12492, 12543, 12543}, {3043, 12547, 12547}, {2982, 12551, 12553}, {11030, 12557, 12563}, {7636, 12568, 12568}, {9639, 12572, 12572}, {12543, 12576, 12576}, {5989, 12580, 12583}, {11051, 12587, 12587}, {1061, 12592, 12594}, {12313, 12599, 12601}, {11846, 12605, 12605}, {12576, 12609, 12609}, {11040, 12618, 12625}, {12479, 12629, 12629}, {6903, 12633, 12633}, {12322, 12639, 12639}, {12253, 12643, 12645}, {5594, 12651, 12651}, {12522, 12655, 12655}, {11703, 12659, 12659}, {1377, 12665, 12665}, {8022, 12669, 12669}, {12280, 12674, 12674}, {9023, 12680, 12681}, {12328, 12685, 12685}, {3085, 12689, 12693}, {4700, 12698, 12698}, {10224, 12702, 12702}, {8781, 12706, 12706}, {1651, 12710, 12710}, {12458, 12714, 12714}, {12005, 12718, 12721}, {11908, 12725, 12726}, {8202, 12733, 12733}, {11708, 12739, 12740}, {12599, 12744, 12745}, {12284, 12749, 12749}, {5285, 12756, 12756}, {12055, 12775, 12777}, {6919, 12782, 12782}, {12242, 12786, 12786}, {12009, 12790, 12790}, {9628, 12794, 12796}, {11354, 12801, 12802}, {10225, 12806, 12807}, {579, 12813, 12813}, {8935, 12817, 12822}, {8753, 12827, 12829}, {11006, 12835, 12835}, {858, 12841, 12845}, {476, 12849, 12849}, {7667, 12854, 12854}, {12760, 12860, 12871}, {11677, 12875, 12877}, {12714, 12881, 12881}, {12731, 12885, 12890}, {7108, 12894, 12896}, {1165, 12900, 12900}, {4021, 12906, 12906}, {10829, 12910, 12911}, {12331, 12915, 12915}, {8887, 12919, 12921}, {11639, 12925, 12925}, {7964, 12929, 12929}, {12528, 12937, 12937}, {8148, 12941, 12941}, {12770, 12948, 12950}, {12609, 12954, 12954}, {12685, 12958, 12958}, {2803, 12962, 12962}, {9561, 12966, 12966}, {6671, 12972, 12973}, {12056, 12977, 12977}, {6380, 12981, 12981}, {12048, 12985, 12985}, {11961, 12989, 12993}, {3368, 12997, 12999}, {6634, 13004, 13004}, {6775, 13009, 13010}, {12136, 13014, 13019}, {10341, 13023, 13023}, {13002, 13027, 13027}, {10587, 13031, 13031}, {10307, 13035, 13035}, {12736, 13039, 13039}, {12744, 13043, 13044}, {6175, 13048, 13048}, {9702, 13053, 13054}, {662, 13059, 13061}, {12718, 13065, 13068}, {12893, 13072, 13075}, {8299, 13086, 13091}, {12604, 13095, 13096}, {12848, 13100, 13101}, {12749, 13105, 13105}, {12526, 13109, 13114}, {9173, 13122, 13122}, {12769, 13128, 13128}, {13038, 13132, 13132}, {12725, 13136, 13137}, {12639, 13146, 13146}, {9711, 13150, 13151}, {12137, 13155, 13155}, {13039, 13159, 13159}, {4681, 13163, 13164}, {12954, 13168, 13168}, {13158, 13175, 13176}, {13105, 13180, 13180}, {10754, 13184, 13184}, {13167, 13188, 13188}, {12658, 13192, 13192}, {4294, 13199, 13200}, {11682, 13204, 13205}, {11695, 13209, 13209}, {11076, 13214, 13214}, {12232, 13218, 13218}, {9399, 13223, 13224}, {12880, 13228, 13229}, {13048, 13234, 13234}, {9701, 13238, 13239}, {13209, 13243, 13243}, {3658, 13248, 13248}, {3698, 13252, 13254}, {12237, 13260, 13260}, {8872, 13266, 13266}, {12957, 13272, 13273}, {1393, 13281, 13281}, {2013, 13285, 13288}, {4244, 13296, 13299}, {9428, 13303, 13303}, {12702, 13307, 13307}, {13078, 13311, 13311}, {6071, 13315, 13315}, {3061, 13319, 13319}, {2051, 13324, 13324}, {11560, 13328, 13331}, {6584, 13336, 13336}, {8482, 13340, 13340}, {5331, 13344, 13344}, {4171, 13348, 13348}, {8501, 13352, 13352}, {9219, 13356, 13356}, {9473, 13360, 13363}, {12881, 13367, 13367}, {13065, 13371, 13375}, {2979, 13379, 13384}, {1518, 13388, 13388}, {11177, 13392, 13392}, {9457, 13398, 13398}, {12293, 13407, 13410}, {3697, 13414, 13417}, {10338, 13425, 13425}, {13367, 13429, 13429}, {11074, 13433, 13437}, {4201, 13441, 13443}, {1812, 13447, 13448}, {13360, 13452, 13456}, {13188, 13463, 13463}, {9732, 13470, 13470}, {11332, 13477, 13477}, {9918, 13487, 13487}, {6337, 13497, 13497}, {13429, 13501, 13501}, {11413, 13505, 13505}, {4685, 13512, 13513}, {13136, 13517, 13519}, {7416, 13528, 13530}, {12929, 13534, 13534}, {11110, 13539, 13539}, {11521, 13543, 13543}, {12825, 13553, 13553}, {13447, 13557, 13558}, {12299, 13562, 13563}, {9003, 13570, 13570}, {12500, 13577, 13577}, {13501, 13581, 13581}, {9392, 13586, 13586}, {12454, 13590, 13590}, {6189, 13595, 13595}, {13053, 13599, 13599}, {11881, 13604, 13604}, {13159, 13608, 13608}, {4894, 13612, 13612}, {13221, 13621, 13621}, {8950, 13625, 13625}, {13533, 13629, 13629}, {9633, 13633, 13633}, {7892, 13637, 13639}, {13581, 13643, 13643}, {13616, 13647, 13649}, {12794, 13653, 13654}, {8919, 13659, 13659}, {9674, 13663, 13663}, {13577, 13668, 13668}, {12966, 13672, 13672}, {12659, 13676, 13683}, {6124, 13688, 13688}, {9225, 13693, 13695}, {11833, 13702, 13702}, {12904, 13709, 13717}, {13647, 13721, 13722}, {11687, 13726, 13727}, {12434, 13731, 13732}, {12689, 13736, 13742}, {13168, 13746, 13746}, {6151, 13751, 13752}, {11821, 13756, 13757}, {6467, 13764, 13764}, {5730, 13769, 13769}, {5136, 13780, 13780}, {724, 13784, 13785}, {13517, 13789, 13791}, {640, 13795, 13796}, {7721, 13800, 13802}, {11121, 13806, 13807}, {5791, 13811, 13815}, {12894, 13819, 13819}, {11100, 13824, 13824}, {7011, 13830, 13830}, {7129, 13834, 13837}, {13833, 13841, 13841}, {11276, 13847, 13847}, {13621, 13853, 13853}, {13589, 13862, 13863}, {12989, 13867, 13867}, {12789, 13871, 13871}, {1239, 13875, 13875}, {4675, 13879, 13881}, {4686, 13885, 13885}, {707, 13889, 13889}, {5449, 13897, 13898}, {13867, 13902, 13903}, {10613, 13908, 13908}, {13789, 13912, 13914}, {4451, 13918, 13919}, {9200, 13924, 13924}, {2011, 13930, 13930}, {11433, 13934, 13936}, {4695, 13942, 13943}, {9435, 13948, 13951}, {13688, 13955, 13957}, {11694, 13961, 13962}, {5712, 13966, 13966}, {5991, 13970, 13972}, {13477, 13976, 13976}, {10213, 13987, 13987}, {11839, 13991, 13993}, {12272, 13997, 13997}, {6206, 14001, 14001}, {13179, 14006, 14007}, {2939, 14011, 14011}, {12972, 14016, 14017}, {13918, 14021, 14022}, {7436, 14026, 14027}, {7678, 14032, 14034}, {13586, 14040, 14040}, {13347, 14044, 14044}, {13109, 14048, 14051}, {9244, 14055, 14057}, {13315, 14061, 14061}, {13276, 14067, 14067}, {11435, 14073, 14074}, {13853, 14078, 14078}, {13452, 14082, 14082}, {14044, 14087, 14087}, {4440, 14091, 14095}, {4479, 14100, 14103}, {9395, 14107, 14109}, {6834, 14119, 14119}, {10458, 14123, 14124}, {1429, 14129, 14129}, {8443, 14135, 14135}, {10365, 14140, 14140}, {5267, 14145, 14145}, {11834, 14151, 14153}, } compress-1.2.1/snappy/runbench.cmd000066400000000000000000000002221303637052300171470ustar00rootroot00000000000000del old.txt go test -bench=. >>old.txt && go test -bench=. >>old.txt && go test -bench=. >>old.txt && benchstat -delta-test=ttest old.txt new.txt compress-1.2.1/snappy/snappy.go000066400000000000000000000063611303637052300165310ustar00rootroot00000000000000// Copyright 2011 The Snappy-Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package snappy implements the snappy block-based compression format. // It aims for very high speeds and reasonable compression. // // The C++ snappy implementation is at https://github.com/google/snappy package snappy import ( "hash/crc32" ) /* Each encoded block begins with the varint-encoded length of the decoded data, followed by a sequence of chunks. Chunks begin and end on byte boundaries. The first byte of each chunk is broken into its 2 least and 6 most significant bits called l and m: l ranges in [0, 4) and m ranges in [0, 64). l is the chunk tag. Zero means a literal tag. All other values mean a copy tag. For literal tags: - If m < 60, the next 1 + m bytes are literal bytes. - Otherwise, let n be the little-endian unsigned integer denoted by the next m - 59 bytes. The next 1 + n bytes after that are literal bytes. For copy tags, length bytes are copied from offset bytes ago, in the style of Lempel-Ziv compression algorithms. In particular: - For l == 1, the offset ranges in [0, 1<<11) and the length in [4, 12). The length is 4 + the low 3 bits of m. The high 3 bits of m form bits 8-10 of the offset. The next byte is bits 0-7 of the offset. - For l == 2, the offset ranges in [0, 1<<16) and the length in [1, 65). The length is 1 + m. The offset is the little-endian unsigned integer denoted by the next 2 bytes. - For l == 3, this tag is a legacy format that is no longer issued by most encoders. Nonetheless, the offset ranges in [0, 1<<32) and the length in [1, 65). The length is 1 + m. The offset is the little-endian unsigned integer denoted by the next 4 bytes. */ const ( tagLiteral = 0x00 tagCopy1 = 0x01 tagCopy2 = 0x02 tagCopy4 = 0x03 ) const ( checksumSize = 4 chunkHeaderSize = 4 magicChunk = "\xff\x06\x00\x00" + magicBody magicBody = "sNaPpY" // maxBlockSize is the maximum size of the input to encodeBlock. It is not // part of the wire format per se, but some parts of the encoder assume // that an offset fits into a uint16. // // Also, for the framing format (Writer type instead of Encode function), // https://github.com/google/snappy/blob/master/framing_format.txt says // that "the uncompressed data in a chunk must be no longer than 65536 // bytes". maxBlockSize = 65536 // maxEncodedLenOfMaxBlockSize equals MaxEncodedLen(maxBlockSize), but is // hard coded to be a const instead of a variable, so that obufLen can also // be a const. Their equivalence is confirmed by // TestMaxEncodedLenOfMaxBlockSize. maxEncodedLenOfMaxBlockSize = 76490 obufHeaderLen = len(magicChunk) + checksumSize + chunkHeaderSize obufLen = obufHeaderLen + maxEncodedLenOfMaxBlockSize ) const ( chunkTypeCompressedData = 0x00 chunkTypeUncompressedData = 0x01 chunkTypePadding = 0xfe chunkTypeStreamIdentifier = 0xff ) var crcTable = crc32.MakeTable(crc32.Castagnoli) // crc implements the checksum specified in section 3 of // https://github.com/google/snappy/blob/master/framing_format.txt func crc(b []byte) uint32 { c := crc32.Update(0, crcTable, b) return uint32(c>>15|c<<17) + 0xa282ead8 } compress-1.2.1/snappy/snappy_test.go000066400000000000000000001152621303637052300175710ustar00rootroot00000000000000// Copyright 2011 The Snappy-Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package snappy import ( "bytes" "encoding/binary" "flag" "fmt" "io" "io/ioutil" "math/rand" "net/http" "os" "os/exec" "path/filepath" "runtime" "strings" "testing" ) var ( download = flag.Bool("download", false, "If true, download any missing files before running benchmarks") testdataDir = flag.String("testdataDir", "testdata", "Directory containing the test data") benchdataDir = flag.String("benchdataDir", "testdata/bench", "Directory containing the benchmark data") ) // goEncoderShouldMatchCppEncoder is whether to test that the algorithm used by // Go's encoder matches byte-for-byte what the C++ snappy encoder produces, on // this GOARCH. There is more than one valid encoding of any given input, and // there is more than one good algorithm along the frontier of trading off // throughput for output size. Nonetheless, we presume that the C++ encoder's // algorithm is a good one and has been tested on a wide range of inputs, so // matching that exactly should mean that the Go encoder's algorithm is also // good, without needing to gather our own corpus of test data. // // The exact algorithm used by the C++ code is potentially endian dependent, as // it puns a byte pointer to a uint32 pointer to load, hash and compare 4 bytes // at a time. The Go implementation is endian agnostic, in that its output is // the same (as little-endian C++ code), regardless of the CPU's endianness. // // Thus, when comparing Go's output to C++ output generated beforehand, such as // the "testdata/pi.txt.rawsnappy" file generated by C++ code on a little- // endian system, we can run that test regardless of the runtime.GOARCH value. // // When comparing Go's output to dynamically generated C++ output, i.e. the // result of fork/exec'ing a C++ program, we can run that test only on // little-endian systems, because the C++ output might be different on // big-endian systems. The runtime package doesn't export endianness per se, // but we can restrict this match-C++ test to common little-endian systems. const goEncoderShouldMatchCppEncoder = runtime.GOARCH == "386" || runtime.GOARCH == "amd64" || runtime.GOARCH == "arm" func TestMaxEncodedLenOfMaxBlockSize(t *testing.T) { got := maxEncodedLenOfMaxBlockSize want := MaxEncodedLen(maxBlockSize) if got != want { t.Fatalf("got %d, want %d", got, want) } } func cmp(a, b []byte) error { if bytes.Equal(a, b) { return nil } if len(a) != len(b) { return fmt.Errorf("got %d bytes, want %d", len(a), len(b)) } for i := range a { if a[i] != b[i] { return fmt.Errorf("byte #%d: got 0x%02x, want 0x%02x", i, a[i], b[i]) } } return nil } func roundtrip(b, ebuf, dbuf []byte) error { d, err := Decode(dbuf, Encode(ebuf, b)) if err != nil { return fmt.Errorf("decoding error: %v", err) } if err := cmp(d, b); err != nil { return fmt.Errorf("roundtrip mismatch: %v", err) } return nil } func TestEmpty(t *testing.T) { if err := roundtrip(nil, nil, nil); err != nil { t.Fatal(err) } } func TestSmallCopy(t *testing.T) { for _, ebuf := range [][]byte{nil, make([]byte, 20), make([]byte, 64)} { for _, dbuf := range [][]byte{nil, make([]byte, 20), make([]byte, 64)} { for i := 0; i < 32; i++ { s := "aaaa" + strings.Repeat("b", i) + "aaaabbbb" if err := roundtrip([]byte(s), ebuf, dbuf); err != nil { t.Errorf("len(ebuf)=%d, len(dbuf)=%d, i=%d: %v", len(ebuf), len(dbuf), i, err) } } } } } func TestSmallRand(t *testing.T) { rng := rand.New(rand.NewSource(1)) for n := 1; n < 20000; n += 23 { b := make([]byte, n) for i := range b { b[i] = uint8(rng.Intn(256)) } if err := roundtrip(b, nil, nil); err != nil { t.Fatal(err) } } } func TestSmallRegular(t *testing.T) { for n := 1; n < 20000; n += 23 { b := make([]byte, n) for i := range b { b[i] = uint8(i%10 + 'a') } if err := roundtrip(b, nil, nil); err != nil { t.Fatal(err) } } } func TestInvalidVarint(t *testing.T) { testCases := []struct { desc string input string }{{ "invalid varint, final byte has continuation bit set", "\xff", }, { "invalid varint, value overflows uint64", "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00", }, { // https://github.com/google/snappy/blob/master/format_description.txt // says that "the stream starts with the uncompressed length [as a // varint] (up to a maximum of 2^32 - 1)". "valid varint (as uint64), but value overflows uint32", "\x80\x80\x80\x80\x10", }} for _, tc := range testCases { input := []byte(tc.input) if _, err := DecodedLen(input); err != ErrCorrupt { t.Errorf("%s: DecodedLen: got %v, want ErrCorrupt", tc.desc, err) } if _, err := Decode(nil, input); err != ErrCorrupt { t.Errorf("%s: Decode: got %v, want ErrCorrupt", tc.desc, err) } } } func TestDecode(t *testing.T) { lit40Bytes := make([]byte, 40) for i := range lit40Bytes { lit40Bytes[i] = byte(i) } lit40 := string(lit40Bytes) testCases := []struct { desc string input string want string wantErr error }{{ `decodedLen=0; valid input`, "\x00", "", nil, }, { `decodedLen=3; tagLiteral, 0-byte length; length=3; valid input`, "\x03" + "\x08\xff\xff\xff", "\xff\xff\xff", nil, }, { `decodedLen=2; tagLiteral, 0-byte length; length=3; not enough dst bytes`, "\x02" + "\x08\xff\xff\xff", "", ErrCorrupt, }, { `decodedLen=3; tagLiteral, 0-byte length; length=3; not enough src bytes`, "\x03" + "\x08\xff\xff", "", ErrCorrupt, }, { `decodedLen=40; tagLiteral, 0-byte length; length=40; valid input`, "\x28" + "\x9c" + lit40, lit40, nil, }, { `decodedLen=1; tagLiteral, 1-byte length; not enough length bytes`, "\x01" + "\xf0", "", ErrCorrupt, }, { `decodedLen=3; tagLiteral, 1-byte length; length=3; valid input`, "\x03" + "\xf0\x02\xff\xff\xff", "\xff\xff\xff", nil, }, { `decodedLen=1; tagLiteral, 2-byte length; not enough length bytes`, "\x01" + "\xf4\x00", "", ErrCorrupt, }, { `decodedLen=3; tagLiteral, 2-byte length; length=3; valid input`, "\x03" + "\xf4\x02\x00\xff\xff\xff", "\xff\xff\xff", nil, }, { `decodedLen=1; tagLiteral, 3-byte length; not enough length bytes`, "\x01" + "\xf8\x00\x00", "", ErrCorrupt, }, { `decodedLen=3; tagLiteral, 3-byte length; length=3; valid input`, "\x03" + "\xf8\x02\x00\x00\xff\xff\xff", "\xff\xff\xff", nil, }, { `decodedLen=1; tagLiteral, 4-byte length; not enough length bytes`, "\x01" + "\xfc\x00\x00\x00", "", ErrCorrupt, }, { `decodedLen=1; tagLiteral, 4-byte length; length=3; not enough dst bytes`, "\x01" + "\xfc\x02\x00\x00\x00\xff\xff\xff", "", ErrCorrupt, }, { `decodedLen=4; tagLiteral, 4-byte length; length=3; not enough src bytes`, "\x04" + "\xfc\x02\x00\x00\x00\xff", "", ErrCorrupt, }, { `decodedLen=3; tagLiteral, 4-byte length; length=3; valid input`, "\x03" + "\xfc\x02\x00\x00\x00\xff\xff\xff", "\xff\xff\xff", nil, }, { `decodedLen=4; tagCopy1, 1 extra length|offset byte; not enough extra bytes`, "\x04" + "\x01", "", ErrCorrupt, }, { `decodedLen=4; tagCopy2, 2 extra length|offset bytes; not enough extra bytes`, "\x04" + "\x02\x00", "", ErrCorrupt, }, { `decodedLen=4; tagCopy4, 4 extra length|offset bytes; not enough extra bytes`, "\x04" + "\x03\x00\x00\x00", "", ErrCorrupt, }, { `decodedLen=4; tagLiteral (4 bytes "abcd"); valid input`, "\x04" + "\x0cabcd", "abcd", nil, }, { `decodedLen=13; tagLiteral (4 bytes "abcd"); tagCopy1; length=9 offset=4; valid input`, "\x0d" + "\x0cabcd" + "\x15\x04", "abcdabcdabcda", nil, }, { `decodedLen=8; tagLiteral (4 bytes "abcd"); tagCopy1; length=4 offset=4; valid input`, "\x08" + "\x0cabcd" + "\x01\x04", "abcdabcd", nil, }, { `decodedLen=8; tagLiteral (4 bytes "abcd"); tagCopy1; length=4 offset=2; valid input`, "\x08" + "\x0cabcd" + "\x01\x02", "abcdcdcd", nil, }, { `decodedLen=8; tagLiteral (4 bytes "abcd"); tagCopy1; length=4 offset=1; valid input`, "\x08" + "\x0cabcd" + "\x01\x01", "abcddddd", nil, }, { `decodedLen=8; tagLiteral (4 bytes "abcd"); tagCopy1; length=4 offset=0; zero offset`, "\x08" + "\x0cabcd" + "\x01\x00", "", ErrCorrupt, }, { `decodedLen=9; tagLiteral (4 bytes "abcd"); tagCopy1; length=4 offset=4; inconsistent dLen`, "\x09" + "\x0cabcd" + "\x01\x04", "", ErrCorrupt, }, { `decodedLen=8; tagLiteral (4 bytes "abcd"); tagCopy1; length=4 offset=5; offset too large`, "\x08" + "\x0cabcd" + "\x01\x05", "", ErrCorrupt, }, { `decodedLen=7; tagLiteral (4 bytes "abcd"); tagCopy1; length=4 offset=4; length too large`, "\x07" + "\x0cabcd" + "\x01\x04", "", ErrCorrupt, }, { `decodedLen=6; tagLiteral (4 bytes "abcd"); tagCopy2; length=2 offset=3; valid input`, "\x06" + "\x0cabcd" + "\x06\x03\x00", "abcdbc", nil, }, { `decodedLen=6; tagLiteral (4 bytes "abcd"); tagCopy4; length=2 offset=3; valid input`, "\x06" + "\x0cabcd" + "\x07\x03\x00\x00\x00", "abcdbc", nil, }} const ( // notPresentXxx defines a range of byte values [0xa0, 0xc5) that are // not present in either the input or the output. It is written to dBuf // to check that Decode does not write bytes past the end of // dBuf[:dLen]. // // The magic number 37 was chosen because it is prime. A more 'natural' // number like 32 might lead to a false negative if, for example, a // byte was incorrectly copied 4*8 bytes later. notPresentBase = 0xa0 notPresentLen = 37 ) var dBuf [100]byte loop: for i, tc := range testCases { input := []byte(tc.input) for _, x := range input { if notPresentBase <= x && x < notPresentBase+notPresentLen { t.Errorf("#%d (%s): input shouldn't contain %#02x\ninput: % x", i, tc.desc, x, input) continue loop } } dLen, n := binary.Uvarint(input) if n <= 0 { t.Errorf("#%d (%s): invalid varint-encoded dLen", i, tc.desc) continue } if dLen > uint64(len(dBuf)) { t.Errorf("#%d (%s): dLen %d is too large", i, tc.desc, dLen) continue } for j := range dBuf { dBuf[j] = byte(notPresentBase + j%notPresentLen) } g, gotErr := Decode(dBuf[:], input) if got := string(g); got != tc.want || gotErr != tc.wantErr { t.Errorf("#%d (%s):\ngot %q, %v\nwant %q, %v", i, tc.desc, got, gotErr, tc.want, tc.wantErr) continue } for j, x := range dBuf { if uint64(j) < dLen { continue } if w := byte(notPresentBase + j%notPresentLen); x != w { t.Errorf("#%d (%s): Decode overrun: dBuf[%d] was modified: got %#02x, want %#02x\ndBuf: % x", i, tc.desc, j, x, w, dBuf) continue loop } } } } func TestDecodeCopy4(t *testing.T) { dots := strings.Repeat(".", 65536) input := strings.Join([]string{ "\x89\x80\x04", // decodedLen = 65545. "\x0cpqrs", // 4-byte literal "pqrs". "\xf4\xff\xff" + dots, // 65536-byte literal dots. "\x13\x04\x00\x01\x00", // tagCopy4; length=5 offset=65540. }, "") gotBytes, err := Decode(nil, []byte(input)) if err != nil { t.Fatal(err) } got := string(gotBytes) want := "pqrs" + dots + "pqrs." if len(got) != len(want) { t.Fatalf("got %d bytes, want %d", len(got), len(want)) } if got != want { for i := 0; i < len(got); i++ { if g, w := got[i], want[i]; g != w { t.Fatalf("byte #%d: got %#02x, want %#02x", i, g, w) } } } } // TestDecodeLengthOffset tests decoding an encoding of the form literal + // copy-length-offset + literal. For example: "abcdefghijkl" + "efghij" + "AB". func TestDecodeLengthOffset(t *testing.T) { const ( prefix = "abcdefghijklmnopqr" suffix = "ABCDEFGHIJKLMNOPQR" // notPresentXxx defines a range of byte values [0xa0, 0xc5) that are // not present in either the input or the output. It is written to // gotBuf to check that Decode does not write bytes past the end of // gotBuf[:totalLen]. // // The magic number 37 was chosen because it is prime. A more 'natural' // number like 32 might lead to a false negative if, for example, a // byte was incorrectly copied 4*8 bytes later. notPresentBase = 0xa0 notPresentLen = 37 ) var gotBuf, wantBuf, inputBuf [128]byte for length := 1; length <= 18; length++ { for offset := 1; offset <= 18; offset++ { loop: for suffixLen := 0; suffixLen <= 18; suffixLen++ { totalLen := len(prefix) + length + suffixLen inputLen := binary.PutUvarint(inputBuf[:], uint64(totalLen)) inputBuf[inputLen] = tagLiteral + 4*byte(len(prefix)-1) inputLen++ inputLen += copy(inputBuf[inputLen:], prefix) inputBuf[inputLen+0] = tagCopy2 + 4*byte(length-1) inputBuf[inputLen+1] = byte(offset) inputBuf[inputLen+2] = 0x00 inputLen += 3 if suffixLen > 0 { inputBuf[inputLen] = tagLiteral + 4*byte(suffixLen-1) inputLen++ inputLen += copy(inputBuf[inputLen:], suffix[:suffixLen]) } input := inputBuf[:inputLen] for i := range gotBuf { gotBuf[i] = byte(notPresentBase + i%notPresentLen) } got, err := Decode(gotBuf[:], input) if err != nil { t.Errorf("length=%d, offset=%d; suffixLen=%d: %v", length, offset, suffixLen, err) continue } wantLen := 0 wantLen += copy(wantBuf[wantLen:], prefix) for i := 0; i < length; i++ { wantBuf[wantLen] = wantBuf[wantLen-offset] wantLen++ } wantLen += copy(wantBuf[wantLen:], suffix[:suffixLen]) want := wantBuf[:wantLen] for _, x := range input { if notPresentBase <= x && x < notPresentBase+notPresentLen { t.Errorf("length=%d, offset=%d; suffixLen=%d: input shouldn't contain %#02x\ninput: % x", length, offset, suffixLen, x, input) continue loop } } for i, x := range gotBuf { if i < totalLen { continue } if w := byte(notPresentBase + i%notPresentLen); x != w { t.Errorf("length=%d, offset=%d; suffixLen=%d; totalLen=%d: "+ "Decode overrun: gotBuf[%d] was modified: got %#02x, want %#02x\ngotBuf: % x", length, offset, suffixLen, totalLen, i, x, w, gotBuf) continue loop } } for _, x := range want { if notPresentBase <= x && x < notPresentBase+notPresentLen { t.Errorf("length=%d, offset=%d; suffixLen=%d: want shouldn't contain %#02x\nwant: % x", length, offset, suffixLen, x, want) continue loop } } if !bytes.Equal(got, want) { t.Errorf("length=%d, offset=%d; suffixLen=%d:\ninput % x\ngot % x\nwant % x", length, offset, suffixLen, input, got, want) continue } } } } } const ( goldenText = "Mark.Twain-Tom.Sawyer.txt" goldenCompressed = goldenText + ".rawsnappy" ) func TestDecodeGoldenInput(t *testing.T) { tDir := filepath.FromSlash(*testdataDir) src, err := ioutil.ReadFile(filepath.Join(tDir, goldenCompressed)) if err != nil { t.Fatalf("ReadFile: %v", err) } got, err := Decode(nil, src) if err != nil { t.Fatalf("Decode: %v", err) } want, err := ioutil.ReadFile(filepath.Join(tDir, goldenText)) if err != nil { t.Fatalf("ReadFile: %v", err) } if err := cmp(got, want); err != nil { t.Fatal(err) } } func TestEncodeGoldenInput(t *testing.T) { tDir := filepath.FromSlash(*testdataDir) src, err := ioutil.ReadFile(filepath.Join(tDir, goldenText)) if err != nil { t.Fatalf("ReadFile: %v", err) } got := Encode(nil, src) want, err := ioutil.ReadFile(filepath.Join(tDir, goldenCompressed)) if err != nil { t.Fatalf("ReadFile: %v", err) } if err := cmp(got, want); err != nil { t.Fatal(err) } } func TestExtendMatchGoldenInput(t *testing.T) { tDir := filepath.FromSlash(*testdataDir) src, err := ioutil.ReadFile(filepath.Join(tDir, goldenText)) if err != nil { t.Fatalf("ReadFile: %v", err) } for i, tc := range extendMatchGoldenTestCases { got := extendMatch(src, tc.i, tc.j) if got != tc.want { t.Errorf("test #%d: i, j = %5d, %5d: got %5d (= j + %6d), want %5d (= j + %6d)", i, tc.i, tc.j, got, got-tc.j, tc.want, tc.want-tc.j) } } } func TestExtendMatch(t *testing.T) { // ref is a simple, reference implementation of extendMatch. ref := func(src []byte, i, j int) int { for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 { } return j } nums := []int{0, 1, 2, 7, 8, 9, 29, 30, 31, 32, 33, 34, 38, 39, 40} for yIndex := 40; yIndex > 30; yIndex-- { xxx := bytes.Repeat([]byte("x"), 40) if yIndex < len(xxx) { xxx[yIndex] = 'y' } for _, i := range nums { for _, j := range nums { if i >= j { continue } got := extendMatch(xxx, i, j) want := ref(xxx, i, j) if got != want { t.Errorf("yIndex=%d, i=%d, j=%d: got %d, want %d", yIndex, i, j, got, want) } } } } } const snappytoolCmdName = "cmd/snappytool/snappytool" func skipTestSameEncodingAsCpp() (msg string) { if !goEncoderShouldMatchCppEncoder { return fmt.Sprintf("skipping testing that the encoding is byte-for-byte identical to C++: GOARCH=%s", runtime.GOARCH) } if _, err := os.Stat(snappytoolCmdName); err != nil { return fmt.Sprintf("could not find snappytool: %v", err) } return "" } func runTestSameEncodingAsCpp(src []byte) error { got := Encode(nil, src) cmd := exec.Command(snappytoolCmdName, "-e") cmd.Stdin = bytes.NewReader(src) want, err := cmd.Output() if err != nil { return fmt.Errorf("could not run snappytool: %v", err) } return cmp(got, want) } func TestSameEncodingAsCppShortCopies(t *testing.T) { if msg := skipTestSameEncodingAsCpp(); msg != "" { t.Skip(msg) } src := bytes.Repeat([]byte{'a'}, 20) for i := 0; i <= len(src); i++ { if err := runTestSameEncodingAsCpp(src[:i]); err != nil { t.Errorf("i=%d: %v", i, err) } } } func TestSameEncodingAsCppLongFiles(t *testing.T) { if msg := skipTestSameEncodingAsCpp(); msg != "" { t.Skip(msg) } bDir := filepath.FromSlash(*benchdataDir) failed := false for i, tf := range testFiles { if err := downloadBenchmarkFiles(t, tf.filename); err != nil { t.Fatalf("failed to download testdata: %s", err) } data := readFile(t, filepath.Join(bDir, tf.filename)) if n := tf.sizeLimit; 0 < n && n < len(data) { data = data[:n] } if err := runTestSameEncodingAsCpp(data); err != nil { t.Errorf("i=%d: %v", i, err) failed = true } } if failed { t.Errorf("was the snappytool program built against the C++ snappy library version " + "d53de187 or later, commited on 2016-04-05? See " + "https://github.com/google/snappy/commit/d53de18799418e113e44444252a39b12a0e4e0cc") } } // TestSlowForwardCopyOverrun tests the "expand the pattern" algorithm // described in decode_amd64.s and its claim of a 10 byte overrun worst case. func TestSlowForwardCopyOverrun(t *testing.T) { const base = 100 for length := 1; length < 18; length++ { for offset := 1; offset < 18; offset++ { highWaterMark := base d := base l := length o := offset // makeOffsetAtLeast8 for o < 8 { if end := d + 8; highWaterMark < end { highWaterMark = end } l -= o d += o o += o } // fixUpSlowForwardCopy a := d d += l // finishSlowForwardCopy for l > 0 { if end := a + 8; highWaterMark < end { highWaterMark = end } a += 8 l -= 8 } dWant := base + length overrun := highWaterMark - dWant if d != dWant || overrun < 0 || 10 < overrun { t.Errorf("length=%d, offset=%d: d and overrun: got (%d, %d), want (%d, something in [0, 10])", length, offset, d, overrun, dWant) } } } } // TestEncodeNoiseThenRepeats encodes input for which the first half is very // incompressible and the second half is very compressible. The encoded form's // length should be closer to 50% of the original length than 100%. func TestEncodeNoiseThenRepeats(t *testing.T) { for _, origLen := range []int{256 * 1024, 2048 * 1024} { src := make([]byte, origLen) rng := rand.New(rand.NewSource(1)) firstHalf, secondHalf := src[:origLen/2], src[origLen/2:] for i := range firstHalf { firstHalf[i] = uint8(rng.Intn(256)) } for i := range secondHalf { secondHalf[i] = uint8(i >> 8) } dst := Encode(nil, src) if got, want := len(dst), origLen*3/4; got >= want { t.Errorf("origLen=%d: got %d encoded bytes, want less than %d", origLen, got, want) } } } func TestFramingFormat(t *testing.T) { // src is comprised of alternating 1e5-sized sequences of random // (incompressible) bytes and repeated (compressible) bytes. 1e5 was chosen // because it is larger than maxBlockSize (64k). src := make([]byte, 1e6) rng := rand.New(rand.NewSource(1)) for i := 0; i < 10; i++ { if i%2 == 0 { for j := 0; j < 1e5; j++ { src[1e5*i+j] = uint8(rng.Intn(256)) } } else { for j := 0; j < 1e5; j++ { src[1e5*i+j] = uint8(i) } } } buf := new(bytes.Buffer) if _, err := NewWriter(buf).Write(src); err != nil { t.Fatalf("Write: encoding: %v", err) } dst, err := ioutil.ReadAll(NewReader(buf)) if err != nil { t.Fatalf("ReadAll: decoding: %v", err) } if err := cmp(dst, src); err != nil { t.Fatal(err) } } func TestWriterGoldenOutput(t *testing.T) { buf := new(bytes.Buffer) w := NewBufferedWriter(buf) defer w.Close() w.Write([]byte("abcd")) // Not compressible. w.Flush() w.Write(bytes.Repeat([]byte{'A'}, 150)) // Compressible. w.Flush() // The next chunk is also compressible, but a naive, greedy encoding of the // overall length 67 copy as a length 64 copy (the longest expressible as a // tagCopy1 or tagCopy2) plus a length 3 remainder would be two 3-byte // tagCopy2 tags (6 bytes), since the minimum length for a tagCopy1 is 4 // bytes. Instead, we could do it shorter, in 5 bytes: a 3-byte tagCopy2 // (of length 60) and a 2-byte tagCopy1 (of length 7). w.Write(bytes.Repeat([]byte{'B'}, 68)) w.Write([]byte("efC")) // Not compressible. w.Write(bytes.Repeat([]byte{'C'}, 20)) // Compressible. w.Write(bytes.Repeat([]byte{'B'}, 20)) // Compressible. w.Write([]byte("g")) // Not compressible. w.Flush() got := buf.String() want := strings.Join([]string{ magicChunk, "\x01\x08\x00\x00", // Uncompressed chunk, 8 bytes long (including 4 byte checksum). "\x68\x10\xe6\xb6", // Checksum. "\x61\x62\x63\x64", // Uncompressed payload: "abcd". "\x00\x11\x00\x00", // Compressed chunk, 17 bytes long (including 4 byte checksum). "\x5f\xeb\xf2\x10", // Checksum. "\x96\x01", // Compressed payload: Uncompressed length (varint encoded): 150. "\x00\x41", // Compressed payload: tagLiteral, length=1, "A". "\xfe\x01\x00", // Compressed payload: tagCopy2, length=64, offset=1. "\xfe\x01\x00", // Compressed payload: tagCopy2, length=64, offset=1. "\x52\x01\x00", // Compressed payload: tagCopy2, length=21, offset=1. "\x00\x18\x00\x00", // Compressed chunk, 24 bytes long (including 4 byte checksum). "\x30\x85\x69\xeb", // Checksum. "\x70", // Compressed payload: Uncompressed length (varint encoded): 112. "\x00\x42", // Compressed payload: tagLiteral, length=1, "B". "\xee\x01\x00", // Compressed payload: tagCopy2, length=60, offset=1. "\x0d\x01", // Compressed payload: tagCopy1, length=7, offset=1. "\x08\x65\x66\x43", // Compressed payload: tagLiteral, length=3, "efC". "\x4e\x01\x00", // Compressed payload: tagCopy2, length=20, offset=1. "\x4e\x5a\x00", // Compressed payload: tagCopy2, length=20, offset=90. "\x00\x67", // Compressed payload: tagLiteral, length=1, "g". }, "") if got != want { t.Fatalf("\ngot: % x\nwant: % x", got, want) } } func TestEmitLiteral(t *testing.T) { testCases := []struct { length int want string }{ {1, "\x00"}, {2, "\x04"}, {59, "\xe8"}, {60, "\xec"}, {61, "\xf0\x3c"}, {62, "\xf0\x3d"}, {254, "\xf0\xfd"}, {255, "\xf0\xfe"}, {256, "\xf0\xff"}, {257, "\xf4\x00\x01"}, {65534, "\xf4\xfd\xff"}, {65535, "\xf4\xfe\xff"}, {65536, "\xf4\xff\xff"}, } dst := make([]byte, 70000) nines := bytes.Repeat([]byte{0x99}, 65536) for _, tc := range testCases { lit := nines[:tc.length] n := emitLiteral(dst, lit) if !bytes.HasSuffix(dst[:n], lit) { t.Errorf("length=%d: did not end with that many literal bytes", tc.length) continue } got := string(dst[:n-tc.length]) if got != tc.want { t.Errorf("length=%d:\ngot % x\nwant % x", tc.length, got, tc.want) continue } } } func TestEmitCopy(t *testing.T) { testCases := []struct { offset int length int want string }{ {8, 04, "\x01\x08"}, {8, 11, "\x1d\x08"}, {8, 12, "\x2e\x08\x00"}, {8, 13, "\x32\x08\x00"}, {8, 59, "\xea\x08\x00"}, {8, 60, "\xee\x08\x00"}, {8, 61, "\xf2\x08\x00"}, {8, 62, "\xf6\x08\x00"}, {8, 63, "\xfa\x08\x00"}, {8, 64, "\xfe\x08\x00"}, {8, 65, "\xee\x08\x00\x05\x08"}, {8, 66, "\xee\x08\x00\x09\x08"}, {8, 67, "\xee\x08\x00\x0d\x08"}, {8, 68, "\xfe\x08\x00\x01\x08"}, {8, 69, "\xfe\x08\x00\x05\x08"}, {8, 80, "\xfe\x08\x00\x3e\x08\x00"}, {256, 04, "\x21\x00"}, {256, 11, "\x3d\x00"}, {256, 12, "\x2e\x00\x01"}, {256, 13, "\x32\x00\x01"}, {256, 59, "\xea\x00\x01"}, {256, 60, "\xee\x00\x01"}, {256, 61, "\xf2\x00\x01"}, {256, 62, "\xf6\x00\x01"}, {256, 63, "\xfa\x00\x01"}, {256, 64, "\xfe\x00\x01"}, {256, 65, "\xee\x00\x01\x25\x00"}, {256, 66, "\xee\x00\x01\x29\x00"}, {256, 67, "\xee\x00\x01\x2d\x00"}, {256, 68, "\xfe\x00\x01\x21\x00"}, {256, 69, "\xfe\x00\x01\x25\x00"}, {256, 80, "\xfe\x00\x01\x3e\x00\x01"}, {2048, 04, "\x0e\x00\x08"}, {2048, 11, "\x2a\x00\x08"}, {2048, 12, "\x2e\x00\x08"}, {2048, 13, "\x32\x00\x08"}, {2048, 59, "\xea\x00\x08"}, {2048, 60, "\xee\x00\x08"}, {2048, 61, "\xf2\x00\x08"}, {2048, 62, "\xf6\x00\x08"}, {2048, 63, "\xfa\x00\x08"}, {2048, 64, "\xfe\x00\x08"}, {2048, 65, "\xee\x00\x08\x12\x00\x08"}, {2048, 66, "\xee\x00\x08\x16\x00\x08"}, {2048, 67, "\xee\x00\x08\x1a\x00\x08"}, {2048, 68, "\xfe\x00\x08\x0e\x00\x08"}, {2048, 69, "\xfe\x00\x08\x12\x00\x08"}, {2048, 80, "\xfe\x00\x08\x3e\x00\x08"}, } dst := make([]byte, 1024) for _, tc := range testCases { n := emitCopy(dst, tc.offset, tc.length) got := string(dst[:n]) if got != tc.want { t.Errorf("offset=%d, length=%d:\ngot % x\nwant % x", tc.offset, tc.length, got, tc.want) } } } func TestNewBufferedWriter(t *testing.T) { // Test all 32 possible sub-sequences of these 5 input slices. // // Their lengths sum to 400,000, which is over 6 times the Writer ibuf // capacity: 6 * maxBlockSize is 393,216. inputs := [][]byte{ bytes.Repeat([]byte{'a'}, 40000), bytes.Repeat([]byte{'b'}, 150000), bytes.Repeat([]byte{'c'}, 60000), bytes.Repeat([]byte{'d'}, 120000), bytes.Repeat([]byte{'e'}, 30000), } loop: for i := 0; i < 1< 0; { i := copy(x, src) x = x[i:] } return dst } func benchWords(b *testing.B, n int, decode bool) { // Note: the file is OS-language dependent so the resulting values are not // directly comparable for non-US-English OS installations. data := expand(readFile(b, "/usr/share/dict/words"), n) if decode { benchDecode(b, data) } else { benchEncode(b, data) } } func BenchmarkWordsDecode1e1(b *testing.B) { benchWords(b, 1e1, true) } func BenchmarkWordsDecode1e2(b *testing.B) { benchWords(b, 1e2, true) } func BenchmarkWordsDecode1e3(b *testing.B) { benchWords(b, 1e3, true) } func BenchmarkWordsDecode1e4(b *testing.B) { benchWords(b, 1e4, true) } func BenchmarkWordsDecode1e5(b *testing.B) { benchWords(b, 1e5, true) } func BenchmarkWordsDecode1e6(b *testing.B) { benchWords(b, 1e6, true) } func BenchmarkWordsEncode1e1(b *testing.B) { benchWords(b, 1e1, false) } func BenchmarkWordsEncode1e2(b *testing.B) { benchWords(b, 1e2, false) } func BenchmarkWordsEncode1e3(b *testing.B) { benchWords(b, 1e3, false) } func BenchmarkWordsEncode1e4(b *testing.B) { benchWords(b, 1e4, false) } func BenchmarkWordsEncode1e5(b *testing.B) { benchWords(b, 1e5, false) } func BenchmarkWordsEncode1e6(b *testing.B) { benchWords(b, 1e6, false) } func BenchmarkRandomEncode(b *testing.B) { rng := rand.New(rand.NewSource(1)) data := make([]byte, 1<<20) for i := range data { data[i] = uint8(rng.Intn(256)) } benchEncode(b, data) } // testFiles' values are copied directly from // https://raw.githubusercontent.com/google/snappy/master/snappy_unittest.cc // The label field is unused in snappy-go. var testFiles = []struct { label string filename string sizeLimit int }{ {"html", "html", 0}, {"urls", "urls.10K", 0}, {"jpg", "fireworks.jpeg", 0}, {"jpg_200", "fireworks.jpeg", 200}, {"pdf", "paper-100k.pdf", 0}, {"html4", "html_x_4", 0}, {"txt1", "alice29.txt", 0}, {"txt2", "asyoulik.txt", 0}, {"txt3", "lcet10.txt", 0}, {"txt4", "plrabn12.txt", 0}, {"pb", "geo.protodata", 0}, {"gaviota", "kppkn.gtb", 0}, } const ( // The benchmark data files are at this canonical URL. benchURL = "https://raw.githubusercontent.com/google/snappy/master/testdata/" ) func downloadBenchmarkFiles(b testing.TB, basename string) (errRet error) { bDir := filepath.FromSlash(*benchdataDir) filename := filepath.Join(bDir, basename) if stat, err := os.Stat(filename); err == nil && stat.Size() != 0 { return nil } if !*download { b.Skipf("test data not found; skipping %s without the -download flag", testOrBenchmark(b)) } // Download the official snappy C++ implementation reference test data // files for benchmarking. if err := os.MkdirAll(bDir, 0777); err != nil && !os.IsExist(err) { return fmt.Errorf("failed to create %s: %s", bDir, err) } f, err := os.Create(filename) if err != nil { return fmt.Errorf("failed to create %s: %s", filename, err) } defer f.Close() defer func() { if errRet != nil { os.Remove(filename) } }() url := benchURL + basename resp, err := http.Get(url) if err != nil { return fmt.Errorf("failed to download %s: %s", url, err) } defer resp.Body.Close() if s := resp.StatusCode; s != http.StatusOK { return fmt.Errorf("downloading %s: HTTP status code %d (%s)", url, s, http.StatusText(s)) } _, err = io.Copy(f, resp.Body) if err != nil { return fmt.Errorf("failed to download %s to %s: %s", url, filename, err) } return nil } func benchFile(b *testing.B, i int, decode bool) { if err := downloadBenchmarkFiles(b, testFiles[i].filename); err != nil { b.Fatalf("failed to download testdata: %s", err) } bDir := filepath.FromSlash(*benchdataDir) data := readFile(b, filepath.Join(bDir, testFiles[i].filename)) if n := testFiles[i].sizeLimit; 0 < n && n < len(data) { data = data[:n] } if decode { benchDecode(b, data) } else { benchEncode(b, data) } } // Naming convention is kept similar to what snappy's C++ implementation uses. func Benchmark_UFlat0(b *testing.B) { benchFile(b, 0, true) } func Benchmark_UFlat1(b *testing.B) { benchFile(b, 1, true) } func Benchmark_UFlat2(b *testing.B) { benchFile(b, 2, true) } func Benchmark_UFlat3(b *testing.B) { benchFile(b, 3, true) } func Benchmark_UFlat4(b *testing.B) { benchFile(b, 4, true) } func Benchmark_UFlat5(b *testing.B) { benchFile(b, 5, true) } func Benchmark_UFlat6(b *testing.B) { benchFile(b, 6, true) } func Benchmark_UFlat7(b *testing.B) { benchFile(b, 7, true) } func Benchmark_UFlat8(b *testing.B) { benchFile(b, 8, true) } func Benchmark_UFlat9(b *testing.B) { benchFile(b, 9, true) } func Benchmark_UFlat10(b *testing.B) { benchFile(b, 10, true) } func Benchmark_UFlat11(b *testing.B) { benchFile(b, 11, true) } func Benchmark_ZFlat0(b *testing.B) { benchFile(b, 0, false) } func Benchmark_ZFlat1(b *testing.B) { benchFile(b, 1, false) } func Benchmark_ZFlat2(b *testing.B) { benchFile(b, 2, false) } func Benchmark_ZFlat3(b *testing.B) { benchFile(b, 3, false) } func Benchmark_ZFlat4(b *testing.B) { benchFile(b, 4, false) } func Benchmark_ZFlat5(b *testing.B) { benchFile(b, 5, false) } func Benchmark_ZFlat6(b *testing.B) { benchFile(b, 6, false) } func Benchmark_ZFlat7(b *testing.B) { benchFile(b, 7, false) } func Benchmark_ZFlat8(b *testing.B) { benchFile(b, 8, false) } func Benchmark_ZFlat9(b *testing.B) { benchFile(b, 9, false) } func Benchmark_ZFlat10(b *testing.B) { benchFile(b, 10, false) } func Benchmark_ZFlat11(b *testing.B) { benchFile(b, 11, false) } func BenchmarkExtendMatch(b *testing.B) { tDir := filepath.FromSlash(*testdataDir) src, err := ioutil.ReadFile(filepath.Join(tDir, goldenText)) if err != nil { b.Fatalf("ReadFile: %v", err) } b.ResetTimer() for i := 0; i < b.N; i++ { for _, tc := range extendMatchGoldenTestCases { extendMatch(src, tc.i, tc.j) } } } compress-1.2.1/snappy/testdata/000077500000000000000000000000001303637052300164735ustar00rootroot00000000000000compress-1.2.1/snappy/testdata/Mark.Twain-Tom.Sawyer.txt000066400000000000000000000335301303637052300232210ustar00rootroot00000000000000Produced by David Widger. The previous edition was updated by Jose Menendez. THE ADVENTURES OF TOM SAWYER BY MARK TWAIN (Samuel Langhorne Clemens) P R E F A C E MOST of the adventures recorded in this book really occurred; one or two were experiences of my own, the rest those of boys who were schoolmates of mine. Huck Finn is drawn from life; Tom Sawyer also, but not from an individual--he is a combination of the characteristics of three boys whom I knew, and therefore belongs to the composite order of architecture. The odd superstitions touched upon were all prevalent among children and slaves in the West at the period of this story--that is to say, thirty or forty years ago. Although my book is intended mainly for the entertainment of boys and girls, I hope it will not be shunned by men and women on that account, for part of my plan has been to try to pleasantly remind adults of what they once were themselves, and of how they felt and thought and talked, and what queer enterprises they sometimes engaged in. THE AUTHOR. HARTFORD, 1876. T O M S A W Y E R CHAPTER I "TOM!" No answer. "TOM!" No answer. "What's gone with that boy, I wonder? You TOM!" No answer. The old lady pulled her spectacles down and looked over them about the room; then she put them up and looked out under them. She seldom or never looked THROUGH them for so small a thing as a boy; they were her state pair, the pride of her heart, and were built for "style," not service--she could have seen through a pair of stove-lids just as well. She looked perplexed for a moment, and then said, not fiercely, but still loud enough for the furniture to hear: "Well, I lay if I get hold of you I'll--" She did not finish, for by this time she was bending down and punching under the bed with the broom, and so she needed breath to punctuate the punches with. She resurrected nothing but the cat. "I never did see the beat of that boy!" She went to the open door and stood in it and looked out among the tomato vines and "jimpson" weeds that constituted the garden. No Tom. So she lifted up her voice at an angle calculated for distance and shouted: "Y-o-u-u TOM!" There was a slight noise behind her and she turned just in time to seize a small boy by the slack of his roundabout and arrest his flight. "There! I might 'a' thought of that closet. What you been doing in there?" "Nothing." "Nothing! Look at your hands. And look at your mouth. What IS that truck?" "I don't know, aunt." "Well, I know. It's jam--that's what it is. Forty times I've said if you didn't let that jam alone I'd skin you. Hand me that switch." The switch hovered in the air--the peril was desperate-- "My! Look behind you, aunt!" The old lady whirled round, and snatched her skirts out of danger. The lad fled on the instant, scrambled up the high board-fence, and disappeared over it. His aunt Polly stood surprised a moment, and then broke into a gentle laugh. "Hang the boy, can't I never learn anything? Ain't he played me tricks enough like that for me to be looking out for him by this time? But old fools is the biggest fools there is. Can't learn an old dog new tricks, as the saying is. But my goodness, he never plays them alike, two days, and how is a body to know what's coming? He 'pears to know just how long he can torment me before I get my dander up, and he knows if he can make out to put me off for a minute or make me laugh, it's all down again and I can't hit him a lick. I ain't doing my duty by that boy, and that's the Lord's truth, goodness knows. Spare the rod and spile the child, as the Good Book says. I'm a laying up sin and suffering for us both, I know. He's full of the Old Scratch, but laws-a-me! he's my own dead sister's boy, poor thing, and I ain't got the heart to lash him, somehow. Every time I let him off, my conscience does hurt me so, and every time I hit him my old heart most breaks. Well-a-well, man that is born of woman is of few days and full of trouble, as the Scripture says, and I reckon it's so. He'll play hookey this evening, * and [* Southwestern for "afternoon"] I'll just be obleeged to make him work, to-morrow, to punish him. It's mighty hard to make him work Saturdays, when all the boys is having holiday, but he hates work more than he hates anything else, and I've GOT to do some of my duty by him, or I'll be the ruination of the child." Tom did play hookey, and he had a very good time. He got back home barely in season to help Jim, the small colored boy, saw next-day's wood and split the kindlings before supper--at least he was there in time to tell his adventures to Jim while Jim did three-fourths of the work. Tom's younger brother (or rather half-brother) Sid was already through with his part of the work (picking up chips), for he was a quiet boy, and had no adventurous, troublesome ways. While Tom was eating his supper, and stealing sugar as opportunity offered, Aunt Polly asked him questions that were full of guile, and very deep--for she wanted to trap him into damaging revealments. Like many other simple-hearted souls, it was her pet vanity to believe she was endowed with a talent for dark and mysterious diplomacy, and she loved to contemplate her most transparent devices as marvels of low cunning. Said she: "Tom, it was middling warm in school, warn't it?" "Yes'm." "Powerful warm, warn't it?" "Yes'm." "Didn't you want to go in a-swimming, Tom?" A bit of a scare shot through Tom--a touch of uncomfortable suspicion. He searched Aunt Polly's face, but it told him nothing. So he said: "No'm--well, not very much." The old lady reached out her hand and felt Tom's shirt, and said: "But you ain't too warm now, though." And it flattered her to reflect that she had discovered that the shirt was dry without anybody knowing that that was what she had in her mind. But in spite of her, Tom knew where the wind lay, now. So he forestalled what might be the next move: "Some of us pumped on our heads--mine's damp yet. See?" Aunt Polly was vexed to think she had overlooked that bit of circumstantial evidence, and missed a trick. Then she had a new inspiration: "Tom, you didn't have to undo your shirt collar where I sewed it, to pump on your head, did you? Unbutton your jacket!" The trouble vanished out of Tom's face. He opened his jacket. His shirt collar was securely sewed. "Bother! Well, go 'long with you. I'd made sure you'd played hookey and been a-swimming. But I forgive ye, Tom. I reckon you're a kind of a singed cat, as the saying is--better'n you look. THIS time." She was half sorry her sagacity had miscarried, and half glad that Tom had stumbled into obedient conduct for once. But Sidney said: "Well, now, if I didn't think you sewed his collar with white thread, but it's black." "Why, I did sew it with white! Tom!" But Tom did not wait for the rest. As he went out at the door he said: "Siddy, I'll lick you for that." In a safe place Tom examined two large needles which were thrust into the lapels of his jacket, and had thread bound about them--one needle carried white thread and the other black. He said: "She'd never noticed if it hadn't been for Sid. Confound it! sometimes she sews it with white, and sometimes she sews it with black. I wish to geeminy she'd stick to one or t'other--I can't keep the run of 'em. But I bet you I'll lam Sid for that. I'll learn him!" He was not the Model Boy of the village. He knew the model boy very well though--and loathed him. Within two minutes, or even less, he had forgotten all his troubles. Not because his troubles were one whit less heavy and bitter to him than a man's are to a man, but because a new and powerful interest bore them down and drove them out of his mind for the time--just as men's misfortunes are forgotten in the excitement of new enterprises. This new interest was a valued novelty in whistling, which he had just acquired from a negro, and he was suffering to practise it undisturbed. It consisted in a peculiar bird-like turn, a sort of liquid warble, produced by touching the tongue to the roof of the mouth at short intervals in the midst of the music--the reader probably remembers how to do it, if he has ever been a boy. Diligence and attention soon gave him the knack of it, and he strode down the street with his mouth full of harmony and his soul full of gratitude. He felt much as an astronomer feels who has discovered a new planet--no doubt, as far as strong, deep, unalloyed pleasure is concerned, the advantage was with the boy, not the astronomer. The summer evenings were long. It was not dark, yet. Presently Tom checked his whistle. A stranger was before him--a boy a shade larger than himself. A new-comer of any age or either sex was an impressive curiosity in the poor little shabby village of St. Petersburg. This boy was well dressed, too--well dressed on a week-day. This was simply astounding. His cap was a dainty thing, his close-buttoned blue cloth roundabout was new and natty, and so were his pantaloons. He had shoes on--and it was only Friday. He even wore a necktie, a bright bit of ribbon. He had a citified air about him that ate into Tom's vitals. The more Tom stared at the splendid marvel, the higher he turned up his nose at his finery and the shabbier and shabbier his own outfit seemed to him to grow. Neither boy spoke. If one moved, the other moved--but only sidewise, in a circle; they kept face to face and eye to eye all the time. Finally Tom said: "I can lick you!" "I'd like to see you try it." "Well, I can do it." "No you can't, either." "Yes I can." "No you can't." "I can." "You can't." "Can!" "Can't!" An uncomfortable pause. Then Tom said: "What's your name?" "'Tisn't any of your business, maybe." "Well I 'low I'll MAKE it my business." "Well why don't you?" "If you say much, I will." "Much--much--MUCH. There now." "Oh, you think you're mighty smart, DON'T you? I could lick you with one hand tied behind me, if I wanted to." "Well why don't you DO it? You SAY you can do it." "Well I WILL, if you fool with me." "Oh yes--I've seen whole families in the same fix." "Smarty! You think you're SOME, now, DON'T you? Oh, what a hat!" "You can lump that hat if you don't like it. I dare you to knock it off--and anybody that'll take a dare will suck eggs." "You're a liar!" "You're another." "You're a fighting liar and dasn't take it up." "Aw--take a walk!" "Say--if you give me much more of your sass I'll take and bounce a rock off'n your head." "Oh, of COURSE you will." "Well I WILL." "Well why don't you DO it then? What do you keep SAYING you will for? Why don't you DO it? It's because you're afraid." "I AIN'T afraid." "You are." "I ain't." "You are." Another pause, and more eying and sidling around each other. Presently they were shoulder to shoulder. Tom said: "Get away from here!" "Go away yourself!" "I won't." "I won't either." So they stood, each with a foot placed at an angle as a brace, and both shoving with might and main, and glowering at each other with hate. But neither could get an advantage. After struggling till both were hot and flushed, each relaxed his strain with watchful caution, and Tom said: "You're a coward and a pup. I'll tell my big brother on you, and he can thrash you with his little finger, and I'll make him do it, too." "What do I care for your big brother? I've got a brother that's bigger than he is--and what's more, he can throw him over that fence, too." [Both brothers were imaginary.] "That's a lie." "YOUR saying so don't make it so." Tom drew a line in the dust with his big toe, and said: "I dare you to step over that, and I'll lick you till you can't stand up. Anybody that'll take a dare will steal sheep." The new boy stepped over promptly, and said: "Now you said you'd do it, now let's see you do it." "Don't you crowd me now; you better look out." "Well, you SAID you'd do it--why don't you do it?" "By jingo! for two cents I WILL do it." The new boy took two broad coppers out of his pocket and held them out with derision. Tom struck them to the ground. In an instant both boys were rolling and tumbling in the dirt, gripped together like cats; and for the space of a minute they tugged and tore at each other's hair and clothes, punched and scratched each other's nose, and covered themselves with dust and glory. Presently the confusion took form, and through the fog of battle Tom appeared, seated astride the new boy, and pounding him with his fists. "Holler 'nuff!" said he. The boy only struggled to free himself. He was crying--mainly from rage. "Holler 'nuff!"--and the pounding went on. At last the stranger got out a smothered "'Nuff!" and Tom let him up and said: "Now that'll learn you. Better look out who you're fooling with next time." The new boy went off brushing the dust from his clothes, sobbing, snuffling, and occasionally looking back and shaking his head and threatening what he would do to Tom the "next time he caught him out." To which Tom responded with jeers, and started off in high feather, and as soon as his back was turned the new boy snatched up a stone, threw it and hit him between the shoulders and then turned tail and ran like an antelope. Tom chased the traitor home, and thus found out where he lived. He then held a position at the gate for some time, daring the enemy to come outside, but the enemy only made faces at him through the window and declined. At last the enemy's mother appeared, and called Tom a bad, vicious, vulgar child, and ordered him away. So he went away; but he said he "'lowed" to "lay" for that boy. He got home pretty late that night, and when he climbed cautiously in at the window, he uncovered an ambuscade, in the person of his aunt; and when she saw the state his clothes were in her resolution to turn his Saturday holiday into captivity at hard labor became adamantine in its firmness. compress-1.2.1/snappy/testdata/Mark.Twain-Tom.Sawyer.txt.rawsnappy000066400000000000000000000232171303637052300252450ustar00rootroot00000000000000nProduced by David Widger. The previous edition was update28Jose Menendez.  FlTHE ADVENTURES OF TOM SAWYERN02BYr#$MARK TWAINV'd(Samuel Langhorne Clemens)^P R E F A C E MOST of the adventures recorded in this book really occurred; one or two were experiences of my own, the rest thoseoboys wh 7$ schoolmat 7ine. Huck Finn is drawn from life; Tom Sawyer also, but not $@an individual--heD$a combinat! \characteristics of three0m I knew, and!'@refore belongs to[posite !8rHarchitec!R. Az(odd superstEz?,uched upon w!DallEPalent among children slaves % e West at!}od 4is story--that!Lto say, thirty or fo \years ago. Although my %iita d mainly6n$entertainmof)3and girls, I hope it will not be shunneeimen0 wo on @account, for part\. VdTUTHOR. HARTFORD, 1876fGHT O M S A W Y E RpCHAPTER I "TOM!" No answer.ZWhat's ga with)Hboy, I wonder? You>REld lady pulled her spectacles dowI$looked oveEbm abouE room;!gn s  m up%: ut u*0m. She seldomneY +THROUGH)Eso sma}ang as awyI<4her state pairprideEFer heartIXebuilt`"style,"a$ service-- could havAhreaeZ0stove-lids juas well.  perplexedna maU th!8 aid,~$ fiercely,6staloud enyayfurniag: "Wella4lay if I get h!8of you I'll--" did snish,[by!bs a,% bend!vU punching 5 bedQe bA)j!he nee breaAoCtu! the QesBIresurrecnotn!. cataI I6seebeaboyA!w open doorE stoo -A,tomato vines&4"jimpson" weedeat con=u!Dgarden. No Tom. So%Slif"upA voice&aaigllcula$!dista"sho_!Y-o-u-uTh!0a slight nois!hini!turEimAG seize?elboyIeckADroundiParrfw!! I m'a'!-loset. E;doAiinre?" "N). ! Look!58your hands. And%mouth bISE truckX(I don't knoBuntcqD. I^ jam-' atA+is. F!> s I'#aid if akdid^letyE alI'd skin. H!E!Yswitch  huŲEVaireVil%ld fools  bigga7 teASC%dog new , ane0 x5b,my goodness,ǩ/A|,ike, two dayHowLd AI 's8 ing? He '! !j how h nca rn ms ɀmyA:der up%1hshe = make%DtEoff%Ra minu ' me l!, i agai!d I't hi0m a lick. I a%futatE&I a'%7 Lord ruth,5b . SparAe rod !Qspile ,!GeBsays. I'a% up s suffer!for u y 0ow. He's fullG e Old Scra20 laws-a-me! h-my  ,dead sister'U y, pE)1goeUt! lash him,F hEvery IA off,!Ucj does hur%so)_ =1myEt most, ks. -a-U , marn!womUU fewE%5)roublz% Scrip< !recko's so%l L hooke $evening, *E, [* Sgwe!\n!0 "afternoon"]s i1be oblee~ toI@him work, to-morre ̈́Iy hard e0!u= Sature wO aAvis ASholida[ ahB morA e a els!<ndGOTdoE!}IA' or bmuBildom(-e)EhEm!Eb(home barely seaso help JA! colom L stea![ sugar!0opportunity oed, Aunas{A ques#aat qguiend E6deep-- wanQ  rapMi6damagreveal0s. Like many %c simple-ed souE>as* pet vacbelievA "endow! a t@ dark%bmysdiplomacm she loveecontemp x*transnt devic s marvelE[low cun. S sheE TomG%midE warmeR,Nit8 Yes'ma"Powerfu rmf'D  !!!go`a-swimmNTom^ A bim a sc]shŏITom--a tyduncomfortable suspicion. Hed]I<a but!t AWnc  S=  !No'm-y"EWmu& @I reacl 9  %Toasmaia !too!km  ." it flattea to reflecCat!ediscov'ey%dry anyb   /aV a8aint.m int her, w huln)Z stajc) movESom`us pump|n  eads--'sap yISe08vwa hink!$ aVIvL circumstantial evid"  miss  !$a  inspirAAe^! hav$ undor-collarrQ se-it f  ead,N ? UnbuttoJr jacke" sQof!mNope  @. His I4as secuj^ B!   ' uyou dare'fQ A  IaIA*give yeE^  you'ra sinU caa`a[ is--bea9'%& . THISR U sorryA sagacit %carri*,gE? Tom Astu\obediconduc:. aSidneyo w, I!wIAF%{%1wN ad,  lack"Why, OBL8!watot. As хA^I%q Siddp= v  IabInafe cevexaadlarge2whichthry!\c lapYa!` ad b&m--on^ -et1D%E )Hs he'danotice!Xha%E Sid. Confit!3 * s ]seth T &2& ,I wish to geYy*X tick!'--keeru= 'emes I bet%)amAall rn4A4H s!%0 Model Boya!Avillaghm&]O  --aZlo AmR iAEs,  l!forgott t s. NcauseE*IV!*aDPvyEbi7!L t a man's rmanwb _?p ibd em%droaSis1ye--r en's misun re he excite Tnew.is a value veltU whist Za  acquigroIhI&it unurbed. I;new-c%Aofs ageisexXDan impressive curi e litt habby\W4St. Petersburgi{`dZtoo Z ak  < yAing capa daint!!5- ed blueth `3\ne# natto)Hp!loons.wshoes on#i)o Fr)! necktiO br ribbon0Ya citifi ir' nA 's vital?e mi"1 st spl- }Ihig uAvosfinS!%ie! )aoutfitmedr o grow. NM]A spoke. If\ mb -! %Nsidewi  leekept @Leyalle.$a%$: " C" o="i,  8doN> ,  Y.'!Can~ An:\p=aen2r nam"'Tis @yr busimaybew  I8 wu MAKEA# 0)why you?If say #3Much----MUCHre<Oh,=_  T y2)!DON'T%?! !" w: hAta@bnme  op2 DOS !SAYi!=4I WILLT 1~ m)EOh yes--!,whole famili&%same fixSmarty!|2 SOME !-aA!QA lumP at i)YEitd tB ck it offte t bre% suck eggIY" !aem %f .edaEf p% Aw--a walkXSay-- meEj/{ sassI @nu   ro9 f'n ,o!S of COURSE=J;)n?A d SAYINGT ? W.>Q{Ia X frai I AIaAarIzIA)3 -e!siha <.&J$!lr #hae.+om"Get away %Go !&' BS3)y{, a aazt a~' a"%rY} bothvAu!sflu rela%Pstrainx wHcau .juWcowar,a pup ig" thrash! y f+"Rudo)p![ {?goty /fs'g" +'sE,throwdo' !t[ uWiXary.]((i=YOUR ss5 1!xdr, lin!a dA'%6!itomh&h.q step)%ZE5 nd !An%V|eF^# new { tep!4promptl  Noww 'd!<nowXe %lD%, rowd now; & 0P SAID'h--6Wd[ By jingo!EX5"cents )].t + broad copN-Apoehel-m %d-i !s%!m g0. BF.e!qsirol adigri% toge cats;6 aJo spac"",tugm` 2'mI nd cls,(3 %a%'Du !m - )A!glory*bfu!=)foaug,'g!baI!e%,> U3+!Me1 pong!fis/8"Holler 'nuff!"IhA a ^ t  f/"*Hcr%--.U0rC :d-At"!AHe a sm!"'N !Y!'M upaa%yBZunz   !/%+  "m0-[ ff brus"%!dUG sobbm s!g^% occa!o ax"!shaK~ Aeat"wZat%\" "cv%R%ouaTo*ch%; respp., jeer\##A]L(f , `M#)/!12"(^.neerew iZ% betw >7 $s-\ail! rake antelop om chaH,tor{")}thus A]w} lived.Ana pion5PgbpsA",!"enemy!C`q> e[ms[A} otdecMd. .%JABca bvgus, vul!3)c3} Ta  ; 1"' d""lay"%an:\1##~3 tty !#n {$htim. us$ ) > +!mbuscadhsfe;@+;gast!AmAeraolN Av +% %hcaptivuQr1bo<ca"nt 8 its firmness. compress-1.2.1/snappy/testdata/alice29.txt000066400000000000000000004510311303637052300204700ustar00rootroot00000000000000 ALICE'S ADVENTURES IN WONDERLAND Lewis Carroll THE MILLENNIUM FULCRUM EDITION 2.9 CHAPTER I Down the Rabbit-Hole Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, `and what is the use of a book,' thought Alice `without pictures or conversation?' So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her. There was nothing so VERY remarkable in that; nor did Alice think it so VERY much out of the way to hear the Rabbit say to itself, `Oh dear! Oh dear! I shall be late!' (when she thought it over afterwards, it occurred to her that she ought to have wondered at this, but at the time it all seemed quite natural); but when the Rabbit actually TOOK A WATCH OUT OF ITS WAISTCOAT- POCKET, and looked at it, and then hurried on, Alice started to her feet, for it flashed across her mind that she had never before seen a rabbit with either a waistcoat-pocket, or a watch to take out of it, and burning with curiosity, she ran across the field after it, and fortunately was just in time to see it pop down a large rabbit-hole under the hedge. In another moment down went Alice after it, never once considering how in the world she was to get out again. The rabbit-hole went straight on like a tunnel for some way, and then dipped suddenly down, so suddenly that Alice had not a moment to think about stopping herself before she found herself falling down a very deep well. Either the well was very deep, or she fell very slowly, for she had plenty of time as she went down to look about her and to wonder what was going to happen next. First, she tried to look down and make out what she was coming to, but it was too dark to see anything; then she looked at the sides of the well, and noticed that they were filled with cupboards and book-shelves; here and there she saw maps and pictures hung upon pegs. She took down a jar from one of the shelves as she passed; it was labelled `ORANGE MARMALADE', but to her great disappointment it was empty: she did not like to drop the jar for fear of killing somebody, so managed to put it into one of the cupboards as she fell past it. `Well!' thought Alice to herself, `after such a fall as this, I shall think nothing of tumbling down stairs! How brave they'll all think me at home! Why, I wouldn't say anything about it, even if I fell off the top of the house!' (Which was very likely true.) Down, down, down. Would the fall NEVER come to an end! `I wonder how many miles I've fallen by this time?' she said aloud. `I must be getting somewhere near the centre of the earth. Let me see: that would be four thousand miles down, I think--' (for, you see, Alice had learnt several things of this sort in her lessons in the schoolroom, and though this was not a VERY good opportunity for showing off her knowledge, as there was no one to listen to her, still it was good practice to say it over) `--yes, that's about the right distance--but then I wonder what Latitude or Longitude I've got to?' (Alice had no idea what Latitude was, or Longitude either, but thought they were nice grand words to say.) Presently she began again. `I wonder if I shall fall right THROUGH the earth! How funny it'll seem to come out among the people that walk with their heads downward! The Antipathies, I think--' (she was rather glad there WAS no one listening, this time, as it didn't sound at all the right word) `--but I shall have to ask them what the name of the country is, you know. Please, Ma'am, is this New Zealand or Australia?' (and she tried to curtsey as she spoke--fancy CURTSEYING as you're falling through the air! Do you think you could manage it?) `And what an ignorant little girl she'll think me for asking! No, it'll never do to ask: perhaps I shall see it written up somewhere.' Down, down, down. There was nothing else to do, so Alice soon began talking again. `Dinah'll miss me very much to-night, I should think!' (Dinah was the cat.) `I hope they'll remember her saucer of milk at tea-time. Dinah my dear! I wish you were down here with me! There are no mice in the air, I'm afraid, but you might catch a bat, and that's very like a mouse, you know. But do cats eat bats, I wonder?' And here Alice began to get rather sleepy, and went on saying to herself, in a dreamy sort of way, `Do cats eat bats? Do cats eat bats?' and sometimes, `Do bats eat cats?' for, you see, as she couldn't answer either question, it didn't much matter which way she put it. She felt that she was dozing off, and had just begun to dream that she was walking hand in hand with Dinah, and saying to her very earnestly, `Now, Dinah, tell me the truth: did you ever eat a bat?' when suddenly, thump! thump! down she came upon a heap of sticks and dry leaves, and the fall was over. Alice was not a bit hurt, and she jumped up on to her feet in a moment: she looked up, but it was all dark overhead; before her was another long passage, and the White Rabbit was still in sight, hurrying down it. There was not a moment to be lost: away went Alice like the wind, and was just in time to hear it say, as it turned a corner, `Oh my ears and whiskers, how late it's getting!' She was close behind it when she turned the corner, but the Rabbit was no longer to be seen: she found herself in a long, low hall, which was lit up by a row of lamps hanging from the roof. There were doors all round the hall, but they were all locked; and when Alice had been all the way down one side and up the other, trying every door, she walked sadly down the middle, wondering how she was ever to get out again. Suddenly she came upon a little three-legged table, all made of solid glass; there was nothing on it except a tiny golden key, and Alice's first thought was that it might belong to one of the doors of the hall; but, alas! either the locks were too large, or the key was too small, but at any rate it would not open any of them. However, on the second time round, she came upon a low curtain she had not noticed before, and behind it was a little door about fifteen inches high: she tried the little golden key in the lock, and to her great delight it fitted! Alice opened the door and found that it led into a small passage, not much larger than a rat-hole: she knelt down and looked along the passage into the loveliest garden you ever saw. How she longed to get out of that dark hall, and wander about among those beds of bright flowers and those cool fountains, but she could not even get her head though the doorway; `and even if my head would go through,' thought poor Alice, `it would be of very little use without my shoulders. Oh, how I wish I could shut up like a telescope! I think I could, if I only know how to begin.' For, you see, so many out-of-the-way things had happened lately, that Alice had begun to think that very few things indeed were really impossible. There seemed to be no use in waiting by the little door, so she went back to the table, half hoping she might find another key on it, or at any rate a book of rules for shutting people up like telescopes: this time she found a little bottle on it, (`which certainly was not here before,' said Alice,) and round the neck of the bottle was a paper label, with the words `DRINK ME' beautifully printed on it in large letters. It was all very well to say `Drink me,' but the wise little Alice was not going to do THAT in a hurry. `No, I'll look first,' she said, `and see whether it's marked "poison" or not'; for she had read several nice little histories about children who had got burnt, and eaten up by wild beasts and other unpleasant things, all because they WOULD not remember the simple rules their friends had taught them: such as, that a red-hot poker will burn you if you hold it too long; and that if you cut your finger VERY deeply with a knife, it usually bleeds; and she had never forgotten that, if you drink much from a bottle marked `poison,' it is almost certain to disagree with you, sooner or later. However, this bottle was NOT marked `poison,' so Alice ventured to taste it, and finding it very nice, (it had, in fact, a sort of mixed flavour of cherry-tart, custard, pine-apple, roast turkey, toffee, and hot buttered toast,) she very soon finished it off. * * * * * * * * * * * * * * * * * * * * `What a curious feeling!' said Alice; `I must be shutting up like a telescope.' And so it was indeed: she was now only ten inches high, and her face brightened up at the thought that she was now the right size for going though the little door into that lovely garden. First, however, she waited for a few minutes to see if she was going to shrink any further: she felt a little nervous about this; `for it might end, you know,' said Alice to herself, `in my going out altogether, like a candle. I wonder what I should be like then?' And she tried to fancy what the flame of a candle is like after the candle is blown out, for she could not remember ever having seen such a thing. After a while, finding that nothing more happened, she decided on going into the garden at once; but, alas for poor Alice! when she got to the door, she found he had forgotten the little golden key, and when she went back to the table for it, she found she could not possibly reach it: she could see it quite plainly through the glass, and she tried her best to climb up one of the legs of the table, but it was too slippery; and when she had tired herself out with trying, the poor little thing sat down and cried. `Come, there's no use in crying like that!' said Alice to herself, rather sharply; `I advise you to leave off this minute!' She generally gave herself very good advice, (though she very seldom followed it), and sometimes she scolded herself so severely as to bring tears into her eyes; and once she remembered trying to box her own ears for having cheated herself in a game of croquet she was playing against herself, for this curious child was very fond of pretending to be two people. `But it's no use now,' thought poor Alice, `to pretend to be two people! Why, there's hardly enough of me left to make ONE respectable person!' Soon her eye fell on a little glass box that was lying under the table: she opened it, and found in it a very small cake, on which the words `EAT ME' were beautifully marked in currants. `Well, I'll eat it,' said Alice, `and if it makes me grow larger, I can reach the key; and if it makes me grow smaller, I can creep under the door; so either way I'll get into the garden, and I don't care which happens!' She ate a little bit, and said anxiously to herself, `Which way? Which way?', holding her hand on the top of her head to feel which way it was growing, and she was quite surprised to find that she remained the same size: to be sure, this generally happens when one eats cake, but Alice had got so much into the way of expecting nothing but out-of-the-way things to happen, that it seemed quite dull and stupid for life to go on in the common way. So she set to work, and very soon finished off the cake. * * * * * * * * * * * * * * * * * * * * CHAPTER II The Pool of Tears `Curiouser and curiouser!' cried Alice (she was so much surprised, that for the moment she quite forgot how to speak good English); `now I'm opening out like the largest telescope that ever was! Good-bye, feet!' (for when she looked down at her feet, they seemed to be almost out of sight, they were getting so far off). `Oh, my poor little feet, I wonder who will put on your shoes and stockings for you now, dears? I'm sure _I_ shan't be able! I shall be a great deal too far off to trouble myself about you: you must manage the best way you can; --but I must be kind to them,' thought Alice, `or perhaps they won't walk the way I want to go! Let me see: I'll give them a new pair of boots every Christmas.' And she went on planning to herself how she would manage it. `They must go by the carrier,' she thought; `and how funny it'll seem, sending presents to one's own feet! And how odd the directions will look! ALICE'S RIGHT FOOT, ESQ. HEARTHRUG, NEAR THE FENDER, (WITH ALICE'S LOVE). Oh dear, what nonsense I'm talking!' Just then her head struck against the roof of the hall: in fact she was now more than nine feet high, and she at once took up the little golden key and hurried off to the garden door. Poor Alice! It was as much as she could do, lying down on one side, to look through into the garden with one eye; but to get through was more hopeless than ever: she sat down and began to cry again. `You ought to be ashamed of yourself,' said Alice, `a great girl like you,' (she might well say this), `to go on crying in this way! Stop this moment, I tell you!' But she went on all the same, shedding gallons of tears, until there was a large pool all round her, about four inches deep and reaching half down the hall. After a time she heard a little pattering of feet in the distance, and she hastily dried her eyes to see what was coming. It was the White Rabbit returning, splendidly dressed, with a pair of white kid gloves in one hand and a large fan in the other: he came trotting along in a great hurry, muttering to himself as he came, `Oh! the Duchess, the Duchess! Oh! won't she be savage if I've kept her waiting!' Alice felt so desperate that she was ready to ask help of any one; so, when the Rabbit came near her, she began, in a low, timid voice, `If you please, sir--' The Rabbit started violently, dropped the white kid gloves and the fan, and skurried away into the darkness as hard as he could go. Alice took up the fan and gloves, and, as the hall was very hot, she kept fanning herself all the time she went on talking: `Dear, dear! How queer everything is to-day! And yesterday things went on just as usual. I wonder if I've been changed in the night? Let me think: was I the same when I got up this morning? I almost think I can remember feeling a little different. But if I'm not the same, the next question is, Who in the world am I? Ah, THAT'S the great puzzle!' And she began thinking over all the children she knew that were of the same age as herself, to see if she could have been changed for any of them. `I'm sure I'm not Ada,' she said, `for her hair goes in such long ringlets, and mine doesn't go in ringlets at all; and I'm sure I can't be Mabel, for I know all sorts of things, and she, oh! she knows such a very little! Besides, SHE'S she, and I'm I, and--oh dear, how puzzling it all is! I'll try if I know all the things I used to know. Let me see: four times five is twelve, and four times six is thirteen, and four times seven is--oh dear! I shall never get to twenty at that rate! However, the Multiplication Table doesn't signify: let's try Geography. London is the capital of Paris, and Paris is the capital of Rome, and Rome--no, THAT'S all wrong, I'm certain! I must have been changed for Mabel! I'll try and say "How doth the little--"' and she crossed her hands on her lap as if she were saying lessons, and began to repeat it, but her voice sounded hoarse and strange, and the words did not come the same as they used to do:-- `How doth the little crocodile Improve his shining tail, And pour the waters of the Nile On every golden scale! `How cheerfully he seems to grin, How neatly spread his claws, And welcome little fishes in With gently smiling jaws!' `I'm sure those are not the right words,' said poor Alice, and her eyes filled with tears again as she went on, `I must be Mabel after all, and I shall have to go and live in that poky little house, and have next to no toys to play with, and oh! ever so many lessons to learn! No, I've made up my mind about it; if I'm Mabel, I'll stay down here! It'll be no use their putting their heads down and saying "Come up again, dear!" I shall only look up and say "Who am I then? Tell me that first, and then, if I like being that person, I'll come up: if not, I'll stay down here till I'm somebody else"--but, oh dear!' cried Alice, with a sudden burst of tears, `I do wish they WOULD put their heads down! I am so VERY tired of being all alone here!' As she said this she looked down at her hands, and was surprised to see that she had put on one of the Rabbit's little white kid gloves while she was talking. `How CAN I have done that?' she thought. `I must be growing small again.' She got up and went to the table to measure herself by it, and found that, as nearly as she could guess, she was now about two feet high, and was going on shrinking rapidly: she soon found out that the cause of this was the fan she was holding, and she dropped it hastily, just in time to avoid shrinking away altogether. `That WAS a narrow escape!' said Alice, a good deal frightened at the sudden change, but very glad to find herself still in existence; `and now for the garden!' and she ran with all speed back to the little door: but, alas! the little door was shut again, and the little golden key was lying on the glass table as before, `and things are worse than ever,' thought the poor child, `for I never was so small as this before, never! And I declare it's too bad, that it is!' As she said these words her foot slipped, and in another moment, splash! she was up to her chin in salt water. He first idea was that she had somehow fallen into the sea, `and in that case I can go back by railway,' she said to herself. (Alice had been to the seaside once in her life, and had come to the general conclusion, that wherever you go to on the English coast you find a number of bathing machines in the sea, some children digging in the sand with wooden spades, then a row of lodging houses, and behind them a railway station.) However, she soon made out that she was in the pool of tears which she had wept when she was nine feet high. `I wish I hadn't cried so much!' said Alice, as she swam about, trying to find her way out. `I shall be punished for it now, I suppose, by being drowned in my own tears! That WILL be a queer thing, to be sure! However, everything is queer to-day.' Just then she heard something splashing about in the pool a little way off, and she swam nearer to make out what it was: at first she thought it must be a walrus or hippopotamus, but then she remembered how small she was now, and she soon made out that it was only a mouse that had slipped in like herself. `Would it be of any use, now,' thought Alice, `to speak to this mouse? Everything is so out-of-the-way down here, that I should think very likely it can talk: at any rate, there's no harm in trying.' So she began: `O Mouse, do you know the way out of this pool? I am very tired of swimming about here, O Mouse!' (Alice thought this must be the right way of speaking to a mouse: she had never done such a thing before, but she remembered having seen in her brother's Latin Grammar, `A mouse--of a mouse--to a mouse--a mouse--O mouse!' The Mouse looked at her rather inquisitively, and seemed to her to wink with one of its little eyes, but it said nothing. `Perhaps it doesn't understand English,' thought Alice; `I daresay it's a French mouse, come over with William the Conqueror.' (For, with all her knowledge of history, Alice had no very clear notion how long ago anything had happened.) So she began again: `Ou est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. `Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. `I quite forgot you didn't like cats.' `Not like cats!' cried the Mouse, in a shrill, passionate voice. `Would YOU like cats if you were me?' `Well, perhaps not,' said Alice in a soothing tone: `don't be angry about it. And yet I wish I could show you our cat Dinah: I think you'd take a fancy to cats if you could only see her. She is such a dear quiet thing,' Alice went on, half to herself, as she swam lazily about in the pool, `and she sits purring so nicely by the fire, licking her paws and washing her face--and she is such a nice soft thing to nurse--and she's such a capital one for catching mice--oh, I beg your pardon!' cried Alice again, for this time the Mouse was bristling all over, and she felt certain it must be really offended. `We won't talk about her any more if you'd rather not.' `We indeed!' cried the Mouse, who was trembling down to the end of his tail. `As if I would talk on such a subject! Our family always HATED cats: nasty, low, vulgar things! Don't let me hear the name again!' `I won't indeed!' said Alice, in a great hurry to change the subject of conversation. `Are you--are you fond--of--of dogs?' The Mouse did not answer, so Alice went on eagerly: `There is such a nice little dog near our house I should like to show you! A little bright-eyed terrier, you know, with oh, such long curly brown hair! And it'll fetch things when you throw them, and it'll sit up and beg for its dinner, and all sorts of things--I can't remember half of them--and it belongs to a farmer, you know, and he says it's so useful, it's worth a hundred pounds! He says it kills all the rats and--oh dear!' cried Alice in a sorrowful tone, `I'm afraid I've offended it again!' For the Mouse was swimming away from her as hard as it could go, and making quite a commotion in the pool as it went. So she called softly after it, `Mouse dear! Do come back again, and we won't talk about cats or dogs either, if you don't like them!' When the Mouse heard this, it turned round and swam slowly back to her: its face was quite pale (with passion, Alice thought), and it said in a low trembling voice, `Let us get to the shore, and then I'll tell you my history, and you'll understand why it is I hate cats and dogs.' It was high time to go, for the pool was getting quite crowded with the birds and animals that had fallen into it: there were a Duck and a Dodo, a Lory and an Eaglet, and several other curious creatures. Alice led the way, and the whole party swam to the shore. CHAPTER III A Caucus-Race and a Long Tale They were indeed a queer-looking party that assembled on the bank--the birds with draggled feathers, the animals with their fur clinging close to them, and all dripping wet, cross, and uncomfortable. The first question of course was, how to get dry again: they had a consultation about this, and after a few minutes it seemed quite natural to Alice to find herself talking familiarly with them, as if she had known them all her life. Indeed, she had quite a long argument with the Lory, who at last turned sulky, and would only say, `I am older than you, and must know better'; and this Alice would not allow without knowing how old it was, and, as the Lory positively refused to tell its age, there was no more to be said. At last the Mouse, who seemed to be a person of authority among them, called out, `Sit down, all of you, and listen to me! I'LL soon make you dry enough!' They all sat down at once, in a large ring, with the Mouse in the middle. Alice kept her eyes anxiously fixed on it, for she felt sure she would catch a bad cold if she did not get dry very soon. `Ahem!' said the Mouse with an important air, `are you all ready? This is the driest thing I know. Silence all round, if you please! "William the Conqueror, whose cause was favoured by the pope, was soon submitted to by the English, who wanted leaders, and had been of late much accustomed to usurpation and conquest. Edwin and Morcar, the earls of Mercia and Northumbria--"' `Ugh!' said the Lory, with a shiver. `I beg your pardon!' said the Mouse, frowning, but very politely: `Did you speak?' `Not I!' said the Lory hastily. `I thought you did,' said the Mouse. `--I proceed. "Edwin and Morcar, the earls of Mercia and Northumbria, declared for him: and even Stigand, the patriotic archbishop of Canterbury, found it advisable--"' `Found WHAT?' said the Duck. `Found IT,' the Mouse replied rather crossly: `of course you know what "it" means.' `I know what "it" means well enough, when I find a thing,' said the Duck: `it's generally a frog or a worm. The question is, what did the archbishop find?' The Mouse did not notice this question, but hurriedly went on, `"--found it advisable to go with Edgar Atheling to meet William and offer him the crown. William's conduct at first was moderate. But the insolence of his Normans--" How are you getting on now, my dear?' it continued, turning to Alice as it spoke. `As wet as ever,' said Alice in a melancholy tone: `it doesn't seem to dry me at all.' `In that case,' said the Dodo solemnly, rising to its feet, `I move that the meeting adjourn, for the immediate adoption of more energetic remedies--' `Speak English!' said the Eaglet. `I don't know the meaning of half those long words, and, what's more, I don't believe you do either!' And the Eaglet bent down its head to hide a smile: some of the other birds tittered audibly. `What I was going to say,' said the Dodo in an offended tone, `was, that the best thing to get us dry would be a Caucus-race.' `What IS a Caucus-race?' said Alice; not that she wanted much to know, but the Dodo had paused as if it thought that SOMEBODY ought to speak, and no one else seemed inclined to say anything. `Why,' said the Dodo, `the best way to explain it is to do it.' (And, as you might like to try the thing yourself, some winter day, I will tell you how the Dodo managed it.) First it marked out a race-course, in a sort of circle, (`the exact shape doesn't matter,' it said,) and then all the party were placed along the course, here and there. There was no `One, two, three, and away,' but they began running when they liked, and left off when they liked, so that it was not easy to know when the race was over. However, when they had been running half an hour or so, and were quite dry again, the Dodo suddenly called out `The race is over!' and they all crowded round it, panting, and asking, `But who has won?' This question the Dodo could not answer without a great deal of thought, and it sat for a long time with one finger pressed upon its forehead (the position in which you usually see Shakespeare, in the pictures of him), while the rest waited in silence. At last the Dodo said, `EVERYBODY has won, and all must have prizes.' `But who is to give the prizes?' quite a chorus of voices asked. `Why, SHE, of course,' said the Dodo, pointing to Alice with one finger; and the whole party at once crowded round her, calling out in a confused way, `Prizes! Prizes!' Alice had no idea what to do, and in despair she put her hand in her pocket, and pulled out a box of comfits, (luckily the salt water had not got into it), and handed them round as prizes. There was exactly one a-piece all round. `But she must have a prize herself, you know,' said the Mouse. `Of course,' the Dodo replied very gravely. `What else have you got in your pocket?' he went on, turning to Alice. `Only a thimble,' said Alice sadly. `Hand it over here,' said the Dodo. Then they all crowded round her once more, while the Dodo solemnly presented the thimble, saying `We beg your acceptance of this elegant thimble'; and, when it had finished this short speech, they all cheered. Alice thought the whole thing very absurd, but they all looked so grave that she did not dare to laugh; and, as she could not think of anything to say, she simply bowed, and took the thimble, looking as solemn as she could. The next thing was to eat the comfits: this caused some noise and confusion, as the large birds complained that they could not taste theirs, and the small ones choked and had to be patted on the back. However, it was over at last, and they sat down again in a ring, and begged the Mouse to tell them something more. `You promised to tell me your history, you know,' said Alice, `and why it is you hate--C and D,' she added in a whisper, half afraid that it would be offended again. `Mine is a long and a sad tale!' said the Mouse, turning to Alice, and sighing. `It IS a long tail, certainly,' said Alice, looking down with wonder at the Mouse's tail; `but why do you call it sad?' And she kept on puzzling about it while the Mouse was speaking, so that her idea of the tale was something like this:-- `Fury said to a mouse, That he met in the house, "Let us both go to law: I will prosecute YOU. --Come, I'll take no denial; We must have a trial: For really this morning I've nothing to do." Said the mouse to the cur, "Such a trial, dear Sir, With no jury or judge, would be wasting our breath." "I'll be judge, I'll be jury," Said cunning old Fury: "I'll try the whole cause, and condemn you to death."' `You are not attending!' said the Mouse to Alice severely. `What are you thinking of?' `I beg your pardon,' said Alice very humbly: `you had got to the fifth bend, I think?' `I had NOT!' cried the Mouse, sharply and very angrily. `A knot!' said Alice, always ready to make herself useful, and looking anxiously about her. `Oh, do let me help to undo it!' `I shall do nothing of the sort,' said the Mouse, getting up and walking away. `You insult me by talking such nonsense!' `I didn't mean it!' pleaded poor Alice. `But you're so easily offended, you know!' The Mouse only growled in reply. `Please come back and finish your story!' Alice called after it; and the others all joined in chorus, `Yes, please do!' but the Mouse only shook its head impatiently, and walked a little quicker. `What a pity it wouldn't stay!' sighed the Lory, as soon as it was quite out of sight; and an old Crab took the opportunity of saying to her daughter `Ah, my dear! Let this be a lesson to you never to lose YOUR temper!' `Hold your tongue, Ma!' said the young Crab, a little snappishly. `You're enough to try the patience of an oyster!' `I wish I had our Dinah here, I know I do!' said Alice aloud, addressing nobody in particular. `She'd soon fetch it back!' `And who is Dinah, if I might venture to ask the question?' said the Lory. Alice replied eagerly, for she was always ready to talk about her pet: `Dinah's our cat. And she's such a capital one for catching mice you can't think! And oh, I wish you could see her after the birds! Why, she'll eat a little bird as soon as look at it!' This speech caused a remarkable sensation among the party. Some of the birds hurried off at once: one the old Magpie began wrapping itself up very carefully, remarking, `I really must be getting home; the night-air doesn't suit my throat!' and a Canary called out in a trembling voice to its children, `Come away, my dears! It's high time you were all in bed!' On various pretexts they all moved off, and Alice was soon left alone. `I wish I hadn't mentioned Dinah!' she said to herself in a melancholy tone. `Nobody seems to like her, down here, and I'm sure she's the best cat in the world! Oh, my dear Dinah! I wonder if I shall ever see you any more!' And here poor Alice began to cry again, for she felt very lonely and low-spirited. In a little while, however, she again heard a little pattering of footsteps in the distance, and she looked up eagerly, half hoping that the Mouse had changed his mind, and was coming back to finish his story. CHAPTER IV The Rabbit Sends in a Little Bill It was the White Rabbit, trotting slowly back again, and looking anxiously about as it went, as if it had lost something; and she heard it muttering to itself `The Duchess! The Duchess! Oh my dear paws! Oh my fur and whiskers! She'll get me executed, as sure as ferrets are ferrets! Where CAN I have dropped them, I wonder?' Alice guessed in a moment that it was looking for the fan and the pair of white kid gloves, and she very good-naturedly began hunting about for them, but they were nowhere to be seen--everything seemed to have changed since her swim in the pool, and the great hall, with the glass table and the little door, had vanished completely. Very soon the Rabbit noticed Alice, as she went hunting about, and called out to her in an angry tone, `Why, Mary Ann, what ARE you doing out here? Run home this moment, and fetch me a pair of gloves and a fan! Quick, now!' And Alice was so much frightened that she ran off at once in the direction it pointed to, without trying to explain the mistake it had made. `He took me for his housemaid,' she said to herself as she ran. `How surprised he'll be when he finds out who I am! But I'd better take him his fan and gloves--that is, if I can find them.' As she said this, she came upon a neat little house, on the door of which was a bright brass plate with the name `W. RABBIT' engraved upon it. She went in without knocking, and hurried upstairs, in great fear lest she should meet the real Mary Ann, and be turned out of the house before she had found the fan and gloves. `How queer it seems,' Alice said to herself, `to be going messages for a rabbit! I suppose Dinah'll be sending me on messages next!' And she began fancying the sort of thing that would happen: `"Miss Alice! Come here directly, and get ready for your walk!" "Coming in a minute, nurse! But I've got to see that the mouse doesn't get out." Only I don't think,' Alice went on, `that they'd let Dinah stop in the house if it began ordering people about like that!' By this time she had found her way into a tidy little room with a table in the window, and on it (as she had hoped) a fan and two or three pairs of tiny white kid gloves: she took up the fan and a pair of the gloves, and was just going to leave the room, when her eye fell upon a little bottle that stood near the looking- glass. There was no label this time with the words `DRINK ME,' but nevertheless she uncorked it and put it to her lips. `I know SOMETHING interesting is sure to happen,' she said to herself, `whenever I eat or drink anything; so I'll just see what this bottle does. I do hope it'll make me grow large again, for really I'm quite tired of being such a tiny little thing!' It did so indeed, and much sooner than she had expected: before she had drunk half the bottle, she found her head pressing against the ceiling, and had to stoop to save her neck from being broken. She hastily put down the bottle, saying to herself `That's quite enough--I hope I shan't grow any more--As it is, I can't get out at the door--I do wish I hadn't drunk quite so much!' Alas! it was too late to wish that! She went on growing, and growing, and very soon had to kneel down on the floor: in another minute there was not even room for this, and she tried the effect of lying down with one elbow against the door, and the other arm curled round her head. Still she went on growing, and, as a last resource, she put one arm out of the window, and one foot up the chimney, and said to herself `Now I can do no more, whatever happens. What WILL become of me?' Luckily for Alice, the little magic bottle had now had its full effect, and she grew no larger: still it was very uncomfortable, and, as there seemed to be no sort of chance of her ever getting out of the room again, no wonder she felt unhappy. `It was much pleasanter at home,' thought poor Alice, `when one wasn't always growing larger and smaller, and being ordered about by mice and rabbits. I almost wish I hadn't gone down that rabbit-hole--and yet--and yet--it's rather curious, you know, this sort of life! I do wonder what CAN have happened to me! When I used to read fairy-tales, I fancied that kind of thing never happened, and now here I am in the middle of one! There ought to be a book written about me, that there ought! And when I grow up, I'll write one--but I'm grown up now,' she added in a sorrowful tone; `at least there's no room to grow up any more HERE.' `But then,' thought Alice, `shall I NEVER get any older than I am now? That'll be a comfort, one way--never to be an old woman- -but then--always to have lessons to learn! Oh, I shouldn't like THAT!' `Oh, you foolish Alice!' she answered herself. `How can you learn lessons in here? Why, there's hardly room for YOU, and no room at all for any lesson-books!' And so she went on, taking first one side and then the other, and making quite a conversation of it altogether; but after a few minutes she heard a voice outside, and stopped to listen. `Mary Ann! Mary Ann!' said the voice. `Fetch me my gloves this moment!' Then came a little pattering of feet on the stairs. Alice knew it was the Rabbit coming to look for her, and she trembled till she shook the house, quite forgetting that she was now about a thousand times as large as the Rabbit, and had no reason to be afraid of it. Presently the Rabbit came up to the door, and tried to open it; but, as the door opened inwards, and Alice's elbow was pressed hard against it, that attempt proved a failure. Alice heard it say to itself `Then I'll go round and get in at the window.' `THAT you won't' thought Alice, and, after waiting till she fancied she heard the Rabbit just under the window, she suddenly spread out her hand, and made a snatch in the air. She did not get hold of anything, but she heard a little shriek and a fall, and a crash of broken glass, from which she concluded that it was just possible it had fallen into a cucumber-frame, or something of the sort. Next came an angry voice--the Rabbit's--`Pat! Pat! Where are you?' And then a voice she had never heard before, `Sure then I'm here! Digging for apples, yer honour!' `Digging for apples, indeed!' said the Rabbit angrily. `Here! Come and help me out of THIS!' (Sounds of more broken glass.) `Now tell me, Pat, what's that in the window?' `Sure, it's an arm, yer honour!' (He pronounced it `arrum.') `An arm, you goose! Who ever saw one that size? Why, it fills the whole window!' `Sure, it does, yer honour: but it's an arm for all that.' `Well, it's got no business there, at any rate: go and take it away!' There was a long silence after this, and Alice could only hear whispers now and then; such as, `Sure, I don't like it, yer honour, at all, at all!' `Do as I tell you, you coward!' and at last she spread out her hand again, and made another snatch in the air. This time there were TWO little shrieks, and more sounds of broken glass. `What a number of cucumber-frames there must be!' thought Alice. `I wonder what they'll do next! As for pulling me out of the window, I only wish they COULD! I'm sure I don't want to stay in here any longer!' She waited for some time without hearing anything more: at last came a rumbling of little cartwheels, and the sound of a good many voice all talking together: she made out the words: `Where's the other ladder?--Why, I hadn't to bring but one; Bill's got the other--Bill! fetch it here, lad!--Here, put 'em up at this corner--No, tie 'em together first--they don't reach half high enough yet--Oh! they'll do well enough; don't be particular- -Here, Bill! catch hold of this rope--Will the roof bear?--Mind that loose slate--Oh, it's coming down! Heads below!' (a loud crash)--`Now, who did that?--It was Bill, I fancy--Who's to go down the chimney?--Nay, I shan't! YOU do it!--That I won't, then!--Bill's to go down--Here, Bill! the master says you're to go down the chimney!' `Oh! So Bill's got to come down the chimney, has he?' said Alice to herself. `Shy, they seem to put everything upon Bill! I wouldn't be in Bill's place for a good deal: this fireplace is narrow, to be sure; but I THINK I can kick a little!' She drew her foot as far down the chimney as she could, and waited till she heard a little animal (she couldn't guess of what sort it was) scratching and scrambling about in the chimney close above her: then, saying to herself `This is Bill,' she gave one sharp kick, and waited to see what would happen next. The first thing she heard was a general chorus of `There goes Bill!' then the Rabbit's voice along--`Catch him, you by the hedge!' then silence, and then another confusion of voices--`Hold up his head--Brandy now--Don't choke him--How was it, old fellow? What happened to you? Tell us all about it!' Last came a little feeble, squeaking voice, (`That's Bill,' thought Alice,) `Well, I hardly know--No more, thank ye; I'm better now--but I'm a deal too flustered to tell you--all I know is, something comes at me like a Jack-in-the-box, and up I goes like a sky-rocket!' `So you did, old fellow!' said the others. `We must burn the house down!' said the Rabbit's voice; and Alice called out as loud as she could, `If you do. I'll set Dinah at you!' There was a dead silence instantly, and Alice thought to herself, `I wonder what they WILL do next! If they had any sense, they'd take the roof off.' After a minute or two, they began moving about again, and Alice heard the Rabbit say, `A barrowful will do, to begin with.' `A barrowful of WHAT?' thought Alice; but she had not long to doubt, for the next moment a shower of little pebbles came rattling in at the window, and some of them hit her in the face. `I'll put a stop to this,' she said to herself, and shouted out, `You'd better not do that again!' which produced another dead silence. Alice noticed with some surprise that the pebbles were all turning into little cakes as they lay on the floor, and a bright idea came into her head. `If I eat one of these cakes,' she thought, `it's sure to make SOME change in my size; and as it can't possibly make me larger, it must make me smaller, I suppose.' So she swallowed one of the cakes, and was delighted to find that she began shrinking directly. As soon as she was small enough to get through the door, she ran out of the house, and found quite a crowd of little animals and birds waiting outside. The poor little Lizard, Bill, was in the middle, being held up by two guinea-pigs, who were giving it something out of a bottle. They all made a rush at Alice the moment she appeared; but she ran off as hard as she could, and soon found herself safe in a thick wood. `The first thing I've got to do,' said Alice to herself, as she wandered about in the wood, `is to grow to my right size again; and the second thing is to find my way into that lovely garden. I think that will be the best plan.' It sounded an excellent plan, no doubt, and very neatly and simply arranged; the only difficulty was, that she had not the smallest idea how to set about it; and while she was peering about anxiously among the trees, a little sharp bark just over her head made her look up in a great hurry. An enormous puppy was looking down at her with large round eyes, and feebly stretching out one paw, trying to touch her. `Poor little thing!' said Alice, in a coaxing tone, and she tried hard to whistle to it; but she was terribly frightened all the time at the thought that it might be hungry, in which case it would be very likely to eat her up in spite of all her coaxing. Hardly knowing what she did, she picked up a little bit of stick, and held it out to the puppy; whereupon the puppy jumped into the air off all its feet at once, with a yelp of delight, and rushed at the stick, and made believe to worry it; then Alice dodged behind a great thistle, to keep herself from being run over; and the moment she appeared on the other side, the puppy made another rush at the stick, and tumbled head over heels in its hurry to get hold of it; then Alice, thinking it was very like having a game of play with a cart-horse, and expecting every moment to be trampled under its feet, ran round the thistle again; then the puppy began a series of short charges at the stick, running a very little way forwards each time and a long way back, and barking hoarsely all the while, till at last it sat down a good way off, panting, with its tongue hanging out of its mouth, and its great eyes half shut. This seemed to Alice a good opportunity for making her escape; so she set off at once, and ran till she was quite tired and out of breath, and till the puppy's bark sounded quite faint in the distance. `And yet what a dear little puppy it was!' said Alice, as she leant against a buttercup to rest herself, and fanned herself with one of the leaves: `I should have liked teaching it tricks very much, if--if I'd only been the right size to do it! Oh dear! I'd nearly forgotten that I've got to grow up again! Let me see--how IS it to be managed? I suppose I ought to eat or drink something or other; but the great question is, what?' The great question certainly was, what? Alice looked all round her at the flowers and the blades of grass, but she did not see anything that looked like the right thing to eat or drink under the circumstances. There was a large mushroom growing near her, about the same height as herself; and when she had looked under it, and on both sides of it, and behind it, it occurred to her that she might as well look and see what was on the top of it. She stretched herself up on tiptoe, and peeped over the edge of the mushroom, and her eyes immediately met those of a large caterpillar, that was sitting on the top with its arms folded, quietly smoking a long hookah, and taking not the smallest notice of her or of anything else. CHAPTER V Advice from a Caterpillar The Caterpillar and Alice looked at each other for some time in silence: at last the Caterpillar took the hookah out of its mouth, and addressed her in a languid, sleepy voice. `Who are YOU?' said the Caterpillar. This was not an encouraging opening for a conversation. Alice replied, rather shyly, `I--I hardly know, sir, just at present-- at least I know who I WAS when I got up this morning, but I think I must have been changed several times since then.' `What do you mean by that?' said the Caterpillar sternly. `Explain yourself!' `I can't explain MYSELF, I'm afraid, sir' said Alice, `because I'm not myself, you see.' `I don't see,' said the Caterpillar. `I'm afraid I can't put it more clearly,' Alice replied very politely, `for I can't understand it myself to begin with; and being so many different sizes in a day is very confusing.' `It isn't,' said the Caterpillar. `Well, perhaps you haven't found it so yet,' said Alice; `but when you have to turn into a chrysalis--you will some day, you know--and then after that into a butterfly, I should think you'll feel it a little queer, won't you?' `Not a bit,' said the Caterpillar. `Well, perhaps your feelings may be different,' said Alice; `all I know is, it would feel very queer to ME.' `You!' said the Caterpillar contemptuously. `Who are YOU?' Which brought them back again to the beginning of the conversation. Alice felt a little irritated at the Caterpillar's making such VERY short remarks, and she drew herself up and said, very gravely, `I think, you ought to tell me who YOU are, first.' `Why?' said the Caterpillar. Here was another puzzling question; and as Alice could not think of any good reason, and as the Caterpillar seemed to be in a VERY unpleasant state of mind, she turned away. `Come back!' the Caterpillar called after her. `I've something important to say!' This sounded promising, certainly: Alice turned and came back again. `Keep your temper,' said the Caterpillar. `Is that all?' said Alice, swallowing down her anger as well as she could. `No,' said the Caterpillar. Alice thought she might as well wait, as she had nothing else to do, and perhaps after all it might tell her something worth hearing. For some minutes it puffed away without speaking, but at last it unfolded its arms, took the hookah out of its mouth again, and said, `So you think you're changed, do you?' `I'm afraid I am, sir,' said Alice; `I can't remember things as I used--and I don't keep the same size for ten minutes together!' `Can't remember WHAT things?' said the Caterpillar. `Well, I've tried to say "HOW DOTH THE LITTLE BUSY BEE," but it all came different!' Alice replied in a very melancholy voice. `Repeat, "YOU ARE OLD, FATHER WILLIAM,"' said the Caterpillar. Alice folded her hands, and began:-- `You are old, Father William,' the young man said, `And your hair has become very white; And yet you incessantly stand on your head-- Do you think, at your age, it is right?' `In my youth,' Father William replied to his son, `I feared it might injure the brain; But, now that I'm perfectly sure I have none, Why, I do it again and again.' `You are old,' said the youth, `as I mentioned before, And have grown most uncommonly fat; Yet you turned a back-somersault in at the door-- Pray, what is the reason of that?' `In my youth,' said the sage, as he shook his grey locks, `I kept all my limbs very supple By the use of this ointment--one shilling the box-- Allow me to sell you a couple?' `You are old,' said the youth, `and your jaws are too weak For anything tougher than suet; Yet you finished the goose, with the bones and the beak-- Pray how did you manage to do it?' `In my youth,' said his father, `I took to the law, And argued each case with my wife; And the muscular strength, which it gave to my jaw, Has lasted the rest of my life.' `You are old,' said the youth, `one would hardly suppose That your eye was as steady as ever; Yet you balanced an eel on the end of your nose-- What made you so awfully clever?' `I have answered three questions, and that is enough,' Said his father; `don't give yourself airs! Do you think I can listen all day to such stuff? Be off, or I'll kick you down stairs!' `That is not said right,' said the Caterpillar. `Not QUITE right, I'm afraid,' said Alice, timidly; `some of the words have got altered.' `It is wrong from beginning to end,' said the Caterpillar decidedly, and there was silence for some minutes. The Caterpillar was the first to speak. `What size do you want to be?' it asked. `Oh, I'm not particular as to size,' Alice hastily replied; `only one doesn't like changing so often, you know.' `I DON'T know,' said the Caterpillar. Alice said nothing: she had never been so much contradicted in her life before, and she felt that she was losing her temper. `Are you content now?' said the Caterpillar. `Well, I should like to be a LITTLE larger, sir, if you wouldn't mind,' said Alice: `three inches is such a wretched height to be.' `It is a very good height indeed!' said the Caterpillar angrily, rearing itself upright as it spoke (it was exactly three inches high). `But I'm not used to it!' pleaded poor Alice in a piteous tone. And she thought of herself, `I wish the creatures wouldn't be so easily offended!' `You'll get used to it in time,' said the Caterpillar; and it put the hookah into its mouth and began smoking again. This time Alice waited patiently until it chose to speak again. In a minute or two the Caterpillar took the hookah out of its mouth and yawned once or twice, and shook itself. Then it got down off the mushroom, and crawled away in the grass, merely remarking as it went, `One side will make you grow taller, and the other side will make you grow shorter.' `One side of WHAT? The other side of WHAT?' thought Alice to herself. `Of the mushroom,' said the Caterpillar, just as if she had asked it aloud; and in another moment it was out of sight. Alice remained looking thoughtfully at the mushroom for a minute, trying to make out which were the two sides of it; and as it was perfectly round, she found this a very difficult question. However, at last she stretched her arms round it as far as they would go, and broke off a bit of the edge with each hand. `And now which is which?' she said to herself, and nibbled a little of the right-hand bit to try the effect: the next moment she felt a violent blow underneath her chin: it had struck her foot! She was a good deal frightened by this very sudden change, but she felt that there was no time to be lost, as she was shrinking rapidly; so she set to work at once to eat some of the other bit. Her chin was pressed so closely against her foot, that there was hardly room to open her mouth; but she did it at last, and managed to swallow a morsel of the lefthand bit. * * * * * * * * * * * * * * * * * * * * `Come, my head's free at last!' said Alice in a tone of delight, which changed into alarm in another moment, when she found that her shoulders were nowhere to be found: all she could see, when she looked down, was an immense length of neck, which seemed to rise like a stalk out of a sea of green leaves that lay far below her. `What CAN all that green stuff be?' said Alice. `And where HAVE my shoulders got to? And oh, my poor hands, how is it I can't see you?' She was moving them about as she spoke, but no result seemed to follow, except a little shaking among the distant green leaves. As there seemed to be no chance of getting her hands up to her head, she tried to get her head down to them, and was delighted to find that her neck would bend about easily in any direction, like a serpent. She had just succeeded in curving it down into a graceful zigzag, and was going to dive in among the leaves, which she found to be nothing but the tops of the trees under which she had been wandering, when a sharp hiss made her draw back in a hurry: a large pigeon had flown into her face, and was beating her violently with its wings. `Serpent!' screamed the Pigeon. `I'm NOT a serpent!' said Alice indignantly. `Let me alone!' `Serpent, I say again!' repeated the Pigeon, but in a more subdued tone, and added with a kind of sob, `I've tried every way, and nothing seems to suit them!' `I haven't the least idea what you're talking about,' said Alice. `I've tried the roots of trees, and I've tried banks, and I've tried hedges,' the Pigeon went on, without attending to her; `but those serpents! There's no pleasing them!' Alice was more and more puzzled, but she thought there was no use in saying anything more till the Pigeon had finished. `As if it wasn't trouble enough hatching the eggs,' said the Pigeon; `but I must be on the look-out for serpents night and day! Why, I haven't had a wink of sleep these three weeks!' `I'm very sorry you've been annoyed,' said Alice, who was beginning to see its meaning. `And just as I'd taken the highest tree in the wood,' continued the Pigeon, raising its voice to a shriek, `and just as I was thinking I should be free of them at last, they must needs come wriggling down from the sky! Ugh, Serpent!' `But I'm NOT a serpent, I tell you!' said Alice. `I'm a--I'm a--' `Well! WHAT are you?' said the Pigeon. `I can see you're trying to invent something!' `I--I'm a little girl,' said Alice, rather doubtfully, as she remembered the number of changes she had gone through that day. `A likely story indeed!' said the Pigeon in a tone of the deepest contempt. `I've seen a good many little girls in my time, but never ONE with such a neck as that! No, no! You're a serpent; and there's no use denying it. I suppose you'll be telling me next that you never tasted an egg!' `I HAVE tasted eggs, certainly,' said Alice, who was a very truthful child; `but little girls eat eggs quite as much as serpents do, you know.' `I don't believe it,' said the Pigeon; `but if they do, why then they're a kind of serpent, that's all I can say.' This was such a new idea to Alice, that she was quite silent for a minute or two, which gave the Pigeon the opportunity of adding, `You're looking for eggs, I know THAT well enough; and what does it matter to me whether you're a little girl or a serpent?' `It matters a good deal to ME,' said Alice hastily; `but I'm not looking for eggs, as it happens; and if I was, I shouldn't want YOURS: I don't like them raw.' `Well, be off, then!' said the Pigeon in a sulky tone, as it settled down again into its nest. Alice crouched down among the trees as well as she could, for her neck kept getting entangled among the branches, and every now and then she had to stop and untwist it. After a while she remembered that she still held the pieces of mushroom in her hands, and she set to work very carefully, nibbling first at one and then at the other, and growing sometimes taller and sometimes shorter, until she had succeeded in bringing herself down to her usual height. It was so long since she had been anything near the right size, that it felt quite strange at first; but she got used to it in a few minutes, and began talking to herself, as usual. `Come, there's half my plan done now! How puzzling all these changes are! I'm never sure what I'm going to be, from one minute to another! However, I've got back to my right size: the next thing is, to get into that beautiful garden--how IS that to be done, I wonder?' As she said this, she came suddenly upon an open place, with a little house in it about four feet high. `Whoever lives there,' thought Alice, `it'll never do to come upon them THIS size: why, I should frighten them out of their wits!' So she began nibbling at the righthand bit again, and did not venture to go near the house till she had brought herself down to nine inches high. CHAPTER VI Pig and Pepper For a minute or two she stood looking at the house, and wondering what to do next, when suddenly a footman in livery came running out of the wood--(she considered him to be a footman because he was in livery: otherwise, judging by his face only, she would have called him a fish)--and rapped loudly at the door with his knuckles. It was opened by another footman in livery, with a round face, and large eyes like a frog; and both footmen, Alice noticed, had powdered hair that curled all over their heads. She felt very curious to know what it was all about, and crept a little way out of the wood to listen. The Fish-Footman began by producing from under his arm a great letter, nearly as large as himself, and this he handed over to the other, saying, in a solemn tone, `For the Duchess. An invitation from the Queen to play croquet.' The Frog-Footman repeated, in the same solemn tone, only changing the order of the words a little, `From the Queen. An invitation for the Duchess to play croquet.' Then they both bowed low, and their curls got entangled together. Alice laughed so much at this, that she had to run back into the wood for fear of their hearing her; and when she next peeped out the Fish-Footman was gone, and the other was sitting on the ground near the door, staring stupidly up into the sky. Alice went timidly up to the door, and knocked. `There's no sort of use in knocking,' said the Footman, `and that for two reasons. First, because I'm on the same side of the door as you are; secondly, because they're making such a noise inside, no one could possibly hear you.' And certainly there was a most extraordinary noise going on within--a constant howling and sneezing, and every now and then a great crash, as if a dish or kettle had been broken to pieces. `Please, then,' said Alice, `how am I to get in?' `There might be some sense in your knocking,' the Footman went on without attending to her, `if we had the door between us. For instance, if you were INSIDE, you might knock, and I could let you out, you know.' He was looking up into the sky all the time he was speaking, and this Alice thought decidedly uncivil. `But perhaps he can't help it,' she said to herself; `his eyes are so VERY nearly at the top of his head. But at any rate he might answer questions.--How am I to get in?' she repeated, aloud. `I shall sit here,' the Footman remarked, `till tomorrow--' At this moment the door of the house opened, and a large plate came skimming out, straight at the Footman's head: it just grazed his nose, and broke to pieces against one of the trees behind him. `--or next day, maybe,' the Footman continued in the same tone, exactly as if nothing had happened. `How am I to get in?' asked Alice again, in a louder tone. `ARE you to get in at all?' said the Footman. `That's the first question, you know.' It was, no doubt: only Alice did not like to be told so. `It's really dreadful,' she muttered to herself, `the way all the creatures argue. It's enough to drive one crazy!' The Footman seemed to think this a good opportunity for repeating his remark, with variations. `I shall sit here,' he said, `on and off, for days and days.' `But what am I to do?' said Alice. `Anything you like,' said the Footman, and began whistling. `Oh, there's no use in talking to him,' said Alice desperately: `he's perfectly idiotic!' And she opened the door and went in. The door led right into a large kitchen, which was full of smoke from one end to the other: the Duchess was sitting on a three-legged stool in the middle, nursing a baby; the cook was leaning over the fire, stirring a large cauldron which seemed to be full of soup. `There's certainly too much pepper in that soup!' Alice said to herself, as well as she could for sneezing. There was certainly too much of it in the air. Even the Duchess sneezed occasionally; and as for the baby, it was sneezing and howling alternately without a moment's pause. The only things in the kitchen that did not sneeze, were the cook, and a large cat which was sitting on the hearth and grinning from ear to ear. `Please would you tell me,' said Alice, a little timidly, for she was not quite sure whether it was good manners for her to speak first, `why your cat grins like that?' `It's a Cheshire cat,' said the Duchess, `and that's why. Pig!' She said the last word with such sudden violence that Alice quite jumped; but she saw in another moment that it was addressed to the baby, and not to her, so she took courage, and went on again:-- `I didn't know that Cheshire cats always grinned; in fact, I didn't know that cats COULD grin.' `They all can,' said the Duchess; `and most of 'em do.' `I don't know of any that do,' Alice said very politely, feeling quite pleased to have got into a conversation. `You don't know much,' said the Duchess; `and that's a fact.' Alice did not at all like the tone of this remark, and thought it would be as well to introduce some other subject of conversation. While she was trying to fix on one, the cook took the cauldron of soup off the fire, and at once set to work throwing everything within her reach at the Duchess and the baby --the fire-irons came first; then followed a shower of saucepans, plates, and dishes. The Duchess took no notice of them even when they hit her; and the baby was howling so much already, that it was quite impossible to say whether the blows hurt it or not. `Oh, PLEASE mind what you're doing!' cried Alice, jumping up and down in an agony of terror. `Oh, there goes his PRECIOUS nose'; as an unusually large saucepan flew close by it, and very nearly carried it off. `If everybody minded their own business,' the Duchess said in a hoarse growl, `the world would go round a deal faster than it does.' `Which would NOT be an advantage,' said Alice, who felt very glad to get an opportunity of showing off a little of her knowledge. `Just think of what work it would make with the day and night! You see the earth takes twenty-four hours to turn round on its axis--' `Talking of axes,' said the Duchess, `chop off her head!' Alice glanced rather anxiously at the cook, to see if she meant to take the hint; but the cook was busily stirring the soup, and seemed not to be listening, so she went on again: `Twenty-four hours, I THINK; or is it twelve? I--' `Oh, don't bother ME,' said the Duchess; `I never could abide figures!' And with that she began nursing her child again, singing a sort of lullaby to it as she did so, and giving it a violent shake at the end of every line: `Speak roughly to your little boy, And beat him when he sneezes: He only does it to annoy, Because he knows it teases.' CHORUS. (In which the cook and the baby joined):-- `Wow! wow! wow!' While the Duchess sang the second verse of the song, she kept tossing the baby violently up and down, and the poor little thing howled so, that Alice could hardly hear the words:-- `I speak severely to my boy, I beat him when he sneezes; For he can thoroughly enjoy The pepper when he pleases!' CHORUS. `Wow! wow! wow!' `Here! you may nurse it a bit, if you like!' the Duchess said to Alice, flinging the baby at her as she spoke. `I must go and get ready to play croquet with the Queen,' and she hurried out of the room. The cook threw a frying-pan after her as she went out, but it just missed her. Alice caught the baby with some difficulty, as it was a queer- shaped little creature, and held out its arms and legs in all directions, `just like a star-fish,' thought Alice. The poor little thing was snorting like a steam-engine when she caught it, and kept doubling itself up and straightening itself out again, so that altogether, for the first minute or two, it was as much as she could do to hold it. As soon as she had made out the proper way of nursing it, (which was to twist it up into a sort of knot, and then keep tight hold of its right ear and left foot, so as to prevent its undoing itself,) she carried it out into the open air. `IF I don't take this child away with me,' thought Alice, `they're sure to kill it in a day or two: wouldn't it be murder to leave it behind?' She said the last words out loud, and the little thing grunted in reply (it had left off sneezing by this time). `Don't grunt,' said Alice; `that's not at all a proper way of expressing yourself.' The baby grunted again, and Alice looked very anxiously into its face to see what was the matter with it. There could be no doubt that it had a VERY turn-up nose, much more like a snout than a real nose; also its eyes were getting extremely small for a baby: altogether Alice did not like the look of the thing at all. `But perhaps it was only sobbing,' she thought, and looked into its eyes again, to see if there were any tears. No, there were no tears. `If you're going to turn into a pig, my dear,' said Alice, seriously, `I'll have nothing more to do with you. Mind now!' The poor little thing sobbed again (or grunted, it was impossible to say which), and they went on for some while in silence. Alice was just beginning to think to herself, `Now, what am I to do with this creature when I get it home?' when it grunted again, so violently, that she looked down into its face in some alarm. This time there could be NO mistake about it: it was neither more nor less than a pig, and she felt that it would be quite absurd for her to carry it further. So she set the little creature down, and felt quite relieved to see it trot away quietly into the wood. `If it had grown up,' she said to herself, `it would have made a dreadfully ugly child: but it makes rather a handsome pig, I think.' And she began thinking over other children she knew, who might do very well as pigs, and was just saying to herself, `if one only knew the right way to change them--' when she was a little startled by seeing the Cheshire Cat sitting on a bough of a tree a few yards off. The Cat only grinned when it saw Alice. It looked good- natured, she thought: still it had VERY long claws and a great many teeth, so she felt that it ought to be treated with respect. `Cheshire Puss,' she began, rather timidly, as she did not at all know whether it would like the name: however, it only grinned a little wider. `Come, it's pleased so far,' thought Alice, and she went on. `Would you tell me, please, which way I ought to go from here?' `That depends a good deal on where you want to get to,' said the Cat. `I don't much care where--' said Alice. `Then it doesn't matter which way you go,' said the Cat. `--so long as I get SOMEWHERE,' Alice added as an explanation. `Oh, you're sure to do that,' said the Cat, `if you only walk long enough.' Alice felt that this could not be denied, so she tried another question. `What sort of people live about here?' `In THAT direction,' the Cat said, waving its right paw round, `lives a Hatter: and in THAT direction,' waving the other paw, `lives a March Hare. Visit either you like: they're both mad.' `But I don't want to go among mad people,' Alice remarked. `Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.' `How do you know I'm mad?' said Alice. `You must be,' said the Cat, `or you wouldn't have come here.' Alice didn't think that proved it at all; however, she went on `And how do you know that you're mad?' `To begin with,' said the Cat, `a dog's not mad. You grant that?' `I suppose so,' said Alice. `Well, then,' the Cat went on, `you see, a dog growls when it's angry, and wags its tail when it's pleased. Now I growl when I'm pleased, and wag my tail when I'm angry. Therefore I'm mad.' `I call it purring, not growling,' said Alice. `Call it what you like,' said the Cat. `Do you play croquet with the Queen to-day?' `I should like it very much,' said Alice, `but I haven't been invited yet.' `You'll see me there,' said the Cat, and vanished. Alice was not much surprised at this, she was getting so used to queer things happening. While she was looking at the place where it had been, it suddenly appeared again. `By-the-bye, what became of the baby?' said the Cat. `I'd nearly forgotten to ask.' `It turned into a pig,' Alice quietly said, just as if it had come back in a natural way. `I thought it would,' said the Cat, and vanished again. Alice waited a little, half expecting to see it again, but it did not appear, and after a minute or two she walked on in the direction in which the March Hare was said to live. `I've seen hatters before,' she said to herself; `the March Hare will be much the most interesting, and perhaps as this is May it won't be raving mad--at least not so mad as it was in March.' As she said this, she looked up, and there was the Cat again, sitting on a branch of a tree. `Did you say pig, or fig?' said the Cat. `I said pig,' replied Alice; `and I wish you wouldn't keep appearing and vanishing so suddenly: you make one quite giddy.' `All right,' said the Cat; and this time it vanished quite slowly, beginning with the end of the tail, and ending with the grin, which remained some time after the rest of it had gone. `Well! I've often seen a cat without a grin,' thought Alice; `but a grin without a cat! It's the most curious thing I ever say in my life!' She had not gone much farther before she came in sight of the house of the March Hare: she thought it must be the right house, because the chimneys were shaped like ears and the roof was thatched with fur. It was so large a house, that she did not like to go nearer till she had nibbled some more of the lefthand bit of mushroom, and raised herself to about two feet high: even then she walked up towards it rather timidly, saying to herself `Suppose it should be raving mad after all! I almost wish I'd gone to see the Hatter instead!' CHAPTER VII A Mad Tea-Party There was a table set out under a tree in front of the house, and the March Hare and the Hatter were having tea at it: a Dormouse was sitting between them, fast asleep, and the other two were using it as a cushion, resting their elbows on it, and the talking over its head. `Very uncomfortable for the Dormouse,' thought Alice; `only, as it's asleep, I suppose it doesn't mind.' The table was a large one, but the three were all crowded together at one corner of it: `No room! No room!' they cried out when they saw Alice coming. `There's PLENTY of room!' said Alice indignantly, and she sat down in a large arm-chair at one end of the table. `Have some wine,' the March Hare said in an encouraging tone. Alice looked all round the table, but there was nothing on it but tea. `I don't see any wine,' she remarked. `There isn't any,' said the March Hare. `Then it wasn't very civil of you to offer it,' said Alice angrily. `It wasn't very civil of you to sit down without being invited,' said the March Hare. `I didn't know it was YOUR table,' said Alice; `it's laid for a great many more than three.' `Your hair wants cutting,' said the Hatter. He had been looking at Alice for some time with great curiosity, and this was his first speech. `You should learn not to make personal remarks,' Alice said with some severity; `it's very rude.' The Hatter opened his eyes very wide on hearing this; but all he SAID was, `Why is a raven like a writing-desk?' `Come, we shall have some fun now!' thought Alice. `I'm glad they've begun asking riddles.--I believe I can guess that,' she added aloud. `Do you mean that you think you can find out the answer to it?' said the March Hare. `Exactly so,' said Alice. `Then you should say what you mean,' the March Hare went on. `I do,' Alice hastily replied; `at least--at least I mean what I say--that's the same thing, you know.' `Not the same thing a bit!' said the Hatter. `You might just as well say that "I see what I eat" is the same thing as "I eat what I see"!' `You might just as well say,' added the March Hare, `that "I like what I get" is the same thing as "I get what I like"!' `You might just as well say,' added the Dormouse, who seemed to be talking in his sleep, `that "I breathe when I sleep" is the same thing as "I sleep when I breathe"!' `It IS the same thing with you,' said the Hatter, and here the conversation dropped, and the party sat silent for a minute, while Alice thought over all she could remember about ravens and writing-desks, which wasn't much. The Hatter was the first to break the silence. `What day of the month is it?' he said, turning to Alice: he had taken his watch out of his pocket, and was looking at it uneasily, shaking it every now and then, and holding it to his ear. Alice considered a little, and then said `The fourth.' `Two days wrong!' sighed the Hatter. `I told you butter wouldn't suit the works!' he added looking angrily at the March Hare. `It was the BEST butter,' the March Hare meekly replied. `Yes, but some crumbs must have got in as well,' the Hatter grumbled: `you shouldn't have put it in with the bread-knife.' The March Hare took the watch and looked at it gloomily: then he dipped it into his cup of tea, and looked at it again: but he could think of nothing better to say than his first remark, `It was the BEST butter, you know.' Alice had been looking over his shoulder with some curiosity. `What a funny watch!' she remarked. `It tells the day of the month, and doesn't tell what o'clock it is!' `Why should it?' muttered the Hatter. `Does YOUR watch tell you what year it is?' `Of course not,' Alice replied very readily: `but that's because it stays the same year for such a long time together.' `Which is just the case with MINE,' said the Hatter. Alice felt dreadfully puzzled. The Hatter's remark seemed to have no sort of meaning in it, and yet it was certainly English. `I don't quite understand you,' she said, as politely as she could. `The Dormouse is asleep again,' said the Hatter, and he poured a little hot tea upon its nose. The Dormouse shook its head impatiently, and said, without opening its eyes, `Of course, of course; just what I was going to remark myself.' `Have you guessed the riddle yet?' the Hatter said, turning to Alice again. `No, I give it up,' Alice replied: `what's the answer?' `I haven't the slightest idea,' said the Hatter. `Nor I,' said the March Hare. Alice sighed wearily. `I think you might do something better with the time,' she said, `than waste it in asking riddles that have no answers.' `If you knew Time as well as I do,' said the Hatter, `you wouldn't talk about wasting IT. It's HIM.' `I don't know what you mean,' said Alice. `Of course you don't!' the Hatter said, tossing his head contemptuously. `I dare say you never even spoke to Time!' `Perhaps not,' Alice cautiously replied: `but I know I have to beat time when I learn music.' `Ah! that accounts for it,' said the Hatter. `He won't stand beating. Now, if you only kept on good terms with him, he'd do almost anything you liked with the clock. For instance, suppose it were nine o'clock in the morning, just time to begin lessons: you'd only have to whisper a hint to Time, and round goes the clock in a twinkling! Half-past one, time for dinner!' (`I only wish it was,' the March Hare said to itself in a whisper.) `That would be grand, certainly,' said Alice thoughtfully: `but then--I shouldn't be hungry for it, you know.' `Not at first, perhaps,' said the Hatter: `but you could keep it to half-past one as long as you liked.' `Is that the way YOU manage?' Alice asked. The Hatter shook his head mournfully. `Not I!' he replied. `We quarrelled last March--just before HE went mad, you know--' (pointing with his tea spoon at the March Hare,) `--it was at the great concert given by the Queen of Hearts, and I had to sing "Twinkle, twinkle, little bat! How I wonder what you're at!" You know the song, perhaps?' `I've heard something like it,' said Alice. `It goes on, you know,' the Hatter continued, `in this way:-- "Up above the world you fly, Like a tea-tray in the sky. Twinkle, twinkle--"' Here the Dormouse shook itself, and began singing in its sleep `Twinkle, twinkle, twinkle, twinkle--' and went on so long that they had to pinch it to make it stop. `Well, I'd hardly finished the first verse,' said the Hatter, `when the Queen jumped up and bawled out, "He's murdering the time! Off with his head!"' `How dreadfully savage!' exclaimed Alice. `And ever since that,' the Hatter went on in a mournful tone, `he won't do a thing I ask! It's always six o'clock now.' A bright idea came into Alice's head. `Is that the reason so many tea-things are put out here?' she asked. `Yes, that's it,' said the Hatter with a sigh: `it's always tea-time, and we've no time to wash the things between whiles.' `Then you keep moving round, I suppose?' said Alice. `Exactly so,' said the Hatter: `as the things get used up.' `But what happens when you come to the beginning again?' Alice ventured to ask. `Suppose we change the subject,' the March Hare interrupted, yawning. `I'm getting tired of this. I vote the young lady tells us a story.' `I'm afraid I don't know one,' said Alice, rather alarmed at the proposal. `Then the Dormouse shall!' they both cried. `Wake up, Dormouse!' And they pinched it on both sides at once. The Dormouse slowly opened his eyes. `I wasn't asleep,' he said in a hoarse, feeble voice: `I heard every word you fellows were saying.' `Tell us a story!' said the March Hare. `Yes, please do!' pleaded Alice. `And be quick about it,' added the Hatter, `or you'll be asleep again before it's done.' `Once upon a time there were three little sisters,' the Dormouse began in a great hurry; `and their names were Elsie, Lacie, and Tillie; and they lived at the bottom of a well--' `What did they live on?' said Alice, who always took a great interest in questions of eating and drinking. `They lived on treacle,' said the Dormouse, after thinking a minute or two. `They couldn't have done that, you know,' Alice gently remarked; `they'd have been ill.' `So they were,' said the Dormouse; `VERY ill.' Alice tried to fancy to herself what such an extraordinary ways of living would be like, but it puzzled her too much, so she went on: `But why did they live at the bottom of a well?' `Take some more tea,' the March Hare said to Alice, very earnestly. `I've had nothing yet,' Alice replied in an offended tone, `so I can't take more.' `You mean you can't take LESS,' said the Hatter: `it's very easy to take MORE than nothing.' `Nobody asked YOUR opinion,' said Alice. `Who's making personal remarks now?' the Hatter asked triumphantly. Alice did not quite know what to say to this: so she helped herself to some tea and bread-and-butter, and then turned to the Dormouse, and repeated her question. `Why did they live at the bottom of a well?' The Dormouse again took a minute or two to think about it, and then said, `It was a treacle-well.' `There's no such thing!' Alice was beginning very angrily, but the Hatter and the March Hare went `Sh! sh!' and the Dormouse sulkily remarked, `If you can't be civil, you'd better finish the story for yourself.' `No, please go on!' Alice said very humbly; `I won't interrupt again. I dare say there may be ONE.' `One, indeed!' said the Dormouse indignantly. However, he consented to go on. `And so these three little sisters--they were learning to draw, you know--' `What did they draw?' said Alice, quite forgetting her promise. `Treacle,' said the Dormouse, without considering at all this time. `I want a clean cup,' interrupted the Hatter: `let's all move one place on.' He moved on as he spoke, and the Dormouse followed him: the March Hare moved into the Dormouse's place, and Alice rather unwillingly took the place of the March Hare. The Hatter was the only one who got any advantage from the change: and Alice was a good deal worse off than before, as the March Hare had just upset the milk-jug into his plate. Alice did not wish to offend the Dormouse again, so she began very cautiously: `But I don't understand. Where did they draw the treacle from?' `You can draw water out of a water-well,' said the Hatter; `so I should think you could draw treacle out of a treacle-well--eh, stupid?' `But they were IN the well,' Alice said to the Dormouse, not choosing to notice this last remark. `Of course they were', said the Dormouse; `--well in.' This answer so confused poor Alice, that she let the Dormouse go on for some time without interrupting it. `They were learning to draw,' the Dormouse went on, yawning and rubbing its eyes, for it was getting very sleepy; `and they drew all manner of things--everything that begins with an M--' `Why with an M?' said Alice. `Why not?' said the March Hare. Alice was silent. The Dormouse had closed its eyes by this time, and was going off into a doze; but, on being pinched by the Hatter, it woke up again with a little shriek, and went on: `--that begins with an M, such as mouse-traps, and the moon, and memory, and muchness-- you know you say things are "much of a muchness"--did you ever see such a thing as a drawing of a muchness?' `Really, now you ask me,' said Alice, very much confused, `I don't think--' `Then you shouldn't talk,' said the Hatter. This piece of rudeness was more than Alice could bear: she got up in great disgust, and walked off; the Dormouse fell asleep instantly, and neither of the others took the least notice of her going, though she looked back once or twice, half hoping that they would call after her: the last time she saw them, they were trying to put the Dormouse into the teapot. `At any rate I'll never go THERE again!' said Alice as she picked her way through the wood. `It's the stupidest tea-party I ever was at in all my life!' Just as she said this, she noticed that one of the trees had a door leading right into it. `That's very curious!' she thought. `But everything's curious today. I think I may as well go in at once.' And in she went. Once more she found herself in the long hall, and close to the little glass table. `Now, I'll manage better this time,' she said to herself, and began by taking the little golden key, and unlocking the door that led into the garden. Then she went to work nibbling at the mushroom (she had kept a piece of it in her pocked) till she was about a foot high: then she walked down the little passage: and THEN--she found herself at last in the beautiful garden, among the bright flower-beds and the cool fountains. CHAPTER VIII The Queen's Croquet-Ground A large rose-tree stood near the entrance of the garden: the roses growing on it were white, but there were three gardeners at it, busily painting them red. Alice thought this a very curious thing, and she went nearer to watch them, and just as she came up to them she heard one of them say, `Look out now, Five! Don't go splashing paint over me like that!' `I couldn't help it,' said Five, in a sulky tone; `Seven jogged my elbow.' On which Seven looked up and said, `That's right, Five! Always lay the blame on others!' `YOU'D better not talk!' said Five. `I heard the Queen say only yesterday you deserved to be beheaded!' `What for?' said the one who had spoken first. `That's none of YOUR business, Two!' said Seven. `Yes, it IS his business!' said Five, `and I'll tell him--it was for bringing the cook tulip-roots instead of onions.' Seven flung down his brush, and had just begun `Well, of all the unjust things--' when his eye chanced to fall upon Alice, as she stood watching them, and he checked himself suddenly: the others looked round also, and all of them bowed low. `Would you tell me,' said Alice, a little timidly, `why you are painting those roses?' Five and Seven said nothing, but looked at Two. Two began in a low voice, `Why the fact is, you see, Miss, this here ought to have been a RED rose-tree, and we put a white one in by mistake; and if the Queen was to find it out, we should all have our heads cut off, you know. So you see, Miss, we're doing our best, afore she comes, to--' At this moment Five, who had been anxiously looking across the garden, called out `The Queen! The Queen!' and the three gardeners instantly threw themselves flat upon their faces. There was a sound of many footsteps, and Alice looked round, eager to see the Queen. First came ten soldiers carrying clubs; these were all shaped like the three gardeners, oblong and flat, with their hands and feet at the corners: next the ten courtiers; these were ornamented all over with diamonds, and walked two and two, as the soldiers did. After these came the royal children; there were ten of them, and the little dears came jumping merrily along hand in hand, in couples: they were all ornamented with hearts. Next came the guests, mostly Kings and Queens, and among them Alice recognised the White Rabbit: it was talking in a hurried nervous manner, smiling at everything that was said, and went by without noticing her. Then followed the Knave of Hearts, carrying the King's crown on a crimson velvet cushion; and, last of all this grand procession, came THE KING AND QUEEN OF HEARTS. Alice was rather doubtful whether she ought not to lie down on her face like the three gardeners, but she could not remember every having heard of such a rule at processions; `and besides, what would be the use of a procession,' thought she, `if people had all to lie down upon their faces, so that they couldn't see it?' So she stood still where she was, and waited. When the procession came opposite to Alice, they all stopped and looked at her, and the Queen said severely `Who is this?' She said it to the Knave of Hearts, who only bowed and smiled in reply. `Idiot!' said the Queen, tossing her head impatiently; and, turning to Alice, she went on, `What's your name, child?' `My name is Alice, so please your Majesty,' said Alice very politely; but she added, to herself, `Why, they're only a pack of cards, after all. I needn't be afraid of them!' `And who are THESE?' said the Queen, pointing to the three gardeners who were lying round the rosetree; for, you see, as they were lying on their faces, and the pattern on their backs was the same as the rest of the pack, she could not tell whether they were gardeners, or soldiers, or courtiers, or three of her own children. `How should I know?' said Alice, surprised at her own courage. `It's no business of MINE.' The Queen turned crimson with fury, and, after glaring at her for a moment like a wild beast, screamed `Off with her head! Off--' `Nonsense!' said Alice, very loudly and decidedly, and the Queen was silent. The King laid his hand upon her arm, and timidly said `Consider, my dear: she is only a child!' The Queen turned angrily away from him, and said to the Knave `Turn them over!' The Knave did so, very carefully, with one foot. `Get up!' said the Queen, in a shrill, loud voice, and the three gardeners instantly jumped up, and began bowing to the King, the Queen, the royal children, and everybody else. `Leave off that!' screamed the Queen. `You make me giddy.' And then, turning to the rose-tree, she went on, `What HAVE you been doing here?' `May it please your Majesty,' said Two, in a very humble tone, going down on one knee as he spoke, `we were trying--' `I see!' said the Queen, who had meanwhile been examining the roses. `Off with their heads!' and the procession moved on, three of the soldiers remaining behind to execute the unfortunate gardeners, who ran to Alice for protection. `You shan't be beheaded!' said Alice, and she put them into a large flower-pot that stood near. The three soldiers wandered about for a minute or two, looking for them, and then quietly marched off after the others. `Are their heads off?' shouted the Queen. `Their heads are gone, if it please your Majesty!' the soldiers shouted in reply. `That's right!' shouted the Queen. `Can you play croquet?' The soldiers were silent, and looked at Alice, as the question was evidently meant for her. `Yes!' shouted Alice. `Come on, then!' roared the Queen, and Alice joined the procession, wondering very much what would happen next. `It's--it's a very fine day!' said a timid voice at her side. She was walking by the White Rabbit, who was peeping anxiously into her face. `Very,' said Alice: `--where's the Duchess?' `Hush! Hush!' said the Rabbit in a low, hurried tone. He looked anxiously over his shoulder as he spoke, and then raised himself upon tiptoe, put his mouth close to her ear, and whispered `She's under sentence of execution.' `What for?' said Alice. `Did you say "What a pity!"?' the Rabbit asked. `No, I didn't,' said Alice: `I don't think it's at all a pity. I said "What for?"' `She boxed the Queen's ears--' the Rabbit began. Alice gave a little scream of laughter. `Oh, hush!' the Rabbit whispered in a frightened tone. `The Queen will hear you! You see, she came rather late, and the Queen said--' `Get to your places!' shouted the Queen in a voice of thunder, and people began running about in all directions, tumbling up against each other; however, they got settled down in a minute or two, and the game began. Alice thought she had never seen such a curious croquet-ground in her life; it was all ridges and furrows; the balls were live hedgehogs, the mallets live flamingoes, and the soldiers had to double themselves up and to stand on their hands and feet, to make the arches. The chief difficulty Alice found at first was in managing her flamingo: she succeeded in getting its body tucked away, comfortably enough, under her arm, with its legs hanging down, but generally, just as she had got its neck nicely straightened out, and was going to give the hedgehog a blow with its head, it WOULD twist itself round and look up in her face, with such a puzzled expression that she could not help bursting out laughing: and when she had got its head down, and was going to begin again, it was very provoking to find that the hedgehog had unrolled itself, and was in the act of crawling away: besides all this, there was generally a ridge or furrow in the way wherever she wanted to send the hedgehog to, and, as the doubled-up soldiers were always getting up and walking off to other parts of the ground, Alice soon came to the conclusion that it was a very difficult game indeed. The players all played at once without waiting for turns, quarrelling all the while, and fighting for the hedgehogs; and in a very short time the Queen was in a furious passion, and went stamping about, and shouting `Off with his head!' or `Off with her head!' about once in a minute. Alice began to feel very uneasy: to be sure, she had not as yet had any dispute with the Queen, but she knew that it might happen any minute, `and then,' thought she, `what would become of me? They're dreadfully fond of beheading people here; the great wonder is, that there's any one left alive!' She was looking about for some way of escape, and wondering whether she could get away without being seen, when she noticed a curious appearance in the air: it puzzled her very much at first, but, after watching it a minute or two, she made it out to be a grin, and she said to herself `It's the Cheshire Cat: now I shall have somebody to talk to.' `How are you getting on?' said the Cat, as soon as there was mouth enough for it to speak with. Alice waited till the eyes appeared, and then nodded. `It's no use speaking to it,' she thought, `till its ears have come, or at least one of them.' In another minute the whole head appeared, and then Alice put down her flamingo, and began an account of the game, feeling very glad she had someone to listen to her. The Cat seemed to think that there was enough of it now in sight, and no more of it appeared. `I don't think they play at all fairly,' Alice began, in rather a complaining tone, `and they all quarrel so dreadfully one can't hear oneself speak--and they don't seem to have any rules in particular; at least, if there are, nobody attends to them--and you've no idea how confusing it is all the things being alive; for instance, there's the arch I've got to go through next walking about at the other end of the ground--and I should have croqueted the Queen's hedgehog just now, only it ran away when it saw mine coming!' `How do you like the Queen?' said the Cat in a low voice. `Not at all,' said Alice: `she's so extremely--' Just then she noticed that the Queen was close behind her, listening: so she went on, `--likely to win, that it's hardly worth while finishing the game.' The Queen smiled and passed on. `Who ARE you talking to?' said the King, going up to Alice, and looking at the Cat's head with great curiosity. `It's a friend of mine--a Cheshire Cat,' said Alice: `allow me to introduce it.' `I don't like the look of it at all,' said the King: `however, it may kiss my hand if it likes.' `I'd rather not,' the Cat remarked. `Don't be impertinent,' said the King, `and don't look at me like that!' He got behind Alice as he spoke. `A cat may look at a king,' said Alice. `I've read that in some book, but I don't remember where.' `Well, it must be removed,' said the King very decidedly, and he called the Queen, who was passing at the moment, `My dear! I wish you would have this cat removed!' The Queen had only one way of settling all difficulties, great or small. `Off with his head!' she said, without even looking round. `I'll fetch the executioner myself,' said the King eagerly, and he hurried off. Alice thought she might as well go back, and see how the game was going on, as she heard the Queen's voice in the distance, screaming with passion. She had already heard her sentence three of the players to be executed for having missed their turns, and she did not like the look of things at all, as the game was in such confusion that she never knew whether it was her turn or not. So she went in search of her hedgehog. The hedgehog was engaged in a fight with another hedgehog, which seemed to Alice an excellent opportunity for croqueting one of them with the other: the only difficulty was, that her flamingo was gone across to the other side of the garden, where Alice could see it trying in a helpless sort of way to fly up into a tree. By the time she had caught the flamingo and brought it back, the fight was over, and both the hedgehogs were out of sight: `but it doesn't matter much,' thought Alice, `as all the arches are gone from this side of the ground.' So she tucked it away under her arm, that it might not escape again, and went back for a little more conversation with her friend. When she got back to the Cheshire Cat, she was surprised to find quite a large crowd collected round it: there was a dispute going on between the executioner, the King, and the Queen, who were all talking at once, while all the rest were quite silent, and looked very uncomfortable. The moment Alice appeared, she was appealed to by all three to settle the question, and they repeated their arguments to her, though, as they all spoke at once, she found it very hard indeed to make out exactly what they said. The executioner's argument was, that you couldn't cut off a head unless there was a body to cut it off from: that he had never had to do such a thing before, and he wasn't going to begin at HIS time of life. The King's argument was, that anything that had a head could be beheaded, and that you weren't to talk nonsense. The Queen's argument was, that if something wasn't done about it in less than no time she'd have everybody executed, all round. (It was this last remark that had made the whole party look so grave and anxious.) Alice could think of nothing else to say but `It belongs to the Duchess: you'd better ask HER about it.' `She's in prison,' the Queen said to the executioner: `fetch her here.' And the executioner went off like an arrow. The Cat's head began fading away the moment he was gone, and, by the time he had come back with the Dutchess, it had entirely disappeared; so the King and the executioner ran wildly up and down looking for it, while the rest of the party went back to the game. CHAPTER IX The Mock Turtle's Story `You can't think how glad I am to see you again, you dear old thing!' said the Duchess, as she tucked her arm affectionately into Alice's, and they walked off together. Alice was very glad to find her in such a pleasant temper, and thought to herself that perhaps it was only the pepper that had made her so savage when they met in the kitchen. `When I'M a Duchess,' she said to herself, (not in a very hopeful tone though), `I won't have any pepper in my kitchen AT ALL. Soup does very well without--Maybe it's always pepper that makes people hot-tempered,' she went on, very much pleased at having found out a new kind of rule, `and vinegar that makes them sour--and camomile that makes them bitter--and--and barley-sugar and such things that make children sweet-tempered. I only wish people knew that: then they wouldn't be so stingy about it, you know--' She had quite forgotten the Duchess by this time, and was a little startled when she heard her voice close to her ear. `You're thinking about something, my dear, and that makes you forget to talk. I can't tell you just now what the moral of that is, but I shall remember it in a bit.' `Perhaps it hasn't one,' Alice ventured to remark. `Tut, tut, child!' said the Duchess. `Everything's got a moral, if only you can find it.' And she squeezed herself up closer to Alice's side as she spoke. Alice did not much like keeping so close to her: first, because the Duchess was VERY ugly; and secondly, because she was exactly the right height to rest her chin upon Alice's shoulder, and it was an uncomfortably sharp chin. However, she did not like to be rude, so she bore it as well as she could. `The game's going on rather better now,' she said, by way of keeping up the conversation a little. `'Tis so,' said the Duchess: `and the moral of that is--"Oh, 'tis love, 'tis love, that makes the world go round!"' `Somebody said,' Alice whispered, `that it's done by everybody minding their own business!' `Ah, well! It means much the same thing,' said the Duchess, digging her sharp little chin into Alice's shoulder as she added, `and the moral of THAT is--"Take care of the sense, and the sounds will take care of themselves."' `How fond she is of finding morals in things!' Alice thought to herself. `I dare say you're wondering why I don't put my arm round your waist,' the Duchess said after a pause: `the reason is, that I'm doubtful about the temper of your flamingo. Shall I try the experiment?' `HE might bite,' Alice cautiously replied, not feeling at all anxious to have the experiment tried. `Very true,' said the Duchess: `flamingoes and mustard both bite. And the moral of that is--"Birds of a feather flock together."' `Only mustard isn't a bird,' Alice remarked. `Right, as usual,' said the Duchess: `what a clear way you have of putting things!' `It's a mineral, I THINK,' said Alice. `Of course it is,' said the Duchess, who seemed ready to agree to everything that Alice said; `there's a large mustard-mine near here. And the moral of that is--"The more there is of mine, the less there is of yours."' `Oh, I know!' exclaimed Alice, who had not attended to this last remark, `it's a vegetable. It doesn't look like one, but it is.' `I quite agree with you,' said the Duchess; `and the moral of that is--"Be what you would seem to be"--or if you'd like it put more simply--"Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise."' `I think I should understand that better,' Alice said very politely, `if I had it written down: but I can't quite follow it as you say it.' `That's nothing to what I could say if I chose,' the Duchess replied, in a pleased tone. `Pray don't trouble yourself to say it any longer than that,' said Alice. `Oh, don't talk about trouble!' said the Duchess. `I make you a present of everything I've said as yet.' `A cheap sort of present!' thought Alice. `I'm glad they don't give birthday presents like that!' But she did not venture to say it out loud. `Thinking again?' the Duchess asked, with another dig of her sharp little chin. `I've a right to think,' said Alice sharply, for she was beginning to feel a little worried. `Just about as much right,' said the Duchess, `as pigs have to fly; and the m--' But here, to Alice's great surprise, the Duchess's voice died away, even in the middle of her favourite word `moral,' and the arm that was linked into hers began to tremble. Alice looked up, and there stood the Queen in front of them, with her arms folded, frowning like a thunderstorm. `A fine day, your Majesty!' the Duchess began in a low, weak voice. `Now, I give you fair warning,' shouted the Queen, stamping on the ground as she spoke; `either you or your head must be off, and that in about half no time! Take your choice!' The Duchess took her choice, and was gone in a moment. `Let's go on with the game,' the Queen said to Alice; and Alice was too much frightened to say a word, but slowly followed her back to the croquet-ground. The other guests had taken advantage of the Queen's absence, and were resting in the shade: however, the moment they saw her, they hurried back to the game, the Queen merely remarking that a moment's delay would cost them their lives. All the time they were playing the Queen never left off quarrelling with the other players, and shouting `Off with his head!' or `Off with her head!' Those whom she sentenced were taken into custody by the soldiers, who of course had to leave off being arches to do this, so that by the end of half an hour or so there were no arches left, and all the players, except the King, the Queen, and Alice, were in custody and under sentence of execution. Then the Queen left off, quite out of breath, and said to Alice, `Have you seen the Mock Turtle yet?' `No,' said Alice. `I don't even know what a Mock Turtle is.' `It's the thing Mock Turtle Soup is made from,' said the Queen. `I never saw one, or heard of one,' said Alice. `Come on, then,' said the Queen, `and he shall tell you his history,' As they walked off together, Alice heard the King say in a low voice, to the company generally, `You are all pardoned.' `Come, THAT'S a good thing!' she said to herself, for she had felt quite unhappy at the number of executions the Queen had ordered. They very soon came upon a Gryphon, lying fast asleep in the sun. (IF you don't know what a Gryphon is, look at the picture.) `Up, lazy thing!' said the Queen, `and take this young lady to see the Mock Turtle, and to hear his history. I must go back and see after some executions I have ordered'; and she walked off, leaving Alice alone with the Gryphon. Alice did not quite like the look of the creature, but on the whole she thought it would be quite as safe to stay with it as to go after that savage Queen: so she waited. The Gryphon sat up and rubbed its eyes: then it watched the Queen till she was out of sight: then it chuckled. `What fun!' said the Gryphon, half to itself, half to Alice. `What IS the fun?' said Alice. `Why, SHE,' said the Gryphon. `It's all her fancy, that: they never executes nobody, you know. Come on!' `Everybody says "come on!" here,' thought Alice, as she went slowly after it: `I never was so ordered about in all my life, never!' They had not gone far before they saw the Mock Turtle in the distance, sitting sad and lonely on a little ledge of rock, and, as they came nearer, Alice could hear him sighing as if his heart would break. She pitied him deeply. `What is his sorrow?' she asked the Gryphon, and the Gryphon answered, very nearly in the same words as before, `It's all his fancy, that: he hasn't got no sorrow, you know. Come on!' So they went up to the Mock Turtle, who looked at them with large eyes full of tears, but said nothing. `This here young lady,' said the Gryphon, `she wants for to know your history, she do.' `I'll tell it her,' said the Mock Turtle in a deep, hollow tone: `sit down, both of you, and don't speak a word till I've finished.' So they sat down, and nobody spoke for some minutes. Alice thought to herself, `I don't see how he can EVEN finish, if he doesn't begin.' But she waited patiently. `Once,' said the Mock Turtle at last, with a deep sigh, `I was a real Turtle.' These words were followed by a very long silence, broken only by an occasional exclamation of `Hjckrrh!' from the Gryphon, and the constant heavy sobbing of the Mock Turtle. Alice was very nearly getting up and saying, `Thank you, sir, for your interesting story,' but she could not help thinking there MUST be more to come, so she sat still and said nothing. `When we were little,' the Mock Turtle went on at last, more calmly, though still sobbing a little now and then, `we went to school in the sea. The master was an old Turtle--we used to call him Tortoise--' `Why did you call him Tortoise, if he wasn't one?' Alice asked. `We called him Tortoise because he taught us,' said the Mock Turtle angrily: `really you are very dull!' `You ought to be ashamed of yourself for asking such a simple question,' added the Gryphon; and then they both sat silent and looked at poor Alice, who felt ready to sink into the earth. At last the Gryphon said to the Mock Turtle, `Drive on, old fellow! Don't be all day about it!' and he went on in these words: `Yes, we went to school in the sea, though you mayn't believe it--' `I never said I didn't!' interrupted Alice. `You did,' said the Mock Turtle. `Hold your tongue!' added the Gryphon, before Alice could speak again. The Mock Turtle went on. `We had the best of educations--in fact, we went to school every day--' `I'VE been to a day-school, too,' said Alice; `you needn't be so proud as all that.' `With extras?' asked the Mock Turtle a little anxiously. `Yes,' said Alice, `we learned French and music.' `And washing?' said the Mock Turtle. `Certainly not!' said Alice indignantly. `Ah! then yours wasn't a really good school,' said the Mock Turtle in a tone of great relief. `Now at OURS they had at the end of the bill, "French, music, AND WASHING--extra."' `You couldn't have wanted it much,' said Alice; `living at the bottom of the sea.' `I couldn't afford to learn it.' said the Mock Turtle with a sigh. `I only took the regular course.' `What was that?' inquired Alice. `Reeling and Writhing, of course, to begin with,' the Mock Turtle replied; `and then the different branches of Arithmetic-- Ambition, Distraction, Uglification, and Derision.' `I never heard of "Uglification,"' Alice ventured to say. `What is it?' The Gryphon lifted up both its paws in surprise. `What! Never heard of uglifying!' it exclaimed. `You know what to beautify is, I suppose?' `Yes,' said Alice doubtfully: `it means--to--make--anything-- prettier.' `Well, then,' the Gryphon went on, `if you don't know what to uglify is, you ARE a simpleton.' Alice did not feel encouraged to ask any more questions about it, so she turned to the Mock Turtle, and said `What else had you to learn?' `Well, there was Mystery,' the Mock Turtle replied, counting off the subjects on his flappers, `--Mystery, ancient and modern, with Seaography: then Drawling--the Drawling-master was an old conger-eel, that used to come once a week: HE taught us Drawling, Stretching, and Fainting in Coils.' `What was THAT like?' said Alice. `Well, I can't show it you myself,' the Mock Turtle said: `I'm too stiff. And the Gryphon never learnt it.' `Hadn't time,' said the Gryphon: `I went to the Classics master, though. He was an old crab, HE was.' `I never went to him,' the Mock Turtle said with a sigh: `he taught Laughing and Grief, they used to say.' `So he did, so he did,' said the Gryphon, sighing in his turn; and both creatures hid their faces in their paws. `And how many hours a day did you do lessons?' said Alice, in a hurry to change the subject. `Ten hours the first day,' said the Mock Turtle: `nine the next, and so on.' `What a curious plan!' exclaimed Alice. `That's the reason they're called lessons,' the Gryphon remarked: `because they lessen from day to day.' This was quite a new idea to Alice, and she thought it over a little before she made her next remark. `Then the eleventh day must have been a holiday?' `Of course it was,' said the Mock Turtle. `And how did you manage on the twelfth?' Alice went on eagerly. `That's enough about lessons,' the Gryphon interrupted in a very decided tone: `tell her something about the games now.' CHAPTER X The Lobster Quadrille The Mock Turtle sighed deeply, and drew the back of one flapper across his eyes. He looked at Alice, and tried to speak, but for a minute or two sobs choked his voice. `Same as if he had a bone in his throat,' said the Gryphon: and it set to work shaking him and punching him in the back. At last the Mock Turtle recovered his voice, and, with tears running down his cheeks, he went on again:-- `You may not have lived much under the sea--' (`I haven't,' said Alice)--`and perhaps you were never even introduced to a lobster--' (Alice began to say `I once tasted--' but checked herself hastily, and said `No, never') `--so you can have no idea what a delightful thing a Lobster Quadrille is!' `No, indeed,' said Alice. `What sort of a dance is it?' `Why,' said the Gryphon, `you first form into a line along the sea-shore--' `Two lines!' cried the Mock Turtle. `Seals, turtles, salmon, and so on; then, when you've cleared all the jelly-fish out of the way--' `THAT generally takes some time,' interrupted the Gryphon. `--you advance twice--' `Each with a lobster as a partner!' cried the Gryphon. `Of course,' the Mock Turtle said: `advance twice, set to partners--' `--change lobsters, and retire in same order,' continued the Gryphon. `Then, you know,' the Mock Turtle went on, `you throw the--' `The lobsters!' shouted the Gryphon, with a bound into the air. `--as far out to sea as you can--' `Swim after them!' screamed the Gryphon. `Turn a somersault in the sea!' cried the Mock Turtle, capering wildly about. `Back to land again, and that's all the first figure,' said the Mock Turtle, suddenly dropping his voice; and the two creatures, who had been jumping about like mad things all this time, sat down again very sadly and quietly, and looked at Alice. `It must be a very pretty dance,' said Alice timidly. `Would you like to see a little of it?' said the Mock Turtle. `Very much indeed,' said Alice. `Come, let's try the first figure!' said the Mock Turtle to the Gryphon. `We can do without lobsters, you know. Which shall sing?' `Oh, YOU sing,' said the Gryphon. `I've forgotten the words.' So they began solemnly dancing round and round Alice, every now and then treading on her toes when they passed too close, and waving their forepaws to mark the time, while the Mock Turtle sang this, very slowly and sadly:-- `"Will you walk a little faster?" said a whiting to a snail. "There's a porpoise close behind us, and he's treading on my tail. See how eagerly the lobsters and the turtles all advance! They are waiting on the shingle--will you come and join the dance? Will you, won't you, will you, won't you, will you join the dance? Will you, won't you, will you, won't you, won't you join the dance? "You can really have no notion how delightful it will be When they take us up and throw us, with the lobsters, out to sea!" But the snail replied "Too far, too far!" and gave a look askance-- Said he thanked the whiting kindly, but he would not join the dance. Would not, could not, would not, could not, would not join the dance. Would not, could not, would not, could not, could not join the dance. `"What matters it how far we go?" his scaly friend replied. "There is another shore, you know, upon the other side. The further off from England the nearer is to France-- Then turn not pale, beloved snail, but come and join the dance. Will you, won't you, will you, won't you, will you join the dance? Will you, won't you, will you, won't you, won't you join the dance?"' `Thank you, it's a very interesting dance to watch,' said Alice, feeling very glad that it was over at last: `and I do so like that curious song about the whiting!' `Oh, as to the whiting,' said the Mock Turtle, `they--you've seen them, of course?' `Yes,' said Alice, `I've often seen them at dinn--' she checked herself hastily. `I don't know where Dinn may be,' said the Mock Turtle, `but if you've seen them so often, of course you know what they're like.' `I believe so,' Alice replied thoughtfully. `They have their tails in their mouths--and they're all over crumbs.' `You're wrong about the crumbs,' said the Mock Turtle: `crumbs would all wash off in the sea. But they HAVE their tails in their mouths; and the reason is--' here the Mock Turtle yawned and shut his eyes.--`Tell her about the reason and all that,' he said to the Gryphon. `The reason is,' said the Gryphon, `that they WOULD go with the lobsters to the dance. So they got thrown out to sea. So they had to fall a long way. So they got their tails fast in their mouths. So they couldn't get them out again. That's all.' `Thank you,' said Alice, `it's very interesting. I never knew so much about a whiting before.' `I can tell you more than that, if you like,' said the Gryphon. `Do you know why it's called a whiting?' `I never thought about it,' said Alice. `Why?' `IT DOES THE BOOTS AND SHOES.' the Gryphon replied very solemnly. Alice was thoroughly puzzled. `Does the boots and shoes!' she repeated in a wondering tone. `Why, what are YOUR shoes done with?' said the Gryphon. `I mean, what makes them so shiny?' Alice looked down at them, and considered a little before she gave her answer. `They're done with blacking, I believe.' `Boots and shoes under the sea,' the Gryphon went on in a deep voice, `are done with a whiting. Now you know.' `And what are they made of?' Alice asked in a tone of great curiosity. `Soles and eels, of course,' the Gryphon replied rather impatiently: `any shrimp could have told you that.' `If I'd been the whiting,' said Alice, whose thoughts were still running on the song, `I'd have said to the porpoise, "Keep back, please: we don't want YOU with us!"' `They were obliged to have him with them,' the Mock Turtle said: `no wise fish would go anywhere without a porpoise.' `Wouldn't it really?' said Alice in a tone of great surprise. `Of course not,' said the Mock Turtle: `why, if a fish came to ME, and told me he was going a journey, I should say "With what porpoise?"' `Don't you mean "purpose"?' said Alice. `I mean what I say,' the Mock Turtle replied in an offended tone. And the Gryphon added `Come, let's hear some of YOUR adventures.' `I could tell you my adventures--beginning from this morning,' said Alice a little timidly: `but it's no use going back to yesterday, because I was a different person then.' `Explain all that,' said the Mock Turtle. `No, no! The adventures first,' said the Gryphon in an impatient tone: `explanations take such a dreadful time.' So Alice began telling them her adventures from the time when she first saw the White Rabbit. She was a little nervous about it just at first, the two creatures got so close to her, one on each side, and opened their eyes and mouths so VERY wide, but she gained courage as she went on. Her listeners were perfectly quiet till she got to the part about her repeating `YOU ARE OLD, FATHER WILLIAM,' to the Caterpillar, and the words all coming different, and then the Mock Turtle drew a long breath, and said `That's very curious.' `It's all about as curious as it can be,' said the Gryphon. `It all came different!' the Mock Turtle repeated thoughtfully. `I should like to hear her try and repeat something now. Tell her to begin.' He looked at the Gryphon as if he thought it had some kind of authority over Alice. `Stand up and repeat "'TIS THE VOICE OF THE SLUGGARD,"' said the Gryphon. `How the creatures order one about, and make one repeat lessons!' thought Alice; `I might as well be at school at once.' However, she got up, and began to repeat it, but her head was so full of the Lobster Quadrille, that she hardly knew what she was saying, and the words came very queer indeed:-- `'Tis the voice of the Lobster; I heard him declare, "You have baked me too brown, I must sugar my hair." As a duck with its eyelids, so he with his nose Trims his belt and his buttons, and turns out his toes.' [later editions continued as follows When the sands are all dry, he is gay as a lark, And will talk in contemptuous tones of the Shark, But, when the tide rises and sharks are around, His voice has a timid and tremulous sound.] `That's different from what I used to say when I was a child,' said the Gryphon. `Well, I never heard it before,' said the Mock Turtle; `but it sounds uncommon nonsense.' Alice said nothing; she had sat down with her face in her hands, wondering if anything would EVER happen in a natural way again. `I should like to have it explained,' said the Mock Turtle. `She can't explain it,' said the Gryphon hastily. `Go on with the next verse.' `But about his toes?' the Mock Turtle persisted. `How COULD he turn them out with his nose, you know?' `It's the first position in dancing.' Alice said; but was dreadfully puzzled by the whole thing, and longed to change the subject. `Go on with the next verse,' the Gryphon repeated impatiently: `it begins "I passed by his garden."' Alice did not dare to disobey, though she felt sure it would all come wrong, and she went on in a trembling voice:-- `I passed by his garden, and marked, with one eye, How the Owl and the Panther were sharing a pie--' [later editions continued as follows The Panther took pie-crust, and gravy, and meat, While the Owl had the dish as its share of the treat. When the pie was all finished, the Owl, as a boon, Was kindly permitted to pocket the spoon: While the Panther received knife and fork with a growl, And concluded the banquet--] `What IS the use of repeating all that stuff,' the Mock Turtle interrupted, `if you don't explain it as you go on? It's by far the most confusing thing I ever heard!' `Yes, I think you'd better leave off,' said the Gryphon: and Alice was only too glad to do so. `Shall we try another figure of the Lobster Quadrille?' the Gryphon went on. `Or would you like the Mock Turtle to sing you a song?' `Oh, a song, please, if the Mock Turtle would be so kind,' Alice replied, so eagerly that the Gryphon said, in a rather offended tone, `Hm! No accounting for tastes! Sing her "Turtle Soup," will you, old fellow?' The Mock Turtle sighed deeply, and began, in a voice sometimes choked with sobs, to sing this:-- `Beautiful Soup, so rich and green, Waiting in a hot tureen! Who for such dainties would not stoop? Soup of the evening, beautiful Soup! Soup of the evening, beautiful Soup! Beau--ootiful Soo--oop! Beau--ootiful Soo--oop! Soo--oop of the e--e--evening, Beautiful, beautiful Soup! `Beautiful Soup! Who cares for fish, Game, or any other dish? Who would not give all else for two p ennyworth only of beautiful Soup? Pennyworth only of beautiful Soup? Beau--ootiful Soo--oop! Beau--ootiful Soo--oop! Soo--oop of the e--e--evening, Beautiful, beauti--FUL SOUP!' `Chorus again!' cried the Gryphon, and the Mock Turtle had just begun to repeat it, when a cry of `The trial's beginning!' was heard in the distance. `Come on!' cried the Gryphon, and, taking Alice by the hand, it hurried off, without waiting for the end of the song. `What trial is it?' Alice panted as she ran; but the Gryphon only answered `Come on!' and ran the faster, while more and more faintly came, carried on the breeze that followed them, the melancholy words:-- `Soo--oop of the e--e--evening, Beautiful, beautiful Soup!' CHAPTER XI Who Stole the Tarts? The King and Queen of Hearts were seated on their throne when they arrived, with a great crowd assembled about them--all sorts of little birds and beasts, as well as the whole pack of cards: the Knave was standing before them, in chains, with a soldier on each side to guard him; and near the King was the White Rabbit, with a trumpet in one hand, and a scroll of parchment in the other. In the very middle of the court was a table, with a large dish of tarts upon it: they looked so good, that it made Alice quite hungry to look at them--`I wish they'd get the trial done,' she thought, `and hand round the refreshments!' But there seemed to be no chance of this, so she began looking at everything about her, to pass away the time. Alice had never been in a court of justice before, but she had read about them in books, and she was quite pleased to find that she knew the name of nearly everything there. `That's the judge,' she said to herself, `because of his great wig.' The judge, by the way, was the King; and as he wore his crown over the wig, (look at the frontispiece if you want to see how he did it,) he did not look at all comfortable, and it was certainly not becoming. `And that's the jury-box,' thought Alice, `and those twelve creatures,' (she was obliged to say `creatures,' you see, because some of them were animals, and some were birds,) `I suppose they are the jurors.' She said this last word two or three times over to herself, being rather proud of it: for she thought, and rightly too, that very few little girls of her age knew the meaning of it at all. However, `jury-men' would have done just as well. The twelve jurors were all writing very busily on slates. `What are they doing?' Alice whispered to the Gryphon. `They can't have anything to put down yet, before the trial's begun.' `They're putting down their names,' the Gryphon whispered in reply, `for fear they should forget them before the end of the trial.' `Stupid things!' Alice began in a loud, indignant voice, but she stopped hastily, for the White Rabbit cried out, `Silence in the court!' and the King put on his spectacles and looked anxiously round, to make out who was talking. Alice could see, as well as if she were looking over their shoulders, that all the jurors were writing down `stupid things!' on their slates, and she could even make out that one of them didn't know how to spell `stupid,' and that he had to ask his neighbour to tell him. `A nice muddle their slates'll be in before the trial's over!' thought Alice. One of the jurors had a pencil that squeaked. This of course, Alice could not stand, and she went round the court and got behind him, and very soon found an opportunity of taking it away. She did it so quickly that the poor little juror (it was Bill, the Lizard) could not make out at all what had become of it; so, after hunting all about for it, he was obliged to write with one finger for the rest of the day; and this was of very little use, as it left no mark on the slate. `Herald, read the accusation!' said the King. On this the White Rabbit blew three blasts on the trumpet, and then unrolled the parchment scroll, and read as follows:-- `The Queen of Hearts, she made some tarts, All on a summer day: The Knave of Hearts, he stole those tarts, And took them quite away!' `Consider your verdict,' the King said to the jury. `Not yet, not yet!' the Rabbit hastily interrupted. `There's a great deal to come before that!' `Call the first witness,' said the King; and the White Rabbit blew three blasts on the trumpet, and called out, `First witness!' The first witness was the Hatter. He came in with a teacup in one hand and a piece of bread-and-butter in the other. `I beg pardon, your Majesty,' he began, `for bringing these in: but I hadn't quite finished my tea when I was sent for.' `You ought to have finished,' said the King. `When did you begin?' The Hatter looked at the March Hare, who had followed him into the court, arm-in-arm with the Dormouse. `Fourteenth of March, I think it was,' he said. `Fifteenth,' said the March Hare. `Sixteenth,' added the Dormouse. `Write that down,' the King said to the jury, and the jury eagerly wrote down all three dates on their slates, and then added them up, and reduced the answer to shillings and pence. `Take off your hat,' the King said to the Hatter. `It isn't mine,' said the Hatter. `Stolen!' the King exclaimed, turning to the jury, who instantly made a memorandum of the fact. `I keep them to sell,' the Hatter added as an explanation; `I've none of my own. I'm a hatter.' Here the Queen put on her spectacles, and began staring at the Hatter, who turned pale and fidgeted. `Give your evidence,' said the King; `and don't be nervous, or I'll have you executed on the spot.' This did not seem to encourage the witness at all: he kept shifting from one foot to the other, looking uneasily at the Queen, and in his confusion he bit a large piece out of his teacup instead of the bread-and-butter. Just at this moment Alice felt a very curious sensation, which puzzled her a good deal until she made out what it was: she was beginning to grow larger again, and she thought at first she would get up and leave the court; but on second thoughts she decided to remain where she was as long as there was room for her. `I wish you wouldn't squeeze so.' said the Dormouse, who was sitting next to her. `I can hardly breathe.' `I can't help it,' said Alice very meekly: `I'm growing.' `You've no right to grow here,' said the Dormouse. `Don't talk nonsense,' said Alice more boldly: `you know you're growing too.' `Yes, but I grow at a reasonable pace,' said the Dormouse: `not in that ridiculous fashion.' And he got up very sulkily and crossed over to the other side of the court. All this time the Queen had never left off staring at the Hatter, and, just as the Dormouse crossed the court, she said to one of the officers of the court, `Bring me the list of the singers in the last concert!' on which the wretched Hatter trembled so, that he shook both his shoes off. `Give your evidence,' the King repeated angrily, `or I'll have you executed, whether you're nervous or not.' `I'm a poor man, your Majesty,' the Hatter began, in a trembling voice, `--and I hadn't begun my tea--not above a week or so--and what with the bread-and-butter getting so thin--and the twinkling of the tea--' `The twinkling of the what?' said the King. `It began with the tea,' the Hatter replied. `Of course twinkling begins with a T!' said the King sharply. `Do you take me for a dunce? Go on!' `I'm a poor man,' the Hatter went on, `and most things twinkled after that--only the March Hare said--' `I didn't!' the March Hare interrupted in a great hurry. `You did!' said the Hatter. `I deny it!' said the March Hare. `He denies it,' said the King: `leave out that part.' `Well, at any rate, the Dormouse said--' the Hatter went on, looking anxiously round to see if he would deny it too: but the Dormouse denied nothing, being fast asleep. `After that,' continued the Hatter, `I cut some more bread- and-butter--' `But what did the Dormouse say?' one of the jury asked. `That I can't remember,' said the Hatter. `You MUST remember,' remarked the King, `or I'll have you executed.' The miserable Hatter dropped his teacup and bread-and-butter, and went down on one knee. `I'm a poor man, your Majesty,' he began. `You're a very poor speaker,' said the King. Here one of the guinea-pigs cheered, and was immediately suppressed by the officers of the court. (As that is rather a hard word, I will just explain to you how it was done. They had a large canvas bag, which tied up at the mouth with strings: into this they slipped the guinea-pig, head first, and then sat upon it.) `I'm glad I've seen that done,' thought Alice. `I've so often read in the newspapers, at the end of trials, "There was some attempts at applause, which was immediately suppressed by the officers of the court," and I never understood what it meant till now.' `If that's all you know about it, you may stand down,' continued the King. `I can't go no lower,' said the Hatter: `I'm on the floor, as it is.' `Then you may SIT down,' the King replied. Here the other guinea-pig cheered, and was suppressed. `Come, that finished the guinea-pigs!' thought Alice. `Now we shall get on better.' `I'd rather finish my tea,' said the Hatter, with an anxious look at the Queen, who was reading the list of singers. `You may go,' said the King, and the Hatter hurriedly left the court, without even waiting to put his shoes on. `--and just take his head off outside,' the Queen added to one of the officers: but the Hatter was out of sight before the officer could get to the door. `Call the next witness!' said the King. The next witness was the Duchess's cook. She carried the pepper-box in her hand, and Alice guessed who it was, even before she got into the court, by the way the people near the door began sneezing all at once. `Give your evidence,' said the King. `Shan't,' said the cook. The King looked anxiously at the White Rabbit, who said in a low voice, `Your Majesty must cross-examine THIS witness.' `Well, if I must, I must,' the King said, with a melancholy air, and, after folding his arms and frowning at the cook till his eyes were nearly out of sight, he said in a deep voice, `What are tarts made of?' `Pepper, mostly,' said the cook. `Treacle,' said a sleepy voice behind her. `Collar that Dormouse,' the Queen shrieked out. `Behead that Dormouse! Turn that Dormouse out of court! Suppress him! Pinch him! Off with his whiskers!' For some minutes the whole court was in confusion, getting the Dormouse turned out, and, by the time they had settled down again, the cook had disappeared. `Never mind!' said the King, with an air of great relief. `Call the next witness.' And he added in an undertone to the Queen, `Really, my dear, YOU must cross-examine the next witness. It quite makes my forehead ache!' Alice watched the White Rabbit as he fumbled over the list, feeling very curious to see what the next witness would be like, `--for they haven't got much evidence YET,' she said to herself. Imagine her surprise, when the White Rabbit read out, at the top of his shrill little voice, the name `Alice!' CHAPTER XII Alice's Evidence `Here!' cried Alice, quite forgetting in the flurry of the moment how large she had grown in the last few minutes, and she jumped up in such a hurry that she tipped over the jury-box with the edge of her skirt, upsetting all the jurymen on to the heads of the crowd below, and there they lay sprawling about, reminding her very much of a globe of goldfish she had accidentally upset the week before. `Oh, I BEG your pardon!' she exclaimed in a tone of great dismay, and began picking them up again as quickly as she could, for the accident of the goldfish kept running in her head, and she had a vague sort of idea that they must be collected at once and put back into the jury-box, or they would die. `The trial cannot proceed,' said the King in a very grave voice, `until all the jurymen are back in their proper places-- ALL,' he repeated with great emphasis, looking hard at Alice as he said do. Alice looked at the jury-box, and saw that, in her haste, she had put the Lizard in head downwards, and the poor little thing was waving its tail about in a melancholy way, being quite unable to move. She soon got it out again, and put it right; `not that it signifies much,' she said to herself; `I should think it would be QUITE as much use in the trial one way up as the other.' As soon as the jury had a little recovered from the shock of being upset, and their slates and pencils had been found and handed back to them, they set to work very diligently to write out a history of the accident, all except the Lizard, who seemed too much overcome to do anything but sit with its mouth open, gazing up into the roof of the court. `What do you know about this business?' the King said to Alice. `Nothing,' said Alice. `Nothing WHATEVER?' persisted the King. `Nothing whatever,' said Alice. `That's very important,' the King said, turning to the jury. They were just beginning to write this down on their slates, when the White Rabbit interrupted: `UNimportant, your Majesty means, of course,' he said in a very respectful tone, but frowning and making faces at him as he spoke. `UNimportant, of course, I meant,' the King hastily said, and went on to himself in an undertone, `important--unimportant-- unimportant--important--' as if he were trying which word sounded best. Some of the jury wrote it down `important,' and some `unimportant.' Alice could see this, as she was near enough to look over their slates; `but it doesn't matter a bit,' she thought to herself. At this moment the King, who had been for some time busily writing in his note-book, cackled out `Silence!' and read out from his book, `Rule Forty-two. ALL PERSONS MORE THAN A MILE HIGH TO LEAVE THE COURT.' Everybody looked at Alice. `I'M not a mile high,' said Alice. `You are,' said the King. `Nearly two miles high,' added the Queen. `Well, I shan't go, at any rate,' said Alice: `besides, that's not a regular rule: you invented it just now.' `It's the oldest rule in the book,' said the King. `Then it ought to be Number One,' said Alice. The King turned pale, and shut his note-book hastily. `Consider your verdict,' he said to the jury, in a low, trembling voice. `There's more evidence to come yet, please your Majesty,' said the White Rabbit, jumping up in a great hurry; `this paper has just been picked up.' `What's in it?' said the Queen. `I haven't opened it yet,' said the White Rabbit, `but it seems to be a letter, written by the prisoner to--to somebody.' `It must have been that,' said the King, `unless it was written to nobody, which isn't usual, you know.' `Who is it directed to?' said one of the jurymen. `It isn't directed at all,' said the White Rabbit; `in fact, there's nothing written on the OUTSIDE.' He unfolded the paper as he spoke, and added `It isn't a letter, after all: it's a set of verses.' `Are they in the prisoner's handwriting?' asked another of they jurymen. `No, they're not,' said the White Rabbit, `and that's the queerest thing about it.' (The jury all looked puzzled.) `He must have imitated somebody else's hand,' said the King. (The jury all brightened up again.) `Please your Majesty,' said the Knave, `I didn't write it, and they can't prove I did: there's no name signed at the end.' `If you didn't sign it,' said the King, `that only makes the matter worse. You MUST have meant some mischief, or else you'd have signed your name like an honest man.' There was a general clapping of hands at this: it was the first really clever thing the King had said that day. `That PROVES his guilt,' said the Queen. `It proves nothing of the sort!' said Alice. `Why, you don't even know what they're about!' `Read them,' said the King. The White Rabbit put on his spectacles. `Where shall I begin, please your Majesty?' he asked. `Begin at the beginning,' the King said gravely, `and go on till you come to the end: then stop.' These were the verses the White Rabbit read:-- `They told me you had been to her, And mentioned me to him: She gave me a good character, But said I could not swim. He sent them word I had not gone (We know it to be true): If she should push the matter on, What would become of you? I gave her one, they gave him two, You gave us three or more; They all returned from him to you, Though they were mine before. If I or she should chance to be Involved in this affair, He trusts to you to set them free, Exactly as we were. My notion was that you had been (Before she had this fit) An obstacle that came between Him, and ourselves, and it. Don't let him know she liked them best, For this must ever be A secret, kept from all the rest, Between yourself and me.' `That's the most important piece of evidence we've heard yet,' said the King, rubbing his hands; `so now let the jury--' `If any one of them can explain it,' said Alice, (she had grown so large in the last few minutes that she wasn't a bit afraid of interrupting him,) `I'll give him sixpence. _I_ don't believe there's an atom of meaning in it.' The jury all wrote down on their slates, `SHE doesn't believe there's an atom of meaning in it,' but none of them attempted to explain the paper. `If there's no meaning in it,' said the King, `that saves a world of trouble, you know, as we needn't try to find any. And yet I don't know,' he went on, spreading out the verses on his knee, and looking at them with one eye; `I seem to see some meaning in them, after all. "--SAID I COULD NOT SWIM--" you can't swim, can you?' he added, turning to the Knave. The Knave shook his head sadly. `Do I look like it?' he said. (Which he certainly did NOT, being made entirely of cardboard.) `All right, so far,' said the King, and he went on muttering over the verses to himself: `"WE KNOW IT TO BE TRUE--" that's the jury, of course-- "I GAVE HER ONE, THEY GAVE HIM TWO--" why, that must be what he did with the tarts, you know--' `But, it goes on "THEY ALL RETURNED FROM HIM TO YOU,"' said Alice. `Why, there they are!' said the King triumphantly, pointing to the tarts on the table. `Nothing can be clearer than THAT. Then again--"BEFORE SHE HAD THIS FIT--" you never had fits, my dear, I think?' he said to the Queen. `Never!' said the Queen furiously, throwing an inkstand at the Lizard as she spoke. (The unfortunate little Bill had left off writing on his slate with one finger, as he found it made no mark; but he now hastily began again, using the ink, that was trickling down his face, as long as it lasted.) `Then the words don't FIT you,' said the King, looking round the court with a smile. There was a dead silence. `It's a pun!' the King added in an offended tone, and everybody laughed, `Let the jury consider their verdict,' the King said, for about the twentieth time that day. `No, no!' said the Queen. `Sentence first--verdict afterwards.' `Stuff and nonsense!' said Alice loudly. `The idea of having the sentence first!' `Hold your tongue!' said the Queen, turning purple. `I won't!' said Alice. `Off with her head!' the Queen shouted at the top of her voice. Nobody moved. `Who cares for you?' said Alice, (she had grown to her full size by this time.) `You're nothing but a pack of cards!' At this the whole pack rose up into the air, and came flying down upon her: she gave a little scream, half of fright and half of anger, and tried to beat them off, and found herself lying on the bank, with her head in the lap of her sister, who was gently brushing away some dead leaves that had fluttered down from the trees upon her face. `Wake up, Alice dear!' said her sister; `Why, what a long sleep you've had!' `Oh, I've had such a curious dream!' said Alice, and she told her sister, as well as she could remember them, all these strange Adventures of hers that you have just been reading about; and when she had finished, her sister kissed her, and said, `It WAS a curious dream, dear, certainly: but now run in to your tea; it's getting late.' So Alice got up and ran off, thinking while she ran, as well she might, what a wonderful dream it had been. But her sister sat still just as she left her, leaning her head on her hand, watching the setting sun, and thinking of little Alice and all her wonderful Adventures, till she too began dreaming after a fashion, and this was her dream:-- First, she dreamed of little Alice herself, and once again the tiny hands were clasped upon her knee, and the bright eager eyes were looking up into hers--she could hear the very tones of her voice, and see that queer little toss of her head to keep back the wandering hair that WOULD always get into her eyes--and still as she listened, or seemed to listen, the whole place around her became alive the strange creatures of her little sister's dream. The long grass rustled at her feet as the White Rabbit hurried by--the frightened Mouse splashed his way through the neighbouring pool--she could hear the rattle of the teacups as the March Hare and his friends shared their never-ending meal, and the shrill voice of the Queen ordering off her unfortunate guests to execution--once more the pig-baby was sneezing on the Duchess's knee, while plates and dishes crashed around it--once more the shriek of the Gryphon, the squeaking of the Lizard's slate-pencil, and the choking of the suppressed guinea-pigs, filled the air, mixed up with the distant sobs of the miserable Mock Turtle. So she sat on, with closed eyes, and half believed herself in Wonderland, though she knew she had but to open them again, and all would change to dull reality--the grass would be only rustling in the wind, and the pool rippling to the waving of the reeds--the rattling teacups would change to tinkling sheep- bells, and the Queen's shrill cries to the voice of the shepherd boy--and the sneeze of the baby, the shriek of the Gryphon, and all thy other queer noises, would change (she knew) to the confused clamour of the busy farm-yard--while the lowing of the cattle in the distance would take the place of the Mock Turtle's heavy sobs. Lastly, she pictured to herself how this same little sister of hers would, in the after-time, be herself a grown woman; and how she would keep, through all her riper years, the simple and loving heart of her childhood: and how she would gather about her other little children, and make THEIR eyes bright and eager with many a strange tale, perhaps even with the dream of Wonderland of long ago: and how she would feel with all their simple sorrows, and find a pleasure in all their simple joys, remembering her own child-life, and the happy summer days. THE END compress-1.2.1/snappy/testdata/asyoulik.txt000066400000000000000000003643731303637052300211140ustar00rootroot00000000000000 AS YOU LIKE IT DRAMATIS PERSONAE DUKE SENIOR living in banishment. DUKE FREDERICK his brother, an usurper of his dominions. AMIENS | | lords attending on the banished duke. JAQUES | LE BEAU a courtier attending upon Frederick. CHARLES wrestler to Frederick. OLIVER | | JAQUES (JAQUES DE BOYS:) | sons of Sir Rowland de Boys. | ORLANDO | ADAM | | servants to Oliver. DENNIS | TOUCHSTONE a clown. SIR OLIVER MARTEXT a vicar. CORIN | | shepherds. SILVIUS | WILLIAM a country fellow in love with Audrey. A person representing HYMEN. (HYMEN:) ROSALIND daughter to the banished duke. CELIA daughter to Frederick. PHEBE a shepherdess. AUDREY a country wench. Lords, pages, and attendants, &c. (Forester:) (A Lord:) (First Lord:) (Second Lord:) (First Page:) (Second Page:) SCENE Oliver's house; Duke Frederick's court; and the Forest of Arden. AS YOU LIKE IT ACT I SCENE I Orchard of Oliver's house. [Enter ORLANDO and ADAM] ORLANDO As I remember, Adam, it was upon this fashion bequeathed me by will but poor a thousand crowns, and, as thou sayest, charged my brother, on his blessing, to breed me well: and there begins my sadness. My brother Jaques he keeps at school, and report speaks goldenly of his profit: for my part, he keeps me rustically at home, or, to speak more properly, stays me here at home unkept; for call you that keeping for a gentleman of my birth, that differs not from the stalling of an ox? His horses are bred better; for, besides that they are fair with their feeding, they are taught their manage, and to that end riders dearly hired: but I, his brother, gain nothing under him but growth; for the which his animals on his dunghills are as much bound to him as I. Besides this nothing that he so plentifully gives me, the something that nature gave me his countenance seems to take from me: he lets me feed with his hinds, bars me the place of a brother, and, as much as in him lies, mines my gentility with my education. This is it, Adam, that grieves me; and the spirit of my father, which I think is within me, begins to mutiny against this servitude: I will no longer endure it, though yet I know no wise remedy how to avoid it. ADAM Yonder comes my master, your brother. ORLANDO Go apart, Adam, and thou shalt hear how he will shake me up. [Enter OLIVER] OLIVER Now, sir! what make you here? ORLANDO Nothing: I am not taught to make any thing. OLIVER What mar you then, sir? ORLANDO Marry, sir, I am helping you to mar that which God made, a poor unworthy brother of yours, with idleness. OLIVER Marry, sir, be better employed, and be naught awhile. ORLANDO Shall I keep your hogs and eat husks with them? What prodigal portion have I spent, that I should come to such penury? OLIVER Know you where your are, sir? ORLANDO O, sir, very well; here in your orchard. OLIVER Know you before whom, sir? ORLANDO Ay, better than him I am before knows me. I know you are my eldest brother; and, in the gentle condition of blood, you should so know me. The courtesy of nations allows you my better, in that you are the first-born; but the same tradition takes not away my blood, were there twenty brothers betwixt us: I have as much of my father in me as you; albeit, I confess, your coming before me is nearer to his reverence. OLIVER What, boy! ORLANDO Come, come, elder brother, you are too young in this. OLIVER Wilt thou lay hands on me, villain? ORLANDO I am no villain; I am the youngest son of Sir Rowland de Boys; he was my father, and he is thrice a villain that says such a father begot villains. Wert thou not my brother, I would not take this hand from thy throat till this other had pulled out thy tongue for saying so: thou hast railed on thyself. ADAM Sweet masters, be patient: for your father's remembrance, be at accord. OLIVER Let me go, I say. ORLANDO I will not, till I please: you shall hear me. My father charged you in his will to give me good education: you have trained me like a peasant, obscuring and hiding from me all gentleman-like qualities. The spirit of my father grows strong in me, and I will no longer endure it: therefore allow me such exercises as may become a gentleman, or give me the poor allottery my father left me by testament; with that I will go buy my fortunes. OLIVER And what wilt thou do? beg, when that is spent? Well, sir, get you in: I will not long be troubled with you; you shall have some part of your will: I pray you, leave me. ORLANDO I will no further offend you than becomes me for my good. OLIVER Get you with him, you old dog. ADAM Is 'old dog' my reward? Most true, I have lost my teeth in your service. God be with my old master! he would not have spoke such a word. [Exeunt ORLANDO and ADAM] OLIVER Is it even so? begin you to grow upon me? I will physic your rankness, and yet give no thousand crowns neither. Holla, Dennis! [Enter DENNIS] DENNIS Calls your worship? OLIVER Was not Charles, the duke's wrestler, here to speak with me? DENNIS So please you, he is here at the door and importunes access to you. OLIVER Call him in. [Exit DENNIS] 'Twill be a good way; and to-morrow the wrestling is. [Enter CHARLES] CHARLES Good morrow to your worship. OLIVER Good Monsieur Charles, what's the new news at the new court? CHARLES There's no news at the court, sir, but the old news: that is, the old duke is banished by his younger brother the new duke; and three or four loving lords have put themselves into voluntary exile with him, whose lands and revenues enrich the new duke; therefore he gives them good leave to wander. OLIVER Can you tell if Rosalind, the duke's daughter, be banished with her father? CHARLES O, no; for the duke's daughter, her cousin, so loves her, being ever from their cradles bred together, that she would have followed her exile, or have died to stay behind her. She is at the court, and no less beloved of her uncle than his own daughter; and never two ladies loved as they do. OLIVER Where will the old duke live? CHARLES They say he is already in the forest of Arden, and a many merry men with him; and there they live like the old Robin Hood of England: they say many young gentlemen flock to him every day, and fleet the time carelessly, as they did in the golden world. OLIVER What, you wrestle to-morrow before the new duke? CHARLES Marry, do I, sir; and I came to acquaint you with a matter. I am given, sir, secretly to understand that your younger brother Orlando hath a disposition to come in disguised against me to try a fall. To-morrow, sir, I wrestle for my credit; and he that escapes me without some broken limb shall acquit him well. Your brother is but young and tender; and, for your love, I would be loath to foil him, as I must, for my own honour, if he come in: therefore, out of my love to you, I came hither to acquaint you withal, that either you might stay him from his intendment or brook such disgrace well as he shall run into, in that it is a thing of his own search and altogether against my will. OLIVER Charles, I thank thee for thy love to me, which thou shalt find I will most kindly requite. I had myself notice of my brother's purpose herein and have by underhand means laboured to dissuade him from it, but he is resolute. I'll tell thee, Charles: it is the stubbornest young fellow of France, full of ambition, an envious emulator of every man's good parts, a secret and villanous contriver against me his natural brother: therefore use thy discretion; I had as lief thou didst break his neck as his finger. And thou wert best look to't; for if thou dost him any slight disgrace or if he do not mightily grace himself on thee, he will practise against thee by poison, entrap thee by some treacherous device and never leave thee till he hath ta'en thy life by some indirect means or other; for, I assure thee, and almost with tears I speak it, there is not one so young and so villanous this day living. I speak but brotherly of him; but should I anatomize him to thee as he is, I must blush and weep and thou must look pale and wonder. CHARLES I am heartily glad I came hither to you. If he come to-morrow, I'll give him his payment: if ever he go alone again, I'll never wrestle for prize more: and so God keep your worship! OLIVER Farewell, good Charles. [Exit CHARLES] Now will I stir this gamester: I hope I shall see an end of him; for my soul, yet I know not why, hates nothing more than he. Yet he's gentle, never schooled and yet learned, full of noble device, of all sorts enchantingly beloved, and indeed so much in the heart of the world, and especially of my own people, who best know him, that I am altogether misprised: but it shall not be so long; this wrestler shall clear all: nothing remains but that I kindle the boy thither; which now I'll go about. [Exit] AS YOU LIKE IT ACT I SCENE II Lawn before the Duke's palace. [Enter CELIA and ROSALIND] CELIA I pray thee, Rosalind, sweet my coz, be merry. ROSALIND Dear Celia, I show more mirth than I am mistress of; and would you yet I were merrier? Unless you could teach me to forget a banished father, you must not learn me how to remember any extraordinary pleasure. CELIA Herein I see thou lovest me not with the full weight that I love thee. If my uncle, thy banished father, had banished thy uncle, the duke my father, so thou hadst been still with me, I could have taught my love to take thy father for mine: so wouldst thou, if the truth of thy love to me were so righteously tempered as mine is to thee. ROSALIND Well, I will forget the condition of my estate, to rejoice in yours. CELIA You know my father hath no child but I, nor none is like to have: and, truly, when he dies, thou shalt be his heir, for what he hath taken away from thy father perforce, I will render thee again in affection; by mine honour, I will; and when I break that oath, let me turn monster: therefore, my sweet Rose, my dear Rose, be merry. ROSALIND From henceforth I will, coz, and devise sports. Let me see; what think you of falling in love? CELIA Marry, I prithee, do, to make sport withal: but love no man in good earnest; nor no further in sport neither than with safety of a pure blush thou mayst in honour come off again. ROSALIND What shall be our sport, then? CELIA Let us sit and mock the good housewife Fortune from her wheel, that her gifts may henceforth be bestowed equally. ROSALIND I would we could do so, for her benefits are mightily misplaced, and the bountiful blind woman doth most mistake in her gifts to women. CELIA 'Tis true; for those that she makes fair she scarce makes honest, and those that she makes honest she makes very ill-favouredly. ROSALIND Nay, now thou goest from Fortune's office to Nature's: Fortune reigns in gifts of the world, not in the lineaments of Nature. [Enter TOUCHSTONE] CELIA No? when Nature hath made a fair creature, may she not by Fortune fall into the fire? Though Nature hath given us wit to flout at Fortune, hath not Fortune sent in this fool to cut off the argument? ROSALIND Indeed, there is Fortune too hard for Nature, when Fortune makes Nature's natural the cutter-off of Nature's wit. CELIA Peradventure this is not Fortune's work neither, but Nature's; who perceiveth our natural wits too dull to reason of such goddesses and hath sent this natural for our whetstone; for always the dulness of the fool is the whetstone of the wits. How now, wit! whither wander you? TOUCHSTONE Mistress, you must come away to your father. CELIA Were you made the messenger? TOUCHSTONE No, by mine honour, but I was bid to come for you. ROSALIND Where learned you that oath, fool? TOUCHSTONE Of a certain knight that swore by his honour they were good pancakes and swore by his honour the mustard was naught: now I'll stand to it, the pancakes were naught and the mustard was good, and yet was not the knight forsworn. CELIA How prove you that, in the great heap of your knowledge? ROSALIND Ay, marry, now unmuzzle your wisdom. TOUCHSTONE Stand you both forth now: stroke your chins, and swear by your beards that I am a knave. CELIA By our beards, if we had them, thou art. TOUCHSTONE By my knavery, if I had it, then I were; but if you swear by that that is not, you are not forsworn: no more was this knight swearing by his honour, for he never had any; or if he had, he had sworn it away before ever he saw those pancakes or that mustard. CELIA Prithee, who is't that thou meanest? TOUCHSTONE One that old Frederick, your father, loves. CELIA My father's love is enough to honour him: enough! speak no more of him; you'll be whipped for taxation one of these days. TOUCHSTONE The more pity, that fools may not speak wisely what wise men do foolishly. CELIA By my troth, thou sayest true; for since the little wit that fools have was silenced, the little foolery that wise men have makes a great show. Here comes Monsieur Le Beau. ROSALIND With his mouth full of news. CELIA Which he will put on us, as pigeons feed their young. ROSALIND Then shall we be news-crammed. CELIA All the better; we shall be the more marketable. [Enter LE BEAU] Bon jour, Monsieur Le Beau: what's the news? LE BEAU Fair princess, you have lost much good sport. CELIA Sport! of what colour? LE BEAU What colour, madam! how shall I answer you? ROSALIND As wit and fortune will. TOUCHSTONE Or as the Destinies decree. CELIA Well said: that was laid on with a trowel. TOUCHSTONE Nay, if I keep not my rank,-- ROSALIND Thou losest thy old smell. LE BEAU You amaze me, ladies: I would have told you of good wrestling, which you have lost the sight of. ROSALIND You tell us the manner of the wrestling. LE BEAU I will tell you the beginning; and, if it please your ladyships, you may see the end; for the best is yet to do; and here, where you are, they are coming to perform it. CELIA Well, the beginning, that is dead and buried. LE BEAU There comes an old man and his three sons,-- CELIA I could match this beginning with an old tale. LE BEAU Three proper young men, of excellent growth and presence. ROSALIND With bills on their necks, 'Be it known unto all men by these presents.' LE BEAU The eldest of the three wrestled with Charles, the duke's wrestler; which Charles in a moment threw him and broke three of his ribs, that there is little hope of life in him: so he served the second, and so the third. Yonder they lie; the poor old man, their father, making such pitiful dole over them that all the beholders take his part with weeping. ROSALIND Alas! TOUCHSTONE But what is the sport, monsieur, that the ladies have lost? LE BEAU Why, this that I speak of. TOUCHSTONE Thus men may grow wiser every day: it is the first time that ever I heard breaking of ribs was sport for ladies. CELIA Or I, I promise thee. ROSALIND But is there any else longs to see this broken music in his sides? is there yet another dotes upon rib-breaking? Shall we see this wrestling, cousin? LE BEAU You must, if you stay here; for here is the place appointed for the wrestling, and they are ready to perform it. CELIA Yonder, sure, they are coming: let us now stay and see it. [Flourish. Enter DUKE FREDERICK, Lords, ORLANDO, CHARLES, and Attendants] DUKE FREDERICK Come on: since the youth will not be entreated, his own peril on his forwardness. ROSALIND Is yonder the man? LE BEAU Even he, madam. CELIA Alas, he is too young! yet he looks successfully. DUKE FREDERICK How now, daughter and cousin! are you crept hither to see the wrestling? ROSALIND Ay, my liege, so please you give us leave. DUKE FREDERICK You will take little delight in it, I can tell you; there is such odds in the man. In pity of the challenger's youth I would fain dissuade him, but he will not be entreated. Speak to him, ladies; see if you can move him. CELIA Call him hither, good Monsieur Le Beau. DUKE FREDERICK Do so: I'll not be by. LE BEAU Monsieur the challenger, the princesses call for you. ORLANDO I attend them with all respect and duty. ROSALIND Young man, have you challenged Charles the wrestler? ORLANDO No, fair princess; he is the general challenger: I come but in, as others do, to try with him the strength of my youth. CELIA Young gentleman, your spirits are too bold for your years. You have seen cruel proof of this man's strength: if you saw yourself with your eyes or knew yourself with your judgment, the fear of your adventure would counsel you to a more equal enterprise. We pray you, for your own sake, to embrace your own safety and give over this attempt. ROSALIND Do, young sir; your reputation shall not therefore be misprised: we will make it our suit to the duke that the wrestling might not go forward. ORLANDO I beseech you, punish me not with your hard thoughts; wherein I confess me much guilty, to deny so fair and excellent ladies any thing. But let your fair eyes and gentle wishes go with me to my trial: wherein if I be foiled, there is but one shamed that was never gracious; if killed, but one dead that was willing to be so: I shall do my friends no wrong, for I have none to lament me, the world no injury, for in it I have nothing; only in the world I fill up a place, which may be better supplied when I have made it empty. ROSALIND The little strength that I have, I would it were with you. CELIA And mine, to eke out hers. ROSALIND Fare you well: pray heaven I be deceived in you! CELIA Your heart's desires be with you! CHARLES Come, where is this young gallant that is so desirous to lie with his mother earth? ORLANDO Ready, sir; but his will hath in it a more modest working. DUKE FREDERICK You shall try but one fall. CHARLES No, I warrant your grace, you shall not entreat him to a second, that have so mightily persuaded him from a first. ORLANDO An you mean to mock me after, you should not have mocked me before: but come your ways. ROSALIND Now Hercules be thy speed, young man! CELIA I would I were invisible, to catch the strong fellow by the leg. [They wrestle] ROSALIND O excellent young man! CELIA If I had a thunderbolt in mine eye, I can tell who should down. [Shout. CHARLES is thrown] DUKE FREDERICK No more, no more. ORLANDO Yes, I beseech your grace: I am not yet well breathed. DUKE FREDERICK How dost thou, Charles? LE BEAU He cannot speak, my lord. DUKE FREDERICK Bear him away. What is thy name, young man? ORLANDO Orlando, my liege; the youngest son of Sir Rowland de Boys. DUKE FREDERICK I would thou hadst been son to some man else: The world esteem'd thy father honourable, But I did find him still mine enemy: Thou shouldst have better pleased me with this deed, Hadst thou descended from another house. But fare thee well; thou art a gallant youth: I would thou hadst told me of another father. [Exeunt DUKE FREDERICK, train, and LE BEAU] CELIA Were I my father, coz, would I do this? ORLANDO I am more proud to be Sir Rowland's son, His youngest son; and would not change that calling, To be adopted heir to Frederick. ROSALIND My father loved Sir Rowland as his soul, And all the world was of my father's mind: Had I before known this young man his son, I should have given him tears unto entreaties, Ere he should thus have ventured. CELIA Gentle cousin, Let us go thank him and encourage him: My father's rough and envious disposition Sticks me at heart. Sir, you have well deserved: If you do keep your promises in love But justly, as you have exceeded all promise, Your mistress shall be happy. ROSALIND Gentleman, [Giving him a chain from her neck] Wear this for me, one out of suits with fortune, That could give more, but that her hand lacks means. Shall we go, coz? CELIA Ay. Fare you well, fair gentleman. ORLANDO Can I not say, I thank you? My better parts Are all thrown down, and that which here stands up Is but a quintain, a mere lifeless block. ROSALIND He calls us back: my pride fell with my fortunes; I'll ask him what he would. Did you call, sir? Sir, you have wrestled well and overthrown More than your enemies. CELIA Will you go, coz? ROSALIND Have with you. Fare you well. [Exeunt ROSALIND and CELIA] ORLANDO What passion hangs these weights upon my tongue? I cannot speak to her, yet she urged conference. O poor Orlando, thou art overthrown! Or Charles or something weaker masters thee. [Re-enter LE BEAU] LE BEAU Good sir, I do in friendship counsel you To leave this place. Albeit you have deserved High commendation, true applause and love, Yet such is now the duke's condition That he misconstrues all that you have done. The duke is humorous; what he is indeed, More suits you to conceive than I to speak of. ORLANDO I thank you, sir: and, pray you, tell me this: Which of the two was daughter of the duke That here was at the wrestling? LE BEAU Neither his daughter, if we judge by manners; But yet indeed the lesser is his daughter The other is daughter to the banish'd duke, And here detain'd by her usurping uncle, To keep his daughter company; whose loves Are dearer than the natural bond of sisters. But I can tell you that of late this duke Hath ta'en displeasure 'gainst his gentle niece, Grounded upon no other argument But that the people praise her for her virtues And pity her for her good father's sake; And, on my life, his malice 'gainst the lady Will suddenly break forth. Sir, fare you well: Hereafter, in a better world than this, I shall desire more love and knowledge of you. ORLANDO I rest much bounden to you: fare you well. [Exit LE BEAU] Thus must I from the smoke into the smother; From tyrant duke unto a tyrant brother: But heavenly Rosalind! [Exit] AS YOU LIKE IT ACT I SCENE III A room in the palace. [Enter CELIA and ROSALIND] CELIA Why, cousin! why, Rosalind! Cupid have mercy! not a word? ROSALIND Not one to throw at a dog. CELIA No, thy words are too precious to be cast away upon curs; throw some of them at me; come, lame me with reasons. ROSALIND Then there were two cousins laid up; when the one should be lamed with reasons and the other mad without any. CELIA But is all this for your father? ROSALIND No, some of it is for my child's father. O, how full of briers is this working-day world! CELIA They are but burs, cousin, thrown upon thee in holiday foolery: if we walk not in the trodden paths our very petticoats will catch them. ROSALIND I could shake them off my coat: these burs are in my heart. CELIA Hem them away. ROSALIND I would try, if I could cry 'hem' and have him. CELIA Come, come, wrestle with thy affections. ROSALIND O, they take the part of a better wrestler than myself! CELIA O, a good wish upon you! you will try in time, in despite of a fall. But, turning these jests out of service, let us talk in good earnest: is it possible, on such a sudden, you should fall into so strong a liking with old Sir Rowland's youngest son? ROSALIND The duke my father loved his father dearly. CELIA Doth it therefore ensue that you should love his son dearly? By this kind of chase, I should hate him, for my father hated his father dearly; yet I hate not Orlando. ROSALIND No, faith, hate him not, for my sake. CELIA Why should I not? doth he not deserve well? ROSALIND Let me love him for that, and do you love him because I do. Look, here comes the duke. CELIA With his eyes full of anger. [Enter DUKE FREDERICK, with Lords] DUKE FREDERICK Mistress, dispatch you with your safest haste And get you from our court. ROSALIND Me, uncle? DUKE FREDERICK You, cousin Within these ten days if that thou be'st found So near our public court as twenty miles, Thou diest for it. ROSALIND I do beseech your grace, Let me the knowledge of my fault bear with me: If with myself I hold intelligence Or have acquaintance with mine own desires, If that I do not dream or be not frantic,-- As I do trust I am not--then, dear uncle, Never so much as in a thought unborn Did I offend your highness. DUKE FREDERICK Thus do all traitors: If their purgation did consist in words, They are as innocent as grace itself: Let it suffice thee that I trust thee not. ROSALIND Yet your mistrust cannot make me a traitor: Tell me whereon the likelihood depends. DUKE FREDERICK Thou art thy father's daughter; there's enough. ROSALIND So was I when your highness took his dukedom; So was I when your highness banish'd him: Treason is not inherited, my lord; Or, if we did derive it from our friends, What's that to me? my father was no traitor: Then, good my liege, mistake me not so much To think my poverty is treacherous. CELIA Dear sovereign, hear me speak. DUKE FREDERICK Ay, Celia; we stay'd her for your sake, Else had she with her father ranged along. CELIA I did not then entreat to have her stay; It was your pleasure and your own remorse: I was too young that time to value her; But now I know her: if she be a traitor, Why so am I; we still have slept together, Rose at an instant, learn'd, play'd, eat together, And wheresoever we went, like Juno's swans, Still we went coupled and inseparable. DUKE FREDERICK She is too subtle for thee; and her smoothness, Her very silence and her patience Speak to the people, and they pity her. Thou art a fool: she robs thee of thy name; And thou wilt show more bright and seem more virtuous When she is gone. Then open not thy lips: Firm and irrevocable is my doom Which I have pass'd upon her; she is banish'd. CELIA Pronounce that sentence then on me, my liege: I cannot live out of her company. DUKE FREDERICK You are a fool. You, niece, provide yourself: If you outstay the time, upon mine honour, And in the greatness of my word, you die. [Exeunt DUKE FREDERICK and Lords] CELIA O my poor Rosalind, whither wilt thou go? Wilt thou change fathers? I will give thee mine. I charge thee, be not thou more grieved than I am. ROSALIND I have more cause. CELIA Thou hast not, cousin; Prithee be cheerful: know'st thou not, the duke Hath banish'd me, his daughter? ROSALIND That he hath not. CELIA No, hath not? Rosalind lacks then the love Which teacheth thee that thou and I am one: Shall we be sunder'd? shall we part, sweet girl? No: let my father seek another heir. Therefore devise with me how we may fly, Whither to go and what to bear with us; And do not seek to take your change upon you, To bear your griefs yourself and leave me out; For, by this heaven, now at our sorrows pale, Say what thou canst, I'll go along with thee. ROSALIND Why, whither shall we go? CELIA To seek my uncle in the forest of Arden. ROSALIND Alas, what danger will it be to us, Maids as we are, to travel forth so far! Beauty provoketh thieves sooner than gold. CELIA I'll put myself in poor and mean attire And with a kind of umber smirch my face; The like do you: so shall we pass along And never stir assailants. ROSALIND Were it not better, Because that I am more than common tall, That I did suit me all points like a man? A gallant curtle-axe upon my thigh, A boar-spear in my hand; and--in my heart Lie there what hidden woman's fear there will-- We'll have a swashing and a martial outside, As many other mannish cowards have That do outface it with their semblances. CELIA What shall I call thee when thou art a man? ROSALIND I'll have no worse a name than Jove's own page; And therefore look you call me Ganymede. But what will you be call'd? CELIA Something that hath a reference to my state No longer Celia, but Aliena. ROSALIND But, cousin, what if we assay'd to steal The clownish fool out of your father's court? Would he not be a comfort to our travel? CELIA He'll go along o'er the wide world with me; Leave me alone to woo him. Let's away, And get our jewels and our wealth together, Devise the fittest time and safest way To hide us from pursuit that will be made After my flight. Now go we in content To liberty and not to banishment. [Exeunt] AS YOU LIKE IT ACT II SCENE I The Forest of Arden. [Enter DUKE SENIOR, AMIENS, and two or three Lords, like foresters] DUKE SENIOR Now, my co-mates and brothers in exile, Hath not old custom made this life more sweet Than that of painted pomp? Are not these woods More free from peril than the envious court? Here feel we but the penalty of Adam, The seasons' difference, as the icy fang And churlish chiding of the winter's wind, Which, when it bites and blows upon my body, Even till I shrink with cold, I smile and say 'This is no flattery: these are counsellors That feelingly persuade me what I am.' Sweet are the uses of adversity, Which, like the toad, ugly and venomous, Wears yet a precious jewel in his head; And this our life exempt from public haunt Finds tongues in trees, books in the running brooks, Sermons in stones and good in every thing. I would not change it. AMIENS Happy is your grace, That can translate the stubbornness of fortune Into so quiet and so sweet a style. DUKE SENIOR Come, shall we go and kill us venison? And yet it irks me the poor dappled fools, Being native burghers of this desert city, Should in their own confines with forked heads Have their round haunches gored. First Lord Indeed, my lord, The melancholy Jaques grieves at that, And, in that kind, swears you do more usurp Than doth your brother that hath banish'd you. To-day my Lord of Amiens and myself Did steal behind him as he lay along Under an oak whose antique root peeps out Upon the brook that brawls along this wood: To the which place a poor sequester'd stag, That from the hunter's aim had ta'en a hurt, Did come to languish, and indeed, my lord, The wretched animal heaved forth such groans That their discharge did stretch his leathern coat Almost to bursting, and the big round tears Coursed one another down his innocent nose In piteous chase; and thus the hairy fool Much marked of the melancholy Jaques, Stood on the extremest verge of the swift brook, Augmenting it with tears. DUKE SENIOR But what said Jaques? Did he not moralize this spectacle? First Lord O, yes, into a thousand similes. First, for his weeping into the needless stream; 'Poor deer,' quoth he, 'thou makest a testament As worldlings do, giving thy sum of more To that which had too much:' then, being there alone, Left and abandon'd of his velvet friends, ''Tis right:' quoth he; 'thus misery doth part The flux of company:' anon a careless herd, Full of the pasture, jumps along by him And never stays to greet him; 'Ay' quoth Jaques, 'Sweep on, you fat and greasy citizens; 'Tis just the fashion: wherefore do you look Upon that poor and broken bankrupt there?' Thus most invectively he pierceth through The body of the country, city, court, Yea, and of this our life, swearing that we Are mere usurpers, tyrants and what's worse, To fright the animals and to kill them up In their assign'd and native dwelling-place. DUKE SENIOR And did you leave him in this contemplation? Second Lord We did, my lord, weeping and commenting Upon the sobbing deer. DUKE SENIOR Show me the place: I love to cope him in these sullen fits, For then he's full of matter. First Lord I'll bring you to him straight. [Exeunt] AS YOU LIKE IT ACT II SCENE II A room in the palace. [Enter DUKE FREDERICK, with Lords] DUKE FREDERICK Can it be possible that no man saw them? It cannot be: some villains of my court Are of consent and sufferance in this. First Lord I cannot hear of any that did see her. The ladies, her attendants of her chamber, Saw her abed, and in the morning early They found the bed untreasured of their mistress. Second Lord My lord, the roynish clown, at whom so oft Your grace was wont to laugh, is also missing. Hisperia, the princess' gentlewoman, Confesses that she secretly o'erheard Your daughter and her cousin much commend The parts and graces of the wrestler That did but lately foil the sinewy Charles; And she believes, wherever they are gone, That youth is surely in their company. DUKE FREDERICK Send to his brother; fetch that gallant hither; If he be absent, bring his brother to me; I'll make him find him: do this suddenly, And let not search and inquisition quail To bring again these foolish runaways. [Exeunt] AS YOU LIKE IT ACT II SCENE III Before OLIVER'S house. [Enter ORLANDO and ADAM, meeting] ORLANDO Who's there? ADAM What, my young master? O, my gentle master! O my sweet master! O you memory Of old Sir Rowland! why, what make you here? Why are you virtuous? why do people love you? And wherefore are you gentle, strong and valiant? Why would you be so fond to overcome The bonny priser of the humorous duke? Your praise is come too swiftly home before you. Know you not, master, to some kind of men Their graces serve them but as enemies? No more do yours: your virtues, gentle master, Are sanctified and holy traitors to you. O, what a world is this, when what is comely Envenoms him that bears it! ORLANDO Why, what's the matter? ADAM O unhappy youth! Come not within these doors; within this roof The enemy of all your graces lives: Your brother--no, no brother; yet the son-- Yet not the son, I will not call him son Of him I was about to call his father-- Hath heard your praises, and this night he means To burn the lodging where you use to lie And you within it: if he fail of that, He will have other means to cut you off. I overheard him and his practises. This is no place; this house is but a butchery: Abhor it, fear it, do not enter it. ORLANDO Why, whither, Adam, wouldst thou have me go? ADAM No matter whither, so you come not here. ORLANDO What, wouldst thou have me go and beg my food? Or with a base and boisterous sword enforce A thievish living on the common road? This I must do, or know not what to do: Yet this I will not do, do how I can; I rather will subject me to the malice Of a diverted blood and bloody brother. ADAM But do not so. I have five hundred crowns, The thrifty hire I saved under your father, Which I did store to be my foster-nurse When service should in my old limbs lie lame And unregarded age in corners thrown: Take that, and He that doth the ravens feed, Yea, providently caters for the sparrow, Be comfort to my age! Here is the gold; And all this I give you. Let me be your servant: Though I look old, yet I am strong and lusty; For in my youth I never did apply Hot and rebellious liquors in my blood, Nor did not with unbashful forehead woo The means of weakness and debility; Therefore my age is as a lusty winter, Frosty, but kindly: let me go with you; I'll do the service of a younger man In all your business and necessities. ORLANDO O good old man, how well in thee appears The constant service of the antique world, When service sweat for duty, not for meed! Thou art not for the fashion of these times, Where none will sweat but for promotion, And having that, do choke their service up Even with the having: it is not so with thee. But, poor old man, thou prunest a rotten tree, That cannot so much as a blossom yield In lieu of all thy pains and husbandry But come thy ways; well go along together, And ere we have thy youthful wages spent, We'll light upon some settled low content. ADAM Master, go on, and I will follow thee, To the last gasp, with truth and loyalty. From seventeen years till now almost fourscore Here lived I, but now live here no more. At seventeen years many their fortunes seek; But at fourscore it is too late a week: Yet fortune cannot recompense me better Than to die well and not my master's debtor. [Exeunt] AS YOU LIKE IT ACT II SCENE IV The Forest of Arden. [Enter ROSALIND for Ganymede, CELIA for Aliena, and TOUCHSTONE] ROSALIND O Jupiter, how weary are my spirits! TOUCHSTONE I care not for my spirits, if my legs were not weary. ROSALIND I could find in my heart to disgrace my man's apparel and to cry like a woman; but I must comfort the weaker vessel, as doublet and hose ought to show itself courageous to petticoat: therefore courage, good Aliena! CELIA I pray you, bear with me; I cannot go no further. TOUCHSTONE For my part, I had rather bear with you than bear you; yet I should bear no cross if I did bear you, for I think you have no money in your purse. ROSALIND Well, this is the forest of Arden. TOUCHSTONE Ay, now am I in Arden; the more fool I; when I was at home, I was in a better place: but travellers must be content. ROSALIND Ay, be so, good Touchstone. [Enter CORIN and SILVIUS] Look you, who comes here; a young man and an old in solemn talk. CORIN That is the way to make her scorn you still. SILVIUS O Corin, that thou knew'st how I do love her! CORIN I partly guess; for I have loved ere now. SILVIUS No, Corin, being old, thou canst not guess, Though in thy youth thou wast as true a lover As ever sigh'd upon a midnight pillow: But if thy love were ever like to mine-- As sure I think did never man love so-- How many actions most ridiculous Hast thou been drawn to by thy fantasy? CORIN Into a thousand that I have forgotten. SILVIUS O, thou didst then ne'er love so heartily! If thou remember'st not the slightest folly That ever love did make thee run into, Thou hast not loved: Or if thou hast not sat as I do now, Wearying thy hearer in thy mistress' praise, Thou hast not loved: Or if thou hast not broke from company Abruptly, as my passion now makes me, Thou hast not loved. O Phebe, Phebe, Phebe! [Exit] ROSALIND Alas, poor shepherd! searching of thy wound, I have by hard adventure found mine own. TOUCHSTONE And I mine. I remember, when I was in love I broke my sword upon a stone and bid him take that for coming a-night to Jane Smile; and I remember the kissing of her batlet and the cow's dugs that her pretty chopt hands had milked; and I remember the wooing of a peascod instead of her, from whom I took two cods and, giving her them again, said with weeping tears 'Wear these for my sake.' We that are true lovers run into strange capers; but as all is mortal in nature, so is all nature in love mortal in folly. ROSALIND Thou speakest wiser than thou art ware of. TOUCHSTONE Nay, I shall ne'er be ware of mine own wit till I break my shins against it. ROSALIND Jove, Jove! this shepherd's passion Is much upon my fashion. TOUCHSTONE And mine; but it grows something stale with me. CELIA I pray you, one of you question yond man If he for gold will give us any food: I faint almost to death. TOUCHSTONE Holla, you clown! ROSALIND Peace, fool: he's not thy kinsman. CORIN Who calls? TOUCHSTONE Your betters, sir. CORIN Else are they very wretched. ROSALIND Peace, I say. Good even to you, friend. CORIN And to you, gentle sir, and to you all. ROSALIND I prithee, shepherd, if that love or gold Can in this desert place buy entertainment, Bring us where we may rest ourselves and feed: Here's a young maid with travel much oppress'd And faints for succor. CORIN Fair sir, I pity her And wish, for her sake more than for mine own, My fortunes were more able to relieve her; But I am shepherd to another man And do not shear the fleeces that I graze: My master is of churlish disposition And little recks to find the way to heaven By doing deeds of hospitality: Besides, his cote, his flocks and bounds of feed Are now on sale, and at our sheepcote now, By reason of his absence, there is nothing That you will feed on; but what is, come see. And in my voice most welcome shall you be. ROSALIND What is he that shall buy his flock and pasture? CORIN That young swain that you saw here but erewhile, That little cares for buying any thing. ROSALIND I pray thee, if it stand with honesty, Buy thou the cottage, pasture and the flock, And thou shalt have to pay for it of us. CELIA And we will mend thy wages. I like this place. And willingly could waste my time in it. CORIN Assuredly the thing is to be sold: Go with me: if you like upon report The soil, the profit and this kind of life, I will your very faithful feeder be And buy it with your gold right suddenly. [Exeunt] AS YOU LIKE IT ACT II SCENE V The Forest. [Enter AMIENS, JAQUES, and others] SONG. AMIENS Under the greenwood tree Who loves to lie with me, And turn his merry note Unto the sweet bird's throat, Come hither, come hither, come hither: Here shall he see No enemy But winter and rough weather. JAQUES More, more, I prithee, more. AMIENS It will make you melancholy, Monsieur Jaques. JAQUES I thank it. More, I prithee, more. I can suck melancholy out of a song, as a weasel sucks eggs. More, I prithee, more. AMIENS My voice is ragged: I know I cannot please you. JAQUES I do not desire you to please me; I do desire you to sing. Come, more; another stanzo: call you 'em stanzos? AMIENS What you will, Monsieur Jaques. JAQUES Nay, I care not for their names; they owe me nothing. Will you sing? AMIENS More at your request than to please myself. JAQUES Well then, if ever I thank any man, I'll thank you; but that they call compliment is like the encounter of two dog-apes, and when a man thanks me heartily, methinks I have given him a penny and he renders me the beggarly thanks. Come, sing; and you that will not, hold your tongues. AMIENS Well, I'll end the song. Sirs, cover the while; the duke will drink under this tree. He hath been all this day to look you. JAQUES And I have been all this day to avoid him. He is too disputable for my company: I think of as many matters as he, but I give heaven thanks and make no boast of them. Come, warble, come. SONG. Who doth ambition shun [All together here] And loves to live i' the sun, Seeking the food he eats And pleased with what he gets, Come hither, come hither, come hither: Here shall he see No enemy But winter and rough weather. JAQUES I'll give you a verse to this note that I made yesterday in despite of my invention. AMIENS And I'll sing it. JAQUES Thus it goes:-- If it do come to pass That any man turn ass, Leaving his wealth and ease, A stubborn will to please, Ducdame, ducdame, ducdame: Here shall he see Gross fools as he, An if he will come to me. AMIENS What's that 'ducdame'? JAQUES 'Tis a Greek invocation, to call fools into a circle. I'll go sleep, if I can; if I cannot, I'll rail against all the first-born of Egypt. AMIENS And I'll go seek the duke: his banquet is prepared. [Exeunt severally] AS YOU LIKE IT ACT II SCENE VI The forest. [Enter ORLANDO and ADAM] ADAM Dear master, I can go no further. O, I die for food! Here lie I down, and measure out my grave. Farewell, kind master. ORLANDO Why, how now, Adam! no greater heart in thee? Live a little; comfort a little; cheer thyself a little. If this uncouth forest yield any thing savage, I will either be food for it or bring it for food to thee. Thy conceit is nearer death than thy powers. For my sake be comfortable; hold death awhile at the arm's end: I will here be with thee presently; and if I bring thee not something to eat, I will give thee leave to die: but if thou diest before I come, thou art a mocker of my labour. Well said! thou lookest cheerly, and I'll be with thee quickly. Yet thou liest in the bleak air: come, I will bear thee to some shelter; and thou shalt not die for lack of a dinner, if there live any thing in this desert. Cheerly, good Adam! [Exeunt] AS YOU LIKE IT ACT II SCENE VII The forest. [A table set out. Enter DUKE SENIOR, AMIENS, and Lords like outlaws] DUKE SENIOR I think he be transform'd into a beast; For I can no where find him like a man. First Lord My lord, he is but even now gone hence: Here was he merry, hearing of a song. DUKE SENIOR If he, compact of jars, grow musical, We shall have shortly discord in the spheres. Go, seek him: tell him I would speak with him. [Enter JAQUES] First Lord He saves my labour by his own approach. DUKE SENIOR Why, how now, monsieur! what a life is this, That your poor friends must woo your company? What, you look merrily! JAQUES A fool, a fool! I met a fool i' the forest, A motley fool; a miserable world! As I do live by food, I met a fool Who laid him down and bask'd him in the sun, And rail'd on Lady Fortune in good terms, In good set terms and yet a motley fool. 'Good morrow, fool,' quoth I. 'No, sir,' quoth he, 'Call me not fool till heaven hath sent me fortune:' And then he drew a dial from his poke, And, looking on it with lack-lustre eye, Says very wisely, 'It is ten o'clock: Thus we may see,' quoth he, 'how the world wags: 'Tis but an hour ago since it was nine, And after one hour more 'twill be eleven; And so, from hour to hour, we ripe and ripe, And then, from hour to hour, we rot and rot; And thereby hangs a tale.' When I did hear The motley fool thus moral on the time, My lungs began to crow like chanticleer, That fools should be so deep-contemplative, And I did laugh sans intermission An hour by his dial. O noble fool! A worthy fool! Motley's the only wear. DUKE SENIOR What fool is this? JAQUES O worthy fool! One that hath been a courtier, And says, if ladies be but young and fair, They have the gift to know it: and in his brain, Which is as dry as the remainder biscuit After a voyage, he hath strange places cramm'd With observation, the which he vents In mangled forms. O that I were a fool! I am ambitious for a motley coat. DUKE SENIOR Thou shalt have one. JAQUES It is my only suit; Provided that you weed your better judgments Of all opinion that grows rank in them That I am wise. I must have liberty Withal, as large a charter as the wind, To blow on whom I please; for so fools have; And they that are most galled with my folly, They most must laugh. And why, sir, must they so? The 'why' is plain as way to parish church: He that a fool doth very wisely hit Doth very foolishly, although he smart, Not to seem senseless of the bob: if not, The wise man's folly is anatomized Even by the squandering glances of the fool. Invest me in my motley; give me leave To speak my mind, and I will through and through Cleanse the foul body of the infected world, If they will patiently receive my medicine. DUKE SENIOR Fie on thee! I can tell what thou wouldst do. JAQUES What, for a counter, would I do but good? DUKE SENIOR Most mischievous foul sin, in chiding sin: For thou thyself hast been a libertine, As sensual as the brutish sting itself; And all the embossed sores and headed evils, That thou with licence of free foot hast caught, Wouldst thou disgorge into the general world. JAQUES Why, who cries out on pride, That can therein tax any private party? Doth it not flow as hugely as the sea, Till that the weary very means do ebb? What woman in the city do I name, When that I say the city-woman bears The cost of princes on unworthy shoulders? Who can come in and say that I mean her, When such a one as she such is her neighbour? Or what is he of basest function That says his bravery is not of my cost, Thinking that I mean him, but therein suits His folly to the mettle of my speech? There then; how then? what then? Let me see wherein My tongue hath wrong'd him: if it do him right, Then he hath wrong'd himself; if he be free, Why then my taxing like a wild-goose flies, Unclaim'd of any man. But who comes here? [Enter ORLANDO, with his sword drawn] ORLANDO Forbear, and eat no more. JAQUES Why, I have eat none yet. ORLANDO Nor shalt not, till necessity be served. JAQUES Of what kind should this cock come of? DUKE SENIOR Art thou thus bolden'd, man, by thy distress, Or else a rude despiser of good manners, That in civility thou seem'st so empty? ORLANDO You touch'd my vein at first: the thorny point Of bare distress hath ta'en from me the show Of smooth civility: yet am I inland bred And know some nurture. But forbear, I say: He dies that touches any of this fruit Till I and my affairs are answered. JAQUES An you will not be answered with reason, I must die. DUKE SENIOR What would you have? Your gentleness shall force More than your force move us to gentleness. ORLANDO I almost die for food; and let me have it. DUKE SENIOR Sit down and feed, and welcome to our table. ORLANDO Speak you so gently? Pardon me, I pray you: I thought that all things had been savage here; And therefore put I on the countenance Of stern commandment. But whate'er you are That in this desert inaccessible, Under the shade of melancholy boughs, Lose and neglect the creeping hours of time If ever you have look'd on better days, If ever been where bells have knoll'd to church, If ever sat at any good man's feast, If ever from your eyelids wiped a tear And know what 'tis to pity and be pitied, Let gentleness my strong enforcement be: In the which hope I blush, and hide my sword. DUKE SENIOR True is it that we have seen better days, And have with holy bell been knoll'd to church And sat at good men's feasts and wiped our eyes Of drops that sacred pity hath engender'd: And therefore sit you down in gentleness And take upon command what help we have That to your wanting may be minister'd. ORLANDO Then but forbear your food a little while, Whiles, like a doe, I go to find my fawn And give it food. There is an old poor man, Who after me hath many a weary step Limp'd in pure love: till he be first sufficed, Oppress'd with two weak evils, age and hunger, I will not touch a bit. DUKE SENIOR Go find him out, And we will nothing waste till you return. ORLANDO I thank ye; and be blest for your good comfort! [Exit] DUKE SENIOR Thou seest we are not all alone unhappy: This wide and universal theatre Presents more woeful pageants than the scene Wherein we play in. JAQUES All the world's a stage, And all the men and women merely players: They have their exits and their entrances; And one man in his time plays many parts, His acts being seven ages. At first the infant, Mewling and puking in the nurse's arms. And then the whining school-boy, with his satchel And shining morning face, creeping like snail Unwillingly to school. And then the lover, Sighing like furnace, with a woeful ballad Made to his mistress' eyebrow. Then a soldier, Full of strange oaths and bearded like the pard, Jealous in honour, sudden and quick in quarrel, Seeking the bubble reputation Even in the cannon's mouth. And then the justice, In fair round belly with good capon lined, With eyes severe and beard of formal cut, Full of wise saws and modern instances; And so he plays his part. The sixth age shifts Into the lean and slipper'd pantaloon, With spectacles on nose and pouch on side, His youthful hose, well saved, a world too wide For his shrunk shank; and his big manly voice, Turning again toward childish treble, pipes And whistles in his sound. Last scene of all, That ends this strange eventful history, Is second childishness and mere oblivion, Sans teeth, sans eyes, sans taste, sans everything. [Re-enter ORLANDO, with ADAM] DUKE SENIOR Welcome. Set down your venerable burthen, And let him feed. ORLANDO I thank you most for him. ADAM So had you need: I scarce can speak to thank you for myself. DUKE SENIOR Welcome; fall to: I will not trouble you As yet, to question you about your fortunes. Give us some music; and, good cousin, sing. SONG. AMIENS Blow, blow, thou winter wind. Thou art not so unkind As man's ingratitude; Thy tooth is not so keen, Because thou art not seen, Although thy breath be rude. Heigh-ho! sing, heigh-ho! unto the green holly: Most friendship is feigning, most loving mere folly: Then, heigh-ho, the holly! This life is most jolly. Freeze, freeze, thou bitter sky, That dost not bite so nigh As benefits forgot: Though thou the waters warp, Thy sting is not so sharp As friend remember'd not. Heigh-ho! sing, &c. DUKE SENIOR If that you were the good Sir Rowland's son, As you have whisper'd faithfully you were, And as mine eye doth his effigies witness Most truly limn'd and living in your face, Be truly welcome hither: I am the duke That loved your father: the residue of your fortune, Go to my cave and tell me. Good old man, Thou art right welcome as thy master is. Support him by the arm. Give me your hand, And let me all your fortunes understand. [Exeunt] AS YOU LIKE IT ACT III SCENE I A room in the palace. [Enter DUKE FREDERICK, Lords, and OLIVER] DUKE FREDERICK Not see him since? Sir, sir, that cannot be: But were I not the better part made mercy, I should not seek an absent argument Of my revenge, thou present. But look to it: Find out thy brother, wheresoe'er he is; Seek him with candle; bring him dead or living Within this twelvemonth, or turn thou no more To seek a living in our territory. Thy lands and all things that thou dost call thine Worth seizure do we seize into our hands, Till thou canst quit thee by thy brothers mouth Of what we think against thee. OLIVER O that your highness knew my heart in this! I never loved my brother in my life. DUKE FREDERICK More villain thou. Well, push him out of doors; And let my officers of such a nature Make an extent upon his house and lands: Do this expediently and turn him going. [Exeunt] AS YOU LIKE IT ACT III SCENE II The forest. [Enter ORLANDO, with a paper] ORLANDO Hang there, my verse, in witness of my love: And thou, thrice-crowned queen of night, survey With thy chaste eye, from thy pale sphere above, Thy huntress' name that my full life doth sway. O Rosalind! these trees shall be my books And in their barks my thoughts I'll character; That every eye which in this forest looks Shall see thy virtue witness'd every where. Run, run, Orlando; carve on every tree The fair, the chaste and unexpressive she. [Exit] [Enter CORIN and TOUCHSTONE] CORIN And how like you this shepherd's life, Master Touchstone? TOUCHSTONE Truly, shepherd, in respect of itself, it is a good life, but in respect that it is a shepherd's life, it is naught. In respect that it is solitary, I like it very well; but in respect that it is private, it is a very vile life. Now, in respect it is in the fields, it pleaseth me well; but in respect it is not in the court, it is tedious. As is it a spare life, look you, it fits my humour well; but as there is no more plenty in it, it goes much against my stomach. Hast any philosophy in thee, shepherd? CORIN No more but that I know the more one sickens the worse at ease he is; and that he that wants money, means and content is without three good friends; that the property of rain is to wet and fire to burn; that good pasture makes fat sheep, and that a great cause of the night is lack of the sun; that he that hath learned no wit by nature nor art may complain of good breeding or comes of a very dull kindred. TOUCHSTONE Such a one is a natural philosopher. Wast ever in court, shepherd? CORIN No, truly. TOUCHSTONE Then thou art damned. CORIN Nay, I hope. TOUCHSTONE Truly, thou art damned like an ill-roasted egg, all on one side. CORIN For not being at court? Your reason. TOUCHSTONE Why, if thou never wast at court, thou never sawest good manners; if thou never sawest good manners, then thy manners must be wicked; and wickedness is sin, and sin is damnation. Thou art in a parlous state, shepherd. CORIN Not a whit, Touchstone: those that are good manners at the court are as ridiculous in the country as the behavior of the country is most mockable at the court. You told me you salute not at the court, but you kiss your hands: that courtesy would be uncleanly, if courtiers were shepherds. TOUCHSTONE Instance, briefly; come, instance. CORIN Why, we are still handling our ewes, and their fells, you know, are greasy. TOUCHSTONE Why, do not your courtier's hands sweat? and is not the grease of a mutton as wholesome as the sweat of a man? Shallow, shallow. A better instance, I say; come. CORIN Besides, our hands are hard. TOUCHSTONE Your lips will feel them the sooner. Shallow again. A more sounder instance, come. CORIN And they are often tarred over with the surgery of our sheep: and would you have us kiss tar? The courtier's hands are perfumed with civet. TOUCHSTONE Most shallow man! thou worms-meat, in respect of a good piece of flesh indeed! Learn of the wise, and perpend: civet is of a baser birth than tar, the very uncleanly flux of a cat. Mend the instance, shepherd. CORIN You have too courtly a wit for me: I'll rest. TOUCHSTONE Wilt thou rest damned? God help thee, shallow man! God make incision in thee! thou art raw. CORIN Sir, I am a true labourer: I earn that I eat, get that I wear, owe no man hate, envy no man's happiness, glad of other men's good, content with my harm, and the greatest of my pride is to see my ewes graze and my lambs suck. TOUCHSTONE That is another simple sin in you, to bring the ewes and the rams together and to offer to get your living by the copulation of cattle; to be bawd to a bell-wether, and to betray a she-lamb of a twelvemonth to a crooked-pated, old, cuckoldly ram, out of all reasonable match. If thou beest not damned for this, the devil himself will have no shepherds; I cannot see else how thou shouldst 'scape. CORIN Here comes young Master Ganymede, my new mistress's brother. [Enter ROSALIND, with a paper, reading] ROSALIND From the east to western Ind, No jewel is like Rosalind. Her worth, being mounted on the wind, Through all the world bears Rosalind. All the pictures fairest lined Are but black to Rosalind. Let no fair be kept in mind But the fair of Rosalind. TOUCHSTONE I'll rhyme you so eight years together, dinners and suppers and sleeping-hours excepted: it is the right butter-women's rank to market. ROSALIND Out, fool! TOUCHSTONE For a taste: If a hart do lack a hind, Let him seek out Rosalind. If the cat will after kind, So be sure will Rosalind. Winter garments must be lined, So must slender Rosalind. They that reap must sheaf and bind; Then to cart with Rosalind. Sweetest nut hath sourest rind, Such a nut is Rosalind. He that sweetest rose will find Must find love's prick and Rosalind. This is the very false gallop of verses: why do you infect yourself with them? ROSALIND Peace, you dull fool! I found them on a tree. TOUCHSTONE Truly, the tree yields bad fruit. ROSALIND I'll graff it with you, and then I shall graff it with a medlar: then it will be the earliest fruit i' the country; for you'll be rotten ere you be half ripe, and that's the right virtue of the medlar. TOUCHSTONE You have said; but whether wisely or no, let the forest judge. [Enter CELIA, with a writing] ROSALIND Peace! Here comes my sister, reading: stand aside. CELIA [Reads] Why should this a desert be? For it is unpeopled? No: Tongues I'll hang on every tree, That shall civil sayings show: Some, how brief the life of man Runs his erring pilgrimage, That the stretching of a span Buckles in his sum of age; Some, of violated vows 'Twixt the souls of friend and friend: But upon the fairest boughs, Or at every sentence end, Will I Rosalinda write, Teaching all that read to know The quintessence of every sprite Heaven would in little show. Therefore Heaven Nature charged That one body should be fill'd With all graces wide-enlarged: Nature presently distill'd Helen's cheek, but not her heart, Cleopatra's majesty, Atalanta's better part, Sad Lucretia's modesty. Thus Rosalind of many parts By heavenly synod was devised, Of many faces, eyes and hearts, To have the touches dearest prized. Heaven would that she these gifts should have, And I to live and die her slave. ROSALIND O most gentle pulpiter! what tedious homily of love have you wearied your parishioners withal, and never cried 'Have patience, good people!' CELIA How now! back, friends! Shepherd, go off a little. Go with him, sirrah. TOUCHSTONE Come, shepherd, let us make an honourable retreat; though not with bag and baggage, yet with scrip and scrippage. [Exeunt CORIN and TOUCHSTONE] CELIA Didst thou hear these verses? ROSALIND O, yes, I heard them all, and more too; for some of them had in them more feet than the verses would bear. CELIA That's no matter: the feet might bear the verses. ROSALIND Ay, but the feet were lame and could not bear themselves without the verse and therefore stood lamely in the verse. CELIA But didst thou hear without wondering how thy name should be hanged and carved upon these trees? ROSALIND I was seven of the nine days out of the wonder before you came; for look here what I found on a palm-tree. I was never so be-rhymed since Pythagoras' time, that I was an Irish rat, which I can hardly remember. CELIA Trow you who hath done this? ROSALIND Is it a man? CELIA And a chain, that you once wore, about his neck. Change you colour? ROSALIND I prithee, who? CELIA O Lord, Lord! it is a hard matter for friends to meet; but mountains may be removed with earthquakes and so encounter. ROSALIND Nay, but who is it? CELIA Is it possible? ROSALIND Nay, I prithee now with most petitionary vehemence, tell me who it is. CELIA O wonderful, wonderful, and most wonderful wonderful! and yet again wonderful, and after that, out of all hooping! ROSALIND Good my complexion! dost thou think, though I am caparisoned like a man, I have a doublet and hose in my disposition? One inch of delay more is a South-sea of discovery; I prithee, tell me who is it quickly, and speak apace. I would thou couldst stammer, that thou mightst pour this concealed man out of thy mouth, as wine comes out of a narrow- mouthed bottle, either too much at once, or none at all. I prithee, take the cork out of thy mouth that may drink thy tidings. CELIA So you may put a man in your belly. ROSALIND Is he of God's making? What manner of man? Is his head worth a hat, or his chin worth a beard? CELIA Nay, he hath but a little beard. ROSALIND Why, God will send more, if the man will be thankful: let me stay the growth of his beard, if thou delay me not the knowledge of his chin. CELIA It is young Orlando, that tripped up the wrestler's heels and your heart both in an instant. ROSALIND Nay, but the devil take mocking: speak, sad brow and true maid. CELIA I' faith, coz, 'tis he. ROSALIND Orlando? CELIA Orlando. ROSALIND Alas the day! what shall I do with my doublet and hose? What did he when thou sawest him? What said he? How looked he? Wherein went he? What makes him here? Did he ask for me? Where remains he? How parted he with thee? and when shalt thou see him again? Answer me in one word. CELIA You must borrow me Gargantua's mouth first: 'tis a word too great for any mouth of this age's size. To say ay and no to these particulars is more than to answer in a catechism. ROSALIND But doth he know that I am in this forest and in man's apparel? Looks he as freshly as he did the day he wrestled? CELIA It is as easy to count atomies as to resolve the propositions of a lover; but take a taste of my finding him, and relish it with good observance. I found him under a tree, like a dropped acorn. ROSALIND It may well be called Jove's tree, when it drops forth such fruit. CELIA Give me audience, good madam. ROSALIND Proceed. CELIA There lay he, stretched along, like a wounded knight. ROSALIND Though it be pity to see such a sight, it well becomes the ground. CELIA Cry 'holla' to thy tongue, I prithee; it curvets unseasonably. He was furnished like a hunter. ROSALIND O, ominous! he comes to kill my heart. CELIA I would sing my song without a burden: thou bringest me out of tune. ROSALIND Do you not know I am a woman? when I think, I must speak. Sweet, say on. CELIA You bring me out. Soft! comes he not here? [Enter ORLANDO and JAQUES] ROSALIND 'Tis he: slink by, and note him. JAQUES I thank you for your company; but, good faith, I had as lief have been myself alone. ORLANDO And so had I; but yet, for fashion sake, I thank you too for your society. JAQUES God be wi' you: let's meet as little as we can. ORLANDO I do desire we may be better strangers. JAQUES I pray you, mar no more trees with writing love-songs in their barks. ORLANDO I pray you, mar no more of my verses with reading them ill-favouredly. JAQUES Rosalind is your love's name? ORLANDO Yes, just. JAQUES I do not like her name. ORLANDO There was no thought of pleasing you when she was christened. JAQUES What stature is she of? ORLANDO Just as high as my heart. JAQUES You are full of pretty answers. Have you not been acquainted with goldsmiths' wives, and conned them out of rings? ORLANDO Not so; but I answer you right painted cloth, from whence you have studied your questions. JAQUES You have a nimble wit: I think 'twas made of Atalanta's heels. Will you sit down with me? and we two will rail against our mistress the world and all our misery. ORLANDO I will chide no breather in the world but myself, against whom I know most faults. JAQUES The worst fault you have is to be in love. ORLANDO 'Tis a fault I will not change for your best virtue. I am weary of you. JAQUES By my troth, I was seeking for a fool when I found you. ORLANDO He is drowned in the brook: look but in, and you shall see him. JAQUES There I shall see mine own figure. ORLANDO Which I take to be either a fool or a cipher. JAQUES I'll tarry no longer with you: farewell, good Signior Love. ORLANDO I am glad of your departure: adieu, good Monsieur Melancholy. [Exit JAQUES] ROSALIND [Aside to CELIA] I will speak to him, like a saucy lackey and under that habit play the knave with him. Do you hear, forester? ORLANDO Very well: what would you? ROSALIND I pray you, what is't o'clock? ORLANDO You should ask me what time o' day: there's no clock in the forest. ROSALIND Then there is no true lover in the forest; else sighing every minute and groaning every hour would detect the lazy foot of Time as well as a clock. ORLANDO And why not the swift foot of Time? had not that been as proper? ROSALIND By no means, sir: Time travels in divers paces with divers persons. I'll tell you who Time ambles withal, who Time trots withal, who Time gallops withal and who he stands still withal. ORLANDO I prithee, who doth he trot withal? ROSALIND Marry, he trots hard with a young maid between the contract of her marriage and the day it is solemnized: if the interim be but a se'nnight, Time's pace is so hard that it seems the length of seven year. ORLANDO Who ambles Time withal? ROSALIND With a priest that lacks Latin and a rich man that hath not the gout, for the one sleeps easily because he cannot study, and the other lives merrily because he feels no pain, the one lacking the burden of lean and wasteful learning, the other knowing no burden of heavy tedious penury; these Time ambles withal. ORLANDO Who doth he gallop withal? ROSALIND With a thief to the gallows, for though he go as softly as foot can fall, he thinks himself too soon there. ORLANDO Who stays it still withal? ROSALIND With lawyers in the vacation, for they sleep between term and term and then they perceive not how Time moves. ORLANDO Where dwell you, pretty youth? ROSALIND With this shepherdess, my sister; here in the skirts of the forest, like fringe upon a petticoat. ORLANDO Are you native of this place? ROSALIND As the cony that you see dwell where she is kindled. ORLANDO Your accent is something finer than you could purchase in so removed a dwelling. ROSALIND I have been told so of many: but indeed an old religious uncle of mine taught me to speak, who was in his youth an inland man; one that knew courtship too well, for there he fell in love. I have heard him read many lectures against it, and I thank God I am not a woman, to be touched with so many giddy offences as he hath generally taxed their whole sex withal. ORLANDO Can you remember any of the principal evils that he laid to the charge of women? ROSALIND There were none principal; they were all like one another as half-pence are, every one fault seeming monstrous till his fellow fault came to match it. ORLANDO I prithee, recount some of them. ROSALIND No, I will not cast away my physic but on those that are sick. There is a man haunts the forest, that abuses our young plants with carving 'Rosalind' on their barks; hangs odes upon hawthorns and elegies on brambles, all, forsooth, deifying the name of Rosalind: if I could meet that fancy-monger I would give him some good counsel, for he seems to have the quotidian of love upon him. ORLANDO I am he that is so love-shaked: I pray you tell me your remedy. ROSALIND There is none of my uncle's marks upon you: he taught me how to know a man in love; in which cage of rushes I am sure you are not prisoner. ORLANDO What were his marks? ROSALIND A lean cheek, which you have not, a blue eye and sunken, which you have not, an unquestionable spirit, which you have not, a beard neglected, which you have not; but I pardon you for that, for simply your having in beard is a younger brother's revenue: then your hose should be ungartered, your bonnet unbanded, your sleeve unbuttoned, your shoe untied and every thing about you demonstrating a careless desolation; but you are no such man; you are rather point-device in your accoutrements as loving yourself than seeming the lover of any other. ORLANDO Fair youth, I would I could make thee believe I love. ROSALIND Me believe it! you may as soon make her that you love believe it; which, I warrant, she is apter to do than to confess she does: that is one of the points in the which women still give the lie to their consciences. But, in good sooth, are you he that hangs the verses on the trees, wherein Rosalind is so admired? ORLANDO I swear to thee, youth, by the white hand of Rosalind, I am that he, that unfortunate he. ROSALIND But are you so much in love as your rhymes speak? ORLANDO Neither rhyme nor reason can express how much. ROSALIND Love is merely a madness, and, I tell you, deserves as well a dark house and a whip as madmen do: and the reason why they are not so punished and cured is, that the lunacy is so ordinary that the whippers are in love too. Yet I profess curing it by counsel. ORLANDO Did you ever cure any so? ROSALIND Yes, one, and in this manner. He was to imagine me his love, his mistress; and I set him every day to woo me: at which time would I, being but a moonish youth, grieve, be effeminate, changeable, longing and liking, proud, fantastical, apish, shallow, inconstant, full of tears, full of smiles, for every passion something and for no passion truly any thing, as boys and women are for the most part cattle of this colour; would now like him, now loathe him; then entertain him, then forswear him; now weep for him, then spit at him; that I drave my suitor from his mad humour of love to a living humour of madness; which was, to forswear the full stream of the world, and to live in a nook merely monastic. And thus I cured him; and this way will I take upon me to wash your liver as clean as a sound sheep's heart, that there shall not be one spot of love in't. ORLANDO I would not be cured, youth. ROSALIND I would cure you, if you would but call me Rosalind and come every day to my cote and woo me. ORLANDO Now, by the faith of my love, I will: tell me where it is. ROSALIND Go with me to it and I'll show it you and by the way you shall tell me where in the forest you live. Will you go? ORLANDO With all my heart, good youth. ROSALIND Nay you must call me Rosalind. Come, sister, will you go? [Exeunt] AS YOU LIKE IT ACT III SCENE III The forest. [Enter TOUCHSTONE and AUDREY; JAQUES behind] TOUCHSTONE Come apace, good Audrey: I will fetch up your goats, Audrey. And how, Audrey? am I the man yet? doth my simple feature content you? AUDREY Your features! Lord warrant us! what features! TOUCHSTONE I am here with thee and thy goats, as the most capricious poet, honest Ovid, was among the Goths. JAQUES [Aside] O knowledge ill-inhabited, worse than Jove in a thatched house! TOUCHSTONE When a man's verses cannot be understood, nor a man's good wit seconded with the forward child Understanding, it strikes a man more dead than a great reckoning in a little room. Truly, I would the gods had made thee poetical. AUDREY I do not know what 'poetical' is: is it honest in deed and word? is it a true thing? TOUCHSTONE No, truly; for the truest poetry is the most feigning; and lovers are given to poetry, and what they swear in poetry may be said as lovers they do feign. AUDREY Do you wish then that the gods had made me poetical? TOUCHSTONE I do, truly; for thou swearest to me thou art honest: now, if thou wert a poet, I might have some hope thou didst feign. AUDREY Would you not have me honest? TOUCHSTONE No, truly, unless thou wert hard-favoured; for honesty coupled to beauty is to have honey a sauce to sugar. JAQUES [Aside] A material fool! AUDREY Well, I am not fair; and therefore I pray the gods make me honest. TOUCHSTONE Truly, and to cast away honesty upon a foul slut were to put good meat into an unclean dish. AUDREY I am not a slut, though I thank the gods I am foul. TOUCHSTONE Well, praised be the gods for thy foulness! sluttishness may come hereafter. But be it as it may be, I will marry thee, and to that end I have been with Sir Oliver Martext, the vicar of the next village, who hath promised to meet me in this place of the forest and to couple us. JAQUES [Aside] I would fain see this meeting. AUDREY Well, the gods give us joy! TOUCHSTONE Amen. A man may, if he were of a fearful heart, stagger in this attempt; for here we have no temple but the wood, no assembly but horn-beasts. But what though? Courage! As horns are odious, they are necessary. It is said, 'many a man knows no end of his goods:' right; many a man has good horns, and knows no end of them. Well, that is the dowry of his wife; 'tis none of his own getting. Horns? Even so. Poor men alone? No, no; the noblest deer hath them as huge as the rascal. Is the single man therefore blessed? No: as a walled town is more worthier than a village, so is the forehead of a married man more honourable than the bare brow of a bachelor; and by how much defence is better than no skill, by so much is a horn more precious than to want. Here comes Sir Oliver. [Enter SIR OLIVER MARTEXT] Sir Oliver Martext, you are well met: will you dispatch us here under this tree, or shall we go with you to your chapel? SIR OLIVER MARTEXT Is there none here to give the woman? TOUCHSTONE I will not take her on gift of any man. SIR OLIVER MARTEXT Truly, she must be given, or the marriage is not lawful. JAQUES [Advancing] Proceed, proceed I'll give her. TOUCHSTONE Good even, good Master What-ye-call't: how do you, sir? You are very well met: God 'ild you for your last company: I am very glad to see you: even a toy in hand here, sir: nay, pray be covered. JAQUES Will you be married, motley? TOUCHSTONE As the ox hath his bow, sir, the horse his curb and the falcon her bells, so man hath his desires; and as pigeons bill, so wedlock would be nibbling. JAQUES And will you, being a man of your breeding, be married under a bush like a beggar? Get you to church, and have a good priest that can tell you what marriage is: this fellow will but join you together as they join wainscot; then one of you will prove a shrunk panel and, like green timber, warp, warp. TOUCHSTONE [Aside] I am not in the mind but I were better to be married of him than of another: for he is not like to marry me well; and not being well married, it will be a good excuse for me hereafter to leave my wife. JAQUES Go thou with me, and let me counsel thee. TOUCHSTONE 'Come, sweet Audrey: We must be married, or we must live in bawdry. Farewell, good Master Oliver: not,-- O sweet Oliver, O brave Oliver, Leave me not behind thee: but,-- Wind away, Begone, I say, I will not to wedding with thee. [Exeunt JAQUES, TOUCHSTONE and AUDREY] SIR OLIVER MARTEXT 'Tis no matter: ne'er a fantastical knave of them all shall flout me out of my calling. [Exit] AS YOU LIKE IT ACT III SCENE IV The forest. [Enter ROSALIND and CELIA] ROSALIND Never talk to me; I will weep. CELIA Do, I prithee; but yet have the grace to consider that tears do not become a man. ROSALIND But have I not cause to weep? CELIA As good cause as one would desire; therefore weep. ROSALIND His very hair is of the dissembling colour. CELIA Something browner than Judas's marry, his kisses are Judas's own children. ROSALIND I' faith, his hair is of a good colour. CELIA An excellent colour: your chestnut was ever the only colour. ROSALIND And his kissing is as full of sanctity as the touch of holy bread. CELIA He hath bought a pair of cast lips of Diana: a nun of winter's sisterhood kisses not more religiously; the very ice of chastity is in them. ROSALIND But why did he swear he would come this morning, and comes not? CELIA Nay, certainly, there is no truth in him. ROSALIND Do you think so? CELIA Yes; I think he is not a pick-purse nor a horse-stealer, but for his verity in love, I do think him as concave as a covered goblet or a worm-eaten nut. ROSALIND Not true in love? CELIA Yes, when he is in; but I think he is not in. ROSALIND You have heard him swear downright he was. CELIA 'Was' is not 'is:' besides, the oath of a lover is no stronger than the word of a tapster; they are both the confirmer of false reckonings. He attends here in the forest on the duke your father. ROSALIND I met the duke yesterday and had much question with him: he asked me of what parentage I was; I told him, of as good as he; so he laughed and let me go. But what talk we of fathers, when there is such a man as Orlando? CELIA O, that's a brave man! he writes brave verses, speaks brave words, swears brave oaths and breaks them bravely, quite traverse, athwart the heart of his lover; as a puisny tilter, that spurs his horse but on one side, breaks his staff like a noble goose: but all's brave that youth mounts and folly guides. Who comes here? [Enter CORIN] CORIN Mistress and master, you have oft inquired After the shepherd that complain'd of love, Who you saw sitting by me on the turf, Praising the proud disdainful shepherdess That was his mistress. CELIA Well, and what of him? CORIN If you will see a pageant truly play'd, Between the pale complexion of true love And the red glow of scorn and proud disdain, Go hence a little and I shall conduct you, If you will mark it. ROSALIND O, come, let us remove: The sight of lovers feedeth those in love. Bring us to this sight, and you shall say I'll prove a busy actor in their play. [Exeunt] AS YOU LIKE IT ACT III SCENE V Another part of the forest. [Enter SILVIUS and PHEBE] SILVIUS Sweet Phebe, do not scorn me; do not, Phebe; Say that you love me not, but say not so In bitterness. The common executioner, Whose heart the accustom'd sight of death makes hard, Falls not the axe upon the humbled neck But first begs pardon: will you sterner be Than he that dies and lives by bloody drops? [Enter ROSALIND, CELIA, and CORIN, behind] PHEBE I would not be thy executioner: I fly thee, for I would not injure thee. Thou tell'st me there is murder in mine eye: 'Tis pretty, sure, and very probable, That eyes, that are the frail'st and softest things, Who shut their coward gates on atomies, Should be call'd tyrants, butchers, murderers! Now I do frown on thee with all my heart; And if mine eyes can wound, now let them kill thee: Now counterfeit to swoon; why now fall down; Or if thou canst not, O, for shame, for shame, Lie not, to say mine eyes are murderers! Now show the wound mine eye hath made in thee: Scratch thee but with a pin, and there remains Some scar of it; lean but upon a rush, The cicatrice and capable impressure Thy palm some moment keeps; but now mine eyes, Which I have darted at thee, hurt thee not, Nor, I am sure, there is no force in eyes That can do hurt. SILVIUS O dear Phebe, If ever,--as that ever may be near,-- You meet in some fresh cheek the power of fancy, Then shall you know the wounds invisible That love's keen arrows make. PHEBE But till that time Come not thou near me: and when that time comes, Afflict me with thy mocks, pity me not; As till that time I shall not pity thee. ROSALIND And why, I pray you? Who might be your mother, That you insult, exult, and all at once, Over the wretched? What though you have no beauty,-- As, by my faith, I see no more in you Than without candle may go dark to bed-- Must you be therefore proud and pitiless? Why, what means this? Why do you look on me? I see no more in you than in the ordinary Of nature's sale-work. 'Od's my little life, I think she means to tangle my eyes too! No, faith, proud mistress, hope not after it: 'Tis not your inky brows, your black silk hair, Your bugle eyeballs, nor your cheek of cream, That can entame my spirits to your worship. You foolish shepherd, wherefore do you follow her, Like foggy south puffing with wind and rain? You are a thousand times a properer man Than she a woman: 'tis such fools as you That makes the world full of ill-favour'd children: 'Tis not her glass, but you, that flatters her; And out of you she sees herself more proper Than any of her lineaments can show her. But, mistress, know yourself: down on your knees, And thank heaven, fasting, for a good man's love: For I must tell you friendly in your ear, Sell when you can: you are not for all markets: Cry the man mercy; love him; take his offer: Foul is most foul, being foul to be a scoffer. So take her to thee, shepherd: fare you well. PHEBE Sweet youth, I pray you, chide a year together: I had rather hear you chide than this man woo. ROSALIND He's fallen in love with your foulness and she'll fall in love with my anger. If it be so, as fast as she answers thee with frowning looks, I'll sauce her with bitter words. Why look you so upon me? PHEBE For no ill will I bear you. ROSALIND I pray you, do not fall in love with me, For I am falser than vows made in wine: Besides, I like you not. If you will know my house, 'Tis at the tuft of olives here hard by. Will you go, sister? Shepherd, ply her hard. Come, sister. Shepherdess, look on him better, And be not proud: though all the world could see, None could be so abused in sight as he. Come, to our flock. [Exeunt ROSALIND, CELIA and CORIN] PHEBE Dead Shepherd, now I find thy saw of might, 'Who ever loved that loved not at first sight?' SILVIUS Sweet Phebe,-- PHEBE Ha, what say'st thou, Silvius? SILVIUS Sweet Phebe, pity me. PHEBE Why, I am sorry for thee, gentle Silvius. SILVIUS Wherever sorrow is, relief would be: If you do sorrow at my grief in love, By giving love your sorrow and my grief Were both extermined. PHEBE Thou hast my love: is not that neighbourly? SILVIUS I would have you. PHEBE Why, that were covetousness. Silvius, the time was that I hated thee, And yet it is not that I bear thee love; But since that thou canst talk of love so well, Thy company, which erst was irksome to me, I will endure, and I'll employ thee too: But do not look for further recompense Than thine own gladness that thou art employ'd. SILVIUS So holy and so perfect is my love, And I in such a poverty of grace, That I shall think it a most plenteous crop To glean the broken ears after the man That the main harvest reaps: loose now and then A scatter'd smile, and that I'll live upon. PHEBE Know'st now the youth that spoke to me erewhile? SILVIUS Not very well, but I have met him oft; And he hath bought the cottage and the bounds That the old carlot once was master of. PHEBE Think not I love him, though I ask for him: 'Tis but a peevish boy; yet he talks well; But what care I for words? yet words do well When he that speaks them pleases those that hear. It is a pretty youth: not very pretty: But, sure, he's proud, and yet his pride becomes him: He'll make a proper man: the best thing in him Is his complexion; and faster than his tongue Did make offence his eye did heal it up. He is not very tall; yet for his years he's tall: His leg is but so so; and yet 'tis well: There was a pretty redness in his lip, A little riper and more lusty red Than that mix'd in his cheek; 'twas just the difference Between the constant red and mingled damask. There be some women, Silvius, had they mark'd him In parcels as I did, would have gone near To fall in love with him; but, for my part, I love him not nor hate him not; and yet I have more cause to hate him than to love him: For what had he to do to chide at me? He said mine eyes were black and my hair black: And, now I am remember'd, scorn'd at me: I marvel why I answer'd not again: But that's all one; omittance is no quittance. I'll write to him a very taunting letter, And thou shalt bear it: wilt thou, Silvius? SILVIUS Phebe, with all my heart. PHEBE I'll write it straight; The matter's in my head and in my heart: I will be bitter with him and passing short. Go with me, Silvius. [Exeunt] AS YOU LIKE IT ACT IV SCENE I The forest. [Enter ROSALIND, CELIA, and JAQUES] JAQUES I prithee, pretty youth, let me be better acquainted with thee. ROSALIND They say you are a melancholy fellow. JAQUES I am so; I do love it better than laughing. ROSALIND Those that are in extremity of either are abominable fellows and betray themselves to every modern censure worse than drunkards. JAQUES Why, 'tis good to be sad and say nothing. ROSALIND Why then, 'tis good to be a post. JAQUES I have neither the scholar's melancholy, which is emulation, nor the musician's, which is fantastical, nor the courtier's, which is proud, nor the soldier's, which is ambitious, nor the lawyer's, which is politic, nor the lady's, which is nice, nor the lover's, which is all these: but it is a melancholy of mine own, compounded of many simples, extracted from many objects, and indeed the sundry's contemplation of my travels, in which my often rumination wraps me m a most humorous sadness. ROSALIND A traveller! By my faith, you have great reason to be sad: I fear you have sold your own lands to see other men's; then, to have seen much and to have nothing, is to have rich eyes and poor hands. JAQUES Yes, I have gained my experience. ROSALIND And your experience makes you sad: I had rather have a fool to make me merry than experience to make me sad; and to travel for it too! [Enter ORLANDO] ORLANDO Good day and happiness, dear Rosalind! JAQUES Nay, then, God be wi' you, an you talk in blank verse. [Exit] ROSALIND Farewell, Monsieur Traveller: look you lisp and wear strange suits, disable all the benefits of your own country, be out of love with your nativity and almost chide God for making you that countenance you are, or I will scarce think you have swam in a gondola. Why, how now, Orlando! where have you been all this while? You a lover! An you serve me such another trick, never come in my sight more. ORLANDO My fair Rosalind, I come within an hour of my promise. ROSALIND Break an hour's promise in love! He that will divide a minute into a thousand parts and break but a part of the thousandth part of a minute in the affairs of love, it may be said of him that Cupid hath clapped him o' the shoulder, but I'll warrant him heart-whole. ORLANDO Pardon me, dear Rosalind. ROSALIND Nay, an you be so tardy, come no more in my sight: I had as lief be wooed of a snail. ORLANDO Of a snail? ROSALIND Ay, of a snail; for though he comes slowly, he carries his house on his head; a better jointure, I think, than you make a woman: besides he brings his destiny with him. ORLANDO What's that? ROSALIND Why, horns, which such as you are fain to be beholding to your wives for: but he comes armed in his fortune and prevents the slander of his wife. ORLANDO Virtue is no horn-maker; and my Rosalind is virtuous. ROSALIND And I am your Rosalind. CELIA It pleases him to call you so; but he hath a Rosalind of a better leer than you. ROSALIND Come, woo me, woo me, for now I am in a holiday humour and like enough to consent. What would you say to me now, an I were your very very Rosalind? ORLANDO I would kiss before I spoke. ROSALIND Nay, you were better speak first, and when you were gravelled for lack of matter, you might take occasion to kiss. Very good orators, when they are out, they will spit; and for lovers lacking--God warn us!--matter, the cleanliest shift is to kiss. ORLANDO How if the kiss be denied? ROSALIND Then she puts you to entreaty, and there begins new matter. ORLANDO Who could be out, being before his beloved mistress? ROSALIND Marry, that should you, if I were your mistress, or I should think my honesty ranker than my wit. ORLANDO What, of my suit? ROSALIND Not out of your apparel, and yet out of your suit. Am not I your Rosalind? ORLANDO I take some joy to say you are, because I would be talking of her. ROSALIND Well in her person I say I will not have you. ORLANDO Then in mine own person I die. ROSALIND No, faith, die by attorney. The poor world is almost six thousand years old, and in all this time there was not any man died in his own person, videlicit, in a love-cause. Troilus had his brains dashed out with a Grecian club; yet he did what he could to die before, and he is one of the patterns of love. Leander, he would have lived many a fair year, though Hero had turned nun, if it had not been for a hot midsummer night; for, good youth, he went but forth to wash him in the Hellespont and being taken with the cramp was drowned and the foolish coroners of that age found it was 'Hero of Sestos.' But these are all lies: men have died from time to time and worms have eaten them, but not for love. ORLANDO I would not have my right Rosalind of this mind, for, I protest, her frown might kill me. ROSALIND By this hand, it will not kill a fly. But come, now I will be your Rosalind in a more coming-on disposition, and ask me what you will. I will grant it. ORLANDO Then love me, Rosalind. ROSALIND Yes, faith, will I, Fridays and Saturdays and all. ORLANDO And wilt thou have me? ROSALIND Ay, and twenty such. ORLANDO What sayest thou? ROSALIND Are you not good? ORLANDO I hope so. ROSALIND Why then, can one desire too much of a good thing? Come, sister, you shall be the priest and marry us. Give me your hand, Orlando. What do you say, sister? ORLANDO Pray thee, marry us. CELIA I cannot say the words. ROSALIND You must begin, 'Will you, Orlando--' CELIA Go to. Will you, Orlando, have to wife this Rosalind? ORLANDO I will. ROSALIND Ay, but when? ORLANDO Why now; as fast as she can marry us. ROSALIND Then you must say 'I take thee, Rosalind, for wife.' ORLANDO I take thee, Rosalind, for wife. ROSALIND I might ask you for your commission; but I do take thee, Orlando, for my husband: there's a girl goes before the priest; and certainly a woman's thought runs before her actions. ORLANDO So do all thoughts; they are winged. ROSALIND Now tell me how long you would have her after you have possessed her. ORLANDO For ever and a day. ROSALIND Say 'a day,' without the 'ever.' No, no, Orlando; men are April when they woo, December when they wed: maids are May when they are maids, but the sky changes when they are wives. I will be more jealous of thee than a Barbary cock-pigeon over his hen, more clamorous than a parrot against rain, more new-fangled than an ape, more giddy in my desires than a monkey: I will weep for nothing, like Diana in the fountain, and I will do that when you are disposed to be merry; I will laugh like a hyen, and that when thou art inclined to sleep. ORLANDO But will my Rosalind do so? ROSALIND By my life, she will do as I do. ORLANDO O, but she is wise. ROSALIND Or else she could not have the wit to do this: the wiser, the waywarder: make the doors upon a woman's wit and it will out at the casement; shut that and 'twill out at the key-hole; stop that, 'twill fly with the smoke out at the chimney. ORLANDO A man that had a wife with such a wit, he might say 'Wit, whither wilt?' ROSALIND Nay, you might keep that cheque for it till you met your wife's wit going to your neighbour's bed. ORLANDO And what wit could wit have to excuse that? ROSALIND Marry, to say she came to seek you there. You shall never take her without her answer, unless you take her without her tongue. O, that woman that cannot make her fault her husband's occasion, let her never nurse her child herself, for she will breed it like a fool! ORLANDO For these two hours, Rosalind, I will leave thee. ROSALIND Alas! dear love, I cannot lack thee two hours. ORLANDO I must attend the duke at dinner: by two o'clock I will be with thee again. ROSALIND Ay, go your ways, go your ways; I knew what you would prove: my friends told me as much, and I thought no less: that flattering tongue of yours won me: 'tis but one cast away, and so, come, death! Two o'clock is your hour? ORLANDO Ay, sweet Rosalind. ROSALIND By my troth, and in good earnest, and so God mend me, and by all pretty oaths that are not dangerous, if you break one jot of your promise or come one minute behind your hour, I will think you the most pathetical break-promise and the most hollow lover and the most unworthy of her you call Rosalind that may be chosen out of the gross band of the unfaithful: therefore beware my censure and keep your promise. ORLANDO With no less religion than if thou wert indeed my Rosalind: so adieu. ROSALIND Well, Time is the old justice that examines all such offenders, and let Time try: adieu. [Exit ORLANDO] CELIA You have simply misused our sex in your love-prate: we must have your doublet and hose plucked over your head, and show the world what the bird hath done to her own nest. ROSALIND O coz, coz, coz, my pretty little coz, that thou didst know how many fathom deep I am in love! But it cannot be sounded: my affection hath an unknown bottom, like the bay of Portugal. CELIA Or rather, bottomless, that as fast as you pour affection in, it runs out. ROSALIND No, that same wicked bastard of Venus that was begot of thought, conceived of spleen and born of madness, that blind rascally boy that abuses every one's eyes because his own are out, let him be judge how deep I am in love. I'll tell thee, Aliena, I cannot be out of the sight of Orlando: I'll go find a shadow and sigh till he come. CELIA And I'll sleep. [Exeunt] AS YOU LIKE IT ACT IV SCENE II The forest. [Enter JAQUES, Lords, and Foresters] JAQUES Which is he that killed the deer? A Lord Sir, it was I. JAQUES Let's present him to the duke, like a Roman conqueror; and it would do well to set the deer's horns upon his head, for a branch of victory. Have you no song, forester, for this purpose? Forester Yes, sir. JAQUES Sing it: 'tis no matter how it be in tune, so it make noise enough. SONG. Forester What shall he have that kill'd the deer? His leather skin and horns to wear. Then sing him home; [The rest shall bear this burden] Take thou no scorn to wear the horn; It was a crest ere thou wast born: Thy father's father wore it, And thy father bore it: The horn, the horn, the lusty horn Is not a thing to laugh to scorn. [Exeunt] AS YOU LIKE IT ACT IV SCENE III The forest. [Enter ROSALIND and CELIA] ROSALIND How say you now? Is it not past two o'clock? and here much Orlando! CELIA I warrant you, with pure love and troubled brain, he hath ta'en his bow and arrows and is gone forth to sleep. Look, who comes here. [Enter SILVIUS] SILVIUS My errand is to you, fair youth; My gentle Phebe bid me give you this: I know not the contents; but, as I guess By the stern brow and waspish action Which she did use as she was writing of it, It bears an angry tenor: pardon me: I am but as a guiltless messenger. ROSALIND Patience herself would startle at this letter And play the swaggerer; bear this, bear all: She says I am not fair, that I lack manners; She calls me proud, and that she could not love me, Were man as rare as phoenix. 'Od's my will! Her love is not the hare that I do hunt: Why writes she so to me? Well, shepherd, well, This is a letter of your own device. SILVIUS No, I protest, I know not the contents: Phebe did write it. ROSALIND Come, come, you are a fool And turn'd into the extremity of love. I saw her hand: she has a leathern hand. A freestone-colour'd hand; I verily did think That her old gloves were on, but 'twas her hands: She has a huswife's hand; but that's no matter: I say she never did invent this letter; This is a man's invention and his hand. SILVIUS Sure, it is hers. ROSALIND Why, 'tis a boisterous and a cruel style. A style for-challengers; why, she defies me, Like Turk to Christian: women's gentle brain Could not drop forth such giant-rude invention Such Ethiope words, blacker in their effect Than in their countenance. Will you hear the letter? SILVIUS So please you, for I never heard it yet; Yet heard too much of Phebe's cruelty. ROSALIND She Phebes me: mark how the tyrant writes. [Reads] Art thou god to shepherd turn'd, That a maiden's heart hath burn'd? Can a woman rail thus? SILVIUS Call you this railing? ROSALIND [Reads] Why, thy godhead laid apart, Warr'st thou with a woman's heart? Did you ever hear such railing? Whiles the eye of man did woo me, That could do no vengeance to me. Meaning me a beast. If the scorn of your bright eyne Have power to raise such love in mine, Alack, in me what strange effect Would they work in mild aspect! Whiles you chid me, I did love; How then might your prayers move! He that brings this love to thee Little knows this love in me: And by him seal up thy mind; Whether that thy youth and kind Will the faithful offer take Of me and all that I can make; Or else by him my love deny, And then I'll study how to die. SILVIUS Call you this chiding? CELIA Alas, poor shepherd! ROSALIND Do you pity him? no, he deserves no pity. Wilt thou love such a woman? What, to make thee an instrument and play false strains upon thee! not to be endured! Well, go your way to her, for I see love hath made thee a tame snake, and say this to her: that if she love me, I charge her to love thee; if she will not, I will never have her unless thou entreat for her. If you be a true lover, hence, and not a word; for here comes more company. [Exit SILVIUS] [Enter OLIVER] OLIVER Good morrow, fair ones: pray you, if you know, Where in the purlieus of this forest stands A sheep-cote fenced about with olive trees? CELIA West of this place, down in the neighbour bottom: The rank of osiers by the murmuring stream Left on your right hand brings you to the place. But at this hour the house doth keep itself; There's none within. OLIVER If that an eye may profit by a tongue, Then should I know you by description; Such garments and such years: 'The boy is fair, Of female favour, and bestows himself Like a ripe sister: the woman low And browner than her brother.' Are not you The owner of the house I did inquire for? CELIA It is no boast, being ask'd, to say we are. OLIVER Orlando doth commend him to you both, And to that youth he calls his Rosalind He sends this bloody napkin. Are you he? ROSALIND I am: what must we understand by this? OLIVER Some of my shame; if you will know of me What man I am, and how, and why, and where This handkercher was stain'd. CELIA I pray you, tell it. OLIVER When last the young Orlando parted from you He left a promise to return again Within an hour, and pacing through the forest, Chewing the food of sweet and bitter fancy, Lo, what befell! he threw his eye aside, And mark what object did present itself: Under an oak, whose boughs were moss'd with age And high top bald with dry antiquity, A wretched ragged man, o'ergrown with hair, Lay sleeping on his back: about his neck A green and gilded snake had wreathed itself, Who with her head nimble in threats approach'd The opening of his mouth; but suddenly, Seeing Orlando, it unlink'd itself, And with indented glides did slip away Into a bush: under which bush's shade A lioness, with udders all drawn dry, Lay couching, head on ground, with catlike watch, When that the sleeping man should stir; for 'tis The royal disposition of that beast To prey on nothing that doth seem as dead: This seen, Orlando did approach the man And found it was his brother, his elder brother. CELIA O, I have heard him speak of that same brother; And he did render him the most unnatural That lived amongst men. OLIVER And well he might so do, For well I know he was unnatural. ROSALIND But, to Orlando: did he leave him there, Food to the suck'd and hungry lioness? OLIVER Twice did he turn his back and purposed so; But kindness, nobler ever than revenge, And nature, stronger than his just occasion, Made him give battle to the lioness, Who quickly fell before him: in which hurtling From miserable slumber I awaked. CELIA Are you his brother? ROSALIND Wast you he rescued? CELIA Was't you that did so oft contrive to kill him? OLIVER 'Twas I; but 'tis not I I do not shame To tell you what I was, since my conversion So sweetly tastes, being the thing I am. ROSALIND But, for the bloody napkin? OLIVER By and by. When from the first to last betwixt us two Tears our recountments had most kindly bathed, As how I came into that desert place:-- In brief, he led me to the gentle duke, Who gave me fresh array and entertainment, Committing me unto my brother's love; Who led me instantly unto his cave, There stripp'd himself, and here upon his arm The lioness had torn some flesh away, Which all this while had bled; and now he fainted And cried, in fainting, upon Rosalind. Brief, I recover'd him, bound up his wound; And, after some small space, being strong at heart, He sent me hither, stranger as I am, To tell this story, that you might excuse His broken promise, and to give this napkin Dyed in his blood unto the shepherd youth That he in sport doth call his Rosalind. [ROSALIND swoons] CELIA Why, how now, Ganymede! sweet Ganymede! OLIVER Many will swoon when they do look on blood. CELIA There is more in it. Cousin Ganymede! OLIVER Look, he recovers. ROSALIND I would I were at home. CELIA We'll lead you thither. I pray you, will you take him by the arm? OLIVER Be of good cheer, youth: you a man! you lack a man's heart. ROSALIND I do so, I confess it. Ah, sirrah, a body would think this was well counterfeited! I pray you, tell your brother how well I counterfeited. Heigh-ho! OLIVER This was not counterfeit: there is too great testimony in your complexion that it was a passion of earnest. ROSALIND Counterfeit, I assure you. OLIVER Well then, take a good heart and counterfeit to be a man. ROSALIND So I do: but, i' faith, I should have been a woman by right. CELIA Come, you look paler and paler: pray you, draw homewards. Good sir, go with us. OLIVER That will I, for I must bear answer back How you excuse my brother, Rosalind. ROSALIND I shall devise something: but, I pray you, commend my counterfeiting to him. Will you go? [Exeunt] AS YOU LIKE IT ACT V SCENE I The forest. [Enter TOUCHSTONE and AUDREY] TOUCHSTONE We shall find a time, Audrey; patience, gentle Audrey. AUDREY Faith, the priest was good enough, for all the old gentleman's saying. TOUCHSTONE A most wicked Sir Oliver, Audrey, a most vile Martext. But, Audrey, there is a youth here in the forest lays claim to you. AUDREY Ay, I know who 'tis; he hath no interest in me in the world: here comes the man you mean. TOUCHSTONE It is meat and drink to me to see a clown: by my troth, we that have good wits have much to answer for; we shall be flouting; we cannot hold. [Enter WILLIAM] WILLIAM Good even, Audrey. AUDREY God ye good even, William. WILLIAM And good even to you, sir. TOUCHSTONE Good even, gentle friend. Cover thy head, cover thy head; nay, prithee, be covered. How old are you, friend? WILLIAM Five and twenty, sir. TOUCHSTONE A ripe age. Is thy name William? WILLIAM William, sir. TOUCHSTONE A fair name. Wast born i' the forest here? WILLIAM Ay, sir, I thank God. TOUCHSTONE 'Thank God;' a good answer. Art rich? WILLIAM Faith, sir, so so. TOUCHSTONE 'So so' is good, very good, very excellent good; and yet it is not; it is but so so. Art thou wise? WILLIAM Ay, sir, I have a pretty wit. TOUCHSTONE Why, thou sayest well. I do now remember a saying, 'The fool doth think he is wise, but the wise man knows himself to be a fool.' The heathen philosopher, when he had a desire to eat a grape, would open his lips when he put it into his mouth; meaning thereby that grapes were made to eat and lips to open. You do love this maid? WILLIAM I do, sir. TOUCHSTONE Give me your hand. Art thou learned? WILLIAM No, sir. TOUCHSTONE Then learn this of me: to have, is to have; for it is a figure in rhetoric that drink, being poured out of a cup into a glass, by filling the one doth empty the other; for all your writers do consent that ipse is he: now, you are not ipse, for I am he. WILLIAM Which he, sir? TOUCHSTONE He, sir, that must marry this woman. Therefore, you clown, abandon,--which is in the vulgar leave,--the society,--which in the boorish is company,--of this female,--which in the common is woman; which together is, abandon the society of this female, or, clown, thou perishest; or, to thy better understanding, diest; or, to wit I kill thee, make thee away, translate thy life into death, thy liberty into bondage: I will deal in poison with thee, or in bastinado, or in steel; I will bandy with thee in faction; I will o'errun thee with policy; I will kill thee a hundred and fifty ways: therefore tremble and depart. AUDREY Do, good William. WILLIAM God rest you merry, sir. [Exit] [Enter CORIN] CORIN Our master and mistress seeks you; come, away, away! TOUCHSTONE Trip, Audrey! trip, Audrey! I attend, I attend. [Exeunt] AS YOU LIKE IT ACT V SCENE II The forest. [Enter ORLANDO and OLIVER] ORLANDO Is't possible that on so little acquaintance you should like her? that but seeing you should love her? and loving woo? and, wooing, she should grant? and will you persever to enjoy her? OLIVER Neither call the giddiness of it in question, the poverty of her, the small acquaintance, my sudden wooing, nor her sudden consenting; but say with me, I love Aliena; say with her that she loves me; consent with both that we may enjoy each other: it shall be to your good; for my father's house and all the revenue that was old Sir Rowland's will I estate upon you, and here live and die a shepherd. ORLANDO You have my consent. Let your wedding be to-morrow: thither will I invite the duke and all's contented followers. Go you and prepare Aliena; for look you, here comes my Rosalind. [Enter ROSALIND] ROSALIND God save you, brother. OLIVER And you, fair sister. [Exit] ROSALIND O, my dear Orlando, how it grieves me to see thee wear thy heart in a scarf! ORLANDO It is my arm. ROSALIND I thought thy heart had been wounded with the claws of a lion. ORLANDO Wounded it is, but with the eyes of a lady. ROSALIND Did your brother tell you how I counterfeited to swoon when he showed me your handkerchief? ORLANDO Ay, and greater wonders than that. ROSALIND O, I know where you are: nay, 'tis true: there was never any thing so sudden but the fight of two rams and Caesar's thrasonical brag of 'I came, saw, and overcame:' for your brother and my sister no sooner met but they looked, no sooner looked but they loved, no sooner loved but they sighed, no sooner sighed but they asked one another the reason, no sooner knew the reason but they sought the remedy; and in these degrees have they made a pair of stairs to marriage which they will climb incontinent, or else be incontinent before marriage: they are in the very wrath of love and they will together; clubs cannot part them. ORLANDO They shall be married to-morrow, and I will bid the duke to the nuptial. But, O, how bitter a thing it is to look into happiness through another man's eyes! By so much the more shall I to-morrow be at the height of heart-heaviness, by how much I shall think my brother happy in having what he wishes for. ROSALIND Why then, to-morrow I cannot serve your turn for Rosalind? ORLANDO I can live no longer by thinking. ROSALIND I will weary you then no longer with idle talking. Know of me then, for now I speak to some purpose, that I know you are a gentleman of good conceit: I speak not this that you should bear a good opinion of my knowledge, insomuch I say I know you are; neither do I labour for a greater esteem than may in some little measure draw a belief from you, to do yourself good and not to grace me. Believe then, if you please, that I can do strange things: I have, since I was three year old, conversed with a magician, most profound in his art and yet not damnable. If you do love Rosalind so near the heart as your gesture cries it out, when your brother marries Aliena, shall you marry her: I know into what straits of fortune she is driven; and it is not impossible to me, if it appear not inconvenient to you, to set her before your eyes tomorrow human as she is and without any danger. ORLANDO Speakest thou in sober meanings? ROSALIND By my life, I do; which I tender dearly, though I say I am a magician. Therefore, put you in your best array: bid your friends; for if you will be married to-morrow, you shall, and to Rosalind, if you will. [Enter SILVIUS and PHEBE] Look, here comes a lover of mine and a lover of hers. PHEBE Youth, you have done me much ungentleness, To show the letter that I writ to you. ROSALIND I care not if I have: it is my study To seem despiteful and ungentle to you: You are there followed by a faithful shepherd; Look upon him, love him; he worships you. PHEBE Good shepherd, tell this youth what 'tis to love. SILVIUS It is to be all made of sighs and tears; And so am I for Phebe. PHEBE And I for Ganymede. ORLANDO And I for Rosalind. ROSALIND And I for no woman. SILVIUS It is to be all made of faith and service; And so am I for Phebe. PHEBE And I for Ganymede. ORLANDO And I for Rosalind. ROSALIND And I for no woman. SILVIUS It is to be all made of fantasy, All made of passion and all made of wishes, All adoration, duty, and observance, All humbleness, all patience and impatience, All purity, all trial, all observance; And so am I for Phebe. PHEBE And so am I for Ganymede. ORLANDO And so am I for Rosalind. ROSALIND And so am I for no woman. PHEBE If this be so, why blame you me to love you? SILVIUS If this be so, why blame you me to love you? ORLANDO If this be so, why blame you me to love you? ROSALIND Who do you speak to, 'Why blame you me to love you?' ORLANDO To her that is not here, nor doth not hear. ROSALIND Pray you, no more of this; 'tis like the howling of Irish wolves against the moon. [To SILVIUS] I will help you, if I can: [To PHEBE] I would love you, if I could. To-morrow meet me all together. [To PHEBE] I will marry you, if ever I marry woman, and I'll be married to-morrow: [To ORLANDO] I will satisfy you, if ever I satisfied man, and you shall be married to-morrow: [To SILVIUS] I will content you, if what pleases you contents you, and you shall be married to-morrow. [To ORLANDO] As you love Rosalind, meet: [To SILVIUS] as you love Phebe, meet: and as I love no woman, I'll meet. So fare you well: I have left you commands. SILVIUS I'll not fail, if I live. PHEBE Nor I. ORLANDO Nor I. [Exeunt] AS YOU LIKE IT ACT V SCENE III The forest. [Enter TOUCHSTONE and AUDREY] TOUCHSTONE To-morrow is the joyful day, Audrey; to-morrow will we be married. AUDREY I do desire it with all my heart; and I hope it is no dishonest desire to desire to be a woman of the world. Here comes two of the banished duke's pages. [Enter two Pages] First Page Well met, honest gentleman. TOUCHSTONE By my troth, well met. Come, sit, sit, and a song. Second Page We are for you: sit i' the middle. First Page Shall we clap into't roundly, without hawking or spitting or saying we are hoarse, which are the only prologues to a bad voice? Second Page I'faith, i'faith; and both in a tune, like two gipsies on a horse. SONG. It was a lover and his lass, With a hey, and a ho, and a hey nonino, That o'er the green corn-field did pass In the spring time, the only pretty ring time, When birds do sing, hey ding a ding, ding: Sweet lovers love the spring. Between the acres of the rye, With a hey, and a ho, and a hey nonino These pretty country folks would lie, In spring time, &c. This carol they began that hour, With a hey, and a ho, and a hey nonino, How that a life was but a flower In spring time, &c. And therefore take the present time, With a hey, and a ho, and a hey nonino; For love is crowned with the prime In spring time, &c. TOUCHSTONE Truly, young gentlemen, though there was no great matter in the ditty, yet the note was very untuneable. First Page You are deceived, sir: we kept time, we lost not our time. TOUCHSTONE By my troth, yes; I count it but time lost to hear such a foolish song. God be wi' you; and God mend your voices! Come, Audrey. [Exeunt] AS YOU LIKE IT ACT V SCENE IV The forest. [Enter DUKE SENIOR, AMIENS, JAQUES, ORLANDO, OLIVER, and CELIA] DUKE SENIOR Dost thou believe, Orlando, that the boy Can do all this that he hath promised? ORLANDO I sometimes do believe, and sometimes do not; As those that fear they hope, and know they fear. [Enter ROSALIND, SILVIUS, and PHEBE] ROSALIND Patience once more, whiles our compact is urged: You say, if I bring in your Rosalind, You will bestow her on Orlando here? DUKE SENIOR That would I, had I kingdoms to give with her. ROSALIND And you say, you will have her, when I bring her? ORLANDO That would I, were I of all kingdoms king. ROSALIND You say, you'll marry me, if I be willing? PHEBE That will I, should I die the hour after. ROSALIND But if you do refuse to marry me, You'll give yourself to this most faithful shepherd? PHEBE So is the bargain. ROSALIND You say, that you'll have Phebe, if she will? SILVIUS Though to have her and death were both one thing. ROSALIND I have promised to make all this matter even. Keep you your word, O duke, to give your daughter; You yours, Orlando, to receive his daughter: Keep your word, Phebe, that you'll marry me, Or else refusing me, to wed this shepherd: Keep your word, Silvius, that you'll marry her. If she refuse me: and from hence I go, To make these doubts all even. [Exeunt ROSALIND and CELIA] DUKE SENIOR I do remember in this shepherd boy Some lively touches of my daughter's favour. ORLANDO My lord, the first time that I ever saw him Methought he was a brother to your daughter: But, my good lord, this boy is forest-born, And hath been tutor'd in the rudiments Of many desperate studies by his uncle, Whom he reports to be a great magician, Obscured in the circle of this forest. [Enter TOUCHSTONE and AUDREY] JAQUES There is, sure, another flood toward, and these couples are coming to the ark. Here comes a pair of very strange beasts, which in all tongues are called fools. TOUCHSTONE Salutation and greeting to you all! JAQUES Good my lord, bid him welcome: this is the motley-minded gentleman that I have so often met in the forest: he hath been a courtier, he swears. TOUCHSTONE If any man doubt that, let him put me to my purgation. I have trod a measure; I have flattered a lady; I have been politic with my friend, smooth with mine enemy; I have undone three tailors; I have had four quarrels, and like to have fought one. JAQUES And how was that ta'en up? TOUCHSTONE Faith, we met, and found the quarrel was upon the seventh cause. JAQUES How seventh cause? Good my lord, like this fellow. DUKE SENIOR I like him very well. TOUCHSTONE God 'ild you, sir; I desire you of the like. I press in here, sir, amongst the rest of the country copulatives, to swear and to forswear: according as marriage binds and blood breaks: a poor virgin, sir, an ill-favoured thing, sir, but mine own; a poor humour of mine, sir, to take that that no man else will: rich honesty dwells like a miser, sir, in a poor house; as your pearl in your foul oyster. DUKE SENIOR By my faith, he is very swift and sententious. TOUCHSTONE According to the fool's bolt, sir, and such dulcet diseases. JAQUES But, for the seventh cause; how did you find the quarrel on the seventh cause? TOUCHSTONE Upon a lie seven times removed:--bear your body more seeming, Audrey:--as thus, sir. I did dislike the cut of a certain courtier's beard: he sent me word, if I said his beard was not cut well, he was in the mind it was: this is called the Retort Courteous. If I sent him word again 'it was not well cut,' he would send me word, he cut it to please himself: this is called the Quip Modest. If again 'it was not well cut,' he disabled my judgment: this is called the Reply Churlish. If again 'it was not well cut,' he would answer, I spake not true: this is called the Reproof Valiant. If again 'it was not well cut,' he would say I lied: this is called the Counter-cheque Quarrelsome: and so to the Lie Circumstantial and the Lie Direct. JAQUES And how oft did you say his beard was not well cut? TOUCHSTONE I durst go no further than the Lie Circumstantial, nor he durst not give me the Lie Direct; and so we measured swords and parted. JAQUES Can you nominate in order now the degrees of the lie? TOUCHSTONE O sir, we quarrel in print, by the book; as you have books for good manners: I will name you the degrees. The first, the Retort Courteous; the second, the Quip Modest; the third, the Reply Churlish; the fourth, the Reproof Valiant; the fifth, the Countercheque Quarrelsome; the sixth, the Lie with Circumstance; the seventh, the Lie Direct. All these you may avoid but the Lie Direct; and you may avoid that too, with an If. I knew when seven justices could not take up a quarrel, but when the parties were met themselves, one of them thought but of an If, as, 'If you said so, then I said so;' and they shook hands and swore brothers. Your If is the only peacemaker; much virtue in If. JAQUES Is not this a rare fellow, my lord? he's as good at any thing and yet a fool. DUKE SENIOR He uses his folly like a stalking-horse and under the presentation of that he shoots his wit. [Enter HYMEN, ROSALIND, and CELIA] [Still Music] HYMEN Then is there mirth in heaven, When earthly things made even Atone together. Good duke, receive thy daughter Hymen from heaven brought her, Yea, brought her hither, That thou mightst join her hand with his Whose heart within his bosom is. ROSALIND [To DUKE SENIOR] To you I give myself, for I am yours. [To ORLANDO] To you I give myself, for I am yours. DUKE SENIOR If there be truth in sight, you are my daughter. ORLANDO If there be truth in sight, you are my Rosalind. PHEBE If sight and shape be true, Why then, my love adieu! ROSALIND I'll have no father, if you be not he: I'll have no husband, if you be not he: Nor ne'er wed woman, if you be not she. HYMEN Peace, ho! I bar confusion: 'Tis I must make conclusion Of these most strange events: Here's eight that must take hands To join in Hymen's bands, If truth holds true contents. You and you no cross shall part: You and you are heart in heart You to his love must accord, Or have a woman to your lord: You and you are sure together, As the winter to foul weather. Whiles a wedlock-hymn we sing, Feed yourselves with questioning; That reason wonder may diminish, How thus we met, and these things finish. SONG. Wedding is great Juno's crown: O blessed bond of board and bed! 'Tis Hymen peoples every town; High wedlock then be honoured: Honour, high honour and renown, To Hymen, god of every town! DUKE SENIOR O my dear niece, welcome thou art to me! Even daughter, welcome, in no less degree. PHEBE I will not eat my word, now thou art mine; Thy faith my fancy to thee doth combine. [Enter JAQUES DE BOYS] JAQUES DE BOYS Let me have audience for a word or two: I am the second son of old Sir Rowland, That bring these tidings to this fair assembly. Duke Frederick, hearing how that every day Men of great worth resorted to this forest, Address'd a mighty power; which were on foot, In his own conduct, purposely to take His brother here and put him to the sword: And to the skirts of this wild wood he came; Where meeting with an old religious man, After some question with him, was converted Both from his enterprise and from the world, His crown bequeathing to his banish'd brother, And all their lands restored to them again That were with him exiled. This to be true, I do engage my life. DUKE SENIOR Welcome, young man; Thou offer'st fairly to thy brothers' wedding: To one his lands withheld, and to the other A land itself at large, a potent dukedom. First, in this forest, let us do those ends That here were well begun and well begot: And after, every of this happy number That have endured shrewd days and nights with us Shall share the good of our returned fortune, According to the measure of their states. Meantime, forget this new-fall'n dignity And fall into our rustic revelry. Play, music! And you, brides and bridegrooms all, With measure heap'd in joy, to the measures fall. JAQUES Sir, by your patience. If I heard you rightly, The duke hath put on a religious life And thrown into neglect the pompous court? JAQUES DE BOYS He hath. JAQUES To him will I : out of these convertites There is much matter to be heard and learn'd. [To DUKE SENIOR] You to your former honour I bequeath; Your patience and your virtue well deserves it: [To ORLANDO] You to a love that your true faith doth merit: [To OLIVER] You to your land and love and great allies: [To SILVIUS] You to a long and well-deserved bed: [To TOUCHSTONE] And you to wrangling; for thy loving voyage Is but for two months victuall'd. So, to your pleasures: I am for other than for dancing measures. DUKE SENIOR Stay, Jaques, stay. JAQUES To see no pastime I what you would have I'll stay to know at your abandon'd cave. [Exit] DUKE SENIOR Proceed, proceed: we will begin these rites, As we do trust they'll end, in true delights. [A dance] AS YOU LIKE IT EPILOGUE ROSALIND It is not the fashion to see the lady the epilogue; but it is no more unhandsome than to see the lord the prologue. If it be true that good wine needs no bush, 'tis true that a good play needs no epilogue; yet to good wine they do use good bushes, and good plays prove the better by the help of good epilogues. What a case am I in then, that am neither a good epilogue nor cannot insinuate with you in the behalf of a good play! I am not furnished like a beggar, therefore to beg will not become me: my way is to conjure you; and I'll begin with the women. I charge you, O women, for the love you bear to men, to like as much of this play as please you: and I charge you, O men, for the love you bear to women--as I perceive by your simpering, none of you hates them--that between you and the women the play may please. If I were a woman I would kiss as many of you as had beards that pleased me, complexions that liked me and breaths that I defied not: and, I am sure, as many as have good beards or good faces or sweet breaths will, for my kind offer, when I make curtsy, bid me farewell. [Exeunt] compress-1.2.1/snappy/testdata/fireworks.jpeg000066400000000000000000003603251303637052300213660ustar00rootroot00000000000000JFIFHHC      C    S!1AQa"q 2#B $3RCbr4S%cs6DdvB!1AQaq"2#BR3br$CS ? r2*ah"rƯhQ$Zbm c&ΠV&0*I6Im2rhHglxS2c fZ $Z35f:>DU MǜH,Dkx2O{M"$4\0jtR'dDh CabFvnі OySBC/`"*"_@lyƸ2rh"{\A͟ O8Q$zfYJ(HwIWVh8U6ʌ$eE, 4@D0(4L^Er{4Nt023od$lFI!&h lNTD\_~m: 1h99=!Hk#AV\@yB !c4?xll h'2Db SnFѕ&#@^"D vh6Aߴ_(D53%DnmzQ H"." !@@rx}$8#:3o&.hKԒO7ED}EhP m ̙hDHzF_1%$׍+Bi"\DHDh@XDDAf\thĆ"9}bdJeRa$ & Φ&}\"H 6R=*{D(B mxA*;@>o0YG[1 @(@D(r[hw?XmD5+ðٵ3Iք[6Y]օ&ôko΢{E`\x2O8L:j+CDBT53h,͑?(M"$[qhb%D\!Y(f0h, BVHlADAhPYny@ɗ{Xr_Ed?(lKW#ny0<^!! vW8[! ^xJ4/0?8% ~ `׼hm" QAeA#4ÓٻsDEW:/o1*%2 }rgMD Flؑ48m۴$3DFm%1Ѵa7 '6$Fvb@.[ϴCF}0K6h!gFEh D,P$1 4 h Z.FZ,rDL&,-"RŢՉ :ƨASDEW}6Ŏ+<"@9[A x{on?x] 'Q:BȐ@bDl9} >qbDU^766d􈨿h"wCd;X!۴h .#] VM@i!& @ q,@%/oW?T`SٹThX0#^ m"UٹO=Ј ֌hA;,UqHo !erZ!"lzD@wPjQ1)~ФTD̀ fߔ&nlZ-7TYXwBmqHa4$[rD}*$ABE,, ls݉H 2IP1P_qI\"L =DV,m 'w}8I-r9H X&k8mdXAH&=k46}4`}!Efz @ Tg]#?xQi$6d#Q00GDdsx $qh5_F6 K|Ln[OHb>`obx3*I-q~pr$I>v&#Ovѫ%$"+"(XZ=Ln׈)$T}V{ȅhCksi8cir1}"+m H DdRL)S4$rY7Bvƚx,|!%9oA Va}C{2@/k[oxV>С-h(!;qV=B\q/";?XJGIoVFMݡ DB,DϬL@!ݹ_x1t *&"DD,Y}++"YFܾ+" Т&Pl/r)a- $lLwЈ,͈Sro)+r4Ms @Dxmѐ2xEVJ܌ '*P@ xs(^NcBʔM[¹l ԑ&3;tg|}ŹBUj4IOv ܰckH$_-B{83$R*Oc*G`wD P$S&cxWR6=HD; ܒ&uWp+#-!"Ӫm!r *_!.-"md<@Ysd !":KhV q CD&DBǰ?@.{Cb ;n Y/j!'ktȉv6Ks +" gK4@!pmF$_*2X$%h<@6D6bb+aFawO+Q"9@~B7a\ $*"bvP d `$Dm (-o b٣))tK6bDF@7xR3 {`dw(긵R>їFl. تs4\FT@M<4adtIhBOh9<[ CBjX!oę$8&tF+@C@<%ed-uxY3cR@);F  $j ٻDdSWQnF/R!v@DhH@bO""df%IAH&9 9D`9{A@l/%d.@%{"h[ xEDD%#r E!4@D "oO(˓d%IPlˆ\o @@=DHIi-d9e;XHIx}ńe-L_roˑ$>^`8 +6@!FYw (ѧs"2!Qx΢}apY{;~OhIwI(Lo+c\[,hX!XqsQrcF܂a$[YXQY(]BD<@FÝD!eH,DMm!-$4%B̋Q!<ͯX"lQ0ߔaeGPMc4̥rgɣ5VKL bn?*ܤ_ 1Q11A38["Dj"*؁twȀfF,0YBInc$Ia *@\;!7CL&Fx}o "t&?@".F.6D.7F@RZIּiZ'Xz@7xf=DJ9E")7h 0;Bȃ/4@ &(=" 8b!" .߬ /lnQ0mv ]Bsߔ@;^"Hk#:o߬!?;!@4N>Q`yDBY(0K .oa"'ЕROj 0f _h5?h o+w{bFWhuCv-!-Dd@#ݠ4U"bR(E w6IDa!sȿxdO_hBsܢHRoxʷ6JT<Ȋnߡ"A[Y-i _.YYXжVDY,w"GѮИ&K(l+mLܢ2$yDk#VGЭ#I:f0m3ob,@3L oHF b K[{rq  27k!+%^V~q!(Mh!}܉w؎k tĝ,DLhR$hfBѐܷMd!+kh bС]EּF uqAr8b"͙Dh @Ȉm;BH t$9q7DL׈` poxDT,×"͢ ː j@Z"h |"g &n^! QO+ZlwfD" 4,B{DFIБ:CxH.Y&tY͈y<GGxD@鈀%n"!D}h&FӨߜDՆ78AkO4<#< Ş*!ۨ3D$˴z+;6,XEdE unQH=⢢g;$ DIS4&!P$ߞГD|̅ݺr$|Kw'„XHrL2D7ox+7(6R{ц&uRBH٠4:%ZhL=I&s`Z#;qmFDOR'9;D*,-gX\3$M4D{L U%b0 K*$Ƀw#"MnK$93" 7b CD;Lw>HIhm5AP'D $)853R%Aw"e "XuE@M:6IB)Mit6LRA>XUXl Z1` _s\  O)ꌕ{`6&+ @xlճ-ы$l4EODIѡBfh! @lX20Y#)/uD`,k,,UFidH)66bȟM6\3AMbodLüB=g4$ o1 X;IW->d%DE^!eP \@Zs!$mX=$? qvKVjҧ`OB!ݢ wt/ eh@v# Q ~*JI ˤpN'4&qe ƣfYlC /2#;ƈYD.T \הH$@hhH,ZD="}C`!#* mq͠hDNOwt"7a!#w0SAȄ]6IgFI" }#zt(sx" .b/DBK$eJsלePxW -l m] r"'^ 0ohP"4L(}@$C}2 ćX@LR4H hw5,hw"TAWé+ 2{D߬VZm!r!ETm*4WAR@*P-sbeEld)FC%d̔D̢ՒTI.q!f-ѠVߴIVbsDBAhd&}DD|T+Ry1FH 3D׹aZ^QkFɾѐuh[!b#( 34Z--􆆉oA#s&qhR"f!t"#d uۯHqA@[D# 71 ;tb$} P*"~M nztAHmjy)JV&:k<šbͣ}}F"-< .bLihK@%V+%6+!! I Q3&'ȉ!$<{АцF8 p" 7+` $4RsH}K0X1Kr4w&ʈ#Z {D@xrô@CDI#&͢d[\4[+$D1sx d^߮ )r/O1wxP{0 v$ܳ fxBȥ2Ȁ/^d)w`_D~0 !` 6#B, wԥh/2Rw2:11@dH7 lI~ a{9 0Ho #VcvxM.FpEc,,DبOh d0! _oYY[ [ J"I~bg4ht.[ql }t } جEXY۬dsBI6x6bsh"!",C'D_PHQ?@H Q1"D>@D h#DD[bvDLݺD&Cv COX ۴I $ahD4eV.#] '@f\DCc"-.h#$#~^"Eqf<}  Z"!$D9w;" "nq܄1ۼL"׌ -2h c Bhk*-b^!:n!*[Xdh3"2-X6x7w&6!9Sђ&o$1-w~6[?7F'}aF5(xVn12QVkHx@hKC`_$Ð.PcZDhzs P64MtNdKTٳN!1Ǔ,1naxy 3IKYNNj/e!9\ )(So,CBCbi"܄DrxrY2VdMPOLo-̈}D3$"F0~`b)K#",,*> a #q[Xm$Jgh;􈉯"@[hiD򀀒zv @/r02mkч&R)bd3JVv'9Oؿsis\G;qjdb2'I-3e(zAoYgZ{أ5:xOIE jU.sx?$WnW\)%[h["mkYk{Vik<@x,DD*Z.`XKD90LB3"DV@z#;D)EvD$V _ w#xX(D1ѧ{B($&?,;Z  }B% @V,"<-̀"xY\ԆׄGxXl!-WDB$} *&ul7ˬKA;bBhB!~];1 #$F]j Fl/2h˔ |# Cg]_VD@DF6$ȚH;`!LIGRvH˲Hb[A4eS`+*"IvCm /Z%`؆F?XՑn9aob=_1>,aD $i,_!xG#XbR>3AIa()6DBXxdݎ..TZZ$覑=IBN}f3ɍJG,SƂ_;MٴgN`K u 2[\L6Ƀh( nq"ֈۿKD_DŶLxص$׈k1Sxlw ,/( JAB4(Px7XͬQPIDp-,il~!JZ&%SIEJo]cл;cIQ >(ˑ7?ˢp' ZmcƚiB,}?CMZ?3.qmkj'N{4P a{? V4` eL6 -:/ffBڹ BeKht_nQ r!,FI$_k6!)fBR)q aCVą()-.DKNʕ :@}B[ ;0eVM]&t`lc?vbixsrL GG&g Bv'Y2z2ljRrK8UIt;rG(Dn(2(k<,^,F#*5ŷInM8Hx,1838sdʊdЕ\x&qGn~J;Ts.[?8%DJ [2d N-Z,ċ,w&M $<$ ngAp2:,D*Qyd9y9h"Z8W7a$&,QnQYrDUrzz^$]6ăCef\B2gq&#IFYW h54[AnX+)f 3D>N^ hzmx!+uhHRxh Iv6!p)> v)"hyQ oDF"ho C1'+D[BhE;D %`܍&ȋwh"H/ؤ!Z@I#8p8&|L3A* A 3 yGW׬$}rf_v,N]U]W-r"rt:E ~M}{^]yߡljOYtrNSk8Q4ϚE?uYYd}LiBC z n> :4rUv1N'K(XĤ3'aP$r2Vtj(:@K>֞RhN4Ih `;vs&l!J!6)X Om&XvF 6w",kvc#}Y$$=IhSg022-HJ .Y_EjI59j)T"\r%$]:8+i:]m>8$c7IҪI Ve(ԛ591c&::u4륞Sh>EjFg˙@7!wهL ~1 G6M:NORGKW:|X/y]N\x2J"^tQ S-'rQi[RGh=:2{ 󈈋]" KBH?"n" 4@WB[xDPY0DK%FH5r9sh4DD '!d?ȊÿNXY RDi\1E&0z1 r="TlnOQx d$kXMnvVD]6(Q#;\"{o_/YKFOl>+*C bέ n #)..aŠ*4mPD]DLRIY !> XD.=+a8ݢ! 54D\1 & {@BѢ @v2l CV"ohQ-#O8H9;,Jv/ȁ4 $Hk`'ci +=A$=#QVmKsgL'G⒗JOr̳z*r)6ZOX9`D{r6fYI%n5urkUJ@%p՟Ěr|AQwv Kr1;1SS698*H#@n6< g <&4HzySGk5~# zm#NTXzKv!,n'SQ9TǛ)4vnFJlKZ$ʌpm2Qn )` A1[S-n,9~#Ǫ)BRI7y4+v%H&~jLYIB&ReKU}$qIja rz9Em%~nO;iՒXiJU)Yxpu;9qӮtu87 6eT$+1԰E't9YN6YtIL,zjܝXG;9j}[>od%j^Yq c%8}$gK=} NWu->m̳'skG"dds"Q! lA" R==.QP @0HwDŻDEDA.olDD;Dd o } fR {s?8ȉs#`M"Ym lv~^օ"R @NCVv#=`1#S B=Pu PFoi[]$T`-˖#$$ȝ!4,:Ɨ"FZ(f O&hZ!s '! q)(:,_$lCD%P TAIخcodLDѤ{EL4P&o HF6ͷx !4 Y2t?xZ $-hDLִ@/l[ooD==B"c5dkt # M"@0Q P PZd :!qxrlRB_bhď9$"`*#v}T8k,tJ&l]Cnq#:kq83WsFw0JQ HaQgZ9Fz($xuK7.sIyf}yS|+s>PWsOH17nxߑGO:~؏<;p**DB0GC[è>h*3w&^'QI:udg@G{ydʬu(FOPjXsOt|靼2`)/e)No LUaDfmЁgz#Rqe)(Y؝q%{c)ZT4ɡR8?FH3t-Jҙy8ȱ7\e&ŮC,y_3KR*4e,?,>()*1xJjP̪p^G<>0|x~xQ4Bt:Hi5IHM]#y2NG,1)DlΟ>xY$ xX R&ٹދI#5.jx<͞1|N9-~Fb1XtQ`t}S(H̐r}ΖJsUwxMx[W"'ef B[3 b})a1. CJ@ȉiwPФi!fBCho$o1b"" D8$?ED s} D(CpxHx2`,$ R  4HOc"a2B'=!D{}& ^#p;mAP;Dko1`D mAqӜBAV}%E]O=dSx05݄H3h,l&igp 3j*dLj o1[x]gTԩ%IIԕiJoꉪk)IC+nĴ<"/cֆʙ!:Sv~ y#-w8nHs@ mDSnqʎox@@t-MLMNZ֊Cr13$I* O7_\Nw^k~Jiʗ161?7iVSmϷ>1^nS̡*ZpF-h暟|匫bHQNPH8_p ktd)M)2Gt>3\WU&vS;5$)ÁN-Rn 4ywؕiiߵ9*Y=FY$ E&]RV?´W/ۨG Oxgse\j(geTK}&qwtr70us5H8U%V5@0%'U THQ}\ҥ:To)gẨJ>#vLQx*mT)2dLC]$sʮ&dt:I^˝8<^%4{}v;?OL=M\2_<(IL*eDJ$Q;x&:}4q|S4y3WW^80?<=JsZLs4 Q"m0rn_LɁJ6 ՝o}kOU˽wEV\9\P.byNl~`%`SEJS#ͳ:$Y!0MIi߷W#濉OUN ELIu}꧙{8-c9)Reb}eR MX ̤ݚ=}>}IIy~.>Jewi N&0Rny*$Dkx*m *:{N Hl Yʉ7"'#ۼ "=;B}!{H@-d ݢM 66D- )&DAF 2~q"&D^hx5oUFT"&?sb+ADV12b}D0I _@KD;?h "9r~e+󈨷EdA_(S7DD" D%󄬁x Nxu9=b6 њ4E@_X Т%3XoݢBF4n{+Ν2E,+ZCǟ,(ϟlyO<1K0&U։uŽgǏSoskRwI{i;O[V)1jBv(HH6g A#I!siDL9oD>mbh4wf]&;I:|2TRvP{FѪzjJ2"R&#܋xfڳ)L88ID(I$ K5{^~Ι=nM}fhÄ5sS/R,,nrqN\1r9xdɸnYl -sq>'j\ nKmΔfz9ݠleȇGQ{aC[ۑ~VSSjME4ѮLz,}\S#\8þ-We~!$Rɪq?!2֥Q]a7dX^-D}ksphqKcWã2Nᙣ gg"N)`1rDRIZe, #NJ2it\]'zrwOt8NcuaDSP%f}tNiyo<7굙/;>ND-Y՘G?yX I&UR%j^SwLy3>7 9B7 ?(Is"@3fI*)K52%sdCIm &#nQ)!d#CY B!%;+!Ip?H)QAt*DC0cM<gkd{'|cʩP% \}x4,ڎqMtqt>a7r]> G|Fu,=#!ZEKDly_h .=!m2Pm$)=L sfۦ#LTZ4dԙzēbNcw+gɒeLRDq4.$ E[AqK4jCTJ1QN勃rwN#As2}2XJy ?x<3B~/O|+5M2IL KnB[tlmmaqg^N1L*d)53D[;3#Ũ./ <1}o<É y WJ-$X|j9Tu*ꏣW%3>9 O>SE_N ñK3J3~/| gA2gUPL) D;yy5 Jm.ݏr/q(rǕ=3`DUomGuI1R8q}XKǂK&mp,Sb8LjjrVj)ZP* 7xXd|IO, 9ߔ>'Yİ&PfdJLT#|\3P>N6ƞe7kzTD,cq1vBMEc%?#z;#D%SAb7څt(9|J4E &+* :RLZfwm2εɨ0 (2:4s?|Uƹt)l(/4Fl %rj3Ay5]'If}-RyoDDB4ʤj3&dQC,p=?6?%=F?iP˴y}[1)ðq%U *Ri(KThHPuI6R^6hiT;m~`j2Qpy߆-8x}x~GOiծg%OA𷑳GU93%d% kG=h-B<6V>B qq"R3m@io'cT6xmr9;Ǿ l۴Mv%1}V]j+IwhEFg;^Gp3xlaEf8L S阞i=AOF7GsKXfE^xO"Ue=e2ES>NeMJvv5>->N}ϳ>}xd\aʧMLժYJ9cmu2ivV&\7j12D[7KQuPmg\"˅W~bp;1S㔸tI+?cĵڼ>._kx |{O T*#q.%4QM )'&o?vP%-eM64q]{&^(+lq)[&h\I84L&'$zORmg=L'?s B|f^$yJVGӿ}}|j>q 2YW5a<5%KW]c!8-5 >}TURZK(F>՟+8`j)W8!^Z,KXvy|=B8309(.FL#(7g! ncNHbh9DahghI30=M1ãAS*VqSxܮ3-+^'X E,| z\'>ɸt7;ǯԳ+oGg%1_9o _pŽB+shW!*҄TO]EJ 'RAW8m)W|CC F+π3f!1A>&F\ˁMU>Xi4tjHC D:)'ǿwׅ^sM57ӷ%} ~<:qNe?ò~[MvK6RqӨkZVꔵKJbO|V1Ru]FYgg=WvN"kw8+Sf|B~%@LFmrO:ɦ8dkT}kWOo>jx|/7I)f G#%/kHhDlĘ0" gL,9ۦ>Bh1}LA"`$BCּ Ԟx.33+PFkǟG)wj81~Tu9rZ8tg.9=? $)GT% ,Imh#xxxM&?\I̔1'pcMnϳ3%Ķ9e0 f'0MNJ,k[!ε5,˾}L28g]&rN# ci(; Fäz) "6" `1fعf?XV\ 4=W6J@~w^;W,tC4p g>9c-sTf;AicZl?7<«S`faW,Gf~RyfdGxOlkh> ~5qa,QatLt2؞v~ Y?kx% >"AUQ'ȝ-u(ʚAnw m߱7Q1n p}ysVbx O>x Z}m_u=\+)B'ItY!vt}γbD g~D:luYWq㎡KxeḾ`#RxFMBP'fO$™7i<яzVʣ~Ãp ^TS)nf Hǫ˙:LsLD|ZlWˏۧt|=>xdϗU5ɝUAF?Q?}sb\/ϊŚ Uɤdx.&YEZ Gs|atLG {Y^# ! V˦K֠ ` i04EY㵷ψ~E<2 NR'r@$-]6l#Ogx;vG(mGl.]E=\í3$%% &ĕǥw9c !Vx).?C%UԢy1)ҵ(I!0<]>~;:}?/{3urp칐9ɥ꼕JZR(ڪ&*ֲ I* [%%y>r^ɡt[j'DE7x^HhZĻ *K9{GW_~ ~/l;i.]=j0n9qf4f]u,&T+>r)>Kic,.T5tW-9%,K/4y>:M}}>7WJ*['BIh->rʂRXlI6]$.v?÷uOF'3hgΚB?2L[Cahqcmc> uӃ`1*]Ze|˜eZРQ ,'W9+#q4y^2PO[2um26’ wF$C#hw5OTK]gf?N|gĥ1MrЮLC+{YF~w}V_Ϗ6' =OO$dz<6vNȘf#A-28*pNRTSdo;:/ɦʧqk+k wa(SN[ f|ðIMyiȑ>TX EMNj"9<;titn2R:e 6UA #v6qԤ2 ѐoaM<7 צBuLXPfCA9(gp\%IN<(}'Sq(K5HX)ZKD{dw60~SOvL!rtq$bN0tS<'N=V,$cI[q13r#$]1=5OVJZJ#̸t}x.<ؔgyf85i1<(ji)[Se%<Ii~8Stn#8Ab$9ؼi~ٕ㎑#blքѡ{FF HrH=#CWr6đ$$ZN4"a,$v0ꍮf乙ԓcDwRU$.;$gtu!jNU)#Qg}g$ i݃J蠜G)Y P3fR55yOrRw.,5vraSʶ-g y&kWe3OpĤQIȗC$@U*&=M.7nS~I~;8$̻$;j'Zi:K*c"\!S.g.~J>шK]ӈOV1,WǙVw}?]OEq;=|KϘbƪYu'lً*Z̘p8<ܳrvxŝ;J›GRX, *Өh*4<2x/˘bKTQoYfHܒx/ yp4՝>.)œKtYXo ښj3%ZHHH!REqxFQTԪC1l[!"8|L$ $(٦y^;SHBpr9d˅><)8QRLN8xԓMpBԢt|WbS>Hi?tߺfK}/TWx 2FZc>A* Syd$2%$ |7\o%ھ]]k&ۿ%ƔפWnKWJ|[#}F# Es}[~Є ԛSH2e'܈iC*+{/%QjM.ҽ/>Wf<]53j&.j)^=\Z\|5G,;?0V*X!)50wXEzjN!R \,E %$s#'4låPq"aYH?jS z:M"?O[Y8_GG7~*oU]*bvtS.d1\xU5dź_{/#9/OiL&`zwL_؎i7isc}ͻ͎Q~,IzGr)u8$=ȸG_=f G©2mDJJIQʢGN9?%،JǕcS;%l9r3F[rѤ@Ň! DB)X 2w ".LD@Ah;fAPsX bi6ˆ E0ɚ% װjֆĩ8@+I!^DD}bb }W0d"++"[ "waTZAafH3ȉ򈺕DLBc vi}!}"'"76hܼAe"$v(2n>R"7>ր_M#D.wX39)HhĦb:f =ldRNKMaǞCZ<_c%%Ts׉r3CO}GfpWD2TĊrԕvz_b2又B0nS=.N*?Q:ZyMĵ3ōJ#(£͟Q3W^\Qʘ]z%StPQ|y]O|(O8ōeu F8 M g=\s⍞-F\[؜l峮k q3'pgiJ%LɥbpbDf&RUo$ۙ!WJ3udJJ @cxN9CMtֱ?M>~3/RFze䐉bbA̎GLġ埊^`1f:4PcRePJIݞ?I&> ;0 rII$a4H>VbS6U <ikr)$R%C##?k/gsKf~<~4%TH)4JƀIHp&>|>p,6,908;g^jX( Q͐9<5BgOM5.QIc{'KA}M3[& X.gP ]eD.Z5Q4h[D*b%69!TP 6PJ}"9"6!n(BYFj,w!H]A-3*e2ۓ91$?z|>TeP$(iy3E eDs[9d7(Y#rtzU~7WVŹh*HJNOxӯΒ\Kdt 咒P*jYn(烜ٳ Y͇%+PR*dsdyozy8rcUlzM'B;Ǽ{x\jN.ٌ-sWuj*.<2jTJ>Le)Aq缪iQ|,/zXv#VRL+jP!2VMF{+?\EYdRs55M4_ @d׉sA3@ l&<M)pZSW/K8l sY+ʙKK&k bHsIRS[fk)[3|P~^ 2l\D,S7I UW),> I1f|/-ur޼+}[n3 >-1hVX*CGGO/ˢ K,*RnX%)Iry|VK~LdKW;_G0.IWC%`S8"s'uA5:I%iXZURC@*z|/O??s> c~]//Kr2Oj@sW V Q9~bwyWZm/vQ߲޹h9q+_]/|~|K;"8bpF^/$j.ǣԲ?/Ej7 juf5Q3]2!sD RN#v}xr~gVV3sߴzt}|U7J4ED N6FV" &"" ![\C(A\"2$" IqD @$c`#xQMĈL,vHN u *&gr acA{ƨ3@"r,F^"ߠ4Vh$ gshĎpP EP]uG{Z$hA64rn %8yOku !6|鳯u<2VJҐOӼuĦPdLTe;3v({דt֞|T|xl[0աb #>OcJod^"ǔ %ptj,cxVg(91JB!&{÷l4O&-a0w3_<-:Z5 {lż3U,l^h<+E'-# q7gj'z)Ds>*[UP#ͣ<^!b2jG&b R? ,U(hD+BeKl2ql}4`U89K85mg1:!S72$^Sؖb&p< >%y=3O<ʵ3៪ЪZĄ멚_A4EK7^3j}.MW^ޝ\T q̣겆mw䌳]Y8rJ X=KJ̟2e:ʦ2f 8p'ժ۽yugƪ Z/7ѯ+5sf+o2aYf'9U17KRR1$v4K 9ڽV*UfMHuj Lwx_&jfUO}rtԵtJnOM㧬αau|y2o\3L~9#pʕ4Dk $Z},r Y=>sEo]>lWb]mDɾmI*5EDOơ=őnxjR8Pz|TuJZNk?deE2$I% t[bQL,Csk%f4,NВ[P؈)ع"E$u"0C&@_!ē 6@\ bdWx-7T#n 0;Db d(I?xРhZ+rCn= ~;DH[IB@}`"Q$LɒlDNLi0Hu;h*n[ 6_kNXB@{VdY"Egh"!h;A=GqFu[ Fbnua4Ax&"u @̐F[RRDe֟[:2b] c{lccBdEB3DT!Af 3‰1 ^*o MP$1 4 "9 H]9iI<_|3+5M%-*Jr[܈7W~@8ۗ3l1r&^YU2NX%D~O(a\>G/ WNe?IUO44')uX{Ho>QgڏY+نJ6j,sI~γbS\8M~alğ;5.(mrH/s2e RmGmI!l?KT23ihϴWAL%E)S{GQ( Z8ۣ+ѹ5A~[MVTļ)UTsQX,1ɪr}ڿZ~,rUm IMtjIc|ZvϹ o8 8[3.b0̭ # ROhN& >OO'W~#urc>r_|+3 ͙)Q.wZA; <;"\kgqrJ[:a4iPO%,NXBneE{zœ|jDwĿ3p7a-2V* "zҵH)j wYtw6qjGxsyv1MWO WkO3|কjG<rĕ&{:~s>6qihR*S-g\O)'c uuoGNlO$HMf5*uME,8G/ɖbZ=2*t&˫DAt:ɘOc@aԎU%8_GgOboS/ʂ˫RX ZU! 5FY2R`ikw'z]V/kR]O^ 0!jm<{)S>rRBh%t= Ay׃_/8k<6ʠL֐ ՑE%25IyK ɗ4I/ˢo\0 |7r^w؄ǟUc9i2~#Y6LsjP\J@T4(4:O45+3x}dz''Ηoc˗fEr+՟.<|?_xs9SyKS3Y+DL .a$B?${t2Yl%z.PsfJ' q; xyU3YLG:~):$iHUB- J^Lt%Key<2W'?4}˄%~2X+\+zzRJ|c1\ٓ?:+P)OwSps}_/>)Kc{ÏXYx"D#>S.ϔ'KUt(*TfeI-H()xLJ$I}S=oVT|'´ӈx4Ҩ)й4鞩-~Ju!Pw1zLQ\o|6Ed~o.Ǭ*'-,uz^,Gi0 $Ov`N\Fe ZG4(F0UuDل%*R#Wg6>L ͏ 5/Pp#8e*eV2sk.O{G+=>. W/\4rT~~'qÏxʹ>mU1.@T&$(b'&.߼KɝA9mKr8g//eF^0싓8yg# m"fFl5>b }8MdK/Żox[o%H Q%{ǿHX ID,ٛc*&ih Jn #HО`цLʈn_@l9D ߔ* "؁"$9ñȎ`P/ !=ltbfM^2B;<;!4FUhdJ`v`&{E@8~ !ktR+XD&\Vj˘$$p$Efx XAv"Fa`cB`` u#(oפ BM7"JKD*ɋA9mh]_rAdKЕI"H'(/GQmb $h(D ݶ$!B5BʿWZOϤ.5D۱hH4!r D.X}$lh@F&HP.Av;) \:dTRJKDtϠ/#fe^ KTY Y)>+~;_},CJK*3ƲG/T?gqa Zig+XUֶmk4QSƪ~'" r~gi3ط]4Dʹ ”M|?#O=D $K vnq)ylo>p^h*au$t!>nhu+첬Qut^=uGI aY#6:WGaߎxBp>oeYPxma+O<dT̘ͬDs%7ohn>Ѹ=D!^/;)VmV 6fKOuȺpI6) M0K7g{䕡$S_yg V"PSYJw]37ӦLx) c̿?zO [?;=߄pSL&mE2i(Ȝ7br2PBA#VO\یCr}?  k_k1)2dL)$ΟM.zk)DAk$}~= #>v4'|=wyOI6!W˨^dN-4%73 y`o㬋5e2\^||Ŝ2z>,.heզJRK2RR@S>[8Rvgr|ǟMny s.q_?Ix9KGVzYa(@*" ͷ&.ƳŅSKӹJ6#0_%LdVJs{8寴U>G/MqD&eUa|U(B%\![$7{K]xX4S˖$r{9#9&`MWpOenj&u l:͘8C+^]vrJTpO$4L l+-ʓYWIKM12Փ#$mEI.5C4q:bXMPH2ȓTgӀ;Od Ï/:FgU*I8ĹKI=E4R˅ɘK?7MfsmPJ) sɞirӫ#ʦ3;'@d̓Pϔ}Ckt( +͋OS~=]o➣&Z{_.m#޾<`,^GU<9e)ZF9$ϙSeujr Q9y1z_E|:?Z̹8/FXUTxuWSf钪W4Ȓ"l,pYxTk8\/9v_o|KɜX g0y4 \ L K*f&Xi\)&Rf&,MwǕ|?OO.\KItk/\CCoxԼ1VQdTH¦˨K5(IJ6$zZ}DsSk\cKn^Tm~ pLOq58E7d)*Lʽ3(c|9egmXr)c[yN$֣1 :d eKBy~|zpݟk:d&ĚN?a (SP o1TVTU2XT R~?3:G>EϚsfam;y<*yƛɹcXJ]5 ",ݒ6cıb[= 7ru{%ɟឆN3⋋w9YgS1T 2LvuruYd4zXn@F`Ovݓظ4 Tm2wIn+s=RNч ӒgR_y:4tV}2$YI!٢k$ thq 'la#;F2Eü] 2&ZA؉x(̓hra4"hKc* ‘-K91"$sD"K${<%KC͠ 4h dޞ$g(#TC2 `Ćw}4=VDi$>є ;.{3DnQ/0 ;6Г 1(5X["&$ě@TiV;Ed̒`aa~psPܺBgH]H)"X> 8]DE b7xE @[q]HB۴q벟LS$AS%7G${W+?JΥ?1N}x*Y1}Ocõ+["] 3f,,_EJ-=/kÇq\^QEHI)Is~qcPܴ:79>|bٓ)+ı\H M.P>p'dW?>U!H@"QRK?7`Ρ/㻳| Q>+d5U )B?zu|1O s8Ixn\*TJB@curJnrnϢX>QifN(xQԹsfnXvkE>r{' q ϦiL" -H ZrC?+1`Ȝ QPfh^%KU4]_ǥyfxMp*b@@Rv;iƳj/q^ڋt|¯DS$SyU~ AMR• ׾1\WNg%$_<ʕS%K2m6E< Ab#G$='h)cN_:vRURT\'ZŅ֏?Sz;t8e(mϳ r.]&3Si8Jp\:f^dG D#PH4jҭШrFy{tw#f]}'$!nFp"}#"Z7d)H /1!Tt!scqOǛ+lSkޝ߅/X6;L45ti%KIQC$Ӏ4eqYUSe97OߝPg\b^_BPjV DTYaH8ub1^dz||)>fP~.˒Q_~'go ӸS2 2%LUOR !uQ$\GW-ܞcrK伷C%p*М2LԑiZ?4͉%:R-LV']Od._ \^̓RkTB:|o32RO ;!N~7_zZl;.|z>_^/3W9,ʫ9KlX ճ1)%>ͧz3[^z~ׂk5|9u_heԢDб&R%(sNPTurUKR|#9UxplV/O)R2HA-f\^/<8^%*<7?WXM\\(Ht#5-ViϹ  6x'< LJ L>K2mD”!'wn^N.9|Ťm3Y.m$xbwU4:f3HK7Pqq%&~Qo-Er'XŃK~T5?Uw\-7)֏(Qzs&l/:b{O(ϟIpyWL82G?zT_gI!yo,f3E@y*'uϵieZ^{}c~g-SSqSg2t;3ueNH/FdΒQ!Gչa{5ptԭwF3%w>DN >?b#NIL'NS$qf]Î"YY%A b"=@H4vxi(|6@%WE&FzXBkaFtqf;iJ^1$rAAӉVIK)J㫛'[jԟOf8HZ]-k-Z{34GG~x1eBxLi.c &`4L.XOhh+>^it71S<?è(K)'M>YG#NHΓĴej28՜20q*iS ROHy8\Ul9%EU-F$fSK!N?<̹ ;Iq-c18JYe*`$̣oI(^ܾ*932.apyT%ΐH#bMn,:ni~M;N9d{(bYHı z 3H6`J#o7ٹeƫn],b2gK圸u5]QGXd͗0ic(< L iIYq9ps|ۃK񺹳$JV>bt)d @l@P^ϳxjdY$a8+0eaj)Ţ=rWmIXq%vw0{, pű?1p;4U6Z›nV@KAN,dq8_/{{&%/ }5U.+K̔|90FT.t1 L.Y*JAJւqe̞XMlSU~p`>Huwuϒ_ߘf#qx\/+6TFjSO5 &"ZFN\NI#)7gy738 #)Ne2,JV:L%L_ije,iQG7Q.xc5uѪM+nn!`=M2g BzPL PII SpXMdɾHvǃ2^Y׮.ϒ=yMNo=MU.3e-+P.ǒ32G8TrT*.ٽo.;]LL˟|$Z զ\N4) Z͘~Q˧Wn_mvz[a54ئ¤aTx`5g4(KOwQ:1iBx7ٻ{82 ߧ9_W:#Fe3cؒrp:%4%,%I/q.iCSnņҟ[[uvT!/x1af)_8LIq r_2隕%HPTZ7> ˦=n~'G,51㏺:K1~^L߉)ir\֬/$z,=# R4= *(i7ZN~WII$/wrCi'ϫmIu٭Qf^h :R\r{!@Ah5Z}F/i gjtٰɱ>x;DUK6K2]e֣LEjT]^FS%+ V%B l_hjqV%M-;-`^iu_7/]~/4"HNB0kWrw-v="bN%e@)4YSZWFIKb-x,̀[5PmbبD"Y\Dm [+"Fs\x&fҦ6~Q2ܟx1!snOo > KxI"dJ!Bw?X̄й߳<+c ($@/hȀ׽-цf!b|OAvdBNX'fţK;gF"Pnd@XxKw 4i!enT`7å.Y%H8rBjR$$ ;G4xԺH<~¦I2? )!,ms&ҕMuVwL>.HDHCoH9ܲU~)0LaH,)$0lx#x/C )TH \> t>||qǡp|NJG%EEf$Q?RxVJYݘqwft>2 OS ~8*L !+J366pG̣(þyyw6 82>b 9;HF;8cGa9vt4Һ$-d]2ʹ̖ٛh(H˙ s\dx ^Zڜ窅r9&:e(&Z#LoOW =,)Ǻ˹[xj S 8 T~JkZ%**%cOcB1d?joqpo}k,ü3.qإGQMv/⏎fRtdϚW!XD$W31@(Z8N玧$ys}/y`;-v-hY l҉둇(i%e.f 5iOq8[Q}..uI.$u{/?%1[P8+=AgJTLh_I{{r?f(Jyɾ-?=S9PÍ/ەo׹S":5&VwԘjr8$ҳ8{!KFK6]\|i@փ(+Qp'rKoG7!..ʿQ&+/pW1IqM:PP@Ҳ`omzGJ)֏>Z)ej_:ONQg3M8VThZ6ܻm>N^Q_v=}|<|Cg.NRK(KB! ]:- #(;99Kį~Ts#eU-|p:)f)E2PJBTNǧPJRkmӧv(>%/x[h[8xTQ32JGTSN8)% +_u/^= ǖq hܼPbARe+J5=Zq}ߒ8޳$r\Z-v9'1p+Ù9]55xASAxaUA^M/d\!;*XeMeuˑz. 6ovW~"ku-KwT{mDrݝ\; :d3Wi34eDϴ>@_Qi0LOLvZ18qF-J'AFeSU(1@xl;31qUZrS-ncms9p㒉N-JfPw8?~Ϡ JxsehȨ1BM\ )EhRX2JŁ)*N lzW6kg)Ͽ${#< `L7/QgLA8xJH2ԔYOIԒm<1Epou_n^ 4eӍr|t{{+L>Ee6S8ɩ:>xJT:e4%%^i5}|9?/b8%\:'P,(Hz2ycsd%>T.~j4є\G2I;j^!uԒ+@*&iN1rr]9M-տGDUHNÿgbigϕrҦ ~i?#uzgM^u]z zpo)m~O&t4MSKAK0*ꂂ҅h;(Z|.ok]CO,^)v-f j_QY-S%S1ʔ}J:jtBSп I?v6W7C5Mہ?]b=0MUTțKKT؅Gb?0 ֏W0eyI#pİ;9WIJ9(tĔ4:dxӨ?9`6c:|B U3*զHAp vx\P7NL5/Jx];(S:T)>s$YuKlc |9}p_~T;_N/.=SFrgTH*ļH% L)&;4mIKU.缟.Q8c%\im|~M;ǫ$d|_"s+  R76hkdi!W/E_ᘞ7U=׻[|c^c,rF#*H^2dZ\)Hpg qkf%ſM/*Utxڄzݼu秲mbƸa~asN U]Sb- 1rԚRN)K 2|\sI__Ũ6ҊkekSηgOҜ ţ޾~ar/1- ]0_eUHNx1ﲄwTksO"+`$cӍq܉ sx冝Ŏ1?& T2J.{_.2Bf0 -W~F?$o'yz y$ #|N}<=g*R2t4JʹlBI=4k2aY1N-K,֟TɽW? N'WWOǤ#/9~`F1bTS+&v3'JQ-*'J9nXH+ߟDz)ʯzRQT5< uhE;L/e(*$~T.rdFj$տÊ/Gs>3jQF@@0>Fk3Bh4٢ 㟴B7#;^*QP@?HRr]%>n+#:ȎK0Db!;C Dcb~BA`źw [Z-Dw%/#IV1Mb* (JەDFZ'%$@x#c- p[xK"I4FmHeJ-eZ3HJDGfcS{Z>2ȕfE2U"AJRv}p+U_Lrfy`LbNrSGF4HO&J$-ڂRZ9<*`2uLD ݻGxWjg7~id{8 gL˔}/QiDV)D\OQ):Rex T9FtO+I2eLa`ŮqM5zxȿG$eܓU 6rw㳏4k&t3oؕFgU[SYIA72aJJДK݀1Ëةuro5UTeJi6 vpʲo_&ҵxx}̻`j'3P=i*N 3gǑGxr+zN[E2W&`D@Bl+{M~q__} Tگ'V?Oausk ]l%NJeZfKL*$&9a \S>k*3/O5[u~i)xü?LKTf%L=*3x3ia<3e r{ǘ=iQ坵f. F^6<҆Li <ڊe͗O0Δj!Kyg~@GB~.R|ۯGeOMnzS)Q˝3B3f3J,M6a^喦J>gڙKrtJ%[~֓YS K:e!%%Jv~M,Xi%7EztZʩ;'Ͷy_ 8ES:,: `uߏ)%,^aZQQf Y4<0R}tD~VLYN<(1#ORS8 R 73Ǘگu;rWçA,>NiדZ|UY0OLUydMQXGhIqOurJ엩Ṱph!ᆴ^ܽјfZ($hWq fm.EAr\YpZˉj~78=Rykꢻq⋅YcÇU38vjdzMzd&R&Yʦkk̖@"c\SorQ<ظˆ)lOǚK+4ʙT'ҌBNdb}I:RRCkg<Q=(ck.Y. ~_ve%'(%vQeÈb5g ͹1SԳL3j5pnXʟ uպ>om|jeer\ս|C񗔸++r/"t')pK#ˢDīI2zD \;+G65 SI.o]qQ7_Dq_.w2TK ƑJS3d eI O" 98a8=o_[:,~ۻ4z+|\VI ^aVVO)=) orc)*_%ʞx9a~owvUenqKľfD/1Jʥ՚Or֖KJJXfoxgq9a}f-Iɸ4RgcU)@Vy.f nv\N[wa<`{w +0".|>]&)b &pYSKvדt_K_"\IkKۙ;%O1&a^7I9jĨ'Q̞̐kK.w1 r$=#r>WSQ ĩ SHPRH/}/xsάF+txL1ztoDv:NIi2&x#LDDԃuN[/ΒrUfZL1,j6BLRh>M5-@-*C c4rs:*,h[I}K7q1Bِ@oi"uU&H] 6@ YD$zaHh2-Dw#;Q Be$ܣ@yw@bHD$%o I@7bG/F 1`/:"äL@7uBD 󁢲RKV(ࠢ&( Dn[~Qnb"w x kDX&"BV#bH(LD0Ȓܢ#Ŷ;v1zBnFC` =*ػ[h󃙢p:%"؈n8H6:5^9^!%ǴD)rh͠iݕD}͡DyK3C3F܏27s/ We^ PKum㡫ȓwtH1J?.=6o(ni#ևd:xoӚqOT٥J7 . =ϐ>4MLj~~=W+ 5!COf>%3w%̕X}dHޭ$W=ө-VYE2rVJ֧.cފISp%'NBk0s*iUi2$)ii;RXht I^.V|>QH^e[:k~=gOL$X*PT4pI=ϳˇM]{If~[y}Af]uK-_, Xv>SRu-V{|m/{?/3a] @#R ksi`nvthb>,׻FvTVILRe ֋Xz~*mrm~K%I2k1+_?׷o7lInV )$A̗5G:kU8ZPm^gy4HtIԻZCl dG" ӏ!uTxMZ2'M:S*ǯQg>gW/y ȥ1+Th\ʴLZJ<,o{eˋ,%꛿VW1x!`_5'8y7b,RZuVͩ-s\'D[#zTw{7{#1ur_-މ)%wIe\`$=?ߙn&f#d٘|;4I<'|.h*I*OTUk:FLq{.^ri1li{*=C􌱐|j~e%4XSɕ.RPFb] $!w-xp2υ.6ٽ-fEZwn|w2nWv CH5eWТo4+\()AGV>)K'.U~\/zyK8dyUTb(P骗A%fl/LjJm4B\ۯ=8i㊌V[/.Z<6G꾖Y|B\+'+ܥIX=Sl v&Q.J\YS*'Tr OVL4Yj07isWNˈ_\Hv1%f ].TJq*`'VQ13Q02MH_ m5+\yt]a$ڦ'O_GgCPvɯ^x<.d^-`rLX[̑s3ݪm+;e׳?&uV6OG}Wž.y³. )0hEJW%*l*r@衋7{~.7YGVMg\F[ƟUV'S[QO$T} ,kpkft'ct_ pB;eTXɟZ$(s(Hᔟ3A'H*-+HP:A#tLe-LE 3 }' ]$@Cxh!D 3txQK4C52+bDkYg XO$\hv]"."@ȅ" 8DEsQ$,9\De4 X" 7I_x!B,"hhIHsh]"@Bc٠"K @kƈkVh[ǤLU1c @B,K٢X#a."#_i+t@/hT4Qvau"!mɣ/p+"i;Xkr+؁!֌4 6bo"&`c,5çX^cB B3èl XL 7G_3"b!*3'G+=x{oɾ ,O (ѾΨLL?>qgCz8|#$w Vt^ 0I<8LĝRV;:]~GQɅp*A.JW1EsX(ٸI>|8+r4/ԅДTğ̛Q)JxLAೋ$.j*ZP><&WsgI_0:bf<}JQpo">O˖Rړ,rN=Ԕ%~ x%[ c'|s4˕iS )\{t> un䂻g,r~uq Lyf\7~ч⹜1(ˈ7Ҥ.Jih1_ߤs`tkSJ9+#VgjSa5ճZDLR{<юtpcĤgp8Zz2h 詔POK\ȞW{t*{ ED(7Y$p`i0;0bD#5rTW4?N RTRC_(⎲{/trL|2SWcTL*Q@2lVIS52X+>~'qG3z,2f.x&+LRt7>8(y4:m,/r*w亜FaӸQJjE#M2gQt[/plce&i?jim}GC4!9du3/|vkb$O /'?sF`y^8ݺ%oU-/ kIGj>8W;3O"PNpYiA TBie8%(gIIhOSYS7 jsir%a) m#@,tZlx۷ 7M]&Z|{Io\}~GGeqYئ$Ls*$XIJq9C[3rMo}NƖIStۧ;;ESpð:|r[LJj*QmAgJRIt*:GRp[kgM,y=)mg~[˵U_0\J3q8UJe(%i 8ǖG_d`^ҝ>s.|qY+TZw;ǩKT2j\Wc3fMZ{Ǡ+dI.wp..Bmh@Q ,;PpJ}Ng/fUEB*%tICT*":e&Xgǣ#f|+Q̑ET8_ҍj%jB&1-1gIvI4#K7G9骩榦%J:I d)$b 11GigFYG3: GS|4t.AqOMu S(+۪<_K1dLdq+'E8CO5T:~Y}OjܻO)*h+iu=LJ)_*؈0ǒ xڒ}Syyd7 =̝'s٤)Jot*!d {h(jhHcv3H/2 #-7xQ v>d=! 1,a[$@/<$" g;đ}a"Ep" Y[8g!&sbB@Y vxHm.&FH#kh,;-DDn8b!f=b"Iq-L70 R4 :o eAŠ@Dv0ahѢ!ɽXɛܔ;Z*4;;͑722qP4d͠fihlic.(dۿ(Rws  4B7$!!"hP,{W#IIqXDj6mdQԪD-kpfhcn?Y9Qť\)cpwGEl f`Ti2BP̂w-O>A£)yO(gxN_1\3(0H!e'u ܹjyN5 dn gNO5\4]ix|>oƔ g1xo)IEL!ChK"mFj9>x*9!BUts/PԠ nhZY,2[G*=5ԣiDi*1Z$iw齤\ve$X_.We2*XJIn#cӺ˧j}i>Gx&_J6Ds ,[#Ȝ\Mr<_UK20E\:Ik2v1X3'HF,SkG qyHb%dƥVۍ Kh}6qe_瑓MO*[z`38%:,d̬DzB$%kR% @w`A^ -oeZow˞]#gRϭjPfU-=<%K!>bg..ǜu3i"|-my>\}|}\RJkΪeu^#G˯&RLPd](PHdK|w.9|?UuWǑjqsۤk=^NjW(-{ZM^V+g_cRn-O$Nؖ#>R*p:9iiNU)BrR0(P@rfIIEQ˧8*qmOW:b#Z9ئ1Pa?[<,cu4T3w4A20*I JϦE_}uǛSn_c,ʮA&=jT(TU)='|Mr]>gb =d:TԘOp;Ѯi)Bn`:gcl֥N%J/)ʹ7\*"M7HqSR0z2¡=?>FqjEXwr<{˩k^%O.DjJ9mI*QܞLJW6}._.($c1c̱գӛ<;oI*1ofU~l D wI.e𽎞%&PP%e ̣i(?I: ZjLŨL3ӴNG8-J1:dRX:dJGH :GWa_k}kdW'/{ %G|@:9Ǥ2F ۤRDA#H Ŭ\D@_k@ }`(bdDj<ߜ-bY+o Y "rdD8=`XD 7p!+maa?H6WDZs&-hHw{sHl!eZ5fa .zDo" u1~Z&BKqqMWra Xy<@@oxu"+-DD DX9x͉hl;Ѐ=FY;AF 3]H+R#Hց! U]t2# F~qI0h.ĝD2GSOH&$"=~p2)DFdhBs*.B@f.Y֐hiȎgWXˍGUo)cww[ffZwWW6|(F#%qFi~+{(uXߌr.7?SǦ͟GXS:RZT6=x8>&{UMHA$JYS?VQ1zp?^'xŜȧ+ 6D*ON˴y~8q)]~g[ˣ%KS3Qp}$}#ŖB^˚v<=dK'&rgǧLBXT0LKüFJ><Ň27ˣbSOMOpɩeЩvHQ1` {_Kvy ]q 4 pцЙrazf*T 孉]͆ý?ŵ,^G6=l7(؇:`뙇M580pLaUIcY|FTKS)cx)oު OE. ɐ%%2f\K\O|W\O)9[^<)x&rymۊ+r<4ԉaɏ7L]QY3>PZH)W1iG,g..2Q@57 <`9lD)k1bNTF;<}{7U_=M5X·<+3L<#1#IQNddHm6Hpr殾59afxDr=J:n.W%KuZŖJ6Vduqr[.XwU0ꌕLI.jd˯'a!+(IyӋ_X؞ONmiGgZ!zk_.K®\ɪcXn/ ц֦LhL-uQQxn,Yi*wL:$9*k|p:jUs~%K.L8uJΟhNJE6]KCARwg'|чrW4%IV$IJ̤0 FH<.o8UNTƢtJ:xcx`|N6GPmm#GFbdÿ#WnQR+1PlʨT ؤH,AtGq0kc/sarlI4tf2TrG3#c@~YP'Ѣ  D_2ePw<4Fǜ(lE fXCD &"sh؍ m͌H((@Ɨ#BhoD7*+DDK@SF^c,=@!s(܈Hb#u^7=aD@ݹB1 r/`;#DZ ` ! w" npr!JO6@2{FB\.ݡDwx^-? RzӥIRұФ1×gVs,vS))\ʄWZ2\{,P\IYˎ*{7GWg)ȗ.` Et&ӕtr9hí\ ݞk>.%mmr=4I]>)? nl&&rc( ߺsFPʽxF*,4u4iԩs$IDJI:bo$'8ԩ!9CVS+13sK$H>kW>C8(>CP_#̸Ýfe*Y*eʞ K:(3; arr_Ϛ<)'þ+q͕3dVbtҦ.\ɪR%v|\ OQ+tK)DY\b#TsXlVkZFğtbɴ5xj=kOT:C~Y3G~#MÿS 2]D;n`x✯sN?=C"rf$J#Q1ܑcֶ#a[-6WM]UA,(Q,%E65MA ;sGXpE_GϬˮ&7'Ĕ]>skf+pC1RN#2t*bdT-i6i D-(倛0 T-K¹MfI^_̡ ŅyTjpA2T:MBIV36_GnV煋aq%{_3-Lǩ&luq.zPU*qYKiN5QK8&j\cOַOסCQ"S_N)ZS^<_89}9o]x~r3dqrF,l;ժa1/`r(#&Vsm4.zUJ'i/%vŦWVM:aTũTn=Pg.fB;HiwߤmmtܸkH17bFՃJ:nCi6` _c l0uq6W,8̑Kc ȠsH,m4dɖCH(w ODȵв2P` x$Eo""b^ȔOA<!"J7fhDZ"bmdLA` ,9FhOi"}DG`adqbB@i}z& Ep 5*-6BZKub!o".% c8=qF7f SOm$D" " y6)Ss\78Q x'"4$Ȓ=B™3 l D cCWD!nvkhSAvgI]8Ȣ7 EFΫ?`J0YD T_hU6ͺmSBaShF;<&Ub^fش*<M_S~].#? ©SQCLU?  Jf@K dr^^}C&'j~Uw]O{I_񞲶mg2mr &d 3BJwkrIewko䥋zhTHR,: 8Ï"s^+UJ*s^]v )mGzgtmFg~4p+i5M'9KZ2-I Nq2ZMn~A(4{U.lš+J-ZTKAH{eŤ\n!;uEk)~FqvkeΗeIRRKsI~.;O3+0Jt%l*AcN ͥ&nŭ6犔S eNRW*s(W0-*!Z?|YS%$l>^~+ezl嵹-RI]34z~j*RV.\E<rm^%A' O;L*.q_)JZItM>ZJAUҭH>QK8)s[y|Y1gOcۓ=nnTLD//V|ЉR$JHRN_Œ Kʚ^!ᓄm[_-ϛ^2~1sGx;O^KSV3_K_2R&`Ia?)ZJK1Q.jemζ=(aJT~WsW_X9lӐxM21UGc*M.1GG2* W-RDĀF"=}&9ugoM7-^㔱gVjČajU;ŦbTSʫ$VZ\GYK{g og<2O&_~e<\GǡgFQJ< !*WF6e]Z:BpZ*AUbצVJ(QNMvoaBhqp|{LlοQxR 2РԀC;Ĺ+`.:*aQ8W5h, ,Ox&Nv"2d[Z"Z>~DD@}ȝѫ g$Dz@ "tDNvБl7}H$_&3ԅ&DLp2!HW  ].#6DxhH zd!^'Dhu?W5 ę"QsNB~! %DmUEhM nv7(YIgf"* t q*3B͠F8Dȝ@Dx[=Z? ЂÔ pD $hgb4H%`@}/CaOɺ,P: nm;#HXfjX&jGY>d+<\78(pLVCxe}Mя45"K:դC0 z\qgV\=nG0)ɩee[Yc4a*QO[KSQI?XJT:Uo{lk7UωHSqi5q?XO)kTA_;\pO j'q"UV &EE}8*i!+hL&moGgɞ0:)~<'T&9bDUfIDezn_pm~+^䂹.kxIBo|cx-!.)+S:PTP$oQOH{:*}:sC$_\EѦ?+zo_,l͑f,ї*3 TII&`BhJitJvXcɋɦ٦zl8dVIvO#XGr}:3 ,-1:y*TRI#2bLjJsCEaSR<,rM9[;WϚ~%ÑKhg^m3o-3nCك(.IJ)B̹*uIBi2紒K~SGJzuzy65WK.KǑ-?OZ[G0JղS.N2 &Ti̖7ZZ\R^\Oy)6Gx,׏BZdLdm-("=(3MkUaHxГb2!U-ߴ$\wc,^4BSw Z"/s]ˆ\܃n ɶbmx } "+DE h=hLF<_%bГ߬;&q!nOGKP %l9DW= !PdgH B@ [JnY п1n\$,6"B:2@h@  DB,7H bcs3Oq+{4&2՚q :AL'U; l|3HŰyY?&NS*Lْc_.(*i<(JyY IG}=7>Pcu~9|I 9.~V.W&UI*qʅJ$6ԴDgϒ^<ߧU.ϛ93g{Z:|uY\^gVo'bs5N;?.LO՜6Z('%b&aXQܦ=}>K{g˺sj5>//{fǟt1HqU@\*tbfK%RTA)Q<_VK \;yo{gM-ʶgrw*QNkghO=yJȝ.LX2:: %? gWů_j4Id% =;9~o e)9r^Y$Brk֝`[N\ZdIe*@Md\~Kc?}Oi>5prp8v='?։bf%=֟X~M43ZBj'_|=M2y1uM3i12ɗ馢HBPIrZ:\x[۽>{z6vD|uG8ߑ)Y;X 8JZuM6^VIwF)~~TuGє^8A'Ry)OtqC5XUf]O@i1 *O@:.=;^ o^Y'y卶|JbSƯ6lɳ(k;OzKcΒs<-~EfVN[c`OLBR'OԒ Kr\uN3*]yOB.JmVkn`˪2Z*"\3פH[qJǛIo;>\Ȭ.ZQBjt݋},Ktxٰ3TJ ;K{r?X3`t`#k@얊&X?3q۔hdG@ $d1/+ҫFAo"bd< ryrNn!'D@[hU@ͼ([0h{@;AD!%Z&@ ;]'wb$VDDh(^fQxh@a"M ":\[L[Hq򈈒}d$z/ w@hH&BlcDXXmcv $s/ }[$G^Lʔ oc%ɏGGc"8~[EDGv2 ^rܶ) (l7}G :WbסUK%!S&ܛLxxJ%D^f0h!!)R*4r&JVPK:CAy]f?~÷V?CӋǣQ]?ξ^f f\fjU>r]G> y$7r}O'6[wE^`ycq\PFt(fdLjq1pK?,b.=˫eͧ:T qFV& #{ą._i븿|2R>jIAhV ڎrm/05 Mu~OG,ay8V:kaY7PvxmI<3vNߢ"[s|'=)Oة:Ďspr=HD,Iou'iv0j/v{Ӆ>Pç`ʗ6Xq&UoDJYTHJ 5p8{W ^4fI{/NJ^ SO[*Wd~3 IRE唨$9q5R=~HSxURh*ᯋҢ)* 9r@07*HJEЉ<`*\Q,?}{\w8Wז*FЫxUt EBXYW=O%-O~C-4zO-70#0u"}V-Je""e1dTK/c,Mԣ%Oկ5Be]OQs/Uxq%p7dF/üLTK~T# 䚛^O<9?5Vhx@euLW[Y:]<>%fM2MQ $$(2{nkw2jz|w/ 3z"qI%, U(iRR*!Â=$2sfy>L{KsX BlijT>ǩRC6n'he㰎2K"`}hvCߓC@?tDN9m" /""h=TFAhuCdD7h "rtrHr2͠!Hsw3D[v~b47 w4$h(gyxܢ`qn"Б!"@m4Bo4W SmrD؝YZֈHk<$]mߤB,#O( UB(@ĀoD.4D.a2vؓwOhb@3"-L"D8 ؒ=O,.m#N ƶ#%7a LB=>! ]0"lD7x$h݌)в%xXPk kHQ$4o NkFltzlh6>iJf &P a>QEQ7y0%IETԑo4->G]u}gKT38aXW]~tI&㱎n M33i"~ˤ)*6&zwn#Igۉx }&=V.*Р1 IB&˖)HR TA1q<9U۳;:]LeYkTy˝iSEPLH$G>r)QYzY%.\7H挸v7Ifdi:Kr##g++%\&bգW.&{f&84* Bo{ܴrM$F}‡qMZs k"ZҴS'%I&e6zٿ_$uv׌x݃a4&`YC/PW)i&Lk-rݷfN- 8(Vb駑P' U^:UzMUZ ?9Mf\y]&ZK.PHbH &[GO\<w8Zs[?frMfV*TF$JO-ZZS.g Sf֕IUJ|RUğ5~|NÑ烨Izz5_U%nV;d3Ŕ*KDux'[~43Rƭ^, BJ R.TRDԁy<:H8ܥ¹]pC-LBjǽq~%m=Gs%/ir`nq\ӕ`btx4ٵ8$mm]?Is8qN^[??.0+9ax^5U.jfRe $ @-Cԕ(AcWPt5>MZ7MÂAm OjY>Ǽ:RRSOLg)VLñN-ʕ.jJBH<=m_E-'gxXf1w&kةeHT: e sM>k9؈wGM=# kb#0J+Po-9/d'h vdYB&YBI~Q 'nP'sא gؙPb=M +s 1g1a 6֧G@jOv}?HugM%hB" zs4'[;BK "͹%D *wfBl|j9?G47ȯ2rR-`9SxI7%/ħ,!3*&b-:P {1QcYrq˹zFv):v%x|Vu%*$CZ gSo :5<:͔5=iW@MTRd(Xyy4u)w[45wi,~U4uN f <63];-%%T@$3xiu]Wz}lJ^yVGx44;&Pq5G*_ G#oq]<ƻ2#)`3j=:$(d;-^(TVxX|Gz$R;a4U4hR$2n|G68u9%iv>qw0[檗Y-L!u)P%Lب S c$~Qi\|MSWEhWcIũ 6k l%SNU<;JHG7ipMnj~OVaUi:R' HqRLqJ ̨RFr5K^H3Ce›94VooCp5?x3e&]L !!JR%($73J|Ľ_5ϏWg==dXe2 +mkYP 3W1EJXA)΍ TC,ȦrGJ?8x d]:"D&k\*>^i$*)j'9y/ [o~j[_πɀp Um4ǃS- "L“ǡEI%JxeW:t}%Y':,p|:I/TPJ;$TёPp| 58ow%4'xSᛃ"s5I+0g:tӫ K]=P%L"bT[QZ{˺_ ~Gg-<dzz/#q6x8fTSh0Q.JSd $JR)hf\-%\>k=gǒ.[[3*pاcI./p=I7}L+kr7;"H ܀Q0LhH` k ND]bfNEnxp !HDC@R v=0>3d$Xl !dNJԂxLqDԅJsM="lw^Ǹ G)ڧlLJ^&v7VqYі؄~q!4Ye%^!v؇@Y "4HY&Jrj{3  2#b+l6)w(n[㍧[u<͹ԟc&H$?0\?[ LIs:ӥB<%34er2K91̘ )$A$1F݊s+S#G ƫs+NV"'Ta#G\͜\P~ct&??+cut5RTCy7 KN/vt#ĺ[&33:89[]1JT-fGvX48Vc[g_G'))r仃h:8: XWyMl{#wq&X] ±Iܪz|R-u3H}=N=Bӗ=ו%c/2֥M.Bϭ!)RҴ)Hy2M|)~8eJ}G1zr:Mv6`D*J*TPR z@a<' ]{2||viW tR׭u0OI涿XTb\:iQZC ;am%&ҧ;ۡw1G.z\|(J9k")ORT;ʞZTc{~|:|2J[m_?w1aYo^B7*}wOwqt@=}>i-f/~;vty7HH3)ZC\*)T9?ąG:9nt$q_Ux<>v!>#JjvEL;顭շ$ʘy =VKoy|L˥è}Wv'sp喱QKRb{f溣ˤɏy#f2q;:d4m 2m aox"F_XW dKD bhnmo2 ,L͟xo"%DD,@H s (* Vx2.@F^ rѤ@o@ БH  'hQ č b#\'ёDiY(y8=Dnh hY0=Nm~p@H1~Dŷh!/`ɇ3DFhH}FhZ H aHIPY" KBӁH,DȍxvD% KX1"4(4ͦ2R ~Uu{OA&Eҧ2YJIXtדk>_vQHߓCs"!/.dů"ր4@b2 C]"sQdb+"i.`bQkQn&һkM6i*qgxZ] KsA`nc7vuKshcq T=Mvh咪g>7{q`JQJ7 uw#,cHeHswGmqgpƞJ$Hp(=ÕGcDAW'R#0L~ lԥZJɕ2dĸ) G#߇zOf2<5*V!2eSO4f떴(/ g]_ZvxtUGnq][2gXsbN,i٪ rs&PBRY%e\D&JgJRF˛)ʐJ|,<<ڪYKٮk;cĥo,߇D0l݉ s]Lh0 E :V)ΨXIPf]%sw_nGoIISݤץ_^2Fp;XY|Bx]ua8^16d"BQPIYIvQ:@Wr+4h9lor .m<钦Ti)=Axa%RG,r.`/Z\\񻇴sWu*]>›^Orgrj\ٞw|:x9!H̳;ΕD,Y"rs:4'NRtu 9St5⹯Gxs=xjy{m&L{i[ҪZF;Tx`),6`[PݙfQh@adN p[x!$G&D DL^ DD" ; D#~mب {90Qف1$@EX@(sD7IbHI$ȂmDEb Z wTVD a$HhYYn74;3Bs &߼%'Ó)$ St /.zFC +a;B&]!V~PV:Q"`!aZ$H,-"_X%"72KF6MdON"!"}[ȝ?HGu&s0k H/6[]=q8tg'~)RQʟCVd\?LTJ}N3}3%)$?hi ?. )ο2gS]N9)Ty.Z @P((r^8[ԲBtt?ox0hضЙ n6T@s#E]BH%JInHGp-I9W9ҩqqJ̘Y +ɰ?{u~/W_N}VeڥuΗZzvHHO(<çb#H;wi#Mąmd {Zx3H[e4Y BXbyncTrEM#$KbJ5dDr 0᜜w))H+r)3 Bi, i39%[klv! 8e5G,<{|_71ih%*iD 䥒 -a/y$.<>q~_ xdVUjr ڠ?Ƽ;Mq{9z~#8NJy^qL)1\X= ƱWikM3BT@nQEt} gq "1pG 3VS3XWWarg?%R^ [C$^_0)(úpNW `n'EUICTBBPH!)pA Lv RٜyZӗ;>u7YC*t*T&x3'LZ%KJ=3?yxq\sK/I&"9Ts&oC<+ Vyղ&yR~)2ʓPU.t+ύtߓO`'^]:|9s#: Ljnș2M_캹P B♶* qIu*Dz @I<~D2ifN;[Fc9!I?qi2GHJjЅJPgL'BTrΤ~^? pQvjuugיǯ4%e=yO& dWbezFVűg3MAE阍Z Z($1¤t]Q;m[|6x6.f2d)DԐZ& !؎c[:{6O s9C2ϗOfA:bth \NRI4 ^XK$Z-?ŕGo_^|lo7G,8rc_׽=81D렪yU,?KTz9Gc%SI&/d!D|v#)u8&'E 39ppŻdaM.f%Ϥ2DjԕE%>:.<+9%qts{Ƨ2Htw@H&1%RVI lIcxkR?~Gwk"]}W'N+oUb'̵IW>]& tVQ{Jmhǯϧu7J_GrI4mm_}WO 8g:`*c9s$.Um2!O" iA% ЩrIX)KQfb{թφ}Q4w0X9A\81ж -= Z!2 D$=,Ck<!a;L,?.bB r;hwK ~p2x*b@ȁ}ᲲR 8hS Kk(,GsDTX{4:5 fQx\WGgihh,om YG""D׊h4OѦȁ-q f C`$[lDO&ȝGh'HFh@(NJAw1CD[+ۜ6qxQ 7,*˂G(̹hhJOu#["ϙM0J\ҡ6|,cgVVgL=@5*KqYKX%GqtZ4İf%$v[#.IU7?K*JLZ8eb9bH?Aa5<;?2WpR1[&zTdz(}:o yUʭ+]nx7?KLSd^ep@tKROGYŜNhW7YrG-{7}T#1i/Og/.tK8f\Θ{)I!H4 }}g#B$g٠[r\&~6 2LL_vI79Ocj|m'W63Ҝ1oF 0dugcs3g]j|<+2g-8"r$*yɜ҅/L!JA,ٲ|Q\QqK`/|G27[[UaYK5+ZT;X CKbx n2z#xV\yw=3j}KLr֤| 찒RB v 2Y/ Fd7Y2ca5J sJB`q$~QSpN>`)ʮ˖eL<ᣕMur=w3B+k%R)KPB GNO9`q3|Qg_TrW&^󧉳ǐ..ow]Nuy-?g$qlpG !xPDUHScXDD)ZT.AI9ړ_Gkqw7yfnUsܧe<ddM54 *eHr%RZsGrr]9JwHJ yLz)tGBGE{8̻*߼ %N,&HjT In01(t*H\:tv7Eu03!01p)4F1$TXlYJN.}<-_RѷkѭΏOI }z|W&k ,RO'jKʛI5#O1ҭ*I$K.!{K/388{y|ꏙĀ_}ln>jIt:*`B\78^đo3Wp4uxvM1UG>+ cpK\K UD'ҝr;sgvR})oĻՕ\>aDS%nyWgdMG!Lb"mGH7 㑄Mn{™$c{Bȷ#c!)@a$,mx' *Έ{-m x".pHLDIˤDLU4P\6"Z#2mdzRTiVNēd ?3mZI).~S~~|tsfSɪULQ?S'J앃f saĩN \]< H1*`\^JҜG*|e(]*(X^8sS\ɉs;n+8'43h*t~2jDy\Srv|yxo<|3o*c7gUe+3hLˤ$ӹHxO:eȑ%sLPHJC:u\GgSj(ᕒ< pJW8 ʽpnNڔGusJk$9v][Ykn5oWvG87\BzK p*QaP lw'x4>rY'[r]#伿ꏳo}C5Fq*$)c x2vx8rt@E- !chvIp\h!N#2W;9'Kc?[V1_V/~epuTxE_,Lç JJe~RK8?1 a*]ymO1O(KV %Bj]>S[#2M&*8ܬŒ\%6Ѵl4-Jui:~F%=I|7WrFͼFpm\-!E-Uj%M(;_F#ȱd\/8U[Zʔ+QrxF'W$mqbROk&8;'|륬lXMO# ~b:)5;X2p6>RV9vu|%4x(::Pv:rC.E_A9cTtl/ĶZv5>dhV%m)rD*={0f\ReelTTOo2b˩d6%¹\ٝ? rUTLXwJe~P6vGM^,SXqqr-2YB٣u0UX~* ,CiٺĨ2zZ-̛vf.3fm _x'_14ըӉk6v#ˉ.f)5MX&q:KC1D ܑ?;rBʴjͦNU.Q%@lnvʾ<\\O~o.>u=KIĊKIKӫ || |L|[.#GW\sQFC,q+?9rMzlI>=|̕\O m+ m4DAMɄ(\?$ș#%r/̉j4^P#{< .p>pT`""d @^-#$&#H""bѠ 6#C`7<$Ȏ}`h b"fù%GTV-I"h"ZX"hºgB,,gsb!Dhov&X򀁛B:DB ,P"4@867aEб& !DDb!JZI&)n^u.T4tت߆bI7Hʥ@I5ia^mw]t<މO?_>X],J&m8"J啥vQ ˙`-tu?')#˸9D6B%$R$Ot#6aܢ@\qbF9枛w eDyL dbp;h $]Gű3*^xnK'вI!\ËjgdWqyTԲ>d$G_S!3M)ʢ~9 9>!)'⼎\D#̕D ښ f$3@6$r3(R?3&< N(Zȫs"ͫ[&b #a1r ^i%m+QP똲\ 8H~ N(GLEP@7G/0 uks yy2fT9VO`0dh5j;@s7ٟcj׳T{.-32\W0TRU.Ԣe_&n) Rg8)W ŎPΣ{3)O _t#4:m4s$O*lR֒$1P{ZxTҧ$9lqr*SrſXٖ@~܏ʹ¯)̭4W)$t)ROQp}<.>.G$'Lr#-P |xf0$ϳG G762u-*+MpiO>vKw6̫Ґ9U9qצQ=Gni9,TyGR j`:I͓1.؆ i.2\ }/rxCYRh&o1 =Jmi?vgA:&2Jp^QŨߟGnu}NH\o^⺥ʒ)nDG'\ԫPRPJ\ԀR@>?i~>/z𗒲 _6d /8_=ʦ3geيLLӥr=^1&KZ,XƖcs;_?SUO1N5+BU0Q)E%-&obMIRMWzci$*w_{wGlOa~ s_OMO!j)X(4TߏXT^ݻsPX}"RT'm!u2zZ|W9wkXX4uw?SSIoīL&A20 J)&Z,ǹ$]ߧ*DyB7vp3K{qf?6i%xEnqC:3[҂m.T[fedN7cV0ܐ#\FhҀn@"&63hmh9iQQ?O%ܷؒ1ǖuG&8\9bDE8|Ow7\ rn೩*H:*26WH3!M8qi Vɤ+W3I*2ɑ(#0˙-f7 Hr8?[Fmq*t s2Vcwx=rJJks? IG\==[`".ʲ);nbh,PD1oNQIQJ #.&gRAh3{CF(J0i'HQgg(3nQI*l6cLy&bIJBtze֟R9=^N\S\URE^x쵩uqnˬNԢ %N+>>-Tv}>,ˋ?>e(.BJncYҗsRW#ؐG"gTID:RͶ&Uo5> Yo5FlK v(,Qsm/?l < $"hM+sG@%0076 xL bDx[sh]lѠa7/JO /4Dl;Clw=+2+faHP3<l~*Dj߷ED}2B4VkbGӷ D#!"T"6roL&h_"UƄKa[E{FdDtxqLb3ԃݢ"(/m Fhۀ D.v=ID!ix H22%~٩dE,0bJ$u;9m(|< kGl2xv:Z>_%܌'K/30|ĥcGK~_J)=Y<1s?GkKSC0yG״*GAPWޗ~y'$pZh32х[E_~WSnuY&Y+W 75':O <Ǒi]]}q`r#ԤJ/=H'1Ur:sOPY7_uà ^ p Q?E|:/f~]güPt<~3fY*:Γ#U -y8Yʸld)\ԮgQc›'kz%wQ9a>Fٕ̔u=xb"}p׍Q\&n;F%jFH`N![l0.C‘6@kPh6yEA"BDD ;5@L8ɢRM*4b\f P5.lzf$-i>I%*JJ tsӧGoOJBj<;,>x_?dvm2tzj J-erNOyx%vtۗ/gV'Ng>WG:]=nXjpKZM\J3]zt!ZK9ydgPKc zF” 'P~Ń94vs<&pѾF]&d(f$6 7@eW"Ch o3dDbl-. 6w?+2nQBĂEnp&LAn"+*5nv=  `w=b&J/h[!4 "L Ǹ D"㡆డ$9.@ F<;X]3BBn;@d-̆hHx"['HQ7"U+"2a6"U!%t!-@@T@jnNF]#o1?HyL$JzZ$NR~}`Q5fB\&XwdQ~qç 0Y ͙-&oZ Z.|kcq5ɓ+1 $`MrI Q+Zc̚wy/U*[7_g>OW,pA<煌WeF.d~*tRM4LBN!i(L*85rao[4SZw75_ ߚ|x1Lj 8)I[:]F.L+_)U9#<rf͋7[{|Y Ypݭۗ-nr#~ %;u>3R.KDZ]UçfU2FD˨XBWׯ..9JW%L৊υM{U4|.Ag7K \k.|NɤUpK~G6xd7VRUM&dn!CWa2ZfA[Z?f]po!R[71neVoc24/XrԹYrHEH#fLGaZH!@:rӪ9 V{8<+Q#*4Pɫп0 [j6Bqgb^W}?Ҭ|;Q*M.]:1L  #y˱y%g%Cx3]NMc T7& z]ēXFX(dfQt96+'$ nL)n?. D\gU"/3ZGɺZ5U3D= )-g?H=,ɉ*\ɓRq%.gU5u2k1\_)0q&Q&R&M#YÓ5mg>,ΎPç8r06b S%3|1JHV(JkWEŮۯ;#xpc{}N'Tx\8]ZIY#)PJvRHe*yܒuy_K']8yn?S짘xϨNaRgZtR.dRI*vRܢvԽ.Kno6~.%=&y K(̜^+Oe=W,-%'qh|A84|3SG^cZϛ@&\LIx}*KUVPԵ2rjF=UtvrF0-{p7ܻ.dd{l͙C[cD 0{T}]`WxЙ7xf;b0Kf"HEeۯ & FDЗ MxRmh#$okvȈMQo4L Ra 2$'շO󀉈70s'< -sK b4#J 6J ?ɠ_ 2FMZ5tYϴT"a$dwwd3xP dN )"B׈(D}OƗ!-,GC̀"gaBA$ȝD4F#* C8,^fM"aJ;ģbGuLjJ(ʔVÙʟse==..(T",b IzYg`i *$hI߼jewOuyxdW0y+/U!<*\\*j]ҴK7ci" ;}V|]_W8%7䮏񙈫sr,| I0Y8Lv԰O{K+Lg ƞ+f30 ӉW!:dV+9e/踡>ZߗGz^}9ޫ۩ͬO%ox9/|bF60˨M$ɴ/TХ% -) &`&J/x~Ѭ0_5^[0qZׯn#P_&dlk,b2h3$Ȣ1)5r$eF+Z}l1Ty];=סdzx\3#7Œ~4JEI$x07 Ǡ92lْ}3 CF0)iE $ʙMd!H) R) %PȿZyG$Kz~~.xwx%pn b]<5.͙($uʘI=VT~%Sf$N)gH k񨫵UN_3NOdݫT#7 uy+s'Us+ʙ L!eىx t>ݹ=Աri?5껞!OxO3xy Ჸ'9C9ҤSsP&Ҫ\%G͙)rԔR& +͝E_ֺ]~}㊗Kg/]_/bDi-T͖\֛6> DZ~S 4}-_O7&ML$9j%eGxM[C_+OLÐ9[36}:~H:pzI?}n($ӯ⪨*G٘s}2dYi) #;{Ƭ3^Q?ƀ?0v"2EDGxH`6h#D X/pBFh6^Aȝ]ah9fY >ȴ 1Kau#%14 j?"H,LMDXda#h &$2G!qNcHPy?XD isQ2v۟H%EAԈDŃX ]DUcDSv4hc$@ $В!w!$}.{CBF׼$Ok5dɽW&+7\' 1!c.dqX.J}! Eb n D,D@Srʩ(fdnm#^ Lbu`b|͈K'22b:: wX'Å7IzGtVYǙk3vbk*mv%Q2a.W1j*QbQte+vΞªϓ1R. qJ\ykc|me7>QU\72XJzڥbUBBhWY{Lk%MDtT1~KWYs¯65ɭӦǿT2ʤݷz,xp RvJ:*bR" eUFU%5 $Vl>Z;>re$fٮ~=j1ncKU48mM|b*W7f%L2y!t:U,eI@ZTQ(dT[7Q<-;J~C3n͝[=T3YMTAHS9[,$NbL:yglysvNc&,pf]OɾO6=Vbij+親ME5L*l H6 cSb)y53%98ۡJېWh_!* FO=Ÿ\*\-&d%SRn2姺WUæWϒߢ[hjeÉrz<{(R?n3ԙ2pl%u{$ԭ+3 S>]TĔYK;|Lrͮ%=SϾqA"Ʃ I;+ *~#=S 4i#dyϞR;9S,'Î16[Lb2eD?1PR/ -iNOZA/Ve(r,o?g>K_3]9r{Z.k$QQWC*pPmƍ-&Ei-mqj1{%V}1:̜N-% >UifLt.Gx%rƜyp<.\F>>+1߶ip ͔ yDFRΗ9jJZ4%AQQ6$8j.}U/ ZlY8Jp?żg0_q[M&&!j u-ZЄz Kdv_N#? ^ׇ_,Jɹ&F0ΐ*ysM/RF僀>Ly+gϬ]*Q%D9.IE$<''lXk^gm1Q&ZbyjI~$D}Hn $ B 72L נ?ST(RFY`Z4 cL5Ԗ[}8_3'uEL)eXLJJ >$r;yƨIq835\y07Y>Ujv|9o(>?{5sjJ\serJǩtc+ɵ3uy]I(JM*P@=1t2dsH(yC,6 zw34.7(2nܡLAm3<TDA PgU1{]K ~F eE7{KT<ɫ$Ԯn=]&*ՔT%ϨQ.l:yI>.qy? 0Q+ uUhqYiS:eMc,RGIM>\ry;K_\|Y׶U.k^_#sDqĤ0"hOU(Yy#hS*VEƢZghB'<.XHnVLu.ITsx2wM7|$JA~<1W+QKkwcܝ(GO|x̊DJa0>qN% j\[;;I}5B]*rS$e6#1w-akIθfQNSE=rfJPARqI4 ¹ ΋G1:jU2`؟Ur0V +0-Hi -utI?8êW*ɟ>F/.]}ZkRBPUzGzJK92K(PW 'y1dߋ^h 9}Ne7v9N.bȰnѣ&E"DA@;BB}Bx8/Wr2mv4i5d4d:XГ6S?Vu$E壊G*gY2%B-xo}e?wy71 8^-K3d!lv;-(t-^C/ދMzZ~LN/vJ9Mrabr<"\䲂6T&d!JФB;z=Nm V|lΧ#Or~ge*T*iL"Cdiq{vئ8Y7\xPuؖCB̕x@MА% zˆʽJ6/ "@ l 54I6fx܌DZ̽Ü"P !ܻ@ NHP :_~,t hAm7wbw}Y3FZ$e_k PieR:#A dryw 1 -=DO!\D4@U~B&$0Zs1"}Y}c# {BOѢ2I!ś 4\ȍ6ĉa V>в F q"ڽCBY3; A$$1N'Nh\mNF8(JQƯ;PX9"YHTXyMZZ})CÂl>XU%H"|2U˱,ugIQLɩJA@nšor*c%CNIS"ܮb+yFE3$P*B$%?)R.XQxK"G2Us|Wk1ު[!U6E_*'MLI&-,_΅{yW>*>it<@Xns]_&v)YQ>iQGq(Unիg!:U/'ZyfR*"TkRrEncC㊿Y\i:^\FtMSҦ;> ruN7:΢;p6dCXіE-n\r~oL!P%Sb%Tȣ%I>bQ0((#_,>xuZ1ϟ"Lʌ~Uq&+L4鞰Lu@A %ə/ŷo=ۯ{~TI7U2j#ZVaBj$L^`KSOe/ߟ=M$ϳ[u>xR3brni+)lș`=B8/ñ7o[zwPż|F$)>|SpgV))dJ^ FOkӟ{M==iN%=SdTe\\+;|iA W P\Ku_3-F')7RBD8OS)a˒?D6>d|Ru2 +0Fd];Gk07.gφGOnl_02y$J+SOH=: G m*'4JNo;fB3}4.zw%WK x@ Y gxPbk"2[ˆʈFAo$@kBD^PŒ8's"&hR5ȋQ$XD3 h(lY ba :LåU8pQ1sJO( \l#HӱF0a*fy.y؀/RDĒ8QXOmUԌ^К!`ms"&'QQVWT!Sq)S%TiJ:RzǙ͋wt2dmmv*pٔ*^Ref)7q9g_ʏ~0DiJm"1aV 3%覕K*uTֲjTr%~o<<ÛQ\˩iᥖYo\O<㯌d0cك2RV+I6N![S&BB|~`O)8.'y=gǂV8E mG$Zm3L:v +'RTb3*j)eIQHbI `\5bcW'˷Ǚ贑ȞL]}O^i9UDuaq"z11 )`} {sϦS <0e/o}Iv|;:ej/7YBSM/ å'M%3֞:d߽:o3S<_-.|D_ _IdUuQT++w2^K%%+S|i<>G[Ck_DZ4fZ!eRo<\߄,eMIJU€=z=z?GƲ{]4ӷ_JjJ[CGRhέ5diR\$-Ip~KjEfl&LwJ~cOW/لlmR1$:_koXWND@C$>R7xuLFy 򪐾iSuu):;Zw%G=/~*d‰N;ѳ~gɊIsKyf |9[&jp? 5xuBvJcdZ}{ƒJ>G T<<~ 13wp^9#5$Wdk!* MxC3uxH1,+20eUM*rA@L- T 0݇7!1IygÕCM)W5Lc%PMF9^xF9?ʽwgJXcȕyT_||%\rfUhWJk+-MB]:%A>-<^,I~ok僊?vRog >+ү2p|q L,AܳFN3oNhҌgV_8mN_L"jKMK`R{{{L|H.0x|ڴWP_2A_7{zJP_'g te,5cuzʦB={G_xt*WKK*Oɾ>>.(g#V\ÓMI0)RD,i@%<9|KRꤻ$} x?X.+v|g:5JŤ͘3BoIņ/[93ruӿQ*JE\4s'BZ=JʥN/:N_hݙh~6=EԈs DED-ץUBe$BogW?3NdjtOʓ"LQdQcOeM.~rN|yl9XuD OJORFGܓKt^G±)ȨW5MP_hx~9_lX.Gog/~!?eIZnؿio#ڿǡոcz%Gڶ|EjB8lŖǘhP#lKQ `Y' v<&C;hD nl/2oDq1$$%$ 6 EBqO̐#$L㨅 30"z <bGaפg!h* P6g&PF(4×'veF̝hcsNlwfU.$k*P&SQ'2b?57͕WVk*\O=ae f|׋MQqj`RE>UUTd-̲y2R4oGVfߒO]Pa+RJR@rݣӓUL6Š#2P.\j<P93|k-gC=a|-.࿁ɗ;$) A/θQ)M$:7,5'^)Xu*8N+wT|x68oLg1KkqW2qIrPJP2*ZR#\M̏ % T=+ϤBX]>N񋅸B"a:‘2X>i*K50>W)8C#+N`xB #҄d.r|ںTZlIVszH}*I|K>(O>diL&Q1qfhH2g_'S}~i}۶?Ws_`U%S>KU eäLZTRPKPϕ\>gXN/2D3gɔ) $t n.*2yV Ü ılZ~1 T.c;>M{xeȸUN2 U,TLA;uȭl;O |G ^98U@ZxɤuPyaRȨW9gdf+ Ĥ%RX)PlPw<}>9.GwG˂jxw~x)HHE*TIj%a ;I5;ja=!NQ%c>d-Dٗ~{]%؋=Y4Jmh)KD@ְhǣDF;DCrXQg! F@2# D(%tFp(h  oxy%7H+h2G*-.hXFJLe !a 94A[`F[h $L**[jjEFP AQxk4揷po9dJyٞ˘5|kf`H XC?oUF^~ŃƋ゗n pd%gRք}{7or̗8A">2ǝI˜f7p^&#DI";AH \QN$u];Fob l{^$Bm'ߔ,hr/А;3d> æв+}2&D$FB@.`!vW􌑥 $tY](QX=Q0Q:e[B(,GQ$2b70hSpA;e+8rҪ>`Qud'6r䒥QIJʙT')"oP'Wu HhZ׾3ms^<*ψzak*_hQ5NtxqG2s~IE[J&ׂa'JRX?%iM4yZuqc8V*h֫M. m>Ҕkω? \[FOEBSQKO* Z]O2e$yziwK$צ,:FmkLy3i%$:,I85=_eHn> (`i'gjgY8r~hǩ~~'b(5n5ρ%,MY59>KĕȔ83El̘h+멕!D HH -SJ*ۍ*\FuЦR]Gt˙:ty]Z%雍{WJd'kj!괸se%jKLo=w2y(J'rzǣQN\[YXAA- 8WxDANPnBm|/+<[0p\y0L+3MBW=VM4_ηqwS|#Yȴ^KdwOŎfdO.\9qi4 3zVʎhT}3RP~bBVuv1r aBY*b쭌O+;fQϝG30{?NMY 8F*kZʦȖR%qe)=!-R΋OVP:d*Z@7CVVlo47j${F2;}K6d`\D_(FHxр6^2rr6&L=:Bmm ;Zֈon ??h׌,>e3$ "aT$M ~pd0!x[E}\10-}A̓h1BD,v-$ܢ'B_>r!![̭ACdO Ȉag`:h(qF!4#edƖ#屒 f/L !`Zv0k :FHrbh!?+",b`D& wTBU@O؉!;!{tWVv!.o9YCb$Q,ofFR#.F:FBy{Ȅc$@7xHq͢hDXDmJbLu~'U!'iɉ{!7Q8D{;PY~>rm8%ʐ2SuhHQ:vhJ|S:)O/\駅φf #?as+@NR4/P u%ILD9)R 6˨RE:|o%}?揢8^< pEb}5?"B2tꚢ͙"Z(X%6$\ xK:_qMeOÿ)$Mq,) 2DErӡ/qb;iQNK~m'6?,o?yEm%,sմJ&`j j)6phdU|v; Kgo__Xv.}N9YJ&j|RT.8SAgQ>Ov<|>+(O?<| :B2&V *cL%.LzR&y B`%,j+n'K[>4]3~'%RHW:b+l{0v˸j&\ʅ{ǡ8e_# ^G(w~̇ 'Te\cFI"XZ`Ӫq.a:Z LJB0_8t旡aYa9- osC?دE/]3.`x~ )522)Hd"lFw*s}<ϵY\ 땴ӗ\GGt|{[urS#*6i8# { Kì(J7DGSNQG!2bB859 OS%g6͖8cM/O8Ah VoDBaۓD:^9vX)bI*nq0ܝF)Bdxx@b^DoAP;sxl,тo!LaVRyILT]mhuj<lOWsk챤ݾ<xq 7p_.D*K]ud龙$YI(%Dc,!w䜽ro lo91 h8Զ6i%FBQ4%sCa|G`ouv}zꜽMRnXm4fJՔ r5^jpd!giؽmӌ4i- -JLΔ'\4g3|+H.ܹ?yU8u| \W/0S i+ i'H;|3^*Qbӱe[xv:kf&bt '',ɞ|5˷Ʒ}C$<^ᅰ^gOW%Mx7UMTyEhmAT*eVU5 .` 46~3͢ce^Osx(5(e3$&i;iҔ|uIﯤ_v=o5~5`? 4kj(ʜ#_gq{=(uGD|6=M9O(X:jGr^7FL2"D\8t XxQ !"58"}#xʸܵh1*)A9+J'@?(bYqKs9cs3̘(u9RIR8e'&% :Din/A"f4@c; ,OAf"`D7&|D,l! ۘ@,X@+BEDH n{DVnF %B #$Xp"K`(H@d܉E 6VT@Z+5cdnphAxl9,b[0fM0ni=yYDw1}@Nsx6x+sB }oB‘"E&Bf n[+&DV ?Qn:*'g"I:F􋘦 X<.b%db"Ml s0ߩ3 54 bB .Lg5|HhP- ,`2Ѐb h{AFn[НTC#Hgۜr-;+hBDݿH"H\β)Ln>]ӣGBT؎MlˬUSSiԾFbAivS1p8e\Nޓ.8贾L6vy5Rt]9531 (w $$v;8qk,ԣz5׾x+?;+RZݐzJz"\,+FS!{9bn_O<}]šO /-aXf`=>d(wdRKKtOOO%?^ݷzXUۍ]V?VRLRT\袣NR)IHJˋǥ|Y 'v /IsݾQy hBg@K{@7;D DD,aBirl Ї,28DNr!r@ahŢdF{ADi+6b*ƍ_"#:DH$BR'8 eϤ(.w6#q`Р ]x WnDV{A.nքDox͙l7XEȂt"^Õb}$XAC͡*`'nYvD Di ܢB"*+BBŷ~ wMD@}``mv4DTۜ$N@ @nv"h]Cb*$  n4N-k 62 HDE= h2'd-߬BK"fA(ʎ3XѢBX4hWx}3, 6"2$ ubnJM8K6:+h1vtKsȇ}D%dTeyggwFuSt:vրU-hU:V!IZY_9O(tgY%"q^mr=[%TpSUTj(YTlv:M #[ǝ O>˲Elց"ב7U1:j**lUdը)D$408*KdL'93M<%iمɌңPaʥ\Ņ'Pa=2Y{◈fjcS8n S]Vޙ3SnK3rU􊿍qQ">pbY"}u e,VH\jBj(!G$C8#q'*p+s\RZR}Q6x/a1\S5WKRyLAX,Q&< VYP.40fS[oc*6 &(dz^̙K?̝,%;4ʷ4Co6|'r1䬋;3btZIFf? (`5&=',< 5:W=#[ W^CK٨1GoB DG{Y`c ͭ" c|/60pxD6ȅ01v~QxfQlD8R@@'hto[n7!*txH$,:$Dƙ ^ %ChTD6H ؐh2&cx@=7dh"x ehѦ{RÔD 6 L%xE :/ xϙbwɅ=bAw[S!6/D]g xX4lБl oc6@v,tC7C@@︄J+di/AHk< $hK!{!ԋSm bdkNhH12m$:u6;‘2v'oVs(&bML'ĘنEMx"`4xHܥ6Hʖj%*H{tD) %4rԭ l 8w?48K#ijfQ*Wu:1Q|WW' ԭTaz4 Rmu)ѭ)ģ\RӷksC&g,Jv_~g˝fQ)P۱nמ=X?S J&jpUDq{.xGsY8b+6NpK.ujj7Rr922]jQ Lbx^X{9q'%? Y~߆<դ}%Ͼw>l^$ZtLfh^~8n;߽W3ycirs>(|e|ac1)2N \Bhj1ZʉZfi2%p Q7KfPic2F:NPI|G$dzY8s.|F$z?e%):V%ùkÑ5 ^2ApF>գÒi:J:q&IkBEօ$ZDDK=@n_"_ƍH ^ lz!hK8DOZq D-hHIE wWhMP7(!xh?"IxPXʹCe#a %/ ˽x@ '&[!ۤHn{ȁ VDCBwBAx2eÏT[,n-BIIx >hMm;[D‰ ŅAfZ-owEEü.o4J,b*Hs++}'@gfHwyD"Xq xF̳D)bH1@mX=>Nä\`$LlB#,DTFAm݄MiTgԿ0- B-P(ȇ + $"FB@K$ Z{LDH4~JTɕ Pu pIv.q[i,w(S)Di"H ovxį-*cGw;K#biPG }Rz[)Y @͹ԑTeQ| >y `vn匝QK]11R]>`֙ER~ҥ~B1B@ jp}NR6UB2RB͈=t4SOsߛ|27xX4@}- ktt?hbbh(&I6 $!!6bdW$GC`$LH,!A`XwO^ BKQY!@@w Oq `GM-Ȃ@[=$ hy%2IsȀi̬x[c"QpLL h9}+%eDD"N0;@ r"4DD &hh} 8t'dQn:M 14TEj0+D~ !;h@ǴF ݯ.Q &! XhH Xx2Ф؛Zh74-$d^!!aD%B'3m$@3[4jhh@D$1h^$xЕ "hQ HI") hHYy^[TL-/רj|7TzZ_(pU1U;ֲInAR<;m6Ѧd]Xh,:Rk_\!^ 9#I 3 =Z5H,խq У"jHQJ8TrcGRJzᭁω9/׈>\[^SgTa{@X5(OU]$U*u"Rƙ(KPWr%Q^%|W.}O-~I{h__C鷂ϋqsanGUY3̙"{ se&[)ayGGS.>{?3kQ*\O#ݟ_q\Չ.6S&bU( S}~8svrfģ&KeʏC)*iiM]..,sAQmHCuO˦}ۋUoO$Ǚ~q7x.yS,!@%AI">CN Qv9BN2<9s!LMkGT3bh@D\4U =/B@ZAD#fPHEbБ5@{+gaI"+(AIDCTM۩"v-$P$@C B .l/0!6hh [QKY #P' 7Fñl Lzb-` 0(ɜX"$% u#@h!Hy;#!b D,[a  }_" A4e ܹFc!#h94@ȱPАI X);t@~KZf> ")af1iDBQ{EkBDΗDA,@M} b;D\ BC{ ubFB&$D D=D-#c}"5,A`om .bDF8qh(M؉'vKHW!mtF s Kg4mHĸq3G2,״IWF`tTDWgo D.<=I31KDz2@m8e_'~lc!ii\&6pGSt|\N= W^kdžqo p5yMb# 9/`6J򎷃F?|z?x%/?/ G0n6h(ـH"-/4@Ė.$ +"=^ɲ!mQ ;D"?"5DD1IDoxxRXuE"{i?(R SBX wxn@HIKT%͡H~*ȬEy&` И0n٢Xb"$}`ûQ5**4:m1f2dODDd%V("$m" @9$Cۙ5b 4EehDLKXUdŸ@EqMxlX}b"ca,Y"p~B"?Q gBkx"B/K pXx7U 7D hIfi.L0ĘEDI!["/hI53҄R Nj+\?6p8Lڔg+Gl8ciNGjaqq*El3\h 2GQ<2I2`#֠VBĈ|<G{V F]@gۚn>ŚZG&:gQH@֥iPSc?XX:Tƒ\ĖTvvwg3 D?(S1 }ؤG"ȹ~2ۚ?.MJ"tT JҢȆjRi:HԪd Gzr/$t7̗!ȏ ^2?.P""\L96x $V]]ė&yQt@dZgL$DDȃvnm""CX D4@37\m!  /_Z{Iy Ճ[ r]=*2 #<p}?0V: Octavia Boulevarden*Octavia Boulevard2 Octavia Blvd * i4bsSbx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:$  V nփ.b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x8085809f5f8f172f:0x8879e549f7a67b5a R Ab  I5"T9{ x2]r]=j >%;Ej {t>%Bj %D (Ť0:EV_qi1j9EvqNEXoZrH:291MnXv8eRVDMF4mQoJ@ (5%I>=m[?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913[ ? =?@Mj >%;Ej {t>%Bj %Dj "O?%j p=J?%j!R?*PRIORITY_MINOR_ARTERIAL   /_[{Iy i4bsSb" 1Fb H,*,  /_Z{Iy  ܡ. ]-*,  /_Z{Iy  ?a.{tm*R  /_Z{Iy  (|(@@p2$  restriction_positive1 *,  /_Z{Iy  "o\һ3?@*,  /_Z{Iy  /_b0/D**,  /_Z{Iy  ;0}2`*R  jlN^  /_Z{Iy2$  restriction_positive1 *,  U.hD  /_Z{Iy*R  u1@",!  /_Z{Iy2$  restriction_positive1 2MBaB`p@G1"  /_[{Iy Ճ[ r]=*V: Octavia Boulevarden*Octavia Boulevard2 Octavia Blvd * i4bsSbx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:$ nփ. V b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x8085809f5f8f172f:0x8879e549f7a67b5b R Ab  I5"T9{ x2]r]=j >%;Ej {t>%Bj %D (Ť0:EV_qi1j9EvqNEXoZrH:291MnXv8eRVDMF4mQoJ@ (5%I>=m[?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913[ ? =?@Mj >%;Ej {t>%Bj %Dj "O?%j p=J?%j!R?*PRIORITY_MINOR_ARTERIAL K  /_Z{Iy i4bsSb" j#Z#?*MBaB`p@@x8!|  /_b0/D* Ճ[ D =*2 #<p}?0V: Octavia Boulevarden*Octavia Boulevard2 Octavia Blvd * i4bsSbx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: փ; Ab  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x8085809f5f8f172f:0x2a442fb89130af62 R Ab  I5"T9{ x2]D =j B>%șEj  >%tBj %LD (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvArBkb6XMKk4J@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913[ ? =?@Mj B>%șEj  >%tBj %LDj "O?%j p=J?%j!R?*PRIORITY_MINOR_ARTERIAL   /_c0/D* i4bsSb" j@ Ib[':*R  ܡ. ]-  /_b0/D*2$  restriction_positive1 *R  "o\һ3?@  /_b0/D*2$  restriction_positive1 *,  A)}o|  /_b0/D**,  # aEn=  /_b0/D**R  (|B Z  /_b0/D*2$  restriction_positive1 *,  /_Z{Iy  /_b0/D**R  /_b0/D*  uD(*I2$  restriction_positive1 *R  /_b0/D*  =#Z h(!y!2$  restriction_positive1 *R  /_b0/D*  j>2$  restriction_positive1 2MzAB`p@\ ^n  /_c0/D* Ճ[ D =*V: Octavia Boulevarden*Octavia Boulevard2 Octavia Blvd * i4bsSbx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: A փ;b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x8085809f5f8f172f:0x2a442fb89130af63 R Ab  I5"T9{ x2]D =j B>%șEj  >%tBj %LD (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvArBkb6XMKk4 (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913[ ? =?@Mj B>%șEj  >%tBj %LDj "O?%j p=J?%j!R?*PRIORITY_MINOR_ARTERIAL K  /_b0/D* i4bsSb" 1Fb%Lt*MzAB`p@}K  # aEn= Ճь S7<*2 #<p}?L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: Sь Ճ5b  I5"T_ b  WN/9!PɁ2 x-j =%ۥyCj 33>%@j %? (013F1F18F289 101F1 F18 F28913M?y =?@Mj =%ۥyCj 33>%@j %?j 3"?%j LR?%j?*PRIORITY_LOCAL   # aEn= W_7혯ej" 1Fbn.!*R  # aEn=  ܡ. ]-2$  restriction_positive1 *,  # aEn=  ?a.{tm*,  # aEn=  (|(@@p*,  # aEn=  "o\һ3?@*,  # aEn=  /_b0/D**R  # aEn=  ;0}2`2$  restriction_positive1 *R  OZ⡀'TcttU  # aEn=2$  restriction_positive1 2`p0 t  # aEn= Ճь S7<*L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: Ճ5 Sьb  I5"T_ b  WN/9!PɁ2 x-j =%ۥyCj 33>%@j %? (013F1F18F289 101F1 F18 F28913M?y =?@Mj =%ۥyCj 33>%@j %?j 3"?%j LR?%j?*PRIORITY_LOCAL F  # aEn= W_7혯ej" 7MࡀCt *`p0/ 0  ?a.{tm Ճ5 ,ǜ<*2 #<p}?L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: m׃ Rb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x],ǜ< (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913M?L =?@Mj 3"?%j LR?%j?*PRIORITY_LOCAL   ?a.{tm W_7혯ej" !_]xn*R  ܡ. ]-  ?a.{tm2$  restriction_positive1 *R  "o\һ3?@  ?a.{tm2$  restriction_positive1 *R  A)}o|  ?a.{tm2$  restriction_positive1 *,  # aEn=  ?a.{tm*R  (|B Z  ?a.{tm2$  restriction_positive1 *,  /_Z{Iy  ?a.{tm*R  ?a.{tm  t⡀{뿡p2$  restriction_positive1 *R  ?a.{tm  K[2h7 7+2$  restriction_positive1 2`p0y";  ?a.{tm Ճ5 ,ǜ<*L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: R m׃b  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x],ǜ< (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913M?L =?@Mj 3"?%j LR?%j?*PRIORITY_LOCAL F  ?a.{tm W_7혯ej" 1Fb8[KF*`p0M ^:  !_( +"H R R #<2 Rb  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0:FjX7nNI294kTdQadvo#(X```````px13F1F22 101F1 F2213L> =?@M  €  !_]xnhi$h  uD(*I G  Ԕ G =*V: Octavia Boulevarden*Octavia Boulevard2 Octavia Blvd * i4bsSbx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  Ab  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1ff7592b3:0xabe5492a28b544f4 R Ab  I5"T9{ x2] G =j B>%șEj  >%tBj %=D (Ť0lj:EV_qi1j9EvqNEXoZrH:291MnXvsZsqpprmHZuJ@ȉ (5%I>=m[?E%I>Mm[?X```````hpx???ȉ13F1F18F289 101F1 F18 F28913[ ? =?@Mj B>%șEj  >%tBj %=Dj "O?%j p=J?%j!R?*PRIORITY_MINOR_ARTERIAL K  D(*I i4bsSb" j@ Ib[':*MzAB`p@0n  uD(*I G  Ԕ G =*V: Octavia Boulevarden*Octavia Boulevard2 Octavia Blvd * i4bsSbx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: A b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1ff7592b3:0xabe5492a28b544f5 R Ab  I5"T9{ x2] G =j B>%șEj  >%tBj %=D (Ť0lj:EV_qi1j9EvqNEXoZrH:291MnXvsZsqpprmHZuJ@ȉ (5%I>=m[?E%I>Mm[?X```````hpx???ȉ13F1F18F289 101F1 F18 F28913[ ? =?@Mj B>%șEj  >%tBj %=Dj "O?%j p=J?%j!R?*PRIORITY_MINOR_ARTERIAL   D(*I i4bsSb" Zz*R  jlN^  uD(*I2$  restriction_positive1 *,  U.hD  uD(*I*,  u1@",!  uD(*I*R  /_b0/D*  uD(*I2$  restriction_positive1 *R  uD(*I  ;lIZHpKJ2$  restriction_positive1 *,  uD(*I  u1@",!*R  uD(*I  E-#?2$  restriction_positive1 2MzAB`p@M ^H  ΓSӯ~C ]O ]O #<2 ]Ob  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0:FjX7nNIu3EBcdSaFAf#(X```````px13F1F22 101F1 F2213L> =?@M  ŝ€  Γϲ ƶ mI?N(  L#Z#? G[ Ԕ;2 b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0xf63f23985aa2a223 R Ab  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]; (0:EV_qi1j9EvqNEXoZrH:291MnXvM5teds87_8C:FjX7nNIfCERDPhRaoPJ@13F1F19 101F1 F1913#?n =?@Mj ?%j !M?%j R?%j >%j N>%j %  韔€d  L/ra  u1@",!  L4  /_[{Iy L~ c mI?WT  LH l& G[ Ԕ;2 Ԕb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0xde266c20f048c6d8 R Ab  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]; (0:EV_qi1j9EvqNEXoZrH:291MnXvjSolCiPnHTs:FjX7nNIRAI3EdzE8DGJ@13F1F19 101F1 F1913 "?n =?@Mj r"?%j W)Q?%j Q?%j %j  ޝ>%j %  €d  =#Z h(!y!  i>  L=_  t⡀{뿡p L~ crR T1  Fލhsŧ ] K O<*2 #<p}?I/ Laguna Streeten* Laguna Street2 Laguna St * 7 ]x h\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  K ]Ob  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]%}0Ej  >%Aj %A (0ܮ:EV_qi1j9EvqNEXoZrHܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913w ?y =?@Mj ]>%}0Ej  >%Aj %Aj a%?%j U?%j?*PRIORITY_LOCAL   Fލhsŧ 7 ]x h" Γϲ ƶ*R  Fލhsŧ  ;2I*魑2$  restriction_positive1 *R  gm牡X߬4.  Fލhsŧ2$  restriction_positive1 *R  #++,  Fލhsŧ2$  restriction_positive1 2p08 >u!$>s  Fލhsŧ ] K O<*2 #<p}?I/ Laguna Streeten* Laguna Street2 Laguna St * 7 ]x h\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: ]O  Kb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]%}0Ej  >%Aj %A (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913w ?y =?@Mj ]>%}0Ej  >%Aj %Aj a%?%j U?%j?*PRIORITY_LOCAL   Fލhsŧ 7 ]x h" {{P̻4j *R  $,顀ݏ  Fލhsŧ2$  restriction_positive1 *R  ;2I*魑  Fލhsŧ2$  restriction_positive1 *R  B(g^ő  Fލhsŧ2$  restriction_positive1 *R  Fލhsŧ  jlN^2$  restriction_positive1 *R  Fލhsŧ  gm牡X߬4.2$  restriction_positive1 2p0 ln  Γϲ ƶ ]O ]O;2 ]Ob  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]; (0:FjX7nNIVVgh6qnJZWB13F1F19 101F1 F19133?n =?@Mj X;?%j  L?%j ff?%j ]>%j  $>%j %  ŝ€d  $,顀ݏ  Fލhsŧ  B(g^ő  ;2I*魑 ΓSӯ~C IhJC  {{P̻4j   K  K;2  Kb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]; (0:EV_qi1j9EvqNEXoZrH:FjX7nNIQipFbo8GW3aJ@13F1F19 101F1 F1913K"?n =?@Mj X#?%j R?%j Q?%j –>%j ϰ>%j %  ʘ€d  𡀅mN^  gm牡X߬4.  #++,  Fލhsŧ {{PޮN.Mb mI?9  Lşۓ G[ Ԕ;2 G[b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0x1993dbcc9fc5d0fa R Ab  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]; (0:EV_qi1j9EvqNEXoZrH:291MnXvwuycES1dr-S:FjX7nNIznzY1CHzvo-J@13F1F19 101F1 F1913 "?n =?@Mj r"?%j W)Q?%j Q?%j )>%j +>%j %  柔€d  L5  U.hD  𡀅lN^  OZ⡀&TcttU L~ c|q{ҿ  L4  G[ Ԕt;*B& Oak Streeten* Oak Street2Oak St * ?lqCwx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: G[ b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0xc8cfef0ae7ddfc34 R Ab  I5"T9{ x2]t;j >%;Ej {t>%Bj %D (Ť0Ȁ:EV_qi1j9EvqNEXoZrH:291MnXvBg9dDXRJtDlJ@Ȁ (5>=`?E%I>Mm[?X```````hpx???Ȁ13F1F18F289 101F1 F18 F28913%? =?@Mj >%;Ej {t>%Bj %Dj ]"?%j P?%j!R?*PRIORITY_MINOR_ARTERIAL P  j5  ?lqCw" j#Z#?2MBaB`p@\p{V  L5  G[ Ԕt;*B& Oak Streeten* Oak Street2Oak St * ?lqCwx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  G[b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0xc8cfef0ae7ddfc35 R Ab  I5"T9{ x2]t;j >%;Ej {t>%Bj %D (Ť0Ȁ:EV_qi1j9EvqNEXoZrH:291MnXvBg9dDXRJtDlJ@Ȁ (5>=`?E%I>Mm[?X```````hpx???Ȁ13F1F18F289 101F1 F18 F28913%? =?@Mj >%;Ej {t>%Bj %Dj ]"?%j P?%j!R?*PRIORITY_MINOR_ARTERIAL K  j4  ?lqCw" jşۓ*MBaB`p@L T2kO4^  oabR- Q QY;2 Qb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]Y; (0:EV_qi1j9EvqNEXoZrH:FjX7nNIE6fktTxtaeRJ@13F1F19 101F1 F1913J?n =?@Mj ӱ?%j M?%j ?%j vs=%j d=%j %  €P  KRG0U  b~b3  i> oa&M9 WQK  7Mࡀrmo Sь Sь #<2 Sьb  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0:FjX7nNIfTWDY4v07rA2(X```````px13F1F22 101F1 F2213L> =?@M  Զ€  7MࡀCt t\H  L.ra G[ Ԕo҅;*B& Oak Streeten* Oak Street2Oak St * ?lqCwx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  Ab  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0xe9b861de14c3722e R Ab  I5"T9{ x2]o҅;j >%;REj d >%`Bj %DB (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvlEHKEQT4GSOJ@ (5%I>=m[?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913%? =?@Mj >%;REj d >%`Bj %DBj ]"?%j P?%j!R?*PRIORITY_MINOR_ARTERIAL P  j/ra ?lqCw" j@ Ib[':2MBaB`p@TC/k  L/ra G[ Ԕo҅;*B& Oak Streeten* Oak Street2Oak St * ?lqCwx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: A b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0xe9b861de14c3722f R Ab  I5"T9{ x2]o҅;j >%;REj d >%`Bj %DB (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvlEHKEQT4GSOJ@ (5%I>=m[?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913%? =?@Mj >%;REj d >%`Bj %DBj ]"?%j P?%j!R?*PRIORITY_MINOR_ARTERIAL K  j.ra ?lqCw" j#Z#?*MBaB`p@j;z  i> G[ QԔG<*2 #<p}?L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: Ԕ Qb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]G%@j %@ (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913M?y =?@Mj -=%VCj 33>%@j %@j 3"?%j LR?%j?*PRIORITY_LOCAL   j> W_7혯ej" oabR-*R  j>  F0U2$  restriction_positive1 *R  j>  c~b32$  restriction_positive1 *R  jlN^  j>2$  restriction_positive1 *,  U.hD  j>*R  t⡀{뿡p  j>2$  restriction_positive1 *,  u1@",!  j>*R  /_b0/D*  j>2$  restriction_positive1 2`p0Dc5W  i> G[ QԔG<*L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: Q Ԕb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]G%@j %@ (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913M?y =?@Mj -=%VCj 33>%@j %@j 3"?%j LR?%j?*PRIORITY_LOCAL F  j> W_7혯ej" jH l&*`p0xp>1  pJ p P <*2 #<p}?0L2 Hickory Streeten*Hickory Street2 Hickory St * YKO F$)\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: P  pb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x]< (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913# ?O =?@Mj ?%j E?%j>*PRIORITY_TERMINAL   pJ YKO F$)"  t3 *R  ;lIZHpKJ  pJ2$  restriction_positive1 2`p "c  pJ p P <*2 #<p}?0L2 Hickory Streeten*Hickory Street2 Hickory St * YKO F$)\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: p P b  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x]< (0ܮ:EV_qi1j9EvqNEXoZrHܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913# ?O =?@Mj ?%j E?%j>*PRIORITY_TERMINAL   pJ YKO F$)" G @0$M!*R  pJ  U.hD2$  restriction_positive1 2`p \p`<_  L=_  G[ Ԕ&;*B& Oak Streeten* Oak Street2Oak St * ?lqCwx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: Ԕ Ab  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0x205fa0a0833dbee8 R Ab  I5"T9{ x2]&;j IZ>%xfEj ,>%HBj %B (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvQJD1AvNWs8UJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913%? =?@Mj IZ>%xfEj ,>%HBj %Bj ]"?%j P?%j!R?*PRIORITY_MINOR_ARTERIAL K  j=_  ?lqCw" j@ Ib[':*MBaB`p@|q,  L=_  G[ Ԕ&;*B& Oak Streeten* Oak Street2Oak St * ?lqCwx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: A Ԕb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0x205fa0a0833dbee9 R Ab  I5"T9{ x2]&;j IZ>%xfEj ,>%HBj %B (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvQJD1AvNWs8UJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913%? =?@Mj IZ>%xfEj ,>%HBj %Bj ]"?%j P?%j!R?*PRIORITY_MINOR_ARTERIAL P  j=_  ?lqCw" jH l&2MBaB`p@$ _/o  B(g^ő B؃  ]OE8:=*2 #<p}?C) Lily Streeten* Lily Street2Lily St * _桀D.s*Eh\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: G؃  ]Ob  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a19cb142d7:0xdd91c5835e679228 R μAx2]E8:=j %j %j %@ (Ť0:291MnXvRFnQLD8rI-P2(X```````px13F1F18F289 101F1 F18 F28913b ?| =?@Mj %j %j %@j ?%j \B?%j>*PRIORITY_TERMINAL   B)g^ő _桀D.s*Eh" Γϲ ƶ*R  B(g^ő  Fލhsŧ2$  restriction_positive1 *R  B(g^ő  ;2I*魑2$  restriction_positive1 *R  _>d*Lbm  B(g^ő2$  restriction_positive1 *R  !p\  B(g^ő2$  restriction_positive1 *R  Q.|{rڄ  B(g^ő2$  restriction_positive1 2p tF?  B)g^ő B؃  ]OE8:=*2 #<p}?C) Lily Streeten* Lily Street2Lily St * _桀D.s*Eh\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: ]O G؃ b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a19cb142d7:0xdd91c5835e679229 R μAx2]E8:=j %j %j %@ (Ť0:291MnXvRFnQLD8rI-P2(X```````px13F1F18F289 101F1 F18 F28913b ?| =?@Mj %j %j %@j ?%j \B?%j>*PRIORITY_TERMINAL D  B(g^ő _桀D.s*Eh" )z$2E*p ߻%  𡀅lN^  K ԔVD=*2 #<p}?0@& Oak Streeten* Oak Street2Oak St * ?lqCw\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:$  K F G[b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1f0f8ce95:0xc21c5e148ce54e6c R Ab  I5"T9{ x2]VD=j >%;Ej {t>%Bj %D (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvMub0VWvfnuOJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913%? =?@Mj >%;Ej {t>%Bj %Dj ]"?%j P?%j!R?*PRIORITY_MINOR_ARTERIAL   jmN^ ?lqCw" jşۓ*R  gm牡X߬4.  jlN^2$  restriction_positive1 *R  Fލhsŧ  jlN^2$  restriction_positive1 *R  #++,  jlN^2$  restriction_positive1 *R  jlN^  uD(*I2$  restriction_positive1 *R  jlN^  =#Z h(!y!2$  restriction_positive1 *R  jlN^  OZ⡀'TcttU2$  restriction_positive1 *R  jlN^  j>2$  restriction_positive1 *R  jlN^  /_Z{Iy2$  restriction_positive1 2MBaB`p@42ҍ  𡀅mN^  K ԔVD=*2 #<p}?0@& Oak Streeten* Oak Street2Oak St * ?lqCw\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:$ G[ F  Kb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1f0f8ce95:0xc21c5e148ce54e6d R Ab  I5"T9{ x2]VD=j >%;Ej {t>%Bj %D (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvMub0VWvfnuOJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913%? =?@Mj >%;Ej {t>%Bj %Dj ]"?%j P?%j!R?*PRIORITY_MINOR_ARTERIAL K  jlN^ ?lqCw" {{P̻4j *MBaB`p@BVK  t⡀z뿡p [ R<*L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: Ԕ Rb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1e274ada3:0x70a0f3a1bfeba37a R Ab  I5"T9{ x]< (Ť0:EV_qi1j9EvqNEXoZrH:291MnXviEMBBsf_aNFJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913M?L =?@Mj 3"?%j LR?%j?*PRIORITY_LOCAL F  j{뿡p W_7혯ej" !_]xn*`p0\:^3  t⡀{뿡p [ R<*2 #<p}?0L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: R Ԕb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1e274ada3:0x70a0f3a1bfeba37b R Ab  I5"T9{ x]< (Ť0:EV_qi1j9EvqNEXoZrH:291MnXviEMBBsf_aNFJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913M?L =?@Mj 3"?%j LR?%j?*PRIORITY_LOCAL   jz뿡p W_7혯ej" jH l&*R  t⡀{뿡p  =#Z h(!y!2$  restriction_positive1 *R  t⡀{뿡p  j>2$  restriction_positive1 *R  ?a.{tm  t⡀{뿡p2$  restriction_positive1 2`p0gB<  $,顀ݏ ]O Sь2=*2 #<p}?C) Lily Streeten* Lily Street2Lily St * _桀D.s*Eh\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: ]O Sьb  I5"T_ b  WN/9!PɁ2 x-j %j %j %@@ (013F1F18F289 101F1 F18 F28913b ?| =?@Mj %j %j %@@j ?%j \B?%j>*PRIORITY_TERMINAL F  $,顀ݏ _桀D.s*Eh" 7MࡀCt *`p *PRIORITY_TERMINAL   $,顀ݏ _桀D.s*Eh" Γϲ ƶ*R  $,顀ݏ  Fލhsŧ2$  restriction_positive1 *R  $,顀ݏ  ;2I*魑2$  restriction_positive1 *R  OZ⡀'TcttU  $,顀ݏ2$  restriction_positive1 2`p P>  u0@",! G  Ԕa=*V: Octavia Boulevarden*Octavia Boulevard2 Octavia Blvd * i4bsSbx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1ff7592b3:0xfd211aac2c224030 R Ab  I5"T9{ x2]a=j b>%1Ej H>%Aj %tB (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvmN9o892tEvCJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913[ ? =?@Mj b>%1Ej H>%Aj %tBj "O?%j p=J?%j!R?*PRIORITY_MINOR_ARTERIAL K  1@",! i4bsSb" If#*MBaB`p@w4h  u1@",! G  Ԕa=*V: Octavia Boulevarden*Octavia Boulevard2 Octavia Blvd * i4bsSbx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1ff7592b3:0xfd211aac2c224031 R Ab  I5"T9{ x2]a=j b>%1Ej H>%Aj %tB (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvmN9o892tEvCJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913[ ? =?@Mj b>%1Ej H>%Aj %tBj "O?%j p=J?%j!R?*PRIORITY_MINOR_ARTERIAL   0@",! i4bsSb" j#Z#?*,  u1@",!  uD(*I*,  u1@",!  =#Z h(!y!*,  u1@",!  j>*R  u1@",!  /_Z{Iy2$  restriction_positive1 *,  uD(*I  u1@",!*R  "_;C  u1@",!2$  restriction_positive1 *R  c~b3  u1@",!2$  restriction_positive1 2MBaB`p@y"~  U.hD G P Ԕ}1<*L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: G[ P b  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x]}1< (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913M?L =?@Mj 3"?%j LR?%j?*PRIORITY_LOCAL F  jhD W_7혯ej" G @0$M!*`p00lϑ  U.hD G P Ԕ}1<*2 #<p}?L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: P  G[b  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x]}1< (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913M?L =?@Mj 3"?%j LR?%j?*PRIORITY_LOCAL   jhD W_7혯ej" jşۓ*R  ;lIZHpKJ  U.hD2$  restriction_positive1 *R  pJ  U.hD2$  restriction_positive1 *,  U.hD  uD(*I*,  U.hD  =#Z h(!y!*R  U.hD  OZ⡀'TcttU2$  restriction_positive1 *,  U.hD  j>*,  U.hD  /_Z{Iy2`p0L T2knq  7MࡀCt  Sь SьY;2 Sьb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]Y; (0:EV_qi1j9EvqNEXoZrH:FjX7nNICcla-q8YGJMJ@13F1F19 101F1 F1913?n =?@Mj  ?%j  M?%j p= ?%j X=%j d=%j %  Զ€P  OZ⡀'TcttU  $,顀ݏ  # aEn= 7MࡀrmoM ^g  {{PޮN.Mb  K  K #<2  Kb  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0:FjX7nNIxzKW1TVvuT_#(X```````px13F1F22 101F1 F2213L> =?@M  ʘ€  {{P̻4j  mI?U  L@ Ib[': G[ Ԕ;2 Ab  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0x3a275b62e2490a40 R Ab  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]; (0͒:EV_qi1j9EvqNEXoZrH:291MnXvdtNoFzVmXDk:FjX7nNIJQD1thbQ_DdJ@͒͒13F1F19 101F1 F1913#?n =?@Mj ?%j !M?%j R?%j >%j >%j %  €d  L=_  uD(*I  L.ra  /_b0/D* L~ c Dߞ  oa&M9 Q Q #<2 Qb  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0ē:FjX7nNIzqQy_dVsD_Aē2(X```````pxē13F1F22 101F1 F2213L> =?@M  €  oabR-慘 >i0Wڛ  G @0$M! P  P Y;2 P b  I5"T_ b  WN/9!PɁ2 b  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]Y; (0:EV_qi1j9EvqNEXoZrH:FjX7nNIT9N5inhkJ-YJ@13F1F19 101F1 F1913?0?A =?@Mj ӱ?%j M?%j p= ?%  €P  ;lIZHpKJ  pJ  U.hD G^D[/."c  #+*,  (   KJ=*2 #<p}?@& Oak Streeten* Oak Street2Oak St * ?lqCw\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  K ( b  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]J=j >%;Ej {t>%Bj % D (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913%? =?@Mj >%;Ej {t>%Bj % Dj ]"?%j P?%j!R?*PRIORITY_MINOR_ARTERIAL I  @+,  ?lqCw" @~w'M8*MBaBp@YUi  #++,  (   KJ=*2 #<p}?@& Oak Streeten* Oak Street2Oak St * ?lqCw\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: (   Kb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]J=j >%;Ej {t>%Bj % D (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913%? =?@Mj >%;Ej {t>%Bj % Dj ]"?%j P?%j!R?*PRIORITY_MINOR_ARTERIAL   @*,  ?lqCw" {{P̻4j *R  #++,  jlN^2$  restriction_positive1 *R  #++,  gm牡X߬4.2$  restriction_positive1 *R  #++,  Fލhsŧ2$  restriction_positive1 *R  Q.|zrڄ  #++, 2$  restriction_positive1 *R  @֝"I  #++, 2$  restriction_positive1 *R  ?ࣀ  #++, 2$  restriction_positive1 2MBaBp@4 :wp   L~ c G[ Ԕ #<2 b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1fd4ca391:0x87899d63dcee097e R μAj 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0:291MnXvMGDC1bQDLZq:FjX7nNIdm8Qub2rDvy (5 #==u?E%I>Mm[?X```````hpx???13F1F22 101F1 F2213L> =?@M  Dz꟔€P  L#Z#?  L@ Ib[':  LH l&  LşۓZl9  gm牡X߬4. SG N K<*2 #<p}?I/ Laguna Streeten* Laguna Street2 Laguna St * 7 ]x h\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: NSG  Kb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]%oDj ,{g>%Aj %PA (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913w ?y =?@Mj >%oDj ,{g>%Aj %PAj a%?%j U?%j?*PRIORITY_LOCAL   gm牡X߬4. 7 ]x h" {{P̻4j *R  gm牡X߬4.  jlN^2$  restriction_positive1 *R  gm牡X߬4.  Fލhsŧ2$  restriction_positive1 *R  %, p  gm牡X߬4.2$  restriction_positive1 *R  Ӕ, 3_m  gm牡X߬4.2$  restriction_positive1 2p0T 0a  gm牡X߬4. SG N K<*2 #<p}?I/ Laguna Streeten* Laguna Street2 Laguna St * 7 ]x h\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  K NSGb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]%oDj ,{g>%Aj %PA (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913w ?y =?@Mj >%oDj ,{g>%Aj %PAj a%?%j U?%j?*PRIORITY_LOCAL   gm牡X߬4. 7 ]x h" 8a@\*R  Fލhsŧ  gm牡X߬4.2$  restriction_positive1 *R  #++,  gm牡X߬4.2$  restriction_positive1 *R  gm牡X߬4.  , p2$  restriction_positive1 2p0H'Tkl  OZ⡀&TcttU S[ ԔK<*L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: Sь G[b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1e2135a4f:0x557474f963541126 R Ab  I5"T9{ x2]K%@j %? (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvC5NVVKLikLeJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913M?y =?@Mj =%ۥyCj 33>%@j %?j 3"?%j LR?%j?*PRIORITY_LOCAL F  j'TcttU W_7혯ej" jşۓ*`p0T0]'  OZ⡀'TcttU S[ ԔK<*2 #<p}?0L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: G[ Sьb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a1e2135a4f:0x557474f963541127 R Ab  I5"T9{ x2]K%@j %? (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvC5NVVKLikLeJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913M?y =?@Mj =%ۥyCj 33>%@j %?j 3"?%j LR?%j?*PRIORITY_LOCAL   j&TcttU W_7혯ej" 7MࡀCt *R  jlN^  OZ⡀'TcttU2$  restriction_positive1 *R  U.hD  OZ⡀'TcttU2$  restriction_positive1 *R  OZ⡀'TcttU  $,顀ݏ2$  restriction_positive1 *R  OZ⡀'TcttU  # aEn=2$  restriction_positive1 2`p0 h  G^D[/. P  P  #<2 P b  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0:FjX7nNIncYEJFeyjnp2(X```````px13F1F22 101F1 F2213L> =?@M  €  G @0$M!@e^  ͪ@dȩ U 2Sr<*L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: 2  Sb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a208a1aacd:0xf38ca9c864919b40 R Ab  I5"T9{ x2]r=m[?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913M?y =?@Mj %mBj  h=%@j %@j 3"?%j LR?%j?*PRIORITY_LOCAL F  ͪAdȩ W_7혯ej" =ƅ*`p0G~  ͪAdȩ U 2Sr<*2 #<p}?L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  S 2b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a208a1aacd:0xf38ca9c864919b41 R Ab  I5"T9{ x2]r=m[?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913M?y =?@Mj %mBj  h=%@j %@j 3"?%j LR?%j?*PRIORITY_LOCAL   ͪ@dȩ W_7혯ej" By ޿(C;o*R  ͪAdȩ  ) ~h:1X2$  restriction_positive1 *R  ͪAdȩ  KROO~SƲ2$  restriction_positive1 *R  "_;C  ͪAdȩ2$  restriction_positive1 *R  c~b3  ͪAdȩ2$  restriction_positive1 2`p0M7  [  U  St8\;*E) Fell Streeten* Fell Street2Fell St * qH߉]Hx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:   Sb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0xf9dd095bef93e9a6 R μAx2]t8\;j  >%e"Ej H>%Aj %B (Ť0:291MnXv6C9_gFYJ0EW#(X```````px13F1F18F289 101F1 F18 F28913Y]%? =?@Mj  >%e"Ej H>%Aj %Bj  #?%j O?%j!R?*PRIORITY_MINOR_ARTERIAL K  [  qH߉]H" =ƅ*MBaB`p@,Lru  [  U  St8\;*E) Fell Streeten* Fell Street2Fell St * qH߉]Hx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  S b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0xf9dd095bef93e9a7 R μAx2]t8\;j  >%e"Ej H>%Aj %B (Ť0:291MnXv6C9_gFYJ0EW#(X```````px13F1F18F289 101F1 F18 F28913Y]%? =?@Mj  >%e"Ej H>%Aj %Bj  #?%j O?%j!R?*PRIORITY_MINOR_ARTERIAL M  [  qH߉]H" Zz2MBaB`p@G[50  U2 (? &1r~>5=*2 #<p}?I/ Linden Streeten* Linden Street2 Linden St * }`i}[ȅ\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: &1r~ (?b  I5"T_ b  WN/9!PɁ2 x]>5= (013F1F18F289 101F1 F18 F28913 ?O =?@Mj =?%j \B?%j>*PRIORITY_TERMINAL   U2 }`i}[ȅ" 5=*2 #<p}?I/ Linden Streeten* Linden Street2 Linden St * }`i}[ȅ\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: (? &1r~b  I5"T_ b  WN/9!PɁ2 x]>5= (013F1F18F289 101F1 F18 F28913 ?O =?@Mj =?%j \B?%j>*PRIORITY_TERMINAL F  U2 }`i}[ȅ" q/ Nk6-J*`p ,Lr#j  lx^X U  S;*E) Fell Streeten* Fell Street2Fell St * qH߉]Hx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  Ub  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0x589a9583ff5e786c R μAx2];j B>%șEj  >%tBj %CD (Ť0:291MnXvqFGkK52FT73#(X```````px13F1F18F289 101F1 F18 F28913Y]%? =?@Mj B>%șEj  >%tBj %CDj  #?%j O?%j!R?*PRIORITY_MINOR_ARTERIAL M  mx^X qH߉]H" 7&t52MBaB`p@MX:  mx^X U  S;*E) Fell Streeten* Fell Street2Fell St * qH߉]Hx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: U b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0x589a9583ff5e786d R μAx2];j B>%șEj  >%tBj %CD (Ť0:291MnXvqFGkK52FT73#(X```````px13F1F18F289 101F1 F18 F28913Y]%? =?@Mj B>%șEj  >%tBj %CDj  #?%j O?%j!R?*PRIORITY_MINOR_ARTERIAL K  lx^X qH߉]H" If#*MBaB`p@ m -  Zz U  SY;2 b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0xbe061d7aff5ae792 R Ab  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]Y; (0:EV_qi1j9EvqNEXoZrH:291MnXvULZqY8enPsD:FjX7nNI4XKqFNSzK4mJ@13F1F19 101F1 F1913#?n =?@Mj ?%j )M?%j R?%j U֣>%j R>%j %  ͨ€P  [   QzN  uD(*I r2.V)7.@׷  ;lIZHpKJ P   S W<*L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: P  Ub  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2016cf53b:0x4a884b70485a4984 R KAb  I5"T9{ x] W< (Ť0:n0JCpw_Tiyqeg5FkeU:n0JCpw_bhqkG3iV9a0:EV_qi1j9EvqNEXoZrH:QMWzLfQzZr-KbgajKV:291MnXv2jRYQHa_ytSJ@ (5%I?=m[AE%I?Mm[AX```````hpx@?*??13F1F18F289 101F1 F18 F28913M?L =?@Mj 3"?%j LR?%j?*PRIORITY_LOCAL F  IZHpKJ W_7혯ej" 7&t5*`p0{[j  ;lIZHpKJ P   S W<*2 #<p}?L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: U P b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2016cf53b:0x4a884b70485a4985 R KAb  I5"T9{ x] W< (Ť0:n0JCpw_Tiyqeg5FkeU:n0JCpw_bhqkG3iV9a0:EV_qi1j9EvqNEXoZrH:QMWzLfQzZr-KbgajKV:291MnXv2jRYQHa_ytSJ@ (5%I?=m[AE%I?Mm[AX```````hpx@?*??13F1F18F289 101F1 F18 F28913M?L =?@Mj 3"?%j LR?%j?*PRIORITY_LOCAL   IZHpKJ W_7혯ej" G @0$M!*R  ;lIZHpKJ  U.hD2$  restriction_positive1 *R  ;lIZHpKJ  pJ2$  restriction_positive1 *R  uD(*I  ;lIZHpKJ2$  restriction_positive1 *R  "_;C  ;lIZHpKJ2$  restriction_positive1 *R  c~b3  ;lIZHpKJ2$  restriction_positive1 *,  |s  ;lIZHpKJ2`p0Zls  96C~ξ0 I? (Cy<<*2 #<p}?I/ Laguna Streeten* Laguna Street2 Laguna St * 7 ]x h\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: IC (?b  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]y<%14QDj  >%PAj %4B (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913w ?y =?@Mj <>%14QDj  >%PAj %4Bj a%?%j U?%j?*PRIORITY_LOCAL   97C~ξ0 7 ]x h" %14QDj  >%PAj %4B (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913w ?y =?@Mj <>%14QDj  >%PAj %4Bj a%?%j U?%j?*PRIORITY_LOCAL   96C~ξ0 7 ]x h" {:?&P *R  Hԍp#  97C~ξ02$  restriction_positive1 *R  U2  97C~ξ02$  restriction_positive1 *R  97C~ξ0  %, p2$  restriction_positive1 *R  97C~ξ0  BKd2$  restriction_positive1 2p0 m˪  If# U  SY;2 b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0x11e92366a3f6fe49 R Ab  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]Y; (0:EV_qi1j9EvqNEXoZrH:291MnXvkBY8XB6VfLD:FjX7nNID1PUtDnm8_YJ@13F1F19 101F1 F1913#?n =?@Mj ?%j )M?%j R?%j rf>%j R>%j %  괠€P   QzN  mx^X  u0@",! r2.V)N#3  E-#? IC  S.=*2 #<p}?C) Fell Streeten* Fell Street2Fell St * qH߉]H\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: U ICb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a21a02f719:0x3f8c231f2dda4598 R Ab  I5"T9{ x2].=j B>%șEj  >%tBj %@CD (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvfCDQ4fGVPGcJ@ (5%I>=m[?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913Y]%? =?@Mj B>%șEj  >%tBj %@CDj  #?%j O?%j!R?*PRIORITY_MINOR_ARTERIAL   E-#? qH߉]H" {:?&P *R  E-#?  96C~ξ02$  restriction_positive1 *R  E-#?  %, p2$  restriction_positive1 *R  E-#?  BKd2$  restriction_positive1 *R  uD(*I  E-#?2$  restriction_positive1 *R  "_;C  E-#?2$  restriction_positive1 *R  c~b3  E-#?2$  restriction_positive1 *R  |s  E-#?2$  restriction_positive1 2MzAB`p@zށtk  E-#? IC  S.=*2 #<p}?C) Fell Streeten* Fell Street2Fell St * qH߉]H\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: IC Ub  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a21a02f719:0x3f8c231f2dda4599 R Ab  I5"T9{ x2].=j B>%șEj  >%tBj %@CD (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvfCDQ4fGVPGc (5%I>=m[?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913Y]%? =?@Mj B>%șEj  >%tBj %@CDj  #?%j O?%j!R?*PRIORITY_MINOR_ARTERIAL K  E-#? qH߉]H" 7&t5*MzAB`p@M ^#   =?@M  俤€  %oDj ,{g>%Aj %PA (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913w ?y =?@Mj >%oDj ,{g>%Aj %PAj a%?%j U?%j?*PRIORITY_LOCAL   , p 7 ]x h" {:?&P *R  Ӕ, 3_m  , p2$  restriction_positive1 *R  gm牡X߬4.  , p2$  restriction_positive1 *R  , p  96C~ξ02$  restriction_positive1 *R  , p  BKd2$  restriction_positive1 2p0T 0Í^  %, p NC ISG̚<*2 #<p}?I/ Laguna Streeten* Laguna Street2 Laguna St * 7 ]x h\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: IC NSGb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]̚%oDj ,{g>%Aj %PA (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913w ?y =?@Mj >%oDj ,{g>%Aj %PAj a%?%j U?%j?*PRIORITY_LOCAL   , p 7 ]x h" 8a@\*R  %, p  gm牡X߬4.2$  restriction_positive1 *R  97C~ξ0  %, p2$  restriction_positive1 *R  E-#?  %, p2$  restriction_positive1 2p0ǜ  Ӕ, 3_m  NSGY9=*2 #<p}?L2 Hickory Streeten*Hickory Street2 Hickory St * YKO F$)\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:0 NSG <3 !H0 b  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x]Y9= (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913# ?O =?@Mj ?%j E?%j>*PRIORITY_TERMINAL D   3_m YKO F$)" yڣ 'h*p Hvp46  Ӕ, 3_m  NSGY9=*2 #<p}?L2 Hickory Streeten*Hickory Street2 Hickory St * YKO F$)\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:0  !H0 <3 NSGb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x]Y9= (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913# ?O =?@Mj ?%j E?%j>*PRIORITY_TERMINAL    3_m YKO F$)" 8a@\*R  bţ=$ #ȕ  Ӕ, 3_m2$  restriction_positive1 *R  qQףם"I  Ӕ, 3_m2$  restriction_positive1 *R  \裀R].Ȇm  Ӕ, 3_m2$  restriction_positive1 *R  Ӕ, 3_m  , p2$  restriction_positive1 *R  Ӕ, 3_m  gm牡X߬4.2$  restriction_positive1 2p L T2kPjh?  &8a@\ NSG NSGY;2 NSGb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]Y; (0:EV_qi1j9EvqNEXoZrH:FjX7nNIoi8b77s1PD2J@13F1F19 101F1 F1913*?n =?@Mj ͘ ?%j (P?%j p= ?%j >%j ,{g>%j %  €P  %, p  Ӕ, 3_m  gm牡X߬4. & HD l{m  %j  >%j %  俤€d  U2  Hԍp#  ണKy}S  96C~ξ0 =n@Em>Mn@X```````hpx@@???13F1F18F289 101F1 F18 F28913M?y =?@Mj %j %j %?j 3"?%j LR?%j?*PRIORITY_LOCAL   |s W_7혯ej" 7&t5*R  o) b  |s2$  restriction_positive1 *R  |s  E-#?2$  restriction_positive1 *,  |s  ;lIZHpKJ2`p0  |s Ur~ &1S y<*L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: U &1r~b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2061d7c1b:0x94be1105d273dcd7 R KAb  I5"T9{ x2] y=n@Em>Mn@X```````hpx@@???13F1F18F289 101F1 F18 F28913M?y =?@Mj %j %j %?j 3"?%j LR?%j?*PRIORITY_LOCAL F  |s W_7혯ej" q/ Nk6-J*`p0iVɂ  9{ t3  p p;2 pb  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]; (0:FjX7nNIc0YbGMIIW2H13F1F19 101F1 F1913# ?A =?@Mj ?%j E?%j >%  롔€  pJ mI?Nc  =ƅ U  S;2  Sb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0xdbf985c63dff998a R Ab  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]; (0:EV_qi1j9EvqNEXoZrH:291MnXvfXwBYUPCjmL:FjX7nNIAzZVYclddXFJ@13F1F19 101F1 F1913."?n =?@Mj e"?%j Q?%j Q?%j 2'>%j on>%j %  ׸€d  "_;C  ͪ@dȩ  [  c~b3 r2.V) mI?5  7&t5 U  S;2 Ub  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0x35741e26b937a91c R Ab  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]; (0:EV_qi1j9EvqNEXoZrH:291MnXvjLbI3yrIfLs:FjX7nNIjihxXfmcAKSJ@13F1F19 101F1 F1913."?n =?@Mj e"?%j Q?%j Q?%j g>%j ]>%j %  ġ€d  lx^X  |s  E-#?  ;lIZHpKJ r2.V)Yw?  gM3BKd ^ IC4=*2 #<p}?C) Fell Streeten* Fell Street2Fell St * qH߉]H\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: IC ^b  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]4=j B>%șEj  >%tBj %@=D (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913Y]%? =?@Mj B>%șEj  >%tBj %@=Dj  #?%j O?%j!R?*PRIORITY_MINOR_ARTERIAL   CKd qH߉]H" gEOƣ([S M*R  BKd  bţ=$ #ȕ2$  restriction_positive1 *R  BKd  _`{RSo2$  restriction_positive1 *R  BKd  7v0룀lQ !2$  restriction_positive1 *R  97C~ξ0  BKd2$  restriction_positive1 *R  , p  BKd2$  restriction_positive1 *R  E-#?  BKd2$  restriction_positive1 2MzABp@\5=0  gM3CKd ^ IC4=*2 #<p}?C) Fell Streeten* Fell Street2Fell St * qH߉]H\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: ^ ICb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ x2]4=j B>%șEj  >%tBj %@=D (0ܮ:EV_qi1j9EvqNEXoZrHJ@ܮ#(X```````pxܮ13F1F18F289 101F1 F18 F28913Y]%? =?@Mj B>%șEj  >%tBj %@=Dj  #?%j O?%j!R?*PRIORITY_MINOR_ARTERIAL I  BKd qH߉]H" {:?&P *MzABp@H'Tv  b~b3 Q  d<*L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  S Qb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2011710fd:0x953362f27eace462 R Ab  I5"T9{ x2]d%@j %@ (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvqeIerXqDQrtJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913M?y =?@Mj -=%VCj 33>%@j %@j 3"?%j LR?%j?*PRIORITY_LOCAL F  c~b3 W_7혯ej" oabR-*`p0\ 8t]  c~b3 Q  d<*2 #<p}?L2 Octavia Streeten*Octavia Street2 Octavia St * W_7혯ej\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: Q  Sb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2011710fd:0x953362f27eace463 R Ab  I5"T9{ x2]d%@j %@ (Ť0:EV_qi1j9EvqNEXoZrH:291MnXvqeIerXqDQrtJ@ (5>=`?E%I>Mm[?X```````hpx???13F1F18F289 101F1 F18 F28913M?y =?@Mj -=%VCj 33>%@j %@j 3"?%j LR?%j?*PRIORITY_LOCAL   b~b3 W_7혯ej" =ƅ*R  j>  c~b32$  restriction_positive1 *R  c~b3  ;lIZHpKJ2$  restriction_positive1 *R  c~b3  u1@",!2$  restriction_positive1 *R  c~b3  ͪAdȩ2$  restriction_positive1 *R  c~b3  E-#?2$  restriction_positive1 2`p04 :wК  r2.V) U  S #<2 +Ԇb  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0x9829562e32f17282 R μAj 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0:291MnXv_ZIWAIFrgaO:FjX7nNI6uLzN8GJ5Go (5 #==u?E%I>Mm[?X```````hpx????13F1F22 101F1 F2213L> =?@M  Ł̴€P  If#  =ƅ  7&t5  Zz(rH뒔2  c&԰f H H2 Hz 㵵 b  WN/9!PɁ2 b  s@< O x (0:uxIgTeg2VgDTu0RpM42(X```````px13F5 101F513 1 GW_FEATURE_TYPEGeowiki j (   GW_ISSUE_HISTORYGeowiki J  *rli.wi2Dear Google, Thank you for providing much of the cardboard for the urban farm, Hayes Valley Farm! We've put it to good use. You can see how in this YouTube video I made: http://www.youtube.com/watch?v=I49JFgzSQH8 I'm happy to report that this video received over a thousand views in its first week, but we would love it if people around the world shared in the joy of urban farming. Could you use your connections to get this video featured on YouTube? If not, can you give me advice on how to share this video with the world? Thanks! Mark McQuillen @%HRDear Google, Thank you for providing much of the cardboard for the urban farm, Hayes Valley Farm! We've put it to good use. You can see how in this YouTube video I made: http://www.youtube.com/watch?v=I49JFgzSQH8 I'm happy to report that this video received over a thousand views in its first week, but we would love it if people around the world shared in the joy of urban farming. Could you use your connections to get this video featured on YouTube? If not, can you give me advice on how to share this video with the world? Thanks! Mark McQuillen  c&f,%  j (0  GW_ISSUE_METADATAGeowiki J^ ƌU D *en-US27  c&f,%  % %x: j ( 8# feature_geometry_pointGeowiki j ( M ^R X  & HD NSG NSG #<2 NSGb  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0:FjX7nNIauq3cWPYwir#(X```````px13F1F22 101F1 F2213L> =?@M  €  &8a@\ 4  {:55, IC IC #<2 ICb  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0:FjX7nNIMLlD23csmyj2(X```````px13F1F22 101F1 F2213L> =?@M  ף€  {:?&P Ih]O  {:?&P  IC IC;2 ICb  I5"T_ b  WN/9!PɁ2 b  I5"T9{ j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx]; (0:EV_qi1j9EvqNEXoZrH:FjX7nNI-cB0cTkSCPRJ@13F1F19 101F1 F1913."?n =?@Mj 7$?%j R?%j Q?%j (>%j na>%j %  ף€d  E-#?  97C~ξ0  gM3CKd  %, p {:55,MZ/O   QzN U  Sy;*E) Fell Streeten* Fell Street2Fell St * qH߉]Hx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0xc64e7a5198208880 R μAx2]y;j B>%șEj  >%tBj %@RD (Ť0:291MnXvUVYWmKz8k0c#(X```````px13F1F18F289 101F1 F18 F28913Y]%? =?@Mj B>%șEj  >%tBj %@RDj  #?%j O?%j!R?*PRIORITY_MINOR_ARTERIAL K   QzN qH߉]H" Zz*MzAB`p@,Lr1   QzN U  Sy;*E) Fell Streeten* Fell Street2Fell St * qH߉]Hx\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;:  b  I5"T_ bc  WN/9!PɁ2; geowiki_feature_id%0x808580a2069300c5:0xc64e7a5198208881 R μAx2]y;j B>%șEj  >%tBj %@RD (Ť0:291MnXvUVYWmKz8k0c#(X```````px13F1F18F289 101F1 F18 F28913Y]%? =?@Mj B>%șEj  >%tBj %@RDj  #?%j O?%j!R?*PRIORITY_MINOR_ARTERIAL M   QzN qH߉]H" If#2MzAB`p@DO  ണJy}S  (? v9=*2 #<p}?I/ Linden Streeten* Linden Street2 Linden St * }`i}[ȅ\5 San Franciscoen* San Francisco2 San Francisco %* sUvgPJz ε ]5 San Franciscoen* San Francisco2 San Francisco * "%tz ε ]5 San Franciscoen* San Francisco2 San Francisco * sURK ?z ε T, Californiaen* California2 California * ˗iΕ TWgz ε ) US*US2US !* 62䄵TBC;: (? b  I5"T_ b  WN/9!PɁ2 x] v9= (013F1F18F289 101F1 F18 F28913 ?O =?@Mj =?%j \B?%j>*PRIORITY_TERMINAL   ണKy}S }`i}[ȅ" I׻te5ꖐ*R  96C~ξ0  ണJy}S2$  restriction_positive1 *R  Hԍp#  ണJy}S2$  restriction_positive1 *R  U2  ണJy}S2$  restriction_positive1 *R  ണJy}S  g7*PRIORITY_TERMINAL D  ണJy}S }`i}[ȅ" >%j |m>%j %  €d  #+*,  qQף֝"I  ?ࣀ  Q.|zrڄ  :ףq2QۋM ^׈N  :ףq2Qۋ (  (  #<2 ( b  I5"T_ b  WN/9!PɁ2 j 62䄵TBC;!"USj `0Zğj sURK ?j sUvgPJ%j "%tj sR/"\9j ˗iΕ TWgx] #< (0:FjX7nNIddTANb5xG1Y#(X```````px13F1F22 101F1 F2213L> =?@M  €  :ף~w'M8compress-1.2.1/snappy/testdata/html000066400000000000000000003100001303637052300173540ustar00rootroot00000000000000 content: @ 1099872000000000: 'HTTP/1.1 200 OK\r\nX-Google-Crawl-Date: Mon, 08 Nov 2004 17:22:09 GMT\r\nContent-Type: text/html\r\nConnection: close\r\nX-Powered-By: PHP/4.3.8\r\nServer: Apache/1.3.31 (Unix) mod_gzip/1.3.19.1a PHP/4.3.8\r\nDate: Mon, 08 Nov 2004 17:19:07 GMT\r\n\r\n \r\n\r\n\r\n\r\n\r\n\nMicro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004  |  16:45
\r\n \r\n\r\n\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t

\r\n\r\n\r\n\r\n


\r\n\r\n\r\n\r\n
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\"\"
Imagerie 
\"\"\n\t\t\t\t\t\t\t\tLG L1720B\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
332.89 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tAcer Veriton 7600G\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
705 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tShuttle SN95G5\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
375 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tAsus A7N8X-E Deluxe\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
91.99 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tThermalright SP-94\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
49 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\"\"
1 \">\"PC Look
2 \">\"Atelier Informatique
3 \">\"Zanax Multim\351dia
4 \">\"MISTEROOPS
5 \">\"168 Golden Avenue
6 \">\"microchoix
7 \">\"e-Soph
8 \">\"PC Price Club
9 \">\"PC 77
10 \">\"Web In Informatique
\n\t\t\t\t
\n\t\t\t\t
\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\r\n\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n

\r\n\t\t\t

\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\r\n \r\n \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

CD et DVD bient\364t insensibles aux rayures
OpenOffice gagne son service
La messagerie en cinq minutes selon Ipswitch
> toutes les news


\r\n\t\t
\r\n \r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Recevez chaque jour l\'actualit\351 des produits et des promos
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Entreprise
\r\n\t\t\t\tQuand le billet papier s\'envole vers la d\351mat\351rialisation


Trucs et astuces
\r\n\t\t\t\tD\351pannez Windows XP


Conso
\r\n\t\t\t\tVos photos sur papier imprimante ou labo ?


Produits & Tests
\r\n\t\t\t\t5 programmes d\222encodage vid\351o gratuits


\r\n\t\t
\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n
\r\n
\r\n\t\t\r\n\t\t

\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t\t\t\r\n
\r\n
\r\nPortable
\r\nUn nouvel ultra portable r\351alis\351 par Nec
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nLe Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.
\r\n\340 partir de 1663 \200\r\n
\r\n
\r\nPortable
\r\nAsus pr\351sente trois petits nouveaux dans la gamme A3N
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nCes trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.
\r\n\340 partir de 1346 \200\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t
\r\n\t\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
BON PLAN
\r\n
\r\n
\r\nLes derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.
\r\n

\r\n
\r\n\340 partir de
\r\n
415 \200
\r\n
\r\n
\r\n
publicit\351
\r\n
\r\n\t\r\n\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\tDesktops
\r\n\t\t\t\tPortables
\r\n\t\t\t\tMini-PC
\r\n\t\t\t\tPda / Tablets-PC
\r\n\t\t\t\tApple
\r\n\t\t\t\tGPS
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\tPortable Toshiba consacre deux gammes de machines au multim\351dia
\r\n\tEquipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.

\r\n\tOrdinateur Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme
\r\n\tLa firme \340 la pomme propose une station de travail \351volutive et relativement abordable.

\r\n\tPC Alienware propose deux machines au look \351trange
\r\n\tAurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.

\r\n\tPortable Trois nouveaux iBook G4 chez Apple
\r\n\tChez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.

\r\n\t\t\t\t> toutes les news\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tAsus A3N15-C Pro
\r\n Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1170 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tSoltek EQ3702A Miroir
\r\n Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t559 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tIBM ThinkPad R51
\r\n Voici un portable complet et pourtant relativement l\351ger.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1299 \200
\r\n
\r\n\t\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t> toutes les promos\r\n\t\t
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n\t\r\n\r\n
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\n
\r\n
\r\nLes graveurs de DVD
\r\nQuel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.
\r\n\t\t\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n \t\r\n
\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\t\t

\r\n\t\t\t\tChoisir une r\351gion
\r\n\r\n
Un d\351partement
\r\n\r\n
\r\n
Un arrondissement
\r\n\r\n
\r\n
\r\n\t\t\t\tRecherche directe
\r\n\t\t\t\trechercher une ville
et/ou une boutique
\r\n\t\t\t\t

\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
Recherche avanc\351e
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
Bureautique
\r\n\t\t\t\tTraducteur, organiseur...

\r\n\t\t\t\t

Multim\351dia
\r\n\t\t\t\tPhoto, audio, vid\351o...

\r\n\t\t\t\t

Utilitaires
\r\n\t\t\t\tAntivirus, pilotes, gravure...

\r\n\t\t\t\t

Personnaliser son PC
\r\n\t\t\t\tEcrans de veille, th\350mes...

\r\n\t\t\t\t

D\351veloppement
\r\n\t\t\t\tCr\351ation de logiciels, BDD...

\r\n\t\t\t\t

Jeux
\r\n\t\t\t\tAction, simulation...

\r\n\t\t\t\t

Internet
\r\n\t\t\t\tUtilitaires, email, FTP...

\r\n\t\t\t\t

Loisirs
\r\n\t\t\t\tHumour, culture...

\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t

\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\nMicro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004  |  16:45
\r\n \r\n\r\n\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t

\r\n\r\n\r\n\r\n


\r\n\r\n\r\n\r\n
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\"\"
Imagerie 
\"\"\n\t\t\t\t\t\t\t\tLG L1720B\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
332.89 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tAcer Veriton 7600G\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
705 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tShuttle SN95G5\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
375 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tAsus A7N8X-E Deluxe\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
91.99 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tThermalright SP-94\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
49 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\"\"
1 \">\"PC Look
2 \">\"Atelier Informatique
3 \">\"Zanax Multim\351dia
4 \">\"MISTEROOPS
5 \">\"168 Golden Avenue
6 \">\"microchoix
7 \">\"e-Soph
8 \">\"PC Price Club
9 \">\"PC 77
10 \">\"Web In Informatique
\n\t\t\t\t
\n\t\t\t\t
\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\r\n\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n

\r\n\t\t\t

\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\r\n \r\n \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

CD et DVD bient\364t insensibles aux rayures
OpenOffice gagne son service
La messagerie en cinq minutes selon Ipswitch
> toutes les news


\r\n\t\t
\r\n \r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Recevez chaque jour l\'actualit\351 des produits et des promos
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Entreprise
\r\n\t\t\t\tQuand le billet papier s\'envole vers la d\351mat\351rialisation


Trucs et astuces
\r\n\t\t\t\tD\351pannez Windows XP


Conso
\r\n\t\t\t\tVos photos sur papier imprimante ou labo ?


Produits & Tests
\r\n\t\t\t\t5 programmes d\222encodage vid\351o gratuits


\r\n\t\t
\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n
\r\n
\r\n\t\t\r\n\t\t

\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t\t\t\r\n
\r\n
\r\nPortable
\r\nUn nouvel ultra portable r\351alis\351 par Nec
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nLe Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.
\r\n\340 partir de 1663 \200\r\n
\r\n
\r\nPortable
\r\nAsus pr\351sente trois petits nouveaux dans la gamme A3N
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nCes trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.
\r\n\340 partir de 1346 \200\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t
\r\n\t\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
BON PLAN
\r\n
\r\n
\r\nLes derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.
\r\n

\r\n
\r\n\340 partir de
\r\n
415 \200
\r\n
\r\n
\r\n
publicit\351
\r\n
\r\n\t\r\n\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\tDesktops
\r\n\t\t\t\tPortables
\r\n\t\t\t\tMini-PC
\r\n\t\t\t\tPda / Tablets-PC
\r\n\t\t\t\tApple
\r\n\t\t\t\tGPS
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\tPortable Toshiba consacre deux gammes de machines au multim\351dia
\r\n\tEquipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.

\r\n\tOrdinateur Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme
\r\n\tLa firme \340 la pomme propose une station de travail \351volutive et relativement abordable.

\r\n\tPC Alienware propose deux machines au look \351trange
\r\n\tAurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.

\r\n\tPortable Trois nouveaux iBook G4 chez Apple
\r\n\tChez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.

\r\n\t\t\t\t> toutes les news\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tAsus A3N15-C Pro
\r\n Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1170 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tSoltek EQ3702A Miroir
\r\n Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t559 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tIBM ThinkPad R51
\r\n Voici un portable complet et pourtant relativement l\351ger.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1299 \200
\r\n
\r\n\t\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t> toutes les promos\r\n\t\t
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n\t\r\n\r\n
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\n
\r\n
\r\nLes graveurs de DVD
\r\nQuel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.
\r\n\t\t\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n \t\r\n
\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\t\t

\r\n\t\t\t\tChoisir une r\351gion
\r\n\r\n
Un d\351partement
\r\n\r\n
\r\n
Un arrondissement
\r\n\r\n
\r\n
\r\n\t\t\t\tRecherche directe
\r\n\t\t\t\trechercher une ville
et/ou une boutique
\r\n\t\t\t\t

\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
Recherche avanc\351e
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
Bureautique
\r\n\t\t\t\tTraducteur, organiseur...

\r\n\t\t\t\t

Multim\351dia
\r\n\t\t\t\tPhoto, audio, vid\351o...

\r\n\t\t\t\t

Utilitaires
\r\n\t\t\t\tAntivirus, pilotes, gravure...

\r\n\t\t\t\t

Personnaliser son PC
\r\n\t\t\t\tEcrans de veille, th\350mes...

\r\n\t\t\t\t

D\351veloppement
\r\n\t\t\t\tCr\351ation de logiciels, BDD...

\r\n\t\t\t\t

Jeux
\r\n\t\t\t\tAction, simulation...

\r\n\t\t\t\t

Internet
\r\n\t\t\t\tUtilitaires, email, FTP...

\r\n\t\t\t\t

Loisirs
\r\n\t\t\t\tHumour, culture...

\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t

\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\nMicro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004  |  16:45
\r\n \r\n\r\n\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t

\r\n\r\n\r\n\r\n


\r\n\r\n\r\n\r\n
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\"\"
Imagerie 
\"\"\n\t\t\t\t\t\t\t\tLG L1720B\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
332.89 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tAcer Veriton 7600G\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
705 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tShuttle SN95G5\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
375 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tAsus A7N8X-E Deluxe\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
91.99 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tThermalright SP-94\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
49 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\"\"
1 \">\"PC Look
2 \">\"Atelier Informatique
3 \">\"Zanax Multim\351dia
4 \">\"MISTEROOPS
5 \">\"168 Golden Avenue
6 \">\"microchoix
7 \">\"e-Soph
8 \">\"PC Price Club
9 \">\"PC 77
10 \">\"Web In Informatique
\n\t\t\t\t
\n\t\t\t\t
\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\r\n\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n

\r\n\t\t\t

\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\r\n \r\n \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

CD et DVD bient\364t insensibles aux rayures
OpenOffice gagne son service
La messagerie en cinq minutes selon Ipswitch
> toutes les news


\r\n\t\t
\r\n \r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Recevez chaque jour l\'actualit\351 des produits et des promos
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Entreprise
\r\n\t\t\t\tQuand le billet papier s\'envole vers la d\351mat\351rialisation


Trucs et astuces
\r\n\t\t\t\tD\351pannez Windows XP


Conso
\r\n\t\t\t\tVos photos sur papier imprimante ou labo ?


Produits & Tests
\r\n\t\t\t\t5 programmes d\222encodage vid\351o gratuits


\r\n\t\t
\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n
\r\n
\r\n\t\t\r\n\t\t

\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t\t\t\r\n
\r\n
\r\nPortable
\r\nUn nouvel ultra portable r\351alis\351 par Nec
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nLe Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.
\r\n\340 partir de 1663 \200\r\n
\r\n
\r\nPortable
\r\nAsus pr\351sente trois petits nouveaux dans la gamme A3N
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nCes trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.
\r\n\340 partir de 1346 \200\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t
\r\n\t\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
BON PLAN
\r\n
\r\n
\r\nLes derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.
\r\n

\r\n
\r\n\340 partir de
\r\n
415 \200
\r\n
\r\n
\r\n
publicit\351
\r\n
\r\n\t\r\n\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\tDesktops
\r\n\t\t\t\tPortables
\r\n\t\t\t\tMini-PC
\r\n\t\t\t\tPda / Tablets-PC
\r\n\t\t\t\tApple
\r\n\t\t\t\tGPS
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\tPortable Toshiba consacre deux gammes de machines au multim\351dia
\r\n\tEquipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.

\r\n\tOrdinateur Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme
\r\n\tLa firme \340 la pomme propose une station de travail \351volutive et relativement abordable.

\r\n\tPC Alienware propose deux machines au look \351trange
\r\n\tAurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.

\r\n\tPortable Trois nouveaux iBook G4 chez Apple
\r\n\tChez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.

\r\n\t\t\t\t> toutes les news\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tAsus A3N15-C Pro
\r\n Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1170 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tSoltek EQ3702A Miroir
\r\n Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t559 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tIBM ThinkPad R51
\r\n Voici un portable complet et pourtant relativement l\351ger.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1299 \200
\r\n
\r\n\t\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t> toutes les promos\r\n\t\t
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n\t\r\n\r\n
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\n
\r\n
\r\nLes graveurs de DVD
\r\nQuel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.
\r\n\t\t\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n \t\r\n
\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\t\t

\r\n\t\t\t\tChoisir une r\351gion
\r\n\r\n
Un d\351partement
\r\n\r\n
\r\n
Un arrondissement
\r\n\r\n
\r\n
\r\n\t\t\t\tRecherche directe
\r\n\t\t\t\trechercher une ville
et/ou une boutique
\r\n\t\t\t\t

\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
Recherche avanc\351e
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
Bureautique
\r\n\t\t\t\tTraducteur, organiseur...

\r\n\t\t\t\t

Multim\351dia
\r\n\t\t\t\tPhoto, audio, vid\351o...

\r\n\t\t\t\t

Utilitaires
\r\n\t\t\t\tAntivirus, pilotes, gravure...

\r\n\t\t\t\t

Personnaliser son PC
\r\n\t\t\t\tEcrans de veille, th\350mes...

\r\n\t\t\t\t

D\351veloppement
\r\n\t\t\t\tCr\351ation de logiciels, BDD...

\r\n\t\t\t\t

Jeux
\r\n\t\t\t\tAction, simulation...

\r\n\t\t\t\t

Internet
\r\n\t\t\t\tUtilitaires, email, FTP...

\r\n\t\t\t\t

Loisirs
\r\n\t\t\t\tHumour, culture...

\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t

\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\nMicro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004  |  16:45
\r\n \r\n\r\n\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t

\r\n\r\n\r\n\r\n


\r\n\r\n\r\n\r\n
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\"\"
Imagerie 
\"\"\n\t\t\t\t\t\t\t\tLG L1720B\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
332.89 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tAcer Veriton 7600G\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
705 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tShuttle SN95G5\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
375 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tAsus A7N8X-E Deluxe\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
91.99 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tThermalright SP-94\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
49 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\"\"
1 \">\"PC Look
2 \">\"Atelier Informatique
3 \">\"Zanax Multim\351dia
4 \">\"MISTEROOPS
5 \">\"168 Golden Avenue
6 \">\"microchoix
7 \">\"e-Soph
8 \">\"PC Price Club
9 \">\"PC 77
10 \">\"Web In Informatique
\n\t\t\t\t
\n\t\t\t\t
\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\r\n\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n

\r\n\t\t\t

\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\r\n \r\n \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

CD et DVD bient\364t insensibles aux rayures
OpenOffice gagne son service
La messagerie en cinq minutes selon Ipswitch
> toutes les news


\r\n\t\t
\r\n \r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Recevez chaque jour l\'actualit\351 des produits et des promos
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Entreprise
\r\n\t\t\t\tQuand le billet papier s\'envole vers la d\351mat\351rialisation


Trucs et astuces
\r\n\t\t\t\tD\351pannez Windows XP


Conso
\r\n\t\t\t\tVos photos sur papier imprimante ou labo ?


Produits & Tests
\r\n\t\t\t\t5 programmes d\222encodage vid\351o gratuits


\r\n\t\t
\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n
\r\n
\r\n\t\t\r\n\t\t

\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t\t\t\r\n
\r\n
\r\nPortable
\r\nUn nouvel ultra portable r\351alis\351 par Nec
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nLe Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.
\r\n\340 partir de 1663 \200\r\n
\r\n
\r\nPortable
\r\nAsus pr\351sente trois petits nouveaux dans la gamme A3N
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nCes trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.
\r\n\340 partir de 1346 \200\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t
\r\n\t\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
BON PLAN
\r\n
\r\n
\r\nLes derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.
\r\n

\r\n
\r\n\340 partir de
\r\n
415 \200
\r\n
\r\n
\r\n
publicit\351
\r\n
\r\n\t\r\n\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\tDesktops
\r\n\t\t\t\tPortables
\r\n\t\t\t\tMini-PC
\r\n\t\t\t\tPda / Tablets-PC
\r\n\t\t\t\tApple
\r\n\t\t\t\tGPS
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\tPortable Toshiba consacre deux gammes de machines au multim\351dia
\r\n\tEquipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.

\r\n\tOrdinateur Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme
\r\n\tLa firme \340 la pomme propose une station de travail \351volutive et relativement abordable.

\r\n\tPC Alienware propose deux machines au look \351trange
\r\n\tAurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.

\r\n\tPortable Trois nouveaux iBook G4 chez Apple
\r\n\tChez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.

\r\n\t\t\t\t> toutes les news\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tAsus A3N15-C Pro
\r\n Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1170 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tSoltek EQ3702A Miroir
\r\n Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t559 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tIBM ThinkPad R51
\r\n Voici un portable complet et pourtant relativement l\351ger.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1299 \200
\r\n
\r\n\t\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t> toutes les promos\r\n\t\t
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n\t\r\n\r\n
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\n
\r\n
\r\nLes graveurs de DVD
\r\nQuel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.
\r\n\t\t\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n \t\r\n
\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\t\t

\r\n\t\t\t\tChoisir une r\351gion
\r\n\r\n
Un d\351partement
\r\n\r\n
\r\n
Un arrondissement
\r\n\r\n
\r\n
\r\n\t\t\t\tRecherche directe
\r\n\t\t\t\trechercher une ville
et/ou une boutique
\r\n\t\t\t\t

\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
Recherche avanc\351e
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
Bureautique
\r\n\t\t\t\tTraducteur, organiseur...

\r\n\t\t\t\t

Multim\351dia
\r\n\t\t\t\tPhoto, audio, vid\351o...

\r\n\t\t\t\t

Utilitaires
\r\n\t\t\t\tAntivirus, pilotes, gravure...

\r\n\t\t\t\t

Personnaliser son PC
\r\n\t\t\t\tEcrans de veille, th\350mes...

\r\n\t\t\t\t

D\351veloppement
\r\n\t\t\t\tCr\351ation de logiciels, BDD...

\r\n\t\t\t\t

Jeux
\r\n\t\t\t\tAction, simulation...

\r\n\t\t\t\t

Internet
\r\n\t\t\t\tUtilitaires, email, FTP...

\r\n\t\t\t\t

Loisirs
\r\n\t\t\t\tHumour, culture...

\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t

\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\nMicro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004  |  16:45
\r\n \r\n\r\n\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t

\r\n\r\n\r\n\r\n


\r\n\r\n\r\n\r\n
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\"\"
Imagerie 
\"\"\n\t\t\t\t\t\t\t\tLG L1720B\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
332.89 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tAcer Veriton 7600G\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
705 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tShuttle SN95G5\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
375 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tAsus A7N8X-E Deluxe\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
91.99 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tThermalright SP-94\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
49 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\"\"
1 \">\"PC Look
2 \">\"Atelier Informatique
3 \">\"Zanax Multim\351dia
4 \">\"MISTEROOPS
5 \">\"168 Golden Avenue
6 \">\"microchoix
7 \">\"e-Soph
8 \">\"PC Price Club
9 \">\"PC 77
10 \">\"Web In Informatique
\n\t\t\t\t
\n\t\t\t\t
\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\r\n\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n

\r\n\t\t\t

\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\r\n \r\n \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

CD et DVD bient\364t insensibles aux rayures
OpenOffice gagne son service
La messagerie en cinq minutes selon Ipswitch
> toutes les news


\r\n\t\t
\r\n \r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Recevez chaque jour l\'actualit\351 des produits et des promos
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Entreprise
\r\n\t\t\t\tQuand le billet papier s\'envole vers la d\351mat\351rialisation


Trucs et astuces
\r\n\t\t\t\tD\351pannez Windows XP


Conso
\r\n\t\t\t\tVos photos sur papier imprimante ou labo ?


Produits & Tests
\r\n\t\t\t\t5 programmes d\222encodage vid\351o gratuits


\r\n\t\t
\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n
\r\n
\r\n\t\t\r\n\t\t

\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t\t\t\r\n
\r\n
\r\nPortable
\r\nUn nouvel ultra portable r\351alis\351 par Nec
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nLe Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.
\r\n\340 partir de 1663 \200\r\n
\r\n
\r\nPortable
\r\nAsus pr\351sente trois petits nouveaux dans la gamme A3N
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nCes trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.
\r\n\340 partir de 1346 \200\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t
\r\n\t\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
BON PLAN
\r\n
\r\n
\r\nLes derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.
\r\n

\r\n
\r\n\340 partir de
\r\n
415 \200
\r\n
\r\n
\r\n
publicit\351
\r\n
\r\n\t\r\n\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\tDesktops
\r\n\t\t\t\tPortables
\r\n\t\t\t\tMini-PC
\r\n\t\t\t\tPda / Tablets-PC
\r\n\t\t\t\tApple
\r\n\t\t\t\tGPS
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\tPortable Toshiba consacre deux gammes de machines au multim\351dia
\r\n\tEquipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.

\r\n\tOrdinateur Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme
\r\n\tLa firme \340 la pomme propose une station de travail \351volutive et relativement abordable.

\r\n\tPC Alienware propose deux machines au look \351trange
\r\n\tAurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.

\r\n\tPortable Trois nouveaux iBook G4 chez Apple
\r\n\tChez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.

\r\n\t\t\t\t> toutes les news\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tAsus A3N15-C Pro
\r\n Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1170 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tSoltek EQ3702A Miroir
\r\n Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t559 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tIBM ThinkPad R51
\r\n Voici un portable complet et pourtant relativement l\351ger.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1299 \200
\r\n
\r\n\t\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t> toutes les promos\r\n\t\t
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n\t\r\n\r\n
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\n
\r\n
\r\nLes graveurs de DVD
\r\nQuel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.
\r\n\t\t\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n \t\r\n
\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\t\t

\r\n\t\t\t\tChoisir une r\351gion
\r\n\r\n
Un d\351partement
\r\n\r\n
\r\n
Un arrondissement
\r\n\r\n
\r\n
\r\n\t\t\t\tRecherche directe
\r\n\t\t\t\trechercher une ville
et/ou une boutique
\r\n\t\t\t\t

\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
Recherche avanc\351e
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
Bureautique
\r\n\t\t\t\tTraducteur, organiseur...

\r\n\t\t\t\t

Multim\351dia
\r\n\t\t\t\tPhoto, audio, vid\351o...

\r\n\t\t\t\t

Utilitaires
\r\n\t\t\t\tAntivirus, pilotes, gravure...

\r\n\t\t\t\t

Personnaliser son PC
\r\n\t\t\t\tEcrans de veille, th\350mes...

\r\n\t\t\t\t

D\351veloppement
\r\n\t\t\t\tCr\351ation de logiciels, BDD...

\r\n\t\t\t\t

Jeux
\r\n\t\t\t\tAction, simulation...

\r\n\t\t\t\t

Internet
\r\n\t\t\t\tUtilitaires, email, FTP...

\r\n\t\t\t\t

Loisirs
\r\n\t\t\t\tHumour, culture...

\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t

\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n C=10 M=100 Y=50 K=0 CMYK PROCESS 10.000002 100.000000 50.000000 0.000000 C=0 M=95 Y=20 K=0 CMYK PROCESS 0.000000 94.999999 19.999999 0.000000 C=25 M=25 Y=40 K=0 CMYK PROCESS 25.000000 25.000000 39.999998 0.000000 C=40 M=45 Y=50 K=5 CMYK PROCESS 39.999998 44.999999 50.000000 5.000001 C=50 M=50 Y=60 K=25 CMYK PROCESS 50.000000 50.000000 60.000002 25.000000 C=55 M=60 Y=65 K=40 CMYK PROCESS 55.000001 60.000002 64.999998 39.999998 C=25 M=40 Y=65 K=0 CMYK PROCESS 25.000000 39.999998 64.999998 0.000000 C=30 M=50 Y=75 K=10 CMYK PROCESS 30.000001 50.000000 75.000000 10.000002 C=35 M=60 Y=80 K=25 CMYK PROCESS 35.000002 60.000002 80.000001 25.000000 C=40 M=65 Y=90 K=35 CMYK PROCESS 39.999998 64.999998 90.000004 35.000002 C=40 M=70 Y=100 K=50 CMYK PROCESS 39.999998 69.999999 100.000000 50.000000 C=50 M=70 Y=80 K=70 CMYK PROCESS 50.000000 69.999999 80.000001 69.999999 Grays 1 C=0 M=0 Y=0 K=100 CMYK PROCESS 0.000000 0.000000 0.000000 100.000000 C=0 M=0 Y=0 K=90 CMYK PROCESS 0.000000 0.000000 0.000000 89.999402 C=0 M=0 Y=0 K=80 CMYK PROCESS 0.000000 0.000000 0.000000 79.998797 C=0 M=0 Y=0 K=70 CMYK PROCESS 0.000000 0.000000 0.000000 69.999701 C=0 M=0 Y=0 K=60 CMYK PROCESS 0.000000 0.000000 0.000000 59.999102 C=0 M=0 Y=0 K=50 CMYK PROCESS 0.000000 0.000000 0.000000 50.000000 C=0 M=0 Y=0 K=40 CMYK PROCESS 0.000000 0.000000 0.000000 39.999402 C=0 M=0 Y=0 K=30 CMYK PROCESS 0.000000 0.000000 0.000000 29.998803 C=0 M=0 Y=0 K=20 CMYK PROCESS 0.000000 0.000000 0.000000 19.999701 C=0 M=0 Y=0 K=10 CMYK PROCESS 0.000000 0.000000 0.000000 9.999102 C=0 M=0 Y=0 K=5 CMYK PROCESS 0.000000 0.000000 0.000000 4.998803 Brights 1 C=0 M=100 Y=100 K=0 CMYK PROCESS 0.000000 100.000000 100.000000 0.000000 C=0 M=75 Y=100 K=0 CMYK PROCESS 0.000000 75.000000 100.000000 0.000000 C=0 M=10 Y=95 K=0 CMYK PROCESS 0.000000 10.000002 94.999999 0.000000 C=85 M=10 Y=100 K=0 CMYK PROCESS 84.999996 10.000002 100.000000 0.000000 C=100 M=90 Y=0 K=0 CMYK PROCESS 100.000000 90.000004 0.000000 0.000000 C=60 M=90 Y=0 K=0 CMYK PROCESS 60.000002 90.000004 0.003099 0.003099 Adobe PDF library 9.00 endstream endobj 145 0 obj<> endobj 1 0 obj<> endobj 2 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 3 0 obj<>stream hޔ[MsFWnmU(se{kjw`7ƨhhҜ_e&rl(BG2ˏ_oͷ|H.>޽)Vs"Wq\Xإob5{|)^xylD]E~g*vM_YAڨjqݷ?b*]PWrUm?04]\}\ʲNVId=ɼup6wN~reߎU;6c5652cvu gS3>_D04Qw#*ׇ}L%m_9f0^YצYN9npse)9&|O"~lms=2yTǾZ?'=VW;`L)T0XA4&q'IGJdשŷC7bb1QtrJ1E\ESñR!"dwǝ ?Gq pۢ_⧑}}؉+.DAɤ$& *vo:UTi͑ks?y'V^4m]O߽A$xI;#4.|ýoQwvK,ă2kd6X,4#.C͛ ]=F6wQD1{~۴(}EK_w*hZ@CtEAg/)rjJчvS\a #xhGFؓ}lcYh)(ǍTNSb[,ʔW%ʣMswW/S2XGO5r>, b`'%E,B>|$G0,1%@T/2;,BQC)e]MRض~Rm[Q P c ] QkONFJ_ɇz{θCn5yٜh׏Ұq P$ Yp%b#X5|b^Q*B;NJ:3R*ě9"axpNA  Sb' Up~t܅6C׏s$tWheޢ+hq, GFIH[W5Sa<DXSq-͘1+"G[!&f,ݭpg |v0EQ͝`ҎIYZ)+S wM@]G\ѵcv[C?0!8C1R<*`yqY!K5_q7|M QS:Y0YuIaf>]"B]<-W{0ps涹f^HGѸdV`)0YohjVB訅aRpv)PO%̹ W-%~ח >-@e\: +pXIRt/'* O.XIMh=N`Bepxc_ ~d~R'%W( &o׷+,NyL'$Rxa9KBYXW2Ө/0,sJ1yX>(f$W(J 쇋ÏD~1RQg#pp2:}RHX0 = #1p:]cQ3&sd̤joF?8V&ӒSnޝ#:tb02.žzD-;+,=߃`p!jΰLD]asɠFcT \0>I/LPafrF HKؙe(O/e;ex~ZY P3cd|V4dOЇ)Z~F$֕K$tI@[Au0\dFdZsj?K~oX&=x6U8~.PTZ;@WaNCnuP(Ψ-&fMȲ!<4lmC 5c^A֍Y1xU_2gtiMc%='0>ⷢړuWHh*ZCw3HVwAкa H*^IؽSĮl֫p*>Q!:M֥Mlղ"r91LADm]X؆I)W'SzS4CBlĉ&6qjȂ: SH+z G?_KtɌb~> 4=tU *8g2ajD&_ߩB{  gB$EijMt|G Ǩ>#!8JM:>3wy.#3:0QI.8k"tNZ}G%@i"ܷL5)w?/>+$.&N3ꔈ{[-R 韹n>u eP 4~zZ](i~|M 6A8*;:Mh!GͰ#;BjPDahS~ȗwjyǡQ|EQ'ࢳX |J1c@"A'ceI3ȊZG#s>]MEn,R\FuNT':njDJXIgcqm7̰5zڎDyF AN;etS?Lم1gBB@3V̶uD|onhAJF*gyhLVVBbehה|0*n7AHRiDH§*H,puɢ)?e ;55ܬ_83SYMوtm4BXIގA<.}"!.d>?3Aq̋xH㗊t} lh*QLP3C{A+ͥ[ٲz'w/KisoE$( {gi0s I848'eŪLL"\Fx _BO!'o=`$j ̵4ݩ#,$Y۵RG,|{`WlЌ/pa՚%/[$GR"/Ai;F6䔒+um`P,k닀^TtfT'){.\Ur!|O Sv* Ő!XwrF,Xѕvvh0z +'wJ)s² ]hzo/1#A-+/6=nfݘ`7t刏/-(e>Ίeh"AO'ym(K@ 6~J2U# <↲rJq[ $o0-xf>fAQ'nC*9̤OVJ|v؂?2*( Xd\0)IPsfO.7'N 8ltG֚,̜KdGdOH^e1gp5%Ƌ$$A/9hoZK`_Z%SBPV[ZP7/wVS6pOQul6 ה Fak׊'dyvyi*m4,>ѠG] 9D7"*霨WAh8D\1qu51cuYyתǩݱ+ezuݡ80T,J*y+”L^5F斵zV1ܛgeu׭L[yz#䷐cAmGDL-d>{[sGɕ,5yi5,iKv7eW ĺi[vx~e@UpRDOUhVF;uCǾ4&!ּ3,3xe(CHϵ,{ˢj AsJ6ǯB O+}ɯp9)e;)gerbZÑ7N}ǣ4)[V~暋V@P?e_~ %_ -wQ[ lE6b٤jc{޷뫾sL2=Z%ˑH0i4>v:26 #Diy m8#uKhK#ziT\=e̽ݲ%>'o?ި'{H4y'L=އxNjj1|}c^itB}[~V;-9lNï[p#[rٖsn!OEtp`|v+bERyoXT`zUw(#E Rm3O+-BoU`{mUj0vU0{4A#x/kqC8&(/^sYg2"@gr66L99.oKMPWtu)="kRfHkoQΤļB[Hi}?qsSgxOh S )Ca)ԺY:k=ƱYї".Sar/{DҦLt: hMlڲKLbxDA/'V#_lwŨ{-P3a09p,Ɯ,sՏ;+W!E _EhԭD6v$txd&wcmy82+pFO)W%_6AgY:p|+<t}8,!e4@R\s!{>%!e 0Zw?O~c=L"R'mSQhkY9 t >}T-wS0kͻG KV6Ugl"cOGQetd=yy<*J-Vީoq z[X@4Va`) ?-aoN`,i*́v6jidS4D :Q>ZlQ]gY"b}$ P#qciGY^;;aEv0qಙޕ -^Jd49[aAr]vFMTQҨ8vǾ=2I>Vl;Vy g;](f7#6v7[M ?o} 2 Cf ` sthCBV.]XA+YDZmG'̇ Li7ӂFÿ[ФE.eQu?姛wp9b˿I)p6:A(?c𳫮Ǚ tZzy]:jZMiXe=ar?`KhŇa &ˤk%u&e/O. endstream endobj 4 0 obj<> endobj 5 0 obj<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 6 0 obj<>stream h[ےq}W#0.u%)YT][K>`z03M=a8^9YKO/IeK.2Oԯ]a7M'rxҖϋI3r~=!p20~S$U C^?OuY廦o*ߔI^e&0W"5Inɓn_K뷻.ox8*5~x*'v1ˤ﮾};YMɼ|.; ^˓Vfh}rg,-O2aer5ȜVF.9zhL"ZIL˱܋y]C#Ś蚚Z̷H,= =-.!nmrj|T&Ub!|SU26S2ɮMxuVeˢš3V@nwAnLR ܃Ɉ.GQv hy l{JfU[̢HIJϭl3Qj^Q7*ϏfÃ(~^z ΖWN>4?x{Lzan2pX3^)BbjaVUϹI,6~S(T"#\ˈ'N.rgX7NFbX`RĴ Ѽط'L-ŎT^u>1lyOFaK*!KpEqUcaA[ƹ>o,{d~EzO;$ڎ!5zД;H[6yygn:(Bfr˄ S3]%SC8;7͜sUlZeT ~VX\|Q|9Yu$/I Q&]->7kB.k3Mn~7qcGh .]~jukW3'6- S 0F(=8G;qKkola7ۗx~|( e vнv'U N J;%fC=Y._m?1Y ?fQ JLrOA͕`hzXEoȲp"NFK ˁ3ojEw~HT)&zlE^P9(NVEnQGP7Ë /.ҘI$AɇlgM"$!),T%> = lW._BXy߃A9DqGl9n[°g%6yQjڝ"@@H ~N)56OI?1'lt"k}BwChh}Qx.z@{\e,+be £P˜ A˜a^2v([|a [QvG!&JrGsHy!ɭRm/< +P?Lu$'<ܾTf.`rBH&FhR3ڀNpzs \:d`j{18c1;YL1Üڧ&f3ybFmx '#3ѽ Y'*#ySq9t G(zhݵtܑqL#Fd,p&5BQXrb^c,כ p­4NdᎩ*nK[6]1HI|.\dE!;% AtڔoySuiֳ"N2Ro>#-Ϭ?'͕7^d}8=hhe*k$W{3EMY2<{Jfﻱݽ@P 9ayHf*EКMC zHu&j~DmlM*C7k\ȃ~xuAn:*~R>LE,JehGl1$*iocW,=*EvasBc>GY|72AN* ]7"Fzar ` ZhB\&_@W,䫵GyZF׫́ e %ԙȕ:_q&Ҡ\ SHڵ6>,%]NRY YKbfw[:^I[L[`~)CY2=+$TK^>1fVh3 > `e'keZD.)S-+P*ڱ,bsf&[0QbGDž3f"Tz?.-gE,ÿq6:ҼD`=<6lXܶ-c+\6C,` 6},R/C6ECV>mN1`-dnC LOê?-?]CY."n"5, )8)e7[ %7 %s5lQrYxZ,"p ?9~9!`R9r@:M4~@K`^!Al)OmwL8h@/okē*B6W 8ag*Y̸9A,gaaNчK y c1ٛG6f )J'^Na@=- [wI `3&"BSݨSiHܗh#ScɦږŶ> mahq%qUHnoK5%&b'l1}`)4ʘ Hݮ{-?Z>(ﳼi, Ʊ%fH1̾)d4lcKgYxaOtuK{WƄm}uBOI/jg/$Y2ΗShP1ev'FM،ڜ z` r~plT=1G43"etPA׍V`wKeV} W!X)CKf0`#R&4RB.l71 j*xބxW{6ݮ|'\D⍦{U1$]|phGL3-knuPoT)ցk91p) t,Vr[*6.ck*?Q`Y\X^yЏh\ش&#pXVz=*š~ /؜C"](ɿFZ,_ +9ZgV4}g\5(oP;6I)zDHYr_) ;QZ63E ֆ)krACl"S" l,fۄ2oi5qkUtSل[2F޶cuϚ|3֟ #S7cHG[i.M2>u8Lt}TcӏS:kyhyQNa¯֒lb`zd \/vZ1C|sl+'!u",XeN2`8P-YwRU/hᴿՂ,TڶԎA>FSe(x E6o׭s}_!N@5F@їbw)y'xsv~DdaBW"V-fI՛zUyҟerY`L\2Ưsjlu̢F*8;pٽ ^."('ƙվA]Y5iT `^ ٤}u,v\bߡ㑜r_# jaYK5y?2_BL>0ȝв2Tڴ,S]*Z7WM2MJy9y.$3Ǽ4A32xKhx6t3|#!XPq-c_[ R)?GT ;1Q[=;mts9C9xqy$¢ 4rwfc[q=Pm"cOGי +JXdZЎ mGF墕PhN^O;j,lnfwtc#Q*F<-쵊kAro0{l2'FB'`,[ Mb 7,!tM*LiW^jatQ8ZDG-;FtZ?ޕZ T>.pV1̔*aҶ2:0:lh*%ԺA[r`а5I{ Tmd9 mQFLusW b4%> ceSD 8iHcC"]:mL1ehC3v, :/XdI-6|15kG}1c>iwGS&Z{mr vln\CqGyWY, * V ?'#>ȣh>ۼ纽g빢9ɣR{yj,_ g#4'7$v뱜G>׭2rJk!Y,3!јU?tVQ%Tyb7gς,m '.L> '8TrBS6*wmv6/2xdRfYVk-J}C\аeg>;dy0U >a!fT9+K M VB џN7y xUcsɆG$J/3"> Dv˅<4јΛ|؀`ܾyl\[> kkGSi%MB!MBk __ȕr ]d>͙0 ^Ƌ*_Mngx rCH4piL͍͊[[(û쬆:{5ІNysu4Y^Eڦ'x\'MQG438ŀnwڳcAX%_ NeMɴM?W)ݻ endstream endobj 7 0 obj<> endobj 8 0 obj<>/XObject<>/ProcSet[/PDF/Text/ImageC]/ExtGState<>>> endobj 9 0 obj<>stream hޜZrF+tpFQP7Ҷ 7(ZɗY-M8& deB_V]oƫwW_|_O<7O3gܵ*4>^e$M7CgsUZ&z:u6urIǻo`edR{{ _RԹLW.H. TXf҅W_^.\^V!:-nۺ 7*R|lC_&ɭ}}?]4zR}!-n ۦ*RI-i6W#Odz&<z", j[P>oT#sw:Q-'1ETt4Jo3C5 zj1qtW)뺚H5c_6ۦ$z?V9n+XWFu2,4ݲ݇ ҟx5/^.A5Leu֏u _͋T-=D:ಏ<6ݷSX M5=fb'j?N"-9NtN56ÝƉWA'?⧧"Jz&͏oɀUbulf,njDF4?ҥ0bS-,%(QepB)nsRE U5qd3gA1>~F>1 T2~{#b#IN O"wNMGJ*6IrΝF1R:m%dƾբų|?G̮epړ my`:$E!Mt.\e0(8s@HĠ?PF]Ydnpz6pq$V6Ayte\Δ9L#෥߄T蠄v05U %s3h c 6[7'.S&j V7<ԝXa{, %ZBss. ,)^rZc9~HH)97Np،]Oc-XW `F|=骘 +Zi%Ќ2 tZ3.`sD0C5,%E سKh> -bJjcS*XjAG#lS ݛt8#8Bጢ arzO#XSk g.,{eܒ4ȏ3 /oV4$i!UaOƙ Třa9,9T@@l=DTn˛;z ! "%ߝ18אr-m6SHl8JpxP-=F?:HO>1S`"@Qx=3" D@%V$ʲYhz,]-*`ch!@8غq4#:B [$j/>EN7⛶tXRnWa\bH'&uTU`Msx"44Ka!2܄0B)NI7,Jv({+88G;)^ 6 Ib=8= )%$9fu ;ܢ <4X=R, 4B^2:lP(3t"'TE_;#tZ| u$`2`P jv+beDwwW]YhjNPTm%U\kr{7[uIi"1sJo^R[,Z-Wu*nt|ARcX$W$5ZuL疣 ?P#5+UA)8Y2P^r`Y6q91\*rslR`[.b)qqU^D<Ž.T[*/ĉDI rѵ(6B\E2acy1胰X)5[w72vtRMbiˠU#eڨ$ޣdh3XXyѝ3i[_ad—v0(g)+w²}Ԓ[k. bd|ΰ *Ӈ$Mg(ϣO!a27fX6f*_ lc^60P]ñd .O(4U` lml TualS0PGmOT +rswFb`D^Oܸ)l(䈊ћRli!8$Shp^ox^#VvWIA]c8Ey},%T !X{C{LL x?Wgi{,iwDsh, g=4I)=,AiSAvtVH8' .{fg@ 3%1t͕_}vq2>lBM>d(.~)E%Ӣ8;xTaWbrRڜl eʪvEikqwF!mH|aˢ~[P%TE6̝FD(Ŀj!s48مM ֱSFYlWDำp|<ʝ1b&`DThco im*HT%#2|;!s{)).Xl3Z%~Fp@֤U*& ~^$ ENn2G is+ŕ q7t|,XE۾d[崴‡)6F[B]OS)WޔϹt<G\|s$e߭ܰV|ٟVHB.Y,o+MdJFDP֚>|!Gwy$| &ft[L&β]q֭BqMV^=KgW#64δ9C^^&&?.ʑ"R䞹;f QJ|cڄ.T򾮆gJ1k.> endobj 11 0 obj<>stream hTPn0 Stmt4x]hW@M <+)N >stream hbd`ad`dd vL) 0q6q5gy+y@HꀀIHﳾmXrj.+r@tE⼼⼼+V,^B 'c endstream endobj 13 0 obj<> endobj 14 0 obj<>stream hO+'lf+:Aٽ zg6Yi !ۃ?p Z_ot6 ޅ!p `4' pvWӿsԭ硸#uZUݭ_U?>p6Et} o-z'K˳vF<"]J.'d~=Fy~n0뵆py=繆>%+,4\(ۭ8~2l:j+\FV7)ϟN.7Z KB/K02My~xv65H. - p标%kn$2٬=ozy7]_vfN 0\My~0,dt:Zgv2ԩa<9KSGujX:WRb̔8QY ~_[t:V R Q;7L.燚<C$*%521v|- t:?DXly~ӽg} 株ZZ45+ϲqZig>&5M_.`pNz/yс<ϵ64252@$@Oj:]bs6ipah*}y>L~Ml̻R^.)57 ZK12m l6 Xjjf\ ypWnOBpk<7l6'V*n`(,­W,K׿g|)λkW5cuիW_Ǵ(gÃ6xf{p4y~(9p|x&Zcd>ϲйc4G#"P_k6A__|A$K @>\? ޼~MF#th ) ի}q,g١O>p!᠋3!_9H? ~ěׯ'CWOGWîa,kIU>|CSG>8\>t7#4>}u_]=`zչ4y~LӝOn:B\EP/_jgqzwZӟ4&珕2-G08rBG?VN #yX9!B|#+'dZ`pc @  <݋lP~ 5xrBn~6ifszt~n+ϲ,vyBOcK,Vi&y>N?V|Vm`liejn>WVm޿_ rYY> (pD=_7L&ş2fYX>?+ѱpˊuY8N]uc>%yZ* <:IڻfZ~bh<#Jܬ*>߽xDg~~hyB܅Qm\O,3<͊k,k̟Fݮxix|><ÊŴBX MGoek/E{f,E!9BGj>`4珕<YivjXcT%nrU zebzܲd29: :gҙOU8Ot֑K'yXU$db4EnMgqǘ˜|>RTUlJ""c:4? M/!-Fq+=\)c7~z8g؂'+y>/pǺMq wF8:܇6Y n-pya-MV <$Vi2YvgaY9l9@itih;ߧ*J4p:?aSSLMc%K-3$Ml6+f/yoSD,ϻ묭m6 )y~LMet1\~b?Pci9*-g4p8CؼMYGHgߧfx珗<`p.7MW.2ߤbQGvbH$|PtqڇBY+ #1ݽMcOO;:w%w-HyݕU:#[[)AG4reM+c%i] fEiQjf wiLSD1[p;y釡PF)QlI=xi9+~?7}Rbc7|Oz# GKNڶHyAH.3J Py fg>X`cbj~6*?| څmIPIjW-Q,Z6MO PIhOlAV IQIOe'E˔`gj9b/wellVy<Х|p^JW=|c%MQs6ĪZ~[Ӡ4?_jBcP{iB-2yXy~er\וhgL,zKy~vJU(5*|Φ m:}jzQ'~J[~Oz{*oȈE/4ml6]O6 GKڦ~V銇yro˯3mz>QJ=Z ځXq 7ϏcC%^ ?|ISڹqJ(jI?V|9ol4>Yi6{=f;ԶRK'ҡӡJ^h5Vfy~ƷlCg߹y D|"NkxLO2Wy+R9*zVW [9۔ϫ*_*~V: ӕq񋧃#ci(|E+#ݴGZʗ*7B?V|9o_mqrZu1iͲ6$iƼEdnbq~\V3rO?i|Y0%oTߙuzЙy-M;<n\#8xmTp/֊Ԟ#\|PMbqmq3ՔeGTEt-1Oo i|=ʚojsle:?Ӧt{s+5<ͫADei|~J)QIĻVJ>YL؞W>=I`Ӟг:t\p)\o|,LX+:,Babb_1n j - *1> _omiqGگ(dR۶bg)?+8Gn<s<22?[ $|Pm Lz4I̵K疧-YހJk1KGj*i!_ތʷM?̿Zھl^v]<Jv'4 珕2+=MgA ni7M ]ytr}=y~gg7U7Cafܞ.7Rye(J6~Ay~?ږ4_Q߾,+ʗ/_>{ ={-|+By>"+y>+Oo6v\.{ɤi~Ţg_PnXK:O_[8#MAP ahOM|,q>y7F'|ngo8|9W?:gYWNbv3ۯ<PkfY֙)HDXf%z*Ӡ~S7e*>8*#POM|@?D|n<sO.7#aPgZCqZ*}v!OM|@?DNn}SJ&\NkυNѰ@S^o:lj:Cm\.+ V +>.#i_ xPVmOMMaQ`C$vJ08'i',pDߔ̥?"?.|<&jj ֹ=#tZyt',pC$vJ08t|4 UU- H¦N>L&tKRi:}܆{<,& -]Z""!aKG4Tgw|B4N$χ!" '>V|YwGͦbmH UVlJwjj^ϲ2[IrٔZ/'҇%G78aMV쾴JZ*ڡڡw ߥO˄eBqdjtf{*lC ptCj@ew g隸9/9a`C$vJvϚݞ%'0n<${X,b˗Mk믛 o5մJ(a3ݼsrV; S誶o?y(ġc%AAeri^^)-qS*E|)͖cxi:0[e=ؿ׿)9rͥ<.Yʍ/_|aUf\?:MjZm+<_(t^nQtE>T(|EQE/8E1yEQyAM1{uib'6jZ˗/+ o6v۴q7"=P(ݝ+$''~r݋()y>\v&ob_HR|Yl6ye6{}B<_I~,սV2y>IJ0(M OiOdM L0( ~/(@49(/?5kۥo&^\a~QkCo15v?hJˬVE gKɲthEnӷjwEv?L?:%?iIh^krJ Y'&׌J nd)ZQhLH,>GYx׈f~"G,a~Q{M =3JY.v;),};!?&_,1r~6zlf!PK4,7( sO }a?y3Z.O&߸<)*p;V7ۆ皜.'n6_ /v; #n6{ߗHuSϑ]hr~Q6܎ pv[reYhۅefY\,}`O)-l$<,3;fg{#^ g!m&t~w &y~_g -}U0V|Xb}gJgEIVMTtja~Y'2<:fcڧž+pZ}C$3EhγNe_BȲZ/GRsOIuL&ߴM9i?`wG-w_;Y}~lڎe/ĎqNURӉ3Y:EsXLgγKi|XzKqHa봝Dg "ÃF@Ч|t = o^WK  0._-`YSq-z |IwRE=FhTs隺H%aY=d&Z4QKH;:9oJ:ADKA^ ۍGwQ{|t) l r}1K/8O?M8G?W~'?Qל>}̙3O=C]I]IƓO>{IATĄb@>_jڙ,jļAb)K4]dAէO)' < (ɬ} 999j++ .|uS #_?|+8*K5a\)%; gj^5Hs,GöGH9Nuv[,GjK w7ؒu&7wA]%"-b&E;a1__=f~<">ڝGK{6'؂t1 VC]666++c>I, ;<[U"竸4kFjc(! gxU#3i8;4H#9x$;\!b|5 *hL[i7eU >q버6zv`LksJG*xʥ3U6Qa LbyӶ AD@:Kl> |/C|dvqXL' 12L\̀MՕ%+&R%5l{J5!4Vf ժ7eem{g)U:ti@OfgJ" ^c<q~ﰸ߻(c}_=ޜt}k -t{*!?cFupzR)i2C9HnWwKZm}jRʽHGf8J@ f6{tV=.UODOWF A7 _|Qߞ> >܍dx 5A:yz>8a{ 24)KawWT@qGxMv T}#v8}2-A!_i|:$3bx'H_uwuG#&??? TZ|8Yϗrzufmj B+3jE ?_|] ÙJs2{̾?{ h c۶tw@VbC|&BV'}YE 6c#Ф% Q9jsp<j캷Vt9[s(Ѷ; TLdA,Y I>x!x>/ۜ= v@>F,+RwQZ RT PVVZԼM%xZo*nA%zHߏ)8;HޣqwTAD9ҚNܖoeU#Ͽ{GoOߚ9>>j++ AKQ!`}?Oqy<4XEsF 4ib#Uv7FΠg:#WMJtL)VIbzHR^ܗ&Fհ>"̐. ^mCum0>)E " xYҪ6V>s2C|{mi7o24RgE( l[ya"5D>QQg2uA`99GЏ6ƆJW€̶m>G|(UoӤ?,ՕL>|#aBK0;0UōI/24a/`S4Y妹at׀ #mkۣfpXFvE 4i8L]]{nJlzra[y]E׽[ww5Y輡@O !TG2[q pE  ekR7ԡ\EE+X7f,yr`̈JXMDFiSmgݣYz>|Ẋo\e`01^ >?}~MF)Ȼ ivVJ?l/Ryld)u6xEÓN7Tx{Ӫ1a"Hg1XaYʙx6g|~L=GL}&pFSA϶Lpc 7G w^?J}|3^?@>bQY pTQ,QE6d9*> (RE+VϷ,KZY>#Vb(isX?pѮyQ}|Ir ÐJQYw#YZth9!yruuO qJSڔݶ,GMH5߫8zi1G<#61kllld˵#Q/*TbQ(+g=}4b O?o<<+8<ʁ>qKW^ɺp8A?qS d \N`,*d^_b]+ S|kn}k*I/?-k9s&Vb~>XM+j0$c7,**JMiQsu&rbgZ|n{≷ULJ)Vpu-kn} ڕo3w>_q(ҜW JUjخUϼ٠YYق4׋CWTҽڍ aPŏ(;A a)lW"Rْ p**3gdYXQpEkSܐ!W,|a Ρ\(|^=eYHQ| q'5? 7}YH=R+Q0jlmixRJ~+mrJ*Y;J~\_4~ /=t KUkR8;bUѮ>_'ފ])#MOiPظ Fj:q|Oh[ܚYd~*s)7q` w gy7o]{kYvߏkQOظ:7?TYxl14ojm_,]ݧs<tnHB D|>^z!y,hUM59KY'> ìB]q0<>Rf [UxI۟7F5mP0kP ?au|6˸I:Jͥ/˭kH,0T gy76`;T /;JΩxܝ}yVF&~Q9i_ᵔw>amۣGA8pkŏޟiHMRw (˪{4I3jo}k7G K/ݮRW0*ԫW[z0xmn_+4T>\so|tBs0 &~zktj7ĉ+XTq?'TӼ}ٛA bS_sBUJVEo6;MԤe|>YP3\SK|~+}<WV<|T|ϣlb؋²R:yJ`<,57{o~CHփu"M/T=5x@k8lw(J26+Iz}nWضGMU .N |-0uokb/#"͆Y:7)]޵A=dYɥ{'󇷧sDm[ܦ4RҰ(RnD1 ŊY{>jP}wK)~#_^T|>7C*<&Dlڄ; `F㵢Un&ͣ # ¬sxԈa{іrNRapxwXb@Ŋj?-|)5 h ʽ5𮆍)v˖rG.K5(}i"zgm+#]5\E R>s2c~g|>wwwaMgYjSPwsCbYJ1O^KŔb3GJ9kG@+7Q4 G*rXYYjNR4 /Jc[0t0RBpk MfжMvtyy0A|;'ÏFHd_ÛGSOinERefYJ4$80l/5IS `%d|֕I}Mx||#'>$7RS}~~ tT79PlVW*P_ض)܅&k/-@M@جYY.ws֤H9} !G9[.M|k#ڸޱ G҇sr.=*3fʾ4a*sԆa>LwË3ifŭC* .Gnk(ku#Ymc J'hKludviyp݈{꾆Jss_or|&cGݔ&MgordBW2s "ώ0Ĝd>?91ϟVM,vcc#+l&CHe |hLidue~@i,/UWOKmd+ޠP0#>Њg2ԟaA}#}*sKX7U=ҿ uZAp|߇Rx?,+Z m^kGϼ xS?^#D"0a(rkfXBn|YHԿ:Tw+|YhvcLbpg0,^Ų:,UNPq)8T0I0as# tb"Euўu u\Ødz6BDFj'RDC@ZYR]dl7mpQnV<"VZ %6fBUjwK\YHKKV,MZmwDLsEg PH3K^1mrFt}`'ߚ/$GQCRǂAgDQM+:/_<3n0&XPʊ'|H,;0 K?w ^o>_ Y]OkC:"n బ8V*aU+E&+Nz/,S y^RuϠ % 拭xr2IßڡTY->o&P}(}/TІpLN$F)ϣW!|ߏ4q\)_~ƕSggٽ15Z$E \֓/59 J?uӲHWiO[ZOx6 T7pFͣχlw D٥:y&XPٲ}/ޟL_| xDY]jDQ]܄>Jr"lgJvB|4o?)|~#4=opxKRE}TT$ g0l{$iF/%l/ԯzu#JƤ'̩R4*#k"5 +J'0oTR|TqrL~?">s~<5.7b> ӧ>Uuc)]abia(0|n?||,]C?ȨP}*^b>JRlA A dyOo/ΟZ\,Do}~qJm4tP%ߏ[czM!M7fXaRZ qh.Բ ψeA^^u<<;"(Ϧ?>Rרx] Y5 Q8JpE|> 2 4ȳdbO?df˺VNY CJ[@_*iR ]i'Uޮpt5(IЖV)Pe`9{KXhpwͮWt)#WWo%'ߞ>wLfsUfR| (nH81?r\J TB"t&T.XiqA| Ɗm:a{e&[ZO';`p&.Ļ'wtz``~/[unsm]E}hw)9_eA(hۣNݶ&nUfYV7 gЃ*Oo|@P>A>v1|>v؏#DEw+CeVns489&ދY} |7*<"#[V~&&6>&7[$Rr>_޵\.ͿLTxF[LG*RuoUwi<64V%Њ0 UW@|pc JI% }i_yZ˲bRχ^IgwX#M8_/;^1XRkᰠR+9@a!>#Ɖ`"_)@ K|+J?`Bwee h&7.]v/9!qIqAk=!ͩJꞪ vwCADx6FAq/?oO~]ߜh`}}}{{{>ږ``۶ .>S(!% CvZ'0㢨1 nDpWYF/S$.N ~8(aoTXzW0Wd k!u^&T[^0:*eV =W>KEUy=5 Ԫ"O^j MmWFV'Y|<|VgK#_=*B7BDo*TwPŅpHV@=wG> ^!戦ʱT7ee͕/ϿvD^X1VC]I]It+^" p?|EL>-THøR6D~TֵV戢ToL*A0n(xtc _ 2zޘ'ABLdeɇP2m۶ ߗ(ߞ>@|Α]pMf3OPWvmǍ JJѮgn^jf|_%!W@_():%m$.1g:9 1 RKwT/(4jCG*_F6ܪ؍=AKEmۧ4͠),ҶIvJJ{]麮eY{jTBE>![%&epxuIe)n'sZ;w*t-e9ur/GߪhuAR053M1e C$E5AQ.|`iBu>_*rj:h(*kw>9!M3.i,]|?-4(rdM)aP |6uycPȏ " CǁWT0bKx]}K/χR/Ab=_ [42 Fk_V$~ ڽN#cuu|p 45',vf58%Ҹ[%AoO >萚 (er( 1VSK5Wsi24׫b#<ַ񲫐n]iYf씵Ls\V遰AQe|OAD(bIڞa(ԩ:'wG/,A|~7/dluuH?@B{KSa 66a\Y*(epp߷HqmkEm BDatߞ>& b0qJu]u^gEyE>_C*rAhZ PSi0V2| iGѼ  XFR"Ʀ7ar>_`E3 h#m#A0uV0TƧ .ۙov+r !ˆez %mq[~&3f\eZ! ϽnH7І; : l]\=^?Ȳ+p6AH2 /rF«GYOyא|~Le3^jûDf_}Wo9R!LHi":4mr,W„' Ͽ<~mIѿ=}>5 21 ۮh8AЙ; pmmmk nuݕ7* ; VE2 tnRh?gʗ'N+א|Bggl{/[ AiVȗz'3 .`꺷1R&AhΔeҕ 8 >9Aʥ{#bJloo?p8}hHQi5H^ue~ 7\H謓@ HńJ8}/~fU2ՉZ@"e  (*A*g%l^@2y(|mWF|m]]~eW:"bYs¥=ip,s ʤ'b*2&<l[8=1A677n@^w>0 i9AAߥTo/*z-766>OB!&E\Ȳ,& CQ1lmA2!3 " $_Z{[~9qQ1 |Qz*^$P!-D ETiҢTd>M(  COı 7) nt㺮&>K]3۱E5>?Uk]RSB2URX`<YZF=Y$HAaSK)}ʽ߶mq`x7IȮFՀ|~u*FS>_ YY٢Btil82JH#9\-BDQ𖵁OE/-  Svr)PO}~ogn2/ /~R L*z*#H-gy268 CTÏNdhNgֱ|?"F ϯ|xWysGJN`\:#M8` ̇ՌAD |kwNriBH?5.(r}>a A L>N0dmy^O|޹x;>._ͮEQeYxilG@W<Aʼn\| R^zUwՁ|~u>WQfLH>nYVW*j+=('Obmet< Èa||8%_緅:}J}L[?獥'So=DM;\4sM}+Ӎd>AQ'[fQvdzr2(: G+r}~Eq aͲ,nR%8amqN>Nzu1\󼤤3F, iT e~1x| "r!EɀWf$Q{?#q/#Ri0ޥ$bRL޶g czM%*az7*!AD͔/cG#Ĵ0ϝ? ),0 Y> TLӤ\|M5|ճ֙eZ;( -x zR. "$$kIQAZUq"IBY,zfL=5VQ *E20_HARϿytqs2Cdc8! |R&Of0՗qp=mYu\X5~|Saxhil$7|NflĂJ4(J1˲* o")ڍ%\{8>^zU۹A>-ûA`8K%'+亷vCpd>A-|܍os~kߟ" |OfMo:+Z?qYw82.C|>ONfG/LȧRn,ZR. ƸP=Xem}$ ܨ#>k%@.|>H+ ҩIlcHzHcj,hs'=gJ ?k>lG3^G̏7X(緃}q^>#OT4%cۣTL J.D2 h|> jyv&gܣ?޵^Gֻ]M-ȍu !$$ zbMKVKX'*jmFfLDaA,rad~Ϝl7333s2+3%c&j! H|~$fSޘ7 }Tx!q*#Ԑt y7[@k:Yb*Wt#NZ+FiAӠwf$Ɯvī_d-]! =ޅ.dRr˾6,Ӆ$꣨fB+%NII3Աnwm OEXnR>_x%r9Ůhdᾔ]N2q>Nk Bx>?ɦŐtr{+tl4624U+r؄GH24fM;qbxŸ`>9gQ豄j5ӅTIB=D0))iZ,;8`v)]RV>ᣧ6L\n|x_񈇹\.zN~5|/I2Fq(Aw&pa.X= xJll@ WPC4̮e盵!kZen(Z@Iw> USȞSrsٱr"mORcf(V #DӲz/1_Zh[ #|wL[ګOaVJs|v3 _ |〽bK Km#p4U*wӫ>_lقh>qhbh0< ;Rr}q(ٳupyN]Aa1,`ޟ3bX٘3;'G)OۗJlz|з_лU7nUi3|~0L|~l \U|{|撒&|]b]:+6Ͽ0|>/?W?[lGPhP==\~:|jdύ7M M _hG+B,^K]]cuu5 |A/po 6 k 3+x$OF؎8q;cf(LmX"mOϏM\Uq %0̬^8|-/;;;beLI|(WH|>?I wED5Ci](nGKϏ3`_8GAGq|@d|>9E.og e>A+Sjܾr&WWhV^vO(VoU^HӅa_bZ0PpFƧ|~[OX"^J)|q>###Xv"âVO),J&tQKLJ%(,~D3 BtuloX$7DgYTc_ TDNxi|~0l}>gfV+Jc C.|p]z*MZD9E^}v\r*RHo @ܬֈt|>j4 xufgY ^篟|%,|~uVҬ`|>p>!3ҙg!*UJɱ}Z- >S85ĉ$4ݵ_`C7kxE5*cHDdZfS_|ݍl|EQ؋fffj~I#YU!C#Vs>?S4\kgY|go??/d.xÉn0oqgx|Z';Rxr5P"̀O x!!|+5YigpnGCj 54bvlQAgriDu㒭6DycX{ .(݇}1v-?og2v~s[. J뽀nāw?i<~n|^KB⻆TttZ:{d~bCA\ f87ކg޽^/~~D/7eMp!둋qj0A&{(p)Vu!{ |~Pg81hooG@Ҁw?~q_Ǜ.ѯ'$fXf%wthqhFF1-Vva-0N-3mR^fffJDm@ HwIP(?Ov#tXѱ%tI1;ԟv+\Яzs/ ]|[eJB|2J].WjL36.-aw}L(XoJJ}~(M>|.接^9xUa}t̙g閆+Ip8ىeP677 Bl|9.AՃ[?'Z'i3|>`;]>?"ƨ)ocI*nf -boRdU~4 |?mBh 'ft},rT|Ci:BִH ׃g[v555L7D?C(JFFȫ`~7GPjV%!c[>?G}>u ݎyG!/h`qkX4O}iQHT 30 W+zsuuuXV@ 0Ji(,X@z1ӚVZMMM~!aw#OY)gO%Bj}> -1րχt>ߡ^)=H$L[O῞l< ,}V( w$!ۍps/[)緛DH>?.F;ԟ6 ;M$B vmXAQ``p\Q(+1# KdUٳ 3}~Lzs].u| . i;ԟN&Xm_/vJLYm;sT8߂ Y;ȇJ߯>vH\.&dDχ |Ciϯiᾥ'LNH @_1`d)c.?w=sڊy%H }>P? G(x<'@P}\4t\W;$Z g[ٯt0:B8Hd>o nw;l8ARGH~?|Il;|C>(m5˙%Zٯ϶bvg] Kno~ŮMz+>Q57BpSza>^B ,>8Ck}@ #/04D]o p_C^3I?H 5m=LQ-FEAġT#n# |>ZSoJ. HxFFF_$wc-`)(U>7aRÊI@ =G"ȋ} `g4B9E"g.vc_LAzU>k?Cn(7צfҘl\h?sP(Da]fn [v܊n.K9WpO=ȋԟr]#eM|| G H#$M$rds;}0(ٳ8.W;u(2qCGǬ5,33 @ 9Wȅmv&Zyk&h.q1PA No6|atl_۝[^ [['ۅg-c˕mjj}>dۣRF&BW=ؿG d]9s|[.8󉸥>.ģ +X?:LjV>?nQ7N2ɺvF,iј),)јI(nōAYLw],Gc(kcqM,2cS5~B#5q +{ha!հlќε3VHAfg!<]KJ7{c,nQ,MMROVY=?k՟bL4e&9M2ۭfX*җQD4\do:dIƼd$I>G4mpXL1?b^\37s(&X̊XPdQ\+]g0y1Tf :]Bi&iM淫&fp#>np_2J3 oX~,JIK9"\j zVStH2Ip(Ŗnf\E*afS7 H_% PjZL2Co%ۜB?$|}5[M{s̿+vZsv.~kgA·{9Vw[}h{Ez[<6>7|Gx#l8O{'kt3=tz͑ӫ;3ʪV=ꕳ+_=?Ks+:w-?j O,/S~ӟ/յK.]rvuKjB7/>>y WC^?Q|Em[ r/5F1[_F+Xa5Q/j"b_i5r>,kXWFhA_݂Z5X}5};Fu7~sVoNoߜ 87Q,N. Ɖ/}Ow_RmQo]Eo.fޕ?]y#jw<ʫy9h,y=/BcGˇ_>Ƴ/?j<ٟ4Ow! 5~ǗD%]KY𒮇t=˷K.=K[,oWe;e-k-k|pم C>\?x|ph}rKkJ׾Pu;_GCO <7P?}+X/(|eWvsɫ;3՝^ݙ[kA.knymͯYƞ7Li3XPb果DˬF3̼hbbf_cI厥;Un_oo_vcū}RP5 m>mmEnnQ{t㽢yo;Nl{b]'6t/%6&Q8MShmJV7W3[elߦ(9(ٌ.5Qb)ObYZ",i?#hMJy'%5/]yO&y鐐ΏYj6;v`ve Jٿk%ejf_i8g]q+]qZࣞSz>yA>Vxl{GWۿ[UUonu'VĚ??u5^WxɵOFWYU]Ԁo3X4:ԟ?<#[WSٽTRݱlvn{n]BfGv1y^l˄̖f6vkvk6/fbC`d_^!Q45m=ɼzzN`g^_+}2CKPK4LXIC9כv{}>\C1Ρ"H2qP2V>s]3!oq)4q}>?ےL`ݮsjfh%>_3Vy*$YL('wS5hoS^oqx"ybχχχχχχχχχQK}~M[Dєw$;;;Gs N?X/J PH0ZQ6; M &!%q-mq)y]42+ yC3VR-aq(Rϸ*((9>T`$w$w#24VEy ?7`z(ruIǻnI#飙?Is`Y;t7; Mʹ1hMY^eS"|[6?^ť|쪡 7&1l*RϷHkɝbwy>T>?4D `g >|>|>|>|>|>|>|>|>|>|>`dC_kc }?/N}>q|D\Š {}~DgϧuT!n[#]Wf322,j ԇwm7<(>D NX"f3mx!,%"5{^ !R;ɧnIJq>1c~0vļY"|s|6ii&C$RZo41z^2hXvȋKt3O6wIDK!`ҰZR|K/33$xW1a=byi5<-4l&|}񩕠r5>oʈ~F}v~g8_<).<6qUvOHkB&f^3"~loF LVE$%NS}"Z`r/V?N7\0%0;r:$} WP;^ /6|8K>LXASox66PmJO!_J@.~٢.`W~E+ˆp;X)y"GkQGJ$ Ҝ/iJ[+S8 LQ |O<*5m=d@8T22ZnjA J:(5KT>_s* | 3Ev)=z}[$SnZ+^m($#io NcvZcװ֗]G7)=:@|jLZ5/V|Skw܄jGF ו}Nܕ2O0lkp6-<.'Dm||||||||||1f^VDOI3aEq#N_/v>VV\}EcDל;=.2ſM XZzEQd~X]甴,m_7:yin\e: q/y| yYAFjχ&Xۈ_E|y;gd}sy}eq |T|>k8p|kFnχχχχχχχχχx!zA\.]E~r|mT4vү˲]~8L#B Q^,:|nVC_?~RnJ|Rr=H:|Ԫ1k6+A7|[x]mqG#:W}&Ki>4 4hEC hb0i >>>>:붙qJ!.$zs {Ek|[1pC &J/ C^k`Ϗ}H|EQߊt~:fPK&|\6(Efv}HML\{<Coh5%;ܱ'Ekq)]1XC62U3 `;wVI7ʞ'.ҸO~xJd6:71yĖχχχχχχχχχlIcz0{@r|XWj%҆ds ---_]}K^ϗ ׉W }~DX,ZJzGcPvv=1.!>%U> [_L_y..øج}BBy OujRI|\ }|]x^r/_=WsCۯe|q&;nQf||||||||||($R/q 5$Er$ +66+sUUU}JA1M~enj|}žsS٥P݆otl07-4OGt#}>eQj4i|>oϲ'7A?UB/`~\ʋ֭||VAtl fFlӻ6F"TRx,\2<=o Kt.Maج;pG |ޏX"@pC)'>_#5za{Ni oxP(&YYf6ljjnyU֗_`DV |:.4"ޅ ˼`EYMa.h󲝴h!|>|>|>|>|>|>|>|>|>|>`4`)qGrSnN6w1϶_7]kZ}M|J̺ 7:#BMV_2\z9vl᧢.oVbyPKΨ&[m A3WJn m?w4χχχχχχχχχχχVq#-%|~*_etLy}G9_s>?G^z^U)(-iͩZ5}} gf#),xEa0[ ➯Og,%zF'j,V+1C6-沫%wMOJ;8044v -~y}U3e:so*3hΤmsΞ=;kwVw֬♳gݞ3_[vܺ#g;)f횱x׌%잾teb4ϞXgۦmۦl}ۧl={[zG6;wfߙά{vڵ7kެ=wMɷ5&ywOIwGc"EQc_{K&W2 ?cqτ{n_hŽX//ō{cO{nFwRܥ^5jܮmj7EcM>j+ĶXU-8yBlRcb^uj~5jUBTj,WPeXP$j,X,ouޤ_Med_M?Ϻ7?kg,ɺ[^;7.Fa+nŴ+Y1}'Xg+g,_9Pef,폜U9KVYFުEr9 (ܺ&ǽ&53oX;sԘv֜uf5Kf嬧M1cfO0{S60;k7Ιčs&l{ƹ7n{æ>4oy6Ƶ[]%X5mb&Eso, pEd5D۟y1; rg,rќh:fyDqhjrDzӂ9jXD?SΒWjʚN)by⚶rԕBZ`IhS#[HeEwd {g90MLn,Ĵ&4x*K\Le,'<iEt(y#Ԥt`IJ&%!/&楕&5jSSx@v$_>Gݟߟ)1SQܥނ;ո vٷ-jZsKlWxo,QT8bk-jl.bTsr `!$l@>-Zmx6eLxNi }S][<@8($>_/}[$;wn 2G|T>|bFF3@r_dh5+VD{ 弙 7<*~oy<I;_.Z*c|[CyoϠD|W C8^ !b{K[oIr;͡j[NdwC/Cn~h@1" 7v]3ڷ#|:з1b_ OK1 Lhx  7AǷ_1ph#&>_\bQR$s>?"d`Clx6c7,ؖGq ( b@">ȫ?7ks_q_{(u%k6Ȭco?,Û7Ft#5\~CUdwQ.}Lп^ G}>ނ|6 EJ0[83f q $t̏ 3|>v%$ϧ)MgaC[5lyBԍb'7VtŮO=~^PrP>tsdAfe ob°h'>U|@Tn@IսX,jH2}>>ū+}sl+S~=| ?P$KZ 1ض@|2&O瑱jxwDYi{rP%19W|aID'a-$ { E /8~ѷ1b [gP)hԗ_*DH}^~oz:>f,I6.()i[Lg(rxB%79+{s糇;4~H|~|sfF!)Ǜ.I4殈Zfwv|)U@`L<18SR7;ߕ=Ure̘ɹ| ij|>'0Tf^0dgR/vJLm# q\))i& PH|Yz;.p_՜kIOmYH" |>vzjDy|4rONHdNwϡmmm Ø iJGX> eUUVxq~E*.M`0xN?c[hο]a2Ԩ~E}ɖ D|ЗtJXCzCd8̩iqsT:;;1ҚQ;gcUZe>k76{O 3hfT-5}5KHn)R!oJH"@J LE0o //oLCˊ':9J+k]I|cɫ՞9p8웍g}-L {Ge6\:iIOOϏԲ RSt]$>saXohڽ |@ >HZ"sZv9d29PmSNj 鬁jǞW ;3D]ŋglYw21}݁#W#Yq)^ `JO{n8 t'|~:+lNߦSamDSu]UH$"Y˝s0esSMb t}-S6?Eͽ̷v1ebt0{/x<Λ2p{O?/GQ4c|> O4321 bJN%9wkay,^QI)gFb.|>+\=;¢WUMӜ:imqX̷5KJx:lӜO)]_Oӏ=O(S33ҟ'F>M:6Fhc Rȡ/|>7<1?pj&_>Ww4{r7qW?ڛ<36DDOjhGG鏎&_MvOgsJ|um5v$=LHstg͸4_Ζ1IJϖ4GldT(bpҌH?2,eF͖ǂ{%ܠ{FGqo>*Q:O `*W R>pH+5<.oڮOW컻b7^G"c:ݩCMfD߮G e|ATt<1*;4N~?"Ȭ2$ ECNL_2ҟlJʻo~g?921U#/HMKC!gssJ~9g|GAU7uw}^\MqKfp<Ms&)؛AMӸ?aIk>gPgV21AI~M}>kj퉩xSCv0dS**eq+ރ@δ39FCjЉ4se?4!йWQ۸|U4iEMW-4ExJL.yxGV^ʥF.ۼ+囯\ʕ[jУ˯~t5.c~ز뚗]߼W|ōW*ry8r-_nۺۖ۶mKXrK~?<-y_nWخZ\>fBv{"t>;~[{n,}>;VoU BFW8%vA,2OOX&K:/6k/×n#!?'/ϹFr+s+]Z(mk]4[)Ӷ[#YK,yuk.ǚ+bknY-+b7|k7z_[};o׿կ޸i7Mk޼7o׽o߹z熻y{׽}^{]?x쩎|g}WQ襞U{|{+>O|`فeZ2_ / _RS1_5v$2rh&,-ɠB|O\:>#ғG~EeHč|0,F]!sL9eM!oi7}Kg#i򊑗4c/]6y BO,Ccd򬑝3<#i#;.v!Oi1'l3Ui>cF5Ef#yel2ҴlQCFjA!߈:<g/\Z"|S-!B엏>dbJդwZC?<~ovP>4hQ s*i=>HC loVw{?nk2骆mA|άzΰ \8XJɁχχχG ~ c亾`} dz6MR8 4e-5Çє$POe1E̫2,Ԕc޻HSϼ5}p }>kzǤ|J)g:p89G4 e7qgƦ;zž5-tvZ4Ben}`` N@5DSyV ")>1_Hzk}Lž>( 􋃕W tq|>|>|>|>%8ľ}zDͽSE}}}L7AS ===hJ`2̷6cn~/n׋~/ jh%7}# lF3֫w}>9b`bI9 4vД5C"ơp2Ӕj(_^$:ܶ$G"RCqχχχG r_VuhW}bߚփˑ)8e|b}ם;$|ϵQn%u|WχχχG&ž#fՋ>Hd&NKT7p ]m`0hs|^UхkRN~vK*=i7f-K||||>>>>>FM>]/ cNKRb{F&xI?PN{8]׃MO \^rxQIubփ>b|j2oӒ{f#0+LMwdXi U, "43lse> C;hRҽ?`pu.ϹmN#E@8u~cL#SҟeԎGq#Pgnw Gr_y kN[^r縤{_䐻GEO '^ХKJBh?<|>|>|>|>|>0o;!q>@P>8~ H*K-8bڔ4Rt`}! oILK:vʩ *]:>όP+{O*0/>>>>χχχχ4o=(Kfhc#ShA@Cݸ;6Kiܴr릏*DFb_[}O_4)oڮ|]&]<.|Q:ޮ}OgKn>>>>>_G6B@ Z4VnE4^>7O/_@Qاn_>z-II~ v+›f3Y)&EUUv}He8#nBᰵ($iiN u O >/ik_ 匐ϷG%:Sz'=r0+i`%zgn>>>>χχχχA;7}>ܫKO2-Dg`` z4e=7eWW$TUnہF̧wā5Ϸ[Z>!WnrBGEOXt++vX4'fP!)+ރ@δ39FCjЉ4se?4!йWQ۸|U4iEMW-4ExJL.yxGV^ʥF.ۼ+囯\ʕ[jУ˯~t5.c~ز뚗]߼W|ōW*ry8r-_nۺۖ۶mKXrK~?<-y_nWخɧ|s3-l|6IH򐑿yF6s%DW=F|<<B`=Y2r;X.|ߑ5>,+<.===]T gBUDSbċ +ےeXSO>͵ I~Iɺxns 8X/gK$}> Sc R{`n|(HY Ocd0?AS Ԏ===hX,f՘@k þR G֔ AT2M7|>v?'G6J k4emf)u]F>~:K-˧M[]+v/ !ko|[$>ɝ>_.Zɍ=\)W8d?T0QvM y:I1;jMTUeώPrfD xE";2_$t ݒ iZnw|qփ|>oPs(U>AA|@A7 RZ ^G6¿zu=Km sgQEQu5+:ي竹^q竪*;R*V@gd1Сp>^󓙬7h>@R 25 5Jٽ]z %= c'2{Qw[EϊɢѨNbgfud&ԝP;FzܫKDP:;T)&߮(:9D$5Šq{ׁ|nk|-g۵˜-27%|>k>}X~6#id&KAH$Bo(r${n&=Jp\ժޛ'o-oȬ+}T0%A[nKfIfKkZ>Ū~uz|?vdbʎ߲7|'=.|]$YlR|>p(9tvT~/qAj(TK@@B(9ACe'?{<]H;e~>PPH< `4{+ճB;ks9O?%:hdb*uwdqjh4(oX,nz\FdbJ4ؤb1kgmlI:\9=lxb =7rŸwڃ>hN06_L:;TۡCW;hʚnkU֌x0wPo;Ғ4lxq~ݮ^BϺG.G YL)tEQ|8RMzpI`Z&ɚޙ!fH$Ԕ8/ҧ;p8\~5> *6:G]lGWowN[w߫^῏LLy\H;6}>?20O|M%R@@h4`7}~_2=O2_Z ;MUPa8KG"P($~Lh(uٺiY4ДZ||)>UspW:+𫎆 y=h,^85#O1Ò>"x秳\tI/.m(5;"x'Nꬳ]UUV# B&?g<#w~RZ &mgZG&ԎQ{_$pdb`jyP#.g5]Ƙ-IJf9KU?N3@ňD"{Yٝ[ԭp8,~< Ҿy[XOw[{mkBiN|~.?$E4#ah &kSlV;Ǹo>*QCO;Yf`ΙnYW ~? [1:C\O]}.yqht$y=i72&9G<|> SLRIy|h4Zx狌LLI|~scڟ^8TN]t%u]BΚ`0H[,jfz moO}F\c0VϧvSiw6Hy@%*BӴ2ߛaoMS{v@ >^R)f1jǨDJ~ USκwG9s/nξR~%&xK;,:vΐP(FD9>q|"L|bn J ;`Y^E>D 0ZRN ˄ t]WF2 ~a>曶 fksE|B;&:8PEԆϧoA &bZxE}~_2#DM w*L4 ևаO]*oڮ aqG"]EQMs=uawk 9_h^so/U'ԎQ&?#r`0zz8gן=IGpMQW\>xC+oBgGji #yltO?tgi+NH>+ouxw>ۆRMD-imDg`` ߧAS)F<sj<% I:oq̳E.f:] K#9ޘ\=:x &D^@J]GFu)&jN.T*Дhj!ڴZ&`uUb56XpHER/| lvpWDv@}>zcV4]A<5Ju|;!Q#SW588a&?QU{zz)yj;HiSU:JZ_e7󘤋^a}>{lӁ@L;ЉfO8%|@b[qvj6w$ݖB!*mC),T*\)kl6[MIJbaGi4*vg矵o.Ew[E;bow n !{tKJ>'=dsu^{+9|nc]seB\Z #;Pu>dbJ"wT]יh uq'v4-!^on*Χ𾤋>cmD}>~rz r3 UP<]Ľ<>P{P/>gP#Z_vN2`0(esO4u'$/"m@E?[-RpԙW8S8}Q"?6u'ԎQۆRSzp^i1kA]1`hA7ng<KKқ- 1+TU5$s|>`$`K|@ C-wPGm{0e.%ݡ˿>}(@ͽ:"c0R(S/]ldJ8Rjm?D@'_۪ԥ{֖-H;DXiN: H%8ut+  m,KCy$EͽD2~)ja"ڗjX]V`vQDr-:;nm2|Ĕ7uW,7=qISt}]-~HM .nK_\(Wt.ٽ:4AGYzphO2Lf"kU?H0CۗԵyjij#d 22co7Wnx߾g[w|~% :L2@uEQ_0ɍi}>yA>l%ʨ/V@1C.yXȚMh[?RQZ|?.P.M'/2b_{7vR|:j 夛bB.@9:dLL>'~I (wD6MRvДh2F]>EJcZ|oN[Ǽ듁2 OiϞ~.|>&kx`RR$AZ."H8nhll"M>7v>k%]ȱ%˹DSw頶חd%HMgEo]@A:M,Q4v#wV13xGQqutݱSq5^˧>.=v.'@ ]pZKmC)f^~_0GҢgU"}}}AS ===4% 8S_J$)!Yo2g'Hs;_3ohء d>emfϧ!mNEw 4xG8.8G#pw Y$Jn}~_2åP2w{kZ焪~Rdlll```hh'd5p7Mid-'LCs_ 'Ť% #&Me>edb˧>3tV; 6gtrF)ojvI74pBBwwPqP`9(4dP>Rh z)[v愪~J¾̧h葯\/ FUs->}7>$8ge}nk[ Mv+,F9@\ Cjq pdPH(M>׍ { dI o>T'ǏqO?P>PFuQwp|M~Fu ~c$t|LV⑚{uZH~oNO u*uȴ||wU}`pOF6Kd>i~&廻xcsG#T/N6lҊ}mU{gwhG5b=7UMn@j9`%ih)%dPӒZߠ令>[Nx廻݂]Dze|i֧f6? r/ޖs_Зeeaw+VXhd%lvtt4JɷE bp%W'y$^aUXVUEтunWE#8KN(R\F_>ߋxmk4zX՛/e tZm02};wҧayw橇EE22Z9Cڰ?)RZfC.t:]lT*Ŗ^Db+{UaUXV$O\dZs;ֽ0_|@/s\ ҟ쬊jU[n7ϮA/> S]y@z[AK\$*C=Ԛvuu HVtqtt-SU/$Bɭª*U[gyIV:v'v% ;{7Ԫb/u*C/ƴguU/>ӄa=jʑ)+;||GA/A7/>exC:k֬$H IfDӪv}]+ ªZ՞={N9f~CuہVF-.X@RNˋd`r nUk$%u_ܫ9|j޽|:QEaCW5s@4BU#@}JƪS:NYǜh+_`xƋ ؈b≎cr_0ۮqM@<\B$\,Ű!:=v07>KOtSv~yy~͎lmV |>@ ~q|>?J6 ۚuφ\Rၼߊb.\J\J':g(zu w^E1hM\:hqK]{>ʊϰ%QRWO賟qvvvx '|_ F|yL_>M2aҔ ˦OlˮtI^7믾t W7^%t(]%~*.Kn9vKnUo 7Ɏ탟}uDtϋnK4ĴetS™FlS&P\9eS3MD:m"Oh\9Doq[|[7ZҚTV\^W/1-Rz\9ɢ}qh DgL;_1u8W+1"1itLDxtL92x8bnpk1::v61{8D6ѰH&idF!7LILOjtq=+Pgzcu-i GG{ϙ%3}fI]|d#u{63KUBevoH>כL2:6VGGG{*p)q)9|:.ź;=;6% #]R:fEe~Lvɽs|AFe }>u-]>?w֩_z F7Ȃ_^Z+|ں╟,ZT[__{>|uW?x7^Z ȋ0::WWu^>{~ssgc w&8YҾht~at_@GHIGo^ׯ,hk_?^n󒷛ݬ-}eo,^ oݷ5ݼjk5co|t\6wW-W-yE=ydacs;s;nFǭ#1[rf;ILHbM#q#57쑸>^7:[Jmxu)_(ib{Č1st\S(?::|q}&E?6v47 o?2;;6;_d8Z FsﭾێEdcHܫXZ64>;VV=mʑxpBAH<:>l#no,Of"dmy#)Ўg6x+~\[WvкŷV}}/u;6u?Y7ozs-˚OٯŎ7[eoA)qit[?km;6߻-x{?$_};^_}=;6Cifش?_[LY^[L e]v6+>c=P޻L ӼoI韼3g"?}4+/d|&(b 쉩QIppd&ʿ9ߞL)ȜgPym`}lC&8DEMa$57,Fc_>KҵHה.;n̒K2H/S$CԁWSAƗ]*iZ{C+##TdDs墕N JOO3dRn],-'B>@gUHZtkS&kpxK:O-^.e+Rք|>SwɅCRKw;?io>>>>>>>>>>wxak_$]6r>~E+D" p)A**R:<zKA2Ti"@qLSlsW1^AX.i:YD7$^Oa*mf/P ЯI6.o 57Y5N^o&;h[0|3.Z p.Ei Eѻ/,_Ԕ֘C7֦o4GcY~hq~4zmKcϯ#!UUiShЏ " ||||||||||@0p}I{d^u40%H|z0>n<sJC#\䤮e./X29#s-ȴ|$Ѩu(aW<]}QOSCϺeI5%܉p~]f,χχχχχχχχχ˲t{e:hG_|Ivx)l}k(ugt<q(JgdY.$ OZ"ʬ8WŖȃT|_/{˃7侓9W A7aӑ7]= \N>j4ou}}A4+wU)\/yŌV|kyYW|֢2_F/Lӻy,~RCvM^ =EutӚ%pUQ1ihB%;%2R{I;y> h&4>R3JKb2x|iuSG+Ms<j Ho  KĆ?EQXG (I19+H>,kPY8M4wZYiMkI6iK' Z^[X=/2S,5qeE Ô(E])YRٿ:T>>>>>>>>>>|݉;o%Ibeo*֤媪:ՐN1;bvK:̪˲JzJ@||©%IS?pB!;W(mz͝k|s,cFF4_5Wj"p $Iޫ,VR>籄SǓrY*{(n))R X#(ʇN-|_Mk"%I_'K*gP}D}>#aÄ~DA_{#A~o8ɱEQ,㻼"O"r+%͝_'SiG%>3N T*ׇKK^VT4 PEQK œ OG7Q{QO!-0z鏶%ߙ'5*1zX' !||||||||||( t;v]8zE}>@iG~;Hp+K{{n u)z} |>|>|>|>|>|>|>|>|>|>ᯊ38V+x\cii:?:gwtuu1 Kw:::r/3cV˲$I.i⠯4Z {)~̖\YI2=-רl@_ HI>ύAy, >ɉ3 %Edj(u`@cǎ)N,Kyq4MQ$|/RbZA\ )+R>a()ttu^AXϖ\9^4ںY_R>& yIi|Ol;k.io z0>w1C( E—$iM0 픿>>>>>>>>>ЀНo79t$I.ՆZ}a\pUv>>?xE71w}l=ǀPţ/IS+9C(iwIHE׵S*ey_̺1ڔ>UMqc_j7'NwNM^- u/Kb˯/nY/%3sw.wY8m]V,rTe<2/NswN~kO>{OxI߿-?m3q3,nGxAۤ}~}A>6w )Љ?ΈSk-]8m{E3-Aq.δ̤&q57,%\{k5s3^;uٵSfuŤ:'_W8뿑/!Yfoek{rcטPJL,%./_+uo_}#t|}xT'nb#9b#f,=3kf8Ŭ׍%O;=7č#q=,2Ʉ7G2͋g2sFe[e6;n;s$1/3xP6veȤ;Y~؎{2A&dbڽvP\zWfvX~.2SWA;V uyP~h^&VYz=m{y߱ 6 ج];f PS5'A3#G>6<粳#Y#ۄOdŨcё)a(Yr=K>x,I}Ol~M]̴8MT ~^8CwNiZQ9opTQI }>s1Ndj(u`|XW<@)ʐK4M3Kמ.f;Ş"0zee~$_(~iVKjTjY7Rf~ N^#4Ѷo}@;%*@ Ñj5+Ro;<"bPļtNIqy.d>*K_(x̎fJ/ 4g퀇>mfԆ(o |>@ ~n r/\?QF9$R2?\wN͝VN AыW/IlGӴ,_[ydv1,x{葑uװ%3sֺ=*(P`^ӮȅG hL4Mb=BM~X>O0C,Rm\w);W뼸!oO)Iҽ| _:1B쩁 ״\>܂뺠> 򃄽Tu.?r}Sk_ڻCT$JFWqN|w4c}uEקu_A"0['(_=#+ݬU|AsgTd4>[A e\YQ>|2"(kEӌbKy2?;=yh̳/42KRr`?)J }>]ta;xB 竈6 |>Pw7R p5]PCO>œ)|DepPUIId>=| QlSyvK6*_LS͖KFg!RCOЯk;2?[Ͻ(Y#j ||~#)MeQeU&>}?vtttwwR&RR:_ 'Eeee>\pw{agT3l%i Gem}gL(9:u~n\5 3FS*筮(tKȗA i n]񤋀`&H`\:G4e{KI(_HZ7͸(xYUyv?g.tIO{{~8Q ||~#) 0 \Yuf7&Aݟ1Nd=0sKYoII ݔvwwup^J2?[iZ{!!oޣɧ5iuɬ{)뜚|v K.P( |PCp:o0@R:뎏/,˹0VrtAdg4A>DFy={IRKI[[HG~-Σ:}C?)(=B/>4;W ||>!Pw7R Hni-pmf#7]|~ivKǮxA5wZ>TMJxZXr|U߀2?G}w,On;bK"z0߰ ||~#) 9=k97ϭ7M?҂R%et(ug4P6ykiaCUw4MhA(u#(ޢ:ڧS9YP>(k0 ZΩ/g@>(\;L` |˲rCV( .|giiZn:#Y (ʆgcf)ÔTއd~kY J$_] h9G".ِ3?Au|P~΀ L`AG.S"x>?=")vKǮxE@5wZH+c@P6 bV=G,ˢQBe*E4GZWw`DJ)~ A.::/o0@R: 15$B [^\O;-7} F/ v˲r7(dYRe,Ȫ7^AX\^(%:`r)٨{ |/WP > 0B嚒$uݹܲ,ܶդd*0ycoc  'TUU-#Eiw&rꎄ>-,(U㜖U/Y O)?Iwu|'ݳB>(\;LlB \=qC+8Ŏ,eHO8]}zύփgGZ 48KuWsK3ʋWm}HK6en]kZwI[KP,m6ESP{@t`J` wi˲?ED"(5ZtZo;]=[^b::@MŀJJ!).*S G CMb°Y0 --(8Wxs gx.uʟR@>(\;Lx4MiUU-DQlF w*YZvxEF T/H)ʆRof뺳(2}%廬 )i.'/#/Fo(ڹ_ߘ͝KOg=S @t`JF,UU%IRŹ>ڡp8L7xǓ)%]񤋌v?+/tww •InY RD4h.ozjFޭwo+-TZea\-|K/6ߘQxp) @}JR8å_xw ?JlɽƍO*1|4/ |>42i*ePgTvT>~> M}}ίl;ԏ#9D˲ѨǧCKcprNEf׍/_P赬" I Dtް̧&ݺK+7[MM%.ie 2ߍJ|P)>ǀ2jpD1QG 9>%>+Tm<'SlɶC.n;?oرchh4,ˢ(z80˲'UQE7N (M_ZOgğVu&b.Ϟӟ/\wInZVλX,F>"C_@r\68kO Ai4?%UNG(B&? E^O!MW*cGΙ| MK75;0<_nUAχ2>> 3 ɔx '7@cfQ+.IRlO(bG9'oͼ(U*#] 飺c٠)r0'pv=ZJ={^T5vʖ`;[72=l'_yS㤎=Z:HH@h(O4w*ԏAh8+zi,g[f]_eS+&󉘑.)g ##p]RedWI>2ȪwEP8_@xQU  @s8*=tT;%0@m1 CUUMJ >xSœ)2Pm,ˢGNJu_iHQ軾{x1-\+ʇEId>Aס) ݞ{Fv: #PG n1M3ZYHD4;_ieYܞ wKeH䮸iuu~ |JAd>'-!5W ҳvKPG wh{=/a n {Nփq&Pmr58%%EQ(Ru]3h#Y$/-MM?-w _U?ris{uqS9PG _XE\>|>sUCS;hTDa$ɲiVJltZS/2Xɩpx H X0ZvIkbMMiQ XTA PU݀k+iD"Fnm\φ0E,NRU eY!+iIΗ$IMR w0oKe|VB;Ιhto'^nmTV|T J*gebP ј>+tVcLvD"Q8] ~oLʢmKM>mmm%.3cVO_Trwb O\r#/:O$d̻Y[ m% Qi1KJ;9$I^ڧ hRoɒ%YֹiVUFS^)@6e|u_Kb|M9* zqQ{iys1>u%A:MՄO# {N̐'^18\]}>w?1@@; 2:r^eY/bً,즼\_Z'n/\.J6z0Ζ]ʋ {Te/㦼eS Ee>ituA]v4t>hP.HZbƷS^̷Ñ|bmX֒ݖNO7^(#||~PAB;*jYu.q7UvI>?t -yW:1x& ~u}n>t ʨGjc|sp>_?ݤSd~pɇo:|Y|>e}*Ha%գB>ߣ5]_1OFdY.d5~HZ°u?#ԩeYQ||ROҒYWu>ܤ:(#||~PABS,ˊD"E+TC`P>P97(ӴNs>n;ԏjE >AIU$MӠK:';U:e];̗$f+'ӎ|ʇ>~%iuV#dB|T˲4M_pXQ|'8wKX,ZiTPV@)0 \Oω]eQ hq(|HKcompress-1.2.1/snappy/testdata/plrabn12.txt000066400000000000000000016551051303637052300206720ustar00rootroot00000000000000 This is the February 1992 Project Gutenberg release of: Paradise Lost by John Milton The oldest etext known to Project Gutenberg (ca. 1964-1965) (If you know of any older ones, please let us know.) Introduction (one page) This etext was originally created in 1964-1965 according to Dr. Joseph Raben of Queens College, NY, to whom it is attributed by Project Gutenberg. We had heard of this etext for years but it was not until 1991 that we actually managed to track it down to a specific location, and then it took months to convince people to let us have a copy, then more months for them actually to do the copying and get it to us. Then another month to convert to something we could massage with our favorite 486 in DOS. After that is was only a matter of days to get it into this shape you will see below. The original was, of course, in CAPS only, and so were all the other etexts of the 60's and early 70's. Don't let anyone fool you into thinking any etext with both upper and lower case is an original; all those original Project Gutenberg etexts were also in upper case and were translated or rewritten many times to get them into their current condition. They have been worked on by many people throughout the world. In the course of our searches for Professor Raben and his etext we were never able to determine where copies were or which of a variety of editions he may have used as a source. We did get a little information here and there, but even after we received a copy of the etext we were unwilling to release it without first determining that it was in fact Public Domain and finding Raben to verify this and get his permission. Interested enough, in a totally unrelated action to our searches for him, the professor subscribed to the Project Gutenberg listserver and we happened, by accident, to notice his name. (We don't really look at every subscription request as the computers usually handle them.) The etext was then properly identified, copyright analyzed, and the current edition prepared. To give you an estimation of the difference in the original and what we have today: the original was probably entered on cards commonly known at the time as "IBM cards" (Do Not Fold, Spindle or Mutilate) and probably took in excess of 100,000 of them. A single card could hold 80 characters (hence 80 characters is an accepted standard for so many computer margins), and the entire original edition we received in all caps was over 800,000 chars in length, including line enumeration, symbols for caps and the punctuation marks, etc., since they were not available keyboard characters at the time (probably the keyboards operated at baud rates of around 113, meaning the typists had to type slowly for the keyboard to keep up). This is the second version of Paradise Lost released by Project Gutenberg. The first was released as our October, 1991 etext. Paradise Lost Book I Of Man's first disobedience, and the fruit Of that forbidden tree whose mortal taste Brought death into the World, and all our woe, With loss of Eden, till one greater Man Restore us, and regain the blissful seat, Sing, Heavenly Muse, that, on the secret top Of Oreb, or of Sinai, didst inspire That shepherd who first taught the chosen seed In the beginning how the heavens and earth Rose out of Chaos: or, if Sion hill Delight thee more, and Siloa's brook that flowed Fast by the oracle of God, I thence Invoke thy aid to my adventurous song, That with no middle flight intends to soar Above th' Aonian mount, while it pursues Things unattempted yet in prose or rhyme. And chiefly thou, O Spirit, that dost prefer Before all temples th' upright heart and pure, Instruct me, for thou know'st; thou from the first Wast present, and, with mighty wings outspread, Dove-like sat'st brooding on the vast Abyss, And mad'st it pregnant: what in me is dark Illumine, what is low raise and support; That, to the height of this great argument, I may assert Eternal Providence, And justify the ways of God to men. Say first--for Heaven hides nothing from thy view, Nor the deep tract of Hell--say first what cause Moved our grand parents, in that happy state, Favoured of Heaven so highly, to fall off From their Creator, and transgress his will For one restraint, lords of the World besides. Who first seduced them to that foul revolt? Th' infernal Serpent; he it was whose guile, Stirred up with envy and revenge, deceived The mother of mankind, what time his pride Had cast him out from Heaven, with all his host Of rebel Angels, by whose aid, aspiring To set himself in glory above his peers, He trusted to have equalled the Most High, If he opposed, and with ambitious aim Against the throne and monarchy of God, Raised impious war in Heaven and battle proud, With vain attempt. Him the Almighty Power Hurled headlong flaming from th' ethereal sky, With hideous ruin and combustion, down To bottomless perdition, there to dwell In adamantine chains and penal fire, Who durst defy th' Omnipotent to arms. Nine times the space that measures day and night To mortal men, he, with his horrid crew, Lay vanquished, rolling in the fiery gulf, Confounded, though immortal. But his doom Reserved him to more wrath; for now the thought Both of lost happiness and lasting pain Torments him: round he throws his baleful eyes, That witnessed huge affliction and dismay, Mixed with obdurate pride and steadfast hate. At once, as far as Angels ken, he views The dismal situation waste and wild. A dungeon horrible, on all sides round, As one great furnace flamed; yet from those flames No light; but rather darkness visible Served only to discover sights of woe, Regions of sorrow, doleful shades, where peace And rest can never dwell, hope never comes That comes to all, but torture without end Still urges, and a fiery deluge, fed With ever-burning sulphur unconsumed. Such place Eternal Justice has prepared For those rebellious; here their prison ordained In utter darkness, and their portion set, As far removed from God and light of Heaven As from the centre thrice to th' utmost pole. Oh how unlike the place from whence they fell! There the companions of his fall, o'erwhelmed With floods and whirlwinds of tempestuous fire, He soon discerns; and, weltering by his side, One next himself in power, and next in crime, Long after known in Palestine, and named Beelzebub. To whom th' Arch-Enemy, And thence in Heaven called Satan, with bold words Breaking the horrid silence, thus began:-- "If thou beest he--but O how fallen! how changed From him who, in the happy realms of light Clothed with transcendent brightness, didst outshine Myriads, though bright!--if he whom mutual league, United thoughts and counsels, equal hope And hazard in the glorious enterprise Joined with me once, now misery hath joined In equal ruin; into what pit thou seest From what height fallen: so much the stronger proved He with his thunder; and till then who knew The force of those dire arms? Yet not for those, Nor what the potent Victor in his rage Can else inflict, do I repent, or change, Though changed in outward lustre, that fixed mind, And high disdain from sense of injured merit, That with the Mightiest raised me to contend, And to the fierce contentions brought along Innumerable force of Spirits armed, That durst dislike his reign, and, me preferring, His utmost power with adverse power opposed In dubious battle on the plains of Heaven, And shook his throne. What though the field be lost? All is not lost--the unconquerable will, And study of revenge, immortal hate, And courage never to submit or yield: And what is else not to be overcome? That glory never shall his wrath or might Extort from me. To bow and sue for grace With suppliant knee, and deify his power Who, from the terror of this arm, so late Doubted his empire--that were low indeed; That were an ignominy and shame beneath This downfall; since, by fate, the strength of Gods, And this empyreal sybstance, cannot fail; Since, through experience of this great event, In arms not worse, in foresight much advanced, We may with more successful hope resolve To wage by force or guile eternal war, Irreconcilable to our grand Foe, Who now triumphs, and in th' excess of joy Sole reigning holds the tyranny of Heaven." So spake th' apostate Angel, though in pain, Vaunting aloud, but racked with deep despair; And him thus answered soon his bold compeer:-- "O Prince, O Chief of many throned Powers That led th' embattled Seraphim to war Under thy conduct, and, in dreadful deeds Fearless, endangered Heaven's perpetual King, And put to proof his high supremacy, Whether upheld by strength, or chance, or fate, Too well I see and rue the dire event That, with sad overthrow and foul defeat, Hath lost us Heaven, and all this mighty host In horrible destruction laid thus low, As far as Gods and heavenly Essences Can perish: for the mind and spirit remains Invincible, and vigour soon returns, Though all our glory extinct, and happy state Here swallowed up in endless misery. But what if he our Conqueror (whom I now Of force believe almighty, since no less Than such could have o'erpowered such force as ours) Have left us this our spirit and strength entire, Strongly to suffer and support our pains, That we may so suffice his vengeful ire, Or do him mightier service as his thralls By right of war, whate'er his business be, Here in the heart of Hell to work in fire, Or do his errands in the gloomy Deep? What can it the avail though yet we feel Strength undiminished, or eternal being To undergo eternal punishment?" Whereto with speedy words th' Arch-Fiend replied:-- "Fallen Cherub, to be weak is miserable, Doing or suffering: but of this be sure-- To do aught good never will be our task, But ever to do ill our sole delight, As being the contrary to his high will Whom we resist. If then his providence Out of our evil seek to bring forth good, Our labour must be to pervert that end, And out of good still to find means of evil; Which ofttimes may succeed so as perhaps Shall grieve him, if I fail not, and disturb His inmost counsels from their destined aim. But see! the angry Victor hath recalled His ministers of vengeance and pursuit Back to the gates of Heaven: the sulphurous hail, Shot after us in storm, o'erblown hath laid The fiery surge that from the precipice Of Heaven received us falling; and the thunder, Winged with red lightning and impetuous rage, Perhaps hath spent his shafts, and ceases now To bellow through the vast and boundless Deep. Let us not slip th' occasion, whether scorn Or satiate fury yield it from our Foe. Seest thou yon dreary plain, forlorn and wild, The seat of desolation, void of light, Save what the glimmering of these livid flames Casts pale and dreadful? Thither let us tend From off the tossing of these fiery waves; There rest, if any rest can harbour there; And, re-assembling our afflicted powers, Consult how we may henceforth most offend Our enemy, our own loss how repair, How overcome this dire calamity, What reinforcement we may gain from hope, If not, what resolution from despair." Thus Satan, talking to his nearest mate, With head uplift above the wave, and eyes That sparkling blazed; his other parts besides Prone on the flood, extended long and large, Lay floating many a rood, in bulk as huge As whom the fables name of monstrous size, Titanian or Earth-born, that warred on Jove, Briareos or Typhon, whom the den By ancient Tarsus held, or that sea-beast Leviathan, which God of all his works Created hugest that swim th' ocean-stream. Him, haply slumbering on the Norway foam, The pilot of some small night-foundered skiff, Deeming some island, oft, as seamen tell, With fixed anchor in his scaly rind, Moors by his side under the lee, while night Invests the sea, and wished morn delays. So stretched out huge in length the Arch-fiend lay, Chained on the burning lake; nor ever thence Had risen, or heaved his head, but that the will And high permission of all-ruling Heaven Left him at large to his own dark designs, That with reiterated crimes he might Heap on himself damnation, while he sought Evil to others, and enraged might see How all his malice served but to bring forth Infinite goodness, grace, and mercy, shewn On Man by him seduced, but on himself Treble confusion, wrath, and vengeance poured. Forthwith upright he rears from off the pool His mighty stature; on each hand the flames Driven backward slope their pointing spires, and,rolled In billows, leave i' th' midst a horrid vale. Then with expanded wings he steers his flight Aloft, incumbent on the dusky air, That felt unusual weight; till on dry land He lights--if it were land that ever burned With solid, as the lake with liquid fire, And such appeared in hue as when the force Of subterranean wind transprots a hill Torn from Pelorus, or the shattered side Of thundering Etna, whose combustible And fuelled entrails, thence conceiving fire, Sublimed with mineral fury, aid the winds, And leave a singed bottom all involved With stench and smoke. Such resting found the sole Of unblest feet. Him followed his next mate; Both glorying to have scaped the Stygian flood As gods, and by their own recovered strength, Not by the sufferance of supernal Power. "Is this the region, this the soil, the clime," Said then the lost Archangel, "this the seat That we must change for Heaven?--this mournful gloom For that celestial light? Be it so, since he Who now is sovereign can dispose and bid What shall be right: farthest from him is best Whom reason hath equalled, force hath made supreme Above his equals. Farewell, happy fields, Where joy for ever dwells! Hail, horrors! hail, Infernal world! and thou, profoundest Hell, Receive thy new possessor--one who brings A mind not to be changed by place or time. The mind is its own place, and in itself Can make a Heaven of Hell, a Hell of Heaven. What matter where, if I be still the same, And what I should be, all but less than he Whom thunder hath made greater? Here at least We shall be free; th' Almighty hath not built Here for his envy, will not drive us hence: Here we may reigh secure; and, in my choice, To reign is worth ambition, though in Hell: Better to reign in Hell than serve in Heaven. But wherefore let we then our faithful friends, Th' associates and co-partners of our loss, Lie thus astonished on th' oblivious pool, And call them not to share with us their part In this unhappy mansion, or once more With rallied arms to try what may be yet Regained in Heaven, or what more lost in Hell?" So Satan spake; and him Beelzebub Thus answered:--"Leader of those armies bright Which, but th' Omnipotent, none could have foiled! If once they hear that voice, their liveliest pledge Of hope in fears and dangers--heard so oft In worst extremes, and on the perilous edge Of battle, when it raged, in all assaults Their surest signal--they will soon resume New courage and revive, though now they lie Grovelling and prostrate on yon lake of fire, As we erewhile, astounded and amazed; No wonder, fallen such a pernicious height!" He scare had ceased when the superior Fiend Was moving toward the shore; his ponderous shield, Ethereal temper, massy, large, and round, Behind him cast. The broad circumference Hung on his shoulders like the moon, whose orb Through optic glass the Tuscan artist views At evening, from the top of Fesole, Or in Valdarno, to descry new lands, Rivers, or mountains, in her spotty globe. His spear--to equal which the tallest pine Hewn on Norwegian hills, to be the mast Of some great ammiral, were but a wand-- He walked with, to support uneasy steps Over the burning marl, not like those steps On Heaven's azure; and the torrid clime Smote on him sore besides, vaulted with fire. Nathless he so endured, till on the beach Of that inflamed sea he stood, and called His legions--Angel Forms, who lay entranced Thick as autumnal leaves that strow the brooks In Vallombrosa, where th' Etrurian shades High over-arched embower; or scattered sedge Afloat, when with fierce winds Orion armed Hath vexed the Red-Sea coast, whose waves o'erthrew Busiris and his Memphian chivalry, While with perfidious hatred they pursued The sojourners of Goshen, who beheld From the safe shore their floating carcases And broken chariot-wheels. So thick bestrown, Abject and lost, lay these, covering the flood, Under amazement of their hideous change. He called so loud that all the hollow deep Of Hell resounded:--"Princes, Potentates, Warriors, the Flower of Heaven--once yours; now lost, If such astonishment as this can seize Eternal Spirits! Or have ye chosen this place After the toil of battle to repose Your wearied virtue, for the ease you find To slumber here, as in the vales of Heaven? Or in this abject posture have ye sworn To adore the Conqueror, who now beholds Cherub and Seraph rolling in the flood With scattered arms and ensigns, till anon His swift pursuers from Heaven-gates discern Th' advantage, and, descending, tread us down Thus drooping, or with linked thunderbolts Transfix us to the bottom of this gulf? Awake, arise, or be for ever fallen!" They heard, and were abashed, and up they sprung Upon the wing, as when men wont to watch On duty, sleeping found by whom they dread, Rouse and bestir themselves ere well awake. Nor did they not perceive the evil plight In which they were, or the fierce pains not feel; Yet to their General's voice they soon obeyed Innumerable. As when the potent rod Of Amram's son, in Egypt's evil day, Waved round the coast, up-called a pitchy cloud Of locusts, warping on the eastern wind, That o'er the realm of impious Pharaoh hung Like Night, and darkened all the land of Nile; So numberless were those bad Angels seen Hovering on wing under the cope of Hell, 'Twixt upper, nether, and surrounding fires; Till, as a signal given, th' uplifted spear Of their great Sultan waving to direct Their course, in even balance down they light On the firm brimstone, and fill all the plain: A multitude like which the populous North Poured never from her frozen loins to pass Rhene or the Danaw, when her barbarous sons Came like a deluge on the South, and spread Beneath Gibraltar to the Libyan sands. Forthwith, form every squadron and each band, The heads and leaders thither haste where stood Their great Commander--godlike Shapes, and Forms Excelling human; princely Dignities; And Powers that erst in Heaven sat on thrones, Though on their names in Heavenly records now Be no memorial, blotted out and rased By their rebellion from the Books of Life. Nor had they yet among the sons of Eve Got them new names, till, wandering o'er the earth, Through God's high sufferance for the trial of man, By falsities and lies the greatest part Of mankind they corrupted to forsake God their Creator, and th' invisible Glory of him that made them to transform Oft to the image of a brute, adorned With gay religions full of pomp and gold, And devils to adore for deities: Then were they known to men by various names, And various idols through the heathen world. Say, Muse, their names then known, who first, who last, Roused from the slumber on that fiery couch, At their great Emperor's call, as next in worth Came singly where he stood on the bare strand, While the promiscuous crowd stood yet aloof? The chief were those who, from the pit of Hell Roaming to seek their prey on Earth, durst fix Their seats, long after, next the seat of God, Their altars by his altar, gods adored Among the nations round, and durst abide Jehovah thundering out of Sion, throned Between the Cherubim; yea, often placed Within his sanctuary itself their shrines, Abominations; and with cursed things His holy rites and solemn feasts profaned, And with their darkness durst affront his light. First, Moloch, horrid king, besmeared with blood Of human sacrifice, and parents' tears; Though, for the noise of drums and timbrels loud, Their children's cries unheard that passed through fire To his grim idol. Him the Ammonite Worshiped in Rabba and her watery plain, In Argob and in Basan, to the stream Of utmost Arnon. Nor content with such Audacious neighbourhood, the wisest heart Of Solomon he led by fraoud to build His temple right against the temple of God On that opprobrious hill, and made his grove The pleasant valley of Hinnom, Tophet thence And black Gehenna called, the type of Hell. Next Chemos, th' obscene dread of Moab's sons, From Aroar to Nebo and the wild Of southmost Abarim; in Hesebon And Horonaim, Seon's real, beyond The flowery dale of Sibma clad with vines, And Eleale to th' Asphaltic Pool: Peor his other name, when he enticed Israel in Sittim, on their march from Nile, To do him wanton rites, which cost them woe. Yet thence his lustful orgies he enlarged Even to that hill of scandal, by the grove Of Moloch homicide, lust hard by hate, Till good Josiah drove them thence to Hell. With these came they who, from the bordering flood Of old Euphrates to the brook that parts Egypt from Syrian ground, had general names Of Baalim and Ashtaroth--those male, These feminine. For Spirits, when they please, Can either sex assume, or both; so soft And uncompounded is their essence pure, Not tried or manacled with joint or limb, Nor founded on the brittle strength of bones, Like cumbrous flesh; but, in what shape they choose, Dilated or condensed, bright or obscure, Can execute their airy purposes, And works of love or enmity fulfil. For those the race of Israel oft forsook Their Living Strength, and unfrequented left His righteous altar, bowing lowly down To bestial gods; for which their heads as low Bowed down in battle, sunk before the spear Of despicable foes. With these in troop Came Astoreth, whom the Phoenicians called Astarte, queen of heaven, with crescent horns; To whose bright image nigntly by the moon Sidonian virgins paid their vows and songs; In Sion also not unsung, where stood Her temple on th' offensive mountain, built By that uxorious king whose heart, though large, Beguiled by fair idolatresses, fell To idols foul. Thammuz came next behind, Whose annual wound in Lebanon allured The Syrian damsels to lament his fate In amorous ditties all a summer's day, While smooth Adonis from his native rock Ran purple to the sea, supposed with blood Of Thammuz yearly wounded: the love-tale Infected Sion's daughters with like heat, Whose wanton passions in the sacred proch Ezekiel saw, when, by the vision led, His eye surveyed the dark idolatries Of alienated Judah. Next came one Who mourned in earnest, when the captive ark Maimed his brute image, head and hands lopt off, In his own temple, on the grunsel-edge, Where he fell flat and shamed his worshippers: Dagon his name, sea-monster,upward man And downward fish; yet had his temple high Reared in Azotus, dreaded through the coast Of Palestine, in Gath and Ascalon, And Accaron and Gaza's frontier bounds. Him followed Rimmon, whose delightful seat Was fair Damascus, on the fertile banks Of Abbana and Pharphar, lucid streams. He also against the house of God was bold: A leper once he lost, and gained a king-- Ahaz, his sottish conqueror, whom he drew God's altar to disparage and displace For one of Syrian mode, whereon to burn His odious offerings, and adore the gods Whom he had vanquished. After these appeared A crew who, under names of old renown-- Osiris, Isis, Orus, and their train-- With monstrous shapes and sorceries abused Fanatic Egypt and her priests to seek Their wandering gods disguised in brutish forms Rather than human. Nor did Israel scape Th' infection, when their borrowed gold composed The calf in Oreb; and the rebel king Doubled that sin in Bethel and in Dan, Likening his Maker to the grazed ox-- Jehovah, who, in one night, when he passed From Egypt marching, equalled with one stroke Both her first-born and all her bleating gods. Belial came last; than whom a Spirit more lewd Fell not from Heaven, or more gross to love Vice for itself. To him no temple stood Or altar smoked; yet who more oft than he In temples and at altars, when the priest Turns atheist, as did Eli's sons, who filled With lust and violence the house of God? In courts and palaces he also reigns, And in luxurious cities, where the noise Of riot ascends above their loftiest towers, And injury and outrage; and, when night Darkens the streets, then wander forth the sons Of Belial, flown with insolence and wine. Witness the streets of Sodom, and that night In Gibeah, when the hospitable door Exposed a matron, to avoid worse rape. These were the prime in order and in might: The rest were long to tell; though far renowned Th' Ionian gods--of Javan's issue held Gods, yet confessed later than Heaven and Earth, Their boasted parents;--Titan, Heaven's first-born, With his enormous brood, and birthright seized By younger Saturn: he from mightier Jove, His own and Rhea's son, like measure found; So Jove usurping reigned. These, first in Crete And Ida known, thence on the snowy top Of cold Olympus ruled the middle air, Their highest heaven; or on the Delphian cliff, Or in Dodona, and through all the bounds Of Doric land; or who with Saturn old Fled over Adria to th' Hesperian fields, And o'er the Celtic roamed the utmost Isles. All these and more came flocking; but with looks Downcast and damp; yet such wherein appeared Obscure some glimpse of joy to have found their Chief Not in despair, to have found themselves not lost In loss itself; which on his countenance cast Like doubtful hue. But he, his wonted pride Soon recollecting, with high words, that bore Semblance of worth, not substance, gently raised Their fainting courage, and dispelled their fears. Then straight commands that, at the warlike sound Of trumpets loud and clarions, be upreared His mighty standard. That proud honour claimed Azazel as his right, a Cherub tall: Who forthwith from the glittering staff unfurled Th' imperial ensign; which, full high advanced, Shone like a meteor streaming to the wind, With gems and golden lustre rich emblazed, Seraphic arms and trophies; all the while Sonorous metal blowing martial sounds: At which the universal host up-sent A shout that tore Hell's concave, and beyond Frighted the reign of Chaos and old Night. All in a moment through the gloom were seen Ten thousand banners rise into the air, With orient colours waving: with them rose A forest huge of spears; and thronging helms Appeared, and serried shields in thick array Of depth immeasurable. Anon they move In perfect phalanx to the Dorian mood Of flutes and soft recorders--such as raised To height of noblest temper heroes old Arming to battle, and instead of rage Deliberate valour breathed, firm, and unmoved With dread of death to flight or foul retreat; Nor wanting power to mitigate and swage With solemn touches troubled thoughts, and chase Anguish and doubt and fear and sorrow and pain From mortal or immortal minds. Thus they, Breathing united force with fixed thought, Moved on in silence to soft pipes that charmed Their painful steps o'er the burnt soil. And now Advanced in view they stand--a horrid front Of dreadful length and dazzling arms, in guise Of warriors old, with ordered spear and shield, Awaiting what command their mighty Chief Had to impose. He through the armed files Darts his experienced eye, and soon traverse The whole battalion views--their order due, Their visages and stature as of gods; Their number last he sums. And now his heart Distends with pride, and, hardening in his strength, Glories: for never, since created Man, Met such embodied force as, named with these, Could merit more than that small infantry Warred on by cranes--though all the giant brood Of Phlegra with th' heroic race were joined That fought at Thebes and Ilium, on each side Mixed with auxiliar gods; and what resounds In fable or romance of Uther's son, Begirt with British and Armoric knights; And all who since, baptized or infidel, Jousted in Aspramont, or Montalban, Damasco, or Marocco, or Trebisond, Or whom Biserta sent from Afric shore When Charlemain with all his peerage fell By Fontarabbia. Thus far these beyond Compare of mortal prowess, yet observed Their dread Commander. He, above the rest In shape and gesture proudly eminent, Stood like a tower. His form had yet not lost All her original brightness, nor appeared Less than Archangel ruined, and th' excess Of glory obscured: as when the sun new-risen Looks through the horizontal misty air Shorn of his beams, or, from behind the moon, In dim eclipse, disastrous twilight sheds On half the nations, and with fear of change Perplexes monarchs. Darkened so, yet shone Above them all th' Archangel: but his face Deep scars of thunder had intrenched, and care Sat on his faded cheek, but under brows Of dauntless courage, and considerate pride Waiting revenge. Cruel his eye, but cast Signs of remorse and passion, to behold The fellows of his crime, the followers rather (Far other once beheld in bliss), condemned For ever now to have their lot in pain-- Millions of Spirits for his fault amerced Of Heaven, and from eteranl splendours flung For his revolt--yet faithful how they stood, Their glory withered; as, when heaven's fire Hath scathed the forest oaks or mountain pines, With singed top their stately growth, though bare, Stands on the blasted heath. He now prepared To speak; whereat their doubled ranks they bend From wing to wing, and half enclose him round With all his peers: attention held them mute. Thrice he assayed, and thrice, in spite of scorn, Tears, such as Angels weep, burst forth: at last Words interwove with sighs found out their way:-- "O myriads of immortal Spirits! O Powers Matchless, but with th' Almighth!--and that strife Was not inglorious, though th' event was dire, As this place testifies, and this dire change, Hateful to utter. But what power of mind, Forseeing or presaging, from the depth Of knowledge past or present, could have feared How such united force of gods, how such As stood like these, could ever know repulse? For who can yet believe, though after loss, That all these puissant legions, whose exile Hath emptied Heaven, shall fail to re-ascend, Self-raised, and repossess their native seat? For me, be witness all the host of Heaven, If counsels different, or danger shunned By me, have lost our hopes. But he who reigns Monarch in Heaven till then as one secure Sat on his throne, upheld by old repute, Consent or custom, and his regal state Put forth at full, but still his strength concealed-- Which tempted our attempt, and wrought our fall. Henceforth his might we know, and know our own, So as not either to provoke, or dread New war provoked: our better part remains To work in close design, by fraud or guile, What force effected not; that he no less At length from us may find, who overcomes By force hath overcome but half his foe. Space may produce new Worlds; whereof so rife There went a fame in Heaven that he ere long Intended to create, and therein plant A generation whom his choice regard Should favour equal to the Sons of Heaven. Thither, if but to pry, shall be perhaps Our first eruption--thither, or elsewhere; For this infernal pit shall never hold Celestial Spirits in bondage, nor th' Abyss Long under darkness cover. But these thoughts Full counsel must mature. Peace is despaired; For who can think submission? War, then, war Open or understood, must be resolved." He spake; and, to confirm his words, outflew Millions of flaming swords, drawn from the thighs Of mighty Cherubim; the sudden blaze Far round illumined Hell. Highly they raged Against the Highest, and fierce with grasped arms Clashed on their sounding shields the din of war, Hurling defiance toward the vault of Heaven. There stood a hill not far, whose grisly top Belched fire and rolling smoke; the rest entire Shone with a glossy scurf--undoubted sign That in his womb was hid metallic ore, The work of sulphur. Thither, winged with speed, A numerous brigade hastened: as when bands Of pioneers, with spade and pickaxe armed, Forerun the royal camp, to trench a field, Or cast a rampart. Mammon led them on-- Mammon, the least erected Spirit that fell From Heaven; for even in Heaven his looks and thoughts Were always downward bent, admiring more The riches of heaven's pavement, trodden gold, Than aught divine or holy else enjoyed In vision beatific. By him first Men also, and by his suggestion taught, Ransacked the centre, and with impious hands Rifled the bowels of their mother Earth For treasures better hid. Soon had his crew Opened into the hill a spacious wound, And digged out ribs of gold. Let none admire That riches grow in Hell; that soil may best Deserve the precious bane. And here let those Who boast in mortal things, and wondering tell Of Babel, and the works of Memphian kings, Learn how their greatest monuments of fame And strength, and art, are easily outdone By Spirits reprobate, and in an hour What in an age they, with incessant toil And hands innumerable, scarce perform. Nigh on the plain, in many cells prepared, That underneath had veins of liquid fire Sluiced from the lake, a second multitude With wondrous art founded the massy ore, Severing each kind, and scummed the bullion-dross. A third as soon had formed within the ground A various mould, and from the boiling cells By strange conveyance filled each hollow nook; As in an organ, from one blast of wind, To many a row of pipes the sound-board breathes. Anon out of the earth a fabric huge Rose like an exhalation, with the sound Of dulcet symphonies and voices sweet-- Built like a temple, where pilasters round Were set, and Doric pillars overlaid With golden architrave; nor did there want Cornice or frieze, with bossy sculptures graven; The roof was fretted gold. Not Babylon Nor great Alcairo such magnificence Equalled in all their glories, to enshrine Belus or Serapis their gods, or seat Their kings, when Egypt with Assyria strove In wealth and luxury. Th' ascending pile Stood fixed her stately height, and straight the doors, Opening their brazen folds, discover, wide Within, her ample spaces o'er the smooth And level pavement: from the arched roof, Pendent by subtle magic, many a row Of starry lamps and blazing cressets, fed With naptha and asphaltus, yielded light As from a sky. The hasty multitude Admiring entered; and the work some praise, And some the architect. His hand was known In Heaven by many a towered structure high, Where sceptred Angels held their residence, And sat as Princes, whom the supreme King Exalted to such power, and gave to rule, Each in his Hierarchy, the Orders bright. Nor was his name unheard or unadored In ancient Greece; and in Ausonian land Men called him Mulciber; and how he fell From Heaven they fabled, thrown by angry Jove Sheer o'er the crystal battlements: from morn To noon he fell, from noon to dewy eve, A summer's day, and with the setting sun Dropt from the zenith, like a falling star, On Lemnos, th' Aegaean isle. Thus they relate, Erring; for he with this rebellious rout Fell long before; nor aught aviled him now To have built in Heaven high towers; nor did he scape By all his engines, but was headlong sent, With his industrious crew, to build in Hell. Meanwhile the winged Heralds, by command Of sovereign power, with awful ceremony And trumpet's sound, throughout the host proclaim A solemn council forthwith to be held At Pandemonium, the high capital Of Satan and his peers. Their summons called From every band and squared regiment By place or choice the worthiest: they anon With hundreds and with thousands trooping came Attended. All access was thronged; the gates And porches wide, but chief the spacious hall (Though like a covered field, where champions bold Wont ride in armed, and at the Soldan's chair Defied the best of Paynim chivalry To mortal combat, or career with lance), Thick swarmed, both on the ground and in the air, Brushed with the hiss of rustling wings. As bees In spring-time, when the Sun with Taurus rides. Pour forth their populous youth about the hive In clusters; they among fresh dews and flowers Fly to and fro, or on the smoothed plank, The suburb of their straw-built citadel, New rubbed with balm, expatiate, and confer Their state-affairs: so thick the airy crowd Swarmed and were straitened; till, the signal given, Behold a wonder! They but now who seemed In bigness to surpass Earth's giant sons, Now less than smallest dwarfs, in narrow room Throng numberless--like that pygmean race Beyond the Indian mount; or faery elves, Whose midnight revels, by a forest-side Or fountain, some belated peasant sees, Or dreams he sees, while overhead the Moon Sits arbitress, and nearer to the Earth Wheels her pale course: they, on their mirth and dance Intent, with jocund music charm his ear; At once with joy and fear his heart rebounds. Thus incorporeal Spirits to smallest forms Reduced their shapes immense, and were at large, Though without number still, amidst the hall Of that infernal court. But far within, And in their own dimensions like themselves, The great Seraphic Lords and Cherubim In close recess and secret conclave sat, A thousand demi-gods on golden seats, Frequent and full. After short silence then, And summons read, the great consult began. Book II High on a throne of royal state, which far Outshone the wealth or Ormus and of Ind, Or where the gorgeous East with richest hand Showers on her kings barbaric pearl and gold, Satan exalted sat, by merit raised To that bad eminence; and, from despair Thus high uplifted beyond hope, aspires Beyond thus high, insatiate to pursue Vain war with Heaven; and, by success untaught, His proud imaginations thus displayed:-- "Powers and Dominions, Deities of Heaven!-- For, since no deep within her gulf can hold Immortal vigour, though oppressed and fallen, I give not Heaven for lost: from this descent Celestial Virtues rising will appear More glorious and more dread than from no fall, And trust themselves to fear no second fate!-- Me though just right, and the fixed laws of Heaven, Did first create your leader--next, free choice With what besides in council or in fight Hath been achieved of merit--yet this loss, Thus far at least recovered, hath much more Established in a safe, unenvied throne, Yielded with full consent. The happier state In Heaven, which follows dignity, might draw Envy from each inferior; but who here Will envy whom the highest place exposes Foremost to stand against the Thunderer's aim Your bulwark, and condemns to greatest share Of endless pain? Where there is, then, no good For which to strive, no strife can grow up there From faction: for none sure will claim in Hell Precedence; none whose portion is so small Of present pain that with ambitious mind Will covet more! With this advantage, then, To union, and firm faith, and firm accord, More than can be in Heaven, we now return To claim our just inheritance of old, Surer to prosper than prosperity Could have assured us; and by what best way, Whether of open war or covert guile, We now debate. Who can advise may speak." He ceased; and next him Moloch, sceptred king, Stood up--the strongest and the fiercest Spirit That fought in Heaven, now fiercer by despair. His trust was with th' Eternal to be deemed Equal in strength, and rather than be less Cared not to be at all; with that care lost Went all his fear: of God, or Hell, or worse, He recked not, and these words thereafter spake:-- "My sentence is for open war. Of wiles, More unexpert, I boast not: them let those Contrive who need, or when they need; not now. For, while they sit contriving, shall the rest-- Millions that stand in arms, and longing wait The signal to ascend--sit lingering here, Heaven's fugitives, and for their dwelling-place Accept this dark opprobrious den of shame, The prison of his ryranny who reigns By our delay? No! let us rather choose, Armed with Hell-flames and fury, all at once O'er Heaven's high towers to force resistless way, Turning our tortures into horrid arms Against the Torturer; when, to meet the noise Of his almighty engine, he shall hear Infernal thunder, and, for lightning, see Black fire and horror shot with equal rage Among his Angels, and his throne itself Mixed with Tartarean sulphur and strange fire, His own invented torments. But perhaps The way seems difficult, and steep to scale With upright wing against a higher foe! Let such bethink them, if the sleepy drench Of that forgetful lake benumb not still, That in our porper motion we ascend Up to our native seat; descent and fall To us is adverse. Who but felt of late, When the fierce foe hung on our broken rear Insulting, and pursued us through the Deep, With what compulsion and laborious flight We sunk thus low? Th' ascent is easy, then; Th' event is feared! Should we again provoke Our stronger, some worse way his wrath may find To our destruction, if there be in Hell Fear to be worse destroyed! What can be worse Than to dwell here, driven out from bliss, condemned In this abhorred deep to utter woe! Where pain of unextinguishable fire Must exercise us without hope of end The vassals of his anger, when the scourge Inexorably, and the torturing hour, Calls us to penance? More destroyed than thus, We should be quite abolished, and expire. What fear we then? what doubt we to incense His utmost ire? which, to the height enraged, Will either quite consume us, and reduce To nothing this essential--happier far Than miserable to have eternal being!-- Or, if our substance be indeed divine, And cannot cease to be, we are at worst On this side nothing; and by proof we feel Our power sufficient to disturb his Heaven, And with perpetual inroads to alarm, Though inaccessible, his fatal throne: Which, if not victory, is yet revenge." He ended frowning, and his look denounced Desperate revenge, and battle dangerous To less than gods. On th' other side up rose Belial, in act more graceful and humane. A fairer person lost not Heaven; he seemed For dignity composed, and high exploit. But all was false and hollow; though his tongue Dropped manna, and could make the worse appear The better reason, to perplex and dash Maturest counsels: for his thoughts were low-- To vice industrious, but to nobler deeds Timorous and slothful. Yet he pleased the ear, And with persuasive accent thus began:-- "I should be much for open war, O Peers, As not behind in hate, if what was urged Main reason to persuade immediate war Did not dissuade me most, and seem to cast Ominous conjecture on the whole success; When he who most excels in fact of arms, In what he counsels and in what excels Mistrustful, grounds his courage on despair And utter dissolution, as the scope Of all his aim, after some dire revenge. First, what revenge? The towers of Heaven are filled With armed watch, that render all access Impregnable: oft on the bodering Deep Encamp their legions, or with obscure wing Scout far and wide into the realm of Night, Scorning surprise. Or, could we break our way By force, and at our heels all Hell should rise With blackest insurrection to confound Heaven's purest light, yet our great Enemy, All incorruptible, would on his throne Sit unpolluted, and th' ethereal mould, Incapable of stain, would soon expel Her mischief, and purge off the baser fire, Victorious. Thus repulsed, our final hope Is flat despair: we must exasperate Th' Almighty Victor to spend all his rage; And that must end us; that must be our cure-- To be no more. Sad cure! for who would lose, Though full of pain, this intellectual being, Those thoughts that wander through eternity, To perish rather, swallowed up and lost In the wide womb of uncreated Night, Devoid of sense and motion? And who knows, Let this be good, whether our angry Foe Can give it, or will ever? How he can Is doubtful; that he never will is sure. Will he, so wise, let loose at once his ire, Belike through impotence or unaware, To give his enemies their wish, and end Them in his anger whom his anger saves To punish endless? 'Wherefore cease we, then?' Say they who counsel war; 'we are decreed, Reserved, and destined to eternal woe; Whatever doing, what can we suffer more, What can we suffer worse?' Is this, then, worst-- Thus sitting, thus consulting, thus in arms? What when we fled amain, pursued and struck With Heaven's afflicting thunder, and besought The Deep to shelter us? This Hell then seemed A refuge from those wounds. Or when we lay Chained on the burning lake? That sure was worse. What if the breath that kindled those grim fires, Awaked, should blow them into sevenfold rage, And plunge us in the flames; or from above Should intermitted vengeance arm again His red right hand to plague us? What if all Her stores were opened, and this firmament Of Hell should spout her cataracts of fire, Impendent horrors, threatening hideous fall One day upon our heads; while we perhaps, Designing or exhorting glorious war, Caught in a fiery tempest, shall be hurled, Each on his rock transfixed, the sport and prey Or racking whirlwinds, or for ever sunk Under yon boiling ocean, wrapt in chains, There to converse with everlasting groans, Unrespited, unpitied, unreprieved, Ages of hopeless end? This would be worse. War, therefore, open or concealed, alike My voice dissuades; for what can force or guile With him, or who deceive his mind, whose eye Views all things at one view? He from Heaven's height All these our motions vain sees and derides, Not more almighty to resist our might Than wise to frustrate all our plots and wiles. Shall we, then, live thus vile--the race of Heaven Thus trampled, thus expelled, to suffer here Chains and these torments? Better these than worse, By my advice; since fate inevitable Subdues us, and omnipotent decree, The Victor's will. To suffer, as to do, Our strength is equal; nor the law unjust That so ordains. This was at first resolved, If we were wise, against so great a foe Contending, and so doubtful what might fall. I laugh when those who at the spear are bold And venturous, if that fail them, shrink, and fear What yet they know must follow--to endure Exile, or igominy, or bonds, or pain, The sentence of their Conqueror. This is now Our doom; which if we can sustain and bear, Our Supreme Foe in time may much remit His anger, and perhaps, thus far removed, Not mind us not offending, satisfied With what is punished; whence these raging fires Will slacken, if his breath stir not their flames. Our purer essence then will overcome Their noxious vapour; or, inured, not feel; Or, changed at length, and to the place conformed In temper and in nature, will receive Familiar the fierce heat; and, void of pain, This horror will grow mild, this darkness light; Besides what hope the never-ending flight Of future days may bring, what chance, what change Worth waiting--since our present lot appears For happy though but ill, for ill not worst, If we procure not to ourselves more woe." Thus Belial, with words clothed in reason's garb, Counselled ignoble ease and peaceful sloth, Not peace; and after him thus Mammon spake:-- "Either to disenthrone the King of Heaven We war, if war be best, or to regain Our own right lost. Him to unthrone we then May hope, when everlasting Fate shall yield To fickle Chance, and Chaos judge the strife. The former, vain to hope, argues as vain The latter; for what place can be for us Within Heaven's bound, unless Heaven's Lord supreme We overpower? Suppose he should relent And publish grace to all, on promise made Of new subjection; with what eyes could we Stand in his presence humble, and receive Strict laws imposed, to celebrate his throne With warbled hyms, and to his Godhead sing Forced hallelujahs, while he lordly sits Our envied sovereign, and his altar breathes Ambrosial odours and ambrosial flowers, Our servile offerings? This must be our task In Heaven, this our delight. How wearisome Eternity so spent in worship paid To whom we hate! Let us not then pursue, By force impossible, by leave obtained Unacceptable, though in Heaven, our state Of splendid vassalage; but rather seek Our own good from ourselves, and from our own Live to ourselves, though in this vast recess, Free and to none accountable, preferring Hard liberty before the easy yoke Of servile pomp. Our greatness will appear Then most conspicuous when great things of small, Useful of hurtful, prosperous of adverse, We can create, and in what place soe'er Thrive under evil, and work ease out of pain Through labour and endurance. This deep world Of darkness do we dread? How oft amidst Thick clouds and dark doth Heaven's all-ruling Sire Choose to reside, his glory unobscured, And with the majesty of darkness round Covers his throne, from whence deep thunders roar. Mustering their rage, and Heaven resembles Hell! As he our darkness, cannot we his light Imitate when we please? This desert soil Wants not her hidden lustre, gems and gold; Nor want we skill or art from whence to raise Magnificence; and what can Heaven show more? Our torments also may, in length of time, Become our elements, these piercing fires As soft as now severe, our temper changed Into their temper; which must needs remove The sensible of pain. All things invite To peaceful counsels, and the settled state Of order, how in safety best we may Compose our present evils, with regard Of what we are and where, dismissing quite All thoughts of war. Ye have what I advise." He scarce had finished, when such murmur filled Th' assembly as when hollow rocks retain The sound of blustering winds, which all night long Had roused the sea, now with hoarse cadence lull Seafaring men o'erwatched, whose bark by chance Or pinnace, anchors in a craggy bay After the tempest. Such applause was heard As Mammon ended, and his sentence pleased, Advising peace: for such another field They dreaded worse than Hell; so much the fear Of thunder and the sword of Michael Wrought still within them; and no less desire To found this nether empire, which might rise, By policy and long process of time, In emulation opposite to Heaven. Which when Beelzebub perceived--than whom, Satan except, none higher sat--with grave Aspect he rose, and in his rising seemed A pillar of state. Deep on his front engraven Deliberation sat, and public care; And princely counsel in his face yet shone, Majestic, though in ruin. Sage he stood With Atlantean shoulders, fit to bear The weight of mightiest monarchies; his look Drew audience and attention still as night Or summer's noontide air, while thus he spake:-- "Thrones and Imperial Powers, Offspring of Heaven, Ethereal Virtues! or these titles now Must we renounce, and, changing style, be called Princes of Hell? for so the popular vote Inclines--here to continue, and build up here A growing empire; doubtless! while we dream, And know not that the King of Heaven hath doomed This place our dungeon, not our safe retreat Beyond his potent arm, to live exempt From Heaven's high jurisdiction, in new league Banded against his throne, but to remain In strictest bondage, though thus far removed, Under th' inevitable curb, reserved His captive multitude. For he, to be sure, In height or depth, still first and last will reign Sole king, and of his kingdom lose no part By our revolt, but over Hell extend His empire, and with iron sceptre rule Us here, as with his golden those in Heaven. What sit we then projecting peace and war? War hath determined us and foiled with loss Irreparable; terms of peace yet none Vouchsafed or sought; for what peace will be given To us enslaved, but custody severe, And stripes and arbitrary punishment Inflicted? and what peace can we return, But, to our power, hostility and hate, Untamed reluctance, and revenge, though slow, Yet ever plotting how the Conqueror least May reap his conquest, and may least rejoice In doing what we most in suffering feel? Nor will occasion want, nor shall we need With dangerous expedition to invade Heaven, whose high walls fear no assault or siege, Or ambush from the Deep. What if we find Some easier enterprise? There is a place (If ancient and prophetic fame in Heaven Err not)--another World, the happy seat Of some new race, called Man, about this time To be created like to us, though less In power and excellence, but favoured more Of him who rules above; so was his will Pronounced among the Gods, and by an oath That shook Heaven's whole circumference confirmed. Thither let us bend all our thoughts, to learn What creatures there inhabit, of what mould Or substance, how endued, and what their power And where their weakness: how attempted best, By force of subtlety. Though Heaven be shut, And Heaven's high Arbitrator sit secure In his own strength, this place may lie exposed, The utmost border of his kingdom, left To their defence who hold it: here, perhaps, Some advantageous act may be achieved By sudden onset--either with Hell-fire To waste his whole creation, or possess All as our own, and drive, as we were driven, The puny habitants; or, if not drive, Seduce them to our party, that their God May prove their foe, and with repenting hand Abolish his own works. This would surpass Common revenge, and interrupt his joy In our confusion, and our joy upraise In his disturbance; when his darling sons, Hurled headlong to partake with us, shall curse Their frail original, and faded bliss-- Faded so soon! Advise if this be worth Attempting, or to sit in darkness here Hatching vain empires." Thus beelzebub Pleaded his devilish counsel--first devised By Satan, and in part proposed: for whence, But from the author of all ill, could spring So deep a malice, to confound the race Of mankind in one root, and Earth with Hell To mingle and involve, done all to spite The great Creator? But their spite still serves His glory to augment. The bold design Pleased highly those infernal States, and joy Sparkled in all their eyes: with full assent They vote: whereat his speech he thus renews:-- "Well have ye judged, well ended long debate, Synod of Gods, and, like to what ye are, Great things resolved, which from the lowest deep Will once more lift us up, in spite of fate, Nearer our ancient seat--perhaps in view Of those bright confines, whence, with neighbouring arms, And opportune excursion, we may chance Re-enter Heaven; or else in some mild zone Dwell, not unvisited of Heaven's fair light, Secure, and at the brightening orient beam Purge off this gloom: the soft delicious air, To heal the scar of these corrosive fires, Shall breathe her balm. But, first, whom shall we send In search of this new World? whom shall we find Sufficient? who shall tempt with wandering feet The dark, unbottomed, infinite Abyss, And through the palpable obscure find out His uncouth way, or spread his airy flight, Upborne with indefatigable wings Over the vast abrupt, ere he arrive The happy Isle? What strength, what art, can then Suffice, or what evasion bear him safe, Through the strict senteries and stations thick Of Angels watching round? Here he had need All circumspection: and we now no less Choice in our suffrage; for on whom we send The weight of all, and our last hope, relies." This said, he sat; and expectation held His look suspense, awaiting who appeared To second, or oppose, or undertake The perilous attempt. But all sat mute, Pondering the danger with deep thoughts; and each In other's countenance read his own dismay, Astonished. None among the choice and prime Of those Heaven-warring champions could be found So hardy as to proffer or accept, Alone, the dreadful voyage; till, at last, Satan, whom now transcendent glory raised Above his fellows, with monarchal pride Conscious of highest worth, unmoved thus spake:-- "O Progeny of Heaven! Empyreal Thrones! With reason hath deep silence and demur Seized us, though undismayed. Long is the way And hard, that out of Hell leads up to light. Our prison strong, this huge convex of fire, Outrageous to devour, immures us round Ninefold; and gates of burning adamant, Barred over us, prohibit all egress. These passed, if any pass, the void profound Of unessential Night receives him next, Wide-gaping, and with utter loss of being Threatens him, plunged in that abortive gulf. If thence he scape, into whatever world, Or unknown region, what remains him less Than unknown dangers, and as hard escape? But I should ill become this throne, O Peers, And this imperial sovereignty, adorned With splendour, armed with power, if aught proposed And judged of public moment in the shape Of difficulty or danger, could deter Me from attempting. Wherefore do I assume These royalties, and not refuse to reign, Refusing to accept as great a share Of hazard as of honour, due alike To him who reigns, and so much to him due Of hazard more as he above the rest High honoured sits? Go, therefore, mighty Powers, Terror of Heaven, though fallen; intend at home, While here shall be our home, what best may ease The present misery, and render Hell More tolerable; if there be cure or charm To respite, or deceive, or slack the pain Of this ill mansion: intermit no watch Against a wakeful foe, while I abroad Through all the coasts of dark destruction seek Deliverance for us all. This enterprise None shall partake with me." Thus saying, rose The Monarch, and prevented all reply; Prudent lest, from his resolution raised, Others among the chief might offer now, Certain to be refused, what erst they feared, And, so refused, might in opinion stand His rivals, winning cheap the high repute Which he through hazard huge must earn. But they Dreaded not more th' adventure than his voice Forbidding; and at once with him they rose. Their rising all at once was as the sound Of thunder heard remote. Towards him they bend With awful reverence prone, and as a God Extol him equal to the Highest in Heaven. Nor failed they to express how much they praised That for the general safety he despised His own: for neither do the Spirits damned Lose all their virtue; lest bad men should boast Their specious deeds on earth, which glory excites, Or close ambition varnished o'er with zeal. Thus they their doubtful consultations dark Ended, rejoicing in their matchless Chief: As, when from mountain-tops the dusky clouds Ascending, while the north wind sleeps, o'erspread Heaven's cheerful face, the louring element Scowls o'er the darkened landscape snow or shower, If chance the radiant sun, with farewell sweet, Extend his evening beam, the fields revive, The birds their notes renew, and bleating herds Attest their joy, that hill and valley rings. O shame to men! Devil with devil damned Firm concord holds; men only disagree Of creatures rational, though under hope Of heavenly grace, and, God proclaiming peace, Yet live in hatred, enmity, and strife Among themselves, and levy cruel wars Wasting the earth, each other to destroy: As if (which might induce us to accord) Man had not hellish foes enow besides, That day and night for his destruction wait! The Stygian council thus dissolved; and forth In order came the grand infernal Peers: Midst came their mighty Paramount, and seemed Alone th' antagonist of Heaven, nor less Than Hell's dread Emperor, with pomp supreme, And god-like imitated state: him round A globe of fiery Seraphim enclosed With bright emblazonry, and horrent arms. Then of their session ended they bid cry With trumpet's regal sound the great result: Toward the four winds four speedy Cherubim Put to their mouths the sounding alchemy, By herald's voice explained; the hollow Abyss Heard far adn wide, and all the host of Hell With deafening shout returned them loud acclaim. Thence more at ease their minds, and somewhat raised By false presumptuous hope, the ranged Powers Disband; and, wandering, each his several way Pursues, as inclination or sad choice Leads him perplexed, where he may likeliest find Truce to his restless thoughts, and entertain The irksome hours, till his great Chief return. Part on the plain, or in the air sublime, Upon the wing or in swift race contend, As at th' Olympian games or Pythian fields; Part curb their fiery steeds, or shun the goal With rapid wheels, or fronted brigades form: As when, to warn proud cities, war appears Waged in the troubled sky, and armies rush To battle in the clouds; before each van Prick forth the airy knights, and couch their spears, Till thickest legions close; with feats of arms From either end of heaven the welkin burns. Others, with vast Typhoean rage, more fell, Rend up both rocks and hills, and ride the air In whirlwind; Hell scarce holds the wild uproar:-- As when Alcides, from Oechalia crowned With conquest, felt th' envenomed robe, and tore Through pain up by the roots Thessalian pines, And Lichas from the top of Oeta threw Into th' Euboic sea. Others, more mild, Retreated in a silent valley, sing With notes angelical to many a harp Their own heroic deeds, and hapless fall By doom of battle, and complain that Fate Free Virtue should enthrall to Force or Chance. Their song was partial; but the harmony (What could it less when Spirits immortal sing?) Suspended Hell, and took with ravishment The thronging audience. In discourse more sweet (For Eloquence the Soul, Song charms the Sense) Others apart sat on a hill retired, In thoughts more elevate, and reasoned high Of Providence, Foreknowledge, Will, and Fate-- Fixed fate, free will, foreknowledge absolute, And found no end, in wandering mazes lost. Of good and evil much they argued then, Of happiness and final misery, Passion and apathy, and glory and shame: Vain wisdom all, and false philosophy!-- Yet, with a pleasing sorcery, could charm Pain for a while or anguish, and excite Fallacious hope, or arm th' obdured breast With stubborn patience as with triple steel. Another part, in squadrons and gross bands, On bold adventure to discover wide That dismal world, if any clime perhaps Might yield them easier habitation, bend Four ways their flying march, along the banks Of four infernal rivers, that disgorge Into the burning lake their baleful streams-- Abhorred Styx, the flood of deadly hate; Sad Acheron of sorrow, black and deep; Cocytus, named of lamentation loud Heard on the rueful stream; fierce Phlegeton, Whose waves of torrent fire inflame with rage. Far off from these, a slow and silent stream, Lethe, the river of oblivion, rolls Her watery labyrinth, whereof who drinks Forthwith his former state and being forgets-- Forgets both joy and grief, pleasure and pain. Beyond this flood a frozen continent Lies dark and wild, beat with perpetual storms Of whirlwind and dire hail, which on firm land Thaws not, but gathers heap, and ruin seems Of ancient pile; all else deep snow and ice, A gulf profound as that Serbonian bog Betwixt Damiata and Mount Casius old, Where armies whole have sunk: the parching air Burns frore, and cold performs th' effect of fire. Thither, by harpy-footed Furies haled, At certain revolutions all the damned Are brought; and feel by turns the bitter change Of fierce extremes, extremes by change more fierce, From beds of raging fire to starve in ice Their soft ethereal warmth, and there to pine Immovable, infixed, and frozen round Periods of time,--thence hurried back to fire. They ferry over this Lethean sound Both to and fro, their sorrow to augment, And wish and struggle, as they pass, to reach The tempting stream, with one small drop to lose In sweet forgetfulness all pain and woe, All in one moment, and so near the brink; But Fate withstands, and, to oppose th' attempt, Medusa with Gorgonian terror guards The ford, and of itself the water flies All taste of living wight, as once it fled The lip of Tantalus. Thus roving on In confused march forlorn, th' adventurous bands, With shuddering horror pale, and eyes aghast, Viewed first their lamentable lot, and found No rest. Through many a dark and dreary vale They passed, and many a region dolorous, O'er many a frozen, many a fiery alp, Rocks, caves, lakes, fens, bogs, dens, and shades of death-- A universe of death, which God by curse Created evil, for evil only good; Where all life dies, death lives, and Nature breeds, Perverse, all monstrous, all prodigious things, Obominable, inutterable, and worse Than fables yet have feigned or fear conceived, Gorgons, and Hydras, and Chimeras dire. Meanwhile the Adversary of God and Man, Satan, with thoughts inflamed of highest design, Puts on swift wings, and toward the gates of Hell Explores his solitary flight: sometimes He scours the right hand coast, sometimes the left; Now shaves with level wing the deep, then soars Up to the fiery concave towering high. As when far off at sea a fleet descried Hangs in the clouds, by equinoctial winds Close sailing from Bengala, or the isles Of Ternate and Tidore, whence merchants bring Their spicy drugs; they on the trading flood, Through the wide Ethiopian to the Cape, Ply stemming nightly toward the pole: so seemed Far off the flying Fiend. At last appear Hell-bounds, high reaching to the horrid roof, And thrice threefold the gates; three folds were brass, Three iron, three of adamantine rock, Impenetrable, impaled with circling fire, Yet unconsumed. Before the gates there sat On either side a formidable Shape. The one seemed woman to the waist, and fair, But ended foul in many a scaly fold, Voluminous and vast--a serpent armed With mortal sting. About her middle round A cry of Hell-hounds never-ceasing barked With wide Cerberean mouths full loud, and rung A hideous peal; yet, when they list, would creep, If aught disturbed their noise, into her womb, And kennel there; yet there still barked and howled Within unseen. Far less abhorred than these Vexed Scylla, bathing in the sea that parts Calabria from the hoarse Trinacrian shore; Nor uglier follow the night-hag, when, called In secret, riding through the air she comes, Lured with the smell of infant blood, to dance With Lapland witches, while the labouring moon Eclipses at their charms. The other Shape-- If shape it might be called that shape had none Distinguishable in member, joint, or limb; Or substance might be called that shadow seemed, For each seemed either--black it stood as Night, Fierce as ten Furies, terrible as Hell, And shook a dreadful dart: what seemed his head The likeness of a kingly crown had on. Satan was now at hand, and from his seat The monster moving onward came as fast With horrid strides; Hell trembled as he strode. Th' undaunted Fiend what this might be admired-- Admired, not feared (God and his Son except, Created thing naught valued he nor shunned), And with disdainful look thus first began:-- "Whence and what art thou, execrable Shape, That dar'st, though grim and terrible, advance Thy miscreated front athwart my way To yonder gates? Through them I mean to pass, That be assured, without leave asked of thee. Retire; or taste thy folly, and learn by proof, Hell-born, not to contend with Spirits of Heaven." To whom the Goblin, full of wrath, replied:-- "Art thou that traitor Angel? art thou he, Who first broke peace in Heaven and faith, till then Unbroken, and in proud rebellious arms Drew after him the third part of Heaven's sons, Conjured against the Highest--for which both thou And they, outcast from God, are here condemned To waste eternal days in woe and pain? And reckon'st thou thyself with Spirits of Heaven Hell-doomed, and breath'st defiance here and scorn, Where I reign king, and, to enrage thee more, Thy king and lord? Back to thy punishment, False fugitive; and to thy speed add wings, Lest with a whip of scorpions I pursue Thy lingering, or with one stroke of this dart Strange horror seize thee, and pangs unfelt before." So spake the grisly Terror, and in shape, So speaking and so threatening, grew tenfold, More dreadful and deform. On th' other side, Incensed with indignation, Satan stood Unterrified, and like a comet burned, That fires the length of Ophiuchus huge In th' arctic sky, and from his horrid hair Shakes pestilence and war. Each at the head Levelled his deadly aim; their fatal hands No second stroke intend; and such a frown Each cast at th' other as when two black clouds, With heaven's artillery fraught, came rattling on Over the Caspian,--then stand front to front Hovering a space, till winds the signal blow To join their dark encounter in mid-air. So frowned the mighty combatants that Hell Grew darker at their frown; so matched they stood; For never but once more was wither like To meet so great a foe. And now great deeds Had been achieved, whereof all Hell had rung, Had not the snaky Sorceress, that sat Fast by Hell-gate and kept the fatal key, Risen, and with hideous outcry rushed between. "O father, what intends thy hand," she cried, "Against thy only son? What fury, O son, Possesses thee to bend that mortal dart Against thy father's head? And know'st for whom? For him who sits above, and laughs the while At thee, ordained his drudge to execute Whate'er his wrath, which he calls justice, bids-- His wrath, which one day will destroy ye both!" She spake, and at her words the hellish Pest Forbore: then these to her Satan returned:-- "So strange thy outcry, and thy words so strange Thou interposest, that my sudden hand, Prevented, spares to tell thee yet by deeds What it intends, till first I know of thee What thing thou art, thus double-formed, and why, In this infernal vale first met, thou call'st Me father, and that phantasm call'st my son. I know thee not, nor ever saw till now Sight more detestable than him and thee." T' whom thus the Portress of Hell-gate replied:-- "Hast thou forgot me, then; and do I seem Now in thine eye so foul?--once deemed so fair In Heaven, when at th' assembly, and in sight Of all the Seraphim with thee combined In bold conspiracy against Heaven's King, All on a sudden miserable pain Surprised thee, dim thine eyes and dizzy swum In darkness, while thy head flames thick and fast Threw forth, till on the left side opening wide, Likest to thee in shape and countenance bright, Then shining heavenly fair, a goddess armed, Out of thy head I sprung. Amazement seized All th' host of Heaven; back they recoiled afraid At first, and called me Sin, and for a sign Portentous held me; but, familiar grown, I pleased, and with attractive graces won The most averse--thee chiefly, who, full oft Thyself in me thy perfect image viewing, Becam'st enamoured; and such joy thou took'st With me in secret that my womb conceived A growing burden. Meanwhile war arose, And fields were fought in Heaven: wherein remained (For what could else?) to our Almighty Foe Clear victory; to our part loss and rout Through all the Empyrean. Down they fell, Driven headlong from the pitch of Heaven, down Into this Deep; and in the general fall I also: at which time this powerful key Into my hands was given, with charge to keep These gates for ever shut, which none can pass Without my opening. Pensive here I sat Alone; but long I sat not, till my womb, Pregnant by thee, and now excessive grown, Prodigious motion felt and rueful throes. At last this odious offspring whom thou seest, Thine own begotten, breaking violent way, Tore through my entrails, that, with fear and pain Distorted, all my nether shape thus grew Transformed: but he my inbred enemy Forth issued, brandishing his fatal dart, Made to destroy. I fled, and cried out Death! Hell trembled at the hideous name, and sighed From all her caves, and back resounded Death! I fled; but he pursued (though more, it seems, Inflamed with lust than rage), and, swifter far, Me overtook, his mother, all dismayed, And, in embraces forcible and foul Engendering with me, of that rape begot These yelling monsters, that with ceaseless cry Surround me, as thou saw'st--hourly conceived And hourly born, with sorrow infinite To me; for, when they list, into the womb That bred them they return, and howl, and gnaw My bowels, their repast; then, bursting forth Afresh, with conscious terrors vex me round, That rest or intermission none I find. Before mine eyes in opposition sits Grim Death, my son and foe, who set them on, And me, his parent, would full soon devour For want of other prey, but that he knows His end with mine involved, and knows that I Should prove a bitter morsel, and his bane, Whenever that shall be: so Fate pronounced. But thou, O father, I forewarn thee, shun His deadly arrow; neither vainly hope To be invulnerable in those bright arms, Through tempered heavenly; for that mortal dint, Save he who reigns above, none can resist." She finished; and the subtle Fiend his lore Soon learned, now milder, and thus answered smooth:-- "Dear daughter--since thou claim'st me for thy sire, And my fair son here show'st me, the dear pledge Of dalliance had with thee in Heaven, and joys Then sweet, now sad to mention, through dire change Befallen us unforeseen, unthought-of--know, I come no enemy, but to set free From out this dark and dismal house of pain Both him and thee, and all the heavenly host Of Spirits that, in our just pretences armed, Fell with us from on high. From them I go This uncouth errand sole, and one for all Myself expose, with lonely steps to tread Th' unfounded Deep, and through the void immense To search, with wandering quest, a place foretold Should be--and, by concurring signs, ere now Created vast and round--a place of bliss In the purlieus of Heaven; and therein placed A race of upstart creatures, to supply Perhaps our vacant room, though more removed, Lest Heaven, surcharged with potent multitude, Might hap to move new broils. Be this, or aught Than this more secret, now designed, I haste To know; and, this once known, shall soon return, And bring ye to the place where thou and Death Shall dwell at ease, and up and down unseen Wing silently the buxom air, embalmed With odours. There ye shall be fed and filled Immeasurably; all things shall be your prey." He ceased; for both seemed highly pleased, and Death Grinned horrible a ghastly smile, to hear His famine should be filled, and blessed his maw Destined to that good hour. No less rejoiced His mother bad, and thus bespake her sire:-- "The key of this infernal Pit, by due And by command of Heaven's all-powerful King, I keep, by him forbidden to unlock These adamantine gates; against all force Death ready stands to interpose his dart, Fearless to be o'ermatched by living might. But what owe I to his commands above, Who hates me, and hath hither thrust me down Into this gloom of Tartarus profound, To sit in hateful office here confined, Inhabitant of Heaven and heavenly born-- Here in perpetual agony and pain, With terrors and with clamours compassed round Of mine own brood, that on my bowels feed? Thou art my father, thou my author, thou My being gav'st me; whom should I obey But thee? whom follow? Thou wilt bring me soon To that new world of light and bliss, among The gods who live at ease, where I shall reign At thy right hand voluptuous, as beseems Thy daughter and thy darling, without end." Thus saying, from her side the fatal key, Sad instrument of all our woe, she took; And, towards the gate rolling her bestial train, Forthwith the huge portcullis high up-drew, Which, but herself, not all the Stygian Powers Could once have moved; then in the key-hole turns Th' intricate wards, and every bolt and bar Of massy iron or solid rock with ease Unfastens. On a sudden open fly, With impetuous recoil and jarring sound, Th' infernal doors, and on their hinges grate Harsh thunder, that the lowest bottom shook Of Erebus. She opened; but to shut Excelled her power: the gates wide open stood, That with extended wings a bannered host, Under spread ensigns marching, mibht pass through With horse and chariots ranked in loose array; So wide they stood, and like a furnace-mouth Cast forth redounding smoke and ruddy flame. Before their eyes in sudden view appear The secrets of the hoary Deep--a dark Illimitable ocean, without bound, Without dimension; where length, breadth, and height, And time, and place, are lost; where eldest Night And Chaos, ancestors of Nature, hold Eternal anarchy, amidst the noise Of endless wars, and by confusion stand. For Hot, Cold, Moist, and Dry, four champions fierce, Strive here for mastery, and to battle bring Their embryon atoms: they around the flag Of each his faction, in their several clans, Light-armed or heavy, sharp, smooth, swift, or slow, Swarm populous, unnumbered as the sands Of Barca or Cyrene's torrid soil, Levied to side with warring winds, and poise Their lighter wings. To whom these most adhere He rules a moment: Chaos umpire sits, And by decision more embroils the fray By which he reigns: next him, high arbiter, Chance governs all. Into this wild Abyss, The womb of Nature, and perhaps her grave, Of neither sea, nor shore, nor air, nor fire, But all these in their pregnant causes mixed Confusedly, and which thus must ever fight, Unless th' Almighty Maker them ordain His dark materials to create more worlds-- Into this wild Abyss the wary Fiend Stood on the brink of Hell and looked a while, Pondering his voyage; for no narrow frith He had to cross. Nor was his ear less pealed With noises loud and ruinous (to compare Great things with small) than when Bellona storms With all her battering engines, bent to rase Some capital city; or less than if this frame Of Heaven were falling, and these elements In mutiny had from her axle torn The steadfast Earth. At last his sail-broad vans He spread for flight, and, in the surging smoke Uplifted, spurns the ground; thence many a league, As in a cloudy chair, ascending rides Audacious; but, that seat soon failing, meets A vast vacuity. All unawares, Fluttering his pennons vain, plumb-down he drops Ten thousand fathom deep, and to this hour Down had been falling, had not, by ill chance, The strong rebuff of some tumultuous cloud, Instinct with fire and nitre, hurried him As many miles aloft. That fury stayed-- Quenched in a boggy Syrtis, neither sea, Nor good dry land--nigh foundered, on he fares, Treading the crude consistence, half on foot, Half flying; behoves him now both oar and sail. As when a gryphon through the wilderness With winged course, o'er hill or moory dale, Pursues the Arimaspian, who by stealth Had from his wakeful custody purloined The guarded gold; so eagerly the Fiend O'er bog or steep, through strait, rough, dense, or rare, With head, hands, wings, or feet, pursues his way, And swims, or sinks, or wades, or creeps, or flies. At length a universal hubbub wild Of stunning sounds, and voices all confused, Borne through the hollow dark, assaults his ear With loudest vehemence. Thither he plies Undaunted, to meet there whatever Power Or Spirit of the nethermost Abyss Might in that noise reside, of whom to ask Which way the nearest coast of darkness lies Bordering on light; when straight behold the throne Of Chaos, and his dark pavilion spread Wide on the wasteful Deep! With him enthroned Sat sable-vested Night, eldest of things, The consort of his reign; and by them stood Orcus and Ades, and the dreaded name Of Demogorgon; Rumour next, and Chance, And Tumult, and Confusion, all embroiled, And Discord with a thousand various mouths. T' whom Satan, turning boldly, thus:--"Ye Powers And Spirtis of this nethermost Abyss, Chaos and ancient Night, I come no spy With purpose to explore or to disturb The secrets of your realm; but, by constraint Wandering this darksome desert, as my way Lies through your spacious empire up to light, Alone and without guide, half lost, I seek, What readiest path leads where your gloomy bounds Confine with Heaven; or, if some other place, From your dominion won, th' Ethereal King Possesses lately, thither to arrive I travel this profound. Direct my course: Directed, no mean recompense it brings To your behoof, if I that region lost, All usurpation thence expelled, reduce To her original darkness and your sway (Which is my present journey), and once more Erect the standard there of ancient Night. Yours be th' advantage all, mine the revenge!" Thus Satan; and him thus the Anarch old, With faltering speech and visage incomposed, Answered: "I know thee, stranger, who thou art-- *** That mighty leading Angel, who of late Made head against Heaven's King, though overthrown. I saw and heard; for such a numerous host Fled not in silence through the frighted Deep, With ruin upon ruin, rout on rout, Confusion worse confounded; and Heaven-gates Poured out by millions her victorious bands, Pursuing. I upon my frontiers here Keep residence; if all I can will serve That little which is left so to defend, Encroached on still through our intestine broils Weakening the sceptre of old Night: first, Hell, Your dungeon, stretching far and wide beneath; Now lately Heaven and Earth, another world Hung o'er my realm, linked in a golden chain To that side Heaven from whence your legions fell! If that way be your walk, you have not far; So much the nearer danger. Go, and speed; Havoc, and spoil, and ruin, are my gain." He ceased; and Satan stayed not to reply, But, glad that now his sea should find a shore, With fresh alacrity and force renewed Springs upward, like a pyramid of fire, Into the wild expanse, and through the shock Of fighting elements, on all sides round Environed, wins his way; harder beset And more endangered than when Argo passed Through Bosporus betwixt the justling rocks, Or when Ulysses on the larboard shunned Charybdis, and by th' other whirlpool steered. So he with difficulty and labour hard Moved on, with difficulty and labour he; But, he once passed, soon after, when Man fell, Strange alteration! Sin and Death amain, Following his track (such was the will of Heaven) Paved after him a broad and beaten way Over the dark Abyss, whose boiling gulf Tamely endured a bridge of wondrous length, From Hell continued, reaching th' utmost orb Of this frail World; by which the Spirits perverse With easy intercourse pass to and fro To tempt or punish mortals, except whom God and good Angels guard by special grace. But now at last the sacred influence Of light appears, and from the walls of Heaven Shoots far into the bosom of dim Night A glimmering dawn. Here Nature first begins Her farthest verge, and Chaos to retire, As from her outmost works, a broken foe, With tumult less and with less hostile din; That Satan with less toil, and now with ease, Wafts on the calmer wave by dubious light, And, like a weather-beaten vessel, holds Gladly the port, though shrouds and tackle torn; Or in the emptier waste, resembling air, Weighs his spread wings, at leisure to behold Far off th' empyreal Heaven, extended wide In circuit, undetermined square or round, With opal towers and battlements adorned Of living sapphire, once his native seat; And, fast by, hanging in a golden chain, This pendent World, in bigness as a star Of smallest magnitude close by the moon. Thither, full fraught with mischievous revenge, Accursed, and in a cursed hour, he hies. Book III Hail, holy Light, offspring of Heaven firstborn, Or of the Eternal coeternal beam May I express thee unblam'd? since God is light, And never but in unapproached light Dwelt from eternity, dwelt then in thee Bright effluence of bright essence increate. Or hear"st thou rather pure ethereal stream, Whose fountain who shall tell? before the sun, Before the Heavens thou wert, and at the voice Of God, as with a mantle, didst invest *** The rising world of waters dark and deep, Won from the void and formless infinite. Thee I re-visit now with bolder wing, Escap'd the Stygian pool, though long detain'd In that obscure sojourn, while in my flight Through utter and through middle darkness borne, With other notes than to the Orphean lyre I sung of Chaos and eternal Night; Taught by the heavenly Muse to venture down The dark descent, and up to re-ascend, Though hard and rare: Thee I revisit safe, And feel thy sovran vital lamp; but thou Revisit'st not these eyes, that roll in vain To find thy piercing ray, and find no dawn; So thick a drop serene hath quench'd their orbs, Or dim suffusion veil'd. Yet not the more Cease I to wander, where the Muses haunt, Clear spring, or shady grove, or sunny hill, Smit with the love of sacred song; but chief Thee, Sion, and the flowery brooks beneath, That wash thy hallow'd feet, and warbling flow, Nightly I visit: nor sometimes forget So were I equall'd with them in renown, Thy sovran command, that Man should find grace; Blind Thamyris, and blind Maeonides, And Tiresias, and Phineus, prophets old: Then feed on thoughts, that voluntary move Harmonious numbers; as the wakeful bird Sings darkling, and in shadiest covert hid Tunes her nocturnal note. Thus with the year Seasons return; but not to me returns Day, or the sweet approach of even or morn, Or sight of vernal bloom, or summer's rose, Or flocks, or herds, or human face divine; But cloud instead, and ever-during dark Surrounds me, from the cheerful ways of men Cut off, and for the book of knowledge fair Presented with a universal blank Of nature's works to me expung'd and ras'd, And wisdom at one entrance quite shut out. So much the rather thou, celestial Light, Shine inward, and the mind through all her powers Irradiate; there plant eyes, all mist from thence Purge and disperse, that I may see and tell Of things invisible to mortal sight. Now had the Almighty Father from above, From the pure empyrean where he sits High thron'd above all highth, bent down his eye His own works and their works at once to view: About him all the Sanctities of Heaven Stood thick as stars, and from his sight receiv'd Beatitude past utterance; on his right The radiant image of his glory sat, His only son; on earth he first beheld Our two first parents, yet the only two Of mankind in the happy garden plac'd Reaping immortal fruits of joy and love, Uninterrupted joy, unrivall'd love, In blissful solitude; he then survey'd Hell and the gulf between, and Satan there Coasting the wall of Heaven on this side Night In the dun air sublime, and ready now To stoop with wearied wings, and willing feet, On the bare outside of this world, that seem'd Firm land imbosom'd, without firmament, Uncertain which, in ocean or in air. Him God beholding from his prospect high, Wherein past, present, future, he beholds, Thus to his only Son foreseeing spake. Only begotten Son, seest thou what rage Transports our Adversary? whom no bounds Prescrib'd no bars of Hell, nor all the chains Heap'd on him there, nor yet the main abyss Wide interrupt, can hold; so bent he seems On desperate revenge, that shall redound Upon his own rebellious head. And now, Through all restraint broke loose, he wings his way Not far off Heaven, in the precincts of light, Directly towards the new created world, And man there plac'd, with purpose to assay If him by force he can destroy, or, worse, By some false guile pervert; and shall pervert; For man will hearken to his glozing lies, And easily transgress the sole command, Sole pledge of his obedience: So will fall He and his faithless progeny: Whose fault? Whose but his own? ingrate, he had of me All he could have; I made him just and right, Sufficient to have stood, though free to fall. Such I created all the ethereal Powers And Spirits, both them who stood, and them who fail'd; Freely they stood who stood, and fell who fell. Not free, what proof could they have given sincere Of true allegiance, constant faith or love, Where only what they needs must do appear'd, Not what they would? what praise could they receive? What pleasure I from such obedience paid, When will and reason (reason also is choice) Useless and vain, of freedom both despoil'd, Made passive both, had serv'd necessity, Not me? they therefore, as to right belong$ 'd, So were created, nor can justly accuse Their Maker, or their making, or their fate, As if predestination over-rul'd Their will dispos'd by absolute decree Or high foreknowledge they themselves decreed Their own revolt, not I; if I foreknew, Foreknowledge had no influence on their fault, Which had no less proved certain unforeknown. So without least impulse or shadow of fate, Or aught by me immutably foreseen, They trespass, authors to themselves in all Both what they judge, and what they choose; for so I form'd them free: and free they must remain, Till they enthrall themselves; I else must change Their nature, and revoke the high decree Unchangeable, eternal, which ordain'd $THeir freedom: they themselves ordain'd their fall. The first sort by their own suggestion fell, Self-tempted, self-deprav'd: Man falls, deceiv'd By the other first: Man therefore shall find grace, The other none: In mercy and justice both, Through Heaven and Earth, so shall my glory excel; But Mercy, first and last, shall brightest shine. Thus while God spake, ambrosial fragrance fill'd All Heaven, and in the blessed Spirits elect Sense of new joy ineffable diffus'd. Beyond compare the Son of God was seen Most glorious; in him all his Father shone Substantially express'd; and in his face Divine compassion visibly appear'd, Love without end, and without measure grace, Which uttering, thus he to his Father spake. O Father, gracious was that word which clos'd Thy sovran command, that Man should find grace; , that Man should find grace; For which both Heaven and earth shall high extol Thy praises, with the innumerable sound Of hymns and sacred songs, wherewith thy throne Encompass'd shall resound thee ever blest. For should Man finally be lost, should Man, Thy creature late so lov'd, thy youngest son, Fall circumvented thus by fraud, though join'd With his own folly? that be from thee far, That far be from thee, Father, who art judge Of all things made, and judgest only right. Or shall the Adversary thus obtain His end, and frustrate thine? shall he fulfill His malice, and thy goodness bring to nought, Or proud return, though to his heavier doom, Yet with revenge accomplish'd, and to Hell Draw after him the whole race of mankind, By him corrupted? or wilt thou thyself Abolish thy creation, and unmake For him, what for thy glory thou hast made? So should thy goodness and thy greatness both Be question'd and blasphem'd without defence. To whom the great Creator thus replied. O son, in whom my soul hath chief delight, Son of my bosom, Son who art alone. My word, my wisdom, and effectual might, All hast thou spoken as my thoughts are, all As my eternal purpose hath decreed; Man shall not quite be lost, but sav'd who will; Yet not of will in him, but grace in me Freely vouchsaf'd; once more I will renew His lapsed powers, though forfeit; and enthrall'd By sin to foul exorbitant desires; Upheld by me, yet once more he shall stand On even ground against his mortal foe; By me upheld, that he may know how frail His fallen condition is, and to me owe All his deliverance, and to none but me. Some I have chosen of peculiar grace, Elect above the rest; so is my will: The rest shall hear me call, and oft be warn'd Their sinful state, and to appease betimes The incensed Deity, while offer'd grace Invites; for I will clear their senses dark, What may suffice, and soften stony hearts To pray, repent, and bring obedience due. To prayer, repentance, and obedience due, Though but endeavour'd with sincere intent, Mine ear shall not be slow, mine eye not shut. And I will place within them as a guide, My umpire Conscience; whom if they will hear, Light after light, well us'd, they shall attain, And to the end, persisting, safe arrive. This my long sufferance, and my day of grace, They who neglect and scorn, shall never taste; But hard be harden'd, blind be blinded more, That they may stumble on, and deeper fall; And none but such from mercy I exclude. But yet all is not done; Man disobeying, Disloyal, breaks his fealty, and sins Against the high supremacy of Heaven, Affecting God-head, and, so losing all, To expiate his treason hath nought left, But to destruction sacred and devote, He, with his whole posterity, must die, Die he or justice must; unless for him Some other able, and as willing, pay The rigid satisfaction, death for death. Say, heavenly Powers, where shall we find such love? Which of you will be mortal, to redeem Man's mortal crime, and just the unjust to save? Dwells in all Heaven charity so dear? And silence was in Heaven: $ on Man's behalf He ask'd, but all the heavenly quire stood mute, Patron or intercessour none appear'd, Much less that durst upon his own head draw The deadly forfeiture, and ransom set. And now without redemption all mankind Must have been lost, adjudg'd to Death and Hell By doom severe, had not the Son of God, In whom the fulness dwells of love divine, His dearest mediation thus renew'd. Father, thy word is past, Man shall find grace; And shall grace not find means, that finds her way, The speediest of thy winged messengers, To visit all thy creatures, and to all Comes unprevented, unimplor'd, unsought? Happy for Man, so coming; he her aid Can never seek, once dead in sins, and lost; Atonement for himself, or offering meet, Indebted and undone, hath none to bring; Behold me then: me for him, life for life I offer: on me let thine anger fall; Account me Man; I for his sake will leave Thy bosom, and this glory next to thee Freely put off, and for him lastly die Well pleased; on me let Death wreak all his rage. Under his gloomy power I shall not long Lie vanquished. Thou hast given me to possess Life in myself for ever; by thee I live; Though now to Death I yield, and am his due, All that of me can die, yet, that debt paid, $ thou wilt not leave me in the loathsome grave His prey, nor suffer my unspotted soul For ever with corruption there to dwell; But I shall rise victorious, and subdue My vanquisher, spoiled of his vaunted spoil. Death his death's wound shall then receive, and stoop Inglorious, of his mortal sting disarmed; I through the ample air in triumph high Shall lead Hell captive maugre Hell, and show The powers of darkness bound. Thou, at the sight Pleased, out of Heaven shalt look down and smile, While, by thee raised, I ruin all my foes; Death last, and with his carcase glut the grave; Then, with the multitude of my redeemed, Shall enter Heaven, long absent, and return, Father, to see thy face, wherein no cloud Of anger shall remain, but peace assured And reconcilement: wrath shall be no more Thenceforth, but in thy presence joy entire. His words here ended; but his meek aspect Silent yet spake, and breathed immortal love To mortal men, above which only shone Filial obedience: as a sacrifice Glad to be offered, he attends the will Of his great Father. Admiration seized All Heaven, what this might mean, and whither tend, Wondering; but soon th' Almighty thus replied. O thou in Heaven and Earth the only peace Found out for mankind under wrath, O thou My sole complacence! Well thou know'st how dear To me are all my works; nor Man the least, Though last created, that for him I spare Thee from my bosom and right hand, to save, By losing thee a while, the whole race lost. 00021053 Thou, therefore, whom thou only canst redeem, Their nature also to thy nature join; And be thyself Man among men on Earth, Made flesh, when time shall be, of virgin seed, By wondrous birth; be thou in Adam's room The head of all mankind, though Adam's son. As in him perish all men, so in thee, As from a second root, shall be restored As many as are restored, without thee none. His crime makes guilty all his sons; thy merit, Imputed, shall absolve them who renounce Their own both righteous and unrighteous deeds, And live in thee transplanted, and from thee Receive new life. So Man, as is most just, Shall satisfy for Man, be judged and die, And dying rise, and rising with him raise His brethren, ransomed with his own dear life. So heavenly love shall outdo hellish hate, Giving to death, and dying to redeem, So dearly to redeem what hellish hate So easily destroyed, and still destroys In those who, when they may, accept not grace. Nor shalt thou, by descending to assume Man's nature, lessen or degrade thine own. Because thou hast, though throned in highest bliss Equal to God, and equally enjoying God-like fruition, quitted all, to save A world from utter loss, and hast been found By merit more than birthright Son of God, Found worthiest to be so by being good, Far more than great or high; because in thee Love hath abounded more than glory abounds; Therefore thy humiliation shall exalt With thee thy manhood also to this throne: Here shalt thou sit incarnate, here shalt reign Both God and Man, Son both of God and Man, Anointed universal King; all power I give thee; reign for ever, and assume Thy merits; under thee, as head supreme, Thrones, Princedoms, Powers, Dominions, I reduce: All knees to thee shall bow, of them that bide In Heaven, or Earth, or under Earth in Hell. When thou, attended gloriously from Heaven, Shalt in the sky appear, and from thee send The summoning Arch-Angels to proclaim Thy dread tribunal; forthwith from all winds, The living, and forthwith the cited dead Of all past ages, to the general doom Shall hasten; such a peal shall rouse their sleep. Then, all thy saints assembled, thou shalt judge Bad Men and Angels; they, arraigned, shall sink Beneath thy sentence; Hell, her numbers full, Thenceforth shall be for ever shut. Mean while The world shall burn, and from her ashes spring New Heaven and Earth, wherein the just shall dwell, And, after all their tribulations long, See golden days, fruitful of golden deeds, With joy and peace triumphing, and fair truth. Then thou thy regal scepter shalt lay by, For regal scepter then no more shall need, God shall be all in all. But, all ye Gods, Adore him, who to compass all this dies; Adore the Son, and honour him as me. No sooner had the Almighty ceased, but all The multitude of Angels, with a shout Loud as from numbers without number, sweet As from blest voices, uttering joy, Heaven rung With jubilee, and loud Hosannas filled The eternal regions: Lowly reverent Towards either throne they bow, and to the ground With solemn adoration down they cast Their crowns inwove with amarant and gold; Immortal amarant, a flower which once In Paradise, fast by the tree of life, Began to bloom; but soon for man's offence To Heaven removed, where first it grew, there grows, And flowers aloft shading the fount of life, And where the river of bliss through midst of Heaven Rolls o'er Elysian flowers her amber stream; With these that never fade the Spirits elect Bind their resplendent locks inwreathed with beams; Now in loose garlands thick thrown off, the bright Pavement, that like a sea of jasper shone, Impurpled with celestial roses smiled. Then, crowned again, their golden harps they took, Harps ever tuned, that glittering by their side Like quivers hung, and with preamble sweet Of charming symphony they introduce Their sacred song, and waken raptures high; No voice exempt, no voice but well could join Melodious part, such concord is in Heaven. Thee, Father, first they sung Omnipotent, Immutable, Immortal, Infinite, Eternal King; the Author of all being, Fonntain of light, thyself invisible Amidst the glorious brightness where thou sit'st Throned inaccessible, but when thou shadest The full blaze of thy beams, and, through a cloud Drawn round about thee like a radiant shrine, Dark with excessive bright thy skirts appear, Yet dazzle Heaven, that brightest Seraphim Approach not, but with both wings veil their eyes. Thee next they sang of all creation first, Begotten Son, Divine Similitude, In whose conspicuous countenance, without cloud Made visible, the Almighty Father shines, Whom else no creature can behold; on thee Impressed the effulgence of his glory abides, Transfused on thee his ample Spirit rests. He Heaven of Heavens and all the Powers therein By thee created; and by thee threw down The aspiring Dominations: Thou that day Thy Father's dreadful thunder didst not spare, Nor stop thy flaming chariot-wheels, that shook Heaven's everlasting frame, while o'er the necks Thou drovest of warring Angels disarrayed. Back from pursuit thy Powers with loud acclaim Thee only extolled, Son of thy Father's might, To execute fierce vengeance on his foes, Not so on Man: Him through their malice fallen, Father of mercy and grace, thou didst not doom So strictly, but much more to pity incline: No sooner did thy dear and only Son Perceive thee purposed not to doom frail Man So strictly, but much more to pity inclined, He to appease thy wrath, and end the strife Of mercy and justice in thy face discerned, Regardless of the bliss wherein he sat Second to thee, offered himself to die For Man's offence. O unexampled love, Love no where to be found less than Divine! Hail, Son of God, Saviour of Men! Thy name Shall be the copious matter of my song Henceforth, and never shall my heart thy praise Forget, nor from thy Father's praise disjoin. Thus they in Heaven, above the starry sphere, Their happy hours in joy and hymning spent. Mean while upon the firm opacous globe Of this round world, whose first convex divides The luminous inferiour orbs, enclosed From Chaos, and the inroad of Darkness old, Satan alighted walks: A globe far off It seemed, now seems a boundless continent Dark, waste, and wild, under the frown of Night Starless exposed, and ever-threatening storms Of Chaos blustering round, inclement sky; Save on that side which from the wall of Heaven, Though distant far, some small reflection gains Of glimmering air less vexed with tempest loud: Here walked the Fiend at large in spacious field. As when a vultur on Imaus bred, Whose snowy ridge the roving Tartar bounds, Dislodging from a region scarce of prey To gorge the flesh of lambs or yeanling kids, On hills where flocks are fed, flies toward the springs Of Ganges or Hydaspes, Indian streams; But in his way lights on the barren plains Of Sericana, where Chineses drive With sails and wind their cany waggons light: So, on this windy sea of land, the Fiend Walked up and down alone, bent on his prey; Alone, for other creature in this place, Living or lifeless, to be found was none; None yet, but store hereafter from the earth Up hither like aereal vapours flew Of all things transitory and vain, when sin With vanity had filled the works of men: Both all things vain, and all who in vain things Built their fond hopes of glory or lasting fame, Or happiness in this or the other life; All who have their reward on earth, the fruits Of painful superstition and blind zeal, Nought seeking but the praise of men, here find Fit retribution, empty as their deeds; All the unaccomplished works of Nature's hand, Abortive, monstrous, or unkindly mixed, Dissolved on earth, fleet hither, and in vain, Till final dissolution, wander here; Not in the neighbouring moon as some have dreamed; Those argent fields more likely habitants, Translated Saints, or middle Spirits hold Betwixt the angelical and human kind. Hither of ill-joined sons and daughters born First from the ancient world those giants came With many a vain exploit, though then renowned: The builders next of Babel on the plain Of Sennaar, and still with vain design, New Babels, had they wherewithal, would build: Others came single; he, who, to be deemed A God, leaped fondly into Aetna flames, Empedocles; and he, who, to enjoy Plato's Elysium, leaped into the sea, Cleombrotus; and many more too long, Embryos, and idiots, eremites, and friars White, black, and gray, with all their trumpery. Here pilgrims roam, that strayed so far to seek In Golgotha him dead, who lives in Heaven; And they, who to be sure of Paradise, Dying, put on the weeds of Dominick, Or in Franciscan think to pass disguised; They pass the planets seven, and pass the fixed, And that crystalling sphere whose balance weighs The trepidation talked, and that first moved; And now Saint Peter at Heaven's wicket seems To wait them with his keys, and now at foot Of Heaven's ascent they lift their feet, when lo A violent cross wind from either coast Blows them transverse, ten thousand leagues awry Into the devious air: Then might ye see Cowls, hoods, and habits, with their wearers, tost And fluttered into rags; then reliques, beads, Indulgences, dispenses, pardons, bulls, The sport of winds: All these, upwhirled aloft, Fly o'er the backside of the world far off Into a Limbo large and broad, since called The Paradise of Fools, to few unknown Long after; now unpeopled, and untrod. All this dark globe the Fiend found as he passed, And long he wandered, till at last a gleam Of dawning light turned thither-ward in haste His travelled steps: far distant he descries Ascending by degrees magnificent Up to the wall of Heaven a structure high; At top whereof, but far more rich, appeared The work as of a kingly palace-gate, With frontispiece of diamond and gold Embellished; thick with sparkling orient gems The portal shone, inimitable on earth By model, or by shading pencil, drawn. These stairs were such as whereon Jacob saw Angels ascending and descending, bands Of guardians bright, when he from Esau fled To Padan-Aram, in the field of Luz Dreaming by night under the open sky And waking cried, This is the gate of Heaven. Each stair mysteriously was meant, nor stood There always, but drawn up to Heaven sometimes Viewless; and underneath a bright sea flowed Of jasper, or of liquid pearl, whereon Who after came from earth, failing arrived Wafted by Angels, or flew o'er the lake Rapt in a chariot drawn by fiery steeds. The stairs were then let down, whether to dare The Fiend by easy ascent, or aggravate His sad exclusion from the doors of bliss: Direct against which opened from beneath, Just o'er the blissful seat of Paradise, A passage down to the Earth, a passage wide, Wider by far than that of after-times Over mount Sion, and, though that were large, Over the Promised Land to God so dear; By which, to visit oft those happy tribes, On high behests his angels to and fro Passed frequent, and his eye with choice regard From Paneas, the fount of Jordan's flood, To Beersaba, where the Holy Land Borders on Egypt and the Arabian shore; So wide the opening seemed, where bounds were set To darkness, such as bound the ocean wave. Satan from hence, now on the lower stair, That scaled by steps of gold to Heaven-gate, Looks down with wonder at the sudden view Of all this world at once. As when a scout, Through dark?;nd desart ways with?oeril gone All?might,?;t?kast by break of cheerful dawn Obtains the brow of some high-climbing hill, Which to his eye discovers unaware The goodly prospect of some foreign land First seen, or some renowned metropolis With glistering spires and pinnacles adorned, Which now the rising sun gilds with his beams: Such wonder seised, though after Heaven seen, The Spirit malign, but much more envy seised, At sight of all this world beheld so fair. Round he surveys (and well might, where he stood So high above the circling canopy Of night's extended shade,) from eastern point Of Libra to the fleecy star that bears Andromeda far off Atlantick seas Beyond the horizon; then from pole to pole He views in breadth, and without longer pause Down right into the world's first region throws His flight precipitant, and winds with ease Through the pure marble air his oblique way Amongst innumerable stars, that shone Stars distant, but nigh hand seemed other worlds; Or other worlds they seemed, or happy isles, Like those Hesperian gardens famed of old, Fortunate fields, and groves, and flowery vales, Thrice happy isles; but who dwelt happy there He staid not to inquire: Above them all The golden sun, in splendour likest Heaven, Allured his eye; thither his course he bends Through the calm firmament, (but up or down, By center, or eccentrick, hard to tell, Or longitude,) where the great luminary Aloof the vulgar constellations thick, That from his lordly eye keep distance due, Dispenses light from far; they, as they move Their starry dance in numbers that compute Days, months, and years, towards his all-cheering lamp Turn swift their various motions, or are turned By his magnetick beam, that gently warms The universe, and to each inward part With gentle penetration, though unseen, Shoots invisible virtue even to the deep; So wonderously was set his station bright. There lands the Fiend, a spot like which perhaps Astronomer in the sun's lucent orb Through his glazed optick tube yet never saw. The place he found beyond expression bright, Compared with aught on earth, metal or stone; Not all parts like, but all alike informed With radiant light, as glowing iron with fire; If metal, part seemed gold, part silver clear; If stone, carbuncle most or chrysolite, Ruby or topaz, to the twelve that shone In Aaron's breast-plate, and a stone besides Imagined rather oft than elsewhere seen, That stone, or like to that which here below Philosophers in vain so long have sought, In vain, though by their powerful art they bind Volatile Hermes, and call up unbound In various shapes old Proteus from the sea, Drained through a limbeck to his native form. What wonder then if fields and regions here Breathe forth Elixir pure, and rivers run Potable gold, when with one virtuous touch The arch-chemick sun, so far from us remote, Produces, with terrestrial humour mixed, Here in the dark so many precious things Of colour glorious, and effect so rare? Here matter new to gaze the Devil met Undazzled; far and wide his eye commands; For sight no obstacle found here, nor shade, But all sun-shine, as when his beams at noon Culminate from the equator, as they now Shot upward still direct, whence no way round Shadow from body opaque can fall; and the air, No where so clear, sharpened his visual ray To objects distant far, whereby he soon Saw within ken a glorious Angel stand, The same whom John saw also in the sun: His back was turned, but not his brightness hid; Of beaming sunny rays a golden tiar Circled his head, nor less his locks behind Illustrious on his shoulders fledge with wings Lay waving round; on some great charge employed He seemed, or fixed in cogitation deep. Glad was the Spirit impure, as now in hope To find who might direct his wandering flight To Paradise, the happy seat of Man, His journey's end and our beginning woe. But first he casts to change his proper shape, Which else might work him danger or delay: And now a stripling Cherub he appears, Not of the prime, yet such as in his face Youth smiled celestial, and to every limb Suitable grace diffused, so well he feigned: Under a coronet his flowing hair In curls on either cheek played; wings he wore Of many a coloured plume, sprinkled with gold; His habit fit for speed succinct, and held Before his decent steps a silver wand. He drew not nigh unheard; the Angel bright, Ere he drew nigh, his radiant visage turned, Admonished by his ear, and straight was known The Arch-Angel Uriel, one of the seven Who in God's presence, nearest to his throne, Stand ready at command, and are his eyes That run through all the Heavens, or down to the Earth Bear his swift errands over moist and dry, O'er sea and land: him Satan thus accosts. Uriel, for thou of those seven Spirits that stand In sight of God's high throne, gloriously bright, The first art wont his great authentick will Interpreter through highest Heaven to bring, Where all his sons thy embassy attend; And here art likeliest by supreme decree Like honour to obtain, and as his eye To visit oft this new creation round; Unspeakable desire to see, and know All these his wonderous works, but chiefly Man, His chief delight and favour, him for whom All these his works so wonderous he ordained, Hath brought me from the quires of Cherubim Alone thus wandering. Brightest Seraph, tell In which of all these shining orbs hath Man His fixed seat, or fixed seat hath none, But all these shining orbs his choice to dwell; That I may find him, and with secret gaze Or open admiration him behold, On whom the great Creator hath bestowed Worlds, and on whom hath all these graces poured; That both in him and all things, as is meet, The universal Maker we may praise; Who justly hath driven out his rebel foes To deepest Hell, and, to repair that loss, Created this new happy race of Men To serve him better: Wise are all his ways. So spake the false dissembler unperceived; For neither Man nor Angel can discern Hypocrisy, the only evil that walks Invisible, except to God alone, By his permissive will, through Heaven and Earth: And oft, though wisdom wake, suspicion sleeps At wisdom's gate, and to simplicity Resigns her charge, while goodness thinks no ill Where no ill seems: Which now for once beguiled Uriel, though regent of the sun, and held The sharpest-sighted Spirit of all in Heaven; Who to the fraudulent impostor foul, In his uprightness, answer thus returned. Fair Angel, thy desire, which tends to know The works of God, thereby to glorify The great Work-master, leads to no excess That reaches blame, but rather merits praise The more it seems excess, that led thee hither From thy empyreal mansion thus alone, To witness with thine eyes what some perhaps, Contented with report, hear only in Heaven: For wonderful indeed are all his works, Pleasant to know, and worthiest to be all Had in remembrance always with delight; But what created mind can comprehend Their number, or the wisdom infinite That brought them forth, but hid their causes deep? I saw when at his word the formless mass, This world's material mould, came to a heap: Confusion heard his voice, and wild uproar Stood ruled, stood vast infinitude confined; Till at his second bidding Darkness fled, Light shone, and order from disorder sprung: Swift to their several quarters hasted then The cumbrous elements, earth, flood, air, fire; And this ethereal quintessence of Heaven Flew upward, spirited with various forms, That rolled orbicular, and turned to stars Numberless, as thou seest, and how they move; Each had his place appointed, each his course; The rest in circuit walls this universe. Look downward on that globe, whose hither side With light from hence, though but reflected, shines; That place is Earth, the seat of Man; that light His day, which else, as the other hemisphere, Night would invade; but there the neighbouring moon So call that opposite fair star) her aid Timely interposes, and her monthly round Still ending, still renewing, through mid Heaven, With borrowed light her countenance triform Hence fills and empties to enlighten the Earth, And in her pale dominion checks the night. That spot, to which I point, is Paradise, Adam's abode; those lofty shades, his bower. Thy way thou canst not miss, me mine requires. Thus said, he turned; and Satan, bowing low, As to superiour Spirits is wont in Heaven, Where honour due and reverence none neglects, Took leave, and toward the coast of earth beneath, Down from the ecliptick, sped with hoped success, Throws his steep flight in many an aery wheel; Nor staid, till on Niphates' top he lights. Book IV O, for that warning voice, which he, who saw The Apocalypse, heard cry in Heaven aloud, Then when the Dragon, put to second rout, Came furious down to be revenged on men, Woe to the inhabitants on earth! that now, While time was, our first parents had been warned The coming of their secret foe, and 'scaped, Haply so 'scaped his mortal snare: For now Satan, now first inflamed with rage, came down, The tempter ere the accuser of mankind, To wreak on innocent frail Man his loss Of that first battle, and his flight to Hell: Yet, not rejoicing in his speed, though bold Far off and fearless, nor with cause to boast, Begins his dire attempt; which nigh the birth Now rolling boils in his tumultuous breast, And like a devilish engine back recoils Upon himself; horrour and doubt distract His troubled thoughts, and from the bottom stir The Hell within him; for within him Hell He brings, and round about him, nor from Hell One step, no more than from himself, can fly By change of place: Now conscience wakes despair, That slumbered; wakes the bitter memory Of what he was, what is, and what must be Worse; of worse deeds worse sufferings must ensue. Sometimes towards Eden, which now in his view Lay pleasant, his grieved look he fixes sad; Sometimes towards Heaven, and the full-blazing sun, Which now sat high in his meridian tower: Then, much revolving, thus in sighs began. O thou, that, with surpassing glory crowned, Lookest from thy sole dominion like the God Of this new world; at whose sight all the stars Hide their diminished heads; to thee I call, But with no friendly voice, and add thy name, Of Sun! to tell thee how I hate thy beams, That bring to my remembrance from what state I fell, how glorious once above thy sphere; Till pride and worse ambition threw me down Warring in Heaven against Heaven's matchless King: Ah, wherefore! he deserved no such return From me, whom he created what I was In that bright eminence, and with his good Upbraided none; nor was his service hard. What could be less than to afford him praise, The easiest recompence, and pay him thanks, How due! yet all his good proved ill in me, And wrought but malice; lifted up so high I sdeined subjection, and thought one step higher Would set me highest, and in a moment quit The debt immense of endless gratitude, So burdensome still paying, still to owe, Forgetful what from him I still received, And understood not that a grateful mind By owing owes not, but still pays, at once Indebted and discharged; what burden then O, had his powerful destiny ordained Me some inferiour Angel, I had stood Then happy; no unbounded hope had raised Ambition! Yet why not some other Power As great might have aspired, and me, though mean, Drawn to his part; but other Powers as great Fell not, but stand unshaken, from within Or from without, to all temptations armed. Hadst thou the same free will and power to stand? Thou hadst: whom hast thou then or what to accuse, But Heaven's free love dealt equally to all? Be then his love accursed, since love or hate, To me alike, it deals eternal woe. Nay, cursed be thou; since against his thy will Chose freely what it now so justly rues. Me miserable! which way shall I fly Infinite wrath, and infinite despair? Which way I fly is Hell; myself am Hell; And, in the lowest deep, a lower deep Still threatening to devour me opens wide, To which the Hell I suffer seems a Heaven. O, then, at last relent: Is there no place Left for repentance, none for pardon left? None left but by submission; and that word Disdain forbids me, and my dread of shame Among the Spirits beneath, whom I seduced With other promises and other vaunts Than to submit, boasting I could subdue The Omnipotent. Ay me! they little know How dearly I abide that boast so vain, Under what torments inwardly I groan, While they adore me on the throne of Hell. With diadem and scepter high advanced, The lower still I fall, only supreme In misery: Such joy ambition finds. But say I could repent, and could obtain, By act of grace, my former state; how soon Would highth recall high thoughts, how soon unsay What feigned submission swore? Ease would recant Vows made in pain, as violent and void. For never can true reconcilement grow, Where wounds of deadly hate have pierced so deep: Which would but lead me to a worse relapse And heavier fall: so should I purchase dear Short intermission bought with double smart. This knows my Punisher; therefore as far From granting he, as I from begging, peace; All hope excluded thus, behold, in stead Mankind created, and for him this world. So farewell, hope; and with hope farewell, fear; Farewell, remorse! all good to me is lost; Evil, be thou my good; by thee at least Divided empire with Heaven's King I hold, By thee, and more than half perhaps will reign; As Man ere long, and this new world, shall know. Thus while he spake, each passion dimmed his face Thrice changed with pale, ire, envy, and despair; Which marred his borrowed visage, and betrayed Him counterfeit, if any eye beheld. For heavenly minds from such distempers foul Are ever clear. Whereof he soon aware, Each perturbation smoothed with outward calm, Artificer of fraud; and was the first That practised falsehood under saintly show, Deep malice to conceal, couched with revenge: Yet not enough had practised to deceive Uriel once warned; whose eye pursued him down The way he went, and on the Assyrian mount Saw him disfigured, more than could befall Spirit of happy sort; his gestures fierce He marked and mad demeanour, then alone, As he supposed, all unobserved, unseen. So on he fares, and to the border comes Of Eden, where delicious Paradise, Now nearer, crowns with her enclosure green, As with a rural mound, the champaign head Of a steep wilderness, whose hairy sides Access denied; and overhead upgrew Insuperable height of loftiest shade, Cedar, and pine, and fir, and branching palm, A sylvan scene, and, as the ranks ascend, Shade above shade, a woody theatre Of stateliest view. Yet higher than their tops The verdurous wall of Paradise upsprung; 00081429 Which to our general sire gave prospect large Into his nether empire neighbouring round. And higher than that wall a circling row Of goodliest trees, loaden with fairest fruit, Blossoms and fruits at once of golden hue, Appeared, with gay enamelled colours mixed: On which the sun more glad impressed his beams Than in fair evening cloud, or humid bow, When God hath showered the earth; so lovely seemed That landskip: And of pure now purer air Meets his approach, and to the heart inspires Vernal delight and joy, able to drive All sadness but despair: Now gentle gales, Fanning their odoriferous wings, dispense Native perfumes, and whisper whence they stole Those balmy spoils. As when to them who fail Beyond the Cape of Hope, and now are past Mozambick, off at sea north-east winds blow Sabean odours from the spicy shore Of Araby the blest; with such delay Well pleased they slack their course, and many a league Cheered with the grateful smell old Ocean smiles: So entertained those odorous sweets the Fiend, Who came their bane; though with them better pleased Than Asmodeus with the fishy fume That drove him, though enamoured, from the spouse Of Tobit's son, and with a vengeance sent From Media post to Egypt, there fast bound. Now to the ascent of that steep savage hill Satan had journeyed on, pensive and slow; But further way found none, so thick entwined, As one continued brake, the undergrowth Of shrubs and tangling bushes had perplexed All path of man or beast that passed that way. One gate there only was, and that looked east On the other side: which when the arch-felon saw, Due entrance he disdained; and, in contempt, At one flight bound high over-leaped all bound Of hill or highest wall, and sheer within Lights on his feet. As when a prowling wolf, Whom hunger drives to seek new haunt for prey, Watching where shepherds pen their flocks at eve In hurdled cotes amid the field secure, Leaps o'er the fence with ease into the fold: Or as a thief, bent to unhoard the cash Of some rich burgher, whose substantial doors, Cross-barred and bolted fast, fear no assault, In at the window climbs, or o'er the tiles: So clomb this first grand thief into God's fold; So since into his church lewd hirelings climb. Thence up he flew, and on the tree of life, The middle tree and highest there that grew, Sat like a cormorant; yet not true life Thereby regained, but sat devising death To them who lived; nor on the virtue thought Of that life-giving plant, but only used For prospect, what well used had been the pledge Of immortality. So little knows Any, but God alone, to value right The good before him, but perverts best things To worst abuse, or to their meanest use. Beneath him with new wonder now he views, To all delight of human sense exposed, In narrow room, Nature's whole wealth, yea more, A Heaven on Earth: For blissful Paradise Of God the garden was, by him in the east Of Eden planted; Eden stretched her line From Auran eastward to the royal towers Of great Seleucia, built by Grecian kings, Of where the sons of Eden long before Dwelt in Telassar: In this pleasant soil His far more pleasant garden God ordained; Out of the fertile ground he caused to grow All trees of noblest kind for sight, smell, taste; And all amid them stood the tree of life, High eminent, blooming ambrosial fruit Of vegetable gold; and next to life, Our death, the tree of knowledge, grew fast by, Knowledge of good bought dear by knowing ill. Southward through Eden went a river large, Nor changed his course, but through the shaggy hill Passed underneath ingulfed; for God had thrown That mountain as his garden-mould high raised Upon the rapid current, which, through veins Of porous earth with kindly thirst up-drawn, Rose a fresh fountain, and with many a rill Watered the garden; thence united fell Down the steep glade, and met the nether flood, Which from his darksome passage now appears, And now, divided into four main streams, Runs diverse, wandering many a famous realm And country, whereof here needs no account; But rather to tell how, if Art could tell, How from that sapphire fount the crisped brooks, Rolling on orient pearl and sands of gold, With mazy errour under pendant shades Ran nectar, visiting each plant, and fed Flowers worthy of Paradise, which not nice Art In beds and curious knots, but Nature boon Poured forth profuse on hill, and dale, and plain, Both where the morning sun first warmly smote The open field, and where the unpierced shade Imbrowned the noontide bowers: Thus was this place A happy rural seat of various view; Groves whose rich trees wept odorous gums and balm, Others whose fruit, burnished with golden rind, Hung amiable, Hesperian fables true, If true, here only, and of delicious taste: Betwixt them lawns, or level downs, and flocks Grazing the tender herb, were interposed, Or palmy hillock; or the flowery lap Of some irriguous valley spread her store, Flowers of all hue, and without thorn the rose: Another side, umbrageous grots and caves Of cool recess, o'er which the mantling vine Lays forth her purple grape, and gently creeps Luxuriant; mean while murmuring waters fall Down the slope hills, dispersed, or in a lake, That to the fringed bank with myrtle crowned Her crystal mirrour holds, unite their streams. The birds their quire apply; airs, vernal airs, Breathing the smell of field and grove, attune The trembling leaves, while universal Pan, Knit with the Graces and the Hours in dance, Led on the eternal Spring. Not that fair field Of Enna, where Proserpine gathering flowers, Herself a fairer flower by gloomy Dis Was gathered, which cost Ceres all that pain To seek her through the world; nor that sweet grove Of Daphne by Orontes, and the inspired Castalian spring, might with this Paradise Of Eden strive; nor that Nyseian isle Girt with the river Triton, where old Cham, Whom Gentiles Ammon call and Libyan Jove, Hid Amalthea, and her florid son Young Bacchus, from his stepdame Rhea's eye; Nor where Abassin kings their issue guard, Mount Amara, though this by some supposed True Paradise under the Ethiop line By Nilus' head, enclosed with shining rock, A whole day's journey high, but wide remote From this Assyrian garden, where the Fiend Saw, undelighted, all delight, all kind Of living creatures, new to sight, and strange Two of far nobler shape, erect and tall, Godlike erect, with native honour clad In naked majesty seemed lords of all: And worthy seemed; for in their looks divine The image of their glorious Maker shone, Truth, wisdom, sanctitude severe and pure, (Severe, but in true filial freedom placed,) Whence true authority in men; though both Not equal, as their sex not equal seemed; For contemplation he and valour formed; For softness she and sweet attractive grace; He for God only, she for God in him: His fair large front and eye sublime declared Absolute rule; and hyacinthine locks Round from his parted forelock manly hung Clustering, but not beneath his shoulders broad: She, as a veil, down to the slender waist Her unadorned golden tresses wore Dishevelled, but in wanton ringlets waved As the vine curls her tendrils, which implied Subjection, but required with gentle sway, And by her yielded, by him best received, Yielded with coy submission, modest pride, And sweet, reluctant, amorous delay. Nor those mysterious parts were then concealed; Then was not guilty shame, dishonest shame Of nature's works, honour dishonourable, Sin-bred, how have ye troubled all mankind With shows instead, mere shows of seeming pure, And banished from man's life his happiest life, Simplicity and spotless innocence! So passed they naked on, nor shunned the sight Of God or Angel; for they thought no ill: So hand in hand they passed, the loveliest pair, That ever since in love's embraces met; Adam the goodliest man of men since born His sons, the fairest of her daughters Eve. Under a tuft of shade that on a green Stood whispering soft, by a fresh fountain side They sat them down; and, after no more toil Of their sweet gardening labour than sufficed To recommend cool Zephyr, and made ease More easy, wholesome thirst and appetite More grateful, to their supper-fruits they fell, Nectarine fruits which the compliant boughs Yielded them, side-long as they sat recline On the soft downy bank damasked with flowers: The savoury pulp they chew, and in the rind, Still as they thirsted, scoop the brimming stream; Nor gentle purpose, nor endearing smiles Wanted, nor youthful dalliance, as beseems Fair couple, linked in happy nuptial league, Alone as they. About them frisking played All beasts of the earth, since wild, and of all chase In wood or wilderness, forest or den; Sporting the lion ramped, and in his paw Dandled the kid; bears, tigers, ounces, pards, Gambolled before them; the unwieldy elephant, To make them mirth, used all his might, and wreathed His?kithetmroboscis; close the serpent sly, Insinuating, wove with Gordian twine His braided train, and of his fatal guile Gave proof unheeded; others on the grass Couched, and now filled with pasture gazing sat, Or bedward ruminating; for the sun, Declined, was hasting now with prone career To the ocean isles, and in the ascending scale Of Heaven the stars that usher evening rose: When Satan still in gaze, as first he stood, Scarce thus at length failed speech recovered sad. O Hell! what do mine eyes with grief behold! Into our room of bliss thus high advanced Creatures of other mould, earth-born perhaps, Not Spirits, yet to heavenly Spirits bright Little inferiour; whom my thoughts pursue With wonder, and could love, so lively shines In them divine resemblance, and such grace The hand that formed them on their shape hath poured. Ah! gentle pair, ye little think how nigh Your change approaches, when all these delights Will vanish, and deliver ye to woe; More woe, the more your taste is now of joy; Happy, but for so happy ill secured Long to continue, and this high seat your Heaven Ill fenced for Heaven to keep out such a foe As now is entered; yet no purposed foe To you, whom I could pity thus forlorn, Though I unpitied: League with you I seek, And mutual amity, so strait, so close, That I with you must dwell, or you with me Henceforth; my dwelling haply may not please, Like this fair Paradise, your sense; yet such Accept your Maker's work; he gave it me, Which I as freely give: Hell shall unfold, To entertain you two, her widest gates, And send forth all her kings; there will be room, Not like these narrow limits, to receive Your numerous offspring; if no better place, Thank him who puts me loth to this revenge On you who wrong me not for him who wronged. And should I at your harmless innocence Melt, as I do, yet publick reason just, Honour and empire with revenge enlarged, By conquering this new world, compels me now To do what else, though damned, I should abhor. So spake the Fiend, and with necessity, The tyrant's plea, excused his devilish deeds. Then from his lofty stand on that high tree Down he alights among the sportful herd Of those four-footed kinds, himself now one, Now other, as their shape served best his end Nearer to view his prey, and, unespied, To mark what of their state he more might learn, By word or action marked. About them round A lion now he stalks with fiery glare; Then as a tiger, who by chance hath spied In some purlieu two gentle fawns at play, Straight couches close, then, rising, changes oft His couchant watch, as one who chose his ground, Whence rushing, he might surest seize them both, Griped in each paw: when, Adam first of men To first of women Eve thus moving speech, Turned him, all ear to hear new utterance flow. Sole partner, and sole part, of all these joys, Dearer thyself than all; needs must the Power That made us, and for us this ample world, Be infinitely good, and of his good As liberal and free as infinite; That raised us from the dust, and placed us here In all this happiness, who at his hand Have nothing merited, nor can perform Aught whereof he hath need; he who requires From us no other service than to keep This one, this easy charge, of all the trees In Paradise that bear delicious fruit So various, not to taste that only tree Of knowledge, planted by the tree of life; So near grows death to life, whate'er death is, Some dreadful thing no doubt; for well thou knowest God hath pronounced it death to taste that tree, The only sign of our obedience left, Among so many signs of power and rule Conferred upon us, and dominion given Over all other creatures that possess Earth, air, and sea. Then let us not think hard One easy prohibition, who enjoy Free leave so large to all things else, and choice Unlimited of manifold delights: But let us ever praise him, and extol His bounty, following our delightful task, To prune these growing plants, and tend these flowers, Which were it toilsome, yet with thee were sweet. To whom thus Eve replied. O thou for whom And from whom I was formed, flesh of thy flesh, And without whom am to no end, my guide And head! what thou hast said is just and right. For we to him indeed all praises owe, And daily thanks; I chiefly, who enjoy So far the happier lot, enjoying thee Pre-eminent by so much odds, while thou Like consort to thyself canst no where find. That day I oft remember, when from sleep I first awaked, and found myself reposed Under a shade on flowers, much wondering where And what I was, whence thither brought, and how. Not distant far from thence a murmuring sound Of waters issued from a cave, and spread Into a liquid plain, then stood unmoved Pure as the expanse of Heaven; I thither went With unexperienced thought, and laid me down On the green bank, to look into the clear Smooth lake, that to me seemed another sky. As I bent down to look, just opposite A shape within the watery gleam appeared, Bending to look on me: I started back, It started back; but pleased I soon returned, Pleased it returned as soon with answering looks Of sympathy and love: There I had fixed Mine eyes till now, and pined with vain desire, Had not a voice thus warned me; 'What thou seest, 'What there thou seest, fair Creature, is thyself; 'With thee it came and goes: but follow me, 'And I will bring thee where no shadow stays 'Thy coming, and thy soft embraces, he 'Whose image thou art; him thou shalt enjoy 'Inseparably thine, to him shalt bear 'Multitudes like thyself, and thence be called 'Mother of human race.' What could I do, But follow straight, invisibly thus led? Till I espied thee, fair indeed and tall, Under a platane; yet methought less fair, Less winning soft, less amiably mild, Than that smooth watery image: Back I turned; Thou following cryedst aloud, 'Return, fair Eve; 'Whom flyest thou? whom thou flyest, of him thou art, 'His flesh, his bone; to give thee being I lent 'Out of my side to thee, nearest my heart, 'Substantial life, to have thee by my side 'Henceforth an individual solace dear; 'Part of my soul I seek thee, and thee claim 'My other half:' With that thy gentle hand Seised mine: I yielded;and from that time see How beauty is excelled by manly grace, And wisdom, which alone is truly fair. So spake our general mother, and with eyes Of conjugal attraction unreproved, And meek surrender, half-embracing leaned On our first father; half her swelling breast Naked met his, under the flowing gold Of her loose tresses hid: he in delight Both of her beauty, and submissive charms, Smiled with superiour love, as Jupiter On Juno smiles, when he impregns the clouds That shed Mayflowers; and pressed her matron lip With kisses pure: Aside the Devil turned For envy; yet with jealous leer malign Eyed them askance, and to himself thus plained. Sight hateful, sight tormenting! thus these two, Imparadised in one another's arms, The happier Eden, shall enjoy their fill Of bliss on bliss; while I to Hell am thrust, Where neither joy nor love, but fierce desire, Among our other torments not the least, Still unfulfilled with pain of longing pines. Yet let me not forget what I have gained From their own mouths: All is not theirs, it seems; One fatal tree there stands, of knowledge called, Forbidden them to taste: Knowledge forbidden Suspicious, reasonless. Why should their Lord Envy them that? Can it be sin to know? Can it be death? And do they only stand By ignorance? Is that their happy state, The proof of their obedience and their faith? O fair foundation laid whereon to build Their ruin! hence I will excite their minds With more desire to know, and to reject Envious commands, invented with design To keep them low, whom knowledge might exalt Equal with Gods: aspiring to be such, They taste and die: What likelier can ensue But first with narrow search I must walk round This garden, and no corner leave unspied; A chance but chance may lead where I may meet Some wandering Spirit of Heaven by fountain side, Or in thick shade retired, from him to draw What further would be learned. Live while ye may, Yet happy pair; enjoy, till I return, Short pleasures, for long woes are to succeed! So saying, his proud step he scornful turned, But with sly circumspection, and began Through wood, through waste, o'er hill, o'er dale, his roam Mean while in utmost longitude, where Heaven With earth and ocean meets, the setting sun Slowly descended, and with right aspect Against the eastern gate of Paradise Levelled his evening rays: It was a rock Of alabaster, piled up to the clouds, Conspicuous far, winding with one ascent Accessible from earth, one entrance high; The rest was craggy cliff, that overhung Still as it rose, impossible to climb. Betwixt these rocky pillars Gabriel sat, Chief of the angelick guards, awaiting night; About him exercised heroick games The unarmed youth of Heaven, but nigh at hand Celestial armoury, shields, helms, and spears, Hung high with diamond flaming, and with gold. Thither came Uriel, gliding through the even On a sun-beam, swift as a shooting star In autumn thwarts the night, when vapours fired Impress the air, and shows the mariner From what point of his compass to beware Impetuous winds: He thus began in haste. Gabriel, to thee thy course by lot hath given Charge and strict watch, that to this happy place No evil thing approach or enter in. This day at highth of noon came to my sphere A Spirit, zealous, as he seemed, to know More of the Almighty's works, and chiefly Man, God's latest image: I described his way Bent all on speed, and marked his aery gait; But in the mount that lies from Eden north, Where he first lighted, soon discerned his looks Alien from Heaven, with passions foul obscured: Mine eye pursued him still, but under shade Lost sight of him: One of the banished crew, I fear, hath ventured from the deep, to raise New troubles; him thy care must be to find. To whom the winged warriour thus returned. Uriel, no wonder if thy perfect sight, Amid the sun's bright circle where thou sitst, See far and wide: In at this gate none pass The vigilance here placed, but such as come Well known from Heaven; and since meridian hour No creature thence: If Spirit of other sort, So minded, have o'er-leaped these earthly bounds On purpose, hard thou knowest it to exclude Spiritual substance with corporeal bar. But if within the circuit of these walks, In whatsoever shape he lurk, of whom Thou tellest, by morrow dawning I shall know. So promised he; and Uriel to his charge Returned on that bright beam, whose point now raised Bore him slope downward to the sun now fallen Beneath the Azores; whether the prime orb, Incredible how swift, had thither rolled Diurnal, or this less volubil earth, By shorter flight to the east, had left him there Arraying with reflected purple and gold The clouds that on his western throne attend. Now came still Evening on, and Twilight gray Had in her sober livery all things clad; Silence accompanied; for beast and bird, They to their grassy couch, these to their nests Were slunk, all but the wakeful nightingale; She all night long her amorous descant sung; Silence was pleased: Now glowed the firmament With living sapphires: Hesperus, that led The starry host, rode brightest, till the moon, Rising in clouded majesty, at length Apparent queen unveiled her peerless light, And o'er the dark her silver mantle threw. When Adam thus to Eve. Fair Consort, the hour Of night, and all things now retired to rest, Mind us of like repose; since God hath set Labour and rest, as day and night, to men Successive; and the timely dew of sleep, Now falling with soft slumbrous weight, inclines Our eye-lids: Other creatures all day long Rove idle, unemployed, and less need rest; Man hath his daily work of body or mind Appointed, which declares his dignity, And the regard of Heaven on all his ways; While other animals unactive range, And of their doings God takes no account. To-morrow, ere fresh morning streak the east With first approach of light, we must be risen, And at our pleasant labour, to reform Yon flowery arbours, yonder alleys green, Our walk at noon, with branches overgrown, That mock our scant manuring, and require More hands than ours to lop their wanton growth: Those blossoms also, and those dropping gums, That lie bestrown, unsightly and unsmooth, Ask riddance, if we mean to tread with ease; Mean while, as Nature wills, night bids us rest. To whom thus Eve, with perfect beauty adorned My Author and Disposer, what thou bidst Unargued I obey: So God ordains; God is thy law, thou mine: To know no more Is woman's happiest knowledge, and her praise. With thee conversing I forget all time; All seasons, and their change, all please alike. Sweet is the breath of Morn, her rising sweet, With charm of earliest birds: pleasant the sun, When first on this delightful land he spreads His orient beams, on herb, tree, fruit, and flower, Glistering with dew; fragrant the fertile earth After soft showers; and sweet the coming on Of grateful Evening mild; then silent Night, With this her solemn bird, and this fair moon, And these the gems of Heaven, her starry train: But neither breath of Morn, when she ascends With charm of earliest birds; nor rising sun On this delightful land; nor herb, fruit, flower, Glistering with dew; nor fragrance after showers; Nor grateful Evening mild; nor silent Night, With this her solemn bird, nor walk by moon, Or glittering star-light, without thee is sweet. But wherefore all night long shine these? for whom This glorious sight, when sleep hath shut all eyes? To whom our general ancestor replied. Daughter of God and Man, accomplished Eve, These have their course to finish round the earth, By morrow evening, and from land to land In order, though to nations yet unborn, Ministring light prepared, they set and rise; Lest total Darkness should by night regain Her old possession, and extinguish life In Nature and all things; which these soft fires Not only enlighten, but with kindly heat Of various influence foment and warm, Temper or nourish, or in part shed down Their stellar virtue on all kinds that grow On earth, made hereby apter to receive Perfection from the sun's more potent ray. These then, though unbeheld in deep of night, Shine not in vain; nor think, though men were none, That Heaven would want spectators, God want praise: Millions of spiritual creatures walk the earth Unseen, both when we wake, and when we sleep: All these with ceaseless praise his works behold Both day and night: How often from the steep Of echoing hill or thicket have we heard Celestial voices to the midnight air, Sole, or responsive each to others note, Singing their great Creator? oft in bands While they keep watch, or nightly rounding walk, With heavenly touch of instrumental sounds In full harmonick number joined, their songs Divide the night, and lift our thoughts to Heaven. Thus talking, hand in hand alone they passed On to their blissful bower: it was a place Chosen by the sovran Planter, when he framed All things to Man's delightful use; the roof Of thickest covert was inwoven shade Laurel and myrtle, and what higher grew Of firm and fragrant leaf; on either side Acanthus, and each odorous bushy shrub, Fenced up the verdant wall; each beauteous flower, Iris all hues, roses, and jessamin, Reared high their flourished heads between, and wrought Mosaick; underfoot the violet, Crocus, and hyacinth, with rich inlay Broidered the ground, more coloured than with stone Of costliest emblem: Other creature here, Bird, beast, insect, or worm, durst enter none, Such was their awe of Man. In shadier bower More sacred and sequestered, though but feigned, Pan or Sylvanus never slept, nor Nymph Nor Faunus haunted. Here, in close recess, With flowers, garlands, and sweet-smelling herbs, Espoused Eve decked first her nuptial bed; And heavenly quires the hymenaean sung, What day the genial Angel to our sire Brought her in naked beauty more adorned, More lovely, than Pandora, whom the Gods Endowed with all their gifts, and O! too like In sad event, when to the unwiser son Of Japhet brought by Hermes, she ensnared Mankind with her fair looks, to be avenged On him who had stole Jove's authentick fire. Thus, at their shady lodge arrived, both stood, Both turned, and under open sky adored The God that made both sky, air, earth, and heaven, Which they beheld, the moon's resplendent globe, And starry pole: Thou also madest the night, Maker Omnipotent, and thou the day, Which we, in our appointed work employed, Have finished, happy in our mutual help And mutual love, the crown of all our bliss Ordained by thee; and this delicious place For us too large, where thy abundance wants Partakers, and uncropt falls to the ground. But thou hast promised from us two a race To fill the earth, who shall with us extol Thy goodness infinite, both when we wake, And when we seek, as now, thy gift of sleep. This said unanimous, and other rites Observing none, but adoration pure Which God likes best, into their inmost bower Handed they went; and, eased the putting off These troublesome disguises which we wear, Straight side by side were laid; nor turned, I ween, Adam from his fair spouse, nor Eve the rites Mysterious of connubial love refused: Whatever hypocrites austerely talk Of purity, and place, and innocence, Defaming as impure what God declares Pure, and commands to some, leaves free to all. Our Maker bids encrease; who bids abstain But our Destroyer, foe to God and Man? Hail, wedded Love, mysterious law, true source Of human offspring, sole propriety In Paradise of all things common else! By thee adulterous Lust was driven from men Among the bestial herds to range; by thee Founded in reason, loyal, just, and pure, Relations dear, and all the charities Of father, son, and brother, first were known. Far be it, that I should write thee sin or blame, Or think thee unbefitting holiest place, Perpetual fountain of domestick sweets, Whose bed is undefiled and chaste pronounced, Present, or past, as saints and patriarchs used. Here Love his golden shafts employs, here lights His constant lamp, and waves his purple wings, Reigns here and revels; not in the bought smile Of harlots, loveless, joyless, unendeared, Casual fruition; nor in court-amours, Mixed dance, or wanton mask, or midnight ball, Or serenate, which the starved lover sings To his proud fair, best quitted with disdain. These, lulled by nightingales, embracing slept, And on their naked limbs the flowery roof Showered roses, which the morn repaired. Sleep on, Blest pair; and O!yet happiest, if ye seek No happier state, and know to know no more. Now had night measured with her shadowy cone Half way up hill this vast sublunar vault, And from their ivory port the Cherubim, Forth issuing at the accustomed hour, stood armed To their night watches in warlike parade; When Gabriel to his next in power thus spake. Uzziel, half these draw off, and coast the south With strictest watch; these other wheel the north; Our circuit meets full west. As flame they part, Half wheeling to the shield, half to the spear. From these, two strong and subtle Spirits he called That near him stood, and gave them thus in charge. Ithuriel and Zephon, with winged speed Search through this garden, leave unsearched no nook; But chiefly where those two fair creatures lodge, Now laid perhaps asleep, secure of harm. This evening from the sun's decline arrived, Who tells of some infernal Spirit seen Hitherward bent (who could have thought?) escaped The bars of Hell, on errand bad no doubt: Such, where ye find, seise fast, and hither bring. So saying, on he led his radiant files, Dazzling the moon; these to the bower direct In search of whom they sought: Him there they found Squat like a toad, close at the ear of Eve, Assaying by his devilish art to reach The organs of her fancy, and with them forge Illusions, as he list, phantasms and dreams; Or if, inspiring venom, he might taint The animal spirits, that from pure blood arise Like gentle breaths from rivers pure, thence raise At least distempered, discontented thoughts, Vain hopes, vain aims, inordinate desires, Blown up with high conceits ingendering pride. Him thus intent Ithuriel with his spear Touched lightly; for no falshood can endure Touch of celestial temper, but returns Of force to its own likeness: Up he starts Discovered and surprised. As when a spark Lights on a heap of nitrous powder, laid Fit for the tun some magazine to store Against a rumoured war, the smutty grain, With sudden blaze diffused, inflames the air; So started up in his own shape the Fiend. Back stept those two fair Angels, half amazed So sudden to behold the grisly king; Yet thus, unmoved with fear, accost him soon. Which of those rebel Spirits adjudged to Hell Comest thou, escaped thy prison? and, transformed, Why sat'st thou like an enemy in wait, Here watching at the head of these that sleep? Know ye not then said Satan, filled with scorn, Know ye not me? ye knew me once no mate For you, there sitting where ye durst not soar: Not to know me argues yourselves unknown, The lowest of your throng; or, if ye know, Why ask ye, and superfluous begin Your message, like to end as much in vain? To whom thus Zephon, answering scorn with scorn. Think not, revolted Spirit, thy shape the same, Or undiminished brightness to be known, As when thou stoodest in Heaven upright and pure; That glory then, when thou no more wast good, Departed from thee; and thou resemblest now Thy sin and place of doom obscure and foul. But come, for thou, be sure, shalt give account To him who sent us, whose charge is to keep This place inviolable, and these from harm. So spake the Cherub; and his grave rebuke, Severe in youthful beauty, added grace Invincible: Abashed the Devil stood, And felt how awful goodness is, and saw Virtue in her shape how lovely; saw, and pined His loss; but chiefly to find here observed His lustre visibly impaired; yet seemed Undaunted. If I must contend, said he, Best with the best, the sender, not the sent, Or all at once; more glory will be won, Or less be lost. Thy fear, said Zephon bold, Will save us trial what the least can do Single against thee wicked, and thence weak. The Fiend replied not, overcome with rage; But, like a proud steed reined, went haughty on, Champing his iron curb: To strive or fly He held it vain; awe from above had quelled His heart, not else dismayed. Now drew they nigh The western point, where those half-rounding guards Just met, and closing stood in squadron joined, A waiting next command. To whom their Chief, Gabriel, from the front thus called aloud. O friends! I hear the tread of nimble feet Hasting this way, and now by glimpse discern Ithuriel and Zephon through the shade; And with them comes a third of regal port, But faded splendour wan; who by his gait And fierce demeanour seems the Prince of Hell, Not likely to part hence without contest; Stand firm, for in his look defiance lours. He scarce had ended, when those two approached, And brief related whom they brought, where found, How busied, in what form and posture couched. To whom with stern regard thus Gabriel spake. Why hast thou, Satan, broke the bounds prescribed To thy transgressions, and disturbed the charge Of others, who approve not to transgress By thy example, but have power and right To question thy bold entrance on this place; Employed, it seems, to violate sleep, and those Whose dwelling God hath planted here in bliss! To whom thus Satan with contemptuous brow. Gabriel? thou hadst in Heaven the esteem of wise, And such I held thee; but this question asked Puts me in doubt. Lives there who loves his pain! Who would not, finding way, break loose from Hell, Though thither doomed! Thou wouldst thyself, no doubt And boldly venture to whatever place Farthest from pain, where thou mightst hope to change Torment with ease, and soonest recompense Dole with delight, which in this place I sought; To thee no reason, who knowest only good, But evil hast not tried: and wilt object His will who bounds us! Let him surer bar His iron gates, if he intends our stay In that dark durance: Thus much what was asked. The rest is true, they found me where they say; But that implies not violence or harm. Thus he in scorn. The warlike Angel moved, Disdainfully half smiling, thus replied. O loss of one in Heaven to judge of wise Since Satan fell, whom folly overthrew, And now returns him from his prison 'scaped, Gravely in doubt whether to hold them wise Or not, who ask what boldness brought him hither Unlicensed from his bounds in Hell prescribed; So wise he judges it to fly from pain However, and to 'scape his punishment! So judge thou still, presumptuous! till the wrath, Which thou incurrest by flying, meet thy flight Sevenfold, and scourge that wisdom back to Hell, Which taught thee yet no better, that no pain Can equal anger infinite provoked. But wherefore thou alone? wherefore with thee Came not all hell broke loose? or thou than they Less hardy to endure? Courageous Chief! The first in flight from pain! hadst thou alleged To thy deserted host this cause of flight, Thou surely hadst not come sole fugitive. To which the Fiend thus answered, frowning stern. Not that I less endure, or shrink from pain, Insulting Angel! well thou knowest I stood Thy fiercest, when in battle to thy aid The blasting vollied thunder made all speed, And seconded thy else not dreaded spear. But still thy words at random, as before, Argue thy inexperience what behoves From hard assays and ill successes past A faithful leader, not to hazard all Through ways of danger by himself untried: I, therefore, I alone first undertook To wing the desolate abyss, and spy This new created world, whereof in Hell Fame is not silent, here in hope to find Better abode, and my afflicted Powers To settle here on earth, or in mid air; Though for possession put to try once more What thou and thy gay legions dare against; Whose easier business were to serve their Lord High up in Heaven, with songs to hymn his throne, And practised distances to cringe, not fight, To whom the warriour Angel soon replied. To say and straight unsay, pretending first Wise to fly pain, professing next the spy, Argues no leader but a liear traced, Satan, and couldst thou faithful add? O name, O sacred name of faithfulness profaned! Faithful to whom? to thy rebellious crew? Army of Fiends, fit body to fit head. Was this your discipline and faith engaged, Your military obedience, to dissolve Allegiance to the acknowledged Power supreme? And thou, sly hypocrite, who now wouldst seem Patron of liberty, who more than thou Once fawned, and cringed, and servily adored Heaven's awful Monarch? wherefore, but in hope To dispossess him, and thyself to reign? But mark what I arreed thee now, Avant; Fly neither whence thou fledst! If from this hour Within these hallowed limits thou appear, Back to the infernal pit I drag thee chained, And seal thee so, as henceforth not to scorn The facile gates of Hell too slightly barred. So threatened he; but Satan to no threats Gave heed, but waxing more in rage replied. Then when I am thy captive talk of chains, Proud limitary Cherub! but ere then Far heavier load thyself expect to feel From my prevailing arm, though Heaven's King Ride on thy wings, and thou with thy compeers, Us'd to the yoke, drawest his triumphant wheels In progress through the road of Heaven star-paved. While thus he spake, the angelick squadron bright Turned fiery red, sharpening in mooned horns Their phalanx, and began to hem him round With ported spears, as thick as when a field Of Ceres ripe for harvest waving bends Her bearded grove of ears, which way the wind Sways them; the careful plowman doubting stands, Left on the threshing floor his hopeless sheaves Prove chaff. On the other side, Satan, alarmed, Collecting all his might, dilated stood, Like Teneriff or Atlas, unremoved: His stature reached the sky, and on his crest Sat Horrour plumed; nor wanted in his grasp What seemed both spear and shield: Now dreadful deeds Might have ensued, nor only Paradise In this commotion, but the starry cope Of Heaven perhaps, or all the elements At least had gone to wrack, disturbed and torn With violence of this conflict, had not soon The Eternal, to prevent such horrid fray, Hung forth in Heaven his golden scales, yet seen Betwixt Astrea and the Scorpion sign, Wherein all things created first he weighed, The pendulous round earth with balanced air In counterpoise, now ponders all events, Battles and realms: In these he put two weights, The sequel each of parting and of fight: The latter quick up flew, and kicked the beam, Which Gabriel spying, thus bespake the Fiend. Satan, I know thy strength, and thou knowest mine; Neither our own, but given: What folly then To boast what arms can do? since thine no more Than Heaven permits, nor mine, though doubled now To trample thee as mire: For proof look up, And read thy lot in yon celestial sign; Where thou art weighed, and shown how light, how weak, If thou resist. The Fiend looked up, and knew His mounted scale aloft: Nor more;but fled Murmuring, and with him fled the shades of night. Book V Now Morn, her rosy steps in the eastern clime Advancing, sowed the earth with orient pearl, When Adam waked, so customed; for his sleep Was aery-light, from pure digestion bred, And temperate vapours bland, which the only sound Of leaves and fuming rills, Aurora's fan, Lightly dispersed, and the shrill matin song Of birds on every bough; so much the more His wonder was to find unwakened Eve With tresses discomposed, and glowing cheek, As through unquiet rest: He, on his side Leaning half raised, with looks of cordial love Hung over her enamoured, and beheld Beauty, which, whether waking or asleep, Shot forth peculiar graces; then with voice Mild, as when Zephyrus on Flora breathes, Her hand soft touching, whispered thus. Awake, My fairest, my espoused, my latest found, Heaven's last best gift, my ever new delight! Awake: The morning shines, and the fresh field Calls us; we lose the prime, to mark how spring Our tender plants, how blows the citron grove, What drops the myrrh, and what the balmy reed, How nature paints her colours, how the bee Sits on the bloom extracting liquid sweet. Such whispering waked her, but with startled eye On Adam, whom embracing, thus she spake. O sole in whom my thoughts find all repose, My glory, my perfection! glad I see Thy face, and morn returned; for I this night (Such night till this I never passed) have dreamed, If dreamed, not, as I oft am wont, of thee, Works of day past, or morrow's next design, But of offence and trouble, which my mind Knew never till this irksome night: Methought, Close at mine ear one called me forth to walk With gentle voice; I thought it thine: It said, 'Why sleepest thou, Eve? now is the pleasant time, 'The cool, the silent, save where silence yields 'To the night-warbling bird, that now awake 'Tunes sweetest his love-laboured song; now reigns 'Full-orbed the moon, and with more pleasing light 'Shadowy sets off the face of things; in vain, 'If none regard; Heaven wakes with all his eyes, 'Whom to behold but thee, Nature's desire? 'In whose sight all things joy, with ravishment 'Attracted by thy beauty still to gaze.' I rose as at thy call, but found thee not; To find thee I directed then my walk; And on, methought, alone I passed through ways That brought me on a sudden to the tree Of interdicted knowledge: fair it seemed, Much fairer to my fancy than by day: And, as I wondering looked, beside it stood One shaped and winged like one of those from Heaven By us oft seen; his dewy locks distilled Ambrosia; on that tree he also gazed; And 'O fair plant,' said he, 'with fruit surcharged, 'Deigns none to ease thy load, and taste thy sweet, 'Nor God, nor Man? Is knowledge so despised? 'Or envy, or what reserve forbids to taste? 'Forbid who will, none shall from me withhold 'Longer thy offered good; why else set here? This said, he paused not, but with venturous arm He plucked, he tasted; me damp horrour chilled At such bold words vouched with a deed so bold: But he thus, overjoyed; 'O fruit divine, 'Sweet of thyself, but much more sweet thus cropt, 'Forbidden here, it seems, as only fit 'For Gods, yet able to make Gods of Men: 'And why not Gods of Men; since good, the more 'Communicated, more abundant grows, 'The author not impaired, but honoured more? 'Here, happy creature, fair angelick Eve! 'Partake thou also; happy though thou art, 'Happier thou mayest be, worthier canst not be: 'Taste this, and be henceforth among the Gods 'Thyself a Goddess, not to earth confined, 'But sometimes in the air, as we, sometimes 'Ascend to Heaven, by merit thine, and see 'What life the Gods live there, and such live thou!' So saying, he drew nigh, and to me held, Even to my mouth of that same fruit held part Which he had plucked; the pleasant savoury smell So quickened appetite, that I, methought, Could not but taste. Forthwith up to the clouds With him I flew, and underneath beheld The earth outstretched immense, a prospect wide And various: Wondering at my flight and change To this high exaltation; suddenly My guide was gone, and I, methought, sunk down, And fell asleep; but O, how glad I waked To find this but a dream! Thus Eve her night Related, and thus Adam answered sad. Best image of myself, and dearer half, The trouble of thy thoughts this night in sleep Affects me equally; nor can I like This uncouth dream, of evil sprung, I fear; Yet evil whence? in thee can harbour none, Created pure. But know that in the soul Are many lesser faculties, that serve Reason as chief; among these Fancy next Her office holds; of all external things Which the five watchful senses represent, She forms imaginations, aery shapes, Which Reason, joining or disjoining, frames All what we affirm or what deny, and call Our knowledge or opinion; then retires Into her private cell, when nature rests. Oft in her absence mimick Fancy wakes To imitate her; but, misjoining shapes, Wild work produces oft, and most in dreams; Ill matching words and deeds long past or late. Some such resemblances, methinks, I find Of our last evening's talk, in this thy dream, But with addition strange; yet be not sad. Evil into the mind of God or Man May come and go, so unreproved, and leave No spot or blame behind: Which gives me hope That what in sleep thou didst abhor to dream, Waking thou never will consent to do. Be not disheartened then, nor cloud those looks, That wont to be more cheerful and serene, Than when fair morning first smiles on the world; And let us to our fresh employments rise Among the groves, the fountains, and the flowers That open now their choisest bosomed smells, Reserved from night, and kept for thee in store. So cheered he his fair spouse, and she was cheered; But silently a gentle tear let fall From either eye, and wiped them with her hair; Two other precious drops that ready stood, Each in their crystal sluice, he ere they fell Kissed, as the gracious signs of sweet remorse And pious awe, that feared to have offended. So all was cleared, and to the field they haste. But first, from under shady arborous roof Soon as they forth were come to open sight Of day-spring, and the sun, who, scarce up-risen, With wheels yet hovering o'er the ocean-brim, Shot parallel to the earth his dewy ray, Discovering in wide landskip all the east Of Paradise and Eden's happy plains, Lowly they bowed adoring, and began Their orisons, each morning duly paid In various style; for neither various style Nor holy rapture wanted they to praise Their Maker, in fit strains pronounced, or sung Unmeditated; such prompt eloquence Flowed from their lips, in prose or numerous verse, More tuneable than needed lute or harp To add more sweetness; and they thus began. These are thy glorious works, Parent of good, Almighty! Thine this universal frame, Thus wonderous fair; Thyself how wonderous then! Unspeakable, who sitst above these heavens To us invisible, or dimly seen In these thy lowest works; yet these declare Thy goodness beyond thought, and power divine. Speak, ye who best can tell, ye sons of light, Angels; for ye behold him, and with songs And choral symphonies, day without night, Circle his throne rejoicing; ye in Heaven On Earth join all ye Creatures to extol Him first, him last, him midst, and without end. Fairest of stars, last in the train of night, If better thou belong not to the dawn, Sure pledge of day, that crownest the smiling morn With thy bright circlet, praise him in thy sphere, While day arises, that sweet hour of prime. Thou Sun, of this great world both eye and soul, Acknowledge him thy greater; sound his praise In thy eternal course, both when thou climbest, And when high noon hast gained, and when thou fallest. Moon, that now meetest the orient sun, now flyest, With the fixed Stars, fixed in their orb that flies; And ye five other wandering Fires, that move In mystick dance not without song, resound His praise, who out of darkness called up light. Air, and ye Elements, the eldest birth Of Nature's womb, that in quaternion run Perpetual circle, multiform; and mix And nourish all things; let your ceaseless change Vary to our great Maker still new praise. Ye Mists and Exhalations, that now rise From hill or steaming lake, dusky or gray, Till the sun paint your fleecy skirts with gold, In honour to the world's great Author rise; Whether to deck with clouds the uncoloured sky, Or wet the thirsty earth with falling showers, Rising or falling still advance his praise. His praise, ye Winds, that from four quarters blow, Breathe soft or loud; and, wave your tops, ye Pines, With every plant, in sign of worship wave. Fountains, and ye that warble, as ye flow, Melodious murmurs, warbling tune his praise. Join voices, all ye living Souls: Ye Birds, That singing up to Heaven-gate ascend, Bear on your wings and in your notes his praise. Ye that in waters glide, and ye that walk The earth, and stately tread, or lowly creep; Witness if I be silent, morn or even, To hill, or valley, fountain, or fresh shade, Made vocal by my song, and taught his praise. Hail, universal Lord, be bounteous still To give us only good; and if the night Have gathered aught of evil, or concealed, Disperse it, as now light dispels the dark! So prayed they innocent, and to their thoughts Firm peace recovered soon, and wonted calm. On to their morning's rural work they haste, Among sweet dews and flowers; where any row Of fruit-trees over-woody reached too far Their pampered boughs, and needed hands to check Fruitless embraces: or they led the vine To wed her elm; she, spoused, about him twines Her marriageable arms, and with him brings Her dower, the adopted clusters, to adorn His barren leaves. Them thus employed beheld With pity Heaven's high King, and to him called Raphael, the sociable Spirit, that deigned To travel with Tobias, and secured His marriage with the seventimes-wedded maid. Raphael, said he, thou hearest what stir on Earth Satan, from Hell 'scaped through the darksome gulf, Hath raised in Paradise; and how disturbed This night the human pair; how he designs In them at once to ruin all mankind. Go therefore, half this day as friend with friend Converse with Adam, in what bower or shade Thou findest him from the heat of noon retired, To respite his day-labour with repast, Or with repose; and such discourse bring on, As may advise him of his happy state, Happiness in his power left free to will, Left to his own free will, his will though free, Yet mutable; whence warn him to beware He swerve not, too secure: Tell him withal His danger, and from whom; what enemy, Late fallen himself from Heaven, is plotting now The fall of others from like state of bliss; By violence? no, for that shall be withstood; But by deceit and lies: This let him know, Lest, wilfully transgressing, he pretend Surprisal, unadmonished, unforewarned. So spake the Eternal Father, and fulfilled All justice: Nor delayed the winged Saint After his charge received; but from among Thousand celestial Ardours, where he stood Veiled with his gorgeous wings, up springing light, Flew through the midst of Heaven; the angelick quires, On each hand parting, to his speed gave way Through all the empyreal road; till, at the gate Of Heaven arrived, the gate self-opened wide On golden hinges turning, as by work Divine the sovran Architect had framed. From hence no cloud, or, to obstruct his sight, Star interposed, however small he sees, Not unconformed to other shining globes, Earth, and the garden of God, with cedars crowned Above all hills. As when by night the glass Of Galileo, less assured, observes Imagined lands and regions in the moon: Or pilot, from amidst the Cyclades Delos or Samos first appearing, kens A cloudy spot. Down thither prone in flight He speeds, and through the vast ethereal sky Sails between worlds and worlds, with steady wing Now on the polar winds, then with quick fan Winnows the buxom air; till, within soar Of towering eagles, to all the fowls he seems A phoenix, gazed by all as that sole bird, When, to enshrine his reliques in the Sun's Bright temple, to Egyptian Thebes he flies. At once on the eastern cliff of Paradise He lights, and to his proper shape returns A Seraph winged: Six wings he wore, to shade His lineaments divine; the pair that clad Each shoulder broad, came mantling o'er his breast With regal ornament; the middle pair Girt like a starry zone his waist, and round Skirted his loins and thighs with downy gold And colours dipt in Heaven; the third his feet Shadowed from either heel with feathered mail, Sky-tinctured grain. Like Maia's son he stood, And shook his plumes, that heavenly fragrance filled The circuit wide. Straight knew him all the bands Of Angels under watch; and to his state, And to his message high, in honour rise; For on some message high they guessed him bound. Their glittering tents he passed, and now is come Into the blissful field, through groves of myrrh, And flowering odours, cassia, nard, and balm; A wilderness of sweets; for Nature here Wantoned as in her prime, and played at will Her virgin fancies pouring forth more sweet, Wild above rule or art, enormous bliss. Him through the spicy forest onward come Adam discerned, as in the door he sat Of his cool bower, while now the mounted sun Shot down direct his fervid rays to warm Earth's inmost womb, more warmth than Adam needs: And Eve within, due at her hour prepared For dinner savoury fruits, of taste to please True appetite, and not disrelish thirst Of nectarous draughts between, from milky stream, Berry or grape: To whom thus Adam called. Haste hither, Eve, and worth thy sight behold Eastward among those trees, what glorious shape Comes this way moving; seems another morn Risen on mid-noon; some great behest from Heaven To us perhaps he brings, and will vouchsafe This day to be our guest. But go with speed, And, what thy stores contain, bring forth, and pour Abundance, fit to honour and receive Our heavenly stranger: Well we may afford Our givers their own gifts, and large bestow From large bestowed, where Nature multiplies Her fertile growth, and by disburthening grows More fruitful, which instructs us not to spare. To whom thus Eve. Adam, earth's hallowed mould, Of God inspired! small store will serve, where store, All seasons, ripe for use hangs on the stalk; Save what by frugal storing firmness gains To nourish, and superfluous moist consumes: But I will haste, and from each bough and brake, Each plant and juciest gourd, will pluck such choice To entertain our Angel-guest, as he Beholding shall confess, that here on Earth God hath dispensed his bounties as in Heaven. So saying, with dispatchful looks in haste She turns, on hospitable thoughts intent What choice to choose for delicacy best, What order, so contrived as not to mix Tastes, not well joined, inelegant, but bring Taste after taste upheld with kindliest change; Bestirs her then, and from each tender stalk Whatever Earth, all-bearing mother, yields In India East or West, or middle shore In Pontus or the Punick coast, or where Alcinous reigned, fruit of all kinds, in coat Rough, or smooth rind, or bearded husk, or shell, She gathers, tribute large, and on the board Heaps with unsparing hand; for drink the grape She crushes, inoffensive must, and meaths From many a berry, and from sweet kernels pressed She tempers dulcet creams; nor these to hold Wants her fit vessels pure; then strows the ground With rose and odours from the shrub unfumed. Mean while our primitive great sire, to meet His God-like guest, walks forth, without more train Accompanied than with his own complete Perfections; in himself was all his state, More solemn than the tedious pomp that waits On princes, when their rich retinue long Of horses led, and grooms besmeared with gold, Dazzles the croud, and sets them all agape. Nearer his presence Adam, though not awed, Yet with submiss approach and reverence meek, As to a superiour nature bowing low, Thus said. Native of Heaven, for other place None can than Heaven such glorious shape contain; Since, by descending from the thrones above, Those happy places thou hast deigned a while To want, and honour these, vouchsafe with us Two only, who yet by sovran gift possess This spacious ground, in yonder shady bower To rest; and what the garden choicest bears To sit and taste, till this meridian heat Be over, and the sun more cool decline. Whom thus the angelick Virtue answered mild. Adam, I therefore came; nor art thou such Created, or such place hast here to dwell, As may not oft invite, though Spirits of Heaven, To visit thee; lead on then where thy bower O'ershades; for these mid-hours, till evening rise, I have at will. So to the sylvan lodge They came, that like Pomona's arbour smiled, With flowerets decked, and fragrant smells; but Eve, Undecked save with herself, more lovely fair Than Wood-Nymph, or the fairest Goddess feigned Of three that in mount Ida naked strove, Stood to entertain her guest from Heaven; no veil She needed, virtue-proof; no thought infirm Altered her cheek. On whom the Angel Hail Bestowed, the holy salutation used Long after to blest Mary, second Eve. Hail, Mother of Mankind, whose fruitful womb Shall fill the world more numerous with thy sons, Than with these various fruits the trees of God Have heaped this table!--Raised of grassy turf Their table was, and mossy seats had round, And on her ample square from side to side All autumn piled, though spring and autumn here Danced hand in hand. A while discourse they hold; No fear lest dinner cool; when thus began Our author. Heavenly stranger, please to taste These bounties, which our Nourisher, from whom All perfect good, unmeasured out, descends, To us for food and for delight hath caused The earth to yield; unsavoury food perhaps To spiritual natures; only this I know, That one celestial Father gives to all. To whom the Angel. Therefore what he gives (Whose praise be ever sung) to Man in part Spiritual, may of purest Spirits be found No ingrateful food: And food alike those pure Intelligential substances require, As doth your rational; and both contain Within them every lower faculty Of sense, whereby they hear, see, smell, touch, taste, Tasting concoct, digest, assimilate, And corporeal to incorporeal turn. For know, whatever was created, needs To be sustained and fed: Of elements The grosser feeds the purer, earth the sea, Earth and the sea feed air, the air those fires Ethereal, and as lowest first the moon; Whence in her visage round those spots, unpurged Vapours not yet into her substance turned. Nor doth the moon no nourishment exhale From her moist continent to higher orbs. The sun that light imparts to all, receives From all his alimental recompence In humid exhalations, and at even Sups with the ocean. Though in Heaven the trees Of life ambrosial fruitage bear, and vines Yield nectar; though from off the boughs each morn We brush mellifluous dews, and find the ground Covered with pearly grain: Yet God hath here Varied his bounty so with new delights, As may compare with Heaven; and to taste Think not I shall be nice. So down they sat, And to their viands fell; nor seemingly The Angel, nor in mist, the common gloss Of Theologians; but with keen dispatch Of real hunger, and concoctive heat To transubstantiate: What redounds, transpires Through Spirits with ease; nor wonder;if by fire Of sooty coal the empirick alchemist Can turn, or holds it possible to turn, Metals of drossiest ore to perfect gold, As from the mine. Mean while at table Eve Ministered naked, and their flowing cups With pleasant liquours crowned: O innocence Deserving Paradise! if ever, then, Then had the sons of God excuse to have been Enamoured at that sight; but in those hearts Love unlibidinous reigned, nor jealousy Was understood, the injured lover's hell. Thus when with meats and drinks they had sufficed, Not burdened nature, sudden mind arose In Adam, not to let the occasion pass Given him by this great conference to know Of things above his world, and of their being Who dwell in Heaven, whose excellence he saw Transcend his own so far; whose radiant forms, Divine effulgence, whose high power, so far Exceeded human; and his wary speech Thus to the empyreal minister he framed. Inhabitant with God, now know I well Thy favour, in this honour done to Man; Under whose lowly roof thou hast vouchsafed To enter, and these earthly fruits to taste, Food not of Angels, yet accepted so, As that more willingly thou couldst not seem At Heaven's high feasts to have fed: yet what compare To whom the winged Hierarch replied. O Adam, One Almighty is, from whom All things proceed, and up to him return, If not depraved from good, created all Such to perfection, one first matter all, Endued with various forms, various degrees Of substance, and, in things that live, of life; But more refined, more spiritous, and pure, As nearer to him placed, or nearer tending Each in their several active spheres assigned, Till body up to spirit work, in bounds Proportioned to each kind. So from the root Springs lighter the green stalk, from thence the leaves More aery, last the bright consummate flower Spirits odorous breathes: flowers and their fruit, Man's nourishment, by gradual scale sublimed, To vital spirits aspire, to animal, To intellectual; give both life and sense, Fancy and understanding; whence the soul Reason receives, and reason is her being, Discursive, or intuitive; discourse Is oftest yours, the latter most is ours, Differing but in degree, of kind the same. Wonder not then, what God for you saw good If I refuse not, but convert, as you To proper substance. Time may come, when Men With Angels may participate, and find No inconvenient diet, nor too light fare; And from these corporal nutriments perhaps Your bodies may at last turn all to spirit, Improved by tract of time, and, winged, ascend Ethereal, as we; or may, at choice, Here or in heavenly Paradises dwell; If ye be found obedient, and retain Unalterably firm his love entire, Whose progeny you are. Mean while enjoy Your fill what happiness this happy state Can comprehend, incapable of more. To whom the patriarch of mankind replied. O favourable Spirit, propitious guest, Well hast thou taught the way that might direct Our knowledge, and the scale of nature set From center to circumference; whereon, In contemplation of created things, By steps we may ascend to God. But say, What meant that caution joined, If ye be found Obedient? Can we want obedience then To him, or possibly his love desert, Who formed us from the dust and placed us here Full to the utmost measure of what bliss Human desires can seek or apprehend? To whom the Angel. Son of Heaven and Earth, Attend! That thou art happy, owe to God; That thou continuest such, owe to thyself, That is, to thy obedience; therein stand. This was that caution given thee; be advised. God made thee perfect, not immutable; And good he made thee, but to persevere He left it in thy power; ordained thy will By nature free, not over-ruled by fate Inextricable, or strict necessity: Our voluntary service he requires, Not our necessitated; such with him Finds no acceptance, nor can find; for how Can hearts, not free, be tried whether they serve Willing or no, who will but what they must By destiny, and can no other choose? Myself, and all the angelick host, that stand In sight of God, enthroned, our happy state Hold, as you yours, while our obedience holds; On other surety none: Freely we serve, Because we freely love, as in our will To love or not; in this we stand or fall: And some are fallen, to disobedience fallen, And so from Heaven to deepest Hell; O fall From what high state of bliss, into what woe! To whom our great progenitor. Thy words Attentive, and with more delighted ear, Divine instructer, I have heard, than when Cherubick songs by night from neighbouring hills Aereal musick send: Nor knew I not To be both will and deed created free; Yet that we never shall forget to love Our Maker, and obey him whose command Single is yet so just, my constant thoughts Assured me, and still assure: Though what thou tellest Hath passed in Heaven, some doubt within me move, But more desire to hear, if thou consent, The full relation, which must needs be strange, Worthy of sacred silence to be heard; And we have yet large day, for scarce the sun Hath finished half his journey, and scarce begins His other half in the great zone of Heaven. Thus Adam made request; and Raphael, After short pause assenting, thus began. High matter thou enjoinest me, O prime of men, Sad task and hard: For how shall I relate To human sense the invisible exploits Of warring Spirits? how, without remorse, The ruin of so many glorious once And perfect while they stood? how last unfold The secrets of another world, perhaps Not lawful to reveal? yet for thy good This is dispensed; and what surmounts the reach Of human sense, I shall delineate so, By likening spiritual to corporal forms, As may express them best; though what if Earth Be but a shadow of Heaven, and things therein Each to other like, more than on earth is thought? As yet this world was not, and Chaos wild Reigned where these Heavens now roll, where Earth now rests Upon her center poised; when on a day (For time, though in eternity, applied To motion, measures all things durable By present, past, and future,) on such day As Heaven's great year brings forth, the empyreal host Of Angels by imperial summons called, Innumerable before the Almighty's throne Forthwith, from all the ends of Heaven, appeared Under their Hierarchs in orders bright: Ten thousand thousand ensigns high advanced, Standards and gonfalons 'twixt van and rear Stream in the air, and for distinction serve Of hierarchies, of orders, and degrees; Or in their glittering tissues bear imblazed Holy memorials, acts of zeal and love Recorded eminent. Thus when in orbs Of circuit inexpressible they stood, Orb within orb, the Father Infinite, By whom in bliss imbosomed sat the Son, Amidst as from a flaming mount, whose top Brightness had made invisible, thus spake. Hear, all ye Angels, progeny of light, Thrones, Dominations, Princedoms, Virtues, Powers; Hear my decree, which unrevoked shall stand. This day I have begot whom I declare My only Son, and on this holy hill Him have anointed, whom ye now behold At my right hand; your head I him appoint; And by myself have sworn, to him shall bow All knees in Heaven, and shall confess him Lord: Under his great vice-gerent reign abide United, as one individual soul, For ever happy: Him who disobeys, Me disobeys, breaks union, and that day, Cast out from God and blessed vision, falls Into utter darkness, deep ingulfed, his place Ordained without redemption, without end. So spake the Omnipotent, and with his words All seemed well pleased; all seemed, but were not all. That day, as other solemn days, they spent In song and dance about the sacred hill; Mystical dance, which yonder starry sphere Of planets, and of fixed, in all her wheels Resembles nearest, mazes intricate, Eccentrick, intervolved, yet regular Then most, when most irregular they seem; And in their motions harmony divine So smooths her charming tones, that God's own ear Listens delighted. Evening now approached, (For we have also our evening and our morn, We ours for change delectable, not need;) Forthwith from dance to sweet repast they turn Desirous; all in circles as they stood, Tables are set, and on a sudden piled With Angels food, and rubied nectar flows In pearl, in diamond, and massy gold, Fruit of delicious vines, the growth of Heaven. On flowers reposed, and with fresh flowerets crowned, They eat, they drink, and in communion sweet Quaff immortality and joy, secure Of surfeit, where full measure only bounds Excess, before the all-bounteous King, who showered With copious hand, rejoicing in their joy. Now when ambrosial night with clouds exhaled From that high mount of God, whence light and shade Spring both, the face of brightest Heaven had changed To grateful twilight, (for night comes not there In darker veil,) and roseat dews disposed All but the unsleeping eyes of God to rest; Wide over all the plain, and wider far Than all this globous earth in plain outspread, (Such are the courts of God) the angelick throng, Dispersed in bands and files, their camp extend By living streams among the trees of life, Pavilions numberless, and sudden reared, Celestial tabernacles, where they slept Fanned with cool winds; save those, who, in their course, Melodious hymns about the sovran throne Alternate all night long: but not so waked Satan; so call him now, his former name Is heard no more in Heaven; he of the first, If not the first Arch-Angel, great in power, In favour and pre-eminence, yet fraught With envy against the Son of God, that day Honoured by his great Father, and proclaimed Messiah King anointed, could not bear Through pride that sight, and thought himself impaired. Deep malice thence conceiving and disdain, Soon as midnight brought on the dusky hour Friendliest to sleep and silence, he resolved With all his legions to dislodge, and leave Unworshipt, unobeyed, the throne supreme, Contemptuous; and his next subordinate Awakening, thus to him in secret spake. Sleepest thou, Companion dear? What sleep can close Thy eye-lids? and rememberest what decree Of yesterday, so late hath passed the lips Of Heaven's Almighty. Thou to me thy thoughts Wast wont, I mine to thee was wont to impart; Both waking we were one; how then can now Thy sleep dissent? New laws thou seest imposed; New laws from him who reigns, new minds may raise In us who serve, new counsels to debate What doubtful may ensue: More in this place To utter is not safe. Assemble thou Of all those myriads which we lead the chief; Tell them, that by command, ere yet dim night Her shadowy cloud withdraws, I am to haste, And all who under me their banners wave, Homeward, with flying march, where we possess The quarters of the north; there to prepare Fit entertainment to receive our King, The great Messiah, and his new commands, Who speedily through all the hierarchies Intends to pass triumphant, and give laws. So spake the false Arch-Angel, and infused Bad influence into the unwary breast Of his associate: He together calls, Or several one by one, the regent Powers, Under him Regent; tells, as he was taught, That the Most High commanding, now ere night, Now ere dim night had disincumbered Heaven, The great hierarchal standard was to move; Tells the suggested cause, and casts between Ambiguous words and jealousies, to sound Or taint integrity: But all obeyed The wonted signal, and superiour voice Of their great Potentate; for great indeed His name, and high was his degree in Heaven; His countenance, as the morning-star that guides The starry flock, allured them, and with lies Drew after him the third part of Heaven's host. Mean while the Eternal eye, whose sight discerns Abstrusest thoughts, from forth his holy mount, And from within the golden lamps that burn Nightly before him, saw without their light Rebellion rising; saw in whom, how spread Among the sons of morn, what multitudes Were banded to oppose his high decree; And, smiling, to his only Son thus said. Son, thou in whom my glory I behold In full resplendence, Heir of all my might, Nearly it now concerns us to be sure Of our Omnipotence, and with what arms We mean to hold what anciently we claim Of deity or empire: Such a foe Is rising, who intends to erect his throne Equal to ours, throughout the spacious north; Nor so content, hath in his thought to try In battle, what our power is, or our right. Let us advise, and to this hazard draw With speed what force is left, and all employ In our defence; lest unawares we lose This our high place, our sanctuary, our hill. To whom the Son with calm aspect and clear, Lightning divine, ineffable, serene, Made answer. Mighty Father, thou thy foes Justly hast in derision, and, secure, Laughest at their vain designs and tumults vain, Matter to me of glory, whom their hate Illustrates, when they see all regal power Given me to quell their pride, and in event Know whether I be dextrous to subdue Thy rebels, or be found the worst in Heaven. So spake the Son; but Satan, with his Powers, Far was advanced on winged speed; an host Innumerable as the stars of night, Or stars of morning, dew-drops, which the sun Impearls on every leaf and every flower. Regions they passed, the mighty regencies Of Seraphim, and Potentates, and Thrones, In their triple degrees; regions to which All thy dominion, Adam, is no more Than what this garden is to all the earth, And all the sea, from one entire globose Stretched into longitude; which having passed, At length into the limits of the north They came; and Satan to his royal seat High on a hill, far blazing, as a mount Raised on a mount, with pyramids and towers From diamond quarries hewn, and rocks of gold; The palace of great Lucifer, (so call That structure in the dialect of men Interpreted,) which not long after, he Affecting all equality with God, In imitation of that mount whereon Messiah was declared in sight of Heaven, The Mountain of the Congregation called; For thither he assembled all his train, Pretending so commanded to consult About the great reception of their King, Thither to come, and with calumnious art Of counterfeited truth thus held their ears. Thrones, Dominations, Princedoms, Virtues, Powers; If these magnifick titles yet remain Not merely titular, since by decree Another now hath to himself engrossed All power, and us eclipsed under the name Of King anointed, for whom all this haste Of midnight-march, and hurried meeting here, This only to consult how we may best, With what may be devised of honours new, Receive him coming to receive from us Knee-tribute yet unpaid, prostration vile! Too much to one! but double how endured, To one, and to his image now proclaimed? But what if better counsels might erect Our minds, and teach us to cast off this yoke? Will ye submit your necks, and choose to bend The supple knee? Ye will not, if I trust To know ye right, or if ye know yourselves Natives and sons of Heaven possessed before By none; and if not equal all, yet free, Equally free; for orders and degrees Jar not with liberty, but well consist. Who can in reason then, or right, assume Monarchy over such as live by right His equals, if in power and splendour less, In freedom equal? or can introduce Law and edict on us, who without law Err not? much less for this to be our Lord, And look for adoration, to the abuse Of those imperial titles, which assert Our being ordained to govern, not to serve. Thus far his bold discourse without controul Had audience; when among the Seraphim Abdiel, than whom none with more zeal adored The Deity, and divine commands obeyed, Stood up, and in a flame of zeal severe The current of his fury thus opposed. O argument blasphemous, false, and proud! Words which no ear ever to hear in Heaven Expected, least of all from thee, Ingrate, In place thyself so high above thy peers. Canst thou with impious obloquy condemn The just decree of God, pronounced and sworn, That to his only Son, by right endued With regal scepter, every soul in Heaven Shall bend the knee, and in that honour due Confess him rightful King? unjust, thou sayest, Flatly unjust, to bind with laws the free, And equal over equals to let reign, One over all with unsucceeded power. Shalt thou give law to God? shalt thou dispute With him the points of liberty, who made Thee what thou art, and formed the Powers of Heaven Such as he pleased, and circumscribed their being? Yet, by experience taught, we know how good, And of our good and of our dignity How provident he is; how far from thought To make us less, bent rather to exalt Our happy state, under one head more near United. But to grant it thee unjust, That equal over equals monarch reign: Thyself, though great and glorious, dost thou count, Or all angelick nature joined in one, Equal to him begotten Son? by whom, As by his Word, the Mighty Father made All things, even thee; and all the Spirits of Heaven By him created in their bright degrees, Crowned them with glory, and to their glory named Thrones, Dominations, Princedoms, Virtues, Powers, Essential Powers; nor by his reign obscured, But more illustrious made; since he the head One of our number thus reduced becomes; His laws our laws; all honour to him done Returns our own. Cease then this impious rage, And tempt not these; but hasten to appease The incensed Father, and the incensed Son, While pardon may be found in time besought. So spake the fervent Angel; but his zeal None seconded, as out of season judged, Or singular and rash: Whereat rejoiced The Apostate, and, more haughty, thus replied. That we were formed then sayest thou? and the work Of secondary hands, by task transferred From Father to his Son? strange point and new! Doctrine which we would know whence learned: who saw When this creation was? rememberest thou Thy making, while the Maker gave thee being? We know no time when we were not as now; Know none before us, self-begot, self-raised By our own quickening power, when fatal course Had circled his full orb, the birth mature Of this our native Heaven, ethereal sons. Our puissance is our own; our own right hand Shall teach us highest deeds, by proof to try Who is our equal: Then thou shalt behold Whether by supplication we intend Address, and to begirt the almighty throne Beseeching or besieging. This report, These tidings carry to the anointed King; And fly, ere evil intercept thy flight. He said; and, as the sound of waters deep, Hoarse murmur echoed to his words applause Through the infinite host; nor less for that The flaming Seraph fearless, though alone Encompassed round with foes, thus answered bold. O alienate from God, O Spirit accursed, Forsaken of all good! I see thy fall Determined, and thy hapless crew involved In this perfidious fraud, contagion spread Both of thy crime and punishment: Henceforth No more be troubled how to quit the yoke Of God's Messiah; those indulgent laws Will not be now vouchsafed; other decrees Against thee are gone forth without recall; That golden scepter, which thou didst reject, Is now an iron rod to bruise and break Thy disobedience. Well thou didst advise; Yet not for thy advice or threats I fly These wicked tents devoted, lest the wrath Impendent, raging into sudden flame, Distinguish not: For soon expect to feel His thunder on thy head, devouring fire. Then who created thee lamenting learn, When who can uncreate thee thou shalt know. So spake the Seraph Abdiel, faithful found Among the faithless, faithful only he; Among innumerable false, unmoved, Unshaken, unseduced, unterrified, His loyalty he kept, his love, his zeal; Nor number, nor example, with him wrought To swerve from truth, or change his constant mind, Though single. From amidst them forth he passed, Long way through hostile scorn, which he sustained Superiour, nor of violence feared aught; And, with retorted scorn, his back he turned On those proud towers to swift destruction doomed. Book VI All night the dreadless Angel, unpursued, Through Heaven's wide champain held his way; till Morn, Waked by the circling Hours, with rosy hand Unbarred the gates of light. There is a cave Within the mount of God, fast by his throne, Where light and darkness in perpetual round Lodge and dislodge by turns, which makes through Heaven Grateful vicissitude, like day and night; Light issues forth, and at the other door Obsequious darkness enters, till her hour To veil the Heaven, though darkness there might well Seem twilight here: And now went forth the Morn Such as in highest Heaven arrayed in gold Empyreal; from before her vanished Night, Shot through with orient beams; when all the plain Covered with thick embattled squadrons bright, Chariots, and flaming arms, and fiery steeds, Reflecting blaze on blaze, first met his view: War he perceived, war in procinct; and found Already known what he for news had thought To have reported: Gladly then he mixed Among those friendly Powers, who him received With joy and acclamations loud, that one, That of so many myriads fallen, yet one Returned not lost. On to the sacred hill They led him high applauded, and present Before the seat supreme; from whence a voice, From midst a golden cloud, thus mild was heard. Servant of God. Well done; well hast thou fought The better fight, who single hast maintained Against revolted multitudes the cause Of truth, in word mightier than they in arms; And for the testimony of truth hast borne Universal reproach, far worse to bear Than violence; for this was all thy care To stand approved in sight of God, though worlds Judged thee perverse: The easier conquest now Remains thee, aided by this host of friends, Back on thy foes more glorious to return, Than scorned thou didst depart; and to subdue By force, who reason for their law refuse, Right reason for their law, and for their King Messiah, who by right of merit reigns. Go, Michael, of celestial armies prince, And thou, in military prowess next, Gabriel, lead forth to battle these my sons Invincible; lead forth my armed Saints, By thousands and by millions, ranged for fight, Equal in number to that Godless crew Rebellious: Them with fire and hostile arms Fearless assault; and, to the brow of Heaven Pursuing, drive them out from God and bliss, Into their place of punishment, the gulf Of Tartarus, which ready opens wide His fiery Chaos to receive their fall. So spake the Sovran Voice, and clouds began To darken all the hill, and smoke to roll In dusky wreaths, reluctant flames, the sign Of wrath awaked; nor with less dread the loud Ethereal trumpet from on high 'gan blow: At which command the Powers militant, That stood for Heaven, in mighty quadrate joined Of union irresistible, moved on In silence their bright legions, to the sound Of instrumental harmony, that breathed Heroick ardour to adventurous deeds Under their God-like leaders, in the cause Of God and his Messiah. On they move Indissolubly firm; nor obvious hill, Nor straitening vale, nor wood, nor stream, divides Their perfect ranks; for high above the ground Their march was, and the passive air upbore Their nimble tread; as when the total kind Of birds, in orderly array on wing, Came summoned over Eden to receive Their names of thee; so over many a tract Of Heaven they marched, and many a province wide, Tenfold the length of this terrene: At last, Far in the horizon to the north appeared From skirt to skirt a fiery region, stretched In battailous aspect, and nearer view Bristled with upright beams innumerable Of rigid spears, and helmets thronged, and shields Various, with boastful argument portrayed, The banded Powers of Satan hasting on With furious expedition; for they weened That self-same day, by fight or by surprise, To win the mount of God, and on his throne To set the Envier of his state, the proud Aspirer; but their thoughts proved fond and vain In the mid way: Though strange to us it seemed At first, that Angel should with Angel war, And in fierce hosting meet, who wont to meet So oft in festivals of joy and love Unanimous, as sons of one great Sire, Hymning the Eternal Father: But the shout Of battle now began, and rushing sound Of onset ended soon each milder thought. High in the midst, exalted as a God, The Apostate in his sun-bright chariot sat, Idol of majesty divine, enclosed With flaming Cherubim, and golden shields; Then lighted from his gorgeous throne, for now "twixt host and host but narrow space was left, A dreadful interval, and front to front Presented stood in terrible array Of hideous length: Before the cloudy van, On the rough edge of battle ere it joined, Satan, with vast and haughty strides advanced, Came towering, armed in adamant and gold; Abdiel that sight endured not, where he stood Among the mightiest, bent on highest deeds, And thus his own undaunted heart explores. O Heaven! that such resemblance of the Highest Should yet remain, where faith and realty Remain not: Wherefore should not strength and might There fail where virtue fails, or weakest prove Where boldest, though to fight unconquerable? His puissance, trusting in the Almighty's aid, I mean to try, whose reason I have tried Unsound and false; nor is it aught but just, That he, who in debate of truth hath won, Should win in arms, in both disputes alike Victor; though brutish that contest and foul, When reason hath to deal with force, yet so Most reason is that reason overcome. So pondering, and from his armed peers Forth stepping opposite, half-way he met His daring foe, at this prevention more Incensed, and thus securely him defied. Proud, art thou met? thy hope was to have reached The highth of thy aspiring unopposed, The throne of God unguarded, and his side Abandoned, at the terrour of thy power Or potent tongue: Fool!not to think how vain Against the Omnipotent to rise in arms; Who out of smallest things could, without end, Have raised incessant armies to defeat Thy folly; or with solitary hand Reaching beyond all limit, at one blow, Unaided, could have finished thee, and whelmed Thy legions under darkness: But thou seest All are not of thy train; there be, who faith Prefer, and piety to God, though then To thee not visible, when I alone Seemed in thy world erroneous to dissent From all: My sect thou seest;now learn too late How few sometimes may know, when thousands err. Whom the grand foe, with scornful eye askance, Thus answered. Ill for thee, but in wished hour Of my revenge, first sought for, thou returnest From flight, seditious Angel! to receive Thy merited reward, the first assay Of this right hand provoked, since first that tongue, Inspired with contradiction, durst oppose A third part of the Gods, in synod met Their deities to assert; who, while they feel Vigour divine within them, can allow Omnipotence to none. But well thou comest Before thy fellows, ambitious to win From me some plume, that thy success may show Destruction to the rest: This pause between, (Unanswered lest thou boast) to let thee know, At first I thought that Liberty and Heaven To heavenly souls had been all one; but now I see that most through sloth had rather serve, Ministring Spirits, trained up in feast and song! Such hast thou armed, the minstrelsy of Heaven, Servility with freedom to contend, As both their deeds compared this day shall prove. To whom in brief thus Abdiel stern replied. Apostate! still thou errest, nor end wilt find Of erring, from the path of truth remote: Unjustly thou depravest it with the name Of servitude, to serve whom God ordains, Or Nature: God and Nature bid the same, When he who rules is worthiest, and excels Them whom he governs. This is servitude, To serve the unwise, or him who hath rebelled Against his worthier, as thine now serve thee, Thyself not free, but to thyself enthralled; Yet lewdly darest our ministring upbraid. Reign thou in Hell, thy kingdom; let me serve In Heaven God ever blest, and his divine Behests obey, worthiest to be obeyed; Yet chains in Hell, not realms, expect: Mean while From me returned, as erst thou saidst, from flight, This greeting on thy impious crest receive. So saying, a noble stroke he lifted high, Which hung not, but so swift with tempest fell On the proud crest of Satan, that no sight, Nor motion of swift thought, less could his shield, Such ruin intercept: Ten paces huge He back recoiled; the tenth on bended knee His massy spear upstaid; as if on earth Winds under ground, or waters forcing way, Sidelong had pushed a mountain from his seat, Half sunk with all his pines. Amazement seised The rebel Thrones, but greater rage, to see Thus foiled their mightiest; ours joy filled, and shout, Presage of victory, and fierce desire Of battle: Whereat Michael bid sound The Arch-Angel trumpet; through the vast of Heaven It sounded, and the faithful armies rung Hosanna to the Highest: Nor stood at gaze The adverse legions, nor less hideous joined The horrid shock. Now storming fury rose, And clamour such as heard in Heaven till now Was never; arms on armour clashing brayed Horrible discord, and the madding wheels Of brazen chariots raged; dire was the noise Of conflict; over head the dismal hiss Of fiery darts in flaming vollies flew, And flying vaulted either host with fire. So under fiery cope together rushed Both battles main, with ruinous assault And inextinguishable rage. All Heaven Resounded; and had Earth been then, all Earth Had to her center shook. What wonder? when Millions of fierce encountering Angels fought On either side, the least of whom could wield These elements, and arm him with the force Of all their regions: How much more of power Army against army numberless to raise Dreadful combustion warring, and disturb, Though not destroy, their happy native seat; Had not the Eternal King Omnipotent, From his strong hold of Heaven, high over-ruled And limited their might; though numbered such As each divided legion might have seemed A numerous host; in strength each armed hand A legion; led in fight, yet leader seemed Each warriour single as in chief, expert When to advance, or stand, or turn the sway Of battle, open when, and when to close The ridges of grim war: No thought of flight, None of retreat, no unbecoming deed That argued fear; each on himself relied, As only in his arm the moment lay Of victory: Deeds of eternal fame Were done, but infinite; for wide was spread That war and various; sometimes on firm ground A standing fight, then, soaring on main wing, Tormented all the air; all air seemed then Conflicting fire. Long time in even scale The battle hung; till Satan, who that day Prodigious power had shown, and met in arms No equal, ranging through the dire attack Of fighting Seraphim confused, at length Saw where the sword of Michael smote, and felled Squadrons at once; with huge two-handed sway Brandished aloft, the horrid edge came down Wide-wasting; such destruction to withstand He hasted, and opposed the rocky orb Of tenfold adamant, his ample shield, A vast circumference. At his approach The great Arch-Angel from his warlike toil Surceased, and glad, as hoping here to end Intestine war in Heaven, the arch-foe subdued Or captive dragged in chains, with hostile frown And visage all inflamed first thus began. Author of evil, unknown till thy revolt, Unnamed in Heaven, now plenteous as thou seest These acts of hateful strife, hateful to all, Though heaviest by just measure on thyself, And thy adherents: How hast thou disturbed Heaven's blessed peace, and into nature brought Misery, uncreated till the crime Of thy rebellion! how hast thou instilled Thy malice into thousands, once upright And faithful, now proved false! But think not here To trouble holy rest; Heaven casts thee out From all her confines. Heaven, the seat of bliss, Brooks not the works of violence and war. Hence then, and evil go with thee along, Thy offspring, to the place of evil, Hell; Thou and thy wicked crew! there mingle broils, Ere this avenging sword begin thy doom, Or some more sudden vengeance, winged from God, Precipitate thee with augmented pain. So spake the Prince of Angels; to whom thus The Adversary. Nor think thou with wind Of aery threats to awe whom yet with deeds Thou canst not. Hast thou turned the least of these To flight, or if to fall, but that they rise Unvanquished, easier to transact with me That thou shouldst hope, imperious, and with threats To chase me hence? err not, that so shall end The strife which thou callest evil, but we style The strife of glory; which we mean to win, Or turn this Heaven itself into the Hell Thou fablest; here however to dwell free, If not to reign: Mean while thy utmost force, And join him named Almighty to thy aid, I fly not, but have sought thee far and nigh. They ended parle, and both addressed for fight Unspeakable; for who, though with the tongue Of Angels, can relate, or to what things Liken on earth conspicuous, that may lift Human imagination to such highth Of Godlike power? for likest Gods they seemed, Stood they or moved, in stature, motion, arms, Fit to decide the empire of great Heaven. Now waved their fiery swords, and in the air Made horrid circles; two broad suns their shields Blazed opposite, while Expectation stood In horrour: From each hand with speed retired, Where erst was thickest fight, the angelick throng, And left large field, unsafe within the wind Of such commotion; such as, to set forth Great things by small, if, nature's concord broke, Among the constellations war were sprung, Two planets, rushing from aspect malign Of fiercest opposition, in mid sky Should combat, and their jarring spheres confound. Together both with next to almighty arm Up-lifted imminent, one stroke they aimed That might determine, and not need repeat, As not of power at once; nor odds appeared In might or swift prevention: But the sword Of Michael from the armoury of God Was given him tempered so, that neither keen Nor solid might resist that edge: it met The sword of Satan, with steep force to smite Descending, and in half cut sheer; nor staid, But with swift wheel reverse, deep entering, shared All his right side: Then Satan first knew pain, And writhed him to and fro convolved; so sore The griding sword with discontinuous wound Passed through him: But the ethereal substance closed, Not long divisible; and from the gash A stream of necturous humour issuing flowed Sanguine, such as celestial Spirits may bleed, And all his armour stained, ere while so bright. Forthwith on all sides to his aid was run By Angels many and strong, who interposed Defence, while others bore him on their shields Back to his chariot, where it stood retired From off the files of war: There they him laid Gnashing for anguish, and despite, and shame, To find himself not matchless, and his pride Humbled by such rebuke, so far beneath His confidence to equal God in power. Yet soon he healed; for Spirits that live throughout Vital in every part, not as frail man In entrails, heart of head, liver or reins, Cannot but by annihilating die; Nor in their liquid texture mortal wound Receive, no more than can the fluid air: All heart they live, all head, all eye, all ear, All intellect, all sense; and, as they please, They limb themselves, and colour, shape, or size Assume, as?kikes them best, condense or rare. Mean while in other parts like deeds deserved Memorial, where the might of Gabriel fought, And with fierce ensigns pierced the deep array Of Moloch, furious king; who him defied, And at his chariot-wheels to drag him bound Threatened, nor from the Holy One of Heaven Refrained his tongue blasphemous; but anon Down cloven to the waist, with shattered arms And uncouth pain fled bellowing. On each wing Uriel, and Raphael, his vaunting foe, Though huge, and in a rock of diamond armed, Vanquished Adramelech, and Asmadai, Two potent Thrones, that to be less than Gods Disdained, but meaner thoughts learned in their flight, Mangled with ghastly wounds through plate and mail. Nor stood unmindful Abdiel to annoy The atheist crew, but with redoubled blow Ariel, and Arioch, and the violence Of Ramiel scorched and blasted, overthrew. I might relate of thousands, and their names Eternize here on earth; but those elect Angels, contented with their fame in Heaven, Seek not the praise of men: The other sort, In might though wonderous and in acts of war, Nor of renown less eager, yet by doom Cancelled from Heaven and sacred memory, Nameless in dark oblivion let them dwell. For strength from truth divided, and from just, Illaudable, nought merits but dispraise And ignominy; yet to glory aspires Vain-glorious, and through infamy seeks fame: Therefore eternal silence be their doom. And now, their mightiest quelled, the battle swerved, With many an inroad gored; deformed rout Entered, and foul disorder; all the ground With shivered armour strown, and on a heap Chariot and charioteer lay overturned, And fiery-foaming steeds; what stood, recoiled O'er-wearied, through the faint Satanick host Defensive scarce, or with pale fear surprised, Then first with fear surprised, and sense of pain, Fled ignominious, to such evil brought By sin of disobedience; till that hour Not liable to fear, or flight, or pain. Far otherwise the inviolable Saints, In cubick phalanx firm, advanced entire, Invulnerable, impenetrably armed; Such high advantages their innocence Gave them above their foes; not to have sinned, Not to have disobeyed; in fight they stood Unwearied, unobnoxious to be pained By wound, though from their place by violence moved, Now Night her course began, and, over Heaven Inducing darkness, grateful truce imposed, And silence on the odious din of war: Under her cloudy covert both retired, Victor and vanquished: On the foughten field Michael and his Angels prevalent Encamping, placed in guard their watches round, Cherubick waving fires: On the other part, Satan with his rebellious disappeared, Far in the dark dislodged; and, void of rest, His potentates to council called by night; And in the midst thus undismayed began. O now in danger tried, now known in arms Not to be overpowered, Companions dear, Found worthy not of liberty alone, Too mean pretence! but what we more affect, Honour, dominion, glory, and renown; Who have sustained one day in doubtful fight, (And if one day, why not eternal days?) What Heaven's Lord had powerfullest to send Against us from about his throne, and judged Sufficient to subdue us to his will, But proves not so: Then fallible, it seems, Of future we may deem him, though till now Omniscient thought. True is, less firmly armed, Some disadvantage we endured and pain, Till now not known, but, known, as soon contemned; Since now we find this our empyreal form Incapable of mortal injury, Imperishable, and, though pierced with wound, Soon closing, and by native vigour healed. Of evil then so small as easy think The remedy; perhaps more valid arms, Weapons more violent, when next we meet, May serve to better us, and worse our foes, Or equal what between us made the odds, In nature none: If other hidden cause Left them superiour, while we can preserve Unhurt our minds, and understanding sound, Due search and consultation will disclose. He sat; and in the assembly next upstood Nisroch, of Principalities the prime; As one he stood escaped from cruel fight, Sore toiled, his riven arms to havock hewn, And cloudy in aspect thus answering spake. Deliverer from new Lords, leader to free Enjoyment of our right as Gods; yet hard For Gods, and too unequal work we find, Against unequal arms to fight in pain, Against unpained, impassive; from which evil Ruin must needs ensue; for what avails Valour or strength, though matchless, quelled with pain Which all subdues, and makes remiss the hands Of mightiest? Sense of pleasure we may well Spare out of life perhaps, and not repine, But live content, which is the calmest life: But pain is perfect misery, the worst Of evils, and, excessive, overturns All patience. He, who therefore can invent With what more forcible we may offend Our yet unwounded enemies, or arm Ourselves with like defence, to me deserves No less than for deliverance what we owe. Whereto with look composed Satan replied. Not uninvented that, which thou aright Believest so main to our success, I bring. Which of us who beholds the bright surface Of this ethereous mould whereon we stand, This continent of spacious Heaven, adorned With plant, fruit, flower ambrosial, gems, and gold; Whose eye so superficially surveys These things, as not to mind from whence they grow Deep under ground, materials dark and crude, Of spiritous and fiery spume, till touched With Heaven's ray, and tempered, they shoot forth So beauteous, opening to the ambient light? These in their dark nativity the deep Shall yield us, pregnant with infernal flame; Which, into hollow engines, long and round, Thick rammed, at the other bore with touch of fire Dilated and infuriate, shall send forth From far, with thundering noise, among our foes Such implements of mischief, as shall dash To pieces, and o'erwhelm whatever stands Adverse, that they shall fear we have disarmed The Thunderer of his only dreaded bolt. Nor long shall be our labour; yet ere dawn, Effect shall end our wish. Mean while revive; Abandon fear; to strength and counsel joined Think nothing hard, much less to be despaired. He ended, and his words their drooping cheer Enlightened, and their languished hope revived. The invention all admired, and each, how he To be the inventer missed; so easy it seemed Once found, which yet unfound most would have thought Impossible: Yet, haply, of thy race In future days, if malice should abound, Some one intent on mischief, or inspired With devilish machination, might devise Like instrument to plague the sons of men For sin, on war and mutual slaughter bent. Forthwith from council to the work they flew; None arguing stood; innumerable hands Were ready; in a moment up they turned Wide the celestial soil, and saw beneath The originals of nature in their crude Conception; sulphurous and nitrous foam They found, they mingled, and, with subtle art, Concocted and adusted they reduced To blackest grain, and into store conveyed: Part hidden veins digged up (nor hath this earth Entrails unlike) of mineral and stone, Whereof to found their engines and their balls Of missive ruin; part incentive reed Provide, pernicious with one touch to fire. So all ere day-spring, under conscious night, Secret they finished, and in order set, With silent circumspection, unespied. Now when fair morn orient in Heaven appeared, Up rose the victor-Angels, and to arms The matin trumpet sung: In arms they stood Of golden panoply, refulgent host, Soon banded; others from the dawning hills Look round, and scouts each coast light-armed scour, Each quarter to descry the distant foe, Where lodged, or whither fled, or if for fight, In motion or in halt: Him soon they met Under spread ensigns moving nigh, in slow But firm battalion; back with speediest sail Zophiel, of Cherubim the swiftest wing, Came flying, and in mid air aloud thus cried. Arm, Warriours, arm for fight; the foe at hand, Whom fled we thought, will save us long pursuit This day; fear not his flight;so thick a cloud He comes, and settled in his face I see Sad resolution, and secure: Let each His adamantine coat gird well, and each Fit well his helm, gripe fast his orbed shield, Borne even or high; for this day will pour down, If I conjecture aught, no drizzling shower, But rattling storm of arrows barbed with fire. So warned he them, aware themselves, and soon In order, quit of all impediment; Instant without disturb they took alarm, And onward moved embattled: When behold! Not distant far with heavy pace the foe Approaching gross and huge, in hollow cube Training his devilish enginery, impaled On every side with shadowing squadrons deep, To hide the fraud. At interview both stood A while; but suddenly at head appeared Satan, and thus was heard commanding loud. Vanguard, to right and left the front unfold; That all may see who hate us, how we seek Peace and composure, and with open breast Stand ready to receive them, if they like Our overture; and turn not back perverse: But that I doubt; however witness, Heaven! Heaven, witness thou anon! while we discharge Freely our part: ye, who appointed stand Do as you have in charge, and briefly touch What we propound, and loud that all may hear! So scoffing in ambiguous words, he scarce Had ended; when to right and left the front Divided, and to either flank retired: Which to our eyes discovered, new and strange, A triple mounted row of pillars laid On wheels (for like to pillars most they seemed, Or hollowed bodies made of oak or fir, With branches lopt, in wood or mountain felled,) Brass, iron, stony mould, had not their mouths With hideous orifice gaped on us wide, Portending hollow truce: At each behind A Seraph stood, and in his hand a reed Stood waving tipt with fire; while we, suspense, Collected stood within our thoughts amused, Not long; for sudden all at once their reeds Put forth, and to a narrow vent applied With nicest touch. Immediate in a flame, But soon obscured with smoke, all Heaven appeared, From those deep-throated engines belched, whose roar Embowelled with outrageous noise the air, And all her entrails tore, disgorging foul Their devilish glut, chained thunderbolts and hail Of iron globes; which, on the victor host Levelled, with such impetuous fury smote, That, whom they hit, none on their feet might stand, Though standing else as rocks, but down they fell By thousands, Angel on Arch-Angel rolled; The sooner for their arms; unarmed, they might Have easily, as Spirits, evaded swift By quick contraction or remove; but now Foul dissipation followed, and forced rout; Nor served it to relax their serried files. What should they do? if on they rushed, repulse Repeated, and indecent overthrow Doubled, would render them yet more despised, And to their foes a laughter; for in view Stood ranked of Seraphim another row, In posture to displode their second tire Of thunder: Back defeated to return They worse abhorred. Satan beheld their plight, And to his mates thus in derision called. O Friends! why come not on these victors proud Ere while they fierce were coming; and when we, To entertain them fair with open front And breast, (what could we more?) propounded terms Of composition, straight they changed their minds, Flew off, and into strange vagaries fell, As they would dance; yet for a dance they seemed Somewhat extravagant and wild; perhaps For joy of offered peace: But I suppose, If our proposals once again were heard, We should compel them to a quick result. To whom thus Belial, in like gamesome mood. Leader! the terms we sent were terms of weight, Of hard contents, and full of force urged home; Such as we might perceive amused them all, And stumbled many: Who receives them right, Had need from head to foot well understand; Not understood, this gift they have besides, They show us when our foes walk not upright. So they among themselves in pleasant vein Stood scoffing, hightened in their thoughts beyond All doubt of victory: Eternal Might To match with their inventions they presumed So easy, and of his thunder made a scorn, And all his host derided, while they stood A while in trouble: But they stood not long; Rage prompted them at length, and found them arms Against such hellish mischief fit to oppose. Forthwith (behold the excellence, the power, Which God hath in his mighty Angels placed!) Their arms away they threw, and to the hills (For Earth hath this variety from Heaven Of pleasure situate in hill and dale,) Light as the lightning glimpse they ran, they flew; From their foundations loosening to and fro, They plucked the seated hills, with all their load, Rocks, waters, woods, and by the shaggy tops Up-lifting bore them in their hands: Amaze, Be sure, and terrour, seized the rebel host, When coming towards them so dread they saw The bottom of the mountains upward turned; Till on those cursed engines' triple-row They saw them whelmed, and all their confidence Under the weight of mountains buried deep; Themselves invaded next, and on their heads Main promontories flung, which in the air Came shadowing, and oppressed whole legions armed; Their armour helped their harm, crushed in and bruised Into their substance pent, which wrought them pain Implacable, and many a dolorous groan; Long struggling underneath, ere they could wind Out of such prison, though Spirits of purest light, Purest at first, now gross by sinning grown. The rest, in imitation, to like arms Betook them, and the neighbouring hills uptore: So hills amid the air encountered hills, Hurled to and fro with jaculation dire; That under ground they fought in dismal shade; Infernal noise! war seemed a civil game To this uproar; horrid confusion heaped Upon confusion rose: And now all Heaven Had gone to wrack, with ruin overspread; Had not the Almighty Father, where he sits Shrined in his sanctuary of Heaven secure, Consulting on the sum of things, foreseen This tumult, and permitted all, advised: That his great purpose he might so fulfil, To honour his anointed Son avenged Upon his enemies, and to declare All power on him transferred: Whence to his Son, The Assessour of his throne, he thus began. Effulgence of my glory, Son beloved, Son, in whose face invisible is beheld Visibly, what by Deity I am; And in whose hand what by decree I do, Second Omnipotence! two days are past, Two days, as we compute the days of Heaven, Since Michael and his Powers went forth to tame These disobedient: Sore hath been their fight, As likeliest was, when two such foes met armed; For to themselves I left them; and thou knowest, Equal in their creation they were formed, Save what sin hath impaired; which yet hath wrought Insensibly, for I suspend their doom; Whence in perpetual fight they needs must last Endless, and no solution will be found: War wearied hath performed what war can do, And to disordered rage let loose the reins With mountains, as with weapons, armed; which makes Wild work in Heaven, and dangerous to the main. Two days are therefore past, the third is thine; For thee I have ordained it; and thus far Have suffered, that the glory may be thine Of ending this great war, since none but Thou Can end it. Into thee such virtue and grace Immense I have transfused, that all may know In Heaven and Hell thy power above compare; And, this perverse commotion governed thus, To manifest thee worthiest to be Heir Of all things; to be Heir, and to be King By sacred unction, thy deserved right. Go then, Thou Mightiest, in thy Father's might; Ascend my chariot, guide the rapid wheels That shake Heaven's basis, bring forth all my war, My bow and thunder, my almighty arms Gird on, and sword upon thy puissant thigh; Pursue these sons of darkness, drive them out From all Heaven's bounds into the utter deep: There let them learn, as likes them, to despise God, and Messiah his anointed King. He said, and on his Son with rays direct Shone full; he all his Father full expressed Ineffably into his face received; And thus the Filial Godhead answering spake. O Father, O Supreme of heavenly Thrones, First, Highest, Holiest, Best; thou always seek'st To glorify thy Son, I always thee, As is most just: This I my glory account, My exaltation, and my whole delight, That thou, in me well pleased, declarest thy will Fulfilled, which to fulfil is all my bliss. Scepter and power, thy giving, I assume, And gladlier shall resign, when in the end Thou shalt be all in all, and I in thee For ever; and in me all whom thou lovest: But whom thou hatest, I hate, and can put on Thy terrours, as I put thy mildness on, Image of thee in all things; and shall soon, Armed with thy might, rid Heaven of these rebelled; To their prepared ill mansion driven down, To chains of darkness, and the undying worm; That from thy just obedience could revolt, Whom to obey is happiness entire. Then shall thy Saints unmixed, and from the impure Far separate, circling thy holy mount, Unfeigned Halleluiahs to thee sing, Hymns of high praise, and I among them Chief. So said, he, o'er his scepter bowing, rose From the right hand of Glory where he sat; And the third sacred morn began to shine, Dawning through Heaven. Forth rushed with whirlwind sound The chariot of Paternal Deity, Flashing thick flames, wheel within wheel undrawn, Itself instinct with Spirit, but convoyed By four Cherubick shapes; four faces each Had wonderous; as with stars, their bodies all And wings were set with eyes; with eyes the wheels Of beryl, and careering fires between; Over their heads a crystal firmament, Whereon a sapphire throne, inlaid with pure Amber, and colours of the showery arch. He, in celestial panoply all armed Of radiant Urim, work divinely wrought, Ascended; at his right hand Victory Sat eagle-winged; beside him hung his bow And quiver with three-bolted thunder stored; And from about him fierce effusion rolled Of smoke, and bickering flame, and sparkles dire: Attended with ten thousand thousand Saints, He onward came; far off his coming shone; And twenty thousand (I their number heard) Chariots of God, half on each hand, were seen; He on the wings of Cherub rode sublime On the crystalline sky, in sapphire throned, Illustrious far and wide; but by his own First seen: Them unexpected joy surprised, When the great ensign of Messiah blazed Aloft by Angels borne, his sign in Heaven; Under whose conduct Michael soon reduced His army, circumfused on either wing, Under their Head imbodied all in one. Before him Power Divine his way prepared; At his command the uprooted hills retired Each to his place; they heard his voice, and went Obsequious; Heaven his wonted face renewed, And with fresh flowerets hill and valley smiled. This saw his hapless foes, but stood obdured, And to rebellious fight rallied their Powers, Insensate, hope conceiving from despair. In heavenly Spirits could such perverseness dwell? But to convince the proud what signs avail, Or wonders move the obdurate to relent? They, hardened more by what might most reclaim, Grieving to see his glory, at the sight Took envy; and, aspiring to his highth, Stood re-embattled fierce, by force or fraud Weening to prosper, and at length prevail Against God and Messiah, or to fall In universal ruin last; and now To final battle drew, disdaining flight, Or faint retreat; when the great Son of God To all his host on either hand thus spake. Stand still in bright array, ye Saints; here stand, Ye Angels armed; this day from battle rest: Faithful hath been your warfare, and of God Accepted, fearless in his righteous cause; And as ye have received, so have ye done, Invincibly: But of this cursed crew The punishment to other hand belongs; Vengeance is his, or whose he sole appoints: Number to this day's work is not ordained, Nor multitude; stand only, and behold God's indignation on these godless poured By me; not you, but me, they have despised, Yet envied; against me is all their rage, Because the Father, to whom in Heaven s'preme Kingdom, and power, and glory appertains, Hath honoured me, according to his will. Therefore to me their doom he hath assigned; That they may have their wish, to try with me In battle which the stronger proves; they all, Or I alone against them; since by strength They measure all, of other excellence Not emulous, nor care who them excels; Nor other strife with them do I vouchsafe. So spake the Son, and into terrour changed His countenance too severe to be beheld, And full of wrath bent on his enemies. At once the Four spread out their starry wings With dreadful shade contiguous, and the orbs Of his fierce chariot rolled, as with the sound Of torrent floods, or of a numerous host. He on his impious foes right onward drove, Gloomy as night; under his burning wheels The stedfast empyrean shook throughout, All but the throne itself of God. Full soon Among them he arrived; in his right hand Grasping ten thousand thunders, which he sent Before him, such as in their souls infixed Plagues: They, astonished, all resistance lost, All courage; down their idle weapons dropt: O'er shields, and helms, and helmed heads he rode Of Thrones and mighty Seraphim prostrate, That wished the mountains now might be again Thrown on them, as a shelter from his ire. Nor less on either side tempestuous fell His arrows, from the fourfold-visaged Four Distinct with eyes, and from the living wheels Distinct alike with multitude of eyes; One Spirit in them ruled; and every eye Glared lightning, and shot forth pernicious fire Among the accursed, that withered all their strength, And of their wonted vigour left them drained, Exhausted, spiritless, afflicted, fallen. Yet half his strength he put not forth, but checked His thunder in mid volley; for he meant Not to destroy, but root them out of Heaven: The overthrown he raised, and as a herd Of goats or timorous flock together thronged Drove them before him thunder-struck, pursued With terrours, and with furies, to the bounds And crystal wall of Heaven; which, opening wide, Rolled inward, and a spacious gap disclosed Into the wasteful deep: The monstrous sight Struck them with horrour backward, but far worse Urged them behind: Headlong themselves they threw Down from the verge of Heaven; eternal wrath Burnt after them to the bottomless pit. Hell heard the unsufferable noise, Hell saw Heaven ruining from Heaven, and would have fled Affrighted; but strict Fate had cast too deep Her dark foundations, and too fast had bound. Nine days they fell: Confounded Chaos roared, And felt tenfold confusion in their fall Through his wild anarchy, so huge a rout Incumbered him with ruin: Hell at last Yawning received them whole, and on them closed; Hell, their fit habitation, fraught with fire Unquenchable, the house of woe and pain. Disburdened Heaven rejoiced, and soon repaired Her mural breach, returning whence it rolled. Sole victor, from the expulsion of his foes, Messiah his triumphal chariot turned: To meet him all his Saints, who silent stood Eye-witnesses of his almighty acts, With jubilee advanced; and, as they went, Shaded with branching palm, each Order bright, Sung triumph, and him sung victorious King, Son, Heir, and Lord, to him dominion given, Worthiest to reign: He, celebrated, rode Triumphant through mid Heaven, into the courts And temple of his Mighty Father throned On high; who into glory him received, Where now he sits at the right hand of bliss. Thus, measuring things in Heaven by things on Earth, At thy request, and that thou mayest beware By what is past, to thee I have revealed What might have else to human race been hid; The discord which befel, and war in Heaven Among the angelick Powers, and the deep fall Of those too high aspiring, who rebelled With Satan; he who envies now thy state, Who now is plotting how he may seduce Thee also from obedience, that, with him Bereaved of happiness, thou mayest partake His punishment, eternal misery; Which would be all his solace and revenge, As a despite done against the Most High, Thee once to gain companion of his woe. But listen not to his temptations, warn Thy weaker; let it profit thee to have heard, By terrible example, the reward Of disobedience; firm they might have stood, Yet fell; remember, and fear to transgress. Book VII Descend from Heaven, Urania, by that name If rightly thou art called, whose voice divine Following, above the Olympian hill I soar, Above the flight of Pegasean wing! The meaning, not the name, I call: for thou Nor of the Muses nine, nor on the top Of old Olympus dwellest; but, heavenly-born, Before the hills appeared, or fountain flowed, Thou with eternal Wisdom didst converse, Wisdom thy sister, and with her didst play In presence of the Almighty Father, pleased With thy celestial song. Up led by thee Into the Heaven of Heavens I have presumed, An earthly guest, and drawn empyreal air, Thy tempering: with like safety guided down Return me to my native element: Lest from this flying steed unreined, (as once Bellerophon, though from a lower clime,) Dismounted, on the Aleian field I fall, Erroneous there to wander, and forlorn. Half yet remains unsung, but narrower bound Within the visible diurnal sphere; Standing on earth, not rapt above the pole, More safe I sing with mortal voice, unchanged To hoarse or mute, though fallen on evil days, On evil days though fallen, and evil tongues; In darkness, and with dangers compassed round, And solitude; yet not alone, while thou Visitest my slumbers nightly, or when morn Purples the east: still govern thou my song, Urania, and fit audience find, though few. But drive far off the barbarous dissonance Of Bacchus and his revellers, the race Of that wild rout that tore the Thracian bard In Rhodope, where woods and rocks had ears To rapture, till the savage clamour drowned Both harp and voice; nor could the Muse defend Her son. So fail not thou, who thee implores: For thou art heavenly, she an empty dream. Say, Goddess, what ensued when Raphael, The affable Arch-Angel, had forewarned Adam, by dire example, to beware Apostasy, by what befel in Heaven To those apostates; lest the like befall In Paradise to Adam or his race, Charged not to touch the interdicted tree, If they transgress, and slight that sole command, So easily obeyed amid the choice Of all tastes else to please their appetite, Though wandering. He, with his consorted Eve, The story heard attentive, and was filled With admiration and deep muse, to hear Of things so high and strange; things, to their thought So unimaginable, as hate in Heaven, And war so near the peace of God in bliss, With such confusion: but the evil, soon Driven back, redounded as a flood on those From whom it sprung; impossible to mix With blessedness. Whence Adam soon repealed The doubts that in his heart arose: and now Led on, yet sinless, with desire to know What nearer might concern him, how this world Of Heaven and Earth conspicuous first began; When, and whereof created; for what cause; What within Eden, or without, was done Before his memory; as one whose drouth Yet scarce allayed still eyes the current stream, Whose liquid murmur heard new thirst excites, Proceeded thus to ask his heavenly guest. Great things, and full of wonder in our ears, Far differing from this world, thou hast revealed, Divine interpreter! by favour sent Down from the empyrean, to forewarn Us timely of what might else have been our loss, Unknown, which human knowledge could not reach; For which to the infinitely Good we owe Immortal thanks, and his admonishment Receive, with solemn purpose to observe Immutably his sovran will, the end Of what we are. But since thou hast vouchsafed Gently, for our instruction, to impart Things above earthly thought, which yet concerned Our knowing, as to highest wisdom seemed, Deign to descend now lower, and relate What may no less perhaps avail us known, How first began this Heaven which we behold Distant so high, with moving fires adorned Innumerable; and this which yields or fills All space, the ambient air wide interfused Embracing round this floried Earth; what cause Moved the Creator, in his holy rest Through all eternity, so late to build In Chaos; and the work begun, how soon Absolved; if unforbid thou mayest unfold What we, not to explore the secrets ask Of his eternal empire, but the more To magnify his works, the more we know. And the great light of day yet wants to run Much of his race though steep; suspense in Heaven, Held by thy voice, thy potent voice, he hears, And longer will delay to hear thee tell His generation, and the rising birth Of Nature from the unapparent Deep: Or if the star of evening and the moon Haste to thy audience, Night with her will bring, Silence; and Sleep, listening to thee, will watch; Or we can bid his absence, till thy song End, and dismiss thee ere the morning shine. Thus Adam his illustrious guest besought: And thus the Godlike Angel answered mild. This also thy request, with caution asked, Obtain; though to recount almighty works What words or tongue of Seraph can suffice, Or heart of man suffice to comprehend? Yet what thou canst attain, which best may serve To glorify the Maker, and infer Thee also happier, shall not be withheld Thy hearing; such commission from above I have received, to answer thy desire Of knowledge within bounds; beyond, abstain To ask; nor let thine own inventions hope Things not revealed, which the invisible King, Only Omniscient, hath suppressed in night; To none communicable in Earth or Heaven: Enough is left besides to search and know. But knowledge is as food, and needs no less Her temperance over appetite, to know In measure what the mind may well contain; Oppresses else with surfeit, and soon turns Wisdom to folly, as nourishment to wind. Know then, that, after Lucifer from Heaven (So call him, brighter once amidst the host Of Angels, than that star the stars among,) Fell with his flaming legions through the deep Into his place, and the great Son returned Victorious with his Saints, the Omnipotent Eternal Father from his throne beheld Their multitude, and to his Son thus spake. At least our envious Foe hath failed, who thought All like himself rebellious, by whose aid This inaccessible high strength, the seat Of Deity supreme, us dispossessed, He trusted to have seised, and into fraud Drew many, whom their place knows here no more: Yet far the greater part have kept, I see, Their station; Heaven, yet populous, retains Number sufficient to possess her realms Though wide, and this high temple to frequent With ministeries due, and solemn rites: But, lest his heart exalt him in the harm Already done, to have dispeopled Heaven, My damage fondly deemed, I can repair That detriment, if such it be to lose Self-lost; and in a moment will create Another world, out of one man a race Of men innumerable, there to dwell, Not here; till, by degrees of merit raised, They open to themselves at length the way Up hither, under long obedience tried; And Earth be changed to Heaven, and Heaven to Earth, One kingdom, joy and union without end. Mean while inhabit lax, ye Powers of Heaven; And thou my Word, begotten Son, by thee This I perform; speak thou, and be it done! My overshadowing Spirit and Might with thee I send along; ride forth, and bid the Deep Within appointed bounds be Heaven and Earth; Boundless the Deep, because I Am who fill Infinitude, nor vacuous the space. Though I, uncircumscribed myself, retire, And put not forth my goodness, which is free To act or not, Necessity and Chance Approach not me, and what I will is Fate. So spake the Almighty, and to what he spake His Word, the Filial Godhead, gave effect. Immediate are the acts of God, more swift Than time or motion, but to human ears Cannot without process of speech be told, So told as earthly notion can receive. Great triumph and rejoicing was in Heaven, When such was heard declared the Almighty's will; Glory they sung to the Most High, good will To future men, and in their dwellings peace; Glory to Him, whose just avenging ire Had driven out the ungodly from his sight And the habitations of the just; to Him Glory and praise, whose wisdom had ordained Good out of evil to create; instead Of Spirits malign, a better race to bring Into their vacant room, and thence diffuse His good to worlds and ages infinite. So sang the Hierarchies: Mean while the Son On his great expedition now appeared, Girt with Omnipotence, with radiance crowned Of Majesty Divine; sapience and love Immense, and all his Father in him shone. About his chariot numberless were poured Cherub, and Seraph, Potentates, and Thrones, And Virtues, winged Spirits, and chariots winged From the armoury of God; where stand of old Myriads, between two brazen mountains lodged Against a solemn day, harnessed at hand, Celestial equipage; and now came forth Spontaneous, for within them Spirit lived, Attendant on their Lord: Heaven opened wide Her ever-during gates, harmonious sound On golden hinges moving, to let forth The King of Glory, in his powerful Word And Spirit, coming to create new worlds. On heavenly ground they stood; and from the shore They viewed the vast immeasurable abyss Outrageous as a sea, dark, wasteful, wild, Up from the bottom turned by furious winds And surging waves, as mountains, to assault Heaven's highth, and with the center mix the pole. Silence, ye troubled Waves, and thou Deep, peace, Said then the Omnifick Word; your discord end! Nor staid; but, on the wings of Cherubim Uplifted, in paternal glory rode Far into Chaos, and the world unborn; For Chaos heard his voice: Him all his train Followed in bright procession, to behold Creation, and the wonders of his might. Then staid the fervid wheels, and in his hand He took the golden compasses, prepared In God's eternal store, to circumscribe This universe, and all created things: One foot he centered, and the other turned Round through the vast profundity obscure; And said, Thus far extend, thus far thy bounds, This be thy just circumference, O World! Thus God the Heaven created, thus the Earth, Matter unformed and void: Darkness profound Covered the abyss: but on the watery calm His brooding wings the Spirit of God outspread, And vital virtue infused, and vital warmth Throughout the fluid mass; but downward purged The black tartareous cold infernal dregs, Adverse to life: then founded, then conglobed Like things to like; the rest to several place Disparted, and between spun out the air; And Earth self-balanced on her center hung. Let there be light, said God; and forthwith Light Ethereal, first of things, quintessence pure, Sprung from the deep; and from her native east To journey through the aery gloom began, Sphered in a radiant cloud, for yet the sun Was not; she in a cloudy tabernacle Sojourned the while. God saw the light was good; And light from darkness by the hemisphere Divided: light the Day, and darkness Night, He named. Thus was the first day even and morn: Nor past uncelebrated, nor unsung By the celestial quires, when orient light Exhaling first from darkness they beheld; Birth-day of Heaven and Earth; with joy and shout The hollow universal orb they filled, And touched their golden harps, and hymning praised God and his works; Creator him they sung, Both when first evening was, and when first morn. Again, God said, Let there be firmament Amid the waters, and let it divide The waters from the waters; and God made The firmament, expanse of liquid, pure, Transparent, elemental air, diffused In circuit to the uttermost convex Of this great round; partition firm and sure, The waters underneath from those above Dividing: for as earth, so he the world Built on circumfluous waters calm, in wide Crystalline ocean, and the loud misrule Of Chaos far removed; lest fierce extremes Contiguous might distemper the whole frame: And Heaven he named the Firmament: So even And morning chorus sung the second day. The Earth was formed, but in the womb as yet Of waters, embryon immature involved, Appeared not: over all the face of Earth Main ocean flowed, not idle; but, with warm Prolifick humour softening all her globe, Fermented the great mother to conceive, Satiate with genial moisture; when God said, Be gathered now ye waters under Heaven Into one place, and let dry land appear. Immediately the mountains huge appear Emergent, and their broad bare backs upheave Into the clouds; their tops ascend the sky: So high as heaved the tumid hills, so low Down sunk a hollow bottom broad and deep, Capacious bed of waters: Thither they Hasted with glad precipitance, uprolled, As drops on dust conglobing from the dry: Part rise in crystal wall, or ridge direct, For haste; such flight the great command impressed On the swift floods: As armies at the call Of trumpet (for of armies thou hast heard) Troop to their standard; so the watery throng, Wave rolling after wave, where way they found, If steep, with torrent rapture, if through plain, Soft-ebbing; nor withstood them rock or hill; But they, or under ground, or circuit wide With serpent errour wandering, found their way, And on the washy oose deep channels wore; Easy, ere God had bid the ground be dry, All but within those banks, where rivers now Stream, and perpetual draw their humid train. The dry land, Earth; and the great receptacle Of congregated waters, he called Seas: And saw that it was good; and said, Let the Earth Put forth the verdant grass, herb yielding seed, And fruit-tree yielding fruit after her kind, Whose seed is in herself upon the Earth. He scarce had said, when the bare Earth, till then Desart and bare, unsightly, unadorned, Brought forth the tender grass, whose verdure clad Her universal face with pleasant green; Then herbs of every leaf, that sudden flowered Opening their various colours, and made gay Her bosom, smelling sweet: and, these scarce blown, Forth flourished thick the clustering vine, forth crept The swelling gourd, up stood the corny reed Embattled in her field, and the humble shrub, And bush with frizzled hair implicit: Last Rose, as in dance, the stately trees, and spread Their branches hung with copious fruit, or gemmed Their blossoms: With high woods the hills were crowned; With tufts the valleys, and each fountain side; With borders long the rivers: that Earth now Seemed like to Heaven, a seat where Gods might dwell, Or wander with delight, and love to haunt Her sacred shades: though God had yet not rained Upon the Earth, and man to till the ground None was; but from the Earth a dewy mist Went up, and watered all the ground, and each Plant of the field; which, ere it was in the Earth, God made, and every herb, before it grew On the green stem: God saw that it was good: So even and morn recorded the third day. Again the Almighty spake, Let there be lights High in the expanse of Heaven, to divide The day from night; and let them be for signs, For seasons, and for days, and circling years; And let them be for lights, as I ordain Their office in the firmament of Heaven, To give light on the Earth; and it was so. And God made two great lights, great for their use To Man, the greater to have rule by day, The less by night, altern; and made the stars, And set them in the firmament of Heaven To illuminate the Earth, and rule the day In their vicissitude, and rule the night, And light from darkness to divide. God saw, Surveying his great work, that it was good: For of celestial bodies first the sun A mighty sphere he framed, unlightsome first, Though of ethereal mould: then formed the moon Globose, and every magnitude of stars, And sowed with stars the Heaven, thick as a field: Of light by far the greater part he took, Transplanted from her cloudy shrine, and placed In the sun's orb, made porous to receive And drink the liquid light; firm to retain Her gathered beams, great palace now of light. Hither, as to their fountain, other stars Repairing, in their golden urns draw light, And hence the morning-planet gilds her horns; By tincture or reflection they augment Their small peculiar, though from human sight So far remote, with diminution seen, First in his east the glorious lamp was seen, Regent of day, and all the horizon round Invested with bright rays, jocund to run His longitude through Heaven's high road; the gray Dawn, and the Pleiades, before him danced, Shedding sweet influence: Less bright the moon, But opposite in levelled west was set, His mirrour, with full face borrowing her light From him; for other light she needed none In that aspect, and still that distance keeps Till night; then in the east her turn she shines, Revolved on Heaven's great axle, and her reign With thousand lesser lights dividual holds, With thousand thousand stars, that then appeared Spangling the hemisphere: Then first adorned With their bright luminaries that set and rose, Glad evening and glad morn crowned the fourth day. And God said, Let the waters generate Reptile with spawn abundant, living soul: And let fowl fly above the Earth, with wings Displayed on the open firmament of Heaven. And God created the great whales, and each Soul living, each that crept, which plenteously The waters generated by their kinds; And every bird of wing after his kind; And saw that it was good, and blessed them, saying. Be fruitful, multiply, and in the seas, And lakes, and running streams, the waters fill; And let the fowl be multiplied, on the Earth. Forthwith the sounds and seas, each creek and bay, With fry innumerable swarm, and shoals Of fish that with their fins, and shining scales, Glide under the green wave, in sculls that oft Bank the mid sea: part single, or with mate, Graze the sea-weed their pasture, and through groves Of coral stray; or, sporting with quick glance, Show to the sun their waved coats dropt with gold; Or, in their pearly shells at ease, attend Moist nutriment; or under rocks their food In jointed armour watch: on smooth the seal And bended dolphins play: part huge of bulk Wallowing unwieldy, enormous in their gait, Tempest the ocean: there leviathan, Hugest of living creatures, on the deep Stretched like a promontory sleeps or swims, And seems a moving land; and at his gills Draws in, and at his trunk spouts out, a sea. Mean while the tepid caves, and fens, and shores, Their brood as numerous hatch, from the egg that soon Bursting with kindly rupture forth disclosed Their callow young; but feathered soon and fledge They summed their pens; and, soaring the air sublime, With clang despised the ground, under a cloud In prospect; there the eagle and the stork On cliffs and cedar tops their eyries build: Part loosely wing the region, part more wise In common, ranged in figure, wedge their way, Intelligent of seasons, and set forth Their aery caravan, high over seas Flying, and over lands, with mutual wing Easing their flight; so steers the prudent crane Her annual voyage, borne on winds; the air Floats as they pass, fanned with unnumbered plumes: From branch to branch the smaller birds with song Solaced the woods, and spread their painted wings Till even; nor then the solemn nightingale Ceased warbling, but all night tun'd her soft lays: Others, on silver lakes and rivers, bathed Their downy breast; the swan with arched neck, Between her white wings mantling proudly, rows Her state with oary feet; yet oft they quit The dank, and, rising on stiff pennons, tower The mid aereal sky: Others on ground Walked firm; the crested cock whose clarion sounds The silent hours, and the other whose gay train Adorns him, coloured with the florid hue Of rainbows and starry eyes. The waters thus With fish replenished, and the air with fowl, Evening and morn solemnized the fifth day. The sixth, and of creation last, arose With evening harps and matin; when God said, Let the Earth bring forth soul living in her kind, Cattle, and creeping things, and beast of the Earth, Each in their kind. The Earth obeyed, and straight Opening her fertile womb teemed at a birth Innumerous living creatures, perfect forms, Limbed and full grown: Out of the ground up rose, As from his lair, the wild beast where he wons In forest wild, in thicket, brake, or den; Among the trees in pairs they rose, they walked: The cattle in the fields and meadows green: Those rare and solitary, these in flocks Pasturing at once, and in broad herds upsprung. The grassy clods now calved; now half appeared The tawny lion, pawing to get free His hinder parts, then springs as broke from bonds, And rampant shakes his brinded mane; the ounce, The libbard, and the tiger, as the mole Rising, the crumbled earth above them threw In hillocks: The swift stag from under ground Bore up his branching head: Scarce from his mould Behemoth biggest born of earth upheaved His vastness: Fleeced the flocks and bleating rose, As plants: Ambiguous between sea and land The river-horse, and scaly crocodile. At once came forth whatever creeps the ground, Insect or worm: those waved their limber fans For wings, and smallest lineaments exact In all the liveries decked of summer's pride With spots of gold and purple, azure and green: These, as a line, their long dimension drew, Streaking the ground with sinuous trace; not all Minims of nature; some of serpent-kind, Wonderous in length and corpulence, involved Their snaky folds, and added wings. First crept The parsimonious emmet, provident Of future; in small room large heart enclosed; Pattern of just equality perhaps Hereafter, joined in her popular tribes Of commonalty: Swarming next appeared The female bee, that feeds her husband drone Deliciously, and builds her waxen cells With honey stored: The rest are numberless, And thou their natures knowest, and gavest them names, Needless to thee repeated; nor unknown The serpent, subtlest beast of all the field, Of huge extent sometimes, with brazen eyes And hairy mane terrifick, though to thee Not noxious, but obedient at thy call. Now Heaven in all her glory shone, and rolled Her motions, as the great first Mover's hand First wheeled their course: Earth in her rich attire Consummate lovely smiled; air, water, earth, By fowl, fish, beast, was flown, was swum, was walked, Frequent; and of the sixth day yet remained: There wanted yet the master-work, the end Of all yet done; a creature, who, not prone And brute as other creatures, but endued With sanctity of reason, might erect His stature, and upright with front serene Govern the rest, self-knowing; and from thence Magnanimous to correspond with Heaven, But grateful to acknowledge whence his good Descends, thither with heart, and voice, and eyes Directed in devotion, to adore And worship God Supreme, who made him chief Of all his works: therefore the Omnipotent Eternal Father (for where is not he Present?) thus to his Son audibly spake. Let us make now Man in our image, Man In our similitude, and let them rule Over the fish and fowl of sea and air, Beast of the field, and over all the Earth, And every creeping thing that creeps the ground. This said, he formed thee, Adam, thee, O Man, Dust of the ground, and in thy nostrils breathed The breath of life; in his own image he Created thee, in the image of God Express; and thou becamest a living soul. Male he created thee; but thy consort Female, for race; then blessed mankind, and said, Be fruitful, multiply, and fill the Earth; Subdue it, and throughout dominion hold Over fish of the sea, and fowl of the air, And every living thing that moves on the Earth. Wherever thus created, for no place Is yet distinct by name, thence, as thou knowest, He brought thee into this delicious grove, This garden, planted with the trees of God, Delectable both to behold and taste; And freely all their pleasant fruit for food Gave thee; all sorts are here that all the Earth yields, Variety without end; but of the tree, Which, tasted, works knowledge of good and evil, Thou mayest not; in the day thou eatest, thou diest; Death is the penalty imposed; beware, And govern well thy appetite; lest Sin Surprise thee, and her black attendant Death. Here finished he, and all that he had made Viewed, and behold all was entirely good; So even and morn accomplished the sixth day: Yet not till the Creator from his work Desisting, though unwearied, up returned, Up to the Heaven of Heavens, his high abode; Thence to behold this new created world, The addition of his empire, how it showed In prospect from his throne, how good, how fair, Answering his great idea. Up he rode Followed with acclamation, and the sound Symphonious of ten thousand harps, that tuned Angelick harmonies: The earth, the air Resounded, (thou rememberest, for thou heardst,) The heavens and all the constellations rung, The planets in their station listening stood, While the bright pomp ascended jubilant. Open, ye everlasting gates! they sung, Open, ye Heavens! your living doors;let in The great Creator from his work returned Magnificent, his six days work, a World; Open, and henceforth oft; for God will deign To visit oft the dwellings of just men, Delighted; and with frequent intercourse Thither will send his winged messengers On errands of supernal grace. So sung The glorious train ascending: He through Heaven, That opened wide her blazing portals, led To God's eternal house direct the way; A broad and ample road, whose dust is gold And pavement stars, as stars to thee appear, Seen in the galaxy, that milky way, Which nightly, as a circling zone, thou seest Powdered with stars. And now on Earth the seventh Evening arose in Eden, for the sun Was set, and twilight from the east came on, Forerunning night; when at the holy mount Of Heaven's high-seated top, the imperial throne Of Godhead, fixed for ever firm and sure, The Filial Power arrived, and sat him down With his great Father; for he also went Invisible, yet staid, (such privilege Hath Omnipresence) and the work ordained, Author and End of all things; and, from work Now resting, blessed and hallowed the seventh day, As resting on that day from all his work, But not in silence holy kept: the harp Had work and rested not; the solemn pipe, And dulcimer, all organs of sweet stop, All sounds on fret by string or golden wire, Tempered soft tunings, intermixed with voice Choral or unison: of incense clouds, Fuming from golden censers, hid the mount. Creation and the six days acts they sung: Great are thy works, Jehovah! infinite Thy power! what thought can measure thee, or tongue Relate thee! Greater now in thy return Than from the giant Angels: Thee that day Thy thunders magnified; but to create Is greater than created to destroy. Who can impair thee, Mighty King, or bound Thy empire! Easily the proud attempt Of Spirits apostate, and their counsels vain, Thou hast repelled; while impiously they thought Thee to diminish, and from thee withdraw The number of thy worshippers. Who seeks To lessen thee, against his purpose serves To manifest the more thy might: his evil Thou usest, and from thence createst more good. Witness this new-made world, another Heaven From Heaven-gate not far, founded in view On the clear hyaline, the glassy sea; Of amplitude almost immense, with stars Numerous, and every star perhaps a world Of destined habitation; but thou knowest Their seasons: among these the seat of Men, Earth, with her nether ocean circumfused, Their pleasant dwelling-place. Thrice happy Men, And sons of Men, whom God hath thus advanced! Created in his image, there to dwell And worship him; and in reward to rule Over his works, on earth, in sea, or air, And multiply a race of worshippers Holy and just: Thrice happy, if they know Their happiness, and persevere upright! So sung they, and the empyrean rung With halleluiahs: Thus was sabbath kept. And thy request think now fulfilled, that asked How first this world and face of things began, And what before thy memory was done From the beginning; that posterity, Informed by thee, might know: If else thou seekest Aught, not surpassing human measure, say. Book VIII The Angel ended, and in Adam's ear So charming left his voice, that he a while Thought him still speaking, still stood fixed to hear; Then, as new waked, thus gratefully replied. What thanks sufficient, or what recompence Equal, have I to render thee, divine Historian, who thus largely hast allayed The thirst I had of knowledge, and vouchsafed This friendly condescension to relate Things, else by me unsearchable; now heard With wonder, but delight, and, as is due, With glory attributed to the high Creator! Something yet of doubt remains, Which only thy solution can resolve. When I behold this goodly frame, this world, Of Heaven and Earth consisting; and compute Their magnitudes; this Earth, a spot, a grain, An atom, with the firmament compared And all her numbered stars, that seem to roll Spaces incomprehensible, (for such Their distance argues, and their swift return Diurnal,) merely to officiate light Round this opacous Earth, this punctual spot, One day and night; in all her vast survey Useless besides; reasoning I oft admire, How Nature wise and frugal could commit Such disproportions, with superfluous hand So many nobler bodies to create, Greater so manifold, to this one use, For aught appears, and on their orbs impose Such restless revolution day by day Repeated; while the sedentary Earth, That better might with far less compass move, Served by more noble than herself, attains Her end without least motion, and receives, As tribute, such a sumless journey brought Of incorporeal speed, her warmth and light; Speed, to describe whose swiftness number fails. So spake our sire, and by his countenance seemed Entering on studious thoughts abstruse; which Eve Perceiving, where she sat retired in sight, With lowliness majestick from her seat, And grace that won who saw to wish her stay, Rose, and went forth among her fruits and flowers, To visit how they prospered, bud and bloom, Her nursery; they at her coming sprung, And, touched by her fair tendance, gladlier grew. Yet went she not, as not with such discourse Delighted, or not capable her ear Of what was high: such pleasure she reserved, Adam relating, she sole auditress; Her husband the relater she preferred Before the Angel, and of him to ask Chose rather; he, she knew, would intermix Grateful digressions, and solve high dispute With conjugal caresses: from his lip Not words alone pleased her. O! when meet now Such pairs, in love and mutual honour joined? With Goddess-like demeanour forth she went, Not unattended; for on her, as Queen, A pomp of winning Graces waited still, And from about her shot darts of desire Into all eyes, to wish her still in sight. And Raphael now, to Adam's doubt proposed, Benevolent and facile thus replied. To ask or search, I blame thee not; for Heaven Is as the book of God before thee set, Wherein to read his wonderous works, and learn His seasons, hours, or days, or months, or years: This to attain, whether Heaven move or Earth, Imports not, if thou reckon right; the rest From Man or Angel the great Architect Did wisely to conceal, and not divulge His secrets to be scanned by them who ought Rather admire; or, if they list to try Conjecture, he his fabrick of the Heavens Hath left to their disputes, perhaps to move His laughter at their quaint opinions wide Hereafter; when they come to model Heaven And calculate the stars, how they will wield The mighty frame; how build, unbuild, contrive To save appearances; how gird the sphere With centrick and eccentrick scribbled o'er, Cycle and epicycle, orb in orb: Already by thy reasoning this I guess, Who art to lead thy offspring, and supposest That bodies bright and greater should not serve The less not bright, nor Heaven such journeys run, Earth sitting still, when she alone receives The benefit: Consider first, that great Or bright infers not excellence: the Earth Though, in comparison of Heaven, so small, Nor glistering, may of solid good contain More plenty than the sun that barren shines; Whose virtue on itself works no effect, But in the fruitful Earth; there first received, His beams, unactive else, their vigour find. Yet not to Earth are those bright luminaries Officious; but to thee, Earth's habitant. And for the Heaven's wide circuit, let it speak The Maker's high magnificence, who built So spacious, and his line stretched out so far; That Man may know he dwells not in his own; An edifice too large for him to fill, Lodged in a small partition; and the rest Ordained for uses to his Lord best known. The swiftness of those circles attribute, Though numberless, to his Omnipotence, That to corporeal substances could add Speed almost spiritual: Me thou thinkest not slow, Who since the morning-hour set out from Heaven Where God resides, and ere mid-day arrived In Eden; distance inexpressible By numbers that have name. But this I urge, Admitting motion in the Heavens, to show Invalid that which thee to doubt it moved; Not that I so affirm, though so it seem To thee who hast thy dwelling here on Earth. God, to remove his ways from human sense, Placed Heaven from Earth so far, that earthly sight, If it presume, might err in things too high, And no advantage gain. What if the sun Be center to the world; and other stars, By his attractive virtue and their own Incited, dance about him various rounds? Their wandering course now high, now low, then hid, Progressive, retrograde, or standing still, In six thou seest; and what if seventh to these The planet earth, so stedfast though she seem, Insensibly three different motions move? Which else to several spheres thou must ascribe, Moved contrary with thwart obliquities; Or save the sun his labour, and that swift Nocturnal and diurnal rhomb supposed, Invisible else above all stars, the wheel Of day and night; which needs not thy belief, If earth, industrious of herself, fetch day Travelling east, and with her part averse From the sun's beam meet night, her other part Still luminous by his ray. What if that light, Sent from her through the wide transpicuous air, To the terrestrial moon be as a star, Enlightening her by day, as she by night This earth? reciprocal, if land be there, Fields and inhabitants: Her spots thou seest As clouds, and clouds may rain, and rain produce Fruits in her softened soil for some to eat Allotted there; and other suns perhaps, With their attendant moons, thou wilt descry, Communicating male and female light; Which two great sexes animate the world, Stored in each orb perhaps with some that live. For such vast room in Nature unpossessed By living soul, desart and desolate, Only to shine, yet scarce to contribute Each orb a glimpse of light, conveyed so far Down to this habitable, which returns Light back to them, is obvious to dispute. But whether thus these things, or whether not; But whether the sun, predominant in Heaven, Rise on the earth; or earth rise on the sun; He from the east his flaming road begin; Or she from west her silent course advance, With inoffensive pace that spinning sleeps On her soft axle, while she paces even, And bears thee soft with the smooth hair along; Sollicit not thy thoughts with matters hid; Leave them to God above; him serve, and fear! Of other creatures, as him pleases best, Wherever placed, let him dispose; joy thou In what he gives to thee, this Paradise And thy fair Eve; Heaven is for thee too high To know what passes there; be lowly wise: Think only what concerns thee, and thy being; Dream not of other worlds, what creatures there Live, in what state, condition, or degree; Contented that thus far hath been revealed Not of Earth only, but of highest Heaven. To whom thus Adam, cleared of doubt, replied. How fully hast thou satisfied me, pure Intelligence of Heaven, Angel serene! And, freed from intricacies, taught to live The easiest way; nor with perplexing thoughts To interrupt the sweet of life, from which God hath bid dwell far off all anxious cares, And not molest us; unless we ourselves Seek them with wandering thoughts, and notions vain. But apt the mind or fancy is to rove Unchecked, and of her roving is no end; Till warned, or by experience taught, she learn, That, not to know at large of things remote From use, obscure and subtle; but, to know That which before us lies in daily life, Is the prime wisdom: What is more, is fume, Or emptiness, or fond impertinence: And renders us, in things that most concern, Unpractised, unprepared, and still to seek. Therefore from this high pitch let us descend A lower flight, and speak of things at hand Useful; whence, haply, mention may arise Of something not unseasonable to ask, By sufferance, and thy wonted favour, deigned. Thee I have heard relating what was done Ere my remembrance: now, hear me relate My story, which perhaps thou hast not heard; And day is not yet spent; till then thou seest How subtly to detain thee I devise; Inviting thee to hear while I relate; Fond! were it not in hope of thy reply: For, while I sit with thee, I seem in Heaven; And sweeter thy discourse is to my ear Than fruits of palm-tree pleasantest to thirst And hunger both, from labour, at the hour Of sweet repast; they satiate, and soon fill, Though pleasant; but thy words, with grace divine Imbued, bring to their sweetness no satiety. To whom thus Raphael answered heavenly meek. Nor are thy lips ungraceful, Sire of men, Nor tongue ineloquent; for God on thee Abundantly his gifts hath also poured Inward and outward both, his image fair: Speaking, or mute, all comeliness and grace Attends thee; and each word, each motion, forms; Nor less think we in Heaven of thee on Earth Than of our fellow-servant, and inquire Gladly into the ways of God with Man: For God, we see, hath honoured thee, and set On Man his equal love: Say therefore on; For I that day was absent, as befel, Bound on a voyage uncouth and obscure, Far on excursion toward the gates of Hell; Squared in full legion (such command we had) To see that none thence issued forth a spy, Or enemy, while God was in his work; Lest he, incensed at such eruption bold, Destruction with creation might have mixed. Not that they durst without his leave attempt; But us he sends upon his high behests For state, as Sovran King; and to inure Our prompt obedience. Fast we found, fast shut, The dismal gates, and barricadoed strong; But long ere our approaching heard within Noise, other than the sound of dance or song, Torment, and loud lament, and furious rage. Glad we returned up to the coasts of light Ere sabbath-evening: so we had in charge. But thy relation now; for I attend, Pleased with thy words no less than thou with mine. So spake the Godlike Power, and thus our Sire. For Man to tell how human life began Is hard; for who himself beginning knew Desire with thee still longer to converse Induced me. As new waked from soundest sleep, Soft on the flowery herb I found me laid, In balmy sweat; which with his beams the sun Soon dried, and on the reeking moisture fed. Straight toward Heaven my wondering eyes I turned, And gazed a while the ample sky; till, raised By quick instinctive motion, up I sprung, As thitherward endeavouring, and upright Stood on my feet: about me round I saw Hill, dale, and shady woods, and sunny plains, And liquid lapse of murmuring streams; by these, Creatures that lived and moved, and walked, or flew; Birds on the branches warbling; all things smiled; With fragrance and with joy my heart o'erflowed. Myself I then perused, and limb by limb Surveyed, and sometimes went, and sometimes ran With supple joints, as lively vigour led: But who I was, or where, or from what cause, Knew not; to speak I tried, and forthwith spake; My tongue obeyed, and readily could name Whate'er I saw. Thou Sun, said I, fair light, And thou enlightened Earth, so fresh and gay, Ye Hills, and Dales, ye Rivers, Woods, and Plains, And ye that live and move, fair Creatures, tell, Tell, if ye saw, how I came thus, how here?-- Not of myself;--by some great Maker then, In goodness and in power pre-eminent: Tell me, how may I know him, how adore, From whom I have that thus I move and live, And feel that I am happier than I know.-- While thus I called, and strayed I knew not whither, From where I first drew air, and first beheld This happy light; when, answer none returned, On a green shady bank, profuse of flowers, Pensive I sat me down: There gentle sleep First found me, and with soft oppression seised My droused sense, untroubled, though I thought I then was passing to my former state Insensible, and forthwith to dissolve: When suddenly stood at my head a dream, Whose inward apparition gently moved My fancy to believe I yet had being, And lived: One came, methought, of shape divine, And said, 'Thy mansion wants thee, Adam; rise, 'First Man, of men innumerable ordained 'First Father! called by thee, I come thy guide 'To the garden of bliss, thy seat prepared.' So saying, by the hand he took me raised, And over fields and waters, as in air Smooth-sliding without step, last led me up A woody mountain; whose high top was plain, A circuit wide, enclosed, with goodliest trees Planted, with walks, and bowers; that what I saw Of Earth before scarce pleasant seemed. Each tree, Loaden with fairest fruit that hung to the eye Tempting, stirred in me sudden appetite To pluck and eat; whereat I waked, and found Before mine eyes all real, as the dream Had lively shadowed: Here had new begun My wandering, had not he, who was my guide Up hither, from among the trees appeared, Presence Divine. Rejoicing, but with awe, In adoration at his feet I fell Submiss: He reared me, and 'Whom thou soughtest I am,' Said mildly, 'Author of all this thou seest 'Above, or round about thee, or beneath. 'This Paradise I give thee, count it thine 'To till and keep, and of the fruit to eat: 'Of every tree that in the garden grows 'Eat freely with glad heart; fear here no dearth: 'But of the tree whose operation brings 'Knowledge of good and ill, which I have set 'The pledge of thy obedience and thy faith, 'Amid the garden by the tree of life, 'Remember what I warn thee, shun to taste, 'And shun the bitter consequence: for know, 'The day thou eatest thereof, my sole command 'Transgressed, inevitably thou shalt die, 'From that day mortal; and this happy state 'Shalt lose, expelled from hence into a world 'Of woe and sorrow.' Sternly he pronounced The rigid interdiction, which resounds Yet dreadful in mine ear, though in my choice Not to incur; but soon his clear aspect Returned, and gracious purpose thus renewed. 'Not only these fair bounds, but all the Earth 'To thee and to thy race I give; as lords 'Possess it, and all things that therein live, 'Or live in sea, or air; beast, fish, and fowl. 'In sign whereof, each bird and beast behold 'After their kinds; I bring them to receive 'From thee their names, and pay thee fealty 'With low subjection; understand the same 'Of fish within their watery residence, 'Not hither summoned, since they cannot change 'Their element, to draw the thinner air.' As thus he spake, each bird and beast behold Approaching two and two; these cowering low With blandishment; each bird stooped on his wing. I named them, as they passed, and understood Their nature, with such knowledge God endued My sudden apprehension: But in these I found not what methought I wanted still; And to the heavenly Vision thus presumed. O, by what name, for thou above all these, Above mankind, or aught than mankind higher, Surpassest far my naming; how may I Adore thee, Author of this universe, And all this good to man? for whose well being So amply, and with hands so liberal, Thou hast provided all things: But with me I see not who partakes. In solitude What happiness, who can enjoy alone, Or, all enjoying, what contentment find? Thus I presumptuous; and the Vision bright, As with a smile more brightened, thus replied. What callest thou solitude? Is not the Earth With various living creatures, and the air Replenished, and all these at thy command To come and play before thee? Knowest thou not Their language and their ways? They also know, And reason not contemptibly: With these Find pastime, and bear rule; thy realm is large. So spake the Universal Lord, and seemed So ordering: I, with leave of speech implored, And humble deprecation, thus replied. Let not my words offend thee, Heavenly Power; My Maker, be propitious while I speak. Hast thou not made me here thy substitute, And these inferiour far beneath me set? Among unequals what society Can sort, what harmony, or true delight? Which must be mutual, in proportion due Given and received; but, in disparity The one intense, the other still remiss, Cannot well suit with either, but soon prove Tedious alike: Of fellowship I speak Such as I seek, fit to participate All rational delight: wherein the brute Cannot be human consort: They rejoice Each with their kind, lion with lioness; So fitly them in pairs thou hast combined: Much less can bird with beast, or fish with fowl So well converse, nor with the ox the ape; Worse then can man with beast, and least of all. Whereto the Almighty answered, not displeased. A nice and subtle happiness, I see, Thou to thyself proposest, in the choice Of thy associates, Adam! and wilt taste No pleasure, though in pleasure, solitary. What thinkest thou then of me, and this my state? Seem I to thee sufficiently possessed Of happiness, or not? who am alone From all eternity; for none I know Second to me or like, equal much less. How have I then with whom to hold converse, Save with the creatures which I made, and those To me inferiour, infinite descents Beneath what other creatures are to thee? He ceased; I lowly answered. To attain The highth and depth of thy eternal ways All human thoughts come short, Supreme of things! Thou in thyself art perfect, and in thee Is no deficience found: Not so is Man, But in degree; the cause of his desire By conversation with his like to help Or solace his defects. No need that thou Shouldst propagate, already Infinite; And through all numbers absolute, though One: But Man by number is to manifest His single imperfection, and beget Like of his like, his image multiplied, In unity defective; which requires Collateral love, and dearest amity. Thou in thy secresy although alone, Best with thyself accompanied, seekest not Social communication; yet, so pleased, Canst raise thy creature to what highth thou wilt Of union or communion, deified: I, by conversing, cannot these erect From prone; nor in their ways complacence find. Thus I emboldened spake, and freedom used Permissive, and acceptance found; which gained This answer from the gracious Voice Divine. Thus far to try thee, Adam, I was pleased; And find thee knowing, not of beasts alone, Which thou hast rightly named, but of thyself; Expressing well the spirit within thee free, My image, not imparted to the brute; Whose fellowship therefore unmeet for thee Good reason was thou freely shouldst dislike; And be so minded still: I, ere thou spakest, Knew it not good for Man to be alone; And no such company as then thou sawest Intended thee; for trial only brought, To see how thou couldest judge of fit and meet: What next I bring shall please thee, be assured, Thy likeness, thy fit help, thy other self, Thy wish exactly to thy heart's desire. He ended, or I heard no more; for now My earthly by his heavenly overpowered, Which it had long stood under, strained to the highth In that celestial colloquy sublime, As with an object that excels the sense Dazzled and spent, sunk down; and sought repair Of sleep, which instantly fell on me, called By Nature as in aid, and closed mine eyes. Mine eyes he closed, but open left the cell Of fancy, my internal sight; by which, Abstract as in a trance, methought I saw, Though sleeping, where I lay, and saw the shape Still glorious before whom awake I stood: Who stooping opened my left side, and took From thence a rib, with cordial spirits warm, And life-blood streaming fresh; wide was the wound, But suddenly with flesh filled up and healed: The rib he formed and fashioned with his hands; Under his forming hands a creature grew, Man-like, but different sex; so lovely fair, That what seemed fair in all the world, seemed now Mean, or in her summed up, in her contained And in her looks; which from that time infused Sweetness into my heart, unfelt before, And into all things from her air inspired The spirit of love and amorous delight. She disappeared, and left me dark; I waked To find her, or for ever to deplore Her loss, and other pleasures all abjure: When out of hope, behold her, not far off, Such as I saw her in my dream, adorned With what all Earth or Heaven could bestow To make her amiable: On she came, Led by her heavenly Maker, though unseen, And guided by his voice; nor uninformed Of nuptial sanctity, and marriage rites: Grace was in all her steps, Heaven in her eye, In every gesture dignity and love. I, overjoyed, could not forbear aloud. This turn hath made amends; thou hast fulfilled Thy words, Creator bounteous and benign, Giver of all things fair! but fairest this Of all thy gifts! nor enviest. I now see Bone of my bone, flesh of my flesh, myself Before me: Woman is her name;of Man Extracted: for this cause he shall forego Father and mother, and to his wife adhere; And they shall be one flesh, one heart, one soul. She heard me thus; and though divinely brought, Yet innocence, and virgin modesty, Her virtue, and the conscience of her worth, That would be wooed, and not unsought be won, Not obvious, not obtrusive, but, retired, The more desirable; or, to say all, Nature herself, though pure of sinful thought, Wrought in her so, that, seeing me, she turned: I followed her; she what was honour knew, And with obsequious majesty approved My pleaded reason. To the nuptial bower I led her blushing like the morn: All Heaven, And happy constellations, on that hour Shed their selectest influence; the Earth Gave sign of gratulation, and each hill; Joyous the birds; fresh gales and gentle airs Whispered it to the woods, and from their wings Flung rose, flung odours from the spicy shrub, Disporting, till the amorous bird of night Sung spousal, and bid haste the evening-star On his hill top, to light the bridal lamp. Thus have I told thee all my state, and brought My story to the sum of earthly bliss, Which I enjoy; and must confess to find In all things else delight indeed, but such As, used or not, works in the mind no change, Nor vehement desire; these delicacies I mean of taste, sight, smell, herbs, fruits, and flowers, Walks, and the melody of birds: but here Far otherwise, transported I behold, Transported touch; here passion first I felt, Commotion strange! in all enjoyments else Superiour and unmoved; here only weak Against the charm of Beauty's powerful glance. Or Nature failed in me, and left some part Not proof enough such object to sustain; Or, from my side subducting, took perhaps More than enough; at least on her bestowed Too much of ornament, in outward show Elaborate, of inward less exact. For well I understand in the prime end Of Nature her the inferiour, in the mind And inward faculties, which most excel; In outward also her resembling less His image who made both, and less expressing The character of that dominion given O'er other creatures: Yet when I approach Her loveliness, so absolute she seems And in herself complete, so well to know Her own, that what she wills to do or say, Seems wisest, virtuousest, discreetest, best: All higher knowledge in her presence falls Degraded; Wisdom in discourse with her Loses discountenanced, and like Folly shows; Authority and Reason on her wait, As one intended first, not after made Occasionally; and, to consummate all, Greatness of mind and Nobleness their seat Build in her loveliest, and create an awe About her, as a guard angelick placed. To whom the Angel with contracted brow. Accuse not Nature, she hath done her part; Do thou but thine; and be not diffident Of Wisdom; she deserts thee not, if thou Dismiss not her, when most thou needest her nigh, By attributing overmuch to things Less excellent, as thou thyself perceivest. For, what admirest thou, what transports thee so, An outside? fair, no doubt, and worthy well Thy cherishing, thy honouring, and thy love; Not thy subjection: Weigh with her thyself; Then value: Oft-times nothing profits more Than self-esteem, grounded on just and right Well managed; of that skill the more thou knowest, The more she will acknowledge thee her head, And to realities yield all her shows: Made so adorn for thy delight the more, So awful, that with honour thou mayest love Thy mate, who sees when thou art seen least wise. But if the sense of touch, whereby mankind Is propagated, seem such dear delight Beyond all other; think the same vouchsafed To cattle and each beast; which would not be To them made common and divulged, if aught Therein enjoyed were worthy to subdue The soul of man, or passion in him move. What higher in her society thou findest Attractive, human, rational, love still; In loving thou dost well, in passion not, Wherein true love consists not: Love refines The thoughts, and heart enlarges; hath his seat In reason, and is judicious; is the scale By which to heavenly love thou mayest ascend, Not sunk in carnal pleasure; for which cause, Among the beasts no mate for thee was found. To whom thus, half abashed, Adam replied. Neither her outside formed so fair, nor aught In procreation common to all kinds, (Though higher of the genial bed by far, And with mysterious reverence I deem,) So much delights me, as those graceful acts, Those thousand decencies, that daily flow From all her words and actions mixed with love And sweet compliance, which declare unfeigned Union of mind, or in us both one soul; Harmony to behold in wedded pair More grateful than harmonious sound to the ear. Yet these subject not; I to thee disclose What inward thence I feel, not therefore foiled, Who meet with various objects, from the sense Variously representing; yet, still free, Approve the best, and follow what I approve. To love, thou blamest me not; for Love, thou sayest, Leads up to Heaven, is both the way and guide; Bear with me then, if lawful what I ask: Love not the heavenly Spirits, and how their love Express they? by looks only? or do they mix Irradiance, virtual or immediate touch? To whom the Angel, with a smile that glowed Celestial rosy red, Love's proper hue, Answered. Let it suffice thee that thou knowest Us happy, and without love no happiness. Whatever pure thou in the body enjoyest, (And pure thou wert created) we enjoy In eminence; and obstacle find none Of membrane, joint, or limb, exclusive bars; Easier than air with air, if Spirits embrace, Total they mix, union of pure with pure Desiring, nor restrained conveyance need, As flesh to mix with flesh, or soul with soul. But I can now no more; the parting sun Beyond the Earth's green Cape and verdant Isles Hesperian sets, my signal to depart. Be strong, live happy, and love! But, first of all, Him, whom to love is to obey, and keep His great command; take heed lest passion sway Thy judgement to do aught, which else free will Would not admit: thine, and of all thy sons, The weal or woe in thee is placed; beware! I in thy persevering shall rejoice, And all the Blest: Stand fast;to stand or fall Free in thine own arbitrement it lies. Perfect within, no outward aid require; And all temptation to transgress repel. So saying, he arose; whom Adam thus Followed with benediction. Since to part, Go, heavenly guest, ethereal Messenger, Sent from whose sovran goodness I adore! Gentle to me and affable hath been Thy condescension, and shall be honoured ever With grateful memory: Thou to mankind Be good and friendly still, and oft return! So parted they; the Angel up to Heaven From the thick shade, and Adam to his bower. Book IX No more of talk where God or Angel guest With Man, as with his friend, familiar us'd, To sit indulgent, and with him partake Rural repast; permitting him the while Venial discourse unblam'd. I now must change Those notes to tragick; foul distrust, and breach Disloyal on the part of Man, revolt, And disobedience: on the part of Heaven Now alienated, distance and distaste, Anger and just rebuke, and judgement given, That brought into this world a world of woe, Sin and her shadow Death, and Misery Death's harbinger: Sad talk!yet argument Not less but more heroick than the wrath Of stern Achilles on his foe pursued Thrice fugitive about Troy wall; or rage Of Turnus for Lavinia disespous'd; Or Neptune's ire, or Juno's, that so long Perplexed the Greek, and Cytherea's son: 00482129 If answerable style I can obtain Of my celestial patroness, who deigns Her nightly visitation unimplor'd, And dictates to me slumbering; or inspires Easy my unpremeditated verse: Since first this subject for heroick song Pleas'd me long choosing, and beginning late; Not sedulous by nature to indite Wars, hitherto the only argument Heroick deem'd chief mastery to dissect With long and tedious havock fabled knights In battles feign'd; the better fortitude Of patience and heroick martyrdom Unsung; or to describe races and games, Or tilting furniture, imblazon'd shields, Impresses quaint, caparisons and steeds, Bases and tinsel trappings, gorgeous knights At joust and tournament; then marshall'd feast Serv'd up in hall with sewers and seneshals; The skill of artifice or office mean, Not that which justly gives heroick name To person, or to poem. Me, of these Nor skill'd nor studious, higher argument Remains; sufficient of itself to raise That name, unless an age too late, or cold Climate, or years, damp my intended wing Depress'd; and much they may, if all be mine, Not hers, who brings it nightly to my ear. The sun was sunk, and after him the star Of Hesperus, whose office is to bring Twilight upon the earth, short arbiter "twixt day and night, and now from end to end Night's hemisphere had veil'd the horizon round: When satan, who late fled before the threats Of Gabriel out of Eden, now improv'd In meditated fraud and malice, bent On Man's destruction, maugre what might hap Of heavier on himself, fearless returned From compassing the earth; cautious of day, Since Uriel, regent of the sun, descried His entrance, and foreworned the Cherubim That kept their watch; thence full of anguish driven, The space of seven continued nights he rode With darkness; thrice the equinoctial line He circled; four times crossed the car of night From pole to pole, traversing each colure; On the eighth returned; and, on the coast averse From entrance or Cherubick watch, by stealth Found unsuspected way. There was a place, Now not, though sin, not time, first wrought the change, Where Tigris, at the foot of Paradise, Into a gulf shot under ground, till part Rose up a fountain by the tree of life: In with the river sunk, and with it rose Satan, involved in rising mist; then sought Where to lie hid; sea he had searched, and land, From Eden over Pontus and the pool Maeotis, up beyond the river Ob; Downward as far antarctick; and in length, West from Orontes to the ocean barred At Darien ; thence to the land where flows Ganges and Indus: Thus the orb he roamed With narrow search; and with inspection deep Considered every creature, which of all Most opportune might serve his wiles; and found The Serpent subtlest beast of all the field. Him after long debate, irresolute Of thoughts revolved, his final sentence chose Fit vessel, fittest imp of fraud, in whom To enter, and his dark suggestions hide From sharpest sight: for, in the wily snake Whatever sleights, none would suspicious mark, As from his wit and native subtlety Proceeding; which, in other beasts observed, Doubt might beget of diabolick power Active within, beyond the sense of brute. Thus he resolved, but first from inward grief His bursting passion into plaints thus poured. More justly, seat worthier of Gods, as built With second thoughts, reforming what was old! O Earth, how like to Heaven, if not preferred For what God, after better, worse would build? Terrestrial Heaven, danced round by other Heavens That shine, yet bear their bright officious lamps, Light above light, for thee alone, as seems, In thee concentring all their precious beams Of sacred influence! As God in Heaven Is center, yet extends to all; so thou, Centring, receivest from all those orbs: in thee, Not in themselves, all their known virtue appears Productive in herb, plant, and nobler birth Of creatures animate with gradual life Of growth, sense, reason, all summed up in Man. With what delight could I have walked thee round, If I could joy in aught, sweet interchange Of hill, and valley, rivers, woods, and plains, Now land, now sea and shores with forest crowned, Rocks, dens, and caves! But I in none of these Find place or refuge; and the more I see Pleasures about me, so much more I feel Torment within me, as from the hateful siege Of contraries: all good to me becomes Bane, and in Heaven much worse would be my state. But neither here seek I, no nor in Heaven To dwell, unless by mastering Heaven's Supreme; Nor hope to be myself less miserable By what I seek, but others to make such As I, though thereby worse to me redound: For only in destroying I find ease To my relentless thoughts; and, him destroyed, Or won to what may work his utter loss, For whom all this was made, all this will soon Follow, as to him linked in weal or woe; In woe then; that destruction wide may range: To me shall be the glory sole among The infernal Powers, in one day to have marred What he, Almighty styled, six nights and days Continued making; and who knows how long Before had been contriving? though perhaps Not longer than since I, in one night, freed From servitude inglorious well nigh half The angelick name, and thinner left the throng Of his adorers: He, to be avenged, And to repair his numbers thus impaired, Whether such virtue spent of old now failed More Angels to create, if they at least Are his created, or, to spite us more, Determined to advance into our room A creature formed of earth, and him endow, Exalted from so base original, With heavenly spoils, our spoils: What he decreed, He effected; Man he made, and for him built Magnificent this world, and earth his seat, Him lord pronounced; and, O indignity! Subjected to his service angel-wings, And flaming ministers to watch and tend Their earthly charge: Of these the vigilance I dread; and, to elude, thus wrapt in mist Of midnight vapour glide obscure, and pry In every bush and brake, where hap may find The serpent sleeping; in whose mazy folds To hide me, and the dark intent I bring. O foul descent! that I, who erst contended With Gods to sit the highest, am now constrained Into a beast; and, mixed with bestial slime, This essence to incarnate and imbrute, That to the highth of Deity aspired! But what will not ambition and revenge Descend to? Who aspires, must down as low As high he soared; obnoxious, first or last, To basest things. Revenge, at first though sweet, Bitter ere long, back on itself recoils: Let it; I reck not, so it light well aimed, Since higher I fall short, on him who next Provokes my envy, this new favourite Of Heaven, this man of clay, son of despite, Whom, us the more to spite, his Maker raised From dust: Spite then with spite is best repaid. So saying, through each thicket dank or dry, Like a black mist low-creeping, he held on His midnight-search, where soonest he might find The serpent; him fast-sleeping soon he found In labyrinth of many a round self-rolled, His head the midst, well stored with subtile wiles: Not yet in horrid shade or dismal den, Nor nocent yet; but, on the grassy herb, Fearless unfeared he slept: in at his mouth The Devil entered; and his brutal sense, In heart or head, possessing, soon inspired With act intelligential; but his sleep Disturbed not, waiting close the approach of morn. Now, when as sacred light began to dawn In Eden on the humid flowers, that breathed Their morning incense, when all things, that breathe, From the Earth's great altar send up silent praise To the Creator, and his nostrils fill With grateful smell, forth came the human pair, And joined their vocal worship to the quire Of creatures wanting voice; that done, partake The season prime for sweetest scents and airs: Then commune, how that day they best may ply Their growing work: for much their work out-grew The hands' dispatch of two gardening so wide, And Eve first to her husband thus began. Adam, well may we labour still to dress This garden, still to tend plant, herb, and flower, Our pleasant task enjoined; but, till more hands Aid us, the work under our labour grows, Luxurious by restraint; what we by day Lop overgrown, or prune, or prop, or bind, One night or two with wanton growth derides Tending to wild. Thou therefore now advise, Or bear what to my mind first thoughts present: Let us divide our labours; thou, where choice Leads thee, or where most needs, whether to wind The woodbine round this arbour, or direct The clasping ivy where to climb; while I, In yonder spring of roses intermixed With myrtle, find what to redress till noon: For, while so near each other thus all day Our task we choose, what wonder if so near Looks intervene and smiles, or object new Casual discourse draw on; which intermits Our day's work, brought to little, though begun Early, and the hour of supper comes unearned? To whom mild answer Adam thus returned. Sole Eve, associate sole, to me beyond Compare above all living creatures dear! Well hast thou motioned, well thy thoughts employed, How we might best fulfil the work which here God hath assigned us; nor of me shalt pass Unpraised: for nothing lovelier can be found In woman, than to study houshold good, And good works in her husband to promote. Yet not so strictly hath our Lord imposed Labour, as to debar us when we need Refreshment, whether food, or talk between, Food of the mind, or this sweet intercourse Of looks and smiles; for smiles from reason flow, To brute denied, and are of love the food; Love, not the lowest end of human life. For not to irksome toil, but to delight, He made us, and delight to reason joined. These paths and bowers doubt not but our joint hands Will keep from wilderness with ease, as wide As we need walk, till younger hands ere long Assist us; But, if much converse perhaps Thee satiate, to short absence I could yield: For solitude sometimes is best society, And short retirement urges sweet return. But other doubt possesses me, lest harm Befall thee severed from me; for thou knowest What hath been warned us, what malicious foe Envying our happiness, and of his own Despairing, seeks to work us woe and shame By sly assault; and somewhere nigh at hand Watches, no doubt, with greedy hope to find His wish and best advantage, us asunder; Hopeless to circumvent us joined, where each To other speedy aid might lend at need: Whether his first design be to withdraw Our fealty from God, or to disturb Conjugal love, than which perhaps no bliss Enjoyed by us excites his envy more; Or this, or worse, leave not the faithful side That gave thee being, still shades thee, and protects. The wife, where danger or dishonour lurks, Safest and seemliest by her husband stays, Who guards her, or with her the worst endures. To whom the virgin majesty of Eve, As one who loves, and some unkindness meets, With sweet austere composure thus replied. Offspring of Heaven and Earth, and all Earth's Lord! That such an enemy we have, who seeks Our ruin, both by thee informed I learn, And from the parting Angel over-heard, As in a shady nook I stood behind, Just then returned at shut of evening flowers. But, that thou shouldst my firmness therefore doubt To God or thee, because we have a foe May tempt it, I expected not to hear. His violence thou fearest not, being such As we, not capable of death or pain, Can either not receive, or can repel. His fraud is then thy fear; which plain infers Thy equal fear, that my firm faith and love Can by his fraud be shaken or seduced; Thoughts, which how found they harbour in thy breast, Adam, mis-thought of her to thee so dear? To whom with healing words Adam replied. Daughter of God and Man, immortal Eve! For such thou art; from sin and blame entire: Not diffident of thee do I dissuade Thy absence from my sight, but to avoid The attempt itself, intended by our foe. For he who tempts, though in vain, at least asperses The tempted with dishonour foul; supposed Not incorruptible of faith, not proof Against temptation: Thou thyself with scorn And anger wouldst resent the offered wrong, Though ineffectual found: misdeem not then, If such affront I labour to avert From thee alone, which on us both at once The enemy, though bold, will hardly dare; Or daring, first on me the assault shall light. Nor thou his malice and false guile contemn; Subtle he needs must be, who could seduce Angels; nor think superfluous other's aid. I, from the influence of thy looks, receive Access in every virtue; in thy sight More wise, more watchful, stronger, if need were Of outward strength; while shame, thou looking on, Shame to be overcome or over-reached, Would utmost vigour raise, and raised unite. Why shouldst not thou like sense within thee feel When I am present, and thy trial choose With me, best witness of thy virtue tried? So spake domestick Adam in his care And matrimonial love; but Eve, who thought Less attributed to her faith sincere, Thus her reply with accent sweet renewed. If this be our condition, thus to dwell In narrow circuit straitened by a foe, Subtle or violent, we not endued Single with like defence, wherever met; How are we happy, still in fear of harm? But harm precedes not sin: only our foe, Tempting, affronts us with his foul esteem Of our integrity: his foul esteem Sticks no dishonour on our front, but turns Foul on himself; then wherefore shunned or feared By us? who rather double honour gain From his surmise proved false; find peace within, Favour from Heaven, our witness, from the event. And what is faith, love, virtue, unassayed Alone, without exteriour help sustained? Let us not then suspect our happy state Left so imperfect by the Maker wise, As not secure to single or combined. Frail is our happiness, if this be so, And Eden were no Eden, thus exposed. To whom thus Adam fervently replied. O Woman, best are all things as the will Of God ordained them: His creating hand Nothing imperfect or deficient left Of all that he created, much less Man, Or aught that might his happy state secure, Secure from outward force; within himself The danger lies, yet lies within his power: Against his will he can receive no harm. But God left free the will; for what obeys Reason, is free; and Reason he made right, But bid her well be ware, and still erect; Lest, by some fair-appearing good surprised, She dictate false; and mis-inform the will To do what God expressly hath forbid. Not then mistrust, but tender love, enjoins, That I should mind thee oft; and mind thou me. Firm we subsist, yet possible to swerve; Since Reason not impossibly may meet Some specious object by the foe suborned, And fall into deception unaware, Not keeping strictest watch, as she was warned. Seek not temptation then, which to avoid Were better, and most likely if from me Thou sever not: Trial will come unsought. Wouldst thou approve thy constancy, approve First thy obedience; the other who can know, Not seeing thee attempted, who attest? But, if thou think, trial unsought may find Us both securer than thus warned thou seemest, Go; for thy stay, not free, absents thee more; Go in thy native innocence, rely On what thou hast of virtue; summon all! For God towards thee hath done his part, do thine. So spake the patriarch of mankind; but Eve Persisted; yet submiss, though last, replied. With thy permission then, and thus forewarned Chiefly by what thy own last reasoning words Touched only; that our trial, when least sought, May find us both perhaps far less prepared, The willinger I go, nor much expect A foe so proud will first the weaker seek; So bent, the more shall shame him his repulse. Thus saying, from her husband's hand her hand Soft she withdrew; and, like a Wood-Nymph light, Oread or Dryad, or of Delia's train, Betook her to the groves; but Delia's self In gait surpassed, and Goddess-like deport, Though not as she with bow and quiver armed, But with such gardening tools as Art yet rude, Guiltless of fire, had formed, or Angels brought. To Pales, or Pomona, thus adorned, Likest she seemed, Pomona when she fled Vertumnus, or to Ceres in her prime, Yet virgin of Proserpina from Jove. Her long with ardent look his eye pursued Delighted, but desiring more her stay. Oft he to her his charge of quick return Repeated; she to him as oft engaged To be returned by noon amid the bower, And all things in best order to invite Noontide repast, or afternoon's repose. O much deceived, much failing, hapless Eve, Of thy presumed return! event perverse! Thou never from that hour in Paradise Foundst either sweet repast, or sound repose; Such ambush, hid among sweet flowers and shades, Waited with hellish rancour imminent To intercept thy way, or send thee back Despoiled of innocence, of faith, of bliss! For now, and since first break of dawn, the Fiend, Mere serpent in appearance, forth was come; And on his quest, where likeliest he might find The only two of mankind, but in them The whole included race, his purposed prey. In bower and field he sought, where any tuft Of grove or garden-plot more pleasant lay, Their tendance, or plantation for delight; By fountain or by shady rivulet He sought them both, but wished his hap might find Eve separate; he wished, but not with hope Of what so seldom chanced; when to his wish, Beyond his hope, Eve separate he spies, Veiled in a cloud of fragrance, where she stood, Half spied, so thick the roses blushing round About her glowed, oft stooping to support Each flower of slender stalk, whose head, though gay Carnation, purple, azure, or specked with gold, Hung drooping unsustained; them she upstays Gently with myrtle band, mindless the while Herself, though fairest unsupported flower, From her best prop so far, and storm so nigh. Nearer he drew, and many a walk traversed Of stateliest covert, cedar, pine, or palm; Then voluble and bold, now hid, now seen, Among thick-woven arborets, and flowers Imbordered on each bank, the hand of Eve: Spot more delicious than those gardens feigned Or of revived Adonis, or renowned Alcinous, host of old Laertes' son; Or that, not mystick, where the sapient king Held dalliance with his fair Egyptian spouse. Much he the place admired, the person more. As one who long in populous city pent, Where houses thick and sewers annoy the air, Forth issuing on a summer's morn, to breathe Among the pleasant villages and farms Adjoined, from each thing met conceives delight; The smell of grain, or tedded grass, or kine, Or dairy, each rural sight, each rural sound; If chance, with nymph-like step, fair virgin pass, What pleasing seemed, for her now pleases more; She most, and in her look sums all delight: Such pleasure took the Serpent to behold This flowery plat, the sweet recess of Eve Thus early, thus alone: Her heavenly form Angelick, but more soft, and feminine, Her graceful innocence, her every air Of gesture, or least action, overawed His malice, and with rapine sweet bereaved His fierceness of the fierce intent it brought: That space the Evil-one abstracted stood From his own evil, and for the time remained Stupidly good; of enmity disarmed, Of guile, of hate, of envy, of revenge: But the hot Hell that always in him burns, Though in mid Heaven, soon ended his delight, And tortures him now more, the more he sees Of pleasure, not for him ordained: then soon Fierce hate he recollects, and all his thoughts Of mischief, gratulating, thus excites. Thoughts, whither have ye led me! with what sweet Compulsion thus transported, to forget What hither brought us! hate, not love;nor hope Of Paradise for Hell, hope here to taste Of pleasure; but all pleasure to destroy, Save what is in destroying; other joy To me is lost. Then, let me not let pass Occasion which now smiles; behold alone The woman, opportune to all attempts, Her husband, for I view far round, not nigh, Whose higher intellectual more I shun, And strength, of courage haughty, and of limb Heroick built, though of terrestrial mould; Foe not informidable! exempt from wound, I not; so much hath Hell debased, and pain Enfeebled me, to what I was in Heaven. She fair, divinely fair, fit love for Gods! Not terrible, though terrour be in love And beauty, not approached by stronger hate, Hate stronger, under show of love well feigned; The way which to her ruin now I tend. So spake the enemy of mankind, enclosed In serpent, inmate bad! and toward Eve Addressed his way: not with indented wave, Prone on the ground, as since; but on his rear, Circular base of rising folds, that towered Fold above fold, a surging maze! his head Crested aloft, and carbuncle his eyes; With burnished neck of verdant gold, erect Amidst his circling spires, that on the grass Floated redundant: pleasing was his shape And lovely; never since of serpent-kind Lovelier, not those that in Illyria changed, Hermione and Cadmus, or the god In Epidaurus; nor to which transformed Ammonian Jove, or Capitoline, was seen; He with Olympias; this with her who bore Scipio, the highth of Rome. With tract oblique At first, as one who sought access, but feared To interrupt, side-long he works his way. As when a ship, by skilful steersmen wrought Nigh river's mouth or foreland, where the wind Veers oft, as oft so steers, and shifts her sail: So varied he, and of his tortuous train Curled many a wanton wreath in sight of Eve, To lure her eye; she, busied, heard the sound Of rusling leaves, but minded not, as used To such disport before her through the field, From every beast; more duteous at her call, Than at Circean call the herd disguised. He, bolder now, uncalled before her stood, But as in gaze admiring: oft he bowed His turret crest, and sleek enamelled neck, Fawning; and licked the ground whereon she trod. His gentle dumb expression turned at length The eye of Eve to mark his play; he, glad Of her attention gained, with serpent-tongue Organick, or impulse of vocal air, His fraudulent temptation thus began. Wonder not, sovran Mistress, if perhaps Thou canst, who art sole wonder! much less arm Thy looks, the Heaven of mildness, with disdain, Displeased that I approach thee thus, and gaze Insatiate; I thus single;nor have feared Thy awful brow, more awful thus retired. Fairest resemblance of thy Maker fair, Thee all things living gaze on, all things thine By gift, and thy celestial beauty adore With ravishment beheld! there best beheld, Where universally admired; but here In this enclosure wild, these beasts among, Beholders rude, and shallow to discern Half what in thee is fair, one man except, Who sees thee? and what is one? who should be seen A Goddess among Gods, adored and served By Angels numberless, thy daily train. So glozed the Tempter, and his proem tuned: Into the heart of Eve his words made way, Though at the voice much marvelling; at length, Not unamazed, she thus in answer spake. What may this mean? language of man pronounced By tongue of brute, and human sense expressed? The first, at least, of these I thought denied To beasts; whom God, on their creation-day, Created mute to all articulate sound: The latter I demur; for in their looks Much reason, and in their actions, oft appears. Thee, Serpent, subtlest beast of all the field I knew, but not with human voice endued; Redouble then this miracle, and say, How camest thou speakable of mute, and how To me so friendly grown above the rest Of brutal kind, that daily are in sight? Say, for such wonder claims attention due. To whom the guileful Tempter thus replied. Empress of this fair world, resplendent Eve! Easy to me it is to tell thee all What thou commandest; and right thou shouldst be obeyed: I was at first as other beasts that graze The trodden herb, of abject thoughts and low, As was my food; nor aught but food discerned Or sex, and apprehended nothing high: Till, on a day roving the field, I chanced A goodly tree far distant to behold Loaden with fruit of fairest colours mixed, Ruddy and gold: I nearer drew to gaze; When from the boughs a savoury odour blown, Grateful to appetite, more pleased my sense Than smell of sweetest fennel, or the teats Of ewe or goat dropping with milk at even, Unsucked of lamb or kid, that tend their play. To satisfy the sharp desire I had Of tasting those fair apples, I resolved Not to defer; hunger and thirst at once, Powerful persuaders, quickened at the scent Of that alluring fruit, urged me so keen. About the mossy trunk I wound me soon; For, high from ground, the branches would require Thy utmost reach or Adam's: Round the tree All other beasts that saw, with like desire Longing and envying stood, but could not reach. Amid the tree now got, where plenty hung Tempting so nigh, to pluck and eat my fill I spared not; for, such pleasure till that hour, At feed or fountain, never had I found. Sated at length, ere long I might perceive Strange alteration in me, to degree Of reason in my inward powers; and speech Wanted not long; though to this shape retained. Thenceforth to speculations high or deep I turned my thoughts, and with capacious mind Considered all things visible in Heaven, Or Earth, or Middle; all things fair and good: But all that fair and good in thy divine Semblance, and in thy beauty's heavenly ray, United I beheld; no fair to thine Equivalent or second! which compelled Me thus, though importune perhaps, to come And gaze, and worship thee of right declared Sovran of creatures, universal Dame! So talked the spirited sly Snake; and Eve, Yet more amazed, unwary thus replied. Serpent, thy overpraising leaves in doubt The virtue of that fruit, in thee first proved: But say, where grows the tree? from hence how far? For many are the trees of God that grow In Paradise, and various, yet unknown To us; in such abundance lies our choice, As leaves a greater store of fruit untouched, Still hanging incorruptible, till men Grow up to their provision, and more hands Help to disburden Nature of her birth. To whom the wily Adder, blithe and glad. Empress, the way is ready, and not long; Beyond a row of myrtles, on a flat, Fast by a fountain, one small thicket past Of blowing myrrh and balm: if thou accept My conduct, I can bring thee thither soon Lead then, said Eve. He, leading, swiftly rolled In tangles, and made intricate seem straight, To mischief swift. Hope elevates, and joy Brightens his crest; as when a wandering fire, Compact of unctuous vapour, which the night Condenses, and the cold environs round, Kindled through agitation to a flame, Which oft, they say, some evil Spirit attends, Hovering and blazing with delusive light, Misleads the amazed night-wanderer from his way To bogs and mires, and oft through pond or pool; There swallowed up and lost, from succour far. So glistered the dire Snake, and into fraud Led Eve, our credulous mother, to the tree Of prohibition, root of all our woe; Which when she saw, thus to her guide she spake. Serpent, we might have spared our coming hither, Fruitless to me, though fruit be here to excess, The credit of whose virtue rest with thee; Wonderous indeed, if cause of such effects. But of this tree we may not taste nor touch; God so commanded, and left that command Sole daughter of his voice; the rest, we live Law to ourselves; our reason is our law. To whom the Tempter guilefully replied. Indeed! hath God then said that of the fruit Of all these garden-trees ye shall not eat, Yet Lords declared of all in earth or air$? To whom thus Eve, yet sinless. Of the fruit Of each tree in the garden we may eat; But of the fruit of this fair tree amidst The garden, God hath said, Ye shall not eat Thereof, nor shall ye touch it, lest ye die. She scarce had said, though brief, when now more bold The Tempter, but with show of zeal and love To Man, and indignation at his wrong, New part puts on; and, as to passion moved, Fluctuates disturbed, yet comely and in act Raised, as of some great matter to begin. As when of old some orator renowned, In Athens or free Rome, where eloquence Flourished, since mute! to some great cause addressed, Stood in himself collected; while each part, Motion, each act, won audience ere the tongue; Sometimes in highth began, as no delay Of preface brooking, through his zeal of right: So standing, moving, or to highth up grown, The Tempter, all impassioned, thus began. O sacred, wise, and wisdom-giving Plant, Mother of science! now I feel thy power Within me clear; not only to discern Things in their causes, but to trace the ways Of highest agents, deemed however wise. Queen of this universe! do not believe Those rigid threats of death: ye shall not die: How should you? by the fruit? it gives you life To knowledge; by the threatener? look on me, Me, who have touched and tasted; yet both live, And life more perfect have attained than Fate Meant me, by venturing higher than my lot. Shall that be shut to Man, which to the Beast Is open? or will God incense his ire For such a petty trespass? and not praise Rather your dauntless virtue, whom the pain Of death denounced, whatever thing death be, Deterred not from achieving what might lead To happier life, knowledge of good and evil; Of good, how just? of evil, if what is evil Be real, why not known, since easier shunned? God therefore cannot hurt ye, and be just; Not just, not God; not feared then, nor obeyed: Your fear itself of death removes the fear. Why then was this forbid? Why, but to awe; Why, but to keep ye low and ignorant, His worshippers? He knows that in the day Ye eat thereof, your eyes that seem so clear, Yet are but dim, shall perfectly be then Opened and cleared, and ye shall be as Gods, Knowing both good and evil, as they know. That ye shall be as Gods, since I as Man, Internal Man, is but proportion meet; I, of brute, human; ye, of human, Gods. So ye shall die perhaps, by putting off Human, to put on Gods; death to be wished, Though threatened, which no worse than this can bring. And what are Gods, that Man may not become As they, participating God-like food? The Gods are first, and that advantage use On our belief, that all from them proceeds: I question it; for this fair earth I see, Warmed by the sun, producing every kind; Them, nothing: if they all things, who enclosed Knowledge of good and evil in this tree, That whoso eats thereof, forthwith attains Wisdom without their leave? and wherein lies The offence, that Man should thus attain to know? What can your knowledge hurt him, or this tree Impart against his will, if all be his? Or is it envy? and can envy dwell In heavenly breasts? These, these, and many more Causes import your need of this fair fruit. Goddess humane, reach then, and freely taste! He ended; and his words, replete with guile, Into her heart too easy entrance won: Fixed on the fruit she gazed, which to behold Might tempt alone; and in her ears the sound Yet rung of his persuasive words, impregned With reason, to her seeming, and with truth: Mean while the hour of noon drew on, and waked An eager appetite, raised by the smell So savoury of that fruit, which with desire, Inclinable now grown to touch or taste, Solicited her longing eye; yet first Pausing a while, thus to herself she mused. Great are thy virtues, doubtless, best of fruits, Though kept from man, and worthy to be admired; Whose taste, too long forborn, at first assay Gave elocution to the mute, and taught The tongue not made for speech to speak thy praise: Thy praise he also, who forbids thy use, Conceals not from us, naming thee the tree Of knowledge, knowledge both of good and evil; Forbids us then to taste! but his forbidding Commends thee more, while it infers the good By thee communicated, and our want: For good unknown sure is not had; or, had And yet unknown, is as not had at all. In plain then, what forbids he but to know, Forbids us good, forbids us to be wise? Such prohibitions bind not. But, if death Bind us with after-bands, what profits then Our inward freedom? In the day we eat Of this fair fruit, our doom is, we shall die! How dies the Serpent? he hath eaten and lives, And knows, and speaks, and reasons, and discerns, Irrational till then. For us alone Was death invented? or to us denied This intellectual food, for beasts reserved? For beasts it seems: yet that one beast which first Hath tasted envies not, but brings with joy The good befallen him, author unsuspect, Friendly to man, far from deceit or guile. What fear I then? rather, what know to fear Under this ignorance of good and evil, Of God or death, of law or penalty? Here grows the cure of all, this fruit divine, Fair to the eye, inviting to the taste, Of virtue to make wise: What hinders then To reach, and feed at once both body and mind? So saying, her rash hand in evil hour Forth reaching to the fruit, she plucked, she eat! Earth felt the wound; and Nature from her seat, Sighing through all her works, gave signs of woe, That all was lost. Back to the thicket slunk The guilty Serpent; and well might;for Eve, Intent now wholly on her taste, nought else Regarded; such delight till then, as seemed, In fruit she never tasted, whether true Or fancied so, through expectation high Of knowledge; not was Godhead from her thought. Greedily she ingorged without restraint, And knew not eating death: Satiate at length, And hightened as with wine, jocund and boon, Thus to herself she pleasingly began. O sovran, virtuous, precious of all trees In Paradise! of operation blest To sapience, hitherto obscured, infamed. And thy fair fruit let hang, as to no end Created; but henceforth my early care, Not without song, each morning, and due praise, Shall tend thee, and the fertile burden ease Of thy full branches offered free to all; Till, dieted by thee, I grow mature In knowledge, as the Gods, who all things know; Though others envy what they cannot give: For, had the gift been theirs, it had not here Thus grown. Experience, next, to thee I owe, Best guide; not following thee, I had remained In ignorance; thou openest wisdom's way, And givest access, though secret she retire. And I perhaps am secret: Heaven is high, High, and remote to see from thence distinct Each thing on Earth; and other care perhaps May have diverted from continual watch Our great Forbidder, safe with all his spies About him. But to Adam in what sort Shall I appear? shall I to him make known As yet my change, and give him to partake Full happiness with me, or rather not, But keeps the odds of knowledge in my power Without copartner? so to add what wants In female sex, the more to draw his love, And render me more equal; and perhaps, A thing not undesirable, sometime Superiour; for, inferiour, who is free This may be well: But what if God have seen, And death ensue? then I shall be no more! And Adam, wedded to another Eve, Shall live with her enjoying, I extinct; A death to think! Confirmed then I resolve, Adam shall share with me in bliss or woe: So dear I love him, that with him all deaths I could endure, without him live no life. So saying, from the tree her step she turned; But first low reverence done, as to the Power That dwelt within, whose presence had infused Into the plant sciential sap, derived From nectar, drink of Gods. Adam the while, Waiting desirous her return, had wove Of choicest flowers a garland, to adorn Her tresses, and her rural labours crown; As reapers oft are wont their harvest-queen. Great joy he promised to his thoughts, and new Solace in her return, so long delayed: Yet oft his heart, divine of something ill, Misgave him; he the faltering measure felt; And forth to meet her went, the way she took That morn when first they parted: by the tree Of knowledge he must pass; there he her met, Scarce from the tree returning; in her hand A bough of fairest fruit, that downy smiled, New gathered, and ambrosial smell diffused. To him she hasted; in her face excuse Came prologue, and apology too prompt; Which, with bland words at will, she thus addressed. Hast thou not wondered, Adam, at my stay? Thee I have missed, and thought it long, deprived Thy presence; agony of love till now Not felt, nor shall be twice; for never more Mean I to try, what rash untried I sought, The pain of absence from thy sight. But strange Hath been the cause, and wonderful to hear: This tree is not, as we are told, a tree Of danger tasted, nor to evil unknown Opening the way, but of divine effect To open eyes, and make them Gods who taste; And hath been tasted such: The serpent wise, Or not restrained as we, or not obeying, Hath eaten of the fruit; and is become, Not dead, as we are threatened, but thenceforth Endued with human voice and human sense, Reasoning to admiration; and with me Persuasively hath so prevailed, that I Have also tasted, and have also found The effects to correspond; opener mine eyes, Dim erst, dilated spirits, ampler heart, And growing up to Godhead; which for thee Chiefly I sought, without thee can despise. For bliss, as thou hast part, to me is bliss; Tedious, unshared with thee, and odious soon. Thou therefore also taste, that equal lot May join us, equal joy, as equal love; Lest, thou not tasting, different degree Disjoin us, and I then too late renounce Deity for thee, when Fate will not permit. Thus Eve with countenance blithe her story told; But in her cheek distemper flushing glowed. On the other side Adam, soon as he heard The fatal trespass done by Eve, amazed, Astonied stood and blank, while horrour chill Ran through his veins, and all his joints relaxed; From his slack hand the garland wreathed for Eve Down dropt, and all the faded roses shed: Speechless he stood and pale, till thus at length First to himself he inward silence broke. O fairest of Creation, last and best Of all God's works, Creature in whom excelled Whatever can to sight or thought be formed, Holy, divine, good, amiable, or sweet! How art thou lost! how on a sudden lost, Defaced, deflowered, and now to death devote! Rather, how hast thou yielded to transgress The strict forbiddance, how to violate The sacred fruit forbidden! Some cursed fraud Of enemy hath beguiled thee, yet unknown, And me with thee hath ruined; for with thee Certain my resolution is to die: How can I live without thee! how forego Thy sweet converse, and love so dearly joined, To live again in these wild woods forlorn! Should God create another Eve, and I Another rib afford, yet loss of thee Would never from my heart: no, no!I feel The link of Nature draw me: flesh of flesh, Bone of my bone thou art, and from thy state Mine never shall be parted, bliss or woe. So having said, as one from sad dismay Recomforted, and after thoughts disturbed Submitting to what seemed remediless, Thus in calm mood his words to Eve he turned. Bold deed thou hast presumed, adventurous Eve, And peril great provoked, who thus hast dared, Had it been only coveting to eye That sacred fruit, sacred to abstinence, Much more to taste it under ban to touch. But past who can recall, or done undo? Not God Omnipotent, nor Fate; yet so Perhaps thou shalt not die, perhaps the fact Is not so heinous now, foretasted fruit, Profaned first by the serpent, by him first Made common, and unhallowed, ere our taste; Nor yet on him found deadly; yet he lives; Lives, as thou saidst, and gains to live, as Man, Higher degree of life; inducement strong To us, as likely tasting to attain Proportional ascent; which cannot be But to be Gods, or Angels, demi-Gods. Nor can I think that God, Creator wise, Though threatening, will in earnest so destroy Us his prime creatures, dignified so high, Set over all his works; which in our fall, For us created, needs with us must fail, Dependant made; so God shall uncreate, Be frustrate, do, undo, and labour lose; Not well conceived of God, who, though his power Creation could repeat, yet would be loth Us to abolish, lest the Adversary Triumph, and say; "Fickle their state whom God "Most favours; who can please him long? Me first "He ruined, now Mankind; whom will he next?" Matter of scorn, not to be given the Foe. However I with thee have fixed my lot, Certain to undergo like doom: If death Consort with thee, death is to me as life; So forcible within my heart I feel The bond of Nature draw me to my own; My own in thee, for what thou art is mine; Our state cannot be severed; we are one, One flesh; to lose thee were to lose myself. So Adam; and thus Eve to him replied. O glorious trial of exceeding love, Illustrious evidence, example high! Engaging me to emulate; but, short Of thy perfection, how shall I attain, Adam, from whose dear side I boast me sprung, And gladly of our union hear thee speak, One heart, one soul in both; whereof good proof This day affords, declaring thee resolved, Rather than death, or aught than death more dread, Shall separate us, linked in love so dear, To undergo with me one guilt, one crime, If any be, of tasting this fair fruit; Whose virtue for of good still good proceeds, Direct, or by occasion, hath presented This happy trial of thy love, which else So eminently never had been known? Were it I thought death menaced would ensue This my attempt, I would sustain alone The worst, and not persuade thee, rather die Deserted, than oblige thee with a fact Pernicious to thy peace; chiefly assured Remarkably so late of thy so true, So faithful, love unequalled: but I feel Far otherwise the event; not death, but life Augmented, opened eyes, new hopes, new joys, Taste so divine, that what of sweet before Hath touched my sense, flat seems to this, and harsh. On my experience, Adam, freely taste, And fear of death deliver to the winds. So saying, she embraced him, and for joy Tenderly wept; much won, that he his love Had so ennobled, as of choice to incur Divine displeasure for her sake, or death. In recompence for such compliance bad Such recompence best merits from the bough She gave him of that fair enticing fruit With liberal hand: he scrupled not to eat, Against his better knowledge; not deceived, But fondly overcome with female charm. Earth trembled from her entrails, as again In pangs; and Nature gave a second groan; Sky loured; and, muttering thunder, some sad drops Wept at completing of the mortal sin Original: while Adam took no thought, Eating his fill; nor Eve to iterate Her former trespass feared, the more to sooth Him with her loved society; that now, As with new wine intoxicated both, They swim in mirth, and fancy that they feel Divinity within them breeding wings, Wherewith to scorn the earth: But that false fruit Far other operation first displayed, Carnal desire inflaming; he on Eve Began to cast lascivious eyes; she him As wantonly repaid; in lust they burn: Till Adam thus 'gan Eve to dalliance move. Eve, now I see thou art exact of taste, And elegant, of sapience no small part; Since to each meaning savour we apply, And palate call judicious; I the praise Yield thee, so well this day thou hast purveyed. Much pleasure we have lost, while we abstained From this delightful fruit, nor known till now True relish, tasting; if such pleasure be In things to us forbidden, it might be wished, For this one tree had been forbidden ten. But come, so well refreshed, now let us play, As meet is, after such delicious fare; For never did thy beauty, since the day I saw thee first and wedded thee, adorned With all perfections, so inflame my sense With ardour to enjoy thee, fairer now Than ever; bounty of this virtuous tree! So said he, and forbore not glance or toy Of amorous intent; well understood Of Eve, whose eye darted contagious fire. Her hand he seised; and to a shady bank, Thick over-head with verdant roof imbowered, He led her nothing loth; flowers were the couch, Pansies, and violets, and asphodel, And hyacinth; Earth's freshest softest lap. There they their fill of love and love's disport Took largely, of their mutual guilt the seal, The solace of their sin; till dewy sleep Oppressed them, wearied with their amorous play, Soon as the force of that fallacious fruit, That with exhilarating vapour bland About their spirits had played, and inmost powers Made err, was now exhaled; and grosser sleep, Bred of unkindly fumes, with conscious dreams Incumbered, now had left them; up they rose As from unrest; and, each the other viewing, Soon found their eyes how opened, and their minds How darkened; innocence, that as a veil Had shadowed them from knowing ill, was gone; Just confidence, and native righteousness, And honour, from about them, naked left To guilty Shame; he covered, but his robe Uncovered more. So rose the Danite strong, Herculean Samson, from the harlot-lap Of Philistean Dalilah, and waked Shorn of his strength. They destitute and bare Of all their virtue: Silent, and in face Confounded, long they sat, as strucken mute: Till Adam, though not less than Eve abashed, At length gave utterance to these words constrained. O Eve, in evil hour thou didst give ear To that false worm, of whomsoever taught To counterfeit Man's voice; true in our fall, False in our promised rising; since our eyes Opened we find indeed, and find we know Both good and evil; good lost, and evil got; Bad fruit of knowledge, if this be to know; Which leaves us naked thus, of honour void, Of innocence, of faith, of purity, Our wonted ornaments now soiled and stained, And in our faces evident the signs Of foul concupiscence; whence evil store; Even shame, the last of evils; of the first Be sure then.--How shall I behold the face Henceforth of God or Angel, erst with joy And rapture so oft beheld? Those heavenly shapes Will dazzle now this earthly with their blaze Insufferably bright. O! might I here In solitude live savage; in some glade Obscured, where highest woods, impenetrable To star or sun-light, spread their umbrage broad And brown as evening: Cover me, ye Pines! Ye Cedars, with innumerable boughs Hide me, where I may never see them more!-- But let us now, as in bad plight, devise What best may for the present serve to hide The parts of each from other, that seem most To shame obnoxious, and unseemliest seen; Some tree, whose broad smooth leaves together sewed, And girded on our loins, may cover round Those middle parts; that this new comer, Shame, There sit not, and reproach us as unclean. So counselled he, and both together went Into the thickest wood; there soon they chose The fig-tree; not that kind for fruit renowned, But such as at this day, to Indians known, In Malabar or Decan spreads her arms Branching so broad and long, that in the ground The bended twigs take root, and daughters grow About the mother tree, a pillared shade High over-arched, and echoing walks between: There oft the Indian herdsman, shunning heat, Shelters in cool, and tends his pasturing herds At loop-holes cut through thickest shade: Those leaves They gathered, broad as Amazonian targe; And, with what skill they had, together sewed, To gird their waist; vain covering, if to hide Their guilt and dreaded shame! O, how unlike To that first naked glory! Such of late Columbus found the American, so girt With feathered cincture; naked else, and wild Among the trees on isles and woody shores. Thus fenced, and, as they thought, their shame in part Covered, but not at rest or ease of mind, They sat them down to weep; nor only tears Rained at their eyes, but high winds worse within Began to rise, high passions, anger, hate, Mistrust, suspicion, discord; and shook sore Their inward state of mind, calm region once And full of peace, now tost and turbulent: For Understanding ruled not, and the Will Heard not her lore; both in subjection now To sensual Appetite, who from beneath Usurping over sovran Reason claimed Superiour sway: From thus distempered breast, Adam, estranged in look and altered style, Speech intermitted thus to Eve renewed. Would thou hadst hearkened to my words, and staid With me, as I besought thee, when that strange Desire of wandering, this unhappy morn, I know not whence possessed thee; we had then Remained still happy; not, as now, despoiled Of all our good; shamed, naked, miserable! Let none henceforth seek needless cause to approve The faith they owe; when earnestly they seek Such proof, conclude, they then begin to fail. To whom, soon moved with touch of blame, thus Eve. What words have passed thy lips, Adam severe! Imputest thou that to my default, or will Of wandering, as thou callest it, which who knows But might as ill have happened thou being by, Or to thyself perhaps? Hadst thou been there, Or here the attempt, thou couldst not have discerned Fraud in the Serpent, speaking as he spake; No ground of enmity between us known, Why he should mean me ill, or seek to harm. Was I to have never parted from thy side? As good have grown there still a lifeless rib. Being as I am, why didst not thou, the head, Command me absolutely not to go, Going into such danger, as thou saidst? Too facile then, thou didst not much gainsay; Nay, didst permit, approve, and fair dismiss. Hadst thou been firm and fixed in thy dissent, Neither had I transgressed, nor thou with me. To whom, then first incensed, Adam replied. Is this the love, is this the recompence Of mine to thee, ingrateful Eve! expressed Immutable, when thou wert lost, not I; Who might have lived, and joyed immortal bliss, Yet willingly chose rather death with thee? And am I now upbraided as the cause Of thy transgressing? Not enough severe, It seems, in thy restraint: What could I more I warned thee, I admonished thee, foretold The danger, and the lurking enemy That lay in wait; beyond this, had been force; And force upon free will hath here no place. But confidence then bore thee on; secure Either to meet no danger, or to find Matter of glorious trial; and perhaps I also erred, in overmuch admiring What seemed in thee so perfect, that I thought No evil durst attempt thee; but I rue The errour now, which is become my crime, And thou the accuser. Thus it shall befall Him, who, to worth in women overtrusting, Lets her will rule: restraint she will not brook; And, left to herself, if evil thence ensue, She first his weak indulgence will accuse. Thus they in mutual accusation spent The fruitless hours, but neither self-condemning; And of their vain contest appeared no end. Book X Mean while the heinous and despiteful act Of Satan, done in Paradise; and how He, in the serpent, had perverted Eve, Her husband she, to taste the fatal fruit, Was known in Heaven; for what can 'scape the eye Of God all-seeing, or deceive his heart Omniscient? who, in all things wise and just, Hindered not Satan to attempt the mind Of Man, with strength entire and free will armed, Complete to have discovered and repulsed Whatever wiles of foe or seeming friend. For still they knew, and ought to have still remembered, The high injunction, not to taste that fruit, Whoever tempted; which they not obeying, (Incurred what could they less?) the penalty; And, manifold in sin, deserved to fall. Up into Heaven from Paradise in haste The angelick guards ascended, mute, and sad, For Man; for of his state by this they knew, Much wondering how the subtle Fiend had stolen Entrance unseen. Soon as the unwelcome news From Earth arrived at Heaven-gate, displeased All were who heard; dim sadness did not spare That time celestial visages, yet, mixed With pity, violated not their bliss. About the new-arrived, in multitudes The ethereal people ran, to hear and know How all befel: They towards the throne supreme, Accountable, made haste, to make appear, With righteous plea, their utmost vigilance And easily approved; when the Most High Eternal Father, from his secret cloud, Amidst in thunder uttered thus his voice. Assembled Angels, and ye Powers returned From unsuccessful charge; be not dismayed, Nor troubled at these tidings from the earth, Which your sincerest care could not prevent; Foretold so lately what would come to pass, When first this tempter crossed the gulf from Hell. I told ye then he should prevail, and speed On his bad errand; Man should be seduced, And flattered out of all, believing lies Against his Maker; no decree of mine Concurring to necessitate his fall, Or touch with lightest moment of impulse His free will, to her own inclining left In even scale. But fallen he is; and now What rests, but that the mortal sentence pass On his transgression,--death denounced that day? Which he presumes already vain and void, Because not yet inflicted, as he feared, By some immediate stroke; but soon shall find Forbearance no acquittance, ere day end. Justice shall not return as bounty scorned. But whom send I to judge them? whom but thee, Vicegerent Son? To thee I have transferred All judgement, whether in Heaven, or Earth, or Hell. Easy it may be seen that I intend Mercy colleague with justice, sending thee Man's friend, his Mediator, his designed Both ransom and Redeemer voluntary, And destined Man himself to judge Man fallen. So spake the Father; and, unfolding bright Toward the right hand his glory, on the Son Blazed forth unclouded Deity: He full Resplendent all his Father manifest Expressed, and thus divinely answered mild. Father Eternal, thine is to decree; Mine, both in Heaven and Earth, to do thy will Supreme; that thou in me, thy Son beloved, Mayest ever rest well pleased. I go to judge On earth these thy transgressours; but thou knowest, Whoever judged, the worst on me must light, When time shall be; for so I undertook Before thee; and, not repenting, this obtain Of right, that I may mitigate their doom On me derived; yet I shall temper so Justice with mercy, as may illustrate most Them fully satisfied, and thee appease. Attendance none shall need, nor train, where none Are to behold the judgement, but the judged, Those two; the third best absent is condemned, Convict by flight, and rebel to all law: Conviction to the serpent none belongs. Thus saying, from his radiant seat he rose Of high collateral glory: Him Thrones, and Powers, Princedoms, and Dominations ministrant, Accompanied to Heaven-gate; from whence Eden, and all the coast, in prospect lay. Down he descended straight; the speed of Gods Time counts not, though with swiftest minutes winged. Now was the sun in western cadence low From noon, and gentle airs, due at their hour, To fan the earth now waked, and usher in The evening cool; when he, from wrath more cool, Came the mild Judge, and Intercessour both, To sentence Man: The voice of God they heard Now walking in the garden, by soft winds Brought to their ears, while day declined; they heard, And from his presence hid themselves among The thickest trees, both man and wife; till God, Approaching, thus to Adam called aloud. Where art thou, Adam, wont with joy to meet My coming seen far off? I miss thee here, Not pleased, thus entertained with solitude, Where obvious duty ere while appeared unsought: Or come I less conspicuous, or what change Absents thee, or what chance detains?--Come forth! He came; and with him Eve, more loth, though first To offend; discountenanced both, and discomposed; Love was not in their looks, either to God, Or to each other; but apparent guilt, And shame, and perturbation, and despair, Anger, and obstinacy, and hate, and guile. Whence Adam, faltering long, thus answered brief. I heard thee in the garden, and of thy voice Afraid, being naked, hid myself. To whom The gracious Judge without revile replied. My voice thou oft hast heard, and hast not feared, But still rejoiced; how is it now become So dreadful to thee? That thou art naked, who Hath told thee? Hast thou eaten of the tree, Whereof I gave thee charge thou shouldst not eat? To whom thus Adam sore beset replied. O Heaven! in evil strait this day I stand Before my Judge; either to undergo Myself the total crime, or to accuse My other self, the partner of my life; Whose failing, while her faith to me remains, I should conceal, and not expose to blame By my complaint: but strict necessity Subdues me, and calamitous constraint; Lest on my head both sin and punishment, However insupportable, be all Devolved; though should I hold my peace, yet thou Wouldst easily detect what I conceal.-- This Woman, whom thou madest to be my help, And gavest me as thy perfect gift, so good, So fit, so acceptable, so divine, That from her hand I could suspect no ill, And what she did, whatever in itself, Her doing seemed to justify the deed; She gave me of the tree, and I did eat. To whom the Sovran Presence thus replied. Was she thy God, that her thou didst obey Before his voice? or was she made thy guide, Superiour, or but equal, that to her Thou didst resign thy manhood, and the place Wherein God set thee above her made of thee, And for thee, whose perfection far excelled Hers in all real dignity? Adorned She was indeed, and lovely, to attract Thy love, not thy subjection; and her gifts Were such, as under government well seemed; Unseemly to bear rule; which was thy part And person, hadst thou known thyself aright. So having said, he thus to Eve in few. Say, Woman, what is this which thou hast done? To whom sad Eve, with shame nigh overwhelmed, Confessing soon, yet not before her Judge Bold or loquacious, thus abashed replied. The Serpent me beguiled, and I did eat. Which when the Lord God heard, without delay To judgement he proceeded on the accused Serpent, though brute; unable to transfer The guilt on him, who made him instrument Of mischief, and polluted from the end Of his creation; justly then accursed, As vitiated in nature: More to know Concerned not Man, (since he no further knew) Nor altered his offence; yet God at last To Satan first in sin his doom applied, Though in mysterious terms, judged as then best: And on the Serpent thus his curse let fall. Because thou hast done this, thou art accursed Above all cattle, each beast of the field; Upon thy belly groveling thou shalt go, And dust shalt eat all the days of thy life. Between thee and the woman I will put Enmity, and between thine and her seed; Her seed shall bruise thy head, thou bruise his heel. So spake this oracle, then verified When Jesus, Son of Mary, second Eve, Saw Satan fall, like lightning, down from Heaven, Prince of the air; then, rising from his grave Spoiled Principalities and Powers, triumphed In open show; and, with ascension bright, Captivity led captive through the air, The realm itself of Satan, long usurped; Whom he shall tread at last under our feet; Even he, who now foretold his fatal bruise; And to the Woman thus his sentence turned. Thy sorrow I will greatly multiply By thy conception; children thou shalt bring In sorrow forth; and to thy husband's will Thine shall submit; he over thee shall rule. On Adam last thus judgement he pronounced. Because thou hast hearkened to the voice of thy wife, And eaten of the tree, concerning which I charged thee, saying, Thou shalt not eat thereof: Cursed is the ground for thy sake; thou in sorrow Shalt eat thereof, all the days of thy life; Thorns also and thistles it shall bring thee forth Unbid; and thou shalt eat the herb of the field; In the sweat of thy face shalt thou eat bread, Till thou return unto the ground; for thou Out of the ground wast taken, know thy birth, For dust thou art, and shalt to dust return. So judged he Man, both Judge and Saviour sent; And the instant stroke of death, denounced that day, Removed far off; then, pitying how they stood Before him naked to the air, that now Must suffer change, disdained not to begin Thenceforth the form of servant to assume; As when he washed his servants feet; so now, As father of his family, he clad Their nakedness with skins of beasts, or slain, Or as the snake with youthful coat repaid; And thought not much to clothe his enemies; Nor he their outward only with the skins Of beasts, but inward nakedness, much more. Opprobrious, with his robe of righteousness, Arraying, covered from his Father's sight. To him with swift ascent he up returned, Into his blissful bosom reassumed In glory, as of old; to him appeased All, though all-knowing, what had passed with Man Recounted, mixing intercession sweet. Mean while, ere thus was sinned and judged on Earth, Within the gates of Hell sat Sin and Death, In counterview within the gates, that now Stood open wide, belching outrageous flame Far into Chaos, since the Fiend passed through, Sin opening; who thus now to Death began. O Son, why sit we here each other viewing Idly, while Satan, our great author, thrives In other worlds, and happier seat provides For us, his offspring dear? It cannot be But that success attends him; if mishap, Ere this he had returned, with fury driven By his avengers; since no place like this Can fit his punishment, or their revenge. Methinks I feel new strength within me rise, Wings growing, and dominion given me large Beyond this deep; whatever draws me on, Or sympathy, or some connatural force, Powerful at greatest distance to unite, With secret amity, things of like kind, By secretest conveyance. Thou, my shade Inseparable, must with me along; For Death from Sin no power can separate. But, lest the difficulty of passing back Stay his return perhaps over this gulf Impassable, impervious; let us try Adventurous work, yet to thy power and mine Not unagreeable, to found a path Over this main from Hell to that new world, Where Satan now prevails; a monument Of merit high to all the infernal host, Easing their passage hence, for intercourse, Or transmigration, as their lot shall lead. Nor can I miss the way, so strongly drawn By this new-felt attraction and instinct. Whom thus the meager Shadow answered soon. Go, whither Fate, and inclination strong, Leads thee; I shall not lag behind, nor err The way, thou leading; such a scent I draw Of carnage, prey innumerable, and taste The savour of death from all things there that live: Nor shall I to the work thou enterprisest Be wanting, but afford thee equal aid. So saying, with delight he snuffed the smell Of mortal change on earth. As when a flock Of ravenous fowl, though many a league remote, Against the day of battle, to a field, Where armies lie encamped, come flying, lured With scent of living carcasses designed For death, the following day, in bloody fight: So scented the grim Feature, and upturned His nostril wide into the murky air; Sagacious of his quarry from so far. Then both from out Hell-gates, into the waste Wide anarchy of Chaos, damp and dark, Flew diverse; and with power (their power was great) Hovering upon the waters, what they met Solid or slimy, as in raging sea Tost up and down, together crouded drove, From each side shoaling towards the mouth of Hell; As when two polar winds, blowing adverse Upon the Cronian sea, together drive Mountains of ice, that stop the imagined way Beyond Petsora eastward, to the rich Cathaian coast. The aggregated soil Death with his mace petrifick, cold and dry, As with a trident, smote; and fixed as firm As Delos, floating once; the rest his look Bound with Gorgonian rigour not to move; And with Asphaltick slime, broad as the gate, Deep to the roots of Hell the gathered beach They fastened, and the mole immense wrought on Over the foaming deep high-arched, a bridge Of length prodigious, joining to the wall Immoveable of this now fenceless world, Forfeit to Death; from hence a passage broad, Smooth, easy, inoffensive, down to Hell. So, if great things to small may be compared, Xerxes, the liberty of Greece to yoke, From Susa, his Memnonian palace high, Came to the sea: and, over Hellespont Bridging his way, Europe with Asia joined, And scourged with many a stroke the indignant waves. Now had they brought the work by wonderous art Pontifical, a ridge of pendant rock, Over the vexed abyss, following the track Of Satan to the self-same place where he First lighted from his wing, and landed safe From out of Chaos, to the outside bare Of this round world: With pins of adamant And chains they made all fast, too fast they made And durable! And now in little space The confines met of empyrean Heaven, And of this World; and, on the left hand, Hell With long reach interposed; three several ways In sight, to each of these three places led. And now their way to Earth they had descried, To Paradise first tending; when, behold! Satan, in likeness of an Angel bright, Betwixt the Centaur and the Scorpion steering His zenith, while the sun in Aries rose: Disguised he came; but those his children dear Their parent soon discerned, though in disguise. He, after Eve seduced, unminded slunk Into the wood fast by; and, changing shape, To observe the sequel, saw his guileful act By Eve, though all unweeting, seconded Upon her husband; saw their shame that sought Vain covertures; but when he saw descend The Son of God to judge them, terrified He fled; not hoping to escape, but shun The present; fearing, guilty, what his wrath Might suddenly inflict; that past, returned By night, and listening where the hapless pair Sat in their sad discourse, and various plaint, Thence gathered his own doom; which understood Not instant, but of future time, with joy And tidings fraught, to Hell he now returned; And at the brink of Chaos, near the foot Of this new wonderous pontifice, unhoped Met, who to meet him came, his offspring dear. Great joy was at their meeting, and at sight Of that stupendious bridge his joy encreased. Long he admiring stood, till Sin, his fair Enchanting daughter, thus the silence broke. O Parent, these are thy magnifick deeds, Thy trophies! which thou viewest as not thine own; Thou art their author, and prime architect: For I no sooner in my heart divined, My heart, which by a secret harmony Still moves with thine, joined in connexion sweet, That thou on earth hadst prospered, which thy looks Now also evidence, but straight I felt, Though distant from thee worlds between, yet felt, That I must after thee, with this thy son; Such fatal consequence unites us three! Hell could no longer hold us in our bounds, Nor this unvoyageable gulf obscure Detain from following thy illustrious track. Thou hast achieved our liberty, confined Within Hell-gates till now; thou us impowered To fortify thus far, and overlay, With this portentous bridge, the dark abyss. Thine now is all this world; thy virtue hath won What thy hands builded not; thy wisdom gained With odds what war hath lost, and fully avenged Our foil in Heaven; here thou shalt monarch reign, There didst not; there let him still victor sway, As battle hath adjudged; from this new world Retiring, by his own doom alienated; And henceforth monarchy with thee divide Of all things, parted by the empyreal bounds, His quadrature, from thy orbicular world; Or try thee now more dangerous to his throne. Whom thus the Prince of darkness answered glad. Fair Daughter, and thou Son and Grandchild both; High proof ye now have given to be the race Of Satan (for I glory in the name, Antagonist of Heaven's Almighty King,) Amply have merited of me, of all The infernal empire, that so near Heaven's door Triumphal with triumphal act have met, Mine, with this glorious work; and made one realm, Hell and this world, one realm, one continent Of easy thorough-fare. Therefore, while I Descend through darkness, on your road with ease, To my associate Powers, them to acquaint With these successes, and with them rejoice; You two this way, among these numerous orbs, All yours, right down to Paradise descend; There dwell, and reign in bliss; thence on the earth Dominion exercise and in the air, Chiefly on Man, sole lord of all declared; Him first make sure your thrall, and lastly kill. My substitutes I send ye, and create Plenipotent on earth, of matchless might Issuing from me: on your joint vigour now My hold of this new kingdom all depends, Through Sin to Death exposed by my exploit. If your joint power prevail, the affairs of Hell No detriment need fear; go, and be strong! So saying he dismissed them; they with speed Their course through thickest constellations held, Spreading their bane; the blasted stars looked wan, And planets, planet-struck, real eclipse Then suffered. The other way Satan went down The causey to Hell-gate: On either side Disparted Chaos overbuilt exclaimed, And with rebounding surge the bars assailed, That scorned his indignation: Through the gate, Wide open and unguarded, Satan passed, And all about found desolate; for those, Appointed to sit there, had left their charge, Flown to the upper world; the rest were all Far to the inland retired, about the walls Of Pandemonium; city and proud seat Of Lucifer, so by allusion called Of that bright star to Satan paragoned; There kept their watch the legions, while the Grand In council sat, solicitous what chance Might intercept their emperour sent; so he Departing gave command, and they observed. As when the Tartar from his Russian foe, By Astracan, over the snowy plains, Retires; or Bactrin Sophi, from the horns Of Turkish crescent, leaves all waste beyond The realm of Aladule, in his retreat To Tauris or Casbeen: So these, the late Heaven-banished host, left desart utmost Hell Many a dark league, reduced in careful watch Round their metropolis; and now expecting Each hour their great adventurer, from the search Of foreign worlds: He through the midst unmarked, In show plebeian Angel militant Of lowest order, passed; and from the door Of that Plutonian hall, invisible Ascended his high throne; which, under state Of richest texture spread, at the upper end Was placed in regal lustre. Down a while He sat, and round about him saw unseen: At last, as from a cloud, his fulgent head And shape star-bright appeared, or brighter; clad With what permissive glory since his fall Was left him, or false glitter: All amazed At that so sudden blaze the Stygian throng Bent their aspect, and whom they wished beheld, Their mighty Chief returned: loud was the acclaim: Forth rushed in haste the great consulting peers, Raised from their dark Divan, and with like joy Congratulant approached him; who with hand Silence, and with these words attention, won. Thrones, Dominations, Princedoms, Virtues, Powers; For in possession such, not only of right, I call ye, and declare ye now; returned Successful beyond hope, to lead ye forth Triumphant out of this infernal pit Abominable, accursed, the house of woe, And dungeon of our tyrant: Now possess, As Lords, a spacious world, to our native Heaven Little inferiour, by my adventure hard With peril great achieved. Long were to tell What I have done; what suffered;with what pain Voyaged th' unreal, vast, unbounded deep Of horrible confusion; over which By Sin and Death a broad way now is paved, To expedite your glorious march; but I Toiled out my uncouth passage, forced to ride The untractable abyss, plunged in the womb Of unoriginal Night and Chaos wild; That, jealous of their secrets, fiercely opposed My journey strange, with clamorous uproar Protesting Fate supreme; thence how I found The new created world, which fame in Heaven Long had foretold, a fabrick wonderful Of absolute perfection! therein Man Placed in a Paradise, by our exile Made happy: Him by fraud I have seduced From his Creator; and, the more to encrease Your wonder, with an apple; he, thereat Offended, worth your laughter! hath given up Both his beloved Man, and all his world, To Sin and Death a prey, and so to us, Without our hazard, labour, or alarm; To range in, and to dwell, and over Man To rule, as over all he should have ruled. True is, me also he hath judged, or rather Me not, but the brute serpent in whose shape Man I deceived: that which to me belongs, Is enmity which he will put between Me and mankind; I am to bruise his heel; His seed, when is not set, shall bruise my head: A world who would not purchase with a bruise, Or much more grievous pain?--Ye have the account Of my performance: What remains, ye Gods, But up, and enter now into full bliss? So having said, a while he stood, expecting Their universal shout, and high applause, To fill his ear; when, contrary, he hears On all sides, from innumerable tongues, A dismal universal hiss, the sound Of publick scorn; he wondered, but not long Had leisure, wondering at himself now more, His visage drawn he felt to sharp and spare; His arms clung to his ribs; his legs entwining Each other, till supplanted down he fell A monstrous serpent on his belly prone, Reluctant, but in vain; a greater power Now ruled him, punished in the shape he sinned, According to his doom: he would have spoke, But hiss for hiss returned with forked tongue To forked tongue; for now were all transformed Alike, to serpents all, as accessories To his bold riot: Dreadful was the din Of hissing through the hall, thick swarming now With complicated monsters head and tail, Scorpion, and Asp, and Amphisbaena dire, Cerastes horned, Hydrus, and Elops drear, And Dipsas; (not so thick swarmed once the soil Bedropt with blood of Gorgon, or the isle Ophiusa,) but still greatest he the midst, Now Dragon grown, larger than whom the sun Ingendered in the Pythian vale or slime, Huge Python, and his power no less he seemed Above the rest still to retain; they all Him followed, issuing forth to the open field, Where all yet left of that revolted rout, Heaven-fallen, in station stood or just array; Sublime with expectation when to see In triumph issuing forth their glorious Chief; They saw, but other sight instead! a croud Of ugly serpents; horrour on them fell, And horrid sympathy; for, what they saw, They felt themselves, now changing; down their arms, Down fell both spear and shield; down they as fast; And the dire hiss renewed, and the dire form Catched, by contagion; like in punishment, As in their crime. Thus was the applause they meant, Turned to exploding hiss, triumph to shame Cast on themselves from their own mouths. There stood A grove hard by, sprung up with this their change, His will who reigns above, to aggravate Their penance, laden with fair fruit, like that Which grew in Paradise, the bait of Eve Used by the Tempter: on that prospect strange Their earnest eyes they fixed, imagining For one forbidden tree a multitude Now risen, to work them further woe or shame; Yet, parched with scalding thirst and hunger fierce, Though to delude them sent, could not abstain; But on they rolled in heaps, and, up the trees Climbing, sat thicker than the snaky locks That curled Megaera: greedily they plucked The fruitage fair to sight, like that which grew Near that bituminous lake where Sodom flamed; This more delusive, not the touch, but taste Deceived; they, fondly thinking to allay Their appetite with gust, instead of fruit Chewed bitter ashes, which the offended taste With spattering noise rejected: oft they assayed, Hunger and thirst constraining; drugged as oft, With hatefullest disrelish writhed their jaws, With soot and cinders filled; so oft they fell Into the same illusion, not as Man Whom they triumphed once lapsed. Thus were they plagued And worn with famine, long and ceaseless hiss, Till their lost shape, permitted, they resumed; Yearly enjoined, some say, to undergo, This annual humbling certain numbered days, To dash their pride, and joy, for Man seduced. However, some tradition they dispersed Among the Heathen, of their purchase got, And fabled how the Serpent, whom they called Ophion, with Eurynome, the wide-- Encroaching Eve perhaps, had first the rule Of high Olympus; thence by Saturn driven And Ops, ere yet Dictaean Jove was born. Mean while in Paradise the hellish pair Too soon arrived; Sin, there in power before, Once actual; now in body, and to dwell Habitual habitant; behind her Death, Close following pace for pace, not mounted yet On his pale horse: to whom Sin thus began. Second of Satan sprung, all-conquering Death! What thinkest thou of our empire now, though earned With travel difficult, not better far Than still at Hell's dark threshold to have sat watch, Unnamed, undreaded, and thyself half starved? Whom thus the Sin-born monster answered soon. To me, who with eternal famine pine, Alike is Hell, or Paradise, or Heaven; There best, where most with ravine I may meet; Which here, though plenteous, all too little seems To stuff this maw, this vast unhide-bound corps. To whom the incestuous mother thus replied. Thou therefore on these herbs, and fruits, and flowers, Feed first; on each beast next, and fish, and fowl; No homely morsels! and, whatever thing The sithe of Time mows down, devour unspared; Till I, in Man residing, through the race, His thoughts, his looks, words, actions, all infect; And season him thy last and sweetest prey. This said, they both betook them several ways, Both to destroy, or unimmortal make All kinds, and for destruction to mature Sooner or later; which the Almighty seeing, From his transcendent seat the Saints among, To those bright Orders uttered thus his voice. See, with what heat these dogs of Hell advance To waste and havock yonder world, which I So fair and good created; and had still Kept in that state, had not the folly of Man Let in these wasteful furies, who impute Folly to me; so doth the Prince of Hell And his adherents, that with so much ease I suffer them to enter and possess A place so heavenly; and, conniving, seem To gratify my scornful enemies, That laugh, as if, transported with some fit Of passion, I to them had quitted all, At random yielded up to their misrule; And know not that I called, and drew them thither, My Hell-hounds, to lick up the draff and filth Which Man's polluting sin with taint hath shed On what was pure; til, crammed and gorged, nigh burst With sucked and glutted offal, at one sling Of thy victorious arm, well-pleasing Son, Both Sin, and Death, and yawning Grave, at last, Through Chaos hurled, obstruct the mouth of Hell For ever, and seal up his ravenous jaws. Then Heaven and Earth renewed shall be made pure To sanctity, that shall receive no stain: Till then, the curse pronounced on both precedes. He ended, and the heavenly audience loud Sung Halleluiah, as the sound of seas, Through multitude that sung: Just are thy ways, Righteous are thy decrees on all thy works; Who can extenuate thee? Next, to the Son, Destined Restorer of mankind, by whom New Heaven and Earth shall to the ages rise, Or down from Heaven descend.--Such was their song; While the Creator, calling forth by name His mighty Angels, gave them several charge, As sorted best with present things. The sun Had first his precept so to move, so shine, As might affect the earth with cold and heat Scarce tolerable; and from the north to call Decrepit winter; from the south to bring Solstitial summer's heat. To the blanc moon Her office they prescribed; to the other five Their planetary motions, and aspects, In sextile, square, and trine, and opposite, Of noxious efficacy, and when to join In synod unbenign; and taught the fixed Their influence malignant when to shower, Which of them rising with the sun, or falling, Should prove tempestuous: To the winds they set Their corners, when with bluster to confound Sea, air, and shore; the thunder when to roll With terrour through the dark aereal hall. Some say, he bid his Angels turn ascanse The poles of earth, twice ten degrees and more, From the sun's axle; they with labour pushed Oblique the centrick globe: Some say, the sun Was bid turn reins from the equinoctial road Like distant breadth to Taurus with the seven Atlantick Sisters, and the Spartan Twins, Up to the Tropick Crab: thence down amain By Leo, and the Virgin, and the Scales, As deep as Capricorn; to bring in change Of seasons to each clime; else had the spring Perpetual smiled on earth with vernant flowers, Equal in days and nights, except to those Beyond the polar circles; to them day Had unbenighted shone, while the low sun, To recompense his distance, in their sight Had rounded still the horizon, and not known Or east or west; which had forbid the snow From cold Estotiland, and south as far Beneath Magellan. At that tasted fruit The sun, as from Thyestean banquet, turned His course intended; else, how had the world Inhabited, though sinless, more than now, Avoided pinching cold and scorching heat? These changes in the Heavens, though slow, produced Like change on sea and land; sideral blast, Vapour, and mist, and exhalation hot, Corrupt and pestilent: Now from the north Of Norumbega, and the Samoed shore, Bursting their brazen dungeon, armed with ice, And snow, and hail, and stormy gust and flaw, Boreas, and Caecias, and Argestes loud, And Thrascias, rend the woods, and seas upturn; With adverse blast upturns them from the south Notus, and Afer black with thunderous clouds From Serraliona; thwart of these, as fierce, Forth rush the Levant and the Ponent winds, Eurus and Zephyr, with their lateral noise, Sirocco and Libecchio. Thus began Outrage from lifeless things; but Discord first, Daughter of Sin, among the irrational Death introduced, through fierce antipathy: Beast now with beast 'gan war, and fowl with fowl, And fish with fish; to graze the herb all leaving, Devoured each other; nor stood much in awe Of Man, but fled him; or, with countenance grim, Glared on him passing. These were from without The growing miseries, which Adam saw Already in part, though hid in gloomiest shade, To sorrow abandoned, but worse felt within; And, in a troubled sea of passion tost, Thus to disburden sought with sad complaint. O miserable of happy! Is this the end Of this new glorious world, and me so late The glory of that glory, who now become Accursed, of blessed? hide me from the face Of God, whom to behold was then my highth Of happiness!--Yet well, if here would end The misery; I deserved it, and would bear My own deservings; but this will not serve: All that I eat or drink, or shall beget, Is propagated curse. O voice, once heard Delightfully, Encrease and multiply; Now death to hear! for what can I encrease, Or multiply, but curses on my head? Who of all ages to succeed, but, feeling The evil on him brought by me, will curse My head? Ill fare our ancestor impure, For this we may thank Adam! but his thanks Shall be the execration: so, besides Mine own that bide upon me, all from me Shall with a fierce reflux on me rebound; On me, as on their natural center, light Heavy, though in their place. O fleeting joys Of Paradise, dear bought with lasting woes! Did I request thee, Maker, from my clay To mould me Man? did I solicit thee From darkness to promote me, or here place In this delicious garden? As my will Concurred not to my being, it were but right And equal to reduce me to my dust; Desirous to resign and render back All I received; unable to perform Thy terms too hard, by which I was to hold The good I sought not. To the loss of that, Sufficient penalty, why hast thou added The sense of endless woes? Inexplicable Why am I mocked with death, and lengthened out To deathless pain? How gladly would I meet Mortality my sentence, and be earth Insensible! How glad would lay me down As in my mother's lap! There I should rest, And sleep secure; his dreadful voice no more Would thunder in my ears; no fear of worse To me, and to my offspring, would torment me With cruel expectation. Yet one doubt Pursues me still, lest all I cannot die; Lest that pure breath of life, the spirit of Man Which God inspired, cannot together perish With this corporeal clod; then, in the grave, Or in some other dismal place, who knows But I shall die a living death? O thought Horrid, if true! Yet why? It was but breath Of life that sinned; what dies but what had life And sin? The body properly had neither, All of me then shall die: let this appease The doubt, since human reach no further knows. For though the Lord of all be infinite, Is his wrath also? Be it, Man is not so, But mortal doomed. How can he exercise Wrath without end on Man, whom death must end? Can he make deathless death? That were to make Strange contradiction, which to God himself Impossible is held; as argument Of weakness, not of power. Will he draw out, For anger's sake, finite to infinite, In punished Man, to satisfy his rigour, Satisfied never? That were to extend His sentence beyond dust and Nature's law; By which all causes else, according still To the reception of their matter, act; Not to the extent of their own sphere. But say That death be not one stroke, as I supposed, Bereaving sense, but endless misery From this day onward; which I feel begun Both in me, and without me; and so last To perpetuity;--Ay me!that fear Comes thundering back with dreadful revolution On my defenceless head; both Death and I Am found eternal, and incorporate both; Nor I on my part single; in me all Posterity stands cursed: Fair patrimony That I must leave ye, Sons! O, were I able To waste it all myself, and leave ye none! So disinherited, how would you bless Me, now your curse! Ah, why should all mankind, For one man's fault, thus guiltless be condemned, It guiltless? But from me what can proceed, But all corrupt; both mind and will depraved Not to do only, but to will the same With me? How can they then acquitted stand In sight of God? Him, after all disputes, Forced I absolve: all my evasions vain, And reasonings, though through mazes, lead me still But to my own conviction: first and last On me, me only, as the source and spring Of all corruption, all the blame lights due; So might the wrath! Fond wish!couldst thou support That burden, heavier than the earth to bear; Than all the world much heavier, though divided With that bad Woman? Thus, what thou desirest, And what thou fearest, alike destroys all hope Of refuge, and concludes thee miserable Beyond all past example and future; To Satan only like both crime and doom. O Conscience! into what abyss of fears And horrours hast thou driven me; out of which I find no way, from deep to deeper plunged! Thus Adam to himself lamented loud, Through the still night; not now, as ere Man fell, Wholesome, and cool, and mild, but with black air Accompanied; with damps, and dreadful gloom; Which to his evil conscience represented All things with double terrour: On the ground Outstretched he lay, on the cold ground; and oft Cursed his creation; Death as oft accused Of tardy execution, since denounced The day of his offence. Why comes not Death, Said he, with one thrice-acceptable stroke To end me? Shall Truth fail to keep her word, Justice Divine not hasten to be just? But Death comes not at call; Justice Divine Mends not her slowest pace for prayers or cries, O woods, O fountains, hillocks, dales, and bowers! With other echo late I taught your shades To answer, and resound far other song.-- Whom thus afflicted when sad Eve beheld, Desolate where she sat, approaching nigh, Soft words to his fierce passion she assayed: But her with stern regard he thus repelled. Out of my sight, thou Serpent! That name best Befits thee with him leagued, thyself as false And hateful; nothing wants, but that thy shape, Like his, and colour serpentine, may show Thy inward fraud; to warn all creatures from thee Henceforth; lest that too heavenly form, pretended To hellish falshood, snare them! But for thee I had persisted happy; had not thy pride And wandering vanity, when least was safe, Rejected my forewarning, and disdained Not to be trusted; longing to be seen, Though by the Devil himself; him overweening To over-reach; but, with the serpent meeting, Fooled and beguiled; by him thou, I by thee To trust thee from my side; imagined wise, Constant, mature, proof against all assaults; And understood not all was but a show, Rather than solid virtue; all but a rib Crooked by nature, bent, as now appears, More to the part sinister, from me drawn; Well if thrown out, as supernumerary To my just number found. O! why did God, Creator wise, that peopled highest Heaven With Spirits masculine, create at last This novelty on earth, this fair defect Of nature, and not fill the world at once With Men, as Angels, without feminine; Or find some other way to generate Mankind? This mischief had not been befallen, And more that shall befall; innumerable Disturbances on earth through female snares, And strait conjunction with this sex: for either He never shall find out fit mate, but such As some misfortune brings him, or mistake; Or whom he wishes most shall seldom gain Through her perverseness, but shall see her gained By a far worse; or, if she love, withheld By parents; or his happiest choice too late Shall meet, already linked and wedlock-bound To a fell adversary, his hate or shame: Which infinite calamity shall cause To human life, and houshold peace confound. He added not, and from her turned; but Eve, Not so repulsed, with tears that ceased not flowing And tresses all disordered, at his feet Fell humble; and, embracing them, besought His peace, and thus proceeded in her plaint. Forsake me not thus, Adam! witness Heaven What love sincere, and reverence in my heart I bear thee, and unweeting have offended, Unhappily deceived! Thy suppliant I beg, and clasp thy knees; bereave me not, Whereon I live, thy gentle looks, thy aid, Thy counsel, in this uttermost distress, My only strength and stay: Forlorn of thee, Whither shall I betake me, where subsist? While yet we live, scarce one short hour perhaps, Between us two let there be peace; both joining, As joined in injuries, one enmity Against a foe by doom express assigned us, That cruel Serpent: On me exercise not Thy hatred for this misery befallen; On me already lost, me than thyself More miserable! Both have sinned;but thou Against God only; I against God and thee; And to the place of judgement will return, There with my cries importune Heaven; that all The sentence, from thy head removed, may light On me, sole cause to thee of all this woe; Me, me only, just object of his ire! She ended weeping; and her lowly plight, Immoveable, till peace obtained from fault Acknowledged and deplored, in Adam wrought Commiseration: Soon his heart relented Towards her, his life so late, and sole delight, Now at his feet submissive in distress; Creature so fair his reconcilement seeking, His counsel, whom she had displeased, his aid: As one disarmed, his anger all he lost, And thus with peaceful words upraised her soon. Unwary, and too desirous, as before, So now of what thou knowest not, who desirest The punishment all on thyself; alas! Bear thine own first, ill able to sustain His full wrath, whose thou feelest as yet least part, And my displeasure bearest so ill. If prayers Could alter high decrees, I to that place Would speed before thee, and be louder heard, That on my head all might be visited; Thy frailty and infirmer sex forgiven, To me committed, and by me exposed. But rise;--let us no more contend, nor blame Each other, blamed enough elsewhere; but strive In offices of love, how we may lighten Each other's burden, in our share of woe; Since this day's death denounced, if aught I see, Will prove no sudden, but a slow-paced evil; A long day's dying, to augment our pain; And to our seed (O hapless seed!) derived. To whom thus Eve, recovering heart, replied. Adam, by sad experiment I know How little weight my words with thee can find, Found so erroneous; thence by just event Found so unfortunate: Nevertheless, Restored by thee, vile as I am, to place Of new acceptance, hopeful to regain Thy love, the sole contentment of my heart Living or dying, from thee I will not hide What thoughts in my unquiet breast are risen, Tending to some relief of our extremes, Or end; though sharp and sad, yet tolerable, As in our evils, and of easier choice. If care of our descent perplex us most, Which must be born to certain woe, devoured By Death at last; and miserable it is To be to others cause of misery, Our own begotten, and of our loins to bring Into this cursed world a woeful race, That after wretched life must be at last Food for so foul a monster; in thy power It lies, yet ere conception to prevent The race unblest, to being yet unbegot. Childless thou art, childless remain: so Death Shall be deceived his glut, and with us two Be forced to satisfy his ravenous maw. But if thou judge it hard and difficult, Conversing, looking, loving, to abstain From love's due rights, nuptial embraces sweet; And with desire to languish without hope, Before the present object languishing With like desire; which would be misery And torment less than none of what we dread; Then, both ourselves and seed at once to free From what we fear for both, let us make short, -- Let us seek Death; -- or, he not found, supply With our own hands his office on ourselves: Why stand we longer shivering under fears, That show no end but death, and have the power, Of many ways to die the shortest choosing, Destruction with destruction to destroy? -- She ended here, or vehement despair Broke off the rest: so much of death her thoughts Had entertained, as dyed her cheeks with pale. But Adam, with such counsel nothing swayed, To better hopes his more attentive mind Labouring had raised; and thus to Eve replied. Eve, thy contempt of life and pleasure seems To argue in thee something more sublime And excellent, than what thy mind contemns; But self-destruction therefore sought, refutes That excellence thought in thee; and implies, Not thy contempt, but anguish and regret For loss of life and pleasure overloved. Or if thou covet death, as utmost end Of misery, so thinking to evade The penalty pronounced; doubt not but God Hath wiselier armed his vengeful ire, than so To be forestalled; much more I fear lest death, So snatched, will not exempt us from the pain We are by doom to pay; rather, such acts Of contumacy will provoke the Highest To make death in us live: Then let us seek Some safer resolution, which methinks I have in view, calling to mind with heed Part of our sentence, that thy seed shall bruise The Serpent's head; piteous amends! unless Be meant, whom I conjecture, our grand foe, Satan; who, in the serpent, hath contrived Against us this deceit: To crush his head Would be revenge indeed! which will be lost By death brought on ourselves, or childless days Resolved, as thou proposest; so our foe Shal 'scape his punishment ordained, and we Instead shall double ours upon our heads. No more be mentioned then of violence Against ourselves; and wilful barrenness, That cuts us off from hope; and savours only Rancour and pride, impatience and despite, Reluctance against God and his just yoke Laid on our necks. Remember with what mild And gracious temper he both heard, and judged, Without wrath or reviling; we expected Immediate dissolution, which we thought Was meant by death that day; when lo!to thee Pains only in child-bearing were foretold, And bringing forth; soon recompensed with joy, Fruit of thy womb: On me the curse aslope Glanced on the ground; with labour I must earn My bread; what harm? Idleness had been worse; My labour will sustain me; and, lest cold Or heat should injure us, his timely care Hath, unbesought, provided; and his hands Clothed us unworthy, pitying while he judged; How much more, if we pray him, will his ear Be open, and his heart to pity incline, And teach us further by what means to shun The inclement seasons, rain, ice, hail, and snow! Which now the sky, with various face, begins To show us in this mountain; while the winds Blow moist and keen, shattering the graceful locks Of these fair spreading trees; which bids us seek Some better shroud, some better warmth to cherish Our limbs benummed, ere this diurnal star Leave cold the night, how we his gathered beams Reflected may with matter sere foment; Or, by collision of two bodies, grind The air attrite to fire; as late the clouds Justling, or pushed with winds, rude in their shock, Tine the slant lightning; whose thwart flame, driven down Kindles the gummy bark of fir or pine; And sends a comfortable heat from far, Which might supply the sun: Such fire to use, And what may else be remedy or cure To evils which our own misdeeds have wrought, He will instruct us praying, and of grace Beseeching him; so as we need not fear To pass commodiously this life, sustained By him with many comforts, till we end In dust, our final rest and native home. What better can we do, than, to the place Repairing where he judged us, prostrate fall Before him reverent; and there confess Humbly our faults, and pardon beg; with tears Watering the ground, and with our sighs the air Frequenting, sent from hearts contrite, in sign Of sorrow unfeigned, and humiliation meek Book XI Undoubtedly he will relent, and turn From his displeasure; in whose look serene, When angry most he seemed and most severe, What else but favour, grace, and mercy, shone? So spake our father penitent; nor Eve Felt less remorse: they, forthwith to the place Repairing where he judged them, prostrate fell Before him reverent; and both confessed Humbly their faults, and pardon begged; with tears Watering the ground, and with their sighs the air Frequenting, sent from hearts contrite, in sign Of sorrow unfeigned, and humiliation meek. Thus they, in lowliest plight, repentant stood Praying; for from the mercy-seat above Prevenient grace descending had removed The stony from their hearts, and made new flesh Regenerate grow instead; that sighs now breathed Unutterable; which the Spirit of prayer Inspired, and winged for Heaven with speedier flight Than loudest oratory: Yet their port Not of mean suitors; nor important less Seemed their petition, than when the ancient pair In fables old, less ancient yet than these, Deucalion and chaste Pyrrha, to restore The race of mankind drowned, before the shrine Of Themis stood devout. To Heaven their prayers Flew up, nor missed the way, by envious winds Blown vagabond or frustrate: in they passed Dimensionless through heavenly doors; then clad With incense, where the golden altar fumed, By their great intercessour, came in sight Before the Father's throne: them the glad Son Presenting, thus to intercede began. See$ Father, what first-fruits on earth are sprung From thy implanted grace in Man; these sighs And prayers, which in this golden censer mixed With incense, I thy priest before thee bring; Fruits of more pleasing savour, from thy seed Sown with contrition in his heart, than those Which, his own hand manuring, all the trees Of Paradise could have produced, ere fallen From innocence. Now therefore, bend thine ear To supplication; hear his sighs, though mute; Unskilful with what words to pray, let me Interpret for him; me, his advocate And propitiation; all his works on me, Good, or not good, ingraft; my merit those Shall perfect, and for these my death shall pay. Accept me; and, in me, from these receive The smell of peace toward mankind: let him live Before thee reconciled, at least his days Numbered, though sad; till death, his doom, (which I To mitigate thus plead, not to reverse,) To better life shall yield him: where with me All my redeemed may dwell in joy and bliss; Made one with me, as I with thee am one. To whom the Father, without cloud, serene. All thy request for Man, accepted Son, Obtain; all thy request was my decree: But, longer in that Paradise to dwell, The law I gave to Nature him forbids: Those pure immortal elements, that know, No gross, no unharmonious mixture foul, Eject him, tainted now; and purge him off, As a distemper, gross, to air as gross, And mortal food; as may dispose him best For dissolution wrought by sin, that first Distempered all things, and of incorrupt Corrupted. I, at first, with two fair gifts Created him endowed; with happiness, And immortality: that fondly lost, This other served but to eternize woe; Till I provided death: so death becomes His final remedy; and, after life, Tried in sharp tribulation, and refined By faith and faithful works, to second life, Waked in the renovation of the just, Resigns him up with Heaven and Earth renewed. But let us call to synod all the Blest, Through Heaven's wide bounds: from them I will not hide My judgements; how with mankind I proceed, As how with peccant Angels late they saw, And in their state, though firm, stood more confirmed. He ended, and the Son gave signal high To the bright minister that watched; he blew His trumpet, heard in Oreb since perhaps When God descended, and perhaps once more To sound at general doom. The angelick blast Filled all the regions: from their blisful bowers Of amarantine shade, fountain or spring, By the waters of life, where'er they sat In fellowships of joy, the sons of light Hasted, resorting to the summons high; And took their seats; till from his throne supreme The Almighty thus pronounced his sovran will. O Sons, like one of us Man is become To know both good and evil, since his taste Of that defended fruit; but let him boast His knowledge of good lost, and evil got; Happier! had it sufficed him to have known Good by itself, and evil not at all. He sorrows now, repents, and prays contrite, My motions in him; longer than they move, His heart I know, how variable and vain, Self-left. Lest therefore his now bolder hand Reach also of the tree of life, and eat, And live for ever, dream at least to live For ever, to remove him I decree, And send him from the garden forth to till The ground whence he was taken, fitter soil. Michael, this my behest have thou in charge; Take to thee from among the Cherubim Thy choice of flaming warriours, lest the Fiend, Or in behalf of Man, or to invade Vacant possession, some new trouble raise: Haste thee, and from the Paradise of God Without remorse drive out the sinful pair; From hallowed ground the unholy; and denounce To them, and to their progeny, from thence Perpetual banishment. Yet, lest they faint At the sad sentence rigorously urged, (For I behold them softened, and with tears Bewailing their excess,) all terrour hide. If patiently thy bidding they obey, Dismiss them not disconsolate; reveal To Adam what shall come in future days, As I shall thee enlighten; intermix My covenant in the Woman's seed renewed; So send them forth, though sorrowing, yet in peace: And on the east side of the garden place, Where entrance up from Eden easiest climbs, Cherubick watch; and of a sword the flame Wide-waving; all approach far off to fright, And guard all passage to the tree of life: Lest Paradise a receptacle prove To Spirits foul, and all my trees their prey; With whose stolen fruit Man once more to delude. He ceased; and the arch-angelick Power prepared For swift descent; with him the cohort bright Of watchful Cherubim: four faces each Had, like a double Janus; all their shape Spangled with eyes more numerous than those Of Argus, and more wakeful than to drouse, Charmed with Arcadian pipe, the pastoral reed Of Hermes, or his opiate rod. Mean while, To re-salute the world with sacred light, Leucothea waked; and with fresh dews imbalmed The earth; when Adam and first matron Eve Had ended now their orisons, and found Strength added from above; new hope to spring Out of despair; joy, but with fear yet linked; Which thus to Eve his welcome words renewed. Eve, easily my faith admit, that all The good which we enjoy from Heaven descends; But, that from us aught should ascend to Heaven So prevalent as to concern the mind Of God high-blest, or to incline his will, Hard to belief may seem; yet this will prayer Or one short sigh of human breath, upborne Even to the seat of God. For since I sought By prayer the offended Deity to appease; Kneeled, and before him humbled all my heart; Methought I saw him placable and mild, Bending his ear; persuasion in me grew That I was heard with favour; peace returned Home to my breast, and to my memory His promise, that thy seed shall bruise our foe; Which, then not minded in dismay, yet now Assures me that the bitterness of death Is past, and we shall live. Whence hail to thee, Eve rightly called, mother of all mankind, Mother of all things living, since by thee Man is to live; and all things live for Man. To whom thus Eve with sad demeanour meek. Ill-worthy I such title should belong To me transgressour; who, for thee ordained A help, became thy snare; to me reproach Rather belongs, distrust, and all dispraise: But infinite in pardon was my Judge, That I, who first brought death on all, am graced The source of life; next favourable thou, Who highly thus to entitle me vouchsaf'st, Far other name deserving. But the field To labour calls us, now with sweat imposed, Though after sleepless night; for see!the morn, All unconcerned with our unrest, begins Her rosy progress smiling: let us forth; I never from thy side henceforth to stray, Where'er our day's work lies, though now enjoined Laborious, till day droop; while here we dwell, What can be toilsome in these pleasant walks? Here let us live, though in fallen state, content. So spake, so wished much humbled Eve; but Fate Subscribed not: Nature first gave signs, impressed On bird, beast, air; air suddenly eclipsed, After short blush of morn; nigh in her sight The bird of Jove, stooped from his aery tour, Two birds of gayest plume before him drove; Down from a hill the beast that reigns in woods, First hunter then, pursued a gentle brace, Goodliest of all the forest, hart and hind; Direct to the eastern gate was bent their flight. Adam observed, and with his eye the chase Pursuing, not unmoved, to Eve thus spake. O Eve, some further change awaits us nigh, Which Heaven, by these mute signs in Nature, shows Forerunners of his purpose; or to warn Us, haply too secure, of our discharge From penalty, because from death released Some days: how long, and what till then our life, Who knows? or more than this, that we are dust, And thither must return, and be no more? Why else this double object in our sight Of flight pursued in the air, and o'er the ground, One way the self-same hour? why in the east Darkness ere day's mid-course, and morning-light More orient in yon western cloud, that draws O'er the blue firmament a radiant white, And slow descends with something heavenly fraught? He erred not; for by this the heavenly bands Down from a sky of jasper lighted now In Paradise, and on a hill made halt; A glorious apparition, had not doubt And carnal fear that day dimmed Adam's eye. Not that more glorious, when the Angels met Jacob in Mahanaim, where he saw The field pavilioned with his guardians bright; Nor that, which on the flaming mount appeared In Dothan, covered with a camp of fire, Against the Syrian king, who to surprise One man, assassin-like, had levied war, War unproclaimed. The princely Hierarch In their bright stand there left his Powers, to seise Possession of the garden; he alone, To find where Adam sheltered, took his way, Not unperceived of Adam; who to Eve, While the great visitant approached, thus spake. Eve$ now expect great tidings, which perhaps Of us will soon determine, or impose New laws to be observed; for I descry, From yonder blazing cloud that veils the hill, One of the heavenly host; and, by his gait, None of the meanest; some great Potentate Or of the Thrones above; such majesty Invests him coming! yet not terrible, That I should fear; nor sociably mild, As Raphael, that I should much confide; But solemn and sublime; whom not to offend, With reverence I must meet, and thou retire. He ended: and the Arch-Angel soon drew nigh, Not in his shape celestial, but as man Clad to meet man; over his lucid arms A military vest of purple flowed, Livelier than Meliboean, or the grain Of Sarra, worn by kings and heroes old In time of truce; Iris had dipt the woof; His starry helm unbuckled showed him prime In manhood where youth ended; by his side, As in a glistering zodiack, hung the sword, Satan's dire dread; and in his hand the spear. Adam bowed low; he, kingly, from his state Inclined not, but his coming thus declared. Adam, Heaven's high behest no preface needs: Sufficient that thy prayers are heard; and Death, Then due by sentence when thou didst transgress, Defeated of his seisure many days Given thee of grace; wherein thou mayest repent, And one bad act with many deeds well done Mayest cover: Well may then thy Lord, appeased, Redeem thee quite from Death's rapacious claim; But longer in this Paradise to dwell Permits not: to remove thee I am come, And send thee from the garden forth to till The ground whence thou wast taken, fitter soil. He added not; for Adam at the news Heart-struck with chilling gripe of sorrow stood, That all his senses bound; Eve, who unseen Yet all had heard, with audible lament Discovered soon the place of her retire. O unexpected stroke, worse than of Death! Must I thus leave thee$ Paradise? thus leave Thee, native soil! these happy walks and shades, Fit haunt of Gods? where I had hope to spend, Quiet though sad, the respite of that day That must be mortal to us both. O flowers, That never will in other climate grow, My early visitation, and my last ;t even, which I bred up with tender hand From the first opening bud, and gave ye names! Who now shall rear ye to the sun, or rank Your tribes, and water from the ambrosial fount? Thee lastly, nuptial bower! by me adorned With what to sight or smell was sweet! from thee How shall I part, and whither wander down Into a lower world; to this obscure And wild? how shall we breathe in other air Less pure, accustomed to immortal fruits? Whom thus the Angel interrupted mild. Lament not, Eve, but patiently resign What justly thou hast lost, nor set thy heart, Thus over-fond, on that which is not thine: Thy going is not lonely; with thee goes Thy husband; whom to follow thou art bound; Where he abides, think there thy native soil. Adam, by this from the cold sudden damp Recovering, and his scattered spirits returned, To Michael thus his humble words addressed. Celestial, whether among the Thrones, or named Of them the highest; for such of shape may seem Prince above princes! gently hast thou told Thy message, which might else in telling wound, And in performing end us; what besides Of sorrow, and dejection, and despair, Our frailty can sustain, thy tidings bring, Departure from this happy place, our sweet Recess, and only consolation left Familiar to our eyes! all places else Inhospitable appear, and desolate; Nor knowing us, nor known: And, if by prayer Incessant I could hope to change the will Of Him who all things can, I would not cease To weary him with my assiduous cries: But prayer against his absolute decree No more avails than breath against the wind, Blown stifling back on him that breathes it forth: Therefore to his great bidding I submit. This most afflicts me, that, departing hence, As from his face I shall be hid, deprived His blessed countenance: Here I could frequent With worship place by place where he vouchsafed Presence Divine; and to my sons relate, 'On this mount he appeared; under this tree 'Stood visible; among these pines his voice 'I heard; here with him at this fountain talked: So many grateful altars I would rear Of grassy turf, and pile up every stone Of lustre from the brook, in memory, Or monument to ages; and theron Offer sweet-smelling gums, and fruits, and flowers: In yonder nether world where shall I seek His bright appearances, or foot-step trace? For though I fled him angry, yet recalled To life prolonged and promised race, I now Gladly behold though but his utmost skirts Of glory; and far off his steps adore. To whom thus Michael with regard benign. Adam, thou knowest Heaven his, and all the Earth; Not this rock only; his Omnipresence fills Land, sea, and air, and every kind that lives, Fomented by his virtual power and warmed: All the earth he gave thee to possess and rule, No despicable gift; surmise not then His presence to these narrow bounds confined Of Paradise, or Eden: this had been Perhaps thy capital seat, from whence had spread All generations; and had hither come From all the ends of the earth, to celebrate And reverence thee, their great progenitor. But this pre-eminence thou hast lost, brought down To dwell on even ground now with thy sons: Yet doubt not but in valley, and in plain, God is, as here; and will be found alike Present; and of his presence many a sign Still following thee, still compassing thee round With goodness and paternal love, his face Express, and of his steps the track divine. Which that thou mayest believe, and be confirmed Ere thou from hence depart; know, I am sent To show thee what shall come in future days To thee, and to thy offspring: good with bad Expect to hear; supernal grace contending With sinfulness of men; thereby to learn True patience, and to temper joy with fear And pious sorrow; equally inured By moderation either state to bear, Prosperous or adverse: so shalt thou lead Safest thy life, and best prepared endure Thy mortal passage when it comes.--Ascend This hill; let Eve (for I have drenched her eyes) Here sleep below; while thou to foresight wakest; As once thou sleptst, while she to life was formed. To whom thus Adam gratefully replied. Ascend, I follow thee, safe Guide, the path Thou leadest me; and to the hand of Heaven submit, However chastening; to the evil turn My obvious breast; arming to overcome By suffering, and earn rest from labour won, If so I may attain. -- So both ascend In the visions of God. It was a hill, Of Paradise the highest; from whose top The hemisphere of earth, in clearest ken, Stretched out to the amplest reach of prospect lay. Not higher that hill, nor wider looking round, Whereon, for different cause, the Tempter set Our second Adam, in the wilderness; To show him all Earth's kingdoms, and their glory. His eye might there command wherever stood City of old or modern fame, the seat Of mightiest empire, from the destined walls Of Cambalu, seat of Cathaian Can, And Samarchand by Oxus, Temir's throne, To Paquin of Sinaean kings; and thence To Agra and Lahor of great Mogul, Down to the golden Chersonese; or where The Persian in Ecbatan sat, or since In Hispahan; or where the Russian Ksar In Mosco; or the Sultan in Bizance, Turchestan-born; nor could his eye not ken The empire of Negus to his utmost port Ercoco, and the less maritim kings Mombaza, and Quiloa, and Melind, And Sofala, thought Ophir, to the realm Of Congo, and Angola farthest south; Or thence from Niger flood to Atlas mount The kingdoms of Almansor, Fez and Sus, Morocco, and Algiers, and Tremisen; On Europe thence, and where Rome was to sway The world: in spirit perhaps he also saw Rich Mexico, the seat of Montezume, And Cusco in Peru, the richer seat Of Atabalipa; and yet unspoiled Guiana, whose great city Geryon's sons Call El Dorado. But to nobler sights Michael from Adam's eyes the film removed, Which that false fruit that promised clearer sight Had bred; then purged with euphrasy and rue The visual nerve, for he had much to see; And from the well of life three drops instilled. So deep the power of these ingredients pierced, Even to the inmost seat of mental sight, That Adam, now enforced to close his eyes, Sunk down, and all his spirits became entranced; But him the gentle Angel by the hand Soon raised, and his attention thus recalled. Adam, now ope thine eyes; and first behold The effects, which thy original crime hath wrought In some to spring from thee; who never touched The excepted tree; nor with the snake conspired; Nor sinned thy sin; yet from that sin derive Corruption, to bring forth more violent deeds. His eyes he opened, and beheld a field, Part arable and tilth, whereon were sheaves New reaped; the other part sheep-walks and folds; I' the midst an altar as the land-mark stood, Rustick, of grassy sord; thither anon A sweaty reaper from his tillage brought First fruits, the green ear, and the yellow sheaf, Unculled, as came to hand; a shepherd next, More meek, came with the firstlings of his flock, Choicest and best; then, sacrificing, laid The inwards and their fat, with incense strowed, On the cleft wood, and all due rights performed: His offering soon propitious fire from Heaven Consumed with nimble glance, and grateful steam; The other's not, for his was not sincere; Whereat he inly raged, and, as they talked, Smote him into the midriff with a stone That beat out life; he fell;and, deadly pale, Groaned out his soul with gushing blood effused. Much at that sight was Adam in his heart Dismayed, and thus in haste to the Angel cried. O Teacher, some great mischief hath befallen To that meek man, who well had sacrificed; Is piety thus and pure devotion paid? To whom Michael thus, he also moved, replied. These two are brethren, Adam, and to come Out of thy loins; the unjust the just hath slain, For envy that his brother's offering found From Heaven acceptance; but the bloody fact Will be avenged; and the other's faith, approved, Lose no reward; though here thou see him die, Rolling in dust and gore. To which our sire. Alas! both for the deed, and for the cause! But have I now seen Death? Is this the way I must return to native dust? O sight Of terrour, foul and ugly to behold, Horrid to think, how horrible to feel! To whom thus Michael. Death thou hast seen In his first shape on Man; but many shapes Of Death, and many are the ways that lead To his grim cave, all dismal; yet to sense More terrible at the entrance, than within. Some, as thou sawest, by violent stroke shall die; By fire, flood, famine, by intemperance more In meats and drinks, which on the earth shall bring Diseases dire, of which a monstrous crew Before thee shall appear; that thou mayest know What misery the inabstinence of Eve Shall bring on Men. Immediately a place Before his eyes appeared, sad, noisome, dark; A lazar-house it seemed; wherein were laid Numbers of all diseased; all maladies Of ghastly spasm, or racking torture, qualms Of heart-sick agony, all feverous kinds, Convulsions, epilepsies, fierce catarrhs, Intestine stone and ulcer, colick-pangs, Demoniack phrenzy, moaping melancholy, And moon-struck madness, pining atrophy, Marasmus, and wide-wasting pestilence, Dropsies, and asthmas, and joint-racking rheums. Dire was the tossing, deep the groans; Despair Tended the sick busiest from couch to couch; And over them triumphant Death his dart Shook, but delayed to strike, though oft invoked With vows, as their chief good, and final hope. Sight so deform what heart of rock could long Dry-eyed behold? Adam could not, but wept, Though not of woman born; compassion quelled His best of man, and gave him up to tears A space, till firmer thoughts restrained excess; And, scarce recovering words, his plaint renewed. O miserable mankind, to what fall Degraded, to what wretched state reserved! Better end here unborn. Why is life given To be thus wrested from us? rather, why Obtruded on us thus? who, if we knew What we receive, would either no accept Life offered, or soon beg to lay it down; Glad to be so dismissed in peace. Can thus The image of God in Man, created once So goodly and erect, though faulty since, To such unsightly sufferings be debased Under inhuman pains? Why should not Man, Retaining still divine similitude In part, from such deformities be free, And, for his Maker's image sake, exempt? Their Maker's image, answered Michael, then Forsook them, when themselves they vilified To serve ungoverned Appetite; and took His image whom they served, a brutish vice, Inductive mainly to the sin of Eve. Therefore so abject is their punishment, Disfiguring not God's likeness, but their own; Or if his likeness, by themselves defaced; While they pervert pure Nature's healthful rules To loathsome sickness; worthily, since they God's image did not reverence in themselves. I yield it just, said Adam, and submit. But is there yet no other way, besides These painful passages, how we may come To death, and mix with our connatural dust? There is, said Michael, if thou well observe The rule of Not too much; by temperance taught, In what thou eatest and drinkest; seeking from thence Due nourishment, not gluttonous delight, Till many years over thy head return: So mayest thou live; till, like ripe fruit, thou drop Into thy mother's lap; or be with ease Gathered, nor harshly plucked; for death mature: This is Old Age; but then, thou must outlive Thy youth, thy strength, thy beauty; which will change To withered, weak, and gray; thy senses then, Obtuse, all taste of pleasure must forego, To what thou hast; and, for the air of youth, Hopeful and cheerful, in thy blood will reign A melancholy damp of cold and dry To weigh thy spirits down, and last consume The balm of life. To whom our ancestor. Henceforth I fly not death, nor would prolong Life much; bent rather, how I may be quit, Fairest and easiest, of this cumbrous charge; Which I must keep till my appointed day Of rendering up, and patiently attend My dissolution. Michael replied. Nor love thy life, nor hate; but what thou livest Live well; how long, or short, permit to Heaven: And now prepare thee for another sight. He looked, and saw a spacious plain, whereon Were tents of various hue; by some, were herds Of cattle grazing; others, whence the sound Of instruments, that made melodious chime, Was heard, of harp and organ; and, who moved Their stops and chords, was seen; his volant touch, Instinct through all proportions, low and high, Fled and pursued transverse the resonant fugue. In other part stood one who, at the forge Labouring, two massy clods of iron and brass Had melted, (whether found where casual fire Had wasted woods on mountain or in vale, Down to the veins of earth; thence gliding hot To some cave's mouth; or whether washed by stream From underground;) the liquid ore he drained Into fit moulds prepared; from which he formed First his own tools; then, what might else be wrought Fusil or graven in metal. After these, But on the hither side, a different sort From the high neighbouring hills, which was their seat, Down to the plain descended; by their guise Just men they seemed, and all their study bent To worship God aright, and know his works Not hid; nor those things last, which might preserve Freedom and peace to Men; they on the plain Long had not walked, when from the tents, behold! A bevy of fair women, richly gay In gems and wanton dress; to the harp they sung Soft amorous ditties, and in dance came on: The men, though grave, eyed them; and let their eyes Rove without rein; till, in the amorous net Fast caught, they liked; and each his liking chose; And now of love they treat, till the evening-star, Love's harbinger, appeared; then, all in heat They light the nuptial torch, and bid invoke Hymen, then first to marriage rites invoked: With feast and musick all the tents resound. Such happy interview, and fair event Of love and youth not lost, songs, garlands, flowers, And charming symphonies, attached the heart Of Adam, soon inclined to admit delight, The bent of nature; which he thus expressed. True opener of mine eyes, prime Angel blest; Much better seems this vision, and more hope Of peaceful days portends, than those two past; Those were of hate and death, or pain much worse; Here Nature seems fulfilled in all her ends. To whom thus Michael. Judge not what is best By pleasure, though to nature seeming meet; Created, as thou art, to nobler end Holy and pure, conformity divine. Those tents thou sawest so pleasant, were the tents Of wickedness, wherein shall dwell his race Who slew his brother; studious they appear Of arts that polish life, inventers rare; Unmindful of their Maker, though his Spirit Taught them; but they his gifts acknowledged none. Yet they a beauteous offspring shall beget; For that fair female troop thou sawest, that seemed Of Goddesses, so blithe, so smooth, so gay, Yet empty of all good wherein consists Woman's domestick honour and chief praise; Bred only and completed to the taste Of lustful appetence, to sing, to dance, To dress, and troll the tongue, and roll the eye: To these that sober race of men, whose lives Religious titled them the sons of God, Shall yield up all their virtue, all their fame Ignobly, to the trains and to the smiles Of these fair atheists; and now swim in joy, Erelong to swim at large; and laugh, for which The world erelong a world of tears must weep. To whom thus Adam, of short joy bereft. O pity and shame, that they, who to live well Entered so fair, should turn aside to tread Paths indirect, or in the mid way faint! But still I see the tenour of Man's woe Holds on the same, from Woman to begin. From Man's effeminate slackness it begins, Said the Angel, who should better hold his place By wisdom, and superiour gifts received. But now prepare thee for another scene. He looked, and saw wide territory spread Before him, towns, and rural works between; Cities of men with lofty gates and towers, Concourse in arms, fierce faces threatening war, Giants of mighty bone and bold emprise; Part wield their arms, part curb the foaming steed, Single or in array of battle ranged Both horse and foot, nor idly mustering stood; One way a band select from forage drives A herd of beeves, fair oxen and fair kine, From a fat meadow ground; or fleecy flock, Ewes and their bleating lambs over the plain, Their booty; scarce with life the shepherds fly, But call in aid, which makes a bloody fray; With cruel tournament the squadrons join; Where cattle pastured late, now scattered lies With carcasses and arms the ensanguined field, Deserted: Others to a city strong Lay siege, encamped; by battery, scale, and mine, Assaulting; others from the wall defend With dart and javelin, stones, and sulphurous fire; On each hand slaughter, and gigantick deeds. In other part the sceptered heralds call To council, in the city-gates; anon Gray-headed men and grave, with warriours mixed, Assemble, and harangues are heard; but soon, In factious opposition; till at last, Of middle age one rising, eminent In wise deport, spake much of right and wrong, Of justice, or religion, truth, and peace, And judgement from above: him old and young Exploded, and had seized with violent hands, Had not a cloud descending snatched him thence Unseen amid the throng: so violence Proceeded, and oppression, and sword-law, Through all the plain, and refuge none was found. Adam was all in tears, and to his guide Lamenting turned full sad; O!what are these, Death's ministers, not men? who thus deal death Inhumanly to men, and multiply Ten thousandfold the sin of him who slew His brother: for of whom such massacre Make they, but of their brethren; men of men But who was that just man, whom had not Heaven Rescued, had in his righteousness been lost? To whom thus Michael. These are the product Of those ill-mated marriages thou sawest; Where good with bad were matched, who of themselves Abhor to join; and, by imprudence mixed, Produce prodigious births of body or mind. Such were these giants, men of high renown; For in those days might only shall be admired, And valour and heroick virtue called; To overcome in battle, and subdue Nations, and bring home spoils with infinite Man-slaughter, shall be held the highest pitch Of human glory; and for glory done Of triumph, to be styled great conquerours Patrons of mankind, Gods, and sons of Gods; Destroyers rightlier called, and plagues of men. Thus fame shall be achieved, renown on earth; And what most merits fame, in silence hid. But he, the seventh from thee, whom thou beheldst The only righteous in a world preverse, And therefore hated, therefore so beset With foes, for daring single to be just, And utter odious truth, that God would come To judge them with his Saints; him the Most High Rapt in a balmy cloud with winged steeds Did, as thou sawest, receive, to walk with God High in salvation and the climes of bliss, Exempt from death; to show thee what reward Awaits the good; the rest what punishment; Which now direct thine eyes and soon behold. He looked, and saw the face of things quite changed; The brazen throat of war had ceased to roar; All now was turned to jollity and game, To luxury and riot, feast and dance; Marrying or prostituting, as befel, Rape or adultery, where passing fair Allured them; thence from cups to civil broils. At length a reverend sire among them came, And of their doings great dislike declared, And testified against their ways; he oft Frequented their assemblies, whereso met, Triumphs or festivals; and to them preached Conversion and repentance, as to souls In prison, under judgements imminent: But all in vain: which when he saw, he ceased Contending, and removed his tents far off; Then, from the mountain hewing timber tall, Began to build a vessel of huge bulk; Measured by cubit, length, and breadth, and highth; Smeared round with pitch; and in the side a door Contrived; and of provisions laid in large, For man and beast: when lo, a wonder strange! Of every beast, and bird, and insect small, Came sevens, and pairs; and entered in as taught Their order: last the sire and his three sons, With their four wives; and God made fast the door. Mean while the south-wind rose, and, with black wings Wide-hovering, all the clouds together drove From under Heaven; the hills to their supply Vapour, and exhalation dusk and moist, Sent up amain; and now the thickened sky Like a dark cieling stood; down rushed the rain Impetuous; and continued, till the earth No more was seen: the floating vessel swum Uplifted, and secure with beaked prow Rode tilting o'er the waves; all dwellings else Flood overwhelmed, and them with all their pomp Deep under water rolled; sea covered sea, Sea without shore; and in their palaces, Where luxury late reigned, sea-monsters whelped And stabled; of mankind, so numerous late, All left, in one small bottom swum imbarked. How didst thou grieve then, Adam, to behold The end of all thy offspring, end so sad, Depopulation! Thee another flood, Of tears and sorrow a flood, thee also drowned, And sunk thee as thy sons; till, gently reared By the Angel, on thy feet thou stoodest at last, Though comfortless; as when a father mourns His children, all in view destroyed at once; And scarce to the Angel utter'dst thus thy plaint. O visions ill foreseen! Better had I Lived ignorant of future! so had borne My part of evil only, each day's lot Enough to bear; those now, that were dispensed The burden of many ages, on me light At once, by my foreknowledge gaining birth Abortive, to torment me ere their being, With thought that they must be. Let no man seek Henceforth to be foretold, what shall befall Him or his children; evil he may be sure, Which neither his foreknowing can prevent; And he the future evil shall no less In apprehension than in substance feel, Grievous to bear: but that care now is past, Man is not whom to warn: those few escaped Famine and anguish will at last consume, Wandering that watery desart: I had hope, When violence was ceased, and war on earth, All would have then gone well; peace would have crowned With length of happy days the race of Man; But I was far deceived; for now I see Peace to corrupt no less than war to waste. How comes it thus? unfold, celestial Guide, And whether here the race of Man will end. To whom thus Michael. Those, whom last thou sawest In triumph and luxurious wealth, are they First seen in acts of prowess eminent And great exploits, but of true virtue void; Who, having spilt much blood, and done much wast Subduing nations, and achieved thereby Fame in the world, high titles, and rich prey; Shall change their course to pleasure, ease, and sloth, Surfeit, and lust; till wantonness and pride Raise out of friendship hostile deeds in peace. The conquered also, and enslaved by war, Shall, with their freedom lost, all virtue lose And fear of God; from whom their piety feigned In sharp contest of battle found no aid Against invaders; therefore, cooled in zeal, Thenceforth shall practice how to live secure, Worldly or dissolute, on what their lords Shall leave them to enjoy; for the earth shall bear More than enough, that temperance may be tried: So all shall turn degenerate, all depraved; Justice and temperance, truth and faith, forgot; One man except, the only son of light In a dark age, against example good, Against allurement, custom, and a world Offended: fearless of reproach and scorn, The grand-child, with twelve sons encreased, departs From Canaan, to a land hereafter called Egypt, divided by the river Nile; See where it flows, disgorging at seven mouths Into the sea: To sojourn in that land He comes, invited by a younger son In time of dearth; a son, whose worthy deeds Raise him to be the second in that realm Of Pharaoh: There he dies, and leaves his race Growing into a nation, and now grown Suspected to a sequent king, who seeks To stop their overgrowth, as inmate guests Or violence, he of their wicked ways Shall them admonish; and before them set The paths of righteousness, how much more safe And full of peace; denouncing wrath to come On their impenitence; and shall return Of them derided, but of God observed The one just man alive; by his command Shall build a wonderous ark, as thou beheldst, To save himself, and houshold, from amidst A world devote to universal wrack. No sooner he, with them of man and beast Select for life, shall in the ark be lodged, And sheltered round; but all the cataracts Of Heaven set open on the Earth shall pour Rain, day and night; all fountains of the deep, Broke up, shall heave the ocean to usurp Beyond all bounds; till inundation rise Above the highest hills: Then shall this mount Of Paradise by might of waves be moved Out of his place, pushed by the horned flood, With all his verdure spoiled, and trees adrift, Down the great river to the opening gulf, And there take root an island salt and bare, The haunt of seals, and orcs, and sea-mews' clang: To teach thee that God attributes to place No sanctity, if none be thither brought By men who there frequent, or therein dwell. And now, what further shall ensue, behold. He looked, and saw the ark hull on the flood, Which now abated; for the clouds were fled, Driven by a keen north-wind, that, blowing dry, Wrinkled the face of deluge, as decayed; And the clear sun on his wide watery glass Gazed hot, and of the fresh wave largely drew, As after thirst; which made their flowing shrink From standing lake to tripping ebb, that stole With soft foot towards the deep; who now had stopt His sluces, as the Heaven his windows shut. The ark no more now floats, but seems on ground, Fast on the top of some high mountain fixed. And now the tops of hills, as rocks, appear; With clamour thence the rapid currents drive, Towards the retreating sea, their furious tide. Forthwith from out the ark a raven flies, And after him, the surer messenger, A dove sent forth once and again to spy Green tree or ground, whereon his foot may light: The second time returning, in his bill An olive-leaf he brings, pacifick sign: Anon dry ground appears, and from his ark The ancient sire descends, with all his train; Then with uplifted hands, and eyes devout, Grateful to Heaven, over his head beholds A dewy cloud, and in the cloud a bow Conspicuous with three lifted colours gay, Betokening peace from God, and covenant new. Whereat the heart of Adam, erst so sad, Greatly rejoiced; and thus his joy broke forth. O thou, who future things canst represent As present, heavenly Instructer! I revive At this last sight; assured that Man shall live, With all the creatures, and their seed preserve. Far less I now lament for one whole world Of wicked sons destroyed, than I rejoice For one man found so perfect, and so just, That God vouchsafes to raise another world From him, and all his anger to forget. But say, what mean those coloured streaks in Heaven Distended, as the brow of God appeased? Or serve they, as a flowery verge, to bind The fluid skirts of that same watery cloud, Lest it again dissolve, and shower the earth? To whom the Arch-Angel. Dextrously thou aimest; So willingly doth God remit his ire, Though late repenting him of Man depraved; Grieved at his heart, when looking down he saw The whole earth filled with violence, and all flesh Corrupting each their way; yet, those removed, Such grace shall one just man find in his sight, That he relents, not to blot out mankind; And makes a covenant never to destroy The earth again by flood; nor let the sea Surpass his bounds; nor rain to drown the world, With man therein or beast; but, when he brings Over the earth a cloud, will therein set His triple-coloured bow, whereon to look, And call to mind his covenant: Day and night, Seed-time and harvest, heat and hoary frost, Shall hold their course; till fire purge all things new, Both Heaven and Earth, wherein the just shall dwell. Book XII As one who in his journey bates at noon, Though bent on speed; so here the Arch-Angel paused Betwixt the world destroyed and world restored, If Adam aught perhaps might interpose; Then, with transition sweet, new speech resumes. Thus thou hast seen one world begin, and end; And Man, as from a second stock, proceed. Much thou hast yet to see; but I perceive Thy mortal sight to fail; objects divine Must needs impair and weary human sense: Henceforth what is to come I will relate; Thou therefore give due audience, and attend. This second source of Men, while yet but few, And while the dread of judgement past remains Fresh in their minds, fearing the Deity, With some regard to what is just and right Shall lead their lives, and multiply apace; Labouring the soil, and reaping plenteous crop, Corn, wine, and oil; and, from the herd or flock, Oft sacrificing bullock, lamb, or kid, With large wine-offerings poured, and sacred feast, Shall spend their days in joy unblamed; and dwell Long time in peace, by families and tribes, Under paternal rule: till one shall rise Of proud ambitious heart; who, not content With fair equality, fraternal state, Will arrogate dominion undeserved Over his brethren, and quite dispossess Concord and law of nature from the earth; Hunting (and men not beasts shall be his game) With war, and hostile snare, such as refuse Subjection to his empire tyrannous: A mighty hunter thence he shall be styled Before the Lord; as in despite of Heaven, Or from Heaven, claiming second sovranty; And from rebellion shall derive his name, Though of rebellion others he accuse. He with a crew, whom like ambition joins With him or under him to tyrannize, Marching from Eden towards the west, shall find The plain, wherein a black bituminous gurge Boils out from under ground, the mouth of Hell: Of brick, and of that stuff, they cast to build A city and tower, whose top may reach to Heaven; And get themselves a name; lest, far dispersed In foreign lands, their memory be lost; Regardless whether good or evil fame. But God, who oft descends to visit men Unseen, and through their habitations walks To mark their doings, them beholding soon, Comes down to see their city, ere the tower Obstruct Heaven-towers, and in derision sets Upon their tongues a various spirit, to rase Quite out their native language; and, instead, To sow a jangling noise of words unknown: Forthwith a hideous gabble rises loud, Among the builders; each to other calls Not understood; till hoarse, and all in rage, As mocked they storm: great laughter was in Heaven, And looking down, to see the hubbub strange, And hear the din: Thus was the building left Ridiculous, and the work Confusion named. Whereto thus Adam, fatherly displeased. O execrable son! so to aspire Above his brethren; to himself assuming Authority usurped, from God not given: He gave us only over beast, fish, fowl, Dominion absolute; that right we hold By his donation; but man over men He made not lord; such title to himself Reserving, human left from human free. But this usurper his encroachment proud Stays not on Man; to God his tower intends Siege and defiance: Wretched man!what food Will he convey up thither, to sustain Himself and his rash army; where thin air Above the clouds will pine his entrails gross, And famish him of breath, if not of bread? To whom thus Michael. Justly thou abhorrest That son, who on the quiet state of men Such trouble brought, affecting to subdue Rational liberty; yet know withal, Since thy original lapse, true liberty Is lost, which always with right reason dwells Twinned, and from her hath no dividual being: Reason in man obscured, or not obeyed, Immediately inordinate desires, And upstart passions, catch the government From reason; and to servitude reduce Man, till then free. Therefore, since he permits Within himself unworthy powers to reign Over free reason, God, in judgement just, Subjects him from without to violent lords; Who oft as undeservedly enthrall His outward freedom: Tyranny must be; Though to the tyrant thereby no excuse. Yet sometimes nations will decline so low From virtue, which is reason, that no wrong, But justice, and some fatal curse annexed, Deprives them of their outward liberty; Their inward lost: Witness the irreverent son Of him who built the ark; who, for the shame Done to his father, heard this heavy curse, Servant of servants, on his vicious race. Thus will this latter, as the former world, Still tend from bad to worse; till God at last, Wearied with their iniquities, withdraw His presence from among them, and avert His holy eyes; resolving from thenceforth To leave them to their own polluted ways; And one peculiar nation to select From all the rest, of whom to be invoked, A nation from one faithful man to spring: Him on this side Euphrates yet residing, Bred up in idol-worship: O, that men (Canst thou believe?) should be so stupid grown, While yet the patriarch lived, who 'scaped the flood, As to forsake the living God, and fall To worship their own work in wood and stone For Gods! Yet him God the Most High vouchsafes To call by vision, from his father's house, His kindred, and false Gods, into a land Which he will show him; and from him will raise A mighty nation; and upon him shower His benediction so, that in his seed All nations shall be blest: he straight obeys; Not knowing to what land, yet firm believes: I see him, but thou canst not, with what faith He leaves his Gods, his friends, and native soil, Ur of Chaldaea, passing now the ford To Haran; after him a cumbrous train Of herds and flocks, and numerous servitude; Not wandering poor, but trusting all his wealth With God, who called him, in a land unknown. Canaan he now attains; I see his tents Pitched about Sechem, and the neighbouring plain Of Moreh; there by promise he receives Gift to his progeny of all that land, From Hameth northward to the Desart south; (Things by their names I call, though yet unnamed;) From Hermon east to the great western Sea; Mount Hermon, yonder sea; each place behold In prospect, as I point them; on the shore Mount Carmel; here, the double-founted stream, Jordan, true limit eastward; but his sons Shall dwell to Senir, that long ridge of hills. This ponder, that all nations of the earth Shall in his seed be blessed: By that seed Is meant thy great Deliverer, who shall bruise The Serpent's head; whereof to thee anon Plainlier shall be revealed. This patriarch blest, Whom faithful Abraham due time shall call, A son, and of his son a grand-child, leaves; Like him in faith, in wisdom, and renown: The grandchild, with twelve sons increased, departs From Canaan to a land hereafter called Egypt, divided by the river Nile See where it flows, disgorging at seven mouths Into the sea. To sojourn in that land He comes, invited by a younger son In time of dearth, a son whose worthy deeds Raise him to be the second in that realm Of Pharaoh. There he dies, and leaves his race Growing into a nation, and now grown Suspected to a sequent king, who seeks To stop their overgrowth, as inmate guests Too numerous; whence of guests he makes them slaves Inhospitably, and kills their infant males: Till by two brethren (these two brethren call Moses and Aaron) sent from God to claim His people from enthralment, they return, With glory and spoil, back to their promised land. But first, the lawless tyrant, who denies To know their God, or message to regard, Must be compelled by signs and judgements dire; To blood unshed the rivers must be turned; Frogs, lice, and flies, must all his palace fill With loathed intrusion, and fill all the land; His cattle must of rot and murren die; Botches and blains must all his flesh emboss, And all his people; thunder mixed with hail, Hail mixed with fire, must rend the Egyptians sky, And wheel on the earth, devouring where it rolls; What it devours not, herb, or fruit, or grain, A darksome cloud of locusts swarming down Must eat, and on the ground leave nothing green; Darkness must overshadow all his bounds, Palpable darkness, and blot out three days; Last, with one midnight stroke, all the first-born Of Egypt must lie dead. Thus with ten wounds The river-dragon tamed at length submits To let his sojourners depart, and oft Humbles his stubborn heart; but still, as ice More hardened after thaw; till, in his rage Pursuing whom he late dismissed, the sea Swallows him with his host; but them lets pass, As on dry land, between two crystal walls; Awed by the rod of Moses so to stand Divided, till his rescued gain their shore: Such wondrous power God to his saint will lend, Though present in his Angel; who shall go Before them in a cloud, and pillar of fire; By day a cloud, by night a pillar of fire; To guide them in their journey, and remove Behind them, while the obdurate king pursues: All night he will pursue; but his approach Darkness defends between till morning watch; Then through the fiery pillar, and the cloud, God looking forth will trouble all his host, And craze their chariot-wheels: when by command Moses once more his potent rod extends Over the sea; the sea his rod obeys; On their embattled ranks the waves return, And overwhelm their war: The race elect Safe toward Canaan from the shore advance Through the wild Desart, not the readiest way; Lest, entering on the Canaanite alarmed, War terrify them inexpert, and fear Return them back to Egypt, choosing rather Inglorious life with servitude; for life To noble and ignoble is more sweet Untrained in arms, where rashness leads not on. This also shall they gain by their delay In the wide wilderness; there they shall found Their government, and their great senate choose Through the twelve tribes, to rule by laws ordained: God from the mount of Sinai, whose gray top Shall tremble, he descending, will himself In thunder, lightning, and loud trumpets' sound, Ordain them laws; part, such as appertain To civil justice; part, religious rites Of sacrifice; informing them, by types And shadows, of that destined Seed to bruise The Serpent, by what means he shall achieve Mankind's deliverance. But the voice of God To mortal ear is dreadful: They beseech That Moses might report to them his will, And terrour cease; he grants what they besought, Instructed that to God is no access Without Mediator, whose high office now Moses in figure bears; to introduce One greater, of whose day he shall foretel, And all the Prophets in their age the times Of great Messiah shall sing. Thus, laws and rites Established, such delight hath God in Men Obedient to his will, that he vouchsafes Among them to set up his tabernacle; The Holy One with mortal Men to dwell: By his prescript a sanctuary is framed Of cedar, overlaid with gold; therein An ark, and in the ark his testimony, The records of his covenant; over these A mercy-seat of gold, between the wings Of two bright Cherubim; before him burn Seven lamps as in a zodiack representing The heavenly fires; over the tent a cloud Shall rest by day, a fiery gleam by night; Save when they journey, and at length they come, Conducted by his Angel, to the land Promised to Abraham and his seed:--The rest Were long to tell; how many battles fought How many kings destroyed; and kingdoms won; Or how the sun shall in mid Heaven stand still A day entire, and night's due course adjourn, Man's voice commanding, 'Sun, in Gibeon stand, 'And thou moon in the vale of Aialon, 'Till Israel overcome! so call the third From Abraham, son of Isaac; and from him His whole descent, who thus shall Canaan win. Here Adam interposed. O sent from Heaven, Enlightener of my darkness, gracious things Thou hast revealed; those chiefly, which concern Just Abraham and his seed: now first I find Mine eyes true-opening, and my heart much eased; Erewhile perplexed with thoughts, what would become Of me and all mankind: But now I see His day, in whom all nations shall be blest; Favour unmerited by me, who sought Forbidden knowledge by forbidden means. This yet I apprehend not, why to those Among whom God will deign to dwell on earth So many and so various laws are given; So many laws argue so many sins Among them; how can God with such reside? To whom thus Michael. Doubt not but that sin Will reign among them, as of thee begot; And therefore was law given them, to evince Their natural pravity, by stirring up Sin against law to fight: that when they see Law can discover sin, but not remove, Save by those shadowy expiations weak, The blood of bulls and goats, they may conclude Some blood more precious must be paid for Man; Just for unjust; that, in such righteousness To them by faith imputed, they may find Justification towards God, and peace Of conscience; which the law by ceremonies Cannot appease; nor Man the mortal part Perform; and, not performing, cannot live. So law appears imperfect; and but given With purpose to resign them, in full time, Up to a better covenant; disciplined From shadowy types to truth; from flesh to spirit; From imposition of strict laws to free Acceptance of large grace; from servile fear To filial; works of law to works of faith. And therefore shall not Moses, though of God Highly beloved, being but the minister Of law, his people into Canaan lead; But Joshua, whom the Gentiles Jesus call, His name and office bearing, who shall quell The adversary-Serpent, and bring back Through the world's wilderness long-wandered Man Safe to eternal Paradise of rest. Mean while they, in their earthly Canaan placed, Long time shall dwell and prosper, but when sins National interrupt their publick peace, Provoking God to raise them enemies; From whom as oft he saves them penitent By Judges first, then under Kings; of whom The second, both for piety renowned And puissant deeds, a promise shall receive Irrevocable, that his regal throne For ever shall endure; the like shall sing All Prophecy, that of the royal stock Of David (so I name this king) shall rise A Son, the Woman's seed to thee foretold, Foretold to Abraham, as in whom shall trust All nations; and to kings foretold, of kings The last; for of his reign shall be no end. But first, a long succession must ensue; And his next son, for wealth and wisdom famed, The clouded ark of God, till then in tents Wandering, shall in a glorious temple enshrine. Such follow him, as shall be registered Part good, part bad; of bad the longer scroll; Whose foul idolatries, and other faults Heaped to the popular sum, will so incense God, as to leave them, and expose their land, Their city, his temple, and his holy ark, With all his sacred things, a scorn and prey To that proud city, whose high walls thou sawest Left in confusion; Babylon thence called. There in captivity he lets them dwell The space of seventy years; then brings them back, Remembering mercy, and his covenant sworn To David, stablished as the days of Heaven. Returned from Babylon by leave of kings Their lords, whom God disposed, the house of God They first re-edify; and for a while In mean estate live moderate; till, grown In wealth and multitude, factious they grow; But first among the priests dissention springs, Men who attend the altar, and should most Endeavour peace: their strife pollution brings Upon the temple itself: at last they seise The scepter, and regard not David's sons; Then lose it to a stranger, that the true Anointed King Messiah might be born Barred of his right; yet at his birth a star, Unseen before in Heaven, proclaims him come; And guides the eastern sages, who inquire His place, to offer incense, myrrh, and gold: His place of birth a solemn Angel tells To simple shepherds, keeping watch by night; They gladly thither haste, and by a quire Of squadroned Angels hear his carol sung. A virgin is his mother, but his sire The power of the Most High: He shall ascend The throne hereditary, and bound his reign With Earth's wide bounds, his glory with the Heavens. He ceased, discerning Adam with such joy Surcharged, as had like grief been dewed in tears, Without the vent of words; which these he breathed. O prophet of glad tidings, finisher Of utmost hope! now clear I understand What oft my steadiest thoughts have searched in vain; Why our great Expectation should be called The seed of Woman: Virgin Mother, hail, High in the love of Heaven; yet from my loins Thou shalt proceed, and from thy womb the Son Of God Most High: so God with Man unites! Needs must the Serpent now his capital bruise Expect with mortal pain: Say where and when Their fight, what stroke shall bruise the victor's heel. To whom thus Michael. Dream not of their fight, As of a duel, or the local wounds Of head or heel: Not therefore joins the Son Manhood to Godhead, with more strength to foil Thy enemy; nor so is overcome Satan, whose fall from Heaven, a deadlier bruise, Disabled, not to give thee thy death's wound: Which he, who comes thy Saviour, shall recure, Not by destroying Satan, but his works In thee, and in thy seed: Nor can this be, But by fulfilling that which thou didst want, Obedience to the law of God, imposed On penalty of death, and suffering death; The penalty to thy transgression due, And due to theirs which out of thine will grow: So only can high Justice rest appaid. The law of God exact he shall fulfil Both by obedience and by love, though love Alone fulfil the law; thy punishment He shall endure, by coming in the flesh To a reproachful life, and cursed death; Proclaiming life to all who shall believe In his redemption; and that his obedience, Imputed, becomes theirs by faith; his merits To save them, not their own, though legal, works. For this he shall live hated, be blasphemed, Seised on by force, judged, and to death condemned A shameful and accursed, nailed to the cross By his own nation; slain for bringing life: But to the cross he nails thy enemies, The law that is against thee, and the sins Of all mankind, with him there crucified, Never to hurt them more who rightly trust In this his satisfaction; so he dies, But soon revives; Death over him no power Shall long usurp; ere the third dawning light Return, the stars of morn shall see him rise Out of his grave, fresh as the dawning light, Thy ransom paid, which Man from death redeems, His death for Man, as many as offered life Neglect not, and the benefit embrace By faith not void of works: This God-like act Annuls thy doom, the death thou shouldest have died, In sin for ever lost from life; this act Shall bruise the head of Satan, crush his strength, Defeating Sin and Death, his two main arms; And fix far deeper in his head their stings Than temporal death shall bruise the victor's heel, Or theirs whom he redeems; a death, like sleep, A gentle wafting to immortal life. Nor after resurrection shall he stay Longer on earth, than certain times to appear To his disciples, men who in his life Still followed him; to them shall leave in charge To teach all nations what of him they learned And his salvation; them who shall believe Baptizing in the profluent stream, the sign Of washing them from guilt of sin to life Pure, and in mind prepared, if so befall, For death, like that which the Redeemer died. All nations they shall teach; for, from that day, Not only to the sons of Abraham's loins Salvation shall be preached, but to the sons Of Abraham's faith wherever through the world; So in his seed all nations shall be blest. Then to the Heaven of Heavens he shall ascend With victory, triumphing through the air Over his foes and thine; there shall surprise The Serpent, prince of air, and drag in chains Through all his realm, and there confounded leave; Then enter into glory, and resume His seat at God's right hand, exalted high Above all names in Heaven; and thence shall come, When this world's dissolution shall be ripe, With glory and power to judge both quick and dead; To judge the unfaithful dead, but to reward His faithful, and receive them into bliss, Whether in Heaven or Earth; for then the Earth Shall all be Paradise, far happier place Than this of Eden, and far happier days. So spake the Arch-Angel Michael; then paused, As at the world's great period; and our sire, Replete with joy and wonder, thus replied. O Goodness infinite, Goodness immense! That all this good of evil shall produce, And evil turn to good; more wonderful Than that which by creation first brought forth Light out of darkness! Full of doubt I stand, Whether I should repent me now of sin By me done, and occasioned; or rejoice Much more, that much more good thereof shall spring; To God more glory, more good-will to Men From God, and over wrath grace shall abound. But say, if our Deliverer up to Heaven Must re-ascend, what will betide the few His faithful, left among the unfaithful herd, The enemies of truth? Who then shall guide His people, who defend? Will they not deal Worse with his followers than with him they dealt? Be sure they will, said the Angel; but from Heaven He to his own a Comforter will send, The promise of the Father, who shall dwell His Spirit within them; and the law of faith, Working through love, upon their hearts shall write, To guide them in all truth; and also arm With spiritual armour, able to resist Satan's assaults, and quench his fiery darts; What man can do against them, not afraid, Though to the death; against such cruelties With inward consolations recompensed, And oft supported so as shall amaze Their proudest persecutors: For the Spirit, Poured first on his Apostles, whom he sends To evangelize the nations, then on all Baptized, shall them with wonderous gifts endue To speak all tongues, and do all miracles, As did their Lord before them. Thus they win Great numbers of each nation to receive With joy the tidings brought from Heaven: At length Their ministry performed, and race well run, Their doctrine and their story written left, They die; but in their room, as they forewarn, Wolves shall succeed for teachers, grievous wolves, Who all the sacred mysteries of Heaven To their own vile advantages shall turn Of lucre and ambition; and the truth With superstitions and traditions taint, Left only in those written records pure, Though not but by the Spirit understood. Then shall they seek to avail themselves of names, Places, and titles, and with these to join Secular power; though feigning still to act By spiritual, to themselves appropriating The Spirit of God, promised alike and given To all believers; and, from that pretence, Spiritual laws by carnal power shall force On every conscience; laws which none shall find Left them inrolled, or what the Spirit within Shall on the heart engrave. What will they then But force the Spirit of Grace itself, and bind His consort Liberty? what, but unbuild His living temples, built by faith to stand, Their own faith, not another's? for, on earth, Who against faith and conscience can be heard Infallible? yet many will presume: Whence heavy persecution shall arise On all, who in the worship persevere Of spirit and truth; the rest, far greater part, Will deem in outward rites and specious forms Religion satisfied; Truth shall retire Bestuck with slanderous darts, and works of faith Rarely be found: So shall the world go on, To good malignant, to bad men benign; Under her own weight groaning; till the day Appear of respiration to the just, And vengeance to the wicked, at return Of him so lately promised to thy aid, The Woman's Seed; obscurely then foretold, Now ampler known thy Saviour and thy Lord; Last, in the clouds, from Heaven to be revealed In glory of the Father, to dissolve Satan with his perverted world; then raise From the conflagrant mass, purged and refined, New Heavens, new Earth, ages of endless date, Founded in righteousness, and peace, and love; To bring forth fruits, joy and eternal bliss. He ended; and thus Adam last replied. How soon hath thy prediction, Seer blest, Measured this transient world, the race of time, Till time stand fixed! Beyond is all abyss, Eternity, whose end no eye can reach. Greatly-instructed I shall hence depart; Greatly in peace of thought; and have my fill Of knowledge, what this vessel can contain; Beyond which was my folly to aspire. Henceforth I learn, that to obey is best, And love with fear the only God; to walk As in his presence; ever to observe His providence; and on him sole depend, Merciful over all his works, with good Still overcoming evil, and by small Accomplishing great things, by things deemed weak Subverting worldly strong, and worldly wise By simply meek: that suffering for truth's sake Is fortitude to highest victory, And, to the faithful, death the gate of life; Taught this by his example, whom I now Acknowledge my Redeemer ever blest. To whom thus also the Angel last replied. This having learned, thou hast attained the sum Of wisdom; hope no higher, though all the stars Thou knewest by name, and all the ethereal powers, All secrets of the deep, all Nature's works, Or works of God in Heaven, air, earth, or sea, And all the riches of this world enjoyedst, And all the rule, one empire; only add Deeds to thy knowledge answerable; add faith, Add virtue, patience, temperance; add love, By name to come called charity, the soul Of all the rest: then wilt thou not be loth To leave this Paradise, but shalt possess A Paradise within thee, happier far.-- Let us descend now therefore from this top Of speculation; for the hour precise Exacts our parting hence; and see!the guards, By me encamped on yonder hill, expect Their motion; at whose front a flaming sword, In signal of remove, waves fiercely round: We may no longer stay: go, waken Eve; Her also I with gentle dreams have calmed Portending good, and all her spirits composed To meek submission: thou, at season fit, Let her with thee partake what thou hast heard; Chiefly what may concern her faith to know, The great deliverance by her seed to come (For by the Woman's seed) on all mankind: That ye may live, which will be many days, Both in one faith unanimous, though sad, With cause, for evils past; yet much more cheered With meditation on the happy end. He ended, and they both descend the hill; Descended, Adam to the bower, where Eve Lay sleeping, ran before; but found her waked; And thus with words not sad she him received. Whence thou returnest, and whither wentest, I know; For God is also in sleep; and dreams advise, Which he hath sent propitious, some great good Presaging, since with sorrow and heart's distress Wearied I fell asleep: But now lead on; In me is no delay; with thee to go, Is to stay here; without thee here to stay, Is to go hence unwilling; thou to me Art all things under $Heaven, all places thou, Who for my wilful crime art banished hence. This further consolation yet secure I carry hence; though all by me is lost, Such favour I unworthy am vouchsafed, By me the Promised Seed shall all restore. So spake our mother Eve; and Adam heard Well pleased, but answered not: For now, too nigh The Arch-Angel stood; and, from the other hill To their fixed station, all in bright array The Cherubim descended; on the ground Gliding meteorous, as evening-mist Risen from a river o'er the marish glides, And gathers ground fast at the labourer's heel Homeward returning. High in front advanced, The brandished sword of God before them blazed, Fierce as a comet; which with torrid heat, And vapour as the Libyan air adust, Began to parch that temperate clime; whereat In either hand the hastening Angel caught Our lingering parents, and to the eastern gate Led them direct, and down the cliff as fast To the subjected plain; then disappeared. They, looking back, all the eastern side beheld Of Paradise, so late their happy seat, Waved over by that flaming brand; the gate With dreadful faces thronged, and fiery arms: Some natural tears they dropt, but wiped them soon; The world was all before them, where to choose Their place of rest, and Providence their guide: They, hand in hand, with wandering steps and slow, Through Eden took their solitary way. [The End] compress-1.2.1/snappy/testdata/random000066400000000000000000040000001303637052300176700ustar00rootroot00000000000000PR KḨ1b+laf͢Y pRӏQ}QG^3b5H yJgpgBqGTQhjOGE32a4%xFg(ɭBE f1}v}*qSLd8'OTsN}qd39 7ڤM=_yq"ܘrJXK .~s6Vz:ZK=)}9Wr'Idox6(^] I ]Dh֩HBe$qŘ@՝@oD+VRWtz[^1nFB@TiXbE8JV {'2κ޿_"^M@xv[}T-IN:s#tYRw*`@OrBNS%—LN_(C7Pm2 $Trzg /{ϲqM|] EV[(sh#uAH %C{7]xgMu F)^0l"Al\5e&}մ_BKpήOnP5ep>gvP*ܫV'o&!?8vrS!e*G4nNoCm7 #:[ 3ĘWo5:_nPevE _`FZFvT5! ;P(=oK*t#<;+MȘrpЦˠJ`,UC#!)Jcߑ뎛LNT2d~u]Pb䖊OB.Hަ 7Ŭ).YͧkyJ% !/&yٕRƹV%S V|븭]Z4I\DZ CbRAS=\);;ټg7*r^@ ^B)vu883) 9@ GmPbf'-B!$txIlms1IѿDh[aLu0uuy` [fJ2eWn^Q soLBd%x~2mqiL;cu+px@ 7$?}y:(DE+z;dMAAYFA9oU%vX h:OjϣzHo|70`0zn1>oy_647og whWZ"5r |q[=D1v54sGwö)s`ڳQuis"1<&&vD(E4ĮvI> LZNLrLZh2bvEt5 0mF+ \wݕ̇(O%0pT{H<'_$.}"ܜ;0]YcgL5"'*sWW්L"SL2,D P8Hγ.v{v:5B]!A!m/сN])̯%JÅ&u,&DB9O6H ~NAZ/yPZ։Qtm!{4~ PB٨%u&Del79dWzQz$݆#K4؛JHzc aH ^Cd{#W~eP@_CTJ&pByQ\4ͶLTo #؉G Yo^jMu\Ś]  ߂1׋)37a'Jc:JB.D|< xZʑLȺ>Xu#JNi405nSzMpe -tcqZ6|k)޹rG)Ur &eL/:n[q6%ܩV{X\dyCGuLT>gݟL0;Q"5<6S&>sRZmt+ t(H$Lq,\'9aE)֊Ir|^ClZ%Z)q8*t#NcdWr 7A4٬T3j~姼!pjgBkii.tV=vPzd(qᦾ gA ̩䟓wkN4_KZCfiٮi| XF:ܫ<}w⸁6 MZi$;11jki ^?nOSB6tr F\$ tK瓡Moҏ|w5=GW@: 1‰ ; 3|G֒{Nq6tGJwjCn?;Ch%t?_* _~ FlpP+"DPGWitDL!k5_!0&&+'r}; |ȏuLd(DwԸ&U6ؒ u6sz#9YvHegJ -ZI~yXlZD>=x)>',PG݋WDN>”Щ|8Γ+Eqg^^`iH-|$j(NZLφpo 7[R2xq?D7PKgjAt:V2_Jxk }G̗n< BPh v}Ғ^x[j2'( 6r"] ΁]w6Wg, J_4aByr?YH4;J-eﰶUIZ omI1:U}8H3gKO`ш9VíI=~X;ZL]z6q%2]>v |Z0=*FqC}+kz#e[!yVyW+Րc A@(5 `BBi) iciWihK7nH>)݄4ϺNߟv66 gзThnK̓Ӕlh%ċ5>Ϲ>qOac-/Lml.KԈPUt*04t$rQcXИwާ{[{bC#BjgQ-oqZWG s:pH\˚,GAH`%UgZ^Ul\wD'1 ~`!3'duBjZ>٘ }X d&Cw5:Fi#@['Nh3R ?$hM)re6m-  K; MvHm^;ͺ&3V=%!W5P?n[nJ B2^E, $Z ;KcvmB&ClH hd>6Q;2GiB2`bUм2˄Z o4F rS>y+ FQa:5-}jDĽf5L>PS&5OZ/B\t~ jGEԮ€),ǧ0?9Q L<㙊]~d5.ް)_UR}g5nEBH?SADwqz959i([A+-Qs5-&X j .'X=k>*eN1'K=L -Zp˨hD-=~Գa# ~sGt窶kqr$۱jy\ ΍zi66ZVũZLw7+Y,&`k\kAJKpQ \<hvУEvZ+r~{3 1tp%N$yNΓ ӣOoj+v?o%F)Ivql.Si4_;^V8ÿkxƄ:D!QUWy #0}A"NO>p 4#g6$hQͤdžl؃B)95e$;A1W} Aw6W0]f`;?Oa-/spQ4+DRL4B\2l4>tK-H ODFA7L\ _rs>+z=S^(&N%ܣ/#ҍrG귯ɰ%#݊CYr "D ^q.\VnܑpYÁψ3ͧ$ 2wD־!+ Cc®%MZC@P$: >֥ z<4 0a6_˂|P&q!0mE6@3m7sM:5w/S7?DBS7^W̩2P;}Ҿ -'>{'axb꘷ٮ^ogI8`}4jY Is슜R5x+=Oh$0F {*7H .Κu%׍bBqa>Ŕ63t!1ܧ*)7Tw9FjgqHvbKԠ7SVOD~~88-R"ʸ5v3ƚ cPI1}oK]ӫV>A3uB_b uY4I5AcTsHgIŐ$%Cla!/tm|r mB0d:Eo,hC5ΥPACH !Z%+JZ{]ZZ[TLdxajUINqzl+S8NW.J WrG憛0BI`Mɟ\f]vuV&s/ u6(a3ڶ|+,*J'rRϲswNXKNOr0=j@)'eCPMH&r%#QB.nHR\,(uwӊ"ПI6jG'MJY?uݦ&tq\7}#'ݞ}CнݘRoy^0^k3@5 8GxKb›[4( (I?;oea9OjDzA/ 9)K#wpe,ezaXdX]~IMY!z1mL$*i u% BEՁ%A&u%%KqA%T/l3tsט4/.ӹZzȏ%%K_!ݏ9P)n1 @}BnдMsf싻9*sF3u˵f $\eaE3/Y,3Knkdk1Ǫlc~m5B_<t\ҤͥsfK`)(s!(t3+37O˖q;x ywB RhnjUܢ$a$<ԓ.(J㬯dMuX-JdɄ/% }_CDo. BԹ'zǸ-rp/pI7+gBYP.j6QnXj;xtۅuU!Rc gOu7Jo9~S:1u-GJu!]VotoD슧`"_o ~#@ ākOaL{7`Q} 8UvNgHr3<y-H1F 8k@+5TL"f!qT>艩_W40"c[?WNGi{ggB :%6>uAy3Q2\K͝ \P‘Oof4$Jc[Tu?2ET(rp!ʘ f:=K."2]ABax ^ιw. gFS}UVq0 5R] k<0žUѨu/TZ|7#!t$Ŧ/rab_}7pp~p$'Ea [%!\F}8v,l>zJ 9#ۣ򋌝 @4C'X(΢(eAFrlk?  ioGK`v4pT[ èl|{$Rc 4sr@R"df+ڗI'>ː':}9S 2a; C0|ˋ|2T^],W&I6l2@73],N(;\Pu8D5wq]猍-Ɣn'[=JrIR#)npQK圂~PVwsNlbZ-*.{ҕ |:X#3.lfwaQJmdlwS)- vy X8)Fj [۽: & ,?=-Ăbrc? F\== T1y8!mS#M?& ,DL94Zs#x)D.Ի$Y#N d}S.D;ߑdh P~`%o1$5!S;锞|Xj\} M]J;8;q9 mF.-@jYG}@Q[eXq<`P[8ϭ "m+xQӭdgxeV?%H]vPA֕YS33J-C<* %_fAV+8O7Q&ϻ0Vo`u[nI $=-^]2ynX ࠾ޢW uv C/t[x{tij}Q7Cv $"QO)=yx'Zp?\X#՘1> 7o"gR/4AL4Wa*&~` [W7Vuvb'CƁ e9ʄ1wDɑ&]@6_r9uА C](1gĖ/oy[} %o2Ķk+-ZMF0ij'WzѷJϸyAIM! EUDZ;YKq/nj70_dFu]olS6 >DVSMDG(,Q#G1R-[KW5!WYKwTr]R7vgmi'$9>s 5e3u"ovuTaTA[G@\š'ЧH֯2XD<`esBC6S ƁM |Z&$>X`ǽg4%c{]MR:gFZRE55x EZ<'nh.-VJ/[QFTOC ?+KN kHHT?Cf=,`G:ilS_aJ:7 8::#[}˽MxYHK5m7]<警Cj70*\x~&fҘ]KQZ<>mna +.N#N>٨vwAJ"OZ<ʲ/*9?2&L$Hrҳ?PGΟI'WB${[jγ`:}:x@/`N_Dxԓ)Ήa[ꓑwcBCU^ᓟs~Q{6WbE3}&Ψ"O?,2'_soX?; 5cJxHX)@wqHf?Lh5vW7:e Yy۾_^AVc%͊z_'^CIE͜,L?Qtn(%M/+xB ڵ7U$50[:2yc3fu ~c*堋4"=!Q:9|H Ir}T7}u O`?W?fM';j0m>"I's.f.^_M;2َ6Gۏ,B=%@n+=bWOe| :3&IΑtHM/c}6+ ስPZOHi 0U1Cn7mPL`o8 zzkͮml`|WbבMU rMK g렮$+g53 X5rip &KRL%|]/ϟc`Q6.a /Y#0>%Z|MEpw`}L%t y ex1wÈOrgZ&qK # =Ur/ m2d5>'(3h.(U;Egbl8,bɲrD"ټFeΥ)X)Jۚ-UXm_7-p׳ت~>dZI<Bmuim=/=g7owL"[BR3*V,"6|4hdAB@N30IS(UD^11质Fz [WH`E *;dKxALh8flX&Af(j?0۳<6ΡO܍8%N >}P\hTJXi姨\^8B Zo̩-AKij>q-Q^Vif >c{aPB%wi? ]QfVq7(dNGw\ߵ1-nIC5pSfHx EEȉ$mM;W 0એu}"hær=]ngQ^NZWl_+h\{&T-EyQ0DŽ>yaKfnF˶؝nJb|vk(cڧC:Cl1Kqwjg#bwo -$hs@ĥ+Ą Zgu]}ȨuveIzCHwO?d?@s|I&'5y *6!H¼FIF/W 25 v6ƠSFբJk}'`z^;y(#6PR}rN$Z~0n9XkXh.G 93@yhOR4J|% V7; =DvF6p+ ыu?t2HM+-8=_P|<0k>|YM7߿un)r%1x6FCHZ:-b\N@(mM!&Bg擠Ck*#q:]驉,Y*7c5vnZ)/!0]ܛ^c2e ez ɢ#̝ T`r=N *j!#c[497d^@(~X#+4(Ȱ"!7BE9 *ܩ_wo|HǍC#㚇=T+8 wjWcGkK! 7寻EН:hxY։ _׵4ͲCkaҩO5gښS}C-.mwfPGTay `=hqKYC~:| ;G?u- m^Pڤ>6?>i̸5B:Jh-p/j믡m_a÷ \2|)kr?* Ov|H6/0.>PfNNs>µJ}u\9"I:Y7-?[\K\ǿ)֯1ȑx'Gd6J8UJ.GE>HG8dTXqF<YoJ}P7wԓ;֍z!\+rhh>yv|ʼ &B)̨ofI[XkI< ]gj>.t |@ Zۉ|hS3>[%hAj܁E0uj;Vc)JSSƵI"!Mw"a\*"C*R N/XtjiGLY SMZ4\h1B袭!8]8y 8E}|S%K ^^dXY&A }!*\)"[ŬQ򝫀p.ttwo^M|ߵTAoSEm2(Lf"%g/d}? q_a/U1q*iFZB=#O ^Y5ȍۦlW9׉\V.qZ\Y9(= er? nZ,fe(2@5#z`Co| X}ju2t 4\w4R`?C*nmlq|&)i>qnv<.T\(@K/i,~c Kk_M^?q0㎙9o;\5X.#mW~9i;n~9i3SCG-` K1K6"bhh_r=H#"Rh*np0M!osG^g 5;sSYٓʝ՟>_Z&e^U+P L_1DxC ]]Wj[h-xFc,,мQ~vuY6I}#̆']l*_XWzP $cQ0Fg?(B6NxؐXY(3ZŞSQU0O:n{q08 _i=Tq`kf#G㋟CBq.xx]%B7#HMP+4j6KJ+NRp{'`.Az1;{/i6Q9?kQh7HD]Ax)WI_Gq'>zxbx٥+Xލ?>1W9jr:{&͌ZWL^ӳՂa*BE:TIgO <VټIFhZXf<;<"H{Dt3:I3h!$]ׄL~- w7 !OT>C}5s01fV4)ܡ4pUR 8z*6 b/P)Hc=pڐ9 ] rz~tqe\w=/)Me4h ")'l S}b( 0L2~"{mgVmb#Cͪ3g.׈MZMB?mi у ϴɺ;2﹤ mgdѵBs422bg|+ȁΈw|Z-z^=ܻFdQ6,F6>ks@g 9O:UK7??׵wQ#*뷿^KkWwe;cs>#zp0i|3YY؋޹"bwqIC"hh_CI/jH!ctS|k ok L ==j3-uߏKmGkT)g)!n33G{,z1\{_s j4 yA##Ta0Wz"6;w-#b6^uN_YwVK pӽC!Bqt2K:%ۮ捞}?70X*,Đڇ ;4i4c1اMdvsﯕfrA,RBj|JsWmTutt;>D֢g*C}v&M ;uku^!Q'.F7Tڤ&tĜl BAǾcgcP;/H)u@?)1F+n*n54DɕUT+ST$i#Y_ybug%7;tߖ qx%1We9Mz NZAQ;nQ8F[OC:F/j:1{;P =h~﷎}d"].xxyIE=OU+Tɰp[rS^h_lX[HЈwb!аW@,=,0s0Fjͭ][vfdҧN̯գ) pXEj|xlAxi1{C 6xaQɼ/*Z* [8r "5[X}ou#(* s,,As VTA΁>G^G>êvr0#IJoQIX6pO~;1qk"sZpJ / yZf"fp5Zu m>*z~UO3yGOnb~~Tׇ]riOڌC`ڐO(<>}^Wg*+/ ?skPѧ6Iug-ϒOH3-"P.#RJ f>sslR,d]4G#6xQ >1|Ls᭢c7,}6LnXv6⺔;E "dni!c8YV?1ŊȒJ=E/AIZ8Ș4[S9=_ۯN7$s {aTG_4#/ޢ&9L q%g=LiZY_MŀV@ϘTr*z}g]Sc'){R 8RPG]ܤeޒ'HoFs z ^NrJVʋr䆑Ɍ?Jr7cqX`!LALC9H+o4x3%^I'׉_?fg,yvÌc7'n=RHYN_Ω"ŒWHKt5Q*.HF^G{Gz+h;v1 #ZH1>WsB[@ԯsX9\f` %mETvH=ľ= R)yj2;+,=3R܉g^&Xߙ~j!O_̐qX(`b8XT?_Ix0;4w7@Hz╥ </ 35O=z믆c,(V\Mϧrf]r,HZs [F4Z@ M~α@tk80>Fj¨YѲ8oNZ #ܰqXd'Dh@B(lf~dxu}s6dgmUB}?Kj,p-=RQ7Ar}n>ѽ+"T܄g0<\,Otaά؀/e ɡ8'o/a.|L!Ԑ>)@7z6?oB{痛 Mt7e:n}J 9﹖d0n]*8 }'CGbSv &hg/ &{a[O|$%piHnF@d۵-1@.F5U\j98EJomP3vbr'$w+ ٣ v|pN 36pº*(<4e_=,k|wҁV^Y_ðVD+M+ H >O5z)y<=XXRb0oTɯ0?\"sv3N8~/fXLJ ?^w ÄE\ASF7MHȜFs$;vB\jwZKhRl}R\xeד}^Sgp`=4_b3'&gBPp8 # ~7 MxȄ$f7!0rͣ`vⅶ#GԚVOR񹊛%trl\JI6AG3;.~6>nj)-$pیf0 ˓Blᅤ: `3.ЋL?lLQ$ֻ8ec$JlC rpu0MiwƄ c+$ rWTr<*r(8y՝4-j6۲\Ԍ9/Q*+̱ʞnl4̶j m&$zx.S5x $;'$Ş{QP9|NtUǘHd]>RYFeBP:Yyl>8_ȅ5V6Įd7#?A- I }Vk*FKX40ۛ ̰Ğՠv9}C"X-yQvfI^Y(mCK\WĂzcA խfJY{ {=BJ8F(nMKmoa̜u3t]bƦ!KAvIϐ_ ^!Ғޮ}Ot\ÿ?I&+Y~m9Kݰv 61,OS>5ݹ%w7 3&WNҔ_n[]+[v4 lI-FZƘԐ1hH&4lĊ#u.ru?#vkCΤ=!qk(9,H n`j- xmleB] |Zv$޸B*a-L2^K}*+t`nۂ(^MrdTso@m)Er9v[m3mAIP^JiZP rus 0n/u?-ط3] ^ dt5׃ڠD]>oO6/$$=Ƹx.,; k~Ӝ{X7As.QlnnN3@0^15b [MmcɼfY$!@AL5w/-8{{O9Q7H:iQkQх@Yp%F(1Kactu/Zy}a},}X1B<7:\ ٥ n%V^ɘ]KԾlȋR Ӹ` i\O=keIr -k-tH'SfZ| ꍃ;Uy3e qyAmnO[>1a -15WcMXczx @F juk9>o;T.e-Hòg{M*8?2Dg/3C Vmrzq *FM }Rl5{ZדHw^*Αr7J6+bZkƊ7IQއJKwgE,x"@d?ڥvJGq.ES1/̴1U~,4dHC܊z .6+(o>Kh. v3آ+L%\-ZjMy޲<>TEjp9 |[>?YӉ.! iݼKiMvZ3hdEecW egIch27![ XH8ICIc BP:* ᠈ͨhtțD<ꥋ<hmYJ6kbb?Lw͡?;^Yo"UxWD鄳&{ U6ט|u3yo'¸zkҊF_l⯡V(U7` ʖٸTIQwijwi%(s+|DHEE&դ~M_YdDhWA0`pYukW78:sܥCL[-ݰI޺xO ]m79_#1y([6_7]/S(t ;Y׫ fmfW bCϸ?Oe\}9D<#[6Hah#O4@j;CaFRx E n6ˏ#dbq?OQ%g~67֍e5U/b陳>BWlDb<$*P@Tͷ \Ɉ|δ[tn"S5Zo̓PATL+[DK`o;"3]e^`#-&gd E0g$'P||Ƈi1lL O-E$ $ɠ"NOٞL}g;N/NH(M]ZwdǴ23r^A.^xVY-p5vrȩ:yWA9=N\vI| E e&ʹV~ܽGms2Wcz&*a-)V,4vΎ^n p5J=B DY˝b)h;FL$ZeߡפƥH++嵨7 B?F;(#WXo@ ,ֹ*%ײd$yq.xB9:[XC-a<4!%1~rBeC8 Jߋfѳʭ= bH24cb? $swjxV.䪾_XzD"ē?a31K:&i2N{5sU~KJI&ɢ?9ܶOQŴ%Ό7l }K~.IȻuVD\j˷Z4h%J."}i"‹75_qU}g7jVo[Mz'U"+cnsDouXnX-BX@1yCuS]"zP|eX2|H饓]w=0Uϴ'3ܙZVDBqhCq?Us^eдO$}TOOW"&`T;ފ'N1,qV~  =H I^0зvT|44>[}ʑ lrYX 20`0gωj̥pQl2n/|Bpu psn bGH{1 㯶)`T8O/1A`iͫTL C.a)|( qxrS~yqNi]+0P]gt/ηD6t"O\RL9md{T`ƻoAvi+?y_=Rk4-ŐrB`mCly#h ,x5|Ef(PC3dy?01z 1g'#^Oɀ 9|(<~L -KǃB[6i1Jga4EPDǂgT_j r=tX9ORR"|k NHpRFN `xX,62xKy 6*i6>b.ߚR+8?Oaw~_LB-{=M(R>8x]"Ϝ1"y2VG쨏:NImO==G ɘJw DR;cp5=7*h6.1]~ODIӈhX; Zc[O^aVu8o]Љ@[Z&#-Z2CÆ{*!Uo5%ɜ-Ƨ<%4;P΂~]HT´9x:y[Gr[tĬzv*Z^ϧP]Uɛ%t4) K,aFH,L L7Ge&u'^b(Ԥ*My{zց6XDR* 4޽h&#B^ ˾] Ԓ_v%m⋽O(1b7d~4S[&ʷ2dn7))WM&7VFN's}nu=ikt0SZ3ƮΩwu MhtvE2]`kjlkmgt8s[mr2 ? Y `".z?E9 25Ǿ_bJ"Rt6ҲF :G@lUAaG: 86Ƭdm*"PUAG?.̊=@6(g zb.$K=RiA/ݰ9jU<cs 2!ۃmf9,6VE  źK4LA6XE4@Ukz7]_MCDP_os]> w9y~ȱRqHvAu;'$8}cWb\*}y:6@gNF%8 KUVﱈs"rX]ԅ`֠u4LD1eUgq q2AXI0zBVE{EƗړuQ1!BSKjpjtoFQ=5g |:y_н$I9Lf?RND.+ ˆ1YAǁDm` PU`!6\J)j"#e8>mstXṄ6fX=DkPKٌmvE(<bzK,(VBq_'+_x(h7kjn.TLzp/VV]+7jr9LظlD ,BnKĶWX/m0*s"Y"^tmDss~9--1%ɳv0ȰoZ"\*oMp8a$|ژNrPgQ,b<[%ѡcڢIc\+Poz:@ ZV)s;/W?'@au_b.) h%j:ȟ ⼣ Y},]$hD^eK_D5J @ d)dz<ߜ(h*QFCo7'b34ߜ~]˩ue_23f= Dh$9vjAGIny9]p?ElwP؇-y@eVp8o#>WM8P  6j(~.SE7zrq8<9A>g K~|mL$;/e2$\L,w"bt*t&%qWJ&?ͺ-rc}v)&S05<,^XS;V*mb(ģ}c" 5,/Xfcc{֨Vxi>@R˯Vq˶Z챴MОi"p ڻtc0d@`ȶx[U2] JNfm8O&f0):Ng~|]/ӣOׇ_C>W,Ϝ%ApqMfRWo_n}G["cCSϏ:fO_PI~?JWO9mh9VXD !i@4ы^ T_j~/Hj_O1dBP/A9c[z8QWe8$oP+ * AM٨H缲h&LsjQv&c Bdyـ?U,e@4k"bd ́pl4{OѮ楣sV"Nv9~X>#?|'`8NS-,!2T}7t)ތJh bSDv;eiXDʕEϯޙ.8X77  oZتmQ}!d3r`}Xu29:|c1m9"IXk"E :f80brƄ3f A&)v(na7nTҁܶ+l64b]#ޝ҉^l;vB!ޅbo#_+6=OLaU7\Q<'C%J_HJ- w>o+g%Rg2!o>./  ݯDRkZ^d\xZ=ޠI i:ӟ]#)6ƨH|EXyTT'}Ve!FB>i,& ڝ!ZLms @,˼\~qESv1'=4kYeE32`_CvDr ( sG&0v svr8da E*~:%Q΅cD0m<@6VCbDbAvB-:ULr˺ybs@s&CKL%Y䲲C 0Bͩ}{Ӫ&|[ ziB~g ݍ"ar@JBkW@pqñ1[Itx}0Ƒz1z"Πb{tf [4AiR"S R[" I8E C1|OXBuկ^_"p[ւEf7zer'*Pe? &o9* ib[PĆ"n븡BS,K&?Ʉ1kNG-"[DP@V>ިǒmH_VjXh9"bI%}a|n-ygmZM#eZ/HMO6Nuh&fS7Q xRZGY)1 d?ev ֦K:8cZ_p9jKZnдBޭ^VQ.MP{Oeݜr0=^~gZ"$RBLac2 ^=Qr2ReG no%2H3PiKfup ~rx|*C) WY +UZ+-FIoVLy/6>|jC\٫ҹ Sd9 `zzeYR5E8y &ܶ7!Y jƎ72~aKi^-K ƣef{IrV/Q&1,y^ c_J0h&4 O8e;g#BDׁ)<"={j C0\F/b`cEʆZ ޷:>&ow|H]q@)G}TA#p[t|eXhFMUf#dJȯd?cI=>ι*ͥcu\!,T=s{+(ǎ@PI@"zJxFKqky(~?iENĖ*=L+^-s_Np 4ň{ևR$Bx;1N~<Ƒ%b-Qd6*TA%lQ,wjL}-tsuI˕t&~5L r]Pŗ մ (J2^xlOmRVx55ٸzic;yj7`gJ)^]+w .#1J^H<}N-J @=[Ǖ$JKpVV`5)'fxR|)1Th 3 Ś|8V2sVNFr u5%v% X U:̱YW5$L)U~L 26aΊY{c|Oj֋:\n50&'Џ W9eb`__CV0>'q6WZi/«29tmXARY+y!!XGŢxi:bS9f9ц,Td'kEM)E?rf:Q4%r3&8،C›B&0#Vܢwa3sЧ0ha&Kq)MmpSƅ?T8ijh 좖,ZHH'5x:缏ϽBM(4e`R/[~)BwgcЕɕGdbvM] ϱq7ٺ1u< 6#ȁ$7|L'PQyS}Y^";yG n `bq]@B]&shh0|? l$%d0"B:._PAߐ䅹QSi-a.6 M Ut/]ϞU7TDZOmsE(#}\mBO??jZ[,-E {rNu4X0S3e x$zШ[)-!A)Des"S7(Obw[DvY~lzb*/tVwcL)6O?\D-=hzr6ӑIMhÒ d}^oX9`y4,2ø{ 3vĒegP/Ѓ"tT̔ ϳM1 oQawPl `9g,4~<WFZPԮn !J4mw'2d$HΟA5MMeԶL ovR e SŹQ+ݶnSt/igyc&꣆pV% OS٠˃ua§ 祊Ū]XZWfVnFn\٘@azbC3=|eS^"^OXHuQaٓN;W.(3 G53xPf)ӆS"hd ]+R'6{Mxȉ!U2Zbgv=gyY;G#IN~z.y'RCnln;A Nҟ %a5[ -^%+֖pDbnSZ1 (0Q' 2sѴZ{j~Au1 (,jLnKN=Bg6NQ| 6(=8|@w u>C,d\YTYB³&ǁ~'r7iƂϦdߍTLhBK.nɎm5{Q#Ne?/g&P1 Z7VXu˝&pzyu^ < v@4ꗟ~^x/2L zR "r\vRQ" @9UGQ5<|=`9P΅ݑ FS$0RZ {aȋGz*"%(ZNkקBߠ@6'J,Ma$bY^V݊`5pf̑Ы[kξ; @)6 +9%8uQN" ڼ y:To]fr@)b{?af&xxCSEquYD Q i‰Rz2!#~/1'j]iR{&mFoe3O!#,v8MV &:BgSԍ/<忒SQ[8"7 ^(~˄?ZϠ$; 789S9jA!+^Eۏk.1 AʗUNu؈:S۴2q@ vE9lBL\ϒhp[VELigTgI*esZe{Wkn c3伋Uj$ =Zs4y AG(5swclU?bTYDjZ ǁ!u'c -,Dhb}!ݙȷ%@O9fY>ri4TDjɻ x{:CiSn뵶8Zﹻoь ޛz>sp<$GZ#,*HA%r8op l˻V%{fx#Iq6Cb ǡBJf3]&l⺿kh_g3j\ҝ)CjV~AsRLw{&|n>Tu$ TfN̩s|5_7 `*0HC=ېٙLOfY FRȤE?4pfeuNWZFⓡjv)&6J.&TPE" CRLgt76[׶%>C`)W`G U?' GC¢܀ u*ž/IFIDSBDYLY9ren4|j2{6U9W2^"d?]ß p٤`7$+/lReğ5aH!uB6g8t"$ T%s!Q)۪uӠ6fDݖNpх?,{j+BcU+B2[@-/=h-0?Oݔ@n#a-`1} $TY]977UO(6Q8!?6ҨYv8jB3 '1W{7{,Slç 8o=/t9yxzvO. ufھ+%%ACNqy:4c4.hą"& \ֿКKjl իY.aa`Y<p)^s_'a z=F&0"J@m(!Axi~:0w λ͔K,];!'WSxğ2̋Nv'sE^BGWGC^RE9Pm!pR^}9?\<U0(ϝ@u#kh~w}Z37R~6GC|(26m Š5K b3tJZecJ⩃]}}n{@u0+J3i #LŦ _Yb2pp)У=}+ߦ( Db˷s]Pi}15?x֠ms#+ԗcDNrϬVⳘN5tQE8$$HçL*Ϋ1S6 )Khpt"SX`FLBh$ƪ˼s#Iޘ)"pYDJ)կC5M_p5_[H&Oht{GTtLzd>͏(+ 6M#NVN4ל N4r-% 7js~HpP_&bBj^RV`sw0Kw%7*0cfzׯ7)(쉕,PAsRxNƐcw IFU4EWQrZ* ̨Mz'_~:h\ nyAj=ȼ^ٲPC4GwGDc6XY@{?r뮇/i" 9Pi9' NS.bǽ[GTÓߨ&@y8Rа?j.=n7L&skŃgZ<ﳡ tu&G )쪣=RA1)?y!BXtxFzj̥XSzC}xa>  CKڻܹ-(Z7;@,uaVPt}4[9\Dei[؋cV{%R_"Ȃ78N8w<@e.k*AkT㝬ל}Kv]@{ qY4WjG2 I*Թ͵G8 eErz"XuxzOrT:!EgBsF^HxgEH!@ܿCpb4'^9MI"w[3rDLJ#1OF!R! 5 k[mtbbxD qǭ1zLH`TuUkRCMQ !zP@/ev^W vs~HI[`S I6O,U4ڴ <|^)D:HG몢U|N;&sKn=!Ev ͅVM\ \"@p|rl]>gnQ8f~9_]W^WfdEb񝠸Of4_eN?jy& &8x\[Er7樢!RQRI^WX-ʶ+h>ZG1~?> I?=bLCLTi@y35K(3GL97t#YCiߖЅ){D=5v-茶eτ0|( v}wQ&H.dǡK =l F5L&lRcĒy -uQ 43 UM!3U!yr"AgwuƝ5Zu$*zs/m\ !\7يʹ04Q1 S˩}3pȡ 4WNϸq5DG{a1aKҎi%C}+zk!B}JT;C3qWZQ f^ XבŌ籋D 4aGo`bh6- fqh`wZ^*DY}(.?-2.8(TH 9TYZD*s[ [CM ߁SEɀF;mXbɎ 3~,%`Z 7 /S9鸅_'3&Uwg$>pF>aGKq +/ ?U*ǟ'ɐU <9O'mc Hcφ׵,GQq)K?b&`;Y8e1Gm.NʂB`T(ٹh@5ynbUYƵ z]l>_QojmPbDgH/Gػ_o,u6|*u7Y2:_Ulc\+bef[{b:F 4 lwcY%Y1x(eaMTm;gdkI R= 5mmF/");GvfDwvd\ z b38E":0d4Ro'H2]eH|¨?gw ⏦ OB4_w¯C=D@&#qEZL~%1AE=uwaʲS#wZ 0hZ(m/!lntsYMwԮYP>)&ƶqT~z&TTlȘ g)}7S'hXgq)C_i'a@SVTxRVߑ#ێb"tʽ{8Z]?jLS}՛.kE PR Z+n{W6pX{v͌{ be 4|2?q?oZè|[ m!pM+*y TpF<"p0й۳A&34cEb`Y+.[SIOin4ϟ(/*hPJAfC۟=6 xXt_c 3+hL=;kڈm_I6 8ӻ/#{TPX72T4W4'$KbĽt6&vxɘﲨ6qqsujY+M4+=8/ 4oHD7=^].ZRI7U8{ 6xe1g E:`sFRSBFRh@Et'dUX^L>maЅOӼXm`=V*̏?;Y-BeVc :'W <5UH?T䭬L ϵΌ;R 嶉N .کLPX:} JX'#O\=le9~Khn tY<1dDޣa{`N[7ߦ4\D@:&LR7!8\(x5i RW"S@ܡfR ͕l 3> `*,4%LJ@ĩT{C !#+!;ᣛYk:ל#uR~?@JNF2gW<`5x~b&=Tp}QX̾.>l3oCZb3>Up#W/l^u^ ,i'U_ #$(L8; ?4:lѾAXN˽FˋTK/$ra/*X̳|J9,jz*eHa:3Ҟ*HCNҪ3ZJ]Eu Y,U{TThd/Ύ#3rqsxvabe}klɚr )y>8] s ¦9&Ea.fp4|@Kàv0 l}ЩBVG[/^ ?\9}e6ǣUwv9A"_ϼ  ;}!YPhSN 6Ӯ`FY}ҬQZj5]GфtUߐUt|9Z Ch K?!mqP\ĎaWǠZH4mnreK >BZ" M_ 5&E~:+Εoƹl!yv0}[NWu2 f3}.4A_{_G(ZPkމ\m4;V6Zn2MSAxm(!7A3UBP_ sqx+T!m+u/7iYޫv{o--ls 7 Chr b6 /,*F^&}YLP51`C6Q#Ji)F<bduoqwǡKzg10 A$g8n熥n웻g=&hԘ#=? 5WC9b KB~\Лt2T\g^* Z4 qQ>#MJBS&IzsRÂȸE+;!AkxCtYVl;4.Dj@=^-}W̮0āE@@@^T{A=3wK8p6CEA!t ᩩ*a:KKv#DA ׂ6vtdj>QݖO>Yg DvA41xZm9U^JkcA5@/fOg&\j!%Z~Cذw fJ#%Bt&YägX4|(?Fzm׏)?~7&A5@Vųxy'@КJ4]FC+A@.J{ue!I<[0J/Cu7ɓfHQ kLx,9ž'W ԐkZq+A[@M8T^=p-q@ssSF :$JlHԾWgRgRj^/_  `?mi$ˎTV+rd֒{BB*/1AH^R>챗= &tf7Mdaq3oԺUDt$Uo4~g$mS9#| wB9g|$LIץO;%rQw'%?z[hLy ŲR2H8 Z[bш}Tk/y{kd^J3Az'R R[_1]KYc̼̦X.5lu >4;U;1_S/_˒k>;rNy? `}ΞȵK&|]md.СZKO _^& dčtY,W@YYugPig.Ah:C\qe'bƞZ|]tOj}ʄ䐃9EäJ&Ai/|J^d1S3cL%(+P֩_p5b Puv5i0Yv[7"U\4qձiB2[+QjKZƱn_BlluwkW]ִlT`iMYGm!eѐ NfԲh0 lH'^hzPn eD\kʈ8B IuԾ䖡9yjIJ^4yń=MfMOtѿy"KJďό8{fy5ܘmDfX D7i#MFsq=8s~=H1k$G ֆVfw+a9D!JR { %*q>ѡZo AR +yɃ$('HeSїNU'k#oՆPE6h4)[𳿅T # toWyZ-NiLSpְSk|R=! ,lI/&CpZQzPQIn븞kZ}vz,+nҍH\E6iοAaƙ'jq/W}Dk؅eDNWXR2* :wq %9։p1"Hqb|$vV؄O[qr}fqtSxh,Yi'}}o_ͷ=y RW{("%-pgWJJbVȦO-m|M:{wJEdK_N̎cuejxdm&o'6EG!\=l&M^ɩ.@n9#\7uf;4 z =dSw;ZADep;E=o@j YDlf6\kKe89O[w<kk"#858_m1?nNj() "~c$ǢVۚ€*#vI } ɵy`U3PĶ6*XL: b@t6t?wlh~*nz%b?\3eF7]PJ.LEV{Hgct82=Nj גv#H܍ybMS,zّ%I%GdzF-?HDq4'_j>*SʚQCHK!;:PѭZQ (|NG;CטBZ{\$A=|Gfoi;Xm+5_-q]`ٞXxlzƷ:^%pd揬 )m;}'(HTww<&/.5Gf::#)Hj`N)pJ4h/wp`fh0=_c`;"IS_{и)'Q!(F6=ĽSz Do"ׅ(aWOٝԾqM"CG('/nE*ݝ=>粉8夿}z lyPThOaa4",ͥsZy- б~yٲvLH͞37h%'C_F 1D#΢'r120`M:5g%5cyb;Z⪄o^l)/!O͢YR+ԑyul.'Kn Ap}n3 \j/rJ~&Rʔ:CMnjF w G|p[(峧vskNw״ LM )g>jG~7ve #R#b¦j^R#qk)hx\CZM#t RʾœPod3H'ywkfYEQo-Yӕ`Ԭ,; -9:`Ox1ТN,6ќ 4 .VɚNR1e`B& }FE ׌㫚|}: 7!ul4s\+:Əθ;Suu- Ƴ!dfЂNF qvCьPq/-+:Sbიg v3y[ϴ-3QGHcC%V?1/IvHQGCE+lM8G$O|'LIQW%&qYPuD*aPpiJ ݂և(۵M6-*O\TzBR3| 裘)hPoZS&c]#n{{qoB,~.MEc$hJڶ$n^#ͬEZN ȪEc$I 6lG;\l :n&4WXt/5oq@^-O}̚.7 ? ߐ ()Շ6q[*.Xln|@H#'?c'FDzl>/IگJ!*k@prC gm~iĝu(~M`:=)-i!:Z8(/${FDS0.*bayͤk4H]]JM*M,\EK}\Yn@~KwXY 䚌x[`bd2.: Rh3W[ݦ:9Ы?4蔎T59[xjSai9K7Z@`*Msx >ӟ͏O6&6=d_84$0 z`&JXO~ec9+ h$LЎrAʏuR{ޕ3 ůAKx,>Ct~қH4%i|:P{J$; 'c'$ƨ0mH3 [X QC 'YwmJʐBRӥ! RHyT/|ԁndE3;)XK4j)fL_0$/~l_#PQ(G,& ;9)D/5 f=.@IP0F&,ȿlM*EWyڍ}18[a!_jndd;o0ͣ7 &2)ʋ8+<^f`b֋4k hyAC}^ Ԇz|&dx(Q&ի鍶꠵/oN1=S͕n!^Mm*1,/xxв>p_]1&0]pӔM;Ң1f *_UKq∉*r;,O-BMZM̰lTSegUH^l/= p吭.Q&)n(26ЧԘUW/Kp$ؔ8Vqff۶ϛ;dHU9 so˪]$K+d&2+ IH%!bݝ݂ )&Ɋe5; #~sm"`01FJEtbH@ȫM <$*]f>, PQV~.pȱа7/Uy_`%1jر'v?v{IETv"ZXM1mdӶhE Lڃ5๮>Y_R .9骇BwDo=]Gntd᮳fPAZC$> @5}C: lpJGXإܱq*y]QgVUSL"<`o|^sp PEw6'v 9Q)? M 9.X,9V*+0Śg;`,SSןYK VPK>(8e E6U@!n"n[5l|Bڗ3>dܞS 3Tm9]?>~n/X`]wG;ˢ7oagIkm'$4$f*t('IqGjwWܺ^í$܅Kh!OUm9V;n܋wJ + %6]<~e;Ҽ yԊX%&f5O)J bZTR] l~g5xN5$+]:!k ;76ҎN-¹8i<-RV7r[W'e(qݚ?.XTڊu˖W[,]Th#}eV>`N-zPf*7Ȟ>xSĎu>7~Yj=?~G3@գFo # jvܳmCs@|'dv[EU:YT7F|XY-n2gYr>a7 MSH1N|C/>96.sa+8D8Vve>(O딫Io. JQ5X-4<R ^9#ܕ a}#xX;潜I  'XUI' ܩn߆ՒSTN|hZ_ސq,IYϔxii8ȂYbT,;ʩ>b]F0 jۊό>q=|nhd1,C8V BΦ\SB' OZJz5"Yj@Kf `#t! 8| ^(r!UkjC.+), O:SRb{-Z^^ I=ƾc]HےDl(FPKrD^hDOb0aDBݲc!|t;AїVYamIW{*F|w G6κ9|Q;ׯJ -7G;d# TA#?Lb8n?.8%7Svfe#2qb ӬtSvQX^3pV^̪g3.d 5ﲡrKk;gEu_nE,ܨN )H)YR4#Mo^[KVX%WW$-7A's,!ԫflLbEЬ.).f&w1{og?10>[tIw41ɀe^@a@ EvB?d_c+kNz(IHKpCz% {DY+'z:՞Ej1 rWD 4uV 0KC9rMWa\sSd<|(juU zϾ[}1 UR(`%J=&b*rv˴nɌ7c.=Եz:kSZ@X^6PFDpCqn7{ 1d$c.oGq׻!: ]MsZT)&4 !>XcPgg E=">fW69AI^N#K ?7JR1l+ /dm\]Y C7ZĆz;ضI`)FEIl{9ݗ=c;|痷 r{i}>ثd?%ybv9md5$aY謆+|`+z\@zPd͓lb%Vt}t9|#E\#A휱 @W*8kAv=)qTȫU-hm[j||?it bC4wj븟keSI\mV~N.Q&6Q,ڽOhu„z{H[a9řx V@~d3^H|*u-̹4Q\D~0O!CJb*}@ &9FeuB>qh#nɛ5GHsP6FZ ~_r ܉A?櫉JMO+V|;* W?@.e99\zYSƧq}Zz`t0h)¬NkLO^<տF"|q](dT'%N%/LePoi\Y>GLCy7RtbZgLOԱ\4_}n+' $6Jn^*ptu̙61ĖUI 26th frT G p Rߠ$|/wfcBAz TPs dnKϒ C#sA8u]62y&0ʥG}a|U۸vfj7B:9W(! [e'rUز-zc#̮7NޣꫛgТebGW}%Ob2ڦ୔{d& I's{T#-BHQ'TD`(:٩np2lFGH?K|UCsӚ(S BEd_o  ->b&OT-=9U0p󇠴~| "LԐRFIf,Jѻȩ7?r*-fI5瘚IpüT'\҈? AXA[} eFpʻe>rA @ҤUy6&"r00JqdyZxåyo 6+5Z]X9&gp R y˅9lu g6D# dߪc'{mJg/{_y0X:E0HS'п8ЮW*|ZG^i4PY[*jG𲛆:.ᘀik4p`nzmwGR ^(}] KĎSLүIv4 s%-9#_IwEOTe #ݙqCUΟjzZ Ռ{pg 6R֞챊mqcO蠌ͫ{DqtET'Όbϰ25_t53AkrQ8:Ph7 -e^SIAt1p-JqxͽJQ:HӤE 9o'KqB D2MqW]#'P_E=Y|@nqOBs?74ubӾYJ,#ΨAۇI$^ 36/1Nk>j&8Ϣa !ݿ*Ƽ9'?ؿt>a!h;0QLU 4j`iemKLDޤ8?KB, ̫=WXUE%Qx]P~݃*lobxg2.MEi⦑{ ak6RԼ:.L@Nf!ظŵnPv}dNm$XQ<繫_vJ=4?Y>!\wN\9E{IڇKw쬊0ȏrZpn NB7 *-iD"2v3vJauEshL o:N5_EVPQ}ғ:sS`/Ynͥ+MU`[A0UoɞX|*DėYZqO0ő*\sjfNGp#l*8eGp2DdB&FTyiT9׵f/짏` p*PLwYwT$l d4KGOȮpA=7v;g>ܠ#A)(Mf& ~?2Se51Os@fu3~fK`)Agp[!w?BvnQQ gc@j@9)7+ūZq܈MbUBUƿRRi YҢ=h+̽+@3ƺe}EkS:VRZ^[Tgk~a _ gLrlļ&x0 /)ho9Kz(n | fl\PCCb#28beSf ƃH8FBR|;%J_~=iZc3Q,34L\^0z vܢ 8ͪ*a\S]3PBl\)r`ɜs2=s|'y EvYWKh5p-ҏ8ΰhvTee9xyIh~fM(jb ?: lx4Ip`lLf&.!|k~tlqxXH>m_n6/AsaZU=@؅o1BJthV_v(9bqsB e>3 x2T/O"DTdh^DDf&wf܁>,w<ˎL!b*&q .qjش 6gkb)'P, 8g,ĎwQTQcdS3H9E~ A|W?I^K%4 *t5@гFIr$KZxd(6kro}#ۅ-*<*9dȷU򻬖Iѻ^?&jMFD=/J9☐"uy8]T^[U|G`]$I P:*oh@ ~BAvnF2d@!D Z\ˍPD KٔPpIs& < N:,I0`Cm4*(kFmK'T^:U_n,KUW}hqq >zgh|-ZOx!'fߙw愳R/*h ]G^('h: ^\h_1A +yI;3y)`3Z}Cl]oxRХkp,bYH}, |_&Pdy`]ܬg4a*@t-R1`='+ui6 X.*x4QE,H>b?-lL&Cg@lMCzeM1;y!3 <@4QlA%ݼ=Y zy$2tedPVŅa:KAX#< LIj(Wc65XPvZ,*pOS#Ef%塚lN B4/tMZ:|oQg|Կ{*ET6\8nI|u 5Cیg Wu]/۫ Rxhqx .jɕr:ڊҘCN{fb: ~q譶߳4TQ(ӺkWS4r:*`c ԓ^@f794^E7q`Pf!~D>î^FZ-h 5;1O>N;]8ž_z-_PDJ&2V:,fO i]7Drot!|>w")tM@j[Y)EI8&kX6%N/ʨM]ɀf\*u/\H(SNHT]n2wFkƬ .K 9(v.57)#J'[ǰkԶ}eGaVy78eƳPre+DRAP@C[ÊC߿KpF}tJ : hD `tP##׿l{|C1 uZ|0 wr [հq. %!Ћq&mVϹ8ՉGQOga=8zs;u$ҪHAzcf-N{>pnn ]{>/8ɜP⿖V1}%ʪrL~W鑷~Į ,:,(7>+;H^*Yg!\R=v+cNJ`irivM|\=eX:'``lP2+Amp<9JJbD%a vқNBmIe3xK?X5-7 )(-/EaڃZ2c]bm;.}ȩ@`j@Yyh1j2P}F^^ۯ2?^4J@sixHo@=u)Ѳ8#~ Ӟ+7OZpHt!wcV3uK{zׁMa| :*6X&%Јo8i9(ZaZi3eJO/v|-Ma}i\_Y11.C8R窧tjL!jƫ K' S᷁4.zep,0^#qVǥUf R<=`ͮ7漡>eq^ٻrUܫI2f wCyH୒,ncz`E[$պAVcX$W?0#^&<(N $9 PGڪEkjOjOQ'C[8!m:2`Z0&[vC[ffH{2+D*ŸhDX>_# ^ 7깊?z5$T-#RaPR5wiZl.S dR2s *dcg)rS\ij#fgi%:{SѴ;էLͼ>v,3$"+@ZhZ3jWwH"ǀ,]`WL4nrG!h2ud \0,{hZ3:$a,I>͓= ﭟ//l. W0$8y9fgZ>md=V>F]#$h/V gE74T;llXt$@UQ~ jRZ!^8mh4jY]SsIb.+ W|—_hW^}A -7pHE}LZwkn~+ר3_ U :7Ot#zݤJcR>1χzVqZGwLzRMuMѱT)*d2[ϲZ@'EŕX9|RIt1U\QI.l<$ѵQ˿-/`m%g9H7DZJ<8FKޮ%rɅ:0g3J.j7V5qRzĤ=VŦZ?u뿗k[䵯(;y#k&i'{rj%T҂m4$vFvfjPi>(\O̻䟭7g _!h!ȡ_xI ~lL,r=jdkDz6{כc2rZ!|k_[ */ϲC5iܭ%y7U808@Fod Rsbāȑȡ?-ja(3iwG/)~knS.`X}[69h3:M1QZB~9#2g߄E{bbbUAkʱq ^M4joe_B_0iP5w`I4/71j,Ym %Ӭ8pOtcXZmiaS϶?/m8Ol؛lxGkK5Vó;6݄cQ ;ژoW7 w6Jܔwx2EJ:*Le7JE@0}/g{Pb 1h [Wvmdw5"~fx0jJ[#ızVR,x EVhxIً[Z5(tUU(ߗUX&i-=&Ќ2d֦ z1wnAI:Zg5FM$  ;)5 px GAc' woa$*NJ"1ܙJ;X7%wG:?2hE dfQxs `dʰu:[Q+#R^S=}gtiHPcOCeJ3ݵ@;G q(y4*ĕmYb7TM;4 - `HP>,Jok`RL\`Un@'ѺǣD..>AsTGskhaηauC'oI-p!sSz0;*pV5j5]7A6'^wMY"oЀθ(Z!Εc2ی|l$U5ɹ(~L8դᨛB/Y`_g!1)qevZfVWzim0[;Y g)}bٖ ?N4oӀgUTC+`m,D@*lo ^ yϾ;Ϟ1y*Il]y#HovMy8= Db9GҀXTWL* LO tlߩP^mHǬ@QГw`?/_ >&F켴_滗P~kfR)QTb2eHS\8b،͡XE󣷹)#_K)w t " V&vR <{p"ey`|bCZ15%YcR#w Ĝ7.ƴ|坢σF4$q0nm+~v=MڻB\73$zfS!ly;bª֮W!V-4f"~fdlJ2Sc1EsbfqDY3D{lpS3go:sjmv<.Ss|)KRz-r R5Rj{(!S`6 86#{=BϾo3Ok$z3k'l"ևG=ZaE0=tF<g8DjMM)@3,H}O45G;f't8w7* <`y s\dPYfGwy1t{9܇cp|{4B􈸑 )T_NdeaSNFs]~T}}6Byx-z&"8rCZChiQyHT*lT(q2U?b/ZLT=eY8 ]Ϊk(L|y/-kHǍ|: `?(4 h@H;y>r_ tfпxva KM,%lSǖB jA3^𺺇_Gv|qA!DjgTjφ(fא'e=u]S9+$E"|;j(;x<؉~W%Gf_̇VCg^IWz&AS]rKkTjmL L|< *I!V$?N⭔RK{xذDCB3G'b1\\`"GQYlG =ҏЯZoꮺc;-Ê ,źC`?wGU̅4ۻdf )!dBOƓU2ܴi$7t$ě3uzNe*%}^YD5r9um.O= ֣%&Wj!5E8)ҁO}B"rS(%=wk7b}")US&P"WY1@BxT$,Klrʕ&@ ʣZ6#=])&M2zDᐋWi.6YzePGbA?t7b1n}ي9/tpSb b*gO%mKź s/$ho5~ 4alq `~Rw2^aLD<l< P( Ő+=8>J=7^V#wZ-(橩Y ]]fGGQ{3c~?\2[{n?16YXɧzb0k֥I~Hj!{Dyl[c^8_A^v,ea3 ژ5XzV-.pl8tZ۬+6ƌI%#W犿j )OQˑrWn=~!72v JL k%: ;+eq}wv`%R~-zBœ(ʺ{fTh_O_]gq0eToBZ[a.)%s0d:og%>ǡ_g,Y*BXg͢)lV02@7lpԢ&ꎄqН# #kr[<>-Bo_^:DR^3@( v='lD^ *X Df96tNoFg2CHv#¶:$=bk0p7IXeV ыlwE|u~LRO&xKч}M,nDü m튋L/\l4{RfOGkvLUVB U=2KvT%NQjo*̣aNmˆO"'pTamt`I&Z&wI!!:H3nFe P,s}3!bjH~{e6T# D"o\2߯RZմWKpOYZ]$1=(o ^a,ĩ_=XBUZژ*D_1Vx8'0&H+9~ /g?{Yo3{x$*b䏳@ԧ(+7)Vcfܽy'`ۚ],H7$vQǑؚ׃K95L>k]1o_@-"Ug3q1sT;1[)99I_u?Jĵs3YE2{RK ˧?d0<5i-p/XHAX 3h͚Pݝ f։8]B97Uz@Tހ;{r kcJ& iB(͖V~mDۖj0v c/urId^"9+d'/J[ŒtOnTq-t5ggnJW"2-7pL~^~Nq2o6&XЦNZW}s[_@JKP (A%)cd )s ~حef\搚wIòRȾ! V^7 Qܥ%8xαzYť^VH4V,G".1HCXV#Z֓OG_ 7Z|oEn>8A=0p&)O[L h6K>NJ 3s!Bw? v9.}V L- ZfՍ t==nm>dTusהC'=QG(k4l[Mg&"zS*M ܻFmHlu+ޯ(PPSW~-h|jb=低a*݀Vn&+õi:?tJ<WXR5n m el)bdynK+>ZMݖA/HTCn˭ynۨF!1EWQآZ]e5sSW̓F|J`+*eX?81qUn6VctDO "|A,Ru|}Ds3%9˾( SEp tE2L8fEgXBzv.->%J8븈~x4WPpf5P$kJ/7Xɑ˰ڻ.6]ʇnkmAp>7abB%Yv3z'Q}0v.ޤgc f:)uO=o֡նb)NJCM`uJjXM=Zֶ`@x)^H?|eÌ-B BpP#}Uz Wn&\K4WL9h&l.-P7 TC(㦟^>bBtlZ;G"DLrfEYTɎ{tv% )"P\3VKZ(c7g!C4]7nd/[g*tt%)yiӧf3ChW=$5f}jykZ9XF0 F=|sIL*YRX`ٗ{Ȫ8Yp^WY\:D .cZH.R'1pڪ#2p' @%L' YFAYuk1=\ 7N+9_RNa 25ɓf)EQwu7]-1% q >w/_npJ/>2W]8塔;ww%Έ}6)x ~Xu nxENWO]o ('#%㜃>< \g )JB1Ң*tsGN#Z:D4q#]z}q+]U0Vt6h옓fr-ωj -yc({l(zzs]VD4|;`E,$~G֊'FykDHw4K}F|_y"_tp*P!n5ʪ2jQ!) / SccVTuR ZϕsF:i?8SvGdhLc4`e8OLj}2$7Mz}˴FjIAqC AQ#Rc=cX%V技pXc;{`5H~7 mP[8\#?1/Kضh?{ w>̶s2aKYd@2hXۘ1F.}Hő-<%B)h3%=č2 FQnU|2-6u[dHNMi)zilnQ!51\uz GbSSd UAWR,HmpF`k}OIqP:(hԫޤw!EyHc'IeHx5gyS{Lǘ5I%3JڬϿ. 6Ck ~WHBsg|@j>9=݀J!(3fX$֒ؐmz]M~Eq, Q-n.pvgun뿁Sr:S%x}E725R8$ā#ب'?)fqZgfD{q1xS&'猗k>>,'b^NҒ3\샧Vؚ3 N鰇d] 4tq9Jgë[Nb0rYG/ﺺWى7H1:hep/YOC2*+DցqkF:Y6b"U# ZFx,ld;$,/noh(d/ͼ'!s-c޻-ڡ)A ,m?<#$[C0Δ! \]`Ɨt zyN5J:h ɍ)aQ /+_5iʪ]F[P#tX[ҕ fȲKNG1{",iu$(PlDyK=BK aN='+T6ɖZ =JƆu[f1T"dz3H fz3>oMq,|k$i&J|R|M j3Mn/_eAFCMHt7?o%5 |UMC br?mPPk:8xa0޶ {kۡE"E ^LAe(q8Afup|ĮCHCم+id8zo|`'` ~V6dN׻r3GI [9qY@@)hfCWz>?b8kdy,6֏QEA:5`e7,z7R 8PSxh/< 2~7<3%$SH[R! q. UOlp7(z"/C_hhE6Hߍ#طxK7xg' |yn3gsvIvڍ5ulw>:{,/l15Z a6+W6` <믝yJ lv0KZMuܱ;,DilE\22z;7Ʋ"[_~`zD +^A,er/A ݥZ]cQ{铡6?J-M_v-'"Mk:0eF~٩i[xZKWz[&z7;!%<&ږ j|N"jl sz ý_]p)XY77)=HbQ}Bӵ_%}tﻇֺi2u\L}TN;ݗF= 'J ߑjKPZ'upj3M $х#r2Aj6Sdltm/rč֜ґ$D- @ҎZfNQɺdT [}n5^6JS x^Cs PS7·@{~r= a:Q{Uqr [b-IΖb6]?7;q5>ۊNm9|+*sL.γF(OeWol}6k'RMA c5)pR'N=\IjWaJF:-ڞ؂a`SwhaK@͚8ou;[f)wΣo873̤`Z _/  xqDҦ煝@\p83^?ߍrb^h6o'HC ;ƬXXν(bѧ J8v\{dàsPkFTuUDY/|ݽUH0`lh3 m;5%eOCpc`!1Whvj^vH=$.ЦVeS ~,>F8X1fD$AF~֟LN>x7`@˧L]EZ?E 54ܲƎXJn:# vn*RLdDY!1H= skt*\7:vǀ&~ޡ"#V1nlvlNJix2VGO= YG4H MEn[# lY쿏$;4 T`=,NkQKWYc;MwB 3@=A8Fn1cI8{769/^ ^lTUeNҮ>9?eK``Wn*bzz>bѝ R&brWL5空]nA6+kpP*/`Qeʂ 5[K@8`ive,CA5 Ti7D(?ߤB DՊ21*i$EX< kLzbPd>Pٞr6kPxߠ9ª?=ИۅlKq iW(ULGf4?&;;lt|I ߼ R ;lq SOEwlbtKNףOLk1]+253&>#*k<ôj&OHqCtg$^\jdeۗ, 5Z?$<\_ fv#0v6ptl,4r7ZEXu;cVVUFZCxQI(YAH *u/GC)#*Hd'P9gM b猘ڎWcW/1Tbi[yt{G[N۷1r俺 erW kZh\y-'Y8e^OeA3{^ yjt? ?{&r@!?*"2Y) ͷJ"uxLa]bⲁ/4zhvtגX?ңNrD'IOzp7Yl&Q/-is$Js0!@t(\h݀UٸO'#Wk|yN?e;Մh"L]Ul=_H 1f겺e8+2@5G30خ A4 9WyiqA\lUtқHx"MBw/pt(0^i(Џ{N<! "Ԫ'@ yk$&DD\? 3`Q t>5?>m# Fu 6\5ͳV?ߧ5 73 Ik9ɡ5lWZ4Չ{i|R :^{?; l$Mnjjoӡs;4,#iJg^+c >J QJ ?Hr@8|}ޣ%8|82vEy+!9ضM.;t{1.ВSΰuדce40f_>2 Fd̺aUp]QC*;gfwQl>ɥF a5x=lZ+OrA2fw'/`=U>jE9*z7xs2cWtM{1`(w󓣿t|9CGAwl^/6a%~FY^E[=GW:%=&v2A$P[!Wb=K6^J_c4̂e'}w^[*I}ߔUuڼ~K.Xu{(;V/~OeWd=lcoˬrl#y2>92in|_AmQTᪿiSKR[1~Ls9D4-"2E寕`c=_dz9c=Ҭo6p-F05GmP ˆ]]MTFrttuG:VJ4e#ЏY5OA9Kc !Jy]Ϛ&V9JPeG_asOD ~wGP?1į&%ƶCӡr=펀s_jSWV'EcDwWh4;[Xݘ\hA|#}EAe.} /4zvUi+ƍӯ+ҥoW(au S2Gu7V das~ 4׽ bէ]|קW ][ R/݀UfG"TB ᔣsm 7ۇt`bߠ:KFvz9ǣbt18 @jnxwU/`hיe} Y/ ݤ(B#F7D!aE:5ѼԏԳ崆ï{ѪlCH1̰kjOCV{NlՀ㨙IL 9} #v Z׈/U 5K$<-⮛l=y* FzmsL0 іۏ(xbpBa[A_΍~4lGٔOka٭^pr%qsl,:Zӛ^8qSdH04&`=;ĦG>]|CRxzӋʃڑ3̮OsSjڂfec90vŮFA:@.|OԜo+kL۟$" V '1xX RuQL}`[Y6k&RLZ;Ʉ<0U3Vn#Xt]iY@$D`zV1;B01ٙ~nH`J}-VL%ڕ0}-ʨkߒ5cU!Xe'._`l$|ZƷU;G2tٵC k^E%z=ҁs蛿U.p-ebrc-\aʩ1r:9F>Sk"CT_m*~\HJXׯm%?ǷSO0%w Ɏ}~ nqKN/:[_mޡLOtR9B!BHefVb;9I![X+[LYG4P_iys7n"ZԷ4åg3|aC+CkfD7Ў3tԓcVnTDJI.cGI8WV"t$m PDKdsP$7g_R$6(}6eA? zjirUrcrμbOp SR+L`Oe)7Uu@kdO+0I_?zN@>=ۇG'bz7:%lJ:N-k qOKlH2t~Ȼ~ɲW^]K"!bGE1/Omu.iZ 鯉 Pb嚉i?U" 塞e7)=ag7>GPmeApΤ;;uL']_HRޱ"04-Ձk:7bmbhݰLw;~8gF)C7A(Nd"YOg xX+%XYL_ijh:Ύt.Z4w%s4]vN}{Q D)MЊnKk$Z[<5n f9[C631YX_la<D^a_HԸ ?KF~Ww2?%nFƦg60tB'+j<ˉusTг:tZD}re8ĺ=UyxI^nʯbJ>}k/!8QZQ>s<("W`A.T_@T:3lG"zH1/|}$wq͋,ޔr)e_"9 ETp_qjX c6(]X)Hɪ{5s ` _ <8KUX[q롪A 0bnxvV/li$X~KEsXOyQx8vX'nj Z3LYxk 72g%u$fLO68|;5uq,!X̴nsHkrTpbN!xS5 {!PY} còXS]7 zlWv>ۯ`2sqGOp^k^4PD݀ ܝW2uKjܼ҂Exc_ RڋM!(UuU&e%WgXeeYvbq"WLN[c(TRT;\ud#0TP2z֕DvFu~g_,c^g*&Bcp`Ge"y]GD`:E "*ŠN‡$옧.tiZBRq.u_V%7M"pWW T%2`kPNEl'*Zӣ}@_>d, uY9; Rpnnz8/XĕڊB~q⺁j솵{?MG;ƷғgoR1i۟Eh'Ys' .yWW&h|wѴy;'N--ZvwTLw~F2 Fr1 ^V'̉Cri .hW:cqUGDզpn1y5&coܮG- @CtE(w(8q8k~/mȢ3 bZ@bxxϏS,9=PhsPqI>̋s40*{ }Ԉ65{fms@J!2mjp0,ACfxá0EÐ̧ÌVjH1GoP}lŽֆjeK{~~=BF0s^.dkب yV_V ><}=Ѐo|eaZEb&7,ϙ*9^饐֐ i {ݸn8!8%,K@Ĭӧnfx5,j#KZۀβ)_Y > ק=ˣmCEҥ1{sVg43)"kAm#)5:o_9'$XPIzظwjGm }sIF ~S3pfFiLY歓c{?[p_uB E ÄӆPu]ZgbjC9y17coCa˥X5L8!~')Cn:B~zK&* /@&{(Pa*g(cgᅘT|gHhGeBZY @\ÿnM$9)WyeSvdu"/$%[?#?d5}g32jE$?GzI^kZ.,p#q>6-#Zrtp:Q5@m3]uT¶&OaYCр3v KcⱵԹnpSYh5sVǦZy8މMn_8}~a΢>m{1aNՁ}ݡmҥ -VVXKFw KGºR)oLe0e#`k׭hvZ!-ƆWu:+K|/ Sp1F-h#8IMͯDzo+ֈ85wmqaXhwiQU'&Dezlt~fO׎Hsm=+A7([5TsSt3R=53V ӽSXHp\ltsVlρ:-xgMܼ V+'DaZR9\~lPçNYZrR[*kFDdz;"1йѪ$GAtZ7t:{ WN6uS.:ӹQ?\ +0o~TnY #@ oVpbIʓX_e:v;roE͗?%\6`gP1u.>BK>L|qH({u gF[)(eL:֋I k 5dtJ}+á}s"IH紭XC4x{0ptu1Վ[)FHFW(g>'oSe4?hU`GO8eKZu;)VĘդg:߃ 5'rE9q˙ ) PE3/U ;đnd!}uG\>,(4I\yvU\0Tdi7tf4HwTVD 8(E&2j/,҂_MD>\ҎpecX0$ & j~%{'͔{r!1',} oI/gzlYIAkh6hKt)@6jA d p7eĕшh!t* 3fWl uI#crJkb}  (ÕTibi "f0 yҾ/(@յI|=-A=I>iMwe-aY]G{CD"|JIp_5oRi27lܑae9|H(UB G^N.EWVJ(`eYUwUf0:RݣYQL1 >h!#,##Jra+&/2hQdGGcZ ver rMĄz#رЇqzvH/0WSgBVWYѳ`Jio,Xu0A\{9ar5.T#gc#aHBwmZ}Լ'pRO :TtaPʖKU\ NhrSStwb l'Ӌvf($ yȃtQ+LoZRpi3j,5v'B#xh)̄E;^pRdHd66˥6rX*K  :)[*@BU{W+GP]>^S=Yyvt}͞bP0EjI9ru" @@R;w? O]M T2Q4+I&r0P _l!uuPg v7WCjn}EjU>h0;spS)X 1?ЂiIb7[%mJ&|&qCٗEKALRka5: ʭƪDq̟|t5ň› 8* ;CYq 48GpWf!DXwѓߨH~Z'Bw4"ĉmlM {R,&| pW&=f ޼a?uWtc‘ȞBu@tTO'jʃKЮx =_\Ҋ M 9u)E*W/HlB-t 5_ 9w>~sZ34SYp%PX;vS.p *V}w!6RTuZ0vCD[m$|'$-WgI'tDɊ;?;t턝z8|:"Ni[kjU{%?0#z=`dgC~.|(0j !L/խtIm!|AWoс&ȟVŠJZپWO8"du]or֕=gs2G j+[-)NܑWr/i{CkXWА}~JeKOaHfcS1)֐K\}vEЗOͶMUbN"b/l0Cm)AntGV.i kV޽ki6¬C>^{]hD~q~{[S M瞶xtk&`c8"CO iӭM)sOhqiu{%.xģuJn 3є/߼I}!f ,-ٛ-`/5bL*ՙMO/YLs1y8D4/|0RQҷ__ s7fMjcv7bsO)ih[VhI5 V[G?lp߀OBՅ2̖w@;il|cCmްbY~mJCV֪"]h#da/,Euqbq6ud ;wQtMx G" @L{yԎe8x._[(2?b51 QLRӐ_MQɒ%n/Fhw1=a4& ݛu/ׄG>&gP)ilp- Lc߹308e mϦH K(j&//? }ZEt2$Ԃ=Ee{aBS ۵6̙ltPma١bMUա@(N>fJф$H= {׽hL): zwK"=De0MiS$P9k0(SBy%=Bc2LoSa\" ` G}"'Q'ڂ/3!&+ S2WxKC{P+`Awj\*he* q=1|6q>'@:S=@:-iv[B`NLU=)=-Kc2q1]Ht]P Np^KR{<6$zu:74C?Ԏ0HW=qؔm6]hطuQrL[xV_ϰq5yOtv&H8t^c?[Z7TcC M޵ _`oZ-^ XYZSU„f ;5USpNuŲ 35Y#/oV=f4GK}ZeHE 0kf'C[Q2v+aI0aBm+P OE^ieڀ-lhl \T`?wBFH7LDz>]ϾG(4bApΊ3B;Ny c(<~?ޕ/XKH Tzb񷥢f H'[q(V'eWaoo&iԓ:Ћ'{</NZ& ⵘxO&̤THR`.GOl[p cE4A <9;^υ@.˄OQf%HOx֍cW֖Y.:~'h*PuJRf;JtcJ1fTn{_`"ȼ莃Sй_L%^ohO37S! EU {.Bn&o?bTy /cvI>f/8t1%u?՗,j@5ZP-2mnI-`ݞC%:J8+M"1[p֬?H3m\;dfLDz8}]PKY}r0 `i;VA{yٍ,-c)iPn,aRnr_q< A- O37"sӔ5әz.D4fv99UR1Ҩw]Fowzy5Q,0cB̕PkPd9uHWk[TI)I"!:ף`wC{8u>Y fW27q0 F@Tn>d WE}|!V^w!NM{zgG8XdqEm V2S͉Ru>y78ht,V3mx\Z%uxeV?*IѶ))nH=MZL̵TYhHxst%[XC Y}ǿl@EL׺eV6͍wTaa06|.fsy4 Qc_uN…1W`:@nqM+n?748! g.# 9ٲɎMQ\1AEgz-@ $gr\A:N.vb!>#vSMg BQkDQzׅه̓WjNLSTGV/pp9_ROaוYz~֡y/nǨjo]2 vEsb7FQąQX0tJ3T(k':E7ܸWq ݂/EAVS pɾ >ځyEh㚎ӊn#Q&]3Er[8kK TZv(_%GY &ᄶ\S\,(I-Mρ"^&׳WC{8 n[xaL=BPt#ȉh۾X $9~ڏUxTpn~k‡6s)`t<WN2i(MP DpKg. erWE)9|!.xQD쎣O솳I<@J474+y6GYz]2J;ͽ 5=I7&lN12_ nos5Мe(IFw@.LoʫR^U"޺%!!jȖyцiypB^[ʚ=K6aGP @xa\gΙЭ-a8SI_:-:'P`WT9f7#q!K?=Hٜ{v[`~\.5+I@}mFz,rXO5a h/Z7rymbihr'P,SCCd`@ ?/mMG2B>z܋:Xc\)VǢRDK麧ĸG\~8GCn%S M;M TJnY _ƒOMK=5 JZq]r0V*R 6v(.A9WDʪ. I7˃q '^螚[RDXS2Q`yVxZJkw:+䪞.{3s>陓O֚TQZd;Ի}w xt*ݘ]0^N#oPq_A:g'|VVca";4DbLc*9cT$R:7 \ jDpU3yu7e#b]2Nmr i@oiFGH(hV,Ƅr&8Q5,HslIm$.#\%(ևML14$nʫʇU-}vk*"a 2٥r:mt4.ngjJK#gWa_u/{'Zmv>Nyuoi@IzYG7}#[ak7k(\ڜ,i@x?QW+8 މWie y]y??o]zEЉ3U)qMȝ-vSB$ le'cDq/u-sSEF/}$:h|hVe(`7LRb6o:>M b?ii!.%FR'\3 i +뇤Gf]RGJ}گ$3^_ߩToNa2&/Ƚ@`P(b[Uڏ}gxUfmݔ6s~i rDv G:$TΨ_W; V TFޅk!rigX&v]?=\㲞$k.m⢬Йe-z#ȖSaHߺE m(1dDƾhrڇWAe* }xo^=]$4#{j :VcJ|c6?'iQ O_X+hj)VK* zƓҶlodc:j1Pﰈ>Lq]'4*?dq,VUSمxw_^ʕuŌ*M3h#&1h=c|Yw]pyϹPkէ??׺y؀Iod*oT[1uĥt'*ўY7 eL P) Zλzˊ/[5xg FLDSNDr+Zxk#Ԕ W7z艍ї|'7F[ ܭ <Y;Gs#sIXPǑm,%5.,-dTDzR,%0J[1=Z(FzLx{G/i&ҿ~M{;C7Ga>.KkiƺW)k!|ghxzK.?/x̯0r5SƮ#ɻyp[NHuEduv3,o>*&=)~1MOt;)9-(w[uOqX6EQ%@>-~QgN.{։bO3*^SH1b毫$GzFé./ a}9c!H%5E.=][{FC' 'a~ľj]wM\0xa^ @Re0|fOD]Ո& !+VDzD!6[OSabC< HXW u3- ^GFZ~ʝ޻CBa !b7@VJkZM4EN,V0qm0:fX9|!n%wp=X0yhRbW v|iȐO`v7ֻa/?l@)רLƿVXQX;߮BU.Hq|Kn&$3Lxy QUU3wic \-t-ZlU-ݧ:J9hoT3e@g(HvM;l3ua< y.oɁ,P]EE o6Cn.FQR%ǰ[縘ZDR^d 4ﳙvP:#*]bu@JcjESp]ƢǮR ,|%cSd1Tmi|̓igrݬ€lk@2OF!ef:6i՘J SMPm'ŵ3C#Z,: a St5v8+檲-~Lt/‚CٓagW}c8<KJ.y#XX1Cz~LyJ9b+->Jq4Qzk}x Sӓ]Fݸ|1s GM6t8H*aKLh@E)gJ;80o422ág9t-bRz{,7p&u)k1>bZYogȴQ~wےMF̫fNаX m,؁Wee|doq4S, [yvfl1VD"ڃb6$h(99ƝW`]X8܊QN쮌X`^V"vlY[ u6"oY{c*w Ys1٥C(XjT򴺋+Ѿ565,$ab73M-HWSj`8ͨz=S@9G\T+L#?l %@d`dx$9KG NM:WkژrPבLj>^d1FϧGaeƪr:Ow5eO/IVbO,㆚ƴ 'X7ΣQra_ 2m)$@αX`ŇiFQyϦ?kOw0nrX*U]]CSK]-B$.vfG'´FĪtCX45 fa ~OW3@,bXԩd"3 gMgnZUbNc!dٞ0gWJ~"'QƬ󞋪VljW*'7%Q&_]L!q'^XB?ԬOKIs2&cQڲ i W{Rwɡ}31'g/ⲪJzvW܅`2Ɠe@{0O):_]p/R_/{1WjCCر)mPtZ:2,U1ر+_D=Ŗu-y'ޗbL[J?*8T9NaXxʙVrۻk>մ_c6r8}j0qpǣTED6=F;99= b`8U^Z[h~zQ4')H aY7od4U/DQ3naZ* r:u`d]?f+ ߆&p>%0L$HBâm7#Z^|Do8q҇Guf؏R>0.]1zi)v rMUr2MÛ=@ qft3[?-{-i^Ԝ"(я r5IfhɄY<7)l<_:-~ { 2)]L}#.z㋔M|C=ysdxHS^tWS;dHi`ji.q"Me |oJvfHgޔ`/Ջ䢥j٥),M&AN'v$X8ܳH~9Mq+h Dܽxӭ" o^qOKeDйTV BǗP٥~=tLÃ$(Ơ^CR1Ub~~=H*aIQR-˦uUa (&}:Ӆ'<#"] x1J:[ay;YQj䴬7BX&fmMI=%rgI=8w^RʹH[svnOb{} N(e8{!K676zCp>,~>w4B J?%IK:cU]~#nc9_˨oӯ3dHG}N#.OS.QuQkM X"J-|rZ`:i "a ;)M|d]VGP& ϭ*؏pLK$Y2&d6XNX11ZzVfʂ1LtCHL? l ቌ/>@~T_82K󆚗y'Ckl>Me ݡ_f۠m㪡 un PHzBÂReqTOյ[ Kmn4&%6j~3,}EgаQ S id,#?6)V$3_`f%R-=KL0Ks1٤=M0sɺ'žE;l.;* {ķi1Ys21]' .dUIZ2>X1Bmf͏5mqj5jx^굖\%NsT5s&PuZu=BhPΟYՋez>wl|c0X# >2_ӛLK`@H(U t׾=c ud<r^i}BuW=`zm+yh4iGׂg0& mMd# 1ZK"8nК: AgL>#ղdhc7G廿9km^6HѥCIk]Nx.U #\okLr~tBO-s=_Y>u|gADsy5Y9ωᯕH_YqCUbG޽@ӜaK\bj-8t>`+"Pӌ} Jq+[Jkޘorُr",qH&E>#0mJWVh]3qʭ&?<,"%Jr8 7]q97Z|~@ͭ}&L }ޔqۼ:uh#g[Y_w|1=ܫ,'hr[Rzot(9bnP}_`j껹@, 3TXI8 a) r;,c SuV MWqϯݬ|BN.jgD؜AT8?"0Lw|)V=Gv]Mݠ~ޏ\hS:Dž%8|ѪkNd}v+9klۥx w'Km?/du/"[\Tnʻ'bdOV&NG19!tyB2. ++ c06?^f@_(ѹ rB};%.ioU}3L_JGڼ `V쮲CZH(dFSkuo|zAw#׀ʌz=0>m~PdC(5t 4za9&6Gk -;Ѷsg޻02w1x hRԺ@צKS09/ ]ݕo8>q/,BOl6R멊m#lhf1/.,%',|@>8W*C Ch0a>zc*}af嗥J3d.pk2RFL#DNтa._kxF)ƴai6}*5u->IV+ْDzF`ZKM%L~aԏgu~7L0icw[c(tpG̯+ *\&?Uqܤ,)>gv~%pv(#sh9Cxvܞ,WdzNāٖn@jjբe }X47!5lyr^ٴD!9U"%G9p' ys?}Y]>½ hARryn8=W|߈-Qp l-AAp(M.]y.р&kd@%ƙVT#0>,v?W*xꗎ]$iw&+hd*[nhM`i[x& )#nAe|aVn.{-@ >[uXޚGfLjꉘBh͙TMb'p(@E\x1iE܄kAKwYM"2OhK ,*8OW}dёŪM1 U턺lo='Ab4~++(0#ډ7$1)dE hP'R:~e>Vw*0=!9ycޥdH뿢u;uN U0Jwx`c㰋PFYUI3?$ˑoBӼxuL,D.βpr!(ڼA-\ݦh-D,䳓tEFƷ]6|^, ݭSvR`jSǟCh/x `| Z2z nZ1xC(e/k30Dї}Aʕ1,KޤATl]"%g<4\<0Ѕ҄&vQX@(L%-Ni1'h1`h$ jx<1/P=#ҵ}AXC7#jD:vZ D_a}KQ;vIzY%2faStz{T(78-*C'e«aU0ǫt=Fӫ ַw^6hu&dLзi2{w҄QĻXy+p1_J-DA5w8gw%R Q`Խ3E' ،G-joiVQB˦y vR@2fFs_]U- TMqSBϰAuIq?6s4:G\}p[,Kn+rjk/}ovy|Byiv%TZ" [C 0Ak ..iROF0Jxs %UZbV#Q1BQex 2JSyZ҉#{q"k_~g3Mófq~i3Akw+8ZxժA{)e:cxVI*/ gwWChD4edw(l;'k,0BgJčyqw!K[U;Dި xcI|Ωg}gDquHoOw,VF_^[Ql]6[.I]̖6lk+iͣo7$w 9P%~ ȼd߯;:"eeoz8H3QvoLy28L}(\%jg)`viiRYӸNV/VW M r6~_s9.uIaj\gbjYJdѯg~"ze]G5aV)PTOL# ɥM99p[Qvi5 ' U/ͳ ;f<#T),>VDBX\Wx be?DZ~nM4>vsndUo[O/vfJn>=E\6k &#-0#Ė[rXZڡB@62SWg{Vk]=Oz)mًӵ6a& ;E#~VOZ/R<-Kyk8ӾIBi@1Q!^;d~=3pGFcƀ6su^4ͨkQ@YTO'pJXJt$y*Qd':YЅ7f,aNIMIc^EصE$Lz{%` >5Viħn!4n940{K!9i4o 7@(>F|.*n . ΑiR'" eVYb:] ќ!6iǿ՝TZm~6,jC *{#5F;6Ԇ''W\ K m`ޥœH0ߝ(G{Z%CBMW-[ W_`W^uS^s-hBXuVmg & k*Rg.iއW00^Pٜ&hkqlr:|ąAb8dػԆ>1$вM}H\Ndnn@1b[sȚ/3!*?d1C־EXVR[z :bQDuux}9{OZ|]0"Mg˃|h4 S9z]O޿Ϗ 1B 0U*C^ub(X+L#Q;UFqyOLw^2'ɲ(~Z Q/b%&zU5B JiV 勰r=@yHNxcIK/m In|A ~W -*^*5a<<}y|GkI7y U]}6m ;ē9 AYN{^pɪcgnje4_>g{T B-bI?ՎQ"2ܕTgZeFݲjG dGɅ̿_aX$/އV C+[-,I54v7wEG٥UI jgU]bw s =]A lT\W }@7Mic}-4fRΔqMp!$JwLtWP⁾apr%]7[}NViD=童LsP}iGuhډ 8G2YtY]yܩxe;et 𚋴fjje ЄG5HtҍTج[K1f|`{uKmּ#}{WAҖLT{J!)y. Kat*L Tu=.IaasQW`2s  ZbGO!T OԍIȰ4X*4+^J^e~qqn ;\☘Uh择P~ Bư˥m \gK>ov:q|Ƹ`li Mz8,FFtn=/€Y7TY>;l##Z_ 3C>addH{?\JK"rh炲[Etւ4UPS@m^3(m# LOix_&B,EK*oz1ކ|I̛ mX` *1Jk28Z=§5]IiOX$B>nqSגz)F`ff{-^19v'ҤR*a53 yZ /͹j5hXA #>\'xn&©4o"|Z7~&aٸe'D 25`^M:'EM0ɑTNpu p >WCg$ +BPVZԷy4l2c8.#JA]\ߔu7$"'pf# o~yP>t DD";1SWtQ*夾XxzٞZnhzL3),m~Hu>Q3ۼ$Kts>'~.á-4'2^ H`>6M'Hj2d %cdAY*dLkm X[Ë޻_Z̑L>LCFoWK!:Ģ HA\B(l,n 8ĆM C% dW@92#!"j<^ӜQUDj<^ X[ ߸=h$w9<~t+1 Q!VUޗD~b8yqV*ar09ɘ 1d5T"iyKNQ8WIte3݋B!J=ܺͶ3Y7V*T4U1]a<MvuEAhU o@M~H[.qls!(^#Ou3cO7uzĩMkE(FV[O֠9gGݟ6?i8xԖ)iB|Va}tnQ%)KM=ޯg% -CGQQm F)1璉;Xpgw-DɥIaze5I  v@CoAٯqNxyյ>7޻ Wur P'{mv??q(6 sWt=za"5rW"ap)F&ij4wSOfJ_bY飻 HXE `ʖXMO;_jM ΫHRڬ9#4?-#b'5ס%z ȱ%nv_iiA9f9H8CؓrŊWadqt1Ň|TJxEC#j,Na Ƚ<r%.jʶ8ԥP z0\Ou> >*T 9U5uЧ'22Ə:L$WvJF;>N F}e|\|$P)H*F>Lo ^0vCkJ=I'p `$ m>HhA<̨baؓ1L}ɪ( &꼣V7D1BGo}b RTBAm7 XL Py.& uWZj60ϟOL$E(_J{/i F\+?ߺO vjoFs] Jv6~cmÿOl5IV5 :mlWt;4^ͳ5*3POEܽAmR\YFz`Rf`,{!WI95*kMeozv|EZxeiTz6nz"AםtI55sSv]&06Q>>q=` w@8{ ~`R οn [Qc-??2NZ I:P4EKkXۗjnM=gDG9]Nz[747D$4O]F0Q'%YudK(E@ ЁB?aj Pjy-,k\mf^"͠H57xP>ARN21]M6_ugwocA@0ެ?cVTbTДU}\e!^N]]`®OX8lSe\)ptC#BPP 쌙-p|U)aNc]$! ǎ^P-Ö4H)d+lf1inV) d O# KUGkx-ek զb")_mmv*!_M -_W,kpIU/vP`K*zY$.mFTgnTGb)4wm![ 81FnvD8$A"NOWIJXG]<'ӗ!jBIy38a풗.܀;1x?qͶEkι,-<'M!Qxp/CPgfTka #¼LL~] >B־eKaf`wH@Tl`.XO*Xo>"]Ɉj)̐:h~0zB`QӎO;<Ɔ2DXe-@.&ʸK~ dG2}Eu.^ /^r߫TD:> Qz+˾PW:/8:s=uXEbO1hv򅼙B;='ͽ-]QBhQOv{m1wB_;aG뿇,-r }ܴ1`w·0}%]$\q7JZ)1wgw-Vh- mo+aq ڥ,izN&`mƚ?`rǛU{c~Gd_D ăN*̔)ׂ&6\wzbWݟ̯ Eԙ.ݞ*8-e ?Rb2eA7J3BAOy3cc B `8ymS,VG:W #cg&)SvTc0N&+^01%Mz1qj16ϣ(5T*+& Jj-L*J7/HB8/)gWqqS_Ԩ}a{"1y&H!l-gHق>Y4<4YPk/N(x qNJXDFyѱ`zQơ/j\v̖UInfo}zFkmYfW^IL6[Bq@ȊG;'UT\2oxK0(0M 怰e+I '@AFzm=:ʋw 6I]n5Y)i7߾$ X˘prLĩtB8pT uu|PW=PIAaH Y1; gThStYh!E"6!WAYh*J=Y{֬vVq3^--XJSD}rzJ)aP0p }fumu"RBGEY dՐLkUœ&1@ik :"i-dN"?;g91h4O^ͱED~OZJm|KkNJ3se\ķyΟ+H[Z{(DB+f;ݥ:ZL8bhW"1?fЄPYBKCb%y;!ԝGh3mb!{(-$BM$ml`8^d(;P5 ֟)ZM+WӬzlph;B YsO )'ۇ+f|ř!ٷi CE`vm®yI-x^_:cz<Ik&d' Ba^"coHq:.Z( .V麢&ʼmpYf%YJ?qsmK |Jū cHqLFFp%bF,D*\N;m^X Eŵ |kF#{ȓC]a5`τ 㸣R)7]qPGwS ~ ;35.AZ|8{*3% ?o_xղ$b{Կʌ-pYxZ0c!뗖j+0~GTII=i&iO@(9@w 1-re u;g {.^e@ی; >^䯮s aՄ? #[!xWR//_YT?fb}||{ @.~d8{'/ z#C[ذ7 v b}=*y(@ǜKgl7jPI$MBp؃ܴ&]u -_oR3"F=K/ dX ŧlzunse8Sy?# p s&̤(dOä M5 r_HO*tAvtuh T ,`A7 *1󷂇y2 cwSv3\WEP)/;5ʾ|+@-rEi-s]XO#A8̴UV9?3a A$eycئZQ캮 U ^{c#㺁XT9ÛesWBi"YK5O`]}AA>v%3 rA $9[q ÆeVGak':b,|6a7n|TF6bb:]As;RqxLzߊj9A&q\8N XS$$O2H}2x5)Q6#ٺ17+IzVA9sg:o=;C'd 0@&Ye^QnFRl}!ҎK0@ͣICce -P06̪$癶ӉqE^.0ҷ]ƜBdY HT S`]M^=PWtaSnspWx{_ET%svGִyS)bˌ<σ6 UUd>AS+ amV8q*?j yMT$ߨyqSVdž3$ eܥm϶ [vLbbIo2WU,sx}4F*FuMp'm3e7#V8w~Ɩڙ鞜< EY EsB|uG#2" j ċ%9Sx QHwK!$#/iATXj,}Ԫttl@.Fb(U/wȰnKg#|ds\Ps0cis>F6>Yx>yOZ^NGGZfg5;PA=ǣ7E9E1sTSa!>͕"6”}yN Nףu: #;iHxmkvJq7Q@?=t-2+wJK_Gs -BqB5na= UYܢ7G8|KFo^m۰b`%FB.D7- ^s3A|@! LH4rߋk+ƸHh|=]ozFAQ Q;R'~[\ 3rObAaVbm-6$~Rd0>.A|P\_~=G)N-Vn5#p߃os͍h)&k{t ܞ%ɐ+51S/B,ns^~d ݠ'%iRԓoP+,=6ۂ5w5g^ Wj9k]AS'v.7.,H2!!4 w"ȮRPZϝ%d o[>PwTւ)hfneJ#?S,NZFK  ډt )ya\NnЁRJɅT SdTI˓{z'<$Z(߬*şG$jYgtZ)@6*()pZNsxNju>/8oEEi|?kB6ߧC%Misݲڣ_bͥnԷƘSSĻ;X@pn .{(<+qm>Δ{pj 3G׋ti[^y6ЁbYg/v&0ޙ*3HR揃7orOm %"4C?{ڗ%>$v i5Lz`Qm5dI `4}koP &ҋKD$7#mʸ}@"Ne: mdPq4 gf-FfgM~Q$8:5/HXD>ZR2מ-1k FHOStT:Tqr:qEBԖAB49v)
z5[~UoyL&e&B4 ZSq*Ln%Kk fCe36>02ee4>rmPU\ 3$xNOH'b`f:Ueڇ `j^G.F)]t?\eqW))*vIf AoS3xDF%r`=3;duR.m{s',CmVDI`|ǽgE{P倞`(S}bOdW+]_U9ָroqZtID^4c;jvE*!i,K:k~ 6/ˣ33ʄ'? :֤1%>Cqhh`#ZC흻Z=vDs5bf\$W0U"3HnXmEyj/(|M7ᰋ_bWe~4IĒ ԺYS6IT";k2+8Mݡ 5"7)J(h眢^Be%|#Q۫9x>u)yoYjص"/-Iy”#948V~ئ}3Eg lrɜA4![A5UO`0:8ܒd?څշ+W HIEW߂jh!eh/BD>r YD#sH xMPdF n .n 6403Zڃ01kWWU6[7E5RlmbP=p&PCӀHC]#Qaۀ`w5_i&AQX&r=q@Г]V[=cU=q^%e4ك)<'Х1"IEeY+] Q)XqT~s7)j m=G //(qg,O`dҌےnRo} YD|Bk厩a YXOG!F>jSRiwimlS32QELJQ"'Wk"7Nn"~U=1$uG]sK8Ca"{$1<47-.JqCfC_f5A=a_12w!8ɾdq!s6:C<5vgs1Gk+/5qݗC"$<t;ϟ ̥rV-Kc̱]^LcrKso[^-XBI$#]0JRoT3V[zrϸѽX*0c]OIZȍTB}l{|89IY$>_u PIv1 dXtG>(hkۂ{Yv71ZR#a|>Jr"A46SJV,Ca<̏͞Pp:`R"Tn5S1$a, ,! xZiE?eUOG?G0~vEۣ<-;NjiF'tuXUfW:j[oo75B{Kd;v $ں(z^to2tyDU?kcXUU vYm-잕8Llnu!ӶROP 6!oܢxwLD\~q%Ԉ/Fa2Ke ˢ=y\{:&W](*ߺ*.8<<,׏SWm{Cu9C>ښxӂh7E$:|K Gs$sIE˫kV>7gDuPZ):?9V!˴ZIt9L\T3b}*}/EE8 +Z9SvdoT{5Iެ&&A@6΄eVxQٮظ.9Υ05R=u2DmP#=hڦ S~eAn)\۝bu$)4}Af\J\j=?Gw9u@jd˻f5 f`H04 FNXƖ+<,E Ǐ}k t,y?u'p?~U?;p J` ;Eq~ܤxu[&D| YL"X^dTY6iy]u8Z&,Ye]ʔ.!.b)*#(Bñ/ سÑ[BbU&v o{_b%GL'ar.J. q ю6ӊJm|/ ]$X>`[koPzf;FU#`*"Cub 0@ b-WkuN`9:5rknJɱI 07c3)>U; EMϭ+gL3bc5r37N+U&aP *>u- lǣŻV ">PL &M~ T 8C YtQtb<g6HӎkJTNgV-ew!l\%uFbѻ7rZ,@|28 ܿ}1Zg{~O)sY/cq{R0jުЛ;Ur 6+Y^pnwa1ÖfbY-9d n4!3%DfG:²Qtb޵SzRJ]ޛBTB-Y0rZwd]4M|{\ٲSoC| Gmpyͻe>oT~'r_|ϮC`~E:~Cgl5lq4[Q%>M[m`IG.}˭5MC^D/*n|src< /K54F]rVvǨxP0 ղk2@gf_+Gw̫ o=uDu ]Dm ɸ(DY$S,]_ڨmap?ksSw{"_K|p[+R ˱¾eL>F#I9&uHy֔6<.w[_P}sdв"̃k꥽Du6,V5[)<걢r﫶%;'K0)poSK f=>Jb•ad>gZhXH XF 5Xy.$Zvl&}9({IǍ›G1$COL&Ai(ZnАy(_ڦ}EU#FKH.̹쫅p 4|VN~t?O b{5tĤ0 FJ2H @:-V"cˏSy/ES0ɴM<:ފ(18:7HoaM |S8J#Q-ӾXxk:t#vOU&H6c^q5pWѿ1gMH6)j0,(isiĀXaT4W(Mwp^-ˋ x2!DUT=U>s˿J7Nq3!̰RsqFCco.l>._pو,sQ3/<hS6޾®H룚{ vӦQF9Vo!gЀWx/W_`AI5WohK>!Rv5N:x1=UaT°leDN.؍LQ ױo%Ѱafd?KI_`ZG[r/2-n"{B<ŸǸPQ^LJ=b=X![z_הkRV}N%RF JϕرWŹk@;C6 FcdTqŸ 5pSL}Y O=xikHMX@^Z.xJ8ӘW~x.9j#@y%4(_|yqz;$`es,<.gu&Gbӧz W"Y-%Jt4vg%tޚ3)V4^9c(Sꛬ]$ !˯t jP6e4/nj1/FVϒLa^RBOFYCN=#}xRlN7З 2돪]M0ueV/j?*g&v{.gQ7\NX,5/d`mqr +_}EzS( bNǕx70/-~wB g;d ݿǸe5 )UUcL|guNJ$`.Wi_NxID:[q ˦d:ίV'Nq(Sĺ)=*lsXA|"'N! 9SqtV]w\-WUNeKHH{dm|#ArȇlMP@գ4gg@wVK8aL,%M,mTMc֫08j n1Nk0R{TDZ>A_6#+A$YKW8JbӵzifM*]Tgd\ݦ.F(YLaíXx<ǣž^u=pYH &f@5~w煫z8j^vrLm'ka}RRចʀR0y' n4*(ʟU7K hb<~$z<,I#ĬC/thT=k]MNp3Sl켄2eNTPkM:o7ڗr tew*$/?rb.)q^Q=VEgM7@\!W&ap3M"(zaU?"xt&f}$5I >E5..o_eCSs;v*m}wa AS xx{BFd T=fQ3vkUSӂ5%n^,9xR[^.4˾!/>1\ hէBlR%Avf鰯0CI޵&'Z~?F*`hj~HNfd۝]CO.#~Jc.n7k»"0pNFb=>K%9(E˾t>G~;?@8@5 {EᖴVgZeDFStpTSji|&@~,ێгMezlWMy\] 5 n.h1X SRm7P1[1;f?w+۵bk=q)cπ3(`.ӫ+*_乞)9֚"ۍ%yt|u{`eG':o\f 0G7|hߦ2drh;2Vf͏`R]u_oHU׿̺v 6Nq%)pZ I@/Ҹ 5#7naB3]3m M3zt-bi*kOϵ}o?^F]y.C^R_2$gK qqIf[}y$,DʝKM3:{yӈ2D2E9cp[DnIkm=h g̵S̸,~spXvO #WqNHY,6@#S!(6Zuc3kC7vK[RSN"6?OoWw.y%~߇98ނBP*;mMCj I@NTkQlШ!? )i;Sg7 'qUğ]3jBm^S!Ml0Yv/ủx!Fs[+MpPKC'As!DpΩ*`R5WM"7,VV#m` : cd 92zIdyD]-ك Bx/a~^!(E{h?Ky`YϜ*|U[h۫C0Vno c&Vbj1 \.v_9+@?92 (t@n0I~ɶpSc>܆?;7ïݦGZ0]QTDnNa0,.m:@teKv9 bXN8EYl1N뤎0c*k)|$tcIaYoSCq4 A@p2,]^ GldžiPqts'>sP'aN۪ƒmdD<_cI[y"nג@& GY{WyWġ]YAnvK495{>MчKYV31Y[6r]. D>$,iU({&[;Xxп`RaiE٧㌿ވ h?7.$v{.G]<}I/>hs1 *)$NF<$&VȌ['N(HW1̢qP.Ғn0yl{~+Z H Byi<4WҦq:D\e7 (LxG!'$Q` -KByjg[ȼ~/k_"w8G(oVMc <^?w= ;gY<.#D mkj!&h|F.MLhVw alO~,\(<> }HBC:n5TG5ݼwdb|۲O`~s]q wqJOL6<%=@JqL|N_PJɼXdWA ܳ7\vPNҜw7eHH>}pvwa gRmL{$nê<*.*>^c aU̲OصY1;$=Qƶ;\7OMlɗ6B:eojP̬/aF5 h"3$ghA^tQֆmR%[3-VrBQcmI'2:w9{yp+I~affuSX)mrLxJF%n@{x-F-*(~6;-Ф{c{Hi5&Å2 1/\CrBE$PM'tAΗ?Jdz3CMB9u>hxmCPP8SN# "MdoN (H*9rc\te|hCℤǡY,ZP@@ y[-,BBWP썮Pa,RߕwQ9R7#0RR-mp%j? ˱J '1jq*lr΢cLb".&Lڧw^a-07e17tW%bIpW&*Svd8B'Ԥ.iXD~lCI3#i8nB-cҩ $8*vQ 3݌t7o!$SMJH=к/AT8aZ[ 7:.ydCtqkNg׮>+B Gއ{VZoe?OdsBEGdȭ7E;u@IRrr2>,4֤VIx<]e)kR vqfPV7S)ܽlXʱHgP`ԙwg?}Un6yˆH`XwKh%e@[+̖[@ ^pZV(a:fxnDNvʚ, %KGVbֿؐ`ǸhLP˼ +1IJcؖrWJ_) :v&[4#[RAD)7QIAsuh2#NY.H{a=H5fs5|)6`#vںx7)ur2. (&l-1:T'j?2ZxX~đ~>8~ckob ݚqsۊ PQKEOCEYmzTn,iY$)S-O/ntj N!FRCt%o4g EifJ7Px)xus*5Typ*2ʀslR_YILe' weTe"si0dv@neԔGYjsB=-)k]8H//g5m,&QS>KrQ7A@*v:b-m`DAA:[1;"`¢:< 8BL"شꪈ$dۈ7`,)r' C^סR-%H$_$ 5V'~/E0nK3s~ST׍8$M),4>9M!6+g{rT;P}g3BA`i2nD!֣Mg#UU~OL+C%R>>԰0l[Gnj)y+`H:Mnr/IMyU6ՒZ: sxk&$S"mk:NGz cϷU4yvʡ,04Mv(Kso%j/f!Qw*)oG,c/ Sµ$c5/%!^sIvZB9W'V8Hb/]r]-cޗPH5&=17 H? ;Kq r' >5nHHPdabOZ< 2@5ݙMMB$`.ً B7y]9^ g+Vexp[:^]]ƃDW[W٧kYm xH] !'UXK6)7[I!ckY"M#Txn:~&_KI[E'?!RoNZ.5˶ynp' Y֑3A0aDtSY7z& :̉=悳⹨%5SIzLS2a$u2%r\iގu ..謊2W22  JʉwVF&Q{_1@5{+c |&NnB#7JG(`Gœ᢫)H 47_J ET2  | SD+rf1Vz{|2v-`ݝXRz9Ks@wt729 oDLዝriK?N$왛.`!\`Yl7:z?/ws]CQ ugA;||/?\aJV#[:B'wQYwVD.vg {O,q: nVQ4xca /7ezqIT1P{:ʁ̊ln._cPɕ{zFw9R&(H׀٫DL%1R8nŽ}'r^?Ր?,3oJI9IuܒCD *«t$lR:d4QAQoAuSMO_jP%دko& |}9уf_ґwDzܹ|1>Oy"M[rնv}{-.aNWGK6;€.#G'vSx_NQ˹iҠN2n:{9b1m|FXw]|v0s/UZt Q2?^=RI[Ud/Q*CI6чpxv,!t Ͳ^ 1'VOt316䎁FuȽf2` zj% g"/RuCBE0i)@ dԇ]ސ%6jgjUx3r`PÙ`uzߍ{ +k$İC gR[)BS)Q wٶLC؀e:r-VQ}[6cĢE1F{!FXc#ǫo ﹵&@ COx5o޺FM*>ׂ@ޢTkŞߞW 7;z6Cܯ9XELOSs wAi(Syշbg@-g􀚱kxw3?V 985JMnB Ub+#e}mσw36@LP{o9EotR)Sc?*$7L1bt*(x‡ݶ^Ih ?WY+9qfu-)U .)4T@cK(&\CPp+"B>"Pb] q,PXyerH *1T1xFT8~*5(FK>, "-$Vsi ;5:/osh^J&3Ll mel2t: olfD\ eoG \(э~RA405{H; .qd6oGz z@b+-Wz2gvDSPspѰ$SulMPiQ[!n {EɨOQq4=]C [Fh>Ė5jڋ/8GO()4-?oKtz^Zh^&9%ul;osOAe ߯ΦurlxWEj\(iy[}/Ϥ詨a[(U}\$1+lrk^2kXvb{qwH+@3>ui6U3T<l.N(uFm/3y"(M_ɞ$)Js01^"s_ y UzAcVYB8O_6{ni(,ch*J9fڽm\}Ȑy=f ngYxn|~Z{;, 0%~pWΟ׸|UA&M‰gHpjzDRx#=VJݱ=qAh0Mg-4-O%_"x8*F [7K2LGH(Ddڌr3d;U[ p`ִe@q烐c%]{O>k:pؑ?C\\$_b9[(v]6BWA,y9ZF')@@9~(GWRX(J|{d;ׅ/IyY4헲xb hjlB/@M 2@f$ZӅ`z؈.n}i:puCGzظj< V)s76<=2Gq8Yl=u<\hEcQ %K'?2YGɷ4HLҼl*1|\fREw}*L`:|&Qa*x&'3N8̓ jA_z x=A_,U}ao-14@۱0DZ`NJ!lq# R{FO_VY)M}6]S^Q "{Fh!u dUO pZʉi ]퀼}=+= ~sc |w/.vHB28@R8 'Pg>"&+p),s;짱Tq38Ф%%-]c8{.;HS8~ ބq7dffFprVv`+㉜T5DV:a[b#ePl_ aZ]x_H='/PnX V5yC Pi xb<7goW7r!vI稙@uд NxXn`Űv?Φt)>]Wi nyi>q(7*-g"a@R['HB&$368//ż\l:F @d|?IlK]d%ecDK$hme\s$5oŵD\̕r&\9'.Zկ8QGI~具 zr^[VA͏Y?&0/\~ENGaz1yS.DNsɉ*!AAD2@%ɄPCS~8yR/$ul:|x R J+Y98M?M=yw멗@3sܲc?.d=^Hq6tnV/.MQBA!i"xR,tJJ,Jd]q0))Rg Kp;j $opڤ Q/l"nv٭]0 N6abq<}|PA}AtdBe_<L`q%%'>=,ӿ~X+gA,3iEora;S$dia6.^&j1KU:O|(FdGgUJLSNʵ #2.Q'U=͟TqRb_+(̛Ă͉bխZrV =w[͆`G|q8h}øŽMLw}gv& Q fz3ª`[uDeN 5);Z!Px_ {<]7.h-i[fZ{D;ƺ4D?uy߬OMJ/ί9qI_M5vȲ=57lT}Wti?ͨFxCVo.՞$22&I,p >}A5&ߌMq:5WU.;֤}We`C-Zy`*~AImTcېw0n`!15iUWIt?}.c&4"S Le?/`I6;A+qL>oҏ< fh{9eͧ ٓ1+PRP ")w +8-H\dP?mHm 9u͐)GEpg#0l1񑌀 dhT0ZR(_S o;xb`_^7ֳtH`:'d37Wl'3vvI104 %{vSQ21fR`H$g_bahjkvB axK9z0= REWܷNpO#qZAn{mDAN]AeQΪ\V& ] w%!TGx6^ih7iP[Nf~iܜXb|Ij8i|AsU*2瀮 +ˋ+lcY\/?YbK0XəՉۚA M|A }8P07 \}% cKh3`lJ(0CAs5P/b9B4)z™4D Mü5TCPV/! (YpGZin4)0O㦛; {]Ǚg3``$>~Pu$5bbxl(Db4CX: ww>F= PտA͗)u `ZpfGzcjﻗ2In5r{%ܑ!e}#;x ֍u:MTo.Et!R{PS7HV ^yI郳W+Cn?/r=pdZړ 0 pU 2[> \Y䐺| [}?W\=4U+#L`K+W5Z{󇷧phѓJ6+5KcKQD4K3ha)xQ ~E_ inN6SBHLJhOGzޑ2ڄ"j%|vΤ(ptI&=[ᩊrOrM7BgD,zM:yV|@7 m6VΚgmꫵ >mA~H>X9?^rq^-oN^ɥZnv SP7?skk^JM$}mˈ55ƛ3ΣvV 2b+BGz֖X5J62j_H5sƙ,WYOҺ9/<3>3oYz'J*|vK\AL4lˡ:lZ6 u"zq1rƨj6[ȝ<6ΰ{̀@tAkxhW-5ƞl[r;YգѪP\xB.bjJ;_[WA@nYȼdW}o wrYgKVϒ5<)"SGf Ċýz8M>%P;b]W؁Wc܎ؘ̋6@VbIrGKREUe`H2l_!._FGFyl&45P,#[{)JY{ K;Pط@%TS ⛥8zBߣ5E"{դ>uT+_>5UGY;& gv`ZeoIG+VtH-H7'Y"bS&1}D&q:9lA@IJqMl'(`IYssQ@sQ̝~ hULΨTUv g!+l~}h*-!=ib[󏝡+cEL&֚UۮCt1  Լk4.|*ߎ.4nv/$ 4S)^rAo#Vfp%5Lݒ+PƎ2M3)ҢYk`|&4Z^{8o߻@t{P+YQ3?{(*$rfU@^bY=gW[qԯ(KfC<>fS T8`u "" {hAUS#q;z^Q5_C BjH|_D';$H` I~ 5OX)BCp Gy'[ǀD3mfE8F .7|pl_$+Jw8ݓe!?H'Vc -h¤U7jMX֢7D`zJZ >I gy+1nЭ'c}p,Zдq%D;Ԍ sEɧ*:볩&:iZ  "A/.2|TE)xVy? >ʜNyS=t6v Eiz!{B߇QI ]|ͺqa1td5[;7=.dPJh ,Z<6 Uǻ41ӊwZ@/U'ʫXV =aÙTc_1J|yt3vDO"GxJv im~&H rߡB>:CqLirY0) M0 H~ɐԮ~#rz?L/|=_{y԰OZLJ8XzW4ǤoFdB-#0+: kt:Tod^vI#}DM/"Ju;7cI^@R(ܯe6e5TȚQVpɂ:S:RǏAXvlH8M%j^VΖwރ9l դ!ڕcky5myKR7ZZ 1 a^4hQU@% yBkh'wp˛Z֣$\"ͷ86gfE$LJ3ٗ Ϥ^2Ox^˾$=2EQMOGZ?O|3pwl :!W=M==igy%UJ]Lv#"Gy;@"(k11Jo;ЖcA$5- !g2;8;"-FT*=(챚J5-@eHI[cK?vR9 8(;9* gyh:3+fE&4j8U ј %YiU#bIrTnp3bZI֓6ִޮ,tTm )'(]VȁώI?}nCy}snkUƮ3(Hj)>q8諤z3خz:6sG4KW7xҵiiŨ1)_șĚ~=]B6UR[ؓF<31z'*}AWTɋA>#:F4=c8u{[yQ/FuWTJ8C0 > >&77m@OºI'`b.񹛴 xOްyqF;1 L!^Ir;J' /rHhH3>o19]X@e#zA|FK`)\'^֡"6jS /т"um}E! vzb~7MecEfM, Bbg,hg;N?:mg @pCNZ-lXsE~Q͊6fU.y*fŧ٣ݢ[XڿzWRq9q0bǍ33l0~p^BytX` [<aqή6XHT@xS_WMBbKf޻N:{e3_DHd"{baMw3MwDJ,g-K#M≊tCۯivq@LC:"FfxL2^GUlUV+CS9njBU J&y6&RD_wmjWLnR 5^iכNڔOx|p&p보n~?v~eI@STInriFu.E$x+7*)4H  1W`a+,ԉǾ127$?JTƪ:ؿ&k5=>~bÁy/!mf8z;B jEo^6PndnHu`?lդ~I: yJ$t9=S-p\ɳ2R9,P_]TW^_!ZWpu$Lmk>,cu O*3U&C/yH)6QS"ԡdȍ些5+}%NTsQ~ 8:Xo] @)BZ|&=g*-6z$ zNiY=ESч964LLY4(ᮣ\ܿL.\c͂[@Q׫ 7VTDV0ZSycs't20*U#dc H8WW2vmZHZO;qK|mhRbaâ<t㢱cA:n)EzXsit׎+SWHl9p}z[/JAcō`- ǯ[&r+ϞN[ԙJn2-{Dm~1ȰB@EWֿgo9[])߹N02ɪOudA*S̖0ϒ\ DljQ׌2dxczl \Yt܍ 'U?X!,jE!م7U50ѽi(B uS3")!dXD]Pǝcw]ܠe] , GK>WUf5,Ta>Jf +G_4˔SR NHH)膲+߬, WtƅcI,-3:5> 쩳h7De #&M#$-H!]\r ͌ۑRc%D,Ub!OФ,uHBnUL0şmCx^Wy#S) 3CiXQCt&MwceAMJfn /2{`?_ ([7'fm}Gzۙ^`:oق罧df"ig@}NG0xRa$]1 .U!u?ٯF:H}ߚPC+m7mP$u<|@?h14׌$JC8T>s$9T_RN1>ԗtYӰ' rPо`*T$3QP\;Nξk5 "$kRlR6wzJ9󒽄3AԻd?p~F4a[T}.$xUF\.)835#ppZ?U.g)"8v+> >!Ikj̼/und]ڟlTG%i]3U D-¥ D쵆%|M(<`[t>B<=" q2&RE%b.JQIF%÷iuqQQǮ۪PUH^j&JR{t"Fj;[P*O-ϓcExB^YK\zfRw*ea{xc ,˱Cc4G5fȬP|%z8ĵWgX !F_0C!E@>3}yQo5AuɠRfZbZxN>!AEP)6N${wiThb?{eZ aiMAL!q_blfPk~Uc讳Vgm줡S{\lUsBl.vUI(]O'{!2+0 oA..,렭}s.H5 *xs6I2;›g;<7a7W/AyUTiǘhU7^ş<4Y!DڢpmXA@9[} q/,xZ|jtz;*|IsH]jMBm?=akRqoRަ+5Qä ky,~295XALq#(ڰLd"wbH]Gw&P"NSXF[O]bltc\lVJRַ'Ǔp]JxNYpx`J.ЬJt!ӘdhPo#B# I >U3[# M㷰4mtfM8xi tx[4HRD-}%D1m,*G|lY?, /4 J:3 (_]Ԩݙdc $ݚ`qvKԚ=&UCJ2)XwvjJS[Zv;éװ/7$  Fy cyaC"!g." 7 XJ.Bd [_DZCVoImmo'A潭X]@s*&{YyȊNݣqG8㏲DGB@:W>PhhnYqR*>׊rK\ -Rw{S4 {:縀2eˢ kn <-Bp9\)(Z/LX29vGuBL's"Q&o33{' Ebd֘<ːuй'>R%ё9Ю\g=) w>Z~i_Z\EN"6$*d- X>g !)?U d|Is5UH%fb4J2ot!MCm] f2uǗ<<%=8}g}- :+[^],P3\I ƪ&ktW|`V5xQ(KJ9']a!%Z 1g2+t[ W?4vmwTLj~0|!"Le&Z}n$*f7>r6+N< T ̽BȦd$x`9 6250'\E JCոy;wfƁkNuF^c9SdzX-fTmbY.w(W3,Fl5,_gWUhEMzCYPwLN\t&hk^!WOx8SʍK%qki8׹UP Cxs ̳w_ͮSüeݯߥ*;zЙ&'T#bz 2]uੳ̢D1q⤲2|`&v0Z6m_T[wU(*jB3WXzGwZ%nFܦ m9S mrqfH}4h(Xr% Q'cӷ c*5g7rUHwe# co4^@691u u9SB<)F$(ݭB }*~|ܽ5%蜬eeJ2+P,i~MU'\$ a;$W3fښىGmg5O%m|`^FR7r t!HsFjALEgFߩ&B5}qhq1N^´{3 X1҆48IDhz'ҭ@ +(t qн5i>HAG1f.z^^kG0qU]'DYeo)|!٤-}El)9ߕ;±X){4&f|1Q9ր7J3 4JY`d%3)=}?<'Sv .>ٓX-\,[A}z Ս Y^D@R- f(lFkۃ8.!C0Ks@%d`ST! 1DkNnzf@і]}zrq#wmm#59YrVrP +7pRٟP!t&}-_y}J{pwQZNszmzFcZlm{9Yo Bu\KBSj;u({\g(Ѣax`V'CF3Ž5=3q3ƚ&~Čiߛؗ cHOec39Nb T ?wOiJ̳L#x2&y;cnEPJ;` F&.UOW~ofp?mԸl8c܎*d2n!m"24䡑<Cua"Y"Fئ 3$R/+9Vgc(Ustoyd*Vpʱ@zM3f?5_ɡX q&\nC58/n*rl wb %r]:.[ѻVаlK؏Lh~S2JޤXl+u( D^9X !:@%W?r-"ס5`ؑˊDM]>NEtanLh5rS-߾פRUb/ɮ>(~!!nko13C)Ve n0F|S&L }qNqƙь>7,km{i*.{`ySh)?#G6F褄S^#t ~10~ 4}\PaB\bqzjGBXz8$ 0 뾿ţXw$QP8//,O aJ07QK~4|{sGErS_Aw sY_;~l\8w(<Sjj}nlMm9?/Pk'E믗 OhBĶJ=/$JzS}^gi-Zޚ(Jv*ce\qNR+uSo3zrj1ב|4O ]W+I{N*;O*{Q/Cp{GFgp\&H.ξ] ߫KLܤA&GɊ>:6h9<ʍRF5(VzM<8[hSTu/=VqVG[Z!SYů?sDicp_[Xs֐d-¸$HZx:ZTMp, W .բ* r&A%Korx KBa;rjfv3F1F?{uJ\k9!7 @qt[wBzɞ͵:UgӋZ4 *zc-(!--wS|wv!$d@)/kNe;32;"hKd;}\3M>`eg_]UHkCQtap{ǸQfTo62KyrlBĮηzisE8V][a4?ur-4|/}ijLЏ;2 "m2@d/ J"%Y4 WI$EL`rL exT F+h|Yq$_b*wJc45kֽ/amgiCMȤ8'\_guCm(Pbױ6D|h\AKe[ݨMIc#E!Rj>m$&Fv)f0EcԭC)D0Å ,FO{ \NUT =_sÆBIk !Y TJ6\ H R 7W0LH+]ną9D+ M_! ߐPIr2~ Hw*7z)Kjj. Xj!y?Fۆ6wS\Չ[vS@7_ˢ?l`c2sT^<$N`+ YM<%-<|Xmo)ql a!6JwpuWRݰζ_;*ɼ?(Rba7B]>WuG7vbxû$_ލ0άSx0v֍$ -Q .n$}=Wi@'!wl1mU?pDx~n^S>bTp0^G| EUVrB]P'wtU,1gτ)竚lG"nz) -Q\cMUp◸-LN3&[cKk*rz*܅37<yMl@Yd:YCdehcq w9 mn hZԸ&gCzd«+:bzʓ:W!lPV߮p!d͍R.3l^:ܑ㠾.C D==|CX<O*+NSVAqN_^2 x2]EwvhQiat: JJ_R7s )x} vW4RDCޔ0 ke'(X6EkJONa:Ɓg)\D3#1էj,mR֮i>uW(~ !{mZ+;WXG*{J3]UQJ/( d2z׺fL_4'15z VRgc[EA&S%˜{䇣6h2{@;md-hpg#YL{KK`@/}rgnBaCu] ʄwbXE|Ztc1kCw`Wn=E@i{P+L:7_7;K dldv;QMmcg^W[ ϓ?E&MWPEÏv2N&;Wzd)d֓Z&u5-8|8|GP(P Y u*sL>󢩭3(":: pu8vݱ /lL84K*$N=}5]a=U-N_%cVB:xΗ.+ PKpnhG-gɧP됬Ahu3[..[#,G4L#V^͔9k>2[?\'֙JjǨL jG<&B,|Vrcǃ= u&P>霛ZzWb#>F3eKD;y$\D_?:ney]. Y8Qg&8pK}ǧȺdteopz'`RlEWsiXXs_px, q' _JR㸑SSTWL D{N4e͵Y&P 3w|lAr%ҍǡ2놓SVXl-@6(kק85,LI1&Tdoݎj*Mm/Ž5Z؉~ǠO$ՆR/"?T@>7$ ' Țv9 ?N&t,R#H!߅Hs?.A8p{!$-:f蝸Z3ל%x "}W$њ^kZHCc/uI*w*!TU3cf:RV콪`(LlQC\$DJ(qO*Kz s&wm3P! MvSg-cQS."%W(FɪLn=ܲX%Uw74v`_uy GSl9yN Ԁu~s=ecެ * RUeˊImbK*k#\_.FFYߔ-:YNz' "+SI]\$4F̺ g?Q7+7hǜ3fYoF@B'UG62vPLa@Ÿ>mע- "'td_8jSNr; +/6.O YN{d[O PH-'n.ڇho8 v.&$&,UR!J1Q)И#"Z_P<fD ‡׭\Q[ Lh&*b'EOƙïK' %5(wDVdߌSI~e39iGO'O/<]<Q݅Q=^<%:@#4}kqX s0N9G3u%Ut30D &`i=eL%fXf=jMl0#'7[4F,^~ߓ&g`t0* {jﭹ`XN"oE]'}zTO1clИd-#@\U'aޔ 0gE̘OAuGmjrĞj* qNg2W Rۈ?A9O2M*ƭu?B!74GXs:3 ;%G䇴&Osظۼ4a)amdiڬ1zeM!;/FStw|'<$f3&nYf=X(jMt×ҷw>MK#egML0/JNWԴܠ-]'d);y6!ĤH] 5731㾕[f0Z~}3NᖀUcI *]jYh{=ŽpS'zjjÖxX!k#c2'aM>=G{ʏ L`W 㟲fX1P?`?^t7snkNt9])@3;[\㙇–X 1H<0hBS CKAxMEirϨ#@"Ѹgs޴qE!f(2&do+ "RŦ0Gb!![&fK/.eY%r)M!c&45hO`o}2bJ2;fUrr PNIau8."x% Ҋ'Nb/b^B3ȆQ @˹D1H&t  a|$ h8 }DܭCnA5>2 lږz݆ $5ニ6Nf+ OL ީP?.;Ǖ9x9|"r+& nʂX#L໐\J $1" ÝuؑC.GO65KAHМU@WSDp<=̑=h%⭃8ʪaAn ]]㾜:fv^O>I.FScM p,6*29_RR#J2KZT{%8!]{gfצfȠV+#K(׃.{cO i ޳t=>-_Jg}b!1$f'P?@mN@Lt3J]JV7Զ>yܯ7˛Hx˦Po!(?%1S\sh~p:lf5*zgߺ_qC@pu93YSTC qF=襇n/+8p!"TQ~OfUgCZH4'Ev='޻^kExid u{eП6=M}.. }*mScGHVPPy5ne`fSXK/H 8*EX^<j1?ZˡѤw3,$#tX'< n:bu|7;iRWAIE fC.e֟ M%Ӈ9'\|)LDR:';1ѺODgadJ@vqCge/fzY=h\cœ4|vh&5+N.NNqTi2.i }K39*؇}(׬wWBT.ijԃcJg\Ox0񋏹FnV%UN+aPusE5^;_Q@8ۈ9[r 9u$M y|qCZ41;&2vBZPڏ!Z+ӞVhvu00o\bPߕѵ5Bȣ׋Tb댞F`HVLc2&@G}}LO)* ˜)LVZ{] P[ZDn5 NWW2SITS0{5N(n,YFqr¹A u֟`w.^L@{#%T#AlW2[ &Yxm S( IuB8/\`*}3oUT2%N))}d#tt<1o U3CKՄK&wɮatb ,g ‰v&XMˍMwmaHɲ+\.=D"b^a^ r&PRGO> t XͩufbWr6]sfz ޛG$Dn%*;ϳiAJu'z)J%hKԥ(5֌x D^dމcrk^ɬ)[X䔐OOig)&s%䜗̭TǺC `S#G\ sz hWcFcS[rs&޲k᜜e4z5MÓؑ%y9]u`bY삤xrKۭ4R1?Qp[~jhYʂaL~JO$2)ZPAVrW?pu@Ds.i 5 lŲL9#̸t ,i pN|*#>Jfȷج_Ҕ,(Z-P6i:|iİӳLCeNĀVgR:8t׵Ϥ ٧W螗NgГiG̨y< |:@nFt78Zy6 ᷍l>pBi< YqZݰoP#L6qQ{G4{eNןM}i*#ef&CsB}%HɛIRvyWG}A,t聺s5|-`-Oe(%d/lBQ -%V[QN唀x+)g/ߴ(XvY*g`+yMH;I{c,*e٘VFc%MsM~yl0~T' ݬԭ)e$堆lm3ɷQjF7Խ]ď UXYXȄ5@XǵD3{>4*55;`yl3S~;"Kf45#aLtbv_#V3$j383=+}L\fX'F^2@)6L0I|T i^4=J 3Siq+c9EY?s,;7 f-2ch%L$Lj.ndWͿPCb\%Qon$VhD2Ή6 +>D0ę,] #$~R=Wqq|]ȹb| CO =Ӷk$(z! $pQ㡵#:Ľg}-+}$kL:oz b|̟wQIYHۙ_2D6K+tҘg㒲o+ <4=)&x<y0AR~:GC1"{(,#MS{D_k=4c<ͮ@ 5lM/-պd^ґf?8OJEe?CdrGHP@^6a%G?{JSTqݞmpav'fV֩RNj!RGPK,&&9,HFN>%9OxaSn.a Nj\ͅڀx8E&+1NR-`Y)0znR=U6 ]7%y{{R"y{t*wƶL' bqΚ1%#J+oY ~'#yƖ4qJSJHo7z?1)ogC`7oS$=cADWXR 9 ?b-SZU' *ں7K{>}$&˻nNV0b;¦2Y K%I^G uenp7gu<`䡲oP؍GՉAv7_v(Ε*_zwyX'+qA0W}J<²h֍fq+%DPO&ٸk{! m'Ryh8ڬx,]όv·x!dfhA[3N1WSd(/PED;gz]eUa@j,%hE}m~5N6U| E@|+Dg_I9:-srX9ۊ?m!ۛc1 vp܌i]y{K- `n^D| DʻjDR6E%K)*k [b؇(ld hdɍM1,}>#urT ^wHX̪o /8;zG2>LztyGaK] >diBU,M<6>ՎڽRg@Oo1{[=B_!0\A(4gc"NE& I 19@lx/ExطiX90 Lj #H&1 h$E%̯u9[G]9yjW + k| @N #8X ꀮC%Jֿ2y^*4 /1Fc գ(+;%lRۿ}B8V| GW )"䤻@mu.ho|5~m8(ByuS&=MbzdQPT{\ɽޡx8K j̾Â5; QO Xn7MkDtKv,F1:6I;%y]Xh[KdYv}M T'v6ui3v'Cl 1YOwjݧ \Trdr47}z1b _jDSݔ}5K!S{l[!ѷrSFj3^wB5?3 >,Nl{}W-~rp.6ENfAUk,G>paKmQ6b:u!3P}&Z \ 1V2`BT _HQf1ߤg!o8}N̙/xP*6i wVp>=˚d}s !?_%Ô%Ώvl( O?ZZ]8Nnٌ~a)L\HCmN5G9^M2Dz x^EpեXynd$LO,U_$7Nt.Q ͛1K4vnHCEq7F~n@5IlyJ3$cl%I6xj!D9r6 f ܴ$@k5x `z=eN,R+YFTP Aya +SJ_O@o"'lSptK|7} R,KZ(hQTEIx'idxڬCփnMzVk Pt}BQ'+#K%jq1a/6h̗. Js՛M|8?ѱnq{h"JYSک.|}^_ŃtW:f6p; qfC%BdgV1֠vۨ؃vL@bLJ-kbo.E&背RS=9؄ogw>1ncyFNB"gZߩqqj K#݄pHZq 4\Hi+hꀄMƆ=+Ѱ>^V`dB;"ei`[MG&'- *@CAN d)`,#MPβq|r_mp%~onF '$M\^bIv96eMԋ--i,$rpK8I [@|x QN&pc)X}^H6#NP~ڔdQ2}+ˏ=" sREnd?=H,j.Y˹]$6^eμWFXs.5гůਖ9Q.(Fl@{%8=%s1h :p(Un ڟwݾG"mUqOu<5P^=8=q. {x۾Y Vw Jf}XaGyF? DjfsLP*iR4y72#|1S 73HgRJćL&L U°ψH݄NtZÜD, A븠z %~լ&۟L@qn~eV~d!L7bsX&R+}42קT;sJcFA, FF0~}-*V(nbM6 wz;o='Jԅ^t 1oIU}a* b";}0az+?ܬr5s#g./i I'' -1n/l6mx[4 <P>\+tpl#0ՠvv(lqBd SDTւj O&2FDef/UeҺ..iJLt pC-O)҇m۰NѨ! Nx CeDVoG raG*al1Y/ը4Zp}7nvDsߤpt &;r*/HQ\o@8 M*h$_WXJ>U=!*̏d6u~RI o . 6Ųw> J8JbEI?,z^q2 Wl `auqbβ&9= 9zhՈ7i4U*F#i<{OSc\>i+6]PzDa`w,5k2BS*aw2jO6>d=ObB%Kṭ:@5baKU󅆞e!q=3G)"p1B3:avuU@tvȤ([UcC6P qc &O6_hUPocpBO=D9煵E\"WjBf(箼&S33"-LLT%J}= ͊g\ !iixѕnaј_IӞ7̶E!w5|=VM+\3-#fHfN ov\PڼֱU"vU6{^/SfMJh ((#"s^; ޢ̄CGbmE,yKmzDwRV<b]%5-80ڝul Lf WZ14_,P*Տm$~C#vr ޢeqG(ɷr۟61hy5d+c>ꆴ m1Q~}`+SD w,Y*{y-nuE\`unRa%'@ஹЎ9kM⦠^b6VH82+]YD MEog`H~HټBs9z}}CyZ{eӌu{dIbfi|) \z_9D fcZD;w")~Fi#5ׅv^ƉC<W,9QcMr> A]t(y @|r"l65ΰrYz(Z\UK. KfڞF >:fBԧz{iC= ̬ʼn]TQ:y=l_ Kk9Q~I٫}Tn!\vL^ G8XζjaS?HqF=j[kDgsF$ N G,2bSʫ@^x]o͸q?Z)qs{Y{Jr SI0DXv<vm KJ# d0I!歷hV[@x'U,;?rYVs?qۤ<> yq8fvɖ]H0>r}b0}6@ĸ#Eև1ԌaPB>^z:>|BPP.'*I8Z=B E&>wd6c481Xu3G bȬyw1QMf >(0܏kgfaǽkV"Йl蛎vDq~4[Ʊj[u_/Fg8Y"TFec-aG?rև -"%Lj!b|+ⅰ7/a-u{.ۄ¡ يö<*r+j_ "h&pL U"h̃TD kg흱z뭘b Ko(H5ߌZy <qqMWnk5N._1K#Xκ?CJ C?g$,\/'E'7$8B'( |B0˯ ׼lW 5ss‹=leȞyٗ lG䶷xVKA[%9_;߷ܮvww,HRflZ;MzC9ja6}M$w1v$pXGA-NwjR*s-M5<~͎ o<PUrm:nuO[饌,^,ۃ0O: 8TRvdf|(D"pf M0i{e&O컨S=kXI"p-o9z__ _ s"hPd Й ;S]ɿ_ XbKR塴b fm]gm"Y:rALSxq r;%w^H]:Dz_I;NOSiQ-:gKJ+F'$&2I,ZL.! *m><+ ?~r5Ɨ*db Yt[{#麣)a$g1dL6&꓈@59!L75yc@Xh΢n ӓid&VBO._3O[pgz w,*045G0 Ta(:B5e/xUoSPBi}׵XĎ^Y#͝Mw=z  rp>տvhXIll˭Z !ŀ#zwEshgYm=ޢj%uғJ_/RamN(*oV)BrjRf5/DBʡE,ITsUO9|?85ʷQ|QBMp%D8-6?HI )n4L )ۖy%{ĕX^]g#ԻM1:`6H ` %p|]1y)' Ɍ2sE^D3%,:=Q<Z?D̝!y3CiD,[(dS&VW%3YXMəh䍱6~X-8z4{m7dU^ȧ&uԞ ",,`Qюj~de͔zc:w!\כ;YIn&* ֗0) yI}9Kaf)sPOӼlV&|AҭtRW {4}~L uj\0ѯ́ŁT3mqN&B| gMMQ@hcu8NA3kXh`E9)_hņbP'2-h_tJgGrRh'G"oZװC4y!z,/9[=f4,O_$} 0ɝ K.к@vjGP(Bu^4S"L}-S*Ոe=}ԦI@"ȸ Dqę"1U҂m̏mSlZ!V׋鄴D~F,AX +% NȠP/:) Qh44 4T>Ev6MYS?D6!'ş`DTWpD'x= {JwO4 Wj$0I2崓V4C)erɶn–x魖zPo*[(@um>B]@ЯGeÅEb?+h) jda!fS^ eͨzF Pw*Xw{!|JD2ʦ8_cQfJoRMI{u/WB]1R G6sa&Qh>vu=]XM Ckl}oEN?Ņ/'&s0 ~.āzYE&nЫc/N9kCE8e"* ["|=9-;NێUX}5nFiAbj!n#=ŀÊfnynshCryQ^7xC#\'-"Jɇx4yxߍ3OəýߌD풍8ѺmE : 4"J^:"`ǰ΂Lv|;r2!j!}!?lzC9"+dZW$= QkJGd aJ0&~/&?>M^8YeZv~XN{``ޭ #H3CjC/{c5Z?-5ܵL\iTj9jǒN,h8Ac@xN>S67';u)a{wSdao&%vGu9V%pude( ^O3Ë.Vz>ǝn@돤hyB K 7(&dTuPk gcڱsDBlKLBEtnUC.8IU\VK>H4jfUFw"@ɨF7qy%,p:50,maI^Rz 7_켉i_BSBb61,Phي%Qpc I5 i.G5b_ce=EJ{tQ"NW.zy n# QB$@[F.Z]oᑠ60Nw Mǃ~X4}ja ٴF @t %Crl˩Gu pc+T t>nUޤ6b 4dH]+w̌Yr.+sJkc8?fp}7yIˆY"2?/ !n^1d'1iA[$v 3 rԙ[EH[e`;anUh9|v f k\2^žʭ)mOl3M16e]hI3eOٕ[1W`DbquBI!j]'ôE#oc>'-;>3F7r7@ƞЁo dܭçK%W(1ʢ~DYqUpg+"㬭̝cyiU?bʂ)N>.׈]eFJa5yr G16J$#WJ28jߎMZ:K<3v9cbʱv-~Wo @M{E 0p,tZ/* mF<">h;*W~c KOU%ګ M{;!6rhueO{ƊMRP:TEvA>{PҴf|;QNxD VHow{WtR2\AJ7̡u1S&z _Ld61EhA˖i k( 6&%ciN 6 v|Xkj]Uג"j6&0˿F8VÃ?.=Oy2\\nw4(zڶPq>Ns-ˊ5h=TQWxa}ҦYt%]'n є4/A7i1(DB! u1BT0~6^]t#IrЮ/8/<3?=2G{{bwJ w)!LKX,dS;Шj_u[=ʨ@"p(VR(=4Jܗk<j m!d-_߂`Y!IptD|>yomG/Ck 5/[xɹ5$0:`/1mn-O!Zg2p[?fҟ.8Dŕ;Xj5^l>pl A.'q&g񼧼7`7 w2ھS Oo`NUݾ~<P{)%Zui 4[בNvCQLm܌JUiJXnG0llf|96Zʠ8a,9>MaNLf*gz"x5SSj\|in[¬ 84HQ^)4xp ɦ~Y UeRؔ.!<[׌VSMe7$>eh#ևh >M7@%Ua:q8<<'dJ uƑ!([-_32[rg'Gy+oTƃdj6m-؀ũ#Cߗm}cy+>Jpvzb\lt`|e˧G a2Īzb ֑{eQzdf/6 d`H8'Ij999Q?ޓ^E$wí%y3`*=>Wu(m{VoE֡az ~\]k!6)wGb~P.ܟ[Pu.@Nۿc)T[r5|96"0`j ;ՈGMLM6a~š'&53=C/:wKqEӧ)}wղ!SIp'@7{M*czך0y4m|,b?g]a uf; `;H1@{E-N$YzncOMoBX,7Ԇ$w|ڈHf4+'Zsr 4ݚTnOpJwM#ܝZ)@\vZ3%_*wrƒؤ[ O.q7J8+Ju)Z\r=/r3 RANݟ42S3E,7,.&ekP|jXtȔb^ &EI_lʹptVKi;؈S@H{])`Xv-n$E3#9 <+cf fK$m+I?% 0ET~S W<;l.:DiGa*+2RC0)ZХ9syMIywGkצ&=pQNjio$|[sZ-B*,=}({+_jmꧪ0<La2$ tB0 *. 찙6(FdFSsGl٦ 12/ەۀ<]/C.!{ozzQfD|Űֺi_KjYk.%OʆO7^r'| S'I 'Xi'$s / ի. ]=[,_]%1n>*틟ݺi)T;r3:"kc]]}-rx_`|-Ǽ'2Gn]ſ7B^`ڷ%Fꚜ" TYY&6Bt YDž\ aj`ƫ9K(8&̤`FKV^G9B$cU9z6M(Ymm ȺO2L$@y_Ip2(GW"(mӴg)0C?W1j2=RV0"2/&dkJ܁-)ή!M旉E(cZ[Q^19\n"E;uT!}rp-kjsc!\U̓Դk0G_5c~גj i-t)hZF8D"l 2Ct'vA=flVW3ݗqÎyܗ 1> "B΄qkЈL=Iot._Ov).4o~_2RbJ9wl b۷]]/RrS:VI6ku)wLw pu$W^ 3˄hCj#-(q,bZzKZ ᧐,c?{X鵧,Mb@YŋʮݐTkRxu Gof/'2BAZSJ-v. A&A8ų 0C!yȘ?Ò}tJp6,ۈDQZ 9XqBcGVNzYK3Nc24soQKġܯ{ĉ}@u,-S1+QWRߟs Buc Fkf\wpjszgցh*ӷߴ%7~cD-3Hìil^϶-ƭczuoa?$t \~Qh\GKTb 9) <~A"r:,SE C7-r4Ԍ Le/$,0JXX'Ү%q(%ON: ^Kf?1A2v17Ҩeξ;49Hkv%i7C i \MM @!Ы1.=l\ii[GZ.vG# ;$ZI_9D1_.I,p&!Kݴ~EfHtSC]DPD/U3 *InVx_)ɣv.m|c6 fj ZQ7Nor"/r":OY78(iLqSDwhL>m#Ft6)v8t SQ"2Ց'M%'RS&T-E þe \ __+rFht ? ~qu_Bx`[Y \vUB8*Knq3C =E,wS`bz҃gE4ЃRnkƒ}PN;GI+IbS2UaWO}CѠqw=+S;~;'qftSɢ`/٣fON㤲cZ"ݰMwv 0h\Ri&S d{b}Llꒂ8AEgd?h렟$B@A;Wzaw%ìwOr,=5t&*W+5 #F4PZ=x:"mGֽ|2"ұfYm$} DZnci]K;8XUd8u81 eRXh0ˠ4Wh=|ekvC8i=F@0fIձDmWuW}d灦ʴ=唾ߙ2T5jeLC+Kq>|WGrj2ғhjBփ#ՃzU}׸%Gb459y1TqNJO(.9A+"|Mߙ"aOqH&5[\{Nd2L~Ak\7t 즘ԬFwA𞻙S466JFil h;'8?,_zHWIJnplIj.uzDr O~Pl .ZX59F>+ CLQ>%4~@9 6GztFG5w#O1+%CT ?bHٯL9޺ߋD ǀ"Tb`=#JpTz"dHҟhԠ gYliSd1d.Oˬ$ip2 l~u%+`wjߍAp7>MceT*å2^S=`<5ʬffUѠ1Қ9^S] Q)QZfE<b Yi m#MMJj_ F|?LO%& u^aӓw-܍SQ*^Vzo]bSTAZ 75rjy)dY?dh!wf_S#6wW@׳ς)ggbLim8JonIVy(1S:AB#Ҏ0>HSdac S?bp27}Qf(Ap ř 6~zqś-nb5S7g_ҮTCz[ &n55P\)AE3 M!Cn>c]*p<<+Rj Xn?grR:bru'x1/9^mJ=Nm^涙>dҖ\XodN$׏؞;(y6hfpR 5%X 4Hp!r!PcZMK#m 9Aꙗ1MR7>Hmrɋo~tYݲd~Dm+NqOC6..W~%QGMU-C$>xqP3_7'+E7kE$Sj 4P?^"РExȨ\zg[w+˼&(WEO JaiQ ̛߬N=}=8L0ZRa'QO,|]i<"N'M&iF_9; &D:z\fЀ\NuģጽhCr3dRѪOk9;%(c卣fbFf+~js&دr?P XWu4 PaI̓U^ӯXj?0W %`rjzs8:PC"e}ߕb&- 6KMڢi=毗qyаO:$YeIM v"HvPD%iQV'IIoF IM i ZU =wf0 &Sm2+A芀*qtQ *𝧩sަ , ,eZr^y8S)W;Xd!Oxǩ NY̔PD3lϹg/I`ZfqN_&J`呡Ty,09s aHhO${ )@af՝GY'K{-J}:eU]rprękYoUxfR!h>r܋UJdpLz^=ͅh8,{mwU~8v]nL$;&m&B!s 1^B%&Kσ&5܎zu1B"|=o41."۬Hy[x壟1N"p"GwCٕAwkx7pWRvb,xJiD1Duz)qb>B 7[ͫRFcS:GDx+/v2pcܲ6S7` шJ**"Ā5e&#A+P)f(پ `e58fO#Mi]fW( _Q NP#m$&RC6깃]TS?ޒ`a AsU=cv ff3)P.0\,1ܠ&I?Z0wAJ- j^c)v 9 "pg&Wm`BUzy "%`wqNc dě[jǶ•.dS_]QF)]>롌[qMVva۟3E[^wWVQl,WeF.N.,AI60 \2TYܠ@Zψn^L0dEpL̉{Ȃ*4Ax<% u& M4TL4;XU99Z&͖-ՅN9 (R\'_%:f8]s,Rgm.@sxĨV< u {%2$XDxo޲Ń$9@ .)ohS0b_}̐I$RE͉“C8qqMap\+WaaM%t! }pd (*SemIb_ 7ŧ~*,&-fjsaYa};9;. |=z/}V gt\>]xnem6gM~-0mS@2z![Kh%qv_'VOIP皭 Y`1mN>,֤;1`#0L9ݑ* O*XObjf#9?T/0>|x]G98UِHS;\K'ǥsC'vJfB3x}(-=V qc ":Y렢RGiWp>r30<8wYpe.S9EuǑLjcfds¨4ߙwu Uyl ߗ91j-}=x* @9pgM*~q;z?zqS#>IEv Dpl-v! BMeWdS0DݰpbymNDgroe_iuo+1.:9U$LtQl&םNj~c8 w9B|)r}!*:`1aj؋Q ;w$:4wn콲h&qk/kh)wǝ#;28BFjDE0ߗO7xfP]PAڴ_ YRיĺSe0n#<ǫ<>-8:{жQ*SQ0&Tr|]ި+؛%-^*˱.bn=^twV\ŚOOzFk ᵳ/9[F -)۹yj,s fNT*b^oW{0 dt =vYL~ "ىՉZ\䝚dXř|ni^N?8񉏭lVnl nѱmR'NAZsOƨM/ڀ_^{: 0eeG`Pt\B c\~~j^N;kws^{1g&bd#(;YUXԜaF \uOx,&4fg두,N;_=U Ou\ТEcƳ.}.pqkє{X`#0&HXi/v֫TV oZ7AYu;xB(h|)xF- Qp.Έ7ޑ:QӀ6m*"gf^#-&)qrǑ!{OUS`na% F I- =b3nX `(:ߨmpt}8FG+1WmWt?8Cz/m'1oQw3:K00Ćd,{Ҿv1r#4CW/_b'9 t. tXO 2.]|AHa 7~2g XCS0Ȝ(.%ɦÁdmavҮZ0E?8Ug`z tu#Cyq;Y)MBM2.\QD;IS±%5~(h+!|WNMŀo= ௶Y;u;=\_RI"ɉBc][8euCT:涠aڔJm/yLS~*4Lc;"Dμzg9mM8T k#FZʪ.?Ǐ05%%FA7<A(!m6 W|b9NFkΠP@*= ڐݹYQ(TA!3 ~ J3l2^[8EߖXi-OCfٗ>i6tXa^u~Yk?~]pGI{ ?[mt"9A^bá&18#. COy{[Anvu\ea:%\Xm sow/GRp5'H ?(NntRN ŋ kS)O2d$Dż/'P &"'__frsc "CSsE77 7#Rx)5&~ e}ѻe9鮼OziywiYd^`k2 }VG{oLg+!|侅y45 hsN[ ;R HKAYyowRSlEM*L`ruL_:ao%N,Y͠ 85DŽQ@i êgT y:ol)Q&{!vQjUܭX9כi.q-.cZPUy/i"52 l<].`Y09* Mus~pӒh Q ܍iH`a/}rS_ tN2 3o,jC4z=˫B'Mo 3;WQsϞN01\6]ٳuǧۆIB*Z? ơ1뭏`ΐ_؊|cQڕEϝdW<'%%*JNaFy3KWTYHqm,JZxN:~9qLG}՟=-73Ck}>ˠ.Q6VNPfS޶O-\Yhɛ65F_ϧ#$&O{ڑ 'mz[_59ރuV>=T&(xǹ7UK.Z%m:%Jo㢹JGfR^5:}Ҽzݹ4F_A0ZnR#VZ<9Pq6R o >V<~L \ӽ*5gumtdGp>qoL/WlS8î3}߼:LN'#UbG RPu?L. 3'̟Q>.bm?`A(1JվGGI_@W85$wz(߻D3TV*P`@K3At33Bmi!ZE ?G%FN:syH%3u'݊oBZI2-9aO5OR5ucPPeb.y8v Aۊyȅmk'D4-]$>ba.W]M]|j#n,AC6#[H?x}D"c:0fJ n|Qv0QWt^dI{HBy)gBR[_ m6HC͈%/? mI+ \KX")VSͤsr2rp'"(ܙNgnPq oAIOv]7\1rG֯|GQ0.v[Qwao7Ji$gAiX,S*|4Ow;\ܷrMPDnXcr^ӯ&?ǴkXGZ5QLɞj3=IX &ę27\J7OCX#l#Y"{+?OR88M8JwE\(3NQ|1Cè=La! |.96:*?Y@@b@NI@$~=WX~.V.Xo8o 8Ic Cd̞JW@͎*$P:usA.{K~ *=jd&̈B/ſ]϶~]@#u<9IAjcO7 Fk/y:MR0MdϜdI׌t,8#f``3q?:6|zQ;OVe524?t^^،y]4 OyTLJlTKRK, ck)..Ce"WYYXP\Aҧ=Mdby26W,25bV.bۣ\pyOH*d\k`1ύYAdufzywKW|.P"O*.5z X(儽T}MXiueFWdr99~#HH 6a3Q! S+CSLtBy brTo9А}Wt{~{qvG)Kij#cjiHNp*l]M@@^8%AVaaVD|{0ɿc顝h\ȎvP[0-r5,#l_3ϛ {|c{cQwE+ $>)`Okmn*A:.EuA_FJbr1!P Ր b؀V{B09ڶI}Zm>Kg@ íV^b<yӲV4ҧQ^sI?Gs,$ph_m*:~>*6oXR#8A%І"Q5@m̎Ľ2_slQG.-owm6Yat:JMLGO^IM6Tak+~zݻ M̧>03_-aR'_cC wTUm..$A1i# &B6&X&kB(~jgbWM r-3<8P K~ƳO^RlMw-17&z+uGU2]R" u1ɛZ'lFA1=AI:Ry3Sk= s>D06S1}WcmDv1gh0#:ЖraK/mNK l;\b\+h>%5Zl^@ l^WcZ-_x_H\f;C>!~DJ)vC Er##qȳlBt b]\FrARbp~jBRfx<Ui8W b#{O0SpLvA8y;C# N y_ ZI/iӌ ejj [p\m MƮE9dYZX Jjn)²=/wY{0iq7pKKJ&eTL'j0( XSSk]u-,:vS䪠,yt'QH&͕擝<sIutbbB+0^QqFVAÅ?ɢیe[3R Hw(4y`͕ux2*p](0#B~: ~DE #G{{N,q z]xREˡ,e6v'fW# `N[ "`%ʪ4ldl2@n"}gۖep|Xfw"\9dDP.}&mҭ/G^4;PTI:b(c DC)e1$3K8sJϤ 5 @3 EyI>b (L j>cQA3IOMoHԦ Yw0aNAѠ:z ЅIv)r%> Ϟu*ueHq.|M&obz'LKV`Z&*\N)˓){/=:hpaj@f/[~- MIj K~Q'h=Ysuo[Qy>B%*;Aiv#w VLQrʯަ@vƺYlȀ ѕ[7_ Y=!@d oZ@_6PyڨLz64~OuڬDH̵sM'6="/`aqAFv=fmamFu7c?6rp~;}Ct\,qm$wi_ qHEB"gLn?5-Q."4ѭ Lъ~#2  䃧#R3/^rI{yp-zTvo*{s 0}cv"\蘶Q HB؄Rzۡ? n +ݡG+3iQ8E0c}.`T>V8q̱tz@[}5( RTIϕ GמF_}v4ף*2C.R,&(upR@Yy}[xY5 ;qF@w YdDiP=3wr5 P +T6~΋?4#7-ظ2å;o$mۥV)7O8^G RiA24݃`2J$LL}tJmJEP6W͐L4mXR *"O΄.9r6*sWst^aNxf6[刕v ut94ZliUmz`pՓT{N |]t8g9*_XW*d-viQJ(#BshсT=hh8&1\^RD26@S%U&-A=nZ$E;Gݑڑ@y4a^ js`;Z,s*ЧAʝh蠀q>o쑚dVf_Jw9ri 믴2.+{cH?5"tIM+cbD/fPJ/AƳxm>0ҫ&љEuV ^Izh&7Ǜ/|%Lߗ`mt@LRLߥE : bx34љu^BMsS2Ll"eP ^ g=i_>sx/g vjUN楫BmI)6du'{j80V72Rk ̚Vma(m>2vDe ,FqcW9/ !a)!Jr-l q&hZ5(pcfiZ%0i3\|hl'~-itIzRch#-uFͬ EG)CҼ飿OnPV7|5xRQj_Y9ץ=,2!1]2/<~صdi+!A.D3άXQz_XԬRk=΂H?PyM+72%UWpjp1ޭ&# ¢N_ƙ}{$_XxX D)] g.;+L4{zqMr蹃 JHgz7l75(Sv6q\ /ҹ88jTߴt{_ZQex)WmLxp$4T{<ɤS^MX+IToɳqX61O5A}RSc~DO8G)3A"y*vGCTTpC o*o_`yVh5 dbȗvƪ%h!,%E5JܻBMw[f% ˓GY L fr/H'wi-cI_<= P\q kn莨87Zʽۼ->˥r3lhr'n6Cbx5٬1, 6<aNěpZCcZ&П[@ZkbZ1wXl[ـSB.|2WA#Œz3!tIi^˞yL!+Ɓ0;D xf.Q8!sR4E;F3;kV1onO\ Xp~|eY*Wޚ s  o(:w ]X@ P ZbG)l:pvݕJ!T3qX+'DS 񅪾ΣQh<;GZU)'aӐcgٷN#L&U~0XFu|S87tht`d-bzbF!YJZB:,m@(ԭW#q'Ohbj-~L6.Eb5̇bj$z%IGՖm BNG?Vr|V!s e~J]Vt6VV9Ͽ1#x_m9f-ĺ?nSZQ5\ 7 δ³?d4b${ "ojk $צ ܨ)BslQ+!s%2)JU|۝5}%I_#C"Jl.@bQ2+Oy`_IA߻XxTϣ5/ 5 !@َU0aboeA0`բjNW^I4y Hpjh՘*X>#._'SѠ(o`z.V9+ʴL$}[E5i_?R9ij!71b9[:s,WR |vQJmx{D$),rl{mQڅwԘ7EB)\#2?Y[V[%ą0zSq`L!Q7ߤvK'aՓpACF^\54o3oig)}^6!Zs!Y#!׋2`s=:r4HнE2,CQmSUDPөu"KK=)8+Gr:2aS[̲ uޠGI+ZdRѢB#h>(i@nczW^ -˹Sz( Ptz;uݫv점Czg* 3sCtPAB, xAJĎс>E!VH,Rv>H>H6.~uhBYQds:j0]YzcImRH}X]3Ku,lcYѩq^XJϤRlHp wrbG 4}n5^ӱ"Ad;GY Qbւ>UTO0dQRDtl7Ʊjw6vaRMgL43j  (2$ģ9_gwyX[x4Kgz7̗-ƀG--oo&BL[,삭d'5JIJ2pWQg2^Ybsɫx:b$·bBuXx$zMYy|xiWSyvVM#+| @Ur5ڞeFNvL]E\kܰСyxp`1/Y31#Rj;9skr1иH+6,efc_&"W@#b*mGIJ|)adr+h4Sboc~E w%:6FA!!>*^+oJ8Wns^gh&Q ZBRF#MAlxXvU-nlky(_Zx}Ik&e uf"'>6lM,EU3-9b, Gh(bf3t?tT"5Wo&=Ovx0Z0e 5 ɟSF[ z& ՅM>m3uY:n"")}8;9Sm[:e-{`E5=]f x (Tl`x-<$^q/7yv;=]D:!fth@ w-n~/G*,^x(.~-T:߸$4Y|!rvE >xѰ$d$0a p;4r<\O?y<{W(SڊD6P^J)q~!`5uљFLY]7='$8 ~hm2~K_x`-+ S}\I+_Rˆ82^EZB3̥L.emV2!dZ9a<T1d!5,~QܤEU2LΟ8@$#hiuP`&_I!v_˩7QB q@28}F;`G[?h9f윀ёנ>Lldd._}hj3{3 UEp? \>*X70xD%,FA&#vKji㨗o'! b!ØݮZ]Aj/(OBo 1yVpUs܍KeeYp46_\ Ȋ2Ɂ? 3pCM44 0[9dxdQQ*[$S{I&$k||g3o]CҾD+\M9АP`nƮɱW U LӲf Cw)a5YAeBuQ7YxPǴ?O_c/:\;4Iby3S cWhۂF 돿\{Q5KiEZ_[ӏ_?op&s<`P4&fub; 5q!ޜfS%?N"e&1][wg{%HY%a~Xgz[ *Lk5~)E+6Q=DK99φyZd `tM`eCOlW[d*f6A"/Y5-hIgwRv#R/M`,xE 2Ŝ{Ps/a!yŠc5m4V@R:$_%Ey{Ӵߨl%W˾cRп9z Hd{5(F֖yXC*UOJQ~=\<@5蔸!cZoI%׊4*{\2"64q>d/&4)KR)9Td >M?bigEEL5xZMR-Yly$ʘOnZ`J2lPRH E@C7aAOJܚ#Y+6F6qaz}A^NyUٕ$nG(1d~'~0D;MrzF@9)~jZrCm&+[nPX*Q22[pߣn\|<ɖSof:EM i5׏jmRD1%SbPػa>ر4o_SԜŒ}/՞"hϥ)hO]rɅ4J8q+*iS⩠&>+!CyG{.6ND̈,oȇ{{pFZlWa画'#1A&'F5zU_ꘔrK(\B-0-rJ [I# dy! o1t'3L hZ;Z_ɑd$aj 虞 z$L 8T!KSh-*)ODްtm$s7?o+V:k  Ӻ榗|\55!+ڴWV0SO~ҸjyG/&@JǤѯWX r)Dp#=/q6Ql1t\'F4b:j4O zĞ"eZZkV__/ӵ~OOkG;;0U,#Ee*|ZQYE2|-^ l XÈ/upk*dj,髜mx|ۮyB5=>$vaBRTk(@xw /@iuhFS#Y}k1qͥm;A?>5@S Kʠ=6-VI* #GVG?ҤdrYf4]ٺYC ŒMvaH|Rw;6z 7x4 Z&Z} =Ǵxövo=1Vxn[%1Dp)4𹝟#JJSj j|,XduP6BA*+S,K/p0T /& Ȅz>[ہ7$sѓZySrKj;L0paaȔOせI]gHae,<8-^ 0\(=P%[YIȵPc[&Imc"xl5C:jzc2[lVvM%y^oHUPD8\,\r@ieTFȎA>gGwܚEM|{~Nsat>uίsn.d|p?^caڼ:v_hkp, Q&ʼnLVg>܋w8|hgҼ(?E'x:H˃?ۜ >!2LZ:YA[?Nm-ȟ :D(~I. u;@\R <x8q))HC(ɕg{mS$īm2Bb=n|f4}j@#ް ̅ZTyԣᛕjF>Tyy)]U`s>:N. bWؼQ !<>'F*vX@@vFi戤߀bIM*Z. 1jB% |CÈtBVJ#0; c=0 EJ7sCր\" ox*oWqO=Ee \=-c&Dy 24 #`?)@oS|a٠4ZPyړҁcd٬v/c6;%FhHjsİ4+&Y ݕR+ߓ%B;8T*fdpyM#L,ޙ@{R;/d,"ڍr>_ma2xR'Ĭ7vBZ([BlcA`Qk`Zu|*;)W6RRQƣB$Ip7DNvv& HT{7Z|4cbw<%S.ɝᛟD4Xj(;N9{kƐ[ĩGpC(S{<a~:ীg*g`sP79 k}d0PESo'ȺA Lv `V-_n]EaS` t >B{AOB$g|4 4ơR_q9\n4QfkAOig:In(ՏV%m|Y>mpΖGQ9%žC9H@8Zi,Թ1p߽gdl#=()Diu8 B ꊅfx4L0ZJ֡ !QY!_n~>7}X§dHY9-TybˀIi\ȲaiA}7kh&QR+&nڽrQ>H  lѪԶ!}t nZi%fW|HL(^XnƧ!b=]b*@c>8%/t rPEXԄh0t"~Ox<""dgd9&%=륞G ^ʜeȑeR_hz` VYS(LN>gȨmP"qWX3Kb(II_ɑѓ)`"4M#1r76:񰦏R# %n4z]TZV0''oI;_ܧ4j^4b=,bsUvI`m$ᵞ"i\[c\,畑=ͩ.pw S՟t,zFup+ι[65X> '`v``d ʅ2ʼ~1@(OswڅACޭJۥ-u\ rM2|-f)Y溉@5)ئZ7}vh3 : C|PE >NN0iViL( Ȑ:h@}*rsE+͵d| _J\Ǔ !=a nyws}u8G~z flj{fT%Ɩ|;]@?)͎s x[p+m)ޜm} NƸx '3TeR}eqjtl krp+W<$ͮJIœ}c>= =R7<=ds3U{fSi&Z敷E1Sc:6K,kIUb j RonJ9C/,;nH7#.Di;k`-\Bʜt_F54{]9"nwJ]ZXvXaf |R7drx|(#{):j:E_:kKIEgb#f馆%`3F<8. ~`Tl{Js_yV|bρCk~ ⡫7RgG;VӧR}dwa47ӵ%LyrUeudlRG);c3sg\zܴo:zVe4`ibk@j=ߦ@W8'\L%2ԍkfY®XIs Cc1rx:);)hdrQ՗ߙ鳸AKU#a頳!$𼔦c\EPV>CUDx"b˙]es_<*6ˡ m aE7Y"OF²NM rf4m0I3jj")?-igRO]1ٵ`Ӱ(y`BTCĿ>@jt_q.EU"b0s5ͽ׉*M ~MG x3B\H6/t["c4osߩ/sҀY^5,n1?8`V|A#>P ǒ&tPpLaob%Eu9Ń{Co΄_5:=V9cE0$Spgz/&9Zmk]=rev {ioI;>"Jc>#AXm6ȩyJQ3,&N[ږy BmvMf6V6/cjt|!cYZfE<"rcy`71(P}*CK1O;r:_n>oc{7e 7K mb([蝸΅_\%~p F+=/' o `u $Gkw<7QS--DuoM<;Jms>C.r5󮾐Y]sLLFexo+ЭPŷvI%FgCJHlA2{IĊȃ=g/fq ]4`6q(+,&6+2rJwyOhkD~VdMbI'G2RnYAcPIJXM7ۨo8{Y% ̼] n?dJJEݷN/QB3]&FED..%p0sAAbk^@S?t&i\$(w8R I6 v~3nO-Gs-+^ wjj"(R=\,N֣Q':p!׬힚E ̾S J}R#Idzj2r Fu8抜b9t1kg`JyBGf MJsnazinm{`U~h%zLᑡ4 Ǧy||CnIWvrI HB܆SM'Yhl Q?#ݞ"ý !J-v+苙t@{I YȆUiͨoipDT h7Ä,dqЗ$C3 f,;t%1u >D(6N}TK-0,<O,l^t v$谰 د2t]32ݤ'J%YN$j&X pL#7IE@hZs(tt:S:<_6l[=+&.e`VJN< ;D7hni[1Q"&]O't^ٞY R?mXj,fn"b:`其fpUЫ[]>a! _ShU7en IN]ϜAɍ-1b+W/j%Wk?V! |EDT%5PCᙶF(J Zq2}ɰ擠+QKcp-ͻA;SwWD+J|luEz19=ν!5b06Fu۟gIL[vT41t!wZItvg}k4\haͫT5ws\/&O,2ɾ/^JYԓ;==@#`:93Qޓ <.PhJhCIHNR)Kp!Bݯ(dt|jڡ2OgIYۛqEb Azns߼Y5sy0Me ԔfWm.-Mf*Dj\v*>M!j c|VJCFe%L|S~6I|NwTeǻX'Kax^ 9:bK@[Q}].%Vrɸ e0%(|ZP@b;aQaѾ{ihc-*|N$'\ >Aވ1|wqv }/ȱ_3%4d*͈z!E.)QP%P@H~G(twW:])_yK f]ITgBB3~v&M˫Ƶ͠g~Q4U[ñzc6зpE?5f!S4\p\Fay? I5rvjR>w ٦~jD}h/z.ZzU/!D!M]sjU3R^+q|.Q2AtMBm)ha }<wyJ̤ 9/17pa.y'ЎDhUi?̂JT۴uJVG}5?0y[ݪԊ*P3I#bgq^h;a>ntK 9 rbN4$iDRKP`I E與,>&p!uZUUP Y0нvg1SQ4 J\anYLWތ{]3uu9!Mz_¸7xn(-Q& 'O$ʈ EϹLSw>,6^eMС4E:ej[1J{?GA`x~;-%Mk{[՘iK| ?JU(6x gtϸ_[`StKq9ߡ])aijyTv.7‘P 1E[R|ǽXU}0(3iOS~ ɚ@7f;>f׶r%kdPF!9phgPWYM#y O\F=*MH3b2g #0[zZQZm|0;u\u KTcخ ҉Hk,ُ͕^j'RJ@0fc).z8 '_I3(3Κl Wf"U&d"mtq5%f;wYEc`12+l8;y#Gd̵WkԚknaNVNQkL ъ~٬L4xCpa`VYR'2$Prk% u$ʳw>~ΎR).\PG b ACc ;xb~j?Wy3F{Uo̐gs"޶fLjAI5ڎtRhXe>J+ȱx'Y_|Z607O<F2 ~pH>YLbYE ȇv S!*agEǟNQ^d/)!pBKW8?ҬKg?􎅏B6uKF޾jNYU5& >9gtH^2k>DoX4 ="*b%i[MB?BD|_cz}QrMq̭@aZ tO2J6|[X_;O!"D_eT){IdhI}a=ugS2o8/ mvQ~$vBbʕ}7MK5\D']~f[hRIh"=tƄjms8%JdV2PqT%.E! dUvaX6֔ 9~kml;9u[[:ҡ '0@'$ M#so<-HK3rK%@q F?t$1FݚvTlٹce=oSs|US^ Bqhj$i-b"i/*i`Z i@i9KMEco bi-<(T1׭0dpE@377ԗqIVLM}KF+xג P($cAz[\s Qs!]x_\SQ\3lHd?+Xr2NHNG(Kyv@6`Ք3;1*Ct6Ueq9VX?ɾ=!肀Y|Iw%nIUX>ɕ'4_= 2Dkli3ymWsJJ(֥j:;K7=^]KqUfNVRȮ"hR hDvBu Ș3$t"ЬΨ.6O,fV)M0k+VgYV$J*щױX%Q1@s9d僄I"!N (vv^q3;J+P+AWo=%f?%Tdz1<뇽|xhGۙxVYNqlB_ŷP~$my"bﴒKX=˕ek\>=YI04C]92G?W1>k3őftX?M*r\d²^f x  R9yH6.gk{@d;h ˂ނ&>QJ0G?rGfKDhu{}%}f 3tjlΪ,F3AGBk{.+aTR l& W=ObxWn2gA6W\W7i_Wj 0Aw0DnkX(UrқJq/(1bgtTU8q7""A|ăwPWMNc[MLg+) ܀ r*c;?RPk5I+`R'hZVfe|7cݴZ ®Q^Х#hGv؛ֱ̍Ntu`ɀ.v(fh KȦ<(Nɔa`0% pBӰ_EW=ͪa43Qp#rkuL:QԄdcTuhr`=[@}!8|f$ƍ6.MjH\O~/+OD 4d$?'g`(L/jX1YW ge2S8Z[IN,WowEq0Dtj85X96Q \l];qW Ntq|Cc[be}G}7qrD On & kʑ⼭X%) RZPMۏʳ[HtKRəj{SGzNR0,h+$T8JLh ;6# ZWv S~C%  ?bayU8l\?eyF(/= oZTHZpmܵ~oa}Gi]j*S=nQ)-]ʆQQS+/9y%I ^رdHTkt-ockĘ[d N6G'gݏ*H֘w~(op@Ϝ+\ "}*ފg,]%,w$x ӿ}B'Y'hK5no:r̷&4^ɡlT'r˜/nrQa_&~.6y]X&kWbe{@{evt$ 7J͇P :?2~%5NGZkwGqKOԕDt̖i{gm+8Kjp.XѪ9^(ߋV׌0Av3\Ak4ոr@F8J{Ʌ36=BK^qRdJLF(ݔUq nV04r2R` W0D4rY5*;p5]r=߃uva4u @zص Y .픰a8风n6GZrN8@po7u1p*f7/mz^㸁ƻog~x\IBUJEvF7Qx%b)}Aq[ /!urI5=tEY߫}Nx$XpB+ڔtLyŇLvvyh = R$g'lq@a9[fR*.JԤPQ. 7_3jKc餉8̟9k3PF]:_j!?g`f5|؄)ChLFQne ^b͖f}**#U#Kpa>45O[l;vٹk?0|Ē}g+ uc8S[PnRj<7Fi-QB460{^劣lsX[mC*"ڌ X79^!2U3/QՉO3c =50;Qk@Tn3Z@ A[~GoB=fpKV{[a +X:v:yVݽF$Q4rE.@lh: x ȡӝ*GVvG>.ptEZ?+W5y<36NgPqrfhkXpy[Ɵ̙SaĘ^BS+\PcNҁԺXyq<Np=p:N2>/lnǏ# Ԍڠ+sSFz&+yM@/@A6lfO -٥6=&Z qQNk_ cGa ;5tjT-Gm.B SuUMM!~s 5*_VEe`19ȼ4` bds AI4Fb"9~JNY# F#&܄&be]QUdV ^ަo)ׄIbH?\&JX?1 5lS)-i$ej bm~o aٳ HoۻV/|EAeu%Q15P9ff4-2Kfpߨ\n ]"Gbsxj#1UHϨNiRʹZ)=oeu R2^ Aymo3~4JE0P:v(cM׸2--7,gUHrIH,P0X lLUypna(T/STCq OcD]G" TyϛkSWlCnꬱ4ATAb*s4ŦtJ2,\iYḁܜ%-cMcd-h *^=!"IZL%W^`H~A'O0`тXrInۯ&ͰPRi@2 >tx#ZHẄ́ڕbQ}q\N_2oyiZ&k⊆ r&&D>Y5xT֕^- 794VWoc *]fxcrJ&CIzn|1`< 7~r6nό7ͥ*˞tegսꜣ˱T ĕ0k;.TOc?_y$13i/Tjey8g4ظ/RFp(Yf>}2wY\ـ엳}v`1,_az% 7(+"x)4ȖIav<LXV?`I~+%R^rfe ؐxeh1X;W%(e, f7\Qǿؤym3j3P3"`n-'0]olC3n*al ms^u9VR1ݠ~`e~[ |hm<=OTIyj߫pe ABa-F򶮂Bt6z_{Vqn7%DPd<RNيZxcU^!cM} tm `h٪? `wJOKB֑ .y2lPV0#Kp)j h+t9f׎̱fs~ʅ&ߐZPQyRa[k. wL>g +{: *N 3`zpD?h0r"Y S(ɔKTJVm=Fq|t1fæ}+$hz䎉mW^GkPꅹ{Tl@A-R+FNxӯu0﹢>9MI/-9k2h)o{Vԁ2zX&`.%]l6c]s ywOl7x|{۞a+0VZh |" Ɗg5d Hͦ]q_JΡl=(^I̪~A[.T8 9~1$*Bζw ɲ_I sP];FA+ˤকCX (vs0`@!&^H("|^򀥒-}?[m|ΘWK50 ]}Hڜ SƼWӥp^]-Jtn {i<\ώ)J~v-7iH --jQ!%;%e)Pݟ /. 3+0:hiR_y0tdg+QNcP,D# ;~ '1[ܜ9]/:ć6%m'ΩP"7XVP/~6MM;C JHvUBkݚ.8-C.h=mxg= _l|)O4].F<(wCp&Xuߘ{r$vvEOo*ިLR~3d5!@6MEgHkueD0lD .LF/83T+zw5Q?&-R ̯M xPnȚ<~nODv?8MJ@h%MxhSq4-zy~ϦiT|{h HZBM'NMaV$}hpd،CģiZSotyhdIC!?5;kbSV inEYq (7^M_~}^GܓxB* c}>C| $D9-FȖr.`vtE ; Fl4*?IqUi f|q磳=S$<Pa V2k8/;}3 QwhI}}:kF7;T}s": /I* 8I#) i2hSXWixy*ʏ$lO뻚ē`@7I;Eu.IJgWQcJYE}˛FO3 <0 ۆ ]4Hm ~Dʿ-ݑK ¶THx{8x8e:3y]{wj)\TK"+}!Y,0!DNZ4DܒO/ J*O15x%ōUB"H0/kP0,te ILfGvEyhE>UL d=S{[Ŗ='v:anh_ٱ(T-]ʉMAe!`3NwR L= 2"Of>y B_gȓ Q7eȘu4Z@j[(쾢 )B2@ӈ NRWuY og-Қ% _&()ć)N6M :ɣ݆F>ލ'mi^U/kd`51]S; uadn*!:%x{PӪS~~yi[]`T, R0LlX rL%udyC93P-7GC$~vyΖe`¢#}+M-_Q2GEEz4{dܭO}0z>5] @9j3uvn> ^|y$Y;*Gnyf\rʋPO5ŎP>n#RG.b}9,wNe0a4?zw?&,ǝ"՝LI ZA؋/mn~ȡ(8llhlz"^E!bP'q5߁4*t/BADw٧Gۥ,x-~4N"Lۥ$)^n/8^џNU'{)pcT/9Gm|$qx}J@BN@i|)ѷ0AZyG= Uewȡ:S J*tpVd0 g~qa5=v[Ɯ'Ĝ~Z8-ʸo{6#3D]piYH (Xs}u=ʅvUf-pku݊@,ehɢn+B+G KE/%`Oy0o*a#vnMC P)S-"O ݙ+o2! h _L/X:tLs(W(Q!D@᜞"mO<6(GwɁQd dw LBӭzl +x63O̐6u)l  P+OAX9\RM v1k˦lg2.{@(N],5* TѼIR[`f UvzB2&3gӄ-%s?n3\ϼ<ڟ{xVX*9,Jo4v<'yZ- wE];-i-::aLe0 $i~? B^I[KZ/6+ 0zR%Y, t1rphW 2;0%N]a6&5ʢy`r9^_B~ȧӅu|Q]I >>8(|:qkS lm0n<i ?_OQqֿm$^ۆ!e-׳+唉: >H z{c5| "@EL0$0K[|Re_m Uk 6NhŒjNJDQJR6- ILw9D܅W>D^ufqig& U9';`+-v$A~}2w<ԁ5pt,w׬&HҮy"Ms$()+\]oM-d[j$ 0('wѳ* ߻p`vXޟWSΗ8I''4\>R@XC2Buqqz`)k֜h\9Kvt+@ʫ @nv!aZfrf=2{6ն~pb*X}V'7Պ=yћ]nh7-6K]>l0hkLؾ9PDp $@aݳXVBfFԻs2>h>&^U?MPļnGQNekxB/,8u/s4z3k"br& JmML5r<_.`61Q(f=}Ԑp2+ځ^Dnx XӪ8V?BBqa8kA؝ğlLpijњ{ Y2APzxTmؖ}Y@b&)5<γ(ySɅ!@4V/[WsV;fn-+d O8p*`5[ wq@x Ҧ[oxjHMpG- \̌$ *>NRfaky (^kS8Le鼍V/#{X.v09*,eh< v QTeFPNAs[ElOl^>8 CqM~XTYntLsl=v9;ݏ(\rJ ʿb"}un%}s >hK3&Zwo^&i oݵ`JXT5o+ѝ}mobI&㹸B2!`qfTvzLYvGNjWiF=Hńec0䠍_ˋoE1vcy`i]Q׺R+Fja20T7u0qD\<P~ŵEIV6A1AN&zu>z(!jND~tQ1 M3>#Ž[*v Oo[_7]Ve9+h>0&$Pptg1siW}FK/ "w}+Mg<4fOh9tYK4]OG8yKxaw F2bwlj>-ۮi Mjht*!oTʏ4RlfqXΓr zPv0Fq*l;F#aog%Ýf!5(#eWsQWFЉ:$Qcs1.ήB]&m-EZxH[ ޵j~pjnybxMhUe֕PaqaqG@F'WK&=Ƌ{_hR%1h!_d QWZ((Ie|K`3CYK QW\sg{gNx W?d.PF8N*Zm6"W)tM^=9=~ۄ"Kʖ`GxǪfѯ #ح6B"Vոc2@^ryA/ =niRCToAGg5< vjyb28,M_ =Y>XQi !S^16 kfΈV N]ƾ1܉!bfȫԧ"[#ʹ=yTD0hxgX$Cz?;@c3}ގE U-|'%`HziM H瘿KbA@|a~ J|x/V O$j9Rڿ]p%hDք񞑓t\]оDր7x4ɝ|GljT.@HT O3ޢ|ݚnxL7O2굅?'ݍцܣjĂA}]Tdy ֑Z|;/=Ϙ"z l8"dIy´e{ޣ*['s#j[?z3Yh]^񵖻%j e_r# +7 N+H!ZscyAG>ܲ.ӺU2Td$-J-n/Z v)^YpsE>>MeHYyw3ynQTqW}nSdӠQr.1pϢ|ȡ _9;N6۟I$՝sϻ 4RBN }omҚ \i݄vzь5 CpSFA\ZEn%YT#-{[ Ӷ~۵~p8JU5$tECshq 'k'`/g$k7͢6K.> }/ȵF =^49n p$Ӷ‡lDtg!a6ā8c3wrcш|:2<.J0 gHg_;LF;|H+QkjMVfc@RM'()CI.6xa,Q-mZVg/*QXN=:+d{xQ[I1IżumBpEl# m&sY娶fp6Iֵ{b$\ g+ofѨ}=tT)Xx-KPb*^wcˌ?ٹ ۜf!7(K˱xnV.|a`)r0,!Ĕ_!|`D% =fX;Ka71\knݠymwrT; e(9| S3P_Ps򔒳,l^Y>X`i~NƔ1$0۸,t cY8ǟ_f賴m],pcgs4Μ{o|҉< TnRu/$ !w(63`Hle*D Hix+(224PfH?(3Q+'2?1ϒ[aO\v1|>=zmaEszK SA[ )"z=uߟy͒]=u5hY,P.IGz:%yt]k"4]F:Ssy+/؀g]bۇx( zjʳ}S%kZ.!Qҕ$k7Yo@yt ! Ja'%,5{Vo-m;ăi |~U7f"y1Ճ7ߣPƵ 7]jPQ2;FUǚY3f؃EYԗ2MR$J7a$4V(䶋`[#CW6Ir" ,¿::Q1y DcݝcΚuͲ2Zo֐;)Yfx5G6zW:R y@ǢR6et|gv9M(b|QYS4=$L>lQXedۜ t<@3u J<~ {/}i =˖\e&1h*2_Z n[Ǝ ${2Tn=$iK0gw8`G}Y*WOrgo)j`Zao=ܖKF*n(0ݔ-XpN1uYȗ-"w'KhGj6āFyP8ab(Z>uSnݭ7.sx umVnz,ޞɮH;#2ՒnG/,B2j݅Zg/Tzl?Յv"pX]0grw+| EMoّ T\[|(#A ~g p }DRHN,u#:ETNS63|!aqyþJ"k6JҩCM^X^Bn$^WHGODF:huFTCo9[*Sr k?6mc<ȊcZC!LBQ(V4,:8 ͵5\\ܘit-A,^ݳ.Etg%x 5 k+%T*5` 86ŇۣצxcJGvnƮkݬksP An<XbeSx@Si;L_97ÿ[AZ%w~DWvR7%O5AwuM*9-=a^5psVYJ6|#8&of~zs\}SHE%Uv|I*;3Y0ҵ9lda&/{a/5 G[_KꂊXl2`R']f2| ?r(8xw2~wmi@Rj WUԣ@O_smbkzL£٭84<`1zʰK쥤Pe Hkd<.}=Z_B)FXvu5{p& 1tA>{~%oE`LŽҩ>6:\;PAK\mgԭFRIxv28J[ѽMOȹ\TTdoʸ]FW;1D)|ʊsyt- WnK.1gHJt@cXt2w:Ca6J #K:&sx7@aB]w*7o#W EE͏- Fh6XA[=7\p"Nyˋ?}C=P9EB (ԃ gCQY9BMbSX|Lk&$5wNh?V |,sK3ǰjtԐqT|V1 Me^3#Kw '*+JUUm8(%\qdk=¢V%P95Z S+Co N_ׯXzN4R~IbPG AAlg,ABJX՝&ѴM|l;mٮ\;O{&h.?uMHuI" Yv4`19#ӜO-פ+{12 4˸\%Z7@+ΐ_Yr?\_`e/=@p]==0'$ 6^RO^^Q)(ీ[WJyd -|Ϫ(oA6W)'6E-D)Na%3v{֏H)L_(-+ ѾBzBMf8_n$ }hmQ@}tVAr*8`ϊsT5l25+U=5_2931 C#F}b,k }3]e#ͪHc7{sQޔ7:ڣ3t{ߪTSpQ8oYYO$Ȥ'DHb`hi9O-gu}D %Ft,_P:vDžx-%-n3%B+(q(9f]>B)4\9:foWh᪘MC'fr::q,#~auȊ8~ȠB%I#Dh!H֕m,Ua/ڈ㇫ئ $$w͌x,j&Cg-773͋X.MsPYCc+h+5d'"bяmLn2vp8?>Ҋ51x-2bT|{rnD?t\љ:Nw8f$Pi$`#<=yɰOR)f-|`3G*aX0~;"*9J!C)jIG?D<$,I$!_ < j?8WݼE ueEP6|AV9/UQ&JQveqqPT^ 喞đ3k4*~X/ 䩭Zθ&$q?I.54L9 Րkʖ^6VpMc@r‹5I*tƁKC%1B)Ls}_>eݡmQ? P^U;5tTE+ʻ|oUt c,.J%C0f  cќ[gN/;O3T=+ta ZD̏n  BJokt ӝh6%~n;lBZNr<宭Ɓ0*~rl>PWxYD !FDxM-Mܐjf3b6.(9*/C0E 2r]QRCɍbTK5 T.7 NWi-SuZ'ƐYzܭjrD3'޵79*m7a؀x7ngG> S*/mos")Qd(2+Yԏ7tJW}[_%gsr% jX3\m 8O*Ȭs/x@'[U6;{ڻ<̃_vrR!>p|,ŖFfC`mWZ޷#>7}㤠yīw ƍf[L]-pbx.b{ɭFzn7{}m#奭Ӓ'DPe&;/d]Bܵcćyy=%g+C@AHKS{W.+Zu2d-C\Q^\/5AW?[j~ʌT:aD_t鼶$Ip' It7k<q g͇2!o]Ps鮱x~lӗ8dRx!-WG)y~͂Y<>"إ:GKT9f`D=KliQP+FfC!b%5GT,F&U gZu(-@VRmt/ `}c^. R«w+8BՑR-7MWPa>}ԛ9i_FO~{j[ :\<ژCAagE=y;F񀼧W@zA7,QTĕ*[}4wiy2 Jѥqw+UTSp.BB6>_F V 2/ αIJkPJG/w2Phȱ'̪i5xX8uPG!gӴ'nhߑϐJ&T Ǣ-8x"85(vV0 >x{BGŨ{s̳lJ[gt-D9 ^-~護 FڸTֱ|A=˹{DU)qg )@&Ũx<q˜ۚL8ݤTi0`' .)zC_r/jAM4N(EtH³ -g' _q8>yMh#KDvfwCerWN9c<љ]Sg$mqZ^^фx ͘+[V88>[nh wW5Č??L |)|V~JQ9~" F_asne&}onnzنz,[\o2A$#'ϻN's0V̀[|_b+|- `HJ(>`A1|G^w#{j)CtQ.Kl,2$1R@i1  ڪʽJ 'RYuO;qT<-9 qsLF^Qgw~=6), P׎oGɹjK`ml2nWZˤp3yPjpJÉmERl2Y2X,"ovZ fRYoAa=EͷavLbi%eVq|7Du#_+0 7?-d*I쐆%yS75Cz:WIfN=U躎:{q䱍O;g% mLS3u>L=w t7MH[N~L5os Z+:|nBaK KA|_1у'ɮ^zD%V)F͆MJBk* jxYvFteq _('|m8+gI5Ec܌%o2tKz-ga.0;!/t’2)zX=✢#%}@oe FjxŇ׿f H7IQmPS3a! "~Tpr(iJ$HhxyWC9@cq-si%Y L' Euc,NY·&!J~_yzLhvG0n$ k!`cSa[˒m!O能.xۙV:H|R-SPk 9i*Rd9BW3<{P'0?St8P.ށR-\(xwՍ&vѠ }л &p?N3 Y7~4Wr8+Re " ~1D*8>L}}-ǭH^xDj;2LMW[ h+?KYH m_kok-=Ό64fZaxI8W(f|S: q_JFX>}S:UkE_Ya^0ԓxncC)OAX.pefW#yJg4㉸qFq>+bӴS֌A GE>-h. +HWH|xw0֭6ؼ 爄vR}n3!"/Xv8j^זtW" U;̡Mz$}%^<"IB>Ce>@2" )F=OelA:j(cO8W5ҿ '֍H!7#J*s,3~ J$Y'шwl&>HURzXk+eL,NrtCRYKȁC(}0jaXϽe&, ҙÇ2$7\-{G\4Dݤ Bk)`S?#tC2 Zp:PB*<4&P[z}D !h`XImw/?tmn^CKkM\naCF[%-1xBhaQqu(%~c?_S-J^q`i仧4G3j4e`EƦ |.}.엏-7J [/(W.nm/%+(%%Qj)dړ6*~vB\TLP^؇YiNpw)wCr 4̭lB{p^ !q"7wNٕռ9{D>.En-tɾE$Ǜr:Ӌ %ƺRNmI$N4U㐧'Vni.˛Sc O:1 &kbx.;g[k0nG31l Y)e#cUƷP fP%e7Wi&0u7P\L*$Pp^(!b=/fv|le,2"/o=tI&5IX4)P/ey{e e-I?Ƅyh um @~oc$ Ocwt|7ZzsV:n[q"USQ"Y5 S{u^23'c֘ cmY$A1ij\ɐ'Vgn )  (dS'2b$ 1؏;(ĐCA׬={EoϟH8LV]ׯ&{?*^:ЧgW7%9<9nlw|61"+jvdV!CVmw0c\RBC  p QwjFS4&aQ9(W/FxqQ@|im*DJ)©v7LR':5$f؅ͱs7npxOO-hqK̛+KE6p]eO/|pPHUX: i$`o):*V3M|fY^UT\@My$):%t HOr]9Ig—u*%{rT+,zA˾ږbf US E|Ϲ>)],"h@H契DSGnE0A"DEBpWs 9y W]/Kƞp50UhۄR &)\Wq$BeB4 { -ꭁ*V˯d'Hn4ಙ/Gy#AߺU u#[e5*mi3v%RYIH]JBƵ3Y\q{M*I|2^|lX,Bmw` %Zj2ܺ@FK=_ 2 [G E.^xB<dLL(DK(u8H_ +IsC+x\nS7Ec|EYA$5P,獇}?x%[`}#Z()O?V}D /J2:0s'邭6LTT i 1oS# %K{ "ZHWӯ?3h! v&n`md4Ċ r2F_)[kFxx_u~1 }-e+nYAcM[9Xe C>p)_˷._hx3ۮWު7E; \lHsy>|G&oa ZU+1#gmp(ȿ^o+] 3feOWBkr&Vمl!FѴ5⸣"tRJd?U/UGʪfGõ-d{;( E0mkPVZ`EܭSs=Prmx\$Zo0#OLp[h2I8}\ؚzKPBt)BnIAeЭϤ;֧1mR>cGYXo:$>]6Wz5WddA9.} T<8m` E}!V9] TYOW7f&Y)D[ÇuRg#<&A_&L40=0f\{7;&M V" @hu0jmqR|kȨ'2yah@x5r(X՞/z=5CfDCzKV6ʋ09L4b/5u9jc*+[׆ 1>0l:ݚg=3 d`Tӻ%9h X?CZaII sa4h ]tl{LbZEI&R*[jv>53d`cpq+L([xSI :Gh v I =az$ z!Co^G,\*'s8Q6uBZ^Rx}~DÍBʨ[>z:Y $ue[` w#5iPvƒd8R K)ApڟkbFac^fPuA)sCP 6ذL\N>8?ja dzXޑ=ѥ_!-ǣ&2sb(' m?zeAo_(4c5vʮȱat/n!H$Ly :CuY'+B^rqY (ZrfNRT%p_0YqF09?k*sw@kb1%g WPmݣtxZ9~oa"A C7T՘7&vfOz+]+J8$uj•?2 E*߃o*!X.&?Ί]|0u.qؾ90xA$뒐g+f. 8p-j_Q@Ǧ=Mw[jY"0Gkw Àek?7 "QB)ޙ^ƒGDRأyB/Wº "ex4}%$=wҎ@+> ?܉d}ymeʡ}iV4¢)ʅx:`z@kIha /vi@mLV=Z.tɿ5lYw箬mOo4 (6DzKrtiVjD%Z஑L1mΊcH c7Ø#pjKAPT͸0<1 u2;rn%:`i zJiޟg8)CjSDչ|OҭJ&O?2~vb1钌;YA3MVUwO7f FڥwhIX׷8i~)JQt1p"xNsG~.#Wx0V`o;o8,\a^{'4Vb#t -p80s20~P(xInu?\\JW1k Dxr !}h8s3(2WF(%d&$L$1cթwn}?#J]U|Zb^ux]/SX¤$R?i$j//.5U q&DvD6$ܵT:4 RVn6t,B 0܀̔Wg钺6e9O%1TB8;Fs}[KDF鉛N*RBHtbLjچ T =RLik?rP]~\2AgoVS)_ TeYW&=L2 + Lљ ęaqs24o9 qSY K?Rio/ >N0-5as\BݶC\|2CY"qhEzm̵}EۢV!P:;6P(}2Tx kAe!; Az@RWzhl~EʉXtȩ50’5$*qDv U byS+ 1m9[1Vw=5pU@LLµI *iBJs tċT.XE/9[n^T@$Qt_V%ky(7dy+Ԭj6(VcO\ʑWp}yhy42?I]^L'"k J2rP HL_1:]=%PF"yD$ٞj!F? $UWhAI ϓ9D To}LN#a>a*J.iTH&&x ʏEp޲AWR1]{%hl7 (kcL*[EY~.E_*Z *? N;E]RMGWjpTgBʷes(d=Gy.U%/2>=J ~ [f({ĭO{*%֤7Mçx;0*FښK"@sSxF nM]Ѝ%:ԪOkxJv?lꌸ2\< B;kaš(Wo撅WH Aq Q\Tu{H¥S,N#6AgK}H`s<>H@V ʯkK~љ_Out#V&HDͱi;Yv[棃U ]MQ;m4g"$ '/D1iU'`@d 5_q;G1'CP]X(~Tejn#%7-Xq~N6̆ZmJEa^9AZ:(W[V^X1PGu/ewT-DmW7쯃+jJ;~vvfN?[/!>nKLc־uq2w1&Ǒy%w?;DU,UkӅ\=_ NT4a 3wlI yF\Rx(wd%NMaXr_ʧ$stMC$O_De`4K-JlJFcs ,kFRse}sUMr—3-CjX )YI I Wr %mYt@DaД7=wѷ!`P$&`lէ/gQ\P|Qu{+RUg /N*AI^5M>0kQ> 2/>@vw4H*/v 9\A /[AnFKޕr[,r:Pl.*N^. _s%)Xx̦.kpDJOPxJYRS̶c)ػYBo/8YcpS2]@|*+:O.L.xi GI(}Zɘ1lg7e5[?.TRGv Iu|wMhG eɔ0 3L!`PYA;O[y @ɿ( BCM0u%RTέoR~Bݾyo+T,2᭣[$UřYO8*GooH Ts[ Nn0EȀP!ְ[C>e+<) ~qd}/9sYBc%yZW@ڹ$0;9SXjS2zCQo\!KhSb~cO&q2tǏЍ%n}o 4^צ^#v[);j lM3Ty_{b ]yՙ p'4mG4"Hg_yai怴9 g:1^'s`-0 ;1 r;Nx0y*!QwE{|7W>˔fz5ǰ!E7rx"<8fɗƍX% N@O]!NAP8W:A5 pԁV !?1bʪ.W«>/@#?4WTQpGoRfi,~˝6=X60kd ]u^`4jb \bD(,vfkj"D@KMƸ$=/IdƕXKvMh{fh Ni ?뢌}:+;XyON%)划#e$kK,:.<?25V}ضEz$2"xiiftC[Y81>z{3bj =Ґ.{IF%X Ul^2آSb-+YnUҺY`nj'k̰0ۄ>`9!ѾM=-쮘Kx`z~xF;Ngv|jYtAd|rۆC=mS"fC$F"69ש HOW1fE` WxUcAsPy! ,үp ̨~^&t/:6g?"TYž~]8cٷLrrbn[1!ƺLc#ȧYŚ4{}yn8x݇q=Rz 2 `JAbaE /igцD3©1pPaDwc9AzL-u/)A-6_%q OFA ˦irTN6Tg"gx>-J3-̮H AP`Ŏ_ {Ԅ2i2id"^ҫtpk{NocSc @asALsQBM/TqF1`ze蒢IM5+&@P!xzZZF֚G% 8ڹzJ_f:a+p !Յ/HQ(yYW-L7:TS2Я1bK\yF+`ϳ+9M[Ha>ଓؕIM(耕jug& 鈳,$lij V9_h߈eZ!hS^1bpǰ%b-ny0Y70aeXWI1/ŻĠV0X(!~/sk.0Uh IJo'mS G(漿N։ j LU@ m(~$m(ycnn*2Y Niчr0)g?g/J뺑L&)+aYðBnG@G|̴`.6X^iw{Hpq_ooI`tAy=uw bth[U;KFQ?9V[ly%=n@q2Yrc96覜+Ͱl4Yw,+.o ư_02σj;ᡭrxDԱ&r1Ӌm;:DĂ  +5q{EhX&7%R z؝Cpφ2luƨL~Ȅ| LoR"ra澈Ǟ<"uX*[s l7 ѓ-j\L41ptL9KK)Ү)xcpVR쏘Xqy@6R_ 4=d#MTO&plTGWOyYĖ{/GYK ˴O.c6ѻ83C4SPx5+ J7 qͨhpT=-mBi9)dx#Qy򦊢J0WXb$Y!nAXj&4mMZ`1 h,%[CM<;-EcW b,Fak#F5m5Gx9y)@sfԯ d D1̇07Tx-3v |ZDAVCXBrPAlTNP .piNJ|"!ڽzAO5Ԫ'rE&NPmNP7S}0~"vL.yĿ/97O {t&Q"&Vł>HQڂGd4`%7]IޣR\ R,}g:ψ c$<=Z!H<Ku+FB!mW5kr04Gs[‹$vu[mA"]?bS脃!kE,^} >|=bp٘U.g"قUyXTV~h<;Ԣ4I HMҡM$ي;AGS9n:u2lNV.ZF-h9wddSeDV<5:w(#ppָk\L`qjMwnCK>@Dn_=#~]AfY]՚O@qbkzT?P$^B=6F#TU˂J'.e;xB#e,:q]zo@]M(#ap{7Q$\I^Bb$Nݡ38$ IɭPLh. 6'a~}:OCQ6^!%BQk 'P; 1~ڬ{OA?074L6^+n 6; ?8˞`nh&qv@78Whq*UfɾÓH&}! 8.A/lJKkIY QIjԀxiLh&nE9.FS3vc+{<"FVg%a$И_b] (oS|A-yP?uw]~ƽOY=VLմl& "%h9)1}7l"EB B9 $e$q=(XS A՛;;/-!}j+оxT7K.=pY<ZZD5YކKpw Y,cTS M×ⱊή\|ǀ<ʃ h:0WcnĢ]DJ@vʛ P`3Ly`Qr1}]q(s/$Y4ɓ1wJpm\]"ɟ NWǽԯlDrזxLxr/@3V˹:{,-ܬnV>TA7TX۠ຏkX3oL8rL.2H;|pW,BQWciUeg狾W_V?ԃ`A#޻DToBI`q9ߤTj&Ȋ)qM'M{N. (MKl?[VA/B@Dwj+7~qɤk kN1&ȕklg^ -[-Dy""Xw#stJny n.9*H<^Aq(pWXlv=Y^ #]^ V@qEN၁&۲>I X|yr.m%9'Kos"ZC[Obn@j˵clاN,\ n@כc1\Zė`(*2Q4/uaw $|DezR}B,RXf3:Cm Tk@ A^m-Gaۋwע/ d;0\ͽ|PqGecܯ6dH8+ cjնvpbךSCMӊV&nk ^ih)/14B׆ (o'Iݖ]R閼OF!⟊rfFBcKH2u~ *Kzƃ'yg1вH6;2HȍN\D0ѯZۜOcp/g~:Z.JwoL[Eܟ ٸ Vl'YUT9'-V?!vʁ.ބ.sza뚬da=52^9xU\'@[ =]fv{ña3dzLE[c lPzt}G\rw'x 3) L[&t=M"Wq!V,I ny;G3{65cs96(zkuxva Sܿl"呔q 2MA:TV2ve".>rSbLӅRb骥/>K+<㤓`;&b4r4?^%}"R$ G.n5 k"5{Mʢ!KaWȎelj mxuͮy[lnm@* ݲ?>^z52AÝBLUQÄjV$`w#ںqvM-#pB28VnQD##WF+}o0IWL~"腹+ %<]9n3i3r@_^ EG` zG J`=6|r}D-jN1`8 Rdauޔ?w;DWcEX9g'X#,y2$*:.?O :0&O&/idL+ ;Ierg_DRqa"rv˴7b-:Ǝ{6A- :9Di:67o BKuڜTd.tdPƃSVmD1_DHhNcS tAvHm0> ^TjuNL$.GىM͉vY!<`$u![ ?(BzAFn׽ys{IGhiYȅ3UN\$y{WZL@*)smoiiX2t"ΐΉoy(So3K+wUm&`{+%soxGK1$ hf ]9 w Fd/ȣnCUP X*\@e?W.𲦯*%N4}*&~{eCaIQ(L0TU(`V !1OѤK%HIq.,DYaxs_>m$T,U=WphQ5u}`g5դzQO[ȱ)o[IG@ƞ1NR숞# e6l^ƛb!zmEi7=;-$]$чBqH5z ON N#ãb}Da?2 o9 ojiuBԌI.# OEIC.eHJE֙x [K`e72ֱUM#h_ILyJ$2S#~+J%B 9]j1!uW x;dU ֭+'9ۤVu]?/Q1/ξإMVQYH3 #b@@u=pfs=劦NRhx^D7<*gJItfϱmD Ddy˾9{x`mwKBefU-ckuBp2Fy|8*JkBmALDL{qlk`cmDS[sp}LiJ#2:L(j {g?F}DX{2_z5E.Z)$p |M 4H:$5| P<'],wUָv8;xZ,bl8&a2ڧaRALlnA̠KmD&gM$.Slq~=T@,0.˄>χ 4gܢZRfI9ɀrA a| Ԍ(Kc@n13R[_ȨQlU[j:l"JKd'`y$خy΋jiW O RHwL{HDǾ" g=Aok"&h 3x ́L2)J 9UcQ?8[4@_7;JZ.lkfDXƓn9"k?"2ܘ|Kzm>恹6x0˃A!18 6˧Te@H 9N9RUHy^1~9"4a Oo.Dt_Aj7XDIy'y} ԑ(N9]iNkC/⩅ZucX38骬JT\pg ԨNG6K. y 02m>5d6?ĻɃgcVH-^[{emw7N.sxFQj ڥv-NrvG\KtL'+kg:7~})AumiԻǵZ4ΤN ]91zK^519TK<喝ɯf,zp7Ȭ302$ď@|#6.P(+M)4zfv_N̆qnb_,zR>{<hZc߂GNd3YU``R+AЖj(G;եQ Ыbe,W3Q5?rq緋Í'ۮ5sʏ=?YSSl_ޟ3ʲ۪WTe|Fyn;)@f[DTׇ>^l,^PEi΀r$<yEK8*ww. )Y6iߴcXZ|I%'ЀT,pONqwH0w J_dwK\M'gaZ?I&8n2Ҧ)`Ob讼D@~>>WBÊ̎>c&jߡJ8NTdl;.  .d՜ra-piiKJ)ݔ J͂.PEAzd <} zr_Y(5HAFi>v@QW^&LsQ%_Bu t$ZH;*m_U 'cQ(x=5F.}vÉ2-y.Ǭ!1$N' K(݅d&gǑ$p2 Aoz~v ZS6fHF~(m/%WS{6 {ECmv5AA7uk0['H+%SzD=ߝ| z+Es("ٌJ/M]4؜v5&U׏pR(nd脐ݜ Kr' Gg@T2AEs@S:W#M̳M1jM8l'Դu8'DIzf3|4 ` <)sPwsK3O[v VSAkvp7AWE(8ޘ GM8C%v|xݜU"Lgi"#: h$s!#wJvg䳘;hU]'Ck-fy/sg2T}͠=t1-2H9ũYJvX`vb܃b:R ϗY's.l+|DO2|x繦U G1CDpl xJŪqnɱTI\n_y i+ Eu5=NxCGݝgܑrsJ-qX&x Tx7 ].(dlqؔxD'e(7ԠN-#ݭ/{\ۤ50^Oki,ϹX[jr=oP#KŹ%u5nvcQ4@dMhsa>; A@,lx&39Jw^۹vjto+y (#J=75~ȨƠ鼠|R២6hԩstD.NBy؏Bc͊`ayF{=V櫓+ޭ]} (x ApxƤՖsݞxㆰ"p#W@Yc(o1Ԥm# B||< p !M?ADy{ >htr+j|ӵ(.~q.v<Ŀ)d-d_ m+26q@[Eb/]O}j z)MzfsWBn"uIցۊ2sKVl ?F xhs 0UO>MmQr8p$&uC:QʔVsu(΢Bxkܴ_>D{:8o:~ԽM\Dt(_f`>Hkq2F~xy)6l40&`;%ډ6CnIU(ڥĂEZQx=\Gv֝1/heO_Rφ7/$f?UIL.4~ Rc}AAF7NK A-?#*i]KߺvG.bq槊Z,KE !"GOq:\|utĉ]בxnk`^͔FUm %ӌ|[0 Z4%S[>uqG.1w=uoBX<1߮žA($^|'&eͼ:}j)cG} 繬x(cXRӷ(ƕ8D?R1˥\e 2i*l{uEz FО/Jt콌eUzYj?/`, VQ|d-S ~LXSM—(.i E)}ƅQ%I .>*=UϞJ*{:Fl5}@r*t~F6/XFݞEJ w+4ڬJ56A>C ^0Gn0?N;nZm(>dDUL76D %[D}?*˱m6i,}7}qm-< Hbm>6IJ'$i+5CS X5>NjiW'.$eֻ`{9=? 09,|YS8Ư{J(`^Awb:cRK]ߏRϴó5X+rqb-P1y'NE{-)JucZ ϫb>9Z'bSל{3Є  {b*M3oQ?+/M.I[n [(4}Dy s8 }sqC|q@?&kn[o4 liOdLsHS؅Ddp[=T1KCT^E#F=Sg;,67"RMd]Sce}1"SPW |JƼ,NK?z:jK=,U9[g |6E>S* і[~ U\`<E_Gݻ€QB% Sl~rb}R@ɺU,[>9U *5WB:2fǜQ*E= lk. EZ 01܎@bmtnKyyr(~UJ.oSÔl'9.Ʈtgܟsoޚ72i .2j %6v2Գ/3ִ:rofT(N~!&'Y؋!}RG-X `mO$Q<2&+;O{NWys^ Idٓ3!Ze7cB!dXanr\>'#krOǩ>Q/ FvU}6Tʌh4Wf<*JgR/H]` JpǍ C鱳˧pGc[,jeO ohh45ng?7ނZ0R|&y78 8>PJ=MKu)rW Vc:nd='*izlB"ގJDCagdXiLL\|Pq`whF1WJRܛؤ;㢤b+xjѹuC8`N25fb^JjI$G'rP6w &9~/6G S +/ډLx[Q=}PXPw$rɜnA'\]\d 1fͧ7}ڪ -,ӡK#hq崊=ѮN0E<ϝѝiͺFDG tf.S',# F tknIGF,4$R(@؂jWZu< r2 L;#`X~&;A=8NK4,<Mtc.PV#Ƴ5#5dbU=)k3IPXihN}IP '=Mъ&NF.1yMWfK⼧^qFl2S('GвY#Kk4B8MpWKH>Iٙ P*}i]*ٯTpXGz6ʤwɯ&^P?Z7S p \C~CBoWJVQ,^DDf"ȂcDz,<=e_IS A"`]O[osSuPF~4'm9K+ PT%XH 6QM(Yl{~O2Zq,kg)1ЌK0PDbȽ|}8m֡"4;ugsic/ՙ %awhTWmMP 2v(?f|DItKP)f~~LT6EZX-.MwmޕL^Bz*H,CMylhY33/FEO[iDgƘ!89K  $\cα'޷B<`5EbَtZo`AȅּPmo٤*M wӮX]Fs&ӹe90mWҌާ,Wzw^TL=e_KUVv3ȷ8L z ]c Y gc:0WJ2 t˜"S%0|lp=Ig#0vSffZc>R RVfH"۠|W^h2(1kF}/H'B/(z")>@B}4+|'a<|u6I4*tQFGFQݶ:u+p T>F,3 ׹>1EH/L1{)914cdp !CwƢ8:H2/Vi--lXyHNyRш+%c@;uZ5icٜ#щ[O9 g}4p; ߟMJYǀrp&6FBnOlyÒCIH ڶ8qDv<$B!$w8рcؕ:Lj7ޙFXv,!eAJ prwtqzpx$IRdAmhP,b{GT4\`"2b ĭX$Dհ@FyaV/؊KӦf@{7 . LfQM@Z?NqtdI뤽]jڥ T zf$|3ݹf"!EMcX:xN;1I&^7I)`+ڍg/HTL%lŘ^7C~;?P.huuoB|t@;djQDSR@6S0`~mm|i`:4Ge}.D:F3"uL,ϧjFU ')Ύӻm liռ .9ǁ+IRԩX\M]!x{?#{jf~/@^cEdB2KH;Z ttgYB:ڟjb*,ڠ(]ϰrteKCnܛXܧ/⠭ mRU%f4LQōGdy ,3ze_h?-.H]9g(vM+TԹLn_05hE6%7:zVA*'6`#9b o$olW7r-mOF+}+iTUN*  sDz-{ 0D`xs;ԃϾĹDK򆏕<-Fo"mPֺ`չB?R"Ae:Bii,I-8jQCZMq9teae-#ġ<~dc%G "mf`ېU;<'QhЋ%qL m;rP9^5Вv[3T{hgb@:nvK-+1V9A䦁nor):&% /Vg)or,X2+_!@ζ L"D`ԠmfhgF2M5I3MbT W4}×2oS;#=#:vش_rK쁧6AYt$Ճ Ơ&lƒAw+~yȺWG_4lc~1;rJ@yW'0i@xI&1(*6~H W韷[e=3jM= mT d75ϽAD$E>sQ>2~PͶiI\BqLpc)5p>w{Ho4ٔ@ڵgA{n3Aps}q@|yk_4sڻ c\s靜u';ە-#kNBU 6Pkl{ܹ @ U߳ebzwjdBR5g|q-*R]ӣO\{<_Jy`Rs~%s?-_]diB:͕Eݤ Ea#Z) -v2GW { .:rR'3ݼ?g6QsϏ!fKLXm++c Rl2_; hFYr?ѧuPJ[T]Pv38*/<ڦRG.IRuOm5M͞ eǥoz5~r~F0uoĤ3ʹ;׶j_:_jMp+4ЅO&XJ_-Xt~<+$X\﨩B{ 颗LWuϞ%LH'B\֦Z$ӀhROFLG?jӇ|BC{O!! Ugq˾5q^!kw+[HQQ*k(٢ C]J?BФ6.\% "H0$?ih0L r.4exWm8_D[ƃa? ώ :vyK$Wms@pamFx{nǬW qs>d1#{L34G~&褀\17%yLan@R&iD E{8ǃ] {?қ5,K)̐(%9_$1{ VM1Ȥ&siVb6/.ʕp81@7̶.Eyw.FKٷ6dmCq:cW:H7+# Ksm\^74!  z$]уE*W|}S*)OHvߚW$5vle ylŀ' jR' MtL~n`M] nc~pg.Hc$ble>scT啯k9ww/1Msg̉*\WUj(m'䄴->?p9\gc.l5v8vlߢ|[ĻLiIcGGM Nb N/ ോ44nZ혫C+ɋF|LȝQ[~ɵ adoTw#g%0!˹.2B6)p dHaR˜ҋ?1q$`-uN/݋_l#`7Ó?:R25e,ˡh6Ϥ{Zl0BN`/ܢvց'T{8"0tT6jVx =M|z c4sdhB 4/i⛍Je>$o5|햁>wAVȍW؞PBvЄ~Kcn%+~խ0G쫢VAlld*/8=z~)gM6rSɧI#tm@)L vrƴ 8Ǎ~T^oz0$&.=#,?15kc/+@a{} &vfca505-#XyI\6!"JLx/4]塵!]+;,=X<'i..,IR_k}f3@7KżҎ3Cj(^MtciSwrɳ-㵝~ &RgRY͖%"xS7QI8:Qˋؖ_ p!:nة2H37v7sV-Ѯ[lUTGJ['b1Z 4cՆ% 1ؼ#07[i2汋[d$e,ffx䪕/2]hI;b\6(搱 5WY'f~OU4_ @dsT rl? :h mF@&b} ^3-C:R}2ߋ⨅mu&Vo?\#v]'fvBr]7&O5f[j4q֟ȏIcʫE'[q[E$3%)zUOeO,'4DRy'Λ{pKc!q#XS~S+IZMoh2 u;Rk %FQޝ !+s>Q=QĚf z[D-/y.6L3qCden,;ۻt5 ;\ؔli\p$+1H6zKQX6Jn? [[krl!U']y=Q&8\ya)wJ[ `ϥF~b` r 5q4P.*ͬ7Uڅn"듰/rJ:wۄMY\+2%$t66(qK:zϒnM:A= J}F;H8?$ݸXNQBO0o !d([NѵZ>f"f+bJ$j-1_ȪFV8B(%ÍV(]U\jL|ai!=5ۯD?yrq0T 슸H| f6FF`ᴠ K0״ ql}LNHL &ʺ t W6zZs BC)$0d" /P- D-%'g[c"3Zi,&&QQ|$3!=Y{RhGD<4lĢD/{m,/U2s߀STIMa=?H՝EZWZ:QRE'$30k7\`Hel_9Q<7 sf6k<[kvmԎ}A- Ưq5`& 'eŔϔXW Q!Oʣ&xěI :Y=ǡ{0v5spa |Cmo彄zYuŸɯJAΝt:"OTrܛ{5:. !gYVP;{Fc_n^EgSnM;ѵ^BS(ojXIGNj(ُ%4,_ JޙC꾬QH_vD]ŸsôϢۅ@z4Q7= 3?@9}F(n+WGIpR:ֺBqlrpj{{UNxdFٸ障uj1IUb)ꋽSS]8QUD~ϔB5A_~g1I"%^Գ>փwM5Z:pW?#H.M~. oB'94R-\!T1yqFYy8}1, JqQDp[,I:[m3Sљi3F.1#ARfM%ǐ|RLU.=l BF&jH]+Ta%{AA阌J!B/rzx/bJ]&$$4%-2Q'- ύcw0Y"ɋyad{++le'!EwO^]L8"|& *8g|ǥ #6ڊ=QR 0Е5(qvPNe3/ɆoB4QI"tr{]#s]yX}|Mo$6Y Wn:FaLR*GPuƼJǂ|׮䣣?aԈ/1ǑM&` ؛P3|@SBBޫV{-eMb]eC7 |\ꗒX@|ݑGČ92!@T{~Wuͺ;lЦxRM_.g#ֺk>xcDv8Ǥ, x4﵆*6xS ]5lKmUdXOTw'IEOyV:?Ɩb]mN@pܱb!4CP%]NdaޭiVγֻ!w`aRlz>KO_xoA`_^Sh ھ8~3(w䄋8 Mq9. 6tH! ~;S';c>t@bBE;5ҳFT^8nf@gyVTUqd)CD;EI%sGZpgY|,$l tR砺9a_xYɬ{Ӝ f>qb\b-ɣ#կނ|=CnvmL3+ٚ%f/0uՉI'脖Һ͈L*Q{JՀr%. Do%"ر@,ƞxF#)Afśov'uƒsiD&,|8 e @bcpHIGrf?+ "rƘ.eٖËz0c _+]S&.\KSY,kzGE=W͟G 8IN=x!0f-1Ȏy E;`2WqB% (Ykx@"@K*4`k3fRS<[lk%+Si SXsVb=fVsǏDhq Pw{ѳcSV aph5a_h"v$%ߕ: o%!`y^8 8ɩ Cb%ZtZ$ >A>czsjkx\dtlѥϸ%χj!t^4?Ww:Jl7SGSc7 N%T|)K_(ƍ3*l7w9yM4Padg,8<ܜdJX}oN \ )p98'|w^(P,͛(73+dNJDO f,U$yhXw&}rSoBػ@ zc %v(>i[J;7 d7m/Y{."G<[3Uii`?*u~r3B>ʔdb(t=mVrùJjN:ꉨ"4uysIO3'։ ȵH}g^Pptݷ:蠸lCcKqOyI~GIDVzDg! ϱoB\~hMVKe= i1PEJh-rC0_z0Էh MUJ]"j 肿㚫}HClz]G|-:tB=n[_^#.s'T($VDccYx'r/z~]H:B=mѮ ȣ YHq_dTp"A_oOu2uemx@14!G1&0lR-U)C yb\ pVӿTӴJ΍886LHrHrB**7AՀ)  ^膿]>5GNw%~bklTxK2K1ᇏW_SyT,a؀dOQq!Q¼EꚆ aJfkِRռ P +bPOw*|N}&,9]֠sH |ћTi94ߛ|3@3*`ⲴdWCD.nӼ-b ^-h=}qzqju 0FLQ>!Mtp4H݉4ҨFYfFt" U#%s)TA [= ~s屳PחlocuΪ@f5NʃpA|ީ9(KNF2j~~ZQIpI>!*;vs;; J4),u:Am"۲wli.!(jm*+g1@:)#`[v哘@cmk*M&O5F(F/HMP=f5*&/ Z,u·D]Fz^%0T)c7&긭oT'&{:#\cA  ZHt_F0eS+D*ۄLFc5Lgu_tK0ӒZ)zЋ!;JDH_a}lFj;HsƎsIKW|^AKG& hcJek#^.Cl~s˄[䅆fV;cj&()8}c/Vgo嫑?"2 )̊K/'8H8G$8 OtXhmApdd X('v߈Q~)vy m16*, XûMfY#2'<.%.rB$7a >jE]\M?&]'TO]/N%m ?0b p{vi+G26ŎXnjL,uBG!)nGs޹e T=D6?<,M GSc2H/*K( Mqm(5d^[OrH[ZB$ kU]Ttc~q[6Nů0$܄:=Y\zm'N?m;+E;Y[nIdӻBFjmP9˦ jɪv4݌QޡɡTB1rWJfn.F_GS~fy,O`X^jz>"͠H@4(Rı8͍F{QVcn ،Pm":|-=<$7{\ }P gDnJG{`o9*Yi32C Õѯ%7|rY\&8F at _KBl,F/waB 4 GB:ӦT{T'`?ڈa ^Ib]3#(atYq#|̶&%IYKeĶ0{а?AA;{{R`/BW.> t]ߪsj/ I9#S~rDmC8vg!% 9~5 k~;OlL BdwP<״/Hn[]MqB 3~^y4<4NTz_f82- t{:͙;e;9Ё̩v992a^^βv&{VAb-(CUW - & S![RaRYI WGD=$%R xc!i6 #c 5 XŕJhhH8M^uD%1 ݸ`Bcya57Z Z7J#X'tfp4'O\k"Jn(;YCi 2'*"FKC\/ܚJ*)Țϙe /N{ 1W#cG·uZ޹'qggbP&/oiZhDݝ᭏~eD &[HDbsG"-zdC]ŸKL Zl&T T=6ffeb1ƇoMAx箒~UA֨4)u#)c(3ͱ-V)]MP>b7ViCә*޶$J¯^O˛2Sf3 =?>*8ԺS0[b'p&U%*<>,x@}r>@k?َEX&1jH%4d (3-{7nQ-.PkLWYv[azЗU&dlIrDA ް;!fu(_=gjwuT(/DdBd )RɶO\ kơd4$LF!9BF.+ґ  ND eC>Af_8I{^Gq"p9m>QgSr<6#*f@>X"Q d=D)⼀r =zڲ#)WokՊS"Ҋ wYO9 .'+-0OhS_j ?U@knɇFr@I@ sʏ8l8w5˄iA{O7m;>7fz09\P;"qφ83>kLBst'!2t<=6g i7.%``YA6U;pR;x6X:eK1kVה4q+l.1fn՜W<B2(;lP=p B9**NW:}ZN@x:s$dyU1o5GH_C40ƥj<.ri;ŭlm[l\GN@J`AhgYif'^Z]TT;L4m\ `ha-9=1C G0;9%sa4^C D`רHC=R.Sl3BWvf5A${4ۚ&sNeuLC~XOeyiJJe\7]|8pY6-j 0j|fS4\fs%co:3H@ pV$WuPL_\])@CbǩR&=:`ىsY*Mq00Cm'2{[tbHu$fG?-;l\ 0_/Z+KDgv3WbILZYٟ9Cbs36V;z&|i<Fbى-]C")]́~rF.Fq&.I)ǧRmhMY%Į+7u*9'8 ";?ƵY'_씂ܕ 1 {`ԘȔ=&B ce>ػ mxsJԲ##4]vR H6F+y^ bs-vL$b<l"o>reʐ-R;3csǛc@hޏ~qJ3D'}} :.Ps5hԭjܛi)䔎.^X_qþ(+YIAȋWll!]?r,su8GPE+z|_? mc\\cdssj_ggU3TT$ g=JijI4ۣnvH#C@M:ǘ΄F5XqlGEG"qѸZ˗M Nf~M>H;/xU]tx $`FFvWUX0 V9!S_s[eAs0UoUռ>/3XO0p4>[BŸrk!xd ChaVұԏfTZQziGXW}f׉$)0Jhh|sQp>9XG<ˉVQ7qa c|!_|<-<%UhNvXT a8o|CjV€x.ɝ*l<)/ף$H>/Q%l!:k7Ws_uJCD(+A$NS:(jbuP"s Wb0Qނ•b!g`yLX WRF-_"ܭv{zpTҐyPW6ޗV6ݡ͸ZYyT<wj,ȣE 5oѻ} FM?xE5֒A|8;ը$t3ahaqF1 *!:t h51>S gcًDgAϑ`#5YK/T >~]€ď qK U0.~o]7%Z[ed^t^8b6 LVq}6[2B?)T#hᡑ]c qfrn4w3H\K5t;i Bۖte~LH^s2=\9a&k|F~Z4\R:Ϋ$vrʧ BLGѩ>yvAUи|*~#8`aLPNm4^/o. #_mPQer, u chXG*,;k݆'4LXV> TYkzH/ 2Ep{le$T+sަ6F{!5Z,%|3lo1b;-gQ[v|$̢mm)x!M bSyV^?+LhP2*tNJKa)$jeB .$1er8vuw:H+~'%^if nN|/'_{9$65wHe_SցX f1{KWLM{/_rvnafsɂ'& 'Prj ~DȾS|^f$n 3Px0 =NÜIXYvۅzD G7-QdDn~{ 7t9ck4:^ 2/Y> 5p| ]<[_C ]MB{`8!B2I;J=\->DG I)bUvۄ uܭw'k)tH10Q0 6#8#dǸEi޹z*;A?k_.Pfo>gph>>A{zb>dZ" ܥ|iғRۣMaC!%.CѷbsbG@@՟2C~ϗO|y6lL;+TcENInhBtͻxO.)(AR@e~_|Nݵ&Cf-EO<5LvZ7j#D?U{GzLXUmy>,ha tO|;G;lLu1{vgߛֵ\` 8OUy^QQ-("2xpV  \D,u&z\# _լZ}ݓT'^I!+H}LJ3TPMތ=VnIPŽN1lK?1ArXM0m'py$JrreKIa#~Ãe)Ę5` #Bǰ9[RDɄe BAn|8.O}luO|sڼ/:b8 L[0޲ߖ5nX/B s>8Š`g`߅;.AwA-r54dM]&~B_l_x90eٿ,%4'FÉ3A=pgvsФ![JEb[S:Sv@Iݳ2eyHQ[}t\'D$29B[Y?׉GR#Iu߁ X(!)A[v&N0 b \+Ik1=bfُfb!.}O\"QV_f(`]s}D_Y@ZiHssɠ* T@95-;'ora}ȓ_Z;8}]-3`)Oh*Zwwo=.s?'yA 罇[a`]~> ڕ:|a $ C.qm+؜ώg-q1MKÄ^׌pPqJ@( bWE DG?ks}EX~O Q [+&UlA2)$d󎉿8Ylgs:"K`2~aÎ͐o97~)Y,톧ЍNȱF5`~7{i.?D $\W786]%h(7k ֚֗ D"-W?ܭDXMݢ;v~CplwZ;MY"?¥ P6-oLiҏU-"B'@-fiAQ[{ìN*qN\ODZ`f2<l9 )8#_7=Z=myvDT.ju{v,u)NeF:ӜpVϣ:0"OT%>E_>VbiM"|f _P+FFrhtlJH\d5I0PI2]z8dK*mWVWjˁnKtwt 4e&C\Csayjo6>,rT3ĝYф?6$7$ X2 YO-:PɂL$)P/kBDfϮty\RUvr^r:.2GſED 5Y3o_ooa@[i^wߖGF*pm1A,}J琿ۑ(UeӾ7p0 id"p(}ڃP4cĸ#=iTQoi*2rZ3DlR(%5<"hf!,b×&Y+aR'zGvTMΪBM=Gh 1/ }g1~E'/n1ۡml }ZCGg >j_ A9ZdB]Cb)oADc&^[c&>7@ i%d Ax ;{}얽?d=gh%l{v\ө'1P&a-.Og]-~ N/^˻'ç`P LnMy@]n~dZIȸ.GEڱ5M>̏yntu?~DKp67{orvp|Y xS;7Lܳi2hR?ÿXn5 tV#UMhtl#1>DϑSCxnҦՄ y G-hg~At*%`IJX|[KFIWzjL(,kԗb6[! .Q7ߞA36<(#XnPay4>Ρ'Kh܆Y"b}v!O q 596q ̖tgy]QAǃh/@0?c mC]Q? [K/*q'-Cr ܼHa5 fl T#-qZFPr͟zyQ ;A -d[5,j`>p\n0El/]Xrj{-!;`M]T9DF,xB1UovZN>1<ؕ;4$mfh.sH) D)%ʨ?D  3P&z-w^7+LtaޮFbd]כN9GO޲LTKb^VJuF8W^0-h/kg]ZE*-TS#JV^NEHi0~)-&iM~QSikҠ2,U?ZB@y\rnTtgFQ=]EXKP7 +r~\4ʜXlZxX7Y"̲Vn#J?>Cڋt@Kf{v>܉7@W%+uF7aKn4Gm{]@&8釄 ?fRC,[`NK5xsTvN 6jMAJG 8 sdF|ysf&E.i{J<×/V?; 1|'Ы`v$4}>ݞ\K34%Rֹ t@D/1Q^VI {yZBՍ*S_sC;8pP{XuNdzLdl'<:익VUren ~h3Pލ"B^`,o~fA3I7G.p۞| :.jПnT'Bx+b]M2 JB6QOElPty{s=7}MB{ȑe(Q~cGu<$ߪ+jtûSN5A6 gڶ|2갌nk ϯ4(p{#J^aas -E沏D9?1fY?^n53:T~^[מ!= JA=ޡ4(M`Tgu*Q?.rt)9B'c6.w暒į,щDgFvaHק,p'n;zt_D#$$hw@~?EIx\$_EPWBb8l9)V`cEposE0^pE%KLX% nG)dwXޣ(u'++\sI~:y_mN CӯzbjlA@*Wd!\?.9n9_I(ԝ'a?h zY]kfP"$N*#aVYDY! 3,@S ~x)g$l}6Q)Vs3t] Uo&mE4Bɂ5[ kyqt DGLa!wjT-rA飌N{޾{\q[ J'^S)#'Ikz#ɰ0m(Jq>eaU e> ;uEUiaSP ԭbɐ'dd]X{jO[L>"2Usc,YcVu$A3 "]˸͔̄biY2UO;< 0i$KcVH`#۝5,yy,pEfo2"]2Б5Uᶆ_GŠ11ͧL9_yM`saL*K!sC>!O](yy괎*Q3X{p!_"1vV9DzC,*mF5©Ջlؚ(❌GB7w`)w~3p.g/FC;z_ԅSJۏ4>:SMwi=P BԠ-`zxtN[z"sHkwb/i t(5*'-<9aud4 {Gu+yg56Dx""*p;a9^DZ6Y sYt\z^VvGdv&Q C{^sU8(cMVpUiMFxavgdjWvҞQ^r|g_EJP)Ȟ`boɕ9zmmhڗz) *w4n EkeJ~O3-l~Cx2Bc@8uc3ͥ,EրX _ɵ qF^x(W+ILЂL'-8tfl^16j5?J o)"t8tQJZmZ`b !JW~& %uρ=y^z:n*o]llTJ#fQf~qOIOO *3Tu?(h\d^ SkecR>wD9IdO8vK}s![0"ri%Ko&y0*Ybs[6 a͚:c-1Xx`4Sc 邬jFy]-+R4'˰< FP|U5QW3dUAD\bv-6<ߐ/p<9.qIV~`翅b!ƶ^{Θ%3v4'PgV^aիCݻug*P}*ٕ}2ҘѠP]\\/+mO$.ƮH+mٶ2^Z=QGq^uT6.l$2P0-Jz[Rq/}>88Bf}YO9+t0V.Ͱ Z%|9ԡyMM\%dk&u; Do *EmnVg[wvq~Ebʼn``vk]mBg?(YHhnP#oPIZeՒxH)W,nWڛʅ {^cZzw ؅,L4qFn9mέ Ndh2Ë 6 |^ p`3:L㄀֘Y^NA()L!:q3=GN:.PbFc>o  X2psx!> hO=I_Y[&`0H} p-ҒyZJqdz3PkMUۥPGz?iUA>p Q1 7xB6:n83@Ep$xUY+wsOظCQ4 ևi ߰toP52ԕ/&L{ v-ԭ31ݞ XK0V+#?Ћ|O^tu+8ea.pR*5r ^L-RH<aGS|~xPŏ`*鰌SC^)%B%_6.IًϞlnu(4DLbsv+%\'\`yg%6J|`F^%08߶`1Iqfˊ6cC3Z`u>Iqy"u 3f ƒ^}D -j̼nO˦Չr+Ъo[tFr EÐbmCݮh֝S\άSr^RFEaj5NѦ3s-Q/%`x1  rY16,w?XrkteRni/P"&!pTF:1 Y%Z+2&$f%0+|H${Am1 :HS=cñI\>t$LO20,9Y0DCqI`V/.Fb"^uȮJN2H/I"Ahv?^KFwiSM1Rz2Є:|.q309Rց[k ťOs`38Б_2 *e[RmtL%$o %S,!#lF2&靤SGWMjώ4׿aN䆒Q%Cboz3Ty3R^$yeIbB7 rz =?Dusa3%]YkԗU DÉp !=}9q/ɰQi4|0 "E1 ,퀔Rd2!қAۘ>XX4=yo^/.c|-( ANYI<՗Uf5wO^w wGH;ORy7ɧJڷ8!F*N(>T):`{$T{fڼ! P$::ZM<{+}_m \.v. }c1ֻ}>4-K{^9T]t|.UTău<;L ʮt$%?BZn Pd|taQOGHN?@? ###-mň&6pFtD0t=,eV]{Wfm5;wc%-m=rKGBqzAseS2.0_:q!  yhlԯ d4+S/=Y,>X^ (#0ao,ځ6h4 CN C9w01 > C D5l;;4x]gs +ejgv$0158&Іj&Nbf Te=(ɐ&X)n_wSҮ7N;}&҃xi_\M?\pg<4ڠ5MοRӴE Au\7Om5=TPG*޾q'z*?e%|W|Zŝ,l)v%CU䱟" |~mSE8PM=O܎v#g̍fyjSpV k}C؃`dz5# k6l.d J@A UTݥg̖ɬNIܺi'?b"#}x "iSFVj޳~Q#5!Qme1VDLÊ7Wu褫pj8[ m%<쓙 J@>^k= 8TCp2k?꤈` .xIl̄|Pa))\ TDNӠvi~x )@OqQxeBy]hy(#QEN >hx\tۣ\%M`?D{sKB% 7g eŽbO)S ߊzcFCHR(KAUwӣX>ikY3u UUn(D lHX{$)!NLHs2U[cf.Qk_&v ǃP<^[;~jrEe4Yif# A>s0x_*KTa韔 k@Ȧ kgvpۆANaw?@SdbLą-i7Pkw%n66ĨdtaMNB#M_1_ynblZ;E6D2/W ^%g|$wFmAh;cMXb69[T%8Bـ>C cdIyC{. HJa!y} L%r~YR!@9v]SFNE#kI.rq~%Z:f~[0OJξZHH)A/LƄsA`xڧ9+Xˮ@QA/EǛPiJbJzk'h )`w[[B B*O !۞ۆQ׉[Bd?m^ 4OtE60B6IÙ~ՔE۰+Ȓ~+*^JR/qZh\wf$4QD{x:IϜI ߊk3hd>Pϔ ͡5:fa,Aҧ,o}B&W /{̟gEsw֐Ɠ;+[X4lWͿ6K[Q?w~@ͤl08WaFmoxpWݮ};Nxvذ+K gYͭz/C.65>'zZ nePoA7+ : Ss$H5pTKxeϙ;l_>CDvgWOҏf/}UX}!pTh%9e-V+.Eh\- , ";:6˳S798esILAiQvج_j!99S"Sp54J*{p:e}b ئ5uN6QOQgTmzm E.=gCj!&OUrj@rhŭ?V;~YoUBY60c*Fd5"ȹ@NS>'`@?Qg,ZJPJ0En,'ħ=d'㼉(p qvgV6~vf^xt {A^j-`kdL(|xa8c$2;d%3ǬN=7tsYhq$؜My%8!ڰ_%>s(K-K|}hlevvuZJGl- :8=:R~,ݕDѬ Ve|mD^fP0'nhmuMEઝT؇AN|-=},3@_\݃sq? U_ȵC^Ɉwfpbzvŕ`W@d [wgw Om"vmcf\#lmlI_ kt`gugf҆>z#֭U0|7LID[wmG.LJz.*~cl{{ 4&nh_冪ƪ۱’[)KT//ƒ)6SeN * ɚ!шmu3LICV/k;SAzkX4'Y)$Y>ުE8**$Cl4òe%C ZFFYX~\fYtFqz>4qY]ɩ,6-fX"L i 'b*C}!M"b5(~_^jTvgd|~ oeSr.[++鼺r ^˟2*ȳ9Gj-,xO؛g//oI2{CqP&95S4)xЍJ֍+СizA֚`p;91#( ]|Q#;3Յ`HǯuXKVa^&j<. TɛR0 $1>0LN׿u-T>B$,:4'f1$KqM1c>O` 'vrp]J "7K==B"~|Eh'O+ŃːCFuTǥO 'LYiP{ʹ C x m0q}e$P8IL(({]@PmL‡?zGéh )aBblبZ''{ڔ^`Dpь'GP'2 #ԫֻ8)d>86`cDhNC|- B&odiCR/tr#~yU8 r2V+ht!p֟?Y+e81U˛I8XLGzWdϭDe!R*V#5}'5 gPH>#_^6rbl7~$&!nS$2*"}˪y+5n7ܨ9pR?Ҋ.b;0Of#&ݩI$8 ,y,-ċNM\^ `@1q+abT-B+'t\+wlf;K!Ť݂rKK᜙O<=$ EOiL\0G aaGBM5TlS"ǐe%|buVArٴ}.5-o/~ޯB;TIs%`-~o3 vyϴ}n%G2p+ VL'|wSAIB)mΒ8Z3W' `P̘}ڮ{vˬ%0#Ií`=QDS!5;G^.+%Ha(,xzyY.c' Վ4C5CY-;1ZrW9^7qb޳a}i/+I;2yQlA,Vaިg?ްb֝mqV {0?;k}E P~4" jZ*|#0x@*|@-)j_ - ܈.ώFvmz&<7v9/2~~vV< v#GO#ރG2:ɦaCr_c(qo#C4^适Ag#Ґfچ24(g GGUSa cG-h4B|Y [8S|^SN :;w~8%W7'Ϣ (XBQ &^KxQOT pNKT2}R^p(]eP.z9s&7RMwl~C"9pT5Џզwx$Tj Mh91E~rV{jE_ NJ7bRv2*BB厧ɸ9DZ,y_ԼL7YrM?PLLIuE*NZ5y^ڽ?;>hSߡ겏?f TET=i 䉣#zAp*"A@O7P==Msohih46Ep@8.qLg("| ڌՠOjsE߽|X_ߟV'=G3͇ibУГ7|)  Uc_A]T\Ԓ3`U g9ߪ<STZ ?1hB4VpMU>|^9wpE~gUE߉U8 ~ȭa[O {;>X8떫~ˉ]e8ƺJJ?w>*ElMgpSڵO_||]Es##X>PeDh6x]3gJP9hʖ^>ۙGHM#oOnḍ% W_hcC|\SEuBqAYs=򣴗1T H*<1@ 摬_]B0!&HMQQ]a˘9GIDR0nu8 Abn@ K &5kJ-UCՅQ݁+"jj_Q=7!2N>ܢ.R_{9^ԶKgo׭J@"`Kue2ys huWd'ł1H:g d[@WҁD;zȖƱ!LO2NVX^bJD{FOF2#P\$՘$3o8g!k8ㄫ +f}~ g0 9̣U#*o ce(*<ӁW0@TO2Zx|xmFCLe qfqDA"?Vק%;vxnh^6/ɳ,<Qф=$(8w&?ݗ8X5:ad.f 15Nra%|g@5DO\tϒb30sx,4. << amJ Ἤ*wN L܈=xu0 k(Lau u3նtIBoBKpZ4)⬱{z[A^ :&߉",J*DSiIOl:ځIYB8UU3<~Gg~dOB;Jǐv\Yzj4foH=ag;oH2 u gy~p4u40=C kM*4/K,o݃cIq}Y,?⬌:.1ZjiqiSZT+$S]Y]׃c~s!PWy:_q@2,!,̦u=V*j.01+J\n[VUT,gMVٙ%d#Flh"v/av<>-0R왨pZK_XUx PH&qe5ΚW5l/},!$j@RmUS *Ӊ8>O'XB~wJ9'@l8.Y >uڬ:9%N]iASSmH̑-RR/@PW{"Гp`brmp%s}\ r$alC^̚>SJCsamJ_cԯ>NvPfRs*/ř9l̯ i?GΥe6P)-n,Ih #`-S 2ɡPc7cx BT4H!~LZԨ;8QPy.|Z0sf=Lm#BؿX˹V(u'϶V]ݰ00 %W`>ݮ;$yzfl ^up`tH\6N~.i~]U|7Qjt~-v!jPiQQݣUsM[\&e: ~o15eh14rNd(Ľ:PE:P;,x}d~)< V,G(M"8Io.1+p/k\4zq|ȷH6EO!u窨BZxHC@Z@ǴLIR',VYK}ًldHwQyX? d;޴n}}z\S -Ax]H=V:;W1I_w‰[ "c+&(ePO˲s8Ms<bWWy۴XL@41Dv˔{$^^CctILe<+^t^MLTa7ݮ ˍ'C1xK15TC }ގ75QoJ:Av$t-Co@xLiQ47*6 7f!aR 5KBgK38^h6NOJ]alf{xD:bu*Bg9-dWIF~ JgYHр ͚^1gڣ,):BQ\SwݩL0N`;^ԎH߀6 fsF.ID  Y,]iS3cgG$o]F?Y-C!n`W4oOAV|tY,Hoq+ɋlNmaBsU=Twj)ՖAIo#sK&" _Zb|h-l V.UiHr\lFܒe/6m3ɥNU_hЯD{N ގi~R_ō+naR;vl^%Q1yZd&Z WHκwً˯ⅇb/`~xukF呎A Kt^ 8By\Ϋ7Oet8lofyMpqڍwҥBGNWc ,dE%P v*]O J@ׂ,$ |=۝kU} 1s ĝﮌ#2Pyx`eh)T8#T:Ӿ9\?KLH@~sHs2ouaXa @$^f-yEa5H%TB]xaWeA k"p8VN<rW`U'T 9iv\SM+߬z6j>"kO~˦D?57θݑ$9tqK>J}V+U5D[T;AxZleBIz*vh l .OПD7qD/C:jG\nW!/["_c -uC5u> {'^=?WW1)ir Q7&C2Aܭ$gg' "g +o[n>JU85kb{B xwְZr7@+|e<Ǻ4sKzJ֢vB;x)\g3 $۱]ư輮[¡Xaz+NJƪVϻ|cO zU>y bM_sA4\dyx DV-:XpYxdkminǪ:/c eЩMRqpb4;IL`sy rzoΦ sr\L6bNN&.Nz#)I? #O4cVyK p?+]+&44o!(-ZKE*l~ JH̀dsZd,C) l-:8z7UǗm_O:UX fk3:'ֲ p* 3' Cm0};Y!{"CoZʓbyN@:mpm.Un߅q.:% >Z @˩NQ| 1zW)4,i F>!+knWF;)VU_kK%R9N x{1t52sXgw^ޝ ;/4][p+vn<9/Sb6& PV 3TH[ xqF ',}Tvc|buF]AYT?wzJcʝj33Lhs@|u8äWP|EsDAxuwDK~@{$-TpЙE,O'$&9Qy;:7`Q ^Zzف^R%qcMvSY953\Xm>% _x)_q߶ sHl6P?oX`5љ rQ?;|Gu?%ʮzPB#w Nx&#&1Fܫ`iXG H Ŕ3IWlܗMw&i0zJMSz_wgN12yJuG7̸ř4D[(LJ{e\{z9\qכ  =Y"\j.{9ń~^@ZyխV_B楴>dX=Uk8Ij)C9Kx* t6Z$KFQ;pTF3y P|2?rycK r+999)9fup (- +ٝNAK@r!9N‘ASHKvbp9Kk  7 T~]WWw'>zo@YDɢo>ݩw~Z'9:#<YS\e ~\V [xjg6𣕱ڭr)VHf(jVjkBb8DP6?`M"PgLE |u+5@^{ ?1J?}g˄HxvFvZ;X# lT=%wҩ=0p!sH]6_۵]#̵ߔW"bK8'9Q S2b}e0z/'n\w8gJlo@8Rlҁ*kG)IMP -~!DwemѲd.bG@wyaAxMk]<[B E^Gdv :f ٟDf;g 沤ʯL/iH;҂[K7[3`Ev')Jh85ҰOTW^W\ۋ^a2)ؤ D|wȴZd#^65nʫ$/V`ó( Z6s4L jV =:z m `z^"3gXk TſfN{ O\y*w/d]xበ| (g*6Dn} Ë,]')bϻvO c/χ@ 0;nC)\7vXv.l%:FV@雝2KD+MOOrDg>RxCwϰjţ_fn1͝{R))^KΌ5*?z2 +e7/aV(jK­In8/s@p-!V}7å'UK0NFhC)sswI*7+u,]EC= Z@@%C0֍c d(o F1Iv|ă6* [k6nNR-Is)g{/R'zMyjt XꀃGI`1wHv8$ẖb1f4YGibP2_U0Sg :m߇17?y> 5M/pеYJ=IaB']zA>F${]@E؞R/V 4F0F%òFw+dl'HQV5Vx]ӎXMp-MX|hLA&28%̉o6Bg,ږ hw$:!syvf}}GR MZ".~}V:}ɜ6W f=<olߨOVSSKYptr冽je4Tczc咵5m~~$KW n%;F*763 @8U9%8~]=G!$U~fF KOHSV㍉Kq\ϰѢttse6shӑn{:rS;ns_Dh zCJ6!kEuB t.٠sh4gaMvsjԷhlk,@Q7[-Ca 2Ssw<0lW c%s5k}ʹo-<[Uފ\c s!T [<+|v音aph+t>'( 9w;V9,@B@(֔Tv*njwwUIs W]_R1WOeoKMV&W/M{oBD{>uMZk`D+iQo=CL4恭rʀibr)cρj:e!gY㭳ALa[E!ErʔNQ3}d~`lwm7R)pOcAH]Z+ZQ.OF{C>WϨq%`mwRψlv ڧ]X;2^T*;t7lq[pPjY^Pc%q,mH _\9^1+EknOgGF@4̯@vY|~|ϐ*cs"/`yʹUrO(t!|x%?M\0[EQ$IߛfX@T jfw#sixitjhjkfKDiJ}FWW0\2βфşe,cI)X4e E5爠<]6p'y/DuRj$E&Q_x"ss0|?Jfx H;R %>d,XOï+ i[ Kr ^or0Kһw{K$GcpЗ>w`U9t|&!VBջyo!e>ܸoxFOXT2ȮRza&~J>6vj34z/f*zU3SusM+ ;.k ?ꛌ#PwY+؎rRݗTwg;;Lȋ1)IQ;BF`nt;MHr6&f3SF+xNW1Ȍ9~`WJ˜HgF_Ve N a6''&0Ͼ|7CWid o4:*VU=A`ECd鳔7XJS~k1N@\cxԟD$he᠝Ӥ1ۙ-ly$>8 Ib߂?xcBq`7˷?ӖA81xPτZEnګcm>+` OE7|d130 Hw,-gX _v%8.t\{װj(;`z[$u%:ofa޷b|`*#'3u]y ^@n-%ώTqG pgPݟP#+wOtZ~-ȰE_*R3#H"Nlj - <ǢMZvi9e- :Y7c(AkF>(C u sج4]B1H}b9Tu" <*kb@f2O7zq:,:J Aq\w 4Vb}t2 Ā.q&t *{Tz Dʗ"]qpm9VzS=_>-L}H7Y 2Tɑ3Z:yf!*Wp>%͞罰XX`O ?\*BUíU*V") `<㹢zdVC{hE@ ! 2&Zo#X,3Kcnp*.d|L k-7`(m{ɼw+dl2Wyon֣-.#4YGQ˾tqWY٫X2)0Aug{̓ofRS;0)^K3)#Hv!y.ns=@Kw;96;Z>#O:W#'\[Szn%`-Z[uQkz5>w98%pS}k pr9;=д+s,[˰:~6տ9"^Y v͑i5)~2t b7j c.¶^Ռ,k ԯfv̢,?Yǯzvn\, *ˣIZApK"6 _2ߛqW={[vR_nO\+R`x FY%b_8}kgJR@%4@L#3t[XsAi4aƿrw$V׳IvL,S}`ur|HC43|3onӣPHl<\HLC֨O~ {qEdgQ!ׁˎ"l~>@V>[Veknv DbePgniӟ{ [%nK6l%O3-wnn#i(.LKUD6kaȷ; 5J?4 zb Ƣ銢GK%1洏A 3vڀ lj¦%펫ʼnQm|+K!E;D->]ʜZ_ٖUuSǗQ9V<^3!VT.cEqIl|[ zu-syYAU'"]7%a:WzsC鵁vb/8;k`?1O2oqLGPpRaE^R(@1X5D&< h_Ī7 zB~bnCbHxWU%3]BC~]ވ>4\1zykiޔ^(Ȭ׹ĝƃ9q>-r/ֳڄ3*+1r |fYýڐaEk`^ A95_'oV7VqK!)O {5,Ѷl$L K6SJuڻ퍌I^A?>"~(QE50X8sWTOyo~ę. 4J\Q)&U)k.zFCp\/CVxPtmozz-+fP ˃S"oٻyN *7q?pr{V;IsH!V.%>RO }PtUF: 9sL< >%E>*XJJ2ZDl' WXDȮ7oP2%4})&"%"UrH֓`{١# s8kJHrOkʷUoXT̴o6SWپ(A%/1vTcx͸qP*s[g&o֥H+0\ q$VY1U4;v=S+`@HLUdA뗉Rs(,GqpͮmMe71==O{~DXLvxBܸl#̛81r L%qDpń\'&Y켄rWꁆLj@v WF%Zؖ+ ySx,'HMHǵ> Y2g Ƨè?of<8 "aˏH]'0FoϿy`3S4+ @Rx5T ª@}iZ4Wa/XL_!)Z6T]ЇvUN EQpG\ߦK@m"95pYZJ|37{A[`56RgDA3*zXσ,XR$ֆfV?q n;?SOcFEp&جMQ%q-Hd#Q VRBΫB r7aS?d*=`ܾ\rbUZ\Ϣ\FND<\BNaNDtIe˄IT.)U' 8AgO]ݐt쵄<ͺSi{I"v!IYB2cJD?Y,p (ThL#VC?{TS;2ǃ:H} ['~7U]3A;qD!{YkeH}VlS002Hh< EILLQ Hpa}#iF,!p~0(a]Zj+v?. k!ӂE6˒&2v 7-J$\~6kM;n~O-0ݬ8y|ߙ3ԭA"P 3 -W2{'": 2$(ї'BOdplR>P|˖)T8,lfLgR;G}Zx4Hsa (UW.!D82h5+c>SpD+i9|FHW_gФ3f&tZ[ 8jƲtngl]rTQ+!h =d+~&J Z=߮! 2=¸@\ZۛENbڞD:58W'=:qHyFDڭ0LAuz RPpxZ k2O)| z9h΍GZˮW%C51۲qwOܷ&ԵZ-J!SAk {@M~ ˡ@dU{E}û te@%ߟ i5yjHАaD#))&g"A,DlWD{Jb lj?#_13XCKL iҮ@!Jz6Ь3gSJJOϑ{)]rH f= Ro $k>) yEldclxm0q*.G940(_Z8Bts9@?7I@%}Б> |Dp7ynU`f5}Q w=aAxrٳ[\aӻqw" UIlhZsz>8lj ߵWF+[LrӁԀ6 ;\\4.cZ~Xo #F r;=L2#D8'p7GYeSwrT~#Np[46)ؔ >1;3\岝h+ltqA5t2oQ@+g.=awI8aٔêPk;^I$U!mc,uccv}ZZmBN?8ʥGSɷ( v_|"yY\Ju;Vn!b"l)T9)֌u}dScF)ElU1s\Z尐>’|72W-N)kZ'=B O'_G",yo fl6Ek.4QݔƆ6e$i焢:SulsR34P 3|/rG7mӘYI+yQqvrD g. ayɮOóR­LFua,r-ۙɃF8q4(V zeQ^훸*  TUWhvYff%`;Z.si: E|NB_Pq@䨆 F^?``K0āBj)2(r1Q/P6y9 $r&T"&y9jw8 Y7-tųe?BHKvEmEX?qvH=x~@j8H@mV@Q,6D]5+@ ;;gxzB.m/F4հT %Si׷z/(, q=:f]*?w|KdV":Vsd;!vlY!up]l@,Y56nqOs94C!/{0;JhIҠf`1p`ǰ#5C F6=h{N-d'M$Nj'BZtH LȜ',ޯ ϝ:W_eFbE-A%C4ztq*u7_cMmeN8՞9:Mάv\lF4o<3~xym[r# ~gt6n%8cƞ!ſS SoUyE'y.oqP){zX$%dpUn}˄C|3A'5-8o+/ --FAY6Ʀ}ӹbO֫ ЊMܶ7r_b2!uQXY3XXXUkUcd8z:Hp"èb'uTC[}33&qmy#o1QYИKߤ3 :tF3qԓU`?`޻gԟ:[v'(j\6 춥6>P8@=p:mln_ԊЂA;}z̜JZXRZ1Ҍyvi~^!YݡvbqZq1@8ʌq ¬+*7f2hi$-J;^G:G>h%9-mhUibugdj;g^rҦ? 6/E d ;׆Y~ω*{:VM@>vo(Y6lq$\U̴0?Y%S\Jj9:PkQo#!IR%GC(/uϲ2"w}Yӆ%)Y{1\?`oUϸ_E(EA*YB$DTS J1(EllS8!~uw!fIY[gzp*jU5fm\꘢_ ^ZיqUg9;le6~pF7]@MtcOԴa'odUs\Ѐ3G3-NC3Rؑ$2V4eZHt{uDԳ] Nv8,4%9kN{qg+;?^@KtU[ܖŊra0"9U,tJQ(ǻ\F9@@0;;˒"kB, qkxX#R0z+0þ1Sw{)JݰsbnZb QŞcBJc1d+3,"DlJ)MY#4&=(V=1gN뚡+BMuJUq uH="ټi2XzZLLW^h񇊊22ZS|hDޤQ'}2Ӳ4naQ`Xoށ_!tlY`9sipV(8f:J.z6 #.76 4 QCWoT`A  8X3>6g]򏋏t~XMxbYW,xcu5/fT-XH!bwȲ ܛvH([Pkpάk:{s\:A7RkWwm$ }{oe\Yu@a8*:bl, cm5H HZxJ* 64=[ nva#aMibv⁰K3"^mlpxMl_?,-FG )S߇zeP!g2A,:Z xOzh5hg;a G 2 Iں+; 3ߵcbQ$rbMG|i?* ުCa5 Z/ SI!~AE`GX[Jt׮ TgL u\`3B!(CM\)`=e++o1LUsWTF%`oJZTZ oxb>06qj븲i'1_@D'2(vsZhl#ATϕ#Q(o{2Ta{ca[f\u P"~p=8դ.d"}ډ"2`2sŐ|1P:OSe [4v'̢W _*Ś;$U*|aϵکX/AKQ*plr-6)Ђo3f^ލ~>coKK{Q %P~YX6\Q&!;G :(Tu{cY)yU{IL&# -A-8?D(t&.ǟkLԉKg7N x!.Fm h{PP=}lt.*C3 PgsיPp9.9.ЛU !7GL7N;j<#n4{bMo=QSo"pHL(=E<rk tl!:K+)(/ԗ 4ἥʄYNȞ=ENrA4G<>&+5zMIk9 vQ C5m?4aw \PIgv:B&][FdyٖE~Yv4%(ࣩ[~Źdz.y[5< \h5iW4Y5lRD&- - LA0Tʤ? &q#||,`yth~,!N-ѡWVh!se6_+*]D0c?kl|8zE3{43;#oiџȿaIQ1{M5R%GĪowSbaRKF#ӎ`YqWb3evVx-KHy\y&upY5'ooW <:?%N|iȉ`svQ5W3qf$]na6 6 tt JD^~tJ!)O/%[,Ϥќ~ }L G1[}~`96@+F F҂geY -}&o[i3hSl6fw6)<̈zJHN{\>ai!Bzjf:>s27aE^T? \),91!6I@Zt-V&|^ݯ# 'to$R;^e=kPsCg*s:F҉3Vx0 n`ךԬ-A+ !ܶTh7MOzdxGхB;RF, / ?bW?c 6Di-Ԡ2n{⯐ti!N9xA꼐r[m;hR.^tGZaT،) t&MʘA ,׮JS[1:L1Qxq3`Po +Mi^q&M`͛'A| %ƢvyGBcZ~0Ϝ7 h6bُ-jCAOٲqo_[!ro$h<EDc`& լ&5R zAUaG[4 o50[wP'M_^vڔ.}tLZ}J)]rXK h7΂6Mk9ʊ2{aoxbsYb2G Q+fFjСG|U/ \$LG݆YngF3SYo:P st;0T@eC k#i~lIׅ}F)%1ٷThnU٪kz4l* ӶP,ia7HsR2/e>@$MMu rޖ! iI%$̌ , <ױuyieTM-80kk79dӣkat, 3|~Qogx۲º9@$;i`˾ TK{IڮQwC͂ց Ϛˑ˯|m0JXXY&-qӑ%ZR]9e@=EOdP M)WA.48 69:Ϩ_-1aPno]3T-ypg~}FamsJ`M- ؈3g"uLt]ҢƄ+9c +?e rgzX,8q}4ohнJHj[>K5Tܿf1X= w[*PY R>T^<^U:73dq8vX[lYDAYGU^-O^|u(c:6״u?-݀sOVbg\do ]'W챴)HPŞ!GyƜ7Iy_XHsQj`kK 3!LI2OKyw&omƂK']2bܵm_"x砉7{(5VxXwaLay;/)Y GGqv67])TJZWP 9;0볿ۡ@>C@zqHi&9{رi7r]#JFZZtyet[̸O;2 P>kJ[ g 9c?ݾTEՏ,}4-1g%:8rhv""9fLq5P}'h ^B|\P'7]_8)_6L*nx GTNw F]HM?Ӆ]XJNWm|r-Bghm#hrX&0%X!LN3g /i*7c.p&uXPglsLg4 ɌkBO9>mF҅-luAI%6@p>a7@]%6q}bYM}i"z'/lkh&cL{ jLwEF&\{0eN!>ICB)1ȯôt)Xn4_vLr:Kok Ɵ1g,LW?bV$CΨfQojH>,.ցL(*ǘGEA$KkJ 'hm7RD򆑺(<=[EzK$YHQ26ձً{zz!_+cY%lhEG5UL@&r磽Vw7KY4U3GW8'Ay)G|i^ie -$eA#J0)@vϡl/js΅}.ikcبq:ۻo\˼-7ʮuƈ,2CYdvכֿ^0& ζO{0]5E!mBFk'O\Nu#tr " gi_QXُgc~,-lu{^xϢ"3f0@cN=<d)J c-M rVxUMpcX >j̤'m9~Rh4VXeڄ6*71ku ={\ܫp=jƸWG+7 WQr>Ö8 $=bo^ىHxjΖw4@تMx0f\ t~(Zɣ:``݄|q^O$h =B {?9>:}B1ӱ8z|'Z-(2nƉ\%pq &TyW|XN6I3j2;Z Bg@OAƘ>sP*b(1YԓLVI8.eK*~iC xK kt3BqpaM2b'nY) 7uQk[_vIXߢ,N) ܽ`7]uFb%t K%T3eK `!)_kv1 `~~NZgsjJ)}q·bBV @YlmQI?<ƈDqN8i%t@^yV˓L9 a^$bv ۀLfvB.M"œO!لu( j8>$+$FG(s~I8,$eHGOe"A |8E8njM2Q,#[;< ęKۤ ±xJl>8?m`8fAULTG[d5X1~m!?إݕulCV䐻o!,2~k6|$a+x(hyiq:gQ6gi k"ekչךW5lsDal,s[^~?t.3,4Eo6Hb#>qꀅM"Fŷ*Nm`Zo?{빅j7xi} A|&K}*7z ؃Mz#<a67u{ڙ%[cOl٬ oF͹% ,BCQXQgDFp jmF ϧjh+zL#WaUv=."Ә^! $(@P v9rf衩2EzLkyep2H%u~1NyWoٹSh/?BPR2)`zYlkl!/tpSx;K{2gҀe q`c ;܏T"F t+U§Z6В |tر!;Чx1JVbfLv 9*nnH=4}}߷[ I0+U\D4=n@$2OkB40!zQ%4R =)mBMob!<\6JM`%R *ȥ Dn'c\=LMy\!ZMG]7 *LTڠc.n?+Am2ԌbyXI9d3F#NA늗ƹ ^3iɘ6ְcB4KQ$9ɿ85,WatH~w ;39,[lCYgG&PCwO M zsPԯ]}wdrӮo 7oj5(Em_wVDl<"D`q4FˋhlgozԪ2DT8F Ϋ`1{GC|Yy $gh"SAtGemxh93-Aı4ӊA-̵WFB9(*y-&mύ0ħ.m|pvΎIx B*, SBnfAc5QLipL5n8pjz9mX#ԯ>덣HҾ.{r1+װNguo,<<Ƃ?㡩[µx{Y!B#Bf9e +l 1 #Wl%LC2Bĝ}e S^rll㍂iGAPyMdPF;;3[TGb:nc (ظ.qP1%D{˂dN՜|]# 0) UU/Qyj{goĉ2Ўݘu(gb5zʘ{5ċcnޖHk\q*0S5$w33zJY܆? q6 X7I P5=t+FG[^ 7 (tc|N,ROTQh5 B[ i"F8N,gp {! }&罧y |`{Tѯ~4I,ոju%@N^Y<H\k\Nc>S%f>/)@-Hn\쓵ZR[L5]Ae*aoF X)S %ƨٓji3cw#7Zn<#{ >5S28!Lzߎ}D,pg:hF,tX߲ Gř輭D6OSW!e)wұӿO( QK\U:detivFUٞvvswLlsv!3YPnyB<9K(HZл{N-"<*ryj(%!'.a`߾>iJϱd=7[E{#64$"nB1+5ҁgN7ہGW-*}3*5T?Lmm)q1S߸R|:%-(J̦Xwam,h#rUn'UF N.rl;ĉKa ]BXjUc 5}zޜR'+u+z'S,:J9o3F%-n LPY;@n#VZP"q8r^<ZS|B CU85"eVǫYp݋.-!̎]=N1~>=˞-^;mJzSikZ=OLFPqy[%tOrR7EO%p{[@Pi R, /yL*߲EDS5]p_gT*.dpuccUH8/Od^D=睙ϕ dHs.)M4|=TybϚ%,u5[⯟]pOf;z6!Bں$Gr²]~JQx\ly㙇VOd- Qp=r 뻤zyf` jIU։Z7XUq pV+!^IivgT O]쵠7YeSS$kʊX}fV|C$+\$,ˌ&t@iD|~+fo<>nWfPkƑE*RT_:b([Yy \{ي!"͸k~UWP73ϧCǫ& M@4Ux,sO|oqag,M ~,<8F vph+{Eꔬ ԻSL%7(>桇H!N&J,5BE7Ƭ%bҩg_ =li0Bvؠ RhqHF9JYt$hϳezJ */*(ouT"nd πIe:` reD'C/0Xj%\ߏw (!NTXH W=qgĽM$8ݡ--,w`YuYuH/@Vi ͽ%M5ww7¸k|E/zPuNSL&]u936ڷbkXV0ڮ!yqtU,-alw"jVl/h{74߿#o*9Hfo"&K$64A|u'yp[h6t鹐c-˟6U?#e5z-*u_.a˘( 4|_2GFA9`Bɼ%oiItpqA#Sd$UQ"Mlr:(kmZ-c|KqoY^YPiZSVVp#JϷ"4>@B -r#. Fd,Rm+Q# :;1T$̒g,ۗ^Uen2 6AI>a^D7"KJXxNT d 0X ўiOY;-op=鄈ҝY$Ja(-+Qg~WQt#@@/ɹFOz'h^C e/$u0J࡙SV]okQ[(ZK#լYM&VٝY)~ZMp[iL"i3X]b&| B RyP`RF )9}@? /:Xpi;:w[lbL5W wm<7,;Yj="@*L?Bq.6$.N_Dޖb!=o3Qyd!-s2B= MX;0LA>?UB8PAAV;4W,h2PKŒKuQFf7V_ BB^Oy CT1TҪ:5\12R[Ԓ|YNLCتoaI^d/wThaQn:^|qlbh!JcB7?q+^-}%ӯӑ'W%,,I#Ro<3rcr7e#YAfIp6𫋪4kA_k4Zh)\5oডE_>20H8F *e /pWc*B$8˿rW-%iCXEZ5"WKx"@qQĪXW5LOvB~Sv%բЎ]~iA%rcc6f$ ;~%?3(rՇռCqip6I!'ımE)VQpԣx[JA GX~gkDca?fq%- U|c _y^> 2OS\W9 & n("fv +߉62pn0(fw|q\cf8\w0 t 1N?+#CI%jtom8v^3}Ҩgh0rh5ekA9 ]/CG~9PQ6 865okNis; % BKk2d+dG=; 88>`MzR5YTP{+8 {G6q;D͡^003Lʁp,PEuLD`D7M t%P[ooYqiF.pfۢ•kǡ~H}KcejH-o&^W2#iPٹPɁ0:o`JI(O0`FUAFEu;> 7o^ʡBE1}DDf18シFpN> m\3e/ǎ·#-[oz$gL>ꥸ K]rcB IAcZ{0'&~+r hPl / (Bx4_ӰI^檢o._8i;ѶRݽ-gS;c<[y,iC lW=?o{a4l4a ?˝yRפ4c3ZN{v@bG2P:6+aEFVZ0 E/iڐW9E7&1SHIKq{E& Q.$wGϢR8T%A$i&{] d׍Ęb2 V~ݵ%]Ϣ6s{GV~Ye|vu˫,.oytf+;:|K|zzغycK+G(ݘ(e#E?[1^JB kq$0"q(K(#~%n;Ԍ\dN<&#rV_}NoX]Yϙ$CIn1m:֐PM<#Vέ4gxr(^%e|}7+Uv}ֵ3#:iӘ"-Y¼mܹ~sof>~) Tot^\EQ~lˬ4Ʉ*1d<`,{O%҉-2"#m [tĦ5¿J@1P}l֏?pRΐ[R c/Mn(wBWª p?۽KHW ;乕W1ZX2l@L"U>4ړFb m$؞ +awA&vqhkȩܹ. ?]s % ?r& h厳b)#:ƉW1Pl%Q#3{["OS(`5?9U5Q2g@Gt{VВ wȮq)-9O-eKRJ*ӫjDs[3sU3/OwF7^jL|6_PvZl z?fɮ>Ѳf=)ykfqѼʟ8!_9"ie 31 MQEYG=NOa}[Fyt⚧UD5LEDž>`ZJXsnxM/ЍId boz+i"d(wue6bsU1BL=nVNXEykp67"%g,ڰfozr|h[V ѐ< r)z[-|.ohR‘nok-AP@/2LXTtmiH:V3RH=Bgp~7G0mhuglOX y[ )Y^M.*njJ6zdǘ$ 13Zjhu"&9Qmn5`Ev9ވkbSǑ3h${ zx{C;VLiڊmvD\P m*lpaWSu7yb3oj()a8<^:s`f6y8zTMr4s-;$NjI KPmt*q tXB2sF|W-/L\k.th> Cܖy.$ B(>lʬ0KX4:n<#%7_ъp!th'*JVU]hT7$aYRl[Ej+^>B6" $>{MWN)*0EZï/4B}=cAʮc]{GM#[,Ywz/u)^p-5hl{T#jtVwJm|}aQѡ2gfdA*=$`(Nc} |i0 4 ͅ 91@Ueϣ|h*BI8Ρ[e~v>t坢?K[\X-)D vrε%xJUfm4C,Uӯ_9HA=3g}lqaf<'ʳ_Ւ!\%'>AyEmq@ 7Z R/\o <cܼvNzLΟ&.&"jb>26m*Cp46Fϫ֙ଵOqsyz$3>~(ހFO56qҗF3O%y՛ŝyr lkc 5rP;L^WohC#$Nj]@_mQR(O6P^y2sуK\0^zߠ0'>Ɯʌ^ol jz+^%,_۱Di0fq̾ᶠ.o-W#E/8'ka!n̛on''eisJ ģMvv[,R*M l;a=vR\ l|ҞMW:4lhP Df7 R}Px5W=iG:BYm2kK?8;q.-|@uq`B6UJ#Jp F2n]mЧ&};%սz8_d^r@{-J+_`՞a)XJ;//W*DCiʹmTGUzzQ!aü҉ddި.|(Nx1:h;Te*M3 !\{Z312u<9pw@11aL)c;p/{%<8yX|/cZ8OV_F ` .bq518hP0U@X?Hh~67C&̺5ۀ: y>G#Eä;ZO 1~`SIO>&gư2jP%.&U89xm[i{sx} 12_˴!+Ȑ˰TP? !2z~ic&m!:à,G%ep+s*WIٻO7 ^ۨI|򁙙" I`&6w{׳S945M:Q2c'ы:1H(cUa~w|TqjcJ/E;hhϵU3|\S+ֺHw5;6p#5TөEi lTfNvH"$&|)%k|dqHk*EHtl/A,5GVpv[H{ᰤ |UNaݐ֙j%s3H<Ҽ+3,Tob%<I@dWx+ `ZJ0/]v_֛Yi(QZ|xdϋvMݱoB\<XF;EQ*i6M[ 7cNl3"tn #X ; 6XJ !{(?0ʷR,3^ځߝ~\G_pQќjt+}ځywG_z6pˀaڔ^O_O ̴ *c=9~cyGo]>RIܳrFRx4)JE 7R ̰OBsWʣAwbmY^ Kd"+`t.gm>u#e]mG'@g* "D?z xJs* M\!1F\8b6ԤcL $}^t2ap..$.)e9Ә'd{Ma&[&yKQy^gzM K9&tUTB^7[Bbyty4xp[Py6՚wE /9J(qoYKS@ |*˳,o{χB^٧ 7~1787 muIo{q -FD.Q*C D|YE. 2籇BoEBvFАLW2W7Oa]jPzKs@+ed b: uYRoKD֘!0յ9;~Up{ ?"Tp Opt|!'l8зȱg9,O8Jfm.rizPYvݴ zШE0h" E*K[o#Ōٱ"?kuR_ -j=Wdw_׷!Wa N!n4SMTHk՟:L>||E%!w'BoĿxrA퉢$m)з1gxmWwR-{Bz<0\ߤaؘ$gA }+_&t ? gO<-@[lF)&N6n|P`h=MQz.[0C16~xu'HV6*P/n@dˉY(7*#T uyl=eH_ z ?Lټ~_H~T J={uш_=[Nw>3*A fT/&\>TY)K[J\,Q.Sp u*NEQڔz PEia5Gts#nO=!AEOƞԲW4WOA+iͼ,^lMҼ^S^ o1l4PdT%ܕYc:#AUn"Xz+#ҪU_>h%JKN =zDs#k}0qW*hKp^q'߀V>J$X D# „UU/@$o0Bpn<)!M'{*tAJ>i&R@jhl1>Du.jH[ZWۗ2tk ܽn~b+Z8Xă9q_Ά{UFni1m=3JߓSs-[!.C5V+Msc=\)5%$&m˔ώ~ 7b~9X;3o^, M+:kA~!Û?%dVDW H^Sw7yPʍL៾ R]5.,(l'9 -~ M~x–}SՖwB̏TsLWXQ3\Xr딻*좄_4PJ8vļW~՚R"$g\Om;frQq𬼒ѽA|Dn]+3C&W^QMoaF$wfMt7 }{ |f6vܶ߇LDei" WeKSRY~|[R?Ub6 ,K"8e#&!p@5ob[@)@ /-mf;C4,"ng֤m@M ]-h*gI0ke#;[{A'f%İ`ؗكԎMp\=iyr΅t"Xjnn[:*t \ޗo,MX%[a{ٖQH ;Ԅ[KP 06|KA-gH07.|x}/H\b$(e9!~jv?g[6HUڙ+s0 ԉ )֩GzsM {,ʦ)XC|)Carv mDmE!RvZ-K_&,V%/&7;]7&#+Kzsm=vRdE`qRxJ83|~@/L{7A:z!"HHXгme :$ƪ/q-H|6RA/iB9Af#*i~mu[iT.ۻ- MijL0`Pl_V33v2QևZKrȨv8cO[;s,-gkhd=;ZR>N=M{ գ4 ^+Zɞ)*} ZfeJ/ʅvpj܎Cl09쟅D:.b F&9>diM趶 `(? oGVz20YƞmFJgL0C; m[:K Xv; ;e d܇B2~3̱Z]Ul+]?:dEvIyMvn $,6xF04QO9LTcI8\Sz8=OO \l-v!rcE؜ś) GͶHo-D<ո~"bގ ĺ-|f*4_UE@r@8W>m[L j g~y r py`c3_Frq)sD"Wi6D)RVE0FK]72*QV7RLd6]FΣT.&giy\c i?ρė+^3w 3ݤ@ű\;s q۹=nkwi ƙ*0!gтGTc^`;q.ˏW)3p CRWYP*ours4k ИwAT; 4 n4/s!9픽 ƲD™F' J-8ϖ6`*?=io,hG{d /Q4 vz<4iP+u C&Qwm obK:T .5a.E%Yj5Xz7S e?L~3rHp~[w HYav3m?]I&(Dd¶4}/#cMS3Ap#O[l] (/uuo5)D*`;sQT4qP}ӡ =y%y`.B}, tur|WY8>4L5tI+.6k;`Frwug3N懲+FZ:UG'A%Y59DB@/#HG?l$b1xKdY1/LXe4ZjA ]JL-y!g;xGU]T T`G-Դ&8쟑Ud#08T),ģ$Nj)=h7R\;_~`=~8 ]>EByBu@|Umw~nU{(q::W&.(Lc/{9zr3n6]$Y"C;EH`&Q(r$]DO+XTѬZ"3$>*JIfPsDkґM~-qE<Ϻ>pT5x0UOB`Hu֣"3|G*s0@"|(@|}=EP_nP'ܟ?JLΩsp?z>abqYuyEf^fܪKOYwsiT\6үͱ uV))CKkru{=L&ʥ/ZH VAL2ݢ k!Z ZԫWgA_f[#"&=۶[kjA e`蕻wX AN$Ff"7l%P7DICPe}}3 j.J}B}7%1vÁyҢu("XZĠPؾ5&+$/AŃy$ a`9lT< v4WC+=ުvE42 AJMVך֌ #S~bG7ި2Y}k qQ.Rɽ?и6?G-wV11˞aW4,[#!ىsqe֍[օe Yv81>:EU$HխiM8 Z_i<BSC6>uuVkz+C=$ pP_~ qȸYA?hKj"S#!2S-B+&V[E0y"&H}crk˺)xΘo_YVvJy8V$h7' pMގ.I.jmmvw ` O^t΍k?qrveac! U|g":Twj^Jnp2:a,q J!B;#ʚ71Rx|`[E(o!IMRELAXߨFKGɐ 礚eyo}vִ|軺?DA{m&Pf=_bd."< <4\M2U~E]|Ұ*|%-ZH9:|6֚} oՓ%,fGPb%ea/`^#pwWorsy(bwYݞ /7l6$ܻz\"='.elޑarc;*VGb(REo9.[O|_&s 0XU6'E< L'A,(=lilJAј%d6}Q]N uw^[p7c}7I%[@ӣX7O=" y\=pcwfg$Lf<""eE<6'kSf̀R-<'g`A~F8|qRl*wMQ2(2MC޴ĬoKl;"2tZh`F|d^ N9Ӎe9grbDPf,tIp{>AcORu3(mr}ë(bNkFWS2XsWm0| O)Ê7?Tz #NrsSؿ텚mp"43~9Z"qVK- # n{Bf@z"j}1$&6:E3?R|L:8v,ĕ S>f֨E,)NmkE&&sZs;=:QvB6?}M}r^~!c"z[9 lWglCIYӾ$E D'wM>oѺT%3Ⱥ 7 2 )[TdeU"f͸JŚUBXw(a˭6.eIۨCt>5˒bÑ,2@P!k db,VvhcpݤbodU(}-ӑgLfKDQo=H?g2QfV?AS>P# a%;n/G>ֻ L~&q:<لXiqLq_ >IR[h\u-yåخ_uOmbRy"289c79J0F ue%9ו Q*ghؘ@\ )ʉ^LtYdP.j{jXΞ?qȋ;`4w}õdkO-b9fiRUqoF90{ A˫Rs*W?QAu{@G E6v̦k6"JM35e=\/_xJ,3m2Y'ꖑ=ޞ2D*F^L0SY]4VjJp{`l:rW0 ^{S ]Hv\i~"0golnB)!P .E0 st?fKJ.Ԛ(k#G;Z3/ :pKhOITX8&M;2"&T;GbMg1nǛ@`Cݮ´ gRdoޘٶKH*hB}֡K8m]COsfrϙ ͢E;!ri\pÂ+b,;lSFh SICkRҨLȸ^Z9`ӒZW5.vlU^<$jwloEč0~?tpɥb7C -Y~~ED6Ƃ fs**"ZXRU2P§ #XuЩYWYa@oVU(I3AHd++{ 4BWWAQ3\–M{MΝ TF40֭fq@35\}>V+҇hqq)I9r!Q֘lIJiUІ?erD*g0s,^E[qpiLD쫔f0k_u*5m:2̊/Q.u۳b9f3.Oڼ0]Wy6i$.b&;W6o!Jyo}# El4!ͷ#.5eےMnBP'QX3\ C ` h|beKτ;Ovqc(bCBRoq ?aҠN Mut+519Ē!喵:]F(VRf@`=FGF. agաFnjT限+/emWn6jgdhQ٫jGs$]їVcJD]JMbޗ.grwuOp7,JhYM{v? /? ퟱG;(~`O4Kd^C5o afIA@utT2QҧirD{<#1T`vd';6c\uPPQgHh:kM߯6өԛJbVktfG"l1jaȷa ̾(][h@'l9Y-;N/U(6Yoqšo)7g/7Kd@Ѓ/͘:u -*㸅Ὧhcl6׬ OE @ޱ2ऎR|m!3M9?&-tH{r,*+i(stH{Y7%kPO+瞆"7}P}?Bbt?Pa7(,vn FZLv W'K=Ŗ2w@Oj=xr <ܙi nPXL^hp# b5o5Ic$Ogıt*,#l?/}?\5.ׄ:[*eʤS{&L++X[X8 ?"@AK0uNb˛Bt~G7VgnP0 6Fv7X@5ă9 Nۜ5_zn@($'a•Tp̪%c&066t-n/gԲ4+NZ䬠 *_y(|2K2@РLϭײPxZw 9e{s[\ f3I̯|dD&S)90Qm~Vu ~"=4H"W@>?9»j0 տC2aJ򡠪. Bu>p]Vv1[Xɑ_~`兜UʯY~=ȅ/wVB{{l-)Օ& P|{j IrHi+ 񚜙3U^(X!17g˱{={_6ƊwWGFd,r0ړ⇘R>4P }by%v 1%ïM')MvBKVJJQG(D^#Gp/`i)dRas PZ:nNp;G,'jHoս:V L@3z;V>Ϗ3tj ޴e["|nl=ɀ%YN_ )ѳtP WԻ*Ai@e;fk8R5$e=1m>btf'oa9OI׻8òLd^{k۝i* ||ڐe)рwwI_+II\5"L+:O}|l[J(!TF*!"uݹͬ9QFvyІ}eB[يOQx땑I袍S>XP2`.]In*oX3[._q5jh&W'l8x{'y2"Y5X_ ,QIJO;T"8 j8#!oElCgi:UZ?c}A?#oesL*1Gdr>HYeQF9N6ñ^I 2yev G!9&w"[D 2a &_=Jp z!1o ұ޿LH0>F*-ҭV U5p^E6MFt>׆J7yA|ApĴ#~t;ShD^u{HULhU\yS2AI})n[q摳xu= J(Do҄khFd/؝.ID`H401^n'[gEqrCZD+6礍%ۣ@#܇?P8+_zf79NW4o)IЋ!p<1+k<í# ɂ?+P\$Ibr{Bş|àla9}0:=4]g" u% 腔ᜟQ{b-OK$:$2+w@A6 h]J=r-kFoq/0_gEU;Irnyx[@ZUKkHWhx>yZ顣ҮQxffmbC}M Biܮ'ɿ6QC:aFVe)Y 'ug>Kpi.'~Qѫ&{4F*N*9+iا[M l-Աkn}h]v ozCߡ#؟u0Ih|# ; ԒN.fN1Gܢ g\I< V3=ʩ^=SίޣwkqtU-λ-P ;R <Y9)@;8Zfˣ|q?F-HF5bY\&dvŠ@ n=\s.e0IKɣEi{bPWPPIS{џBc" i4 Cs FxtђÁgK8E}>iYPaXf~W R.Z X {!UmL aʩ1xu/orڄwyZ+]TP:' ^G-[#)V%> k_1-`l-#3sWTfsifQ`m~H#*HDY1=pL.T 1ĸs#avpFD˽"*7.Q(o!G8{uHH`ډ3 !u3]Qs*~ :CiyI]>YQeEHWWw7P>NN7<!;XKAwdRGNpYY-@34mX~MZ?bS6:XXȍNrZ:I6iR͎%5 ;C,Ըo~{b6xq1娉:P4Px83#%'a)[x[HخTYpAa22x趏"!s?t?긗]&N:[@&!V9ۯ<}sB)=ݟn]iչɇ0 M1 XgŠka0o3}ԛ!CIn!gTI5|Q\[DU,;+:nX&+Pbwލ. 2b/TB Gq'G(X!*<"=|%7h~s`!M~X,;xP튷[АTèbTR+\ƒ=bȼ]"NAQ~N$ *ûJ@e: ѧV-#pbYdܔ%ޞN2Eߚ/<M.$'_">Ųרw-ѤJGfprI1 P,kT& kEpԞe׉݅%mlz({H="f>ϻ@{@kܡ!'9q|Ue`bJ4 S:Wܫ]YW;¤n3AV~5C A"O$eL&2<_LMqa[W†>1#rK`t}LJvjڄc8;GkksCD1){Ee> EVy>#5MGɾ//U],ZΌ ÏTh;jfP,zO38v#V C}c*6R"0w592 gKG(c=qo/d l$G#M`bN5rE0}HM[HKO!Ys xZ&u4,_Åa&5DDgGFÝ,qS%QM1ƅ*4)f#F̈XOc1pc$t轩" ܄ BX5n1(w' A'֙(:G #oObP-|-N{1qdLĦclĿԄfGCql;<Ζo_R$t`,ܩYHB|:d<p\/$=E-&vQ O({7Pen\>Q,L|Ym14Yv=TyM@u-JJX^1$De;/De< عul胓4C25FvHܼSZ"d%R5Ӓe~֌잀b.? DyEf" yI|< to!%aQZ>q z[RҶ`3a7êB8`z~F| Z^;]Z%pxn\ °Ģ3hcP#T~?||enwpd?79wZ|LO(}符Mi> cZo޲}n8=*ΆL !0B3lm=B*Iف9o'B *U>@ntT!dm`?:eX.thl)V_Q{3QZ`Fxׂb\7 }.4KxxTU$CY%sΗQW{!+\Ye 9CRG }?,`;$ 2PnwB464N u7wyR uڎLYkTʧEjE]dbz@P@|%>UT\L8MZrSg;YxͬKft*:[:c&p-e4W<qdpjhҊY?!#sUJ.;1:\IMP*kvܽOfJ}gh ,ᠷPaJ'Xi?@Đ=?yq4ݙO{S1b~EF#r 1\x4jH&Cɓi (r\B0P`xSTE5V4]Ɯc&+"gYjgfje=Jdz$G`WxHұiUgґK*m[~Yz"L;beUіN'$g-ooKh 05_ ]m<$ =v0MMĉW:vg3Zx|Ҿ_%^ټɓk5|Z-f q"O.]"æ-])>u1!U,+Q}<|u7HlkMW0f YQ{D7d: 9=~gjx(拾Xv g#>3r($%Uo`%J$0ԟIB6*|'$ ņTc| ?͟`tLH` ‰!>> >@"vXYf> O&̛2ث4/>WtBMk5O8!-3x " $/9T?% -=sgfMOoHc[5G):6lg#UyyЋ2q:wM 457e;}|K!cJ]y-opR[anfף^;Mc&ߍC;SQ'% psip2ߑ7A#Ygt /SK?&/YXSX$<@Zxԅnʄ0@Kӡܬ( X9j4oEpzx<~hOIyd2K3wڎQ%>fq3ʥDPΏ9ujȬ̶9h/;ǬF|Qp +J^LNT w 7bM3MbݧgwvwfUqqDsE~T苄d"6zޕfpd^zߥijGS7}0K.Ç>j4\*Ւl=8-p$Ks\>_][PZJ"KLw]Dػ.Y \'Avd,Ŏٕׅ./!Sazvc-ZW-Du5 E'%( J[x^ r<{l!&e6PjH#F10&(dFQΉ |uˍv2#͹`߁'ZO#ɀK30:[EkN鹘MO\ S$aJ$%½aJjHcV՟ ]:#L}Iul\Ā9^gk TGQ`LVfQ*oOc+iGqӉ{O=ORآԯ0gL*sE!&peY>:.*vzFz 75٨8Ơ rlc&/jYy|ڕEI c>.9Qq"1Q<ހ=(IE? b0rӋ*Bk.8s!¦r>7d ,,QES%}eK{ߥꞏ\z`̐PmN:j۪%O_FjCf@σO2SF#B l ($Yc n[,I6zc0zB' * X68ɚmeI f"۹Ck{CC6)dI5j2rٯS~fTO~eXEuXy6UU_ NN{mƆo؂év7ROȆ2bnBZ8spf3$ jp,+"bվ-6ݫoDK0īD" "Y55b݈Bp5ٰ4:^RVXoUX6v$~0RyvwL ?cag{JY5-`){u*F=X!(}QD(>X.]EvRTb*}z|>"u[$c'x>90 cе`02EXM0AHZ&F5ix& JWTNd]8%_\&9ujdRVp59B%{2Q -o֭)4_O7cI>I2iVĉq.F +DlWz.WTM6 $wU-sګ?>ɕXqFgwPYuB0n<.n8mUahvQsΡ]X"4郲> >4DρCHX1(@4O̕/݈i 樁1SaѸp,lcLK*>pcrha4IjLiԄras'iIMtTaf.B͙ )9yw8l "HͲݵ*jwPÎ*Ž9+V'^fTÅM^_.HD7Ķ}r\YX$JGWk~{Op#zƲR[>cl5Vk_DpQ]:,DFp҅0xn_!Gfm%okJTv=y!&N{IvSJ 99 %ٰ_=ePɟ0q~ε ~ͬ%.!RjF33N,u"\D`6lS\@W=Zr\G,7f%\jȜЊL\ $B Za\ s2GDnN) N(9N}U Zޚ(W{ 2m^L/\_{zT>J㷳WQAOB[Qp YmT)S^ 4$u'm;2eI=1S"> }JE] 2XVfsLQ-LE>uGʗr@_}J=bb E$Q,8L̿(!t2U5G[v$vRx/qKbL<=tLzرB3!|z'^Z7^ߠ:U҉gTpYq|IJx[{o =::2 ~?nY&k?w{mF0 hʈ>< 1.espvM(jm~Zc0ӡ/Jg]^ElWPLs m$rESv`IX`yG|u[S=QQKw*^%'mT,2z tat?ɨ![(B3׊yi$'9$I M|7Z;I"N]ݫ VEדf5:WsƽZM /KN2aɱZ6ŗy-(RR[-8Fc<dQ1c>+Jj%wS.39RC?@eҀN@HW#N\0=e/רǜzlc,[31Nv^<ҒļϺyDZg^qӻw(/5WT=$#34bE,}@vz*X佬"ev" HS,I,FHZ(<,OCAkohg"0`p)TT %p*$$ })-`iu5x~|}:NI|L@D8.4%U5I[bHUs}@h"EY=%KN ބ(QP NJGh54M߼-M4%9MPj7Yk_rO-2;9]cyAګ`*Og]gB1&n/HIV7 yc /\?%ܥm7b~S޼4`Lu,p\͕yt(6h7R+c1&9%WTt& 3E b !  A\CGWC@N!xX{a\6V1'oAyg BJWe5]oF2*Fm֢ors5ItIWlcI)n̮ |9k隿iMRV m cC8M+BtZEʪ7ϙ2H>O h-βӰ9܂2 s!~LX"A?pU?PfﬞS,FrN7`P%DOM0(єے֦4G_۔kL4%՟9&;`isDב(w`һ<=K'E={M'0LmbV F;nϡ&XKDLoe-b~yq6 R[Þxr7@viݑQsvӛe#RXDvac>лDY Qg9V9ڹrz2@f̞`e݆nL͢r+ t2caƱz Ϧ*#}˙_(_wAr8yy,86#S6=Qt7+0˄xLëId'/5[G-4 ;Ni6OE70/J rÖF\< @8ǐJܵ.v,[M>Qm P^rgƬ2{]M &Pr[nn# i&" zkNʴWlX[=ڧָ~cv~ C:>2+](,bF=wH~=:1=ǾYϝMŋ|rjE2!f'dCdc¿<>#>:0+Y"!Up'%Bl/qJRAW6't V#[Q wٍzom;fPa:wQiY>sA]sI5AA[111zߘoc ə}黣 } 9qћ1ɪpZ#C/ߟnLBLOn.x+O4wFk/'/u'ex@VFϿn X. PPɆmK'7wDVw"HM613婸y.]f`Nj x%AhzLƬCr#P/e:IQo4>S#CS1 l %CӪG8ƙ?&sGFs"oqWKԧH=̎~T%TT>qm1$"IIO4bBWv[lmU)0j2׶wv3Rd2'k͓#1jZC[q~su0/ WBQQE%Uwi{w{!ְfME_Bo3't $8^ZI>nZAjt_p2ջ -ؒ:߬fܥ7L-2v[۽>~P .DoDj+;hֹzT@ݻ6987K 9^p}gB+u,qM=H#s:ר9 P똫D5@Έ6?plB <8hFf0G=9ʡWZg K0<6dm;V=C jz d_)!0MfO|O}o|?,-1\F{N_L {cby~BqҖ{ dWs-H=^%;y$"82Kx|WF^22/h'(a |,'G9'OR[W>x,٣6 +W%дr 1F[/{C:q"e]H+Zx;W2z IHST#RPilpG4tH)G0^,lbi29?)w.U oZN_P{]FG "Erma(>N>q~ !ʉS! L+"[Ph?+wާMGŽukj b,u=O)@ŴC6lJĈ?AEĜ^σ9hyJ_4K*Cԇ$f7u?Ro٭d]|ݺ f8=vZZi@|lƷ%'P|/ *ũ[ -=E@x;8]AEKDUs2phtdm(Y4mRKYE6K0}dP^(|H3Zq͖R'1oUk^U_}w@l[v#h'?Z|*i B~nTM䢺^, z-wLJaۄ; AϚ Jj塳~I )0̀, gLp%X;7nudz8?jFjb$VK!~@;&+51a\WB_\ApΌb]1k1g>Ǝ-YGA‡:㢳 F=,h^`sbb4eu%mo%/^h;*zEb}ۘN1jt4κnŌtg_Za* 6w'|ΚbO$?8Q9 OH 'ng6ы_5aq𠒪uMl\^apMd)>ly+ }r>Ԫh75yO:] u9ٞe#I9e^BN^tE*!jEy5gQs*x`߷wg_h&9ڹ7 CVq ڪu`_*3ZDVD8D QTEjbN?-sO`%olfw;fc1M(pϵ0j7-l )"kK=XI];n{IȨ̬l{V}.#WmYd*-H/o5:#1 j,?MnމJ=v(k:e:"/~D 5 ĀhiZfK[QSɣ-J"1nQai)VY OGbN}O joJGFkQ-e7ҏ +{_LݽZ~^uY.慳`"+Q7e%'{8JM&5 ;B|(<ъlnh")T#:V=>UA؀;y:(<#)?'&Dz#dWκދiǶJA"%ߧd}IA33 QiXД-`K-{S.0zDFLAH}BO(䁹Ahc#~qmexsIv(:/E# 8>G`'Kn$N k:O~5F? =+@"5,/#["^h;-6/gה K=) jzAuUٹAQa̦p-LEE!^*IZf J{'" m dP90sa"/`UIE,N!3X`d.mlĚ6x;^Sř$8,ח䕮> u$Nrvqe7UAd$rRjD_? #4K{b/qw4\%D6%DLБFy,[7N6 jPcm.? vzhl8!_oӀÓ]ԣ%z&=SHۇ A2.y듮6>ցZ"IhMZfClxu6Cݣ\{ ` m/y/H/ׄPδ 42hl4lI3Ġ+UPLNp}ROJ>.N81wQ4^bQ>6E%] W ?0l˱VD*c+U1  [D)x&cr "їBq:h״k-ZR^Rb>gӫ\p]۴ӥQNjɯfىRqQ!d)Ia9dj *N~ోԼ5]çADž˦x|T??5.*wN> ZU t 4i0v O\^ZV>;s/4WW$r2AZoxc^R係g4١P^Bz)AƤ9sNXda"&!{0¼kW!aDL!IP-:<8͜*[OfTT4^F]?vg0BD,z=9x ߬ru |6Ǔ̢o/HHWiP Tpt UAP>dp?xWe(28\/*{륦0$spx&lAlF_cai6uePBvdsC\ XCvHrj[6Iwnc:ʧ_܍$ښp'< F^ID*x"vRL:GGTg%De᜶h*s%TY$v6tFe(St?% 0, Kj8U Sc8V3SBzP {,uSK/O,}%y:-wynaeN2,Sպ/KQu#mAw&16#[ #RtTXk;&>^X._iKq,-Jwlf׋yǎc&v[vmئʄoh|Sm*KNewv͉ffrf1(E\\MSzlᒈʃf^*_Mu0C{sP ȳm|X gP33K&y EWzp )>.j}tHd(+=2mOJ_2"u ,X5bwZW"ǂb#DA8TNI_d1Φ˘IwrB ^Ƶ,ZkCw%9joLӲiNv|Sq@ǏS_V؍f.qS6 NyyDZkRH e}Cc(I}]bDadL9^Y k=9N-R^r% f 'D)ƻ {:t$*թm*6Oy4>)5a\/ZBSF e.-Vpy09G~m'F@U;?&}^ԙ:MAѮ熳XVWZz.rc݄`B6$jǪf":ҵ]8C>ULɬJڲO%wp:vwTj<_}f^lU܄=s[{#KdD/*ûBH8 1FpJߠN-TfNΙmq֖OEw "^.HGh6'ꦛrc.'z)pÖzV}A%ivO2|1:oU56.9GYl:&A7qǡ]R=Leꙮ酪$7PiG =Т JF XM߇5xw4F;؇3}VeZR:Cp{rRI]~ D Ͻ6>/sjrB9hi?y㭝ibP`E"k  V$YX 5J'R+[ TRc @&iB^sjs*L%U>KqυiUE~(GPnϳ}/9Lb^Sl"߆vɶcq#QQ9u7c&R|lMxqnaNᵢUf|;DODcQ0 kn>}/2jd;Dz7emTx pRmp9{qyA/ سm>$Yob(w;Z&73f.?YK4u3 ?{cOSXUkK\@ zt#F1@uyEg877۲?-cyT 89݉핑JñNv|Wt"+Rs\7w{^ohSq42W!UF.QYv7QwݮiI|o /$Ʊ!}qE@]N+U7~+4 k+:e̒z\qGT&psZ(jJn,[->Dx6-m`T(v[͠)n6W_mKwzy锍vT0'D2'<-E ~o{&*{FMi87QT<1|(KpLZU)t 8{Vv2}wS^&r!hK %LqR|ÇiNw6p (ztݷ e&oK3`t/J\@|JKw/} H-8VK>NL}`pjkڧx_jQ>h{O:P:}- VWVByJZ}&VY.JG '|gH"2懀g=;|Eߑf1@I%+gޙjSyƧC; fZ[7wm [S1n퀭D`;C},Yj6t58jp.zf0(b ΩXM܄3f1 l:~Uc*?: ~= ` z\!Nd[Bqaɢ`qN!c]az)º:sL/ \TY,l3~VU$3 c [/cQC.ٙQQ='\u2ǡ#+$}Oy4rb ]xv+ƨߥTGɏ53|hϰwE郏~b'*PW͒vMO*㰼?l|殬GoJEj[ Y?EdBOD4GH1̺ O_Ϋ&6;9# 3~Ņ>A̦1 3w S1NImЯ5_'+eƓ_#p3ej tl 8I}%]v4eR$<zil{[%D؃X! nS[ЏEHwKƢ[zO*վ`(2Kp6f'us5nxsֵ{o<NK39 нW&#gR)cPLJSϊ`ʐ?LXEEZ7@V {m*jMUl(3G?hGnHNW,.3]q i|f_ ؕ/kE[4fO6|N@U}dBfy+wk T4\r*sبHL¸鈻]~U*?Ʊ CU 16Cv\=v\* %wOJ$pNJY%Qc! ͬtZapFQ6T0 x`$t7oj%bt,.LHxJj`DŽiur[j%NE1&tKOݚ3 gR\kכT8'(wG!LUnQ$f.i 1 qp!0Ce1A婆\?F=< h#ƈ8 r#1𪿴o +$+gP̹uH6$,0kclgwq0j&#A=:_ J| &25(6Q'ӗnv|,Э[^v=\{pC,fO xf##G|,'|GlJkuwP&zlkq*jl1JQ"-8o12 \UO葶PeS-,M5PݿoMjx\b椸?=n쵗4گ- tre$ HO p{nS[!u7/03+РaPv@x 8TPqx%Q {V{1@Gl" JmC1d'k*q>~[ R7 i><`Y*V1VX7Zaml+GCw2]*Kqi#$,Q9 ,3jTE7_LvMz8%4i`PSyպ) i~ ƚjC6 I`@>99BJ Ez?d(rö{e2F07i",#f? `_ > D $#ڑIZޮf ԋ͠t$߰}C-G%oNHD1i L$ボBb˝|%^AWż×V/ka9fHa>zAMf'W2?Xk:iM+*h4aaI=k{AFYߤ2R\loL)A+I)%dywuh{5Wwɍs`rCz{R*_|7CJ ry#Uj5yTfGw=C/VCTW{* 㲌l+P6Ǭt˱JLɦk'#uZƘC"'-)L0Xz,j؏'N7VK_˝jDq#qmA΀art&o&:6BwE0trp3m85Ţsښ+϶F$L WUDUNܝw6U(a ״e#̷;WyzwP{TD0rcO[Ls˚> Ƹ T_Akfyg'xblc2$:h͒[¾xl\#&w6}xg fTok)(қChqI2M`;ж]A_ymܘW\ a oue$5za|\[p©}eDf A ɸmJ /n܁J~) Mf䑓C 6uկd :@M7uQEo(Ƶ7+ 3YHz2.L /ddç-%):!"NU/s ;2R& 'Gֺ4Uq ]|+cTu 0EN3<-xo;4XM<`od-l! R٭.#sY-CHٻs7yٴ ۬o6B肷K{f[yd_+@*i/쮥r2aSOSwz&?,E̶UXWlA h2 JkWS!BXK64W? .T|)CNXֻ %s0F_DkKB7L!- MͥiԶow)Tq~9s-\maq)5æIAIS(Mj<(< _$~h6>dC+"=Lupp JkI8J&DwMc% lcH7S#;gӊ`]+c1=&^XJ]3cBe-75+;6܀Bݼ;+ku_="~{}<Y_y`WӪ.@=YPaCYwd]C;o ?I+S,vRF4[O-_^?Nz?= UW4\ں.\`4]9l aS;=*Z N @nC_ܖt`Cwexnǧ~@2R0Gp@)aNA$3aT]ָO2Z줐!gk/[/.sx\'?0fNR# .㭫֥`m⪜9L,)􋅩,bO͉8C xd@UMG@Xf2D#u^GA/?!Ϝi 0wfwZ-_ j\O?܌V=ğ{=k(J]e#x֏u)pP0`1+Hy+DȓN|7}-a%M_RS'gL Ut|wjq!"ӟ44,3lMcHYæь۵SHw16@tڪ[n\Ag882 iXeNjgƾtc*r&q] Z|h -Jiv @. shLV\Cvr:tO)&^N<c,cfQѾ伩vw&5M3Hh^sHR;O"ϔ vG"==` )HSݫZϖA.։$~ݏΤ.KS1 bk/ȩxZ4тBn r,s܂js{Nqm+ʼGxe<[#H*Uw3^wY8CxOj~ܜ8x`ūy?~8݋):/ph] mqxHHYKI ;PJLYnHGw`;fk .x~Rr)f-A9"'OwUh'u5ͣS$Ew IaѲ:; eQrKahRfVnB?Clc1!N9ԣuu8-զT\)=H Zyb.xyyqYymU“bX3d :rc}Q:E)Hvbc^j@=GN8Z UU 1 |7)~ōŖΚM߱6FdWvKAW:vm7&W翷^/]DAu>%L_^]dT `ρͻB)cq/^&k?^k巭4L%Do(A3H*gTUR)>tb]^!w㬣(#nnSb8mJϱ,Uq^~@QuQqjrE`8Xj[EŸzwMƖcJ'VFP\XR?:!ڎLZhfZj{q1@JĄn'_q?,{%dtzx=qRY񤼈gg|y`XĚ7K12~4RE&NBK>_v7.))_0O9"srbC$g {gܔζ2rtO,15_ e gg~hcMb@NYy(5k~Ŀ-e >6MY^-oH̑}%]zwqy6m'1T)S*Y8$4y^ {_|#>쒔hB*T->nC1ܐrpÕSv /݁Fp.^|z'0wCdSo']3$ JŁ7F L..ʤ-Ňf3Dl?[wީkV0Zd86w 뤾gX*^2%h̚4(RWDƂO^!c~~Iuxw>.޷'Ix+_wإOfhITUiXzK&o'l r[~ pa>ڏQ"rR`z~|CĖc(^ o^ʗjuY4H%Ȕ[fї)?VjH³'[zD:jAqPt{gkB%uZq[nmӹ pmx :KwAlvG-2W Hmae^*}lĒe9!zEoÖ7bDhTm Hyt.utʅfAC- }i\֦V 3HkX'2`Nr 䅤XEXzcWQqizT X:%[%^ ɋl0{aA=h1E`EJF7UAfeZw0׵h^mVTl><\z9 <W&;;L }JgU57ȇWzA@6-]`/ZHKc~;m cr߇]@MW_BOhZ_)$L^9a*c7:S5y__ FH\[tn{?؂f+h}.!H$ֽ!:\\ P D kIΩK9،eUAtC Fm?nwvI}Б QSӿp:P$fmwc^xrJe74Tr k^MDt^wtDWКDNuYMr}``$|ƾUph%_y+MvZh#F Y%QegJg@|CۉzKZi.NtC(2{ %N_05^j"MX\p˜O}wSH;\w`9p07);0ߎ?)M0\[,~_i>,y+# ZsHo!_&Z'W@VF{B֊fo U]pMh ( .YhAq[PHÍe+k/v&lPn- Z@j]ó cUl`=kހdx+83~h=Z#4a\̵[ݞqM_.Ճ"n,:]rBF>+w*4Qjg:G9E6,  p#\UwnwM F4/9KX 8[K4/*zz'.CcfH3 DY< ND96Ìc~A|2onƤzvTaԇO[t.ݕq1>-ߑ`Z [^Of3[Ə+,- u쬘HGRM4k6Qae6q[m"ڳ7? ,ᆞc߳yR}8fvoܤx#;?)/9 ur(pVj[JM;4Hb^& QO@:o Id"HzN^RS1|@sBgwY,t$k9?ƾG):UjIk:o!I "ђ տkSMJ*2QWSW<+oN^9GۥM x{Cfemw!ˈ U wFz(tO*9cOI~bĽ>A fwXᧄуSn0޻Y#"S/]w:+6F$-R]"\bxB@wSPǴ&{`^ S(ڹp-`Ǡ[4%pv,PX Xt*쾾U ~k $sNk^~_V8JҪ\O.;Vs%=3{ |IY`JeϏH g['p ,gs 2RPDN~Úɭw&/Ef!|ciEkqYF ^`._Ig $zIӆo;n!pR~/<-; H*&-E]?M51ޡB}r;߀)VX/޵ ~%pϮdK11iSoWըESQ9S{ ؏ٳ4DgЖ%]Fqi6'3$F=m'B/M=qc0>xB|}Ę(gaq Pk>՝y⢃0Xv{}5F{z-cgkE#>Y4;\Cǎ+Lk"5jC`&ٶ]eH?C)6Dtή c&TO+c J|KAڕ&) V `hP$ c' =6E8z=~jrkeS/\HpXv-[AGԎ|=֪o+*'bR +ےEQz;ㅴ"Jl =GUxE+8&V6qZVGDL;\Rnx ̀wLlvfT܁dWMvajuŃ%Bw]B2DZN8oyb=ELPFKJև OcЂI$#JƐ -<%P yLu*!Rĵ?0Ƽ )B[BZV'ʙӹ(cՁ3 քxmZi0T&ibW*td" jJTFiHU%iO,]ԗVe&/ }S!5p-vyIqZZ{ N!:ay /TߞƆzeJq$ n(QO^me.XK6Q6{0׊x@׻3[C(&;GEnc9JI Trua8s.\ઌ/؈.ErT^i3[N 9'_m9Q:*(4eAfNj6 +悊NC5D[]i)7P,P] [# Gfb%`&J1R*ޔ˒vjl $S'@ೋ9 J= )km3,)0bl wsz0lӱ9c"*C1ib]oh&2ȻceWƾ6lH{v P-_;dy,DV3gj4Z㕁j?{*L,? _ F?U:QsTC8]P|)ԛXm6UժJ-C+Ee"z7^ly_`iGڂuM\>-Im_=+ ?:Mpx;ޜ6#Ӣ0iz_x[ӕLȞ\=s/~\zu|ؤH WD ڏ>C9\$jQ?fPkR=JU{Дv=„ɪS*AW8i RU 5v}X,0=bD0V>=>3!)$teێd4\ֶDl 04>whv>t;b3PNY#M#R]ΜoHт#Fr^|eyj}ړ,b$==OV)vg&1lzffO7I V#YKЍ3u֬^-D-^Fa$ًPsê߉S#UcjYϔ[>\LzcA5qo%AA㸹=]"Tž_fW8u#KgDz L߰碖Kḷ]5ֈN9o)>?G|1hrR$Sw]Ei~4"E{"LA;% 9lFcg+;*uFppMi0 R;۲Q؇1)91iq^X}[p0>XlB6W^0pƻ/3J̈́nFr*a\ID F 6;2u YN$.\& b9פk)<ƁumDE mIٙΎB#i&%5kš 䐬њ|M;Xҧs:kgV}5glZk,<ǬF %(C 4*D#'$XIS\y ɖZ]e2l!Ɏ>;X>ƼAbWaiB gCD,4b7swo .l,!`a"TʸjxX OpDoyrk"&M@ l$K8'pЇŸ9zPh1 >L!P!9 Cd+43,FH]wmS}!P&Iw_/O^H|D'} .2nEΒl+BBIP8˥0E+goî3I?)G(s b& {܄PkjU".8Oc}<Rp#S :#j\a[9fI_4ud;,Z-V.Ĥgs!S37.UFn:t1W0NDm%βZwm)by; N7G߹|eW*`Sn/f c,2UW^aj.La;N3ތ\vhk`$ Yr d 6wLuZ[B>/ֿ,G}˷@pxJ)ޔ 頃窇zguQuBXaigK`+9?Cڳ ƒHJ嫢`+a$J](H$g(Qcrr\1?9P ^0T>wU(1H{:@ vwp XD$-bM_v={ΈZt{:-gPp-$&^=R9>A5gkr?bz mU/O6!j5n넮U,_xkÜWeE}>3߬ ݦe$8vQC0_b ؄{YS|&J- j W>BWgbaen@|l2BW@Ar1(am} yd`qjf6T1Z{u۵ "* @Dr!,&[ NVqG|Hx13: qײuTݛuo6$@$qҽ4D3=_yy eEKFi6?FϘa)iA^n62&>I(KR+x'/om)"65aֆL$ah+ Yv^S[BZo k",K ڐ:$CX`y;2Q]-e˗DvrD2Z.3w[cgV-RqHfgqq!ι!a''AΑzY;Κ]794(.G/*4ᴩI)YU;aE |cҧi]<4z]DE6rE٩+_̠> ;5Ɋ OhޣrB?$ I#p~̯H8R@GZ)*UїWnYN޽o>)GAf&[n8?m LYsNW1ۃy`ia,X"9J9#^)2*)-qxA7f4}GIlmчR= k,B~5.]vE2`6x2p>%ҵƥ DnZ|=#FJB̻DhkjJ4+b7[>uqwY\/50:_t@Q*. 1 _Oj$+nqb\6p9!f<h yu? 󿊫h o%  iCuY,PJYS-|z)3K c*;u1iK7{!s9`BXlEN'柵b|&p72Ļ' ZB% ͹pqƳDw\nKRfp|6hH_alejGfz2<4C?rD ҅n< mLR&E訾uQviNm B]86M /ю3G\pc _ _TlP{Q--@FAZ.HiiлC<ċnL EaT42]QTJ0 jY؛ =55X]YbpԋCGåKXl~կJ۩/Jɾ+LU,>wE7+ ^EzJ57)ſn$CΆ;m\3n$#ы|oٵh h^Ȁo~B1N,DLm+mqcޭ4{2W"B>_U"!$ЂkxEC$JDB.)Pӽ'2Cъɕn}B_8V:MЊ03Z$~@d# W%I3eDaȲUY46AOjS*SV/8XJMF m<7-l4Ͻ4ؑWpg8z lr/zqVSi|J[ @k,3^\3x'*6B1Df A=L Ҩ#Z%D~ӱj826HuxL<Trp+N!9Avo?MSc+L!@Gճ1'5ԙxD9gMGo { W ^H =qG)j$؏S?~N!a˲@E:WJ#DQlcJ(<3~_ %4tC6*U /A.S0I__\(Œ Rd|>DN(ZI^ Ч68Dd Cnv?' )5) w-ܠ?\ >AhCB;lw4Nu!",Hi0o`~^2$,(}Q*qtP>AQ&ޗ|sW[$ߠ?AP\8&D\3W+qB&@n JH,XΌޞbg7e`aq֎`^ySxJSi.؛ؗD+FrC?z2Aj&OɡU%`@< ]V<)CpXd0ZoAR;D؈)8Fɘ: FZVN紜pe[$Ɲ=GI7 shxT (e&5Ys\aukn/r8U&as;@ͪՑD vѧM7ern.7Rj&@9rGS:C'Q\;=ჳd7mK\eƒ-OZLCeor; ".y F$e i0)أ&ozP;P~;M^PTG&Ʈ˛>hoT]>qҦ$ }|j簌6bK j̔X=Q/_űȇ%jى57%?1ƘҀz{z8\Q^ş7{k^"]\\=ru{@mAn>佻s0Ή{o'ɿ|Pcg!3-L0ArߓJfʲ'fH `" l~2S;_dW*Lӕ0s樭 qRl̶H/|<W puD/ 7&={=v`X| pc( #OfoȜuۧi}|buHmD.\`U ua"ﳜ9s)O_3x;>;Rw({L?(&tV*|gֲo_+91!E 6c{}JIڅ;6:pgZͮ1%RݙHhiy69Edɘ16(OoLs5u5WPd(/dIQ5Kr ^m̏nm'fگDz7lGB`D^ZU4Fyf%O0`3a!;3\w`;>əG@R{ӷynK0]i<63 l~D+F&DN@9'孲F;vI^O?dGs:u, ? v&kB\ *4 |yF藀Ric(1OHys l:/ 4!^ >T %gh25~8+{0J֮w|KPᤛP [P+!mFM-BFPXk eQ.#=mVǔ"e(M8F\q̥ W 4 1ˎec 7Wcg˭ }Us}^ٌ] 8Ѩ7ǛBFH?@eb0M踔7V,nӄ\jFI>l(9jZ{p1-C]wk7j fZ-}_mxyHFu4j4 [n8O; i4 @N9 jD9[)e8}ΰ/i'kS){rcXa5T\o٪eՃo`9ԊP̟NŝVb;})|=H8֫^VRToM~'aފ=xZt$6a'Cqʺ>#gδnٖWj~ G<>5ʡI .?1Z KW[narͅe[DO*u]NSVO+p靌"ڏjpnl0Hi-%~_=vB!сSկ ~X~~)Ĝ`CjDwȪl!u39zD&R`ICt)WXz!J eE q{O=D~0bo29+.8}gojnJYx`?N'T?{lWPxȸNg0PA:Ӧ>ǁ7 `9?8#>|5LŢ%*0焇3~F L^]8ei-I~e^#e@/6WCbYɆZWYN쵏PmjVZuB[^ROHt9mQc7Ѝzh FKp0gC#c7u?^f(RmJjar+ ( %M Nb-Uv6!Fg op>]@0>%Ia4sϞt jE}d$c}RQ|pU6u|WM\ÓxBz1uVv"^I[ -\,X%}2/Z0ղK%MtUlwur^ͧ ϟl4PjJȹלͿd,dƀ=J(a; 4H%)lQ91\0^8I>V{ '; .1 !ryݠ:e~83r"fv  _㮦Rc]mlݠjGnkYU-˾ZX8*䅫+lQ?qG[7̥ C'yBG:ouٌ4 LD^ Jepȿ^8{֓_mCgە5ǘ䔟RCG7+sX7^X _RaUܝ5UcWIaݵ5bAW=#UMvnVZDc_[&{^hhn0=ⵗEr2z-gA#3 SCUUjL`Pܘ$~whp֪hܸl(0\zs5ݏVݛ+='l|͖[Gc|<4$<)jvgð>ti@l/EvǮgu2B5\ _k*Ў'A ?$j*H{řO1꿼7x]ϰ`RMdid&./D!=mqVdaדxBQxjͥ4rzok6Mx O0-3w#0/CEW(J#řVT᥼&}JME꣼9T1eTy#O{R#\MJ9tN>nb2QvQizvAXBc eh$=P $mP#sZ̆<]^r-D3 YE12S"4c)Ek~%CtLIGu`&\R9:gcs674"z}Q; /&E\t'( >> /@`ӌuT2i*o 8{Ԃy3.w$eP!gGKOtd}X>WrǝA]mo㍼\ D-AɆ$@cBښ m_^AʆEqx<#_.Ö E[e&!/Ɵb~۠%/{Tds+YT IBqqM[lR;v}Ed,mO߈C 2Kۀ@qK\t$<-b9}i,1'qQ+tuuѱ?7s,G >c7U *4|~.4ϘX%_S]˺H 6jqPI1H6YSxDqō"@IgXAD˶x7y׌ Y6|=QΦ.l!+"dS'h&xdpϤ?W+ L |XM|_d3f 14fYk_!ˤ /' Ad-s= Wib2cEtRH|14PVkZpBKDg5-LUHgrE2oC/D6Lg 5hyN گ+E2Z,޵ utNN("! 㾇RRPd>󼀲,RM.\ʔ쒫cs"~} ΰ&'TVu(L)yx. ?qLmmm2 feHQW O)Mc_r)Q>p+Da#pWF n]ȁ \d_RģSRx@g]evᜎ+m람$ƴ; <~?1u>@`9O\]N{eًc73a .[t<5[(!BVSj VHvTLwZ/v7 A6A+ @T(lMS FW(h]Ԯv6[H|w|rć`8w.ΆeUb·1ędczxj]$@vZW"mq٥>n?m.5=%@5uE䤊k"QVA&ш+qI*ap|ȺLlLvg@G^: Ĩ)uܠòAsſRP&VtJ_F śУ&*]ܹǤHX%UzU󝸅H:|& OKҗB-_W2RҭAbVdO 3֩/;o={;&\J| `QN'F̢w>QhHIJQO@ 3\xw9iIШvS3g(Kb A'ĺH+M{)W7G+7@0T<%QEz'O7,,4*t}Q‹z c b7C:5F_f'`'CO#{3^kĊ1&S ڣZ' :Q]qqΘzHh=k`@q +V5'O afwyo>*HhDT=IR߈LoiI)FǸjK2Ƕ#՚M `9\D!l;Y V%VɼHҘC&5^erվ՝}F-j!G}dixw+pO44p&N[RtK k8{fWrm*17.p um2qfgv?tS=#n/Z *7NV*۵h/4Vcv`F|ICQHU ^cZQzI&^em,HX ]^0 25gW:Zl6Q E}qB}k aj\T 1m<몤fNl! sx'!&C5`E8΀lX^oLSUj?LYNsZ'y`ziNSR~J۩˵eJRo؟ihaϕ^j"tsKXؿ(hѢP@W.<Y{1#۞v0py:anXmEd??kܖZC?u@zR SkPc5@p""Y_c.ԗ߯[EiEq{S lYFg9ٕZeuB;2#܇c5.l9> -̝Ե7!;kYj1rrȢ8xVl !B0\9PtYQ_K`8տ`KD>e!ɡed2:W/m{ ~8;b А ;P P"9:vn(+:I,\ @Ȫ8MQQ1aPu1Vh vFF؏Ga‚wcE~sUכ puY~tNU4@i.q*!ͽ.f``gCXN'=Jʼ;X;=gA*ҷHKE[k |kg}  ӫy*TG`fS)3|8n'(smy0uKd>* SpNFOQm G BG(N-ԴCJSs-MͰ.~0H=@AUD˯,l`cFV-&Bm"D/Xs* ԢBo[0B(ǩqg18ڡ2Pa5F NRܤjUI>X/Ů[KNs_"9D)oki[V)vDMF'kY5/Bn˔aюcHqDߌTc{vΎߍ?ӝCrK:tR2"fq+-Ӏ_$i`VJ _SK?Sk؝ً{y@PW.L(}W6MzR)d] l;,/kcqQpA&u]t%y'1"/WTd\Ni27̴e]RCl0 r4 _hs1 |9^aȏCAwՖ Pw_ev#o޺ljQ$.^5B_ PO$6u/]bQcΕrGD7HճӭxOÃDȃ ,Ά\F1c|xNƔً'_nGʧ5#H~@\K ]Ga;KZF6}U*<+G][^ϙL*<ߎB6$3( uF,X3fP"ɟu.zl:",}E?H5 iiQĿ/À3r\ȿ7XPNQj\j!۬ܺ##p\@䭜b(2+[JƬ,(',FvhyOj Q6X]%/fǏ\ʖ<4;yt9kj#3e gKH0upڸh9N-fF!T)d r#,'+#R8Հ32P)qJ¦ӟb'm倲G`gbaLrW.89Aq].>HA8ZՍp58.{#Bǘ ߾xte> $7Owrk8MRqa5en՜WKH O糔rRưct }is$ e!_? WF+41"n7PDpT/6mb`5zRpj;@p(2Mp~Aӵ;";:BHꎓb)BX.)h7o7|Z%$!fE`Txb㪶 0VUmH PWۋ!\n;Ck/--.%DLxՁYuntbO.~'D_5PzrV;tNIכȲ {u 7P#$`ZԁFP?j̑JZ q GX?n.dAhҶIqJ̅o{9':+qeZ0* 5xU'->ʫ )^XiS45ݤ20M-zƽP}Q9SqyP[YOBis ߪ+.w,8WƣeFdJO* 9.r2W/6 㚴C S: * r:$HQ}뀫jmڲgNy^)@ MjݓWkkGu~RgK%pa;{f}N}qS CsgzZkQǂӘTpX53ECЮRuh{.֕T`|5f GGFJRb̿xBK^[퍌_FQWhD OöEMwĊqSCuyv'ӝiJEث֗815OMDVB[fU YN64zkJPARzyF[mv|8ݚZ x̣=k{'\3 xM%z^{?zגĩoi)ӁHos_+HX$tA&8-PEelOսIm -+XS@4rK$،9gL-;xl(ճs\ nh?P.?WS`7sprr aAl= ymiT> -mT34el_S$zaWzR\%{y>2O+B>{7 6Y9 dᵜ4uzinZ)@ ?z5y{fdgp@atP rΩONJWRBykS5$(q@4'CJ]4$TUAb:~]a%SrΔۙcTcȆDGgֵ4J$3L̯mcωvxkO mF Jr3L~1^y9^T1aK[D r< _WB88h3?nnNv4p6wI|qöGqZg 0;oඩ+Yf7]u|py&ckF۠>Xy`"qX<nP)3ٓ#l>80Id5vs>~!؟rl$<2Ң\%!F῔deR-abs\N  _8! [܀z"eP˪NƉ3a89ϳQT5bVoؿL5Ǫ0C㥘D <2%#eIsԶ}SGX/uQRiuCB%Ffښ>;ٌT&;A腢ivLo$N-/[2uK,#a2eO-d!d(L,Y˪oBS-YCy#Lpo8Jcju@4$~!`GX=';͸WE",l9mNtiiNb[gll(b+.2`1vEcY܀*"U昅9h(,=PoԯDV9p526]vt*?_jh;wܺKMtZ靫֐铰d&3j%FF _P`@ [a(תjyj>I@\8[7Q*L&*ikn:KQ赳HԈ; Ѫp톿n3ȡ#&&xA9;ԌU?/gH v[Ê~ K#[ہKU{$C+YNAQ&v4thDO`-iwG8Vw׶ wA\Ms4e[8ܾbk4E8>^T?mjn0U1LItb)C~ںsA0Q&j11Y)-/166 P$-ca{9D9X#|pZWwv6:yJ[*DbpC[\Oi ν [q( _Jf\䂋MnA:< ` L94x@lL DJ#zT a@Dx2,icBWr;L&:79k"* :~G;71Hg:a Xr䷉lHatSX h9S|R]th 7a7L''+z/+rR3UD*E#'&,cV/SO1\\x*xlTcxqkNӨc~2&ޱ$jYc{xNjO_gc<3)afF.MEJS>-V{+L#.eЄϡE%93Ѿ|StonȂbp)#tps2QI%Yr08P[kHMdc+Dh?˩bOa(,XrzmYL,ߴ\C,]'|BRXR 9hxn<}z)jA+)R.;kb@ᯱXةI~)ɠO?Q86݂5%@c8G Y ftVĠѓ6AW~ Q1=y-lR .kD:NKeO}hծ$i8sϜ dUMM}YUrh 0$bCͩd&{\3Na Qr@.>wp%`y%W+;ST&'.IjJ dxFlYnK&P v>T(rce 2?dt1qXbB/|Qu:$!ppةԼOQV<H `V=b\Z,kacˮ֢jTB[ þVN rƎك -WB'QŌ)(Ak]_AЀBܙ`)f۽cO2aa< SX1ee{rF:>ŹhI%*:-)q{݈iT²ύ&[*Ұh@E|dN R u'E/za b^ugv1`l\JŦg翷K& YMC%=4NmP&߶^ѐΎM7yŘy]Wxfly`ΆR9m$' wg]k@(}o$(27 ͍YaPx$߷E+CVHy-FIA/9q`Aqy7 F$4Z}N`ko+-3kD5]~4!_K8lld~FuD5 [DHl#ohAb?R<-hͷz‡'%+3QаXJ 1*J˵Z1V+hZU^R$]y*E+ a,9>4]vک78K|= 3$K kk1k:η➂M,rIOH-~bfpd |wEM]J]lT>ׂ.F! <@Unp$05o`v3o٦UeFM_$=w\c p'ا(Fs@ԁr0jnK{Xd\IAk^Jmԣ sJѸ\Ӎw~-ppb[|7sv( eI%M=a=<|}QjIXcIW"M6R )p^Be\_lAV i|SpXN˪B}B%w$NWxCEG'&49bxVȿz'dfB858کf =&`v6 !'Tĭބ1ظfe>(J: cQQP\.Q_J4oiICFNU>L=iR|v6ᕑ+F]To"3|"h^ ;1jUr.#!"**֘Xݩk3"#fSGբ3:Є></Wi,,Ku0IwU:9}yxqz@H(nL|nӞMKZz 4f,Ґہ=Y-׊E9jLHZտډ5RZJv.x&4Xwx S_%5lȼLUiSW ŭ>$jK'6@NAqzW%6W=k>2kX D9RFpiٟA|&l_:NbD7\ADz!f9ςUM{e' w7`%/&OI%3pXSX+po4LOzQ\?\FyHբ|pK$!6_Ѽ6&pMm>A/N+4 *kMߺn8M}c>sb@ֱlWe~1h(k24po8e"+_o,>j4ْ+GkxNowg.(kp==KyX`C[-P\,nyN{iI]mJI hkO[צN6|6:Z L@*2YK8sJڝ(V/.4+Q7lt]}߼\c\|7t&sIw#XOwH*dHDpyZ߱o&4.!l`,M(2~ߺ3zNF9xfvZAPqBx+Lыe֪ w!׭.TMSdv-r$E.9TQ1KLD4y DM ~;c%-^:/B./\@L#)BٓE;}]cV%"Q7#~ɽmcK?8+T(%FrsAf{ +An ?HC1eiwz%7ˤm gW]?#ݨY`ՇGFf.h? 6Kn2RA;ε~L˄ C]AXq슭ʘQXÓiKoTwwXJpWG}z)z/(=\U.ScBDAaJQQGHKe:E=7'puzC{Yl\+Hߠ:a$2SO.4Y}cOEeiPkXHS *򡽕.ԃ/|Nt餡Bc)٥6iѾ(MP`6JM+.Uf;+V>}8#l X*h_݋6;\'nǞ<5D8I9W3u ̛,7`$.p][VA|"IDuVj댆OX4eJSD Ktjvv^S|q]ƚJ|쌩=+VB-F͞ЪF79j&PECV`[7x]`.I.qzƦIfmKKzƔ@L=)SlA.%{^( Fk,۶"5s!!?ir|K9-;͑g"e=Z(=`n>Qw2XKIz9_v[-]HE'qPL{6e7g,dM:\O w[{H]~BH  ?٪Nܞ^kF9}Cl.⺭T2Y xb:'f܇&0:x-Iڼ%M@JV҆[b}xE p&t4!LUg*sHH~:whgQ$qs05P" m#_M53GA ?Yμ$޿[&[5mH*j gmmdgA #%w)Ni<χ,&ǞZb}zCgIˎc  = y9]BC$Acʕl6Ya`fu)9m'+ROky";vԽ"f/NhC`0{NhJq>@–Jcm$MyzF2M+#tr%Q}eEl=vBǦg_?qY2Xm6o h&j\o&^huԊ>I܉%Dޒ߮؎mnURltnD_K^ᆯI&; UpNy(V9Ct(*R"OC?%x|ՔWFmuVxJ1c\!|UɆr]@JD*""K•C,耍h+;_{nc.duCN̊޳ư Ѣj_sH&:/$&êsѐA 䡞[;2bL4oC!"ؐњ_G/i!<%m%鄊A?f,0J$Bpl? O ߟ0|g׌@* @U=rNf?b L\>!Ƃΰ(Ի 2|quu.hPp`#uTny7&7 ui{`b%&h߷/$elw'H 5.duI?˫7xW2U=Rlܔ#◼l.ZR 3F%a?&X6?_վN$:,_ìBUev=/汘uSUv?9^;`5'U4߇e~h:Aiބ&*goؤl)Q;*^X 5罇nM=?Үgm_Qx.^rK,!`Y^RajŧXbg_S"vՓA800EJRJЪk/ϕgQ ƴV`% =ɬQ6PTgVyNӮLcFcs?6`..:z~3TыYhgl|ʡW%Ġ #ul#K!}Y: pJ|{Ĝt駾3na)2uWhmfc"5<-A1DT)Gfp) jJ w% %g*\dH]yE|[@?moxb<(bЯBivcmAl Г%]nlns:\$2rZ ]Q Թ VdN(~= N!$^x-`&N:AB4BCG.NhZ0|$ dĘ - ڵ1ܕSoi;V6I7lLUC7%(QИJPt)=̦v9ij5ꗖU8r}p /Z8[hmC@NL~/MeO d .eپANF2n5z8|^fc4}êWٍoFѧv@Dz e$U^1X]C~66󖅥H$^|ߡHY'!(Vg|{-ܪyY͈'BCp0k: =-  0B̈ٸ5)ju?U8j=jjr{O} 0k[~"2_ἚzPoeBu׼9SzETVMyv#)j9"z@ 5(BR #x (K̢䋢ﲲhZwKK+g3=: Cwgq{`j_'qo>խ<.-7AFxY72='y oOqz&?87ΰSڄ׸AR'D_{{u._&`[<q\sl,S7C=,XZ3Tw[E<qjB^^Q}6PmBi"~ {Qc\9|W /缕ݠ;1GHC^!Rnnħ!2Et&~pB ,b_T8J!P,5!d/dA8C<Ⳃ?h-F)(aYt՗)*-(C^pqb>^[s^ޫ00nΑC6۞ _ZsC`0 =Й96r85=nSɌt;]M1Q뢌l.z$fyz Q՘}y"j( ue$`Ԑj[(mէ.L38W+vi !A+DRlG.eos,tCܘVnRX &+`·ņb-ҩ~iF7 ON>Tn~]E|!yFP<nCSNr6qHYc׼0NdG!5u|GJ4Ě^T3ZkUj= f:,JEٜivnRpya†˝ĚX?{z6X84EpeT rKex+e v~Ӵ]ËBucF2PH"`/ڐ`PoFkہv-ٳ$xU`S|Ϋ\N6B7i),2p0d~iC#Q"߼Wkk%HR8p]nf%f rB3HNOojo<ek@z~7|\1azѷ|1KÈ~S*&qO 7O!J(hv<X"S7A= (e xdV6Jo5_Cɑf\ v:.|U߰ `GH+Obc\!n4k+鹳J@`kj^Gl @f 6V[#/p㣫NlpA:gڎ˟fdu%Qe43bZbtvtX^r-H?sh5NW[9)NnM+V}tq=p4}B:ZzZ%Yqm^2wXv  ~?7Ԟg6X9'r=vǁiLz_yP`ʏSF: C8awQ L]Ls4Δ _]0#Z8lh/Ȍ^[K@5}~z\\>mS3d;s3hbrYS3M[b3#IrܴSĄ-J^x]2Ir 큩w=Qn}yIP6 H*XV4wkۑ3>cG4o3TW}/V}-:YC$Mڝc mF ơfG—z1a*rW$@|'0c745C0=|Z_KM8PY|-R!ݔ/[7@'JkeX_)us-ƪI8qiw0Vԁ 4'7>DyM64hB]I/ lApڥn+QZ ( HRd߯"وr@APJԨD.xu|!:E-]DŽ1e\tC޶wze\._)'@ l{S+5G)p}Jq٦PbRaoiLv3| GdpOE&-]Ƭu6p}5gvgl &ylJ1bNUDvdCOA󱿡s(<Ѽ C > h- ͒vQAE}=r԰ƚ:?=HY2wa*I% #:oڅ 1LO,۸S<Dox a7),|`-IU[[_)<G:*^a5HB?#-|)Jv8|4l : m?1Ӳ )X,:$t <,ߦߡ_+a0#EDa { yEɄ_?)ɀk E\ ߐ- +xV&XD%䜬q M~ \HQ7'KmZ[yåyDSkob!ȱxQaz"m=AAWV1=sfcg. }cqy7H:+1/?.!Qg@IK%,4 ojyNϝ"nq7AR;c_4;o_61נ!3 A~vG0Zx ɖ,Mku_t}*Wa>ZVsBk}C+u^֢ZKa.%( h5UU֛!Ξ]fv_U)Eץ*EwHd'ze9 {qt3 <%xH᥸A/WUz7zĥE}T ڠӭLyՠCzYBgG28"6:YSǁʆ8U@b ?VVf3+O<:GuZ=-WGT}`V;~K "DgX#\iVN=%h@"zhI1oe D!nkNH|T "!}qk5톉)+QXf6Pw.iVkfuԔ)bq|Y$KxS 4pZ\r,vMٜ=4ҍjH˿ ӂmW}/uL%!s~I+ew@ Tr4橳Q@σEZ9 aE}s 'ǑzhTW& _t@ɧ7a@$3Z1gmoJ}_A?~ r!g+/nnY&z v38-]ju#IC  ͨ=! ˇv]S:M6n{.?ɻw=>Ʉ_TB*yl \(UvT~趸MNKL *jcPl{b\Z؂gU*jg"pi}֯7W.0eFݗ84./c(E =zA ϚǒA\(& ݫCՁuj#9Kj}2Dͣ^hJlP e2|EVԨOՑfh;af~ί~xȂՕa_$_Syekm< ,8k4p!"žAg1KVDo"{$bͣS) W rԀR9öaV~CAuܮNGTVo[+hQp3@ɹat М n6MC% !`I&*LNLCʬt*uu3,%!YzCQGXlT? r pBP)Hy8R;-iiti@Ր׀M$! Jyp+nk(U[-JSQToRDF5[~!E33:7_E\ru.!~/cuu s61bA2b9;b#d|@Դ`oPui)&( 8Sqfth<}qZM:TLo{~IEcrg> co!&U _ H&BZu27 eq3bȘtA\HAxUoYw~ Z#C/ٹ\t3 Oym> Ȝ[iű͡]4tTh=!,~qp1RFΔ ޙEᕥ2Œ ߑ;#e#ΓNb+h(9QvTE|n[6rKQ*(z ywCvjٟph"ke@C-jh jnHCs{REiuɞ+34dlF[9h+n%Y4ɬb=6j)FطO-ž;3FvR؉d#ۋǛ%`Z!wj{NX!(' Zu,M܊f_ &'1i/s ߜHHI/T@'˹ףh u}LNXr\2V;EklblI *UVnywv(X}dh({t @ \;%.\JjzO]J&H1ZΧgCVigW ş`=&)F$V/4hO{P#:iS˟X,rԍGƟ8Z1ср[Slћ?ɢK쁇Q{/#"\u9Ӈ-mr2`p^DŽ~ #~*劤oBJퟲ:ix2'2 @.%_ k;yDaNVaЬ(5딑31Bf:*s1 x7$ʼ.j ?ϠwŽ ꀘWm Ã@}isәJx@jBt6϶YK3j^@CJJ"@b Rc\ҋ@ny#*MʭY1AT+N0o(*.Eqs 0^׀iz-:t[ynOy\u3 |6nL_%S wn#׫( VAw{#:9etl.u2J4oqg~*oڀ?>/!޹/<0YY;qkU[~& 3q?_#6L9rI*17e;Ii*>ԐS*-y03 vDD{k]CF$Gv+:$1- {a vY(gds<4D{XyaeKʌKL<s8z7<ߍ|\잌Pt+a _731z艀u  I<}ePiQSAS7Ya6*$B-yo_0 [#nzޤI "F[ךz sF}`sN(̶ޡlgl{8Մg8xHq}30>kÒѰ(4wqf{M]6. FΪLVNH e)ƞݏ\w` PX|X&J[>W"%&A,ǽ;w=ArT8 ڞ܏eׁ4 `XSQGy]%sA@+ڋNG;#l/Δ`Ýpu8JAAT{G,@$u YՖ)R*N TUFM>V| 04"襂TGhKȕ+:ČI]k:9gvs{J`=R5T'Ds SNW}c?̂까=ՠQp΋>ès,&IEV6=_of#_8BxCt:4y -gFzKZ4-Va WmňMPLU#QDN>,}l-DTLwl{!18ob_aGu/XE@:wY_`!I5Qw ylS^RF^>R?2!(pB*hJI MF~.+7K*Cxh<\/IjBro o6EI.τd+GXiʵCZs=2N|ʃv˵x箧F _DAqUulBkBQήk]FtCZ1B1X OkwH_E9ѕY(.ǵ]Z(INܐO8'[$thW 2 4V>ul4CU+.^Gn2 ko#ւ|}sUQ>Ѩydvb}J޽eUCV݂aQm~>0K=U7.}4ZGyJfo$4 Yol#6xgoJ{$Ŝ\ZxZq$ 8Gz~DG4:z rAB'#S7usw D}! $w3q{m.əC zP-?";T"bPeޘdOV׭}{StՈp`5Qm.hlkU^dͮn;JJk0쌳Rû}P-4cq]KpM_ZE}VZlE9p]5Dd".c']ieӚ%% {yl6*{hDTF\IM"1)@\͉}+Lv[Ֆz;R #U酿Y:-K^?X'9Qk;KHVXG߷iPf0mkҙj%(\A'9?a+< Xv+4bɂh@ԧ%RH#vEk\!_&qúaq#>#@9iYrWWibU?'(:ّ5 :v *Ga!?e2մOD-~+*רv?Ua䭩yt$3x97 K`H,KqvGi1Ǚ-a# *H+d$Zp SF`P~4xByrIMyN(l_gb&c1YԠr`,O8TAvd|x Y+)8z,N(:N+TwNf{bbEOC˧|@.hř/ʀMJ㙱`"|㈈A>3-XeN{´$>ɔQo(Y * =7/.}ղzn meqiґ@Gch$\@zEU@VAڵo!^]Ԍ_:n`֚o>=7D{v. _<4q0F+W'pA^a¢] bg>ÅcyvҮԆM3^Y&?j({&ϓoA)rEMr5l@m엱%O. _f,m)PR'YG$[bT9/tMtr{7 gM- GF:mFN7+I.>-8D{6}[V#ܽ@Y;&mJ_+6$_(<13tD~|t#_^;rPe;7Q)hy憶-ʛP T5ˆ?v7郻=&hOy-O؀g# b)gZ>Wy0 :gm@Ȁ D{!MP@(P<#g7(nvgJL>=$H)1@/ ت ak;g,se9_Uu9 >+f-,0pf=牘Ҧ XYq4w!s$X1x^uT|tokId"s3ĚMސ`-e܆#c뛹MV:oj:I>Wg4`ltWm,L@hEpJP]qb`S?cWZ}uXSryH%VIR #BL٤Rr]JtM7C:`v1|, )}k҆@_m_xk@aGSk7ceב   0XPڦ~}:*Ͷe%> 8T*Caa8 s Br`]6j6)%CPB/CJXEV}$ 8K*0gY].ތ8 <0a09TAilz 4 2kGM&. `o}[/I [amŜ1hKO[ _J(7/:>𞭟Kln^&f+o*#ay&CFh|fSC,0$;-RN}{7q/S"sAKK?+ "Ofg])D^:T6(ڌvS_@z,lQxU(@GfK0̣OB0hg$6LN6DY4R_9 lI+M}Jt )Laz[OG0*GK jpFne^3oqYj?SwuRqCʱ55aQn047>#Roh^XoV_] 1͟iت v!4U:=@:kf!a #,A$v_&n X]'va>EivyW/Zk?N>mfVNxtbwWX#N['3Gx8RaWR ]wWk߉H/K^nlmf(ڏ4pCM4o~P:Nz ʠ ZGѹ!~J:%2G/qmy.̀r&O~Gt{1ʏ^o3i 51e)2kOM}V9=^Nqr !χ/4Ʉ(#Xa(-UKQ.ryM2Yr%>5s  DחV~t!(̭Pp*R ' 5h2H-p T_6>3&>-gp2tjå7]zO6!_؅ACpW,9Pq90EX4fUfDg!yJBc%zi̙}&,I&Uas ,lAJwjpAVOY mz \8ϪI!y`=k:֯`7ҾLP [Mu;HҖ|Y;+TՎ !ӛ-Ï|"EKO@ Q2|=ܞGzfo^IpM/V>! v7+եa' U0V:y؆U8vvd!( e{-Pp#fq7X]xij]w;?ng<a0ү f^2:oᥙ12Yn=FOԏ4HdfqmʸZp c sݫ$):y~՛CމpJ@6禑`j?&т%KzFҺs[!'лu,7j~ka;"-ey0O<ȆdKmO`w=\xLx6 fKmXfA$hPXf`٨RGsHW:Ϥl?ϱS9fp;>+4ͣ^eо>T) ʀIt(/8 /OWR \'"| 1T;Ĝ՛g[aHP3:J5cB ?!PC/ 1!_xI/qXv=R2^Լ紺p,$˽Qٻ٦ |;ͯ.. =,[AvR.r4K*/#lk)\7"j3/=A QG"Q%B H]! /xߛ={~V:k0L "{ߡѴڲGEO4kBk5źSި(8*X(+ʺ nK.l0;:E{oůI'JV1&jCaQ=3z$?{c}$Ai  l;XZ9ogvۧĨhCi8"IgƊ<3ʔVgs? Wg`zt1 D.Op=~G ƦMx‚S-~6psAzAfV]p<ܦ%k1epD)<qS!ڐ4-I c˚2=^ |ɬM"lns fA?.^ m/ {w0%jpͧ9fNlrp|{ɆZBX2&ܻ%-e-ÙFbY$7 ~@m+IT:Xb@PzȳBYVHni#IM ~sE/qr~* #q\#Wo鄴!eOm <`AM=chpTόk#đBR)4$vcBoH,wc?>V{q~@ou 9M좌˃xo5*;U\~t 粦# w%0h:c'@EH^ViGH36eQY)9Scyw|![5F_mg.v߭#Bɰ3$EJ_P#,؉mI0콆&m6mؠv,Ζ0=*vŮ΋}،;rv-k$dYVf[rkc[= ?o߇#弯;ٝ&,sJ!HC`׈>Mp<ęn%38l'4݉ ) zRؠ'Gje`q"q1s#2H؎g~nCGm18!Xbu$_]@ԱLNA)Ow#{Z`ɘ-=oCnGvgi4#vUz/NPyMSSٶ JF?92t7&h{(L7]II")Sk=&{.+v)}`QS*FuiiOϪ07bLz|ehXV-)'Qdnԕi{9뷳v; e|x0e1C(FB.ɱӑvB(_#9< *"-rVv,=yޔ|?BXe`+0gØ+cl1C",obJMvA.lVxN;ޛ:Øy#ls~͇p !HrGx XQԲ;BhhTx)l3ӰV/iTw"?֊=츿?Pז4 j iOO֕+%2z^WA):/wmLDO:ۗU ĩlJazPZ(3#Y=\(=$T<O ;ѯ0o+H{ϰ5folr|ҹל"}wH_@Pr|{US*Ecn66ԭRQCdCЎ%'Jx0 ,\&R"PF 5, ;}hk,H({ޠ<,إ)Ytcδ.KreӁ}#nGRh11YKĢexrh|7QvthsS&L.2S!~KjT Քπ]%LV*h-.E"$yxLWf-&6WD$MNKK 5 4}07^JiV*@%C1|(GPeǟDpcD3 r ?* ӫVOث,H; )MVztb: :N) M3"Y(hk{}gkFBN;$w-pku=G(<W*dLs"x$jJdrCӿ^ͅߑx[CGxx=hD_G7 <:xu&6%>:p>*mpP/sig]' >q4,/x*GmW$Hc Ci7'Tݧ:* GO/e{}l:(R6՗|-|pF*HDX@d@m[|+{_e1"Xk<)sW18X|ZlQ8 eV9qjظЕvܖ .k)$g%PB kv^ZD[')*ƹ/gþU{bk TI#d>gPl> pK : gO@/;Kdd4HL6hڹ$Ł>PyDRUc#5g6qPSS>HkyU'czb7cH7Ojlg\o;nm#B;1DI5eDy^gp~셈91jMt'RAӈ$ŏd{эCǣbE;E2#<A<^oxK 4 .FOǙwS_AQ?`F2=[աx_מʳ@berhxld-H`,iҰ^9[E07}RG# ;3A!F|shAȭq~ф۩j6 S}0jO<ĵ@1l?5׻tw:_gw^I`/8ݠo*yA;"i ao le&anv7`juT[:xʞ](--ب,H ^p73|f=5i`Rz=xf.7tw\"Ӄ_yde u6sSх'nsA,V5BtQ‹<)erBYdxD>Q 6B[EB͡C>ߎL_Փ@1~M͵U6HX‚7NᲭ٥TXTJŒ4i#ꉧZ8p V IΝi…oD6,w0\3cJim fqĚ]cؗ O |껌2JƴY!kD{څğ]APiN";ٞ "V}%$[r(Qhاi[_DrHdG3RTߝK*_M%<6 "F]dCf>'m 2<&T@*JЭL{rf I& }G· CLvטA'8 ąD7Â"9ZN tܼ(6uoDſ"0^ ĴM)AxLNQ~kcCaB$Qb|]2xJ<˾f:!hANэɤ#͊3^ `uv@C14'S{T&";3U!Bnzy4D5zW[KÕ]Gshc!`e 6-}O-g7W,4µOЯ*YjGUف &$+x f[mx^@/>}M65yy5-mɈ.SX:brG'S7" fr^&9tvq+j]f|փAhsre'ōψfB{jft]UZ֦*ƞٽq\l7t*D4 y{($8,ek *. 0ŧ] YJn ,*Ƴ ^?[u u5]l9fbm4\?y6&N4l!y(P^! 85$Xd&]g'GGI?#D́zɻdR%#3^n{$>Ӽuכ# n0(El<Ԗ0BMH( 8&F2 3YBf'c aۄ!U~|o^'kv)PUNh$ZKIpʪ&4dm#1VlϚl7Q-=Y=qz~9;Ɩm1N-Ő^70a8̩5[TO舖|DL ?=t{Xs%VRr^K$E׶ ^ hEK$#顰fI{Pe$a遁v{ډ׸'GxAN:ʩm4)3嘛ƒ}>?aA=\{#Vas%M3Nbw!톝>YqQ@^rs=*rMyed$% G)`O!2xF>!f^UFg1ǟny#Ԕ=H k@9k) E!?tuS^݅|!`Z1/Fϱ3-sMkD{;k9܍ۤ9ͥhHfsb7`W!sbeSL|kwN ɯp!\"]?8s=0yI#!Tx˙=]C) Vvk-ӥm7b33(j!-Ma%C| lU@"]n'`i0g| pri_Oc5&Ĕ`]LZ9p 6pL# "cxrjq5Gh~@z|4uCgOgվsGrrƈ f⡆ U)2eR;*)Ӗtc6UTq8#2=S%|R2YiyFe꩒.E[S]`pJ]Δuфބ 1Դ=wO!X0,k-@ir@F]Y3&㨘ϮUy+=*QwzB2/ + j6uw#HfFB DKflcO7|xU6M(u+]u~4Z }= UGi(o{~n^mD8YlYV)iSl%"A 9u=Q]:ʉ!4oD&>{v.`8̉ p}(zۑJ*آ^ࢥt6fSEu|͍?oPi:nd_9JCǚ:o h-== 5!+ d" ƭAw׀Q )s7ŒX(ǥϼ|ʵSgM39d T$;l^Jz۫ʉ v5+-9R28qwZf d8(#5Đ <ޱ@bѣD :/ݺARĈ)%51(4Binp:c3.1@[#vz"23  T #@K}u:g"`'"/FEhZs\$ dBvnL+cN]-TGQo~|f~h S{^U<-1BFd8zP b7TV~zw(WO8)[=JJ T;4y0kJ73B‰C\c1Εó cd"]n2^^=m9ƟvUOͷba'^(rzHVGͬݑ)=Sh=y-RDab?M<|O@Mf2:T}X+vQKQ1 x,?u2vͫ\Eq>+F<:8>#m!fXk[ 䯇O7CݸdV}%1\oQj'ZmJph(*(KWϭ-B9 ,wn-a]s`ψPHb8ࡺjcՋٹX9BN7iq‚E,Bw^ S<p~VV׳1ԡAqTpj7Lj$ @(WZ{V@mX#R)h8]ƷHS"į&=%QbD%4H u.»cX}m63sW B^3W?m\?nHz+֞1Y^)N;籥Kmvsdw.M,>zHZyÙn?b; Ok;턗U6h[~%,PlM=6u3WYjWkBŶn6CiVC8硪[2uvIs9:=TbE(Sۣ˛Slq+4 52dQk+.Q9 '٩6@wϹ9l;y.IPVcoɔ;"6w >!˸}i뜨w`dK[`R֐뎍48- hEt&M†2d"ɳ`TܙZT\,X*LЎ)%擒FP *a[bp;6n|,vpaqQd77#ge9HL4uX1m9,MdUʟk]d>=k&DBeؙt\=ǝߐl\Xgϛbd¡ hD0YTB홴<8amyrdS'^vMo6쉸\|5whGE"ٻMn7` [x5_2+Uh;7Epr&&suG颾r .oӠsUKoe2vےfKԠc *p؎)MdfgqIsaXFĉ :Yfd Wf`/ا5sUo8B kעa<,X_J=Ovy+r)/x1&' $pSqu~B2>݀\HNtS&!啚F"/Z tLb=Db)~t֛iӭ|ѵe=A\1Ar/;= -I#44` c98_pt1Itux]"J\)w.֍J܏:`&7n"ۨrs3io&¡b} u]AJl?)#}i!!Bkއ*%T sU{{Ur.EE]$7ߟIqC lxNpxt? yiCS\B뿴#XLHf nq=o?b̧bxR8Lb C鋬*<8a{.cCV\dOzsQ.MXԶadfw\ I"CjP5>,4 2Pq)tNWP%Vm}$/3s,*e Ѣ^1_o E?{s|Gw 0/0$+ZB*$%dD~_u]ߚOm5qsw >&y*[!(c=X w>i ubAjC {Vyi1dyػ(d m7{nmMgu: ]b[-S"qJ\zG)ua7t=aBJ;0~m#`R|xb tIA#~.NHU~/<E j'rƪC#*+ x Y@FPfsgiʡbhf""][][ł6F}| $%zQNݰ*Tۜ꥿*Zt9{qF h"5UOq\&cr*CY(OcN H,TM 0we.H~ذέUu~oV?A}n^GOfX'#Q⠺IXEB/g :J ^pe5:RbRbu$rqYQC:z OĮ:`7UQ A3P-|+#Tګsvၧ3mJ4;;~?sc' ɳY1| ]I'U<%5+?W`qZ"7Gw/A{~9S(@PmLm 2g@y;}j˞-O$e n9K!g ܻ"¿;\.|1tlڅ_ s"=u-(LӖT ݴPm:]쪵(sߚsmSݔNp'|el=5r@] |)ȯ%*g^9k=+ݿ ? {(1k{\.H\{ͣ 8I ̩/Nv3-d*N|̈́[勽'gE fR~ҎA ā[Np)=vߤ?|Zf,Q3@lz+m53AY!>,D-k$O$LXG&$toHj,K:t{٢m6#0D߸aTZ8 ^ ].D/P5\}=I<_d=QƱQƇԘey9P|/%hpEԟ%]jx *M[AbW$$Z\ ޢܩ˱d}j(KxһiBg hpyqzqxLDt7l[g#S!P'i,L^Y?Wx Ԉ; 3E9CHkZ2 <*nIwO}gNvPN4R/yi(i5f\W(Vo`P&Ecx*0mѱ>P̺-<uuΟ[T,2dv*qH!p%uu1 ُ_!XY!^!lą¥HR2n31e*ߌh?ZCo%?g?&}ٮ kjyvV7C8%E3?#D$= zL=1-re9AeDbE5؞IbEu+tcaiS~l %^Y"‚tS)ı'ߔQ<Ȫo>/TO!=?a5@Q/^ja LCfk(~<]$mg%Gs!vCN@ tcW/ǐns_I?6k]I1 iwW]frqibD4)8r![h55DY\~G(9QXUv_/Ik~LH3[R:XqR͠BG &k[$=mA>JO_U9CD:\q6D-z76MY2<CU?]i;qP<X N;<oѐ-.K9 ԰'hu7|L#۶Ob Yb 䧣xsClEBykYo2g։ )E}큆` kt?{t9WC?qҩK -Vvґz|nIv#Ӧ4AHm![]8'['_h pw'"o BHn4"=@nSgA |4O&ёỶD)1? z=vU,!ZJi GoU^uF4}ԭooA]8F3"pdEZ_5E˕Fogn·mk&<%oKBB'2ױ&x+:mރnL)633㋽إ`f"x9A/[88R㱘f_KA]q,;NvV[ R^‹V6]|%hKРM6ILٗ+O`X.J^@r<8;2K~:]C.*`/{da[eO6m!pvii(w,8l7U8_~GVL"B _1[SgFȆU<>ƒ9GF)XTFӊhrDಯ/Lg[BgBj_`~ w)2H!qn4t4`PG:ZML];G<[n tfE[; $ulnC?T-udj, H![H %RlMdl&@YCQ!44U$g1f=<JZ˾"ZKƎdmVX\f*K6n#jĉ>[.+42Q/O6!bT!H2h%`;%;OWdWT _S :X+mI_W{*|HAÉtTI)dUO( I Koo ~YFzB-:!ѷ>D%SbԳ.nv $ $8OHIFgXLawquKPAfQDAȬ:3UQuHm>P9wX_T b Dbm-b­q2'%)ajfdEfxZ+VImj 1}Syd[bٞ#5IFIZhjkN۲dQ3/ŐWMZH㮾LI+0嗢=CKLg+ei,'!J fbV16AD;/=2+f" GӶTD),$:$͊5T rSt2`xCQY͢vِ?I=gఃU:j,{ _2ބkl:cS]Ѱe{We h#k! a \ֈ Vi'= _ 䓸N<sf}Y/Yx"x٦S'ߺq ґz 2AaLf&ZMmYO4^N#H^M/lŽ{)5Cu+N3-v("' !$u,>pORhh`@Yߛ?b[υ&xITp^SA#n4EGfVEBxVx{W>kx2OH4j|cCst…Bs_4Nĉn3u+ubkgyҖYb0cUizCCGe" `L2Ht˰)`ٍ}' sIRs╄zWPF"@t CU)H]*:cQJmn@0hc.j"5#MJ$~f1ȒޫaU俠N x\i+SR\lʯBgPΠ Ozeۿ}tjR(W* fNۻf ֤߶Kt+cȒMcJzƊlB-i\%1uLQ ߼" ,@bT{y,B\}|J} q "%P4,xގ(gK0&xHR_q{buOt^MWc2D hgn鮱 ᚺbIS6gK$ƝͰ7hG!/@%2*-M[5'踕td)>Oհ)^ޏz$Y(D/.ߠ8:4ܴM`rʑˁT%*J5dx scF2YGƗHSp&ّF  %Q!vdbU?/YXFQ@U2GLkY0 5 >z;^Vq .i[>/F튄;+0ƥ)霣'ibo :9hX+lJ%v+G `ܯBXt2:_t5sbڊf˅YPe9k>!ySo+" 2#7VTgM٠?Fο*F7\1`o7h}%PQshs_r$a3b}b eq8U'{]Xσ[IrH3^=1g|Bq[r"tCŸY ³lU˾ ETPʆ-@ҙyø2$HjS 9u9V{zddAb])܄vRNJQ`_ykӪ28[Q)PU7XhXh?,#5J{]4;~~lD2sķ3sÒj4L2+>4i%i%@(6X?q۰+xTY>YRYHƽ0eA P{.:L yb`[d3N~T{ԘbΜd ݞܮ@v(p#HC֤ffB=ʇE`:.H|xd./F3nCg4<48k{ v7XdvKQb0"K2z_' ݕ W76}hђ$F% Ŝ5gɠ1ZQ3% 8r?&\ݎ۝Y+ VC.QӪs&lS+R]\gDČQ|!)!/Y% u$g{` FX+`k/ EsYҧ2*g /:/_IE?a(qH:[4JfpDl"A<ڃ)JM>bT&VH;}-t@JGCgS>{Й纷Eƙp`+Ef2-NbJ̛[=9D'DwўA?k+~/>W>ͼt0t͍CxĪz6L!`.oRRV.?u7Ƅc̩GfAN$# TCzK܌,r$IQ9{ ʐJ\l5IGbEߨPo:Xg5y\e7U4HՖ!NHдΈ/7ܯJ8RQ}+GΗmG9Qy$o5?_b0_ol!-W4q a]gvfcI^q+P/gfmw6Xx=d EJVOi~jX!3ot~JlMr=#F"kCEi_H͂(0!Nvgai󱲯d7KDl-bޫ !gr*&}$K^(K\XHMIM^p˳]t:&`=lϪ"j> >dVʩo0yO:"(wI˶Ws[ѻ4~3JSriѫg#?5_}U\eɋ5Ds"إ6kMG~ȤwP/ԿQIP]WXQ쇬@F2 ~q n8*щa@uNZ6TdoI.gR#a]CBrbZz9ZwoO-2헧Rj{Xbo%Mkj~vJ*ze2Q;qp;uj &)K`7[VDdx,5nBʝ -"uh߳Qi{j mjQ(4Q']%.330)ZI7J6q >GI5Db)v7.p1~Kly@%T>$IpbA5ٯje^IEn/y9P#g3 5#B CͱNV|5Uo.4_鸜ږf'=; twߠcv3!rӸ1L5l >cQ.D3| *O6Zbו/.O{[Ԑ7edT*}lz{] 0.GF:;&ۮ$M{8$3?|>Ds-GRm磳[0s I-{Gi;))9([NVh`,`qx&WϏWmtq0Ȩ8K8%,CefV/&NRc #8EKʼn~:>/s^=Dl'FgmgB5** v~d4=).DPѬ^WGFw𗪵*Q dOxDEst/F9_f.z+ܫ6!Vp/,ǼTlE8aC5Y6ml/~Cuixæ8"QMITITirVKzpt܆ ჷ!xoV8 kvQPKd,2m'1/D>5^G0uW[ (^]B_޸{N,gi&_YXQ qEwj5PVFi046%ؾa1)~'qMdh"~U-$7zI}m6K@|# S>,a ޤˣM_PjF3(gG^ZEy?þ"+K!EՁS()LFJIvxH\N4 ۩YALBjAK쓡4TLH @-mXVWl6:?X8 .ZN/fs~();'\Gu^p"S1r99߁vksoY0q7.6v$P}ǖիmӑ^k.S: nщp N݀y:Hy 19:Ŀfأ~xg[gN@Q*pYZ%KڽG^kŝ޻sRIm6E#LMV= eVTt)TOÙKGv%rdd/@I ~cyfKO㉞,D"ga7-;Қ?yAIY\qV68ĠW2R>7!#,=~mɱ_ q¢i#ͦ'ꈱ4tʞ(m TrD F(E@|4V|MyZ 7ِDY/6 !W6Ϡ93m V.iPԺ]f SSo>l3oJKrdM ){`ؔ޺⧛Y[nd Ӿ}̛X:JV(C/67( LXZ4/dVaGؒPd@?@Gf>iHCs+0$}<Pi2{6 OU!Mʙy/4GqJ.@`Hf\&BͱVOI腘*Vt02Zq5?!+&w nR31qdaL +{н)S>N(z?R{r:Ӓl-U'WٺY,srKyiE(O\FbfamOǏ=y-w"w|YAE[@tMN_sRA(@ɔä h[@;&>/גi&#$()"=wijswfBU< yl&DJM nL3C'?H%W7GtdWi^ ''_JrjfRf 3sD;-ՠ6k 7Ul˱лKk9xt\.+!VfOo5YU`4Lņkv>jh B+6 3$,,M֤&r㗝<W]#Mu !#ЃS䞞JE`z٭DK[6:%5q-dK U ~ s~‘ υ GaZ$vn>WmI|T3jZ(̝*^嬅hfMg(S%Non츷G׼Fx}5.WF& %DX)y߁SCyMO[Tc%!tqn $plrTf0Z8urm: Hω^hag~2\!-3p @mR9ut )-+%Ԗ}Jvчz]b&e,\6-72xߜu>5L‚JAuͣhJ"uO/ok3LlҞ;^"f ppʟ2pA8B>qրrYT$d<&Rj /;%[]d7vAټWӎ1bNIKP~(][2I?tjtG$2I5/tSq`}o 1\\=[B(1CZ[fHap a)a0V(2g3/[lS4X׳6 :<$YSru# iGS_3Lq* vN/??).sPc$M ¸>'@^_HߏV5np g$j(#QGBRs/7િGL^Bawe $qw8Cr!XWkw V8&h+A~Ak!Ira\pRO%=3VI`I _FJQ|*~m i{K@`~`Eo"ҡ֗BEK{\X=:)w-8Kߛ9[ᖜ6r d${{Mn-sr&cD[G}pZH/ɬ̽Sкim4_%/!%~{ؤC钵D E6T@Cg,]n(q%16<-ϫ4JdȑM F)v1ű$G [ʽ4n$x:vY`=^/ hclaIK{-fT _/Cs̡ %2 3rsN^) 'b4٩5h Gǿ֫;ϨE*iFЧ7lIISzt:wbw=$U1l& u-?4oT:i{fiA9 C[Sl]E犢z#h턆Ձ$]~wQjt85EDcuDդ%$KfKe#ꭨP^cx=-ݯinm5]g >v|=>, 䆾SܗX†,Xhn {2) n4;u]bjd?gΈEvJC>a%MtPf0NOKWSizL)_,ڎy@"0kuFyR`4ae̕A y pB&S;Z]:rw ybŮF3BVϩ{ɸ?P"RgsP9qkWtK[WD"UqIBj6V}Z>N=![0*)9ka+`wWZ࠳Զҵ:gAʷm,pr zs1"P>k&{H!$ԧ8Cr7UD@:X)[] tA6BVY:־jףEICH/c'eyOC'͝o.,9jHЩ#5֊^άWv8DiM>SZbYpfgN* yٕm~K nQQxmPv n[yl:e.sBcÝ|B. yOSK{'ژJJ hn`QzP7P!`\<=%j2?>\m! ^֍J er&a7h0¬4/WE1(3qK>ZK.݌U$~v1Gx jg7qÎx|0 P(o _\5SU3, ;KmV%NGYRE 5{Hi.JKkABIfLE1bw &B{:F'iEq#v}5OawUrE.&ꄰxHR]]J.;Ŝx o6[<0lNV4&.|Ddٯu# -r+YH "t! HONҬR/">?KMlh6jF=r̀pb]C"!kh`DPt`?AoT$^=H}jH9;hjK%H&ZA9Ɗ)Wc/}TwֵCBp?9Av@MV u2itdN$"¢yΪ :U,CPn` 0㊤VK|l;KocjZn[ܦcBQgTrT2^3Y $̿ad|͟yS 'sAE;:˾h\h^~KΏnn QAuH*%Ge9\׻nAS t)ce_)bf0MԿsiH=VsC"_Eh00NOGS>t&&GqU#`,CePbvcXaį)`y>6Ɇ!a Kdީ a-Ptkm%6sK4󋙩*g3Xf (bZJ5Q"{4 [?(s~ʶ\bw :nkJ%:MO&t1*fN} rAdݐUXitoCjȒ £P4#5KvL$wpx.5V cـ߉$_5%'V(y<S@qa[IFt:Ǖ#qjj'-ZϢeH#r`}ՁW.ʋ%\5Xc3Ӛ,ϖ*ݸe}4Ga-紁6q>7?;9^ӟF@7jưz!w#7JLz9ү{ xz+6i "s Gh+ZsvvվfPO^&uMpv{E1ۢGrI|:?y8[#ԲZ"-94螋Vذ&-.}\A*MQdlbXqwH@E\JIV[ "E ֎=M6ƃ6+RghFW.|;ҋ7S| B0ulj\tI`|9dH/ΌMeV^e1a1\@@/y -&jK=Pi3c6qTj|;0Ӎ>Q yܮ30cpƤ&E#i!7A'ibniw19=2 Н 1^k6WmGa$7 L9$I^7ҭ ?hves,UQs}zht ?Ӥ''x`ɯ;7-xI])2~sdbeua{d1e &){`pλţD(nŘq2 Uھ!l /ܮ?9U#ܩwg:*xTLI SYIm!%]Ft$΋ .YESrݻ8v(VC_yiTLrL՟,+iNV 8o]ت%7RwtyZPd!B'ƦۯJ}f {ƚS] owɡ{X{ #OwMa]?X˜_qZzKQLF+rGLiCRwfR??t| Cu[#"b\w#=yU@3 |'>tVTz.7{• k6DL%ڳEeTϹ"|ۢ5[Gd pPJwem<,_n<H D oL{J[Oє-Bvtk9[*ސ?,!C?lLz5:P*Es7**nd+M&twVH2>j]>@BbĪq,Rw0Il&(L-ѠX;ztլ'B~$m&|(i#7_P$1(XX4Xs8&B6 i"Cq1ۊtHyJgeS{_D[pA$@،: ϓ{ uBT؎ks75 c5 JgjCߵ: 6Q@C8oNߘHXYFg 6V'%\IXXĴS,W&O4R[%*G(¸oyQtCzo1V \|bӫ+3u.8?PA%4en4hƗI=K;5JoB[opB ,Uf05aG2FU?l&ζicG7h=ic|;o>+Jy%QVK٨{q$ ]ZkJkVe'!-]脏T{9*j5%Oi:q"*$ѡǨtPkhPTH^caٔ$NTNbb'Ai[[ʦVy`;M^U1omk-` tҷ#e%ujMt溜`hVoq}MВ4\ZjΉDA'AHz),&d}84JjY%HXP yWJTn% N}h( ܠ$Rll s4uFk=n]B 0>0lupՂUv~ᒆD 6v+JVb2ل ĝKiD}׀K7_KSD郃;LUy-ۂ;W> r BV3oxBp_ c.q_GT<ü alC߿BЂLK?v/~#•0`I,tyB&D(Z;JZ u 9#ZwsPkQ jBfS0.t&lТ{Cgq41@a!C#EiT`- WPER(1RċE*+? (-y OQk`6ő-Ezq7). !M0fTFG`F 1 -xU:E:70UȚ8pK)vWSE=tƊ}DS![篴6) C )r~ ;eC@;s<~ԔDk)*z-OХ{ȣ4T: )wouϷZ}`iՍfȬue7xƜ7&0jk& ʊz0K-R)gg @9Nb4`shzt9N>cL `9.HqNXfxju{1T}HP`ݷkϕ!ciYoՂO7j_qGhYP'vhz+%d^FN?n]V63".HlBa R-;t}jbϢ 50)4kd5 (gd:ia! MWrn孝?")zܩ `rV2'ZyGԸua$Va Jc/-M6Uds„:eO0{yaW4e.}1:zd[w,檬Nʁd`]Qٜ!IPw7U8XfI\z%CcZ.ژD`^}74РY)Ig 3Grog炶[K_J$H0h?bT艊աZWV;#E&; cYET'CSޒ_?5؈b~' ]4e?)<>a,Crhڳ! dJ;)l2ƒ^Ie k$ @ EM]y2cfEEgb * [qx0U$ſQ?l$֢ڝxgǙ4Lvrg:4^dƯťwW&Ȗ@jboUGHeth^ r^V{G9XFdwnɿ,87Bw| [*;әS6Y[rsAG1H@uܘCw3kqJZ9O0|8 yF+ %fPB&:+T-eІc"ݠex]򏘎97-%}B[(~ 7` ǽW3< x-#;?裟,rZ7RxΡbQbfA?]9 q>JmKVm2 `tF{n)8@H }`)2`hGٛZH4Vi.UہA. wjZ2nٯTg"֫S& yЧ}O? -H<ǘd=.C̽i%H@tny1J=.N[dgCm HR3?H_FGEFBMھ \f'ܳDA}"e;brL56Ft!@feh Ώ41<;6(h,6:~ {ŔwD4OtJámi'_\^pLeκPիYa7%ItAa*yxG`&~R DrIa([gnXz.n(1D; lP#] ê)S@YH-0Ю/z!?mjtUPZؼK\VuS|1 4~}z<P}Tb ZZґ& Ma h( -?TʀyLS0rZ1hz|JP@G~w:Y2B0 Cs[~>Z{7xn*Veݫh*<J34ikfpqF=uV{Z>BkT YLH[Wsce5o)AWAz BtzJǁ-p {Y?MŘ{fm޶),[XG.K^δ:Lrr8+r{wؾOJ mm̂ <|Xc"r7r]1;/g 2  Qo첼љ0aj.<AG/'߉d>[aQظP.Ek)qPj!-4֦jЧ]Nv[igbfp7u@:I~D霴Tʠ, ?ʘЩT+_S+>܃k׻ijjN4HK>A:lUڽ ryt LKoRK (>ģ'N ߣaonkC%ml,BGN+^gzIKYYxgvfJ47OY媷Gıvﻩ:pc鞙ͭAr=jlEZ 47bJ3YӘ Y ~ D8?ҕ+jbE FPD=Iu {'L,P%xʛ*kAAzYdk}? U"r.t}sVi˯%kJpQ՞X1걩R*g5E zhe?~.FB)'Fm2$@tBǂoVd;SkܮcA|0je*cz뮃6mvEMDH*w::Af/ e4}pRc0tF_ 1͈O-ը`7qWG|fP Iw ?G5WM{=`&kOª֝C:E]76B4@0fY=e'{\*E^:{B"k7X БK;LM3TwNύ*&s`r2"NJ?8܎c iQfz?Am8!-LE4oh7A; e#M6TUUfΔl0Ve}Ēg}Cp~'Ǩ_E硰e4) :;Rg쨒lMhsW$y;w9W+7 u-_ ga>38 MOYKOLkr{Hۓ80)B*xo "Q\^8N?vϴ$$< KH7zݠW!rD % 8r &GFBPpB}eĚÆHr߾ȴ;ԋ@R| t[mE_Pzq$Xt>~1F)R{*}|,ݓgxc{q k| UJ;sr"#8Ė4VUcKqŕ0}TF(Au"Y3;~/G*8LbuNjh|i`Q=\Й׊u -֔-/ M?L[:pzi[Z2U!fP5 iBZtϪa|HMNغ.˝;;lH9-EYlwٽA4q+1ߢHO'Y>@5*cf(xV p۽yA4}̡3- mI)=_Xpk.V@$サ;wkKWtS=p4:D2#tǞ?}Gˣٚk1^ > 7UbTHa /_9_wSdXRR <$L^dA1v}kc$1>nͬkM30z<1cV8yGp>;DeG|e6Kk/@ei6=HbPd^)IdJfi\mixJ}!";B yQf0G+QM6s|b 4i'cZ4CDY!-<=0Xb"5>/m|80lmJ*xxZhq@}@in;5/TX %ע":G\;őodU]z|DgMY8/- 5FNzd(FVй ǝ[g2i5I OIL  0_L43jތ".Ot>psF- bU񦈜<]lh*͏ D0U#VE%" 4vX/bC|?mFe067"UyMLm#fCc!\a K^2:6h Я&r~ӷZ>~=s 8O~9y=:O 9) ⳇJ%nH $_K-S!b>B-9~`PrK)Ś 3 =yߜ#&P0=8 q'G(aHޕY~&Xh vY%Ք '`^XX{MqBra+i}5 hh Dc(XH}l14ھZNkA7 Oo:0,F67J%hMqAv"w / s](çe 6hWն 59S/'^_o @<㤪r:9d$ p`KGDljªy*ai贸vc)Ԕǒ˴%Ρ"xo΀ \ Lj8y屽Wpؤkq-@|j*Q%>@-4RxXV 0l)-\oE»dgxNv7b1%Ǎ!\!?iyMx揚k6P Wx\VM֦27L~G6g(:L)}?t[J^j)Pg؍T7fxM3i~@h$aIrdc/ȲGG)<@KᡮV'F9ԥW0ƷDڎ{Xa#%*ŅyP 6>rbf_3khu5„\+H#GEW歨|lp4ada U-.˛@Xs% x5ʴgBKzb!`Lr?8Ҥ%ȷܾIPӘ 4%֨/_W >`[ɬĈp&yhin/ϊwwy5h2ɚU;?CW=_퍍=3*9O|=UV>_Y'̴r$[2g47M* FbMʫ:w@hdKy{;[[Q0`9F _\0ڇ=VB=NGեOK=mG5b1G6r]L/n.nDnMt5WsQ9*Kޑ eh9Ww#}Wˆ^^c] vdЋ8.G>:g`Ic^fǗgG;8rݩd‚+26c%*^`4ìMx NBBC1g]G7  \cBAb' D|\MwtO<'2Mfl,e$*TQC1 op" z>_(7f15(1mueNJ\MClH=v;gz}qG7 d1M+Bm횦 xbH'cY'CnnH%ᑆӐؓ6s!֡FRA-q–x|D(T*c,Ojh6^ l=E5]"ܧRVbxu7xZ F|&f*M[R>[wR=Sut=֐G._, +ȕ2&_(n>~韚~i𤫨,PB>{J-snqVʧmWLA*ux$ E-Q)_nY8&ET;DŽ-H댙*htRwNyt`Qlꋫ)eb%WR^VS4d CFo1]AL>͈'Z#29§])IÁ0r+9 7A)<[\DOy^NUue-fPCx {0^cDyTsbo+GP5RJ,,gUAiW/UD!%q)=J?nW4E zab!ؑj*W%m/H+ǘW"05Lm U`yfQ3JGōI:cᗊND}#^m],#tpn?^oIs1߲0C'7E茇zҬV Q&-(Kx)DYnJtR'H;E%hud) * &/\aiqɿ?@1@}sWGތ#qiI%,|0!a[upOVɂP|2sh0Gv"6fCznf _f1RSͯG\e, ^}]ͩYrzt]4ۍef&. eeI1]Jk)kR3[j @ʌl%p +)6:qϼZrV8R՞ s̒ :R9 /sY V i9 9jS?ycRlD5C"7i,4 YanT͎E9F|pWG/JM`f?&r6+򸉘0\)AWklJjAKv5p%AA*eQx/]PhY(J0L +<6z<Exd~s1{2ܮ,֙&9fi@ R"{}V$1Ғ]TG1C̈́HR&Tj!@. |ߝ/h ٌe)*yO=;RwY}5ً]}g?sѮl]I}7v@~+"#e0Oze:ߕcE/%X7mI/^ؚS0O%'T\"~P<|+s>j (\fAlc]5OnmΧCl9ȉN /d 8C&b[0+KmUʹPfp\npS η)l(#j?E<@ATUNU+ӌ x}P|sK.i찅Hc2#|Stf(:[̏؃p[o"O"-cwӖN ]mp!7U &Mu&ќ/ڶbS\.Cû;qknw-R(/<ȌaN_re.~t?!%Un̳A]Ƨ!E-me$!N)Sպ#axYmS~M]B^ko&`0@j$hEl2cHoTV?A*#\ql# ZyH@L:12E8Ev^#W/2P/-+T,b8Q|\!Gdḍ2Aՙ?tZK /l9UCujEt#T\S,Һ Ik͋*KI5X`+zzqj%7`lwy!UkM$W5샇+'.PI{7f_v(>>?jKh5moB*썥"?h+[T I` L"'$caZ/Li 8"yP`)y/@CgkXhu3ūPZu떹icSe0',:GM ++0MgKec:q.kߩ{e3<%Կ7qThH*N#d܎ )A+L}* ƅ 6A/I^c=ÿsyN+t{<28yJѣ2odsGl#'e@Á[Q],1x UP2T`!N ~2T7`.ZLa u-_̢Kz{]ۗR]MMfnu=10`KQŧ[qfqs@Ġ0#z̬c6/>OD:vTb\B"#,$ cfH\c,x<2Ҍ1&Ba8rU;\+{ f1v^L vgω!D\1&UW9ndדdwrV=݉Rf1A[q:'9w+}Wc(]f}mv"`BtY,Y|FҷYhOη&ŊFk:Oo%zuRT1h.R؛BCO E!o;M~8{D}\+ sݓOux,4L7QJ.|Zo4pclu]a<=EV.=:ۦ(ltG!2dI]ia!k ΅QE•+z >Z5Հj, |ۼeDQ{TM# v DHFl8|x ƌ@5 v4>׈\[dݘӠd%xU GAo"췇[9^Y\kԿ# mb%b/%IF`7* ;OqnlN6+CyZ  z`K`u|&sm7]Nu\-Һuy&tUzꠓ A_kTPEđ(ml4bHf) s^O'bwK7E>辻YvE"j<25Cg _AO+\-+uM/Vqqar{8pc ÓŬ|˞&W32)H,;:[jscSc#t-7%H4+6.VEJIU΅0.5 < K3y]ײ͑Liv6x/7pb9GvDU#%=~IKű;1PFryhJJ*[r.E#20hƭ RE$3 2 TMZG rZfiq| *SzAԁ2 I*Nd;X լ Q.´?fpO%35{V_C~.eȧROj͝p ,2t]^:7Bo__ZTǜ.v3#Ш$HJWIEp[,FWs12f .+쩖MJWm18~MwφN;\,!+ rC{-6ov'e.Ly|g5;=HX!z^S?qP^"3 !^vh6rum$Oz gH權;7G57U^,! Kj7HՄc o7œn" _k1%-[1q1j{4p/\祓8/z'Qz0=œ;)$|aΥI =ǰ{UY--KuiO4ߌs[]-Jسu9V{lolTkЬ+$5s;vߞ7֊>V(i$uuQ5<;ޕjR12h)Poh(6 9!FD7 F΢}+dsq >apxOVzDw_6 ^GP![UyjJ0g3?*}-qB6oқ0yZFY8/um~0cbP T4iٕλSu_Teyƀ$U~o 45poR()EoF)F<[ 7\:}GaszmQ?H*Q^c,= :%K6N5ϵ7wJ8 0؞$^s)E&-*m: }oGeb%PTaȤ[GʓWC_>Wz]A}}lɄvJA'AG Fv stDsk{67tFx!环x' &=; J~=ڻlR;,oq9<Jlk, t}6xPR:Ҁ/mTZ} -_?}3{F*Pv {WER\\DIO M3OQ=I#7'F^|M*{=U/ $U}ߊvJ *G )߅ȍ/Vr(4~9aI"!9EU_qz+NJ^:\Sޚ{Kz} 1r"N4`0pIt^"FX`){FSbl (ݰr7M _dn9DZva3 S⚑ٽ73Qu @8an`hrd5 QpH>1m`n9E&I3?JKdvcO4ڌpqb걳ȭ÷Nv3,,2%yI? ι`/?W+3Jtc chX tnTiD):c$ZX_I7v^Tn Tpj(Me)Ө%U!i7ZK M_Y/71^5ZC?szfSrxv| b Tjp~w/EV$OeR^J)yZSUR+[O{ӚٸjX8 ,i/Z<$mU cBh=- nZRTQ$'ui1_yU) ,Ǯ́lg>>9zyΈ8FgL44ʳ|& Ɣ-9:POVn /P0հW:o~5AtꀮFպ>9DTh Qus TH7n1Ha\xC-vj|#(>cv"Si01%/ 9ݹ~xm ڵ+ѕ.7ER\O1r(|7ߔ2+8b?c72)Xm]RuR9#ɌpVCZ5ޔ6s Ƕ?@0dDN;6g̛JD%JŌD$uLݑ2蘸'念KUsR+VFmh8]drƅE &SaRQq`\4&qdywR۹nhŕRe 7e(`1\\*ْd|TI^-fY)ji]:Pz-GҢ Zz,|@:z!p!y&@g敿z+#9Hl}~ 5S [wYW4z?K1TeX")FP\T]J,O8X}eH"֋./kRsycKezn""M<t?"wOH?f,N ;=y^-_%l4*FC R`>qnZJn3ךޓ3nL=7o/dLzXNtO..vնĕC%|>GC8KBi&6^؝`{OziׄlTAh,#l6fM%NTjKD? bHW]ٺ^w/w)=ȹXܼ6 U*<Ћraߙ0 Z$٬5C赺x"lp f&BU!2(Pŷ#cp6])<pL*N\l"!l.ke>׷Q-"$witl83JFɔEې?dF_ :?s@Qw)rpBk^G(H~MGU r=ıl$\u ٮY%wx®I͹"crd$?&%*?e[ nỌ nJt0X+J7zyϑhfJ5OS00.kwHOպL˅Rv3oҰ?#{4IKo4g٨zν+C!A☌CisoyƆyJT-"Po׍L=x)k'h@ +sN:@c^$l^\%>瀛FdY.6c)/J\k\9IrB .3UT3&:`8fG[-&3 ֌'c7~?#KbGm9^W;+ߝ ^rdY)?2r/F|"'XtyU ʉJoh%b@R)nX@dx}j_J, ks/d@ ;%vfIηB6` Azz_C`A-<60/T389/+4̋lx,4rԌb}qzͳ+2aﯸVH00q/nk}yXYlQxϕ8fbazRw؈t(K*F»d K˦S;{T(XυOg+34C->ɮJ\ͱwklhU٤†xPA謡Z_[j5&ZG)r[@phR?‹#_XǍA;6`@Ʒ+hBCR4u;?o'.PT_0++>Z>akzq,8c?JS%ݏ"{>I0" /G("9qc׈+kFoz:eW~Ѓmb9 }c(|tixw_wECe!8ւ͙VT٪t\ܞd]em4ϒA,+ǫΛKŻ sKf|0ݒS D|h`ZgoKsRt?,1T7jȢ"v*EM4-vt{b;<+ ُ%Q"}`k^z`rOitkxO܃ZK:dG~t4^Xg0*la:T8.QJ/p>`Dyf&X(,|o 2=E"v*F3R-)ס%^jzqR|-]0J#мfnjA"ƅ-%1 y'U 2o6F[jWR$c<|X&WWB urOy{NY*:(zgNؐj: h5bD5 uB|TBĻO\$605L_vlyQ{kRQh\aU鍴g+d `\hs Em@m 1*}1Dra6q8Rԧ&QwY#5KG$Γ;IcF8xwI`( {z6>S10$U4>8;F7! WvYJ,A뮵ȻVC@?Rfm<緛 ڱU v%-6jBdZX9Wb1 0%E 1yjTR^瀆0>XQZ E-& "EpTdhzAV OwƟI4j3<1 >'Є[%`ic8T%pD*QBm[ȣGi&:'P5 8c}"Kwh&/tRu_:*h=<c[RjlҜԘ-Kf<?z.*vS4n zBDdR Xyz/N]]\: IHZ4 FW R~}t~nziM*;Qy7c3̱Q͕gs81U*\9D1jyrL ׽cQYv9:{Z6/݈ذzXۭYG5>ߪG[4[6Mfv 'QUEUq,蛬*L11 wJ1_ aT(K/Yg$?z 9WdZȂlt5P%:Tه&Ee\sR6ua8P%V^+M9Vnq5`o)=ٚ0n};X:T֢{7Ar- Z_Ò.`m/hEF6#6Aq+YqHxܑ9QW sfFOd(}tk|G%E@aQ$}(g4C}S(l Bdq"ͺ^!NjwFgXF;YSW>vybǬ ~D}K'$+EޑvG<8q"OC xɯ۞cN=@DӧCKvSo`YYVo0hwmS{>~p)Ugb]RP%K$/j}B7< #qʈIKa*<u;)!@]5|}'?y͑e`UK]4&ͶXյ쥄md[׌@2;a2ب?UCJs\Ykޟ wtх?޵6|;A'Qq}r6c"<Ğ$bdBcVRC_I"#;FxJE]M2u~RU [>Qr.9crYJa@YM FMx;[g<UM{-<0nR'T'ϗ'"͚^xM2n^} |YKДa-[gX$)'Nx j|`8⡋?T6tLP }*us;G> hO"`,>e53AUȚe%R {&`3M;{P?O왚sm,YLL)i:Dz}'k Y ft5TY(ry}lJd:;_z kaB7YJ퉆:i#B@n` ~@$Ѯ$gLUʫƮrf5Lv-Ctr8.u7S)y r çҡ%V[B[Ǝuw\t;!U#'FnCh7i!Ht}^l _f# 9k~S^EvdSHGҁdGTDv%. ;>#MF!0@dY*-l4(fHaݳҙ[f[ujtַ>lT4pksVC8 2*p̪7oWmm|z #\4 T_nѲJ|ᅒ9r6"L[wfE0e 3dud`jyvH5& YОDeB2{,+O]ˣETTǎiB4pQ'yxH'@lg]LR0Zٺ@>heі&>~0.,6ozxG[VFzih8z沼IaM,}ODN&M8;)@2 xS<`+1BAT[tC#06O"1c_*?V ݩf+Sh">@6_EqXX뼍/%$]㔝*><OQCeQQ2XNAo΂x}PyC qiPt ahm(alsl# U@`$*/K WQ=Ce_'+n7[g!9BEK+9xWoOdʸ %u"!>RQA d"G>Ê[>_:&,`37D5?&V_Ro&s1{&,΄"֘*Awrգ,Koׅe{eDXRUW4sA94O+vHf_JZ F. [@y9Z\'nko_RY^pljJ9O " ed*&K{/A !Ҙ ZFcy~ZԹM>۞X)I RzԳ3J|v,p`y/f'S%,%҃ {.B{ C5ݑGi?F, {H>|M1%C![qʄ3hQ]UFzZW[dOs!!W[h>vd847%=e[',rZ@&c$ tldh d_] ) /ecE9obu@  +4fFoHٻ/_=&i_ޭi@#RXX#qVYAӪ3┞϶+U䰸 껎p܀E<9{nmWڇ/W"]Dn]DMdEn$Ge_T6]fѼ~2˂ 875'B~SeBGu# EPcvc_`?9DqӉn|,xt>F0/WAΎojVAzLhŏECˌ,&p"7R7bo;xVO#֡꾸Bǃ䷊ZH||Ē^MT%:OR{O>!7V uul6updm.T!L6u>PDo+Àhw'i"Zs.QFs0`5碚T ?}Gewg\>c#̡.Y%anA‘ ۳Cf~X8a91U"_!Rɔ<=Y&Y"=Ѐy}5gW.H?Bj@^j,i|mݣ2cIBE¼0ƷW]SbK E ! 0dGvlycaȳ,ʜ-w4h#DZ,{sbtSWuSpK'ǶDk@c&o~gn'ع|sz=+8ΘcB$W%u##;侴#׺EeKz KX:l=w'W$ڟǣx$ӝi^NʹME ;!iP 6#{MܸIe @] ĩYFmʪe6' Т11ݔ+!8'*y!oJ4{UF7%[و&*}1i^Mq0(d(5aҺF?$2'}}q]-ɽWeq|t1y/v=G߆Ȑ/rWznCu$lMopS(tZ T4g[i7Jw]^>Y/ƌ64!HvUOV;}e27-ԅ\"T:zA/ɘ GF#kNM MCO>p]2A7v'?1`DfZM2plV (X:WԵ |$' glqlKbԃ !K\/h2&pH=< nMH.R1kEARug Ͳn0}BȹU8kLf{a W>E^`AV&%k=&>dv;Ʒ"E{pPՊX39і}Dg0\c@T~>'RADq5_#ewTψ%Ӄu i,vÉ&}l7NƉIUta[@c@i$*cvDߊ0|;N<|g९%MTګ:Gh̾r 4ߙtG  ~ |3KO tj?NH:IbeH FqȌ\``m G1P}HWoKu, g7=|f.q@s 'f=j*i7{h޸ߡ [@Œ|ϝ`!p"+ p7FXxiȆ4 Ÿ#fbj c!XЪ])?#\PVgeA s>IPxR_`mt98 HԩQ@|Zf"jO0ޝ,e0zf&u|J Tja&>8l\]4J~]-z{9`cARMgדP2/*YoėLY|dp#p)1!=u~,׊v%<h AP5ĥEQ7r K!n. 4(ÉTȝӬ9W#\W1 M 6JZ(cJ}J5>YF5|ZQJ6+Ae:(FqVaV .C  HE4o&ZJyWTlwX\Y718I%סސ'> UN/W:܏( ^l`ޠ}ỳy:V NK^tK^3Q]d5EcbÎJ9W r푗6yw3zY`[q$ N4;fACXLmhU-fbkU$pEY XhZ[gLGp\q֚ VWGhʞw4Y!n1_.sKR[LUod^\o I GOpdɖbL0,#rR;am&$ u3d|2uye/+B~Χ+Dz[Kgx5r4a#'9Le {pstoI6=!(KO}4[G8g_N\Y|]ALvY"g@Yz|b{PHQb>_U Ôq 1- P(ulS8Ů`ȹUO2 \Q1eN7B4Zi\U~^P3Z[}+몏Np6:,<Վ[5Z kmMQ̛t,'RUiWfE!OWa?FL1q0 e@î ߃pe4s!b@L ܔT撱t焋AQDw 0[y: Y\gq: sn:j}yY|sDN?V.r[<6# nF>HBnN.:*@ nDz[,ŷbz:M{%(Y6Izԙ(IB $4&a<дrx6_!#.\/ɒ_\D8Z*/VFp Q÷]L/EKkt* <&1&~aSCjgIyCJ'"#Gոdy~1elf [Eo *;*sHߋ!7_Qܛ4{{2>v,FY jgŝ{{`0q̈́t'i1'R<ˉ|F2Ӑg!,Yn(jsҙow#s篟k|ʒnEo ;ҟ0K;(4#M!(xB3Bw2QɊݟ-iNtXGrFO4u}/[Xk?C++b'&GQY*cWxL}2J/ո_x)*ՉOIPŚ$ B.Pc#sLWcQeB`]K Y9,V 4Zhݾbټz<9 QWF[ ‘.–Ȗ=E G\95U[Qc2iF )~u~1M@jn$p6` mgxbǃCیNF4}zRK[`;je)Pw4{@Zm2hLSP vX{|i'[TwB|6^@~;WKnjP1f88|t:jQd ? 66ښ3}nԁ'J ٕoj.}=yx^L2=$qg- T^_3 ?ˈ5ZomU'h8`@6qw%:jJ)7 ?6!4|v-B xrdž(7t$h+`mo5\q%gGCX-@&+D0P@{IXnmj#y1,2~$gCFqп<1>I 0/ M%[miQUN1Kvs=|Fxb-U&`?nش`~]R qr3 O Q4S4$'h$ WBK0ª(tL*S29ĘIy'lG d-/~JcDSF2/:M-9)Qy{pqc*u:޲lZW BqQ;Va"Eh%.Aرwtljn[TlC7u#WQ#})|АXl1_:K*7[qLmb(,˔$?rĂIow# RJkEBb&2K^L^Br1X?v6=ڇ~UEǪGy۠KM&lq. QѰi Qw`<!1v.i~h˅0FLj ^FXYjG DMj?YV@d5QXp,J,lfGheWJ.D `M$d MQ& SOG./)g$IV5NzvO Ը s8E O Bʳ/-Ra0o뚲#xRy($ }B8' q[T:ʬ`@lݯoiee0wN^Ju$D)sSL]K9DW\,P?!?˫ &+ъKf؉[;<9!I2ʛa*0ic̥f'{])@pR`;S޽Ӈ]R֮ dB^b٬$WQkGWi a~9^NjڎXD Ppϗ+pceS GW00K6Hjt[eo#Zbdņ,+*>_1V-fhffL&v8PzGG=Uy":l!Byw( f!VZl|n%zYɨ@SEŖUNyR‚ .1{I6ajN>2BiL>ryjV%CΖ^vv5M{ A9 #e#n^N'dfƊ )%H~B~nr/ӊi&>,lt?YZ3Ϝ;":}׎s>L@HNwzӏj;%$$3v6X&odUW-VÊ FBdʩnD>&Qym$!j/h{oM1jK9^NV`f;s6d=H:-FOe}fmp5݀Ŕ :4M|5)ҍp\nD4B; 沾iC0wnc oUԵwe<*BlaJ\δ÷֤X`t:i)JTl'%ͤQp.y©gGA٠87>C4v: S̩K\ԉԪC"p19pthu ı'}c, vkyaCN2[dA_A`ch HԗUņ;U_Ly"5ӣ{L9Z ˺qĉ.[k .p]|!1(7~걯{%UlnƣuCܲc;^_ŰpR)ϓ$Kd{O^u\ YfIr?^ĔZO-9)S?=3»?O4I;6 G8 O]!]oHʨ-u"uY4w50䙈/R%\ ߩ_{KE2)B<\ě@y}ܠ48؃DNz*@+pݕ827OZ; 4'ga*=# xh*UkrbXi=`< Q ,(Zl] _(],+=hs~Nc5gvձ/tl[: >yK^~id ".92s^`7~g7U(8aSlgu:C Fj 6nb'ˁёbc o> bo&3ѭHyT)YsևOlOqXet8iY]]iflZqd:>L 'XjYDY\>R 8 H5S~_*5$3oa>RҗT09vރxo|W;-1~LJ+&qG ?.(<D86ۗ(ϠS/vry1Aܼ7p_ 1@2 ~C F"f*oB­lB.;:˾<{mz/@nI7y䟔m dŬs%NLENٟǓBW^8,4hp"Va 2JԼD+,JK*$K. tSx(ޜTQ6:cA-I2F6aWTڍi "rshsTmcT /Ly趕!yq?rGue37+,B Z|"vX<`l[aoo ݶå0†t"}Wali*1耶 aWDzm5׀SWP$nBs ur7/'Ƀw!۽[?m2j\.8ėq\tep'gcnuBTIp YܦtSK*/G~xxYVzM Gh1rA~$Y;B]y%!7?Gd!yJOb85ѽ!v%Z˾=lOnØ-2n5`T>h϶Ӌv6T2t{",U}f]^o'PPsm뾋4Tix]-T{ ʏ9ƼLa49 0b-8{|Iݛ±qXet@ YK⿔\ 2F7)xWF`,ps,3XBuٔS3v/%9}l_ .CW2kr5hނT͉ɑ5Y 7e K,Y1HP㋀zոd`{;-誏CsxXׄ*{y]$Vjk Ķ|dBcR? pT%<]Q;ݖ[ WQ0Yx?*B=*RV ~ZbQg(F_H6/EWD#c·}<,FsE-IXQɹx"A%n{aP9")=cu:%?)\_NrdDUfR'k nAI)Ж od\ywoдZR&B VxTv0F.W :G!REoƹ J%MlE;9r=fg~y+ ,:gM!)6s|%)8 y.Qa 'P |(iـe!-ҧoT3na4U,Eڦi׉;E<@&ke4,UUJmV^Ne7!]:X3#`z!3` C:M2 Q8^w PQFmz+Z3=iQ%oe|:r⒦ɾɭݬDPzIwp|9\c1 PΆ6°mA5s_B|@Ӄ} C ;x膟j9B1)#!o(OlyWh-I֕zC8.3ϤZw^)Dk~F/A i"߄R8pl}xAEY)}a[*Y!V֡*7xŶ6tyS0\l!c+(ːR{MX #1znl:}E%">Aȁ\]K-gaI,4zLެ( =1$Ng,XZ:,=\wմ4Xih;;GX~6"H{%7K?wuبcA+VW";Ë 'H(h\gFK柺5 Pp VOV1EXnsc&nn6r8'%>خeY[CRHʧpdi"<_uj&N=/PuH*%AoCB])(57ϧ;ߎ]bjֿއG8ľf oo=JPҍi脄.#h)/\ ӦG tGJ2!y$ mL$qqiWw| uU*~5ͣ"P9|/K = VB!a`;W7++QYK f A[:ޖBr*?E5Ľ"~ ]_aҳ}g{4xA\dm4il;RD+|_׵bN2ϫܼS 0=,_cS!j2@ZoʄYIFJ~(ޏIYވ0'X4'C]I+ ґ +H8&/i֙q*B@('z;`Nkt$! t=s Va&dc W/ ̣Qg,΂ëG3ki$x.fՉ5lC쐃_ow؜2IzU'Ln㾫Ex IK Z#ޜ̰ یRʵVҌQ(k9U~iqPwFXk Oev4fxI6r H'OWO cPqIFȓ?_h"H&w<7VӲ03"nt)#@(¬ax*KB|~{>dBT[aaˣR@ YH5(PaZq]dkN+̹ݑmiբ2rfCCzC'JvhX}j=8 l0cEm(3x3mE]Ә$f.5y Dg/wTt<_9m%lu](A--ip 96*v>uR-+zQ]{W_˯4+C[PeW^`PRkUBP5]0`)7 †!cȞT^BM/^ -rdmޏFE5S&:Z\޻9/LrgP4]F v9[q`&6;M,{8 .a9>+ v᷽dx>7f͐Ȁm*||h 2lB" i.UG%houSDu1E@b0՗2V*rt'.WJRLvݡ\eĤJK\``gU,@qtxkY˜w:}()`63˼Qء $N<ɦ u+x_x7 /o"q?X7hZ2w 5z%EPeٗ [O(K|&F5T(5,Gt;e%NANLP[Cf/ ~60^/+x0y%eh;KTHYuUH{I0\c!P&'AcD1 Ds TB~1)zVED*L8N*PdhH6ڋxp]ވ wGY[gJ}ɾRoՖ3sj {zu`iTӠzPlM4tKx2B ,䬾 noڼIŔXCTs[l 4B$~]#>$7҅bA((ilF/Mj1e+j=IMe+L^:iK@Z)GG;HaYδLsUxfseJ_;Bw3HtQC LÆȤ4pw }MU i.z1:aaj -t&bEs/9 L!.an5b辛i0Y*n5zwRr 9p `džaFb~Q몀BBgKcuP cosL/:*i"E˾,;L |\vm,jN^hfb=BJr(7G>^^75.ŠǍ4jLά[Jj2b3GR.ciN*3l.#B?Mv0.n2Փ:J6`h4|c|%38m*k)i5Tqx#ʦ$df tjI{][d ՚vgF8餥q ;55dҊ$PQhI ]7lWQE/E:jR#T]rS(ټ^2A]-HV5THY?ua3T4xXHT*qp]24C-j3BMA :WnOS[xa!k,_*5-CƬXwjTaV%Zix&1=okl@ȑؠEI!zМ:| !¹({NLL/QN]uJDt'VfOPIA]8VfwB^;GV t*f*v_Vv/A)zp̀2M"C%$#_>YmU?&K!9lF:3Xz x]zmQ,ʊ\Ҥ_>D>I$eWHVE!xzI5.xwByO0!Bw~OVLo1y(H3qYȞ$ZښCSEʷ& Esۅjxm[EWX]5KJ01C;W~Ӱ,bq ؐh}ƋwTqGJiWDQ쨴9jM g>#kTiW 6ߑ47֔ ftNp\ I}R/E'}D& >8 Ujo$r t3v7|DGU"!v՗9}:å=UvU.+Lu{Bܫ|yp76\SWuAUEo^[ < ҈Ρa8g6p/`hő#狑Nf e=clwRL9]EN*|AO U1LF0iċqP|G4X';nҵ: >uPA4!}sEh#RT-dsoV/Q <5$ Q/; &L;cy@UE)f9&d\,Ԫ*N9ZQ1~GznTz\0@K)}zԱ@;)D} -}@IӁ*EXe8jtP4.$٬m{gn/)e%] B~Ҹg'q 'qGmcrѤLl>TaXp` #TT|DgplP<V8Ǯ;{@xw4}{ =)IH ݒ%VNHoL G"*iٻ}a—4٥[> 7=Vo&&h?L|mb=1ʃ\IҖQ$i"vTsA.k$pERkaZO87[ ePsctMS Upg4.#Vcm}=ᬑrfEFJL+)aoUxM˳= gG zx¦- #A?][%yʟ_#R}я<M4:l33J)[=s?pifVF@I,;Mci҈uID\ˬTyE(Ra&R ۿJqԸ?33HyǪgk؂7R4r'}[Dh8BLWG%MnMp1$5f./C3Z@DbvVCȎjr\HB*p5M@Ӧ "9(P%(4"w6,F  [kyv5Y|Bxց@"n׳z9{KjJUYcu0!ynFdm+g½Z`!]p#èEcK3TfS,nHP>╢2/GTx@dBMSp:bM(GIClB2,gp43Y4Yى&$h~7YYQ,!GU)tʄV cǙBsw>dT.[1E1 _e9Ȍ`0l!#n% j ~ߴiͻ#~DLPw!|W\Vl$شB5ۗ몐<@q꛴:~R ҵ\?$Qڳ}YJl{ ]t8isddØ/Q}yFw}Q1d ha.x>|"cλ!Xhͺ9Gkh,E0 T|I ;\IgMݪ);y6ѱ|ݹ/P~5D TR@SURzy[q+Xj\]L\Aup$G\y9=>ÛI?U` 8@e\UݘݬaN.0D733dHd͓!f:re*:~_eI-Y0Pƙ =ud3Ɖm`  ) eר]dբX^Ey tWٞW=Jc*B{S'}in(9 թI}%D[xn"[/ gO׈vMESќW&{$z+p#_&S+I^00(ϲA"1ϧɩ5$@:JԮPxNэתRYnV*sQfN-gx"s]UO9'"eJ%_lʋ/R鎾w?TSV<ɂ*=3luKSZt(T_Ԋx ,+S'.FduE^~$u þ7`)Q5oF}4r3CN1, eEʚg`l ˏF1+^^/G0P,=M~Mt=b~ydBQ7BO*2Th4[<^Fq784#i\:gYΩ@s hۙ*MS`:C| 1,xN2m8ݟE *̈́W%1Rޢ]TE?6H >A)+ě1^/ȴq?,%`YĀ4zH %x-g[B3mg-%&d lKԳ+s볙 *`w,9=IKz_A.b [0gXA䫟%I?3͛cvDwt-'PuD B8{0res TC? 6ZH:OYz#'<\M|=E LgB\ HDĕ࿗qtlDQ.!b`wA"jgRJ<}Hb^_:OOo3y˚j~DDS#x4Y /h$׀K@xz2I)77ȧL9r.9?rU7YNJ9_VbN=މ6RV,7ĝ[N7p,?c3@B?;,ݛTT-~x+EwׇrUp^DG=Bik*|C$B]qC7yyѠ7{sKPc|7MȌsWY!IŅѦ7O~>>J~m4?}da>-`/հFwiRkj$ԄhWA׭13 dų d`;.ט?3vUy5 6K / Fty8|uv8J~:H+i 9?}|B*j ;;\W3b.mڢoW5͐mejĄYޫТvI*(q%+z'<%C4)(oJ3DRY0ؑՒ+ޫ,m|l3؃84(2ڹw6Mq5+H :#Cưp\aZyn9:0 rADب<(io>C*臞C2W){O7&PA)*aqџ\(pvĴW9f W5Q< F>P"nW?k=z>7̠f)p)4o(~jSKdYGz\p0A |ޥ;8?i=2}zaWweab ʰyy븚6F|U,}S..0?'&v쉺úV-&nH1ūDِ#ڱ} 8#S;0. Aߴ-:ŷѺ!k^G7̰DNai=[:GR~>ue[`bN6΀w!6unbx(kL6ֲ*d! Vݲ%HbhI1LtmӱvټFK(ruvEߪZ*w VۊH֠Bc Ec ^(]GB^\vPRZ[siwk/-j=8gIctc5|KK<؜/QӟPX&Ws&}ӛQ/4 [ 3t\_EB:zjS'1u:bt&4`P%-?ɖ&-(YNSVQX_{E?|QB~iPf Tpy&:; 81Q(^MVDrg:9'( ~3t:20! {ax_~50$Ӂ9K(END]\Ԇ 9Y17CPadMܚ=Ȅo-NUgnC=9>W{ت|E]qNU.Me:Z ).O= {P) j^@uF*@Ґp5Wsv|@VtK#gy7{5 yv$RА( / zEJ"s*arc0tu*m+ Щ .h@úRJRo p@Ia*@NN')ۙK6!Dͪ|"{r|Cbگ$l-FJJ3gx*=W:8Hqi ЁZk}wYo;]i/vtqGAHW _҄c׆*nU%2'JX!p{ifu3m;k[Q#4blo@(`S(J g4d«@ćؐ=N%OpI썍qۅSݛ:BV\գ~;z!qہK/(p8{[t/ ,VEYh]f 4,B/*A:f=0cv)V FIYm8fN\JN-L]G8LǴ y(0z<|SM2n%>ft1 V`igt_^\:Or{mghMHҟzJfT=Lþ@s|,H 7 t"~ i?apP--] ؟liVcKni "Kv}~My+KcTvf`$+VeN_M0#aFHޕSށ̻9x4qt>J  7\XV u2ե1L] ؁kuX m/cnC[Hdh/QXT*utRv].|?|#Hu?qMM䙨c T>d|ӿ,<+GK!~3ݬMS=o2RIp :ZZOB~%a9}U,9@u9/R86l6:(FW/DtGRcm%RA'p:kPL:k8̢WQg܌nil^nFҶ)yB`@)\/دfv@*7IRߵ\tj 4zB(,N֣W2r ˚q=UUqQ_yTkRX,#=j?3}7%Ix8M4ډ wV5Sk.dž6YLR^eH2/Yf7?GRu>ٗzFf=h83`Ykd(m -_n4fQ2)k!@6M2d/j0t$N0/}TѢX7ITM8^ 8+ӈ?[ V5>.xp/-w10&xl)p޹T8Ίb Q8*"'{IkӢ(' t2GlA;$jO Q; Ýn/O.OggcѦ*f꯮orj<ºM!'\gYbf^\cS0R)hKЖF}9U$ xOMβf+sMޏ@,e*<ۄMkgι ;v{ت7vOC0}r[}}XE1<Z 0V/VuwOm4a47k܌s/[TVC2?̸0T4>(Lr֠^ѨInC>4k͍Jb⨪}-^@NIqR5_-M-Q Gз6?kjT)™ ^xl{Q-V5S5T^)ZA{x$J]]TrjD3\oMo;(X!nC9=Y0ym4ˮ)2} sPnry%7|j1n "2:+fA h(&4Фsʭ)e0.TM|CLt8V3q8!x`5b)?go帙dw9Vhe嘷cgfud6 ͢. p(ÍG€ EÔ>ϛįB*\/ HqmW?3L"}Z+F6)4 ׷)ş0$;T%{_>_s D" MA3. m6 hfcݬK³{7 =94l Ə M"Z[3(^HT0* _B5U99ҥa]Z'X}AYÃ$Q& ;&_xaQUڇT_^]q)w^gЌ[Ήm`uO$`#L>pP ty(E7+J@j2iH3H* { _M/@xH@& Am .C#z 0=Q= Aj4Hu\+/2m9lX^PUPLx3tAq/Gi6F⹚oRJ/Q}V3@ɗ95=m ]ߐ܀v})g/&4Tb.2RsӗF V}nsߟ Ֆ׿iٽX0#)oQ}5+hY4S@!#v]shݖ=F>-'>, ` ǣWbI'O S6qQPۏ1~6AF{ a[y?9E~ #6,&%IVPWRR8 )(CY/M?jm֡9FyːZ/Rg<e9@=)rݒakP6v/{=n]˳mNq@09ハ[̗u[,R|8g<7Dwso#xe4ziIo\Tu_{?_77퇐*VN=] heLOɔ5X166Y e椤dK.h^߄T`X6١rgCsv iB< 8blʭ30 qlz,) l&WBmxEq{s߆է0n(di%?np㟱ߢZcaJ&` *|ˇ`OTOq6Q(l}2p,mL]nE $ɱo8ԣ:҃hcj# WZ ʴjXF(#+_]c 0jADĘv~r 3<.syڛ&F-T|R8Cc(,0D{tggO!#,?HOmS&z5͵Vn䦓l]۲8԰U 6E `>2,Hf{|tfpTҔ*˙HjWtKl_ꗊr k0a%r5raOl~aV{RV,&faxFdI9D5G뱨(fmw0o5yBZ7*.cyFc6cH4G]AONy~v `o!5!1'"3Ni?ZPV0 ])v&:8uR1bIn®)}($MtiaW$"} JA9KUŤ'[A Fs;M1q O4B%gA>i 7>VfíDJWy2r"|D[`e P;`򊏿_ az@lr|wHަSF}<Ol28kC|)hMA6z|RXWg;Az$B/ϔ'G^~L&?J|s7) ˖6儲FKnjdwKlַam<^y0sn ҍ;r|\0jO^;C#T"_-F"dL{= +JgWîSg{oTmHIǸRKo,a69@a9q0 TtU24F&$qCm!}5tʄRɇJ>f}͡jU;'=OZ\`U":^@yg6 S%m[ ZĀդaPQ+#އi3˙@ \Q8hs 4e]!h':-d6$Mb$u?QEXӇI$} D.DVvaO=҉$5!ח5 ,;PyN4 iyj:9'٪tpapV)z$ šiiY򦴶rZŶX2{kS"\iϩ?>W6pXLʋn4>^)0t_\CX? e呙-s |HF[.,DMq#~-  oX[$8/+:dދf3Xv;ܒDl_W`H!Qɢ:N8ѯt4V)*0 pǠ jokA]Tt.l"`.κy\QޏB2:'lȚ>غHai;%nL#u}ȤJdm+70X+g$3嚒5aMx!5:I5e6n>IBFnQͯDrm,#*5}kxo=QlŶGLP! 2UÎ q nC YB=݌sPʺsOB<)]˜GFCUBQw _m¢9* kL:[s2|P.r\Vʜvd\x?(\V6XoɄd6${4ߢF]Fwߔi9Z*Se^9 Nc کBCz)jUqu 9.{}yX>.xԏwqSjmC wc_<Ӈ,mœp&$D`N,4$8h;rX 0HT!G3w[$t˰noeWKdlL R`Ng@+qw# =iiAݓ>x46YHC8|1z$ E4)V,ks_;5&+2HᰁF1AA[bkF )Âue3 t.fp?)5, m䣻(A09ef ^V%ШǑoǸoȩԳ6qQC/xY(]!sI+ ϴe6OQ~-.0,u5Jqg]o]gXs15 uQll(yԹͰXnaD@+Y43 p!Z 2/-s+%қ1mR7PT ZgA P6ڄE \bʾNh bgr ck77󋗊s׶9P];̃bk}~'tx1&ݑv d e (-^"r %9?R-M F4o5{4 cv+yz.=7-QrMz`i&N0b|v ;LJ [ԝM#T,|fR0l֮dof>qnثUC4px=w1OGz"^V/.!u 3cԠ!hi@' 0W-\&cy˘AIj:'Y ] III~Xj'\eX,BBo7Lc{CXqa9Օ(qѫa\ᢔl=C $qfb6xEA^T+icc1W! b)14j+ŎJ$L?mVӂ4zwԇ OfB Tg qcn*x" CLq }D 54Q C?n{cm4NuN].rhs Zmc8uN)5g98;m{9ưǑX̩|/= '[ϚdZ6]8OtlՓ|uO"l^T$;dQj=JfT-Сiqv;>< YaD]Kj;Ѣչ~Ofнt&+1[JA,4,-ǵlߊMy )X]H& ;+<92Xjk[_Qd/G`%}/1!nDo%Ta5?0>/%Am5tx)/%靜&AoHPoW~K, t%J_Lm)4c9\^2| %L@YpNfrd(CifH! ^jBBd@l-H,hp@!ء]u/mqq4ԽſM. 8R.$Dq漦ݚD:0' FX 2_Ӡ\9.]/PJF##g~h\t/ (?Y1ZU<ϻ[Bemqߥb-gi n>j^miGr6e?ϦV=ipmNJ^rM4A—"Cos=fWC~f7~ 6G(^n@bPy󲵴CV+Ǎ CTpOmKd2:ӥ_su~Flv?î} $H"з`"߬0[-sơ } Ib"!!"jHݡkp״Sw}l+ GͩA\Qj!:A 6 /ڹE kƱfo#m_hi?+/2_;s#[bˁFaQ(6-|s7FЮ4󢍽⾿.W9 #"ԧۢDӳ8r,bLQAe2-5㴎cK`l+k+WejcЏjmşU_Qț1="wx粛R Eʈ3{ȀB9d  iu5qiAp!LlVZ!nMmI7@M5B߷`qάp5&!6b0PlVB3wUfvsXIXoPmlqs8JW֧Ύ̉]`0D <4s f1ظ '|0~kJuO8k0j0r:~uXgy#ŝt$5tBW ve.XcHأǰ"קo=`zcbxf") hGLW(D@H;+ v5_"7a|B$Ɨ-xk^HC)4]~E[45tP50 `fp'ad6 X7 :؍&"{X f#VkD0dсiOFQo+,p"Џ$B;#SbĆbxi,ts,cKs-a)iR}GulN).e=CRIQ-v+1Қ͜^Pn9lRݚM߼X̶B2~`PL0AD@%U勷7Sb:aӅE9 2rW kv 7z ѯkkl('Wr>POAG'ةٝvm j4M„T %{iJ_wz5L.uHȚpZhLJ^rGKu*$ !@]TSB4l9Ӵui(+NN4nH^@Ns2%Tq:w1=2[)\AƊ(Et;F/\႖Ն 1o0Z[ W>!"(03+:ĄŦT 1;P {ȑP:j.Ne=VI1[a7@H <8B5`mB,% Bw:89DJ5ۙD|_\^yXMU}$TŪrt% ~ aSoɔݩ$%7D"Uy)DR %q*s6~P;w" ]<2Qj:VFd/} O\ǕZ$J5c>*>+ug:F0New׹w!LGe뢢o]\R&Ezjt΀E,vyc?aօU<~w:MytrAUp>ڰ51zRY](d[S0V{wNѣ޴ 6e_ ci@ .2I`YziiG4e|Lfʛ u,))ym>QSoQ2rSϔ xL[Z(vz'ݝROTma\w<)^Qf:NbY2=3Cz[K'b%/R^(Ġ5ْacZhg tw#&֡#UXM^^v v 4 ڵ.PP+1 1upOK;{T1pAМwEé^r÷`ver'|es6H$Bj@3mȇ+`O? | wu_+\oQ/#3${+*|Sw91b=:]"_ ш zvxDl1eGGR/*;0)?,yle7? *p_2rC W++{D@}Di%+3 G[0‹pbV*:۞hSuM2<g9DI}^Jr~۱($b#S$c+u-SB'| zS}?L/6٪\r,6LZS1aTsL"bv& [OK=}dwCe†KS{ęyzʰ#5;x oG V2ӞܫКKQ*+Zr#HToj}hX&ij.xFYH'_%ņg/Tv۠B,R^4V.|9px$%9αiӄ*@ޘG*][~S/6zvuV36T3fS3aY w_ֆ8H.wa~/ɧz@ĦTh$R^&d%͡SkGgc4:Qr3+` Rʤ-~bnt?$KE ]+?+;v|CYJ(Qt0#JG4Ѿ1]8 LS*R coLb9cpYP 2G\ `^0נRwTaWMMVHשD@3,( jOWۆܱ':R:dWu=$5KfTF&ƌM-/i6X7>?3_5&K^"7Deul2 \n6\F$q- =Tm4lIc(O+;b>MkՅ ȆEFLIVb_>=1<'F5B%m4 AE* 񪫎~bDÏa#.Tݱ{g( ݕzLWJQ/VQb!f ugmZ#oȋ3##'v6Q˼s;BU)MMU8G$}@QK?뽇˪l|OD@SsM6A_.@ặ %/a-R#L1+ Hgi6g9FhoD;_g  *ַ!g2PL؛m4D"NQS+c0FzNsBA::;Ȯ ލrқSOIPB~%L` pH+q4`2{qc-k9QRJ\,u8Y1;<=} 4$:iYL"92|}CNh&2!LDqa`]z]گMZD#THhҤ2(ދPYVVmtG/ O,r#uҷHNIO&͟^1`E-g;)L4,}ZRXԍQ@r{!dR2 VL-/pqG[& Df0wi>~OT3ȀťEv)?hzQߏ1>*8mGP;}V ^QP4lSX> {o1U`۱nVyӠAz!~; sW<ݽvMBjLIzk҂|#Nco=[Zek s-^ EYwt@!A.u=ᾊ`KenR~)/:'Gx ѫ)Zi_K/s 2/ z"4CC2kr`y[Q`gĠueOkEO ;9,p$X-K`aF+'Hvk-i( G,I.i@q;r5n"O4^ؾ.!w$lYs$}}?06:ɕ~jC)"o^Zw%y`6^9,%4Mq_HiJ>`Hղ2~RJA4bdwVUn 0\Ve_b7ęF"@t)|M_GrtЂC?lqE6'Y]c!bu,M(s7Z)@]W0+`ס-#NK|t:H٥S1Mٚ{"ᚙ頀OXDRmuA~R[c 'El6`$ :;! vp-]jbTMz+uWQiP*̚ /YGQccĚqVR[YL%gq%.co_AW($@(fsAX'] V)^G ؇ m_[oI3sm탟X6!jLb4[wvV8MX ؿ0\]V ph|y2&u%Skr^bO^sm@{p[ Nڅgց$?w4~a2g3gɎ~!P8IpppiSY3e!6]'.mtDީr ޽e We^Wo亯>ѽz=#9R6n h_[|,BN'ܖ[D؏5CH6HƹBqB0)Zc*uߐ]'kۖU^out0%:cfп}1? <Q{Y{&%?ni aCwgxA N&B}53JŠ"x{NH|FsA7RM:@oξe#e"@H&Paz*B"z u4yk{0)ޯK)|sQj7d= 崽q_^ ;T`X-VKWHĤ8 6$5pF(-I,*PS1Z/Bhw?ƏV "l͂ȋ!@PBW} wQD~V\nG$%l /`4?ZLxsMK=31ɯ8;þZ3?Iʢ4iMv-*-[sc_teQeSmt hr+=g98Ɩ< |zU.K%[䑻"]3wUf # &23Oex!Gk!Ş>LzV L,TEynɾ-:qnQ7.ߜ:|/g"P;Ot",oH9D|ѫ@}o⬦@h9d5حiB[R0V(QS sTЪ ݵK/@q}p(:#³6Uq:C2 ަPo[I]jEL[f7hlR[֛jȶ6ͫv` o^A-VdN٘䂖ض.H o| Hձ7Q1ݘ4:"pn5=cKmj=VnyO\='> '9=0.UhgTtjy(J !NʲW~{y-# )ᝊa؋e2&5LD\6?A7g;h[%]:A[te @}`vDf#/j`ʍbaq_ˈc$# wwQ J P:.R}Ȼj/ <@y<&7楉.3=)yM?v\!ZɃn ه?$V U QkOeNPKHjߎ@@ Ӻ~bH+A@EMFfpBkNUQ_Nc[6:Ndj^VtSOxFآsfcKꀊ[ƜӉSjǠ^-8R{ FqjG7*U_0 o-kgui6HǷCFl\$/u9 qNv5%^ј"?yMvwpZYc{XxP,,.aW6nS\zq\f h<ޙ{qC%"|$I zhTnt\BV*|QwL'g]V:.5UVZڏmZ|M|բ*VGa=$[TU;@3ن뽡aL$h*js`meHn}oVwN[5ǣCƺ*Y7gD-8f'^ A((T"dw!9/"$׉7~\i'ci@:ɠ?CGйO\]1&%=#7yh S #{ܺr %sB !Ic0JVxMqe--[V* Jw[m.,%4.#M z*vU*z@k<׸7/z̿$X=U{>^S;O# 2k@H]: c :Z|A3uZnkn-?elNĹΕPN}K";^W'r=?aJ,գFM`<,OL_,؈BRh*Ѯ)dE!)ehsN#c^5vۤ&1H؉J_Me({ڟH~RsOQQّ@G=77Qȍ%a9$%0kMx7D5B ǟV@t[>Yޠ]-<9cd lp<1j(vSśV*Rj^7W=dsܦB:iJXrڒzv7vZ/NӀY#W5ݑ>V=[1Zqн ʨ _L)mNR:@]dwk .j (}kUMh#0P[w"u蟋fnU௦-sV-UYd(!6,1I ÍNGF93۾9£DNrMY $)(]PL{GW =">.mY/8>H]l\WsQyTYRr)Eg4M*u8 ܤ/@ݺ;;mJܖnA87i+q#8al\uXh9a(KlC߇\);Pݷ+g(>HdJ/U˜A36s3FXtOr<0 %hM]?œ)c|3c-HuyB;֕{;Q?uG ^8ShDCE'r~}(K$h7 d.1Q:;l. Rs8>{Y=yUX&-&;hh  iV׷WqEH*\[aYUL frw%܏<»}@_hLr9vZLac*[wFSOk|b*rj.2+q7Ѽ3޺dD-}^!u)|,ebqLJeAW08ϨRb/4HPenx3"U .yLj]$Gunv#QE}GalM lK30-vJȕq"~Ó<\"|Kor4|jA_|kie@X>UVZVÁb\h@%QB%hAgjXnovR Ri,<'U2\rfPؖo۟zzڦ'B: r$>~#C#>NtNۤl@I1 y()01ujrNH%򈅩9D?&QdL|Z ]y\@_{[S.v~u4U{3ڿ#i&2R1 5I؜vw8-L=-5= o,3N|a7\H6,P5,!CG he S}tp5>ˋؼܘrݓ r/e*0#FS˺rdg w~XWKgG8c}2xx+ٗyoqqڝDnܸ)qE39l\42󺗩r5yuXg7Ah0N3n~{ J?5q-i#ܮٵ'+xaS9qAPy(*d8)rRCis[mTf=FF1=ޛ xsEZgxQYScl! D#Ey1@,|Kגo!cM%dgt6ppu;o88w ?gJL Dj䃄%$ sfu!۪fTk'k+YTM{C9qP\ Vab5'PeRޱ( ] Ze%!B^=srt уء.=q,fdƜ\NZf VM}Q^4܌˕ ^miARj%]"fJa@Ȼ˳fVVT$Z-: ؄*hT)O`(f['wwb`h$Q<'>t+{srJlbL"e`u$K>֦muX̣tGDwH"9‡t,Dj<]KK.?W͕ikvj%-.-B7=a:=13?0:xq[ tx^Pxqˈ:{ɳ5y xTc Vqb& v4N&O}k%`;#^:!kVdrE!a){m\#OH=\sf@5" *p݃TJB.\]B$! uf&` l9 Ehǣ pfZ62t s+O(!oe?l~rTFy|tn}?_{kuEQ[G*52*I}}P#mS2I<׽(hg4:jL8 Pt:F +WŪcPd [;t) ^T߷{Eh+:ֶhs5P_\MIʚrZ™.zoJ.%O4MpG|`IUYz1_!3C.'?8TiPr7bVC:]fפNjBED~GۮK;ƫv{`0eQSl\dÃ];SsFm Jy*~Q!epLIpggˠ.2Ei;Yw% iS#0{ Ӥ}I\4a@%9,KMLXZ%l!< y'e":bmo6"m'lP7PTflLk† ¦d8L9P¹+c0I)O7Aer8ls7Xvm*;aa7&_o0ơc¶St/W/hRcO_j1 M9ؘEΦC3 (OjƇܡwP==UgCAD?YUI 2Q[!$Ǘ0l&GG q@qfgHJ(-fO_m*;4!q0wQ16{|}HUlVYE AF@ r잢efFrC$ZS&!μZw$,B`(y s۫>nE|9:<#[dVPji׊>_N:3bXLfz.;y[jjkDq391joAj·kjFj37pȹyۡˀpMӣ]⽼x8'oZUF< tN/~7ֆMj|gn!8\en=cL&»L#>,)x7`Ƶ/iv@-d)V)⟪P\B`8 BXxwl98Ǚf!0ZQߥ`VYQA{k_7:7㋮͹LB \"D)zRJB`K0>(-HS%:o]߶[OL$E&T6(]Ik1+W&;}`Kl4 u;\9vZr|S6\ёEݥ)p`qduDH%M7kF@WfKO2IX`42i* jӓХ jT8x~}  74~1>$mZ- M;=J[$?7B N3S\NѴ+dcĒdB);N.3t+w"3X.j~mEdz 0#\g]W3j Hx ]+iN TȂzk8h{O#PG~ԧN._U-ו‘IiFyf 0ek;M 2Azr3(Gv}AeN<v?łwbQ86۸ Nn* Q*DQyXtFC޺1󩠘NvƸ(#:Y-:aHf}32`my "hAaz$z '爼I/'j5c~d.?ƻXwHrgQнk羆ƂOD¶WHr zc /OZbm]7 Ξ^ z8fXz; f [kJܩ}uͥi}4`ħ J7PqO,SPZ7)~9n_R2`ktEr9T١Yԁ1BZ*2+@AזFC/j>pV}>ԅi{ZepMtCX86Nȑh03=@s{?6~=Ye˧HQKLeVt"'d7e,\D ieZqeE~(:IDyl)"4-qPS#(|'2sOЎax@hvA̔ѸόZbg"a75)<2u&p8X:6)e@sl_k#{9:q1!wA ;gy;YU~Mr&ڑ&.;lmvBs`]67.6ZzAHK|?dD Ԩ9M8.\HGZ^d׍t4P1^w9/5H'R(RU8q!zU.5KkO4$*CIc |b 238t_QG7jGfQJ6P^KrD5-,cOzמHT5bХo>=YyOhY41YS}O{'RT!D:˫e o=,v[GCc+lɹGi{Ef j"(Shif2P0T]%]x 6[;5~\ YӬIԨX坾Y:9QBۢǒpT.{``Z!;ͣqÃ&Zc0(<\_ENQ[hPB18ldX+D PʽH)@u~^2˚;#ŦL]Vw9${C/e5ڭ̪p.h-0~ͮGuY9:}#_ʣs&V(]:;օ=ɒa0@m T_v`=Eg_U*/DJ҂ܕ\H 7sZ0&qQ?Č '6(/#WujIDčCAztAsZٺž5IP(i+ב[3qp͹"[3Ч >86zGM#;`olmƒz+} .O1ŠNhXk)jn!/u>|UV(`OEYX4.ړ!SùJ!OW#)Z"q\m} akp`lq>eľrD}_#G|25lצuW} 繀4PxXH_+ɷrw%^pv} ooa*9v|«F\/]( F@=Ds'Rv+:gcqS<Q8V#u{??6Bb wBDX576T .Yl2xqzuŘi?k٣bvK{+\xXpQҐg)hXnҒN4YX"L!33µE;򧨬t' J%qZԈ28d*^\(L@_[qW_20|SV>Sޝzb@f$9@ODe r"FW}~O!8Xi=ep*ṪzکE9"r(I %>5(̣G9$xL#Tc x㞰3 SWIdH}PSXcwl_@oBrkdȲ{M4 hZD\c$޲%/=9$٭a޼e5b8jXM7mw`ib(+:nituk)ux¶k !l`0Tb#_d"SU0~|.CI#JTڿmf0Yq7ah7lYPq4PeZˉ7l<]tOVh" ?Vڽ}ͮэ^)v|w؋CU"[,Wkٟ1 $Bs7ev!Ω|y `(k $ !aD_a4T;"l!I^l`]C& ȹ-a!ᬻo^b'Dj 3Ϋ)[gd\܁I6]_PʩIVzֿ=3nq;OWyOdlE~  ѵgUQ!lWwNa|FAaUhp[xa0A* "*kh8Nw7^XWOQyDGuE!-mz:ahjCހ9z\X"NHUn?@;Y|ش|\"Q?<(ݖ.%hL ez׃+x^8J2럤s\Sym|h8TuPtFèx9{ 2!AԙH19 Ղ2N=ATz$ Y2)s?sz4Z B;~Bu>%IJB58uKVH*41EUBpFe9ܹm@!ۇrMX~N\lXcex~/ìtT) ad29<#&#xf~Х;Dr荘IDL9gj=1(^SB,6FazZ.WgS)iZC؄)/ms54-t:u#$TϺg7.WG! nVOd.LrmHRߢcs/0`(pђt%וX#ԍ+4bvJZ'쾳r`ȊX5N$9M9!۹i={0\Ł; %ww"JG>){{XrSB kY}}aeԜ~ptwN]k O#>ثDbz@uwʬj#(q3ō>x6W=Hu-OwP82m#u_@.[#,׷ҟ{7oa\xMN%dsPM,`HGI{g'vdEFlۖPXYX;HQ>"bQs?k3Dn%^î|1yiB{Va$iUQfPpq>/ jujT-e>#v`\MhpKWXhx"g Xm:''O^W1f3OXZlv13_fFjx+DЩ8u22=IGu?Ts;x:uzwp>?군f[=ttF?Db[,-P8JaD"K>Bgt!ԘYT ҚLWMf:;h1B280䒟*AIG1IkdH` ";K?ʡJ]C{NSR2μdҀ1ďD&~~+~eKUZc LhwYEgtJ-3Z(*!q{L;f^1%ѷV X&j֣I^#nP}uAvsTkdT-L:&!b@k5L>F "H馁!SgX:t*e+eJ/7*v3ǝ"G!~Bc&1oDd3(@;tئ_A!qVH,!lTog6'Q"(V'[:wC˚#Qs:Sw ݖ|rqJ~]{Ԡ;Ozf0mx8'X[8-,k3 `Sl˃sVˑTs*aC/%Akr%Tξ ܆z#kvXHjwUP-RU"6K-XKlÕ׫B!d7JL4UR` ͿVztlCIu D5xjT"8w "A%rK*VS}4žbGBts:kf.=epwPJE~S]=|Y,l~Γ29߆ӟ' ygnneF4te^w-W:Ϻj4Ap\L]yDi۾zAW BVq8uZrL^W -v5;>#W?jQ-vm&ո6,;c;}&{wS6!x -y1$?@/0C9 )OQN3&ZsPo 1jD8M2ț}Q{+|\ bs)ʩADI#au$NM]1ۓ-4S3b Pyi4zaJ<>>BtI^9sW QŌ@bИJQٽŲ$~D`-,dqӯFWU;r\\t|8_ulz0ggf=X0 Im$p SgEFFE+m^4HaZOk"qx  g(Ed и4 TXI`2m}t#/Oo=[h1_^! ;-?Ch[)T(X`׋Wq73^\9; AbfHpJ-b +ۓeۼ twөO/ƃ&|'D#*Wᦔ,SbKdmMI+}3OlwbHLu&yJVt",zj,As1EF$F}0fBThi1;7e3S xmg^C.ObGJ? hLaJ\#LȗmwUP|3:9´~5ajL\aKnm𵦧{"l+/*U֟ﰓbej8AUFCyXqF<,K_ y{\E7#drq8P uh8G?ntKdPŏ 9,zWʟPN뽆E*r'!^(GoZ1z$[&;Db^XE /$ z(//j"P.AD''i6p._*oeK_qTnrZg+|tD}}:)a5Fᖙ`>K!_P 'uZ^d@Y֞,JO)"q%uz Xj- <\G*`z7^ئ=|:~tBd惕Ti皯w=mjqZŒI%2[f,g.^U# 7h ȷa}P'R"Ln.V9uLx-VkQBRŽ^I$9"{ ):qve}X:qS3=x-Z 7 L)ڂVZ CwLpU Rֿld} 5\/yos̑0K{V%!-ˈ$~!"J?d`lR@Oh3G.=m!9:VSj< _ pd^aD*ط wfL!A6 %wgpX^g `Rw]4.:H!Z$QX"\&RZm"sTD4n ?-Mm9{5mhrW!ԽY>i@R X=[9G Q-ʵ؀jJ %얲~.`SkqAAI#Xv}Y@\hn&WbUe"ҋE*#~CmR u RY! eW< Z qH- J.E^tw)%x]74kY4,#7wrG(FJ.ֆg (k F:{PXk0(CAM%1e~g@M3p֒+52iR[ !hwZVvma&2d@jD!3u dQAZh?E_HFt3/W> kdoUD:ߑ  k]O6q)d(seBr5 6tԹ @ku(d\-/+$*wvK~sȱg,k$}4CoCtۦp@3{tԡGooS*b'<8l@RHl+dV 6SPgdT 9n]Y️>fU8Q} F_Fo6?9=NžŇDrtJ4IL=k3Gx$w˥e? padZZ-yAk@ ;ë5:4UwW ߠE~ 힦&Fƞ/> t-۸A)ZYl8|K7}_/eLɘb|HG p~.{;(i3_ Om8rPXldz>2Ѿ&bc,myC;VyN⅜`m=Gg9&s?R.OUUpžj }S-& Tq󣞼ʩ>ZDt@>4%RU=lu#@I_ ҙ3/ipUlڷ "/ DUU>@X5J] B^V[^+&*9oP؅2$zЌ Y>D|l,MBC26w폎F0;w lt@ZStuO4p≘aeé8ik{ y0gz]Wg&m*47 uptYx8 %[-,QOT)vt\- 0O:UF; z\|5ٲ>VHwcp6SYv# 55H&<)|µ{Pgpx,}7/RIFOTc;uD wAOA\X8ߚ 67#37"81߼xlI,}⺜q(nD&ntI9tzq@Sa$n\u8Wc3,ުRό=<]Ξl63gEok/ԡ單B7ֱ)E+],cѲqK\ӯ4`)em<Otؗ_wJ% :{HM >Hin;2UiEE,vy\IvUd(ҵ,ATYKV't-Tr\` ֧b# D%%$Q 0y_AB uAq[L}󍩄D&҃a{qW_5ugq-̿UHu.!y$_Lt=C&AQG;btr,ľT5M F~<ߋ FҋftG9SfuTVљXMT:= U`4Q]j&MؑGYvHM{< }Lz$84.Kg` }!]}Jye5i1R17ĎhuFaN1'NYAB wdvX Tc;r |̫LsB LzD/(ZJ>&? ݾֻGpfr2nUo 17WbSDYؿiȮa[zw%!iUx ,.n[lnEӍ+r RKiEL/IIN2 #}A:6ͪj&.ɢ4Q`,\U&N%R\l+DO1&L0Ŧ^^_-n4c[f.]$~iWe&9;aӮ Ayr16l 47In*w2hL)Hwiz#AUŕ^"PLb3ۢ v?]$ż$(  Gѽz έ_ܧ-`ۚ`$B*9뒣ngaRhmdϹ'҆;ޡˎq9!tCi$~9q F;L q俢vJ_6/0 ]NV=a*l("3|Cߌon&AW4IlUK*|HϷ؄VZǾ5k7E&p/0=rŏEZfߠۦKq)*Q]P<ׅ&qp+xġ$J :A +ۓ@سbR4o+'ww j{LAFi5ÕW *}LFs2' 1°eXT`?]A%*Tk)*1clڐ'=$z']H5T0 sg2v G1LF<}Qy ͐Nv|~k u,W,mȕE2 >70:c5twsVOA~)aDhaU.A*1s]˄(d+l$__b4"XUj 㛗jva 9\M wB'7q! %|wps&*] n)Rfpyyێ$$Tmٹ2'm)@!Vi*}r %=4I*z6͑gݏ&ʊg*Dհ_Vk,*BzИnwI훔·#1G7\'qJz%ÒoЁ 06:*IQlih9{<;8x wnƬH8[PG{ h2"'~;(M[^7QBg-8F&bjЃƒ,LJ\@:ӄW7J@}>MF_Vxk6 -sg8;pD{=T51FD5Ef>'pf%}{nɾTkWNpl^' 1n|TY]݊SVy oŤRG'S;Mc8JMYv!2aĦ,4%\G#)p 7zm^G@EYMivS5*TlȱY&p} yV:Ly#up _:Ov~W([zdfgz~hAj>~ר9V} -+ B=Bq~u| =tRuarT{Q/U[z)^=E!wɃ@:й,(k)HxYҔM$M7@%xvX0 b_ L_&AO?5#@xn]A9zCx3*wY,w'uxHH/{}Ⳬj-Ago[neRIx@Y&2WIȻ*EUwɤhrۈOC$m[j?h/VN7ul%}kDJGDu”6!r6- 0^z嗇֠TⰈD\rbyb"gθq%) "WVj*_sPS4p-U`Zht5fst7tb{ "(Y/J7'F&X.ǨnW<#. F BN$)hg_vm$i+(ӭ*G%כL|kq-_hX98GVM07*Pamsg!VaUmCmOn RtҷXȳT}Xi͊}H|ye $j]N?Kum::{N|rL=+cbLMNARtvOvh^|ASDM\>t_ jQ(SIo8{S8blS|KMR?|`5›VGCPwJ-8Q=2":ΞlN>EB!YנeK~Nu+gOs,MsSs҇=(I\{W5-8zx\ %GncnAï's)a5bO|BN#Z@2Ke@܍HW#x|xb$3BB[Vf\B hjօ~:)n q4&;.8e|LYĀfp5y溥j3̴7y%Go 'gg˄Sң%YP\ack( eUm6Hz4j[ 2PJ;&Ku)K{o~+˲(A,G'RK_VlǓL]yYCe93(-2dU(SUBdqjXNc͗v%k]<EGm DjghM8-Nu䃽qt~D:Գ_܊9sI`Bo}r6~l&uZ!nMƴl`]{qfFeBX{^I\us^iXumP:6n+jLH|1fC#ٱ]ّEoF͎.J/"X2'zA)ܫK&'/ DCtaS]HD  5t"W cxyQy7z[=NxS&)MMiui*[.GY082o$c`Ε>U?p'm_b۶4sǀT*@9J Y0a&qΖ&jT#t<󐛖Z~}ɈMdT Psa[k,̾,/% N!dU-tivw7QH;K$xYe\ʚm,+jgKc"xqXbduW6$(w~>g `lNJॗ z/q }6!WP*VO8\XW:f)ygP[^GR*-Zf3.D}ȅ$w-R ㌗l:֗P}[#X݈DkDgwQze3=DnQ8ҩKC?ȒEO"9譿H#Ӱ-FR4vXB /|܏:{^g .xW^> t;9Oˬ1YYoWGN``$Wr+Q67?|BWEbrҜ/:23 v=$K[Y/j&ՙRĵsc;&+$~Q5)gHeA ]+Zs(.6iUYh $20l~x#7BC s5nC^ļoVY>"lb<-="0*>SXݱό#kN6K;MnyۺjXiqzz Xǎǽ{+E 9R{IkZS9pJY^lȖZDi>]ho"1jt=#e

{q5 .٤=m?:<͕gЦ9b&$~<2C,!~ f~|Sɫ9?{u&R_!s v0Sm^:UG(bFlOިuZJs.]nK5&v j`0Ma i쨿!+=4$fX4b41Sc8wD6W׆5?C+mh(b-lT_qWxrB,#+Pήij\hA/А6]Ν vbj-l Hc[4`[~f0 ܴڝ:%w4ir  R߉⁰-o;A`qGoyx&B'EFa8,,Gʪnp|[X`^[H4Ol+ [Yr 6^/ mo]j4;}١FZr@̀ͤ;G`]sz,6;Tb&k[M dNz'~widv.2@>m6Npl YN2~P l%oX}ۚ2!3h2`YNJf3)'ޛ;XegwLZVHRĠ-eL\@,J`/}10D]:o+? `q wy,w/Fexqh]:yl5לi zK`ao57l27-i1Ul(Rmq1}[g o!3i P!Rl]Xzk\[5CPHMg!oirBmB\9ipڏa]sc&H>C E*iħ5Ʉ,uio{o28 p$g+iv"B˞3]GVm@MƬEcKq DSgY εԖȱ߬U9+mK#\޵FI4㞛/%kPj,I'ElZU<w)6挵A58%X=Ό:}4W+FUg GiDlAUs^2' x ρns$i >E뿘pNcdzk?@J|If{SLBjĸFCQSmӮ<%b=@)hKK 8>=8jt&N)\wH'J<*9TpWqcFdbcfAeabr5 0Zޑ{CE[jRxfFy"Nm3]V\EJhʦhL\4 іR3~V,Mph}nZ35vYP3=JcK$1y(1WLgMm_C-=*@ KE~ޯ8ü)qOSTs1QNs裠$c(@.5޵ \c~ YK,$~BPcn$>;+A1LtnYI゚WbRK$[u8eont爩}q'4bm)VHʞV&wTd;o ,YCO*WwH&rYHsr.'Ӂ?djP\2xDEu<}ܛLE˽ӳR(c4@^VnH^A=+ʻ;K ם dw0L/_H|ycuH l[$9Dk?WPxdR>&WM$TDx\y75:qS/oi弪 rG}nWd6pkX UB e#q0op]o(8ԘwnM;wY0ĞAئnKejț"r* 5d+y'z^#j: KhxݵW$(6r|\n.uh# {._Ý|=43zruX8V!&0J{&50f0:=AP{uUwaY 4q>ȓ^eTI G2WaB?Ր W/,8) ڱ6?1::3mQO>wS ]Gueg0#jS I85]-t}jCj zw⫌ﷻ$ӡ+%M5AIa #&gJ@bUy,N)/{ћseJVT1fyx @f'Ds٘ #U@.*Pݜ?̾U,k&ѾL^(.] cU425mD$RUh#5/Q[*mtlT(X z[YO4hA ͐"Dnsly¨Rmg}@!bhŦd& v | 6@+eʖĪR1tvyYM+w18Ty/GrL,!U ROG~VNQ3=z}5bH*EkJH/ySXy<N>Gm!DN놢HhӋ6R ,/>a4jdϳ糹nIxI;efCo]zs6ag} -Ý]릸z%SH36J ѝ_AE{ 7EuLaG@ҠM\4ڲ/f?\gzEbzÒR571x,ߓHbRl(+FpgɨU]M}0_hNV,_o;5o9:{؏_la|}ta."!ޖéu> \$W#](An{ z&+F1gc.8}ZI W<˘CABjh?DLYӋԼ˨Yza񳳎 ?.V]ɨ٧ ݮzmYDc"mҝALhs7Q"2MVl\5)E/YtV^s_JE'8EѪ.0但!'WP/J/Lͯv<6[fě+QRZ@܆Igt[qB]o@q#)~imۡJlY+}e+ (\]bȁ( uѶD).]NC@FKxxi zN8_K_O"1Ã<''0su3oÃ31oۡo yWU) Mҝef>84 ?%[d\Мhoo4ww4\LjTbC΁7mɧ.$G <$}@?SdpwDl-g,7y@~&E*ۊ~]tXq}S>{| nBnW;PGP,ߛw s+}fhѱMQOP(t`M6GaH[x%*96p"d~oOD#wpy2Y4S_ TU)8g5MY#Ʀ|<vDU=zcsB ! ̽F5,~J;:w+X~!W2 Sz2"fK " "Z|8'@AkW$l6ENBv6g(&٠*^,<(0AoߤQ }_>]̇v\X):k@Ή,2fN<]Y=oxNzWmЍ ?KB+ɩ#amjյ)kTSyN|o$*xan]3P=Fw[Q!z@fDoeQj`x"#uC=tYDY̫l=W CJs|j8q 8 s"nF|/ Qfl)w l>$皃ˈ%S|Ļ JUOZ:||7 :]FB޻?$S%8y[(( ADg] 19q %Yr,q%3R9`_R(RՇn 1j[<8/lb*sX(7y[UZrpYJ0`0< xUXe۹@{؟ | %Q_`6F{*JJ1n;Z$g}7OJd?#'SqvsX`r4ˌb՟!x<3&3\#r c[5+:+ʐ~Ç:Bo*i9Hˣp&T̊4uqqFFy! 1ur gY<^?֟dYJw"ư\p kQ59[>x HyVtkM`e]ųTgF=%}wqϖg˺1C޶sk/@6!A"ǾBnqhE46:o*Q{ NPԄo݇Xu㳵ݭbOqzM*Qک4Q@ N2ꇕ;EPq ,]@k~uӋ-CJ ivO[q#(rQ#8ԡ?nD@R 7A^w`o6+E[bk: iz K V1_1.옾7O&C;'1͊S]n=pN*;2b,Z&>Y⟺"mXũ{DZ{2I'Y6RϯEOw˴(l"AWe':|^[ x1ETiosMZClX|ZUak }[҃/@?OY Nhwl-f=քt~e:Xok{ FZ XYJQNcng2XkS;!.=ɛتqz  풣cKBK쌾bȥN`XPCٲ\lQ[^iG6\χQ0!M0U5 ULfWQyA4v]FQ jcّzGB͉ Ր))>*lچQoj[6[`YÔ "0T=q[bPqVĆUs6GuK? EMqalYÔSQx Py7. 242fJk|M#w7^ղto>; J@̓m ?+HM_tm@M;c ,W*U)X$Ş (8[q߸n~e>J0H|<"E4t?׽|nSlWjY8[X._[HL=Er2CdL(ikM8 ~SeE͑T P7^|mTé'ԋgZ}5 DZ 2`xÂ3!L\g,F1 (к@נƚ=  Iu|gjHLwO@LKpRlѶÎC2[ݠǥV87$q.\oOu؎D畼H)/=ql)黎f5-bC'j|]#1-@K1 XؾQ=^G8e n"1MҺOcp! pHr鯵0%v u!pW}M@=y>?wEWŁY8vm O8jR_P{PͦtW3OJ;ȴz=! ˨:}Lqg;jVdd.G5(F{;zi}aIUTFtw1=`UU꽴 F\kSyoiQ2Tі D+ȘM0e%AL{3H :ֶ۟aV1찁R3@E᠝׸E&BSyzR02 osEmEjE‰L-1KqJK:lKTV1əhHWqy[3G ܂ Mpl>+ x*^9PQ#Z,ޖiTno{*-H &ib>#' !zU{"Ms,&SMu 01/BDF%)&WDװ@l9L۵U9ߐ҂Q5j mbNqn]~[jDCSB?Q3h8JF">>iC\k.åO(}GWw[]?xQ2"3s9]צPe蘨9ym\u?Cg}g18*e|XGۃvUi}CQ #v{evo>HU# [o!ۉ":4 w0;˧V.c |+u)ðCB8T9>y, \'߱:PqJ,DF38h< S&ui>&5x! MLa"AUP #,kqVI-LaO?a-{.,c㴱Լ:K!J!ht̜v`a٘@a0ܠQ4ۜ'V>B.-zf>,rD9l,l ըyEzVk><-,̼mʘrG֙.FgGT\*F=KȂTDVk2 ]qVpO ս0x|^.T([&udƗE^eA!).!ʐ$.+t7>u4sK_Z\ 58$UЙlѤB?30 _i&)ʋ-.9T Y)ONUr;/iH|ce6Ҍ2ȹq['wHNYC{@& .7;z>Xfak=ji_Gc4ό U?$Lh'uygOeR `5e=O{o~9nCsI}9#[Ab5Vu6V/gڛjwwXTgmjt61<o(#ud.V#QYgH5bzy`ۉ/XĊys֊m?x I8}| 8&` KgoND_R_|(k>Jh-r9~<($i9|ٮD+?xH/*rT[y">~2~P/qP=>"7Dx!Q>>Jw(h:kx1(S2a P΂FO晘``0TgmzHh>GgΪQ){fID.dzZIso\YCuZ3 =)aŔM>xϛk【o}EPtUs?#@p5̉U{s_+H>˄eӺh3"42"$GYyۜqisF!+)M^)bfPOŶJ'D  |6lv0sf?|CQL I nj.e>9/~t /Pk![ڀĄbcތ,ᤝ4.T!!XALjH.+7?/AT*2y}:|UR& 8>h۝ }gp#\ w̠):ؤvHو 1AWA?HQ>A(F鐙?BDpM_ֈ7  s a?~$O^.MTg /!q-.%3+\ܗ$ͶQ`h]$M.0}h^Ν6d+gcYT/р"y60E׊A ?<~hE( X#̝I,XU3jZYL&* :Kq?X}GeO4wGlFj7$x-DZ:eYΩEe,G6]zbO*dө =bZ)FΑs̩VaH͹r3kh_uG(&#BҦ*(wZM7Y*4I_zPBX*zX|QߔRʹĝzsbFw$bI+,ڐ}倁tqu$@;F{W-Y"kȻ!Mw1zbѤ\TxHթhf^w H4[B ᛈmAI PWD˝gip=#ꖎ倻EChTV9G3&ix bAuijU*:<*A.9SεIz f]yMWL Yŵ_d%q>{LQ߱ },/Ss &vgQ9ϝVZV'X ^0c%N "AGѸSuǕo8c9ﶉHA;lr=rf.ΨXF* q^`s?_:r|,iYyb9 \jKd˦N2zp#>"ɖparٰ/жW T+PnT.U9*yTt(J@?@'!Gt'`&} qsX@CԓvxjEԎUwt3@|HBDY%BSz0Ղ>Љo#?>r(絛VOg\8To eȁdD ؾGzcaCcx]L,;tj]0l=C:qqct*X|~=Xc<:gY/4 %)lNn m+ŧkfɥyhū *k>sqiuԐ"$RH9]'A+FxaN@ONj}'{+j` D}#agWu 0 Eph=:+8$2 3׌Sg= q)}K3/,8d.5k6L +>ʇV/D͐VQ)" S(@Ӡy˵4>ߘF(}޷xE Qi1 /zm[h٦7ar0S_r3?[B"@ e O ;p8'E (`G5M uB #)Zɀԡm|Vn4sC 0.,hi2GΩڙ|z"||s:aj+JqJ@At05!l,w7yD5kxOi ⤹*^(Y[=H.fK(滷̟eћ@7jՅ_SYv] v"f7~,(SRxv7k *j=?/=fI8lRcdt!.Cr tN/&EQW3X~N+4:k;{P@5ng!&HJ+0AiMg=&yEp3#˒hV+6A T!d(L~T_^KygXLA}nf zz g +a|yfɠ $yVC2 mHUR~9P>:',ogN6#D0 S& E:@ʵNN+.:VCeY]V dRkDi1TkHf6{S`jV4- -Ru2(\Lg- ֵK#~\;m>H0 IqZtfv{EلOV _;da%GIM j4iTo@k.krQtC;X{i>2C8;'Wp n"9#R;.SҘCCoƼ,Cw:JBɬeӣ >iڹßf,}Zmx9K܏/6Đ,v$|UD,‡+6iU#ԡ9O^逰:)%U6u65$bl5!+G"dvׁ_`cDX<*Y#JMo1)ckzF@Q)KNðԓjuz:/}@ډ(U2o=XYh]grϥKE T-g7(A&_߷f60}( D"ApFLK,S{0%c")Ozj 1H«.Cω]ڋ\zy|he5$ҘI F| G0jGcbЯ)FUcO00mLg?o!WAL⁞F+UC|qHi IS!Q3"V =V_Nw78rc8Bdcdo1"Ylɛ GSYCbin3i:+룹ǖ{īm}baT~Ћu#fVF XqހrgRC; !5*O~֑ 1-QĕVbڡA!߯!uDJBKgVNLZl6yxQ {Ԍ¶ F +wȏ? MHS!uQn~ ޑF2CR"ڼ7ًrfBȟCqA6>Sj/\fDbQ13T֗Th s J1Qu}1f^P扊-㺭c?ЙJ5,HHVb?5! _v[,[A0<đ(V3>K4eG7A[_$e Etj\lk 1 ٱzԓ Se(k9!Y QHӬ*s;p TrzgpI{r6õ,8oLHQBЛvW>s49%/4y(TD%ȥTVu1[u,.QƵ? o`[=7J{[ E[<@rv&ɐX2>=w+Yz=MPX*/{njrt6٪KS(np<$PSHzQ.pysta4UJaYU6oʁ*p=Dl2oJeO;?@&$`ڧuz*1 %:bՔv T8!i<㲺{{<^nlZUAdI[b(ﱿvaZQ˯^I,;-|:769.n_aXF ڂcW v#6fF"sglh~7 =h%I#YG~L)Gf*4oDu) \ǭ?fʰ$/)0EuG>l4iewyJVaH~ݗ!Ъֶ_H(F7Rz=@]yt56P&q ԋ}ΕF;U7R1m4r51GXHA譄8Ȏ oZ۠hm<9jvz<ڨCi.MS@ߥgoNJOep^P"pw3@,雿+rXhLJw$b&$ 10DC'xL[l cKV}x"),c4b6:!?+(DO|<G]w#|өD_ ZID][n}T 4'T.\قwyH&z@4.|Eb@:^]BrC=lDK1(rhƊe%}\)-{m Ng GM(P7s#䣒V9bXN$?1t/}Vka5CA7%ҡPIvk6zkq}f`K>K4\pZRaB o:U!sdiq:lHը_!&`u}smuMH;=†jxp{kR_OpMCѻ>֕h^_h/@(`@5lUp/e+3C=x6xƤq<#vaph?ݙb%Zˈ&dlZ7k df1.Aο̇-ql2O\ ԕ3`ho4JrT XקOö-'JqHӺWn}A9pIGC8i; 4E>q!q@#8uѩG]I'3T1 Js +p&4kUφ: D@b~?gQ{©h3etV9^{Gkv$[O)F8~\ mM }>h=m1>06TH$^P4fQF1B;7U3"iq"3U};Őꨟt ix}TimZt^~Ӳͣyioc [N vi&͈ dX M]-զ?z^Ք #R!IO6;' ` {5ojg+=aJFя|XD{qViݭPTCT<[6L4.{yTs?m&#=SF^9bҎ~̎nWf_NטO"~Nws.Yo Rvr΁6 GFnlQs5=iw?JrkМMŎpc/` |"|ө@ҩ(2K&gax-Ɇ ]oH-*Z'dPK-ׇ^-WY5 }AYNh諆 > 2OTO]6:_ުYS+2כ%ˌO_v/L?-^X+0x}*T a2a ːxO{e'@ViqhN{|K)Ÿ|"g==8Z1پ[QzSHw߶!âZDVm>`(&dȒk65eւSG-wfo.ŸW%}GC0.9-//3U_poҔ t<~6 eqH3np ml# } ;bf3NSSPp5 Wd| - d*rӼ7Np[O=nŖ0>K ńB^ջU=dJ ϢjF {xk(9%E%ujRnr="oHj%vGaRWw3n#3_CZ}DU9C>˄̈́*j/Ask17~L{rθ pP싞Jxqp69ғ cV_B3 Ց w).f>Lo-TR2z|ТrU<* , Vru*z!HO RtE>תH ?sPaۣ_Q1 t4/jH}&TيKA0eu~v:" Q& dBVmJd `A4m35&P떈:UCu"i`5mAtCe1VIB5IJD:aAwշR*ݹeKa}9:&̾Ii5JիS{E^^یH}$+T{FW;=v[,aʭ)b>PZ%16~r:RKQ vr@P9%i=0G W 8$y!jP=ePP+(|1|+b$8-wV|v8&g̚& 5[hԼ g^tPELj#Oj&a%4ϤP,d laiOgg]7?{J!W6ƒ3)|a &QዯO{ aٕG';%yނ{1 8C俩o-1beF?I |DQg\ ϒ<4(!jeie8XpFBs F~TkhR$$G5HHR52G/x5NRY^*X]?xW:44~JTS6X%p 4%6u]ꄯ g ͇D3'!/J{#biʴG7H܎5FS =Ij٨?&cOβu vDS&J^(HtKg~mXPnG όRgp=@ Y&.Z$!,yJUZTP/l `Њ 5<{-\Rd9#g IDC{ )ra?TbĺC#;=VegMG,c-@xSZWelj$$*~Ȁ|)dZR9=wл  _Zp۶2"^Ps~|YfkD4A>BPV7ҮqYMzs{S 7V>}áIH|Zp/G^`v%^ILQ.J䘢z2HBX,xBiL#Diq14w2YѾ43Q׽VDMY!3 YLٰ&Գh&pMJtiI(λz X V`9{Yt&K0{)Ju <CDW):?5j5z8X-E"Ņ߅v~ * Ԏƒ) zYd$AM;w@o ђ'zfңJ*NG\dd#%⁹oԔԶϢ;V|W#TX;a%P)l:"@z_ Wω] *e*:SEg<jSb+q ݧ@rA<>IH8}Zclgh$>V MΑ r#]4^YyCa>2,^^^wzq܂a6E)(uZfC÷O;;M`S#+h8IY4 }s[(vp5%n" ed%,Lz XSYnŕXm|VMy0׊DZJC/{N%^fR WnR!mD:?RU~7OzyuLXITWg]|I~Ńt5^MqaM.%q-Z>h6:(Aɔu.Ho &?mޔHz abYZՔ4_n|3U|[LBB$H.vG0+lyfɳdUEhxhqP{`O뢢 \%H|QI([--N?Lf&^Ƅ5Sb${b)SYsu1KH+A }mxj Nh轻u!fY+OA3$pF uT06V5+ `<% NѢ}6G犎ƝdfbmfsDOAy(M7c3!f䟞V'R9cyYmBuo ךx*;G Pwrr5 1iXo .cpv cGkIn@V{E)FǤ:MbHѿ.N7w"kBQ_:/2<*]٭vY]U4ei`}M<Zv}—Ɓ9 d~':́t!Д4n^Bwl( U u\͈HTvnA s&f ׎L\ 冡{ P/*| ;4CNJ ʁ8!>z( U.9ȶ@D߱Pv#1*Jf>bHg%>y.f3M?rȤ G+Qv^G0?\@C>_]v[C]:e}ěJ S(SJ9?8(,u׶甋$ ӔjĵZ,~ rqzJ;ԘtE[5Cn\&!|oPZd>h" ;KR2R#P@.YF%()@NMY"4LpNʪhcs>'cgW+{Ne'#.ƆämI'oޮdaz"uZZċR:[t* JwV{\0[ˬ1T4Bb v!pwWoWbtS]-%kQLz>(FNg[UNHTUdYM5y[սi~ʧW_tȷ|7IhB\:ٵ3 ȳGW⟁ɳZUpIЪ-TUC_j!'TpJ(<"Nw;d c_Ku/jjQ-=2@UZ0d`ۿet2h "A WO1`MҚAs"6P!vt6.R5ʖZXJ_5u8ba-$< 쨫/|}[% i/B? uP7̞KS_A$ef@߹fӡm9y7Uگ+&5b0V FC96Qա9j`Nmo8|-_W[fh{.ńcOy9+c-0q&Uw(=; "=GɨGp.I|OIɜIOan#Z7%`O7MtQnwq+脳Ibk{q(<(]SdrÌ_h]BBB:&X j|60;ُ_JI*ujA|?f !:)|d*SUkn&GPoMy+zg(cI63OrirR?,cfGPo~Ewp6B \< Ge8J Ek]HZ^FFwҏωp͈E#/XY=#d] w/6KA:ř3ס\?OJIZNzRp@qwW{ 5s0N4'x*M6K+Y v_I+U8Nx$HGy0/VLfR7f$ կ ~N.aQ\ʷ6#Ve lSNe0WV;i[KJ0&lZ.IO.ŞE-`,X,SCi;D38Ms0s'9aO`twx_mwd%cYo E:;a]^y*^gܧ8wZK< DŨt}PxJPt3HKt8ưg*9 sVRc`\㯈/U)EulW-q@?;"IwEƩsˉ'H,'|iȁ]+u''dX%G"YП] DŽ˝£ LLJVIK|cT"J~*?p'dcg`*i5.KeZq62O<%9!`$s}\3׫׏-gz&r0}=SMj-6XkSTa@*G_i2s0XyѼ1=CRrh\ pP-?.nE}rPcP!\n{{;Ҵn@ȇ,WL[3VwꗕpFo ,gNrJ=l&k\j^]9Ĭ龢s`Mblu$2 Adbeϝ[V2*fs\Px%zlEwxe^զQ[X301bIDhN|X2~z k{? 8BtX*G`O *]m4˛ڒkK/;'5W-LqGqeTZ\ 3 .n㪝T@SK#ccɞ;?t +f2[SjH=إJ[8`K*t-b_cf`l$ָ;%|h3.鹅)8A&G-1cМpJ;:ܣ˄b,lǁ(T @d6-l"8F ~'# IT-3^!"x0!^^%2(=FaGy+_&;u gMlf{zYsnZ#RXP#FIϠ.0Ʋ"dc7KB<ۏ9R#M%8~ڲ]}LЪGꆢ5ucm\"tòY0ΫA<5ݶۀJyYF©B0ǹ<9W5iqN/0LMLM]PXۦZ+_5 tliZH]Wtw5sp]g.J衄 1U$B*xƥJeVfpRq*QRHݢ7g2A).Q^4^Z5'p3|% ;y!`ыb+ X 5d`/LO֬;+}H/ˌ󠔼#"U5b*^–"YK82{U apK{S4l.#F7wbxZ7|%[6anHS"Դd`fv#^BؘJ(!S`39D2Gd"Aa4jB[G;j){MmKǛstysA(!*F$`Pu{+{-S2G&!mO2b?b$/oeΰP؀md$IPFձ˄{G*mq4$Ajr_B+վ\pR}}7𚎨{0ipj}r;Ũ_x+˃I 8ns\1icpkhnCV;Bav|k \gnOt1q њq/9b[C(_[t+ /"^8[olNnԧ[J(ZCu?J]* cYy e,K;`!ϮFuCy Yɸ8ex7,p>T9=jzCl˜Jb]$yuC(3h(Y @CIGRl # +£ZgP&l!ZyC r(% Š%k.tMMٝqg,$myCDxC!]B0HY0Hble^uдmS?^~e%<꘲"'|ZȬ~AZ/3=˸M|"` pĮhِ"ͅdsk}:SW-ee%bȃW1.qz ~K-gEф"=^n711ʪ>lKw)}IR܁7;'/Xܣnufw\@8ʃr F1Q,JxF]#aly]D^ĚTM+ߟӔ|\dR{hs9ڰ)H2ߡrǾ mږ$Z$N'Zc`Ťɐ)s0gf^Sb a v FNMvT=|5f ߹wYU*,/~o1';LV KH`)ljb^#GGFwRwѻRoDx8sG;# ҀdRψ5izPRS\g!)E&]R;˔R%i3­zв݄a)5A,K=Dvx  /Q L&6GAH!- z]"ak# D0鱼 k0Џ:8lF; yßB` $3qh9?@#@rIMl/G/-|ծuWXo1HZgmHݸ~eERA/S6ZSEꑳd'u_:-<pӥo5x x#iא9ek[H# Zxp;|Htȵ K AxXmkT;>7X|V{3ޙd$)v+B gqtB9: 8eRa)l!eGCV)b?n48a B^fSs eUzIgZm PN}'7ʜiQwGnLub;pC<ħ͢U(w cU~S5WK=O;;ջ$LSfuaYK9A4ʦ )nPL_6ۅUoö{<\E~C6qf~ <iL΀uuyc:'bԉF &ځ鰫OhA/DQ'8Q~-TȖ  SRePL}cLdoG6c[%|3i.6 P>W,ծ9ˈy0!=D7Ccgư(lh m-Rl$*K`E%-*c$qdsjd].RZWBXB/UDZw +zӱa]bXFx޴L/ޔJG̠,V=dӨ| /cCKE\!izVB~Ka-_!O6mzt7x[YV7j7v/A^:?Bo|ww/ ^qrդY8t@XbURšw_u#$dM7e13d/&5,rwE~HQR3yM/СEj cLQF0Âb( Fj~[Su lǪ 5=yA.{4Uu![x&/GlV.u8^ՖpZ'd2P1d36hv!ͨp2 oyEn9_9=!;˂†Pt?_AT S4q -BE%b[q!^ A3JeT}O{fI[8qbA572iM+f`h+{ P[JK* v-O]sjSe!5R6x܆z.TmKW@ \%I)Y/ț%T)&fePKx=j֤zxK/Tó'I)JM7XRƐWgZ(O+yKXNNDЇRv'QЮoY$E-s8P97 l֎ ,5ܻC#yxp߸dDF=*8)qʍՎar^};Cy \u :`+/܃usl,#ҵJsc_#>LU )X֞>>rLٛ4y_W7mO6FQ&iBkax.Ud<Ӱ bn/k>*8&ͯJ뗵D#SF:>pEb'Jw qk; QLiCZ.(#p_ ɻk^!= *Qr=~A3=©nSj^W Z>ʭhЫci ,Rp+U%gPN#J/Mw@[';d`̙4WϿC߃f\mlJ(9n( ٬r=C_7NUﰑ $_<]SZԉ'F|oシS`6NiC-|8-KP5 W\?iLQc);9 nByC|EgA[cPchcD es쐈0nn0;Q!'ܲ~{e͛ز<1Du2(J^XF--^n&_R:XY4e6kѓV؉HdLC#;bTM3.Di gcQ6fIҒ< Z]*m0Ke*4\2 3:6R^uE,JT}j aPPv1P:7]ₔfte(-׫d!%#`ޣMK@fL1z, jXIeE= R]XU]q}N25~RAZ*n76W4`3\oC$eײO!8g@lƊX($Qjܽ!W*ܯ7.!&y,#,2 7$]l٦eo廰!qg' 9(61 fvUՌg0w)i2A]$@!MC|GUzƵŐ¯4_ɕ>U҂-[IQ.p:)]lo] :NN3z.Yl59(;[i<ݣԏ̆ Y-݇܌f+=pPNi~ѧUݠڂ \8KPò1NB'G޸c!B{F rxxY@;)ra]OQ~[ "s~bO6_,^oN:K rĶVL?#:ygmAۂ߮~Q] OmWI>'qѨTrqǤ #_ďtV2x[7y}b4\44+Db-=˝'\d.iኳK`8 N􇀭1>lT[Fcv?ZkW,no& t.>%ZuKqN' ftHbAt4v\^mO!,|'EM^ZKw):0lɇa&?#b7C )*:6F2 ?;mɢ.2a4I˦uӌnT6 "tCL[6iv7XCTK$<蓍0pߗ3l+ $ceń9l82Q r3zsG2 jܚ@ pJ.=´o{hf=y6%1sy*fʽTo^ZE*'w>+=-N ͓z2%oU\Lɷ[VY˄~zpl7 -.W]T]EwJ4&-_]zQ-÷cfSFyt 8aIOC); 0n[w5LH*H7o/ۯ i hgk;"k׋]IQ}rFs2aJ />vyٖ0C+XP\r K2Hl@p{p@`mFT9/ bU’P?6ewCY |}8+˙^:ВFnߦgF‰ jԡUoh"~<݆A%%p\%Hq4SF]kuC q{x]hVlc.ֲʹ \TbLxFo _D\ك=ijTljUE 5\r cN'%fUg:w"; č ViRc:vܘ>9 ¯e;X"qڴZ=O[U" (+wuvfz;'f!lK؏ PbE9c_b߃@}r>KMaLZX{Zrc(|=gOM"D^鱖6L}Ќgy*bm`r{z<~zb( 8Di&Y'_Hw'hqZZpZrsZ3H^ʔ Vq0qlo\^]R"F[m TX# =Y7RL0--dEC%Ҟ#/5Ao@h.+x.!zt%S{Oѡk̾2rd j'i? ݣih` CH;caފS~Q}hА=@Y|uxQwv؍x[e 2^?94j~T؉Ix*ʯo' jbqG4؏~m,EhuKZPCB;'Uyld@޵ij#0B|[NU)]{Jv~)bm!\yl!KTE_13$hۦڧ[Aѣ,1/T]Bϫ2")&2A-#Q4A׃{tAD}hUh?so?O9Mi ug(yU%3[^!'sFE %h{iGNDKjlz݀<2#(hv 7k| Nc;Sr$aqFf4*hXwv@~EQ:ù!]dQv!"3$05O6Zl3%tNJ.$h>= QH&W A C~$6;Z\$q%bxbf-@Cju Dܪ]T,ԐG5 ;,ƍw_Vtt=d}\ALHcp\EҀϤTIk=&l]x{S.m2 zr_hU= y`"S-8AP_wXi#F]9 _ٳ+GmX+/ۏ!WDӱ㮸E &e޳bemQ<^feN3?Ќzf2X𼬽o2sU_ H $w#Am ]2EޟLBؽgp)|en.3u#=`5k+WBɯzC&hS-t~&<@u`k;a* >PޙjS6S/B=f̸!er`=r%'^!M' j 8WRېy E[bYQ?3>e۸-Wn6`l3]B@=^~U񣙓= @D/X-ՅYی+I6! ~Iv Ȳa eð_S=?swSR;A$Լxm/8Y}:V"sעIH6:Y;L7gɧXdlyiP3xr8ue* ℩5C \8;\2xɆQ|N.DVBz30"os rr_Ƕ8NHaM'B-W襹}n|/wɪI{,:( [ eb>3ly͹oV>ChZXW˲u 3"b`$m6}/~zLl_J*$xhyJCm9H&6txFZo#Xrddƕ;|T.׶IkNsA=qpz41)nzdke?pF 6Pl?- =y5t3~+}]%L+VMy@])whu #_-:@ 6ϋ0Aɗ ӓ/he_jاoVHb>N_Od ?^9FBi"G0B*BLb4bx]ƸEfO+r=EYF$d"x.f@e#:^͎ 4{I}܎#f$~l_>I~}CPY R`8`g'gqNro.l\"{Ipb6Gp  Ֆ۰ĜՃ`;0p"Vs~ϒ?%ngR1emG Tx{켉XIgĬNB &6J9(^Ji"'7̶3$o`7 ͗Vl͋\I=- #IJJhO |'8ρ* @mr)PMV8@wȠ#*`qI}@`L7TjqpR.dկ٪Ej|b߃!at\IG 3WU oՎz8z"炎 8yeNsH`9s\=^r@Yܹ@|2@'kJ>6wzWIz 1!([~G7Cd~ܨX(eb-zT Fq3IBPS]c \51댙4YKjYJ#A't} g8buJĩOv)tubkbPmB!?ȽImPDDǰD-aNHDb*Ÿx5ViW"GϜ,D`砭od ξ9gQu2c?AU`Twx0`SNVPl|T23YuP$-I{`[mJW'REcLe]Ɖ ʀ)p#˻\ Vw:}"yv,B#|]`po7 K蟘 !J /ut'UBзg=e< SL6/9?<+ԦtAoؤӗWJ/;!46MOv ,!y[szFKSMp˭*Fj8ieVxalBeN[ۣ|B,iMmKb1Oy\\Ol;3p^ІzA3SR0kMֿ<:|>NM> 'S̑sL 69DUÍ }pU#ZS4qnpW9M5gsz ¥exyșf?Ax#wQ<7+>Vy L^ a^?7շ (r%(,p.2|\"肢.3pDgi5SJ*H$d8P띰"~vmÁѝ UƱtocRR3W9W&l. \#whp z}PWmO'T| px:czHBc6Kg( (M }mJqi9GQKZ kOTr Rq8QmWSr[R'|W2Vqcl/ǡ[e=L=?EDdC}3RSdLf4Qz ][Q4Sid?oA@Zע,‚piTR6b9X~Т aPlAH' ]IoIFcqnOe7[dp jH"t?H֕54Hxi^PBb߬+P3E/F1xbA^OP5W$# ثXKR>N%S2Ag<]ȝP{C¢B,?6`8 /Eda Y+ё؉7-͐8rh\x _wXU49K" ٴ$-JglO]J,LZ$/itϹt'sP2ũߎ^tGUrW*\l1U}[a! sUʯbAO?dJ9@xIRd3ҔP]t=q4[Vp)hdJ{5, \3 :Lnc_@v [}d>Қ> jJh_JfÏu*Ǟ* k75$ZH)yKt3q%tzp~:v3t 9lL2 ?I΀<ϟW iJHe;%cb>dFv9cTZ(6-Z$Hס°J|+r\Q^e] =]W4Sc]1f/F[NPՔ,sM@82sLj!sInNjG~})UCd==%6ahin܉A;W<#':Tso>bV_nYG Absȼq@kNk0E^]./"jx"ZK=LZ7kD|̙/mufHCަt8+F|ǭV KJ^Xsh9:{o8:gJdglXx*-&%554gӳsOmQU\DZhh+b}g2^V*ifz\Q2|wմrQA'_N+5o]sVZ"G|#Fv:vFLJ*MwDd3WB}F^;"7.8ͼcr ܄/i4қ/]SU'Bpu WT pw;& !6PIt{C6bx Z#dSN- (5|׊$QPr|3Phoe$~Nz2j/<͚R!C8甒w5p4焷IkO(^Q4I+&ӡLeqċS lٞbfAd?n<4AswXYK/XquD5ۚ \g_eF?q)ROs/w$eMmIŇJ690/Gf)hun)X)L vl?R84: ^p@νs}':*^F2\ D뻀P቏)#(HS4lQι_fhj"]4i=I~4vr%3~yy1؍&09s`1+)J7p0̪-"0A Ai|2| IhClwL*|\Uecih%5zFTbQk)X xđ`(~f:?22įJY0h*{}Ec.`h%;S#vzp 141޼Jή|fւk_,>=yNtS'XPob7J?X{? n]~;>k=s $rdj7DѽS{h+hK< 9HQ-0\z@3kJ.zJw:tZ,?,l&CSUg˞#, .i(el<8L12|59ԕͣq.J=1Af;-?sF+L EI١sX0%+ u2x*]IOˁV~ϲfIot ubM&airYb8pc 2>ŁOL;N)$VM({4m ֟/ tb K1䜜 XwSڗ Fg#ES i+%!r$bY'BpN2 e Ģ|vf8m2dODu<Ɛ7=^F9QhǴ/ c1]O8xl-O3kT$7*p~w>xLqq>ǥ $lqO:з0ڙRts844u!qwdھ@Y"O6xl[39\N=-)K҃]x { 7+!&B77u'YJYlr`IqϦ?c }=2L҃B!G] )o N"-?wbvɥ]0s?+/dʎY¾Z`gك {oglQr9 eBn !okJ=5:nv!0ΞCK>K~LCn& k᳛|CYyr x&S\I+*I/hogSn o-s<7}9Eh\Jv M?3FP:_3ND+a'8r3T@ѺBuQsV<ؒG`JQ ɣJ\[=ziK-qX^xiZۄ9Mi]וxJ^|UDEΞbǚ{*kXX7KHQaALjnojӮF4)a(#3Ӟ9힃JKiX(@&&N>QBg/$2 lL܊. F@AeyR h0׈=L\bQ-(Q3 i[r>ku&B(Nnۍ?Xָ/# XDS<7.Q[IyjUOy/ ']D\}p4$OL&6QvǼ֮46jw#=ϏLqzdDոU^CdvBqH=KIzSٮC559lVMoD=O'=?Iѕ5!׀IT҈Ob(JЍ#HQI4Ok@|?9P Q08n&"n(ǧc/´^tc Ԕ2;j(5)(fP;L>䷶f{ju`de1ZN)늁tPΉwzzod?-7`:^ìo,%njJ=;d iHhaC_Qh&?7Uݿ^djAKqxG"2, =bw!>x8NSuiW4^8 5M0*4siVU%ƅɞ˯ո3T6`IT%>]A;ߺ3UMfƤl\*1#XEA(w1ւK1DNvh 릧FeW [^H]ԋYG Ǔ ; n.4a8->m6@OW(j=s-~r\F)Խ5>kk؍2,8tc]NLZխbe=^ Z\9:!IƴԼ`f[Y=7Q=2-y+Rh3,e,?/>Podk,dؒsgSYo#h@lߢ4fF158報pz-*͗/.rd(kӷ~ssla$Qt+}%r^RM+6;@j+'N.Rtض~$B ٽܶZ(y3~ƶn'!^`8Mo^y;=Aw:i1ik.U5M`iRj<s @bYbnAUwe8lG+K<4\'Z A~06<2k DBg읮{Rcs:yܐ*KzykǧrAhjK=n -Dڿеf`A3Nhż/ ꓉c븲.'TD壘 0]9AذӶe^<ݒ~IaTtXwui1Wo#oC/5[+Q[pҹa%~@ej7dC C4O WnY592?U7#K"g^Luة{T B޼bX/\˗];)*Ky]aװ,T޺62H5Bސ >( .@k#T.ՂR$ag/[:IW_Y#Ş?58LoPoy&.qb Ύ-B%ܔߏ,CFY .gO_?[&ZT4o @̊:?[v⋿gPOݴY# kl-mEHu^ [h) 6L@:dr&ރF94&,~n VکB[ґ'|Nd)HSL=ye"v%lYmzIܹ\_2E/4 zh,..|`o l '.uHR9u'-6}6n}It{OYHM_j3ڶRFlr%ţ9Z$Zo*jֽClUkwQY#3IW`iK$+~UG q1i1" _P&<ٵp2a/p[Ia- 0P mgd*e_ rsP#OD+== >Ѩw,?U'$kF~LLoGq6nk7i% 8s{sd[nQ?OeχRcUa(K!nk< o2_]/| 16&ms>=al7ME}T~=j2Q5[NP]H) I/-SE_ wi̢~܅Ss%uW -iވuA.>oSpIHN+oH[Ƭ8#?uShQzoKu ³#SBLUPK3٫C ׆&TbwADF"5Y tj'N$&_\]L_r|Tq缨Kr2elGR#ʪ7ь^8 \$6d1z׹C瀳gyribOd (#3LB3c3zMgc?,Լ^6Xa$M7tjԇ93iQuhߖ5Dۯ*趙F\qq~Øs=>fV!ohuDPFhzَ#VTLwj?} Y!&́%߫V4Iތ*<S}qZdQxmaTH0fƍ]Ig ðQH"dsutߪ]cUg QAf.2[jɯ1~M"J]# \Q \"qZ[Ќ?>^?>kƍ-nԱ Nҡ_ 2u߭BWT˵TCXD "M KLC}EKD D/^0|cs2oDiKra@&p3fƖQAZۙ!7m{BՃ Gwx-6wĒh[BrbPo×Q| 4*C@KI'vtH3Ȍò3g$8_/j>;鳕cii`3asO8ZuI1 t:ZN_ar>ރQ͆04ʷE!MwFeA"\q+bn z%$3Q=z?k[wlvO$/&vbcB528~Y|S5O3(%ɎMێ }Sa~{G1J*煊bަ-)󐦙{s~-ѿfd~k"?'+Z LWDwp<9]ڑկuޤN^] ]GRAAĴ*/ήxyMjR5-׍U=OapvJYlOp<S ur -29G*OD̗'}߯AF4~3S.FsVOڳ"<҆YkP[hVq̈́rnLƀ)/\bYE(xR2q,=8MzL|nFRYj cAM)Kq_k G Wb9AыLG|Tlmn_etei6p,yۄoRn{Qz\I*} {Q>3D,ZWDg0p\JIht7 WeQlS FԜ76eɾǧHؑs"F* \L+ԃ=M~kv)MV6ڮP z=Lf[+i>T1 *v6[X YJM*9d+dE&TcJ%ZL"7 ZDQSCxguo5F3Dib40 \+OeV0„ ^ 9ǰ)lq1k`hT3ckl}m*Xil;ZQkq7KJO56BhT- wm\I`d֠܇9qe62x:Wa;:$./%V@~B7dKmx.} 9Q͘]kǷSиQ9֡ȑF5mħ5{流]jN,VzB%>{52]gI0><!mU{+ۣv.*2M +ax.U ftP*_i0(hKeL,'Р / ENFVq+sMcEK-lgh^?v&`h!j`F'ʞ HUXNa TF8Ypr>wq ٌ}@04O7!Gm'%zl\;uN3##\:~ޘs'_T z~qr|w#~04anSn^`Nا+]xu΀ `,_@ xt,fŅ#R8N%3 FӪoXy 7|ka}PU7r˔>MAuՑ KN=-|KoދER;X>th@#BpqԒ6Sypbnb0KS<іd&.=rk6L*WJ)ɸՠWz/Қ6ϪIDޑCH;آOX{ߚDx(طiF\j,9WZҤ ?N-]Kyϩk2x٩`:Sys7Q!~_ar_ofdqO6y1(p[l'ڌ/WK'ia- 6+3!A/ydVN`gJv~IN;.\ ^y.u2SE$}0$scIvZ%tF@(FV}FRYY!kfgX5% q[M f,y,L&A^+ SH##*r„j$e2@5_o9“;!J ' ;g51mwB?ڑg' n([g~QIrB^Zl *E #GMHJ v씔))b)2(ӕT"nQ[V~ g+y5F_TzcvdۥʪZY*l֝E[Y㖑U* vǷ(RUpu86EiWRhAOA9k{\ P)Q[ߩ}'bn7ݚ(&$' }IP@`tSKqYnSTrye +GA4,me) a}^}bJG$Z1FD3UL<ҝt nE(aJ Z ǁ6W.kۉ/=̅kOKK589‰q~0у2)S)L{4z&:wt0G&5b<HN 7 sSҚHw,q(Fc5bv2/J%0/L1$\a31Wۺ~/uPRd&_=G f,Ju_bWeof>ٲy|D%AYntkn9 @@F Ԏ6'u63ȹ)ŮOu@:T]yqs5Jn>,iB"{@T!oۚ$)795{N<7SF3iiFn 讐gjl_F0z9OrGpkF;is~'fЛV) CS鐩>Ch ًo3l&[kAFG-,ac8̜{\G _ߍJrOA|sdhY ^H_7?,ۦi'5H)45yZ3y sHʧ/ j4{MsKKJv9.BUQ®ـejsH6Jf[.wSXrNRκkCz?] mD$OG8+D{9wvui~~xe%v4vռyn E}%Ysa%P!Jfӓ8!VNώhMHw$jS UL(a)3g`չ㑲FRcӯ8WpP&`L;R^E+͖D!Ie[!HPh ꅣU}}瑈9Pw2D)WSNŒ9/=_7`Q],%ѸS%9 HoOιupvߦ$6lH N UVj/ .LKy*ۯ%/ Ӣp#85a^N|-ܚDM;t9,`oZ2H>R0v\^vj}uyEw= 6'5rXwMR錽F}8'bNUE8!qTc)ق1m7c1E W|10 <(IoE ?)wql$x~4 9Zm#Cf9EDZ=$cyX/P#D'1LQb&e)t1`L9a']ݬZL xj  ۴>K ʠ&K@EQN,Qޏ~ꍽSߒ_PHPaH{V)U_lL*pJ+Gvs\voGrˏvfT~QԬH[oq&o*(5}rm5W{^W}`&X/Jۼf}AӸoh'= <ٵ3fe6͔I4}SxO4ՊeW{N)"8 DV|w0OdG9jzޑL„vνt]wke6D La\emG|V8L8 B~tur[j"7V|N082K>/9I>wNysޱE믮 yN5EOe=  2 oD% UG{~N&7IWE$Ú[JTxzB=fa05.~2d}->S o(`7v/[qb9jˮ~vMjL,{n!I);}^wYXĂ[ΗJeׇsH:e <"' *ұ {'S^8&zEJۜ\ V4-8,}qtu!r'_/Nц`Fapߐfn~?%=q **^׀1#Z%'wkZ[mR}S"_ETn4- !-Л!&@@]`BU0 +hQ6Dk>y/x>>UheemT["]yhSe{Α0-6c[yFٸ7k 0}8n:]_VWD= >Esaޏμ]h1N(-K<[W嫿;HFf>JZ5RhvUЏLđu)k`sF8 l#_q`-znEq,*08y)>3Ƴ1r-wy .$ y KM+7hr"+P (7å6VL> Kb|bTH`Y0o?8Nfr^'Ժ~Y='(qڸ9 *w,qeLYbyg/:&HsiG &YIv"˺| tWV5W +l]汕ZR^A2Nw:ȗ(A8I^zhD^1nYlhi6sp^$3Zp~9>C8o2dߨih& =GGݎ$~EG .'sWn!0#QB6քa@:4*gNPPMD53vz`yq1.; \zy#N1*  I0Ǘ @b8kJVSJ!Q?K}ia: yE ;iXg-؟Xȭ[fp"β@ܧhUL=;0c|= 3|4TgdDj jF@Rs#\_,9+mjrxʈ,XVU(~b]sySdJdW`yBX'HlB:ǕjN؀;e9ZIڜEXe)]0;Se;Sn)u6 9YD] D)(U|=NSӀdش4~Eۇtȓ :,Nw D[m8a1;{ –˞^.q.8G3[7[ix0AlhL-YH\1$n_Zv]BQhjUKsQCmeyRAexN`yixCA4'b G~s{eIw&#e,UIpf_S]9IN&uj<6ZӸG ?fŬJFƧ@ĝұ9 `k Ɓ{MZ$ AҼ8+7K|CiC6(M 1QN1|LjNn*%K<qKM4NȀrvmabSJ3x{Ógwz9RG_suS,d=61f0JADj bn2 F2rr,U.7t{ [m@YloNpCZmSg+S`ϟӞ 3WYB0ܬ@'Yp LFυZ-ȭ}æ=$a^[x5#%ͩЀtݡ>q_ЪsdDi_1>5 W b$tˏkz{GӲI =Fr+áuB {L}?EsG'f?O_6MH8 vv>98x+Gh 4 ZzbK,F֌ZiFU}8$9RX۩B1ko면4පGarR>;5Y[Ɔ& Z9yyzD|ڟA~PY<ͤal.uaKB578(b70lgx BʵFw"M |CAquu3CJS.\2YiN\()-%mZ1ӀD +BܚCL 8P=:D(H?6)㟇ݿƶ-HzeZ|ytb۳i&x%xQJ͹7eƅtF;NJIpQjϣY:9+"O03 o W! L@r%+cvLE'z* 9ף*ЮnYes*m4罠tN_Q|dpnSXؘ.2J曞ۛ~D+|&w.Ŋhn~:<@<(7!zNKJ;!8P5X?m+E AUm 4k5aV'.E%Nߟ]|ʶZf{q[8*mvř)|oΛŭGu% ;f_D+hlaPB?q, xʋNu_32ڤG^hZ\5RĠF3ڴXϺ=a; ӯ# <0Љp87mƏ#hX2a ńPDͱV&yU`UۀVhH9߷[Ou6BC F?"ȸEǴo *޺ѽ (0z>8|0냆.Z4o!K7Z,b3rP|8fo:|HscO}}˪Y,s-%A*]dfBUa&ݳ,6חk,˷oKL(H5H ^m$o0=Iw*v s]FƐw{7wmr f|q$/GI!㩺pT z=v.+ފHPGqƥ75HtX1g4A?5 U%l0TE(Y.Iq`RxZC-|03r<t}o5&[LZ"ΘW M5}HQTȵ#W46(^tmr༷N+K/NG5Y@Fb+`З`q2N#V'eDɱbj"EV4QEvZDӞ-8!KCfp,` \KY$p8zoZ뛗7 Ԑ]kwNӘ ƒ.CI|NDC.vľUJ1ܶրE>QR)wD<(p[ɲvw$͏(SyUY{Ulj.q@oͺá%;ǜֻPص;ظ90cjALQ$h5.wH:a7ZXW[K n/ZAV'Ld}eG =JV^vC^%K8*!TS5Qf.tkR]YM-$%ˬ;丏&[| %re㽜27%5IkϤhVAUm/7d#`kUBCz UJl84̴L}֨U$C45L"2|"*v-kN~n2 ߍ)1BuyNwt~ӽ8rmA64?ͻ|BS– |;/(X:y?ʱ eݰ^ w9Zt脳_h!+"Er@&[9g^޾݋1Fxywi&i?-;2=]F8IXPVyR #Y c~"uQ 'W▜ĚU3!P5Aηb;Ke'PNJ_%2PCe-f9#Of1kQƎK1+Dnţ%JT'6Arbٸa h rp߄ɞ-M-]+`VGTc  ,-ya9U3B[@c ~_Op$C9Dc*ѻ&GmvIՍkĄw G%5md#e*H<ӏ-)64"v)0<9۟[~Ƕ2"%jLeޘ?*[}P@/WmV:FJh3h<~ 杘O؄2ž7 `PWf}0SMEMdMY [\OQu~E-f%a- hKbFNF(/S!e4/Xj[)${ͷ1zҢ_pXBhTZs.E t1,B` (F%c s 7)R&`]jvHDZnBxaM$O 4%sGQE'-Bjb@MYF3bni\.Hnm4'&EἏLZq/rhvZэ{X:Z >k%J졙ɓ7&4⨾`:`Bys.tV~U^}_4ezk+{59icK HX72;}`Ŏ(}SVN+ӛ$N-kgġA0\nlXR.̴JNZI#V{З%%ǖ ',ҳa9ATe.fye ;laVY7Lr*Ł^ۚÀ:G9uw'[g@LIi&hi\IzɌ:AT q:+'K; m z2-xfs~ۘ<:voThz+ojGr\^RC1A ^Ɓ*DWk]"rmsjnm5z S[9!600Rњ93Xb_|pƒs XJzͫ[8՝CD!E'\y".{ 4[V& J4Zl%^^[u⠪; .*[(ofs /<ADf=ոds )p%A1 |)ON$m߮", n~}yJnis`Qti}1f2`-ltDgr|L0y1w'!V xnY~g\y-aU]JD4!LbaP?sؠcWj.]v(L-ycT#VȌx$[$ZnH/B~>̃(ٚmwS'0|Y^{N[v<biu۝ŋ/r4)Y~۫;KI6lFG5l1ڭu|y&4^;vh r@aap+蓶muOsE5nf>٠*Ў2`e#{G,n+Ø8H$;M5Y-Vw$#eˬE)d O ZT(fh=$ D;a|.v5[&-T1r&)i{wSDIT! *?@A 9e2|.PL2!'cR)V()&"Mx蹭vjEn? BvBkPVre) /Lϱ_9Bp0zl QMaZұ;IXaoL2^bzn#S&,NM$* VVx=B[+\eĉOIUqlqʄsC/iX' eݶԩ9 k'd0P5IPhU{W&R8 ([F^$K=L õ7jTOhKWy[Hۛvu4#,ADF8qO^B =T5rMIld>Kbi4&'3T#<[鈟6g'd\tVFuwMKwv]AV4ylPPtzJ5*\v~c+78XpxÑ}$3|VZ TQͼȺԛ|K>WA#፤N!601ĕOjls+ u^Cv^/:]]mԠQ4`Nܻ§=} u{fчL>5W\RF%€gLm&liL d $HC6ޜu/`;-b[ŧ$8i) gM6D]:_0?k#L/s"vmXudPG bo-s(Zer"π%dcK31П49),hllkl2Y7r1O_˼s LrN6N!_ɞEP_,Tc/ʍ d:Nս `N6^+rl(Ta1;B.A`Y8b۳~`<>Ab`}65ѼYP=9 Ov*vj wDd/;,6hnk ${4lX((ץ $y/ȓIT L'뫚tqrz4[X|$_#Y<Ĺ˭)лP>P%rT@_06u z*l^}"0jۥ$󎜱ꊧqnlY>[t;}^D AC܀t{38%]S_Qj*t(q,ImnOXu)HT]=smk'h đ]auNu+߆G>wuF;-YNؕ`tpb3_s %d5 xy;2[(wTpoZ:h[S&ZeB'yYlRrl湕#\oZqbnP;;@s~;\jn!uĘ~+_C,$u_Wd|Sh L}>}U/JSl6?&_z}. q_Xϯtgsc!K$vHꈤ2# !uiBԅwƉ ]O(T{V\?.~:NeO[Qs5OFvEaX# ʌ hߚ.2mZ (ގxMppjl/U8X,څY|x^~Vl,D;>_R9-lx0]r[C'=Bn}Zh L4- Zf?̮F]A,V?{ք㹸|hH/>:CT:h_Ke>8mj2I+jeA@ց^d1;b S˂xwCQ2!,Gxи&!f̷4*8/oq@όiDXZ&L1?0btsx<aV# k/!osph;kܙXa;owF߭cޙUp|fdɷ Jfݷ_NDx?b6y:;+s"zc# ?ZLw}TyWS!pHp@X >)wkE8DHk\@˦7|A ٮoVRrP QWDl&M8?f~[IGSw1?uimI t2:y3^*kgOIV*bCjUTz#MVRD6$3 jO5[]~x`.էzn˭`*rtm5Q¼ 1:F .x+.ݚՂYtL^4"sZ2 **Ʌ>f7VUl>Igw΁c%=¹0hMI vH %E4ZTXPfzqِ(:L)^oR΍c .Ř}jgIHX;>/p)ߢ>Q~]2&vϟHA{0$|80`MXF#zb[Ѳ_㚸ެm??,jdO}18'7~]u}5NQwc`GY!4%ܡ/7' '^IXX/Vx>qHfl+f﨩1!cZG%dl|F<1eˎG{omw{`JL֣ IQ'GU4M!Aj'3k޸Z]v NV/  l9"*J!Eؙn)䙲zx\YE{&m+ 6b\mS}\/hshkK:p큢{ eTh;UƏ'\$vrƅb1@K̃3OD$]p 2tw {П<㝐%D˝fEDKhb4/[YD swڢ+i@[ggm2ؑoSahM86a U%ko:ϱv+)XN`!H&zbTZ3[*'w5 6d]5?FD|Tc|*PJ1#^Z;PݛT9W4G5@x(:"~Åm{1aؾ^Q-FU3R ;KiM/🏜/D aP= rа kW$,2rYBXZ '& +l+f <G[9( ;01W1J>ޢ,UBPvStpPlhJ g}A?Fi^$_w r w+BDnLZKxyoS dk55_H O"R[@!Ȏ%5@~O*}Yd9;qj&l}[Fu8s #0NjXnlZX$ڱ5uwDs@9KgX r2@1i\W[]k}F<1jPkd0-0mqcpdjΐ_X1YGt.U7~( }Xsi-mE 79Dٚ#1a>-LtUW\F=: +vv>8;/:uX:ļ\fx[CJ/kRMNCVM :wb[pMy*ѵ.,\Vl_HEGTbtZYb`M g7iͪI,G+8E,&zk {Im%ݤ\eDp :t͟xT(9|S71]7=fPN*Oѯ>:5gk9'G(eo]]'ZDom!5;\hb#EyrO#2x )ֈ섡ȥehux7)JklAKf |mAo/"-Z8yL,ɳ`FUiStk=ZgDPV$ YI폌 :rߊV[9̞\,b$gHˆ}>&5h2aZE(Y]ir 3wIooRr8Ls!ݽ2lt:[{9#:q>y]HlpܔJ, \VP!փ*]vR=؎o_P NU{yHp3K\}vJ1D?NN\`.F>ehVCǽ1T9jRR_X2-Y~d$nhsCjOy#(iĀPWT7&Æô[I`FûHF/Ft^BG):{:DP@@20^G.W|'[`"ԿP/O%n?LHy ycEf|UC<ӌ4!9ʉAY2^1X~O~ @HlL2"WȎXt* };=X0J!Xo8ZHJթƭ+c($_BQ^)>e#ErL6P\)2@k!Hwf>L>Q~[Xl} :OJ,:5QK+j5&>YOMntsFtBٕQu~=^`h"IF܏kW_2=4GFڕSe)q%U>] jpO9w%h9(q kdDr7ų_M pk\ێ T? KoZł#eo-MU{:F^2 9BkÏXEx~ڷ~n:y,Bá@D>!ؓeZ_m\sB}mP;^E9TH{R,^meb ) O{X7 )۞&֓9ӎ(t4Nu~^<1?ȼqdE0H"wnZ"hJz͋~Er dusA3vH<[z ?5 0^S,l#DdХ_O4aLmW,WK`$θն4L-w=\s,aa*|2"1:b>nȊBK艬VY gL"h~ J Y7?fjjR?^,édfS!?xwkm/Q5H˂nGɉѻXWhR"j`9#6Z_ m؟dr mDZ͹Roq-֓nRm!ٛ9:41LUT@*k.e6r'Vx% y 4rĶ$BiąE!w%:v}{yO 1|jFEȭ$b4=*n<;Ƞ6B Xt!3Þm)%4${hk\H`I0v(bgZh财YRx,6mC8q79]棙hhӶ5j`/&OA"Nˀw4_wkqi=Q^.d/,%D`߷%R]1^Ө:[m=2©_ϲ-Am CAXC8z k@O،t\ Ys/dc8z1 Fl:h58Ptu6NDY0f0[ڃgZL%N5b8;ג$7seYsutfwyߒtdSW*1TߣU ;g@>T0л!oNn(4 =?|-a87;xƾeg!ޡmWzy70ܒ0Nl{Y[KTP "5nX[ESڳU!qR(~֟`WD _3Uc!&M<4/Ȏv$O^.3Idtk' PӞKתұ_]u -i99KJpҊ=#I>)ꌬ}@s胤XȆAPv,a.RЌ;PSEdVsu%8jmm^ULTi=[ !ߠ :6RRN^q&!˨6 IqW >F95E@z|b cgǣT` pL7ܪ96k6i!`ϓv^,jO*pVTN+djӎͧ#\Ĥ&4o98gy1N6f891Cs|:$fTOCFO .'iE,jH1 F,h&vv;o9 ʐx` Tj],G6K/-p.Mܦ& uP_/Rt5`Iq|r+ʃtptb%boLQ_i^^ 'lo M n*`{E$Hf/^z7 N[ؚ}r5_g?A^fm`Y,̊Jq,~2@F-AʱbL&86qZrڊFPpSe}̝د=Nn>N/q~;X#_i?Mn?.r .y,V̽9[ƎA̴ firk*.ԻXF'B,~,YXm8o*Ep[RGVU-zP}Vb+ܗO. aufn=vCX ~t]PX4Ck6 6uPXpK!z5#]q~I~}c.(M?3"ϔ-⑤KNt=YQe81'ɉiglm촇1 / '4c8T`;EFA#,x\%As׋?8M18/%>+naAWLg\Q^;*s-49#g%aduN3XoY^n}e+y.`&4oeugj0dyg342Ḛ̸KB\l3DrN8R\m(]YHTj[ :`~$m$)XB (Vkթ4P3h9g!jG4G`!{/r 3Ǧ# Xx&rq0R%;i<ƇYCfb9 U]˘ b>)JfID7v 1([Iyh >4Ћdut5hk2Kr/ٰ&$TqZIB^[r8/Tv@2|\WCTl #`=/ɾ|@ Kdq>C"vCX|!Ӯⴻ0vwxXn\>6>ǹ yUBQ@ِYk+&h|ܼ8!8=O`H*Zo徂`##'> fȦ+&a‰?|fA!hZ1c&<fS]YX ̐B^#|%ih/kP r E$#\L\1Zş]rhn@#1I|"t6Qh9"/]C e%*FT,6^Wk :wvmKܾCF ,qJq6P#:ID8UoXK,&ϲ@m˅Db4-pY~Q6i]%T`Y!?sx= 7 JIgbo' )3zbYT - kVg|N0\ǁ:r=ܻ3fL l.+~=M[΄+ UoJ*;)0.5DҾ/:/-楨 (b_X{ixp!M1>k qUnZJ1 59ɺeUΎzS I;)l&F6!q}8ZlbQ (tᥠGPf!yީDZ[U \8FB$GiׯF͒iXL'S ;wj)b+v<)\*sԹ;b4jSFaN猷oK1qkd0nLI,e=4xҔV齣%eĽ7v+T{ihnD<X&:XKmtlc6 o<\sLa VDj$9C%7[-C8ːΦ!ptBG3+RT/}4{=le"٘=T i?R.y}:}ymn^b{>+n]tt9^p K TM*S XvڞѴ͚^za(mFͿ xBͦA"75~[0dlhuјUpERiQJ@6&c,f^:EN4>Buϱ7^ StqrnK2+?lPM\Q=hd Nl,ea*&+#Ƞ~NdR NF)&#p7 3M-I L.clgO\5 61;XGwhT Bb2g]\ƷL5}d:CdyGyAIS=!戴 v5|;/ߩ~['=Ӟ^ ȹqg<?UV58Zp|?: 7]- H8wMwdjO?2|2e_VI עƐ\vw.nm$,W ANt%1!X޵I5", 7Ȯr<YCF{UK{?%b'oD0eO3׽|zV_rPCϘ_U 67VQ+:5^x>]Z sRrZ~s]=畿SП{2[Qe{>`u% vZĎ掕< _^xojE[WbX6'd,A`]C%vt&V+gdݩ`, 閣 ߫=Pd")< _s 韃$p7۬/2 nNq$BH~G9,GFH&"q дߴ?d]͔?hDԖ ĘL7tZF: EՍ䊃dԌx+O$ks͜ SIa."Z-ynTdt  !J\1CYc\Q>ɕ6gԗH<]bbiMK TMufB iXs $`SE[AW6y ҆i~+@SbnVfL t/{Βbx AGpO>?k`Ȋ_&6;DxYƲI]e5Uu^Pȿ:"f-=Jum>;zzs$_|oɲsBOq(Dgّl_DF@νkKKuiE4ݚt0z${]}Usp##`Pn'>ajB G7Ssް» VK1e P6RqHW$J*#;*n!9 zL'1V}ΏMxTR3w(-s4r{|Q:Ǚ3Fη%tOaCwҿ7 <5Oь&sSZ'n l~v@L}Rԟm3HvCRmGR=*L vNI2~PwB55=w܀NoPg Սl;ϐQ]շAKF},6{7#~]D\Uɯʞʧa՞KoYXa/! Y{ Q)3/r 4{J0wD2 ̘u}MOs{u Q6G VcIJx hܔ~/9Z2cfp}߃z ůCAHb5 :2q q쓧> 43DH~D ׻% |U(%ZArG,l[.CGaя>ԓ]%~CV |+1h$WX"f/͊^-VHo۞:͵[֚b :iUM=>qp-J]߯%;ܥIK W29\I1-7R#* 6Y]+t~6(08X'd^Mcj KpZ>Ɏ3"u\/g Ly}n KY,CQ$Z`!kHl.30; .y|2'H{3\mOk{0 w|u?Xnd͉EXҌh`meF79-%: u]CI ǚc=<;GANSdeVr(w`V:6b8[U1l":^wsGKzmN𣟢j;~ _o+.gzԍZ7zT>/t^6r,kA/jI7T=!~+&RF[||!'V"^qj(fIe5;h@f8+zȗtTnR ;c.}n-W+fD $_t,UGJx$#+YE~i i؋ߟhXSRg ڠ{|\g ZMܟVVܶq.'j)"4Zc~cK̕eyP*ZסS%Z=3:3+RA=k@Z(pQ嗒aT-'f!r][Nj Ep5~5<(|&Ž~,ڑhy2U]웂!4ͨ )󸊄fELvƆ>vdbCUaCl( } NT}!6[#.AtیΤp>6:zJK(meވQ瑮ӗux ,I@%3<ۙrwp M r>/)^6:Rbn8mfbLIwXݲ52t{a~un OSe6la7TH[EX5x|$ .&J#u݃PD0r&ȧ q_IZ<,@K@p{B{llI:,8_b/iEF$/Mwx'mb'$O-OO ɝdx[._="Lʏ&dO ^M0tL2PqE Բh?O|ϭ]H7QwNhFJ̠(H(ܸҩH]҂ AOeUh0|?{FrV\"qXS+$6"9 >Ǽj^` ]t><=lMl_Hx9@U"Wa-KK'ڎ|u̳y,ӋF$@:9 tО}!Ӭp1H҈9nCImm3Av6=!wfOjr#bxAq >dO+.sW1rrwV̈áĦf!-eT%Y(Z^-(9a }%go'g s[zM .= Rj+PG*AvD!F@1\S,; k]bT28vTpCmem8.鈽ƈJ]Y&f*)}JUF/菣2 Hs@wz?SxϺjl o5qCP|I!B""Qg* R)%@@3 e'W*5,0OBlh җ j \UcD YdK<>ƹnG5l?[x\,?E]A#Nh}&3gS}ΆF Iچn+5AhT>7%%d~0RiNS9+@*W18]ԕu $k/MI' -i4CpՀc>WT17FÛ(ta NtWʇROq ï.n_f.w镛w_haPOhJ?f0T&<tXX$h]Tj}:J@fQLA@i:\\4LomHKSTc?tA_i&4KXiJB{.\87HdIkԸC#N˘,I {77qVcPʭwؤÖIw=C|9$)4ESE߅VօӀ!J|+<|Rm2'Y43`㤄џSk-h) O};oyl)Cn[!.45o^}W~كˁ2$mje)X9-Lt1][#PM*cax-" -lIpA,"tQ6hMF#qRg2FĥJzf^895ǽj3KӕimxUjʯ" ԏ#&S >S8O tҷ  @a#r3?6ٴ2nIc FOL%PpIohן=)[B^w(/g4H{ 0N'3m}ԎH0jՆc_3nI6?r۹CZ{*4K/DZngxJF%m4r=^dW;`DC9ىi~*_uZn]΁.G;5s@AʝqG@$!?X$?\6}nH뢧;'(`Γ}a ܧ7VNܾ[3n?N2 O߲EuYSˣ c!fv,+ Ìh,;!Fg,UL}LݟApT;\RX՟Z,d_]@ة4qM>֫Lנ$* =8}s݂@<1+))grᰍ r7jtWTJ&l)BR'.oI r["Ky5Tuї_v_2rDeLlo4F霔l=1oÎ썌0| g/\2vHd[~ZE2ryR)`݅5oF 7YhFHvMgwj|mEfm}hftla]y`2&_˴%lyy@$?wtrr`~z!'BHX2.ݡaBO@;4t">2{u `H|1;'9̵Ӏ!h}u\g R5[ qA96yDy T$x!d ߺN4 )JHYǼ(!9vRlJY=JI}Šl~8\mz,7zhܚiAj(4c~ZŅ/Gg_L NIN5eV, gݲɌէ,6h@`^>7A+ i;?? e'L^Òiϥ1s 1m|p!f5mR="Q5@Q3K {lDDw[Y;^z+`%`u+ uy? tEa^4^2u]NcPwN] iP鮂giթRŭF8 B֣$U\:;,c`$V5XA _Z7'SD+0V{XZ7vI/D)L"Ȼy!AV@qfj]Gyy*xSwhGTLbn# wd4}%Fquqٯ&E<*ctdABB.g|5Rx >YnZg ߆ qld,1&fN})ʄdriʼnlZn & v]|@'"q/ȧ)ǀz8zёӳUl`q>k*S%-VIt}ZcT$KtwC9rb/y CLyb *>u5)U-(p_H^e <߹镃![&סjrMO+{m3$6؂`GWFos8s UX -!;LF7]+ :y %$\l-{ĕd`vP_#O~5J Y*7F*S<x|Rl͑ 04UIHi+*JVx) O"'n-,nN?>ZQR~L= -NSB%6f%7|ea.#S$7ڏx9’L8՗;5OZP3\љD_yq[liV.+-w71FJJkU  y|%Gyb6|;wmEX(lk~Boe 9G-ο) .DžAc $[봼LͼKHvo;Au0 iy'|nT?'a>#UGEBGk/dÇ$ll;pۜ.2up ͣ"V])Q13F[_ Ӕٵz"EVýBN8B3\0~N\,`ٴH(d½j.!,KpjW\pSIG/*LZh?>׸&u~o/ :@Zurc51=j#F ~y+PdvA|]CcwPU{x0!6y6͌UфI,ѝ ^^ % KJ+b6*JX6Л¼_vj iX%s0R˓i7%x_Z[%oX*jԩb0A3zJEBQj83Ɗ蝸x@wz)%Z Kb"=W|qj ,Xp4&Hߔ5qLt)TKP+HOԜAtb+PEp=[=O֡ŹN, Y`vX^46j}rwp`v,]v?7e^_r4%M(Bڭ#1/a|O j, O"XcgϤ:6*_H-P]~S6 +jPvtMJ]#&?/~di3?1A>7 |w"ODw~凃ba;{"dޣ/ɴ{B;<4{Bm.+!ȫs};D=Qx|wprrM#[3U9>CX0XbEu<"RFaBTFTbvZ.~VV[ٴQp.!l1xōVM7]s02='S`ЭjmBp%_M-n_͙pFXd }cJftED{Z k/'hQ ν +_Y|g0<#;6Zn]DqrSmrD>wb\@a%-rpci(ΘIo[QAVWNFM09˩xvܓE <_Ň;ض̴u}#Dn;O/VRV1PoJb 'n@%봋EfBZq,ŷqT.\~=Sɺkqk5y1kWǠ|h@K9a= FoHkeD *ɌUo4hF.-6%hEiPц{엇 "Og>fajs՟*zYH{3%JܫH%XFoiIbk ~U , h\ѱ|@4`#g"7D $*yf#;jGcc& ⮷G17ߨݝTGso^I]4saJPH^XˏGl7|),L[K֥}0W >>|OFLv{ۀ?sJJ@9扪ː"YE˶F|vRwϿy/wԭ,5ѶakoF?5J;O{z^$L8"HRO-XhFѵpĽIk(-Tɪ{@ =~Ip%В:k* hȓH@t'c=>t$,}'q(~Ëx-_TI_PX Dh9t1&rEl[.+BցYΕr,mSd{sK&Y:⒗'NO[h1\51tt8cx0`3 eZe|Х.k!E^pcwżwv=g[̑oוqiƊF7"hC/f޸$#J-}%]F8$wZv4&,EgwCr|X,{_Kl ,o HژǙ-@Ł/3|r+XHK͸߉0ۍ̨hw#cszߐŽnXYd}_6cxKy`u<,鼳iBHDe){6Abd#x"J_\>0͐ɇ|#`#G3sN7Jսv\ $SA2i~₩[pZ{ X%kʌ=a2@2o7޿>f 2 Ajboa 鎻B)UCFJi"~ u~ ],c,Z ajnGI^nllf;,å=pr][8ЫO = ѷqk| Ck}'! Cju>R=ouw3`T3]0sWٹ1$vSPԁT$,W.ZBc|tlIJaUYd1Ejݭ.]gy6z o7e"Nfo31d/q}w_l-saV U"nl<_ ʄAvW'J.;u7͘yS쥣 v n:玖̎f'[%=3XJ*'4긺Xa'tU嬱КJsq'm.UHr*6Rt!O7/ɸufu#scy0j@H7X(UX@ct#\x-ⱔclyD~z6" ]oګ8mѩPFM2.aL?0/rۊ4+ : {5r M#/ubu IdL.)C^FEkY,- M@FNhgmw[o^b 胲B}‡͢M띝#aeމ5?_9tYqPevJR +JZ7]`qO袦ǐ]UIo BtHއ+AE5(QVhHLÃCVctB&^Efbw-\^ n.lVUZg.*4 *Ny<"`MSlLdk\CR̸S )yrqG!S46nvzcd.cyκSDh`q<k0cݺ.ftT}$ !$L)0* zY`ksf}Wޮ-辆M/IL0LFf)zc> (4eа `apA62FLC hCo.%!U f7)σh:J+P4@w!E鎋-i KU҈AwRu gl`2Xu)1R7Ib,J.:T$J8A;.+\Es`  y$0-F20<EmoEUS'^[m#Vb)J2 >P DKvR:TtT?MOj#e+`yTS&?MA9rȗ+A)Λ'H;q}en@+>5$vОΟɔę l8fDChF~u9u}P(<vݭ ϯIMN 8JƧx'BP )_kIԲ^W<ٕCً6_ AEk}.u铪!isA bp j24e~Mmw*g2׎󜁡";[KfRTu^y>ok#h /;,ԹpW#_gyeZ )|TY뉋 6KA?5 O_\-fʃ~ {{m.NLXF<8}n57J+Xw ː/zgPGxsR7"i'*\%F¬twE%,l`VL8:I", CŖlY %1? ~E,a{H(IiY*7$xBXX(_pB 4A..l )&Zƀ/y ^?Kkgsx[jW3PID?E%lX֖Xyu_?A@۬洸<2QFO7u *xuD`juB&doo:@PעAK!V"m|(<#8 ޚ׉>M+ sFFAg!SZKvcR.!f[_Q SI#/i^QOu(lLZB($KGOj #Trv}N݇'2ekˌ[9 E5l٩G Qubof<[BItsnӛGpSiî5$r>o,8(p24=5v3lQMH^6>H3K(JӒ JM)n' 1bdn AJ0bҐx@̫H)[ZOu@^:1qfb ^mBfI6υb"4 B uu䪾/OnRfT3d1ƃRY;ݜI(qqwY.T6$% (jFdP_&:aY yKIaJk(Bm\j^oOFql\_KXH1OVC[bO_7Al06H $44+h<=x&@$ᷭ.ppR+ky5UN9&h@bf'M>}-_E!^O!لD34'ˈ&3ϖu)#3Eſ=U 1f2-6a1/Zf|;a\nМqO#tD (s#?*Ua( =Ǘ,Y,. ,:]%nb\ Sc ь)7(R#)ntTO@M&,N72P6ʡ+$=EЕ丯{)2`<81(l)sPVܬ&1lνH3;) _kZo s(N/%@W.g{ZaULE$,>(RWsTOPh*?nY^gS:FEk0;G]eGwʚ}"2m Je>qjYbӷqc亸H5@Ⱦ&䇵%ID{Ȼ1-f{mj?)8~s.* i(B_l E^[}X8;~!'E^r.BlʚNe<s%q+lx@Ўgԑ' I"2Dc:Rtc5P`Ti4NV~gU#7u\j/_Yםd\Y%~%U\sI)!CeLOFJp` x蕿@+.%䅳2?k|j:͚A|>"9jP8+ṊpItaC-V>5OaıG'FRO-}gl`+O Eठ9nX85ШJdT_[4] Zy/ wAjx8 h仐~<h* Cs`6;'9s1%wNuk!z 79@,jL.2QsP]4(Q< ¢n+1) <;E~WMq 8P;4 krk*)l@pAeRf6:}@W[R+;qϝ i+yѾT=G=[޾hcwN8,j1 |rF|3nW{3:Z?Y*?Xx<= M.&_T`\pwI?"{ `\~V&Ε046فTDt-ӱ{碟g3a h0vpFUE]pp\+Ygo7Dll.S>Ķ;~{Ÿl0}&Fdڝ몑ad L1,rU J>ѸLtT!3(#PA0Q$:^". 1z)L/+dDbnۙ]߈Y$iC>pqxeoˡUi_G,9>`v+sBWRvA3k9g]ʹ"4=CS^gĚP쥔yj%O,I!H+VmU.4SCqAOLBV̤;U>HyY-%)8Q/(Y9E*'"NgHVjO'zu5g㌬JX; Y .څuIϾ:۲χ:咘/U".Rq\۬hɅT{u#nuIi 㘡@E nÜM]Zg+&vZ7\%vRꭉ2<ymmk5wJ;SԱ/v"s ?@(O9Ŭ[~Vِ]״;g}IAgՕAk5dm xS1ٖ ţ٩)AKڬ4&D _O F\u[̭wVLڌYW:1,N7G08ϒgdK+qؔ&cic=0 Eza.qH+H %AT#fup*}lDv\~,°ڶDv"Zm\.S+?iwm)Oɏ%C~K+/y--b1"u.dvjw2 n:QVM.x\3s1mdп u?GḮ% PdWK! 2֔k0 jP!!83cjfwp]p};D/ͩA4UW^Ӵ -@kX a,l=f+xP W ֋x[v.c y1;+M Rjs[Lfv7uQSqu8CT46k~hWWQ 0Dp9 pϟ ț-?k-8IԐY@A-` 4w989se|ׄ|ȩs|a+/| F )Mc@Z*EwQewt};/7_?'QyZ8wi=A6~t {a|h Zj ?Atq3hFey7y >FXJ} MAјA >= _(:w|wN?Y;j<7PngASRHnқC68֣7ɸ^: #Uۙ.ȎG&ebidb@aiyw8N7w5sKK'VttĎj+ + %^CZamF?u hz_R5Dvy҇Dt)7ߥ' 3 E'Vr&xo|}ʗ K AxٞMOd)*t9Í?7R PZ_,,O=tult`* OP%?oހS?%V@3* QVr[^{*YzrJ0l.C7Ur;w>F _N15C:$4e9)rO"U&jhl&胻8A do $:ޕ^ 2j=Sv~UeĦuCUEkEkSMZ\O #Rܑ>.̵”s%C6>xt`GiHM%IQAkX_"qb~AԌ* fs5YL޲GCg>-?X_Zx*5W!HEsFᣌ`ݾ4gBT2bpuXZjK^>㓴Jk`WƘ~ j9cU飊{]fe|nb?4q;(V偊 p kxq@yklG_L%W6 9| c{\qM#r<5NU]*A;g}PuGo^j[)'ġjb(͂_<;FŢ? v Qe5_x@>"*h=,l`WX+&m yLNIJƊޟggh_@ .' Tҷi ݠj1? s7px6]h˟enotlbOh} i hN"J= = UޔT+9 &%ۊ9d2z ASuDQ+WX s=clX(ыF:晞9U.Z[ +jCwhy)ny-C5bbvve.f xyζΧHFkȷ6bj> uy²]GYg- 'ag- !sG[g&~$ܯ )C<h,>l쌪s&HؐM\[w^^kԿc3yO<߄<}gcJUFO9 ABH="{nipJ`-HeYBHR  jf;C\ks آFrp|ZݑGjGIQzW?JSOyD{P8+#o_֏Ze 68J#܉(PY6 zU][ðRv/\ڢJQ3i&G!fMv)lԩT#mVZM(za([+d:r..fr/ c0Bdœ*D|E|kH~,gء}I>Køǂ^tWWtz .J5!CF'FD%? f!>Q3eU,^{0P|ux&YsO0mf;5浙^pa{KxkV=er0~ym2)[_F$C <{!kQ{bI{Ю3ݥز&v &v\l&2@ߟ7 V]zI Bn+rRCos/lx^%1 EC6p7Qy: N/A3-&ʢ<ؗw{93{ "i#65 =m0 ٔV@ ,F:E4Mν JWT`vPpeA7$q 3F]uh1Z,R\IS嗦?m27jr" AiS8E8;a{UBA)>r$+W֔VٹQ%a]ݖM4M]NO}96+->}f;SQHW AP5ԱI<2@k;Q2V$k\hx JP03Vy4D< P $h )NIN\<*r&FiPY÷ɭ!ob;Z- 3WF_ݦƚn%dBx :EH|)o gԣoGcȽ&Z-+ӛ$UmF+e Z!E8]qT D@GQ7滿;Tz$G~8w3b.4HL/8+VbIDΤ!kPun|"hUI\̏PJӗ//ݴE?1n=вs5 ‚nV7я*JŦ  q!nWJ5)WXR5S<Yo"Eyey[y 7z,U f,e}ysu'b @M"]2?;-KPz|ڠQwHy:)rMp 0G07\'D-;* ""AXz:҉P4P},29'G&"|`QUc牓?"CFTY"^7WSzhNr)C+rpXW7r@`"C@/^͔m֝ddj_l&827+⏵ж?}@铺,bاy+Gn֗jH&ސC}$6y=#^V8fgE'X.XAV2Q#U@h̍v峒'0 rY x֥Qٿp)]BF'#AMd%H4t)3h=^=IcECA }R,>3sNe#\%QBhT)o _SЁ?7 O|!-n\$w {hxllW; K=a1:$X̎#7N8ﲈfDԸ~3"Ԏoza 8Z@)kЌQ u"B=m<<*Om2'1W*IcN7cjG{s'&z};n8z#x¬Egg~dcJwb2MǟPYZCNGNԐY$-jMeKY]DF1tv~LlRyQWB 43V5E&$3('mgBOw\V^,pmwm4 4̜Tut']Ͽм3 ZH"_bǩ(Ќdp7þ[am9 ut[q}E)f/8ZRʚ8&;qӆ̑d35KK*o&޳9hv:;hژYQ-DHohA {< Acz6g`[rT''h[.=@N(# ?@0n@ oM?#=)N+ȀD9O ,\\D^W9zcx~l+SJIـu IOBdy T8tla~vyRM$sVܮ -G-HK<$ͩzɏˆO,2N+Q 7UsPR< :q A/s> 8= MN=~LBȞ`l NcI+(j9Һ|$mJ= 9MmV`N \ Z$p#e}iV|sBV?>[Y(%'!wZ%#o))Z2q^n]t@85]KA8[M;,݌03dU{0I`Z`Q(<A&SS܋2\h'*wZ 'O[v?d˛R3z3j꩜)B,x Hx!'J$sqAg@gq* .M >,4 Tvw8R I%NF;t-Ntwa$ 1ЬnCҰAl9GUgG ,M{'ݞ`AnG%mOygA_Vdi sKq3%j#JS%>}wpYۭw+uJY3&Yǭ.R!Wf`%RM&A:*_P8-Gڪ{[P>nWWJ+$ce JD;43::!l.RVcP#&P9tϷi쓪Q ~k="!+ؾEEk3޺L! WB kKȊ;Aiy3^;Ynk]xAq y¯$&`{RYjs@.KGa}(Pdv m$j矀&ɢK^Sa)nRgZ@BTIdRr SL\Bt*}Z2MKQjٸbЖ-FCt:->vuT!^mғO?aDw͈|G51آ? &{l0+̞Em H޽R& d;dF~(;:lbo։-!=ϱ"qLW ^2Pj+5Uk`I޺1L=zzc-;wY;\zF,1|._X2v?J6\ no2WW CD쩦~?vc%B:yGRc_<{[Uj ĝo<~xUp2I k,dTRۛvaH#nv=,G(2¨v' ,[ %hnEdp/}g #ZRc.3'Qs9q?$ V<+D ܕ99*`_x~eIOُq6|~<>͜.^Nv/PaN2w<}1raѾF?#KɀاpE> !l}6bwDF.Apgܒ9U EnTeRXr=duXb٤_i85 te'qO W%8z44; OQdoÀN'oR=@>)TRdRYfX$9´~3]4?ct?tS g@3 '8ؐSpR)_>Q׋Xu{'d}EZ]Y"}TlܻDuiճM7qpd\PݞZU' ^kxfgɠv_Y|ofq3Qh3ej xe}uΫ\ }5Q^ZرX'tZ]" I!ź̈CI;<1[0*>;_:RdR 2IS?GnKkΞ=.j>N_"č5eqWC4Ϫ+-DϘF?l[s;ۦIMşf{Q_l3 ֬XnRd*(! Cr"gIa k[(e@W3. LFd1WEE~{26PIV?f[ob ^q.ٿh}~ B`)!PuO$^Sq䓣l|MzZL6Q5oSM {Ǻ0 (ĉ1CwR!C"+>L^YC#+q!4ĒKTO"H[Df)vZӛܳb`Wٴ65>$yn^_ $2w]mGႝ ٽ EBR8Ur%Gi p#)0朝NqxկKW "p̪D(bu)` |DHd5UtGrEvjN(b[塳rZOnA\k8~,"#xb Xtp+*1%bzoIF܌ҧ9AOh|Xq~M $`Чq ѫ:gP!_bCMA3^Xab 6T ~h͒S`#Jny'uA$ZVv]q#1'.7[4 }\Njk@͵=Zglc?^[-h d 70f M F 1v )gڌ su_8:k}~ba3GѤ[xեT;DaEl9\Ώ8gE]*CL,wF?Y":;0!o9S [eێ>4=9EclUFy*בg'DZ2s[إE/x KZdخ|- XԴ rČbKģQ'oP($YTfAo AwL~e\P.G&RjiCD(>wQhZl6^LAgxəCQՁ1 ;x1 TW%ghkVBwibn%WqFJA*^<7EI"`iȃ-by=u s9~E#"Jr,( p<`,V:~!.з+v>H#C`8O]WWqJP䲳{#qZ~P |5 OT6llIjH'g>NLJ%{ui?z;݁l0_lj~D9c@#npJ$iyƶf~x^AS#EiR`}GCeXs<4:O#8d# Gaf Y呂$_\'>>?I!l^F!f[閵߭#ќ’y{gO蛞{SZw!T|iKd!,s#B줷el"+vς@J;rۜS_ 3" gUS9NDj,U"G߇2$:zRx(-ASS|ϼ29޴ 6þuL+RNFחgh6f*ח@|[_Q7xK[ԃ ߟob..A}$aW֭`PμP+>=e:oyIХ*Ge"gKB ,fLoJvQWTKa^ƺmr6FE:i\Q<ř(:""O(c* LrB}˹pN ΊVn(rɈy!jr`%%rnε㺁 JhYuxo\4$mFxd_ :ˋHg6A?j!53 ߹ZVf_wj!%]I` e#7?:S}3+Sؼl~<˷Nh#lˡAdG|\tJ78 bOY>UJR=Ha`!=O3 Nްؗ?l!4C11^d+&&M߭\  q&~BOc!vݷ?.}~5h<ڨoNk%/*wӐ^g5]c()wc@|b3}99EՕo6g+v |L/O2g+iO;B{a0`xE)+e%³La9o!igw)}3'oTЎBɿܣs'PZlƹB8u,XPyG6v8zHGStc) #lO}g %4߾zTpD4Wq"XN(D>K,zdc0ԁ!FVegS?&5KGDАQI9h*KoILJJ,3UW}K]w(fl|RP|YyڼlBŚF8GG'% 2CZBGkewL8չX}iLub0fRC9VnsIg)r+j _âgN^Op*B[Ec嬄"3I0*.:&\65beE"d"𽁾~=\sPT񊀣>xk=4?^U,W$%<B7-MySЬ` Pi4d3 WdX#[[DftCLWjx ;H;zϣy˂_>n w5GӨ2|vGՅ`[!q…sU4Uw1LEf=xw19_q|:,-"m`m&I $*lڸD;Օ z}&Pt(sMEyqKZYO ^3KekdHǛM7ϛ=L zj& v 󇳄0B߉Pz|Icw[L'g@M@ xE&NnJMBLS*}x3f)tUFiк 9RrCIQ ភ9 d*-5ԥ<;bPy8c驋I|wg 9@ 4Ry!""m󷪸&bzZta)q[cã'[D3rQӊdb\ll=>3`'@SH nj{.5ތMm}I.ϳ>OSƭqUO0ݔ ,$ֈiK+qco> vI_i&? u݌FrIFQ6cw)(WRÄ*-pV1DyX.Qj_Ҝ@BX Ū|r1<,"ݮd*[)ڬAsڧ\fATkLaD?!r?Ӿ}q2Zt kG AnQ̌ a޴i:urFm.tH~gVF~@f@!AMjukW#| ÂC^ʨmEe F(t 1@>͗0sͪ=.8Oy7ﯭq{6 Cp!-J}0Ơa%HQWcF]ufJ菑}W'iQIh 򒇓ҁX =#BëH15yuk C[!j{ &6&Ql;ykB(!""R([UsY4r(bdH/ '^",7.[ ?{P⌫yY~6]2?ٯ)s9ygG{Xf6 uQgYb_Rtix` QHbދTIlRL*8dPHn\|?{T5 A@Nq@:q~{1#p:B]/47t U [;n7چ x@mO1'Ǝ=#gs+Tv} C Aj}== fPDoMt=lЮZ(N*ꏧqYة?HnPͤfAjyasa%9{ܨCVܕp&T&p)DqIRƹ'Y?xb=!1S?dȉ1_J`(@+J?K|ٸ`$o *`jNV="RiiƠɻvq9O5LeƟ8^k1U8H( T+Pf($%u 1_4n}. ~OZN"$| 4.Ŀg+Gdުr.ZR6m'UOl>~[wtPΙ^_{9-'ͻJgG '>싙jtEP;+ÙB/rdf4?dΈq:XJг!e1k$W%܋}RWaQߚ!2 Ҵt6w!>;ѻ w&:فRޤoOSk~xOC`,ՔI[WC^m1WuKNb#UOЬ;##t$F'j8mЂhT|V#"F#uMϰs%gL뇚)TG"TBũ]\'^j5ql0"gKfTS_plb+kpV-zޕnxd@GEHK 5oB oI H7@ױD,,0eWaжg5 )ιx9c&7_~Yj)yNBubnnO<^f"Wt "RБ/t,pB.T[~XR\pR=9 %SƓIcehY3SQ2 -c/=nhҕiρ[49ZrI%Ui 5 I;b ZdTלUf)*cq{ą6̷WE׆B8@^:l[3`3pQ*?l[x:7n=*lޕ4drS=ق9K\rOdM0X+ <{帊%]sqZ)k0Z~\{UƅBY[uR.j l}woS.*my6 !wG]A>(iU39&~R7]}K:,6; i&Rib෈A $$["Q|ܘ}H )ͤ"|$e7/<)ڇUIS%io|u q 56Zp$dqo~R ӎz2ky;qMŦmY'`fIbr׫.P,ɛ>hԧԽgr#e+jiO K ⻔/a:]W~`gs q;Ӓ!dҪ5X9tr .o&Q 9oE{5@xQWB4}!<$t3^`H1l}JiQ=8>wg̯~HjX_Ǵ,-uDSȗܑR.}0**1/X5)Z5?*ORfuGa%3$*i3tcmdt;8bSrE!!{%N~=`OFg;pAoYpGZUKoYYY$&I`Ez\i"g^"odp'CS0k>Od γ+[-f5!?D !ODժD;Z\>Qv`׀*P5m:~Kum_ډU}#c6RSȽe#(l ܗ~_쥛aO%tNҎ=lj@j٭ )(㮑\eѻ;w~=fX9If_^u0Bd P4~H>RTH- PIw13rt$khnyF-mشf `.5d PIN6d߷"+< xhѥcTF W|h d3&f7U_YJnu; 7m:V;3˱ ]'8}jJ1Y3)80:%Ā3nP4%nnb{! @-0 5O*@QgѪS,JB^2[5x{ šҦʡmBv\#DhBWEM4"ʾv5 JJE q ?5p9+01[.Yq=5(-~t VLt`> >;iΛ>O =ԟX'3_76ܩf[+TY B<υ&k) l),;mJƳ24^5cNXil&H}bo luTya$ЫP6|P{TG=@ pi]$> gO..ns$lcޢO`\8SK sC#Wvcھ jCi.dOEhlzXzȃ|V/Xf3]%Dm%6E@>Y `[[кG?|ҚVpj +Z N=?Vt;fRBߓք^3aQ[2^0ρ19խ!<%v/D,Bua>PCI#>4U?ԓZCee`QB eEM@ePzZz]Tِ˵" j;Q- erIsh'ؖ JGƜAC$Ύ>hmSbc+NMUQfG؋)OqY wנ~U|@79A>V%Df Қ)mڔBd+Zo3F:H'kZBƅ\,pL~ u ysyBhьGպ/kXTw3 ͟}L#^1qg`I+!*ȚpSvQoN,Щ쪩NJ*Vl,B#/"9 LFjjt<ÖT%Uԇwծ fc~'p5^P[hಀhw:4f99|RFGpojƖWJ|ԗTR?Qbp8o y@2%,0 տ~kKB׶҆ #? BH@b-_Ǘ.SBa rC VƏ 3ޢ3b:o׵ZN\xS _4M%)(Bu!* u8}tƔA\K*:*ب?"$`Igyq:D38l|YY<(qqRwB,r9%rPRX*'VP*0d"ecݜjxO[`?䗪0z wؘ-Z Wm*DYt61`-}03d$,;XȲu>"T u8$#0[$TEZ^Dq&cjPZ;&m1R 18.m{u RlFW9xWjW jt&PTfJgڒvê2;KЫ9(TBM mt\U &1| woOrA~:rD^${,e=y9@7@c-rɄi*)x9ةx73P{_LOHZb(5jךTQ0Vıd|Օ*4Á%XK,RĈe@pxz@1B/J銜nR7žk̥C‚:[Ty _|XeT a@ф,+3.i x/LEmi}7t &#Rp;5\e<>%VJb늒@0O^VUh.8M[#~b*Fr\MWDEùٵA@)HϦ/Կ[hqOSS_%3bn!HSbtZde>H@ՖuCW3_9V&(rK m-`,jYKY=5f NogjգJBuO0GU6BnYaWFdW#rcx~xe>͋Z11+t9y;2,/Mwئo]JZ^%kѮ/ U޾~X]f81 ̺ ·iyˌ]d[-%j~AoyI>Lm򛷽Bz4--8IhSԞe־!U_{蘥"sQt7Lίh3Q"Y]䜠>L=Hn3MwJvC蠕P?q$ŕr1ɭâr#s4cnI+u R"h:jZQ _p"9|,^kgYHhW\Ϡn"]Y>fyH|)^} 5LsDkIXPڷE\0vP GenD#"XzF, '$ǼH{ Z)훇 ṁ#&4K :g~Tv?Hɒ! .cЁ.[v gm]%8gRVR"]ڶF4JVqXe5W(u#q]#X >e +s$ ꉲCx#۰,/΃.\!;^4N$ly:w ower{пV  &0תBur?dwFN>gڼՕt(Yr8dbr"D"`iY տ1 9F|p7hZZ˽dr1nSxt\T3$'#&tḐg+EjI{zQ,p|yYSU:(rсSUu‚^ :/@;;!7lMgn NL%g^68i rwqp %B3KI%C⹧TξL`7s5P2'+|@PRsTx[T)>rx ?u|(܄Vox)f&Lӏx %bNdȼ6@nz걦6yfaʡBecw= ;4AYz#8baM|GիR":^0:V/c1^F l\7%w5zʦTQ2Bvh%%N#N5: `婫9f[-鍐*@dY'SVxSqt1̾PJW;:U/lo ֫z7j02PE ݑWDAgp\8)k C:\pM%A|mP<)2J30)nmEi=ClFX<Ւ%^%ђ&1>JL۳ߥG@9-+AAw0r(V@#f9e)F_43UʧS<Aa>_| vwΓuoUG-XmbBsĔ7AƆ_2HJhnۿJ^zF=IZ(8B%4z$pjd)WrDKAYOxJAemn1 DU> 3ծpNW-VUY%v\VIe =lpKh&H"3d{z=z*p?G}VY>nꃾ*Nk|qBw M(V=4#SdG5TTP@;b!0MI*tA1"w' 䋍(= H~@L~{`267~*i$J+daFyg *`q &[ ) qﻡ#K X邾e;e P%HHQ%r HEv3ANlcn?\ lo`k綸գ+ L[Xt:Up+ylKu#G?k8D_-05q>O^لdx f9aMk}o?BrrgY E]p#J)Sx5߁/=ز>b9d<*boޓk]e.Z*/%ӢRϢeh3X=烰3*I5xw;8,>A\] 4raI =+mzV@cɓz;0} A9K"7 &֤&ɑF%٫w¬ł:8I Cǝ^39[PAFJ{ӎk=dpbw#OINȫ,ZRcƃ/IwŠx;̥\dVqef UfNà}amy9 tՄ%ǸF= c1%a٫ne֌sQxRY6-35.]ZQ]`m?H`w+f|7QE:fž&X2w(zf466 F0ύh4KlMd_kАXǪD"JMKA.q[A9[qa=ye_jCes1nTB#JU- 0>wOa.PpqJȜm#Pjϗ@I[V!X6;PaV`gh@xw)&1'C?oVRC :&&cJE ǀ:̜,\c:dFdd_"(nCPg$& R|$>4zzfaE6R= 8KE|B@S#7)SfU{y'M_*1'u <+k5l?2 ײYnYcx̢P oލLպ*8GAR|1k?Ah#lQMxKXz@%|Z} 9W^:ٕ fSiPTbD{B5` <)[] ^&s(6\ĕMqRzM$PYFWVp{Q>kR|O@umҭ8n,qy\C)wX[yaԷġȂy.@}`# :<^ƪF2Q'Q8ՂTpQ7#Bd(`H!JmTT.gJ!}rٿ 1F7h7[̑k.3.J@܀B^|F4p8Y<83t8/Hp,9TEk8N˾'q9wZYD/q-)ئnhmd.u̫..[Cm^v Cna(xz䳯*m&Nߖ2gμ׮ NjZԽ2Yƙu v+BFBo6m;|Ry?ۆFVT}Oe(G<żߜ-s(+tQ5X&]lMTl*=1zMe^4v5kɩJ؝6]nFq!93c49)I}t1F&C7OrVc^0+c- ,h$[au@J ?M OoMəB_kACHCHJkhԍy ]p{%>b8K""0$37ܒѝO :Fؗ HRZ.^;Ⱥ֨¸KOs0 1]H)豩1(붐 *cUdkϮAբ-F΀ZΣ%Mh;ZgHK5*1 q}z@. ,Oeԭ?'ܯ#˄J"xΚx 0ɠ ðЇQX`q{e9R}tR6i[4FH)R6&Tc-}$Une.i+G/ [ GICg?2qlG*0*cD(BؽC?t*%ݐnb**LzD@ILSA[šW= xi1>2u⠊;f cqG4/c1eduSi<.wǤ>/j٥GUtkz ڋ3n-B܁tH+ 5RnCХf qD1>prze4b1)Þy ?vez8#Vغ)E&9ёq3+HeZSV^JV6;)Ѩ)]D{m,f2'(Khe/#\cx7;gb?)5=ȧg=~Vt GRn$(5ftRdԹdi(? Cr ??Pі١ [`'\gPLxz| 6礠SҤ@)Z>ܯ WzjTq , :6OT1A>ikINґ, |w߱{cUk*dVw@s ͑-ᷜ8I+nӣ r xvʹN<2EX :%Jt+= G__dNpP]R>XyoPdeW5O7hp@奡gsƹHY6gP<^vTŽRL}~0r_ui7wWCѠF)~{:NNE61Z-8U9wBP0#ڪIZj)0쨠@DUǣ|l 7%*t_b~gr V?Ǚ@݉}qd6Kɻs^qglP$89*ˎ=* pY^G ۏ E|Ũ9`;DhUiDc&zV?_).&hxp f4@դ*u`vtjƽ8ϽfxrncMU&;t|  @ta"j]emvHd-% 'oYy\= ~U-#*Z)*3Oo;Ȱ#}"89B%>ɂ&ML |UԉoVE5h[YL }7Νd~imDJ`D-g]^Ո> IEFbY\K}ZmeI  b{[uzr*LFaRY칓_pTN dkk **>lO?g,Q}zvėgɉ_ JdRw4&{P"(l{lnc:SHE2lWRمc%d5r$sXfa@2 ""{7"V0joxTi ~L.Gӫ+gaνE,w ߸Sum%V6$@%gDjwpi4* ޙoi?+C{]>څqo#`/uq_͒r2H=XSL=m0b^+壘U7/xQPZ_̃>79n%:O`V g7줢kFֻít)2\uSQH_x"NޑJsB ǮU랞Y*y_yXRI < D{UݲPyQ[baFoF(q2cef $|>Zu^=n2w ʼn yd+_|y ٭X0#nm7-l&'z֪CĚ '6;,Bo%Ot/78;`!"{5Pens)8k`8`.߼\Wo~f?0Y}:]oѽPؚ Ϣ{V> ` {E+qZΘĄt~S +*h/OޜiDUv<:w"q耤8cHw2f@JS Ei=*ܝ4wE5@A]I9"VoGq Ŗ~KkԐŁlv y Nz|X#<]mKl$8o~odtRnh[By!Lt.%NA1Y|-Eɯh<Qn|wlSX{)e1f)C؅cěEKXW^\P (< o!TTfUKEN `Et﷟/>HCg{Ym}TF< kd6Z31!LS.F.q8/}䅡\()6h뀑>L<`} /L|>wuyY 4,{;2+8v:E>H2D#1_Y* eh3yiNne8APSӽD!,cX$hF]@5-y~mAb[԰0L[3\{ƱcJ.M&D .J}u76b3FɺoӌO+< Eٗ } C^g| t?I]yU oF;♶@(eOHf9qw'2(Σ5:u|tNב02$ 6R=kmџߠS%#J\l02MFO1ngq?4re_Z okLpq{-ꎇ2srF|6$jazX9Yߵ9#Ay?( ֗^|LPIe0)M^^ /F2zR鮻XSRk'9@M!f'kvp؉uPOa Ɣt!Q|[Se;cn(u#OMId;/& mW!_L1GB0"{|ZRw.TId6?Gt &bϑ+:hRGsy<,F_-+:W>%#޽nLSMFz.{ȒbK %C ]s3 b_jz%cr@P)EB{-&lO"_iMP] Y([!x[9U;2X9d t/ɥ KfŷeH;Ror@i^̍?-;Fzm(*)>Ü_,obƐ%eCt(ZI '<#"&*U 8#~CWGѪ(`e7d1>p_+ݫ/kTxJ>V+z'uQ֠ar3P*B*F+XP,%WT]7FGF`;V)S^&='D Mdi㼔_RAPr':] sx%9.ɟ6rp &i{6y!,#Qj3mNLJ8 &3D~ʷ5ZHw T!"J Ii9Ĭ[M$)pObX@Y6i Ug"K9sS늶b/{c|slNz%jN6^`*MF9"2E1vA %g툫+^XwQF *6Ǚ'j2G0؇eҳF5\}Vz^<\Kxlu˧fS WAF#(qݚcsޙұ ǯU/?5W옊]>ҙ.rA_egX%q3D5Ij!jaYQ&2 |yM#`NҬ!bsLU8`X+gPQ]8lKd@ױF`Mj6;Lu)&4a gpcn73( [Gv'xsg52ؼQoBz㱾V«l%3<3Z$L^źMA }g}Շ6߆z C0r3pd^mD!E^({3LPu0F3x&:of5Tn;Fy=“5}y B;D*)eg|P"GS>f;3m -iH̏NKLEZ%U=CEy?#0SpɤyD6S)>N~{M{{5 W`:ׇikp!ы0?<ǖ6q(лb'xYVZNQrae6YíT~aR@/+4hRgy 3_)ǡLk!-Sf(JPpEe)lcwT]QoUnV_ V#œsK4xBXX{+!pQt8:{eq%αF(d`)r>r/e?=xabdJj^?,l3oYø!OJm7C5nq^D #y:"oN $*ɯj*N-; sәxNR1@cYӒRTg -|=1+|P b{8l+  tJz0CZ*~+XcW XQCѬw#]!ɲ[?2@N{Iڧ>r# H}.xAmFj4x(S{`S"G9؟4Ҋa5"C|#SڭZ ĪZ3 PyloVpKֻ #~}*r?a܀4x@O SڝZ,{*w>q6! ʶ!{$b1KCB1䚪*aErk_̻ꔫgC>O.L}k|G\\uȖ?9R.9EEZm!?M-;?>ri;,ı%|г̚Wdw<f`wHpVa6/5L{ l `*8MOX&Chӡp}RV 3kԍ<+aab' .K S\m k5XnßO-F68;f~dM(9ot!⢞^Rca!^k`R)aEG&~/E+DcLLh: :nö(z^(wz@"IdĊ6hqf>ČDR}~pDȤ2 Q-,vk?h2i5.mEqdo*0%" & kW-c)E6mГcbRRuQN'B:\>TM~vZ T[bGTr^D{^ ?˛iFY`1IA(>M3v< ֲJ1W,v쒾⌻G$qny6Wp!ϩ%\wU*aD!2{S/0ey"{<2"D=\^C3PAZV~fj_(o*[n;HcA*>:NHψ&gBɑ#˱̱mSPwKN4Q5ʠMTS4i_٨^ ⏵>,'9Ap0EIhp{X{/RڃTZR]Q|$Zz據OdE?ǃT$RO(ODxyzFq?kpAeNռz -^Lyg>rxuu`4@TS2^7a 3r[@UZP6W& g4 쑎QkI2Z_!__+h}gQ,fƓy L:P(o7 VG[K2a߈iVtv;5iTN]Hnq Ȧ_M*uH${bb.0Y6+RA0c 3>!Өz' ƭ3̃X_E9 '0!KǺԥp y#C5cpKM܇ .9xRt|pL?ɭUʆ UXڒᲂB lU4HdimH$& G~C+%މ4ι]4 d1ݢHyBٌ<ʘSn@7mhol!>ňԢ/aW\sC'@?Dִ1fE7\9kWy`z է im=B݅ Lߔ ޅ a^f 3w)9H44DTKx*{A`oqE.=m rsdk?߶ E4O^^|VYh KD ~F[g;!EԱ& yVΊm,fEރ,`L J;)^9WB89޽3bZɄ]?QXo+!}`Y'CٲŒՉ[d wx]r_+2VPyŸj ԯ cZz+:oLDM{%X+&;5c5g/; cǒڋSCGF̌epshjɓKPRV\He ͕U>KT-)L(>^q7l𹓇k wlrg`RH\a=CK{7ri涏#_j(t.mcV(ak,0Ll5'}hb=Go-mv_T" >^绎睊h@mlI 4.@Nb.r0bLxt Gt|ZYӛ˰Ť0od7=XVLd ,glX Tz 8I ԜZ^˜QwjEK%dZx@\9S:Pm cV2حnq,z݈# / & 4)+ kdm;jCCo:-5PouC5Z~xUFK=} .ԉ//fXsYK LXBrw%(=2ϸxܨ%oBš`knDx:6[J7/fX1֠lP MMtzR eڗLq=nOat:ʘZ8`o^㶯/R[@O9E@GeB%]Z͟YȳG nG偗'[[ ( =R<5vh˝}- P v_13R[,کQ~"-6C9U9M\y-_e eU{!܅yơ2j?RI, ܯȪ:.v,r{up{&@7[M{~x\vXMty[N,(p2,MnChj&Bt' f`⺢0KP9.Es~v*ȘF|mmY8{in*8p~)FUݠaV4F_I. Svnsӄ_7e&c11oȇz aTϗp;n4@\=2׃H9J7]7tbHsR|qAܠqDN{r eRP :IOӰ=`li,yVi+N^<_cE둩"Wx2g' Lk0REg xqy_> Lrk,W?(JSqӰ`" x9'jC;a vwD5cdKxQ=ѣ&s"Ug$_X^d$eplKR%^Os ,8e Pi Zp AT_T9E0VG77v@\ZiAEǪbRLQAo5`kb7E0&QIMBw+Tf hTu7~=@.G>@9mpsS3-f[:[5XpeN|,͜V5k|+|]<N~,@,jC?TUdBۉ1a V<$Ay N_Ar+NNF\ݢ,/c/ hT78@ ZR׼ #\F\+ȋJ[ٹ7e;HOOC>ɱS#zA_؅g\P?BKǦ?fjw188B["\ѽnAf#l7*-.&B ݍ 6-^'|ny(٢:Z,'M:7U.7zpC$SP<bCU M9o;҆;s5)fs/~Ǘ=m uzm)9͟S3s36SHRXiŽTF)w&5fG8&B# %BY£* H(H#x.>/Fp?#r")1]^)ҎJw,M_j-V9ܳ?ZX{_z5 ~  sR*7&BcP2yp;SCj'YݶG{ rF±6ޤ 9k R\NOV;౟'TِǞf6A@5dz( ؐ;oc Acn$#Ut?;%vֵa^S )YK10)s)+bGb 6 -AF5npHP( Y=h86bnEgRR_@ ! / Eyr Z@aHU'OtLCeE`dI`jJ X\g8v7iV>YQ2HX -/I.@&[VwH!D]X EdWR|4J;zL >k|x\Rz-Wh=#/gF!KikkR̃zpFI9?-Ҥ--9JâGolf/$QȀ/E߄~R3*2C2a2 .#Q1B^ FM,Lw⹜:g> tO/9(@$~٭A,;w10LS̀ÏQεe;]c=+[SRΣ6r|Z,ifGD^+ s?ɵ)xv+ɀ OO,u{MI$J.V8UNyP֢yYy%Nq<~A=`XWao +6`?hͅ#˂4k"2EN(PGT5 q@_N ~8m;!ԇ%:27b[wKTAċxs]88=(*$^ O ,Y/7r4H=pkc4XT~˝~YFj=BW. _,p\B2FJy N^N 1J3 U'n5pec֔/'<"cظԕ PdG/xr9گDӵ=COl)2PB}z }Ć'զHѲYйFCPxA|2*>\K . D6Fl 0W1ٶͨn A- ΋wC2lYlm:cJxY6KÇr6vڳ9)oloi4oG< \#2T/V=wPzy15/b}i/ѹԕ*G!߫ƻ]ɛsث?0mmE2= D9%HlKuЛc9Э 13|\uk/K2]>w40N]@sP $m2`>ʠmf$YXgLejf'7EEd'qD#ӝ@4CO]#Ogk)JEyX7 ze]zQJ`:LXʼn0Ejq? Nƌao`gVXL{aABBO+xg̐Jnȅ,4/#c #Q[ר_%mH7:[k,]'U-00Oq-8D|RF'>VIi٬w]R$ٱ& an>ۅj@y(@#Cf>|ؕq+?"R<ϣCӚ$3h3CʝlUf0p ,iwttR\ bs=5.g u,u%7HkWY:N\ `uy]#ptPk鵠C>7,֪ VJkEAQ$Qzu~=Ua cY0pFW[*D+MXˊ(_\ ذam9"*ꊨ5H6[+lRz I}nsJ+jøff4 1_S-sz\š6n>؟S"ffF].5<0,*-B_oyP#u[fp6ẇ-7cؽSýjgY:xmNU^bqn\7A`fZ>o^SBowP^%(/g[FB^ h_WT@3 JHAڲ  EqE2ד^jN fߑBBY?2P"?}d3h 088NS=蚠'qגw+FD lC?PM:QLT5֝yuNa%B1sqf.&2C 5gi!ju尨B ? ia=q}6Z'Qg?Bv+t;c/˜IPTB7St+ CU_xN*牴)ፂe,_`4^Cap޳ X֢jPn2|zLJU=PSyi[bƐ.1DSRۨzw$:J(?qxVV.a _/9kC'b -C-Kezxt? ΰB٧I'U,֜Gx>Ao9g͕~BoZ݂4FX#bν(hء^1!P/nu%A~]1uFv[V$-dE shCM( |֬~G>(f1~TpٚY(THYkhdl] b/omSͤh 0Hg]t" 1W!լd;x_$5J @@`M!D(J<"HޔПކ5 MHVZwyI(BywkYBa/0DM7pYQm GN=]ѵ{̹ʻgoT&MY?Ww<`d<s悞G39s"ZͿԼZ9oIwlKH8n< KFCұgH.)O/&~^bNi!TDjV5Q|X>7JCv3ʾ|y H}v)%uzhaa3G<ğDѪs0TN@샷l.#fɟXjr*Be槔_P wgqP]ղT4u,KILW$u2}JgAdqH߈`0wסԊZT-[ iUG(먀 mĈ>"- thʈ14;T-_I]O,fAT$5>stvY)I peQp|~_ &_zAT=tZfm&a-p/.)*mHwnж3"-D>Me/| Ž)/C!TR䦔bZ$ɨp8Zrb _qgͺm#q$o)07ԑ-h;™ɶg4ЋGKtA\r<^sEZIoZA$=lmߵG`= k.QDG$C/&DpøDKbI@Ă ڪNX wYkߣn),rc] [ "kZ L2&pY-+ p e*;AZQdQ4փp;\ʤ|(%T@iY ( dEslm85 "}lI{Zk?lPO 5.h;pULHv&DK2G0c+QP5Ƕ@'}ܛb?}H>Ulsn?CfBAMhC[((_aXҗ+DVGQv6Y{FCCGF;9 ['"%$0hATavAX"]݃Ty8tK+q}GdqRaNfZv 0y 5Jy vа6_xe1yM 7`:3M4Xu& :`X>,TC$zmH$CGŸV&+Od/ b Jnx_bÀ<z&M z`O7f•Udb{k “4K{1iPa$Ue*%r?'{+ uSU43mz5qjӅ_ 5۱eMW:㪜ء΢r,Bᝲ|ޞGŨcɪ$1b֊0FEo>j.h9[66x\ HnhA3/}@-s4򺋴}+\.ϜԆIј[n hktEJ&R$\ ū,j} l P4c eQrv:(v s3GfxʄE?Yme/gYCy<"pSA8~pTNAgeP08%J6"#U4,uW0Z0jQn$O]ֻV^vD$1W}V@~b9#˷1Kg,B } {do#*AOߤ7R5Lŷtb;IrseQ;(h6әMF70ju}{5^XKK=0פ}.粘<#B3 W̼Eg:Sۅ5Ee\| Y67m1`Y; xAmؓ7L^ })ɨRl z5 <_^?hUifL=^_y')"R>ιL/JJz=᦯PP1/(E—ݼAk`oɨov(@q1%8~N!YlQej²2(2|^K *F &{@_M¦8wf}LǗĂ 35,n4&nm.H`+΀@jUi\vJ<|R#WoITCQC[ٽbЁ+mZiMd_DZ'k#bx\VZ5;E;.|4~kH;IjN?8eII9C%1^"v&/t|w83R1%`YB~&?ESj"jHy^l@ˊQ_ ]NPIɨNhv51UOx9+{H N5aKS(љ }nyZg{H>g[f8wIEHQ5v_Gh*y6wb0?Y@x'ƀ'DN$6%pv\<` sj~ScSdI˜ӝjG:(dZ<{ @ эC6J,ScO/c0zuM1CpȂXH1|Bȫt fb!mh|_o_r?v\c˛z~;(u/MQ[QM 4oBy~xjX& > qb1rr !t 3B %$}vr +"ɏ,/pVx]o&l ʺ5~TdA]ţ T\ )g%YdM*+7}r: ́8@MԖ絏8eM› _Da*7]-r4ox3D0<IѻT54iKOr1]JW{:.Ks'O,GMdT^1KYc AʲC(|}!!ܛ%U,MyWS3bvMu/1Bb!X pnlPeDyAP:ĵ,R'sWcuFJTCoS9 Dd\ui 1LT{+)n* 鱣׀, H,<~ɨ7`mk N$~ [Q)OG٪9G^:A;I.HBrjRգ:Y >c^J%zLj.LjYץ PHPDKrO#`2!T`k1UA]I$!l]`#“TڅIijw]_)}}y*p״FkʑղZ|!B㍋hCl7T\ԟ?<‰e#f*V[D &UNCK~"U'd0p~dqԉTNT"Ag&' M?r_uyr{ژ<sBGyAvTW@ υ}|Aս/طPmX*Φ|dHx_uҭrv]'QݪYN}UеfrIB_K!ј:*>ax4gʁ\cC4kO&I$*o[~c0c/ug 2/ۊxb#b*cYSuC}+T[ƍyB)mtnTIڏܷVm&c$Fklr7V'q͵Zϴ=kݱG'| )hMRs8V V+rN1_l.b GZNۀ8[9ܳNRYZ(O?4`1W~ZsԳZ\)p:)XZAԐ-fxmOo~R Ej7] |mFąMN!, ;}rrA>6A(Y85A3M  ,.k{qײap}6pOgq\.eV PmWʯXuo|9E^P/*NWSH)@KSƎO9ԍE&Vi;"-"y>3 .M=x{(ls2ǟlw莍DG^#㴦8iQ8#u<᳛jIogA)$S3/Za/&Dd>/UhC yz>)-3xr@Bnd߯ճD[g4&vBʏf9]Op]`e9d3*Tb*T,by3POkYA4R&^'|Pxeux(/зK1f@<`X3"v V=8$Y|We.W6 7 dNH;yV OÉUl6"ՀE?vvE~Pz¬jI,>%n6Xu*D=c\&oŠʤg2(JF Yx%6YI%eXʩ9XLOcrpQ)ͫU(Ǣ)VM7£*Q Pwzyiѣj%sLsn) w-7&[\GXEU.S)xfbFK@ Mo&WD$oM#ϛO@ap`-˖{Gˁ eWy6[#TԅGsȳ^{g1fR닭M[Y|(}:DC/TR BG)|,Q#'^bY"NQ_DО HIXݳ~M~\ 9bepu 9UP^6*gZ^^CcyGpj'& sO./߆uA@:穔//nY'^֝0W\Z-iOȔ;yQ6+C MjH[GiMI,quϊ EU}uȕk+0?}*{O[t WMRfڄxJ(19ͽǗ}\pgRNgJ ˪)OZm"nW>?âCĜ_[2s(HWԿ8* G{+9`y J',҉HiƐN2O?'|F}."򥟗? ox O7vu׫sfÃE4yj<ߎS 7ӡ.AC#XZ乄'௘u.!wp ­N m럥J [7tAOaYbnezK;똲h ᲇJ_i3=`OM ;O{O}<},#Ag9IH*yf!m.L%wJ~r`'}DrvZXLk.= ;b+?ķK(ء4U[A3RH8NUEmeI༳5J?+Se\CaP%J#[gv͘K _ v?cpFҪB÷˦sji0;HWvz[v̀eB& < P!;|wߘt6 qTSfu~1Ru A(Rk}X|mΝgAo">я^JpF - ^W$xcYU:rv|y{^mp`ӂ![ۚBׯeLt R2JL~%Zg 2T@y*#VRAUíMI _h{(;>T &B|h8B(ljs|,#w_03#p \`$'*~mhT(ՁmeX'2GjUJpHfE 㬎;b~z`Ԣ_kF?oq#VpMM5 n[҇ Zbp9W3ꏃ ,"N=ƳeLU >VS5vfnvj_|.=/"MP< S<QR-xMVxtU:6r5<ZNҰd'Eq605p51A$E NvMj875ٔ*3Yzb?|Wp/EpS^CӮ1!}Pl dl}cQ-Nu `+):.Hq(  585T;>K#[ :e}s+1l-X;4y_ haLX藷 շ =m"W{گ焄nQ벁c)Ў"ngˊHYA5F;ܾ(6_bzʼ3хbKjPRG1 w= [2]4s(p38+r?\ wTdX(Zx*}CՋe _>ٹt#F\]QY|@ m Fn^WnoFӠmxW]Bj,b.=b=ZK`.-m1 59񖄮G.FP=rePI 2 G+o= ]@aޮ7)h:+)2{13ȷ/Go {V#niBgˀUo/gmkb\62 QǓAol;>M8錻{GƓZ6g3:%+tJx8JH9#JRisEp7R7SX"ϼ"GY,6BB;삪m{Tk!,n+'F4{cd?g\;pElǰD Vũ ֘,NDP݄ L %22PWzub+6NQNk? KQFoFLRM|<OX1FVf F؆D㰊rQ;l-WUQ.]0ak.!ՔW:6-@eT^4"UP_7QbWrwE) MxQk9^wYƮA>@_o` S O_3O$rH^kPa|t"{ts`NO.oqYE]Ek]d߷,WSohRc\IZޮ$ T,#`5%,;,>q=b"]$uCRd^)Sn ###A G, >Ȫ$q*k*X+u@@llcZlq `l۹X0G j%da30)}[NX5k L3G93*ۧ .\ ΊKsA2.}T;6ɧ$.v%9A^LuHoPXrjA==ku4PEǑr1,,C%DL{Y<6hF;c؋BZ@<A\1y@q80o[@Oj[RU:lsnr+0^үnjN+@mbT6Va˸ 2cI {jq&AJeq&e5`+'%hQ/lIzAwLo;:V xrtދh @& pŬMGsLo1[c^m:lePbe>나^S<4,Q3:ѕN@جu5԰N9}vP6± .Vsc_ a3q} {ή m$+h'9lZH'ۮTЄv:r{9RMNN[6MZ> ;>UyeHCo8FүFs~4LmoT Si;'AP~^lYA lѦYT.a|f$)W5Xѵ!GmD\A#[v+j {űC[ҚwP9 l6|'.#?xnTg}.PDM(\@UIS}GΨJbxh*P,7y0HzɃ |++AА1,D\mga.Բ t,* 8CҞikZЮe 0_ Ӓ[׹X C;ZKF?cu&2a1X)6f4Qy'Q{*u xt'4ZhJST5PIߌi~+-3|2ˍ[AwyfAgVO* VaJ(.޹d"IvbTv4^賝A4iH $K.jYTQVo!Cq>[;zA,#rTFJ Hbjgm3R ^vAZGlUt,~Yt"8:z/p;;pbKr$mHjYΏ6j~ow)':lL`-PN_ ?4(a*pK+ Η,Z|e9{2K؜ v"ׅ˜ A7? mriC$V4V~LDF G Ӱ>2%]5# 텍R`%%6,ڐ+P5ЄJg zdWk1kP1UN I[ޢ]k[V$-ǣ 宓u; {ށ>1)t||;Q&!RAsx\vUezh7%.bVRX NJϐqA~f{'W06XM K0K,l URGҚV@prwglM*ܸK=S|O2jDaE "+iU^8!0MH\-, $7ĕ|G궈dh8& ٴX} Svq}yLVs^06&rn"Z>kPS]& _|.'rVDFՐ:^vDjB>lbcH|@8B! 0:+as[1[le. *IϋcKTGDL&K1JS'({55 >u" cC'DX[R2ZDɦU;<Ď0#J SU)}_`[+fzy"' in6p)2<4ΨG>5-2e6*rUl"?ݓd\6(lNbSZ ڪbeA},wOj ݿYTT3oqU>(aoIN!T44v&I.k^kP"1{pro\gj7>*C4˯8V2X?<EuH pq|>QҶ8PG=m]_#>V V/L ĆRj,)>(s#}m u@6 e۲|%6xKD,4sӛ''C17ْoӹ;!ב3_CMD.^Ǽ|cj-Z3$p,v{q<, ,~%] Lb\@xizp$h6E 1;R!n1.1g:v9[1p iulKppp_ApQYV?S2$-{G$EsJ5:Y~Bisf0htVf'H9jGzxfbg]֯i! NQoL)-x'X ewFP:*$ Ivxf:Falx/yIs%Y7[6`ѣf 5 y[3@=Jl]Ȉ>:&sPPQ0.QvTUma-ȃ?T rВ$Px޾_ Jd`$Y0I|.7..N!{ |uC YۆTE5OiH  ] SZ:Qێz!@͈-]m_y$3Wa 3t<:; 0|}FyvE1<%FrDHWN2U? kQWMoÄj_YŗMg/{|qz}]M0`COԢNFa{mn1%1'?sj`j"LB ԣZ%n^AXՅVj$ mst!y;yx!(\FIx_c9blh.Eqb+v A6:)ִD \uf{vƬO}}!7*JbfĴ ѣzGIlՑeuOhZ-ZFZܰ,t:6v 3r+O8]֕UVR:B$0)* cl,LȚ3~}qy pss'N&m%]?ǀ:hz5kaU\OSf=+mL󜩰h/QYgGRO_8N4REø@#(.撼&-YP"op ?"Zv(Ucz/8$2͟IUTCl'Ś{ޓ9f5{b/jJK($9 UO1N&p~+WeΚxLfiHHl% 9y>n*/K13M'GrP L?`cjqlV' 7O ~>K]2-QS.w/D-t-ifk$;ݳ,/,Ayvϗl5Õ/~|zlRcJ81.#S ׌ƖȮscH'{[4cu!mmo65 \b{: p$3qfmGrFi"Th!9ObibI3OD K ^\ 'J5tu"nv]d,3_+݅qA,<H[#q(^ z(3b*fhT OQ-~P?UF|M5>DPVլN]ü+v$cu<_RE} ?ű9b3$wW~j2ދ2t=i" F&.jBdS0FPm1hڂ#4)Yղ+A#[  += `!h|GI!eL)>I˜Lo~6n|қr ;r݉?6D}<ܸ?G$PKFxc͔6aOu#Fn.:Tʋ]t\&0%Qb/Y&mw$j'zqC`6^A|\})m5%yQMZ?Ѣ.^U{޳|(7$<@Z_{IJ s5%){HH{a";U;YoXs.֬.q{;gU}F:?\NBd|,)Fpl\|˂RM3jqif`sUJA$h8JcO7#  o O^)t&]# eG312S Qd])l^seR. ]ub2MW^R5tQʶh$(}~Kny,I}Un,>-|vu6nB3\ h (V}&4fÃﳹkLM?K6Á"#OGų}%]pYʛqbzp5vs#;v8%֎MJ~mO®Nr:O_#y媳ȁ Ρ$m@7!(H].\i+9b fN}ݔqY!mm|{߷ɘ'1/l ^!K󚭲]*iϭG oz07/ϰɗGHv/-u[jU>IEtz֠xof# vo;wJПF9K "CT$J)#,I 1vZ1 !a=bPY)+*74u0^ǧv#+$DҿTf&Q 3a fGZ/kzkUu})}okN,}$iq=Z;+vUs”~h b2ĺJ-Y|C,:9̩ULO_űr62HTJ4e{8Ƿu§Jpc^f &$=}V3.6`_'!B|^rKUH0_HPmiXh؈7S,Z熂8)Ed?O;-/wyE:*!h/o)Nk :^Y`=猠Hk2֠?(ۢn_bҺӏm܌ұb6Z Ew $DPuλI# %Ca[="f6W+ 384+oS}sL.A:WkdH8s4Y1v`j/{ϣ]C5r7u""_x1=q2MJL46kiӢt4-Md[au>}}J(VyʆĻ]V{tfE5A$ddwkב̴6,!?$u"Y %S 5։ $bZSC`$5I[W&+&@E^7[SB#",f Ij9+\eR #6\D+U"zpL|ĝkXyC'Dc9}0*A/,\F}jw}.l̔sSN\9I0oR<8tG^ʯH#/`rR15*3m8A"/Ҕԭ`En/́K OUzJ>yO>RJ140 k!88<Xĉk>G3n!oAE{M* !|$Qx+}CxN1U驂 uO yͶdt3nҎޚw@H{_q2d*,b=68 Py?P] %z7Ғ "L܀h2Y|bhVH]A21dhb#SZ0T˸mۛC8&{bŕ3Π3R@13i'F:YX_]!Mw`e'v|``XBCq {vsbLN:lzn|^=#nr PxJWt Nw˱8x̮q1Y|5R=F^zvXc4=3e%և;sC.=?Wb]h_`הBi֮bͣGyf%FVML,آ | oE mj5qʣz.e)Iܞt23HVa98Q>~!Dn$yUٺRPhj38UYP~jY]"E?#06)oZǚw|RnIQ蘂}jq`NM %z!Y<=1\oX"5 jM+P|>ش]ʅ9B@aT:VS1tEVuϓ?ּ֙&GXl{KScR/o@c %[ki6f@ $A.&ui -$xKԸrѬ~xR8>ۆ+]++/gIXf;C B"@Pjl#WЇa^rY!q<' qxr\-MLAs)hl* l<6 HDѽСz'{4̛239q|Wv`͙UsC\w\n6^,У~YE9F;-g%a=j:*kC.!)2sL&ZpYp ]̓QDf_dsL:Vz"t]2٥EUTlQH4I]R6JyYvwmȯ8mH:V'Ԝ~$ΖFO.&'9.*j!iƲA0i &#"fS8LgrvX̻MN?f_f=,4.#0 9X%-OU Ccwz!a=uZ  %Xpc]]Ǩ*!$.eeڱ7Sex*8}  '? ] `badi7Y\_DAm8~0#^vx,a:6,2hqyz{! {sr~?H"N0r.mQ"u ݺxbC2a3uT@ҁ2nkסx ?ԍʖ"n}rg#{D5G=U> _dpT¿.H%}D p+%5G{R~y$X(5C2hU;EABkep*n:"9V#A(M>Yh XɈZ = B2^ :/?0F ?e3hbА"kX=HSKbklߪ*&6z]@M?SpU :Jῦug\#‚`[<[Umj-?v*^Z(|b:Y~djPMˍPr_z ƀH,QsN"2Ixz ␪ X&5(ŎjQ$(Ih ߑ|%(S5 f8[/~: mjSAu+Fs W* >14¥\ hDEMrȶ 5]ͺ\>TAP~f7Ĉ?s_ĩ"&9A%Ҭ ! =2IJk ZFr)ބ[WJ5YA/l#3^V7.jTm nĚ)8NcCIQRCK'Ť 6 thA+Pl?~T ܲPd(R9NH`n-;hSrwZ>OOES6,YN誗D돇h]E{s@䊋n^u<÷CYDtmI_rQn6^Vrg&PW-IZhDFfē- zAYNX|>G]X5|ڑd|>4u+^S;c> HPbqhM:~m Bvni1k۫o1gQ.?kG0s /\硩c+{UxzXT5NqJT@yW]^knAiAw+()jܣ1 j {D@1.jSw)U \U!  r0Բ]tmۨ jbn^Qۯmu+U&Yt%|esc='EFU{n&üipvs?'0d0c>Z$M SOzڂ%THwCp= `% 4Y.)5Szr!0m3.exӑ @t+*QWSk_gy۝ɔ{Rlv#$үvŐ9:0unڷ+L$)aawihN xO%fh䘱o ZM>oh;>Zb4d8lm'z߀SCֺ7&[ !5T;1#O^>^'~[/&8(ph%#KT8d^a#V&a&X&7Tr**I,,qː[A~j nf+wvSsb|J@O83’I >lN_ܞ}cuޜ0z˯UK'h@@CU_ΈI t78z*(Misj96t)OE̻w"M`s4 tɖ8Ǚ6L.do¸ 1`aABDo{YN&JHx{5jeS|vgeT'yʵQz\?6zɁ N[}$cIݽ(l *AEFOtA !Q,vo!ׂöu~QIpǒǷ77c3q8R~9A \rP>0 ⲞTؾ H B<9Kߦ&L-y2;ם.y_^Rb ,Qw656)b w=h2 S4t(TGIk%B^Ɓ\_cwW9W߳#XE^..B0}JZ\oh']V`@ q3IMyɨ`yQ :V`^O7{=sB'G;V,%(_Rs<A3ؤD 8S` xjPd4O".X*jh{.#83}ԫn7_aνth1< r/P;V`,aiK@m GPhm }=QØQwmmIz34ch s*fًgP塬֏$maFv "`m/zk I=O'/bD:'!hLepGymA}st#41/SZ0A#| &zVuL7> 8LLTg{WW$q)\1O)I"ĵ]>%zy\|sT~WPD[ x!jkdf1:QiZq a{Xoy*7N 7FQ;sfax gNhTlz' u#|W\g m'` *y/g$;{}}j22{1h}lZD jA5zjp uBJ+15JnmaMh[Dt<dR<$w/_3¥Ō3;m~ ;$U][eY,fg ؍?+9D!navoY(^Iza[vKvu0 (`GO6Pe2xd4{՝^_U7mtDaʷNeJ-k rNK"!v6{dtd!L}6.ք97 E.q_Wsuxx.mlTxLO D&6{?AvPj,89Wb.T-Zݩ/ZV~|ӨϬξm#S?bxjl6AεB(?>*8rdhH:u a2Ņ]s8㹮РE%IwRu{X&I[zU|Pq#a(٠ ,z fAx,Ib2UZCP^z;Rf+~5Cp(~V4ﶞ֨ඤ'PpyeǘvY$;UW _)~+@5g-kBE(ZYI.9ŗ Fnԃv:k-E׻=r`sʫI!e<5RB mGl8M<>JŃZ:r69;]:rlZRc 6rч +q(P)Qc2N7jZ_흙y#Jzzl8'JtYDBc!nqseS"h+3?&3[OM2¢c2wӉ Oe80wogpG}"h J(=Nw%ˁ:9a-?Rb&{RM ώ``N}m wv`jPGp=#w`O`q*Ỳj b­'^KɅKKp ??Eq!-5 ` m3:X lEam@N ]4XwWيOS !A6O qQG4z c(Í3?h0Uj (a֥hlʹ_Qlg:};l,RX-BA}O%KBؚA#挘u">kb w C 3"Dj/l OFz?z*~v95|fK2<CޫY덢3fw TDi{ȷM1c((,/ ]kփi%(jca耱?(7+0l=3GhuC:MΥҔr?́VsjxtZ <"MKc5e 8!jH}>:'uH6} =lQA6xPd`Pf͌-(""<ݣ<71)U=LD@;ujS'U) /dla=+DACMHzR[ pN )2d8e%Ҳ@x)\7c^!΋]~-*|E`NX~&Yjsr8h_F¡0_/[*0u*HHZK=mu ]9w.oHC2=uvْ$a2䲩p|鿌KH"oc8z6>,.p'Ǖ,|k-bz4 |1A"?Ss0|*54[Ip<0OXPVɐy-6KH~_u DѻI$\!qTe17jEsK ̃!%O X%0X&X緾gd?LO5cD>̓AGGE%[-iIX uicO v 9˜.qfc#t^i/:Aύ\'{ )7iמ߬X@Y%uUh3ozS1=ywjJ 膬q gR(l H2dO%![mۓ5UTF3㯑V9DXq焤px@, hl$LQ/$zRENw*}1<} ӂ+ \8gyRbs5=uixf)a2LRA[Sc!ۿd텱{aŻK[i@]ޯķtݦKTQQ^TCArrAn$%C_B[<8& VZwܐ6~UQnfnҫjAt6d,St ӸPjޏw< cN*yL6R2$#X:u @Kcy$V]|+gx W*`vNRKpmhO\[vl+Hg\3V܆0̊!Rv3 GcϋM\dN = pa0Ŧ\#P/ Ae=yftM[j1^F2eag\vۍA~_VTo9s0o([:E;ǸsҢ |]5 "nB*e2pvc2wZj%TpޙR~8LqṼW%ԽLwRa{`K G K>#`}2&,RK%q36 Ek݊赿 m-٦{Y IK1\P .3ުeW#& %Whňt^#5Ip%pUޫ\ a ccbg9V1~?Ǿ[6)bFf0SyD |ع17jSz?Ij֭* 9Гd'&_*a!gY<5ϔ\l0 DkvcO ]OsB6Ami:+'KCd}M1 )G2UyD{ S|'A&+R'e!4 V16mLAoh 'S8:=v%D}{8DKԃe#Hz۔ert9VwX\ӨHu䚴^QGYb5@wU`pf)_ܷIMO ^uw)C֞h@z! {Yj-YܨF46Pÿ ~RX.  r-Aݷ0{ㄶ#a}ȃU_|Q4}4YlKd=Bs#>(_, 9~ht =0MRd`4yHHNM,m-W/w{?~߭VyPHڋ\i #fgMf떊Bv#4#)+!Oƛ$xB>|@Uuܫf3!4 ;N{h5

4(LfHYFҖ;8jՉB8P[]Ym)8-Z0n)8m܊tyTӶXy.GFSH#UVQuN Rq8ܕ^ K/Z#GfGu}d؋`͗ln?y> %}2?5+|'`/>Hr(pٙYq)*Ǯ<_9t G˜j|ɷGLzbR(O==O,d_6mWВ~^UEQ -w"t$K RFa{;sb- :ܺ%'Tf*Xk_`.G.YWاT_::-d@~w (dOrU9$ (kP5Gu?qYo[>KhixNdR_  a +b/wrOd+ߵ#LCozfzb9|3_;d(b h,fMJ6%x#JW]e A1ϚQGvWG2A $,Vh \]z$&} q <;2P(H!qҵ >y3RB8s`7'oԨVKB6r{ƑSS&E$¸Dgz9uqw(j%X[4F~ M[)xsl>tN*c{QP{(KٱJU_zf 5q!Gwbeq#T:/+C- 9[YY~j IᦰAX6΍<)gN ssL B#:y^PbVzJK:P1=5ミ9HJ6☰r5El999(tkJ}qPt{X`P\ Jl .tyrqU/e{SP!Ղ ky2pC~AC i!V&S22hCEŹ 1,O%̓)W".j]xjdXCn~-0.(ʞInKvaB߽]٘޻?d@q %߃l`~ߘNH{t'2cݨ| ({coF\@xvl@[2^>ÛToEIx񘌌M[? 3ٷI|N(C9!0rWXy@O agJut2ДD ٻm0לaSe}W\_ˏ!&*(O0ýJGwD~EX&,j:/?}.xP,mpګ`:J ^)s rN6JL-=ⱝajFfk0 M/R{W'c&lϺ"o4婎-Z# Z|j2fإjJ!H* %,DC0w:VM.`soC&TUqESgbWj6ܡB#S*V"5* Ihhti_u44b#~z%17n쌭]|}t">3pJ[OO7Ez~X~)Zu@.(?MB`P=w }oGړqxBAVkf kU,Ÿ- )tլxnCIhW>#ZIk}-|zt|9VSCL&O[7.vPEؼ`6z/x eIU$nYH\ue ev O?kzRBmkqL<; ]dn;Q̈́qbsLaf,}P BֶTN@+ܧ&!"VegdBuXL ԉ#{2spڃfIӣfSdUI#Iܛpyۣ Fح7lu&?^v.9摒}\Nx` rXOcs-s7ܾ<[>ّH~:^Ŧj2]ྭ $O^{AA1|w<7b%PQ,yI#S l gJLp$%XS^ma@|N JVXnj/uY{+fGVB/&'=P#oθ3Iδ5&n 0?tjnӥv21X ڹW=l+94kbSagX)&,E92^M9/PxX ;2MBĸK7tuHߎ7Ġ|&-lWRױk* _^ו]zǀaڰolsKB-=f?t&L.1\vw9{8U>Y,e0a˄lPLpf~>Ι {t%`]JFUR,cД2(QHDR$|QʸL f|ZI_ϔMd+ېB9J;Iq냺Uh{"g`Ð٨7h̀Bt rc>dtpcco?8q*d%k_Ʈtb&{MK05heF @s\Qx80{ާ24r"1mKƙ: Wr+!̙&JԚ^ "1.mäboV%'bD;/q+N-ҳejTM]u},Vѓ|`‹.=lg ,g0JW㢯,S<:othTFqo4BS. 7:n>&eϙ{7G4[+F7ɪ5@uP/R0tHo;ݸޟTg\mUB}kx[!8-]R=3F|kQO} i,*>q 7n" 5 fSXaq0۬Uw}\S(,8ͅL" |$[(|04‡S?:B,uy볎 @˸iR lOC-]ũlk{5N TB,$/ǚ#@)ȫhK%i%*r&:Wn! :W>\C<2s:rLqI):qRJt^Vh UAIeOt@s<-ڧ[3e?c_UML-} q^0(@<]i@,W=H_| FH jxX'e~]<6W%FxCfgQчzl ?_ʟ-Zep:IV=- &KǩHlqzq}{>fCGT hB|ݴT:7~xoYFռ&vY:MF w@'>~Q_}R/ }9qG60pVʄ¦w|1T[HoL.nk;pn&kkvyoNY~{>*6B7-l;")2\Stަ^S >HlxSL(CsrzуZz/#C^`M}qwi$$}CO9c6T75DY%~`}4"-<ۯj|!瘕Fh՞Bw#Kx2JޮږLɹCiyO"/"05AU&¢F켏g`LmYWm!r:uMPM $6m+Cg)C+ S3Tw/ 7$Rr75}_mdzY£>r]pٵqW㉉&:!넝>ʢAVs(GMW@X!3zzX:4=?U@ISqQz5Xx HD W ߇cHN8htoϞKAAΈ#ݗ?: c&٢OdW *Ps)Z—.OT4Wgj3 MeR=a2${| .E[^ 3d?nZ?+ =1L #l aanG˱Z=4o-mo[ŚNC[} )V4)3gbn6iߨ% v&|9pJY(F0 KCd<3փKėJcC^G%W@/F)'v3qc:w_dOJY#*L}P5(mk04d$|Mjo`7-l|B\\4r- P$뵊H_Q"18>3Ӭ?_<۠Ot ¦i|R7[ZY؉WNɩwtRu\˻yzέ$' Byȳ- Dg[}mb]l^yάty/M!ʩSY-l0@W}9 ztyps;n H{K%Q >r)Y63F׌64s ˺$·{XY鰖O5pT{Ώ,⃠{!a)Ղb:C[s@erΐRcGvP cy:> 9PH=ٜ$È+x3UvÝ3eӺy&|j=ʭXT2T}\C=*1ÎwѽT&S?fRxX u]jk6sk$rg&s?M^'VmxalD5>z" a.NVK].∳uE&%&Z2 ~x8x ypճ"@>, gNWt]mf:u" xcr¹a[MS(PyP{tкdlnBڠj34:xGI=^VL;K -B .u^UbD}/uzLQ3vmܱVNGALH6x, \a4zw:2O5OO7+ak+4Kn;>Q=ũ0 ¿B~ޜJkY&;MbZ]~& 8@FUcRɬ+A3@SퟣDzb I,N0Kֵv/vs./&ȍ'(mBL*D.k,nkgɹI\TC:~G^K잉7D2\8l˹xZ^/f^ KJhF^:a <i#;FD$&һIW,7 ;olX[w-`s)vNI:\=qDUQ4+ʩqߓG3Q&ǗyWjg`;JPe?pIxk)1\9vH1y]%8DY#aBIwHHe0`Z Q똪yP *&5l ;CyKb=r+$kD1 (,E9: }E0y<۰6Ei!8y.sbo(. BomSoġuX;o9x 13ITE; qrgߑr6A.ԠE'yڣJ';Ig9^T\g~,]i]~Bdޖ: l"H=[5 a7~Dhfl|PbO 3 BZ=ZbJ(y⬁My*`+*8()co2n)m1nO|P[U;r:6y6?n{d3XJQL6/d ɮ#?<p.#DƎ9uI{o'1qEѺ( `DҶ!7AB7S"p(,BCvO{O&5K@3 ɦl%k.GZ=8Ćhov~ EƲ#V Kz=e8[]fBcDip*QcP@9w&VNz)i zQ4.轌z^nQXƳroP֚ei`_gAI6ݱ/Y4Dńmy6̏ҜhV]긨a[ )i{!=AGEF{@ؔ* E2ixQ{H^;JŽ#̼`ёxeg:7ʗV` оTX'jt: .mDR& 9J: O.OT#n ^nL5<SRd =:|C w,P2ʨ]Fu%4)|zh >[q~q7Ppc=gU!4To1Jz:*jR| >WW KkhzN9(o=osdp$q3Q&*GQ'Xy2S =ߠ6iSد9zRLIlpŃ㓥ѻQ۶s&:Ɖl׫) /\Mcp,uTӂ.C aZj6vz1*V^1 iMȐ #mp. n,3M!,g)DBsZ[PmFs,E۴04%(0 C#$@ ~u mi\AмJҴ6$U*#ZӤg)t=D詜7@mB2lxH!qQY05MD_ٟ oRu΃@f,9!"q 2pjow/iQ myLJ_G1nIEzaRDZa!(L'YmNFԼxm Z(u͡%FBL&Ɵ2Ŭo{0scXc LB))Kնx]d GS.A~s-hiНւ56HqJFq$DoYx]bl{NCc( F\Cz?\Y+܊{Ά Z~1%Gm7.o, &F}тev\|aԨd<?rmm Ώ/[g[Y8y5zr lmc*=6 (:t=0. Mɶ9|$It5|؄埤@vAQ;ľ&:?rŷk̀{KZfSdyULb…?? o4B2\"lA?d!i0ܧ|ɩQq)eǐфee6!M?v}ߦJ5@J wN$ C1ޜ31Atب٪*:C㭱eNjc3-WOؓrX5A}?낹Ě$;㭢O Νj"Ύg3N> @ϷF*Jy]w=A}^H1qxFOk)@}0H${2ֿ{+FcЫo]kOg5oAp,??fSH*KΎ(|"0^xJ;h]k6dT@& q ȟ1K@LD[/GZL(L;s0W g -Tx< )X[R6N@lx~nLǣTIg jW4- 8E"MZB}ݒ- [\}`Bm֪O{z&,@D Ij(gk#.=;:tيYw7ANҳENhH.l^YnHa(ICMLSkH愄RqSКC6Pb<>.aa[Վ>7@dp/^d5=ZJ!I8IW-N<zH6Aw s 䓄=<_"Q5kt,U}e57bO$Pقk*, ! dGtFi#MyO{wUeTZ!0 ;ѳڂ rf +S:)EckuJr/>$CC Ce`jn@%|ٶh)ʼNbConX_ǟ6p2&Γe]?H[% 3 # ]=ǚ}e4*ߪqW"]l@V$ˆ!&)t}39L^ku$)zKI uAjEHΚ3܆Va޹)J]tFC4)'1d1~! Wă|ʓ 6-!0ج{ntdcϾtbW6[=nR)>>ڦx)LCG[חM`KwQyH$zoFiO@6PkT{o= GFɒ3/ֳf >#|* k5 )+AMZGoM6]}MiºC8`A{Kqٌi#fSɚYW2ILW 9tz') E.VE Z8mb,:bbצ;)AwIФ*$PB_.f3*q*4p>UK)WAswK0/w70[!1~!|R]2d#f\N9529GU>6\ڣG- pFV MKv[SKjq̂U"޾N%rN8Ut6r%$!OgCЋ3~(z7-n5|7=IPHi(7 ] 6V5z*i+ O3^bG%ׅE"N> /=%QTtDW:SK69bK EuA^| j}h7uՊXɿRuwknU "*&3t MVj;E橐Y5wKaYsv_ԟ*^/D$5͜\5+C*LuPKڎ8=2:N`OQ ݾ`QY=p\FDp6RkiѬC)PwYyH.LZŽF-.W(ou1-فA 4#)p=sƧ Z5zh \-Eߊr捼י?Dd.JbٟOj\g Y}i %=*f);u^G؝P \:ӌ s~̃?y4b86 CvhТ=y3 kڣBο䷻-2k~As|-趁aΩSM2p Дb {k ل=iIoÈ_GVbz|OTO.L;kul_}Sa﷧O ȐVݦ}/2։^i)Ch!]bsr ƞ+p%KN |Q xoHtDLVEG$orS**1yj((c;VfҀI+۰M 2۹Rc`DUܖa1$y~ː)/%׎ X ,;]N#K |.1)KOٟJ5A  (ϗAnZi{{.? Ҿ<ԑ<(l#XB7]lx@SeƧ }7Z~1|<8$t1-NoX~7c{(\_I6c"1c![&^e荏ʭ),*&3 2xH"AhO44R+U6;%Kfh0I>/?=}›\Dۨ?# @YLZ^l Pؔ4 @ =JRszE@K#zs4gf>ZtmMd1A 1hGE_66p) XV0I!C gxb#{gTY3y@Uoa[[!d2y9d\W~G>[;mi*Ü}LjBƅ;K "N[uxgEw3uvB'b \VL^Ev߿bXKS@)4J[;F'27sU٧P^w3&A߬?Tr\ #,Ѫk&lBc ' MCf +8ޭWdX;(!cki@a +=nk^XLCVJlZ'wp9q^dk\Z$.b^E. Csp!3:h?)4}Ɣi #4(<~h'G2Dta4<86%9^HhA1EmTȚx[žld` ۛj4lbG P:#zR|.G7BśIa&Y S|q|^]$*0虒L[: շI-Ӱ$xVk '尀վBLB`0~mǞvV&_r>4"P8 \rݘ2E|Ύ+Uj*kbNҡ, md+?Akq⫀x=uZ|\~֑(:n;paLnD$\»9`t\Ѣd^YWDcد0 Jp਄4?;ϵbD9Vr%G X'Fdt&mB%Gl,,WW˚>iKPK['}Jp 0 4gˁ4#\;nՓKJF*AC:|Ċ5ݧXL= _^Nr}Xb7%[b%Qn?ww̰<2 Dp{ LatcS\ Y}qhYnU~:3V1H4>OcQAkS77~FCt{)7.%T "Y)# TKNÉ1j!hqP0̶p{sL?'T;zg i$b8(fߺԻO=xvp B>=rfYk.TtݡXwJG>{t[TS}6Y-2 LZ}.^*#YH\ +>fóM[o&DpA))@ f[noR 4 &sR\uN^rtq{޳ }Km@Oe /5f`|>kyNUe_4 ѽ*j`d¤X2%oDS5\]qH0V222kPf/1Į Q@Z(яXqi/3k4O*rÓ3 I8Рޏ2~L 2|Q_k߫A76.N_tmH^ܗ4H%.;(0"V=*C UHRnatYW;8ul=[@S`9_( F/GĐ)ԠHGP8Ԓɇp5>CIt3]r,h (1]cq+!;%l]ט kn7<ϻ`!H "79r1 (a'Iػٸķtpcocai3`<|zx\LFkP~@ߑ w..,`g<Yb6>6l|Iz q"2X_|pGnߏ8OY% g!1My®]i7 ͎ѣCoWC}r¦N5!N? ٥ɕAYU2 e? 1NKiЏ,YyH|0F쌨z%6E>=YDIӂX$Vb\1[$׮i"bJ u&pw@J`Lq++MVܧD6 gDkA 7M + i%:W^6a^]|+zL㆘CoSſyyȲ>oyBu(hbߨz z4V/bMRWO|ek~m62S+ SGgQgGKƧ\rʊ|"ҧH0{^zǵ*;P@_YiU辊qe~ߡ2\UGY-}mܓW[eɊojI8G\">9@SDd+k%)Lpv5Gr΅Q}r*@gMIrfށ_aYB7n, lCGvU/As;KP}ci3aW<g[Syi[dFϥ^)[A&eЃƷIe !e:z /z(:/$<%_xr4nb^,?)l } p,߱an/*%M9[_da&sP׵,Y([rkh*7Ƚy{dQ2d12HC1 *yA"s-<8([%meMWDua.87d2}vsEb''Q_XkҾ|}#əu%Zf~.PԔZlҮ jFV yK]JBUl0݅귫~5sX<]mEqсc.ՄS)>U,;xpH)ʡ|mH_졑Ko:`AuNxVk 5qVQgn/~Ŷ<(2,gKmy.A""oEO ؚo'FMa$7wM$rv{3'M mԳj4QEv'o5rЩ"os`00 $]CmQYOOvŖ@֌'&74BGL/0_N&@d9_(#Y)U~m"FiʍlB~@J(9t3&VhGh\s;{y ׏>Y Fjm'" o7;`\XGi{ƈ)4%{>6+ɹ5m{*aAD2:ˌ1Bsqd~BkEәI[ɮB_ UPfDbn3ᰒm[-p.O 3WD(J$ށ&1\#}? .Jcƺe)B!(~Hi+/?/^IzQ̝᫱߰/>49AUԌ}brGAQj2[(k1kONE-l8zh]QqbsP:+S'|OJl <*bPgc ԕI1ұrku4tE /?NWQtUhF(xT<AuKx`6İ[zl͖pq|Yz& *C+ 9?tlU vwC'be|p/"] xj2YO$F' ~@?_J~K(-.!x+N0s*P\Kk0hL0'⡱.oik S5|I N r‚Um6C*/|34`|}vbH(y(9v(ߘQfoY?m(b8%o?+=E m ƕ<>PdfSS)fڊa.~$Η7ǀ86GQ!>-TaV'Di5N"Lv,9shX9ЇVm Yę1¬./ 6M18DAv)S,I/tDCk9)v/1ϼ+ İw7 R3Zj Ծ|I>7ɶg[zTs?YC17ڊ 9p5Vn1K.(ɮ8 :OS@}@LQmz7|wh'豭*Q7C mLTl1bEdCvlBB4!Zh@Nyuzj}7GHǧDbD&+T}?rsB*3ڔ8~{iڌ bd]d #IAr؛9?gD(֛j;lۛ_ FJq8T7|s/0tu瓰 ]I2CE ܞY.j i4aH"Yk3 {$9KfuCZ?2̿iiQNA24v?îti BfH&heQ!owJ4ZȡplU0l xⶀ,˸rIdx2Fp< uz?jַEB{ ؜)zF[r9 &+|2yukA檻D)aS4Lj{eSݓ>p",DgMɛHz\]>[nӌvVQDjYzGZ VfG0.Uji48+KV5I\nIj(}v! ?dŤH aċڋ ^HU&l3PCxf$o kY"H=\/6 aSc:u#!߯@ HV~9,IDUDAr4ACmuL2BE",וn;!}>8Ih[+3WK ÿ w^"S7Rĺ꼞tzv: ﳲ?STY]TobaTu ܚRDEXPmA'Lӓ nA=uŀ3`5c1o0,3hh7rhԦ 6)^$տh$iNɈ,)L!Į鱎v( i gM~7|{nZ%uU)C71Vi7C6~>jh=Zyڞұy%Hg'HUH@U`9W kTcA/O2,u㙃7UFV/R]7 n&2]VY_+rN߮HfuLMX|kd9< yܞgFc-!žixXKK(~e6H>'w-x^RS:,voT!zcL%kFn1.ub\Ki[Q !E^Up7^ wQ OBl8az&<DŽH&uOV1X>Vn̠2,X;rIvtLwE*IVLcJYl?F|! XW\SahџGX40!V&CɪR}af3 ه6[!y _R~B; S:+UXvmz(yƟQf/!K. [::,Ivm`3u00E9^/1ҷwgѶo!{= W@0G\WzTM3bW@ZL"-e1e1]ҭ˜Sb`\&Q34KoSl뀙s:'ԁ^j{DlV[`n }Օ7[uߍ&:M#LN52ޕr;u8Ж8h.\S)@>aͥ!b(w[{%9iГˁLB}8~8ω$ |?{Y1s8?t JWzf?gT3ZzQ>:RHj4<@F(KyiǕ[nqG| *,|.2̝Քƾ5*aoʧnl: pG 鶧_=Q/y-AGCޘ' [%Yv]PLMZXm`e&ϛEz\(wm 3H Jݪ=qgK B*W`nQig '`#iyE"+S<ڗƈ,@"Nw:"]沸<;rF}qn2E욂A]Ȓ32&z@VZ nbnlXi#/y;A3%SaY̠:/9#TpH\}RX#ޝu7¶zݝNw,`65AZ]yv%v\Sgw~xkHi.]VOZTS_RSh0רv5Ғg!uΙzgB(9gfNeV TDm\ Ml~φ+ _Ǧ ab4K|vW[}S$] z{S$ŘC#@A %'=GtDu@L袈t@1./㘶z%J7rpu4n(b@t ]As< `F/ %t#~Hh5CUkh) Nsj!#fCG͙)ĊΑSwzcqn O&weP=o4ZP{[p>p^U* J 3f38loj,DMwGKn2f:[u|/#^4 SC>pUaB1PpWBahrɶ,'ch؍cC=ޜ*m*%Ԟ[5 E? ?kᎼp)XoPmRv5*탸s9fT|7faKv e mƒ,* (ŢWϯE@ŋ,Ar.=NJ| \I+dZ,(1p @TCW.20"0y,aZ;>Vpգ;9.~6G{befh]JT?0ۏ q޽#|ẁm3|Њo4c梿B ~!8v)IY^&Uuvs'Ś*M,bS BX$(s֎cN dرpOVLO_N䵔[Y ]X k LӎF8xZǒjZbƬDRt3tWɆfŶ"tᨨnD#HDTXX<-%3"N̓./Ym( e qՓ8ϾnG+Rd}S۠{%=d?Am.L/Osa?ptg$%%Sl&)%)`c-igb: dJa=|8O,xmdD{$ܽYL"WVn *mcfXo:H r.#(iz66.TAG#Lbd%G h󱫥 ymO NRgz=nzt vBg?loK,µ:]?#Wѕ?6ò؄o<ѷ?SV> `^gbߴs@Hw)A?EB^Bc8kZ@D a 2"JAʣ̖S$Ck%;S&+{71(0#pۤˬ epx66 ([  `A_Uqzw[ډ|°Whߥ{A1& gGM+bR?# β>gC|[\8S@OkTn_7 )XJjŒyo 80< gꢼk\R0Ckebl'pX ժ lœkj+2bC:TCG1JV9# T?'%m!R8*5>kf#q3 Qa*׾bAǽn6-FxELVT:鈂kzStbfHձw1}E|q=hMG叆F&n5Aw.CbO>p7!z&,"I9ɕ=2q»H[6p`WݟV~3šj\(5\rJ1a"P"f_ېE "1zdƞ&A* DD*Oӑn4fH2:fi/eqSܷ*'rnXT,R|?'>mdRجTM=+U?GmDj6R FPDǩ7=r;|Fq}01U)R`:O?G:c&9o#7 ]|ӶM9ع5R޿ o2 AU0(w`WbbRӧ-_WS<5,4fAuo=W'чTc%}•lf+VWʆFQXu#LWr3{rGWN>=Q>d%E#ɵ57VbZ w=nMg5D䐊~CG:ǹEbK@՟M>^Y@t_ Pm$L)m7(_sE,z ԩ]]r- Qu[Ezxd kjhlC'')h6ʁ=*7Yp7@>b(CsFaN-ڔHIG:N9,~KkMDјV8,1|'[ww ǖ꡷HϰԧRsa_iTF.[0j(qrtpW@HcJ˲.tM\ڿvY?&eA0}!0|\w|oQH-:58҂onםɓ],`K5qؼ$ \A^+]{ۗ".:Ы0MƉ1r,*k"Qײ1M+h4}J=^mf~-u9&K(RNtTs'%E=M=KSO++v$r \ L}׮, nZ<>+ʟwĸ?2C ^-`:쮌ѹޟ3wyԟN:λ^ NnŗGPwr˞$?`L%:-oޚ3CR+,s=3+]S,id-8ek# G ;9,<H6n;ѹ}T.d hoq H C!M ѓКԺE6Ud⎜Uc(k`nR As0_ Z@,!IV|W{.Dtӽd_n'e C_ v+gB4x[PL~OϜ*nK/h]΂;y6?&ߜϒ99XSYAz*EZ{lQi$<5N˷UjBH~fu G] fGecyF`/t&5{2;3i"lC H8B;L' =ϔdTg1ڴm+Itȃ7y@3i\Ṿ72P`Sl=AsxKtk |TkRu׬)QQ Km̎8R>ltr΋(\PNv5%iU%x{md~8pi3d Ք$ /Ga6iy="Mg? LC4~}/{hZ 1}l ]N¢]>v# ?pYY[$W JݏiHY0bd}#o~l_9PJ{}Yޡ ?g7UwF5,5՗@rZtuQV@~Lͱ^}nUA\4i([pL2~} eowۨFINt)ފqd;kSDrQTkOFM̯OdV+U391V7Q${"+Mx{lzd =a\?>p#k?g:|;?R/<=vYm4gWM|v~9Z9},N@Zi\dhox\E.>y,(U[kmY TF@_iY5\\0 YE綢^qs̘)gа IηCJΗ2[K4ŊGjp R^nXOns\v$b1vbC꣗}IahuWap^\_6ߞr2~o\7Zf'3QLz"lT| rW[N:[Rnr'Q/,2T|G 7v]5HaDĖ,L|3@5SDf%91ī"ױh(Slp1LT'uRMy`4he ݌ 3pDR+7TX{5+Tpoִ1>>%?Kx;oivW(=[D|"$딐&98p,"pQ}|QRfO*됀qE=<$T$swU}vC{ Kn`kB_#bxCcmq]}٪f;6婇ՙ:LA. 6.p%r-=' hޣc/u0>*wXc/ޡՃxͨ#kY*PIw.]r{1RWTь L{;"3 k srSCesx ŴBCT/51]}l702#xM!"]i4w_'ia ]غ 9Xw%Mfu$1!u΂ {hytb/3}Us"e<\Thmz%#S}2 .눺6m9(oe~heCRZbd#w,<cvK ')C\)x>wvTY-ЎDY)ua:}sfo`tG$~GSWX!UN܋+"׻ ϝ:h/t:~ɩp KN7.5>c{6.S!싮ƖLhM5$LU @ avE^mGI cE W R}N|[5n,t,ÉR7g5|4h/YZMrk1rsgȑf&(NC.V/Sn̳ʽq8(jErmA'!uڛW_+b/6aRAQlPɳưo`l"iq^OL<;(M]ӽ `آz~ͻLU ܅ƧH} q8rd:cbV`3j\l,YRwdIMǙU`uBpa:ޫ|x'se(nlkg V|/5j4:؂;)~P+ka 7y0!-6/MmhKUTp[.:>/Г ]b"fl=O=l,#tQ}KzFGwƙts3 .2$L>$Mo_=:v1/? $0X$,Dkɏh]_0yeZSƃ Aonاg)wpO 2 U^]_ ur+0 ɯ&Az"\Z #ɻ58!O.9 ] 4}q]ۜr/֘W|+ \eRE38S=o%vlguOp3w8?þO#ON6ui5> 8;VpeÜ'OʹAh?MKAZGX,P\:NVŦ)+xH:7eb\e<N *")m=a>!c$0*䫩T(c\pI3߅9\aW; 124KiFdY=p)_PcE3Al)ݭ|ʘZ%2,0Cp@5\p}cKԣawqfԈXs3\{͂( \(J=i )@FjdV2\WWR&,Lztwc%l Gx]\ơvdr{~LGJ$be `w=P t'{F"?a"^n3ߚ.f+,jR bg3Y\Ԝ50 g_cŨ/>@ Lx! Rɍ,~qM1=P&M*j)L0k.X0@kfW6hx[ |QOa|L(y\ ҂Iˁͪǣ-eLZ ʘ%GX@H m[yۭK ᰟJrJt\/qPX})i<GzkL ő>=_Wci!Ҏw[^F!P"oB>&ѥ(WT%Oj'c܈ V×M#qdCY;ӭ3p $" Z[19T$"3e΀-zYdUKR&,c銻z(TsH.ǒ-.BARw 2br ۷$N{>$A )I7D fQ`bvԧq2$zvMݴimvL*i12CVŝ K]ٜM6+ !6{kj^uk1b7PO&\oOJsb3^S?3lkXb9af-=XbEWMZPdmD(`%Y':YC萺z+X8Fr&WAۓv~J*VNcCss5 >]ej<z3:QP45C4$".k&@~C~o@|vIVSs-vkHx"4i~vH+Lm?8Pv;dBs~0 Iw[+t>t2%i_sdW" րv|g~V19orᔎ!x(&6*{Ĵ#qbd3+{p'.O4 9݅ xY- jikxsO4$KkdGU%/גl!OU g9f اȞrR"~N5CB~pQ'F tHnr3Q4Am~aJ-<#ǏFwX^Nc{|($!Cj5@'_)*I`Lb|Ėw` [VX+hrcœHV}w3<[_s@֕B]eOc-9]numɒ79;#NqV EQtm{9{ ʛNs_tauR|Zٽ#m Rr#kġlp4Ъ/zL @XlV'W&$PCInp W| ˒8~l-6V)iU%(gYqZ+"*t5'ŽAҝcH=,X蕖m7U񋞧 |mt<0ͭ 4 Σc4K]ۓ#`5x{<^?m+Ę`$)FmBS'h0AKE?NxY"XgReDpN;YlkbҘB*Ypt|F_n٥uէΌyG0a$'[P2lؘFhqm|ں4{o~6ۅ?IU}#E+C'i7)[Y@OeԶ1_ _oP6UWD$AN18qMȆag$gVs8iX-K5/C \Qǡ*;KvgrJ\jj@K,%6~`{X4od42&ݷSANMl<:T?6y4qXbHYnZIMp>jeXo\A^WE*%Epc9GzJmoy skO#[g-7RP ѮT5^r,pêDBB ҳMhqCED/qah;&~Y9d̟J g; *`crxQ9yHZF9[4j2ҊX6ʢ޶>oܶ8If%i O#kBJmI󩪻[lݿL~pECSҵ%J5%>@ `LSf8E. OM q03qyN$9̏`m,R^QUD3 #VV18WVV Y2qs@j~bƺS hOBu 5B@m$Lcz&}߹VU`'ϴ7|(ݟ(<-*'E W~yW];^ AYd' /۶z(ʯ^ ҩA0{G6iႸ/_&-;-x0" `kL&g ĀkA?ɯLI c뗥q{*mu ޫ3^3#0ߎϵohINw f4אUu A^6C8!.&0qYb0<^T.ӶMQ1]y8ˆTdņ1̸`J}vN>tAK|ސ|sg,' <6J@m@=Լ.RwHPU‘;OBڬ!"$n8~.{2-LUp &ٗeDKqn;K 輁7^9d2s Sc~涑vw+F0XsX:}E:صS@T=iaQ(ݰ9k=6Mvdp.FFY91Ou{IyjN˟e]L1$BYsjOı^4[y1"$*~dP=G\)f{=$sXboj "}W<׬RCWxgaں{v0=^BluK=uJ]=!pWXPKTJs7'&jY|24&gG.`2E_ QiZ]as^#rxw~4Sчp_ШfOETWgI:Z7.ʧ#/Z2+>烉o RH3Նco'^p1YQ"A:(Ln9)u낹? 7߯D1iAJԠ#ǹ \L{J}eFN+Eߦ4m$dJ-:1ߩu&z'>h w<ƗW/ʿ;l]R0+^w=zh dg4Ú]b8v뜉$vekADJ%NͫzF>[1R|H<qݞ3|%?S'2@DM,D`]kݪͼ#ԏ 8ORX[o@q;x<)à6k㰺X(%2:/q@QEewJS}= "Li"yF>\@ǿ.fz7i:N`ֆIaϢ{3[#iÃ]q9\S8׉6%#X!C:\+@I2+wഢΈoy!#ˍ. R9B JJ4vS,<zx1 /7&?H1ҮtI0]< +guXzvB><3-+4ͼ>Cn~ 'M)jòX I!+Pƾtm^Ky]]k$AmsDklzPH@]GUUͪ- m޻ΰٖO!_~~tq{^I}Z:g|`ڇO[[炐Ci 'Ӿ?۾mdžشZAL Ly2+ٴN` nȦb@NQ@AՔH1%LزE1j1A2eE(jpJ5''](ݢsq+œt6$@Qd@XTqv Pߵ7?b#v]`mH9Ԁ$. ҦLW{B%hc.ŗr>!U.B~m_Hus]M{ WeR/Mr0\9v2]Gi#"3`&/KSx|./{Y;v/t=߱K3_1c)YJ ƃ~R 9GvCk8$[D=%C=6.ԹV1ZO7vF\+Ux钍v P_pHY r#OPrʘ΄D`W?Ed4u+*2} Bsyo$0Q- %5S*Rϩ_~[\Quuf0{:f*H,6 Eh ?=7 əp^pxzMAVL{bǐAl_nf '5 ~Qwg%^57lzymyw`"10[Sy: 4pNГ'tZ&Z-ăRnOj֙G'6 ,u$->$ox#qH4= bQ]c,ޥC!ESηð>[Z15~^tM1kg,V UP,@&>. Jf(8 0ћڈDLH;Wh3Ўh'1r*mpɅ vV?ttSa33̎קoTwRi`!A(tIۭt4e QIԤl}ސO3`I&D2!;XA5 (eѓI(6:=[J$N.M9j='Xt){QILeh"7`F#7aY`35Ҿ+[NyiBYO kAWd7劤t >( .r0q_3ֲ\ẀXg,n,$2f02]+?]jv"UQ*r;:PaYX%!{Vy`〦%qɰMʪ S=kNxOޠ KVARJKDk75Xn d՝Q0<@6a&@ˮ!U^x}‰+%G\u@{ͨtX>b{gf^=H ̎@aޣ>|~r3Kf#ZRmרȑkr kCQ gv[֜Ɵ''}ѵ:fna)t:zzEr>9#>' Snv`{g;VPv lm~ $L@^6??_3sضx:9!VE`־GUDZZJ5|O'vm7W TAPje.1#iޚ+PAZ{w\) ݈(1g0pa0oca]l}n}d[ljr()|P5?ڑނ)H~56 Xt Ke#.~^ܸ6di-+Sj]AIPt`4"' R̷db ZI97/ln h9h2hp>#AKV 1={:2 DgnN~Rʑ.FgY;3la N%V%}TP+=٨b8QSrnoj 9*g`SQ6A/ ` Ƞa%Q%GmKAu9Ql^%HfS3s.@r,}؅ j6:/AU+2cOc'sm#{# 7[!T]T2&@WA>7}鹃͈[+Wŏ?$97KL.Kq-~@%4æ2fv)Ol-5~l1mܝ3բC fˑ͞f-vMZ9zpmdb{ ޡ(="s}-&|G=6({qC˯jXS"UrPηw~+r5aj?zrH Yҏ kyXN4-pхm>.:po0+!>ti74fǛet{lZy-8RJ Ɠ~. 5l'ݞTU|bw0ݝqsW@<5 WV3nE%Qe pQ^i5wΧaCjgNY/D Qw^@QTRo6dx3w5y lB<:);NEt!h2aй"ʮI<3^]-ko@^ˬi VyHiy; Ki<\]&v1s0Ǎ.594kZ1KsRN_S/e &}NƹlgwB/+'oXŨZ#=PsaǾu2;'WF6c{y.2+B<F`\1@0_Ysٰ0'}[\!׶#!6ȯO=}ae:^ i;n_Ѧ8՜s55ڬ#ةcz->9_7]$!AFĨy^Bd8rpJm?ac" a2R<5L!6UYϘpKoBZ`x6tL N\ޢ_wNƦo1L|_"j T>7M+z4_(ѫgl)Rea1NMX-TJXct6rńj_-+eQ۶N!qT2mb8l.Fp!8;F'L h3F< 9dV 7H jZj{:E4%7 .INRZ}CeۜSV_=ERe_$ųfE-pwer0'*rڪڋFW6fx#h÷·6 $=?$gmT?NώX$P,[ߖ;zeQसOxnokM KB eDD NCdZ$ޏr; X]yz:E|+Z}|'#R(skۇp.{FfWhL*վ 5h>y{YZF0.79]+s4RTD%_fǗo2fw 5۬MIж36>A@!P2f*=#54#{~yVwŕ̜^VژTTmBy)@Jd=`;Ƶ;J-t.i<2<`heL}6\7_VTs7' \+);**j/Ds֏МΦ;;c5 $bvYOkbUW}W?VwnӍ44\PBLbN~e}qG[TqwzO[n mI(-A@Ö kIW+SUetպY[]\@q"~6{A6g;!Fo. o MT{q1HgʔZ3 }2ޤ& :Lnv%`J9.I$|噂(27}{Rll-S^jL&FIpMhvy3a[}2AuE|٬vp *C׭r=Ɠ&}-$>f7$\5 B]w&vS|TK]UBT,K@z$;{˙$ Jd^Sl';s3lP뗖&{"s暂'hI-,$'a9omxAF޷h,$qZakbnw,C0Wʃu]y1T.>zJp"]ya3lqϝ 9.2M:p-Eʯp{;/|5&0T Sq~L]WjTٖDY+@PFY@PYC֏QM/;YGRKϖ4 X]%靛,gn{(r>P#MsT`֡jG+. +]-õpՍ tD|^JY]'wE;(߉ v@k;Fݟ݌;=g3T"YFLTC4ɧƾ 8<5iDՕUo@6ơH@ STYHR+̧n4\(`ztQ<='y'?E܂]\E.Vx~b+T{;kV.qpFExa;a'J}Ω<3e% *.1PѾ=1w4Sii^a+wS}[9BnG 6sNrqy\:@ og24 ﹵μ*"4?5= d :>;b_{L.X룘lG:ŀ !2p?"<N9b| sNsO_hC8p T?% 5%uABK#Jt4ZZZm{"p~scC%6Yz_'1Ok#8p];'Ӄ͡7`O.G,Xc-9~]X]:r _ ])YΗ63p.uyҪiZ/у "QS@Ͱ 1-|p.%dޙ x܇`iEFAwO2@ N%^ĒQXDb>9+^;;|WcqA[2!SYO %d(s*z5~bI*Aj˹-{T}MsD!Ӛg#!E8zHޓVk*L$DSh\K=z:7ns28QO;r`)am;v*$G֍܂@0WBg+A\`o_X?NLgNJU[? Z&)e҆d}8 _sp=0'ybLe\P~ TX (ͩԷGwLߟF^5IOį*qFj^4-V!^.¢]VMYp# |K pTNS"Vj6O3y.՛ c%ss`N8:q[˯0ޝHXr{BB%N!Ƃ/{8ޘ_6ևi w¶Godm$x[E*n#UDZ1:]lVs8FR ^c|aI2gx`!@<M]b.C'Ϻ~ftqqAbNק)Jh)#_e/r'A-zϷ]Ju]xZ3N'82<͜!9gLsqiQ7tNVⴹ=bH)75C*邜EW)tC=tOP8Űawèߟ_pڦnA 1cŖ ű="ڒL,4T0k)/Qtٯp#9 C4EG-pQ#'i}2R% e  SoeF\S~j.u6%xƕefi:1]40EԁE U1z]]zb=|a) ΌijӰ'Jw5E葌b?|:x~) mJb2=#}AH;Oqh24U16`^"x]%ȉh[(Z.w}5 L&5/Uɨ3qhyM1+8{o]iAHa!O y6>uAdy!9K[hHo?̥-c Ɉ0C] _Y,<-֤7.Y=-3ĞX`3XzViz+Zf'ĕ#`J H,& oPM嬡l HOs! *o[R/~/KGVnG%kBi,M%@7{Goճy.mlms\LnQ6PhˤAcr}1nEcc7$I`3G60LAoWcߢM$-E؞[׮$C/Ջ"<^F:|oCn;z#6]tC"H4o2 l5NoetAk>w4PyT\ƂVU'C8g&I,Z}M<FQ/bwA۰Il JLBTabc7T=L-F5@ ʹś72c[F 3JŰ8K8Iw+QGG4@]\7jC_7!ĩvcX%1޽򍊁,pV Ol$i#7=ivZ"*z%畍LYq98vIPaXҹ̣ۤ0WStwe:|E`ǰh{!L0v O Qv56:ǐ,o˳/΁ #I4[ @@N $5=;Pߋ7\[W2EEwPIx$OIګ/)<#ߌ`T}q='.+zU%P6^L^_&^+}>I_dr0DZ9ۣk[HB&*~>?~%,: ' EHiԪV:yObLJ3`Bߊ7ruo#HD߻Rh7Bd"xCDfA5q;!((lB*! æ9;;Y6EQ1s;0zng M]*IT?F H)ҪsVGd'w8fvL:&(e44_[ʼ2rD$稖wifO٘' JzJ)l^+Hv`,Kl5$|:S߽*~9qK n,S_YkPdy⯿=Zd"mXG6fBw&tLTU/sV:yf~-OϲbZAJ:{!1%Br#:ӻqWR/I`"ؙ<˒ҟmJn|[51OH,!} EnXՋ#YI'U.>K X|ژ/;.(37@/yElwlʔKyԃVb }q<r5e17ͫ~YM=P|Aʖ!sW@1]4BC^ <E*/*VTFj1#\vh},_J<("д1"=VW*wp1)EXDMFI b+NOuT31]d1xW7pѴr хW;g64e/֊VEi|nuWs Tq_ 9r">F&Z7s -u$@*jqc5y]ޓ=%7$pqh  b=\^b!l$SwXv2hߺn# Gw`;zSe;X8u{4\EMIiՄ\!c?*hXhh_ʀ@gJPߊ*TBIt7N'ГT ܨ (d_V+ 갨OcIViv5'h pQ.g%% mF?$j{gֹH~a1/J| X9y.C6)׷ VMH^َko_^j2:26-!l4ѬybO$Π\A$:_P Y=^jk/MSv 4\!CrrMsvNz L e:q|Z5"?)6"~ ыAE}HR|H>Ъ羙WhKTuGȝINp51֗QDx.B&PcdB_r;G97(J/O|f8l mES^[@d#W6ehhB~ .]I6 %FV{@3ϗ5S[f!{h)rX=<5"$\؈J+Z N_QX~śAj;,biBN=B J`=MREq$!FJ(0ITYJ2 %xՎ"yĔN% ݑ_NGY}id"\ۜ 1+qhh ZBН=n,Y0IƙlaK-_HxI"N*QW ޢC?Aa"RkZ1;ԏGK?;<1d[dz+Y$"u]żlҰvimRRo\]GTzO 2ЉFϘLytjl)hF^,OB p?`_|@Lj= cA-JbBu#3J g5RIroGۢ(A4-?%R͑ib{!C9{b;>&Ya1/!uFF}]OI]aIjSp^5;@ڎ(cl|UYH4$(UBJ~]#eAZь A;c~f|;U6z~ )MuDqfc?ɓ3aԇzJmBN 8.y00M>(>heLfmƈ(w!Al؀Dttthxu?zjz`Si3}}H M8 o!_i2l m&Pna3\7KX_ĻOWz8?`K#c3`p0xR.۲Q%S`(AI|?:\xsUQyi-'8X:RԣzHzϋY҂]zꤶ Jp{*VRK@ &.&SPt,kdT S`ʮ"{l[֢ !qD=- f(/s%[ȰiKp"ZZ4c*+]WD};Zl1fT/iڹyvRa7 07lqVu]qAaU."Gcu g6=|`H/ʰa佑Px^1? eRs? k2Mm)Z|M-|8^dዊ14'(h׶ծ\~hTz4&TpDd(Mw vFbܺd|-* :%f4oTd:VS0]tX=I0!מ&:36Xۯ^e̟k|7%Hs we_r/I8j僗[$ȵg͠}6w`*|@7/Fv< =8Z$H46 vr/,`KV]rllxyF Xu8: .J(MNǝ_w+шg Bn-p mz`U^ m.2z~6YO7tF:߳ӊ)Uŷ*AI?Ɗ EM"o$K„i Ue8_44 mjQg: U뙛'7X!`s-Apc|S"9qu `)QFJj&? >2 8.[J'uHذ#t~V ga]o^ZhdjR%ڈbeNU*9?jAէQ]fInl[x/cMG6 -J!U!JɊ;Y} yω;@ElK.g6)gmlџlI].l$ 0f&ym2" ꟺShjtC(*lY_z`]3q8{,iZZaZ]n:h`"Ϩ؋y`Ie]4YLH9t7šX\L &ŝikC:7=/9lMM6ҁ sd1]r_FҺ_PC Yĸ-΂t!(f% 0½~ /$%o37X\JqASe {`0'z1F ^叾n>37[a^eb%%?fphCLmgSΪd.HQhᨮ^knp)"xNXJ 2\jora٫Kt+޲ \/S`Xyqw<F[T5 |rpk_TṈm)$Ep2!:-i8wf`ń5IDu)΢#)C>k$2!Dxqw\`j}`0[F/Dӿh_e,@l3T~/olR@tka_+8o^W4x֍[Bb=@Lj`^Wܖ.N$7W:%x75 rZH;u`͗T?EY I5-˹}pxhFHN5 y4䵒$;o` b_T L?w|9)s n=$L3XA SVRN\aRR3/lV|GduפJAyE?;T'LRTie@ekJ |:M2>T}r}**"*+T` [GѰǜq8l NZ %LrMl9#W=J*`~|[D4rN㈏->O$>ɷ0'Eo8& &prHF8{ T%hk-9y|ĠiRn|݋}"ҵe5;АQߐ9 |Bw.}1]C$ ;6Jj4-D(Hww= ySŇ[yT4M;I%x'zύ U\7`?=Iq_w*S`.vׅF2j˛|d+PݓMO|I s)opeS3ddƶMT@9~Ɋ/Mt8aJW1l>C"lBd 2 I/_9a18Wmʺ>ia|h4^J&bFvsG9{361.&bG  d֨\&DmRW/x!:8mchLܛi>|U78ƍC#1Q u!HK6mm~H_L.FWC"AJب!,C*Ϡ\GYU)Y7b+mJJs}mBFfֱngw?6EYeFP<7J C*E.6XK&1jv e#uzf ;)uPs `rACA=mL|:Je°L㋈k KL:ollr jJm],t2O` &.fЛ$5]bѿ->r gVedRgR=-mޔS9(kT"/4ͭ]w_Gv\} l;z?ϡ'P. Z,mdg%y $ƶW1`NsIQc|_`K98Cp:N #EDeّ,>[R' B+ҹTTXNb#71Z T(l&ϟƾ QR{PU>WC'la1kS$v+RB:yԵ9Cv婨{' ƖYw&O?E@h; |D1>He?Xvn Kb1]:|[jE zb&?ʽH;.6S!UV}6'3''=ܕ nxH+{Kp_j{-fS?aezר@GۡTDN?G4\J@g/#% Vƕ"1y_0jδ˼Iة*w]ŏ0^2Lh@w*kc,~5Nw~HZ+J,X!]&.(cP!ko[99ؘ6#it>`V#ԓ,d~w.*{k}?oYE&t~)bhcL+.[Hi IAPη!z~/HA~ۃǾT<UȆp x{U\kt%P#0ޔdEE.cBqfGf[Wb+`j!w<~T[-ʳkq+)7S[ZzA?5ƖMUV4J~(@MOI42$/&¦(wV)_~!yYlQs=X{g*\hw%`]R= s[<k/;ppO[Wn}#kx\hITW\lq. UaN Ј1QOB:vXݬ)V9ڗ3Ƙr4 'A1]risK65dn^vje KQL]z K9 LRicyzoP"+ f (:]ot@p9NѴ0eHΗf8 @&V-P14 }|&UGN|df;ۏU7__9C*x?u.(aje*wY15A. #Ҽ8="qXAvD!,AZe`rx/FVPʵ,AtU{+llqQo=n{t'rdo6 ߾vzADO%Z";o#(1Vj91;üEfe^0L [%aXHm}{&)+Lt$ 6dLc|XXWBW0&@$=#][ |0 ]q:0NX]r17B+".8C1!lIז\tOscFe$+ ΘF#ss䪂p6v KNœvϝ*V,4GVi[pl=acф ,`/n-R;z-NF, š-N ^HeU/63&[.OM䜬Qhok]ލs"ĿyCBi ?S c)ͼ?3;Fk4 kw4gp,u%UM#VFDM7@//(-G0P. oݲh򶵆]Ѓ%#N$u;zR")k#bH%:^rOzW+'5WU6|R^ziK) ,7|ⱬ40א )|۪BV GW޼]A->R*X$#eaw-Sp=1Hug޲$x,K4N)`t-AQN.0~r @om,^MX)&j°' ,Lw<)F;gB$lh6/9 1W #a⹜;uSc z[If4w&!|DBުC:5F6N 5쀀ҹaFA|&@/ZR]WS,fSs/zW nkPMʮL\yR(⳿,ߍv8Jubb (B5_uKʍ7X7'}k$vɩX8 a7jIRO TLWߛese*}`"2`v :6el6DԖn$ ]gIJc8K#t+\0f~=kS9XqO%f\(?k܄7hE(bjTxXA1eg9(+ n݋/%xnڬIo{] ՒCUā$Ѧq"Wo &Aw%m趲9bXl#AP;tew\Yj6En-bv=X7o"h^"jX@vj}E+f"@l2?TuL:5L)Q~De f8/Ne.hn5Pjށ &n/ggtWfZi!2Vn$h0@o=p2}psMAVӮ ~̅ʏn*q&`Rh~5j t,Gc?H{MPv2=F*xX? hRTѾLAI ~tT=f RZ@W2b]rOޖSh J}SNpzΕ~uWk+mUpGZGj^0dlsJ[YhDŽimR6e66)%eрˣNx7~z͹ώ 8X'q4SNvX%GҋRk.T>\'r}oeăK?˄x$)'CZ6P 쨬ʦܹcMe\lQB8{. w`:`.1Vi(SB6ië{B;͹V N|}ʄ`$.AtB)?z~k0)w )SDurJrنf\_ie"xڻxx"u(ON-i9ŶW;~TLs a qZH^OW%`."TţmIxU?e(:t0H$/3Yg_4/vo.Og7'5_(^)\,uj8G $'_AS]Hf,2ǻkmEgsJ_ Njh~ i&mojRzkB = "r'(T9VnKPI~a;78H@rX<}̠h;F>)`9c-KdGtp9rugM@n죟{Kh=%eP$7RNf'gSwqtvXHWm 9ÙXs@ug){[")o3ơxWW3ar :y/{*08%@6\Ƴ)X#;SWO[{x{K(*?Jid)a-.;a+'I'>D#Ƿy^kG55o" 9 ?!%qE)SB  .@D.PC]fZ Ѫ?O뷧(=]fS79 iee'b$nVHlv4bi6nmM`Dj3{;0sG>V;TM`h{O=31&0{l  +`yp?r$,~q#^ cDfc>e_Dfqi5(KƖ;'JFJsߐzkjyF*ЩI @\f v;d.ȝDg;i>V*>ͪ+["6|E@dOYp@6ʼnR)t`,iԳ{?|stWncJ{D}<&~yupc>.UX[n~^aE.ffⰴһ\hB6,͑:(L.y3%iUGNsl~7vBlƙ Zb V g8`:' klo cA{&P5WDH)ANA9ꃜu]Ki0F;i:S">6)%ETpc9Xu-yz;a9= b"ŏv8 r{'MS}'9ROu&{g] U&MZQbŲ26͢}SFL= WDĵm qPm7u0u?h˴ֆ(B q!l>,.sl7:d]$YMxOA,9ګ_. Tcۣo4j }2:բ%&2:+DSruz8Va`p9 fqchb8yBu艡Wo (J`Ю  <%NUR.Î!z(Œ0$~JFAy2T.Z4m"H l7ؾ}qt+a>}fbcVW蒵gM]M;du@ Z9srN+xSCXE~(X(jS F,KyFh6vg`M덁,yȀ}{odbg& #&VrDUN7QE i ՙʖ e^z9Q$ O?dG$uZUu0|g&H ZN5qU 3Hmuܩr%n(j$(+tʈy|^Mr 6^0G"& G+ֲF0w Ja5x=:dVl-(HFHne%KzOF-nT9?`~ܲdg1Ź0i{I>T ΀+Q:,,Ivm'܁d3=w.*ȏ>ӵTcBAyQAȳ8\-MwgN\ŢIJ7}NV X< mZŻΗtzN.EF{$'1[f$l!;,bwz#B]Y'In>G4)/*8Iq~8@-X,v:U"DVcjÝW:Ey.Tz]\B P:SIS@ )yPyS\#0>7xVF+S\BQ1 6e2YoPq [ $M"LZwX ư3{gjOl՚cWl2*:)B0 R} gre [U  D=k_%3@r+29"o}].)%8݁]A: l%I#FjU?|0y=j]sºZ2=(W.iT 2+"N6ipfPrj`GuhSXO28t6fpn C":0n?ՎQ; mioñ*Ms!O%/x0^&[n;5ΚyB HWvI3ul:4;g\ѷHD/UEN[ m{|.wܩʖLËj˚ ~x'jvjMWcX2Z nzHF#E2s+,KӯKCTc;7r^ٵQdoN~刣Ό( P0M< Фj-/ M)5'6N@06FGA';Q0DPrnx%%4)4|sehYx8]ѝ{HsbB"G~`몑Fj, N*ÖҢ⒡3.WTh)ίtr}\"t,%gT;kiaΒe`)aY"FZnY3ERZQ@W{p/EanȖG6+moM# w݋$Js!^ z M^ 0M8S_Uɥxb$mjCê5T x_pl;2F6Bt5gցP=~+q1̶̩ȏY{uҏU8'lңJ{>!VA0Q_o WcOqT8$6*h{1g<<ה'v.7=4zwoUvjP>[tDBJ r _B5nP߅r4\0%3I!b哼wKZxkՁƫr-a:טr^<94Gjz9LD:F &hO)R[E~GhSw BD N` u, #ͣٯt#}jZNYP.EI%fk 2ţI4akħ,W/$))Fn :|LEoX+={kҨUg2X:g4.SI"@Z fŠ$V<[Dbeۡ?: М6^W꧒1[z\`YQ9t&2y&g#SӼ,Y]_&ԗ"w&4s,ǿ[bmC2";[OBO]toONX?Rw꼫N͝wL:4 mfޢ7وX\ԌK}g2u@f6MCϣH IF2 :m{q̘xaZ^ArRC((涏Ϥ}K߻/ͷd-]J۰àwgV fǐq|5.X?.|%EC-  7#[iH}75Z${~-HStʇ(`dAU`ׇm ;W3DL%*MnD\2~SB0eѢM02| pȺNcN;P/zœ{ ^fTT8j;2 /e"hk'(ЄQ;" :Z>{퇾5F78Pry EA-+,0Z pA8;דW`eNp#cw2jߌoыWJBGq$&ӵmk}EMEL,E)AUP7eC4UGs_'2qXN'!wR&  ymt4^2cz 5OɎInOTm{&v[4'%}9xItH4%EB.SK4 @%$L &6=3#C7ʆ)n#}I~YP]`4C ~ìŎ*+A&Y(nd)&uZ//9NL-*( Xr<]PU9gdO" U8:˞SWZZĒլwbL]Gþ_f-_w\pZ"lO I9D#Bj#et/P_u1~ z.uާԂ[V06RivyN~d**”\d| @_Bɳ a?|İbK,yD}Gvlp\t/)r9g*p_ p ,oαU`E7 NUUG_q< £C7iw@'P:lJl1ce3&8:ReƋzڨì!sG]>yr;JhtR8*sMjVUTyk!^7G.4& z,XH&U*cؚ%|O2י<"gxpP#] $)cI 2":7/ulhPUfйiB|YNx;!rbR|ًE%Q]d . ójNaLkgACԇĵ5☲{I敀8:(]0'%]y.)#uʗ͝&TXA-,vҖ]\XUw8ˈٖ "%ճ#k.iEWCj,:cuw 3F5}o[,8zdc 쭺J{foqMsF9x J*[ ]NXݧ) h[48s=jDc@SKu A>|n:JY#"NHyIX-l9U<9l,1 v__|#VH`r((jE YJ&"(;+k热/|Kz'G7OF'NPyj>r!5kCF\.[ 4a)OeD{^,,ڙ-gW4!> ,f)^q!"0iA?!ג6|u"B  }03ӆڮGᘄت}oi>cTm<_`Y"L=n c10)#m+/|#а)Cn:sG#)>Qb&OtrXd*w*"֍{E 9LXFXzz|; -Wh D \ )#ѮđM͔VM@A(a@*.ٯ [tfӒ՜ bc=R'} aԊ+qA]4@YܿthȖ$ \ude "BR*##; M̵tV*3wD]ۢ-n}܎h@`W̵go@q&} ) m l3 Ja.C\T i4@tb.kgmϊg?K="'XM%tivL]@}4ڼ̉~aB`@4qrT;PF,wJ@S`T{!!LY3U+ mTG} ؜7 /UY BC~a<4 v\tSaY$vX"I~ F4Tu'~Qb^Ez^LJ*SA7m?mi6tdQ^.ylٍ>~Jc僚tf[" -\5gwNn)rw2ԍ"?xJB{@_ PP%ˆR"{=`NaHa6:_`DDxx0~YDHW ޳?sXB*tӥ=rA?k1fnk!yuH8+Ee J͠&'zR321}B孜V=` {Յ}0v@!9Ik¹ZԈKʄמPc;|maM+*4oBu].c'qў13I]?^ۄ 7.A0_fcҀFǧzڜ x)#H}0%(4-pL'DJ8w{bnvJJƾ;2& b Z򸠅'9]wO" O6y)ܪ*Juc)~1TgvNۤВb6@>6Sf4X '(th qR.fՁA!-q)X16̈+Ma8YS^@]IG`}n_s&|ϴ>zF:׫ e5u.'VZ`C+[pRSD_Oyp?I B>1sIO rᅅdsVqGZ|M8r` 7gx AC^"1; |6A$1`/P`~}2A1Qep eq;W o#\a6% D 6o&;fP* 崙;ԊZE:ZK G}m es@_oz6u2Qtl-kl8dRBգiϥ=Gr" bQT,v)2=H=>0iR2cl1 ɛ8&r3O( ܚp*,|x] Yt]:c.)ALEnsz"Xa>P7rh <"їķ[ƿ^[6g+Gh eqwQnKXI,kϔK0 9vAF̿#ree ^}'"Kfh>QK&CpPQ#?zuHEBϲ T*Yn*4HI]'z}pԾy{lZ; eG-ώP{߭0 SKMF* '3NzZE,*G%qe1 òBR`YIU{16PCu-4{,c{m0(:k5o댮X e.$J!?mA ORT.x행2-0ym8q7,^[ɣ*|IT ߞLϬxDP:DО8(.Yr #%ݣf0̟:!xdk}u+_`S [E‹2xotu>MN)ߛT`Lw_($1< -lhԝNdP#@U`Na'A\XAPftv~|u3Qm "?5Ŧ >Ԡ׊wI%=Ɛ&ǕL x7LY$+fR; SK1S>&}O!K|5Y4;~.3#ND0fxT&_qrg&6Kܚq$PB8wgbLi"E/FV~7XC*r+-1[3 좶1DyDnt\dX|EY!ʩBLK6k}VV3)5myz.*$nB/I*1y,Vq#."+[Qx s]HJ!ac WZ'ȳN? I^z\o"H~9; z%ޏiҳmH&' v)=o5*TmzE8]NeoȄYk5؅V* Z D Ԁ+mT|83 3H+IJiZpX5()}aW-Խн񄋡k3mc @z󱏢\ع5:Hg%lGGSYhLn-G3|!:qbՍ@UI;M/ψp hVTqYv_$;k˩ٻzu|0*,>~kb%\fν^}?]$|]Iu(O fD.6Xpm4@ū!k'p02**0buoD{R;aˁoWX$8ܲsSaɣL'BӰvDNu,] |92 `kZdiǙ'i+ tjVr'fʹNgS:潙ywd [0P/U>(yu2<MW޽åQݠDE%7uO%E^CfeUo2y-T43& cԱx'YYxB/K:QSGFȝ/b_B*j#ek04o6{HてJUQ ȯ)C!҇ʥL mEvU\V4sp7u+O~>Y2o&ڗ3 JhXNk:~@Cv*Z(lx)OQp3srK4Hb]zsdh&F!Ayd_=+vo%]֢qptX~lصé>k!Q/tx2 0..FyymD{# _.2.tޞZd|u=r2UqLNPe^LkͧjrA9xwmZLaŎ<0b̵=Ht{,$$0Qsr2t4\MM5olI;= 5~l&ΐIs!raĵJྠҢUTN)Wܳabr=6)f}G.x4赹x'j|}k{Ф#8p#p(%e#tj5 ~"(@:ϊJ89 t'ˇD*_.ҵw P ˄F`y*u|8nu`ۙVC܈LF*9|^qTi;-΃Aۓfkj,pgHZ{] \ )7bt[At Z$ OcTlE}nQy;V)(Emx׶!,J `[I, aQqmbtk(9rZ:M;ヒC1 }/ʆxLQ5w-m6W`7_#n1nA|&j3$ ݀eJ>]̑曇[0Y[MH{Ҳ6PgZoXxp2N'6h!փkLꄆmNJP;M )/ `j se˟̂kBM'eȚٿ.Fsa J!_Oܫcb]#sUY$Z;{-O0k7Ҭm* õ:g,`2s}Q;dӵ$M7xǽ;v Mʘ% 6=H,14 ؃ =L. qxZvϮ`{̈́^ 3{chVc\7='48( }S= eRb9ȱiT9Ckk,SGz#}ږr_|& A l`ٗ-BIe^w'Kw &y'k֍ Dž%}vvY\=|%v>EN0Y)<iľ@*})Y:vX7+%ej[4r<*VoFeWKD֨rTC i ۩ܓ! S~A9G# c!UEo=짛4ѥY3wt^ӑ8 LԚj ]J ) Q8h*u:zeZs>`DtqrI싲54f9NJ¸8luߴ0=K_ U=q}Q/z foTc7;]^yXne2 i.3!PgLr@eIO \ z68u@M38f϶BO@í} '5P:gC }sZ" }9zKۻ6XȌ* ਿTfla jdJMxU dM }{~+Ǩ5"72 nu|ڧ,u?O-4Br0}}`zfƏ(АUKZYtHb Jx R@>'sMkcT\< ćȝN}r#4do| l ?vE$ ad^/h^W$txJC#X PzQX7GzVOޜ~S0:^gl,[҈l >aqDw/Aqrq^n svO߸d{oshiFȰ}(5VOU!02GCܲ/sq㷲kBU>\1I{DОb7IMHR=\zK ndٍAئJB/UawV @YxoMgyTl}xZ񽋸'Zj?oپi=_V %Qϲk3[stQB2ޣ@KwܠӰPl܇+xi:gBX#误R@ ¼~7z A_j]` ˸, (5 : ,- |gL܎֪s-8>$+SqP~c.0nقz_}sAj 9K+Y:j^3#1]`]~ yP34BEC|<tShMyM /yhs̘݇0Od, Vڢn:]aX`O)wPxR^dسPJ#04.Ұ-*Z@oB].6Y7rcN~TʵT8ޟ8Fxj2b3j __" Min862EUup1B{COR~juDI{Wy﷑.n HS&L Y:6c3}VjZM.ir LP9mrxYΣFG%n˒pbuv) p6p@tSpLR>|a1?dn'DZr Bn u<~sg+wn /Ǟxxԕk۞+ I>L?Yi2p㽂L:|=祳B>Ya|c F.!ԈWLk$C;u׬n^S(7;jĒu8ӹ*Nk5FF<4YDg^q ϝ'r,ϖ8`y ^oMIߘ#=)B7ԌZ)}M2ێb}>kQg,w3i=R yͺgď}m=y`?eI jk]yݝ] w*+vG?I̔+Lp| fWA:Ş]Z kb DtG Ms^Z nIuӮ4s(FPPدB7_::ޫ+K'Z3Yit1c]gEi3N6g2Fx8KG~ReUT9*ɸZRlEPavB%B1\ 9k=X^MIhP8&9ߊk^lfhЄɷꇴLh @z.Σ n+Xg\dc-{2@C? K? XoH9DعII ''.`k]<Lp4/f)p-Uzę_ڹm1f=YRaE\0SS r8C/tO '|D(%Hen:utL}sA*)7#DkXU2@q\LڠmuW#&O}*0X=ܴ4* i @gH(@+i4CB?;}bOG5!Y0&E-rx C~~eAp2&XN+lɒ4*lhz2;7!|S{Ń՞O;KmO`}x,o<!}?-WRTU?f4UCAڲpy/wЗhm;t^nN0}g5΄߯bş^5`+=5[\e{g+CA&5,Eh|{``e@?Ǵ'<Xް3>),veo2)Dإ:fvߪ+GZ4'ϼ֔V.= xDOx(2\!mNXXpCɑH_1䆚!˱+]|5}dR ʭ=9O)1L¥`ʓi:wu *-WȜyǹ]}31o4 wXHAD +mc8Pᄄßk[ؽI{H).we}ߦ*es\c;< 5ZΛ ^y"U}c-+*Ǝ90j$RxCjibdfaFK =_ "%-~Ho Cʲ'1 *x|7Y ;"x`$/3ٵSq-K oRRm?9ϷV0u_`wwTpS[#?yهɒ@>n^|% x4*MWYGx`%y~sFj+6o?s3Q~R V'RӉ݆*yb1~kyxt:E3+T :g(j_\ ͧdZƃ+zwQisltJwip ۹ZV_HV!0`O7#"wZi뤩Fϼ?r!8G D}\h ̥.4z@xQ i <]=sUVJZ[I˜*pӧ?mLan<M&S )n?Ra G<!%-}TVr P]cBةOԽ-6kmMS/2>*(²&˴@pݱ)#4#3qnG!{x#S( c0E tUu\RUJF$}\1-eA e\EV͇F {Y_؈1| %,2yU `.(JT".O?eͅ Ԛ t_ rp1k52,LM\c*ߦ=fe҆<:q"TbJd먳_)$4.9=_*چͼ{G61JaEAArĩ*捋J"j+?gCY7?dK_Xh#e0ZZM0@oԀ,Azs=;6H@߆; w0KsJ{x+{P.VSе;!Hx^x4 64 FB+>Eufi)LE7_= z!{ET5~3"2/#36>d")ZZ RI^PY:%k$ۨa>o@Uj<_U5vB┞M >=I+A!=@R^ 9nmM'kۀ d@/ lW0kgIRKEN-P{ucbb>KT468Sd?'~;X9(E\avCީ)nNb򔵩#4ʒӶҲG0q<=>:W '4*H@ﬨ<8xGI54y)Rks:;Ι௙hU *p~RE{+ Ac.8w^D ][ukŖgP㋏o'NvuXrF5jL BP;"qǔMu)X 6fDDD] 4-Jڂ85C;Sڌ+mu3he2h'6xYLԕЍ ࢥh<>{gi, 5d |7g`xS)fRߥ t`8Eg}N~#% 8$P)9ٽ1sJwRҪ y}?3$yR-6%#jh&)*AMK.Oc,t* MĶb!7&^bsKt 3xՊ훟25[l1TIq;GìL<+( ^2|E6󙘪C+&N#GFڠ<u}L u%z ټv:m>f8\x؜s9F!{&1i/Bs9ۀfN3ǝv-@$<larhˋ80-ѩzXFъKp4t?'*?emX:һ"lK" b+S-QەyW[EbY-X֔9)yhdw S&A+X4:{dQ.[``:k*\gJ^*k 1yIC3G ~0-LԄ󩤨Kc76 rKq?a8-HB ҅7cHyHuْM^st\kEzs)@QI*!ꨵ׃6ޒy>2w>I_ =x4Hͳ6Ԓae,0RhDgstxY>G9-]c]=k"!61Эc1T$ò\0Zv^ZRaOE-I1DAQ9 z_n)o#,vnj@nT`z3:51W 5XiI >eGggޏ:z^'@w_jnH<=3'yB캃wƹ*S:PdΜ?Z=0|2DN9?BTbc6ʈ5`~¯E!G*9BF?m\/!3? D4HqЄղDfC!VBh#*sK_yͫn|;=؄K3\64gZsP`N^ ) mɶKfܺIbDw["B YI0h.ǪuS9ɩқq:RBLQH.)bQ s* 0 xOYIx"L G(#"x0}t2R(@Uh?¤csNFc On;y*+^'i wHٟW5j%H)d}Uwq08]=6!Q/6 12v W>W܄`Ov:rUFViRRPݪ].MS!aH˞h!]mI:oO麆+גㇸ̧ViٱLC -+U 7fnƍ,ú h {$<d`_@"FMSqqB `JLS.A2xHtK8dm<.hvyAoJw <5po8I65%þ󫋮5g\ca1ZS.q,Ǎ:%tHP7[:5cfۧŬe DLb&;M8Qܜat-cz9>!$1cവNR4LJSJB x!|>rԭyb.|޷q-Jͪ[.SxOO?| 1WG^BDJRlH[bHbÂ4~) ]ۊUyŅ0H3EUZ53ȩ h,/}d-蛇"BG0)굧6q\ qbƟI`Ld= 3Q0e[e2:=eڨoPLv|bg5~V%f>͏Eǰky2=CzΨk35LpS1'[4Í#jFto+k\U0*%X2tAa?L?Y _?-)R!<05tmWJT ĭIXnGp,A@j̼Ɋ (0L6}!e 6܆Kma2kuvpڟo0/B|n9hoĕ+CYIM(t* '4Odݹݘ O2p|`(5pC.Cr+<7ci ʐ;fPi;b/%DoX\^>"B*Jt5bIBWnOK,M(Rnk{<=ሞ^RoӨ́S)F;$}8WXk@ /ʵ] fY9<Ҹ fVi۔H}SKDn+ת&0XI Vk\ԭg$H[Fh\?vGx*k\_h`SA9_}Pa.GLlfU֋e Fձ~0xn2vOx̚pTa(|]ňL[ڶw|\^ᵜS>@ ~n^w2 /KTLOPkQHʰ %zYK?@>Y";V4y+9rL}-r7bi _{0jhD a9_O84K鲍a'T ܑKcrsNzLˆCldreeͤ\3ZP_G(skzcdpe4 P})љCƢc{Fן[ ;"78dq,z$V+VڙwrTM 3ު^%aBgIt|N.kšD!z0 rK-7Xr #ȎwkCU9~ 3=w$IeI3UzhmK@]DX}5q`Otd҇ɣ8*h,1:vsg.`5VٝN(ܵD z=\\ MA`[%Iz<'4 q ~t Pˇ:Lwuv,E@^nT=xae!DpLe0vɣi.dG:߃ħ rqǤ3qzrz6I6%"lIz4!qiBGгrtqŹsȡ&XO)aE\~I7m8CGq@Cm/aNc'*Gm**kP\(gLGl}VRJUoQi a(|:aKsY m ](">1k!IMc4үk*S9P,mM]J7!4i]w?QbU&џSG4QI*yc箼\9Jbgx kA/H.[``\ux =|$|{E%R*5\ o9%v92ǟX'=fM"3gw)H rÉΑX>WfkR $,E?"s-VV4XIw6dCܟ2tɪ5m4+^)o:Bu9HI)EoY 2jA:&N!ZQD&Dɘ:;SUrE^M^AXbi{ה*6r{B#"Apzn|WhĚ{F%8Hes׶z^`-%EOcXwf~XѸ=X#>^ImQc@S /^0S{Ti,oǪ ԹLք6&@ |£r7@z|xg1 Q"v-Wdca-TO;,uC`;4d,vok=\S(<"C7&Kª3HR 鍵NC_>%ŸRN1 ķkpnRNjaw|`7p7$f*.2reԹ:3Ag&ZB~QʁFOnd]@ xޥXn-RVy2 L[WrA~LV+ Q_Ua4E'^̹2IܦmLxG_|m^j~Tҵ=jPYJ !qϧ}"(7 0b"?3E ==;^Dc%LHɢ@O~s#(S%\?2vy*lH_\flE_ˎp=Y4a N `csz}|߰YVjcL IJPe~Ȳ|l5kT<3@lmgaz512mSM8!P@6$C5] Z l4-T^昩8Jxc KhG^L'|+H3d;ɺ."V %uVo/,‘O2rRn9k6ۉhE2F3|:|k%}d:-CCh㚘=EXs O-d]iE0X_6늙>RaY lTAL|_iJǠ!ڧ ǿgb c:j(p?Laf?˲+@H~h{鬘 gn0 OƓm(% :yWc~bWQplGx#lKDV\ENwM?\RIoyiױ<>D! A,[ZY15Ki'6(44WDa+=buᣔEųAat!ۏK&3Ўvȷ2xE5dX7B4Z3be`ۙ416ܗ 02W-j kf{+/k+w~i zGm(G i#=VKջ.˻܍GY"nG ІbRq`~;pe b]#\]z}y5)&E]?G*4C%@ -9c ['5$ճ !469%3ͼzgJ2%$A-il4`dx:qgǦVLw:h>%;p~乥t*MU3eT+EəppEĦ)˄8yV /ׇE#F=jS]oֶl7Ӏ#8a3?:ء!1l1AO|˄#`\NIմ7« +av'* G8y9x[Flb BD2sZB6j }^䖴q[XwC{cIX~R#Z?[MYdi_SxiY95ŗ=;Ozf9e0fYVz<04a3%g# gtd~26Iq[P'@G\lgҴm5K~%vL}e Z[{tYfbm"n}m$J+ES SDv̔% ^y>m*;Cm"~;^^*"XLvC!ӕˮE!AP@hFqyC(bfr1xAwlZ7{9[`ǣ)< ڑ״3쥡f*漑!TjQv){SL`Q2 ՁKV* _9[&Ŷ2!vj_ 8y2$EON3{A? {xUT;W݈ ^ uJGƬ r$y–yѧQ 89 J8kOa3lͰ'6.cM@0 TO&U,a/nLD~vHhsvhL%n .}HW&E*ֽ\[Nj;9+ֱT'pZJ-938?'>t#-Rܧ+^u@jMQ]ܴTF CeGm.;h5HGJ~]#[;Gnc;6N \8ijmVXJҌ&ts!7`F|o%v;|^nD:ƓC+W_e5y`<A_-JͳN=ַ2n5 $=W[Y[6+T,@͸v)}}â >#٪@yt|plde0J_G AFOҥ 9 L~#C-91օ~+`PFqIܛ0;,7B< ÿ ̩/ SbPZ>hםT#0ͥhYùy_ b+uH)ž$)XglX3-~、.TآPFNC*6u#h>Bqd f sK'mmX*KXN&m|k%Ŷï9Jjgҗ-cc[_>Z9%`ncP&?"y|_ cCDHi9^e&I'=n9͆^Ab?$Sٝ=~ܞ"-Upy$?f]ަ묷դc‡0h6qᫎ-z2w$|l6cl"U)ɩ.ǭI$ .^}NDaSv&[ΏļA%tE\g]XO6GBXә2Xd% j0.[ŗ]k81s`cc .9 3m@\ H]1sG~9+%ο۳VkҳͰu{䝷8Bq÷2J?)8kB"D>˿K:b6[`Kc6;3E]%+Oғ9b<[ir*O&ejMbX|"Ȟrpȷ.RpyK*HP13ԄthڻaZ{#{||՟ìB#<8snp.-czݰib8a bʱ%aP `obBoz@\ɪm #SMz@:jd-Ff Od. Pq٣MK:ReylޟG5Hlueۑ3=%0D v~\&I (bXm(o3~AۄCe'!*pGsnPN;i{u* ;\hGl \S4#p4a^UyQ5$8@z}qMD(%q?Ι9Y,%嶇V_{H/3 wmΓh f}l  kԵ$ gJ$&v!.|2W"M6IfK}zKx?'##~Td us#[S747ƎPٳG:ՊNWP>wcRZ7%.GtrMGd' iyN2aO#8VmH-dKƍ{E칾ham<>K-i$h+\I8d_]SҡQ) ,pŕsWaI4[˸qj9?泶hRE^ Oo4̬!:BCw i7~pm{ȫ3cFFF'L=ϟ[}4s §\p!!-9!xh 6F䎍|Qyj 1ͱE6̬Z|KohN2WEFAUȁ NrvnڵS%i*6\Dsu,=103k3ڭ|\+T'$T3@POYqJJ2oǟLdy95Rw:;=lRA] LW?j{YbΣ[5Cq Cy8SLD&Lp_B=k]QQzzo&j{EPӅ෱%q0TOfeb_ Sws^Fo/a_1Ѡ̸LccGŲKu9Fo}%,bs"Qb[ +hUta#+.3+LC!Y`|w t5)]@hQ3m0 *}PLq斍A6~E4$[A&57 OQ&cШJ ZMs[XxE*=p?1HFfEɈYYD VT#Aem Xᖧ*X}vϱ%.6&ϗRҎQ dЪRښ < ̎ï~Uڽ @Ѻw"\Mo7pI9_0S;"gHC Ƴy;c?(N+)]nݒj)^*`[r"0<:Cx{% ºG/F5g6I[P0t(hm0<; nc@W"Cq].,:4Q 'g2KQW{p@rlrw !#)}B=$b5StԳ4jU>7J6֚EXa)1/%)6ʑ/Vrm땣U EЦ]Pb 3WuY7>d>*4$ T^Qz>J ;%,AaPyM ގ[=6\)Yq1?:;BzI]̆yXGN"4H$^j:u_,yRoрĠZ&o"em چ˲ܼ{U75'֫l0̇e>}꺅yf$zeFў ]vB؛tCܜi]ȔL٫s,s((cYQI.!:Uo=Z疪exX>;|"F{VwW0=>G,i9)J3buf祽j/"INED^_ /HB\Yi0^m> & >5sc=x?,(se0 ! -@< YyLpM"|imCس P5ʾ^"ET!C•mCwz !ƨG!xc,uV?Y `O:ꆑ e=K]'aYW e4k?zEQ@L%\C*Geꅿ0{qBhmli$Ÿ@i' OvDRu~Έ3I~ d܈jj@n̽s\j.%!G? g*ln{J#haPsX*jPYQYׂt'}OV0k`CvO 4ic'H}󞮙z[%Wg("(jh߆G~TF3wqnL~8wF 2 ľ^4EbI̼4؎cOS\bFBA\Wq5ޏa#_?0dIE#`ܥvbpY.8qnURFƫ$Uq (E0~8dnJeiOj.SGdžMq]2>B.t0==&=q>< (]\2{`k@^m `7E,ëSfBd_@^Ak3L#b*kOs&QT{®:th,f|S)rsCWiFty{lTK |, F [Y <*8G=׹_x[R2fIA| e*aMRuVpH7 o>7Ja(T\fqu? {Ht:벖K麦 .}|pZ+$ a{X 0-Pu^Qwj 㪉\|^w ["SHjɢ0RT~?;с@1$R1 Q)@=ERU{˟;H/wNO-Lӎ(>_?ܗ/ׅ&i6nߋ'UnrR뚟 DlʦUΕU_?ƠB@#vU1|19ޅqV u<U´I_կ#ʃ`$6s=g+>HC n5L҆x N#pV&06Ƭ!bB![Xh8=zSO=1L&[+k<<Y͡5ø\D.}v;HS` h@5KAmЛ K4 XMɲQJDt\sN.{{SG(7vô8CYȼ]FH Fe19a--F*K Mq{aadpj[Tp$C4vMX:PRƂm#1C_3Y"_*RHW,B\һȷD6aQ0ݭ*FWCzrX5ȎTdvY0@0dxVϙBSWj Q`pN3ڢUD2Q2B\CTt*tݮ(/ !{ kAr5ױ`g\8<_J%*J]bKm#tkWqXlL,pk^;jPR|zeъ `UӒ7䷆}t#~۹Ѐu]r7C(\'~}/ F{Z =~ 1` -(rh n/"x T6TW삮W2.cbiYTpiU bԉhu['tp܈ֽ;;i:cRR<#T-6WQke͆WٜfaN/vUg[Rq) Y»l!y2GWD0'/;A aaiH-8AK~ |#T!enj*2HY3Y)-ԤinfI7P"%xw|d99 /&'.ɴ(s):eyF_/ 7do VWG&蕣y!cY1=RS, A12OB{kUUi4 n:xzERɾn{Q:+qUcBwcx~|P*M3u,) z=Z^-@GJwZUSNTxݮ -7щh6H)Dfy_D(⸖.Q}8SKUQ MMaS/t*QϞ\1( >dtVK4ػr˓Ʃ4xB{tmlCѼb;7<8~1#|\UY@tlzu#YX̹w:rlZ*Rf5hWF:xqB'/,j7:-Le) >_e 6q9RM?pX pcu1聯0[?ZxAoZ \gdX0tJ\n%^)~^E9&|3U! W(p]5Q,Z1l L1-7p$`(QV < ;*YQ&lbșk3q{]z}]U=&GfKX-ua*y"C/qE\U|.(^4S#e.HFM?LPbԪ!U3QoNӪ-TK|'CVS+:X8m+oF0gM0_/;G7̈́c&;FcTp?oWWtUge^Sp~Hc hObR>a.$u .$p9B=,3v2M Sjzh *+< &GcM v4t5=U:ΎӦ݈yY<S B˖s7<;{nSv]+oxl?fށ&+=9f ¢ͻ95blb]4̝{W+lr(\w|M |qDx1ج3ʲ8!mY̸U>E꪿2hcad¸+V1[ 9P@@Ykn;1Ή0t.Lߗ Z!8Bm1r'u ?jٔ+U&*:'JVR>Byh˃Iuᤞ8[ r(99˻N4p2ɂ6p>J5;}3b/]I8:ෑ'}+Anga %Ob.^L)*,̖JpYO7DEӛD ~O^Bzd҉={\(t!/zuޓ*~xAۄqo]YWP3>[pMdm`V>)yݓ2񧰪y蛢DT٤&26 "D[L^ Kyr넆1h '{<=*@B'[ģ^2CHc 9)K'2QZTdL:>:}c> LE6\ARhZEIɋ?b?M^d_v LѺ \X=3bQ)%B,Rg7o(@෎%.Usg )~ DwMe~nCY '8@3y&$a06\ȫQ1+^/"My#Ya˲7ne@47 8c%RՕ Jn'I-΂xbG'8Gi/IE}vi &t57g ^U`Ǯl gpE:C{oYk+2"n%ay5|1jɫd(fIP|>5=gQ v$El;܊Am.-`(YNf?鱀4agY_BEe i!\Q3G{wgRc+/HռBtErB8җp{XK"eN.I3Yq0h`F@g ^E|~ߦ~MB]7o;M3\ *Zبy}WdOC'bA/x#~F ʆv}z{u6ȸ$➫0AO?*&,I9t% K&ڛ&"njR<^gC8|gfEg.=Rt p4%hsCQϴ9Ag Q͊wvJDR&RnلZ+g,?e Nt|cތ.N7Ձdg}+oVXHTP@bF%;:hZ"q%6#}$kgB*&?žAKLt/R7c^{ړsP<f 8]TBŸ P5cޤqV(e yj&IAvt6 ?hںI& f81Wha2.iHF2QmfQsAЮHYwp&O.e ^Ȇ<=65q9J=>h@jTp [ 7ՉcqJ0^(GVZC/QQCz}opRj'2ju%ݚkѼ;́T|R$+ܟboD-6W_j`P%4gяK[Be[?iL3ʚrt`,s]pZ`(¯p*-qV 9&"7BFŇaJpΥ8*p̹(sC縂T$9e+ F)N?9,52ӕ3ӘO0Yv iv`X'`P /f֤HV%aM6$#[%(gs~N7 څ?}YQ*kVjӥCx.J2: ˼lTVa}}ݞaCn=e~Ɂy]@?>)1$ 9CqO MY$ lTщ,,3A+䨣 )`ztDIFZL -sfmrEbC]rZZE 9s$T#3}j h* g }sڊF8/~C#fTÅy[{4!E Xmqiǹ?javQ?[5O<_FCy^>ߚ![nj՛-ze {‡X2땇&ܙyeh –S(lٯͽHe*YDPjtt UQEwukz#Xc# 쥍lfrSAa[7\ehC x"9pFeM\Fp_xi"%9i 1 Ѿԭ[`෩~l8<ɵA&@e^16uBSjB'HC;hGocj-| i db`䬤^_:`:{^ڙ0q`CzJ; fت8GېD_W?zW!Wl/f5c!Ϟpea*O8rN%ݡaM[9a:V4|HPhN{=yTrFzӰVZEP6wĩ7Nk(ラ)FfI'=/^q3*n & -y`˩nE7|Bq#`v17߼d)Ҵǁ,f'iu"4#maЎQo 4aٛY]jcuke [aW^ Dz$K3ȸ1raB^ɲ/)C ja/ w(Ŭ^ rW$D0Zɭ+<$aϕjug`jY'ᔳP*|\KYam+y֠V&I&;gД1n&L/~oKxAT%eoA~cxe(aя+iho]I/(0]rk1 k%l-eMN=)ue-ŌRA" Onͭ8|@w2)3:{mLXR|ptῊ8r{͊Rg{.)ywHTy@L9cf3!6Z-.Bwdv>tx\dj>u^I>7^ #r/heTrFY)xJ乼Ww +7SMS/3̈́TZ$޻}0lU`s'tp I2ITsV@N v#.+О<$ڏre`11wKH y E;XI0 R\s H(js=ZscGykeZCY:?VS=Xln\:Nn%GTv!=ًcMIhh6۞ u8[i3]E'Zո~%E3.)~jwg;"|Fayb?GiϚoE<"݀wFٖcq EOm҂_J4zK1~t4{\Y?&rqgL'Z)cJC#h[. *6K [wMn=k(CtDLy4R(nUNJA 9>C 771_7Eߺf=FsDҚ S* ,,("QgfȽgr4T9,qm=Ud|`E8}CiLsV_#Sx  Lc\05 W!%#GsoUhؠcowT ǫgzWArjr@{@g'u}: Xx ,}E%웓3U0mޏCMPJ5ZⓓCz{ۧ9Y)EVw%R?:fo*{?x>9G+.ž[P<cwl([)K-& SQ@Z{ӵKWهЗ7n rcWβmd؂\xqĒ7_rZOVo^7: ai?wjxɼu=@G]+K' as{XGhFkUi 坞\ImrW0>Udtt8Lz67M8+&~pWqP#+xC-> QV]9Kx_[f +ʷCbp[4Fh))9t2Z !XH[fnyShezTfchwTe4s>…Ai+ܦy%'O/l茪{K~ `:%͍QIL(29M}7AP!۫YyM1f@QEGbxƑdSG*P;`rVŜ>8DF;E<0C Z ) WkvT mY᥽h𼖒®L/6xYM(iG- grirJD=K p)_VHn>-W;9@9j໫C~ڍjJS<v>,@;y-P sok [ɫW;DR8C7-yO&=0 MG /P sc$GCX%EMPppq(6i[IZ`DjBHIn i$ֺ:AjU[9$~0% XoYYb  @VLhK4|n!̢+I~E9),VX0 GjπؔO2ApN(Mг{ *|½HuP k{ۖO=[X?xJ&3ERS&KwbL7,l5pF;N X2a5tρ)Mvmz* @S4&ף )-nFK_3Z'm^qh̩L\,AHsf^IY[A^}eצ8F{B;>53>"3DivBn MF[?~F6,m[ 4gυYiJcz?]ZJM"1vD(N"Jcc덴"s˘;3vgF/"4+BLNy?^p@OTҜ$#(~׶u'yg$l rYFWƠO#h 9M>$=%f_o&a 4Ѣj,W$h8ە}aDY 2{0?.eݭ} 0DݵԥBh NJHNw"Tv%GIخe\<@poDpgVE53_5ݜT_&I0l-{Zt9B7"8Q,W_dm,.YW*ݹb7r>em)hԸBpamkpm|I39nCXj-Z͏cK7HrیH4o Yi9@? E*V?Y,,i!Fdf\ ת)AÏ6H41Azy{&+!}=NVwNcIQ[Tol$=҈*n9ŕhm $񋔮7>X\U]~{7o+VD`jq=MA .E k$wOG\eE6uE@[7"ԝ3س_QUmO=\f]BCh($WfK>h8*bu(/TߨAIlQ]BgQI/fħSWBѾXڜͩIر5 ABFҰ ;28Z/SR͋Ϙ' 8q:-|:Wׇ֩T%Ү%" /0cN>HNxUdSQU+-@CUZT7?Iw]a+Gg=׾>ik3H(!q @9L1f䵱H\_]cӥug+!CAp壈.j4F\hö2YJMHMĖq$HdY4G%mfG'܀?n +D#6:at L,R^_Tf$o^\|AH׉8Z4‘gOKvxwX1JP*W_X3zپǐΞʜH/@K4NReR ܅R)nʾwJ# W) W \QZE(FfyHaOpbB5g]= [3v%=/m 0{\oFո ENW>BZ˔hK Qv|nMMMطڏ*չ] ;@;6= 2(l >FေB*gF9ZnW})邜跁1hIf smr\덋}[룸7}>tX]",N7 ~P:VW2v@f~ W |sF`]w[Rlм%oY[L}eHFarA^rJL8\aЖ"G9^0DޡA dm?HH[RU@A 'rEk <ԃ/iL5e~+3:Sؔ~Cn G^;]iaE)J41 Z^~9Z=N)W '7l3͆KC2#gErQ4̇Q'uGQ fFXʄUu-5b>I[QakC}nm{ *7(,t8WGSꚹM3Uo.f ^p }ќ=G(뢺+p͵.T5%eLƣLDphG)V7$45j۟}7ozl,_ʑ벣c"3<ڙ^<}HInKL" 3r )uVW+!J<lAsC=_=sD'2fܞJܵqT2`i@rNWؑѶI?l ݝM^rA-6̻Hpdb$Q8@?@`R7,_]8RgдqX 1G^qj2p&VC#;B p4ogh+y:U[Y"LEx;Gly~`ۤ0F|w+PͦTWhlr^e5ef$zП%t?_ˤy̭AxhLy\?Rއ@t>|v I "Oj 9PB%9%qV\mK:0?1QKtYC,m2 LHW/*je=qKLcO!\>m'1~k)PbR Y 0'ԪT& D;q7_$r#$uTmFRs\: w<+NXpdB꾛1Ό;1%&4[Ǡ 68o)OWl[1~{Y$BqQ\X%)( Zڨ.Lٿ;;uC2/eQCsQ㫜%KU<e(/!t IXJ+Nf`;TÊ0h L QY4 Z a(V}P^w6Ƃ.H7@nxܡ /{}v6|tz˲RF H2,ۋ]`iC3鍢Ї1huwOKu;lLy"y3'Z~ݵpv !u}Gf{.;v]Dmx߲KZK&[nuwLc"SEcD+߼xhѬ!D4~+L_w?aIF!uxI؉ (FkU_c)$EFH/LYC)'lञ`*VGUL'=mj![_X-zik:Jme ~b2vD>"`ew}2DtA33ECb?"ңs0Rs=f윩8Ebb\pC2 1:^7aנ]fP2#a{9ږxkB-hFe9?| I$*ig}d5/G4_ѕD;cMv :C)(6Ck=MD4 Ujiq#E#d,rD׋+5_H{860*!$wſr?L7PEN$/L.f^byM_Tt H ]^Z?^6N%'g# =Ÿ:&9!|95YߟrA |ID7 (/eVw&#.׷ԃ5kX7Ẏ0ҽc4'mQ0Dy9\x%I:$7@ Ae6!A ^LZ,B+yjpy҇.S 5Ewl0ZhO&A!6}-?XWgໝEto0,>ȑyd$Ȁwss6ea: x9Ati*$`龞7 :D?%:HREvk/:^EB EkrM"zJ_1 ayoLbpWg@3kCzLMZx7 bZ]􍍙w=) ib;HAc_8n*ưDӹjJDw$ǵ:Y\ TKГS a(< JD`ߊf 1q80fYq8_^:e"5iO}ϝ E(ObR~_=JS ezm=U.o? ' StIʊB&E  ?RM(;..2he?mRք|ow֯Mw a6~"e&M~ޮAaMvXRU%۹ji{dMj<7W4a*BSyG)K ARءiqcg2$ u"c`@ݏVT3}o<)"0Z|[%X୔˶"1aL0.>sF :gB$oBd;;G-,sXOva CK2Gk%% C,IK7 !iOx5JIgc>E43EHa$/>襰.6awj8 0+;v9k B@g _[nAua r`/׷Ngi0̑OeUEW[$yxbCs \e+~T1V?oW[G2hLXuu Gk#) 0Ơ>:`t,Cs% Jw08 8#Hp%ڻrN&T4v((||iT*xIs,+z|wt Xրy"&֟s.9"|]ʯG@j _̡.;v*yr2Ues/j!AG0A='ZXS~$g\B UzEuI?'ν訰J1Eϯ )^k̦wĝP:(SA ,N(h W g. Mg}yM%#|xWQ>7j*vgS"_zN\1ngMDC[EE# Εk` ,LF)'+[Ul"7ugu9|Oyg69p>KXȸ>4+E2\O?BԽHn\?3~pT9w$NVus`*MDd xY5TJoܖ %:"Qņ?yG5F(Cyl姨;&X $Bvߞ\ϟʼn:BNh1d6QHBH$W׺e;S0ql ]^߸ S >Uzv1d-Q(u&b1CN9^q2|Dc/, xwxvM!iHu+O{s;1]#C2T~ kή/?軮!/Jc%|[?+ #ϔgRHiw 'Pr#XS7_Pg/m{wZuL^'Txֆ+u$J%a`HMZ>MLFBlQ* E;:f׊sxr":~[K Cp0Щ6s#  7Gi]lLG ˱n0]O)Jp=2ጡOڂ`]KO=^OX.jW$A:)'D:Gx$4e[S nHL0 g@g֦bJZ9;Ĉbws׷9 4o&9j0*6iou?S.P&S2 iqFZ{4-5ղ*k}mF&'&VQ^_!|Cl, r^]Eh!Z?MԼ}Qk#۲֤7m"HGzFRWy](a6cs\"XE[ióSz4ƫ=22y65r -*Z d~Y5}/Vg)h İ*=Āl,v7 ?RM.A H" J#h_R՗m*.Hu^Ogwg=pR!KVX>4Jnw'Eh#2">ޅ+Xt 0}72&ŎCExe41m c)Akw,Ki}A+.Q/ 1JSBvJYeAztiP4APkپyEN48`uS N}3K} Q#%Ъ"4X!zx/7}c++Pk)5 u,ylK h0, 邶 pQ=#l!L 4MbylҩXU34rwE!KkmA uz^K:ј"\ 0M ܨsu2 zDunjNg; Y::UѶ8XyN Zk%}. @=yq}hW ;6hii´o-u)ܤM~1>t#1 '*dZ1gg6Tt}`7TBI-sm"BªX E0m``:c5Fcg.ӈ_GޤfC7̍P+`+[P#,lsS1su(:> Z5"q̺xU%Ÿ>y[h,<hh?Ӣ=_iA_P3) yZ!q]dk]G }hwo1ϳpZoxC eq+f`dKa˧3v,i _2==iQP^bH@yգ ꌪeN!#C<̏L>p*} O$yK_FD*Ksw`W6 qp |,R}%U1!&Oy2oajMHLTy;Em&=R1z>CNB/#TYm`MOboY[aڛ%@ЦϑiWU&Nj\7t%* @ܹZ1EphU8__Ņ'\CcEe]W1D1r:C79**"O/~=WҴc=]\Τfji9{qIt ]TPcEꙩL8D&e]xe4њa%gkz4BV3`8dͧ %}=ݴE =<,J`Ey,ʵht \TmaDI;\ Jzrz;ׯiKe4t&]ng4szAL)M<9|#Zhʿ'pts qj%XE>Z&KL܈cIͽպH_*3CDl(0@Ӛ-ɨ3߄ Uba//0A/K~TZf%r_Z}Ώp9}44!vd>){k)Wk[ .@מStP50>rYQSXM]oei6@u L6-7C/J~p$#6ԛ粦ҳG.ARj-d-Jk: ^o{]BoWk⿥V5?-֧_*0Xݧ! 8_"l҆Fʡr H`Ѽo;èIVu3 iaz"-álSdž.\d&V_4bꪲ8AMIQJ=62?8p `uM9I1\̉Wd39R\s/yJ` mYƒH&f./3bDA'wiI^N;V̗5""[b3mMfvB$sٙ )CT}BD͹R5+dBmV9LC 9IE+/'oŭ1/0. SQ(<pE54ȵX[V ̵ھoT&;BvPC཯b-1r ށ+))%;'>/_#ȞkjnULpq5W`1>Ƥ)l=W1^VF1:2ˋL^v$Z/# fVh9 #([$%B #%OmӡR6 Tu P1 T2#Wf%kR`G+xL|FӾ?ClIVOH:W_,Wگi-"@4r8k n0KHSVb#|hΨV5m#b-&Y !-/۶'a^_xd .A5 /k,yȝw9MV`@yVKɤte MK:w{՛E4. nqy#~A_>:w!I%@B'vGDG謑NPI=sNNۊVV ߆8R}uv- >ٟ)āaHo5Q1|q,h2뚃S ˄,Q'^Rڕ]"ioy(adsYGmV9hvB},aEZ9Ld -{̫e(e dƵ?'%j3N/ ?'w&>葍ɝ `tG5nХI{,<\ ^31dR<իw ggoqr>WDq9lt'I]E%c"U9H፬xI^#ѷMׇ'aSe\i;̾`HX$SdRb8 )U-% ^=ԟV 2?uf?[[ann4 O}o`OگftUG;흷f80 240٪OF~nTA l QJ#e8&0 ^aO#K6cw^ċdmKI6̷/2/3gƞk{/MCۢ2Ccb ]:s>!,!YYOS탫5E}%{׺Mէ筋`ecnMP'Kmp V:ʝ| 2,"j}=Iu*f#k*5WWI92Q 8g'AٓhW _-JtM]4zbe ,L"_,m5 ab;9d[3q3pLɛLJaiˑ-b`hl/J yunͧKٞ/;`Vޓ:lW"r IRhu-kw)H(hTۤb/7I ldqh}&(#Ync:aop 5qi^9=(E#T?`DIwn_ \n'H9̙E;WTn;m,h9>c7hNb0jAF\.8:}{Ǭ}_F8y AHTx Пi'Gz@KI`$hʽ 쳷Ov\LNc.Dq0D0~߲gxNY(E²SuZ o5wf;HAKԴy\7N&29̐Mڿ8rҌ g°FAquPGv^5&D2^n`@ޮ+gr4W}ukY T=3sϣ`Pc[tD͕ճ ,b7Yc&N7YK~z q,OӋ,P,A_odA'jk% Cᅱ'{\ 3=ی#R~I(F%wT2~3=\y8jR֥O ){gcMq qnY4Ol)7S4fY:;ŢwW Lhf+ 뵲 7)ၲ60_\<<+WI s^J,K7ZD#ٜ9WlBkhn.sb\YMU m9Jc2>&?S'MYeSF^y 3Re护]8>edeӥ76 rN,AjZ=a*8+[fs+@3D(IMbUmS6a1#1I7r-zBE C 0䡍_?EكcV,hQ04+Xt9D3V/rvup=m%OP_Br2`[ml kZy=Lrj p )$$"|Z=/!6f6K 붋uӎFE~ؘfGj+FYrHVr>F]P%" FW'SZ~gB_% W4-2nѿ楬\bwGj:B Y]>"W'´JsțcjrHs{@X,V&ϩSjg՝U o>c@ wj2=DFu:%ַ@PԱ^{BI"C~DEyh =N-E±үUU@YC6a*( +nխ7]vd ?H[FdS \Ox(y}>%y_=VJGt-~yI5cRRUP|j;ʩs-5~{>TWuw݇Q %[ޕ0B $&q^|=J*RK婲yr9|"Ij$`s@Lbzj=n=i~;}4 / ݂+$f9 k%7.o&8j!J*)B.R@;Tls!;=F~ۑq>Ú<vn.4y/M4(ֻLqbse R{SN)(,\mȏW^.Y3=òaD!˂˯VpdnE@i=87Ed8}2]?TtMݺ %/W%Fd(?e :\9n#`~Tɘï?lBKOھ& }JՁ R<=`EoF|dUJW»$E0,jk_x<pIXS#\AC<3iD?^~L}S U&M}l;&n՟N:j3L XBVSEm\hu֚Mh懺4Q,_rm FRUSlXwK~pjd;Sth[~`?K 6IkKrw[\%#ʳ:Bku:6o~‘LFE_C:Z#)V6 lWwOtk?AI_{[l 帣fg׈aa{w:P˪dve^UT%ɘu{^v#cp;NRzt$ RweϓHw! l`r65qdNh pR\&1 tܰ:JS0P RaDAYAߠkH7>N^2[p 6kcE-w? `MO0N(Q|ZiA)훇@B,; yjdgW&,?ZY/ܾ{GKi[PX5@RiMK:+_T;abOb㣱8]`4bs~U,ʋpeT {M\P:Uk)Ql/k8KHG_Tȴa!OЄ02d`2SU-u`l PlCZ}!H}bv/\FK2 "<o$vZ}g,ѴҨI7e4 !n 2={^-M֡ OzgzH4KP˦fGB*;dݮW[SZ ͣYabi5q1ЏO- !PD9_G mBΛ37ح+3+Oz~SH`B^-JYLm 㸳&!qFvf7$,q=V+Yk=41 3MwUKempgz2 q):qZ+-$XI>\!,{h4a/0Cg`;KFUy|@5~T#ں"Z3(u08Y< t4@bw@B%PUNԹɏh-I5ؗD 8}dTA jDg1qsn=ahb3D1)5kMi޶RPC_( ($F\;IU]*R8\fd*w*[wQD\\aLΊb0‡̏w*.!䠿e6 S|q/2( ST[ߘ0}eߛAoƜoJxGnbI\3o0 X%Q!U;Ivsx29t"pZG֣:ܣ>PI0ޤ QɖZfIJXwwbyEVkp2W^ǫsuxgpLʩPt]4; Q{*Q80N 7!#ìgkzeS!17/.h}WYw7lid4(ǎ28wG#V(֤$@6귑v2`aēycq&Ӭcqй( }g+J1A+zVʺ5Dκ(=Ư.D~V2.;`^&ZY "0{lKrw-NÈ%a]Sif#zEM k+,$9Eol{U ANn edImtۖmC# ]^PS>t@[[=߃t]$ob*).ܽteU|Gy.aEeRށ\¹[@En-8M>T:1}{4IMM$Lڄy%pWFr5v h@땻rnlڨ,&KśH#ݵ7*XmT9%>^M,t*! !+_7Mb5-< 3<}EҺ#qs^y@?Tx }ntGxhvHk=^ DN>ڵpek7HؗL`y~EH[ EYO6~4B=oVF_ԥFK B8:m_Oitb2W^n|Q ;T"XkdjQEoHUPu;ܹs+t=TSSG`6WHL֦2( cT֛![DԿHV9rJ. VVw a-?Nm+N'7X) sa\duuK,CAqR:HUbԐiiDƩevM>)½>b[~$'P !YJя+v[ rblQP;27qJqv9waײ@R|\UP:Lz4U]"ϱRn{VGBM2wFg;T- .{kZojZ+ԋ-w _-HV֞x.  h! c)@ԟmUY 4|ǯ6u2u0к#H:3$#+A{4)RE_|bn8@ /l^_Vgp+"V -K3ѼdԕWWL8Na%nApzƔ,Elt(͊-U`EܟAB>cZ鉙wH} $ A؋)XdcF2,T:bLEZB=%sX8ⅳ\[P,'_ߐgkLz6ݥh.Nt$̙^HCiμ:2أf3x>NYG&sѱeAKV OEJS"F44fxBJ`Lk-24$ɭz%R^Yfi|9}O0[Y0chJ|Q,I6bhaW]B>{5JR{rx9@kK#Oܘ񙺇dVg;ZߨXwqQTZ{ !ڵW'@-|{$$ Blw rd APGཽNN9bV:K;^i3Q3oܛ7zLw>uGz1SDU4`H~^ t>X fJ5+@+,Q( :?=SGe;3Wj n !2y=L?7 3ޡL7~%;kL bd8>g~ZMѝmQS5D)ARE^D0|l<.v`:B{0 r-`zS 96M8[ڛQ؇qpb-ʖ6JjGQ/@i~P[c }:SM)Og4.6Hx66uWkWťI6-B:o$!\~Jv +.i]n+)*Rl`d~#ĩI0jUD~4FEW7<cZq!oA./o +'1ڋIgQBdKzJ4++=ZH\ Rxg\VܧΘ/3koΊUp.MALAP~w^hy]~ ^S)!$.zCx }r(Z^!,턒N|}6Zgg`-WA-jIEq 45єwg):fD*!JQZJZ#S0"q%2<ݭv*`gxӫ@{Ak-lOۯRS9e_@3XI7sYufjz&^ p89yD M:r]J 3`L>-F-y]'R`o !4v cznw.WzkFƦ$ ,Oe*|%e sa}$9zOz{Jw/>_KIGEC]$C5(X*5yc#Q5E_|]F+*yj-,/H<"dζ-8#MdOJFy u 'O?5pe*;?x"zCwc@71{R2M(h ujEdPNAB_}(ֹGFuGbZ]_7{`ؐ'I) tFƴFle=eh\nvYrDD86>aPPࠇ a8s1s3"Y)WNe ezlRW^eJ$MM\Hڑ邫`Wqς?vCOi`Lź P:w]Cx{ V axh{mK:Yo>ZzU=iV(KBh?}GeV~BO7/Ji7rBI|JۛKرM@%DO%>c!:3+6.VGeF6UnrcpD ksޅhɛ%r>t.p*ZGDZRdkl\":.' 2J|lj,?j~sKSqNF(B$^0t߀q^rE2`~ඪ`#>ȐM> N[?kat'E?w&A`b]kjʲtM7$U=rkt<ÅT9՜cȭcxq4q<GgN #o^ۉ}}?6e<. 3Z(P ղ͌EVǤQZH0qKXW72ܦۙ?=$KþQ8*l_XJDCvqWbl(O%eZZBL6_9[n010Lʥcjc5d&%9&C}"(X6/‰٣`saDc:ѵҶSzP2v˭- &1D  G_Z>?Ea8wEbx?H(U:~$Ű"f8;ic'N1M3e=}UK#Wq4f ]՘L4u7W6a%Q06sol4v2+oD]5*sr q6 GѭўW^UL}LKZLbATv96o̚}RyVKYVmR;IgXN0@R|.lĀ|>.{QnTgw&!YBP X4טG#d ܚ`];'IBbIRHB[[5OW/d=Cu5_qgRyYlXI+ɂa\i|b4_/bLm?ڞ3Y]G%M7S َp<x !=3hSIϹա xZ: W+//@Y$sUҡ!Ptu ]ҜK,hnߗ BztB3QoךцmhtZDq̂@Zձ,^9 {Qw 9tQGQ ĞBBS?l a4;) ûu7N8MX#ISTild JPnw9 >/T!rH ]Z[=Bd vxopI,\i΂>FCL]N 3"O@*bGCrι>\޳ YãH{I^R k(M E9mpk sM BpkN(m0,^V<>6c&p^nX}^BBv'i:xt N 3.2>;70*& U,7QUC̷$ d(v8|vCeט݌@]l>:p(܋J ؁'z,'}( `M5 |{k8.ÓvƱɛO)wW0IݚEX<uIH=# (N- l)ӋUdbeTH}9=FGe;:خD\-KVHX/7[zyxXXv e-HqSAa)d|XbWy [f ׸i X0O?sI̙;hOjL֪LjXN|SGoQ"z~fVEhx`P@uЍʨee\,OY+=U8aކ\P3:β#)//:Bj^>цVCc Aa4*VEV;&'E{aP>Ro5ae- Y}cw ݔ;Y<9-3zL M+G"4k"ottuq+d8<&1ՙbxp9-Uu`M,xǽw0m- &W ]=aڡ2^&|Rbl\ ?@/BG*Iw5$H%6Kwq; ccPlMfz\Qt2Qy4x*~cO]D&Ü'$rtT=VP  s^Uy UM Xr:2`TN@H> u nCSz>KLk#Bw.e&pej ?*(TmD<--A[p )(=s:tWkf7ލR|YA=QV @v2N3/*kK;ơ-֢}77Y+J6)ּO)iԯ+  ?2[9*jVer6☃JSҳXOΰݸ蝟+DU*&&0$,Wɝ7IW idA+9^p)ѥ#ES~m@۽ҏxڋK3LkNbF`O5켼J#j[TCY1'9G;2Jr9xȗw"K7y|js[ANR%b_i\.7*tݸCDž]~KgG%-0m] _Q^9>Gk1Z0 Kcbx$U+]7 \66!6N:*{D:Vvra[%VHnNW$U] *~ śeO7Al0 ljo}2Mg?~?;ߋs#⭠EwZIC:^M 7Z4F0]Sxy* , (l,z*WiIi󑛛睜2k:ClI hF렃56;/@~ݤ>a>_NQXMwF‰t S,l8R=nnŜv2g.`XQkQ4nϐ|NioRSȥ5B !6z2TfH _{kͳ!3 0oq!x o }cL Fr[ q[֟e"֟ 38-y|p.8ۚEH%w6uzPC\%g.Pg}53Q]);ԩ#o;DQL|*IwB33u&>X;$5[*/]'ΉυǩQ eidkbx?%>q -'c8_s~ HrtV~pV&S<>+i_)Es3FXb]^%X 5D .d2C/w`"8ap/LO|7;NBYh>:( BW!C& ?GVF%qEjOcK3#]ܻ rAY^絕Yo;O G@Ǧl1 >\;vֿ̅b0% u uV-Z~#,R^()mJ[>e={Xݎ [S(MǿpH,na "<߽BźŌ>JuEyzʴ,EЕ|x?2~`kKN?g3|f=ѩy\lͿudAt+-1[էN{Mg) I?Kζ/*Ss8V++OڹT)QK;ƁI]rTK{j,2 Z_'o"KReRIqα M.$ %U{7dJ K>〭6z? {xbS'`_6uaFgK6Hf[ fkO0ê4_Y,~9^q0}_ɜ5.2$P#B] 1‡whյIѫ~EO gPl&o5%wWr+XH/SojoL>UO %چUxI]^xƩ>ջ{-DB8@JG?[ ,3ʷ -lIB `6k^$}ȔIS .KhrUkȷ6Mr|?=1JWw+ rτԒlv,`90Q'gIDfԅyO< P'iLh]D |VBӆ`A7g'+$q2аʡ/s ?2L\~؝fY&WHUP.Y7/0 &mX1ȸ)_wzq=GS_rtXJdO龒)WoQ֋sJ[5d*gܔ3ZH2z 52Kto a@}8t5 %N-U4yww!*_4v5dfX% +6MDmG_&duV[,l_ Qo\f*,`Yʻ}}zWGr88):ȯ dbW`VUuɵC>r]F¡zi+Dw+:~4bGI*[|\Eh(ٯyI"Bz~ZzyE?5 "r7{@s {#A)*zwBq&{{c,'W5v^f,̇k(Ul9luPV֬aZͤ.S' J3B%V MC$,wKc\t"o"c;/[4z`4\=O;M2U+Jl]vׇzg-soȯC!f%hƒO;(Jt,:޴ð:s0äRP`wf@c\!iFZ3iy :"E6"x ;` D=b<_cT{'/.SU\u\.|v~w𽼱UB(\.%{jQ Qj=p$=)a~ QϝUaoФBݷ``\:ΆZpcEG֑tT%u.v*~rN:'[*F 5 g=-l9Se$nDݞ&z%!eD9+1o]^/:{3ۂQ}!X[X^a;Ve0Iv}SVt^N@qGϖE3#H *X\ H:1^ʻjCOGot:(Qz",>Ȕhs.ݦP9օi y@SiVёVW&a)sTaŒҕ SؘZO@XgĒښԚ;/B[xd&uYWRIMf8[(Zר_>R[a3>Yc-š `WsBIjNRf|oTr=Myλ"v)ܱ_}B?ωf\ Nqt%50#e$:U;,:Gm|U|K$%?KB=1ihnnW$k`ߣl 07k>Y(l_5xGհ5"oşm x=vRgO6lA=Z <6>N+oKj%sȧAөPvr0-=uR!HHEr eefZ$$j888S5~!K#*e4)Wt(:&Ij*fq_ ȓsDb#"\vQ 뵸u#` " t  S焲NV{gN~/v7'M Irx`jwzCc {n}NX+%X lbKCW=Uwn=cIB|T.[GvCX0?M&pfG\]r҂]Y{g^Um2sDx\oRfxp#*F 2щi$TE8MH-%= i4K&1')Vi%֧\ܞnzo%>%oX..n2n01AaѧWMX,i!3 ~)%yͮ0b}A5K8ľ`F&V\:⣪؟E1|Z 9Q/L5K+f.%'n' l3Ngکp^fg ڿ%rU`o?7޾(6yg$x[8URh=cwpdi 4 P+HH7*=P򾩒= tAq̐hHG}dd > p`,5s]!aPx -t>C ѫQ̸zeSZ'O*i"mJ:DvoDX-d 5C: Tv~1]\,d_g J縈F 2tȖ8SB ~Sj^)(HHEϜP+^?B_xw;T$[у"07EƗX>l+l4?+CdAdbX+/ؗg!(e;A&y^yRO__}K},KlOho5̈ר >GPjiPtT.tyL} 1*Qj /㐀C74wNOiuJpH"j6;hܜ:x:_69 "^RNKA~XDN''+_]'#2]] $^ ˺AX0J; _B6c7zL(DM<@$+}">US1 F/u^tOӔȺ8t6ck3tpy~cuG]'5 [;;w&W hBoͰiVb-[~_!!avJP=?,芦jbH%E{lbJϲTfd4vdۦe%Rf  pE F]1lCnWAVYke|2{$Iahv;r[D{)㗀?\[0lW{P +Xͭ!Ь%KT<|6Aͪ3)zynm7=Z:.2imu~drH[Ux8h:=*d岮M D #49'?VL{|fI)mkt$ Pj[TǃJikU<7+_M&J[`7YwSw,} %2_q秷He Qzš%kfMK%ϕ{$W5c/ronjK$%U0zԪ1Uy1jx3`#f3u>;|uNS%̱ETȒo>д; vR [Gn])9nKRZjj/ykhkݧ,BPoP! -iU[b:4[: rUo- nycb|va GW/ZM;R3ָboVՂ5SD|QAlnzG$wD[1VDQ+D/ڊ,SVZe%ѹ䶿Lsa#hć@/Zvu$lK0YZ؎\(e_t6$:#8Sp8>?;<m u7/PM}EװGO~缏|g ^=;G.*=nQE׉rFTEG50}-l,K+g˷]㖖/0f7/Ջ[`AKCG% [D ?mx;22U>o\^3F>htg(3wvbF`n2*Wwe6V6Oxګ t2v;a,M8h_.*4<SS].;oTSo ^Ѣ_kިe-`z{ %_"]#8l݅x Iv#D#,J]9f>LP\fSxM닕e#v&^5"GL \ D|nn1PdM2BghH{v!ݥ`9Dp#ezm_1Zu nUʩ3]$­ݰ6cg q UwxqFbѹT7"Ef}}J-o!G8rJ u[@&*ǫPi0~wL6?T:BጡH'%݂V[Vb$̊n&휂G{W!}sihbE贡^~:G~V$.s \A r( #F-3/ `3joqqoPb([ѝ*VxֻQ%8l[2Ng@U)%):r%t МUc0tL Njx"/yGff q ysxMuxҧؖ'bV˝򪯧@4svzv6Lm$,A $4g5݀~J|lkGB,#x<D Țz֜ R7sdPiП%I )/`LCvȓ']?N{q5Tqo2PcIGY/̈L?x~7p:أ`M/ToB~t! a{ń#Bdi#I.n]FLY!yÛ@eJ%- J;_o'xO8H&vBeNAB6x-. y5T .y`@s\0 iRmHDe`ܿ,Dlo_9HvkHnO!kI/R9C8%REwPﶧfư#.ZF0gVYsq)F'Օ[7Kћgm,l0h+#]eve1?e+GP0sϐ#p_SFԫE>~-RQ\Ik퐑^jŠNF^ )?Jj)-8R[~Ll8;%O?{FeŔ5XY Q\7!GɭU86'w+.GoCR. d-O6Riq "a{cFnw~BèAө Z1z܀7'8h]ͷHrBH3J&lRSH3Ol*]QVZvKȋ5~0wbr?;; ZK+X~Kl%& ;߶-5AJҎG(+{jD>o!MقL%fe1xջ$Sؐlq3Gs)QB"»~JEZÆ8j;@{  Q/F36~ ^9:=.RyfZ>45QlIƒʘƺu7MطQO:杤 Mpf&̸n/g#Z El2 wRcN Q:\k9*Mৄ岪WWoY{47I2k [ #:SW,IDcjfBDr}^)'+M79tG;n,N~Z}B8CfHiD $O/Bn.rZ}BE`yu(Ե֐ Vѳs!v Nf3Ss{{63M"m/e'CL"AUy<,C]Ur(p%<'M )hAde0Σt{L'Ylz.o^Ӕ |\?Zʫ3l ]v3] 齜񓿲)"eԏ(s|@n $ռAW.D/+1oIG.bW_3t-/G n+{dc^Qjhbŗ;1}kJW W:9,JgTe2, EIQl:vӷ2"iH$OOʈ;B_(Ζ8v!䮙 ZAC9#tP\I,o@ڎڪ>(.vQ'У)0G?vxm\ڶiu7Cx:4_7/4]׶{&Fs7=krX4> obӌUj#0QaK?Id\Dgv ) fڟ|73k6͢][[}SAGyS7qw<`vE.5 jƟ_4zhc3'=9r]a0kߟӳMC cJ<8_{u%`PK#=7{[ 9e<]PpC㊽7`3kY:pL PH~x{%76]bQOi{9J]Q_@qaSt S+M鵦!Q,)j~1TeCEt<J"T~'-=aZ.v ۯh29K^;-U˨8؂[nhip'Qx2J 7Ʋ7:8of\&Ssۜ(B`o6wr;;07\`]b40 7Jiְ-=˗Za [*yp2BTče2ݪm{!+{vm8@U!f?Y=r7I*b= @Ud,EufP^%qtIĠy6~G"m~B=?KLw;s4v Zfܷ%2=0cel2, 2 fˏ_-T gJxk"QOAίxVwKt+~I~JaK/ľ^9MO dtZV<[ꑢRBJvY* |DJ;;g6j9Nʻ{e,:wݤ3VV_;42lBVj#qLJKS,&NŤ5Vg8šC*-.hE>d(ӮY-x,SdM `%JIjE6Kc;7ZuK|I2º7U$áyw9鬄U(¦6M^xN Ǫ}կs,!l-|ȹRҼ mPRulMV'ȠaҚꦒ/EAhl&GRN˂Ҷ9" uUW&52JT.rR^x`W %bNw"bںC/; Rş/h6(>-.H?kb6xB"K4p^bݹRcb0<`[Y,Wlt(}JnRO@"Lωs?`>$¥=H~q6 ̞qX3X2Qm?=cp%ݪ1P\eM>ROԌ~H98yA՝[ Eut׉S^ ^6YJ?*,y/a%Xpnʴ5ࣗj4'j~W֎L]6U:PL~Ah.yw>=jsT%jC@Q#4_XZNCoDj0nv(wxڙo1Qֹb ݺBjDIFףӈs/Om&T,>sVR/U'_j8@c@/XA\@d?( tFj|Te5&z'o6pWW1d`ZR'0J5@@R|GItϢT_%)zRyM{wMJ8/tt&QlTԀt+g]SkޣfָZjM [LW"#軬)wu6bcßWr dw)@ c6ϐkbJ=]LFMhcKw?挷%}gPgC ~ wx*dMO<}Eq`Wi­YuA+QPlBlR'>Wed76hɽdx5R-&pX+!P )g֥7?R-O+1M6Ԓ౰#buQ M## U]a+݈yބ6^22Cg?PjcQJnH𑨢`)uy#q?t}|ḧ`~Wβ}Dc9V]X#<ܮ|)*3T}\Fj(zE} }xrӔgҙ 9̢/as]zHT\_waL!OE1d?^TpػɎ:U1adR0ӪɂݐZ }?o D/w!&AzteE:U4H#NJoukZ3t !dgx ! iqËlx{aV2Kk텪Ȃb [pjxrO}z#y5 %._׎[^op#tJc \U33$TIDVj-2:2&ZŰauC>@sD5r6+:be\!p *Ǐe/f] g3P"lUi+Zr8APzv 9n<5vgkTuژf|EpIz9g<лXsDs> Vs+5HbJ(a}:} 9ai ȸYIb_OiLFfT~f+ZR${c}˾.x.Nv©#6Yh]xT S6'ވtVu +O6Tw*s׶Ɵ(1`iI{/"Gqw yՠWRW)v&eȁL( $\Έko{V8:)y+ܗk9%xn4)*rE?WE#!ˤZ&*;[.S\ &E"NWt>Z &b\(8 N,}x5:"@0w+>$Ti~]zttRz"+PS?iЂɳ]BӮ 8>J*$CsTC8; ' H_W`Vt)}2mWo&\ۣ~Pm+ZwBv4ğyLkZgzLB>DAd;4GR7fHY:mG\u]=vZj_x|6v<"Mi% , #ABZzH{%t 4D'p?K3`m"zQ5סBXxF|b,x~](78Fp?lO,'Fؿou 09a@aEbtXk k92Rݍ4v20q-ǿ"d7.6kC1BNY+8=+Yv灬xof|yS+>O@4D [B:]޹ܣمڣ̢hP_L@tnqμb0x@6%N*ހܤo.}m,i4?^ 7a?Cuc2P:&Z?/z8x3%X}l |mZ8CRoE/EY]}bnVyG \h ;ykRupU_Z jdV .VQL.c$\S꥖{cFN堆 ߁,ԇX9|fkjE5P/1`ՓVel3f1-}J%+%K}W$jc߁~$[BI X"DVѨHBBp fen0 2 0 ?z6睿٠HP\T:FV.Md홆Iܬrn|Bۑ=aDr5$ f x/IR&ȯR~7ݣpd'mxsϺNB)0yXگHEDEo$YmI w.sj"s^'qFr$hoŸSx )$t}XZd*Mk[ڵ eGgЇ23һVmBScA9+a|K1_`['3z77fq+j5h~!pL-^xo܅J>[5xW7Uݹw3FJ voY>_6+g:TB8R8 lZQS|4^rD Pna3 ^xa29n ʹ؇ARj (s`o[D'a2jsѢ++i7%]*z}XdS@M-J@ š%sT,jU!/B{Uۥg-(!+.UfE0Yl^ ] A͉;>X'zp:).(}2ℓz_h!m Q6 'L^0G&TPR(9l\Z~c-oR;K  W>psk`?YE_ƹ QD7}%A]{ >JyT9* "<`Ժs :;`5l@TiEHs+]&;;dA ,viw RRX^ڊrwsA5gW{VZI4eH.#yFDa <~1^~,eh}[6dGk~&|SFuHc &!aKJ)-dZ 9K-ˏd#(Dm0y-ColV,ad-xK [h1 CWwxS|'|!J@>;eRD{Ԏ+e- HlS]F z{E/X>05NDmȳGcU4CjW$` 悀pp\cuN[z L峞16cs<@_$)bLpܰ{^V*Bς.h?/7 X2L%Vq; 닩:^VbxpU71MzM_\b2E6[el $vYSz &Q ;HX~39 =-#OsH%$&K.C%1ʎp|#o1' *, /-jP[R2~nKQ¯>}9ݹRsh((|"jA+ď?pz8WΐS:~ΖۈROwKM>oSk髺kR?R*; )j~[iaCڿ!0@suSU.Mq黉VS"T&z.T]*7fj7'NQqy;4;wA ( sIm[+bNZ>S6ލm%LB;Sͯ.pk 2!\%/0=.B)!hy>ejB\oi7#ó^ױ6@lʐ+jvPL"IdzCvVӲ0I<R7ӶSV"i#bki$I)MF+M\ =B (F,:>t_ 6"lqR=^{UÃ1X 1S&g,aeWZ'ߍ+=>~,m!Z5HU+N-ԡO!1ͼIscV5WqkD YF\ Ȍ{^lY(&z0i %5QA]%uS7cw͡oy$,|v3U[0bP=FaOR!!xNr~/g'a@s7j'n?Ӯm& !RĠUL}ݣcu +oΥZ p>[pqԞ#k$ኳ:uf㾳hbYu?e$L` d%:(sJ.Six]F xI~$mń6f=PK_8۟|bpeifp;|ʕ i> M Gj^[)8Ҹ)>A roS+.Ǟ›a/xۦʒu%'+Xa< H0QB^? ??ԉϜTT?zRw>b bU eIUU6btHVIx#E^burNŃk1%Zh$OzlЎ`BUn=ڃWU:x!J4{ڛO9c t:Z>:[@+ #^ O{T+?y^sՂ,x|P-?Zݷ/n+oS pk먖9U yz T~OsHr)3LykA/ԼKq9${%>m9b]ALCJC%ƴSJ ٓW~)cb ܒnO͜s} d#~wG̞M7mw43'XAA&܊8jCj 6ao [^}ņbJ]B~G{d1zthGF` Ix⺈bI/nTVc0!\.ԗfٻV6d pfB"txPV>1m  ۘ8}jZIn%Y1s?5d %?'3~]!EQ-G{!ܖjq}uglpuLp?')W]Ljm`gAL,J:d(ug?-aQ-!: {OxZr[ }p/P_؀ 7v^Ւ]9^hAEqqPث%d;v NS+N"~c)VFҠKK8jq{.G:K/{)R%Ye$t=SnM)pj uy}4d(c!6[ti9Op5BJN;:% *bT}+zࡆ|4_TРBqU0Mp22!8'WX0ʦeG!K Uu4hw} 30zJ̒|WY4r|-e`*:rd@wG)t=Aƞ1`0K.l {<U`>6\ѢBUdl[#҈ VdIwvI 9DukQ1myO$'^U&Җ/Kgs8 xw@{J)\"s`vd}Qr{RcvTQr8M ļ`G <=BW=IȈߞ4GzԬB$k%TI/UUX V%1Q9fYv\i)l-jt2z4vw‡$l٧Bc4f]uHR=/kɑ.eQ#яQ a!.h{eO@35f'(P WH&BxWއPSkߍ1Ri-] tPGaglBÂZ6p r C#'wzi>"Nur7'bx, W¤\q,UѮj?tb$)`+`8F{!T^LѶq%1@:WS2AΰW;UK2侈0PC]l' c<׬R<lDC|Oobg?a`WsxQYp2Pv ҶV˾mlH])g0鮨s/. pAmo)blE &lLI a6D}k+ oiriaj(٦gާLqYB2b 2}ݛg_kE]&X*Rj NI/ÜNonz/ϭ-mBQqkmJkUcN;h<59Kjr?%QaKfsYEUx##Ք{s qB k;3gf6aРW C^K_8{bc/}(%eɴMZqf|< {<&JñKkQ`\ Nfli22B*:8)ܶMW\]G ^?"0bu#?ҥ0 RG==_&8>UgRxK7?\Vѓ6]j=o k#C!VZNk+>>iAm[؍)qgc "N^Br4EC+8\t4bОx` 'f|FF<1*j7 eVטƜBa'?FunD5aUX70]bz|N&&2Y^K͈?&H[;|w}簅% ϸ #. B]h-o2Xև_|f'2q+;HQ#MȔbI\١~Ln53cez>"$1Nk0xb6^:mz_hRhor:/C(WUu8R"?k35oїԻ$%hc|{%eqxifL!J8um&0; Wm|ƲP F#JhB/-f}ِ|0_xb_ lHS .Xc#Z=r@Jw3Kȭ! =]>;"ԱJAT@ZphoB4C;B?ߴh4{P׏؉Xs5Mbk Q)j+(wM#z(NWFl{~~5 xź-3K,,vltc Dvd.NOdda lSVMպ:TTX-jOvq˾Ї<3n UVI`wY>ҏcfX [2)ΰ"_1t@`@`d0]naǁ P;Ҕ›;bgRХBى@+3m oԞ!y);ȗ?%lXvTЯσ[NSı nS~-%A0SԠnZsUe9*Eg eZem-\5 eqf6X &fAu*<]0097MX.DՁk%(RLd*f|Œ}!5/$ҭGT߾4H<5'?hD6;Z; x;(Fu۪2)+ RgB,s*ntxTK&L]5$<*OQJa`Mf"LKq}M!l9ዉ\vNQ{4AWai]. wWimF%U0e:ש(PA ~Qd{,LTZ8BdE@]J#ZL >xC >pߠTӴN i`m,P(bR KfЋv*OIe,+/#%!22MnmyW_pv/QpHȆ 7Jl9^FJw,C]^Ni]qzDm+ f{ln a*(еS ׻@5@X7TjGkJSUSoL!3F̄, loǒPzOdy{S\Лc5IJ­e\V=POKDGih_{PpuAzrF|;_Ӑy z n_;^Z&Qz&.GlQ3\BI9ūSBWoP=D.p =~_,rpH$phzzJb3`5-dj F9=vׄߟg S9*j#a盍X}~r"]ijv^vw/o{VӞ?YU+2~bn|=;]~|0w, YTg15\jPTN]jNudW{hO2*OJ)b} 㥜FK:n^X ,U`UGih4A[V;RѼϗ"uS5H-!+[s]\b:,N!VMtb[ጥq M3_ƁhH`%Zp!tJ\. 60LVk/J wQEGY)DUz%Hj B6O#˱BW , _xG :sVf6%]>tkJwr#@Ck{-|ƞ(ކ_ڤh.;[ ȵ.hl\mw{~#uCoz0Ϟd )M"{4;*tLN!\pqSQ${{T5g/EZN̓2_+D(H!WtӣZ L=;a ?/AX^&AR\d$.`'/䙓*V ,lq$<&$Sa_&H#0}Cs7x"ԣ^\Xآ> z\wD4PqNv{E[7/<8:o&F%q6^2S)Sk+λ'{g83,YZí?ZY#t!6SZS!LޞC:,J&^XEL-"R0z%1m3M߄<)r}Ko߅[}9-(ErZBmHYD-ɖl>5wE<WVd U;LT[iab(SWŵBt&K@ԲChbyhpѰ5ߌ#f/;u&D4:-w5ac0r6&m3h$1,7-/5rD|ooGË|=GoW ^#QMq =HMq,CdQ# f6#ɳpsߙةS=KxZֵPۗ\s=혣Q"g{&$ki "T@=:yROOlӝJn_YLU1hvZb"j@x@ɦ[sd& }"7"6w6)ȥ|0._VAX0W~ډZxH;|ff6D7ֿe6w7[xL{?8MTC2Mvie vrf(Clk*˴T_UU˲7{0VRѲaV[>],&dǏNRn1R'^j30hGir.TeUC/X$7 l $I !Mb]{v[ksۦ.pG`pn6nvAs}$.f4/swO$FzJb7\ 'ASʹ8,0*{[ 8稵 $'5M-Zf$=U}FLV2LëA(FY<j-W `Mj{ll|0}L F !M=Aio9x>FI~ Figa &ئj [O)QgI7Ҹ:gdLqS2?нo| !<^Lq@P!k3>, [?߿rU /Jm7bP0O6h#ڛ3+UDZBa=CdP /;)R 9=)4Oe hh]KipٓVAʀX1ID0?JvIo(TIFJDmCQ:F~~=*~dBY+@ΩbXt%{4ty-]K7_۪lo*dYlmбqש8D a96}㓢ɌH98G%A a)C bBImO\rv.ܙ 5H a@|iKS4 j0Dc?06)M3qnCl6Eh<U:&FZʲVL41w#x+~'m'6nm<ɗ`x`ex] Cק+nj49yE9@f)cvkR4tOͱi+h+# gn۝RW2>z3n(6o[tSfԹ!O%p+2O5Fx/D8>Eiau&44E}1R]c81(ߤo6+:p|U d-Ħ\wgyHNA?|nωp :}krf^Zj-v)Phn|>a z'8(0Yry&(^B^)"V/z.!>]4h 1b+2 30E&eԉrV KQg{m8j2k-i-7t*Nհ4/99- Hr^WzŽ?Lۤt)2hM|gDRqm@PL~Veˉʇ ~x5{.MyNSS<8*Qͦ^I7/"1'Fk614RYJNMi„z}"wJuĸoa:P "% TO}gS }혥Q]Xy@+J 0'd_T 67piA;m e5ѓ9{lCDml:=b͡gV'ץ+<.P MhtDL~z8QE#s?A$Gi P;K~Оw9q)96qHWO~l%1c\]Õ$芛J!J?_[! s{Pd=n9 !@uJEn@R&?Kz7u}2vGaT+-#^+g쉛A!*pN ݛ:E:4k|hbAWGC:9P4k5q4a9X,DEQR%lw< HwhW003֍ 铈x_'oTr^h2@l$M{Be{̔=] l !Dt"Gxj<`=\fRX†{ -yS&;R.=wM+m"HGP"d'c>05d|l7WqQ_È:7URqR\t,4"<: 6zwV2[1(I#@Xj5͙p` E):?pFO"|<eI-wN+4+ɡ }+dof=xXE}WGr;bJg}nGV*| 8=A+[ۦ_Sѐl#&}qQ/w(WzDHzvlg OYKw "LN)*lf^6z M8UoEzkmdc^m]~!XL㢨zNүp2UPDǞC|/C?c(d!y oųav@@A͒k7]-jͺ+ i]=aܠK_x, h:6ZwHl[HĵtdV~*"D**B""yyl.7VN ?AAQ&\PA8 Zj.4c]yTTٰsR*砵7A݅3K%C9bDncuևdڻIs >#oLPs3YqXy{Ǹ@]uW3.#Q$+Do!]`B9ȍm5  #(m x2_a?+1|3#uprVgB4HE1Cx1riHX[5Rƨc}NȌY/ۢl8HS x.27h"S$ie!t!׀TM!]TyY"wׅmy0I@ nA9e fCGo3 yx㷡Vhӟֳ &a3e>V1ըq%C.{FZ^+1I6+O}^ZbXW; [혴qKS,9DeWÛJ95cRGD զDA]`W= щ6q60յDa יq6ĜG}n|v7.vfŞ!h>x$Yf!҉RSpg傺EΚ΅0QXǥMaWQzS= n*k~ N2# qb!-;tv;_m[4֜M9ދ4&YW{Z͹+w|B0&Ғ;]LCcc:VmLFHk=5GpwŒ͇AIgbk 6"}>"]K0q;$4$x[}E\FY$RZ`0<0Zlj33uv8-q8v\Ip3:2R)IAx1k6lS`KvP̐Ta/"Ȓ.p1NHf9"Y:.Zb߇'I F} ҎtrBN,D":h!ߎ_jlHa)`87b]emyۨ 1K }bu?fiE -ؖjPͷ8; 0e4r4bٞ;DeAH"/1+;S4pW\5WMv-(CoVǞ@arqP}bz-Bꐒ0cw?+j.߉θS{,vM.J'Zn}}\55v/,ߘڮ?X\ufP 7c7&%h w./lj6v;)A<dCLz>iU-O?Wcr$KvyyE'0t I>,5= S w*Ւxj:9[˜<$_HFMnh'w<О.bpdHaPy][]|U5)NmGcڧWiKN ;\?nZiJA珴As<oٰWBY5xKl!lOc"P₌i>u3hbSgj5x70B*j2 # _3 >B4, ?_L])F #_yg[*(Qf "K _螩-Kyq ,1cQ')Qh/# D!Y$- ڸ TBj9gȬH-c+?yC7ZҔ R_pcD/DFA֔A1;_N6{X=cFIT,WY)mSe6ϩ)>CmxH33:D$1#)1MoS=q'!k3n|!Iڳ"b,3/O*</F F8D< H|͞8s/$ys$]xI|Se=fPfжr7LDQy ,GFe*t;mi_4rs; B(up*CQMٌtlVP3 _ K: "`8Y &mֺ燄 zx߲ *I#LX"Fm]q7j3`}G4 %\R\"ux'wtN[";}[EzKRP[P["ۇ3:cΦ:1=MRadս"8YZM/+Sxk88!Zg:-^sp{Ls&||ESђ-[So24KFn"s^w~,wG7蜣0ևU6+$N& Bذ^JiRhCφ6DfoPdL9!Fj}bnۣ`$^D/]H`%BoTEEg:yB("*bsoٍ.cT=kn^n%M^g=-u89CcZ@ SA=ǒw?ۢjO S .ntN8=ǑyIX8'l[M}\֙1]"".:e69L rI[5j1 2Aߺ @w)f^S9ԖC5pJ5IC(P\>iH+ k~k23"t<)47ŨOfm(rvr;_ԣ+ R8UYyq]$3s (x`*'4:7}AuHoiĵłq @=v,F-7Eq (zS$5 f\%).h5B}Ӻ/ZEbkss`hhfSȿ-h`37Q<2.HKYhN^(TAE؊e,t\|~ks%םHȨ_@%0V G`IalC0NæwS._`Bj cSMW. 2p|Q.BPoK УW,!q+SHH\;TdTlʣ,ޢ`*,͜^ڝ[vNi94Z8qݲDȠ$U DzM+3p؇VbŻm, ʷ![dai^[>]Z/P Fq c0}LmTyLP"Y%%tTc?EɡS̥һ?N5$?e Q> 2p琲#'{XO񻖘F]{ݲ-bYF׌ סŪ~n]et8MQɲmqr۫bwu;Կ);Fc>DOsJ[EJǦrĿ'3OtZ1ʐ᷅iY!˘LwXJ~^ Zt:EvTR$Oxv9UK"܏2.b?xy@3O:$esZՏd/UĎqqvFєaB]]gdD_)G)89澯&/<޷0%k-C*оxIfn0+d0cɾlkVqdmt؋!:i{/3 H%_ʣTIyBԿxYMChmgFvcJվAW/j*%AUO0#})Li2 ZGAFx$XNTѯuA1F1BU8C^b޳͓̈@1`7RöLp׉ژ̟;]vLtjX~67X)<e$|6#ez8}+g[yIAwHFNyN+reI3ܟ⢐5*ZplQ#.} fJs-s+E&ccMrS6-%%&RXŠҭ:gɠ8)^H#9w6j]n%c1fTFNA+OS *y)WЪFv_jh&kGs %Eџ{@^4GuT#_Vb6T!Oj)AS9Rr@D=USLl)!mSU`+zFK8eٶ8`o0z\jVXS["4.HTn/`3([nKͱ6aoF\kdS%csI'[OSl me_9`,iʂēi+ZI֣5NJj3oi /5i3zw sEa l 6X/ͦ/9NKpn;2VԚrAg U7i/iH|4sbѐ(>/h€Yx[#2ݛ,.'Z{2cA\쾕eof3,Ļ5*q3Jɿ/IVBD .SAC9t99'Yȡ{RQaoh)rB΄27mJɕ@~ryC?+i$O͸`N‡yX"lC7 Ф^$*{9TȦ;US$c$Kn;Sg㵝 Ov,Ud&QI֑b(A7'i}ʖ7-eK{۫v?)qPJ4$HL}hX6/6|Ae6%E z,cJMN !xcW݈*vduOLOJ$7)pF3cU_i=B+.6(TK](gj4b*j1k NQIX:O']eZ8>|N>oJ["_=?Gew,|i~R#U"Şl%woYOWLǕ=[a^t K1fߟ>-V( ZW<ևF,Is1rHe[5g6CH$ʹ5 rҍoz>NTPʪ BGD(c9I/Ą c|۠FqX:Λ.8&u#PNІtaʎaǑ.uU묳y$,?&M)FZʢJzXgdPw"vk (Ë``5v<nWOlo\ʷگ׌V)vеLaiB`k$vЋ#a%>l[2')"(`]ٰ8i g?-H(0s˜eF?LOܴ``څk6)yhJ*=fZ6HЅ.̐o]Ș}asә$G;M*|l 4ѻi )C\=d)rP`jto$yetJpjrƹP}R5^DK=4`P" \`_4Orb0 D FvAH~k O +t_QR,tu,&& PfxiXG?{tst!Wӛz,^ ((H*[Ø#sVWud;l/RN)vNwW]r5-8ե0I(oE]3:HaN R4lUZYblWA$ޑ%+[p`*ħ]j0D0~G(Q"@N]l",T̶Et;'Gpw3j¡9@qb#(^5d٘%J&jOn<`ٲkO{0L`>=Icmgw w*hOk~)ݧNƐC2&N Yr]oD4rķ%Fw|5fzՒ<ʦ/5f! ON*N2 R[B#}2P(XѶ39o3m#pSkQ#T q/€m䬪,gUe[=7'S;} DAߛ@Ua%%kc2'~խ[!yIdI]<1RA]3?MrFG-ު_l˹P19wcwb7gZem"P4Z=C\m9LW/}F3g* `WIC+0%闓#;bU62'"\GGQm7(Qbc5ep3hU5Vײކyڂ`6t8J/ hSVkw^Ąm3;r,o[ULon!ZZ]5H \`(/`LDBuXaטl֘'kQ*X,ZO#x6A,h/ڽ1g-SfZ}Swmil52FK m} bUlM,x@ᓿ YXBt*9=C&Kwk !"J r%L &5n!, OAijr)(&d'" W$mw.s\ ?2{Y<.~dLdmL7fi"1œ,NZiʢsébJH[:efҳK OmT ٟ8ǙOY*f7-h Dj)xJtD-qZ,_hUX'ΟܔlH!'lc޾ 2SsLQq 5wץ ermtp99QY՞K$ScPlFѹ߉zj1eB¶h j82OQ@f6o.Kaa GPG+Àr;jet;VvZ; /Unl^ \*JixkŲSe{1m%Cse<Vd?c1ƸA ZBVl_1u7lSb/G>G!ޚ&=yܷG!fG K{NmCI4#2p$$WYdqaV ͑T޽W@ҕkIX` TXG^-}MhVnD@FG;SKs3q{*|M*ӧŬ "wj[hj^&1 + E: W@Eox.Poc 2Ib ,q[qjണV<.fta.##֪Ƒvȓ]o>fJSMiS\tJ"[Ĩ$ 7BҸ`yÜBP( 䱋7Jb}2];PtA}C-gp%J,Wt3YطerFIlE^NS j[fpMx7eW#%seg IE´+GAiYp)2+@]p P"&MIw;eW'm0ǨGGᶫݼB4xjVh }M.BS v({&Ѹr\f@IξZ l$1)%Ss׼~IUk]{ Fg_KB.Bkt\GYeN ,8 V?tNյ.58hˢ>s! 7<o2vC}/Ӎn+_FU%Uxw`eH&LLS谂~0k!jnT 'e dXZ8"W 2g;6ռ>(?DJY݃GH0;Xʬ9>hyƒp!b  (2CU.␎Q.}-OGDԝ[1ě;F܅20vN?=:D#E~;[av~Cƌw=!B„ :,M &z\{‘+f*@~Ec8q.41:)c)C_&ٰeQqGPȋt Z;Ç3C^SM^n}R?{հȩ~-2vHZF^:@,/nVNuDF{@ Nt" WV,{$K T  GHp[Z|̿&Cw2^ѓ=0G1]QyBH~udL{K$f ^O 퀙D' Z)]Bg Lδ_eZ( (d,ΙECm&q.צ tW$SYQB}[l4%j[}@=K̒M}U0nݏGPM Dux#Fmy1*!D(o?3LAxAKay}̤W.  C}du!B}O;4.K Z)R/tt_^{yz&KŤya=]DcLHg3}ވ僛6(jGe Xڍ}J֗,:\@.RE5K*A0\<5'=X:(ӎ>ǁwV\S.XJ{C+jCø=I1e!tBvUXCCȺ^PŀK7ލe+rY+98ysZ^<;oS5uޝqk#k r[Z KBN75 tZ=M^M@)uVPE4GqX3-fJEaLe_#$JdL*6T=+HH># 7~#F=k[mk uUwOR-' \#0>1YM>"U|[ h6T4'MĒ$`oPNA:9?,9ԎqE_P9 0(D 'V 1s{$R F ;#1[@:zh8_h?һx?]ꄗ ^OhAKu1}YKRuzj"7f)Ģ!F'<ޫ6uUp(!{/yZӗmf/]2v6ǿ1 z3CZ{sG!C8"o91}Ri ^myF9'2B>b0}zj c܃2>A]N#TW!}yR{ Z Psdl-|˶9Po|6LX06u]:aA[il;͕"!䫅Uflp8V+VGt`]xJ%A/ 5RGC&NE.,-6e;_=CUX\?z&s``~x"d9̭8PcLaQ.E3RGcRgg*^W4#{W˃ ȫa~yxY) a^:iQu' H1յsb-<#xC2v*Xt:\\DJ, i\HPA ɍ#Vו yPlWdڲNJ#wK+hwm;e_q%|7E*VmYR(^C6<P$gu 9$AդS/}eowmrh)]Vs{."Yw+ա۹vC9Z~YG ϡ>㺄¤i'9>K<ߙ{RډInn0w-J] vif=`(RJ=l^@~{{H7tVTfAp#¤iz)]OXrzFtpρD$c^Kd1<ڏ=\x\xWNA|^Ifإ>< ,߷Njq8I* p"(k.vcKyKƓpzf@#)@czCP _R78a7R4l'com wU3wg;TI YH$\=z1dSHTf76=c"ɺK bTKOn9k>ixQe' R 7Bq`(_Y (+>`Hg~:#:|ȟƖڻ;8Z- _ hq"9,Z+i "W5m A Y@'&k^-pϫeRǑ< z(%Li"l!!TP)`r?8 'B6!6PAd;"Zt][̋QDR-5tyVo}[º1iP.LJأ ~fp; '56#p~覯 o1yނo;x$ /&mL*'/Ą&faQT'\ۇ6i$v;_bvJsO92)e{l"p'R><|,T?E;:}Mw94zTcls⊳,+pjgvIԖ^54٢}x"0cz]C9Q1 2?5%>z _y6%};/.$QrZy1ӰtQ Tq_Ǽ5--ۻ5`== :-,tx"lwGD߂L]uDaaIk#n6,%H~Syxόm7 ,i_^)yr R„>({D] g}dG"HD򍡅!oaY%6s'fbV(`ۉoigǛh |rc/T3_)dHʔce 8ăUU <%] 9:ev/TZQq1?$i8́$ޱRanul}yzFp̩ ,0htpd̜" Y|M=\}zlDԪƾFb:>ixH!3uj ڳ_T_O>C||P尦M tݔ|\ Hp3kv6iTVQWh^$ H -#;y9( tt߭}]@o^M= r7,ͻUA3zV\4 l\"P F3k]+W;\ !6ռ . 7c%M% WE.No7exB0p@ƣމ8(NWi8Vu/K (BEٽiRgGӈ-'5FWʷ 4?li91&1W OkN/5t6+ \#/6#&;U5ۮ0OvaoD&dGa9[B^<{5n=ӝf3[q9L "sFU+q a[Y6W.&\7Q>6rJeq5<=ٱML9zx<9ݪ0f1f뜡e; VS%02\Ā+wZsXCLb55sIm4>yQ.=K^jkdaJ?=ۥt\ K0[$tI9J zc~[r7e{UOJ͈rh`Uce:sA ' %UڦCߧ Q=|n7/6}% oO|jӷ8'lwO+=UJ1L-v-ExS8*}nrnK&.eYX nEByXȶW <2\ 0Ytm[+/H̩GX=W=H!~Wxa`HyʲV׉Jg& 髍mr-d`߾NR!Ys/IOyחg Ct,^РzkDDOHJo8ݩ Fv-eFdI= z!#Ql$r8 !t'OAu/ti79ܴ:n6PgEg Om-gjmneDH4T0*AQHɨc.nd|=se/S/Όsڿ CzBeM)Km.yxù=( u8(T  u^p+ Dd]6(&a 0P@*MloI,ȫJtYɩ\-W9ϋ@Φ"1$+7H3h$RߑcdΔ.}daCUovV9҃aф}J-Pa 7gfg6Zm A 3hy;lXaÿKBL%7֜I;ؾ huܒQBvt$^3˞̣/[4C`HVy8ܯvW?11FiI_ >l\ke&(U { v?L{U\&us. V pMjYdK7_ĜJTfݧ۝In R@#@TFRI>t> N\(m=0š"{j=6>5S+n#Ķ>('{(fmRw Tbs"Mp4*# o%Fn텏`FO6p%xn$Źndydp7Wr?7A NA_r_"3,R"*~3"MkR`pKB]S%*g>y!? $pɿ>aH}5kS>64f:(}'fBphґ }22vX/Epj'| "O$q"&SmȌ^ɘhEiO@4W`ߐ[h/ :3BzlDWңXV@mYu&|=/ѵh<+6Rհع8Y=yrGAIʰVPTw\]Myx&〮Ĕ}UgMq,pFj˂x ֹ9 0ˏaoǏKӶՊb~=vŠ>%- Ivrߕ@8VJh*[T~V K ]Pߜ Q7-rj>1Z #$ 6z)׬0K&gNbx-'>DJ=`fBo]3%IS!`&$΅IPY6 Í:*2(ܙd^n!"بY3LKfծ+pQ6n>8\E{h͟5W[beRD\CG&8y(/,dőC5IVc|=k,q2\6XN|޼F8.}+D6CWiD TDu6iWc/mZGSSe@"p, Z4fb\xzq^ځ_)/{IohP}j#T,Cz, xc_#ݣ(v^:ҫj+.ijG+KxysnX١f"B\ wkt:'% cvg*^N$E3S1=:4ݛE.[Fgtu Sl( Ti(M;AK3t2ۏP YL6ѫ峍ꆢ 6X#b2-O&rꟁ2DeYF^Kppz13CGā:-pSҽV'?*Mej+, eIڍ.;i[_OTKvN3Is5?C=9DI_YI+47v{ un]NE铯/e8gذ;n- P'z䢙P)hZ1#lw;-9re|,"rWlaXQ`bJRvfj Y+_bqpC:b t6Or\49f2Aahs߫ߢlM# ו#jL" P6!ĀYH9`"Mt6m[gq">ޕCN(Hf/E?Hx!bV|7>ZuOCWz R^y9Nnlkr r,S ՗ 8m!C)͐s<2Iqp@$swyKJ)V֨B˚Ôځ$&xW֎X iN(RN/0ҞTGӓ%g(76W\ט<u&HFy2T9N#%z20*qZgXfCsD|X˥.}3֌*cb @oC2l*z6RJMUr??ޟ' Bj!>ƒdOL Mm/dU,gqt#D53;&9:QTrV&j `^E++7.{hR<{<WX5^ʠ4CP՝3'3.1dÉ?tG 20BJN/0y&0Cy," %7^t~F?=vڹ @Y\z.¼ݖhᬜ]iN8-shvi5KIdO]HQh0t|3r)>>soM!QO^~׭{mR%\.J,[9/lSW# %yu¦I$I/|)`xwq_NEĸ ѴL%ƮgHz\k#N+(glBYn0wܡ;uHM,x[E=^RKѪFmRL'm0<#u<ʶ tEU^dn?);TDB.vIX*hw&o rXn%l.`BM9ӵi4e ?O1ϤZ=oĪ a&Tm>^F]_z6>g9B<<:o"Ʊ!_sx Ô{e͓-̼K!f\rHpP/9IfT;՝oÙ²R%K!u-N6it%G-`64=8rğSچ֛񅢶;ּx/`NSy8և@5mmLIxSX\MF,r+뛫[Ÿ!> b#"$'LL%vf Bbڡyv1)rM!ׇd[ ls(A~0_5ݵ+Jﴔb9)AWgՆVYjGd8P#:* 3$>9ƃ"YvۓE[FI9Tz+Kn:A{{ 5 Қku I( N@_755q[sB<^xGJ)̥g&xj8[7ӗů/'Cc9WҠVNіFwLBB>påbpPqE z8$ *j=60&P KǻY1[_-v7\KCO*%|I!J7C@Knf}/LQ]~HYn&zs=yfO ?" hܴŒqP]&-8Bݰ|H!/(:q[ ͅ|RdY姍ȏ؉J'r= O;6uEg9"Gf/`W 2e1ZXIm}c GvZ")EvKպv=jdxNXk 1[:MWVJß[jP%fkHvG+<7UYO7e=&.ą(dBV$VJ(U r-+Qg Fn1 b`^Ҍq|:_C4 ]@b1׷F7O(WzIM9HW uJ}b|<`Oƞ?)fFLVH&ġd}OSD$Ps=2"'ȫ;$j;b"l颭 xMJnz۸'e?CgoۑJY$_˷\ X ګz6 Nt$A~m/s|jk~’vjXk\ꍡUZ .beGYZ)⤴5nSYDZrm*oNcE͡FLVļI{&ndSA͌c(^[R4񂃱# "O@]ez 5(E[l!D"ݖW |Ϩ1w֝4|'"LmWҰ5fk7 uhE&ɻ)JK$[9)ikb4]L?͇na'ޓ=@ Hn#'(U4qhaR7@:]}gS^ K^F%TRS&G@mXwpҦcL=;E"tl$?dpݮ3ƕo/槓K}87fg֛[IhԩN/;5Tu|{.yғ^-: 9+ 'J&j3KL1 Mn`6w-y^ʍq e)o92," tzfCrPIeQ jj9T XK5j;%bmΠJ'k3f}㸏@`-vv#|*FziƀvҸJ'&W#i{(Հ㑘_`{c˟XVi.wăWSy)P} |+Aa&Jò8Er܏A[@ VqGK . wAΒU!3[@˜|U |rɫlo#^2'8u1[p7 9ͰOE+( E Gig0,T, !6ty78ހ8a)؞Ur :V10ICIy]lCG}O#[)|:ZaN:gm3?P6_B~na~3ǡ\~ r?Y았8\.߈ZzE* K1 hpqit E%X#Վ#F!CL޾%gzJR]_wdqB%:=0ュC/X&8MD E A6O+ޓ *WEP&$gk.e4:v%OK[\Xa_G/ޱyNiʻlEK@r /tYl\v!NdcɞDܩSarZU*̬ OG")Y;"L/C@k?˯,*+Z@P\`M9 č4?x]YT."VDGH;( ):I7v#46 PO=!Y[]`dB!rVt_ԫB -ę&J64>C۾ʉl.s}')HF0gmISzhݩuԐqjCb5arO J ߲ձ3s5)l 3ř@ -g uPqWߠ>sXDTe_qR `Ɠހ(=vY=Ñ\u=2G-!bhAv ZIkL)- <|ђ 465(eRUk }(w =QKx68R+2P?g,#%PV M'b`aBppc).dٽ1 pj} xL@/,vHrE+h?;򄸩t"AN0#ʱj-kFs+c |\ |O't)CC޸e0geK˜O9RqoݭSr̽5Fˇ"_7"H8qL uiǵũW rJ >$L@Ӷ33V\$NLHPݝJ!Ě?tI7|[ Sȷ%(=Xվm͚Y1li%| sE էҒ .e=n^Ήҫ:"Br-aW6ώ^HCfX,莱dz+ˏ{XSFWQ3]4q%O2FE4U5E>lMՍ( FgX4mIG,H)Xuey]&]z`lEn5-}Ik/*i Ꟍ] yAo#,N I8vAJ3}{/3"Mώ29(a8P2Ɛ&1qh1KXӟ~! i8Bx5 ؓڊ+]$5.d^sEU,D^[;¨SJaj{?mokBŵN(̥:'nhf,]b\-yz 81sO }Uў$^U^Si@W@yT`K(&Uh $'&kqST]I:&PmaIaAZ(lP\z> %KO CLuAɳ_5A~W4&R Y@eiyUֺ |ʚ[OXC3,̨_Gl9U)5y:^x-#Y_waYv%q Rb.qyCmA2|wW;xDOQ>>oc/_{m\Xfv^nRZ&7\zfd cT<> ',^$$^NA|;bտD0ot諨ȡ)D NjI}@;9hv} 0"T]=U^3Jx ҿئs\U{orZ,m.yM4[uV[t8Domoqn]3 XX *niF wd+]Ec BG+3կ2-_̴șra }v+( GPQR(N4̭%!fk朒明4]lKokNV?=S;_gmfb"6sUey@u)ʺ|j=ˑ΍IfK{,= A,҂w7$U|l xIPd!O#U5+(A@sq xE80'+ڹdzFgDfO%SLϷD V&wo@zQHءTI*`gP*WCk){Ɗ5˶%(Im-uG+2^d[^׳hV >Tmgd6Z ѷUäAAMj=r˫󬼏@X6eB.ȇu,m02kpW<W=iVE_J%&aube:t;+xXkNlε,/n%evD&z𤜖WsfLTtޯ<.f.]ebxlzbxmwkM0w u:#bb?tHg%BlSӒKabUg|gT_R:Ag汩[N7鶪(g0-Kćl7'oRZA)ޘڨsC=W*t VH=cy) 235G3! dS7% p8ۯ;w5+k'Nߥ\4enaUxˌW &D-"ی00DzI+G{J9 3BEJ~O Jͷ^^&HF,tM/\uZH΁N\~!;]!B# u>"r.f`9Im}$A $:,J@FV6rI!_{n;QOqPU,@܇)n /Y &2|<]sbU)u︚8h@e9yL8z]_%rp(%15C.{^h~\lެ"fN!sA xդKâXWKhcU$Uf rP_TFzPHy dJK4vhL 3|tڎ{kݓ6-Q)XpXwmi@j4`U0e zgwȫB"A@ S \OwΠl aȘ 3vc} | r'f4y< T#? +,[aO4 >%Dx :z`惹MXx|R"Mg"*W$Ed5/&ŲޙM1ð ji٥*.$ꎒso8E݋>YjT}W"!<݊`ʫ Aj̑z,4i۬3hh1(n'V˅:RRCf85ff]66>I9_'4 ba # -mkW.994gO~V*OBMu]qk|] (Ap5'Ԛ"ִ͂N[/GKaʘXL𳽆\hJH40M]Z#Ь%]b1JeЧhsC'\klȿvp? CloP*TG!,t:;Q{>t"%\rw O6״yF_ƼQ˻`j5>Q|uRCwqέ+\Bm#jPx>|D6lgMj+e)Hg1!9Zҝq!u|>] Bng.q~?Zv{ M  Dژ8NjZ}k2 1X>Ӏ1+ *;wgHz 9u-wMw^ }QxB\ݩA-g` bU1#h0 ލg? `#>۾| %U3ɶf_zŃ e! Xt"W q [q$rK)󿏖 iMBn5]r [Y"&g&]Q^aap br}CsfuoqNXc\Z1lmz|QtNy <#NWPG.y14;p%~=ـCtaAVWi~ Jݡ ).d6w0FdV; Mx)S`κ]]ห@>V@k_0H4iAQ3F5r̉HHM2J?jl|#$cB"8(U$DM?dh \&:'iz萡L9Z$:bvF4?I"`]PK%zQLr&1,pt;cܣz7Hq4g5_y<8HXIFncj~2%J:IwEh#nLPza\IdEd9b@zLȽP| tqq(#sC*?NH$$e}Vy)@,io 39?}W5;KvB%/7Gn1+ʛ TKDq!?!q*x^]}QMk݇Z3ǩL y:Cƌ/evEB'A>l>]p _#q|Uڵ [B^kk1j>QʈC귮6(UqkqG `_hӃ*DPD-~¥v GO oHӧd;ZKUР:IWlp@wg?^VAL&ӛ Zb!2nr IT5uCLL^R>iPFT P[rlus5rqA[!"g'ZN>~M,5 {|.[vXWy]IRv> ث{g[i'۷Z7xl'Y9+jijY7_( @QO%#*8)uq 0攀ąj9&@ǨpYꬄR8tBK`$/w>1D虲;sCS>ySe Y&xSJo7Hu[>[ӤXJ5⁎5gi\z xe뷫~n%un:J?J 4Rԯ*FLa2{ʹ3ü?fƔ%jRJe50_F ~ `)oeF}`J@Ayi̳ }=:aMTLHBte. eLպU$'Z8N.1ZbB ,oȍ;6gP Wq7}]qL;_Ѥ( @]Z3=q5=B`X@œMs6AQs6pΏƞ ^;$5-'15݁WP>dr B%^~G^T;?t&;-f6eVP=প DT6-4/q/gIkd"d;ch4\T2.?<3YYgk$^Cm k'6=uPMЏN)ѲYCud9lV PmR_83!6.ݵ_7{`9tw}3BcAj@OI5b]oI7euI55D+ ꕍ]MOcp}2;UCŶ~`@ |΂5 㒞nlj@5/к/KjA[ 4sVFqJmNĄ*/Ma,s7j_Y=nEё`UkI$G '_|"0#^BU&^=-4н,tZ6KϱG}[a6JU`3q7> $N4dY"-ϳŸ ?zf@n7CI`{߀t /.t  rœ~BQrzFVUnȌ08<0~V(mY#ˉQE`9{uЭnYN"{nm~$U%jYuk٘>CHLr c^PN09ɶ:=Eg:ҩppf(?l?JSlCܖ&H&;@-jM9l2.xDŕ0fDK!4P@mCc h9Ph7ÖvѽYD#!űӑgRNvWf5v~Iu{yTHJkGYL%Ozrədoz|s̽%*X&NvA◍w] .m}c3/tnTMڟ\nީ{PH Zq;6FJ< L$I\f<:nv[ى.uJ*QPbP_ e( %IzBo.1_[W^rS}%a൐e ~&݄C343ޏ$?,uoH Cl']{_Kק\5OlN4Mֽ,s~XdW3EN]=G'3}!S'|NeYHOm7S{Vp*8Z!%H^aǎ_G ";3Dm0(S&fml]w99-5^)'x W&JEK髕/|+~1)%q\O8F2#51XmB({5,preF ٭z, 7W^ e/O;wĈSƦӄõUFu.^4c+|[tYXa vCxyYhhYx֛rI1mݷi?s48zMRWJf%啶xg?8IIlLԆ\4g]sP@rY%zhF:}ioԹYD;[n5M&},ũ!{z ý/qsŶ$#27R=bސ:(O<6_׽KP$zaf2=Wzb_I&]e#Ld_ 5Ԃ0k$>TBI|@#2EAJ Pߌ܊-WU4nyv qy>lm ƬRa.x2Sg_ke"1/J6)C *~AU!nnXF ס z}$Z|P:Fs9D#'U6 B$ h&0_^lﱦTn_jeǃ:Sxbo#9߈0c݇Kױ֗~ w + zVV</)E|.ʔi "j:04d '[QrW -f$OUnp̩1JWZh$PGu,N"ym٫zFס>݇5^o._BHrUiAZ-'ʹ1:p> FXXtjrӍĚ7 ł?f9bttʊ5zIg" ˄ٖ A%~n|JnHrQ&Vдڭ/2mLʆEfUѐy$^/Ăo=}ަ#o,wþ$)]nP#uD37ڞR?ALm0=[2 f\dO 6)vW/% K99 +2klK}xb,(JH請+r!Of ،{)q8Z!%+𷖉Myq??· KRMB.HkW741$ ,ahS!ZxBS>l;SCtF2r5ǹ8::bGCYĔlZ*ѽkK"ǏJ$xrf$Y6=U.N()uзLs%;x#h(i2rɳwP覉+d۳_74ˁNQ0;2{ %`@L==L&4HȐFݢCz`-9V\5(fDSXv`κ٫C--"吤# rgRU9RYN6#u_~xy1#'[|o} lFKvv'ZSK=g3gEv[ju?6@!v*UlTY/و*ɡZ}fj*V;Pz#Seq4&}4-Oq[`jTӔ#BJtx'1L Jc,TESf`(ai@U8f/{/]J;7竼/RuFBż/UwS,H_Qaf>AEW\.uW9Tq#M@?"/Bg%EdhWVef o9ݝGԹFP$ݲ(؈@[>Aʉv|B~#%?LKvFF} 5[B*)/¬*N$JPIl?f)){ N&^&mUb"u}滭/2\snwt\pf41:NĮ{Ӱ R[.4<mrštL$۝F5 ثjFdEHNč<]?}ւP (=N!hBF\Q9>}DK߂;V5΃d5֧Y[IjO15ð|Ð]ؠ-\ki4Nv:hvXU)0Dtnp"G) ;/`88q3GauGHC. =UlDJo~MOVj ;*Yjн^p/-he'5-| ,@߀ҋ\@(ߑo!ĐPH-ѯC+#N1ܽ ~l!Yh0v8C#ߑ%Np]F{/Rx=F [@9C4hajO;D3Q0O~&0WV.YW KIÄ$ܐ!:>uoyi ].{=R፶JM0Bnwd8(5lي3µK`{u7v&i%gBq4ٻ>4]Z "Jou_fz1ʮJZƴkX]3oP1mP]h,޲?,Che#כܪ'>7꒰nxO gae|iLfXn6r*0Gm삍:Rmh~ѯ;3K ?ydL0x lӻ۸qg]N6fIb2?5a|m0@OqFaeeP@I?@hJjuԟ6lTO>'ӌbJ^ (>e2uf#=Q.aגfj)M)m\~tvr qnJ8O\Vb.C,c˰[wO-RhY鶯pڅӂ..b]HۜҏN\9p DڜW0'z {Q*2r!"|LB9*obDƌ!3Xj)APn%b/ 7K V>0cc*~d&n#FN{Thxw[R9X*hiJz5&jW+Ec8 x}y&۱qFK17#ȓg@'T)*OM^SJ¨RjoMXjcS7#d*fz!"OP@q~X ~3tӿdk]x : {rs0dOl93 [tMy9@e=^x0F+DtN_oں!5Y~4?S/_I'wf-HnGY@y%==ޫ[zy_rs@)~I>|7gOє@6 <$ $SV5JrKf@ufPWuqw޷CBߦW.{2k*Ӯy mNwF< *A|,_qVWg@nZ4IE>m{iz5_Х aoEڣ)ړKVV0p6iFxй Ug<`s+,o<9f HA#zds|ú3zQIe(49] 01=!~t"Ӆ/]';+"^b:LCX|GI8OCstp94jy@䝾ZLմjQ?,{s{IjauY|Ьo-w_fm r̫FRs %ҍ1?Np#eHCuVANi X8,48^1YfKqkx$BSo{WD աWw3#\[cfmz֢kr/hxZBƣ4WܢfS{NHu<ػ 0o_ vo)jގJN//\\gE*4)20z735+/s^"؅7TEVsk9u9_ Lil#= E^!/3C|XO5gBK+64nZjT0dt@ݐ?_u {Bɪp_MnD4< oC?0zB9%3]謄`}`kW72؃F6EcF8CK^I]bkܧz4#TJ2@i$ok? 6—.KIcaDt~r!8U#&qFrpxQ<*;W<Ϧ?(2^,@+xԴMےpf`BG@ק' G LĭƹV]V/\*͚(ZΟĮn |$R*B8VKiug$zy[9@Ӟ۪5C݈ٻ!%ƙҙj7^q_wKsO" ) Cү`^`H-kT&͋m {;rl@_B?IGU F5muMRո pסVאȿ@Wgpa5ګ׺cV!B[<ʩeavm`rJ")}wh+hvDlL#`_zpf})^~1V~zgcH8/e.v;3D JgvU"M4oo[x#78_~_D ir&uYȤQ?P0k^Wrxe0sm֒sVk:ѡ=D/,^ͩ^ ۊ3D4b@^񒴏T6 hJ׹0\t&fq.he%{ vGC7|\-qJ+M#yCy}V2soz6.~fGh~7+NqW&-QLj;?JE )*0r$%+~Ҡ,׳&jy+Pq6}`H7/9+AnQېwRܲK[~؋:ꦈCjߞc'N3к4dW5{XvOzP]mp,LJҝ5KI73GHat= 9<=uk$CMOWqt>CeiXZ} \Dzl e=el <=vWgayݎX[.L`ҡ0s~WWRlWz/k჋Oo=SnWRZNU+)WAJ7K<]]rNyg} wٺIUVYAq,~zWR&w%FAgyc yDD5s1V k=jwv8dY3r cG2q.U#:lV%>,Y_b֔$Ei VHPj^jcƞ\kۢ:h S=uǍK9_T. fFIܨ1Tѱzt,1SE+CN #kecgj)D6stCj2O⨬/XCd kU'_$ナ4FCr6FE(dt%erMߪ|o j-M mLh"hfUI9ս&<,ӽr6J⻻'G]>S bb`z,@ou@yvtyNF4[4uu\)G]/~/կ1s`Uth @9]W}L!V&329V;LH k{(^Buy){EFvh[2Qx&=,˦1yoZUk9}W "V)F$j%̝&kNábr&ҕXE$_$>|D}=ۈ+(esDbi1%<}RNbUnVʅ¡lbbH% co;U0XcIvޣNP(w  w|fr,mBFb5"X@3kğ'pPU=ay)Oۇǿ;/s/&!FH^,zǥ6`TL~-=ۗxuIj9{{ v7T@H>\):~F0ŢvΫSN'PІ]H@n|ğrKqM ^UqM!,?;:h5 Zppތ /cT!5ƒ5|JآGxMh_xjvd<5r9T. E$\J%$H3ŵ\þ:{U/h&;~iY3@5XN:ttg?D?-I:~xǒKnj(k!K@E-I㽕Ͼrt#G\>d9 _LK_E@P0QCA0]";xKslF# K"E  GŵN'xa3 ,s>6at{((O|~Mv0 J0vR7g?YBGdͬ2i; @V="q0@pѦ/2PsۆێnkG,C5bgP Ҫ򇥵'40¨䴿aļ' Q4gƎx|i7')+wSǕSeA8֐y)N{yvPԽ6 ]T;!޶2J~A;=l"Teꯑo͒`nykلvYدzXэm碙Wq jg$;lþb ,[sf%۠y>hX4w8W $;8=r*b1r/7,$3K|2蒯ǐIjy"gWbAnzYgpIN^ZX{d"=Ț曏IyL;fg6 ?GYA7G\՟azVqI@46j7Ωc:ײ$cİ2xJT]6oN81^TR)PSz*WN5](S[ۦ~q}OTZ qntzYzOTʫbN ,7 ?Qρ YeΨu0nwyzIՖ%N@@_JrZ˧]7SVZ-pN䞓Nh}pNp "q6rv R6 I12?]3%ݢk۪8"HJe`^G0C]eij3H{}\5('bs%#m;t?(6ѫ鳐! yLd# A[x}*,pkjs5'_ozw#H%aEg*u>Zz *O9\$yGeVO\؄tG9 GI*E|,JSy_zZ9Fo>6]3ga#_c^KxRi(|w*Y`m)GyLjFaWxChfYLKcxHLkax)g!:VNw?g|gŻE^d=3~Mlp2o IpXĉ*B/Q]h:dD1ھw+V6H *.LGom-,zoKU$SUiQ? K IMӹWo: d[kdB|Ԃme\,)CQJ<_.[z?'98x}Lu2`NV; <\k j>ԍU f'֬vCQ\31+a:U_] kpG)_ ?{ku"fMŘCVJqjW\#/_@ل)ѶID[Z2]NAHhs#ў> (a5s$YhB&}C'6f8bxodʸCSDM3x[$C;?:J0] n_1L,CA'71KS]\NWGfjj9j{׼m7B8.jc oBBg)5'dBP0~a(IChpGɳg9F)VL*YOw^(pi2Juo %;Ϭ]؉&Ya{xuЕ_WGpN_)B;"u96hu$Tpc`^;Ķ0Pl 3}$~a͉A&^l<&\֌!)y/|7LZl֔m2I{Ҏʦ_]E]4_ޮalgbۑce|pe3kpK 30|v{wUZDe]h#}V/3q6}<1ݠdNp{[ KGGAm3Mt<8 hR3f۲Xd^ tDžAs r`YeHqo5 }~54ƣtq*F:Lk2[nFk$17ojq0`cBk)qO BG3/9HQa4ĴB %)uı[NwO a6;T A-<;n~ϲWOY4 #ܟͿ3uhKǗ jJK%W.OIJ?gѲlv;aqda8fQ_ m밁2̎)%oPPÐ M|$*|?Mk)ۈ?.޴E4t;hD\(gb(^@_o'z[Oc1T)̪̤ NLN7 { p7ACۚdX$2*kJR>љT"$ʿR;=~WCb|>E쒷z\'>OiI*|D4?h hI4[uӐ{08kUVZoǜ?M`8L+a nգh1Vl322҇/,H]6&݈b\E.$6)™މob;AQ*x=a\2o\Yz,~A!=qnIWM%ug8Kb )P 0I g~`HF䌭A!3^: h!x$3v<.k*5W+6_H 5#Z6×W$u6HseZHހy =ġ*"H=4bua€! \yi&"7՞`\3N|_ԾYDNDyDP+mxXpxZV| &d{󌷐6ـT6H> @m=_=0sʼUB(8 R@plc@Lu4_&R"DBؐ |G&`ȇT4{Ny(hh!wgߚd/4M%6HO=Sp(gߺ:_2FV~1} ;IrYd0QOQ^ e׮.-Òi / N;Μdoh4jr_Gl#C+A츳s =gCC14kyz8CRpy T7TE7EraA?4n'Zgi(᭽Eݭ[)SXּq]@ /b3lX磝|dp{{[R~lݚrQ}Hmk._mx*B2$j og7*|X\=l̐=Es]HsfV'?-7\` ]DfRݔ|m pC*B_ Ք~Ѵ=*'na[ +<'ypwˠPLn_vTR>_vyx+^"'%Ў0 )Ʀ u^JT8f==a۽O.z_6jW⩑VV8@4dΌD@6ALL?)mGlabR(}ՄeP/9o|YI֘=s;"vE@["G4ѝ9є吢 " 灆SWHH ;`Vk'=ehPbJn _ q/8w`,4X r׍?8oTZUm >{Oդ-//.\F_yD?RbIl]64!UB˂m9YEX,EC̬?\py>w&%TKlt<VǠQ! OG!g)T"qzǵlw~Qa*vZ] ~ kxAILR?/GKU\еFe^*iy@"I w(T;9("?4k46UL@=^"ղ{|是zG&3&A냽Vߜ 4̛, Z#5Ȕ)-*E鍨(RokcmBCywq;|fK 9Bu@!}SaVdM)9+|M+kq!󙟠;ե`2Fe,>AQ:P$ Gj1nf/c1:)s9wQهȋ&lg*WmAn'x)'N.fk1_mŦi?FC/#LjT7xl8pWjCfUg ,+5tڲ*O[8A٘} erNRi)F>2#!n 6 H>I,H"+{ȖxHH 4w` Ŋg@t`h쥳h4~UAשgীXrƇsV<БIS>"Aʦ2O:fݕWD$>0If2wM5sWh ,o .Z0G1{͸vN!>kCA8EDǘ2u:ƭ>^A^-[δ/@i@쳒 Z*"^;p%Сj ݮ6u>ı=jfxxd~H6 g Fxd~xQ#>pWBK ~ iߦmKONWR 1,Q@NIRv܍.ʹXs3aw2- Ytנۖ^lAk! H:U@-װ4&A:*CČgŗ==|$8d{GkW3Y7!ևy `?lW{4<Զ:j(D@ -[K'̜PU5w9v` IrM Hų\y?/< cU5GA^ IOr9O5<õ)М˼_{ϒjDl+ p1k;cQ -Ǫ6Ď;ܻo.h )Foz-9:kgS6F/+,"^Ŭ;rq{F@Zz `jY{*/3^sܫ] y=[bNP˭vU\r}ϴjۖG[x u yoCA={)Ǩk|d؞q9*͈ D-/g 2v"|n) u +Xa3nhYhSq=2-r(Nb{mlhv۠X>3f$ {eN75d4Pj ieTdiBYW̰:F ͹̉YXg!@ӈNgE'Ia"UELہ _l3 E0mռ3  -,)/_wc}F~붍Yb[ʀ7XKD:ɂ@5Sb^@5rg:3ga݉PI:o!/\crHEٍx4CV'lP&I.s]l@ЧeCD7!-b_ Sϓ{\ Y %7cxR&V9b"O e/6\^|4!{,OdV71Wls^:/bKlMR4?$+YV ojΜQo,Hu])]y!8KpJ6,/wѥ*GmVt;sBc]s8}GgI]q˜yTݼQ[tm. lΤnӒ2zzZzăf4I bL(j*'gvk\ح_AKZ]ઃxf `ia$om uTEY/zJvdT?} yeJo!! _rs-;Ys xp{"*n!ا>kr&_:Asa2N%\ƷܶAe(( 6j151{x鱿n|f/rvܴr7YJրGY[S*P ʲ+h68 ¦_5 *{:q =46 })sgXk?C<(ђD{N (ccw/0c:R0ЉnA#´7Udkb3V7JO>m'"x X:#_vO?z]R@}5Ɩ_z a7 .y^C`هߓ忯X,W˾ !ﶣw$4%7Pfr>-;˷ (*A)#x^k_۩pe8`Lb:pD j S;m3HzhÊ}C"eK+rc{dHSo]?` u;m;Z{akckZKJj@'wdDqs:5_# OJ\s0)fzGlᒤ1FA΋89yfԥkf%L\N5 #ݱzɎl hh`KSAnOFPR Xw >&^`dʣm"6Y GsPAD7ZFWy/LsSٷ-* :gzrvoG4|<қ%n59S !^UͲa&ܐ_ Ur*) 5~3d#OvgS Sdy;fЙ5yq,uA^5FN(J%l~@*BRP+"Nw@|7tb*Ewx m_9&&7 %ш&ea2d=xnսadcGO@HKHſRN+{G!uU`Z;FOo`sp\˭Y> ;!c`7 I1H_(DJ'_f|3h@ hs0y1c6qͱ3G228f81e%EUZ@l5xTYza /aE(Je͹ZI٧ToX[ JMt,VsE-3Ndr54:ԒoGtS!|345}XꦼlƋ9dIO:|ېj:4Er2;3צa|i6xkF svSCjL;?uUN¦H,1L_S˗Y1{4`C0մCT6 erچJy܉Ws:͙Xj.yqTe >o.*u40=+ ['֋ѴP`xwu -3ٿ݊-#F!qCn+9kWJ sLl&zX+K4ϰ8{jwi\ ]h2DЁb2d hxTsI͌I|3.0ktcDqJ-1'܏]sw;X T,n.*vYCP#4DZ(\ (DiQ7SHsD_RKrɟ,Yۃ-^(am_1ہO1hT0E.ΜĮ"p<1n?f-hGڿ&!V_N"l؝H}TBp!̚ɜ,b W?T;l|gGpunL$rgսdp 4L^ ׀nsL.wsӤ^G1*Y#Ʃ,ۧ c~Ukn+T~y#'2XxEdpJU,/DEq -Uiymܷoc>cζNc{\ >.KB[gQ’k+,DzPx᝙@=􅅐ߧ\Kt(a[+QG(gǮA[Т|eyA_U:?O 5&L&D@"汽f ##En HrfdJs,m?Ę/dIPx'*M2O?L[:Z9$u AMsW*pZ\+M30UR84k+ᔧc%Oϒo)KtKudh<4<~2:;TJSm3yQCD ($MDpgwY)YrSJ^̋|V0"V /e*9xݔU0f 7&h+~5G/]":LT=5Z]e̝kQO+CLG%'mfN7|nYS/C^SJIx@l=}O!DPд in$X7d25HI i|kdqwtcQxW+J' nnZŠoʸv%\ &[3m)jE?%kO|;깉\fXw[_fjnhl$Cb;Jwr+ee2Pe Je>#s>=ih2EuqK!X{&osE e&0vuhK.߹vҺ]呧bW)Sly|N\K=n⬣~tZL-L[Y Nڂ pAY1z_ W0.pUt iAju<ЭIEEٯ>>}&; -z*=Mή܋56-: -cЅuԳpt]K􂽰 |Ҿc$1c47%tN'aM,_剠8ܿu[ѹY32KO!QgH]/j͗iB 7¾Op>S ⦀wg=2GcG@s~ۏ,\iԘ{T5yn2ӇbNޞˋ|WI Ϙa "ACKNQđlCW Ƈ׈A6_L:ǟP?".+"vS^^Q]_vܡUܯ.(2l"=AQL_&M0ςF.z=R^v*9z\'&(r8ʖ܃"_L1Aٙq0y|3sQdmSFcL7Zz9$霉/zz?+Edˣb%¶ ^AxuxPu3'kVXTLym>+UG [KΟd@dsTe8ʖ=a2Q]GHn};]`CB׼^Tf hhD{SlH׃{c žj, :Rz*:1!sk~ѫQLfƛE7Mr;ǥ3; 2AE@eb(qBH:cp.^|5Q86VX ;xQ7E\7 ÃeK@:"mogm ^X$E-DAbZw q4vĿŬ+QY"VhF=t; rJsSX@Β9y5!,6%.xSyV:Ly/ںٞfpJN5D=:;o\ -Z+9Hmd^x~ǟWD ǭ::{Z|5f" Cy?P0XtW85bkaӿvN*ORS8u t7_"->p`IyMc>aZdiaڳǩͦ2u @q,C?O)^X5|tc9SEX H{34%mgQ<4ٳo {kvEKÊhg|1 ,̄C5]`܇R6jÂSiR^b̛PnŇPq'HRS \ ? P_7~){鯡C334DFYJ#qf,U*|HOf+Ȇm4 IDKttoqI7꺳jm"sp$e\?HGooV=5pF" oוPH\G>?HvBb'cūjgq?;6|C[y?Z7:&sg'$pws+|~׊0bv~9~,swqAglb `d {hQܒQ_o}xU%Ci !8ˀ}*+#ayȱj<$rrXp^asJͩS!f]% &vMTWݰ k%\q?T!~M-3Dit<} Nߘ^=dmٮqZ) \'606]\N~#&Vը%%u@!o_FQ@΢Q7["'6|!VѰ|ZféKOh~fLVUe⣺mNlȣ>+ϛa0#Dpr̔4SD[=E;(?)!Mr >jc<1.I2r'>*˴ԱHYwڨvKw±;̜N䦴BS6wcٲ&4;:/#_^Ŋ5Sdj?tGPȟD IG.Gveq,HjÀg\-*}NG?h@.A`j /el'l0=7BuQD3Oi#4 w( *Zʰ}KFgC-mT'^̙@<`r߄hYؔ?D^!Ȅrf40ϙViӘ1m)5].u 7(U %w{2iȸ+ֺ_O]6B) 0\6XHWߔM# r>c}gb %ܴX"7kĈQ*o(ɃߨFWJ.J>6蓱*`]hԧijVm}jt5!o%${hhebaH[ y{{9‘Y%qs,g;{(\LD})`O^ Q)N?a(i9P<$7QIyd{ JKW=d T#Ui[Ld7*hR 8c#1faZ'mx%271H5;TlЙcQ Ӻq%qU\+ o}Xqh.EǙƯ3R8E[؊.PRk LϓFˉV!IHQPTQE]ה@B׊qDnTp̾fUDۧDЫ(1ZR|;| dy <-TJ ~cifoK:7kB}ME{ύ\Lʒ"(B J) UbO2QAĩù#ES&[M \h,J."4Af *Yuqmj^*Ew+bN$XF/s͇Vi[_ۗͅҲ}ie>JQ1q߯LLs4.1Y*nTJ+҈F !r`V'7{~{fôx9x б1Η]š"YCUCZCeIj>癈/]wX3U2?aේ > &CÅ^I2tm0Jsx\(̠ %DKGWes o"F{"C#H%EsK4n*wmҔe^8vՠXC7ПPJ*^VŬ^av-ppkvωjσ<貟z=Jm#$6w݆_Ֆ$ ?aUϙWy7J95WK!WrUM\<"_v<=qV,7-;0>|pɛh6!9haĂDPs"~RZiihbOیΆJa67%XЂe}M'vǠy(G-9[Vdo&`җ2u431eYB_f;y IUz9nn-@˧IIc.Se+/.k]\2Ƴ]@=s-EޓۺZ ?p JNjהGap5po [2B>ېT沺&Nk]La=R'o#BE񇘿'*1[M/gйׅJ\h`PY#Ю^B@PP䦢C 9;=\UBkNBOF3*4 ɨ)u"EV(/lao:8#}|)[gxLE5G\e#|,Y7I;%x+%^' gs]Ԩ(0&5Bu!PU+2D=$LV086}VfQ%"F;ht~κD퀵 \d7] [;xJ*i&ÄgΌ7nAɽD`6>g>Z{UvߝlL"HߥI|Wbq"*DZyq .xFx/a.[‚rvm͔#>t"r"Soza7NB' a=rroP9${wfV=yhuIps($`F1o'Ӭ8m9!% )䓐:aAzG'4TCj}FKZ4}*\4i@XCav`铚LESNИٓ hԔ4ishV1+")5p3"nq2LxKcȢ J_%ll7hEBU M`D@TpZlۏ0^jB 4%@ Z9:pTԢ& /t\5Է P͌TXn$a FxQ?GƞA8@VU `Qd&"V6s[ dynI%T&ץFEUM>u%ir5l63o-0OLIZ5F욄twH!IںFԖbx$Aȏ]\<ƣ䤵|=~7Tf8 F(OZipkZNǃT;ߟ_NU۟ι{mUb;!{O3홺g!TM1Z2kjE{򈷫N(v   E1 <o?5ͱm]$8яt%n6#ƻ2 %!+* ȍEPqAUXJgnOnlhv6 pմard$$gh퍞zV#9 a?v\NC ,Ҕg(=3=j |=,ӃHErΆ)(ᦥN/+&>^yq+ _rJu&I\ iJ?& .E94ָ GLzP 2 dad2ɼ貿c/ ]K|"b~F-ucn=Q#/_%oZ,2ƩMF8 A@T("t4#݂abY u%T~}sA~Y$^TܴNpA?1CjYO0JK)JϱCIxJӢ)#F29¨9^kp( -y8awYt M蛏P!2{g&RdHYoBA^dR ԧBїua!A1 h7½(Myj9N2>pه=1̻#f)6AпP?N_q5~SE1GU O\=Q "oa;|y.tbG:ZxTNrgŶ\@rJ$>,PsZD!㉿+ n^QWOm S²P7T5[OLhlXtHl2}F=eտp]jgQH3%y 3Sd;:վG_ቑvA3B`B^:-cj2JysKר>Qau;cKȗ꬐K=5ߩ4P$\F ׊s $İe*euY5JzCs94 YY\a(fii2Ž/7lм!/RyC]?H'E1 $Clmfxh.{]e K'9 5O4k U+kg< BoF]AskUp [ Hd:,w5Je}`*V;[ -irǚJh2Mpb% wz A2a(ft96VCh5Fܗ ;$dEM{'<qF5$4#s vL@5t ;!y]wNUs|"~5\F'*fQϠ =7OS>;**R + 6}}!}+ 򽰭> K^;EelgH>{mti UOihaLUT ATNv%)|]kt5;QwWUg [D}&V1i ml 8jV⎄7dm_pRGt6v׹@6)->I /nKB<{Cp {Y7ӿ, "/q'!mTw͵*5DሖaIq kWc%%d77/N;.{R)~<#;idpH޽^JZ% D;e@NYשXHMso@Y\6n;/|rm "W4P|kS~ml\^kϿg48q$Q2QYg 9dD^Mpw9e_#Go`tŁB3~AM_VCc>zIIlk::hyE.kR9Zl, cd |VR !"PKXrV ΅`D͐bwygvi B¸[YѲzŌJ=XB.:q0HDEv3jt'Ԁopy廊I4==0N+FUl J?9DHL Lo4#+ץ$3*b+Е0="!UQڮ Kmdr{Op3E2oļ[`- (Z_עZa ŶO]rcTO{2btmO77KDgy6_A3}Kͯtbhg\/Tvo)+YCC>Ā"Ui0C4qM\&B)S<3 \Y𖉮3!L[Es2muo[Ľ!J٤рr )Op8o=n!BOvQXЈrTɶG]-hzQh0|)4Hvn5g*0o뷡S,XR @*=QںIܨg\₏v xQ`UH44/ ~긡EU`Fx-r%oQXx+Ve[W7(t8lO{t|mutVR,oÃEloVPum~̿HiBK*( /}vE0pD!.}Q峰8}>!/^'q_vyhLIn{d%z9=Cr3[7l~}lL% $2闢}U M40\.Q 6 Gѣp~K{mn6BDy~ΡeM1Sq}jsW-O *??,}zBbr{zJ@5GSWn%OH&\g>*/V!ùrt0)qJZ6^E6+exs^[_骅-@~|Hw76VGk Ҏo&nL6ыG"k+ u7a w/ fs2銯 j=>k{4e5JKD{k~<2عp{^ud泥8;%Pq, e Ve+i iN5_aUڒ) 42%K\U5\zP<|Lf5kqJ%0)g@˖o'1aen\H nFAu,:`{k">a8K"t*u4Ň ]WSM h!)W|#YtSd`oN[M/i'(=oPҫ^:~b}؍U?hp83Cc5/i%m,ucZ׈PrQ&r̉NVapjJF.!"!CDKN mAڪʴ b !JihvX T@鿑.3&BP-UyzR[p_& /X`p\Rb^e卾 >shUMJtI &On6WØ onϲNсIX?v~]7nh/ί}g(B}$snҒR6\qg,Qu3dQ"[H~O^>E-Z{rٍ̽jдNg6$JlK&()@X\Fp5n5)'MwzE{0ӊˣ.N|bqFbFa}f/"IzPK^~,KvMpEkmwY\X&]2i*oG,_/N|k3׸0Ub#4*7yZ@ Ez7OZDVjjLuͽC:[_SfWC[.J(R#h+ W*-PyY-QUewQSyfFR]9ɸzGTε|`hw j]Jao{y:73]W81"RB|r XN|E9W|wDQ<{-:Qydi6'ޟ 0zjZݏaC| S.RH#AۄzH39K_Uސ7lR NV_U)XŅ:)(u>gǔ /k CkL ITY_h;a_<#8zϳ*mn6񸫕C+N#qb_;Qj7P@0`˰NKC!"|uF|V2ܥha[ q(fC*n>e'RZCww} pNsէZ},<ø4*UBΛ%gw(bz٢p;$6ds\L zAs%z$-(lrcLqJIa*39K)>%Z;KfphNu :Յ ͽ8hBa{"zI뺱BОvb̶(c:^-t_kƧRm!Ħ/A䩤!U8J}v`3bdG?nP;Kя2Ԫ![qəbg!G#țm!h#뿉J-yEY)ꘫj#DEbl-%Ĭlƒ`F`` YP"u*6| ,Fl۪vyhWulЗjNǰ[R#Lw?IѨA[vQv ncDpw*(:>u3"QWGWGi{:7ۄY]7:9QuP"UkgC+@g[%"A-e~g"ʅ8 oiKeU 9 y#>In0nSšaq=l,Wz}{kۥ*,J&[+ UUmP#e> EBÚ\>0])sU#Sje/fZyP{C?f@c9!E?1J^V AJcR}~JiMT鿻1.;J0>c"Rw꽼jS#ɮ6 73GubB9B/ h0A|U3І&l \`SwUa&\AYW#%eġ@XuX 4.>f;E[e>(C;![L#8waL 56X-eZppTm^I3ɱ8YXר% ֝vXCHhy+f\]J)H/.s.YYjnO5k4~ThNz٭ǼS}`4?(o9J妶aq< |Vh'Эd;K NA*AQeD0<_A4)XوIw%(-8QVbnq! FeHY[u9L%2zm`OEJ\6X!e1ɚ^ƛ>I~k'h~Y*SwlOs\$l$yhhEv]!!D;K/%(Y#Nac %xYE_Ғa?~Q'G 1qyK1]geؙâ֣Uck_J% 6VXf EV2Fj\q)\QcWNp0U'.q\ #rskْYG[pvð@:"sMƽ⌂yJ};e(>M]UKjW%r0)v nevm;+G ,ܷ|)}HكߺsuXB_ b: `ZdXEq Aݢ"nss2 .\4`e c{9+}8Vi4Q2$1s;7$;"{)̺jD4mgq3l_޲Us)CXoeT`>d:"ۖ~\'qur =)1<蜎X&rԷ%ruaJ̙7*DDHOEl~6# c)Y_q ZOo9j?PYV{ol^dA.5|?ۍ*_GGw2hmAoȴ,Yt^n]nE,+k,Ͻ#~>D|?PK7O=.?HU"tV}"Jrl+;<`սy^6REQ`Ih-(nz;HFj6 DAWsbz[p!ћ{ۇ7W\3q?>OzZKd{G9g$ûm;#KGُkCf*Cli;aCYƿ eͽu_YkJ\" Tk.>s |N!>+zP_(#5y/ %st¿Qk cA&=yыE(=oH~Hky= p,iby?jUMuL oaXtR΍Tw؝VnjUu`fpJ:4. !fno)Hv%e9A qB HUni#aLټD H{~5'd/`kX!?ft/3 ]HVDs WܠU@u8տ aFn0>0ǰ8 V"0!AںlAfM0n٦}={b^foj_9y)]>!^d X .NwF ɪKQB69 8)b9l̻f!иs)k wS74hvmXY |   @8( 3+8kq;-)C%{R:&&=<#<| l憥.W+VûDcȋ6B(r?p+?$[3rɠ<::14}K%$);5cz#~L"%eDul{GZQ({C՘"j(WM\[/"?/^PL54ĢHd#[d<03.7Q,,m/DIt !&0tQ1 HFY?I *ްOU`>YhޣUC%or72iC̣ͦNBi(As {ҲK1;A1S(zDc =+%myr'pR cVDIG'vG-AknM #Ӑ;!f5.>7a5-fpYrQ.uolaiȊ^VD׉"ǒM|ҙ:Ym#[0$Yo"Pk) *O7\p?ydf)yEG/&k&*Hl!dD"޾&DJk٦R1|[m"+.Y›ʩ`dRVMk.4)#e^]݉ll0N}nFADjYQ?垹mtQŤG]EYkDz&ڲo>GiP;S¿zUEo$goX㵤}( gu3);TY4A HT:5lbe*MYc IaTs^x J2 Bg;VHWjvʐIx50&L<#CY>Wm?y@8z (3B)j~<5mQݗb~@-5KcJvJ#@avLҁS$ 5ƐPXLM8S$^E83+MfeHW!CWJӻ;A5qDV 9L◬P ?: 3)L ߻J+a瀈k%O`k ^׫xg؛^E=7tՊsj8wZ:'סk02e t[::86+tOv|$TsYc$f Q LG=H^v+YI+I*iىA3;? ON&5a¦[,6oq4({cD\Iii5^VedmO#u$=Jc0N٩ߦQhܒ>"~!r3Lu4z4x?^9oiwJ6W?dtPpXOAFwakoҘ"VA~#0:5% =A#Y $^|34y¡n^ ١ĺw9% P:`!؉Fwf!`~̺Od0.a02Mʃ4dcbU!zɺjCa%8 qa骭H*Z^`e @&`'a+"+KFa2c5[Z# vx6tA4Lnzt4nexժh]9^Z˂\?QQ(-T?W9 ʞ 0Zw9}p ٳl:Xbt:Cni~hjˀuL[O(14%Iʋ.JLZS\–k }#@$EX z"C5= Ф6`[iZi@Y;Lߚ &GDogf#;)X<3ܮY:uCu;8-d֓JRAP>Lu2&SR$ҽ,8 \0SZolʊfO{[.O})ɜZ{zm:h!r3\Lp)R÷uqHgU[;6KG2rKC& >{c,~ۼ> {1ta<Ċ[  ^@멜ɨq)?hJ/tA]r*.L|z`)>4U{ rrb~#A*^(/xP#a^g-Kfî)f6;3xَwCԞ2{͋k=q:h|5G8- kUƾҦbv7@VT_b@<#5W5 'zn7{J`gWD6wʗ Ծ9![@Ố䘌Jr*& 4_h&G]93?VNcpv5>q:qc"%[>:DުׇӢ..p2@{ގ1t& N\sy(5ghTM}`#,_ 2a';wIy"N_mZ/ǚ#_J4۔@Q8@ɅsOHyh I>"j(oCH|?󎮦 >V2—d6oάF* W7 q4h'eg\w5:hհ8.JI7~v%=Z*YX^Ϯ%PH,}d?<+aw[ /Y/3olg+Ud]}=[VE4w6&SH O)rG\h h Dps<#4C{S-h<;(_hBew$uzJ'D$w`Fv8n 9]רm=*̹jN5_a!j]hsE۝{9FkitM=%H!=ŁI|#+KQ;q?W_ ]?+}|np|L38f73|ogl< oOu"Yf IZ #BP,iY!>xo+N,NL SzYi?S~N#}E"mv͍ $OX~_apE'qF[0FL!nG}:Bƴ&@"㿙J7eW ЇtdSd2 +蒊.P9M; 7$sALӠdЪ=&._=nșȀ[vۚ"F3i|zu ,K #l:^O^O,~1`TQeI>?V10y|ڴv;we[_q8C;C Ii\sq4M/j)?YD^ .peX5c\dHlFxB v4A}܍c b;ʭ;ZI`h!5v5C6F6lRo,3S>$03 2tׂNZ 99NOZs483*#jsQAv+|Txh< kǞjq z@3q~ǡ)ĢI^Ҕ9d3_&wpC:i)vksڤXR#sKl+o2>LY@<1C[Vl0 .iv|Խi.q[c;]"ۜ}Z~,=ys{4ө~f5r#1Z~@"x-;`C%C N1Ri[kXi %'Q_7 D֍T8/$ %3;$0v""LS.-luΘ7.?PE MTQ\Stꏸw]*xXN!vB<6+Mp8yz=Z'6sMWE~25|s!'/1Xp* 7Cܜ u,`2:ܠ:4ݬA|SV۬X*Bw.; %d] L񺀭 f,KVH)HfȢ0~0/ck9Vg3v;ֽ- n|1rK.B2,o!\dL8ٹb9 +k; M?\uo0DhfX*ܔ3zx UTG3%:4o v3V~8=,:S,h :c`7S-nBԿ,PGnx3q`ቪpbR%4Ou+ϗphYj~L˄CsHȪ5r.Ta)iiyMBp=&1ϹcqA{YO2eQ%Q̚}y7|(F4QSxV9SwHY2@ (3L@`RxFbK z<D̉e& #X>"RO{ 0@N9ٍɝ$%,ʿz ,F 534fݨT4vIrpkѧu'#SƟV\ن 6#Dd^w0WϢ4K/Acj׬ gtc.MW ND4sįh#8+\[+eH۱%!$cGeK`va`vWݫk@LIJɌ熮ՂN.S%~,#y(^MTZ( weew7kϡtuJ]BK/8X/&\ 1^zx)E#kZj?.%uvFI;vEF|@Qb^C~,t,82EI~[z3l*ePj՛!A%{bciqMXV`{6嚞eوk>\es4bxyKz3HM]ЉXMke 垀ڢQaSraa|a y.l q>u,?'̂qQ+sJx:#²bF^;:8~ݓ(`QN5vƷ)kkKH[K1/C~oI|+nL9K{[ HΒ(?Q3'wXA.Ɍ&7/'\c!{벅jZ} r>3-doƀ٭VhxF%_- Y%@7el<qaH_1cVZؙUQзL8jC #+lx;FX fAF:t0WڱՆ_(`Wu&R[ΌHalkdJ[>g~~x_0ޡ',*ݑ= T ki:/^![SovP%'JnƫWho:XReTWJ3RßלgzQ󻱇͚ QleP+j O}] -Ցm 4)cfQV!*-;T`˴}ŚDFW BezDQ&՗Pj!M 4#มl`idڽɐ2.,PRFhי_}l@W % *_I_ ̛^Ֆi+#]JlhRPVvHLQ)MLJ?KEy]WN;v\gV|Q-BZ2]i+1!f|$a"BHS( 4O/ɠ;F~O7͓vl~>NfΐږQ awCzW; F 6tt9s8ȁ`t95aⵟ̎ݰ8(MOZ؅; $0VC8ZHy|k /^͘7ܞv*Q8%u/\xb2~D!'ux N[|4Nhd.K$K͠2fymP⫣KHU 8~(nk0@ Ҳ݉T]rOl0,sK^!6۫\f@PE5bgp\z;&9V4oUuZ<6krXG%$ΏH%^z Jj R R@ );\;iB{L&("EJ*,:(҄,]bo"T~,]OHΓ'\@r΁3JcyziHyzFfе .͘uTx&}.eg]]Vj֮AuKaIG% 'Ħ$j{Jk :b!Q-nkmP!}۶S˷Q49^V<0K81Ƒb~{';W\`nMC(-nļE6܅00Q>rroܖZ?+D`Kſ%WG0@`w ɳD@L:U*QGļ3hj4.Oe2BT%*X 6D7:%'+Kpޙ䘑Pڮ*Dg1dGjP[TMp_.SѶ'ьƧ. ?ɑLoFlHF `2NQlTGiEz5o;|уD7-/\=mJ ۣ!ÿaТ?Zݹy R?0& \R_H; 4@Ÿ,Q*01z  Xu?B tR$`1o ,DHr[~k[+{ T܄t%r8I4R=||V3-DNj+ e?%moM*.V0{݋RQ dK8s?5Xg> %ߊ96{kQFZp2k}4P{Tp:CL^o%ч}n%=2뷺.c9hC!ڱ :,{%`'댢9PK-ѱ;w(U #[YL-SG#ڦK^FJ+So:B/vtrXdF˾3" )hpdF=}K傾(Bf:%-e_UNzυN'ƹs#s.Y>9yN9ۙV|_S(QqA}l%hurUիy@śHh4TCk9JԿGߜePB<(g?G>r={RV~̹F?5P3ܝ&Wy/ L?D%OBS0Pt >h{ ^p=hX|ExW_$+f0W¼Nd`IȌ]<9jr~N]ͨ 6xe<|EGBhF!uZi]Fr_q TF| `v(i4"v իˢL!W9U6j$~@ N׆uͤYq<#@!DZ Lr[ČsQ &m\1S~8yڊǰ`ox]9ee aB|/0k Ωh`@:_rD~Լ,(,2̓"Y['(66`&sS6@)v/Yq#S,c P|J^ҿMH)Z@g;ujm4A_qGIr<JF ޗ#PQH88Ҵ` ~<`_=={ED-v5)D}gJ* 9UF@h\!&,'Z!?B+U.uGjc² ,{@bvdB, T)Ew6U1nHӰ#| (`ws>/%"SmTe T4#xм.W\o`8rߦ 8^Yܦ7&n6iT&oc]378Ͱc*lc ?2Ȅ)N]pW,GQҜ IL k(οL5}}̖z2E`}Voo2sSkež_6' 9=ggeuz7=O%rn{9Un>,#r%VVKׄU.tu6ƃV@{C[e4~]فVkH`VƫVןn+N*@\c(I&}&Έ 3tMXqa`Da,% *]&踆}B).LjwdǢH1M_3(ءS~F%㜣XdF6;wȟCCȮ?66U]xٲ'].d9{=bJBџoO@Ht,L7 G'RōxyS2D6{ ޛI_:6N2BJ8$GJs"=}z 'Y\>! >mܔ{ՐpdBg&Rx( Blm ;u0*=>rK[/4,@,\)[a_2,L&\+g7 |>TY=ɭJnvsnݑĩ37V;ؙx*} D=obALjoTz'>3%E?9SFtYٽVM[q\G3esou74C ~xV/_IEݹےGiQX%Iz60ҝiFV`HD: qt 6=-Ryf?q98(UY۵}Rn'mchzA2aFS3Kk ct;yGJU h]wKZ(6R,*RlOk',QBrSA᫹kw,^@1FŴԧϦl*b +y~`ɢEZTV}2 !Q#DF 7j0,S->ڍ$q(ߞ a* hKϐuuaғ!6zJ^{ MfacO&uMn={ݓE}aW̙ &S.7︔ : հ[ߴ6硛x4`~16+-m)qt,wΖ}-G}rċK䗅LMl]&mW4jXwG/l[I@)GaHxGIغӭ7n,! \Wx.ЕЛzHbbZxd$=S0#5R?VtO6Skhc1D-@}ovvq=|L-rΒD^,<&.y%aVdWh/Sa7ʃqr˒4` wQ!n$/oq`tkO6Iw\|]7c0fftJW(h^y w.il ?9R]*hэ^)N,٪ R)%m/rR2qH>}I}@dP ;\DpG74e? kU2A ZrGH aK-sN0OڊէҺ)d 굻trceX>IhiEf֐p9QS^279ϧ0<Ç?SPZfΩ &oDZ-FM얷p{U^F@5+h_ȯ' *}M X]k " ggxO0[^&`TȞ1'۩+~mt#}kX)@JAK{E:hFCTx+)a/zMpv{eu䭽0ts{I(Lt% eH,Na]s KZ i+Toy Lc</{lz1D ъ(á+63~/ ]zјSZ[VlW` dnF!B&@,Q6JK8!Tjޏx7QyHDKd0uP+4A@GAA50K-PM>xqI4 /m;ϾNMn[$Њs<=Df:Tߵ|d.0Ng ĜNX\L{mjh[3>=.&q+ c1=t"n/  UtK%"ETT6Le7ݜmr8zi1M*|m%Q lk0 *+;P gnfWMXe\$?kG'Yˬb ƟWTdOM0pF YRI+[4=X>}@3B0BE{|@=Mbis5^~=g2͡wStahT"وLT)N)9KoL XC <'I@c>c0i(0;+Ugx 66^s/ouzf"{w=bپM!UCYRZRv'ޥY[ -lDr-1jv Ga5Yw}䟘cn.`wM@[YAιlPUCx.t[K5oiWxR@g5FPGO "f,x<4T<I丄P }eCy3TTH@,1+IrA-rZ 5HJ ^C ޿)֘xr` >m;֨X =D@M{! #'YO #؝. \RRSg=pǠNFP{)>=[@%n%$ll9Xd[@pIЬ?,(YJ"W<$n٬awTTWEM!g##2rQPfHRΌ3~$# NrAEOJ`MTДZyىBw)8 `5aO``k' _<0,FDD 9cSp+PJ'*"-5H o6;N(ۼ:Dp( Zb@|76f4plG}>\\E[JjwPD5XAK&C0a o,}y5'R 2\^?6V˭üt$OǿO*(A)HgotIIh<&ᙀ`s}@A`3I.F*^@_qobxh c ZIdWf\|#9ndȤ~Mj}4;jCQxTvwA3d;: ΧDkU|!efWq FA.HØ {ptԃj>pc ,L4 ~+f-6sb7n!*ɋطm_@k/諃rnFKH6 ~BkhB\g6ʳw?Bn\ک(I f:D~V =tbHs!RuDl'r)MUZUe'{Wu{-psi}:(*R˾MxW2޻پ(TCk =92˧/$rVydB3~.<giљPyY WRV^)sL#l4Vy8̦J Gp"F)hiVGS/0aQ9E9)>agxS ) O0s~@xݿ )bKQ" 9l⃗>^z5@+kTB6 qVBS-`SVX<1uL|v ibgKGa=jy[hlE@ˎTrא<-uOQM y-s)j_hR [~0\nԹ?^Eߏ>#Q6 e3ѷ|ڙ٠AM^>H`kXuIe@Jw}_pd_+ d3k2;JQ|(0{I vM7 EL{V5z!vl(!iȾ0{wX5WBc*5Hl5"d`|deuGL: -U#*5+s? f[ɘlX g y v`-E).U }ARt9zV2-d; mk!T[FM^Hm.\z7HFBp٨x j]C+|Fݲ*ʛ.ԆY5`3<0в&Fcqo`䍕D+J W03%9i6q)B])dh:*wIگw< (Uf? Zm4`ڒݹPad+K9_hv&G[wϗ= &xkz5j0S ACsT `5<~%J ARvc4[!d-5Ֆ=8%Hm84+U}^CH!bO_7tϝt"j4dXu{p U [c7Qr:9iq[Iܻ:[M>\+߇w~*\7r!uȻ; 넼(Ug63 TsN$늒w;Q5yoB}r.d{es>H+FdYT,)5~04!y_zJ IqԏkINYCzmFxMk0D~i)@C#VI OqgAxAh#٥y)c !Lj2$)u)Ţp6X& ($-WЩQS/Ej o_,a=<su2R;a]/hE'dm;H[VN(ʾX} <p]s+[M3&w}".$ ?'ߠ;>U1o]|Tc+}d~HЂ/z7i$-u!_ku*i*HqEV6l(I%Q%?P#mv<99^qkXź^蘋Q(3wPJ&{8aP>JYA@/?n)o?l TuW n!_tұDT#$Gm貭=/kS<{O!H0쁓[<@A;%ZAτ5e2rO Zt&/*pr@Go٧YGCf*6kTLi^"ˤƶë]$5ѩF]QKQum+iWa>GϫE8}I,9z%ry'ׄ M9sXz_aHZJ1nF.AFA#uS̿n00 hAt펖o o 9}Q5E7Gj 82#!*rinZW-#">B*)LOVi]ab!mlOEȅЙI5Ic)RG5#= \~qъ߂Jc[5hPnqbAYKivLMzlؐ:WRfn9Q‡ɋXqPK:]SvD$| },QP]; ?Qς9I<6ܪCa m2Y[&nN --oL4IvYf mݒef*6=JXiߝhE]Hc #lm1P˨[aRT ͛ K|P9TWHN^BL![wĪMFZJ59|x;dmk8V)+̷EWȏ xuK&,Bb06C2H+ҧJ[>r?K[~[b=qQnωG7Mfm f5_9Nh8W }U)Z qcWXΐ1FX]=_9Gυ);-c,D) L ZjGI3H?#8@ial[.kf y ;'-`X|"Q" =ܦ)K]H3ߞD5#ܵERO+m TRA~Y]SCc/ n$%#Ea[?EqW.Ϫ"S!A/Q+wŊDL9i%2I%pȥkO*Xu3WB{&CE>l|*n oM6zn``ZCJW #ƺxQۃ\ԅKzT^Y*E[>X#GiPH]8>~Ѽ࠷1A.J6 |Vdrzn 5 ӓoZ "+$tIç*?i9}^Az vrM"~|h\lln0X^M4ċwgJ]]5iWEm➒juBrD\a%3vN5E!BE'xw.WF3Ҁww5Ɂ`, TS[y8(6l)xC`Em(2"amWY#21?RI2H"TAW#GYTɌK@$ ^F !ȘXאK!m\N"ڐTRP 7]LX>Q|V znd_T%CO׶G"\ em+qC> D:95 %QsTC֛*,~FhQ~>HjUD/g4wIM w8,ထDZz9\ikO (٫ʙsvΡ|^0ch:<ǜ̥9 ȁ.uz5RXZx rsLwKQy8'Vq߈;|{q|:]G;1sMRRY5XjCk?i)C]ϗc/z|[jD7fY$f(lwg5G?nj0:,# .P 19aLyl&wlˈؼп+1p8У˼̣VHߧCV[w_MjnhI}d(Oj{x"nL-? ()`1ѓS0S 6j )O@VU3MVB!_RA]=,nj[5ުxFFu(j a> b?bK1Ν'ּoٷQ!t%!D[r>0{X  lqtl=tUu;}zm QeUZ`Ad!Ү__,'a]I{PFR'0\4@yx~B~smܰ5t*&jFJU)ݬk>(j/Us{$Y)+Wum j7SEA&bC;.lj|3Yv[ԊLĶmrvܴ1)$|:9j<#ޙq U~*|XoWubT^"ht шL@6X$Gڣ5̡lbk!ZժfZa[bGb] n6: ԡ Tvwеt6qSl| {XCGs|*,AVd#鍵Fy/JJIɈ,z|ʻ6`H?%MDxr q<z L=5 op=JDIϹ8s v;f6StE_u%%+T ~O`ੲ^8F.!ZT?VWa(pqW/9Ljq %3EwirD<ȟ_*=KtPp2BXUV憾CHO}mn[,ΫFH=>#eF pcq8\wt4^l~f 7j[rͶq ]+4t$b_}=䜓iw<{{p4 $T\cR;/M gDd^ͤiQ՝M?hٝ h0\_&)Gvn\xZcg?$넳 72G۸)q޶Њ:q|>!\WyOw$ryR Dme1aS`a꫾:ns=STs}MEٓ^:Ѵ )YFW1xU gxXW();<()`z!LgAƜicXwHW.1GݼիOSN׬k@S#J_ufSK) "sT0=ɰL|' *) $c vQ6yI2Ծ_Bx\q mUC^_sksmcyqviKP/~_):?DZ5O)AI(;K@8ޯluۍ@)g?⭋ojPѰHU`y"6]U;]3sP\r *Ms_z򬰸 xTYۦmǿi?WffZ;C`y9dLͪGsΒ@W%[ԅ<ؐ$ƇR'/%9{F)]d'0eu).6c4J -/MX*&yѦZv?|3mDHW[ݱo¦~iw`( hV#{ٔQ[W rZ6X.TYԠf,oL`ްF7uN_h:=缫<+x;b}&*v @ xJJ^)vP-#ۊuDxޓA^ߺ3?$SsM7S52Ǡpmq p$12'<@&&)>'("P(SRM4ܭE|ﱺֻքt^vdu\xC̒#:bw6cƮaufRA%zx}uIg9O?;O \YР-[ND0 Zްkkݸ^54R rӈEF O|H0@R5}E2&k*7~tD|ȭwE{FB5Ysgئx9&ˈT|2 0SLp = [FBv3YOCG,0P~*23.tږ 3Aaɻ)'>Oɹj_6[#(K7q=gJo\TP'3!7Z,D+G_4)h^ rf)uNzQ(s6{G>5joYrٱкY8`v?| ic{פE?e{ bcUlCA@"pXKEQyM)Hu5*Jm͚.L̀QR˴_Zk(ԌPLn* NЛ^h | XU'} ab+6dm畎ķiԧW׈ 0bKȓ##&q'5A:u;u]ft 1v\ `bhkWЭvgb: ,W563Rm؃X4&n LuG=&tAՐw@i,Ǣ}#Wſ-}"SЈar2 .''/Z97Sm(֑OX.Ɉ& 6.twFy@2,j8j Mv ܫoM7aK G |N)hx*n9Eb,|oBUgROe]ځ«X:** JB'R6,^0:XHB$(ab6b M9f…ô0 (iULZeo{*TVՙ@vWnv$\smp`Rҙ ٨Ł`Ўbdr׷ ̑W3 MrtLuJiF>ZPcn c'[=dRft}޲~@Gb6'5%.Ag8a)`z_K&JK|s] B Zfi"g }tav]m+]Pgt!?i/۰?{a5ˍجKwcfΒ@{IkubJ5bg'$?}4@XmP3t:Hj. R9r;ĻGv%]@W%Q瘧?(%$u׀7 ks#䦪Ēv@ҫ h #9⃈[qn]GMKwl{$g)/" hSXuHXYup ^5M[wlc<|qLØ0Ĭ;]*YY2gy@>/*ADeI@TJ۷M~߰f%llDžH1e[SbU$Қ0I(("=I|Y$}\Q&¬i7<ኞ!x8G`T??BTAdH-׹ιZYID/mNh6N[9%eX$IclޔwXz?gzBJxEڥum*)ϤW 3f K`(3$ZNci皾_J^[9z+{ B3tޕ#XxBڂR%|ZS?Xv.aC~/7%SyyCB$ޞ9TC=-1f |D߿PMbi:ǮүҽFoib:'xm>=CY I㘠M&5 7U$MbtPP*$hu,kS CAmI?*.J[̣DQ: j,`r7_LO:M!"cG 7g^}BPٜI/ U?dc~U`  ZR'6r2Q~'jTl"-k0XE$oV.d9+t(me щG28%P yJWP,ЪTꇰ+>q3  |r 60ƻ[Eݕ+*xn)$/0'͌KdyYV_%?.XB4z@t2cB$''U֞ĪaD"A^SH~ BuKYh97V,=$i9~ܽ@QY%K+%_Wy'\m?. >{ŨlRa xDI+MK3ogΜGQ1#$XC&H%o{d !b ͻJϩ4c ٍh{bfIDYlXoYgwhrIwp8Bv·bPQ<<5`R F`*#%+n0LĘGL+ZV|SXwy'kz{zXHM#($^0 W`Rq5} nnd::G%vJ*IHo&A]Wl+AreO#E}P7"fuD ]^@ݶ td iHŻ d^Vuz$5޿,fBgegD8mqgǛjDt:A7sh?}ax 8x}{i}6ڇϦM.:vomI× \v{]-{+c{0Q8ysTj(Aǟi>vDD;SM #30t 4"pu꬈3NN~Ufc'M( RQ}-cw0Q5(owR :p5YzѴïgfnU0Y:cmlBGiM'5l(z g < J}=c;d6KvBĶ4Kp7n@}aވb&/27ęL.0}3r 5 <?h򜮢'ʠIwQHkWש"V/tBx2A-]i7ĪWuG= Cұ"$.:ВG\L`h̪Udx/pqrNBos"Ir>xXd"&Ui{1Q7ݜ-JىaզԸ{x=3 >V@^ =3zF+^7^#|.vdZj**qH0bkP֛uh.4m_eVdCN!سF0P@RgMn2WB';.UP!@}|ɰ3K;N[[>sp$PcaXڅg*yEH< AdQPWdSg^.Ѣ9expЏ97Xm-[+He[}V/wl^0]\_Ggn;cg!LS)e#kW$s-zgGm(mxv7mY(p Fqu+.U^r5na % q7"Ppa`ʜiVA(҈-Taj)-BF.73r'EޟWs).7r9fܯ< PlEZc|NqXvhPǯ^%vj^O2s~⽱t̜?Xj ˨6sGЇ{nʣXzfm "U]Gom( b3-% `ПlDf e@R)d#=s_PL>Bf15JsrΙ]:ÐM+1/5UX&F/aW쨩rQA%Ce[`({Z,-D銘.0ש S) %ŀRQfjP䬹,2h`VYQ]2veC5wF2"&:qQi3B* \ˮf..,ՑΦBI:4hw ̧^,_d3ge31lp|<o* }-\b %yQk{WrbW3m]]t0Hsqp+h}ghVv%=])f 8_;7)39K̬mt^>=ƐsRP|,14p_QWm>kkYq]'E\xžg uzBc:evs} n狁dOLo$M2$q,,O\y)~;MBE3ui2]ڤWC\֜X$[,l,J%O.!_-a kOnsqIޗ {ryƆ'#% Lӕ ?TFϕE}D:*Ho-,wQ2OrUX䖞N ~9t נl)\Gb<7_mgR+>%ܣJL/Iɮ cF O ꯐ0{b ,K9YSJM4 q%I) #á&p?CKz$1Ry-xi7HrY[2O=T35,d ox%Teۯw>g 18Ld8*$8~Bʧ4nT_@hn %wx>[w|DMzAy\&!mvv/C^kbDiRpYM2: /h@ qRr舽!W #çFXi48=/V!@:Dqޤ:*2y81ԩFjd? \oc\yLHJS`=RFCу tϳz`<EB`̟}-!a?s^A2M_+;}[+]^5aXU֎2- Ć;zNd5T3^w g_$G2)/)sVr,R~PeSی9v&`jL}nli8%ˢ,X@Q&߻!*Ӂ帼S~I\{0b8ҧJ2n8yd:K^hOY:]ȃY3E.94q`'tNJE"yoSKug5q)k7CI Z؝ǯ6h-R pOTcfMwLqDTϳ\ V27eY"!JɁP oll!'G1ͦ}AXstq'- q񱸝yR1p0}nz 6 tfs~m[:r-kB) UdVw aǡ xrH|yOKdX{,xK/dH;?G%qY)8f϶@=4~<niYryŬP)EG_3zdvU~W0*٥bP c }a27߈KzԓїҬ *cQ`nAن6 ϰr|54IG %h^Wʉ.~تCmSq#OLj*%fb(ٴk³]+~ aV w $LT9I߳OCFuωܦjoqܚA'\!>ح< DlXrR8';*ku`x=RCJ/9d,J_$XHkKO4<#y(+ƺ~ةr`ýJE>ǰϪKymW=igAݮE ^^9@#uJv^B^z l||1fz `#9^1toʠՅr]_) x7N)&xg,aLfaX0; kS;S% ^qMrjh \ie.˖ITd NRAS*ń?:4Rlrs*qۖr@*"+O>;EKAm3HҾ@|xeQmNM; drE8akYX֩=zҌ&H$ƯUɆ$4 1ܰHVE2kc-fu7CZOz3mW5,x'b=/ *-Yuщ:2 4b͑S ^sh&# P\m~ _Hљ"Ͻ4ݴiYgZd'n4Q-mO[=Vg\86O J=n {"^o3TpX|2"bdBPM ϫXIm~']̂bZh%#P4,&[&gi \rWX`/]2ivjSOgP r4KaWG4lJЉHlX[p7cod9a|z۪ 0RH`~-j7 ;:Vy( oo֎?֧Jr2b=k| "wSqYCdt\ՙ;ڂ)aa5OvW1FA ^=TUj |m /v'?g|u¨*M&~I;l!غu]ٞ<:cF&fJɴsAqʮv8nTlbr"pNع_F{lg-3؃;n*f1~P` (w)6I;-%U_e7G(݀n`Jq8&0_ 2)Wb8f[/ly}V/9zWɫWs 1k6 |hbhR0lkv=kգ*G (vP:r E=%ZW$&vڢB< twݺ rs u;rWV 8@ yܛ| l teMd\hݼvUJfpqأ5^/Cۏ?S!C\}qWæ NʑO :U2!gMT4Kz؛)'|NZRGq}cF;Z=1qCbo%>dTղt)\xʕ'БO$| f4TsU!{9hhR`BzilQG b*`u#9%dsѧѥ{w7 sXO0!V^2D]= !~G `\w'MSY6~)C-L,b5J+ĝwIƿ u7N'ˤQЇDH wMC\O9L'3ˆPE.x}K?,<`DoS.rcSH+eg+g}ʰGFv3W\ &TpS\"5 ;5|ڳ~$鯎69N/W;HĜ0vzAyY3~RDy3 X<[B W6!Eb+~q,',.kkM}w* EEg5;T*1 ZKv;jĞ02W_S\y˽xOz ,>08J?QJ:%!e*hC}}wt1z;D'd n]wL X9/@Ѵ \|cugիC%'wV7aNdO-gr8"({a^LYf5T8pڞjʘX(I+/ i"cbWH8.=֋z|X?ZTWub81n+0}8>ұ '}xYbsG*8˭ @yxE!=n`)L( iwQPSn#丠 V 1.R|\JWZ2"j&T-bE]F3& ݘV8!;I(?JT|J0EKq_.^c֡``AVh%IpkNYOʘd8L'¬hO,#q⩤ +:h;K#Rt@^Of I :)ˉ7 l&_dH=4^bn?amXh{eBi/Q[\,+9Dp@*{6zvU53RwT50(5M7x#QT enרGjlCT虫hb ׾"1t=RObpr^$F_-=2}Cl\l 7>k~dLN}=чHޭX8-b;>l ^LjMt<)N#jU45#ylo81pNЦ,'oGOa5@8uTv[;۾?d%5%qz"*cdVڏ.=Q6fB( Ԧ1+ JM V.BD{rygkwq9 9U V T d4yXL1`j?yzcA#JW<1|f]byۗ8Ȉ% >!t`BÊ3۫" |]GQpãTfVZHayvo1$•aW\9qŝK{6uIX lMy*[-3v7cr$*ŗEβ`&,yL` 9KePxFois?=Σꂾ!3S#nt+YP6; ?BDYĀ vn[k30'B%f(ﲶ쒅YI@!cAȓx[44#ts զ2{قysT0P\)nJqRۋ)9ҜpsaQnmq1!9b*kijrfM LeSILݞ;<_N;Q' %H%.wK ߧϖ44<@S_hY05*Eb}lٮ;@{nDTwvF}_/-~)xŔ UCY7ͻoj TSglP3 vB17O0ǭseMNԉ_+bܩz-XUf1z)Z_q|ánڿI 봪@$K[aa^_o/nNqwQ^w 8XO-1J"wiH+J ؔ6H˨-I2j.I*%dIXњX`WTn7mvxx=Db|֜R7fFOAΌ0eϿ#ZV N#; D)csscD1s*ʄ<#(#.8Ҧ+M'/s0!Ҍݛ׽ӯ?_xN,tGe&q<h&W>d*$dYI^YR:-VHXX9[2Oߘn̢0N aeAH&{/p/MeW IJ ,gԪA[Y6޳b Nqwm.~EWГw0 \;;Ss}P6_93pĆ1buk OUHє`EB:yJ\MHyfIܜ ?ѥ!@?_cΟ~0׳#y+Ybzv+K%óf<;R.L4:#gV(%An>p!`!oF3q%[b% AEXpFb\z^U8%|]cǃNbMs\/njY+ Tmp rtVAi[jQ=2|4rܳ"zQzH|pe뫁B͂_z[򝨅1}e1,.^ij vcHZ ?h]d̝ocr~{V&`#qJ P9^ sBȬA Irr(J'A0vHrNqLN4;1&GSt(v"@"8>I^Flݸ6lU\Zș]'xgNJAD-)îafOSeNaw3XiaPЩW,ykZ!oˉ׌T ]禞ܴgI6+ܺF ʴ@"t6cpvq3z  ~ˑceEZܮsZ39 ABc_ &y26JJĽ1LG̍Oj[ )ߙ{#-lyacZB\ '|1%lVvu* F\T7f++JV^eĐ*вVѶL{(&ɨEemk8l,JZ{U{m*}4SD"bDo'WsnhVs r%{M REyyae3{щ1ȵ KpPHv{k\UL 7ƛ>Ky5Uw>"QW#yBƟe KDi۬s2 U[:pMQeĨ,=Y8,yvȲy$=juCWL`YH<ҹsSmOBW1&)˙F kh.$@$PzQ/K{;ZM뤥?i?bX<4.rK) WO`V~!4z$s 49,9r e„"G/B}Ҵ(̢< hq3"H|4/?9fͧVLЧ0!NfaL+CkAu[ o67A;3OwUʜLg% W~exhMbxy*tpsɮ65&nv$@>\V1VҋȌh1Eoˤ2":0>*cm!4, gZVutA7FG RЄ^㣰QhwHƉDsv>V7uc$ 둢&f:Τwjo\MS0ɦ/boMk.V0S򇳸FN=q ꣷsԗ]^%ü#) }ĢpWp|1"FVe4/T\!jȪL$Ƀq}OoI1_Gj}d$ 't\;ș3VZpD>9:SG0lW@(M  >51+˜NAf,7m;Ka0YV7'4jVTr>7)IAYWԢԲK5R@I=K"L$@la 9ۡp|)ScxǬ$bԲaHGy& 7i\,4ߧ?ܙ˞FVѸ$'q[dEiTo= ]h-ϒˑ r? ?$D296F}JHb;kL߮7(g ^] )Ҍ(NЭ E| 'lv3 ^uCԳ2<<sk:Ӆ J46l.-oJz,'}A4 I}0j>*z6 c(#)9+] V4N0:70ԊQKOloP8udg W` &H `Ŗw}C6GWqsSp깽 EߞnQ6vﹶGpBH# דbHWQpj^~syko6i=KҜ 녗1Vt gKdF˫xwYBep,nĈ8Z,ރkI9o(_?r.ϜűjDkrԍ'$y`6qqe{,VN쎉slʭR0Y`z@1鸝.t&gNIƭVX*q{ ωs$mEF$3Wغꭳ -]9Pm8)]~};^'IșdzVZ&0#eZFxZK6 k^ =iswE6Da,IeOG1Oi4}AlӀZtf,E]btJXN :cт R^rne|ĞܺxqL'CWN:7p`.w.o΋nx|2a7ds$MYθTq⎷]]v`D \ޮNa߂L2 7#J:l8SY {&$j+ /yQC"ɲZm'Rxw *~I+Kֹ̥O쟏zOxMZQN J e?%3:CbX11DwjM2}*JRf P@c0Kʽ%H\_*+$ߛcpc6Sj(VHi@Bmv0P :y;n,&HdgbE]EtƵmSյ$`0h ^ &\p1j !V}?Z"Olu4O3 [/,I'°}G20+0h C1̀Sh0-Tx񙞁wD7@?\ _1|{NoW?&Ti(:.'tpaBuڽ:]n4\OdgMUͅ&A.AI mgm!oV #S'*$vh#23Hmn\#uOs`:u̎xjKf/Y"n+[[؛1bbTCodjYP5])1qODػSh0=@<#ɼjR`7]6;"kh=6M;k,*wñR$N~c=?ěxrkQy2G>=3&rzy֧,搘[4f clׇ:P +l37nB o 蓻9s;H|/7@F =pGQPDA1LE.eox+9F2@og.CNiTs4fnRuz0WxЦvͲO^(l'F ghCz9V NC/}Sii{`hՒAWĶaGghk_!;N-5up3G'"mDbܧcOQReJ#0wD E?fDwZ)kN ܇h4ngz#ٺgmjd5%o*B*AQV+}elYnf-J&CS&Y?.3l$ -Ni9ދHR2$nm&*meY%ƙ$TSeO=daK?dAߋ CJG9_UT czxV6?UⰋWPbx?qaxHJo:D 9ޟq]!>B,N#0!F)k 8ٌDJXT$=oYDG!5hIU@@롶){L/ǟ%cbyW+;{!Wv>wLK0҅ONNw*RU8a6#ɈplGZݭ+ ˥ǣP2gǷOJoȪy6&">U|Eu:-9H-MbD\ie ^ks}6YȦ3Oȁ!0% i>-GtH_H M`N-o6@jqMuaXc+S+X@ʅF\?iLb:P 29yuؼgr6]("=Mk5sq{^:Z16rd~J|cEk#A(oҞOڂO\cg#xJŰ};ޔ{i, NJ+T>h%,xf|=,a?,Z:ghfF pL{9 ĸx\B7m(l]F[Cۉ=G) hjcԸ=A<3W@#Sa&?fU>D3lYTt(:y@D&7n< >еfu8Le1Q G{3A0'Qp߱vfM#DU%>>;=>%ѩ65.y<{-Y"Qt wW@tfeݹsDWczmd9=OLF( 4_ux#g؃#{k.d$D?:˗m7 @P֏cr 0 ;FX)WJ ;0b|1gO_P;-ŒD j۷dX378_Mg٧ǖV4Wn2zX^[ DLsOz kۘʴgK5f>+덿MLOQȅh9qZLY?YJhZoO M)$$)̀+ ıx?"sOxk!Ʌ:=_E燨.">w A$<{Ol[ 5>F9.ZCփz\}K6@Z0*!eyR0=UC+wR,\}p 5R`u;8GͶ6~N/+ :tsm;B|豦J߈o;B0{;r]thj'YbqbVh٭&Jp-ul8؛^[V,vu֏y]hkv YbmA؇8+8Z/+BB1oOx)O>gy/b ՖKbiU1QlR&;OHR o|17a?\Go&Ld ,7h3Wf4I)8ցeJ8g P'HFwcI3N?ԫ"cڮ2p瑬J$Y2yuWzbZHg`(W1lT0 ?9p?sMJyGʹ4aT N$Տ>Iʂzy@)G^vfA4fdAa}LjU~f2R kg?#㱏ڝ<;f}Pu İrnOp) 9 mmb6ή VϪ*X9q3{zB_zQt6K141{ϚF1F:vWH#:S mBv/SYtAбd3ǨQpjɺ@$ǩ'H2$F[R fvwɲ P/-n @ֿsI^%t91phqsZ"#$G[(mC?VGtD}fzy }W Bs k[GJYo('&mC8ar_|6'xt^Yl$a\&Y̐T)9q鮿(_~s\:^U)O5^n(*yFerQ5]MkY𹵈"w㵢\}tE}PG`*b|Q<ۿ"fns_@A3v3FL=;S@C:þ(ۻ e=]j d;|{U =ۮpqr 7 r5Ӽp`1"6]yci6υ8[2 瘇T)m51&D]Ƶ;7ҫH ߛJo#T" G>v΄U-i3kh8XvYèeӢW0Tb}IOEҽ W>Hse I:\gC}Aq\$ Lcy╽^ _,dѤH%@31ѭpcnk(ܡg]1x Zw]Xi$GfK1v+%}@_dQC$7XN&A H*'Ҥ-@y`R\a|7vws(zN d12t5!{ gS$D R SжPwPdjR@/0`^k+oj IME}YNĖ7ҬE,9vKWeoQghQA7`+?(p j@~^TjP]Ave ѫ˓˅`%HM\flz" ZκHvיيJh|qaCVw jR|m~=:2$dY &|/fgsg#vMIRSByB Xӿ;w?(ԩPPUCe jƺO0s繘NPv$e{Pńo܇'økgs!Z>c(Q[}axȞcoָ Ȍ_#n{RW7LyA:(⩣0A߁pn,W 04~{kܰ0 $y^CR;V<FB6䮙y(3VtŃ4,{խV^+^1Oéޞ#3@kni$M:?’ɯ]gf-~^)׀儿ܵes’8*> Nj>E>6=H.cTc kT; zjo(%s >Ww;uYeK.@ Njz =ęd/#crVT ?[MSX\M/Yg1vF30`Ag?i }Dݾr%ãT?]s8I3\hGSrySx"*@v-͈5E~ooiNg?S/O;wZC>q$6BQNd'J+L᢫@MJ0 NS:cgBP_'wQBBe@ 03tH&RhNf|HNc dG(=a}2+=H@_2nPwҭ tt&R(soΉ1!xS!h{cWFYީ]=ޣ2b = ԘTw4/o~)~hV*s;fŎZb@jڈ'>L֔ մ QR|D6(gx1}&g,wv`n{M;}.v3vr +R~y+H&7 .\Bq.`O4jL8;A __bA!S^`wuraDŅϷV*AmBcNN'G$S)hC(p׌cy[Z{2!|SqYL2o4iaرs]xK=I'V/KyN} $gMwDN j %8G<3k_\O6gr#%}(lK!"~#2 A -y6*>!uu[RFQBz-jUium&{@wۡq HN.R$B }%= kwdߠGZv^\kZzU[ .F6Ize.&Ï&y52 LwL {vPк1<;lS<?Wg sjfqdm=PLaen:ҹFCVuFD wRŏT:ÄŰк!Us{ UR̆e86aˏs@| DET..:ir 0,nbrri^%qz NCٟJ}"y4?^b6Mf=:ͼp|VʡmyE4VJWR9k̽+c]NNbvDJ%Tf$XʈY]R~̮wgF`T6Ul~xǝhs?Ubzilp2CO9.n%d |26$~BGD8 ߗoT68Xfu%UfοV!?YF +R'l%O^  !1ݱpeH"i/QV͝*)I7WٖfZro x;%`~F6czd:ם]K2>;+3JWt 6NгlRCsc:MLTZ]A,Ɐ'2Q]obErb"^(|Qݙ0|}=YYm M]Nh&I_OIn 790!R)OH"X|j+ioQbHCwAꖐU3~Ҥd mh-8.Kݾ`/8Q0 Ph:#w r̈1>W:kM-Tc[jķQTF$Ou,yńs^[ 83Z|$u%+LOy,#7_u?@L#9Zb!.{H#QW< /AP"{hkE62c|-16UϚ>T>`,:ʁ ,D?wm`>ZcH{8oyPl}7}"ڕJ,j(Fi1)=Iuȹ'HdW'A蘮wn=]K!П8 OxB_1S" ^rxlAA'dH+;VjLM$6#<4]l/R͉*8q'{?܄Ii귚14a yd٪Rv+FM_I E&:K4]Ubi‡҅rÅ,$}lEnZ&kWJ7?з@=:`6%#H"hq\8`*&CQ3 [}y#k#^z yM̝WqbcdakR]VN+,"_ ρ=`aYFO:e@oC giVKj+Du8swbn֠a>+@\/M>jF^#"U뉘,:44Wuc>TzVr[cK}Ȫbx='\Gw86&CǨ̇JJJqK0uip \+)AiXS,m̴pߡr1G>Ee8X⇽7', 7ir2u!k&W΃շ44x.GJ9zS$DVw.E!֑>AԈxj qx2UVԤ_OHI %4fㅮ}z@B)Vhejb]vLr+q V.%dw~(u~ MN@?F'wQ/Yc=5 tGݬwU߷L2vkZQ(g͂_p,Fi NU;\/`&}[FDK3WA/Ϣg{^Y4醭꘿0c;z̜+H}T)e>7ZZH#.SƅЩ:wkοN`Ѹ`ﯻY:~6oȡRn Vuf/ d`:ځ=CK?\W㴕97S[%^TQشS ׎*Mqڹ1xllSlZ>hox(MJZ KTV\&@]2 ͉qP r @(㰵 cfnA[-EEWS UBz?(\m|[v N^@ȝ5An",T7H~&KQE:). .6~=Y.3cr :Tnu!hFuSb4vq ]vT|)e{c & ڥ#&:&LΥlV$-M/"D>KMw!Fp5\D̝C8F%& m-LPRw$mrrAydQ[m{=e|Sb+y9N*~ T$27QU!`&p|V .%|!pDjٕCѡQɇr|I Z: :?7p4^q!qW` }|4++tb$mz #wpZ7fB`pc,/Iy ;LK%n `<Ԫ[Os`D۶'t4Z0 fT,|ptkDiAiTN/ck+G:-{>[uU0/S_2I#"׃ȎLaZ-0#QpJ\1~ΦA"P<Ks1CY \/1<0~9^쭥`b:6 8 \H|Wz5Lp֠ca=?*ZӧJBE=XTϖV/^7ӡu*2W7 ȕCޭ[%?_*)[Qp7N˰ݣ?u m51Jonn K([.i\ ?I#+M/!b!?ܹЏHPjcDpJ@kx:[T%O z&Q`,uwۡJVz>IyZgi͡LۭSxjAۙklJqizlVb[@ "Ke|Ϸ/hžGБ@=JB+ ޑO_+O> Y4O5Iy 0n-=qӬ JY&b2-|mNc5tȢk ^YmV E Ɓ'Fa "ZC|2DPZ5]E~?KR x.:lzth*wҠOƔ16We P XչjzzǏ;ۈԚU땐&yOn nmpWa|.o³V/,zt6g ~4b!v0 ?+D4OFg|AX8P}dJ>74pMY|g6EQLL`z~|0c$xD!?Kks-+VRn~hꑤZb B.q"cOl4%-#))ؠqsě*J3[׌ʰ4`4dgj5+%ކ;бe&Tdt(˞/@ن4e'  @KlK~^b-IPcw-(ѥ/L7S@ 7]?18As[_Xu):!"YwТ -rOX 1:%AyZGa2 VI I,.Õx(oTmDpcmVb|x]w כyョ/&YPTYmyT!Ӿ~)`GUieÕ<F/JQ@N)Y6\spm?M蚄i߽Pm8>B8ڝd6@x   lCR"Il&H]+ZjBM.oFa c.&Cçx}7OhV7}OK e'sɴyM8Cx$<ΰ*KWĉ2ۃ44嘵'>X}EԂx lȴ׶cSu_Ķf^ac+\? Jg<I1uс3*vkcn0ᶑxm*҄wf MWC_S':DӅӲ 4)^\LTh^P;G :\p1y띚rDDdjQ/V q6f I/ʙ>A5͢9uH#4 ;.iYr*C S I?9՜VoBH]'Le60DԵ?ljknҩW~yiACW˅kqRMfAޥ*pgI|isoi-K4n6,wΤ#q9gMg \2z%Z}; ~L FԅCL$$s]XTs^lҼd0Bmcr`yQzPYFB3QhF8STUbfeUL)n 9F85&ms}K{5pSQJ#+zezvfPO|=jnifOv plĦlҝ PVz\ ,]F`U:|Lg.sOe1/;rCI0^v_azMXOWXԽu TFROaV66 j|sP'b('\jP f40+Vtvt;4Rۦ!xDYp3$wO,< ;@ppv{5'W݂|$JR̙#W7#,:IK $sVvt=D]1*6cDm^ȤZIm,:Z> Ie-MqA,YX|qt_oѫ\;dgij)dp@d [(@ɲRCV*ܦ;B%(`;m!zşyI̫Oکxg>Xr:#t#aAkz}"Vj2]:m)66(OZ"fԪ3s ߙ+K.tw*aF8LRQ+o⻙Uso{u;3x!K;Q$RZY{k >IΧstueN6fW*JGjQXv0YyA"ȄMYy{vW`nmyKꭗQqo@^ dmv($x_qd^ m؋T" ]wN դJ\"$8njl* P?K 8аz.R5@d|MpO|ޏ2/#J~+q&& (~Y\!Ju;6b雋S&>IwiN?|PK'7Zؼ&acͫ|˂x-G, ]ք4W>c-& Gt2(b3{U9[ׇv5j8>lx챓/j=-d xJ&_5K[PUމd@o;X(==_%:)aSM6 h&uW2V\~^":ig]·{?,Ew )vGblj ( x=nU*r-&WPnh 4r9Fcs> ]!CQnT'h?10hfzZB;-(ZC2\"P}OøAkh'룐N>tE[Nr~DJF+zMYp"eR1xA k :&5ƃS[P^%)*4#2o nD Y cFY0Զ_{imX{'XIeH4u{uhѼ@ 8}|aH)R + .ct&9yI ]z5˿cwV^&ҎJI*rc%%gg)vg4%+ Eg5Jl(3=QЅ_$54ʑfV F^X©CBbЬ6M==sWIL`ғIq([ЍQ+.zmr⾽m4S^I3xI,sE37 $*Yc_IrD~G hG+q8ݨ oZU =; فifWץ8)ݺ`ԫLtM]C3ʷw]( ­;0KcK,vw H+QU2pc"3Óp T@wsXr C_D\B^,bӉk @)5 vrk:h?Wd1 LDZj;P؞P0!70r@O*k3p<" n; +P:|7ɨm]%*>T:mfFV|vTЩtM-[ =nS2^w"]ĘXI%2 ?0{[|!WgTsq^АX9DlcU-Hus.(ն(ޮY=qW<ݝ%1Zjk!铿>Yl(A grILz??4۸)`.P/0XwΆk39w@]4nZqA:N_>I{,ſzn01Kϸ3qBḦ́5d \p; [P~^hFݹK*D۠>@kZw65JB!ZVOL^$Եl47J&uV;2dƠAb٪>57Io/NeHNn/ C[jF^W3!V[43ݬO*vƉ'M61jLDFKvEP g8=BꇢR{ hR*GpR% ̸La!c\QRGݔU]@9skkʭ_ra*>XR~;5xg}N2J3;!()lD@e ɐwD1d`bp1E0L>yz7bEr^ÒXV!փA2ԍnv(4l>':uǁT&n:X|XZ_\Eo# 'H~jx>ybMS=qw63tV㬮)Q,'Hє໛`ڑt͛DL؇CeO H,%vW U`偁vs0ԶP(CO0[䣼3i_HP| |NG?-( 7}ew6iMfiAx;%w#&_Kt/۵Oû.?g@HH|f\1i16[ccD}I:"{$oc8#EI Twx1jʯ}4^(G"~Eu=們cf_/GHC_؊` e_4MHk C5dS$1_-Lww;01-$hrwǜOY@~% gxc*,wsxoA<ܞ=rCW9٘ b5P&U;-9 :.A3`D}ɻghyG* Ms+KVpgڻk>S^ E껺·zjv~hby7G jCL4@P:m E t7.fYRrǭ5{XVۣ۪o[.G}h^eYu˯Xڨg (aۑuLjlh%dQTK篭/_ea'iq6>4Ϳ~(:Q IIN S"QN̜}ޗr(PyWȆEǼm^ܭ+K$A_yƭ^?#>M#?4ǻgoKp;Fp[?%|yvZpF'/VVr<ch\ce$ "Oک:q9mDw.eaN@50Lg//¦B65>۞kHVchtu[8WH_/ps*\#jjhヲcL}ZSY؁b!^||1Y/?!gOf 4T*Q#*2>&d?0ϛf" "zUZ.bk 09|J 9bE`Ĺnj%~R?(P ;F&{JS34 Q7㱩S@aG}d 6bJK0 `vVYXHr7_j&u\]Yjzsa?ZS.Epl#^E)G$OdMrnAIqS+>9oafҗ`wu+KJ 9I&`f."ϊzu*%Kq\bW/~ɷyWDnJQ$ fA>#K4&7`&_s<߷2?Ja1`r(1ƅ-Ԝ[=_Z:X-gA?g+PP0Lq\G R^3tΞl(VFo(NJZTti)aվ!OYlSdj9(_hOD>3A~*~qAd蹨sߠ7ƈL>A!?jӹ;GL3?Blca8v ^g]/ 3>寚ؿCows 5'~rW hx$D,HNEb5OMJ ?<=3fG4XMO#oc7 ^N" ǥ2oɈǘ/eklppcn'1b5[l?q7$> ؝ʼn d 8l?Or٪fjfdƒ:!ƫ{,<2=S;tI:|]26`|н.y .@aCɓJی%5~DH\Jc/ 5g$'"d哸+N+KxLl \"϶;%ΆFfR:x`V Y4d#l'TEsFlGTnRCHN E ,#b2 f|sj Q [c w(.t=)PLC].c }YJNSc {tv`=j\z)0N=K ^8$,Af-96̂P^5P3y !R5k;'_K ʷ'MRm|PҞO%ZUhar7FUG)B/l}"F@8M= iyU/2Jmcߣч"5Z4H2ItcW@q+m"pXq;Y _ DQS28Ɛz7XP%)ZZ!c8p/ژq7ޱ]üRr046A7Z(i^BN6: b=7q.[T k^l":AlvXCdpi #,.<TMz)ih=4]{йq.'nAQlES P spOH,0gIΦkMvЭ?o[ؿI*##T? u4^wAQʕ9=^7-EPwR:a[K$xcX/0DC웻& ]QyNxg"L'|N0q 3phG@0[ Tn_[z6^$'}GoEZ{&8,!Z;G3 %k?`"Pq,Ë 2+ 5\ c'BóWP*8a֯3a;Œ Eq55ڃ!}ƢԒqLf&ƒ`1'n67߄K YlvO)2mOZC Qm r'*"q`3⹊ %W;A bEbGҘ! i!^r\Yh T׭Uq1 bWq  =# ǣ+LQnY)pZw? Q8aL.=iՕ*R[;u1^}K;{Kݿ0 ܰ D`,o9A"h( Dk# Ľ}횠^js^? 0uSu^"oZxAM ; YYj 2ch'gkEE"//c[?"8΋A4f:k#L/؜Zcܦqq-g2䪻Ei`!0eWe ꈾ.96འnv.xT0|ސG*排AcrRaj jOˊLYR+hlQN]=.ŔW+m&{烞yY! HOM-vW!?Z iVK uxV>;.2D> ِ@k~gֵ͕NQr'WpъCΐ $YW^1P`1Z5sv&K`U:4kB1džBزʇrU(_WJB> Bvѿ~Y5>#cM3E* zfB5{n}Odoma~{Iz2w룍)XKrE|QJsfh@W>З{t Y̑x b D@x"R 5N+eX9W@[},%m^TO^zef $$r[rWX|A/ZyOUcR֬=ZYpdxz@+ʔVNYrDXo4$ycIi-*zz I zGQ-.wV(= N2Gjj~B1ysFizmu)9)]o];ُT5 `{5KW SXA]G^s+Hlc!9hMȗ"GW$c)@ErgE`9ٛ;GwMzeNRH*ӗ<-dC6>~m΄ȕ;.rҼDFąґ/ iVcN jD 9{]2:U%i6 x**ra͊ 5n fm7 84b`4'?$%VNMI[Hqr([*1]'P5PK"9-7$_cϔ+$piK*o-*P0Od#x !D2{O (go77G* !Dטx?KUkX7Pчk3W=%i9,Z.t@!WB $碾rAc@*E_H]E;!5[>HTmjSiʡ_-Oar9Q#1Zkz]jжPrr}wW[mDpDVk\uvC3[#'{eo/&X"7To";HxI;Y^j#c;ZR\e?>!skxn\E~m?Ct~D91Er ii[yNܳ)~; qd)S;N z әfO%QrHW%>M*@>FxZB-ܟEr;VjI]ݬr-=h^l}b ޫ2ћMi]!pS^+#,Ɣb9uw4OC 74:fM-?溂v;F5gװ:Wt`S1F`(hBwl/ź;ӵ^4(I'VhYe3t1=}}R,(^+ݹ !^ocY .sR*6_`.qHw/ЀzLTWWݣ_JkuJ}q&j}/jLYuGOyJ N\3Fm6նA%|+#.y[Ō6uw2'tl ܄kTJ,?WOI ~D2LG(jy?<µr?| /YGq=<- !%,[Ru%{Gg<~3&4КPi-T $}Aw<2WZvf? C cf5/lOʓd_嗽vܪF-s$Yw[%|RLQ-/b-[jZ;H_r74 k_g$TR/"[5 2羉/4G_5&.  Mc}]: }{f戍D R /]X8*{Vܛw!<=ZnpYSr坌Ғ[Y9ٶ`\dc7M1.)6uD66gևP Uˣ;B Pp &q-9klknR#0z p 8☷YBytgr7%;~=LX(p'1A.݁}G]vBCuM}4w(h[AY^ѮQc '=? lz/<, i%(cW 5?Sv Zdh 8G?QŌHqZϮ~Rƻ5KgKtbOIKd ;*(va ('ݟ՟K];Lb T \NJINc{[3qjfhjlCjsJ=rJvgnb`sh_/ hyZ@F~ Ϯܠ;V^@g~[YZ~fP89Ewz g{Α_:Sz ׫ЮXs遅[Ppbh#KR9WPmũb٣0&'2\ 7|%ЄSna>^.CWaHkdqEO(  := 0wܟ-: G+axmNH&}IrY,NJ7_~/aLyоs#Ҁ-K.'B1bYm+u!)|h p"Q*IfyI-ǔ L\i)hcHL H2<T}D9M"e)`fbxuSGd/BwIL2J뇝\֝ڐBd)gb2m.Pī o0qBz5> {Vϥ?\TI^=#drΣ?- LP]5Mq4B%[},*!f tL)T5v4l_n]]RQgn~JX& fCxE)@Ct?=mzCW.tT.Q!*weY m_V'p~LQѳFԇK+TmӪ^h 4B_aҒv*1Wt[V}@jy4d~R8W$R!1_dOz^V\/P I\EAV|{B'x: :+܎r14[[7N&tZ>{6N:wsC7zP#UeخPyz (!R$2wxq/44O7! 4Ǚ4Aõ$Ĺ+!KK#1^:`K9q&^^rL#MI y.bd&^!,S3z'5ivcR(#7:jo+bxk/:҅>?w.m|>U8fvfq.ub1C=c/wz81Gע2'5oRX,z#UƿDxvC7Ö|$u9lE٭d|wq#LI#ꤠ1ᨪ?eC13f!$|-;k{M״Ra]0g=͠7vu=̲~}6&?NTaR4\lw dBFRy=*h&_@Pd1<*?ɒO?OI^9Dȇ\nDyoﴷ1Fi^TX\3^]_퍟 B*LuJ9'紩_XXzמ=3el 8*[SkQH͞ }q~z%c@V)s["x?#tq-mD7^!M!2_&# xoxu8vMFf6֛Dښr ~P-%Ə@QdK`ӆPn&TJ2Z}wEj6ͮ>+HG&y#Oר[yUTjS~q;>#Hr lՕ Ẻg]ª{m2Z I <_LJ(\j"r_O tY-RےO[o\jml傂4f /Ć KUdl S~Uƚ φiB S0`Գ|WMOcf5@DJOT0{۝8 ЉIdEw`:Ϙr㧘@t_@V%;MAJJ\L#?5u1 l^:vC,t4yK6"("rkP1b"32^. d Nm_Wnb$=-aw-}4QVgJݚT9?1ۃ@63џ^} pa͸H@qiB!N$t :qjp&*6!~ʎ SȯIJ[ԟ5Uv 4*+7Tw'p/k׎ˀgƉqQ61XF1xo[Et#pj 'pS>)9 $R};36XQGv*Ym1doi /,T(Lͼ4S<]ςdYokd,&b`yE @5;tG Bl5:,Pzrɳ9|ڿ ے[ ˓ eh~1};7<wf%~SJ040T%YX)\FŜawAF 𛻌1v}Q]l{Cd[O6>,[V NBсR%sreJd;K.DgQ'U(s$VYp7=i`HǂW&*^%~뭘+$b}ljmʼnz/gѷFf;;:@LW~*gʜط]`5b<#,BD_3|+b*.R !rݝUD.*gvк<:{9m~f<8=3uO3˜zFuD|!G#Fw2)@W'~PwKaNB:YG %s,>7SŹ|ŏSfB],ٮO0+8ݩK܆ i$Huw9yG FMNa^쯻R =2#nM vТ2R KF"lpQ\D3Eo90| cXY-%聶{sft}uښ9$jϙ#åZ9Z]"Uer;$56+XVX5KHqHp %kZ jK/?8 [-gН(#Fnt͟?EL`dM,8A%aͰ|V rt5f:сh 7eC%:K 2\sT<e3 Y8E 1JVY; *;%p *屬z%87n{$4~K%i2XQNNG5Կ$>@epת nlj XqNWuƱaBL_2h 0\{@j!Hu"z繨OjHjleĘM$Oh/Ci MA#rR\:<{8vu]$iP-.K ^|dbK!sX!#-{ ֘ N~ۜS@Z`AlG9DY>z/EֲS2Ca3$ Qvڽc4B rc4ed;ݞJE%(I4"g upyur7!}U< zϒ>k> $_!5-H*]Ѷ8:ls?xhIbWV\euG{d''4oȃ !?[g~a" @ؿ8SF7s5،[t;{js$Jd}UrVHDIjMO00v2dCDN(f8|ݑ"iDc2āϪݿ(n4%i݅7wV݊:j&7ϘZ_cee؞&P |Y}l[^Wu(qZle^%Y|@=^* ]6'N^9> ;R9hyK?!ߣz: G1"| azߚI_;sEkXv> OT|'V/E5mc13o7piGT0g}eXU]1Mara߂$W#@ i:Q>z%Q$q+=rn K-.Pi@`|ˎL?D8 x6_k sf)e*%yn/U8 ?.@4Iחx^EmjUl0z!OaM)Υ+uF,wyV6w֝a*9qKF<I7 h7Q7wwgf` כ+sF4V^8RI}iԎ`($͟U{]^ X1HnE{Ԙ6*BAaM)QJ8`J; ,G˵`o~ӨIT#a%U 嵮CiX *Z /Hjed8|UKM7IFzZ1Ylg-=ɲ3:|hwtO)㘑rG&MâS{Oue)Oۭ3<+! LOOlě60=/7;У&Xu#wTbjd3V?cߋ8 U`IJ鷻\emvKE.Hܡ5f? dwB)?.t-/{!,)U@zbpA|+:Eʶ$fpҤwf J9x34Uyz!7rYg:$1Hӂ귞u2m2caX ԺD :Yic,,XC޲4w=L&qa˕n(YXd*'ԛ[S*a`KB#A}|vhG%~xsX5 lə'ta+?2\!Y`ocœ o,tgd\5ky`LSQ#s4g؅SP9v* g6oR顲d~-,*y@8~!IBV!mԻ%C6j&N)!*1>pyx͚B;Ӏey?Eוm }LxH?}&MRJ(c6+"9V\.Y@uh7 /Џ+ڡ-YDw2o`2Z `f/@c4ԏf$J{c=]%oS}j5޳^+snyJهeYn$tqTQbȲjdT,nc:[ԝ2| ޳ dvc66fUѢ(\Ʌ2 $aZ#r43iejARTA>ВQrL˖,ޮ53;Ò{gKghVG4 Su2Hi i +&zeB,Q[2\wDZ.%:ݯ`PL]5%C##_Bӻxp̰ ]B䮮 VZșc) jH!܃U LR[3@r.<J-iIJ:3sxX*ϬϤ|).^$hd3k'x%)dα9тAsos I-~tшP+;;>}szXe6YDĪT(`'7 O IE T3gR MvimU? `#&)^vڭKb-_ Gr$9GoLAjqpI^'aU!)g'A.XiG+N\D:%]ӨTE[dX=u"&ɉ-G0j†b,ZMƏKBy%)Z/3A4|AzW%^0'+j䂿QL)3JrTD3BWt[OKpW)TFz4X[PgNͤ3yZ4R\ l5k+ a8D Mmr[_˪mF~ƪrSEWZ=>g=DV?">{4&ڠr]KW[6ekX w|RT Ȭc3>P(V\I4)Q^}=k8 q;yQ[ƝuOi^c.nP.ql0͙^0{8Y}$_ISRʾƢٝlw{(ۧT 5Qf;f\Nd@` V]ț~o#=Cg_ÖH~rr\ٿf+~OLyLo>?ޗb|LڟR68_HJdOy)>P;SzGWt,7DoKTƜx%ҁ f%MEz,xG?;°~蜍 K/.BHpx|5MUdY~_L3ֻ6/Xn{% Tz3 .Sg=꿽8hr{| :LT?hۿ4}>)/X~b#P\p蛆.=Ya` M )Z:%FKq_r[.GB]*\6_]{AS" B׶7dӋxj 5>GȄ rc:{"O]"wb>l1ra+ңnέ ߒ[&NbWV'UT[D@ApR"|̮G$ LGa4fT>coDzs|PpP&YLs0 ngOGU8:1xLLIw$*b}oxu;'D4"s )okNC!A~V څӖW$ta!T^bԅgk9TfNyx\YT⾩;!u?3ml rY<|܆-UvZ?d@Pi&{t^C#MS=4.PdAZU$M S(Gэo.4qj1} Iz'Sqczb,0Rv+b}m!_xBcE@;K/4 eUȗE$y};. U[H[zAꑩU-Ib`mw$]IudnܓoQ՟结t}!n{equ˔Z?W W)|*4 ]wwB 2&:˳WdV6LdI7lI&)[T1d׵bO5BH#L\[WVKΌz`ve%OFZ?p y!d,mv͚1?LTCn$)اB|2nyw)Լ]`<)PͨwisFws^l' !Ԓ?3[U)"9h-{v2^c5摉nhl_' f·gجHg $ Y04H7\:I9;r2LV \.cF?iM3O-+{ tЩ?L?a|ZN[>h^ 2V$`rXȹT9UPp[ x٭,]'>itTW`Ae٘.LvoeoHkiǧLjǵO:H6ejV_*rݶ LI*HA8BwC0ڏe}׌_0Ƀ: `8R_xqK/Bt߄`V8uGsd|GI_QQ'*Voj!@ &WQfiCXqky7ą(&}1N-SbqO]d~ F=n,Ϭ74#mVH"8l4tym4ԉ OC'YvSYYym7N$,ف4Ґ#NX> ^ h+ ֽ9av>/2sMh*#M<.)Ư3:d }į8iWXSg~0W_7+ACϨr?t!HY+ׄ cfֵVѰ5^Ya̋c:^vbOQ9]}k U?) CGQj~XЯچ Ge鄢Zwŭp\p.esݦd)\\%TeMeT 08:V1A'= >EE1մc~'s"B`7hG a#%R[% ; k_Y=яR'P3hv7 lHs3KtEJZ #m,jYwSFhLB R;]T;^ "jN"&#ٙZ'L1H]<\PNݡgjՓb#kJdfכԘu N)K~eܦo*UwMx>mȀ!L--= y$WO= ?<"Ep@P2gO" msسF0 @e:׀Dư=L ^Ksr9fDf :jev5{E:K>U.>"O @mJF!C-0u.خN5MCεג}"[( )6[W1Q SRGO'crw׊7HLwBRMUTwҋ Q>붊 s_Ž` pMlYwﵓM\[12_"+Fṕ ǐ?mo<\|vEGbh uL_Tg_O/=Z2OțK#CphK $" t w'D9׍Y9J֬35 m~ NakOf' hgZL76SZ̙Tv)+ {.?R2\JCbB߲EMҍs6etb vhyw\RerAxBlu!=f8&e3 .DYKRK$B pn()fE".|IDK:C& ,6!|Tɖ| 4O&\HjO%Nm 4iT20O\45sGROsSӍuW!iG>AP%zs$:lM%q=jN ֛K+d@$@d;?pC)J,W@os?LL1$4@P98@ Bk;~ ;sذ/QmWZȧmX$E2=w¯jS1?"0 !D;@KZwx:xwHqpk8L[cJZd5@~uwCJ{%CtsicCjM5i1HYH5?/WNBڭGF}ˎ] Hnz;(*TwfC26u v&d-(wDO Ӏ j"9;%RX61G!fj~y(%&Luwt5*t.$#YI.ٳ=[ 3s|0:~/'<)ґح\M%)%RNu/ɊםBĶ@R8w,8 ώ3h3eHBԌN;lWKQ}1V./\}i7iJYZpbx*Apwpi'D4qQ 4FP *(kH3fz Gc/HU_ %Y)mw@Q\3Bvvy;1&HԬP=osr[/OpA/ 6&mjȻ1!K;3ea k-E҆ոpcÌ#oBT, b}NmZ5UqL,v,Ɉ7D/N@4eC0VW-',J"aoVބ"oyIP?{(ּ;XtlM:Η@FO#pyҁΈ1 <4vs˛܂~D0B+8JAƛu/#4Jy9<r[6l(rݝ ?3YQ}ඍ2YW9z.8<@.N֥j!Dq9@p Gt .5mS?Y5ɟIzslt킐ר8DA.{U_ eqrp+} `c5퀂Vt웘e"hCueSӰȩ5*o >T^ ޠnj$r Ƃi5$: Dfٕƴg |?e>ʖ~32]Ou Efl 0 }Q (<|4-cjK]E0J&z%9 Țg;NwT9X ۶ai2bǘ>QU[441`=M'a[f\2j{sVKUN`;CӺ楁bees-kjs1C\Q-CǹcYLZ/<%ޞ+Y5\BR]gz-ydjVdd]9^4`" WUXh9a@9@*`#6d#T|s$Lxo$z^ z)|T%t6 }%T2!t4A z2. ωlm^K(1I!Gp<̟}G^#B Ca(Ij/iXoDv#E^9wG8ze`k拟*IڷRЀ16IyZb]4\$]ϩ"/3 W'PA=V"1ܔ'4ȭoNgLXy^ _^i&&8֧qZ4ۆIuf%B* p R hΆHj2зzj'p%ft@*,|̛ 2 bC5_Q^9U"u~f*2 UZo9DNJoJKXGۤgOx뼬!8v^\B68,lFeCU8.LW CjGmxicVج &o|IBxŸȿ#9rrpF5v?mzNjYǵ㝮k< el`Ϧx3t[mhHo>i vPF ,FVZO9i?l@|KBXkW=g/:B< _oy 8_cVL+RÅ`6-HnZU#jPݪJqT$鈍tGd}HGaZj܈*Bϟ-'^r좨1 Fx^wZØ_;)_ӧ{'ǒ񠗞)#5+~W+pV2.9>n υ/BCPehta0  h泜^^6w^"*o@iywLt|iH,I2" q 4STR#avL{T "9DH[vJO'YuĮdE=OV <Y[fIM~kOwIa@ŋlHڳU:/7f!Z*Џo=Rخv\rg3"(a_"ఏZ9c 9.2xPL7-&//(`\Ʊ'Bb#3V6'~ 7P)Td3Szh7uaRS4\%GT!]N!7)ڜ@ IyEQ`MVULnlMuw75uӲ#Lma'SJpn{Of7 }` QhrhXvCHazxw[?>}Rs P-tlU#CW}¿̯]7xXOqysi_l @n`T 曂5..RguhP(#ٟ]1~b]>ߩŢ)a_Nn S;:[±<@Ǧ4H𿘺f 80d$3f M1V@@fwYnВbHZhh瑱3^ވ?ajL_j*M0FkHX =^^0ؼnZٲ7 4j Dr'wq %Fm*q+zZ7*#8FWKJonOS[7Ukhޜ_J(}26 Д( $8P7mYi/'-Jx[)-mJɶ)Q}۷F38271J1]@'QJL,L;@/ D HLS&1T=$½2*< 䴫2zGֽlS~m6Lh)%5tq*]-; Z`Iа;#f·GC/,e[͐Sv3$r.a5t{,:~xR /nCk*HZH.z /FH?"RZd6$S1[ r@3@VSlP MGVhh9YOS h~{ȋmIvL}Bw`#@pCP͘t&m#Ç*@uIAy|}$xWLE@ΜP _ain3-|!M C}!H'2P9J(FW`RLRЙ[:T4(F@gttp\,[r\ut-vJQyl%(dfHm9YܞQ 5QE%ʰwwjcy  $]5GPnZ){k|^[}ֶ m&}JA 6&YP>y ]rdwc`r vKR@G|4QlK9 ߭t=L9:l 9:4zM 4NXmo~FVgȎӨ ,w{j⁴SGM UDۓҙ|<֟(oZ;\79bjy{vQzN?Uo%4;;}a54-K%nN M/efl}~`\ϲP`6@d$䤭OT 9.%ԛ^mKotBѳ"E\fp T7^yJ5vKʡZ姖+,;u8evRwS֏ S}T+#gJe"yەAFm 7&Vkr cӰ6óS+N fi N#{c䮪 ;}*/=GX' k]½zHU25C䵬0=ͷ}.@5OXw"GR.isnZ Q3-G:0^ k۾@u -:@|GF_-#}A zO@$`Ch"@Z`_>ď`NCSt:za,jT`fI,KIu4NLV'Lc'JDBNXҊc*XVk?ʲE ﭘўֱ )YSj,c\•@qfp3"4հ6Kޤ QavOËH"} dTMFU3ma;`5)Nb \&%W# t텘 Ʋı %Ҕmdo3xꨥxӜV ?ټϪ=xP6 K|*]O>X|SR6Ebnek H2=XY 6 Q42tt#pu؅NLa\4"(Rx]=ƙ6ҌiAVw,2r`_/`!>c{,vDA agAMgWPUC[_YUU3$)`BtZCKlf䝎j+{r 8 )|.ӿ^2%p8@]Z[-N'_V+s.Q{W>n,U;â;qf&m2pE[b2}uR bgG FVXǦ ?? HLzs=LFk6;GEip)2n*;g9fy{֞MӞzʍlYfM"3_C o[ξP3"ajjt KWz~_]!9x| tq{S:-;fjmF~Scý>.Џ?ܶlw@unp^YS|eU?|( ћ4Nj~MN1sȟnY ^ crmГւ3ve%/x[ u{W8(Le' F[T4sf7BnM僂{8Yu>~ K %X[h-wkX2"c2V[۷[T|ÇPc:{bfz, VHXU5_R@>A&..+2ⲙ)tZVܼ`>2>kt% CpjqM՗brS%D:9E|YmU<ڻheBt?47 ' 4rGKFSZn907iLCySR3 V&u_En8QxNC]no-ee(*551.[Ħd k{_c2@XG]Lȥ'J/.I9ǸqOde.$wobQ+YY!Fi GU-3q1< W0/-a66]oXi}Dlm{5vk#b5MF&[ S FٹW0Y*nu)20 hKI# Nnm\EdJSn쭹D kQLtlfluz~xdQ]u `K;eP^FDSҟjaleYlп[>M'we[6B_EdެLш,F*كrh9d((-lCOOV~!HB(t(B"s5VxI:4vLU+[[I mD,[H_XYj FLQSjyX{O,t[|"b!ߥCF{Z/nRnBv)QMR"P*}fBo鿦eZ =M1lf OTIy"3tY;&!ER0k7M?{ _y&; B|xo=d"_Pn7kG,}b:43NsfEz9zlӣvb-)=i6#9&BlT*0xJsk#û O @Qit"_9c;v]*=&pn<Nطp Uc0-p=wE#kW^!cwa'DDxԵm̫Bu p\=KxѣgJ}}7"f.p63y{܏Eqpq;,-C;|)C4OƌP$-ۀ 1.β0Wi2 [-Zn_7 c>‘1b ,p!e6WX~7wRWk?މHl-].ٮ+AXϰvӾ:7v u7{6EHʐ>F _ۈF.>Lv*~FJ/8Bc4Ì.RdY<{wdL*<"^G,Hlk{d 'i ӹ/;s~ÕHw J9<@:V2)O(kh-ո1m:b9pu4HhM[LI:O7}۬utMi!OkOq>q_7')`FGizY/2# tstc7A.Az@hEZXdhSڗ dm0s>K(S%3sMϞXT ru'rc4פ>%H1EG[4fA wAd>RvjH&<ҕ)ׯ6mK@%%V߱T(Qyu1|\ls5&;/vk)R5Q`˃2j. =ƫxۗxP~B8oNanH1ɯ Ͳ\)d9@Dp5W"N]q(nh0I ic8A%tu-38#~YdZ b˩dp]U=:47$#\ooMڕ Uoo;MK-J1DB#]yL% MY,kxcqPEG5z.~sXBҜ:pEά_AjTB)NGba>/3s%omԝGڧQ@{]d-(u tH2ov,r QEQH-I[EgM]aGdWޫH28P[b~# ">Ǧ}tRer mQWYe`E$c F^i $|D8<@R0OgINۥx^-MB4{F xfRZW,!EQU/)}%!Z&ytE`N[Mzdb'we?v۟N|w}?6\By`{,ftS7Q엥@s'@`uMʮ_9!=  ĪY|_3b)iZ#؛KSNң+<'rν(>%R6V XTӂ v87H-Ixd)VяUd%FUR<낷U-ջ HK 8O2Fث(pe"`^J4w:͈y36,&0[ VC[ yFNQY{Tzi5HOIgZG~6;GJԬB8z2hUeM6Һ *dHܒ*^ U䮩Diz)h,2#Tn8@ jt{XhARII=qrte Gu;:>O }1~|- nqfqHL9,] `R:$A(%v#.ÀxFM'8"K -–#74M ؆ n{uRnD؞a9bwT>~!G}na7J6+3IHqXXPL&vE+m#)RSD҆x97Y[VxgK8&װΰiqpc~3NNdFS2)>->!0~|Ph$?)O2I•jv-O Ï/H7L\T3ɰwy>HYC5&/H䛨s|Zi櫌\"|^4A8r\vOBhsMnMVQa+x|CƤ YAq)~v}h0,39wi5Gߙ"1{@>DLT]nj)k~tQPܚP!IwܧTg뫦z4n. s #:4W[LD ;؈L'Mi y;Oe8`{?S׶ɝ=RGRceš(hc$CToAq\FUJpƵ]Gj0;s`jJ7Xg<0 8w] wHV%Gj <)r[/B L'۸%T Rb"lZ/+,M>Bm BwIRc1xc`F)~gx%[QDY"18)JJI"1FSeRRn%ҍnWu4cZ>:ˀN7薡/g-5>ZU xN(sE3;9w :ѹ (Sz/prfb*W/ṞXtIؘ6?.`85/Gp޺~Ǭg4} Zɭ{++k˕gxJ8]%2.}{JRJ1dP@UcbxwKI-J!{hЄ#kt@8c|t@b}3~孝Dҹq7 #ӀIXqU6lYfLXgIbWWd`'8ڗ OnrƕfÚܤ{Bf|otz2O:DyB$mD7Kr7z䭨@!]{1]PkVW91X07NAA*ZG'i}oF7FVx}*dH%h Eyۅuo2;Bs vIe"t|wld] v> ,e1bi-QS+!c _I}k\j%U++myXw E 43:&]u8%6 S8߫I95:BGߕ{rDz薫Pmxn!=r= P5u|MfbWTAx{FUtHn^bTX&5T:3 p(Ej*b,}ZT*:FۭDv>zAڰr=25#,9QG<tKCᓍfc33Y} "n40A񦸑hgU-_ﱆh0?rn'"nم]0bh R0sWVh`#dsar+(rKfF%aWXXisM _]|lc<jjSqTL<#PͶpEZ`l]7z+h#;e3I("gGǥ;7mq^TpIt~ߏݘ$o8%}8{=ZgC 8ڝ`n6[")ѭGZ>qS!pP 7LK}qDj=i]R'm 4 +% {}. R_-zk{EaSsq+|5Knk^uyEGpX}9ɡZZ4ڳ -;x.1tZ༻ó; ÆEYhj㽛&Y!PDW;8!̾ %EabuTnEWZSҭxc/Q̀c9忂Nk-4WY4xgDϺkͬcɀa'(P؍':umYȒξ$sҏ Tno[':Qg>P}’@ITbBg/lRJT[ JI?.WgRk KL̓.pb&!2B -k֢ /K5 {(xku:Ֆjʯ6+-Qgsp7gɀ'dlw}}ZL96yJʊ:P+%LZ1`V#yf,#fU"JHV|&B2eg}D l(~C4g(T#t`6+ ; ʓkhԄ f)Ak'ؑ$0?## sk\AwrWnɸ嚅Zt:*BZS3"q%VgO|-tY<:o É|I4O=7y_9{D%G)qX>41Lϝ܉*x'krt0h%T$;ԭc_.FzQIQ%ЙhI˷Xzw`Kb&Zمx:lp DZNα.]~4TƍjiD]}Yh콗d2]DD1r?NA b]r Zvn;BMxl]*e) {xekgni73Xȫ IM*>z%IG jqij/)b4w)͝Y;lr`Cja߱f'R]lwTONE.t7@Is"9E`_\Soj,5^Bis«9VЊ>2fǨt%B5ITF}a2 - iuPAG/Ԓj{nuyAw{D^=1'/-%<_)?#q Bi8.Di^!lio k|"DVoP_Mƚfdփ+F!䙛hşl-OE>io)W[wإ PSDfKg־BO.3|cB 5E]_Ѩw0eZ ȍ5*GjV++:FdNZ*w7h:=|A& U/k$0JPޒlhl.$;,kj{w";p RvQxx%m#)=B=ER|֊\^)|aiVgu^9?}kx>~X%|֢t^C5I+* Na>%1%NR[,&x3!xd~!:7i;P4g#Ě/|%YN۸ynrNF]LۍbHpNK=[SsxD{H愶 WpDFi2ҾAT8};aSQ6[IlR2h qu5̦Q`<qklt(YlPH[q ]4v`xz9>8}%/+,HZ .hVDXI}CYɆ=sVs&N{m"' ] ,.nq}НG{0 [4^f o}CD_-Q吁dRWսULJ"R;DZ_^1{b:E)P P#Ai׻)o'!A~&NCBf1ك'zAcpAlsHV瑒ΙqxlNGjXy_hWmr2o= pKcG,a+NM0?MSk*0SZQ 2+C;fӔomu5QWԉOkfRKԢTW,ZFDRI=?8e{AZa-nrM$ }r*s:?zZC2xETE_ @7 R&.0.ޮ)2LXO%.' Oĺ* }ʐ`*O7?gOk0vx*m[bHVQ8 DG[Z~q# PPŻHf'=΄ڙ+79)6n`fF4HXKp'{=OrPn z"#3]%)vIUFK{Jz۽