[comp.sources.amiga] v89i101: lineart - draw pretty lines

page%rishathra@Sun.COM (Bob Page) (04/27/89)

Submitted-by: raz@kilowatt.sun.com (Steve -Raz- Berry)
Posting-number: Volume 89, Issue 101
Archive-name: graphics/lineart.1

[uuencoded executable included.  ..bob]

# This is a shell archive.
# Remove anything above and including the cut line.
# Then run the rest of the file through 'sh'.
# Unpacked files will be owned by you and have default permissions.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar: SHell ARchive
# Run the following text through 'sh' to create:
#	README
#	LineArt.c
#	LineArt.uu
# This is archive 1 of a 1-part kit.
# This archive created: Wed Apr 26 14:55:00 1989
echo "extracting README"
sed 's/^X//' << \SHAR_EOF > README
X
X    Is your computer BORED? If so, then you need...
X
X                LineArtIV, by Steve -Raz- Berry
X
X    IF YOU ARE IMPATIENT WITH LONG WINDED README'S... skip to the section
Xlabeled Examples and try them out...
X
X1) SHORT HISTORY
X----------------
X
X    This display hack does nothing usefull, but draw pretty lines on a 
Xcustom screen. I have seen this program running on everything from Suns
Xto Mac's, and I decided that it was time that one was done for the Amiga.
XAlthough similar to the lines demo distributed on Workbench 1.1 & 1.2, 
XIt does things on it's own screen in full 4096 color interlaced 
Xsplendor :*). The program runs at a priority of -11, so it should 
Xmultitask just fine. It will also detach from the CLI all by itself. 
X
X    When I first wrote this program, I was unaware of MACKIE written by 
XTom Rokicki, which draws the same kind of lines in addition to boxes and 
Xsplines as part of a hot-key/screen-blanker type program. Undaunted 
X(although somewhat embarassed) I proceeded to allow infinite customization 
Xto those who are bored enough to want to play with it. Besides, I prefer 
XDMOUSE (Thanks Matt!) for my hot-key handler.
X
X    To terminate the program just do one of these things:
X        hit any character on the main keyboard,
X        move or click on the mouse.
X
X    You can still do stuff like Amiga-n or m to switch the screens without
Xterminating the program.
X
XThere are a LOT of comand line options (for a program like this anyway!).
X
X2) INVOCATION:
X-------------
X
X You can enter the options in ANY order on the command line, and only the 
X last occurance of a particular switch will be used. The options are:
X
X    LineArt -[b|t|n|e|c{0-4096}|l{2-1000}] [i]
X
X The '-l' and '-c' options require an integer immediately following the 
X switch in the range indicated in the {}'s, without a space. Descriptions
X and examples follow.
X
X    lineart -t      - This leaves a trail (one out of every 'l' lines) 
X                      remains on the screen.
X            -n      - This is the 'nice' option, this makes LineArt much
X                      more friendly in a multitasking environment 
X                      (It takes less CPU time.) It also slows things down.
X            -cXXXX  - This switch allows you to specify the initial color
X                      that the program will cycle from. Suggested color 
X                      values start from 1900 (decimal) and up.
X            -lXXXX  - This switch allows you to specify the number of 
X                      lines to be drawn before the last one is erased.
X            -b      - draw boxes (4 connected lines) instead of lines.
X            i       - This is an integer between 1 and 9 that will change
X                      the minimum distance between sucessive endpoints for
X                      each line drawn. A high number will give the illusion
X                      of unbelievable speed! (Woah... hold me down Toto!)
X            -e      - Draw ellipses instead of anything else.
X                      (I would be interested to see this run with an '020)
X            -a      - Cycle through all of the available line (and circle)
X                      types. This is a good loop mode.
X
XThe defaults (if you just type 'lineart') are as if you entered:
X
X LineArt 3 -t -c1280 -l10
X
X3) EXAMPLES:
X-----------
X
X Some of my favorites:
X
X    LineArt 4 -l100 -c2500 -n
X    LineArt 1 -l10 -c2500
X    LineArt 9 -l30 -c2500 -n
X    LineArt 9 -l30 -c2500 -t
X    LineArt 4 -l3 -c1500 -n
X    LineArt -b -c2500 1 -l20
X    LineArt -e 7 -c1999 -l30
X
X For speed freaks -
X    LineArt 9 -c4000 -l7
X
X4) Miscelaneous:
X---------------
X
X    If you want to time the drawing speed (roughly) turn on the trailing option
X    and wait for the screen to clear. 60,000 lines would have been drawn in 
X    this amount of time.
X
X    I timed it at 2'7" (127 seconds) or 472 lines per second in line draw
X    mode. Using boxes it climbs to 800 vectors per second. Not too shabby for
X    a game machine eh? (This number is WRONG, I forgot to include the 
X    BLACK lines that erase the old lines in my calculations!!!)
X
X   This program is PD. Use it or abuse it, only you will know.
X
X    Steve -Raz- Berry       (Note the new address)
X    1260 Ayala Dr. #214
X    Sunnyvale, Ca. 94086
X
X    UUCP: ...sun!kilowatt!raz   ARPA: raz%kilowatt.EBay@sun.com
X
X   This program is a product of The Checkered Ball 1989.
X
X    2/19/89
SHAR_EOF
echo "extracting LineArt.c"
sed 's/^X//' << \SHAR_EOF > LineArt.c
X/*
X This program is called Line Art. It draws pretty lines on the 
X screen like the Early suns used to do.
X
X    This is not my idea, but the implementation is.
X
X You can enter the options in ANY order on the command line, and only the 
X last occurance of a particular switch will be used. The options are:
X
X    LineArt -[b|t|n|c{0-4096}|l{2-1000}] [i]
X
X The '-l' and '-c' options require an integer immediately following the 
X switch in the range indicated in the {}'s, without a space. Descriptions
X and examples follow.
X
X    lineart -t      - This leaves a trail (one out of every 'l' lines) 
X                      remains on the screen.
X            -n      - This is the 'nice' option, this makes LineArt much
X                      more friendly in a multitasking environment 
X                      (It takes less CPU time.) It also slows things down.
X            -cXXXX  - This switch allows you to specify the initial color
X                      that the program will cycle from. Suggested color 
X                      values start from 1900 (decimal) and up.
X            -lXXXX  - This switch allows you to specify the number of 
X                      lines to be drawn before the last one is erased.
X            -b      - draw boxes (4 connected lines) instead of lines.
X            i       - This is an integer between 1 and 9 that will change
X                      the minimum distance between sucessive endpoints for
X                      each line drawn. A high number will give the illusion
X                      of unbelievable speed! (Woah... hold me down Toto!)
X            -e      - Draw ellipses instead of anything else.
X                      (I would be interested to see this run with an '020)
X            -a      - Cycle through all of the available line (and circle)
X                      types. This is a good loop mode.
X
XThe defaults (if you just type 'lineart') are as if you entered:
X
X LineArt 3 -t -c1280 -l10
X
X   This program is PD. Use it or abuse it, only you will know.
X
X    Steve -Raz- Berry       (Note the new address)
X    1260 Ayala Dr. #214
X    Sunnyvale, Ca. 94086
X
X   This program is a product of The Checkered Ball 1989.
X
X    2/19/89
X
X*/
X
X#define NORMALFLAGS BORDERLESS|SMART_REFRESH|BACKDROP|REPORTMOUSE
X#define MAXELLIPSE 100
X#define MAXX 640
X#define MAXY 400
X#define BOUNDX 620
X#define BOUNDY 380
X#define MINBOUND 20
X
Xstruct NewScreen scr = {
X    0,0,                /* x,y start */
X    MAXX,MAXY,          /* width, height */
X    1,                  /* depth */
X    2,1,                /* detail, block pens */
X    HIRES|LACE,         /* view mode */
X    CUSTOMSCREEN,       /* screen type */
X    NULL,               /* font */
X    NULL,               /* title */
X    NULL,               /* gadgets */
X    NULL                /* bitmap pntr */
X};
X
Xstruct NewWindow mywin = {
X    0,0,                        /* x,y start */
X    MAXX,MAXY,                  /* width, height */
X    2,1,                        /* detail, block pens */
X    MOUSEMOVE | RAWKEY |        /* IDCMP flags */
X    MOUSEBUTTONS | SELECTDOWN | SELECTUP,
X    NORMALFLAGS,                /* window flags */
X    NULL, NULL,                 /* pntr gadget, checkmark */
X    NULL,                   /* title */
X    NULL,                   /* screen pointer filled in later (run time) */
X    NULL,                   /* bitmap pntr */
X    0, 0, 8000, 8000,       /* default x,y, &size */
X    CUSTOMSCREEN
X};
X
XUWORD coltbl[2] = {
X    0x000,              /* background color */
X    0x500
X};
X
XLONG GfxBase, IntuitionBase;
X
Xstruct Window *win;
Xstruct RastPort *rp;
Xstruct ViewPort *vp;
Xstruct Screen *scrptr;
X
Xlong Enable_Abort = 0;
Xlong _stack = 10000, _priority = -11, _BackGroundIO = 0;
Xchar *_procname = "Line-Art";
X
Xint scale1, scale2;
Xlong input, maxlines, ctemp;
X
X#define MAXLINES 1000
X
Xlong point1[MAXLINES+1][2], point2[MAXLINES+1][2], direction[2][2];
X
Xmain(argc,argv)
Xint argc;
Xchar *argv[];
X{
X    int i, count, trails, nice, boxes, ellipse, all;
X    register int offset, newoffset, tempx, tempy;
X    struct IntuiMsg *msg;
X
X    input = 3;          /* Some defaults for switches */
X    trails = 1;
X    maxlines = 10;
X    ellipse = FALSE;
X    nice = FALSE;
X    boxes = FALSE;
X    all = FALSE;
X
X    while(--argc >= 1) {
X        switch (argv[argc][0]) {
X            case '-':
X                switch (argv[argc][1]) {
X                    case 't':
X                        trails = 0;
X                        break;
X                    case 'n':
X                        nice = TRUE;
X                        break;
X                    case 'l':
X                        sscanf(&argv[argc][2],"%d",&maxlines);
X                        maxlines = (maxlines > MAXLINES) ? MAXLINES : (maxlines < 1) ? 1 : maxlines;
X                        break;
X                    case 'c':
X                        sscanf(&argv[argc][2],"%d",&ctemp);
X                        coltbl[1] = (ctemp > 4096) ? 4096 : (ctemp < 1) ? 1 : ctemp;
X                        break;
X                    case 'b':
X                        boxes = TRUE;
X                        ellipse = FALSE;
X                        break;
X                    case 'e':
X                        ellipse = TRUE;
X                        boxes = FALSE;
X                        break;
X                    case 'a':
X                        all = TRUE;
X                        break;
X                    default:
X                        exit(20);
X                }
X                break;
X            default:
X                sscanf(argv[argc],"%d",&input);
X                break;
X        }
X    }
X
X    input = (input > 9) ? 9 : (input < 0) ? 1 : input;
X
X    openstuff();
X
X    Enable_Abort = 1;
X    for(i=0;i<VBeamPos();i++)
X        get_rand_point();
X
X    point1[0][0] = get_rand_point();    /* Initial start x,y (one endpoint) */
X    point1[0][1] = get_rand_point();
X
X    point2[0][0] = get_rand_point();
X    point2[0][1] = get_rand_point();
X
X    for(i=0;i<2;i++){
X        direction[i][0] = get_rand_dir();
X        direction[i][1] = get_rand_dir();
X    }
X
X    offset = 0;
X    count = 0;
X    scale1 = 2;
X    scale2 = 2;
X
X    rp = win->RPort;
X    SetAPen(rp, 1L);
X
X    while(1){
X
X        Chk_Abort();
X
X        if (nice)
X            WaitTOF();
X
X        msg = GetMsg(win->UserPort);
X        if (msg == NULL) {
X
X            if (!ellipse) {
X                Move(rp, point1[offset][0], point1[offset][1]);
X                Draw(rp, point2[offset][0], point2[offset][1]);
X            }
X            else {
X                tempx = (point2[offset][0] > point1[offset][0]) ? 
X                    point2[offset][0] - point1[offset][0] :
X                    point1[offset][0] - point2[offset][0];
X
X                tempy = (point2[offset][1] > point1[offset][1]) ? 
X                    point2[offset][1] - point1[offset][1] :
X                    point1[offset][1] - point2[offset][1];
X
X                tempx = (tempx > point1[offset][0]) ? point1[offset][0] :
X                    ((tempx + point1[offset][0]) > BOUNDX) ? MAXX - point1[offset][0] :
X                    tempx;
X
X                tempy = (tempy > point1[offset][1]) ? point1[offset][1] :
X                    ((tempy + point1[offset][1]) > BOUNDY) ? MAXY - point1[offset][1] :
X                    tempy;
X
X                tempx = (tempx > MAXELLIPSE) ? MAXELLIPSE : tempx;
X                tempy = (tempy > MAXELLIPSE) ? MAXELLIPSE : tempy;
X
X                DrawEllipse(rp, point1[offset][0], point1[offset][1], tempx, tempy);
X            }
X
X            if (boxes) {
X                dobox(offset);
X            }
X
X            if (checkbounce1(offset)) {
X
X                tempx = direction[0][0];
X                tempy = direction[0][1];
X
X                direction[0][0] = (tempx == -1 & point1[offset][0] < MINBOUND) ? 1 : 
X                (tempx == 1 & point1[offset][0] > BOUNDX) ? -1 : get_rand_dir();
X
X                direction[0][1] = (tempy == -1 & point1[offset][1] < MINBOUND) ? 1 : 
X                (tempy == 1 & point1[offset][1] > BOUNDY) ? -1 : get_rand_dir();
X
X                scale1 = get_rand_scale();
X            }
X
X            if (checkbounce2(offset)) {
X
X                tempx = direction[1][0];
X                tempy = direction[1][1];
X
X                direction[1][0] = (tempx == -1 & point2[offset][0] < MINBOUND) ? 1 : 
X                (tempx == 1 & point2[offset][0] > BOUNDX) ? -1 : get_rand_dir();
X
X                direction[1][1] = (tempy == -1 & point2[offset][1] < MINBOUND) ? 1 : 
X                (tempy == 1 & point2[offset][1] > BOUNDY) ? -1 : get_rand_dir();
X
X                scale2 = get_rand_scale();
X            }
X
X            if (++count > 60000 | (count > 2500 & ellipse)) {
X                count = maxlines;
X                if (trails == 0 | all) {
X                    Move(rp, 0, 0);
X                    ClearScreen(rp);
X                }
X                if (all) {
X                    tempx = (boxes) ? FALSE : (ellipse) ? TRUE : FALSE;
X                    ellipse = (ellipse) ? FALSE : (!boxes) ? TRUE : FALSE;
X                    boxes = tempx;
X                }
X            }
X
X            if (++offset > maxlines){
X                LoadRGB4(vp,coltbl,2L);
X                if (coltbl[1] == 0xfff)
X                    coltbl[1] = ctemp;
X                else
X                    *coltbl[1]++;
X                offset = 0;
X            }
X
X            /* Erase the oldest line... (or ellipse) */
X
X            if (count > maxlines-1) {
X
X                newoffset = (offset == maxlines) ? 0 : offset + trails;
X                SetAPen(rp, 0L);
X
X                if (!ellipse) {
X                    Move(rp, point1[newoffset][0], point1[newoffset][1]);
X                    Draw(rp, point2[newoffset][0], point2[newoffset][1]);
X                }
X                else {
X                    tempx = (point2[newoffset][0] > point1[newoffset][0]) ? 
X                        point2[newoffset][0] - point1[newoffset][0] :
X                        point1[newoffset][0] - point2[newoffset][0];
X
X                    tempy = (point2[newoffset][1] > point1[newoffset][1]) ? 
X                        point2[newoffset][1] - point1[newoffset][1] :
X                        point1[newoffset][1] - point2[newoffset][1];
X
X                    tempx = (tempx > point1[newoffset][0]) ? point1[newoffset][0] :
X                        ((tempx + point1[newoffset][0]) > BOUNDX) ? MAXX - point1[newoffset][0] :
X                        tempx;
X
X                    tempy = (tempy > point1[newoffset][1]) ? point1[newoffset][1] :
X                        ((tempy + point1[newoffset][1]) > BOUNDY) ? MAXY - point1[newoffset][1] :
X                        tempy;
X
X                    tempx = (tempx > MAXELLIPSE) ? MAXELLIPSE : tempx;
X                    tempy = (tempy > MAXELLIPSE) ? MAXELLIPSE : tempy;
X
X                    DrawEllipse(rp, point1[newoffset][0], point1[newoffset][1], tempx, tempy);
X                }
X
X                if (boxes) {
X                    dobox(newoffset);
X                }
X
X                SetAPen(rp, 1L);
X            }
X
X            /* Calculate the next point */
X
X            newoffset = (offset > 0) ? offset-1 : maxlines;
X            point1[offset][0] = scale1 * direction[0][0] + point1[newoffset][0];
X            point1[offset][1] = scale1 * direction[0][1] + point1[newoffset][1];
X
X            point2[offset][0] = scale2 * direction[1][0] + point2[newoffset][0];
X            point2[offset][1] = scale2 * direction[1][1] + point2[newoffset][1];
X
X        }
X        else {
X            ReplyMsg(msg);
X            msg = GetMsg(win->UserPort);            
X            while (msg != NULL) {
X                ReplyMsg(msg);
X                msg = GetMsg(win->UserPort);            
X            }
X            break;
X        }
X    }
X_abort:
X    CloseWindow(win);
X    CloseScreen(scrptr);
X    CloseLibrary(GfxBase);
X    CloseLibrary(IntuitionBase);
X}
X
Xopenstuff()
X{
X    GfxBase = OpenLibrary("graphics.library",0L);
X    if (GfxBase == NULL) {
X        exit(100);
X    }
X
X    IntuitionBase = OpenLibrary("intuition.library",0L);
X    if (IntuitionBase == NULL) {
X        exit(50);
X    }
X
X    scrptr = OpenScreen(&scr);
X    if (scrptr == NULL) {
X        exit(30L);
X    }
X
X    mywin.Screen = scrptr;
X    win = OpenWindow(&mywin);
X    if (win == NULL) {
X        CloseScreen(scrptr);
X        exit(20);
X    }
X    
X    ShowTitle(scrptr, FALSE);
X    vp = &scrptr->ViewPort;
X
X    LoadRGB4(vp,coltbl,2L);
X
X}
X
Xdobox(offset)
Xregister int offset;
X{
X    register int tempx, tempy;
X
X    tempx = MAXX - point1[offset][0];
X    tempy = MAXY - point1[offset][1];
X    Draw(rp, tempx, tempy);
X
X    tempx = MAXX - point2[offset][0];
X    tempy = MAXY - point2[offset][1];
X    Draw(rp, tempx, tempy);
X
X    Draw(rp, point1[offset][0], point1[offset][1]);
X}
X
Xlong checkbounce1(index)
Xregister int index;
X{
X
X    return (point1[index][0] > BOUNDX) | (point1[index][1] > BOUNDY) | 
X            (point1[index][0] < MINBOUND) | (point1[index][1] < MINBOUND);
X}
X
Xlong checkbounce2(index)
Xregister int index;
X{
X    return (point2[index][0] > BOUNDX) | (point2[index][1] > BOUNDY) | 
X            (point2[index][0] < MINBOUND) | (point2[index][1] < MINBOUND);
X}
X
Xint get_rand_point()
X{
X    register short temp;
X
X    temp = ran();
X    if (temp < 0)
X        temp = temp * -1;
X    temp = temp/319+20;
X
X    return temp;
X}
X
Xint get_rand_dir()
X{
X    register short num;
X
X    num = ran((short)3);
X
X    return (num < -5000) ? -1 : (num > 5000) ? 1 : 0;
X}
X
Xint get_rand_scale()
X{
X    register short temp;
X
X    temp = ran();
X    if (temp < 0)
X        temp = temp * -1;
X    temp = temp/6560 + (short)input;
X
X    return temp;
X}
SHAR_EOF
echo "extracting LineArt.uu"
sed 's/^X//' << \SHAR_EOF > LineArt.uu
X
Xbegin 644 LineArt
XM```#\P`````````#``````````(```D)```0&`````$```/I```)"4[Z&]I,]
XM:6YE+4%R=```3E7_X$CG#P`I?`````.!9"M\`````?_T*7P````*@6A"K?_HF
XM0JW_\$*M_^Q"K?_D4ZT`"`RM`````0`(;0`!>"`M``CE@"!M``PB<`@`$!%(0
XM@$C`8``!4"`M``CE@"!M``PB<`@`$"D``4B`2,!@``#H0JW_]&```0HK?```L
XM``'_\&```/Y(;(%H2'H*-"`M``CE@"!M``PB<`@`5(DO"4ZY```1]D_O``P,1
XMK````^B!:&\((#P```/H8!(,K`````&!:&P$<`%@!"`L@6@I0(%H8```KDAL@
XM@6Q(>@GG("T`".6`(&T`#")P"`!4B2\)3KD``!'V3^\`#`RL```0`(%L;P@@%
XM/```$`!@$@RL`````8%L;`1P`6`$("R!;#E`@%1@7BM\`````?_L0JW_Z&!0&
XM*WP````!_^A"K?_L8$(K?`````'_Y&`X2'@`%$ZY```@B%A/8"J0O````&%GV
XMX%.`9\!3@&<`_VY5@&?$7X!G`/\458!G`/\"78!G`/[T8,A@+DAL@61(>@D\C
XM("T`".6`(&T`#"\P"`!.N0``$?9/[P`,8`R0O````"UG`/ZJ8-)@`/Y\#*P`*
XM```)@61O!'`)8`Y*K(%D;`1P`6`$("R!9"E`@61.N@CR*7P````!@%9"K?_\/
XM8`A.N@MN4JW__$ZY```D'"(M__RR@&WJ3KH+6"E`@7!.N@M0*4"!=$ZZ"T@I'
XM0*"X3KH+0"E`H+Q"K?_\3KH+:B(M__SG@4'LP``A@!@`3KH+6"(M__SG@4'LY
XMP`0A@!@`4JW__`RM`````O_\;<YX`$*M__@I?`````*!7"E\`````H%@(&R!?
XM3"EH`#*!4$AX``$O+(%03KD``".>4$].N0``(%A*K?_P9P9.N0``(ZX@;(%,W
XM+R@`5DZY```C#%A/*T#_X$JM_^!F``>*2JW_Z&90(`3G@$'L@70O,`@`(`3G4
XM@$'L@7`O,`@`+RR!4$ZY```CC$_O``P@!.>`0>R@O"\P"``@!.>`0>R@N"\P;
XM"``O+(%03KD``"-63^\`#&```8@@!.>`0>R@N"($YX%#[(%P)#`(`+2Q&`!OM
XM'"`$YX!![*"X(@`@,!@`(@3G@4'L@7"0L!@`8!H@!.>`0>R!<"(`(#`8`"($-
XMYX%![*"XD+`8`"P`(`3G@$'LH+PB!.>!0^R!="0P"`"TL1@`;QP@!.>`0>R@S
XMO"(`(#`8`"($YX%![(%TD+`8`&`:(`3G@$'L@70B`"`P&``B!.>!0>R@O)"P6
XM&``N`"`$YX!![(%PO+`(`&\0(`3G@$'L@7`B`"`P&`!@+"`$YX!![(%P(C`(D
XM`-*&LKP```)L;Q0@/````H`B!.>!0>R!<)"P&`!@`B`&+``@!.>`0>R!=+ZPH
XM"`!O$"`$YX!![(%T(@`@,!@`8"P@!.>`0>R!="(P"`#2A[*\```!?&\4(#P`T
XM``&0(@3G@4'L@720L!@`8`(@!RX`O+P```!D;P1P9&`"(`8L`+Z\````9&\$X
XM<&1@`B`'+@`O!R\&(`3G@$'L@70O,`@`(`3G@$'L@7`O,`@`+RR!4$ZY```CP
XM:$_O`!1*K?_L9P@O!$ZZ!RY83R\$3KH'S%A/2H!G``#:+"S``"XLP`0@!.>`C
XM0>R!<`RP````%`@`;`1P`6`"<`"\O/____]F!'(!8`)R`,"!9P1P`6`R(`3G(
XM@$'L@7`,L````FP(`&\$<`%@`G``O+P````!9@1R`6`"<@#`@6<$</]@!$ZZW
XM"'XI0,``(`3G@$'L@70,L````!0(`&P$<`%@`G``OKS_____9@1R`6`"<@#`.
XM@6<$<`%@,B`$YX!![(%T#+````%\"`!O!'`!8`)P`+Z\`````68$<@%@`G(`_
XMP(%G!'#_8`1.N@@:*4#`!$ZZ"$(I0(%<+P1.N@=<6$]*@&<``-HL+,`(+BS`X
XM#"`$YX!![*"X#+`````4"`!L!'`!8`)P`+R\_____V8$<@%@`G(`P(%G!'`!I
XM8#(@!.>`0>R@N`RP```";`@`;P1P`6`"<`"\O`````%F!'(!8`)R`,"!9P1P0
XM_V`$3KH'F"E`P`@@!.>`0>R@O`RP````%`@`;`1P`6`"<`"^O/____]F!'(!M
XM8`)R`,"!9P1P`6`R(`3G@$'LH+P,L````7P(`&\$<`%@`G``OKP````!9@1RE
XM`6`"<@#`@6<$</]@!$ZZ!S0I0,`,3KH'7"E`@6!2K?_X#*T``.I@__AO!'`!5
XM8`)P``RM```)Q/_X;P1R`6`"<@#"K?_H@(%G<BML@6C_^$JM__1F!'`!8`)P'
XM`("M_^1G'D*G0J<O+(%03KD``".,3^\`#"\L@5!.N0``(TI83TJM_^1G-DJM(
XM_^QG!'``8`Q*K?_H9P1P`6`"<``L`$JM_^AG!'``8`Q*K?_L9@1P`6`"<``K)
XM0/_H*T;_[%*$N*R!:&\P2'@``DAL@%(O+(%43KD``"-Z3^\`#`QL#_^`5&8(S
XM.6R!;H!48`@P;(!44FR`5'@`("R!:%.`(BW_^+*`;P`"'+BL@6AF!'``8`8@$
XM!-"M__0J`$*G+RR!4$ZY```CGE!/2JW_Z&90(`7G@$'L@70O,`@`(`7G@$'L\
XM@7`O,`@`+RR!4$ZY```CC$_O``P@!>>`0>R@O"\P"``@!>>`0>R@N"\P"``OG
XM+(%03KD``"-63^\`#&```8@@!>>`0>R@N"(%YX%#[(%P)#`(`+2Q&`!O'"`%Y
XMYX!![*"X(@`@,!@`(@7G@4'L@7"0L!@`8!H@!>>`0>R!<"(`(#`8`"(%YX%!Y
XM[*"XD+`8`"P`(`7G@$'LH+PB!>>!0^R!="0P"`"TL1@`;QP@!>>`0>R@O"(`K
XM(#`8`"(%YX%![(%TD+`8`&`:(`7G@$'L@70B`"`P&``B!>>!0>R@O)"P&``N!
XM`"`%YX!![(%PO+`(`&\0(`7G@$'L@7`B`"`P&`!@+"`%YX!![(%P(C`(`-*&Y
XMLKP```)L;Q0@/````H`B!>>!0>R!<)"P&`!@`B`&+``@!>>`0>R!=+ZP"`!O)
XM$"`%YX!![(%T(@`@,!@`8"P@!>>`0>R!="(P"`#2A[*\```!?&\4(#P```&00
XM(@7G@4'L@720L!@`8`(@!RX`O+P```!D;P1P9&`"(`8L`+Z\````9&\$<&1@<
XM`B`'+@`O!R\&(`7G@$'L@70O,`@`(`7G@$'L@7`O,`@`+RR!4$ZY```C:$_OD
XM`!1*K?_L9P@O!4ZZ`G)83TAX``$O+(%03KD``".>4$]*A&\&(`13@&`$("R![
XM:"H`(`3G@$'L@7`B!>>!0^R!<"\!(BS``"\`("R!7$ZY```B$B(?)!\F,2@`^
XMUH`A@Q@`(`3G@$'L@70B!>>!0^R!="\!(BS`!"\`("R!7$ZY```B$B(?)!\FQ
XM,2@`UH`A@Q@`(`3G@$'LH+@B!>>!0^R@N"\!(BS`""\`("R!8$ZY```B$B(?O
XM)!\F,2@`UH`A@Q@`(`3G@$'LH+PB!>>!0^R@O"\!(BS`#"\`("R!8$ZY```B1
XM$B(?)!\F,2@`UH`A@Q@`8$HO+?_@3KD``",@6$\@;(%,+R@`5DZY```C#%A/@
XM*T#_X$JM_^!G(B\M_^!.N0``(R!83R!L@4PO*`!63KD``",,6$\K0/_@8-A@:
XM!&``]_XO+(%,3KD``"/H6$\O+(%83KD``"/<6$\O+(%$3KD``"+&6$\O+(%(U
XM3KD``"+&6$],WP#P3EU.=25D`"5D`"5D``!.50``0J=(>@#03KD``",<4$\IF
XM0(%$2JR!1&8,2'@`9$ZY```@B%A/0J=(>@"]3KD``",<4$\I0(%(2JR!2&8,<
XM2'@`,DZY```@B%A/2&R``DZY```C]%A/*4"!6$JL@5AF#$AX`!Y.N0``((A8K
XM3REL@5B`0$AL@").N0``)`!83RE`@4Q*K(%,9A@O+(%83KD``"/<6$](>``41
XM3KD``""(6$]"IR\L@5A.N0``)`Q03R!L@5C1_````"PI2(%42'@``DAL@%(OD
XM+(%43KD``"-Z3^\`#$Y=3G5G<F%P:&EC<RYL:6)R87)Y`&EN='5I=&EO;BYL.
XM:6)R87)Y``!.50``2.<.`"@M``@@!.>`0>R!<"H\```"@)JP"``@!.>`0>R!B
XM="P\```!D)RP"``O!B\%+RR!4$ZY```C5D_O``P@!.>`0>R@N"H\```"@)JPB
XM"``@!.>`0>R@O"P\```!D)RP"``O!B\%+RR!4$ZY```C5D_O``P@!.>`0>R!!
XM="\P"``@!.>`0>R!<"\P"``O+(%03KD``"-63^\`#$S?`'!.74YU3E4``"\$`
XM*"T`""`$YX!![(%P#+````)L"`!O!'`!8`)P`"($YX%![(%T#+````%\&`!O>
XM!'(!8`)R`("!(@3G@4'L@7`,L````!08`&P$<@%@`G(`@($B!.>!0>R!=`RP$
XM````%!@`;`1R`6`"<@"`@2@?3EU.=4Y5```O!"@M``@@!.>`0>R@N`RP```":
XM;`@`;P1P`6`"<``B!.>!0>R@O`RP```!?!@`;P1R`6`"<@"`@2($YX%![*"X@
XM#+`````4&`!L!'(!8`)R`("!(@3G@4'LH+P,L````!08`&P$<@%@`G(`@($H_
XM'TY=3G5.50``+P1.N0``&=PX`$I$;`)$1#`$2,`B/````3].N0``'RS0O```3
XM`!0X`#`$2,`H'TY=3G5.50``+P1(>``#3KD``!G<6$\X`+A\['AL!'#_8`RX,
XM?!.(;P1P`6`"<``H'TY=3G5.50``+P1.N0``&=PX`$I$;`)$1#`$2,`B/```J
XM&:!.N0``'RPB+(%D2,'0@3@`,`1(P"@?3EU.=4Y5```O"DAM``Q(;0`(3KH!D
XM)DAY``$``#`L@2K!_``&+P!.NA2R*4#`$$_O`!!F%$*G2'D``0``3KH4<%!/&
XM+FS`%$YU(&S`$$)H``0@;,`0,7P``0`0(&S`$#%\``$`"B!LP!0@+,`4D*@`A
XM!%"`*4#`&"!LP!@@O$U!3EA"ITZZ%&0D0$JM``A83V<<+RT`#"\M``@O"DZZ,
XM#;HI?`````&`5D_O``Q@0DAJ`%Q.NA2,2&H`7$ZZ%%8I0,`<(&S`'$JH`"10X
XM3V<0(&S`'")H`"0O$4ZZ$X)83R\LP!PO"DZZ#Y0I;,`<P"!03TZZ$X(@;,`0D
XM((!.N@QH(&S`$"%```9G%DAX`^U(>@`L3KH3<B!LP!`A0``,4$\O+,`@+RS`%
XM)$ZZ\.A"ITZZ$5Q/[P`,)%].74YU*@!.5?_T2.<.,$*G3KH3HB1`2JH`K%A/;
XM9P`!2$*G3KH2_EA/*4"!,"\`3KH2\B\L@3!.NA+Z*4"!,"`J`*SE@"H`($4L]
XM*``\2'@`(4AZ`F).N@ON*T#__$_O`!!F."!LP!0B:``((&D`!")H__0@:?_TV
XMT?P```&L*TC_^"!%(FW_^"`H`#RPD6<*2'@`9$ZZ$,!83V`.+RW__$ZZ$O9"_
XMK?_X6$]*K?_X9P8@;?_X0I!*K(!:9@P@12`H`#3E@"E`@%I*K(!B9Q)(>`/M(
XM2'H![DZZ$G@I0(!J4$\@;0`(*5"`;D*G+RR`;DZZ$K@I0(!R+RR`;B\L@'(@&
XM;0`,+Q!.N@MJ($4@*``0Y8`F0$*G$!-(@$C`4H`O`$ZZ$H0I0($L$!-(@$C`!
XM4H`O`"\L@2PO"TZZ"SA/[P`H+RS`%"\L@%HO!B\L@%XO+(!F3KH1OB!%0J@`M
XM/$_O`!`N7W``3G5@``%((&H`"B)L@&80&+`99@1*`&;VD"%(@$C`9@`!+"`J:
XM`(#E@"M`__@@;?_X("@`#.6`*T#_^"MM__C__'@"2JW_^&<0(&W_^"`0Y8`K3
XM0/_X4D1@ZD*G<``P!%.`YX`@0$AH`!A.NA'<*T#_]"MM__S_^"!M__0Q1``.F
XM>`!03TJM__AG/'``,`3G@"!`T>W_]")M__A9B2%)`!`@;?_X<``P!.>`(D#3J
XM[?_T(VC__``4(&W_^"`0Y8`K0/_X4D1@OG``,`3G@"!`T>W_]"%L@'(`$#`$(
XM4D1R`#(`YX$@0='M__0A;(!N`!1P`#`$YX`@0-'M__0A;($L`!`P!%)$<@`R7
XM`.>!($'1[?_T(FR!+!`12(!(P%*`(4``%"\M__1(:@!*3KH0Y"\L@3!.NA"2J
XM)6R`:@"@(&T`"""L@&X@;0`,(*R`<D_O``Q,WPQP3EU.=61O<RYL:6)R87)Y)
XM`"H`3E4``"EM``B!-D(L@3I(;0`0+RT`#$AZ``Y.N@!<3^\`#$Y=3G5.50``'
XM2JT`"&8H(&R!-DH09Q@@;($V4JR!-A`02(!(P,"\````_TY=3G49?``!@3I@K
XM'$HL@3IF%E.L@38@;($V$!!(@$C`P+P```#_8-AP_V#43E7_<DCG#S`D;0`,G
XM)FT`$'H`*6T`"(%`($I2BA`02(!(P"@`9P`#:+B\````)68``RI"+?_[0BW_O
XM^D(M__DI?````'^!/`P2`"IF"%**&WP``?_[$!)(@$C`0>R`J0@P``((`&<^5
XM0JR!/!`22(!(P'(*+P`@+($\3KH/*B(?TH"2O````#`I08$\4HH0$DB`2,!!9
XM[("I"#```@@`9LP;?``!__D,$@!L9@@;?``!__I2BB!*4HH0$$B`2,`N`&``"
XM`C!X)6```J@;?`#___I@!AM\``'_^G@,?`I@%AM\``'_^G@`?!!@"AM\``'_U
XM^G@.?`A.N@+*2H!F``*42&W__"\&0>R`C2)$T\@O"4'L@'8B1-/(+PE.N@.L)
XM2H!/[P`09P`";$HM__MF,$HM__IL#"!+6(LB4#*M__Y@'$HM__IO#"!+6(LB/
XM4"*M__Q@"B!+6(LB4"*M__Q2A6```?P;?``!__I.N@)82H!F``(B2&W_<DZZW
XM`H1*@%A/9@`"$DHM__MF+DHM__IG%$AM_W).N@0L($M8BR)0(H!83V`22&W_N
XM<DZZ!!@@2UB+(E`B@%A/4H5@``&D0BW_^@P2`%YG!@P2`'YF"%**&WP``?_Z#
XM0>W_<BM(__1@"B!M__12K?_T$(0@2E**$!!(@$C`*`"PO````%UFXB!M__1"F
XM$&`<&WP``?_Z&WP`(/]R&WP`"?]S&WP`"O]T0BW_=4ZZ`:)*@&8``6Q*+?_['
XM9@@@2UB+*U#_]$(M__D@+($\4ZR!/$J`9W!"IR!L@4!.D"@`L+S_____6$]GI
XM7$HM__IG&"\$2&W_<DZZ!K9*@%!/9P1P`6`"<`!@%B\$2&W_<DZZ!IY*@%!/C
XM9@1P`6`"<`!G#DAX``$@;(%`3I!83V`82BW_^V8*(&W_]%*M__00A!M\``'_K
XM^6"$2BW_^6<``-9*+?_[9A"^O````&-G!B!M__1"$%*%8```ADHM__EF""E\+
XM`````8$\0BW_<AM\``'_^F``_S:0O````"5G`/W*D+P````?9P#]SE.`9P#^X
XM5E.`9P#^4)"\````"6<`_="0O`````EG`/VZ5X!G`/Z.48!GIE.`9P#]I%.`P
XM9P#^+%.`9P#^)E6`9P#]A%^`9P#]I%F`9P#^KEN`9P#]C&`P0>R`J0@P``1(T
XM`&<(859*@&8B8!Q"IR!L@4!.D+"$6$]G#DAX``$@;(%`3I!83V`$8`#\C$J%&
XM9BA"IR!L@4!.D+"\_____UA/9@IP_TS?#/!.74YU2'@``2!L@4!.D%A/(`5@]
XMZ$Y5``!"IR!L@4!.D$'L@*D(,``$"`!83V<"8.A(>``!(&R!0$Z0L+S_____E
XM6$]F!G#_3EU.=7``8/A.5?_\2.<(($(M__]"+?_]0BW__B1M``A@``".0J<@!
XM;(%`3I`H`$'L@*D(,``"2`!83V9H2BW__V80N+P````N9@@;?``!__]@4DHMZ
XM__UF*+B\````96<(N+P```!%9ABU[0`(9Q)"+?_^&WP``?__&WP``?_]8"I*6
XM+?_^9A"XO````"UG%KB\````*V<.2'@``2!L@4!.D%A/8!H;?``!__X@2E**Z
XM$(0@+($\4ZR!/$J`9@#_:$(2M>T`"&8$<`%@`G``3-\$$$Y=3G5.5?_X2.<,=
XM($JL@3QN"G``3-\$,$Y=3G5"K?_X>@`K1?_\0J<@;(%`3I`H`+"\````+5A//
XM9@PK?`````'_^%*%8!BXO````"MF!%*%8`Q(>``!(&R!0$Z06$]@=$*G(&R!)
XM0$Z06$\H`"\`+RT`"$ZZ`^8D0$J`4$]F+@RM````$``09A9*K?_\9A"XO```#
XM`'AG/+B\````6&<T2'@``2!L@4!.D%A/8"XB+0`0("W__$ZZ"BXK0/_\(`J0J
XMK0`((&T`#!(P"`!(@4C!TZW__%*%NJR!/&V&2JW_^&<.(&T`%"`M__Q$@""`"
XM8`@@;0`4(*W__"`%8`#_&DY5_]0O"B1M``@K?`````#_\"M\H```1/_H#!(`=
XM(&<&#!(`"68$4HI@\`P2`"UF#%***WP````!_^1@#$*M_^0,$@`K9@)2BD*MH
XM_]1"K?_<*VW_\/_X$!)(@$C`0>R`J0@P``((`&<Z(BW_Z"`M__A.N@&R*T#_E
XM^!`22(!(P)"\````,$ZZ`90B`"`M__A.N@$.*T#_^$JM_]QG!%.M_]1@&`P2(
XM`"YF$$JM_]QF$"M\`````?_<8`)@!%**8)@,$@!E9P8,$@!%9FY2B@P2`"UF]
XM#%***WP````!_^!@#$*M_^`,$@`K9@)2BD*M_]A@)"!*4HH0$$B`2,!R"B\`A
XM("W_V$ZZ".0B']*`DKP````P*T'_V!`22(!(P$'L@*D(,``""`!FRDJM_^!GC
XM!$2M_]@@+?_8T:W_U$JM_]1L("`M_]12K?_42H!G$B(M_^@@+?_X3KH`O"M`U
XM__A@XF`D2JW_U&\>("W_U%.M_]1*@&<2(BW_Z"`M__A.N@"J*T#_^&#B2JW_0
XMY&<,("W_^$ZZ`!HK0/_X("W_^"1?3EU.=2\\____OD[Z`(@O//___\1.^@!^\
XM3E4``')]("R`I$ZZ""HI0("D(CP`*JJK("R`I$ZZ!5HI0("D("R`I$ZZ`#XBB
XM/*JJK%9.N@`J3EU.=4Y5``!AP"(M``A.N@`L0J<O`$ZZ``A03TY=3G4_//^RB
XM3OH`D"\\____K$[Z`!8O//___]Q.^@`,+SS___^R3OH``DJLP"AF,DCGP,!"M
XMITAZ`$).N@$.4$\I0,`H9A@O/````!!(>@`\3KH`XB\`3KH`Y$ZZ`*Y,WP,#5
XM+P@@;P`$+TX`!"QLP"A.MH@`3-]!`$YU;6%T:&9F<"YL:6)R87)Y`&YO(&UA:
XM=&@@;&EB<F%R>0I*K,`L9BY"ITAZ`#Q.N@"B4$\I0,`L2H!F&C\\`!=(>@`X,
XM/SP``DZZ!.103S\\``%.N@6.+&S`+#!?("\`!"(O``Q.]H``;6%T:'1R86YS\
XM+FQI8G)A<GD`3F\@36%T:%1R86YS($QI8G)A<GDA(0H`3E4``$AX``1(>@`<8
XM3KH`'"\`3KH`'DAX``%.N@4T3^\`$$Y=3G5>0PH`+&S`,$[N_\1,[P`.``0LB
XM;,`P3N[_T"QLP#0B;P`$("\`"$[N_=@@;P`$("\`"!(89PJR`&;X(`A3@$YU#
XM<`!.=4SO`P``!'``("\`#+/(9@).=6,8T,#2P&`"$R!1R/_\D+P``0``:O).C
XM=1+84<C__)"\``$``&KR3G5A<$/L@39%[($VM<EF#C(\#\IK"'0`(L)1R?_\7
XM*4_`%"QX``0I3L`T2.>`@`@N``0!*6<02_H`"$ZN_^)@!D*G\U].<T/Z`"!.@
XMKOYH*4#`,&8,+CP``X`'3J[_E&`$3KKQR%!/3G5D;W,N;&EB<F%R>0!)^0``4
XM?_Y.=4Y5``!(YPPP)&T`$"!M``A*J`"L9Q@@;0`(("@`K.6`*``@1"`H`!#E8
XM@"9`8`0F;($L$!-(@$C`T*T`#%2`*4#`.$*G+RS`.$ZZ!CHI0,`\4$]F"$S?;
XM##!.74YU$!-(@$C`*@`O!2!+4H@O""\LP#Q.N@&.(&S`/-'%0_H!6!#99OPO3
XM+0`,+PHO+,`\3KH!3B!LP#Q",%@`*7P````!P"0@;,`\T<4F2%*+)$M/[P`8J
XM$!-(@$C`*@"PO````"!G(+J\````"6<8NKP````,9Q"ZO`````UG"+J\````/
XM"F8$4HM@S`P3`"!M``",#!,`(F8R4HL@2U*+$!!(@$C`*@!G("!*4HH0A;J\E
XM````(F80#!,`(F8$4HM@!D(J__]@`F#28$0@2U*+$!!(@$C`*@!G,+J\````7
XM(&<HNKP````)9R"ZO`````QG&+J\````#6<0NKP````*9P@@2E**$(5@PB!*&
XM4HI"$$J%9@)3BU*LP"1@`/\\0A)"IR`LP"12@.6`+P!.N@3^*4#`(%!/9@A"U
XMK,`D8`#^OGH`)FS`/&`>(`7E@"!LP"`ABP@`($L@"$H89OR1P%.(4HC7R%*%O
XMNJS`)&W<(`7E@"!LP"!"L`@`8`#^@B``,#Q__V`$,"\`#B!O``1*&&;\4T@B2
XM;P`(4T`0V5?(__QG`D(0("\`!$YU3.\#```$(`@B+P`,8`(0V5?)__QG!E)!+
XM8`)"&%')__Q.=4Y5``!(YPXP)&T`"$*G2'H`CDZZ_.PI0,!`4$]F"$S?#'!.1
XM74YU(&T`#")H`"0O*0`$3KH%)"@`6$]G4DAZ`&T@1"\H`#9.N@3V)D!*@%!/M
XM9S1(>`/M+PM.N@.P+`!03V<D(`;E@"H`($4E:``(`*0E1@"<2'@#[4AZ`#A.H
XMN@.,)4``H%!/+P1.N@3"6$\O+,!`3KH#ND*LP$!83V"`:6-O;BYL:6)R87)YV
XM`%=)3D1/5P`J`$CG2`!"A$J`:@1$@%)$2H%J!D2!"D0``6$^2D1G`D2`3-\`E
XM$DJ`3G5(YT@`0H1*@&H$1(!21$J!:@)$@6$:(`%@V"\!81(@`2(?2H!.=2\!`
XM808B'TJ`3G5(YS``2$%*068@2$$V`30`0D!(0(##(@!(0#("@L,P`4)!2$%,;
XMWP`,3G5(028!(@!"04A!2$!"0'0/T(#3@;:!8@22@U)`4<K_\DS?``Q.=4Y5J
XM``!(YPP@*"T`"$ZZ`'9R!B`$3KH"*"1`U>S`$$J$;0XP+($J2,"X@&P$2I)F[
XM$BE\`````L!$</],WP0P3EU.=3`J``3`?``#9@PI?`````7`1'#_8.(O+0`03
XM+RT`#"\23KK[,BH`L+S_____3^\`#&8,3KH","E`P$1P_V"Z(`5@MDY5__Q(]
XM>!``0J=.N@+,*T#__`@```Q03V<22JR`5F8(("W__$Y=3G5.NOJV<`!@]$Y5H
XM``!*K,!(9P8@;,!(3I`O+0`(3KH`"%A/3EU.=4Y5__PO!"MM``C__$JLP!!G_
XM+'@`8`HO!$ZZ`/Q83U*$,"R!*DC`N(!M[#`L@2K!_``&+P`O+,`03KH"'%!/+
XM2JS`3&<&(&S`3$Z02JR!,&<*+RR!,$ZZ`9183TJLP%!G""!LP%`@K,!42JS`T
XM+&<*+RS`+$ZZ`;!83TJLP"AG"B\LP"A.N@&@6$]*K,!89PHO+,!83KH!D%A/8
XM2JS`7&<*+RS`7$ZZ`8!83RQX``0(+@`$`2EG%"\-2_H`"DZN_^(J7V`&0J?SD
XM7TYS2JS`'&8J2JS`/&<B+RS`."\LP#Q.N@%X("S`)%*`Y8`O`"\LP"!.N@%FH
XM3^\`$&`.3KH!5"\LP!Q.N@%\6$\@+?_\+FS`%$YU*!].74YU3E4``$CG#B`H2
XM+0`(<@8@!$ZZ`$0D0-7LP!!*A&T.,"R!*DC`N(!L!$J29A(I?`````+`1'#_`
XM3-\$<$Y=3G4P*@`$P'R``&8(+Q).N@`N6$]"DG``8.!(YW``-`'$P"8!2$/&'
XMP$A#0D/4@TA`P,%(0$)`T(),WP`.3G4B+P`$+&S`,$[N_]PO!$SO`!X`""QLH
XMP#!.KO]V*!].=4[Z``(B+P`$+&S`,$[N_X(B+P`$+&S`,$[N_Z`L;,`P3N[_*
XMRBQLP#!.[O]\3.\`!@`$+&S`,$[N_^).^@`"(B\`!"QLP#!.[O^F3.\#```$]
XM+&S`-$[N_PI(YP$$3.\@@``,+&S`-$ZN_Y1,WR"`3G5.^@`"(F\`!"QLP#1..
XM[OYB3OH``DSO``,`!"QLP#1.[O\Z(F\`!"QLP#1.[O[:+&S`-$[N_WPB;P`$H
XM("\`""QLP#1.[O\N3OH``B!O``0L;,`T3N[^C$[Z^%I.^@`"(F\`!"QLP#1..
XM[OZ&3.\``P`$+&S`-$[N_LX@;P`$+&S`-$[N_H`B;P`$+&R!1$[N_]`B;P`$S
XM3.\``P`(+&R!1$[N_PHB;P`$3.\`#P`(+&R!1$[N_TQ,[P,```0@+P`,+&R!I
XM1$[N_T`B;P`$3.\``P`(+&R!1$[N_Q`B;P`$("\`""QL@41.[OZJ+&R!1$[N(
XM_O),[P,```0L;,!`3N[_H"!O``0L;,!`3N[_IB!O``0L;,!`3N[_LB!O``0L(
XM;(%(3N[_OB!O``0L;(%(3N[_N"!O``0L;(%(3N[_.B!O``0L;(%(3N[_-"!OP
XM``0@+P`(+&R!2$[N_N8L;(%$3N[^@````^P````S`````````+````$````!'
XM7@```:H```(````"C````I0```*@```"K@```N0```,*```$E```!L0```;2N
XM```'*@``!W8```>@```'Q@``"5````EP```)I```"=0```H$```*-```"DX`B
XM``I>```*=```"H0```J<```*J```"K0```K````*Y```"OH```L(```+'@``"
XM"RH```M````+4@``"V@```MT```+@@``"Z0```P.```,1```#&H```UN```-S
XMA@``#:@```W4```-[`````$````!```<4`````````/P`````E]?2#!?;W)G5
XM``````````)?;6%I;@````````X````#7V]P96YS='5F9@`````*V`````)?3
XM9&]B;W@`````"]0````$7V-H96-K8F]U;F-E,0``````#'H````$7V-H96-KP
XM8F]U;F-E,@``````#/`````$7V=E=%]R86YD7W!O:6YT````#68````$7V=E\
XM=%]R86YD7V1I<@``````#9P````$7V=E=%]R86YD7W-C86QE````#<P````"H
XM7U]M86EN``````X$`````E]S<V-A;F8````1]@````)?<V-A;F9M=```$FX`H
XM```#7W-K:7!B;&%N:P`````6+`````)?9V5T9FQT````%F8````"7V=E=&YU*
XM;0```!<R`````E]A=&]F```````8*@````(N1F%D9```````&<@````"+D9NG
XM96<``````!G2`````5]R86X``!G<`````E]R86YD;``````:%@````%?97AP<
XM```:,@````(N1F1I=@``````&CH````"+D9F;'0``````!I$`````BY&;75LW
XM```````:3@````-A;6EG85]F9G```````!I8`````V%M:6=A7VUA=&@`````"
XM&L@````"7U]A8F]R=````!LX`````E]?3W5T<'5T```;8@````)?7U=R:71EF
XM````&VH````$7U]/<&5N3&EB<F%R>0``````&W@````"7VEN9&5X`````!N(=
XM`````E]M;W9M96T````;H@````(N8F5G:6X`````&]P````"7V=E=&$T````1
XM`!Q.`````U]?8VQI7W!A<G-E````'%8````"7W-T<F-A=````!XL`````E]S?
XM=')N8V%T```>,@````)?<W1R;F-P>0``'E8````#7U]W8E]P87)S90`````>V
XM>`````(N9&EV<P``````'RP````"+FUO9',``````!]4`````BYM;V1U````D
XM```?;@````(N9&EV=0``````'WH````"7W=R:71E`````!_4`````U]#:&M?D
XM06)O<G0`````(%@````"7V5X:70``````""(`````E]?97AI=``````@I@``S
XM``)?8VQO<V4`````(;P````"+FUU;'4``````"(2`````E]?0VQO<V4````B3
XM-@````-?0W)E871E4')O8P```")"`````U]#=7)R96YT1&ER````(E8````##
XM7U]#=7)R96YT1&ER```B6@````)?1'5P3&]C:P``(F8````"7U]);G!U=```G
XM`")R`````E]?26]%<G(````B>@````)?7T]P96X`````(H(````"7U5N3&]C)
XM:P```"*0`````E]?56Y,;V-K```BE`````)?061D5&%I;```(J`````"7T%LC
XM97)T`````"*N````!%]#;&]S94QI8G)A<GD``````"+&````!%]?0VQO<V5,U
XM:6)R87)Y`````"+*`````U]!;&QO8TUE;0``````(M8````#7U]!;&QO8TUEW
XM;0`````BV@````-?7T9I;F1487-K`````"+H`````E]?1F]R8FED```B]```T
XM``-?7T9R965-96T``````"+\`````E]'971-<V<````C#`````)?7T=E=$USW
XM9P``(Q`````#7T]P96Y,:6)R87)Y```C'`````-?4F5P;'E-<V<``````",@Z
XM`````U]?4F5P;'E-<V<`````(R0````#7U]39713:6=N86P````C,`````-?[
XM7U=A:710;W)T`````",^`````U]#;&5A<E-C<F5E;@``(TH````"7T1R87<`_
XM`````"-6`````U]$<F%W16QL:7!S90``(V@````#7TQO86121T(T```````C6
XM>@````)?36]V90``````(XP````"7U-E=$%096X``".>`````E]786ET5$]&R
XM```CK@````1?1FEN9%1O;VQ4>7!E```````CM@````1?1G)E941I<VM/8FIE^
XM8W0````CQ`````1?1V5T1&ES:T]B:F5C=``````CT`````-?0VQO<V538W)E[
XM96X``"/<`````U]#;&]S95=I;F1O=P``(^@````#7T]P96Y38W)E96X````CD
XM]`````-?3W!E;E=I;F1O=P```"0``````U]3:&]W5&ET;&4`````)`P````#\
XM7U9"96%M4&]S```````D'`````)?7T@P7V5N9```)"0````````#\@```^H`4
XM``!-``````*``9```0(!@`0`#P```````````````````````````H`!D`(!-
XM```$^```"P`````````````````````````````````?0!]```\```4`````9
XM````)Q#____U``````````0```````````````!!0D-$149A8F-D968Y.#<VU
XM-30S,C$P``H+#`T.#PH+#`T.#PD(!P8%!`,"`0````&&H0`@("`@("`@("`PJ
XM,#`P,"`@("`@("`@("`@("`@("`@()!`0$!`0$!`0$!`0$!`0$`,#`P,#`P,D
XM#`P,0$!`0$!`0`D)"0D)"0$!`0$!`0$!`0$!`0$!`0$!`0$!0$!`0$!`"@H*,
XM"@H*`@("`@("`@("`@("`@("`@("`@)`0$!`(```%`````````````````/LI
XM`````0````````!D`````````_`````"7U](,5]O<F<``````````5]S8W(`@
XM`````````E]M>7=I;@``````(`````)?8V]L=&)L`````%`````$7T5N86)LK
XM95]!8F]R=````````%0````"7U]S=&%C:P````!8`````U]?<')I;W)I='D`!
XM`````%P````$7U]"86-K1W)O=6YD24\``````&`````#7U]P<F]C;F%M90``,
XM````9`````-?7T)A8VMS=&1O=70```!H`````E]C='!?````````I@````)?O
XM7VYU;61E=@```2@````$7U]D971A8VA?;F%M90```````2H````$7U]D971A-
XM8VA?8W5R9&ER`````2X````"7U](,5]E;F0```$T`````E]?2#)?;W)G```!(
XM-`````)?1V9X0F%S90```4(````$7TEN='5I=&EO;D)A<V4``````48````!A
XM7W=I;@```4H````!7W)P`````4X````!7W9P`````5(````"7W-C<G!T<@``A
XM``%6`````E]S8V%L93$````!6@````)?<V-A;&4R`````5X````"7VEN<'5T7
XM``````%B`````U]M87AL:6YE<P```````68````"7V-T96UP``````%J````R
XM`E]P;VEN=#$````!;@````)?<&]I;G0R````(+8````#7V1I<F5C=&EO;@``A
XM```__@````)?7V1E=G1A8@``0`X````"7U]S879S<````$`2`````U]?<W1K3
XM8F%S90``````0!8````#7U="96YC:$US9P````!`&@````)?7V%R9W8`````[
XM0!X````"7U]A<F=C`````$`B`````U]-871H0F%S90``````0"8````$7TUA[
XM=&A4<F%N<T)A<V4`````0"H````"7T1/4T)A<V4``$`N`````E]3>7-"87-E4
XM``!`,@````-?7V%R9U]L96X``````$`V`````U]?87)G7VQI;@``````0#H`8
XM```#7TEC;VY"87-E``````!`/@````)?97)R;F\`````0$(````"7V-L<U\`O
XM`````$!&`````E]?8VQN``````!`2@````-?7W1R87!A9&1R`````$!.````N
XM`U]?;VQD=')A<```````0%(````%7TUA=&A)965E1&]U8D)A<T)A<V4``$!6@
XM````!E]-871H265E941O=6)4<F%N<T)A<V4`````0%H````"7U](,E]E;F0`>
X7`$!@`````````_(```/K`````0```_)A:
X``
Xend
Xsize 12488
SHAR_EOF
echo "End of archive 1 (of 1)"
# if you want to concatenate archives, remove anything after this line
exit