[comp.sources.amiga] v90i207: rexxdial - generate telephone dialing tones, Part01/01

Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator) (07/16/90)

Submitted-by: Arthur <AP_vRooijen%pttrnl.nl@CUNYVM.CUNY.EDU>
Posting-number: Volume 90, Issue 207
Archive-name: rexx/rexxdial/part01

[ uuencoded executables enclosed  ...tad ]

This program can dial a telephone number by producing the telephone tones
You can use it by holding the telephone receiver next to the right speaker.

The program uses the frequencies specified by the CCITT V.19
recommendation
The following keys are used:
        0 1 2 3 4 5 6 7 8 9 * # A B C D

I created it because I don't have a autodial modem and I wanted to use
the amiga for dialing.

Usage:  runback rexxdial
Send numbers from within an ARexx program to the 'DialPort' port using
the "address 'DialPort' telephonenumber" instruction.
By sending the CLOSE command the program can be stopped.



This program can be used by eg: VLT and SuperBase Proffesional

Author : Arthur van Rooijen                   15-April-1990

Note: This program is only tested in the Netherlands at the moment

#!/bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 1)."
# Contents:  readme rexxdial.c rexxdial.uu rexxdial_ba.uu
#   rexxdial_back.c rexxglue.o.uu
# Wrapped by tadguy@xanth on Sun Jul 15 17:37:56 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'readme' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'readme'\"
else
echo shar: Extracting \"'readme'\" \(1208 characters\)
sed "s/^X//" >'readme' <<'END_OF_FILE'
X
XThis program can dial a telephone number by producing the telephone tones
XYou can use it by holding the telephone receiver next to the right speaker.
X
XThe program uses the frequencies specified by the CCITT V.19
Xrecommendation
XThe following keys are used:
X	0 1 2 3 4 5 6 7 8 9 * # A B C D 
X
XI created it because I don't have a autodial modem and I wanted to use
Xthe amiga for dialing.
X
XUsage:  runback rexxdial
XSend numbers from within an ARexx program to the 'DialPort' port using
Xthe "address 'DialPort' telephonenumber" instruction.
XBy sending the CLOSE command the program can be stopped.
X
X
X
XThis program can be used by eg: VLT and SuperBase Proffesional
X
XAuthor : Arthur van Rooijen                   15-April-1990
X
XNote: This program is only tested in the Netherlands at the moment
X
XCompile: lc -Lm+rexxglue.o rexxdial.c
X
X
X -- 
X                        Arthur van Rooijen
X 
X PTT Research Neher Laboratories,    Phone  : +31 70 3325092
X 2260 AK Leidschendam,               Telefax: +31 70 3326477
X P.O. box 42,                        Telex  : 31236 prnl nl
X The Netherlands.
X
X Domain          : ap_vrooijen@pttrnl.nl 
X EARN/BITnet     : ROOIJEN@HLSDNL5.BITNET
X PSS (DATAnet1)  : +204 117035801::ROOIJEN
END_OF_FILE
if test 1208 -ne `wc -c <'readme'`; then
    echo shar: \"'readme'\" unpacked with wrong size!
fi
# end of 'readme'
fi
if test -f 'rexxdial.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'rexxdial.c'\"
else
echo shar: Extracting \"'rexxdial.c'\" \(5865 characters\)
sed "s/^X//" >'rexxdial.c' <<'END_OF_FILE'
X/*
X * This program can dial a telephone number by producing the telephone tones
X * You can use it by holding the telephone receiver next to the right speaker.
X *
X * The program uses the frequencies specified by the CCITT V.19
X * recommendation
X *
X * Usage:  runback rexxdial
X * Send numbers from within an ARexx program to the 'DialPort' port using
X * the "address 'DialPort' telephonenumber" instruction.
X * By sending the CLOSE command the program can be stopped.
X * 
X * This program can be used by eg: VLT and SuperBase Proffesional
X *
X * Author : Arthur van Rooijen                   15-April-1990
X *
X * Note: This program is only tested in the Netherlands at the moment
X *
X * Compile: lc -Lm+rexxglue.o rexxdial.c
X */
X
X#include <stdio.h>
X#include <math.h>
X#include <exec/types.h>
X#include <exec/memory.h>
X#include <hardware/custom.h>
X#include <hardware/dmabits.h>
X#include <libraries/dos.h>
X#include <devices/audio.h>
X
X#include <rexx/storage.h>
X#include <rexx/rxslib.h>
X
X
Xextern struct MsgPort *CreatePort();
X
Xvoid sound(UWORD per1, UWORD per2);
Xvoid dial(UBYTE digit);
XUWORD duration(UWORD frek);
Xvoid fill_wave(BYTE *data);
X
XBYTE chip wave1[16];
X
X/*
X *    Frequencies specified by CCITT V.19
X *
X *                B1=1209 Hz    B2=1336 Hz    B3=1477 Hz    B4=1633 Hz
X *  A1=697 Hz        1             2             3             A
X *  A2=770 Hz        4             5             6             B
X *  A3=852 Hz        7             8             9             C
X *  A4=941 Hz        *             0             #             D
X *
X *  The periods are calculated by the next formula:
X *        period = 3579545 / ( 16 * frequency)
X */
Xstruct { UBYTE key;
X         UWORD per1,
X               per2;
X}table[]={{'0',238,167},
X          {'1',321,185},
X          {'2',321,167},
X          {'3',321,151},
X          {'4',291,185},
X          {'5',291,167},
X          {'6',291,151},
X          {'7',263,185},
X          {'8',263,167},
X          {'9',263,151},
X          {'*',238,185},
X          {'#',238,151},
X          {'A',321,137},
X          {'B',291,137},
X          {'C',263,137},
X          {'D',238,137}};
X
Xstruct IOAudio s0,s1;
Xstruct RexxLib *RexxSysBase;
X
X
Xvoid main()
X{
X    UBYTE sunit=0x06;
X    int i;
X    char number[32];
X
X    struct MsgPort MyPort;
X    struct RexxMsg *rmptr;
X    LONG           test;
X
X
X    RexxSysBase = (struct RexxLib *)OpenLibrary("rexxsyslib.library",0L);
X    if (RexxSysBase == NULL) {
X        printf("Bad News -- no REXX library\n");
X        exit(0L);
X    }
X
X    /*
X     *    Open the audio device and create 2 channels for the right
X     *    speaker
X     */
X    if((s0.ioa_Request.io_Message.mn_ReplyPort=CreatePort("s0",0L))==NULL){
X        printf("Can't open s0 reply port\n");
X        exit(0L);
X    }
X    
X    s0.ioa_Request.io_Message.mn_Node.ln_Pri=10;
X    s0.ioa_Data=&sunit;
X    s0.ioa_Length=(ULONG)sizeof(sunit);
X     
X    if((OpenDevice(AUDIONAME,0L,&s0,0L))!=NULL){
X        printf("Can't open Audio Device\n");
X        DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort);
X        exit(0L);
X    }
X
X    s0.ioa_Request.io_Command=CMD_WRITE;
X    s0.ioa_Request.io_Flags=ADIOF_PERVOL;
X    s0.ioa_Request.io_Unit=(struct Unit *)0x02;
X    s0.ioa_Data=(UBYTE *)wave1;
X    s0.ioa_Length=sizeof(wave1);
X    s0.ioa_Volume=64;
X
X    s1=s0;
X    if((s1.ioa_Request.io_Message.mn_ReplyPort=CreatePort("s1",0L))==NULL){
X        printf("Can't open s1 reply port\n");
X        CloseDevice(&s0);
X        DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort);
X        exit(FALSE);
X    }
X    s1.ioa_Request.io_Unit=(struct Unit *)0x04;
X 
X    /*
X     *    Create a SIN wave of 16 samples in chip memory
X     */
X    fill_wave(wave1);
X
X    /*
X     *    Create a message port for the rexx interface and make it public
X     */
X    InitPort(&MyPort,"DialPort");
X    AddPort(&MyPort);
X
X    for (;;) {
X        /*
X         *    Wait for telephone numbers
X         */
X        Wait(1<<MyPort.mp_SigBit);
X        rmptr = (struct RexxMsg *) GetMsg(&MyPort);
X
X
X        /* 
X         *    See whether it's the close command
X         */
X        strcpy(number,rmptr->rm_Args[0]);
X        test = strcmp(number,"CLOSE");
X
X        /*
X         * Send a return code
X         */
X        rmptr->rm_Result1 = 0;
X        rmptr->rm_Result2 = 0;
X        ReplyMsg(rmptr);
X
X        /*
X         *    Stop if close command was send
X         */
X        if (test == 0) break;
X
X        /*
X         *    Dial number
X         */
X        for(i=0;i<strlen(number);i++){
X            dial(number[i]);
X        }
X
X    }
X
X    /*
X     *    Clean up everything
X     */
X    CloseDevice(&s0);
X    DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort);
X    DeletePort(s1.ioa_Request.io_Message.mn_ReplyPort);
X
X    RemPort(&MyPort);
X    FreePort(&MyPort);
X
X}
X
X/*
X *    Produce the right frequencies for a key
X *    create a pause after the tone and for an unknown key
X *    The keys are : 0 1 2 3 4 5 6 7 8 9 * # A B C D 
X */
Xvoid dial(UBYTE key)
X{
X    int i=0,
X        found=0;
X
X    while(!found){
X        if (table[i].key==key){
X            found=1;
X            sound(table[i].per1,table[i].per2);
X            for (i=0;i<7000;i++);
X        }
X        if(++i==16){
X            found=1;
X            for (i=0;i<10000;i++);
X        }
X    }
X}
X
X
X/*
X *    Produce two tones off the same length on the right channel
X */
Xvoid sound(UWORD per1,
X           UWORD per2)
X{
X
X    s0.ioa_Period=per1;
X    s0.ioa_Cycles=duration(per1);
X
X    s1.ioa_Period=per2;
X    s1.ioa_Cycles=duration(per2);
X
X    BeginIO(&s0);
X    BeginIO(&s1);
X    WaitIO(&s0);
X    WaitIO(&s1);
X
X}
X
X/*
X *    Calculate the cycles to produce a tone with frequency freq and a
X *  length of 0.3 seconds
X */
XUWORD duration(UWORD freq)
X{
X    return (UWORD)((0.3/16.0/(float)freq)*1e6);
X}
X
X/*
X *    Create a SIN wave of 16 samples
X */
Xvoid fill_wave(BYTE *data)
X{
X    double x;
X
X    for (x=0;x<=PI*2;x+=.4){
X        *(data++)=(BYTE)floor(127*sin(x));
X    }
X}
END_OF_FILE
if test 5865 -ne `wc -c <'rexxdial.c'`; then
    echo shar: \"'rexxdial.c'\" unpacked with wrong size!
fi
# end of 'rexxdial.c'
fi
if test -f 'rexxdial.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'rexxdial.uu'\"
else
echo shar: Extracting \"'rexxdial.uu'\" \(16058 characters\)
sed "s/^X//" >'rexxdial.uu' <<'END_OF_FILE'
Xbegin 664 rexxdial
XM```#\P`````````$``````````,```D+@``!$D```4(````````#Z0``"0LD+
XM2"0`2?D`````1_D```'T<@`@/````,5@`B;!4<C__"QX``0I3@(L*4\"-$*L\
XM`C`F;@$4<``B/```,`!.KO[.*6L`F`(H2JL`K&<``'`@#Y"O``0&@````(`I0
XM0`'X80`!+B!K`*S1R-'((F@`$-/)T\D@`G(`$ADI20(\T(%2@$)G4H`"0/_^0
XMG\!5@$)W"``@`E.`U($?L@``(`!3@E'(__8?O``@(`!3@A^Q(``@`%'*__@B'
XM3R\)8```>"EK`#H!^'!_4H#1K`'X80``PD'K`%Q.KOZ`0>L`7$ZN_HPI0`(PK
XM+P`D0"`J`"1G$BQL!/@@0"(H```I00(H3J[_@B(J`"!G&B0\```#[4ZN_^(I,
XM0`(X9PKEB"!`)V@`"`"D(&P","\(2&P!]"!H`"0I:``$`CQ.N@;`3KH3V'``!
XM8`0@+P`$+P`@+`(@9P0@0$Z03KHA9"QX``0B;`3X3J[^8DZZ!I9*K`(P9QHB'
XM+`(X9P1.KO_<+'@`!$ZN_WPB;`(P3J[^AB`?+FP"-$YU<&1@M$/Z`!!P`$ZNZ
XM_=@I0`3X9^Q.=61O<RYL:6)R87)Y`#(\_U)@<#(\_JI@:C(\_Q!@9'*48&`RA
XM//\T8%HR//YH8%0R//]P8$XR//]\8$@R//]J8$(R//YZ8#PR//YT8#8R//YN8
XM8#`R//YB8"HR//Z`8"0R//],8!YRB&`:,CS_%F`4<II@$#(\_R)@"C(\_QQ@8
XM!#(\_UA,[P,```0@+P`,+PXL>0```LA.MA``+%].=3(\_W9@X#(\_SI@VC(\F
XM_HQ@U#(\_IY@SC(\_J1@R#(\_T9@PC(\_T!@O#(\_D1@MC(\_P1@L#(\_OY@=
XMJC(\_OA@I#(\_O)@GC(\_NQ@F#(\_N!@DC(\_H9@C#(\_IA@AG*"8"`R//\H-
XM8!HR//]D8!0R//Y08`YRCF`*,CS_+F`$,CS^YB!O``0@+P`(8`#_8C(\_LA@C
XM$#(\_CY@"C(\_MI@!#(\_C@@+P`$8`#_1#)\_LY@$#)\_L)@"C)\_UY@!#)\'
XM_I(@;P`$3.\``P`(+PXL>0```LA.MI``+%].=4SO`P,`!,&(PXDO#BQY```"U
XMR$ZN_DHL7TYU3.\#`P`$P8C#B2\.+'D```+(3J[^O"Q?3G5,[P,#``3!B,.)^
XM+PXL>0```LA.KOZV+%].=4SO`P,`!,&(PXDO#BQY```"R$ZN_K`L7TYU(&\`W
XM!#(\_M1A`/Z@(F\`""*!3G4@+P`$<J!A`/Z.(F\`""*(3G5.5?_`2.<#`"XO+
XM`&`L+P!D3.T``P`0)#Q!^2'V)CRZ````3KH-(&TP2H9G!D'Z`F9@!$'Z`F1P?
XM`'(`+P$O`"\!+P`O+0`,+RT`""\(2'@``4ZZ!*Y@``(T3.T``P`0)#P_U%\P2
XM)CQMR<B"3KH(S$AM_]`O`2\`3KH"Y$_O``PD/#_@``!V`$ZZ#+QM&$SM``/_>
XMT"0\/_```'8`3KH-J$CM``/_T$SM``/_T$ZZ!.((````9P0(1P``2H9G&$SM<
XM``/_T"0\/^```'8`3KH-ADCM``/_T"\M``PO+0`(3KH"4DAM_^`O`2\`3KH".
XM<DCM``/_V$SM``/_T"0\0`DB`'8`3KH(-DCO``,`'$SM``/_X$SO``P`'$ZZO
XM#3I,[0`,_]A.N@TB2.\``P`<3.T``__0)#R^XJ[O)CQ+GN6=3KH'^DCO``,`H
XM)$SO``,`'$SO``P`)$ZZ#/XN@2\`2.T``__X3KH!SD_O`!@D/#WO__HF/#/5D
XMT4-.N@O.;P``]DSM``/_^"0`)@%.N@>P)#P\Z(#_)CQID]^42.T``__P3KH'A
XMFB0\/6KD("8\W`A)FTZZ#*1,[0`,__!.N@>`)#P]YA(\)CQH:M0O3KH,?$SM;
XM``S_\$ZZ!V8D/#Y:YD4F/$M=P*M.N@QP3.T`#/_P3KH'3"0\/L<=XR8\I23P;
XM8DZZ#$A,[0`,__!.N@<R)#P_*@&@)CP:`3X:3KH,/$SM``S_\$ZZ!Q@D/#^!]
XM$1$F/!$1$+!.N@P43.T`#/_P3KH&_B0\/\55528\55555$ZZ#`A,[0`,__!.O
XMN@;D3.T`#/_X2.T``__H3KH&U$ZZ"]Q([0`#__A*AV<03.T``__X3KH&L$CMM
XM``/_^$SM``/_^$SM`,#_N$Y=3G5C;W,`<VEN`$Y5```O`DSM``,`"'0`=@!.J
XMN@J6;"),[0`#``A.N@9R0J=(>``!+P$O`"\M``PO+0`(80#],&`:<``O`"\`7
XM(BT`""0M``PO`B\!+P(O`6$`_10D+?_\3EU.=4Y5```O+0`,+RT`"$ZZ`"PDI
XM/#_Y(?LF/%1$+1A.N@LP2'@``4*G+P$O`"\M``PO+0`(80#\UDY=3G5.50``K
XM3.T``P`(=`!V`$ZZ"@1M"B`M``@B+0`,8`I,[0`#``A.N@763EU.=4CG/P!,D
XM[P`#`!QA```0(&\`)$C0`,!,WP#\3G4L`"X!*@!(13@%`D5_\`Q%0S!M```N8
XM`D1__PQ$?_!M```,;@``$DJ!9@``#`*`@````'(`3G5(0$ZZ`\HL`"X!3G4VA
XM!01#/_!L```,`H:`````?@!.=2P`+@$"1(``Z$,$0P`4;```&D1#=/_GJLR""
XM?@"]@&<``!0$10`03OH$%G3_YJIP`,*"LX=*@6<```H$10`03OH#_C`$2$!.*
XM=0``+PLF;P`((!,,@`````)G"`R``````68(<"$I0`3T8`9P(BE`!/1P`"9?W
XM3G4```````!P84YU3G5.50``3.T``P`(=`!V`$ZZ".1L&$SM``,`"$ZZ!,`OB
XM`2\`80``(DZZ!+1@%DAM``@O+0`,+RT`"$ZZ_M),[0`#``A.74YU3E4``$SM8
XM``,`"'0`=@!.N@B>;!9,[0`#``A.N@1Z+P$O`&&63KH$<&`\2&T`""\M``POQ
XM+0`(3KK^CD_O``QT`'8`3KH(:F\83.T``P`()#P_\```=@!.N@E62.T``P`(N
XM3.T``P`(3EU.=4Y5``!(YP$0+B\`$"9O`!0I1P+,*4L"T"EM`!`"U"EM`!0"7
XMV"EM`!@"W"EM`!P"X"EM`"`"Y"EM`"0"Z$AL`LQ.NO[66$]*@&<(3.P``P+D7
XM8`9,[0`#`"!,WPB`3EU.=4CG,`!V_R0`:@``.`R`O_```&4``%Y(Y\#`2'D`K
XM```"3KH%3EA/3-\#`V```$9(YS``)CQ_____)`!J```&4H.W@$A`-``"0G_PG
XMM4`$0C_P;0``(`I``!!(0.A"!$(`%&X``#!$0N2H2H)K```^8```/'``8```N
XM-DCGP,!(>0````).N@3L6$],WP,#(`-@```<#$(`"V[@LX#EN.6ILX"P@V+4X
XM2H)J```$1(!,WP`,3G4``"(`2$$"07__#$$`@&T``"0,07^`;```/N:``H"/O
XM____!H`X````2$$"@0````?FF4YU2H%G^DCG/`!(0#@``D2``#H\.=!P`$A!E
XM3KH!K$S?`#Q.=>:``(!_\```2$$"@0````?FF4YU+P9*@&<``(Q\`&```!0@+
XM+P`$+P8L`&<``'IJ```$1(`,@`$```!E``!B/#Q*@`R`@````&4```H&A@``$
XM!`#@B`R`"````&4```H&A@```@#HB`R``@```&4```H&A@```0#DB`R``0``P
XM`&4```@&1@"`XHAR`-&!2$#01DA&`D:``+U`2$!@```*/#Q+`$ZZ`9PL'TYU`
XM``!P`"(`N4!(0$YU2.?`P$AY`````4ZZ`Z983TS?`P-P`'(`N4!(0$YU2.?`E
XMP$AY`````DZZ`XA83TS?`P,@/```?_"Y0'(`2$!.=4CGP,!(>0````1.N@-F4
XM6$],WP,#(#Q_\0``<@!.=0@```-G```>2.?`P$AY````!$ZZ`T!83TS?`P,((
XM@``#",```0!`?_!(0$YU2$!(1'H0#(`````@;```%DA`2$$P`4)!!$4!``R`M
XM````(&WL0D0,@```(`!L```&X8A01$A`2D!F```&Z9A81'P`0_H`/APQ``#MF
XMN-A&2$`L`>FIZ;ZS1KU`Z4R:1$A`2$1.=0R`````(&P``#9(0$A!,`%"001%`
XM`0!L`/_H8```9@4$`P,"`@("`0$!`0$!`0$`````````````````````=@`,[
XM@```(`!L```&X8A00TA`2D!F```&Z9A80W0`%#L`P.6XUD)(0"0!YZGGNK-"S
XMM4#I2YI#;0``#$A`T$6`1$A`3G5$1>A-)`#JJ.JZZJFQ@K6!2$"Y0$A`3G4`+
XM``R````!`&P```H$1@@`8```$$A`2D!F```(X9@$1@0`#$``$&P```CIF`1&G
XM`@`,0`!`;```".68!$8!`$H`:P``"..8!$8`@$A`2D9L```21$;N3NRHW(;B`
XMD'(`T8%.=4I&9P``%DA`"D``@+U`2$8"1H``O4!(0$YU4H#<AN*03G4``"\`I
XM@Y]G!`A``!].=4CG/T!A```(3-\"_$YU/#R``#X\?_!(0$A".`#(1KE`S$*]W
XM0KU$L$=M``!.L$)M```L#(```'_P9@``"$J!9P``!D[Z_@"T1VT``!H,@@``W
XM?_!F```(2H-G```*(`(B`T[Z_>)*@F8```Q*@V8```9.^OVT3OK]HK1';0``(
XM+@R"``!_\&8```A*@V<```H@`B(#3OK]L$J`9@``#$J!9@``!D[Z_8).^OUP"
XM.@#*1V8``!I*@&8```Q*@68```9.^OT<3KK]K&````B[0`I``!#.0F8``"9*S
XM@F8```Q*@V8```9.^OSXP4+#0\M'3KK]@L%"PT/+1V````B_0@!"`!`$13_P9
XMVD=H```&3OK\^$A`+@'AB.&)X9^S1[]`2$(N`^&*X8OAG[='OT(N`$A'SL,L9
XM`DA&S,'>AD)'WT=(1TA!+`',PD)&2$;>ADA#+`/,P$)&2$;>ADA`2$(L`,S")
XMQL#>@W8`W8/"PMZ!W8,B`$A!)@)(0\##Q,'1@B0`0D#10$A`2$)"0MZ"T8;"_
XMP]*'=`#1@D[Z`O0``"\'+B\`""E'`A!*K`(49Q0P?``!(FP"%+/(9PA(>``((
XM3I%83RX?3G4```````````````!(YS]`80``"$S?`OQ.=3P\@``^/'_P2$!(*
XM0C@`R$:Y0,Q"O4*]1+!';0``<+!";0``+`R```!_\&8```A*@6<```9.^OPT'
XMM$=M```>#((``'_P9@``"$J#9P``"B`"(@-.^OP63OK[]$J"9@``*DJ#9@``6
XM)$CGP,!(>0````-.NO],6$],WP,#(#P``'_PN4!R`$A`3G5.^ONTM$=M```>`
XM#((``'_P9@``"$J#9P``"B`"(@-.^OO"3OK[5CH`RD=F```J2H!F```<2H%FF
XM```62H)F```,2H-F```&3OK[?$[Z^RY.NON^8```"+M`"D``$,Y"9@``)DJ"C
XM9@``#$J#9@``!F``_V[!0L-#RT=.NON4P4+#0\M'8```"+]""D(`$`1'/^":.
XM1V@```9.^OL*2$`N`>F(Z8GIG[-'OT!(0BX#?`OMJNVK[;^W1[]"2$0X!2)$H
XM2$*`PC@`2$$P`4)!2$(Z`LK$2$,\`\S$2$,^`\[$2$?>1DA'0D9(1MV%DH>1Q
XMAF0```A31-*#T8)"0TA$+`!(0H#":```&$)$(`:2@TA"D8)(0$A!,`%"06``]
XM`"HX`$A!,`%"04A"/`+,Q"X#2$?.Q$A'W$=(1D)'W4=(1I*'D89D```24T323
XM@]&"90``"%-$TH/1@BP`2$*`PF@``!1"12`&2$*00DA`2$$P`6```!0Z`$A!X
XM,`%(0CP"S,60AF0```Y31=""90``!E-%T()(14A"@,)H```$</\Z`"`$(@4HR
XM"3H$2$1.^@"```!*@&L``#A*@FH``"!*@&8``&9*@68``&!*@V8``%H,@H``@
XM``!F``!03G6P@F8```RV@64``$)F```X3G5*@FL``!YF```L2H-F```F2H%F-
XM```@#("`````9@``%DYUM(!F```,LH-E```.9@``!$YU1/P`"$YU1/P``$YUT
XM#(`"````;0``$.*(XI%*16P``$Q@```*!$4`$&P``$!$1>A-6$4,10`Y;P``R
XM#D[Z^2XR`$)`2$!(001%`!!N\@9%`!`D`.JHZKKJJ;&"M8%T`-."T8)(0+E`)
XM2$!.=20`Z(CHFNB)L8*U@70`TX+1@DA`T$4,0'_P901.^OD`N4!(0$YU2.<_+
XM0&$``!I,WP+\3G5(YS]`80``"$S?`OQ.=0A"`!](0$A"/#R``#X\?_`X`,A&,
XMN4`Z`,I'NT#,0KU"SD*_0KI'9@``X`Q%?_!F```JL$)M```2+@".@68```XN$
XM`HZ#9P``"B`"(@-.^OC.O$1G``!^3OKXIDI%9@``1$A`9@``*$J!9@``(DA"0
XM9@``#DJ#9@``",A&3OKX."`"(@-(0+U`OT!(0$YU2$)F```>2H-F```82$"YE
XM0+M`2$!.=7X0FD>_0+]"2$!(0KQ$9P``))*#9@``"I&"9@``!DYUD8)J```(>
XM1(%`@#@&3OKXW$[Z^!S2@]&"#(``(```;0``%.*(XI%^`-.'T8<&10`0#$5_(
XMX&4```9.^O?@2$#018!$2$!.=6X```K!0L-#R4;+1PQ%?_!G```P2D=F```^$
XM2$)F```02H-F```*N4"[0$A`3G76@]6"2D5F```F2$#2@=&`8```(DJ`9@``E
XM#$J!9@``!D[Z]YA.^O?`"D(`$$A""D``$$A`GD5&1^A'!$4`(`Q'`#1N```>\
XMTH'1@`Q'`"!O```@)@)T``1'`"#NJW0`8```-`9%`!!(0-!%@$1(0$YU#$<`H
XM$&\```XV`DA#0D)(0@1'`!`B1BP"[JKNONZKM8:]@RP)O$1F```\TH/1@@9%Q
XM`!#BB.*1#(``(```;0``"@9%`!#BB.*1?@#3A]&'2$#010Q%?_!D```(@$1(-
XM0$YU3OKVU)^'DX.1@@R``"```&T`_K9$A]*'?@#1A^*(XI$&10`02$#018!$$
XM2$!.=4CG!S`N+P`8)F\`'"PO`"`O!TZZ#4183R1`(`IF!'#_8#8(*@`#``-GD
XM$$AX``)"IR\'3KH'B$_O``PO!B\++RH`!$ZZ"/1/[P`,*@!*K`(,9P1P_V`"6
XM(`5,WPS@3G4``````````'!A2.<#$"9O`!`@2TH89OQ3B)'++`A^`!X;2H=G`
XM,E.L`5YM%B!L`59#Z``!*4D!5B`'$(!R`!(`8-P@!W(`$@!(;`%2+P%.N@*6D
XM4$\B`&#&2&P!4DAX__].N@*$4$\@!DS?",!.=0```````'!A3E7_\$CG(3(F`
XM;P`L#*P````@!&9L``"&$!-R(+`!9PQR";`!9P9R"K`!9@12BV#H2A-G:"`LU
XM!&;E@%*L!&9![`1NT<`D2'`BL!-F)E*+)(M*$V<*<"*P$V<$4HM@\DH39@Q(4
XM>``!3KH,Z%A/8)Y"&V":)(M*$V<8$!-R(+`!9Q!R";`!9PIR"K`!9P12BV#DO
XM2A-F`F`&0AM@`/]R2JP$9F8&(&P",&`$0>P$;BE(!&I*K`1F9GQ!^@$D0^P$:
XM+"+8(M@BV"+8,I`B;`(P(&D`)$AX`"@O*``$2&P$+$ZZ!"Y/[P`,0>P$+"((U
XM)#P```/N+&P$^$ZN_^(I0`+P*4`"^'($*4$"]"E``P`I00+\Y8"3R2QX``0K^
XM0/_P3J[^VB!M__`B0"-H``@`I'X`*T#_]&`J+&P$^$ZN_\HI0`+P3J[_Q"E`:
XM`OA!^@"F(@@D/````^U.KO_B*4`#`'X$(`<`0(`!@:P"["`'`$"``H&L`O0`O
XMK```@`,"_$JL`9AG!'``8`8@/```@``N`$*L`4P@!P!```$I0`%(<`$I0`%NE
XM(`<`0``"*4`!:G`"*4`!D"`'`$``@"E``8Q!^@D"*4@")"\L!&HO+`1F3KH`Y
XM,D*73KH&0$SM3(3_W$Y=3G5C;VXZ,3`O,3`O,S(P+S@P+P`J````````````*
XM`````$[Y`````````````````````````````"\+)F\`"$JK`!1G#`@K``,`0
XM&V8$<`!@-B\L`?!.N@7*6$\G0``$)T``$$J`9@IP#"E`!/1P_V`6)VP!\``4+
XM<//!JP`8<``G0``,)T``""9?3G4``````````'!A3E7_[$CG+Q`N+P`T)F\`T
XM."@'<#'`JP`89P9P_V```G`(*P`'`!I6P$0`2(!(P"P`2JL`%&8``(0(*P`"+
XM`!MF>G``)T``#'+_OH%G``)"+PM.NO]26$]*@&<,".L`!0`;</]@``(J".L`Q
XM`0`;2@9G#B`K`!0B`$2!)T$`#&`(("L`%"=```Q3JP`,;18@:P`$0^@``2=)-
XM``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_U)03R(`(`%@``'6""L``@`;9UAP0
XM_[Z`9@9P`&```<(@!QM`__]*!F<B<@J^@68<<@(O`4AZ`;(O*P`<*T'_\$ZZ$
XM^\Q/[P`,*@!@&G(!+P%(;?__+RL`'"M!__!.NONP3^\`#"H`?O]@``#@".L`S
XM`0`;2@9G4G#_OH!G3%2K``QR"KZ!9B8@:P`$0^@``2=)``00O``-(BL`#$J!#
XM:PHO"R\`80#^KE!/4JL`#"!K``1#Z``!)TD`!"`'$(`B*P`,2H%K``$<?O\@"
XM*P`$D*L`$"M`__!G<@@K``8`&F=22'@``D*G+RL`'$ZZ`N!/[P`,*T#_[$H&T
XM9SA3K?_L;3)"IR\M_^PO*P`<3KH"P$AX``%(;?_]+RL`'$ZZ`FA/[P`82JP"!
XM#&8*$"W__7(:L`%GR"\M__`O*P`0+RL`'$ZZ^M!/[P`,*@!@`GH`</^Z@&8(%
XM".L`!0`;8`RZK?_P9P8(ZP`$`!M*!F<.(BL`%"0!1((G0@`,8!@(*P`"`!MG)
XM"'(`)T$`#&`((BL`%"=!``P@:P`0)T@`!+Z`9RY3JP`,;18@:P`$0^@``2=)$
XM``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_9!03R(`<##`JP`89P1P_V`,</^X%
XM@&8$<`!@`B`$3-\(]$Y=3G4-"@````!.5?_X2.<#,"9O`"`D;P`D+B\`*"!*C
XM2AAF_%.(D<HL""!+2AAF_%.(D<L@"")+T\`K2?_XO(=C`BP'(`8@2F`"$MA3Q
XM@&3Z(&W_^$(P:``@"TS?#,!.74YU(&\`!"`(2AAF_%-(D<`@"$YU```@;P`(Y
XM(F\`!"`)$MAF_$YU(&\`!")O``@2&+(99@A*`6;V<`!.=6X$</].=7`!3G5.<
XM5?_H2.<!,BXO`#1*AVX&</]@``#2<`B^@&0"+@`@!U:`+@`"1__\)&T`""!MT
XM``C1Q]^L`2Q#[`$H)E$K2/_P*TG_]"`+9P``D"!+("L`!-'`*TC_[")M__"WP
XMR6,0)(LE1P`$+&W_]"R*<`!@>+?)9AHL4R2.("L`!"(`TH<E00`$+&W_]"R*,
XM<`!@6K7(9`B?K`$L</]@3K7(9BQ*DV<.(%.SR&,(GZP!+'#_8#C?JP`$2I-GS
XM#K/39@H@*0`$T:L`!":1<`!@'BM+__0K;?_L_^@F4V``_VX@;?_T((I"DB5'Y
XM``1P`$S?3(!.74YU``````````!P84CG!S`N+P`8)F\`'"PO`"`O!TZZ!=!8<
XM3R1`(`IF!'#_8!XO!B\++RH`!$ZZ`F!/[P`,*@!*K`(,9P1P_V`"(`5,WPS@:
XM3G4``$CG#Q`N+P`8+"\`'"HO`"`O!TZZ!8A83R9`(`MF!'#_8!XO!2\&+RL`3
XM!$ZZ`9Q/[P`,*`!*K`(,9P1P_V`"(`1,WPCP3G4``````````'!A2.<#,"XOU
XM`!1*AVX&<`!@``"D<`B^@&0"+@`@!U:`+@`"1__\1>P!*"92(`MG0"`K``2PI
XMAVTRL(=F#"!3)(B?K`$L(`M@;B`K``20AW((L(%E%B!+T<<DB"1()),E0``$F
XMGZP!+"`+8$PD2R938+P@!R(L`9S0@5.`3KH"1B(L`9Q.N@(>+`!0AB`&5H`L6
XM``)&__PO!DZZ!@983R9`(`MG$B\&+PM.NOW*+H=A`/]44$]@`G``3-\,P$YU/
XM``````````!P82\'+B\`""\'3KK_,EA/+A].=0``2.<#$"XO`!!'[`$P(`MGW
XM-`@K``(`&V8H""L``0`;9R`@*P`$D*L`$"P`2H9G$B\&+RL`$"\K`!Q.NO;BL
XM3^\`#"938,@O!TZZ!/A83TS?",!.=0``2.<W$"XO`!PF;P`@+"\`)$JL`B1GH
XM!$ZZ!%!"K`(,(@<D"R8&+&P$^$ZN_]`J`'#_NH!F#DZN_WPI0`(,<`4I0`3T*
XM(`5,WPCL3G4``$CG/P`N+P`<+"\`("HO`"1*K`(D9P1.N@0$0JP"#"`%4X`B3
XM!R0&)@`L;`3X3J[_OB@`</^X@&8.3J[_?"E``@QP%BE`!/0@!0R``````F<6L
XM#(`````!9PA*@&88(`9@%"`$T(9@#B('=`!V`"QL!/A.KO^^3-\`_$YU``!(8
XMYS<0+B\`'"9O`"`L+P`D2JP")&<$3KH#B$*L`@PB!R0+)@8L;`3X3J[_UBH`$
XM</^Z@&8.3J[_?"E``@QP!2E`!/0@!4S?".Q.=0``2.<`$B9O``Q*JP`*9PHB<
XM2RQX``1.KOZ8%WP`_P`(</\G0``4<``0*P`/+'@`!$ZN_K`B2W`B3J[_+DS?H
XM2`!.=2\'+B\`"$JL`B1G!$ZZ`P8B!RQL!/A.KO_<<``N'TYU2.<P`"0`)@%($
XM0DA#Q,'&P,#!U$-(0D)"T(),WP`,3G5*@&H``!Y$@$J!:@``#$2!80``($2!L
XM3G5A```81(!$@4YU2H%J```,1(%A```&1(!.=2\"2$$T`68``")(0$A!2$(T"
XM`&<```:$P3`"2$`T`(3!,`)(0C(")!].=2\#=A`,00"`9```!N&944,,00@`M
XM9```!NF964,,02``9```!N6954-*06L```;CF5-#-`#FJ$A"0D+FJDA#@,$VE
XM`#`"-`-(0<3!D()D```(4T/0@63^<@`R`TA#Y[A(0,%!)A\D'TYU3E7_GDCG3
XM,S)^`"!L`CP>*/__<$^^@&\"+@`@!T/M_Z]@`A+84X!D^D(U>*^3R2QX``1._
XMKO[:)D!*JP"L9TP@*P"LY8`D0"PJ`#A*AF8$+"L`H$J&9S0B!D'Z`+(D"'8+L
XM+&P$^$ZN_]`@1U*'(`@;O``*"*\B!D'M_Z\D""8'+&P$^$ZN_]!P_V!.2JP$R
XM\&820_H`AG``+'@`!$ZN_=@I0`3P0>W_KRE(`<!(>``\2'@`^G``+P`O`$ALW
XM`=Q(;`'(2&P!M$*G3KH!F$_O`"!3@&<$</]@`G``3-],S$Y=3G4J*B!5<V5RN
XM($%B;W)T(%)E<75E<W1E9"`J*@``0T].5$E.544``$%"3U)4`"HJ*B!"<F5A3
XM:SH@`&EN='5I=&EO;BYL:6)R87)Y````````````````````2.<#,B9O`!@N*
XM+P`<</\L>``$3J[^MBP`#`8`_V8$<`!@9G`B(CP``0`!3J[_.B1`(`IF"G``$
XM$`9.KOZP8$@E2P`*(`<50``)%7P`!``(0BH`#A5&``^3R4ZN_MHE0``0(`MG?
XM"")*3J[^GF`:0>H`&"5(`!1!Z@`4)4@`'$*J`!@5?``"`"`@"DS?3,!.=0``M
XM+P<N+P`(<``I0`(,2H=K(KZL`1AL'"`'YX!![`+L2K`(`&<.(`?G@$'L`NS1%
XMP"`(8`AP"2E`!/1P`"X?3G4``````````'!A2.<!`G``(CP``#``+'@`!$ZN/
XM_LXN``*'```P`$J'9@1P`&`@2JP")&<8(&P")$Z02H!F!'``8`Q(>``43KH`U
XM1EA/(`=,WT"`3G5AM$YU``!(YS`R+&P$\"!O`!@B;P`<)&\`("9O`"0@+P`HN
XM(B\`+"0O`#`F+P`T3J[^I$S?3`Q.=0``2.<'`"XO`!`@+`$84X`L`$I&:S`@_
XM!DC`YX!![`+L*C`(`$H%9QH(!0`"9A0@!DC`YX!![`+L+S`(!$ZZ_"Q83U-&6
XM8,PO!TZZWI983TS?`.!.=0``2.<`,B9L!/P@"V<4)%,B2R`K``@L>``$3J[_&
XM+B9*8.B1R"E(!0`I2`3\3-],`$YU2.<!,BXO`!1P#-Z`(`=R`"QX``1.KO\Z#
XM)D`@"V8$<`!@.B='``A%[`3\(&H`!"=(``21R":(2I)F`B2+2JH`!&<&(FH`8
XM!"*+)4L`!$JL`1QF!"E+`1Q!ZP`,(`A,WTR`3G4``````````````````")O>
XM``0O#BQI`!1.KO_B+%].=0``+PXL>0```BP@+P`(3J[^PBQ?3G4O#BQY```"J
XM+")O``A.KOZ>+%].=2\.+'D```(L(F\`"$ZN_I@L7TYU+PXL>0```BP@;P`(;
XM3J[^C"Q?3G4O#BQY```"+")O``A.KOZ&+%].=2\.+'D```(L(&\`"$SO`@$`P
XM#"(O`!1.KOY$+%].=0``+PXL>0```BPB;P`(3J[^/BQ?3G4O#BQY```"+")O-
XM``A.KOXF+%].=2\.+'D```(L(F\`""`O``Q.KOW8+%].=0```^P````!````)
XM`0``%PX````1`````@``)!@``"0$```C\```(]```".\```CJ```(Y0``".`G
XM```C;````W8```-<```#0@```R@```,.```",`````P````&`````````_``?
XM```#7T]P96Y,:6)R87)Y```D%`````)?5V%I=$E/````)``````#7T-L;W-E+
XM1&5V:6-E```C[`````-?3W!E;D1E=FEC90```"/,`````U]297!L>4US9P``G
XM````([@````"7T=E=$US9P```".D`````E]296U0;W)T```CD`````)?061D1
XM4&]R=```(WP````"7U=A:70``````"-H`````E]"96=I;DE/```C5```````:
XM``/R@``#Z0```1).5?^P2.<#"$GY`````!M\``;__T*G2&P`8$ZZ`[103RE`A
XM`LAF$$AL`'1.N@/"0I=.N@/(6$]"ITAL`)).N@-64$\I0`).2H!F$$AL`)9.(
XMN@.>0I=.N@.D6$\9?``*`DE![?__*4@"8G`!*4`"9G``+P!(;`)`+P!(;`"P?
XM3KH#9$_O`!!*@&<82&P`ODZZ`V`NK`).3KH#1D*73KH#7EA/.7P``P)<&7P`R
XM$`)><`(I0`)8*7P```$(`F)P$"E``F8Y?`!``FQ![`)`0^P"A'`0(MA1R/_\=
XM0J=(;`#83KH"ME!/*4`"DDJ`9B!(;`#<3KH"_DAL`D!.N@+>+JP"3DZZ`MQ"I
XMETZZ`O103W`$*4`"G$AY```!"&$``>Q(;`#V2&W_N$ZZ`Q)(;?^X3KH"=$_OB
XM`!!P`!`M_\=R`>&A+P%.N@+>2&W_N$ZZ`G8@0"ZH`"A(;?_:*T#_M$ZZ`NA(`
XM;`$`2&W_VDZZ`D8L`'``(&W_M"%``"`A0``D+HA.N@(>3^\`%$J&9R1^`$AMK
XM_]I.N@(D6$^^@&R<$#5XVG(`$@`O`6$``#I83U*'8-Y(;`)`3KH")BZL`DY.V
XMN@(D+JP"DDZZ`AQ(;?^X3KH!\$AM_[A.N@)"3.T0P/^D3EU.=4CG)PA)^0``+
XM```>+P`;?`!Z`$J%9EH@!G(&3KH"1$/L```2,0@`L@=F+GH!<@!#[```,C$(G
XM`G0`0^P``#0Q"`0O`B\!80``,%!/?``,A@``&UAL!%*&8/12AG`0O(!FLGH!K
XM?``,A@``)Q!LIE*&8/1,WQ#D3G5(YP,(2?D`````/B\`$CPO`!8Y1P)J<``PM
XM!R\`80``0CE``FXY1@*N<``P!BZ`80``,#E``K)(;`)`3KH!HDAL`H1.N@&:!
XM2&P"0$ZZ`29(;`*$3KH!'D_O`!1,WQ#`3G5.5?_X2.<Q"$GY`````#XO`")P9
XM`#`'3KH!*DZZ`-A([P`#`!`@/#^3,S,B/#,S,S-,[P`,`!!.N@$6)#Q!+H2`;
XM=@!.N@#43KH!,$S?$(Q.74YU3E7_]$CG,!A)^0`````F;P`D0JW_^$*M__Q,D
XM[0`#__@D/$`9(?LF/%1$+1A.N@#F;E0@2U*++RW__"\M__@O2``83KH`OB0\2
XM0%_``'8`3KH`=BZ!+P!.N@#(3^\`#$ZZ`(0@;P`0$(!,[0`#__@D/#_9F9DF)
XM/)F9F9E.N@",2.T``__X8)1,WQ@,3EU.=0``3OD``"$$3OD``".X3OD``"-\(
XM3OD```F\3OD``!J83OD``!IT3OD``".03OD``".D3OD``"0`3OD```S@3OD`'
XM`"043OD``"/L3OD``!Z(3OD``"/,3OD```DV3OD``!2D3OD```HD3OD``!T@O
XM3OD```ZL3OD```9$3OD``!'L3OD```((3OD``!#L3OD``"-H3OD```?X3OD`)
XM``D(3OD``"-43OD```(83OD``![H3OD``!J(```#[````!X````````$#@``%
XM`^H```0F```$"```!!H```0L```#S```!`(```.H```#]@```\8```0R```$M
XM/@``!!0```.Z```#M````YP```.N```$1````\````0@```#H@``!#@```/8%
XM```#W@```^0```.6```#_````_````/2````!P````(```,.```"O````E@`:
XM``'B````"@```1(```"T`````````_)```/J````?3```.X`IS$``4$`N3(`V
XM`4$`IS,``4$`ES0``2,`N34``2,`IS8``2,`ES<``0<`N3@``0<`ISD``0<`7
XMERH``.X`N2,``.X`ET$``4$`B4(``2,`B4,``0<`B40``.X`B7)E>'AS>7-LL
XM:6(N;&EB<F%R>0``0F%D($YE=W,@+2T@;F\@4D586"!L:6)R87)Y"@``<S``2
XM`$-A;B=T(&]P96X@<S`@<F5P;'D@<&]R=`H`875D:6\N9&5V:6-E``!#86XGF
XM="!O<&5N($%U9&EO($1E=FEC90H``',Q``!#86XG="!O<&5N(',Q(')E<&QY%
XM('!O<G0*`$1I86Q0;W)T``!#3$]310`````````````````````````````HL
XM``````````````````````````````%2````````````````````````````3
XM```````````````!=```````````````````````````````````````````U
XM````````````````````````````````````````````````@`````0`__\`"
XM```.``X````````@K`````#__P````0`!``````````````!H/__````!``$5
XM````````(,@`````__\````$``0````````@T@````````(````#[`````,`4
XM```````!Z````=0```&L`````P````(```'$```!4@```3`````````#\@``N
X*`^D````````#\M0`U
X``
Xend
Xsize 11440
END_OF_FILE
if test 16058 -ne `wc -c <'rexxdial.uu'`; then
    echo shar: \"'rexxdial.uu'\" unpacked with wrong size!
fi
# end of 'rexxdial.uu'
fi
if test -f 'rexxdial_ba.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'rexxdial_ba.uu'\"
else
echo shar: Extracting \"'rexxdial_ba.uu'\" \(13853 characters\)
sed "s/^X//" >'rexxdial_ba.uu' <<'END_OF_FILE'
Xbegin 664 rexxdial_back
XM```#\P`````````(``````````<```#*```!,T````0```!_```!20``!6X`#
XM```%````,0```^D```#*2.=^_DOO`#0D2"0`2?D`````+'@`!"E.`%HI3P!BJ
XM0JP`7D?Y```#('(`(#P```"!8`(FP5'(__PF;@$4<``B/```,`!.KO[.*6L`>
XMF`!62JL`K&<``5!A``*<(BP`5BQL!11.KO^@*4``5B!K`*S1R-'((F@`$-/)4
XMT\D@`G(`$ADH"28!TH'0@5J`Y8C0K``4*4``%$'L```L>``$3J[_(B)`+P`B0
XM:0`01^D`YB!$(`-@`A;84<C__!;\`"`@2B`"8`(6V%'(__Q"&RE+`'8@1"`#J
XM8`(6V%'(__Q"$T7I`&PI2@`:1?K_%B+\````.28)Y(LBTD*21?H!-B`\````#
XMW1+:4<C__$JL`)QG```:0>P`AB(()#P```/M+&P%%$ZN_^(I0`!R+'@`!$ZNJ
XM_WPB+`"4)"P`F"@L`(@L;`443J[_=B9.2H!F```@)%\B:@`0(BP`5DZN_Z8@+
XM2BQX``1.KO\<<&A@```F)$`B7T7J_Z1!Z@!*0>@`!"`H``0A20`$(H@C0``$+
XM($`@B7``+'@`!$ZN_W8B2RQX``1.KOYB3-]_?DYU*6L`.@`F!JP```"``"9A;
XM``%`1?H`\"E*`!IA``%,*4``7B\`)$`@*@`D9Q(L;`44($`B*```*4$`5DZN#
XM_X(B*@`@9QHD/````^U.KO_B*4``;F<*Y8@@0"=H``@`I"!L`%XO"$AL`"(@"
XM:``D*6@`!`!V3KH!"$ZY`````'``8```A````#D`````(`](YW[^*D`L>``$H
XM2?D`````*4\`8F$``*Z3R2QX``1.KO[:)D`I:P`Z`"8&K````(``)B!K`(#11
XMR-'((F@`#-/)T\DI40`>(5$`#"(L`%8L;`443J[_@DAZ`(1.N0````!83R(L9
XM`!XL;`443J[_9"(L`%9.KO^F<``@+`!.9P0@0$Z03KD``!6(+'@`!")L!11.G
XMKOYB3KD```1.2JP`7F<:(BP`;F<$3J[_W"QX``1.KO]\(FP`7DZN_H8N;`!B!
XM3-]_?DYU0^P`>G``3J[]V"E`!11G```$3G5P9&"<0>L`7$ZN_H!!ZP!<3J[^9
XMC$YU``!.^0``!$QP80```^P````"`````0```HP```(<`````P````0````D`
XM```"/`````X````#````!0```L8```*T```#(@````````/R```#Z0```3-.:
XM5?^PO^P`)F4`!"I(YS,"&WP`!O__0J=(;`$`3KH$0%!/*4`#J&8F<!DB+`!R9
XM0>P!%"0()@`L;`443J[_T"(L`').KO_<0J=.N@0X6$]"ITAL`4A.N@/24$\I&
XM0`,N2H!F)G`9(BP`<D'L`4PD""8`+&P%%$ZN_]`B+`!R3J[_W$*G3KH#_EA/(
XM&7P`"@,I0>W__RE(`T)P`2E``T9P`"\`2&P#("\`2&P!@$ZZ`\1/[P`02H!GX
XM+G`9(BP`<D'L`8XD""8`+&P%%$ZN_]`B+`!R3J[_W"\L`RY.N@.00I=.N@.B%
XM6$\Y?``#`SP9?``0`SYP`BE``S@I?``````#0G`0*4`#1CE\`$`#3$'L`R!#-
XM[`-D<!`BV%'(__Q"ITAL`<).N@,&4$\I0`-R2H!F-G`9(BP`<D'L`<8D""8`$
XM+&P%%$ZN_]`B+`!R3J[_W$AL`R!.N@,2+JP#+DZZ`Q!"ETZZ`R)83W`$*4`#Z
XM?'`T(BP`<D'L`?HD""8`+&P%%$ZN_]`B+`!R3J[_W$AY`````&$``@9(;`)FS
XM2&W_N$ZZ`R)(;?^X3KH"ED_O`!!P`!`M_\=R`>&A+P%.N@+N2&W_N$ZZ`HPKP
XM0/^T($`@:``H0^W_VA+89OQ![?_:0^P"<!`8L!EF!$H`9O:0(4B`2,`L`'``>
XM(&W_M"%``"`A0``D+HA.N@(N4$]*AF<H?@!![?_:(DA*&6;\4XF3R+Z);(X0N
XM-7C:<@`2`"\!80``0%A/4H=@VDAL`R!.N@(N+JP#+DZZ`BPNK`-R3KH")$AM8
XM_[A.N@'X2&W_N$ZZ`D1"ETZZ`B9,[4#,_YQ.74YUO^P`)F4``<9(YR<`'B\`I
XM%WP`>@!*A69:(`9R!DZZ`CY#[`"@$C$(`+('9BYZ`7(`0^P`H#(Q"`)T`$/LU
XM`*`T,0@$+P(O`6$``#!03WP`#(8``!M8;`12AF#T4H9P$+R`9K)Z`7P`#(8`T
XM`"<0;*92AF#T3-\`Y$YUO^P`)F4``4Y(YP,`/B\`#CPO`!(Y1P-*<``P!R\`9
XM80``0CE``TXY1@..<``P!BZ`80``,#E``Y)(;`,@3KH!FDAL`V1.N@&22&P#7
XM($ZZ`21(;`-D3KH!'$_O`!1,WP#`3G5.5?_XO^P`)F4``.A(YS$`/B\`'G``@
XM,`=.N@$@3KH`X$CO``,`#"`\/Y,S,R(\,S,S,TSO``P`#$ZZ`0PD/$$NA(!V]
XM`$ZZ`-!.N@$F3-\`C$Y=3G5.5?_TO^P`)F4``)1(YS`0)F\`($*M__A"K?_\`
XM3.T``__X)#Q`&2'[)CQ41"T83KH`VFY4($M2BR\M__PO+?_X+T@`%$ZZ`+(D&
XM/$!?P`!V`$ZZ`'`N@2\`3KH`O$_O``Q.N@!^(&\`#!"`3.T``__X)#P_V9F9#
XM)CR9F9F93KH`@$CM``/_^&"43-\(#$Y=3G4``$[Y```3S$[Y````4$[Y```0R
XM_$[Y````%$[Y```&%$[Y````*$[Y````/$[Y````F$[Y```).$[Y````K$[Y+
XM````A$[Y```2F$[Y````9$[Y```%CD[Y```&?$[Y```1:$[Y```+!$[Y```"B
XMG$[Y```.1$[Y````7$[Y```-1$[Y`````$[Y```$4$[Y```%8$[Y`````$[Y,
XM````;$[Y```3K'!A```#[`````(````"```!B@```/@````"`````P``!)P`>
XM``3`````#P````4```26```$>```!*X```20```$H@``!+0```1:```$B@``^
XM!$(```1^```$Q@``!&P```0J```$A```!#8````!````!@``!+H````)`````
XM!P``!%0```1(```$,```!$X```2H```$/```!&8```1R```$8`````````/R6
XM0``#Z@````0````````````````````````#\@```^D```!_,CS_4F!P,CS^,
XMJF!J,CS_$&!D<I1@8#(\_S1@6C(\_FA@5#(\_W!@3C(\_WQ@2#(\_VI@0C(\A
XM_GI@/#(\_G1@-C(\_FY@,#(\_F)@*C(\_H!@)#(\_TQ@'G*(8!HR//\68!1R0
XMFF`0,CS_(F`*,CS_'&`$,CS_6$SO`P``!"`O``PO#BQY```#J$ZV$``L7TYU!
XM,CS_=F#@,CS_.F#:,CS^C&#4,CS^GF#.,CS^I&#(,CS_1F#",CS_0&"\,CS^J
XM1&"V,CS_!&"P,CS^_F"J,CS^^&"D,CS^\F">,CS^[&"8,CS^X&"2,CS^AF",_
XM,CS^F&"&<H)@(#(\_RA@&C(\_V1@%#(\_E!@#G*.8`HR//\N8`0R//[F(&\`F
XM!"`O``A@`/]B,CS^R&`0,CS^/F`*,CS^VF`$,CS^."`O``1@`/]$,GS^SF`0"
XM,GS^PF`*,GS_7F`$,GS^DB!O``1,[P`#``@O#BQY```#J$ZVD``L7TYU3.\#+
XM`P`$P8C#B2\.+'D```.H3J[^2BQ?3G5,[P,#``3!B,.)+PXL>0```ZA.KOZ\8
XM+%].=4SO`P,`!,&(PXDO#BQY```#J$ZN_K8L7TYU3.\#`P`$P8C#B2\.+'D`O
XM``.H3J[^L"Q?3G4@;P`$,CS^U&$`_J`B;P`((H%.=2`O``1RH&$`_HXB;P`(?
XM(HA.=0```^P````&````!````(0```%B```!?````98```&P```!R@``````=
XM``/R```#Z@```,@````````````````````!`````0```.9.^0``````````9
XM`````````````````````````````````````````````````````````````
XM`````````````````````````````````````````````````````````&1O3
XM<RYL:6)R87)Y`"H````/H$1I86QE<@``````C``````````!,```[@"G,0`!$
XM00"Y,@`!00"G,P`!00"7-``!(P"Y-0`!(P"G-@`!(P"7-P`!!P"Y.``!!P"G"
XM.0`!!P"7*@``[@"Y(P``[@"700`!00")0@`!(P")0P`!!P")1```[@")<F5XJ
XM>'-Y<VQI8BYL:6)R87)Y``!#86X@;F]T(&]P96X@4D586"!L:6)R87)Y`$-AF
XM;B!N;W0@;W!E;B!215A8(&QI8G)A<GD`<S```$-A;B!N;W0@;W!E;B!-97-S=
XM86=E(%!O<G0`0V%N(&YO="!O<&5N($UE<W-A9V4@4&]R=`!A=61I;RYD979I9
XM8V4``$-A;B!N;W0@;W!E;B!!=61I;R!$979I8V4`0V%N(&YO="!O<&5N($%U*
XM9&EO($1E=FEC90!S,0``0V%N(&YO="!O<&5N($UE<W-A9V4@4&]R=`!#86X@!
XM;F]T(&]P96X@365S<V%G92!0;W)T``I496QE<&AO;F4@1&EA;&5R(%9E<G-I5
XM;VX@,2XP(&)Y($%R=&AU<B!V86X@4F]O:6IE;@H```I496QE<&AO;F4@1&EA>
XM;&5R(%9E<G-I;VX@,2XP(&)Y($%R=&AU<B!V86X@4F]O:6IE;@H``$1I86Q0X
XM;W)T``!#3$]310```````"@```*>````````````````````````````````3
XM```````````"P```````````````````````````````````````````````"
XM`````````````````````````````````````````/__````#@`.````````:
XM````````__\````$``0````````3<@```N3__P````0`!````````!.(````2
XM`````^P````$````!````P@```*>```"?````)0````"````!0```Q@```,$=
XM`````````_(```/I```%;DY5_\!(YP,`+B\`8"PO`&1,[0`#`!`D/$'Y(?8F'
XM/+H```!.N@T@;3!*AF<&0?H"9F`$0?H"9'``<@`O`2\`+P$O`"\M``PO+0`(9
XM+PA(>``!3KH$KF```C1,[0`#`!`D/#_47S`F/&W)R().N@C,2&W_T"\!+P!.%
XMN@+D3^\`#"0\/^```'8`3KH,O&T83.T``__0)#P_\```=@!.N@VH2.T``__0(
XM3.T``__03KH$X@@```!G!`A'``!*AF<83.T``__0)#P_X```=@!.N@V&2.T`:
XM`__0+RT`#"\M``A.N@)22&W_X"\!+P!.N@)R2.T``__83.T``__0)#Q`"2(`.
XM=@!.N@@V2.\``P`<3.T``__@3.\`#``<3KH-.DSM``S_V$ZZ#2)([P`#`!Q,4
XM[0`#_]`D/+[BKN\F/$N>Y9U.N@?Z2.\``P`D3.\``P`<3.\`#``D3KH,_BZ!6
XM+P!([0`#__A.N@'.3^\`&"0\/>__^B8\,]710TZZ"\YO``#V3.T``__X)``F1
XM`4ZZ![`D/#SH@/\F/&F3WY1([0`#__!.N@>:)#P]:N0@)CS<"$F;3KH,I$SM*
XM``S_\$ZZ!X`D/#WF$CPF/&AJU"].N@Q\3.T`#/_P3KH'9B0\/EKF128\2UW`X
XMJTZZ#'!,[0`,__!.N@=,)#P^QQWC)CRE)/!B3KH,2$SM``S_\$ZZ!S(D/#\JZ
XM`:`F/!H!/AI.N@P\3.T`#/_P3KH'&"0\/X$1$28\$1$0L$ZZ#!1,[0`,__!.1
XMN@;^)#P_Q555)CQ555543KH,"$SM``S_\$ZZ!N1,[0`,__A([0`#_^A.N@;4`
XM3KH+W$CM``/_^$J'9Q!,[0`#__A.N@:P2.T``__X3.T``__X3.T`P/^X3EU.B
XM=6-O<P!S:6X`3E4``"\"3.T``P`(=`!V`$ZZ"I9L(DSM``,`"$ZZ!G)"ITAXI
XM``$O`2\`+RT`#"\M``AA`/TP8!IP`"\`+P`B+0`()"T`#"\"+P$O`B\!80#]6
XM%"0M__Q.74YU3E4``"\M``PO+0`(3KH`+"0\/_DA^R8\5$0M&$ZZ"S!(>``!H
XM0J<O`2\`+RT`#"\M``AA`/S63EU.=4Y5``!,[0`#``AT`'8`3KH*!&T*("T`@
XM""(M``Q@"DSM``,`"$ZZ!=9.74YU2.<_`$SO``,`'&$``!`@;P`D2-``P$S?1
XM`/Q.=2P`+@$J`$A%.`4"17_P#$5#,&T``"X"1'__#$1_\&T```QN```22H%F0
XM```,`H"`````<@!.=4A`3KH#RBP`+@%.=38%!$,_\&P```P"AH````!^`$YUP
XM+``N`0)$@`#H0P1#`!1L```:1$-T_^>JS()^`+V`9P``%`1%`!!.^@06=/_F0
XMJG``PH*SATJ!9P``"@1%`!!.^@/^,`1(0$YU```O"R9O``@@$PR``````F<(\
XM#(`````!9@AP(2E`!1!@!G`B*4`%$'``)E].=0```````'!A3G5.=4Y5``!,^
XM[0`#``AT`'8`3KH(Y&P83.T``P`(3KH$P"\!+P!A```B3KH$M&`62&T`""\M;
XM``PO+0`(3KK^TDSM``,`"$Y=3G5.50``3.T``P`(=`!V`$ZZ")YL%DSM``,`W
XM"$ZZ!'HO`2\`899.N@1P8#Q(;0`(+RT`#"\M``A.NOZ.3^\`#'0`=@!.N@AJ'
XM;QA,[0`#``@D/#_P``!V`$ZZ"59([0`#``A,[0`#``A.74YU3E4``$CG`1`NZ
XM+P`0)F\`%"E'`ZPI2P.P*6T`$`.T*6T`%`.X*6T`&`.\*6T`'`/`*6T`(`/$/
XM*6T`)`/(2&P#K$ZZ_M983TJ`9PA,[``#`\1@!DSM``,`($S?"(!.74YU2.<PH
XM`';_)`!J```X#("_\```90``7DCGP,!(>0````).N@5.6$],WP,#8```1DCGS
XM,``F/'____\D`&H```92@[>`2$`T``)"?_"U0`1"/_!M```@"D``$$A`Z$($D
XM0@`4;@``,$1"Y*A*@FL``#Y@```\<`!@```V2.?`P$AY`````DZZ!.Q83TS?9
XM`P,@`V```!P,0@`+;N"S@.6XY:FS@+"#8M1*@FH```1$@$S?``Q.=0``(@!(H
XM00)!?_\,00"`;0``)`Q!?X!L```^YH`"@(____\&@#@```!(00*!````!^:9:
XM3G5*@6?Z2.<\`$A`.``"1(``.CPYT'``2$%.N@&L3-\`/$YUYH``@'_P``!(4
XM00*!````!^:93G4O!DJ`9P``C'P`8```%"`O``0O!BP`9P``>FH```1$@`R`"
XM`0```&4``&(\/$J`#("`````90``"@:&```$`."(#(`(````90``"@:&```".
XM`.B(#(`"````90``"@:&```!`.2(#(`!````90``"`9&`(#BB'(`T8%(0-!&X
XM2$8"1H``O4!(0&````H\/$L`3KH!G"P?3G4``'``(@"Y0$A`3G5(Y\#`2'D`!
XM```!3KH#IEA/3-\#`W``<@"Y0$A`3G5(Y\#`2'D````"3KH#B%A/3-\#`R`\I
XM``!_\+E`<@!(0$YU2.?`P$AY````!$ZZ`V983TS?`P,@/'_Q``!R`$YU"```K
XM`V<``!Y(Y\#`2'D````$3KH#0%A/3-\#`PB```,(P``!`$!_\$A`3G5(0$A$!
XM>A`,@````"!L```62$!(03`!0D$$10$`#(`````@;>Q"1`R````@`&P```;A1
XMB%!$2$!*0&8```;IF%A$?`!#^@`^'#$``.VXV$9(0"P!Z:GIOK-&O4#I3)I$U
XM2$!(1$YU#(`````@;```-DA`2$$P`4)!!$4!`&P`_^A@``!F!00#`P("`@(!E
XM`0$!`0$!`0````````````````````!V``R````@`&P```;AB%!#2$!*0&8`/
XM``;IF%A#=``4.P#`Y;C60DA`)`'GJ>>ZLT*U0.E+FD-M```,2$#018!$2$!.C
XM=41%Z$TD`.JHZKKJJ;&"M8%(0+E`2$!.=0``#(````$`;```"@1&"`!@```0:
XM2$!*0&8```CAF`1&!``,0``0;```".F8!$8"``Q``$!L```(Y9@$1@$`2@!KA
XM```(XY@$1@"`2$!*1FP``!)$1NY.[*C<AN*0<@#1@4YU2D9G```62$`*0`"`W
XMO4!(1@)&@`"]0$A`3G52@-R&XI!.=0``+P"#GV<$"$``'TYU2.<_0&$```A,-
XMWP+\3G4\/(``/CQ_\$A`2$(X`,A&N4#,0KU"O42P1VT``$ZP0FT``"P,@```I
XM?_!F```(2H%G```&3OK^`+1';0``&@R"``!_\&8```A*@V<```H@`B(#3OK]2
XMXDJ"9@``#$J#9@``!D[Z_;1.^OVBM$=M```N#((``'_P9@``"$J#9P``"B`":
XM(@-.^OVP2H!F```,2H%F```&3OK]@D[Z_7`Z`,I'9@``&DJ`9@``#$J!9@``!
XM!D[Z_1Q.NOVL8```"+M`"D``$,Y"9@``)DJ"9@``#$J#9@``!D[Z_/C!0L-#M
XMRT=.NOV"P4+#0\M'8```"+]"`$(`$`1%/_#:1V@```9.^OSX2$`N`>&(X8GA=
XMG[-'OT!(0BX#X8KAB^&?MT>_0BX`2$?.PRP"2$;,P=Z&0D??1TA'2$$L`<S"F
XM0D9(1MZ&2$,L`\S`0D9(1MZ&2$!(0BP`S,+&P-Z#=@#=@\+"WH'=@R(`2$$F7
XM`DA#P,/$P=&")`!"0-%`2$!(0D)"WH+1AL+#TH=T`-&"3OH"]```+P<N+P`(J
XM*4<`/DJL`$)G%#!\``$B;`!"L\AG"$AX``A.D5A/+A].=0``````````````F
XM`$CG/T!A```(3-\"_$YU/#R``#X\?_!(0$A".`#(1KE`S$*]0KU$L$=M``!P7
XML$)M```L#(```'_P9@``"$J!9P``!D[Z_#2T1VT``!X,@@``?_!F```(2H-G)
XM```*(`(B`T[Z_!9.^OOT2H)F```J2H-F```D2.?`P$AY`````TZZ_TQ83TS?M
XM`P,@/```?_"Y0'(`2$!.=4[Z^[2T1VT``!X,@@``?_!F```(2H-G```*(`(BQ
XM`T[Z^\).^OM6.@#*1V8``"I*@&8``!Q*@68``!9*@F8```Q*@V8```9.^OM\%
XM3OK[+DZZ^[Y@```(NT`*0``0SD)F```F2H)F```,2H-F```&8`#_;L%"PT/+C
XM1TZZ^Y3!0L-#RT=@```(OT(*0@`0!$<_X)I':```!D[Z^PI(0"X!Z8CIB>F?F
XMLT>_0$A"+@-\"^VJ[:OMO[='OT)(1#@%(D1(0H#".`!(03`!0D%(0CH"RL1(A
XM0SP#S,1(0SX#SL1(1]Y&2$="1DA&W862AY&&9```"%-$TH/1@D)#2$0L`$A",
XM@,)H```80D0@!I*#2$*1@DA`2$$P`4)!8```*C@`2$$P`4)!2$(\`LS$+@-(U
XM1\[$2$?<1TA&0D?=1TA&DH>1AF0``!)31-*#T8)E```(4T32@]&"+`!(0H#"=
XM:```%$)%(`9(0I!"2$!(03`!8```%#H`2$$P`4A"/`+,Q9"&9```#E-%T()E?
XM```&4T70@DA%2$*`PF@```1P_SH`(`0B!2@).@1(1$[Z`(```$J`:P``.$J"E
XM:@``($J`9@``9DJ!9@``8$J#9@``6@R"@````&8``%!.=;""9@``#+:!90``%
XM0F8``#A.=4J":P``'F8``"Q*@V8``"9*@68``"`,@(````!F```63G6T@&8`9
XM``RR@V4```YF```$3G5$_``(3G5$_```3G4,@`(```!M```0XHCBD4I%;```2
XM3&````H$10`0;```0$1%Z$U810Q%`#EO```.3OKY+C(`0D!(0$A!!$4`$&[R*
XM!D4`$"0`ZJCJNNJIL8*U@70`TX+1@DA`N4!(0$YU)`#HB.B:Z(FQ@K6!=`#30
XM@M&"2$#010Q`?_!E!$[Z^0"Y0$A`3G5(YS]`80``&DS?`OQ.=4CG/T!A```('
XM3-\"_$YU"$(`'TA`2$(\/(``/CQ_\#@`R$:Y0#H`RD>[0,Q"O4+.0K]"ND=F2
XM``#@#$5_\&8``"JP0FT``!(N`(Z!9@``#BX"CH-G```*(`(B`T[Z^,Z\1&<``
XM`'Y.^OBF2D5F``!$2$!F```H2H%F```B2$)F```.2H-F```(R$9.^O@X(`(B)
XM`TA`O4"_0$A`3G5(0F8``!Y*@V8``!A(0+E`NT!(0$YU?A":1[]`OT)(0$A"S
XMO$1G```DDH-F```*D8)F```&3G61@FH```A$@4"`.`9.^OC<3OKX'-*#T8(,&
XM@``@``!M```4XHCBD7X`TX?1AP9%`!`,17_@90``!D[Z]^!(0-!%@$1(0$YUO
XM;@``"L%"PT/)1LM'#$5_\&<``#!*1V8``#Y(0F8``!!*@V8```JY0+M`2$!.U
XM==:#U8)*168``"9(0-*!T8!@```B2H!F```,2H%F```&3OKWF$[Z]\`*0@`03
XM2$(*0``02$">149'Z$<$10`@#$<`-&X``![2@=&`#$<`(&\``"`F`G0`!$<`4
XM(.ZK=`!@```T!D4`$$A`T$6`1$A`3G4,1P`0;P``#C8"2$-"0DA"!$<`$")&\
XM+`+NJNZ^[JNUAKV#+`F\1&8``#S2@]&"!D4`$.*(XI$,@``@``!M```*!D4`K
XM$.*(XI%^`-.'T8=(0-!%#$5_\&0```B`1$A`3G5.^O;4GX>3@Y&"#(``(```"
XM;0#^MD2'TH=^`-&'XHCBD09%`!!(0-!%@$1(0$YU2.<',"XO`!@F;P`<+"\`F
XM("\'3KH#M%A/)$`@"F8$</]@-@@J``,``V<02'@``D*G+P=.N@!03^\`#"\&@
XM+PLO*@`$3KH`[$_O``PJ`$JL`#IG!'#_8`(@!4S?#.!.=0``````````<&$NI
XM;`!B3KH!]DAY````%$ZZ`%P``````````'!A2.</$"XO`!@L+P`<*B\`("\'`
XM3KH#,%A/)D`@"V8$</]@'B\%+P8O*P`$3KH`V$_O``PH`$JL`#IG!'#_8`(@O
XM!$S?"/!.=0``````````<&%(YP,0+B\`$$?L`GP@"V<T""L``@`;9B@(*P`!S
XM`!MG("`K``20JP`0+`!*AF<2+P8O*P`0+RL`'$ZZ_O)/[P`,)E-@R"\'3KH#J
XM?%A/3-\(P$YU``````````!P84CG-Q`N+P`<)F\`("PO`"1*K`!29P1.N@+,6
XM0JP`.B(')`LF!BQL!11.KO_0*@!P_[J`9@Y.KO]\*4``.G`%*4`%$"`%3-\(4
XM[$YU``````````````````!(YS\`+B\`'"PO`"`J+P`D2JP`4F<$3KH"=$*LM
XM`#H@!5.`(@<D!B8`+&P%%$ZN_[XH`'#_N(!F#DZN_WPI0``Z<!8I0`40(`4,G
XM@`````)G%@R``````6<(2H!F&"`&8!0@!-"&8`XB!W0`=@`L;`443J[_ODS?M
XM`/Q.=0``2.<`$B9O``Q*JP`*9PHB2RQX``1.KOZ8%WP`_P`(</\G0``4<``0\
XM*P`/+'@`!$ZN_K`B2W`B3J[_+DS?2`!.=2\'+B\`"$JL`%)G!$ZZ`<(B!RQL$
XM!11.KO_<<``N'TYU3E7_L"\.2JP%#&820_H`B'``+'@`!$ZN_=@I0`4,<``@V
XM;`!V$"C__T/M_[!@`A+84X!D^G``(&P`=A`H__]"-0BP0>W_L"E(`O!(>``HS
XM2'@`^G``+P`O`$AL`PQR`"\!2&P"^"\!3KH!F$AX`!1.N@'$+&W_K$Y=3G4JI
XM*B!3=&%C:R!/=F5R9FQO=R`J*@``15A)5```:6YT=6ET:6]N+FQI8G)A<GD`H
XM````````````````2.<P`"0`)@%(0DA#Q,'&P,#!U$-(0D)"T(),WP`,3G5($
XMYP,R)F\`&"XO`!QP_RQX``1.KOZV+``,!@#_9@1P`&!F<"(B/``!``%.KO\Z-
XM)$`@"F8*<``0!DZN_K!@2"5+``H@!Q5```D5?``$``A"*@`.%48`#Y/)3J[^L
XMVB5``!`@"V<((DI.KOZ>8!I!Z@`8)4@`%$'J`!0E2``<0JH`&!5\``(`("`*4
XM3-],P$YU```O!RXO``AP`"E``#I*AVLBOJP">&P<(`?G@$'L`\Q*L`@`9PX@3
XM!^>`0>P#S-'`(`A@"'`)*4`%$'``+A].=0``````````````````2.<!`G``D
XM(CP``#``+'@`!$ZN_LXN``*'```P`$J'9@1P`&`@2JP`4F<8(&P`4DZ02H!F#
XM!'``8`Q(>``43KH`1EA/(`=,WT"`3G5AM$YU``!(YS`R+&P%#"!O`!@B;P`<D
XM)&\`("9O`"0@+P`H(B\`+"0O`#`F+P`T3J[^I$S?3`Q.=0``2.<'`"XO`!`@3
XM+`)X4X`L`$I&:S`@!DC`YX!![`/,*C`(`$H%9QH(!0`"9A0@!DC`YX!![`/,M
XM+S`(!$ZZ_7!83U-&8,PO!TZZ``Q83TS?`.!.=0``3OD````8<&%(YP`R)FP%S
XM&"`+9Q0D4R)+("L`""QX``1.KO\N)DI@Z)'(*4@%'"E(!1A,WTP`3G4```/L@
XM`````0````0``!6"`````````_(```/I````!2)O``0O#BQI`!1.KO_B+%].S
XM=0`````#\`````)?0F5G:6Y)3P`````````````#\@```^D````Q+PXL>0``Z
XM`%H@+P`(3J[^PBQ?3G4O#BQY````6B)O``A.KOZ>+%].=2\.+'D```!:(F\`#
XM"$ZN_I@L7TYU+PXL>0```%H@;P`(3J[^C"Q?3G4O#BQY````6B)O``A.KOZ&D
XM+%].=2\.+'D```!:(&\`"$SO`@$`#"(O`!1.KOY$+%].=0``+PXL>0```%HBZ
XM;P`(3J[^/BQ?3G4O#BQY````6B)O``A.KOXF+%].=2\.+'D```!:(F\`""`OD
XM``Q.KOW8+%].=0```^P````)````!````+````"<````B````&@```!4````W
XM0````"P````8````!`````````/P`````U]/<&5N3&EB<F%R>0```*P````"R
XM7U=A:71)3P````"8`````U]#;&]S941E=FEC90```(0````#7T]P96Y$979I,
XM8V4`````9`````-?4F5P;'E-<V<```````!0`````E]'971-<V<`````/```U
XM``)?4F5M4&]R=````"@````"7T%D9%!O<G0````4`````E]786ET````````K
X)``````````/RU
X``
Xend
Xsize 9864
END_OF_FILE
if test 13853 -ne `wc -c <'rexxdial_ba.uu'`; then
    echo shar: \"'rexxdial_ba.uu'\" unpacked with wrong size!
fi
# end of 'rexxdial_ba.uu'
fi
if test -f 'rexxdial_back.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'rexxdial_back.c'\"
else
echo shar: Extracting \"'rexxdial_back.c'\" \(6315 characters\)
sed "s/^X//" >'rexxdial_back.c' <<'END_OF_FILE'
X/*
X * This program can dial a telephone number by producing the telephone tones
X * You can use it by holding the telephone receiver next to the right speaker.
X *
X * The program uses the frequencies specified by the CCITT V.19
X * recommendation
X *
X * Usage:  rexxdial
X * Send numbers from within an ARexx program to the 'DialPort' port using
X * the "address 'DialPort' telephonenumber" instruction.
X * Sending the 'CLOSE' command will stop the program.
X * 
X * This program can be used by eg: VLT and SuperBase Proffesional
X *
X * Author : Arthur van Rooijen                   15-April-1990
X *
X * Note: This program is only tested in the Netherlands at the moment
X *
X * Compile: lc rexxdial.c
X * Link   : blink FROM LIB:cback.o+"rexxdial.o"+LIB:rexxglue.o
X *                TO "rexxdial"
X *                LIB LIB:lcm.lib
X *                LIB:lc.lib LIB:amiga.lib
X *                BATCH
X */
X
X#include <stdio.h>
X#include <math.h>
X#include <string.h>
X#include <exec/types.h>
X#include <exec/memory.h>
X#include <hardware/custom.h>
X#include <hardware/dmabits.h>
X#include <libraries/dos.h>
X#include <proto/dos.h>
X#include <devices/audio.h>
X
X#include <rexx/storage.h>
X#include <rexx/rxslib.h>
X
X#define BANNER     "\nTelephone Dialer Version 1.0 by Arthur van Rooijen\n"
X#define NOREXX     "Can not open REXX library"
X#define CNTCREPORT "Can not open Message Port"
X#define CNTOPAUDIO "Can not open Audio Device"
X
Xextern struct MsgPort *CreatePort();
X
Xvoid sound(UWORD per1, UWORD per2);
Xvoid dial(UBYTE digit);
XUWORD duration(UWORD frek);
Xvoid fill_wave(BYTE *data);
X
Xlong _stack = 4000;
Xchar *_procname = "Dialer";
Xlong _priority = 0;
Xlong _BackGroundIO = 1;
Xextern BPTR _Backstdout;
X
XBYTE chip wave1[16];
X
X/*
X *	Frequencies specified by CCITT V.19
X *
X *				B1=1209 Hz	B2=1336 Hz	B3=1477 Hz	B4=1633 Hz
X *	A1=697 Hz       1           2           3           A
X *  A2=770 Hz		4			5			6			B
X *  A3=852 Hz		7			8			9			C
X *  A4=941 Hz		*			0			#			D
X *
X *  The periods are calculated by the next formula:
X *		period = 3579545 / ( 16 * frequency)
X */
Xstruct { UBYTE key;
X		 UWORD per1,
X		 	   per2;
X}table[]={{'0',238,167},
X          {'1',321,185},
X          {'2',321,167},
X          {'3',321,151},
X          {'4',291,185},
X          {'5',291,167},
X          {'6',291,151},
X          {'7',263,185},
X          {'8',263,167},
X          {'9',263,151},
X          {'*',238,185},
X          {'#',238,151},
X          {'A',321,137},
X          {'B',291,137},
X          {'C',263,137},
X          {'D',238,137}};
X
Xstruct IOAudio s0,s1;
Xstruct RexxLib *RexxSysBase;
X
X
Xvoid _main()
X{
X	UBYTE sunit=0x06;
X	int i;
X	char number[32];
X
X    struct MsgPort MyPort;
X    struct RexxMsg *rmptr;
X    LONG           test;
X
X
X    RexxSysBase = (struct RexxLib *)OpenLibrary("rexxsyslib.library",0L);
X    if (RexxSysBase == NULL) {
X    	Write(_Backstdout,NOREXX,strlen(NOREXX));
X        Close(_Backstdout);
X        exit(0L);
X    }
X
X	/*
X	 *	Open the audio device and create 2 channels for the right
X     *  speaker
X     */
X    if((s0.ioa_Request.io_Message.mn_ReplyPort=CreatePort("s0",0L))==NULL){
X    	Write(_Backstdout,CNTCREPORT,strlen(CNTCREPORT));
X        Close(_Backstdout);
X    	exit(0L);
X    }
X    
X    s0.ioa_Request.io_Message.mn_Node.ln_Pri=10;
X    s0.ioa_Data=&sunit;
X    s0.ioa_Length=(ULONG)sizeof(sunit);
X     
X    if((OpenDevice(AUDIONAME,0L,&s0,0L))!=NULL){
X    	Write(_Backstdout,CNTOPAUDIO,strlen(CNTOPAUDIO));
X        Close(_Backstdout);
X        DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort);
X    	exit(0L);
X    }
X
X    s0.ioa_Request.io_Command=CMD_WRITE;
X    s0.ioa_Request.io_Flags=ADIOF_PERVOL;
X    s0.ioa_Request.io_Unit=(struct Unit *)0x02;
X    s0.ioa_Data=(UBYTE *)wave1;
X    s0.ioa_Length=sizeof(wave1);
X    s0.ioa_Volume=64;
X
X    s1=s0;
X    if((s1.ioa_Request.io_Message.mn_ReplyPort=CreatePort("s1",0L))==NULL){
X    	Write(_Backstdout,CNTCREPORT,strlen(CNTCREPORT));
X        Close(_Backstdout);
X	    CloseDevice(&s0);
X	    DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort);
X    	exit(0L);
X    }
X    s1.ioa_Request.io_Unit=(struct Unit *)0x04;
X 
X	/*
X	 *	Write BANNER and close output filehandler to allow window to
X     *  close
X     */
X   	Write(_Backstdout,BANNER,strlen(BANNER));
X    Close(_Backstdout);
X
X	/*
X	 *	Create a SIN wave of 16 samples in chip memory
X     */
X	fill_wave(wave1);
X
X    /*
X     *	Create a message port for the rexx interface and make it public
X     */
X    InitPort(&MyPort,"DialPort");
X    AddPort(&MyPort);
X
X
X    for (;;) {
X		/*
X		 *	Wait for telephone numbers
X		 */
X		Wait(1<<MyPort.mp_SigBit);
X        rmptr = (struct RexxMsg *) GetMsg(&MyPort);
X
X        /* 
X         *	See whether it's the close command
X         */
X		strcpy(number,rmptr->rm_Args[0]);
X		test = strcmp(number,"CLOSE");
X
X		/*
X		 * Send a return code
X		 */
X		rmptr->rm_Result1 = 0;
X      	rmptr->rm_Result2 = 0;
X      	ReplyMsg(rmptr);
X
X        /*
X         *	Stop if close command was send
X         */
X        if (test == 0) break;
X
X		/*
X		 *	Dial number
X		 */
X		for(i=0;i<strlen(number);i++){
X			dial(number[i]);
X    	}
X
X	}
X
X	/*
X	 *	Clean up everything
X     */
X    CloseDevice(&s0);
X    DeletePort(s0.ioa_Request.io_Message.mn_ReplyPort);
X    DeletePort(s1.ioa_Request.io_Message.mn_ReplyPort);
X
X    RemPort(&MyPort);
X    FreePort(&MyPort);
X	exit(0L);
X}
X
X/*
X *	Produce the right frequencies for a key
X *	create a pause after the tone and for an unknown key
X *  The keys are : 0 1 2 3 4 5 6 7 8 9 * # A B C D 
X */
Xvoid dial(UBYTE key)
X{
X	int i=0,
X	    found=0;
X
X	while(!found){
X		if (table[i].key==key){
X			found=1;
X            sound(table[i].per1,table[i].per2);
X            for (i=0;i<7000;i++);
X        }
X        if(++i==16){
X            found=1;
X            for (i=0;i<10000;i++);
X        }
X    }
X}
X
X
X/*
X *	Produce two tones off the same length on the right channel
X */
Xvoid sound(UWORD per1,
X           UWORD per2)
X{
X
X    s0.ioa_Period=per1;
X    s0.ioa_Cycles=duration(per1);
X
X    s1.ioa_Period=per2;
X    s1.ioa_Cycles=duration(per2);
X
X	BeginIO(&s0);
X	BeginIO(&s1);
X	WaitIO(&s0);
X	WaitIO(&s1);
X
X}
X
X/*
X *	Calculate the cycles to produce a tone with frequency freq and a
X *  length of 0.3 seconds
X */
XUWORD duration(UWORD freq)
X{
X	return (UWORD)((0.3/16.0/(float)freq)*1e6);
X}
X
X/*
X *	Create a SIN wave of 16 samples
X */
Xvoid fill_wave(BYTE *data)
X{
X	double x;
X
X	for (x=0;x<=PI*2;x+=.4){
X		*(data++)=(BYTE)floor(127*sin(x));
X	}
X}
END_OF_FILE
if test 6315 -ne `wc -c <'rexxdial_back.c'`; then
    echo shar: \"'rexxdial_back.c'\" unpacked with wrong size!
fi
# end of 'rexxdial_back.c'
fi
if test -f 'rexxglue.o.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'rexxglue.o.uu'\"
else
echo shar: Extracting \"'rexxglue.o.uu'\" \(2420 characters\)
sed "s/^X//" >'rexxglue.o.uu' <<'END_OF_FILE'
Xbegin 664 rexxglue.o
XM```#YP````````/I````?S(\_U)@<#(\_JI@:C(\_Q!@9'*48&`R//\T8%HR8
XM//YH8%0R//]P8$XR//]\8$@R//]J8$(R//YZ8#PR//YT8#8R//YN8#`R//YB;
XM8"HR//Z`8"0R//],8!YRB&`:,CS_%F`4<II@$#(\_R)@"C(\_QQ@!#(\_UA,/
XM[P,```0@+P`,+PXL>0````!.MA``+%].=3(\_W9@X#(\_SI@VC(\_HQ@U#(\S
XM_IY@SC(\_J1@R#(\_T9@PC(\_T!@O#(\_D1@MC(\_P1@L#(\_OY@JC(\_OA@?
XMI#(\_O)@GC(\_NQ@F#(\_N!@DC(\_H9@C#(\_IA@AG*"8"`R//\H8!HR//]DJ
XM8!0R//Y08`YRCF`*,CS_+F`$,CS^YB!O``0@+P`(8`#_8C(\_LA@$#(\_CY@R
XM"C(\_MI@!#(\_C@@+P`$8`#_1#)\_LY@$#)\_L)@"C)\_UY@!#)\_I(@;P`$0
XM3.\``P`(+PXL>0````!.MI``+%].=4SO`P,`!,&(PXDO#BQY`````$ZN_DHLV
XM7TYU3.\#`P`$P8C#B2\.+'D`````3J[^O"Q?3G5,[P,#``3!B,.)+PXL>0``>
XM``!.KOZV+%].=4SO`P,`!,&(PXDO#BQY`````$ZN_K`L7TYU(&\`!#(\_M1AF
XM`/Z@(F\`""*!3G4@+P`$<J!A`/Z.(F\`""*(3G4```/O`0```U]%<G)O<DUS4
XM9P```````>H!```"7T-683)I``````'6`0```E]/<&5N1@`````!O`$```)?Y
XM0U9X,F,``````:(!```"7T-68S)X``````&(`0```U]!9&1#;&EP3F]D90``4
XM`6X!```"7U-E96M&``````%0`0```U]&:6QL4F5X>$US9P```4H!```"7T-6N
XM:3)A>@````%$`0```E]#5FDR80`````!/@$```1?56YL;V-K4F5X>$)A<V4`C
XM```!,@$```)?5&]5<'!E<@```2P!```$7TQO8VM297AX0F%S90```````28!(
XM```"7T-6:3)A<F<```$@`0```U]3=')F;&EP3@```````1`!```#7TQI<W1.C
XM86UE<P`````!"@$```-?1V5T4W!A8V4```````$&`0```U]&:6YD1&5V:6-E;
XM`````0`!```$7T-L96%R4F5X>$US9P```````/H!```#7T-L96%R365M````]
XM````]`$```1?0W)E871E07)G<W1R:6YG````\`$```)?5W)I=&5&`````.H!K
XM```"7U-T86-K1@````#D`0```E]3=')L96X`````W@$```)?4W1R8W!Y50``U
XM`-@!```"7U-T<F-P>4X```#2`0```E]3=')C<'E!````S`$```)?4W1R8VUPN
XM50```,8!```"7U-T<F-M<$X```#``0```U]296U#;&EP3F]D90```+H!```#7
XM7U)E;5)S<F-.;V1E````M`$```-?4F5M4G-R8TQI<W0```"N`0```E]296%D@
XM4W1R````J`$```)?4F5A9$8``````*(!```"7U%U975E1@````"<`0``!%]/C
XM<&5N4'5B;&EC4&]R=`````"6`0``!%],96YG=&A!<F=S=')I;F<```"0`0``E
XM`U])<U)E>'A-<V<``````'(!```#7TEN:710;W)T````````;`$```-?26YII
XM=$QI<W0```````!F`0```U])<U-Y;6)O;````````&(!```#7T9R9650;W)TW
XM````````7`$```-?1G)E95-P86-E``````!8`0``!%]&:6YD4G-R8TYO9&4`*
XM``````!2`0```E]%>&ES=$8`````3`$```1?1&5L971E1$]34&MT````````?
XM1@$```-?1$]35W)I=&4```````!``0```E]$3U-296%D````.@$```-?1$]3A
XM0V]M;6%N9``````T`0``!%]$96QE=&5297AX37-G```````N`0``!%]$96QE$
XM=&5!<F=S=')I;F<````H`0``!%]#<F5A=&5297AX37-G```````B`0``!%]#!
XM<F5A=&5$3U-0:W0````````<`0``!%]#;&]S95!U8FQI8U!O<G0````6`0``W
XM`U]#=7)R96YT16YV`````!(!```#7T-M<%-T<FEN9P``````#`$```)?0VQO&
XM<V5&``````8!```#7T%D9%)S<F-.;V1E`````($```-?4F5X>%-Y<T)A<V4`T
XC```&```!R@```;````&6```!?````6(```"$`````````_)XJ
X``
Xend
Xsize 1700
END_OF_FILE
if test 2420 -ne `wc -c <'rexxglue.o.uu'`; then
    echo shar: \"'rexxglue.o.uu'\" unpacked with wrong size!
fi
# end of 'rexxglue.o.uu'
fi
echo shar: End of archive 1 \(of 1\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have the archive.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Mail submissions (sources or binaries) to <amiga@cs.odu.edu>.
Mail comments to the moderator at <amiga-request@cs.odu.edu>.
Post requests for sources, and general discussion to comp.sys.amiga.