Title : Linux and Random Source Bleaching
Author : phunda mental
---[ Phrack Magazine Volume 8, Issue 54 Dec 25th, 1998, article 05 of 12
-------------------------[ Linux and Random Source Bleaching
--------[ Phunda Menta <phundie@usa.net>
----[ Introduction
Random numbers are often used in cryptography, but good random bits can be
hard to come by. Linux has two useful pseudo-devices called /dev/random and
/dev/urandom. Catting /dev/random yields a small pool of random bits obtained
from internal system state. If you cat this output to your terminal and bang
on some keys, you'll notice that you get more random bits. Disk drive
accesses, IRQ timings, and key presses; all of this stuff gets hashed into
a small pool of entropy that can be accessed directly from /dev/random.
/dev/urandom is a stream that hashes /dev/random, and gives you that hash
value; then it hashes the last hash and the pool forever. Both give a
decent source of random bits. By default, /dev/urandom uses SHA (I know
the source comments claim MD5, but if you look at the code, it is SHA).
So /dev/urandom is a decent source of pseudo-random bits. /dev/random
is better, but it is of limited size.
These are very useful, but what we really want is a hardware source of random
bits.
----[ The Hardware Solution
Most computers have sound cards these days, and a sound card is a
great source of potential entropy.
Unplug the microphone from your soundcard and cat /dev/audio to a file.
Sample maybe 2 or 300k of data. Now play it back, if it sounds like static,
you can skip ahead to cleaning up the source. You can also try plugging a
1/8th jack (or whatever you use for input) that has dead-end leads into
the mic port. Try both of these methods and find one that gives a clean
static hiss.
Chances are that on playback all you have is silence, but we want static.
Static is random, and randomness is our goal here, so grab an FM radio and
tune it to the high end, around 106 or 107 MHz. Find a frequency that gives a
good clean hiss, an analog tuner is best for this. If you have a digital
tuner and can't get the precision needed to tune-in a good static source then
get the best static you can, but you might have a harder time cleaning up this
source. If your signal has a high-pitched tone present you can clean this out
in a few different ways. The easiest is to use software to strip out that
frequency. There is a family of programs for Linux that can help with this
(Bio, Mammut, and Ceres). These programs allow very good visualization of the
signal and they also allow you to pull the signal apart and isolate different
frequencies. Chances are you will have a bunch of junk in the 60 Hz region,
probably due to EMI (electro-magnetic interference) from power supplies, along
with whatever is giving you that tone.
In either case you should shield your FM receiver and the audio cable to avoid
EMI. You may be able you shield your soundcard, but I am skeptical of the
worth of this. A lot of electronics supply houses sell shielding wrap and
preshielded cables. You can also try aluminum foil. I haven't had much luck
with aluminum foil, but some people swear by it.
Once you have your source set up, jack it into your sound card and sample it
at 44 kHz. Run the results through the Diehard testing package (a battery of
tests to evaluate the strength of random number generators). Your source
won't pass the test.
Clean up your source bytes however you need to. Strip out any 60 Hz junk with
Mammut by using the Transform|Filter options, you can then use the
Transform|Phase Shift option to slide the wave form back into place so that
there is no gap at 60 Hz. If your static source has a small amplitude, crank
it up by increasing the hardware gain, or use Mammut to change the derivative
or the effective gain, whichever you like. I have found no empirical evidence
to suggest that one way works better than the others, but, theoretically,
changing the slope may be a Bad Thing (tm). You may also want to use the
Phase Shift and Threshold options to chop up your signal. You can
resynthesize the parts and save them back out. Listening to these parts, and
graphing them can help give you an idea of what other things your source
signal is doing.
If push comes to shove, and you can't weed out all of the bias, or if you need
a more hands-free way to clean up the source (and don't have the time or skill
to write custom filters) you can just use a cryptographic hash.
After you clean up your source, take a look at it with ceres or bio, if the
output looks like video static with no noticeable patterns or hot/cold areas
then you have sufficiently cleaned up the signal, now you can move on to
bleaching the static for use as a random number stream.
As a side note, if you ever want to see what a good random distribution is
supposed to look like, you can also use output from /dev/urandom. Use sox
(stock with Redhat distros) to convert the output stream of /dev/urandom
(use a type of 'ul') to AIFF for mammut, or ceres or whatever. The
distribution given by /dev/urandom is statistically random so it will tell us
what to look for, but /dev/urandom (SHA, basically) is still pseudo-random
since complete knowledge of the previous inputs allows us to calculate all
future outputs. This is not so with static.
----[ Bleaching the data stream
The static coming out of your FM source is skewed white noise. We need to
clean it up, so we bleach it.
RFC1750 gives a slew of methods to clean up your source. One of the simplest,
effective methods of whitening a source is to XOR all the bits in a byte
together, yielding one output bit. These bits are then reconstructed into
a byte and output. This method has a few advantages. The first big advantage
is that you know precisely how many bytes you need to sample in order obtain a
certain number of output bytes. XORing is also fast, and easy to implement.
Another method of deskewing data is attributed to John von Neumann in RFC1750.
This method is called transition mapping. Transition mapping is a relatively
simple process. We take two bits from our input. If this bit sequence is 01
or 10 we output a 0 or a 1, respectively. The sequences 00 and 11 are
discarded. This method completely deskews a stream of data at the expense
of needing an unknown number of input bits. Transition mapping is also a
very fast process, and on a lightly skewed input transition mapping can yield
more output bits than XOR.
Both XOR and transition mapping are fast processes that are good enough to
deskew a set of bits such that they will pass the Diehard suite of tests,
if the input is suitably clean and random. If the input is somehow correlated,
you will have a harder time getting it to pass Diehard. I have found that
correlated sources can be cleaned up by XORing the output of an XOR
distillation with the output of a transition mapped distillation.
Slower constructions can be created out of cryptographic hash functions,
but may be trusted more by the paranoid. Hash functions are also recommended
if an attacker has the means to somehow affect your random source. If you
are worried about this attack, a good way to solve it is with appeal to
/dev/random. Use a block cipher such as 3DES to encrypt your random
source with a key and initialization vector obtained from /dev/random. If an
attacker can bias your source in a predictable way, he still has no idea
what bytes you may be using for your actual random numbers. Skew that the
attack may introduce into your hardware can first be cleaned with a process
like transition mapping and then pumped through a looped hash function or a
block cipher.
The output of a (decent) hash function or block cipher will pass the
Diehard tests.
In a heavily used machine, where the entropy pool used by /dev/random will be
updated frequently, the output from the above processes can be XORed byte
for byte with the stream from /dev/urandom. This is a simple method to mix
the streams together for added security. Another method would be to hash
N/2 bytes from /dev/urandom and N/2 bytes from your source together, where
N is the number of bytes that your hash function will yield.
All of these methods are suitable to deskew a data set, but they should not be
used blindly. Before putting the resulting bits to use, examine several
samples with Diehard and graphic or spectral tests.
I have included code to do XOR, transition mapping along with hashing
mechanisms.. I have plenty of code to do other hash and block cipher based
stuff too, but I did not include that here because the code is not
self-contained (it needs some crypto libs).
If you want to contact me about the code or if you have some comments or
suggestions, I can be reached at phundie@usa.net.
----[ References and Related stuff:
RFC1750 Randomness Recommendations for Security
http://www.kobira.co.jp/document/rfc/RFC1750.txt
Diehard Test Suite
http://stat.fsu.edu/~geo/diehard.html
Pseudo-Random Number Conditioning
http://www.clark.net/pub/cme/html/ranno.html
Linux MIDI & Sound Applications (has links to Mammut, Bio and Ceres)
http://www.bright.net/~dlphilp/linux_soundapps.html
----[ The code
<++> bleach/Makefile
all:
gcc -w -c md5/md5.c
gcc -c sha/shs.c
gcc -o sha_distill sha_distill.c shs.o
gcc -o md5_distill md5_distill.c md5.o
gcc -o xor_distill xor_distill.c
gcc -o transmap transmap.c
<-->
<++> bleach/md5/md5.c
/*
***********************************************************************
** md5.c -- the source code for MD5 routines **
** RSA Data Security, Inc. MD5 Message-Digest Algorithm **
** Created: 2/17/90 RLR **
** Revised: 1/91 SRD,AJ,BSK,JT Reference C ver., 7/10 constant corr. **
***********************************************************************
*/
/*
***********************************************************************
** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. **
** **
** License to copy and use this software is granted provided that **
** it is identified as the "RSA Data Security, Inc. MD5 Message- **
** Digest Algorithm" in all material mentioning or referencing this **
** software or this function. **
** **
** License is also granted to make and use derivative works **
** provided that such works are identified as "derived from the RSA **
** Data Security, Inc. MD5 Message-Digest Algorithm" in all **
** material mentioning or referencing the derived work. **
** **
** RSA Data Security, Inc. makes no representations concerning **
** either the merchantability of this software or the suitability **
** of this software for any particular purpose. It is provided "as **
** is" without express or implied warranty of any kind. **
** **
** These notices must be retained in any copies of any part of this **
** documentation and/or software. **
***********************************************************************
*/
#include "md5.h"
/*
***********************************************************************
** Message-digest routines: **
** To form the message digest for a message M **
** (1) Initialize a context buffer mdContext using MD5Init **
** (2) Call MD5Update on mdContext and M **
** (3) Call MD5Final on mdContext **
** The message digest is now in mdContext->digest[0...15] **
***********************************************************************
*/
/* forward declaration */
static void Transform ();
static unsigned char PADDING[64] = {
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
/* F, G, H and I are basic MD5 functions */
#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
#define H(x, y, z) ((x) ^ (y) ^ (z))
#define I(x, y, z) ((y) ^ ((x) | (~z)))
/* ROTATE_LEFT rotates x left n bits */
#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4 */
/* Rotation is separate from addition to prevent recomputation */
#define FF(a, b, c, d, x, s, ac) \
{(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
#define GG(a, b, c, d, x, s, ac) \
{(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
#define HH(a, b, c, d, x, s, ac) \
{(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
#define II(a, b, c, d, x, s, ac) \
{(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
/* The routine MD5Init initializes the message-digest context
mdContext. All fields are set to zero.
*/
void MD5Init (mdContext)
MD5_CTX *mdContext;
{
mdContext->i[0] = mdContext->i[1] = (UINT4)0;
/* Load magic initialization constants.
*/
mdContext->buf[0] = (UINT4)0x67452301;
mdContext->buf[1] = (UINT4)0xefcdab89;
mdContext->buf[2] = (UINT4)0x98badcfe;
mdContext->buf[3] = (UINT4)0x10325476;
}
/* The routine MD5Update updates the message-digest context to
account for the presence of each of the characters inBuf[0..inLen-1]
in the message whose digest is being computed.
*/
void MD5Update (mdContext, inBuf, inLen)
MD5_CTX *mdContext;
unsigned char *inBuf;
unsigned int inLen;
{
UINT4 in[16];
int mdi;
unsigned int i, ii;
/* compute number of bytes mod 64 */
mdi = (int)((mdContext->i[0] >> 3) & 0x3F);
/* update number of bits */
if ((mdContext->i[0] + ((UINT4)inLen << 3)) < mdContext->i[0])
mdContext->i[1]++;
mdContext->i[0] += ((UINT4)inLen << 3);
mdContext->i[1] += ((UINT4)inLen >> 29);
while (inLen--) {
/* add new character to buffer, increment mdi */
mdContext->in[mdi++] = *inBuf++;
/* transform if necessary */
if (mdi == 0x40) {
for (i = 0, ii = 0; i < 16; i++, ii += 4)
in[i] = (((UINT4)mdContext->in[ii+3]) << 24) |
(((UINT4)mdContext->in[ii+2]) << 16) |
(((UINT4)mdContext->in[ii+1]) << 8) |
((UINT4)mdContext->in[ii]);
Transform (mdContext->buf, in);
mdi = 0;
}
}
}
/* The routine MD5Final terminates the message-digest computation and
ends with the desired message digest in mdContext->digest[0...15].
*/
void MD5Final (mdContext)
MD5_CTX *mdContext;
{
UINT4 in[16];
int mdi;
unsigned int i, ii;
unsigned int padLen;
/* save number of bits */
in[14] = mdContext->i[0];
in[15] = mdContext->i[1];
/* compute number of bytes mod 64 */
mdi = (int)((mdContext->i[0] >> 3) & 0x3F);
/* pad out to 56 mod 64 */
padLen = (mdi < 56) ? (56 - mdi) : (120 - mdi);
MD5Update (mdContext, PADDING, padLen);
/* append length in bits and transform */
for (i = 0, ii = 0; i < 14; i++, ii += 4)
in[i] = (((UINT4)mdContext->in[ii+3]) << 24) |
(((UINT4)mdContext->in[ii+2]) << 16) |
(((UINT4)mdContext->in[ii+1]) << 8) |
((UINT4)mdContext->in[ii]);
Transform (mdContext->buf, in);
/* store buffer in digest */
for (i = 0, ii = 0; i < 4; i++, ii += 4) {
mdContext->digest[ii] = (unsigned char)(mdContext->buf[i] & 0xFF);
mdContext->digest[ii+1] =
(unsigned char)((mdContext->buf[i] >> 8) & 0xFF);
mdContext->digest[ii+2] =
(unsigned char)((mdContext->buf[i] >> 16) & 0xFF);
mdContext->digest[ii+3] =
(unsigned char)((mdContext->buf[i] >> 24) & 0xFF);
}
}
/* Basic MD5 step. Transforms buf based on in.
*/
static void Transform (buf, in)
UINT4 *buf;
UINT4 *in;
{
UINT4 a = buf[0], b = buf[1], c = buf[2], d = buf[3];
/* Round 1 */
#define S11 7
#define S12 12
#define S13 17
#define S14 22
FF ( a, b, c, d, in[ 0], S11, 3614090360); /* 1 */
FF ( d, a, b, c, in[ 1], S12, 3905402710); /* 2 */
FF ( c, d, a, b, in[ 2], S13, 606105819); /* 3 */
FF ( b, c, d, a, in[ 3], S14, 3250441966); /* 4 */
FF ( a, b, c, d, in[ 4], S11, 4118548399); /* 5 */
FF ( d, a, b, c, in[ 5], S12, 1200080426); /* 6 */
FF ( c, d, a, b, in[ 6], S13, 2821735955); /* 7 */
FF ( b, c, d, a, in[ 7], S14, 4249261313); /* 8 */
FF ( a, b, c, d, in[ 8], S11, 1770035416); /* 9 */
FF ( d, a, b, c, in[ 9], S12, 2336552879); /* 10 */
FF ( c, d, a, b, in[10], S13, 4294925233); /* 11 */
FF ( b, c, d, a, in[11], S14, 2304563134); /* 12 */
FF ( a, b, c, d, in[12], S11, 1804603682); /* 13 */
FF ( d, a, b, c, in[13], S12, 4254626195); /* 14 */
FF ( c, d, a, b, in[14], S13, 2792965006); /* 15 */
FF ( b, c, d, a, in[15], S14, 1236535329); /* 16 */
/* Round 2 */
#define S21 5
#define S22 9
#define S23 14
#define S24 20
GG ( a, b, c, d, in[ 1], S21, 4129170786); /* 17 */
GG ( d, a, b, c, in[ 6], S22, 3225465664); /* 18 */
GG ( c, d, a, b, in[11], S23, 643717713); /* 19 */
GG ( b, c, d, a, in[ 0], S24, 3921069994); /* 20 */
GG ( a, b, c, d, in[ 5], S21, 3593408605); /* 21 */
GG ( d, a, b, c, in[10], S22, 38016083); /* 22 */
GG ( c, d, a, b, in[15], S23, 3634488961); /* 23 */
GG ( b, c, d, a, in[ 4], S24, 3889429448); /* 24 */
GG ( a, b, c, d, in[ 9], S21, 568446438); /* 25 */
GG ( d, a, b, c, in[14], S22, 3275163606); /* 26 */
GG ( c, d, a, b, in[ 3], S23, 4107603335); /* 27 */
GG ( b, c, d, a, in[ 8], S24, 1163531501); /* 28 */
GG ( a, b, c, d, in[13], S21, 2850285829); /* 29 */
GG ( d, a, b, c, in[ 2], S22, 4243563512); /* 30 */
GG ( c, d, a, b, in[ 7], S23, 1735328473); /* 31 */
GG ( b, c, d, a, in[12], S24, 2368359562); /* 32 */
/* Round 3 */
#define S31 4
#define S32 11
#define S33 16
#define S34 23
HH ( a, b, c, d, in[ 5], S31, 4294588738); /* 33 */
HH ( d, a, b, c, in[ 8], S32, 2272392833); /* 34 */
HH ( c, d, a, b, in[11], S33, 1839030562); /* 35 */
HH ( b, c, d, a, in[14], S34, 4259657740); /* 36 */
HH ( a, b, c, d, in[ 1], S31, 2763975236); /* 37 */
HH ( d, a, b, c, in[ 4], S32, 1272893353); /* 38 */
HH ( c, d, a, b, in[ 7], S33, 4139469664); /* 39 */
HH ( b, c, d, a, in[10], S34, 3200236656); /* 40 */
HH ( a, b, c, d, in[13], S31, 681279174); /* 41 */
HH ( d, a, b, c, in[ 0], S32, 3936430074); /* 42 */
HH ( c, d, a, b, in[ 3], S33, 3572445317); /* 43 */
HH ( b, c, d, a, in[ 6], S34, 76029189); /* 44 */
HH ( a, b, c, d, in[ 9], S31, 3654602809); /* 45 */
HH ( d, a, b, c, in[12], S32, 3873151461); /* 46 */
HH ( c, d, a, b, in[15], S33, 530742520); /* 47 */
HH ( b, c, d, a, in[ 2], S34, 3299628645); /* 48 */
/* Round 4 */
#define S41 6
#define S42 10
#define S43 15
#define S44 21
II ( a, b, c, d, in[ 0], S41, 4096336452); /* 49 */
II ( d, a, b, c, in[ 7], S42, 1126891415); /* 50 */
II ( c, d, a, b, in[14], S43, 2878612391); /* 51 */
II ( b, c, d, a, in[ 5], S44, 4237533241); /* 52 */
II ( a, b, c, d, in[12], S41, 1700485571); /* 53 */
II ( d, a, b, c, in[ 3], S42, 2399980690); /* 54 */
II ( c, d, a, b, in[10], S43, 4293915773); /* 55 */
II ( b, c, d, a, in[ 1], S44, 2240044497); /* 56 */
II ( a, b, c, d, in[ 8], S41, 1873313359); /* 57 */
II ( d, a, b, c, in[15], S42, 4264355552); /* 58 */
II ( c, d, a, b, in[ 6], S43, 2734768916); /* 59 */
II ( b, c, d, a, in[13], S44, 1309151649); /* 60 */
II ( a, b, c, d, in[ 4], S41, 4149444226); /* 61 */
II ( d, a, b, c, in[11], S42, 3174756917); /* 62 */
II ( c, d, a, b, in[ 2], S43, 718787259); /* 63 */
II ( b, c, d, a, in[ 9], S44, 3951481745); /* 64 */
buf[0] += a;
buf[1] += b;
buf[2] += c;
buf[3] += d;
}
/*
***********************************************************************
** End of md5.c **
******************************** (cut) ********************************
*/
<-->
<++> bleach/md5/md5c.h
/*
***********************************************************************
** md5.h -- header file for implementation of MD5 **
** RSA Data Security, Inc. MD5 Message-Digest Algorithm **
** Created: 2/17/90 RLR **
** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version **
** Revised (for MD5): RLR 4/27/91 **
** -- G modified to have y&~z instead of y&z **
** -- FF, GG, HH modified to add in last register done **
** -- Access pattern: round 2 works mod 5, round 3 works mod 3 **
** -- distinct additive constant for each step **
** -- round 4 added, working mod 7 **
***********************************************************************
*/
/*
***********************************************************************
** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. **
** **
** License to copy and use this software is granted provided that **
** it is identified as the "RSA Data Security, Inc. MD5 Message- **
** Digest Algorithm" in all material mentioning or referencing this **
** software or this function. **
** **
** License is also granted to make and use derivative works **
** provided that such works are identified as "derived from the RSA **
** Data Security, Inc. MD5 Message-Digest Algorithm" in all **
** material mentioning or referencing the derived work. **
** **
** RSA Data Security, Inc. makes no representations concerning **
** either the merchantability of this software or the suitability **
** of this software for any particular purpose. It is provided "as **
** is" without express or implied warranty of any kind. **
** **
** These notices must be retained in any copies of any part of this **
** documentation and/or software. **
***********************************************************************
*/
/* typedef a 32-bit type */
typedef unsigned long int UINT4;
/* Data structure for MD5 (Message-Digest) computation */
typedef struct {
UINT4 i[2]; /* number of _bits_ handled mod 2^64 */
UINT4 buf[4]; /* scratch buffer */
unsigned char in[64]; /* input buffer */
unsigned char digest[16]; /* actual digest after MD5Final call */
} MD5_CTX;
void MD5Init ();
void MD5Update ();
void MD5Final ();
/*
***********************************************************************
** End of md5.h **
******************************** (cut) ********************************
*/
<-->
<++> bleach/md5_distill.c
#include <stdio.h>
#include "md5/md5.h"
main ()
{
MD5_CTX md5Info;
unsigned char c[16];
while (fread(c, 1,16,stdin) == 16)
{
MD5Init(&md5Info);
MD5Update(&md5Info,c,16);
MD5Final(&md5Info);
fwrite(md5Info.digest,1,16,stdout);
}
}
<-->
<++> bleach/sha/shs.c
/* --------------------------------- SHS.C ------------------------------- */
/*
* NIST proposed Secure Hash Standard.
*
* Written 2 September 1992, Peter C. Gutmann.
* This implementation placed in the public domain.
*
* Comments to pgut1@cs.aukuni.ac.nz
*/
#include <string.h>
#include "shs.h"
/* The SHS f()-functions */
#define f1(x,y,z) ( ( x & y ) | ( ~x & z ) ) /* Rounds 0-19 */
#define f2(x,y,z) ( x ^ y ^ z ) /* Rounds 20-39 */
#define f3(x,y,z) ( ( x & y ) | ( x & z ) | ( y & z ) ) /* Rounds 40-59 */
#define f4(x,y,z) ( x ^ y ^ z ) /* Rounds 60-79 */
/* The SHS Mysterious Constants */
#define K1 0x5A827999L /* Rounds 0-19 */
#define K2 0x6ED9EBA1L /* Rounds 20-39 */
#define K3 0x8F1BBCDCL /* Rounds 40-59 */
#define K4 0xCA62C1D6L /* Rounds 60-79 */
/* SHS initial values */
#define h0init 0x67452301L
#define h1init 0xEFCDAB89L
#define h2init 0x98BADCFEL
#define h3init 0x10325476L
#define h4init 0xC3D2E1F0L
/* 32-bit rotate - kludged with shifts */
#define S(n,X) ((X << n) | (X >> (32 - n)))
/* The initial expanding function */
#define expand(count) W [count] = W [count - 3] ^ W [count - 8] ^ W [count - 14] ^ W [count - 16]
/* The four SHS sub-rounds */
#define subRound1(count) \
{ \
temp = S (5, A) + f1 (B, C, D) + E + W [count] + K1; \
E = D; \
D = C; \
C = S (30, B); \
B = A; \
A = temp; \
}
#define subRound2(count) \
{ \
temp = S (5, A) + f2 (B, C, D) + E + W [count] + K2; \
E = D; \
D = C; \
C = S (30, B); \
B = A; \
A = temp; \
}
#define subRound3(count) \
{ \
temp = S (5, A) + f3 (B, C, D) + E + W [count] + K3; \
E = D; \
D = C; \
C = S (30, B); \
B = A; \
A = temp; \
}
#define subRound4(count) \
{ \
temp = S (5, A) + f4 (B, C, D) + E + W [count] + K4; \
E = D; \
D = C; \
C = S (30, B); \
B = A; \
A = temp; \
}
/* The two buffers of 5 32-bit words */
LONG h0, h1, h2, h3, h4;
LONG A, B, C, D, E;
local void byteReverse OF((LONG *buffer, int byteCount));
void shsTransform OF((SHS_INFO *shsInfo));
/* Initialize the SHS values */
void shsInit (shsInfo)
SHS_INFO *shsInfo;
{
/* Set the h-vars to their initial values */
shsInfo->digest [0] = h0init;
shsInfo->digest [1] = h1init;
shsInfo->digest [2] = h2init;
shsInfo->digest [3] = h3init;
shsInfo->digest [4] = h4init;
/* Initialise bit count */
shsInfo->countLo = shsInfo->countHi = 0L;
}
/*
* Perform the SHS transformation. Note that this code, like MD5, seems to
* break some optimizing compilers - it may be necessary to split it into
* sections, eg based on the four subrounds
*/
void shsTransform (shsInfo)
SHS_INFO *shsInfo;
{
LONG W [80], temp;
int i;
/* Step A. Copy the data buffer into the local work buffer */
for (i = 0; i < 16; i++)
W [i] = shsInfo->data [i];
/* Step B. Expand the 16 words into 64 temporary data words */
expand (16); expand (17); expand (18); expand (19); expand (20);
expand (21); expand (22); expand (23); expand (24); expand (25);
expand (26); expand (27); expand (28); expand (29); expand (30);
expand (31); expand (32); expand (33); expand (34); expand (35);
expand (36); expand (37); expand (38); expand (39); expand (40);
expand (41); expand (42); expand (43); expand (44); expand (45);
expand (46); expand (47); expand (48); expand (49); expand (50);
expand (51); expand (52); expand (53); expand (54); expand (55);
expand (56); expand (57); expand (58); expand (59); expand (60);
expand (61); expand (62); expand (63); expand (64); expand (65);
expand (66); expand (67); expand (68); expand (69); expand (70);
expand (71); expand (72); expand (73); expand (74); expand (75);
expand (76); expand (77); expand (78); expand (79);
/* Step C. Set up first buffer */
A = shsInfo->digest [0];
B = shsInfo->digest [1];
C = shsInfo->digest [2];
D = shsInfo->digest [3];
E = shsInfo->digest [4];
/* Step D. Serious mangling, divided into four sub-rounds */
subRound1 (0); subRound1 (1); subRound1 (2); subRound1 (3);
subRound1 (4); subRound1 (5); subRound1 (6); subRound1 (7);
subRound1 (8); subRound1 (9); subRound1 (10); subRound1 (11);
subRound1 (12); subRound1 (13); subRound1 (14); subRound1 (15);
subRound1 (16); subRound1 (17); subRound1 (18); subRound1 (19);
subRound2 (20); subRound2 (21); subRound2 (22); subRound2 (23);
subRound2 (24); subRound2 (25); subRound2 (26); subRound2 (27);
subRound2 (28); subRound2 (29); subRound2 (30); subRound2 (31);
subRound2 (32); subRound2 (33); subRound2 (34); subRound2 (35);
subRound2 (36); subRound2 (37); subRound2 (38); subRound2 (39);
subRound3 (40); subRound3 (41); subRound3 (42); subRound3 (43);
subRound3 (44); subRound3 (45); subRound3 (46); subRound3 (47);
subRound3 (48); subRound3 (49); subRound3 (50); subRound3 (51);
subRound3 (52); subRound3 (53); subRound3 (54); subRound3 (55);
subRound3 (56); subRound3 (57); subRound3 (58); subRound3 (59);
subRound4 (60); subRound4 (61); subRound4 (62); subRound4 (63);
subRound4 (64); subRound4 (65); subRound4 (66); subRound4 (67);
subRound4 (68); subRound4 (69); subRound4 (70); subRound4 (71);
subRound4 (72); subRound4 (73); subRound4 (74); subRound4 (75);
subRound4 (76); subRound4 (77); subRound4 (78); subRound4 (79);
/* Step E. Build message digest */
shsInfo->digest [0] += A;
shsInfo->digest [1] += B;
shsInfo->digest [2] += C;
shsInfo->digest [3] += D;
shsInfo->digest [4] += E;
}
local void byteReverse (buffer, byteCount)
LONG *buffer;
int byteCount;
{
LONG value;
int count;
/*
* Find out what the byte order is on this machine.
* Big endian is for machines that place the most significant byte
* first (eg. Sun SPARC). Little endian is for machines that place
* the least significant byte first (eg. VAX).
*
* We figure out the byte order by stuffing a 2 byte string into a
* short and examining the left byte. '@' = 0x40 and 'P' = 0x50
* If the left byte is the 'high' byte, then it is 'big endian'.
* If the left byte is the 'low' byte, then the machine is 'little
* endian'.
*
* -- Shawn A. Clifford (sac@eng.ufl.edu)
*/
/*
* Several bugs fixed -- Pat Myrto (pat@rwing.uucp)
*/
if ((*(unsigned short *) ("@P") >> 8) == '@')
return;
byteCount /= sizeof (LONG);
for (count = 0; count < byteCount; count++) {
value = (buffer [count] << 16) | (buffer [count] >> 16);
buffer [count] = ((value & 0xFF00FF00L) >> 8) | ((value & 0x00FF00FFL) << 8);
}
}
/*
* Update SHS for a block of data. This code assumes that the buffer size is
* a multiple of SHS_BLOCKSIZE bytes long, which makes the code a lot more
* efficient since it does away with the need to handle partial blocks
* between calls to shsUpdate()
*/
void shsUpdate (shsInfo, buffer, count)
SHS_INFO *shsInfo;
BYTE *buffer;
int count;
{
/* Update bitcount */
if ((shsInfo->countLo + ((LONG) count << 3)) < shsInfo->countLo)
shsInfo->countHi++; /* Carry from low to high bitCount */
shsInfo->countLo += ((LONG) count << 3);
shsInfo->countHi += ((LONG) count >> 29);
/* Process data in SHS_BLOCKSIZE chunks */
while (count >= SHS_BLOCKSIZE) {
memcpy (shsInfo->data, buffer, SHS_BLOCKSIZE);
byteReverse (shsInfo->data, SHS_BLOCKSIZE);
shsTransform (shsInfo);
buffer += SHS_BLOCKSIZE;
count -= SHS_BLOCKSIZE;
}
/*
* Handle any remaining bytes of data.
* This should only happen once on the final lot of data
*/
memcpy (shsInfo->data, buffer, count);
}
void shsFinal (shsInfo)
SHS_INFO *shsInfo;
{
int count;
LONG lowBitcount = shsInfo->countLo, highBitcount = shsInfo->countHi;
/* Compute number of bytes mod 64 */
count = (int) ((shsInfo->countLo >> 3) & 0x3F);
/*
* Set the first char of padding to 0x80.
* This is safe since there is always at least one byte free
*/
((BYTE *) shsInfo->data) [count++] = 0x80;
/* Pad out to 56 mod 64 */
if (count > 56) {
/* Two lots of padding: Pad the first block to 64 bytes */
memset ((BYTE *) shsInfo->data + count, 0, 64 - count);
byteReverse (shsInfo->data, SHS_BLOCKSIZE);
shsTransform (shsInfo);
/* Now fill the next block with 56 bytes */
memset (shsInfo->data, 0, 56);
} else
/* Pad block to 56 bytes */
memset ((BYTE *) shsInfo->data + count, 0, 56 - count);
byteReverse (shsInfo->data, SHS_BLOCKSIZE);
/* Append length in bits and transform */
shsInfo->data [14] = highBitcount;
shsInfo->data [15] = lowBitcount;
shsTransform (shsInfo);
byteReverse (shsInfo->data, SHS_DIGESTSIZE);
}
<-->
<++> bleach/sha/shs.h
/* --------------------------------- SHS.H ------------------------------- */
/*
* NIST proposed Secure Hash Standard.
*
* Written 2 September 1992, Peter C. Gutmann.
* This implementation placed in the public domain.
*
* Comments to pgut1@cs.aukuni.ac.nz
*/
/* Useful defines/typedefs */
#ifndef SHS_H
#define SHS_H
typedef unsigned char BYTE;
typedef unsigned long LONG;
/* The SHS block size and message digest sizes, in bytes */
#define SHS_BLOCKSIZE 64
#define SHS_DIGESTSIZE 20
/* The structure for storing SHS info */
typedef struct {
LONG digest [5]; /* Message digest */
LONG countLo, countHi; /* 64-bit bit count */
LONG data [16]; /* SHS data buffer */
} SHS_INFO;
/* Turn off prototypes if requested */
#if (defined(NOPROTO) && defined(PROTO))
# undef PROTO
#endif
/* Used to remove arguments in function prototypes for non-ANSI C */
#ifdef PROTO
# define OF(a) a
#else /* !PROTO */
# define OF(a) ()
#endif /* ?PROTO */
#define local static
void shsInit OF((SHS_INFO *shsInfo));
void shsUpdate OF((SHS_INFO *shsInfo, BYTE *buffer, int count));
void shsFinal OF((SHS_INFO *shsInfo));
#endif
<-->
<++> bleach/sha_distill.c
#include <stdio.h>
#include "sha/shs.h"
main ()
{
SHS_INFO shsInfo;
unsigned char c[20];
while (fread(c, 1,20,stdin) == 20)
{
shsInit(&shsInfo);
shsUpdate(&shsInfo,c,20);
shsFinal(&shsInfo);
fwrite(&shsInfo,1,20,stdout);
}
}
<-->
<++> bleach/transmap.c
/*
Implementation of von Neumann's transistion mapping scheme to de-skew
a series of random bits. See 5.2.2 of RFC1750 for more information.
*/
#include <stdio.h>
char reconstruct_byte(char *byte_ary);
main ()
{
char c, b1, b2, i, j;
char byte[7];
j=0;
while ( !feof(stdin) )
{
fread(&c, 1,1,stdin);
for (i=7; i>=0; i-=2)
{
b1=((c>>i)&1); /* integer representation of bit i */
b2=((c>>(i-1))&1);
if ( (b1==1) && (b2==0) ) /* translation of 10 */
{
byte[j]=1;
j++;
}
if ( (b1==0) && (b2==1) ) /* translation of 01 */
{
byte[j]=0;
j++;
}
}
if (j>7)
{
putc(reconstruct_byte(byte),stdout);
j=0;
}
}
}
char reconstruct_byte(char *byte_ary)
{
char i;
char r = 0;
for (i=0; i<=7; i++)
{
r<<=1;
r|=byte_ary[i];
}
return r;
}
<-->
<++> bleach/xor_distill.c
/* Distills entropy from a stream of skewed random bits by XORing
each bit in a byte against each other to obtain 1 output bit per
input byte. 8 such bits are reconstructed into a byte.
*/
#include <stdio.h>
char reconstruct_byte(char *byte_ary);
char xor_bits(char c);
main ()
{
char byte[7];
char c[7];
char i;
while (fread(c,1,8,stdin) == 8)
{
for (i=0; i<=7; i++)
byte[i]=xor_bits(c[i]);
putc(reconstruct_byte(byte), stdout);
}
}
char xor_bits(char c)
{
char i, f;
f=(c>>i)&1;
for (i=6; i>=0; i--)
f^=(c>>i)&1;
return f;
}
char reconstruct_byte(char *byte_ary)
{
char i;
char r = 0;
for (i=0; i<=7; i++)
{
r<<=1;
r|=byte_ary[i];
}
return r;
}
<-->
----[ Postscript file detailing empirical results
<++> bleach/random.ps.gz.uue
begin 644 random.ps.gz
M'XL("$L!\S4``W)A;F1O;2YP<P#$6UUSV\:2?>>OF'U(R:J5*(+?3&YMK6);
MCNI:MLM2*MX*[\,0&)*(2`R"`<30M_+?]W3W#$!*,ARG:FOCV"('P*"G^W3W
MZ9[1=__QX?;\,K$+<S[H]CK???>R,+JTQ??J,L\WZ1\[71B,?M`KX[Y7T1"?
M7]FXVIJL?&=,8I*/QMFJB.GJTF:E^LEL'DR9QOK\1[M)U$M<3$W1#*N[=&L<
M7\1<_RD/W>ZW"[OQES[:K<YP[766O+1;>I/#MQ_-*LT^%'9C5YV+1:+^K19I
MEJC$+-6?]<?.1:9P)3.[7)=KNI!T+M[2T";-3&G]R`V-;.U#,_*21N*J.!CZ
M^!9#Q?%S'VGHZ,';.PRYM=V%[S21*PM[;\+(AWKD0*@WMQA=.?T0;GM#<Z\*
MXZ#\9NSR?^AA4ZX*O?>#EY]<K#<&XY.^BGJ]GDK2!W_MU?O;UW<_XX4=Q?^%
M>Y,J5_S)CT<T)RTMUKD?&H:A79J4Z\?W_6;3[/#&;5H:Z`8__.BO_U(]NI!H
MM^X$85Z^O?[PX_M/7IP,C_85++C!C]CF>W6#D4A&S!_Q.@R_E6^YS9L1?.%)
M^,I;%6^L$W7&FS3O!,T4)DGC$C!5_),1\>E`&_[Z@K#D!WG""]A'/M$C<H&&
M\#?-5JP1%L=5BX.K&Y.M<('4W^,!34`(\V:)%^OJ^MVKJ_?O[KP<_U9+H)5A
M_R>>LGEN$G_AXL`!#N]*EWZJ#^^OW]W=OKQ\^UHF;`P,&?B3?T+T?W3KX\M`
M2KABRH/QO!>I?P!6!G_&X<=_B2[S7A_7EO+'_VBN#=0_ELL(?V;+I?]07QO2
MM67\=_Z&.:(>WCWD5QK_HWYWU&>9QR1Q^%%?8[EF(I7_$*[U([I&DT5TC3_X
M:Z]>PW"LO-L:08#8%305Y=&4WJ,N'D6[VM31M$O7']FK`9>?:)23`]-$(4XV
M,_3^T@R]IZ)\LQ28H__E.?I_:8Y^/4<3W[]YDF&]&)\0OG4E@T=2B"=]JQB#
MVBK/S_)%R_S)_W+F\IG*YZU;4U8YOEQG\:9*3,B9SZ;,+][F(?+U:;YXQU'J
M??X64?Q79I`,W3GP$%ET6":Q!9`%%=5Y&P-RD3,>],PC]+F.NCYW=7HJXJPV
M'>&?GJJSB-=K/1-;H:<H1W8>N:4/;9TWMYVL$PW&`S6;C&;JIO/B_:+4:8:8
MKNZ*RJB/.DOL5OV8ED[93!'=L$E:[M6'E^Y4C2:3H?K4>?.1)@IB#0A@ZKS/
M7QKAZO?TIWC/!%_D\UN%"\>IM7>8?`]7<4NO>KJLVCV/EM6?#O&ZT7!"RUI`
MXG65)5K=@"[IC9J_R.E[:OZ[<KH+"C,_/57]:>37(R:Z*W2Z`:`.K.'Y1X<2
M68[!VIA]U?\[QORJS?K/+FXPF8W4;#H<TN*N,Y"GI(K+U&:G:M:;R1J>SC5X
M=J[)J*=F_>F8IRK56CNE-SN]=Z`!)E-:Y85=;,Q6@=.M3&8*71I5$CH*0<?"
MHT.#BVSS"L0'3\:Z<D;-.P>#J5.G:CR8C9_*UP@"V)`@:;8V!4RUV2O,FQ@\
MOP4N'=Q7;76\!CJZZHVUB<J=J1)[[F7)JNT"K_)RIB359F6+=-XIUUNG?OWG
MNY^GT;^P2!CC5$UZO4F+,--9Q`IF/>2L8Y,HL-M"E6NC]D87[DSAQ1`IVRN[
MI.&MVJ<&L1UW[=6*)/2B)2FQI4550AB;X4%\5&D&GIV8(B/5U/![7AIQG1>B
M3W)1315(S,O$=$]>@U$(ME>9+1N+BD@FL]5JW84+]T>CMG<.1HR+*RM+SJLB
M![%TLE88M#"Y+<HS=:UV*5@JH`W+P&+._%Z9+#9TH]@$J')!1FA@R7JS&0R<
M+ADC&QA9M-!KDRB:,$#N,[O;F&3%;]!X=5Z8A]16KGD=YJ_G/;J=5N+VKH2M
M8IV1>A9FWE$`;$(@SST+ABR3P:!%E@D\D&39K77)DV;FCS)`D/6Q`$KO2$_X
M?[N7Y0+#>;41<"ZA5]%)9ISKJNNE<G8[[]2^Y2>#*.-^JRB0A43QP,>T\Q<?
MW[V9GZH=_(A69:L2L%$3M85@].[>B5-BQ.8A?(%X$#P&>%+@$J+4`$Y%<Q0.
M]"+=4!J`7+-I&X`F8S!/R.6US@I"O(!B&,#(@?4KNZ.N@K+,$8+9NO"M5?H`
M'W2:S$EC\TZB2TT/8UH$9$KK&\)249B->=!9R>X-^MHBV[#/X"8C((<WX'8I
MD'M&>"69EWI+L")(5%NXCX&O014[0[!#7:OAP=F]V9.2%QJK(O?&:+G/S:Z@
M.E!M;+8B-$V>"<V-./TA(UM\\TSAU8PA@Y67%:^.M`"8LE@[6]RS']ZN];UQ
M.8(1P'9-@4HC%=`"+#E6->\4#E]VE'UR`UQK;U`RWK#5>+T1X_LXJ%(HL"**
M!P:28K4I?2@LUQ"P>5GYV*!X=M[96'L/M0&9ELI$Y]02'M%E]^^W*6D\'4]]
MHH+MC7:L=F<,O2@[4\L"\C"H.12E\DKR3V?/"2(-G(]6A?S0)`M.%8GEP$EF
M&[>%Y3$D9L\+MCG(C#X4==4_$7X(\*0-E@H4Q)642+UC'/HM?3]Q\#R3G,"!
M$R#.0XVFMQ*7^FTB#6<,[!#(#.<B<CO6!)3C@X'7EFG6W55758&1`H#!=Y\H
M_/V(D9SKZ\<.`@=K:C9KU=0@DMQ.L"TII5KG4E`+6E2:+7U:A3$3CL60)<T(
M]V?BD0",*VLZ@>A%#`.*F'=H:6E6FA7%_:4]F`?JY1C5EE(0HACF]-"S-$+6
M![$)$&M=<);8(J[")4MHEM-/6$O_5`W'DVD+!^L]Y6"C(7+[.!J/2(X!IH@&
M;3,\P^)&H_&X7@FOW0%*^@#VBP)J(^W$E&;[O58_&\T&[&<.825>`X55AB#-
M>HTM8BQ0Q?I-2=\@T@C=/SM".*<XHC2UJ6BT"$U00,A5X,#$$&AF"E`@2PM#
MGC]\9LV-1)-17^A/1ER7WDU1=FEV*@&UZ:(XD90E?@:<-_2T,20\J3"2Z0DG
MD&7>65/`R%;$&(#WN-CGF)TC45O&9843:O`:1]BE:$L.AW431`(-J>DB:#IX
MGBF%^)"/B2H0IG064T3@J4"98\_H4E8R8E%>H-+DE#:>SMH\?S28LHL!G^0<
M^D`'YP><N#3Q.DO!T$11-0DZPH@8B-SP]1_S3HZ)0@1CR[OT,SDN>=>H+<N.
MHAEC4B,LG9,M.'%3<E2Q*:C:!&"XX<C!;4>ZL\NEZ,;+`.*Z5[FQE/PY+%'!
MUJDS8`X]6T0*TL^HUPJB7N^`0YM`WY&K#I='*UM*&"21(O@FQ[U[8W)WH`&]
M-!(+%\BQCQ5'(E.D;JTPAM,^@YIR/$_,(2ZW(&W+:@.L%L3:+6D#BZRE9J&1
M\@DU$#;AH+1C`O`CPKI#SH<`&UVLC`\%,#%+TTK6AN,!0UKXV,*P`V-]*;D+
MEG-0RSVD!9(1>5`*/JF)XB#,*%V6.K[W"1?O!.LU6POM[/G>G<X!=^1[=CZ2
MI]^&YN%PU),@A"6<T0RL)TH5<4E>85>%AGMLTGLCG,@L`&&[<^1;5L2HS45$
MDYS(@>O#4:FT).I@M\9[(Y'LUMH#?'%XB)XNK:`-^P/R5CSP"V&6TTOJ[L6<
M%`-96>+G$&X'-9-$@7H_GXO8?<$-O`,[620%M<!6IFWU]6#28Q,O--D4<VTU
MU:R:^?,!_9'JE*:%7Y9&P_[AB7R]=WRWEX_"U<.\@W*@JVYI77Z<U#ENU<ZH
MWPO@+P6B@#E*6D%;Y:1$>&-2Y'5*%!1`%:FH3+=B\),U_/*$%(B49,#`B)R`
M?V_%KFY+J;G026I92JXO9ZUT;C`8L(TE7R&%,N2T3'5&CK9EOLJ2<LW_42?0
MRDH?K(!<I7*:Z$#A21Y\H.F6S$]_4+LU'(%T]%R_IA$G&G+`.ER#3Z5@N#&J
M>[)^*%GK-YZQ=J`FSFL+4^Z,#S"DIUQ:$*&V*G=$OY+T(4U09E".:35;?S9F
M4.>Z`&K(F0DFLKHN%W!UE)#D[DW#[PDB<0"K%B75*MPUZ4)#UTLO(I439'S(
M,IRT6:L_F3"<DW2YI'X1+$8TS:PT:4JTX-M%GL/BU:I'1C@+]>SQL^!Q*:F'
MGO;E:6AZ(1->4H:)VF)H?S3K/9((:OYL"DM3H1(B<D#)PU)]23Y+96.J'9>@
MGI<31A!<AE%KP=CO1XR-R\RSB8.$L#7EVC+]?<J"*(2DG&R%(WRF88@&TL:2
M<,U/'8-<>GVI((>365MLZ?<&#`S]H#=@-&S)%5[F6R!AF`QKEA3"20HMC;+,
MIBCE$-%C<BYNW6@JQZ"F!;5#0F^F;D!J<IU!&S:BZ7`LKE,K0#R'RDSD]+:\
M'!'LN+6J3,K*C345T6MDY@<JCCB`AZR+>3>^WT;?[,+%%7YJHE2N%(HA$1IE
M)N)\0H4#U('$"8?EJG?4ZG)1U.M[<9B!0Y90.(K9@B1<YN_8ZRQW\AL*J$&0
M[`KY>H4/9Q1^P.L[_F;NAS*9&XYG?[<%/E"#_Y,6>$O;>BH$@:E*!L.4@A)-
MN\U&;X_Q[T)*R=3EJY=4'8E*\$"2KE+:%O"S`''%_+2KI,L`[!$9*[DA("W*
MUJP_&X]]/0D$'-6LKNDBEQ95B^A=R(`(A4!^3AF72[;OA;Q0?4518]Y!`$*\
MK@<D]U.?Z[EJL9%G..$XP3T$)TTT+M66DB4#,FA:[R+BF3F6FTFO0D:/U4GR
MG*(.:BTD9Y$0CLM,7=VHLJ)00_^RG6AYZW1%;88$]J!;SU4$QGSSTV=J71(-
ME6ZZYG9)&N-VZI-^H*Z6"6-I:"Q[5U-?[6R!ES%P?&HZ$,E/R?F)NXV>^4;C
M$$&\[J'YX5#=__29=96)LJB-])RZF)>U868Z$=KA(W]_^@PO;MT0Z@^BNC?^
M?O&;8:H@D?2&<P%MM^ZI[O_6SL)A>YFRNPVSUYL`U.HK4CJ(Y/-*8A![-J%;
MC(ME*GL&LE7$D8DJ<*%JM6V]VAY2'1).^XY(:"XW1L$K_'9*S4&:TNCNB%NP
M-25*2!<Y8T?8(WLB+()T8TG24R8=4K:9M?9*?3,9%4F^]@]*N*&T7'*I0A>P
MR&4I\MS*<F,*X,S[O<1U74-)#[*DM!KP,\HP$K^X.]'*\T,SN4#Y]2#+U0>-
MNQ#OQ.>I)/-<G_>TD]#)/6@,IK$3&HM19QH9Z3'*7Z.V=!H:R0#*1DQ/53SS
MBGH/B;/R+&H+9*'5^OKW*LT9;NRF7J'"$<*D!YBD:P^Z2(G`W3$AQ$W</"B%
M#,T[34/(!T<F.ZW-3-]CY0A]"%^O.^X*V6*KPR[&,;.M#5`C4*M7-#;O8+19
MX$M;0#DR"1F]=;<N-%AOZ"4Z$%^?Z^4=O@?S\?KV96!;6'6@R'6-]TK$.W'J
M<I.O:1>WN7G^@ER,FRW3UG9"Z$;V$=?'".=%E66AQ_(VS:H_+FAR[7DFNPIO
MRGF^&(2J:$OF)HT+2Y:&U\!<T/"M;.#QCG(;]D(GD]P+;Z$*25!?L[<ZUI,(
M.TVM_XS96S0^YX!%-TBLA].&&^>=^M8T\[F,^W-M'830Q+RMLHMWYM-=<$`&
M"C3;U17W.;K@&[X\6:/X-GYGKDCI,!QE1K:H3^AX&E&BT#NE*]!!:;!)F\Q*
M$&UM&?H^)O=Z8&$B[*=J.FT#?^CID3?Y2"G!TY&8C_WQMRI9!;L_WML[]@KN
MY#L?CP%"P\UVKKE:6XR^JW?<,*D%RG5\#WKYZZOKU[/IOY`"OYR*!R.DT3"=
MU[+LO\`WRI(J%6)-Y.].6B8EV+#S@9,A3&3N5`W&X];.EN_[8:8L82;'T_@=
M1^#^W/U>D0YI_,DN,:8??O$4Q;"/LB?,+YY46X00"R^4PQH?B-M56Z#NP^@,
MO*!WLR;219./6KM@ODL8_/.)6S_CT)@4,>`OM-9NGT^6ZM?;VSL8SV/*^7@N
M72IN=:P+XR.[-W>=/NGQ):Z*KX>J2VASJT@]H<V<--_9N\L;J.J=+78H<,#W
MWIF2<@@;YX[:<4RPSM1E;"O"AN=>X`#Q#T23>\,V0(1.X;HL\^\O+G:[71?%
MAMYVJ]3BTP5_N4!-<B?I-ZR1UN3W=WY,[9FZT=MM)7GQI2D,<W1<\!R5ZKOH
MK[0':3.M\.VFQH\DYTO5D6]L2<C*A`><'="<K2S=NAC\70;F':1%V@4/<8EZ
MG<2I6C?F0H,0[*<,V5Y:'4NC2Y38KC[-X0M[7K-D.NG]>44U.SZ4QU#>.1<@
M"VCP496]R/-7>H,QPA*4@[`GAJ8^FJ\6?J@M0*V+$*#K5_@L2N^N:@FNYIVK
MNU\`KBOMV-^O_%E7WKEL[:#Z[N!=8!NA5_,+IH$O6_E&CEZ8`[+GZR21KJ8J
M3-U12NM\WI$NK%2F?&R+]B:_WA.DTX%+?R2I[E!`3P^Z*1@H##W0!DO&^UQG
M)%$IVW:TA29[0EYG\TX6I[Z,"3L-E/%;C^6$IN`Q!W/^=(G@E)K=3Q(6A<?*
M,R!)0$+2/%>4,P)T:&H\:J.IH-X,DT\,<Y<+]?)-NB,GNJ[[6B!\\3U*AH?4
M[&HP2<.+^KL/J:OP?I""Q.B@QN`6?!Z@M4OJ&X7D>Q;8S(R1S2[+V8"]H*(=
MGR;%A=S+>8DI"?4*N:`+H<=7;QP9NZI>[%=+W=`FI'V.LJAB;LF>2$C`\_#@
MDZ90"8?:B-(T'N-''_2&=T`L1R.$^MRF&6=C-7B%N73LNY9M#8K0)O05B?8R
M\%DL#BW\E>P`<&0IX0EV`F8WE'\8X/XDDHZIM8[DLB<!YQWINB72QF`[^OJ2
M6^RM,HW''/C")B0'3:$(P25A27>8SM(LV(RS[:C?YJY1?UJ7\T?%B\<_]S13
MAF!,OV%4\/;TU4UHY=.1EO=(_0<CX&X(8!%Q4TB',B\.._0<5MO\)70WZ1=6
MN+=;6*\YMZ;F#PG$Q#;FE082XSEW<[PTXPW\)2S$3?7MO)-FB!F?C7I]<]UT
M\3FLA@,:W][E'*KA_U.7LW:*)[T-VKZI8O(./ISA#Q?Z7'!D8*F`)111"RT8
M[\55'Z9CW1+=;C^CZ_N;WLC\JT9/K'%47>W\5D>P)T%TV&O-M;.^$"(2ETY(
M;!XUB1BG.T^8FP80R@>S6=;5SU%/$P$GH[W?LFX$4%&9KZF$^ZI+ACYFFM$&
M3>XQ]NCE%,FBBRG>C41>&,0E3&[5;[0GCA)Z4ZWJGAD?@-C19@OML$KG^K".
M'+36#Z%_V;P[K'B#<M')4FFA9TTRX78OJ0-6M[P'U1R6<P1*<>$!<$"@=\WV
M.7GPJ/UH<KUI>J@*T(OS%27S8]/MJ->&-RJ\,K1K=GK/H(B&;4:8#H1F7,E1
M`*2JD"CU/>:\EE.)^;G#`HT3(Q]F,O*0P`A7TA_%W0^462M3;Y/V&+.1/Z.`
M*J%UZ9&0#1&'3GOJYLPAG7:Q01`O5LC\&Y#'4.EN#6UV808M!Y0Q&9^9$."3
MA"2?G('UQTI:S]Q,9K()&=:^K/5%6D!J`XO@<W7ZN5/CDK!$V*"3[I"4`K!V
MQ_4N6!#,<7.TC<A/IL*(/)ZZL]D,0'TP&\XT=#8[DZ,=>DLUPN&I>3$PG67C
MS'="UT["J*_NQ/J$9I)DV*J9L5`A$L-OMH;C&'SPJZX\$13.`<J:IG)Q?O-J
M1%3H]J=+VAVZ/&A3P%P);"V_^%NWZR;3U@._0R%"3N]!L4YRQ,P\-YD[.ZDU
MG')E(6XCH&[";8]$B:A[:BBMT6$$WLG8@9;1)3Y>&]27EKQ?VMK![@L1@O/+
MD3PFH[Y7"Q6Y/(UY-_>:`GFXA[;$DB94/,,CYYV&2;*I'#(^EZ*M60:5*&-X
M:U9ZL2^EUB.JQ6P4,X1S['RQ.69O%_QK`'P&@R'OCT&Q(H!XE!2)/W'C5^'/
MOGWU.-)X*IO"B*RHX73!YX>X8#LXH2ZVVGI'1QS8I?_;WKLVMW%DB;9?[B?\
MBKIQHZ>M&8E.O$%[/!'R0VZ?XU=8[G,\8?I.0&2!1)L$.`!H6=VWSV^_F5FO
MS'JA`!2W06CM=DL@4+4J'WME9E5!+#-;+>R71M)),;V>;]XS7S8(]#GEXCJ\
M2O(\FH<GM2M7NZR*<SD:9L/-)OH.9GH':I6[A?C,C+*]\_/^OLN?83`4_'=.
MNJ2C]-\Y_1!]S3R[3A_&=S3BRK[JZJH-R[YOU_2?/_WX=IF2HW\WD8XLFOX\
M"*>Z6B;UTIS4K1[]*^=X815_K]K<4+&79<UE7;M@G;Z-KK[4WCB.__%3>G4X
M6O;&5X>C>R6YJ[SFIDYV+S49[Y,Y;FIG>WTZGXP0,]/1T1750>V_LHG_Y=/:
MC$+I5<YH((B&(2UC]\P.01H0+Z=RLYC-O&AK.SZ\M?^<Q.IFOP^S7.ERJ-HK
M0,F_>3)+-%/7,WUJ/8C*8>\:1A=/K\+?YNDEA[/^I-=+;MU?ZN70REGG)..4
M.5=\R&X@QZL(TT&UESXGPT'TKUFR.Y@V,Y+OACL7AJ.30/N5*'OUL[ZYXQNW
MT=7:J##QVC:[*QE5.[Z\9.Y4FU^JX%_!RE]=MW?K8N"97536SD?Q/V=Z&=A)
M,%VJ1OO_V7R/[&:J!]=5/';J2?M-J-=XFMSO)S>L-4W_9W%#O3(:1]^)TJ^R
M?PKZ\TC/_U$!E/?7('U?[Y6\&(_LJU_,F'DYW9C?8C"_TQGVYF$6#/32+/H5
M!':PF8S&P6`TTJ=H/YN7YE_'OC`_ZQ>_!)U_7#ZLS#\IM'(ZD)5>,=^$O\><
M^^7]/P/[66>V<ZB:S_;`U04X<">%4_@&#IP8#M_`@9/#X1LX<'(X?`,'3@Z'
M;^#`R>'P#1PX.1R^@0,GA\,W<.#D<,U]ZV;[-"*W$N#`G10.W\"!D\/A&SAP
M<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP
M<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP
M<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP
M<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP
M<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP
M<CA\`P=.#H=OX,#)X?`-'#@Y7.);U_FS//`-'+A#<;%O76M3MTXX?`,'[E!<
MY%LD6O+_\L`W<.`.Q;GK27P#!^YQ<8U\ZV9A]VE$;B7`@3LI'/,;.'!R.'P#
M!TX.Y]T/X/HD.'"/BHNO3\:G9MQ_`P?N,7%\OP0<.#D<OH$#)X?#-W#@Y'#X
M!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X
M!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X
M!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<OH$#)X?S?(N?-U4>
M^`8.W*$XUS>>CP,.W./B\`T<.#D<OH$#)X?+G[_Q/&%PX.2N3S*_@0.';^#`
MG0*.\S=PX.1PW'\#!TX.Q_=+P(&3P^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<
MOH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<
MOH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<
MOH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'Z?.3AP<CB>UP$.G!P.W\"!
MD\/A&SAP<KA&YV\\3Q@<N%9PS&_@P,GA\`T<.#D<OH$#)X?C_ALX<'(XOE\"
M#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&
M#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&
M#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&
M#IP<#M_`@9/#><\/Z-;]0G-\`P?N4%Q^?L,W<.#$?.-Y'>#`X1LX<">!\WVK
MT(WG"8,#UPJND6^YS_`-'+C]</[S%NOVP3=PX`[%X1LX<'(X?`,'3@[']TO`
M@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&#IP<#M_`
M@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&#IP<#M_`
M@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&#IP<#M_`
M@9/#X1LX<'(X__>9USQ.&-_`@3L8YSV_>\;SA,&!>TQ<WK?JP#=PX`[%X1LX
M<'(XS[>J\S>>)PP.7"LXSM_`@9/#X1LX<'(X?`,'3@['_3=PX.1P?+\$'#@Y
M'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP<CA\`P=.#H=OX,#)X?`-'#@Y
M'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP<CA\`P=.#H=OX,#)X?`-'#@Y
M'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP<CA\`P=.#H=OX,#)X?`-'#@Y
M'+Z!`R>'RS^/BN<'@`,GY%OM/O@&#MRA.'P#!TX.Y_O&\W'`@7M,G'_^5C''
M\3QA<.!:P>6O3W*]!!PX?`,'[A1P/$\8'#@Y',\3!@=.#L?W2\"!D\/A&SAP
M<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP
M<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP
M<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP
M<KB<;_P^<W#@\`T<N)/`^;[QO`YPX!X3YS\?A_D-'+C'Q#7RC><)@P/7"B[W
MO$7F-W#@I'SKUCUP$=_`@3L4Q_5)<.#D</@&#IP<CN^7@`,GA\,W<.#D</@&
M#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>'>"]_2`A]EZ<`UCNK,.X;2-<'A
MVP$!3AB';]7D5@+?P#F!;]7D5@+?P#F!;]7D5@+?P#F!;]7D5@+?P#F!;]7D
M5@+?P#F!;]7D5@+?P#F!;]7D5@+?P#F!;]7D5@+?P#F!;]7D5@+?P#F!;]7D
M5@+?P#F!;]7D5@+?P#F!;]7D5@+?P#F!;]7D5@+?P#F!;]7D5@+?P#F!;]7D
M5@+?P#F!;]7D5@+?P#F!;]7D5@+?P#EQ6KZ=[/,Z\.U$<*?EFXE&OM4(=Y3U
MQK<3P9V<;\V>UX%OX/X0W*GY5J,;OA4#G##NQ'RK.GW+/T\8W\#](;@3\VW&
M^=M.`4X8AV_5Y%8"W\`Y<5J^=6?XME.`$\:=EF^5YV_1A]D^^`;N#\&=F&^U
M@6^%`">,P[=J<BN!;^"<P+=J<BN!;^"<>$3??#2^'1+X=B*X=GU3E3\\7M[A
MVP$!3AB';_DXAEXI!+Z="`[?\G$,O5((?#L1'+[EXQAZI1#X=B(X?,O',?1*
M(?#M1'#XEH]CZ)5"X-N)X/`M'\?0*X7`MQ/!X5L^CJ%7"H%O)X+#MWP<0Z\4
M`M].!(=O^3B&7BD$OIT(#M_R<0R]4@A\.Q$<ON7C&'JE$/AV(CA\R\<Q]$HA
M\.U$</B6CV/HE4+@VXG@\"T?Q]`KA<"W$\'A6SZ.H5<*@6\G@L.W?!Q#KQ0"
MWTX$AV_Y.(9>*02^G0@.W_)Q#+U2"'P[9EQ--N5#5>Z!;ZT$OIT^#M]*0\:W
M'!K?GCJN*E?P;4L<J6]->@O?_C@<OLTJ?3N"WV?^"+XI?/L#<2?@VPX%K#A`
MN6_BS^LHX>#;B>&.QK?B3KYOWD^'^:9R?S\!WU137&N^[3&*'4=&'S>NWC=5
MLT4U++^'>IJ^F7AZOI461GFO']^WO9<<Y;A6XCAPA_I6MNC;T3=541#EOOG'
M^";[/.&2AL"WUJ(-G%.O(_&M;(]RWY3_HM*W*#_ROBEONPK"EC)O]:WF<LGC
MS6_X5L"U$L?I6_*S[UM)=I?]J*+^WL^W0A^UY5L9V/^@ZOID!3#WX5Z^E>V#
M;Q6X5D+"MR9GS^4_6YQJR3>5*YTO4`/?U!_A6ZUNC^6;*K2H^W<>5[(HP+>=
M<<U+*^Q;R6+Q#_%-U?I64B65?\/?L,*W;MT-N/9\\QHBL4'YGZGHCX)OQ4:K
M]2UG-+[9^,-]4[6^E0[`R0\[^.;#O1V34FSU33GE:=NW^FC7-Y6]*/<M^@S?
M'@/7W))#?5-ER9GW37F]7^.;*O=-^;XE&U7YYJ9?M&WDFUN&+;X5]#HZW]Q]
M=O+-+_N^OJFRTI4WT@[1\6IR</SAOJG"J\?RS0JBJGW+?J[T+9NK5()+C^GZ
MIIS4\114KF\JU;/2-^4<P*M\T3?E;_`$?5/*QSBM77$T[P@'^E;QF>=;<=S=
M@BILW2G;:O_(=84J?>EML:MO19LJME`YHA5$E?BFRGQ+/XR52;>*MU`)+CE8
MXIM*.S\1U?=-M>1;8<)KW[>JAC[,-^76H8EO^>M*;@F38B9-YJPZW`.[I6I0
M>"\%M_A6EN+'Y9MWG`:^^8V63[Q"*%G?TBE-*95NKF:)5\GQDO]O\\U-'K=Y
M_)15:2V=:A^I;T[S-O!-I9BL#?;Q325O^]F6C0%UA=_F6V'37-/OY-O^VJE]
M??.+Z_3T'KZI:M],1B<YGK5<.B,YOF4G5N6^*=^WQ)[LC]2K%)`M.),#9+Y%
M'W4R.6M\BZUU?$L^^"-\JQH[]_0M&8R\[0J^)=TIY)N?4(_J6V/WDJ/6^::*
M;];ZIHJ^N4E?H=T>OBEW1IJETU1FWA;?TMDJ[UORRO,MVV(/WY+2'XUO;FH5
M?7.&L_1UMI:(1ZJ.6SF5OEWJ6Y;=-;ZE1RGW+;\R*-2DJ6_*_\.ILYO#U6V7
M/U9YP4H_J?9-%7:I]"TK0-*.C7U3Z3M^\ZB9^T'J6\+/5G\EOB5^S-QI+":E
MOB5N%43*^98<HX%ON2-YS9?B*GQSVNI@W_+ZI%'BFW)7"%E:[NE;:ERN)'%K
M[.N;*OCF?KC=M[3D<2F4\SK[,>^;;THGHQ=FC%U\BP]=\"WK@[3=<KZE1<KY
MII*UP2Z^)6(DQTXGLUK?U)Z^.6X5?7-FNCK?,B]]WU1R(*_:WL&2>L>U3XN;
M]6S<.&WYI@IDQP2_K]..*/7-F\@ZR5B1-9;3C<G@HK+#^;YYG1/U2MXW9\QJ
MY)O[NN!;II+OF\J.Z^5ZP;>DT<I]4_GWG))[);3O='RZ>]B]?,OR*?THYUO6
MK*YOZ1^I;RKS3:5'W>:;\E^EQ]S#MY+W<Z\[7O*D'F;5=G+1^63F;)D6<?9(
MOJF8G&9<4KRL!6<M^N8V798LRC]&4ON8GOKF]%]2>.66)FT^+_N2PR0E3WW+
MZJ/2VJ>%<8:%*M]4TBL9,.?CGKXY?>Z6K=XWY1F4M&7F6]+&3G-G?ZELI])T
M39K#\RWG0L$WM[\</6;9C]M\:Q*^;V5O)^VC9OG/DHZ>Y3:?)3V;M/&!OCGI
MV=RWK+!)X>.^=KMGNV_Y)O%\2X^:'6D'WY17RYQOZ;:N;\K=):O2;KZI#)A]
MGN1>E6\J_2R5Q/7-L3+GFT],:Y7ZYJB3^I8UF4J164NG39`U4]8)SK:JWC>G
M4VM]<U+`%<1)B9VB@6]YFYU4.PK?'$>*OJFL.]->]7V+>F7F=TBU;\E!G+>=
M`2CSS=DERRRGU7S?TH9+\R6IF^];<L19=MBDA9S2.:\:^9;VI&M':L[,!:;E
MW<FWM&/2$6>K;VY#U/B6M&BNNZ/8S[=<I__AOCGO.UF;O?MHOB4]7O0M:YLL
M]YP"J;3A<L.AZYN[=9EO:2,4LM__U/$M([I^9*5,?,QR5J5LWS?E']$K@.^;
M6]]$J5+?TK]SOB63F..;7_$JWS(Y/-_2NCCOS[*BNG7S?'/'D`SG^U;6"16^
ME777H;[M$16^E6U3Z5ONW59]R]+3]RW+5]^W-#]RY9]Y+>K5S/>MIG/2MV:%
M0S@;E/OFTKP\S"HP<V:VK&ZEOGD_9DZ4^Z:R%MW5-Z>+LZ;=XELR:^7K.7-Z
MK,8W=P>O>4JJ[C6)V]QQ;/?-:^KR:-<W)_;PK:R8C^5;UE<=SYZ=?"NK6<>O
M7!/?JGLGN>SD-4C1-_>=--M<:0J^Y:J3\TWE=_5\<W0H^*8\W])6+_,M/7:V
M:=XWKV:Y<<6K>KIMJ6]INWD[-_/-%03?=O,MZ^_9+"N&+TC.MY(.*2_G]GI7
MQN/ZIKQW._Z/JI`>,[\)\MLEOJEDK(HKX`P<,^<=Y?CFE<3S+3UP)WD_)WW*
MRK=%H2ZN;ZI3J.<>411D7U(NI'R+H]2WDLU:\BT^1#:^5ONVI5Q;FGL?W^IQ
MQ1RK&)IRM$?P+7J1G6>GOGE_^[XYK5Y62G?BJ?*MK$9E;^;FOT[%9CN%_(3T
M.+B&]1?RK:98C^[;;KA9[N_\)_7%V]\W;X?D\TYNNPK?BIL4?8M*5V\7OCTZ
MKE7?+-#Y4Q5].SB>FF\5^&9;Y4M7NGXK\ZU\GV/L"GQKP[?V"RJ%V^;;CKC]
M8F??&K!*<`<&ONT>K?OV6`65QNVW/I+S;<N;I1\_T:XX)1R^/27<@9?NGE9E
M3Q*';^#`R>'P#1PX.1R^@0,GA\,W<.#D<-M\:_I\G$<O*#AP)X#;XEO=X[OQ
M#1RX':/>MR[S&SAP+>*VS&_X!@Y<B[@]?2L\3_C1"PH.W`G@F-_`@9/#X1LX
M<'(X?`,'3@Y7[UOSYPD_>D'!@3L!W+;YK2[P#1RXW0+?P(&3P^$;.'!R.'P#
M!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#
M!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#
M!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3PVWSC><'@`/7
M'FZ+;[4/.,4W<.!VBWK?NK4S'+Z!`[=;X!LX<'*X/7WC><+@P.T1[<QO=='X
M<F>S``?NI'#X!@Z<'&Z?ZY/-R*T$.'`GA=OG_ELS<BL!#MQ)X?;Y?DF=>4^E
MWG$T&T0:XPZ+@W#%FAQ3Z7;"[=,IQUG9I";X%@>^-0Y\VSWP+1?XUCCP;??`
MMUS@6^/`M]T#WW*!;XT#WW:/@WQK%)UFFS4-<.">,NX`WXK6EL5QCC.5..:W
MQL'\MGO@6R[PK7'@V^Z!;[G`M\:!;[L'ON4"WQH'ONT>^)8+?&L<^+9[M.-;
M78`#!ZX:AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'"[^K;MVM%3J??LT&N3!=SA
ML2\N^]Y0*[B*D,"YWX%J`;=_M(%S*K*W;[6_<<$GMQ*/B-NS8ZMP+<2>N*I?
M.W,<I=L9AV\^HKX]CK#>Y;BM(\=NN#8"WV9[KSJ.K[)=?#O1]>3LA'S;MU..
MKK)=YK?3]>U4SM^J3D7WQ>T=^-8^[G1\*Z_)L91N1]QIG+]U.7_+XT[&MXJ*
M'$GI=L6=B&_>E5:N3\Y.Q[>J>AQ'Z7;";1_/=\+M'T=R??*$[K_M?ZNG%-=&
M[.M;14V.HW2[X4[G_*TEW[8%.'#@JG'X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.
MAV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.
MAV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.
MAV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3PZG.ES]TOGS=&0]5
M,!Z.1\'8O.J95Y]_]]G77WW_Z7<_=1;9Q]]TQN/!>?3ZZ\"^UAN/S>MHO^2E
MNT7TVA[IAXXZ4SJ"+W]X^9^=ES^]6BXV_?MNS[[W^HL?7WWW[8^F/-$A>_US
MI0_YP8\W8?#3B^GO\W6PG`6;&_WW]6IZ?Q.L;Y9OU_J-,)BMPO]^"!>7[X+Y
M(OCU+W]_'DP75_:3_XQVU/]-%_K#J_#WX*)C,6$PO=S,?YMOW@73C?Y9__$L
M&$W4>?!3OJ19D7IJ8(J4'N\L^#%?GIOY]4V&UN4QA[I=OG4*N0JOY\M%\':^
MN0GNP]5\>=&YFE\&Z_OYK^':%GT:K&\U9V-*-![6E4AU)Z9$5_/[Y%A1+=^$
MF[=AN`BZICTLLV]>G04O]7O=X"Z\#M;3N_O;T#3JJUZP7CZL+L/@[70=+)8;
MW4C3^_M5>#F?OKE]9QIFT!_4%*,[Z?>B8LQFX2I<V`9=1)T5'V:V6MX%K[IG
M&M;KC\9UL,'(=OQ?U_/%=?#-].[N8?/G=3";WVYT8^FWIF_FM_/-/(PZ_W:Z
MN@ZCQDN:(/Q]LPKO;+._R)K]HA,W?-S_4:^9&NOZG9_7-7.W-[8=/U\O;Z>;
M\,HVZ"I<OUMHT'K^=_W.?+%9ZGZ[FE_/-]/;8/IP-5\&Z_GU8GI[%OSU7A\V
MVUXGY,8>^*(S6S[85+4Y:%HKJH<MTWB@ZLJD)K;K=3>M38LG/6ZJ-AS:$HZ&
M@>[\U71Q':XC)RYUK[S1J;_9K.9O'DQ-=*F_^.:KJ'M>?A;<ZV1\&ZY,-PW/
M$QG^]*?OI]?ACZOI_#9<:7'-3Z^GOX6F2IOE*NR8U+_7;\9;?A2,@I%^_:EN
M[X7=.-P\W'?69I</G=W#WR]O@JMPUOG\.ZW_7[_7NWRQN,IVV&6X.!^-;!>]
M-.VXNDK2SK3R9OJK;A=;0],XK_I)ME^%ZTO=#J8_WRQ_"\^"X&O3^F:C:'>=
M=3IK;.+:YM.B1-UDQ.S59<SY8&Q[)R[&]':]#&:F_:)QZ?-Y>#/5I=SH!M2=
M'OX6KG32;.9W^I!V7.B>J<`>4M.#^Q>_36\?;!]>=/1[]]/U6H.6"^WFYF85
MAA''I+&:U!6J=VXUC4:>&&I]U^+\0SWO_E,WP4N=P^LH/:PL;S;3^4(?S;9?
M9*/)3]/E)I>T8Q_I7!D.8J7UP>(IY5R-532E#(:C<V=*^5G;=AZ53WE_#88J
M?J7WBEX8B'WU2W"Y7%Q.-QV=0/,[G2)O'F:!&95,6?6@8-)HHL>5P6@2#(*?
MS4O-#5Z8G_6+7X+./RX?5F9LT@-)&#B053B]N@E_CSGWR_M_!O:SIS*-@P-W
M`CC._L"!D\/A&SAP<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.
MG!P.W\"!D\,U]ZV[([F5``?NI'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@
MP,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@
MP,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@
MP,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@
MP,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@
MP,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@
MP,GA$M^ZSI_E@6_@P!V*BWWK6INZ=5+A&SAPA^(BWR+1DO^7![Z!`W<HSEU/
MXALX<(^+:^1;-XOFY%8"'+B3PC&_@0,GA\,W<.#D<-[]`*Y/@@/WJ+CX^F1\
M:L;]-W#@'A/']TO`@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W
M<.#D</@&#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W
M<.#D</@&#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W
M<.#D</@&#IP<#M_`@9/#X1LX<'(XS[?:YTWA&SAPA^)<WW@^#CAPCXO#-W#@
MY'#X!@Z<'"Y__L;SA,&!D[L^R?P&#AR^@0-W"CC.W\"!D\-Q_PT<.#D<WR\!
M!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#
M!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#
M!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#
M!TX.AV_@P,GA^'WFX,#)X7A>!SAP<CA\`P=.#H=OX,#)X1J=O_$\87#@6L$Q
MOX$#)X?#-W#@Y'#X!@Z<'([[;^#`R>'X?@DX<'(X?`,'3@Z';^#`R>'P#1PX
M.1R^@0,GA\,W<.#D</@&#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX
M.1R^@0,GA\,W<.#D</@&#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX
M.1R^@0,GA\,W<.#D</@&#IP<#M_`@9/#X1LX<'(X?`,'3@[G/3^@]H%3^`8.
MW*&X_/R&;^#`B?G&\SK`@<,W<.!.`N?[5N$4SQ,&!ZX57"/?MGY61FXEP($[
M*9S_O,6Z??`-'+A#<?@&#IP<#M_`@9/#\?T2<.#D</@&#IP<#M_`@9/#X1LX
M<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&#IP<#M_`@9/#X1LX
M<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&#IP<#M_`@9/#X1LX
M<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&#IP<SO]]YG7/F\(W
M<.`.Q7G/[Y[Q/&%PX!X3E_>M.O`-'+A#<?@&#IP<SO.MZOR-YPF#`]<*CO,W
M<.#D</@&#IP<#M_`@9/#<?\-'#@Y'-\O`0=.#H=OX,#)X?`-'#@Y'+Z!`R>'
MPS=PX.1P^`8.G!P.W\"!D\/A&SAP<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'
MPS=PX.1P^`8.G!P.W\"!D\/A&SAP<CA\`P=.#H=OX,#)X?`-'#@Y'+Z!`R>'
MPS=PX.1P^`8.G!P.W\"!D\/A&SAP<CA\`P=.#H=OX,#)X?+/H^+Y`>#`"?E6
MNP^^@0-W*`[?P(&3P_F^\7P<<.`>$^>?OU58Q?.$P8%K!9>_/LGU$G#@\`T<
MN%/`\3QA<.#D<#Q/&!PX.1S?+P$'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D
M</@&#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D
M</@&#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D
M</@&#IP<#M_`@9/#X1LX<'(X?`,'3@Z';^#`R>%ROO'[S,&!PS=PX$X"Y_O&
M\SK`@7M,G/]\'.8W<.`>$]?(-YXG#`Y<*[C<\Q:9W\"!D_*M=@+#-W#@#L5Q
M?1(<.#D<OH$#)X?C^R7@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3
MP^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3
MP^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X!@Z<'`[?P(&3
MP^$;.'!R.'P#!TX.AV_@P,GA\`T<.#G</L_K4(W(K00X<">%R\]O^`8.G)AO
MC9[7@6_@P.V'RSV_NV8??`,'[E"<_SSABM.WW/.$\0T<N/UPG+^!`R>'PS=P
MX.1PWOV`&;Z!`_>8N$;G;]&'V3Z-R*T$.'`GA=OG^R7X!@[<?CA\`P=.#H=O
MX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP<CA\`P=.#H=O
MX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP<CA\`P=.#H=O
MX,#)X?`-'#@Y'+Z!`R>'PS=PX.1P^`8.G!P.W\"!D\/A&SAP<CA\`P=.#L?O
M,P<'3@['\SK`@9/#X1LX<'(XGO\&#IP<+N<;SQ,&!T[,MYK+)<QOX,`=C/.O
M3];M@V_@P!V*RU\OJ0Y\`P?N4)SG6[?N!AR^@0-W*([OEX`#)X?#-W#@Y'#X
M!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<OH$#)X?#-W#@Y'#X
M!@Z<'`[?P+6,JTN//7#-XJG@\.U`7+/L:HS;(6J/K/#M*''X=B#N#_:MY/#)
M^_AVA+@3\:VL2"7OX=O^<5R^Y0_2:7[D)H%O]5&6>W6^M=,S^%86[?E60\KW
M]:G[5E6U!KA=6N4]\"T#'(5OE?5Y3WW;G^GL^:B^;2MA2[ZIP@\GX5MS7EN^
MJ9J?G'AJOAW4,<U]J_X<WX[/-W6,OI47`=^:%*3\DQ9\JSA.8]\J^S6/J\>X
M/S3SK2I-]XARWU3N[[K(^=:L49(6K!CWDNYI.AKX!VWJ6W4M6_:M'/?8OJ7-
ML+=OKB%'[UOR457I\GMO\TU%/SF^M6%<IY239F+9(52AW'G?"GO%S5UP(O:M
M4.O4M[Q(Y8*J>M_2`_A=D1:SK/Y-VG9[WBF_5WUL(]^VE*/FXR/TK;P^G=J*
M.@VH:KLE\ZUR>%.%YL_W@9]L<>D<WPY6KM8WI<HZ[)%\4\YGR?:/Y%O2?<K]
ML::*%;$E[U2];_E6*OI6D9_N5O6^N=U7D\^E'RFG@2PN5]`F4>^;,R%E'Y2D
M3O*A\C+(&2R55\$#?7.:=@??*MXOOMW,MUP6E"1%FM$JGR>)(2J?;4H5?<MJ
MEOB6&W*40TSY[@$=D7.[I3F3UFHWWPIO=2K>=TM2Y9MJT;=<]9/2J:2&JK1"
M6>6+23R3\2WJR(Y;@1U\2_:/,BLMZRZ^%?H@.4+69*YO9;ZG.Y8<KZ0VVWUS
MRJD*1ZWRS9F'DGJI?+8U]BV7I$5V$]]4EBAIK6I]*TU0[\U.2BLVG7/8G&\J
M^]#?L9,_0!/?DE1+&G(OWYS]W8_;]"W!%1(Z\BUS)U_*<M]44]^RDP8_<WS?
MG(W<XIG_4D$:^Z:RMU1^4\^WM&+I(:I\2SOHJ'USNJ/&-^44P._.7`OZ#3';
MR3?EE,*IBKN'[YO3:EFABP<I\2W-NYQOA4Q.=_)\2XOW2+XE79[YTM`W5>&;
MRAHA+JB3+U[[J30K,J;7%EE*JK3+.DZ>)&5Q=TWHGD9IJKIU4LKQ+?U4I=D6
M%=!5Q?$M2VAGQ]2WN&8J/4P"R13;T3=G[RP-D[9QAY*\;VZF=YR64$D;9;5U
M]U0YO=(/LV)&)QY>4F8'3ILJ[8TT+[)B>2F6^I8>0:5;9>WL=&F2(%Y#YGU+
MF0U]2YN[J6\-GX_C^)9E4?1&)\NSK#&R';/1T4F[G&]90R7+TUG2HVFRU_J6
M)GPSWY+_S]QB.D=RT\O)-\\W-^M*?',[+OG/]TW-FOH6MY%3.6>[60;6*>@I
MO]4WKT7<-,]\<ZM4XELZ_I:TE=,>*DY!IYUG^:[8[ILG0I5O64JD,F5][66;
MRNHRB\<J-UN=4F8II[Q:I:5J[%O=X[L;^)9E=%I0MR5+?4M:(LT(I=*,,[XE
M=2W4/S6A((W3.07?G/>4WVB9\3.G`+YO;N/&E9VE[V_QS6FI&M_<4KM-7>);
M5B3G@ZRVJM2WI#Z^;^D;M;[E'*KPS>_(BL8S/3MSMD@(3NHD69Y6U?7-Z=(X
MOSHY51/?THQ)?%/9:Q_MC!,5OGFF^KXYH.:^=9O/;RG3R1_?MZQC,Q^46SHW
M&].TS7R+_DP$R?>?XUO9)VG.N;ZIG&])RB2[9;*Z!<GT\!O75C9M\#1=\@.'
M/P@Z&9Q*E;W3<8[I.."FA%N`+`.S(I7ZII17*!_MUC%-F`K?LD[S"C7S2^%U
M9$7CJ32C4V><PF6DF5?&F?-6VL'1'QW_@(YO:8&]5UD)G>[/=L[ADLT\W[*Z
M9<"TC>,_:WW;83WIEM<[8,<I77+(+"N]<,M:\"W>I),_@I=N7NOYQ7(+E_W5
M4?D/<[[E=_";/!\=K]/2K//RS>F43)VL4VI]*Z9$OC2SFK_ROBFWM-M\*Q:U
MS#>_V;S2ED65;WZS.?7V4/F.J?1-967,^U96P$("SIS2^9O-DH3.%2A_@+35
M]O,M_SSAJO!S)GXOU[.%"OBORWU3I4WEM[!/J/7-(?B-5\QDU="WJFT+T[J;
METZ6YWTK*4Q9$E8VK,I\*T.4Y)SWW\Q[7_D97;9KR?%+"U;TK5`XU[<2;)5O
M%5N5O57JFY>,);XE%2CD?W5^I,(=.K]5X4M\RX^DA3W2OTLVFN4%J6]'Y\?R
M(Q9P^>0IBUU\*]T[#RE]4=IVA0T;?>#ZUIQ3TK+>BTY%>^]YE)+2;=V_;+-\
M9:M]JSU`+@$K2N<.1=Z;547\`WRK*\_6J.F5*NJ.OC4J1K5O3:-)(^R`:Q*M
MXF950_YND"P>R[?=&%51XUNS-^./'M>WZH+N&T?B6T7L5MDG[UNK\21]VS7J
M?6O\/.''+R@X<">`VS:_U06^@0.W6^`;.'!R.'P#!TX.AV_@P,GA\`T<.#D<
MOH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<
MOH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!R.'P#!TX.AV_@P,GA\`T<.#D<
MOH$#)X?#-W#@Y'#X!@Z<'`[?P(&3P^$;.'!RN&V^/:WG!X`#=]RX+;[5/N`4
MW\"!VRWJ?>O6SG#X!@[<;H%OX,#)X?;TK>GSA-LK*#AP)X!K9WZKB\:7.YL%
M.'`GA<,W<.#D</M<GVQ&;B7`@3LIW#[WWYJ16PEPX$X*M\_W2^K,>RKUCJ/9
M(-(8=U@<A"O6Y)A*MQ-NGTXYSLHF-<&W./"M<>#;[H%ON<"WQH%ONP>^Y0+?
M&@>^[1[XE@M\:QSXMGL<Y%NCZ#3;K&F``_>4<0?X5K2V+(YSG*G$,;\U#N:W
MW0/?<H%OC0/?=@]\RP6^-0Y\VSWP+1?XUCCP;??`MUS@6^/`M]VC'=_J`APX
M<-4X?`,'3@Z';^#`R>'P#1PX.1R^@0,GA]O5MVW7CIY*O6>'7ILLX`Z/?7'9
M]X9:P56$!,[]#E0+N/VC#9Q3D;U]J_V-"SZYE7A$W)X=6X5K(?;$5?W:F>,H
MW<XX?/,1]>UQA/4NQVT=.7;#M1'X-MM[U7%\E>WBVXFN)V<GY-N^G7)TE>TR
MOYVN;Z=R_E9U*KHO;N_`M_9QI^-;>4V.I70[XD[C_*W+^5L>=S*^553D2$JW
M*^Y$?/.NM')]<G8ZOE75XSA*MQ-N^WB^$V[_.)+KDR=T_VW_6SVEN#9B7]\J
M:G(<I=L-=SKG;RWYMBW`@0-7C<,W<.#D</@&#IP<#M_`@9/#X1LX<'(X?`,'
M3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&#IP<#M_`@9/#X1LX<'(X?`,'
M3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&#IP<#M_`@9/#X1LX<'(X?`,'
M3@Z';^#`R>'P#1PX.1R^@0,GA\,W<.#D</@&#IP<#M_`@9/#J<Z7/W2^?-T9
M#U5PKL8J&)M7@^'H//C\N\^^_NK[3[_[J;/(/OZF,QX/SJ/77P?V]6`8O;;[
MI2_=+:+7]D@_=-29TA%\^</+_^R\_.G5<K'IWW=[]KW77_SXZKMO?S3EB0XY
MZ$_Z^I`??+4)+J>+X$T8K,-P$6QNIAO]QWP=7,W7F]7\S<-FOEP$^N?9[72S
M"5=FBWBSY9O-=+X(KX+9:GD7O.H&RU7PZJ+3>Q[HO?0FX2HT.ZXW\]O;8!JL
M;^?7-YO@63`:3\;!3_D"9R7KGH]-R=[,I[H4#V&P608O/PONEV_#U9G>O3OL
MCVIV[T]Z0[/[CS>Z2M.[^]LP+E\_F$WGM[JXNF3!Y_/P9KK2K\/U9AV\G6]N
M@K?+U3H,[E_\-KU]"->%>EYT<C7MF:H,)[VZLHSZY[8JX>7T0<.7,WOPV?1R
MD[1T&-PNW[Y8KJYTT[Z9Z[+<K\)UN-@$\X7]-%>%J6Y3%5QT[I8K@]M$768W
M?6<^U$6:#&J+-!C:?N\F36L.<JWK%TP7NG[+U9VI<53.L^E#,---9EJ]-SGO
MUV'5I!NGD^[RR]MPNHK*K#FF55?A[?QNOIBNW@6Z?@^WFW74`#HM-M/-_#)8
M+Q]6EZ')Q<5R8])1M]=5,+WHK/4V*UTVS=+M$UR'BW`UW>@.,(DT'-2421?9
M9H+IW:7.R/7R3I=DN=[HXBPOP_5ZOK@.KI:+M!G6\^O%]-;\M`KOEK^%@4U!
MTR[ZK2C_34OK3/#L>&YW7H2_V^2>#.J2NS=6-B/6X:45*^YM;4GXFZ[7;7`7
MZL)>K4T77(7K7\.WII"&?S7=3'/*V3)'S:?;R3;@V;-@..D.HQ+\Z4_?3Z_#
M'U<F[5=Z1#`_O9[J>NF#ZA8,.^N;Y=M[_6:\Y4?!.!CKUY^&U_.%W3C</-QW
MUF:7#YW=P]\O;W3I9IW/O]/CRE^_U[M\L;C*=BB.0[W2<:C7'W:#\\E@8%KD
ML^7B:F[:Q%38M/D/I@_,#Z]U*T05_B'*@T^U)\^"_OA\4FSI;>/>>5>9H?:#
MBP^Z%\^"KV;!#W:,,JD19]E\L0FOPSA]E>GZ;U]TGP=O;7(&E\N[^X=-J'?[
MMZ`;W"VO@F^#3X(?GU]T@K<W<]TN;^UH=[M>FB0V.:K'^^I\F)QW;>VC8W\<
M23%?/P_F,W/$.SV&WFJQK[0*P6*Y>!&7\7*YT!VO1PE=NG"JCQJ_OWBX>V/'
MZ(N.YFA`E##FE2Z*'JWJBC+N34Q1XF.N;^8S/1(\K*+,FZZ6#XLKVPQ7R\`X
M>JG'G>O0)F%\=%>*L^!',XMHTRXZ]^%J\RZ99JS7NMBV:>J&E,E0#V2Z/)$&
M9J0(5_/0FI&-!VL[-G7[PSI0?S@RH,`)K8FJ&SLF73LC>_O\;MRJDWL\B0;!
MK\--<I3!N.0H48X.[KN38HYV>[U!"OK2S';=W9*\VQ\/4T#PJ9TO:PBJA##4
MB3">#&P#+'0_E21P;0F&>@)/2Q#HD4*G2Y0H>N2X?5C/?PM?_/3=#\DT$T^X
M^J=/`SW>ZM7&XE(/P'98S"3\W0QMJE?;_B;!_4Y;?**>!>->W8RHTWZ4]-JG
M9E@IR:7:YNKJ!<>X-QCNVUS=\T%:"+>Q%GI18J:\N)G>O-/O?WIFTEV7NKH^
MH]CC_VT6-='TJ\?J^<(.KGIDL?/9C9F3EY&8MUI;[:0>)NR@J,>>DC7A?*9'
M.#M,ZC;29I:T:%TCC;KCGAZ`)G9EMS"KN#+]ZIIIU!N/TKJ9,3L:!.SD:X'=
M;MVR<!2/)O.9.79=/HP<]<>ZM<L$3#<>9FFNN;V2$M3)/M%5&A[BNO%A>)#K
MNEB:$+N^3[]T>Y-!5H9/@A_B'K'SJIT'W?6;':Y[@QU+:5M:]XL]A%:TSM"R
M>7\RU+M'8X,=$'JC.H&&L8LOC2+7J^F=M<%62BOQ=C6/UX%FAC63O9GVS-_.
MK!28]:;VU@H3+^'?7'3,XG=Z9=8T$ZNSMM&<0XSKIN5AO&")9G*S;]==#]L!
MTBX!##"R^V$=+QJU^I.H/'9-:U<-JX=+L^PVYS-OXWV<A4NT9IF4)7)V@A:O
M6<Q2Z#;<F,5"5"![=M8OF_&R?6,-O[++FQNSFO2J<V].@]**O#4SQF:5GBYY
MFR;[A[-9>'G1V>A919<D[HSX-,\L>GIUZZ]!O#;0[1+JCKY:OEV8MC)-ID\0
M]!0TUVMR_9<>*]_IX=&<D9JQ5./?O`M>WYBSE47P\^N_O!R<_W+QS,SWW:K4
M&@Y&V?'BY5%"GJ]M<>^FO\_O]`%U,YZ?URUI!O$8-5]$9VSF5$+W[L:<..HS
MG/7\C3EG7*ZB4_FH<L_-"&_6<UJ@066C:/)YBK^<KL,(<1=.%\F0N]`M8[OZ
M?%C7M'9];C32$]J-[M;HS,:>V$1]%"5IOEOG-EDWTU^C2?!^JGU[Y\Z#%QTW
MTTV&9]NLHY7E6%7V0G1:WNUE2FD9[-3Z\P^O/CL?_W(6O-3+#GWZJOLZZ6!S
M*+>I=3&6*WN^;5K],ESIA-##WD7'-)79V*QNIG=ZQ6Q/"<]K5RVZ,VQ*)">A
MTSO;YHMKV\:]6A7[:FA5_.[-;_/EP_KV77+B8,VP%PGLY8%2QZ*>G7QD/M35
MTE4QUT(>3#=?=)P%]O]8WBR"WY:+K3+I<=/V^+?APYT^J%ZX7^K3`7,:;PZU
MNG)2(!O-G%'S>52B*`-,UTZC,W5]<AM?+K@Q)V'6;EV8P:1N9N[I4<PVJS[`
MVJY]M%[W]^:0:4^;'![70OI=E:VEBB3=TC93U^%_/X0Z$>PJUIRG+?79_&V\
M45RUMWHF-"/O9GZG:W1FSCUM=4V7)/M'%Q#J<K?7[=D>USOH@4+92U&ZC.94
M[V&CSTSU`91Y;QKH<U9]GG]O+C28D3$^8%;6P"+6@;+;7^BE0'1V-U]?FBMC
M9J[^\<9<4!H-ZH:B[GG?=OKTZC=]0CJ]CJYR%9MJ'G=A?!X=NS?P9DTS8IGK
M(.^TU!>=M^G4>?'!FW!M%J7KT*Q/IQOK>+]NVNR.AU'WV[..^W`177Y;A.%5
M=(%!"WVE)Z^5N2JE78C/G/4FR3"BST',!]/%NZ1I34]=="X^,%<*D]*8)!KI
M$]"ZHO0G-HE>ZOEU<[,*D^N`ZS"]VA.M(](3W6@R,B.E/?76`TJRQM!&+%>V
M79=F0?ZPGNJ1_GG^A%AWV?F^EX`FP>11+@'57)*9#%5V[7!^9VH87]N(SX6B
M*Z6ZO>8+TP]1^^AY[6;Y<'L5Q!<,+Y>K57@[C4]E],K+7*=[.]6)KT?C%W$#
M1N/WUB7.N6Y!NRR(CJ#IIIU-B:[U6>)J;L>P::!'_F@&B89Z_=[=7&^>E,1>
M&[37PA,=]+B:C1VF/TW9XXN-9J(8UA9J,)Y$ZZX4_[$9[J=NU>/KJ'8>TG^N
M'W1VV'G`^GD9FM*Y%]INKW6A]/1YH]O3N4)S%BU,ZY9RYUUEYZU"ZR8+R9(F
M<XIN2A[=(S#3J.[AVW"ZWL275^TDF"GICA'6_-KK1N<]FT[I-#==.P=RFBJ]
M?*27._77H2;)#05_D#-OO#%=EVB<C'')U?A@/;?CE[VT;FJGZVS?,1<W[`T%
MDSQZG7FGF\I>T1Z<UYV:3OJC7G3Q\FZZ_M7TWS(:EM8&]%G2@>::=K0^^BS)
MAV@M6%+>:STYZ'.!Y':#SLU0I\?O4=[.H^6+JILB)]VQ30.SSKPU]VBB%8=;
M,3-*OGI8F4YXGAOX3"/I?I_KE7LTWMHF,;=F]/AO/DPNWIN!V];"C&Z3NKP<
MGY_;_C=3GUZ]S_^N=_SJLS^O[706K<QTTMN43QHL[1.]J3Z=F%_.]6M=I+@H
MMB`/>A5B6MP`KJ?)N=OHO&Y!-)XH.XSH)<LRO9"OJQM7-AK&,R%UVP5OEOJ`
M<1K-S%SQ<!]\]OU?[:K!UE_WT.U%9WYI=X\W7.FI?&X2W(YLJF[],!YU;3;?
M3E?7%8I%ZZ*R&UMU%_/U'@-]\&@%^$-ZHI`DUJOII97FLVP$^,A^<+EZ=[\Q
MI]GW^BQ4-_?Z1I]%#?MUUY<JYI%1O%C[;I'J:9<->@Z()O2DG;TI-K+'67(6
M"J27]6?!9X5B;K\!-8K7:K.'Q6746W9,6+Z(U["ZQU_HP@7IYR9%X^O_=@BQ
M\X8Y[8@N)$Q7NK"KZ<I<2,AZ+IH3X[%Q-*F].3J,%VOSQ<9<EYG-?P^O7JRU
M(L&?K^;7NK'^;!?GZ7)G'9^G1A^::J<WJLQM$K.(,&E]KZ<0>S%Q'L::S>9F
MB92,A]%IG1FY:\\?AO&:+;K'8G-$-Y31<&;&B'@ZF2]T`:);ITG#V579C5W4
MV@NG>O9X'OPY;MX_F^''E,EV6KJ+O31E=:F]^C(<V='MW3R\O7)N17IWQ^,L
M>A[ENJZIZ=1XG6O.Y'Z-5@ON\<U"8)J[M:D+TY_4%B9>2*;W0--1.KG4=O>@
MEV79:9]I?&-S7]5>`1\J%9VIYYI(4\WZY&YZK8>;V^>!7BJ:SH^FEN@\\]?%
M\JUM\RP+X^M_;\V9>K32C\]-TWMG=J53>Y5HTDL7[TXRFO,`,Q4LH]Z/+BN8
MMDYN3MGEXHTM470>>36?S726+N+K9!<=K4\T!N@,OE^'#U?+Y)::/4^O:_W!
MJ#^*OI?@W(76M<U.<^.A;FXNZEP]V#8TN?=RX<EBS^UU2YN95J>*6>\L=,G-
M:&";<^VTIRE4V5W.K%"#:.T<N?J9'D/FYIL$T^#-[?3R5SV;_)[,$-.KY/I-
MW(SF9".\NG@6=]KM_-<PNZUL[R<OKNR9H.EMDQCV2Q'AG2G3N&X!-NA%BV?K
M3#+K1=UX%GSK5O1M\AV(J"Q1)^LE1!B/?^9EM(9ZITN@RW037B6G0Z9HX=5S
M.^35MI"*5LW);8_EXO9=<B![LFEN<MB!V=YECP:ZZ'-[6=1\DES>U#TYW6QT
MPX;FA/G2GAO<V?-_,UKI[KVT%^^VW-CLZQ6JU?C!7&)<![8-EFNO%2*SM=&W
M2[-*3U:PQO-@_9`L4?SY^Z*3+I*SRZC6A-5\_6MT6:SVJR%CE:SD%N'U[?S:
MC+AGP5_<,2&:PNPI^CJ\?%CIS[_0"\CH-"2;5/\>KI96P)FNCUZM+.*+6][X
M\ES7Y/(F6M#7K3#[PVA!;Q/Y6\N.:FF*8A/S*KNK%7?@?!UGW'.]:#*KK^B*
M[32^%FDI%YWE.OX.15+N>+#9NHKJ]_N#1+OH?"<Z/7]CKUF%JUEXN2F_*_Y5
M?-/@7J^.TV\AV>\?S6[?S?6T<*V'R5L[L)@JV>LW9KJ-OJAD"E9[AM#O1B<K
MZYMX7(ZN()AEF#U'6UP_S-<W]LS,NG[_L$J^0V(GBL&P[EI/;QRM]6O/U..)
M+OXFC[V7&UU&#J.C95?3TTNJNB?2Z]=Z0$J^^A1?MC:5'M5>I1M&*_YX,K3M
M:P>?\OG:W$(=]FN_I=/KQA/B[,%<M#&+=7-Z8%?KQ85@)H>YG!>^6\:YN+[4
MBZ)H*6HD#/4R23=8.H\Z9Z5FS*CMUY[J]Z+O#46KK^OE\BHKUSI9[ZX?WOS-
MI)X]JTO:\8WV>!Z5^)WIY$&_5WNY:C3*KGF6+(?=!8+-@_2&@Y$\7;$ZPWHT
MEUUTLB\MI7.+'1G,C%+[I;6N^1J%^2:7S2\]<4Y7=L'^)DXI/5*;2WC+^3J,
M)S=KE/G*F3FE<],N6@P^K)]'"Q1[G=PNKK^-;]S-DB'$C$N#NK3K]B8V2^)!
MPQ[R&WW\?P^^C6=50XN/>Q;\-;DK9T\AO2LFR77Q:/FHS\;C(J3D6SNM#.O[
MS=S6MJOGQ96]W.D,;;JM7GE746QA7^4+^;&]110MJY;1::AII'C'F&57\J.A
MZN][A?$\./^#KC#&(W-ZPS)JAH6Y-WJE,W)JOW:9W>8QGWICD>Y<LUB(;PO]
MV?34,WV*T*TZJ1GU1N?IP5\&WTS-^FF:+!.ZW61'O;'M/[USWU0A>-&S/[C?
M$XY9/?/UP;$>IZ/77P>=B9Z)-[?S1?AV?K6YT:#XQ\NIWTBOMU[M_#&ZK67/
MTN_N'A;Q109=4C/N-RYIA!R8KYGVAKUA]/K@@FK4*"UI="5D8:[LWTX7Z944
M,^DETXM.X%_7T?7Y7ND5K"W?3)P$Y_'W`+ZXNY^O;)]]\9M>79NSS-<WT?6<
MS\-XB,M],W%2]P6'BB1-O@KX;?@VON\1K87M':9%^M5CLRIXU=>9^*JGSWWT
ME'.]T):9:]3>=XRS%9P=3J+3('-A>.'96_M-0'.^-M5KQZ6])_ZJ&Y](KT._
M?/;;!\Y5X'B-GMT#>F$N>>M%FBY)>DXP,W>BL^56_6VXY*N`[JVR=5*6J_!%
MMG!V[L39LNGDN'UGK@!:T^/U5K2TFJUTT]B-WWG+@W5T*EC;0/%=_'SW?#/5
MVIB3G'P7FJN73A^EL^0T.<^>ZH7^>FTN[,3?3;9E-,N"VEM+R=<4S2W>KIY&
MKI,[9G8-;X]IOOGQL/"^]/[&?I/?BFZ7E6>!G>OMF5&$R2X(+U<ZB\S9<OSM
M2[,8VW+Y=6+3V'S[)6J"Y]G)BUD1AHOEP_5-M#`U5Z&B'K*K3_/-_]TN.O;L
M)<WHO.6U/=PS\_V=YH-51!A.S+?W]#`WCE[O.EHU.M)8GXC&1^KU!N>/=Z2>
M4Z?>>-\C%4?@L=/8>L*W,Z5>)249VJAHXZQH_<&H]WB-H.G]]$CM-4+?;83H
M.Z;W+_1"?Q7:[\C\J_G*QF38O$'Z3H/H47GP>`VBZ</T2'OG7_%K3:Z"YDOI
M5V:(N0I_F]O!S31(^FW11L5TDG>DA[_#BUG_[47[#>#X6Z5Z>FT4>O$7VJ^=
M5YU$#CSL66\\ZNOSKLHOJ`[&[N9IG/4'YWV[YHQ.^LR_7]*G,FOS1;/N^:CJ
MC"FJDXJFS*9UTO.WJ5'EM#?PH&?#[KB[O4;)YEF->H.^TC722VZO,J/*&]^V
M,J-)_`W^5UU3R*K+?79P2;8M?@7%J#FL:K2!=YRSX6`R=IOGK&^^P'SQ@?D6
MCUOR7J]?M?B/2IXL6'5CU?;7*+ZY;]9VS9.P_).SP6#4-1=SQE7Y.70/>=8W
M%[XKTFRXI=B]\SC-^MM[)MDVS;B*FIV-QN=]>P^RZF+4T#VVUJ0[WK?\\9<8
M&I4_WK;DRTU)P<>J?U[KYM`]Z%E_?'Z^>\&C6V71!<A_#5X$W\V"J;FB&$U#
MYKJU7H_>)\LMO8[[AWK>_:>NWKA7=4VS%]U>BKY=\&H5EBR+[2F77E2^-2-*
MM++[R/RSP.1?Q&C.EZ_CVU3Z3$W/N.>Z$CK#LL']Y]%X,(D.K;R_]/P\CE[I
M_:,7!F)?_6*_8CG==#Y\^=/\3I_^OWF8!8-^WYR2VW_`%\XZD]'0_`/98!#\
M;%YJ;O#"_*Q?_!)T_G'YL#+W@,P_90P<B+DG<A/^'G/NE_?_#.QG>_R+8-7H
M7P2W$N#`G1!NG]]*@6W@P.V#PS9PX*1PV`8.G!0.V\"!D\)A&SAP4CAL`P=.
M"H=MX,!)X;`-'#@I7'/;NNDK;`,';A\<MH$#)X7#-G#@I'#8!@Z<%`[;P(&3
MPF$;.'!2.&P#!TX*AVW@P$GAL`T<."D<MH$#)X7#-G#@I'#8!@Z<%`[;P(&3
MPF$;.'!2.&P#!TX*AVW@P$GAL`T<."D<MH$#)X7#-G#@I'#8!@Z<%`[;P(&3
MPF$;.'!2.&P#!TX*AVW@P$GAL`T<."D<MH$#)X7#-G#@I'#8!@Z<%`[;P(&3
MPF$;.'!2.&P#!TX*AVW@P$GAL`T<."D<MH$#)X7#-G#@I'#8!@Z<%`[;P(&3
MPF$;.'!2.&P#!TX*AVW@P$GAL`T<."D<MH$#)X7#-G#@I'#8!@Z<%`[;P(&3
MPF$;.'!2N,2VKO-G>6`;.'"'X6+;NM:E;IUNV`8.W&&XR+9(L^3_Y8%MX,`=
MAG-7DM@&#MQCXAK9ULW"[M.`VU*``W="..8V<."D<-@&#IP4SKL#P#5)<.`>
M$1=?DXQ/R;C?!@[<X^'X+@DX<%(X;`,'3@J';>#`2>&P#1PX*1RV@0,GA<,V
M<."D<-@&#IP4#MO`@9/"81LX<%(X;`,'3@J';>#`2>&P#1PX*1RV@0,GA<,V
M<."D<-@&#IP4#MO`@9/"81LX<%(X;`,'3@J';>#`2>&P#1PX*1RV@0,GA<,V
M<."D<-@&#IP4#MO`@9/"81LX<%(X;`,'3@KGV18_,:H\L`T<N,-PKFT\XP8<
MN,?$81LX<%(X;`,'3@J7/V_C2<#@P$E=DV1N`P<.V\"!>^HXSMO`@9/"<;\-
M'#@I'-\E`0=."H=MX,!)X;`-'#@I'+:!`R>%PS9PX*1PV`8.G!0.V\"!D\)A
M&SAP4CAL`P=."H=MX,!)X;`-'#@I'+:!`R>%PS9PX*1PV`8.G!0.V\"!D\)A
M&SAP4CAL`P=."H=MX,!)X;`-'#@I'+:!`R>%PS9PX*1PV`8.G!0.V\"!D\)A
M&SAP4CAL`P=."H=MX,!)X?C-Y.#`2>%XZ@8X<%(X;`,'3@J';>#`2>$:G;?Q
M)&!PX%K`,;>!`R>%PS9PX*1PV`8.G!2.^VW@P$GA^"X).'!2.&P#!TX*AVW@
MP$GAL`T<."D<MH$#)X7#-G#@I'#8!@Z<%`[;P(&3PF$;.'!2.&P#!TX*AVW@
MP$GAL`T<."D<MH$#)X7#-G#@I'#8!@Z<%`[;P(&3PF$;.'!2.&P#!TX*AVW@
MP$GAL`T<."D<MH$#)X7#-G#@I'#8!@Z<%`[;P(&3PF$;.'!2.&P#!TX*YST'
MH%OWJ\FQ#1RXPW#YN0W;P($3LHVG;H`#AVW@P#UYG&];A6P\"1@<N!9PC6S+
M?89MX,#M@_.?EEBW![:!`W<8#MO`@9/"81LX<%(XODL"#IP4#MO`@9/"81LX
M<%(X;`,'3@J';>#`2>&P#1PX*1RV@0,GA<,V<."D<-@&#IP4#MO`@9/"81LX
M<%(X;`,'3@J';>#`2>&P#1PX*1RV@0,GA<,V<."D<-@&#IP4#MO`@9/"81LX
M<%(X;`,'3@J';>#`2>&P#1PX*1RV@0,GA<,V<."D<-@&#IP4#MO`@9/"^;^9
MO.9!P-@&#MR!..^YVS.>!`P.W./A\K95![:!`W<8#MO`@9/">;95G;?Q)&!P
MX%K`<=X&#IP4#MO`@9/"81LX<%(X[K>!`R>%X[LDX,!)X;`-'#@I'+:!`R>%
MPS9PX*1PV`8.G!0.V\"!D\)A&SAP4CAL`P=."H=MX,!)X;`-'#@I'+:!`R>%
MPS9PX*1PV`8.G!0.V\"!D\)A&SAP4CAL`P=."H=MX,!)X;`-'#@I'+:!`R>%
MPS9PX*1PV`8.G!0.V\"!D\)A&SAP4CAL`P=."H=MX,!)X;`-'#@I7/Z)4CP'
M`!PX$=MJ]\`V<.`.PV$;.'!2.-\VGG$##MSCX?SSMHKYC2<!@P/7`BY_39*K
M).#`81LX<$\=QY.`P8&3PO$D8'#@I'!\EP0<."D<MH$#)X7#-G#@I'#8!@Z<
M%`[;P(&3PF$;.'!2.&P#!TX*AVW@P$GAL`W<'XRK2Z<]<*T$MNT?:8&/LG3O
M.P[;2@+;"@&N#1RVE02V%0)<&SAL*PEL*P2X-G#85A+85@AP;>"PK22PK1#@
MVL!A6TE@6R'`M8'#MI+`MD*`:P.';26!;84`UP8.VTH"VPH!K@T<MI4$MA4"
M7!LX;"L);"L$N#9PV%82V%8(<&W@=K"M>M.G45EL.R#`M8'#MI+`MD*`:P.'
M;26!;84`UP8.VTH"VPH!K@W<^VO;:?YF<FP[9ARVE02V%0)<&[CWUK83?>H&
MMATS[GVUK<O<ME.`:P.';7X\]2<!8]LQX]Y3VZH>NYU^FNS3@-M28-OIX]Y7
MV[IUCTO$MD*`:P/WGMHV8V[;+<"U@<.VDL"V0H!K`_?^VE83V%8(<&W@L*TD
ML*T0X-K`85M)8%LAP+6!P[:2P+9"@&L#AVTE@6V%`-<&#MM*`ML*`:X-'+:5
M!+85`EP;.&PK"6PK!+@V<-A6$MA6"'!MX+"M)+"M$.#:P&%;26!;(<"U@<.V
MDL"V0H!K`X=M)8%MA0#7!@[;2@+;"@&N#1RVE<1[8MLNSX`XRLH^.1RVE02V
M%>(H*_OD<-A6$MA6B*.L[)/#85M)8%LACK*R3PZ';26!;84XRLH^.1RVE02V
M%>(H*_OD<-A6$MA6B*.L[)/#85M)8%LACK*R3PZ';26!;84XRLH^.1RVE02V
M%>(H*_OD<-A6$MA6B*.L[)/#85M)8%LACK*R3P[WGMK&4S=FV":/>T]M,X%M
M.W"/LK)/#O?^VL93-[!-&O?>VE8C&[85XR@K^^1P[ZMM5:=M[].3@+%-&O>^
MVC9[0N=MNUB!;<>,P[:2P+9"/(TN/G;<8]FV2T\VP!T2I7<`9MB&;>*X]]2V
MRO.VZ,/T%;8UQ^T2[RGN?;6M-K"M$$\EGX\;AVTE@6V%>"KY?-PX;"L);"O$
M4\GGX\9A6TDXMM74`]OVC_<4AVTE@6V%>"KY?-PX;"L);"O$4\GGX\9A6TE@
M6R&>2CX?-P[;2@+;"O%4\OFX<=A6$MA6B*>2S\>-P[:2P+9"/)5\/FX<MI4$
MMA7BJ>3S<>.PK22PK1!/)9^/&X=M)8%MA7@J^7S<.&PK"6PKQ%/)Y^/&85M)
M8%LAGDH^'S<.VTH"VPKQ5/+YN''85A+85HBGDL_'C<.VDL"V0CR5?#YNW%'9
MIBIQAP2VM<!]*OE\W+BG9EMS;B'OL.T`[E/)Y^/&"=BVLR#8Y@>VG0H.VTH"
MVPKQ5/+YN''85A+85HBGDL_'C<.VDL"V0CR5?&X<=97'MGUAV%:Y%;:UAZL+
M;*L-;"M\V*G]=.?`MFVQCVUJIT,(VM;T-Y-C6RD.VW:(]]ZVQD_=P+92'+;M
M$,*V-3T(MCFAW%>-JXUM#4/$-I7#G9YM*O=WY7D;MC4"E>*P;8>#8%N5;/DG
M`3>T[=#LFV&;,`[;)&UK^)1[>=L*Y=]N6]D%8&RKCQ.QS>O)Q+9FAQ&TK4ZV
M/\XV]Z)2I6W%8S6Q315_*'FK\N?V;3L0X>W^>+8=5DILLU$KVPG8IK!ME_US
M46I;]0[5[7B4MN423,*V;MT--SG;G/UVLLT_WB/;IF;85I?"V+9M)5D;CV!;
MQ9F2HU1#VY2[D=?*_CO8ML/^N7@DV[RNJRF9*BU?(9^S;;?9YG?WZ=NF2O+;
M>T/)V:;RS5]:-*?+RVS+3[8[1B=?X)VC@6VU:#G;5-ZV,I([N&VW3?G;%FWS
MNP?;<ONEMBFE<A\5;5,S?QNG$UW;*K)`RC95\],6VVH^2[O7_;"9;67U+3U\
M(]M4R:O2'PZWS7\C9ULVU*I*VSS`+K95I&VQW$=L6Z&CU`&VJ<>RS=NNDW/G
M"=JFRNK;V+9")B1MHRK;,>D2QS:5M\W/5I65LY%M2BGEVZ9RMJE'MRVW20NV
M;>N3DK[+BJ$*'-\V5;!-%3;R![.T/0NV9:HVL\VWV-_>V^XQ;"MD57[CEFQ+
M:%X5']NV9.!4CFVJ/=L2OS+;5)0Z678D>V6V^<GLVE9HALS?LD_=[41MJ]"H
MTC;7B6K;E'+Z5ZF9][K6-A6_TRD?R[,=<NEWG+:IPA:'V.;N4R?T0;9EX%9L
M<[V)H@W;G,1Y:K:E:5EO6_;?0;:IO6U3&<Y_X98WVUC4MM*-DZ57&6=7VU2]
M;5Y3>+:E>9W;]7%L4_F-RFV+-E+)UBI.$B\[*FQS]$QL\Y1Q/%/'9YN3ECO8
MIK)T+K%-E=D6MY5G6^9ZSC:UU3;EV>95XP#;BOE<^E.);244M]YYCG=Z>X!M
M)<?/$B5S22GE%,O]\U%M\UL@ZK:MMOGC<9)/<4*YDV%L6SJ:IW^HF;?MD[(M
MLR5ME;15D]UCV[(/9\IIPPK;LIDL]XYR;,O&*L<VY=JFLFH44B7YJ:/\VE7:
MIDK?%K.M,I,]V[+%0KEMSG9.L_M-66N;JK6MI"'K;$M5B'JHDTE6;UN<$.[F
M22,X2N5L4\Y'?YAM^5Y4R66ZG&U.5J0FN+:EIOFV17H<9%O&.]0V!Y<07-N2
M/"HV4O8Z]S(M1O*BUK9L/BG8EFW6T+;D_V6V*1?C?M9Q3:JQ+6EZ]]`J>[/6
M-L=VY>SLV)9U4F:;<FS+TL@=P1-A$ZWVL4UE.^>ZIA!_G&W>..?9IA*KLMH[
M;55J6SIJ>;8E>ZBL4?*VJ8)M:2.F=?)L2P]4L"TCJ$Z6J[F\K;+--](1-^Z3
MS+:D2YU\3T>`@VQ3,Q>0MTVY95=.:R5#2V);EL$N-F];3"BWS5/6M\VI9*5M
M*FFH.MM4_OVD'\MLRPJ2VN8DBF-;.N0X+>N]?!3;G,XMLRTMG*O>'K9Y[94U
M?S*>.I^G/\RR9G7PF6U>V68"MGG9Y_=04]N2E&ABF]K!-J<*];9ETNQB6WK`
MS)*<;4G'NHV?E3'K]S+;5(5M^1_<U'(.F6Z7=E.%;4X9E=L(3B.G?2)J6Y*R
MY;9YPTZU;=&['4<@KX52K/_YS`-4V):,L''9LOY+&G^6VN8FD6>;<FU+*Y&T
MCW(:*>W&]".WAV;)[C/'MF3[1K9Y&R7YF0U\7J\[HTACVY+*=9RN*]CF-529
M;4[S13]WDD')3_VTG=,VS'W\6+8YI9RYMBGE;)-4P+7-&9"2SA2W+==83B=X
MK9#_.1^=8M-Y0N5M<S<OT;CC[#-+F[+>-K6/;6G;9,?)DCW9WS'2LRTIDINU
MM;:E"E?:IM*M7=NR1$O[,V];UD.);;EN\^7(QK+D:)EM:3>EMF4CI]-O,V]3
MI[MG*GO?V;K:MJK(V^:\3@SJJ'1DV<DVE=J6MGC<L]%6+=B69)QY)V>;TQ5)
M7K1FF_)H14B9;6FY_(Y,L\YO>:=U<[:I)K:EB:MRMF5MD]FFXL55-H:KM->V
MVY8=.4OQQ+9TS\SDG&U.?Z:V)8WAV):ULM>TC@6N;6J6%<7OGR.R+?_V/K:I
MM(.<YFW5-K^;TGFLVK:TY?:UK;+A&C6PBRNS+??":6`O]U62ZQXNJZB7007;
MLN$S:QO/-J?+W$)5VZ:VV:;</9U".JRLJ#.G=O6VY?HP_3OM8I45115L4UML
M<[9J8EO6%8?9EKTQVY)WN99Q.D@E>:\>P[8D<^+&+=KFE*^\)>K;IX%MNT0%
MKKS1RVUSM^^4;IUME22Z\O/0;QC7MC3+BYMDML4?9\-<]%8J4;R7;YN3\N6V
M.<F3'C3YJ-ZV0LOE;2ML'.%*;2N@BFJ4B+X]4:H/4?KV3K:Y0YD_QK1O6]IJ
MLZC661&V5ZOVDPA7'X]D6^ZSO&TYW!;;TA_*C^C;YA\Q^3EOFW*;M\8VIQ#.
M'_EDR6U58IM3V6(%2M\O'9W<GSME'U3BMH:H;?G=G4$MUP*MV.8=L(EM^\8?
M;UO=9MMM*_]A#]O2WG-V\PLW\WM[EJUS<[:53!*Y%;];@`-LJ]VXF6V-8S_;
M*F(_VPIOMF^;RFRS47)9XY!HM1$?"]>DIC6VI8-5QW^S9//9K/A>_@#%KIB5
M;.Z_56I;[J/=;-L:)VN;^^$CV9;^\#[:UBRVYV>G[$U_VSK;\B^VZM'0ME)<
M53SRTN^X<*7+9F\#,=M:B1/"[61;U;;5R7R0;<6WL6V'$+9MWV)N#7`[1W,]
MZLPH?G:4E3T>G)1M!Q:S-L`](@[;'AN';>":!+:U$=@&#IP4KMZVIL^X>?1B
M@@-W`KA:V^H>NXUMX,#M&'6V=9G;P(%K$5<[MV$;.'`MXO:RK?`DX$<O)CAP
M)X!C;@,'3@J';>#`2>&P#1PX*5R=;<V?!/SHQ00'[@1P]7-;76`;.'"[!;:!
M`R>%PS9PX*1PV`8.G!0.V\"!D\)A&SAP4CAL`P=."H=MX,!)X;`-'#@I'+:!
M`R>%PS9PX*1PV`8.G!0.V\"!D\)A&SAP4CAL`P=."H=MX,!)X;`-'#@I'+:!
M`R>%PS9PX*1PV`8.G!0.V\"!D\)A&SAP4CAL`P=."H=MX,!)X;`-'#@I'+:!
M`R>%J[>-YP"``]<>KM:VVH>38ALX<+M%G6W=VMD-V\"!VRVP#1PX*=Q>MO$D
M8'#@]H@VYK:Z:'R)LUF``W=".&P#!TX*M\\UR2;<E@(<N!/"[7._K0FWI0`'
M[H1P^WR7I,Z[IU'K-)H-(8UQA\5!N&)-CJET.^'VZ93CK&Q2$VRS@6V-`]MV
M#VSS`ML:![;M'MCF!;8U#FS;/;#-"VQK'-BV>QQ@6Z/H--NL:8`#]Y1Q>]M6
M-+8LCG.,J<0QMS4.YK;=`]N\P+;&@6V[![9Y@6V-`]MV#VSS`ML:![;M'MCF
M!;8U#FS;/=JPK2[`@0-7A<,V<."D<-@&#IP4#MO`@9/"81LX<%*X76W;=KWH
M:=3:QF'7(PNXPV-?7/8-H59P%2&!<[_MU`)N_V@#YU1D3]MJ?Y>"RVTI'A&W
M9[=6X5J(/7%5OT[F.$JW,P[;7$!]:QQAK<MQ6\>-W7!M!+;-]EYQ'%]EN]CF
M_G`JMIDX&=OV[92CJVR7N>U4;3N5\[:J4]!]<7L'MK6-.QW;RFMR+*7;$7<:
MYVU=SMM.U+:*BAQ)Z7;%G8AMWM55KDF>C&U5]3B.TNV$VSZ:[X3;/X[BFN0)
MW6_;_]9.*:Z-V->VBIH<1^EVPYW.>5LKMFT+<.#`5>&P#1PX*1RV@0,GA<,V
M<."D<-@&#IP4#MO`@9/"81LX<%(X;`,'3@J';>#`2>&P#1PX*1RV@0,GA<,V
M<."D<-@&#IP4#MO`@9/"81LX<%(X;`,'3@J';>#`2>&P#1PX*9SJ?/E#Y\O7
MG?%0!<-^;Q2,!^?G07<XG@2??_?9UU]]_^EW/W46V<??=/0&D^CUUX%]K3<^
M-Z_U)LY+=XOHM3W2#YT__>G[Z77XXVHZOPU7G9<_F9]>3W\+@U6XWBQ786=]
MLWQ[K]^,M_PHZ&JPTC]]&E[/%W;S</-PWUF;G3YT`.'OES?!53CK?/[=ZR]^
M_.OW>I<O%E?9#NI,Z0B^_.'E?^KCOEHN-OW[;L^^I[=_]=VW/YJ66'1Z/5W^
M\XG^XYO.!Z]6X7\_A(O+=\'5?+U9S=\\;.;+1;"<!8OP;?"J'ZRG=_>WX4?/
M@MYX<A[\%+=GW*3GH][$-(=IC_'8:=*?1[IEHO(H[Z^!/GCT:IR\,!#[ZI?@
M<KFXG&XZNM;S.UVO-P^S8-#O!J9@BVM;]\FH&PR&_6`0_&Q>:F[PPORL7_P2
M=/YQ^;!:A8O-3#=^X$!6X?3J)OP]YMPO[_\9V,^>1A*#`_?$<:QZP(&3P&$:
M.'`2.$P#!TX"AVG@P$G@,`T<.`D<IH$#)X'#-'#@)'"8!@Z<!`[3P(&3P#4W
MK=E#,(Z_QN#`_1$X3`,'3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$
M#M/`@9/`81HX<!(X3`,'3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$
M#M/`@9/`81HX<!(X3`,'3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$
M#M/`@9/`81HX<!(X3`,'3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$
M#M/`@9/`81HX<!(X3`,'3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$
M#M/`@9/`81HX<!(X3`,'3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<(EI7>?/
M\L`T<.#VQ\6F=:U'W3J=,`T<N/UQD6F18LG_RP/3P(';'^>N'C$-'+C'PC4R
MK9M%$V:+`0[<B>"8T\"!D\!A&CAP$CCO*C_7'L&!>R1<?.TQ/@7C?AHX<(^#
MXSLBX,!)X#`-'#@)'*:!`R>!PS1PX"1PF`8.G`0.T\"!D\!A&CAP$CA,`P=.
M`H=IX,!)X#`-'#@)'*:!`R>!PS1PX"1PF`8.G`0.T\"!D\!A&CAP$CA,`P=.
M`H=IX,!)X#`-'#@)'*:!`R>!PS1PX"1PF`8.G`0.T\"!D\!A&CAP$CA,`P=.
M`H=IX,!)X#`-'#@)G&=:[5.;,`T<N/UQKFD\:P8<N,?"81HX<!(X3`,'3@*7
M/T_CZ;O@P$E<>V1.`P<.T\"!>ZHXSM/`@9/`<3\-'#@)'-\1`0=.`H=IX,!)
MX#`-'#@)'*:!`R>!PS1PX"1PF`8.G`0.T\"!D\!A&CAP$CA,`P=.`H=IX,!)
MX#`-'#@)'*:!`R>!PS1PX"1PF`8.G`0.T\"!D\!A&CAP$CA,`P=.`H=IX,!)
MX#`-'#@)'*:!`R>!PS1PX"1PF`8.G`0.T\"!D\!A&CAP$CA,`P=.`H=IX,!)
MX/AMX>#`2>!X`@8X<!(X3`,'3@*':>#`2>`:G:?Q]%UPX`[$,:>!`R>!PS1P
MX"1PF`8.G`2.^VG@P$G@^(X(.'`2.$P#!TX"AVG@P$G@,`T<.`D<IH$#)X'#
M-'#@)'"8!@Z<!`[3P(&3P&$:.'`2.$P#!TX"AVG@P$G@,`T<.`D<IH$#)X'#
M-'#@)'"8!@Z<!`[3P(&3P&$:.'`2.$P#!TX"AVG@P$G@,`T<.`D<IH$#)X'#
M-'#@)'"8!@Z<!`[3P(&3P&$:.'`2.$P#!TX"Y_U>_MK'-F$:.'#[X_)S&J:!
M`R=@&D_```<.T\"!>[(XW[0*FWCZ+CAP!^(:F;;U,Y_98H`#=R(X_TF%=5MC
M&CAP^^,P#1PX"1RF@0,G@>,[(N#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$
M#M/`@9/`81HX<!(X3`,'3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$
M#M/`@9/`81HX<!(X3`,'3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$
M#M/`@9/`81HX<!(X3`,'3@*':>#`2>`P#1PX"9S_V\+KGMJ$:>#`[8_SGG,]
MX^F[X,`]#BYO6G5@&CAP^^,P#1PX"9QG6M5Y&D_?!0?N0!SG:>#`2>`P#1PX
M"1RF@0,G@>-^&CAP$CB^(P(.G`0.T\"!D\!A&CAP$CA,`P=.`H=IX,!)X#`-
M'#@)'*:!`R>!PS1PX"1PF`8.G`0.T\"!D\!A&CAP$CA,`P=.`H=IX,!)X#`-
M'#@)'*:!`R>!PS1PX"1PF`8.G`0.T\"!D\!A&CAP$CA,`P=.`H=IX,!)X#`-
M'#@)'*:!`R>!PS1PX"1PF`8.G`0.T\"!D\#EG^K$[^4'!^[13:O=&M/`@=L?
MAVG@P$G@?--XU@PX<(^#\\_3*GSBZ;O@P!V(RU][Y(H(.'"8!@[<4\7Q]%UP
MX"1P/'T7'#@)'-\1`0=.`H=IX,!)X#`-'#@)'*:!`R>!PS1PX"1PF`8.G`0.
MT\"!D\!A&CAP$CA,`P=.`H=IX,!)X#`-'#@)'*:!`R>!PS1PX"1PF`8.G`0.
MT\"!D\!A&CAP$CA,`P=.`H=IX,!)X#`-'#@)'*:!`R>!PS1PX"1PF`8.G`0.
MT\"!D\!A&CAP$CA,`P=.`H=IX,!)X'*F\=O"P8'#-'#@GBS.-XTG8(`#]S@X
M_UDSS>8TM8798H`#=R*X1J;EGKZ+:>#`[8K+/:F0.0T<N,<WK?:1\9@&#MS^
MN'VN/6(:.'"[XC`-'#@)W#[?$<$T<.!VQ6$:.'`2.$P#!TX"AVG@P$G@,`T<
M.`D<IH$#)X'#-'#@)'"8!@Z<!`[3P(&3P&$:.'`2.$P#!TX"AVG@P$G@,`T<
M.`D<IH$#)X'#-'#@)'"8!@Z<!`[3P(&3P&$:.'`2.$P#!TX"AVG@P$G@,`T<
M.`D<IH$#)X'#-'#@)'"8!@Z<!`[3P(&3P&$:.'`2.)Z``0Z<!"X_IV$:.'`"
MIO$$#'#@!$RK>Y8UIH$#MS_.?_INQ6D:3]\%!^Y`'.=IX,!)X#`-'#@)7.Z)
M\I@&#MP?=YX6?9B^PC1PX';%\1T1<.`D<)@&#IP$#M/`@9/`81HX<!(X3`,'
M3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$#M/`@9/`81HX<!(X3`,'
M3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$#M/`@9/`81HX<!(X3`,'
M3@*':>#`2>`P#1PX"1RF@0,G@<,T<.`D<)@&#IP$CM\6#@Z<!(XG8(`#)X'#
M-'#@)'`\/PT<.`E<HR?*\_1=<.`.Q/%$>7#@)'#^M<>ZK3$-'+C]<?DK(M6!
M:>#`[8_S3.O6W5##-'#@]L?Q'1%PX"1PF`8.G`0.T\"!D\!A&CAP$CA,`P=.
M`H=IX,!)X#`-'#@)'*:!`R>!PS1PX"1PF`8.G`0.TUK!U37)'KA60AZW2RL\
M^<KNBL.T5G"89@+3:G"8U@H.TTQ@6@T.TUK!M6=:*Z0,UR`:'A'3#L-A6DDT
MS1A,VXODX%JK[?'G'::51`NF[9-"3\VT@RJ-:96!:36XRJ3;.?F>@&F5=<.T
M&MRQF%;!W!6WI><:X=03,:UV2_543&O!-35K10VW))BV;9=MIC7H5_7(IE7#
M;>E4@PT;?+[5-/\XU:STD\<RK4F7;/^X4-G=#<:T77;9TS3W[19,4TU,4X6W
M&YJ6Y&8CTRH3N6!:L3S^=J6F%>K=.$I-:]`]%1^_EZ;MU?JJ?.-.50)4D(_`
M--78M/A`:=4;F1;EIIJ5I&BN%IUHJZU5]DQ37M'<[:I,V](C52%H6G4*>>\T
M-6V/_#[<M&(KB9JVR](LPE5DKWMTY?5^5>*KJ'3EQ4KR3Y4MS1S35&/3W'>5
MLCLV,2W>=!NQ8)JJ-,W=6.6'I;J>S]<KF7'S;5\6NYM64ZQ',JUVP'C?3%,Y
MTU3*V6I:P9D&IBEWK^0(;@IGIJG8M"QWE5^_K$2):3F'<NJ93PNF>=5*RY;L
MFOZ7-TTEE77JDNS?S#3/Y2VFJ?S.,[\E2@+3TK<;V%:H;(*K-:TXE%=N/?-,
MLZ7*F9;DN'(^23M>S=Q<3I//52C=(V=::H'*V>6_CDQ3J6DJW2!7UBR<ALN<
M2EQ1G70KY4.B@V3'26W+F>:\5K8K7"==TPIMX/V<[.2?7W:R<F1-ZYBF2DDN
MP?NQXWU6-P"4N-S<M&(V/ZYI*:G"M+0\*BO;%MORE54-3/-RK5B@PH\F^9P#
M%4U3J6EI;NQB6IJ$>YEFU2B:YB9BJ6EIV?,_EYJ6'CAGFBK:M9-IR7M.HU>;
M9O;JQ`VNTA*ES9Q6PQT9JKNUU+2J17/V8V'ALLTT)Y-5]K.8:?GB5IB66Q7X
MZJ4]YKR?F*9RK>QTGF=:VGPN5JG</HYIV8R8)*EOFIHYV>B9IM+J)*:I.M.R
MDRJ535/NE%5I6BJ*2DW-Q2PKDV>:\DQ+F<GDE8E58YJJ,$TY=2N8YOF1M;';
M+*EI2>$RT[)B.8V<>>@FA]/-*C'-R8:$[/7_+/W(R;`L[9PQ*5F:>?GCU*_6
MM/P,/"LSK>&S9DI,2XK125ZZ8Y1KFDK:QJM)K6EEPX5G6MJ%KFE.?J;OE)GF
MY&R6UZYI;G:F1D:FN2.)2NOAS!VEIJ5JE9N6LZJ!:>X;1=,RJ\I,2US,F>:6
M,ZJ":UHF6%;?U`W/$#7S&B_;M-*T_'"6,\VI2-*K*DYCE1Z[VK0LGVI,4ZEI
M:8LZ69P.!C.OC#._C%X43*M[S'6E:4FYH]=YTY),2?Y7;EK:[TE[)8WKFI8-
M6;.<#RHMB;-QP;0X^5*\9UJ2@=D0GR)RICD?=K+<R;;-3'.+YYF63VZ5-\UQ
M)-EEEG\_+4W>M.0-W[1R2,XT?Q1PVR-O6EK'7-5GWD].BR4OD_\RTPK;9?V;
MMJ.;[2DE[5:;QFG_9Y5*LS1+'.<`R7B8F99YXYOFYF^9:6DW>THXD3>MN\.<
MY@P=:9D2T]PWE=_J:0<ZIJFLDDEGI9#8M&2[;"3RD\1O8L^TS.$D^1S3W)PK
M-4VEE/QFGFE9`F7=4<AAY;[G&EXPS8N2LOJHJK<[Q7=+=2V85EI.J\;,V[YH
MFB]3E6EJBVG*I3G'2KK5,\W%.7V8[._G358!Q[0T]5([7=/R&9&)G_E5>.5-
M"B6F-5\]IKF?Z1Z_[KBIZ':@WZZ)8%F>9<-&TB">:<Z\X$P/I:8E+#]',].R
M8KE18EI6_'+3TM(Y]2QE^V_E#YR^*C>M@K<]\J95<V;5F_BF5>U85O5:T]06
MTTH*DFZ?=JO;X96FJ>2OF;-#EF%.VJ7863RLU)GFUL^MJ6=:ZEICT_)/WTW+
MF&L28UJN')7MYC9<P9"4W''?]QO=\R%OFO.FN^$NIE5OFAZK4_'I3F9XIK49
M^^$JBUZ&JZMZ/@-RVW>R=QJ9EG6CTT5YTW);^M!9H4AIMODCAF]:CNCO7*AI
MIO)>IA7G-%<0;T3LJ.*;99'M.RM[,XG2;&EJFG>`K:8U*[<7E;F,:5O#P94W
M?:UIN6T:F586Q4/'II65H&+G<M.BE&S#M(J#[VY:2=&S*,^6*M/J#E4PK84`
M)X@KFU<<7(5IN["=GW8TK7*+QS--B9A6ODN#5OVCLP7<H^%V2X1<'&9:S185
MIC5^^FY-[&C:MMBE/S#M?<;MKE<MSOSQ>*;5QVZFM128!JX9[A%,.SQ.U#1P
MX(X,AVG@P$G@,`T<.`D<IH$#)X'#-'#@)'"8!@Z<!`[3P(&3P&$:.'`2.$P#
M!TX"AVG@P$G@,`T<.`D<IH$#)X'#-'#@)'"8!@Z<!`[3P(&3P&$:.'`2.$P#
M!TX"AVG@P$G@,`T<.`D<IH$#)X'#-'#@)'"8!@Z<!`[3P(&3P&$:.'`2.$P#
M!TX"5VU:>[^7OZ4`!^X)XRI-JWTH**:!`[=;5)G6K9W5,`T<N-T"T\"!D\#M
M;%KQZ;N/741PX$X`=^B<5A>-+V4V"W#@3@2':>#`2>#VN?:XC=EB@`-W(KA]
M[J=M8[88X,"="&Z?[XC4.7?\-?:BV?#1&'=8'(0KUN282K<3;I]..<[*)C7!
M-$QK'IBV>V!:&IC6.#!M]\"T-#"M<6#:[H%I:6!:X\"TW6-/TQI%I]EF30,<
MN*>,V\NTHJEE<9QC2R6..:UQ,*?M'IB6!J8U#DS;/3`M#4QK')BV>V!:&IC6
M.#!M]\"T-#"M<6#:[G&H:74!#ARX,ARF@0,G@<,T<.`D<)@&#IP$#M/`@9/`
M[6K:MNM"QU_C-`Z[[EC`'1[[XK)O_;2"JP@)G/L-IA9P^T<;.*<B>YA6^_L/
M$F:+\8BX/;NT"M="[(FK^O4OQU&ZG7&8ENQ<WQ)'6.-RW-8Q8S=<&X%IL[U7
M&L=7V2ZF)7$JIIDX&=/V[92CJVR7.2V-$S+M5,[3JDXY]\7M'9C6)NYT3"NO
MR;&4;D?<:9RG=3E/R^)D3*NHR)&4;E?<B9CF745]OZ\]GHQI5?4XCM+MA-L^
MDN^$VS_^\&N/)W0_;?];-Z6X-F)?TRIJ<AREVPUW.N=I!YNV+<"!`U>&PS1P
MX"1PF`8.G`0.T\"!D\!A&CAP$CA,`P=.`H=IX,!)X#`-'#@)'*:!`R>!PS1P
MX"1PF`8.G`0.T\"!D\!A&CAP$CC5^?*'SI>O.^.A"LY'O4F@7ZA@V!^/@\^_
M^^SKK[[_]+N?.HOLXV\ZX\'Y>?3ZZ\"^UAO;UT/EOG2WB%[;(_W0^=.?OI]>
MAS^NIO/;<-5Y^9/YZ?7TMS!8A>O-<A5VUC?+M_?ZS7C+CX)N5_^G?_HTO)XO
M[.;AYN&^LS8[?>@`PM\O;X*K<-;Y_+O77_SXU^_U+E\LKK(=U)G2$7SYP\O_
MU,=]M5QL>O?=GGU/;__JNV]_-"VQZ/0GPUYP/AD,=&T_^&RYN+Q]6,^7BV?!
M^'P4_&3J4"3U2TFV(0;CG@']>!,&=^%T$4P75\%ZH_^<KJYT<7^;3S>:;JK_
M<+M9!\LWF^E\$5X%L]7R+MCHO>Y?K"]UP^B/9L'G\_#&[+>^N>@LW^J/IQOS
MMMEL\W89/`M&XVZ_6,BL-+W)R)1F/;V[O]5(L^,;W?"!IOYF_M:PE2Z;/O2;
MN2[-VVF^1*^ZSX.W-W/=U.8SL_^K;X+512>\#.>_A:M@\V`VW=BRC(;=NK)T
M]5NZ+#?SZYL7LU7XWP_AXO*=:9O-_/(L^.+W^W`UOPL7F\"D1'2L^6(3KA;3
MVV"QG*_#X#I<A*OI1A_PS3O[^>7R[OZB\Z`W"M;+!]W2IK7>3E=ZS[4NT5CU
M2KHP+='DO&L[?;-<:M)J%=Y:MJ[,FS!X6.N7NLI30UY=AKFF>A[HKK@-I[H-
MW\XW-[HT^HCWTY6NR\-%YW:Z"NZ65^&MV>MN>GFC&_3,-I$:U!5H.+#)\]7&
ME'^^6&]6#Y<;W<ZF3(OE)HPR0%?^=KG\=;ZX-H4P[9`UY]5<[S1_\V"23!?^
M=KD(GP<7G?DFF-[?A]/5VM1I'J70JWY2-UVR\[&J*UE_:!/I[?SV-KA?+7^;
M7X59-I6VD/[H<JI;T;QM?ISIUC4=Y990E\SX85M>5_/65.QML/XU?&MSNU=;
MI.[8YM/%![?SNWG<<:9(Z[NI+N3Z?OZK22#[UD@%?_F[/LRU/N;%LX]U>8)+
M[:;NYG48+J)6M3VH_[OHZ):.LFNZMKTV-(>K+LAX?#Y)E`^S++X*-V;0NXK*
MH,&K\'ZY,NJ9I@G-$*`[Q)1['6J3=))O](YK.V"8HQO)HC%B%=YI(X,WT_7\
M4E?MG6F;27]25Z11UR;2I4X"W=RZ.,]-G>?6JE4XT^-+<+]<K^=O;FUNW>AT
MT@>V;A?,C@RUK7O1,</:_'*UO+_1F178"NG^G=KN4K5%&O1&49'N[JVPTTA7
M.PSI/`^]W(E'PVF:6U:RG[[[X85)'YV$=A0]"[[213+5TBGY9FHK8_;1A1F<
M#^L*TQO8W-GH8Z[G-A/OM!_&J*OYE5$M>+M<_6JZ+CZ>^6C],-_8@U1D^?I6
MBW9]LTD'$UO$'V_L6#0:36I+I(:#J'G274V];G42ZPZ_>K#=]#:<_FKZ:#V_
MUH.B.;8IUOW\\E?=4P_WR:B8=*$YMDDB\\[=8FI&UGC'N^D[.SS6]MAH,K)Y
M_<9.UO<FE4SE=?+8H_SY:G[_YT2P\@$H^=04.1[F=6M<=-;!S;O[I?Y$)V<B
MHNFS<=UHK1O0YG2FF'5AH_,GFA!NXC%1-\1Z>:=[Q.1ZDKU1&CW7?:BGLG@F
MFSY<S9?:=YMLT^"O?WFE:;=ZBC;SOY7LO%=7H,%Y-+G&H]^J[(CQY+F\MQ.7
M&=2OM/;ZCT4ZDSO2V=&F.ZB;1K79-E&^6D1UN5F:_#13X>+*9O+:3-A:\BA;
MTGPR^1OWOID?[W67VF$A<4JG;FQ5\&X>WEXYBP73$J.ZEAB>]R=N2_CS0)R\
M>OQ9+G2'K4*='[J1=8&Z9@.SN2Z)'E+>!;J5=$]N]*BKJW>WO.CHDI95<&X+
M-1[5K7WTJ&WSY>WRX?;*9)@[X.E:!]]&Q=LLKT/3;WI&U_-T5#"=DM]^%)7.
M=%LL<4324]:MF:7T*E%OJ6?Z:]/G\[_K)#1*]6L;:CB*IU'=/&_7N?'E:KJ9
M6KVB=EQ'@YGIK3LS8)MI41]$?^XN5FYT675#F1JLH\FJ6[?$&';/;?J\7-L\
M-6N<-\O?M!A1=2Y7[^YU@ZRF]SIMS52E9;F]7J[TZ'NWCI=#F_`^$=N.G[K$
M=U-=`I,Z<4J;AEM'(T*TN!C4#31#,P[I,NDFGEYI^^P8FXRKTZ@4RX>-GC;,
MD'C],-5'W831Y'1M5D=QMD7;/`_T=+HP[:BGAN7J2JM@YF#]R5EP\4&D8[PZ
M[-=-ZX-)+\J?FW<Z'Z:W[];1^L!,#N:HBW@D-)-JV@RF$9['@["9O,T.T]M5
M.+UZ%_RZ6+Y=7'0NGIT%)KV3%8:Q-?K)3A)U0^!@U+?I8VMCT(EF^J?UK9EZ
MM%]QFA3Z+D[::$8WRSC3NG:]M#&>3>_.@M=V<'3V646]IT_J:@HU&*IH7-[H
M:<;,5AH\>[B-ZA6EU=2LZUXD.L7Y?1;\,+4#ILUA[<&E7KR;K:-3$;-HO3$F
M3K2)*].RR1K&KC7&=47JC6R2N\8GM36G'_J8=HRSZ5I<`EQ\8#,H7B5GF;?6
M"WNOD9\;(^+EOVVIR:2VI=1X4K+J,+-7NN9YU;UX%B'CQ-=%C\8EJX(Y=W(&
MRUEXJ4NC\SP;;W5W1IUILJE?-Y/TQ\IFTQ>_Q?FGESSK9%9:F]/7S<WR*II.
M%FY31$<P+6)*:)K!=(QQPHP/=_I4U8Q6X>7#*G1.#4RO#>J:IS_LV41RYPZ;
M&NOE;&-.ZE[H%;!NK+A<\:"L__MM'BT%YG=F/6K6.780-068;][I`?O^8:53
M09<NF?VOYM=FGVAHJAL$^OU^O"R[NPOM`D*W^GII3DFG#[I)%GJFCR9-.RPO
M9G,SL\^GM^;`NM)7R\L'LU19?VR&S*EI8MU<EWIH2L?9=[:K>OVZ4;MW/K)C
MT5^2T]OU\C8^Q3-5C5IL$:[7WOI&K]#7YHSD=FF&0+LF,/OJD]9WL1$7G>=!
M=`+VWP]S\[%=AM7.];WQV&;-W7PQOS/-<*=/O&W6).?>9O*^"DU:W.FI6S?8
M\O[6+.#UD'-C+MR8]<Y4K[S6R2G`E>X[/8$$Z:E!Y/A@4C=I](;G-EO6-W.K
MT&9Y-7T7S9CQ(&WJ9#^*=8JN$)A!QJ1.F%TKL./XZL&N(U?VC%2GW^+A[HTN
MBBY'?UR7M?I,PF9(?&TB7K?KSKZ_G5[:$U"G%?ZLE5FZ)WE):MLRZ(S/3F_T
M\!>APM\O=6/J<<D,.W-S'<>F;:^V<7K=:*31YPS:@?!C/>/HU%C?Z_$B7E6L
M,T'T&'0;IW%4LD2/).O-9&Q6U+':YNUE4D%[4:-N,.Z9)9$NBTX4L\!(^EAG
MWRI>X3B#5]R*>B!R,WD=IT]<C.CX6FM3`&M/MQ]/FWM<;NSI_Q[E<F/-1<))
M-&5^JB>G>3P*?/0L.._57LL;1+/'SY]_]<7YY!>SU#NORH&NNT-R$?%'LY9_
MK<]AP^`ONAE-*WP<W&PV]Q]]^*%9"Y[-U@]GX=7#A__G.EQ^>!7M=7:SN;M]
M%@R&]67K1E/)S__SV[].NK\8:>J+%F__/Q=Z$'T>?&X&U"N=I,^";K=;M6?/
MG(\F>QJ!7T87'SY+4NK[E6G+.STR73\+>OUQ//GIG97F&EC?=$CPHF=_<*]X
M1VRE3]&_Z>BJQJ^_#CH3K<E&K\[#M_.KS8T&Q3]>3OTN?UU:9(TZ3XO\//A?
MR]NSH/=1\#K49=3SPLI<SPELZ)I/JF='M\WBS74=:B]M1G-I4!4OTU7>\^#E
ME1YUEHL7_SM<WX;OG@?=\TGW6=`?U%\\'0ZB=/SFN_]U/C9=/JK:O.MN_XTV
M_.^A.>KM3$]+'P??:=DO;Y9ZW?[]].'VX^!_Z<71QEZV?'VYW&QL5O0'HZJ5
MS+#7[:;PO^B1Y(VYEJ73XJ49U>Q)67>0G,<W2848V!MKH%YG]J+7!Z>"1O73
M<GI=H44>U+9T/YK\*_M2UU!57J'L3E2&^"P[O7MGQIM!\V:).8.NYO3&>C2P
MKP]N%HT:9#74*\G/?OA,BZR7,B8/S\>Z;OUNW7ID?!ZM`W[^X=5G-@^'YU4C
M5=?=7F]N?OY(GX2DBZ<?0COC+:ZFV=KJ=3Q+/C/KY:HDC,B3:"40#ZEOW[X]
M^W7Y9KZ:GETNS_YV_V&R%OQP-;O\,#[\V>;WC4GO?MT,.AY$,^C/KS_[2Z2:
MJFJ1KKO]Z\N;13@W5S8^73U<ZL'>#*_#JM;IG>L$379-Y'$3QNP^'/1W&%0C
M8M>DS$"?)D:O#TX9C1JE!>TM]&HNO#K3_5YYY:7;BR[YC@H6_6^]3'B72[?Z
MJTJCR7@0]<5?7@[.35]T:Y,BV?ZU/I%9F&L#G]U.'Z[":*[KC:JZO:^ZXW3?
ME\$WYD397%TP\X6>^I:K=_',=_>PB)=N>DJ8)!>]F_1.?`B=#WK*.]>UL*\/
M[IUN?*W6CG.?AGK5]OJ=7EG?K?7Z0^>CK<'_T">%>L8W33XXU^760VY=D_>[
MT>+B]>L?]<)']W3]3)-L_[6>8W\/OOGJ\Z^"?PE>V\7_2W>E:]9N^ES?W(_1
MU?O57AGY1B\?S"6D3^=+NQ+^3)\TK2^>F>RJO%8>';3;5SGYWZS,Q8*S1;CY
M\/]<W=[?S&_O/[PU9?HO>R:B5]WK>'75'X[J[@T,Q\-HJGW]XU?GPU^BBWQU
MA4EV>+V9+]8FZ3Y?/ES?3M>-LB[9V57_HR3I3)M\OYI>ZDP,S1IKN,,,$M/[
M9F(=ZL$T>GWX&LLL]))"Z_H-:L?&X3"Z/^]/,T,S,@X&>Y]#]/5_@E]9Z(T&
M*OW*@LYI/6/-?P]>?F2RW)RN72ZODJO<WOTRG6F]Y)ZJZ;'"X8;WIM?\PXT'
M8WTJ,3!>Z?.\@5D5%KXKTN^=FZ)\^*_!Y]'AUNDE_?CF2GS-R-PEBZY/>O?0
MWIFBVF7[L%]QXZY),;KGR1`?3G5+FQ-*>]7%W%((IM=3<T<]^BBZ4Z.;*/JV
M0]!-KFV9?>[#U3-SJ;[<L28%4>F*+;I4&]W3F$3GM+;*YIQ_%9K[L_8>O[U$
M;2[U19OJ+!Y77+MK<'B]^+?=\:\?ZK2N&"N;8,91<_X_<_.=&)U1_[[>7,V7
M9S?_89?4Y=>KFG!'4>M<ZO-+MPW^RU3](GK[7\WK_YJNWET\^UAG;7>X_]&&
M46-8[._+U7^9YH^/<FGIW4G%B4X3>C]J(WN#_N(#.U-,]N^X7G1M[1_/-'@?
MB%[IC(-)=Y"UKVG'G\>_F&JJBNM8C9A*9:UX&0$G%;=/FO#&DZBFEC?_>.]6
MBV#C07RGQMPGO/A@9NZWZ"Y^WGT^>6YR=G'Q+/CDDV!BND?OL'_3CD=1,^S?
M0='Z/*J\.;VX^&#^B?HXF/_[)V/]Y[_]FRFB=G:OENW9(O:CQK`=/__E$R?E
M]8]1PI^K_3(A^NI$U`1Z6+N\^*"HK_WSV7,]X%_I(3725U4L5QHUN8H:ZY_[
M-KE=G9T/6X#$-P0K1A)SZC#8'SZ:')A9IK%&PZ&CU?-@=J"FHT%4Y=DGNI[_
M\1_SBV?_TM7(\XHO'39"]J**)LD_TFG_'U:!%R\.2?YX%1[5?_;_Y@I<]E7.
MI@5641NL]!)MM;!-:G;;LY^'DZCZ!V6B7NV.=IA!]S?0'BR^Z;QW9D;+;N5=
MPTK'_6YOL/=Z;]@?G1>@J^"30!GP<+Q_)_7ZWK6"JH&ZU^_MO2X9=OT6^<=!
M:34X]YLBB=6___LGW0/7.(-)OWCEQ+#_OT^2'-,SR\?[3ZWV(&._.?YY6',,
M_>:(W5V9EAA47+!I@AWT\]/(?N>+`_V?Y/GB4)]Y%\X7/RV<+_Z8?3'AF^B[
M$/;2^VB?,\:1;K_1N-?5IYSGO>(9TK`[C,\8==Y4W/AHPNE/TK3YRMP;M=\+
M3+Z*])O^Z]OPX6ZZ6/QY7?9-C_7EC=[#5/TJ?&%.3,WEXXIO(38I32^[O*]/
M></5//H:OW.N>Q:\#L-@>-8[ZYE/XLO`=H2Q7_*:+]+O$9EKFI.*B]E-"M.-
MFGCK66`]9C*)ZK3[6>`6[C@J7EMG@5N.-HSRI.EYVA;:(#J#W3(E5D.B<ZJ^
M_1<V\0+R>?"FJ__?>V[6;7_[>-MJ<AN[>YZU;M-SP&W,^*K&WSXQ\VN_XG)[
M$]+X/*IY<L(6_-^S<#F[^"`Y5[/KP-H9:]L!QE'U]^^@Z%OT487C\\E_T7W4
MU>>4<2D/Z2)+'T:-D"PNQME"^)/>]M.);?3^@2T0G4SVHA9XT]7KZ6Q%;?X)
MA1ZYS;_.,5]^787QMXG3@==>>0O,R#,P%^/W/GQ\)>--+SF\;J@7^O!)(;8M
M\[;QDR^>SDP27IAJ?F*^?_<O_V)^Z'WRB;+):.IJ)X_;M()=%=5.55Q+;W+T
MT61\8!?94YZQ<[[_MU_L:J_VE&\;;Q2UR=_^[=_VMSRJWR"JWY93G6V4^'J&
MVT?*[:-N51^I;@M]U(M:X\`^4E%+)'VD#NRCX7G4)H?WT3"^IK%W'T4W5>+;
M?0=2=*0]_;?_&)LQ<#3::\J/>/'%B\.&0#U*3QI<[W(N=_7.*[ZXV.APW:@1
M#IMDHV_5']JUICR#2=RUP4&K2#T4'#861%]_[^URXV#;98\M!XNO6.R=/1;2
M'WG?]VEXV6,+M-<?[GG98PLX=TEBO\L>]<?HG_LMLNVRQQ;:Q&^*W2Y[;&'G
MKDCL>=ECRT&&?G-LN^RQA3;PFZ/Q98\MV'[4$MX8L..%CV2K/_WIB^]>=?ZO
*_Q^B7>1`!GX9`'-L
`
end
<-->
----[ EOF