Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!batcomputer!cornell!uw-beaver!zephyr.ens.tek.com!master!saab!billr From: billr@saab.CNA.TEK.COM (Bill Randle) Newsgroups: comp.sources.games Subject: v12i068: cdungeon - C language port of DECUS dungeon, Part01/12 Message-ID: <1230@masterCNA.TEK.COM> Date: 14 May 91 23:49:00 GMT Sender: news@masterCNA.TEK.COM Lines: 1235 Approved: billr@saab.CNA.TEK.COM Submitted-by: ian@airs.COM Posting-number: Volume 12, Issue 68 Archive-name: cdungeon/Part01 Environment: Unix, MS-DOS [This is a C port of the f77 port of DECUS dungeon that appeared in comp.sources.games, volume 2, issues 34-47. It should compile and run OK under MS-DOS, as well as Unix (although I haven't tested it). -br] #! /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 'README' <<'END_OF_FILE' XThis is a source file distribution for the game dungeon as implemented Xin C. It is based on the game dungeon as distributed on a DECUS tape, Xcirca 1980. It has been converted from the original DEC FORTRAN to Xf77 to C. See the file "History" for some revision history and credit Xto those whose efforts have made this possible. X XTake a look at the Makefile. It should be fine for most systems, Xalthough you may want to change BINDIR and LIBDIR. On SCO UNIX see Xthe note at the definition of CFLAGS. Makefile.MSC should work for XMS-DOS using Microsoft C. It was contributed by Jonathan Mark X(uunet!microsoft!jonm). X XTo compile and link dungeon, type make. To install it in BINDIR and XLIBDIR, type make install. X XThere are two functions in local.c that you may want to write for your Xsystem. The first controls when the game can be played, and can be Xused to disallow play during business hours, for example. The second Xcontrols who is allowed to invoke the game debugging tool; note that Xthis will only be available at all if you uncomment the GDTFLAG line Xin the Makefile. The comments in local.c explain what to do. X XAll files in the distribution kit are ASCII. The files dtextc.uu1, Xdtextc.uu2, dtextc.uu3, dtextc.uu4 are parts of a uuencoded binary Xfile named dtextc.dat. The Makefile will create the binary file Xautomatically on a UNIX system; elsewhere you will have to stick the Xfour files together in numerical order and run the resulting large Xfile through uudecode. I can't help you find uudecode, though. X XThe binary file dtextc.dat holds the text strings and initialization Xinformation for the game. The strings are encrypted to prevent easy Xcheating; if you want to do further work on the program, or translate Xthe strings, Ian Taylor (address below) has a program to convert this Xfile back and forth from a human-readable form. X XThis has been compiled and tested on a DECstation 3100 running Ultrix X4.0, a VAXstation GPX running Ultrix 3.1, an 80386 box running SCO XUnix 3.2.2, an 8800 running Ultrix, a Sun box running SUN OS 4 release X4, and an 80386 PC running MS-DOS. X XI consider my changes to be in the public domain, as did previous Xcontributors (see the History file for more detail). The original Xsource, however, is copyright. X X Ian Lance Taylor X ian@airs.com or uunet!airs!ian X 11 March 1991 X XDungeon consists of the following files: X X dmain.c -program root X dgame.c -main routine X dsub.c -resident subroutines X dinit.c -initialization routine X np.c -parser, part 0 X np1.c -parser, part 1 X np2.c -parser, part 2 X np3.c -parser, part 3 X gdt.c -game debugging tool X verbs.c -principal verbs X objcts.c -principal objects X sverbs.c -simple verbs X dverb1.c -auxiliary verbs, part 1 X dverb2.c -auxiliary verbs, part 2 X actors.c -character processors X demons.c -demon processors X clockr.c -clock event processors X rooms.c -room processors X nrooms.c -new room processors X sobjs.c -simple objects X nobjs.c -new objects X ballop.c -balloon processor X lightp.c -light processors X villns.c -villain processors X dso1.c -overlaid subroutines, part 1 X dso2.c -overlaid subroutines, part 2 X dso3.c -overlaid subroutines, part 3 X dso4.c -overlaid subroutines, part 4 X dso5.c -overlaid subroutines, part 5 X dso6.c -overlaid subroutines, part 6 X dso7.c -overlaid subroutines, part 7 X funcs.h -header file with function prototypes X vars.h -header file with variable definitions X parse.h -header file for parsing routines X supp.c -support routines and more processing X local.c -hooks for local definition X dindxc.dat -data base [binary file] X dungeon.6 -man page X Makefile -Makefile X Makefile.MSC -Makefile for MS-DOS and Microsoft C X History -Some revision history notes X README -This file END_OF_FILE if test 3775 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi # end of 'README' fi if test -f 'MANIFEST' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'MANIFEST'\" else echo shar: Extracting \"'MANIFEST'\" \(2543 characters\) sed "s/^X//" >'MANIFEST' <<'END_OF_FILE' X File Name Archive # Description X----------------------------------------------------------- X History 11 Some revision history notes X MANIFEST 1 This shipping list X Makefile 4 Makefile X Makefile.MSC 12 Makefile for MS-DOS and Microsoft C X README 1 general information X actors.c 11 character processors X ballop.c 12 balloon processor X clockr.c 8 clock event processors X demons.c 9 demon processors X dgame.c 11 main routine X dinit.c 10 initialization routine X dmain.c 1 program root X dso1.c 12 overlaid subroutines, part 1 X dso2.c 9 overlaid subroutines, part 2 X dso3.c 11 overlaid subroutines, part 3 X dso4.c 12 overlaid subroutines, part 4 X dso5.c 12 overlaid subroutines, part 5 X dso6.c 12 overlaid subroutines, part 6 X dso7.c 2 overlaid subroutines, part 7 X dsub.c 10 resident subroutines X dtextc.uu1 3 data base, part 1 [uuencoded binary] X dtextc.uu2 4 data base, part 2 [uuencoded binary] X dtextc.uu3 2 data base, part 3 [uuencoded binary] X dtextc.uu4 1 data base, part 4 [uuencoded binary] X dungeon.6 11 man page X dverb1.c 7 auxiliary verbs, part 1 X dverb2.c 9 auxiliary verbs, part 2 X funcs.h 3 header file with function prototypes X gdt.c 5 game debugging tool X lightp.c 12 light processors X local.c 12 hooks for local definition X nobjs.c 7 new objects X np.c 10 parser, part 0 X np1.c 11 parser, part 1 X np2.c 11 parser, part 2 X np3.c 10 parser, part 3 X nrooms.c 10 new room processors X objcts.c 6 principal objects X parse.h 5 header file for parsing routines X rooms.c 8 room processors X sobjs.c 7 simple objects X supp.c 11 support routines and more processing X sverbs.c 9 simple verbs X vars.h 1 header file with variable definitions X verbs.c 6 principal verbs X villns.c 8 villain processors END_OF_FILE if test 2543 -ne `wc -c <'MANIFEST'`; then echo shar: \"'MANIFEST'\" unpacked with wrong size! fi # end of 'MANIFEST' fi if test -f 'dmain.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'dmain.c'\" else echo shar: Extracting \"'dmain.c'\" \(487 characters\) sed "s/^X//" >'dmain.c' <<'END_OF_FILE' X/* DUNGEON-- MAIN PROGRAM */ X X/*COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142*/ X/* ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED */ X/* WRITTEN BY R. M. SUPNIK */ X X#define EXTERN X#define INIT X X#include "funcs.h" X#include "vars.h" X Xvoid main(argc, argv) Xint argc; Xchar **argv; X{ X/* 1) INITIALIZE DATA STRUCTURES */ X/* 2) PLAY GAME */ X X if (init_()) { X game_(); X } X/* !IF INIT, PLAY GAME. */ X exit_(); X/* !DONE */ X} /* MAIN__ */ END_OF_FILE if test 487 -ne `wc -c <'dmain.c'`; then echo shar: \"'dmain.c'\" unpacked with wrong size! fi # end of 'dmain.c' fi if test -f 'dtextc.uu4' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'dtextc.uu4'\" else echo shar: Extracting \"'dtextc.uu4'\" \(34586 characters\) sed "s/^X//" >'dtextc.uu4' <<'END_OF_FILE' XM>@U:86]$)6)V(E1M86(M'VYO6V)S2'L[9G-/LU\67U,[FP<#CK,?@ XM^>"LO.GJZ^SM[N_:_//)\+OZ](S_XN7_YM>-"$`$(!%+%08QUQ54YZ&SM65WQ11E16#WM+"79E6W=N:G=/*&!K XM8G@D;VUX>4UP.WQA#'DC9'YN6&'IB(FNE_ XME8*;G\^DA(6E[("CZZ:MG:33JZRMKJ^MN+F-L/N\HVMX6XX-/%^\"+ XMS\/XS9/!RMCQS_#>V;_=WL?7HKC:V]S=WM_#X>C*I>WLY!A0'`RU- XM"C4X1F4C(#`99E,K+"TN+Q$E.QIU/SPS`3%5II2D89,UU>7UUR8U]M=N(R/DO.=GI^]J*F=H.NL XML=R[O*JF_Y.\C;6NW[V^I[?"V+J[O+V^O_C5S>'1PM';O,?5A]3>\-CKL-+3 XMU-76U\V8P=C'V_C(B>G_C_;B\?;5YO2G[/&$Z='UO,OT^?GW@ICZ^_S]_O\= XM"`D]`$L,$7P)4PL"#2,8>1,3-AE;&A1L"@P'%D\\"!LE8F\D)28G#B)SPP<@\W*CMS(!)M>T]<:@5"5@)P45I)1!]M4SE$5'H56%I`8EU1 XM&3-=7E]]:&E=8"ML<1QI,VEB;%!D%'QS4'YR>W4,3$R,S0U-C6%AH>NG8"3FM^OD["6F=^4E9:7CIV0GI>*])F!I>R< XMKJZIIXBGO>>JK,2\V:*IC*&B];F"L:6R_<^^O]W(R?W`B\S1O,F3Q=;-ZMC] XMG=/JP9O9T^+,QL7=C_S(V^6BK^3EYN?>_>'IYON)\LSDO-/T]>'WWO:#^_S] XM_O\="`EO`0X&!ST;%@-#'B`+/!X(*@<>!U4_6!8$%@,Q'AI@(`XK/R`P$F@Z XM-&,W`2\''100D82 XM9%U14ATO7E]:97@/:FTE<5=M?V)W<$H]4G5E3!5U=G=M.'!\=F-1>::.P.^5 XMF8J`O8J?GL.+K)CY@IFRE)*;@>R7A=>2S[B8BJN@BK:XY:.8OK:IMZJ6N(O\ XM_).\OJ;RA+VQLOW/OK_ZR\GCP-_*S)S)RLO,S<[/V-Z<\-G?E=[IV=??UMVT XMS\CGH(_G_NGEU>;TI_3VT/69\_/6^^BYLL7KH__V_=&C20$"`P0%!@<^"11' XM#!ED'C89$BQU%187&!`&!19//1Y)(6P#)#DB)UPX/R8W-@HH%'`^'B=[/3<> XM/6U7/#T^/WE,37M,15!//$I252--3D]-6%EM4!M<02Q9`T=63F9!"6YI3&YG XM9&%9*'MB<7H$:E!D=!]];GMV7GUG9#-@4BVE@9ZH@,N5A[V:GY3-_XZ/J96= XMK9G;FY>ODX^6D(K4GX2IOIVJN<6GO>B^IK"LQ+*?\+6GIY'M XM_L7?^\#9RX+TR=_!@]#BG>W8V;_'U-K?HKC:V]S=WM_.[.W,[.[W@NC@]O7F XMO\WNF?&\TOKY[++>[>'NL^/-Y"<'3"<`&0!,7`D*"PP-#@\K!1XF=146%P,6 XM0P,;"G0+!2\C'64G+"&)B]#1^'BK9_N[][_\-NU^/KTRO'M XME_S]_O\="`D]`$L,$7P)'4<*"2L/(%`(,`<8'5(D'1$276\>'QTO/@PM2R8G XM+R$G,RHQ`WT6/GP+/3YU(@D\)B0G+AAM8%,,;@5-24-Q05U``TMK3WI8$#]8 XM6E%7+%=%%UI9>U]0+@QC9&5F9WU\,W-K>@1X5W0\4',[87I).&!_.-CH^[D8^TD(_UEYB0AH66S[V>R:'LG*2[M:J5NK;JIK&' XMKXRCJ)JQ^[>@C;NFN[:[U*7LTLFAI<7&Q^_)P]?+UO;8N=+._M;>V=?XN-K; XMW-W>W_WHZ=W@J^SQG.FS]^KSP;W6]KS(^O3Q]\*X]_[^[='_.D`$*A<.2V(L XM`1\"0Q`B72T9$3T0"09R&!`&!19//1Y)(6P+("4Q)QAH(#,F.@A]&S\D7ST^ XM)S="6#H[/#T^/WI426I)"T=-9"A*2TQ-3D]-6%EM4!M<02Q9`V1'775)0'9M XM76Q^=B)4;6%B+1]N;U]Q1-]?G^=B(F]@,N$D+G(G(N'WZ&3 XMOH*=J9R5DH'LEXW7AX>QS9ZAH(.VZZVGCJW]QZRMKJ^.L;"3]:R\IH3XIKFT XMO96[X,[+_*7%QL?(P-:'QM'CS_C&U?'2R)7%ZB/[.6E]M3M XML^OJZS,]'C5O=REM/%4)I5U-;5EPT0D\@5D!W8"LB'%MX;F]S0FA5 XM?&4??'5A=UYO;&%V811ZH)2$[Y&#@,*^B8#'D9JHE+R6C]64B9#2J8"`DH&? XMH)[)J:"#L+BQL)V\NJFD_Y"UG/"QGK^TI_*8O:VRI[S4J/'0P_K+S\#&O,K* XMA]?7X9WJT=_MT-^_QNG`U\23P/*-W>CIC_?NZ>O;X?SIH_#"O50$I'0X$>1L[30$A.@IE XM*"HL#R$W(C$Z`'T-.#D2=3DY,Q\H*S(^(`$^*4%":P5!4%%H"%)4`TQO5'5< XM6FI95TP2:4!`7D!*<`U=:&E"*PMF9VA@=G5F/TUN&7%R'W!C86!)=69[:B]" XM;*65C:V)CL7*K(V!CX*/M]VV@I6XG)64GN78A(62AKC-@:6^BNO+IJ>;NK*N XMK]^NKXFBO8:PJ=6WN+"F]Z.]E;3LTHSFUHO,S._+P<[!VN"=\-Z<_MN;U-SO XMT<;9QX_GSMOI_-NE_.WKW^"S[O"_S/S+]/#&G^GP_\GUX?+AZM"M/0@)/`!+ XM`0,E&U]'#@HG%7D<&2P&6P`<*!T1!`<`.PE'8&PX+2HQ8A`A)S,O.D0R'W`U XM"W4X-#QF.B9W/BX0*"E/67L%6$!'<5L34TP?9E@Y41Q[7%I!0&5:1A=22'5$ XM1W-X#W9F9&Y0*'II<'I':4H\/%YW:'!\6#4)>GIA4&BMCHF\EL?%@[*,TY.+ XMFN2-L).7MIN\V(*9E\^PGX:PO(:KK.6MFNB@JJ*SB/V6LK::MJ^F_,SX XME[^VQ9*DY\'`K]/.U]'YB,#"QM+WG>W?G/S:U<;;Z]:#P\'*Y]W(\__*]_BE XM]M.HY^_FO\C\U_2\T/.[X?K)DN?R\NN:K6DA`"-%#A,+.`T=!`9?+1,]&1\^ XM`1X&4C@0`@-3&SP(22(I`RPN(S%<)S5G-SXR)F"E)JHCO?PDI.4E9:7N(J6 XMF9C/HX2=J.R%H+R@KH_(JJNLK:ZOM:FUD;+[O;.`ON.UIKV=J.V`Q>&%W\W' XMO,7&PX/6]YWXWISPV=^5QO[-S=R?C_;8Q>?EP>*K\NO(X+/MYNC!\!Q=B>!H;'!T>'PLE XM(`-%)28G,#$Z*21_#3-9)#0:=3@Z(`(],7<\*50Y844,?4I$2`)U6Q-&`TQI XM7'5<''U'6D9!+%I&6U\!%%]]:&E=8"ML<1QI,VMB;4-X&7)P7G9P-7!#=V@W XM>VI&:.?@@H.$A8:'OH>LH.*> XMI+*DJ/^&LI:[\-^ZJ["\S*RL]Z.NDZBIE9JVBZO&QY6A\,C.TN73_=W9\<&; XMEH.^C9J%N>#\C=#EK-CMY*7ETZCRY>SJT+W*\>76^_RUY\+L[+?V[M?E:0\8 XM)P`97T)\2CL"#Q,K72H1%3,:"5=(1CP,!`=/(`4&-6P$*R0R8@@@-F!]W?F%E27UM-V=X6RVZE(.A@)C+Z(^` XMDHN/W["5O-"=L9*)C-*KEX>$TXRUGIW@N(>\ZZ>MF+'SKJVKB_V-N+G?HK.\ XMH("HK+B_\/Z>_-+)X]R'A=;TT9/"VMJDSO'1T/.5V="2_,W7E]S:X(W>Z?C' XMI>JE\=3IX?>C[-#TVON]M=#M\/R,[>WC_*_`Y2Q`"2$!&$4-.D@'#P9?(1PK XM!!1_!A,4'CA8%Q\<&G0:""XH"C=K)"P80B8I-S!$*1$U?!,T-3%R`SYC(SLJ XM5"EL04@O5D-$3F@(1T],2B1??!!/>EM/%5-X&$]60%LZ)WIU?DIILK:ZOB;&UC?6TL_*/N:VSOZJ'S<;.C/O- XMSH76Z\>3PLW;]YWVUISKW=Z5T^#,PL63SN;(B>+YW>OBZ^60 XM\O/T]?;W^/#FY?:OW?YI`4P["AX70CL=&@,&'2L2,E`4.@<>6W(X%Q8%4P@A XM!`TE+@`J($4G/6@T,BH[`3\6/S=?,#4A.Q@T)C-S;3(!1F]H+V9D:W9.9W\' XM9WY)'3H#'C]<2!5=8AA77U8E9DA*97Q;;&1K(EAM8&PM'VYO,!D\'S5<8'M( XM?2-5?&!?+9V/YL;LK8F-LXS3I(R1L(^VG-R;E);5T?_RZ=?3J;B"AJ3LC*JE XML;"3I/.CHK+$_LKP]+F6G_7QW_'CH+*\U*[FSM_[U][&UOG,D\[-G_W8^,*< XMJ(V(E=WJF-??UJ73W\SA^(_0Y>'GSN_AZ/;QP+W\_>S6Y_ZUYL.XZ_;AX='^ XM.D`8)P!+`0:DDY7UH_!@P57V54 XM3UY<01Y71G)G0FQO=B):>GQJ(VM,>!ES>5%A:71^#'IV979N06Z[@8^VQ8J+ XMAOR1G)*1WZN*M]"3LIN2A9VXG8V#TX.[CHBLQIN\N:2LB.B?J+&[Q)F0O:N6 XMH?N3OHVLJ[*RJ]2YX<6,RMW(P-'OP<7"C9^DZ?'9S[_%4!I2T9%14!]7PEC?DID?V!F XM'&IV;VIQ0!=->'D?<7IX,D1Y<#=R+T)BI96!JL6$@\+OW].%BI.HE+:>W+R` XMF9R1[)Z&DH?#](R'X*V=H*KEK9KHXO7CLHVQE;FSD=^HI*>-JJ;WM:J1N:6` XMS>'!B\2"[\#T5=>DQ90$8\ XM21-03$UO'7]?3GQ0&UI4+`L;`Q-<>$Q?97\#)3@Q(D]D.&9Y=&9::*R2G^/%V<66J9J'BX;?H)*OE8_SU9J;ENR9PX>2G:"?@*2K XMBN6BJ^*=Z*.BHJWNJ8NUN='U^X&ZB?BTN*&DU+KHTXSBQ,7$Q?G,D\7:G^6= XM^M_1\M35T9+XW<+:D\S[P-GO_\KAJ^KDG+J@LXG]T>_<\>G*A$*%PLY&U-/`@MD$3P1#RM5#P(=;!<%5P0'.P!)(R,:*2]E-@4X XM-FYO555O56)I274K-"()*F,D.SH2*V5%7GP)"Q`0,!P%'@--<5][54X_1D]4 XM7WQ=440?#R89'"P]%C8K=V=8*&=F7>S\J=2YX<6,XLK9P(+UQL?"T=KWR?#>V[_3WM3&^7_R[7B^N>,]^VW\J_3^"`$"2M%'PH7+D@< XM`4,++!AY%AT\'!<4$HT0D<@=4!P XM>25P56][]-CKL-+3U-76UX6Q@^+@C]KH_M.LB:7/T,S[S=S) XMH\WAS?;"R+6DJKC?["#JOCGS-B%U/G:P,[, XMT:32_Y#XZMO^?]_[P_(S[ XM[/KCX]'Y+`P511<.#`\L!!8*!A$P&#U0%3%5/3H@&"HB.5XF`DT/,B,"93\M XM)UPG(2XD-@H\%7`1.QE[)CT9*B`R(&\7/VQ!6&I!(416/&5ZJL-7(JJNLK:ZOK;BYC;#[O*',N>.Z XMLKN7I>O/P^2%W,W-[\V3Q,S)X<^YP]WFQIN7Y,7KZN.3[='L_-3%Z=#'I<3_ XMS+.DL+V$]=SB^9&5]?;WP?GW]/OMV^(B8`(#!`4&!U5A*"0/$#<8>1,3*1`) XM51`I'@P%%D\G&1LI)P8K+&4`-PP.34E6/3(,<"@0.GLV,P)X+C8X*E0/0&<, XM0FIE8'L\05T'5U=A'7Q(7W9!4EM5+%Y*4E]+-$)/"@4F)2LE(APH0T936G8] XM:EA)>5-77%QK.0D=7GT:+9VAK>^*C<6OJ8R7BX;3Y+"X@X_QU8B4B[_"P]?1 XMK;&+AK*ISXSKL:V3H_.SJ[:7_9J_J8VFOO6;S*VPLK?%@**IPLFOQ(O)S>O$ XMRH?!UO"=[X;O8 XMV_BXU_+PY[[$:08)*@E+%P<]!!\>0Q8I#38""#X;#U43(AQ#%!(!=`(+)CD< XM)BHQ)UPI/2-C/`LS'R4O&G4L/"8$>#<_-F\6*'I4`BTO(6A0,@A^9G%\)%5X XM5!QK75)&$GA7`T125BX-"2)82FLK=FI3>FU`U>GE^#%$C='QZ XM6&GIC(.@CN&#C:Z?DI6'W["2^8>=K-6:U9:IF8?:EH&PS8.OKL^DN.6CW*V] XMH*JQ@;B+_OS?F[2B\J7XJ[:EJM2LJ=#>X,C"ULORS[G!ULOQS_R0W?'1F]C3 XMY]V#Q=;.^,'0H.[&XJO?[<[C_N[G[(J_LYK1]L&[P??/\*/T\N&3^6D0'B`( XM`A8'?!P;`A`:9!LX'@@^!@\<$6P*!@0&`R`>230C3R`](#`%)STB;W\&*`UP XM*QK(Z([X.$E\*SG8'' XMA8VAF/F2CK"6DX"`J=B7F)>.K+N XMZNR=@IFGH[_@Z-?W^=#[N_SAC/FC\/+BT:TF!DPN`1T`#"@=`0)/7R`<-Q<9 XM+5E;%!PH6`\8!$\W&`%U115I;>U]0(&E98'DE<5EM?2=A XM9@1P5F)H7GD1>'-"-B,W6VY&::R.B:O%BH&4N8:'DI&:MH[YF)VID-N'AZ+8 XMD)2!BK6`@*ZKSZ.YJJ_W=OFR-GIZ(_@\_7NT_KV]:/[P?'/]>^? XM_/7A_8SLZ_*SZ=O_+@\8.P`%11$Y"P$"%PQ.$C]0'7\9%`8&;!0"%0H=/0,= XM*&P+("XU8A4F"6QC06(K;6M8;'9I(WE6E("_EXZ2TX*[@YJTJ9VVZZ2L XMF.BWKJ*]B[&0L[V3]:^GLYRKXMW9[]3MQ\^,R^#HUMOOW-;*@\SLTNS#F\,J]SO'OG_;I\//8_>>W\ON4^2$% XM3!\7!`(0/04>#@T89"D\$Q0Q&A<:%358)QX%!B<$!BYL`"-K,2H9:!X.%U4H XM/!L_+AXA-"_MKW4K.?$C-C*Q,'1L(C2R<>?\-7\D/CJV]S0W>++@];=R[3IV^'K XMP.OXI>7=Y?:G[/F$VL#W_<>?^OOVC-GQ^?;\V^-G0$P;#0Y%#2X!%`X-'BA= XM+Q4.+!P4&U([&1!7!!T]&1TE(D\L)64/.`1S;R(S#3P*:DM?!51Y6D!.3%$D2GA#'&M'6EM!8%E74EXY;:3Z*&BKKZ-L]FQLI"[HKB]F:OOW;*AD.W^P=^O XMRMX,;K[J7KTN[\]>[^T/36 XM_KS2].*U\,FX[/7G[MWC+`1,.`P?#4(H`!9'`!`I$#@>&"Q5,S`^'%@"&1=/ XM'2,O#V)O)"4F)R@@-C4F?PTN63%\##@Z.3Y,-2(^/RT;-2E(27U`!25'<4E: XM2T%0?#U-6%EM4!M<02Q931=<37Y(2G0L6&UB9FH<9'QH:&P$<5![>1]T.V%G XM3GTC>'4O0&*FE(2_A)B1A_R`EI6&T<2/K86>NO65EI?AU<[)TZFF@HNOMI7E XMAJ2EE:OS@+:QC_VZO[&/M+6L\M#U[OK9[]3MJ8",KX6+Y,[PB./2T<_KSOR0 XM^^K;T+77V-#&Q=:/_=Z)\^/"X*OB]]+CL^_F[<&SN?'R\_3U]O?:\?#T_/K' XMK20!&"H7`@0.7`D*"PP-#@\-&!DM$%L<`6P90P`!"CH.`6`D"CSPA3#EC)#`]$3IM4D5Y0%D%2GE:5@DC34Y/:E-.>D)?1UMZ XM75$W7%U>7TIY;T-J>W8":&!V=68_36X9<3Q,?'=C=UXX8']R8UUNK,S,IHN? XMEXN_B8>"CX;DF+>7CKZ#GI'>[)"&A9;!U)^*J*V#K*B@PKWHOJ:PJX&OB;FY XMG+#[MZO,N>.YMJB8J.K4R>N%S,#,]=W`A\K,I-7\PMFQM=76U_S9RMG'QOK* XMJ>'BX^3EYN?ZY^'S]O'%Z=S\Y9.U[_WWWOVC_N"OQ_D@#`!O"@4`0C\`$@D` XM&F0;-@)<)AH.508C6`$24PYT&P@N*`XI9V4D$SIS*"U5$#4<<#H>)WLB,P`T XM8SX@;Q5M?D]>9`5$0P)I1D-&45YH47Q<67L565!3>4Q:&3-=7E]=:&5*8PMF XM9VA@=G5F/TUN&7$\27QX?'U9:RY[?&!?9*>'S+R1@HF.N9R'B,.7H8^\WOR3 XME)66E[^,BIN?BJ"9AL"BHZ2EIJ>+H;VCK*CDKYN_L(O5M;:WBZJBH[JAD\WM XMS\/]I<7&Q\C`UH?&T>//^,;5\=+(E<;^V$E>)TQ-3D]K455S7%52,FM95U(S75Y?2W5N36EN!6=0;7)L`VUN;UME:$MZ XM=15W3GEW%WQ]?G^[@86AAX22XHB`EI6&WZV.^9'GYZRYQ+J6O+C_M+6VMZVLXZ.[JM2HY\2,X,.+TR5VI7"X\R#V-6/\\+%Y**OY.7FY^C@]O7FO\WNF?&\W?#ZX.;%_O;[ XML_S`[#T5"6\-#A<'22%L"2HG(2<8 XM:",N+SI$,A]P+!,T*"$[#W@K,B$J5#IA24]G!4-$43Q)$U1.7FA1.49= XM%5-X3$)46TIP`REA8F-D969G3&1R='=V1SU0?GI3=&]T<$!](W5\;D`-G8B) XMO8#+C)'\B=.7BI.AW;:6W*^9FH:&I9O#GY:=LJ;B'Y:KEKIVZM*+CMXNQ XMG/"UD?6RH?SLN;J[O+V^O^'/P.K!B]7._=O'SL"?YM+XQ+S3U-76U]C0QL76 XMC_W>B>&LW.CJZ>Z<^.;J\[_,^,OULK_T]?;WQ/GM\[[GT>$M0`TF%TL5%S$8 XM,@*RCG>3!SXN2NZ>UMKR0M):^K]^SM*?RF:NF[=G% XMU.VI],.OPL[1@O7&Q\B#R^S8N=+3_L&7E<'MP8.0\>#5_^VGAH^EJ]'MG.3V XMYO7ZA.G1];S=^OKAOHSKXNZSJ/#$&B4A#20Y+D562%-'-Q!D&CP$7#8;#QI2 XM+5@!&!<6=`(/8#L.,2XW;EP[,CYC>"@<+!X?-W)1=7),#"QW-"H`;7U/#'Q- XM1%=',`A`1EH?(W%8?G@X/S%B4WY*0EE'5BXG(R`L#U%C;'$<:GQF=S]-;AEW XM:5YG>GMF27UG-W)H562GDYCOA(>)PKB-E8*`B[?=L)[.^Q*V^IIBAX-/)[,K%P=&\SL'( XMSI_@W.W5G/#3F\7'_MO+UL#*GL+;H/G!\>+IHMKAX?3WO]'NW/2PG^+S_/'$ XM_?7RX:_7XB0%'V\#`A<1*$9Y;30>-A,P'AME55LA&B4+0Q4<#B!-`#-L`B0O XM(&(3+G,W+SX7*1`S6Q)_3$I46`]\2%ME(B]D969G3V!R=7,_1F]6>WE1-6AA>T]S`WM\?7Y_ XMB,"?IX29E<*OG)J$B-/DBK&9G[?5FH6"J9F1A-.;N\V!H;J*Y:F@IY+HL;6L XMM(&SV;&HW[JUL/*)MJ?[\Z:'[>'%WNJ+J\;'_LG!U<;3A,_-V-GMT)O4FK6#AL"BHZ2EIJ>HH+:UIO^-KMFQ_(FPJ:SR@+FQ XML+;OE:/M@,GWT=G`S_G$RH?+VN7+X)#+]M;0T,"LVL+$V,K@C=[I^,>EZJ7A XMT.?G[XG]Q?J9^/G-\+6ULN7V\/[WZI3Y(05,+008#@#<_-F\6+'I+ XM27L%1$L":$!6!TQ*<$YP5%D_7$@54RQ(2E)02C1"3R![1G=N*P).;7!B8D(:% XMEL^]GLFA[)RHJJFNW*"\J*C_A:F-L;^7L+_UIH/XM[^V[X:BZLN,Y\#9P(R< XMR*/X.7B\-W^]N.CYJ:C2X/`"M%$0H0-P4:`V,-#@\6'EPK'1Y5%"`7#`53!B=-"&`K XM`"DO93@3.C@J*CM$/A8Y,E]].G4D#30V-C$C$6UJ3T!C0$A136X/0`=*2V%0 XM,!X\4U155E<&,0,7$P\T#0DM(0(H)B@O$24^*BXR"3`4/3$2.#8X/P$U+AT: XM+Q0MZ<#,X,7+Q<+\R-.@C).@W8.?CK28DI'2[-C#U]//]+'CR>S/Y>OE[=SH XMA^>F_XK]V?"(W[W[NO*9^+#WLN^:[>V`C*^%]Z^KO(B3AXR?I)VYD)R_E>&5 XMW:S*@]R3PK3$B>2LW*6KI:*5!W7S?[;DX??P_B=N9"&-WL?OX_\SXX_?\Q?WMJ8#PKX6+ XMA8*QA9/EQM/KR_S4G/#3F^_=_M/&Q<"/N8")H*R/JH&,HIRHL]NCOX2]F;"\ XMG[6[M;*,N*.WLZ^4K6E`3&]%2T5"?$A32&EV9%UY4%P#55M54FQ80UU36&9? XM20=B.FL.:V)6:'-G8W]$?5E_5G9U>W5R3'@?=W-O5&TI``PO!0L%`CP($P<# XM'R0=.1`_\[B&I/W)PNB%Q,N"]=R3S\;-X9.9T=+3 XMU-76U^_9T=.SW=[?_N'^P>SEXKBVJ+.GU_?-[IGB\]#XN^+SW[C@^/W\P/\\ XM`Q@J`4L*%#D:4Q$U=+A4=-%4)&A$G6!`#`0X@#$=@;"L@/RHL'3PZ*"U5 XM"SM9-20/.B@\)`DK8SX];P`E8%,,?4I$2`)U6Q-45TUM7FU<13]%25I:95I* XM0U9+-2<@"05I=V1G;49R,TIB>$U^&4-]67`[5GU!:&)Y:@4]!,"0B;W%ILO" XMG8^!CI./I='YEI.MD):4G,R9FINPIZ&CXYN-L(ZYJ-BF XM^[:@@Z^M][J\U*7LTLFAI<7&Q__:W-#-O\[/S=C9O]##UM?_R\K!UL/MC<[A XM^C]3=$MU/%=P:7`\+'EZ>WQ]?G^^B9ZJQ8B*B[#HBHN,C8Z/C9B9K9#; XMG('LF<.9EIVB@IRS[+FJIZ:CDJ?S@*VPB;C9N+F-L/75M[JWK[2RH9OMSL[# XMXL"KQL?(P-;5QI_MSKG1G/W9SM"2X-G!TM^/_,C;Y:*OY.7FY][DYN*C\\7_ XMW/R<\_3U]O>EN:*VLJ_RWP8B(Q4_2R@C&R$P1R$^"#$6/S)_-C0X(@TV.E=2 XM3G5,8TH$"BDG*FY<*24N(BL++UA:5C8[*"$@&3LW/CPA!VUO3UXO4%A`&!8B XM$P<#:VL=?E5(/UQ505TL3$M2$TUU045O8T$I*W9C12@T14Q>=ED>&CP?-4]Z XM,D!]8F%V+T!EK,".KHF'BHVRQ-.4@H;DVIVYKYJXN;2@A]_IU]//@(+)K*V! XMH>?EL9VQ\^"/GJJ9WMK6J+2II[."K+KMV<74[:GNPZ_2RM?0_<;'WH/6]YW\ XMR,SMT,C&U^B8S,63QOG=Q>GIRZNKI=O3_;3UYK_+\YGI\\KGN_KEPK2CY./@ XMQOEG:F8("@0!0C`=$`Q"?PX/#1@9+1!;'`%L&4,5$@,X`@8N;`<@.2!N7"HA XM*"@Z"GT0/B@0=2L\-P\],'E3/3X_:U)#9$!%!4!]1%](3%$$3TU866U0&UQ! XM+%D#55]:<0U+;V-$)6-@<%DF$VML;6YO6WQI6C5Y>GU'&'I[?'U^?YV(A;S% XMB8J-M\B:E,.(MI2MA)FQU9*;TJW8EYB=B*&(R;>EFZWKLJJ5J[OGBO^%L-FE XMLIFTMKR^A;FQ^=.]OK_=R,G]P(O,T;S)D\#1VN'3N=+3\-Z;W=?^W8VWW-W> XMW\[RZ XM/6U7/#T^/WY(17M`"T=-N&A];%WLJUTNG0]*;1 XM\MC6H]_AUCOT>6%ZN[RR8O4_?'UJ?OU\LSXX_?S[]3M XMJ8",KX6+A8*\B).'@Y^DG;F0G+^5FY62K)B#EY/3GM&)H*R/I:NEHIRH[_O_ XMX]CAQ>S@P[6[M;*,N*.WW\#FR6E`3&]%2T5"(&)-1T-?9%UY4%Q_5`<)#C!8 XM0U=33W0126!L3V5K`0LQ'QH38W]$?5EP?$-?)W5R3'AC=W-O5#%U7%`O!0L% XM#S$%3P<#'R0=7WQ]2WU^='8L&`,7$P]H)U4@+`\E*R4B'"AO>W]OEXMSH\^?C_\3]V?#\W^G1J?+,^./W\^_4[:F`T//9BXW]P_?LVX.? XMI)VYD)R_E9N5DJR8@Y>3C[31H_RLCZ6KI:*5!ET#%Q,/-`U5"G`/)2LE(APH,R#LD^7KY>+#G_B=N9"SKY2M:4!,;T5+14)\ XM2%-''W5Z77E07!A;+ELW8E@S."`[%2HL8&Q/96ME8EQ[$G9&2TX.]B,FTI(KEHJBRD*V^HJVK@:^*_/R(O;2FM\RPIK:W XMO-2Z[-+)K]7'Q,'YS)/(S9_TTO75S[_7PI7&Y-VIW-;*Y,C;H./)I?_MYYSL XMYNGD^LOSF?;SS;7Z^//6\>WPL_K:^2@3&"H#'@D,.1L`26,-#@\-&!DM$%L4 XM`"E8!1@&'70%#"$H'&4C(#`99',J+"H**1PT?`PP."`@"30Z=SPA5#UF3$E\ XM"RM&1V]-1P=,621-=EQ9>Q534%-H2R-;7%U>7V1A8E8E;FAR2'$S1&QT03U; XM?VA+>7YF,DUJ9C=[:D9HY\#,CHF*EL[\G)N"FM^GG+?7B/^=E)F6[(^"@Y:= XM^NV+M:*,K>NJI-R+O*RF_X:RC:2PFJ;;MK>XL*:EMN^=OJG!C./$V<+'O-C: XMR\:?Z]NYU='OP<*5\>/3QI?1P.#9Q>7_C^WN]^>0J/;QZOO!\\W\Y9_EZ?KV XMV?OF\YGMS:T]"`EO#`85#CD%%@D7&C8.>10)+1P5$E(X$`8>`4\X`@$1'92%?=V)K=EEZ,W=B;T%O&7AY37`U-3)E;"-^8"]6 XM;+N%@+;OF8"#N(F1BX;?I9.]T(BP@9J9GK78EIF:@:"(A:REB*2IJ:?2R*JK XMK*VNKXJDO9R^^[JTS+2JI*>FFJKZH,+#Q,7&Q\C`UM7&G^W.N=&<^-S^9_^G+Y>[ALL3]\?*]KY3,)10$(!`, XM#4(H`!9M$QXT&"M0$S$6'E41(Q87%AH!,0E)-3\*(SXI8A4F-2@Q,@4I$#\R XM4W4Z.3\#*S=W/2``)6!.2R]&2DL"?DTY0TI,<%1W5TEV1E-05BQ63$`=+UY? XM%41):4Q%0")Z359++EEV6'PP-'-:2%!`!1(**T=*>$'IPJJ*H*?%I(ZMMLO# XMO(RRE*"YC=39R_C%Q*ZROK[TP\?NXL'KP9&JF>BAHK"KQ+2*_/R>N;JF_LRM XMK;Z]NY&AY,^^+D]J_PR)"&A)KDE+?0B+>0VYB;J)R/ XMDM.`LLV=J*G/MZ2JK]+(JJNLK:ZOBJ2YFKG[MK.+O<.[O+V^O]W(R?W`B\S1 XMO,F3Q<;>\2B.KK[.WN[]KBY_K_(O3Q\/?D]WYM=S_U;?5TH#8P]?3SZWGX.#LS^6DY>+< XMZ//GX__$_=GP_)'?TO7RS/CC]_/OF>VIT(ROQ*O&Q]V(P-/,S_38Z]78O]+7 XMU,'_F,7;TMS_C=[I^,>E^.[WT.2^YNW[B?[+_^_,]_3[]]^X[O;AY-WC+A-, XM)A9+#06QP!;!X*&Q\*,$T>*3@'93@J+QEH,"LF/A9] XM%3DM"CP_>U(+-"(D(&\2(6A31P]$149'2$!6!T]:958Y6%UL%4A`4&%=45!6 XM2S19064L2V![=V=/>W9C(WY6>%@P=5$U>C5B0W=O-WQI%'ZLEXVH@,7EAZR' XMG(O#D*+=JI6+OI*>]9>8D(:%EL^]GLFA[)NLI>6MFNBAIK&ZQ*Z)N;^:ION] XMMYZ][=>\O;Z__?ST/'^^[+<]_#CX(_^_QT("3T`2PP1?`E3$`P0(!@W XM4!XJ%A`0!FP0!@460W09`3(I"F4M("<(:#HI8SL-/!0U*!HG>S0\"'@W/R$J XM$6UO14E[+T-,170&,TM,34Y/;E]3>U!5%5!Y6TA21R]>7WUH:5U@*VQQ'&DS XM=VIZ1W@9?WH?=GI^=PQO:W)A:A1ZH)2$[Y&#@,*KAX&#D-_FN)BDW)*PV=6= XMHMB*@]WOGI^9J:F,H.NJI-SJEH:7_ZF8V_"_GKZ^U;>XL*:EMN^=OJG!C/_, XMSL;'O,?5A\#>[]BYQ]7KW9O:P.W6Q-*3QO?$Q^>LQ^#YX*R\Z>KK[.WN[\GY XM^=SPN_KTC/OB_/:OP^0]"$P@%PH+!3E(&@0*$2-]#1@9+1!;'`%L&4,'&@HW XM"$DO*D\F*BXG7#\Z,RM_%C@=<#44E);$`+2D0\2U), XM1A]S5&U8'&U07Q5;;U%-4#-=7E]]:&E=8"ML<1QI,W=J>D=X&7]Z'W9Z?G<, XM;VIC>R]68;R%S.>`B(:*] XM\,&[UM?8T,;%UH_]WHGAK,CW[N#LG/CZXN#ZA/+?L.S>Y?[GLL3]\?*]C_[_ XM+A()*@M+%0LY"Q9'#!ED#3@`&2UU%18715E"5E)/$C\F`@,U'VL(`SL!$&<1 XM$"82+7`?,!@+%!PU>&)V#C!]T;S5?94PC0W9L7"V]C\R_@)F# XMC:Z%TY&"C:V2K(/VK)R6A9ZIV(N8AIRQAHREO(:KK.6DB::PLZJPBJ[7VM:V XMNZBAH)F[M[Z\H8?M[\_>K]#8P)B6HI.'@^OKG?C3R/;#VL'7K-7&FY/:Y\B) XM].3*I>WJ[M#GY.[M^(3[UN+QROGZN+^FD=?2W\.4WP8B(QM)2Q8-,0T'#PH1 XM(UTM'UP[&EM=,1Y1:5=33P`%#&`O`"@F)&(5.W,J(C$`/`T_+@9[475R3!LL XM.CXN&BDI34DO1%@%6W-=$U!*4V@<$SIK?D=)5%QX01D].0\T#6=O+%AD>7=C XM4GQJ)VIL!'A!8&Y:9FAP=@QW<3=Z8D1AH(6(X>_AI);\D9R2D=^WF*N&E;R0 XMVO67H)F1D);/H)^,IY];\U)SEVLG>W^7<@]7:P_C>B>'^RJ7CX/#9II/K[.WN XM[\KD_=S^N_KTC.+LY?CBW>EI`@4C"1AE!Q,&4Q,+&F0;-1\3+54('`9L2E-' XM4P$Q#!TL-4\V/R0A%RTW9SDP%C84.3A?-S(Y/A]V0SL\/3X_`P!S4'IT>GU# XM=VQX?&!;8D9O8T!J9&IM4V=\:&QP2W)V7U-P6E1:76-73%A<0'M"9D]#8$I$ XM2DUS1UQ(3%!K4I;JD._4R\72_,C3U\/?Y-WYT-S_U;RGMXVLPZ*]JY&_KI*# XMNHN/Y8>QF)J5AO_$_=GP_-_U^_7RW?CCY_/OU/VI@-"%V8N4@JR(@X>3G[2= XMN9"C XMKX2M>4!<;QEA&4)M2$-'4U]T76E07']56U52;%A#5U-/=$U)8&Q/96ME8EQH XM&-W8F]$;3D`'"\5"UDH8`@"!P,/)!TY`!P_%1L5 XM$BP8`Q<3#S0-"2`L#T%"2%5U7#,G(S\$/1DP/!\U.S4R##@C-S,O!2WIT,SO XMQ=O%PJ#BC\?#W^3=^=#<_]7;U=+LV,/7T\_TSS@G[6[M;*,N*.WLZ^4K6DB7W]66%=5:%PW XM1Q]U.%UY4%Q_55M54FQ80U=33W1-26!L3V4W.6)<91P(8W\K$E1P?`,I>W5R XM3'AC=W-O5&TI``PO!0L%`CP($P<#'W@W91`0'0S)R,_&B,9,#P?:6OEXMSHK[OC_[N"IH^#H/7[J:[,^./W\^_4 XM[:F`C*^%BX6"O(B3AX.?I)VYD,"5R9OW@;R+D(6$FZ#IB:"LCZ6KI:*5!5E:05II64#\S_7KY>++^>J`EIK$_=GP_-_U^_7RS/CC]_/OU.VI@(S;U\[$T>G:UM6# XMGZ2=J)",OX6;A9*\F-^]SX^EC9F@O(^UJ[6BG*BSIZ._A+V9L+R?M;NULHRX XMH[>SKY2M:4!,;T5+14)\2%-'0U]D77E037]%6T52?%A35P]E*$U88&Q?96ME XM/2=W`2`-+&4`=F!70$A+>%L3!P,?)!TY$!P_ XM!!L5`BP8`P<3#V@G55]3<%I46EUC5TQ87$![0F9/0V!*1$I-BCJ+&K XMEKR0I/R0L_N?_,R(JK*AOYNC_8#JX\3?SN9OH#H\^?C_]KCV?#\W_6GJ?WF^./W XM\^_4[:F`C*^%BX6"X-23A_S@V^+&[^/`E9O)SH:8@Y>3C[2-B:"LCZ6KI:*< XM]+.GKK"+L)2]L9*UN^F8C+BCM[.OE*UI0$QO14M%0@`T+$A,(!LB!B\C`%I4 XM?U)L6$-74T]T34E@;$]E:QH=(V=\9S]_1"%S<'Q?=7MUS8P]?3 XMS_3'P^KFS^7KY>+#GZ2=N>RST[ZM:4!,;T5$14)\1U,;0U]D77E07']545]2;%A#5U-/=$T58!!/ XM96L92%QH&-W9RD`#"\%"P4"/%03!W\?)!U% XM.AP_%1L5;"P8`VEL<&AR=E]3<%HO7R86(C==)T![0F9/0T-*1$LR##A='3,O XM%"WIO,SOQ7BW.CS XMYY^`NX*FCX.@BO&*C;/\F?/YY="7K?_ST(_T^OW#]^SX_)".G;F0G+^5FY62 XMK)B#RY./M(V)H*CUH:&OIN:LLZ>COX2]Q9J6G[6[M;*,N*.WLZ^4QV=`3!\L XM+C,7%54FQ80U=33W1-26!L3V5K96)<"QL&"@TI'#=0 XM,C,T-38W`#DQ,#9O!SEF3DDO1EY'1QQ)2DM,34Y/.1`+(SM?+\L^3Q-;-\-SPWISPTYO9V^O0U[?CIW>"K XM[/&2H) XM+1P8'7(8$`8%%D\]'DDA;!PH*BDN7"HZ-2:U8+2T=O7#-+3$U.3U9>'&M=7A50?EE-5%L/?5X)82Q<:&II;AQJ>G5G XM;`1S7&-H$15U=G=X<&9E=B]=?NF!S*6`G(".\8V=A)&*MXF\E-RZDIS5FJF* XMAMGSG9Z?@Z6[BJGFH*R?NJ:TM[J`_9RWN_^TM;:WI;;CH[NJU*_@TLBHUHO+ XMQ^_7<%66*]B(F]R(2#SZR-DI6/T>3=C)Z0MIZ>U9^CBY?7EHBSGL7@N(>LN.6M XMDJWSKK#_C+27M[F;];J[MLRPHJ3SKOZI[,S%[,3?P(+PQ]S,RM'CG?KS% XMF]W=X-S*V=2/_=F)X^#`]N[AK)RHQ^_FO\'ZWK#]S^7^].#?N.;OY_W1X"P, XM%44#&00%-00626,-#@\-&!DM$%L<`6P90P0<`C$:`2$X3S<^+"P9+',B)#A$ XM-1PB.5%5-38W#BHL/#8A5"=L5TEC"$Y+06Y=0%-&6R18?E<\4U155E=84$9% XM5@]]7@EA+$U@:G!V56YF:R-]5GQ*8SQ==&YW?DDX:W)A:AH-JX6-NI&"@Y>P XMR)&5@HRWW;N1B;V9GO67F)"&A9;/O9[)H>R(JJ>AIY+HL*NLO(^JEJ*WW[:Z XMN[.>H>._MKV1XXG!PL/$Q<;'_\3CI XMW>"K[/&P_]/Z^/[EP^KHM_#NVNP[&4PA`!@1#CD,4PX-7S`5 XM/%`9.!)555(%#$,?$AQT'QPB-64@,B`Q7"D](V,^1"X0/"H:)WLW-PTS;7=S XM&QP_9E5+9P5*!4%N44!30E,D2G!>6'!"&U=78%=4%UI;9PU%96I;#WQL;%LH XM:FAV/T=\5S!O6G`[?'Q8:FIT,A8"0IU9B/%9A:#5X XM26]F>SYC76:LZHFV@)C%@ZZ-TX*.C["$]="=L9';G(:_V)">GYFQG\FBJ8ZN XMZZRQW*NALJZOB+B=_OS?@;.GO9F_J_>R[Y>_Z,/'ZL&AQM#EV\?&SY_SU/?4 XMT^B5V=#>X\^#WL?/YVK7O_?>,ZN;Z\N;: XM_FD/"D4,!1$0-0L2$P9?*1PZ&!4Q$`D,7&Q8*@-3!B=-!R\X3R8G(",.:"0O XM(BM$+QPC*1,A>R([`CPJ.31O'3DI5T-Z24\O2GU>5@L#7G<=;5A9/UA:7%Q_ XM2%%>74@T3%EP:4YW>"5Q3'IF:60Q)&]`=7!3>FPU8DUV9GL3?7Y_OHB%NX#+ XME8.RC9_GC(V.CZN5F/^%FIN7H/B:FYR=GI^+K*V,KNNUHY*MO\>LK:ZOE+&T XMD+*ZNZO,KZ*[O\^^O_G)PNJ%W,3.\*C*R\S-SL_NW]/[T-65T.W*H]O_BR*7[ZN[9B.KK[.WN[\KX\\WAN^7]P/V#^_S]_O\=30XN%VL&!S\''A<" XM##==.`(.,`)[%A<^'0=7$1H@&08N3",D)28G#BTW9R$Z!3!9/SI?.3(R.AA8 XM.CL\/3X_:U)#85].!49S1T$G3$U.3VY?4WM051568U=1-UQ=7E]%;V]$8&\E XM9E-G80=L;6YO6G5P4S5_>GU>&'I[?'U^?Z6!GJB`RX>7J)R.-CH^JA9*[ XMG)J9\J*-CI*!CKC-V,"BHZ2EIJ>2O;ZBL;Z(_;GTOW^XO'^ XMR+V/D/+S]/7V]\+M[O+A[MBM?F`"`P0%!@+;C^CJ\LSMX??O_M#XEYJ6Z_J[POK#]:/> XMYZ_Y[#!`+R`+"``0,E)Y;4-?9#1Y`ADX!QX!4C@70P46'SL?'6`X!R0_9384 XM+7,U-C(+*`LC?`TP/#0@"#$M,',[!BAH4UE]0`M&37)<4DY-6F`W<%X<:UU> XM%5%D64Y55ETT648@>T=L:&TB2&!Z="-O16Y*<7M:-7=P5$MIX_, XMK828C)'\@9W'A9ZGB??ZK[>:CIF6[(&,@M.!L9N,LKB'H*>@L8_HL:+CK)&[ XMG[F_EK"UH;Z5^*6XO*.%@E4'QHM+0,I:S8N%3Q3*RPM+B\M.#D-,'L\ XM(4PY8R0\(QTI*4=#8T$+0$Q[6E)11ELD7GA"6#]=7D=7(CA:6UQ=7E].;V!+ XM)6AD<%@(:FML;6YO=W5O2WE^<3)%=G!^=VH4>:&%S*&,B(V'_(&`QX*1Y)BW XMEXZ^@YZ1TJN7CY/3C+6?C>[,HZ2EIJ?SKY2M:4!,;T5+14)\2%-'0U]D77E07']56U52 XM;%A#5U-/=!%C/&Q/96ME8EQH,`\!=1\M'PH4V`G(S\$/1DP XM/!\U.S4R##@C-S-=6W2HC,R5BIF.PHR=B9V/FN2PK(.9JIC;U=+LA.F+T\_T XMSCO)*NB[VEAZVVH:N: XMM=O#V\F4K6E`3&]%2T5"?$A31T-?9%UY4%PC?P=54FQ80U=33W1-26!L3V5K XM96)<:'-G8W]$?5EP?%]U>W5R3'AC=W-O5&TI``PO!0L%`CP($P<#'R0=93I` XM/Q4;%1(L&`,7$P\T#0D@+`\E*R4B'"@S)R,_!#T9,#P?-3LU,@PX(S5!FBMG[6YJK29K/KGX__$_=GP_-_U^_7RS/CC XM]_/OB,?U@(ROA8N%@KR(DX>#GZ2=N9"*B XMG*BSIZ._A+V9L+R?M;NULHRXH^N9\Y2M:4!,;T5+14)\2%-'0U]D77E07']5 XM6U52;%A#5T17;4TN;AE!`&5E8EQH/7S-C

7UEA95TE9&,B5&E]8W`?;F];8GE>87,5=TIT>G)A XM#WY_JXF>J^6%AH>HFI:"XXV.C[>?CJN=GH><[(^"FY_OGI^:K[F;K:ZWK-R_ XMLJNOWZZOG+&OB["IN_*;N:^[T[V^O_[%W_O`V_JC]_D]^F\Z>KK[.WN[]K_\<_TZ.:RWO?P\I/]_O\Y`0(J XM"6L&!R\<'`D&7R<5.!X2.AE[%A<8$`97%QHZ"@PO(D\H*C8V&3IS+C!_%2@0 XM-2@3+'LY-PTV*CDT;QLC*4A%?`5844-Z3A-/1DUA$QE14E-45597:$U-4%9` XM>@U$87];8'D%9U!I=V-F;21O;7AY'W%T>F`,<7`W?V!79JR$P.^$A8'"J("6 XME8;?K8[YE8JVD9Z;AJ"!PYFHH+;GM+:*N9:GK]^TJ;#R XMC;2O][&NAK_LQ(*/Q,7&Q]/&W]Z#[.73[=&WLWGC;V_O"QI._M^/F?\?3ZX(SQ\+?][MWA+`1,/`T>$4Q<"0H+#`T.#P`? XM"7\!"0Q2.!=#%@`,,0,-8#@'(&LW(Q$X?V8 XMD(:%EL^]GLFNH\^QN:"GW*"VM:;_EZB0I+V=N;[UM(.JX[2_IIFOX,[+H:7% XMQL?(P-:'P-#BV_#>G.C"5[4WUA)W1^73,Y<7)S='5V=W5W XM=C=^>D=YZ9.XL*;WHZZ'ONC'R:_,V(76\\>3R<+-]M+ND,CP XME=K6T>/5S-/2V_&-RN_JR>SE]JR\Z>KK[.WN[^#_Z9_]_O3@C.SK\K/XW.0[ XM0`H]"@9%%C0-4Q4,"BH9>0(3,!A;%P51' XM&3-=7E]P;WD/9FIK;%-\,V%J:P1I46)S2G)S-69$<7`W8VY'?JB'B>^2@I&* XM_)R;AI??J)*XE-+?E)66EX*7E]>2S[>%B*ZOBNO+IJ>EIZ;GH+Z*LY:D_)BZ XM^[&]F[;CH+J[G*+\U(SIU\K&UNG:VLG$G^G<]\F<_=K5T,&BN-K;W-W>W_#O XM^8_FZNOLT_RS]>;^Q_69Y/3:M>GZXLFV@_O\_?[_!P\8;P`=``Q\"5,/%A(E XM$WD6$"95&!H'(!Q#$!8;=!@98"4;:TLF)R@@-F<@-P4N%'`L#3HY-#``(6,[ XM-BX0/BE$17U`2%%.90A'2`-+;%@Y65)Y4$E;4V`845)41GM#6BX,8V1E9F=] XM>G8G>G!1/59E:!]Z?35K0VUQ-WYF6FGVX(*#A(6&AY6) XMFH7LG962G<^R@IO@H8"VO^6KDKNVI+>LRMV@OZF-]:RTJ\RQL/>QHYNNXL7( XMK\?2A+K]-7[^N7O^H3[ XMUN+_VK7KY_?:_>WCX*_-XCQ`"CT*!D42/1L`#@T89`DQ`A,J$A-5!B0=0Q`2 XM&S%#:2$B(R0E)BGM\?7Y_G8B)[X:#C(^RC8K'BHSDB;:?W+&4B8>=N]B%F('/K8*NDKI#HO*'CIHNHB_"^GK*\M+6)]L.[O+V^O]#/V:_&RLO,\]R3P,R?\0\O/T]?;W^/#FM^3G XMW?DL0`\C#`T#$7P8`0(5&BH)>0D3*E4=!QTA6`\6'0L]`PY@)`HW+FM"*"`V XM9S,^$#59.2]?(30Z<@(Y,24\.%I-0`!;8%!'04P[7!--5E)T'7]"4W(54U!` XM:18C6UQ=7E]@('M`<&=A;!M\,W-Q9@1I47%H$15U=G=E;"-^8"]=8+F/G[R, XMB8F'_)RUO/2TX[[$L9:^ XMN]^BNJSRB+>TN?W/OK_=R,FOTLK)SN^(T,;-T>O)N=+9O];7W-_NW<>9L]W> XMW^;NX-:EZJ7OT_W@XJ/\R^C5]+S8\.^U^\*X]__V_=&C20$"`P0%!@<(`!85 XM!E\M#GD17#P=&@8?;`P,&%,8/0D,8#@`92$P+PQH,B0Q,!"6$L3'!Y XM<6-59C-H93](=%YX:!]AWQ]?G^(CLRNB8J7C_R:FHF$C.2?JYF9 XMN9F"V=*MEH?7DH'TA(>VI9RLJ:FGW*Z\M:"ZQ*V+M:J:NZ^F\I6WMO>UO9N@ XMJK-'0E\#`^,3-H/[`YN"K@NC@]J?S XM_LKXU;#US+7X^?W?_>>YD_W^_Q`/&6\2!!`..$@1`D,=,0\W%1A_`115$VP; XM$1X`'W0$!V`B`&4_+"\99E,K+"TN+RTX.5\W*3H\%CUC,SP@!FU@4PQL2416 XA1W@&,TM,34Y/35A9/U%46D`L45`74$-[7DQD(B]D969G X` Xend END_OF_FILE if test 34586 -ne `wc -c <'dtextc.uu4'`; then echo shar: \"'dtextc.uu4'\" unpacked with wrong size! fi # end of 'dtextc.uu4' fi if test -f 'vars.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'vars.h'\" else echo shar: Extracting \"'vars.h'\" \(10886 characters\) sed "s/^X//" >'vars.h' <<'END_OF_FILE' X/* vars.h -- variables for dungeon */ X X/* These variable definitions are really ugly because they are actually X * translations of FORTRAN common blocks. In the original FORTRAN source X * the common blocks were included many times by each function that X * needed them; I have changed this to define them all in this one file, X * and include this in every source file. It's less modular, and it X * makes everything slower to compile, but it's easier on me. X * A few structures used only by the parsing routines are in parse.h. X */ X X#ifndef VARS_H X#define VARS_H X X#ifndef EXTERN X#define EXTERN extern X#endif X XEXTERN struct { X integer prsa, prsi, prso; X logical prswon; X integer prscon; X} prsvec_; X X#define prsvec_1 prsvec_ X XEXTERN struct { X integer oflag, oact, oslot, oprep, oname; X} orphs_; X X#define orphs_1 orphs_ X#define orp ((integer *)&orphs_1) X XEXTERN struct { X integer lastit; X} last_; X X#define last_1 last_ X XEXTERN struct { X integer winner, here; X logical telflg; X} play_; X X#define play_1 play_ X XEXTERN struct { X integer rlnt, rdesc1[200], rdesc2[200], rexit[200], ractio[200], X rval[200], rflag[200]; X} rooms_; X X#define rooms_1 rooms_ X#define eqr ((integer *)&rooms_1 + 1) X#define rrand ((integer *)&rooms_1 + 601) X X/* Room flags */ X X#define RSEEN (32768) X#define RLIGHT (16384) X#define RLAND (8192) X#define RWATER (4096) X#define RAIR (2048) X#define RSACRD (1024) X#define RFILL (512) X#define RMUNG (256) X#define RBUCK (128) X#define RHOUSE (64) X#define RNWALL (32) X#define REND (16) X XEXTERN const struct { X integer whous, lroom, cella, mtrol, maze1, mgrat, maz15, fore1, fore3, X clear, reser, strea, egypt, echor, tshaf, bshaf, mmach, dome, X mtorc, carou, riddl, lld2, temp1, temp2, maint, blroo, treas, X rivr1, rivr2, rivr3, mcycl, rivr4, rivr5, fchmp, falls, mbarr, X mrain, pog, vlbot, vair1, vair2, vair3, vair4, ledg2, ledg3, X ledg4, msafe, cager, caged, twell, bwell, alice, alism, alitr, X mtree, bkent, bkvw, bktwi, bkvau, bkbox, crypt, tstrs, mrant, X mreye, mra, mrb, mrc, mrg, mrd, fdoor, mrae, mrce, mrcw, mrge, X mrgw, mrdw, inmir, scorr, ncorr, parap, cell, pcell, ncell, cpant, X cpout, cpuzz; X} rindex_ X#ifdef INIT X = { 2, 8, 9, 10, 11, 25, 30, 31, 33, 36, 40, 42, 44, 49, 61, 76, X 77, 79, 80, 83, 91, 94, 96, 97, 100, 102, 103, 107, 108, 109, X 101, 112, 113, 114, 120, 119, 121, 122, 126, 127, 128, 129, 130, X 131, 132, 133, 135, 140, 141, 142, 143, 144, 145, 146, 147, 148, X 151, 153, 154, 155, 157, 158, 159, 160, 161, 162, 163, 164, 165, X 166, 167, 171, 172, 173, 174, 176, 177, 179, 182, 183, 184, 185, X 186, 188, 189, 190 } X#endif X ; X X#define rindex_1 rindex_ X XEXTERN const struct { X integer xmin, xmax, xdown, xup, xnorth, xsouth, xenter, xexit, xeast, X xwest; X} xsrch_ X#ifdef INIT X = { 1024, 16384, 10240, 9216, 1024, 5120, 13312, 14336, 3072, X 7168 } X#endif X ; X X#define xsrch_1 xsrch_ X XEXTERN struct { X integer olnt, odesc1[220], odesc2[220], odesco[220], oactio[220], oflag1[ X 220], oflag2[220], ofval[220], otval[220], osize[220], ocapac[220] X , oroom[220], oadv[220], ocan[220], oread[220]; X} objcts_; X X#define objcts_1 objcts_ X#define eqo ((integer *)&objcts_1 + 1) X XEXTERN struct { X integer r2lnt, oroom2[20], rroom2[20]; X} oroom2_; X X#define oroom2_1 oroom2_ X X/* Object flags (oflags) */ X X#define VISIBT (32768) X#define READBT (16384) X#define TAKEBT (8192) X#define DOORBT (4096) X#define TRANBT (2048) X#define FOODBT (1024) X#define NDSCBT (512) X#define DRNKBT (256) X#define CONTBT (128) X#define LITEBT (64) X#define VICTBT (32) X#define BURNBT (16) X#define FLAMBT (8) X#define TOOLBT (4) X#define TURNBT (2) X#define ONBT (1) X#define FINDBT (32768) X#define SLEPBT (16384) X#define SCRDBT (8192) X#define TIEBT (4096) X#define CLMBBT (2048) X#define ACTRBT (1024) X#define WEAPBT (512) X#define FITEBT (256) X#define VILLBT (128) X#define STAGBT (64) X#define TRYBT (32) X#define NOCHBT (16) X#define OPENBT (8) X#define TCHBT (4) X#define VEHBT (2) X#define SCHBT (1) X XEXTERN const struct { X integer garli, food, gunk, coal, machi, diamo, tcase, bottl, water, rope, X knife, sword, lamp, blamp, rug, leave, troll, axe, rknif, keys, X ice, bar, coffi, torch, tbask, fbask, irbox, ghost, trunk, bell, X book, candl, match, tube, putty, wrenc, screw, cyclo, chali, X thief, still, windo, grate, door, hpole, leak, rbutt, raili, pot, X statu, iboat, dboat, pump, rboat, stick, buoy, shove, ballo, X recep, guano, brope, hook1, hook2, safe, sslot, brick, fuse, X gnome, blabe, dball, tomb, lcase, cage, rcage, spher, sqbut, X flask, pool, saffr, bucke, ecake, orice, rdice, blice, robot, X ftree, bills, portr, scol, zgnom, egg, begg, baubl, canar, bcana, X ylwal, rdwal, pindr, rbeam, odoor, qdoor, cdoor, num1, num8, X warni, cslit, gcard, stldr, hands, wall, lungs, sailo, aviat, X teeth, itobj, every, valua, oplay, wnort, gwate, master; X} oindex_ X#ifdef INIT X = { 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, X 20, 21, 23, 30, 26, 33, 34, 35, 36, 39, 42, 45, 46, 47, 48, 51, X 54, 55, 56, 57, 58, 59, 61, 62, 63, 65, 66, 71, 78, 79, 75, 85, X 86, 87, 88, 89, 90, 92, 94, 96, 98, 99, 97, 101, 102, 103, 105, X 107, 109, 110, 111, 112, 113, 119, 123, 124, 125, 126, 127, 132, X 133, 134, 137, 138, 139, 140, 141, 142, 145, 148, 149, 151, 152, X 154, 155, 156, 157, 158, 159, 161, 164, 171, 172, 173, 175, 178, X 185, 186, 187, 188, 189, 200, 198, 201, 196, 202, 197, 192, 194, X 195, 193, 205, 209, 215 } X#endif X ; X X#define oindex_1 oindex_ X XEXTERN struct { X integer clnt, ctick[25], cactio[25]; X logical cflag[25]; X} cevent_; X X#define cevent_1 cevent_ X#define eqc ((integer *)&cevent_1 + 1) X XEXTERN const struct { X integer cevcur, cevmnt, cevlnt, cevmat, cevcnd, cevbal, cevbrn, cevfus, X cevled, cevsaf, cevvlg, cevgno, cevbuc, cevsph, cevegh, cevfor, X cevscl, cevzgi, cevzgo, cevste, cevmrs, cevpin, cevinq, cevfol; X} cindex_ X#ifdef INIT X = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, X 18, 19, 20, 21, 22, 23, 24 } X#endif X ; X X#define cindex_1 cindex_ X XEXTERN struct { X integer alnt, aroom[4], ascore[4], avehic[4], aobj[4], aactio[4], astren[ X 4], aflag[4]; X} advs_; X X#define advs_1 advs_ X#define eqa ((integer *)&advs_1 + 1) X XEXTERN const struct { X integer astag; X} aflags_ X#ifdef INIT X = { 32768 } X#endif X ; X X#define aflags_1 aflags_ X XEXTERN const struct { X integer player, arobot, amastr; X} aindex_ X#ifdef INIT X = { 1, 2, 3 } X#endif X ; X X#define aindex_1 aindex_ X XEXTERN const struct { X integer cintw, deadxw, frstqw, inxw, outxw, walkiw, fightw, foow, meltw, X readw, inflaw, deflaw, alarmw, exorcw, plugw, kickw, wavew, X raisew, lowerw, rubw, pushw, untiew, tiew, tieupw, turnw, breatw, X knockw, lookw, examiw, shakew, movew, trnonw, trnofw, openw, X closew, findw, waitw, spinw, boardw, unboaw, takew, invenw, fillw, X eatw, drinkw, burnw, mungw, killw, attacw, swingw, walkw, tellw, X putw, dropw, givew, pourw, throww, digw, leapw, stayw, follow, X hellow, lookiw, lookuw, pumpw, windw, clmbw, clmbuw, clmbdw, X trntow; X} vindex_ X#ifdef INIT X = { 1, 2, 3, 4, 5, 6, 7, 8, 101, 100, 102, 103, 104, 105, 106, X 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, X 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, X 133, 134, 135, 136, 137, 138, 139, 141, 140, 142, 143, 144, 145, X 146, 147, 148, 89, 91, 73, 85, 151, 152, 153, 154, 155, 156, 157, X 158, 159 } X#endif X ; X X#define vindex_1 vindex_ X XEXTERN struct { X logical trollf, cagesf, bucktf, caroff, carozf, lwtidf, domef, glacrf, X echof, riddlf, lldf, cyclof, magicf, litldf, safef, gnomef, X gnodrf, mirrmf, egyptf, onpolf, blabf, brieff, superf, buoyf, X grunlf, gatef, rainbf, cagetf, empthf, deflaf, glacmf, frobzf, X endgmf, badlkf, thfenf, singsf, mrpshf, mropnf, wdopnf, mr1f, X mr2f, inqstf, follwf, spellf, cpoutf, cpushf; X integer btief, binff, rvmnt, rvclr, rvcyc, rvsnd, rvgua, orrug, orcand, X ormtch, orlamp, mdir, mloc, poleuf, quesno, nqatt, corrct, lcell, X pnumb, acell, dcell, cphere; X} findex_; X X#define findex_1 findex_ X#define flags ((logical *)&findex_1) X#define switch_ ((integer *)&findex_1 + 46) X XEXTERN struct { X integer dbgflg, prsflg, gdtflg; X} debug_; X X#define debug_1 debug_ X XEXTERN struct { X integer thfpos; X logical thfflg, thfact, swdact; X integer swdsta; X} hack_; X X#define hack_1 hack_ X XEXTERN struct { X integer vlnt, villns[4], vprob[4], vopps[4], vbest[4], vmelee[4]; X} vill_; X X#define vill_1 vill_ X#define eqv ((integer *)&vill_1 + 1) X XEXTERN struct { X integer moves, deaths, rwscor, mxscor, mxload, ltshft, bloc, mungrm, hs, X egscor, egmxsc; X} state_; X X#define state_1 state_ X XEXTERN struct { X integer xtype, xroom1, xstrng, xactio, xobj; X} curxt_; X X#define curxt_1 curxt_ X#define xflag ((integer *)&curxt_1 + 4) X XEXTERN const struct { X integer xrmask, xdmask, xfmask, xfshft, xashft, xelnt[4], xnorm, xno, X xcond, xdoor, xlflag; X} xpars_ X#ifdef INIT X = { 255, 31744, 3, 256, 256, { 1, 2, 3, 3 }, 1, 2, 3, 4, 32768 } X#endif X ; X X#define xpars_1 xpars_ X XEXTERN struct { X integer mbase, strbit; X} star_; X X#define star_1 star_ X XEXTERN struct { X integer inlnt; X char inbuf[78]; X} input_; X X#define input_1 input_ X XEXTERN struct { X integer fromdr, scolrm, scolac; X const integer scoldr[8], scolwl[12]; X} screen_ X#ifdef INIT X = { 0, 0, 0, { 1024, 153, 5120, 154, 3072, 152, 7168, 151 }, X { 151, 207, 3072, 152, 208, 7168, 153, 206, 5120, 154, 205, X 1024 } } X#endif X ; X X#define screen_1 screen_ X XEXTERN struct { X integer mlnt, mrloc, rtext[1050]; X} rmsg_; X X#define rmsg_1 rmsg_ X XEXTERN const struct { X integer vmaj, vmin, vedit; X} vers_ X#ifdef INIT X = { 2, 7, 'A' } X#endif X ; X X#define vers_1 vers_ X XEXTERN struct { X integer pltime, shour, smin, ssec; X} time_; X X#define time_1 time_ X XEXTERN const struct { X integer hfactr; X} hyper_ X#ifdef INIT X = { 500 } X#endif X ; X X#define hyper_1 hyper_ X XEXTERN struct { X integer xlnt, travel[900]; X} exits_; X X#define exits_1 exits_ X XEXTERN struct { X const integer cpdr[16], cpwl[8]; X integer cpvec[64]; X} puzzle_ X#ifdef INIT X = { { 1024, -8, 2048, -7, 3072, 1, 4096, 9, 5120, 8, 6144, 7, X 7168, -1, 8192, -9 }, X { 205, -8, 206, 8, 207, 1, 208, -1 }, X { 1, 1, 1, 1, 1, 1, 1, 1, X 1, 0, -1, 0, 0, -1, 0, 1, X 1, -1, 0, 1, 0, -2, 0, 1, X 1, 0, 0, 0, 0, 1, 0, 1, X 1, -3, 0, 0, -1, -1, 0, 1, X 1, 0, 0, -1, 0, 0, 0, 1, X 1, 1, 1, 0, 0, 0, 1, 1, X 1, 1, 1, 1, 1, 1, 1, 1 } } X#endif X ; X X#define puzzle_1 puzzle_ X XEXTERN const struct { X const integer batdrp[9]; X} bats_ X#ifdef INIT X = { 66, 67, 68, 69, 70, 71, 72, 65, 73 } X#endif X ; X X#define bats_1 bats_ X X#endif END_OF_FILE if test 10886 -ne `wc -c <'vars.h'`; then echo shar: \"'vars.h'\" unpacked with wrong size! fi # end of 'vars.h' fi echo shar: End of archive 1 \(of 12\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 12 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0