From d5afd506b8f0c1a64dcd9eb98ad49f923cc8642f Mon Sep 17 00:00:00 2001 From: larrystockman Date: Sun, 22 Sep 2019 21:43:03 -0500 Subject: [PATCH] Updated to 2.22 and now Freeware! Four year date formats for birth dates --- ADF.EXE | Bin 0 -> 8643 bytes AKA.CPP | 28 + AKA.OBJ | Bin 0 -> 761 bytes BINLOG.CPP | 71 + BINLOG.OBJ | Bin 0 -> 1579 bytes BULLETIN.CPP | 44 + BULLETIN.OBJ | Bin 0 -> 1112 bytes CDROM.CPP | 122 ++ CDROM.OBJ | Bin 0 -> 3545 bytes CHANGES.TXT | 118 ++ CHAT.CPP | 204 ++ CHAT.OBJ | Bin 0 -> 4500 bytes CLEANUP.CPP | 122 ++ CLEANUP.OBJ | Bin 0 -> 3276 bytes CLINES.BTM | 92 + COMBINED.CPP | 138 ++ COMBINED.OBJ | Bin 0 -> 2836 bytes Copyright Files.doc | Bin 0 -> 19456 bytes DECKEY.CPP | 339 +++ DECKEY.OBJ | Bin 0 -> 2638 bytes DESQVIEW.ASM | 50 + DESQVIEW.HPP | 6 + DESQVIEW.LST | 96 + DESQVIEW.OBJ | Bin 0 -> 339 bytes DL.CPP | 759 +++++++ DL.OBJ | Bin 0 -> 27106 bytes DSZCTL.TXT | 10 + DSZLOG.TXT | 0 EGA.ASM | 68 + EGA.OBJ | Bin 0 -> 304 bytes EVENT.CPP | 73 + EVENT.OBJ | Bin 0 -> 1048 bytes EXEC.ASM | 959 +++++++++ EXEC.OBJ | Bin 0 -> 2419 bytes EXECHECK.CPP | 97 + EXECHECK.OBJ | Bin 0 -> 335 bytes FILEAREA.CPP | 219 ++ FILEAREA.OBJ | Bin 0 -> 3649 bytes FORWARD.CPP | 148 ++ FORWARD.OBJ | Bin 0 -> 2819 bytes FOSSIL.ASM | 241 +++ FOSSIL.CHT | 338 +++ FOSSIL.DOC | 831 ++++++++ FOSSIL.HPP | 47 + FOSSIL.OBJ | Bin 0 -> 809 bytes FUZZY.CPP | 135 ++ FUZZY.OBJ | Bin 0 -> 1793 bytes FUZZY2.OBJ | Bin 0 -> 1796 bytes GIF.CPP | 83 + GIF.OBJ | Bin 0 -> 2467 bytes HANDLER.CPP | 7 + HANDLER.OBJ | Bin 0 -> 3098 bytes HELP.CPP | 354 ++++ HELP.OBJ | Bin 0 -> 2719 bytes HUDSON.CPP | 1429 +++++++++++++ HUDSON.OBJ | Bin 0 -> 15493 bytes IMAGE.CPP | 41 + IMAGE.HPP | 336 +++ IMAGE.OBJ | Bin 0 -> 894 bytes INPDATE.CPP | 275 +++ INPDATE.OBJ | Bin 0 -> 1177 bytes IO.CPP | 1065 ++++++++++ IO.OBJ | Bin 0 -> 16091 bytes JAM.CPP | 1002 +++++++++ JAM.HPP | 127 ++ JAM.OBJ | Bin 0 -> 14468 bytes LANGUAGE.CPP | 286 +++ LANGUAGE.OBJ | Bin 0 -> 3905 bytes LASTCALL.CPP | 8 + LASTCALL.OBJ | Bin 0 -> 505 bytes LISTFILE.CPP | 1330 ++++++++++++ LISTFILE.OBJ | Bin 0 -> 19030 bytes LOADPEX.CPP | 2402 ++++++++++++++++++++++ LOADPEX.OBJ | Bin 0 -> 34574 bytes LOGIN.CPP | 1374 +++++++++++++ LOGIN.OBJ | Bin 0 -> 16550 bytes MAILCHK.CPP | 322 +++ MAILCHK.OBJ | Bin 0 -> 4349 bytes MAKE0000.BAT | 5 + MAKE0000.LCK | 0 MAKEFILE | 41 + MARK.CPP | 138 ++ MARK.OBJ | Bin 0 -> 3172 bytes MC.CFG | 17 + MCHAT.CPP | 321 +++ MCHAT.OBJ | Bin 0 -> 5586 bytes MENU.CPP | 766 +++++++ MENU.OBJ | Bin 0 -> 13755 bytes MISC.CPP | 994 +++++++++ MISC.OBJ | Bin 0 -> 8710 bytes MODEM.CPP | 741 +++++++ MODEM.OBJ | Bin 0 -> 12651 bytes MSG.CPP | 679 ++++++ MSG.OBJ | Bin 0 -> 7355 bytes MSGAREA.CPP | 119 ++ MSGAREA.OBJ | Bin 0 -> 3322 bytes MSGBASE.CPP | 82 + MSGBASE.HPP | 433 ++++ MSGBASE.OBJ | Bin 0 -> 1433 bytes MSGDEL.CPP | 12 + MSGDEL.OBJ | Bin 0 -> 487 bytes MSGED.CPP | 325 +++ MSGED.OBJ | Bin 0 -> 7354 bytes MSGEXPRT.CPP | 327 +++ MSGEXPRT.OBJ | Bin 0 -> 4840 bytes MSGFIND.CPP | 73 + MSGFIND.OBJ | Bin 0 -> 1190 bytes MSGMOVE.CPP | 37 + MSGMOVE.OBJ | Bin 0 -> 1273 bytes MUSIC.CPP | 95 + MUSIC.OBJ | Bin 0 -> 1848 bytes Main copyite filing 2.doc | Bin 0 -> 233984 bytes Main copyite filing.doc | Bin 0 -> 251904 bytes NODELIST.CPP | 232 +++ NODELIST.OBJ | Bin 0 -> 3800 bytes ONLINE.CPP | 180 ++ ONLINE.OBJ | Bin 0 -> 3646 bytes Original Proboard Copyright Material.doc | Bin 0 -> 190464 bytes PB32.DEF | 3 + PBUSER.CPP | 104 + PBUSER.OBJ | Bin 0 -> 1450 bytes PEXCALL.ASM | 73 + PEXCALL.OBJ | Bin 0 -> 242 bytes POSTMSG.CPP | 69 + POSTMSG.OBJ | Bin 0 -> 1268 bytes PROBOARD.EXE | Bin 0 -> 464880 bytes PROBOARD.HPP | 717 +++++++ PROBOARD.LOG | 455 ++++ PROBOARD.MAP | 257 +++ PROBOARD.OBJ | Bin 0 -> 17239 bytes PROMPTS.HPP | 433 ++++ PROTOCOL.CPP | 97 + PROTOCOL.OBJ | Bin 0 -> 2264 bytes QSCANMSG.CPP | 231 +++ QSCANMSG.OBJ | Bin 0 -> 6498 bytes QUESTION.CPP | 416 ++++ QUESTION.OBJ | Bin 0 -> 4657 bytes RAWDIR.CPP | 77 + RAWDIR.OBJ | Bin 0 -> 1547 bytes READMSG.CPP | 846 ++++++++ READMSG.OBJ | Bin 0 -> 16076 bytes REG.HPP | 16 + REGIS.CPP | 1042 ++++++++++ REGIS.OBJ | Bin 0 -> 4556 bytes REPLYMSG.CPP | 211 ++ REPLYMSG.OBJ | Bin 0 -> 6524 bytes REPORT.BTM | 3 + RIP.CPP | 408 ++++ RIP.OBJ | Bin 0 -> 8563 bytes SCANMSG.CPP | 260 +++ SCANMSG.OBJ | Bin 0 -> 6610 bytes SELLANG.CPP | 77 + SELLANG.OBJ | Bin 0 -> 2711 bytes SETAREA.CPP | 386 ++++ SETAREA.OBJ | Bin 0 -> 7949 bytes SHELL.CPP | 822 ++++++++ SHELL.OBJ | Bin 0 -> 15964 bytes SHOWANS.CPP | 112 + SHOWANS.OBJ | Bin 0 -> 1379 bytes SHOWMSG.CPP | 330 +++ SHOWMSG.OBJ | Bin 0 -> 6829 bytes SOURCE.LOG | 346 ++++ SOURCE.RPT | 130 ++ SQUISH.CPP | 802 ++++++++ SQUISH.OBJ | Bin 0 -> 12267 bytes STACKING.CPP | 29 + STACKING.OBJ | Bin 0 -> 562 bytes STRVARS.CPP | 389 ++++ STRVARS.OBJ | Bin 0 -> 6503 bytes SYSOPKEY.CPP | 170 ++ SYSOPKEY.OBJ | Bin 0 -> 3217 bytes TAG.CPP | 94 + TAG.OBJ | Bin 0 -> 2173 bytes TAG_RW.CPP | 95 + TAG_RW.OBJ | Bin 0 -> 1875 bytes TERMINAL.CPP | 58 + TERMINAL.OBJ | Bin 0 -> 1549 bytes TIMEBOMB.H | 22 + TIMELOG.CPP | 51 + TIMELOG.OBJ | Bin 0 -> 1663 bytes TIMER.CPP | 448 ++++ TIMER.OBJ | Bin 0 -> 5969 bytes TIMESTAT.CPP | 28 + TIMESTAT.OBJ | Bin 0 -> 2875 bytes TOPS.CPP | 80 + TOPS.OBJ | Bin 0 -> 2441 bytes TURBOC.CFG | 15 + UL.CPP | 690 +++++++ UL.OBJ | Bin 0 -> 20543 bytes USAGE.CPP | 26 + USAGE.OBJ | Bin 0 -> 747 bytes USERED.CPP | 195 ++ USERED.OBJ | Bin 0 -> 2403 bytes USERSET.CPP | 805 ++++++++ USERSET.OBJ | Bin 0 -> 14474 bytes USERWIN.CPP | 89 + USERWIN.OBJ | Bin 0 -> 3868 bytes VERSION.CPP | 66 + VERSION.OBJ | Bin 0 -> 2630 bytes VIEWFILE.CPP | 30 + VIEWFILE.OBJ | Bin 0 -> 980 bytes WORDWRAP.CPP | 28 + WORDWRAP.OBJ | Bin 0 -> 554 bytes WRITEMSG.CPP | 384 ++++ WRITEMSG.OBJ | Bin 0 -> 9083 bytes Z.BAT | 1 + ZIP.CPP | 368 ++++ ZIP.OBJ | Bin 0 -> 5233 bytes backup/MODEM.CPP | 545 +++++ backup/PB990519.ZIP | Bin 0 -> 633209 bytes backup/PB990809.ZIP | Bin 0 -> 176631 bytes c.bat | 1 + compare.bat | 84 + exec.err | 33 + files.lst | 10 + files2.lst | 85 + fixyear/FIXYEAR.C | 198 ++ fixyear/FIXYEAR.EXE | Bin 0 -> 11588 bytes fixyear/FIXYEAR.OBJ | Bin 0 -> 940 bytes fuzzy2.cpp | 293 +++ loadadf.bat | 28 + ma.bat | 3 + makeall.bat | 3 + mc.bat | 5 + new_obj/AKA.OBJ | Bin 0 -> 761 bytes new_obj/BINLOG.OBJ | Bin 0 -> 1579 bytes new_obj/BULLETIN.OBJ | Bin 0 -> 1112 bytes new_obj/CDROM.OBJ | Bin 0 -> 3545 bytes new_obj/CHAT.OBJ | Bin 0 -> 4500 bytes new_obj/CLEANUP.OBJ | Bin 0 -> 3276 bytes new_obj/COMBINED.OBJ | Bin 0 -> 2836 bytes new_obj/DECKEY.OBJ | Bin 0 -> 2638 bytes new_obj/DESQVIEW.OBJ | Bin 0 -> 339 bytes new_obj/DL.OBJ | Bin 0 -> 27106 bytes new_obj/EGA.OBJ | Bin 0 -> 304 bytes new_obj/EVENT.OBJ | Bin 0 -> 1048 bytes new_obj/EXEC.OBJ | Bin 0 -> 2419 bytes new_obj/EXECHECK.OBJ | Bin 0 -> 335 bytes new_obj/FILEAREA.OBJ | Bin 0 -> 3649 bytes new_obj/FORWARD.OBJ | Bin 0 -> 2818 bytes new_obj/FOSSIL.OBJ | Bin 0 -> 809 bytes new_obj/FUZZY.OBJ | Bin 0 -> 1793 bytes new_obj/GIF.OBJ | Bin 0 -> 2467 bytes new_obj/HELP.OBJ | Bin 0 -> 2719 bytes new_obj/HUDSON.OBJ | Bin 0 -> 15492 bytes new_obj/IMAGE.OBJ | Bin 0 -> 894 bytes new_obj/INPDATE.OBJ | Bin 0 -> 1177 bytes new_obj/IO.OBJ | Bin 0 -> 16090 bytes new_obj/JAM.OBJ | Bin 0 -> 14467 bytes new_obj/LANGUAGE.OBJ | Bin 0 -> 3905 bytes new_obj/LASTCALL.OBJ | Bin 0 -> 505 bytes new_obj/LISTFILE.OBJ | Bin 0 -> 19030 bytes new_obj/LOADPEX.OBJ | Bin 0 -> 34574 bytes new_obj/LOGIN.OBJ | Bin 0 -> 16827 bytes new_obj/MAILCHK.OBJ | Bin 0 -> 4349 bytes new_obj/MARK.OBJ | Bin 0 -> 3172 bytes new_obj/MCHAT.OBJ | Bin 0 -> 5586 bytes new_obj/MENU.OBJ | Bin 0 -> 16046 bytes new_obj/MISC.OBJ | Bin 0 -> 8710 bytes new_obj/MODEM.OBJ | Bin 0 -> 12649 bytes new_obj/MSG.OBJ | Bin 0 -> 7354 bytes new_obj/MSGAREA.OBJ | Bin 0 -> 3322 bytes new_obj/MSGBASE.OBJ | Bin 0 -> 1433 bytes new_obj/MSGDEL.OBJ | Bin 0 -> 487 bytes new_obj/MSGED.OBJ | Bin 0 -> 7354 bytes new_obj/MSGEXPRT.OBJ | Bin 0 -> 4840 bytes new_obj/MSGFIND.OBJ | Bin 0 -> 1190 bytes new_obj/MSGMOVE.OBJ | Bin 0 -> 1273 bytes new_obj/MUSIC.OBJ | Bin 0 -> 1848 bytes new_obj/NODELIST.OBJ | Bin 0 -> 3800 bytes new_obj/ONLINE.OBJ | Bin 0 -> 3646 bytes new_obj/PBUSER.OBJ | Bin 0 -> 1450 bytes new_obj/PEXCALL.OBJ | Bin 0 -> 242 bytes new_obj/POSTMSG.OBJ | Bin 0 -> 1268 bytes new_obj/PROBOARD.EXE | Bin 0 -> 467040 bytes new_obj/PROBOARD.OBJ | Bin 0 -> 17465 bytes new_obj/PROTOCOL.OBJ | Bin 0 -> 2264 bytes new_obj/QSCANMSG.OBJ | Bin 0 -> 6498 bytes new_obj/QUESTION.OBJ | Bin 0 -> 4657 bytes new_obj/RAWDIR.OBJ | Bin 0 -> 1547 bytes new_obj/READMSG.OBJ | Bin 0 -> 16076 bytes new_obj/REGIS.OBJ | Bin 0 -> 4556 bytes new_obj/REPLYMSG.OBJ | Bin 0 -> 6524 bytes new_obj/RIP.OBJ | Bin 0 -> 8563 bytes new_obj/SCANMSG.OBJ | Bin 0 -> 6610 bytes new_obj/SELLANG.OBJ | Bin 0 -> 2711 bytes new_obj/SETAREA.OBJ | Bin 0 -> 7949 bytes new_obj/SHELL.OBJ | Bin 0 -> 15964 bytes new_obj/SHOWANS.OBJ | Bin 0 -> 1379 bytes new_obj/SHOWMSG.OBJ | Bin 0 -> 6829 bytes new_obj/SQUISH.OBJ | Bin 0 -> 12266 bytes new_obj/STACKING.OBJ | Bin 0 -> 562 bytes new_obj/STRVARS.OBJ | Bin 0 -> 6502 bytes new_obj/SYSOPKEY.OBJ | Bin 0 -> 3217 bytes new_obj/TAG.OBJ | Bin 0 -> 2173 bytes new_obj/TAG_RW.OBJ | Bin 0 -> 1875 bytes new_obj/TERMINAL.OBJ | Bin 0 -> 1549 bytes new_obj/TIMELOG.OBJ | Bin 0 -> 1663 bytes new_obj/TIMER.OBJ | Bin 0 -> 5969 bytes new_obj/TIMESTAT.OBJ | Bin 0 -> 2875 bytes new_obj/TOPS.OBJ | Bin 0 -> 2441 bytes new_obj/UL.OBJ | Bin 0 -> 20543 bytes new_obj/USAGE.OBJ | Bin 0 -> 747 bytes new_obj/USERED.OBJ | Bin 0 -> 2403 bytes new_obj/USERSET.OBJ | Bin 0 -> 14474 bytes new_obj/USERWIN.OBJ | Bin 0 -> 3868 bytes new_obj/VERSION.OBJ | Bin 0 -> 2628 bytes new_obj/VIEWFILE.OBJ | Bin 0 -> 980 bytes new_obj/WORDWRAP.OBJ | Bin 0 -> 554 bytes new_obj/WRITEMSG.OBJ | Bin 0 -> 9083 bytes new_obj/ZIP.OBJ | Bin 0 -> 5233 bytes obj/AKA.OBJ | Bin 0 -> 761 bytes obj/BINLOG.OBJ | Bin 0 -> 1579 bytes obj/BULLETIN.OBJ | Bin 0 -> 1112 bytes obj/CDROM.OBJ | Bin 0 -> 3545 bytes obj/CHAT.OBJ | Bin 0 -> 4490 bytes obj/CLEANUP.OBJ | Bin 0 -> 3267 bytes obj/COMBINED.OBJ | Bin 0 -> 2836 bytes obj/DECKEY.OBJ | Bin 0 -> 2638 bytes obj/DESQVIEW.OBJ | Bin 0 -> 339 bytes obj/DL.OBJ | Bin 0 -> 27106 bytes obj/EGA.OBJ | Bin 0 -> 304 bytes obj/EVENT.OBJ | Bin 0 -> 1048 bytes obj/EXEC.OBJ | Bin 0 -> 2419 bytes obj/EXECHECK.OBJ | Bin 0 -> 335 bytes obj/FILEAREA.OBJ | Bin 0 -> 3649 bytes obj/FORWARD.OBJ | Bin 0 -> 2813 bytes obj/FOSSIL.OBJ | Bin 0 -> 809 bytes obj/FUZZY.OBJ | Bin 0 -> 1793 bytes obj/GIF.OBJ | Bin 0 -> 2467 bytes obj/HELP.OBJ | Bin 0 -> 2683 bytes obj/HUDSON.OBJ | Bin 0 -> 15481 bytes obj/IMAGE.OBJ | Bin 0 -> 894 bytes obj/INPDATE.OBJ | Bin 0 -> 1095 bytes obj/IO.OBJ | Bin 0 -> 15910 bytes obj/JAM.OBJ | Bin 0 -> 14468 bytes obj/LANGUAGE.OBJ | Bin 0 -> 3905 bytes obj/LASTCALL.OBJ | Bin 0 -> 505 bytes obj/LISTFILE.OBJ | Bin 0 -> 19013 bytes obj/LOADPEX.OBJ | Bin 0 -> 34086 bytes obj/LOGIN.OBJ | Bin 0 -> 16573 bytes obj/MAILCHK.OBJ | Bin 0 -> 4349 bytes obj/MARK.OBJ | Bin 0 -> 3172 bytes obj/MCHAT.OBJ | Bin 0 -> 5586 bytes obj/MENU.OBJ | Bin 0 -> 16046 bytes obj/MISC.OBJ | Bin 0 -> 8489 bytes obj/MODEM.OBJ | Bin 0 -> 11355 bytes obj/MSG.OBJ | Bin 0 -> 7351 bytes obj/MSGAREA.OBJ | Bin 0 -> 3322 bytes obj/MSGBASE.OBJ | Bin 0 -> 1433 bytes obj/MSGDEL.OBJ | Bin 0 -> 487 bytes obj/MSGED.OBJ | Bin 0 -> 7354 bytes obj/MSGEXPRT.OBJ | Bin 0 -> 4828 bytes obj/MSGFIND.OBJ | Bin 0 -> 1190 bytes obj/MSGMOVE.OBJ | Bin 0 -> 1273 bytes obj/MUSIC.OBJ | Bin 0 -> 1848 bytes obj/NODELIST.OBJ | Bin 0 -> 3800 bytes obj/ONLINE.OBJ | Bin 0 -> 3646 bytes obj/PBUSER.OBJ | Bin 0 -> 1444 bytes obj/PEXCALL.OBJ | Bin 0 -> 242 bytes obj/POSTMSG.OBJ | Bin 0 -> 1268 bytes obj/PROBOARD.OBJ | Bin 0 -> 19002 bytes obj/PROTOCOL.OBJ | Bin 0 -> 2264 bytes obj/QSCANMSG.OBJ | Bin 0 -> 6498 bytes obj/QUESTION.OBJ | Bin 0 -> 4658 bytes obj/RAWDIR.OBJ | Bin 0 -> 1547 bytes obj/READMSG.OBJ | Bin 0 -> 16076 bytes obj/REPLYMSG.OBJ | Bin 0 -> 6524 bytes obj/RIP.OBJ | Bin 0 -> 8559 bytes obj/SCANMSG.OBJ | Bin 0 -> 6610 bytes obj/SELLANG.OBJ | Bin 0 -> 2711 bytes obj/SETAREA.OBJ | Bin 0 -> 7949 bytes obj/SHELL.OBJ | Bin 0 -> 15958 bytes obj/SHOWANS.OBJ | Bin 0 -> 1379 bytes obj/SHOWMSG.OBJ | Bin 0 -> 6823 bytes obj/SQUISH.OBJ | Bin 0 -> 12267 bytes obj/STACKING.OBJ | Bin 0 -> 562 bytes obj/STRVARS.OBJ | Bin 0 -> 6503 bytes obj/SYSOPKEY.OBJ | Bin 0 -> 3217 bytes obj/TAG.OBJ | Bin 0 -> 2173 bytes obj/TAG_RW.OBJ | Bin 0 -> 1875 bytes obj/TERMINAL.OBJ | Bin 0 -> 1549 bytes obj/TIMELOG.OBJ | Bin 0 -> 1663 bytes obj/TIMER.OBJ | Bin 0 -> 5645 bytes obj/TIMESTAT.OBJ | Bin 0 -> 2875 bytes obj/TOPS.OBJ | Bin 0 -> 2441 bytes obj/UL.OBJ | Bin 0 -> 20543 bytes obj/USAGE.OBJ | Bin 0 -> 747 bytes obj/USERED.OBJ | Bin 0 -> 2403 bytes obj/USERSET.OBJ | Bin 0 -> 14469 bytes obj/USERWIN.OBJ | Bin 0 -> 3863 bytes obj/VERSION.OBJ | Bin 0 -> 2811 bytes obj/VIEWFILE.OBJ | Bin 0 -> 980 bytes obj/WORDWRAP.OBJ | Bin 0 -> 554 bytes obj/WRITEMSG.OBJ | Bin 0 -> 9083 bytes obj/ZIP.OBJ | Bin 0 -> 5233 bytes old_obj/AKA.OBJ | Bin 0 -> 761 bytes old_obj/BINLOG.OBJ | Bin 0 -> 1579 bytes old_obj/BULLETIN.OBJ | Bin 0 -> 1112 bytes old_obj/CDROM.OBJ | Bin 0 -> 3545 bytes old_obj/CHAT.OBJ | Bin 0 -> 4500 bytes old_obj/CLEANUP.OBJ | Bin 0 -> 3276 bytes old_obj/COMBINED.OBJ | Bin 0 -> 2836 bytes old_obj/DECKEY.OBJ | Bin 0 -> 2638 bytes old_obj/DESQVIEW.OBJ | Bin 0 -> 339 bytes old_obj/DL.OBJ | Bin 0 -> 27106 bytes old_obj/EGA.OBJ | Bin 0 -> 304 bytes old_obj/EVENT.OBJ | Bin 0 -> 1048 bytes old_obj/EXEC.OBJ | Bin 0 -> 2419 bytes old_obj/EXECHECK.OBJ | Bin 0 -> 335 bytes old_obj/FILEAREA.OBJ | Bin 0 -> 3649 bytes old_obj/FORWARD.OBJ | Bin 0 -> 2818 bytes old_obj/FOSSIL.OBJ | Bin 0 -> 809 bytes old_obj/FUZZY.OBJ | Bin 0 -> 1793 bytes old_obj/GIF.OBJ | Bin 0 -> 2467 bytes old_obj/HELP.OBJ | Bin 0 -> 2719 bytes old_obj/HUDSON.OBJ | Bin 0 -> 15492 bytes old_obj/IMAGE.OBJ | Bin 0 -> 894 bytes old_obj/INPDATE.OBJ | Bin 0 -> 1177 bytes old_obj/IO.OBJ | Bin 0 -> 16090 bytes old_obj/JAM.OBJ | Bin 0 -> 14467 bytes old_obj/LANGUAGE.OBJ | Bin 0 -> 3905 bytes old_obj/LASTCALL.OBJ | Bin 0 -> 505 bytes old_obj/LISTFILE.OBJ | Bin 0 -> 19030 bytes old_obj/LOADPEX.OBJ | Bin 0 -> 34574 bytes old_obj/LOGIN.OBJ | Bin 0 -> 16827 bytes old_obj/MAILCHK.OBJ | Bin 0 -> 4349 bytes old_obj/MARK.OBJ | Bin 0 -> 3172 bytes old_obj/MCHAT.OBJ | Bin 0 -> 5586 bytes old_obj/MENU.OBJ | Bin 0 -> 13755 bytes old_obj/MISC.OBJ | Bin 0 -> 8710 bytes old_obj/MODEM.OBJ | Bin 0 -> 12649 bytes old_obj/MSG.OBJ | Bin 0 -> 7354 bytes old_obj/MSGAREA.OBJ | Bin 0 -> 3322 bytes old_obj/MSGBASE.OBJ | Bin 0 -> 1433 bytes old_obj/MSGDEL.OBJ | Bin 0 -> 487 bytes old_obj/MSGED.OBJ | Bin 0 -> 7354 bytes old_obj/MSGEXPRT.OBJ | Bin 0 -> 4840 bytes old_obj/MSGFIND.OBJ | Bin 0 -> 1190 bytes old_obj/MSGMOVE.OBJ | Bin 0 -> 1273 bytes old_obj/MUSIC.OBJ | Bin 0 -> 1848 bytes old_obj/NODELIST.OBJ | Bin 0 -> 3800 bytes old_obj/ONLINE.OBJ | Bin 0 -> 3646 bytes old_obj/PBUSER.OBJ | Bin 0 -> 1450 bytes old_obj/PEXCALL.OBJ | Bin 0 -> 242 bytes old_obj/POSTMSG.OBJ | Bin 0 -> 1268 bytes old_obj/PROBOARD.EXE | Bin 0 -> 465472 bytes old_obj/PROBOARD.OBJ | Bin 0 -> 17655 bytes old_obj/PROTOCOL.OBJ | Bin 0 -> 2264 bytes old_obj/QSCANMSG.OBJ | Bin 0 -> 6498 bytes old_obj/QUESTION.OBJ | Bin 0 -> 4657 bytes old_obj/RAWDIR.OBJ | Bin 0 -> 1547 bytes old_obj/READMSG.OBJ | Bin 0 -> 16076 bytes old_obj/REGIS.OBJ | Bin 0 -> 4556 bytes old_obj/REPLYMSG.OBJ | Bin 0 -> 6524 bytes old_obj/RIP.OBJ | Bin 0 -> 8563 bytes old_obj/SCANMSG.OBJ | Bin 0 -> 6610 bytes old_obj/SELLANG.OBJ | Bin 0 -> 2711 bytes old_obj/SETAREA.OBJ | Bin 0 -> 7949 bytes old_obj/SHELL.OBJ | Bin 0 -> 15964 bytes old_obj/SHOWANS.OBJ | Bin 0 -> 1379 bytes old_obj/SHOWMSG.OBJ | Bin 0 -> 6829 bytes old_obj/SQUISH.OBJ | Bin 0 -> 12266 bytes old_obj/STACKING.OBJ | Bin 0 -> 562 bytes old_obj/STRVARS.OBJ | Bin 0 -> 6502 bytes old_obj/SYSOPKEY.OBJ | Bin 0 -> 3217 bytes old_obj/TAG.OBJ | Bin 0 -> 2173 bytes old_obj/TAG_RW.OBJ | Bin 0 -> 1875 bytes old_obj/TERMINAL.OBJ | Bin 0 -> 1549 bytes old_obj/TIMELOG.OBJ | Bin 0 -> 1663 bytes old_obj/TIMER.OBJ | Bin 0 -> 5969 bytes old_obj/TIMESTAT.OBJ | Bin 0 -> 2875 bytes old_obj/TOPS.OBJ | Bin 0 -> 2441 bytes old_obj/UL.OBJ | Bin 0 -> 20543 bytes old_obj/USAGE.OBJ | Bin 0 -> 747 bytes old_obj/USERED.OBJ | Bin 0 -> 2403 bytes old_obj/USERSET.OBJ | Bin 0 -> 14474 bytes old_obj/USERWIN.OBJ | Bin 0 -> 3868 bytes old_obj/VERSION.OBJ | Bin 0 -> 2628 bytes old_obj/VIEWFILE.OBJ | Bin 0 -> 980 bytes old_obj/WORDWRAP.OBJ | Bin 0 -> 554 bytes old_obj/WRITEMSG.OBJ | Bin 0 -> 9083 bytes old_obj/ZIP.OBJ | Bin 0 -> 5233 bytes output.lst | 43 + p.bat | 3 + proboard.cpp | 757 +++++++ proboard2.exe | Bin 0 -> 457584 bytes reg/REG.HPP | 85 + reg/REGIS.CPP | 13 + tasm.out | 25 + test/PROBOARD.EXE | Bin 0 -> 465472 bytes test/REGISTER.EXE | Bin 0 -> 33764 bytes 492 files changed, 36511 insertions(+) create mode 100644 ADF.EXE create mode 100644 AKA.CPP create mode 100644 AKA.OBJ create mode 100644 BINLOG.CPP create mode 100644 BINLOG.OBJ create mode 100644 BULLETIN.CPP create mode 100644 BULLETIN.OBJ create mode 100644 CDROM.CPP create mode 100644 CDROM.OBJ create mode 100644 CHANGES.TXT create mode 100644 CHAT.CPP create mode 100644 CHAT.OBJ create mode 100644 CLEANUP.CPP create mode 100644 CLEANUP.OBJ create mode 100644 CLINES.BTM create mode 100644 COMBINED.CPP create mode 100644 COMBINED.OBJ create mode 100644 Copyright Files.doc create mode 100644 DECKEY.CPP create mode 100644 DECKEY.OBJ create mode 100644 DESQVIEW.ASM create mode 100644 DESQVIEW.HPP create mode 100644 DESQVIEW.LST create mode 100644 DESQVIEW.OBJ create mode 100644 DL.CPP create mode 100644 DL.OBJ create mode 100644 DSZCTL.TXT create mode 100644 DSZLOG.TXT create mode 100644 EGA.ASM create mode 100644 EGA.OBJ create mode 100644 EVENT.CPP create mode 100644 EVENT.OBJ create mode 100644 EXEC.ASM create mode 100644 EXEC.OBJ create mode 100644 EXECHECK.CPP create mode 100644 EXECHECK.OBJ create mode 100644 FILEAREA.CPP create mode 100644 FILEAREA.OBJ create mode 100644 FORWARD.CPP create mode 100644 FORWARD.OBJ create mode 100644 FOSSIL.ASM create mode 100644 FOSSIL.CHT create mode 100644 FOSSIL.DOC create mode 100644 FOSSIL.HPP create mode 100644 FOSSIL.OBJ create mode 100644 FUZZY.CPP create mode 100644 FUZZY.OBJ create mode 100644 FUZZY2.OBJ create mode 100644 GIF.CPP create mode 100644 GIF.OBJ create mode 100644 HANDLER.CPP create mode 100644 HANDLER.OBJ create mode 100644 HELP.CPP create mode 100644 HELP.OBJ create mode 100644 HUDSON.CPP create mode 100644 HUDSON.OBJ create mode 100644 IMAGE.CPP create mode 100644 IMAGE.HPP create mode 100644 IMAGE.OBJ create mode 100644 INPDATE.CPP create mode 100644 INPDATE.OBJ create mode 100644 IO.CPP create mode 100644 IO.OBJ create mode 100644 JAM.CPP create mode 100644 JAM.HPP create mode 100644 JAM.OBJ create mode 100644 LANGUAGE.CPP create mode 100644 LANGUAGE.OBJ create mode 100644 LASTCALL.CPP create mode 100644 LASTCALL.OBJ create mode 100644 LISTFILE.CPP create mode 100644 LISTFILE.OBJ create mode 100644 LOADPEX.CPP create mode 100644 LOADPEX.OBJ create mode 100644 LOGIN.CPP create mode 100644 LOGIN.OBJ create mode 100644 MAILCHK.CPP create mode 100644 MAILCHK.OBJ create mode 100644 MAKE0000.BAT create mode 100644 MAKE0000.LCK create mode 100644 MAKEFILE create mode 100644 MARK.CPP create mode 100644 MARK.OBJ create mode 100644 MC.CFG create mode 100644 MCHAT.CPP create mode 100644 MCHAT.OBJ create mode 100644 MENU.CPP create mode 100644 MENU.OBJ create mode 100644 MISC.CPP create mode 100644 MISC.OBJ create mode 100644 MODEM.CPP create mode 100644 MODEM.OBJ create mode 100644 MSG.CPP create mode 100644 MSG.OBJ create mode 100644 MSGAREA.CPP create mode 100644 MSGAREA.OBJ create mode 100644 MSGBASE.CPP create mode 100644 MSGBASE.HPP create mode 100644 MSGBASE.OBJ create mode 100644 MSGDEL.CPP create mode 100644 MSGDEL.OBJ create mode 100644 MSGED.CPP create mode 100644 MSGED.OBJ create mode 100644 MSGEXPRT.CPP create mode 100644 MSGEXPRT.OBJ create mode 100644 MSGFIND.CPP create mode 100644 MSGFIND.OBJ create mode 100644 MSGMOVE.CPP create mode 100644 MSGMOVE.OBJ create mode 100644 MUSIC.CPP create mode 100644 MUSIC.OBJ create mode 100644 Main copyite filing 2.doc create mode 100644 Main copyite filing.doc create mode 100644 NODELIST.CPP create mode 100644 NODELIST.OBJ create mode 100644 ONLINE.CPP create mode 100644 ONLINE.OBJ create mode 100644 Original Proboard Copyright Material.doc create mode 100644 PB32.DEF create mode 100644 PBUSER.CPP create mode 100644 PBUSER.OBJ create mode 100644 PEXCALL.ASM create mode 100644 PEXCALL.OBJ create mode 100644 POSTMSG.CPP create mode 100644 POSTMSG.OBJ create mode 100644 PROBOARD.EXE create mode 100644 PROBOARD.HPP create mode 100644 PROBOARD.LOG create mode 100644 PROBOARD.MAP create mode 100644 PROBOARD.OBJ create mode 100644 PROMPTS.HPP create mode 100644 PROTOCOL.CPP create mode 100644 PROTOCOL.OBJ create mode 100644 QSCANMSG.CPP create mode 100644 QSCANMSG.OBJ create mode 100644 QUESTION.CPP create mode 100644 QUESTION.OBJ create mode 100644 RAWDIR.CPP create mode 100644 RAWDIR.OBJ create mode 100644 READMSG.CPP create mode 100644 READMSG.OBJ create mode 100644 REG.HPP create mode 100644 REGIS.CPP create mode 100644 REGIS.OBJ create mode 100644 REPLYMSG.CPP create mode 100644 REPLYMSG.OBJ create mode 100644 REPORT.BTM create mode 100644 RIP.CPP create mode 100644 RIP.OBJ create mode 100644 SCANMSG.CPP create mode 100644 SCANMSG.OBJ create mode 100644 SELLANG.CPP create mode 100644 SELLANG.OBJ create mode 100644 SETAREA.CPP create mode 100644 SETAREA.OBJ create mode 100644 SHELL.CPP create mode 100644 SHELL.OBJ create mode 100644 SHOWANS.CPP create mode 100644 SHOWANS.OBJ create mode 100644 SHOWMSG.CPP create mode 100644 SHOWMSG.OBJ create mode 100644 SOURCE.LOG create mode 100644 SOURCE.RPT create mode 100644 SQUISH.CPP create mode 100644 SQUISH.OBJ create mode 100644 STACKING.CPP create mode 100644 STACKING.OBJ create mode 100644 STRVARS.CPP create mode 100644 STRVARS.OBJ create mode 100644 SYSOPKEY.CPP create mode 100644 SYSOPKEY.OBJ create mode 100644 TAG.CPP create mode 100644 TAG.OBJ create mode 100644 TAG_RW.CPP create mode 100644 TAG_RW.OBJ create mode 100644 TERMINAL.CPP create mode 100644 TERMINAL.OBJ create mode 100644 TIMEBOMB.H create mode 100644 TIMELOG.CPP create mode 100644 TIMELOG.OBJ create mode 100644 TIMER.CPP create mode 100644 TIMER.OBJ create mode 100644 TIMESTAT.CPP create mode 100644 TIMESTAT.OBJ create mode 100644 TOPS.CPP create mode 100644 TOPS.OBJ create mode 100644 TURBOC.CFG create mode 100644 UL.CPP create mode 100644 UL.OBJ create mode 100644 USAGE.CPP create mode 100644 USAGE.OBJ create mode 100644 USERED.CPP create mode 100644 USERED.OBJ create mode 100644 USERSET.CPP create mode 100644 USERSET.OBJ create mode 100644 USERWIN.CPP create mode 100644 USERWIN.OBJ create mode 100644 VERSION.CPP create mode 100644 VERSION.OBJ create mode 100644 VIEWFILE.CPP create mode 100644 VIEWFILE.OBJ create mode 100644 WORDWRAP.CPP create mode 100644 WORDWRAP.OBJ create mode 100644 WRITEMSG.CPP create mode 100644 WRITEMSG.OBJ create mode 100644 Z.BAT create mode 100644 ZIP.CPP create mode 100644 ZIP.OBJ create mode 100644 backup/MODEM.CPP create mode 100644 backup/PB990519.ZIP create mode 100644 backup/PB990809.ZIP create mode 100644 c.bat create mode 100644 compare.bat create mode 100644 exec.err create mode 100644 files.lst create mode 100644 files2.lst create mode 100644 fixyear/FIXYEAR.C create mode 100644 fixyear/FIXYEAR.EXE create mode 100644 fixyear/FIXYEAR.OBJ create mode 100644 fuzzy2.cpp create mode 100644 loadadf.bat create mode 100644 ma.bat create mode 100644 makeall.bat create mode 100644 mc.bat create mode 100644 new_obj/AKA.OBJ create mode 100644 new_obj/BINLOG.OBJ create mode 100644 new_obj/BULLETIN.OBJ create mode 100644 new_obj/CDROM.OBJ create mode 100644 new_obj/CHAT.OBJ create mode 100644 new_obj/CLEANUP.OBJ create mode 100644 new_obj/COMBINED.OBJ create mode 100644 new_obj/DECKEY.OBJ create mode 100644 new_obj/DESQVIEW.OBJ create mode 100644 new_obj/DL.OBJ create mode 100644 new_obj/EGA.OBJ create mode 100644 new_obj/EVENT.OBJ create mode 100644 new_obj/EXEC.OBJ create mode 100644 new_obj/EXECHECK.OBJ create mode 100644 new_obj/FILEAREA.OBJ create mode 100644 new_obj/FORWARD.OBJ create mode 100644 new_obj/FOSSIL.OBJ create mode 100644 new_obj/FUZZY.OBJ create mode 100644 new_obj/GIF.OBJ create mode 100644 new_obj/HELP.OBJ create mode 100644 new_obj/HUDSON.OBJ create mode 100644 new_obj/IMAGE.OBJ create mode 100644 new_obj/INPDATE.OBJ create mode 100644 new_obj/IO.OBJ create mode 100644 new_obj/JAM.OBJ create mode 100644 new_obj/LANGUAGE.OBJ create mode 100644 new_obj/LASTCALL.OBJ create mode 100644 new_obj/LISTFILE.OBJ create mode 100644 new_obj/LOADPEX.OBJ create mode 100644 new_obj/LOGIN.OBJ create mode 100644 new_obj/MAILCHK.OBJ create mode 100644 new_obj/MARK.OBJ create mode 100644 new_obj/MCHAT.OBJ create mode 100644 new_obj/MENU.OBJ create mode 100644 new_obj/MISC.OBJ create mode 100644 new_obj/MODEM.OBJ create mode 100644 new_obj/MSG.OBJ create mode 100644 new_obj/MSGAREA.OBJ create mode 100644 new_obj/MSGBASE.OBJ create mode 100644 new_obj/MSGDEL.OBJ create mode 100644 new_obj/MSGED.OBJ create mode 100644 new_obj/MSGEXPRT.OBJ create mode 100644 new_obj/MSGFIND.OBJ create mode 100644 new_obj/MSGMOVE.OBJ create mode 100644 new_obj/MUSIC.OBJ create mode 100644 new_obj/NODELIST.OBJ create mode 100644 new_obj/ONLINE.OBJ create mode 100644 new_obj/PBUSER.OBJ create mode 100644 new_obj/PEXCALL.OBJ create mode 100644 new_obj/POSTMSG.OBJ create mode 100644 new_obj/PROBOARD.EXE create mode 100644 new_obj/PROBOARD.OBJ create mode 100644 new_obj/PROTOCOL.OBJ create mode 100644 new_obj/QSCANMSG.OBJ create mode 100644 new_obj/QUESTION.OBJ create mode 100644 new_obj/RAWDIR.OBJ create mode 100644 new_obj/READMSG.OBJ create mode 100644 new_obj/REGIS.OBJ create mode 100644 new_obj/REPLYMSG.OBJ create mode 100644 new_obj/RIP.OBJ create mode 100644 new_obj/SCANMSG.OBJ create mode 100644 new_obj/SELLANG.OBJ create mode 100644 new_obj/SETAREA.OBJ create mode 100644 new_obj/SHELL.OBJ create mode 100644 new_obj/SHOWANS.OBJ create mode 100644 new_obj/SHOWMSG.OBJ create mode 100644 new_obj/SQUISH.OBJ create mode 100644 new_obj/STACKING.OBJ create mode 100644 new_obj/STRVARS.OBJ create mode 100644 new_obj/SYSOPKEY.OBJ create mode 100644 new_obj/TAG.OBJ create mode 100644 new_obj/TAG_RW.OBJ create mode 100644 new_obj/TERMINAL.OBJ create mode 100644 new_obj/TIMELOG.OBJ create mode 100644 new_obj/TIMER.OBJ create mode 100644 new_obj/TIMESTAT.OBJ create mode 100644 new_obj/TOPS.OBJ create mode 100644 new_obj/UL.OBJ create mode 100644 new_obj/USAGE.OBJ create mode 100644 new_obj/USERED.OBJ create mode 100644 new_obj/USERSET.OBJ create mode 100644 new_obj/USERWIN.OBJ create mode 100644 new_obj/VERSION.OBJ create mode 100644 new_obj/VIEWFILE.OBJ create mode 100644 new_obj/WORDWRAP.OBJ create mode 100644 new_obj/WRITEMSG.OBJ create mode 100644 new_obj/ZIP.OBJ create mode 100644 obj/AKA.OBJ create mode 100644 obj/BINLOG.OBJ create mode 100644 obj/BULLETIN.OBJ create mode 100644 obj/CDROM.OBJ create mode 100644 obj/CHAT.OBJ create mode 100644 obj/CLEANUP.OBJ create mode 100644 obj/COMBINED.OBJ create mode 100644 obj/DECKEY.OBJ create mode 100644 obj/DESQVIEW.OBJ create mode 100644 obj/DL.OBJ create mode 100644 obj/EGA.OBJ create mode 100644 obj/EVENT.OBJ create mode 100644 obj/EXEC.OBJ create mode 100644 obj/EXECHECK.OBJ create mode 100644 obj/FILEAREA.OBJ create mode 100644 obj/FORWARD.OBJ create mode 100644 obj/FOSSIL.OBJ create mode 100644 obj/FUZZY.OBJ create mode 100644 obj/GIF.OBJ create mode 100644 obj/HELP.OBJ create mode 100644 obj/HUDSON.OBJ create mode 100644 obj/IMAGE.OBJ create mode 100644 obj/INPDATE.OBJ create mode 100644 obj/IO.OBJ create mode 100644 obj/JAM.OBJ create mode 100644 obj/LANGUAGE.OBJ create mode 100644 obj/LASTCALL.OBJ create mode 100644 obj/LISTFILE.OBJ create mode 100644 obj/LOADPEX.OBJ create mode 100644 obj/LOGIN.OBJ create mode 100644 obj/MAILCHK.OBJ create mode 100644 obj/MARK.OBJ create mode 100644 obj/MCHAT.OBJ create mode 100644 obj/MENU.OBJ create mode 100644 obj/MISC.OBJ create mode 100644 obj/MODEM.OBJ create mode 100644 obj/MSG.OBJ create mode 100644 obj/MSGAREA.OBJ create mode 100644 obj/MSGBASE.OBJ create mode 100644 obj/MSGDEL.OBJ create mode 100644 obj/MSGED.OBJ create mode 100644 obj/MSGEXPRT.OBJ create mode 100644 obj/MSGFIND.OBJ create mode 100644 obj/MSGMOVE.OBJ create mode 100644 obj/MUSIC.OBJ create mode 100644 obj/NODELIST.OBJ create mode 100644 obj/ONLINE.OBJ create mode 100644 obj/PBUSER.OBJ create mode 100644 obj/PEXCALL.OBJ create mode 100644 obj/POSTMSG.OBJ create mode 100644 obj/PROBOARD.OBJ create mode 100644 obj/PROTOCOL.OBJ create mode 100644 obj/QSCANMSG.OBJ create mode 100644 obj/QUESTION.OBJ create mode 100644 obj/RAWDIR.OBJ create mode 100644 obj/READMSG.OBJ create mode 100644 obj/REPLYMSG.OBJ create mode 100644 obj/RIP.OBJ create mode 100644 obj/SCANMSG.OBJ create mode 100644 obj/SELLANG.OBJ create mode 100644 obj/SETAREA.OBJ create mode 100644 obj/SHELL.OBJ create mode 100644 obj/SHOWANS.OBJ create mode 100644 obj/SHOWMSG.OBJ create mode 100644 obj/SQUISH.OBJ create mode 100644 obj/STACKING.OBJ create mode 100644 obj/STRVARS.OBJ create mode 100644 obj/SYSOPKEY.OBJ create mode 100644 obj/TAG.OBJ create mode 100644 obj/TAG_RW.OBJ create mode 100644 obj/TERMINAL.OBJ create mode 100644 obj/TIMELOG.OBJ create mode 100644 obj/TIMER.OBJ create mode 100644 obj/TIMESTAT.OBJ create mode 100644 obj/TOPS.OBJ create mode 100644 obj/UL.OBJ create mode 100644 obj/USAGE.OBJ create mode 100644 obj/USERED.OBJ create mode 100644 obj/USERSET.OBJ create mode 100644 obj/USERWIN.OBJ create mode 100644 obj/VERSION.OBJ create mode 100644 obj/VIEWFILE.OBJ create mode 100644 obj/WORDWRAP.OBJ create mode 100644 obj/WRITEMSG.OBJ create mode 100644 obj/ZIP.OBJ create mode 100644 old_obj/AKA.OBJ create mode 100644 old_obj/BINLOG.OBJ create mode 100644 old_obj/BULLETIN.OBJ create mode 100644 old_obj/CDROM.OBJ create mode 100644 old_obj/CHAT.OBJ create mode 100644 old_obj/CLEANUP.OBJ create mode 100644 old_obj/COMBINED.OBJ create mode 100644 old_obj/DECKEY.OBJ create mode 100644 old_obj/DESQVIEW.OBJ create mode 100644 old_obj/DL.OBJ create mode 100644 old_obj/EGA.OBJ create mode 100644 old_obj/EVENT.OBJ create mode 100644 old_obj/EXEC.OBJ create mode 100644 old_obj/EXECHECK.OBJ create mode 100644 old_obj/FILEAREA.OBJ create mode 100644 old_obj/FORWARD.OBJ create mode 100644 old_obj/FOSSIL.OBJ create mode 100644 old_obj/FUZZY.OBJ create mode 100644 old_obj/GIF.OBJ create mode 100644 old_obj/HELP.OBJ create mode 100644 old_obj/HUDSON.OBJ create mode 100644 old_obj/IMAGE.OBJ create mode 100644 old_obj/INPDATE.OBJ create mode 100644 old_obj/IO.OBJ create mode 100644 old_obj/JAM.OBJ create mode 100644 old_obj/LANGUAGE.OBJ create mode 100644 old_obj/LASTCALL.OBJ create mode 100644 old_obj/LISTFILE.OBJ create mode 100644 old_obj/LOADPEX.OBJ create mode 100644 old_obj/LOGIN.OBJ create mode 100644 old_obj/MAILCHK.OBJ create mode 100644 old_obj/MARK.OBJ create mode 100644 old_obj/MCHAT.OBJ create mode 100644 old_obj/MENU.OBJ create mode 100644 old_obj/MISC.OBJ create mode 100644 old_obj/MODEM.OBJ create mode 100644 old_obj/MSG.OBJ create mode 100644 old_obj/MSGAREA.OBJ create mode 100644 old_obj/MSGBASE.OBJ create mode 100644 old_obj/MSGDEL.OBJ create mode 100644 old_obj/MSGED.OBJ create mode 100644 old_obj/MSGEXPRT.OBJ create mode 100644 old_obj/MSGFIND.OBJ create mode 100644 old_obj/MSGMOVE.OBJ create mode 100644 old_obj/MUSIC.OBJ create mode 100644 old_obj/NODELIST.OBJ create mode 100644 old_obj/ONLINE.OBJ create mode 100644 old_obj/PBUSER.OBJ create mode 100644 old_obj/PEXCALL.OBJ create mode 100644 old_obj/POSTMSG.OBJ create mode 100644 old_obj/PROBOARD.EXE create mode 100644 old_obj/PROBOARD.OBJ create mode 100644 old_obj/PROTOCOL.OBJ create mode 100644 old_obj/QSCANMSG.OBJ create mode 100644 old_obj/QUESTION.OBJ create mode 100644 old_obj/RAWDIR.OBJ create mode 100644 old_obj/READMSG.OBJ create mode 100644 old_obj/REGIS.OBJ create mode 100644 old_obj/REPLYMSG.OBJ create mode 100644 old_obj/RIP.OBJ create mode 100644 old_obj/SCANMSG.OBJ create mode 100644 old_obj/SELLANG.OBJ create mode 100644 old_obj/SETAREA.OBJ create mode 100644 old_obj/SHELL.OBJ create mode 100644 old_obj/SHOWANS.OBJ create mode 100644 old_obj/SHOWMSG.OBJ create mode 100644 old_obj/SQUISH.OBJ create mode 100644 old_obj/STACKING.OBJ create mode 100644 old_obj/STRVARS.OBJ create mode 100644 old_obj/SYSOPKEY.OBJ create mode 100644 old_obj/TAG.OBJ create mode 100644 old_obj/TAG_RW.OBJ create mode 100644 old_obj/TERMINAL.OBJ create mode 100644 old_obj/TIMELOG.OBJ create mode 100644 old_obj/TIMER.OBJ create mode 100644 old_obj/TIMESTAT.OBJ create mode 100644 old_obj/TOPS.OBJ create mode 100644 old_obj/UL.OBJ create mode 100644 old_obj/USAGE.OBJ create mode 100644 old_obj/USERED.OBJ create mode 100644 old_obj/USERSET.OBJ create mode 100644 old_obj/USERWIN.OBJ create mode 100644 old_obj/VERSION.OBJ create mode 100644 old_obj/VIEWFILE.OBJ create mode 100644 old_obj/WORDWRAP.OBJ create mode 100644 old_obj/WRITEMSG.OBJ create mode 100644 old_obj/ZIP.OBJ create mode 100644 output.lst create mode 100644 p.bat create mode 100644 proboard.cpp create mode 100644 proboard2.exe create mode 100644 reg/REG.HPP create mode 100644 reg/REGIS.CPP create mode 100644 tasm.out create mode 100644 test/PROBOARD.EXE create mode 100644 test/REGISTER.EXE diff --git a/ADF.EXE b/ADF.EXE new file mode 100644 index 0000000000000000000000000000000000000000..ee0a0b568d23b70c26d625396a4221a8958a691d GIT binary patch literal 8643 zcmd^Edt6iJ-G6dB2>~KSjBR!CfQYqRgrJl{w5W)edZFTl)_RE~U_ONePtFnDY!{b( zTFId_{jBfSb?sh}cCVk-ZMLOr)GkKi(6-VF-TO}MjVaUT7<5!R2ni(b?>Pab-PY~> z`_1PA=ehiz@9+M5&Uv2IkNG8cA%vu;5k;djrAUR)*V7Q9VNCobF0z&yt#pO0nr$#L zX1Z)`Ma7C$^hPsdx7e(7Ue3Jv$URQ{UC+r#0bC~jW=`yUM_Wa0Mb7JrzVPD3eXg_4 zc3G(Ju#OWBOSrhhG?xfdemDHXYf#`bS4Ixf-x#E}AP0Aq*VUk6T@_+KTioZoP908S zX~&;^j<0-gN;s+OoJ)DLSXYGDNlOS(Pk$qj`*V07uPa1>KHk?yVC39(US~!Jl*PIN z#NNH65jvSVBVwo60xKzVMEO*WQOj_0MBw z#ygU98EcN5Wmm)B1~3TVjT4#}nnRbJf;lD(V(vF3*kt)QksCE}&x^?-MO?OH_?m zD2bDX{k#Uu@*$W+118awA_m4B8C%d_0l;+@fPyd2Wy`|h6g!>>q`F20cE463WbA#4ZIJhMwun}$0OsW=d!|h z$2dgYo#82A{O|;wfSC4kiat1W>9URQ>CQ^j6t%vF<#HDlg7m`D8Nye`Er zLeNObyqu#BW}*ZoxJ!C4J2ovlItj?YgI)-bp_0PfC^HEk9AT1T9>krYut$OfEd|!U3$Ql;2KGSuks1YQ zq;e_4;GIE5*b|Kke^mh4bp`KhlXPl185#Oaq3`X~3jeKe<9kM#WKp*SFfb%ND}@Rc z7A^xl9vxu}ho!8N6fj31nan%bc#@evEXT`3;mX4jRvRL-@`Er11UTPFG+GJw8Mr=!6=Q~q{2GYjQk1$hs-4iI(sH+30`%xraq5_YHg-s%@ z=7bUf$V$NT+R-sNYVxN`LhLkN9$zYD)y@w2<*z}tKzd_Jfvu5|SFJHGDcroIyLNKtvd z@0I5B??s}`7n*(75p1Qe%S*Ri#b+B-nWqL` zD@idexe2>sdWkqqYB}B&dSnx|p>0xUlIxtl_kiXxr0>rE)RTKxXOey}t(%j-bx&Xt zIMSC(uJMq8BI9u0w#nN$@TQ?a!YwSZ|UvpBF2EpJ_q!uy9OqusJ& zlM#QabtUqyL<6r1??~Nvc$iV(TvBj#VIqex%%nrU7$l)SR_?kGNVuIf2`aL8RN!gD zn+2QHAYr9%$CFxEMcxtco5PF_rwrZBQ8m=iXM>O{m(9FUF1UJ^!DdDe&GEP%SDgL+kHJMdBOS#!b4WkD9+2ag3xk(0sq^w7$2i z=cmzE566Msou}n9wrwSEQaRC_KDE2N!qN8>Be2Dhb8J=QoMWWK{+a7DeYERJ*A@Pm zn{oVq_Qi!Z@O_P2lbHSc#oO_^nm6X#rrZhpBnlnzD2DG}{v`wc%VnqYOxHIy;xTaOocO_vE6t-Bm z$OYQuy)Py>yrFz7wxK~@2=BDX3>3i+#}xdS#Dxm%6M8u(s!K=+Ls@N zy^N)1CrjT~HHXf7@WFZ6@b5voqRMDBS**t07WmjHwbWQxV=Y~=*Up;j?DV3=iRwi4 z3M*@7tY)@|-pR7{MRVsiG&JOxEH(DM_8hyJCO>m_ozYTTL>o;dwgrOHoDqurY&~53Rcya zO_7A44HD)_aKG94zt62mx+R5U2Bg4|RYTCx`G&6KPV>5A8tQ|nCbUnw^ z+wA6VAh9-@HQQMcz`Wa7%NbcS4NJ+&8pc>hSKAocNY|Sgi_JuE^K)sF5o{nTT3%~5 zf-xA*N~f(`x@<+o`lajA=xPfCh=9z&9J>=#83Thws1z2H2~ZxMR_3;;iim26z$zcL zar92(ZgY%oB7!JRoek7x!34L3p;uJXdtp(7(R!P)g{28$R-&5B)NvrvI5XP9=FnrZ zHyDA?2&8ppE1LuSjize4-UdcAnoJCBVRq3wjGPJ9R_)-bH)rj%)tWYERoSfUmMt{P z7-5j!Ty3egZJ{^UTC8Sx)Y(ktx-CQ#5eL*7`-~R5R<3S`naQGav-9)?Su~h;$=cP~ zWGaia^0LW4{R27l(mlqy`dWyY+%cj&A{@vBzeVsg+wH`wJI#BDU+#e9W|zTl!utHO z!bCMug#1>ldxVaO@avMA_(B~J< z%gs$x$E-xt6_)Rt2|o1A7H}k3shTLQpI?xjR{+Elmd?w4upm)Q>`LS-tF<*idRSS; zR!fV6U?DqetIwiM=4vBX%hC_bEgZuJ*a<-S^9w<2vi9$Q$e_i_flLg@WM?5s?%);t zGrZgf^oi;*AKz99`c``#1kJzJiG&3aWnIh)44qdne?GWpMcG;i9ZO9OWN58){^xF^K-Mns97L|mV$#e^SM1xnR-t%H;&XFr5DWbin^?eL5V1#G@8>jN=a{~b9&eIjSRp2#^L z!eN|?$QXboxH+$Y0Ox~iNWKxmRpdDyGvi4vM7#Ii^#$c8nm)-Edj1{7ni zBjgs=ZmzASs~KAzT?a$V-v0w^gORP;Nv~bAZ*5uGKGsqP#e9OWEXP>sDkH;Kz@Z|k z$yP&r2S&A3SN~glppqI%fq;TvMUxFd+>1!T&JuMdOlcd(lG0;0gV9ZP`o6r}?EHe< z+&M9u!Ttte39%+tZqbZZ8`NbY9WmQKknFzk+=k7fAa@*i4%skZKUm5zpn+(7^B!{* zCq_KDsEBAE+cL_1oIGMdtGNNp%9wX?7TDQy&<3kUb@z1G!gm97-2cyj|I|LPqZtc;H-B>VnMxW(fTFJ z*RFvGgcq!D2OId$3I*I|6#@R~banMVp1&Pk5I{hI(62R@dVYPcZ0xBZLVx3fW%g$L zqpeDN{3Auvsuz~*&aM7=WitA8Vg70JBtu}%`VHAVXx6C#*B`g72*j5>{L)v`d)#yH z-&J}e?JvLWUhwL2D*r{5zBr@$$rv9BH7hbY5z_Y`Qz3YX@3yP<4D>c>Mc7JE8zL&q~YKJeC4*u-J`@@>q4Nooc*d#+&e#(cI zJA=9go2=jYC$zt#W3ls3_pWdb$2V+Q#QPn?vcEacqvJ|6bh+z#*9G#I**`5L&Nwfi zw@ib#BJiO(*xQA>aAv>rOXQg>8T#{yI5aen-!1Ey{HILnciL%MkCsV<(~r0X*JO5i ziBJ>uT$2gLs9W#jBgdlATfZ6VT5&>x`2T4u=}h&PlLPK%-$w5XDfqMKR(v7qeJ2HX zN4+}KmerZ+`a(R8noQb-1MICe+zs!w6#Q1S(ofE&0=JGB5?Q5z-aWJ?=wAaT$oanf z_fM#iE5RY;GIteTv?rDgT>)|AvQzf!!~WnHMba2WvSV0nPrgGU4Er61)W7*1f|40@ z3@0(Y4uK}m&jQ!nn@*|`!O#CR27eD(oKp6ap=&<@4yvJRvQv{U*{^JaliyFai7;1I zZuq?frQLvQia)4ag6m^fSpR9-jXlbx5KLXWhBt2Fzv9FE2mA%V?JoYRA)b*JhZ_`` zUrzgIxa)jZch}9XFIRI{w{6|x7g-GOm-sF?CqK)#=XVbcJU=83jEJ@ZN9reM>u5dTTrtj^T160{Sk z*n&+|)5QsdV5mz??ZsW(%;GRNqv_%wHU-HFI6us2To#1CP`LS`a$C@!ar()iGpb?= zGWI_iS+kzY;g^kM6fYg&W@Qv_335Fd#j8WyCE&uZ4P`Vgg{7+j1TY9h;P+uAcn~38 z8@d=XLkGDFg~Y z^x-;zjIfm9F&0h_0TCgOw6ZhRF4g<=y{)UJIW%jgNgx$GG8k=J*O{8ZZ;C8lhwnv| zT#|T5#cPkFby$rmSw(B;-k^Wje+ zhIJL?In6q^_T{K98Etl5+dKnmk8vqKzlBw8vx!{|Gt{ zt;5dnV@l>($b0(%XHd;Nv>-{-P;}yVXy}U5r*L*7C`&^F8LdyC3^=s#TD5_uN{=L^ zGsQbs8`xjzL8Q4xD{xWojVZ#isIVxCzdy>}S|`dtPCszPU+&ydsHtt}_B};H?4CkR zZAVvI!Y95~WO_4{Q3wp>9OYawiTVJOoBI2D`=u#&lI62BK$yV zsDc~FC0s_?5rYj{Yq`ls40X_0&8hKkLX5(RC3cPQR>aFq5q=xNzX&n6h?X~;!KWJV zp$vrghL|4ws}S>PD+pN|Vm`qQA?71O^FDaee)`aCgg1nk_waim=3P=bjziF+cKl@s zirTN>Na#?j9>rheeu?LXn4jXJ5cB*3Bw?Bsppu4XN?OU;>pD2W7B`-=jc~u%g=O$u zj2wn6uB;5lg%&svvzXTa)kUX}RD7yoe(PeCc_Gse(g#cIGEWI=EfvY9mf=goFvd*g z0U$=K66aDGnb0|kj|?+G{O&L_K;*wk4rfR+cU+{nK}5iAd^ZKPfvg7P!_^Z2bn4O`5==>##D#05oUv6 zzh_50CzHtOo|Myyx1BD+{G2j&D@QIsTXPX^4Y3K{i&KOhBi_m>!s8>&lv|t83?>!B zGk~L)$Bqp>rE-Z&~jM|7=i(tTj6we{3hM2^&%#(zg-p>)G&eTZJ&_xKiUFDEw2WKO>%8<;vJ{5w*|V}Q8-p%+NO7=#OjcDbPDbq{D&3m TF%Qav`>>T^@6V?QbohS(8*)%R literal 0 HcmV?d00001 diff --git a/AKA.CPP b/AKA.CPP new file mode 100644 index 0000000..1a99e0f --- /dev/null +++ b/AKA.CPP @@ -0,0 +1,28 @@ +#include +#include "proboard.hpp" + +int +aka::read(int n) +{ + File f(FileName(syspath,"AKA.PRO")); + + if(!f.opened()) + { + CLEAR_OBJECT(*this); + + return -1; + } + + CLEAR_OBJECT(*this); + + f.seek(long(n)*sizeof(aka)); + + if(f.read(this,sizeof(aka)) != sizeof(aka)) + { + CLEAR_OBJECT(*this); + + return -1; + } + return 0; +} + diff --git a/AKA.OBJ b/AKA.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..6d9a9aee689609f92920a1d1f798b37e5c6fc202 GIT binary patch literal 761 zcmZuv&1(}u6o0cxb~hhNz*y`>LJ1-S10fK55jIU43l_8FV`&e%tedR~P10m{leQj8 zAquIn;7PQo)W1Lk4*@SZn8T;C?GwJ6LCZ+>5Ic+9pF7->}s$<=DV zbp-%?+4yYKKewiqq)Of&4+i~_PnT!oLow%J&<@jGO8My8sl#SfLYJmm2gD_SFKr_U> zM+0k8rY-mE3$RIXacMELzyT|2n_5-U3*hFG#gYw7+h&U_4y?L;^A=c+~fg8 zoTPK#NeDo$eb_vliFEn#iuC#P)eZnZKBjh)BYw{sd$Z@=5sr3}!`}VjHFMpLn?m;B zl=U>X4q(gCAuymK-H+hz)}tL3tWdMTnhp9Sg*`JZFC+PP2fAaLgW7*xsB9-)uRhqu zF=@;8r?ty+Oq!g7Z?T};er%d&;J+Os-NA1A>%Gt0uWy1e6x_x)fi?O9V|)^5Z+ePQJ)e(I$NL_j0PrJ*_;d + +const int BINLOG_BUF = 10; + +bool +BinLog::append() +{ + File f(FN_BINLOG_PB,fmode_rw | fmode_copen | fmode_denywr); + + if(!f.opened()) return FALSE; + + if(f.len() >= sizeof(BinLog)) + { + Date today(TODAY); + BinLog *log = new BinLog[ BINLOG_BUF ]; + + f.seek(0); + + f.read(log,sizeof(BinLog)); + + if(cfg.binlogdays && (today - log->date) > cfg.binlogdays) + { + f.seek(0); + for(long rec = 0;;rec++) + { + if(f.read(log,sizeof(BinLog)) != sizeof(BinLog)) break; + + if((today - log->date) <= cfg.binlogdays) + { + long dest_rec = 0; + + for(;;) + { + f.seek(rec * sizeof(BinLog)); + + word n = f.read(log,sizeof(BinLog) * BINLOG_BUF); + + if(n < sizeof(BinLog)) break; + + n /= sizeof(BinLog); + + f.seek(dest_rec * sizeof(BinLog)); + f.write(log,n * sizeof(BinLog)); + + dest_rec += n; + rec += n; + } + + f.seek(dest_rec * sizeof(BinLog)); + f.cut(); + + break; + } + } + } + + delete [] log; + } + + f.seek(f.len() / sizeof(BinLog) * sizeof(BinLog)); + + f.write(this,sizeof(*this)); + + return TRUE; +} + +BinLog::BinLog() +{ + memset(this,0,sizeof(*this)); +} diff --git a/BINLOG.OBJ b/BINLOG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..4c0ea2890d61796ba2771cb190acb49fea58022b GIT binary patch literal 1579 zcmah~Z)h839R9s`xg_S&uI<`7!4GA`G8_~%QU?A@(=2n)wMUx1^pN#P(_0No(>9m8 zc7s(V3|dd6pH#+#`BD5L=!dNP5=PuIm)xX?&M)qhVAd(2)~=Sh^LLkY>7>&SIex$A zectDJ-uL%H-tmHGJdsLHPxi!TW)>C?06=@R|446Fa5|lgr6#)i4ahC?|#bqJ0kgBL#5_8F>Y8h7iY%Y@%_bAjR_o`|iHz)TI0pEB$leTu9jjM`HizcQX!4@qP%UHdlj{D|kr{-U>dQ_{! z_U`1rdJPT)Bu$QIrqfbNo|Ehd2{oxEWV{UD_=KFal4{_=1_{1dH30{gap0si5KN>7 zrY8fjnHf2S;WeD9d--WxYS~$;XVxw=uyyHqmH>?C_pVCBd3S0S|M9v3(p-w67Cw z?RnQ$#kQ?qpHk&wu-fKZ(#T7YvmU`b%`UAwXcw@%$iTmv+__yyeRpzJL|TZ}6H z?$G_l4ccjZPMeL3)N7olym5vy#%W57aq2M!XovA4ead(a@nvjkCZRp#QG9# zDlcJujxyhzq}&Zkx$+=wE&CB~qkQ23<%)k&uJjviE&PP_D%Ri9rqWlGFMUkgzh8)w x;@K!ErDApgHCvg;7@bmiOet=)euD^uypY{&jd5;0e`~xg|E*}5@ literal 0 HcmV?d00001 diff --git a/BULLETIN.CPP b/BULLETIN.CPP new file mode 100644 index 0000000..faf17a9 --- /dev/null +++ b/BULLETIN.CPP @@ -0,0 +1,44 @@ +#include +#include "proboard.hpp" + +void +bulletin(char *data) +{ + char fname[9]; + + for(int i=0;data[i]==' ';i++) {} + + char *s = &data[i]; + for(;data[i] && data[i]!=' ';i++) {} + data[i] = '\0'; + + String prompt; + + for(i++;data[i]==' ';i++) {} + + if(data[i]) + prompt = &data[i]; + else + prompt = S_ENTER_BULLETIN; + + for(;;) + { + strcpy(fname,s); + + io << '\n'; + + showansasc(fname); + + io << "\n\7" << prompt; + + io.read(&fname[strlen(fname)],8-strlen(fname),READMODE_UPALL); + + if(strlen(fname) <= strlen(s)) break; + + if(showansasc(fname,NULL) == ANS_NOFILE) + io << "\n\n" << S_FILE_NOT_FOUND << ' ' << S_PRESS_ENTER_TO_CONTINUE; + else + io << '\n' << S_PRESS_ENTER_TO_CONTINUE; + } +} + diff --git a/BULLETIN.OBJ b/BULLETIN.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..63eaa2bc8ff2427527078f87f0d021d609e867bc GIT binary patch literal 1112 zcmZWpOGq106umQ(Ok#{0YYe4}kVTM!#a09nTIgs#ZNZu$pGPg|kc?4>4oS>R;%89= zDMV9CHx(;wv2@o(ai_GK(k7PDM8ri`r8}WEQi_PBE}Xu6G^1U-%bj!2x%ZxV!%WwM zF_aL+uq;H{_*iTqbshlBen(fQttT26gOMSdqqWu6(bj&L(gOUYU_3MCo6cNSQO&T;>qNbPu&^n@ai3YtwDpcTM6LF4_Mx*1wh!m7~`&eX(m)pT~76UyO z3vqbw5ui9B3KnKKDoKJUM45OvI8@RJ2_DQ<+#V98(NY1L{zIpDsAb%O81BY$W*9DT zK92Red_Kp`mo!83z``&Acfbsbpd-Mj2k z@t*tp3!v_F%*MjBo2J&4q@FF*XRH7%%IaJr4ynefdM2Y+lKV<>4?_p#h8S8gu+}wz z<7c{B?C)2Szm?>#Qd!N>dym=r6_Qm8-s+)s)2l}2(E;_ra%zN8U1!THRqWlpx;ai3 z-28?9>;oEo9p&|7FY(VekcwXw5(v_?YF zO65(@Waz>4_Q02oXLFEWMRoaCh|WJny6h7Rp~*h75H;C39P;-uEF(G_E5i581eqPM z5L6Zw3Em>Xg^2tm)R4F0(}=X$I!w$Rp@!TpKHm_X+d_0^1B02*Se<)^$lM#G%e*eq tULaF0jf|N|+%k6?)ti)*D{0}AmY7hVb literal 0 HcmV?d00001 diff --git a/CDROM.CPP b/CDROM.CPP new file mode 100644 index 0000000..5596484 --- /dev/null +++ b/CDROM.CPP @@ -0,0 +1,122 @@ +#define Use_LinkedList + +#include +#include +#include +#include +#include "proboard.hpp" + +const word copy_bufsize = 16384; + +bool +copy_file( char *s , char *d ) +{ + File fi,fo; + + if(!fi.open(s , fmode_read)) return FALSE; + + if(dos_getdiskfreespace(toupper(d[0])-'A'+1) < (fi.len() + copy_bufsize)) + return FALSE; + + if(!fo.open(d , fmode_create)) return FALSE; + + byte *buf = new byte[ copy_bufsize ]; + + for(;;) + { + word copied = fi.read( buf, copy_bufsize ); + + if(!copied) break; + + fo.write( buf , copied); + + if(copied != copy_bufsize) break; + } + + delete [] buf; + + return TRUE; +} + +void +copy_cdrom( LinkedList &files , LinkedList &copied) +{ + FileName copydir; + + while(copied.count()) + { + copied.rewind(); + copied.remove(); + } + + if(getenv("CDTEMP") != NULL) + { + copydir = getenv("CDTEMP"); + + if(copydir[1] != ':') + { + LOG("Invalid path specified in CDTEMP!"); + return; + } + + copydir.upperCase(); + } + else + { + copydir = String(mypath) + "CD_TEMP"; + } + + copydir.delLast('\\'); + + if(copydir.len() > 2) + mkdir(copydir); + + copydir.appendBS(); + + for( files.rewind() ; !files.eol() ; files++) + { + if(files.get().copy) + { + FileName source,dest; + + source = files.get().name; + source.stripPath(); + + int len = language_string_length(S_COPYING_FROM_CDROM((char *)source)); + + io << S_COPYING_FROM_CDROM((char *)source) << '\xFF'; + + dest = copydir + source; + source = files.get().name; + + if(!copy_file( source , dest )) + { + LOG( "Error copying %s to %s" , (char *)source , (char *)dest); + io << S_ERROR_COPYING_FROM_CDROM << '\n'; + } + else + { + files.get().name = dest; + copied.add(String(dest)); + + io << String('\b',len) << String(' ',len) << String('\b',len); + } + } + } + +} + +void +delete_copied(LinkedList &copied) +{ + for( copied.rewind() ; !copied.eol() ; copied++) + { + unlink(copied.get()); + } + + while(copied.count()) + { + copied.rewind(); + copied.remove(); + } +} diff --git a/CDROM.OBJ b/CDROM.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..8cdd712465d3df1fc42f1b2be9faf57422c835a8 GIT binary patch literal 3545 zcmaJ^eQaCR6~E7RY&TBQHc6vUh-<+4fUGTPw5l5doW^w-OJ^$|SGZyJ9Q!4GtMlym zJ-?(CDxD&vIDx6#9|Iu}MPeHg63ePd^FE}7;;wAG_slXjbB& zMg2X4JvQ|tdURmG3d`<4-X9za^}pyq9VhJ;EA>Z^9uFd06}3PlgzOH=^^zSq6^mjW zdald1&)3?=u&3!nAH(rp{_p^wVc4-&pLc{|_vMleN5YT!1=@4Xrcw&Ob(mOyC`f6AL)RY%;2Dnpjoj zmaOWI04)LSMYBZ6vPpRHXa}(*Ml&>NA3mijQzf8iN!VoUd) zrqB}?V1`n=HKI{yR&efY94dp*)r&S8h0xI4_37)6;-=>VOQDy@01byhzHG?d3nBQY z2u?+?S1{9snx7%pLbk;Wt!#(G^Qh#a3X$rzS;vbyRn>x$3#u_1q2D?W|?Rjmvv_ zMquwd>&VAjRxB&;Xq#JPt-=MVph`E_BXj@w=6hE~3(i7ht?m3X)K~eP?tEPtRC>=^L50IB!|wb;D5TPY{gzP? zr%LuuLxoh{RD>Iqlfa+1AaY?DW7iF34*UF58$2SdqsJT$KVm`WY87E!5!NcHEAMKp zrf-yN)(!gHweMbr$Q&qZEnTw!>9Ua#kUuu$4M(b+D2G4F1wJf9K5SDaZLmxSAs91@ zB3xI5&kAmY+LWK~b;3t8*}rB=#$Od-N%wB<#=HW}v*nRR(~&d-1)p3qSB%OB1#G%IA%g zMfx|sU-|^sUHOP85_U_!!C$)aE28`agg1%sDz-@9$9CyiY?G#Nr!7wq4KTf|!2^2Wu8g+ew` z#Jc7G{0|bVPPQH+KV-w5Kcc@P7$x)7A-zE!Bn{Hx+^V#tT1qX}7i&_kyfaU!Z|GxE z?DA}Z&M*xDm^J#tDg*3z-bqgU+UN{t4*xP2$QL4cqsn;RLlBoti1}RLtwQ9j3PR<0 z!-V)zF7SFG^16Z8DkO8?8WW)GhSA97TMa|`62nk_OLmynYL3*`1pgCgy8fay-IP8s zn6z*hMxwQ}yrvz}rw3pvgVweIzH)ejn#1e4z#5s8`bf~9G|-uFoA2a*v9i|$2#2>< z$jl~F|KiKvLvkOs$d6&Wd$pMe z!S#hl09-f-k5#-M*A@1`Lz=lbfGi00`Uj7l2pNCA#tN|{lkkvl!5$92s4}DQJ;lSY y9u0Rd0O6+;95|NAq%t1z +#include +#include "proboard.hpp" + +static int near ring_bell(char *); + +static void +ask_leave_message(char *subj) +{ + io << "\n\n" << S_LEAVE_MESSAGE_TO_SYSOP; + + if(io.ask()) + { + io << "\n\xFF"; + + if(cfg.pageArea == 0) + cfg.pageArea = cfg.securityboard; + + writemsg(form("%d /T=Sysop /S=\"%s\"",cfg.pageArea,subj)); + + LOG(1,"Wrote a message to the sysop"); + } +} + +void +pagesysop(char *data) +{ + if(num_yells>=cfg.max_sysop_pages) // Paged too many times? + { + LOG(1,"Trying to page too many times"); + + if(showansascrip("MAXPAGE")==ANS_NOFILE) // Show ANS-file if available + { + io << '\n' << S_PAGED_TOO_MANY_TIMES << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + ask_leave_message(""); + } + return; // You're out of luck mate + } + + if(!cfg.pagingHours.enabled()) // Outside paging hours? + { + LOG(1,"Trying to page outside hours"); + + if(showansascrip("NOTAVAIL")==ANS_NOFILE) + { + io << '\n' + << S_PAGING_NOT_ALLOWED_RIGHT_NOW + << S_PRESS_ENTER_TO_CONTINUE; + + ask_leave_message(""); + } + + return; + } + + char reason[56]; + io << '\n' << S_ASK_CHAT_REASON; + + io.read(reason,55); + + strip_all(reason); + + if(strlen(reason)<5) + { + io << "\n\n" << S_CHAT_REASON_TOO_SHORT("5") + << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + return; // Must be 5 chars! + } + + LOG(1,"Sysop paged: %s",reason); + + num_yells++; // Increment yell-count + io << "\n\n" << data << char(0xFF); // Show "Yelling..." + + if(!ring_bell(reason)) // Did sysop react? + { + io << "\n\n\xFF"; // No, inform user + + if(showansascrip("PAGED")==ANS_NOFILE) + { + io << S_SYSOP_NOT_RESPONDING << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + strcpy(page_reason,reason); + + ask_leave_message(reason); + + return; + } + + LOG(1,"Chat started"); // yell-count + io << "\n\xFF"; + chat(); // Start chat +} + +void +chat() +{ + if(chatflag) return; // Are we chatting already? + + rip_reset(); + + chatflag=1; // We're chatting! + + num_yells=0; // Allow yelling again + + timer.suspend(); // Suspend timer + + user_online uo; + uo.setstatus(UO_CHATTING); // Inform other users + + if(cfg.extChat[0] && (user.uFlags & (UFLAG_ANSI|UFLAG_AVATAR))) + { + if(cfg.extChat[0] == '@') + run_sdkfile(replace_stringvars(&cfg.extChat[1])); + else + shell(replace_stringvars(cfg.extChat)); + } + else + { + io << '\n' << S_SYSOP_CHAT_START << "\n\n\xFF"; + + int last=2; // Force color change! + String s,wrap; + + for(;;) + { + byte k=io.wait(); + if(k==27) + if(io.external) + continue; // Local escape pressed? + else + break; // Yep, exit + + if(k=='\t') k=' '; // I don't like TABS + + if(io.external!=last && (ansi_mode||avatar)) // Change color? + { + if(io.external) + io << (avatar?"\x16\x01\x07\xFF":"\xFF"); + else + io << (avatar?"\x16\x01\x0B\xFF":"\xFF"); + + last = io.external; // Prevent color change + } + + if(k != 8) + io << k << char(0xFF); // Show char + + switch(k) + { + case 8: + if(s.len()>0) // Backspace pressed + { + s[s.len()-1]=0; + io << "\b \b\xFF"; + } + break; + + case 13: + io << "\n\xFF"; + s = ""; // Enter pressed + break; + + default: + s << (char)k; // Any other key + } + + if(s.len()>78) // Wordwrap needed?? + { + int l = wordwrap(s,wrap,78); // Yep, do it! + + for(int i=0;isZ19_Ln1Nqtj;(iCHsf#@0u-8F?uh z=$0d7p(7&q1bu#4QlgPSs59=1D3!gT2mEBN1MmSQ9O~5f(OUxK8b@C^(%u*G_2{7P zniicWK*}AFK#vrW6**ej8z=J}N>{kg7gBtRABcjyNGv2N?e}*Cf^rU2;pmG5qH?#A zQ$eiYlY_w=((2gUw6U@`09#~YmU`MGIIoi!r9haJNdAsaVv=GCj!-7`_&Q~1_rX|V zkwURfCo9?iuk%^haB>?1?Be2epoffu_X{{5BE9z!LWi* z#mVdfBn-{^61mj*!-&3kiXcrP}Y8 zbC{NKf=Y;6pANEWusdOHb{AGEHyy=WhofDBYMc%=L&Cn{rMqkQnMiD2Zga$CdKu8y zmLA<_(&A<<&gbA-%|4T$@}!``l2_*S3hE-_W(xDl`RylR>+TD+d4b2dbtqjA^$Y5n z>2!kHnrHHQZ#Tp|T1^SjY79hBw-a~%tb5CF*1@u4mT4#DCr|oSD?z=NxGTmoSG?Zw zCIifHt6TV-d0y{vVjYeJ1l2dwm>pA%aTbip+i{TDap0=#5Y!(q?Tt+PJ6xXsS;qg% z|G|F@=DLOWFS+sjO!%9t+|;!>u?uW0eh zf;u=O3%<&QlQ7kwTU8Xpk6$KvD<7ZcLW_nlAJg2qtP#}1|6dKS3mW@TiPwvud{s?Obwowe`q zBxW4nMUJ!?hV1tmcAYhdRfJgIj)o^G9I=(y96q$baPkT*Pk%FV?*J2yLf8?|L`##jovC5+By=d9`3ph;Wp+~Ra8rqO>>KJ_nvMn9sq)Ok>) z&avGnT`-!Uw$YaXeUU+b3ux+T7&7`KwWOY4G!N4iqrIT%#Mq9}0@@}<`)!6@N3ToW z2!*Li#(6!P7DHj`8m84kSB+euH;r7R^OGNfW#lxqjX-DeEo_o6fi3xKaE$yM-~$-@ zfZEGY0}K^|h-5FO5t;HyA0ymKElD?9Y@pXCYiaqLx6$(CO$<;8_C*+TFnEYDKuqEy z#3U{Nofw0d#NRMwPE$Vd2Y@mssU`6`!=1o!6ED&7H(sFSnWKO{$#^=lytg;n{}g-FUWw>n>_b+`%+9FxEA6UZNVi3__B*4yc6;HJ=GG!J=;* z=FlEW-0HhLOR?fTMd@bOJzqHrw|HVXOHB10o%WMrI%@IHwD_mfX^U8X{Er4f9WGwD zy*6C9K^v5PG)2HawfM(ZQ>OEl6j}LK4XmDwQ!T~rdR+4g^5x)gQ^gH>RwEL_7##A6J)}K z$D3qA_)7e{IsAL1d0Lq^4?#IhF-HZIz`d?B)3B5MiU;aAS#KuM()Hye>X>MsdUosZ zj+ImQoA$U)C+<0Kyyx`NR4Ho82Qv!N#2P_8Hv=Z9V|u~PI~1=46LXn8lX7<_Slul; ze0?L?5mOs=rn9Kt7qs~Ke1){^ahN}C{VI9DUSDalJen-$Va{txC)$h8Sv1V^DS`8uWW$T#WR_8#43&Vn8Wlnyi zQ7arzoU-$J!7Qj>fUIn?MICzz5#hCXiCQrU%(Vus=0&^%-pYaLnL~TH^k=9D=}*uK zK13@xM=P^$)5`Q40A^3nuVsHjm!yAa=c>{}Z0ca`U_08yo%EXYMzo7;EjmFBBfg2Q z$X1wVJWXqsS+qpxlkD2gxF=414-s8GFE$+FzoRSv& zkn8dUd(pV-^}7$vBbgfd^-L8NGbPlRATS|#_;$`fh{ZxI8mVd*S9{jCux|))b<6rC zRmu{wB@&LxqEGCW6$Kv{Vl*s9yJS)S&>)`306yUvjD39I85X;Jp#hP7jwNVYLXJxxv)>YSFXBN#M(nxXP#Lpt(4v~Et<%C7#-WWcg zSBY+XMJwXA`t9sk3@@$}!x3>?oeuD|g(Fej4pLvYm^?H%myj{8`0L9fKdWgvu@?@F F{s$FU$xHwM literal 0 HcmV?d00001 diff --git a/CLEANUP.CPP b/CLEANUP.CPP new file mode 100644 index 0000000..7b51d5a --- /dev/null +++ b/CLEANUP.CPP @@ -0,0 +1,122 @@ +#define Use_LinkedList +#define Use_Handlers + +#include +#include +#include +#include +#include "proboard.hpp" + +void +exit_proboard(int level) +{ + if(sysop_next) + { + playsong("SYSOPNXT","\x1b",0); + File f; + f.open(FileName(syspath,"SYSOPNXT.SEM"),fmode_write|fmode_create); + f.close(); + } + + tsw_cursoron(); + SCREEN.enableCursor(); + + if(level) + exit(level); + + if( net_entered && echo_entered ) exit(5); + if( net_entered ) exit(3); + if( echo_entered ) exit(4); + + exit(0); +} + +void +nomemory() +{ + fatalerror("OUT OF MEMORY!!"); +} + +extern "C" void +cleanup() +{ + io.hangup(); + + if(!fatal) + { + for( hangup_handlers.rewind() ; !hangup_handlers.eol() ; hangup_handlers++) + { + CallPEX( &hangup_handlers.get() ); + } + } + + SCREEN.clear(); + + tsw_cursoroff(); + + Window w(tsw_hsize/2 - 14 , tsw_vsize/2 - 1 , tsw_hsize/2 + 16 , tsw_vsize/2 + 1 , 0x70 , 0); + w.open(); + + tsw_centerline(tsw_vsize/2,"UPDATING DATA FILES",0x70); + + if(!fatal && user_recnr>=0) + { + timelog tl; + tl.update(); + + user_online uo; + uo.clear(); + + user.lastDate = login_date; + user.lastTime = login_time; + user.timeUsed += timer.used(); + user.totalTimeUsed += timer.online(); + user.timesCalled++; + + if(newFilesChecked) + user.lastNewFilesCheck = user.lastDate; + + user.write(FALSE); + + BinLog bl; + + strcpy( bl.name , user.name ); + strcpy( bl.alias , user.alias ); + strcpy( bl.city , user.city ); + strcpy( bl.country , user.country ); + + bl.timeOut.now(); + + bl.date = login_date; + bl.timeIn = login_time; + bl.baud = io.baud; + bl.node = node_number; + bl.kbDown = 0; + bl.kbUp = 0; + bl.yells = num_yells; + bl.uflags = user.uFlags; + + if(io.baud || cfg.binloglocal) bl.append(); + + write_taglist(); + } + + if(!quiet && io.baud>0 && !fatal) + { + tsw_beep(1500,50); + msleep(50); + tsw_beep(1000,50); + } + + w.close(); + + tsw_cursoron(); + + SCREEN.change(1,1,tsw_hsize,tsw_vsize); + SCREEN.attrib(7); + SCREEN.clear(); + + setvideomode(org_videomode); + + if(org_numlines>=43 && org_videomode==3) set43(); +} diff --git a/CLEANUP.OBJ b/CLEANUP.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..4c491e251ea617bff5b7df787795801c1455c010 GIT binary patch literal 3276 zcmZ`+eN0=|6+h2kP%vN;`UvaF911KQYcfJcKHAa;#x$Au@NBq^CpE9ee!$zzd(QJS zAJMucvx=aMF6tuGbcqDgv`yWl=8s6Tl>LD!e`t#_>LN|rR89M1lbVld+Nz{YM90p( z&kuW*0{C#w@1A?^Ilpu6m3+Pis>4w!q$FYo!?9T1;ywUq81)?McK4}TG^9k_o{kQ8 z*TK$5i*|sAR+wFM0IYMP{l^w703M+`Lb!Ct?wnga1mN@xdV7b*eB!A0^r+1<((kp4 z{k@~THYUWrK){M0NB_(Ikul$mcPik(vdv=UevaD77rwwA~%Z_#I z$CqplQJ1GB4Qj-=q|e9^Nu5?B5;&-NqzmeWSxwd@Q4dW<<+$E@b_StXG&CPqmC4q# z%DJ%KDT7Ox2ZGi&;JZd7q)Xrur$WkPB1Zp3a7!FogtkFh`JNOR zq$lXdecsc?TAR>1E-T^Ivof?j-X|7{>!PGYXl~Cu-c6HcWy8t+c&AB;l~^fyLeVJZ z0aj5~!6t?$Cb5b{T+&2M3M(4enSsS9((Hg7mExW$DU2ncR~)&CAwH)gi;Nc}SJfs( zB{3b96)6t2%q)>zBTC^Z6>HEX4MR9_Gp)$59OBu8Ea?=*#?T<+*se-?Oe~~NK^29> zc_|u=!(L%RjmPDvtO^Fnl#@LI&6{c9S`fwX^%ipz@`g{80|CNSS?U$dNnB|OyG=&W0;3APpxMYVLZ-2qS(Ly zo)w-7#H29P6k#l|U)G>P40!xr?=Un7uV4e!Ss_eo!vkde!LTN3rdx)nah6A&>7!!) zG_f`lD5g&%CBm{YcP^X=<4h;mFEpBNMoFH87N_$)gQ)~UGg4n-Vgd_l9gi3kGzxlr zRt&So8I;N_7SyqYaY>3{-SI>m8D*XL%PZ#mSnBiKQh)g=oR}${QX`(Hkxjl zip%GuqCUg)TE;TAt5|J=VH>rwlIW2&1}ZBuoA4%P4u_^C%%8Q8dg`5eCpd*s?4+Qm zvqq`RY8?;7@xD*b9ib)?(2qUFttLuMs5Q~zOt^%AuF1+|i6Vy>k?`@rrp9$G9Gk~` zB+bb>P71OpMX_7T3ythm;+BT^n70^!b}p)kRlyd1U&#mdIyI0}s+?9<=Yw+VEp31xTiy7@^$TQCbWJ z%XM~o)^P!#luR&K{XnlEY$?dH*6WRbRWz$|yeeh=B49HCOu=wHv;2=&Zz2!PseR^J zkO3F&%~;EiT?4od)f)*4b;Rn&L7EwIxK zv>n%CzIA}h9Upx7nXs$bU9hX4+|}&=*+FU-{5xhR++|iUh>@C82TB`FugYR^y7l&Z zT#}B$>(<+A9PYjJxmgn$Z`nIA0KR|XhZV^l3&2dLxo{wL7<{RZ>?SwVG@8H`KE8AXEL-*hLf<*v|`cc@t5xjnfhDt^RsPv^os_f+mQT^L2N zHAr5}_3>QA)^XC4JH&I9TVEwFY&DU-Tpe!Na*)34HY$ZrP`OQ&zoGIcsuajGg$>f4 z{T(%~k)G^tP|5z1iZ!0woBbKpR;hTKinmY{-XQMm1)k%wuTyBALNW4{Y!snFn7o)3 zDf}Hwr|@kII7F?Jm{UO@`wLy9wa`vp$~N*`eYOfIC|F2m<{{4=&D?L`ESq=8bDJNL zgBj$cJA<4Y&0MG2dsJKJxo>8!qS$vFo9h#HgV{5|B2JipEr!4G3ndjk6rjPOFl_9_qzL8hS*Ygo#O`qYp#`G&Z$LD>- zlKvK2c@ODGzeH<4L2K_MUrQsI&!+cdYtm0+Yx0dqhYR;x$>GGB0C+0`!N7=b`1B|| zwW}Tsc!ywQY}7q6;2!c0jrfE6_rsVEzcHK|e%VdGIJgH+4SECc{$c~b$6WbWmW8X` KBkG$NSN|Wrts6Z6 literal 0 HcmV?d00001 diff --git a/CLINES.BTM b/CLINES.BTM new file mode 100644 index 0000000..da4cf48 --- /dev/null +++ b/CLINES.BTM @@ -0,0 +1,92 @@ +setlocal + +set total=0 +set sizetotal=0 + +echo ---------------------------------------------------------------- +echo SOURCE FILE SIZE REPORT FOR %_DATE , %_TIME +echo. +echos PROBOARD.EXE... +cd \cpp\pb\proboard +set subtotal=0 +set sizesubtotal=0 +for %a in (*.cpp *.hpp *.asm) do ( + set subtotal=%@eval[%subtotal+%@lines[%a]+1] + set sizesubtotal=%@eval[%sizesubtotal+%@filesize[%a,b]] + ) +echo %@substr[ ,0,%@eval[6-%@len[%subtotal]]] %subtotal (%@substr[ ,0,%@eval[4-%@len[%@int[%@eval[%sizesubtotal/1024]]]]]%@int[%@eval[%sizesubtotal/1024]]k) +set total=%@eval[%total+%subtotal] +set sizetotal=%@eval[%sizetotal+%sizesubtotal] +echos PROCFG.EXE..... +cd \cpp\pb\procfg +set subtotal=0 +set sizesubtotal=0 +for %a in (*.cpp *.hpp) do ( + set subtotal=%@eval[%subtotal+%@lines[%a]+1] + set sizesubtotal=%@eval[%sizesubtotal+%@filesize[%a,b]] + ) +echo %@substr[ ,0,%@eval[6-%@len[%subtotal]]] %subtotal (%@substr[ ,0,%@eval[4-%@len[%@int[%@eval[%sizesubtotal/1024]]]]]%@int[%@eval[%sizesubtotal/1024]]k) +set total=%@eval[%total+%subtotal] +set sizetotal=%@eval[%sizetotal+%sizesubtotal] +echos PBUTIL.EXE..... +cd \cpp\pb\pbutil +set subtotal=0 +set sizesubtotal=0 +for %a in (*.cpp *.hpp) do ( + set subtotal=%@eval[%subtotal+%@lines[%a]+1] + set sizesubtotal=%@eval[%sizesubtotal+%@filesize[%a,b]] + ) +echo %@substr[ ,0,%@eval[6-%@len[%subtotal]]] %subtotal (%@substr[ ,0,%@eval[4-%@len[%@int[%@eval[%sizesubtotal/1024]]]]]%@int[%@eval[%sizesubtotal/1024]]k) +set total=%@eval[%total+%subtotal] +set sizetotal=%@eval[%sizetotal+%sizesubtotal] +echos PBLIB.LIB...... +cd \cpp\pb\lib +set subtotal=0 +set sizesubtotal=0 +for %a in (*.cpp *.hpp) do ( + set subtotal=%@eval[%subtotal+%@lines[%a]+1] + set sizesubtotal=%@eval[%sizesubtotal+%@filesize[%a,b]] + ) +echo %@substr[ ,0,%@eval[6-%@len[%subtotal]]] %subtotal (%@substr[ ,0,%@eval[4-%@len[%@int[%@eval[%sizesubtotal/1024]]]]]%@int[%@eval[%sizesubtotal/1024]]k) +set total=%@eval[%total+%subtotal] +set sizetotal=%@eval[%sizetotal+%sizesubtotal] +echos CONVERT.EXE.... +cd \cpp\pb\convert +set subtotal=0 +set sizesubtotal=0 +for %a in (*.cpp *.hpp) do ( + set subtotal=%@eval[%subtotal+%@lines[%a]+1] + set sizesubtotal=%@eval[%sizesubtotal+%@filesize[%a,b]] + ) +echo %@substr[ ,0,%@eval[6-%@len[%subtotal]]] %subtotal (%@substr[ ,0,%@eval[4-%@len[%@int[%@eval[%sizesubtotal/1024]]]]]%@int[%@eval[%sizesubtotal/1024]]k) +set total=%@eval[%total+%subtotal] +set sizetotal=%@eval[%sizetotal+%sizesubtotal] +echos TSLIB.LIB...... +cd \cpp\lib\tslib +set subtotal=0 +set sizesubtotal=0 +for %a in (*.cpp *.hpp *.asm) do ( + set subtotal=%@eval[%subtotal+%@lines[%a]+1] + set sizesubtotal=%@eval[%sizesubtotal+%@filesize[%a,b]] + ) +echo %@substr[ ,0,%@eval[6-%@len[%subtotal]]] %subtotal (%@substr[ ,0,%@eval[4-%@len[%@int[%@eval[%sizesubtotal/1024]]]]]%@int[%@eval[%sizesubtotal/1024]]k) +set total=%@eval[%total+%subtotal] +set sizetotal=%@eval[%sizetotal+%sizesubtotal] +echos TSWIN.LIB...... +cd \cpp\lib\tswin +set subtotal=0 +set sizesubtotal=0 +for %a in (*.cpp *.hpp *.asm) do ( + set subtotal=%@eval[%subtotal+%@lines[%a]+1] + set sizesubtotal=%@eval[%sizesubtotal+%@filesize[%a,b]] + ) +echo %@substr[ ,0,%@eval[6-%@len[%subtotal]]] %subtotal (%@substr[ ,0,%@eval[4-%@len[%@int[%@eval[%sizesubtotal/1024]]]]]%@int[%@eval[%sizesubtotal/1024]]k) +set total=%@eval[%total+%subtotal] +set sizetotal=%@eval[%sizetotal+%sizesubtotal] + +echo. +echo TOTAL LINES..... %total +echo TOTAL SIZE...... %@int[%@eval[%sizetotal/1024]] Kb + +endlocal + diff --git a/COMBINED.CPP b/COMBINED.CPP new file mode 100644 index 0000000..ab3f7dc --- /dev/null +++ b/COMBINED.CPP @@ -0,0 +1,138 @@ +#define Use_MsgBase + +#include +#include +#include "proboard.hpp" + +void +combined_select(char *data) +{ + MsgArea ma; + bool mailcheck = FALSE; + + if(String(data) == "/M") mailcheck = TRUE; + + for(;;) + { + io << "\f\n\7"; + + if(mailcheck) + { + io << S_SELECT_AREAS_TO_SCAN_TITLE << "\n\n"; + } + else + { + io << S_SELECT_COMBINED_AREAS_TITLE << "\n\n"; + } + + linecounter(4); + io.enablestop(); + + + for(int i=1,count=0;i<=MsgArea::highAreaNum() && i<=1000;i++) + { + String checked = ' '; + + if(!ma.read(i)) + continue; + + if(!check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot) && !ma.sysopAccess()) + continue; + + if(mailcheck) + { + if(user.mailCheckBoards.connected(i)) + checked = 'û'; + } + else + { + if(user.combinedBoards.connected(i)) + checked = 'û'; + } + + io << form(" \3%3d. \2%s \6%-30.30s ",i,(char *)checked,ma.name); + + if(stopped) break; + + if(!((++count)%2)) + { + io << '\n'; + if(linecounter()) break; + } + } + + if(count%2) io << '\n'; + + io << '\n' << S_SELECT_AREAS_TO_TOGGLE; + + char s[41]; + + io.read(s,40); + + if(!s[0]) break; + + char *ptr = strtok(s," ,"); + + while(ptr) + { + int area = atoi(ptr); + if(area>=1 && area<=1000) + { + if(mailcheck) + { + user.mailCheckBoards.toggle(area); + LOG(3,"Area #%d toggled for mailcheck",area); + } + else + { + user.combinedBoards.toggle(area); + LOG(3,"Combined area #%d toggled",area); + } + } + + ptr = strtok(NULL," ,"); + } + } +} + +void +combined_clear(char *data) +{ + int i; + bool mailcheck = FALSE; + + if(String(data) == "/M") mailcheck = TRUE; + + io << '\n' << S_ENABLE_OR_DISABLE_ALL_AREAS; + + switch(wait_language_hotkeys(K_ENABLE_OR_DISABLE_ALL_AREAS)) + { + case 1: + { + for(i=1;i<=1000;i++) + { + if(mailcheck) + user.mailCheckBoards.disconnect(i); + else + user.combinedBoards.disconnect(i); + } + + io << S_ALL_AREAS_DISABLED << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + break; + case 0: + { + for(i=1;i<=1000;i++) + { + if(mailcheck) + user.mailCheckBoards.connect(i); + else + user.combinedBoards.connect(i); + } + + io << S_ALL_AREAS_ENABLED << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + break; + } +} + diff --git a/COMBINED.OBJ b/COMBINED.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..38e14f613b19494860d4d73930b79ccbfa5bb0a8 GIT binary patch literal 2836 zcmbVOdrVVj6hF5wutmTK)gg8_T9l|`Iu9R_=s~F z5(ak5+!CL01|Q2Fn#C>7buT5R&}E}A-Q%B`Ez7b+EHi41QyJWy@6rbqHH%4ma=za= z-#OD$mKczIWe)9*jkITHZ#>=nz(*m7UM{Tz=H5E0LRa&lcg?)ua z5nOp)of`kT%9XV>^|tN%GN9O{RjHY8QCqbhG+O2u)c|xEjNyO|GG&#lu7CYy)ojZ~ zhahoSle^X7=DB8{w4UEAnp?bEoUKmCv3T$lPG756;sfRu0a%N(nRl+|98M=MqFbx5 zWXTFew|X3IQF;OlmNhji(G>&mkjeQQmEfS}1RrR*R*?@NDoQ@TpLf9wOOsC&1&`pf z@Lorwho=T}OB)zdh5+wyDfI|gP+kf*H+sZo#Q@VMpeU0;PotQFmgU$fwDrb>0|23kbQAZ`|Y{_%5CLvC`%cyR*g zlSmWfTex~Wrp4nBr8?dba5mTZc_&Pb!x*bl2w?Dv_>9;$`+1AxbGtn}ZSkyhgG&&d zJ};6WQRB>X;{;2=JuN)8PJk@zPXLeP-9$;rv(!le!Rxk|8~GNGd6NRev=r(P-R2hT zU~UR>Nl1SiHafZ0NfC@EOaf^Zq}n0*JdlA@2PEHmIKQh9fXTNcE(Ry^9_36pCphh6 zyJn#|FJ*RmuyYE#zo}tww?@MN)CY%m3@=lWb&-zlF@Q+NAw?cj<| zDDspdKT%{zk*87iS!FPV0Bmwwrrf48zG1y(J3udAdpNT;sTq1CZHR%Gs|;Tb{rcE?m05n)p2gLYfsOp0(B#F2%$3weKjhdJ~$RXs~#iGpAfyF;eNq? z2c<1$VhS~>lBMW-q}-DuY1QgtbI|9H2m4^ko1;kJ6}fE~y{E>T(jLyPy^D+GNUSt{ z(qUt~Y`qb*-uO}l`~Mj+TxeZ#QlGX{7n0?8r*RbS5x_htrd4Um(|uc~>=?VGepNjb z7@Lp*4|-RI_;3_Z!e{2(ZB5O`Nw9^A>HKwkGn!Uo)=otBAqDE8k8z~uCVUcu*hQ{) zS+5Sg20`ofAi3IQz0yU7$D5|OG&BTnwad)b>K!uHyGkKw&bl;$a5WFp=PDV$*mfLF-k6^}3`U^2$Szf4P@}f4=w~Uhno{JsH20jrX{e z*A5mlgCoQg8O~!=gJ%dEIYpJ@L=!nmmHi|?vfIdH40a*1gCZLd5h=2cJUaL!ZdgFk ze4>v`Gcvk?5n>p)MzZ?;#zo&nBcmPo0at_6bb{mz93_PVyYT-CQ4O@9VFNYPkitHT zk;xobN(_Ca6e%W;^qDd4KsK2by+da9-o%X2%eeR%7Z>Q_EGdkBKyssdi8|Vd`txL3 z^cgZcY9dp53ou4>I#ES4h@pR!7{a#^2*V6->)b)sYA3j@iGTT!$ z+p_OM70=vN>c$BvuB;F~k<1RnC7c-1UpW2xZaEVEK`F6ZhR+G0A>yZ8fUc}EX literal 0 HcmV?d00001 diff --git a/Copyright Files.doc b/Copyright Files.doc new file mode 100644 index 0000000000000000000000000000000000000000..b77bc1819ff45621232d975fce39be6309ca8114 GIT binary patch literal 19456 zcmeHPU2IfE6h8agEx)DUs(`SR`jgnMQ~{R+$d)eUClnefG)5HL?v}Rc?p?P_jPWN; z)Px5gKu!D!s3hQv##AIe8L0_RCdP{LVB!NNJZhrAgFL|X`{wQ}+ojuXi>w&uY|cGr z&di)M^WA%Qd*wPa*fDJ=(Jt8ZJXv07^sS}AYlij;*q%@dUu<=RtxoYNcUs+Or|nb8Vn4-Y z;xiHH^Pr{fS4!$}Xn!of0@ijNL)RDk(e=}n+MkZ|H5~9d8lHVFCGVec>G5l++v$GO zjdy$6w`Z(wt1A-^_oUNv+Y+gRO4&1%$P6X2O5b4}=uataFO2<`qqkY{L{eGj-kyOO zua!X{_dQ>kU?$2PhJcH|^K-#La2>b-906|v^Y{N+;eh|yLZN4)R~`ZW{#H$O{wqH$ z6S0B_R4tX|BV&(*MlNhvF%qb%1Ft;%k*^+n|40SLVL}-M3cQDM)6k zqpwfil8hv!O9oM98?Pj{suct1g|uFpqnGUCvL42u#3UiT=yeeNvJ#SZ z=o#<h=&bxIz(RgLA5br_G-(;2}!5Y;?gAh z@Yyb#5w8_m4BB2Ccgb#)dL)g{K5(}>W-z91Fh?7Qr3HFgUO=fIWA9UQX@x$B`3*@J zZ7le(qn=@xY{Cf0v4zLf${2N0gCoT4tgT=&FdP;MNYt6smf&Ih9J}3qkI(CKd%S9* zxlR=PttNFKa8d;h;lw25d4Tu?2EfykLj4-}af{FAa=WVhZeNw^q?dG@!Z5{dOem?Q z$&>on11kD#zt>GF8NFG7;9LlGI1f#ML-&Y`xkdWa0Dt_wrS}&wBRC_*NtDM`iDj>N zY8*QXAeU;TEkD7Jp_w9Z(mz^tT29Nb)UF!ugV)-vl5=WoyEf-2fZKWejp9^Hbo)(Y zyVdcS{ssYqfI+|@U=T0}7z7Lg1_6V>3=p`EH#fZb%>RZ1CS@01|M1e)U41p590|z7 z4}S48^NKhsn8dRF5SWPp5?Pg*pMYdmJ_2S&eiqCObPOB-Uj#ED{0q!P!V4#}AVZLR za@qjNr->2Bd5|$kzA>-^k}*3V7eelXWZa7gwhWR!^>a*kQ#Lda!Lv=)Ge%oirYqEm z2c3oWu(5tNc&C*~b`6H(78WCJ?&H`Pvq_vj97kJ!PsSRudb6QUD-#bz!mC80uxpA^ zIX7Bszjwx^^sOIs@X0WfdybEiW2a=2OlimmB6(4Oc&l!R9NntwtjI2kgw>nbY=xnX{+CTmyIs><7OF zUI2ard^h-QF!S!CVCMEGz|5&X1qZ>W!CVXY3QXTWfD3be>LEPzF3hEMPThh!+6QU^ zDhAY&av6fN-?%k|IWRH+7Xmo=j{fXmA|FcLg-Pe?A?WPC7R)Xib7ksWci7*)Ew+El zo^7%G=$m2P34Rf83apl99AkJZA%a%|8gXoeh1zNyoAGH>t=7Wch_@E_iNN}(tio|K zRwLHn^D?{{G6)z13<3rLgMdN6AYc$M2p9wm0tNwtz+?z8cV({1d=`(>RnE?om(T6_ ze;t??GmmAi&ODqsIiJll$7elrdOpi%?!E}jo$Acrnd7tmUdYAZCE%st`@l@AmxEb< z4P2MgStc8*90J@tV5vO~o7GN?3^oQ#hl1jB>Cy5U@>la}5*bxTEL)H~&z@E9KpeZQ zcE;DkGz=y+VM{|7HX?90#Y|`(u3jCVvK$|L7ey^PL3CpF+~*O4?7?0YZmyVUM@lKb zi^c8YI+q?psdhKnx#$J*VJilsasvmk--hVDYD~0bvE73^WJ=RRh)=|M@0L4%6*?ck zc;?d^PXzJx+{=xRJtKMiU0CPh_LVet<8;daYoI}(ler;w<~z3#!T*=;!rAxW2cEMo{_f^|TJ(-v o%<4IqOr)~TJ9WGH-WyEn%anRp*M}o=W! +#include +#include +#include +#include + +static byte *inbuf; +static byte *outbuf; +static int inputsize,outputsize; +static int input_ptr; +static int output_ptr; + +#define N 4096 /* buffer size */ +#define F 60 /* lookahead buffer size */ +#define THRESHOLD 2 +#define NIL N /* leaf of tree */ + +static byte *text_buf; + +/* Huffman coding */ + +#define N_CHAR (256 - THRESHOLD + F) + /* kinds of characters (character code = 0..N_CHAR-1) */ +#define T (N_CHAR * 2 - 1) /* size of table */ +#define R (T - 1) /* position of root */ +#define MAX_FREQ 0x8000 /* updates tree when the */ + + +/* table for encoding and decoding the upper 6 bits of position */ + +/* for decoding */ +static byte d_code[256] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, + 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D, + 0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F, + 0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11, + 0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13, + 0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15, + 0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17, + 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1B, + 0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, 0x1F, 0x1F, + 0x20, 0x20, 0x21, 0x21, 0x22, 0x22, 0x23, 0x23, + 0x24, 0x24, 0x25, 0x25, 0x26, 0x26, 0x27, 0x27, + 0x28, 0x28, 0x29, 0x29, 0x2A, 0x2A, 0x2B, 0x2B, + 0x2C, 0x2C, 0x2D, 0x2D, 0x2E, 0x2E, 0x2F, 0x2F, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, +}; + +static byte d_len[256] = { + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, +}; + +static word freq[T + 1]; /* frequency table */ + +static int prnt[T + N_CHAR]; /* pointers to parent nodes, except for the */ + /* elements [T..T + N_CHAR - 1] which are used to get */ + /* the positions of leaves corresponding to the codes. */ + +static int son[T]; /* pointers to child nodes (son[], son[] + 1) */ + +static word getbuf; +static byte getlen; + +static int GetBit(void) /* get one bit */ +{ + word i; + + while (getlen <= 8) { + if(input_ptr >= inputsize) + { + i = 0; + } + else + { + i = inbuf[input_ptr++]; + } + getbuf |= i << (8 - getlen); + getlen += 8; + } + i = getbuf; + getbuf <<= 1; + getlen--; + return (int)((i & 0x8000) >> 15); +} + +static int GetByte(void) /* get one byte */ +{ + word i; + + while (getlen <= 8) { + if(input_ptr >= inputsize) + { + i = 0; + } + else + { + i = inbuf[input_ptr++]; + } + getbuf |= i << (8 - getlen); + getlen += 8; + } + i = getbuf; + getbuf <<= 8; + getlen -= 8; + return (int)((i & 0xff00) >> 8); +} + +/* initialization of tree */ + +static void StartHuff(void) +{ + int i, j; + + for (i = 0; i < N_CHAR; i++) { + freq[i] = 1; + son[i] = i + T; + prnt[i + T] = i; + } + i = 0; j = N_CHAR; + while (j <= R) { + freq[j] = freq[i] + freq[i + 1]; + son[j] = i; + prnt[i] = prnt[i + 1] = j; + i += 2; j++; + } + freq[T] = 0xffff; + prnt[R] = 0; +} + + +/* reconstruction of tree */ + +static void reconst(void) +{ + int i, j, k; + word f, l; + + /* collect leaf nodes in the first half of the table */ + /* and replace the freq by (freq + 1) / 2. */ + j = 0; + for (i = 0; i < T; i++) { + if (son[i] >= T) { + freq[j] = (freq[i] + 1) / 2; + son[j] = son[i]; + j++; + } + } + /* begin constructing tree by connecting sons */ + for (i = 0, j = N_CHAR; j < T; i += 2, j++) { + k = i + 1; + f = freq[j] = freq[i] + freq[k]; + for (k = j - 1; f < freq[k]; k--); + k++; + l = (j - k) * 2; + memmove(&freq[k + 1], &freq[k], l); + freq[k] = f; + memmove(&son[k + 1], &son[k], l); + son[k] = i; + } + /* connect prnt */ + for (i = 0; i < T; i++) { + if ((k = son[i]) >= T) { + prnt[k] = i; + } else { + prnt[k] = prnt[k + 1] = i; + } + } +} + + +/* increment frequency of given code by one, and update tree */ + +static void update(int c) +{ + int i, j, k, l; + + if (freq[R] == MAX_FREQ) { + reconst(); + } + c = prnt[c + T]; + do { + k = ++freq[c]; + + /* if the order is disturbed, exchange nodes */ + if ((word)k > freq[l = c + 1]) { + while ((word)k > freq[++l]); + l--; + freq[c] = freq[l]; + freq[l] = k; + + i = son[c]; + prnt[i] = l; + if (i < T) prnt[i + 1] = l; + + j = son[l]; + son[l] = i; + + prnt[j] = c; + if (j < T) prnt[j + 1] = c; + son[c] = j; + + c = l; + } + } while ((c = prnt[c]) != 0); /* repeat up to root */ +} + +static int DecodeChar(void) +{ + word c; + + c = son[R]; + + /* travel from root to leaf, */ + /* choosing the smaller child node (son[]) if the read bit is 0, */ + /* the bigger (son[]+1} if 1 */ + while (c < T) { + c += GetBit(); + c = son[c]; + } + c -= T; + update(c); + return (int)c; +} + +static int DecodePosition(void) +{ + word i, j, c; + + /* recover upper 6 bits from table */ + i = GetByte(); + c = (word)d_code[i] << 6; + j = d_len[i]; + + /* read lower 6 bits verbatim */ + j -= 2; + while (j--) { + i = (i << 1) + GetBit(); + } + return (int)(c | (i & 0x3f)); +} + +static void Decode(void) /* recover */ +{ + int i, j, k, r, c; + int count; + + StartHuff(); + for (i = 0; i < N - F; i++) + text_buf[i] = 0x20; + r = N - F; + for (count = 0; count < outputsize; ) { + c = DecodeChar(); + if (c < 256) { + outbuf[output_ptr++] = c; + text_buf[r++] = (byte)c; + r &= (N - 1); + count++; + } else { + i = (r - DecodePosition() - 1) & (N - 1); + j = c - 255 + THRESHOLD; + for (k = 0; k < j; k++) { + c = text_buf[(i + k) & (N - 1)]; + outbuf[output_ptr++] = c; + text_buf[r++] = (byte)c; + r &= (N - 1); + count++; + } + } + } +} + +void +decompress_data(byte *input,byte *output,int insize,int outsize) +{ + text_buf = new byte[N + F - 1]; + + inputsize = insize; + outputsize = outsize; + inbuf = input; + outbuf = output; + input_ptr = 0; + output_ptr = 0; + + getbuf = 0; + getlen = 0; + + Decode(); + + delete [] text_buf; +} diff --git a/DECKEY.OBJ b/DECKEY.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..b07185fc94346e92ac0d63525889c6594d8bf6f0 GIT binary patch literal 2638 zcmb`Je{54#6vxl|(bul6{W0d`=P0m^!C;7k3ft%g+un$nY{Dpv2y?QkL}0MNKphKp z#I3s|@`noIh{I{3iT<&KWDpX8`PPOY$e1CBk>8lkPC-ndG)Cge( z7hqe51aOe6E}Pe(2Z*3MKEkhl(V4e@kOyEYD=%GAUQ=6LzOq^@tt>0o)s`)+UMOm) zU9@bOfFG%>Vrk{_D%(Cipkl|nVUB@gAt95o^6?%x2}V?_c#E!F(p_|!-h?bo~EYS`noN3=(lz4 zmf7ppeIdfhZc*d_ma~zN^Pm|DB?GjG`R78TlnekN!wlJ-`a{6Zs*)Lc4bv?yJL@01 zk|Gt^yIpqC@QKU5)8(=on!jP`MfSn$B7018$%37|)}desR-gKRLiZYmFgWcQ#yweo z7O40rxdA5ZU>66k2ints1DdgZT@&wXcbm!Z?Y)+=$Qvo(S}x|FJ5s=foSF+d(U*3U2W-f!evm4FlxRW%@8Nr8BIZ6lI=L@p>Z$t6Sh4~xI28CWB`Z92Y17%o;HROx2U0(;0}2_B3Jw>3BHB)#ay z5$|tJyxS7|BUZ!wAy|`W3h!QF34Rx4w>x(M9D-hH2w!9j4ek)IaN8|DWVQsWqwM_P zHQ_9~!vdA2<6D1a{;XoC!WX~F)E|NeySI%PDBRU(z8W$q88#3uXZ!Vz3a_eITW)== zSOanxV7Ln`!KJEC-}NCExSGZZfdgqAAJ{{9mCO}{5`vSEOBhE;C5Q-rlrTcLLbyOU zO&B2b5k4inN5IH}zk{%y@FJm_u$VBPFadGK=H~onvIN9H7;!r2<_2z%^&{ap;Y&gf z;UmJEgw2F?gw=!>2y+N|1P5U>!9tJ_N{n!qKm{mNfO3-X72$KjXM~Rl`v_Eu@-AUF zVHcs5&_rk;cnEcb=LuAvQbt%nph6YON|{ZVMwmjN)RZ)WkwE#q)jf*iK$Iii)(CJr za+C}aZ)OX0%8~32y((Eid%c(9w(R{`wW@MB^ok|8L}ll5&pzk9rdnA9e-AoA#RC

e`NKsZ4-N;r)8w%08vU1ZT2 zQkn_t39k`W5$ISdV+dA)2{FD~43eR^*0j2Sa$=H<`vgu&ru+gvk$6rBPc%s^qEX-o_Z86f7uDbqw4cwuJ8hqy+BusHj>xXR67XYep# zU}9#xKaGchHQvQB#E}I=90Ex&FtD&P@=xPnU~_Q~@(&H@p2fnz_Ma)bhlhbPJ|(rd zuq-pRoMFZUNd^W+p?H_D_~MepqLTRJqRf)aZ76yk!j1w1FFfcMO1T@Dzmk2t)WLEy#h|EG6L3%s}jq0at49XN-T;RtgWqhlA)^CbZH_-O$E literal 0 HcmV?d00001 diff --git a/DL.CPP b/DL.CPP new file mode 100644 index 0000000..6320e54 --- /dev/null +++ b/DL.CPP @@ -0,0 +1,759 @@ +#define Use_TagList +#define Use_LinkedList + +#include +#include +#include +#include +#include +#include "proboard.hpp" + +struct InputFile + { + int area; + String name; + + InputFile(); + InputFile(char *s); + InputFile(char *s , int area); + }; + +const int MAX_DOWNLOADS = 100; + +void create_dirlist(int area,char *firstdir,LinkedList& dirlist); +bool is_freefile(char *fname); +bool send_files( protocol& p , LinkedList& files ,LinkedList& downloads , LinkedList& uploads); +void read_personal_files( LinkedList& files ); +void delete_personal_file( char *name ); +void copy_cdrom( LinkedList &files , LinkedList &copied); +void delete_copied ( LinkedList &copied); + +void process_uploads(protocol& p , char *dir , LinkedList& uploads , bool pvt , bool ask_desc , bool no_log , bool quiet_dl , String extra_log ); + +bool check_dszlog(protocol& p , LinkedList& downloads , LinkedList& uploads); +bool create_dszctl(protocol& p , LinkedList& files); + +static void +read_from_file(LinkedList& input_files , char *fn) +{ + TextFile f(fn); + + if(f.opened()) + { + while(!f.eof()) + { + String s = f.readLine(); + + s.delLast('\n'); + s.trim(); + + if(!s.len()) continue; + + input_files.add(InputFile(s)); + } + } +} + + +void +download(char *data) +{ + bool no_input = FALSE; + bool any_file = FALSE; + bool private_download = FALSE; + bool free_time = FALSE; + char protocol_key = '\0'; + bool quiet_download = FALSE; + bool goodbye = FALSE; + bool ignore_kbytes = FALSE; + bool no_log = FALSE; + bool ask_description = TRUE; + int npara; + int i; + long total_bytes; + long free_bytes; + String param[20]; + BitArray arealist(MAX_FILE_AREAS,1); + LinkedList files; + LinkedList input_files; + LinkedList copied_to_cd; + protocol prot; + FileName extra_log; + + npara = parse_data(data,param); // Parse command line + + create_arealist(param,npara,arealist); // Create list of selected file areas + + adjust_limits(); + + for(i=0 ; i dirlist; + + create_dirlist(idx.area,fa.filepath,dirlist); + + for( dirlist.rewind() ; !dirlist.eol() && files_found < MAX_DOWNLOADS ; dirlist++) + { + String wildcard = dirlist.get(); + + wildcard << idx.name; + + DirScan scan(wildcard); + + while(int(scan) && files_found < MAX_DOWNLOADS) + { + DownloadFile tmpfile; + + tmpfile.area = idx.area; + tmpfile.size = scan.size(); + tmpfile.free = FALSE; + tmpfile.copy = !!fa.cdrom; + tmpfile.name = dirlist.get() + scan.name(); + + files.add(tmpfile); + files_found++; + + scan++; + } + } + } + } + } + else + { + LOG("Error opening FILESIDX.PB"); + } + } + + total_bytes = 0; + free_bytes = 0; + + if(!quiet_download) + { + io << '\n'; + + if(files.count()) + { + io << '\n' << S_DOWNLOAD_FILES_FOUND_HEADER << '\n'; + } + + for(files.rewind() ; !files.eol() ; ) + { + FileArea fa; + FileName fn; + String area_name; + + fn = files.get().name; + fn.stripPath(); + + if(files.get().area) + { + fa.read(files.get().area); + area_name = fa.name; + } + else + { + if(private_download) + area_name = "Personal Files"; + else + area_name = "Global"; + } + + io << S_DOWNLOAD_FILE_FOUND_ENTRY((char *)fn,form("%ld",(files.get().size+512L) / 1024L),(char *)area_name); + + files.get().free = (fa.free || is_freefile((char *)fn)); + + if((total_bytes - free_bytes + files.get().size + user.kbToday*1024L) > (1024L*download_limit) && !files.get().free) + { + io << S_FILE_EXCEEDS_LIMIT(form("%u",download_limit)) << '\n'; + + files.remove(); + } + else + { + if(upload_needed > 0 && !files.get().free) + { + io << S_UPLOAD_REQUIRED(form("%u",upload_needed)) << '\n'; + + files.remove(); + } + else + { + io << S_FILE_FOUND_ACTION_PROMPT; + + char action = wait_language_hotkeys(K_FILE_FOUND_ACTION_PROMPT); + + int prompt_len = language_string_length(S_FILE_FOUND_ACTION_PROMPT); + + io << String('\b',prompt_len) << String(' ',prompt_len) << String('\b',prompt_len); + + switch(action) + { + case '\r': + case 0: + { + io << S_ACTION_DOWNLOAD << ' '; + + if(files.get().free) + { + io << S_FREE_FILE; + + free_bytes += files.get().size; + } + + total_bytes += files.get().size; + + io << '\n'; + files++; + } + break; + case 1 : + { + io << S_ACTION_FILE_SKIPPED << '\n'; + + files.remove(); + } + break; + case 2 : + { + io << S_ACTION_FILE_QUIT << '\n'; + + while(!files.eol()) files.remove(); + } + break; + } + } + } + } + + if(!files.count()) + { + io << '\n' << S_NO_FILES_FOUND << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + + word estimated = word(total_bytes / ((io.baud ? io.baud:115200L) * (prot.efficiency?prot.efficiency:100)/1000L)); + + if(prot.flags & PROT_LOCAL) + estimated = 0; + + io << '\n' << S_X_FILES_SELECTED(form("%d",files.count()),form("%d",int(total_bytes/1024)),form("%02u:%02u",estimated/60,estimated%60)) << '\n'; + + if(!free_time && estimated/60>timer.left()) + { + io << '\n' << S_NOT_ENOUGH_TIME_LEFT_FOR_DOWNLOAD << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + + io << '\n' << S_START_DOWNLOAD_PROMPT; + + char k = wait_language_hotkeys(K_START_DOWNLOAD_PROMPT); + + if(k==2) + return; + + if(k==1) + { + io << S_DOWNLOAD_ACTION_GOODBYE; + + goodbye = TRUE; + } + + io << "\n\n"; + + copy_cdrom( files , copied_to_cd); + + io << "\n\n" << S_ACTIVATING_PROTOCOL << '\xFF'; + } + + LinkedList downloads,uploads; + + if(free_time) timer.suspend(); + + if(!send_files(prot , files , downloads , uploads)) + { + delete_copied(copied_to_cd); + + return; + } + + delete_copied(copied_to_cd); + + if(free_time) timer.restart(); + + total_bytes = 0; + free_bytes = 0; + files_found = 0; + + for(downloads.rewind() ; !downloads.eol() ; downloads++) + { + for(files.rewind() ; !files.eol() ; ) + { + FileName fn(files.get().name); + + fn.stripPath(); + + if(downloads.get() == fn) + { + total_bytes += files.get().size; + + if(files.get().free) + free_bytes += files.get().size; + + remove_tag(fn,files.get().area); + + if(private_download) + delete_personal_file(files.get().name); + + files_found++; + + File f; + + if(extra_log.len()) + { + f.open(extra_log,fmode_copen | fmode_text | fmode_append | fmode_write); + + f.printf("D %d %s %ld %s\n",files.get().area,(char *)files.get().name,files.get().size,files.get().free ? "YES":"NO"); + f.close(); + } + + if(!no_log) + { + f.open(FileName(syspath,"DOWNLOAD.LOG"),fmode_write | fmode_append | + fmode_copen | fmode_text); + + f.printf("%05d %s\n",files.get().area,(char *)files.get().name); + f.close(); + + LOG(1,"Download-%c %s",prot.key,(char *)fn); + } + + files.remove(); + } + else + { + files++; + } + } + } + + if(!ignore_kbytes) + { + user.numDownloads += files_found; + user.kbDownloaded += int((total_bytes-free_bytes) / 1024L); + user.kbToday += int((total_bytes-free_bytes) / 1024L); + } + + if(!quiet_download) + { + io << "\n\f\n" << S_X_FILES_DOWNLOADED_SUCCESSFULLY(form("%d",files_found),form("%ld",total_bytes/1024L)) << "\n\n"; + + if(files.count()) + io << S_X_FILES_NOT_DOWNLOADED(form("%d",files.count())) << "\n\n"; + + if(goodbye && !files.count() && !uploads.count()) + { + unlink(prot.logfile); + unlink(prot.ctlfile); + + io << "\n\n" << S_HANGUP_AFTER_DOWNLOAD_PROMPT << "10"; + + for(int i=10;i>0;i--) + { + io << form("\b\b%2d\xFF",i); + + char c = toupper(io.readkey()); + + if(c==K_HANGUP_AFTER_DOWNLOAD_PROMPT[0]) return; + if(c==K_HANGUP_AFTER_DOWNLOAD_PROMPT[1]) break; + + sleep(1); + } + + LOG("Hanging up after download."); + + showansascrip("DLHANGUP"); + + exit_proboard(); + } + + if(uploads.count()) + process_uploads(prot,cfg.uploadpath,uploads,private_download , ask_description , no_log , quiet_download , extra_log ); + + io << S_PRESS_ENTER_TO_CONTINUE; + } +} + +void +read_personal_files( LinkedList& files ) +{ + File f(FN_PVTFILES_PB); + + if(!f.opened()) return; + + f.rewind(); + + for(;;) + { + _PrivateFile pvt; + + if(f.read(&pvt,sizeof(pvt)) != sizeof(pvt)) + break; + + if(strcmpl(pvt.to,user.name) || !pvt.fname[0]) continue; + + String fname; + + if(!strchr(pvt.fname,'\\')) + fname = String(cfg.pvtuploadpath) + pvt.fname; + else + fname = pvt.fname; + + DirScan scan(fname); + + if(int(scan)) + files.add( InputFile(fname) ); + } +} + +void +delete_personal_file( char *name ) +{ + File f(FN_PVTFILES_PB,fmode_rw | fmode_excl); + + if(!f.opened()) + return; + + FileName fn; + FileName fn_full( name ); + + _PrivateFile pvt; + + int num_found = 0; + + for(;;) + { + if(f.read(&pvt,sizeof(pvt))!=sizeof(pvt)) break; + + if(!pvt.fname[0]) + continue; + + if(!strchr(pvt.fname,'\\')) + fn = String(cfg.pvtuploadpath) + pvt.fname; + else + fn = pvt.fname; + + if(fn == fn_full) + num_found++; + } + + f.rewind(); + + for(;;) + { + if(f.read(&pvt,sizeof(pvt))!=sizeof(pvt)) break; + + if(!pvt.fname[0] || stricmp(pvt.to,user.name)) + continue; + + if(!strchr(pvt.fname,'\\')) + fn = String(cfg.pvtuploadpath) + pvt.fname; + else + fn = pvt.fname; + + if(fn_full == fn) + { + pvt.fname[0]=0; + + f.seek(-long(sizeof(pvt)),seek_cur); + f.write(&pvt,sizeof(pvt)); + + if(pvt.attr & PVTFILE_KEEP) + continue; + + if(num_found < 2) // Only kill file if not waiting for oher user + unlink(fn_full); + } + } +} + +InputFile::InputFile() +{ + area = 0; +} + +InputFile::InputFile(char *s) +{ + area = 0; + + if(s[0] == '[') + { + area = atoi(&s[1]); + + for(int i=0; s[i] ; i++) + { + if(s[i] == ']') + { + name = &s[i+1]; + return; + } + } + } + + name = s; +} + +InputFile::InputFile(char *s,int a) +{ + name = s; + area = a; +} diff --git a/DL.OBJ b/DL.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..fecf8c62bb7af8b78d366976d5c392ef4d35aad5 GIT binary patch literal 27106 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 aOV{tkTGug2`G0e2`1YLTk2Yam?*1PfM|(Q} literal 0 HcmV?d00001 diff --git a/DSZCTL.TXT b/DSZCTL.TXT new file mode 100644 index 0000000..88702dc --- /dev/null +++ b/DSZCTL.TXT @@ -0,0 +1,10 @@ +P:\BBS\FILES\PROBOARD\PB_201.ZIP +P:\BBS\FILES\PROBOARD\GSZ0203.ZIP +P:\BBS\FILES\PROBOARD\HCOM_108.ZIP +P:\BBS\FILES\PROBOARD\HS121.ZIP +P:\BBS\FILES\PROBOARD\IZMBETA1.ZIP +P:\BBS\FILES\PROBOARD\MPMOD160.ZIP +P:\BBS\FILES\PROBOARD\MPT110.ZIP +P:\BBS\FILES\PROBOARD\SDP101G.ZIP +P:\BBS\FILES\PROBOARD\SDPF101G.ZIP +P:\BBS\FILES\PROBOARD\SZMOD160.ZIP diff --git a/DSZLOG.TXT b/DSZLOG.TXT new file mode 100644 index 0000000..e69de29 diff --git a/EGA.ASM b/EGA.ASM new file mode 100644 index 0000000..020e8a9 --- /dev/null +++ b/EGA.ASM @@ -0,0 +1,68 @@ +% MODEL MEM_MOD + +public _set43,_set25,_setvideomode,_getvideomode + + CODESEG + +PROC _set43 + push bp + push si + push di + + mov ax,1112h + xor bx,bx + int 10h + + pop di + pop si + pop bp + ret +ENDP _set43 + +PROC _set25 + push bp + push si + push di + + mov ax,3 + int 10h + + pop di + pop si + pop bp + ret +ENDP _set25 + +PROC _getvideomode + push bp + push si + push di + + mov ax,0f00h + int 10h + xor ah,ah + + pop di + pop si + pop bp + ret +ENDP _getvideomode + +PROC _setvideomode + ARG mode:WORD + push bp + mov bp,sp + push si + push di + + mov ax,[mode] + int 10h + + pop di + pop si + pop bp + ret +ENDP _setvideomode + +END + diff --git a/EGA.OBJ b/EGA.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..836d1065cce7c9a0e31dab91d8b25b97d0744375 GIT binary patch literal 304 zcmZqRWMFr7chqwX_MOt9z`(#D6H;1~l&|1eT%4Mll#^Pdpb(Z?RGgWgr(mpSIIDx7 z!Qo}wTr+=|rmY>!KoOs5ObiSeAm+j;)A$)UfF{O=xJHDqIQzS}9-hI@;9_&yo+OqBMXQ)1d?E2U}0tCpT@z!=HedY9~#g-i-m#hKU4GsUIqq6w)o=I5+hSS z1_m1h-^3W`Os@$dKzUw}d|75nYJP5hN~#6}!+xl6I+Cyy1H;V@76yk!j1w1FF)%VP vgocIh5E3-LeO4eoF7`Bt$IO6WGw`1kFnR)(>3$Oy-tEQ)k#p+;`mqE6{S#OL literal 0 HcmV?d00001 diff --git a/EVENT.CPP b/EVENT.CPP new file mode 100644 index 0000000..3d0ab17 --- /dev/null +++ b/EVENT.CPP @@ -0,0 +1,73 @@ +#include "proboard.hpp" + +int +event::minutesleft() +{ + Date today(TODAY); + Time now(NOW); + + int nowminutes=now[0]*60+now[1]; + + int min=10080; + + if(enabled) + for(int i=0;i<7;i++) + { + int day = today.weekDay()+i; + + if(day>6) day-=7; + + if(!(days&(1<6) day -= 7; + + if(!(days&(1<&!+{5UMbq9wuf?uXci-J-+)eV>m%JP*GY-nk+u zL@Ej>b-wZOkI_m1I48C@HCDBah5X*YP*rAlC4wph_2f)2i!5A377Ixv zanu1o(L`x3VpyVRiGc#sVv?>qDim>o>_@F3R$>IP$^i zd^tQ7=H(C+bD}(oxWL$iHK;;qF0&4XBZFaUP=+#&_bP~+Kxl;bPFW|hrzBUh4*Hak zHRy-83z!B`#%1wv0W_%$VP{aSCqP~}k6Y#W)~FnaC@Abl!%Airz}B*CApl(Zp0-ya z^{$v^+%z3M6?cX2j-?DTZLI(&Uvr7u-SEnBoN8-~{^8zgb&Oq%Ux9-i#|i-_xBJL9 z^U{7oNDtJk^)uCTv)3R(Za;$tbNdM#4|BW8#Jpf=GX^t5X#s=Hm}B<7=MX0#)@i)^ zbZa$Y*&V}M=mJBFV5$X2Yo4&m-#vIAJ@I0h?m5`aga)3YuUC`yUam#hpQUcD57gAE z`z>mEnw(eDcFkm`$!*Ehh4e0X`t{G(H?qXe{1;*g!2tLP+tUoTM}J^TX)~!Tw$yLf zQh976{~TM3`YWtL3`-YM_zCmK`YTzU#3rNK~>yV&6y40(>EkKY-g08@rlg769c3bp?hH literal 0 HcmV?d00001 diff --git a/EXEC.ASM b/EXEC.ASM new file mode 100644 index 0000000..be229b0 --- /dev/null +++ b/EXEC.ASM @@ -0,0 +1,959 @@ +;------------------------------------------------------------------------- +; Exec function with swapping to disk. (c) 1990,1991 Philippe Leybaert +;------------------------------------------------------------------------- + +% MODEL MEM_MOD + +LOCALS @@ + +PUBLIC _swapshell + +EXTRN __psp : WORD + +EXTRN _shell_windowed : WORD +EXTRN _shell_updateline: WORD +EXTRN _shell_swap : WORD +EXTRN _shell_swapname : PTR +EXTRN _use_ems : BYTE +EXTRN _tsw_vsize : WORD +EXTRN _tsw_hsize : WORD + +EXTRN _tsw_videobase : FAR PTR + + CODESEG _TEXT + +numpara dw (?) ; number of paragraphs reserved by compiler +savedpara dw (?) ; number of paragraphs to keep +swapsize dw (?) ; size of swapfile (# paragraphs) +swapseg dw (?) ; segment of start of swapregion +main_ss dw (?) ; saved for swapshell +main_sp dw (?) ; function (compiler stack saved here) +old_ss dw (?) ; saved for +old_sp dw (?) ; exec function +saved_psp dw (?) ; psp of my program +retval dw (?) ; return value of process +swapmode dw (?) ; swap code/data? +ems_handle dw (?) ; EMS swapspace handle +num_cols dw (?) ; # screen columns +num_lines dw (?) ; # screen lines +use_ems db (?) ; Use EMS? + +data_seg dw (?) + +prgname db 128 DUP (0) +swapname db 13 DUP (0) +old_dir db '\' + db 69 DUP (0) +old_disk dw 0 + +displayline dw 132 dup (?) + + EVEN + +cur_x dw 0 +cur_y dw 0 + +LABEL old21 DWORD +old21_off dw 0 +old21_seg dw 0 + +LABEL old1c DWORD +old1c_off dw 0 +old1c_seg dw 0 + +LABEL videoptr DWORD +video_off dw 0 +video_seg dw 0 + + dw 99 DUP (?) ; new stack (100 words) +newstackptr dw 0 + +parablock dw 0 + dw offset comlen + dw @Code + dd 0FFFFFFFFh + dd 0FFFFFFFFh +comlen db 0 +comline db 127 dup (0) + +PROC exec NEAR + + push bx + push cx + push dx + push di + push si + push bp + push ds + push es + + mov [cs:old_ss],ss ; save stack + mov [cs:old_sp],sp ; (exec function destroys ss an sp) + + push cs ; es <- cs + pop es + + mov dx,offset prgname ; get program name + mov bx,offset parablock ; get parameter block + mov ax,4B00h ; + int 21h ; call DOS EXEC function + + cli + mov ss,[cs:old_ss] ; restore stack pointer + mov sp,[cs:old_sp] + sti + + mov ah,4Dh + int 21h + xor ah,ah + mov [cs:retval],ax + + pop es + pop ds + pop bp + pop si + pop di + pop dx + pop cx + pop bx + + ret +ENDP exec + +PROC shrink_exec NEAR ; ES: segment , BX: # para's to allocate + assume ds:@Code + + cmp [swapmode],0 + je @@noshrink + + mov ax,4a00h ; shrink memory size to minimum + int 21h ; (only this module remains) + +@@noshrink: + call near exec ; shell + + mov ah,0Eh ; + mov dl,[byte old_disk] ; Restore current disk + int 21h ; + + mov ah,3Bh ; + mov dx,offset old_dir ; Restore current directory + int 21h ; + + cmp [swapmode],0 + je @@noexpand + + mov ax,[saved_psp] + mov es,ax + mov bx,[numpara] + mov ax,4A00h + int 21h ; give back memory we stole + + push ds ; save data segment + + mov cx,[swapsize] + mov ax,[swapseg] + mov ds,ax + + call read_para + + pop ds ; restore data segment + +@@noexpand: + ret +ENDP shrink_exec + +PROC read_para NEAR ; read cx paragraphs to ds:0 + push ds + push ax + push bx + push cx + push dx + push si + push di + push es + + cmp [cs:use_ems],0 + je @@use_file + + mov ah,40h + int 67h + or ah,ah + jnz @@use_file + + mov dx,[cs:ems_handle] + + mov ah,41h + int 67h + + push ds + pop es + mov ds,bx ; es = page frame + xor bx,bx ; bx = logical page index + +@@ems_loop: + cmp cx,0400h + jb @@ems_remainder + + push cx + + mov ax,4400h + int 67h ; map page bx to phys.page 0 + + mov cx,02000h + cld + xor si,si + xor di,di + rep movsw ; transfer data to page frame + inc bx + + pop cx + sub cx,0400h + mov ax,es + add ax,0400h + mov es,ax + jmp short @@ems_loop + +@@ems_remainder: + mov ax,4400h + int 67h ; map page bx to phys.page 0 + + shl cx,1 ; Convert # paragraphs -> #words + shl cx,1 + shl cx,1 + + cld + xor si,si + xor di,di + rep movsw ; transfer data to page frame + + mov ah,45h + int 67h ; Free EMS + + + jmp short @@quit + +@@use_file: + push ds + + mov ax,cs + mov ds,ax + assume ds:@Code + + mov ax,3D00h + mov dx,offset swapname + int 21h ; open swap-file + mov bx,ax + + pop ds + +@@loopke: + cmp cx,0F00h + jb @@remainder + + push cx + + mov cx,0F000h + xor dx,dx + mov ax,3F00h + int 21h + + pop cx + sub cx,0F00h + mov ax,ds + add ax,0F00h + mov ds,ax + jmp short @@loopke + +@@remainder: + shl cx,1 + shl cx,1 + shl cx,1 + shl cx,1 + xor dx,dx + mov ax,3F00h + int 21h + + mov ax,3E00h + int 21h ; close file + + mov ax,cs + mov ds,ax + mov dx,offset swapname + mov ax,4100h + int 21h + +@@quit: + pop es + pop di + pop si + pop dx + pop cx + pop bx + pop ax + pop ds + ret +ENDP read_para + +PROC disp NEAR + push cx + push si + push di + push bp + + cmp al,0ah + jne no_lf + + mov cx,[cs:num_lines] + dec cx + + inc [cs:cur_y] + cmp [cs:cur_y],cx ; At bottom of screen? + jne upd_cursor + dec [cs:cur_y] ; Yep, scroll up + jmp short scroll_up + +no_lf: + cmp al,0dh + jne no_cr + + mov [cs:cur_x],0 + jmp short upd_cursor + +no_cr: + cmp al,8 + jne no_bs + + cmp [cs:cur_x],0 + je @@ok + dec [cs:cur_x] + jmp short upd_cursor + +no_bs: + mov ah,0eh + xor bx,bx + int 10h + + mov cx,[cs:num_cols] + + inc [cs:cur_x] + cmp [cs:cur_x],cx ; At right of window? + jne @@ok + mov [cs:cur_x],0 ; Yep, linefeed + inc [cs:cur_y] + + mov cx,[cs:num_lines] + dec cx + + cmp [cs:cur_y],cx ; At bottom of screen + jne upd_cursor + dec [cs:cur_y] + +scroll_up: + mov ax,0601h + mov cx,0000h + mov dl,4Fh + mov dh,[byte cs:num_lines] + dec dh + dec dh + mov bh,7 + int 10h + +upd_cursor: + mov ah,2 + mov bh,0 + mov dh,[byte cs:cur_y] + mov dl,[byte cs:cur_x] + int 10h +@@ok: + pop bp + pop di + pop si + pop cx + ret +ENDP disp + + +PROC new21 + cmp ah,2 + je catch + cmp ah,6 + jne test_9 + cmp dl,0ffh + jne catch +test_9: + cmp ah,9 + je catch + cmp ah,40h + jne nocatch + cmp bx,1 + je catch + cmp bx,2 + je catch + +nocatch: + jmp [cs:old21] + +catch: + push ax + push bx + push cx + push dx + push si + push di + push bp + push ds + push es + + cmp ah,2 + jne no_2 + + mov al,dl + call disp + jmp short done_catch + +no_2: + cmp ah,6 + jne no_6 + mov al,dl + call disp + jmp short done_catch + +no_6: + cmp ah,9 + jne no_9 + + mov si,dx + +@@l: mov al,[ds:si] + cmp al,'$' + je done_catch + call disp + inc si + jmp short @@l + +no_9: + mov si,dx + +@@l2: + or cx,cx + jz ret_40 + + mov al,[ds:si] + call disp + inc si + dec cx + jmp short @@l2 + +ret_40: + pop es + pop ds + pop bp + pop di + pop si + pop dx + pop cx + pop bx + pop ax + mov ax,cx + clc + iret + +done_catch: + pop es + pop ds + pop bp + pop di + pop si + pop dx + pop cx + pop bx + pop ax + iret +ENDP new21 + +timer_val dw 0 + +PROC new1c + push ax + inc [cs:timer_val] + mov ax,[cs:timer_val] + and ax,7 + jnz @@nodisp + + push cx + push si + push di + push bp + push ds + push es + + push cs + pop ds + assume ds:@Code + + les di,[videoptr] + mov si,offset displayline + cld + mov cx,80 + rep movsw + + pop es + pop ds + pop bp + pop di + pop si + pop cx + +@@nodisp: + pop ax + + jmp [cs:old1c] +ENDP new1c + +startswap: ; all data/code past this point can be + ; swapped (who cares!) + +PROC _swapshell + ARG command:PTR + push bp + mov bp,sp + push ds + push si + push di + + mov ax,ds + mov [cs:data_seg],ax + + mov ax,[_tsw_vsize] + mov [cs:num_lines],ax + + mov ax,[_tsw_hsize] + mov [cs:num_cols],ax + + mov ax,[_shell_swap] + mov [cs:swapmode],ax + + mov al,[_use_ems] + mov [cs:use_ems],al + + call near install_isr + + mov ax,[__psp] ; store psp for future use + mov [cs:saved_psp],ax + + mov si,offset _shell_swapname + push cs + pop es + mov di,offset swapname + mov cx,13 + cld + rep movsb + + lds si,[command] + mov di,offset prgname +@@lp: + mov al,[si] + cmp al,' ' + je @@qt + or al,al + je @@qt + mov [cs:di],al + inc si + inc di + jmp short @@lp +@@qt: + mov [byte cs:di],0 + mov al,[si] + inc si + cmp al,' ' + je @@qt + + dec si + + mov cx,0 + mov di,offset comline +@@lp2: + mov al,[si] + or al,al + je @@qt2 + mov [cs:di],al + inc si + inc di + inc cx + jmp short @@lp2 +@@qt2: + mov [byte cs:di],13 + mov di,offset comlen + mov [cs:di],cl + + mov ax,@Code ; ds = code segment + mov ds,ax + assume ds:@Code ; tell Tasm where ds points to + + mov [main_ss],ss ; save compiler stack + mov [main_sp],sp + + mov ax,cs + cli + mov ss,ax ; set my own stack + mov sp,offset newstackptr + sti + + mov ax,[saved_psp] ; get psp address + dec ax ; get address of MCB + mov es,ax + mov ax,[es:3] ; get number of paragraphs reserved + mov [numpara],ax ; and store it + + mov bx,offset startswap ; we can swap from this point + mov cl,4 + shr bx,cl ; convert to # paragraphs + add bx,@Code + mov ax,[saved_psp] ; how many paragraphs + sub bx,ax ; must remain? + add bx,2 ; 2 extra paragraphs (safe!) + mov es,ax ; es <- psp + + mov [savedpara],bx ; store it + push bx ; push number of paragraphs + push es ; push psp address + + mov cx,[numpara] ; get number of paragraphs reserved + sub cx,bx ; calculate # paragraphs to save + + mov [swapsize],cx ; store for later use + mov ax,es ; get psp + add ax,bx ; calculate address for swap-start + mov [swapseg],ax ; store for later use + + push ds ; save data segment + + cmp [swapmode],0 + je @@nowrite + + mov ds,ax ; set ds to region to save + call near write_para ; save file + +@@nowrite: + pop ds + + mov ah,19h ; + int 21h ; Save current disk + mov [byte old_disk],al ; + + mov si,offset old_dir+1 ; + mov dl,0 ; Save current directory + mov ah,47h ; + int 21h ; + + pop es + pop bx + + call near shrink_exec + + cli + mov ss,[main_ss] ; restore compiler stack + mov sp,[main_sp] + sti + + call near remove_isr + + pop di + pop si + pop ds + pop bp + mov ax,[cs:retval] ; set return value + ret +ENDP _swapshell + +PROC write_para NEAR ; write cx paragraphs from ds:0 + push ds + push ax + push bx + push cx + push dx + push si + push di + push es + + cmp [cs:use_ems],0 + je @@use_file + + mov ah,40h + int 67h + or ah,ah + jnz @@use_file + + push cx + mov bx,cx + mov cl,10 + shr bx,cl + inc bx + pop cx + + mov ah,43h + int 67h + or ah,ah + jnz @@use_file + mov [cs:ems_handle],dx + + mov ah,41h + int 67h + mov es,bx ; es = page frame + xor bx,bx ; bx = logical page index + +@@ems_loop: + cmp cx,0400h + jb @@ems_remainder + + push cx + + mov ax,4400h + int 67h ; map page bx to phys.page 0 + + mov cx,02000h + cld + xor si,si + xor di,di + rep movsw ; transfer data to page frame + inc bx + + pop cx + sub cx,0400h + mov ax,ds + add ax,0400h + mov ds,ax + jmp short @@ems_loop + +@@ems_remainder: + mov ax,4400h + int 67h ; map page bx to phys.page 0 + + shl cx,1 ; Convert # paragraphs -> #words + shl cx,1 + shl cx,1 + + cld + xor si,si + xor di,di + rep movsw ; transfer data to page frame + + jmp short @@quit + + +@@use_file: + mov [cs:use_ems],0 + + push ds + push cx + + push cs + pop ds + + mov dx,offset swapname + mov ax,3c00h ; Create + xor cx,cx ; swap-file + int 21h + + pop cx + pop ds + mov bx,ax + +@@loopke: + cmp cx,0F00h + jb @@remainder + + push cx + + mov cx,0F000h + xor dx,dx + mov ax,4000h + int 21h + + pop cx + sub cx,0F00h + mov ax,ds + add ax,0F00h + mov ds,ax + jmp short @@loopke + +@@remainder: + shl cx,1 + shl cx,1 + shl cx,1 + shl cx,1 + xor dx,dx + mov ax,4000h + int 21h + + mov ax,3E00h + int 21h + +@@quit: + pop es + pop di + pop si + pop dx + pop cx + pop bx + pop ax + pop ds + ret +ENDP write_para + + +PROC install_isr NEAR + push ax + push bx + push cx + push dx + push ds + push es + push si + push di + push bp + + mov ax,[cs:data_seg] + mov ds,ax + + cmp [_shell_windowed],0 + je @@nowindow + + mov ax,3521h + int 21h + mov ax,es + mov [cs:old21_seg],ax + mov [cs:old21_off],bx + mov ax,2521h + mov dx,offset new21 + push ds + push cs + pop ds + int 21h + pop ds + + mov [cs:cur_x],0 + mov [cs:cur_y],0 + + mov ax,0600h + mov cx,0 + mov dl,4Fh + mov dh,[byte cs:num_lines] + dec dh + dec dh + mov bh,7 + int 10h + mov dx,0 + mov bh,0 + mov ah,2 + int 10h + +@@nowindow: + cmp [_shell_updateline],0 + je @@notupdated + + mov ax,351Ch + int 21h + mov ax,es + mov [cs:old1c_seg],ax + mov [cs:old1c_off],bx + mov ax,251Ch + mov dx,offset new1c + push ds + push cs + pop ds + int 21h + pop ds + + push ds + mov ax,[_shell_updateline] + dec ax + mov cx,[cs:num_cols] + shl cx,1 + mul cx + + lds si,[_tsw_videobase] + add si,ax + + mov ax,ds + mov [cs:video_seg],ax + mov [cs:video_off],si + + mov ax,[cs:num_lines] + dec ax + mov cx,[cs:num_cols] + shl cx,1 + mul cx + mov si,ax ; SI = (num_lines-1) * num_cols * 2 + + push cs + pop es + mov di,offset displayline + mov cx,[cs:num_cols] + cld + rep movsw + + pop ds + +@@notupdated: + cmp [_shell_windowed],0 + jne @@done + + mov ax,0600h + mov cx,0 + mov dl,[byte cs:num_cols] + dec dl + mov dh,[byte cs:num_lines] + dec dh + mov bh,7 + int 10h + mov dx,0 + mov bh,0 + mov ah,2 + int 10h + +@@done: + pop bp + pop di + pop si + pop es + pop ds + pop dx + pop cx + pop bx + pop ax + ret +ENDP install_isr + +PROC remove_isr NEAR + push ds + mov ax,[cs:data_seg] + mov ds,ax + + cmp [_shell_windowed],0 + je @@nowindowrestore + + push ds + mov ax,2521h + lds dx,[cs:old21] + int 21h + pop ds + +@@nowindowrestore: + cmp [_shell_updateline],0 + je @@noupdaterestore + + mov ax,251Ch + lds dx,[cs:old1c] + int 21h + +@@noupdaterestore: + pop ds + ret +ENDP remove_isr + +ENDS + +END + diff --git a/EXEC.OBJ b/EXEC.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..e862da379340f0d4f9084a0781fe989a4ae3e3dd GIT binary patch literal 2419 zcmaKteQXqU8poe`-R;tDSFZMGugr80A$pp*KqHA#du>V!2-+66+g6Wm3Y|a=6zuL& zU*nP{Uc0l|sJZkEhtj2xcu{kT8`&0wJ@yTc44%LrHT?_qypq*B(sHN5rt5ch*A*|s z*?i`id7j_%?C+U*o@aa(GOJIkJCr{6p2tUPiKxcm9ooLPw#n^Q_iW#-4%OB=)gkx5 z-oe^BW%a>P8#P{i>Gid3MX%>ZIjFXbvqZa$%g`UkZB)|I-O}uGv~)Z8=C<`M1FxBA zBN59nzZfqi!L`20(Zn04vv~tAFy%Qz(PP{&%$h|LbN9HJ#Pu7twsp2^2YE7Q*`C1j zh~e7j-bdvw_bzq!ZrAX@VE^7>wV&=ND7^dn`#kFIfkBm)6jbivz8@Woo58+4Dw$ng zx9U>&xXI%3xQAW)-2>06h3j3pYinLV(68>@-se{7)0gic;w&yBMDE|`1-j>hQs{(1 zb$IoTvjV+Ryj`=pL7>)Ao*IuZuS~2U4o~>!j|Y!fiId4k41NUOG8BiYtf+WnLLlyK z`hB}$c!yewhVBWGxOq6K6BWc|4ELWLTPE%#?jl|k(Pubk3kSV+sD$FYgF7cWxL+DU zKWASo2K{p4pB%THd#qz?m$Oq6l|W@FDPyawWHn98bn-GAq0PGeh7vUN8uT~AkLdO_ zUnrAH$s}*u$`NkVcUr#iZc((#N(wjWJ0(+awr=*ocf=3L9T8fu z@0_CAOx^$LvJ1zWdk$PBJ`fd%4@T3oIqN4^j9+0vxJBQYZj%D%f-@0%X!NdD9BY0;F?+oK@F1X|a=40o=R_DS-7;%c|c$?y1TTP1>7B8GI>9#O?f}p?#{FNC- zw{3Iv_QZS{*0aKw5xs)%M%G*9%anL3e3?eCW#lH~!HM+(8@{|Zn9aPXS^XXjRC z)9VaBH zd`#4iETV!EiV7=DFbo4YNv%`x%EBW*bC2gYF|mtuE2~kxtu~o z%4Bt3EX#`unt<|14b6p^oY_XF2_<{xFin+FX5naJzj#I_?6lUi#1i$Glu@B|L;62T zQh>4*+W$U^r+4Oa*3ZLi&Y7Fi^RSnl`HWRY%OZr*3{;wFY?Xxq=WYc5aq1#_6E(as z7+n?OXp-pUyzm}>DSaSD1pU1;BQZ7@9g|pkOw_DI_nsd^i3g%wY*Hkt&>|@J`$!H~ z>GmV@bow1SPT>tGr6=Z2W^M%WZyNsX=G-a9)hlmPLQCoV|22lI&=_4E+NbYXE~T4$ z!p*r(X;sDwof3@Qu1~HWYGUF`99-N6?gY!g3UD{51C5{qbc0^d51s@bFbp*CXYjRy zOWX%GfJeYq&;zhO@f3Ilyacd5@iO=mcmqs=zkqkahu{LZrPWL1bNhHPQD5GmXlBZ74o=KOnv})%E=_7kTIu_JO_CheBOssVQa zrU%!pPdpPsdK<&y5`zb7QACYK#_@L^O{QT8{c0X~3-aY>e3N z$7qTwlPs%@NyJ9%E2kR-$tvr1`G+Br!c;Ow?`?+0G|>qPv$`!Gt|wAc2qzlhcs5eA za{6o`oP=)Mn446eT>0ioVl6(4*NiT;VCh;jtAwg=F>BY*k=OCrz+lTP9FueLy-3N} z1SZrnTKs!qd>O;5xDU(_lWfe^m~?BNr4kZT5|zXvul!yu*c&vwp^5$L&;L4$|!!=!CgKEiPDRo07)?G{&1 fphXhvoNQtfWIGrH9^CsN{{Y`t@on|vtLyn5LNi$| literal 0 HcmV?d00001 diff --git a/EXECHECK.CPP b/EXECHECK.CPP new file mode 100644 index 0000000..0650dae --- /dev/null +++ b/EXECHECK.CPP @@ -0,0 +1,97 @@ +#include +#include +#include +#include "proboard.hpp" + +#pragma warn -rch + +const long CHECKFREQ = 50; + +struct + { + char string[15]; + dword checksum; + } execheck = { "#`&$%#$%@%&^%E",0L }; + +void +check_exe(char */*fname*/) +{ +/* + File f; + bool first_time = FALSE; + dword checksum = 0L; + long offset; + +// #ifndef RELEASE + return; +// #endif + +#if __OVERLAY__ + return; +#endif + + if(!execheck.checksum) + { + int c; + + if(!f.open(fname,fmode_rw,512)) exit(ERRLVL_FATALERR); + + first_time = TRUE; + + for(;;) + { + c = f.readByte(); + if(c<0) exit(ERRLVL_FATALERR); + if(char(c) == execheck.string[0]) + { + char buf[14]; + f.read(buf,13); + buf[13] = '\0'; + if(!strcmp(buf,&execheck.string[1])) + { + offset = f.pos() + 1; + break; + } + f.seek(-12,seek_cur); + } + } + } + +SCRAMBLE(); + +if(clockticks()%CHECKFREQ && !first_time) return; + +if(!first_time) if(!f.open(fname,fmode_read,1024)) exit(ERRLVL_FATALERR); + +f.rewind(); + +for(;;) + { + int c = f.readByte(); + if(c<0) break; + checksum += byte(c); + + SCRAMBLE(); + } + +if(first_time) + { + f.seek(offset); + f.write(&checksum,4); + } + else + { + byte *p = (byte *)&execheck.checksum; + + for(int i=0;i#GX!CAkM(V qz@VIqUxZk7N_b8@+rf#4p9b%7mO%@);8D7U$hITz61a=-dF(u literal 0 HcmV?d00001 diff --git a/FILEAREA.CPP b/FILEAREA.CPP new file mode 100644 index 0000000..2d10991 --- /dev/null +++ b/FILEAREA.CPP @@ -0,0 +1,219 @@ +#define Use_MsgBase + +#include +#include +#include +#include "proboard.hpp" + +File FileArea::f; +int FileArea::lastAreaNum = -1; +int FileArea::numAreas = -1; + +FileArea *FileArea::lastArea = NULL; + +void +FileArea::open() +{ + if(!f.opened()) + { + if(!f.open(FileName(syspath,"FILECFG.PRO"),fmode_read,cfg.fastmode ? BUFSIZE_FAST:BUFSIZE_SLOW)) + file_error("FILECFG.PRO"); + + numAreas = int(f.len() / sizeof(_FileArea)); + } +} + +bool +FileArea::read(int a) +{ + open(); + + if(a<1 || a>numAreas) return FALSE; + + if(lastArea == NULL) + { + lastArea = new FileArea; + lastAreaNum = -1; + } + + if(a != lastAreaNum) + { + f.seek(long(a-1) * sizeof(_FileArea)); + + if( f.read(lastArea,sizeof(_FileArea)) != sizeof(_FileArea) + || lastArea->name[0] == '\0' ) + { + lastAreaNum = -1; + + return FALSE; + } + } + + (*this) = (*lastArea); + + + append_backspace(filepath); + + strip_trailing( listpath ); + strip_leading( listpath ); + + if(listpath[0] == '\0') + { + strcpy(listpath , filepath); + strcat(listpath , "FILES.BBS"); + } + + lastAreaNum = a; + + areaNum = a; + + strip_trailing( name ); + strip_leading( name ); + + return (name[0]) ? TRUE:FALSE; +} + +void +FileArea::close() +{ + f.close(); + + if(lastArea != NULL) delete lastArea; + + lastAreaNum = -1; + numAreas = -1; + lastArea = NULL; +} + +int +FileArea::highAreaNum() +{ + open(); + + return numAreas; +} + +void +create_arealist(String param[],int numpara,BitArray& arealist,bool msgareas) +{ + FileArea fa; + MsgArea ma; + int MAX; + + if(msgareas) + MAX = MsgArea::highAreaNum(); + else + MAX = FileArea::highAreaNum(); + + for(int i=0;i#J*M6%GrABQ9lGNp-0%q`IhmN5=-2~J`^ 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 B7EAyD literal 0 HcmV?d00001 diff --git a/FORWARD.CPP b/FORWARD.CPP new file mode 100644 index 0000000..1484671 --- /dev/null +++ b/FORWARD.CPP @@ -0,0 +1,148 @@ +#define Use_MsgBase + +#include +#include "proboard.hpp" + +void +Message::forward() +{ + int areanum = 0; + MsgArea ma; + char newto[ 36 ]; + + + if ( msgArea->msgKind == MSG_LOCAL ) + { + io << "\n\n" + << S_FORWARD_IN_SAME_AREA; + } + + + if ( msgArea->msgKind != MSG_LOCAL || + ! io.ask( TRUE ) ) + { + io << "\n\f\n"; + + linecounter( 0 ); + + set_msgarea( "* -N /L" ); + + io << '\n' + << S_SELECT_MSG_AREA_TO_FORWARD_MESSAGE_IN; + + io.read( areanum, 5 ); + + + if ( areanum < 1 ) + { + return; + } + } + else + { + areanum = areaNum(); + } + + + if ( ! ma.read( areanum ) ) + { + io << "\n\n" + << S_UNKNOWN_MESSAGE_AREA + << "\n\n" + << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + + + for ( ; ; ) + { + User tuser; + + + io << "\n\n" + << S_FORWARD_MESSAGE_TO; + + io.read( newto, + 35, + READMODE_UPFIRST ); + + + if ( ! newto[ 0 ] ) + { + return; + } + + + if ( ! strcmpl( newto, "Sysop" ) ) + { + strcpy( newto, msgArea->sysop ); + } + + + if ( ma.msgKind != MSG_LOCAL || + tuser.search( newto ) ) + { + break; + } + + + io << "\n\n" + << S_USER_NOT_LOCATED + << '\n'; + } + + + io << "\n\n" + << S_FORWARDING_MESSAGE; + + + File tmpf; + + + if ( ! tmpf.open( "MSGTMP", fmode_create ) ) + { + return; + } + + + tmpf << "----------------------------------------------------------------------\r\n"; + + tmpf << form( " ** Original message to : %s\r\n\r\n", + to ); + + tmpf << form( " ** Original post date/time : %d-%s-%02d %02d:%02d\r\n\r\n", + postDate[ 0 ], + months_short[ postDate[ 1 ] ], + postDate[ 2 ] % 100, // Y2K FIX: JDR + // postDate[ 2 ], // Y2K BUG! FIXED + postTime[ 0 ], + postTime[ 1 ] ); + + tmpf << form( " ** Forwarded by %s using ProBoard v" VERSION "\r\n", + user.name); + + tmpf << "----------------------------------------------------------------------\r\n\r\n"; + + + tmpf.close(); + + createMsgTextFile( "MSGTMP", TRUE ); + + + if ( post_message( from, + newto, + subj, + areanum, + ( attr & MSGATTR_PRIVATE ) + ? TRUE + : FALSE ) < 0 ) + { + io << S_SAVING_MESSAGE_ERROR; + } + + + io << "\n\n" + << S_PRESS_ENTER_TO_CONTINUE; +} + diff --git a/FORWARD.OBJ b/FORWARD.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..6a30784aabad69812a6de1abb785f59694b70863 GIT binary patch literal 2819 zcmb_ee@qj16o1#>w)~vfbvWy>0WmmGFd;^hrO2;s8KrB>Da*D?X%9Sww)CzD#7#C5 zWHPtKEl!MPxfKt5tC(E+|*6F_r1123GOd}d->jb zpZ7lReeU}`t}hb|t-io6SHM%|_WKosCIHBDR&T7NxA+3>F0Y5KUb~jwP*(nEPz~@< z3A+Y00LLk3&Bj43z$1jC3qyC+8Qllh0c6xQ+P7BOYglLPHm9n(v8Gnd)>JvGRI*{W zI2=m6G&S}1#wOdTLt0q#t4g7ythjpR4N9e^E|3*~MoSqEYd{xQ#Fb4SRVp&s4xd-t zF0jIOUqA$t#qSeDwu2J{R~uK@>FsrkDoZa@;*?rL4gZEj-}Nn2z)#5v$%wvBz5_`2Xj4zogGMET z4T%XYZUl>5gV5&Wxz3PAy@%3j{fiv*Nyaq=Ccju31S$m7Vi)Sw0n96DAI z1H8M#4_dNv`+HE@!WIuF%hLsApXLKl^9m)mIw=nD_?SvX0W=NWd;i`J?PT37z~sOg z*`AhdNVaEXJ0{yv*COC&Quas1rnTr`(* z%^?7rYz~vt(=X}lw$v&;aYcwqM`{e?LBBbqO!w+Gj3){-n?qViE}N62HwfwV+!1{m zrDmQoqz0RDf8A_aT;KoREcLE(dQ3T!6YtW+yEJl#&CMUy&BnWCjr#{Qv#F*vX8_x> z#w%42uT+3J^bFXN&r*itP!W=TCFe%|NvYLoLw09KLSrihDEr#@sy)_HLf)TKhKPpMG zpwWIQOFu3uW;UVNNdeweVx?_LbIAO}mgfY}OfQQk(;ksYAK;_~PfSDJ%a2n6;RXn) z2((acIu+=bGUR8YoSvr4p|y)*x}iFa`X#`}i-}@#-^jahL2bMzn~*?xhkt-DjSi{3DN2Ox`n6+SqT5DRvb-G4#YPFsmlNF;djz z*Jxq~m{qY3ysXUgvGsW6BUF!24ML~>WK0v&WO0qjpNNvh7_)L}gfUE=WDFBu87a-g zQS?rHVx-hl{Y=JG4~Bdg+DSsKB(#l$>X_wIFEFd4amF0JkKX7_Mj!qKG0_Re5FKR< z;Sk=0zr#@Y1SUj}GI`ODF!TXl-FSHsvV%Z40@;d?u$`=|Mk*`(8k*>4CO5i<$%$q& z%fbdkMjkST$nQ*sG=n$N4a|sKVN}u-W<@3$WdunjLMjo`$Vo;gk#Qmen6(>2-6SMn zNa8Sc_}FcrK$Wijzl*ouf``-GjOWQ5s;6uVUN-%bK5-&HhvK0x4nY4cstCaFlc*Y@ zW)vfE1`s_<_MT1NTv!heJ-OE{+-y09D|-rds|@49%H-+FSK;Y0snTA-^KUOJ=>*@< zsW-#i`P8K~Jaqf*ANL+iBbUQ^`OttLkV4KrPsYK-=aqkjvm41Pu?~->YWWX zD19nFnR=j0O6bM_-^P1g?R4_1iWYq|`PoDl37PuEAoBf1d+`79IuZX%6OgC0NGL5@ zU*Vx?VmA>pmsgkg%H%wBOApqgg97huqiq4-79W0m(p?p06%|PFROTs_S(6f>a4!$$ U0oZIf=HX;P9m7B6F7 zq^t^2q{y5wMZD<2Lk?vpk=-O${{lUT`v-ceZ!%`zUc&QyzTfxxJ}+-Jk`U^KWvSY9 z#cDP>B7ifJZB`92Z&^ySswt)@t|+FZ8oGF8`tnvMgSkJ?-d!y*=bm@M6c&3SV9hVz zzwTv_SST$m-71!)`TG)oy;PXreRBji&vT(Lx8F-5QZD4BJnw(L`vSm6xO6XuXyL}) z((+<=i$`=Adgx>TE>WgSmMw);TNYjMtusksJbAJ`oS;g2q^LR-o&qgqjzucOwk`rsSf~)0m~~*0S;A6uc^eSMe7dZ+UjUb! zV>BumMAbE;T_f6O;G=VtQX!zL3aPFA1e%O9V0wEO*kPPiQ>ip2ILtc7>FHE(+Rv_P zMy>H1_`+~%J>Uc2Q-{ag2kzz01&#v_9!8W+^)Y>2-5{c>)4OV#BIhQAbIx*i-^J!a zth*BRvX6eymR4?u$E#7B}VjB4MO7;m}p zHa%+lNYeb_kO*|IK0;o0=GS31+uoyc_fB$eJ?2h%*>YfE*r`M2-|qCrdJH7;mHQiZ UX1@7ZueKxDyDf2pP5N7te=CI&5C8xG literal 0 HcmV?d00001 diff --git a/FUZZY.CPP b/FUZZY.CPP new file mode 100644 index 0000000..7965e89 --- /dev/null +++ b/FUZZY.CPP @@ -0,0 +1,135 @@ +#include +#include +#include +#include + +/* local, static data */ + +static char *Text, *Pattern; /* pointers to search strings */ +static int Textloc; /* current search position in Text */ +static int Plen; /* length of Pattern */ +static int Degree; /* max degree of allowed mismatch */ +static int *Ldiff, *Rdiff; /* dynamic difference arrays */ +static int *Loff, *Roff; /* used to calculate start of match */ + +static int *allocated; + +static void near +App_init(char *pattern, char *text, int degree) +{ + int i; + + /* save parameters */ + Text = text; + Pattern = pattern; + Degree = degree; + + /* initialize */ + Plen = strlen(pattern); + Ldiff = allocated = (int *) malloc(sizeof(int) * (Plen + 1) * 4); + Rdiff = Ldiff + Plen + 1; + Loff = Rdiff + Plen + 1; + Roff = Loff + Plen + 1; + + for(i = 0; i <= Plen; i++) + { + Rdiff[i] = i; /* initial values for right-hand column */ + Roff[i] = 1; + } + + Textloc = -1; /* current offset into Text */ +} + +static void near +App_next(char **start, char **end, int *howclose) +{ + int *temp, a, b, c, i; + + *start = NULL; + while (*start == NULL) { /* start computing columns */ + if (Text[++Textloc] == '\0') /* out of text to search! */ + break; + + temp = Rdiff; /* move right-hand column to left ... */ + Rdiff = Ldiff; /* ... so that we can compute new ... */ + Ldiff = temp; /* ... right-hand column */ + Rdiff[0] = 0; /* top (boundary) row */ + + temp = Roff; /* and swap offset arrays, too */ + Roff = Loff; + Loff = temp; + Roff[1] = 0; + + for (i = 0; i < Plen; i++) { /* run through pattern */ + /* compute a, b, & c as the three adjacent cells ... */ + if (toupper(Pattern[i]) == toupper(Text[Textloc])) + a = Ldiff[i]; + else + a = Ldiff[i] + 1; + b = Ldiff[i+1] + 1; + c = Rdiff[i] + 1; + + /* ... now pick minimum ... */ + if (b < a) + a = b; + if (c < a) + a = c; + + /* ... and store */ + Rdiff[i+1] = a; + } + + /* now update offset array */ + /* the values in the offset arrays are added to the + current location to determine the beginning of the + mismatched substring. (see text for details) */ + if (Plen > 1) for (i=2; i<=Plen; i++) { + if (Ldiff[i-1] < Rdiff[i]) + Roff[i] = Loff[i-1] - 1; + else if (Rdiff[i-1] < Rdiff[i]) + Roff[i] = Roff[i-1]; + else if (Ldiff[i] < Rdiff[i]) + Roff[i] = Loff[i] - 1; + else /* Ldiff[i-1] == Rdiff[i] */ + Roff[i] = Loff[i-1] - 1; + } + + /* now, do we have an approximate match? */ + if (Rdiff[Plen] <= Degree) { /* indeed so! */ + *end = Text + Textloc; + *start = *end + Roff[Plen]; + *howclose = Rdiff[Plen]; + } + } + +} + +void +App_End() +{ + free(allocated); +} + + +int +fuzzy_search(char *pattern,char *text,int degree) +{ + int min = 0x7FFF; + int howclose; + char *begin,*end; + + degree = strlen(pattern)*(100-degree)/100; + + App_init(pattern , text , degree); + App_next(&begin, &end, &howclose); + while(begin) + { + if(howclose)Ol~ z+71JwchAIuAY+@*5J3>Xs9)3xLw3_3-KgC_%Z6ALp=l3UsvgwTd|e+72ER z@G^IF9q9FWAG;vI)4N1o;AC8N1BfQBoK}y6S>h5G&0sNjL-3tz1SxQGa$U`- zM@Pqpz!W$-F){*{z~uN;FgP*++vn>5xayW%Gl7#MgA+r?8c&SP3{CERb69|L=POYz zYiSJz1D#{TjVD500qPe;kpt-TvAZf$tW32;dC(jHOffT6jGEC9(Xd5rV1&#@NW4f5 z_xDGw5V1nb>iVbrt#xnSsW}=T>cor+h}ubBU1zvvPCE!|;cL9+r~=JdSyZY}sVpir zs5pvB4JwYJQin<{xKhb_wzRsg=TcS;?_?$=?ImW5res(gxBtHY^laxtXiqT%9Vw=4dz8$q8Gk83NfoTr z{d9_EN=DYCF3*crm=zL-jW8~_c_Hx)T;(D08L)Ww15aWh6-w-rqa~cdV>*8f?H?0`1*ly;;$^BJ#V_93WP(|~T4=KHu?zdrwq%uh^>*8^W zKD-z3v)^#|aP|y$0~l^66yBF3%f)$QA^TNh-UwOneJY4w4MWrS>CG#{;JTUKVt=Ye z$YzAB`IwEtov?0ATK3OnX9YHwb-bfwy@(Vcxti z6SfF{5H<-v6Ydah5xyl{A$&x*NMM9H!WdzY@EW0=;3CL`hY1!$>>t7n!qN}c#rTdK_i?YyiJ%UOcBNjql9CG0O1XSk8ps{OL&FQjkw;b z^17QW+NkT#s+|4=S@ncR2^9nzqJ8lp;6OBz>D)*z*DT=Ie}lXKPj}`6ckd%-@v}Jj EFOYvv9{>OV literal 0 HcmV?d00001 diff --git a/FUZZY2.OBJ b/FUZZY2.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..68e4a8028d4445448098dbd5b87eaae2c351a667 GIT binary patch literal 1796 zcmaKtZD?C%6vxkfX>LqoT5Frt(uSh-s?-&>VBCmkUvDc~8n@=U)-9p59TU1X>zd3K z+6)7uchAIuAfwx$A%Y-&(NF4xAxj#h8?_r~*^pI5Xqt&)A*r#;^_;wD^TiMMm*<@S zIrpCPJm=n=HG}E6e`aQSf6K7X7o4vJfa?B^1CGY_iOI2{@sY-k=H^Cw%f8Hf8Ngox zoS8QOgt`9C1M?C<2E);X(q@_Yoex_8$`$wE;J|)wf7g+Iv7@iEtIXTk*54-P;B7yA zSisBB*?p+b?Mhyf;Mqq+Uf^V0^#F)vTm`M31cSsS77Sq2d0lW{XadQ5dTMfPbQ~8a zhsMSxhM~-Rd~$RYjNYjUzt1;13ELOz0l1phTsz*=qeGL!Cz?);&kRrPdwWEH3m2r4|)yQK?6z4(zF916x{MkLFTj?Zv!Nhf#7|;y`gaOfdIj++YM<_Z;iJK`n(I znAA6;9#M{W^8gqJkm%)gj0qbdY6D6>`wIAlgu;ih9BUP5N>)>M!dSJ{0uihieN4$R zbth7Zh6U5A@^=c?V@zE!0ZX=8A%exCuaJN}p)ZQn=L@jwiOXn;Al#SFOP30}=E@af zGr}(4pz}L_1&dR=w0AO-l9m#)RZ}u7j@$ol0D89bA+)EMfsPbYww+35)_}j1pri^` z>c4b~W=clZq;BWSCYTixNA(acxS){u2Cnmv_#9ZgXV;V1534`tj^VEClxA%Ok7KVmNPJ9az?uEL79{mD74?|0LsFR}mv{3x zMISx%df2Zxd^mf$qY-q64GQnevE|}CvVi5f9@GOye4h&9S0m8;eR}iS2-t6@x7Z)5 z9x&?xQ$A*6XeSgkC5;E?va+#!5RxJLMxus~phIl?$$i0}rXgJ37fgvSU*MC@kL{a$?^~e2`ZtN@G3zev=a^zULa6svF8X+6Y2@I1Zp%!MZ|JNh`5TT z2!9f&<>)dYM);EODPfUth42C4eS$_fM|hVoP4E*Y2xEj31TWz&f}3!N&_{TU(1W%Z>YRY%|b^Y~qy F`Ui~cQ6B&R literal 0 HcmV?d00001 diff --git a/GIF.CPP b/GIF.CPP new file mode 100644 index 0000000..620721f --- /dev/null +++ b/GIF.CPP @@ -0,0 +1,83 @@ +#include +#include "proboard.hpp" + +struct gif_header + { + char sign[6]; + word xres; + word yres; + word colorbits : 3; + sword dummy : 5; + }; + +void +view_gif(char *data) +{ + char gifname[13]; + + io << "\f\n" << S_SHOW_GIF_INFO_TITLE_AND_PROMPT; + + io.read(gifname,12,READMODE_UPALL); + if(!gifname[0]) return; + + String param[40]; + BitArray arealist(MAX_FILE_AREAS,1); + + int npara = parse_data(data,param); + + create_arealist(param,npara,arealist); + + FileArea fa; + + io << form("\n\n\7 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄ¿\n" + " ³\3 %-13.13s\7³\3 %-11.11s\7³\3 %-7.7s\7³\n" + " ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍ͵\n", + S_SHOW_GIF_FILENAME , + S_SHOW_GIF_RESOLUTION , + S_SHOW_GIF_COLORS ); + + linecounter(2); + stopped=0; + io.enablestop(); + + for(int i=1;i<=FileArea::highAreaNum();i++) + { + if(!arealist[i] || !fa.read(i) || !check_access(fa.level,fa.flags,fa.flagsNot)) continue; + + String fname(fa.filepath); + fname << gifname; + + DirScan f(fname); + + while(int(f)) + { + File fil; + + if(fil.open(FileName(fa.filepath,f.name()))) + { + gif_header gif; + fil.read(&gif,sizeof(gif)); + + if(!strncmp(gif.sign,"GIF",3)) + { + io << form(" ³ \3%-12s\7 ³",f.name()); + io << form("\6 %4d x %3d \7³\2 %3d \7³\n",gif.xres,gif.yres,1 << (gif.colorbits+1)); + + if(stopped || linecounter()) + { + i = FileArea::highAreaNum(); + + break; + } + } + } + + ++f; + } + } + + if(!stopped) + io << " ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍ;\n\n" + << S_PRESS_ENTER_TO_CONTINUE; +} + diff --git a/GIF.OBJ b/GIF.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..a28ee117915614724a3c0df2c6848e8632389420 GIT binary patch literal 2467 zcma)84Qx|Y6h5!r+VWQB24id>;{oL_)5S6!BSzD)t$-$5ZMQ4c$V>P3*q(N6*Y{cm zAp{*+_9J3qLXe0-O$;%_kf6|@frXTAgta9=L=3@+k~ly@3=$-E_1xFrk(k)5_uccI zbH4kXd(K}-atE;)%8uR19LV&-uux(HW z@EOzAR6nQ(c#Po)q3d>`v2TAhfMLTXE8o_ zy|vx;*8x4O`dO>dGOyuo<0U94WL}~>0G*yGI;aCfQj^rSzkgS=(jxdpmm=~me7Gf9 zG4*=t9ExA^bV)t+>m{YZ?{{qv2vA}1x%{%oce)f8#_SL>Vepj2EqO%28}KNi-_$Ds zXA!zZ;T_&32%;>TdIOT#+@S8QZdaGAtN{b>>)`PUx+^}7FyFG(E6b8w z@>)cXtHUi)hp9IRyTbx9UK#R>>_kV5Fs6>guMOmOu~XDb0CO zJQ5V;pslcgckniQv%|qRx3o3e`LazVa2SNv53^{pd-}`8eftFv$bZ!vibR8Di~Df!tW7! ze6Y~M2Sq{g`uR@LE#kOht-*j4a0et2yPa`*#BDP?MW}-&&}a}poCm-ZTY?fs;aiCy ziUYWQ_*X3h&^~ha-Mcmo30DEENS=J96qk*qRUrVIx*VkMV}ICSw`F$6G`5ftY~_2c z7iWYRhpiV66paS7Q+u>DUHukUYEAfm3<)b%Q^>8f_ns`^UP*4xzT&RB0y zYcp1?h0O6K_8Em4LYlP88Nq*5kh>SB^E3lfD>NgKkL~nAvIQ8vfud36Re~z7Br>!* z6|C#OTQD+kZF*$?)#;&uqluyYUnNv%9H9t8M-cilkvtKePFK#VmwJXlGG&?`b3emq zP@6CVNd_MzgMT7)I~z3Rq^aMhbvT{1qu3MttG%S&dOFbQq$Q+J_$`xMGDL0;Str9= zCRZf472sEsN7WxTvZG32h=Dtr+R-8F4Wz}Bv&p*tT{i&dVH83|YV(gJ=n)wu{b80~ zdR1s=#+fTv(M}CRt_muyDzrP>AsokC7jQa<2TmoH>tUKs)bRM_oA%_15MJSlL{(^S zHi>;AY4^+6%s_D{nM_sd#Fmw-5=QRl$#gpJEX`Lk!_~j*9-!7wr|FF3qWZ(SG?49; z&Z<(s7}=?viX{#M&}j&ml63`;tkd979r@2UE=`r4F5Ulny|#?pdh0^vC(D@lWwPw* zDYE#&39>l;HJKYfMA-O8gdN*g&gjO5%NWhrKsi%9_8wjO${Bs!O^V_I2HVNP_&QP^ ze}*iGSK+f1aXryS5*QSFK-kEAWQg4&rIBBdC3Xgp?AWI{AsIiUA zixILoR!`=~D#@Z)A*qc1K`Nrx$F5%ydqBGF<}dX7cT@IU2DVfY?hCUKcKLzsy#h-P9RDVtD;>B^gA$@uGJ$wU*G z6}DjFL^WY2mJl|)2#s(BWneMy?BO3k17KuATz#Zqb$hbz*JQ!c5?dT q8je$UxMhL6lFt&2#`Ddrahhd89xMU)oyq(f8#q+gx_THZRsIE&e0?qe literal 0 HcmV?d00001 diff --git a/HANDLER.CPP b/HANDLER.CPP new file mode 100644 index 0000000..8c64858 --- /dev/null +++ b/HANDLER.CPP @@ -0,0 +1,7 @@ +#define Use_Handlers +#define Use_LinkedList + +#include "proboard.hpp" + +LinkedList sysopkey_handlers; +LinkedList hangup_handlers; diff --git a/HANDLER.OBJ b/HANDLER.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..d3e7ca3f5b6c584b7426d9f4b8fc7c0da594be3e GIT binary patch literal 3098 zcmb_fZ%h+s7=NyRj?xxHEimGg&Xvv$HN$33tu962s*wP*^^k0E;ZLWHSfKRE$fl8y zZQRZ!W{Jx}SW-XilV6x07Pe0}(}Wm0v-x35{4hT(ONQ4lV~nW{a(mvp>mLZH$@bx{ z&pq$+{+{3S?|sutWneqo8yOf3Mfdg(57$h+1OSd;(}DfYqeIa_TyZwl*E>CX8?sYo zfG0*6o1y`(QNiW|QzZadG)EOK-8b7m{Hh(meyp*rxwYja7i>8lG&Qw1x0t!+#$cmK zeQ`$v0V6&%cf9R*kh73CS)jR=)8w1H)$eBi$@WtnProjKU5CJ6q@JL348UZjHWBG% zpi8KKh(v>>l%h1rYNMXc9)Jd4U28aUE;P^@9*wzT2Rm9$YcbaOMu(y?*GOdKd_fs& zaD{=I_!WG!Z$RC~TZel`V_YaQ;2Mbowe8#4*I?(y#;(4BP`_&gf&IH)$PzLA+n#3` zj%b)Cs$R$vF;A4DrE_DRXF`|`621t(&(=NH5)s`uW_Q7>8zV+TV_`i>Z+2lupJ{r2 zC>~PtIkBDkb9NupZ;abJfSE5U8zKD(^~bXl(LcmTFhHcuUY&KrD;vX~3l9#ehOx)b zhIIAy$D*p`QR6fXcEz9=-@V)k7KRHnwRd#+z~*DZgQ3P~sMq%aRQkA6qoJs85W6Q3 z>W%iF4Gf3+p-fkgj*m8nqqv1M%pm3>5(g`OL_%Y(5k3r6-){k+Y(6d!Y;Fl~=yyB7 zWI@@~-bR!-gfmyFfihNb*y(5ZVe&(Udej1N{Ynk4Y~j$?(D1p?czz9cT~E9N6u>Dl zy<-lbW15U}SJ#d?OJ43?P!|h|V#Dr*-kH}SwJ#`@CHFcgW6DjWokXe(O6AGTL@Fhc z8Kr{>E0{1GCpv+K88f5|LFzCn@%W&e7#M8LD}Mt?<29KsSK<~WPV3x`7~q0&@dhM& zXm_%9aRP;9IiSR|N<5>)SCsg&(qo-WT5QtALtiitt2#904>YI%x`}FD(2>omaZZ)& z$+$(o#VvNy0+SWkjOH$<^DHX7UunUZsQvZ(7iB0;84QSlC}Q|cPY^U z5*Be4oSM9i*(Gb;UcZH}bbCALbr|j;kjVIdgxsCD0utU?2sxQHv0_}!omhg&Ht;2v z@6J_#99Gj&ySk*FTk`I8>x?nzO@g)NOR&(qK{hvfZ-4v?;)u+O$S&uKsBu~p0 zkzEm)W%+6kX@`j!8j>|Q8sS7eNI0u{xT0Tefmj)#gFT3DOtKj%RsrdTO0vy~+xil3 zfmB-9rp6Mh$OX}fHSp82$#cge5uJcYg5T7=a5%A(lB~H@s7^GGym8S;Y2T!Ubs$nG zk6NfbM5Bxu+{)YfJfgxQdG6%GB z<;ud6K8LySTGOuNGszLRc8pLhs%DYzK+VF678a5N0<4UY$5aSnb+t%w%4bU9X9K%6 zb%fpeUE*^}vgrwP5CE-jaImLAWb7hq)y99WJa=*mY*t`0wwtm2#fMYT0i&l)C!NW$ z6WOfDWMo?VC9d?cX(HyPMD?$pF+{>HEDoJ~sbMbO$uoN>un&rvEeT9oW45Hk(@OlI z5`R!&mR`*)odXovC6P%JX5?339}CPQoq#?D$(~0!<6@3PS*T4dsg}q*7TGoWyiTP* zd9fVSR?e$QTad!sn%NAgdw6(CtRvNezi!s?QQ|$2?75Ei+)~|Zqiwy{1_AW)k#rF_{dN#p h3+^Mw$8CaG!8&TD8~}e)#eV=k{bqmr_~+<8_AmabA3Xp7 literal 0 HcmV?d00001 diff --git a/HELP.CPP b/HELP.CPP new file mode 100644 index 0000000..cd165dd --- /dev/null +++ b/HELP.CPP @@ -0,0 +1,354 @@ +#include +#include "proboard.hpp" + + + +#define HELP 1 +#define USER 2 +#define MACRO 3 + + +static int status = 0; +static Window win; +static int WINSIZE; + +static +void near show() +{ + int maxx = SCREEN.maxX; + word *buf = new word[ tsw_vsize * maxx ]; + int x = SCREEN.getX(); + int cursorline = SCREEN.getY(); + int caplines = ( cursorline > tsw_vsize - ( WINSIZE + 2 ) ) + ? tsw_vsize - ( WINSIZE + 2 ) + : cursorline; + + + tsw_gettext( buf, + 1, + cursorline - caplines + 1, + maxx, + cursorline + 1 ); + + + if ( cursorline > tsw_vsize - ( WINSIZE + 2 ) ) + { + cursorline = tsw_vsize - ( WINSIZE + 2 ); + } + + + byte att = SCREEN.attrib(); + + + SCREEN.attrib( 7 ); + SCREEN.clear(); + SCREEN.change( 1, + 1, + maxx, + tsw_vsize - ( WINSIZE + 1 ) ); + + + tsw_puttext( buf, + 1, + 1, + maxx, + caplines ); + +// win.open( 1, +// tsw_vsize - WINSIZE, +// maxx, +// tsw_vsize - 1, +// 0x17, +// 0, +// SINGLE_BORDER ); + + win.open( 1, + tsw_vsize - WINSIZE, + maxx, + tsw_vsize - 1, + 0x70, + 0, + CHISEL_BORDER, + 0x7F, + NULL, + 0x78 ); + + SCREEN.setPos( x, cursorline ); + SCREEN.attrib( att ); + + + delete [] buf; +} + + + +static +void near hide() +{ + int maxx = SCREEN.maxX; + + + win.close(); + + + word *buf = new word[ tsw_vsize * maxx ]; + + + tsw_gettext( buf, + 1, + 1, + maxx, + tsw_vsize - ( WINSIZE + 1 ) ); + + + byte att = SCREEN.attrib(); + + + SCREEN.saveCursor(); + + SCREEN.attrib( 7 ); + SCREEN.change( 1, + 1, + maxx, + tsw_vsize - 1 ); + + SCREEN.clear(); + SCREEN.restoreCursor(); + SCREEN.attrib( att ); + + + tsw_puttext( buf, + 1, + 1, + maxx, + tsw_vsize - ( WINSIZE + 1 ) ); + + + delete [] buf; +} + + + +void toggle_userinfo() +{ + // if ( user_recnr < 0 ) + // { + // return; + // } + // + // + // switch ( status ) + // { + // case USER: + // + // hide(); + // + // status = 0; + // + // break; + // + // + // case 0: + // + // WINSIZE = 5; + // + // show(); + // + // + // default: + // + // if ( WINSIZE != 5 ) + // { + // hide(); + // + // WINSIZE = 5; + // + // show(); + // } + // + // + // win.clear(); + // + // win.attrib( 0x17 ); + // + // win << " Handle : Flags :\n" + // " # Calls : Last call:\n" + // " Downloads: Uploads :"; + // + // win.attrib( 0x1F ); + // + // win.setpos( 13, 1); + // win << user.alias; + // + // + // win.setpos( 45, 1 ); + // + // char s[ 33 ]; + // + // user.aflags.flagstostr( s ); + // + // win << s; + // + // + // win.setpos( 13, 2 ); + // + // win << form( "%d", user.timescalled ); + // + // + // win.setpos( 45, 2 ); + // + // win << form( "%02d %3s %04d at %02d:%02d:%02d", + // user.lastdate[ 0 ], + // months_short[ user.lastdate[ 1 ] ], + // user.lastdate[ 2 ] + 1900, // Y2K FIX! + // user.lasttime[ 0 ], + // user.lasttime[ 1 ], + // user.lasttime[ 2 ] ); + // + // + // win.setpos( 13, 3 ); + // + // win << form( "%d (%d Kb)", + // user.numdownloads, + // user.kdownloaded ); + // + // + // win.setpos( 45, 3 ); + // + // win << form( "%d (%d Kb)", + // user.numuploads, + // user.kuploaded ); + // + // + // SCREEN.setpos( SCREEN.getx(), + // SCREEN.gety() ); + // + // status = USER; + // + // break; + // }; +} + + + +void toggle_help() +{ + switch ( status ) + { + case HELP: + + hide(); + + status = 0; + + break; + + + case 0: + + WINSIZE = 7; + + show(); + + + default: + + if ( WINSIZE != 7 ) + { + hide(); + + WINSIZE = 7; + + show(); + } + + + win.clear(); + win.attrib( 0x71 ); + + win << " [ShF1] Macro Help [AltM] Edit Current Menu [AltS] Static\n" + " [AltC] Chat [AltE] Edit User [AltH] Hang Up\n" + " [AltI] Image [AltJ] DOS Shell [AltL] Lock Out\n" + " [AltR] Reset Chat [Ctrl-Lt/Rt] Level [Up/Dn] Timer\n" + " [Home] Reset Status [F2-F10] Status [PgUp/PgDn] Cycle status"; + + SCREEN.setPos( SCREEN.getX(), + SCREEN.getY() ); + + status = HELP; + + break; + } +} + + + +void toggle_macrohelp() +{ + switch ( status ) + { + case MACRO: + + hide(); + + status = 0; + + break; + + + case 0: + + WINSIZE = 7; + + show(); + + + default: + + if ( WINSIZE != 7 ) + { + hide(); + + WINSIZE = 7; + + show(); + } + + + win.clear(); + + + for ( int i = 0; i < 10; i++ ) + { + win.setPos( ( i / 5 ) * 38 + 2, + i % 5 + 1 ); + + + //---------------------------- + // JDR: REGISTRATION REFERENCE + //---------------------------- + + if ( registered ) + { + win << form( "AF%-2d - %-27.27s", + i + 1, + cfg.sysopkeys[ i ] ); + } + else + { + win << form( "AF%-2d - %-27.27s", + i + 1, + "REGISTER NOW!" ); + } + } + + + SCREEN.setPos( SCREEN.getX(), + SCREEN.getY() ); + + status = MACRO; + + + break; + } +} diff --git a/HELP.OBJ b/HELP.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..132f1c1286537cdcbf573b2083692f96e3623992 GIT binary patch literal 2719 zcmZ`*eQX=$8Gp`>9mjT3nz}BdQg)*OfwGpSu2Q6a;KcTkY-xP6olCvcJ-N=sv2bk1 zcXmS60a7;P#4r_AAX+t23QVKY5YZSY6r^?Fk3X6wY|{`z2%$-vGE#xWrlw12z31`S ziBp&(|MGnPo)5pe_nt9=VMK~1_Jk4%U*=u_u=pI0cCcOXWHcBXVjXR5tZh>1E%( zUoDJh^Z*wbpYzd7J-`}dX@_^#U|>yLx%i=Q`%AbGV%@o#^cJb=H+Z?DBfG z_|=O&eLX(WKu8X~=sHF^VOe)R?s50?pS)ZT5B*-N(K1h=)V;*i>6phzdK2{Z%yE+R zU}#_%RWh2G+voLQE@?{IpFQ_$rcMkEhruK!rEo-6q@*+iCOa32N}Wk5Xdi~{cClZU zlJ;m&R=iR$85;2>q!2V#%<_}6Gm?aQ(d+QITzz1%4@6=^@o{@-Bp3@ztz!}VKy%gF zdNL}Hw2sA2h2Y+*Eh))LJSjO+NjaWu9ZO@$3Wpp_*O=EyWJ%%UGEu`l)zDBBd!ytU zOI*hKX}G@{6HiDnwV_lf5}P;`N`&YS2Y8DlF zTuh`CMVe4R)xwghHHnVy9~edYE)N*Xv1vJSN&>TeIG!BE!Lh1@3r0dIirvN1 zU_>P*jkk`aBJkEb%>azaE_!`VmsiB@&uF1>!{~7Lk@0CQ+;?UtMq2DjJRFWn;%G3G zjMMQ%?<*R3`-~O6TdLlQ;~@?F^vr$e*j9C<@RyCmhU1vEO9Ri&zN2LTT>aVWlh=*H zK=#NbxCpTN^`F1s&(jI^PYHLXxNk2SV2WGIb{OH}8=%ub7K^ogbnxR}Y*BR{lYZXz z!HOnZnBs0`3wC}WTWI5M+WC0~_)_{#DgAAkZ!%}Ti=nAj&wevI0~v0$pr3*ImU)0m z7k&(~t3^EnL`mNbKeCq6H`g7T>&*c_H^JMk*#5$M=APzD9U3Tg0NAeZa|!CZn;$@I z)4%au))t|ZUaKu*nC4b9+>L4O#w#;WQ^xNXPh|fQIQpTwNxhKmxC9%Cem^bstGk!F zF_Tc8sfH7WDlg+!El+td<)+tDHr$x8q4@o^@-%lV!>vtoYuI5&AGFfH`XwIfO$W;G%n{^PevmC(K7{Ve0J;+z4^KzCWj@5LG`7tD ziK(b(8TFV>=8T@rB;4d3LF+6{fjaQCwGfvYVS{>dy|67DJf#=>Zq z&Iygh7fHwnTZ+F#p_sNXnx#>}RE$^|eNiF^A}o0XL$Qw{9m4kFV;EHIAlOUrpuk++ zB``&+6>}Rgw*dne|1OvdpQBLt8^KkA4+!4Hl)`Tb&Lb?oAeaizV}-&L!LJY&PYZ^^ z1ck~J6+>xp7|BkO$xq-W;0TUT#E*$*hhSZ75Vq$3V`VJ)uhEykj$GG16B_cLknoXU z&M%Pgp-`XyBMSLBiu@g!UK5P@Su&j??FFGZf0}&b$a3uoVMjiM+O^|CWBwTN`Y7nI zV9oC*VV7Xa|B!@cp()=)ejNdWDY;t&-&mP#xvvlwJ{Gnvyf4(}<}p0?I{9A3(1iK1b{k1JxHk7NCESm&U=?=cn#gWK?bF%6 zG8#JO?4WmqYY(tT>ABB#z4~ zV_9_sSjR|Esb*LHQ=qFtLf3z-n|$2?wj1wvwm+e=^aR+R(O_7rjZ@40B)~e|Ue=3u zP_))dEWH7?Hy(O|b*B`S#uH#Y5?=4smIfV4GP=80dBme&sFapAQ6Sx5f8r5mEWr9A zqf!z%y5pl#m4l{C$>o}Z+`iph`(AbOicNL!VPxRL#Nl`nUm{q!oCP}v_a3zEKe+$E zXeal;?tMe-ZnkV{CleYD?Adof-Z|KQ&}Jjc_s6Tg?}_%f9`Et`TpqU1J@6x#oHarn vKHFHl*Wt|zI#|&7m_um9_eF-qHvpKa8Z%n~mYMYz(Pw8m+<%zH6QTSMe(F&! literal 0 HcmV?d00001 diff --git a/HUDSON.CPP b/HUDSON.CPP new file mode 100644 index 0000000..3f4a605 --- /dev/null +++ b/HUDSON.CPP @@ -0,0 +1,1429 @@ +#define Use_MsgBase + +#include +#include +#include +#include "proboard.hpp" + + + +struct HudsonMsgInfo +{ + int low; + int high; + int total; + int active[ 200 ]; +}; + + + +struct HudsonMsgIdx +{ + int num; + byte area; +}; + + + +struct HudsonMsgToIdx +{ + char to[ 36 ]; +}; + + + +struct HudsonMsgHdr +{ + int msgNum; + int prevMsg; + int nextMsg; + int tRead; + word startRec; + int numRecs; + int destNet; + int destNode; + int orgNet; + int orgNode; + char destZone; + char orgZone; + int cost; + byte msgAttr; + byte netAttr; + byte area; + char postTime[ 6 ]; + char postDate[ 9 ]; + char to [ 36 ]; + char from[ 36 ]; + char subj[ 67 ]; + Date recvDate; + Time recvTime; + + void operator=( Message& ); +}; + + + +const byte QMSGATTR_DELETED = 0x01; +const byte QMSGATTR_UNMOVED_NET = 0x02; +const byte QMSGATTR_NET = 0x04; +const byte QMSGATTR_PVT = 0x08; +const byte QMSGATTR_RECEIVED = 0x10; +const byte QMSGATTR_UNMOVED_ECHO = 0x20; +const byte QMSGATTR_LOCAL = 0x40; + +const byte QNETATTR_KILL = 0x01; +const byte QNETATTR_SENT = 0x02; +const byte QNETATTR_ATTACH = 0x04; +const byte QNETATTR_CRASH = 0x08; +const byte QNETATTR_REQ = 0x10; +const byte QNETATTR_AUD = 0x20; +const byte QNETATTR_RET = 0x40; + +const int CACHE_NEXT = 1; +const int CACHE_PREV = 2; +const int CACHE_START = 3; + + + +HudsonMsgBase::HudsonMsgBase() +{ + lastMsgIdx = new HudsonMsgIdx; + lastReadArray = NULL; + highArray = NULL; + + open(); +} + + + +HudsonMsgBase::~HudsonMsgBase() +{ + close(); + + delete lastMsgIdx; + + + if ( highArray ) + { + delete [] highArray; + } + + + if ( lastReadArray ) + { + delete [] lastReadArray; + } +} + + + +void HudsonMsgHdr::operator=( Message &msg ) +{ + msg.to[ 35 ] = msg.from[ 35 ] + = msg.subj[ 65 ] = '\0'; // Safety measure + + + msgNum = int( msg.id ); + prevMsg = int( msg.prev ); + nextMsg = int( msg.next ); + tRead = 0; + destNet = msg.destNet; + destZone = msg.destZone; + destNode = msg.destNode; + orgNet = msg.origNet; + orgZone = msg.origZone; + orgNode = msg.origNode; + cost = msg.cost; + area = msg.areaNum(); + + msgAttr = 0; + netAttr = 0; + + + if ( msg.attr & MSGATTR_ECHOMAIL && + ! ( msg.attr & MSGATTR_SENT ) && + msg.attr & MSGATTR_LOCAL ) + { + msgAttr |= QMSGATTR_UNMOVED_ECHO; + } + + + if ( msg.attr & MSGATTR_NETMAIL && + ! ( msg.attr & MSGATTR_SENT ) && + msg.attr & MSGATTR_LOCAL ) + { + msgAttr |= QMSGATTR_UNMOVED_NET; + } + + + if ( msg.attr & MSGATTR_DELETED ) msgAttr |= QMSGATTR_DELETED; + // if ( msg.attr & MSGATTR_UNSENT_NET ) msgAttr |= QMSGATTR_UNMOVED_NET; + if ( msg.attr & MSGATTR_NETMAIL ) msgAttr |= QMSGATTR_NET; + if ( msg.attr & MSGATTR_PRIVATE ) msgAttr |= QMSGATTR_PVT; + if ( msg.attr & MSGATTR_RECEIVED ) msgAttr |= QMSGATTR_RECEIVED; + // if ( msg.attr & MSGATTR_UNSENT_ECHO ) msgAttr |= QMSGATTR_UNMOVED_ECHO; + if ( msg.attr & MSGATTR_LOCAL ) msgAttr |= QMSGATTR_LOCAL; + + if ( msg.attr & MSGATTR_KILL ) netAttr |= QNETATTR_KILL; + if ( msg.attr & MSGATTR_CRASH ) netAttr |= QNETATTR_CRASH; + if ( msg.attr & MSGATTR_SENT ) netAttr |= QNETATTR_SENT; + if ( msg.attr & MSGATTR_FILE ) netAttr |= QNETATTR_ATTACH; + if ( msg.attr & MSGATTR_FILEREQ ) netAttr |= QNETATTR_REQ; + if ( msg.attr & MSGATTR_AUDITREQ ) netAttr |= QNETATTR_AUD; + if ( msg.attr & MSGATTR_RECEIPTREQ ) netAttr |= QNETATTR_RET; + + + sprintf( postTime, + "%02d:%02d", + msg.postTime[ 0 ], + msg.postTime[ 1 ] ); + + c2pas( postTime ); + + + sprintf( postDate, + "%02d-%02d-%02d", + msg.postDate[ 1 ], + msg.postDate[ 0 ], + // msg.postDate[ 2 ] ); // Y2K BUG! + msg.postDate[ 2 ] % 100 ); // JDR: Y2K FIXED! + + c2pas( postDate ); + + + strcpy( to, msg.to ); + + c2pas( to ); + + + strcpy( from, msg.from ); + + c2pas( from ); + + + strcpy( subj, msg.subj ); + + c2pas( subj ); + + + recvDate = msg.recvDate; + recvTime = msg.recvTime; +} + + + +void Message::operator=( HudsonMsgHdr& mh ) +{ + num = mh.msgNum; + id = mh.msgNum; + prev = mh.prevMsg; + next = mh.nextMsg; + destNet = mh.destNet; + destZone = mh.destZone; + destNode = mh.destNode; + origNet = mh.orgNet; + origZone = mh.orgZone; + origNode = mh.orgNode; + cost = mh.cost; + + attr = 0; + + + if ( mh.msgAttr & QMSGATTR_DELETED ) attr |= MSGATTR_DELETED; + if ( mh.msgAttr & QMSGATTR_UNMOVED_NET ) attr |= MSGATTR_NETMAIL; + if ( mh.msgAttr & QMSGATTR_NET ) attr |= MSGATTR_NETMAIL; + if ( mh.msgAttr & QMSGATTR_PVT ) attr |= MSGATTR_PRIVATE; + if ( mh.msgAttr & QMSGATTR_RECEIVED ) attr |= MSGATTR_RECEIVED; + if ( mh.msgAttr & QMSGATTR_UNMOVED_ECHO ) attr |= MSGATTR_ECHOMAIL; + if ( mh.msgAttr & QMSGATTR_LOCAL ) attr |= MSGATTR_LOCAL; + + if ( mh.netAttr & QNETATTR_KILL ) attr |= MSGATTR_KILL; + if ( mh.netAttr & QNETATTR_SENT ) attr |= MSGATTR_SENT; + if ( mh.netAttr & QNETATTR_ATTACH ) attr |= MSGATTR_FILE; + if ( mh.netAttr & QNETATTR_CRASH ) attr |= MSGATTR_CRASH; + if ( mh.netAttr & QNETATTR_REQ ) attr |= MSGATTR_FILEREQ; + if ( mh.netAttr & QNETATTR_AUD ) attr |= MSGATTR_AUDITREQ; + if ( mh.netAttr & QNETATTR_RET ) attr |= MSGATTR_RECEIPTREQ; + + + if ( attr & MSGATTR_LOCAL ) + { + if ( ! ( mh.msgAttr & QMSGATTR_UNMOVED_ECHO ) && + ! ( mh.msgAttr & QMSGATTR_UNMOVED_NET ) ) + { + attr |= MSGATTR_SENT; + } + } + + + setArea( mh.area ); + + + mh.postTime[ 0 ] = min( (byte) mh.postTime[ 0 ], 5 ); + + pas2c( mh.postTime ); + + + postTime[ 0 ] = atoi( strtok( mh.postTime, ":" ) ); + postTime[ 1 ] = atoi( strtok( NULL, ":" ) ); + postTime[ 2 ] = 0; + + + mh.postDate[ 0 ] = min( (byte) mh.postDate[ 0 ], 8 ); + + pas2c( mh.postDate ); + + + postDate[ 1 ] = atoi( strtok( mh.postDate, "-" ) ); + postDate[ 0 ] = atoi( strtok( NULL, "-" ) ); + // postDate[ 2 ] = atoi( strtok( NULL, "-" ) ); // Y2K BUG! + postDate[ 2 ] = atoi( strtok( NULL, "-" ) ) % 100; // JDR: Y2K FIX! + + + mh.to[ 0 ] = min( (byte) mh.to[ 0 ], 35 ); + + pas2c( mh.to ); + strcpy( to, mh.to ); + + + mh.from[ 0 ] = min( (byte) mh.from[ 0 ], 35 ); + + pas2c( mh.from ); + strcpy( from, mh.from ); + + + mh.subj[ 0 ] = min( (byte) mh.subj[ 0 ], 65 ); + + pas2c( mh.subj ); + strcpy( subj, mh.subj ); + + + recvDate = mh.recvDate; + recvTime = mh.recvTime; +} + + + +bool HudsonMsgBase::open() +{ + FileName fn_msghdr( cfg.msgpath, "MSGHDR.BBS" ); + FileName fn_msgtxt( cfg.msgpath, "MSGTXT.BBS" ); + FileName fn_msgtoidx( cfg.msgpath, "MSGTOIDX.BBS" ); + FileName fn_msgidx( cfg.msgpath, "MSGIDX.BBS" ); + FileName fn_msginfo( cfg.msgpath, "MSGINFO.BBS" ); + + + if ( ! f_msghdr .open( fn_msghdr, fmode_rw | fmode_copen ) || + ! f_msgtxt .open( fn_msgtxt, fmode_rw | fmode_copen ) || + ! f_msgtoidx.open( fn_msgtoidx, fmode_rw | fmode_copen, 2048 ) || + ! f_msgidx .open( fn_msgidx, fmode_rw | fmode_copen, 1024 ) || + ! f_msginfo .open( fn_msginfo, fmode_rw | fmode_copen ) ) + { + if ( f_msghdr .error() ) file_error( fn_msghdr ); + if ( f_msgtxt .error() ) file_error( fn_msgtxt ); + if ( f_msgtoidx.error() ) file_error( fn_msgtoidx ); + if ( f_msgidx .error() ) file_error( fn_msgidx ); + if ( f_msginfo .error() ) file_error( fn_msginfo ); + + fatalerror( "Error creating Hudson message base" ); + + return FALSE; + } + + flushCache(); + + return TRUE; +} + + + +void HudsonMsgBase::close() +{ + flushCache(); + + f_msghdr .close(); + f_msgtxt .close(); + f_msgtoidx.close(); + f_msgidx .close(); + f_msginfo .close(); +} + + + +long HudsonMsgBase::highMsg( MsgArea& ma ) +{ + readHighArray(); + + return long( highArray[ ma.areaNum - 1 ] ); +} + + + +long HudsonMsgBase::lowMsg( MsgArea& ) +{ + HudsonMsgInfo mi; + + readInfo( mi ); + + return long( mi.low ); +} + + + +long HudsonMsgBase::numMsgs( MsgArea& ma ) +{ + HudsonMsgInfo mi; + + readInfo( mi ); + + return long( mi.active[ ma.areaNum - 1 ] ); +} + + + +long HudsonMsgBase::totalMsgs() +{ + HudsonMsgInfo mi; + + readInfo( mi ); + + return long( mi.total ); +} + + + +void HudsonMsgBase::readInfo( HudsonMsgInfo &mi ) +{ + CLEAR_OBJECT( mi ); + + f_msginfo.rewind(); + f_msginfo.flush(); + + f_msginfo.read( & mi, + sizeof( mi ) ); +} + + + +void HudsonMsgBase::writeInfo( HudsonMsgInfo &mi ) +{ + f_msginfo.rewind(); + + f_msginfo.write( & mi, + sizeof( mi ) ); + + f_msginfo.flush(); +} + + + +long HudsonMsgBase::readMsg( Message &msg, + long num ) +{ + HudsonMsgIdx mi; + int order = 1; + + + f_msgidx.rewind(); + + + if ( num < 0 ) + { + order = -1; + num = -num; + } + + + long index = findIdx( mi, + int( num ), + msg.areaNum(), + order ); + + + if ( index < 0 ) + { + return -1; + } + + + HudsonMsgHdr hdr; + + + f_msghdr.seek( index * sizeof( hdr ) ); + + + if ( f_msghdr.read( & hdr, + sizeof( hdr ) ) != sizeof( hdr ) ) + { + return -1; + } + + + msg = hdr; // Conversion applied! + + return msg.id; +} + + + +void HudsonMsgBase::flushCache() +{ + lastReadRecord = -1; + lastIndex = -1; + lastMsgIdx->num = -1; + lastMsgIdx->area = 0; + + + if ( highArray != NULL ) + { + delete [] highArray; + } + + + if ( lastReadArray != NULL ) + { + delete [] lastReadArray; + } + + + highArray = NULL; + lastReadArray = NULL; +} + + + +void HudsonMsgBase::readHighArray() +{ + if ( highArray ) + { + return; + } + + + highArray = new int[ 200 ]; + + + HudsonMsgIdx mi; + + + memset( highArray, + 0, + sizeof( *highArray ) * 200 ); + + f_msgidx.seek( 0 ); + + + for ( ; ; ) + { + if ( f_msgidx.read( & mi, + sizeof( mi ) ) != sizeof( mi ) ) + { + break; + } + + + if ( mi.num > 0 && + mi.area > 0 && + mi.area < 200 && + mi.num > highArray[ mi.area - 1 ] ) + { + highArray[ mi.area - 1 ] = mi.num; + } + } +} + + + +long HudsonMsgBase::findIdx( HudsonMsgIdx &mi, + int num, + int area, + int order ) +{ + long idx = -1; + + + if ( order < 0 ) + { + idx = f_msgidx.len() / 3; + } + + + if ( lastMsgIdx->num == num && + lastMsgIdx->area == area ) + { + mi = *lastMsgIdx; + + return lastIndex; + } + + + if ( order == 0 ) + { + flushCache(); + } + + + if ( lastMsgIdx->num > 0 ) + { + if ( num > lastMsgIdx->num && + order > 0 ) + { + idx = lastIndex; + } + + + if ( num < lastMsgIdx->num && + order < 0 ) + { + idx = lastIndex; + } + } + + + if ( order < 0 ) + { + f_msgidx.disableBuffer(); + + + for ( idx--; idx >= 0; idx-- ) + { + f_msgidx.seek( idx * sizeof( HudsonMsgIdx ) ); + + f_msgidx.read( lastMsgIdx, sizeof( *lastMsgIdx ) ); + + + if ( lastMsgIdx->num < 1 ) + { + continue; + } + + + if ( lastMsgIdx->num <= num && + lastMsgIdx->area == area ) + { + lastIndex = idx; + mi = *lastMsgIdx; + + f_msgidx.enableBuffer(); + + return idx; + } + } + + + f_msgidx.enableBuffer(); + } + else + { + //---- + // >=0 + //---- + + for ( idx++; ; idx++ ) + { + f_msgidx.seek( idx * sizeof( HudsonMsgIdx ) ); + + + if ( f_msgidx.read( lastMsgIdx, + sizeof( *lastMsgIdx ) ) != sizeof( *lastMsgIdx ) ) + { + break; + } + + + if ( lastMsgIdx->area == area ) + { + if ( + lastMsgIdx->num == num || + ( + lastMsgIdx->num >= num && + order > 0 + ) + ) + { + lastIndex = idx; + mi = *lastMsgIdx; + + return idx; + } + } + } + } + + + flushCache(); + + return -1; +} + + + +word HudsonMsgBase::readMsgText( Message &msg, + char *ptr, + long offset, + word size ) +{ + HudsonMsgIdx mi; + HudsonMsgHdr hdr; + long index = findIdx( mi, + int( msg.id ), + msg.areaNum(), + 0 ); + + + if ( index < 0 ) + { + return 0; + } + + + f_msghdr.seek( index * sizeof( HudsonMsgHdr ) ); + + + if ( f_msghdr.read( & hdr, + sizeof( hdr ) ) != sizeof( hdr ) ) + { + return 0; + } + + + byte buf[ 256 ]; + long rec = hdr.startRec + offset / 255; + word bytescopied = 0; + int buf_index = int( offset % 255 ); + + + for ( ; + + rec < ( hdr.startRec + hdr.numRecs ) && + bytescopied < size; + + rec++ ) + { + f_msgtxt.seek( rec * 256 ); + f_msgtxt.read( buf, 256 ); + + + int l = int( buf[ 0 ] ); + + pas2c( buf ); + + l -= buf_index; + + + if ( l < 1 ) + { + break; + } + + + if ( l > size-bytescopied ) + { + l = size - bytescopied; + } + + + memcpy( ptr + bytescopied, + & buf[ buf_index ], + l ); + + bytescopied += l; + buf_index = 0; + } + + + return bytescopied; +} + + + +word HudsonMsgBase::scanMail( MessageIndex *mi, + word maxmsgs ) +{ + f_msgtoidx.rewind(); + + + int i; + int num_found; + long index; + MsgArea ma; + + + for ( index = 0, i = 0; i < maxmsgs; index++ ) + { + HudsonMsgToIdx h_mti; + HudsonMsgIdx h_mi; + + + if ( f_msgtoidx.read( & h_mti, + sizeof( h_mti ) ) != sizeof( h_mti ) ) + { + break; + } + + + pas2c( h_mti.to ); + + + if ( stricmp( user.name, h_mti.to ) && + stricmp( user.alias, h_mti.to ) ) + { + continue; + } + + + f_msgidx.seek( index * 3 ); + + + if ( f_msgidx.read( & h_mi, + sizeof( h_mi ) ) == sizeof( h_mi ) ) + { + mi[ i ].num = h_mi.num; + mi[ i ].area = h_mi.area; + + + if ( ! ma.read( mi[ i ].area ) ) + { + continue; + } + + + if ( ! stricmp( user.alias, + h_mti.to ) && + + ! ma.flags && + + strcmp( user.name, user.alias ) ) + { + continue; + } + + + if ( mi[ i ].num > 1 && + user.mailCheckBoards.connected( mi[ i ].area ) && + ma.msgBaseType == MSGBASE_HUDSON && + ( + check_access( ma.readLevel, + ma.readFlags, + ma.readFlagsNot ) || + + ma.sysopAccess() + ) + ) + { + i++; + } + } + } + + + num_found = i; + + bool *to_all_areas = new bool[ 200 ]; + + + for ( i = 0; i < 200; i++ ) + { + to_all_areas[ i ] = FALSE; + } + + + for ( i = 1; i <= 200 && i <= MsgArea::highAreaNum(); i++ ) + { + if ( ! ma.read( i ) || + ! check_access( ma.readLevel, + ma.readFlags, + ma.readFlagsNot ) || + + ma.msgBaseType != MSGBASE_HUDSON || + ma.msgType != MSG_TOALL ) + { + continue; + } + + + to_all_areas[ i - 1 ] = TRUE; + } + + + f_msgidx.rewind(); + + + while ( num_found < 200 ) + { + HudsonMsgIdx tmp_mi; + + + if ( f_msgidx.read( & tmp_mi, + sizeof( tmp_mi ) ) != sizeof( tmp_mi ) ) + { + break; + } + + + if ( tmp_mi.num < 1 ) + { + continue; + } + + + if ( tmp_mi.area < 1 || + tmp_mi.area > 200 || + ! to_all_areas[ tmp_mi.area - 1 ] ) + { + continue; + } + + + if ( ! ma.read( tmp_mi.area ) ) + { + continue; + } + + + if ( tmp_mi.num > ma.lastRead( user_recnr ) ) + { + mi[ num_found ].num = tmp_mi.num; + mi[ num_found ].area = tmp_mi.area; + + num_found++; + } + } + + + delete [] to_all_areas; + + return num_found; +} + + + +long HudsonMsgBase::appendMsg( Message &msg ) +{ + File ft; + HudsonMsgIdx midx; + HudsonMsgToIdx mtidx; + HudsonMsgInfo minfo; + long startrec; + long numrecs; + long index; + + + if ( msg.areaNum() < 1 || + msg.areaNum() > 200 ) + { + return -1; + } + + + readInfo( minfo ); + + + if ( ! lock() ) + { + return -1; + } + + + msg.id = ++minfo.high; + msg.num = msg.id; + + + minfo.total++; + + minfo.active[ msg.areaNum() - 1 ]++; + + + midx.num = int( msg.id ); + midx.area = msg.areaNum(); + + + index = word( f_msghdr.len() / sizeof( HudsonMsgHdr ) ); + + + if ( ! ft.open( "MSGTMP" ) ) + { + unlock(); + + return -1; + } + + + startrec = f_msgtxt.len() / 256L; + + f_msgtxt.seek( 256L * startrec ); + + + for ( numrecs = 0; ; numrecs++ ) + { + char x[ 256 ]; + int l = 0; + + + if ( ! numrecs ) + { + //---------------------------- + // JDR: REGISTRATION REFERENCE + //---------------------------- + + sprintf( x, + "\1PID: " PID_STRING_HUDSON "%c\r\n" , + registered + ? 'r' + : 'u' ); + + l = strlen( x ); + } + + + l += ft.read( & x[ l ], + 255 - l ); + + x[ l ] = 0; + + + if ( l < 1 ) + { + break; + } + + + c2pas( x ); + + f_msgtxt.write( x, 256 ); + } + + + ft.close(); + + msg.postDate.today(); + msg.postTime.now(); + + + HudsonMsgHdr hdr; + + + hdr = msg; // Conversion applied + + + hdr.startRec = word( startrec ); + hdr.numRecs = int( numrecs ); + + + f_msghdr.seek( index * sizeof( HudsonMsgHdr ) ); + f_msghdr.write( & hdr, + sizeof( hdr ) ); + + + strcpy( mtidx.to, msg.to ); + + c2pas( mtidx.to ); + + + f_msgtoidx.seek( index * sizeof( HudsonMsgToIdx ) ); + f_msgtoidx.write( & mtidx, + sizeof( mtidx ) ); + + f_msgidx.seek( index * sizeof( HudsonMsgIdx ) ); + f_msgidx.write( & midx, + sizeof( midx ) ); + + + writeInfo( minfo ); + + unlock(); + + flushCache(); + + + return msg.id; +} + + + +bool HudsonMsgBase::updateMsg( Message &msg ) +{ + HudsonMsgIdx midx; + HudsonMsgToIdx mtidx; + long index; + + + if ( msg.areaNum() < 1 || + msg.areaNum() > 200 ) + { + return FALSE; + } + + + index = findIdx( midx, + int( msg.id ), + msg.areaNum(), + 0 ); + + + if ( index < 0 ) + { + return FALSE; + } + + + HudsonMsgHdr hdr; + + + f_msghdr.seek( index * sizeof( hdr ) ); + + + if ( f_msghdr.read( & hdr, + sizeof( hdr ) ) != sizeof( hdr ) ) + { + return FALSE; + } + + + if ( ! lock() ) + { + return FALSE; + } + + hdr = msg; + + + f_msghdr.seek( index * sizeof( hdr ) ); + f_msghdr.write( & hdr, + sizeof( hdr ) ); + + + strcpy( mtidx.to, msg.to ); + + + if ( msg.attr & MSGATTR_RECEIVED ) + { + strcpy( mtidx.to, "* Received *" ); + } + + + if ( msg.attr & MSGATTR_DELETED ) + { + strcpy( mtidx.to, "* Deleted *" ); + } + + + c2pas( mtidx.to ); + + + f_msgtoidx.seek( index * sizeof( HudsonMsgToIdx ) ); + f_msgtoidx.write( & mtidx, + sizeof( mtidx ) ); + + unlock(); + + flushCache(); + + + return TRUE; +} + + + +bool HudsonMsgBase::deleteMsg( Message &msg ) +{ + HudsonMsgIdx midx; + HudsonMsgToIdx mtidx; + HudsonMsgInfo minfo; + long index; + + + if ( msg.areaNum() < 1 || + msg.areaNum() > 200 ) + { + return FALSE; + } + + + index = findIdx( midx, + int( msg.id ), + msg.areaNum(), + 0 ); + + + if ( index < 0 ) + { + return FALSE; + } + + + HudsonMsgHdr hdr; + + + f_msghdr.seek( index * sizeof( hdr ) ); + + + if ( f_msghdr.read( & hdr, + sizeof( hdr ) ) != sizeof( hdr ) ) + { + return FALSE; + } + + + if ( ! lock() ) + { + return FALSE; + } + + + msg.attr |= MSGATTR_DELETED; + hdr = msg; + + + f_msghdr.seek( index * sizeof( hdr ) ); + f_msghdr.write( & hdr, + sizeof( hdr ) ); + + + strcpy( mtidx.to, "* Deleted *" ); + + c2pas( mtidx.to ); + + + f_msgtoidx.seek( index * sizeof( HudsonMsgToIdx ) ); + f_msgtoidx.write( & mtidx, + sizeof( mtidx ) ); + + + midx.num = -1; + + + f_msgidx.seek( index * 3 ); + f_msgidx.write( & midx, 3 ); + + readInfo( minfo ); + + + minfo.total--; + + minfo.active[ msg.areaNum() - 1 ]--; + + + writeInfo( minfo ); + + unlock(); + + flushCache(); + + + return TRUE; +} + + + +bool HudsonMsgBase::lock() +{ + static bool lock_error = FALSE; + + + if ( lock_error ) + { + return FALSE; + } + + f_msghdr.flush(); + f_msgtxt.flush(); + f_msginfo.flush(); + f_msgtoidx.flush(); + f_msgidx.flush(); + + + if ( ! cfg.multiline ) + { + return TRUE; + } + + + if ( ! f_msginfo.lock( 407, 1 ) ) + { + int errno = f_msginfo.error(); + + + lock_error = TRUE; + + fatalerror( form( "FILE LOCK ERROR (%d - %s)", + errno, + dos_error_message( errno ) ) ); + + return FALSE; + } + + + return TRUE; +} + + + +bool HudsonMsgBase::unlock() +{ + static bool lock_error = FALSE; + + + if ( lock_error ) + { + return FALSE; + } + + + f_msghdr.flush(); + f_msgtxt.flush(); + f_msginfo.flush(); + f_msgtoidx.flush(); + f_msgidx.flush(); + + + if ( ! cfg.multiline ) + { + return TRUE; + } + + + if ( ! f_msginfo.unlock( 407, 1 ) ) + { + int errno = f_msginfo.error(); + + + lock_error = TRUE; + + fatalerror( form( "FILE UNLOCK ERROR (%d - %s)", + errno, + dos_error_message( errno ) ) ); + } + + + return TRUE; +} + + + +long HudsonMsgBase::lastRead( MsgArea &ma, + long rec ) +{ + readLastRead( rec ); + + + if ( ma.areaNum < 1 || + ma.areaNum > 200 ) + { + return 0; + } + + + return long( lastReadArray[ ma.areaNum - 1 ] ); +} + + + +void HudsonMsgBase::setLastRead( MsgArea &ma, + long rec, + long num ) +{ + File f; + + + readLastRead( rec ); + + + if ( ! f.open( FileName( cfg.msgpath, + "LASTREAD.BBS" ), + fmode_rw | fmode_copen ) ) + { + return; + } + + + if ( f.len() < ( rec + 1 ) * 400 ) + { + word n = 0; + long r = f.len() / 400 * 400; + + f.seek( r ); + + + for( ; r < ( rec + 1 ) * 400; r += 2 ) + { + f.write( & n, 2 ); + } + } + + + if ( ma.areaNum < 1 || + ma.areaNum > 200 ) + { + return; + } + + + long pos = rec * 400 + ( ma.areaNum - 1 ) * 2; + + + f.seek( pos ); + + f.write( & num, 2 ); + + + lastReadArray[ ma.areaNum - 1 ] = int( num ); +} + + + +void HudsonMsgBase::readLastRead( long recno ) +{ + static dword ticks = clockticks(); + + + if ( clockdiff( ticks ) > 1000 ) + { + ticks = clockticks(); + + flushCache(); + } + + + if ( lastReadArray && + recno == lastReadRecord ) + { + return; + } + + + if ( lastReadArray == NULL ) + { + lastReadArray = new int[ 200 ]; + + memset( lastReadArray, + 0, + 400 ); + } + + + lastReadRecord = recno; + + + File f; + + + if ( ! f.open( FileName( cfg.msgpath, + "LASTREAD.BBS" ) ) ) + { + return; + } + + + f.seek( recno * 400 ); + + + if ( f.read( lastReadArray, 400 ) != 400 ) + { + lastReadRecord = -1; + + memset( lastReadArray, + 0, + 400 ); + } +} diff --git a/HUDSON.OBJ b/HUDSON.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..d73fe92834786db711a428fb860422f1cbb58b9c GIT binary patch literal 15493 zcmcgz3w)HtwV!?DK@vg|ArH{7ND`hRB*-g(3xrKjNMZ;B+t$R8Y#`T=#C?GlLU6qy z%PK{G7Q{=h*!r_xZ+~s{=VPlaH?>QG?QWvp-g~icsaIK&i8Y^^N|>f73Oc4ZSnCReXpw#2Zu)!JOw(qLFO zZ=RuO!J=zjafE!PBfGoe33*miU9zkzfskt;2MDMOaVdL_E+8biY)i@Jit^g(_1miT z>ncjt$JLgssa~V!kJ`1HH|vn%OG>LMwp0#3l|W|q&(Z2ME0HU^MWc_?{E_7diBHfZ zcTXmhjAdN7O|~6t>ueSy(Qe$>T|j2UfOpw;lsk6iJ+Nyj2-jFGbr73fJa)~^GKCmRlv6~FW=jjB zm+IRr7T7>@6NaDH-)(KOV~|?*I2|@<#9>0676!=_kcK8(-S%e7T1R7}g`3tC0k^cM z!BQjj&8;>tb&|<~thJ5F!1Qp~z;vR3HnlX_8Bq=|me=jF81uH*Gt*_1_C@wZP@%dB z;Fi|ijBt`D-{2wQ4yK?wg;sQr`cuM1xp148HS3ht+TgcY-?*9+ZKq?x)THr~$ZyBh$kEmSo05rzMmwjI`^F`%Yr}kLP!n6H5zCQ95O;2j`nLMImQ8g{ z&9H<;h0^$LXlbzQaoEgRkfsoI=Ec-u6CCWTEqgEl(IY}0STUT-cc+k3N9Lf?t>afx zRA{bEBcC3b4%+M(TG=Z(`}4@nM{WT{W(_VPN1;Ka>gimn} zB}0Vq7|65qEFr@;Advh6A%Sswwy~+DVMD_nD6E(i05ml`au1%?vO#7El-qxGNU0T?z2&W6plMS4i6&mo@D_JZVt9mIYU$G_e|K+vuvfJmTtgxDtwibp{4`olybVZEYKkpaeZ z!kBIv(~+vKzS659_K89Rsht|GtFI=hn-p{%d>m>f6?B!(6F(K~$5X0j0=g4;;o$SU zC)}l4QT(=4MHb;I4B<4z?#Ut{oNGh8T3BKz~VYQU^w4)2kcPjNh0n3;J87nMPe3WGb{! zFro?XXhpxoC~8#IK5(vssJQ1uW&6pAYSQnbS%Ej{+Q18RPT&|)Cz1oH0ckVf3y~(# zwZ2Q$JsSU`be;bIo#$^uszoYCT1Dsi76R#;UEQPir_pu)#=VQ44H`yAty_*-x5((p z%H^m#7I<~f=BT?4cxfD^uFX+*4)AGe?bT)gyg`jOdNridV@irU4iA$e+?>l7?>T$; zt%5@dPgNH6d>%H}o4{(v$4!emIF~Oa24XgQwW5)u<2LeU137->&s9=WrEGu%uq^_$|O-h;5DJ@d@cn;%~cXJcdCR4;=~AX`50maL=aa-h^=FY6%avuB0~IX z3~^H2GZCCuh2sv;H6%P!!g22FwrXX6Cj;OBnIFWYD%A>_V=s^bH+P2&sF#4xF(7k_ z3<&3kdIy;=gcB^C{FEp&XUNd-ehkf=AuGb}SdlqHMm5_tFLDPlj|FlE^zEM;mRDsKn3F zD=@0g%SlvVRDF??rogEBHOHX9q^XoPDli5agY8Ik#gaVp0@i(pO0)9}uaM*(u~4z1 zmKP&Er&Qxm>C{(9rDCy%4`N(8_D_qmO%VL14QjjNShlNl8k@$<=SUvQY|ix>go{x? zUA{y&4Y^IDVP`1p9F-Pd;nL!{!;|)PlEd3p(3Ozuy_JBX=)KA+PS1HBan&La#ibmjcRV8gZM3!_JYg zb2wHe<{`&ZtYEBSm))jIVdv$r^ODSjJK^}a8}XPumd8c6X(;Tx7Cd#S~T!4bmhQdx@6!!{I17u7G2ptN|*Ha(!%~1sj>ekUD5j}yhs1n z0cZrE3V<>OSPH-l04CBEr^C$gT%k(>KcNc(-$8ne8Uqgk(aI1t03Zk&xC4M$3^1K8 z@&A!#&SYDhYsqs-rI#RmLMk&KGhLH+3u&^vcc}2gWAH{5{^A(?CKdkt82mOB{+t3| z>D6lCKG-y81EM%cU^~LyjxKndz_Z855}-8AGWY8FQ%|v61+0 zGFS&|#~Jo%oXCm!@85uC@LL`+g;edZZdcd?+k2@7UH}whEC7n(6adB0nazBrO3fe) z0d<(C@FbMI`+GK)zS?%(Srm^;$MXY2M>Uy`b^b$0Ug8i7A#md!fIuUOeIqK)dive( z{^7CCwvg`Z63+K8)bVt-C^&nMYS^*|zat+)(KrBN;*K#)7D`Z>DmL(75O#j;#K&Y{ zm>LGo(Y%2^x_aQbYRy0!(p^ZINP0S_|4&Hgklsb=LHa?p2EOTz{!Sz(QX>*YDh2!w z{N^J~L5iby1U^Ojh^C!B$9&KGbW-3H(sz)$kai($pmPIxbgn;ybQY-_>2W&W*G1FM zJVMibY+vPn0DzqUGyrfP1Ka~Z82}{!7#Uy@0J8ze1Hixl=>Q}Gpa*~epgpOB!<)pq zE2b}8z9c^QpVNDyv&OF*!%ecJ14BMSPidHgiVlgw0@0|eJ&o+o-5c*}PbId@Q{k}3 zl;)wSSI%DfB?5|WQ<|HmQpEt9%^0v$OyN=4<`CwC&8502+s?S!uaW)fjNMgYoA5?B z>L3b$%DBQH&7K3P5G*E}^>i{A6TDZ)Nge0fvMEC>l4yhi8B@Hn_tZxXw9 z@S6fH1Wi4k^eGIH+xJ%NBun+dhr%_IWwUwIckodX4&&z#egvRP06Harul6BC>;#hK zdrP(4oBpjKEzwvs{3gnZ_?)y>^H5TxFuaFo&RBRgEmo*0AF^v|u z69%7_I@~p+r&~SFR8MVM_V_k@O9qc5*JG9AR2PO_%CQ{FTc3lK48C%z# zq}?R*UA}Z*R&uzVM=L!CS>w+u7dnYi%v+9Dk!w;!U6ZAhOE)(c!D7HVpw6en38^$u~uQksS^8-l;T9$Xie&F?pVHk&2Kc;z8R5hBZQ%YPwD%)GMYVdnfIWD>e-~6N{ahHeIkZ?CA}@8d8kdd@bFoT3QvmJ@D@9 zd_F`-U*~iD`67S5z@Odx`F;L;g+E{B&o}tf%b%zC^GEDy;*U{6ibjI(YP>kPL#1C_ z=Ut<2a#bF&>w>RpGR-F}WZ)7l7}$p`)eL%P{~(TZ{{a{CL%5h1Xkz~pbV9$CCij;E zRtVS(xR>`4!+x7C4E&fb4!CF%PH6?$5#{;+ho<-gbhiInNQY^XzYy?rzzI!B;qE4j zizAJMkS*7%m-hTvijsTmQ)MuY`kYXJb-^9NGNaz{^JX*OJH&Vf^fa5ty5KDu*wpb# zPw$)Yr0U8brikwBHWspE5A7k-2tq-g-Z$dOl?yU1L0K*cFNKg-ugmhqO9#Bu*uJpt z&h@Hfcg#H0`78_(p{N{=id9(`^bi$)*M2?OyJvp_4qjS~vsHx)FU|EfY9mc2_1G&q zPE~}6qYUe(r}M>-=jaO|cW3`~_fh|K4tgG-=K%T{KxeLpU;B1Q>enPll&;XkYz8-t zNp_ya&Qw_QtdJ+#OAGNWDx%Us_wTeoMbu>Iz#qe!tQaffhxG+6v%Y8mwXwy z?5RSjgpO02LON_Tut~dG&}$59cys$Fa21Ms_dTYXSL!t^7$njLW|&U_HCEWd0M?XY z%|0C#jgIyajrA5h&+Nut1x9e#bWLZv>N$&8VptmDV?>z8SUnxu!LM_(dKL@naW`e5 zEstp^*>uqnU-Vv4&tR?ybcvcGVCAbB;fhM}P_rpw0 zM*jev+W!cAO(T5GT{OFYI!z6HOs67xy)JN^<^&F+d>73=Ngd1^e zo8|ip=(CkyWxz8OxU<5Yxrp(wqm|^u-u?Y!M{`5Ew>)Q;gvF(Ash&rC6*OI@5SBO` zP52g8abk&VVfoqugW<*u|8bCSyQP7W0yT~Tbswkk6H;U_rNKF_MN?Q4c~gqzFw&GX zgR#-1*F2`HpR=^~nMT-}GR&3}SY)zk#IdMjHN37}-_3%Pj;A0g-eZ6@)QrjwDM?X6 z+~SfqOy>0p63>5PVU5}o+%bcAF84lMGfG?`wk9uD)t1(FFlU}zp$w|Z3vqCJILeX* zN|Jc&SQRK$TrILb>%1u>&j1uMBLy+8OoHo`spnt%1FRYy8LBUlBYcCs#kEax`PL6M2%9)DIIfew8clm zqIcE45uKoz;KP^3OmG;VyqjElSqeUt^10$RU3AkS)tJzWaD;;-x`RD0?f#`XG`{PJ z>n6d=Y|U5AHyldFZfNu2fs}ED$c7dyet^K2DG(iS(>rpWchj{^C!S+5rG*3M>0-pV zvj)C_v=8ZP@KC8VAMvC-#FJ9`{m8$B{7K|JxL#{V{CfvrcLTNpFg-RzICBLq(A%&< zS`;{g3;k}IANVG2)*LvSZKcHsA1yn5C&D|Y7iMZE2X4Y?O-mE~Lp0g{2RhUL7MJ~5lSHHy$_yH;hVH@4}e@X%ktro)(YH?rwr7R+55aa<^@h!m7M|K&*8!{a$A z7Aa%4@Yv_r$pieg7R7ye#B9Ja_56(A{nchOt|+r9b_!E_6N?yNu)Tva(7 z(kh(qX2WGoqbpBmFh_KmuJi?2=54yt|1ttdN3pB=N9?MWV23po`3W@TBkrAMvKIlx z4uP4^TRg<2SpUR5hGHEb=VBvfH4_wy#R*pdgdFZEIH`~0J4`($;a9Nb!COQu&TvfH z`D`C^W#(AOH>bPz^y0NU4HZjIRVB^!1|kQ|Bq^eZ{w9NrGZAn6K`Fex$>+qW|1YKJ z7gB0|L@AA0sgK7~Dxwe~8wkz|=k_$-cV%}$Y+*$(&x(^>Qo(^c&k(0Lx8$&L^k(Uq zhl%QH$u+b9F84ioQ5}yn<`=v6ly7Nun(=RO-Sn#4G~%lnVF4>7ZImzH0$({ht;dMB z4!{nW=*=DuaKw%o6%``5l`Z-anLOobo|;tGPc^Q0nU%bUSU4YkcH}}d@kz2bq4*ud z5}viYmLI<`4((*;O_R}XN%8KuWQZ!nj=egM!#_K^7S zZR-WCiw+T`NKt``>CpZ@2VzMVcK3`O4tALmk!a8%SVSxHVPdy*x}Un>-~gR?dN0c~(ix}M(Db*9 zX?kEWH3ViNWguw~{JumDzF&dJ@1tq{H|TWVYpn1+I??xCmU*1s>TAXoTq8}#yOsvL zYiYo{mInWPq-m%c52BWn?`t%l&GKY6>%XHX?o2ItR!=SgB)lem50+kRwPiv_ zQS6NmUXFGHtGe<5Eb_uMpX><8r+6q%yQ~E_TEH-$m1i;RhW}^L+gxv&YQl~PB9{+0 ze!~dV`f4sKCalClIbqqU7R)2{aOZc4*qJp)+8b;Kji)@tQ@8Rgw_`QD8?a@#7|zAr zFTp+S6&T5%a8LUQvzlMwjodfsYX6gToo@pGzV+;p#vUo`F@Zhe@Ob&;42_nBEcw6u zg@p|(*n_agZIK6Afxp}M-=@u_WhGS$)~?-5kgeWU9m!T~DA^_#l-Y7q1qZKZp9~u6 z@mYf%UsxH$M+}Bt;=2?BzFx9$j+-hGC)iN3!cb{#UE5k`Z7>urC@eIT<=0P4B6AH@ zmU>H*)6!s=i$V$ihA1{~+OToGVPnO*yAA8Bsw%1sv-2Aaw;A$na|p+5DIXWNan0uH zs`YD1xU8yz<>Wo22P-YUG9maBh2V1)@)m!1Xl?c9SBKQo7;Jc~FzcqL*(qC5Hqw|+k_h|h_+=#72T86Y3X(7^lq}fP$ zNCu>vk+P8{Bf;hPQ;-so^hl&yV>_8adN7pia}Jt@n*#Qd#cvo;7X$n?(?=f>1V6Yoz%NsmOTd*V7z z7LuMgE_?Jl4*N7doA5Ep_#Z-SJCQ`t##-MLyoUb4$yCyV^#EPMc1`#Ge3SuDHv;%` X7p@x5YZM +#include "proboard.hpp" +#include + +void +screen_image() +{ + File fp(form("%sIMAGE.TXT",syspath),fmode_write | + fmode_text | + fmode_copen | + fmode_append ); + + if(!fp.opened()) return; + + String line; + + for(int y=SCREEN.minY;y<=SCREEN.maxY;y++) + { + int lastchar = 0; + + line = ""; + + for(int x=SCREEN.minX;x<=SCREEN.maxX;x++) + { + char c = tsw_whaton(x,y); + + if(c!=' ') lastchar = x-SCREEN.minX+1; + + line << c; + } + + line << "\n\n"; + + line[lastchar] = '\n'; + line[lastchar+1] = '\0'; + + fp.printf("%s",(char *)line); + } +} + + diff --git a/IMAGE.HPP b/IMAGE.HPP new file mode 100644 index 0000000..08ae74b --- /dev/null +++ b/IMAGE.HPP @@ -0,0 +1,336 @@ +BYTE IMAGEDATA [] = { + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ú', 0x0C, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, + 'Ü', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, 'ú', 0x0C, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'Ü', 0x0F, 'ß', 0x7F, 'ß', 0x7F, 'ß', 0x7F, 'Ü', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0C, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, 'Ü', 0x0F, 'ß', 0x7F, ' ', 0x7F, 'þ', 0x7E, ' ', 0x7E, + ' ', 0x7E, 'þ', 0x7E, ' ', 0x7E, 'ß', 0x7F, 'Ü', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, 'ú', 0x0C, ' ', 0x0C, ' ', 0x0C, ' ', 0x0C, + ' ', 0x0C, 'Ü', 0x0F, 'ß', 0x7F, 'ß', 0x7F, 'ß', 0x7F, 'Ü', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'Ü', 0x0F, + 'Ü', 0x0F, 'Û', 0x0F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Û', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, + 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, + 'Û', 0x0F, 'Û', 0x0F, 'Û', 0x0F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Û', 0x0F, 'Û', 0x0F, 'Û', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, + 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, 'Ü', 0x0F, + 'Ü', 0x0F, 'Ü', 0x0F, 'Û', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Û', 0x7F, 'Ü', 0x0F, 'Ü', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'Ü', 0x0F, + 'ß', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, + ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, + ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, + ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, + ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, + ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, + ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, + ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, + ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, + ' ', 0x7F, 'ß', 0x7F, 'Ü', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, 'ú', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'Û', 0x0F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Û', 0x7F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ß', 0x0F, 'Ü', 0x7F, ' ', 0x7F, 'ß', 0x7F, 'Ü', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0C, ' ', 0x0C, ' ', 0x0C, + 'ß', 0x0F, 'ß', 0x0F, 'ß', 0x0F, 'Ü', 0x7F, ' ', 0x7F, ' ', 0x7F, + 'þ', 0x7E, ' ', 0x7E, ' ', 0x7E, 'þ', 0x7E, ' ', 0x7E, ' ', 0x7E, + 'Ü', 0x7F, 'ß', 0x0F, 'ß', 0x0F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ú', 0x0C, ' ', 0x0C, ' ', 0x0C, ' ', 0x0C, ' ', 0x0C, 'Ü', 0x0F, + 'ß', 0x7F, ' ', 0x7F, 'Ü', 0x7F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ú', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ß', 0x0F, 'Ü', 0x7F, + ' ', 0x7F, 'ß', 0x7F, 'Ü', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ú', 0x0C, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ß', 0x0F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, 'ú', 0x0C, ' ', 0x0C, ' ', 0x0C, ' ', 0x0C, 'Ü', 0x0F, + 'ß', 0x7F, ' ', 0x7F, 'Ü', 0x7F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, 'ú', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, 'ú', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, 'ß', 0x0F, 'Ü', 0x7F, ' ', 0x7F, 'ß', 0x7F, + 'Ü', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, 'Û', 0x7F, 'ß', 0x7F, 'ß', 0x4F, 'ß', 0x7F, + 'ß', 0x7F, 'ß', 0x4F, 'ß', 0x7F, 'Û', 0x7F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'Ü', 0x0F, + 'ß', 0x7F, ' ', 0x7F, 'Ü', 0x7F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0F, ' ', 0x0F, + 'ß', 0x0F, 'Ü', 0x7F, ' ', 0x7F, 'ß', 0x7F, 'Ü', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ß', 0x0F, 'Û', 0x7F, + 'ß', 0x7F, 'ß', 0x7F, 'ß', 0x7F, 'ß', 0x7F, 'Û', 0x7F, 'ß', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'Ü', 0x0F, + 'ß', 0x7F, ' ', 0x7F, 'Ü', 0x7F, 'ß', 0x0F, ' ', 0x0F, 'ú', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ß', 0x0F, 'Ü', 0x7F, + ' ', 0x7F, 'ß', 0x7F, 'Ü', 0x0F, ' ', 0x0F, ' ', 0x0F, 'Ü', 0x0F, + 'Ü', 0x0F, 'ß', 0x7F, 'ß', 0x7F, 'ß', 0x7F, 'ß', 0x7F, 'ß', 0x7F, + 'ß', 0x7F, 'Ü', 0x0F, 'Ü', 0x0F, ' ', 0x0F, ' ', 0x0F, 'Ü', 0x0F, + 'ß', 0x7F, ' ', 0x7F, 'Ü', 0x7F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, 'ú', 0x0D, ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, + ' ', 0x0D, 'ú', 0x0D, ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, + 'ú', 0x0D, ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, 'ú', 0x0D, + ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, 'ú', 0x0D, ' ', 0x0D, ' ', 0x0D, + ' ', 0x0D, 'ú', 0x0D, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, 'ß', 0x0F, 'Ü', 0x7F, ' ', 0x7F, 'Û', 0x0F, + 'ß', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, + 'Ü', 0x7F, 'Ü', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, 'ß', 0x7F, + 'Û', 0x0F, ' ', 0x7F, 'Ü', 0x7F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0D, ' ', 0x0D, + ' ', 0x0D, ' ', 0x0D, 'ú', 0x0D, ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, + 'ú', 0x0D, ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, 'ú', 0x0D, + ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, ' ', 0x0D, 'ú', 0x0D, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'Û', 0x7F, ' ', 0x7F, ' ', 0x7F, 'Ü', 0x7F, 'ß', 0x3F, 'ß', 0x3F, + ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, 'ß', 0x3F, 'ß', 0x3F, + 'Ü', 0x7F, ' ', 0x7F, ' ', 0x7F, 'Û', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ú', 0x0E, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, 'Û', 0x0F, ' ', 0x7F, ' ', 0x7F, 'Û', 0x7F, ' ', 0x3F, + ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, + ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, 'Û', 0x7F, ' ', 0x7F, ' ', 0x7F, + 'Û', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, 'ú', 0x0E, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, 'ú', 0x0E, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ß', 0x0F, 'Ü', 0x7F, ' ', 0x7F, + 'ß', 0x7F, 'Ü', 0x3F, ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, + ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, ' ', 0x3F, 'Ü', 0x3F, 'ß', 0x7F, + ' ', 0x7F, 'Ü', 0x7F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0E, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0E, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, 'ú', 0x0B, ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, + 'ß', 0x0F, 'Ü', 0x7F, ' ', 0x7F, ' ', 0x7F, 'ß', 0x7F, 'ß', 0x7F, + 'Ü', 0x3F, 'Ü', 0x3F, 'Ü', 0x3F, 'Ü', 0x3F, 'ß', 0x7F, 'ß', 0x7F, + ' ', 0x7F, ' ', 0x7F, 'Ü', 0x7F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, 'ú', 0x0B, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0E, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ú', 0x0E, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ú', 0x0B, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ß', 0x0F, 'Ü', 0x7F, + 'Ü', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, ' ', 0x7F, + ' ', 0x7F, 'Ü', 0x7F, 'Ü', 0x7F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, 'ú', 0x0B, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ú', 0x0E, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ú', 0x0B, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'ß', 0x0F, 'ß', 0x0F, 'ß', 0x0F, + 'ß', 0x0F, 'ß', 0x0F, 'ß', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + 'ú', 0x0B, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0B, 'Ü', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + ' ', 0x0B, 'Ü', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, 'Ü', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, 'Ü', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, 'Ü', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Ü', 0x0B, ' ', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Ü', 0x0B, + ' ', 0x0B, 'Þ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Ý', 0x0B, ' ', 0x0B, + 'Ü', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + 'Ü', 0x0B, ' ', 0x0B, 'Ü', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Ü', 0x0B, 'Ü', 0x0B, 'Ü', 0x0B, + 'Ü', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, + ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, ' ', 0x0B, + ' ', 0x0B, 'Þ', 0x0B, 'Û', 0x0B, 'Ý', 0x0B, ' ', 0x0B, ' ', 0x0B, + ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Ü', 0x0B, 'Ü', 0x0B, 'Ü', 0x0B, + 'Ü', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, + ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, 'Ü', 0x0B, 'Ü', 0x0B, 'Ü', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Ü', 0x0B, 'Ü', 0x0B, + 'Ü', 0x0B, 'Ü', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + 'Ü', 0x0B, 'Ü', 0x0B, 'Ü', 0x0B, 'Ü', 0x0B, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'ß', 0x0B, + 'ß', 0x0B, 'ß', 0x0B, 'ß', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Þ', 0x0B, 'Û', 0x0B, 'Ý', 0x0B, + ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'ß', 0x0B, + 'ß', 0x0B, 'ß', 0x0B, 'ß', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, + ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'ß', 0x0B, 'ß', 0x0B, 'ß', 0x0B, + 'ß', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, 'ß', 0x0B, + 'ß', 0x0B, 'ß', 0x0B, 'ß', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'ß', 0x0B, 'ß', 0x0B, 'ß', 0x0B, 'ß', 0x0B, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0B, 'ß', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, 'Þ', 0x0B, + 'Û', 0x0B, 'Ý', 0x0B, ' ', 0x0B, ' ', 0x0B, ' ', 0x0B, 'ß', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, ' ', 0x0B, 'ß', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, 'Û', 0x0B, + 'Û', 0x0B, ' ', 0x0B, ' ', 0x0B, 'ß', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + ' ', 0x0B, 'Þ', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Ý', 0x0B, ' ', 0x0B, + 'ß', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + 'ß', 0x0B, ' ', 0x0B, 'ß', 0x0B, 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, + 'Û', 0x0B, 'Û', 0x0B, 'Û', 0x0B, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, ' ', 0x0F, + ' ', 0x0F, ' ', 0x0F}; + diff --git a/IMAGE.OBJ b/IMAGE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..7470cdc82b6719ecadfdc9be4750c1789cfb4834 GIT binary patch literal 894 zcmZ8g-%C?r7=FKV+z~1|bYVkTbWP6;uv)c63BL9?y<$Ft>TmasIei zf)LADbP*w9U>6oqmj$~tIM_w=KM3!HOrcAc4A*xyW7@^{@xIUdJkR@ne7uWhXiiM= zlcGz=WXk!=0MNmB``nJfw3OsiF^9LO$I_P;Ix^Q&2 z9h!8gqD26D12V7a!B{1#WO&7b3|z=N?DszeGpES2+-#gz(kU=<^1Phkl{lCwI*}AT zlE_mNaEao=vM5nWURFXPFA4EbMijt$3S*5gA%TUONJ~@B>D1hUAVPc1fXYaTlrr%T zY^j4nGA)bF=`1$Zx=_w>L6Pd58F@yAHY%iG-6Sp~<+yWtLBMwBA+5<-ke4Ux2GH7I z#x&RLS)|q{i(ls)kBLbFvD`3iTof3%@2HwN| zEBHp20qjK!X!_G4wkxf0{DM9qqm}OM0D@}vq?)bRi>)<&WA;G*z(;sO?hDl-ao$Sb zcw;2OMGJe6zpt)8f*mW{yaQ~D`rC$3X^%CkKROUm`odb&PdHHDY4AF0R#&uOo+VUC z3lgkV9n +#include +#include "proboard.hpp" + + + +//---------------------------------------------------------------- +// +// This table identifies where the slashes should be in the date +// strings. This supports each of the international date formats: +// +// MM/DD/YYYY +// YYYY/MM/DD +// DD/MM/YYYY +// +//---------------------------------------------------------------- + +static +const char piSlashColumns[ 3 ] [ 2 ] = +{ + { 2, 5 }, + { 4, 7 }, + { 2, 5 }, +}; + + + +//************************************************************************** +// +// Input a date value from the user +// +// Prototype: void InputDate( Date &d ); +// +// Parameters: d ... Date variable to fill-in +// iDateFormat ... Format of date to be entered +// +// Returns: None +// +// Remarks: +// +// This code has to be changed to support the various international formats: +// +// MM/DD/YYYY +// YYYY/MM/DD +// DD/MM/YYYY +// +// ------------------------------------------------------------------------- +// +// Created on: ??/??/?? (Philippe Leybaert) +// Last modified: 06/17/99 (Jeff Reeder) +// +//************************************************************************** + +void InputDate( Date &d, + byte iDateFormat ) // JDR: Added +{ + char s[ MAX_DATE_FIELD_SIZE + 1 ]; + byte k; + + + //------------------------------------------- + // Show a MAX_DATE_FIELD_SIZE-character field + //------------------------------------------- + + io.drawfield( MAX_DATE_FIELD_SIZE ); + + + int i = 0; + + + //------------------------------ + // Keep looping until we're done + //------------------------------ + + loop + { + //------------------------------------- + // Wait until the user enters something + //------------------------------------- + + k = io.wait(); + + + //----------------- + // What do we have? + //----------------- + + if ( + ( + ! isdigit( k ) and + k != CR and + k != BS + ) + or k > 0x7F // This check isn't needed, but better safe + ) + { + //---------------------------------------------- + // If it's not a digit, CR or a BS, we ignore it + //---------------------------------------------- + + continue; + } + + + if ( k == BS ) + { + //---------------------------------- + // We got a backspace (BS) character + //---------------------------------- + + if ( i > 0 ) + { + //------------------------------------- + // We have characters to backspace over + //------------------------------------- + + i--; + + + //------------------------------------------- + // Erase the previous character - destructive + // backspace just to be on the cautious side. + //------------------------------------------- + + io << "\b \b"; + + + if ( i == piSlashColumns[ iDateFormat ][ 0 ] or + i == piSlashColumns[ iDateFormat ][ 1 ] ) + { + //----------------------------------------- + // We ran over a slash/delimiter. Erase it + //----------------------------------------- + + i--; + + io << "\b \b"; + } + } + + + continue; + } + + + if ( k == CR ) + { + if ( i == 0 ) + { + //------------------------------------- + // We haven't entered anything. Choose + // the default date, Jan 1, 1900 + //------------------------------------- + + d.set( 0, 0, 0 ); + + break; + } + + + if ( i != MAX_DATE_FIELD_SIZE ) + { + //---------------------------------------------------- + // We haven't maxed out our field size. Ignore the CR + //---------------------------------------------------- + + continue; + } + else + { + //----------------------------------------- + // We have filled our date field. Let's + // parse the date information appropriately + //----------------------------------------- + + parse_date( d, + s, + user.dateFormat ); + + + if ( d.ok() ) + { + //------------------------------------------------- + // The date has legitimate values. Alright to quit + //------------------------------------------------- + + break; + } + else + { + //-------------------------------------------- + // The data was bogus. Keep reading more data + //-------------------------------------------- + + continue; + } + } + } + + + if ( i == MAX_DATE_FIELD_SIZE ) + { + //----------------------------------------------- + // We're at the maximum field size. Ignore input + //----------------------------------------------- + + continue; + } + + + //----------------------------------------------------------- + // Assign the current character at the current input position + //----------------------------------------------------------- + + s[ i++ ] = k; + + + //----------------------------- + // Output the current character + //----------------------------- + + io << k; + + + if ( i == piSlashColumns[ iDateFormat ][ 0 ] or + i == piSlashColumns[ iDateFormat ][ 1 ] ) + { + //--------------------------------------------------- + // We've moved to a slash position. Insert the slash + // automatically, and move to the next digit location + //--------------------------------------------------- + + s[ i++ ] = '/'; + + io << '/'; + } + } + + + //------------------------------------------------------------ + // We're all done with our date. Output a carriage return and + // make sure our buffer is NUL terminated before continuing. + //------------------------------------------------------------ + + io << '\r'; + + s[ i ] = '\0'; + + + if ( avatar ) + { + //--------------------------------------------------------------- + // We're in Avatar mode. Reset our screen attributes accordingly + //--------------------------------------------------------------- + + io << char( 22 ) + << char( 1 ) + << char( SCREEN.attrib() & 0x0F ); + } + else if ( ansi_mode ) + { + //------------------------------------------------------------- + // We're in ANSI mode. Make sure we reset the background color + //------------------------------------------------------------- + + io << "\x1b[40m"; + } + + + //------------------------------------- + // Flush all output to the user's modem + //------------------------------------- + + io.flush(); +} diff --git a/INPDATE.OBJ b/INPDATE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..304729e56ffe471aa57eda9424bd0b051b17cb02 GIT binary patch literal 1177 zcmZ`(OK1~O6uobfnS^{Q))rj1DGKp-+{CR z;5)V>g{9A|WAt__fa6G);A;>0rI5cbWbW+t`B@3`cJnWgI)XtHF3xwTw>vC6owUHN zPlPd%qZl1_fte*gXavAni2W`H)-qEzg|B^qEqp>wYKlZh^$wri=fi#Id_)D4q{e}j z3{6Rbn;(d4ni^B%d^9PK45&&h>K#_WRpGs-W7?p17^Sf39~Q}t6>>yYb?MPVh z%%JKN*!h4OQ`(b?%n!h3UJB#u`IxNfK}AkR27?JD0?u_>JE!^7Bv_YbIcugO~593BcsRMZLa?LED3i#wL{gHHx+P2A62f#AL#SQcu#sZun%TVGZXGp%;opsX#%jn&|9acz`H@1 zCBm$`w!QbyeN>{-&UJ&a_sp8UzHz?pucNNMypt0jPCTEw_YewiMQiSjn=pkJBAd%& zkbCArc~?ChQ8Z_r r7&xXIfB|4wvxQ-;9xKqb?byEEXJI_;0{BF#|3BkX`@54F?ALz+(RO +#include +#include +#include +#include +#include +#include +#include "desqview.hpp" +#include "proboard.hpp" +#include "fossil.hpp" + +static String align_string(char *s , int width , int alignment); + +static void near +nocarrier() +{ + if(ignore_carrier) return; + + dword ticks = clockticks(); + + for(;clockdiff(ticks)<10;) // Check for 1/2 second + { + msleep(100); + + if(fos_carrier(io.port)) return; + } + + LOG("Carrier lost!"); + + exit_proboard(); +} + +static byte conversion[256]; + +void +fossilio::init(int p,long b) +{ + byte baudcode; + + for(int i=0;i<256;i++) conversion[i]=i; + + conversion[(byte)'Ú']='+'; + conversion[(byte)'Ã']='+'; + conversion[(byte)'À']='+'; + conversion[(byte)'Â']='+'; + conversion[(byte)'Å']='+'; + conversion[(byte)'Á']='+'; + conversion[(byte)'¿']='+'; + conversion[(byte)'´']='+'; + conversion[(byte)'Ù']='+'; + conversion[(byte)'É']='+'; + conversion[(byte)'Ë']='+'; + conversion[(byte)'»']='+'; + conversion[(byte)'Ì']='+'; + conversion[(byte)'Î']='+'; + conversion[(byte)'¹']='+'; + conversion[(byte)'È']='+'; + conversion[(byte)'Ê']='+'; + conversion[(byte)'¼']='+'; + conversion[(byte)'Ö']='+'; + conversion[(byte)'Ò']='+'; + conversion[(byte)'·']='+'; + conversion[(byte)'Ç']='+'; + conversion[(byte)'×']='+'; + conversion[(byte)'¶']='+'; + conversion[(byte)'Ó']='+'; + conversion[(byte)'Ð']='+'; + conversion[(byte)'½']='+'; + conversion[(byte)'Õ']='+'; + conversion[(byte)'Ñ']='+'; + conversion[(byte)'¸']='+'; + conversion[(byte)'Æ']='+'; + conversion[(byte)'Ø']='+'; + conversion[(byte)'µ']='+'; + conversion[(byte)'Ô']='+'; + conversion[(byte)'Ï']='+'; + conversion[(byte)'¾']='+'; + conversion[(byte)'Í']='-'; + conversion[(byte)'Ä']='-'; + conversion[(byte)'³']='|'; + conversion[(byte)'º']='|'; + conversion[(byte)'Û']='#'; + conversion[(byte)'û']='*'; + conversion[(byte)'']='^'; + conversion[(byte)'']='v'; + conversion[(byte)'°']='#'; + conversion[(byte)'±']='#'; + conversion[(byte)'²']='#'; + + port=p; + baud=b; + stopenabled=0; + show_local = TRUE; + show_remote = TRUE; + more_func = NULLFUNC; + + inputbuffer.clear(); + + if(baud) + { + switch(baud) + { + case 300L: baudcode=0x43; break; + case 1200L: baudcode=0x83; break; + case 2400L: baudcode=0xA3; break; + case 4800L: baudcode=0xC3; break; + case 7200L: + case 9600L: baudcode=0xE3; break; + case 12000L: + case 14400L: + case 16800L: + case 19200L: baudcode=0x03; break; + default : baudcode=0x23; break; + } + + fos_init(port); + fos_setbps(port,baudcode); + fos_flowctl(port,2); + sleep(1); + } + + if(outputBuffer == NULL) + outputBuffer = new byte[cfg.IObuffersize]; + + bufferPtr = 0; + + SCREEN.disableCursor(); +} + +void +fossilio::clearinput() +{ + fos_purgeinput(port); +} + +fossilio::~fossilio() +{ + cooldown(); + + if(outputBuffer != NULL) + delete [] outputBuffer; +} + +void fossilio::cooldown() +{ + if(baud && baud != 65535L) + { + fos_purgeoutput(port); + fos_deinit(port); + sleep(1); + } +} + +void +fossilio::heatup() +{ + if(baud) + { + fos_init(port); + sleep(1); + } + + bufferPtr = 0; +} + +byte +fossilio::readkey() +{ + if(KB.hit()) + { + KEY key=KB.get(); + if(key>256) + { + sysopkey(key); + return 0; + } + else + { + external=0; + return (byte)key; + } + } + + static dword prevticks = 0; + + if(clockdiff(prevticks)>90) + { + static int inchatreq=0; + + prevticks = clockticks(); + + SCRAMBLE(); + + timer.check(); + + if(!access(form("%sDOWN.%d",syspath,node_number),0)) + { + io << S_SYSTEM_GOING_DOWN; + + LOG("Going down on external request"); + + File f; + f.open(form("%sISDOWN.%d",syspath,node_number),fmode_create|fmode_write); + f.close(); + + exit_proboard(100); + } + + if(!inchatreq && cfg.numnodes>1 && !chatflag) + { + user_online uo; + int cht=uo.check_chat(); + + if(cht) + { + inchatreq=1; + uo.read(cht); + io << "\n\n" << S_USER_REQUESTS_CHAT(uo.name,form("%d",cht)); + + if(ask(1)) + { + uo.setstatus(UO_CHATTING); + + io << "\n\n" << S_MULTILINE_CHAT_STARTED; + + multilinechat(cht); + + io << "\n\n" << S_MULTILINE_CHAT_ENDED << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + uo.setstatus(UO_BROWSING); + } + else + { + uo.setstatus(UO_BUSY); + } + + inchatreq=0; + } + } + } + + if(!baud) return 0; + + FOS_STATUS status = fos_status(port); + + if(!status_carrier(status)) nocarrier(); + + if(status_byteready(status)) + { + external = 1; + return fos_getch(port); + } + + return 0; +} + +void +fossilio::flush() +{ + SCREEN.placeCursor(); + + if(bufferPtr) + { + for(;;) + { + FOS_STATUS s = fos_status(port); + + if(!(s & FSTAT_CARRIER)) nocarrier(); + + word x = fos_sendblock(port,outputBuffer,bufferPtr); + + if(x >= bufferPtr) break; + + bufferPtr -= x; + + memmove( outputBuffer , &outputBuffer[x] , bufferPtr); + } + + bufferPtr = 0; + } +} + +fossilio& +fossilio::operator<<(char c) +{ + if(c=='\f' && !cls_mode && user_recnr>=0 && !SCREEN.inEscape()) return *this; + + if(c=='\f' && !SCREEN.inEscape()) + { + color(COLOR_WHITE); + linecounter(0); + } + + if(c=='\n' && !SCREEN.inEscape()) (*this) << '\r'; + + if(no_ibm) c=conversion[(byte)c]; + + if(byte(c) == byte(255)) + { + flush(); + + return *this; + } + + if(baud && show_remote) + { + if(cfg.IObuffersize == 1) + { + for(;;) + { + FOS_STATUS s = fos_status(port); + + if(!(s & FSTAT_CARRIER)) nocarrier(); + + if(s & FSTAT_BUFEMPTY) break; + } + + fos_send(port,c); + } + else + { + outputBuffer[bufferPtr++] = c; + + if(bufferPtr == cfg.IObuffersize) flush(); + } + } + + if(show_local) SCREEN << c; + + return *this; +} + +fossilio& +fossilio::operator<<(char *s) +{ + send(s); + + return *this; +} + +byte +fossilio::send(char *str,char *hotkeys) +{ + if(hotkeys) + strupr(hotkeys); + + for(;*str;str++) + { + byte c=0; + + if(SCREEN.inEscape()) + { + (*this) << (*str); + + continue; + } + + if(stopenabled || hotkeys) + c = toupper(readkey()); + + if(hotkeys && c) + if(strchr(hotkeys,c)) + { + return c; + } + + if(c=='S') + { + stopped = TRUE; + flush(); + + return 1; + } + + if(c=='P') + wait("P\r"); + + c = *str; + + if(c=='\t') + { + wait('\r'); + + continue; + } + + if(c == 26) + { + fullcolor(*(++str)); + continue; + } + + if(c<8 && c>0) + { + color(c); + + continue; + } + + if(c == 24 || c == 25) + { + int l = int(*(str+1)); + char *fname = new char[l+1]; + strncpy(fname,str+2,l); + fname[l] = '\0'; + + if(c == 24) + run_sdkfile(fname); + else + showansasc(fname); + + str += l+1; + + delete [] fname; + + continue; + } + + if(c<0x18 && c>0x10 && c!=0x16) + { + color((c-0x10)|0x80); + } + else + { + (*this) << c; + } + } + + return 0; +} + +#pragma warn -def + +const int ALIGN_LEFT = 0, + ALIGN_RIGHT = 1, + ALIGN_CENTER = 2; + +byte +fossilio::sendfile(char *fn,char *hotkeys) +{ +bool fflag = FALSE, + kflag = FALSE, + moreok = TRUE, + stopok = TRUE, + avt_compr = FALSE; + +int alignment = ALIGN_LEFT; + +String str; + +if(rip_mode && (!show_local || !show_remote)) +{ + moreok = FALSE; + stopok = FALSE; +} + +static char *on_string = "ON " , *off_string = "OFF"; + +int fieldwidth; +byte avt_compr_char = '\0'; + +File f(fn,fmode_read,1024); +if(!f.opened()) return 2; + +if(hotkeys) strupr(hotkeys); + +linecounter(0); +for(;;) + { + byte c=toupper(readkey()); + if(hotkeys && c) if(strchr(hotkeys,c)) + { + return c; + } + if(c=='S' && stopok) + { + stopped=1; + flush(); + return 1; + } + if(c=='P') wait("\rP"); + + int x=f.readByte(); + if(x<0) break; + + byte input=(byte)x; + + if(avt_compr) + { + if(fflag || kflag) + { + if(!avt_compr_char) + { + avt_compr_char = input; + } + else + { + if(avt_compr_char=='@' || avt_compr_char=='#' || avt_compr_char=='%') + { + fieldwidth += input; + + switch(avt_compr_char) + { + case '@': alignment = ALIGN_LEFT; break; + case '#': alignment = ALIGN_RIGHT; break; + case '%': alignment = ALIGN_CENTER; break; + } + } + avt_compr = FALSE; + } + } + else + { + avt_compr = FALSE; + + (*this) << char(25) << input; + } + + continue; + } + + if(SCREEN.inEscape()) + { + (*this) << input; + continue; + } + + if(input == 0x19) + { + avt_compr = TRUE; + avt_compr_char = '\0'; + continue; + } + + if((fflag || kflag) && (input=='@' || input=='#' || input=='%')) + { + fieldwidth++; + + switch(input) + { + case '@': alignment = ALIGN_LEFT; break; + case '#': alignment = ALIGN_RIGHT; break; + case '%': alignment = ALIGN_CENTER; break; + } + + continue; + } + + if(fflag) + { + switch(input) + { + case 'A': str = user.name; break; + case 'B': str = user.city; break; + case 'C': str = user.passWord; break; + case 'D': str = user.dataPhone; break; + case 'E': str = user.voicePhone; break; + case 'F': str = user.lastDate.format("D MMM CCYY"); break; + case 'G': str = user.lastTime.format("HH:MM:SS"); break; + case 'H': + case 'I': + case 'J': + case 'K': { + char s[33]; + user.aFlags.flagstostr(s); + str = s; + } break; + case 'L': str = form("%d",user.credit); break; + case 'M': str = form("%lu",user.msgsPosted); break; + case 'N': str = form("%d",user.highMsgRead); break; + case 'O': str = form("%u",user.level); break; + case 'P': str = form("%lu",user.timesCalled); break; + case 'Q': str = form("%lu",user.numUploads); break; + case 'R': str = form("%lu",user.kbUploaded); break; + case 'S': str = form("%lu",user.numDownloads); break; + case 'T': str = form("%lu",user.kbDownloaded); break; + case 'U': str = form("%ld",user.timeUsed); break; + case 'V': str = form("%d",user.screenLength); break; + case 'W': str = user_firstname; break; + case 'X': str = (ansi_mode? on_string:off_string); break; + case 'Y': str = (pause_mode? on_string:off_string); break; + case 'Z': str = (cls_mode? on_string:off_string); break; + case '0': str = (fsed_mode? on_string:off_string); break; + case '1': str = user.alias; break; + case '2': str = (stack_mode? off_string:on_string); break; + case '3': str = (no_ibm? off_string:on_string); break; + case '4': str = user.state; break; + case '5': str = user.birthDate.format("D MMM CCYY"); break; + case '6': str = user.expDate.format("D MMM CCYY"); break; + case '7': str = form("%d",int(user.expDate - Date(TODAY))); break; + case '8': str = (avatar? on_string:off_string); break; + case '9': str = (avtplus? on_string:off_string); break; + case '>': str = user.forwardTo; break; + case '<': str = date_formats_long[user.dateFormat]; break; + case '[': str = form("%ld",long(download_limit)-user.kbToday); break; + case '!': if(timer.online()90) // Update info-window every 5 seconds. + { + update_display(); + ticks = clockticks(); + } + + if(inputbuffer.pollnext()) goto redo; + timer.checkinactivity(); + DV_timeslice(); + } + + return c; +} + +void +fossilio::wait(char c) +{ + while(toupper(wait())!=toupper(c)) {} +} + +byte +fossilio::wait(char *s) +{ + strupr(s); + + for(;;) + { + char k = toupper(wait()); + + if(strchr(s,k)) return k; + } +} + +void +fossilio::drawfield(int max) +{ + int i; + + if(ansi_mode || avatar) + { + fullcolor((SCREEN.attrib()) & (0xF) | (cfg.promptColor<<4)); + + if(!avatar) + { + for(i=0;i0) + { + i--; + (*this) << "\b \b"; + } + } + else if(i= 0) i = int(l); + + return ret; +} + +int +fossilio::read(long& i,int len) +{ + char s[10]; + + read(s,(len<10)?len:10,READMODE_DIGITS); + if(!s[0]) return -1; + + i = atol(s); + + return 0; +} + + +void +fossilio::hangup() +{ + if(baud) fos_setdtr(port,0); +} + +int +fossilio::ask(int def) +{ + int ret; + String keys; + + if(def) + { + io << S_ASK_YES_NO; + keys = K_ASK_YES_NO; + } + else + { + io << S_ASK_NO_YES; + keys = K_ASK_NO_YES; + } + + keys << '\r'; + + char k = wait(keys); + + if(k == keys[0]) + ret = TRUE; + if(k == keys[1]) + ret = FALSE; + if(k == keys[2]) + ret = def; + + if(ret) + (*this) << S_YES; + else + (*this) << S_NO; + + (*this) << char(0xFF); + + return ret; +} + +void +fossilio::color(byte c) +{ + current_color=c; + + int blink=(int)(c & 0x80); + c &= 0x7; + + if(avatar) + { + static char colors[] = { 0,4,2,6,1,5,3,7 }; + + (*this) << char(22) << char(1); + (*this) << char(colors[c]|8); + if(blink) (*this) << char(22) << char(2); + return; + } + + if(!ansi_mode) return; + + String s("\x1b[0;1;3"); + + s << (char)(c+'0'); + if(blink) s << ";5"; + s << 'm'; + + for(int i=0;s[i];i++) (*this) << s[i]; +} + +void +fossilio::cls() +{ + (*this) << '\f' << char(0xFF); +} + + +void +fossilio::enablestop() +{ + stopenabled = 1; + stopped = 0; +} + +void +fossilio::disablestop() +{ + stopenabled = stopped = 0; +} + +static +String +align_string(char *s , int width , int alignment) +{ + String ret_s; + int i,j = width-strlen(s); + + if(strlen(s) >= width) return String(s); + + switch(alignment) + { + case ALIGN_LEFT : for(i=0;i4X@5jRxDrTh#;+VZ` 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 literal 0 HcmV?d00001 diff --git a/JAM.CPP b/JAM.CPP new file mode 100644 index 0000000..b9ab61c --- /dev/null +++ b/JAM.CPP @@ -0,0 +1,1002 @@ +#define Use_MsgBase + +#include +#include +#include +#include +#include "proboard.hpp" +#include "jam.hpp" + + +//////////////////////////////////////////////////////////////////////////////////// + +static dword +PbDate2JamDate( const Date& pbd , const Time& pbt) +{ + int years = pbd.year() - 70; + + dword unixtime = dword(years) * 365L + (dword(years + 1) / 4L); + + return ((unixtime + pbd.dayNum() - 1) * 86400L + long(pbt)); +} + + + +static +void JamDate2PbDate( Date &pbd, + Time& pbt , + dword jamdate ) +{ + struct tm *tms = localtime( (long *) & jamdate ); + long seconds = long( jamdate ) % 86400L; + + + jamdate -= seconds; + + pbt = seconds; + + + pbd[ 0 ] = tms->tm_mday; + pbd[ 1 ] = tms->tm_mon+1; + pbd[ 2 ] = tms->tm_year; // Y2K - LOOKS OK, BUT CHECK IT OUT +} + + + +static void +JamMsg2Message(JamHeader *jam,JamExtHeader *xjam,Message *msg) +{ + strcpy(msg->from , xjam->from); + strcpy(msg->to , xjam->to); + strcpy(msg->subj , xjam->subject); + + msg->origZone = xjam->fromZone; + msg->origNet = xjam->fromNet; + msg->origNode = xjam->fromNode; + msg->origPoint = xjam->fromPoint; + msg->destZone = xjam->toZone; + msg->destNet = xjam->toNet; + msg->destNode = xjam->toNode; + msg->destPoint = xjam->toPoint; + + JamDate2PbDate( msg->postDate, msg->postTime , jam->dateWritten ); + JamDate2PbDate( msg->recvDate, msg->recvTime , jam->dateReceived); + + msg->num = jam->messageNumber; + msg->id = msg->num; + + msg->prev = jam->replyTo; + msg->next = jam->reply1St; + + msg->attr = 0; + + if(jam->attribute & JAM_MSG_LOCAL ) msg->attr |= MSGATTR_LOCAL; + if(jam->attribute & JAM_MSG_INTRANSIT ) msg->attr |= MSGATTR_TRANSIT; + if(jam->attribute & JAM_MSG_PRIVATE ) msg->attr |= MSGATTR_PRIVATE; + if(jam->attribute & JAM_MSG_READ ) msg->attr |= MSGATTR_RECEIVED; + if(jam->attribute & JAM_MSG_SENT ) msg->attr |= MSGATTR_SENT; + if(jam->attribute & JAM_MSG_KILLSENT ) msg->attr |= MSGATTR_KILL; + if(jam->attribute & JAM_MSG_HOLD ) msg->attr |= MSGATTR_HOLD; + if(jam->attribute & JAM_MSG_CRASH ) msg->attr |= MSGATTR_CRASH; + if(jam->attribute & JAM_MSG_IMMEDIATE ) msg->attr |= MSGATTR_IMMEDIATE; + if(jam->attribute & JAM_MSG_DIRECT ) msg->attr |= MSGATTR_DIRECT; + if(jam->attribute & JAM_MSG_FILEREQUEST) msg->attr |= MSGATTR_FILEREQ; + if(jam->attribute & JAM_MSG_FILEATTACH ) msg->attr |= MSGATTR_FILE; + if(jam->attribute & JAM_MSG_TRUNCFILE ) msg->attr |= MSGATTR_TRUNCFILE; + if(jam->attribute & JAM_MSG_KILLFILE ) msg->attr |= MSGATTR_DELFILE; + if(jam->attribute & JAM_MSG_RECEIPTREQ ) msg->attr |= MSGATTR_RECEIPTREQ; + if(jam->attribute & JAM_MSG_ORPHAN ) msg->attr |= MSGATTR_ORPHAN; + if(jam->attribute & JAM_MSG_NODISP ) msg->attr |= MSGATTR_NODISP; + if(jam->attribute & JAM_MSG_LOCKED ) msg->attr |= MSGATTR_LOCKED; + if(jam->attribute & JAM_MSG_DELETED ) msg->attr |= MSGATTR_DELETED; + + if(jam->attribute & JAM_MSG_TYPEECHO ) msg->attr |= MSGATTR_ECHOMAIL; + if(jam->attribute & JAM_MSG_TYPENET ) msg->attr |= MSGATTR_NETMAIL; +} + +static void +Message2JamMsg(JamHeader *jam,JamExtHeader *xjam,Message *msg) +{ + if(xjam != NULL) + { + strcpy(xjam->from , msg->from); + strcpy(xjam->to , msg->to ); + strcpy(xjam->subject , msg->subj); + + xjam->fromZone = msg->origZone ; + xjam->fromNet = msg->origNet ; + xjam->fromNode = msg->origNode ; + xjam->fromPoint = msg->origPoint; + xjam->toZone = msg->destZone ; + xjam->toNet = msg->destNet ; + xjam->toNode = msg->destNode ; + xjam->toPoint = msg->destPoint; + } + + if(msg->postDate.ok()) + jam->dateWritten = PbDate2JamDate( msg->postDate, msg->postTime ); + + jam->dateReceived = 0; + + if(msg->attr & MSGATTR_RECEIVED && msg->recvDate.ok()) + jam->dateReceived = PbDate2JamDate( msg->recvDate, msg->recvTime ); + + jam->messageNumber = msg->num; + + jam->replyTo = msg->prev; + jam->reply1St = msg->next; + + jam->attribute = 0; + + if(msg->attr & MSGATTR_LOCAL ) jam->attribute |= JAM_MSG_LOCAL ; + if(msg->attr & MSGATTR_TRANSIT ) jam->attribute |= JAM_MSG_INTRANSIT ; + if(msg->attr & MSGATTR_PRIVATE ) jam->attribute |= JAM_MSG_PRIVATE ; + if(msg->attr & MSGATTR_RECEIVED ) jam->attribute |= JAM_MSG_READ ; + if(msg->attr & MSGATTR_SENT ) jam->attribute |= JAM_MSG_SENT ; + if(msg->attr & MSGATTR_KILL ) jam->attribute |= JAM_MSG_KILLSENT ; + if(msg->attr & MSGATTR_HOLD ) jam->attribute |= JAM_MSG_HOLD ; + if(msg->attr & MSGATTR_CRASH ) jam->attribute |= JAM_MSG_CRASH ; + if(msg->attr & MSGATTR_IMMEDIATE ) jam->attribute |= JAM_MSG_IMMEDIATE ; + if(msg->attr & MSGATTR_DIRECT ) jam->attribute |= JAM_MSG_DIRECT ; + if(msg->attr & MSGATTR_FILEREQ ) jam->attribute |= JAM_MSG_FILEREQUEST; + if(msg->attr & MSGATTR_FILE ) jam->attribute |= JAM_MSG_FILEATTACH ; + if(msg->attr & MSGATTR_TRUNCFILE ) jam->attribute |= JAM_MSG_TRUNCFILE ; + if(msg->attr & MSGATTR_DELFILE ) jam->attribute |= JAM_MSG_KILLFILE ; + if(msg->attr & MSGATTR_RECEIPTREQ) jam->attribute |= JAM_MSG_RECEIPTREQ ; + if(msg->attr & MSGATTR_ORPHAN ) jam->attribute |= JAM_MSG_ORPHAN ; + if(msg->attr & MSGATTR_NODISP ) jam->attribute |= JAM_MSG_NODISP ; + if(msg->attr & MSGATTR_LOCKED ) jam->attribute |= JAM_MSG_LOCKED ; + if(msg->attr & MSGATTR_DELETED ) jam->attribute |= JAM_MSG_DELETED ; + + if(msg->attr & MSGATTR_ECHOMAIL ) jam->attribute |= JAM_MSG_TYPEECHO ; + if(msg->attr & MSGATTR_NETMAIL ) jam->attribute |= JAM_MSG_TYPENET ; + + if(!(msg->attr & (MSGATTR_ECHOMAIL|MSGATTR_NETMAIL))) + jam->attribute |= JAM_MSG_TYPELOCAL; +} + +static bool +SubFields2ExtHeader( byte *subfields , word size , JamExtHeader& ext_hdr ) +{ + JamSubField *sub; + word pos; + + for(pos = 0 ; pos < size ; ) + { + sub = (JamSubField *)(&subfields[pos]); + + pos += sizeof(JamSubField); + + byte *buf = new byte[word(sub->datLen)+1]; + memcpy(buf , &subfields[pos] , word(sub->datLen)); + buf[word(sub->datLen)] = '\0'; + + pos += sub->datLen; + + // At this point we have all data! + + switch(sub->loId) + { + case JAMID_SENDERNAME: + { + strncpy( ext_hdr.from , buf , 35 ); + ext_hdr.from[35] = '\0'; + } + break; + case JAMID_RECEIVERNAME: + { + strncpy( ext_hdr.to , buf , 35 ); + ext_hdr.to[35] = '\0'; + } + break; + case JAMID_SUBJECT: + { + strncpy( ext_hdr.subject , buf , 71 ); + ext_hdr.subject[71] = '\0'; + } + break; + case JAMID_PID: + { + strncpy( ext_hdr.pid , buf , 79 ); + ext_hdr.pid[79] = '\0'; + } + break; + case JAMID_OADDRESS: + { + char *s = strtok( buf , ":"); + + ext_hdr.fromZone = 0; + ext_hdr.fromNet = 0; + ext_hdr.fromNode = 0; + ext_hdr.fromPoint = 0; + + if(s) + { + ext_hdr.fromZone = atoi(s); + s = strtok( NULL , "/"); + if(s) + { + ext_hdr.fromNet = atoi(s); + s = strtok( NULL , "."); + if(s) + { + ext_hdr.fromNode = atoi(s); + s = strtok( NULL , "@"); + if(s) + { + ext_hdr.fromPoint = atoi(s); + } + } + } + } + } + break; + case JAMID_DADDRESS: + { + char *s = strtok( buf , ":"); + + ext_hdr.toZone = 0; + ext_hdr.toNet = 0; + ext_hdr.toNode = 0; + ext_hdr.toPoint = 0; + + if(s) + { + ext_hdr.toZone = atoi(s); + s = strtok( NULL , "/"); + if(s) + { + ext_hdr.toNet = atoi(s); + s = strtok( NULL , "."); + if(s) + { + ext_hdr.toNode = atoi(s); + s = strtok( NULL , "."); + if(s) + { + ext_hdr.toPoint = atoi(s); + } + } + } + } + } + break; + } + + delete [] buf; + } + + return TRUE; +} + +word +ExtHeader2SubFields(byte *subfields, JamExtHeader& xjam) +{ + char addr_buf[30]; + + JamSubField *sub; + word index = 0; + + sub = (JamSubField *) &subfields[index]; + + sub->loId = JAMID_SENDERNAME; + sub->hiId = 0; + sub->datLen = strlen(xjam.from); + + index += sizeof(JamSubField); + + strcpy(&subfields[index] , xjam.from); + + index += sub->datLen; + + sub = (JamSubField *) &subfields[index]; + + sub->loId = JAMID_RECEIVERNAME; + sub->hiId = 0; + sub->datLen = strlen(xjam.to); + + index += sizeof(JamSubField); + + strcpy(&subfields[index] , xjam.to); + + index += sub->datLen; + + sub = (JamSubField *) &subfields[index]; + + sub->loId = JAMID_SUBJECT; + sub->hiId = 0; + sub->datLen = strlen(xjam.subject); + + index += sizeof(JamSubField); + + strcpy(&subfields[index] , xjam.subject); + + index += sub->datLen; + + if(xjam.fromZone) + { + sprintf(addr_buf,"%d:%d/%d.%d",xjam.fromZone,xjam.fromNet,xjam.fromNode,xjam.fromPoint); + + sub = (JamSubField *) &subfields[index]; + + sub->loId = JAMID_OADDRESS; + sub->hiId = 0; + sub->datLen = strlen(addr_buf); + + index += sizeof(JamSubField); + + strcpy(&subfields[index] , addr_buf); + + index += sub->datLen; + } + + if(xjam.toZone) + { + sprintf(addr_buf,"%d:%d/%d.%d",xjam.toZone,xjam.toNet,xjam.toNode,xjam.toPoint); + + sub = (JamSubField *) &subfields[index]; + + sub->loId = JAMID_DADDRESS; + sub->hiId = 0; + sub->datLen = strlen(addr_buf); + + index += sizeof(JamSubField); + + strcpy(&subfields[index] , addr_buf); + + index += sub->datLen; + } + + if(xjam.pid[0]) + { + sub = (JamSubField *) &subfields[index]; + + sub->loId = JAMID_PID; + sub->hiId = 0; + sub->datLen = strlen(xjam.pid); + + index += sizeof(JamSubField); + + strcpy(&subfields[index] , xjam.pid); + + index += sub->datLen; + } + + return index; +} + + +JamMsgBase::JamMsgBase() +{ + lastAreaNum = -1; + + jamHeader = new JamFileHeader; + + CLEAR_OBJECT(*jamHeader); +} + +JamMsgBase::~JamMsgBase() +{ + close(); + + delete jamHeader; +} + +bool +JamMsgBase::open() +{ + return TRUE; +} + +void +JamMsgBase::close() +{ + f_jhr.close(); + f_jdt.close(); + f_jdx.close(); + f_jlr.close(); + + lastAreaNum = -1; +} + +bool +JamMsgBase::jamLock() +{ + return f_jhr.lock(0,1); +} + +bool +JamMsgBase::jamUnLock() +{ + return f_jhr.unlock(0,1); +} + +bool +JamMsgBase::readHeader() +{ + f_jhr.rewind(); + + return (f_jhr.read( jamHeader , sizeof(JamFileHeader) ) == sizeof(JamFileHeader)); +} + +bool +JamMsgBase::writeHeader() +{ + f_jhr.rewind(); + + return (f_jhr.write( jamHeader , sizeof(JamFileHeader) ) == sizeof(JamFileHeader)); +} + +bool +JamMsgBase::openArea(MsgArea& ma) +{ + if(ma.areaNum == lastAreaNum) + return TRUE; + + lastAreaNum = -1; + + FileName fn_jhr( ma.path , ".JHR" ); + FileName fn_jdt( ma.path , ".JDT" ); + FileName fn_jdx( ma.path , ".JDX" ); + FileName fn_jlr( ma.path , ".JLR" ); + + f_jhr.close(); + f_jdt.close(); + f_jdx.close(); + f_jlr.close(); + + if(!f_jhr.open( fn_jhr , fmode_rw | fmode_shared , 4096)) + { + if(!f_jhr.open( fn_jhr , fmode_create | fmode_rw | fmode_shared , 4096)) + return FALSE; + + CLEAR_OBJECT(*jamHeader); + + jamHeader->signature = JAM_SIGNATURE; + jamHeader->baseMsgNum = 1; + jamHeader->passwordCrc = dword(-1); + jamHeader->dateCreated = PbDate2JamDate( Date(TODAY) , Time(NOW) ); + + if(!writeHeader()) + return FALSE; + } + else + { + if(!readHeader()) + return FALSE; + } + + if( !f_jdt.open( fn_jdt , fmode_rw | fmode_copen | fmode_shared , 512 ) + || !f_jdx.open( fn_jdx , fmode_rw | fmode_copen | fmode_shared , 2048 ) + || !f_jlr.open( fn_jlr , fmode_rw | fmode_copen | fmode_shared , 512 ) + ) + { + return FALSE; + } + + lastAreaNum = ma.areaNum; + + return TRUE; +} + +long +JamMsgBase::readMsg(Message &msg,long id) +{ + int order = 1; + JamIndex idx; + + if(id < 0) + { + order = -1; + id = -id; + } + + if(!openArea(*msg.msgArea)) + return -1; + + long num_found = findIdx( idx , id , order ); + + if(num_found < 0) + return -1; + + JamHeader hdr; + JamExtHeader ext_hdr; + + f_jhr.seek(idx.offset); + if(f_jhr.read( &hdr , sizeof(JamHeader) ) != sizeof(JamHeader)) + return -1; + + if(hdr.signature != JAM_SIGNATURE) + return -1; + + byte *subfields = new byte[word(hdr.subFieldLen)]; + + if(f_jhr.read( subfields , hdr.subFieldLen ) != hdr.subFieldLen) + return -1; + + SubFields2ExtHeader( subfields , word(hdr.subFieldLen) , ext_hdr ); + + JamMsg2Message( &hdr , &ext_hdr , &msg ); + + delete [] subfields; + + return num_found; +} + +long +JamMsgBase::lowMsg(MsgArea &ma) +{ + if(!openArea(ma)) + return -1; + + readHeader(); + + return jamHeader->baseMsgNum; +} + +long +JamMsgBase::numMsgs(MsgArea &ma) +{ + if(!openArea(ma)) + return -1; + + readHeader(); + + return jamHeader->activeMsgs; +} + +long +JamMsgBase::highMsg(MsgArea &ma) +{ + if(!openArea(ma)) + return -1; + + readHeader(); + + return (f_jdx.len() / sizeof(JamIndex) + jamHeader->baseMsgNum - 1); +} + +word +JamMsgBase::readMsgText(Message& msg,char *ptr,long offset,word size) +{ + JamIndex idx; + + long num_found = findIdx( idx , msg.num , 0 ); + + if(num_found != msg.num) + return 0; + + JamHeader hdr; + + f_jhr.seek(idx.offset); + if(f_jhr.read( &hdr , sizeof(JamHeader) ) != sizeof(JamHeader)) + return 0; + + if(hdr.signature != JAM_SIGNATURE) + return 0; + + if(offset + size > hdr.txtLen) + { + if(offset > hdr.txtLen) + return 0; + + size = hdr.txtLen - offset; + } + + f_jdt.seek(hdr.offset + offset); + + return f_jdt.read( ptr , size ); +} + + +long +JamMsgBase::appendMsg(Message& msg) +{ + JamIndex j_idx; + JamHeader j_hdr; + JamExtHeader j_ext_hdr; + + if(!openArea(*msg.msgArea)) + return -1; + + jamLock(); + readHeader(); + + long next_num = f_jdx.len() / sizeof(JamIndex); + + j_idx.crc32 = JamCrc(msg.to); + j_idx.offset = f_jhr.len(); + + f_jdx.seek(next_num * sizeof(JamIndex)); + f_jdx.write(&j_idx , sizeof(JamIndex)); + + byte *subfields = new char[1024]; + + CLEAR_OBJECT( j_hdr ); + CLEAR_OBJECT( j_ext_hdr ); + + j_hdr.signature = JAM_SIGNATURE; + j_hdr.revision = 1; + j_hdr.passwordCrc = dword(-1); + j_hdr.offset = f_jdt.len(); + + msg.num = next_num + jamHeader->baseMsgNum; + msg.id = msg.num; + + Message2JamMsg(&j_hdr,&j_ext_hdr,&msg); + + strcpy(j_ext_hdr.pid,PID_STRING_JAM); + + j_hdr.subFieldLen = ExtHeader2SubFields(subfields, j_ext_hdr); + + File f_txt; + + if(f_txt.open("MSGTMP",fmode_read,512)) + { + f_jdt.seek( j_hdr.offset ); + + for(int len = 0;;) + { + int c = f_txt.readByte(); + + if(c < 0) + break; + + if(char(c) == '' || char(c) == '\n') + continue; + + f_jdt << char(c); + len++; + } + + j_hdr.txtLen = len; + } + + f_jhr.seek ( j_idx.offset ); + f_jhr.write( &j_hdr , sizeof(JamHeader)); + f_jhr.write( subfields , j_hdr.subFieldLen); + + delete [] subfields; + + jamHeader->activeMsgs++; + jamHeader->modCounter++; + + writeHeader(); + jamUnLock(); + + return msg.num; +} + +bool +JamMsgBase::updateMsg(Message& msg) +{ + JamIndex idx; + JamHeader hdr; + + if(!openArea(*msg.msgArea)) + return FALSE; + + if(!jamLock()) + return FALSE; + + readHeader(); + + long found = findIdx( idx , msg.num , 0 ); + + if(found != msg.num) + { + jamUnLock(); + + return FALSE; + } + + f_jhr.seek(idx.offset); + if(f_jhr.read( &hdr , sizeof(JamHeader) ) != sizeof(JamHeader)) + { + jamUnLock(); + + return FALSE; + } + + Message2JamMsg( &hdr , NULL , &msg ); + + f_jhr.seek(idx.offset); + f_jhr.write( &hdr , sizeof(JamHeader) ); + + jamHeader->modCounter++; + + writeHeader(); + + jamUnLock(); + + return TRUE; +} + +long +JamMsgBase::msgNum(MsgArea&,long id) +{ + return id; +} + +long +JamMsgBase::msgId(MsgArea&,long num) +{ + return num; +} + + +bool +JamMsgBase::deleteMsg(Message &msg) +{ + JamIndex idx; + JamHeader hdr; + + if(!openArea(*msg.msgArea)) + return FALSE; + + if(!jamLock()) + return FALSE; + + readHeader(); + + long found = findIdx( idx , msg.num , 0 ); + + if(found != msg.num) + { + jamUnLock(); + + return FALSE; + } + + f_jhr.seek(idx.offset); + if(f_jhr.read( &hdr , sizeof(JamHeader) ) != sizeof(JamHeader)) + { + jamUnLock(); + + return FALSE; + } + + if(hdr.attribute & JAM_MSG_DELETED) + { + jamUnLock(); + + return FALSE; + } + + hdr.attribute |= JAM_MSG_DELETED; + hdr.txtLen = 0; + + f_jhr.seek(idx.offset); + f_jhr.write( &hdr , sizeof(JamHeader) ); + + idx.crc32 = dword(-1); + + f_jdx.seek ( (found - jamHeader->baseMsgNum) * sizeof(JamIndex) ); + f_jdx.write( &idx , sizeof(JamIndex) ); + + jamHeader->activeMsgs--; + jamHeader->modCounter++; + + writeHeader(); + + jamUnLock(); + + return TRUE; +} + + +static void +showbusy() +{ + static int x = 0; + + char *ss[] = { + "|", + "/", + "-", + "\\", + NULL + }; + + io << '\b' << ss[x] << char(0xFF); + + x = ++x % 4; +} + +word +JamMsgBase::scanMail(MessageIndex *msgidx,word maxmsgs) +{ + MsgArea ma; + int index = 0; + + io << "\3 "; + + for(int i = 1; i <= MsgArea::highAreaNum() ; i++) + { + if(!ma.read(i)) continue; + + if(ma.msgBaseType != MSGBASE_JAM) continue; + + if(!user.mailCheckBoards.connected(i)) continue; + + if(!check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot)) continue; + + dword name_crc = JamCrc(user.name); + dword alias_crc = JamCrc(user.alias); + + if(!openArea(ma)) + continue; + + long lr = ma.lastRead(user_recnr); + + showbusy(); + + f_jdx.rewind(); + long rec = 0; + + while( index < maxmsgs ) + { + JamIndex jamidx; + + if(f_jdx.read(&jamidx,sizeof(JamIndex)) != sizeof(JamIndex)) break; + + if(jamidx.crc32 == name_crc || jamidx.crc32 == alias_crc || (ma.msgType == MSG_TOALL && (rec+jamHeader->baseMsgNum) > lr)) + { + Message msg(ma.areaNum); + + //*msg.msgArea = ma; + + long msgread = readMsg( msg , rec + jamHeader->baseMsgNum ); + + if(msgread == rec + jamHeader->baseMsgNum && !(msg.attr & MSGATTR_RECEIVED)) + { + if(( !stricmp(msg.to,user.name) + || (!stricmp(msg.to,user.alias) && ma.flags && strcmp(user.name,user.alias)) + || (ma.msgType == MSG_TOALL && (rec+jamHeader->baseMsgNum) > lr) + ) + && (check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot) || ma.sysopAccess()) + ) + { + msgidx[index].num = msgread; + msgidx[index].area = ma.areaNum; + index++; + } + } + + f_jdx.seek( (rec+1) * sizeof(JamIndex) ); + } + + rec++; + } + } + + io << '\b'; + + return index; +} + +long +JamMsgBase::lastRead(MsgArea& ma,long) +{ + if(!openArea(ma)) + return -1; + + dword crc = JamCrc(user.name); + + JamLastRead jlr; + + f_jlr.rewind(); + + for(;;) + { + if(f_jlr.read( &jlr , sizeof(JamLastRead) ) != sizeof(JamLastRead)) + break; + + if(crc == jlr.userCrc) + return jlr.highReadMsg; + } + + return 0; +} + +void +JamMsgBase::setLastRead(MsgArea& ma,long,long num) +{ + if(!openArea(ma)) + return; + + dword crc = JamCrc(user.name); + + JamLastRead jlr; + + f_jlr.rewind(); + + for(long rec = 0 ;; rec++) + { + if(f_jlr.read( &jlr , sizeof(JamLastRead) ) != sizeof(JamLastRead)) + break; + + if(crc == jlr.userCrc) + { + f_jlr.seek( rec * sizeof(JamLastRead) ); + + jlr.highReadMsg = num; + + f_jlr.write( &jlr , sizeof(JamLastRead) ); + + return; + } + } + + jlr.userCrc = crc; + jlr.userId = crc; + jlr.lastReadMsg = num; + jlr.highReadMsg = num; + + f_jlr.seek( rec * sizeof(JamLastRead) ); + f_jlr.write( &jlr , sizeof(JamLastRead) ); +} + +long +JamMsgBase::findIdx( JamIndex &mi,long num,int order ) +{ + JamIndex local_idx; + + if(order < 0) + order = -1; + + if(order > 0) + order = 1; + + if(num < jamHeader->baseMsgNum) + { + if(order <= 0) + return -1; + + num = jamHeader->baseMsgNum; + } + + f_jdx.seek((num - jamHeader->baseMsgNum) * sizeof(JamIndex)); + + if(f_jdx.read( &local_idx , sizeof(JamIndex) ) != sizeof(JamIndex)) + { + if(order >= 0) // exact or forward + return -1; + + num = f_jdx.len() / sizeof(JamIndex) + jamHeader->baseMsgNum - 1; + + f_jdx.seek((num - jamHeader->baseMsgNum) * sizeof(JamIndex)); + if(f_jdx.read( &local_idx , sizeof(JamIndex) ) != sizeof(JamIndex)) + return -1; + + if(num <= 0) + return -1; + } + + if(local_idx.crc32 != dword(-1)) + { + mi = local_idx; + + return num; + } + + if(!order) + return -1; + + while( local_idx.crc32 == dword(-1) ) + { + num += order; + + if(order < 0) + { + f_jdx.seek((num - jamHeader->baseMsgNum) * sizeof(JamIndex)); + } + + if(f_jdx.read( &local_idx , sizeof(JamIndex) ) != sizeof(JamIndex)) + return -1; + } + + mi = local_idx; + + return (local_idx.crc32 != dword(-1)) ? num : -1; +} diff --git a/JAM.HPP b/JAM.HPP new file mode 100644 index 0000000..0715e3b --- /dev/null +++ b/JAM.HPP @@ -0,0 +1,127 @@ +const dword JAM_SIGNATURE = 0x004D414ALU; + +struct JamFileHeader + { + dword signature; + dword dateCreated; + dword modCounter; + dword activeMsgs; + dword passwordCrc; + dword baseMsgNum; + byte reserved[1000]; + }; + +struct JamHeader + { + dword signature; + word revision; + word reserved; + dword subFieldLen; + dword timesRead; + dword msgidCrc; + dword replyCrc; + dword replyTo; + dword reply1St; + dword replyNext; + dword dateWritten; + dword dateReceived; + dword dateProcessed; + dword messageNumber; + dword attribute; + dword attribute2; + dword offset; + dword txtLen; + dword passwordCrc; + dword cost; + }; + +struct JamExtHeader + { + int fromZone; + int fromNet; + int fromNode; + int fromPoint; + int toZone; + int toNet; + int toNode; + int toPoint; + + char from[36]; + char to[36]; + char subject[72]; + char pid[80]; + }; + +struct JamSubField + { + word loId; + word hiId; + dword datLen; + }; + +struct JamIndex + { + dword crc32; + dword offset; + }; + +struct JamLastRead + { + dword userCrc; + dword userId; + dword lastReadMsg; + dword highReadMsg; + }; + + +const word JAMID_OADDRESS = 0; +const word JAMID_DADDRESS = 1; +const word JAMID_SENDERNAME = 2; +const word JAMID_RECEIVERNAME = 3; +const word JAMID_MSGID = 4; +const word JAMID_REPLYID = 5; +const word JAMID_SUBJECT = 6; +const word JAMID_PID = 7; +const word JAMID_TRACE = 8; +const word JAMID_ENCLOSEDFILE = 9; +const word JAMID_ENCLOSEDFILEWALIAS = 10; +const word JAMID_ENCLOSEDFREQ = 11; +const word JAMID_ENCLOSEDFILEWCARD = 12; +const word JAMID_ENCLOSEDINDIRECTFILE= 13; +const word JAMID_EMBINDAT = 1000; +const word JAMID_FTSKLUDGE = 2000; +const word JAMID_SEENBY2D = 2001; +const word JAMID_PATH2D = 2002; +const word JAMID_FLAGS = 2003; +const word JAMID_TZUTCINFO = 2004; + + +const dword JAM_MSG_LOCAL = 0x00000001L; +const dword JAM_MSG_INTRANSIT = 0x00000002L; +const dword JAM_MSG_PRIVATE = 0x00000004L; +const dword JAM_MSG_READ = 0x00000008L; +const dword JAM_MSG_SENT = 0x00000010L; +const dword JAM_MSG_KILLSENT = 0x00000020L; +const dword JAM_MSG_ARCHIVESENT = 0x00000040L; +const dword JAM_MSG_HOLD = 0x00000080L; +const dword JAM_MSG_CRASH = 0x00000100L; +const dword JAM_MSG_IMMEDIATE = 0x00000200L; +const dword JAM_MSG_DIRECT = 0x00000400L; +const dword JAM_MSG_GATE = 0x00000800L; +const dword JAM_MSG_FILEREQUEST = 0x00001000L; +const dword JAM_MSG_FILEATTACH = 0x00002000L; +const dword JAM_MSG_TRUNCFILE = 0x00004000L; +const dword JAM_MSG_KILLFILE = 0x00008000L; +const dword JAM_MSG_RECEIPTREQ = 0x00010000L; +const dword JAM_MSG_CONFIRMREQ = 0x00020000L; +const dword JAM_MSG_ORPHAN = 0x00040000L; +const dword JAM_MSG_ENCRYPT = 0x00080000L; +const dword JAM_MSG_COMPRESS = 0x00100000L; +const dword JAM_MSG_ESCAPED = 0x00200000L; +const dword JAM_MSG_FPU = 0x00400000L; +const dword JAM_MSG_TYPELOCAL = 0x00800000L; +const dword JAM_MSG_TYPEECHO = 0x01000000L; +const dword JAM_MSG_TYPENET = 0x02000000L; +const dword JAM_MSG_NODISP = 0x20000000L; +const dword JAM_MSG_LOCKED = 0x40000000L; +const dword JAM_MSG_DELETED = 0x80000000L; diff --git a/JAM.OBJ b/JAM.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..22572133b8185ac04489a641210e05f7b6417527 GIT binary patch literal 14468 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 +#include +#include +#include "proboard.hpp" + +LanguageFile pb_curlang; +LanguageString *pb_lang; +int pb_num_lang = 0; + +static void +KillLanguage() +{ + if(pb_lang) + { + delete [] pb_lang; + } + + pb_lang = NULL; + pb_num_lang = 0; +} + +bool +ReadLanguage( char *langname ) +{ + if(langname == NULL) + { + KillLanguage(); + + return FALSE; + } + + FileName fn(syspath , langname , ".PBL"); + File f; + + if(!f.open(fn , fmode_read , 4096)) + { + LOG("ERROR: Unable to read language file %s",(char *)fn); + + return FALSE; + } + + if(f.read(&pb_curlang , sizeof(LanguageFile)) != sizeof(LanguageFile)) + { + LOG("Error reading language file <%s>" , (char *)fn); + + return FALSE; + } + + if(strlen(pb_curlang.menuPath) < 3) + pb_curlang.menuPath[0] = '\0'; + + if(strlen(pb_curlang.txtPath) < 3) + pb_curlang.txtPath[0] = '\0'; + + if(strlen(pb_curlang.questPath) < 3) + pb_curlang.questPath[0] = '\0'; + + if(pb_curlang.menuPath[0]) + append_backspace(pb_curlang.menuPath); + + if(pb_curlang.txtPath[0]) + append_backspace(pb_curlang.txtPath); + + if(pb_curlang.questPath[0]) + append_backspace(pb_curlang.questPath); + + KillLanguage(); + + f >> pb_num_lang; + + pb_lang = new LanguageString[pb_num_lang]; + + for(int i=0;i0) + LOG("s = '%s'",(char *)str); +#endif + + if(pb_lang[i].flags & LANG_PROMPT) + { + if(!last_was_ansi) + str << ' '; + + str << char(26) << char(pb_lang[i].promptcolor); + } + + delete [] pb_lang[i].s; + + pb_lang[i].len = str.len(); + pb_lang[i].s = new char[ pb_lang[i].len + 1 ]; + + strcpy(pb_lang[i].s , str); + } + + f.close(); + + S_PRESS_ENTER_TO_CONTINUE = _S_PRESS_ENTER_TO_CONTINUE; + S_PRESS_ENTER_TO_CONTINUE << '\t'; + + return TRUE; +} + +char +wait_language_hotkeys(char *hk, bool enter) +{ + String hotkeys; + + hotkeys = hk; + if(enter) + hotkeys << '\r'; + + char k = io.wait(hotkeys); + + k = hotkeys.find(String(char(k))); + + if(hotkeys[k] == '\r') + return '\r'; + else + return k; +} + +int +language_string_length( char *str ) +{ + int l = 0; + + for( ; *str ; str++) + { + char c = *str; + + if(c == char(26)) + { + str++; + continue; + } + + l++; + } + + return l; +} diff --git a/LANGUAGE.OBJ b/LANGUAGE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..7d61f3214e5b46ae8a9b6c93d7a28315975022d8 GIT binary patch literal 3905 zcmaJ^4Qx}_6+X}J<=Jt52qC!nA;B#nLW3mGpa``T97tYZiW1LpE_f<=GL8u@`NMwC z0kmaSBXv%^NtrfvjAc~{)uf?qHByDrA88plPCF6@!B$W=iG-;V<^e)ugTgwzbDy7+ zIJ79bC+~dcyXT&J&%Nhf2XZ01%h}T@J3HM~uD-r=!9oBiu3T~43W>UMfvhg znznW(i?a`>*C8Hsx{hFmT{v+}JLpB9!;z74WR^jZE z<&h$!rxw0wF&?`Mpgl%%NF|%iam0->I9E+_s9xhSOZ0=+e#K5jN~JdMG==w zD?%sIu8wgW1JD+_^KK=Z#aFXZ#W;XfZKYtXnW(v9wTZTN-OJH#ik@ALo&^Z(zz$OOQb&Ou$fnSu zm%t9BQfSdd?ybPnXXas8$iixx1zdgrnucUTQcE{vs%FnrvNef#JEu-CG7E9@>D+QWC90cI;(THV{+Pgv#Vo6f^fp$;=ld zbMkYFT&Cg^Dn6vPFnMY64Ep)oFYOb$&wh?#CPZ>4-$ZD}Pu5I&Df0+rx=<6Twx4QN z)S9T)K!t@uHKcU1nrh#nS}AHpR4bsG9yJy}rXP`_>02ak`tO8|T*E=8FOn6JkI)hc zQ|;Ge<@B2*e_AH1B3&jXBjQ9fg6?&ZS14&K^|6t>7}-Fzauk1EX`f&|%|Q_{P>e%S zGIoh&fTQ~tbFsMEI%(ywFn5l-GN%*fxywOePAR5V?L-U{YP+es9JugVkjx2~(7~s= zADqWN&pCjJ=6mtq;VGKmqb9sb{{F&7I5{MI^`Ra0cGTlJtWYbvGXRaXl&2xt5N1~`_Hn7t|59FP+1F={+ zwBQ0e0XMDfe`(wOVWXar>W786T7~k$=JXSo#vN|tpR*`w)I`6rBGGS9E1|=I$5V^O z;Rs#BYI#$we_vD#>C<|J^cF2Ip&Q8hX9Vv)_Cdvv-B>YHj~Cg)g#X`Z9hMG*b%)+~ zX{A5|7MG&&)g1soWaGd3FY*>{KpG8(`v$hd>aCEf;Ni^VZKvt{(oV}Sv@jF@$78WQ z^yPs|yI?mof)#AA4;=6gcb0pPJI{r=3*0B1dS4fyBkeMFIFfhtB7zeM3>ZPm3+K?; zEL_@r>W0P3JQZM2cpS!;0|VA!;c;5(3`6ApP_jHF`Z=7LZmBOLc6?@W(8b9}``36c z1$O4hFKG6~@xwVvnX(31SWBNVVx?8)=;YN2>T0eig^_k%J&uXMK%!XANC>>b>_SO# z+>G*#&;nCJK4+%*P3oiO{n0s?`ZFHusgF_2`bg0%!B&gyC9-;!BgL^e;iF%g z7%uiX7QYEn82cku!!bJ(eFxhpwo}+nVtX6gFYHWAB1JJb$&2mBLTNWKhS(mgr}g*| z-G*btHj}*QIxIS|BIFrJ(aa-KHhCK@YWbYGNXpgfIe8YLnNdRY6<`UC%9NP_IiVWGAX%WBMux%u3BP+1zzdvRN9eu)8S$8!-gU!}rd&S(= z<2=~qHcP!``b)!{dYhUL;jaesdLJ}+y}e%5hOgRX=I!f!xVK|tbuf{9T#}IAn0ysV z8|Z6BeF~;_@}npN(uyUR!=V8EYd>(Qe>4-OE6KX)B4T`RY%NS+oS4-#a)=nvw}KDQ t(a{W;Hj=CjV@BZc!EDBNI7k%K*_rLZ)d07cw4cdu{ie2M +#include "proboard.hpp" + +void +lastcallers(char *data) +{ + run_sdkfile(String("_LC ") + data); +} diff --git a/LASTCALL.OBJ b/LASTCALL.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..f0392b6122bb783c5606fb800bcdf84613f863a9 GIT binary patch literal 505 zcmZqRW8le2EG|h-%*oM9E+|;qA;G}FAQIwiVW!}eUzC%Wm!jaTt*v0JXZWjwm4V?W zGeda?8w0~a#t;{a4t55HUqIzRA)wSNR-TG!1`G_mK90d5&W=7l@gc4eAuP`RF0QQc zE{-9NEMOwuDL9xJh}m4+gZx7S3TLo0Xe2N&F*9BUvOHKBSXddkKr99ZHg-ntS!@g( z|C#upEKo2tAK?fBalgR0KxIGvmwf|EMn>*n0xO2gvOxvly4kv)#-2VfM~dN0Xc*fW z7a%qXV?3i4#(G9PjQt3o2qV*!1)K~_3=Hu;&I%0f9ij{jFBnmxw{5POKWi6IMF{{5 CxtIX} literal 0 HcmV?d00001 diff --git a/LISTFILE.CPP b/LISTFILE.CPP new file mode 100644 index 0000000..d88a0e5 --- /dev/null +++ b/LISTFILE.CPP @@ -0,0 +1,1330 @@ +#define Use_LinkedList +#define Use_TagList + +#include +#include +#include +#include +#include +#include "proboard.hpp" + +static char *valid="ABCDEFGHIJKLMNOPQRSTUVWXYZ_1234567890#$"; + +static void near getfname(char *s,char *fn); +static bool near displayline(char *line,FileArea& fa); + +const int MAX_TAGS = 52; + +LinkedList taglist; + +FilesIdx local_tags[MAX_TAGS]; +int num_local_tags; + +static int remember_area = 0; +static long remember_pos = -1; + +static int last_tag = 0; + +char tag_chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890*#$!@%+=&?|>= 26) continue; + + for(i=0; tag_chars[i] ; i++) + { + if(c == tag_chars[i]) break; + } + + if(tag_chars[i] && i < num_local_tags) + { + io << c << "\7,"; + io.fullcolor(tagcharcol); + tagged << c; + } + } + + for(i=0;i num_local_tags) continue; + + if(!is_tagged(local_tags[j].name , local_tags[j].area)) + taglist.add(local_tags[j]); + } + + io << '\r' << S_X_FILES_TAGGED(form("%d",taglist.count())); + + io.wait('\r'); + + io << "\7\r" << String(' ',language_string_length(S_X_FILES_TAGGED(form("%d",taglist.count())))) << '\r'; + + //io << "\7\r \r"; + + //if(rip_mode) io.show_remote = FALSE; + } + + if(rep == (eol ? 2:4)) + { + io.show_remote = TRUE; + + edit_taglist(); + + io << "\f\7"; + + rep = 0; + + //if(rip_mode) io.show_remote = FALSE; + } + + if(eol) + { + if(rep == 0) break; + } + else + { + if(rep >= 0 && rep <= 2) break; + } + + } + + io.show_remote = TRUE; + + io.fullcolor(oldcolor); + + /* + if(rip_mode) + { + rip_clear_status(); + rip_show_enter(); + } + */ + + return rep; +} + +void +clear_tags() +{ + last_tag = 0; + num_local_tags = 0; +} + +static bool +is_whitespace(char c) +{ + return (c==' ' || c=='\t'); +} + +static char +first_nonblank( char *line ) +{ + char f =*line; + + if(is_whitespace(*line)) + { + for(int i=0 ; line[i] != '\0' && is_whitespace(line[i]) ; i++) {} + + f = line[i]; + } + + return f; +} + +static int +display_areaname(int areanum, char *areaname , int prevsize) +{ + io << form("\7%3d - %*s\r\xFF",areanum,-prevsize,areaname); + + return strlen(areaname); +} + +void +list_files(char *data) +{ + FileArea fa; + int areanum; + + io << "\f\n" << S_FILELIST_PRESS_S_TO_STOP << "\n\n\xFF"; + + linecounter(2); + io.enablestop(); + + if(toupper(data[0])=='X') + areanum = user.fileArea; + else + areanum = atoi(data); + + if(!fa.read(areanum)) return; + + LOG(2,"Files listed (%s)",fa.name); + + File tf; + if(!tf.open(fa.listpath,fmode_read | fmode_text)) + { + LOG("Can't open file list %s",fa.listpath); + return; + } + + eol = FALSE; + io.more_func = filelist_more; + clear_tags(); + + char *line = new char[500]; + + bool interrupted = FALSE; + + remember_area = fa.areaNum; + remember_pos = 0; + + while(tf.readLine(line,499)) + { + strip_linefeed(line); + + if(!displayline(line,fa)) + { + interrupted = TRUE; + break; + } + + remember_pos = tf.pos(); + } + + io.more_func = NULLFUNC; + + delete [] line; + + if(!interrupted) + { + if(num_local_tags) + { + eol = TRUE; + filelist_more(); + } + + //io << '\n' << S_END_OF_FILE_LISTING << ' ' << S_PRESS_ENTER_TO_CONTINUE; + } +} + +void +keyword_search(char *data) +{ + FileArea fa; + char item[41]; + + io << "\f\n" << S_KEYWORD_SEARCH_TITLE_AND_PROMPT; + + io.read(item,40,READMODE_UPALL); + + if(!*item) return; + + String buffer[10]; + + int pointer = 0, + found = 0, + group = 0; + + String param[40]; + BitArray arealist(MAX_FILE_AREAS,1); + + int npara=parse_data(data,param); + + LOG(2,"Keyword search (%s)",item); + + io << "\n\f\n" << S_SEARCHING_FOR_KEYWORD(item) << "\n\n"; + + create_arealist(param,npara,arealist); + + for(int i = 0;i= cmpdate ) + { + strcpy( newf[ num_new++ ].name, find.name() ); + } + } + + + if ( ! num_new ) + { + continue; + } + + + File tf; + + + if ( ! tf.open( fa.listpath, + fmode_read | fmode_text ) ) + { + LOG( "Can't open file list %s", fa.listpath ); + + continue; + } + + + for ( bool found = FALSE; tf.readLine( line, 499 ); ) + { + strip_linefeed( line ); + + + if ( strchr( valid, toupper( *line ) ) && + *line ) + { + char file[ 13 ]; + + + found = FALSE; + + + getfname( line, file ); + + strupr( file ); + + + for ( int i = 0; i < num_new; i++ ) + { + if ( ! strcmp( newf[ i ].name, file )) + { + break; + } + } + + + if ( i < num_new ) + { + found = TRUE; + + + if ( linefeed ) + { + io << '\n'; + + + if ( linecounter() ) + { + interrupted = TRUE; + + break; + } + } + + + linefeed = FALSE; + + + if ( ! displayline( line, fa ) ) + { + interrupted = TRUE; + + break; + } + } + } + else + { + char fnb = first_nonblank( line ); + + + if ( fnb && + found && + strchr( "+|!;", fnb ) ) + { + if ( linefeed ) + { + io << '\n'; + + + if ( linecounter() ) + { + interrupted = TRUE; + + break; + } + } + + + linefeed = FALSE; + + + if ( ! displayline( line, fa ) ) + { + interrupted = TRUE; + + break; + } + } + } + } + } + + + delete [] line; + delete [] newf; + + + io.more_func = NULLFUNC; + + + if ( ! interrupted ) + { + if ( num_local_tags ) + { + eol = TRUE; + + filelist_more(); + } + + // io << '\n' + // << S_END_OF_FILE_SEARCH + // << ' ' + // << S_PRESS_ENTER_TO_CONTINUE; + } +} + + +void +filename_search(char *data) +{ + int group = 0; + char search[13]; + + io << "\f\n" << S_FILENAME_SEARCH_TITLE_AND_PROMPT; + + io.read(search,12,READMODE_UPALL); + + if(!*search) return; + + FileArea fa; + String param[40]; + BitArray arealist(MAX_FILE_AREAS,1); + + int npara = parse_data(data,param); + + for(int i = 0;i= 0) + s.del(i,1); + while((i = s.find("\x18")) >= 0) + s.del(i,1); + while((i = s.find("\x19")) >= 0) + s.del(i,1); + } +} + + + +static +bool near displayline( char *line, + FileArea &fa ) +{ + String str; + String wrap; + String wrapcolor; + int left_margin; + + + if ( + ( + strchr( valid, toupper( *line ) ) || + ( + *line=='!' && + strchr( valid, toupper( line[ 1 ] ) ) + ) + ) + && *line ) + { + Date date; + long size; + int counter; + String fname; + String desc; + + + split_line( line, + fname, + date, + size, + counter, + desc, + fa ); + + RemoveDangerousChars( desc ); + + + str = fullcolor_string( cfg.listColorTag ); + + local_tags[ last_tag ].area = fa.areaNum; + + + strcpy( local_tags[ last_tag ].name, fname ); + strupr( local_tags[ last_tag ].name ); + + + if ( size ) + { + str << tag_chars[ last_tag ] + << ' '; + + + if ( last_tag >= num_local_tags ) + { + num_local_tags = last_tag + 1; + } + + + last_tag = ( ++last_tag ) % + min( MAX_TAGS, + ( + /* rip_mode + ? rip_screenlines + : */ + user.screenLength + ) + ); + } + else + { + str << " "; + } + + + str << fullcolor_string( cfg.listColorFileName ); + + str << form( "%-12s ", (char *) fname ); + + + if ( size ) + { + str << fullcolor_string( cfg.listColorDate ); + + str << date.format( date_formats_long[ user.dateFormat ] ); + + + // form( "%02d/%02d/%02d", + // date[ ( cfg.europe ? 0 : 1 ) ], + // date[ ( cfg.europe ? 1 : 0 ) ], + // date[ 2 ] % 100 ); // Y2K FIXED! + // date[ 2 ] ); // Y2K BUG! + + + str << fullcolor_string( cfg.listColorSize ); + + + if ( ( size + 512L ) / 1024L > 1000L ) + { + str << form( "%2ld.%1ldM ", + ( size + 512L ) / 1024L / 1024L, + ( ( size + 512L ) % ( 1024L * 1024L ) ) / + 1024L * 10L / 1024L ); + } + else + { + if ( size >= 1000L ) + { + str << form( "%4ldk ", + ( size + 512L ) / 1024L ); + } + else + { + str << form( "%4ldb ", size ); + } + } + } + else + { + str << fullcolor_string( cfg.listColorMissing ); + str << " "; + } + + + if ( ! cfg.hideFileCounter ) + { + str << fullcolor_string( cfg.listColorCounter ); + str << form( "[%02d]", counter ); + + + if ( counter < 100 ) + { + str << ' '; + } + } + + + wrapcolor = fullcolor_string( cfg.listColorDesc ); + + + str << wrapcolor; + io << str; + + + if ( stopped ) + { + return FALSE; + } + + + left_margin = 34 - 5 * cfg.hideFileCounter; + + str = desc; + } + else + { + char fnb = first_nonblank( line ); + + + if ( fnb && + strchr( "+|", fnb ) ) + { + line = strchr( line, fnb ); + } + + + switch ( *line ) + { + case '|': + case '+': + + line++; + + while ( is_whitespace( *line ) && + *line != '\0' ) + { + line++; + } + + + left_margin = 34 - 5 * cfg.hideFileCounter; + wrapcolor = fullcolor_string( cfg.listColorDesc ); + + io.fullcolor( cfg.listColorDesc ); + + io << String( ' ', left_margin ); + + break; + + + case '!': + + left_margin = 0; + + io.fullcolor( cfg.listColorDesc ); + + wrapcolor = fullcolor_string( cfg.listColorDesc ); + + line++; + + break; + + + case ';': + + left_margin = 0; + + io.fullcolor( cfg.listColorDesc ); + + wrapcolor = fullcolor_string( cfg.listColorDesc ); + + line++; + + break; + + + default : + + left_margin = 0; + + io.fullcolor( cfg.listColorSeperator ); + + wrapcolor = fullcolor_string( cfg.listColorSeperator ); + + break; + } + + + str = line; + + RemoveDangerousChars( str ); + } + + + str.replace( "\t", " " ); + + + if ( stopped ) + { + return FALSE; + } + + + for ( ; ; ) + { + int l = wordwrap( str, + wrap, + 79 - left_margin ); + + str << '\n'; + io << str; + + + if ( linecounter() || + stopped ) + { + return FALSE; + } + + + if ( ! l ) + { + break; + } + + + io << wrapcolor + << String( ' ', left_margin ); + + if ( stopped ) + { + return FALSE; + } + + + str = wrap; + } + + + io.flush(); + + + return TRUE; +} + + diff --git a/LISTFILE.OBJ b/LISTFILE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..4efb0fb0fc66f4363faf1a4d4b29899b41553883 GIT binary patch literal 19030 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 z zKr4Q0@EeE^couYKu`Wy&OmDe#Qf^wYDdDq{lb!Qf7rs4FSiH6*R5Aj+f~|T}uB#Zo zrHGoSYW(D6QL(|9ky|vs)qI=BxF2arf;{J$vD-1!sMh5c8E#BFKrZb_9oECroyaHc$T*pq3D))T3> z$rbF5Uf<_9#~JA>u@nq6u8kzmEDCMh3pw)Ex;i*Tp-ltiI#Q$f5C$9X7nE;%#&x7I z?Z8T#;xnQ5#V9Ix4BDh9IcH)Fuy8emJKZxARNVCXD$56&M?3#*4 zN5r#qKoBQt^MHzbZG%zm2((a|8nQ&q7G;j%;1~)HX=23IOFOyRhI6lRqgmV9F@WI% zi@LzgyzXLWyU>N(!%~N3NUf3kns#CEb(WhWz$75>j8s35l0PQG;;2v$Q#z203(! zYj!G8vs0=-Tsm`$r${sU>*D8J;#oxj1+2a0XH{m(P<13?d~C+jXt~96Zr+Qo(IoZT zS_jcb)ik3NRx%43n1dZdS>RK^XcsQ`%*EeaUhnU`i*@0PTiK!uc1zXElROFE=uMBS zBahR}KBu+@;m%KKS|4`57iCoA>CSsu*FZ%&PF~P7S+*higWi%81e2fAtwU&^^}L&Z zCF>9`NkHPK8gX%uKpSpBI+CHfH +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "proboard.hpp" +#include "fossil.hpp" + +static long _cdecl +hook_l_mul(long,long v1,long v2) +{ + return v1*v2; +} + +static long _cdecl +hook_l_div(long,long v1,long v2) +{ + return v1/v2; +} + +static long _cdecl +hook_l_mod(long,long v1,long v2) +{ + return v1%v2; +} + +static unsigned long _cdecl +hook_ul_div(long,unsigned long v1,unsigned long v2) +{ + return v1/v2; +} + +static unsigned long _cdecl +hook_ul_mod(long,unsigned long v1,unsigned long v2) +{ + return v1%v2; +} + +static long _cdecl +hook_l_shl(long,long v,unsigned shift) +{ + return v << shift; +} + +static long _cdecl +hook_l_shr(long,long v,unsigned shift) +{ + return v >> shift; +} + +static unsigned long _cdecl +hook_ul_shl(long,unsigned long v,unsigned shift) +{ + return v << shift; +} + +static unsigned long _cdecl +hook_ul_shr(long,unsigned long v,unsigned shift) +{ + return v >> shift; +} + +static FILE * _cdecl +hook_fopen(long,char *a,char *b) +{ + bool shared = TRUE; + + if(strchr(b,'*')) + { + *strchr(b,'*') = '\0'; + + shared = FALSE; + } + + FILE *fp; + + if(shared) fp = _fsopen(a,b,0x40); + else fp = fopen(a,b); + + return fp; +} + +static FILE * _cdecl +hook_freopen(long,char *a,char *b,FILE *c) +{ + return freopen(a,b,c); +} + +static int _cdecl +hook_fseek(long,FILE *a,long b,int c) +{ + return fseek(a,b,c); +} + +static long _cdecl +hook_ftell(long,FILE *a) +{ + return ftell(a); +} + +static char * _cdecl +hook_fgets(long,char *a,int b,FILE *c) +{ + return fgets(a,b,c); +} + +static int _cdecl +hook_fgetc(long,FILE *a) +{ + return fgetc(a); +} + +static int _cdecl +hook_fflush(long,FILE *a) +{ + return fflush(a); +} + +static int _cdecl +hook_fclose(long,FILE *a) +{ + return fclose(a); +} + +static int _cdecl +hook_fputs(long,char *a,FILE *b) +{ + return fputs(a,b); +} + +static int _cdecl +hook_getc(long,FILE *a) +{ + return getc(a); +} + +static int _cdecl +hook_getchar() +{ + return io.wait(); +} + +static char * _cdecl +hook_gets(long,char *a) +{ + io.read(a,79,READMODE_NOFIELD); + + return a; +} + +static int _cdecl +hook_fputc(long,int a,FILE *b) +{ + return fputc(a,b); +} + +static int _cdecl +hook_putc(long,int a,FILE * b) +{ + return putc(a,b); +} + +static int _cdecl +hook_putchar(long,int a) +{ + io << char(a) << char(255); + + return a; +} + +static int _cdecl +hook_puts(long,char *a) +{ + io << a << "\n\xFF"; + + return 1; +} + +static size_t _cdecl +hook_fread(long,void *a,size_t b,size_t c,FILE *d) +{ + size_t r = fread(a,b,c,d); + + return r; +} + +static size_t _cdecl +hook_fwrite(long,void *a,size_t b,size_t c,FILE *d) +{ + return fwrite(a,b,c,d); +} + +static int _cdecl +hook_printf(long,char *a ...) +{ + va_list x; + va_start(x,a); + + char s[256]; + + int l=vsprintf(s,a,x); + + if(l>0) + io << s << char(0xFF); + + return l; +} + +static int _cdecl +hook_fprintf(long,FILE *a,char *b ...) +{ + va_list x; + va_start(x,b); + + return vfprintf(a,b,x); +} + +static int _cdecl +hook_vfprintf(long,FILE *a,char *b,va_list c) +{ + return vfprintf(a,b,c); +} + +static int _cdecl +hook_vprintf(long,char *a,va_list b) +{ + char s[256]; + + int l = vsprintf(s,a,b); + + if(l>0) + io << s << char(0xFF); + + return l; +} + +static int _cdecl +hook_sprintf(long,char *a,char *b ...) +{ + va_list x; + va_start(x,b); + + return vsprintf(a,b,x); +} + +static int _cdecl +hook_vsprintf(long,char *a,char *b,va_list c) +{ + return vsprintf(a,b,c); +} + +static void _cdecl +hook_setbuf(long,FILE *a,char *b) +{ + setbuf(a,b); +} + +static int _cdecl +hook_setvbuf(long,FILE *a,char *b,int c,size_t d) +{ + return setvbuf(a,b,c,d); +} + +static int _cdecl +hook_remove(long,char *a) +{ + return remove(a); +} + +static int _cdecl +hook_rename(long,char *a,char *b) +{ + return rename(a,b); +} + +static void _cdecl +hook_rewind(long,FILE *a) +{ + rewind(a); +} + +static void _cdecl +hook_clearerr(long,FILE *a) +{ + clearerr(a); +} + +static int _cdecl +hook_feof(long,FILE *a) +{ + return feof(a); +} + +static int _cdecl +hook_isalnum(long,int a) +{ + return isalnum(a); +} + +static int _cdecl +hook_isalpha(long,int a) +{ + return isalpha(a); +} + +static int _cdecl +hook_iscntrl(long,int a) +{ + return iscntrl(a); +} + +static int _cdecl +hook_isdigit(long,int a) +{ + return isdigit(a); +} + +static int _cdecl +hook_isgraph(long,int a) +{ + return isgraph(a); +} + +static int _cdecl +hook_islower(long,int a) +{ + return islower(a); +} + +static int _cdecl +hook_isprint(long,int a) +{ + return isprint(a); +} + +static int _cdecl +hook_ispunct(long,int a) +{ + return ispunct(a); +} + +static int _cdecl +hook_isspace(long,int a) +{ + return isspace(a); +} + +static int _cdecl +hook_isupper(long,int a) +{ + return isupper(a); +} + +static int _cdecl +hook_isxdigit(long,int a) +{ + return isxdigit(a); +} + +static int _cdecl +hook_toupper(long,int a) +{ + return toupper(a); +} + +static int _cdecl +hook_tolower(long,int a) +{ + return tolower(a); +} + +static int _cdecl +hook_int86(long,int a,union REGS *b,union REGS *c) +{ + return int86(a,b,c); +} + +static int _cdecl +hook_int86x(long,int a,union REGS *b,union REGS *c,struct SREGS *d) +{ + return int86x(a,b,c,d); +} + +static int _cdecl +hook_intdos(long,union REGS *a,union REGS *b) +{ + return intdos(a,b); +} + +static int _cdecl +hook_intdosx(long,union REGS *a,union REGS *b,struct SREGS *c) +{ + return intdosx(a,b,c); +} + +static int _cdecl +hook_dos_findfirst(long,char *a, unsigned b, struct find_t *c) +{ + return _dos_findfirst(a,b,c); +} + +static int _cdecl +hook_dos_findnext(long,struct find_t *a) +{ + return _dos_findnext(a); +} + +static int _cdecl +hook_read(long,int a,void *b,unsigned c) +{ + return msdos_read(a,b,c); +} + +static int _cdecl +hook_write(long,int a,void *b,unsigned c) +{ + return msdos_write(a,b,c); +} + +static int _cdecl +hook_open(long,char *a,int b) +{ + int fh = msdos_open(a,b); + + return fh; +} + +static int _cdecl +hook_creat(long,char *a,int b) +{ + return creat(a,b); +} + +static void _cdecl +hook_close(long,int a) +{ + msdos_close(a); +} + +static int _cdecl +hook_unlink(long,char *a) +{ + return unlink(a); +} + +static int _cdecl +hook_chsize(long,int a,long b) +{ + return chsize(a,b); +} + +static int _cdecl +hook_dup(long,int a) +{ + return dup(a); +} + +static int _cdecl +hook_dup2(long,int a,int b) +{ + return dup2(a,b); +} + +static long _cdecl +hook_lseek(long,int a,long b,int c) +{ + return lseek(a,b,c); +} + +static int _cdecl +hook_access(long,char *a,int b) +{ + return access(a,b); +} + +static long _cdecl +hook_filesize(long,char *) +{ + return -1; +} + +static long _cdecl +hook_filelength(long,int a) +{ + return filelength(a); +} + +static int _cdecl +hook_isatty(long,int a) +{ + return isatty(a); +} + +static int _cdecl +hook_mkdir(long,char *a) +{ + return mkdir(a); +} + +static int _cdecl +hook_chdir(long,char *a) +{ + return chdir(a); +} + +static int _cdecl +hook_rmdir(long,char *a) +{ + return rmdir(a); +} + +static int _cdecl +hook_atoi(long,char *a) +{ + return atoi(a); +} + +static long _cdecl +hook_atol(long,char *a) +{ + return atol(a); +} + +static long _cdecl +hook_strtol(long,char *a,char **b,int c) +{ + return strtol(a,b,c); +} + +static int _cdecl +hook_rand(long) +{ + return rand(); +} + +static void _cdecl +hook_srand(long,unsigned a) +{ + srand(a); +} + +static void * _cdecl +hook_calloc(long,size_t a,size_t b) +{ + return calloc(a,b); +} + +static void _cdecl +hook_free(long,void *a) +{ + free(a); +} + +static void * _cdecl +hook_malloc(long,size_t a) +{ + return malloc(a); +} + +static void * _cdecl +hook_realloc(long,void *a,size_t b) +{ + return realloc(a,b); +} + +static char * _cdecl +hook_getenv(long,char *a) +{ + return getenv(a); +} + +static int cdecl +hook_putenv(long,char *a) +{ + return putenv(a); +} + +static int _cdecl +hook_abs(long,int a) +{ + return abs(a); +} + +static long _cdecl +hook_labs(long,long a) +{ + return labs(a); +} + +static void * _cdecl +hook_memcpy(long,void *a,void *b,size_t c) +{ + return memcpy(a,b,c); +} + +static void * _cdecl +hook_memmove(long,void *a,void *b,size_t c) +{ + return memmove(a,b,c); +} + +static char * _cdecl +hook_strcpy(long,char *a,char *b) +{ + return strcpy(a,b); +} + +static char * _cdecl +hook_strncpy(long,char *a,char *b,size_t c) +{ + return strncpy(a,b,c); +} + +static char * _cdecl +hook_strcat(long,char *a,char *b) +{ + return strcat(a,b); +} + +static char * _cdecl +hook_strncat(long,char *a,char *b,size_t c) +{ + return strncat(a,b,c); +} + +static int _cdecl +hook_memcmp(long,void *a,void *b,size_t c) +{ + return memcmp(a,b,c); +} + +static int _cdecl +hook_strcmp(long,char *a,char *b) +{ + return strcmp(a,b); +} + +static int _cdecl +hook_strncmp(long,char *a,char *b,size_t c) +{ + return strncmp(a,b,c); +} + +static void * _cdecl +hook_memchr(long,void *a,int b,size_t c) +{ + return memchr(a,b,c); +} + +static char * _cdecl +hook_strchr(long,char *a,int b) +{ + return strchr(a,b); +} + +static size_t _cdecl +hook_strcspn(long,char *a,char *b) +{ + return strcspn(a,b); +} + +static char * _cdecl +hook_strpbrk(long,char *a,char *b) +{ + return strpbrk(a,b); +} + +static char * _cdecl +hook_strrchr(long,char *a,int b) +{ + return strrchr(a,b); +} + +static size_t _cdecl +hook_strspn(long,char *a,char *b) +{ + return strspn(a,b); +} + +static char * _cdecl +hook_strstr(long,char *a,char *b) +{ + return strstr(a,b); +} + +static char * _cdecl +hook_strtok(long,char *a,char *b) +{ + return strtok(a,b); +} + +static void * _cdecl +hook_memset(long,void *a,int b,size_t c) +{ + return memset(a,b,c); +} + +static size_t _cdecl +hook_strlen(long,char *a) +{ + return strlen(a); +} + +static int _cdecl +hook_memicmp(long,void *a,void *b,size_t c) +{ + return memicmp(a,b,c); +} + +static char * _cdecl +hook_stpcpy(long,char *a,char *b) +{ + return stpcpy(a,b); +} + +static int _cdecl +hook_strcmpl(long,char *a,char *b) +{ + return strcmpl(a,b); +} + +static int _cdecl +hook_strnicmp(long,char *a, char *b, size_t c) +{ + return strnicmp(a,b,c); +} + +static char * _cdecl +hook_strdup(long,char *a) +{ + return strdup(a); +} + +static char * _cdecl +hook_strlwr(long,char *a) +{ + return strlwr(a); +} + +static char * _cdecl +hook_strupr(long,char *a) +{ + return strupr(a); +} + +static char * _cdecl +hook_strnset(long,char *a,int b,size_t c) +{ + return strnset(a,b,c); +} + +static char * _cdecl +hook_strrev(long,char *a) +{ + return strrev(a); +} + +static char * _cdecl +hook_strset(long,char *a,int b) +{ + return strset(a,b); +} + +static void _cdecl +hook_swab(long,char *a,char *b,size_t c) +{ + swab(a,b,c); +} + +static clock_t _cdecl +hook_clock(long) +{ + return clock(); +} + +static time_t _cdecl +hook_time(long,time_t *a) +{ + return time(a); +} + +static time_t _cdecl +hook_mktime(long,struct tm *a) +{ + return mktime(a); +} + +static char * _cdecl +hook_asctime(long,struct tm *a) +{ + return asctime(a); +} + +static char * _cdecl +hook_ctime(long,time_t *a) +{ + return ctime(a); +} + +static struct tm * _cdecl +hook_localtime(long,time_t *a) +{ + return localtime(a); +} + +static struct tm * _cdecl +hook_gmtime(long,time_t *a) +{ + return gmtime(a); +} + +static size_t _cdecl +hook_strftime(long,char *a,size_t b,char *c,struct tm *d) +{ + return strftime(a,b,c,d); +} + +static void _cdecl +hook_sleep(long,time_t a) +{ + sleep(int(a)); +} + +static void _cdecl +hook_usleep(long,unsigned long a) +{ +#ifdef __ZTC + usleep(a); +#else + msleep(int(a/1000)); +#endif +} + +static void _cdecl +hook_msleep(long,unsigned long a) +{ + msleep(int(a)); +} + +static long _cdecl +hook_MemAvail() +{ + return farcoreleft(); +} + +static char * _cdecl +hook_form(long,char *s ...) +{ + static int index = 0; + static char buffer[1024]; + va_list v; + + if(index >= 512) index = 0; + + va_start(v,s); + + char *ret = &buffer[index]; + + index += vsprintf(&buffer[index],s,v) + 1; + + if(index >= 1024) _exit(EXIT_FAILURE); + + return ret; +} + +static void _cdecl +hook_SetColor(long,char color) +{ + char s[2] = { 0,0 }; + + s[0] = color; + + io << s << char(0xFF); +} + +static void _cdecl +hook_MenuFunction(long,int func,char *data) +{ + (*(menufunctions[func]))(data); +} + +static char _cdecl +hook_WaitKey() +{ + return io.wait(); +} + +static char _cdecl +hook_WaitKeys(long,char *s) +{ + return io.wait(s); +} + +static void _cdecl +hook_Input(long,char *s,int len,int method) +{ + io.read(s,len,method); +} + +static void _cdecl +hook_HangUp(long) +{ + io.flush(); + exit_proboard(); +} + +static void _cdecl +hook_Log(long,int loglevel,char *string ...) +{ + char s[100]; + va_list x; + va_start(x,string); + + vsprintf(s,string,x); + + LOG(loglevel,s); +} + +static int _cdecl +hook_PostMessage(long,char *from,char *to,char *subj,int area,bool pvt) +{ + return (int)post_message(from,to,subj,area,pvt); +} + +static int _cdecl +hook_PostNetmail(long,char *from,char *to,char *subj,int area,unsigned *address,bool attach,bool crash,bool kill) +{ + return (int)post_netmail_message(from,to,subj,area,address[0],address[1],address[2],address[3],crash,attach,kill); +} + +static bool _cdecl +hook_ReadMsgArea(long,int areanum,_MsgArea *ma) +{ + MsgArea local_area; + + memcpy(&local_area , ma , sizeof(_MsgArea)); + + bool r = local_area.read(areanum); + + memcpy(ma , &local_area , sizeof(_MsgArea)); + + return r; +} + +static int _cdecl +hook_NumMsgAreas(long) +{ + return MsgArea::highAreaNum(); +} + +static int _cdecl +hook_ReadFileArea(long,int area,FileArea *fa) +{ + return (fa->read(area)) ? 0 : (-1); +} + +static int _cdecl +hook_NumFileAreas(long) +{ + return FileArea::highAreaNum(); +} + +static void _cdecl +hook_MsgEd() +{ + edit_message(); +} + +static void _cdecl +hook_AddTime(long,int minutes) +{ + int i; + + if(minutes<0) for(i=0;i<-minutes;i++) timer.decrease(); + else for(i=0;i< minutes;i++) timer.increase(); +} + +static int _cdecl +hook_TimeLeft(long) +{ + return timer.left(); +} + +static int _cdecl +hook_TimeOnline(long) +{ + return timer.online(); +} + +static int _cdecl +hook_CheckAccess(long,word level,AccessFlags flags) +{ + return check_access(level,flags); +} + +static void _cdecl +hook_SuspendTimer() +{ + timer.suspend(); +} + +static void _cdecl +hook_RestartTimer() +{ + timer.restart(); +} + +#define HANDLER_SYSOPKEY 6 +#define HANDLER_HANGUP 7 + +static int _cdecl +hook_InstallHandler(long,int handler,void (*function)(void),unsigned ds) +{ + PEXhandle h; + + h.func = function; + h.ds = ds; + + switch(handler) + { + case HANDLER_SYSOPKEY: sysopkey_handlers.insert(h); + break; + case HANDLER_HANGUP: hangup_handlers.insert(h); + break; + } +// pex_handlers[handler].func = function; +// pex_handlers[handler].ds = ds; + + return 0; +} + +static void _cdecl +hook_RemoveHandler(long,int handler,void (*function)(void),unsigned ds) +{ + LinkedList *ll; + + switch(handler) + { + case HANDLER_SYSOPKEY: ll = &sysopkey_handlers; + break; + case HANDLER_HANGUP: ll = &hangup_handlers; + break; + } + + for(ll->rewind() ; !ll->eol() ; ) + { + if(ll->get().ds == ds && ll->get().func == function) + { + ll->remove(); + } + else + { + (*ll)++; + } + } +} + +static bool _cdecl +hook_ReadHandler(long,int /*handler*/,PEXhandle * /*ph*/) +{ +// memcpy(ph , &pex_handlers[handler] , sizeof(PEXhandle)); +// +// return (ph->func ? TRUE : FALSE); + + return FALSE; +} + +static void _cdecl +hook_RestoreHandler(long,int /*handler*/,PEXhandle * /*ph*/) +{ +// memcpy(&pex_handlers[handler] , ph , sizeof(PEXhandle)); +} + +static void _cdecl +hook_EnableStop() +{ + io.enablestop(); +} + +static void _cdecl +hook_DisableStop() +{ + io.enablestop(); +} + +static bool _cdecl +hook_Stopped() +{ + return stopped; +} + +static bool _cdecl +hook_IO_SendByte(long,byte x) +{ + return fos_sendnw(io.port,x); +} + +static int _cdecl +hook_IO_ReadByte() +{ + return fos_getchnw(io.port); +} + +static bool _cdecl +hook_IO_Carrier() +{ + return fos_carrier(io.port); +} + +static bool _cdecl +hook_IO_ByteReady() +{ + return fos_byteready(io.port); +} + +static bool _cdecl +hook_IO_BufEmpty() +{ + return fos_outputempty(io.port); +} + +static void _cdecl +hook_IO_StartBreak() +{ + fos_break(io.port,TRUE); +} + +static void _cdecl +hook_IO_StopBreak() +{ + fos_break(io.port,FALSE); +} + +static void _cdecl +hook_IO_DTR(long,bool mode) +{ + fos_setdtr(io.port,mode); +} + +static word _cdecl +hook_IO_SendBlock(long,byte *buf,word size) +{ + return fos_sendblock(io.port,buf,size); +} + +static word _cdecl +hook_IO_ReadBlock(long,byte *buf,word size) +{ + return fos_readblock(io.port,buf,size); +} + + +static +void _cdecl hook_PostInfo( long, + char *fname ) +{ + File fp( FileName( syspath, + fname, + ".ASW" ), + fmode_write | + fmode_text | + fmode_append | + fmode_copen ); + + + if ( ! fp.opened() ) + { + return; + } + + + Date date( TODAY ); + Time time( NOW ); + + + fp.printf( "*** %s completed questionnaire at %02d:%02d on %02d-%s-%02d ***\n", + user.name, + time[ 0 ], + time[ 1 ], + date[ 0 ], + months_short[ date[ 1 ] ], + date[ 2 ] % 100 ); // Y2K BUG FIXED! + // date[ 2 ] ); // Y2K BUG! +} + +static char _cdecl +hook_ShowHotkeyFile(long,char *fname,char *hotkeys) +{ + return io.sendfile(fname,hotkeys); +} + +static char _cdecl +hook_ShowHotkeyANSIFile(long,char *fname,char *hotkeys) +{ + return showansasc(fname,hotkeys); +} + +static char _cdecl +hook_PlayMusic(long,char *fname,char *hotkeys) +{ + return playsong(fname,hotkeys,0); +} + +static void _cdecl +hook_AdjustTime() +{ + adjust_limits(); +} + +static bool _cdecl +hook_ReadUser(long,User *rec,long recnr) +{ + return rec->read(recnr); +} + +static void _cdecl +hook_WriteUser(long,User *rec) +{ + bool append = FALSE; + + if(rec->record < 0) + append = TRUE; + + rec->write(append); + + num_users = int(User::numUsers()); +} + +static bool _cdecl +hook_SetUser(long,long r) +{ + if(user.read(r)) + { + user_recnr = r; + return TRUE; + } + else + { + return FALSE; + } + +} + +void *operator new(size_t,void *p) { return p; } + +static bool _cdecl +hook_ReadMessage(long,Message *msg,long msgnum,int area) +{ + Message *local_msg = new (msg) Message; + + local_msg->setArea(area); + + bool r = local_msg->read(msgnum); + + area = local_msg->areaNum(); + + local_msg->Message::~Message(); + + msg->area = area; + + return r; +} + + +static void _cdecl +hook_WriteMSGTMP(long,char *text) +{ + File f; + f.open("MSGTMP",fmode_create); + f << text; +} + +static void _cdecl +hook_AppendMSGTMP(long,char *text) +{ + File f; + if(!f.open("MSGTMP",fmode_write | fmode_copen | fmode_append)) return; + f << text; +} + +static void _cdecl +hook_ShowMessage(long,Message *msg) +{ + msg->show(); +} + +static void _cdecl +hook_CreateMessageText(long,Message *msg) +{ + int area = msg->area; + + msg->msgArea = new MsgArea; + + msg->setArea(area); + + msg->createMsgTextFile("MSGTMP",FALSE); + + delete msg->msgArea; + + msg->area = area; +} + +static void _cdecl +hook_CreateMessageTextString(long,Message *msg,char *s,int maxsize) +{ +#ifdef DEBUG_PEX + LOG("DEBUG: CreateMessageTextString( ... maxsize = %d)" , clockticks() , maxsize); +#endif + int area = msg->area; + + msg->msgArea = new MsgArea; + + msg->setArea(area); + + msg->createMsgTextString(s,maxsize); + + delete msg->msgArea; + + msg->area = area; + +#ifdef DEBUG_PEX + LOG("DEBUG: CreateMessageTextString()", clockticks()); +#endif +} + +static bool _cdecl +hook_FirstMessage(long,Message *msg,int area,int order,long first) +{ +#ifdef DEBUG_PEX + LOG("DEBUG: FirstMessage( ... , area = %d , order = %d , first = %ld)" , clockticks() , area,order,first); +#endif + msg->clear(); + + msg->msgArea = new MsgArea; + + msg->setArea(area); + + bool r = msg->readFirst(READMSG_ALL,order,first,""); + + area = msg->areaNum(); + + delete msg->msgArea; + + msg->area = area; + +#ifdef DEBUG_PEX + LOG("DEBUG: FirstMessage() = %s", clockticks() , r?"TRUE":"FALSE"); +#endif + + return r; +} + +static bool _cdecl +hook_NextMessage(long,Message *msg,int area,int order) +{ +#ifdef DEBUG_PEX + LOG("DEBUG: NextMessage( ... , area = %d , order = %d )" , clockticks() , area,order); +#endif + msg->msgArea = new MsgArea; + + msg->setArea(area); + + bool r = msg->readNext(READMSG_ALL,order,""); + + area = msg->areaNum(); + + delete msg->msgArea; + + msg->area = area; + +#ifdef DEBUG_PEX + LOG("DEBUG: NextMessage() = %s", clockticks() , r?"TRUE":"FALSE"); +#endif + return r; +} + +static void _cdecl +hook_DeleteMessage(long,Message *msg) +{ + int area = msg->area; + + msg->msgArea = new MsgArea; + + msg->setArea(area); + + msg->remove(); + + delete msg->msgArea; + + msg->area = area; +} + +static void _cdecl +hook_MarkMessage(long,int area,long msgnum) +{ + MsgArea ma; + + if(!ma.read(area)) return; + + markedmsglist.add(MessageIndex(area,msgnum)); +} + +static long _cdecl +hook_GetLastRead(long,int area,long userrec) +{ + MsgArea ma; +#ifdef DEBUG_PEX + + LOG("DEBUG: GetLastRead( area = %d , recno = %ld )" , clockticks() , area,userrec); + + if(!ma.read(area)) + { + LOG("SDK: Area not found"); + return -1; + } + + long n = ma.msgNum(ma.lastRead(userrec)); + + LOG("DEBUG: GetLastRead() = %ld" , clockticks() , n); + + return n; +#else + if(!ma.read(area)) return -1; + + return ma.lastRead(userrec); +#endif +} + +static void _cdecl +hook_SetLastRead(long,int area,long userrec,long num) +{ + MsgArea ma; +#ifdef DEBUG_PEX + LOG("DEBUG: SetLastRead( area = %d , recno = %ld , num = %ld )",area,userrec,num); +#endif + if(!ma.read(area)) return; + + ma.setLastRead(userrec,num); +} + +long +hook_MsgId( long , int area , long num) +{ + MsgArea ma; + + if(!ma.read(area)) return -1; + + return ma.msgId(num); +} + +long +hook_MsgNum( long , int area , long id) +{ + MsgArea ma; + + if(!ma.read(area)) return -1; + + return ma.msgNum(id); +} + +long +hook_HighMsg(long,int area) +{ + MsgArea ma; + + if(!ma.read(area)) return -1; + + return ma.highMsg(); +} + +long +hook_NumMsgs(long,int area) +{ + MsgArea ma; + + if(!ma.read(area)) return -1; + + return ma.numMsgs(); +} + +static void _cdecl +hook_UnMarkAllMessages() +{ + markedmsglist.clear(); +} + +static void _cdecl +hook_ReadMarkedMessages() +{ + readmsg("0 /N"); +} + +static void _cdecl +hook_ListMarkedMessages() +{ + qscan_msg("0 /N"); +} + +static bool _cdecl +hook_Ask(long,bool def) +{ + return (io.ask(def) ? TRUE : FALSE); +} + +static char _cdecl +hook_PeekChar() +{ + return io.readkey(); +} + +static KEY _cdecl +hook_ScanKey() +{ + if(KB.hit()) return KB.get(); + else return 0; +} + +static void _cdecl +hook_InitLineCounter() +{ + linecounter(0); +} + +static bool _cdecl +hook_LineCounter() +{ + return linecounter() ? FALSE : TRUE; +} + +static int _cdecl +hook_FuzzySearch(long,char *text,char *search,int degree) +{ + return fuzzy_search(search,text,degree); +} + +static bool _cdecl +hook_ExternalInput() +{ + return io.external ? TRUE:FALSE; +} + +static void _cdecl +hook_GotoXY(long,int x,int y) +{ + io.move(x,y); + io.flush(); +} + +static void _cdecl +hook_SetFullColor(long,byte x) +{ + io.fullcolor(x); + io.flush(); +} + +static int _cdecl +hook_ErrorLevel() +{ + return returnvalue; +} + +static void _cdecl +hook_ClrEol() +{ + io.clreol(); + io.flush(); +} + +static bool _cdecl +hook_GetIniVar(long,char *a,char *b,char *c,int d) +{ + return get_ini_var(a,b,c,d); +} + +static bool _cdecl +hook_SetIniVar(long,char *a,char *b,char *c) +{ + return set_ini_var(a,b,c); +} + +static void _cdecl +hook_ParseStringVars(long,char *input , char *output , int maxlen) +{ + String s = replace_stringvars(input); + + strncpy(output , s , maxlen); + output[maxlen] = '\0'; +} + +static bool _cdecl +hook_LocalDisplay(long,bool a) +{ + bool r = io.show_local; + + io.show_local = a; + + return r; +} + +static bool _cdecl +hook_ShowRIPscrip(long,char *a) +{ + return show_rip(a,FALSE); +} + +static bool _cdecl +hook_RIP(long) +{ + return rip_mode; +} + +static bool _cdecl +hook_RemoteDisplay(long,bool a) +{ + bool r = io.show_remote; + + io.show_remote = a; + + return r; +} + +static int _cdecl +hook_TimeUntilEvent(long) +{ + return (event_due - timer.online()); +} + +static void _cdecl +hook_ResetInactivity(long) +{ + timer.clearinactivity(); +} + +typedef struct + { + char name[13]; + word area; + } SDK_TAGGED_FILE; + +static int _cdecl +hook_GetTaggedFiles(long,SDK_TAGGED_FILE *array,int max) +{ + int n = 0; + + for(taglist.rewind(); !taglist.eol() && n < max ; n++,taglist++) + { + strncpy(array[n].name,taglist.get().name,12); + array[n].name[12] = '\0'; + array[n].area = taglist.get().area; + } + + return n; +} + +bool +hook_PutTaggedFiles(long,SDK_TAGGED_FILE *array,int n) +{ + taglist.kill(); + + for(int i=0;iname,tag->area)) + { + FilesIdx idx; + + strncpy(idx.name,tag->name,12); + idx.name[12] = '\0'; + idx.area = tag->area; + + taglist.add(idx); + + return TRUE; + } + else + { + return FALSE; + } +} + +bool +hook_RemoveTaggedFile(SDK_TAGGED_FILE *tag) +{ + if(is_tagged(tag->name,tag->area)) + { + for(taglist.rewind() ; !taglist.eol() ; taglist++) + { + if(!stricmp(tag->name,taglist.get().name) && tag->area == taglist.get().area) + { + taglist.remove(); + + return TRUE; + } + } + } + + return FALSE; +} + +void +hook_ClearTaggedFiles(long) +{ + taglist.kill(); +} + + +bool +hook_IsTagged(long,SDK_TAGGED_FILE *tag) +{ + return is_tagged(tag->name,tag->area); +} + + +//------------------------- +// THESE WERE ADDED IN V2.2 +//------------------------- + +static +int _cdecl hook_getdisk( long ) +{ + return getdisk(); +} + +static +int _cdecl hook_getcurdir( long, + int drive, + char *directory ) +{ + return getcurdir( drive, directory ); +} + +static +unsigned _cdecl hook_dos_getftime( long, + int fd, + unsigned *date, + unsigned *time ) +{ + return _dos_getftime( fd, date, time ); +} + +static +unsigned _cdecl hook_dos_setftime( long, + int fd, + unsigned date, + unsigned time ) +{ + return _dos_setftime( fd, date, time ); +} + +static +int _cdecl hook_fileno( long, + FILE *a ) +{ + return fileno( a ); +} + + +/******* END OF HOOKS ********************************************************/ + +typedef void _far *DataHook; +typedef void _far *FuncHook; + +typedef int (_far _cdecl *MainFunc)(int,char *[]); + +struct ExeHeader + { + unsigned Signature; + unsigned PartPage; + unsigned PageCount; + unsigned NumRelocItems; + unsigned HeaderSize; + unsigned MinMem; + unsigned MaxMem; + unsigned SS; + unsigned SP; + unsigned Checksum; + unsigned IP; + unsigned CS; + unsigned FirstReloc; + unsigned Overlay; + }; + +struct PexHdr + { + unsigned host_DS; + MainFunc entry; + void _far *functable; + void _far *datatable; + unsigned Version; + }; + +struct PexRes + { + String name; + MainFunc func; + DataHook data; + void *p; + void (_far _cdecl *constr)(void); + void (_far _cdecl *destr )(void); + }; + +struct DataStruct + { + DataHook user; + DataHook login_date; + DataHook login_time; + DataHook user_recnr; + DataHook limit; + DataHook num_limits; + DataHook net_entered; + DataHook echo_entered; + DataHook num_users; + DataHook node_number; + DataHook curmenu; + DataHook user_firstname; + DataHook lastuser; + DataHook mypath; + DataHook syspath; + DataHook cfg; + DataHook version; + DataHook baud; + DataHook beta; + DataHook page_reason; + DataHook num_yells; + }; + +inline void +init_values(DataStruct *p) +{ + p->user = (DataHook) &user; + p->login_date = (DataHook) &login_date; + p->login_time = (DataHook) &login_time; + p->user_recnr = (DataHook) (long) user_recnr; + p->limit = (DataHook) &limit; + p->num_limits = (DataHook) (long) num_limits; + p->net_entered = (DataHook) (long) net_entered; + p->echo_entered = (DataHook) (long) echo_entered; + p->num_users = (DataHook) (long) num_users; + p->node_number = (DataHook) (long) node_number; + p->curmenu = (DataHook) &curmenu[0]; + p->user_firstname = (DataHook) &user_firstname[0]; + p->lastuser = (DataHook) &lastcaller.name[0]; + p->mypath = (DataHook) &mypath[0]; + p->syspath = (DataHook) &syspath[0]; + p->cfg = (DataHook) &cfg; + p->version = (DataHook) (long) VER_WORD; + p->baud = (DataHook) (long) io.baud; + p->beta = (DataHook) (long) VER_BETA; + p->page_reason = (DataHook) page_reason; + p->num_yells = (DataHook) (long) &num_yells; +} + +inline void +update_values(DataStruct *) +{ +} + +static bool _near load_pex(char *pexname); + +static PexRes res_pex[100]; +static bool internal; + +static bool _near +is_resident(char *name) +{ + for(int i=0;i<100;i++) if(res_pex[i].name == name) return TRUE; + + return FALSE; +} + +static void _near +add_resident(PexRes &x) +{ + for(int i=0;i<100;i++) + if(res_pex[i].name[0] == '\0') + { + res_pex[i].name = x.name; + res_pex[i].func = x.func; + res_pex[i].data = x.data; + res_pex[i].p = x.p; + res_pex[i].constr = x.constr; + res_pex[i].destr = x.destr; + + return; + } +} + +static void _near +remove_resident(char *name) +{ + for(int i=0;i<100;i++) + if(res_pex[i].name == name) + { + word ds = FP_SEG(res_pex[i].data); + + for( sysopkey_handlers.rewind() ; !sysopkey_handlers.eol() ; ) + if(sysopkey_handlers.get().ds == ds) + { + sysopkey_handlers.remove(); + } + else + { + sysopkey_handlers++; + } + + for( hangup_handlers.rewind() ; !hangup_handlers.eol() ; ) + if(hangup_handlers.get().ds == ds) + { + hangup_handlers.remove(); + } + else + { + hangup_handlers++; + } + + if(res_pex[i].destr) (*res_pex[i].destr)(); // Call static destructors + + farfree(res_pex[i].p); + + res_pex[i].name.clear(); + res_pex[i].func = NULLFUNC; + res_pex[i].data = NULL; + res_pex[i].p = NULL; + res_pex[i].constr = NULL; + res_pex[i].destr = NULL; + + return; + } +} + +static int _near +run_resident(char *name,int argc,char *argv[]) +{ + for(int i=0;i<100;i++) + if(res_pex[i].name == name) + { + init_values((DataStruct *)res_pex[i].data); + int r = (*res_pex[i].func)(argc,argv); + update_values((DataStruct *)res_pex[i].data); + + return r; + } + + return -1; +} + + +int +run_sdkfile(char *data) +{ + internal = FALSE; + + String param[20]; + String tmps; + FileName pexfullname; + + int npara = parse_data(data,param); + + for(int i=0;i",(char *)fn); + return FALSE; + } + + ExeHeader exehdr; + + f.read(&exehdr,sizeof(exehdr)); + + long l = 512L*exehdr.PageCount-16L*exehdr.HeaderSize+exehdr.PartPage-(exehdr.PartPage ? 512:0); + long allocsize = long(exehdr.SS+2) << 4L; + + char *ptr; + + if((ptr = (char *)farmalloc(allocsize))==NULL) + { + LOG("PEX file <%s> : Not enough memory",pexname); + return FALSE; + } + else + { + byte huge *hptr = (byte huge *)ptr; + + for(long x = 0 ; x < allocsize ; x++) hptr[x] = '\0'; + } + + res.p = ptr; + + ptr = (char *)normalize_ptr(ptr); // Normalize pointer + ptr = (char *)MK_FP(FP_SEG(ptr)+1,0); // Make zero-offset pointer + + f.seek(16L*exehdr.HeaderSize); + + { + char * p = ptr; + + for(;;) + { + int n; + + if(!l) break; + + if(l<30000) n = f.read(p,unsigned(l)); + else n = f.read(p,30000); + + l -= n; + p = (char *)normalize_ptr(p+n); + } + } + + if(exehdr.NumRelocItems) + { + f.seek(exehdr.FirstReloc); + word loadseg = FP_SEG(ptr); + + for(int i=0;i",(char *)fn); + return FALSE; + } + + if(((PexHdr *)ptr)->Version>VER_NUM) + { + LOG("PEX file <%s> needs ProBoard v%d.%d",(char *)fn,((PexHdr *)ptr)->Version/100,((PexHdr *)ptr)->Version%100); + return FALSE; + } + + if(((PexHdr *)ptr)->Version < 200) + { + LOG("PEX file <%s> compiled with old SDK (v%d.%d), please upgrade!",(char *)fn,((PexHdr *)ptr)->Version/100,((PexHdr *)ptr)->Version%100); + return FALSE; + } + + if(((PexHdr *)ptr)->Version >= 129) + { + res.constr = (void (_far _cdecl *)(void)) (*(long *)(ptr - 4)); + res.destr = (void (_far _cdecl *)(void)) (*(long *)(ptr - 8)); + } + else + { + res.constr = NULL; + res.destr = NULL; + } + + SCRAMBLE(); + + ((PexHdr *)ptr)->host_DS = _DS; + + FuncHook *fptr = (FuncHook *)(((PexHdr *)ptr)->functable); + + *(fptr++) = (FuncHook) hook_l_mul; + *(fptr++) = (FuncHook) hook_l_div; + *(fptr++) = (FuncHook) hook_l_mod; + *(fptr++) = (FuncHook) hook_ul_div; + *(fptr++) = (FuncHook) hook_ul_mod; + *(fptr++) = (FuncHook) hook_l_shl; + *(fptr++) = (FuncHook) hook_l_shr; + *(fptr++) = (FuncHook) hook_ul_shl; + *(fptr++) = (FuncHook) hook_ul_shr; + *(fptr++) = (FuncHook) hook_fopen; + *(fptr++) = (FuncHook) hook_freopen; + *(fptr++) = (FuncHook) hook_fseek; + *(fptr++) = (FuncHook) hook_ftell; + *(fptr++) = (FuncHook) hook_fgets; + *(fptr++) = (FuncHook) hook_fgetc; + *(fptr++) = (FuncHook) hook_fflush; + *(fptr++) = (FuncHook) hook_fclose; + *(fptr++) = (FuncHook) hook_fputs; + *(fptr++) = (FuncHook) hook_getc; + *(fptr++) = (FuncHook) hook_getchar; + *(fptr++) = (FuncHook) hook_gets; + *(fptr++) = (FuncHook) hook_fputc; + *(fptr++) = (FuncHook) hook_putc; + *(fptr++) = (FuncHook) hook_putchar; + *(fptr++) = (FuncHook) hook_puts; + *(fptr++) = (FuncHook) hook_fread; + *(fptr++) = (FuncHook) hook_fwrite; + *(fptr++) = (FuncHook) hook_printf; + *(fptr++) = (FuncHook) hook_fprintf; + *(fptr++) = (FuncHook) hook_vfprintf; + *(fptr++) = (FuncHook) hook_vprintf; + *(fptr++) = (FuncHook) hook_sprintf; + *(fptr++) = (FuncHook) hook_vsprintf; + *(fptr++) = (FuncHook) hook_setbuf; + *(fptr++) = (FuncHook) hook_setvbuf; + *(fptr++) = (FuncHook) hook_rename; + *(fptr++) = (FuncHook) hook_rewind; + *(fptr++) = (FuncHook) hook_clearerr; + *(fptr++) = (FuncHook) hook_feof; + *(fptr++) = (FuncHook) hook_isalnum; + *(fptr++) = (FuncHook) hook_isalpha; + *(fptr++) = (FuncHook) hook_iscntrl; + *(fptr++) = (FuncHook) hook_isdigit; + *(fptr++) = (FuncHook) hook_isgraph; + *(fptr++) = (FuncHook) hook_islower; + *(fptr++) = (FuncHook) hook_isprint; + *(fptr++) = (FuncHook) hook_ispunct; + *(fptr++) = (FuncHook) hook_isspace; + *(fptr++) = (FuncHook) hook_isupper; + *(fptr++) = (FuncHook) hook_isxdigit; + *(fptr++) = (FuncHook) hook_toupper; + *(fptr++) = (FuncHook) hook_tolower; + *(fptr++) = (FuncHook) hook_int86; + *(fptr++) = (FuncHook) hook_int86x; + *(fptr++) = (FuncHook) hook_intdos; + *(fptr++) = (FuncHook) hook_intdosx; + *(fptr++) = (FuncHook) hook_dos_findfirst; + *(fptr++) = (FuncHook) hook_dos_findnext; + *(fptr++) = (FuncHook) hook_read; + *(fptr++) = (FuncHook) hook_write; + *(fptr++) = (FuncHook) hook_open; + *(fptr++) = (FuncHook) hook_creat; + *(fptr++) = (FuncHook) hook_close; + *(fptr++) = (FuncHook) hook_unlink; + *(fptr++) = (FuncHook) hook_remove; + *(fptr++) = (FuncHook) hook_chsize; + *(fptr++) = (FuncHook) hook_dup; + *(fptr++) = (FuncHook) hook_dup2; + *(fptr++) = (FuncHook) hook_lseek; + *(fptr++) = (FuncHook) hook_access; + *(fptr++) = (FuncHook) hook_filesize; + *(fptr++) = (FuncHook) hook_filelength; + *(fptr++) = (FuncHook) hook_isatty; + *(fptr++) = (FuncHook) hook_atoi; + *(fptr++) = (FuncHook) hook_atol; + *(fptr++) = (FuncHook) hook_strtol; + *(fptr++) = (FuncHook) hook_rand; + *(fptr++) = (FuncHook) hook_srand; + *(fptr++) = (FuncHook) hook_calloc; + *(fptr++) = (FuncHook) hook_free; + *(fptr++) = (FuncHook) hook_malloc; + *(fptr++) = (FuncHook) hook_realloc; + *(fptr++) = (FuncHook) hook_getenv; + *(fptr++) = (FuncHook) NULL; // hook_bsearch; + *(fptr++) = (FuncHook) NULL; // hook_qsort; + *(fptr++) = (FuncHook) hook_abs; + *(fptr++) = (FuncHook) hook_labs; + *(fptr++) = (FuncHook) hook_memcpy; + *(fptr++) = (FuncHook) hook_memmove; + *(fptr++) = (FuncHook) hook_strcpy; + *(fptr++) = (FuncHook) hook_strncpy; + *(fptr++) = (FuncHook) hook_strcat; + *(fptr++) = (FuncHook) hook_strncat; + *(fptr++) = (FuncHook) hook_memcmp; + *(fptr++) = (FuncHook) hook_strcmp; + *(fptr++) = (FuncHook) hook_strncmp; + *(fptr++) = (FuncHook) hook_memchr; + *(fptr++) = (FuncHook) hook_strchr; + *(fptr++) = (FuncHook) hook_strcspn; + *(fptr++) = (FuncHook) hook_strpbrk; + *(fptr++) = (FuncHook) hook_strrchr; + *(fptr++) = (FuncHook) hook_strspn; + *(fptr++) = (FuncHook) hook_strstr; + *(fptr++) = (FuncHook) hook_strtok; + *(fptr++) = (FuncHook) hook_memset; + *(fptr++) = (FuncHook) hook_strlen; + *(fptr++) = (FuncHook) hook_memicmp; + *(fptr++) = (FuncHook) hook_stpcpy; + *(fptr++) = (FuncHook) hook_strcmpl; + *(fptr++) = (FuncHook) hook_strnicmp; + *(fptr++) = (FuncHook) hook_strdup; + *(fptr++) = (FuncHook) hook_strlwr; + *(fptr++) = (FuncHook) hook_strupr; + *(fptr++) = (FuncHook) hook_strnset; + *(fptr++) = (FuncHook) hook_strrev; + *(fptr++) = (FuncHook) hook_strset; + *(fptr++) = (FuncHook) hook_swab; + *(fptr++) = (FuncHook) hook_clock; + *(fptr++) = (FuncHook) hook_time; + *(fptr++) = (FuncHook) hook_mktime; + *(fptr++) = (FuncHook) hook_asctime; + *(fptr++) = (FuncHook) hook_ctime; + *(fptr++) = (FuncHook) hook_localtime; + *(fptr++) = (FuncHook) hook_gmtime; + *(fptr++) = (FuncHook) hook_strftime; + *(fptr++) = (FuncHook) hook_sleep; + *(fptr++) = (FuncHook) hook_usleep; + *(fptr++) = (FuncHook) hook_msleep; + *(fptr++) = (FuncHook) hook_form; + *(fptr++) = (FuncHook) hook_MemAvail; + *(fptr++) = (FuncHook) hook_SetColor; + *(fptr++) = (FuncHook) hook_MenuFunction; + *(fptr++) = (FuncHook) hook_WaitKey; + *(fptr++) = (FuncHook) hook_WaitKeys; + *(fptr++) = (FuncHook) hook_Input; + *(fptr++) = (FuncHook) hook_Log; + *(fptr++) = (FuncHook) hook_HangUp; + *(fptr++) = (FuncHook) hook_PostMessage; + *(fptr++) = (FuncHook) hook_ReadMsgArea; + *(fptr++) = (FuncHook) hook_MsgEd; + *(fptr++) = (FuncHook) hook_AddTime; + *(fptr++) = (FuncHook) hook_TimeLeft; + *(fptr++) = (FuncHook) hook_TimeOnline; + *(fptr++) = (FuncHook) hook_CheckAccess; + *(fptr++) = (FuncHook) hook_SuspendTimer; + *(fptr++) = (FuncHook) hook_RestartTimer; + *(fptr++) = (FuncHook) hook_InstallHandler; + *(fptr++) = (FuncHook) hook_EnableStop; + *(fptr++) = (FuncHook) hook_DisableStop; + *(fptr++) = (FuncHook) hook_Stopped; + *(fptr++) = (FuncHook) hook_IO_SendByte; + *(fptr++) = (FuncHook) hook_IO_ReadByte; + *(fptr++) = (FuncHook) hook_IO_Carrier; + *(fptr++) = (FuncHook) hook_IO_ByteReady; + *(fptr++) = (FuncHook) hook_IO_BufEmpty; + *(fptr++) = (FuncHook) hook_IO_StartBreak; + *(fptr++) = (FuncHook) hook_IO_StopBreak; + *(fptr++) = (FuncHook) hook_IO_DTR; + *(fptr++) = (FuncHook) hook_PostInfo; + *(fptr++) = (FuncHook) hook_ShowHotkeyFile; + *(fptr++) = (FuncHook) hook_ShowHotkeyANSIFile; + *(fptr++) = (FuncHook) hook_PlayMusic; + *(fptr++) = (FuncHook) hook_AdjustTime; + *(fptr++) = (FuncHook) hook_ReadUser; + *(fptr++) = (FuncHook) hook_WriteUser; + *(fptr++) = (FuncHook) hook_ReadMessage; + *(fptr++) = (FuncHook) hook_WriteMSGTMP; + *(fptr++) = (FuncHook) hook_AppendMSGTMP; + *(fptr++) = (FuncHook) hook_ShowMessage; + *(fptr++) = (FuncHook) hook_CreateMessageText; + *(fptr++) = (FuncHook) hook_FirstMessage; + *(fptr++) = (FuncHook) hook_NextMessage; + *(fptr++) = (FuncHook) hook_DeleteMessage; + *(fptr++) = (FuncHook) hook_PostNetmail; + *(fptr++) = (FuncHook) hook_MarkMessage; + *(fptr++) = (FuncHook) hook_ReadMarkedMessages; + *(fptr++) = (FuncHook) hook_ListMarkedMessages; + *(fptr++) = (FuncHook) hook_UnMarkAllMessages; + *(fptr++) = (FuncHook) hook_Ask; + *(fptr++) = (FuncHook) hook_PeekChar; + *(fptr++) = (FuncHook) hook_ScanKey; + *(fptr++) = (FuncHook) hook_InitLineCounter; + *(fptr++) = (FuncHook) hook_LineCounter; + *(fptr++) = (FuncHook) hook_ReadFileArea; + *(fptr++) = (FuncHook) hook_CreateMessageTextString; + *(fptr++) = (FuncHook) hook_FuzzySearch; + *(fptr++) = (FuncHook) hook_RemoveHandler; + *(fptr++) = (FuncHook) hook_ExternalInput; + *(fptr++) = (FuncHook) hook_GotoXY; + *(fptr++) = (FuncHook) hook_SetFullColor; + *(fptr++) = (FuncHook) hook_putenv; + *(fptr++) = (FuncHook) hook_ErrorLevel; + *(fptr++) = (FuncHook) hook_ClrEol; + *(fptr++) = (FuncHook) hook_GetIniVar; + *(fptr++) = (FuncHook) hook_SetIniVar; + *(fptr++) = (FuncHook) hook_NumMsgAreas; + *(fptr++) = (FuncHook) hook_NumFileAreas; + *(fptr++) = (FuncHook) hook_GetLastRead; + *(fptr++) = (FuncHook) hook_SetLastRead; + *(fptr++) = (FuncHook) hook_ReadHandler; + *(fptr++) = (FuncHook) hook_RestoreHandler; + *(fptr++) = (FuncHook) hook_ParseStringVars; + *(fptr++) = (FuncHook) hook_LocalDisplay; + *(fptr++) = (FuncHook) hook_ShowRIPscrip; + *(fptr++) = (FuncHook) hook_RIP; + *(fptr++) = (FuncHook) hook_RemoteDisplay; + *(fptr++) = (FuncHook) hook_MsgNum; + *(fptr++) = (FuncHook) hook_MsgId; + *(fptr++) = (FuncHook) hook_HighMsg; + *(fptr++) = (FuncHook) hook_NumMsgs; + *(fptr++) = (FuncHook) hook_TimeUntilEvent; + *(fptr++) = (FuncHook) hook_ResetInactivity; + *(fptr++) = (FuncHook) hook_mkdir; + *(fptr++) = (FuncHook) hook_rmdir; + *(fptr++) = (FuncHook) hook_chdir; + *(fptr++) = (FuncHook) hook_GetTaggedFiles; + *(fptr++) = (FuncHook) hook_PutTaggedFiles; + *(fptr++) = (FuncHook) hook_AddTaggedFile; + *(fptr++) = (FuncHook) hook_RemoveTaggedFile; + *(fptr++) = (FuncHook) hook_ClearTaggedFiles; + *(fptr++) = (FuncHook) hook_IsTagged; + *(fptr++) = (FuncHook) hook_SetUser; + *(fptr++) = (FuncHook) hook_IO_SendBlock; + *(fptr++) = (FuncHook) hook_IO_ReadBlock; + + + //------------------- + // New, added in v2.2 + //------------------- + + *(fptr++) = (FuncHook) hook_getdisk; + *(fptr++) = (FuncHook) hook_getcurdir; + *(fptr++) = (FuncHook) hook_dos_getftime; + *(fptr++) = (FuncHook) hook_dos_setftime; + *(fptr++) = (FuncHook) hook_fileno; + + res.name = pexname; + res.func = ((PexHdr *)ptr)->entry; + res.data = (DataStruct *)(((PexHdr *)ptr)->datatable); + + add_resident(res); + + init_values((DataStruct *)res.data); + + if(res.constr) (*res.constr)(); + + return TRUE; +} + diff --git a/LOADPEX.OBJ b/LOADPEX.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..70eb22401fa653cad58cbca8edd1226043163c06 GIT binary patch literal 34574 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 +#include +#include +#include +#include +#include "proboard.hpp" + + +static bool newuser( char *username ); + +static bool check_trashcan( char *username ); + + + +//------------------------------- +// 0 -> ok -1 -> User violation +//------------------------------- + +int login() +{ + char username[ 36 ]; + char password[ 16 ]; + int i; + bool systempwd_ok = FALSE; + bool login_pex_found = FALSE; + + + for ( ; ; ) + { + if ( ! io.baud && + cfg.allowquicklogin ) + { + tsw_showfooter( "Press [Enter] to login as sysop", BAR_COLOR ); + } + + + bool ansi = user.uFlags & UFLAG_ANSI; + + + user.newUser(); + + strcpy( user.language, cfg.defaultLanguage ); + + user.logLevel = 1; + + + if ( ansi ) + { + user.uFlags |= UFLAG_ANSI; + } + + + //---------------------------- + // JDR: REGISTRATION REFERENCE + //---------------------------- + + if ( ! registered ) + { + char *s = "\rProBoard v" VERSION " [UNREGISTERED]\n"; + + + // LOG( "crc = %08lX", crc32( s ) ); + + + /* if ( crc32( s ) != 0x17D65243L ) + { + exit_proboard(); + } */ + + + io << s; + } + + + if ( cfg.usesystempwd && + cfg.systempwd[ 0 ] && + ! systempwd_ok ) + { + showansascrip( "BEFOREPW" ); + + + for ( int i = 0; i < cfg.max_passinput; i++ ) + { + char pwd[ 16 ]; + + + io << S_ENTER_SYSTEM_PASSWORD; + + io.read( pwd, + 15, + READMODE_PWD ); + + io << "\n\n\xFF"; + + + if ( pwd[ 0 ] ) + { + if ( ! stricmp( pwd, cfg.systempwd ) ) + { + break; + } + + + io << S_WRONG_PASSWORD + << "\n\n"; + + LOG( "Wrong system password: '%s'", pwd ); + } + } + + + if ( i == cfg.max_passinput ) + { + LOG( "Exceeded maximum retries." ); + + io << "\n\n" + << S_HANGING_UP + << "\n\xFF"; + + LOG( "Hanging up" ); + + sleep( 2 ); + + exit_proboard(); + } + + + systempwd_ok = TRUE; + + showansascrip( "AFTERPW" ); + } + + + user_recnr = -1; + + + if ( run_sdkfile( form( "/I _LOGIN %lu", + (dword) username ) ) >= 0 ) + { + login_pex_found = TRUE; + } + + + if ( user_recnr >= 0 ) + { + break; + } + + + if ( ! login_pex_found ) + { + io << '\r' + << S_ENTER_YOUR_NAME; + + + int saved_x; + int saved_y; + + + SCREEN.getPos( saved_x, saved_y ); + + io.read( username, + 35, + READMODE_UPFIRST ); + + + if ( strchr( username, ';' ) ) + { + *strchr( username, ';' ) = '\0'; + } + + + for ( i = 0; username[ i ]; i++ ) + { + if ( username[ i ] == '\xFF' ) + { + username[ i ] = ' '; + } + } + + + strip_trailing( username ); + strip_leading( username ); + + tsw_showfooter( "", BAR_COLOR ); + + + if ( ! username[ 0 ] ) + { + if ( ! io.baud ) + { + strcpy( username, cfg.sysopname ); + + SCREEN.setPos( saved_x, saved_y ); + + SCREEN.attrib( ( SCREEN.attrib() & 0xF ) | 0x10 ); + + + io << username; + + + for ( i = 0; i < 35 - strlen( username ); i++ ) + { + io << ' '; + } + } + else + { + io << "\n\n\xFF"; + + continue; + } + } + + + if ( check_trashcan( username ) ) + { + LOG( "Trashcan name: \"%s\"", username ); + + io << "\n\n"; + + + if ( showansascrip( "TRASHCAN" ) == ANS_NOFILE ) + { + io << S_ILLEGAL_NAME + << "\n\n"; + } + + + continue; + } + + + rip_reset(); + rip_textmode(); + + + io << "\n\n\7" + << S_SCANNING_USER_FILE + << char( 0xFF ); + + + bool found = user.search( username ); + + + while ( found && + ( user.uFlags & UFLAG_DELETED ) ) + { + found = user.searchNext(); + } + + + user_recnr = found + ? int( user.record ) + : -1; + + + if ( ! found && + cfg.allowalias ) + { + found = user.search( username, + TRUE, + FALSE, + TRUE ); + + user_recnr = found + ? int( user.record ) + : -1; + } + + + if ( user_recnr < 0 && + ! cfg.allowoneword && + ! strchr( username, ' ' ) ) + { + LOG( "Illegal name: \"%s\"", username ); + + io << "\n\n" + << S_WRONG_NAME_FORMAT + << "\n\n"; + + + continue; + } + } + + + login_date.today(); + login_time.now(); + + + if ( user_recnr < 0 ) + { + LOG( "User not located : %s", username ); + + run_sdkfile( "/I NEWUSER" ); + + showansascrip( "NEWUSER" ); + + + io << "\n\n" + << S_ARE_YOU_A_NEW_USER( username ); + + + if ( io.ask( 0 ) ) + { + /*if ( ! registered && + num_users >= MAX_UNREG_USERS ) + { + io << "\n\n" + << "This unregistered version of ProBoard cannot create any more new accounts\n" + << "\n\n"; + + continue; + }*/ + + + user_recnr = newuser( username ) + ? int( user.record ) + : ( -1 ); + + return 0; + } + else + { + io << "\n\n"; + + LOG( "Name misspelled (%s).", username ); + + + continue; + } + } + else + { + break; + } + } + + + read_taglist(); + + login_date.today(); + login_time.now(); + + + if ( user.language[ 0 ] ) + { + if ( ! ReadLanguage( user.language ) ) + { + if ( ! ReadLanguage( cfg.defaultLanguage ) ) + { + fatalerror( "Default language not found" ); + } + } + + + readconfig(); + } + + + if ( ! user.lastNewFilesCheck.ok() ) + { + user.lastNewFilesCheck.today(); + } + + + if ( user.lastDate != Date( TODAY ) || + ( user.uFlags & UFLAG_GUEST ) ) + { + user.timeUsed = 0; + user.kbToday = 0; + } + + + if ( user.level < min_level ) + { + LOG( "User \"%s\" not allowed to logon", user.name ); + + + if ( showansascrip( "NOACCESS" ) == ANS_NOFILE ) + { + io << "\7\n\n" + << S_NO_ACCESS_ON_THIS_NODE + << "\n\xFF"; + } + + + sleep( 2 ); + + exit_proboard(); + } + + + if ( ( user.uFlags & UFLAG_LOCALONLY ) && + io.baud ) + { + LOG( "User \"%s\" not allowed to logon from remote", user.name ); + + io << "\7\n\n" + << S_NO_ACCESS_ON_THIS_NODE + << "\n\xFF"; + + sleep( 2 ); + + exit_proboard(); + } + + + update_display(); + + LOG( "User logged in: %s", user.name ); + + + if ( ! login_pex_found ) + { + for ( i = 0; io.baud || ! cfg.allowquicklogin; i++ ) + { + io << "\n\n"; + + + if ( ! i ) + { + showansascrip( "BEFOREPW" ); + } + + + io << S_ENTER_PASSWORD; + + io.read( password, + 15, + READMODE_PWD ); + + + if ( user.passWord[ 0 ] == '\0' ) + { + if ( RaCrc( password ) == user.passWordCRC ) + { + break; + } + } + else + { + if ( ! stricmp( user.passWord, password ) ) + { + break; + } + } + + + LOG( "Wrong password: %s", password ); + + io << "\n\n" + << S_WRONG_PASSWORD; + + + if ( i == cfg.max_passinput - 1 ) + { + LOG( "User exceeded maximum password tries" ); + + + if ( cfg.pwdmessages && + ! ( user.uFlags & UFLAG_GUEST ) ) + { + LOG( "Posting message to user & sysop" ); + + write_msgtmp( form( "Someone failed to login using your name on %d %s %d, at %02d:%02d\r\n", + login_date[ 0 ], + months_short[ login_date[ 1 ] ], + login_date[ 2 ] + 1900, // Y2K OK + login_time[ 0 ], + login_time[ 1 ] ) ); + + post_message( "ProBoard Security Manager", + user.name, + "Password violation", + cfg.securityboard, + TRUE); + + write_msgtmp( form( "Someone failed to login as '%s' on %d %s %d, at %02d:%02d\r\n", + user.name, + login_date[ 0 ], + months_short[ login_date[ 1 ] ], + login_date[ 2 ] + 1900, // Y2K OK + login_time[ 0 ], + login_time[ 1 ] ) ); + + post_message( "ProBoard Security Manager", + cfg.sysopname, + "Password violation", + cfg.securityboard, + TRUE ); + } + + + io << "\n\n" + << S_LEAVE_MESSAGE_TO_SYSOP; + + + if ( io.ask() ) + { + io << '\n'; + + writemsg( form( "%d /T=Sysop", + cfg.securityboard ) ); + } + + + io << "\n\n" + << S_HANGING_UP + << "\n\xFF"; + + LOG( "Hanging up" ); + + sleep( 2 ); + + user_recnr = -1; + + + return -1; + } + } + + + showansascrip( "AFTERPW" ); + } + + + io << '\n'; + + + if ( cfg.asksex && + ! user.sex ) + { + io << '\n' + << S_ASK_SEX; + + + char k = wait_language_hotkeys( K_ASK_SEX, FALSE ); + + + user.sex = k + 1; + + + io << ( k ? S_FEMALE + : S_MALE + ); + + io << '\n'; + } + + + if ( cfg.askBirthDay == 1 && + ! user.birthDate.ok() ) + { + do + { + io << '\n' + << S_ASK_BIRTHDATE( date_formats_long[ user.dateFormat ] ); + + InputDate( user.birthDate, user.dateFormat ); + } + while ( ! user.birthDate.ok() ); + + + io << '\n'; + } + + + password_ok = TRUE; + + + if ( ! cfg.allowansi ) + { + user.uFlags &= ~UFLAG_ANSI; + } + + + if ( user.expDate[ 0 ] ) + { + int ex = user.expDate - Date( TODAY ); + + + if ( ex <= 0 ) + { + if ( user.expLevel < user.level ) + { + word oldlevel = user.level; + user.level = user.expLevel; + + + for ( int f = 1; f <= 32; f++ ) + { + if ( user.expFlagsOn.getflag( f ) ) + { + user.aFlags.setflag( f ); + } + } + + + for ( f = 1; f <= 32; f++ ) + { + if ( user.expFlagsOff.getflag( f ) ) + { + user.aFlags.clearflag( f ); + } + } + + + run_sdkfile( form( "/I EXPIRED %u", oldlevel ) ); + + + if ( showansascrip( "EXPIRED" ) == ANS_NOFILE ) + { + io << '\n' + << S_LEVEL_EXPIRED + << "\n\n" + << S_PRESS_ENTER_TO_CONTINUE; + } + } + } + else + { + if ( ex <= 30 ) + { + if ( showansascrip( "EXP_WARN" ) == ANS_NOFILE ) + { + io << '\n' + << S_LEVEL_WILL_EXPIRE( form( "%d", ex ) ) + << "\n\n"; + + io << S_PRESS_ENTER_TO_CONTINUE; + } + } + } + } + + + if ( user.level < 1 ) + { + LOG( "Access denied (Level 0 - Locked out)" ); + + io << '\n' + << S_LOCKED_OUT + << "\n\n" + << S_HANGING_UP + << '\xFF'; + + sleep( 2 ); + + exit_proboard(); + } + + + if ( user.fileArea <= 0 ) + { + user.fileArea = 1; + } + + + if ( user.msgArea <= 0 ) + { + user.msgArea = 1; + } + + + if ( cfg.discrete && + ! strcmpl( user.name, cfg.sysopname ) ) + { + user.uFlags |= UFLAG_HIDDEN; + } + + + if ( user.uFlags & UFLAG_ATTEN ) + { + if ( playsong( "ATTEN", + "\x1b", + 0 ) == 1 ) + { + for ( i = 0; i < 5; i++ ) + { + sound( word( 1000 + i * 400 ) ); + + msleep( 100 ); + } + + + nosound(); + } + } + + + return 0; +} + + + +//------------------------------ +// returns record number of user +//------------------------------ + +static +bool newuser( char *username ) +{ + if ( ! cfg.newuserlevel ) + { + if ( showansascrip( "PRIVATE" ) == ANS_NOFILE ) + { + io << "\n\n" + << S_PRIVATE_SYSTEM << "\n\n" + << S_HANGING_UP << '\xFF'; + } + + + sleep( 2 ); + + LOG( "Private System - New User rejected" ); + + exit_proboard(); + } + + + if ( cfg.newuserlevel < min_level ) + { + if ( showansascrip( "NOACCESS" ) == ANS_NOFILE ) + { + io << "\n\n" + << S_NOT_FOR_NEW_USERS + << "\n\xFF"; + } + + + sleep( 2 ); + + LOG( "New user rejected" ); + + exit_proboard(); + } + + + bool tmp_ansi = ansi_mode; + + + user.newUser(); + + strcpy( user.language, cfg.defaultLanguage ); + + + if ( tmp_ansi ) + { + user.uFlags |= UFLAG_ANSI; + } + + + if ( cfg.europe ) + { + user.dateFormat = 2; + } + + + strcpy( user.name, username ); + + LOG( "Creating new user." ); + + run_sdkfile( "/I NEWUSER1" ); + + showansascrip( "NEWUSER1" ); + + + for ( ; ; ) + { + int num_languages = 0; + DirScan scan( FileName( syspath, "*.PBL" ) ); + + + for ( ; int( scan ); scan++, num_languages++ ) + { + if ( String(scan.name()) == "_DEFAULT.PBL") + { + num_languages--; + } + } + + + if ( num_languages > 1 ) + { + io << "\n\n"; + + select_language(); + } + + + if ( cfg.allowansi ) + { + io << "\n\n" + << S_ASK_ANSI; + + + if ( io.ask( 1 ) ) + { + user.uFlags |= UFLAG_ANSI; + } + } + + + if ( cfg.allowavatar ) + { + io << "\n\n" + << S_ASK_AVATAR; + + + if ( io.ask( 0 ) ) + { + user.uFlags |= UFLAG_AVATAR; + } + + + if ( avatar ) + { + io << "\n\n" + << S_ASK_AVATAR_PLUS; + + + if ( io.ask( 0 ) ) + { + user.uFlags |= UFLAG_AVTPLUS; + } + } + } + + + if ( ansi_mode ) + { + io << "\n\n" + << S_ASK_FSED; + + + if ( io.ask( 1 ) ) + { + user.uFlags |= UFLAG_FSED; + } + } + + + io << "\n\n" + << S_ASK_CLS; + + + if ( io.ask( 1 ) ) + { + user.uFlags |= UFLAG_CLEAR; + } + + + io << "\n\n" + << S_ASK_PAUSE; + + + if ( io.ask( 1 ) ) + { + user.uFlags |= UFLAG_PAUSE; + } + + + io << "\n\n" + << S_ASK_SCREENLENGTH( "24" ); + + + char length[ 3 ]; + + + io.read( length, + 2, + READMODE_DIGITS ); + + user.screenLength = atoi( length ); + + + if ( user.screenLength < 5 ) + { + user.screenLength = 24; + } + + + do + { + do + { + io << "\n\n" + << S_ASK_CITY; + + io.read( user.city, 25 ); + } + while ( strlen( user.city ) < 3 ); + + + if ( cfg.askstate ) + { + io << "\n\n" + << S_ASK_STATE; + + io.read( user.state, 25 ); + } + } + while ( cfg.askstate && + strlen( user.state ) < 2 ); + + + if ( cfg.askcountry ) + { + do + { + io << "\n\n" + << S_ASK_COUNTRY; + + io.read( user.country, 25 ); + } + while ( strlen( user.country ) < 2 ); + } + + + if ( cfg.askaddress ) + { + io << "\n\n" + << S_ASK_MAILING_ADDRESS + << "\n\n"; + + io.read( user.address1, 50 ); + + io << '\n'; + + io.read( user.address2, 50 ); + + io << '\n'; + + io.read( user.address3, 50 ); + } + + + if ( cfg.askvoicephone ) + { + do + { + io << "\n\n" + << S_ASK_VOICE_PHONE; + + io.read( user.voicePhone, 15 ); + } + while ( strlen( user.voicePhone ) < 6 ); + } + + + if ( cfg.askdataphone ) + { + io << "\n\n" + << S_ASK_DATA_PHONE; + + io.read( user.dataPhone, 15 ); + } + + + if ( cfg.askfaxphone ) + { + io << "\n\n" + << S_ASK_FAX_PHONE; + + io.read( user.faxPhone, 15 ); + } + + + if ( cfg.askdateformat ) + { + io << "\n\n"; + + change_dateformat(); + } + + + if ( cfg.asksex ) + { + io << "\n\n" + << S_ASK_SEX; + + + char k = wait_language_hotkeys( K_ASK_SEX, FALSE ); + + + user.sex = k + 1; + + io << ( + k ? S_FEMALE + : S_MALE + ); + } + + + if ( cfg.askBirthDay ) + { + do + { + io << "\n\n" + << S_ASK_BIRTHDATE( date_formats_long[ user.dateFormat ] ); + + InputDate( user.birthDate, user.dateFormat ); + + + if ( ! user.birthDate.ok() ) + { + if ( cfg.askBirthDay > 1 ) + { + user.birthDate.set( 0, 0, 0 ); + + break; + } + else + { + continue; + } + } + } + while ( ! user.birthDate.ok() ); + } + + + if ( cfg.allowalias ) + { + for ( ; ; ) + { + user.alias[ 0 ] = 0; + + io << "\n\n" + << S_ASK_ALIAS; + + io.read( user.alias, + 30, + READMODE_UPFIRST ); + + + if ( ! user.alias[ 0 ] ) + { + break; + } + + + User tmpuser; + + + if ( tmpuser.search( user.alias ) || + tmpuser.search( user.alias, + TRUE, + FALSE, + TRUE ) ) + { + io << "\n\n" + << S_ALIAS_BEING_USED; + + continue; + } + else + { + break; + } + } + } + + + char pass[ 16 ]; + + + for ( ; ; ) + { + io << "\n\n" + << S_ASK_PASSWORD( form( "%d", cfg.min_passlength ), "15" ); + + io.read( user.passWord, + 15, + READMODE_PWD ); + + + if ( strlen( user.passWord ) < cfg.min_passlength ) + { + io << "\n\n" + << S_ILLEGAL_PASSWORD; + + continue; + } + + + io << "\n\n" + << S_ASK_PASSWORD_AGAIN; + + io.read( pass, + 15, + READMODE_PWD ); + + + if ( ! strcmpl( pass, user.passWord ) ) + { + break; + } + } + + + password_ok = TRUE; + + user.level = cfg.newuserlevel; + user.logLevel = cfg.newuserloglevel; + user.aFlags = cfg.newuserflags; + + + io << "\n\n\n" + << S_ASK_EVERYTHING_CORRECT; + + + if ( io.ask( 1 ) ) + { + break; + } + else + { + LOG( "Missed some questions, reentering..." ); + } + } + + + user.uFlags |= UFLAG_HOTKEYS; + user.fileArea = 1; + user.msgArea = 1; + + + io << '\n'; + + LOG( "New user created." ); + + run_sdkfile( "/I NEWUSER2" ); + + showansascrip( "NEWUSER2" ); + questionnaire( "NEWUSER" ); + + user.lastDate.today(); + user.lastTime.now(); + user.firstDate.today(); + user.lastNewFilesCheck.today(); + + + return user.write( TRUE ); +} + + + +static +bool check_trashcan( char *username ) +{ + File f; + + + if ( ! f.open( FileName( syspath, "TRASHCAN.CTL" ), + fmode_read | fmode_text ) ) + { + return FALSE; + } + + + for ( ; ; ) + { + char s[ 80 ]; + + + if ( ! f.readLine( s, 79 ) ) + { + return FALSE; + } + + + strip_linefeed( s ); + + + if ( ! strcmpl( s, username ) ) + { + return TRUE; + } + } +} + + + +void show_intro() +{ + char *notregstr = " [UNREGISTERED] Ä Node %d\nCopyright (c) 1990-1999 TeleGrafix Communications, Inc. All Rights Reserved\n"; +// char *notregstr = " [UNREGISTERED] Ä Node %d Ä Copyright (c) 1990,99 TeleGrafix Communications\n\n"; +// char *notregstr = " [UNREGISTERED] ÄÄ Node %d ÄÄ (c) 1990-1997 Philippe Leybaert\n\n"; + long checksum = 0; + int i; + + + for ( i = 0; i < strlen( notregstr ); i++ ) + { + checksum += notregstr[ i ]; + } + + //------------------------------------------- + // Magic registration/copyright futzing check + //------------------------------------------- + + if ( checksum != 8235 ) + { + exit_proboard(); + } + + + io << "\x1b[5n\x1b[!\r"; + + io << "\fProBoard v" VERSION; + + + //---------------------------- + // JDR: REGISTRATION REFERENCE + //---------------------------- + + if ( registered ) + { + int l = 38 - strlen( VERSION ); + char *pUserName; + + + pUserName = registered_user_name(); + + + if ( cfg.numnodes > 1 ) + { + io << form( " ÄÄ Node %d ÄÄ ", node_number ); + } + else + { + l += 17; + } + + + for ( i = 0; i < l - strlen( pUserName ); i++ ) + { + io << ' '; + } + + + checksum = 0; + + //char *regtostr = "Registered to %s\n\n"; + char* regtostr = " Freeware\n\n"; + + + /*for ( i = 0; i < strlen( regtostr ); i++ ) + { + checksum += regtostr[ i ]; + } + + + if ( checksum != 1501 ) + { + exit_proboard(); + } */ + + + //io << form( regtostr, pUserName ) << char( 0xFF ); + io << regtostr << char(0xFF); + } + else + { + io << form( notregstr, node_number ) << char( 0xFF ); + + + if ( io.baud ) + { + sleep( 2 ); + } + } + + + // io << form( "Checksum=%ld\n", checksum ); + + + String response; + dword ticks = clockticks(); + + + for ( ; clockdiff( ticks ) < 30 && io.baud; ) + { + char k = io.readkey(); + + + if ( ! k ) + { + continue; + } + + + response << k; + + + if ( strstr( response, "RIPSCRIP" ) ) + { + rip_detected = TRUE; + } + + + if ( strstr( response, "\x1b[" ) ) + { + user.uFlags |= UFLAG_ANSI; + } + + + if ( rip_detected && + ( user.uFlags & UFLAG_ANSI ) ) + { + break; + } + } + + + if ( rip_detected ) + { + for ( ticks = clockticks(); + clockdiff( ticks ) < 18 && + io.baud; + ) + { + io.readkey(); + } + } + + + if ( cfg.disableRIP ) + { + rip_detected = FALSE; + } + + + if ( rip_detected ) + { + LOG( "*** RIP DETECTED ***" ); + } + + + if ( ! io.baud ) + { + user.uFlags |= UFLAG_ANSI; + } + + + rip_send_icons(); + + + if ( ! show_rip( form( "INTRO%d", node_number ) ) ) + { + if ( ! show_rip( "INTRO" ) ) + { + if ( showansasc( form( "INTRO%d", node_number ), + NULL ) == ANS_NOFILE ) + { + if ( showansasc( "INTRO", NULL ) == ANS_NOFILE ) + { + showansasc( "LOGO" ); + } + } + } + else + { + rip_text_window( 0, + 21, + 79, + 24, + 2 ); + } + } +} diff --git a/LOGIN.OBJ b/LOGIN.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..011f570a37f6a24f3307276b05f5259bb92394c8 GIT binary patch literal 16550 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 literal 0 HcmV?d00001 diff --git a/MAILCHK.CPP b/MAILCHK.CPP new file mode 100644 index 0000000..2549bd1 --- /dev/null +++ b/MAILCHK.CPP @@ -0,0 +1,322 @@ +#define Use_MsgBase + +#include +#include +#include +#include +#include "proboard.hpp" + + + +void mailcheck( char *data ) +{ + MsgArea ma; + String param[ 10 ]; + bool checkmail = TRUE; + bool checkfiles = TRUE; + int num_para = parse_data( data, param ); + + + for ( int i = 0; i < num_para; i++ ) + { + if ( param[ i ][ 0 ] == '/' ) + { + switch ( toupper( param[ i ][ 1 ] ) ) + { + case 'M': + + checkfiles = FALSE; + break; + + + case 'F': + + checkmail = FALSE; + break; + } + } + } + + + if ( checkmail ) + { + // if ( rip_mode ) + // { + // rip_start_dialog( S_CHECKING_MAILBOX, 2 ); + // io.fullcolor( 0x1F ); + // + // io.show_remote = FALSE; + // } + + + io << "\n\7" + << S_CHECKING_MAILBOX + << char( 0xFF ); + + io.show_remote = TRUE; + + + int found = 0; + MessageIndex *msgsfound = new MessageIndex[ 200 ]; + + + found = msgbase.scanMail( msgsfound, 200 ); + + + // if ( rip_mode ) + // { + // rip_end_dialog(); + // rip_reset(); + // } + + + if ( ! found ) + { + io << "\n\n" + << S_MAILBOX_EMPTY + << '\xFF'; + + msleep( 1500 ); + + io << '\n'; + } + else + { + io << "\n\n" + << S_MAIL_FOUND_TITLE + << "\n\n"; + } + + + if ( found ) + { + markedmsglist.clear(); + + + for ( i = 1; i <= MsgArea::highAreaNum(); i++ ) + { + int on1line = 0; + + + if ( ! ma.read( i ) ) + { + continue; + } + + + for ( int j = 0; j < found; j++ ) + { + if ( msgsfound[ j ].area == i ) + { + if ( ! on1line ) + { + if ( ! check_access( ma.readLevel, + ma.readFlags, + ma.readFlagsNot ) && + + ! ma.sysopAccess() ) + { + LOG( "Mail found in inaccessible area (%d)!!", + i ); + + break; + } + + + io << form( "\6%-33.33s: \3", ma.name ); + } + + + if ( on1line++ == 6 ) + { + io << form( "\n%-35s", "" ); + + on1line = 1; + } + + + io << form( "#%-5d ", + ma.msgNum( msgsfound[ j ].num ) ); + + markedmsglist.add( msgsfound[ j ] ); + } + } + + + if ( on1line ) + { + io << "\n\n"; + } + } + + + for ( ; ; ) + { + io << S_MAIL_FOUND_ACTION_PROMPT; + + + char k = wait_language_hotkeys( K_MAIL_FOUND_ACTION_PROMPT ); + + + switch ( k ) + { + case '\r': + case 0: + + io << K_MAIL_FOUND_ACTION_PROMPT[ 0 ] + << '\n'; + + readmsg( "0 /N" ); + + break; + + + case 1: + + io << K_MAIL_FOUND_ACTION_PROMPT[ 1 ] + << '\n'; + + qscan_msg( "0 /N" ); + + break; + + + default: + + io << K_MAIL_FOUND_ACTION_PROMPT[ 2 ] + << "\n\n" + << S_MESSAGES_HAVE_BEEN_MARKED + << "\n\n" + << S_PRESS_ENTER_TO_CONTINUE; + + break; + } + + + io << '\n'; + + + if ( k != 1 ) + { + break; + } + } + } + + + delete [] msgsfound; + } + + + + if ( checkfiles ) + { + File f; + int found = 0; + + + if ( ! checkmail ) + { + io << '\n' + << S_CHECKING_FOR_PERSONAL_FILES + << '\xFF'; + } + + + if ( f.open( FN_PVTFILES_PB ) ) + { + _PrivateFile pvtfil; + + + for ( ; ; ) + { + if ( f.read( & pvtfil, + sizeof( pvtfil ) ) != sizeof( pvtfil ) ) + { + break; + } + + + if ( strcmpl( pvtfil.to, user.name ) || + ! pvtfil.fname[ 0 ] ) + { + continue; + } + + + FileName fn; + + + if ( ! strchr( pvtfil.fname, '\\' ) ) + { + fn = String( cfg.pvtuploadpath ) + pvtfil.fname; + } + else + { + fn = pvtfil.fname; + } + + + if ( access( fn, 0 ) ) + { + continue; + } + + + fn.stripPath(); + + + if ( ! found ) + { + io << "\n\n" + << S_PERSONAL_FILES_FOUND + << "\n\n"; + } + + + io << form( " \7* \3%-12s \7-\2 %02d %3s %4d\3 \7- ", + (char *) fn,pvtfil.date[ 0 ], + months_short[ pvtfil.date[ 1 ] ], + pvtfil.date[ 2 ] + 1900 ); // Y2K OKAY + + io << S_PERSONAL_FILE_FROM( pvtfil.from ) + << '\n'; + + + found++; + } + + + f.close(); + + + if ( found ) + { + io << '\n' + << S_DOWNLOAD_NOW; + + + if ( io.ask( 0 ) ) + { + download( "/P" ); + } + + // io << '\n' + // << S_PRESS_ENTER_TO_CONTINUE; + } + } + + + if ( ! found && + ! checkmail ) + { + io << "\n\n" + << S_NO_PERSONAL_FILES_FOUND + << '\xFF'; + + msleep( 1500 ); + + io << '\n'; + } + } +} diff --git a/MAILCHK.OBJ b/MAILCHK.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..734b63c57102565c3231f6f5c587613cdc08f33c GIT binary patch literal 4349 zcma)A4N#Nk9sj>cc!LQ@sF>Q?#n=MVT0u;uAC6m8c+pKD1AH94+IJy&A*mt3yl

  • $;uwI@i)(Z_Rl($Gn7Cn~z@C-MqG2z3$^g+-5sv%8+;e=gkL! z>TMj)bI<$xe}6pxH_3rw(D&Hg9*1jpm7}-UbZ{8}l(lbpu-3fU=l9sXPV<&EYs{9a zn(2cD0N2&9_aF=KQ>MNC!Gl_WX=FzTNf!%>_8qDQC~DfYZTpt3U+3E!zS*wX(o)}0 zz}IhT-=tACesf!!8W&sN*xItgc6L|`tBw__)XaDBwDkv|DPZ=~69B7a^rOqcXl)Wi z(cUd=^E!on*78n=mUwiyJAll*%O~v?o)F9T zc%O6x98kh@&Ag4YbKABzwDGphP|WxEypl`gMVHSn!7^*F-7gBf(=OQ+8E$L+J)#ogt5+)y@$ zly`bWSK7dmFQ894KyT&T9$^!DV(o%Ed5pQWp{uQ#1CN-*RkXqsqPx*XC4tLS+%npaHH#5G}eVxaTw21F>$l#G@amMbn_%}lTy4FA0}GOd(UE$$ABr$ve)Q41?@5P%?$AUjB||8PiWjF5hsP%h)Zw!9 zv#(e1riB6`auughx7RIErlrbbv%N>a7PTw2NA=jfRJ#I;*iXGSyM$E>LW#BBE>Tu7 z(1}guMxz-Z)80#|8YSWTGMz}>MQ_t>iBxC$9xRzd6w!rj8GVI3weRTZ1uZ=}Tz+7A zr{J+afk3*qvGkHJ(A$fxx7^AH1&8GGQx-uIcqKLNfG6M<@UCQuUSaP%ik`ZK0+bu8 zTHc8a^u|E!c_RQ*VogsPyiUl0(Etn{)o2)i9idB4UwT1JcE$z{&jQ2-hL!z@vX3bH z&z1dUWk0U$$CUjwWj~?pZz}sJ?qL9%vI@Xv89S*1TWgpFoAJ4U(HpkIbY}HO4C9>4 zjB~S08kK{Ea*)l?3J19v%hY5`X#6A#|GxO#p*L@+PlwLcMpjfF_-b{a_9pmHBQu;< z-BHJZR9x2tl4`OD4ZtLereG4djlr4yCl2(<5KvDn(u~TshzX!le*0tzZs8IWby?Z6 zZnS2dEzF(RaaIpZjKj&hAj&hDC@o`__ie4&C4L2fFHL^*g(4o>Ck*9~&h{e9CA zXq)rpEcN9K`l9|nd*x=ROUvmiH}VlO{R%xg5Nlc2W+0DhJO;9y?zdS|RiG{gEQ-#nxLI%Gd~zDfN5U z6|M6;Zrs>6{gis*^;w!c={8fiWkJn2B}*H}_p2vdvzZQll@|DTx`Q)GEF5LB<$sM* zPn2W`>_P785O;N0KPDB`F(B2|b&f1&QWuCS_K}g%r&7cad)LSm#ePknM#=4|R}lFb zMUIp)s?-26#=c`@%2IBG1%y+NkQFgPNk9zaGl(QVBP+)Lj>z~0+>#$4{2qm)2>+HM zuM^$)FX&-}EK3d%Ho1=6F@6UsO=^iDaRb-Ch#~qqY=WgJRvVrEQ#yg~=!(~{7pl2pCnr-Pkbk~T0;jAkJ?jTz5gQoNl@5X@&{C#vRo zua^Tj<%L{tOw+ty!`|pzFfneD`HY{r)b>Z%(7ErO#+Du~@MvveMoCOI@p;rYRKGhP zIw!xa0{LwK#lxE^$wXrcyK+;|uwXP}e_$g1Jd>SLIs>|2Xuyd7l9%8Ma`12Y4LaAn z+05p+*~Tv%(bgtmbPXlrp`#M8E@UBs4L$t>lo=_QrAgI>?%%-)C4i4J|U%a zViv{D(m{EOtW5oqtWJ&K3X#&((>NWUqO4wWSL{*B@ijy^ifqJr`2dcb)Cy7=TViB1 zu@c;p*GOgZLtJNwA$bbdTR1jHkzbjV<1eC$@nMuoK1(W+`^oC0i&Q6flJewcJlEhd z|K0oStv@!+>y`zd?{5AnmVYet z*In;EGqM@tKPELF93ZRDU~S?7vNGO{;W%j8I!IN#3FF&>DSL<*A{%Io>u8Sdra90N zZG^?A@X;TE3P7g?oi6iFzkQjzd;$C&!0pBV^j8IUr$;c`@%x*3RfTi)%9X%YthHFG zEEe%$vl?{xut5a4r(*2}rD:\CPP\PB\PROBOARD\make0000.err +:m_end diff --git a/MAKE0000.LCK b/MAKE0000.LCK new file mode 100644 index 0000000..e69de29 diff --git a/MAKEFILE b/MAKEFILE new file mode 100644 index 0000000..dfbda8c --- /dev/null +++ b/MAKEFILE @@ -0,0 +1,41 @@ +## Makefile for ProBoard v1.xx + +## Caution!! The standard Borland C++ library has to be changed before compiling +## ProBoard v1.30 - The __NFILE__ macro in the file _nfile.h should be changed to +## 100. The files FILES.C and FILES2.C in the RTL\CLIB directory should be +## recompiled using all memory models, and updated in C?.LIB + + +MODEL = LARGE +OVERLAY = 1 + +OBJS = exec.obj io.obj fossil.obj menu.obj \ + chat.obj shell.obj login.obj pbuser.obj readmsg.obj \ + misc.obj timer.obj mailchk.obj msg.obj zip.obj \ + writemsg.obj tops.obj forward.obj replymsg.obj timestat.obj \ + msgdel.obj combined.obj question.obj aka.obj qscanmsg.obj \ + showmsg.obj scanmsg.obj version.obj rawdir.obj msged.obj \ + dl.obj viewfile.obj lastcall.obj desqview.obj stacking.obj \ + cleanup.obj sysopkey.obj msgfind.obj binlog.obj protocol.obj \ + listfile.obj ul.obj tag.obj sellang.obj proboard.obj \ + nodelist.obj online.obj msgmove.obj cdrom.obj regis.obj \ + mchat.obj setarea.obj usered.obj deckey.obj music.obj \ + gif.obj msgexprt.obj help.obj ega.obj event.obj \ + filearea.obj msgarea.obj timelog.obj wordwrap.obj showans.obj \ + userset.obj usage.obj loadpex.obj image.obj postmsg.obj \ + pexcall.obj strvars.obj userwin.obj bulletin.obj modem.obj \ + execheck.obj language.obj fuzzy.obj terminal.obj squish.obj \ + hudson.obj msgbase.obj mark.obj rip.obj jam.obj \ + inpdate.obj tag_rw.obj + + +OVLOBJS = $(OBJS,Nexec\.obj,Nio\.obj,Nfossil\.obj,Ntimer\.obj,Nmisc\.obj) + +TSLIB = 1 +TSWIN = 1 +SQUISH = 1 +PBLIB = 1 + +#----------------------------------------------------------------------------# + +ProBoard.exe: $(OBJS) diff --git a/MARK.CPP b/MARK.CPP new file mode 100644 index 0000000..8605e63 --- /dev/null +++ b/MARK.CPP @@ -0,0 +1,138 @@ +#define Use_MsgBase + +#include "proboard.hpp" + +MarkedMsgList::MarkedMsgList() +{ + msgList = new MessageIndex[MAX_MARKED_MSGS]; + + n = 0; +} + +MarkedMsgList::MarkedMsgList(const MarkedMsgList &m) +{ + msgList = new MessageIndex[MAX_MARKED_MSGS]; + + (*this) = m; +} + +MarkedMsgList::~MarkedMsgList() +{ + delete [] msgList; +} + +void +MarkedMsgList::operator=(const MarkedMsgList& m) +{ + for(int i=0 ; i < MAX_MARKED_MSGS ; i++) msgList[i] = m.msgList[i]; + + n = m.n; +} + +bool +MarkedMsgList::add(MessageIndex& mi) +{ + if(isMarked(mi)) return TRUE; + + if(n < MAX_MARKED_MSGS) + { + msgList[n++] = mi; + + return TRUE; + } + else + { + return FALSE; + } +} + +bool +MarkedMsgList::add(Message& msg) +{ + return add(MessageIndex(msg.areaNum(),msg.id)); +} + +bool +MarkedMsgList::isMarked(MessageIndex& mi) +{ + for(int i=0 ; i msgList[y].area) + { + MessageIndex tmp = msgList[x]; + msgList[x] = msgList[y]; + msgList[y] = tmp; + } + + for(x=0;xmsgList[y].num) + { + MessageIndex tmp = msgList[x]; + msgList[x] = msgList[y]; + msgList[y] = tmp; + } +} + + +void +get_new_msgs(MarkedMsgList& marked,int area) +{ + Message msg; + MsgArea ma; + + io << ' '; + + int start = 1; + int end = 1000; + + if(area) + { + start = end = area; + } + + for(int i=start ; i <= end ; i++) + { + if( (area && area != i) + || (!user.combinedBoards.connected(i) && !area) + || !ma.read(i) + ) continue; + + if( !check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot) + && !ma.sysopAccess()) continue; + + if(ma.highMsg() <= ma.lastRead(user_recnr)) continue; + + bool ok = msg.readFirst(READMSG_ALL,1,ma.lastRead(user_recnr) + 1,"",i); + + int cnt = 0; + + while(ok) + { + if(!marked.add(MessageIndex(msg.areaNum(),msg.id))) break; + + io << '\b' << (("/-\\|")[cnt]) ; + + cnt = (++cnt) % 4; + + ok = msg.readNext(READMSG_ALL,1,""); + } + + if(ok) break; + } + + io << "\b \b"; +} diff --git a/MARK.OBJ b/MARK.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..9e7235ee4a2ffc412fa5e5b697e7f576fa894a2e GIT binary patch literal 3172 zcmc&%Z%kX)6+iF!`PtayPd8%HMI|h=T-Ihpsih_z>-Grbxz(298FPu#4a=AZ@oF&m zU(%@wMW`09uSjUCqBY90^usjm8>^;>wcF%PuDz@{MA1H=w2C6F%W%vh6rqqgn78w; z4Z%=a_0vAQ!+qz^@0{N`_ugk-H-WL=7k;JDKRDC=SdwZ=UDDsIscANTlK&O2&+o@T>rgCk z@L)4ti$PysB>D{Kynzsyy|IWC_J$?@Kp6D&1!{!eP$Uuv211x87&&Pj8u+OnzPd?^ zO0ysaf>Lu>@(I1Ld$mRZ-+Nw?PDianfq)jfr@|rz!Vzi;qAh^HWom*C<6esOYrGy? zQ(C)wN>taYDEk1^3dbUSG<)RLNNBLcPYd64jZ_w*y%VL0=@=F8RX# zlkJ0&AGVd%h}9Yh!`FnCP=9w|K~Nv+-JpmiU9JMkm{Q!n&MQ5w`A>BF(~AG9CC9Vhi5kskyi(ZJgr zoSZm-o()2UK?p=j?^?_=>o>y=7V0LRzzEzU>!E~5D2#26|Ad9!2`k#4*kJedAea6_ zWvo9l@Vkkp(Cr(a=~kK3%fPLPMs$91gR`~U7wJRP(;Il{7`QS~hXFXUiXvCXn+15d z1tJ~xCPW`V*A|H7vjK4B62~zB9m>2S@@CN(tC`}#d0soI9+?Y)-X&r+I!=(ch+W$Njo6%zaX{PUW-Vrb`` zO8R{smhPO;T{FC_0k~3KrY$Ug;DKU`BP)x{Yk#7S4vsd&!IiKpO2!STm265zxk)Df zUCnW1m|JAd9H7}9oK1CbG&_B-)m@_nlrUD4K8}FHy4-o{syJAiQi}unfCtx79w&6X#3$8tA7f>)Ko_NI zu@f>`)-r50)m2L=*Q0r_Hu_QQMvrl^U~#UxIVjU%?yN4?sERbm!M)Iw#&?T~bRTC* zbU8+|VPC(1Zd8|>-Q1bg5oie59!&09%IRj0pTJ>oXLPw=!*CT&hduSBnianABFqSc zoq3$F*^fwdb`t-F+)TEGu+s%%nf^CEe{?g`7s;-Fyx~qVe;YwDJw$4!pGS>V)6{F4 zouoE+sTYqV?v(#u{})y&`#-zl?JDoob2>ZGkFR1YcTLgb+G*$g_(~T3uRWYvV8g5V% zgQT%p2#9!#vUqPZ-l7`6_c?fa21c)g%Q?m17YZMAeKggtjEPHjHTN@Er}cPbaY0G! zSCw;5sj_%iCivxBkj2}Icvm6wvUo=(bK~OeNB82}1td)y#pZwb<{Ow~(pWiU*V=3x zO6CI&-dTF66za4u#e~NWe2B?5HPO%$!@ul5- z@$}7GlVJ&%$t-Z`UyFObsz*SX^AaON>`PCC2nEG^J-X&Cf~o)icDL-fv;_ z=?2t%_%W`szal%b<3yKrk)7E?q~=4rh2f`FVoW{6$m!pZ?bH2u4Tyy8xwHfD(**~< w^`qASjP*vyUuuNp7yf`)_d{UM1wClDgk|h8fH`LEzlp>zpKW{ZO$3kr54Q84Jpcdz literal 0 HcmV?d00001 diff --git a/MC.CFG b/MC.CFG new file mode 100644 index 0000000..c68a223 --- /dev/null +++ b/MC.CFG @@ -0,0 +1,17 @@ +-P-cpp +-c +-ml +-Y +-w-par +-w-aus +-w-use +-w-inl +-w-pin +-w-amb +-w-asm +-w-def +-w-nod +-w-pro +-w-stv +-w-pre +-w-sig diff --git a/MCHAT.CPP b/MCHAT.CPP new file mode 100644 index 0000000..ab3330c --- /dev/null +++ b/MCHAT.CPP @@ -0,0 +1,321 @@ +#include +#include +#include +#include +#include "desqview.hpp" +#include "proboard.hpp" + +const MAX_LOCK_TRIES = 500; +const LOCK_PAUSE = 10; + +static char *lock_err_msg = "CHAT FILE LOCKING ERROR (%d)"; + +class chatdata + { + int online; + int head,tail; + char data[240]; + static File f[2]; + static int node[2]; + public: + chatdata(int n1,int n2); + ~chatdata(); + void queue(char x); + int getnext(char *); + }; + +File chatdata::f[2]; + +int chatdata::node[2]; + +chatdata::chatdata(int n1,int n2) +{ + node[0] = n1; + node[1] = n2; + + if(!f[0].open(form("%sCHAT%d.DAT",syspath,node[0]),fmode_rw | fmode_shared | fmode_copen)) + return; + + memset(this,0,sizeof(*this)); + + f[0].write(this,sizeof(*this)); + + time_t t = time(NULL); + + for(;;) + { + if(f[1].open(form("%sCHAT%d.DAT",syspath,node[1]),fmode_rw | fmode_shared)) break; + + if((time(NULL)-t)>20) + { + LOG("File sharing error during chat!"); + break; + } + } +} + + +chatdata::~chatdata() +{ + f[0].close(); + f[1].close(); +} + +void +chatdata::queue(char c) +{ + for(int i=0;icfg.numnodes || node2<=0) + return; + + user_online uo; + uo.setstatus(UO_BROWSING); + + switch(uo.chatreq(node2)) + { + case 1: + uo.setstatus(UO_BUSY,node2); + + case 2: + io << S_MCHAT_NODE_IS_NOT_AVAILABLE << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + io << S_MCHAT_STARTED << "\n\n\xFF"; + + multilinechat(node2); + + uo.setstatus(UO_BROWSING); + + io << "\n\n" << S_MULTILINE_CHAT_ENDED << ' ' << S_PRESS_ENTER_TO_CONTINUE; +} + +void +multilinechat(int n) +{ + int node1,node2; + char buffer[240]; + user_online uo; + int last=0; + String s; + + node1 = node_number; + node2 = n; + + LOG(1,"Multiline chat started"); + + chatdata cd(node1,node2); + + uo.setstatus(UO_CHATTING); + + for(int i=0;;i++) + { + char x; + + if((x=io.readkey())!=0) + { + if(x<8) + continue; + + if(x==27) + break; + + if(last!=1) + { + if(avatar) + io << "\x16\x01\x0B\xFF"; + else + if(ansi_mode) + io << "\xFF"; + } + + last=1; + + if(x=='\t') x=' '; + + if(x!=8) io << x << char(0xFF); + + switch(x) + { + case 8: + if(s.len()>0) + { + s[s.len()-1]=0; + io << "\b \b\xFF"; + } + break; + + case 13: + io << '\n' << char(255); + s=""; + break; + + default: + s << (char)x; + } + + if(s.len()>78) + { + String wrap; + + int l = wordwrap(s,wrap,78); + + for(int i=0;i5) + { + i = uo.getstatus(node2); + + if(i==UO_OFFLINE) + { + io << "\n\n" << S_MCHAT_OTHER_NODE_HUNG_UP << '\xFF'; + return; + } + i=0; + } + + int count = cd.getnext(buffer); + + for(int i=0;i0) + { + s[s.len()-1]=0; + io << "\b \b\xFF"; + } + break; + + case 13: + io << "\n\xFF"; + s = ""; + break; + + default: + s << (char)x; + } + + if(s.len()>78) + { + String wrap; + int l=wordwrap(s,wrap,78); + for(int i=0;i9Bw@4Mx=`~>vX8L3*-due zCV&y7@h7lWQD-R4#A%RmY_+wF)0UO$G_CvN;BMBj9d&euGDtOHiA~Foin!Zz-`l@z zla}eszPtB+=jWb#?m6ea`ySOmPIu?7cA=uPr{{~IMF3D_ti7vRx6$sfw%g3Q+VXN; zRmJVshOz*@mP7xL65tqPth;L{8{itUBZQ<2S-HE9YynVjsok`}$QkSJGb(DE>*}+( zx(&t+3bElfwzkUgQF4tq|R21xIObA28M0bkrP2*Df1YLT*eJ zlW%?MHu+8Ze!Iim?`ZES?X~Ug?5=JV92Q%b1#Z$iciHrmIlIkjvGF1YX!M(# z8%ldE$jyUV8i;)r*VDnF=ej`7S?r+TI(K$KmZ$-8Ih)BYJiN&Y<53OSo39#Zcec%GEa+>kXW-nX7GX zGB!4CtA~YpZX3?5x3)WlR=(ZQxvRB@?}WTKjH|A*I3O3-=jg^&?WQiACvBU{X0>-d zRN8B`CN?s2?Bsb$w?LsJ(eJPbbWe8oxts|tk`rwdiHAd{)$T;DK6I5B9`+vICQa>f zB3GV-T5J}9GA+dLX*bh-*d31qY9tisrLfRjQFu4<%})TStyq+T+MQi#8gP^2(x{tK zM3wVWU_3I@*u)6VWQ&J&9#=;=!P3n;trm1&me>a+XXdT#dmx+Z=DTrQp+wL1@tuO* zK?%ITb2x9G%i^-SEIceq5^a3{42lLFKm{l_Mt5lkGL-hZEMWM3ApoP%bFId@`c{%I9!OhCWY@r<~4`0+%fa@ z-7c$u$!FuKtr+PeS#bGqF_H=-k_4mKZE}c?DijRBHuuHBiwZZZ)UYboO`faJGE7UM z=^#-ZMDWip`Q%w}v+CoO*ybKz3sqw+o{h4WSal_6Jpe6Q&$778pjU0cA!4G6L2vGF zK{JL5ehySG3dZ_Wu|8#-s-mETqzkF5#;V?LF-TUR8PS96b#YE)u3np%vm!Z(IOn3| zFjqY$$RZUpl$5jAOGs4n{=mZhS?i0SFJJ4ai3^xa5m{u^O;qTC2)O@#|GVfA;_g#R z9udk@rkPAyPhuXE=}SKYLSEW}Or|zTxaw-8ylU(eF3uoXky3#!5zU+LQ77hS4@56B z17X^_ielBp5UZBq0}%I;64(BpYSeT1&fBIeb2li;VhsxH%0D{9s>_BNloUR&Uoj1? z9NG;uD1h$cjq9CzJ##NQ;j90>=!*Zg=#-ini%x^l;kDAjW%RG6LE(}`*2NKY1x4i_ zl^vpfP|MGh4P{f>f&H?SKV$&75z{bmGR-Y%Q>42)4bE^&ijwR0M?iAT;Ke4bhl3Wc z7N9J4ayTEGqZolZXzHYLMP*22O2NC^<9niU5;mrM^84_A|$18ZsL7E%%@!Or-bWU1dnJ1>zE|1sKm zhA90{p_G4!Hjh!Lhm?=EktP1^bZ|FW?7x$CZXq}OMI9;>RUi@ykfpx2Y3Bqf@%@T+ zhKbVmQ`F;oo;J@==wVVGvXCV{o(}5Cn$TLJ^;OV88FrRqC-@CfdcQ=0;2CmT@HDx_ z>!;`+$Rh7aM7^&UGr8W^DD*R=yUESoC+R>StAhlY4Rp|e%(ayH`;_?}guH8Lvx*WI zkV=hMTot&@U2|@;M=owubVeAcHDiy+C)=14u|&X}qTA#_O%KkgDH%FSHyf?N*IJst1D83@IZMx=SJ$1?b< z6=J$-J>AKmK22?W2W^}+o+ls2s@;=h{+KdE zN9Pl?7*2=SOEV%(nRJH|Nk`YK=(gv9ppV$oouL`qw>o{i=^#7pZM!OOn=bQb$LOpN-tv(bBz`P8!16oX!6YG5+0Z=#VqOgCsEu|b|DQO5+nJ$!|= zFMd+053-*H*z*99g<8*x8D_=U^KSNh4g1-^r=q6R6lelkENPn4?o>@ql+(B|Xsu+v z6c0PTMnJSjJmHli15Ef!vMPKA>uQJ;gx|(8`UWWo{0_@#c$Ace2eGE^r!{piR+DfS zk%zaEmErYddAO3?8eU3P1d1p@gR%@M@PCV};}=Q3e*!!HPmwepBFo3$!e^8ej2}Uk z=O{}zvREjK8Cm?Km{I!;*o<#NypH1cQoNGlt0^ug^L#PHLzhWmC`ht=UZnd@7BdNO zG{_x{k^JBllJET|!ro62_MSo5`!R}oKfop!B890|;A)cRU5QYz80oo4S5dkg>DNZTmNB3b-)ASAWYWHv6K`IF z(X4%2F`Z}Rt&BtrRwhmTCOIrT)mtTQpx;D1jl5atm-Oin~u_2Al3&z#sj`b ze^C{i^fQMBr=vsc6z02Z_I!UOV}@Dt{Wlp*nC~*o_bCR8$un49ro_ab!o;6SB>vP~ z*?5SZN>6-qDl1H;SrY$(nD`f@#P?*_5m~48yp@4zJ!7+E`_v6(`}vG)KmQ-uelEbC zm9qU$8S}>2vu^fm4SP<^_VY95`@gb1ZVV=OL(RS~uzs(NvXjTZIl&}%`tz$u)O!3g zPYdbYONxad$`OAVOO`(+*A_pF=-DYgS@f!O3g6-k^tzEcMFzd|#0$oaF+Mf|3|5No z`X}&}+wQXb49tAaqv?->0X;EO%pb%1`#)3J@4>vfx(Yk$z#)S#<37@7^b zl`G7vV1<*CSC}jClikb#{lcPi?rNu>&~&`RVRz`vE^$C_(#t@t&cz4TY^l}J|HLmw zds`BBaUJE=;U_DHz?%V!Sqw^c++I^v-5mp!P89>GMG;&BrB&8ctxM3<337%y-eyK+ zn?{rn1YG~aqiVWNMu*=k;4yrE3d)Sk_eN`AOuFL7@ApNi3vA+kpK*sx+=TCc_tlXc zK#%Hz^GM~hs2<tGE1JM+S?%}s|;ukdes>`7_> literal 0 HcmV?d00001 diff --git a/MENU.CPP b/MENU.CPP new file mode 100644 index 0000000..1ce0b9f --- /dev/null +++ b/MENU.CPP @@ -0,0 +1,766 @@ +#define Use_MsgBase +#define INCLUDE_REGIS + +#include +#include +#include +#include +#include +#include "proboard.hpp" + + +struct MenuItem : public _MenuItem + { + bool checkAccess() const; + }; + +bool +MenuItem::checkAccess() const +{ + if(!check_access(access.minLevel , access.flags , access.flagsNot)) + return FALSE; + + if(access.maxLevel && user.level > access.maxLevel) + return FALSE; + + int age = -1; + + if(user.birthDate.ok()) + age = Date(TODAY).age(user.birthDate); + + if(access.minAge || access.maxAge) + { + if(age < 0) + return FALSE; + + if((access.minAge && age < access.minAge) || (access.maxAge && age > access.maxAge)) + return FALSE; + } + + if(access.minTimeLeft && timer.left() < access.minTimeLeft) + return FALSE; + + if(access.minTimeOnline && timer.online() < access.minTimeOnline) + return FALSE; + + if(!access.timeFrame.enabled()) + return FALSE; + + if(access.sex) + { + if(!user.sex) + return FALSE; + + if(user.sex == SEX_MALE) + { + if(access.sex == 2) + return FALSE; + } + + if(user.sex == SEX_FEMALE) + { + if(access.sex == 1) + return FALSE; + } + } + + dword speed = io.baud; + + if(speed < 1) + speed = 38400L; + + if(access.minSpeed && speed < access.minSpeed) + return FALSE; + + if(access.maxSpeed && speed > access.maxSpeed) + return FALSE; + + if(access.nodes[(node_number-1)/8] & (1 << ((node_number-1) & 7))) + return FALSE; + + return TRUE; +} + + +typedef char *str; + +#define MAX_MENUSTACK 100 + +static + class menu_stack + { + str *menus; + int sp; + public: + menu_stack() + { + menus = new str[MAX_MENUSTACK]; + for(int i=0;i0) strcpy(m,menus[--sp]); } + } mstack; + +void +logoff(char *data) +{ + if(data==NULL || data[0]!='/') io.cls(); + + run_sdkfile("/I GOODBYE"); + showansascrip("GOODBYE"); + run_sdkfile("/I GOODBYE2"); + + LOG("User logged off"); + + if(io.baud) sleep(2); + + exit_proboard(); +} + +static void +gotomenu(char *data) +{ + String param[4]; + char newmenu[20]; + static int reg_counter = 0; + + if(reg_counter++ == 10) + { + CHECK_REG(); + reg_counter = 0; + } + + int n=parse_data(data,param); + + for(int i=0;i=user.msgArea;i--) + { + int area = ((i-1)%MsgArea::highAreaNum())+1; + if(!ma.read(area) || !check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot)) continue; + user.msgArea = area; + break; + } + break; + } + + user.msgArea =atoi(&(param[i][3])); + break; + } + case 'F': { + FileArea fa; + + if(param[i][3]=='+') + { + for(int i=user.fileArea+1;i<=user.fileArea+FileArea::highAreaNum();i++) + { + int area = ((i-1)%FileArea::highAreaNum())+1; + if(!fa.read(area) || !check_access(fa.level,fa.flags,fa.flagsNot)) continue; + user.fileArea = area; + break; + } + break; + } + + if(param[i][3]=='-') + { + for(int i=user.fileArea+FileArea::highAreaNum()-1;i>=user.fileArea;i--) + { + int area = ((i-1)%FileArea::highAreaNum())+1; + if(!fa.read(area) || !check_access(fa.level,fa.flags,fa.flagsNot)) continue; + user.fileArea = area; + break; + } + break; + } + + user.fileArea=atoi(&(param[i][3])); + break; + } + case 'P': { + char s[20]; + + io << '\n' << S_ENTER_MENU_PASSWORD; + io.read(s,15,READMODE_PWD); + io << "\n\xFF"; + + if(!s[0]) return; + + if(strcmpl(&(param[i][3]),s)) + { + LOG(1,"Wrong password for menu <%s> : %s",newmenu,strupr(s)); + io << '\n' << S_ACCESS_DENIED << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + } + break; + } + } + else strcpy(newmenu,param[i]); + } + + strcpy(curmenu,newmenu); + + menuchanged = TRUE; +} + +static void +gosubmenu(char *data) +{ + mstack.push(curmenu); + gotomenu(data); + if(!menuchanged) mstack.pop(curmenu); +} + +static void +prevmenu(char *) +{ + mstack.pop(curmenu); + + menuchanged = TRUE; +} + +static void +gotomenu_clear(char *data) +{ + mstack.clear(); + gotomenu(data); +} + +#define MAX_ITEMS 255 + +struct menu_item + { + union { + char type; + char highlight; + }; + unsigned level; + AccessFlags flags; + char string[76]; + char key; + char data[81]; + byte color; + byte attr; + }; + +const byte MNU_RIP_SHOW_REMOTE = 1; +const byte MNU_RIP_HIDE_LOCAL = 2; +const byte MNU_RIP_NO_RESET = 4; + +static void nofunction(char *) {} + +void (*menufunctions[])(char *) = + { + (void (*)(char *)) nofunction, // function 0 -> niets!! raar maar waar + (void (*)(char *)) gotomenu, // function 1 -> goto menu + (void (*)(char *)) gosubmenu, // function 2 -> gosub menu + (void (*)(char *)) prevmenu, // function 3 -> previous menu + (void (*)(char *)) gotomenu_clear, // function 4 -> clear stack and goto menu + showansasc, // function 5 -> show ans/asc file + (void (*)(char *)) change_state, // function 6 -> change state (!!) + (void (*)(char *)) shell, // function 7 -> shell + (void (*)(char *)) version_info, // function 8 -> version information + (void (*)(char *)) logoff, // function 9 -> logoff + (void (*)(char *)) usage_graph, // function 10 -> system usage graph by hour + (void (*)(char *)) pagesysop, // function 11 -> Chat request + (void (*)(char *)) questionnaire, // function 12 -> questionnaire + (void (*)(char *)) user_list, // function 13 -> user list + (void (*)(char *)) time_stat, // function 14 -> time info + (void (*)(char *)) view_ans_wait, // function 15 -> View ans/asc and wait + (void (*)(char *)) city_change, // function 16 -> change city + (void (*)(char *)) password_change, // function 17 -> change password + (void (*)(char *)) lines_change, // function 18 -> change screen size + (void (*)(char *)) cls_toggle, // function 19 -> toggle clearscreen + (void (*)(char *)) pause_toggle, // function 20 -> toggle more prompt + (void (*)(char *)) ansi_toggle, // function 21 -> toggle ANSI graphics + (void (*)(char *)) mailcheck, // function 22 -> check for mail + (void (*)(char *)) readmsg, // function 23 -> read messages + (void (*)(char *)) scan_msg, // function 24 -> scan messages + (void (*)(char *)) qscan_msg, // function 25 -> qscan messages + (void (*)(char *)) days_graph, // function 26 -> usage graph by day + (void (*)(char *)) writemsg, // function 27 -> write a message + (void (*)(char *)) combined_select, // function 28 -> combined boards select + (void (*)(char *)) weeks_graph, // function 29 -> usage graph per week + (void (*)(char *)) raw_dir, // function 30 -> show directory + (void (*)(char *)) list_files, // function 31 -> list files + (void (*)(char *)) download, // function 32 -> download a file + (void (*)(char *)) upload, // function 33 -> upload a file + (void (*)(char *)) list_archive, // function 34 -> view archive + (void (*)(char *)) keyword_search, // function 35 -> keyword search + (void (*)(char *)) filename_search, // function 36 -> filename search + (void (*)(char *)) new_files, // function 37 -> show new files + (void (*)(char *)) view_file, // function 38 -> view a file + (void (*)(char *)) view_named_file, // function 39 -> display named file + (void (*)(char *)) nofunction, // function 40 -> display ans/asc w/hotkeys + (void (*)(char *)) fsed_toggle, // function 41 -> toggle fs-editor + (void (*)(char *)) hotkey_toggle, // function 42 -> toggle hotkeys + (void (*)(char *)) clearmarked, // function 43 -> clear marked messages + (void (*)(char *)) combined_clear, // function 44 -> reset combined boards + (void (*)(char *)) view_file_wait, // function 45 -> display textfile and wait + (void (*)(char *)) change_access, // function 46 -> Change Access (flags/level) + (void (*)(char *)) logentry, // function 47 -> make a log entry + (void (*)(char *)) tops, // function 48 -> Tops + (void (*)(char *)) set_msgarea, // function 49 -> Set msg-area + (void (*)(char *)) show_users_online,// function 50 -> show users online + (void (*)(char *)) lastcallers, // function 51 -> list last callers + (void (*)(char *)) usereditor, // function 52 -> toggle no-disturb + (void (*)(char *)) multichat, // function 53 -> multi-line chat + (void (*)(char *)) set_filearea, // function 54 -> Set File Area + (void (*)(char *)) view_gif, // function 55 -> View GIF type + (void (*)(char *)) ibm_toggle, // function 56 -> Toggle IBM chars + (void (*)(char *)) phone_change, // function 57 -> Change phone # + (void (*)(char *)) dataphone_change, // function 58 -> Change data phone # + (void (*)(char *)) handle_change, // function 59 -> Change handle + (void (*)(char *)) run_sdkfile, // function 60 -> Load a ProBoard SDK File + (void (*)(char *)) bulletin, // function 61 -> Show bulletin + (void (*)(char *)) toggle_avatar, // function 62 -> Toggle AVT/0 + (void (*)(char *)) toggle_avtplus, // function 63 -> Toggle AVT/0+ + (void (*)(char *)) show_graph, // function 64 -> Show general usage graph + (void (*)(char *)) showansascrip, // function 65 -> Show ANS/ASC/RIP w/hotkeys + (void (*)(char *)) ripfont_change, // function 66 -> Change RIP font + (void (*)(char *)) rip_toggle, // function 67 -> Toggle RIP graphics + (void (*)(char *)) edit_taglist, // function 68 -> Edit file tags + (void (*)(char *)) select_language, // function 69 -> Select a language + (void (*)(char *)) change_dateformat,// function 70 -> Change date format + (void (*)(char *)) change_address, // function 71 -> Change address + (void (*)(char *)) change_faxphone, // function 72 -> Change fax phone + (void (*)(char *)) change_country, // function 73 -> Change country + (void (*)(char *)) change_default_protocol, // function 74 -> Change default protocol + (void (*)(char *)) select_msggroup, // function 75 -> Select message area group + (void (*)(char *)) select_filegroup // function 76 -> Select file area group + }; + +static void _near +execute_function(MenuItem *item) +{ + rip_reset(); + + if( item->function>4 + && item->function != 23 + && item->function != 32 + && item->function != 33 + && !(item->attr & MNU_RIP_NO_RESET)) + { + rip_textmode(); + } + + if(item->attr & MENU_PASSWORD) + { + char s[20]; + + io << '\n' << S_ENTER_SELECTION_PASSWORD; + io.read(s,15,READMODE_PWD); + io << "\n\xFF"; + + if(!s[0]) return; + + if(stricmp(item->password,s)) + { + LOG(1,"Wrong password in menu <%s>",(char *)curmenu); + io << '\n' << S_ACCESS_DENIED << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + } + + (*menufunctions[item->function])(replace_stringvars(item->data)); +} + +static char * near +colorstring(char col) +{ + char cols[] = { 0,4,2,6,1,5,3,7 }; + String s; + static char str[30]; + + str[0]=0; + + char fg=col&7; + char bg=(col&0x70)>>4; + char bright=!(col&8); + + if(avatar) + { + fg = cols[fg]; + bg = cols[bg]; + s << char(22) << char(1) << char(fg|(bg<<4)|(bright?8:0)); + strcpy(str,s); + + return str; + } + + if(!ansi_mode) return str; + + s="["; + if(bright) s << "1;"; + else s << "0;"; + + s << form("3%d;4%dm",fg,bg); + + strcpy(str,s); + + return str; +} + +static String near +translate_menutext(char *s,byte color,byte highlight,bool prompt) +{ + String str; + bool high = FALSE; + + if(*s == ';') return ""; + if(*s == '\0') return "\n"; + + str << colorstring(color); + + for(;*s;s++) + { + char c = *s; + + switch(c) + { + case '^': high = !high; + if(high) + str << colorstring(highlight); + else + str << colorstring(color); + break; + case '~': str << "@@"; + break; + case '`': str << "@@"; + break; + case '@': if(*(s+1)=='<' || (*(s-1))=='>') + str << '@'; + else + str << "@@"; + break; + case '\\': c = *(s+1); + if(c>='1' && c<='7') + { + str << char(c - '0'); + s++; + continue; + } + if(c=='0') + { + str << colorstring(color); + s++; + continue; + } + c = '\\'; + default : str << c; + } + } + + if(!prompt) + { + if(str[str.len()-1] == ';') str[str.len()-1] = '\0'; + else str << '\n'; + } + + return replace_stringvars(str); +} + + +static bool +menu_show_at_all(MenuItem *item , _MenuFile *prompt) +{ + return + ( (item->attr & MNU_RIP_SHOW_REMOTE) + || !(item->attr & MNU_RIP_HIDE_LOCAL) + || !rip_mode + || !prompt->attr + ); +} + +static bool +menu_show_local(MenuItem *item , _MenuFile *prompt) +{ + return + ( + !(item->attr & MNU_RIP_HIDE_LOCAL) + || !rip_mode + || !prompt->attr + ); +} + +static bool +menu_show_remote(MenuItem *item , _MenuFile *prompt) +{ + return ( + (item->attr & MNU_RIP_SHOW_REMOTE) + || !rip_mode + || !prompt->attr + ); +} + + +void +menu_processor() +{ + int i,j; + char hotkeys[MAX_ITEMS]; + File f; + _MenuFile *menufile = NULL; + MenuItem **items = NULL; + int numallocated = 0; + int numitems = 0; + int glob_numitems = 0; + + menufile = new _MenuFile; + + strcpy(curmenu,"TOP"); + + for(;;) + { + LOG(3,"Menu: %s",curmenu); + menuchanged = FALSE; + updatemenu = FALSE; + + if(f.open(FileName(cfg.mnupath,"GLOBAL.PBM"))) + { + glob_numitems = int((f.len() - sizeof(_MenuFile)) / sizeof(MenuItem)); + f.close(); + } + + if(!f.open(FileName(cfg.mnupath,curmenu,".PBM"))) + { + if(!strcmpl(curmenu,"TOP")) fatalerror("NO TOP MENU"); + mstack.clear(); + LOG("ERROR: Menu %s not found!",curmenu); + strcpy(curmenu,"TOP"); + continue; + } + + if(items != NULL) + { + for(i=0;icheckAccess()) + if(items[i]->hotKey>13 && items[i]->function) + hotkeys[j++] = toupper(items[i]->hotKey); + + hotkeys[j++]='\r'; + hotkeys[j++]=';'; + hotkeys[j]=0; + + for(;;) + { + char k; + + again: + + if(updatemenu) break; + + rip_reset(); + + k=toupper(comstack.pollnext()); + if(strchr(hotkeys,k) && k!=13 && k) + { + k=toupper(comstack.getnext()); + for(i=0;ihotKey && items[i]->checkAccess()) + { + if(!stack_mode) io << k << "\n\xFF"; + execute_function(items[i]); + if(menuchanged) break; + } + if(menuchanged) break; + + io << "\n\xFF"; + continue; + } + + io.disablestop(); + io << "\n\f\xFF"; + + if(menufile->attr) + show_rip(menufile->RIPname,FALSE); + + for(i=0;icheckAccess()) + continue; + + if(items[i]->function==40) + { + if(menu_show_at_all(items[i],menufile)) + { + if(!menu_show_local(items[i],menufile)) io.show_local = FALSE; + if(!menu_show_remote(items[i],menufile)) io.show_remote = FALSE; + + k=showansasc(replace_stringvars(items[i]->data),hotkeys); + + io.show_local = TRUE; + io.show_remote = TRUE; + + if(k>2) + { + io << " \7" << k << "\n\xFF"; + for(int j=0;jhotKey==k && items[j]->checkAccess()) + { + if(items[j]->function) execute_function(items[j]); + if(menuchanged) break; + } + + if(menuchanged) break; + goto again; + } + } + } + else if(items[i]->hotKey==1) + { + if(items[i]->function == 5 || items[i]->function == 38) + { + if(menu_show_at_all(items[i],menufile)) + { + if(!menu_show_local(items[i],menufile)) io.show_local = FALSE; + if(!menu_show_remote(items[i],menufile)) io.show_remote = FALSE; + + execute_function(items[i]); + + io.show_local = TRUE; + io.show_remote = TRUE; + } + } + else + { + execute_function(items[i]); + } + if(menuchanged) break; + } + + k=0; + + if(menu_show_at_all(items[i],menufile)) + { + if(!menu_show_local(items[i],menufile)) io.show_local = FALSE; + if(!menu_show_remote(items[i],menufile)) io.show_remote = FALSE; + + k = io.send(translate_menutext(items[i]->text, + items[i]->color, + menufile->highlight, + FALSE), + hotkeys); + + io.show_local = TRUE; + io.show_remote = TRUE; + } + + if(k==1) break; + + if(k>1) + { + io << " \7" << k << "\n\xFF"; + for(int j=0;jhotKey==k && items[j]->checkAccess()) + { + if(items[j]->function) execute_function(items[j]); + if(menuchanged) break; + } + + if(menuchanged) break; + + goto again; + } + } + + if(menuchanged) break; + + io << '\n' << translate_menutext(menufile->prompt, // hidden constructor + menufile->color, + menufile->highlight, + TRUE); + + if(!stack_mode) k=io.wait(hotkeys); + + if(k==';') io << "> "; + + if(k==';' || stack_mode) + { + if(k==';' || !strchr(hotkeys,k) || !k) + { + comstack.clear(); + + char command[60]; + io.read(command,59,READMODE_NOFIELD); + if(!command[0]) { command[0]='\r'; command[1]=0; } + io << "\n\xFF"; + k=toupper(command[0]); + if(!strchr(hotkeys,k)) k='\r'; + else comstack.parse(&command[1]); + } + } + + for(i=0;ihotKey && items[i]->checkAccess()) + { + if(!stack_mode) io << k << "\n\xFF"; + execute_function(items[i]); + if(menuchanged) break; + } + + if(menuchanged) break; + + io << "\n\xFF"; + } + } +} + diff --git a/MENU.OBJ b/MENU.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..ddea16f53a41700b91962410c692dbe26a5462b1 GIT binary patch literal 13755 zcmd5j3wTpSx^t2=4Jot*N&&%I*;2i_qKJZ8z{8^lP@uJx!3Z>@ZCWC2Qj?PuTquER zp^docDk8V5u#dam-E~D}*@*7SVje0dt*@)BdR=8%YzVG^ULF;j`~P#!$)glM_CEIB zew;ru|NJxa&;Oc#<{Z36VraD5-4kk>n&xgEMF`2OoOR3O!kG?dgT-E3IP2PL3nxvO z*t>8?LDR8}!K=5;CuGoq(uIr7m8ExA>SmSAF3m8{ zo>4hN$AEd}qD5MG^yYaB=T({w2(dwLF1;J;2w8phoQkr=<X)U4u*s%u1N(S07mxvssityXEP zx_yV9432B!+PfZl)R-xl=g*!;d14UEi)NLTn|LyWpEb91)}7{x(m6Po-YnW0txhtO zx30E{<|e13+F^0l7Tsqfqj;yaslifX1qPfpd%efvbQRrazrO}rnxJeo*IGmi!`LS; zVk9J&ciNiFqII>{=%}^g1Vb3cX?0metmg8rm5ydJP_d5g8ZwMwEOwX0Rl{)NL{iAt zthCmwGFxhDtS*?;ZJRi81}h5~wg#9SSXrlsIOPoli(Zd zx!!H5S4Pc4Dc3pdqFLr&9#Ro@z0=aPQe{8RppaMW9qO3&fZanLsvK8NxR7MECK0hy_OGK@!6nk~+n zl{Qa8Q%q=Rjww=uRaJWhd=fn;z|@^Ik5 zpj>Q9YB!IE@tYk^lwm4mlLa_S8#ITvgAHMCMM=4QO@k|qBv%$=3e8X+jLw!u1aZdF zY_7E_wuz#*TU}|UHH`OwYCwW!o4w8w2qejmx2gGnf{|-)M2JvMO4Zoj)b6!gi9dY(_0lmIc0KZBPPSE?);;2^Q>Boji-5 zUj{pc4GhOhjB+Tw2~t z5-ngeh{;dVqJ-HBZLrCJ>8fM6tacd>`%GRET~yuRQVe?d1z6@Zi4l^)?lP2UBg8vp zk8W}_G}vMDLsmxjYpb`47i(g>sjQ7W=DKW8=GDOFfxQ7`DPtR~b!_}myZ}x!1D46J zwAHV~!a{c=&O9{PA`8JrvXZDea+!INxxAuu(IRu{!phPLb7h%%R@uVJc?%bpl9BuZ zSN%YP<|Z1{F^vgK9mv6SPwaF;j3t1mPi$fF^5; zRs+MsQ}Bs2XE12N3G1=1M#~$_7QjRJ!4+o9H5d43(R~dz$SP14%&DM*$L&%nY8o6a z@Kq0Jno&5KZ~z?A?ECxWF6<7b1N@@&IxTzwN(fG37? ztYVAEmTOAK29m?eIT7O-S2fbk=0Z( zC0ooeTSP|#iyP6HrjF)igHAsG6oVN@1mwjN#25a9oEI zJQ#8TtC@+{=5BD?tdIt(jTpjHTe3iY*a2}6G>WQ$0JAuDW64TJrdMhv;DWaWa^V7(@(v zM?h;f-{iDDJ-UbubSZgQHH)HQX99b?a!r4wG|wNVGAv z#VG6fJcs1$f7JZxU z;Y#!?hznbfbAO1(3;ZX!a@NgcGVT|PS=}Fx?~BLFEAqDpU(1cH0YgQi-0Jt_c1QfEM{Y|V^b}+hm?fYk4_RZb~-j$Sp(~~oONq`wH}5VQ{X2= zWeYo%Y^vuN(^C{G+rU&dnQAEK6Z9FYxVXolja}50(vP(yN`5MwLoNA{hT3b$$=3!2KYs(4FWef|a2nh=($Tl3y zw`m(!oV95?CtfaBw{yk5C$@1V!YOA~b4Ce0;nD3TvE_2(4y5f&&~_s24y0|)aw4q@ zX(#R?WbVrb^5mIspqKU#$oMG`Wk)t4-ap2@pJndj$h(IhJRl;mZZ{VrRldJ2KL|z# zg2@sL;vk&Nd;9g`;8al;_@^hVp};>crF>UPd3mC|OGC2sIwBhV8dY7B_A3%+vu!y3 zeGOfL%4AOlDW9}|pN^DQ`1Pb5%B*U6Tj*i!0pFp?fh*X0w9%&rXz7^4ZCCi3CJ?ta8sMfaAY#_Ea;#jX zjjq&%+cx%r(%QTXwlVksgAXy-!QfT~A7*eHgO4$|gTd_p2ViTx_F7RJZ6&)lYI)z; zm~BTxr$oa4ktmYP z^)B^36nZnCGlfC`x?ZJALN5bp*NZea^c)s`L32Vs#lk-W<_RqPkk*8J*kegPR~6y` z1jA4bzJ}mg;32pT!6pEaduemz4%!eD@;QB^h&Bcbp&;#{-VM?(skb%oBoIkksCQ$a z9ZG>8V3pGBXLss!+_zfPSGg}d_sOMazL^P8D(*R(zoqTHZ&e-Z(bdGs7|+_;`h43S z=xcB5`nG+W^esbe1e6z0ZvyJ|Z{vGg`clG~CT8#nXMeg;8_S);(7ybQTJ2jUAGkJ0 zH);oz`E?-kjU z!FzVI!Q^d3k-IlV?p|5$TVQ+Xw={IY_1f#)>(~Ike56F7{{y%~d3&|4ZBaMZkE!pJ zw^tjT%>@bwf$j5`xQ9NY-)$^UhQ!u@KDqDh=F9y#ENuDHNFanZa%mVthv451`^{CC z68WOna1iDE<^B22%+Qj_@n(&xK?4k^js6HjqF=_DOcfYJC78R3EBA9s3~mi%$0zGZ ze6ofV_#frUmG#}PgY~V}U3`7Xl_pD^G_!SfP4&(ZquuORA#cjR+-haZRF6n-S1yDz*2K=%WbhSvhByODYy?lw{H54&%` zp+@0Qc{r4g)`bZMvTrb~ouaj&zd^0*PqeP9o7RU8V$(htIrJigrLJF7uP@|2Ag1J~71VB1V zv!(siCH)I^209V34GIn{*q~5@g$f|K3`hud##ms?OxveGqm$!PnA#LSGYBP~zIEE@ z*l!eNs<{tjT_M;7xl2)kS>51Ur|U@Vx~rHCLy8iI{rP##yPu*FK%M}z7sscl6UT_W zwPyFs=rx&k62g+92{;64xhkHm!zAZ|-l^_kh!M8Y|9xH9s#w1;um?Lo+u*Z%UOs0s zG4%3-r7S_djBy&M(m@t0a5~RzYH_4^y;>|3i`3$kBBYo)B{gn6tQ${A)?4n3#2|87 z-Fny{H)x|D62&<_90ksCXw=1>BkBA{(_9^#|M3f)|0p`YHu?(s>d|tapv#yGxu`zH zlSK=YVu62qn&TRij=Sf-=eRK*r~Mg-R*x~FH!*kI(+7JF6VuZI2g?0R{Amp_nJ|S* zCDcR0xZpKe4Fy|-v-#!z$y`DCO9pvM1=3S$6bk9VN;?EyQRZghB>Zk4-$b6*y?b`E zaDvqg=gI9`=vkJd@^b~1MB zg(v&_C}hdUq6dk>ZR=r;%k_=Ka;?GSK($E9&&0N#&v)^XjZsdrQO z3yg3dK{N|@=W*Kb?;&1MDm5%UWC`}*l2Hmtz^`+m3% z;l%cGG(T|Z{mQ9^9d%Rf3Cbge-+hm6XNy84&mG$)q~G@Th0-2bcc{#-cxbG zu(6SBzFRM7h`s@yAu;KvFtG=aAM{5)Ez4&;H&ryUHLs6PcMpT`n-nAXIBN4~zpgPW zThkm4qL8=c@U1q#-^mEJur7-CbP^#=D?#_^`}{UwAHBSON-WzhSAzKSm3 zfZ^}!5OUeBIXB6l$uzfJI1TqW+N#q`(_{O!ea+gwE)HdqST5{2$!1uZ9H1}BEEGHA z$ud$!R*)9*%8=7T<`4PBkVl8W_Q~!O*hNz7VNQ-|{WPC1e zn}Y*Y#$sP)an>BT2!Z4>rkS)~+3o-5M^X6uFYvPA_)d;4frDnJa@H}KUg+z`Y|}Ef)As_seCJ zETtE+6m4SbG-Ccn7=Y^@_HWWVS~8fwc=qU_9`LL}$2CJ3_>XaBrm1;FV;Go-=}dt?$H@!%DkwBCS#8tiYeG zk@Gc{M9YkQlET=>?ZStFst*TdObL7K!XcTdL`Pui5E07?{KJ*e)%Xp0A7q3hl|!4! zByX4!h7t7^?jwU$w%J@Tud+j`u>cmWx#V<`&Ds!rKY%DH%DfnB)tCN_Li^F z^yIsb6s^IX128lm8M<)&>2x55Q)}N(!J!yZZE;4LEq0}-Txu8I3{<^2u*%bH@pW14 ziO!(**NJFm6YYZqq?#k}?rS-9iOeTN@pjq@e8LG%I5jCA7T_W=CSE9m?4E0nvy1vA zscm@g@@gqJ#4{rm`=?Hh>wcE5>wb)`?OsKH(7gbHN%!@%r8}2;z2Qu{^q`h54aFg1 zbj9ept`F#1NF&#F-Ah+@O`zV#yDmeJNwtx)^!~^Z>U}KoHUdahw+4R(DOd1m=o;BZ zmjoY$LJ*Gemf$9cP?7a?aqtJ&W`~3_crW6uSf#)Kq>L?*%YlJl9$orIE?pWNjP04w zE}f(6q!`soAJhA#KVmfeDQ%G+0NTJ0=+f7l>C%7;$O6^*oH?)@v%gA81M?9z2gZ=5 zV~B(-*CI#8tAYL3StuM10>bkn5wA@Z5MVntmBO{TV!>Os?dkJX^=Utxyg4&2^f3$D zw53f(9-17=90J(XdP%=JyeYt)R2w~;$^0pKP&S#=>*vivxI+kUhY$w?t468MIsnJT zkBGM=JOm2wU;!_tF>6vU1JZ_=6pyx%0oHPx5Oz1F;^p&xc2E2mGn=~-n|v-y2*kny z|9lOkz~Qt*ZSvq`xNxwZBVU~9X1zAL8_dI`YLE64sj@Amo`(&SPRCaHLdlIq@c^`% zid4L6HE;AVtC^hImhh#KsaUy3&l@L`rlE&xty62as&?^)Ci>^|Q7xA$3K$Cm7Y8~z z*591bVKc=f_bKjSJB~n zC*YWxFtymo0Z5()5>>DJxsVY44s9$xtvZHdC!!u@W$Nphq&jJWR!xmH0gu;R4+~UK@OtEA2C*Q;Ed0KGn!Rr zT=u`zo_sklrV88u0taE1xZ!MH-A{ms7xVfLqK*C<#a|+h z8*on*vk(pM9JSF0i2Oczx3}D1f~S+V6@6)2-rx?v;I*wW1cf1?HcKBU)Y^{?MkKGv zbkUt$4-PRTHXP=#q|agaySMF;M+Vxqxz5i>_zWIgzXH(x0$mmU4aACWI5Ixcy#eEd z3*MDLs56D{g>ciokk*Fpz#1HO@9Dk*s6u_vG1Lp7>o^3#9%u~x1xUNzrYq$bh_{lV z-y*@Y7zjHdWIhTvi4P;?T@ckmQxU)=;)=+t5Z``F>m$E{`1cEF5B>yW+>;14Viiu@ zrU;&7BP*yixC~K70D(^tY=RL2HZ0X5n2VqQK*r9e2>0!nw=hFlsk)V#LZoeKsqU_X zu=9{4%T|41hN6j$DDbc9r`KrTndqUf67NuwR;j#?KyywaVfy6&= zz$Z!szF#8nZPNvR@Kw?O*&p)v|L#wx(Q_Hv%f$jEd43YE_swzf`GLmX#Cy-i%E+ zXMWkt8S^KU&s;zlz{Z7Th452||1X77THZlpsa6X-C=N`^;@Xjfo1s|2%0&h}plYUakNl($6 zA^({KFH~=b_W&i*!*rU|L2rO`Xo|Fv-YT`w8Pff9mgJ#xBq#m8WTy+Id+9u>j+RN) zbb(Yw=S%m{8{vDDneYmBy0nn;(j9cRBv3(`N$-Hu;g!;Dbb>UQPL^(@H%Sv{xpWP^ zQ!0kJ$I()$fL6k5+qqIct&oNRE*l;rJbHNGYH;|@)nq?hd%(RaT_S%(<<3jIPBOJq z_$~>KaiZYgs@|#LEou7_xcbP1ON~PRAoZMy_`nsuGmxbm)qbLo%xR6+uKfs`!gJu2 zsE@+;F8UZTS1ms%b>#BmTp*nZ!P$67%4b$46Ha_JPFx9RehFT +#include +#include +#include +#include +#include +#include +#include "proboard.hpp" +#include "fossil.hpp" + + + +void logentry( char *data ) +{ + LOG("%s",data); +} + + + +static +void near dolog( int level, + char *str ) +{ + if ( + ( + ! io.baud && + ! cfg.loglocal + ) + || user.logLevel < level ) + { + return; + } + + + Date date( TODAY ); + Time time( NOW ); + + + File fp( "PROBOARD.LOG", + fmode_write | + fmode_text | + fmode_copen | + fmode_append ); + + fp.seek( fp.len() ); + + + fp.printf( "%02d-%s-%02d %02d:%02d:%02d %s\n", + date[ 0 ], + months_short[ date[ 1 ] ], + date[ 2 ] % 100, // Y2K FIXED! + // date[ 2 ], // Y2K BUG! + time[ 0 ], + time[ 1 ], + time[ 2 ], + str ); +} + + + +void LOG( char *str ... ) +{ + char s[ 200 ]; + va_list va; + + + va_start( va, str ); + + vsprintf( s, + str, + va ); + + dolog( 0, s ); +} + + + +void LOG( int level, + char *str ... ) +{ + char s[ 200 ]; + va_list va; + + + va_start( va, str ); + + vsprintf( s, + str, + va ); + + dolog( level, s ); +} + + + +void fatalerror( char *s ) +{ + String str( "Fatal error: " ); + + + str << s; + + LOG( "%s", (char *) str ); + + + if ( io.baud > 0 ) + { + io << "\n\n" + << S_FATAL_ERROR; + } + else + { + SCREEN << "\f\n\n" + << str + << '\n'; + } + + + fatal = TRUE; + + + exit( ERRLVL_FATALERR ); +} + + + +//---------------------- +// reset=-1 -> increment +//---------------------- + +int linecounter( int reset ) +{ + static int linecount = 0; + static bool continuous = FALSE; + + + if ( reset >= 0 ) + { + linecount = reset; + continuous = FALSE; + + return 0; + } + + + if ( ++linecount >= ( + ( + /* rip_mode + ? rip_screenlines: */ + user.screenLength + ) - 1 + ) + && !continuous + && pause_mode ) + { + char rep; + + + if ( io.more_func ) + { + rep = char( ( *io.more_func ) () ); + } + else + { + byte oldcolor = SCREEN.attrib(); + + + // if ( rip_mode ) + // { + // rip_show_more(); + // + // io.show_remote = FALSE; + // } + + + io << S_MORE; + + + int prompt_len = strlen( S_MORE ); + + + rep = wait_language_hotkeys( K_MORE ); + + + io << '\r' + << String( ' ', prompt_len ) + << '\r'; + + io.fullcolor( oldcolor ); + + io.show_remote = TRUE; + + + // if ( rip_mode ) + // { + // rip_clear_status(); + // rip_show_enter(); + // } + } + + + if ( rep == '\r' ) + { + rep = 0; + } + + + if ( rep == 2 ) + { + continuous = TRUE; + rep = 0; + } + + + linecount = 0; + + return rep; + } + + + return 0; +} + + + +int check_access( unsigned level, + AccessFlags flags ) +{ + if ( user.level < level ) + { + return 0; + } + + + for ( int i = 1; i <= 32; i++ ) + { + if ( flags.getflag( i ) ) + { + if ( ! user.aFlags.getflag( i ) ) + { + return 0; + } + } + } + + + return 1; +} + + + +int check_access( unsigned level, + AccessFlags flags, + AccessFlags notflags ) +{ + if ( user.level < level ) + { + return 0; + } + + + for ( int i = 1; i <= 32; i++ ) + { + if ( flags.getflag( i ) ) + { + if ( ! user.aFlags.getflag( i ) ) + { + return 0; + } + } + } + + + for ( i = 1; i <= 32; i++ ) + { + if ( notflags.getflag( i ) ) + { + if ( user.aFlags.getflag( i ) ) + { + return 0; + } + } + } + + + return 1; +} + + + +char *strstrl( char *s, + char *f ) +{ + int lf = strlen( f ); + int l = strlen( s ) - lf + 1; + + + for ( int i = 0; i < l; i++ ) + { + if ( ! memicmp( & s[ i ], + f, + lf ) ) + { + return & s[ i ]; + } + } + + + return NULL; +} + + + +int matchstring( char *s, + char *d ) +{ + for ( ; *s && *d; s++, d++ ) + { + switch ( *s ) + { + case '?': + + continue; + + + case '*': + + return 1; + + + default: + + if ( toupper( *s ) != toupper( *d ) ) + { + return 0; + } + } + } + + + if ( toupper( *s ) != toupper( *d ) && + *s!='*') + { + return 0; + } + else + { + return 1; + } +} + + + +int matchfile( char *search, + char *file ) +{ + String sbody; + String sext; + String fbody; + String fext; + + + while ( *search != '.' && + *search ) + { + sbody << *search++; + } + + + if ( ! *search++ ) + { + return 0; + } + + + while ( *search ) + { + sext << *search++; + } + + + while ( *file != '.' && + *file ) + { + fbody << *file++; + } + + + if ( ! *file++ ) + { + return 0; + } + + + while ( *file ) + { + fext << *file++; + } + + + if ( matchstring( sbody, fbody ) && + matchstring( sext, fext ) ) + { + return 1; + } + + + return 0; +} + + + +void strip_path( char *s ) +{ + int l = strlen( s ); + + + for ( int i = l - 1; i >= 0; i-- ) + { + if ( s[ i ] == '\\' || + s[ i ] == '/' ) + { + break; + } + } + + + if ( i >= 0 ) + { + memmove( s, + & s[ i + 1 ], + l - i ); + } +} + + + +void strip_fname( char *s ) +{ + int l = strlen( s ); + + + for ( int i = l - 1; i >= 0; i-- ) + { + if ( s[ i ] == '\\' || + s[ i ] == '/' ) + { + s[ i + 1 ] = '\0'; + + break; + } + } +} + + + +int parse_data( char *s, + String *param ) +{ + for ( int i = 0; ; i++ ) + { + int inquote = 0; + + + while ( *s == ' ' && + *s ) + { + s++; + } + + + if ( *s == '\0' ) + { + break; + } + + + param[ i ].clear(); + + + while ( *s ) + { + if ( *s == ' ' && + ! inquote ) + { + break; + } + + + if ( *s == '\"' ) + { + inquote = ! inquote; + + s++; + + continue; + } + + + param[ i ] << ( *s++ ); + } + } + + + return i; +} + + + +void adjust_limits() +{ + long kbgranted; + int i; + int j; + + + for ( i = 0; i < num_limits - 1; i++ ) + { + for ( j = i + 1; j < num_limits; j++ ) + { + if ( limit[ i ].level < limit[ j ].level ) + { + limits temp; + + + temp = limit[ i ]; + limit[ i ] = limit[ j ]; + limit[ j ] = temp; + } + } + } + + + for ( int n = -1; ; ) + { + for ( i = num_limits - 1; i >= 0; i-- ) + { + if ( user.level >= limit[ i ].level ) + { + n = i; + } + } + + + if ( n < 0 ) + { + return; + } + + + if ( limit[ n ].max_download && + user.kbDownloaded > limit[ n ].max_download ) + { + if ( user.level != limit[ n ].fallto ) + { + user.level = limit[ n ].fallto; + + continue; + } + } + + + if ( limit[ n ].factor ) + { + kbgranted = long( user.kbUploaded ) * 100L / + limit[ n ].factor + + long( user.msgsPosted ) * limit[ n ].msgfactor + + limit[ n ].free; + } + else + { + kbgranted = 0x7FFFFFFFL; + } + + + if ( user.kbDownloaded > kbgranted ) + { + if ( ! limit[ n ].factor ) + { + upload_needed = 0x7FFF; + } + else + { + upload_needed = int( ( + long( user.kbDownloaded ) - + kbgranted + ) + * limit[ n ].factor / 100 + ); + } + + + free_download = 0; + } + else + { + free_download = int( kbgranted - user.kbDownloaded ); + upload_needed = 0; + + + if ( free_download > limit[ n ].daily_klimit ) + { + free_download = limit[ n ].daily_klimit; + } + } + + + break; + } + + + time_limit = limit[ n ].timelimit; + download_limit = limit[ n ].daily_klimit; + download_delay = limit[ n ].pre_download; + + timer.changeleft( time_limit - + timer.used() - + user.timeUsed - + time_removed); + + updatemenu = TRUE; +} + + + +void change_access(char *data) +{ + String param[ 40 ]; + int n = parse_data( data, param ); + + + for ( int i = 0; i < n; i++ ) + { + param[ i ].upperCase(); + + + if ( + isalpha( param[ i ][ 0 ] ) || + ( + param[ i ][ 0 ] >= '1' && + param[ i ][ 0 ] <= '6' && + strchr( "+-", param[ i ][ 1 ] ) + ) + ) + { + int flag; + + + if ( isalpha( param[ i ][ 0 ] ) ) + { + flag = param[ i ][ 0 ] - 64; + } + else + { + flag = param[ i ][ 0 ] - '1' + 27; + } + + + if ( param[ i ][ 1 ] == '-' ) + { + user.aFlags.clearflag( flag ); + } + else + { + user.aFlags.setflag( flag ); + } + } + else + { + user.level = word( atol( param[ i ] ) ); + } + } + + + adjust_limits(); + timer.check(); + + updatemenu = TRUE; +} + + + +void file_error( int fn, + int errno ) +{ + String s( "Error accessing file " ); + + + switch ( abs( fn ) ) + { + case ERR_BINLOG_PB: + + s << FN_BINLOG_PB; + break; + + + case ERR_TIMELOG_PRO: + + s << FN_TIMELOG_PRO; + break; + + + case ERR_ONLINE_PRO: + + s << FN_ONLINE_PRO; + break; + + + case ERR_AKA_PRO: + + s << "AKA.PRO"; + break; + } + + + if ( errno ) + { + s << form( " (%d - %s)", + errno, + dos_error_message( errno ) ); + } + + + if ( fn < 0 ) + { + LOG( "%s", (char *) s ); + } + else + { + fatalerror( s ); + } +} + + + +void file_error( char *fn, + int errno ) +{ + String s( "Error accessing file " ); + + s << fn; + + + if ( errno ) + { + s << form( " (%d - %s)", + errno, + dos_error_message( errno ) ); + } + + + fatalerror( s ); +} + + + +void file_warning( char *fn, + int errno ) +{ + String s( "Error accessing file " ); + + s << fn; + + + if ( errno ) + { + s << form( " (%d - %s)", + errno, + dos_error_message( errno ) ); + } + + + LOG( s ); +} + + + +int intimewindow( Time t1, + Time t2 ) +{ + Time now( NOW ); + + + if ( t2 <= t1 ) + { + t2[ 0 ] += 24; + } + + + if ( now < t1 ) + { + now[ 0 ] += 24; + } + + + if ( now < t1 || + now > t2 ) + { + return 0; + } + else + { + return 1; + } +} + + + +char *dos_error_message( int errno ) +{ + static struct + { + int no; + char *msg; + } + errmsg[] = + { + { 1, "Invalid DOS call (SHARE not loaded?)" }, + { 2, "File not found" }, + { 3, "Directory not found" }, + { 4, "Too many open files" }, + { 5, "Access denied" }, + { 6, "Invalid handle" }, + { 7, "MCB destroyed" }, + { 8, "Not enough memory" }, + { 0, "" } + }; + + + for ( int i = 0; errmsg[ i ].no; i++ ) + { + if ( errno == errmsg[ i ].no ) + { + break; + } + } + + + return errmsg[ i ].msg; +} + + + + +//************************************************************************** +// +// Parse a date string for the current locale +// +// Prototype: void parse_date( Date &d, char *s, int format ); +// +// Parameters: d ... Date value to fill-in +// s ... String containing date data to parse +// format ... Desired date locale +// +// Returns: None +// +// Remarks: +// +// This routine parses a date string, and returns the appropriate values in +// the date value . +// +// Remember: +// +// d[0] ... day +// d[1] ... month +// d[2] ... year (-1900) +// +// Year value are between 0 to 127. This means that a ProBoard Date object +// can store a year value from 1900 to 2027. +// +// ------------------------------------------------------------------------- +// +// Created on: ??/??/?? (Philippe Leybaert) +// Last modified: 06/17/99 (Jeff Reeder) +// Modified to handle dates in 10-byte formats for Y2K +// compliance. Fixed a MAJOR bug in this routine where the +// original code didn't check for a proper sequence of +// three delimited numeric values. Also modified this code +// to properly handle two-byte years. +// +//************************************************************************** + +void parse_date( Date &d, + char *s, + int format ) +{ + char str[ 11 ]; + + + strncpy( str, + s, + 10 ); + + str[ 10 ] = '\0'; + + + char *fmt = date_formats[ format ]; + int fmt_ar[ 3 ]; + + + fmt_ar[ 0 ] = 0; + fmt_ar[ 1 ] = 0; + fmt_ar[ 2 ] = 0; + + + //------------------------------------------------------- + // Figure out what sequence the M/D/Y values should be in + //------------------------------------------------------- + + if ( toupper( fmt[ 0 ] == 'D' ) ) fmt_ar[ 0 ] = DATE_DAY; + if ( toupper( fmt[ 0 ] == 'M' ) ) fmt_ar[ 0 ] = DATE_MONTH; + if ( toupper( fmt[ 0 ] == 'Y' ) ) fmt_ar[ 0 ] = DATE_YEAR; + + if ( toupper( fmt[ 3 ] == 'D' ) ) fmt_ar[ 1 ] = DATE_DAY; + if ( toupper( fmt[ 3 ] == 'M' ) ) fmt_ar[ 1 ] = DATE_MONTH; + if ( toupper( fmt[ 3 ] == 'Y' ) ) fmt_ar[ 1 ] = DATE_YEAR; + + if ( toupper( fmt[ 6 ] == 'D' ) ) fmt_ar[ 2 ] = DATE_DAY; + if ( toupper( fmt[ 6 ] == 'M' ) ) fmt_ar[ 2 ] = DATE_MONTH; + if ( toupper( fmt[ 6 ] == 'Y' ) ) fmt_ar[ 2 ] = DATE_YEAR; + + + //-------------------------- + // Initialize our date value + //-------------------------- + + d.set( 0, + 0, + 0 ); + + + //------------------------- + // Find our first delimiter + //------------------------- + + s = strtok( str, "-/." ); + + + if ( s ) + { + int val; + + + val = atoi( s ); + + + if ( fmt_ar[ 0 ] == DATE_YEAR ) + { + d[ fmt_ar[ 0 ] ] = NormalizeYear( val ); + } + else + { + d[ fmt_ar[ 0 ] ] = val; + } + + + s = strtok( NULL, "-/." ); + + + if ( s ) + { + val = atoi( s ); + + + if ( fmt_ar[ 1 ] == DATE_YEAR ) + { + d[ fmt_ar[ 1 ] ] = NormalizeYear( val ); + } + else + { + d[ fmt_ar[ 1 ] ] = val; + } + + + s = strtok( NULL, "-/." ); + + + if ( s ) + { + val = atoi( s ); + + + if ( fmt_ar[ 2 ] == DATE_YEAR ) + { + d[ fmt_ar[ 2 ] ] = NormalizeYear( val ); + } + else + { + d[ fmt_ar[ 2 ] ] = val; + } + } + } + } +} diff --git a/MISC.OBJ b/MISC.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..75f93991f3ffd3bb6ba6a03288f43b9c45835aab GIT binary patch literal 8710 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 literal 0 HcmV?d00001 diff --git a/MODEM.CPP b/MODEM.CPP new file mode 100644 index 0000000..f896d76 --- /dev/null +++ b/MODEM.CPP @@ -0,0 +1,741 @@ +#define Use_MsgBase + +#include +#include +#include +#include +#include +#include +#include + +#include "fossil.hpp" +#include "desqview.hpp" +#include "proboard.hpp" + + + +#define STAT_LINE_Y 20 +#define LAST_CALLER_Y 16 + +#define EVENT_LABEL 0x5F +#define EVENT_DATA 0x5E + +#define TITLE_COLOR 0x71 +#define LABEL_COLOR 0x70 + +static void +fos_sendbreak(int port) +{ + fos_break(port,TRUE); + + unsigned long ticks = clockticks(); + while(clockdiff(ticks)<2) {} + + fos_break(port,FALSE); +} + +struct modem_config : _ModemConfig {}; + +class modem + { + int port; + long baud; + int delay; + public: + modem(int p,long b); + ~modem() + { + fos_deinit(port); + } + void set_delay(int d) + { + delay = d; + } + void cmd(char *s); + bool check_response(String& s); + }; + +modem::modem(int p,long b) +{ + byte baudcode = 0; + + port = p; + baud = b; + + fos_init(port); + + switch(baud) + { + case 300L: baudcode = 0x43; break; + case 1200L: baudcode = 0x83; break; + case 2400L: baudcode = 0xA3; break; + case 4800L: baudcode = 0xC3; break; + case 9600L: baudcode = 0xE3; break; + case 19200L: baudcode = 0x03; break; + case 38400L: baudcode = 0x23; break; + } + + fos_setbps(port,baudcode); +} + +void +modem::cmd(char *s) +{ + for(;*s;s++) + { + char c = *s; + + switch(c) + { + case '~': ::delay(500); + break; + case '`': + case '': + case 'v': fos_setdtr(port,0); + break; + case '^': fos_setdtr(port,1); + break; + case '$': fos_sendbreak(port); + break; + case '|': c = '\r'; + default : fos_sendnw(port,c); + if(delay) + ::delay(delay*100); + } + } +} + +bool +modem::check_response(String& s) +{ + static String resp; + + if(!fos_byteready(port)) + { + return FALSE; + } + + byte c = fos_getch(port); + + if(c == '\r') + { + s = resp; + resp.clear(); + + return (s[0]) ? TRUE:FALSE; + } + + if(c != '\n') resp << char(c); + + return FALSE; +} + +const int STATUS_WAITING_FOR_CALL = 0; +const int STATUS_INITIALIZING = 1; +const int STATUS_WAITING_FOR_OK = 2; + + +bool +do_modem(modem_response *response) +{ + tsw_fillscreen( '±', 0x19 ); + + Window dlg_win( 3, + 2, + 76, + 22, + 0x70, + SHADOW, + CHISEL_BORDER, + 0x7F, + NULL, + 0x78 ); + + Window bar_win( 1, + tsw_vsize, + tsw_hsize, + tsw_vsize, + 0x4F, + NOBORDER|NOSAVE, + NULL ); + + Window stat_win( 6, + 19, + 73, + 21, + 0x0E, // Inner color + NOSAVE, + RECESS_BORDER, + 0x08, // Bright color + NULL, + 0x0F, // Dark color + 0x70 ); // Outer color + + Window lc_win( 6, + 15, + 73, + 17, + 0x1F, + NOSAVE, + RECESS_BORDER, + 0x08, + NULL, + 0x0F, + 0x70 ); + + + Window resp_win( 6, + 8, + 28, + 13, + 0x30, + NOSAVE, + RECESS_BORDER, + 0x08, + NULL, + 0x0F, + 0x70 ); + + Window event_win( 30, + 8, + 73, + 13, + EVENT_LABEL, + NOSAVE, + RECESS_BORDER, + 0x08, + NULL, + 0x0F, + 0x70 ); + + dlg_win.ShadowColor( 0x10 ); + + dlg_win.open(); + resp_win.open(); + lc_win.open(); + stat_win.open(); + event_win.open(); + bar_win.open(); + + + if ( registered ) + { + tsw_centerline( 3, + form( "ProBoard v%s (Node %d - S/N=%s)", + VERSION, + (int) node_number, + software_serial_number() ), + TITLE_COLOR ); + } + else + { + tsw_centerline( 3, + form( "ProBoard v%s [Node %d - UNREGISTERED for %d day%s]", + VERSION, + (int) node_number, + pastFirstUse, + ( pastFirstUse == 1 ) + ? "" + : "s" ), + TITLE_COLOR ); + } + + tsw_centerline( 4, + "Copyright (c) 1990-1999 TeleGrafix Communications, Inc.", + TITLE_COLOR ); + + tsw_centerline( 5, + "All Rights Reserved", + TITLE_COLOR ); + + tsw_maputs( 4, + 6, + 0x7F, + "Ã" ); + + tsw_maputs( 5, + 6, + 0x78, + "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´" ); + + tsw_centerline( 14, "Last Caller" ); + tsw_centerline( 18, "Current Status" ); + + modem_config *modem_cfg = new modem_config; + CLEAR_OBJECT(*modem_cfg); + + File f; + + if(!f.open(FileName(syspath,form("MODEM%03d.PB",node_number)))) + if(!f.open(FileName(syspath,"MODEM.PB"))) + { + LOG("Unable to open MODEM.PB"); + delete modem_cfg; + return FALSE; + } + + + f.read(modem_cfg,sizeof(modem_config)); + f.close(); + + modem_cfg->port--; + + if(response->baud) modem_cfg->maxBps = response->baud; + if(response->port>=0) modem_cfg->port = response->port; + + tsw_maputs( 8, + 7, + LABEL_COLOR, + form( "Modem COM%d/%ld bps", + modem_cfg->port + 1, + modem_cfg->maxBps ) ); + + tsw_maputs( 43, + 7, + LABEL_COLOR, + "System Statistics" ); + + response->port = modem_cfg->port; + + modem modem(modem_cfg->port,(modem_cfg->flags & MODEM_LOCKED) ? 38400L : modem_cfg->maxBps); + + modem.set_delay(modem_cfg->commandDelay); + + tsw_cursoroff(); + + stat_win.clear(); + tsw_centerline(STAT_LINE_Y,"Initializing modem",0xE); + + event_win.attrib( EVENT_LABEL ); + event_win << "\n # Calls: "; + + event_win.attrib( EVENT_DATA ); + event_win << form( "%-6ld ", totalcalls ); + + event_win.attrib( EVENT_LABEL ); + event_win << "# Users: "; + + event_win.attrib( EVENT_DATA ); + event_win << form( "%d\n", num_users ); + + event_win.attrib( EVENT_LABEL ); + event_win << "# Hudson Msgs: "; + + event_win.attrib( EVENT_DATA ); + event_win << form( "%-5ld\n", msgbase.totalMsgs() ); + + event_win.attrib( EVENT_LABEL ); + + if ( lastcaller.name && + *lastcaller.name ) + { + tsw_centerline( LAST_CALLER_Y, + form( "%s (%02d:%02d to %02d:%02d)", + lastcaller.name, + lastcaller.timeIn[ 0 ], + lastcaller.timeIn[ 1 ], + lastcaller.timeOut[ 0 ], + lastcaller.timeOut[ 1 ] ), + 0x1E ); + } + else + { + tsw_centerline( LAST_CALLER_Y, + form( "(%02d:%02d to %02d:%02d)", + lastcaller.timeIn[ 0 ], + lastcaller.timeIn[ 1 ], + lastcaller.timeOut[ 0 ], + lastcaller.timeOut[ 1 ] ), + 0x1E ); + } + + + time_t start_time = time(NULL); + + time_t init_sent = 0; + int init_tries = 0; + bool initialized = FALSE; + bool blanked = FALSE; + + bool init1_ok; + bool init2_ok; + bool init3_ok; + + bool init1_sent = FALSE; + bool init2_sent = FALSE; + bool init3_sent = FALSE; + + time_t blank_start = time(NULL); + + word *blank_buf = new word[tsw_vsize*tsw_hsize]; + + for(;;) + { + String s; + Date date(TODAY); + Time time(NOW); + + if(!blanked) + { + bar_win.direct( 57, + 1, + 0x4E, + form( "%02d:%02d:%02d", + time[ 0 ], + time[ 1 ], + time[ 2 ] ) ); + + bar_win.direct( 66, + 1, + 0x4E, + form( "- %02d %s %d ", + date[ 0 ], + months_short[ date[ 1 ] ], + date[ 2 ] + 1900 ) ); // Y2K OKAY! + + event_win.setPos(1,1); + + event_win.attrib( EVENT_LABEL ); + event_win << " Next Event: "; + + event_win.attrib( EVENT_DATA ); + + if ( nextevent.enabled ) + { + event_win << form( "%s %02d:%02d (%d min) ",days_short[nextevent.nextday()],nextevent.start[0],nextevent.start[1],nextevent.minutesleft()); + } + else + { + event_win << "-NONE-"; + } + + event_win.attrib( EVENT_LABEL ); + event_win << "\n\n\n Time idle: "; + + event_win.attrib( EVENT_DATA ); + event_win << form( "%ld min", (::time(NULL)-start_time)/60); + } + + + if(init_sent && (::time(NULL)-init_sent)>5 && !initialized) + { + if(!blanked) stat_win.clear(); + + if(init_tries>3) + { + if(!blanked) tsw_centerline(STAT_LINE_Y,"Unable to initialize modem",0xE); + response->port = -1; + break; + } + + if(!blanked) tsw_centerline(STAT_LINE_Y,form("Unable to initialize modem. Retrying (Try #%d)",init_tries+1),0x8E); + + initialized = FALSE; + init1_sent = FALSE; + init2_sent = FALSE; + init3_sent = FALSE; + init_sent = 0; + } + + if(!initialized) + { + if(!init1_sent) + { + if(modem_cfg->cmdInit1[0]) + { + modem.cmd(modem_cfg->cmdInit1); + + init1_ok = FALSE; + } + + init1_sent = TRUE; + init_sent = ::time(NULL); + } + + if(!init2_sent && init1_ok) + { + if(modem_cfg->cmdInit2[0]) + { + modem.cmd(modem_cfg->cmdInit2); + + init2_ok = FALSE; + } + else + { + init2_ok = TRUE; + } + + init2_sent = TRUE; + init_sent = ::time(NULL); + } + + if(!init3_sent && init2_sent && init2_ok) + { + if(modem_cfg->cmdInit3[0]) + { + modem.cmd(modem_cfg->cmdInit3); + + init3_ok = FALSE; + } + else + { + init3_ok = TRUE; + } + + init3_sent = TRUE; + init_sent = ::time(NULL); + + init_tries++; + } + } + + if(!initialized && init1_ok && init2_ok && init3_ok) + { + initialized = TRUE; + + stat_win.clear(); + tsw_centerline(STAT_LINE_Y,"Waiting for a call",0xE); + + bar_win.direct( 3, 1, 0x4E, "Alt-L" ); + bar_win.direct( 8, 1, 0x4F, "=Local" ); + + bar_win.direct( 16, 1, 0x4E, "Alt-J" ); + bar_win.direct( 21, 1, 0x4F, "=Jump to DOS" ); + + bar_win.direct( 35, 1, 0x4E, "Esc" ); + bar_win.direct( 38, 1, 0x4F, "=Exit" ); + + + //---------------------------------------------- + // This line of code is used to show the current + // screen saver timeout (debuging only) + //---------------------------------------------- + + //bar_win.direct( 50, 1, form( "%ld", (long) modem_cfg->blankTime ) ); + } + + + if(init_sent && (::time(NULL)-init_sent) > 300) + { + initialized = FALSE; + init1_sent = FALSE; + init2_sent = FALSE; + init3_sent = FALSE; + init_sent = 0; + init_tries = 0; + } + + + if(modem.check_response(s)) + { + s << '|'; + + if(blanked) + { + tsw_puttext(blank_buf,1,1,tsw_hsize,tsw_vsize); + blanked = FALSE; + blank_start = ::time(NULL); + } + + if(init1_sent && !init1_ok && s==modem_cfg->cmdInit1) + continue; + if(init2_sent && !init2_ok && s==modem_cfg->cmdInit2) + continue; + if(init3_sent && !init3_ok && s==modem_cfg->cmdInit3) + continue; + + s.delLast(); + resp_win << form("%-17.17s",(char *)s) << '\n'; + s << '|'; + + if(strstr(s,modem_cfg->msgOk) && !initialized) + { + if(init1_sent && !init1_ok) + init1_ok = TRUE; + if(init2_sent && !init2_ok) + init2_ok = TRUE; + if(init3_sent && !init3_ok) + init3_ok = TRUE; + } + + + if(initialized) + { + String connect = s; + long baud = 0; + + if(modem_cfg->msgRing[0] && strstr(connect,modem_cfg->msgRing) && (modem_cfg->flags & MODEM_MANUAL_ANSWER)) + { + modem.cmd(modem_cfg->cmdAnswer); + } + + if(!baud && modem_cfg->userConBps1 && strstr(connect,modem_cfg->msgConUser1) && modem_cfg->msgConUser1[0]) baud = modem_cfg->userConBps1; + if(!baud && modem_cfg->userConBps2 && strstr(connect,modem_cfg->msgConUser2) && modem_cfg->msgConUser2[0]) baud = modem_cfg->userConBps2; + if(!baud && modem_cfg->userConBps3 && strstr(connect,modem_cfg->msgConUser3) && modem_cfg->msgConUser3[0]) baud = modem_cfg->userConBps3; + if(!baud && modem_cfg->userConBps4 && strstr(connect,modem_cfg->msgConUser4) && modem_cfg->msgConUser4[0]) baud = modem_cfg->userConBps4; + if(!baud && modem_cfg->userConBps5 && strstr(connect,modem_cfg->msgConUser5) && modem_cfg->msgConUser5[0]) baud = modem_cfg->userConBps5; + if(!baud && modem_cfg->userConBps6 && strstr(connect,modem_cfg->msgConUser6) && modem_cfg->msgConUser6[0]) baud = modem_cfg->userConBps6; + + if(!baud && strstr(connect,modem_cfg->msgCon115200)&& modem_cfg->msgCon115200[0])baud = 115200L; + if(!baud && strstr(connect,modem_cfg->msgCon64000) && modem_cfg->msgCon64000[0]) baud = 64000L; + if(!baud && strstr(connect,modem_cfg->msgCon57600) && modem_cfg->msgCon57600[0]) baud = 57600L; + if(!baud && strstr(connect,modem_cfg->msgCon38400) && modem_cfg->msgCon38400[0]) baud = 38400L; + if(!baud && strstr(connect,modem_cfg->msgCon36000) && modem_cfg->msgCon36000[0]) baud = 36000L; + if(!baud && strstr(connect,modem_cfg->msgCon33600) && modem_cfg->msgCon33600[0]) baud = 33600L; + if(!baud && strstr(connect,modem_cfg->msgCon31200) && modem_cfg->msgCon31200[0]) baud = 31200L; + if(!baud && strstr(connect,modem_cfg->msgCon28800) && modem_cfg->msgCon28800[0]) baud = 28800L; + if(!baud && strstr(connect,modem_cfg->msgCon26400) && modem_cfg->msgCon26400[0]) baud = 26400L; + if(!baud && strstr(connect,modem_cfg->msgCon24000) && modem_cfg->msgCon24000[0]) baud = 24000L; + if(!baud && strstr(connect,modem_cfg->msgCon21600) && modem_cfg->msgCon21600[0]) baud = 21600L; + if(!baud && strstr(connect,modem_cfg->msgCon19200) && modem_cfg->msgCon19200[0]) baud = 19200L; + if(!baud && strstr(connect,modem_cfg->msgCon16800) && modem_cfg->msgCon16800[0]) baud = 16800L; + if(!baud && strstr(connect,modem_cfg->msgCon14400) && modem_cfg->msgCon14400[0]) baud = 14400L; + if(!baud && strstr(connect,modem_cfg->msgCon12000) && modem_cfg->msgCon12000[0]) baud = 12000L; + if(!baud && strstr(connect,modem_cfg->msgCon9600 ) && modem_cfg->msgCon9600[0] ) baud = 9600L; + if(!baud && strstr(connect,modem_cfg->msgCon7200 ) && modem_cfg->msgCon7200[0] ) baud = 7200L; + if(!baud && strstr(connect,modem_cfg->msgCon4800 ) && modem_cfg->msgCon4800[0] ) baud = 4800L; + if(!baud && strstr(connect,modem_cfg->msgCon2400 ) && modem_cfg->msgCon2400[0] ) baud = 2400L; + if(!baud && strstr(connect,modem_cfg->msgCon1200 ) && modem_cfg->msgCon1200[0] ) baud = 1200L; + if(!baud && strstr(connect,modem_cfg->msgCon1275 ) && modem_cfg->msgCon1275[0] ) baud = 1200L; + if(!baud && strstr(connect,modem_cfg->msgCon300 ) && modem_cfg->msgCon300[0] ) baud = 300L; + + if(baud) + { + stat_win.clear(); + tsw_centerline(STAT_LINE_Y,form("Incoming call at %ld bps",baud),0xE); + response->baud = baud; + break; + } + + if(modem_cfg->msgConExternal[0] && strstr(connect,modem_cfg->msgConExternal)) + { + SCREEN.clear(); + modem.modem::~modem(); + exit(modem_cfg->externalErrorLevel); + } + } + } + + if ( modem_cfg->blankTime && + ! blanked && + ( ::time( NULL ) - blank_start ) > modem_cfg->blankTime ) + { + tsw_gettext(blank_buf,1,1,tsw_hsize,tsw_vsize); + tsw_fillscreen(' ',0); + blanked = TRUE; + } + + if( nextevent.minutesleft()==0 && nextevent.start[0]==time[0] + && nextevent.start[1]==time[1] && time[2]<=1 + && nextevent.node == node_number) + { + modem.modem::~modem(); + SCREEN.clear(); + + + if(nextevent.type) + { + String s = "*=*Q*N*C /C "; + s << nextevent.command; + shell(s); + exit(0); + } + else + { + exit(nextevent.errorlevel); + } + } + + if(KB.hit()) + { + if(blanked) + { + tsw_puttext(blank_buf,1,1,tsw_hsize,tsw_vsize); + blanked = FALSE; + blank_start = ::time(NULL); + } + + KEY k=KB.get(); + + if(k==KEY_ALTL) + { + stat_win.clear(); + tsw_centerline(STAT_LINE_Y,"Local login",0xE); + modem.cmd(modem_cfg->cmdOffHook); + response->baud = 0; + sleep(1); + break; + } + + if(k==KEY_ESC) + { + stat_win.clear(); + tsw_centerline(STAT_LINE_Y,"Exit",0xE); + modem.cmd(modem_cfg->cmdDown); + sleep(1); + modem.modem::~modem(); + SCREEN.clear(); + exit(99); + } + + if(k==KEY_ALTJ) + { + tsw_gettext(blank_buf,1,1,tsw_hsize,tsw_vsize); + tsw_cursoron(); + SCREEN.clear(); + modem.cmd(modem_cfg->cmdOffHook); + shell("*X*C*N*Q"); + tsw_cursoroff(); + tsw_puttext(blank_buf,1,1,tsw_hsize,tsw_vsize); + + initialized = FALSE; + init1_sent = FALSE; + init2_sent = FALSE; + init3_sent = FALSE; + init_sent = 0; + init_tries = 0; + } + } + + if(!access(form("%sDOWN.%d",syspath,node_number),0)) + { + stat_win.clear(); + tsw_centerline(STAT_LINE_Y,"Going down on external request",0xE); + LOG("Going down on external request"); + + modem.cmd(modem_cfg->cmdDown); + sleep(1); + modem.modem::~modem(); + SCREEN.clear(); + + File f; + f.open(form("%sISDOWN.%d",syspath,node_number),fmode_create|fmode_write); + f.close(); + + exit(100); + } + + static int timeslice_count = 0; + + if(!(++timeslice_count % 20)) + DV_timeslice(); + } + + + tsw_cursoron(); + + delete modem_cfg; + delete [] blank_buf; + + bar_win.close(); + resp_win.close(); + lc_win.close(); + stat_win.close(); + event_win.close(); + dlg_win.close(); + + SCREEN.clear(); + + return (response->port<0) ? FALSE:TRUE; +} + diff --git a/MODEM.OBJ b/MODEM.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..d4f95b3a550b331b757fe876b69ab1b043f75d37 GIT binary patch literal 12651 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 +#include +#include +#include "proboard.hpp" + + + +Message::Message( int n ) +{ + clear(); + + msgArea = new MsgArea; + + + if ( n ) + { + msgArea->read( n ); + } +} + + + +Message::Message( Message *p, + int n ) +{ + if ( p != this ) + { + memcpy( this, + p, + sizeof( *p ) ); + } + + + msgArea = new MsgArea; + + + if ( n ) + { + msgArea->read( n ); + } +} + + + +void Message::clear() +{ + MsgArea *ma = msgArea; + + CLEAR_OBJECT( *this ); + + msgArea = ma; +} + + + +Message::~Message() +{ + delete msgArea; +} + + + +bool Message::readAccess() +{ + if ( ! check_access( msgArea->readLevel, + msgArea->readFlags, + msgArea->readFlagsNot ) && + + !msgArea->sysopAccess() ) + { + return FALSE; + } + + + if ( attr & MSGATTR_PRIVATE ) + { + return ! ( strcmpl( to, user.name ) && + strcmpl( from, user.name ) && + ( + strcmpl( to, user.alias ) || + ! msgArea->flags + ) + && + ( + strcmpl( from, user.alias ) || + ! msgArea->flags + ) + && + ! msgArea->sysopAccess() ); + } + else + { + return TRUE; + } +} + + + +int Message::areaNum() +{ + return msgArea->areaNum; +} + + + +bool Message::setArea( int n ) +{ + bool r = msgArea->read( n ); + + + if ( ! r ) + { + msgArea->areaNum = 0; + } + + + return r; +} + + + +bool Message::read( long n, + int a ) +{ + if ( a ) + { + if ( ! msgArea->read( a ) ) + { + return FALSE; + } + } + + + long actual_n = msgBase()->readMsg( *this, n ); + + + return ( n == actual_n ) + ? TRUE + : FALSE; +} + + + +void Message::setFlag( dword msgflag ) +{ + if ( msgflag & MSGATTR_RECEIVED ) + { + recvDate.today(); + recvTime.now(); + } + + + attr |= msgflag; + + msgBase()->updateMsg( *this ); +} + + + +void Message::clearFlag( dword msgflag ) +{ + attr &= ~msgflag; + + msgBase()->updateMsg( *this ); +} + + + +void Message::toggleFlag( dword msgflag ) +{ + attr ^= msgflag; + + msgBase()->updateMsg( *this ); +} + + + +void clearmarked( char * ) +{ + markedmsglist.clear(); + + + io << "\n\n" + << S_UNMARKED_ALL_MESSAGES + << ' ' + << S_PRESS_ENTER_TO_CONTINUE; +} + + + +void Message::addOrigin() +{ + aka a; + bool echo_area = FALSE; + + File fo; + File fi( "MSGTMP", fmode_text ); + + + if ( ! fi.opened() ) + { + return; + } + + + fo.open( "MSGTMP.$$$", + fmode_create | fmode_text ); + + + if ( msgArea->msgKind == MSG_NET ) + { + a.read( msgArea->aka ); + + origZone = a.zone; + origNet = a.net; + origNode = a.node; + origPoint = a.point; + + + if ( msgArea->msgBaseType != MSGBASE_JAM ) + { + if ( origPoint ) + { + fo << form( "\1FMPT %d\n", + origPoint ); + } + + + if ( destPoint ) + { + fo << form( "\1TOPT %d\n", + destPoint ); + } + } + } + + + if ( msgArea->msgKind == MSG_ECHO || + msgArea->msgKind == MSG_PVTECHO ) + { + a.read( msgArea->aka ); + + origZone = destZone = a.zone; + origNet = destNet = a.net; + origNode = destNode = a.node; + origPoint = destPoint = a.point; + + echo_area = TRUE; + } + + + bool blankline = FALSE; + + + for ( ; ; ) + { + String line; + String copiedline; + + + line = fi.readLine(); + + + if ( line[ 0 ] == '\0' ) + { + break; + } + + + line.delLast( '\n' ); + + copiedline = line; + + copiedline.trim(); + + + if ( line.len() >= 4 ) + { + if ( ! strncmp( copiedline, + "--- ", + 4 ) ) + { + //------------------- + // Get rid of tagline + //------------------- + + break; + } + + + if ( ! strncmp( copiedline, + "* Origin", + 8 ) ) + { + //------------------------ + // Stop when *Origin found + //------------------------ + + break; + } + } + + + if ( ! strcmp( copiedline, "---" ) ) + { + line.clear(); + } + + + if ( line[ 0 ] != '\x01' ) + { + fo << line + << '\n'; + } + + + blankline = ( line[ 0 ] == '\0' ); + } + + //---------------------------- + // JDR: REGISTRATION REFERENCE + //---------------------------- + + if ( ! registered && + ( + pastFirstUse < 0 || + pastFirstUse > 60 + ) + ) + { + if ( pastFirstUse < 0 ) + { + pastFirstUse = 61; + } + + + if ( ! blankline ) + { + fo << '\n'; + } + + + char *unr_str = "...This copy of ProBoard has been unregistered for %d days!\n\n"; + + + if ( crc32( unr_str ) != 0xB3328DC5L ) + { + exit_proboard(); + } + + + fo << form( unr_str, pastFirstUse ); + + blankline = TRUE; + } + + + if ( echo_area ) + { + if ( ! blankline ) + { + fo << '\n'; + } + + + fo << "--- ProBoard v" TEARVERSION; + + + //---------------------------- + // JDR: REGISTRATION REFERENCE + //---------------------------- + + if ( registered ) + { + fo << " [Reg]"; + } + else + { + fo << " [EVALUATION]"; + } + + + fo << "\n * Origin: "; + + + if ( msgArea->origin[ 0 ] ) + { + fo << msgArea->origin; + } + else + { + fo << cfg.originline; + } + + + fo << form( " (%d:%d/%d", + a.zone, + a.net, + a.node ); + + if ( a.point ) + { + fo << form( ".%d)\n", a.point ); + } + else + { + fo << ")\n"; + } + } + + + fo.close(); + fi.close(); + + + unlink( "MSGTMP" ); + rename( "MSGTMP.$$$", "MSGTMP" ); +} + + + +long Message::add() +{ + attr |= MSGATTR_LOCAL; + + + switch ( msgArea->msgKind ) + { + case MSG_NET: + + attr |= MSGATTR_NETMAIL; + + break; + + + case MSG_PVTECHO: + case MSG_ECHO: + + attr |= MSGATTR_ECHOMAIL; + + break; + } + + + addOrigin(); + + + if ( msgArea->tag[ 0 ] ) + { + File f( FileName( syspath, "ECHOTOSS.LOG" ), + fmode_text | + fmode_copen | + fmode_rw | + fmode_append ); + + + if ( f.opened() ) + { + f << msgArea->tag + << '\n'; + } + } + + + long n = msgBase()->appendMsg( *this ); + + + if ( n < 1 ) + { + return -1; + } + + + switch ( msgArea->msgKind ) + { + case MSG_NET: + + net_entered++; + + break; + + + case MSG_PVTECHO: + case MSG_ECHO: + + echo_entered++; + + break; + } + + + return n; +} + + + +void Message::addReply( Message &org ) +{ + Message msg( org.areaNum() ); + long n = org.id; + + + if ( ! msg.read( n ) ) + { + return; + } + + + while ( msg.next ) + { + if ( ! msg.read( msg.next ) ) + { + break; + } + } + + + prev = msg.id; + + msgBase()->updateMsg( *this ); + + + msg.next = id; + + msg.msgBase()->updateMsg( msg ); +} + + + +void Message::delReply() +{ + Message msg( areaNum() ); + + + if ( prev ) + { + if ( msg.read( prev ) ) + { + msg.next = next; + + msg.msgBase()->updateMsg( msg ); + } + } + + + if ( next ) + { + if ( msg.read( next ) ) + { + msg.prev = prev; + + msg.msgBase()->updateMsg( msg ); + } + } + + + if ( next || + prev ) + { + next = 0; + prev = 0; + + msgBase()->updateMsg( *this ); + } +} + + + +int Message::pointNum( int mode ) +{ + if ( msgArea->msgBaseType != MSGBASE_HUDSON ) + { + if ( mode ) + { + return destPoint; + } + else + { + return origPoint; + } + } + + + String s; + int inkludge = 0; + bool msgdone = FALSE; + + + for ( long txt_off = 0; ! msgdone; txt_off += 255 ) + { + char rec[ 256 ]; + int l = readText( rec, + txt_off, + 255 ); + + + if ( l < 255 ) + { + msgdone = TRUE; + } + + + for ( int j = 0; j < l; j++ ) + { + switch ( rec[ j ] ) + { + case '\n': + + break; + + + case '\r': + + if ( inkludge ) + { + s.upperCase(); + + + if ( mode ) + { + if ( ! strncmp( s, + "TOPT", + 4 ) ) + { + return atoi(&s[5]); + } + } + else + { + if ( ! strncmp( s, + "FMPT", + 4 ) ) + { + return atoi( & s[ 5 ] ); + } + } + } + + + inkludge = 0; + s = ""; + + break; + + + case 1: + + s = ""; + inkludge = 1; + + break; + + + default: + + if ( inkludge ) + { + s << char( rec[ j ] ); + } + + break; + } + } + } + + + return 0; +} + + + +void write_msgtmp( char *s ) +{ + File f( "MSGTMP", fmode_create ); + + f << s; +} diff --git a/MSG.OBJ b/MSG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..f6af72c0d929ed7f717f6e7c3125910592ddc441 GIT binary patch literal 7355 zcmdT}eQ;CPmA_AtWg&lHY-4Obgdny{N-)Kygbi^k0v1UJuxp!}XgWa^var?Il8~Mh zpb6k;7c7)aoV1eXQUp^tzAO{GjPxA`*zqFbV!;ZFX_V%X7+I3r+ zw>IV3w{C9VtP@}MhuYe-c=TJhwKnf+x&BH%S=Cpn(Q>b1^zeTZT^?7?Muh0|xq=gV zVh}WfcGt7dXct&q``x_V=lAaMI{Y2g``pBAadx?!PuLw!rz;Ss-WPPQTen#pTe}^d z0luCX?7lsAc+g3-cDI-4?9RQNB+niUxcsEZ?sEiqtJ@#ocLiLe!0vZ-x&yq+@9F@~ zT^?y#X!p2yb!M;!4g`D-zKfJw_Id*WcemSXsov8a=&Ii5Ip`#1cR&Fwv^bt{ zSo|)BXnBFf>h5-J#?-QxEVj4VTUwji+U!j`+nZYL?alTr%{$v4*}1EU6x(|o{wG`= zSetGbM;2Lj1Uf}N*x>a^-d67mkrEZ5=rF2~y=0-q4j=uNZg|}0a`>HHZ9bQi6v<%7 z+UoYh#=TyD51iP4(CH%cMH>~z;KG7A07j&Mn9A*LkBb>nEKxbTy#aAvF3r6@mq(Hu z35LQwK1bsf2e~Ux1T_x*=@%uqmrjT{Gy0;^i)%(OC z$h>k6092{aRqt^GI;;2f?B5{KWF*KKF^nY&xw9LK!|YKZ)q6TvgyulRn1v7mr{CF7 zFNF_T?clxLB;OwNbh|xIVBmLo5IO9D0K9be_@t4Cjq({x8uYk&0xlj944l3LqyUQo z@33~B5HVunaUsM(H#yi}MF>}FdD8FZU3MfS-{S+(L8rBpyw#7I!7Z?e_DdNnqFVK& zt$!I%6_y>?qK;0NxCPX-&C`;p{tDpdt9VBTc1WnYki5~q1c-7K;q$sZ{LUbj%iUN) zX#Y}R7phpWHT&J2ZX{XgjGnxm!wipFUA}IX3|EWEKlk4Q=B3%pGPdV_+0OGtH{<-E7Ev)jc=3*ymTs3-e!Tob)l@R#$*U*#BqI4jui{~_YRF^#E1++&s!!RL zN-*3TIMRCuyO@S<)c*CSbUKcZUD5IIxQ<3c#;8?aU^N66#V(PS6YO-bMW`VH;N_rp zjBr5by+nkNK}Omb;MH8f$y~te*#K}0A^izBO>DNwPsTv7oE2@uC8N@t_inY3Q|#&_#$BQO7w)JBe7 zAO%x=1!WLn5D;PT0ue(Ij)T|$kJDs#^be0;Rijq?rBPe*e-gE*wJ=JJo3J){o2Z_z zWD6vO3WbnSjwf6q;kfbte?VE_qsI{V=*t&K#5x{-X8towRWhV(kr2w{T`kA@7GTjFR35Z!}?cX=gA=@^~8l=lEK?-*)qnK z|L=S$c04DLCkGMrCto&ZB)Xy7*W(Zjp12o$m-)c zX*i4FKt{@u!;fnD-AqmRB92wQnhk})0Thsh^6`)SZ)MJ@RAOI%@q_o!+3HCj0Q6IwJJ!S^sNO#HZl(yA76|r$DQKP3mFsxg~2Zh@jGG!=Y;ya49W`mdon01^f4JU zK#)pY!aBv$>86rS7=NmcF*(oTeqC8%0~=?^k*YC`m@g^?a$utN$ahJwM#jj}u!J%| zRt3PAl^Zb55vLbrnv4ycI%|LTCcmOfIW?T#cQwYx}HIUm=R$ojpaw z0}H$J84~^us?JmS?DOCuUYtFxAHwe~jW{Z%#5zzSMP0Q(|LpF`A?w5@R9$AA7($z^ zce?)FU|!>u=lFRj4iZqe6ni!Y zkuEjGev$(-#oow)WH$80UqgmMSFXkxCEV-D+a-Fu>OtH(d95((POU6e|F5`x7 zv&wUmersr)4X)EABOl_qN~?x0Gr%AU)Xz|$-ei*(F$rUGm`!>>(n0gC{*dO4P#{)e zzMLT{FeqXJ4XsLijzMCgf-|6%s!Du}+3@daGy4x&+U# zowPFXeLxf6W3Mgj^&oq#WiqPieZyt+zSMux%G4idRceT?PQ6FhUpWiT)F~jI$8(T2 zT=6l$4>4)R^8f(fVt}QzHdR8aQ(Ag&@{jZz$&cuL$rPS<@tg+i1-ckr+?r$nPbn>~ zV_n;y3;t1!KPwVyK(hm_UXW_V1LOG@iKRCD{7>0sPCfySZ=>f)BRcWIMh)RB8?}Tl zORrR@4H9*FfdU{Rz?_yFl;RsJr`i5ij+2Y)IhOh-2s=(S1-LFW{I;dl6#G~CsE2J+ zN-Zrx_a3oMu;L&*sl%fI_L_pl@qI0Gd>b$EtFdXBA~CJkvo=jiYn3CbYsd()*LyT9;=7HwxWLm#b<)KPE?~o9dn#nfDcmu|QdTb2 zM~VBwBs)~zCTWw%@v#v4NZ~l4a%j@HJbzSR{Wy3H4n&VWBt&1b2xv)u#%^zCk&FC(XcCImT@z4 zjg#0;Gc|8!tAQY4@U*Jtk-2JML=?e`SZ_q=Cx5Y;pxBXRoD)48f`0MGm(%z#tA^mW z2snce(s~x-9t%x;#Em!4<@Rjxv*6 zMwcWP;L*`_aRR{Ko_b!x{dqoq2V&yomi7y8Kv^p%2KptItLn;`IQpn61uZS%P2odE zT=1oM#>m(;E?po^aIH?U#(7#kRc#GI!umNGLMw*XBq3wZ;n$j}D60=QBlNSFz&ebZ zXmAkO(OHbyFA%D>thJQAP_wNv94|$U={+&M2)7{?U|0RIDP3RU|=PuiqT>jtxhZN{ulYlHL?NceJI#5x|KpP~;FLZ8Zg z1ad-dVq|$NY}OlN|3uQbaMCf%P^obCX))f1%9N0x%$SVs3zLZ6R)kl>aKdV_cg(lEi{>yByby6T4 zP>g#$v1fjYtHj2X+?o`X-cT#Lv}{nOg4nqwPi!`pO5Z<8$#5@j7d*~k2W}XTAx(!j z;&jcYt5W0in^*pwotGbCFv12Gk@IKi+Ef%LX)gnG17HJSBLH;_u$0y$pQ3Bdo)QRt z>NFY&{7kh+?VdyNEtcbYFlnzlUL+}_;Q lR=2%*8)1GB<`yc2jNjT +#include "proboard.hpp" + +File MsgArea::f; +int MsgArea::lastAreaNum = -1; +int MsgArea::numAreas = -1; + +MsgArea *MsgArea::lastArea = NULL; + +void +MsgArea::open() +{ + if(!f.opened()) + { + if(!f.open(FN_MSGAREAS_PRO,fmode_read,cfg.fastmode ? BUFSIZE_FAST:BUFSIZE_SLOW)) + file_error(FN_MSGAREAS_PRO); + + numAreas = int(f.len() / sizeof(_MsgArea)); + } +} + +bool +MsgArea::read(int a) +{ + open(); + + msgBase = NULL; + + if(a<1 || a>numAreas) return FALSE; + + if(lastArea == NULL) + { + lastArea = new MsgArea; + lastAreaNum = -1; + } + + if(a != lastAreaNum) + { + f.seek(long(a-1) * sizeof(_MsgArea)); + + if( f.read(lastArea,sizeof(_MsgArea)) != sizeof(_MsgArea) + || lastArea->name[0] == '\0' ) + { + lastAreaNum = -1; + + return FALSE; + } + + switch(lastArea->msgBaseType) + { + case MSGBASE_SDM : + case MSGBASE_SQUISH: lastArea->msgBase = squishMsgBase; + break; + case MSGBASE_JAM : lastArea->msgBase = jamMsgBase; + break; + case MSGBASE_HUDSON: lastArea->msgBase = hudsonMsgBase; + if((a<1 || a>200) && lastArea->name[0]) + { + LOG("Message area %d: Hudson type not allowed",a); + return FALSE; + } + break; + default : LOG("Bad message base type for area #%d",a); + return FALSE; + } + } + + (*this) = (*lastArea); + + if(msgBaseType != MSGBASE_HUDSON) + { + append_backspace(path); + + if(msgBaseType != MSGBASE_SDM) path[strlen(path)-1] = '\0'; + } + + lastAreaNum = areaNum; + + if(!sysop[0]) strcpy(sysop,cfg.sysopname); + + if(!replyBoard) replyBoard = areaNum; + + strip_trailing( name ); + strip_leading( name ); + + return (name[0]) ? TRUE:FALSE; +} + +void +MsgArea::close() +{ + f.close(); + + if(lastArea != NULL) delete lastArea; + + lastAreaNum = -1; + numAreas = -1; + lastArea = NULL; +} + +int +MsgArea::highAreaNum() +{ + open(); + + return numAreas; +} + +bool +MsgArea::sysopAccess() +{ + return ( check_access(sysopLevel,sysopFlags,sysopFlagsNot) + || !strcmpl(sysop,user.name) + || !strcmpl(cfg.sysopname,user.name) + ); +} + diff --git a/MSGAREA.OBJ b/MSGAREA.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..3d8facc79761f78ab2a09c462c777f9f4df8345d GIT binary patch literal 3322 zcmZu!eN0=|6+idces(ZWNC>1&ms$!%ttw>-RIF-NWCECEN`iyU1vE8Jj%~oh7~>CU zqKzfMm*X>2k` zjrGoYy(*-g4u=jOQQEz4w^K5aB!?(9b&yR`wHupTTiWaoUo*lp^P-?*^{DM~g5JR1 zBW)9iM)nD5BAC`OrfCIc_SqXE6lR2sZvXe+V2^9edmMSiy)|<8E$+ z63Mnt$_~~c*;`w{Vs-a;-Mx~_?e>Pll><@V_U-kmZu7gk!;xwzwRZXZUdbB@^@l14 z0*Bo`D6sBnX;yVF=p}boHyEU7*c$?~)rQ=9tgN*Q%+fbpeS5>*J6&Nf6iYo(Pq;s@ zVu!J>a8J(OXqDP9gVpZ}M;u;P$lc=zdfiZzg~Nx!jlK{Rs`;&cZ=iBu5Q;S`?Dh6m z4)}dgqS@HH2M0G84d)nce}C9Z5oH>qKS&7zuN-zq!^kSqP+!0oA<_nGI1=&&B|qlz z1-jMu#7GT{gj_y<9xb=Jf|$!A9dx;S!$FrDd%+5UNg}qpF9=4`aJ-u04j#f9RUY(s z{lpx^N>&~Wc!#L&5InaYfSIk5!`ay6kZ>sf6ybvvu%TriftN*?8ry=*3M&>*t#yyD zyN8s0(LN+>7UAb(xTaZYo{%fRKMYW{CKfB(AJk?XW1khlK30LTCHYvboW5@Xl&|P*k+6>%lDLX;cH;dKa7=XOI?ZCeDI+BI=0){BWWwR>uqwF~q@?*2O`v*G$+mwR*_Z3a|wk z_BSvPVu?aEX2U9P)*;qRoL^w}))jJRXR8)#21;CsZ-|5vh9)iVkD3_@CYMM;h?a2 z7aI*YqXDP$0FIp)=kmb&8gM=jT-1PxJdo0W1U3p^R&0;bqSnggBAnF2Bpz#-%nmGN zR5$l`z*;DiyI!}q)?AA(u+Fcm1!=Xf6e5-=KnIpn#B%CCSI&Z$7Fg7r*rJE3Bj46T zbe)!a?%}eE9cyks3(ED_L*0<{=a05!esRq}_z3}&a(pcr3s@!pWPznySHbE3t}<3Q zYJrbtF2V46H8=GaF}81sn;>mWm!h&gKg;6W;pGz|cA^K_wj}e##DT>sg?dx4H=4VA z*Q&>;LMV~dET~4apx8tME}%h^U9l~y+LHbE`#~)aF^@I35p$FpvbbhpLsq+HwNsXk zd=}EyWEuG-PCcekTN>p%sx7N6*=MshwPat&+82OwU&`ku4RhD6j8GX7voA|6#hS7< zwPY7$ZEDFb%-V&Fau>7Q+mnX5D_7^P&T^|&?(=yrX~=y^<5Hf1ypJ^W6|K&5gl1(p zn+y$EHL!*w-%-I)wMAPv{ux}I=IrWk@Oc%VXE~ceduD{QR81KZQeQ?fQ^}1f3t1H; z%qWug%UNOaE{QamAD1(8@;@YQkU3M%ijtQ}Op^IWCrkdCl($Lz6vgxp`1+(=#&pS7 z2|7wpgqJ3R2u=5JA!#T0Yb0zW8cY!T(y+L})x|vp zSloAU7d(*p0&cokkO&B-Y3?1WZjYZtjfBh@L6P`Lq>(=09EEpcN>I-q>~@|8K3#Q%RWykk~Q-OkS374lf_D-lNip}d4n@Qo~(Th~cWtl&ss|L@xDy2eO7po{VCHVt0 zOUW*Zs?6^$XiEz(1T53@TjKgJs*!mj^0?~Cl`&U5jLF^HX`uIB^S)mID96WP<`&>MAK`_~WTl+;sUJZc4pf&eqMmj(|eSFgK*O;xmrZZvDUE^H+SXIob4YdHM8Pyka`aHz&Kf=}&HMN;)WF z2Y+JP!Z%HA6BSdM$zeh{fgi z_YZkJu+!zS^kvBh@mpDAboGa{(5+8<;F<9Pz=>rR{P+XcaRW>VPWDv<@ka==;AbMV Yopen(); +} + +void +MsgBaseList::close() +{ + for(int i=0 ; mblist[i] ; i++) mblist[i]->close(); + + MsgArea::close(); +} + +bool +MsgBaseList::lock() +{ + for(int i=0 ; mblist[i] ; i++) + if(!mblist[i]->lock()) + return FALSE; + + return TRUE; +} + +bool +MsgBaseList::unlock() +{ + for(int i=0 ; mblist[i] ; i++) + if(!mblist[i]->unlock()) + return FALSE; + + return TRUE; +} + +word +MsgBaseList::scanMail(MessageIndex *mi,word maxmsgs) +{ + word left = maxmsgs; + + for(int i=0; mblist[i] ; i++) + { + if(left>0) left -= mblist[i]->scanMail(&mi[maxmsgs-left],left); + } + + return maxmsgs-left; +} + +long +MsgBaseList::totalMsgs() +{ + long total = 0; + + for(int i=0; mblist[i] ; i++) + { + total += mblist[i]->totalMsgs(); + } + + return total; +} diff --git a/MSGBASE.HPP b/MSGBASE.HPP new file mode 100644 index 0000000..1076d9c --- /dev/null +++ b/MSGBASE.HPP @@ -0,0 +1,433 @@ +class Message; +class MsgBase; +class SquishMsgBase; +class HudsonMsgBase; +class JamMsgBase; +class MsgArea; +class MessageIndex; + +class HudsonMsgIdx; +class HudsonMsgHdr; +class HudsonMsgToIdx; +class HudsonMsgInfo; + +class JamFileHeader; +class JamHeader; +class JamExtHeader; +class JamIndex; +class JamLastRead; + +class MsgBase + { + public: + MsgBase() {} + virtual ~MsgBase() {} + + virtual bool open() = 0; + virtual void close() = 0; + + virtual bool lock() { return TRUE; } + virtual bool unlock() { return TRUE; } + + virtual long readMsg(Message& msg , long num) = 0; + virtual word readMsgText(Message& msg, char *text, long offset , word size) = 0; + virtual word scanMail(MessageIndex *mi,word maxmsgs) = 0; + virtual long appendMsg(Message&) = 0; + virtual bool updateMsg(Message&) = 0; + + virtual long highMsg(MsgArea&) = 0; + virtual long lowMsg (MsgArea&) = 0; + virtual long numMsgs(MsgArea&) = 0; + virtual long totalMsgs() = 0; + + virtual bool deleteMsg(Message&) = 0; + + virtual long lastRead(MsgArea&,long rec) = 0; + virtual void setLastRead(MsgArea&,long rec,long num) = 0; + + virtual long msgNum(MsgArea&,long id) = 0; + virtual long msgId (MsgArea&,long num) = 0; + }; + +class SquishMsgBase : public MsgBase + { + MSG *lastarea; + int lastareanum; + + MSG *readArea(MsgArea&); + public: + SquishMsgBase() { open(); } + ~SquishMsgBase() { close(); } + + bool open(); + void close(); + + bool lock() { return TRUE; } + bool unlock() { return TRUE; } + + long readMsg(Message& msg , long num); + word readMsgText(Message& msg, char *text, long offset , word size); + word scanMail(MessageIndex *mi,word maxmsgs); + long appendMsg(Message&); + bool updateMsg(Message&); + + long highMsg(MsgArea&); + long lowMsg (MsgArea&); + long numMsgs(MsgArea&); + long totalMsgs() { return 0; } + + bool deleteMsg(Message&); + + long lastRead(MsgArea&,long rec); + void setLastRead(MsgArea&,long rec,long num); + + long msgNum(MsgArea&,long id); + long msgId (MsgArea&,long num); + }; + +class HudsonMsgBase : public MsgBase + { + File f_msghdr; + File f_msgtxt; + File f_msgtoidx; + File f_msgidx; + File f_msginfo; + + HudsonMsgIdx *lastMsgIdx; + int *highArray; + int *lastReadArray; + long lastIndex; + long lastReadRecord; + /////////////////// + + void flushCache(); + void readHighArray(); + void readLastRead(long record); + + void readInfo(HudsonMsgInfo&); + void writeInfo(HudsonMsgInfo&); + + long findIdx(HudsonMsgIdx &mi,int num,int area,int order); + + public: + HudsonMsgBase(); + ~HudsonMsgBase(); + + bool open(); + void close(); + + bool lock(); + bool unlock(); + + long readMsg(Message& msg , long num); + word readMsgText(Message& msg, char *text, long offset , word size); + word scanMail(MessageIndex *mi,word maxmsgs); + long appendMsg(Message&); + bool updateMsg(Message&); + + long highMsg(MsgArea&); + long lowMsg (MsgArea&); + long numMsgs(MsgArea&); + long totalMsgs(); + + bool deleteMsg(Message&); + + long lastRead(MsgArea&,long rec); + void setLastRead(MsgArea&,long rec,long num); + + long msgNum(MsgArea&,long id); + long msgId(MsgArea& ma, long num); + }; + +class JamMsgBase : public MsgBase + { + File f_jhr; + File f_jdt; + File f_jdx; + File f_jlr; + + int lastAreaNum; + JamFileHeader *jamHeader; + + bool openArea( MsgArea& ); + + bool jamLock(); + bool jamUnLock(); + + bool readHeader(); + bool writeHeader(); + + long findIdx( JamIndex &mi,long num,int order ); + + public: + JamMsgBase(); + ~JamMsgBase(); + + bool open(); + void close(); + + bool lock() { return TRUE; } + bool unlock() { return TRUE; } + + long readMsg(Message& msg , long num); + word readMsgText(Message& msg, char *text, long offset , word size); + word scanMail(MessageIndex *mi,word maxmsgs); + long appendMsg(Message&); + bool updateMsg(Message&); + + long highMsg(MsgArea&); + long lowMsg (MsgArea&); + long numMsgs(MsgArea&); + long totalMsgs() + { + return 0; + } + + bool deleteMsg(Message&); + + long lastRead(MsgArea&,long rec); + void setLastRead(MsgArea&,long rec,long num); + + long msgNum(MsgArea&,long id); + long msgId (MsgArea&,long num); + }; + + +class MsgBaseList + { + MsgBase *mblist[5]; + public: + MsgBaseList(); + ~MsgBaseList(); + + void add(MsgBase *); + + void close(); + void open(); + bool lock(); + bool unlock(); + + word scanMail(MessageIndex *,word maxmsgs); + long totalMsgs(); + }; + +class MsgArea : public _MsgArea + { + static File f; + static int lastAreaNum; + static MsgArea *lastArea; + static int numAreas; + + static void open(); + public: + MsgBase *msgBase; + + bool read(int); + bool sysopAccess(); + + static void close(); + static int highAreaNum(); + + long numMsgs() + { + return (msgBase==NULL) ? 0L : msgBase->numMsgs(*this); + } + long lowMsg() + { + return (msgBase==NULL) ? 0L : msgBase->lowMsg (*this); + } + long highMsg() + { + return (msgBase==NULL) ? 0L : msgBase->highMsg(*this); + } + long lastRead(long rec) + { + return (msgBase==NULL) ? 0L : msgBase->lastRead(*this,rec); + } + void setLastRead(long rec,long num) + { + if(msgBase) + msgBase->setLastRead(*this,rec,num); + } + long msgNum(long id) + { + return (msgBase==NULL) ? 0L : msgBase->msgNum(*this,id); + } + long msgId (long num) + { + return (msgBase==NULL) ? 0L : msgBase->msgId(*this,num); + } + }; + +const dword MSGATTR_PRIVATE = 0x00000001L; +const dword MSGATTR_RECEIVED = 0x00000002L; +const dword MSGATTR_DELETED = 0x00000004L; +const dword MSGATTR_NETMAIL = 0x00000008L; +const dword MSGATTR_UNSENT_ECHO = 0x00000010L; +const dword MSGATTR_UNSENT_NET = 0x00000020L; +const dword MSGATTR_LOCAL = 0x00000040L; +const dword MSGATTR_KILL = 0x00000080L; +const dword MSGATTR_CRASH = 0x00000100L; +const dword MSGATTR_SENT = 0x00000200L; +const dword MSGATTR_FILE = 0x00000400L; +const dword MSGATTR_FILEREQ = 0x00000800L; +const dword MSGATTR_AUDITREQ = 0x00001000L; +const dword MSGATTR_RECEIPTREQ = 0x00002000L; +const dword MSGATTR_TRANSIT = 0x00004000L; +const dword MSGATTR_HOLD = 0x00008000L; +const dword MSGATTR_IMMEDIATE = 0x00010000L; +const dword MSGATTR_DIRECT = 0x00020000L; +const dword MSGATTR_TRUNCFILE = 0x00040000L; +const dword MSGATTR_DELFILE = 0x00080000L; +const dword MSGATTR_ORPHAN = 0x00100000L; +const dword MSGATTR_ECHOMAIL = 0x00200000L; +const dword MSGATTR_NODISP = 0x00400000L; +const dword MSGATTR_LOCKED = 0x00800000L; + + +struct Message + { + long num; + dword id; // for Squish only, others -> == num + + char from[36]; + char to [36]; + char subj[66]; + + dword attr; + + Date postDate; + Time postTime; + Date recvDate; + Time recvTime; + + long next; + long prev; + + int origZone, + origNet, + origNode, + origPoint; + + int destZone, + destNet, + destNode, + destPoint; + + int cost; + + /************************************************************/ + + static long lastIndex; + + union { + MsgArea *msgArea; + int area; + }; + + Message(int area = 0); + Message(Message *, int area = 0); + + ~Message(); + + int areaNum() ; + + MsgBase *msgBase() + { + return msgArea->msgBase; + } + + void clear(); + + bool setArea (int num); + bool read (long num, int area = 0); + bool readFirst(int method,int order,long first,char *data,int area = 0); + bool readNext (int method,int order,char *data); + bool readPrev (int method,int order,char *data); + + word readText(char *text,long offset,word size) + { + return msgBase()->readMsgText(*this, text, offset , size); + } + + void createMsgTextFile(char *fname , bool append); + void createMsgTextString(char *string , word maxsize); + void export(char *fname); + void forward(); + void move(); + + void setFlag (dword msgflag); + void clearFlag (dword msgflag); + void toggleFlag(dword msgflag); + + bool testFlag (dword msgflag) { return (attr & msgflag) ? TRUE:FALSE; } + + void operator=(HudsonMsgHdr&); + + void addReply(Message&); + void delReply(); + void remove(); + + byte show(); + void addOrigin(); + int pointNum(int mode); + long add(); + + long msgNum() { return msgBase()->msgNum(*msgArea,id); } + + bool readAccess(); + }; + +struct MessageIndex + { + MessageIndex() {} + MessageIndex(int a,long n) { area = a; num = n; } + + int area; + long num; + }; + +class MarkedMsgList + { + MessageIndex *msgList; + int n; + public: + MarkedMsgList(); + MarkedMsgList(const MarkedMsgList&); + ~MarkedMsgList(); + + void operator=(const MarkedMsgList&); + + bool add(MessageIndex&); + bool add(Message&); + void clear() { n = 0; } + bool remove(MessageIndex&); + void sort(); + int numMarked() { return n; } + bool isMarked(MessageIndex&); + MessageIndex getMarked(int n) { return msgList[n]; } + MessageIndex operator[](int n) { return msgList[n]; } + }; + +const int MAX_MARKED_MSGS = 500; + +extern MsgBase *squishMsgBase; +extern MsgBase *hudsonMsgBase; +extern MsgBase *jamMsgBase; +extern MsgBaseList msgbase; +extern MarkedMsgList markedmsglist; + +void get_new_msgs(MarkedMsgList& marked,int area); + + +inline long +HudsonMsgBase::msgNum(MsgArea&,long id) +{ + return id; +} + +inline long +HudsonMsgBase::msgId(MsgArea&, long num) +{ + return num; +} diff --git a/MSGBASE.OBJ b/MSGBASE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..b02fe1c3850f58c901322c7303c2dd041d2a08c4 GIT binary patch literal 1433 zcmb7EUq};i9RJ?kb{lRkrCEu}R*b_CG+U@I(bRcMNE~in?Lo)6oi@5Q-QA|W1%k}3 zhdoJ1LcK)28T4RL&>wLR8U(%c&_gdmcs>M@lE|*F+iDw3(1$yId_Ldr=lA*kxw~Ht zrn}O_7%vH}p~=a*)HwjK`g^-N>^-r#$VbEW-j)`-v$cIcr3d&!!E}lScuM%)T`2>= zK87QN)Rx{nv(N@$9`Jd3x_x~?f8Q;?u6NMgrw_Wj{oT6UE7;@nQTWhq&(Pqo_roIt zG&fNsMV!XdbpV~7IF&!q2Ew#RgHae(yT+l`H6Tso&LJ@-367~G zRQ-p>q0SW?mV~%VH;j?liZOwDmuo(f{5AC!*s`3RG4;5B_gnx zwgV9Lhk`xWm>UsEcF8fB7ZH%~t`!n~r?FI`xhzBq@zDW3BBEaV>azbVC`3u@C3~GHPd#{%Xb@QaEH78NU5n6C`Zqsh^8mF+9mbEuD z>}}x&P+zp9d8l+AM~yDnIJ;Wa@~hJ9p64W0D9meiTgPSCEI@`m0Knn39ji}Q0s(?O zsO7Sidh|}=vI={k!l<%2vJQ`{;qwAVZe%%nqlPnFO<4hc5~cs&xuuT5!~^_5 +#include "proboard.hpp" + +void +Message::remove() +{ + if(next || prev) delReply(); + + if(!msgBase()->deleteMsg(*this)) LOG("Error deleting message"); +} diff --git a/MSGDEL.OBJ b/MSGDEL.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..c850aed72d0f491a46cbc72420ac2c434b22ed80 GIT binary patch literal 487 zcmZqRVc^OwPESeA(Mv8UsO^woU|J=+b#WXzz25#SAcNbTm_z>5K5Ef^D7gyGJ7sn7s z7BCU-6dcS9#B46^LH?luoHN)NGzu7)m>CZPSsvmHEUb(_Kr99ZHg-ntS!@g(|C#uDRVAk~a67nV=A=3nr6xM0F^D+$rWO|`rl&dp{ScH|kW;BrSO!$? zTbvG6A?gqxTAW(skds(k5}cY?l$;S+ZQpYaknpFDCLK6mw~t|7)p5mmvQ_rW19sElgLO2 z2c+W2{5=e6|F?f*1QK5u;UY)oe_>SXmj54b(R_qs3j_CoQXaV-3=9EK{jsOd&*5V@ zlM%*vBt?Xg>5N7gv;6{T1||ju*P^2QA_bs#Q%f@Q(iL(c{%1JRA +#include +#include +#include +#include "proboard.hpp" + +#define LINELEN 70 + +class msglines + { + String *line; + int n; + void rebuild(); + void enterline(String&,String&); + void ruler(); + public: + msglines() { line=new String[60]; n=0; } + ~msglines() { delete [] line; n=0; } + String& operator[](int i) { return line[i-1]; } + int numlines() { return n; } + void append(); + void save(); + void insert(int l); + void del(int l1,int l2); + void edit(int l); + void replace(int l,char *str1,char *str2); + void show(); + void show(int l); + }; + +void +msged() +{ +msglines msg; + +unlink("MSGTMP"); + +if(run_sdkfile("/I MSGED") >= 0) return; + +io << "\n\n" << S_MSGED_HEADER << "\n\n"; + +msg.append(); + +for(;;) + { + io << '\n' << S_MSGED_COMMAND_LIST; + char k= wait_language_hotkeys(K_MSGED_COMMAND_LIST); + + switch(k) + { + case 5 : { + io << S_MSGED_LIST << '\n'; + msg.show(); + } break; + case 0 : { + io << S_MSGED_SAVE; + msg.save(); + return; + } + case 6 : { + io << S_MSGED_ASK_ABORT; + if(io.ask(0)) return; + io << "\n\n"; + } break; + case 1 : { + io << S_MSGED_CONTINUE << '\n'; + msg.append(); + } break; + case 7 : { + int line=0; + io << S_MSGED_EDIT_LINE(form("%d",msg.numlines())); + + io.read(line,2); + io << '\n'; + if(line<1 || line>msg.numlines()) break; + io << '\n'; + msg.edit(line); + io << '\n'; + } break; + case 3 : { + int line1=0,line2=0; + io << S_MSGED_DELETE_LINE << "\n\n"; + io << S_MSGED_DELETE_FROM_LINE(form("%d",msg.numlines())); + io.read(line1,2); + io << '\n'; + if(line1<1 || line1>msg.numlines()) break; + io << S_MSGED_DELETE_TO_LINE(form("%d",line1),form("%d",msg.numlines())); + io.read(line2,2); + io << '\n'; + if(line2msg.numlines()) break; + msg.del(line1,line2); + io << '\n' << S_MSGED_X_LINES_DELETED(form("%d",line2-line1+1)) << '\n'; + } break; + case 4 : { + int line=0; + io << S_MSGED_INSERT_LINE(form("%d",msg.numlines())); + io.read(line,2); + io << '\n'; + if(line<1 || line>msg.numlines()) break; + io << '\n'; + msg.insert(line); + } break; + case 2 : { + int line=0; + char text1[50],text2[50]; + + io << S_MSGED_REPLACE_TEXT(form("%d",msg.numlines())); + io.read(line,2); + io << '\n'; + if(line<1 || line>msg.numlines()) break; + io << '\n'; + msg.show(line); + io << '\n' << S_MSGED_ENTER_TEXT_TO_REPLACE; + io.read(text1,49); + if(!text1[0]) + { + io << '\n'; + break; + } + if(msg[line].find(text1)<0) + { + io << "\n\n" << S_MSGED_TEXT_NOT_FOUND << '\n'; + break; + } + io << "\n\n" << S_MSGED_REPLACE_BY; + io.read(text2,49); + msg.replace(line,text1,text2); + io << "\n\n" << S_MSGED_LINE_NOW_READS << "\n\n"; + msg.show(line); + } break; + } + } +} + +void +msglines::save() +{ +if(n<1) return; + +File f("MSGTMP",fmode_create | fmode_text); + +for(int i=0;i=l;i--) line[i]=line[i-1]; + line[l-1]=tmpline; + tmpline=wrap; + n++; + l++; + } +} + +void +msglines::del(int l1,int l2) +{ +l1--; +l2--; + +for(int i=l1;iLINELEN) + { + wordwrap(tmpline[l],wrap,LINELEN); + tmpline[++l]=wrap; + } + } + } +for(i=0,n=-1;i<60;i++) + { + line[i]=tmpline[i]; + if(n<0) if(!line[i][0]) n=i; + } +} + +void +msglines::show(int l) +{ +String s(line[l-1]); +strip_linefeed(s); +io << form("\3[\7%2d\3]:\6 %s\n",l,(char *)s); +} + +void +msglines::show() +{ +io << '\n'; +stopped=0; +linecounter(0); +for(int i=1;i<=n;i++) + { + show(i); + if(linecounter() || stopped) break; + } +} + +void +msglines::enterline(String& s,String& wrap) +{ +int nowrap=0; +if(wrap.len()) nowrap=1; +int i; + +if(!nowrap) wrap=""; + +for(i=0;i0) + { + s[s.len()-1]=0; + io << "\b \b"; + } + break; + case 13: s << '\n'; io << '\n'; wrap=""; return; + default: if(nowrap && s.len()>LINELEN) continue; + io << k; + s << (char)k; + } + if(s.len()>LINELEN) + { + int l=wordwrap(s,wrap,LINELEN); + for(int i=0;iD%u< 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 XFf^O7OOpC0%A+r@+Vc1?4(|J3uFVOT literal 0 HcmV?d00001 diff --git a/MSGEXPRT.CPP b/MSGEXPRT.CPP new file mode 100644 index 0000000..285d3c3 --- /dev/null +++ b/MSGEXPRT.CPP @@ -0,0 +1,327 @@ +#define Use_MsgBase + +#include +#include "proboard.hpp" + +const int text_bufsize = 512; + + + +void Message::export( char *fname ) +{ + File outf; + + + if ( ! outf.open( fname, fmode_create ) ) + { + return; + } + + + outf << form( "Message #%-5ld [%s] ", + msgNum(), + msgArea->name ); + + + if ( attr & MSGATTR_PRIVATE ) + { + outf << "[PRIVATE] "; + } + + + if ( msgArea->msgKind == MSG_NET ) + { + if ( attr & MSGATTR_CRASH ) outf << "[CRASH] "; + if ( attr & MSGATTR_KILL ) outf << "[KILL] "; + if ( attr & MSGATTR_FILE ) outf << "[FILE] "; + if ( attr & MSGATTR_SENT ) outf << "[SENT] "; + } + + + if ( prev ) + { + outf << form( "[%ld <ÄÄ] ", + msgArea->msgNum( prev ) ); + } + + + if ( next ) + { + outf << form( "[ÄÄ> %ld] ", + msgArea->msgNum( next ) ); + } + + + outf << "\r\n"; + + + String org( from ); + String dest( to ); + + + if ( msgArea->msgKind == MSG_NET ) + { + int pt_from = pointNum( 0 ); + int pt_to = pointNum( 1 ); + + + org << form( " (%d:%d/%d", + origZone, + origNet, + origNode ); + + dest << form( " (%d:%d/%d", + destZone, + destNet, + destNode ); + + + if ( pt_from ) + { + org << form( ".%d", pointNum( 0 ) ); + } + + + if ( pt_to ) + { + dest << form( ".%d", pointNum( 1 ) ); + } + + + org << ')'; + dest << ')'; + } + + + outf << form( "From: %-46.46s Posted: %2d %s %02d %02d:%02d\r\n", + (char *) org,postDate[ 0 ], + months_short[ postDate[ 1 ] ], + postDate[ 2 ] % 100, // Y2K FIXED! + // postDate[ 2 ], // Y2K BUG! + postTime[ 0 ], + postTime[ 1 ] ); + + outf << form( "To : %-46.46s ", + (char *) dest ); + + + if ( attr & MSGATTR_RECEIVED ) + { + outf << form( "Received: %2d %s %02d %02d:%02d", + recvDate[ 0 ], + months_short[ recvDate[ 1 ] ], + recvDate[ 2 ] % 100, // Y2K FIXED! + // recvDate[ 2 ], // Y2K BUG! + recvTime[ 0 ], + recvTime[ 1 ], + recvTime[ 2 ] ); + } + + + outf << "\r\n"; + + + if ( attr & MSGATTR_FILE ) + { + outf << form( "File: %s\r\n\r\n", subj ); + } + else + { + outf << form( "Subj: %s\r\n\r\n", subj ); + } + + + outf.close(); + + createMsgTextFile( fname, TRUE ); +} + + + +void +Message::createMsgTextFile(char *fname , bool append) +{ + File file; + + if(append) file.open(fname , fmode_write | fmode_append); + + if(!file.opened()) file.open(fname,fmode_create); + if(!file.opened()) return; + + bool inkludge = FALSE; + + int index = 0; + + char line[100]; + memset(line,0,100); + + bool msgdone = FALSE; + + for(long txt_off = 0; !msgdone ;txt_off += 255) + { + char r[256]; + + int l = msgBase()->readMsgText(*this,r,txt_off,255); + + if(l < 255) msgdone = TRUE; + + for(int j=0;j=' ' || x==0x1B) line[index++] = x; + } + + if(index>79) + { + String wrap; + + wordwrap(line,wrap,79); + + if(strncmp(line,"SEEN-BY",7)) file << line << "\r\n"; + + memset(line,0,100); + + strcpy(line,wrap); + + index=strlen(line); + } + } + } + + if(index) + if(strncmp(line,"SEEN-BY",7)) + file << line << "\r\n"; +} + + +void +Message::createMsgTextString(char *string , word maxsize ) +{ + maxsize -= 100; + + string[0] = 0; + + bool inkludge = FALSE; + + int index = 0; + + char line[100]; + memset(line,0,100); + + bool msgdone = FALSE; + + char *r = new char[text_bufsize+1]; + + for(long txt_off = 0; !msgdone ;txt_off += text_bufsize) + { + int l = msgBase()->readMsgText(*this,r,txt_off,text_bufsize); + + if(l < text_bufsize) msgdone = TRUE; + + for(int j=0;j=' ' || x==0x1B) line[index++] = x; + } + + if(index>79) + { + String wrap; + + wordwrap(line,wrap,79); + + if(strncmp(line,"SEEN-BY",7)) + { + if(strlen(string) < maxsize) + { + strcat(string,line); + strcat(string,"\r\n"); + } + } + + memset(line,0,100); + + strcpy(line,wrap); + + index=strlen(line); + } + } + } + + if(index) + if(strncmp(line,"SEEN-BY",7)) + { + if(strlen(string) < maxsize) + { + strcat(string,line); + strcat(string,"\r\n"); + } + } + + delete [] r; +} diff --git a/MSGEXPRT.OBJ b/MSGEXPRT.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..1ee40445e53eeb24fc69fe4343abf3a55a45289c GIT binary patch literal 4840 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 literal 0 HcmV?d00001 diff --git a/MSGFIND.CPP b/MSGFIND.CPP new file mode 100644 index 0000000..0436a1c --- /dev/null +++ b/MSGFIND.CPP @@ -0,0 +1,73 @@ +#define Use_MsgBase + +#include "proboard.hpp" + +bool +Message::readFirst(int method,int order,long first,char *data,int area) +{ + if(area) + { + if(!setArea(area)) return FALSE; + } + + if(order<0) + { + lastIndex = first + 1; + } + else + { + lastIndex = (first > 0) ? (first - 1) : 0; + } + + return readNext(method,order,data); +} + +bool +Message::readNext(int method,int order,char *data) +{ + for(lastIndex += order ; lastIndex ; lastIndex+=order) + { + lastIndex = msgBase()->readMsg(*this,(order<0) ? (-lastIndex) : (lastIndex)); + + if(lastIndex < 0) break; + + switch(method) + { + case READMSG_ALL: + { + return TRUE; + } + + case READMSG_SEL: + { + switch(data[0]) + { + case 'F': if(strstrl(from,&data[1])) return TRUE; + break; + case 'T': if(strstrl(to,&data[1])) return TRUE; + break; + case 'S': if(strstrl(subj,&data[1])) return TRUE; + break; + case 'E': if(strstrl(from,&data[1]) || strstrl(to,&data[1])) return TRUE; + break; + } + } + break; + } + } + + return FALSE; +} + +bool +Message::readPrev(int method,int order,char *data) +{ + long prevlast=lastIndex; + + bool x = readNext(method,-order,data); + + if(!x) lastIndex = prevlast; + + return x; +} + diff --git a/MSGFIND.OBJ b/MSGFIND.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..e2a5b77733f87a3bfa7a04d5e1ab8874379c04de GIT binary patch literal 1190 zcmZvcO=ufO6vyA}N-NbX%Ze+jE`i3B;1&|x8be4aPS>%#sSl1twBCe5Bvfgw3RK6| zZnjQHoxp;TJU!&lk2s_xCcP9=@SzY&dI+xULq0BP4cQw;BR?igHZh&>z9b zvLmKZQTS-u$W`(mrN@mtH2Z1ugqbW=;Jvdu07(00Ei7J0RSX*)O1P3{0iOJi;-E2U z`HE?PGiP7N8r%O$;*ZeDu0AG+M`SZozxarB(j6=t$LhYhvrhmx9XS*xy>qWd=U zzyrE8OYrmAw$V#j62KDOOO1JOTUmxaJbH5gR7iscv!t8YL?i3RAk7It@o2FNHT@ZG zmEp0fk=47{d;jpF%R>$9ZdF~IQP1uUf#B(OBh(asU) zkTtUO5=ICksFB4LOfD{SJmmNdar=f&ZePKuVH7cvI$7MVk@}xFSpS{l0mrW#S2(`q rxWF-sxOD=xqx>z;(aZ4;&%dIJUsdA(%Vg`H(e&4QhL6qQJ+b})sa%o} literal 0 HcmV?d00001 diff --git a/MSGMOVE.CPP b/MSGMOVE.CPP new file mode 100644 index 0000000..fd4ec72 --- /dev/null +++ b/MSGMOVE.CPP @@ -0,0 +1,37 @@ +#define Use_MsgBase + +#include +#include "proboard.hpp" + +void +Message::move() +{ + MsgArea ma; + int areanum = 0; + + io << "\n\n"; + linecounter(0); + set_msgarea(form("* -N -%d /L" , msgArea->areaNum)); + io << '\n' << S_SELECT_MSG_AREA_TO_MOVE_MESSAGE_TO; + io.read(areanum,5); + + if(areanum < 1) return; + + if(!ma.read(areanum)) + { + io << "\n\n" << S_UNKNOWN_MESSAGE_AREA << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + io << "\n\n" << S_MOVING_MESSAGE; + + Message msg(this,areanum); + + createMsgTextFile("MSGTMP",FALSE); + + remove(); + + msg.add(); + + io << "\n\n"; +} diff --git a/MSGMOVE.OBJ b/MSGMOVE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..2d0fd4893193e8ef7c794385af2ea7bbd8e065ad GIT binary patch literal 1273 zcmZ`(OK1~O6upzrv?i@hHAZm}qr_4yDq5(nWNMSDU_LgJ!60==C)0K$P1;NvYf(`P zCD;lgC{h#^5k(hPDLRxQMWj1#Xw(V~5>`iBq@l?Xo*3{%_-nL^QZw2^ihU0k};1&1wx#kXZ?p+OIyh2xAMMLw$-8ozc&&wgYFL13zQ2pd&^=)0r8KN&y3?{OC8acjB?<39pCp0v59#en%Dv^zic*6`J3G@Z zCB;_kWx8QKAK}9t{z!!P2U&jy&xZK6P>?+kjQXLD35c>B?-7}J0>|WF)e?~r$=ecc z;}R#JV^$2vJ*+sCB_s3 z|Jr@J42Hop$*R=5l{No0z&NE`bty+6B(GZKdl?}^A zC?@g@6`u6iht44Th#a@Fz;kpV zie-mL*+FFI_P8i>VJFg!xZJp$C_9L3M_K)avigJUzPqRu>Nf=KJy)mAb5`{QR%wqo zTD!|tskiZ +#include +#include +#include +#include +#include "proboard.hpp" + +struct music_data { unsigned freq,dur; }; + +char +playsong(char *name,char *hotkeys,int length) +{ +int silent=0,i,j; +music_data *data; +time_t tm; + +File fp(FileName(syspath,name,".MUS"),fmode_read | fmode_text); + +if(!fp.opened()) + { + if(!length) return 1; + tm=time(NULL); + + for(i=0;;i++) + { + if(int(time(NULL)-tm)>length) break; + + if(!silent && !noyell_flag) tsw_beep(100*(i%20)+200,40); + + if(KB.hit()) + { + KEY c=KB.uget(); + if(hotkeys) for(j=0;jlength) { nosound(); delete [] data; return 0; } + if(!noyell_flag) + { + if(data[i].freq) + { + sound(data[i].freq); + msleep(data[i].dur*10); + } + else + { + nosound(); + msleep(data[i].dur*10); + } + } + } + if(!length) break; + } +nosound(); + +delete [] data; + +return 0; +} + diff --git a/MUSIC.OBJ b/MUSIC.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..040bf61f7a2d8a9bce87e40a3477958882138129 GIT binary patch literal 1848 zcma)7ZD<>H7=P}rd1=zM-Ik?OAyzGQP&cTNZLEUn%dVEqHLU4>MzCj=+`4F*WXa{a zPArbX$TbT4Fl3Gm>JY(~4-WirxDVEuwFBD(HV~;})-tzTQ$N%d0KbxtZj+JLcVaIwzZ+5*14l`F=+s}$3TD5 z2=D>rY1^GN0W6|ALMWOwR2+YAJAmb-?yinj&a?MrPg!ec+g=0L*6e96)Bm`Zt}X_T zv90}JXSbU@Yl3Y{49!r_A@$;8P-dY1&?o?-iL#zEf?1_iru&@(l$nbU#G^jpC{%Fa z$N(P-aYsVFUa-2@V2E#y@jllP*y7^4<9y5&^2LQN-WT&9?TYe#*ieAcLt8Kg47aZZ zs$Ki|ftH9b7H}O63U$Xs*jPjoy}S-pxrBH>cbMm+b;lC%L>z2-G#5q-><@FjB;2dlAv6YYl%I}383oXtnmajn5y+u&b{W7q>Xw0WJ7fU2 zDw1bza)0vIll&MVCS3I%0Wi?5PdE~ z;^`3pElR>6Zv%H~?6M8sU$}oc0I4erdBZhW$;<22%P2Uuj0*lzUSe}8)?#HVg#Au6 zzboBiVScP1Hl1x^bBS%kY%a;({jbc2*}F=M+OCQfs%R;MXd3UAS*1-?1X>=cDkLG1 zC5c^h&MP&P><29WRFA4P;h*MN^hy{7D2HrVRVcLGERmeV-f_rgZ8AAkyt696;$L^j z8^B%CsG&6K-E&Wqa1X@UlFEvE zq5O_fa8C=qaH_ZjMZP%I9-L~&nyK#5ZB%hd6&DNU|8LH(JXkm9kF?zuYSyG!*it$l zSY6Nd(gqE^0D`>~Pe`$e**+Q9YlQ@eVGN}3!Mdumi&*k;Sl(ui( zg9gf(C9Ws+^Q+&!dHybBXGvxD2V%`;Nli9QHf28{o3p3!PLhq|uh}U&+exajyNNyf z6e`+KktQ{n1+pn~gP6y%cFLIfhM2~_(umJURpvagX8K8W#!t44d2JM(d7jwDp4Es) z5jB!6SC^2PyhExduOo9!V=fch)k_+25s|YRaf(OV literal 0 HcmV?d00001 diff --git a/Main copyite filing 2.doc b/Main copyite filing 2.doc new file mode 100644 index 0000000000000000000000000000000000000000..8f930fb9979400d81f17b035d4561bc361fb786a GIT binary patch literal 233984 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 literal 0 HcmV?d00001 diff --git a/Main copyite filing.doc b/Main copyite filing.doc new file mode 100644 index 0000000000000000000000000000000000000000..13feeba3247e39a10bd98df1e7103d8080cd9b2d GIT binary patch literal 251904 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%0AH;3&P9CGib#EW>GRT(_OoE>4nDA_~M=tcicSC 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 aKbPG1e96+`>oRk%`=x-U@BXwo@c#fBTmJe0 literal 0 HcmV?d00001 diff --git a/NODELIST.CPP b/NODELIST.CPP new file mode 100644 index 0000000..2fb68a1 --- /dev/null +++ b/NODELIST.CPP @@ -0,0 +1,232 @@ +#include +#include +#include +#include "proboard.hpp" + +static void near +getnode(char *temp,node_entry& n) +{ +char *options[]={"ZONE","REGION","HOST","HUB","PVT","DOWN","HOLD"}; +char slices[6][100]; + +for(int i=0;i<6;i++) + { + int y=0; + while (*temp!=',') if (*temp!='_') slices[i][y++]=*temp++; + else {slices[i][y++]=' '; temp++;} + temp++; + slices[i][y]='\0'; + } + +for(i=0;i<7;i++) if(!strcmpl(slices[0],options[i])) break; + +n.type=i+1; + +strcpy(n.name,slices[2]); +strcpy(n.city,slices[3]); + +switch(i+1) + { + case NODE_ZONE : n.zone=atoi(slices[1]); + case NODE_REGION : n.region=atoi(slices[1]); + case NODE_HOST : { + n.net=atoi(slices[1]); + n.node=0; + } break; + default : n.node=atoi(slices[1]); + break; + } +} + +struct node_index + { + byte type; + long offset; + union + { + int zone,net; + }; + int cost; + long fill; + }; + +#define NODE_ZONE 1 +#define NODE_REGION 2 +#define NODE_HOST 3 +#define NODE_HUB 4 +#define NODE_PVT 5 +#define NODE_DOWN 6 +#define NODE_HOLD 7 +#define NODE_NODE 7 + +#define LISTNODE_SINGLE 1 +#define LISTNODE_MULTIPLE 2 + +static int near +list_node(node_index& idx,char *fname,char mode) +{ +char *types[]={ "","ZONE","REGION","NET","HUB","PVT","DOWN","HOLD","" }; + +File fp(FileName(cfg.nodelistdir,fname),fmode_read | fmode_text); + +if(!fp.opened()) return -1; + +fp.seek(idx.offset); +node_entry n; +n.net=idx.net; + +for(;;) + { + int num; + char s[300]; + if(!fp.readLine(s,299)) break; + if(s[0]==';') continue; + + getnode(s,n); + + if(mode==LISTNODE_MULTIPLE && n.net!=idx.net) break; + + switch(n.type) + { + case NODE_ZONE : num=n.zone; break; + case NODE_REGION: num=n.region; break; + case NODE_HOST : num=n.net; break; + default : num=n.node; break; + } + + io.enablestop(); + stopped=0; + io << form("\2 %-6s \3%5d \7%-28.28s \6%-28.28s \3%4d\n",types[n.type],num,n.name,n.city,idx.cost); + io.disablestop(); + if(stopped || linecounter()) return -1; + if(mode==LISTNODE_SINGLE) break; + } + +return 0; +} + +int +node_entry::read(char *s) +{ +char nodenr[14]; +char *tmp=nodenr; +int point=0; + +strcpy(nodenr,s); + +if((s=strchr(tmp,'.'))!=NULL) + { + point=atoi(s+1); + *s=0; + } + +if((s=strchr(tmp,':'))!=NULL) + { + *s++=0; + zone=atoi(tmp); + tmp=s; + } + else if(tmp[0]=='?') zone=-1; + +if((s=strchr(tmp,'/'))!=NULL) + { + *s++=0; + if(tmp[0]!='?') net=atoi(tmp); + else net=-1; + tmp=s; + } + else if(tmp[0]=='?') net=-1; + +if(tmp[0]!='?') node=atoi(tmp); + else node=-1; + +node_index idx; + +char nl_name[13]; + +File f(FileName(syspath,"NODE_IDX.PRO"),fmode_read,512); +if(!f.opened()) return -1; + +char xor[13]={ 234,123,76,245,87,12,43,56,23,12,98,55,34 }; + +int curzone=0; + +if(zone==-1) + io << S_ZONELIST_HEADER << '\n'; + else if(net==-1) + io << S_NETLIST_HEADER(form("%d",zone)) << '\n'; + else if(node==-1) + { + char *s=form("%d:%d",zone,net); + io << S_NODELIST_HEADER(s) << '\n'; + } + +linecounter(2); + +for(;;) + { + if(f.read(&idx,sizeof(idx))!=sizeof(idx)) break; + + char *ptr=(char *)&idx; + for(int i=0;i<13;i++) ptr[i]^=xor[i]; + + if(idx.type>10) { strcpy(nl_name,ptr); continue; } + + if(idx.type==NODE_ZONE) + { + curzone=idx.zone; + if(zone==-1) + { + if(list_node(idx,nl_name,LISTNODE_SINGLE)<0) break; + continue; + } + idx.net=curzone; + if(curzone!=zone) continue; + } + + if(curzone==zone && net==-1) + { + if(list_node(idx,nl_name,LISTNODE_SINGLE)<0) break; + continue; + } + + if(idx.net==net && zone==curzone) + { + if(node==-1) + { + if(list_node(idx,nl_name,LISTNODE_MULTIPLE)<0) return -1; + break; + } + + node_entry tmp; + tmp.zone=curzone; + tmp.net=idx.net; + tmp.cost=idx.cost; + + File fp(FileName(cfg.nodelistdir,nl_name),fmode_read | fmode_text); + if(!fp.opened()) return -1; + + fp.seek(idx.offset); + for(;;) + { + char s[300]; + if(fp.readLine(s,299)==NULL) break; + if(s[0]==';') continue; + getnode(s,tmp); + if(tmp.type}m@@Tp=g)tmRZlDG1=5c6{8ZU_rc$mc4*B8im z1Vu}8be#r`ft)EMirVG#!$+fgo5KRR?(>2I>eY3#|(9}1sW2cedk_35(t&} zzI*(=&-Xf{WhOEgShfGyzal00wF%Sn5utwF!1MjXvC}W$ov~0`f$|`$R*_&0WjqpotFDg^EhF2vbgO-N;L*trXczJoqbov@ppgeH&2 z=|J->JDYqym)q53akzYS^=>ESnuCbY>TJP>vPIs$vRFn&tk9kIlUHlolmHA)_EItS9+WcC?i3Ja7$fYWCYXR zy`XZSxxtA{vP}!vbZmi3%a&Ydrb6{OoqO{3xm_qTEd>&y-^YV!Dgl4bv5n+9S7AB4;n-Hr+FGG%mR1%`{- zvk0#$i7k9m09gIn+!A0aHeT>|!+BaMMEH2?k+|kim*RO@pf>&y``3R#WZZBO+0Pb{ zSIk{)9TPS=yw;G;(CcSoGZZ!Lq3a!dJl-3s)fKdBL9QZh3-CI%0TEH3(g1poLSHw9 z4gp!#F-S13W08=(jzhw-SUCvaOE{~kp?0NmW*Qnd4NXnO2g+eYW9Dht+87G_`>m~i zR+4|4!Cm|f$o?Xl{X8Z6g}qP>##Y!{c*9l!S0JJes$&Z-W^Lv!ek^&TObI`d_y?id z2L)um3V;Rfg(TP5dgKB+q7E`B#uoOTLy)i~X?{%&IGJor6C@;RWq?YHMfP(5aO1Q+ zJ*5ZA)l!?41eY_Q+?ErkCQ=^tvJ);kf?6)+#Mk<{=-&`Xy+#tUBgZG8a4koStUohh zY%LfQxM&aR0I_o@RfY^&hMBQBfu7e1#al_t80fK*m?qHk28p2@nh&`ZYHIpnD5kk4yZXlfOYj|G*1}F5~Q>Q}7Mo1w$BT4V7cl&@#*p~N8hz4g3KE$TMFYvs<^Vr;X7OOw| zJys9CgPFcgP#bjN?7`OniU5}2>@dL#!v6vI7|#!zF%y~zLY?x8Qhh7o`$YVfi1!nB z4b^JsEGo&6__&0}V{<~a~Wb*Rb{>IEtFzcA5jvOFyIwR|_IUregQ`K)|yJqnqA z?yUUwBm=nfeKLUeCZe5;)MJ3T=$6`M!RKSCZ7!MegvpUldcji3gr<&2d^l7aPB(Si z{dh7L#@0*cPW~1RJ;d{dhOv2I2&=DM!|F&3FNpjO&yD;VvylMKiZo+G#Dn$yZn}lu z!WsRqn;9-r2wQ3;Y?6o(_R(W(82lgB_x%?{2EW1?ePIw8{1j*Q{fTa*Q@}m}>|X-A z?-*sdVOcpS%Ldvdu+0|3Hsi24G-hTrq3?hbj=<__2H1!fh7CBo`}6^ZLAv|#Ck8PW z-lOE5l9QOqfF?R)0&+#fkBIn(NrI5x#3S230Yy(40J^>xUe*ubjqRVHZ|rgU#_Hua z7DPvmKBRB#B|TC3X3_f7!a`XDHs(@(YS*^SCjJ`uKLrsrRMTub-=qwGfFG0itCPGv z9WIpenM)hCiNPJEgF7;H z1w{uR+vy8?&2w@+8gxMYeoE_CLF-olWy^xH>9HyN4bBSRf$taay#n7)FcaQ^XNNc7 zIpL*1TYycKr$0w5LR;a+1fNZ!5m0Gt`%9c`uCd+Iqn^uI)&401T zm&@h<$dRkffAOW_6)zS0ay6+Fm;bUukLcfi_RXbluCP^DQN9EItpR-a +#include +#include "proboard.hpp" + +void +user_online::write() +{ + memset(this,0,sizeof(*this)); + + File f(FN_ONLINE_PRO,fmode_rw); + + if(!f.opened()) + { + f.open(FN_ONLINE_PRO,fmode_create | fmode_rw); + for(int i=0;i=0) { sleep(1); continue; } + + switch(req) + { + case UO_CHATTING: setstatus(UO_CHATTING); + return 0; + default: return 2; + } + } +return 1; +} + +int +user_online::check_chat() +{ +int x=getstatus(); + +return (x>0)?x:0; +} + +void +user_online::read(int node) +{ + File f(FN_ONLINE_PRO); + if(!f.opened()) return; + + if(!node) node=node_number; + + f.seek(long(node-1)*sizeof(*this)); + f.read(this,sizeof(*this)); +} diff --git a/ONLINE.OBJ b/ONLINE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..a9a1ac10f69a647832d3f78db0207ce7e37a6832 GIT binary patch literal 3646 zcmb_fdrVu`8UL;y*Ti;6ij5&8BXk9ntqKuk@w%?foB)PuDR?|i;z`RLF&D6EZ1BA{ zlropi5rw*`vP`1uV_nip-PS+aRI4@=WfMv-hIW2zYc*wCho)A|2#&N#tLR2M?!IH+ zYj7S&l?wQ9?(ch??{$9%Cd^An5Dy_f|FDeRowu zUH#gW9^k)P7@1-L&NE$2_f8oA)=(WG6s_pZqce2?ruMd@54JUPUCqb4bdBvz&3dls zaMxj7cHxe6c53m%HnnuLce~)n2H3Y`&}f-9+_mlpot}B0?f_T=V|tc_B3UDAyPvGr z6gj!0$B%ZlI-r%0PhUUixsbpI!OZysy*%d+4W7g&tD`R<2wtBz;HW<769%$=z;Y8h<^hw#>Gko4 zgM5#p4=T7$&ehS}*~vAxbv1WzUF}?Bdt29oZQacn7uSs^IRw5Z=*f8udFVInP$bnS zJz}tWI1Hr<;Oh~@&a8Up5buHQs)t8}CNGAJ;RFXUw9zpS55?Iy&^!Nd^{~$iCAsI3 zpjYInPBIE?k>DYDv^ST|CPYb)j77+4(&~kAQ(LyDDWcec5q?dBL;$8 zFYn_;p34UB4f#S|o|aV+`uULpi3#JP22>m1OeFwQ<`4z~BiW7%TyD%!I_6nt;KMUj zsIbdHr$G@p`gu_hd&H1XJ?y=vhsHB^qDn=93dWaL@!q9}v$xRk4DgqJ!XKK zb2=RZ&>g!TyZ<`gs6iN|6Krj~r2+8wc@5M~w|s>n3oUj44CXvQ>oc$CvgvRYoOzp2Hgw$X z6R{7!^E;(FTNQ%3LV023Zmy2=^QcbdkdoiJ{JG`#{p*+Y1Y6+Be)Ke%i@0{sR$@Jt z)MD?%6KS3s!w^?R=D1UaxO1IO$kGj!n09`Oy>F?c-ed8LEPT9jnk;EA+f?Hs)10V7 z2TZp0TdAxw&aa0*{hmI$t{;Ex38$Q$x{}IS1Dy|auMW%wqf5eWd&WK=rW?Ch=x^kjiUcSbR5w!6*XEBEwWBKC#Gj2 zDp*0mas*FJlOHs!UVDI1CIyQ$sm4%5u`GZ~zMjTd+<_^X@+q+$g&9snCP92?BC-x* zi|zE}p|zYpxBCLP=ntd%%!{H@v2jkUnD}kq8i*FO>08U`{Pp=7Cj9}~o?axy=~v0N zg;#8hKK)a2$HH?~Mw5PuSkt3q??RW2(Jg#~E?=UH1(*2$a7lecjHwl}Eq)cv;#Vk= zz^6s}^d>q;y+F$2Ptwh!xbf1Bn`l#qNLk!&V>I!5a7o=o?);O9RJ?5<70G{-(&SZQ zNv26j@=e0bU$QYp^S>bMTQ3qe`3wpo#5NyBtN9=<$#$|gc^@g8r+((^C}KeeEU_g1 zNlFqQ5Jq|r9Y}9sJc(bCFGxSPF^0r*q*D4JZloAt7f%s3@hIwlm)NA^=s?0$HHmss zCSj%;sfIq4lD*r{y{~0Jr_NZm1H;)@=37b!RS{C*b`&6`MGws}5c*~`atR(Y#GIEt zzLL=*W4^9==kKR+(zKUjSM2hL#x8#qyZ=hAAC4(Dux}jnV$H6-RrY^){ou ziBlumYj3P?OqbiOzByl1UuAT<*$obxn#yLgY_60hwxEd3oEZz7Ddm+Qoo`UaR`-V{ zGiF*1>0&wZj>SJCcOx^#oJPC@?0D>Fw#H1A*fukN1&M`?H}T$8wLWJ0_EJtPxHY4Z zt2f+?JJGvhRsxMXq&v(aV|Eyt0leqx&e*%eWcmRUwy5H6HSSEQ^{4%Eta>T8-#par(DI22SMf*;`e6 z>yf#Ci&Ew-3ro2H-_-P%pI?RaJESxnN7{Rhl%!uG%)--1An6b(TNp$tSn%SKS|z*V z3kavql2Rl#YpR!&q>d9New2duBe;j`O&O4vWK^I31efFz^3orWzb+!Ny-JwmkBBun zj{6}bxn49&9zpf{s5&LaWErV?S0=j_KOwskACc0;KghPk--uEAGcuXX>0b^AFQjVdqa(2gl|t-0G63e|0PcT M#NPhy6X-|$Kkj|_Jpcdz literal 0 HcmV?d00001 diff --git a/Original Proboard Copyright Material.doc b/Original Proboard Copyright Material.doc new file mode 100644 index 0000000000000000000000000000000000000000..afa95c409c4f7930fa607a69282406e385b31540 GIT binary patch literal 190464 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 N-JTaemmN~ze*i3w@m&A_ literal 0 HcmV?d00001 diff --git a/PB32.DEF b/PB32.DEF new file mode 100644 index 0000000..2c7e0d6 --- /dev/null +++ b/PB32.DEF @@ -0,0 +1,3 @@ +EXETYPE WINDOWS +CODE PRELOAD MOVEABLE DISCARDABLE +DATA PRELOAD MOVEABLE diff --git a/PBUSER.CPP b/PBUSER.CPP new file mode 100644 index 0000000..b1d3bd0 --- /dev/null +++ b/PBUSER.CPP @@ -0,0 +1,104 @@ +#define Use_MsgBase + +#include +#include +#include +#include +#include "proboard.hpp" + + + +void User::list( char *s, + bool aliases ) +{ + struct User tuser; + + + io << S_USER_LIST_HEADER + << '\n'; + + + linecounter( 2 ); + + io.enablestop(); + + + for ( int rec = 0; ; rec++ ) + { + if ( ! tuser.read( rec ) ) + { + break; + } + + + if ( + tuser.uFlags & ( + UFLAG_DELETED | + UFLAG_HIDDEN + ) + ) + { + continue; + } + + + if ( s[ 0 ] && + fuzzy_search( s, + ( aliases + ? tuser.alias + : tuser.name ), + + 75 ) < 0 ) + { + continue; + } + + + if ( ! strcmpl( ( aliases + ? tuser.alias + : tuser.name ), + + cfg.sysopname ) && + + cfg.discrete ) + { + continue; + } + + + String id; + + + for ( int i = 0; i < num_limits; i++ ) + { + if ( limit[ i ].level == tuser.level ) + { + id = limit[ i ].id; + } + } + + + if ( io.send( form( "\3%-30.30s \6%-18.18s \2%02d %s %02d, %02d:%02d \6%5ld \7%s\n", + ( aliases + ? tuser.alias + : tuser.name ), + tuser.city, + tuser.lastDate[ 0 ], + months_short[ tuser.lastDate[ 1 ] ], + tuser.lastDate[ 2 ] % 100, // Y2K FIXED! + // tuser.lastDate[ 2 ], // Y2K BUG! + tuser.lastTime[ 0 ], + tuser.lastTime[ 1 ], + tuser.timesCalled, + (char *) id ) ) ) + { + break; + } + + + if ( linecounter() ) + { + break; + } + } +} diff --git a/PBUSER.OBJ b/PBUSER.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..682e0488d0515c9b1f0c5de508380b98020632be GIT binary patch literal 1450 zcmZ`(|7#m%7=PZo|eeUyo z`Fx(|UT)d}wp1j8<#eZ%N{!DR0D$J;KyQz;Kbek&6H(_td%M%y*}Xn%2KbMLcV-!Y zPf^gBnM<7jcD{ckFz6S9gQtR~fnndES@iV<`%G0M_6Gtqc^Ka@ z|L_R^&t(f76e)^E%fvf=7))mLtKk7K7G%H5fK{h-dgS~?v`3656Y4k?@pv+=LJK#V znVLE)VmX|a#$6MMDM{^Cpn;1i30X>J5~`ebO(6gacn!g@pBqhLti+TgCnv&@n2gnA$~7@*P;CXUoQT%Bpm`g1MPj(70h)H9Qxe#@ zAtfgFrR6X;3O4RFJXZJja^eWtJVzp=Z;Z&Vy}KfkO5_{dH6RwoYM?r5ASFw%rw-$@ z*r%kyK}geaBJ9kRB$FmVB`$NW2+l;Xv4aNA7gl!yOBhWAaoT4Q(fcLS8-h{S`mIqa!K$3hadpy?Ptv zvIi@#a%()?jM8D!{a55T)+Z^66F`}N5O`sAj511kEB z2b+0h0;;ut`+Zl+vDHdN zJe~XNt)Dy}e+Ww_h5bv11$wESoUCA5e3C`xC5zCsNH-&@d`oC4{=gzsED}?`F0_>A z$&(hE%cq3q;vp7U%k2VNe1=6#aUU_IP2qrcPq5s)Em%sw39VX@_}>!$3xO&{goe^d z;R)?kLQxtJ=+cXVqtqeTwPy*SJ;fqZsZnUWb?qgf0BCoIx2x0Jg`JGMqr11WyB9m1 ul)LMNsMC#|#`#>;9;rf%`%o6u&%1JF!PzXycD$dN$Q!v&u zoYf)B;PA3-u9-iw#=;I}ps3F@CI*HK5Od*_X~GOVP?O_BTq8nQoc&!~>u0btcxW&% zF*ClN#>2oG@8THZ$O0k`fg~6hSXdePr*SZ_xwr@UhX!=dVqswW&lEj@pMimqBi=bN zCkJRE(18;=SQs1@F-}~d!@$VE5Ze9bNF1A5w>uN}ff5P1|78OI%lQ76@%%62QtOLn TQTs36e1t +#include +#include "proboard.hpp" + +long +post_message(char *from,char *to,char *subj,int area,int pvt) +{ + Message msg; + + if(!msg.setArea(area)) return -1; + + if(msg.msgArea->msgKind == MSG_NET) return -1; + + strcpy(msg.from , from); + strcpy(msg.to , to); + strcpy(msg.subj , subj); + + if(pvt) msg.attr = MSGATTR_PRIVATE; + + msg.postDate.today(); + msg.postTime.now(); + + long nr = msg.add(); + + if(nr>0) + if(msg.msgArea->msgKind == MSG_PVTECHO || msg.msgArea->msgKind == MSG_ECHO) + echo_entered++; + + unlink("MSGTMP"); + + return nr; +} + + +long +post_netmail_message(char *from,char *to,char *subj,int area,int zone,int net,int node,int point,bool crash,bool attach,bool kill) +{ + Message msg; + + if(!msg.setArea(area)) return -1; + + if(msg.msgArea->msgKind != MSG_NET) return -1; + + strcpy(msg.from,from); + strcpy(msg.to,to); + strcpy(msg.subj,subj); + + msg.destZone = zone; + msg.destNet = net; + msg.destNode = node; + msg.origNode = point; + + msg.attr = MSGATTR_PRIVATE; + msg.attr |= (crash ? MSGATTR_CRASH : 0) + | (attach ? MSGATTR_FILE : 0) + | (kill ? MSGATTR_KILL : 0); + + msg.postDate.today(); + msg.postTime.now(); + + long nr = msg.add(); + + unlink("MSGTMP"); + + return nr; +} + diff --git a/POSTMSG.OBJ b/POSTMSG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..3efd2506ab9a217d28f3532509ae0ac5c85ba68c GIT binary patch literal 1268 zcmb_cT};zZ6h7^?4)%k9gAg^i5Mm@GC?P?@Q-M+Z2{PHZaWT@=uEOHj#@Y=rX3UV_ zMj_#e7=j5tnfQtii%&cdA+_)9Y zp`a)Yh<$Z@D72BN005i2t*O!88VvinfY;tuTWfEqtKUr+0DkIVC_w?dAl#0ogb`pD z%Q1yh8wSh6=}Q0>XP3*}>FQwJ?YG_fwk}7zfpxUFTlBvlY^%$q!$CPZy1ROu)6a}> z@hM5_h*ub0EdsrPAT$I(842?Y1qCXp>Ut(t!O9AJe~=Xdk`NZWV5S+LUuX#n9DN^7 z(Vc=Qa(x2LdA-$xQ8;}-h=Qbvst0{gazIw!^Gab&ca-8a$_FO8Q|!yvEu+~UQ3%t1 zPLx~%7v}q2A%O>Lo)(8ihc65k+U*+<=s<8tD_KN4I7y(TpqCrgzKv`o;P(X{U?56i zJ~RyE)MWsohSq#%1A;Wb`TXoaZUNPUfk(VlFV*|BE5d7c4FNM#=kbt=+>ql^+=Cx; zGD!gR$XidgmZ4$6Sw1<|q&jD`{){eCYP9rE;x(8TB4<-1{3U#&swq`n{|Jk{+ZW;^ zh=`Dz@6~958l`Xn`k*2vENaw*Iqy-fSdA8yPcn)99~X?qY#^DI7zJR7Ss?%?Gr6S4 zgYmmVd@x;)CyBC2W^Xi>g~#?0YBaV7(Tes6}!>F(?Z_iI*j zH!<4}84(#W2wC2C+Xyn_K)TEoWXjYcb9x?G({nf`aPY{GzJc`VW<;gSkU`l&mc?y6 zVDWo7K`0AIr_3Xh@)DVqab#77aPT;qv9b#3l@dfHemz!LL5EX N#-2BJT_49v=@;Be!Vmxe literal 0 HcmV?d00001 diff --git a/PROBOARD.EXE b/PROBOARD.EXE new file mode 100644 index 0000000000000000000000000000000000000000..8872601e37d39d6dc189fccae57705ce9fde4184 GIT binary patch literal 464880 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/FNp zt95-SYi~VF2P9(og`{<=ME6h>mRNU&oeV*~?{VzJ(gdlB_W%ui@fXH5aC%2=2^dE8 z4^1|$O^d|f$C`YEVvj<%10%BJNyTH@|>u)gE4Nj`rbZADIFAa`7- znSjI5JSk{-M+v8{F+~l)F}WRj%3TUP{6Q*+X%FzD!XM8nNTUae=d7YcjBfI}^iyLH zPTKKKVOE3{x6y)-?hN4t2L#l7y@3y5!)=G`WRl7#_qxqYGpRQsH!UdZk1Nthn~wgG ze;q1Sj)yuO(;zRy#O06oyM10K5JW-eIjL}ey;<_GsdJ(li%g{r8!wh)_n{t18NdJHC)`=-RMF+ijHRJCvq z%-s^zwhKzRHRHe3Y6Fw6*8-+mz$%2Q;*G?C(SCO9t?>BD9IaK2tb9hMBLR7r0x!=+ zWY%8qG>23KJrZ`pP!r=;otlc|L}6uH3ii4(+l3+?&}WG>^}_lBpakGp=M5{JoohK+rYE zb~Stum$y`$ykj_asj(l7w|#1CpYc|&#&*Q6V(%qaTv^msJdK^3%JaCEIX0p?k=$3$ zkY~!U9~t1=sK`;;+@)BF{t>!*m7Qp;XJXzrlB=@0!~%S ziphven`Wd_j)T8ixVG5vA(S(A$DgI>PDuk5Hxd_+9ii!cnjD*nnhl(i-aqcNAuebM z-TWYlrfbG;FxCh2#t{7pVV8@r{LDIG)JOIPkQu0j5mBF*v(H}!h1uApMn*DL5Emz0 zi~i+%9pyJ$c}x8l=K(-v(OqGXTQwe3wqdgd!2i;`(5{P_tWmMd$#*F_f_t8Zf-wv7O=+t zm_S#uZkwc%FAKxx{$(JAwV)#eOHV-%0FuD*K(ne)HMyL+p1Z`z^$; zg-i4rTw)>URIrl$j`UNxihQ7nG%$}5e+N>Yh&@QCcd|f-=-eR^1Z*VRJ$y$M0^gl+ z5rDLsEDNn_z#V4O)hff0S3 zl#B>2LqLI4+?MM;0N(DToziBJMd3_X6joW*5aWQB=;=4>gO@S!+Y)Ktpm5ISms9c2j{}Co7<;(Thw4_EUlSlN5+LO}QH>cSF+L z4hGK``hB|tx!n#vRzhqFT|NP78huT17$H{QDk**|wP4(T53|>LD*|sV6NHuGfMFSg z331#OeW#&TW^`ubd?7+EzZHlIq2yI z3+)&amK>mS?-l2q5RK|aH0LmR;D52_zxTkx(K-)f=NWV}fI84Wey9MuU_vqXV-mdW zLj^_iP%(@O42>^fjO_^eI@~n2@0Jw5D;J#io=O^+r$wu=UZ8Cw^T}s|2*7+3ariA3 zV)FICj&?1+aCZq+p}-r7%Jn`)IVe%B@~LwWJFzMpd;>OIh)@zs2?t&e2cc<0Z>7yH z=;%~SWP_+g5nGBoT^mc-8SSu+he0dCMXcs8s8bhO77^L98CH)2164(B=OTpS8-*EY z9qk#dYdKz@+qMWfR!v8a;y8$O!BGob48_9Bz4Th)YB3?<6%nK`2obIk??UuxGWBWF zN&3Wg8De9Ga*l%C#l-LEoAfPl7S%Qr)b(D{`D9?rc>2xO;0~mj0nv>=@u1jE|5VN1&QLXc5TioXa>6UpP=b zFwh8^tyGvQ6`g$rnlEQ6QkvLumV%b^duZW8$WaMKMjw;z5{*fUka3Pwh+_|zbpxY) z78q@k;?<0=!=l9cS3W6U*5{yh%!>$ESWMr}i2109@flwVYGWo`2WKsuy2bNAQ znDfvhj7;3(5k@8+81{IXVNV@1GO-k7Mkcqi?A*v?oOoUX>!yj~nT$-Pp`KZy9x^gP zJ-Ve6b%2aaA|gK-nXDJjWMr~IJd=@0HR{LDW&)T0}jP(5U1@(uEQC-RV`6Y}Ur zCTFW;q*TX@OpvY{nNV5X$mBvbwDba%p@SKjTqK^!$mC*mL0O)tge;vS!xWK0 zH!?9>q2wdOLn4E2WMZ~LnTZU{CYTn3``9(Tpt~<6=W`dy;UL&6Pgj zii9*QmV4d-vQ z@bN3qcFxYu?#^D$AEAm-ZSRD;vm?&F_Meo$DG|i~`2!R~u2kI0Vcf@kW_#E6y6q*~ zGTRfjOKdr|ESqHeQT|r`hy1zxto*nzkZzP5j5ud=VO zKW3i@hbtpsP}1|?t|(7O8+ALqxARFXQkhhepC9e z^h?s)r>CZ$NP97Ddulj!I#eTFsqdwfrSwQSC&Qg#V=;puUqMV`9P_@S+bJ)k7yihX zoyg`J5|2o0-00LY*9_~Y*m`Xr74aDfBPgNr7HKPFA2~e8@w@{&5v*(e_~tEvrd^$| z4Ik08wc*njqEfE;f@p?z3RPAujpWL%pqUxCfh5uqL9yxORGRMERN14?21EB~0ELb3 zPmX$Y#l#GH=I3BQCCYUu@Jzz1vPwA@#xFu8pl$Nqfb_&seFmV-PD;NnoQ*&7GX#H)edGHN`9gE_S1#D6L&)+!!5{hHT}5Z(Dq;2z(p++Oqyva~!p15nv6)bENLoU*$ z__(m}!Jr!!Ss4GW!X=KXBc8`dHQMK8c<5nu9gj+^u3L>VUcYww;AIR5aT@Q_0w(O} zt@RSvwBveNTD(NcKffi=DAdkU$Y`eOTv3Uj3I2}nrd3B>m#Dj)^g21{7%mfX)pd!w z+rv@@gC@!(>ux{21n;iV%1OF=iKURy4DTK)iR&)DYwuvZ2!lk3XXLrV9~q)Ij?I8( z2Gy0=3QUWYlsrd^+wtUCG0X$?rosG?W8XsVUrSwANek&RT1aa(CE9FyMgnH^ZTj9N z&>$u>@`}lRx=V#4HY~bQ62*bmc-bk)Dn0=N5udPEPlzr!&K8#sev8UP9me8S5%?f_ z#qqcmN{J4kOD5#uOBAVVs)b*|Bd6G&R}l_Z5)P|19H!9o$#IChqKmW&=-X{+oiHO+ zq61*E=X9_zH6ttS_R&y0@NUF*=8|<%d>%(QH?DBfSsbtMt|vAz*JoHCsA!U}FeT9G z!9{ANN*zqZY2apGz5a1io_#O3>9(+wCS-V)>H9F zJTq|STbd&_AsRfvNDNU_NRN{ukjGQwuc6ljB(^TPr@=yE-$19!Ah9@#F#H6MpkC3y za^E+C{Pt7#>#6%tq7fzy^vo+vHifHV!xPrFn`+xdwXHJMw(1nMA+NyD=`INN7$N$5 zK9^tnFCqH1==7r&M9)5MMzlZj2fyf=*l&Iv{O57_SN@maUm1P-hz0(4aAju@ia#=0 zgI^fG);d3)0VVhQ{FrMd1&%ENgiJ=s7qkP@mcVieL46_<*g*_Jh2AiDd}bI^M6L}y z2L*L#A8rXOgX!=}g_{dks)fraqZUz>sPt5aC?3Xm$-LqvJdE*k5F0K=orB@Ti@^H? z7ye_$z^hYbPd_xP$^(lk0*fHD3M~DrU3zCgR-dqIU|?y!yL7Xy?&oN^)JOe;8#&4Y z3kAy2q4>G^TTj-7(erOsX-?Irf3gMf*#Om%~A~)d6vS?)Go6g4T6m^UX2xXabCoQ36NP>0m^O#+nmO zKUn3fg)a$w3$I(^jk{6^A5`JsD6n{7U?&{#bMEaQ?y<)ZnR~nMJxJFc@jdA4>+9@G^)-28h=%u}_ZdXPd&qmU_Zn|MZyT@V z{lfFM=NZpqo5ruENL!!wTH3O-$I}Ya?n&#F)-~{KQ7P)be8pHeDQ z%2Ntc?n${REgqBQpXStqpnIyaP*^KGZ~LGi@p3nowpPsA(*nYeJcIpk}djt_g*JGALVw z-{ksGMJJN#Lmd~lV^dC{4}~hkL0s2|Vj3(x3%EX11L;GR;F_j5u|8BoX>kL2Q}9C{ zssVE>0+3EiABq4wr9KpOP}7I%l+Ki&CPVpY5|p1NLiuR|*N2*jB-}fc-G!t(AjH2b zfj$($l~f<AN;p;Wy zUpMJPZH15N(&DWW)R3Q-3OuF7wGz~7%!*N!dOvVfZ4~P7`5&cic#z06r<)qF=`!Cj9SMOqt-FSsC7&+ zYF&9*?-q(tFIZ^DSauA>sPkGVMx7U@81-N1`GWtq6{9wn6mR~oDn_x5jVVU8Sdn$b zs1{%7(km2P8w#vRw36$JQAx_J4h5>XV$|9&>0fG!QLDp2=vw{v6r z$h0XO*kn;;+87#NT{FI#DKgcthavXd@GUk(EDQy~Gl64(B2&%4Km+6gSJ>4;m>AKH zFIbd#MW)Vnp~!Tcodijd37BMxOw^rtMW$b%$aEZvOg+IN_eiYB^hPKMMh*%yP-Kc2 zicIUF$h6_)icG0Y$%QF0rHMxduE=yJ%gz;TJ`UX&9SB z^a%)N$c7>RTpk!JRYH8&iL8;D=bt5ZUKTPmA+3vPUQHWG&$A(3*_uy#W*&s&39}3` z&{OSaSBt{?gEyvKxtXAuaNJO=`dnW)g<=&n!%hQXzy1EgMLuUadpP?zFLE~6m)f`3 za~-!hRObMDqq0YNUsE%t!Di#^T$wQr5@5?_ul%P0AMWO1xM_de&H?!C)9+Iy|Hhd0anv*&xyKRnw! z8$D}1uX_qT6FuWReLY<~E8&T*+`T9L!}O~3=h92kN2Fhr-XUE||1s^`w11>+PFsUSEM|Yabw1H83QwVW^~DD17CB@fQ>oi7zz8`opB=%qK#Pw z5(3Xm++Ff>r69BboT7EsJhZOQgDcE|U(VPK=TM#Fg}VO8t1VJ~X_0cZR=b!hC6_n% zCh1C@RC>9Jrw-V{BQ{b$+>1L@c3-7gvFE6HYH$7X&t2lRA8@gy2YX-8l^69#9_^~- z!cqYDYhAfJ++hy9+z|h*J6^kswmZjv@^p>wszKYQ{S@=XAUXfeQW5-YofTiTKk}I+ z#h8g}&W_J(G|pUp{8Rp${8!kH{;ymt=gX7jJLDj|N%fa|%bnyjS(f)p|BybD-iN1w zr{GU&x^$;BM7k7uTdm@pGvS5N%LuxmqP@)x^`&DA4@dJzC*Q7g0(+>V+**ku4XMb2`iCW5`k(HO(Sc<_JTW`-v&jb09 z)%peZ>WM#y%Ftet>vIl_U27QoeN+`WVO z{-waBso%Ed)%`E40C9=PiuTiHgAj*V&^}5R9g0q(b%i0-Nv5?!Yie zbq?hGqFLl@PdRhqbAr}+Nj+`=2<2rsi=AM>PINBWp@^D#QcXSLYibGS{m$skuz!XT z5l-K@gV#yeI8hFuiu%L8HgHhaLr@D3tA&T+`Xgu(dE#$@j|kvJ{4ML4zy?V!a)$#) z1_qiTkbbv?4KDNEf@y~l{>csQF0O)TnLS!zXYeyWZn%ZliD($XJ+uV^#E!_idw+uN zj-_Iwsk^#DF`OBar_)5;HFSsdg@&#B@Wr6r4G&5T7U5eCw&9|a!nGY*0moA&O#}DE zdE2!5r7CvMPo;1ztw;Yc&$qZWkrk!d!$6AWyv{%euMIm)I~SzxRw#f8LPNp1{>WjF zO43@is0XnjP+Yle4%~YJ-jie(K8XC0Ul;+PZ$fj7N-NQx5KTFALo@7RQN(w#v$Ast zqp6hOEn#NL1OISo^`Yi5W6VgxGu-uXghlsBIGP?wiXneQ=`Q$N0R^jxRiUG&5fcXJ zIl|BZQ%-KpG1nfu-00>OE3KJ6u~or9yB2KW`hm@J$oAl{8C%wBw9E!rS_(Cw4zUO5 zUr-g{u9d29dK%JNU{NR3(gSd!2sDO^Q$}1LDr}CinmDBdnw2fRY6n{YH@XyPwtUin zQUegkf!>DLdu>r_hhj^e`x+9$R9o)3Lzod1O@V^8{)oLh>o|`Epb>!yJTC*!A8}|S zBm{N+7=;LuZh@NeZ@hF@rJ$lUEBfPL}ZvmXS>EFi)|}II)7=t{Kuz zgCU(oHHX3=(@6>2*23mE)tsnGx}*9sxFyg4oy97B1Q{_J15A!Ox3IJYOBXgX$BIJx zK|`sf04;O!5NjDuNrM7X@imbE+vFRKdKaVKuokx(aw8Uvg~8aO9r}_?97d__G?{M(i8BtLCMIb+YBMLpY!*IOnVc*bqV) z7k$DSOe=cPbNYFfJ14aaQ=G#xwmdswaLKp0#5B%_G7t7vV6FM}r`YTG3uarkKHIEO zwOf$Bwk-s$Y#g)l$0?G_X~<1(Zcv-lK^3e^V)=wu!}XlcIjxo+py;P6h#hmphs_D9aOz>i6VD57w&Q1ovr+_39j(ag7#MrFUUQ`xLkDgOiK`F9{} z?f~UnrHyjT7KMwv)$m#TpzTiE?`;EY=RlHFFYlG#m0yvUK+HK<&XXniKae54Exjf^ z4{yacNxz4i{BtC?^rP!t*Q0Qf*VWb5^%aEpZ#$oaM(22EUuTXp&AHF>t=y+85gA+6(OW*>AS@x9{-%*;nEFosaZ3DUeKo*XKRv+3(ry z`PB1AXlzdRT;uu5z197i`#HGOyV{-S&UJqaJLnDRe@cHgJ(NB>{p$2?=?7o~9ZH*! zHYBZMT77C&>a(eHQg2JWC^a+nc*^@Ji&F-r^hs%*vNQ9qna^bwWlqf;mw8R*`I#Lv zQ!M)&e9Zd5W_ZtVASE31a=ttwK`v`@4NUPl1W#XD z{H5WwkJ%0_lcFJ7%fBS93*t(DRu!!R7(D*|oQGBgx=O>xwmxEd`7>W2A?3Bj`g2pl zMy4ePc?GtX+McL{Ov}Vpv-V23tr1H_0@;kl9aRKkLSOklGO+^SoSUc93_3dRK#n7L zODzHb)CQXIcLIM+_&bijM*JPaUjzP*;_rxT+0C+z-E6CAH`}-#(%n%IF=m{@9NOX> z?0FkKZ@!Q{*J!*gwn2bPe?VaLd{`X|YMb8I*_eY8}A z%!;0Q1EJ_WO|b}N@mh6-K?TO;YVz7_dTnc{_=EAa-DRq6t$r#2b;zI&IW`safhSdt zO#qe1vGFZB2NW}pa>rv=fqvxJWuP88mIwNgV;8i@9oIV=bY&&Y6mkQ01WvJ3_~;KD z8W=bXzQ1p?VTK`W?O_YjAXfw$iM%lgXTw+SCE&NY8>sbka~y%}`6A15Y8>;8Cv&u? zfzDp%!7Wa<+@d`NELuf?NB2~sKVz#IfGxZye8P?ybD6E+PJiTD>>_!+&htmE()V^l z+PaM(+Dg;@4U@EWHKMx2vDyYyVs0b1I2{@n2qp9nvvmU*q|SNHD9;!TE~BP$OogRyK0%)cfjz||5HuF5q>R=WuY zyD%!J(SdVJ9r)yOqXS>&opA^5>+(Xc*$ikumJmD>AKnw16FsF#PxZ;De zU<$%v{aSE;GJMZG&%n3e1nxO!4(^7|v1>U9nxrg;NGJzGywXHMuOlK)97e_PB9EYn zia@g%ss+Tni065rV1NEdxc`_&zJ%|l1&F7NVkykjRh>~8D@S~*U1!@|Q} z**er?ps^0Uq&LhiIH>fUs1bV}uWB5t9+P$fTLDqo?=J-azti3%ys^eh;mQ4MEp>l? zks5YA&DsU|c9m&caq}_ZyU8VdYh^E=0rzO;Rb!F(yUpnTCs;6kuP+$;i8Sj0;n34q zFu-YRU@Zh#(HBSrGa|vHZ=_lqFzL&RVEZR5N7cd-b#1YlV9Z!9F=(7$VEyPy(j=Iu#(_a8i&TGJ(9d5Dwb& z6T(c{G?;B8OX#}O0dI^5!H~)hy1S1HhFlXYm+d~zCCk;Iz?(?)ffU#Qh!8DHr=gcq zad(AnJoa#89Qfw7)6n`YAt$eLmF{gkjKUIf5$* zZV90@b%6bmV0Y~X)Y5(!F!;)*kz>YL==W#~Sp=fh(7WQB@GcN6keYOD7Lt;Udh? zP2|0@8m|_0 zOi-7mCP6k5WLGRjXjm!FFAA}9%JqqhfbE7=)=z0}C`vZbseIkhf3 z3%q*S*-aQV)-G3I2rcc>6e{yK!NQ!SYKjcJI{Z#Rr5CcGUMcJaNraj>*ZC}ynASAG zkf$T53i6@Z4>fh~5TsFWxt;?XT?V2kRa#wy@K)|pbprUeBl=`{vY$4ptgz5?h-H|T ztc`uKWbui?0238z_-g=NV7iH#bM=~UV9Py*>T9@Vg$Za$_|R3j%yN(41#Z+}Xk`MkUcQEZP&%Vi3bikCawcsB+BE z2B2f6kOdg-;=my(9cLv`{QUGPj4dYR%?NQCTAB~?cnGD}LnCMut-k8ohg9)RtdV6? zRO;De{FYWvQ>D4B3tXkuQ&o9J$`-6$^bId`Bc+ib!;5hHZtROsXe^xW8>5@S({*9K zsS2Qfb+2U+M1)35iYTR5lVz1$>c zz5pq(o$(IfYCNXWc$Gv_%tHr1$`RpGRYLS*qO!5)n^=Wcz-c`5Q0kd zRhu?nzCRxeV2S?vB3^a&s-u=Etfj&mKv{Yd`f@o+@P6`T?_T6!xE=>wj|HyB>dRK; zCPx>BDB>)fHkE-?b_BxR?(AUhWGrVMGtWGJJiPSS@laV^V`%BVMwYZ6N%ctDi=;gW zg7Mw)%8_=e(92krztGw}itXwzokiONz2J8#f~upX%8)b@%%xY)G~18sR zWy3)SLMDqhK7^E}`K4Gp62m?M8%G%gdio;%F|Do#b;*1f*a?-@lUsMnr7gJ!8bf9K z8*9scXp}0-4!|Ph6u&6f zHzFrrly5#qEXvdnUzEinO3>?T&oEde3^cJ4iz0*Xut_6^<3M}! zO1uCovG_2#3j&sHB*-`e+sic7F70J5H0cE2AXYSqhH0{jhGS61dIKyf4}^)zX})ps z)t10PEN+1x=;r|a?3Zw~(PRPVd#yZ=hNG*%Yha#VjPK%5)swiF9;d}5X_Z{p4FvX{ zV+-J+6*hzYVi(49SNsA{TI~7ag_lCp3m>V^&c;-7>q~si@`v=Pq!s3(5b<^++w`^O z7ooI1fiKZgXKSe{lFIyGsKwmlZ}=rRg!n$zhZw$mh?}=E{@eTs;{LC!i3m!AsWFo_ zBgxK$dW=JJX>H;*l+0=7ZIW!QCG1vgm!eC=z4{4*$u8N!M<9LxA-=y0fK35l{A`r1 zEuV4Bq@WDSCMct%x_y&WfZI7%VdWE80myTczU}IB;vOs*gsaiHM$*9DW5Lq= zuQb;+a63GX%qOOqReZFo7@3M8Y{@Hl2z16nOV{a$FhoMb2m?b20~2)&q`=KAP(3OB zsAVwf0vA+3;6iKsKWIGaR7x*D|2!!Usyh=yMFEz-O#szcf@(BDb%zFX4iuCiHnyBc2(a^8gsP<$|0<)#I4G};ppT|-NQ z*p_a>wsey|mxAO+Y(d!wbFSgYH4M3inR2nZt}*Aj3b_U&*I+$Y96@3@TAXggzz|3R z1tNu-k58edL`ntvxGWTSgk13q&t?tDp55Z>51D}$!QuI0&nCg!ov_%)ij5Vv zlG?M5gNZD;o8Tqz;M=(C&+IKFK`t3OS^C} zN`i%6Y!jv`kmCnE2Ub80)2qQK;9Jc6O_1z1!tz#HhYZL0&)8Z(E5`AYOJ_FP}T#c6?e8;QaxL>C6{F_Y-0ePX9E0+GY5R9o7$8M zIt%z438;qnnNQIW5bD)(SOOJo*;r;0@QCgGPGwYcF5Th0}<(qc-+EkeskYIqgz z-9mcK!*fY-lavoGlxSt2lV}A^E~F-x@peI-bb;_FJAz~g>RLn$!8W>9r~+HUN}#@A zYxd0A8HVR%3ql{Bk1@_WyR$NELHH+53TH?f4`CJ=0GT_L$tFM|Zkh?u7_hxEv4x+b zpb7@Z^;oc?zu@Q@C)r}3j^+rywxyt2Ok+c`Me|bQYiWj~de&M=1`~nk(I>Gm|AEe~ ztbwIyfU&;%Rz;hU_I0NAm2G`~E%{C@SubSX->%lastDxE*~#uw3EfsO7P+TZO9$j* zJbO#29|kweJ!Z@h^wE$yp&S-_{Z3zrzQGiOS>#$_T27gT$VhADFIX2?2U!c3epdI{7MbAfdR^7~9jfexw0 z5vw9_RM7Ls8svP;{gDndrMO^hGKNtXj7>tj6VdKOQ@gB2(M!GuQxUN#YhYDlt})0b zpoY6p!(FBt_|QLtEDSR$An##;oSY&Vkc)AwK>WL90JLwe+3Zbc9M-Y9ZYrk9AQ>*d z&jtk~IA9@A%cL*F1$0lUC7FmXzJj=sHnK-E!N8VI;d;EQFf}NL6VMB5?%}#922v&cM z{%#yb2GDxhpJEPIXs59ZweShGaK1k>_+(3{SXRZ-gu<4w{R|Ta%+zFDH_@o^(Oi#2 z05&24Aj1fdp#;dI8X!<6D_0B4lJMZ7W#kqumlPk9uxui$r= zVDYAsplCd1BDZwIOQrq-i`QI@`yNYRjmCa*(`g{1+ABrBr%S=H<_^Ze&tF&H*!!$5IqQJXBE(_mS z;HfBkzM0?Px@kV?qEUXUhL0mnH)nUyu7V_{J5p_@hG4rO6y4dL22(pt@Cj8nUSXWr zlMMF6)D~lb8bm^@6|bHb6XGqdWQ!!&%89$U(&7VBzEG>9SYY_LkGQ-Cpf|=uQ$nro z_Vy5>8Y3RxEUJr>l2X@24rpScN(_%hy>5~m#0W;RaEon>A{YZ*eXu6MDB`;q#SpPR zI)cqS7uSlzSKz|ns+Q?P3&+EJaFK*us4{MFt01O+MvUT%k{G#X;zsUHU=}H+fx|eM z2M*{E1IMiu1*lwfDR789@i;Wbk_{aih%3fA#8Y$@FkcQt`_eUGyxC>Mq?$03Dy_{l4G#%}D3oy0zD- zb55N)3+zuVK}lGOnQBBWsXc1}<-Q*Zm3>r1+S84vUh0{|^>fE^1zn+H&m*5R&3-F1 z)Ju@rxE0wi_qcrRMz?(o^s<@Te$huo8r}~I@jR#G`H<^w>pCEEDML7cc^IlI&F7)7 zO3_!J+ga$fDz&o-YOE~pFV)2p7`gmubt=>}Ru0wD=tQ~k%v%BKJ%=M^;`zchWq2j=-DBgxWX!F%{``kx@l4_dQScwfn z9UP1f(gx9W5LaDT{<;|I8UP*(jz9~js_Ql#B=BL>#VP%th`Fn>1Wn}|%2!dE7X`gl zCIua`x_HGvf9LY>Vhj*P1++#J*&3bC^0HZ~8$dgN-i3vsx((D6hXeR|Qjj(&5l?0G zRK|Vth03EWgXn5=!$?SCy%-3(N`?Fwqvfzh-5 z!E02Zis!H+hmGck>L7^?P4+--pfog-w&CfOC+UV7zSLsxHgzSjD*4ork!zTVhf||w zhhSO>YBoY(Dvoo+!2~EqOr#jbL8ZUGnnN(u30nAHYDz3Jf5dDtn=_7IC=KAMpA33q z0}pIad$!kGv&XON*>119i}!3V7p{ZxQjSb*wO!#o>ryI&gu&2o) z%-B}DPsvOlls;0Twpux~e((W+_^{#WY8vZ)Q-f1tfUhPKps0&rD*u2r!S}hTd{uCi z)+FEHupZUXjvk2F^A+vv&AxYol3J@xSEnI3J+j8I3W*qDyGH}X=Mh{9=0R*8@uonN z&wa>ObCCB-s}Lv75Zf6@rU?^iG`_&e2-r%rQoyjFwg|cq1LGHpb?tTU_tpRm z_7zfeUj*011HZ-hA{ubb4obi^_I!6Ie?kn706c_1N(T;-xW-*7xmM*6ekoriF?tXe$m^wsRZ z%!wKgwzxZaZFmaci3HxeP{~172^iY&110*d;!0u}bTdaQqRlX88D8t=EW`6K{nkx% z56A?oP=~CS;5;77 z@LyM@u?%2ki6Wl_icGAmjv{L;!(KhhAQqKYNn;swi8Mm}N}nLhfHrz(8Nh>62Zx}8 z#DnWP2r%uHWsvHQ#WJ9)Rn8M+87}ILWr*`!3YNj?xrl)ir+Z}zC57>o4Ix}%ho)_X zU%)o(_+@N^4l)Vt>Dh+J6=7_Knx8WTI3ZOf0eP@J!r2B^j4dH!EE13-4mq4`tYX3k ztAnjF@zGi$M*Hhnhixi>CgAd?^k5xkGCTpS2JV32HWdvLyC9I(5sn5Aa>PY%tN=rU z3i8uoupSJEm=LOwjr`X!AlkGN1Hvi_q=80o>sQ8r=*A})5R7k6A)$Hj82H6A1_cE$ zmY|GJp!u#aG*53~XugYKXh?TLo^~OLPmyN+JE4-LeUPpa&Y)pTGa~;L}rL4@~h?RMgTKgYiWztku z<|S2bfcpdm{n`OJ5FpW33Umv(fkNDrxM5E-`YYPmrBJ8@;m=5CKvL z%hACU*1i4F?t);p_w}#+Hz=6FBu&K@u^MpDV?Lhp`iEw7(5I@lrTD5!ZvAI7`n?Xjn>z zk5uBRNGHVbh&f>6_;t*IHc7-Bu!;gZ)!s7ZK-XKr9H6%vb3i9L!kKiUQ_ylxQZL#e zQZIUY3{o$aim1A7i8NBL?{wQ0nsGmSS5HhmTScJ$-X4@X}UeF5CdoGSdozhZyfKHGjf0t4p4&CJfI$D(eJ zx+H3NR6&$8YLD$5+v~PDwm;b}wT-rA+Y)V2w$EeNA`oCh?9H(!$M%oi;audL>%7Bx zne%tf3}+x_UCjM4e~K9!Gc?8#bI9?nV}oO*;|aK%nd=zma5(;%xG3@d#JP#li9aW7 zO6W*fobcy_nF+NCgA+0mq7r_L|0@2~_~!WY;)lmCk9#8S-ni*;m&Kg~zw#SXm!|$T zwJG(c)G?`pQv0RGrv8xfT*|{K3sP=RxirO<5}opT^5e;OCr?YBknB!&CjXqYHEC_q z14+$EHA!bCB_-LDq@?dMKg(R5>Cb#A^P$Y!GcV7akXex#n`y{AoUtO~v5bWoS7n@^ zQI#<|qda4K`X}j6q(7K`WBL{8gVVoGdnN5}X@5w&DDCvLA!$Wv*=a{o=jGg-Q=7Bf zwZ*m0^`h%vDy`A@R z-t~DG<(20d^M1xjD25@a%w=0n-OuGho7i(*_J0kTW1|fHYup@#^B&ix(EpEB-_AnBtR)bBdkCF=aoM zep&i{>5HWgmj0o%x^zToLg^c2PnG?pY*v|PaLP$<4S8nB$0w~k>D8eNho%iZGQ>LU z=koK1bq@c0_D`Z1dQ+$GtqxdPbykqW}N>xHACVnWc(DvK4u8xDIC$SJ=?9 z>r1Y9H7c4uIK%}E^vdaG6I?!cdvVRLXd}l#@9SV(-x}v|7UFl1Q7AO{c-^XRTBPtQ zg@s{X-6DmQux`bgtu z7iuO74{RcuFFZivD$vaiA*a%B)2Y`sFy5}idM&^9vX1xd3FdP3f(nmmX-p8ZX?tM{ zPKg#M5zMbLoELK2qxa9+A{;#OY9wTpg6w7~6kAAVN(ght4PAn0MM0M?GT?M`KV6}b=no)<3iQgkI*lg&k?SGppIf2sC%0R2 zUV#n8;|LpaUrHyg7!eEETGQ&lKqfU-9>wy-H&!0OA3OC*pKkXXwFI8Sq$FSvJgcH( z;qpI);daWoXn{@VoUVEi*4&dzz62MU%b4!l=`Mf#U8E9tFEs9hI5N?jhrLap`MMHj zV{8s7eJ;|06nLiDEE5z|Kjg#t)=a}`#f^@Poz4HF3!CZ*cn*!Ycyee&4SD)ldQ0`< znlA1bROWn)Nd0|1@IzZ|K+R24x6}^o$P+O=8L6i#Bg4M0x zCo^+uF*w{NJSW4fZxHEQEFyK)2N0{4EAZjvJ{C|n7XzePSrpqvm;^-kxC`}ObO&i; zUW`Vex|&5P7bE3;he#pAhJiLRY=GMFDNsAExI^y^3yIf3(fAKDn=GU6kegCYy+dlO zEH0BMj5%sX90#p>Ob;;JT`i{7+AOA~X?dc)PP?njCmXQqrP7s}|en)E13 zdQ+e44=m{uEeRFhi?^g0(qLr66iw;JiKKgwNep!H`_p_W?@jYIe|N;YFnDBfa+$aJ z`y(CAKQg1;AK32!_WKil7f0dq&qsvo0&jB&g^nH(hEtvx?l+>b@*cBP2Y>Hul>ON# zX=54}9WG@cd0JED`_rVEqh?#1D&LzX)eli%wU|P@__vs=TR+7*LkSbFt?LT0bJzzM zZix@5o1kP4he+CXp%FI&{-#W3>R?a_;~+aPgMiA>ZmD<$Rx`9GIS?<(!R8=4V97YC zsWP{0;8aIrWlovVV}??$1cMG;^&B&^gbSsEw0=Z#4uGeB+qlfQ*m$0?0uCiJjW**? zhV6#+hShK?InOW^A;K>(j5Q256dO#2F1VGPCpXHs$k)gh%4f@?+~A7xzSx_uQwg{$(R)Su5NOAQ8)Q&)Of>f#=sg054Xa<-#;W@$1Ao^JIij6 z5EA9UuH|vExz@ml+D-!A8%RHt#D$Hgj`74pRyZb9kK4ms=@uD?=2rgYN>7sVg;QbD zi4UI7#YCN;9tZ?9x)!@;^h}CNmV#19Y`0bfqm{?Zpaid}yF&Gyt(<06v`>4FC%F6{ zO`{ga0BP9-1x4QkN%b~#y_GGkSYcwuqg{&e=#54gkB;iFWR}TN;4&jU7^J`j?7=7n z&SDQHDR3HlFiU}v?7<=h2D1mN6ewg5HYt$J9-^c`k`cgk&=7DK0YLa`0xn+1=n>5Z zjDi;JXRu!fkmu-XyFs(aI*Z~TjZflyjhI<}J>55#0_1&V$ss&YT2uo|1Gto-BSaWR zF^jjrTSxh89$tgrw>Cn8y*7|y->bfzFz*5 zJYAk6x5)P+rO9}y@jm09j8Dmr8^1FiGX7-TV|?ED46t;o(Puo@SY*sLCKwIC)ZZCC zW0?9WH~^kwm}Z!4m}n?5M*GTlsawJ9|PNAg9R&`F-gbgpX>FE<(qKFn0Vk z(<0LhQ>|%|=|WSLX*A(x`XA%3ef17sLkfH(r-Rj|lYtV)ozXtxi7&ybB>UWPz8YuK zY8h@JmRwotO{pyn7Bw}*Ni$PsTS)F!@ATEgK?T+v3N>vAaq+Y_<;v0}wWXnY9Lo~m z&|34a9z}F6_>|zl$-h7P5jayuQ*l0&T3lOtVDo`ZO`D~lRlF-MbBPgedjfGdLvQYv z@w1O#Kv7ED6Z_;sUry)>*nBxe<4u)UmP)f7Gl9u!OC?YY1aWoSDY&F~UkH|yhdcY<-tXLLbS?a^m@=HAK<{CH12R1>sN-UnU^W1LC z?tJ%Qc-CYv62mX=1XLiEt8=ZBUy^ZvYEk0ArXuGKSftGo#oP zVMY3-_ zR?F=`8U8hrutLxxrjfcJP%=Lx@KzM#1mxy-mpoZmU?`5qd}cb_T`M%TkOfVDWnr8- z*bw+6sj&FWP}v$AX3B#>i0ZZQSk$dv8p7zXe8yup0JE))Q09QQMP>$!k@(Kr@2lNc zz5%rgp8(;bT5s*GG2fm!-Iz^7aMFr3fFtq{;M>D$+Y4taebxplu?B=AtVUtPAlL6{ zs@V$;a9>l+ekpJ*nSl7tJ7#UXqjAiUS}?lFy-#LEw?e|gG{?DGA6qRn%hp>33h)}_ z`T%r+My~op2p>C}Xdx>?NzqfDM*y1~xc8`XfK@dCQ7*z*Vw}L6{2)iT!N~XQa2(EH z>xu-6K7oTC=80k3N6%vBSenvcs?liN3$pPcLbg5**8C12`)dv78HT~*d!}KZ{BQXq z`AO`o*$8V{Ef1HIN%!}#DR zXG_&kvfZ5nriTYG<<4f&3sI-Y6f`U?6QVNV;>|5WAmB>3m5%vv%05@f@rHy&Tab!EYpops1+SNwY+f!s`g!&~jyAc99 z91R#E{IT7#ZW=-#{3v^h1oNmdn?1N)ps)k*aP=dxxhcF>USC5N)n}XU{t;D`LCWDEE&zn;?i1pIOXFvy3?j#=H6Qa{Kg(_SqkUC+2xv{?;PF>m0*l0-W@$ zF$Rl**U;LIS656p-D`2%ABN>8plK3ZYMjvcvw{%}&P_%SU2ex-Bn`uthQ-;RM zfpjt%d_(@}bVCN|sn^tSEf6z*llJGHCLJMYNifB(gn6*`6hr%7As% zKQEWZK6b2W2)BAhVR0OTZw>T~x8dx3?Fjm1UsVT_$puHB9C%02+-^btg*3ORs~;NP zq7&gU#Ka|dOQ>~bV}Be89?A;|p5XnV-Hm$qkVLPV8ukI$d1C@gg@RWRI(6H}Kf*BH z;|4v(L!}B0dmJ=Zk&Yu-u_Aoj5K*BNd@-y6Irvu^=TYN-j2|0cH!d{R8AmeKG|_n2 z@GrwHhAR+{;#3F@at$d4hhew8RK6G3=}NguK3Oi43*>ZpxwKfiPdXR;a;6k3jWrEL zNa!eq4Q0Hj;76Of2GvYlRPoAu_tD16ABvQX9eQ(lGJ!#|*w~>rZz3!18z2hP*$VR# ziJDiGcc{?HWW;io6*!qf9)RGWz!Vo zGr$9~kdTP&)%osE8yh~20aNn2ga?~vC~rXVVo{gx@@Eu>BL@cU)C(=H1zvcG(HYWA zgkc9lavS~{iz#YF=FVnSz}%Pykb~-e<~^$^Pat;K-fsI$ZZf7 zI6K#d$RlAHU{a=wCjew4{MnNRGlNa!c$RW_wks(p4Da+oNg;Rq?4+Eda9wedx{Qv9 z0Bt<0kQ@q~@;P0DHs}bi`DKt)!0F@laEI z;&`BNK5~WJkG@#)SbQVyni}_(#j2V;lB?Aa#y$NqLOVem|4=@29n{R zq_~=(r1g23xq(IU2IS`MoI$lH77x-!v1=9jq7p#jj`$b2cE@y0VHMZ{Yo&Gz=t75O z`1D&09hUOxGbCqcYPWx%tg_{FjH5s|FmhS)dQpeP&(?n#euJlq)5BaAU!8Z7Cv`ra zrf?pJT0&7yL|^3?^5yJJ@fR&wR^&~t zxTZ<~VObX)pwb04*pn@TP+` zQwl^z4FWH$Mh$94M$Ut1QGoVh8dx`P4Tlw%-&;(;fp22uYiZfZ@-`}~oiiM+23 zYH|OQ;fMa^8-hvqxIgr5Hf|cxVtpNCf$V!NW19|{W`2twuq}@mK)*0TG>?8bJN<{S zJH760jg<#+7i|pO2PqI6KHoeVDseGXLK72-O7I1IxDJ&JHw5fxW@o5=hluIdR=a~_ zfP#sFgzD9z(1@i)IwvUPEtYbD0-%>(%w#uY`}=t<=o0N5;bs7D09{ePCMLW9MPx8# zUrKfTBd;&?QU2W-RabO((%_VKc6aK;;W97-_^BD!_wpKyP-A--5df5%1i z_iZU~AC0KD*_qMd-V8i_C2OzWG3N(p`fE8jPHWER-YjBw-K39r+1Zw$%oi^bA98O# zrGE45s22Cv1dw(2u_fWSon{z)BLGryd!0k%#EgD?H00ij(?guG!o78-?!&7`#8Pv~ zl%5)Jyq};{q7Z=CA4NkPh6Q%QHtgL;Xau?y!JHUQ-r5%uj|_M@r|Tw0TmZBk?nU(T zIQ_grKQEKRYdWF|k3zSgQjI$3T3?B|=?mHK)gyakj70Wb<@*_CeHHk!U98s1-Z5)8 z$E?eAIp66Mvnq9o9LL72-R_F|E{0iM{uNcF=FExY{x>~r8fs4faC#~k8Jm=6&6CT=EZ5>(e;Y*(4MJzn>2#yP%jfNF)F zP3?uWrS8+yzs+9vrgrz|0O`+U36W0&>pofX5uJFUS1R|4ujXZM z^SvNy3pkZqb)D)fi!qRhyG!uK zKHz6%b?ZL)N`Q_H&neZd%Z==w0%(vtWTLDR*}&&s6>_gy9z!SUn%&0rxFMgQ$lrKQ z9-5%3VLigU&S_Y+MwDidC|ILM*f0t5mhiGDwYrH?!c93eMS?2Dd$ zk3$;1z|XlxzeTn%*`LBoo9n$PWzn8Saw;8$QF0S?h2w;wqw+^c4;=YMBS zKnsv2e|iG^0RZG(bm&v+5I|UT=(A{r-fK6BM;t-DNIfS}%SO<$l$9n6{iH?LD628>C%9WjOg7j_U zG@%M@A}K}>TBIjCop86&?*0agv|a8^NHO(0qDA)@+TH(AX%SYX2Q6yrl@@*AtLgAI zKMT_H45vkYU(GTvHja1Ulb}VfhtZ-UoVdWXgBHE7r$z4`ix&L|#JC+}M)ROW=dyi?%kxj={82pzseAWju^K8|}b!p}%ypc5A3=o88hZ2O-Rz_#CT zZ2KRo9zuuz5w#dS)pl^W9%HHhjgf?KXyOzangVI%Y^cj}f*-2abzv zzhT%mqWzs_rF~#qL?E%P)`X>QtF;x*w}#xNklO}A{(xXZ204LcL1QLvt)G}}Q#Sj180CNWvm#cVL5@)>C*w9HztyeWR1f;sWwpv$V%RH-$J0&j76cbn+ z$0WJIR3YP3Ts6XP$3&R$lHCODSa3HE{S1g1gXm^+w_@yX^VV3xXXc8|@R{LMDpa2p zs?Si?sjW7luxYkIn(6Y8`G+(Wx9DtXwKEi2*$0hFx_>3p4`C$XbGyuoAnaiGd|P!a z^cJssb6f3ZB_EamcQUHG*-pt*L~Uvw6#z~Azi^leUfH7~p8gPGqc;3()bZULF{P}_ z;(VtJX|`)78`5pOl!!@2U-{gMZHC^3@zofM;H%qeQ<(dzcK1)fQsi!z?+Fn14}m2! z;4#C%?k_I)OmVa83?+%(bZpy6(+_usN-Dtxrbcnfi|DqLbwlC8JUSpxCBeKk0< z!6_M3pSvK+6hxhRV5G>TblDkkq?N4+K zqjZU`Vh}T2#6RolU>Ms`%#G?35Z=7c9U#2zG3yyEJRk%-_e;S9ORP z!tEacosi@KeD*iPuA zr!AOCOQ_!D>>LHrE=4cg2n2g&H;iAnR^6h>R?4>?ntuGAn4XbURY{VlB-%h?`SiRXl4ELUkPrjpkgKyKt2Y&RXEH4Ve z;ASFYVo{&afKo<0g^hTvZp17o3Nl`9V!KT2f8-D&<|Bi5df)r5>@ge_}oG z>w4htwIp(gl4_I%au*jKosOx1wo0>YqdScVmv%1@KZ|WA{`li0q66H~oK}(|cw!w@ zJwdysCn(}3g;x_Y>RT>#wZhAlww=B9?7(#&xlh)8yH8mCqqV<>bPJXx(N zaw&uP;OUsWv99kt=P0XO$L9D|-5kH#>l`D8m}8g!jtIaM%jLlx4e0rwl&WuKRllIC z`h{MrMh;OmjutL|i`r`*H%i+8O%2U zA_f}X|6_C^a4{~bIJ%tp6`d)9jSWGmZZMQ-h~4`OW>z~*q_b3>Ur7e1<#oe>F|pXt zdFmn^_Xz{SEsf@|Fm+(Pi6;|zfs;SnDtIzt!zIs-zJ?{z`D%ehQPDO-`aM<)Ig|;9 ziu9_&MJUK6B|?pZ2mK?vR#j~!f>8?-tcXR?c%gtrhU@&^>kbF4&vc#rtXI%N4h53k zrofB1@jIc4Kh{9tw8Akt_dS$MAbnbh3(m>cO&6LhBysQ6n z_y-f8g30|cfb_rZn z-}a-x?4$@7ek)dLt%Z3!2Uwn6OFIPJAeLE4BG-{&O@wy^j^sRd!zrz2URYncdvRia zzHnlHrrwD?U#Mg(6a*-Jd1gCNKXJcNHUBl(kaIU*Ju@fJIdK~{P3Oc-w~pl>C~o9+ ziIKCcIdMC!;^W@j$bZb-$fFIN6E{UC3;m(`6i6mZ9RALIRWZ=2sEYTL!%J(dr;NS{ zNA6sPh6IvEz|R%=5@&S@r|rujE@qeUuvX_)q8ZIsaHP|A-2z3rON$&kbC;&(=kC&C z(Sv04fPqTH7Uwwl~hG!z71itfEMF?7E%_hi4<8O2(uYbSt6tOz~qX>Lll8qG!AN zcE>I@0Xa8QCzSgU<9^ZT6W0PW!I`=rga(?V= zbH3nga9-^k;*^|QV%EgG7_%V88*^dI@R-3daWQtdIa}j+!SNSIu_McII69d4_r$*@ zHYFA(W+es^+7j+bXh`@|!o-BCgp(5nB*Z1`kN+nAUvP8wbo~7IY4JD3pA$bQ{odk?1k=~0x2OLly*_Z zXKv0lITz-fk#kB;Sx#)u&#tYmHE?(Kkn0ZDB-eOXjB9=Nvh14d(b;9$iP`(Iwr8!) zTAuaitXs2A%gW2zSMW{2zY5w4UMqOA;J$*p3uYADSa5McRY7IJ;DU^T=z>uG`uunE z-^hO{za_sZ-;+Nje;C}Jnc?{C>%1*_ALcF3dmyhVZ))CEdB4valUJ6Pl^30NDEG(Q z7ju{7Hswyqt;j9OP0zLEepA#@w5;gqqI-(2E2=I!wP;XLc2P=^x#%DqqHQdEzwn*H z7Ym;#Tu?Zx@aDqn3NI`?vv6c#MqyOp!Tx*u|EK?YxJmn4|C;`%_D}9_>i=WE_5I%O z_jON}+{?hx)ry7BKQ{vE-;!?<8P zB;Dg)mQwBCI>1%^Rt)Fk&@fK&Tx1z>x1OYFI4?S)-mNp|1UUayi@0pn_#`F@mutuv zdAGh7;`ahs)pvXH2%8PK%WXV$Fa)q)!^l>s!fBu2Pf8hh**M9!sp)VGoSZC^KKXi3 z=x_H#k>)^TDL8^RN+ZY-JchKax^>G$S_*qRRLLJ&tmhIF6n%3l%<{eX+3UH-!- zpbXH0MjvM2yayB52_vRG@bd&YA>g^GVRy)5p`bs(Y+r3>`3E5UJ8|sTq5Kk znsM1No+9)=BOq2>wBovkL%EO%1RgVU=Nde0`e?f}(-@d5HB}~-Ne#1J8Yq~ni#Nw#BI?Hg?Sy$p8#grPc>r^?M zCz%Ihq^+nXB68)gnwX$5QWqKv3awI(wi@3V*FA<@dBv2_LL*&B|6#LqcH{DK-34_? zEq9J%5gPGPNL+%0`92FPp-h%10m;k4YlCfEGb$0t8-9(R5}< zn#L_UZ$oq)1=t=BS8rmh_^Qb3hHxoAia;Q&Iw;yqI*Z&{l_-L*qKLEelY_h~JPJID zLaz9NlndKBJVWhL_sl->?RBrS^9<<5Qy^{RS;q3St?>r73CE^qYdD~viUXF@Wco3g zdB>W}9!QHf^NP|fbdf**M$5fM;t`1V5%L%hiXmKSV<c0B@2SK#My~p^GKz3a+IUT!R%XI)N1wx(e^Jg$vZeGaFr~iPW_$)muYG zM+Ejl*Mf`1&>7qkt3hq)S`vw9HVTf*_ zsAyK_g$7_QywIR>+}v_+hj@NgQLAflrwEdiPyS*2aJRh3Z|rO;!Y4N(Jt`|p2o_*FyB7Q1ahG(@8*o3Rj>sLeFo~z> z_=~dHKo9Q%&;1i|+PK{KvQd^|)S4~BmfPz%Y4 zaI7+;gsq;iumuW;BQ-a^U4k9~Tb}Wa4GB^mE|5tzhvY7z^n&ox!Q37>o(azZ9zdH_ z*?lCwhGGwkR{xDn$`5~7yD)w36W_6-s!q1waqDahEI6!8W4@KHaIT~+y^}2VAISu* z<(z&-3g#*;#pQpkPmCsN7I?cs!9 z+uO>#Tw#^!QfVX5q4Y{CZ~@NtSP1NoES_i473>ZlfcZGs{PZ%K#|LnQK|^u*+rrk^ zu2j3mYVaV^H02Rct9_9@E>3Q@_1qEOc(fe`hyo>0UcPdkRGduDf~5(@@Hx1_=6F@f1p82omr6taZisTlAS z=o6lR{{@eu)MZbG^UOvPWw5H>NrK^c4M7z6y-@uYq@z!Q;PDqumOx{arTG3>%?bV# zQ^ZS);qiCYqyx5=Bz$2nH3?#9lS3!O(y&6yQppE2=Hp{vGX)*4;{N2$gkRya?+^+s zLexu&FmN?@EL?)+qzKYE}tfD#%&vE!ILih$8@?Dw>Z zlboLnbjM7@0V`fjMp<`5FU1CTmXjul5(5`(EOszxy<6k83!QQF#HVnoL;hTq$yfuhMC2NsRN3+yE-=Qoho!U}jTJOy40 zo2xNXH%r8zIGWz6J`~}%Fw5mn#cGn@3g*z8atl+3R1mP{eqbWF{$zPb2ojMbs#Sb5 zmCER}v!%J{XHuw!)03*;rxD8%p}T+zicqsAkK_|EO-o}8A+kNHC5i6*1aFB}DrJ+bby#(u$8w2r4hB3C@2#kVVh1~06>y3;FbHrui@<3-ffJ4f zszDENZpQ^D6cFH~2We#N4H@&Y7ueMs%!tDce@m`E=GAP;aYf7f&J$Wk_l^J*3e6 z7K>Cj+JCtnQwcZl5QPjpPDNUkzvIn_8RHPb2^SzlEF9j&d6|hAh5|X zFs-Wj-PAQq8Oi^T5@aQ`~$UjKr)JYf9dn7XZa9ppb z%GfZG)evbeZ$-Zvm=F~!2MYpI$P^C~(?=HaG|NL}&*|DLk#ah?urO;ea(_7t&D&^1 z_$Ur%?7*~M4%~`s1%6Wl$Z!H2xoaMm|0V{Ylyb@?4DUlD#*3?n%c;V13{)X$=+qx- z)$D0;+kktH(u7i*c~ty020nqVUl3?wO7Ho}AynZh zZ$4&dfC&UE`k7jEAx6zQc)OKofOz5e7>#6~HARHOQ z$}~2FB1?nQ(UoR6C%m-A3i&%2;l$MP717&=-Aa5hR*5e+P2??X?F9d?Ev87&=UyrY zhyKD603S`qCYQhm46+73CYiZf=3U?)1^6%~i(CUEKkqC2Y8JqDkYr$p5om z1BawGc(WN%J}5L|$RLqpF3SNY&fc1CxY{8-1|dvw`ELnF$<%~~kpT_lB8-e^{_%ob z;5n&hg{0;}T3?!UMyr7tnUUMDc`pzJrMd;Kb<@<9bL(?449UiLKZ6Y% zv)J2{Y&`57V-JPRLf9M$#lR2QO>a^SFy@aLv5Z%*?3laU1F*wRlzp=s8V>d+?2p7?7+b;+aJ*fwx z2zHfPgqbpjiRiUG$6cUva;D7c2QYkrAMNkN_Qv?d_HJ>1r|pY5T`$3+fq6<(1Qzfh z_n-=+AlxTLiZ-Zx3fM4Aa4Q#ta2!NSjp5+JQ-?)Zu5c`Z45E|%*$j&yt_jMaZh=ME z#xw-0fXyl73BSVS$A3yd-d)FQ0~tgc!B$?kp7?0fq!OOy@CkDHpEyzS44zTp;2X9^ zFz|V38{d0x8{6Os$$t%-f*EXB$f}78aaf=)kFpmIEaLlW zb1pH45bGSfdKumkuTr!`=X90Gut_KH0o&;3NBa4JIs37Q-KvQsFuPnN!C8&ahz}4k zxp{ZD>fsM;%uRkNjtVXS?IO4V!p7Z88y?wPjZ5OE2)}`lS92vzPxD4pA*NbLq-h7a z{4X#vPhYvLH%{d3ecCz0sIe#l1R5)M4}hy!d`0{v93B-iS^1rs{E|Mo3(4`c?Ogt6 z_31$^{YfodgqBO-O98RtXf^ot9!6oHCxM8((A$KKMK=Y%{s)ptu~?)r#bUVNpi>6N z9I9e*jbaPC$6Eu{!#z+y#LVthr9}Edtxs^J3YLL?P?Gq(pqLmrS31@;Pgq*(CXZe{ zSwyeCPDHQPjexSNdVx3rP@wB0_*hxZHP=VDc zxF!`=r1q^k&Q(-@qiWdjsB^vd2D4L9Wn;?hmgDv4zpjcDoDmku-bfHi!J)q!;PMlQ zYBW`+`23Py@maS@AgHBbfJVT_re6g}QtPymvZWztc2^weP4W2vQ+!4nI>l%8#Kd+M zb#OO2NLx$S!M>tbzpg0bGaz9>xZ$5&0N_OQzsl0PihmC^>$7`Pv$lC^pk{6HFbiIx zbzF=MKrINZYjqc>DO@3yqI~qFiTxF@qH>waIvx(Fk($^#pp4YS)~yg5b@*Q3de#Jm z2u;nm2M2Q%sCW(pGzR|gPGoKa6vKxSb(}OZleXRIl_%*&`fJp+os#N;OHe;ULfT1H)=@pk07Wr`0;4B&6DJZI5{F@Mmh=z_@UiH z#RXQ@;$ZAE?l694e8c#%@oD3u#=jUZf+qJ^<1k~2@sMGUVW+`wcmlzY?l7Ed_*o9f zpU4l$=R=FT40_!8(Btlw_DL(Hml3A!E@?6X-MA6GslSvYZLzMmwpm}ZF0npnZG=|$ z)z(w2W!78-um0Kcz2yVTTb5SK1C|+Bj4qs{*`{R3f@9x%-`-E2CSg;gpybw#g_UKRah^lj09h`uEHjOby}CDFOj_UNtl zkL~Z+UqV3Z7W*{&_4Y~7{?4^0*lqUisCCc*zYSX8=S5XU4UOs_l^OMk&2M|w=Cw81 zZnOQtc8RUp=C=LLCfPQ|u8UnA`)ce9v5&eI?sAG@gbH`f8i;l&P2OPIM zE^wUU$Z=R4KPB!=+?4onVq4BN_8D{*ZB2Mp=d{!=7AGeG0~hn%l--p_d@rzxi< z$DK1WrywUW$DGsY`oi_5>nYd$t|r%|u5(>OTn5*d*`H*;o&9q5Djf}mDyR@ zG1=c`eVFxD)-ze&tjSqdWmRWYWDU-8WyNIuoS9H?D1UqYhxsq&|22O>eq;XC`Q!6P z<>%zb%uCHXko)i4=W-v-y*u}g+&|`ClzVD! zac*j^HTV63H=xbFpy00lg@qkOuNQq;_+jCy;-`uWi|xfpC6-)9)>iqClnqC%ErS3yoMg4W2IhyetXaVt{)-^=9glSQ1&sy8PSwEHOd7KZOrk z-sD8qWN>W6knsb?!GQa}VoyQU468e>$etRLYaup13)dycY3$j~)>hv_9gg$5(VoMwebz z?iyOC_W7vY8diIieEjN{8mlQLFwQ3tw|Fc?@fnX0&JBnXp+Q(h$IPMn*#I;!H2|Kb zEDe~~AWz}*gxE|fm#Qxv6k+Um8V47QTa$Sg>Ax^Q@>RuDxa}UNzWN~1M4ljez+V*D zsCz^+o)xPYJeQvk_4S9foUQ+&Z`lOVX}{yNw*-;+HedeXLZjDsqw!+n?-9ne(3p-e zuHPHBA_~j9hQAvgGBg=(GhAi3&`@C*f@o2DrpEXs3&c)p=xbvBz~t$~tGN0R zia0Q|I0Q$zsig#jNLGBA;%%o+?9{4xao6r-b_h8fG72WBsbL50)_Zx>HgR7NUa`_a z+>odp+zkJ-@x~XmyQ|^Dt zjCDCYMK2gZtD>t2V2IO`4>kD~zH`Leya17o?>-V*w(>};nMEjsE|BNgHT+#_Xi*&y+9#@zoq5SF+s`6cZ6&yPFxmXdl%3IE=sd z(ej#w``PZKS;~YqH5{S^J9<=L%H;%-{-nN^v4B@C4g0C88H=sTXUoF;0ruJsM*6xwnsJvw-6~qRtD* z0R_GnsvvAh@*t3__RoRnOP2_Zk#bBw53AmL9WH+Nx^cM4Tg_ zoyOd8ajArMb^zug19H)2k`9QBV!Iq@hdD^BNK+0u6gCr%wtmK`W1aCidvu3Up@ zLJ1D^e59n7S zzpw1Oy)|9pOwXMQE=ewfKfiX%;ZnKXax20ed@ErWNXEcdP)pMWtZQ+*w`QAAx8+s% z4mO31Gh^n2LegyOL`0lMBz5f6cFWJD62eZmTTBS(d@s}4MO24&ixIDL!fTHl^^*Lu z;1zwe-y@vIlI${Ej_Nv#)zM8kP|x8()vamgGPO+#Q`(vX70yYph_e8-6m>UN&XSB% zo$QY%yRouCa@_{y#Du}st)HJy@^-pnX?4IY#iYhcjH!($|4ty|bGoDGc!Ac)&(n$4P+%YM5gi$?lx3lO$7O{IQIpyTyHx8&C zrbt7VO4#AIG8GFhLgIx5M$*^BpZWc`zk-DGFu+kPPWcPJPSTpf9+(dd37LGftq%lw z8V11;ByxRYb@{I!jGDn#xcoT?C@=JVaOEIJ+IU~x9gtQ>z+63o_FY;ck7-Hs?U1S4Jm8^E(Va5M~5|QDF1uIP;Rb7 zZxneMK39A-J7M<}wD7;)lnd@!a{gTeL8CDzC6XVuUN!-L-THX4s zxf6S)-BR&NERgYd=m<`kO#6}k@f`CqI_5^UY38*q|Lv%cE2sX>;2G}n-+7Wa zkxrX|oj<*AE=%Kc5T{A&6nWHUSPqMacE=kg0WVLdSohOqTyaLJ$)OR~-R|-~N(yHS zPYSbkz@j$O)#M@wDsUST)iO8g_W5&%l;I!`{WR53vEJIaGV1nR&$f1alNMih`;s#o zIxJ^5Bq3baxec_8ubhO+`B?+#N+1P}KRMPyOQ6Ym?UMw2cKKIgJcFEcEo%v$?4NE% z(wPkei^wgQ_Z3<2KzQKCC8=dim8oTLyc@Elmhl{%y%o{!wdt?0WS7mt5nM|F{ou=S zDPN8YUH%SrCSCqbzkDf({fd}=RyD}YDon`8hU!*s9qda%+p7;(tVRIqXQah|iNoaM zTg!l#FGODedHOE{F%Dq5C5dHW#f&xvbuPbch$7Qyp>Xc=(XM$2sv`y99w$f*iU4UE z6B?dZh&P}kJwyRk5+@9X7$^}bT+@`>*B&u zR?j)SkG&M(A9^bTVb?jVMVdU9|6;Xu4C_idU1K+3+X?1ezcsjs$16W7ZG*#>f%r%N zpTU0rg5Nzze^+wh=}!4I{FdY2R36JdAN2s^E81jSaq}vgdcM!0>L8Bn=m7rXSdJ5%m5eOP#I5Qdl-x3YI9{ z)0swM$%SboHsn_pGD);8DJ(-y@&`G`LOSosF8{+~taSJlY-3~P)qj)f@a^iq@j<={ zWTt+5f`5BLeDi4ESSRRR=q1toJYWuc{UrRAD%NHGKKvDG@cOUT@Un2Rq5qnP1Cv@6 zGYgyo+rnr*+;+s8_E5vvUF(zK@ZutpbkoE{g(Xy4k86QYX=p@p8MxD4fEo>RsvaCTr!u)LBsCQHL)5u1)Xap4Id86JZmN6_ z>@cEhA1I{&5hJ=4D+#;|!%MD|3moEe`+POtB{5~*lxUFB<}7?sHagqOBMM-pkw;b< z^hwn@t|PT8N>R2h{PLPduaTyXX49nmWF8r6+7KeWLzbx6J*=StjGnF}iw!O^@ePcZ z1hg>RLBfSW2E?@s4)^F!IPHPy}zw?zak0}EocK#L|%RCl0Pg_ z<0$wJ1-@XTQ1H>^M3!#npD?4u@u3qMw}DXavnTpcaLJgtkSQKrGIp+i++0`nJ4<918RmUuyyq{0r%bNHhqt>sB;bV=)Z(#Jfh+P@K7TC5#yr+iN4(T6!CvdHrA$FlkDDnm{G}uXxUt zR$VPVx@*GJS#QO!Iuk?Tz)$3D$jJpRi5cwt31D(}J9R?;P8}5Q%81&bbf=7T zIi7jLG#4e93pC6VhyDa0&?Ks2H#Vee5TS7M-zbDBJ|UI;DEyF8D?&HvgjAnc z{=O8duDMIps*`DEQVBYSGf}1@2j!wn2r+@wai=7OKj?}>Z;Xo5>74|qta+T?0X4s% zKIRUIx6#xEWnrobaM-T;U42!kM?#ba!FKQhew5-2hpGYz->Q36->Q~ge5S0gcs+Zptype!F(-Gy8 z5zV)1#N=ri^(uya`c^dsTZ0H9j?gbhf)6T!{T}*$y}DJkF}JFg|4Fy1x+VT!Q05EQ z)WfX*W_o&>g0XIg(7_PeRYFni|B{{_bekd5Cv82gXaAqm(`yroaZOz|hH#l`EY9+M zxK-8Z>520vNAGMjs1+NMk}1F?lx>O z{L}D?;VHvHL$jgIFv)PbVWc6}U^E<%KbN1AZP#-Y_+BdCbwynX^<)3^iy;&`qSvP=vSkc zMBfd?you4V(T3=s?7QvT?H}4-wLfH^ZNJ5Sjr~Hq+dk6nvODcZqkfEPi~2{@8&OY3 zJsNda)E!Y%qOOga5OqdWMN~mldQ@!GF55@8Rkqh`_t|FI>TEaIYHb(VhS^eWX1Htp zCsg!akNqp$wN8$`G4dnF_UAiiMbp~e5b{n9MeB0 zGsYGZa{T1j>Uhubw&OL&bB@0{7C7cQu6A7JnBX|maVpgM20PLnu@2dBY2sOlrzFND zN{M?Cwk51jSe5X6!V?MiC(KK@11?~%ffLxWguI00gs6n0@jt)~>=*GHx5nQa?~9)kKPCRs`0??l$DbS@6aRBuFm7Aii*a|wO^>?Fm=U2{La+SjS#N;HI{4&#eJFf#W^ww@ZassO zL4C$i%!2#qO(W)~B3#93!HmcZ_|$IAJx#>2 zXgsyl^BSIe%_W80-3XaznRyRyxx`o7jf=&v(KE!TSAA8sz$KxkNMr~`@nY7Q>)}?g zdllVF%_n=A3EeQOvzen|p=MX*5=dXh(?^G;qeEjzTIe8YVdiKfuI8Ef)NVAU1XqJb zaTOhhBh$!{Kx7)?G})kxYefiJgc0lU*~%<-&wY*u=FGy46EM|X% zyq$>R+-7TRa2Pz`$ysF;s0`fSGN`_s6?$D#mm!9h!5K{OEjv3zzvqU64&Sohhj6L2 z?EDZ(SLvJ~6_E3ccFVz1u(#A{ti5|49kwqDRoCz;>3aH}nhnh3D~BV59xPWxfJqT5 zGeY#u>Sb{yJWhQO40LrxHwGYsXcz+r$yT?|`7B=*c&VE>Eq1D&(=`eaYT9@b*%W3E zR_5devybv4MV62oY8m`;ZlAXX907!@dsRRuJ#d+~#2L^a;y;q5=Bb`2qM034awy~< z+-EE2Xsw8Hb@@tjnu%3dbLOC^*>Tvt@kmQD-ml?q~>BrA|bk^h*Z4yk|-|&c|Hd zvqP0Yduw{Q@o>-A?WFm=>?C~G?<7>F+ez^zGB3ow-beddcseeJL<#W)XUieaK->u^ zN>XvSmhi_#-nxjJ6eyPQLgtX?S}KGZurm=WN(Ev_@f1xbs%lLfKx(tjd&gF|KI)@( zIk(<2kjpz=%VutEBism;{^P8yo^}6QCr`EBX zM{Z^6=u(VD`6cN#Dtd{2Fw=_UEQa~R0L6OgZq@~a-;8N#ngPJrh!C77S*w~tF*A2J zHoRo7PvLz-`92*kJ- zl2OIt_MN@m5nv6gR+d8#*V^I)qK=~FQ2i^R`jqm9b3af_o9b4broFwYoUr5K_oe~oBe*Hirx6la zqvMWb{3EYenE!9)ya2sdfVKCo@P2W~*90VK6l%54iRg9antIHR`?r{#V5JyeH|_u5 zW_)wHR-0>>bLVEMnzY`a8IIoxw3L{St*Xm?w21$7tJ|&ugXTU4`Nitx*hnG62FD)c zbHe4HTdq3Gui0u`ol>n+07pRC5Xjm5V`u4>p^A58mbt0hJo9CE5oS;ag?JxPbDau; zMpoA*5-m&&`-K~@>X^3B_vSm=9bQ=+%IF63P}mD`&5=Ix@?PNYspYQ2(rh*A$C zbtY0lameo_qMaro)t2OSH+mN~D2W-An1;l;-kLk16F*uOkb+5VR&}H(jV0g*^C?Ii z*XsVWN^6;a3Ec=A8=9rMbD94da`I4lNV#^=d0#^#;*;ilEu-!F>Uh!5A3Z#L?P za$`$X-pXhQ^XW#Pv}2a4D78wKJZCpGtb_)q&%N@%CU|9%CB|Q4>U0b?>VA$lfV*RL z9B~n>cCc7ms}jl{R#BhBgL_=@}oH&|%xSd5oU;Bw7BLM{1>OMDFAdmP(r8O-9pu0#^mO)}?REPg` z8+oU?k^4YqJ0nni9Ht+Icd#lhAzOBPu1in2Q1-uHM5B_qk0Gzq?r!Vkl{L42#DeC9vvcP zBMlQmhdiZ{XjaLp;F93u;3ku1zJ^l4g{rL+kG)MC30w~&s|7Kr_cxe)?Ll}JV+!no ztoAnB$D*Nz;O~wxm3`AMF_oCW@J0W|xYoGTxEOJmW*GMyx(pv178zz4E;WpS8*{7S zC%F?gyYI_S%8$y8uuS@$oGjbqAEa+2zw}p#2xm!GOXX6k^e^ig>nql$t<$UrVV670 zay9H^#z}uZ>Wfflpgv^Yj9~TjxEo{1N%H14|K$dg+M#VCUoG4GGcn^ zBApPiYM|0hW+#Whl>mC1Ens{5OKEfy%81i>nu=UoxpF|8L9F5QIMfr-X|1u|o&pal z)`82ZuYN>d>FBcpcK#>$M5o|-ADwzw#(@Il!R23Du8`dAfWRq|C!uAg>hpYv}{&HR(&#ua_Zc z2)-xeH2emF=jmlCWH?II5a(qy)!+|Ebs(4~e0p)OQ{siYDHkt_i(AjXT>j6nT~t#9 zSc`t4zALW4M1&zGk(n)zsv}clWa28+fe#@WrKWkff#9VumK_H8yQqvd5lw2TZJf)zT{yHz`L zvx2JUAk@MgJPAkd!h1SwH{MJmV+}ZJSKY2|3Ds|I9mZ_Xe0w4zCS<5ZHt33Mgb(vR zSY9!c$So$0jR`-D8-!cR%`C`0;CX$h{$nx7uth)~QMBi<*LvM++G^MII&5yCzz6K? zJa`yHnxROIe zQ31;$Dk36g7(_%25t7XR`F2&Hpw7xEf9ukh6flJk%AzKi1_6!@Ec_tWPB9S)3SVdw!sRXmdr($C`!nC8XS&8gKJk`o9 zD^syDTl`8eJuF}Gp-fgRvNl=KBJ`8xBg;FMm$2KZvCOmFVY$jO%yOvo z8)H5SX6@Pa4Yb!{KH8tP__`s!V_S)CTag96SI*x6U z0-K0UVwus3ECa5%Ivrq872kD6+VT52XW?>^w% zS&cUq;9$^=4gj|z816U@aahH-JW+!r@8WK+p zHA69j<+vdQxWL1uUaK6}DxYqJ)f>4LrU9_c$_**nrRpXA*|ZfovZhkw{s-F-r7zKg zA2qQKMSoEjgg5mx@Nm{`ttqmXpBh*iSAJ^5LI)j3(t@cqTbKLxG%g-GEw0!a48ow- zo52PqZdP%mMgmRY(nyXghMo_MYUDN5^22rVBalxe-WOfBVzzt%`;jY|NWWKp9^ciNLaXM$BBWrK zU?(jAyf?*{yWwWK-{e7j%B)sYpbFg$NzDlKHNm#ab=fp0qm)(5qZ!=*;zRMT_?)td z9bE{^bZDOXJ&x`^CSs(Z-Oa4sE#zU7wf!_}`zhA0gRBR>t&k!^MIJ9tB{yjmx}hBx%dOLa22Ao~j_tOgXe{5klp83-)szcYXj z{Wq#wtNSjo2maC$cwNdVd%oBnc&H`t4`g^6^O?xeDj~-FmcR;tPoaA{w2-A6d*J34 z=>OKhnSr~(Mxf&O8u?p%G&NJWEikbqcuNf&w744%2}pKJa9WN05+EN7NRO7FTqA!B z$W{SKZV3*7&s0D*2#C}YJf{YRwcQOX1>|UR5N+52$Pxyz1ionY_t4P=ZunHXSRWPw zI}mEf(Xfz@)sSlWL|6zmQ)-$cVIkYp5Z|$|0PF-rl4?0TC%WRb<#e!XdD*e{cs+hPm0oSS*^w^L zKK}wU@XxLC316LUy94s@HS*D&`>W+2Yvd#JdtA&hxW2`e^7>3KO-+I4#6<@??878E zTY%^`51PN(cuc`APt&OB;*;GjIk6ag+Pkx{El4C61!9~9FXG9N0)vVyk;h%gh9w3d zzaAtY=mhs=SUp)j9eGTTzg*3YkFq#_SE_=Ss?Z~>3Jy$!hfTrG{v?X9jv|~N7Qr0+ zlIu417_!_Xw?a9s>uj{WwP#4eYR&USmV6kCD)P*b59%``yymC}i|TH;s0kIP11iPl z5#0^L2uJ`ng|NhLF$JU;*VYniaA-!|3Rx1o-b$}Y?DaN!h1de1x6^A1UXeT%iZoInMLi$Wl~NqLQlhsQ_07uO zc=vexuMj=l0&#dwMje*y#g`E5t~??%a|ZCWgFij~vPEJsp=k>)D>?ts4A&HU5f-GM zPqKq2)s0NFT$H>vECPkU7@5lko=c$ZTyPp!YQeK|H{2ST%K@HCi#``?z1(b;%1Ifi zxE~0mSu{o8LU%(qeO5LSDrVf+Uqq8Cj;z5Y94)8($p}s%%5QQ0)4GIqGh~kR&0v#A z>~459gn8dxXK(Fi!lD{l8|oKyv9EflJ%u3fe#r8+fQ={cJQjHOi(+iIPTLSK)cs>az&9zT`C-`iACD8fA17k7wg zoWMNK;>Gw4;LOCa>Lrl^W$lhkv{0^SJz*;Ske(%}q3pD(PZ`MB^nf!pnzD(~Xab8yqr=aq?J{hy&`(aj6|BTz0)nm}C~VPSCyq%Feh+9;r~WW& z{b80QAmW%*x=Gh9XDB&(w@?DnEp#O1T~m2vlE;77FopYF>jp1pIVkY9VVG3I89D~; zhcY^fhtYD`6wWd{j{OciV}PdMCIGC_+VhzS0>L0bsNhrx08$Hp!t$q@tV2!awOJEk zNiTxw&*Xw;n81t^Ic=t#{K%=a&73Byx6X8$wYTeEoXW)>R=;Y3@rlOX5K_@l8-FRH zS|Rx$OxEPchf2R;Iq@QF78>F)jPp%7MX9$oZHN|#5wCGLdG$FxT#5a#9T#H5&DtUq zm}KUVnaZ*R8I!V0K}dpPa{0jX9jk0@Eg7bb{KGU*8Zb~^iD-;Q$ate_1>((FjmYg7 z$xHK^)X~n|D<91Y1?o&SmB(7)hXj;nj!tQ>MwAeh(%y=Q1WLn3uIzgg$oK&e_VBVZo??kIHj{aMi&j^X?s zM$p+o1DzdUo;HZiK8h$e1fxUp{v7!LqqBpey#IjCG^yYGoU)^sIR>}NfwiZZL@CGg zca5MqScnOqr#PAN7}XR*&@Bd@SgBN|uK!J8xs%IhK`3vszXKgrX><0>Oga%KGR7Z^ zn1Qo#w1`5eg+&xQ-c-sae8*d?D6;a~S!Hj?Qt5Vv8DcYgrtRQS%a@k-EpI>sfeiWG zXPImnZs}%u-TbWi&*s@M;Fn|WW_FtYWqJ{J#|t3vn2(#|-li65zqCVo4Q9jdm*z;* zqyniOgdg`iK6Jd}*y32@SmgKvbd|<920OYs;$bxWsQp9x8}>E!<@P)57uap~M(q1v zv^@;nq=mK;+XXNc-os|HowR;v{k!!^>wK`{ueVNvUQ!3E+j`Ww)A^3`S?6-+9Op#m zFlT>fcc;_&eeAB-EwRtW*2XT5Es4D@b{vd?w~KYfeirjm%#9GBoE+0TCN;(tV~*+K za=40I=fk9v_+u=OLJQWcsv0JxP|co8*>eedKEj?4vFCF3e2hI;vgZo+T*IEL=t&X| z5%PJ1Rr$QC4b3V6WQEwdtxi4-8+xbk?-%%WYr;l%Gp@j}7vG%Ni}5y(71lbXduZcC zvs<%rDp3XYjzU^(It&ADwnNkB{>L^nGig13i|g?p9j40hDM6YgSFC4b`}N0PiSrB8 z)QNge=;FPIVxTR=^)qVYr!g)M_!j4>6%jG8&CT|;uiR>Z4O(x}VSc5kSV5%iK$9+4 zQF*O~F}~alrRX9PnO*Vtn{{#9ssU^Uimr&Lfz>NFc#Cj-*?>z-Q3GESWgeLVn!4p< z&MQXuG?5S^O%f}iMA8IhBQAJ;3|N5I8HUawQXz*;vGVJ!wb z^~7Ff-<6l0mWr=)g-WjW_)Wvf_&`@Tta6}vfQ=Ay2~yQET-zhW-6BXxObvlAtdR?B zo%}7aXX&yQtmhU*2;~BjVwsp28CzTTz_Mi*yoyBhbV@KSF>C`0TW`aG1l^W2x|ogY z%~DI?5XAPsm5P6F%goq<#tv7u?6**DZbofv5f#uHpuG{Xa&aPFSFUpeyR{~a&i#@U zNQK$;xZ$*t>{ZVwuxFr}*~EpYTH5M+Y)PxPYCTK` zuWM$Y8i1++dIq4UU`@EHwYHF16DDIssRGR?RxBBTMJ89Mcp`D{Soi1F%O7LE)&Bmf z=^@{YkD*CNH;Os+I3hxG?&Hd`kFBNO&@)hlIX&Q(8r@=lk$ zyTr~+5O@?#3u+m(Js?4_ZN^S!j&Kx+xo~n=><%DxL%iOg?JINkPG8u8N!VcH>{j|z zY($Z2e@mgiP(-!% zWrKDTnEnl%B8>fZShv2@)~(;#nnbuqAEvHbwN(A(Sht2mR6uKh_U7@AjEKdqt>M}Z zHXtyRfLsdpWV;zI z4{Hg0%1q?TpZkhF^Hx38;(csQ3uC{(>nqysty%@Z%9hZaI^7ay39ON@qV=nh|IP5y zJ!^L`<$n1i-(LM%W*=91%39ih2Nt&3ylB2ooU%13>jZm6&0s4@T_Gafk?CXVysQNxIO+r+ z(V-Xe2|l7ji-)kzJNw>jV-{aeRJHC5g90?w)+~;S{+7|nXYoa0v-oe!LN|+7L&^oi z4tMYTuv#zgpn054>pSV~1HtH5?+`Ac5pfo#-Y8E+ca8BlHPJU1-B-usyY0|(+red+ z8Zpw)V;WydyhYzfVway4@`LjPs=bGCa#6Hk?T?;G@*Yp{L9^3W^ntf(HZ+g!3^Ba# z@D;u5#r>xDv0LG9c)M=Un1eHGklAu<5zRr8=|;w|vwF2k_K|)f6tW-WtIywJ#{TNG zYj^RlQN2}$_N1>~jc*{JdijK;OuUDwryANtlD*bX)H{sF#5dVO!XC`_1dd_OXb223 zY>Fz&aD(KiC_4f3hWW-V$|)+i=?n#<3I^f^!`LUEnD{u(&AWk{E3T}~cS{mGhygpw zeN3B3D;dNP^cyht->Nujy%u`|+9T<^?LQhbcl?MTk!I-)C|H7Cl|Np_5 zx%7-<2I^DXwV1Z8|6OB7Pj7*Jbiw-nb_iYmKhTa~dm2#S7)2jYhhUKDLr5KOu{>-k zw%l$hw2ZX$wpigEafkU8b1giT%rH+dH=EuwEr(=rfhip_#h=3`;yN%kr%ERrpE#B~ z<~iC-(c8w_+ZQxjJTCO!t_CnC}ukhruL&!V3vcCET8HRl1lMW`nkoa)o{KUHwZ%Vv6abRL=g2HE2 zei^^@RvT>tsQsDRC+el*79v-3x+q@ohvT@I)gZs72~&s>=-a+;Ix~ zk`ro0A~j|CdAF()cI-V9$cC$(>86mn6QpM-n`lAob~b8=$gczP(-{}fM1HngVL_W` z86}ideSLdEn{Md`_E|rkf0Ss2p_k1qp_io=-^zY1%!m^ZqFQkZz1;h>$KPv&!lmgP z!KLx|my8fc5wUaf_`gyhWt|fVZCs*zIc|YpiIukWu?+AzaF1RbQ~9>}z)yi#(}2)T z$pM?G^5xzwc=TzJxWq1zNR5XOZx0-lDiB&O1;5GxZ7eX!@OE3-YAQ2L3j9kVUp{Y3 zJ_H0_#U1KlrFdm4$J7CC7D*G#mzcYnr(up74PA%_&9lrHO_fKunjqQo6+H!(Umhx# zF;YPoh6yHnR6wY38B8TZnea~N4+<^~A`0##F%JpZl(`sxbkYB+ln#)JuY1 z7ym;Gg4wI{s&ee3s!FYNR@~+pQf2YvRe`u6db~4a&#Qt+zI*mE-`0=z$J*~)wrch= zYs{M2%gS?SFN>M;wlD3@WxF!(T-M5>^pwgsCVbQ&r2YO2Swn#XnNyifDATvKrxXH6 zDF7AD@a^68P5t7DRVInvd|PdIo4t!`9-VuMELDo*f7T|wD zrf8^d->z>e-l%!#ZgXjGdiNpQyj=}2%O;9oFciT7H4i~)19uaM{!UgSav5m?BN3(y zd`(Jf-&a&gR8GkP;u|>ePV_YeO_xw06_F!1&pnWJ1I-= zrhz`#9HSc5vA!c1`i?j619dkIWgAjVw^!u$^GW3;R(FHHm1Van?LqntQDgBB&EOqD zIy|h6r)FCMOE5h1wPv51eO&DXO3ctmRe+rv%13lJ3BIuYdt;!FHzZbk1IH8{v_k#L zQnoV6nbFLfR8iK9b|X6bMs&)OdJm01$@3rRgDyMW^o$9qtt|3o-@Yv9b~mhUwj5*8 z(36Dd*+(jl-fb>&H~iFkg5K8bt+31wbf^1rGmx_CnF}`|>+}tyiz!F1<4s!^~IJ?YALrZQZ z@vc{Va#M~yw+b{jP3u>GPNH)6o+ekV9S;dp_u5f-Ca%rJ6SjKoYqP7oX+uc#6nbH6 zN8)36RXt`f@HWsQdfvGV+-m#mWoZ7c)=;(#S;FyEwOmK|>i3e(hfT4ze?Z<*n;%Is zR~hDzi-MIw*g_vA_|pn=1Q&;@2`QtuPv}XiW-qpe8;1btoR-M(dPz5|5s1jo?QE+c zBUiB!Y%m4>V2KcQB};}`jbXsPa$}C{hRKhokY}q@(reYv{TLh2u3rv}4+V=qXbJ!i+>OvwwNmI z0p%|GQ*6BsY@2b)vKNXOuz6@qgK-JdaQkt27A;M_Sw_c2ser7w(Zi+=s%2z?q0pH5 z7hZWU?9Pz}v+w|@uMje?Xl<}yNbD!eA1bAI=Nt|r0lv9FH~xfD!mwHr9jh~d)q*gr zj;wtNp8S|x;3+XQ&JNGhTMT%9hG@IEeOMI*m4fT0kY~QWgDS^BR8tQK4Xdpt*MdPC ztC&6r*D{-(kh@UCqjTmQMi1FSY($a8$)8(|jnQ|XVW3HYN1FLmegxt;yDW8<=PeIG zNA^;jReM^}a9aHZzKh>6zhGVoubQ*Wx!4QFz@z5Jrq@hQnW{}Un4QC8ymqrOUSUgR?pyQ%s& zo}yLvQmgJs5?{B_*Uie;bo!cx7Ec|eY>%TI-nje#vs0=UBA{bNrdg5kKm+u*C>O$Z zL)FK0)1U6L52z zBTi%m>WY3-6EVE>wy!?1ybS5RCoPYHxi!l&1rE;#STZarP^)h=e+P%>FT&dRgP1m^ z!4+>Om=yZKv=7X#S4>ZuZo;&Y18-qnO^NUh_O$e8#`2OeZFCn~5oP|UJTegdvr|W2 zbeqc8R~`^7iy<2QHxO={O;U`FZsHB_&s^!0j*>a~Wp;@BRX zsa`lfvhd$kui0(Z%i~`V(Sw=-AsTR8onZ;wk7*MEd_)DSRTh+zPI@0=y}FJYR)XjR z@!=wY4ZN3MUynkp@*1X)4POOT|zm zi>Luc%42F8&Im$l)ie!K@p;B-BT;QcBCVhe=ZeY--2(oNaPdvqQ8zx$y3xS@L=Ddn zN^>6tKgJVBFgtN@!0}K*nW)N2OH522VUMzwmD5=v9UbpC#fWl{4#8qYt1R0SetIrpk@d^pnIc;P z7n{lUYE~o351<&@;^7D>6imr71Y=_`{i(pmCi4BqPeBw>*&wTPQK;=jvP0#zWLTZA zC~FEy3n0eaYJ%3vY-p_%Lu=(^dD%&(SaK4IB_~a!)f9rV$w_B%9G>?V+wqKk;Q!p6 z$zllT)t56K4xIevieX?2c5yToI^B~7_7dv~$y`~~q@&m$TR^dw z@;<)&ch~;v$l8Z7dN>)kT7Iy6ZTXjFGngNbTBMXb23Rx~>0qz2ow`o_77&Rpz=GT0(iQzOIln=-lJn>fGSm z8~bkTW3k@Yg|Rop_KEEf>x^xT`8wv`F{P8yMM|5(yNY!NZndc&ojEwRzS2IjmZ}qjgxXDQ-ZEzH4)F zr*Tz1I?y3C{G+8Z7ca$exV{mfRbY5fpYmGO*^`#v1^>>uz#lBybluF=1bNXZS+OK}^ua+mkZM_4`lL?mYmITW|^TXyc z^Udatm~i%)cEkSiGp2`4x0z;`#+Z7-J=-4Xb!nw^Gdw=f-{nP9{mDsLpTD1Y4Hb_s zi=@3v3GXKkKFC6RN66rtorj6Zg3{A;;YPAhXfq64lWntR)#W!nz!XY_vK@0m&p#vN zOIV)@i4ck%5j@?p6RwCL=y`1~TExp2UPZ_BzeA)Ia@)MH$E=jUr5@&QE6a}C%dC~R zA7>^gYVxPQBoW7L((#WDEZPcD)jPx)WlGcoj#d@g=SPo&`amLem2L9LAiW+(rF?an zmi(!CIdbDdYen6)z532+%$b8V$vfu+jC(t0SVXrS6W#X5|9ZFO%n9$TSag<8J_ZzuE`v6id|c_WbaSKWRnsEVjj;WE z0jxg1AuWP{$q8TixZK%$3H%=uy%kug9a@0c$}uf$vh8k{27Of z%OQBSc5t3J=v5v`Bu!{{!@v*(hDz-@*@N@SY%oH-!@PP(p39z{S8}O84qmH;DIr>y zA*9oX40_fthDgXKNkE5_pEmQ>rKnfTRSAL-aard6w1jSm{)u` zVH#3wOfK1JQst6)brrc}G$53nofpa;lE(uSadM}r#0hzrJZPiB77ouBGTf`Pv0@KF zA8~G46VBRB#wqpUm+#QI+u&Cex8v$L8yDN`1b#|$Nsh2pZ2VFfy=h_0S@7axjQ`|i zzfGAniyPT@HT$KqPl|B*rSD(FH~mul)9kyN{nB@{_@-ZqA0p-;G*vMldFjK;J}9P% zwW^x^(zjWB(=UBH#5es?PBHA;%YNzm1m%1jY{y1#(FvMbCE$WKEO{Eo1tIeS0K`n}nUrs~(R4C}XI6)yWai7X* zsop*qlvfetj0G?BBXDL9g+Db7akB+=SNQ< zCz2OQ#qD4fr8qX&4%xv)g&RNE9XVL$0kG{}@dRa^s$BM!*Na7-4`4jBI)|5bTn@zUfp4nqJ1#?B$tp+-CcG(y@# z!SW#^mUSQ%%ZGgOp&a>0*}K64OtrqEM$5lp`o~*jsK#$VY!Gf(xzrL_T;3%l2l`0o zOB0yn=rn0CJbjF`(|@1Xu)E}w1HTz&gIzycT>ak1mRBv0S-jZ)PP1fL&aos}noavn z+u$hT8q;Ms^}PbY+!az4+(S%~JknvuXO1Tv)sEX86JXvW(a~)G4lamawm)nyhcx_P zy9d(nKiIa~{%*SlcD9pkUs!L~M4Ke~qy28~sEEx)$xLo+E6UCylsy#A&9WAG{G;@H z2FM|#FuLWTy3N4}wmG24;hTeN^H}REk7N+D410rOI3$EKGTf4})g9wsstnO)A@^Fo zS?Fq8eLXe{GxIPyAC>$~hW*0re0%T$nuUCx#}5a*$N?KvfS&_iRspYaz-AS&l>^>X z0d*X(4L^~4j+uFDug9Ka2JJa=XXIfL{5MnPs2AIg6Z&ljb%e6*K-b{Nj%~;F*mh8W zvh9FvKS=Ifk8Q_7*!;!5gYpiXZe_5V{Hc%%+*5hlGWVKY-wX&nyW2+a)t4>urCquR zt0r!4y~|FRf|D8eN`S9e6#R~TOvT6Lx;U(ZD?;0)vSgMwl~?S5z2zJ8f{tJkULL?s z?{*X0=>_g>T|E;UpXb6wQ`(w)ghpiH!iawCBw?(_+hwh0R7mcM~N*lT9(YAs-JWj+X^zK@~5#3e2%p<@+f-EVz-IJv(gnGaT@X!W6cz;@{Pf85toQp`?fi_w6i);A&z}M zPINn50nlwfX}Bu;&wZyj>ox!m$vdVmOl+;8Sw(C_#oURFD4%lFjVMhn;5V`7%slKT z?bqWeHlq7}S$(at5v@ED!_+iM(6(YL^(2>aXr=+4>1)ro`MM~C67`5Aq6ng3f)6?k z+#$@9rLK=u>CNJfEJ*1_otHgD5{h{Te@|_1*xIUfz}4@4X!(a_v8Au&L#Rq*njbLD zG2LQ%6Jj>EK`kN=NAE-SPr$ZbZ+`--XN&Dy+dpkj+2-1Au#L8zW9uo_OvtU_$r3oX8aO{bz$el`(D5A2w-!rB`hz41;A31XylhL!9H4&jy# z#KYy1$ac%#Y11=JQ*D_^`M5L)OYiY_L}Jb?+~P2%nT0erMNRWMV=!(RYDlxJLdr~9 zTq(ghtjqq+++yZpxN`C3CR1kRvZ;cwg~tcbi?WZ=lQ6)-*e&Q3ANsq|!H}PITk4>! z^pLsIe7X62^DvmRJ8JsQv=toPB@ls|U^>rqj>&D>C)Go8wg&$6M#7(-{*R46@@`m$ zGh%B9di-nzs$%8jqT?Y_$4Lhz!FX@^n2cgrNawH6@$$}TmBZ82&9Ua3EZs%o@(a!Z zCDS2B5k62XdQt|YMIi-yLEpk6+w+WZpj5I{j+((5KrnYn+`?$!k3xxIqx7hB zmvphzQEd|1!Ld@o7YPMw{E0N)$R79xDcHo)MMUUD z5ma5@Ha+%b+jyp9#en$Is=xcu%& z7t`UZmVbd=EG(oo@-NkL69xfKC$2ziqb7C$1Kwx-9-el@Nd3EZr}^ z3Ps?pc~At-;9Ec7=L^uGJv7H!s~ThC>OO%#(d0dlPrpd1YOE?uqx*}#h;Utu>n*5o z(TvXH`yAP>d~?aGQDEj^H{Vy4r|omo*)gZL$#*iCQ29Y(&{_FGM$lII0rn-z;ky+p z$=zTsTcO2imb`OLvF7eWleu9}JQWYkXs(dhh3=Bz$Y1>S4w%rS|8`2BNP9WgJ%f4C z7DDWOVzFcC9m|PT^)^Shq%gZSRv_DG!Gz1BXbPPe(*BMTQOtgkMhNpWh!72csp`AU z!QLX$6VUxs`IY$a_>;!6`=#2yn&@2SRGI8)P^P_CvDi0~Dm*-Tg)@I!h2c;fbvbOP zFeDfFygS;aRG1>64qAor;qjl_c73he?i+7?x((P5+}6Mjf;Y;{)C{+NdySxMH5t!_%pUr$z7Ks^3=O-$=u#gH~aD zzy^8S6~0NW@OtXub8prK)u3apyuHK%}ldMqS+f40Ca{( zg0(ZEjx=$?1}oaL0-dKf3IG>dIBl4NB_a$RtDr8@c#_D3p(QMnHX{PHVG%w4ZDDl4 z-1%Y;S8?QKo5$Z@rQBO+sNEcWsC^O9G+dV|RuT-$g{jcrowa&LcsH8|iU^9>+r=$nK&CxB=ZA=t>q{c)RDKfKsvBS5U(aNLa5smEEkz-#S*A-EJ{cm&3B`={EaU>uK$c zt+Uj-K%PQ3>;qEOOGKS~+%aFx@>K1TSh(L)})5Zp&!1ICPd`;t&OMXYhfY zin3oVWw0C>bZ;|*4ZM0D|D`mO>IN@^pz+vAXtZJpY;R=&wNKjfK+4{<8|JOOZk~qo zbH^!_??c_!8yLuJvuq91+MB3Izc%m-@)|ZD>c3I&buW$UduUuY>Za9Gxb}jIahr7z z^Ba=Xp?x;U+jVE@S4CF9~Dq7$`RM9$Gc z>117oRNSRJ_dp&lk#+exwL~ZD5JuNUkwxJ|_Q!ES*totYtS{}6@e-9`LWr-94Z6j5 zEqyPKjjWW`c#T}EBATSdVOFvrrZzIJe_VdtlsGIT3KHexDiS-1I%$qn6fAzD$Kqog zi?=3J0EJP9RVzQ85WmE#iABbLF0Nt+d2)6o9WwsR%l%Jt7tU2 ze~NdzJGpgeTzD)R8U^1(LF2(FXiQ6DJ)9SYM&2C)jd|f{+)QZn|1LE0LIfIl8EvES zpo+#Q$)aFNv=x~8E5p?0wlF0kDwukgFtc65)L#1Db5@vo_g68sJz;agCkY1JjxIA8-FmrkN*(;VHO)W}cILu-!#-W(-HtEHT#h5|Z}(MkKMR zO%%YUHeNs*D8hXBtuh}P6B*}2(L~_qeTJWJqvEIXfQYA{$LT~%Vw~!Hm`>jvAg3?Z zGlPXtZ9Z)MRrK7EbVJhoq{T@(^kjb@1wBHOS3%FADCn7zO6alb&~sXc9&0#y4ikDB zeh+#?0SrC7fXJTEma9VwdW?yT=n+i>dQ9ija+P+zeov|`S0bK*o<4+*-WqyF()aMQ zLQlW*+uF=3%auFDoRXfBnW96_vS1YSL`-wvMM2L`?Fc<$CSjvT%yDe=h$&7PJ?|2F zw*MaVhyoaT&N#tg^n9nF$C${79&L6zkD+H&8|aCc+z!)Z)}T#pr|7%stR}Y$eic1` zOI@A%O6ohQI`lLJqM#=+d~$1uf}V%k6M7PLqvr?R=t&G8J?n|a)}4XI+T0I{0vLLD z0d0?-1_eFFL`L+8CSvql%+Pan8|V@7l+kkwwd7`P^xR9|_ne_++T?coucGIow7j%w zX*1Jw=((aH3VJfa(G!S*oYJ-mRn z(GyV6V@za34{u@#&~q0%QW$qo_4X^(gwN3$4 ziBav4f;Yor9&zG){9BcN?W>+GU2|Ba)wy@EqveC0>g>;!nu0gb4>YO}N$44@dA2lo zv9dcNJnlII9&sba*$3i0iNulh7R#)C)!{sZ3X-dUb7quVOq(1=Xy1kt8V^;->o8TL zK_jnI^xbrZYAK!S@wY@ELF+|j?W|6JApNoQr_*(#|H^}E?`b}&lo#-eAtFc z!=)#pWky_n+39enlbx)c*;Ek&(E*nnQ#=RSa}g<5^_dT&j=~b~Ay@)FsMK#dap|W; zzu+LgNn3nj$P7o60sFw?3q`BbDc24#7_ZAht3B`%%0?}+5BBr;`$S};MZ=pI_AJ3+ zBxpc_tg}sU6bX(X!KkxHAnM(R>fQSco(G735A9g+#F_-vX}71CZpCG!Nt#UtqyXSn z^q|mLniK}GNM+{WXg$apTGMB~z+jIk_yTt?j8534>yNNz{x%Fg{l&7x@+ZqJmOQ9P zCtGZmBT$mw1$*WXz|hlm<|%O7*vFg!8*%$g*u0w7nrck*Om{%_tG($LsT$n+JY3g1 zVcq;I$8N_fj&+Wejw;8Mjtd-v9Nio-jwbsT_P6aD?W^n$*vss<*{`x+2wC!T?Op8- z`ytyWwr#e5Ku)d3c8BdUNUHU;b%1j9QR_kL4(l505^J&bChH{YXloYSx_{-`?%L#9 z4+ZOT*BsXj*H~AkE74_#CG_LYH=KWk9rSXzb-dhJ;2h%|>Wp(boTp;Hj@=ns7yCl& zpJU5o?~T1PR*oGQ+c`ElHYT<;W>?I@m?Bt2Kb>$*!sQ7$34;=TbkBER;?8vsaW9Ww z8ebfLOMKt>PvW-3RmaVZyDe^S%6%!*QwmbXq^wI`nS5XJy~#Pr-zIHITA#EkDK;sT z_-*3niBBYsOH50&B`#_|zx{RXr?&6VerwwDw8d!)(hjxzqTSYZ{&w@)b#M1eYD4P2 z)cn-ZsohgMrdD>E*Xf#0mv_qO6inZfzCHc*^h?w8(?_Rgr90D4bUe^;N5_A3e6Hid zj@Nc9>e!=WdPk{aV~0&0uIn(YLuQB09WLwIy=!9Ekmso9YtMGi>z-Af$2?0scX(!b zuJq)3hIsmT;yo76H(hphd9%ykx-9H+NtX#-`gTe0lGx=)=L4M=b^c@L;hlSR?$Vh{ zT(G$SqCdomg(~oPB37{Wwd+6TcvyAB&7A%AktV`xnAkQLuF15kHnHj|ncp&Axle$> z7I(vaA)#NZgcpa0&x{N&4-X&D!Z*V3*j=!-FH6~=%8n!n;hPlao8j~oCBob)bL%1W zl0tJ5x!y`>j+2SuMT5_TB49N5Rc*j;)!@FOIM^MnndGj8!)YZG4cH?ZFlx;4T1+Ug z(>~1KheWHW`kJyzF=oR^C^H%lu`k*NGNUW${yZg)knp-|CiE1xIfJQT-C-F=P#7g8 zlcv5RXox`6M8zNCCWl40j;H8xYDa~KZe^iPHIzw~jhi6hZbXHJr}!I`$Ei|WidWQh zetuXAmdpOpMp*A~m=4Lqd8ZKniVqSS5}3eX34>me zjsekg&S!{*_`GwgD1ox-BS7IkA; z2AadckvjmTL3Pm07sLo@?fd2A@O*U`pK`sZM%%QjMqvVk6-Oi!?l810P!kCzmZDS; z;QzdWBHuH0r5c4*P+zy&_c~GYVnl!eTjyVJ|{cs~{pK61=GGn9cqYSK0L4V|{UryC$nof<4I3XGCQ#)Af>fWZoO<*9C^c$6(v zj;P9@QHzQRkDl=>(eu>kTFr>;BWq!e0!vn5G>ZFp&=YERIcr*CW=PDyH zG$$>}=*obN-O6olHAfw8USUBRZVb5ojzwr|3ceEdWb~yoL@otTHwEiTyG&XYMhUv0 zxnV(UmQW@&I}5TKCI=<_wZT*gWzwS#%twkV1og5i6;Y3BU8GArmW@)<< zNK31$b7C?j*E&zhcFRD0wy>80{Q$M|owd)6(U;+@9h#*7W@U~*&bl%gY$Y2XYCa6M zTR-TShDjVqn=7CQlP-L-ubT*1LIo;1DV(MTUrF^>XsUJ=3Q>!7)=r@^^_`oVX{_vR zkhE2Yx3hNcx%gD`Q2J?KAALWGdBjp+%{OfvyT0Fxl$+RTm^=aoWgJ_?lNkSuN(G=XA8l zU|oRnNLbocVK7~xmqv6j%ff?x(q*A^`efF9TBnCMdL+sKF|nar`!;5i@TyLuRYn^& ztehu@8DZ}YHNqOBz#fePD-DN5TdYDTQomR^xnLEmHH@k>SV+f%RgTU|!oIzjj-0hS zXfEO{d=e|8XdyK8DspSaOXgC0y&b<0=NEg%)ivX7Q0=iTWUMOk>eG^GsZfO90@f8!`g z(*L0+N14UE$v1)gL=c849v~c8i4a&dC{$0KJc8f>u`)R1D?6Poz%2&bd!m_lQ{|DH z@0Sz9H@ZYlIG-<9ThBgdVdZRfMY^*_?(hDU`UlP*CyDO@%0@OQ(n^%>O=}vixWV+zi+nM4T_rwC*e7FBz%WaWoLDj_S_tXp!YfQk zYEDsHNrH$mglCn68VbmLtkTf)VYdGkvT#W3JuHrXP%q;M*9|nOI}Nnx0GQkt3Fycj z%6@BZ?J_9YYBMiEwh=@`V^KyBphvk8q?E3UrGUsLF=f`?MA@_2fKwa^QfqN1s|Aau z&Lk}I4+zk&h+?&2VHV`Ag;gHugMRayTsXnLqOk;i)zTJ71fuk+E1*xqZF-e-<>6ds zQXw7X7Ln{(Yewmg>y6SuaGo2b6Ffu&wr#i@Wf;Si+Xghqm?_%aUZ5d;%BZsZvYHNadk~z2^?hLyh<(BiBmQ9GnC%{rUb_B=OIj1n0K&p z!zdavvoePyj?t>+xYM-0e`Gm(GV)zAISnB2t;8BI8Y5u{9yY1Xe#D}v_ zAZpTbV}^{}`V4|y&#nZ4r3|SFtz=^!6E5Ri`p~rhEke*w7|o*sWH zAy+V@Xv?kA>@;9HxmrFg0LoB36YgORS3g);ul!%=2#>!V^+KYq{n!qp{c-`CVr?r)5rR;)O_h|>zIUyR^8j#R4Hid#1(>l)gIw6JP~wUb!{ z>KeLc6uWg3s}b%l%=K0J-qY7xfBMqbTYvh}>dosaMbyjUg1KMHV~0((#{a8(cVc+&{;#epxwTRcWfe!7K(%^GgeTmI00_0361^QQ^CKO*u?RyNRtZ4}Bk3`s$f6!l7j% z{~o~Hl+vD>&ed#_hjo>E5M*CCH;GT2XUR^A8C!7W1R(a>oac<0WjUrVT2@i z45i(387{M)f+1)|&#WwFwO=_?U=t0Ak__o)s<=2Th_(yf{rLOmJG_mDDWOv`lY)yv#Oo6!SV1fI}Hib`>iP>gh2# zbKEddGAE>W`KR!xAnX|I>hSB6I(S(QtD-MI-Yd5VskmdJk>{~G zIAs)C`aF@khB#Q7!@*&$BAd}iDyQ1Ag>)>H&XH#*lTw|jDD6lq<|(q{#fo9(nM5%- z0zhnTDNy-SvQS!`7mxTL>6TKY1Arb~YBD$b7zCGKXELuSp%c1!CDwZFz z+!L0c&2lGd5wmRuY&qx0z@D=mM7Jeff)4=So@vv)%dT4CT|9jS4~Ia_RA)r^wFsXf z!V?khjtHNL@asi*D#DW^!f!_SjUv1Q!qXzcZ$fF>Nuw(7FtW(94dIC+{Qgc6D(04s&YhMg$W)6 zYB|!EF-L-isQqBi)R7nbkfdr zCuTr3YW?D?R$%K4Ou}ZZLL2pquVug);lP;;czrnVW(K@59C#}O-h!u!pF3K?k=Go= z07Z*`4MnqbC_;^V%Vw{2ewG^Q|2h@ee0HVmdD(8xaKXPIY7U zjpJd-2umy|Tiw3D2unj)>Z%raex(TY`RT9=?9K16s#%427^L&+1SQEih>)?mo${H9 z&mKJYKFFZ=C;j=y0DSZtBt8b?W1xHw56Q;Ikjq8LNPG-`lzr6a=O&u)IZ7BM&W9)+ zKJzkgBhfWx96fT8BH2bIo0Rm<`&P1A(%y`E}4Xni}s0(C*z|qwm+Y&F>9*m z4Lv!11tu60I)ucbTMVGPTG?F;tpd#5O~sKH;L*O$Uiyp_VHPY^wUbqKFZN8&%%u4$ zk?$F}M=iXcP+Y%Zw~AO|))uzGd`+0eicldt=A!!_D-Bt;`u1dR>q_?F;oK%q4Y?N~ zY2XLj1<^*vugNzpA6-BWaU4`rtYR`Qf1Zg<-`+*({a3MtGc1qLTyr)&hwH78dubqq zMPe1Zs`#R4@P($4#aYY*p2J4`NNTr*nYV*?a*++SLWEsyWz%Y~yBa7O&nps^L2%G- z&X=d>-Gvh@PK6BtY^R-XmRy8|kB16{Bg4im!WvoxmW4Sq&`99VFk4BM(bqmW-kY{` zywZ}QKQS!A%xku<{n|$m_K+4h?9?^%bLfA?ztX3cP6vEbM zVXO3E>k#&g7WRxj?0JN(*TSCHhiyRE3tHHV`mmP}_Tu>at0sqF3UBFnn8NF=n8E|B z&{yBL4n)r|;Dkp2i0F``o=~w%0H^$-xCa8o{6{FE^9;A@%kB8Vu^?aj8a_Bls4uo{ zFa;K+0r{JiG0Dw0Dn=Y>okS?M@WOZ_?7T4EIv~PSBZAi`?0mmuNyPw)6!@T>zq3SiTSX64L71QQ$u(KKH^wrd zZ&;RHIvHP9_I2eIeYbboYnfDC`H^(#WtC;s%^wA+~nG3*qa>S9BCE*}X+y)XRIZ?8aP%j^qnDu#isoDX|T`W3S z*lSfXrMki|gG+A0o~c|S3r!2VmpUrS8V8o#ozA#U`$BWR2uIGbU`PMJ5|DqCAYa|% z=gN&8i<*4$J|8SUe(II?dW-g;iC+0rpS;H_f9#V#=9T{xm6tzewcqEJzX+6sD$ABg z#Zxeq;s4N_mAqK3%H;08F?b%`HX&$lB+cxzpqqnBmr`u+rxP6%>2TnjsX7BLH zD=dVcTJG(k^7f-R1s%<-7*jZ|c!EO7SN?tiu%@u=7P|LIb8etl2*blua@OvXKf$oE z{u2$Okp+EMwKNhy0dCHI+&q>nO4}~oeU_y?`uj`kt&~SqMgB1y`P%hG!Aysj^}9RlCC^5J8vkK+7DtMW1eWiZtpy)Qa%VF84WVT z02yI`u^{0dk`O@<#&%n}mq^lo%lQ8XyY|koyb} zuK}{u0D0H|S#E&*#Q=ddsE9g0Yk)j&fNV5CUN%6s7$9#NAnzC;?;0Q<8XzAVAfFi^ z-xweb2FUjY$Z-SYqyf@wfS62?eP}m8Tn0#@0n*L@NjE^c8X!FkkaG=?0R~8x0W#bG z8Et@!GeGhUkc$kEOAU}B1LR5r2H7xHb90M zAfpVBu?C22fLv&R6dE9x8z9pSkZTN(nFh!o43OImkh=|#dkl~T2FRZbki`bb5(DJV z2FPOu$P)(0Dg)$c17y7c@^=H|B?IJj1LPG0|ATtb* z8w?O!!$tJrZ3alG0a9UrR2d*X1LQ#i*aa&2e2jP8otGDP)&Q4(0lU}*bTeOWu zZ#a4YS736TuV|a%=xx95LW$nh3nlspyHJ8NIORf#!on_;C`^B$v>&XC@Czk^gk306 z65WLoeToYu%3Zxsq7U^#i9XZ|CHhb=l;}gfP@=MQ7fST0yHMJ1xKN@9x(g-BOTAE{ z4{@R7lXtk}4~i|J89RO(TMD-`j8Dz3m;4hgh5nwf)x&+S%%nS|bP~XrvO>L5V%P30 zVn!Pg#jOO3D6W|J4V15lY%PhKcanY-c6-j{BJ50rK(Lul)|n)@Ugly2aY9`?$ZpQz z4elMwbC!E8m%?gKhNabf!o0`)xOu+$3iAYWg866D*QWPPe$x}CD$~uT5vK02)$@&1 zCvB8gNQH5O;mg_0k1FmA%6|P)YcbCg`%=wA)HRl@V zea=5PFLd^ICOc2WeipkWb|q}@Tos!iJ1F*?Sa)no%+Z*yVz$OSALETFiMcLjQcP}4 z*BD34;e^i;Zcpf*@QXX(e#^bd{j~c&_aEJ3+(X?~cQF3x_}cg-@m2A+$6pmcBEDyQ zQhZBXAnud6x8q)pTOL;tcWd0_xZJotaqVEKXLHK>l)t1bN|}>VlrlWUnQ}DwljOIO zUr1h_yeN5g@^#6VBo9i?NIsqPebVPiuOvO0^kC8@NyC#)Cmv4xH1XxcwTZsOI}@iQ zPD~t-*b&xzK5W0P{lo1SwEs5kUupkLTbK4oT1DC)(k@Gr)3VY!r8Tzurrqv#TiUH` zH=$i$Soirp_1~%6Q`e_Hka|bzwW*h-W~HX5N~ukqYC6s7baSVj=})CEO<$0HL;8Ci zpX#`@JDqcUSw z#-xnV887sDqSrOOCifcKt8cF^z2bXGy?)62Ec3n0^_idctm;|Vb9m46p0=KiJ-+O* zt;ePwPxV;bV@{8odR)p5zaISI;MWHKb@1bZ7Y{BOe8b?TLEjD9Gw8iRHG}32x@FMSgE|j#4Qd|v z!@$)8D+cx)=p6Xtu&;)_KWxje=Y}mCwrJSh!>${4$*|GG`VQ+j%rWfe>~FGnWxtXA zx9lgfz1efKXJucOJvRHi>@L}^>|cg{H}sRCZx7u#^vR+351l{s4@0L8oiH?OXt$vW zLtBOfhkQ1qe#k$EtR3>_Aq$7xHss171w)1n={Y22h-t{zIUnY{mh;z~$8#3vl;qry zb7{_)oc=kTa$<8%j{J7yM|4UM=ufBN7N7+XGl(XXe`^Noo+!f>U#|<6VeO%JG(Ae+Cem?eJ zV>gX`dhEkvE5_b2_Uf@0jvXHh$>%ZsQZjo5nvd{{8WO% zz}ejf(@>bn_vw_*_C+Y2SpsiKh=L12F}>za*cf;OjQb`D!f*SP+d{Dn`?Am97#uLQ zsP=X9FYT@lkiKGZvShlUuNHp(Sub$Z)~U+sH3b_=RbL z$!z*g+9a)nH?%*(S$1Ekv*@piBireQ48jY;A>tsEsGxfy07C7C-E(&01+j=iD~d~- z2R_H8#tFEKEi%FN%x8RsK?ZrqQ5aBABS2ix5<_LH)o7JvsZz1CUfw}>CGVOD z6(1DVa*vUC-=(PbiQ3)BR9m>J7r87f%~%M(Db3OxSYcxIu@pl$h`pIhtgZHDnBZ#w zHE_cqFggTdR9xWP*fg$27C0xQ${PO{Iw}$Vg?UFolH)(=D4(1PH^4qQ%`3zGdk5U# z`s8$6Bxzk&Ue*~3xmmmYk_n=~yMg1$4={aeMG*6l( zjgopuDcr7{@`RWm$v;981ES0wJbFtRnM<#+W`^2h%y+%|Jze~YBR7)6Oh$LwD6c!Y z$9Ie*5X;B(ESUkt#5@peVJ){x0zE@d1c=QeNG|39kmf1eX0pvzHssDws$o#_jar~* z44X>=yBvH-V6Za_0Gpa7gf=x!2=n~1-ht4{(_>)ebcKVNj@ezXO5S86Mk>-_$ z;A3_QNhQ%RdPvMPqEdmI;UpC<@(}sciNRf=>~{U}x_4rr8=Ny?V#LS3iNRMq{>$0> zfr-JtF)^HeCJH(Oh*01yhzFC7IoDk$ zcxYl^0dgcDcMwZJOF`gfYbblxJiI#!0#{je`oGYPd;(r&(d}tr<|;phdC`yip=%WP zVOKaQR-AAj1_TP}Pl2rifpmLdkeww^l!&>BO_UH_$u~-X$L}f#ylM$Fa3@%(Z@Yp( zVJqv+7bR*-$AUl}|1M$QT?zsN`S%a(yIVmZgMVMjzIzq~61f*3BtEwwVBvw?%#>OG zg1}ELiU1Y92NeXqX$fU7D#iQIfWy7TdQeZiHfXjp~5GziWISmOpdHbb8}!0sOA$!hu0JY z_BDsH6Nuz*CNj_0GQqyZ1!Xz*S@TK;36Sm5GDeX%MPzCmRakc0_b>ft zzy(@7Zvb-tV?kgi{8`;m5Lif}36a;R;&)kB*4fvS{s>RRzg23hY zSx^v|gr9{4fqeW_fFkfySr8b3pG5_M!T4ER5a^2^Z$Y3(^Z#5AL#oInKd95WLGOp= zJQ$j@blZ%jOy`C)TP9Qg`w9Zprvr%=EGGDR@c*OkTi~0n&cA=Z+?pnBdZ83b+q6I_ z2m&gKmntA?3d*IRrr>5#{>-UUbeI;Wr7eUN+9*0j#BP5Tb%6DagK zF)fI$Ar%>7saTr#`Hy&ZP&lDZtO6^bcLp#2(`$Ou`gBv z4NnduBykhI?VqfWs zAlN-y$_~Kj0GHrG6OL3S=q}-E0o4QU7b~wC^C75%c@pztN*5X{qlB>rp8_ePnDa!c zEA-JWna3Q5e=|93RkDe=RqsItL$AK`Rj5S@A%gWOM{?w+j-=^78p#i*KN3}6FPuUy zTFzvfsB3blyfbw2cm$fF{3;JD>$t+Xtn&&O9AqO9nslYuvSN-DN|>fikp4~Aiz4EU z5PI=AC)?kbj!0dSUCxm65es}A$fD~I7yMEAdHG%NV}_dUG%YgSZ~9-;3#PYC+e~{+ zhfEzNlXt;u#z!c}(ASN?W4_7?gYPvMzdT=4W}&)4t^+b)I1 zgTjR&N5bk$E}|&+JETj-Nj~o-aB^-&l)QS+*X$`Vkh|3FY$$L`_w@VVc*YSZ6@<^ zQzs9H5oDbvfqq~_qQ~KZtgGWI%PmcgFkB%iMKHUf2u8rm&~&}p%?2EouEg9Jb!mH1 zu2oosL~8%d{GxdpBG3QB^pWXB)8nQUrYaEM<4vPY878yopYjIz33-uxmOM~ylXgpg zlom=i!I9?`(m7Iw^i9HngpU%QPq+pCxGzZs&XREbcZ#&2KvGq;sYU?uV zP1aQFILn!qe>++oe|Btg{K4@X$5_V@M|WaN;wy>k61|C6CXP#d%Ki}iWlyw^u@3>K zPNC09uU9DLkDGt{QmN9~2G5@k|G3+3A5m#;`#i!;gZ%B@CmmO^jdXXj&2go?=C<1> zl>|$`I|a2y|J=dHn@Sp%4S)jEmLyo=;XkefOcr@#XWbqd>%BdQ*q}{!maw{!vGZ?d zbwO{rgH>xw8t%me__w%0%UwzMHfUBdoE)fs+~`pf%yCTCW=~^27V0@vyb+;@pOPmK zA=>QuD8Cu+SmZP^0Inzi4JJtfOI7JFwfXaY)FvnK-NAH*I2siSpHw3oMd$1;Q4nD| z-N6y3QILhozU(v#vhcn?J7qy4#6jj5%h3Uj=^~4Hz1&zZ?pRo?=_gNFP&Jw~4Uu?I zh#z3Vn!g(BT8xO0SK!}e_;)F6>)tQ|15YEmdnzyylE~7e0-FvXQ}ORA{F@A5hfW`u z2tTC*b~S*^0Fdmf2qma%O0Tx42~&F{!o28!j0ccQ0A%Xv1L2{3fN#XG438=hpGHV= zmWA*jqr+mJKm3@1LW{}4ap|E70|r7c+98uTvvG1_Trn|1GN!&e_=<5TWCaj4v-BEJ zh(x?^jpgI41RvmKclR*Bcp1FPgr2Iz%WwxhcVoKxPBCnZjM(n4nSZeja31!5fxCS`1l~J74 zAbh%*7G_)emRuaP>@N!#@wh0Qz6LG$D0`_1>7Z!uqH zJ{y9kc7%#pXS&UFohi?hZ0e8?g3x(W{-gY`Tq)lwUoBrM510GPviyzoF9@L4O7}}M zq&DjwYm4<|>l*9ttaS+ez=cfxtXAun2>kG}XXqQH8pQ%r|-`hc^XS})=K?Lpd8laY_OXAmcMcWse!ajbP zaxlW#*u|#u3zT>S&tz43dwMy`;H*!6Eeh(sXUX*?QX{CAGmzo>#cY8?za1 z@z>0UFg^1&3%9$3>kA!k*ic}Ew=>&w!nt|DKg+HD6Q%{bK~X4>G{bVZNTm2T<^71r zXgC{eOIX?1>yY>!h~m{OgaY;kxQc~!3G54bRD{W+1!8d+LBd@8{Dv#YH6MLfB>m)I zrt6Ia>CKVys6avyT)HHVf^|iar^}b%f8TWAPrT%%;^6YJe1gNZRF|ll7jHt1*?-SBHu9wVQYG+wkS+qKn*Wa<8r7xtKuF2kwh7 zOhMU=DdYH0SKB4s;ZK@9CzAnRDZ^F;>2_q$x#d+m7-#qwGzbxOSBU z`=ZUs_}2&jY^-f?^7L)@Qa!IEm?o+toV%!g1OdQxUGJs(StY?_RD)R^9YRrk;%Qf( z!>d#0sk)nWe&r8p>&>3ur;4eZXrc=aKM1<|gL-r%MwVJrT;Glj|*j^uUTpgOf` zoz$6Z)zniC1 zd6AC2gsW(3Nf2)x1qMr-hcr+aN?LGjii#8|ga`cwk-=${2I1Em(^-jmQavl80N zgm+CJ*I}m_oAV_az6Ht7(Q3b5u@jvH2k0~ zqtQ_!K@d{-MH|nMO$k~yZAC*iC1}~SIStvApk>nzHDptQmQBdSkWC39yGaV!`qT3A z!HH1`UZVKL$4GYlk?C+=0PLMm=qxt*GB_qDf4!7hS8OV*!#Be77OB$3b73S$S{oa2RqSJtK0@2a0tB^y8=3!t$CpyO|A5RN zolLH}Dhy@~8Y@K?6K3K*!Uz`98)_feO2?1mpzx|LSbj3I&jakuk73jN{)q!K_Ur(GxE=pK#=np7 zZyUJ&bh)clwnE7hjH~0L=HI@fRmG)H@_Y~5Z=*u1=p>}CX%f==JufS26!o6%#6<(I z(Pa|kHS(eboiy_R8z+b3wKy5>;B4adyiBllBaN-o+7WWj?jQhh<$#<(eH~~%`^Cdf; zVq#CPL_+igvOOIygV!Iz>MMhK95U-aKu@Jo?YnCx#X4UZuOm37zmJz*hL{N#L(|l- zZAN%@XM6X|EMej4=+b;qZ6fCE20S~Ro?SS#QCn|>XJ@u|mvbjLpG{J={SvFR&>UKe zhr|xCks9!wZK`sTA8Uxt-)*kCNXg1zXzw-b3LV-bbPMM;h?@gKm2YElU50K*Rca1u zS^@V+gxq(iod*Kb!{NtAJ389Y(t3Fqz5JLlkS``2UGvT{JRJtW`=Iq0oJ4d}^Mu5Q ze9Jhwf2N}dg1~SDcfrQH-t!RyGO4EO&yo*94FYvJeBkF0sLP?^p@Q0bl!5vb3O3E2 zPa*O6C_cb#4B+&ds*fb!`DdfNax4LVdHoB_^|o3GUc zMvTra)av$)%^joF9UPl`zE-y|I+t%}-$jNsRQ7V^;A-n7XUY|LI1}QHw{ymjv}mKU zE&lm$tR-B{m_xrwY^tPGpj`1(tEt*9`OZ_GO>7o06OoE7k&5>kyfV?xc!F<_htO-P zK9+n#>pg#FTL3CYy4{EdRHt4**G0)}gP`!IT48m+MHP0T@HPhd6Rohii=qneCvgcM z(f=kAGtov7Z!0!MD&E4?KizoQ6O}256QGp~m{h_RJtH)ZXV|IYU>ZcYAE;GL6#KIL zLN<0h>-pGmME)$Z5h96?kewPf4kYn$An6m7+Ch8wNP@CJ&zCd^6|5FdBi*U%xs$1y zcdo%1FQ(pHBYM*msd!P>n-QE`6O^71FJw}MgZd+v`VCe;;92kVG?q_hRhHf4D0D8n z+2MoN-7ae;B7l(B(kSR|evC66j7I^o5fuspkKP1_IgNGR^+tdj3E*1-;H|v^yj27E z76IHC7oZE#ZI`7wc@H=B3UHGKFx3fwE@!+R&Lx2J1i*AS`{{Ye=}vXX^9bPFxBy=x zfI$K9rd|QwqyY>Pz}MmebR+>_QW78X#$Ew#)Bq;IhUQTR;-lymGm^#`YDf2rG$rvnpE5FjU;Huein1Tg5FF-c{b> zDt*P~#NH}4C+aFbd7r*wMXwbr^c5%g^%Vp%m+E9P0lsFR=h@EadW!9qNUf07JbDV5=F(c2zAV(h()nC0vH^i7pv##hS+4$ zH@G2wJq6`R@hY+gGvZei4RRHGKBs5G#T`wJ?^=*z8nq6(FH+GMsaOy3r2fv=)7hZc z1D?i!cfDZE2(lgbuR^w;2l*FK#1>q<<7px+@h{%NTwQ~6MBrqrVIG%!fS>YuL1IG^ zyvr&9!8Pav+FzY6`EFF+2D755yXI`~R+K6MJ1BkTV?Qg}dtK#u)s~{|6{C9~&o*)L z3*t=uFF4cq0B(NHw zxYHf{AGE`EEIMC+Wq%M#&0K~;HR+#t42a#vr0n_yiy6%m2hl7PhH()2(l9n+4^Y)7 zM$bSEv9kpk)!d+^{Y+0lo;BJ zgeU&xo_E!Kg-Rr|`2Sr9Q15v+bo^gjqZOiJCRp{Q(RIOvoMIKO|L8+=z4w6 zifK8Fk8dB3G_25P5Lh3(S*8$+n|UzHR0lfQ3<&TDGA-S zBeu_NJ8YY6uh`bw9<%vvx7e<cRc7=;_x}j z99K9-z!?`bk`yji+ek^5o zN-(7%r81=~WkSlxl*6t^T^?6!^3LR!lUFA%OdbdG$tRLpleQ+k4D;h9Nw*}; zN*bRuG$}19*yophGW&dx?n}>152Yi)3Pv+jfYx>^YcXZ#5jJGqEW?Yq#n6Weao$SW!)!DV#KhK_# zeQEYN*~792WZSck4ES=udoU#q47h#3wFAZv7(HO%fVQlbtYB7S){|KeWZjZADeI!F zAz8=!Z|Yy$e`^1X{;TtTop(dt%)CqU#^epk%g8h5edj*t-tGPX?&P0$Kj8MeE8MrZ zf9{^{p6EW$JvcW^E=6S$(zC1&X^YqM?cI!G0th)#WiQujrt?pp_$ z3@Z4NIG_vrkRY;V97}7O=FkKx zc2p5-@X}k{D7^idKXk7}KRc*Hlv#mdb54RfiR3(_h7kae@)f?pZhS{{bl8@de43~l8`Ki62aGQ1;>8> z>cF0kW#`RG_bq_R-W6&+EyqO4Gp#RKcD9;4`z_m-ds@Q-D7U0xxEqg%dN1W2Fm11S z@5ANZRu3BYcbh6-L!DkWOJv&N(6d0!Ch zX~f~cr-}5iTFs<~)oLLK{1(K#OSV&+N1(sUFj$iB<#Jt1~tQt`~ex@%PpW$TM=y-bRsXk;OUQLzikiG$=@ zGw?T@>;vqq?k%iKFw_bpOc0{Wz~?CS#TMXc^S6a{*FY)ma?sr!&^$C$P?`~nk>bIL zLn9EPNWgeR0*v(zPlu@Lu^-SU6^~MH(A`_{?`C&!BeW*Pp=(M6W~Sfb80afSBVV{0 z-}gPIX(mdSNySo$G*c>-W=oG-8ZFOQUb8e=-m|=AVXASY%?q^66-4=c!c#=MHC14_ zrZy$hVxXL8UAYb3MTbP#@8zEF@i?V7M7`&Gv2;QYnESn^Bca-S5v=1b;^8C0>Gv^{ z0}!k6JO&P}8J`SIMJ{#Iu9v3dusfWCQaJZ9nZOF+R-u%JI7MT2hGBAVW6FP|{x+c8 z8i7|Dc_Kb39hQ8+=G z1YD?SFkb)BpUi(WUk#n&q2^q(+5A_SyF6pM!*s4`xap|8PktF1#rMm1!`6JJe4d;q zC&H!8A?cse2h#saOJVjhQc9M}6K27MO+kVUE^PML-h)w8h3%KN>p)eWW6QQVY~Ncy zus&{m$Xa2&&3YBgUc#3BmK!almXVeYn98KsB^HhbN}lM{(>FENWzK5^jS=u#p1u`7 zZpM$Kr|$%p1zZt}xWu2H-?(OeoS)%KD`7re2q^ppzIyEDt(Os z_X1pi(EF^*yt}c^U7_UMjhqT4rxH2$C^?nLxkt&VK~7a8@MvzJc}MFOR;94+eEy?~ zuGW?W8Br$2&Tp*xXN&E&#)ukt#^3JnmQp|*_^TGr>(EqF1ZCFT*0{wzk1ErOn?oMc z8gwVKqLJ&>u0gLe7c@SN{vwU**goyUj|He!(a0X^YidxYN~wS@XWrBJG&+kkQ2}E@ z+7|SlcK~$6@1-s7n;XraV*@IhPiTal2()1O z)dEQAIiTikkI@_AfcZ}{P-fnWyibH zJ0>agvJ_~Uq-!bgw;e!~sJFMUC}ELXWYT(})k!=T>q2NWTp@BrpNv&=MJ8LsK!UO6 z#fI@3D_R0AVRLWovY}uAS47w@6q^RB$hJEhtEa5F35$ir&%`DuvkR^ueS?1nC~*bc z*ttOR=+?J|W?Ws+b!IwUMp#?Qpa%_|Xy{`zJuvK|XHGIi%iL*2#x4axzob!w{1MbU z_9I+6yc4MwxIieo&yz;%K7L4epAQ@nv4nYe$M{Db91FMg zJqbxIR?z9`D*uP8%^xZ1u11U*+)FlbR!1~*C1XS4n4O3kb^P0KLfA@SW`rT}q zafTdS-3LO`QBX~~-x!eLA_V0su0-uyhsROl%Y|`6&xLW!0CIygBtZ)7sb4m(gorhk z0%D_6pW4BoDbe>}^?~1ZpZ5DG)R{_3nzCcMCHSU@cOv=H-NCCF5sxWT(~q%qZ&W(s zOjw5@M31M_3bkT)aJGIW_|OG}P$P4Y!l(!vtvSnewUu?_TGSH=!rCL|o)-6Q^y3T3{a$ur!RNgDU2SdhL@-$qeBValDwX{!K zCp{$jrTNl4_=YP{wmZ8I10D-(aBzw+e!JC%Q;#@!I!LmX+yXVM#}YGx_;Ror5$ZUsu7EZY4D$_ z^g8J!Ghk~Sd5m{Nr<102WG(N=c&#Hnm#$y7mW_|L7y0J4sl^9sB(5E;0;-Xs3;7S&qsqh^)&yQg?K1}husDXw4938ri8M?hra7k9`Ed%x z48KMxWG~$E#9IG7DtXkcfIxwD0wo5PaTHi5P-0*iM}c+AI7$o%6j-;6qr|{6jsokJag-QX#!+D1 zGL8}h%QycHlvJ%Jxz`g%w|n;(6Ub znXQG1R7W77SPV-|Seqh1mb{feO7eDU=Z{LSVsVzCSL>vNm&`k<#yYiUJyaPldbU=| z>l8gh_`n`fqoJ9#Z18K9PQ~IdL+SOb^m?^JJrq}_YP~j9s3STQzm9&YV9Lg(>RF{% zu}IC(tLN0IdQR9hNDGnSAj6Ys{N};&DmTEYjR|@gra|a;)b{AeB2swCj2|^Cqc*sG{gadys zUuu&<0XsKW;thTjCS;sy&X7m3}Qb)t(>l5;#TmVwn&5`K?~}b z(&%1s7F&F0(+|NyqpxJ5xn)jHVFVGo;sb(A`G}b_u{a=byc~GKm*c+D;F?2!Vr?t! zWKm|^cEB&P&H|~D#0U)L4yL+PMsRSG6gCsWY#5FPsd`;0dqV4)5nj9yXbr9msn(f> zW*nG6=+q<$9dVT62@V-ED#6mpX4_H$VTdIGPjkk&3!n*fIsAMX8{y*iF6tR*_J+~i z_ofHO5zOD$H%a(-3z_slcC{VB1I1p)ylaX#bfWMTdJW8*Vfo7M)lw6L0A%U%9U|_f zN|kfTf2T{TxGp>flK4o)39c`Z3O}J+%1-cwm}9B)g6+}){b6vyzmvmxevb>`15+`- z2);%KBT~Qc3-l?|MgTqhBPvh{jSqh~-HXJdj3WXcs=fv6}G3O*!0cC5==Y4eF=o$teNA)EP57|LMcabP;dpoejHvH>q9wJW@*C%`E^0>;ViM6ZNQ zu^Wd#!1_{!1r<~piqgsV5jPc`BvV+l>GX7~orFtMk{pw+TV!E6{sE_SDIL`@;O$o-nvnrVe|O#(<_w;fJZZddlG%f(;~g!^Nhs5$d)eO#m+ysmOq5V)Qps zk;!+tzP7Pm;D|PL>V~#EI~JM7bOf41-*qd_8Wy*YC7YLRQ19Wk#<)sw!>I1g+I8Q* zQogh4i^h3f->b`rDVR*e7hs`|Q9K2J#sst`5=1|^xL@GQKIWigB3ZgS_zdxpSWorZ z1*Y&LEuMp<&3!-uCf!e3TQr)JwkARVo<07mJ>;qCV!7V4X9G~)-Zw1Ln^QBG#B#6C zPM#yag^M+aEbXBTh+6kU9{n6+S)uPjL=`$jLP}!kKgZhe&qt)PvV$ZV|B85ae9|;F zoe(vX)wnzOddETZ7qaWj5P(*j82%Z(GG90GxawX=+qBMzxK z)O<2{n6Z)2Usu!mPsEz;UHlLeB3z-Ut-k^6$-qvgWa36H@iK*hmG#R0xN`cx9G zvSY8DG+-8-<2>a8WlO-=^9sUXx%^^4(;O{nI6%cptfGp;0S+j-6n<4cLxA1?^hodk z!l6T5gh}s@$dUt6x;1Ifq^(JNI}J?I#qEW1d`x&lhk7;zinT(;X9H=iGyF;e(XgR1 zm{Vdys!TpL7(P(V&-o;2YienVgdgV9h^6Z8KII*(n`+z>bXD+rZClCqh#Cvf0-r&S_{II6Ci9-LjQkx-VF*3`Zbv1y1ziL{ zEI+zWsqwZ1bwR=RGN`(%39EjkVpR&JP0PE+ zfUUkbbI^te3SLJsw z-`C0|iK$k%wEF6aseW<%>RR1ly1Hx^#tbW3E7<3K?DHY^`5^mT z%|2JL&p)uw27Ce|tFpB*9q!=YqeLw55-&@kY#1JPVh8MoR`C!CfdIGI#8al*R?{ciFJgf!gKWfmOBLb+wzi>Q=qg#gdjHX$g`x zA}QDvd99|qp~ONSV(5Z4hknnSC`S_`y3J_fK{M})Lbp2U7J`RWI6(<`zH)lnQ0XQ- z$hSE?AM5-{qw|r9k0TY^wv=sS{-n=j)egc(u>$!LdCllikJWiwaZecPyCW5?2(PZR ztA}zif{mqUN={ zH1Eki=CngM67*zWq+)MRJ%J56d%#6C5LRgj4t5Wyo#+AX0qxThSm(~_v`XtGvUC^B zpg55yHiLAzdWs3I;p}1KtCOG+*c48F~byKg|a96QmX>CT%)!R~@VK z9A)0gej&Ts*5P?Z?@e^8t?QK6)ltKfk?N7-9gXS^)Z)fo)z;-dAXr)EkOUeNfeZjY z6pa`*yq`v|*7iunr}0*661F2;6TE4YW*!d%mznp>!qe44AErR_MjPCb zvD5(C!t2W8_v{31xeK1=bepVyJjlZ^HAUWCl_}-cBG1kR_M!^cUFOi)-JugEJ{91i zVFBs7Wb*?|LBHGK{utm!F|7u|HRkm+$ca$km`zbcY$6ZC9BN&_a zu&=+C(hh`UF%@|a;cu55Xr2`43||0u{pv*Gx(08m)KpZvt*bn@Xw}xP@_xqrgd)r} z-lEp&&d8!I&Pb&>^fFN;3?YGr1)pkCJHtf=6t+SR0Av6F>pTbRya#$iB80H~RjuMU zekNmKrW?)~VXye-Y$(e8Up-^ZQ2CB`#x9C`#xTu~NbHyaiw97Z`4&d~2KA)*%Ktm( zYn0(UFdRikh4>DJ9C1?ket-F-*h74i!QXnrxj3*zo=z<5p3dl-y{@8z6NcFNf-r>I zg$T^|5mTrb?rmZ5Dm-26I^L~g0Cead`izn4b_Y!}AgfY%v$(%e=xK>gP*OMtF-dyN zCBlZmu;M)n7OqJO96{gkpYkT~ply||#oarYcO4C=i~%abM^3SPLMdc{7-)X1WM;sd z8t}Mg|4en`PbCGF=|wN;>`{_9dPU8?Q$v3V3_5ysC>Q;p5IZGwMS$Jz^c*W6bgCYP z=kwjokp)ry>`ov~`W#%o#3#}h&@zW9ykzk7tpBp=@wI^ zv($yaVx~qd7YgYXvu}^N=u6O~;Yw;qzjArJuiB>LeG!N;4N|1oy`Wo0D=zn)l32_V z^3w|Vqf_XS!0cD6nEmSA&7SW`PN&bN2L=^Z-xpfVIxqARkA>ZI@uLt^97aj;$nblP z;U4Ocdg?`yx1;(4x_OQ*+=MoD#q@hlYnf(0U35k?(c7G`b^F}(s%aTq{+?;-mj5b0 z2M_cm@*w#bJkOsmWlR4`*pRRohF1XYCBy&ZkFY^XOV;q`!yzj*sqcU**mF@WmiBD6zy1+#QYFa zCFGpL{}#mC*@v^$EoB;B8Ygb)}WS-uJK;mo4S`E=!oc z3%atbh9wkNA+`?_4NjpUic3?lsu5}PE^&w8f5VFN^rm2yd2gK{B5qn~`2)D@@l!X#a% z!f-1xD}sD*7GN+iy?=gGwh%l2L}+3H)xL?Bh|(BC%(||N#*}Q#x1p;-?@GzWUqiOw z5h>YhqIJN9#)6VP!BAUMqZ0X9#=dDv14=&r>RMOl*QewghmL&X*t3j-L%wnFS;p=o zUuab+@Qn+Fd?EW+@+Z*6LzENg(j>)okJn4CJ2-?cW1BUbqaYsd4w~6&${}X8NF)Y< zA+;bhqEoyi#TDp)gPQ|?c)gSn+L%3o0Ox2l@5w-YPh8X!k-~dIy&%;sJO`0AoEH{0 zOS%-TFzJBt!qZ|3ixjOeDSq+73t|e36s<5R{_w)D^1}0Zm^|ttsowCsAkX_CiG|P; z+TR>^Bs|8jfhrITC<%lj_{J$V@iLE+xR)U;?8ah?NF;$TLtB&x^n`j0TLDcKXTbi5 zev`HtWdlFaPeNDp6Z?*S61t+&eMM=)SCkC|McIU}=w~MX$?;W`;-#aoqqx89g9;xc znNX#KE)G`}WEmzcL+IxbMAWeKlwsF0R8>h}&R=Z`436A-0>ZIUyxc+rj-VmbR1dT(;~I!@F>JoPcp#07(28zc6ZyDA zsyZ&B?zy#Obe{+pVqiL4NV?x}{1Q7bD32Tg;|@YZ1&ElOo?v)lVH`#>4fm=DCX)2&;8lY)Zk5H)r z5KkaLgn^?0Ex1(a5lM0{x$RCe45cVYwuT_@H=S;dv>fWJ>K@7JaE{T#`snaBQ|i zR7w!)`ch;>${Qr^KNS+>y}pncS`X|>sO~TM(olmlD;h?*^1;<%`fvW~vy?3AxiM>! zlEsdVq1Fvb7WL6s3ofvEThucp%N<-YL(y17N3h14Su_8QH4)4p{u^s(_^kziNcie+~`t-a2No9CGhsr zWeH{;n~Pq6QR6Xn1ye=`jW;9|Jhw<*s16u_iUkop^pkR8{L8k%&RFk?SBr z;>*U%l|<18vL)=&mLSUn=iglH>#sT?LB<7eozh*3lBl2LqyH{xSS`&0>kHqpyUzo8 z%Jyzx+6jc(MC{TxmDr^;7O~MpCy|FkRC_VRz*?RneRxws^z}!0Ht(pb&4DnGe7S{A z;XM(BrAXVVW!ZgFB!WNn_`?&H^MqQFuw~9Y;Jolm`rZs}V=5T<4_OnuF^!GFf9v=x zf?j7V0kttmI;7x(2(rUiL{z8lQIL^!#Z{Dw)ukkrPZDoi8W)`hj=>Vrbc!rxI^l=X z6u#VF1wqlpHC5eG#aMi9z3Z%cPxl5X>R2LH(V~7a8Bob7gjKT=g0RVcD3UJ)jd`W_NMbxQX!R&VH4I)8y_-GQ<$Y;$z57%mWJ>gQhB=1lj9 z6qguBOb1CUj?xS0Z!R*0%aorNo?ksv`L52*1f*~idpxT!mO6~3$LZ2F^$73ue#t+- z3rd0AkWY6@@J)D8q%x6q#RB+w0g_M$DayYs`8_C)py2!c_EhWydO1arW71%JsG+zqU?=-{xEyCP}SVZ?bJ!Sw77kn>@5Z23hR&S5)=QNJ{}y~Gah^?P&+O{p6zkCA~;-J$(F?k z_}Ogp);@dd$~x+%9UB92nm&JC3Te+Dh35rYJuhgwV=vho%&E#g71zA7PbE?jtsUFV z_OQqkTeKd@8>9fKxgcLW;zm>*^+#ySUKj9Wj%Y4wxhsKv33OsoQ4ZSf=IuZPE{ds_ z3g3TM(j(7dKHlOvif@Wc14A>{PQdUW#i&fFCMiY*`arl z6ob)jWu+K*Jxt@JCvCkLT=LYuqGW*=fK7;IY6Z?FNK2@RPn2yj6 zIat7Ms$D19)QBb()LOve022X&d@(ir2bcV7iW38rWQc8b`V{8SFZotEJzTX6C@*VnGW z&VW2LE3Pz}#MB1(EHKdB)d{4wE?3-P$cvnB(2atY$Ml*_)4QeeNlc~9wOsXM{$g>Ws)x=-}9li>rrr2fBk>6*&nfb>M6T zA%Qv(W)g3I&*JW_Qsog+)0_vHS@gX4F8?Y0^11k+5^6S0h02yG43eg^uz5m6X3bS6 za+!JaqWcXS-FVlBLXx=dkLj-*!(R9^ko++jTIFv;FT6uukc-c)3vsh!6Rhx@FvHw} ze6vM_w%Vi6siy4_J5H!)+{?BV^rL1%1C00(0Z+Trb69AQLGOy5SG*?YE^H}lXEG$x z0Apg&3z=AS4BwtDaaC}{_SET*(Dp1|9N9{`@h+fq(lk`WK`lB(fyM1lnMtU*OA(A(w-ZjyhB`V`$^rB-y(EBkx(pY_G~s`@v8sA9I4Ie z4&Wa+t9mmTP?)G)%9yd-p-QCI4KA0C0N>Gi|0;L4`Mm)2AemhU__Is^uPd|M(+vy{ zvRN-PG>}&ewepZ@*gfvxA7@}aXheP4h*BB#jxvU+cnne4H{wcQO^MsU(3ChY zbhE&4sbPPix@{x`9g%NS&H~aW^r6Bf*F? zqL~*7?8d#qhb1;Vr38*PFDdJi{M~dVohxc{HhYj?Z2(7jQw%0bwjP=bHC~!2<&mq( z7`_8Po*v4oa3mv{zj$i<;4W02Ked_o!AS?cuGE8*2vGA9x!A=7)z#i~5~HuHz4;_v z$J34m%8s1Y0|`*5+v4%0J`EKC272A3^4IteK5Bg{1$z3_cxUp<4KSz?k)yb=m$^qz^v zHk3CCd4vowr-0#Vo3$Ua`Jc2MZ!6&d=vcKnX@QWJ!i7$=f>Yub6p~96{7Y0pzLvVp zDdz0dn{!v3&1sw{-9Gx}8$?{yEQc4jSHXlthedndCFcX@oyIPSU>oNdo`{dV57_F0`soMr1U2OwD|IypV*cGvD+`-TPudXlS zDCno`Cu5*-+J&Al>77*w7Z)TaMe zgYxz`s2g3{pkVq1s)`1cXB?CjLx~xbIv{Rw!_f!0?Pr3|$+(K(zbpXl?ieU-s{yU9uCrMaHTk zq8tpMl~QFw(RQ$Z0-(?igF@T95zI%Tu2cv!Ip zJxqNC9DyTn=JR0}>x%xSWH~DzjxGA%OXP zC};8~3hNwymrzxO&B43I)E~93#aZTnCmpX3eY2{_Z&=N^f*DeI|885s3`6Akrw7fb z%gmp#X3&fP{%|Ivp}+`lSGK1cq3MS$v@Jf-X0FILWQ+QI2O+j$i1Rc9s%9Kh=L&$) z4K8LqxTQ(uFgtKS9d8DZJ`RIYuzXB3XBo;!Ka5a8}K;Kj>@TBt({ z82%n*cVj-;f5eD#2S*t;GSr||n?O=QHbiwM5YZd?2tWZi>In%M1$Fk(Dxonh-|>#`oQ{@MDr^(pIv);p~; ztRt=ctv2gdmaUdAoGs4hoDVwZI*XlI&Thw6$McTWjzx}}9oIN6bPRT+IKEGOKk<)= z4oeCUuD4tdxt6#VxaPWMy3TeDbfvju*T0hw zB>y#eWAYQpOOtO&z9KmvVGDL8J)d-cQdQFJNo7e>lg1^DOmZhBCv`i&=yP44+&&q7 z9!xJ!zb^f}^do7Xq+OaeBrPK?lKO4xE2%Z9vr~&xN2EGa!~O2=m(%a7%D~%9)jOZcfwSz~DOv&l!CA;4=pIA8a1nG3el+t%F`4G<(n`gU%e(Z;)fq zwt-CpA0Iex;N*c93>-W#bKuwcTk>DX|6P7f{@M9`^DX&*8~W1F-w*W-yu5s3SKQ( zS8!j!oPz5LCKp^#Fti}Ep!tk9&RBNFEoWSRhUbhiXJno6!?5;YyNA6t?15p>zU}3I zV0(gaaC+?J87#7sL7&*i)Uh;+OwF@0sq2E5C3^zR8PRIJYsu4JE$ zqmnyE^Z)}oL)Uj)l@v`}pTeP&=5oA&zyD+5K$$r%9K1LCn>Ao#^j+w&QwryZjAOIn zfqer+*OxyQDyUIG3!Vm4^1zFwyWH7PG2RQ#{0MIJ29%GW4i!l=_3P2o(#^>M6Mw{! zcx#6UnE*+AIYr>9GvC4DjXte;I(PPL+0&Kg?T$A`Zwp5)+?ZswEXnD{!=pbhHjTGy zufxuL&vyYK{~!gwKoBF)I>$ik1W}BWXAL6w1zj16gB4sJ>k-jcc(sOz=pPVrObB#_nk4~(PdG!lJOx-$v^@)c$Kaov+&E%H%vGi; zufYn<;^U#0Kp+9W%Gnp*TTN&kf9)7RwyL}>ZM~I=?zseWqwI_CFlqH~*!StZy?s<^P{d){$=GWbM(5E_ZU#CD;pv5%P|=n!Mw+)b2Y8-gxa^_SwolKVzR?vCo6- z^AP)NW1mOZ=VA7FjC~%(C!&NHoF+hkNnvig+RT0mT!B!R2ssQ}+3r9^cgSgCiPj4% z9Oa|I189r#M*uw^)agqSuTe3Qz)xf*^lCjBSoPV-y4qooycKd`+&(1jMN$Eh20<9N z=cLY6L8bu4g>mf0GKUt!ig!@NSz8bhf~0I-D)L%EB=Xvz$d<kc54oEj$L~k6v;sg$ z!#90NQPj@RH809T|FLL-0*Tw9%2egJ-_r>XB`asbLy6Eg!mJiZV|E_@7H3EM?(GIC zb9Ue}XdHSFnq{niykk+S_Om|0auz~XsM+{^{_=^PaOh*I+=lmMr?{q+7@rDdp=vq! z+ub$e5=N3Eud5Xw{N!qydHpnp#>>sNj~3F)99$so0uABc>pd>ZStU(pmyi({@{WPi zI|$dHjlLocQUlLnq`7z+I5W5`k=BN^6XdC$z9P+rv;#={il-gGbUx4C+-OWV&%(A7 zuES3GO>;ID^G&dbj;Ra)m1m@I1Vn_xS{u!!hYgGfN(HwS5espRzxA*|ey#j1#{GEHmPWaN2|M_EuU2k4~^e5U@y@ zLgCJVMH8~P+7?D!ZC`h>^+aeP!{Jt-k}U+!xX1~QmUN20XX66r@?=fb_a-$6!g3Gy z6s6-1)_Xb;)5I{~m_eAr=eXK#7M-98B^rvi7~^+GH2g}Jm>4+w*rW_i4OzR5Jem;@ zY$e045&MTPnXBzr5k+m3?_vWd3_K*b%Lp~W$pJ0xC(v4&JsSbhShO{BXf;$C!pY^o zfs-oMKDN;T>z#Da;h-G%>YKb##vtFL3}_t9;4?MQJ_MPG3H1TCbGO{We+0i#hkSqV=7l2x^pIzZVA zK0Q0}d?8SJYbuE+>_9=}B>dl;rl-E|d7Av~Pz3PCOvBIFG!OwogvxK=`B5QM z=++=Yl?z=x}%N#;A^BQ%5RtA{7JN!CSA!*Z%No>kj^s zzGlG9ZPQsLnKdxAz!eNv(WE>e2DBcQ3d(>;ra=Q*$EHjAh2Qz*3ENV}Y;?f#L+B;G`7#F>~KQc!oS;`%G6`E)>7vrt2;$|8&Rf+3sND)woZdrH}Pj^OsFY z@D`<-^=be)Px-a+Ob%o@!k6`jA727e#(?~db{0pzyHzMxDfO(A0p$Ya*T%6N%0z;K z_q`a9$Dtb$-Dgg!U>ypo0N;YcNQ=(Z_9zsc9PZ#AYWj=ssQ=b$&~*!an6FX#KUZms zwOp$FQd-`MN$BrtlYig@tPORER(o?G(Wy2@D+*4qJ7~KGE&T$B!W~Sauh-!#!<*jH zcidz_sIAWFFIPH2N+s;GNa>sPrg+OWpWf2$V1Fuq>=<=oI*oK1eN0t{d$$TC?sEMd zp1QGIB?RP83`pfQ>T=zyLOI29Jr^h-Yms;!V2R%k((fVK@9AFr?yLPKzQBdx3#b(+fxrF9iPBNGNAF6lAbAzLeA-oI>H zZM(xZ*EY#E%9dwKvYoX4%evRP*}B&Hh_%vsy|vUj$@&k=Cd&(!)t1GUJ1sx6Twuwx z9CLo*-09rv+~nNgY;->9T!onTOPqH*=R4;)uXC<<+~>FhvF@ijE`z{0lK4epbKAJ|%s#_jY`?@l#y;BRb{$NvNxCEH+N28* z!#*>~n)FcWlGIhil@N2;EgU4n>jx9E=wr-3BjxYyPkjdXJD{ipB51#qhOQwd) zQC%@f>8_gw|6%N4&$E%n>|=ql?vj~T!(wXIb+gTX@AIBNEayrR)R(R<3D(R|VBsmv z*#CDhHQT^ml-=6rFM)S8#ZP}bU5u`hhDXlh0Tjqp8Mf5Mni=#EPlXar12cXRK?P0( zyq#xwU0ELFkP5kI;ENRIOat3hbW<4NlQ-S^Ikpw=Jq$~H+Ntrf?cMK-0@zCN3OIPS zAQ!!)Kb%VHs!(NgF=O^rRn?O6&Q^<0AI~sW^qR!9HT1L?R1^qtq}eMfUT&6j|9*sWD2aK=C;c?m$Tm;F%#F9nL-NYCNv&rmw~VRAw91M$YR@NNWPEDD~h zMhAk!5f|KJ=)$|{$_S;`R4T*byQ%&^bcKY%s|rZ<-JvTZ-1VqsRL>*2GFl)s(OA4f z!f%h-BhBxK3Q6-$q?VFubRIzX1i%N7@Q|dHitRZ{i8)ZaE-_GC-ADx$JqNrHcA~CV ziccb~J=K?qzEt!GHBT`5Qo?yjRIkJqVJnQT*TBmvA|*u?!j@Md=|lL5SlbMh{5!5@T#k)|cV)ogdwpNnb|H zHox+La-7f}GlxEcPN#y8G#sTUfm0sGM;eaO=W%>Qc^pS6d30cSh&w2gL5fPhxRW59 zZ~l`bB<7)raydd`A&uxKM@V%XKXK=2fK<%z6Ze)zKN)`Fq3!4={5-jsb19%mi-oQn z$fXM@k=(}^F;pQ%0-^b;D=kFT0{YrgJe+VvF;sGRA5~Xm;t&)OERMaR8i+-1AApS^ z8W@fShB1gt+{;=8#;fBPPmL46(+41(;kN)q;-O#xJl&0S;5X{!Sk}vPV|pnL1!8r< zhtl+Oah#`*HI4*_BB~IOOmra?H!6Uz17pjGDN)K`cSV=ckcU!;LX5@qNEaB5bsGmT zwvcj`nZncJ>E{yOi&ILVG^G@aG#AyNdgRqYai>5UVxl9j7K$?m7@xrFYN@ybRGhh~ zrQ(cG#W8B339$pDLUu#1YGMnaSNR<8DYMR|3J9CdmAa#aJjqaokqU+~6V%qQpMb3} zoVASSY&R`WaUt36!D^&OU_25;Q=n;ja&Wdkz%i zLQBnvX&La^%)7Z(g})hRwF}gNWrFInlO)ZQ2u?5bamb3<4oZ&*NX3>Jxwb8y&imd= zC^Q#a0((}xM`oi)4K%ZaBMfGq|A&MMc*-{K_+nIK-F#PYFj0&I2ikXxC_W2De-ld%}lhtb7KVU=VG7VDuA8jdQq>D4{OJUt-4tEF)$M}iooKhGQo?jiEhVl$9UR4|1@o_)d|d&> zu0^sS)-1eIK;-nFfD?9Em&Ahex92mKU!Zs{olB^|S`pVO44gsl4{RJo6=7*9_&&<( z562&(I@RqUS5~NtDgjlAs1hrpN*s@%p+tn6;I8CD=*bjGTE~(gOHk1D4iUd6{kkXH^IS@ z2JU$PU!kZLiNI+Ev(#%v07C9Fn8fr`4~cgtH6tRm@-yjb`>UcxVTSrk7$QvK&br#} zP?AmI1r%i_IFVd8_TmO|3UdR=N|AvbO_?}H`Y9{aV1a(?!3|{j6+kr@ohFXwzp)8U z+jnAU-bqZE#tJQ-`=7!LrK%y^7Pn84$=%-R_|#)}Sai(MKas4EDX%E5^G--!up>aI zW88{5;DfHVt5cX=Ir)n9S9P$UuB1YPpsp<#Pt5LAu*DRK=Ik0|Ssq@i|gr|K=)LJ0Xr$4n&|d z6Hl~^@P3AljUXoV4B`O;2)tg4lj4G~#(MMPD}~=;UG=xmf+0sHmXVV=WVd8od~dS4_*8^5zl-211wogN`N*NzCK9uqVi&CM zaTjdzS2eO-upYa>6#i4dlM(Qyn|Jq>U`Bdq!Qh2xr>!D~CsRryPcem;20U#eJn1YT z4r0g!ya&zR^gf;pgKHSE8O6S)og{8ru@yt()sZBacIP>I3n({y>O@ zid3wPL3nDG4reI`+FzUmR%)qBy_fyPc1mzyXYtLs2-+LU_b#YYXiLBqLB)6lg~Hs} zga)ZM43Gm=h>6r$K>=~uaUho;1BJ^ESDOzluw+yCUrMXbBMq~`;4rI5BX;Su_l8}B z%K}&11V9NteCk>48O^-PHyS4o(TDY*NFMkXHrkH_D%L|=f~XmHqNmE(>!C&g>U3YX zkhN+?+GGsKVs8m5xu=;Xi1J53rFB~ z%P!4)=_jE`bvf^#6E&xo6EyD?llL%T#wO65uE-(f8ZF`U* zaZyg8ZS7>plxX4$% zt1D*k3o41sJ66HNM*i5nL@qXI=c+C?qryfW2zXnG0gHENRM^Ni7GM?oAi!=zZco=6 zQh}C@SQTN6=J&M2Gx1@G`|{j%vY7kLY(c2W7rLTN<%r)lM`5@De;A(*$rQ4kZEofD zaR>L^s+QVS9KB zb2Fs)xc9e1!O+*?#W{DO3T1mPd>vfsFE{SO3sc-rQK!lSNP)}n|0pQI*;qW-Z`JrtABGQ zNLo1yEU-{X-izcDFyTdbfQS#;^0a}OG36U}?zf%OU~qR2>l>xgAEofkpyOqaE6tmV zr5W?z@3wN7i*(()FHZM#**KV~(D4Y{xI_e`kl|>y&3xs#7jY$x8XB>lN2* z*JZA3m&vs^`Q7AI$%~RlC8sAJO4^b1Y|?{CzksWri1V{PZ})ki&-^}9`V{s#kseCl zlirfPE`4RXKYc;^jp-%n_Vh2)cBE}i`%~KEX}?bMq~)ajHMJ>qY3jJttklkafA9Bt zzd!W*cjo@g9hvWD{x2N&EQ0Hv(#*3notf+VKG65dzC-(VXMCRVX~x?b&u27b+@0ag zI5*?#?7Hl-?8(_@XAjACWPd+k|A1`+ULElKfQbXn81Q!1Q(42Z^0F@LewLBAUG&A@*S{BYok zfwvEwHSn|iUHRMc*XB>kADN$%|HIJMp?@Cw$k6+SmJPjZ=s81QFZ@Gcps=VgqtIOV z_aPhLX6K?Ic|#%v?-smJu(DuD!LQ*|r*FajVJ{DRbXe`MiO|>)|6>wEmpAAj1z#ey zKFVS0=tO?e&mq~|k}y*5f#>7Ep893y&077eNh(jOsfr}i<1=C}r_XAL?2~2oa|Uq6 zmD8ZPKFdhHK`ncOw4;@P*k-Lp*xqzqN&=;n_d&JPsA{3tV7(YgE}wg=qHO_Do815l1rL0 zjSw{3TJ3BjMlg6{ z)B6-0Ky&qoV#=ucVe7=*Y;-6H14WfT->XAGbLd;{`pwn02^OH7pXIMQDpg)w4K#m5 zsyG)j%1vGU@9pa=1Q9yFY#1M+Le3&y6H)~&;10TdL@eG3vqrd#H;3+Lh6F0JKvy3N zqs(vo`Yg%-!Jfm-D>>{^1{;>FXJJ|af!dqN(wL>M2Fio}^Xwau4FiCp;|o6Ko#k8_ z9kqB7xfaJNbG8?+HH0@L4lkE<6`t-o0M_ZQLk+D1nR|_ej7D3BY6nG{I6|_4IVixa z#IT zh2})_H>OuikD2Z@%{EOnoogCwN;g?dN8~T$T`-M!NnR;0lYcFbfLFY4rR~xNX`NJ$ zvw5X7TI#Pmo#K4Liwg4DR9& z!-$4yH}3_IEoCPPFG?skzadK#i~d&C=KQc6nxUGnpm0)z{OX)2tbuyO7Kr?ylOg~^ z84Su{&%x;f0D`A#0B8lku$4f51(0bRB!b(Q+Yq{MepMR8;iIaV>YwByv>0XINLDy^aJ=Y=zYm8(3Ii<2#3^e zdHTAS#%#WRn}y2Y3&l*~3IMn+eJO-XiPA$+$r4Uhf96Y_W;|N1-)5(J$2|@dRw68q zrlL-P=Z2u*|LN>%;G?Rp{F~2ACPNrPNJ0`rh!B;CP@z~%5wLWIwgM4wqKJ`N3X~#Z z@@57p3#8))$EjMY6^&S1wRUT}RxMl7FVIwpwbcdI?a$h-rPg*c4yDwx$g&}`|8vg0 z@4ZQa+Uk#&dGCJTd+xdC`@%KnB|qhZlo&=3=42wPJGcAYo_I9{l3KJdUIqgMQkOtM zHVzmVs@Re~|Avh&Ln*+eUs9a!8|}o+67F~r!niJ)KT=+jny~GkSpMb0WZJT0ZheQh z@jy|1J~ANhM*P2Jw8TYx99@O`gpo=Bd0qKPAd>UsBe1CPqJ~lC2|R=5F+A@u z`*SzTXIC7RdULo1GeCu5jqYV24ZynuH6RU9gQ&b=mT@g1uEkHa#9vaSK3J2gL9>g( zo8@P%*_fZTdLvZ4%eo&E^FrQUYr%(cSFlrP97e?MS^$?_=3Q|gj1cp%stT1vO6fkH z5Y{IX10T;ChRlJs>lXbCQ$n1TU~lbr)Bh^@bYzbE%CU!V#&=#|d+3z(Dml?-;gDF) ziV#s}X+;Q74XHy(3orW7{w}Uf78e^1H;OeyN}*OGFu4HN&5#j0^$&pw$;n6ekI!I2 zRxgDJxKc;ae`W8!UkU9M@c!Z&1B6sS^g`&MC;K&2eu`%SBAUAi%HXrqz56Q4=a=)p z1k$D&WymI0K*Z1E){xgI9oCWviPMFyj~N<%tjAkG6t7NY&C znKG!{b+94*37oo5x`UN~Q}P{9z~FI|9?-|v8wAa#mt;{(45QG@ik_?H)$7cw(p+fz#X<)`yusevf<}KI- z8R!ceF?_-VS}iF>)wk<-I|gzW%aAXZF%xj2lZ1s0)yZQ8+pFGKr9kj3+yAKo0Cj9L zuVsU(rqmn3BoT5@B?=KlZ~O?5q>TJs&zC)GJ(qhf@VGoX-Jf=6T_hk_W-Ktq8|B6) zi>iu@qQCfi{Ezwn*`I`4=w9D0-{;{DI^O5={oMNlZ_>NLJJlP6o%KlnF?#btS_F#O z1`IWo#dK17jO=#4!U~|HI%@@dW}8lz8-_@W=D!;W?La64VE!7CKFzc1qjgWW!T}{( z3+(ls9webI`kGJH;a{yr;3(EMv{(a*)$_96obN%ZRk8sk>vc(4U8zzMtlK5175?

    {6uh2{DxC1o)w(AJg=^W1Ko1I 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 +#include + +#define VERSION "2.22" +#define TEARVERSION "2.22" +#define PID_STRING "ProBoard 2.22" +#define PID_STRING_HUDSON PID_STRING " H" +#define PID_STRING_SQUISH PID_STRING " S" +#define PID_STRING_JAM PID_STRING " J" +#define PORT_VALUE 10 + +#define MAX_UNREG_NODES 255 +#define MAX_UNREG_USERS 100000 + +#define VER_NUM 222 + +const word VER_WORD = 0x0220; +const word VER_BETA = 0xFFFF; // 0000-EFFF = beta + // F000-FEEE = gamma + // FFFF = release + + +//-------------------------------------------- +// Color of the status bar on the main console +//-------------------------------------------- + +#define BAR_COLOR 0x4E + + +#include + +#ifndef MSGAPI + class MSG; +#endif + +#ifdef Use_MsgBase + #include "msgbase.hpp" +#else + class Message; + class MsgBase; + class MsgBaseList; + class SquishMsgBase; + class HudsonMsgBase; + class JamMsgBase; +#endif + +extern String S_PRESS_ENTER_TO_CONTINUE; + +const int MAX_PEX_HANDLERS = 100; + +const int BUFSIZE_FAST = 2048; +const int BUFSIZE_SLOW = 512; + +#ifdef RELEASE + inline void SCRAMBLE() + { + *((dword _far *)12) = *((dword _far *)0x46C); + } +#else + #define SCRAMBLE() ; +#endif + +/* +struct User : _User + { + int Read(int rec); // Read record from recnr 'rec' + int Write(int rec); // Write record to recnr 'rec' (-1 = add) + int Find(char *username); // Find user with name 'username' + int FindAlias(char *alias); // Find user with alias 'alias' + void list(char *); // Generate user list + void gentops(); // Generate top-statistics + int FindFirstMatch(char *str,bool fuzzy); + int FindNextMatch (char *str,bool fuzzy); + }; +*/ + +struct User : _User + { + void list(char *,bool aliases=FALSE); // Generate user list + //void gentops(); // Generate top-statistics + }; + +struct Config : _Config {}; +struct LanguageString : _LanguageString {}; +struct AreaGroup : _AreaGroup {}; + +struct FileArea : _FileArea + { + static File f; + static int lastAreaNum; + static FileArea *lastArea; + static int numAreas; + + static void open(); + public: + int areaNum; + + bool read(int); + + static void close(); + static int highAreaNum(); + }; + +struct timelog : _TimeLog + { + void read(); + void update(); + }; + +struct dl_today + { + int files; + int kb; + }; + +struct BinLog + { + Date date; // 3 + Time timeIn; // 3 + Time timeOut; // 3 + char name[36]; // 36 + char city[26]; // 26 + char country[26]; // 26 + long baud; // 4 + word node; // 2 + long kbDown; // 4 + long kbUp; // 4 + word yells; // 2 + word level; // 2 + dword uflags; // 4 + char alias[36]; // 36 + + byte extra[45]; + + BinLog(); + + bool append(); + }; + +struct user_online + { + char name[36]; + char city[16]; + unsigned baud; + int status; + byte extra[8]; + + void read(int = 0); + void write(); + void clear(); + int chatreq(int); // 0->Chat Granted 1->Timeout 2->Not Avail + int check_chat(); // 0->No (>0)->node + void setstatus(int stat,int node=0); + int getstatus(int node=0); + }; + +#define UO_OFFLINE -2 +#define UO_BROWSING 0 +#define UO_SHELLING -3 +#define UO_BUSY -4 +#define UO_CHATTING -1 + +struct limits + { + unsigned level; + int timelimit; + int daily_klimit; + int pre_download; + char id[6]; + unsigned free; // Free upload in Kb. + unsigned char factor; // Percentage upload required + unsigned max_download; // Max download for this level + unsigned fallto; // Fall to level x when max. reached + int msgfactor; // # Kbytes granted per message written + int sessionlimit; // Time limit per session + byte extra[3]; + }; + +struct topentry + { + char name[36]; + dword n; + }; + +struct aka + { + int zone; + int net; + int node; + int point; + + int read(int n); + }; + + +class usertimer + { + time_t started; + time_t suspend_start; + int suspendedtime; + bool suspended; + int fixedtime; + time_t inactivity_start; + public: + usertimer(); + void start(int minutes); + void increase(); + void decrease(); + void changeleft(int); + void suspend(); + void restart(); + int timesuspended() { return suspendedtime; } + int left(); + int online(); + int used(); + void check(); + void clearinactivity(); + void checkinactivity(); + }; + +#define READMODE_ALL 0 +#define READMODE_UPFIRST 1 +#define READMODE_UPALL 2 +#define READMODE_DIGITS 3 +#define READMODE_PWD 64 +#define READMODE_NOFIELD 128 + +class command_stack + { + int sp; + char buf[100]; + public: + command_stack() { sp=0; } + void parse(char *); + void clear() { sp=0; } + char getnext(); + char pollnext(); + }; + +struct fossilio + { + int port; // comport (0=COM1) + long baud; // baud rate + int external; // 1 if key received from com-port + int stopenabled; + bool show_local; + bool show_remote; + command_stack inputbuffer; + int (*more_func)(); + + byte *outputBuffer; + int bufferPtr; + + void init(int port,long baud); + fossilio() { baud = 65535L; outputBuffer = NULL; } + ~fossilio(); + void flush(); + byte readkey(); + byte wait(); + byte wait(char *); + void wait(char); + fossilio& operator<<(char); + fossilio& operator<<(char*); + byte send(char *str,char *hotkeys=NULL); + byte sendfile(char *filename,char *hotkeys=NULL); + void drawfield(int len); + void read(char *s,int max,byte mode=READMODE_ALL); + int read(int& i,int max=5); + int read(long&, int max=7); + void readpass(char *s); + void hangup(); + int ask(int def=1); + void cooldown(); + void heatup(); + void color(byte); + void fullcolor(byte); + void move(int x,int y); + void clreol(); + void cls(); + void enablestop(); + void disablestop(); + void clearinput(); + }; + + +struct node_entry + { + byte type; + int zone,region,net,node; + int cost; + char name[50]; + char city[50]; + + int read(char *); + }; + +struct KeyData + { + Date createDate; + Time createTime; + char createdBy[36]; + char sysopName[36]; + char bbsName[36]; + bool alpha; + bool beta; + bool gamma; + bool distSite; + bool regSite; + bool commercial; + Date expirDate; + word expirVersion; + byte extra[2]; + }; + +#define NODE_ZONE 1 +#define NODE_REGION 2 +#define NODE_HOST 3 +#define NODE_HUB 4 + +struct event + { + int type; // Errorlevel or DOS command + int errorlevel; // Errorlevel to use (>5) + char command[80]; // DOS Command to execute + Time start; // Time of the event + int duration; // Duration of the event (min). + byte empty; + byte days; // Bits 0-6 -> days of the week + byte node; // Node number to execute the event on + byte enabled; // Enabled? + + int minutesleft(); // Minutes until this event + int nextday(); // Day of this event + }; + +struct pvt_file + { + Date date; + char fname[13]; + char username[36]; + char from[36]; + }; + + +struct modem_response + { + long baud; + int port; + }; + +struct protocol + { + char name[50]; // Name of protocol + char key; // Hotkey for Protocol + char flags; // Protocol behavior + char logfile[60]; // Logfile from protocol + char ctlfile[60]; // Control file (redirection file) + char dlcom[126]; // Download command line + unsigned efficiency; // Throughput efficiency + char ulcom[128]; // Upload command line + char dlstring[80]; // String to place in download control file + char ulstring[80]; // String to place in upload control file + char dlkeyword[40]; // Download keyword to search for in logfile + char ulkeyword[40]; // Upload keyword to search for in logfile + int wordnr; // File name word nr after keyword (1-..) + + bool read(int n); + }; + +#define PROT_BATCH 1 +#define PROT_ENABLED 2 +#define PROT_BOTH 4 +#define PROT_BIM 8 +#define PROT_LOCAL 16 + +extern byte current_color; + +extern bool chatflag; +extern bool noyell_flag; +extern int num_yells; + +extern bool stopped; + +extern char user_firstname[]; +extern char mypath[]; +extern char syspath[]; +extern char curmenu[]; +extern char page_reason[]; + +extern bool menuchanged; +extern bool updatemenu; + +extern long totalcalls; +extern bool password_ok; +extern int num_users; +extern int time_limit; +extern int event_due; +extern int time_removed; +extern int download_limit; +extern int download_delay; +extern word free_download; +extern word upload_needed; +extern int node_number; +extern bool desqview; +extern int num_limits; +extern int returnvalue; +extern bool quiet; +extern bool net_entered,echo_entered; +extern bool registered; +extern word max_node_count; +extern int display_mode; +extern bool ega_43; +extern bool use_ems; +extern byte org_videomode; +extern word org_numlines; +extern bool ignore_carrier; +extern bool reliable; +extern bool fatal; +extern bool no_hangup; +extern word min_level; +extern bool rip_detected; +extern bool sysop_next; +extern int rip_screenlines; +extern int pastFirstUse; +extern bool newFilesChecked; + +extern User user; +extern int user_recnr; +extern Config far cfg; +extern limits limit[]; +extern command_stack comstack; +extern KeyData regis; +extern fossilio io; +extern event nextevent; + +extern LanguageFile pb_curlang; +extern LanguageString *pb_lang; +extern int pb_num_lang; + +extern BinLog lastcaller; + +#ifdef Use_TagList + extern LinkedList taglist; +#endif + +struct PEXhandle + { + void *func; + unsigned ds; + }; + +//extern PEXhandle pex_handlers[]; + +extern "C" int CallPEX(PEXhandle * ...); +//extern "C" void add_fhandles(); + +#ifdef Use_Handlers + extern LinkedList sysopkey_handlers; + extern LinkedList hangup_handlers; +#endif + +/* +#define PEX_IO_INIT (&pex_handlers[0]) +#define PEX_IO_STATUS (&pex_handlers[1]) +#define PEX_IO_HANGUP (&pex_handlers[2]) +#define PEX_IO_READBYTE (&pex_handlers[3]) +#define PEX_IO_SENDBYTE (&pex_handlers[4]) +#define PEX_IO_SENDBLOCK (&pex_handlers[5]) +#define PEX_SYSOPKEY (&pex_handlers[6]) +#define PEX_HANGUP (&pex_handlers[7]) +*/ + +/* +extern + File f_users, + f_usersxi, + f_usersidx, + f_userspb; +*/ + +extern char *noregmsg; + +extern Date login_date; +extern Time login_time; + +void chat(); +void LOG(char * ...); +void LOG(int level, char * ...); +void fatalerror(char *s); +void file_error(int fn , int errno = 0); // <0 -> Return, >0 -> Exit +void file_error (char *fn , int errno = 0); +void file_warning(char *fn , int errno = 0); +int login(); +void menu_processor(); + +void shell (char * = NULL), combined_clear (char * = NULL), + showansasc (char * = NULL), clearmarked (char * = NULL), + pagesysop (char * = NULL), qscan_msg (char * = NULL), + writemsg (char * = NULL), scan_msg (char * = NULL), + readmsg (char * = NULL), usage_graph (char * ), + city_change (char * = NULL), days_graph (char * ), + change_state (char * = NULL), weeks_graph (char * ), + password_change (char * = NULL), version_info (char * = NULL), + lines_change (char * = NULL), raw_dir (char * = NULL), + ansi_toggle (char * = NULL), list_files (char * = NULL), + cls_toggle (char * = NULL), new_files (char * = NULL), + pause_toggle (char * = NULL), keyword_search (char * = NULL), + set_filearea (char * = NULL), filename_search (char * = NULL), + fsed_toggle (char * = NULL), download (char * = NULL), + hotkey_toggle (char * = NULL), upload (char * = NULL), + user_list (char * = NULL), view_named_file (char * = NULL), + questionnaire (char * = NULL), view_file (char * = NULL), + mailcheck (char * = NULL), view_file_wait (char * = NULL), + list_archive (char * = NULL), lastcallers (char * = NULL), + time_stat (char * = NULL), logentry (char * = NULL), + combined_select (char * = NULL), logoff (char * = NULL), + change_access (char * = NULL), view_gif (char * = NULL), + tops (char * = NULL), ibm_toggle (char * = NULL), + show_users_online (char * = NULL), phone_change (char * = NULL), + multichat (char * = NULL), dataphone_change (char * = NULL), + set_msgarea (char * = NULL), handle_change (char * = NULL), + view_ans_wait (char * = NULL), usereditor (char * = NULL), + bulletin (char * = NULL), toggle_avatar (char * = NULL), + toggle_avtplus (char * = NULL), show_graph (char * ), + ripfont_change (char * = NULL), select_language (char * = NULL), + rip_toggle (char * = NULL), edit_taglist (char * = NULL), + change_dateformat (char * = NULL), change_faxphone (char * = NULL), + change_address (char * = NULL), change_country (char * = NULL), + change_default_protocol(char * = NULL), + select_msggroup (char * = NULL), select_filegroup (char * = NULL); + +int run_sdkfile (char * = NULL); +char showansascrip (char *); +extern void (*menufunctions[])(char *); + +void parse_date(Date& d,char *s,int format); +void multilinechat(int); +char *strstrl(char *,char *); +int check_access(unsigned,AccessFlags); // 0 -> Denied +int check_access(unsigned,AccessFlags,AccessFlags); // 0 -> Denied +int linecounter(int = -1); +void sysopkey(word); +void replymsg(Message&); +int matchstring(char *s,char *d); // 1->ok, 0->not ok +int matchstring(char *s,char *d,int l); // 1->ok, 0->not ok +int matchfile(char *search,char *file); +char *findmatch(char *,char *); +void strip_path(char *); +void strip_fname(char *); +void msged(); +char showansasc(char *file,char *hotkeys); +bool show_rip( char *file , bool reset = FALSE); + +void rip_send( char *s); +void rip_query( char *cmd); +void rip_reset(); +void rip_textmode(); +void rip_nomore(); +void rip_kill_mouse_fields(); +void rip_bar(int,int,int,int); +void rip_color(int); +void rip_fill_color(int,int); +void rip_send_icons(); +void rip_button(int x1,int y1,int x2,int y2,int hotkey,bool def,char *icon,char *text,char *hostcmd); +void rip_start_dialog(char *prompt,int max); +void rip_end_dialog(); +void rip_start_yesno_dialog( char *prompt , bool); +void rip_clear_status(); +void rip_show_more(); +void rip_show_more_tag(); +void rip_show_enter(); + +#define rip_save_textwindow() rip_query("$STW$") +#define rip_restore_textwindow() rip_query("$RTW$") +#define rip_save_mouse_fields() rip_query("$SMF$") +#define rip_restore_mouse_fields() rip_query("$RMF$") +#define rip_paste_clipboard() rip_query("$PCB$") +#define rip_doorway_on() rip_query("$DWAYON$") +#define rip_doorway_off() rip_query("$DWAYOFF$") +#define rip_cursor_on() rip_query("$CON$") +#define rip_cursor_off() rip_query("$COFF$") + +String meganum(word); + +void readconfig(); +int parse_data(char *s,String *param); // ret=number of params +void create_arealist(String param[],int numpara,BitArray& arealist,bool msgareas = FALSE); +void adjust_limits(); +void deltrailspaces(char *); +int wordwrap(char *,String&,int max); +char playsong(char *name,char *keys,int length); +void toggle_userinfo(); +void toggle_help(); +void toggle_macrohelp(); +void edit_user(); +void screen_image(); +void update_user_window(); +void update_display(); +long post_message(char *from,char *to,char *subj,int area,int pvt); +long post_netmail_message(char *from,char *to,char *subj,int area,int zone,int net,int node,int point,bool crash,bool attach,bool kill); +void write_msgtmp(char *s); +void edit_message(); +void write_msginf( char *from , char *to , char *subj , long num , char *area , char *pvt); +String replace_stringvars(char *s); +void show_intro(); +void check_exe(char *); +int fuzzy_search(char *,char *,int); +int intimewindow(Time t1,Time t2); +char *dos_error_message(int errno); +bool select_protocol(protocol& p , char protocol_key = '\0' , bool seldef = FALSE); +String fullcolor_string(byte color); +void remove_tag(char *name , int area); +bool is_tagged(char *name , int area); +void write_taglist(); +void read_taglist(); +void InputDate( Date &d, + byte iDateFormat ); + +void rip_text_window( int x0, int y0 , int x1 , int y1 , int font ); + +extern "C" + { + void set43(); + void set25(); + void setvideomode(unsigned); + unsigned getvideomode(); + } + +void exit_proboard(int level = 0); + +extern char *months_short[]; +extern char *months_full []; +extern char *days_short []; +extern char *days_full []; +extern char *date_formats[]; +extern char *date_formats_long[]; + +extern usertimer timer; + +extern FileName FN_BINLOG_PB, + FN_TIMELOG_PRO, + FN_ONLINE_PRO, + FN_MSGAREAS_PRO, + FN_PVTFILES_PB; + +const int ERR_BINLOG_PB = 6; +const int ERR_TIMELOG_PRO = 7; +const int ERR_ONLINE_PRO = 9; +const int ERR_AKA_PRO = 10; +const int ERR_USERS_BBS = 11; +const int ERR_USERSXI_BBS = 12; +const int ERR_USERSIDX_BBS = 13; +const int ERR_USERSPB_BBS = 14; +const int ERR_LASTREAD_BBS = 15; + +extern char *EMPTY_STRING; + +#define COLOR_RED 1 +#define COLOR_GREEN 2 +#define COLOR_YELLOW 3 +#define COLOR_BLUE 4 +#define COLOR_MAGENTA 5 +#define COLOR_CYAN 6 +#define COLOR_WHITE 7 +#define COLOR_BLINK 0x80 + +#define ERRLVL_FATALERR 1 + +#define READMSG_ALL 1 +#define READMSG_FWD 1 +#define READMSG_REV 2 +#define READMSG_SEL 3 +#define READMSG_SEARCH 4 +#define READMSG_NEW 5 +#define READMSG_INDIV 6 +#define READMSG_MARKED 7 + +#define ANS_OK 0 // showansasc retval if ok +#define ANS_STOP 1 // showansasc retval if file stopped +#define ANS_NOFILE 2 // showansasc retval if no file + +#define ansi_mode (user.uFlags & UFLAG_ANSI) +#define cls_mode (user.uFlags & UFLAG_CLEAR) +#define pause_mode (user.uFlags & UFLAG_PAUSE) +#define fsed_mode (user.uFlags & UFLAG_FSED) +#define rip_mode (rip_detected && !(user.uFlags & UFLAG_NORIP)) +#define stack_mode (!(user.uFlags & UFLAG_HOTKEYS)) +#define no_ibm (user.uFlags & UFLAG_NOIBM) +#define avatar (user.uFlags & UFLAG_AVATAR) +#define avtplus (user.uFlags & UFLAG_AVTPLUS) + +struct DownloadFile + { + int area; + long size; + bool free; + bool copy; + String name; + }; + +#include "prompts.hpp" + +bool ReadLanguage( char *langname ); + +char wait_language_hotkeys(char *hk, bool enter = TRUE); +int language_string_length( char *str ); + + + +#include "reg.hpp" + + +#endif + diff --git a/PROBOARD.LOG b/PROBOARD.LOG new file mode 100644 index 0000000..619c85a --- /dev/null +++ b/PROBOARD.LOG @@ -0,0 +1,455 @@ +23-May-95 20:57:21 ----------------------------------------------------- +23-May-95 20:57:21 Local login +23-May-95 20:57:22 Sysop hung up +23-May-95 20:57:50 ----------------------------------------------------- +23-May-95 20:57:50 Local login +23-May-95 20:57:51 Sysop hung up +23-May-95 20:58:09 ----------------------------------------------------- +23-May-95 20:58:09 Local login +23-May-95 20:58:11 User logged in: Philippe Leybaert +23-May-95 20:58:11 Calling from Zelzate - Level 65001 +23-May-95 20:58:18 Sysop hung up +23-May-95 20:58:51 s = ' Scanning user database...TEST....' +23-May-95 20:58:51 ----------------------------------------------------- +23-May-95 20:58:51 Local login +23-May-95 20:58:53 Sysop hung up +23-May-95 21:00:20 s = ' Scanning user database...TEST....' +23-May-95 21:00:20 ----------------------------------------------------- +23-May-95 21:00:20 Local login +23-May-95 21:00:23 Sysop hung up +23-May-95 21:10:41 ----------------------------------------------------- +23-May-95 21:10:41 Local login +23-May-95 21:10:42 Can't read file +23-May-95 21:10:42 User logged in: Philippe Leybaert +23-May-95 21:10:42 Calling from Zelzate - Level 65001 +23-May-95 21:10:46 Sysop hung up +23-May-95 21:11:04 ----------------------------------------------------- +23-May-95 21:11:04 Local login +23-May-95 21:11:05 User logged in: Philippe Leybaert +23-May-95 21:11:05 Calling from Zelzate - Level 65001 +23-May-95 21:11:12 Sysop hung up +23-May-95 21:12:08 ----------------------------------------------------- +23-May-95 21:12:08 Local login +23-May-95 21:12:09 User logged in: Philippe Leybaert +23-May-95 21:12:09 Calling from Zelzate - Level 65001 +23-May-95 21:12:10 Sysop hung up +23-May-95 21:12:53 ----------------------------------------------------- +23-May-95 21:12:53 Local login +23-May-95 21:12:55 User logged in: Philippe Leybaert +23-May-95 21:12:55 Calling from Zelzate - Level 65001 +23-May-95 21:12:56 Sysop hung up +23-May-95 21:13:35 ----------------------------------------------------- +23-May-95 21:13:35 Local login +23-May-95 21:13:38 fname found = 'SCANNING' +23-May-95 21:13:39 User logged in: Philippe Leybaert +23-May-95 21:13:39 Calling from Zelzate - Level 65001 +23-May-95 21:13:41 Sysop hung up +05-Jun-95 12:27:23 ----------------------------------------------------- +05-Jun-95 12:27:23 Local login +05-Jun-95 12:27:27 User logged in: Ronny Minjou +05-Jun-95 12:27:27 Calling from Ertvelde - Level 50 +05-Jun-95 12:27:33 Sysop hung up +05-Jun-95 12:29:10 ----------------------------------------------------- +05-Jun-95 12:29:10 Local login +05-Jun-95 12:29:16 User logged in: Ronny Minjou +05-Jun-95 12:29:16 Calling from Ertvelde - Level 50 +05-Jun-95 12:45:39 Message #313 received (area 1) +05-Jun-95 12:48:38 Message #902 received (area 4) +05-Jun-95 12:55:53 ----------------------------------------------------- +05-Jun-95 12:55:53 Local login +05-Jun-95 12:55:57 User logged in: Ronny Minjou +05-Jun-95 12:55:57 Calling from Ertvelde - Level 50 +05-Jun-95 12:57:15 Message #313 received (area 1) +05-Jun-95 12:58:14 Message #902 received (area 4) +05-Jun-95 12:59:24 Message #313 received (area 1) +05-Jun-95 13:02:11 Message #902 received (area 4) +05-Jun-95 13:02:17 Sysop hung up +05-Jun-95 13:03:07 ----------------------------------------------------- +05-Jun-95 13:03:07 Local login +05-Jun-95 13:03:08 User logged in: Philippe Leybaert +05-Jun-95 13:03:08 Calling from Zelzate - Level 65001 +05-Jun-95 13:03:09 Menu: TOP +05-Jun-95 13:03:09 Menu: MAIN +05-Jun-95 13:03:10 Menu: FILES +05-Jun-95 13:03:11 Files listed (ProBoard BBS Software) +05-Jun-95 13:03:51 Menu: FILES +05-Jun-95 13:03:54 Sysop hung up +07-Jun-95 13:58:26 ----------------------------------------------------- +07-Jun-95 13:58:26 Local login +07-Jun-95 13:58:27 User logged in: Philippe Leybaert +07-Jun-95 13:58:27 Calling from Zelzate - Level 65001 +07-Jun-95 13:58:30 Menu: TOP +07-Jun-95 13:58:30 Menu: MAIN +07-Jun-95 13:58:31 Menu: SETUP +07-Jun-95 13:58:45 Screenlength changed to 25 +07-Jun-95 13:58:45 Menu: MAIN +07-Jun-95 13:58:46 Menu: UTIL +07-Jun-95 13:58:57 Version info requested +07-Jun-95 13:58:58 Version info requested +07-Jun-95 13:58:59 Version info requested +07-Jun-95 13:59:00 Version info requested +07-Jun-95 13:59:01 Version info requested +07-Jun-95 13:59:01 Version info requested +07-Jun-95 13:59:02 Version info requested +07-Jun-95 13:59:03 Version info requested +07-Jun-95 13:59:04 Version info requested +07-Jun-95 13:59:04 Version info requested +07-Jun-95 13:59:05 Version info requested +07-Jun-95 13:59:12 Sysop hung up +07-Jun-95 14:04:32 ----------------------------------------------------- +07-Jun-95 14:04:32 Local login +07-Jun-95 14:04:33 User logged in: Philippe Leybaert +07-Jun-95 14:04:33 Calling from Zelzate - Level 65001 +07-Jun-95 14:04:34 Menu: TOP +07-Jun-95 14:04:34 Menu: MAIN +07-Jun-95 14:04:36 Menu: SETUP +07-Jun-95 14:24:55 ----------------------------------------------------- +07-Jun-95 14:24:55 Local login +07-Jun-95 14:24:56 User logged in: Philippe Leybaert +07-Jun-95 14:24:56 Calling from Zelzate - Level 65001 +07-Jun-95 14:24:57 Menu: TOP +07-Jun-95 14:24:57 Menu: MAIN +07-Jun-95 14:24:58 Menu: MAIL +07-Jun-95 14:24:59 Menu: MAIN +07-Jun-95 14:25:00 Menu: SETUP +07-Jun-95 14:28:30 ----------------------------------------------------- +07-Jun-95 14:28:30 Local login +07-Jun-95 14:28:31 User logged in: Philippe Leybaert +07-Jun-95 14:28:31 Calling from Zelzate - Level 65001 +07-Jun-95 14:28:32 Menu: TOP +07-Jun-95 14:28:32 Menu: MAIN +07-Jun-95 14:28:33 Menu: SETUP +07-Jun-95 14:28:51 ----------------------------------------------------- +07-Jun-95 14:28:51 Local login +07-Jun-95 14:28:52 User logged in: Philippe Leybaert +07-Jun-95 14:28:52 Calling from Zelzate - Level 65001 +07-Jun-95 14:28:53 Menu: TOP +07-Jun-95 14:28:53 Menu: MAIN +07-Jun-95 14:28:53 Menu: MAIL +07-Jun-95 14:29:08 Menu: MAIN +07-Jun-95 14:29:11 Menu: SETUP +07-Jun-95 14:29:23 Sysop hung up +07-Jun-95 19:45:39 ----------------------------------------------------- +07-Jun-95 19:45:39 Local login +07-Jun-95 19:45:40 User logged in: Philippe Leybaert +07-Jun-95 19:45:40 Calling from Zelzate - Level 65001 +07-Jun-95 19:45:41 Menu: TOP +07-Jun-95 19:45:41 Menu: MAIN +07-Jun-95 19:45:42 Menu: MAIL +07-Jun-95 19:45:44 Menu: MAIN +07-Jun-95 19:45:45 Menu: SETUP +07-Jun-95 19:47:03 ----------------------------------------------------- +07-Jun-95 19:47:03 Local login +07-Jun-95 19:47:03 User logged in: Philippe Leybaert +07-Jun-95 19:47:03 Calling from Zelzate - Level 65001 +07-Jun-95 19:47:04 Menu: TOP +07-Jun-95 19:47:04 Menu: MAIN +07-Jun-95 19:47:07 Menu: SETUP +07-Jun-95 19:47:14 Sysop hung up +08-Jun-95 10:19:41 ----------------------------------------------------- +08-Jun-95 10:19:41 Local login +08-Jun-95 10:19:42 User logged in: Philippe Leybaert +08-Jun-95 10:19:42 Calling from Zelzate - Level 65001 +08-Jun-95 10:19:43 Menu: TOP +08-Jun-95 10:19:43 Menu: MAIN +08-Jun-95 10:19:43 Menu: MAIL +08-Jun-95 10:19:45 Menu: MAIN +08-Jun-95 10:19:45 Menu: FILES +08-Jun-95 10:19:46 Files listed (ProBoard BBS Software) +08-Jun-95 10:19:53 Menu: MAIN +08-Jun-95 10:19:53 Menu: SETUP +08-Jun-95 10:19:55 Page pausing enabled +08-Jun-95 10:19:56 Menu: SETUP +08-Jun-95 10:19:57 Menu: MAIN +08-Jun-95 10:19:58 Menu: FILES +08-Jun-95 10:19:59 Files listed (ProBoard BBS Software) +08-Jun-95 10:20:09 New files listed +08-Jun-95 10:22:04 Sysop hung up +08-Jun-95 10:22:54 ----------------------------------------------------- +08-Jun-95 10:22:54 Local login +08-Jun-95 10:22:54 User logged in: Philippe Leybaert +08-Jun-95 10:22:54 Calling from Zelzate - Level 65001 +08-Jun-95 10:22:55 Menu: TOP +08-Jun-95 10:22:55 Menu: MAIN +08-Jun-95 10:22:55 Menu: FILES +08-Jun-95 10:22:56 Files listed (FrontDoor Inbound) +08-Jun-95 10:23:11 Sysop hung up +26-Jun-95 18:32:01 ----------------------------------------------------- +26-Jun-95 18:32:01 Local login +26-Jun-95 18:32:02 User logged in: Philippe Leybaert +26-Jun-95 18:32:02 Calling from Zelzate - Level 65001 +26-Jun-95 18:32:06 Menu: TOP +26-Jun-95 18:32:06 Menu: MAIN +26-Jun-95 18:32:07 Menu: UTIL +26-Jun-95 18:32:12 Sysop hung up +12-Jul-95 10:14:22 ----------------------------------------------------- +12-Jul-95 10:14:22 Local login +12-Jul-95 10:14:22 crc = 113E8AB0 +12-Jul-95 10:15:04 ----------------------------------------------------- +12-Jul-95 10:15:04 Local login +12-Jul-95 10:18:54 Sysop hung up +15-Jul-95 15:45:48 ----------------------------------------------------- +15-Jul-95 15:45:48 Local login +15-Jul-95 15:45:50 User logged in: Philippe Leybaert +15-Jul-95 15:45:52 Calling from Zelzate - Level 65001 +15-Jul-95 15:45:53 Menu: TOP +15-Jul-95 15:45:53 Menu: MAIN +15-Jul-95 15:45:54 Menu: FILES +15-Jul-95 15:45:56 Files listed (ProBoard BBS Software) +15-Jul-95 15:46:42 Menu: FILES +15-Jul-95 15:48:00 Menu: FILES +15-Jul-95 15:48:21 Menu: FILES +15-Jul-95 15:48:50 Menu: FILES +15-Jul-95 15:48:52 Sysop hung up +15-Jul-95 15:50:51 ----------------------------------------------------- +15-Jul-95 15:50:51 Local login +15-Jul-95 15:50:52 User logged in: Philippe Leybaert +15-Jul-95 15:50:55 Calling from Zelzate - Level 65001 +15-Jul-95 15:51:23 Message #151 received (area 1) +15-Jul-95 15:51:24 Message #154 received (area 1) +15-Jul-95 15:51:25 Menu: TOP +15-Jul-95 15:51:26 Menu: MAIN +15-Jul-95 15:51:29 Menu: FILES +15-Jul-95 15:51:30 Files listed (ProBoard BBS Software) +15-Jul-95 15:52:17 Sysop hung up +16-Jul-95 08:29:20 ----------------------------------------------------- +16-Jul-95 08:29:20 Local login +16-Jul-95 08:32:23 Sysop hung up +16-Jul-95 08:39:25 ----------------------------------------------------- +16-Jul-95 08:39:25 Local login +16-Jul-95 08:39:27 Sysop hung up +16-Jul-95 11:08:57 ----------------------------------------------------- +16-Jul-95 11:08:57 Local login +16-Jul-95 11:08:59 User logged in: Philippe Leybaert +16-Jul-95 11:09:00 Sysop hung up +16-Jul-95 11:09:24 ----------------------------------------------------- +16-Jul-95 11:09:24 Local login +16-Jul-95 11:09:25 User logged in: Philippe Leybaert +16-Jul-95 11:09:49 Sysop hung up +16-Jul-95 11:14:59 ----------------------------------------------------- +16-Jul-95 11:14:59 Local login +16-Jul-95 11:15:00 User logged in: Philippe Leybaert +16-Jul-95 11:15:03 Sysop hung up +17-Jul-95 15:52:07 ----------------------------------------------------- +17-Jul-95 15:52:07 Local login +17-Jul-95 15:52:09 User logged in: Philippe Leybaert +17-Jul-95 15:52:12 Calling from Zelzate - Level 65001 +17-Jul-95 15:52:14 Menu: TOP +17-Jul-95 15:52:15 Menu: MAIN +17-Jul-95 15:52:16 Sysop hung up +17-Jul-95 16:00:55 ----------------------------------------------------- +17-Jul-95 16:00:55 Local login +17-Jul-95 16:00:56 User not located : Test User +17-Jul-95 16:01:01 Creating new user. +17-Jul-95 16:01:28 New user created. +17-Jul-95 16:01:29 Calling from fhdskfhsdkf - Level 50 +17-Jul-95 16:01:36 Sysop hung up +17-Jul-95 16:02:09 ----------------------------------------------------- +17-Jul-95 16:02:09 Local login +17-Jul-95 16:02:10 User logged in: Philippe Leybaert +17-Jul-95 16:02:10 Calling from Zelzate - Level 65001 +17-Jul-95 16:03:39 Sysop hung up +17-Jul-95 16:04:02 ----------------------------------------------------- +17-Jul-95 16:04:02 Local login +17-Jul-95 16:04:07 User not located : Uuu Uuu +17-Jul-95 16:04:10 Name misspelled (Uuu Uuu). +17-Jul-95 16:04:14 User not located : Uu Uu +17-Jul-95 16:04:15 Creating new user. +17-Jul-95 16:04:18 Sysop hung up +31-Jul-95 14:14:00 ----------------------------------------------------- +31-Jul-95 14:14:00 Local login +31-Jul-95 14:14:39 ----------------------------------------------------- +31-Jul-95 14:14:39 Local login +31-Jul-95 14:14:55 ----------------------------------------------------- +31-Jul-95 14:14:55 Local login +31-Jul-95 14:14:55 crc = 4E964376 +31-Jul-95 14:15:23 ----------------------------------------------------- +31-Jul-95 14:15:23 Local login +31-Jul-95 14:15:26 Sysop hung up +31-Jul-95 14:16:56 ----------------------------------------------------- +31-Jul-95 14:16:57 Local login +31-Jul-95 14:16:57 crc = 4E964376 +31-Jul-95 14:18:09 ----------------------------------------------------- +31-Jul-95 14:18:13 Local login +31-Jul-95 14:22:30 ----------------------------------------------------- +31-Jul-95 14:22:30 Local login +31-Jul-95 14:22:30 crc = 4E964376 +31-Jul-95 14:22:57 ----------------------------------------------------- +31-Jul-95 14:22:57 Local login +31-Jul-95 14:22:57 crc = 4E964376 +31-Jul-95 14:25:16 ----------------------------------------------------- +31-Jul-95 14:25:16 Local login +31-Jul-95 14:25:17 crc = 4E964376 +22-Aug-95 19:40:00 ----------------------------------------------------- +22-Aug-95 19:40:00 Local login +22-Aug-95 19:40:01 User logged in: Philippe Leybaert +22-Aug-95 19:40:02 Calling from Zelzate - Level 65001 +22-Aug-95 19:40:10 Menu: TOP +22-Aug-95 19:40:11 Menu: MAIN +22-Aug-95 19:40:15 Sysop hung up +22-Aug-95 19:40:25 ----------------------------------------------------- +22-Aug-95 19:40:25 Local login +22-Aug-95 19:40:26 User logged in: Philippe Leybaert +22-Aug-95 19:40:28 Calling from Zelzate - Level 65001 +22-Aug-95 19:40:29 Menu: TOP +22-Aug-95 19:40:29 Menu: MAIN +22-Aug-95 19:40:30 Menu: FILES +22-Aug-95 19:40:30 Files listed (Night Owl - Win Games) +22-Aug-95 19:40:30 Can't open file list F:\058A\FILES.BBS +22-Aug-95 19:40:31 Files listed (Night Owl - Win Games) +22-Aug-95 19:40:31 Can't open file list F:\058A\FILES.BBS +22-Aug-95 19:40:33 Menu: FILES +22-Aug-95 19:40:34 Files listed (ProBoard BBS Software) +22-Aug-95 19:40:39 Sysop hung up +22-Aug-95 19:41:04 ----------------------------------------------------- +22-Aug-95 19:41:05 Incoming call at 2 bps +22-Aug-95 19:41:05 Carrier lost! +22-Aug-95 19:41:34 ----------------------------------------------------- +22-Aug-95 19:41:35 Incoming call at 2 bps +22-Aug-95 19:41:36 Carrier lost! +22-Aug-95 19:41:38 ----------------------------------------------------- +22-Aug-95 19:41:38 Local login +22-Aug-95 19:41:44 User logged in: Rutger Lasuy +22-Aug-95 19:41:44 Calling from Serskamp - Level 100 +22-Aug-95 19:41:48 Message #1 read (area 20) +22-Aug-95 19:41:50 Message #2 read (area 20) +22-Aug-95 19:42:17 Files listed (ProBoard BBS Software) +22-Aug-95 19:42:26 Files listed (ProBoard BBS Software) +22-Aug-95 19:42:31 Sysop hung up +22-Aug-95 19:43:06 ----------------------------------------------------- +22-Aug-95 19:43:06 Local login +22-Aug-95 19:43:07 User logged in: Philippe Leybaert +22-Aug-95 19:43:07 Calling from Zelzate - Level 65001 +22-Aug-95 19:43:26 Menu: TOP +22-Aug-95 19:43:26 Menu: MAIN +22-Aug-95 19:43:27 Sysop hung up +22-Aug-95 19:43:34 ----------------------------------------------------- +22-Aug-95 19:43:34 Local login +22-Aug-95 19:43:34 Sysop hung up +22-Aug-95 19:43:42 ----------------------------------------------------- +22-Aug-95 19:43:42 Local login +22-Aug-95 19:43:44 User logged in: Philippe Leybaert +22-Aug-95 19:43:44 Calling from Zelzate - Level 65001 +22-Aug-95 19:44:03 Menu: TOP +22-Aug-95 19:44:03 Menu: MAIN +22-Aug-95 19:44:14 Menu: FILES +22-Aug-95 19:44:20 Menu: FILES +22-Aug-95 19:44:23 Files listed (General ProBoard Utilities) +22-Aug-95 19:44:28 Sysop hung up +22-Aug-95 19:51:05 ----------------------------------------------------- +22-Aug-95 19:51:05 Local login +22-Aug-95 19:51:06 User logged in: Philippe Leybaert +22-Aug-95 19:51:06 Calling from Zelzate - Level 65001 +22-Aug-95 19:51:25 Menu: TOP +22-Aug-95 19:51:25 Menu: MAIN +22-Aug-95 19:51:27 Menu: FILES +22-Aug-95 19:51:29 Files listed (General ProBoard Utilities) +22-Aug-95 19:52:00 Sysop hung up +22-Aug-95 19:52:02 ----------------------------------------------------- +22-Aug-95 19:52:02 Local login +22-Aug-95 19:52:06 User logged in: Rutger Lasuy +22-Aug-95 19:52:06 Calling from Serskamp - Level 100 +22-Aug-95 19:52:11 Files listed (ProBoard BBS Software) +22-Aug-95 19:52:13 Sysop hung up +22-Aug-95 19:52:53 ----------------------------------------------------- +22-Aug-95 19:52:53 Local login +22-Aug-95 19:52:54 User logged in: Philippe Leybaert +22-Aug-95 19:52:54 Calling from Zelzate - Level 65001 +22-Aug-95 19:53:13 Menu: TOP +22-Aug-95 19:53:13 Menu: MAIN +22-Aug-95 19:53:14 Menu: FILES +22-Aug-95 19:53:15 Files listed (General ProBoard Utilities) +22-Aug-95 19:53:17 Sysop hung up +22-Aug-95 19:53:25 ----------------------------------------------------- +22-Aug-95 19:53:25 Local login +22-Aug-95 19:53:30 Sysop hung up +09-Sep-95 18:11:49 ----------------------------------------------------- +09-Sep-95 18:11:49 Local login +09-Sep-95 18:11:49 crc = 969841F3 +09-Sep-95 18:13:03 ----------------------------------------------------- +09-Sep-95 18:13:04 Local login +09-Sep-95 18:13:05 Sysop hung up +09-Sep-95 18:16:08 ----------------------------------------------------- +09-Sep-95 18:16:08 Local login +09-Sep-95 18:16:30 ----------------------------------------------------- +09-Sep-95 18:16:30 Local login +09-Sep-95 18:16:30 crc = C5021A77 +09-Sep-95 18:17:16 ----------------------------------------------------- +09-Sep-95 18:17:16 Local login +09-Sep-95 18:17:26 Sysop hung up +26-Sep-95 15:36:03 ----------------------------------------------------- +26-Sep-95 15:36:03 Local login +26-Sep-95 15:36:05 Sysop hung up +26-Sep-95 15:45:50 ----------------------------------------------------- +26-Sep-95 15:45:50 Local login +26-Sep-95 15:45:52 Sysop hung up +26-Sep-95 15:48:56 ----------------------------------------------------- +26-Sep-95 15:48:56 Local login +26-Sep-95 15:48:56 User logged in: Philippe Leybaert +26-Sep-95 15:48:57 Calling from Zelzate - Level 65001 +26-Sep-95 15:49:12 Menu: TOP +26-Sep-95 15:49:12 Menu: MAIN +26-Sep-95 15:49:12 Menu: MAIN +26-Sep-95 15:49:13 Menu: MAIL +26-Sep-95 15:49:17 Area #10 toggled for mailcheck +26-Sep-95 15:49:19 Menu: MAIN +26-Sep-95 15:49:20 Menu: SETUP +26-Sep-95 15:49:34 Sysop hung up +01-Oct-95 21:42:22 ----------------------------------------------------- +01-Oct-95 21:42:22 Local login +01-Oct-95 21:42:24 User logged in: Philippe Leybaert +01-Oct-95 21:42:24 Calling from Zelzate - Level 65001 +01-Oct-95 21:42:27 Menu: TOP +01-Oct-95 21:42:27 Menu: MAIN +01-Oct-95 21:42:29 Sysop hung up +21-Mar-96 22:42:09 ----------------------------------------------------- +21-Mar-96 22:42:09 Local login +21-Mar-96 22:42:10 User logged in: Philippe Leybaert +21-Mar-96 22:42:10 Calling from Zelzate - Level 65001 +21-Mar-96 22:42:12 Menu: TOP +21-Mar-96 22:42:12 Menu: MAIN +21-Mar-96 22:42:13 Menu: MAIL +21-Mar-96 22:42:17 Msg aborted (Area 1) +21-Mar-96 22:42:18 Sysop hung up +28-Apr-96 22:48:17 ----------------------------------------------------- +28-Apr-96 22:48:17 Local login +28-Apr-96 22:48:19 Sysop hung up +28-Apr-96 22:49:17 Going down on external request +28-Apr-96 22:49:51 Going down on external request +25-Mar-97 19:18:09 ----------------------------------------------------- +25-Mar-97 19:18:09 Local login +25-Mar-97 19:18:11 Sysop hung up +25-Mar-97 19:18:31 ----------------------------------------------------- +25-Mar-97 19:18:31 Local login +25-Mar-97 19:18:31 crc = B60A3DB8 +25-Mar-97 19:20:44 ----------------------------------------------------- +25-Mar-97 19:20:44 Local login +25-Mar-97 19:20:48 User logged in: Philippe Leybaert +25-Mar-97 19:20:48 Calling from Zelzate - Level 64000 +25-Mar-97 19:20:50 Menu: TOP +25-Mar-97 19:20:50 Menu: MAIN +25-Mar-97 19:20:51 Sysop hung up +25-Mar-97 19:23:26 ----------------------------------------------------- +25-Mar-97 19:23:26 Local login +25-Mar-97 19:24:11 ----------------------------------------------------- +25-Mar-97 19:24:11 Local login +25-Mar-97 19:24:46 ----------------------------------------------------- +25-Mar-97 19:24:46 Local login +25-Mar-97 19:26:01 User logged in: Philippe Leybaert +25-Mar-97 19:26:01 Calling from Zelzate - Level 64000 +25-Mar-97 19:26:02 Menu: TOP +25-Mar-97 19:26:02 Menu: MAIN +25-Mar-97 19:26:04 Menu: FILES +25-Mar-97 19:26:04 Files listed (Echomail Processors) +25-Mar-97 19:26:24 Sysop hung up +01-May-97 21:47:25 ----------------------------------------------------- +01-May-97 21:47:25 Local login +01-May-97 21:47:27 User logged in: Philippe Leybaert +01-May-97 21:47:27 Calling from Zelzate - Level 64000 +01-May-97 21:47:29 Menu: TOP +01-May-97 21:47:29 Menu: MAIN +01-May-97 21:47:30 Menu: UTIL +01-May-97 21:47:31 Version info requested +01-May-97 21:47:43 Sysop hung up +19-May-99 18:14:50 Fatal error: Error accessing file I:\CPP\PB\PROBOARD\CONFIG.PRO (2 - File not found) +19-May-99 18:15:01 Fatal error: Error accessing file I:\CPP\PB\PROBOARD\CONFIG.PRO (2 - File not found) diff --git a/PROBOARD.MAP b/PROBOARD.MAP new file mode 100644 index 0000000..a42c92f --- /dev/null +++ b/PROBOARD.MAP @@ -0,0 +1,257 @@ + + Start Stop Length Name Class + + 00000H 0676EH 0676FH _TEXT CODE + 06770H 06770H 00000H EXEC_TEXT CODE + 06770H 08BE8H 02479H IO_TEXT CODE + 08BEAH 08D0FH 00126H FOSSIL_TEXT CODE + 08D10H 0A36CH 0165DH MISC_TEXT CODE + 0A36DH 0AE91H 00B25H TIMER_TEXT CODE + 0AE92H 0B29BH 0040AH FUZZY_TEXT CODE + 0B29CH 0C4EEH 01253H _OVRTEXT_ CODE + 0C4EFH 0CBC6H 006D8H PB_LIB_TEXT CODE + 0CBC7H 0D3A7H 007E1H LANG_TEXT CODE + 0D3A8H 0FC9EH 028F7H USER_TEXT CODE + 0FC9FH 111D5H 01537H DATE_TEXT CODE + 111D6H 11453H 0027EH DIRSCAN_TEXT CODE + 11454H 1148BH 00038H FIND_TEXT CODE + 1148CH 12409H 00F7EH DSTRING_TEXT CODE + 1240AH 125AAH 001A1H BITARRAY_TEXT CODE + 125ABH 12624H 0007AH SOUND_TEXT CODE + 12625H 126F8H 000D4H CRC16_TEXT CODE + 126F9H 1283DH 00145H CRC32_TEXT CODE + 1283EH 128A5H 00068H FORM_TEXT CODE + 128A6H 129BFH 0011AH MSDOS_TEXT CODE + 129C0H 12EDEH 0051FH FNAME_TEXT CODE + 12EDFH 14210H 01332H FILE_TEXT CODE + 14211H 14848H 00638H INIVAR_TEXT CODE + 14849H 14ECEH 00686H DIRFUNC_TEXT CODE + 14ECFH 15121H 00253H COPYFILE_TEXT CODE + 15122H 15284H 00163H INIT_TEXT CODE + 15285H 153D8H 00154H KEYBOARD_TEXT CODE + 153D9H 1587EH 004A6H RECTANG_TEXT CODE + 1587FH 1745AH 01BDCH WINDOW_TEXT CODE + 1745CH 1790CH 004B1H PWS_ASM_TEXT CODE + 1790DH 17B21H 00215H SAVEBUF_TEXT CODE + 17B22H 17BADH 0008CH TSW_ASM_TEXT CODE + 17BB0H 17BB0H 00000H _FARDATA FAR_DATA + 17BB0H 1837FH 007D0H PROBOARD5_DATA FAR_DATA + 18380H 18380H 00000H _FARBSS FAR_BSS + 18380H 18380H 00000H _OVERLAY_ OVRINFO + 18380H 18486H 00107H _OVRDATA_ OVRINFO + 18490H 184AFH 00020H _STUB_ OVRINFO + 184B0H 184BFH 00010H _EXTSEG_ OVRINFO + 184C0H 184CFH 00010H _EMSSEG_ OVRINFO + 184D0H 1851FH 00050H _VDISKSEG_ OVRINFO + 18520H 189F7H 004D8H _EXEINFO_ OVRINFO + 18A00H 18A00H 00000H _1STUB_ STUBSEG + 18A00H 18A5BH 0005CH MENU_TEXT STUBSEG + 18A60H 18A89H 0002AH CHAT_TEXT STUBSEG + 18A90H 18AD2H 00043H SHELL_TEXT STUBSEG + 18AE0H 18B13H 00034H LOGIN_TEXT STUBSEG + 18B20H 18B44H 00025H PBUSER_TEXT STUBSEG + 18B50H 18B83H 00034H READMSG_TEXT STUBSEG + 18B90H 18BB9H 0002AH MAILCHK_TEXT STUBSEG + 18BC0H 18C39H 0007AH MSG_TEXT STUBSEG + 18C40H 18C69H 0002AH ZIP_TEXT STUBSEG + 18C70H 18C9EH 0002FH WRITEMSG_TEXT STUBSEG + 18CA0H 18CC4H 00025H TOPS_TEXT STUBSEG + 18CD0H 18CF4H 00025H FORWARD_TEXT STUBSEG + 18D00H 18D24H 00025H REPLYMSG_TEXT STUBSEG + 18D30H 18D54H 00025H TIMESTAT_TEXT STUBSEG + 18D60H 18D84H 00025H MSGDEL_TEXT STUBSEG + 18D90H 18DB9H 0002AH COMBINED_TEXT STUBSEG + 18DC0H 18DE4H 00025H QUESTION_TEXT STUBSEG + 18DF0H 18E14H 00025H AKA_TEXT STUBSEG + 18E20H 18E44H 00025H QSCANMSG_TEXT STUBSEG + 18E50H 18E74H 00025H SHOWMSG_TEXT STUBSEG + 18E80H 18EA4H 00025H SCANMSG_TEXT STUBSEG + 18EB0H 18ED4H 00025H VERSION_TEXT STUBSEG + 18EE0H 18F04H 00025H RAWDIR_TEXT STUBSEG + 18F10H 18F6BH 0005CH MSGED_TEXT STUBSEG + 18F70H 19084H 00115H DL_TEXT STUBSEG + 19090H 190BEH 0002FH VIEWFILE_TEXT STUBSEG + 190C0H 190E4H 00025H LASTCALL_TEXT STUBSEG + 190F0H 1911EH 0002FH DESQVIEW_TEXT STUBSEG + 19120H 1914EH 0002FH STACKING_TEXT STUBSEG + 19150H 1917EH 0002FH CLEANUP_TEXT STUBSEG + 19180H 191A4H 00025H SYSOPKEY_TEXT STUBSEG + 191B0H 191DEH 0002FH MSGFIND_TEXT STUBSEG + 191E0H 19209H 0002AH BINLOG_TEXT STUBSEG + 19210H 1923EH 0002FH PROTOCOL_TEXT STUBSEG + 19240H 192D2H 00093H LISTFILE_TEXT STUBSEG + 192E0H 19377H 00098H UL_TEXT STUBSEG + 19380H 193AEH 0002FH TAG_TEXT STUBSEG + 193B0H 193DEH 0002FH SELLANG_TEXT STUBSEG + 193E0H 1947CH 0009DH PROBOARD_TEXT STUBSEG + 19480H 194A4H 00025H NODELIST_TEXT STUBSEG + 194B0H 194F7H 00048H ONLINE_TEXT STUBSEG + 19500H 19524H 00025H MSGMOVE_TEXT STUBSEG + 19530H 1955EH 0002FH CDROM_TEXT STUBSEG + 19560H 195A2H 00043H REGIS_TEXT STUBSEG + 195B0H 19601H 00052H MCHAT_TEXT STUBSEG + 19610H 19643H 00034H SETAREA_TEXT STUBSEG + 19650H 19679H 0002AH USERED_TEXT STUBSEG + 19680H 196A4H 00025H DECKEY_TEXT STUBSEG + 196B0H 196D4H 00025H MUSIC_TEXT STUBSEG + 196E0H 19704H 00025H GIF_TEXT STUBSEG + 19710H 1973EH 0002FH MSGEXPRT_TEXT STUBSEG + 19740H 19778H 00039H HELP_TEXT STUBSEG + 19780H 197B3H 00034H EGA_TEXT STUBSEG + 197C0H 197E9H 0002AH EVENT_TEXT STUBSEG + 197F0H 19832H 00043H FILEAREA_TEXT STUBSEG + 19840H 19882H 00043H MSGAREA_TEXT STUBSEG + 19890H 198B9H 0002AH TIMELOG_TEXT STUBSEG + 198C0H 198E4H 00025H WORDWRAP_TEXT STUBSEG + 198F0H 19923H 00034H SHOWANS_TEXT STUBSEG + 19930H 199BDH 0008EH USERSET_TEXT STUBSEG + 199C0H 199F3H 00034H USAGE_TEXT STUBSEG + 19A00H 19EACH 004ADH LOADPEX_TEXT STUBSEG + 19EB0H 19ED4H 00025H IMAGE_TEXT STUBSEG + 19EE0H 19F09H 0002AH POSTMSG_TEXT STUBSEG + 19F10H 19F34H 00025H PEXCALL_TEXT STUBSEG + 19F40H 19F64H 00025H STRVARS_TEXT STUBSEG + 19F70H 19F9EH 0002FH USERWIN_TEXT STUBSEG + 19FA0H 19FC4H 00025H BULLETIN_TEXT STUBSEG + 19FD0H 1A008H 00039H MODEM_TEXT STUBSEG + 1A010H 1A034H 00025H EXECHECK_TEXT STUBSEG + 1A040H 1A07DH 0003EH LANGUAGE_TEXT STUBSEG + 1A080H 1A0A9H 0002AH FUZZY_TEXT STUBSEG + 1A0B0H 1A0E3H 00034H TERMINAL_TEXT STUBSEG + 1A0F0H 1A15FH 00070H SQUISH_TEXT STUBSEG + 1A160H 1A20BH 000ACH HUDSON_TEXT STUBSEG + 1A210H 1A25CH 0004DH MSGBASE_TEXT STUBSEG + 1A260H 1A2ACH 0004DH MARK_TEXT STUBSEG + 1A2B0H 1A351H 000A2H RIP_TEXT STUBSEG + 1A360H 1A406H 000A7H JAM_TEXT STUBSEG + 1A410H 1A434H 00025H INPDATE_TEXT STUBSEG + 1A440H 1A469H 0002AH TAG_RW_TEXT STUBSEG + 1A470H 1A494H 00025H 1STCHAR_TEXT STUBSEG + 1A4A0H 1A500H 00061H MSGAPI_TEXT STUBSEG + 1A510H 1A5A2H 00093H API_SDM_TEXT STUBSEG + 1A5B0H 1A66FH 000C0H API_SQ_TEXT STUBSEG + 1A670H 1A69EH 0002FH SQASM_TEXT STUBSEG + 1A6A0H 1A6CEH 0002FH CVTDATE_TEXT STUBSEG + 1A6D0H 1A6F4H 00025H DATE2BIN_TEXT STUBSEG + 1A700H 1A724H 00025H DOSDATE_TEXT STUBSEG + 1A730H 1A75EH 0002FH FEXIST_TEXT STUBSEG + 1A760H 1A793H 00034H FFIND_TEXT STUBSEG + 1A7A0H 1A7C4H 00025H FLUSHA_TEXT STUBSEG + 1A7D0H 1A7EFH 00020H MONTHS_TEXT STUBSEG + 1A7F0H 1A819H 0002AH PARSENN_TEXT STUBSEG + 1A820H 1A849H 0002AH QKSORT_TEXT STUBSEG + 1A850H 1A874H 00025H STRISTR_TEXT STUBSEG + 1A880H 1A8A4H 00025H STROCPY_TEXT STUBSEG + 1A8B0H 1A8D9H 0002AH TRAIL_TEXT STUBSEG + 1A8E0H 21AB7H 071D8H _DATA DATA + 21AB8H 21AB9H 00002H _CVTSEG DATA + 21ABAH 21ABFH 00006H _SCNSEG DATA + 21AC0H 21AC0H 00000H _CONST CONST + 21AC0H 21B31H 00072H _INIT_ INITDATA + 21B32H 21B32H 00000H _INITEND_ INITDATA + 21B32H 21B91H 00060H _EXIT_ EXITDATA + 21B92H 21B92H 00000H _EXITEND_ EXITDATA + 21B92H 25A45H 03EB4H _BSS BSS + 25A46H 25A46H 00000H _BSSEND BSSEND + 25A50H 25ACFH 00080H _STACK STACK + 25AE0H 27847H 01D68H MENU_TEXT :OVY + 279D0H 28213H 00844H CHAT_TEXT :OVY + 282F0H 2A77DH 0248EH SHELL_TEXT :OVY + 2AA60H 2CC12H 021B3H LOGIN_TEXT :OVY + 2CF50H 2D1AEH 0025FH PBUSER_TEXT :OVY + 2D1E0H 2FC58H 02A79H READMSG_TEXT :OVY + 2FF50H 3081EH 008CFH MAILCHK_TEXT :OVY + 308E0H 31B67H 01288H MSG_TEXT :OVY + 31C50H 327CBH 00B7CH ZIP_TEXT :OVY + 32890H 33DFAH 0156BH WRITEMSG_TEXT :OVY + 33FC0H 34428H 00469H TOPS_TEXT :OVY + 34470H 34950H 004E1H FORWARD_TEXT :OVY + 349C0H 35A72H 010B3H REPLYMSG_TEXT :OVY + 35B80H 36146H 005C7H TIMESTAT_TEXT :OVY + 361F0H 3625FH 00070H MSGDEL_TEXT :OVY + 36270H 367D3H 00564H COMBINED_TEXT :OVY + 36850H 37168H 00919H QUESTION_TEXT :OVY + 37200H 37304H 00105H AKA_TEXT :OVY + 37320H 38367H 01048H QSCANMSG_TEXT :OVY + 38480H 396C9H 0124AH SHOWMSG_TEXT :OVY + 39830H 3A8C2H 01093H SCANMSG_TEXT :OVY + 3A9E0H 3ABC6H 001E7H VERSION_TEXT :OVY + 3AC10H 3AE5FH 00250H RAWDIR_TEXT :OVY + 3AEA0H 3C083H 011E4H MSGED_TEXT :OVY + 3C1D0H 40706H 04537H DL_TEXT :OVY + 40B90H 40CB7H 00128H VIEWFILE_TEXT :OVY + 40CE0H 40D3FH 00060H LASTCALL_TEXT :OVY + 40D50H 40D83H 00034H DESQVIEW_TEXT :OVY + 40D90H 40E42H 000B3H STACKING_TEXT :OVY + 40E50H 412DAH 0048BH CLEANUP_TEXT :OVY + 41350H 4187EH 0052FH SYSOPKEY_TEXT :OVY + 418F0H 41B4DH 0025EH MSGFIND_TEXT :OVY + 41B60H 41E85H 00326H BINLOG_TEXT :OVY + 41ED0H 4231DH 0044EH PROTOCOL_TEXT :OVY + 42380H 453C3H 03044H LISTFILE_TEXT :OVY + 45700H 4818DH 02A8EH UL_TEXT :OVY + 48500H 488A3H 003A4H TAG_TEXT :OVY + 48910H 48E05H 004F6H SELLANG_TEXT :OVY + 48E80H 4A91AH 01A9BH PROBOARD_TEXT :OVY + 4AB70H 4B4E3H 00974H NODELIST_TEXT :OVY + 4B570H 4BD4DH 007DEH ONLINE_TEXT :OVY + 4BDE0H 4BFB4H 001D5H MSGMOVE_TEXT :OVY + 4BFE0H 4C639H 0065AH CDROM_TEXT :OVY + 4C6F0H 4D228H 00B39H REGIS_TEXT :OVY + 4D270H 4DDCCH 00B5DH MCHAT_TEXT :OVY + 4DEC0H 4F2ADH 013EEH SETAREA_TEXT :OVY + 4F430H 4F7F4H 003C5H USERED_TEXT :OVY + 4F840H 4FD4EH 0050FH DECKEY_TEXT :OVY + 4FD60H 5015BH 003FCH MUSIC_TEXT :OVY + 501B0H 5058EH 003DFH GIF_TEXT :OVY + 505F0H 51256H 00C67H MSGEXPRT_TEXT :OVY + 51320H 516D1H 003B2H HELP_TEXT :OVY + 51710H 51745H 00036H EGA_TEXT :OVY + 51750H 519B4H 00265H EVENT_TEXT :OVY + 519E0H 521CFH 007F0H FILEAREA_TEXT :OVY + 52240H 5292BH 006ECH MSGAREA_TEXT :OVY + 52970H 52CABH 0033CH TIMELOG_TEXT :OVY + 52CF0H 52DADH 000BEH WORDWRAP_TEXT :OVY + 52DC0H 52FF4H 00235H SHOWANS_TEXT :OVY + 53020H 54F7BH 01F5CH USERSET_TEXT :OVY + 55190H 5524FH 000C0H USAGE_TEXT :OVY + 55260H 59739H 044DAH LOADPEX_TEXT :OVY + 59C00H 59D18H 00119H IMAGE_TEXT :OVY + 59D30H 59FB6H 00287H POSTMSG_TEXT :OVY + 59FF0H 5A017H 00028H PEXCALL_TEXT :OVY + 5A020H 5AB21H 00B02H STRVARS_TEXT :OVY + 5ABC0H 5B1AEH 005EFH USERWIN_TEXT :OVY + 5B230H 5B3F2H 001C3H BULLETIN_TEXT :OVY + 5B420H 5D3BEH 01F9FH MODEM_TEXT :OVY + 5D5E0H 5D5E4H 00005H EXECHECK_TEXT :OVY + 5D5F0H 5DE0CH 0081DH LANGUAGE_TEXT :OVY + 5DE90H 5E298H 00409H FUZZY_TEXT :OVY + 5E2B0H 5E569H 002BAH TERMINAL_TEXT :OVY + 5E5A0H 609B7H 02418H SQUISH_TEXT :OVY + 60AE0H 634C7H 029E8H HUDSON_TEXT :OVY + 63730H 63A4CH 0031DH MSGBASE_TEXT :OVY + 63A60H 641C1H 00762H MARK_TEXT :OVY + 64200H 65298H 01099H RIP_TEXT :OVY + 653B0H 67CD0H 02921H JAM_TEXT :OVY + 67E60H 68047H 001E8H INPDATE_TEXT :OVY + 68070H 683C1H 00352H TAG_RW_TEXT :OVY + 68410H 6857BH 0016CH 1STCHAR_TEXT :OVY + 68590H 68CF1H 00762H MSGAPI_TEXT :OVY + 68D50H 6A9EAH 01C9BH API_SDM_TEXT :OVY + 6AAF0H 6E060H 03571H API_SQ_TEXT :OVY + 6E1C0H 6E20BH 0004CH SQASM_TEXT :OVY + 6E220H 6E41CH 001FDH CVTDATE_TEXT :OVY + 6E430H 6E677H 00248H DATE2BIN_TEXT :OVY + 6E690H 6E6CDH 0003EH DOSDATE_TEXT :OVY + 6E6E0H 6E86FH 00190H FEXIST_TEXT :OVY + 6E890H 6E939H 000AAH FFIND_TEXT :OVY + 6E950H 6E965H 00016H FLUSHA_TEXT :OVY + 6E970H 6E970H 00000H MONTHS_TEXT :OVY + 6E980H 6EC80H 00301H PARSENN_TEXT :OVY + 6ECB0H 6EDD4H 00125H QKSORT_TEXT :OVY + 6EDE0H 6EEECH 0010DH STRISTR_TEXT :OVY + 6EF00H 6EF3CH 0003DH STROCPY_TEXT :OVY + 6EF50H 6EFE7H 00098H TRAIL_TEXT :OVY + +Program entry point at 0000:0000 + diff --git a/PROBOARD.OBJ b/PROBOARD.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..d8779caa12e6bb7c55d4eec094e646bf3fc164a4 GIT binary patch literal 17239 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 AJOBUy literal 0 HcmV?d00001 diff --git a/PROMPTS.HPP b/PROMPTS.HPP new file mode 100644 index 0000000..1466f04 --- /dev/null +++ b/PROMPTS.HPP @@ -0,0 +1,433 @@ +/**** Language Constants ****************************************************/ + +#define S_ENTER_YOUR_NAME pb_lang[ 0 ].s +#define S_SCANNING_USER_FILE pb_lang[ 1 ].s +#define S_ENTER_PASSWORD pb_lang[ 2 ].s +#define S_MORE pb_lang[ 3 ].s +#define S_YES pb_lang[ 4 ].s +#define S_NO pb_lang[ 5 ].s +#define _S_PRESS_ENTER_TO_CONTINUE pb_lang[ 6 ].s +#define S_EVENT_HAS_TO_RUN pb_lang[ 7 ].s +#define S_UPCOMING_EVENT pb_lang[ 8 ].s +#define S_CHECK_MAIL_PROMPT pb_lang[ 9 ].s +#define S_ASK_YES_NO pb_lang[ 10 ].s +#define S_ASK_NO_YES pb_lang[ 11 ].s +#define S_ENTER_SYSTEM_PASSWORD pb_lang[ 12 ].s +#define S_WRONG_PASSWORD pb_lang[ 13 ].s +#define S_ILLEGAL_NAME pb_lang[ 14 ].s +#define S_WRONG_NAME_FORMAT pb_lang[ 15 ].s +#define S_ARE_YOU_A_NEW_USER(p1) parse_lang(pb_lang[ 16 ].s , (p1)) +#define S_NO_ACCESS_ON_THIS_NODE pb_lang[ 17 ].s +#define S_LEAVE_MESSAGE_TO_SYSOP pb_lang[ 18 ].s +#define S_HANGING_UP pb_lang[ 19 ].s +#define S_LEVEL_EXPIRED pb_lang[ 20 ].s +#define S_LEVEL_WILL_EXPIRE(p1) parse_lang(pb_lang[ 21 ].s , (p1)) +#define S_LOCKED_OUT pb_lang[ 22 ].s +#define S_PRIVATE_SYSTEM pb_lang[ 23 ].s +#define S_NOT_FOR_NEW_USERS pb_lang[ 24 ].s +#define S_ASK_ANSI pb_lang[ 25 ].s +#define S_ASK_AVATAR pb_lang[ 26 ].s +#define S_ASK_AVATAR_PLUS pb_lang[ 27 ].s +#define S_ASK_FSED pb_lang[ 28 ].s +#define S_ASK_CLS pb_lang[ 29 ].s +#define S_ASK_PAUSE pb_lang[ 30 ].s +#define S_ASK_SCREENLENGTH(p1) parse_lang(pb_lang[ 31 ].s , (p1)) +#define S_ASK_CITY pb_lang[ 32 ].s +#define S_ASK_STATE pb_lang[ 33 ].s +#define S_ASK_VOICE_PHONE pb_lang[ 34 ].s +#define S_ASK_DATA_PHONE pb_lang[ 35 ].s +#define S_ASK_BIRTHDATE(p1) parse_lang(pb_lang[ 36 ].s , (p1)) +#define S_ASK_ALIAS pb_lang[ 37 ].s +#define S_ALIAS_BEING_USED pb_lang[ 38 ].s +#define S_ASK_PASSWORD(p1,p2) parse_lang(pb_lang[ 39 ].s , (p1) , (p2)) +#define S_ILLEGAL_PASSWORD pb_lang[ 40 ].s +#define S_ASK_PASSWORD_AGAIN pb_lang[ 41 ].s +#define S_ASK_EVERYTHING_CORRECT pb_lang[ 42 ].s +#define S_WRITE_MESSAGE_TITLE(p1) parse_lang(pb_lang[ 43 ].s , (p1)) +#define S_NOT_ALLOWED_TO_WRITE_IN_AREA pb_lang[ 44 ].s +#define S_ASK_WRITE_MSG_USING_YOUR_ALIAS pb_lang[ 45 ].s +#define S_ASK_WRITE_MSG_USING_AN_ALIAS pb_lang[ 46 ].s +#define S_ENTER_ALIAS_TO_USE pb_lang[ 47 ].s +#define S_ENTER_ALL_IF_TO_EVERYONE pb_lang[ 48 ].s +#define S_WRITE_MSG_TO pb_lang[ 49 ].s +#define S_CONFIRM_WRITE_MESSAGE_TO(p1) parse_lang(pb_lang[ 50 ].s,(p1)) +#define S_FUZZY_SEARCH_LIST_HEADER pb_lang[ 51 ].s +#define S_FUZZY_SEARCH_LIST_FOOTER pb_lang[ 52 ].s +#define S_USER_NOT_LOCATED pb_lang[ 53 ].s +#define S_ENTER_NETMAIL_ADDRESS_HEADER pb_lang[ 54 ].s +#define S_ENTER_NETMAIL_ADDRESS pb_lang[ 55 ].s +#define S_CONFIRM_NETMAIL_ADDRESS(p1,p2,p3) parse_lang(pb_lang[ 56 ].s , (p1) , (p2) , (p3)) +#define S_NOT_ENOUGH_NETMAIL_CREDIT(p1) parse_lang(pb_lang[ 57 ].s , (p1)) +#define S_ASK_SEND_CRASH pb_lang[ 58 ].s +#define S_ASK_ATTACH_FILE pb_lang[ 59 ].s +#define S_FILE_TO_ATTACH pb_lang[ 60 ].s +#define S_SHOW_MESSAGE_SUBJECT(p1) parse_lang(pb_lang[ 61 ].s , (p1)) +#define S_ENTER_MESSAGE_SUBJECT pb_lang[ 62 ].s +#define S_ASK_PRIVATE_MESSAGE pb_lang[ 63 ].s +#define S_SAVING_MESSAGE pb_lang[ 64 ].s +#define S_SAVING_MESSAGE_ERROR pb_lang[ 65 ].s +#define S_MESSAGE_ABORTED pb_lang[ 66 ].s +#define S_USER_REQUESTS_CHAT(p1,p2) parse_lang(pb_lang[ 67 ].s,(p1),(p2)) +#define S_MULTILINE_CHAT_STARTED pb_lang[ 68 ].s +#define S_MULTILINE_CHAT_ENDED pb_lang[ 69 ].s +#define S_FATAL_ERROR pb_lang[ 70 ].s +#define S_ACCESS_DENIED pb_lang[ 71 ].s +#define S_THIS_MESSAGE_AREA_IS_LOCKED pb_lang[ 72 ].s +#define S_THERE_ARE_X_MESSAGES_IN_THIS_AREA(p1) parse_lang(pb_lang[ 73 ].s,(p1)) +#define S_THERE_ARE_NO_MESSAGES_IN_THIS_AREA pb_lang[ 74 ].s +#define S_READ_MESSAGES_ORDER_SELECTION pb_lang[ 75 ].s +#define S_READMSG_FORWARD pb_lang[ 76 ].s +#define S_READMSG_REVERSE pb_lang[ 77 ].s +#define S_READMSG_ALL pb_lang[ 78 ].s +#define S_READMSG_NEW pb_lang[ 79 ].s +#define S_READMSG_SELECTED pb_lang[ 80 ].s +#define S_READMSG_SELECTED_SEARCH_FOR pb_lang[ 81 ].s +#define S_READMSG_INDIVIDUAL pb_lang[ 82 ].s +#define S_READMSG_MARKED pb_lang[ 83 ].s +#define S_READMSG_ALL_FORWARD_OR_REVERSE pb_lang[ 84 ].s +#define S_READMSG_START_AT_MESSAGE pb_lang[ 85 ].s +#define S_READMSG_SEARCHING_NEW_MESSAGES pb_lang[ 86 ].s +#define S_READMSG_NO_NEW_MESSAGES_FOUND pb_lang[ 87 ].s +#define S_READMSG_X_NEW_MESSAGES_FOUND(p1) parse_lang(pb_lang[ 88 ].s , (p1)) +#define S_READMSG_NO_MESSAGES_FOUND pb_lang[ 89 ].s +#define S_READMSG_WAIT_AFTER_EACH_MSG pb_lang[ 90 ].s +#define S_PRESS_S_TO_STOP_OR_P_TO_PAUSE pb_lang[ 91 ].s +#define S_READMSG_INDIV_ASK_MSGNUM pb_lang[ 92 ].s +#define S_READMSG_INDIV_MSG_NOT_FOUND pb_lang[ 93 ].s +#define S_ASK_DELETE_MSG pb_lang[ 94 ].s +#define S_MESSAGE_MARKED pb_lang[ 95 ].s +#define S_EXPORT_MESSAGE_TO_FILE pb_lang[ 96 ].s +#define S_THERE_IS_NO_PREVIOUS_MSG pb_lang[ 97 ].s +#define S_NO_ACCESS_TO_REPLIES pb_lang[ 98 ].s +#define S_END_OF_MESSAGES pb_lang[ 99 ].s +#define S_QSCAN_MESSAGES_ORDER_SELECTION pb_lang[ 100 ].s +#define S_QSCAN_MSG_HEADER pb_lang[ 101 ].s +#define S_QSCAN_MSG_DATALINE(p1,p2,p3,p4,p5) parse_lang(pb_lang[ 102 ].s , (p1) , (p2) , (p3) , (p4) , (p5) ) +#define S_SCAN_MESSAGES_ORDER_SELECTION pb_lang[ 103 ].s +#define S_SCAN_MESSAGES_SHOWMSG(p1,p2,p3,p4,p5) parse_lang(pb_lang[ 104 ].s , (p1) , (p2) , (p3) , (p4) , (p5) ) +#define S_SCAN_MESSAGES_PROMPT pb_lang[ 105 ].s +#define S_ENTER_MENU_PASSWORD pb_lang[ 106 ].s +#define S_DOWNLOAD_TITLE pb_lang[ 107 ].s +#define S_DOWNLOAD_DELAY(p1) parse_lang(pb_lang[ 108 ].s , (p1)) +#define S_DOWNLOAD_NOT_NOW pb_lang[ 109 ].s +#define S_ENTER_FILES_TO_DOWNLOAD pb_lang[ 110 ].s +#define S_ENTER_DOWNLOAD_FILENAME(p1) parse_lang(pb_lang[ 111 ].s , (p1)) +#define S_SEARCHING_FILE_DATABASE pb_lang[ 112 ].s +#define S_NO_PERSONAL_FILES_FOUND pb_lang[ 113 ].s +#define S_DOWNLOAD_FILES_FOUND_HEADER pb_lang[ 114 ].s +#define S_DOWNLOAD_FILE_FOUND_ENTRY(p1,p2,p3) parse_lang(pb_lang[ 115 ].s , (p1),(p2),(p3)) +#define S_FILE_EXCEEDS_LIMIT(p1) parse_lang(pb_lang[ 116 ].s , (p1)) +#define S_UPLOAD_REQUIRED(p1) parse_lang(pb_lang[ 117 ].s , (p1)) +#define S_FILE_FOUND_ACTION_PROMPT pb_lang[ 118 ].s +#define S_ACTION_DOWNLOAD pb_lang[ 119 ].s +#define S_FREE_FILE pb_lang[ 120 ].s +#define S_ACTION_FILE_SKIPPED pb_lang[ 121 ].s +#define S_ACTION_FILE_QUIT pb_lang[ 122 ].s +#define S_NO_FILES_FOUND pb_lang[ 123 ].s +#define S_X_FILES_SELECTED(p1,p2,p3) parse_lang(pb_lang[ 124 ].s , (p1),(p2),(p3)) +#define S_NOT_ENOUGH_TIME_LEFT_FOR_DOWNLOAD pb_lang[ 125 ].s +#define S_START_DOWNLOAD_PROMPT pb_lang[ 126 ].s +#define S_DOWNLOAD_ACTION_GOODBYE pb_lang[ 127 ].s +#define S_ACTIVATING_PROTOCOL pb_lang[ 128 ].s +#define S_COPYING_FROM_CDROM(p1) parse_lang(pb_lang[ 129 ].s , (p1)) +#define S_ERROR_COPYING_FROM_CDROM pb_lang[ 130 ].s +#define S_X_FILES_DOWNLOADED_SUCCESSFULLY(p1,p2) parse_lang(pb_lang[ 131 ].s , (p1),(p2)) +#define S_X_FILES_NOT_DOWNLOADED(p1) parse_lang(pb_lang[ 132 ].s , (p1)) +#define S_HANGUP_AFTER_DOWNLOAD_PROMPT pb_lang[ 133 ].s +#define S_MORE_TAG pb_lang[ 134 ].s +#define S_ENTER_FILE_TAGS pb_lang[ 135 ].s +#define S_X_FILES_TAGGED(p1) parse_lang(pb_lang[ 136 ].s , (p1)) +#define S_FILELIST_PRESS_S_TO_STOP pb_lang[ 137 ].s +#define S_END_OF_FILE_LISTING pb_lang[ 138 ].s +#define S_KEYWORD_SEARCH_TITLE_AND_PROMPT pb_lang[ 139 ].s +#define S_SEARCHING_FOR_KEYWORD(p1) parse_lang(pb_lang[ 140 ].s , (p1)) +#define S_END_OF_FILE_SEARCH pb_lang[ 141 ].s +#define S_NEW_FILES_SEARCH_TITLE_AND_PROMPT(p1) parse_lang(pb_lang[ 142 ].s ,(p1)) +#define S_SEARCHING_FOR_NEW_FILES(p1) parse_lang(pb_lang[ 143 ].s ,(p1)) +#define S_FILENAME_SEARCH_TITLE_AND_PROMPT pb_lang[ 144 ].s +#define S_SEARCHING_FOR_FILENAME(p1) parse_lang(pb_lang[ 145 ].s ,(p1)) +#define S_CHANGE_CITY_TITLE_AND_PROMPT(p1) parse_lang(pb_lang[ 146 ].s ,(p1)) +#define S_CHANGE_VOICE_PHONE_TITLE_AND_PROMPT(p1) parse_lang(pb_lang[ 147 ].s ,(p1)) +#define S_CHANGE_DATA_PHONE_TITLE_AND_PROMPT(p1) parse_lang(pb_lang[ 148 ].s ,(p1)) +#define S_CHANGE_STATE_TITLE_AND_PROMPT(p1) parse_lang(pb_lang[ 149 ].s ,(p1)) +#define S_CHANGE_ALIAS_TITLE_AND_PROMPT(p1) parse_lang(pb_lang[ 150 ].s ,(p1)) +#define S_CHANGE_SCREENLENGTH_TITLE_AND_PROMPT(p1) parse_lang(pb_lang[ 151 ].s ,(p1)) +#define S_ANSI_ENABLED pb_lang[ 152 ].s +#define S_ANSI_DISABLED pb_lang[ 153 ].s +#define S_AVATAR_ENABLED pb_lang[ 154 ].s +#define S_AVATAR_DISABLED pb_lang[ 155 ].s +#define S_AVTPLUS_ENABLED pb_lang[ 156 ].s +#define S_AVTPLUS_DISABLED pb_lang[ 157 ].s +#define S_FSED_ENABLED pb_lang[ 158 ].s +#define S_FSED_DISABLED pb_lang[ 159 ].s +#define S_CLS_ENABLED pb_lang[ 160 ].s +#define S_CLS_DISABLED pb_lang[ 161 ].s +#define S_PAUSE_ENABLED pb_lang[ 162 ].s +#define S_PAUSE_DISABLED pb_lang[ 163 ].s +#define S_IBMCHARS_ENABLED pb_lang[ 164 ].s +#define S_IBMCHARS_DISABLED pb_lang[ 165 ].s +#define S_HOTKEYS_ENABLED pb_lang[ 166 ].s +#define S_HOTKEYS_DISABLED pb_lang[ 167 ].s +#define S_RIP_ENABLED pb_lang[ 168 ].s +#define S_RIP_DISABLED pb_lang[ 169 ].s +#define S_ASK_HOTKEYS pb_lang[ 170 ].s +#define S_ASK_IBMCHARS pb_lang[ 171 ].s +#define S_ASK_RIP pb_lang[ 172 ].s +#define S_ASK_RIP_FONT pb_lang[ 173 ].s +#define S_LARGE_RIP_FONT_SELECTED pb_lang[ 174 ].s +#define S_SMALL_RIP_FONT_SELECTED pb_lang[ 175 ].s +#define S_CHANGE_PASSWORD_TITLE pb_lang[ 176 ].s +#define S_ENTER_NEW_PASSWORD(p1) parse_lang(pb_lang[ 177 ].s ,(p1)) +#define S_PASSWORD_CHANGED_SUCCESSFULLY pb_lang[ 178 ].s +#define S_LIST_USERS_TITLE_AND_PROMPT pb_lang[ 179 ].s +#define S_END_OF_USER_LIST pb_lang[ 180 ].s +#define S_UPLOAD_TITLE pb_lang[ 181 ].s +#define S_NOT_ENOUGH_FREE_DISK_SPACE pb_lang[ 182 ].s +#define S_NO_UPLOAD_DUE_TO_EVENT pb_lang[ 183 ].s +#define S_FILE_TO_UPLOAD pb_lang[ 184 ].s +#define S_UPLOAD_START_PROMPT pb_lang[ 185 ].s +#define S_READY_TO_UPLOAD_FILES pb_lang[ 186 ].s +#define S_NO_FILES_RECEIVED pb_lang[ 187 ].s +#define S_CHECKING_UPLOADS pb_lang[ 188 ].s +#define S_FILE_RECEIVED(p1) parse_lang(pb_lang[ 189 ].s , (p1)) +#define S_DUPLICATE_UPLOAD_REMOVED pb_lang[ 190 ].s +#define S_DUPLICATE_UPLOAD pb_lang[ 191 ].s +#define S_X_FILES_UPLOADED(p1,p2) parse_lang(pb_lang[ 192 ].s , (p1),(p2)) +#define S_NO_FILES_UPLOADED pb_lang[ 193 ].s +#define S_PLEASE_ENTER_UPLOAD_DESCRIPTIONS pb_lang[ 194 ].s +#define S_ENTER_USERNAME_FOR_PERSONAL_FILE(p1) parse_lang(pb_lang[ 195 ].s , (p1)) +#define S_ENTER_DESCRIPTION_LINE_1(p1) parse_lang(pb_lang[ 196 ].s , (p1)) +#define S_ENTER_DESCRIPTION_LINE_X pb_lang[ 197 ].s +#define S_USER_LIST_HEADER pb_lang[ 198 ].s +#define S_UNMARKED_ALL_MESSAGES pb_lang[ 199 ].s +#define S_PAGED_TOO_MANY_TIMES pb_lang[ 200 ].s +#define S_PAGING_NOT_ALLOWED_RIGHT_NOW pb_lang[ 201 ].s +#define S_ASK_CHAT_REASON pb_lang[ 202 ].s +#define S_CHAT_REASON_TOO_SHORT(p1) parse_lang(pb_lang[ 203 ].s , (p1)) +#define S_SYSOP_NOT_RESPONDING pb_lang[ 204 ].s +#define S_MSGED_HEADER pb_lang[ 205 ].s +#define S_MSGED_COMMAND_LIST pb_lang[ 206 ].s +#define S_MSGED_LIST pb_lang[ 207 ].s +#define S_MSGED_SAVE pb_lang[ 208 ].s +#define S_MSGED_ASK_ABORT pb_lang[ 209 ].s +#define S_MSGED_CONTINUE pb_lang[ 210 ].s +#define S_MSGED_EDIT_LINE(p1) parse_lang(pb_lang[ 211 ].s , (p1)) +#define S_MSGED_DELETE_LINE pb_lang[ 212 ].s +#define S_MSGED_DELETE_FROM_LINE(p1) parse_lang(pb_lang[ 213 ].s , (p1)) +#define S_MSGED_DELETE_TO_LINE(p1,p2) parse_lang(pb_lang[ 214 ].s , (p1),(p2)) +#define S_MSGED_X_LINES_DELETED(p1) parse_lang(pb_lang[ 215 ].s , (p1)) +#define S_MSGED_INSERT_LINE(p1) parse_lang(pb_lang[ 216 ].s , (p1)) +#define S_MSGED_REPLACE_TEXT(p1) parse_lang(pb_lang[ 217 ].s , (p1)) +#define S_MSGED_ENTER_TEXT_TO_REPLACE pb_lang[ 218 ].s +#define S_MSGED_TEXT_NOT_FOUND pb_lang[ 219 ].s +#define S_MSGED_REPLACE_BY pb_lang[ 220 ].s +#define S_MSGED_LINE_NOW_READS pb_lang[ 221 ].s +#define S_VIEW_ARCHIVE_TITLE_AND_PROMPT pb_lang[ 222 ].s +#define S_ARCHIVE_FILE_NOT_FOUND pb_lang[ 223 ].s +#define S_ARCHIVE_HEADER_FILENAME pb_lang[ 224 ].s +#define S_ARCHIVE_HEADER_DATE pb_lang[ 225 ].s +#define S_ARCHIVE_HEADER_TIME pb_lang[ 226 ].s +#define S_ARCHIVE_HEADER_ORIGSIZE pb_lang[ 227 ].s +#define S_ARCHIVE_HEADER_COMPSIZE pb_lang[ 228 ].s +#define S_TIME_LIMIT_EXCEEDED pb_lang[ 229 ].s +#define S_TIME_LIMIT_WARNING(p1) parse_lang(pb_lang[ 230 ].s , (p1)) +#define S_INACTIVITY_TIMEOUT(p1) parse_lang(pb_lang[ 231 ].s , (p1)) +#define S_INACTIVITY_WARNING(p1) parse_lang(pb_lang[ 232 ].s , (p1)) +#define S_MCHAT_TITLE pb_lang[ 233 ].s +#define S_MCHAT_ENTER_NODE_NUMBER pb_lang[ 234 ].s +#define S_MCHAT_CALLING_OTHER_NODE pb_lang[ 235 ].s +#define S_MCHAT_NODE_IS_NOT_AVAILABLE pb_lang[ 236 ].s +#define S_MCHAT_STARTED pb_lang[ 237 ].s +#define S_MCHAT_OTHER_NODE_HUNG_UP pb_lang[ 238 ].s +#define S_SELECT_AREAS_TO_SCAN_TITLE pb_lang[ 239 ].s +#define S_SELECT_COMBINED_AREAS_TITLE pb_lang[ 240 ].s +#define S_SELECT_AREAS_TO_TOGGLE pb_lang[ 241 ].s +#define S_ENABLE_OR_DISABLE_ALL_AREAS pb_lang[ 242 ].s +#define S_ALL_AREAS_ENABLED pb_lang[ 243 ].s +#define S_ALL_AREAS_DISABLED pb_lang[ 244 ].s +#define S_EDIT_TAGGED_TITLE pb_lang[ 245 ].s +#define S_EDIT_TAGGED_PROMPT pb_lang[ 246 ].s +#define S_ALL_FILE_TAGS_CLEARED pb_lang[ 247 ].s +#define S_ENTER_FILE_TO_UNTAG pb_lang[ 248 ].s +#define S_MAIL_FOUND_TITLE pb_lang[ 249 ].s +#define S_MAIL_FOUND_ACTION_PROMPT pb_lang[ 250 ].s +#define S_CHECKING_MAILBOX pb_lang[ 251 ].s +#define S_MAILBOX_EMPTY pb_lang[ 252 ].s +#define S_MESSAGES_HAVE_BEEN_MARKED pb_lang[ 253 ].s +#define S_CHECKING_FOR_PERSONAL_FILES pb_lang[ 254 ].s +#define S_PERSONAL_FILES_FOUND pb_lang[ 255 ].s +#define S_PERSONAL_FILE_FROM(p1) parse_lang(pb_lang[ 256 ].s , (p1)) +#define S_PROTOCOL_MENU_TITLE pb_lang[ 257 ].s +#define S_PROTOCOL_MENU_GOBACK pb_lang[ 258 ].s +#define S_PROTOCOL_MENU_PROMPT pb_lang[ 259 ].s +#define S_ENTER_MESSAGE_AREA_NUMBER pb_lang[ 260 ].s +#define S_PRESS_ENTER_TO_LIST pb_lang[ 261 ].s +#define S_SELECT_MESSAGE_AREA_TITLE pb_lang[ 262 ].s +#define S_UNKNOWN_MESSAGE_AREA pb_lang[ 263 ].s +#define S_ENTER_FILE_AREA_NUMBER pb_lang[ 264 ].s +#define S_SELECT_FILE_AREA_TITLE pb_lang[ 265 ].s +#define S_UNKNOWN_FILE_AREA pb_lang[ 266 ].s +#define S_ZONELIST_HEADER pb_lang[ 267 ].s +#define S_NETLIST_HEADER(p1) parse_lang(pb_lang[ 268 ].s , (p1)) +#define S_NODELIST_HEADER(p1) parse_lang(pb_lang[ 269 ].s , (p1)) +#define S_NODE_NUMBER_NOT_FOUND pb_lang[ 270 ].s +#define S_ENTER_FILENAME_TO_DISPLAY pb_lang[ 271 ].s +#define S_REPLY_TO_MSG_USING_YOUR_ALIAS pb_lang[ 272 ].s +#define S_REPLY_TO_MSG_USING_AN_ALIAS pb_lang[ 273 ].s +#define S_DO_YOU_WANT_TO_CHANGE_THE_SUBJECT pb_lang[ 274 ].s +#define S_QUOTING_MESSAGE pb_lang[ 275 ].s +#define S_SHOW_GIF_INFO_TITLE_AND_PROMPT pb_lang[ 276 ].s +#define S_SHOW_GIF_FILENAME pb_lang[ 277 ].s +#define S_SHOW_GIF_RESOLUTION pb_lang[ 278 ].s +#define S_SHOW_GIF_COLORS pb_lang[ 279 ].s +#define S_ENTER_BULLETIN pb_lang[ 280 ].s +#define S_FILE_NOT_FOUND pb_lang[ 281 ].s +#define S_SELECT_MSG_AREA_TO_MOVE_MESSAGE_TO pb_lang[ 282 ].s +#define S_MOVING_MESSAGE pb_lang[ 283 ].s +#define S_FORWARD_IN_SAME_AREA pb_lang[ 284 ].s +#define S_SELECT_MSG_AREA_TO_FORWARD_MESSAGE_IN pb_lang[ 285 ].s +#define S_FORWARD_MESSAGE_TO pb_lang[ 286 ].s +#define S_FORWARDING_MESSAGE pb_lang[ 287 ].s +#define S_TIME_STATS_TITLE pb_lang[ 288 ].s +#define S_STATS_TIME_ONLINE(p1) parse_lang(pb_lang[ 289 ].s , (p1)) +#define S_STATS_TIME_LEFT(p1) parse_lang(pb_lang[ 290 ].s , (p1)) +#define S_STATS_FREE_TIME(p1) parse_lang(pb_lang[ 291 ].s , (p1)) +#define S_STATS_TIME_TODAY(p1) parse_lang(pb_lang[ 292 ].s , (p1)) +#define S_STATS_DAILY_TIME_LIMIT(p1) parse_lang(pb_lang[ 293 ].s , (p1)) +#define S_STATS_DAILY_DL_LIMIT(p1) parse_lang(pb_lang[ 294 ].s , (p1)) +#define S_STATS_DOWNLOAD_LEFT(p1) parse_lang(pb_lang[ 295 ].s , (p1)) +#define S_STATS_KB_DOWNLOAD(p1) parse_lang(pb_lang[ 296 ].s , (p1)) +#define S_STATS_KB_UPLOADED(p1) parse_lang(pb_lang[ 297 ].s , (p1)) +#define S_STATS_KB_UPLOAD_NEEDED(p1) parse_lang(pb_lang[ 298 ].s , (p1)) +#define S_STATS_FREE_DOWNLOAD(p1) parse_lang(pb_lang[ 299 ].s , (p1)) +#define S_STATS_LAST_CALLED(p1,p2) parse_lang(pb_lang[ 300 ].s , (p1),(p2)) +#define S_STATS_TOTAL_CALLS(p1) parse_lang(pb_lang[ 301 ].s , (p1)) +#define S_TOPS_TOP_CALLERS pb_lang[ 302 ].s +#define S_TOPS_TOP_CALLERS_UNIT pb_lang[ 303 ].s +#define S_TOPS_TOP_DOWNLOADERS_KB pb_lang[ 304 ].s +#define S_TOPS_TOP_DOWNLOADERS_KB_UNIT pb_lang[ 305 ].s +#define S_TOPS_TOP_DOWNLOADERS_TIMES pb_lang[ 306 ].s +#define S_TOPS_TOP_DOWNLOADERS_TIMES_UNIT pb_lang[ 307 ].s +#define S_TOPS_TOP_UPLOADERS_KB pb_lang[ 308 ].s +#define S_TOPS_TOP_UPLOADERS_KB_UNIT pb_lang[ 309 ].s +#define S_TOPS_TOP_UPLOADERS_TIMES pb_lang[ 310 ].s +#define S_TOPS_TOP_UPLOADERS_TIMES_UNIT pb_lang[ 311 ].s +#define S_TOPS_TOP_MSGWRITERS pb_lang[ 312 ].s +#define S_TOPS_TOP_MSGWRITERS_UNIT pb_lang[ 313 ].s +#define S_TOPS_TOP_ONLINE pb_lang[ 314 ].s +#define S_TOPS_TOP_ONLINE_UNIT pb_lang[ 315 ].s +#define S_SHOW_USERS_ONLINE_HEADER pb_lang[ 316 ].s +#define S_USER_ONLINE_STATUS_BROWSING pb_lang[ 317 ].s +#define S_USER_ONLINE_STATUS_CHATTING pb_lang[ 318 ].s +#define S_USER_ONLINE_STATUS_ONLINE pb_lang[ 319 ].s +#define S_USER_ONLINE_STATUS_INSHELL pb_lang[ 320 ].s +#define S_USER_ONLINE_STATUS_BUSY pb_lang[ 321 ].s +#define S_USER_ONLINE_NO_USER_ONLINE pb_lang[ 322 ].s +#define S_DIRECTORY_TO_SHOW pb_lang[ 323 ].s +#define S_ONE_MOMENT_PLEASE ((char *)replace_stringvars(pb_lang[ 324 ].s)) +#define S_LOADING ((char *)replace_stringvars(pb_lang[ 325 ].s)) +#define S_SYSOP_SHELLING ((char *)replace_stringvars(pb_lang[ 326 ].s)) +#define S_SYSOP_RETURNED_FROM_DOS ((char *)replace_stringvars(pb_lang[ 327 ].s)) +#define S_SYSOP_CHAT_START ((char *)replace_stringvars(pb_lang[ 328 ].s)) +#define S_SYSOP_CHAT_ENDED ((char *)replace_stringvars(pb_lang[ 329 ].s)) +#define S_SELECT_LANGUAGE_TITLE pb_lang[ 330 ].s +#define S_SELECT_LANGUAGE pb_lang[ 331 ].s +#define S_READING_LANGUAGE_FILE pb_lang[ 332 ].s +#define S_INVALID_ENTRY pb_lang[ 333 ].s +#define S_ASK_FAX_PHONE pb_lang[ 334 ].s +#define S_ASK_MAILING_ADDRESS pb_lang[ 335 ].s +#define S_ASK_SEX pb_lang[ 336 ].s +#define S_SELECT_DATE_FORMAT_TITLE pb_lang[ 337 ].s +#define S_SELECT_DATE_FORMAT_PROMPT pb_lang[ 338 ].s +#define S_CHANGE_FAX_PHONE_TITLE_AND_PROMPT(p1) parse_lang(pb_lang[ 339 ].s ,(p1)) +#define S_CHANGE_MAILING_ADDRESS_TITLE_AND_PROMPT(p1) parse_lang(pb_lang[ 340 ].s ,(p1)) +#define S_CHANGE_DATE_FORMAT_TITLE(p1) parse_lang(pb_lang[ 341 ].s ,(p1)) +#define S_MALE pb_lang[ 342 ].s +#define S_FEMALE pb_lang[ 343 ].s +#define S_UNKNOWN pb_lang[ 344 ].s +#define S_ASK_COUNTRY pb_lang[ 345 ].s +#define S_CHANGE_COUNTRY_TITLE_AND_PROMPT(p1) parse_lang(pb_lang[ 346 ].s ,(p1)) +#define S_END_OF_LIST_TAG pb_lang[ 347 ].s +#define S_SELECT_FILE_AREA_GROUP_TITLE pb_lang[ 348 ].s +#define S_SELECT_MSG_AREA_GROUP_TITLE pb_lang[ 349 ].s +#define S_ENTER_GROUP_NUMBER pb_lang[ 350 ].s +#define S_UNKNOWN_GROUP pb_lang[ 351 ].s +#define S_DOWNLOAD_NOW pb_lang[ 352 ].s +#define S_SCANNING_UPLOADS pb_lang[ 353 ].s +#define S_FOLLOWING_FILES_REJECTED pb_lang[ 354 ].s +#define S_MSGHEADER_MESSAGENUM(p1,p2) parse_lang(pb_lang[ 355 ].s ,(p1),(p2)) +#define S_MSGHEADER_PRIVATE pb_lang[ 356 ].s +#define S_MSGHEADER_CRASH pb_lang[ 357 ].s +#define S_MSGHEADER_KILL pb_lang[ 358 ].s +#define S_MSGHEADER_FILE pb_lang[ 359 ].s +#define S_MSGHEADER_SENT pb_lang[ 360 ].s +#define S_MSGHEADER_FROM(p1,p2,p3) parse_lang(pb_lang[ 361 ].s , (p1),(p2),(p3)) +#define S_MSGHEADER_TO(p1) parse_lang(pb_lang[ 362 ].s , (p1)) +#define S_MSGHEADER_RECEIVED pb_lang[ 363 ].s +#define S_MSGHEADER_RECEIVED_ON(p1,p2) parse_lang(pb_lang[ 364 ].s ,(p1),(p2)) +#define S_MSGHEADER_SUBJECT(p1) parse_lang(pb_lang[ 365 ].s ,(p1)) +#define S_MSGHEADER_FILEATTACHED(p1) parse_lang(pb_lang[ 366 ].s ,(p1)) +#define S_MSGPROMPT_NEXT pb_lang[ 367 ].s +#define S_MSGPROMPT_PREV pb_lang[ 368 ].s +#define S_MSGPROMPT_AGAIN pb_lang[ 369 ].s +#define S_MSGPROMPT_STOP pb_lang[ 370 ].s +#define S_MSGPROMPT_MARK pb_lang[ 371 ].s +#define S_MSGPROMPT_REPLY pb_lang[ 372 ].s +#define S_MSGPROMPT_UNREAD pb_lang[ 373 ].s +#define S_MSGPROMPT_DEL pb_lang[ 374 ].s +#define S_MSGPROMPT_ORIG pb_lang[ 375 ].s +#define S_MSGPROMPT_SYSOPFUNC pb_lang[ 376 ].s +#define S_MSGHELP_TITLE pb_lang[ 377 ].s +#define S_MSGHELP_NEXT pb_lang[ 378 ].s +#define S_MSGHELP_PREV pb_lang[ 379 ].s +#define S_MSGHELP_AGAIN pb_lang[ 380 ].s +#define S_MSGHELP_STOP pb_lang[ 381 ].s +#define S_MSGHELP_MARK pb_lang[ 382 ].s +#define S_MSGHELP_REPLY pb_lang[ 383 ].s +#define S_MSGHELP_DEL pb_lang[ 384 ].s +#define S_MSGHELP_UNREAD pb_lang[ 385 ].s +#define S_MSGHELP_PLUS pb_lang[ 386 ].s +#define S_MSGHELP_MINUS pb_lang[ 387 ].s +#define S_MSGHELP_ORIG pb_lang[ 388 ].s +#define S_MSGHELP_FORWARD pb_lang[ 389 ].s +#define S_MSGHELP_PRIVATE pb_lang[ 390 ].s +#define S_MSGHELP_MOVE pb_lang[ 391 ].s +#define S_MSGHELP_EXPORT pb_lang[ 392 ].s +#define S_MSGHELP_NOTE pb_lang[ 393 ].s +#define S_CHANGE_PROTOCOL_TITLE(p1) parse_lang(pb_lang[ 394 ].s , (p1)) +#define S_NO_DEFAULT_PROTOCOL pb_lang[ 395 ].s +#define S_PROTOCOL_SELECTED(p1) parse_lang(pb_lang[ 396 ].s , (p1)) +#define S_ENTER_SELECTION_PASSWORD pb_lang[ 397 ].s +#define S_SYSTEM_GOING_DOWN pb_lang[ 398 ].s +#define S_UNREG_NO_NEW_ACCOUNTS pb_lang[ 399 ].s + +#define K_MORE pb_lang[ 3 ].hotkeys +#define K_ASK_YES_NO pb_lang[ 10 ].hotkeys +#define K_ASK_NO_YES pb_lang[ 11 ].hotkeys +#define K_READ_MESSAGES_ORDER_SELECTION pb_lang[ 75 ].hotkeys +#define K_READMSG_SELECTED pb_lang[ 80 ].hotkeys +#define K_READMSG_ALL_FORWARD_OR_REVERSE pb_lang[ 84 ].hotkeys +#define K_QSCAN_MESSAGES_ORDER_SELECTION pb_lang[ 100 ].hotkeys +#define K_SCAN_MESSAGES_ORDER_SELECTION pb_lang[ 103 ].hotkeys +#define K_SCAN_MESSAGES_PROMPT pb_lang[ 105 ].hotkeys +#define K_FILE_FOUND_ACTION_PROMPT pb_lang[ 118 ].hotkeys +#define K_START_DOWNLOAD_PROMPT pb_lang[ 126 ].hotkeys +#define K_HANGUP_AFTER_DOWNLOAD_PROMPT pb_lang[ 133 ].hotkeys +#define K_MORE_TAG pb_lang[ 134 ].hotkeys +#define K_UPLOAD_START_PROMPT pb_lang[ 185 ].hotkeys +#define K_MSGED_COMMAND_LIST pb_lang[ 206 ].hotkeys +#define K_ENABLE_OR_DISABLE_ALL_AREAS pb_lang[ 242 ].hotkeys +#define K_EDIT_TAGGED_PROMPT pb_lang[ 246 ].hotkeys +#define K_MAIL_FOUND_ACTION_PROMPT pb_lang[ 250 ].hotkeys +#define K_ASK_SEX pb_lang[ 336 ].hotkeys +#define K_END_OF_LIST_TAG pb_lang[ 347 ].hotkeys +#define K_MSGPROMPT_NEXT pb_lang[ 367 ].hotkeys +#define K_MSGPROMPT_PREV pb_lang[ 368 ].hotkeys +#define K_MSGPROMPT_AGAIN pb_lang[ 369 ].hotkeys +#define K_MSGPROMPT_STOP pb_lang[ 370 ].hotkeys +#define K_MSGPROMPT_MARK pb_lang[ 371 ].hotkeys +#define K_MSGPROMPT_REPLY pb_lang[ 372 ].hotkeys +#define K_MSGPROMPT_UNREAD pb_lang[ 373 ].hotkeys +#define K_MSGPROMPT_DEL pb_lang[ 374 ].hotkeys +#define K_MSGPROMPT_ORIG pb_lang[ 375 ].hotkeys +#define K_MSGPROMPT_SYSOPFUNC pb_lang[ 376 ].hotkeys diff --git a/PROTOCOL.CPP b/PROTOCOL.CPP new file mode 100644 index 0000000..413364c --- /dev/null +++ b/PROTOCOL.CPP @@ -0,0 +1,97 @@ +#include +#include +#include "proboard.hpp" + +bool +select_protocol(protocol& p , char protocol_key , bool seldef) +{ + String hotkeys; + String s; + + if(protocol_key == '\0') + { + s << S_PROTOCOL_MENU_TITLE << "\n\n"; + + for(int i=1 ; p.read(i) ; i++) + { + if(p.flags&PROT_ENABLED && !(io.baud>0 && (p.flags&PROT_LOCAL))) + { + s << form("\6<\3%c\6>\7 %s\n",p.key,p.name); + + hotkeys << p.key; + } + else + { + hotkeys << '-'; + } + } + + s << "\n\6<\3-\6> " << (seldef ? S_NO_DEFAULT_PROTOCOL : S_PROTOCOL_MENU_GOBACK) + << "\n\n" + << S_PROTOCOL_MENU_PROMPT; + + hotkeys << '-'; + + char k=io.send(s,hotkeys); + + io.show_remote = TRUE; + + if(k==1) return FALSE; + + if(!k) k=io.wait(hotkeys); + + if(k=='-') + return FALSE; + + for(i=0;iPvVbgiFbW1_*RFd*QPz~ZJ60`i*WMPG zI%aC-*pTdp!Aba-MiWA!S%iefA7($g&cv=YsEI#7qr}MUVq!+dH}%}xTe<;>COvP? zIq&nH^PG=1?I{IAAn2F;g5SGV2n3>iCIBdRY^|%U+Tss--M+S}t*cj8)vR5Ax337` zjs_0(F#w-Xj>ft^9l%|LqYJP8Dl!~CxelO&w>LSOwl?i@IkxR_Xty>sZYy#%HaHrz z%Hi75+^j)i8n@egAD(%W3S z_Po-vi-Qs_=n1%jVn~!Moe|Kx0{dM^^#EvG9zPVh!XYt;-q4Xyz%6yaBCg#Z3VFO9 zKNk{xZI(`7mmsZ&@`Bs4-y7;s{IKu|ZOJxHMF!lTCW9od*M-Cw4Mft zuyaoNX>7nA$a78Za?09;N zhoRPl>CDBNnauKd>wV2H)_&ba+jO{mAi?o-dy*-$6?*1$Zb}?Yjj$@l99srhH_le& zI%|-RN@kS1%!-U4&vwV7iRJc%@3*l->b~sV^!@*;kD7cY`;^grKKc8@)`36veTQ55 z?$l>=Pra1}X~_ui!&Vw6)BE}ZzVyb<2e@UI0DH4c9W_ogdpTyx0rG{IW6R|}%WqWJ z1sQf8VTA=U6Y4oD;<(w>+x?yfNQ*)j-s4VPf?Gc?9p#SMZepC-@0e)! zOR_+ z{)AfcTL+blk;Tb##FQK)^W(?m8!v{53wR`VqPu~Z;?K*kR^eT;k}OGOV literal 0 HcmV?d00001 diff --git a/QSCANMSG.CPP b/QSCANMSG.CPP new file mode 100644 index 0000000..31c61ee --- /dev/null +++ b/QSCANMSG.CPP @@ -0,0 +1,231 @@ +#define Use_MsgBase + +#include +#include +#include +#include "proboard.hpp" + +void +qscan_msg(char *data) +{ + MsgArea ma; + String param[10]; + int searchmethod = 0; + int searchorder = 0; + char searchdata[80]; + long firstmsg=0; + int area; + bool nonext = FALSE; + + Message msg; + MarkedMsgList marked = markedmsglist; + + parse_data(data,param); + + if(param[0][0]=='*') area = user.msgArea; + else area = atoi(param[0]); + + if(area) + { + if(!ma.read(area)) return; + + if(!check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot) && !ma.sysopAccess()) + { + io << "\n\n" << S_ACCESS_DENIED << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + long n = ma.msgBase->numMsgs(ma); + + if(!n) + { + io << '\n' << S_THERE_ARE_NO_MESSAGES_IN_THIS_AREA << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + msg.setArea(area); + } + + + if(param[1][0]=='/' && param[1][1]=='N') + { + searchmethod = READMSG_MARKED; + searchorder = +1; + } + else + { + String hotkeys = K_QSCAN_MESSAGES_ORDER_SELECTION; + hotkeys << '\r'; + char key; + + if(area) + { + io << '\n'; + key=io.send(S_QSCAN_MESSAGES_ORDER_SELECTION,hotkeys); + } + else + key = K_QSCAN_MESSAGES_ORDER_SELECTION[3]; + + if(!key) key=io.wait(hotkeys); + + key = hotkeys.find(String(char(key))); + + io << "\n\n"; + switch(key) + { + case 6 : return; + case 1 : io << S_READMSG_FORWARD << '\n'; + searchmethod = READMSG_ALL; + searchorder = 1; + break; + case 2 : io << S_READMSG_REVERSE << '\n'; + searchmethod = READMSG_ALL; + searchorder = -1; + break; + case 0 : io << S_READMSG_ALL << '\n'; + searchmethod = READMSG_ALL; + break; + case 3 : io << S_READMSG_NEW << '\n'; + searchmethod = READMSG_NEW; + searchorder = 1; + break; + case 4 : { + io << S_READMSG_SELECTED; + char k = wait_language_hotkeys(K_READMSG_SELECTED); + + if(k == '\r') return; + + io << K_READMSG_SELECTED[k]; + + switch(k) + { + case 0: k = 'F'; break; + case 1: k = 'T'; break; + case 2: k = 'S'; break; + case 3: k = 'E'; break; + } + searchdata[0] = k; + io << "\n\n" << S_READMSG_SELECTED_SEARCH_FOR; + io.read(&searchdata[1],60,READMODE_UPALL); + if(!searchdata[1]) return; + searchmethod = READMSG_SEL; + io << '\n'; + } break; + case 5 : io << S_READMSG_MARKED << '\n'; + searchmethod = READMSG_MARKED; + break; + } + + if(!searchorder) + { + io << S_READMSG_ALL_FORWARD_OR_REVERSE; + key=wait_language_hotkeys(K_READMSG_ALL_FORWARD_OR_REVERSE); + if(key==1) + { + searchorder = -1; + io << S_READMSG_REVERSE << '\n'; + } + else + { + searchorder = +1; + io << S_READMSG_FORWARD << '\n'; + } + } + + if(area) + { + long highnum = ma.msgBase->msgNum(ma,ma.msgBase->highMsg(ma)); + long lownum = ma.msgBase->msgNum(ma,ma.msgBase->lowMsg(ma)); + + if(searchorder<0) firstmsg = highnum; + else firstmsg = lownum; + + if(searchmethod != READMSG_MARKED && searchmethod != READMSG_INDIV) + { + io << '\n' << S_READMSG_START_AT_MESSAGE; + io.read(firstmsg); + + if(firstmsg > highnum && searchorder < 0) firstmsg = highnum; + if(firstmsg < lownum && searchorder > 0) firstmsg = lownum; + + firstmsg = ma.msgBase->msgId(ma,firstmsg); + + io << '\n'; + } + } + } // No "/N" parameter + + if(searchmethod == READMSG_NEW) + { + marked.clear(); + + io << '\n' << S_READMSG_SEARCHING_NEW_MESSAGES; + + get_new_msgs(marked,area); + + if(!marked.numMarked()) + { + io << "\n\n" << S_READMSG_NO_NEW_MESSAGES_FOUND << + "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + + io << S_READMSG_X_NEW_MESSAGES_FOUND(form("%d",marked.numMarked())) << '\n'; + + searchmethod = READMSG_MARKED; + } + + if(searchmethod != READMSG_MARKED) + { + if(!msg.readFirst(searchmethod,searchorder,firstmsg,searchdata)) + { + io << '\n' << S_READMSG_NO_MESSAGES_FOUND + << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + nonext = TRUE; + } + + int markedmsg_index = 0; + + io << '\n' << S_QSCAN_MSG_HEADER << '\n'; + + stopped=0; + io.enablestop(); + linecounter(3); + + for(;;) + { + if(searchmethod == READMSG_MARKED) + { + if(markedmsg_index >= marked.numMarked()) break; + + MessageIndex mi = marked[markedmsg_index++]; + + if(area) if(mi.area != area) continue; + + if(!msg.read(mi.num,mi.area)) continue; + } + + if(searchmethod!=READMSG_MARKED && !nonext) + if(!msg.readNext(searchmethod,searchorder,searchdata)) break; + + nonext = FALSE; + + ma = *msg.msgArea; + + if(!msg.readAccess()) continue; + + io << S_QSCAN_MSG_DATALINE(form("%d",msg.areaNum()) , form("%ld",msg.msgBase()->msgNum(*msg.msgArea,msg.id)) , msg.from,msg.to,msg.subj) << '\n'; + +// io << form("\7%4d %5ld \6%-20.20s \3%-20.20s \5%-24.24s\n",msg.areaNum(),msg.msgBase()->msgNum(*msg.msgArea,msg.id),msg.from,msg.to,msg.subj); + if(stopped) break; + if(linecounter()) break; + } + + if(param[1][0] != '/' || param[1][1]!='N') + io << '\n' << S_END_OF_MESSAGES + << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; +} diff --git a/QSCANMSG.OBJ b/QSCANMSG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..79abd7f99d1ece19da65f80a61495b4d2a79a5a1 GIT binary patch literal 6498 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 +#include +#include "proboard.hpp" + + + +static +void near adjust_parms( char *s, + String *param ) +{ + char delimiter; + + + strip_linefeed( s ); + + + for ( int i = 0; i < 4; i++ ) + { + param[ i ].clear(); + + + while( *s == ' ' && + *s ) + { + s++; + } + + + if ( *s == '\0' ) + { + break; + } + + + if ( *s == '\"' ) + { + delimiter = *s++; + } + else + { + delimiter = ' '; + } + + + for ( int j = 0; + + *s != delimiter && + (*s); + + j++ ) + { + param[ i ] << (*s++); + } + } +} + + + +#define NUMCOMMANDS 18 + + + +void questionnaire( char *data ) +{ + char str[ 300 ]; + char *commands[] = { + "ASK" , + "CHANGECOLOR", + "OUTPUTANSWER", + "POSTINFO", + "QUIT", + "SETFLAG", + "CLEARSCREEN", + "DISPLAY", + "ENDIF", + "IF", + "GETCHOICE", + "CAPITALISE", + "DISPLAYFILE", + "EXEC", + "LISTANSWER", + "MENUCMND", + "SETSECURITY", + "WAITENTER" + }; + String answers[ 30 ]; + String param [ 4 ]; + File qf; + + FileName qafile( pb_curlang.questPath[ 0 ] + ? pb_curlang.questPath + : syspath,data, + ".Q-A" ); + + FileName aswfile( data, ".ASW" ); + int i; + bool capitalise = FALSE; + + + if ( ! qf.open( qafile, + fmode_read | fmode_text ) ) + { + if ( strcmpl( data, "NEWUSER" ) ) + { + LOG( "File %s not found!", (char *) qafile ); + + io << "\n\n\1Scriptfile not found! " + << S_PRESS_ENTER_TO_CONTINUE; + } + + + return; + } + + + LOG( 2, "Questionnaire: %s", data ); + + + for ( ; ; ) + { + if ( ! qf.readLine( str, 299 ) ) + { + break; + } + + + adjust_parms( str, param ); + + + for ( i = 0; i < NUMCOMMANDS; i++ ) + { + if ( param[ 0 ] != commands[ i ] ) + { + continue; + } + + + switch ( i ) + { + case 0: + + char s[ 80 ]; + + + io.read( s, + atoi( param[ 1 ] ), + capitalise + ? READMODE_UPFIRST + : 0 ); + + answers[ atoi( param[ 2 ] ) - 1 ] = s; + + io << '\n'; + + break; + + + case 1: + + io.color( atoi( param[ 1 ] ) ); + + break; + + + case 2: + + File f( aswfile, + fmode_write | + fmode_append | + fmode_copen | + fmode_text ); + + + if ( param[ 2 ][ 0 ] ) + { + f << form( "%s%s\n", + (char *) param[ 1 ], + (char *) answers[ atoi( param[ 2 ] ) - 1 ] ); + } + else + { + f << form( "%s\n", + (char *) answers[ atoi( param[ 1 ] ) - 1 ] ); + } + + + break; + + + case 3: + { + Date date( TODAY ); + Time time( NOW ); + File f( aswfile, + fmode_write | + fmode_append | + fmode_copen | + fmode_text ); + + + f << form( "*** %s completed questionnaire at %02d:%02d on %02d-%s-%02d ***\n", + user.name, + time[ 0 ], + time[ 1 ], + date[ 0 ], + months_short[ date[ 1 ] ], + date[ 2 ] % 100 ); // Y2K FIXED + // date[ 2 ] ); // Y2K BUG + } + break; + + + case 4: + + return; + + + case 5: + + int flag = -1; + + + strupr( param[ 1 ] ); + + + if ( param[ 1 ][ 1 ] >= '1' && + param[ 1 ][ 1 ] <= '8' ) + { + switch ( param[ 1 ][ 0 ] ) + { + case 'A': + + flag = param[ 1 ][ 1 ] - '1' + 1; + break; + + + case 'B': + + flag = param[ 1 ][ 1 ] - '1' + 9; + break; + + + case 'C': + + flag = param[ 1 ][ 1 ] - '1' + 17; + break; + + + case 'D': + + flag = param[ 1 ][ 1 ] - '1' + 25; + break; + } + } + else + { + if ( param[ 1 ][ 0 ] >= 'A' && + param[ 1 ][ 0 ] <= 'Z') + { + flag = param[ 1 ][ 0 ] - 'A' + 1; + } + + + if ( param[ 1 ][ 0 ] >= '1' && + param[ 1 ][ 0 ] <= '6' ) + { + flag = param[ 1 ][ 0 ] - '1' + 27; + } + } + + + if ( flag < 1 || + flag > 32 ) + { + break; + } + + + if ( param[ 2 ] == "ON" ) + { + user.aFlags.setflag( flag ); + } + + + if ( param[ 2 ] == "OFF" ) + { + user.aFlags.clearflag( flag ); + } + + + updatemenu = TRUE; + + break; + + + case 6: + + io.cls(); + break; + + + case 7: + + for ( int i = 0; i < param[ 1 ].len(); i++ ) + { + if ( param[ 1 ][ i ] == '|' ) + { + param[ 1 ][ i ] = '\n'; + } + } + + + io << param[ 1 ]; + + + break; + + + case 9: + + if ( answers[ atoi( param[ 1 ] ) - 1 ] == param[ 3 ] ) + { + break; + } + + + do + { + if ( ! qf.readLine( str, 299 ) ) + { + return; + } + + + adjust_parms( str, param ); + } + while ( param[ 0 ] != commands[ 8 ] ); + + + break; + + + case 10: + + char c = io.wait( param[ 1 ] ); + + + answers[ atoi( param[ 2 ] ) - 1 ] = String( c ); + + io << c + << '\n'; + + break; + + + case 11: + + if ( param[ 1 ] == "ON" ) + { + capitalise = TRUE; + } + else + { + capitalise = FALSE; + } + + + break; + + + case 12: + + showansasc( param[ 1 ] ); + + break; + + + case 13: + + shell( param[ 1 ] ); + + break; + + + case 14: + + io << (char *) answers[ atoi( param[ 1 ] ) - 1 ] + << '\n'; + + break; + + + case 15: + + ( *( menufunctions[ atoi( param[ 1 ] ) ] ) ) ( param[ 2 ] ); + + break; + + + case 16: + + user.level = atoi( param[ 1 ] ); + updatemenu = TRUE; + + break; + + + case 17: + + io << "\t\n"; + + break; + } + } + } +} diff --git a/QUESTION.OBJ b/QUESTION.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..f30035eaff2713dd862138832171a51d59114792 GIT binary patch literal 4657 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 literal 0 HcmV?d00001 diff --git a/RAWDIR.CPP b/RAWDIR.CPP new file mode 100644 index 0000000..1c01c8c --- /dev/null +++ b/RAWDIR.CPP @@ -0,0 +1,77 @@ +#include +#include "proboard.hpp" + + + +void raw_dir( char *data ) +{ + char wildcard[ 64 ]; + + + if ( ! *data ) + { + io << "\f\n" + << S_DIRECTORY_TO_SHOW; + + io.read( wildcard, + 50, + READMODE_UPALL ); + + + if ( ! wildcard[ 0 ] ) + { + return; + } + } + else + { + strcpy( wildcard, data ); + } + + + append_backspace( wildcard ); + + strcat( wildcard, "*.*" ); + + LOG( 1, "Raw dir: %s", wildcard ); + + io << "\n\n"; + + + io.enablestop(); + linecounter( 2 ); + + + DirScan f( wildcard ); + + + while( int( f ) ) + { + Date d = f.date(); + Time t = f.time(); + + + io << form( "\7%-12s \3%7ld \6%02d-%s-%04d \2%02d:%02d:%02d\n", + f.name(), + f.size(), + d[ 0 ], + months_short[ d[ 1 ] ], + d[ 2 ] + 1900, // Y2K OKAY! + t[ 0 ], + t[ 1 ], + t[ 2 ] ); + + if ( linecounter() || + stopped ) + { + break; + } + + + ++f; + } + + + io << "\n\n" + << S_PRESS_ENTER_TO_CONTINUE; +} diff --git a/RAWDIR.OBJ b/RAWDIR.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..25997bda524babb7e0e9bc99f375a2a22ecd58fa GIT binary patch literal 1547 zcmZ`(U1%d!6h1SPzb2{OHEFtAFhod-c4^t|F17SQrrRX7s7=Vv)d)IHCbM=hP12d^ z&lZ%$f`mrJ2a&oc>>~T(i@H8Ef=JOxRhk4vgauz#P_XU_iw}ZTc07~cwyO{KaL#wm z{m!}Hy)&1bV3+xoj3kc=g+ift0s!2J>4|aQ`MjLva~a?CsZ+kQqi6PuW`MsKSSeZn zu2PBMM9~VckL3tq>Nm4<_3cprM{Me;;B1Ubgq}{ArX#_SnF~%Orc4dPosY*ET$bQW zERu}=vuTBgqBPA=KcV;744BN+*M|d0?!9Ee0K_|B+h+yLiX%2^f0T@ooW2mV4LP5;H0DB>?C{k9+vto`< zXGJ67Ut9)HHzA9B#=nR>(vkq~F78ifmH9>jn}wyUIE9t$1sLSwTr?Jn$GOm4B7_Hz zaMO{w#Oz!$1pO?RR79E0@`@T4d0Ci`7eoPiTd;Cb2}&|Jv5CBZ)T_qu$63VU0-s|Q zX-)L6;&fd|l@^Xd8D2dK<@i?Bu?|;GTvd&OcB%a7jEd4N;~Cox{b|8~j5$!@1omS6 zX=N#`7z+2XLF{w@@UT3Jn#*u$UU*R{@PgP>$BJ^xLg6Ab9bScJ-gE;{y(~U74qsZc z3?O_ZK~n(9((U!zbJ}y3p$+S%V|yv8c>#v>tw}eU3AeWl5N(*t#$#L8Y_VwD`-qN~ z#~|u?J$(I8iE|@--JoLjey47^^ktjAY-tp=H+F+m%3Eey6o<0jvK69b3fj%=-m>e+ zAl<1_sWRQFOf|UC?6-H?_8z7hF`7R+U>o_PgBTQub^uH1#v5N4qBO?%@66fl|J%|e z>-6i8nX}e5-@VC?>F;lrZs=Py=vx3y@_Va{maWsJQn4eEx9sU?HW)i}Ew-|*H&2_w z%duX16z@}|Z}lIfTYvd3sLWpdu0C!8eVhhwIe0|&?)|qE>nLq0{qpSYm+$UEJw)8~ zbEKy}OnP>PJd}CoK{rM3Jm8@mJ15c9ZNydi+e2AucL-hkneNr(>U-mnZ#S@m`Y$8N><|C| literal 0 HcmV?d00001 diff --git a/READMSG.CPP b/READMSG.CPP new file mode 100644 index 0000000..cc3ccde --- /dev/null +++ b/READMSG.CPP @@ -0,0 +1,846 @@ +#define Use_MsgBase + +#include +#include +#include "proboard.hpp" + +static void draw_button(int num , char *text , char cmd , char hotkey); +static int readmsg_more(); +static void draw_readmsg_screen(); +static void kill_readmsg_buttons(); + +void +readmsg(char *data) +{ + MsgArea ma , reply_area; + long orgmsg; + String param[10]; + int searchmethod = 0; + int searchorder = 0; + char searchdata[80]; + long firstmsg=0; + int area; + bool inchain = FALSE; + bool nonext = FALSE; + bool newmode = FALSE; + + Message msg; + + MarkedMsgList marked = markedmsglist; + + parse_data(data,param); + + if(param[0][0]=='*') area = user.msgArea; + else area = atoi(param[0]); + + if(area) + { + if(!ma.read(area)) return; + + if(!check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot) && !ma.sysopAccess()) + { + io << "\n\n" << S_ACCESS_DENIED << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + long n = ma.msgBase->numMsgs(ma); + + if(n < 0) + { + io << '\n' << S_THIS_MESSAGE_AREA_IS_LOCKED << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + + //if(!rip_mode) + if(n) + { + io << '\n' << S_THERE_ARE_X_MESSAGES_IN_THIS_AREA(form("%d",n)) << '\n'; + } + else + { + io << '\n' << S_THERE_ARE_NO_MESSAGES_IN_THIS_AREA << + "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + + msg.setArea(area); + } + + + if(param[1][0]=='/' && param[1][1]=='N') + { + searchmethod = READMSG_MARKED; + searchorder = +1; + } + else + { + String hotkeys = K_READ_MESSAGES_ORDER_SELECTION; + hotkeys << '\r'; + + /*char *hotkeys="FRANSTIM\r";*/ + + char key; + + if(area) + { + io << '\n'; + key = io.send(S_READ_MESSAGES_ORDER_SELECTION,hotkeys); + + if(!key) key=io.wait(hotkeys); + + key = hotkeys.find(String(char(key))); + } + else key = 3; // read new! + + io << "\n\n"; + + switch(key) + { + case 7 : return; + case 1 : io << S_READMSG_FORWARD << '\n'; + searchmethod = READMSG_ALL; + searchorder = 1; + break; + case 2 : io << S_READMSG_REVERSE << '\n'; + searchmethod = READMSG_ALL; + searchorder = -1; + break; + case 0 : io << S_READMSG_ALL << '\n'; + searchmethod = READMSG_ALL; + break; + case 3 : io << S_READMSG_NEW << '\n'; + searchmethod = READMSG_NEW; + searchorder = 1; + break; + case 4 : { + io << S_READMSG_SELECTED; + + char k = wait_language_hotkeys(K_READMSG_SELECTED); + + if(k == '\r') return; + + io << K_READMSG_SELECTED[k]; + + switch(k) + { + case 0: k = 'F'; break; + case 1: k = 'T'; break; + case 2: k = 'S'; break; + case 3: k = 'E'; break; + } + searchdata[0] = k; + io << "\n\n" << S_READMSG_SELECTED_SEARCH_FOR; + io.read(&searchdata[1],60,READMODE_UPALL); + if(!searchdata[1]) return; + searchmethod = READMSG_SEL; + io << '\n'; + } break; + case 5 : io << S_READMSG_INDIVIDUAL << '\n'; + searchmethod = READMSG_INDIV; + searchorder = 1; + break; + case 6 : io << S_READMSG_MARKED << '\n'; + searchmethod = READMSG_MARKED; + break; + } + + if(!searchorder) + { + io << S_READMSG_ALL_FORWARD_OR_REVERSE; + key=wait_language_hotkeys(K_READMSG_ALL_FORWARD_OR_REVERSE); + if(key==1) + { + searchorder = -1; + io << S_READMSG_REVERSE << '\n'; + } + else + { + searchorder = +1; + io << S_READMSG_FORWARD << '\n'; + } + } + + if(area) + { + long highnum = ma.msgNum(ma.highMsg()); + long lownum = ma.msgNum(ma.lowMsg()); + + if(searchorder<0) firstmsg = highnum; + else firstmsg = lownum; + + if(searchmethod != READMSG_MARKED && searchmethod != READMSG_INDIV && searchmethod != READMSG_NEW) + { + io << '\n' << S_READMSG_START_AT_MESSAGE; + io.read(firstmsg); + + if(firstmsg > highnum && searchorder < 0) firstmsg = highnum; + if(firstmsg < lownum && searchorder > 0) firstmsg = lownum; + + firstmsg = ma.msgId(firstmsg); + + io << '\n'; + } + } + } // No "/N" parameter + + if(searchmethod == READMSG_NEW) + { + newmode = TRUE; + + marked.clear(); + + io << '\n' << S_READMSG_SEARCHING_NEW_MESSAGES; + + get_new_msgs(marked,area); + + if(!marked.numMarked()) + { + io << "\n\n" << S_READMSG_NO_NEW_MESSAGES_FOUND << + "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + + io << S_READMSG_X_NEW_MESSAGES_FOUND(form("%d",marked.numMarked())) << '\n'; + + searchmethod = READMSG_MARKED; + } + + if(searchmethod != READMSG_INDIV && searchmethod != READMSG_MARKED) + { + if(!msg.readFirst(searchmethod,searchorder,firstmsg,searchdata)) + { + io << '\n' << S_READMSG_NO_MESSAGES_FOUND << "\n\n" + << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + nonext = TRUE; + } + + int markedmsg_index = 0; + + bool continuous = FALSE; + + if(searchmethod!=READMSG_INDIV) + { + io << '\n' << S_READMSG_WAIT_AFTER_EACH_MSG; + continuous = !io.ask(1); + + if(continuous) + { + io << "\f\n\n" << S_PRESS_S_TO_STOP_OR_P_TO_PAUSE; + } + } + + if(!continuous) + { + draw_readmsg_screen(); + } + + + for(;;) + { + if(searchmethod==READMSG_INDIV && !inchain) + { + long nr; + + io << "\n\n" << S_READMSG_INDIV_ASK_MSGNUM; + + if(io.read(nr)<0) break; + + nr = ma.msgId(nr); + + if(!msg.read(nr)) + { + io << "\n\n" << S_READMSG_INDIV_MSG_NOT_FOUND; + + continue; + } + + io << '\n'; + } + + if(searchmethod == READMSG_MARKED && !inchain && !nonext) + { + if(markedmsg_index >= marked.numMarked()) break; + + MessageIndex mi = marked[markedmsg_index++]; + + if(area) + if(mi.area != area) + continue; + + if(!msg.read(mi.num,mi.area)) + continue; + } + + if(!area) + { + if(!ma.read(msg.areaNum())) continue; + } + + if(nonext || inchain) + nonext=0; + else + { + if(searchmethod!=READMSG_INDIV && searchmethod!=READMSG_MARKED) + if(!msg.readNext(searchmethod,searchorder,searchdata)) + break; + } + + #pragma warn -def + if(orgmsg == msg.id) inchain = FALSE; + #pragma warn .def + + if(!msg.readAccess()) continue; + + if((searchmethod!=READMSG_MARKED || ma.msgType==MSG_TOALL || newmode) && !inchain) + { + if(msg.id > ma.lastRead(user_recnr)) ma.setLastRead(user_recnr , msg.id); + + if( int(msg.id) > user.highMsgRead + && ma.areaNum <= 200 + && ma.msgBaseType == MSGBASE_HUDSON) user.highMsgRead = int(msg.id); + } + + if( !strcmpl(msg.to,user.name) + || (!strcmpl(msg.to,user.alias) && ma.flags>0 && user.alias[0])) + { + if(!(msg.attr & MSGATTR_RECEIVED)) + { + msg.setFlag(MSGATTR_RECEIVED); + + LOG(1,"Message #%ld received (area %d)",msg.num,msg.areaNum()); + } + } + else + { + LOG(2,"Message #%ld read (area %d)",msg.num,msg.areaNum()); + } + + again: + /* + if(rip_mode && !continuous) + { + kill_readmsg_buttons(); + } + */ + stopped=0; + + if(!cls_mode || continuous) + { + io << '\n'; + if(linecounter()) stopped = TRUE; + io << '\n'; + if(linecounter()) stopped = TRUE; + } + + if(!continuous) io << '\f'; + + if(!stopped) + switch(msg.show()) + { + case 'N': + case '\r': continue; + case 'S': stopped=1; + break; + case 'A':goto again; + } + + /* + if(rip_mode && !continuous) + rip_send("\r!|1B0000020QPE020F000F080300020E07000000|Y00000100\n"); + */ + + if(continuous) + { + if(stopped) break; + continue; + } + + String optline("\n\6"); + String hotkeys("?\r"); + + int button_num = 0; + + if(!inchain) + { + //hotkeys << 'N'; + + optline << S_MSGPROMPT_NEXT << ' '; + hotkeys << K_MSGPROMPT_NEXT; + + //if(ma.sysopAccess()) optline << "[N]xt "; + // else optline << "[N]ext "; + + if(!continuous) draw_button(button_num++,"Next",'N','N'); + } + + if(searchmethod != READMSG_MARKED || markedmsg_index>1) + { + optline << S_MSGPROMPT_PREV << ' '; + hotkeys << K_MSGPROMPT_PREV; + //optline << "[P]rev "; + //hotkeys << 'P'; + if(!continuous) draw_button(button_num++,"Previous",'P','P'); + } + + optline << S_MSGPROMPT_AGAIN << ' ' << S_MSGPROMPT_STOP << ' ' << S_MSGPROMPT_MARK << ' '; + hotkeys << K_MSGPROMPT_AGAIN << K_MSGPROMPT_STOP << K_MSGPROMPT_MARK; + + //optline << "[A]gain [S]top [M]ark "; + + if(!continuous) draw_button(button_num++,"Again",'A','A'); + if(!continuous) draw_button(button_num++,"Stop",'S','S'); + if(!continuous) draw_button(button_num++,"Mark",'M','M'); + + reply_area = ma; + + if(ma.replyBoard) + if(!reply_area.read(ma.replyBoard)) + reply_area = ma; + + if(check_access(reply_area.writeLevel,reply_area.writeFlags,reply_area.writeFlagsNot) || reply_area.sysopAccess()) + { + optline << S_MSGPROMPT_REPLY << ' '; + hotkeys << K_MSGPROMPT_REPLY; + +// if(reply_area.sysopAccess()) optline << "[R]ep "; +// else optline << "[R]eply "; +// hotkeys << 'R'; + if(!continuous) draw_button(button_num++,"Reply",'R','R'); + } + + if(ma.sysopAccess() || !strcmpl(msg.from,user.name) || !strcmpl(msg.to,user.name)) + { + optline << S_MSGPROMPT_UNREAD << ' '; + hotkeys << K_MSGPROMPT_UNREAD; + //optline << "[U]nrd "; + //hotkeys << 'U'; + if(!continuous) draw_button(button_num++,"UnRead",'U','U'); + if( ma.sysopAccess() + || (ma.msgKind != MSG_ECHO) + || ( ma.msgKind == MSG_ECHO + && msg.attr & MSGATTR_UNSENT_ECHO + && !strcmpl(msg.from,user.name) + ) + ) + { + optline << S_MSGPROMPT_DEL << ' '; + hotkeys << K_MSGPROMPT_DEL; + //optline << "[D]el "; + //hotkeys << 'D'; + if(!continuous) draw_button(button_num++,"Delete",'D','D'); + } + } + if(ma.sysopAccess()) + { + optline << S_MSGPROMPT_SYSOPFUNC << ' '; + hotkeys << K_MSGPROMPT_SYSOPFUNC; + //if(ma.msgKind != MSG_ECHO) + // { + // optline << "[FVTX] "; + // hotkeys << "FVTX"; + // } + // else + // { + // optline << "[FVX] "; + // hotkeys << "FVX"; + // } + + if(!continuous) draw_button(button_num++,"Private",'T','T'); + if(!continuous) draw_button(button_num++,"Forward",'F','F'); + if(!continuous) draw_button(button_num++,"Move",'V','V'); + if(!continuous) draw_button(button_num++,"Export",'X','X'); + } + if(inchain) + { + optline << S_MSGPROMPT_ORIG << ' '; + hotkeys << K_MSGPROMPT_ORIG; + //optline << "[O]rg "; + //hotkeys << 'O'; + if(!continuous) draw_button(button_num++,"Original",'O','O'); + } + + if(msg.next) + { + optline << "[+"; + if(msg.prev) optline << '/'; + hotkeys << '+'; + } + else + { + if(msg.prev) optline << '['; + } + + if(msg.prev) + { + optline << "-] "; + hotkeys << '-'; + } + else + { + if(msg.next) optline << "] "; + } + + if(inchain) optline << "[?]: <\7" << K_MSGPROMPT_ORIG << "\6> \7"; + else optline << "[?]: <\7" << K_MSGPROMPT_NEXT << "\6> \7"; + + /* + if(rip_mode && !continuous) + { + rip_nomore(); + io.show_remote = FALSE; + } + */ + + char k=io.send(optline,hotkeys); + + if(!k) k=io.wait(hotkeys); + if(k=='\r') k=(inchain)?K_MSGPROMPT_ORIG[0]:K_MSGPROMPT_NEXT[0]; + io << k; + + //if(rip_mode && !continuous) io.show_remote = TRUE; + + if(k==K_MSGPROMPT_STOP[0]) + { + break; + } + + if(k==K_MSGPROMPT_AGAIN[0]) + { + goto again; + } + + if(k==K_MSGPROMPT_REPLY[0]) + { + kill_readmsg_buttons(); + replymsg(msg); + updatemenu = TRUE; + draw_readmsg_screen(); + if(!msg.read(msg.id)) + continue; + else + goto again; + } + + if(k==K_MSGPROMPT_DEL[0]) + { + if(!ma.sysopAccess()) + { + io << "\n\n" << S_ASK_DELETE_MSG; + + if(!io.ask()) break; + } + LOG(1,"Msg #%ld deleted (area %d)",msg.num,msg.areaNum()); + msg.remove(); + if(inchain) + { + if(msg.read(orgmsg)) nonext = 1; + } + else + { + msg.readPrev(searchmethod,searchorder,searchdata); + } + inchain=0; + updatemenu = TRUE; + continue; + } + + if(k==K_MSGPROMPT_MARK[0]) + { + LOG(2,"Msg #%ld marked (area %d)",msg.num,msg.areaNum()); + markedmsglist.add(msg); + io << "\n\n" << S_MESSAGE_MARKED + << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + if(k==K_MSGPROMPT_SYSOPFUNC[2]) + { + msg.toggleFlag(MSGATTR_PRIVATE); + msg.read(msg.id); + goto again; + } + + if(k==K_MSGPROMPT_SYSOPFUNC[0]) + { + msg.forward(); + updatemenu = TRUE; + goto again; + } + + if(k==K_MSGPROMPT_UNREAD[0]) + { + msg.clearFlag(MSGATTR_RECEIVED); + msg.read(msg.id); + } + + if(k==K_MSGPROMPT_SYSOPFUNC[1]) + { + msg.move(); + if(inchain) + { + if(msg.read(orgmsg)) + nonext = 1; + } + else + { + msg.readPrev(searchmethod,searchorder,searchdata); + } + inchain = 0; + updatemenu = TRUE; + } + + if(k==K_MSGPROMPT_SYSOPFUNC[3]) + { + char fn[50]; + + /* + if(rip_mode) + { + rip_start_dialog("Enter file name to export message to",49); + io.show_remote = FALSE; + } + */ + + io << "\n\n" << S_EXPORT_MESSAGE_TO_FILE; + + io.show_remote = TRUE; + + io << "\3"; + + io.read(fn,49,READMODE_UPALL); + + //if(rip_mode) rip_end_dialog(); + + if(!fn[0]) goto again; + + io << '\n'; + + msg.export(fn); + + goto again; + } + + if(k==K_MSGPROMPT_PREV[0]) + { + nonext = TRUE; + + if(searchmethod == READMSG_MARKED) + { + markedmsg_index -= 2; + nonext = FALSE; + continue; + } + for(;;) + { + if(msg.readPrev(searchmethod,searchorder,searchdata)) + { + if(!msg.readAccess()) continue; + + break; + } + else + { + io << "\n\n" << S_THERE_IS_NO_PREVIOUS_MSG << ' ' << S_PRESS_ENTER_TO_CONTINUE; + break; + } + } + } + + if(k==K_MSGPROMPT_ORIG[0]) + { + if(inchain) + if(msg.read(orgmsg)) + nonext=1; + inchain=0; + } + + switch(k) + { + case '+': { + if(!inchain) orgmsg = msg.id; + + for(;;) + { + if(!msg.next) + { + io << "\n\n" << S_NO_ACCESS_TO_REPLIES + << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + if(msg.read(orgmsg)) nonext = TRUE; + inchain=0; + break; + } + + if(msg.read(msg.next)) + { + if(!ma.read(msg.areaNum())) continue; + + if(!msg.readAccess()) continue; + + inchain = TRUE; + break; + } + else + { + if(msg.read(orgmsg)) nonext = TRUE; + inchain = FALSE; + break; + } + } + } break; + case '-': { + if(!inchain) orgmsg = msg.id; + + for(;;) + { + if(!msg.prev) + { + io << "\n\n" << S_NO_ACCESS_TO_REPLIES + << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + if(msg.read(orgmsg)) nonext=1; + inchain = FALSE; + break; + } + + if(msg.read(msg.prev)) + { + if(!msg.readAccess()) continue; + + inchain = TRUE; + break; + } + else + { + if(msg.read(orgmsg)) nonext=1; + inchain=0; + break; + } + } + } break; + case '?' : { + if(showansasc("MSGHELP",NULL)==ANS_NOFILE) + { + io << "\n\n\f" << S_MSGHELP_TITLE << "\n\n"; + + io << S_MSGHELP_NEXT << '\n'; + io << S_MSGHELP_PREV << '\n'; + io << S_MSGHELP_AGAIN << '\n'; + io << S_MSGHELP_STOP << '\n'; + io << S_MSGHELP_MARK << '\n'; + io << S_MSGHELP_REPLY << '\n'; + io << S_MSGHELP_DEL << '\n'; + io << S_MSGHELP_UNREAD << '\n'; + io << S_MSGHELP_PLUS << '\n'; + io << S_MSGHELP_MINUS << '\n'; + io << S_MSGHELP_ORIG << '\n'; + + if(ma.sysopAccess()) + { + io << S_MSGHELP_FORWARD << '\n'; + io << S_MSGHELP_PRIVATE << '\n'; + io << S_MSGHELP_MOVE << '\n'; + io << S_MSGHELP_EXPORT << '\n'; + } + + io << '\n' << S_MSGHELP_NOTE << '\n'; + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE << '\n'; + } + goto again; + } + //default: goto again; + } + }// for + + //if(!rip_mode) + io << "\n\n" << S_END_OF_MESSAGES + << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + /* + if(rip_mode) + { + rip_reset(); + io.more_func = NULLFUNC; + } + */ +} + +static void +draw_button(int num , char *text , char cmd , char hotkey) +{ + /* + if(rip_mode) + { + String buttons; + + buttons << "!|1U" << meganum((num%6) * 100 + 30 ) + << meganum((num/6) * 24 + 285) + << meganum((num%6) * 100 + 110) + << meganum((num/6) * 24 + 297) + << meganum(hotkey) + << "00<>" << text << "<>" << cmd << '\n'; + + rip_send(buttons); + } + */ +} + +static int +readmsg_more() +{ + rip_kill_mouse_fields(); + + draw_button(0,"Cont?" ,K_MORE[0],0); + draw_button(1,"Yes" ,K_MORE[0],'Y'); + draw_button(2,"No" ,K_MORE[1],'N'); + draw_button(3,"Scroll" ,K_MORE[2],'S'); + + rip_nomore(); + + int k = wait_language_hotkeys(K_MORE); + + if(k=='\r') k=0; + + rip_kill_mouse_fields(); + rip_color(7); + rip_fill_color(1,7); + + rip_bar(12,279,625,326); + + return k; +} + +static void +draw_readmsg_screen() +{ + /* + if(rip_mode) + { + rip_reset(); + show_rip("_MSGFRAM"); + io.more_func = readmsg_more; + } + */ +} + +static void +kill_readmsg_buttons() +{ + /* + if(rip_mode) + { + rip_kill_mouse_fields(); + rip_color(7); + rip_fill_color(1,7); + + rip_bar(12,279,625,326); + rip_bar(355,8,624,25); + rip_bar(355,40,624,54); + } + */ +} diff --git a/READMSG.OBJ b/READMSG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..c430eab0f7a09d3561de58fb82338a3d8a1da665 GIT binary patch literal 16076 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 literal 0 HcmV?d00001 diff --git a/REG.HPP b/REG.HPP new file mode 100644 index 0000000..7dbdb1a --- /dev/null +++ b/REG.HPP @@ -0,0 +1,16 @@ +#ifndef __REGISTRATION_HEADER_HPP +#define __REGISTRATION_HEADER_HPP + + +char *serialFormatted( char *sBuf ); + +char *software_serial_number( void ); +char *registered_user_name( void ); +char *get_system_code( void ); +word get_node_count( void ); +word is_version_registered( void ); + +void CHECK_REG( void ); + + +#endif // __REGISTRATION_HEADER_HPP diff --git a/REGIS.CPP b/REGIS.CPP new file mode 100644 index 0000000..fd62a18 --- /dev/null +++ b/REGIS.CPP @@ -0,0 +1,1042 @@ +#include "proboard.hpp" + + +//************************************************************************** +// +// TELEGRAFIX CONFIDENTIAL +// PROTECTED TRADE SECRETS +// +// The contents of this file are confidential materials of TeleGrafix +// Communications, Inc. Use of this information is subject to the terms and +// conditions set forth in the TeleGrafix software source code licensing +// contract. +// +//************************************************************************** + +//########################################################################## +// +// Module file: SERIALIZ.C +// +// Last modified: 12/11/94 (Jeff Reeder) +// Author(s): Jeff Reeder - 12/11/94 +// +// ------------------------------------------------------------------------- +// +// Copyright (c) 1992-95 TeleGrafix Communications, Inc. +// All Rights Reserved +// +// ------------------------------------------------------------------------- +// +// REVISION HISTORY INFORMATION +// +// Version Date Description +// ------------------------------------------------------------------ +// +// +//########################################################################## + +#include +#include +#include +#include + +#include +#include +#include + +//-------------------------------------------------------------------------- + +#define UNREG_STRING "(Unregistered copy)" + +#define SERIAL_NUMBER_LENGTH 17 + + +#define USERNAME_LEN 31 +#define DEFAULT_REGNAME "Name of Registered Owner here!" + +#define SERIAL_NUM_LEN 17 +#define DEFAULT_SERIALNO "" + +#define SYSTEM_CODE_LEN 13 +#define DEFAULT_SYSTEM_CODE "TELEGRAFIX\0\0" + + + +//--------------------- +// Product Code defines +//--------------------- + +#define PROBOARD_BBS "PB" +#define PROBOARD_BBS_NAME "ProBoard BBS" + + +//----------------- +// Platform defines +//----------------- + +#define PLATFORM_DOS 'D' +#define PLATFORM_DOS_NAME "MS-DOS" + + +//--------------- +// Origin defines +//--------------- + +#define ORIGIN_TELEGRFX '0' +#define ORIGIN_TELEGRFX_NAME "TeleGrafix Corporate HQ" + +#define ORIGIN_TELEGRFX_COMP '1' +#define ORIGIN_TELEGRFX_NAME_COMP "Free Upgrades" + +#define ORIGIN_TELEGRFX_GIF '2' +#define ORIGIN_TELEGRFX_NAME_GIF "GIF edition" + + +//------------- +// Misc defines +//------------- + +#define BASE_36 36 // Meganums are base 36 +#define START_YEAR 1992 // The year TeleGrafix began +#define MAX_SN_COUNTER 1285 // 1295 is ZZ in meganums, set to 1285 to prevent duplicate serial numbers (says Jeff) +#define MAX_SN_YEARS 35 // Seconds / 2 +#define MAX_SN_MONTHS 11 // Seconds / 2 +#define MAX_SN_DAYS 31 // Number of 2 +#define MAX_SN_HOURS 23 // Seconds / 2 +#define MAX_SN_MINS 29 // Minutes / 2 +#define MAX_SN_SECS 29 // Seconds / 2 + +#define MAX_SN_LENGTH 16 // Maximum length of a serial number + + +static char regname_buf [ USERNAME_LEN ] = DEFAULT_REGNAME; +static char serial_buf [ SERIAL_NUM_LEN ] = DEFAULT_SERIALNO; +static char system_code_buf[ SYSTEM_CODE_LEN ] = DEFAULT_SYSTEM_CODE; + + + +enum regResults +{ + registrationNone = 0, // Software is not registered + registrationBad, // Illegal registration information + registrationGood, // Software is fully registered +}; + + + +static +word crc_table_16[ 256 ] = +{ + 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, + 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, + 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, + 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, + 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, + 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, + 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, + 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, + 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, + 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, + 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, + 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, + 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, + 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, + 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, + 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, + 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, + 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, + 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, + 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, + 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, + 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, + 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, + 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, + 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, + 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, + 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, + 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, + 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, + 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, + 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, + 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 +}; + + + +static +word makeCRC16( word count, + word crc, + byte *buffer ) +{ + byte *p = buffer; + + + while ( count-- != 0 ) + { + crc = word( ( crc << 8 ) ^ crc_table_16[ ( crc >> 8 ) ^ *p++ ] ); + } + + return crc; +} + + + +byte *decryptData( byte *buf, + short len, + byte key ) +{ + short i; + byte c; + byte shift = 0; + byte iPrime; + byte nKey; + + (void) shift; + + iPrime = 0x17; + nKey = ( byte ) ~key; + + + for ( i = 0; i < len; i++, key++, iPrime++, nKey++ ) + { + c = ( buf[ i ] ^ nKey ) ^ iPrime; // Get encrypted char + + + //-------------------------------------------------------------- + // Now let's do the bit shifting (rolling) to the left. We used + // to do this in a loop, but doing it this way avoids the loop + // overhead and speeds things up at the cost of slightly larger + // code size. + //-------------------------------------------------------------- + + shift = ( byte ) ( i & 0x07 ); + + + if ( shift != 0 ) + { + c = ( byte ) ( ( c << shift ) | + ( c >> ( 8 - shift ) ) ); + } + + + //----------------------------------- + // Now let's perform the bit swapping + //----------------------------------- + + c = ( byte ) ~( ( c >> 7 ) | + ( c << 7 ) | + ( ( c & 0x40 ) >> 5 ) | + ( ( c & 0x02 ) << 5 ) | + ( ( c & 0x20 ) >> 3 ) | + ( ( c & 0x04 ) << 3 ) | + ( ( c & 0x10 ) >> 1 ) | + ( ( c & 0x08 ) << 1 ) ); + + + buf[ i ] = ( byte ) ( ( c ^ key ) ^ 0x49 ); // Store real char in buf + } + + + return( buf ); +} + + + +static +byte *encryptData( byte *buf, + short len, + byte key ) +{ + short i; + byte c; + byte shift = 0; + byte iPrime; + byte nKey; + + (void) shift; + + iPrime = 0x17; + nKey = ( byte ) ~key; + + + for ( i = 0; i < ( short ) len; i++, key++, iPrime++, nKey++ ) + { + //------------------ + // Get the character + //------------------ + + c = ( byte ) ( ( buf[ i ] ^ key ) ^ 0x49 ); + + + //----------------------------------- + // Now let's perform the bit swapping + //----------------------------------- + + c = ( byte ) ~( ( c >> 7 ) | + ( c << 7 ) | + ( ( c & 0x40 ) >> 5 ) | + ( ( c & 0x02 ) << 5 ) | + ( ( c & 0x20 ) >> 3 ) | + ( ( c & 0x04 ) << 3 ) | + ( ( c & 0x10 ) >> 1 ) | + ( ( c & 0x08 ) << 1 ) ); + + + //---------------------------------------------------------------- + // Now let's do the bit shifting (rolling) to the right. We used + // to do this in a loop, but doing it this way eliminates the loop + // code overhead and consequently speeds things up a bit. + //---------------------------------------------------------------- + + shift = ( byte ) ( i & 0x07 ); + + + if ( shift != 0 ) + { + c = ( byte ) ( ( c >> shift ) | + ( c << ( 8 - shift ) ) ); + } + + buf[ i ] = ( c ^ iPrime ) ^ nKey; + } + + + return( buf ); +} + + + +static +int isValidMegaNum( char iChar ) +{ + if ( iChar >= '0' && + iChar <= '9' ) + { + return 1; + } + else if ( isalpha( iChar ) ) + { + return 1; + } + else + { + return 0; + } +} + + + +static +word serialNumberDecode( char *sBuf, + word *piNodeCount ) +{ + char pstrProductID[ 3 ]; + byte iPlatformID; + byte iOriginID; + char buf[ 16 + 1 ]; + char eBuf[ 16 + 1 ]; + struct dosdate_t dt; + struct dostime_t tm; + word yearValue; + word minValue; + word secValue; + char counterBuf[ 8 ]; + char minuteBuf[ 8 ]; + char dayBuf[ 8 ]; + char secBuf[ 8 ]; + char yearBuf[ 8 ]; + char hourBuf[ 8 ]; + char monthBuf[ 8 ]; + char crcBuf[ 5 ]; + word oldCRC; + word newCRC; + word iCounter; + + char P1; // Product Code byte 1 + char P2; // Product Code byte 2 + char Pl; // Platform + char Or; // Origin + + char N1; // Numeric Counter byte 1 + char N2; // Numeric Counter byte 2 + + char Yr; // Year + char Mo; // Month + char Dy; // Day + char Hr; // Hour + char Mi; // Minute/2 + char Se; // Second/2 + + char R1; // CRC byte 1 + char R2; // CRC byte 2 + char R3; // CRC byte 3 + char R4; // CRC byte 4 + + + if ( piNodeCount ) + { + *piNodeCount = 2; + } + + + if ( strlen( sBuf ) != MAX_SN_LENGTH ) + { + //----------------------------- + // Illegal serial number length + //----------------------------- + + return( 0 ); + } + + //------------------------------------------------------ + // Assign buffer fields to our serial number field codes + //------------------------------------------------------ + + R1 = sBuf[ 7 ]; + R2 = sBuf[ 14 ]; + R3 = sBuf[ 5 ]; + R4 = sBuf[ 11 ]; + + P1 = sBuf[ 0 ]; + P2 = sBuf[ 1 ]; + Pl = sBuf[ 2 ]; + Or = sBuf[ 3 ]; + N2 = sBuf[ 4 ]; + Mi = sBuf[ 6 ]; + Dy = sBuf[ 8 ]; + Se = sBuf[ 9 ]; + Yr = sBuf[ 10 ]; + Hr = sBuf[ 12 ]; + N1 = sBuf[ 13 ]; + Mo = sBuf[ 15 ]; + + crcBuf[ 0 ] = R1; + crcBuf[ 1 ] = R2; + crcBuf[ 2 ] = R3; + crcBuf[ 3 ] = R4; + crcBuf[ 4 ] = '\0'; + + //---------------------------------- + // build buffer for encryption check + //---------------------------------- + + buf[ 0 ] = P1; + buf[ 1 ] = P2; + buf[ 2 ] = Pl; + buf[ 3 ] = Or; + buf[ 4 ] = N2; + buf[ 5 ] = Mi; + buf[ 6 ] = Dy; + buf[ 7 ] = Se; + buf[ 8 ] = Yr; + buf[ 9 ] = Hr; + buf[ 10 ] = N1; + buf[ 11 ] = Mo; + buf[ 12 ] = '\0'; + + + oldCRC = word( strtol( crcBuf, + NULL, + 16 ) ); + + + strcpy( eBuf, buf ); + + encryptData( eBuf, strlen( eBuf ), 0 ); + + + newCRC = makeCRC16( strlen( buf ), + 0, + eBuf ); + + + sprintf( crcBuf, "%04x", newCRC ); + + strupr( crcBuf ); + + + if ( toupper( P1 ) != 'P' || + toupper( P2 ) != 'B' ) + { + //--------------------- + // Invalid product code + //--------------------- + + return( 0 ); + } + + pstrProductID[ 0 ] = P1; // buf[ 0 ]; + pstrProductID[ 1 ] = P2; // buf[ 1 ]; + pstrProductID[ 2 ] = '\0'; + + iPlatformID = Pl; // buf[ 2 ]; + iOriginID = Or; // buf[ 3 ]; + + counterBuf[ 0 ] = N1; // buf[ 10 ]; + counterBuf[ 1 ] = N2; // buf[ 4 ]; + counterBuf[ 2 ] = '\0'; + + minuteBuf[ 0 ] = Mi; // buf[ 5 ]; + minuteBuf[ 1 ] = '\0'; + + dayBuf[ 0 ] = Dy; // buf[ 6 ]; + dayBuf[ 1 ] = '\0'; + + secBuf[ 0 ] = Se; // buf[ 7 ]; + secBuf[ 1 ] = '\0'; + + yearBuf[ 0 ] = Yr; // buf[ 8 ]; + yearBuf[ 1 ] = '\0'; + + hourBuf[ 0 ] = Hr; // buf[ 9 ]; + hourBuf[ 1 ] = '\0'; + + monthBuf[ 0 ] = Mo; // buf[ 11 ]; + monthBuf[ 1 ] = '\0'; + + + if ( not isxdigit( R1 ) or + not isxdigit( R2 ) or + not isxdigit( R3 ) or + not isxdigit( R4 ) ) + { + //------------------------------------ + // Illegal CRC value - not hexadecimal + //------------------------------------ + + return( 0 ); + } + else if ( newCRC != oldCRC ) + { + //----------------------- + // CRC values don't match + //----------------------- + + return( 0 ); + } + else if ( not isupper( iPlatformID ) ) + { + //-------------------- + // Illegal platform ID + //-------------------- + + return( 0 ); + } + else if ( not isValidMegaNum( iOriginID ) ) + { + //------------------ + // Illegal origin ID + //------------------ + + return( 0 ); + } + else if ( not isValidMegaNum( counterBuf[ 0 ] ) or + not isValidMegaNum( counterBuf[ 1 ] ) ) + { + //---------------------- + // Illegal counter value + //---------------------- + + return( 0 ); + } + else if ( not isValidMegaNum( yearBuf[ 0 ] ) ) + { + //------------------- + // Illegal year value + //------------------- + + return( 0 ); + } + else if ( not isValidMegaNum( monthBuf[ 0 ] ) ) + { + //-------------------- + // Illegal month value + //-------------------- + + return( 0 ); + } + else if ( not isValidMegaNum( dayBuf[ 0 ] ) ) + { + //------------------ + // Illegal day value + //------------------ + + return( 0 ); + } + else if ( not isValidMegaNum( hourBuf[ 0 ] ) ) + { + //------------------- + // Illegal hour value + //------------------- + + return( 0 ); + } + else if ( not isValidMegaNum( minuteBuf[ 0 ] ) ) + { + //--------------------- + // Illegal minute value + //--------------------- + + return( 0 ); + } + else if ( not isValidMegaNum( secBuf[ 0 ] ) ) + { + //--------------------- + // Illegal second value + //--------------------- + + return( 0 ); + } + + + iCounter = ( word ) strtol( counterBuf, NULL, BASE_36 ); + minValue = ( word ) strtol( minuteBuf, NULL, BASE_36 ); + dt.day = strtol( dayBuf, NULL, BASE_36 ); + secValue = ( word ) strtol( secBuf, NULL, BASE_36 ); + yearValue = ( word ) strtol( yearBuf, NULL, BASE_36 ); + tm.hour = strtol( hourBuf, NULL, BASE_36 ); + dt.month = strtol( monthBuf, NULL, BASE_36 ); + + + if ( iCounter > MAX_SN_COUNTER ) + { + //--------------------------- + // Counter value out of range + //--------------------------- + + return( 0 ); + } + else if ( yearValue > BASE_36 ) + { + //------------------ + // year out of range + //------------------ + + return( 0 ); + } + else if ( dt.month > MAX_SN_MONTHS ) + { + //---------------------- + // Month second of range + //---------------------- + + return( 0 ); + } + else if ( dt.day > MAX_SN_DAYS ) + { + //----------------- + // Day out of range + //----------------- + + return( 0 ); + } + else if ( tm.hour > MAX_SN_HOURS ) + { + //--------------------- + // Hour second of range + //--------------------- + + return( 0 ); + } + else if ( minValue > MAX_SN_MINS ) + { + //--------------------------- + // Minutes value out of range + //--------------------------- + + return( 0 ); + } + else if ( secValue > MAX_SN_SECS ) + { + //-------------------- + // second out of range + //-------------------- + + return( 0 ); + } + + dt.month++; + dt.day++; + + dt.year = START_YEAR + yearValue; + tm.minute = minValue * 2; + tm.second = secValue * 2; + + + if ( piNodeCount ) + { + *piNodeCount = iCounter; + } + + return( 1 ); +} + + + +static +regResults registration_info( char *name, + char *serial, + char *actcode, + word *node_count ) +{ + word i; + word checksum = 0; + byte nBuf[ 80 ]; + byte sBuf[ 80 ]; + + + if ( memcmp( system_code_buf, + DEFAULT_SYSTEM_CODE, + SYSTEM_CODE_LEN ) == 0 ) + { + //--------------------- + // System Code is blank + //--------------------- + + if ( actcode ) + { + strcpy( actcode, DEFAULT_SYSTEM_CODE ); + } + } + else + { + //--------------------------------------------------------- + // Looks like we have a valid system code. Let's decode it + //--------------------------------------------------------- + + char eBuf[ 80 ]; + + + memmove( eBuf, + system_code_buf, + SYSTEM_CODE_LEN ); + + decryptData( eBuf, + SYSTEM_CODE_LEN, + 0x00 ); + + + if ( actcode ) + { + //--------------------------------------------------------- + // Now let's copy that system code to our calling parameter + //--------------------------------------------------------- + + sprintf( actcode, + "%-12.12s", + eBuf ); + } + } + + + if ( memcmp( regname_buf, + DEFAULT_REGNAME, + USERNAME_LEN ) == 0 ) + { + //------------------- + // User name is blank + //------------------- + + return( registrationNone ); + } + else if ( memcmp( serial_buf, + DEFAULT_SERIALNO, + SERIAL_NUM_LEN ) == 0 ) + { + //----------------------- + // Serial number is blank + //----------------------- + + return( registrationNone ); + } + + + for ( i = 0; i < USERNAME_LEN; i++ ) + { + checksum += regname_buf[ i ]; + } + + + checksum = checksum & 0x00FF; + + + memmove( nBuf, regname_buf, USERNAME_LEN ); + memmove( sBuf, serial_buf, SERIAL_NUM_LEN ); + + + decryptData( nBuf, USERNAME_LEN, 0x00 ); + decryptData( sBuf, SERIAL_NUM_LEN, checksum ); + + + if ( memchr( sBuf, '\0', SERIAL_NUM_LEN ) == NULL ) + { + //--------------------------------- + // One of 'em isn't null terminated + //--------------------------------- + + return( registrationBad ); + } + else if ( memchr( nBuf, '\0', USERNAME_LEN ) == NULL ) + { + //--------------------------------- + // One of 'em isn't null terminated + //--------------------------------- + + return( registrationBad ); + } + else if ( not serialNumberDecode( sBuf, node_count ) ) + { + //---------------------------------- + // couldn't decode the serial number + //---------------------------------- + + return( registrationBad ); + } + + + if ( name ) + { + strcpy( name, nBuf ); + } + + + if ( serial ) + { + serial[ 0 ] = sBuf[ 0 ]; + serial[ 1 ] = sBuf[ 1 ]; + serial[ 2 ] = sBuf[ 2 ]; + serial[ 3 ] = sBuf[ 3 ]; + serial[ 4 ] = '-'; + serial[ 5 ] = sBuf[ 4 ]; + serial[ 6 ] = sBuf[ 5 ]; + serial[ 7 ] = sBuf[ 6 ]; + serial[ 8 ] = sBuf[ 7 ]; + serial[ 9 ] = '-'; + serial[ 10 ] = sBuf[ 8 ]; + serial[ 11 ] = sBuf[ 9 ]; + serial[ 12 ] = sBuf[ 10 ]; + serial[ 13 ] = sBuf[ 11 ]; + serial[ 14 ] = '-'; + serial[ 15 ] = sBuf[ 12 ]; + serial[ 16 ] = sBuf[ 13 ]; + serial[ 17 ] = sBuf[ 14 ]; + serial[ 18 ] = sBuf[ 15 ]; + + serial[ 19 ] = sBuf[ 16 ]; + + serial[ 20 ] = '\0'; + } + + + return( registrationGood ); +} + + + +static +char *serialFormatted( char *sBuf ) +{ + static char tBuf[ 20 ]; + + + sprintf( tBuf, + "%-4.4s %-4.4s %-4.4s %-4.4s", + sBuf, + sBuf + 4, + sBuf + 8, + sBuf + 12 ); + + return( tBuf ); +} + + + +char *software_serial_number( void ) +{ + static char buf[ 50 ]; + regResults result; + + + if ( registered ) + { + result = registration_info( NULL, + buf, + NULL, + NULL ); + + + //------------------------------------------- + // This is a "shareware" copy of the software + //------------------------------------------- + + if ( result == registrationGood ) + { + //---------------------------------------------------------- + // We have valid registration information. Let's return the + // serial number to the calling function. + //---------------------------------------------------------- + + return buf; + //return( serialFormatted( buf ) ); + } + } + + + //------------------------------------------------------------- + // We have a version with no serial number. This means that we + // have an unregistered copy of the software. + //------------------------------------------------------------- + + return( UNREG_STRING ); +} + + + +char *registered_user_name( void ) +{ + + regResults result; + static char buf[ 50 ]; + + + + if ( registered ) + { + result = registration_info( buf, + NULL, + NULL, + NULL ); + + + //------------------------------------------- + // This is a "shareware" copy of the software + //------------------------------------------- + + if ( result == registrationGood ) + { + //---------------------------------------------------------- + // We have valid registration information. Let's return the + // user's name to the calling function. + //---------------------------------------------------------- + + return( buf ); + } + } + + + //--------------------------------------------------------- + // We have a version with no user name. This means that we + // have an unregistered copy of the software. + //--------------------------------------------------------- + + return( UNREG_STRING ); +} + + + +char *get_system_code( void ) +{ + regResults result; + static char buf[ 30 ]; + + + if ( registered ) + { + result = registration_info( NULL, + NULL, + buf, + NULL ); + + + //------------------------------------------- + // This is a "shareware" copy of the software + //------------------------------------------- + + if ( result == registrationGood ) + { + return( buf ); + } + } + + + return( UNREG_STRING ); +} + + + +word get_node_count( void ) +{ + regResults result; + word iNodeCount = 2; + + + if ( registered ) + { + result = registration_info( NULL, + NULL, + NULL, + & iNodeCount ); + + + //------------------------------------------- + // This is a "shareware" copy of the software + //------------------------------------------- + + if ( result == registrationGood ) + { + return iNodeCount; + } + } + + + return 2; +} + + + +word is_version_registered( void ) +{ + regResults result; + char serial[ 80 ]; + char name[ 80 ]; + + + result = registration_info( name, + serial, + NULL, + NULL ); + + + if ( result == registrationGood ) + { + //---------------------- + // Fully registered copy + //---------------------- + + return( TRUE ); + } + else + { + //--------------------- + // Unregistered edition + //--------------------- + + return( FALSE ); + } +} + + + +void CHECK_REG( void ) +{ + if ( is_version_registered() ) + { + registered = TRUE; + max_node_count = get_node_count(); + } + else + { + registered = TRUE; + max_node_count = 255; + } +} diff --git a/REGIS.OBJ b/REGIS.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..f05590fea7f37932d1e7f031f2d833f0c582ac5e GIT binary patch literal 4556 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 +#include +#include "proboard.hpp" + +void +replymsg(Message& orgmsg) +{ + Message msg; + MsgArea ma; + bool diff_area = FALSE; + + strcpy(msg.to,orgmsg.from); + strcpy(msg.from,user.name); + strcpy(msg.subj,orgmsg.subj); + + ma = *orgmsg.msgArea; + + msg.setArea(ma.replyBoard); + + if(ma.replyBoard && ma.replyBoard != ma.areaNum) diff_area = TRUE; + + ma = *msg.msgArea; + + if(ma.flags == 3) + { + if(user.alias[0] == '\0') strcpy(user.alias,user.name); + strcpy(msg.from,user.alias); + } + else + if(ma.flags && (ma.flags!=2 || user.alias[0])) + { + if(ma.flags == 2) + io << "\n\n" << S_REPLY_TO_MSG_USING_YOUR_ALIAS; + else + io << "\n\n" << S_REPLY_TO_MSG_USING_AN_ALIAS; + + if(io.ask(0)) + { + if(ma.flags==2) + { + if(user.alias[0] == '\0') strcpy(user.alias,user.name); + strcpy(msg.from,user.alias); + } + else + for(;;) + { + User tmpuser; + + io << "\n\n" << S_ENTER_ALIAS_TO_USE; + io.read(msg.from,35); + if(!msg.from[0]) return; + if(tmpuser.search(msg.from,TRUE,FALSE,TRUE)) continue; + if(!tmpuser.search(msg.from)) break; + } + + io << '\n'; + } + } + + io << "\n\n" << S_SHOW_MESSAGE_SUBJECT(msg.subj); + + io << "\n\n" << S_DO_YOU_WANT_TO_CHANGE_THE_SUBJECT; + + if(io.ask(FALSE)) + { + io << "\n\n" << S_ENTER_MESSAGE_SUBJECT; + io.read(msg.subj,63); + if(!msg.subj[0]) return; + } + +switch(ma.msgType) + { + case MSG_BOTH: { + io << "\n\n" << S_ASK_PRIVATE_MESSAGE; + if(io.ask(0)) msg.attr |= MSGATTR_PRIVATE; + } break; + case MSG_PVT: msg.attr |= MSGATTR_PRIVATE; break; + } + +if(ma.msgKind==MSG_NET) + { + msg.destZone = orgmsg.origZone; + msg.destNet = orgmsg.origNet; + msg.destNode = orgmsg.origNode; + msg.destPoint= orgmsg.pointNum(0); + + if(check_access(cfg.crashlevel,cfg.crashflags)) + { + io << "\n\n" << S_ASK_SEND_CRASH; + if(io.ask(0)) msg.attr |= MSGATTR_CRASH; + } + + if(cfg.killsent) msg.attr |= MSGATTR_KILL; + } + +unlink("MSGTMP"); + +if(fsed_mode && (ansi_mode || avatar)) + { + String quote; + + io << "\n\n" << S_QUOTING_MESSAGE << '\xFF'; + + if(!cfg.quotestring[0]) strcpy(cfg.quotestring,">>"); + + for(int i=0;i, %s wrote to %s :\r\n\r\n", + orgmsg.postDate[0], + months_short[orgmsg.postDate[1]], + orgmsg.postTime[0], + orgmsg.postTime[1], + orgmsg.from, + orgmsg.to); + + int l = 255; + + for(long off=0;l==255;off+=255) + { + char s[256]; + + l = orgmsg.readText(s,off,255); + + for(int j=0;j78-quote.len()) + { + String wrap; + wordwrap(line,wrap,78-quote.len()); + tmpf << quote << line << "\r\n"; + line=wrap; + } + } + } + + if(line.len()) tmpf << quote << line << "\r\n"; + + tmpf.close(); + } + +write_msginf( msg.from , msg.to , msg.subj , ma.highMsg()+1 , ma.name , (msg.attr & MSGATTR_PRIVATE) ? "YES":"NO"); + +edit_message(); + +unlink("MSGINF"); + +if(!access("MSGTMP",0)) + { + io << "\n\n" << S_SAVING_MESSAGE; + + msg.postDate.today(); + msg.postTime.now(); + + long nr=msg.add(); + + if(nr >= 1) + { + nr = msg.msgBase()->msgNum(*msg.msgArea,nr); + } + + if(nr<1) io << S_SAVING_MESSAGE_ERROR; + else + { + io << form("\3#%d\n",nr); + + if(!diff_area) msg.addReply(orgmsg); + + user.msgsPosted++; + + LOG(1,"Msg #%ld, Rep to #%ld from %s",msg.num,orgmsg.num,orgmsg.from); + } + } + else + LOG(1,"Msg aborted. Reply to #%ld from %s",orgmsg.num,orgmsg.from); +} + diff --git a/REPLYMSG.OBJ b/REPLYMSG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..6dbc1afea799859ecb492c5bbed98bf4e3837416 GIT binary patch literal 6524 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.rpt +list source.rpt diff --git a/RIP.CPP b/RIP.CPP new file mode 100644 index 0000000..6a098ef --- /dev/null +++ b/RIP.CPP @@ -0,0 +1,408 @@ +#include +#include +#include "proboard.hpp" + +const int MAX_ICONS = 200; + +static Window rip_window; + +static void +open_sending_rip() +{ + tsw_cursoroff(); + rip_window.open(tsw_hsize/2-15 , tsw_vsize/2 - 1 , tsw_hsize/2+15 , tsw_vsize/2 + 1 , 0x1F , 0); + tsw_centerline(tsw_vsize/2,"SENDING RIP SEQUENCE",0x9E); +} + +static void +close_sending_rip() +{ + rip_window.close(); + tsw_cursoron(); +} + +String +meganum( word num ) +{ + int n[2]; + char s[3] = "00"; + + n[0] = num / 36; + n[1] = num % 36; + + for(int i = 0 ; i < 2 ; i++) + { + if(n[i] < 10) + s[i] = '0' + n[i]; + else + s[i] = 'A' + n[i] - 10; + } + + return String(s); +} + +void +rip_text_window( int x0, int y0 , int x1 , int y1 , int font ) +{ + if(rip_mode) + { + io.show_local = FALSE; + + String s; + + s << "\r!|w" << meganum(x0) + << meganum(y0) + << meganum(x1) + << meganum(y1) + << '1' + << char(font + '0') + << '\n'; + + io << s << char(0xFF); + + io.show_local = TRUE; + } +} + +void +rip_reset() +{ + if(rip_mode) rip_send("\r!|1K|*\n"); +} + +bool +show_rip( char *ripfile , bool reset ) +{ + if(!rip_mode) return FALSE; + + FileName fn(cfg.RIPpath,ripfile); + fn.changeExt("RIP"); + + if(reset) rip_reset(); + + open_sending_rip(); + + io.show_local = FALSE; + io << '\r'; + char k = io.sendfile(fn , NULL); + io.show_local = TRUE; + + close_sending_rip(); + + return (k != ANS_NOFILE); +} + +void +rip_send( char *s ) +{ + if(!rip_mode) return; + + open_sending_rip(); + io.show_local = FALSE; + io << s << char(0xFF); + io.show_local = TRUE; + close_sending_rip(); +} + +bool +rip_icon_exists( char *fn ) +{ + String cmd = "\r!|1F010000"; + cmd << fn << "\n"; + rip_send(cmd); + + String response; + dword ticks = clockticks(); + + while(clockdiff(ticks)<30) + { + char k = io.readkey(); + + if(k) + { + if(k == '\r') + { + if(response == "0") + { + return FALSE; + } + if(response == "1") + { + return TRUE; + } + } + + if(k == '\n') continue; + + response << k; + } + } + + return FALSE; +} + + +void +rip_send_icons() +{ + if(rip_mode) + { + FileName fn(cfg.iconspath,"*.IC?"); + + String *icons = new String[MAX_ICONS]; + + DirScan dir(fn); + + for(int i = 0 ; int(dir) && i=0 ; i--) + { + f << cfg.iconspath << (char *)icons[i] << '\n'; + } + f.close(); + + rip_send("\r!|907020000<>\n"); + + download(form("/F=@%s /K=Z /I /Q /N /T",(char *)fn)); + } + } +} + +void +rip_query( char *cmd ) +{ + rip_send(form("\r!|10000%s\n" , cmd)); +} + +void +rip_color( int color ) +{ + rip_send(form("\r!|c%02X\n",color)); +} + +void +rip_fill_color( int pattern , int color) +{ + rip_send(form("\r!|S%02X%02X\n",pattern,color)); +} + +void +rip_bar( int x1 , int y1 , int x2 , int y2 ) +{ + String cmd = "\r!|B"; + + cmd << meganum(x1) + << meganum(y1) + << meganum(x2) + << meganum(y2) + << '\n'; + + rip_send(cmd); +} + +void +rip_kill_mouse_fields() +{ + rip_send("\r!|1K\n"); +} + +void +rip_nomore() +{ + rip_send("\r!|#|#|#\n"); +} + +void +rip_get_image( int x1,int y1,int x2,int y2 ) +{ + String cmd = "\r!|1C"; + + cmd << meganum(x1) + << meganum(y1) + << meganum(x2) + << meganum(y2) + << "0\n"; + + rip_send(cmd); +} + +void +rip_put_image( int x,int y ) +{ + String cmd = "\r!|1P"; + + cmd << meganum(x) + << meganum(y) + << "000\n"; + + rip_send(cmd); +} + +void +rip_button(int x1,int y1,int x2,int y2,int hotkey,bool def,char *icon,char *text,char *hostcmd) +{ + String cmd = "\r!|1U"; + + cmd << meganum(x1) + << meganum(y1) + << meganum(x2) + << meganum(y2) + << meganum(hotkey) + << meganum(def ? 2:0) + << '0' + << icon << "<>" << text << "<>" << hostcmd + << '\n'; + + rip_send(cmd); +} + + +void +rip_start_dialog( char *prompt, int max ) +{ + int width = max; + + if(strlen(prompt) > width) width = strlen(prompt); + + int offset = width/2 + width%2; + + rip_save_textwindow(); + rip_get_image(297-offset*8, 50 , 342+offset*8, 108 ); + rip_send("\r!|Y00000100|1B0000020PVK030F000F080700000F07000000\n"); + rip_button(300-offset*8,53,339+offset*8,105,0,FALSE,"","",""); + rip_send("\r!|1B0000020PHK030F000F080700000F07000000\n"); + rip_button(310-offset*8,56,329+offset*8,75,0,FALSE,"",prompt,""); + + offset = max/2+max%2; + + rip_text_window(40-offset,11,39+offset,11,0); + rip_send("\r!|1B00000200LC030B00080F0100080F07000000\n"); + rip_button(310-offset*8,87,329+offset*8,98,0,FALSE,"","",""); + rip_nomore(); + + io.show_local = FALSE; + io.color(6); + io.show_local = TRUE; +} + +void +rip_end_dialog() +{ + rip_paste_clipboard(); + rip_restore_textwindow(); +} + +void +rip_start_yesno_dialog( char *prompt , bool def) +{ + int width = 30; + + if(strlen(prompt) > width) width = strlen(prompt); + + int offset = width/2 + width%2; + + rip_save_textwindow(); + rip_get_image(297-offset*8, 50 , 358+offset*8, 125 ); + rip_send("\r!|Y00000100|1B0000020PVK030F000F080700000F07000000\n"); + rip_button(300-offset*8,53,339+offset*8,120,0,FALSE,"","",""); + rip_send("\r!|1B0000020PHK030F000F080700000F07000000\n"); + rip_button(310-offset*8,56,329+offset*8,75,0,FALSE,"",prompt,""); + + rip_send("\r!|1B0000020SAI030E000F080700020F07000000\n"); + + rip_text_window(0,0,0,0,0); + rip_button(250,85,310,108,'Y',def ,"","Yes","Y"); + rip_button(329,85,389,108,'N',!def,"","No" ,"N"); + rip_nomore(); +} + +void +rip_textmode() +{ + if(user.screenLength == 38) user.screenLength = 23; + + if(rip_mode) + { + if(user.ripFont) + { + rip_screenlines = 22; + rip_text_window(0,0,79,21,2); + } + else + { + rip_screenlines = 38; + rip_text_window(0,0,79,37,0); + } + + rip_send("\r!|Y00000100\n" + "!|1B0000020074030F000F080F00000F07000000|1U018OHR9A0000<><>\n" + "!|1B0000020PHC030F000F080700000F07000000|1U028PHR9A0000<><>\n" + "!|#|#|#\n"); + + rip_show_enter(); + } +} + +void +rip_clear_status() +{ + rip_fill_color(1,7); + rip_color(7); + rip_bar(3,315,637,332); + rip_kill_mouse_fields(); +} + +void +rip_show_enter() +{ + rip_send("\r!|1B0000020QOY030F000B080300000E07000000|1UF58THN960000<>Enter<>^m\n!|#|#|#\n"); +} + +void +rip_show_more() +{ + rip_send( + "\r!|1B0000020QOY020F000B080100020E07000000\n" + "!|1U2T8T47962H00<>Yes<>Y|1U4H8T5V962600<>No<>N|1U658T8N961V00<>Continuous<>C\n" + "!|1B0000020PI8020B000F080700000E07000000|1U0B8S2J970000<>More?<>|#|#|#\n" + ); +} + +void +rip_show_more_tag() +{ + rip_send( + "\r!|1B0000020QOY020F000B080100020E07000000\n" + "!|1U2T8T47962H00<>Yes<>Y|1U4H8T5V962600<>No<>N|1U658T8N961V00<>Continuous<>C\n" + "!|1UAK8TDC961X00<>Edit Tagged<>E|1U8W8TAA962C00<>Tag<>T\n" + "!|1B0000020PI8020B000F080700000E07000000|1U0B8S2J970000<>More?<>|#|#|#\n" + ); +} diff --git a/RIP.OBJ b/RIP.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..a3975c8b41ffe5cad33f1d7ee987c20c24c400ca GIT binary patch literal 8563 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 +#include +#include "proboard.hpp" + +void +scan_msg(char *data) +{ + MsgArea ma; + String param[10]; + int searchmethod = 0; + int searchorder = 0; + char searchdata[80]; + long firstmsg=0; + bool nonext = FALSE; + int area; + + Message msg; + MarkedMsgList marked = markedmsglist; + + parse_data(data,param); + + if(param[0][0]=='*') area = user.msgArea; + else area = atoi(param[0]); + + if(area) + { + if(!ma.read(area)) return; + + if(!check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot) && !ma.sysopAccess()) + { + io << "\n\n" << S_ACCESS_DENIED << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + long n = ma.msgBase->numMsgs(ma); + + if(n <= 0) + { + io << '\n' << S_THERE_ARE_NO_MESSAGES_IN_THIS_AREA << + "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + msg.setArea(area); + } + + + if(param[1][0]=='/' && param[1][1]=='N') + { + searchmethod = READMSG_MARKED; + searchorder = +1; + } + else + { + String hotkeys = K_SCAN_MESSAGES_ORDER_SELECTION; + hotkeys << '\r'; + //char *hotkeys="FRANSTM\r"; + char key; + + if(area) + { + io << '\n'; + key=io.send(S_SCAN_MESSAGES_ORDER_SELECTION,hotkeys); + } + else + key = K_SCAN_MESSAGES_ORDER_SELECTION[3]; + + if(!key) key=io.wait(hotkeys); + + key = hotkeys.find(String(char(key))); + + io << "\n\n"; + switch(key) + { + case 6 : return; + case 1 : io << S_READMSG_FORWARD << '\n'; + searchmethod = READMSG_ALL; + searchorder = 1; + break; + case 2 : io << S_READMSG_REVERSE << '\n'; + searchmethod = READMSG_ALL; + searchorder = -1; + break; + case 0 : io << S_READMSG_ALL << '\n'; + searchmethod = READMSG_ALL; + break; + case 3 : io << S_READMSG_NEW << '\n'; + searchmethod = READMSG_NEW; + searchorder = 1; + break; + case 4 : { + io << S_READMSG_SELECTED; + char k = wait_language_hotkeys(K_READMSG_SELECTED); + + if(k == '\r') return; + + io << K_READMSG_SELECTED[k]; + + switch(k) + { + case 0: k = 'F'; break; + case 1: k = 'T'; break; + case 2: k = 'S'; break; + case 3: k = 'E'; break; + } + searchdata[0] = k; + io << "\n\n" << S_READMSG_SELECTED_SEARCH_FOR; + io.read(&searchdata[1],60,READMODE_UPALL); + if(!searchdata[1]) return; + searchmethod = READMSG_SEL; + io << '\n'; + } break; + case 5 : io << S_READMSG_MARKED << '\n'; + searchmethod = READMSG_MARKED; + break; + } + + if(!searchorder) + { + io << S_READMSG_ALL_FORWARD_OR_REVERSE; + key=wait_language_hotkeys(K_READMSG_ALL_FORWARD_OR_REVERSE); + if(key==1) + { + searchorder = -1; + io << S_READMSG_REVERSE << '\n'; + } + else + { + searchorder = +1; + io << S_READMSG_FORWARD << '\n'; + } + } + + if(area) + { + long highnum = ma.msgBase->msgNum(ma,ma.msgBase->highMsg(ma)); + long lownum = ma.msgBase->msgNum(ma,ma.msgBase->lowMsg(ma)); + + if(searchorder<0) firstmsg = highnum; + else firstmsg = lownum; + + if(searchmethod != READMSG_MARKED && searchmethod != READMSG_INDIV) + { + io << '\n' << S_READMSG_START_AT_MESSAGE; + io.read(firstmsg); + + if(firstmsg > highnum && searchorder < 0) firstmsg = highnum; + if(firstmsg < lownum && searchorder > 0) firstmsg = lownum; + + firstmsg = ma.msgBase->msgId(ma,firstmsg); + + io << '\n'; + } + } + } // No "/N" parameter + + if(searchmethod == READMSG_NEW) + { + marked.clear(); + + io << '\n' << S_READMSG_SEARCHING_NEW_MESSAGES; + + get_new_msgs(marked,area); + + if(!marked.numMarked()) + { + io << "\n\n" << S_READMSG_NO_NEW_MESSAGES_FOUND << + "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + + io << S_READMSG_X_NEW_MESSAGES_FOUND(form("%d",marked.numMarked())) << '\n'; + + searchmethod = READMSG_MARKED; + } + + if(searchmethod != READMSG_MARKED) + { + if(!msg.readFirst(searchmethod,searchorder,firstmsg,searchdata)) + { + io << '\n' << S_READMSG_NO_MESSAGES_FOUND + << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + nonext = TRUE; + } + + int markedmsg_index = 0; + + for(;;) + { + if(searchmethod == READMSG_MARKED) + { + if(markedmsg_index >= marked.numMarked()) break; + + MessageIndex mi = marked[markedmsg_index++]; + + if(area) if(mi.area != area) continue; + + if(!msg.read(mi.num,mi.area)) continue; + } + + if(searchmethod!=READMSG_MARKED && !nonext) + if(!msg.readNext(searchmethod,searchorder,searchdata)) break; + + nonext = FALSE; + + ma = *msg.msgArea; + + if(!msg.readAccess()) continue; + + + String hotkeys("MNS\r"); + io << "\n\n" << S_SCAN_MESSAGES_SHOWMSG(form("%ld",msg.num),ma.name,msg.from,msg.to,msg.subj) << "\n\n"; + +// if( ma.sysopAccess() +// || ( ma.msgKind!=MSG_ECHO +// && ( !strcmpl(msg.from,user.name) +// || !strcmpl(msg.to,user.name) +// ) +// ) +// || ( ma.msgKind == MSG_ECHO +// && msg.attr & MSGATTR_UNSENT_ECHO +// && !strcmpl(msg.from,user.name) +// ) +// ) +// { +// io << "\6[\3D\6]elete "; +// hotkeys << 'D'; +// } + + io << S_SCAN_MESSAGES_PROMPT; + + char k = wait_language_hotkeys(K_SCAN_MESSAGES_PROMPT); + if(k==2) break; + switch(k) + { + case '\r': + case 1: io << K_SCAN_MESSAGES_PROMPT[1]; break; + case 0: { + io << S_MESSAGE_MARKED; + markedmsglist.add(msg); + LOG(2,"Msg #%ld marked",msg.num); + } break; +// case 'D': { +// io << "\7Deleted"; +// //msg.remove(); +// LOG(2,"Msg #%ld deleted",msg.num); +// } break; + } + } + + io << "\n\n" << S_END_OF_MESSAGES + << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; +} + diff --git a/SCANMSG.OBJ b/SCANMSG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..644a137990e0a8a5fa4ea448cfc489fc6204bad0 GIT binary patch literal 6610 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 Hu +#include "proboard.hpp" + +const int MAX_LANGUAGES = 20; + +void +select_language(char *data) +{ + if(data != NULL) + io << "\n\f\n"; + + io << S_SELECT_LANGUAGE_TITLE << "\n\n"; + + FileName *languages = new FileName[20]; + + DirScan scan(FileName(syspath,"*.PBL")); + + for(int i = 0; int(scan) ; scan++ , i= 1 && num <= i) + { + if(data) + io << "\n\n" << S_READING_LANGUAGE_FILE; + + if(!ReadLanguage( languages[num-1] )) + if(!ReadLanguage( cfg.defaultLanguage )) + fatalerror("Error reading default language file"); + + strcpy(user.language,languages[num-1]); + + readconfig(); + } + else + { + if(num) + io << "\n\n" << S_INVALID_ENTRY; + } + + if(num && data) + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + delete [] languages; +} diff --git a/SELLANG.OBJ b/SELLANG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..c626b00ff4288bebcb7f629f54fda09960d41113 GIT binary patch literal 2711 zcmai0Z){Ul6hE)+-b%N^fNtY&SG1cM>pm@-<>#@g79c}Hmr>g*N zso~%>3-Au(>fSb84R9ObC_>dARkagmo&czIT6=oBdUta!>t2^;S6{caitFxjb!p^* z+v#+w@nO4nJNo+Vm)@*~%||sVHS+<^_BcUP#ayH_0JfT``LGdIS!`aP(CaxMSj_u* zDPSHC0n>Ti zOr04m{D{E6%z1cT5JmHN(A(bLCC_a>&#(w}mLZSi@d<&zCSIkgIk2wQ1EXHMSZxA?In z<_SdBl|{mYL~Y9;^M0i;h7zd4qY^|Zu1Car&_I=9Q3`m+tOd7gWlEK;K+#gW)Q)*| zBG5mKJtBQjrrS* zF{TH5S?qQ@=<2r;s7$IRE>*=CSWtDuBeq{+D%q?AWW$rcfTW&3$#le#sKRxrV|lkI z`l;w030{lXt|kVqRuGIAwYA~NI7}8}>f%B5d;^o3ist}QQ=j7)+oDFYQ>Sv2a>-1$ zV~bj9DofmMq*ED{onL_Pq9%%-qGvwOMW#;VB4^&nM*vD z_)f>3@GR2QH90Vl*MH{7%g|5o-&W9ZEla8g~UKkUFsaU zbZ)m?l1=jAIl>l_tq5z4u~sGhZuh-?7-Ns9iUrcj4i}!JTa$|Hu2FVZk=^tEV>f=T zmC4>D`qbYIj5c-Mz^GC`H!#)N?}#S*HF+qNY+!WR^Mp;ki>mAyqE4M6%dVUt%d$s^ zI?EG%){Vyf)YwjqcT(exq$#T>Ycn@UZSpTvWqu_3%(rBDauyfKiwMcQP1a;ik)}+T z)MpNo4VeM5K4T?~nQcU$e2SX1lGVv(^q5(JC?NH-zmcZdAMiIxs%GEC`DvVoiD9;f zG|aYU-5CO$hE#M zi)vGI$6%X@Z5CyOm41wv=ywd>d8R>O$P@HQCi+Q2ZxhoH-tE*8{x8gIhj`&iDI_Im zpxY~Sc!X#pc*T4v>GL6NKExKJ?kLeBb^-QXxpZzBq+7_QbRB6qJJSVmB#D<3iH3Aa ziZ|oAtS}BI*qccPq!kr1w|fET-@v{rA?j}nX-=;tO~ +#include +#include "proboard.hpp" + +void select_filegroup(char *); +void select_msggroup(char *); + +void +set_msgarea(char *data) +{ + MsgArea ma; + int areanum = 0; + String param[50]; + word group = 0; + int columns = 2; + bool group_specified = FALSE; + bool listareas = FALSE; + bool show_lastread = TRUE; + bool list_specified = FALSE; + + BitArray arealist(MAX_MSG_AREAS,1); + + int npara = parse_data(data,param); + + for(int i=0;i=0) break; + + if(shown) return; + + io << "\n\f\n" << S_SELECT_MESSAGE_AREA_TITLE << "\n\n"; + + linecounter(3); + } + + io.enablestop(); + + for(int i=1,count=0;i<=MsgArea::highAreaNum();i++) + { + String newmail = " "; + + if(!arealist[i] || !ma.read(i) || !check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot)) continue; + + if(group && !ma.allGroups) + { + for(int g=0;g<4;g++) + { + if(ma.groups[g] == group) + break; + } + + if(g==4) + continue; + } + + if(!listareas && show_lastread) + if(ma.lastRead(user_recnr) < ma.highMsg()) + newmail = "\7*"; + + io << form("\3%4d. %s \6%-*.*s ",i,(char *)newmail,80/columns-10,80/columns-10,ma.name); + + if(stopped) break; + + if(!((++count)%columns)) + { + io << '\n'; + if(linecounter()) break; + } + } + + if(count%columns) io << '\n'; + + if(listareas) break; + } + + if(!listareas) + { + io << '\n'; + + if(!arealist[areanum] || !ma.read(areanum) || (!check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot) && !ma.sysopAccess())) + { + io << '\n' << S_UNKNOWN_MESSAGE_AREA << ' ' << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + user.msgArea = areanum; + + updatemenu = TRUE; + } +} + +void +set_filearea(char *data) +{ + FileArea fa; + word group = 0; + int areanum = 0; + bool arealist_created = FALSE; + bool group_specified = FALSE; + int columns = 2; + String param[50]; + BitArray arealist(MAX_FILE_AREAS , 1); + + int npara=parse_data(data,param); + + for(int i=0;i=0) break; + + if(shown) return; + + io << "\f\n" << S_SELECT_FILE_AREA_TITLE << "\n\n"; + + io << "\x17."; + + create_arealist(param,npara,arealist); + arealist_created = TRUE; + + io << '\r'; + + linecounter(3); + io.enablestop(); + + for(int i=1,count=0;i<=FileArea::highAreaNum();i++) + { + if(!arealist[i] || !fa.read(i)) continue; + + if(!check_access(fa.level,fa.flags,fa.flagsNot)) continue; + + if(group && !fa.allGroups) + { + for(int g=0;g<4;g++) + { + if(fa.groups[g] == group) + break; + } + + if(g==4) + continue; + } + + io << form("\3%4d. \6%-*.*s ",i,80/columns-8,80/columns-8,fa.name); + + if(stopped) break; + if(!((++count)%columns)) + { + io <<'\n'; + if(linecounter()) break; + } + } + + if(count%columns) io << '\n'; + } + +io << '\n'; + +if((arealist_created && !arealist[areanum]) || !fa.read(areanum) || !check_access(fa.level,fa.flags,fa.flagsNot)) + { + io << '\n' << S_UNKNOWN_FILE_AREA << ' ' << S_PRESS_ENTER_TO_CONTINUE; + return; + } + +user.fileArea = areanum; + +updatemenu = TRUE; +} + +void +select_filegroup(char *) +{ + File f; + AreaGroup group; + + f.open(FileName(syspath,"FGROUPS.PB")); + + io << "\f\n" << S_SELECT_FILE_AREA_GROUP_TITLE << "\n\n"; + + linecounter(3); + io.enablestop(); + + for(int i=1,count=0;;i++) + { + if(f.read(&group,sizeof(group)) != sizeof(group)) + break; + + if(!check_access(group.level,group.flags,group.flagsNot)) + continue; + + if(!group.name[0]) + continue; + + io << form(" \3%3d. \6%-29.29s ",i,group.name); + + if(stopped) break; + + if((count++)%2) + { + io <<'\n'; + if(linecounter()) break; + } + } + + if(count%2) io << '\n'; + + int groupnum = 0; + + io << '\n' << S_ENTER_GROUP_NUMBER; + + if(io.read(groupnum,3) < 0) return; + + io << '\n'; + + if(groupnum < 1 || groupnum > 255) + io << '\n' << S_UNKNOWN_GROUP << ' ' << S_PRESS_ENTER_TO_CONTINUE; + + f.seek(long(groupnum-1) * sizeof(group)); + + if(f.read(&group,sizeof(group)) != sizeof(group) || !check_access(group.level,group.flags,group.flagsNot)) + io << '\n' << S_UNKNOWN_GROUP << ' ' << S_PRESS_ENTER_TO_CONTINUE; + + user.fileGroup = groupnum; + + updatemenu = TRUE; +} + +void +select_msggroup(char *) +{ + File f; + AreaGroup group; + + f.open(FileName(syspath,"MGROUPS.PB")); + + io << "\f\n" << S_SELECT_MSG_AREA_GROUP_TITLE << "\n\n"; + + linecounter(3); + io.enablestop(); + + for(int i=1,count=0;;i++) + { + if(f.read(&group,sizeof(group)) != sizeof(group)) + break; + + if(!check_access(group.level,group.flags,group.flagsNot)) + continue; + + if(!group.name[0]) + continue; + + io << form(" \3%3d. \6%-29.29s ",i,group.name); + + if(stopped) break; + + if((count++)%2) + { + io <<'\n'; + if(linecounter()) break; + } + } + + if(count%2) io << '\n'; + + int groupnum = 0; + + io << '\n' << S_ENTER_GROUP_NUMBER; + + if(io.read(groupnum,3) < 0) return; + + io << '\n'; + + if(groupnum < 1 || groupnum > 255) + { + io << '\n' << S_UNKNOWN_GROUP << ' ' << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + f.seek(long(groupnum-1) * sizeof(group)); + + if(f.read(&group,sizeof(group)) != sizeof(group) || !check_access(group.level,group.flags,group.flagsNot)) + { + io << '\n' << S_UNKNOWN_GROUP << ' ' << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + user.msgGroup = groupnum; + + updatemenu = TRUE; +} + + diff --git a/SETAREA.OBJ b/SETAREA.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..e4f725721d64bb43fce09ac83b11a08a06da552d GIT binary patch literal 7949 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 literal 0 HcmV?d00001 diff --git a/SHELL.CPP b/SHELL.CPP new file mode 100644 index 0000000..49dc102 --- /dev/null +++ b/SHELL.CPP @@ -0,0 +1,822 @@ +#define Use_MsgBase + +#include +#include +#include +#include +#include +#include +#include "proboard.hpp" + +extern "C" int swapshell(char *command); + +static void write_dorinfo(int node,bool write_handle,bool write_avatar); +static void write_exitinfo1(); +static void read_exitinfo1(); +static void write_exitinfo2(); +static void read_exitinfo2(); +static void write_doorsys(); + +unsigned shell_windowed = 0; +unsigned shell_updateline = 0; +unsigned shell_swap = 0; + +char shell_swapname[13]; + +static bool use_underscore; + +inline void +test_ems() +{ + char far *ptr = (char far *) MK_FP(*((word *)MK_FP(0,0x67*4+2)),10); + + if(strncmp(ptr,"EMMXXXX0",8)) use_ems = 0; +} + + +static void +set_environment() +{ + static char _far *alloc_ptr = NULL; + + int envlen = 1; // Start with 1 (extra zero byte at end of table) + + for(int i=0;environ[i];i++) envlen += strlen(environ[i])+1; + + if(alloc_ptr != NULL) free(alloc_ptr); + + char far *eptr = (char far *)malloc(envlen+16); + + alloc_ptr = eptr; + + if(eptr == NULL) return; + + eptr = (char far *)normalize_ptr(eptr); // Normalize pointer + eptr = (char far *)MK_FP(FP_SEG(eptr)+1,0); // Make zero-offset pointer + + char _far *p = eptr; + + for(i=0;environ[i];i++) + { + memcpy(p,environ[i],strlen(environ[i])+1); + p += strlen(environ[i]) + 1; + } + + *p = 0; + + *((word _far *)MK_FP(_psp,0x2C)) = FP_SEG(eptr); +} + +void +shell(char *data) +{ + bool hotfossil = FALSE; + bool log = TRUE; + bool message = TRUE; + bool old_exitinfo = FALSE; + bool do_door_sys = FALSE; + bool suspend = FALSE; + bool sysop = FALSE; + bool no_io = FALSE; + bool doscmd = FALSE; + bool write_handle = FALSE; + bool write_avatar = TRUE; + +#ifdef DEBUG_EFL + LOG("EFLDEBUG: [SP=%04X] shell() entry",_SP); +#endif + + use_underscore = TRUE; + + int dorinfo_node = node_number; + + test_ems(); + shell_swap = cfg.doswap; + + String commandline; + + shell_windowed = 0; + shell_updateline = 0; + + bool flag = FALSE; + + for(;*data;data++) + { + if(*data=='*' && !flag) + { + flag = TRUE; + continue; + } + + if(flag) + { // free: J,K,U + switch(toupper(*data)) + { + case '*': commandline << '*'; break; + case '#': commandline << node_number; break; + case 'A': write_handle = TRUE; break; + case 'B': commandline << io.baud; break; + case 'C': commandline << getenv("COMSPEC"); break; + case 'D': do_door_sys = TRUE; break; + case 'E': old_exitinfo = TRUE; break; + case 'F': commandline << user_firstname; break; + case 'G': commandline << ((ansi_mode)?1:0); break; + case 'H': hotfossil = TRUE; break; + case 'I': commandline << cfg.inactivity_time; break; + // case 'J': break; + // case 'K': break; + case 'L': { + String s(user.name); + for(int i=0;i= 0) user.write(FALSE); + + write_taglist(); + + FileArea::close(); + + msgbase.close(); + + /* + f_users .close(); + f_usersxi .close(); + f_usersidx.close(); + f_userspb .close(); + */ + + display_mode = 1; + + word *screenbuf=new word[tsw_hsize*tsw_vsize]; + tsw_gettext(screenbuf,1,1,tsw_hsize,tsw_vsize); + + if(!hotfossil && !no_io) io.cooldown(); + + sprintf(shell_swapname,"PB$$$%03.3d.SWP",node_number); + + byte videomode = getvideomode(); + + unsigned old_vsize = tsw_vsize; + unsigned old_hsize = tsw_hsize; + + write_dorinfo(dorinfo_node,write_handle,write_avatar); + + if(old_exitinfo) + write_exitinfo1(); + else + write_exitinfo2(); + + if(do_door_sys) write_doorsys(); + + if(suspend) timer.suspend(); + + set_environment(); + +#ifdef DEBUG_EFL + LOG("EFLDEBUG: [SP=%04X] Before swapshell()",_SP); +#endif + + returnvalue=swapshell(commandline); + +#ifdef DEBUG_EFL + LOG("EFLDEBUG: [SP=%04X] After swapshell()",_SP); +#endif + + if(suspend) timer.restart(); + + timer.clearinactivity(); + + if(old_exitinfo) + read_exitinfo1(); + else + read_exitinfo2(); + + if(tsw_videocard==EGA) tsw_vsize = *((byte _far *)0x484)+1; + + tsw_hsize = *((byte far *)0x44A); + + if((old_vsize != tsw_vsize) || (old_hsize != tsw_hsize)) + { + setvideomode(videomode); + + if((videomode == 3) && (old_vsize>25)) set43(); + + if(tsw_videocard==EGA) tsw_vsize=*((byte _far *)0x484)+1; + + tsw_hsize = *((byte far *)0x44A); + } + + SCREEN.moveCursor(0,0); + + if(!hotfossil && !no_io) io.heatup(); + + read_taglist(); + + msgbase.open(); + + uo.setstatus(UO_BROWSING); + + tsw_puttext(screenbuf,1,1,tsw_hsize,tsw_vsize); + + timer.clearinactivity(); + + if(rip_mode) io << "\r\r[2!"; + + if(sysop) io << S_SYSOP_RETURNED_FROM_DOS << char(255); + + unlink(form("%sDORINFO%d.DEF",mypath,dorinfo_node)); + unlink(form("%sDOOR.SYS",mypath)); + unlink(form("%sEXITINFO.BBS",mypath)); + + delete [] screenbuf; + + updatemenu = TRUE; +} + +static void +write_dorinfo(int node,bool write_handle,bool write_avt) +{ + int i; + + File f(form("%sDORINFO%d.DEF",mypath,node),fmode_create | fmode_text); + + String sysopname (cfg.sysopname); + String username (user.name); + String usercity (user.city); + String boardname (cfg.bbsname); + + if(write_handle) if(user.alias[0]) username = user.alias; + + sysopname.upperCase(); + username.upperCase(); + usercity.upperCase(); + boardname.upperCase(); + + f << boardname << '\n'; + + for(i=0;iusers_bbs, + ei->usersxi_bbs, + upb ); + + ei->BaudRate = io.baud; + ei->CallCount = totalcalls; + + + strcpy( ei->LastCaller, lastcaller.name ); + c2pas( ei->LastCaller ); + + strcpy( ei->StartDate, "01-01-80" ); + c2pas( ei->StartDate ); + + + ei->TmLimit = timer.left(); + ei->DownLimit = int( download_limit - user.kbToday ); + ei->UserRecNum = user_recnr; + ei->LoginSec = 3600L * login_time[ 0 ] + + 60L * login_time[ 1 ] + + login_time[ 0 ]; + + + Date now(NOW); + + + sprintf( ei->TimeOfCreation, + "%02d:%02d", + now[ 0 ], + now[ 1 ] ); + + c2pas( ei->TimeOfCreation ); + + + sprintf( ei->LoginTime, + "%02d:%02d", + login_time[ 0 ], + login_time[ 1 ] ); + + c2pas( ei->LoginTime ); + + + sprintf( ei->LoginDate, + "%02d-%02d-%02d", + login_date[ 0 ], + login_date[ 1 ], + login_date[ 2 ] % 100 ); // Y2K FIXED! + // login_date[ 2 ] ); // Y2K BUG! + + c2pas( ei->LoginDate ); + + + ei->PageTimes = num_yells; + + + sprintf( ei->EventRunTime, + "%02d:%02d", + nextevent.start[ 0 ], + nextevent.start[ 1 ] ); + + c2pas( ei->EventRunTime ); + + + if ( nextevent.enabled ) + { + ei->EventStatus = 1; + } + else + { + ei->EventStatus = 2; + } + + + ei->EventErrorLevel = nextevent.errorlevel; + + + if ( nextevent.enabled ) + { + ei->EventDays = nextevent.days; + } + else + { + ei->EventDays = 0; + } + + + strcpy( ei->EventLastTimeRun, "01-01-80" ); + c2pas( ei->EventLastTimeRun ); + + + ei->NetMailEntered = ( net_entered ) ? TRUE : FALSE; + ei->EchoMailEntered = ( echo_entered ) ? TRUE : FALSE; + + ei->RIPmode = ! ! rip_mode; + ei->DoesAVT = ! ! avatar; + + + File f( form( "%sEXITINFO.BBS", mypath ), + fmode_create ); + + f.write( ei, sizeof( exitinfo2 ) ); + + + delete ei; +} + +static void +write_exitinfo1() +{ + struct exitinfo1 *ei = new exitinfo1; + + memset(ei,0,sizeof(exitinfo1)); + + ei->BaudRate = io.baud; + ei->CallCount = totalcalls; + + strcpy(ei->LastCaller,lastcaller.name); + c2pas(ei->LastCaller); + strcpy(ei->StartDate,"01-01-80"); + c2pas(ei->StartDate); + + ei->TmLimit = timer.left(); + ei->LoginSec = 3600L*login_time[0]+60L*login_time[1]+login_time[0]; + ei->DownLimit = int(download_limit-user.kbToday); + ei->UserRecNum = user_recnr; + + Date now(NOW); + sprintf(ei->TimeOfCreation,"%02d:%02d",now[0],now[1]); + c2pas(ei->TimeOfCreation); + sprintf(ei->LoginTime,"%02d:%02d",login_time[0],login_time[1]); + c2pas(ei->LoginTime); + sprintf(ei->LoginDate,"%02d-%02d-%02d",login_date[0],login_date[1],login_date[2]); + c2pas(ei->LoginDate); + + ei->PageTimes=num_yells; + + sprintf(ei->EventRunTime,"%02d:%02d",nextevent.start[0],nextevent.start[1]); + c2pas(ei->EventRunTime); + + if(nextevent.enabled) ei->EventStatus = 1; + else ei->EventStatus = 2; + + ei->EventErrorLevel = nextevent.errorlevel; + + if(nextevent.enabled) ei->EventDays = nextevent.days; + else ei->EventDays = 0; + + strcpy(ei->EventLastTimeRun,"01-01-80"); + c2pas(ei->EventLastTimeRun); + + ei->NetMailEntered = (net_entered) ? TRUE : FALSE; + ei->EchoMailEntered = (echo_entered) ? TRUE : FALSE; + + strcpy(ei->users_bbs.Name,user.name); + strcpy(ei->users_bbs.Location,user.city); + strcpy(ei->users_bbs.Password,user.passWord); + strncpy(ei->users_bbs.DataPhone,user.dataPhone,12); + ei->users_bbs.DataPhone[12]='\0'; + strncpy(ei->users_bbs.VoicePhone,user.voicePhone,12); + ei->users_bbs.VoicePhone[12]='\0'; + strcpy(ei->usersxi_bbs.Handle,user.alias); + strcpy(ei->usersxi_bbs.Comment,user.comment); + strcpy(ei->usersxi_bbs.ForwardFor,user.forwardTo); + + sprintf(ei->usersxi_bbs.BirthDate,"%02d-%02d-%02d",user.birthDate[1],user.birthDate[0],user.birthDate[2]); + sprintf(ei->usersxi_bbs.FirstDate,"%02d-%02d-%02d",user.firstDate[1],user.firstDate[0],user.firstDate[2]); + sprintf(ei->usersxi_bbs.SubDate ,"%02d-%02d-%02d",user.expDate[1],user.expDate[0],user.expDate[2]); + sprintf(ei->users_bbs .LastDate ,"%02d-%02d-%02d",user.lastDate[1],user.lastDate[0],user.lastDate[2]); + sprintf(ei->users_bbs .LastTime ,"%02d:%02d" ,user.lastTime[0],user.lastTime[1]); + + ei->users_bbs.Security = user.level ; + ei->users_bbs.NoCalls = user.timesCalled ; + ei->users_bbs.Elapsed = user.timeUsed ; + ei->users_bbs.Downloads = user.numDownloads ; + ei->users_bbs.DownloadsK = user.kbDownloaded ; + ei->users_bbs.Uploads = user.numUploads ; + ei->users_bbs.UploadsK = user.kbUploaded ; + ei->users_bbs.MsgsPosted = user.msgsPosted ; + ei->users_bbs.TodayK = user.kbToday ; + ei->users_bbs.ScreenLength = user.screenLength ; + ei->users_bbs.Credit = user.credit ; + ei->users_bbs.Pending = user.pending ; + ei->users_bbs.LastRead = user.highMsgRead ; + + for(int z=0;z<25;z++) ei->usersxi_bbs.CombinedInfo[z] = ((byte *)(&user.combinedBoards))[z]; + + ei->users_bbs.Flags = swapbits(*((long *)&user.aFlags)); + + if(user.uFlags & UFLAG_DELETED) ei->users_bbs.Attribute |= RA1_UFLAG_DELETED; + if(user.uFlags & UFLAG_CLEAR) ei->users_bbs.Attribute |= RA1_UFLAG_CLRSCR; + if(user.uFlags & UFLAG_PAUSE) ei->users_bbs.Attribute |= RA1_UFLAG_MORE; + if(user.uFlags & UFLAG_ANSI) ei->users_bbs.Attribute |= RA1_UFLAG_ANSI; + if(user.uFlags & UFLAG_NOKILL) ei->users_bbs.Attribute |= RA1_UFLAG_NOKILL; + if(user.uFlags & UFLAG_IGNORE) ei->users_bbs.Attribute |= RA1_UFLAG_IGNORE; + if(user.uFlags & UFLAG_FSED) ei->users_bbs.Attribute |= RA1_UFLAG_FSE; +// if(uflags & UFLAG_QUIET) ei->users_bbs.Attribute |= RA_UFLAG_QUIET; + + if(user.uFlags & UFLAG_HIDDEN) ei->users_bbs.Attribute2 |= RA1_UFLAG2_HIDDEN; + if(user.uFlags & UFLAG_AVATAR) ei->users_bbs.Attribute2 |= RA1_UFLAG2_AVATAR; + + if(user.uFlags & UFLAG_HOTKEYS) ei->users_bbs.Attribute2 |= RA1_UFLAG2_HOTKEYS; + + ei->usersxi_bbs.MsgArea = user.msgArea & 0xFF; + ei->usersxi_bbs.FileArea = user.fileArea & 0xFF; + + c2pas(ei->users_bbs.Name); + c2pas(ei->users_bbs.Location); + c2pas(ei->users_bbs.Password); + c2pas(ei->users_bbs.DataPhone); + c2pas(ei->users_bbs.VoicePhone); + c2pas(ei->users_bbs.LastTime); + c2pas(ei->users_bbs.LastDate); + c2pas(ei->usersxi_bbs.Handle); + c2pas(ei->usersxi_bbs.Comment); + c2pas(ei->usersxi_bbs.BirthDate); + c2pas(ei->usersxi_bbs.SubDate); + c2pas(ei->usersxi_bbs.FirstDate); + c2pas(ei->usersxi_bbs.ForwardFor); + + File f(form("%sEXITINFO.BBS",mypath),fmode_create); + f.write(ei,sizeof(exitinfo1)); + delete ei; +} + + + +static void +read_exitinfo2() +{ + struct exitinfo2 *ei = new exitinfo2; + + RA2_UsersPbBBS upb; + + user.toRa(ei->users_bbs,ei->usersxi_bbs,upb); + + memset(ei,0,sizeof(exitinfo2)); + + File f(form("%sEXITINFO.BBS",mypath)); + if(f.read(ei,sizeof(exitinfo2)) != sizeof(exitinfo2)) + { + delete ei; + return; + } + f.close(); + + num_yells = ei->PageTimes; + + unsigned oldlevel = user.level; + + user.fromRa(ei->users_bbs,ei->usersxi_bbs,upb); + + user.timeUsed -= time_adj; + + timer.changeleft(int(time_limit-timer.used()-user.timeUsed-time_removed)); + + net_entered = ei->NetMailEntered; + net_entered = ei->EchoMailEntered; + + if(user.level != oldlevel) adjust_limits(); + + delete ei; +} + +static void +read_exitinfo1() +{ + struct exitinfo1 *ei = new exitinfo1; + + memset(ei,0,sizeof(exitinfo1)); + + File f(form("%sEXITINFO.BBS",mypath)); + if(f.read(ei,sizeof(exitinfo1)) != sizeof(exitinfo1)) + { + delete ei; + return; + } + f.close(); + + num_yells = ei->PageTimes; + + unsigned oldlevel = user.level; + + user.level = ei->users_bbs.Security; + + net_entered = ei->NetMailEntered; + net_entered = ei->EchoMailEntered; + + if(user.level != oldlevel) adjust_limits(); + + delete ei; +} diff --git a/SHELL.OBJ b/SHELL.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..00a370ac073da4a987cb601e9f3f9bb937d1fc7e GIT binary patch literal 15964 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 literal 0 HcmV?d00001 diff --git a/SHOWANS.CPP b/SHOWANS.CPP new file mode 100644 index 0000000..a1755d2 --- /dev/null +++ b/SHOWANS.CPP @@ -0,0 +1,112 @@ +#include "proboard.hpp" + + + + +//--------------------- +// Show ANS or ASC file +//--------------------- + +void showansasc( char *data ) +{ + showansasc( data, NULL ); +} + + + +//-------------------------- +// Show ANS, ASC or RIP file +//-------------------------- + +char showansascrip( char *data ) +{ + if ( ! show_rip( data, FALSE ) ) + { + return showansasc( data, NULL ); + } + else + { + return 0; + } +} + + + +//---------------------------- +// View ANS file, with a pause +//---------------------------- + +void view_ans_wait( char *data ) +{ + showansasc( data, NULL ); + + + io << '\n' + << S_PRESS_ENTER_TO_CONTINUE; +} + + + +//-------------------------------------------------------- +// Show an AVT, ANS or ASC file with Avatar auto-detection +//-------------------------------------------------------- + +char showansasc( char *data, + char *hotkeys ) +{ + FileName f( cfg.txtpath, data ); + char k; + + + if ( avtplus ) + { + f.changeExt( "AVP" ); + + k = io.sendfile( f, hotkeys ); + + + if ( k != ANS_NOFILE ) + { + return k; + } + } + + + if ( avatar ) + { + f.changeExt( "AVT" ); + + k = io.sendfile( f, hotkeys ); + + + if ( k != ANS_NOFILE ) + { + return k; + } + } + + + if ( ansi_mode ) + { + f.changeExt( "ANS" ); + + k = io.sendfile( f, hotkeys ); + + + if ( k != ANS_NOFILE ) + { + return k; + } + } + + + io.color( COLOR_WHITE ); + + + f.changeExt( "ASC" ); + + k = io.sendfile( f, hotkeys ); + + return k; +} + diff --git a/SHOWANS.OBJ b/SHOWANS.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..885e7914b157a9734ff82c4f843f27bd147dda36 GIT binary patch literal 1379 zcmb7^PiWI{6vtoEHZ5!Ciq@)A#tu~!L7Bs$cuDOa6``$78ofx&vTVz!?QGI^P7tMn zbyFA~M26zTg9kkf6s#wANL92G@$5kdf_1}#INioDzO?d0KYn?i_rBlvehInI z2zI46nH3VsF0sG=dwwGTxLDu5j@E<8R9r}Owfc7MY;E7wwve{~%$p#arvUB}tbbqL z3b26b7((>L;uyHG8^FOF4j=c17@iHBV9ma;KVaegUe;@_Z2UonG2x>8hoa$FWbCFD zw(liL6S0V=!%i?;2;DdVP*%b|N`Xx$byMuBhj7wHpL|O0_nb)#ifIu{yqp9xFLw8U zg-}C2T5gKb@ z<*eeDQ`nRt7ZOfOwAd>odZfUBitYpGREIpBqKZQpVYLnWb<&KQk`q0&r?bld8EgxW zQe~nHOpR;;Al6nc3SX$8h_ykl0z4gQMz*ewE!`y6T&ls0EMs0Z*e;wOT5&*H`nf8hHcaf-`vFRCV6x|@F*-pMjFb73g5F^Uy@Q1DhDb{RATnB$j4qw3mbn>6eYKHUNJGSZEx53h=)BuW z4!cj07pH*U3SfV$Ru$`Wa1@80Y0xvj^vq(tpCccfzi@t@RJRNT=kvk2_K6kR)KGA) zyoFeHXstSgTMFitUHsc&bH(B3YKNcGw`vBtDe}(*w*S?yPVi&3{*UqjecZb8np+Bv z|In{=KD%0Zw*2we@TZfnpWJ!`Z#-Pn8#_lmx4H>(@*CG!EW7aVfwL6f8dMSjTOdywxic(cLX2Dfodr7}lppOBZ{a*f&x +#include +#include "proboard.hpp" + +#define SEND_HEADER_LINE() \ + { \ + k = io.send(s,hotkeys); \ + switch(k) \ + { \ + case 0: break; \ + case 1: return 'S'; \ + default: return k; \ + } \ + if(/*!rip_mode &&*/ linecounter()) return 'S'; \ + s.clear(); \ + } + +static void +status_button( int num , char *text) +{ + rip_button(590 - num*40,11,620 - num*40,21,0,0,"",text,""); +} + +byte +Message::show() +{ +char *hotkeys="AN\r"; +String s; +char k; + +//if(rip_mode) io.show_remote = FALSE; + +s << '\r' << S_MSGHEADER_MESSAGENUM(form("%ld",msgNum()),msgArea->name) << " \7"; + +//s << form("\r\7Message #\6%-5ld\2 [%s] \7",msgNum(),msgArea->name); + +if(attr & MSGATTR_PRIVATE) s << S_MSGHEADER_PRIVATE << ' '; + +if(msgArea->msgKind == MSG_NET) + { + if(attr & MSGATTR_CRASH) s << S_MSGHEADER_CRASH << ' '; + if(attr & MSGATTR_KILL) s << S_MSGHEADER_KILL << ' '; + if(attr & MSGATTR_FILE) s << S_MSGHEADER_FILE << ' '; + if(attr & MSGATTR_SENT) s << S_MSGHEADER_SENT << ' '; + } + + +if(prev) s << form("\7[%ld <ÄÄ] ",msgArea->msgNum(prev)); +if(next) s << form("\7[ÄÄ> %ld] ",msgArea->msgNum(next)); + +s << '\n'; + +SEND_HEADER_LINE(); + +String org(from); +String rip_org(from); +String dest(to); +String rip_dest(to); + +org << "\7"; +dest << "\7"; + +if(msgArea->msgKind == MSG_NET) + { + int pt_from = pointNum(0); + int pt_to = pointNum(1); + + org << form(" (%d:%d/%d",origZone,origNet,origNode); + dest << form(" (%d:%d/%d",destZone,destNet,destNode); + + if(pt_from) org << form(".%d",pointNum(0)); + if(pt_to) dest << form(".%d",pointNum(1)); + + org << ')'; + dest << ')'; + + rip_org << form(" (%d:%d/%d",origZone,origNet,origNode); + rip_dest << form(" (%d:%d/%d",destZone,destNet,destNode); + + if(pt_from) rip_org << form(".%d",pointNum(0)); + if(pt_to) rip_dest << form(".%d",pointNum(1)); + + rip_org << ')'; + rip_dest << ')'; + } + + /* + if(rip_mode) + { + io.show_remote = TRUE; + + String rip_subj; + + for(int i=0; subj[i] ; i++) + { + if(strchr("\\|",subj[i])) rip_subj << '\\'; + + rip_subj << subj[i]; + } + + rip_send("\r!|Y00000100|1B0000020PI8030E080F080700080107000000\n"); + rip_send(form("!|1U2I0R9Q130000<>%s<>|1U2I159Q1H0000<>%s<>\n",(char *)rip_org,(char *)rip_dest)); + rip_send("!|1B0000020PI8030E080F080700000107000000\n"); + rip_send( form( "!|1UCS0RFA130000<>%d %s %04d<>|1UFK0RH8130000<>%02d:%02d<>\n", + postDate[ 0 ], + months_short[ postDate[ 1 ] ], + postDate[ 2 ] + 1900, // Y2K FIX! + postTime[ 0 ], + postTime[ 1 ] ) ); + + if(attr & MSGATTR_RECEIVED) + { + rip_send("!|1B0000020PI803000F0F0807000G0107000000\n"); + rip_send("!|1UA015CI1H0000<>Received<>\n"); + rip_send("!|1B0000020PI8030E080F080700000107000000\n"); + + if ( recvDate.ok() ) + rip_send( form( "!|1UCS15FA1H0000<>%d %s %04d<>|1UFK15H81H0000<>%02d:%02d<>\n", + recvDate[ 0 ], + months_short[ recvDate[ 1 ] ], + recvDate[ 2 ] + 1900, // Y2K FIX + recvTime[ 0 ], + recvTime[ 1 ], + recvTime[ 2 ] ) ); + } + + rip_send("!|1B0000020PI8030B080F080700080107000000\n"); + rip_send(form("!|1U2I1LH81X0000<>%s<>\n",(char *)rip_subj)); + + rip_send(form("!|1B0000020PHC020E080F080100000107000000|1U0K0B280N0000<>#%ld<>\n",msgNum())); + rip_send(form("!|1B0000020PHC020E080F080300000107000000|1U2I0B9Q0N0000<>%s<>\n",msgArea->name)); + + rip_send("!|1B0000020PVK020E080F080300000107000000|Y02000400\n"); + + int button_num = 0; + + if(attr & MSGATTR_PRIVATE) + status_button(button_num++,"PVT"); + + if(msgArea->msgKind == MSG_NET) + { + if(attr & MSGATTR_CRASH) status_button(button_num++,"CR"); + if(attr & MSGATTR_KILL) status_button(button_num++,"KILL"); + if(attr & MSGATTR_FILE) status_button(button_num++,"FILE"); + if(attr & MSGATTR_SENT) status_button(button_num++,"SNT"); + } + + if(prev || next) rip_send("!|1B0000020QOY020E000F080500000107000000\n"); + if(prev) rip_send("!|1UA00BB40N1O00<><<>-\n"); + if(next) rip_send("!|1UBE0BCI0N1Q00<>><>+\n"); + + rip_send("!|1B0000020QPE020F000F080300020E07000000|Y00000100\n"); + + rip_screenlines = 24; + + io.show_remote = FALSE; + } + */ + + + // Y2K FIXED! + + s << S_MSGHEADER_FROM( (char *) org, + form( "%2d %s %04d", + postDate[ 0 ], + months_short[ postDate[ 1 ] ], + postDate[ 2 ] + 1900 ), + + form( "%02d:%02d", + postTime[ 0 ], + postTime[ 1 ] ) + ) << '\n'; + + //s << form("\6From: \3%-47.47s \6Posted:\3 %2d %s %02d\5 %02d:%02d\n", + // (char *)org,postDate[0],months_short[postDate[1]],postDate[2],postTime[0],postTime[1]); + + SEND_HEADER_LINE(); + + s << S_MSGHEADER_TO((char *)dest) << ' '; + + //s << form("\6To : \3%-47.47s \6",(char *)dest); + + if(attr & MSGATTR_RECEIVED) + { + if(recvDate.ok()) + { + + // Y2K FIX! + + s << S_MSGHEADER_RECEIVED_ON( form( "%2d %s %04d", + recvDate[ 0 ], + months_short[ recvDate[ 1 ] ], + recvDate[ 2 ] + 1900 ), + + form( "%02d:%02d", + recvTime[ 0 ], + recvTime[ 1 ] ) ); + + //s << form("Received:\3 %2d %s %02d\5 %02d:%02d",recvDate[0],months_short[recvDate[1]],recvDate[2],recvTime[0],recvTime[1],recvTime[2]); + } + else + { + s << S_MSGHEADER_RECEIVED; + //s << "Received"; + } + } + + s << '\n'; + + SEND_HEADER_LINE(); + + if(attr & MSGATTR_FILE) s << S_MSGHEADER_FILEATTACHED(subj) << '\n'; + else s << S_MSGHEADER_SUBJECT(subj) << '\n'; + + SEND_HEADER_LINE(); + +s << "\n\7"; + +SEND_HEADER_LINE(); + +s = ""; + + io.show_remote = TRUE; + +io << "\7"; + +int inkludge=0; + +String wrap; + +int inquote=0; +int index=0; + +char line[100]; +memset(line,0,100); + +bool msgdone = FALSE; + +for(long txt_off = 0; !msgdone ;txt_off += 255) + { + char r[256]; + + int l = msgBase()->readMsgText(*this,r,txt_off,255); + + if(l < 255) msgdone = TRUE; + + for(int j=0;j') inquote=1; + if(inquote) + { + if(avatar) io << char(22) << char(1) << char(0xB); + else if(ansi_mode) io << ""; + } + if(strncmp(line,"SEEN-BY",7)) + { + io << line << '\n'; + if(linecounter()) return 'S'; + } + if(inquote) + { + if(avatar) io << char(22) << char(1) << char(0xF); + else if(ansi_mode) io << ""; + } + + memset(line,0,100); + index=0; + } + else + { + if(x>=' ' || x==0x1B) line[index++] = x; + } + + if(index>79) + { + wordwrap(line,wrap,79); + if(strncmp(line,"SEEN-BY",7)) + { + io << line << '\n'; + if(linecounter()) return 'S'; + } + memset(line,0,100); + strcpy(line,wrap); + index=strlen(line); + } + } + } + +if(index) + if(strncmp(line,"SEEN-BY",7)) + { + io << line << '\n'; + if(linecounter()) return 'S'; + } + +return 0; +} + diff --git a/SHOWMSG.OBJ b/SHOWMSG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..af3a53fb72c58b5b0a37c6abb30febfd9b844ed9 GIT binary patch literal 6829 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 mEh(8lzv$+ +#include +#include +#include + +extern "C" { +#include +} + +#include "proboard.hpp" + +/* +#include "cache.hpp" + +const byte cachemode_lowmsg = 0; +const byte cachemode_highmsg = 1; +const byte cachemode_nummsgs = 2; +const byte cachemode_lastread = 3; + + +struct CacheIndexKey + { + int area; + byte mode; + + CacheIndexKey(int a,byte m) { area = a ; mode = m; } + + int operator==(const CacheIndexKey& k) { return !memcmp(&k,this,sizeof(k)); } + }; + + +static ObjectCache squishCache(300); +*/ + +static void _near +xmsg2message(XMSG *xmsg,Message *msg) +{ + strcpy(msg->from , xmsg->from); + strcpy(msg->to , xmsg->to); + strcpy(msg->subj , xmsg->subj); + + msg->origZone = xmsg->orig.zone; + msg->origNet = xmsg->orig.net; + msg->origNode = xmsg->orig.node; + msg->origPoint = xmsg->orig.point; + msg->destZone = xmsg->dest.zone; + msg->destNet = xmsg->dest.net; + msg->destNode = xmsg->dest.node; + msg->destPoint = xmsg->dest.point; + + msg->postDate[0] = xmsg->date_written.date.da; + msg->postDate[1] = xmsg->date_written.date.mo; + msg->postDate[2] = xmsg->date_written.date.yr+80; + msg->postTime[0] = xmsg->date_written.time.hh; + msg->postTime[1] = xmsg->date_written.time.mm; + msg->postTime[2] = xmsg->date_written.time.ss; + msg->recvDate[0] = xmsg->date_arrived.date.da; + msg->recvDate[1] = xmsg->date_arrived.date.mo; + msg->recvDate[2] = xmsg->date_arrived.date.yr+80; + msg->recvTime[0] = xmsg->date_arrived.time.hh; + msg->recvTime[1] = xmsg->date_arrived.time.mm; + msg->recvTime[2] = xmsg->date_arrived.time.ss; + + msg->attr = 0; + + if(xmsg->attr & MSGLOCAL) + { + msg->attr |= MSGATTR_LOCAL; + + if(xmsg->attr & MSGSCANNED) + msg->attr |= MSGATTR_SENT; + } + + if(xmsg->attr & MSGPRIVATE) msg->attr |= MSGATTR_PRIVATE; + if(xmsg->attr & MSGREAD ) msg->attr |= MSGATTR_RECEIVED; + if(xmsg->attr & MSGCRASH ) msg->attr |= MSGATTR_CRASH; + if(xmsg->attr & MSGFILE ) msg->attr |= MSGATTR_FILE; + if(xmsg->attr & MSGKILL ) msg->attr |= MSGATTR_KILL; + if(xmsg->attr & MSGSENT ) msg->attr |= MSGATTR_SENT; + if(xmsg->attr & MSGORPHAN ) msg->attr |= MSGATTR_ORPHAN; + if(xmsg->attr & MSGFRQ ) msg->attr |= MSGATTR_FILEREQ; + if(xmsg->attr & MSGRRQ ) msg->attr |= MSGATTR_RECEIPTREQ; + if(xmsg->attr & MSGHOLD ) msg->attr |= MSGATTR_HOLD; + + if(msg->msgArea->msgKind == MSG_ECHO) msg->attr |= MSGATTR_ECHOMAIL; + if(msg->msgArea->msgKind == MSG_PVTECHO) msg->attr |= MSGATTR_ECHOMAIL; + if(msg->msgArea->msgKind == MSG_NET) msg->attr |= MSGATTR_NETMAIL; +} + +static void _near +message2xmsg(XMSG *xmsg,Message *msg) +{ + strcpy(xmsg->from , msg->from); + strcpy(xmsg->to , msg->to); + strcpy(xmsg->subj , msg->subj); + + xmsg->orig.zone = msg->origZone; + xmsg->orig.net = msg->origNet; + xmsg->orig.node = msg->origNode; + xmsg->orig.point = msg->origPoint; + + xmsg->dest.zone = msg->destZone; + xmsg->dest.net = msg->destNet; + xmsg->dest.node = msg->destNode; + xmsg->dest.point = msg->destPoint; + + xmsg->date_written.date.da = msg->postDate[0]; + xmsg->date_written.date.mo = msg->postDate[1]; + xmsg->date_written.date.yr = msg->postDate[2]-80; + xmsg->date_written.time.hh = msg->postTime[0]; + xmsg->date_written.time.mm = msg->postTime[1]; + xmsg->date_written.time.ss = msg->postTime[2]; + xmsg->date_arrived.date.da = msg->recvDate[0]; + xmsg->date_arrived.date.mo = msg->recvDate[1]; + xmsg->date_arrived.date.yr = msg->recvDate[2]-80; + xmsg->date_arrived.time.hh = msg->recvTime[0]; + xmsg->date_arrived.time.mm = msg->recvTime[1]; + xmsg->date_arrived.time.ss = msg->recvTime[2]; + + xmsg->attr &= ~dword( MSGPRIVATE | MSGREAD | MSGLOCAL + | MSGSCANNED | MSGSENT | MSGCRASH + | MSGFILE | MSGKILL | MSGSENT + | MSGORPHAN | MSGFRQ | MSGRRQ + | MSGHOLD + ); + + if(msg->attr & MSGATTR_LOCAL) + { + xmsg->attr |= MSGLOCAL; + + if( ((msg->attr & MSGATTR_ECHOMAIL) || (msg->attr & MSGATTR_NETMAIL)) + && (msg->attr & MSGATTR_SENT)) + { + xmsg->attr |= MSGSCANNED | MSGSENT; + } + } + + if(msg->attr & MSGATTR_PRIVATE) xmsg->attr |= MSGPRIVATE ; + if(msg->attr & MSGATTR_RECEIVED) xmsg->attr |= MSGREAD ; + if(msg->attr & MSGATTR_CRASH) xmsg->attr |= MSGCRASH ; + if(msg->attr & MSGATTR_FILE) xmsg->attr |= MSGFILE ; + if(msg->attr & MSGATTR_KILL) xmsg->attr |= MSGKILL ; + if(msg->attr & MSGATTR_SENT) xmsg->attr |= MSGSENT ; + if(msg->attr & MSGATTR_ORPHAN) xmsg->attr |= MSGORPHAN ; + if(msg->attr & MSGATTR_FILEREQ) xmsg->attr |= MSGFRQ ; + if(msg->attr & MSGATTR_RECEIPTREQ) xmsg->attr |= MSGRRQ ; + if(msg->attr & MSGATTR_HOLD) xmsg->attr |= MSGHOLD ; +} + +struct __sqidx +{ + dword ofs; + UMSGID umsgid; + dword hash; +}; + + +bool +SquishMsgBase::open() +{ + _minf mi = { 0x200 , 0 }; + + aka a; + + if(a.read(0) >= 0) mi.def_zone = a.zone; + + if(MsgOpenApi(&mi) < 0) + { + fatalerror("Unable to initialize Squish API"); + } + + lastarea = NULL; + lastareanum = -1; + + //squishCache.purge(); + + return TRUE; +} + +void +SquishMsgBase::close() +{ + if(lastarea != NULL) + { + MsgCloseArea(lastarea); + lastarea = NULL; + lastareanum = -1; + } + + MsgCloseApi(); + + //squishCache.purge(); +} + +MSG * +SquishMsgBase::readArea(MsgArea& ma) +{ + if(ma.areaNum != lastareanum || lastarea == NULL) + { + if(lastarea != NULL) MsgCloseArea(lastarea); + + lastarea = MsgOpenArea(ma.path,MSGAREA_CRIFNEC,(ma.msgBaseType == MSGBASE_SQUISH) ? + MSGTYPE_SQUISH : + MSGTYPE_SDM); + + if(lastarea == NULL) return NULL; + + + if(ma.msgBaseType == MSGBASE_SQUISH) + { + SquishSetMaxMsg(lastarea, ma.maxMsgs, 0, ma.msgKillDays); + } + + lastareanum = ma.areaNum; + } + + return lastarea; +} + +long +SquishMsgBase::readMsg(Message &msg,long id) +{ + int areanum = msg.areaNum(); + MSG *sqarea = readArea(*msg.msgArea); + + if(sqarea == NULL) return -1; + + MSGH *mh; + XMSG xmsg; + + if(msg.msgArea->msgBaseType == MSGBASE_SDM) + { + bool found = FALSE; + + if(id > 0) + { + for(; id <= MsgGetHighMsg(sqarea) ; id++) + { + if((mh = MsgOpenMsg(sqarea , MOPEN_READ , id)) != NULL) + { + found = TRUE; + + break; + } + } + + if(!found) return -1; + } + else + { + for( id = -id ; id >= 1 ; id--) + { + if((mh = MsgOpenMsg(sqarea , MOPEN_READ , id)) != NULL) + { + found = TRUE; + + break; + } + } + + if(!found) return -1; + } + + } + else + { + long msgnum; + + if(id < 0) msgnum = MsgUidToMsgn(sqarea,-id,UID_PREV); + else msgnum = MsgUidToMsgn(sqarea, id,UID_NEXT); + + if((mh = MsgOpenMsg(sqarea , MOPEN_READ , msgnum)) == NULL) return -1; + + id = msgnum; + } + + id = labs(id); + + MsgReadMsg(mh,&xmsg,0,0,0,0,0); + + MsgCloseMsg(mh); + + msg.clear(); + + xmsg2message(&xmsg,&msg); + + msg.prev = xmsg.replyto; + msg.next = xmsg.replies[0]; + + msg.id = MsgMsgnToUid(sqarea,id); + msg.num = id; + + msg.setArea(areanum); + + return msg.id; +} + +long +SquishMsgBase::lowMsg(MsgArea &ma) +{ + long x; + //CacheIndexKey idx(ma.areaNum,cachemode_lowmsg); + + //if(squishCache.find(x,idx)) return x; + + MSG *sqarea = readArea(ma); + + if(sqarea == NULL) return -1; + + x = MsgMsgnToUid(sqarea,1); + + //squishCache.add(x,idx); + + return x; +} + +long +SquishMsgBase::numMsgs(MsgArea &ma) +{ + long x; + //CacheIndexKey idx(ma.areaNum,cachemode_nummsgs); + + //if(squishCache.find(x,idx)) return x; + + MSG *sqarea = readArea(ma); + + if(sqarea == NULL) return -1; + + x = MsgGetNumMsg(sqarea); + + //squishCache.add(x,idx); + + return x; +} + +long +SquishMsgBase::highMsg(MsgArea &ma) +{ + MSG *sqarea = readArea(ma); + + if(sqarea == NULL) return -1; + + return MsgMsgnToUid(sqarea,MsgGetHighMsg(sqarea)); +} + + +word +SquishMsgBase::readMsgText(Message& msg,char *ptr,long offset,word size) +{ + MSGH *mh; + MSG *sqarea; + + if((sqarea = readArea(*msg.msgArea)) == NULL) return 0; + + msg.num = MsgUidToMsgn(sqarea,msg.id,UID_EXACT); + + if(msg.num < 1) return 0; + + if((mh = MsgOpenMsg(sqarea , MOPEN_READ , msg.num)) == NULL) return 0; + + if(msg.msgArea->msgBaseType == MSGBASE_SDM) + MsgReadMsg(mh,NULL,0,0,0,0,0); // Workaround for a bug in Squish API + + int l = (int) MsgReadMsg(mh,NULL,offset,size,ptr,0,0); + + MsgCloseMsg(mh); + + if(l < 0) l = 0; + + return l; +} + + +long +SquishMsgBase::appendMsg(Message& msg) +{ + MSG *sqarea; + MSGH *mh; + XMSG xmsg; + File f; + String control_text; + String text; + String kludge_text; + + if((sqarea = readArea(*msg.msgArea)) == NULL) return -1; + + if( !f.open("MSGTMP",fmode_read,512) ) + { + return -1; + } + + long bytecount = 0; + + for(bool inkludge = FALSE;;) + { + int c = f.readByte(); + + if(c < 0) break; + + switch( byte(c) ) + { + case '\n' : + case '' : continue; + case 1 : inkludge = TRUE; + kludge_text = ""; + break; + case '\r' : if(inkludge) + { + inkludge = FALSE; + bytecount--; + control_text << char(1) << kludge_text; + if(!strncmp(kludge_text,"FMPT",4)) msg.origPoint = atoi(&kludge_text[5]); + if(!strncmp(kludge_text,"TOPT",4)) msg.destPoint = atoi(&kludge_text[5]); + } + else + { + text << char(c); + } + break; + default : if(inkludge) + { + kludge_text << char(c); + } + else + { + text << char(c); + } + break; + } + + if(!inkludge) bytecount++; + } + + f.close(); + + if(!bytecount) return -1; + + control_text << "\x01PID: " PID_STRING_SQUISH; + + //---------------------------- + // JDR: REGISTRATION REFERENCE + //---------------------------- + + control_text << (registered ? 'r':'u'); + + if((mh = MsgOpenMsg(sqarea , MOPEN_CREATE , 0)) == NULL) return -1; + + CLEAR_OBJECT(xmsg); + + message2xmsg(&xmsg,&msg); + + MsgWriteMsg(mh,0,&xmsg,(char *)text,text.len()+1,bytecount,control_text.len() + 1,(char *)control_text); + + msg.num = mh->sq->high_msg; + + MsgCloseMsg(mh); + + msg.id = MsgMsgnToUid(sqarea,msg.num); + + //squishCache.purge(); + + return msg.id; +} + +bool +SquishMsgBase::updateMsg(Message& msg) +{ + MSG *sqarea = readArea(*msg.msgArea); + + if(sqarea == NULL) return FALSE; + + msg.num = MsgUidToMsgn(sqarea,msg.id,UID_EXACT); + + if(msg.num < 1) return FALSE; + + MSGH *mh; + XMSG xmsg; + + if((mh = MsgOpenMsg(sqarea , MOPEN_RW , msg.num)) == NULL) return -1; + + MsgReadMsg(mh,&xmsg,0,0,0,0,0); + + message2xmsg(&xmsg,&msg); + + xmsg.replyto = msg.prev; + xmsg.replies[0] = msg.next; + + for(int i=1; i < MAX_REPLY; i++) xmsg.replies[i] = 0; + + MsgWriteMsg(mh,0,&xmsg,0,0,0,0,0); + + MsgCloseMsg(mh); + + //squishCache.purge(); + + if(msg.msgArea->msgBaseType != MSGBASE_SQUISH) return TRUE; + + File f; + + if(!f.open(FileName(msg.msgArea->path,".SQI"),fmode_rw,1024)) return FALSE; + + for(;;) + { + struct __sqidx sidx; + + if(f.read(&sidx,sizeof(sidx)) != sizeof(sidx)) break; + + if(sidx.umsgid == msg.id) + { + if(msg.attr & MSGATTR_RECEIVED) sidx.hash |= 0x80000000L; + else sidx.hash &= 0x7FFFFFFFL; + + f.seek(f.pos() - sizeof(sidx)); + f.flush(); + f.write(&sidx,sizeof(sidx)); + + break; + } + } + + return TRUE; +} + +long +SquishMsgBase::msgNum(MsgArea& ma,long id) +{ + MSG *sqarea = readArea(ma); + + return MsgUidToMsgn(sqarea,id,UID_EXACT); +} + +long +SquishMsgBase::msgId(MsgArea& ma,long num) +{ + MSG *sqarea = readArea(ma); + + return MsgMsgnToUid(sqarea,num); +} + + +bool +SquishMsgBase::deleteMsg(Message &msg) +{ + MSG *sqarea = readArea(*msg.msgArea); + + if(sqarea == NULL) return FALSE; + + long num = MsgUidToMsgn(sqarea,msg.id,UID_EXACT); + + msg.num = 0; + + //squishCache.purge(); + + return (MsgKillMsg(sqarea,num) ? FALSE:TRUE); +} + +static void +showbusy() +{ + static int x = 0; + + char *ss[] = { + "|", + "/", + "-", + "\\", + NULL + }; + + /* + char *ss1[] = { + "*....", + "**...", + "***..", + ".***.", + "..***", + "...**", + "....*", + "...**", + "..***", + ".***.", + "***..", + "**...", + NULL + }; + */ + + //char **ss = (!io.baud || io.baud > 4800) ? ss1:ss2; + + io << '\b' << ss[x] << char(0xFF); + + x = ++x % 4; +} + + +word +SquishMsgBase::scanMail(MessageIndex *mi,word maxmsgs) +{ + MsgArea ma; + FileName sqname; + int index = 0; + + io << "\3 "; + + for(int i = 1; i <= MsgArea::highAreaNum() ; i++) + { + if(!ma.read(i)) continue; + + if(ma.msgBaseType != MSGBASE_SQUISH && ma.msgBaseType != MSGBASE_SDM) continue; + + if(!user.mailCheckBoards.connected(i)) continue; + + if(!check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot)) continue; + + XMSG xmsg; + MSGH *msgh; + + if(ma.msgBaseType != MSGBASE_SQUISH || ma.msgType == MSG_TOALL) + { + MSG *sqarea = readArea(ma); + + if(sqarea == NULL) continue; + + long startnum = ma.lowMsg(); + + if(ma.msgType == MSG_TOALL) + { + startnum = ma.lastRead(user_recnr); + + if(startnum < 1) + { + startnum = 1; + } + else + { + startnum = MsgUidToMsgn(sqarea,startnum,UID_EXACT); + } + + if(startnum < 1) startnum = MsgUidToMsgn(sqarea,ma.lastRead(user_recnr),UID_NEXT); + else startnum++; + + if(ma.lastRead(user_recnr) < 1) startnum = 1; + + if(startnum < 1) continue; + } + + if(startnum < 1) startnum = 1; + + for(long num = startnum ; num <= ma.highMsg() && index < maxmsgs;num++) + { + if((msgh = MsgOpenMsg(sqarea , MOPEN_READ , num)) == NULL) continue; + + showbusy(); + + MsgReadMsg(msgh,&xmsg,0,0,0,0,0); + + MsgCloseMsg(msgh); + + if(xmsg.attr & MSGREAD) continue; + + if(( !stricmp(xmsg.to,user.name) + || (!stricmp(xmsg.to,user.alias) && ma.flags && strcmp(user.name,user.alias)) + || ma.msgType == MSG_TOALL ) + && (check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot) || ma.sysopAccess()) + ) + { + mi[index].num = ma.msgId(num); + mi[index].area = ma.areaNum; + index++; + } + } + + continue; + } + + + dword name_hashvalue = SquishHash(user.name); + dword alias_hashvalue = SquishHash(user.alias); + + sqname = ma.path; + + sqname.changeExt("SQI"); + + File f(sqname,fmode_read | fmode_copen,2048); + + if(!f.opened()) + { + LOG("Can't open Squish index file '%s'",(char *)sqname); + continue; + } + + showbusy(); + + while( index < maxmsgs ) + { + struct __sqidx si; + + if(f.read(&si,sizeof(si)) != sizeof(si)) break; + + if(si.hash == name_hashvalue || si.hash == alias_hashvalue) + { + for(int i=index-1 ; i >= 0 ; i--) + { + if(si.umsgid == mi[i].num && ma.areaNum == mi[i].area) break; + } + + if(i>=0) continue; + + MSG *sqarea = readArea(ma); + + if(sqarea == NULL) continue; + + long id = si.umsgid; + + long num = MsgUidToMsgn(sqarea,id,UID_EXACT); + + if(num < 1) continue; + + if((msgh = MsgOpenMsg(sqarea , MOPEN_READ , num)) == NULL) continue; + + MsgReadMsg(msgh,&xmsg,0,0,0,0,0); + + MsgCloseMsg(msgh); + + if(xmsg.attr & MSGREAD) continue; + + if(( !stricmp(xmsg.to,user.name) + || (!stricmp(xmsg.to,user.alias) && ma.flags && strcmp(user.name,user.alias)) + ) + && (check_access(ma.readLevel,ma.readFlags,ma.readFlagsNot) || ma.sysopAccess()) + ) + { + mi[index].num = id; + mi[index].area = ma.areaNum; + index++; + } + } + } + } + + + io << '\b'; + + return index; +} + +long +SquishMsgBase::lastRead(MsgArea& ma,long rec) +{ + long n = 0; + + File f; + FileName sqname; + + if(ma.msgBaseType == MSGBASE_SQUISH) sqname(ma.path,".SQL"); + else sqname(ma.path,"LASTREAD"); + + int lr_size = (ma.msgBaseType == MSGBASE_SQUISH) ? 4 : 2; + + if(!f.open(sqname)) return 0; + + f.seek(rec * lr_size); + if(f.read(&n,lr_size) != lr_size) return 0; + + MSG *sqarea = readArea(ma); + + if(sqarea == NULL) return 0; + + n = MsgUidToMsgn(sqarea,n,UID_PREV); + n = MsgMsgnToUid(sqarea,n); + + return n; +} + +void +SquishMsgBase::setLastRead(MsgArea& ma,long rec,long num) +{ + File f; + FileName sqname; + + //squishCache.purge(); + + if(ma.msgBaseType == MSGBASE_SQUISH) sqname(ma.path,".SQL"); + else sqname(ma.path,"LASTREAD"); + + if(!f.open(sqname,fmode_rw | fmode_copen)) return; + + int lr_size = (ma.msgBaseType == MSGBASE_SQUISH) ? 4 : 2; + + if(f.len() < (rec+1)*lr_size) + { + byte x = 0; + + f.seek(f.len()); + for(long i = f.len() ; i < (rec+1)*lr_size ; i++) f.write(&x,1); + } + + f.seek(rec * lr_size); + f.write(&num,lr_size); +} diff --git a/SQUISH.OBJ b/SQUISH.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..97bdd62890ae1f8639c133634c0ce20372c6a73a GIT binary patch literal 12267 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 G_kRIt(6 +#include "proboard.hpp" + +void +command_stack::parse(char *s) +{ + int l = strlen(s); + + if(!l) return; + + sp = l; + if(sp>100) sp = 100; + + for(int i=sp-1;i>=0;i--,s++) buf[i]=(*s==';')?'\r':(*s); +} + +char +command_stack::getnext() +{ + if(!sp) return 0; + return buf[--sp]; +} + +char +command_stack::pollnext() +{ + if(!sp) return 0; + return buf[sp-1]; +} diff --git a/STACKING.OBJ b/STACKING.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..02e725169a7c02d35a1c484be91b43bd72704d78 GIT binary patch literal 562 zcmZqRW8f(+Nlebp%uClxE+|;oA;G}FAQIwiVW!}eUzC%Wm!jaTt*v0JXZWjwm4V?W zGeda?8w0~a#t;{a4t55HUqIzRA)wSNR-TG!1`G_m!6A;$-kyH$@gc4eAuP`RF0QQc zE{-9NEMOwuDL9xJh}m4+gZx7Sa%ZqJXl!O+VrFarvOE|VSXdePAuKj_M($Z`3>^QN z{xgU6*fMZCxMk*~Iu@lSI;1g(I>d(-rxrQnBo>zhrzRF9X9O3dCNuCtg^MeTT{4Rp z*yD>!igHr(8001>GB7YoIV9)j<^uf$6bAa)p&&meCoi?4M5VB-i-93@f&x&DB$}G^ z)DozY6b6PbSd|nc78R$e6y{YW1H&SH!FC2lpkdu_!ovTT@%%62ngt4?$jI&=-2Y3N zUb`KMV^iz22a(P8DRmqm#&Px(1`yrN?$Q0>wZf4&F0}@G>r$2tysz0noGx~tEb~3J z4tFNM|888|-)ir~$Hkro+5s_!0jQMWwFrpwpC4!nNc9c1E_bHauP{`J10~sxxUuyd xVpn5k@4nG@2&j +#include +#include +#include "proboard.hpp" + +static + char *varnames[] = { /* 0 */ "NAME", + /* 1 */ "CITY", + /* 2 */ "NODE", + /* 3 */ "SYSDIR", + /* 4 */ "STARTDIR", + /* 5 */ "UPDIR", + /* 6 */ "PVTDIR", + /* 7 */ "BAUD", + /* 8 */ "PORT", + /* 9 */ "FIRSTNAME", + /* 10 */ "LASTNAME", + /* 11 */ "TMLEFT", + /* 12 */ "TMONLINE", + /* 13 */ "LEVEL", + /* 14 */ "DATE", + /* 15 */ "TIME", + /* 16 */ "HANDLE", + /* 17 */ "MNUDIR", + /* 18 */ "TXTDIR", + /* 19 */ "MSGDIR", + /* 20 */ "SYSOPNAME", + /* 21 */ "PASSWORD", + /* 22 */ "NLDIR", + /* 23 */ "PEXDIR", + /* 24 */ "CURFILEAREA#", + /* 25 */ "CURMSGAREA#", + /* 26 */ "CURFILEAREA", + /* 27 */ "CURMSGAREA", + /* 28 */ "CURMENU", + /* 29 */ "NUMUSERS", + /* 30 */ "ID", + /* 31 */ "USERREC", + /* 32 */ "#1", + /* 33 */ "#2", + /* 34 */ "#3", + /* 35 */ "#4", + /* 36 */ "#5", + /* 37 */ "#6", + /* 38 */ "#7", + /* 39 */ "#B1", + /* 40 */ "#B2", + /* 41 */ "#B3", + /* 42 */ "#B4", + /* 43 */ "#B5", + /* 44 */ "#B6", + /* 45 */ "#B7", + /* 46 */ "NUMMSG", + /* 47 */ "LOWMSG", + /* 48 */ "HIGHMSG", + /* 49 */ "TOTALMSG", + /* 50 */ "LASTDATE", + /* 51 */ "LASTTIME", + /* 52 */ "TOTALCALLS", + /* 53 */ "VERSION", + /* 54 */ "VOICEPHONE", + /* 55 */ "DATAPHONE", + /* 56 */ "COUNTRY", + /* 57 */ "NUMYELLS", + /* 58 */ "CURFILEAREADIR", + /* 59 */ "CURFILEGROUP#", + /* 60 */ "CURMSGGROUP#", + /* 61 */ "CURFILEGROUP", + /* 62 */ "CURMSGGROUP", + /* 63 */ "LANGUAGE", + NULL }; + + +static String +varvalue(char *s,int len) +{ + String tmp; + + len = -len; + + if(s[0]=='%') + { + if(getenv(&s[1])) tmp = getenv(&s[1]); + + return tmp; + } + + for(int i=0;varnames[i];i++) + { + char ts[80]; + + if(strcmpl(varnames[i],s)) continue; + + switch(i) + { + case 0: sprintf(ts,"%*s",len,user.name); + tmp = ts; + break; + case 1: sprintf(ts,"%*s",len,user.city); + tmp = ts; + break; + case 2: sprintf(ts,"%*d",len,node_number); + tmp = ts; + break; + case 3: sprintf(ts,"%*s",len,syspath); + tmp = ts; + break; + case 4: sprintf(ts,"%*s",len,mypath); + tmp = ts; + break; + case 5: sprintf(ts,"%*s",len,cfg.uploadpath); + tmp = ts; + break; + case 6: sprintf(ts,"%*s",len,cfg.pvtuploadpath); + tmp = ts; + break; + case 7: sprintf(ts,"%*ld",len,io.baud); + tmp = ts; + break; + case 8: sprintf(ts,"%*d",len,io.port+1); + tmp = ts; + break; + case 9: sprintf(ts,"%*s",len,user_firstname); + tmp = ts; + break; + case 10: { + for(int i=0;i': if(invar) + { + if(*(s+1) == '@') + { + s++; + tmp << varvalue(varname,inlen ? atoi(lenstr) : 0); + invar = FALSE; + inlen = FALSE; + } + continue; // We don't want '>' chars in varnames + } + case ':': if(invar) + { + inlen = TRUE; + continue; + } + default : if(invar) + { + if(inlen) lenstr << (*s); + else varname << (*s); + } + else + { + tmp << char((*s == '|') ? '\n' : (*s)); + } + } + + return tmp; +} diff --git a/STRVARS.OBJ b/STRVARS.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..8c052290630b1b4d0ce9f13ed16b8075302acbbc GIT binary patch literal 6503 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 +#include +#include "proboard.hpp" + +void +sysopkey(KEY k) +{ + int i; + + if(k>256) + { + for( sysopkey_handlers.rewind() ; !sysopkey_handlers.eol() ; sysopkey_handlers++) + { + if( CallPEX( &sysopkey_handlers.get() , k ) ) return; + } + } + + if(k>=KEY_AF1 && k<=KEY_AF10) + { + String str = replace_stringvars(cfg.sysopkeys[(k/256)-0x68]); + + if(str[0]=='@') + { + shell(&str[1]); + } + else + if(str[0]=='`') + { + io << &str[1]; + } + else + { + for(i=0;i@")); + io << "\n\n"; + updatemenu = TRUE; + break; + case KEY_ALTC: LOG(1,"Sysop breaks in for chat"); + chat(); + break; + case KEY_ALTL: LOG("User locked out by sysop"); + user.level=0; + exit_proboard(); + case KEY_ALTH: LOG("Sysop hung up"); + exit_proboard(); + case KEY_ALTY: noyell_flag=!noyell_flag; + soundclick(); + break; + case KEY_ALTN: sysop_next = !sysop_next; + soundclick(); + break; + case KEY_ALTI: screen_image(); + break; + case KEY_ALTR: num_yells = 0; + break; + case KEY_PGUP: display_mode--; + if(display_mode<1) display_mode=9; + break; + case KEY_PGDN: display_mode++; + if(display_mode>9) display_mode=1; + break; + case KEY_UP : timer.increase(); + display_mode = 1; + break; + case KEY_DN : timer.decrease(); + display_mode = 1; + break; + case KEY_CTL_LT : { + soundclick(); + soundclick(); + soundclick(); + user.level--; + for(i=0;i=limit[i].level) + { + user.level=limit[i].level; + break; + } + if(i==num_limits) user.level++; + adjust_limits(); + timer.check(); + display_mode = 1; + soundclick(); + soundclick(); + soundclick(); + } break; + case KEY_CTL_RT : { + soundclick(); + soundclick(); + soundclick(); + user.level++; + for(i=num_limits-1;i>=0;i--) + if(user.level<=limit[i].level) + { + user.level=limit[i].level; + break; + } + if(i<0) user.level--; + adjust_limits(); + timer.check(); + display_mode = 1; + soundclick(); + soundclick(); + soundclick(); + } break; + case KEY_ALTS: { + static char *blurbs="û üüäì þàü û åñþô þàü û åõöü ýùûûýþüüäì ñþôý üüäì þàü û åñþôý"; + int off = int(clockticks()%50); + for(int i=0;i<6;i++) + { + io << blurbs[off+i]; + } + } break; + } + + update_display(); +} + diff --git a/SYSOPKEY.OBJ b/SYSOPKEY.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..ed13d0a951cb1f56a31519663a1874980e56764f GIT binary patch literal 3217 zcmb7HYitzP6+U-oUwCbUU(4GJcx|Y`rilxp7|0mg3*q6{u5Yj!Jgj%e>#f(j>wWPk z&>*V{uxW(aw4xDdNlJfIs#@Acsbea|D*H&)wXHT)gjBU^lTvwDnx-XzfNiGd&f05S z!jJy=j=y{EnS0MY=ex7x7YZRibUfq_^h?KUoq>Sw>@ol-wKs0t%J23Ey$+v?Z``<% zud99P!C4)^eGZPE)dRdv>`mLw8UP+(IJ$7^mM;I;cfSZwVC%BAw(W23679{0?ApfG zre>Yk)L?JWsz%&xvvCN0)1Hpj&bI9r4X|OePQwue+1|H6t0P^E0q70H^r{|=ibml& zUn=5^R`EdR!PX`L^kUdEAO)dFkdAr6Vj$@6@jHSp%b*9A2|+2~bvPw46b^cP?x-Ue zvJCo8IH6dG1YC}=B)U8yj5ux?jKUHjjslr zKrtveeL>Kv1N5l}6n)aMFci#nK^*YAB%Jd_24;%~`64DBI_eL)M1Mb9N^RSKqWKZ0OG4#1SolIewk78`3099+YQVA33uS`XiAxGz z?21it1f6}hfaFBMW!+euCQlF*X;XEJxx2!u1Pg_bKjL#ay`F3m2BvJUO^=A|y(F5hf0Bx_b>)O?oseSIzVMo?K6xW+Z z!<>9fTQ}M^KacMDL01=s{03L-3vu$hfMhVr$?rfc^>gEUlQn%XvIFkj8UfICYdYG@ z-?aW?Zf#?{d$Q_2D39qBBgUP^ZRAm>+WVYVF34+s`G}6JG&uV zyz?Z4H5qf(nKaaAOmlQ)2CTTU5}lkqXnpeN^{k_OIDhu|LviD<1{UO|KX>}}+pFQ) zHEnIoP;b2*HV$3ad~iqhaJ7nidkSB81mx#AMl>MXRKkJ0PbFHA8&skLd7Db~Aa7QQ z0pu!`7(rgGl0_hwa%ysN{_I~ZS3a!GwMPC_a~a@Gz%m<#c44_1BM9&}+(CRqYf`eAtVn%m zCaY6_X6Ai1e9uglrs9l^GWIiM6FSIk5+agJ_CeFI7Aq?xQrMVJ|6 zrjHp1Gl!Y6o5|XV{ZyZ7Hj|a9dSHYE_b_(sCe||^`-85#V zm5E}u1JK&^by^XB2M6gZ)Rc}uAEN!Dj@m4cgoVL;>@!gDUrlsjBS`uH! z21{viyadU!m$wk|kUIje1MH1`{5cW{J}wbmi|OvE_YqnqEL9To;_K?lzR&(gGntmU z(Gk3B9d)BGk5(yLeOfeLtr~UCdMjm}1jww5b>HH;CtucUfMc(t^M(a?Q?FPjhfYuG zPu|F6cNM#1HxK^~ilGF`U@5GD3a~&G)WTEnG}OZm*a^Gf84#cWc0(gH!5;kZdluTD z9qbT-@HNuGRdf5e9&H)-6Y@awH_djgPIHOuCw6j}^b$WgM$VA)O;=aOti}Q0= z$oIK_a_yIX4~flolBhv!M0^3U9#M&?K&(ZqL99lsL@Y-vMU){*5JiZ^hysKOu?S&6 z=nxzNGl(mQ8N?LgKH{F8q<=|u>C4m-zl2SXzk*_lUqF*SK}ous)}*@-c3Q()zbd_l zR>e`Sn)FVZ7vGNeA&ysNMSKI^#`to^${6GD!o~rI_b!j%&kscKEmZw{_1fyj>Xzzu z$jgK3c4W4;j@Cx&p4#R^&HTY;Uf9vt*>SMBrE{0SLTv0KpYOp>k^T_x@$tR>AkRKM zfqj$kUcVE+GI@U_%=aAU)enl +#include +#include "proboard.hpp" + +void +edit_taglist(char *) +{ + int i; + + if(taglist.count() == 0) + { + io << "\n\n\6No files tagged! " << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + + for(;;) + { + io << "\n\f" << S_EDIT_TAGGED_TITLE << "\n\n"; + + for(i = 1 , taglist.rewind() ; !taglist.eol() ; taglist++,i++) + { + FileArea fa; + + fa.read(taglist.get().area); + + io << form(" \3%2d\7 - \6%-12s\7 \2 (%s)\n",i,taglist.get().name,fa.name); + } + + io << '\n' << S_EDIT_TAGGED_PROMPT; + + char rep = wait_language_hotkeys(K_EDIT_TAGGED_PROMPT); + + if(rep == 2) break; + + if(rep == 0) + { + while(taglist.count()) + { + taglist.rewind(); + taglist.remove(); + } + + io << K_EDIT_TAGGED_PROMPT[0] << "\n\n" << S_ALL_FILE_TAGS_CLEARED + << ' ' << S_PRESS_ENTER_TO_CONTINUE; + } + + if(rep == 1) + { + char s[4]; + + io << K_EDIT_TAGGED_PROMPT[1] << "\n\n" << S_ENTER_FILE_TO_UNTAG; + + io.read(s,3,READMODE_DIGITS); + + int n = atoi(s); + + if(n > 0 && n <= taglist.count()) + { + for(taglist.rewind() , i=1 ; iYXJUcVK~eI zyv4Yh>%v-qB}_*bhHhz$BQNa)(775~1y{>qm%6E=xkV#1H@F(q=|yOCI$3r)&E~QGbooByhwpxeXQb@pYdI#OTqR{6L zoe)pT<^kWRXV3#W0mt`BatNxdmIIRSgxGTcEpw>OCV54c1OityRIlW@K)xAji{X-&cq!R+&Y3;xYk{?Xg z<9=C|yprD<6x}!qZi0lnP?qzXyS;K>Ism1syrUi{vC@rc!164G1csdJINT>V1-qlg z=@eSpT`dm5)gd%>w7c5cJ6m9rRp^w(pw)|8;S}9LPoFa&dY~ZdmQTvfQV@*THrS6N zjEs6jR3L|flBYia8o?d%d!cf=9DpgdN-{mVUNNiU5f*Mv;|*j=a4ssJMl%9GQo)Vs zEg0Hp6?^b5WKTRJ5@7qxyDS6HId%KY?TrjMR51%+KTj`bSC`@P;PzCl8d9|?Nc(fa zaYg6Iq#;@is48Z+fL*Bos7_rvQiRLlqKa7)*w?7Y)qcuksIx7TBXQdg0CC&*borew zzrl)(scX+&sZI?Sn9e(lZx2~vRcNKLdVKk_FZ0KbGH0i6wWRV zrm}jTpnCd>BKnmTISmnJS-Ov=dW+Ix#uYAXOPwA|sgSIlK>#6kaT1c7^INTjafEBj zdmrJK`9~@L2ySg%cDI!`y+zfN+O;Oj&3G4acaaW9VsNDQAuDu}vWJnqeg%6gvp#)< zwa>C(H=VOBtw=VeJ=w#Z`pb|SYs^<%A3s%-Z{ux9maICO`ae%4^RpJG{}GN&-8^~~ zZ*9Imc_=lcOAT@PzMNWmoAV>-i!{|*P;b)@7Ul<%{QoD&j~XtAUR~Y!;5wbR=2PT% zR!5kmd7XY2B9Od(^lJF^_n3tjh$cR5VpIzggpH3=&`Y#&4+VsjEgVFnjT-w27k`uj zGZyd^lw(0D1su`ERS4#PA==m?1vg09{5NPUP~$Vg#Xh0n9iod}px{Nq#-69(42GVf zV1TG&{S*jf)4YQiV(lhIKfj+C=O4z$LJDG4=!jvv4Y9&9Mim1@b9abw?nhEEcO5^! z#3x1yqE|34`XNT65zLFeP0?#6ra1aCE^|{v9i6~Fb59dp^hpY2!bSZQbPy)mNLg!< zX%{l>piJe|qa&KA8gmj$gjN2a;1)3|KVdxa9Vu15#YTw)(JEii(8r`OaS@FfYCJ +#include "proboard.hpp" + +static +long +find_tagentry(File& f) +{ + char name[36]; + + f.rewind(); + for(;;) + { + if(f.read(name,36) != 36) + return -1; + + long p = f.pos(); + + if(name[0] && !stricmp(name,user.name)) + return p; + + word n; + + if(f.read(&n,sizeof(n)) != sizeof(n)) + return -1; + + f.seek(long(n) * sizeof(FilesIdx),seek_cur); + } +} + +void +write_taglist() +{ + File f; + + if(!f.open(FileName(syspath,"TAGLIST.PB"),fmode_rw|fmode_copen)) + return; + + long p = find_tagentry(f); + + if(p > 0) + { + f.seek(p - 36); + f.write("",1); // Invalidate entry + } + + if(taglist.count()) + { + f.seek(0,seek_end); + + f.write(user.name,36); + + word n = taglist.count(); + + f << n; + taglist.rewind(); + + for(word i=0;i> n; + + for(word i=0;im`)Hb^@4cj* zD_tRoiE%O%rVNFN__rv6QACQQEozcVk+MHT7$UUmthJ7=mf7dIFRx2F?eLHHxc58X z`R+O2xp1c{z$p0!y~0?lKN5*1ngF2QeY~T+r7J81eW5_h@uNpuEUj%@2_3*+8W>CH z0X|^dwvI#@z!uUG!q9bH#rUOGfO2F4`;tYGkB zy+K}-;Gp$T4<8!l0zJ4hOC5GT$cd){z5ptW+^LO+mOZJ%d@x8)(|MyJCt#!ESux_1hM?R^Tk8}!pY>&E zuzLG2Yz_KE$;J5u|Bx%f`C*?5V~&j%ph8KpM#3UhtS;=#X9RHwtBHzGwSxpHff z5IJtxJR0Powy+-)c!@KQhQ?#aQDv|W>?uSMHOn6ii^z&WeIY9x;X*X&6@OGj*1iJD zhj_)T{mS+Q-w20;@=HR2DYZ#$c!En3_|PB*0yGe#E+FC`iJ%JzazR>64CXF20x;E9 zTFcIbK>D*Re0LG=FjHeyDlZ951AK9XXc&OL)Q$L!hb_|%%d};|;gn+rIi|l%Z*n|i zOq;=Bx?o>)?1qn-K{9+P%V}9&Iad<$c#>p0X}>)+xd>8ob6Trrt8#|&>8K$^wo~@o zD|2a932xmj&4R?Pe3)jyks8>td}~=qSAml6yo=XO4+gg zVhZLzeM`s|86J;!;EwxG5ezKum|x6N27x+-`kT`g>WRp{_Z(EM|1*avI)_C^0K zrE@rMoKWT59l#P(@^rrTetYkauVaSv E525LV9{>OV literal 0 HcmV?d00001 diff --git a/TERMINAL.CPP b/TERMINAL.CPP new file mode 100644 index 0000000..226f9f1 --- /dev/null +++ b/TERMINAL.CPP @@ -0,0 +1,58 @@ +#include "proboard.hpp" + +void +fossilio::move(int x,int y) +{ + if(!ansi_mode && !avatar) return; + + if(avatar) io << char(0x16) << char(8) << char(y) << char(x); + else io << form("\x1b[%d;%dH",y,x); +} + +String +fullcolor_string(byte x) +{ + String str; + + if(!ansi_mode && !avatar) return str; + + if(avatar) + { + str << char(22) << char(1) << char(x & 0x7F); + if(x & 0x80) str << char(22) << char(2); + } + else + { + static char colors[] = { 0,4,2,6,1,5,3,7 }; + + int fg = colors[x&7]; + int bg = colors[(x>>4)&7]; + int blink = (x & 0x80) ? 1:0; + int high = (x & 0x08) ? 1:0; + + str << char(27) << "[0;"; + + if(high) + str << "1;"; + if(blink) str << "5;"; + + str << form("%d;%dm",fg+30,bg+40); + } + + return str; +} + +void +fossilio::fullcolor(byte x) +{ + io << fullcolor_string(x); +} + +void +fossilio::clreol() +{ + if(!ansi_mode && !avatar) return; + + if(avatar) io << "\x16\x07"; + else io << "\x1b[K"; +} diff --git a/TERMINAL.OBJ b/TERMINAL.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..e4cb39686e88b2d8adbb46de7e77a4a9420c64a8 GIT binary patch literal 1549 zcmaJ>Z)g)|7=P}PyPQc{rfaflx2#A4?W9sE79lWGo8Fvr_Gr>WDO;ANmwDroYcH3x zb8PDR!Pqz!7z~vOIv5O@5J5&5Y$&8*##s;v8?nt5OFUC3hc|Sl~cx3F&*N+Sxj)X^!hONV+!4W1B910IvO^6%_ zg)As+@U^kgaY4FZgP!kb+CrT`?O-oh8R`$B0kAg8aft=4M%OIk=YIoBL{@=`q*Iax z9f7!-O38|>2E3C>>bQ3%c`^piKgA;H2=KBZ4QWy|5C>NvGLG>9C7RMhQdEl_4^2xk zXxpGu@27&Y22RYQB{1jg$(RIN10h|Llkfgl$t=`N5l48g?l+}t-WdZr>r9L=iP^#R zxJF;oV!-~~ivW}>5Kk*gOjT4Zk}|7$XVS5Y0R6cgXl@uVrf8C?V3jxx@!WPaZmUn9 zPz}jDBg?p(S92b;y->G3DL^v!(6D^v2buyH&px<1NoU>f&~x`_AAsXdx?_Vla}T=L z8M>mja=L$>w+r*UQ^<2d-Ys|v0Kz5mD&~sp*fX`t&YEGb8BR}udlJHpHD%!5`UxAG zd(iIwgkN1xcI;SdpZi;TO81%WHG``e>_#tKfd-+T1)Ix?T$X2-d#ToNJ%l59PYHR7 z4Ac~}*+472{j~m4o_>b&@@>GBH^FCv?A`gZ02j{jRg<}4{iWK-u9(@F0tFR%;MO_* z5uQ1{etzgFYy~0T^*?QKb00kfeVeD?Y91E(M<(Cd!e{vvrU!&9Uu8UiSKrmRiN?{n zGIC6|1M? z7(S4_UsR!dL$oYjcT?2j*BunS_$7hQ+z6i%I7Q$C0!aezA(SUXNBIy2@fcLzA==9h zkz2H3+|u8oec?}{+(qSQqTCYgOW%rH7Ovr8;bQ^{p+#}a(qWVVlwOpV(FHJf@i9WF zB05UHiq7I~!hBC4Pv9G3`$}vp +#include "proboard.hpp" + +void +timelog::read() +{ +memset(this,0,sizeof(timelog)); +numdays=1; + +File f(FN_TIMELOG_PRO); + +if(f.opened()) f.read(this,sizeof(timelog)); + +if(!daysactive) daysactive = numdays; +} + +void +timelog::update() +{ +memset(this,0,sizeof(timelog)); + +File f(FN_TIMELOG_PRO,fmode_rw | fmode_excl | fmode_copen); + +f.read(this,sizeof(timelog)); + +if(!daysactive) daysactive = numdays; + +if(lastdate!=Date(TODAY)) + { + if(cfg.usage_days && numdays>=cfg.usage_days) + { + for(int i=0;i<24;i++) hours[i] -= long(numdays-cfg.usage_days+1)*hours[i]/numdays; + for(i=0;i<7;i++) days [i] -= long(numdays-cfg.usage_days+1)*days [i]/numdays; + numdays = cfg.usage_days; + } + else numdays++; + + daysactive++; + + lastdate.today(); + } + +hours[login_time[0]%24]+=timer.online(); +days[login_date.weekDay()%7]+=timer.online(); +weeks[login_date.weekNum()%53]+=timer.online(); + +if(io.baud) totalcalls++; + +f.rewind(); +f.write(this,sizeof(timelog)); +} diff --git a/TIMELOG.OBJ b/TIMELOG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..ee1a217b8fa2705c86b9751d78688d5b1c5e6a49 GIT binary patch literal 1663 zcmb7FZ)h837=PYe?k+a%n$|YWK%`(el*(3#3kCmhUDMV zopi&I56zlQDuP>wg8kT!8whnp7DpPX_7Cb85m8Vl-P&&o;uOy3?y@#>I`Bi@d!OI) zdw$QK_kq0C1oljPLP?}zhoX~{T+sypZK1v%Z|BieIuS{ZclLF4b$SjxbGOI>{J}uJ z$N?;pkguo61KdSALg>1~Hcr2H7@#q9?0El>e^3tfkA|#$eqTQ;`+7sYR^yP54i7W< z<9vfbe>iaMG7nEa&sZ4p8{S?5u(G7tym36SU*W)}Su`emVTSMn@{sQs6~Ts=(c|GE z5t`+J6Y{-ufuJ8aS??tcb{YGLCk<=Q7>{HWVB~lTta9{J4BEu3s-%qoF_lcjlZtyP z2X=8Fo=|$zN<=&b?V=n;j+lt3nPDZ8j=nxTsYIcv2CJu4Upx&5j1W;(lsDW{i8!>H zc0L`?pk#77msP=GVkkR~kdD-%qKTAhByKku?y+bltw+5X&8kRi7DL#Q=pIwEW2$>9 zjy3tP5d@OTlzVz=V)|L#MmYn{q{bts^*&lmJC8-3$W9>fKFEh89jZmuk|uzcCzJ_Q z$>12=W8+FfuRjO;{6PTHD%KW7%uedF#4PUuT$}GepJUHwc9_Gh=>AY-2tc^BTiA8c zSng#_yRK=0AlC5LJsDdtP#WM^3t$_2n7y23Za0x-fVay+;l(@)XnzlS zTP6NFqBn)-xIBA?xxEG+Z6|0t7J`9#Mi(-~h0+gKEnokH6JUM~1cg$F7fL=>dc~M% z&`elI5uWm~!od(fSkPQEOaD_khSJKzq!pBop)^0UWVW`LXZ4ED^E=% zuJ8}WC>Rr~Ct=QdbLGebF_+GP&@x+qMGM$DD`cAWUJA2eLWIJlk=kN=zB1l_e_#G% zjc`Y597&RmMZNg`r?Ayc9a~S(16z%>sd~pr`06isY*uJ{wd^F^=126A>QyJPZq8F@ z^@5I^L*$H(4Aa)C-$~fbUPNBdkt4LN>Y%pI8>nq#my(TJ)UvupZEH8teh2M2w3BGZ zsBLu!zy0|2;`cE6JL#hvjkII^JKDUyN?R(QI0;kv7?1TO>RK;S$NFpN=|NAo?s;1G Zv{ToY#WsL#QvWYA`+?W5%vk_3e*?h@CLaI* literal 0 HcmV?d00001 diff --git a/TIMER.CPP b/TIMER.CPP new file mode 100644 index 0000000..db5274b --- /dev/null +++ b/TIMER.CPP @@ -0,0 +1,448 @@ +#define Use_MsgBase + +#include +#include +#include +#include +#include +#include "proboard.hpp" + + + +//************************************************************************** +// +// Update the main console's user display area +// +// Prototype: void update_display(); +// +// Parameters: None +// +// Returns: Nothing +// +// Remarks: +// +// This routine is primarly used to update the status bar. +// +// ------------------------------------------------------------------------- +// +// Created on: ??/??/???? (Philippe Leybaert) +// Last modified: 08/05/1999 (Jeff Reeder) Modified to change the color +// of the status bar, and fix the DOB Y2K glitch. +// +//************************************************************************** + +void update_display() +{ + static int oldmode = 0; + + update_user_window(); + + + if ( user_recnr >= 0 ) + { + char s[ 100 ]; + + + if ( oldmode != display_mode ) + { + tsw_clearrect( 1, + tsw_vsize, + tsw_hsize, + tsw_vsize, + BAR_COLOR ); + + oldmode = display_mode; + } + + + tsw_maputs( 1, + tsw_vsize, + BAR_COLOR, + String( ' ', tsw_hsize ) ); + + + if ( num_yells ) + { + tsw_changeatt( BAR_COLOR | 0x80, + 1, + tsw_vsize, + tsw_hsize, + tsw_vsize ); + } + + + switch ( display_mode ) + { + case 1: + + sprintf( s, + "%s <%u>", + user.name,user.level ); + + tsw_mputs( 2, + tsw_vsize, + s ); + + if ( sysop_next ) + { + tsw_changeatt( BAR_COLOR | 0x80, + 1, + tsw_vsize, + strlen( s ) + 1, + tsw_vsize ); + } + + + sprintf( s, + " [%ld bps] [Online: %d] [Left: %d]", + io.baud, + timer.online(), + timer.left() ); + + tsw_mputs( tsw_hsize - strlen( s ) - ( rip_mode + ? 2 + : 0 ), + tsw_vsize, + s ); + + + if ( rip_mode ) + { + tsw_maputc( tsw_hsize - 1, + tsw_vsize, + BAR_COLOR | 0x80, + 'R' ); + } + + break; + + + case 2: + + sprintf( s, + "[Handle: %s]", + user.alias ); + + tsw_mputs( 2, + tsw_vsize, + s ); + + sprintf( s, "[Flags: " ); + + user.aFlags.flagstostr( & s[ 8 ] ); + + strcat( s, "]" ); + + tsw_mputs( tsw_hsize - strlen( s ), + tsw_vsize, + s ); + + break; + + + case 3: + + sprintf( s, + "[City: %s", + user.city ); + + + if ( user.country[ 0 ] ) + { + strcat( s, ", " ); + strcat( s, user.country ); + } + + + strcat( s, "]" ); + + tsw_mputs( 2, + tsw_vsize, + s ); + + sprintf( s, + "[Data: %s] [Tel: %s]", + user.dataPhone, + user.voicePhone ); + + tsw_mputs( tsw_hsize - strlen( s ), + tsw_vsize, + s ); + + break; + + + case 4: + + sprintf( s, + "[#Calls: %ld] [#DL: %ld] [K DL: %ld] [#UL: %ld] [K UL: %ld]", + user.timesCalled, + user.numDownloads, + user.kbDownloaded, + user.numUploads, + user.kbUploaded ); + + tsw_centerline( tsw_vsize, s ); + + break; + + + case 5: + + sprintf( s, + "[%s]", + user.comment ); + + tsw_centerline( tsw_vsize, s ); + + break; + + + case 6: + + sprintf( s, + "[System calls: %ld] [#Msgs: %ld] [#Users: %d]", + totalcalls, + msgbase.totalMsgs(), + num_users ); + + tsw_centerline( tsw_vsize, s ); + + break; + + + case 7: + + sprintf( s, + "[Chat: %s]", + page_reason ); + + tsw_centerline( tsw_vsize, s ); + + break; + + + case 8: + + sprintf( s, + "[Last Caller: %s]", + lastcaller.name ); + + tsw_mputs( 2, + tsw_vsize, + s ); + + if ( lastcaller.date[ 0 ] == 0 && + lastcaller.date[ 1 ] == 0 && + lastcaller.date[ 2 ] == 0 ) + { + sprintf( s, + "[%d-%s-%04d] [%02d:%02d-%02d:%02d]", + 00, + "???", + 0, + lastcaller.timeIn [ 0 ], + lastcaller.timeIn [ 1 ], + lastcaller.timeOut[ 0 ], + lastcaller.timeOut[ 1 ]); + } + else + { + sprintf( s, + "[%d-%s-%04d] [%02d:%02d-%02d:%02d]", + lastcaller.date[ 0 ], + months_short[ lastcaller.date[ 1 ] ], + lastcaller.date[ 2 ] + 1900, + lastcaller.timeIn [ 0 ], + lastcaller.timeIn [ 1 ], + lastcaller.timeOut[ 0 ], + lastcaller.timeOut[ 1 ]); + } + + tsw_mputs( tsw_hsize - strlen( s ), + tsw_vsize, + s ); + + break; + + + case 9: + + sprintf( s, + "[DOB: %02d-%s-%04d] [Time used today: %ld] [Kbytes DL today: %d]", + user.birthDate[ 0 ], + months_short[ user.birthDate[ 1 ] ], + user.birthDate[ 2 ] + 1900, + long( user.timeUsed + timer.used() ), + user.kbToday ); + + tsw_centerline( tsw_vsize, s ); + + break; + } + } + else + { + tsw_selbar( tsw_vsize, + 1, + tsw_hsize, + BAR_COLOR ); + } +} + + + +void +usertimer::decrease() +{ + suspendedtime--; + check(); +} + +void +usertimer::increase() +{ + suspendedtime++; + check(); +} + +usertimer::usertimer() +{ + started = (time_t)0; + suspended = 0; + suspendedtime = 0; + fixedtime = 0; +} + +void +usertimer::start(int min) +{ + started = time(NULL); + suspended = FALSE; + suspendedtime = 0; + fixedtime = 0; + + time_limit = min; +} + +void +usertimer::suspend() +{ + if(!suspended) suspend_start = time(NULL); + + suspended++; +} + +void +usertimer::restart() +{ + if(!suspended) return; + + suspended--; + if(!suspended) suspendedtime += int((time(NULL)-suspend_start)/60L); +} + +int +usertimer::online() +{ + if(!started) return 0; + else return (int)((time(NULL)-started)/60L); +} + +int +usertimer::left() +{ + int x = time_limit - online() + suspendedtime + fixedtime; + + if(suspended) x += int((time(NULL)-suspend_start)/60L); + + return x; +} + +void +usertimer::changeleft(int l) +{ + fixedtime = l - time_limit - suspendedtime + online(); +} + +int +usertimer::used() +{ + return online() - suspendedtime; +} + + + +void +usertimer::check() +{ +static bool warning = FALSE; + +if(!started) return; + +int l=left(); + +if(l>2) warning = FALSE; + +if(l<0) + { + io << '\n' << S_TIME_LIMIT_EXCEEDED << '\xFF'; + + LOG("Time limit! User thrown out."); + sleep(2); + exit_proboard(); + } + +if(l<=2 && !warning) + { + io << '\7' << '\7' << '\n' << S_TIME_LIMIT_WARNING("2") << "\n\xFF"; + + warning = TRUE; + } +} + +void +usertimer::checkinactivity() +{ +static bool warning = FALSE; + +if(!io.baud || !cfg.inactivity_time) return; + +int inactive=(int)(time(NULL)-inactivity_start); + +if(inactive > cfg.inactivity_time+1000) + { + clearinactivity(); + return; + } + +if(inactive < cfg.inactivity_time-20) + { + warning = FALSE; + return; + } + +if(inactive >= cfg.inactivity_time) + { + io << '\n' << S_INACTIVITY_TIMEOUT(form("%d",cfg.inactivity_time)) << "\n\xFF"; + + LOG("Inactivity. User thrown out."); + sleep(2); + exit_proboard(); + } + + if(warning) return; + + io << '\7'; + io << '\7' << '\n' << S_INACTIVITY_WARNING("20") << "\n\xFF"; + + LOG(2,"Inactivity warning"); + + warning = TRUE; +} + +void +usertimer::clearinactivity() +{ +inactivity_start=time(NULL); +} diff --git a/TIMER.OBJ b/TIMER.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..d42d63711143c4e95de1515ea3fe8080d26732be GIT binary patch literal 5969 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 +#include +#include "proboard.hpp" + +void +tops(char *data) +{ + char *headers[14]; + + headers[ 0] = S_TOPS_TOP_CALLERS ; + headers[ 1] = S_TOPS_TOP_CALLERS_UNIT ; + headers[ 2] = S_TOPS_TOP_DOWNLOADERS_KB ; + headers[ 3] = S_TOPS_TOP_DOWNLOADERS_KB_UNIT ; + headers[ 4] = S_TOPS_TOP_DOWNLOADERS_TIMES ; + headers[ 5] = S_TOPS_TOP_DOWNLOADERS_TIMES_UNIT; + headers[ 6] = S_TOPS_TOP_UPLOADERS_KB ; + headers[ 7] = S_TOPS_TOP_UPLOADERS_KB_UNIT ; + headers[ 8] = S_TOPS_TOP_UPLOADERS_TIMES ; + headers[ 9] = S_TOPS_TOP_UPLOADERS_TIMES_UNIT ; + headers[10] = S_TOPS_TOP_MSGWRITERS ; + headers[11] = S_TOPS_TOP_MSGWRITERS_UNIT ; + headers[12] = S_TOPS_TOP_ONLINE ; + headers[13] = S_TOPS_TOP_ONLINE_UNIT ; + + topentry *tp=new topentry[20]; + + int type=0; + switch(toupper(data[0])) + { + case 'C': type=0; break; + case 'K': type=1; break; + case 'T': type=2; break; + case 'U': type=3; break; + case 'F': type=4; break; + case 'M': type=5; break; + case 'O': type=6; break; + default : return; + } + int num=atoi(&data[1]); + if(!num) num=10; + + + //---------------------------- + // JDR: REGISTRATION REFERENCE + //---------------------------- + + if(!registered) num=5; + + File f(FileName(syspath,"TOPS.PB")); + if(!f.opened()) return; + + f.seek(long(type)*sizeof(topentry)*20); + f.read(tp,sizeof(topentry)*20); + + linecounter(3); + io.enablestop(); + stopped=0; + + LOG(2,"Tops requested : %s",headers[type*2]); + + io << "\n\f\7ÖÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄ·\n"; + io << form("º\3 Pos \7º\6 %-26s\7º\6 %7s \7º\n",headers[type*2],headers[type*2+1]); + io << "ÇÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄĶ\n"; + for(int i=0;i9#>uWnC zVG^rhk4oZS2xLb5!$^q#5DC;Nb0J+zbRRGj2_eLY61FbH#5k}{>bY-kA1*|em+u>5y*lO!kT;CZ(jfYNwM$QP$+N;;wBV7Lcs1w%SQ+ z$5!_i3lv%Wz5w4Gj0D1b$k^tCe9IPFJsN?-%{*wh*1a5_WIwQ+F9`Wuh~MuMFp~G8 zPk2jc^@Llfg+pjXR%Y236a=5&7qobNf@iOvrygTl6iR12d| z!s_$$n?k(DvJaMUPR{PAb2_=YMpvDKbJ@5WTcfL?(On0NESy{5Ll(bB2s?RCsJX@2 z$~QxyjIqU9UkD0tlh8pdeTbfFzEs>I@cf&`Hop%ROs;V=FNQ=T!c;`FKPd3D`$dxx z#=Xs991^V(5io4Agd05vdCM$UcujZ>)^vtLzQBHTcxg@)RGcRq^y9F?!3Yj3gl9w_ z@5c=SQPAQdz_%OQB0l)^gXaJkt%W{W=)`dV1kNgz41ha678~=D?MXdAMf})kaYg*Y zhsC1xl1MJfEKAuFWZfc3$V^*;Oj9CSdqncJ%$87AhU}_HdS&(^Wh;@TM3R)*2FlhW z`&J~^WcE5`n~@EQq+ez`DcgZ;SR~hFc7U=LWVb}}z03|%b_m%Wk=&NqamqT8-4n@O znVq5R6tbU1@{`QYQ+5v71Cjh9vu?@~$VNr-FkxWrXXw3Z63J81I$;`5?on49&pRd4 z)in^m9s8@e{e>I%D|4UKC{5#;loCUZD`MuIg1*TrR^k*8jJM;+vyQFj{ ztiMe*6H6`-$s^G^mfSN|k!x3?DA3zAPHbU}wIf!!%gy;5OzM31IDo;q!Jn1=DN zO}nH<9QN6XS~`VX^l2_S@o&t6JO-%~`3Ncep9JxHH|}3h+`NCndXc?t#zxG!b^3$` z>PMcw~OEpfHDR4{D{VLco zc2?0`dj(G3D9`c#BlL+2)0-4zmOrbOK5=zAL^G$4L@pHEXMP^?8#*XX}cBCjb z_3#*TW+mjz3eYD8<_yMRcX#QTp~s{!{kx9IOFvr3DAJ=krYQY@s=GQyJCr8Mp|3FD zG6oENPKwj#Flb0b<2`B|AtxbTv^9n#sb!=Sj(631J5w5Z%BvQrh>8 zj+xijjq!aS>ln?zak9A2=3)jmk|hJ>WLe*Q9ivWWslwB!lfzW?P<5WFlT^J!Re-9U zR9UI2qDoJd7S$hT4*~07Dh_QZeP{oOW3z+bPV zspUrTp#-MMPKIN|u6>Z)?_!cXN;8TFg+tkmvJ0gNWjl%+#fh>F1y7yait+|Z14=zg z9ZHRh={J+I{uN|V|5B2lEX8T|7m=m?3@L0l%PETLj;*yw|Y7 zP%ePBAn#U^{tQd{*=ojjSqt5)!5$P0dEIJ5`RXdOAQ|f@&_Y_u|MA&X=J+mQDTBJ) zpXiBeU(~ahyu{A5w~RE&u=k literal 0 HcmV?d00001 diff --git a/TURBOC.CFG b/TURBOC.CFG new file mode 100644 index 0000000..e6fb868 --- /dev/null +++ b/TURBOC.CFG @@ -0,0 +1,15 @@ +-wbbf +-weas +-wpin +-wamp +-wasm +-wdef +-wnod +-wpro +-wstv +-wcln +-wpre +-w-inl +-w-par +-w-rch +-I\BC31\INCLUDE;\CPP\LIB\TSLIB;\CPP\LIB\TSWIN;\CPP\PB\LIB;\CPP\LIB\SQUISH\INCLUDE -X diff --git a/UL.CPP b/UL.CPP new file mode 100644 index 0000000..1365929 --- /dev/null +++ b/UL.CPP @@ -0,0 +1,690 @@ +#define Use_LinkedList + +#include +#include +#include +#include +#include +#include +#include +#include "proboard.hpp" + +static void MoveFailedFile(FileName full_fn); + +static bool file_in_index(FileName fn); + bool check_dszlog(protocol& p , LinkedList& downloads , LinkedList& uploads); + +void process_uploads(protocol& p , char *dir , LinkedList& uploads , bool pvt , bool ask_desc , bool no_log , bool quiet_dl , String extra_log ); + +static char oldpath[70]=""; + +static char env_buf[80]; + +static void +pushdir(char *p) +{ + char path[65]; + unsigned disk; + + strcpy(path,p); + getcwd(oldpath,69); + disk=toupper(path[0])-'A'+1; + + _dos_setdrive(disk,&disk); + + if(path[strlen(path)-1]=='\\') + path[strlen(path)-1]=0; + + chdir(&path[2]); +} + +static void +popdir() +{ + unsigned disk = toupper(oldpath[0])-'A'+1; + _dos_setdrive(disk,&disk); + chdir(&oldpath[2]); +} + + +void +upload(char *data) +{ + bool private_download = FALSE; + bool no_input = FALSE; + bool quiet_download = FALSE; + bool no_log = FALSE; + bool ask_description = TRUE; + char protocol_key = '\0'; + char filename[13] = ""; + FileName extra_log; + protocol p; + int i,npara; + String param[20]; + char uploadpath[80]; + + adjust_limits(); + + strcpy(uploadpath , cfg.uploadpath); + + npara = parse_data(data,param); // Parse command line + + for(i=0 ; i0 && !quiet_download) + { + io << S_NO_UPLOAD_DUE_TO_EVENT << "\n\n" + << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + + if(!select_protocol(p,protocol_key)) return; + + if(!(p.flags&PROT_BATCH) && !no_input) + { + io << "\n\n" << S_FILE_TO_UPLOAD; + + io.read(filename,12,READMODE_UPALL); + + if(!*filename || strchr(filename,':') || strchr(filename,'\\')) + return; + + io << '\n'; + } + + String command; + + if(p.ulcom[0] != '@') + command << "*N*Q"; + + for(i=0;i downloads , uploads; + + check_dszlog(p , downloads , uploads); + + if(!uploads.count()) + { + if(!quiet_download) + { + io << "\n\n" << S_NO_FILES_RECEIVED << "\n\n" + << S_PRESS_ENTER_TO_CONTINUE; + } + + return; + } + + process_uploads(p,uploadpath,uploads,private_download,ask_description,no_log,quiet_download,extra_log); + + if(!quiet_download) + io << '\n' << S_PRESS_ENTER_TO_CONTINUE; +} + + +void +process_uploads(protocol& p , char *dir , LinkedList& uploads , bool pvt , + bool ask_desc , + bool no_log , + bool quiet_dl , + String extra_log + ) +{ + long total_bytes = 0; + int total_files = 0; + String uploadpath(dir); + + bool dupes_found = FALSE; + + if(!quiet_dl) + io << "\n\n" << S_CHECKING_UPLOADS << "\n\xFF"; + + for( uploads.rewind() ; !uploads.eol() ; ) + { + FileName fn( uploadpath , uploads.get() ); + + fn.upperCase(); + + FileName fullfn(fn); + + DirScan scan(fullfn); + + if(!int(scan)) + { + uploads.remove(); + + continue; + } + + fn.stripPath(); + + if(!quiet_dl) + io << '\n' << S_FILE_RECEIVED((char *)fn) << '\xFF'; + + Date date(TODAY); + Time time(NOW); + + File ul_log; + + if(!no_log) + { + ul_log.open(FileName(syspath,"UPLOAD.LOG"),fmode_text | fmode_append | fmode_write | fmode_copen); + + ul_log.printf("%02d-%s-%02d %02d:%02d:%02d Upload of %-13s by %s\n",date[0], + months_short[date[1]], + date[2], + time[0],time[1],time[2], + (char *)fn,user.name); + ul_log.close(); + } + + if(extra_log.len()) + { + ul_log.open(extra_log,fmode_text | fmode_append | fmode_write | fmode_copen); + ul_log.printf("U 0 %s %ld NO\n",(char *)fullfn,scan.size()); + ul_log.close(); + } + + if(!pvt && cfg.checkdupes && file_in_index(fn) && !quiet_dl) + { + dupes_found = TRUE; + + if(cfg.killdupes) + { + unlink(fullfn); + + io << S_DUPLICATE_UPLOAD_REMOVED; + } + else + { + io << S_DUPLICATE_UPLOAD; + } + + LOG(1,"Upload-%c %s (DUPE)",p.key,(char *)fn); + + uploads.remove(); + } + else + { + if(!no_log) + { + if(pvt) + LOG(1,"Upload-%c %s (Personal)",p.key,(char *)fn); + else + LOG(1,"Upload-%c %s",p.key,(char *)fn); + } + + total_files++; + total_bytes += scan.size(); + + uploads++; + } + } + + if(cfg.virScanCommand[0]) + { + LinkedList failed_files; + + io << "\n\n" << S_SCANNING_UPLOADS; + + for(uploads.rewind() ; !uploads.eol(); ) + { + FileName curfile(uploadpath,uploads.get()); + + DirScan scan(curfile); + + String cmd = String("*Q*N") + cfg.virScanCommand; + + cmd.replace("@@",curfile); + + shell(replace_stringvars(cmd)); + + if( (cfg.virScanType && !access(cfg.virScanSemaphore,0)) + || (!cfg.virScanType && returnvalue) + ) + { + LOG(1,"File '%s' rejected by upload scanner",(char *)curfile); + + if(cfg.virScanFailedAction == VIRSCAN_ACTION_DELETE) + { + unlink(curfile); + } + + if(cfg.virScanFailedAction == VIRSCAN_ACTION_MOVE) + { + MoveFailedFile(curfile); + } + + uploads.remove(); + + failed_files.add(curfile); + + total_files--; + total_bytes -= scan.size(); + } + else + { + uploads++; + } + } + + if(failed_files.count()) + { + io << "\n\n" << S_FOLLOWING_FILES_REJECTED << "\n\n"; + + for(failed_files.rewind() ; !failed_files.eol() ; failed_files++) + { + FileName fn = failed_files.get(); + + fn.stripPath(); + + io << " " << (char *)fn << '\n'; + } + + io << '\n' << S_PRESS_ENTER_TO_CONTINUE; + } + } + + + if(total_files) + { + if(!pvt) + { + user.numUploads += total_files; + user.kbUploaded += int(total_bytes/1024L); + + if(!quiet_dl) + io << "\n\n" << S_X_FILES_UPLOADED(form("%d",total_files),form("%ld",total_bytes/1024L)) << '\n'; + } + } + else + { + if(!quiet_dl) + io << "\n\n" << S_NO_FILES_UPLOADED << '\n'; + + return; + } + + if(!ask_desc) return; + + if(dupes_found && !quiet_dl) showansascrip("DUPESFND"); + + if(!pvt && uploads.count()) + io << '\n' + << S_PLEASE_ENTER_UPLOAD_DESCRIPTIONS + << "\n\n"; + + for(uploads.rewind() ; !uploads.eol(); uploads++) + { + io.clearinput(); + + if(pvt) + { + User tmpuser; + char username[36]; + + for(;;) + { + io << '\n' << S_ENTER_USERNAME_FOR_PERSONAL_FILE((char *)uploads.get()); + io.read(username,35,READMODE_UPFIRST); + + if(!strcmpl(username,"Sysop")) strcpy(username,cfg.sysopname); + if(tmpuser.search(username)) break; + io << "\n\n" << S_USER_NOT_LOCATED << '\n'; + } + + File f(FN_PVTFILES_PB,fmode_rw | fmode_copen); + if(!f.opened()) + { + LOG("Unable to create PVTFILES.PB"); + continue; + } + + _PrivateFile pvt; + + for(int rec=0;;rec++) + { + if(f.read(&pvt,sizeof(pvt))!=sizeof(pvt)) break; + + if(!pvt.fname[0]) break; + } + strcpy(pvt.fname,uploads.get()); + strcpy(pvt.to,username); + strcpy(pvt.from,user.name); + pvt.date.today(); + f.seek(long(rec)*sizeof(pvt)); + f.write(&pvt,sizeof(pvt)); + } + else + { + FileName fbbs; + char descr[41]; + + io << '\n' << S_ENTER_DESCRIPTION_LINE_1((char *)uploads.get()); + + io.clearinput(); + io.read(descr,40); + + if(descr[0]!='/') + fbbs(uploadpath,"FILES.BBS"); + else + fbbs(uploadpath,"FILES.PVT"); + + File tf(fbbs,fmode_write | fmode_append | fmode_text | fmode_copen); + tf << form("%-12s %s\n",(char *)uploads.get(),((descr[0]=='/') ? (&descr[1]) : descr)); + while(descr[0]) + { + io << '\n' << S_ENTER_DESCRIPTION_LINE_X; + io.read(descr,40); + if(descr[0]) tf << '+' << ((descr[0]=='/') ? (&descr[1]) : descr) << '\n'; + } + + if(cfg.addUploaderName) + tf << '+' << "[Uploader: " << user.name << ']\n'; + } + } + + io << '\n'; +} + + +bool +file_in_index(FileName fn) +{ + if(cfg.ignore_ext) fn.stripExt(); + + File idx; + + if(idx.open(FileName(syspath,"FILESIDX.PB") , fmode_read , cfg.fastmode ? 8192:2048)) + { + FilesIdx fidx; + + for(;;) + { + if(idx.read(&fidx,sizeof(fidx)) != sizeof(fidx)) break; + + if(cfg.ignore_ext) + if(strchr(fidx.name,'.')) + *strchr(fidx.name,'.') = '\0'; + + if(!stricmp(fidx.name,fn)) return TRUE; + } + } + + return FALSE; +} + +bool +check_dszlog(protocol& p , LinkedList& downloads , LinkedList& uploads) +{ + File dszlog; + int i; + char s[200]; + + if(dszlog.open(p.logfile,fmode_read | fmode_text)) + { + + while(dszlog.readLine(s,199)) + { + bool found_upload = FALSE; + bool found_download = FALSE; + + strip_linefeed(s); + + char *ptr=strtok(s," "); + + while(ptr) + { + if(!strcmp(ptr,p.dlkeyword)) + { + found_download = TRUE; + break; + } + if(!strcmp(ptr,p.ulkeyword)) + { + found_upload = TRUE; + break; + } + + ptr = strtok(NULL," "); + } + + if(ptr == NULL) continue; + + for(i=0;i& files) +{ + File tf; + + if(!tf.open(p.ctlfile,fmode_create | fmode_text)) + return FALSE; + + for(files.rewind() ; !files.eol() ; files++) + { + if(p.flags&PROT_BIM) + { + tf << form("U %-80s%-160s",(char *) files.get().name,EMPTY_STRING); + } + else + { + for(int j=0;j& files , LinkedList& downloads , LinkedList& uploads ) +{ + if(!strchr(p.dlcom,'#')) + if(!create_dszctl(p , files)) return FALSE; + + String command; + + if(p.dlcom[0] != '@') + command << "*N*Q"; + + files.rewind(); + + for(int i=0;i& dirlist) +{ + File f(FileName(syspath,form("FA_%d.CTL",area)),fmode_read | fmode_text); + + dirlist.rewind(); + + dirlist.add(String(firstdir)); + + for(;;) + { + char str[128]; + + if(!f.readLine(str,127)) break; + + append_backspace(str); + + dirlist.add(String(str)); + } +} + +bool +is_freefile(char *fname) +{ + File fp(FileName(syspath,"FREEFILE.CTL"),fmode_read | fmode_text); + + if(!fp.opened()) return FALSE; + + for(;;) + { + char s[100]; + + if(!fp.readLine(s,99)) return FALSE; + + strip_linefeed(s); + strip_leading(s); + strip_trailing(s); + + if(matchfile(s,fname)) return TRUE; + } +} + +static void +MoveFailedFile(FileName full_fn) +{ + FileArea fa; + FileName fn = full_fn; + + fn.stripPath(); + + if(fa.read(cfg.virScanFailedArea)) + { + ts_CopyFile(full_fn,fa.filepath,4096); + unlink(full_fn); + + File f(fa.listpath,fmode_rw|fmode_append|fmode_copen); + f.printf("%-12s Uploaded by %s\n",(char *)fn,user.name); + } +} diff --git a/UL.OBJ b/UL.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..589c5367671676ee6c90f2c084146fae7d120bef GIT binary patch literal 20543 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 +#include "proboard.hpp" + +void +show_graph(char *data) +{ + run_sdkfile(String("_GRAPH ") + data); +} + +void +usage_graph(char *data) +{ + show_graph(form("HOURLY %s",data)); +} + +void +days_graph(char *data) +{ + show_graph(form("LASTDAYS %s",data)); +} + +void +weeks_graph(char *data) +{ + show_graph(form("WEEKLY %s",data)); +} diff --git a/USAGE.OBJ b/USAGE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..9efab1b10dff12ccc2f3d07764ea5633eddfcfe9 GIT binary patch literal 747 zcmZ9K&1=(e9LAsYC9SrOZBFNDRH!nT4n-|HCTp@59JDk|HHQ&nlD^QcFG<&SI}IjU ztl~fr84C66!RwA5db9tAI%G!~+DrT;ZMW6KFFfDp^L-w|FWC*?!j`Gz^kubL{n5S# zU@je9iG)@wMoB4aq3F_5=-%?(LE8)bb)(s)flpMLTWR}%0a+&&LBG7g*1OxlMNwd5 zyqxAAr#;aG$9rXtO|u^7A+HL8n;e>pr4nK?_1=fYuW-33lc@M2JYMRjtpM6b1rBKV zEtlmMU%kZ)V{DaWQ!8c*B|Tg#@2ChcYech#t}t0#VPw(N4W^`+bwO7QH7`_k6_-Y~ zxovU<13@NRF*ZrOwWI1J6Mm{_TDZ2^iU@V1P|n#trkUYDs8%<^wFWMqIjZeAYwZ3! zKut4dzS5L)hEmNBUkf;$6n8$vd7=!k*xi(8Yd2vq(hgpd`jt&ahj$(-#5OI z{&Be<<08^Kb@a@VqzOJd$+iFa!X)P$e&@pj^uJ`hz0Y%$tN(_Gjx8!g6m219e0`3b z`x&Z#Geh_1GydKb0oS{?-~!}WicQ8th$qC +#include +#include +#include +#include "proboard.hpp" + + + +void usereditor( char * ) +{ + User rec; + int cur_user; + char *loglevels[] = { + "Friend", + "Normal", + "Suspicious", + "Dangerous" }; + + + for ( cur_user = num_users ; ; ) + { + rec.read(cur_user-1); + + io << form( "\f\n\6User record \1%d", + cur_user ); + + + if ( rec.uFlags & UFLAG_DELETED ) + { + io << "\7 [DELETED]"; + } + + + if ( rec.uFlags & UFLAG_NOKILL ) + { + io << "\7 [NOKILL]"; + } + + + io << "\n\n"; + + io << form( "\6UserName : \3%s\n\n" + "\6City : \3%s\n" + "\6Password : \3%s\n\n", + rec.name, + rec.city, + rec.passWord ); + + io << form( "\6Level : \3%-5u " + "\6Loglevel : \3%s\n\n" + "\6# Calls : \3%-5ld " + "\6Last Call: \3%02d-%s-%04d at %02d:%02d:%02d\n", + rec.level, + loglevels[ rec.logLevel ], + rec.timesCalled, + rec.lastDate[ 0 ], + months_short[ rec.lastDate[ 1 ] ], + rec.lastDate[ 2 ] + 1900, + rec.lastTime[ 0 ], + rec.lastTime[ 1 ], + rec.lastTime[ 2 ] ); + + io << "\n\n\6<\3+/-\6> <\3F\6>irst <\3L\6>ast Le<\3v\6>el <\3Q\6>uit <\3S\6>earch <\3D\6>elete <\3N\6>oKill "; + + + char k = io.wait( "S+-FLVQDN\r" ); + + + switch ( k ) + { + case 'Q': + + return; + + + case 'D': + + rec.uFlags ^= UFLAG_DELETED; + + rec.write( FALSE ); + + break; + + + case 'N': + + rec.uFlags ^= UFLAG_NOKILL; + + rec.write( FALSE ); + + break; + + + case '+': + + if ( cur_user < num_users ) + { + cur_user++; + } + + break; + + + case '-': + + if ( cur_user > 1 ) + { + cur_user--; + } + + break; + + + case 'F': + + cur_user = 1; + + break; + + + case 'L': + + cur_user = num_users; + + break; + + + case 'V': + + io << "\n\nNew level: \3"; + + io.read( int( rec.level ) ); + + rec.write( FALSE ); + + break; + + + case 'S': + { + char s[ 36 ]; + int i; + + + io << "\n\nSearch for string: \3"; + + io.read( s, + 36, + READMODE_UPFIRST ); + + if ( ! s[ 0 ] ) + { + break; + } + + + io << "\7\n\nSearching..."; + + + for ( i = 0; i < num_users; i++ ) + { + rec.read( i ); + + + if ( strstrl( rec.name, s ) ) + { + cur_user = i + 1; + + break; + } + } + + + if ( i == num_users ) + { + cur_user = 1; + } + } + break; + } + } +} + + + +void edit_user() +{ + user.write( FALSE ); + + shell( String( form( "*Q*N*SPROCFG.EXE UE %d", + user_recnr + 1 ) ) ); + + user.read( user_recnr ); +} + diff --git a/USERED.OBJ b/USERED.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..8c623cfd73d32eb4b651ec63bc34e755eedf081f GIT binary patch literal 2403 zcmZ`*eQZ-z6hH61^>wrxENm+zVtt7n&dpU|G6~G3u(qJou3Nju&_L^6_%wydx)zoFXt+)i^qF(0RJ)2 z)x!dup?vmbJ$is~3`YvPe$(Y`J8A_mHhLWm4!hsyX!7OM*4Z68zkQ`|Wsc_jtGr$Y zjkT|CsB843j_aYckD(cA3%1sLOy%e(k+c9OhB}-@fj-a|2j5eiJkTMV$zZeFipRCX?3&D07bQ%DIzdh2X zH5DkdZ4N7nD2ZX4ECfQ9&Nfj5Q#Og}Vk8Jf)4ZiwQd+fXXG(MhL^VSiZB9`VR-&eD zGZfhTjhKb4OBPkZ(uqp5Cz#Bf60Rf@VQCJkvZZq?6i*ORKvBIyKn}KgJA@$QPteMC z#V*Q_hY87TIODb*K>b<& zmWm!NO?8h_C0J|M)w$-F6CNM4XLL7A1$ncA%rSo!gIN^aC%J6Y{NOmMHc!o5kd;V` z1`_*JYBDu8dh^iLg$MME6=&=GgmFi(QblSaWPVYqQL;*Qtkh zy~mk4;7lFg?|g7^7JOC4SflzC&If94_ceO-pX4mcnr@k!)KT5Nr73h}DLAL?(qxI? zQ73$t{du05$@k)dqd&3;tl{Ks~Jysb_JW{S$1So?Z3r4GJ zEMenSRUb{*qJNI*SFfl6csoISguyk8L2_2gzcKpjhHuNE0_@-f7r3DwyugEluA`r! zo9K=7EA#^TFfGvdGq(r;MR(OND*4&{tdAP{i_h!( z9sB$4VE@o9-q`meK|c^QglGWK&}F``?-F75@x^^RO%&bNg>GmQUp%x5?K!?^D4#DH z{2T2yZ;bzhV+OzD3*$pLX7CGSK0_vcmY~y!P7!pBpq+?NN*9+2T8GF>#;(D!cET*@ z=fuk~-N6!`ia$-50>0qt>9Z6KP=GH=e7Axb?Rhk(EDG%*aO2B8Ab~fcbcjJQ98tg? zXm1f@(#kWigC +#include +#include +#include "proboard.hpp" + +const OFF = 0; +const ON = 1; +const TOGGLE = 2; +const ASK = 3; +const NONE = 4; +const SAVE = 0x10; +const RESTORE = 0x20; +const QUIET = 0x40; + +static int _near +toggle_type(char *data) +{ + String param[5]; + int num_para; + int ret=TOGGLE; + char *strings[] = { "OFF", "ON" , "TOGGLE" , "ASK" , "SAVE" , "RESTORE" , "/Q", NULL }; + + num_para = parse_data(data,param); + + for(int i=0;i=0 && a_rec!=user_recnr) || (u_rec>=0 && u_rec!=user_recnr)) + { + LOG(1,"Duplicate alias: '%s'",tmp); + + io << "\n\n" << S_ALIAS_BEING_USED << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + + strcpy(user.alias,tmp); + + LOG(1,"Alias changed to '%s'",user.alias); +} + + + +void password_change( char * ) +{ + char pass[ 16 ]; + + + io << "\f\n" + << S_CHANGE_PASSWORD_TITLE; + + + do + { + io << "\n\n" + << S_ENTER_NEW_PASSWORD( form( "%d", cfg.min_passlength ) ); + + io.read( pass, + 15, + READMODE_PWD ); + + + if ( strlen( pass ) < cfg.min_passlength ) + { + io << "\n\n" + << S_ILLEGAL_PASSWORD + << '\n'; + + sleep( 2 ); + + return; + } + + + io << "\n\n" + << S_ASK_PASSWORD_AGAIN; + + io.read( user.passWord, + 15, + READMODE_PWD ); + } + while( strcmpl( pass, user.passWord ) ); + + + user.passWordCRC = RaCrc( user.passWord ); + + + io << "\n\n" + << S_PASSWORD_CHANGED_SUCCESSFULLY + << "\n\n" + << S_PRESS_ENTER_TO_CONTINUE; + + + LOG( 1, + "Password changed to '%s'", + user.passWord ); +} + + + +void lines_change(char *) +{ + char newlen[4]; + + io << "\f\n" << S_CHANGE_SCREENLENGTH_TITLE_AND_PROMPT(form("%d",user.screenLength)); + + io.read(newlen,2,READMODE_DIGITS); + + if(atoi(newlen) >= 5) + user.screenLength = atoi(newlen); + + LOG(1,"Screenlength changed to %d",user.screenLength); +} + +#define TOGGLE_DISPLAY(var) { io << ((var) ? string_enabled : string_disabled); io << S_PRESS_ENTER_TO_CONTINUE; } + +void +ansi_toggle(char *data) +{ + static bool prev = FALSE; + + int action = toggle_type(data); + + if(action & SAVE) prev = (user.uFlags & UFLAG_ANSI) ? TRUE:FALSE; + + switch(action & 0xF) + { + case ON : user.uFlags |= UFLAG_ANSI; + break; + case OFF : user.uFlags &= ~UFLAG_ANSI; + break; + case TOGGLE: user.uFlags ^= UFLAG_ANSI; + break; + case ASK : io << '\n' << S_ASK_ANSI; + if(io.ask()) user.uFlags |= UFLAG_ANSI; + else + { + if(ansi_mode) io << "\x1b[0m"; + user.uFlags &= ~UFLAG_ANSI; + } + io << '\n'; + break; + } + + if(action & RESTORE) + { + if(prev) user.uFlags |= UFLAG_ANSI; + else user.uFlags &= ~UFLAG_ANSI; + } + + if(!(action & QUIET)) + { + if(ansi_mode) LOG(1,"ANSI enabled"); + else LOG(1,"ANSI disabled"); + + if(ansi_mode) + io << '\n' << S_ANSI_ENABLED; + else + io << '\n' << S_ANSI_DISABLED; + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + updatemenu = TRUE; +} + +void +toggle_avatar(char *data) +{ + static bool prev = FALSE; + + int action = toggle_type(data); + + if(action & SAVE) prev = (user.uFlags & UFLAG_AVATAR) ? TRUE:FALSE; + + switch(action & 0xF) + { + case ON : user.uFlags |= UFLAG_AVATAR; + break; + case OFF : user.uFlags &= ~UFLAG_AVATAR; + break; + case TOGGLE: user.uFlags ^= UFLAG_AVATAR; + break; + case ASK : io << '\n' << S_ASK_AVATAR; + if(io.ask()) user.uFlags |= UFLAG_AVATAR; + else user.uFlags &= ~UFLAG_AVATAR; + io << '\n'; + break; + } + + if(action & RESTORE) + { + if(prev) user.uFlags |= UFLAG_AVATAR; + else user.uFlags &= ~UFLAG_AVATAR; + } + + if(!(user.uFlags & UFLAG_AVATAR)) user.uFlags &= ~UFLAG_AVTPLUS; + + if(!(action & QUIET)) + { + if(avatar) LOG(1,"AVATAR enabled"); + else LOG(1,"AVATAR disabled"); + + if(avatar) + io << '\n' << S_AVATAR_ENABLED; + else + io << '\n' << S_AVATAR_DISABLED; + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + updatemenu = TRUE; +} + +void +toggle_avtplus(char *data) +{ + static bool prev = FALSE; + + int action = toggle_type(data); + + if(action & SAVE) prev = (user.uFlags & UFLAG_AVTPLUS) ? TRUE:FALSE; + + switch(action & 0xF) + { + case ON : user.uFlags |= UFLAG_AVTPLUS; + break; + case OFF : user.uFlags &= ~UFLAG_AVTPLUS; + break; + case TOGGLE: user.uFlags ^= UFLAG_AVTPLUS; + break; + case ASK : io << '\n' << S_ASK_AVATAR_PLUS; + if(io.ask()) user.uFlags |= UFLAG_AVTPLUS; + else user.uFlags &= ~UFLAG_AVTPLUS; + io << '\n'; + break; + } + + if(action & RESTORE) + { + if(prev) user.uFlags |= UFLAG_AVTPLUS; + else user.uFlags &= ~UFLAG_AVTPLUS; + } + + if(!(action & QUIET)) + { + if(avtplus) LOG(1,"AVT/0+ enabled"); + else LOG(1,"AVT/0+ disabled"); + + if(avtplus) + io << '\n' << S_AVTPLUS_ENABLED; + else + io << '\n' << S_AVTPLUS_DISABLED; + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + updatemenu = TRUE; +} + +void +cls_toggle(char *data) +{ + static bool prev = FALSE; + + int action = toggle_type(data); + + if(action & SAVE) prev = (user.uFlags & UFLAG_CLEAR) ? TRUE:FALSE; + + switch(action & 0xF) + { + case ON : user.uFlags |= UFLAG_CLEAR; + break; + case OFF : user.uFlags &= ~UFLAG_CLEAR; + break; + case TOGGLE: user.uFlags ^= UFLAG_CLEAR; + break; + case ASK : io << '\n' << S_ASK_CLS; + if(io.ask()) user.uFlags |= UFLAG_CLEAR; + else user.uFlags &= ~UFLAG_CLEAR; + io << '\n'; + break; + } + + if(action & RESTORE) + { + if(prev) user.uFlags |= UFLAG_CLEAR; + else user.uFlags &= ~UFLAG_CLEAR; + } + + if(!(action & QUIET)) + { + if(cls_mode) LOG(1,"Screen clearing enabled"); + else LOG(1,"Screen clearing disabled"); + + if(cls_mode) + io << '\n' << S_CLS_ENABLED; + else + io << '\n' << S_CLS_DISABLED; + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + updatemenu = TRUE; +} + +void +pause_toggle(char *data) +{ + static bool prev = FALSE; + + int action = toggle_type(data); + + if(action & SAVE) prev = (user.uFlags & UFLAG_PAUSE) ? TRUE:FALSE; + + switch(action & 0xF) + { + case ON : user.uFlags |= UFLAG_PAUSE; + break; + case OFF : user.uFlags &= ~UFLAG_PAUSE; + break; + case TOGGLE: user.uFlags ^= UFLAG_PAUSE; + break; + case ASK : io << '\n' << S_ASK_PAUSE; + if(io.ask()) user.uFlags |= UFLAG_PAUSE; + else user.uFlags &= ~UFLAG_PAUSE; + io << '\n'; + break; + } + + if(action & RESTORE) + { + if(prev) user.uFlags |= UFLAG_PAUSE; + else user.uFlags &= ~UFLAG_PAUSE; + } + + if(!(action & QUIET)) + { + if(pause_mode) LOG(1,"Page pausing enabled"); + else LOG(1,"Page pausing disabled"); + + if(pause_mode) + io << '\n' << S_PAUSE_ENABLED; + else + io << '\n' << S_PAUSE_DISABLED; + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + updatemenu = TRUE; +} + +void +fsed_toggle(char *data) +{ + static bool prev = FALSE; + + int action = toggle_type(data); + + if(action & SAVE) prev = (user.uFlags & UFLAG_FSED) ? TRUE:FALSE; + + switch(action & 0xF) + { + case ON : user.uFlags |= UFLAG_FSED; + break; + case OFF : user.uFlags &= ~UFLAG_FSED; + break; + case TOGGLE: user.uFlags ^= UFLAG_FSED; + break; + case ASK : io << '\n' << S_ASK_FSED; + if(io.ask()) user.uFlags |= UFLAG_FSED; + else user.uFlags &= ~UFLAG_FSED; + io << '\n'; + break; + } + + if(action & RESTORE) + { + if(prev) user.uFlags |= UFLAG_FSED; + else user.uFlags &= ~UFLAG_FSED; + } + + if(!(action & QUIET)) + { + if(fsed_mode) LOG(1,"FsEd enabled"); + else LOG(1,"FsEd disabled"); + + if(fsed_mode) + io << '\n' << S_FSED_ENABLED; + else + io << '\n' << S_FSED_DISABLED; + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + updatemenu = TRUE; +} + +void +hotkey_toggle(char *data) +{ + static bool prev = FALSE; + + int action = toggle_type(data); + + if(action & SAVE) prev = (user.uFlags & UFLAG_HOTKEYS) ? TRUE:FALSE; + + switch(action & 0xF) + { + case ON : user.uFlags |= UFLAG_HOTKEYS; + break; + case OFF : user.uFlags &= ~UFLAG_HOTKEYS; + break; + case TOGGLE: user.uFlags ^= UFLAG_HOTKEYS; + break; + case ASK : io << '\n' << S_ASK_HOTKEYS; + if(io.ask()) user.uFlags |= UFLAG_HOTKEYS; + else user.uFlags &= ~UFLAG_HOTKEYS; + io << '\n'; + break; + } + + if(action & RESTORE) + { + if(prev) user.uFlags |= UFLAG_HOTKEYS; + else user.uFlags &= ~UFLAG_HOTKEYS; + } + + if(!(action & QUIET)) + { + if(!stack_mode) LOG(1,"Hotkeys enabled"); + else LOG(1, "Hotkeys disabled"); + + if(!stack_mode) + io << '\n' << S_HOTKEYS_ENABLED; + else + io << '\n' << S_HOTKEYS_DISABLED; + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + updatemenu = TRUE; +} + +void +ibm_toggle(char *data) +{ + static bool prev = FALSE; + + int action = toggle_type(data); + + if(action & SAVE) prev = (user.uFlags & UFLAG_NOIBM) ? TRUE:FALSE; + + switch(action & 0xF) + { + case OFF : user.uFlags |= UFLAG_NOIBM; + break; + case ON : user.uFlags &= ~UFLAG_NOIBM; + break; + case TOGGLE: user.uFlags ^= UFLAG_NOIBM; + break; + case ASK : io << '\n' << S_ASK_IBMCHARS; + if(!io.ask()) user.uFlags |= UFLAG_NOIBM; + else user.uFlags &= ~UFLAG_NOIBM; + io << '\n'; + break; + } + + if(action & RESTORE) + { + if(prev) user.uFlags |= UFLAG_NOIBM; + else user.uFlags &= ~UFLAG_NOIBM; + } + + if(!(action & QUIET)) + { + if(!no_ibm) LOG(1,"IBM graphics enabled"); + else LOG(1,"IBM graphics disabled"); + + if(!no_ibm) + io << '\n' << S_IBMCHARS_ENABLED; + else + io << '\n' << S_IBMCHARS_DISABLED; + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + updatemenu = TRUE; +} + + +void +user_list(char *data) +{ + bool aliases = FALSE; + + char s[40]; + + if(String(data) == "/H") + aliases = TRUE; + + io << "\f\n" << S_LIST_USERS_TITLE_AND_PROMPT; + + io.read(s,39,READMODE_UPALL); + + LOG(2,"User list requested. Search for \"%s\"",s); + + io << "\n\f"; + + user.list(s,aliases); + + io << '\n' << S_END_OF_USER_LIST << ' ' << S_PRESS_ENTER_TO_CONTINUE; +} + +void +ripfont_change(char *data) +{ + static byte prev = 0; + + int action = toggle_type(data); + + if(action & SAVE) prev = user.ripFont; + + switch(action & 0xF) + { + case OFF : user.ripFont = 1; + break; + case ON : user.ripFont = 0; + break; + case TOGGLE: user.ripFont = !user.ripFont; + break; + case ASK : io << '\n' << S_ASK_RIP_FONT; + user.ripFont = io.ask(0); + io << '\n'; + break; + } + + if(action & RESTORE) + { + user.ripFont = prev; + } + + if(!(action & QUIET)) + { + if(user.ripFont) LOG(1,"Large RIP font selected"); + else LOG(1,"Small RIP font selected"); + + if(user.ripFont) + io << '\n' << S_LARGE_RIP_FONT_SELECTED; + else + io << '\n' << S_SMALL_RIP_FONT_SELECTED; + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + updatemenu = TRUE; +} + +void +rip_toggle(char *data) +{ + static bool prev = FALSE; + + int action = toggle_type(data); + + if(action & SAVE) prev = (user.uFlags & UFLAG_NORIP) ? TRUE:FALSE; + + switch(action & 0xF) + { + case OFF : user.uFlags |= UFLAG_NORIP; + break; + case ON : user.uFlags &= ~UFLAG_NORIP; + break; + case TOGGLE: user.uFlags ^= UFLAG_NORIP; + break; + case ASK : io << '\n' << S_ASK_RIP; + if(!io.ask()) user.uFlags |= UFLAG_NORIP; + else + { + if(ansi_mode) io << "\x1b[0m"; + user.uFlags &= ~UFLAG_NORIP; + } + io << '\n'; + break; + } + + if(action & RESTORE) + { + if(prev) user.uFlags |= UFLAG_NORIP; + else user.uFlags &= ~UFLAG_NORIP; + } + + if(!(action & QUIET)) + { + if(user.uFlags & UFLAG_NORIP) + { + io << '\n' << S_RIP_DISABLED; + LOG(1,"RIP disabled"); + } + else + { + io << '\n' << S_RIP_ENABLED; + LOG(1,"RIP enabled"); + } + + io << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + } + + updatemenu = TRUE; +} + +void +change_dateformat(char *data) +{ + if(data) + { + io << "\f\n"; + + io << S_CHANGE_DATE_FORMAT_TITLE(date_formats_long[user.dateFormat]); + + io << "\n\n"; + } + + io << S_SELECT_DATE_FORMAT_TITLE << "\n\n"; + + io << "\3 1. \6" << date_formats_long[0] << '\n'; + io << "\3 2. \6" << date_formats_long[1] << '\n'; + io << "\3 3. \6" << date_formats_long[2] << '\n'; + + io << '\n' << S_SELECT_DATE_FORMAT_PROMPT; + + char tmp[2]; + + io.read(tmp,1); + + if(strlen(tmp)<1 || atoi(tmp) < 1 || atoi(tmp) > 3) return; + + user.dateFormat = atoi(tmp) - 1; + + if(data) + LOG(1,"Date format changed to '%s'",date_formats_long[user.dateFormat]); +} diff --git a/USERSET.OBJ b/USERSET.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..ed8ec56ab9db0af716eb9ef2e008827f3303c8db GIT binary patch literal 14474 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 +#include +#include +#include "proboard.hpp" + +static void _near update_right_window(); +static void _near update_bottom_window() {} + +static Window w; + +void +update_user_window() +{ + if(tsw_hsize>=132) update_right_window(); + else if(tsw_vsize>=43) update_bottom_window(); +} + +static void _near +update_right_window() +{ + static bool opened = FALSE; + + if(!opened) + { + opened = TRUE; + SCREEN.change(1,1,80,tsw_vsize-1); + w.open(81,1,tsw_hsize,tsw_vsize-1,0x70,NOSAVE); + w.direct(3,0," USER "); + } + + if(user_recnr<0) return; + + char s[80]; + + s[0] = ' '; + user.aFlags.flagstostr(&s[1]); + s[33] = ' '; + s[34] = 0; + + w.direct(14,0,s); + + tsw_cursoroff(); + w.setPos(1,1); + sprintf(s,"\n Name : %-30.30s\n",user.name); + w << s; + sprintf(s," Handle : %-30.30s\n",user.alias); + w << s; + sprintf(s," City : %-30.30s\n",user.city); + w << s; + sprintf(s," Country/St : %-30.30s\n",user.country); + w << s; + sprintf(s," Level : %-5u \n",user.level); + w << s; + sprintf(s," VoicePhone : %-30.30s\n",user.voicePhone); + w << s; + sprintf(s," DataPhone : %-30.30s\n\n",user.dataPhone); + w << s; + sprintf(s," Downloads : %-5ld (%5ld Kb) ANSI: [%c]\n",user.numDownloads,user.kbDownloaded,(ansi_mode)?'û':' '); + w << s; + sprintf(s," Uploads : %-5ld (%5ld Kb) FSED: [%c]\n",user.numUploads,user.kbUploaded,(fsed_mode)?'û':' '); + w << s; + sprintf(s," # Messages : %-5ld PAUSE: [%c]\n",user.msgsPosted,(pause_mode)?'û':' '); + w << s; + sprintf(s," # Calls : %-5ld IBM: [%c]\n",user.timesCalled,(!no_ibm)?'û':' '); + w << s; + sprintf(s," Time online: %-3d min STACKING: [%c]\n\n",timer.online(),(stack_mode)?'û':' '); + w << s; + sprintf(s," Last Call : %2d-%3.3s-19%d at %02d:%02d:%02d\n\n\n\n",user.lastDate[0],months_short[user.lastDate[1]],user.lastDate[2], + user.lastTime[0],user.lastTime[1],user.lastTime[2]); + w << s; + + sprintf(s," # Calls: %-5ld # Msgs: ----- # Users: %-5d\n",totalcalls,num_users); + w << s; + sprintf(s," Last : %-36.36s\n" + " [%02d:%02d - %02d:%02d]",lastcaller.name,lastcaller.timeIn[0],lastcaller.timeIn[1],lastcaller.timeOut[0],lastcaller.timeOut[1]); + w << s; + + + String line('Ä',tsw_hsize-84); + line.insert(0,"Ç"); + line << "¶"; + + w.direct(0,18,line); + w.direct(3,18," SYSTEM "); + + tsw_cursoron(); + SCREEN.moveCursor(0,0); // Trick to update physical cursor +} + diff --git a/USERWIN.OBJ b/USERWIN.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..b67d79f2f2f00f03860b43b9de196de4cbb3ef91 GIT binary patch literal 3868 zcma)9eQX=$8Gr8l5o0H58d8r!YmSgqWmQ6p)u^pH>cn>1tWDy^&b1i}SI532X3p98 z&Q9C0X(&jI2uz)XP=qp(itUdv5GkP6n5MTL*9(=?J0ehN1rS%Yy**!(R8$iM|2B=RWDvI|p5E zgW&4+b?Y@D^mx5Gyo^HMK%Y-AktBmraG#_xNp0*pJTy4$S)H$goqsp5I_3~+NBUX4 zfmtT)O)%CmPm*Q?(>)AR(99O*^H+>epJ(&B<1dV}MnMTpi7{vprXrFuDGTysB&L8x z2>WFv;17qgRDD-p#XCbkSM4kBwo9T6!UlEk*B6JT-l zhQeZZO!Pa(VT(f;MvjA0ctw9KFzJno0cco<l|{s2Qc4>kQ9teI|7q_X#$gl@P{eZ(O?M6RtP1p<|5oS7M3RqkxG~> zDxQc;RInC#Q;~$|jK|~%rbWD|hzG(ES({jE5s5@asgOJ#2uY{U2I2wC7{|Y|SKC;C z>Q7+NUVlRDiI0!tGPI2a3+QHtB2NneEnQ@MoQO@85XMhHqu?4G?m6ZbdIpDF?jgJp z$E%db=dTO3{`7Lq0$A&Kr7a;R*$w+I*4h`^>Y zxL#}pO`8<5LSPc)D27zV@rL8H#4xUrlz@L;Y6f5|4#DelxxE5TBWHlsGUyx}An+Fk z_}%&K$h11*(I6IE=sVnacz@B3n`vlKr)L1%!*idE_P>wv*~bB%gJ%ra8sVmS1_!&I z(OvsvesqN>GoSE_0PlijIet2gdy=^TaKw}JfG5cmE?W}7^9t?I8MS^1JowMPZ2z@q z2$g&n3;8a9qzUn;NAuOjE72l>x;cVMaOTl z#iXWm?+Tah%>r6p*8()&5kRZ1R=p-$QcqkgPjfC#LmN~Uhs2#keCRHSFB5V9T@c5J zh^z1=sq{Qi48 zp0AtNwpwiqZkO7ILNL$&4K}=BV%M(o+cQ_KjA3n!-c}PsmFD0pavVB;F_SOJZF{);q-dF|rnjMRlZKB5|I?3nUUGVklOhLjE}MPa=Pi z_(#chn1qwWArg;}Xh*TS9r;^{Z$Unb{M6?N=Wg*$sed4x`R%P_&CD-1Rp}Ui{L#3??kwbU@O861k+k& z^ZaJ@Q-rgBK9J~Tk`kS{2F_cp4PUcv2?POH-lD2EknTt50CYy_#G~_ z47TJwl*YnVJt|r@mX9Zw;f=g!NhRX#Vg@`F94wtUm7v*{?9t+tY5Bx|^NG)r&D!x+ zelFm7X-m3T4;eNbdfFr~v^L%H32UN_U75}}ceQYgm*b9%jIQ9(T?rH(2jwuv(UoTx zu0!sxyfyV_?3~N<#&8q*hVk`fJ-=uQNf+A%bw$#)ERWm#?duQu9H@#P7RVcWo3-n6G-q9!HtB2NXUMb->&YU9rBJb8je!h5|W$`6~qt6Bo%-n!~O5_T^16+HDeRrpQw`>OP2!4x%3zjO}8B)&F z;yWX8Nr|0#)T?k+{9|H54432YjdK{BkAwoEXEGv*)nt6B^cUbt935PdX(=4>2W3t( z>3^@;bE>HzYqKqqFl;Q3|#u( z(~YZE;o+o@6tdEcshS$UzMlS)2fajdh3^<`je^`%NUHMj`nsJ*`vwlLyWm8Q`DKNp zL|T@|f*tMlPP^Q(XMcN;^DA8Y?#F@$O2Ujk;2zfaa;YesnmmES4*GFurVplqIath4 zn1j8m)7~YU%OyQg3e9ztbB#g +#include "proboard.hpp" + +void +version_info(char *) +{ + LOG(2,"Version info requested"); + + io << "\f\n\7" + " ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n" + " ³ ProBoard version " VERSION; + + for(int i=0;i<54-strlen(VERSION);i++) io << ' '; + io << "³\n" + //io << "\1(c) 1990-1996 Philippe Leybaert \7³\n" + " ³ ³\n"; + io << "\7 ³ Copyright (c) 1990-1999 TeleGrafix Communications, Inc. ³\n"; + io << "\7 ³ All Rights Reserved ³\n"; + io << "\7 ³ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij\n" + "\7 ³ ³\n"; + + + //---------------------------- + // JDR: REGISTRATION REFERENCE + //---------------------------- + + if(registered) + { + char buf[ 80 ]; + + + if ( max_node_count == 0 ) + { + strcpy( buf, + form( buf, + "%s (Unlimited nodes)", + software_serial_number() ) ); + } + else + { + strcpy( buf, + form( "%s (%d nodes maximum)", + software_serial_number(), + max_node_count ) ); + } + io << "\7 ³ \7Registered to:\6 " << form("%-36s",registered_user_name() ) << "\7 ³\n" + "\7 ³ \6" << form("%-36s",cfg.bbsname ) << "\7 ³\n" + "\7 ³ \7Serial number:\6 " << form("%-48.48s", buf ) << "\7 ³\n" + "\7 ³ ³\n"; + } + else + { + io << " ³ \6UNREGISTERED EVALUATION VERSION ³\n" + "\7 ³ ³\n"; + } + + + io << "\7 ³ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij\n"; + + io << " ³ JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner, ³\n" + " ³ Mats Birch, Mats Wallin. ³\n" + " ³ ALL RIGHTS RESERVED. ³\n"; + io << "\7 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n\n " + << S_PRESS_ENTER_TO_CONTINUE; +} + diff --git a/VERSION.OBJ b/VERSION.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..115fe04fed496fbe80125a5fb802239c4c04d75a GIT binary patch literal 2630 zcmb_eU1%It6h5>6-A!AY#!ezw1^$1yOU&Kel|0^ z`6)^Z5e;ocizrfBNgo7XEQNrszO)as;Lk27qR{#xf>=#o`XbnZ@!Z{Qn%xFkVF&Kz zeBU|u+%xCSxo1vp1>dY>n6j>QC)4R$OS=J}DL&XAAOpIgh+2vac65-w?w;FAPJn;x zFt_9axX8rA{Y!3u+h~pys{V2|%zyX{Km*TmvC+tc5NBVBI|d_R)+vNT@sOi52?Md1 z9fvDC%taE>3m>_m?GMIgXAYq>(&KbEnQK%6aJd=ZITv`=Y-{$!88@>#Xh>7CnUM@B zC1g#>5HwMhT4rWpPtepSGjpOL2}sMLB4}Clm}F3$FE}0NKQ_{ zc0m>A1x-&$LQ>Ca8Sn}B+(T1vQa4Rmk@aB9F~yv2nZfn2^F9_yUvNlPq>v$r!AaO7 z#Dplv#$p0H5ob9e9uWp36YE7yMtOe@Aeys5 z^c+2+Ma$*S?Sg2DtuUUxzgKr$CRLnk$e%k=S##vbR{`kw{)M0CuKROu)~xmCe!P!) zoT>8V@#pj!=H!bQOVn6sQx0)GW z{whwzFOXlM{3YazpCGzO(RqsANAxa5rzmOyz`rFyfg1bP*~%)S$9ydZc%iDf242?nV%>q@;2++X2w;xg3RZX zxrEH8$XFjYGw#9%yvI6=8(L?mZV}N5ijGq>gGi-lnj!(ws}%7RvHW(6##nfc-(vM4 zU3dcZ`>1{orFZalYYPek%MOPPfG=Nmgcc4lq?xRQS4s*Ryl!&cs?&4DOIAqK&`6!2()(f1x(a!@@yKb>%lABu~Gvg zE#dQ3XSR= z8XkE4z8?CbW1**(4=^@x9BxyOrQ1o@hQh&m=_6yhIFprCGNP-roJ9Q5&^k#-OBvD} zIV>xhWOS});{kPiSj74nkg?Nul9K$gs3@{lTXSW15AYQlA1B=C@JKvH@c)A4cs9Jb kAL^}CcUS9`xoci8A)qfc0o-6V{w%(IArOh4!aFtdAFrA@E&u=k literal 0 HcmV?d00001 diff --git a/VIEWFILE.CPP b/VIEWFILE.CPP new file mode 100644 index 0000000..399a2fa --- /dev/null +++ b/VIEWFILE.CPP @@ -0,0 +1,30 @@ +#include +#include "proboard.hpp" + +void +view_named_file(char *data) +{ +io.color(7); +io.sendfile(data); +} + +void +view_file(char *data) +{ +String total(data); +char filename[13]; +io << '\n' << S_ENTER_FILENAME_TO_DISPLAY; +io.read(filename,12); +total << filename; + +io.color(7); +io.sendfile(total); +} + +void +view_file_wait(char *data) +{ +io.color(7); +io.sendfile(data); +io << '\n' << S_PRESS_ENTER_TO_CONTINUE; +} diff --git a/VIEWFILE.OBJ b/VIEWFILE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..a5846deab91b53cdedfd6f636a133acdaa3a54a4 GIT binary patch literal 980 zcmZ{jO=}ZT6o${u$0WAX4>1XTQL9ufREnh#x|}wdYCxJHGZ{swmvk~|2V#=Wq-iY( zN*4yJP!L3lqT(Ou&MaKGn65hAxN_Nrf=GXW3F>%e(l!aw#azyL-gC}<50`n=3v5MG zmvdTP9aT!D&FX0Y2uZPt=-^aQ&u0qR!Pv;i;P~iRqv{8!dttfC0K6wse4-ivXka-a zlz#fzm6z86dgKIudpdE8rxJfh^2L&I-cRF`(xlHl=#(gW@nhmQQpvQCdli7;VdC+U zE{tvh`23`=88HFUy~#k(_SoL^vtAOUr8$a@=D|y~BAnuKMZ?hYT9H$V`Jz6wxTHX& z1$8x(9a=1`DjM=LEpDiVth27GmB%2|l7{B;#)8Y+rytN&1-iLuY@Ec&Tn^4skqRkZ z6e&L=@hK`LX)HM-C1%n*ggKfvRGrIbjIyX^bY(#-sS5NQVB>)i*L1u?EbCffo;$pE z1@Gu@!E70qsC9))mI zC}i%dS+}{lGrr`zYlHx#*Y~#q!axl`*mT}^&1A+ukAD$Tb|q+6n0A4k-NEX${ZLbi zJfChH_5{rVfGhULMn4|E`nS3|C#H_-wm_({AYku)M+xhaj*-XN`fFEyci5_V+<`}C znDy_j)8hvGx0fCDfgSb0@wR7ouD)J^-3v0a8 +#include "proboard.hpp" + +int +wordwrap(char *s,String& str,int max) +{ + int spacepos=-1; + + if(strlen(s)<=max) return 0; + + for(int i=0;iGOHpvv)>bgqGyK)T%E0iG znW4Ocje%hyV~C4I2Rj49FQ9Uu5K!tBD^JBV0|o}(aQ`5e@F2&4_z>5K5Ef^D7gyGJ z7sn7s7BCU-6dcS9#B46^LH?lu-ZR)4H1;ttF*B9|Ssn}wEUb+D5EdIdBlj#e29Ezs z|CvL3k{P%i+%j`g9g9*E9nu&?9pXcaQ;QsO5{pZMQxl7lGlC0JlNorS!o`)vE}2CP z{0_k-MVWc&4mqiLDiwug48kx0m88Vtbd|!qimGG=_W0tGBA^Ne-U)IH42N!@%V*S15VsqU;hFYa=H#X+uK>2|G zWjz1OxWMK%AK?HQa9`~hJHu=BZnuBTZfp*iYP#e8^|^5{$FZp$b7y2g(jOW5GW&mg zT=&!1(^_*x8P2Q^V>vT9jP*=D5POHQoe>XXtLPAAV0giZk{;UUn)%=BVq#z@0RX0j BwE+MC literal 0 HcmV?d00001 diff --git a/WRITEMSG.CPP b/WRITEMSG.CPP new file mode 100644 index 0000000..905e87f --- /dev/null +++ b/WRITEMSG.CPP @@ -0,0 +1,384 @@ +#define Use_MsgBase + +#include +#include +#include +#include +#include "proboard.hpp" + +void +writemsg(char *data) +{ +Message msg; +MsgArea ma; +String param[5]; +bool goodbye = FALSE; +int cost=0; +bool to_specified = FALSE; +bool subj_specified = FALSE; +char netmail_address[30]; + +netmail_address[0] = '\0'; + +parse_data(data,param); + +if(param[0][0]=='*') msg.setArea(user.msgArea); + else msg.setArea(atoi(param[0])); + +if(!ma.read(msg.areaNum())) return; + +io << "\f\n" << S_WRITE_MESSAGE_TITLE(ma.name) << '\n'; + +msg.to[0]=0; +for(int i=0;i<5;i++) + if(param[i][0]=='/') + switch(toupper(param[i][1])) + { + case 'T': strcpy(msg.to,(char *)(param[i])+3); + to_specified = TRUE; + break; + case 'S': strcpy(msg.subj,(char *)(param[i])+3); + if(msg.subj[0]) + subj_specified = TRUE; + break; + case 'L': goodbye = TRUE; + break; + case 'N': strncpy(netmail_address,(char *)(param[i])+3,29); + netmail_address[29] = '\0'; + break; + } + +if(!check_access(ma.writeLevel,ma.writeFlags,ma.writeFlagsNot) && !ma.sysopAccess()) + { + io << '\n' << S_NOT_ALLOWED_TO_WRITE_IN_AREA << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + + return; + } + +strcpy(msg.from,user.name); + +if(ma.flags == 3) + strcpy(msg.from,user.alias); +else + if(ma.flags && (ma.flags!=2 || user.alias[0])) + { + io << '\n'; + + if(ma.flags > 1) + io << S_ASK_WRITE_MSG_USING_YOUR_ALIAS; + else + io << S_ASK_WRITE_MSG_USING_AN_ALIAS; + + if(io.ask(0)) + { + if(ma.flags==2) + { + if(user.alias[0] == '\0') strcpy(user.alias,user.name); + strcpy(msg.from,user.alias); + } + else + for(;;) + { + User tmpuser; + + io << "\n\n" << S_ENTER_ALIAS_TO_USE; + + io.read(msg.from,35,READMODE_UPFIRST); + if(!msg.from[0]) return; + if(tmpuser.search(msg.from,TRUE,FALSE,TRUE)) continue; + if(!tmpuser.search(msg.from)) break; + } + } + + io << '\n'; + } + +if(!msg.to[0]) + for(;;) + { + User tuser; + + if(ma.msgType != MSG_PVT && ma.msgKind != MSG_NET) + io << '\n' << S_ENTER_ALL_IF_TO_EVERYONE << '\n'; + + io << '\n' << S_WRITE_MSG_TO; + io.read(msg.to,35,READMODE_UPFIRST); + + if(!msg.to[0]) return; + if(!strcmp(msg.to,"All") && ma.msgKind!=MSG_NET && ma.msgType != MSG_PVT) break; + if(!strcmp(msg.to,"Sysop") && ma.msgKind==MSG_LOCAL) break; + + if(ma.msgKind!=MSG_LOCAL) break; + + if(ma.flags==1) break; + + io << "\n\n\7" << S_SCANNING_USER_FILE << '\xFF'; + + if(tuser.search(msg.to)) break; + + if(ma.flags==2) + if(tuser.search(msg.to,TRUE,FALSE,TRUE)) break; + + bool found = tuser.search(msg.to,FALSE,TRUE,FALSE); + + for(int count = 0;found && count<2;count++) + found = tuser.searchNext(); + + if(count==1) + { + tuser.search(msg.to,FALSE,TRUE,FALSE); + + io << "\n\n" << S_CONFIRM_WRITE_MESSAGE_TO(tuser.name); + + if(io.ask(TRUE)) + { + strcpy(msg.to,tuser.name); + break; + } + else + { + io << '\n'; + continue; + } + } + + if(count>1) + { + io.enablestop(); + + io << "\n\n" << S_FUZZY_SEARCH_LIST_HEADER << '\n'; + + linecounter(2); + + found = tuser.search(msg.to,FALSE,TRUE,FALSE); + while(found) + { + if(!(tuser.uFlags & UFLAG_HIDDEN)) + io << form("\6 %-32.32s \5%-22.22s \2%-22.22s\n",tuser.name,tuser.city,tuser.country); + if(stopped || linecounter()) break; + found = tuser.searchNext(); + } + io.disablestop(); + if(!found) + io << S_FUZZY_SEARCH_LIST_FOOTER << '\n'; + + continue; + } + + io << S_USER_NOT_LOCATED << '\n'; + } + +if(!strcmpl(msg.to,"Sysop")) strcpy(msg.to,ma.sysop); + +if(to_specified) + io << '\n' << S_WRITE_MSG_TO << msg.to; + + +if(ma.msgKind==MSG_NET) + { + aka a; + a.read(ma.aka); + char tmp[30]; + + if(netmail_address[0]) + { + int point; + + node_entry ne; + ne.zone=a.zone; + ne.net=a.net; + ne.node=a.node; + + if((point=ne.read(netmail_address))<0) + { + LOG("Unknown netmail address: %s",netmail_address); + return; + } + + msg.destZone = ne.zone; + msg.destNet = ne.net; + msg.destNode = ne.node; + msg.destPoint= point; + msg.cost = cost; + } + else + { + io << "\n\n" << S_ENTER_NETMAIL_ADDRESS_HEADER; + + for(;;) + { + int point; + + io << "\n\n" << S_ENTER_NETMAIL_ADDRESS; + + io.read(tmp,25); + if(!tmp[0]) return; + io << "\n\n"; + + node_entry ne; + ne.zone=a.zone; + ne.net=a.net; + ne.node=a.node; + + if((point=ne.read(tmp))<0) continue; + + cost=ne.cost; + + io << S_CONFIRM_NETMAIL_ADDRESS(form("%d:%d/%d.%d",ne.zone,ne.net,ne.node,point),ne.name,form("%d",ne.cost)); + + if(io.ask(1)) + { + if(user.credit= 1) + { + nr = msg.msgBase()->msgNum(*msg.msgArea,nr); + } + + if(nr<1) io << S_SAVING_MESSAGE_ERROR << '\n'; + else + { + io << form("\3#%d\n",nr); + user.msgsPosted++; + LOG(1,"Msg #%ld entered (Area %d)",nr,msg.areaNum()); + if(ma.msgKind == MSG_NET) user.pending += cost; + } + } + else + LOG(1,"Msg aborted (Area %d)",msg.areaNum()); + +if(goodbye) logoff(NULL); + else io << '\n' << S_PRESS_ENTER_TO_CONTINUE; +} + +void +edit_message() +{ + if(fsed_mode && (ansi_mode || avatar)) + { + if(run_sdkfile("/I FSED") < 0) + { + if(!cfg.editorname[0] && !cfg.internalfsed) + { + msged(); + return; + } + String editorcommand(cfg.editorname); + + if(cfg.internalfsed) + editorcommand = "@_FSED"; + + if(editorcommand[0] == '@') + { + editorcommand.del(0,1); + run_sdkfile(replace_stringvars(editorcommand)); + } + else + { + editorcommand << "*N*Q *P *B *T *I"; + shell(replace_stringvars(editorcommand)); + } + + switch(returnvalue) + { + case 1: io << "\n\n" << S_MESSAGE_ABORTED << '\n'; + unlink("MSGTMP"); + break; + case 2: LOG("Carrier lost while editing."); + exit_proboard(); + } + } + } + else msged(); +} + +void +write_msginf( char *from , char *to , char *subj , long num , char *area , char *pvt) +{ + File f; + + if(f.open("MSGINF",fmode_create | fmode_text)) + { + f << from << '\n'; + f << to << '\n'; + f << subj << '\n'; + f << form("%ld\n",num); + f << area << '\n'; + f << pvt << '\n'; + } +} diff --git a/WRITEMSG.OBJ b/WRITEMSG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..995ecfea13e97637111c6065ce3e9c0c077e28bb GIT binary patch literal 9083 zcmcIq3v^Rey51*A)7X}_Kq)O~h(fWp$fMO>-UcWEMk%!|TjN}fp*<~;kaqGaC}OoU zl@jqWGmDE1I-o9P)TLe>F~ePQtELI!NrGHtxQsJuWxNexIgY~;gqCx^ea^|Fg|g=A zx(oKsKL7q7d;kBxzrD{s?Z_oL?M|DUU+-#}-q_aGxuu8@QqZtuc9mgqtJ7|EG#QqZ zmm4al&pN*)gOKmlqB{c)dSMA6orR&D2)ZANWEnmoKGPuL6MTj<& z%igIaI#DI6S3mZIX0(ytU~^mAoULnGt*tnK&TxYR1Hu5fL z^4Mn0S|qhic592vT|x9$<{+buPLIRlYFgK9v-9#$a*X!Yme%HG`6=7zTFcw*iHF-( zErVf#S~>vG`G53HoL9W*kp5A*VuU`z@|UmnC#&l=^gp04y$V& zb4+21lGJSTG?Ic8eaafUYprZ@>?Kr0B*$o7XH~{!BiTk19JC0^jLl?%rQT9ox3s?A zvb3gQX`Q8Em1W7QnuZlMtCu21D-jB73vaYGNkJQ%B)E7tQ^3ZTB3ePI@vLX_8=d5w zvZl$601qWKGLj8mSm|n!2IAW2YHgFl&3N;Z9rBcIh){yH8Or4ZV?mN;&BGa%)d-N$ z#ao??YisxoZlHQ&Bu5$*@59fdhY%PO$(2cs_Er~i(u;vI=Nntwc!#XUDWfvgbUbyqt_pJaXB_BA^fwdB6;(5v?xfCPvIpaVk+s zW0O2FoK0~LOLeEMaebSV^iD@(+eVVfXsL$O=Wg|2K{&BqtnOAjSUe7_^L1#*>zYh7 zTD*LtyVYsI=y^A9!N|NGo5$|4@ho0Sr-N@F(vuA@GXcg;-g)vmLb!=W2|X=<6q`d{ z;qF=PS$0;n6p-#G$Ac-~$TtDF*2{Se?>#?;-1Fo(^yJFokcLjUhLHWcH5!hP)xOgY zpRUu3%7L@inTi#&~^s2p)O&NkWkklsXi>#5ve{V)kmfJgj64w>d&S6FH(I{ zs{2s;38|Gz2C1#=*^j!;uO-YF8B7?<51K?$DF#g!NzgP%f?a(BL}n1ZI?=0D#-s~8 zs~VizaZ8z}K&*O1J#@VBGGCWw(6?PR*ljxBP0xwm^P=~hBxyDen_HTs+^0_tMf-b_ z-Q$`2PmS8IlID@-wAh@{Z)7oJ*A3PN^n^?m-`TH1GS?WiDRnzlPLaQM_*;;fAbWmpDM;#MF5)<3V*SSL{5k@pYX*l#dT~ckMmf zz5T_r66qL7M?rc4r033x`;H7MF3rmBfj^#R*_4Q}*~~%=Y9|q^G$<;f_p3=FUWZt` z4yq8w^w4ON0ZD}>t@T6GB`Z(w*GNgEPxo19Q0*zy`%8!S#9rh&4ul4YM;+TGwN#$0 zj)kR!5q#Y6Av0FadySHZC)m7>tI{W>i%#)TGD$rw1t;bL%51A`s5l~^pM-WA#TBQREBc4J0{EBi8ZAIT9UG@Od4}xdF;cLkxFlBW<%0AX z%eL3fDr?QG7(LI7o`X?lqx<2QUZ11)UnPYl4F(a6(ek{qZ}31uvX<_IyKuq)q0PH;g*E@i~w-|7}2F!{6mX?IJF)Z9nua7RHQ=>ER zn@z8ee2($~Esp$w7DZmCMZs4f5_}ON!JS}_*y;S>8azd+(U{8`)2ShHHC=Q}4bTz+ zT3^%gy{8})J_?{aM2mZac<6nb;oGZ#zvn>R0qU<_h*Mf2z6S|pRA09)m z7rvzi;d8p^XoyxF{D4*oZ_@FB*T5j`phd#tv?#C@4}o7`0D*QW5n5@fa1WgqXkhSo zD;mqt2rOpRJVu&A3j+owUjW&BCaZ#2!)`T>h`N9-#&hwp!xw98CCB3ZkUDlXms)RT zb83~(WwD)&MKNJ$aMBPjmC!7tQjpA7Odcd%e66o5|GaN|?)iuNh^~Z??8Bbvh;sfp zmc7+djRe!PbA|%b`E^4eLD#VmXIxLNUsN_-GtxyBFNAmk6Q%TKx$XI7`sB8n;t~#) zre^sQHp}IhB@T0mT_H8CcpB$jjPuTsIAh;m(EAr8R$xLCV5R`Wns!lHnF)Hw=8MEV z8$DR9|13l%N2Qa2OC39;5%*2Gh{bm@F?4Om0i3;oOV1LY>121;>H(kWtL`o{e)_w+ zemVe)IG&+yNFLI3-KM_mo(EUTU3&kLlplWRv8YhzgXM11K_4u4n-2M4x!WZ8Onu#^ zNcZN$u}4(Or0-)sT??ODM$9pV^M1y;0i0__JCO;2Mjd>LyffR(0r)5iRJ`nLMSqUjt&10oe&m)n(w3dfs?<7%HHQ87Ji)03w!CD zUOQOB_X1og&XsknyP9=Zfr2AzZz-cpU=%Ga=mqZO3V)|lh0kb40K*$2KzZOGqrOYa z1Al-np$iDSj%ElJS}d#v;NA)j0BUYvF?s_xL6vX=9TzBJLiw~fkb}l|>;NieEAQ5q z*{-nU&Jthf>3N0stMRJy5qapUdD;!?c6F>L?KR~=QY%*7uNJFVBHy13FA!D9@|`Ta zJ6L#+CBlpS^n~a=uJ^YO%fA#JT&|^LKvIqNhc4#r8CPD+I8yE%#9JKnKi)HS&mnHA zukaw3c)gRUVpWh+ppR|s%aqx^%x1e6uILzXYL}kt-B&$avzKt4H7}Et)x*qc^s}!)*{Nr8= z&Z}krb}Uq95Xmtegbl7^^B{5G0a$@WWuPb6K##M`I-QnT--zC?_5SV=$F5{iQbZg3 z4K|jSeRMB2Z;iBhsuz+YkP_^bduCmk#dIB3`5yp7=6Lh0&NAG_-IZ5nyL%2J&x2d?!!WtF3c}ZNy z;$}A?`5(Xxydf$(NRD*;^<-nW<+PjBqYF2yix%ti0C>t;~F!svZwM$ZJngX zY>r=-xIP@7AgS$?O-U+Oy8ML#Q?1{|u8vIS6JFHGyd4XLOyb7P*cpbCY2AT)2Bvo0V)QIyo=1`n=@h*e zMK4|^OlOkna9NLQamBaFwvp`B#+T^*7lv6#D)~B1$+x2So1sdQz1ls5Fj&uApd#*N z@w-wPScVLIZ`UIngXK}7lZD*q=%>J2fo9>HtBSrtZwfsJD2e_Xh>ucTbR&q(v@*Ja z-W*~W6PiQwKB}O3(K7lkp=;3wj77&$O(+L#EzJvF1oWN*^q!)+;8zd`9t8>o53>po znjid6R=v(D+$iJ+pKIWPyHTD+*@dzbWe3W3lwYI#vVn{I0x0eRir)nkr$F%_ks`jT@R4(8ah3^nobMfN^is^)3k6oe#fC`kpe0fpnuS5LX6%h{1<*d z#P3`9{T+TEqcZ}XjKNK33inctfK(KgQBGJua{_Z%#|*@{oHg)mKqx}4~Suwq`!ez)Pxv`>RdIeglL@P_-U+q|j zPsk2~gLkjD+Uy2=#dqRE=v+gIOVI-hB~5cnnr4(VO)qIeo6+T3HlD26DDZ&4EooR; zOUz5_NzE$uw4%n8Afj76xugk9t`@`O5_^*Ye-FVs`6fdt`^Il5X}Uq`vaV@$x`$9_ ztT34BmsS&_MfxeLDZAZJR%<9*Y$$6ml&wfJyu|8s+IXh{pVQrj_O +#include "proboard.hpp" + +static void near zip(File&); +static void near arc(File&); +static void near arj(File&); +static void near lzh(File&); +static void near zoo(File&); +static void near rar(File&); + +static bool find_area(char *fn,FileArea &fa); + +static void near print(char *,unsigned,unsigned,long,long); + +# define NUM_EXT 5 + +void +list_archive(char *data) +{ +char input[13]; + +io << "\f\n" << S_VIEW_ARCHIVE_TITLE_AND_PROMPT; + +io.read(input,12,READMODE_UPALL); +if(!input[0]) return; + +FileName fn; +File fh; +String param[40]; +BitArray arealist(MAX_FILE_AREAS,1); + +int npara=parse_data(data,param); + +create_arealist(param,npara,arealist); + +FileArea fa; + +if(!find_area(input,fa)) + { + io << "\n\n" << S_ARCHIVE_FILE_NOT_FOUND << "\n\n" << S_PRESS_ENTER_TO_CONTINUE; + return; + } + +fn(fa.filepath,input); + +fn.upperCase(); + +if(!fh.open(fn)) + return; + +fn.stripPath(); + +LOG(2,"Archive list requested (%s)",(char *)fn); + +linecounter(0); +io << form("\n\f\n\7" + "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n" + "º \3%-12s \7³\3 %-44.44s\7º\n",(char *)fn,fa.name); + +io << form("ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍËÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍ͹\n" + "º\6 %-15.15s\7º\6 %-12.12s\7º\6 %-6.6s\7º\6 %-9.9s\7º\6 %-9.9s\7º\n" + "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍ͹\n", + S_ARCHIVE_HEADER_FILENAME, + S_ARCHIVE_HEADER_DATE, + S_ARCHIVE_HEADER_TIME, + S_ARCHIVE_HEADER_ORIGSIZE, + S_ARCHIVE_HEADER_COMPSIZE + ); + +linecounter(5); + +stopped=0; +io.enablestop(); + +char ident_buf[20]; + +fh.read(ident_buf,20); +fh.seek(0); + + if(ident_buf[0] == '\x1a') arc(fh); +else if(!strncmp(ident_buf,"PK\x03\x04",4)) zip(fh); +else if(!strncmp(&ident_buf[2],"-lh",3)) lzh(fh); +else if(!strncmp(ident_buf,"ZOO",3)) zoo(fh); +else if(!strncmp(ident_buf,"\x60\xEA",2)) arj(fh); +else if(!strncmp(ident_buf,"Rar",3)) rar(fh); + +if(!stopped) io << "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍͼ\n\n" + << S_PRESS_ENTER_TO_CONTINUE; + +io.disablestop(); +} + +static void near +zip(File &f) +{ +struct zipfile + { + unsigned long signature; + unsigned version,gp,method,time,date; + long crc,comsize,uncomsize; + unsigned length,extra; + } zip_record; + +char name[80]; + +for(;;) + { + f.read(&zip_record,sizeof(zip_record)); + if(zip_record.signature!=0x04034b50L) break; + f.read(name,zip_record.length); + name[zip_record.length]='\0'; + + print(name,zip_record.date,zip_record.time,zip_record.comsize,zip_record.uncomsize); + if(linecounter() || stopped) break; + + f.seek(zip_record.comsize+zip_record.extra,seek_cur); + } +} + +static void near +arc(File &f) +{ +struct arcfile + { + char name[13]; + long size; + unsigned date,time,crc; + long length; + } arc_record; + +for(;;) + { + char mark; + + f.read(&mark,1); + if(!mark) break; + f.read(&mark,1); + if(mark==1) + { + if(f.read(&arc_record,23) != 23) break; + + arc_record.length=arc_record.size; + } + else + { + if(f.read(&arc_record,27) != 27) break; + } + + print(arc_record.name,arc_record.date,arc_record.time,arc_record.size,arc_record.length); + if(linecounter() || stopped) break; + + f.seek(arc_record.size,seek_cur); + } +} + +static void near +print(char *name,unsigned date,unsigned time,long csize,long usize) +{ +Date d; d.fileDate(date); +Time t; t.fileTime(time); + +strip_path(name); +io << form("º\6 %-15s\7º\5 %02d %3.3s %04d \7º\2 %02d:%02d \7º\3 %8ld \7º\6 %8ld \7º\n",name,d[0],months_short[d[1]],d[2]+1900,t[0],t[1],usize,csize); +} + +static void near +lzh(File &f) +{ +struct lzhfile + { + unsigned char headsiz,headchk; + char headid[3]; + int method; + unsigned long pacsiz,orgsiz; + unsigned int time,date,attr; + unsigned char fnlen; + char Fname[80]; + } lzh_record; + +for(;;) + { + if(f.read(&lzh_record.headsiz,1)<1) break; + if(f.read(&lzh_record.headchk,(int)lzh_record.headsiz+1)<((int)lzh_record.headsiz+1)) break; + if(strncmp(lzh_record.headid,"-lh",3)) break; + lzh_record.Fname[lzh_record.fnlen]='\0'; + + print(lzh_record.Fname,lzh_record.date,lzh_record.time,lzh_record.pacsiz,lzh_record.orgsiz); + if(linecounter() || stopped) break; + + f.seek(lzh_record.pacsiz,seek_cur); + } +} + +static void near +zoo(File &f) +{ +struct zoo_header + { + char text[20]; + unsigned long zoo_tag; + long zoo_start; + // De rest moeme nie-Šn! + } zoo_record; + +struct direntry + { + long zoo_tag; + char type,packing_method; + long next,offset; + unsigned date,time,file_crc; + long org_size,size_now; + unsigned char major_ver,minor_ver,deleted,struc; + long comment; + unsigned int cmt_size; + char fname[13]; + } zoo_head; + +f.read(&zoo_record,sizeof(zoo_record)); +f.seek(zoo_record.zoo_start); + +for(;;) + { + f.read(&zoo_head,sizeof(zoo_head)); + if(!zoo_head.next) break; + + print(zoo_head.fname,zoo_head.date,zoo_head.time,zoo_head.size_now,zoo_head.org_size); + if(linecounter() || stopped) break; + + f.seek(zoo_head.next); + } +} + +static void near +arj(File &f) +{ +struct { + unsigned id; + unsigned hdrsize; + byte first_hdrsize; + byte version; + byte version_needed; + byte OS; + byte arjflags; + byte method; + byte filetype; + byte reserved1; + unsigned time; + unsigned date; + long comsize; + long uncomsize; + long crc; + unsigned filespecpos; + unsigned accessmode; + } arj_record; + +char name[80]; + +for(int count = 1;;count++) + { + //unsigned extheadersize; + long pos = f.pos(); + + f.read(&arj_record,sizeof(arj_record)); + + if(arj_record.id != 0xEA60 || !arj_record.hdrsize) break; + + f.seek(pos+arj_record.first_hdrsize+4); + + f.read(name,80); + + if(count > 1) + { + print(name,arj_record.date,arj_record.time,arj_record.comsize,arj_record.uncomsize); + + if(linecounter() || stopped) break; + } + + if(count == 1) + f.seek(pos+arj_record.hdrsize+10); + else + f.seek(pos+arj_record.hdrsize+10+arj_record.comsize); + } +} + +static void near +rar(File &f) +{ + struct block_header + { + word crc; + byte type; + word flags; + word blockSize; + }; + struct file_header + { + word crc; + byte type; + word flags; + word blockSize; + long packSize; + long unpackSize; + byte hostOs; + dword fileCrc; + word fileTime; + word fileDate; + byte unpackVersion; + byte method; + word nameSize; + dword fileAttr; + }; + + + for(;;) + { + block_header bh; + file_header fh; + + long pos = f.pos(); + + if(f.read(&bh,sizeof(bh)) != sizeof(bh)) + break; + + if(bh.type == 0x74) + { + f.seek(pos); + f.read(&fh,sizeof(fh)); + + char *fname = new char[fh.nameSize+1]; + + f.read(fname,fh.nameSize); + fname[fh.nameSize] = '\0'; + + print(fname,fh.fileDate,fh.fileTime,fh.packSize,fh.unpackSize); + + f.seek(pos + fh.blockSize + fh.packSize); + } + else + { + f.seek(pos + bh.blockSize); + } + } +} + + +bool +find_area(char *fn,FileArea &fa) +{ + File idx; + + if(idx.open(FileName(syspath,"FILESIDX.PB") , fmode_read , cfg.fastmode ? 8192:4096)) + { + FilesIdx fidx; + + for(;;) + { + if(idx.read(&fidx,sizeof(fidx)) != sizeof(fidx)) break; + + if(!stricmp(fidx.name,fn)) + { + if(fa.read(fidx.area) && check_access(fa.level,fa.flags,fa.flagsNot)) + return TRUE; + } + } + } + + return FALSE; +} diff --git a/ZIP.OBJ b/ZIP.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..a4e8782872d45365a501fdcef8fed14bbed4d5b5 GIT binary patch literal 5233 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 VBQ(k=e_MR&S5*yJeNc4I{{Yjh>S_Q0 literal 0 HcmV?d00001 diff --git a/backup/MODEM.CPP b/backup/MODEM.CPP new file mode 100644 index 0000000..07e6092 --- /dev/null +++ b/backup/MODEM.CPP @@ -0,0 +1,545 @@ +#define Use_MsgBase + +#include +#include +#include +#include +#include +#include +#include + +#include "fossil.hpp" +#include "desqview.hpp" +#include "proboard.hpp" + +static void +fos_sendbreak(int port) +{ + fos_break(port,TRUE); + + unsigned long ticks = clockticks(); + while(clockdiff(ticks)<2) {} + + fos_break(port,FALSE); +} + +struct modem_config : _ModemConfig {}; + +class modem + { + int port; + long baud; + int delay; + public: + modem(int p,long b); + ~modem() + { + fos_deinit(port); + } + void set_delay(int d) + { + delay = d; + } + void cmd(char *s); + bool check_response(String& s); + }; + +modem::modem(int p,long b) +{ + byte baudcode = 0; + + port = p; + baud = b; + + fos_init(port); + + switch(baud) + { + case 300L: baudcode = 0x43; break; + case 1200L: baudcode = 0x83; break; + case 2400L: baudcode = 0xA3; break; + case 4800L: baudcode = 0xC3; break; + case 9600L: baudcode = 0xE3; break; + case 19200L: baudcode = 0x03; break; + case 38400L: baudcode = 0x23; break; + } + + fos_setbps(port,baudcode); +} + +void +modem::cmd(char *s) +{ + for(;*s;s++) + { + char c = *s; + + switch(c) + { + case '~': ::delay(500); + break; + case '`': + case '': + case 'v': fos_setdtr(port,0); + break; + case '^': fos_setdtr(port,1); + break; + case '$': fos_sendbreak(port); + break; + case '|': c = '\r'; + default : fos_sendnw(port,c); + if(delay) + ::delay(delay*100); + } + } +} + +bool +modem::check_response(String& s) +{ + static String resp; + + if(!fos_byteready(port)) + { + return FALSE; + } + + byte c = fos_getch(port); + + if(c == '\r') + { + s = resp; + resp.clear(); + + return (s[0]) ? TRUE:FALSE; + } + + if(c != '\n') resp << char(c); + + return FALSE; +} + +const int STATUS_WAITING_FOR_CALL = 0; +const int STATUS_INITIALIZING = 1; +const int STATUS_WAITING_FOR_OK = 2; + + +bool +do_modem(modem_response *response) +{ +// tsw_fillscreen('°',0x01); + tsw_fillscreen('°',0x70); + + Window stat_win (3,21,76,23,0x0F,SHADOW|EXPLODE); + Window title_win(3,2,76,6,0x1F,SHADOW|EXPLODE); + Window resp_win (3,8,25,13,0x3F,SHADOW|EXPLODE,SINGLE_BORDER); + Window lc_win (3,16,76,18,0x1F,SHADOW|EXPLODE); + Window event_win(30,8,76,13,0x5F,SHADOW|EXPLODE); + + stat_win.ShadowColor( 0x11 ); + + title_win.open(); + resp_win.open(); + lc_win.open(); + stat_win.open(); + event_win.open(); + + lc_win.direct(56,0,"µ LAST CALLER Æ"); + resp_win.direct(11,0,0x3F,"´ Ã"); + resp_win.direct(12,0,0x3E," MODEM "); + event_win.direct(34,0,"µ SYSTEM Æ"); + + tsw_centerline(3,"ProBoard v" VERSION); + tsw_centerline(4,"Copyright (c) 1990-1999 TeleGrafix Communications, Inc."); + tsw_centerline(5,"All Rights Reserved"); + + modem_config *modem_cfg = new modem_config; + CLEAR_OBJECT(*modem_cfg); + + File f; + + if(!f.open(FileName(syspath,form("MODEM%03d.PB",node_number)))) + if(!f.open(FileName(syspath,"MODEM.PB"))) + { + LOG("Unable to open MODEM.PB"); + delete modem_cfg; + return FALSE; + } + + f.read(modem_cfg,sizeof(modem_config)); + f.close(); + + modem_cfg->port--; + + if(response->baud) modem_cfg->maxBps = response->baud; + if(response->port>=0) modem_cfg->port = response->port; + + tsw_maputs(6,13,0x3E,form("%ld bps",modem_cfg->maxBps)); + tsw_maputs(19,13,0x3E,form("COM%d",modem_cfg->port+1)); + + response->port = modem_cfg->port; + + modem modem(modem_cfg->port,(modem_cfg->flags & MODEM_LOCKED) ? 38400L : modem_cfg->maxBps); + + modem.set_delay(modem_cfg->commandDelay); + + tsw_cursoroff(); + + stat_win.clear(); + tsw_centerline(22,"Initializing modem",0xE); + + event_win << form("\n # Calls : %-6ld # Users : %d\n" + " # Hudson Msgs: %-5ld\n",totalcalls,num_users,msgbase.totalMsgs()); + + tsw_centerline(17,form("%s (%02d:%02d to %02d:%02d)", + lastcaller.name, + lastcaller.timeIn[0],lastcaller.timeIn[1], + lastcaller.timeOut[0],lastcaller.timeOut[1]),0x1E); + + time_t start_time = time(NULL); + + time_t init_sent = 0; + int init_tries = 0; + bool initialized = FALSE; + bool blanked = FALSE; + + bool init1_ok; + bool init2_ok; + bool init3_ok; + + bool init1_sent = FALSE; + bool init2_sent = FALSE; + bool init3_sent = FALSE; + + time_t blank_start = time(NULL); + + word *blank_buf = new word[tsw_vsize*tsw_hsize]; + + for(;;) + { + String s; + Date date(TODAY); + Time time(NOW); + + if(!blanked) + { + title_win.direct(2,0,0x1F,"µ Æ" ); + title_win.direct(3,0,0x1E,form(" %02d:%02d:%02d ",time[0],time[1],time[2])); + + title_win.direct(55,0,0x1F,"µ Æ" ); + title_win.direct(56,0,0x1E,form(" %02d %s %d ",date[0],months_short[date[1]],date[2]+1900)); + + event_win.setPos(1,1); + + if(nextevent.enabled) + event_win << form(" Next Event : %s %02d:%02d (%d min) ",days_short[nextevent.nextday()],nextevent.start[0],nextevent.start[1],nextevent.minutesleft()); + else + event_win << " Next Event : -NONE-"; + + event_win << form("\n\n\n Time idle : %ld min",(::time(NULL)-start_time)/60); + } + + if(init_sent && (::time(NULL)-init_sent)>5 && !initialized) + { + if(!blanked) stat_win.clear(); + + if(init_tries>3) + { + if(!blanked) tsw_centerline(22,"Unable to initialize modem",0xE); + response->port = -1; + break; + } + + if(!blanked) tsw_centerline(22,form("Unable to initialize modem. Retrying (Try #%d)",init_tries+1),0x8E); + + initialized = FALSE; + init1_sent = FALSE; + init2_sent = FALSE; + init3_sent = FALSE; + init_sent = 0; + } + + if(!initialized) + { + if(!init1_sent) + { + if(modem_cfg->cmdInit1[0]) + { + modem.cmd(modem_cfg->cmdInit1); + + init1_ok = FALSE; + } + + init1_sent = TRUE; + init_sent = ::time(NULL); + } + + if(!init2_sent && init1_ok) + { + if(modem_cfg->cmdInit2[0]) + { + modem.cmd(modem_cfg->cmdInit2); + + init2_ok = FALSE; + } + else + { + init2_ok = TRUE; + } + + init2_sent = TRUE; + init_sent = ::time(NULL); + } + + if(!init3_sent && init2_sent && init2_ok) + { + if(modem_cfg->cmdInit3[0]) + { + modem.cmd(modem_cfg->cmdInit3); + + init3_ok = FALSE; + } + else + { + init3_ok = TRUE; + } + + init3_sent = TRUE; + init_sent = ::time(NULL); + + init_tries++; + } + } + + if(!initialized && init1_ok && init2_ok && init3_ok) + { + initialized = TRUE; + + stat_win.clear(); + tsw_centerline(22,"Waiting for a call",0xE); + + stat_win.direct(2,2,0x0F,"µ Æ" ); + stat_win.direct(3,2,0xE," AltL " ); + stat_win.direct(9,2,0xB,"= Local "); + + stat_win.direct(56,2,0x0F,"µ Æ" ); + stat_win.direct(57,2,0xE," Esc " ); + stat_win.direct(62,2,0xB,"= Exit "); + } + + if(init_sent && (::time(NULL)-init_sent) > 300) + { + initialized = FALSE; + init1_sent = FALSE; + init2_sent = FALSE; + init3_sent = FALSE; + init_sent = 0; + init_tries = 0; + } + + if(modem.check_response(s)) + { + s << '|'; + + if(blanked) + { + tsw_puttext(blank_buf,1,1,tsw_hsize,tsw_vsize); + blanked = FALSE; + blank_start = ::time(NULL); + } + + if(init1_sent && !init1_ok && s==modem_cfg->cmdInit1) + continue; + if(init2_sent && !init2_ok && s==modem_cfg->cmdInit2) + continue; + if(init3_sent && !init3_ok && s==modem_cfg->cmdInit3) + continue; + + s.delLast(); + resp_win << ' ' << form("%-17.17s",(char *)s) << '\n'; + s << '|'; + + if(strstr(s,modem_cfg->msgOk) && !initialized) + { + if(init1_sent && !init1_ok) + init1_ok = TRUE; + if(init2_sent && !init2_ok) + init2_ok = TRUE; + if(init3_sent && !init3_ok) + init3_ok = TRUE; + } + + if(initialized) + { + String connect = s; + long baud = 0; + + if(modem_cfg->msgRing[0] && strstr(connect,modem_cfg->msgRing) && (modem_cfg->flags & MODEM_MANUAL_ANSWER)) + { + modem.cmd(modem_cfg->cmdAnswer); + } + + if(!baud && modem_cfg->userConBps1 && strstr(connect,modem_cfg->msgConUser1) && modem_cfg->msgConUser1[0]) baud = modem_cfg->userConBps1; + if(!baud && modem_cfg->userConBps2 && strstr(connect,modem_cfg->msgConUser2) && modem_cfg->msgConUser2[0]) baud = modem_cfg->userConBps2; + if(!baud && modem_cfg->userConBps3 && strstr(connect,modem_cfg->msgConUser3) && modem_cfg->msgConUser3[0]) baud = modem_cfg->userConBps3; + if(!baud && modem_cfg->userConBps4 && strstr(connect,modem_cfg->msgConUser4) && modem_cfg->msgConUser4[0]) baud = modem_cfg->userConBps4; + if(!baud && modem_cfg->userConBps5 && strstr(connect,modem_cfg->msgConUser5) && modem_cfg->msgConUser5[0]) baud = modem_cfg->userConBps5; + if(!baud && modem_cfg->userConBps6 && strstr(connect,modem_cfg->msgConUser6) && modem_cfg->msgConUser6[0]) baud = modem_cfg->userConBps6; + + if(!baud && strstr(connect,modem_cfg->msgCon115200)&& modem_cfg->msgCon115200[0])baud = 115200L; + if(!baud && strstr(connect,modem_cfg->msgCon64000) && modem_cfg->msgCon64000[0]) baud = 64000L; + if(!baud && strstr(connect,modem_cfg->msgCon57600) && modem_cfg->msgCon57600[0]) baud = 57600L; + if(!baud && strstr(connect,modem_cfg->msgCon38400) && modem_cfg->msgCon38400[0]) baud = 38400L; + if(!baud && strstr(connect,modem_cfg->msgCon36000) && modem_cfg->msgCon36000[0]) baud = 36000L; + if(!baud && strstr(connect,modem_cfg->msgCon33600) && modem_cfg->msgCon33600[0]) baud = 33600L; + if(!baud && strstr(connect,modem_cfg->msgCon31200) && modem_cfg->msgCon31200[0]) baud = 31200L; + if(!baud && strstr(connect,modem_cfg->msgCon28800) && modem_cfg->msgCon28800[0]) baud = 28800L; + if(!baud && strstr(connect,modem_cfg->msgCon26400) && modem_cfg->msgCon26400[0]) baud = 26400L; + if(!baud && strstr(connect,modem_cfg->msgCon24000) && modem_cfg->msgCon24000[0]) baud = 24000L; + if(!baud && strstr(connect,modem_cfg->msgCon21600) && modem_cfg->msgCon21600[0]) baud = 21600L; + if(!baud && strstr(connect,modem_cfg->msgCon19200) && modem_cfg->msgCon19200[0]) baud = 19200L; + if(!baud && strstr(connect,modem_cfg->msgCon16800) && modem_cfg->msgCon16800[0]) baud = 16800L; + if(!baud && strstr(connect,modem_cfg->msgCon14400) && modem_cfg->msgCon14400[0]) baud = 14400L; + if(!baud && strstr(connect,modem_cfg->msgCon12000) && modem_cfg->msgCon12000[0]) baud = 12000L; + if(!baud && strstr(connect,modem_cfg->msgCon9600 ) && modem_cfg->msgCon9600[0] ) baud = 9600L; + if(!baud && strstr(connect,modem_cfg->msgCon7200 ) && modem_cfg->msgCon7200[0] ) baud = 7200L; + if(!baud && strstr(connect,modem_cfg->msgCon4800 ) && modem_cfg->msgCon4800[0] ) baud = 4800L; + if(!baud && strstr(connect,modem_cfg->msgCon2400 ) && modem_cfg->msgCon2400[0] ) baud = 2400L; + if(!baud && strstr(connect,modem_cfg->msgCon1200 ) && modem_cfg->msgCon1200[0] ) baud = 1200L; + if(!baud && strstr(connect,modem_cfg->msgCon1275 ) && modem_cfg->msgCon1275[0] ) baud = 1200L; + if(!baud && strstr(connect,modem_cfg->msgCon300 ) && modem_cfg->msgCon300[0] ) baud = 300L; + + if(baud) + { + stat_win.clear(); + tsw_centerline(22,form("Incoming call at %ld bps",baud),0xE); + response->baud = baud; + break; + } + + if(modem_cfg->msgConExternal[0] && strstr(connect,modem_cfg->msgConExternal)) + { + SCREEN.clear(); + modem.modem::~modem(); + exit(modem_cfg->externalErrorLevel); + } + } + } + + if(modem_cfg->blankTime && !blanked && (::time(NULL)-blank_start)>modem_cfg->blankTime) + { + tsw_gettext(blank_buf,1,1,tsw_hsize,tsw_vsize); + tsw_fillscreen(' ',0); + blanked = TRUE; + } + + if( nextevent.minutesleft()==0 && nextevent.start[0]==time[0] + && nextevent.start[1]==time[1] && time[2]<=1 + && nextevent.node == node_number) + { + modem.modem::~modem(); + SCREEN.clear(); + if(nextevent.type) + { + String s = "*=*Q*N*C /C "; + s << nextevent.command; + shell(s); + exit(0); + } + else + { + exit(nextevent.errorlevel); + } + } + + if(KB.hit()) + { + if(blanked) + { + tsw_puttext(blank_buf,1,1,tsw_hsize,tsw_vsize); + blanked = FALSE; + blank_start = ::time(NULL); + } + + KEY k=KB.get(); + + if(k==KEY_ALTL) + { + stat_win.clear(); + tsw_centerline(22,"Local login",0xE); + modem.cmd(modem_cfg->cmdOffHook); + response->baud = 0; + sleep(1); + break; + } + + if(k==KEY_ESC) + { + stat_win.clear(); + tsw_centerline(22,"Exit",0xE); + modem.cmd(modem_cfg->cmdDown); + sleep(1); + modem.modem::~modem(); + SCREEN.clear(); + exit(99); + } + + if(k==KEY_ALTJ) + { + tsw_gettext(blank_buf,1,1,tsw_hsize,tsw_vsize); + tsw_cursoron(); + SCREEN.clear(); + modem.cmd(modem_cfg->cmdOffHook); + shell("*X*C*N*Q"); + tsw_cursoroff(); + tsw_puttext(blank_buf,1,1,tsw_hsize,tsw_vsize); + + initialized = FALSE; + init1_sent = FALSE; + init2_sent = FALSE; + init3_sent = FALSE; + init_sent = 0; + init_tries = 0; + } + } + + if(!access(form("%sDOWN.%d",syspath,node_number),0)) + { + stat_win.clear(); + tsw_centerline(22,"Going down on external request",0xE); + LOG("Going down on external request"); + + modem.cmd(modem_cfg->cmdDown); + sleep(1); + modem.modem::~modem(); + SCREEN.clear(); + + File f; + f.open(form("%sISDOWN.%d",syspath,node_number),fmode_create|fmode_write); + f.close(); + + exit(100); + } + + static int timeslice_count = 0; + + if(!(++timeslice_count % 20)) + DV_timeslice(); + } + + tsw_cursoron(); + + delete modem_cfg; + delete [] blank_buf; + + title_win.close(); + resp_win.close(); + lc_win.close(); + stat_win.close(); + event_win.close(); + + SCREEN.clear(); + + return (response->port<0) ? FALSE:TRUE; +} + diff --git a/backup/PB990519.ZIP b/backup/PB990519.ZIP new file mode 100644 index 0000000000000000000000000000000000000000..22d45ff04169bbd1a6b2b3476fd957b2bef00172 GIT binary patch literal 633209 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 >N{y~|AtiBSjY$Kj^vV! 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�Ja7?Kx7jCb{>bs{8(I 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

    WH^#87=zH2nPM5&w>x&W1CtmA1Wx``Dk8|` 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

    fuD@R@O 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 z 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

    RWC#fZyD5o|! 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%0A=uB!H#S67Ah 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 literal 0 HcmV?d00001 diff --git a/backup/PB990809.ZIP b/backup/PB990809.ZIP new file mode 100644 index 0000000000000000000000000000000000000000..da5bfa558722183218c0d52c7e17d6de717c9a07 GIT binary patch literal 176631 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 z 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 literal 0 HcmV?d00001 diff --git a/c.bat b/c.bat new file mode 100644 index 0000000..8692706 --- /dev/null +++ b/c.bat @@ -0,0 +1 @@ +copy proboard.exe \bbs diff --git a/compare.bat b/compare.bat new file mode 100644 index 0000000..7723006 --- /dev/null +++ b/compare.bat @@ -0,0 +1,84 @@ +@echo off + + fc /b AKA.OBJ OBJ\AKA.OBJ >output.lst + fc /b BINLOG.OBJ OBJ\BINLOG.OBJ >>output.lst + fc /b BULLETIN.OBJ OBJ\BULLETIN.OBJ >>output.lst + fc /b CDROM.OBJ OBJ\CDROM.OBJ >>output.lst + fc /b CHAT.OBJ OBJ\CHAT.OBJ >>output.lst + fc /b CLEANUP.OBJ OBJ\CLEANUP.OBJ >>output.lst + fc /b COMBINED.OBJ OBJ\COMBINED.OBJ >>output.lst + fc /b DECKEY.OBJ OBJ\DECKEY.OBJ >>output.lst + fc /b DL.OBJ OBJ\DL.OBJ >>output.lst + fc /b EVENT.OBJ OBJ\EVENT.OBJ >>output.lst + fc /b EXECHECK.OBJ OBJ\EXECHECK.OBJ >>output.lst + fc /b FILEAREA.OBJ OBJ\FILEAREA.OBJ >>output.lst + fc /b FORWARD.OBJ OBJ\FORWARD.OBJ >>output.lst + fc /b FUZZY.OBJ OBJ\FUZZY.OBJ >>output.lst + fc /b GIF.OBJ OBJ\GIF.OBJ >>output.lst +REM fc /b HANDLER.OBJ OBJ\HANDLER.OBJ >>output.lst + fc /b HELP.OBJ OBJ\HELP.OBJ >>output.lst + fc /b HUDSON.OBJ OBJ\HUDSON.OBJ >>output.lst + fc /b IMAGE.OBJ OBJ\IMAGE.OBJ >>output.lst + fc /b INPDATE.OBJ OBJ\INPDATE.OBJ >>output.lst + fc /b IO.OBJ OBJ\IO.OBJ >>output.lst + fc /b JAM.OBJ OBJ\JAM.OBJ >>output.lst + fc /b LANGUAGE.OBJ OBJ\LANGUAGE.OBJ >>output.lst + fc /b LASTCALL.OBJ OBJ\LASTCALL.OBJ >>output.lst + fc /b LISTFILE.OBJ OBJ\LISTFILE.OBJ >>output.lst + fc /b LOADPEX.OBJ OBJ\LOADPEX.OBJ >>output.lst + fc /b LOGIN.OBJ OBJ\LOGIN.OBJ >>output.lst + fc /b MAILCHK.OBJ OBJ\MAILCHK.OBJ >>output.lst + fc /b MARK.OBJ OBJ\MARK.OBJ >>output.lst + fc /b MCHAT.OBJ OBJ\MCHAT.OBJ >>output.lst + fc /b MENU.OBJ OBJ\MENU.OBJ >>output.lst + fc /b MISC.OBJ OBJ\MISC.OBJ >>output.lst + fc /b MODEM.OBJ OBJ\MODEM.OBJ >>output.lst + fc /b MSG.OBJ OBJ\MSG.OBJ >>output.lst + fc /b MSGAREA.OBJ OBJ\MSGAREA.OBJ >>output.lst + fc /b MSGBASE.OBJ OBJ\MSGBASE.OBJ >>output.lst + fc /b MSGDEL.OBJ OBJ\MSGDEL.OBJ >>output.lst + fc /b MSGED.OBJ OBJ\MSGED.OBJ >>output.lst + fc /b MSGEXPRT.OBJ OBJ\MSGEXPRT.OBJ >>output.lst + fc /b MSGFIND.OBJ OBJ\MSGFIND.OBJ >>output.lst + fc /b MSGMOVE.OBJ OBJ\MSGMOVE.OBJ >>output.lst + fc /b MUSIC.OBJ OBJ\MUSIC.OBJ >>output.lst + fc /b NODELIST.OBJ OBJ\NODELIST.OBJ >>output.lst + fc /b ONLINE.OBJ OBJ\ONLINE.OBJ >>output.lst + fc /b PBUSER.OBJ OBJ\PBUSER.OBJ >>output.lst + fc /b POSTMSG.OBJ OBJ\POSTMSG.OBJ >>output.lst + fc /b PROBOARD.OBJ OBJ\PROBOARD.OBJ >>output.lst + fc /b PROTOCOL.OBJ OBJ\PROTOCOL.OBJ >>output.lst + fc /b QSCANMSG.OBJ OBJ\QSCANMSG.OBJ >>output.lst + fc /b QUESTION.OBJ OBJ\QUESTION.OBJ >>output.lst + fc /b RAWDIR.OBJ OBJ\RAWDIR.OBJ >>output.lst + fc /b READMSG.OBJ OBJ\READMSG.OBJ >>output.lst +REM fc /b REGIS.OBJ OBJ\REGIS.OBJ >>output.lst + fc /b REPLYMSG.OBJ OBJ\REPLYMSG.OBJ >>output.lst + fc /b RIP.OBJ OBJ\RIP.OBJ >>output.lst + fc /b SCANMSG.OBJ OBJ\SCANMSG.OBJ >>output.lst + fc /b SELLANG.OBJ OBJ\SELLANG.OBJ >>output.lst + fc /b SETAREA.OBJ OBJ\SETAREA.OBJ >>output.lst + fc /b SHELL.OBJ OBJ\SHELL.OBJ >>output.lst + fc /b SHOWANS.OBJ OBJ\SHOWANS.OBJ >>output.lst + fc /b SHOWMSG.OBJ OBJ\SHOWMSG.OBJ >>output.lst + fc /b SQUISH.OBJ OBJ\SQUISH.OBJ >>output.lst + fc /b STACKING.OBJ OBJ\STACKING.OBJ >>output.lst + fc /b STRVARS.OBJ OBJ\STRVARS.OBJ >>output.lst + fc /b SYSOPKEY.OBJ OBJ\SYSOPKEY.OBJ >>output.lst + fc /b TAG.OBJ OBJ\TAG.OBJ >>output.lst + fc /b TAG_RW.OBJ OBJ\TAG_RW.OBJ >>output.lst + fc /b TERMINAL.OBJ OBJ\TERMINAL.OBJ >>output.lst + fc /b TIMELOG.OBJ OBJ\TIMELOG.OBJ >>output.lst + fc /b TIMER.OBJ OBJ\TIMER.OBJ >>output.lst + fc /b TIMESTAT.OBJ OBJ\TIMESTAT.OBJ >>output.lst + fc /b TOPS.OBJ OBJ\TOPS.OBJ >>output.lst + fc /b UL.OBJ OBJ\UL.OBJ >>output.lst + fc /b USAGE.OBJ OBJ\USAGE.OBJ >>output.lst + fc /b USERED.OBJ OBJ\USERED.OBJ >>output.lst + fc /b USERSET.OBJ OBJ\USERSET.OBJ >>output.lst + fc /b USERWIN.OBJ OBJ\USERWIN.OBJ >>output.lst + fc /b VERSION.OBJ OBJ\VERSION.OBJ >>output.lst + fc /b VIEWFILE.OBJ OBJ\VIEWFILE.OBJ >>output.lst + fc /b WORDWRAP.OBJ OBJ\WORDWRAP.OBJ >>output.lst + fc /b WRITEMSG.OBJ OBJ\WRITEMSG.OBJ >>output.lst + fc /b ZIP.OBJ OBJ\ZIP.OBJ >>output.lst diff --git a/exec.err b/exec.err new file mode 100644 index 0000000..e6d95d7 --- /dev/null +++ b/exec.err @@ -0,0 +1,33 @@ +Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland International + +Assembling file: exec.asm +**Error** exec.asm(133) Illegal immediate +**Error** exec.asm(136) Need right square bracket +*Warning* exec.asm(136) [Constant] assumed to mean immediate constant +**Error** exec.asm(356) Need right square bracket +*Warning* exec.asm(356) [Constant] assumed to mean immediate constant +**Error** exec.asm(365) Need right square bracket +*Warning* exec.asm(365) [Constant] assumed to mean immediate constant +**Error** exec.asm(366) Need right square bracket +*Warning* exec.asm(366) [Constant] assumed to mean immediate constant +**Error** exec.asm(540) Illegal immediate +**Error** exec.asm(566) Need right square bracket +*Warning* exec.asm(566) Argument needs type override +**Error** exec.asm(586) Need right square bracket +*Warning* exec.asm(586) Argument needs type override +**Error** exec.asm(636) Illegal immediate +**Error** exec.asm(643) Need right square bracket +*Warning* exec.asm(643) Argument needs type override +**Error** exec.asm(653) Illegal immediate +**Error** exec.asm(660) Illegal immediate +**Error** exec.asm(842) Need right square bracket +*Warning* exec.asm(842) [Constant] assumed to mean immediate constant +**Error** exec.asm(905) Need right square bracket +*Warning* exec.asm(905) [Constant] assumed to mean immediate constant +**Error** exec.asm(907) Need right square bracket +*Warning* exec.asm(907) [Constant] assumed to mean immediate constant +Error messages: 15 +Warning messages: 10 +Passes: 1 +Remaining memory: 381k + diff --git a/files.lst b/files.lst new file mode 100644 index 0000000..f028367 --- /dev/null +++ b/files.lst @@ -0,0 +1,10 @@ +File SHELL.CPP: +File SHOWMSG.CPP: +File SQUISH.CPP: +File TIMER.CPP: +File TOPS.CPP: +File UL.CPP: +File USERED.CPP: +File USERSET.CPP: +File USERWIN.CPP: +File ZIP.CPP: diff --git a/files2.lst b/files2.lst new file mode 100644 index 0000000..72af664 --- /dev/null +++ b/files2.lst @@ -0,0 +1,85 @@ +AKA OBJ 761 11-06-98 9:36p AKA.OBJ +BINLOG OBJ 1,579 11-06-98 9:36p BINLOG.OBJ +BULLETIN OBJ 1,112 11-06-98 9:37p BULLETIN.OBJ +CDROM OBJ 3,545 11-06-98 9:36p CDROM.OBJ +CHAT OBJ 4,490 11-06-98 9:36p CHAT.OBJ +CLEANUP OBJ 3,267 11-06-98 9:36p CLEANUP.OBJ +COMBINED OBJ 2,836 11-06-98 9:36p COMBINED.OBJ +DECKEY OBJ 2,638 11-06-98 9:36p DECKEY.OBJ +DESQVIEW OBJ 339 11-06-98 9:36p DESQVIEW.OBJ +DL OBJ 27,106 11-06-98 9:36p DL.OBJ +EGA OBJ 304 11-06-98 9:36p EGA.OBJ +EVENT OBJ 1,048 11-06-98 9:36p EVENT.OBJ +EXEC OBJ 2,419 11-06-98 9:36p EXEC.OBJ +EXECHECK OBJ 335 11-06-98 9:37p EXECHECK.OBJ +FILEAREA OBJ 3,649 11-06-98 9:36p FILEAREA.OBJ +FORWARD OBJ 2,813 11-06-98 9:36p FORWARD.OBJ +FOSSIL OBJ 809 11-06-98 9:36p FOSSIL.OBJ +FUZZY OBJ 1,793 11-06-98 9:37p FUZZY.OBJ +GIF OBJ 2,467 11-06-98 9:36p GIF.OBJ +HELP OBJ 2,683 11-06-98 9:36p HELP.OBJ +HUDSON OBJ 15,481 11-06-98 9:37p HUDSON.OBJ +IMAGE OBJ 894 11-06-98 9:37p IMAGE.OBJ +INPDATE OBJ 1,095 11-06-98 9:37p INPDATE.OBJ +IO OBJ 15,910 11-06-98 9:36p IO.OBJ +JAM OBJ 14,468 11-06-98 9:37p JAM.OBJ +LANGUAGE OBJ 3,905 11-06-98 9:37p LANGUAGE.OBJ +LASTCALL OBJ 505 11-06-98 9:36p LASTCALL.OBJ +LISTFILE OBJ 19,013 11-06-98 9:36p LISTFILE.OBJ +LOADPEX OBJ 34,086 11-06-98 9:37p LOADPEX.OBJ +LOGIN OBJ 16,573 11-06-98 9:36p LOGIN.OBJ +MAILCHK OBJ 4,349 11-06-98 9:36p MAILCHK.OBJ +MARK OBJ 3,172 11-06-98 9:37p MARK.OBJ +MCHAT OBJ 5,586 11-06-98 9:36p MCHAT.OBJ +MENU OBJ 16,046 11-06-98 9:36p MENU.OBJ +MISC OBJ 8,489 11-06-98 9:36p MISC.OBJ +MODEM OBJ 11,355 11-06-98 9:37p MODEM.OBJ +MSG OBJ 7,351 11-06-98 9:36p MSG.OBJ +MSGAREA OBJ 3,322 11-06-98 9:36p MSGAREA.OBJ +MSGBASE OBJ 1,433 11-06-98 9:37p MSGBASE.OBJ +MSGDEL OBJ 487 11-06-98 9:36p MSGDEL.OBJ +MSGED OBJ 7,354 11-06-98 9:36p MSGED.OBJ +MSGEXPRT OBJ 4,828 11-06-98 9:36p MSGEXPRT.OBJ +MSGFIND OBJ 1,190 11-06-98 9:36p MSGFIND.OBJ +MSGMOVE OBJ 1,273 11-06-98 9:36p MSGMOVE.OBJ +MUSIC OBJ 1,848 11-06-98 9:36p MUSIC.OBJ +NODELIST OBJ 3,800 11-06-98 9:36p NODELIST.OBJ +ONLINE OBJ 3,646 11-06-98 9:36p ONLINE.OBJ +PBUSER OBJ 1,444 11-06-98 9:36p PBUSER.OBJ +PEXCALL OBJ 242 11-06-98 9:37p PEXCALL.OBJ +POSTMSG OBJ 1,268 11-06-98 9:37p POSTMSG.OBJ +PROBOARD OBJ 19,002 11-06-98 9:36p PROBOARD.OBJ +PROTOCOL OBJ 2,264 11-06-98 9:36p PROTOCOL.OBJ +QSCANMSG OBJ 6,498 11-06-98 9:36p QSCANMSG.OBJ +QUESTION OBJ 4,658 11-06-98 9:36p QUESTION.OBJ +RAWDIR OBJ 1,547 11-06-98 9:36p RAWDIR.OBJ +READMSG OBJ 16,076 11-06-98 9:36p READMSG.OBJ +REPLYMSG OBJ 6,524 11-06-98 9:36p REPLYMSG.OBJ +RIP OBJ 8,559 11-06-98 9:37p RIP.OBJ +SCANMSG OBJ 6,610 11-06-98 9:36p SCANMSG.OBJ +SELLANG OBJ 2,711 11-06-98 9:36p SELLANG.OBJ +SETAREA OBJ 7,949 11-06-98 9:36p SETAREA.OBJ +SHELL OBJ 15,958 11-06-98 9:36p SHELL.OBJ +SHOWANS OBJ 1,379 11-06-98 9:36p SHOWANS.OBJ +SHOWMSG OBJ 6,823 11-06-98 9:36p SHOWMSG.OBJ +SQUISH OBJ 12,267 11-06-98 9:37p SQUISH.OBJ +STACKING OBJ 562 11-06-98 9:36p STACKING.OBJ +STRVARS OBJ 6,503 11-06-98 9:37p STRVARS.OBJ +SYSOPKEY OBJ 3,217 11-06-98 9:36p SYSOPKEY.OBJ +TAG OBJ 2,173 11-06-98 9:36p TAG.OBJ +TAG_RW OBJ 1,875 11-06-98 9:37p TAG_RW.OBJ +TERMINAL OBJ 1,549 11-06-98 9:37p TERMINAL.OBJ +TIMELOG OBJ 1,663 11-06-98 9:36p TIMELOG.OBJ +TIMER OBJ 5,645 11-06-98 9:36p TIMER.OBJ +TIMESTAT OBJ 2,875 11-06-98 9:36p TIMESTAT.OBJ +TOPS OBJ 2,441 11-06-98 9:36p TOPS.OBJ +UL OBJ 20,543 11-06-98 9:36p UL.OBJ +USAGE OBJ 747 11-06-98 9:37p USAGE.OBJ +USERED OBJ 2,403 11-06-98 9:36p USERED.OBJ +USERSET OBJ 14,469 11-06-98 9:36p USERSET.OBJ +USERWIN OBJ 3,863 11-06-98 9:37p USERWIN.OBJ +VERSION OBJ 2,811 11-06-98 9:36p VERSION.OBJ +VIEWFILE OBJ 980 11-06-98 9:36p VIEWFILE.OBJ +WORDWRAP OBJ 554 11-06-98 9:36p WORDWRAP.OBJ +WRITEMSG OBJ 9,083 11-06-98 9:36p WRITEMSG.OBJ +ZIP OBJ 5,233 11-06-98 9:36p ZIP.OBJ diff --git a/fixyear/FIXYEAR.C b/fixyear/FIXYEAR.C new file mode 100644 index 0000000..261ee0a --- /dev/null +++ b/fixyear/FIXYEAR.C @@ -0,0 +1,198 @@ +#include +#include +#include +#include + + + + +#define TWO_DIGIT_CROSSOVER 10 + + + +//************************************************************************** +// +// Make sure a year value is ProBoard Y2K compliant (i.e., 1900 + 0-127) +// +// Prototype: int NormalizeYear( int iYearVal ); +// +// Parameters: iYearVal ... Input year value to adjust +// +// Returns: The "normalized" year value that is Y2K compliant +// +// Remarks: +// +// The year value that this routine returns is between 0 and 127, to +// indicate the years 1900 through 2027. 2027 will only be returned if the +// macro TWO_DIGIT_CROSSOVER is set to 28. Right now, it's set to 10, which +// will result in a return value of 0 to 109, indicating 1900 - 2009. +// +// We use this macro to allow the programmer to customize the cutoff of two- +// digit year values to suit their application's needs. +// +// This routine performs quite a number of checks on the year value. If the +// year value is negative, it converts it to positive and goes from there. +// +// If the value is a two-digit value, it checks the crossover value to +// figure out what century it's in. If it's a three-digit value, it +// considers it a freaky value and tries the best it can (it MOD's the value +// by 100, and treats the final date as a two-year value). +// +// We also check for typos here. We only consider a simple typo of the year +// 3XXX. If we find a year like this, we'll treat it as a 2XXX year. +// Anything else is treated verbatim as a legitimate 4-digit year. Anything +// after 2000+TWO_DIGIT_CROSSOVER-1 wraps over to the 1900 century. +// +// ------------------------------------------------------------------------- +// +// Created on: 06/17/99 (Jeff Reeder) +// Last modified: 06/17/99 (Jeff Reeder) Created +// +//************************************************************************** + +int NormalizeYear( int iYearVal ) +{ + //---------------------------------------------------------- + // First, check for really outrageous year values. This + // means years from 100..1899 and 2000+TWO_DIGIT_CROSSOVER.. + //---------------------------------------------------------- + + if ( iYearVal < 0 ) + { + //--------------------------------------- + // We somehow have a negative year value. + // Convert it to a positive value. + //--------------------------------------- + + iYearVal *= -1; + } + + + //--------------------------------- + // Check for outlandish year values + //--------------------------------- + + if ( iYearVal >= 3000 && + iYearVal < 3000 + TWO_DIGIT_CROSSOVER ) + { + //------------------------------------------------------- + // User must have hit 3 when they meant 2 - subtract 1000 + //------------------------------------------------------- + + iYearVal -= 1000; + } + + + if ( + iYearVal >= 100 && + ( + iYearVal < 1900 || + iYearVal >= 2000 + TWO_DIGIT_CROSSOVER + ) + ) + { + //------------------------------------------------ + // The year is more than two digits, and it's not + // in the range of 1900 - 2000+TWO_DIGIT_CROSSOVER + // + // This is a weird input ... do our best by + // converting it to a two-digit year and proceed. + //------------------------------------------------ + + iYearVal %= 100; + } + + + //-------------------------------------------- + // Now we can proceed with year normaliziation + //-------------------------------------------- + + if ( iYearVal < 100 ) + { + //----------- + // Short year + //----------- + + if ( iYearVal < TWO_DIGIT_CROSSOVER ) + { + //-------------------------------------------- + // Should be 2000...2000+TWO_DIGIT_CROSSOVER-1 + //-------------------------------------------- + + iYearVal += 100; + } + else + { + //----------------------------------------------- + // This year must be in the 1900's - The value is + // already in the proper value range. Do nothing + //----------------------------------------------- + } + } + else + { + //--------------------------------------------------- + // The year must be 1900...2000+TWO_DIGIT_CROSSOVER-1 + //--------------------------------------------------- + + if ( iYearVal < 2000 + TWO_DIGIT_CROSSOVER ) + { + //----------------------------- + // Year is between 1900 .. 1999 + //----------------------------- + + iYearVal -= 1900; + } + } + + + return iYearVal; +} + + + +void main( void ) +{ + for ( ; ; ) + { + char buf[ 256 ]; + + + printf( "\nEnter a year value (ENTER=quit): " ); + + gets( buf ); + + + if ( buf[ 0 ] == '\0' ) + { + break; + } + + + if ( isdigit( buf[ 0 ] ) || + ( + buf[ 0 ] == '-' && + isdigit( buf[ 1 ] ) + ) + ) + { + int val1; + int val2; + + + val1 = atoi( buf ); + val2 = NormalizeYear( val1 ); + + + printf( "Buffer=%-10.10s Year=%-7d NormalizedYear=%-4d RealYear=%d\n", + buf, + val1, + val2, + val2 + 1900 ); + } + else + { + printf( "\nInvalid year value\n\n" ); + } + } +} diff --git a/fixyear/FIXYEAR.EXE b/fixyear/FIXYEAR.EXE new file mode 100644 index 0000000000000000000000000000000000000000..7a8e34e4426bca25c8af9e076def160cd261b1f6 GIT binary patch literal 11588 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 W{WbXg?RcCuexd$D^ds;;GW;)@Lg5bp literal 0 HcmV?d00001 diff --git a/fixyear/FIXYEAR.OBJ b/fixyear/FIXYEAR.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..1c4ebbf7020d2fe412ce5430fa209db597429989 GIT binary patch literal 940 zcmZ`&T}V@57=F+GPM(cHp~Hg4iAW6bDYu3-LAt=e&q6(rIw|j+$n$i|^xoo|or&AKs5|(hOB0 zVQiddqg4O*Of3LZ`&`#sNM|G}vJywS8XCxE%CVa<0+jVInmG+nw2@!yj%6P*=Mi`N z>~d{QuhZ4+=xz77?)%+zZ%pQd2o(-j>N6Z4ic#Tg#*Xxjuj|g)PU;ycB#1l}c2zWx z;-W}}hxZM%0RI`F0HW}a3geXw`sMKTuIW#@*&?GwffCv#U#wj>&!3+u`qAn8l%f2XuPuCaUg@ zg29N*Y88M9$INpkIHl@Ty?^=w;0&{$4~z^eM?{2&P#QUe@BlBzfS$1cU`A$;6(j~= zZ>9!8E8~eo2U$^g%m>kGGWf4!9Qsp%~LA>Wc$-Ug(QDZ6Qmq3NMt`yE9a#mUW^#lW5yhfuNMfc0|f8Cxpt6 zfOX@R8dP?aPeu{%><%2X?TZ%=C#Cb&lC@;9FS19Yiz6!YKw0lwF}nv>(!X9 zu!@RrTJbiZ%fGQ +#include +#include +#include + + + +//------------------- +// Local, static data +//------------------- + +static char *Text; // pointers to search string +static char *Pattern; // pointers to search string +static int Textloc; // current search position in Text +static int Plen; // length of Pattern +static int Degree; // max degree of allowed mismatch +static int *Ldiff; // dynamic difference array +static int *Rdiff; // dynamic difference array +static int *Loff; // used to calculate start of match +static int *Roff; // used to calculate start of match + +static int *allocated; + + + +static void near +App_init( char *pattern, + char *text, + int degree ) +{ + int i; + + + //---------------- + // save parameters + //---------------- + + Text = text; + Pattern = pattern; + Degree = degree; + + + //----------- + // initialize + //----------- + + Plen = strlen( pattern ); + Ldiff = allocated = (int *) malloc( sizeof( int ) * + ( Plen + 1 ) * 4 ); + Rdiff = Ldiff + Plen + 1; + Loff = Rdiff + Plen + 1; + Roff = Loff + Plen + 1; + + + for ( i = 0; i <= Plen; i++ ) + { + //------------------------------------- + // initial values for right-hand column + //------------------------------------- + + Rdiff[ i ] = i; + Roff [ i ] = 1; + } + + + //------------------------- + // current offset into Text + //------------------------- + + Textloc = -1; +} + + + +static void near +App_next( char **start, + char **end, + int *howclose ) +{ + int *temp; + int a; + int b; + int c; + int i; + + + *start = NULL; + + + while ( *start == NULL ) + { + //------------------------ + // start computing columns + //------------------------ + + if ( Text[ ++Textloc ] == '\0' ) + { + //----------------------- + // out of text to search! + //----------------------- + + break; + } + + + temp = Rdiff; // move right-hand column to left >> + Rdiff = Ldiff; // so that we can compute new >> + Ldiff = temp; // right-hand column + + Rdiff[ 0 ] = 0; // top (boundary) row + + + //---------------------------- + // and swap offset arrays, too + //---------------------------- + + temp = Roff; + Roff = Loff; + Loff = temp; + Roff[ 1 ] = 0; + + + for ( i = 0; i < Plen; i++ ) + { + //==================== + // Run through pattern + //==================== + + + //-------------------------------------------------- + // compute a, b, & c as the three adjacent cells ... + //-------------------------------------------------- + + if ( toupper( Pattern[ i ] ) == toupper( Text[ Textloc ] ) ) + { + a = Ldiff[ i ]; + } + else + { + a = Ldiff[ i ] + 1; + } + + + b = Ldiff[ i + 1 ] + 1; + c = Rdiff[ i ] + 1; + + + //----------------- + // now pick minimum + //----------------- + + if ( b < a ) + { + a = b; + } + + + if ( c < a ) + { + a = c; + } + + + //---------- + // and store + //---------- + + Rdiff[ i + 1] = a; + } + + + //======================== + // Now update offset array + //======================== + + + //------------------------------------------------- + // the values in the offset arrays are added to the + // current location to determine the beginning of + // the mismatched substring. (see text for details) + //------------------------------------------------- + + if ( Plen > 1 ) + { + for ( i = 2; i <= Plen; i++ ) + { + if ( Ldiff[ i - 1 ] < Rdiff[ i ] ) + { + Roff[ i ] = Loff[ i - 1 ] - 1; + } + else if ( Rdiff[ i - 1 ] < Rdiff[ i ] ) + { + Roff[ i ] = Roff[ i - 1 ]; + } + else if ( Ldiff[ i ] < Rdiff[ i ] ) + { + Roff[ i ] = Loff[ i ] - 1; + } + else + { + // Ldiff[ i-1] == Rdiff[i] + + Roff[ i ] = Loff[ i - 1 ] - 1; + } + } + } + + + //-------------------------------------- + // now, do we have an approximate match? + //-------------------------------------- + + if ( Rdiff[ Plen ] <= Degree ) + { + //----------- + // indeed so! + //----------- + + *end = Text + Textloc; + *start = *end + Roff[ Plen ]; + *howclose = Rdiff[ Plen ]; + } + } +} + + + +void +App_End() +{ + free( allocated ); +} + + + +int +fuzzy_search( char *pattern, + char *text, + int degree ) +{ + int min = 0x7FFF; + int howclose; + char *begin; + char *end; + + + degree = ( + strlen( pattern ) * ( 100 - degree ) + ) + / 100; + + + App_init( pattern, + text, + degree ); + + App_next( & begin, + & end, + & howclose ); + + + while( begin ) + { + if ( howclose < min ) + { + min = howclose; + } + + + App_next( & begin, + & end, + & howclose ); + } + + + App_End(); + + + if ( min <= degree ) + { + return ( + ( + strlen( pattern ) - degree + ) + * 100 + ) + / strlen( pattern ); + } + else + { + return -1; + } +} diff --git a/loadadf.bat b/loadadf.bat new file mode 100644 index 0000000..2bb3240 --- /dev/null +++ b/loadadf.bat @@ -0,0 +1,28 @@ +@echo off +rem +rem Loading ADF for COM1 +rem +rem ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄCOM-port number, COM1-COM127. +rem ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄAddress in hex of COM-port, 0-FFFF. +rem ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄIRQ number of COM-port, 0-15. +rem ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄLocked baud-rate, 1-115200. +rem ³ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄSize of receive buffer, 256-16384. +rem ³ ³ ³ ³ ³ ÚÄÄÄÄSize of transmit buffer, 256-16384. +rem ³ ³ ³ ³ ³ ³ ÚÄReceiver FIFO trigger level, 1, 4, 8, 14. +rem ³ ³ ³ ³ ³ ³ ³ +adf COM1 3F8 4 57600 4096 4096 8 +rem ³ ³ +rem ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ +rem ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÙ Advanced options: +rem ³ ³ +rem 4096,3584,3072 16650,16,8 3 11 +rem ³ ³ ³ ³ ³ ³ +rem ³ ³ ³ ³ ³ ÀÄ Modem Control Register. +rem ³ ³ ³ ³ ÀÄÄÄÄÄ Line Control Register. +rem ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄ 16650 Transmit FIFO trigger level: +rem ³ ³ ³ 8, 16, 24 or 30. +rem ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄ 16650 Receive FIFO trigger level: +rem ³ ³ 8, 16, 24 or 28. +rem ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Flow control continue or restart. +rem ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Flow control hold or stop. +rem diff --git a/ma.bat b/ma.bat new file mode 100644 index 0000000..e445300 --- /dev/null +++ b/ma.bat @@ -0,0 +1,3 @@ +@echo off + +tasm /o /mx /dMEM_MOD=LARGE %1 %2 %3 %4 %5 %6 %7 %8 %9 diff --git a/makeall.bat b/makeall.bat new file mode 100644 index 0000000..4fe01de --- /dev/null +++ b/makeall.bat @@ -0,0 +1,3 @@ +@echo off + +call mc.bat *.cpp diff --git a/mc.bat b/mc.bat new file mode 100644 index 0000000..9d441c2 --- /dev/null +++ b/mc.bat @@ -0,0 +1,5 @@ +@echo off + +echo Compiling %1 %2 %3 %4 %5 %6 %7 %8 %9 + +bcc @mc.cfg %1 %2 %3 %4 %5 %6 %7 %8 %9 diff --git a/new_obj/AKA.OBJ b/new_obj/AKA.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..053e8880af87774f6d010ea0c91150f65e04322c GIT binary patch literal 761 zcmZuv&1(}u6o0du>~21kfU($12_=XSEQCngi?C_ZSg@FoO_uhc%Qo4X&?HTEH)-pk z6yhN@7Cea-k@^>i;3428huqv#@Z6jDksdq+n}h4yq_Gx-nc>av>kW_Da{w!E$TOL8 zx!bq~0Nzw&e%80JsTSl?))xr`e4&}(pkW6%rD3bV0K6fo=zN0(7@!;>q`uqT+s^|4 zT=;HSN-eIWY>{|$(Jn>9sjzK$NDG2M<7T3FlJRun*9#VI*a=0Gn^-MzV6zj}ssI?4 zxDFZMOvg0ALE57CpgJT+jYqEgfp9bb%?Qo!I+4a(2101!8igXc#N z$m1j(M-D;&(#@0l$#kfl7_Lw^k(_D)B!}rKLI1kBWy4J& zdpu^{_1$CGwYLcLs8IVoxZ2g(76(?SS>wzabC$xLn^sqm{JR6wGRc-*7vS3*==8T8^BnxQW2oIbXnwx`aqra}7=6)Yd=WXLE3(E1kulzi z#CR>bjmL;r5zk@Giw%Rd467vB7 literal 0 HcmV?d00001 diff --git a/new_obj/BINLOG.OBJ b/new_obj/BINLOG.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..5ecb6d752fb7315b4929b416df7971b723627bc2 GIT binary patch literal 1579 zcmah~Z)h839R9s`xg_S&uI<{ofgj3ApHxOa%#R|1pdYgCOBr#?Tyh&_==`Fe1hY;FwRW}4oxi)JODCOv$npC< z@AE#-^S-|q@{Sigqlr{oTO;nH2sJNt1L03STj-#2hviXIz|I(i2}$2cj}6YX)>A1OFE z$l}i#IvyDq5(EEM#to&l~e-{Hc0SIs|h%?hyy3hfnXxl zH#r`NO-;!u46or--HT7-Qq#^-Ewgrsfvt@d9zn8stnEF?Q+#yCVyB%P5GtmBF z_>OSFdKTHdH#>I+=C~YzHO9a44e%>!bA4SDzk>1vvm4-7&$Hz%qPkxxfWnr4Cpptx zHccUdqz5~y?i_%SyTk}N4g~+ovIm4nu3(k^RUuNdZd#z*3*jvcSB2{?*}TVMo7%Ri zZ9NVHe6-S;eO2c`Wy@pa5v6XujFc;#FFAGYZMGaFd&^%7ZvtEkZvZ^O2v3(`%j|y} z%(3O~QDxndssNys-oL4jZ1`7E)jnlJcs%|s*IuX6EAKwU+ho?n%LUM{`d9D&p;v6R zb$z7rL^b{Daslq&-Aj>Zl`LHcqHSd9CX~m_|5vLA6~#3^8{Q!H)}J0$@7O+$DB9PF zw)VVhuSgUl)xir9JFED{o@ciw>NYiJ-3bR>Z}72^^5Wkk`Y)$$;KS9!PCo2bTde_A z%@?S90l_Pokf~WZwMa#5oAWG!WCQ*wpy6Ymm)9NN_Gonqzi>{(OA)7>q2zlY@+n+ny#rN`_=Y5{{eV_9k&a?^Y zg7I)TBny#NJ{DU@o(BM{x2Lni-W?Ugfyj`(r=`W--r9DQ)B^maU_40!yd=Di&ZG|D z2-7iyOTV;r6ARY>jNQK8UZ?j?ALn)6^J;qf9ZoIh=<;@Hih=9)cqn{m$1Qiij}0#B z;PNMeq=+caZquOA5;cVkfYuSU%QWZ}QlWg08i;d@G#VWbM5KVkH;+Z8c)1PCXED%o zu^@-{9s!CIqF`f&qmm?qg(xG20z*Ze5a+>K#hZg+X|z~?hX2qh9%>nv5Ds-=IWr6w zI1k6VogNS8?DIO^oVTCr>F>jCeNJd(IG+>}nQ%aoJ)wZek9uMu9*kvJnv@)Zh-Y|Y zQHYE%&B1^)g6B@)8RjZDB#X^s2{po(5FIDUVmK6mV#3EJA@ZaVfG{zY8!VXs$gO-P z2moJdZ)VSm+7I)DD?Lb4KQ2w*w95x6mp+AP>f5aAU>5DGY9QC1(BiwLbVCQWdDkAh zT)1byKM(3o6*d;8Tr{Y21&NgODNeGDCz8e(YGz&5P| zRG#T-(eGChf0V@UVp+}6yDMz{D#@w^@AS~J6)_RG;0$=R2aa+lWqYVle#$tF!MBnSFzF>DL9? s3uMlwP+fWwx6Ix}Ci98`NC1Nl3~sm~GNRaaT6pduAD%x@cnvF%*+(>bk1hvXHlP z--rD|l1jbKIp_ZF@1C!FYM*nV9kF;iIesvfN_{@lh!CnD>^XYG)16EwqHNsL)86js zJlL^1Q-RQbt!Q$_j?k;rp#SKM1EE!bg9*02sHmFy@d1P?d;I-<$0LKso*cCG^!blf zMEqTYT{iV2(mgO>g=P0Y(%&}}?0><5+D_OlR_c!+J=%wC71RQe5VAWc*Nb-KR4j^h z=-Ce2eqVDh!=9q!y$r{D`6B~-nqkM9eclm>+v>hOp%&@$7LO^$K!;p${e1vA> z1moETlcpyb4bij>VvJTV*`8oLDbVDK=4}X~aqwVVkBdPq8(|%X{mDr-k&MOzOoBFr zeedmY=HOay4=u;&y**G5)ftHNK6!ko*N5)(L7$9eqGNP~Q_B)b(Ciq0(mTPPiJ?kg zZ{H)TNF!$?H4-6UWQ{OMf_-2k2-zc5)y^$56Fy=1y~dCXK3879aRYYEr9dlWB&B z8nIJChC{nF8{7kRVTq+iv&0ffPOW6UrYBQ`gq=DQ%W#0I)~pQ6s1314RiB8C(-2vd z8`F@ep=>58O9ded#1j)dngZf@_kd=G!)k*}=^aAuLv@66gPHGuTxxH_mjQxwPgHYu zr(q=_Pr*%fh9OQTdLdWd2_S4VjJmJm#&wVmoz*)M=hMWe5`lLlMl9eEv&pEsX<}88 zTe7M<0<;9Q7tInO!zSRxqaDN&A5GJwefXpr6|zUhPsO2*F311`K&mD{r+G(MdeS?Q zVbI^sA3}&~^N~%Sj>M8Fh9(c}aL1N&M5;i4IUj%%5BmUmI-(9l0zbL|{*`CAi7nN0 zib9W{hZ#!k)`&)-S;4t8F{lheS1#CW6hcFD*QT#Mgd3g!JE9b7eZe=VhZd}^a zGXi_xTSq?LvSL|zPutugYh^A-1y#JU9-jNhw?9x*{S-;{s^-H=qvop4u)PAQ{*yb0 zknVcOb&2nG=Nu)yKUgN6&O7trwU%?wP~YTtx^p!pQ1Jt685Ihx47+ppqo7I)_M1jU zoGRHr4HZ&(LlLf*PXd3=g2;s>j9oXBIPCLJZSaV+jvjL;^q>WutyY9}MOZ7RuC%MQ zn!ZuASvTl&SATE`B6FaOwRqJ6q{~J|K>pN_Hyo*OqAdO-8~8XM{x7R+vVYZ-jK3=|Pr@P{PGe!8$OJAbGzp%UT z2ka`mhg%C5L4F0_U6=uR64w>RaqShRf!b9#f%jZ_w1L`L_&TmGw1TpSC=R?|Ud3*C z3A@5Oh?E`0BAEe+J}%U{-0 z7U|#k9_ce&bNLgZNZ2j?27m4HuZZ#%2yYPK6>O1ygzeJzu}zx7?b0ybC-uSV!5vaN zzC+rH_lh_1Ve#+yPVwisQTz$65}${48Xpwn_>dUH`$Rvi4%oi~H;L7_>Gca?3x#Z? zh&9Xq`5z=!ooro3e#nM9cT|5xFiPetgL;G9M;fHfxm9V4)s$MSuhyhgd1sDN-_WO| z*rnM5onaaRFl+RORRY-Yypx>xwb2>QEdFISkjsa2MwRirhafJR5cAoN(H6}pG4Wp4uw;G1hC5EB&mh3RC)f}m>3H~S0bp1tZx+#5N zFlnI>j6`d3c}+W{PY=M92d!-beC5anHH+7?fi*HG^^u@IX`nOVHs8s=v$EF&2!*y+ z$jl~F|H4Z@L~<{-$PZ(?d>Gs0{n#q+#*|Fq15y!JNK4Sn@8VYJ4ZK5o89SwCL4F!m z0@g6B$6<24;p_SV})pfiF?SmU=IghRGCrup5kFx ykA}Mofbdfa4jfCTlW7n6ast15Jk6YkPr@gfovB4=nJWK+^Gn$dlzY_jUK$drzCXlWCIj&vNW6uJG*-A5kU zmPyXJ=lt*U|Nr^_dv}+WSo~eS=xTpY&yK-`gb=%@Ze6vwF&qi{LhWMR%9Uc(>YFbO znhE*BNcskOLXL8t`gMaPgj@nSKtP>0m-aulijY}#n`=Fir(v7NRM%ABV3z7@J+&r% zk~X%q7%}+zP0dZM?q3}$ADt9Y6 z6~qQUIT*|#ZO$!Cn<{z(utg>osi#eX^E!!93WSMC@^^F+vlLTsgi@);*C|8055^L! z6pD3A0}!K-SrQ9FN6^3)S)@}-;ZQITlAZ7#7@{!*AP|5v zTyRt^Y;$&yMN*68ZfbYo?*z$vxD3}?`% zL|bHE#NXA@Bl{7i99S7p>H`sYz=IrcMSR_|Qx5ssf^vIBKdhSL+!_eAhx?rVU|2z@ z;$(IK5{BgrP+0&}wE3eEW^Vw#3xxXb_s9H*SWN$eFI#+Zd1I`j1IARewKLK<(kQC* zNq#vLl_Tunxgf*!&7h&(#EFd`i5pw3a3Z9aVChBVMH$7oI%*Y?3`NwwyP&#EeI-E=Y=Lk7=a5fMYC(B8=VZV`laKvQd2x%RT|Sn%;`NR< z8DNH6-OA_8^LkGZ+i)x(sJ@xT?3`*$L&2E59fz46hpx&FLH!Za-pI7S%jNl>W&FSV zAN{d06h4!(c>fGJfRr4-S zV#e{^&8Xn2ys8C!+TktY`zPF|s9>Cb7|$%}aY)xnjg|H7tI zfMjV|HchY1o}dfU#~mD(e%8UwNk8M@=4PLw=JaE1@dFQ+eSq52{SK})t=Kt3_FigD zx3R?*x+cBZ!OhOzO6}R3FqVOCDWkJHI9qx)Xwo(Zw>VvbY4qQePyGv^(T}M;bskiy zb8I(C7mOyTee`8OUu4kV0-AanhKxQzt*J*D%|mqMXfJ3wF?L|IfVPRzewSg_(X9q-#*vG3e)1!*jGU(S5$H_5jZN|;uqA&Dj**`Od4c{aPh+J zv*W@I+M(>@DFXhf#Xq^4GM%@i$jZNFVD)4yCrYnzXAA48w`kCHX4lR$i(|9*)Zm6i z&Evz|gmL^;4!~J4Q_6Kl{0 zx5$L>wfOgP`1eWkv@&fOf^wK*i3%uz`&?(HVJG_)57Y^=!9t=X8_G!3Inh4#?6%>Z ztETQZ?{%F{+c1QodXpv3@e6>Ir)c; zTH$!&l%3ZLWiAQL2(QIWYWXBE*BZ3y7x4~w3kRlWp4`i&KSxDKe~MP{ z5n91HT9JK+R;1qqF#8JqM)o&!Y5K=Fzc3iTxv=ua^IP8X!kqUwykLk+1{QFKx-fpqkF)ca#VKMwRy8G0AJVYCYcy&apB z#7LT`Y4jF){pj^{`KX<)NZAmegqdi}_27)R-Xk)NUR zKFTl;VHz0#9g28qG7P$87n`=B`z1YWYGT{XY+A>*x3Fn7BfgHU&_l|T1-deW{*gid$e@2DSpUfMQ$qqCvn5#9$h3l_fzCo*HY8S~ zVy{5OzLu6`Y}gxU*>gwkAl#QFYq&y?t%ELY*G{c2X2#pagrRD9uj}%(xaab6N?Pzk zuFDhbMdQvl?s{?_$yC#CW-6(eF;QcJz=YtD+c*OuRx7b;q_SOHzMi*Coa8GX(MCba!lu~O0PgMmz3J=@gblSb4( zcI9?vxfR2~m1tz~_M6sMt?gzz8{6HyzN#8Ki)aCnMv99D{45gg5ZR|uPFO_ljp6fo zwdlrIv?6Y=+rf^-@Zu^l91*wI>HuF`I1<(EAa%8i$%BJ)2^r&xzrO5${NW`}?Sn(3 F{{a=x$xHwM literal 0 HcmV?d00001 diff --git a/new_obj/CLEANUP.OBJ b/new_obj/CLEANUP.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..78568cd1a4c363bb2e654431d47cec1e23ba168b GIT binary patch literal 3276 zcmZ`+eN0=|6+h2kP(DpUA7NdoLxH7ZO-9JbM_c;9m?je+o(;G0q~_H&4|tn-&pbc# z5v^M?s|d>IqAo&Bmq;K@+tf{JCPkX3>W@3-Q|(f5*Xc+`9S?J_v9Y_nLopP_d0d9c~Jn^XgElyQ~sIG}vTvSS_n z(M6j>)a5BjgK9A*=`-?}q)w@05;&-Nq!a3dSxwd@Q4dZ;HEX4MSAnW?GS9ImGF>Ea?=*#?T-kY*#rwCK}Wyp@Kr< zycCJVV6QN)#$s|rRt1A(%E=yq=FPfHHO5nY38pGEE9&_;Lq!7+==@?gX~TPEWk8(} zg3)M!XQv6Zgu*&=+9S{tu<1fPO8ZPVRtl7w9!&}g<2WPYDCS|zQ_FNbjK>*B1RLnb zv%-`9s1%0k0*nRr$r_Z2ez(u#8G?G@Wo)22D}-rncz}#Q7}iA1bW0F5#`35&eN@b! zCe~^Kh4g8pcvx2E&W7V*oas3Gg$C2jD9IhyVsyS|Fcp7rM(T}^k7GeCp)rGk20@R_ ziec6`gHoBrf?Bo^lB6is9gD}1QRd0wspI1`q_Y%aN!Eyc!=t?e98x=Z3c_`52%8@V-Oe*+i;>U+Mpw zVFUu`khFuhbEET5USCtPvfzp?4^4mP68UVY|9t zV8HpiGuF~$*8r|TmC-lDH$jRLwbr^kzP#gjcqf}rX)5Qk)IThM5>(Cj1X5ynL(?} z>$jy|AqIU=gmBM=lE8Q&N{(Vt3}~geW!(nLyakpP{|c29@$5~W ztIhtAiVdFo($;li+qy=Yv%e(H8|%cGy-Zi$recNX_GFi+_#w|dnGN&Y6WP;rVFbn2 z0C^$X%X4L0$4Phg5YLrweT6)~)ku1?wYX)=L3%UWsN_FE?~@k|$5+H%MFN z_tdybx--8H$Nl? z)5u9z8aX+dzDBioskY8@-$-9UvH3db-26UiPoL$vXEqg5nf?yXJ+>Jn73o)~;v+Si zr$}|$LyhN1Rr)9@>1Xk@%{J1MZbr&B>xd&=jVI>*OWe78#GSgsbNh1tK;^GI*OB(m-;!1+!{HOyF`xVR`7F<2)QUZp7W9CQm1(C%c(vZ_YgUe zYbN$o6B?;TDyn#{{>s{qfdiY>91)x{^Yti98GVK5C&}R~;ivTKRb?Dkpsa`l0&MgO z!RSlUu2s={Y>nI5;Qe3tq=j85^E|xC^fBJNJP26A*K;cQT5gP3Q)hUtA@wrP@i{NC zq`rw(&Q01=FVfmi(Aqo5S5rvlGpYU9n$(lnnp^|Y;l%w`ayY&w0Nx6Jz(4FAIz0kU z?5YR-oTL6 LcKz-RjH~|-$1)r} literal 0 HcmV?d00001 diff --git a/new_obj/COMBINED.OBJ b/new_obj/COMBINED.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..ee9cff6cce88caa04b397695a2193137f46460ff GIT binary patch literal 2836 zcmbVOdrVVj6hF5wutmTK#UXY#T9l|`Fcvj?m?}_pQ)r-kj6b%U(q77)wJp6De8f2o z2?IMbx5Q_R!N;~degY4M4o;1PTl z-s@=g@YG;#>i}cQ5a1myr5*tb%1hzqW{=pa7-0H6=q4u?Vii36GTd%yfkLjHv(;7C z*K^f1_Uby$UdvV1*4S6oG*n{|Yecu=*DAPMsZ!Ivjuw$Jh#N(pf8w0fkel2wQJet! zB+>%;7Onx0Y4JEjsh)QPoUQeK-U(CVFvhA90vNn9J|p&xe%>Pa+-?s~TRbz};1Wcq z&x<5T)HoyEILT6YUki_|6Cexw6Tl;RH&9aYEcH@A@VYJLX1>j1-k`uRErmKnx48{F zn45xJ64Kv+jZSWLQUv1(_kc7DQtgm@9>_qd1CnnooZDFhz~oyJ7lRXdk8&oQ6P)(( zoiov#mohs&*g1vW-_)?DSEFG78iJ$SMwh5aW2CEh93awlP?1L!d03GjD)N0rex%6b ziae>vPZSwaM_#1Nzt2{9u)j{ zP}*W9rcjG2S&F_-$~|!>ty*1dHv0VWa34&0V+;wrEO(5e_tbb(I>Xs@cX6>4iIt|` zbJ!R!TdxPL*S}Q3zJKl*&bODJ(5LOxg=9J2X&i<71Tfzd)2cM(*@4YdwvAs@zpfq$ zj8Dpd2fZspd^idz;WKjXwx;Ie1lU3)bpE=&8B41%Yda!)kplI|$2ih+5><~B ztXD?ffS~nSkX-4pUhW~I6HQZGnwo+)J7s2b%{Ce9U8xW>yD^O*T+PMwIO2(*F&42& z^x&#G-NO{(z*f;$ao$#!*fdc|(0avSy(Xzgyz)roU+$IQpD%xh*Sm96PbMy9^L;Mm z)dMBW@Eu}`jOH<_;nReToTSPzqKO=#%07}G*=1xhhI!L>+BL{Y5e@ z`W%@RHIXU(g%~3`ov5N2#4tEU4B=Y{gkxAu_%Dn)_zS}45ROv#428d-@G*qmqtIcx zdW#ed`bptn3o(To5%Bi5G7M-Q=`$7|#`$y@OCC0iOyZ+fN?jM`#3|O{97-L}Gl2A7 z0Q?}uij{fFO~3H5?DWfRrB`LkPx2xS$ct1s#C-BY_yUc;@_VVV9(GQ# yi=B9cxLABGu4~nFi9F*;3SOM@MP4>3O@|x99oZofd74wcgvkKA-1% z&*%9(&-4A<2lg2uy57F|HT&z?o40S@-<1Ra2~{hXCyxE(H$S*SHI|tyWhnwyJDHmAJB^v`kl9y1Z(+ zsG)Yn+O-0Hq|)*=73(TvkLV%Otm6f42F_LiFY34{G%L19dhXOw2@EQ)3hNH0fuXj+ z-q6t4YKNGTw3q7bTkUB(wzWbu8r$r<(ss0Lfj19X0l4H6ET^$ydy~DnxwgJ;XC3;r zY~Go(Wy@zGoa+%q4qzP{_vRflLV;v}HZk{-H(p5v5K@hhaX^0@*pMn2q0cbSRAgZT zBcoALp{1wDA{ss_vg|7=vKU&wW{HKC;fz8{P;*I#eSPK;j~6zb|9?XF8AdQT?diik z*+4p|_$aagCTwL_hi|z%6MzGnu>oB(@9eZ0$#5RN8MVUU&*$2%=3Y9P&w2AS7j&jk z=u8CmJ$jK%Uv<|<*n z$ZB?-lEma9A)Io6$-!03=jAHsOWLA94(z&Dj*qk4!=p~wueSPA8BTQxP#KyeLgi69 zoE=KEwnz?8#gF`K#<1T8SX7WOrlE>=ed|)kjs@SYE!xYchF`1%$hr8+MXj zbkn%ww`SgE^8693W-c$(gqy8<4sRWY~S z`ARXnWgoy;H<&zYRHwfCJZo|Na!bgOn94skp)*5VK?CgLKR^ZVJTrc;$p0ga~a7J5Q9F%1&@sz{E4g|2xkai z5PAvk6W$=~AZ#IQB0Nu6M93ys2}uMKK|&}&!hHf2pilwIIl`BOPYIt8J|r9=P$|k= zgoA|rgmywRp^;!G)DfN|P4& zaC$s_!nIC@-Izhz) z<(2~g-eTq!i_uHJNhZ?^+3=xzLK1IDz=4&n76{ zWYHN?S_xYTuM##A=vXSr1T!H9F|9}BdAd^nUEBom6C_NK7?v(9DJ*?hhOnZ-iViC# zEF)?P%7ikbVo?@U94a1_fO-Ozh4%BVYSYjIcwJJ*=cF% z=@}Vw=458hojY${R@VIa3l?N&FI@Ok&eOSz7Uw;)WNCgu;j*IQ3F-gCjMOvPF;e$` m9V7jk>=^0mWXDMVBjbx*@cEh^5;&r>kg zGn~~S!r<_7!vaBR6rFcEn1RAR)0h|-GC<6QQ>KY9@VdAL2ZnjNhR27vMuf09`@6Wx z&0uHnFkxU~X1qU*hk-TT#WBQ@1wQDY}P; zfioWFP=*;3L>L$tdE;He;!84fQ;TyllT+mx7$hc00)>S@!o?+tMJ4gcMVTd;$%#2? z3=Hokhy&#WKys;hDR3EG28Kr+EDR2d7$+{UU|?im2xztg20)3x4k>}NqTPqjitbPa uGG4RpXb?NAA8~j$gTRa1|4;9h7I<+5LY@78I&cmv!x82%M#nCo=Su)Kt84)P literal 0 HcmV?d00001 diff --git a/new_obj/DL.OBJ b/new_obj/DL.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..7fc86500ab6057236d21aad6c8b109f8397a1950 GIT binary patch literal 27106 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 aF5S2fYhA}B<^Rpe@#Or;pEhA$?*4BZSbIAF literal 0 HcmV?d00001 diff --git a/new_obj/EGA.OBJ b/new_obj/EGA.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..6f6b08b33ec2d2a5836bd488914928de27d29f17 GIT binary patch literal 304 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 literal 0 HcmV?d00001 diff --git a/new_obj/EXECHECK.OBJ b/new_obj/EXECHECK.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..16e9b4372b9e350d8a57d146e52e4ae2f3607a60 GIT binary patch literal 335 zcmZqRW8g`xNKMX2P0rR!E-2XAA;G}FAQIwiVW!}eUzC%Wm!jaTt*v0JXZWjwm4V?W zGeda?8w0~a#t;{a4t55HUqIzRA)wSNR-TG!1`G_mt`V-z9#GX!CAkM(V qz@VIqUxZk7N_b8@+rf#4p9b%7mO%@*5Lg{?nM_+eF*?L3t0gG literal 0 HcmV?d00001 diff --git a/new_obj/FILEAREA.OBJ b/new_obj/FILEAREA.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..d99480c6936b7b8b2b792c8c625e9790c3f149d8 GIT binary patch literal 3649 zcmbVPZ){W76+ibq``I{&2_Z?L?Lt;%?gS$=M6%GrABQ9lGNr*J=9Xv$%Qy~k2~J`^ z8>qT0TM*>MEsCnHr3h`XPTSNE6Wb6qtlBc>;EE=3hcwYu>S!y0;y6N4h)fzn-p+mR zB>~cXSPA#sbAIRCbM86!zVn{Dt&rW~Z}WMAK2NE)qvONgRREChs@h~P-rgQ;^8}iU ztJbY6E-x*c=`{j;&BKvi0pL7wRd4Dw0nDH|LZ})uW*>dq36LY!*40!t)Kt1%HG5r# zs$JDJMt60ktJ0tn_x8p{9*5wrt*>>t&5SaI;I7%rWJXoFdPl>qJE@zVikgMDK;+{GO zn2@Wkr4Cr(V5z%(!C-r^q%-iU*AE7_x8)!h-Qkcg2xfQaSg6AzwZc=57efatu||$o z|G`$q)Q1n3bVeX|L4jCvNv9ty3rGtTINW>Ck)zEMk{Yqb-qywrpBHj;7`<2fgOKOg z?w2ZqLC-OVmz_jOXB+xmz(PKWA=wTQH|uEg1z23GCWU;yL#Xtly{gqV5r~9C^A_H= z_K=UQ$k!~|JD7vO(O13U5L)GEs6XJxAQ4!tiuInuK1ay`uf(c?mQtBih7lU2pg(XB z70pZ$ft8LBA{}nrb2BQ`3St-yl!6|A+X7nX@N{6{X7>S)_YjuUi(A5agUOB7Qu`r| z@pc^3nbx4rcqBXwkJR3Vhat6x(Mb@p*cNpBK;cj$Q z*EG6ukGD*4Wf82}RnNc?6D0ae(einR7Yio&-0b$Z`9oNOfL+Vde|XdU0ffC^fSLX^ zxL}o9o^QAZlRQNFSEEJVqQ!jW|Hwn8AD=3+Vo|4Gma71rPpY&7ir`a~iyjI0h{r(q zFpC}H0HROo*cD?+1HkG2XK`J@VzhZ3-dS|p(w_%}&stQsAlPwkjwb+nqT@Z|**#kk z=`zL$q`C5ei;y)S@u~9=12{Ec>)A?-AQ@v|PV+I~oaF=fzx;-?p(thsXAv4X3*QiD zoM+Gn^u%*zIxUNt`2LJdIby)UsV2HM`y$-`^qB#NEKZ@HN7o5GT~i?CB3cy7hk0*8 z`M?zmVX-ib>Z7TtL1W(IAbNY>$7%+-G#as3M_*8S=E!S8g`LA}E|Q-ZMY~+o7UV z*a4(HxZUWro$opu%5TIhr0K`%78|sx=qX!J;Z*DbD0TxZ=Ftm zHO9@Tx_EAeCo?<;X{|ax8!zJNO9^oVYbFjca*L7Ak(}s%$ml7RzNOMPReDCHr&an( zm7Z1UZ&dngmHu9(zeU>Jl?#$dJ*l+8I{KO-i*pHa79dr^W4pN`!2K~ie*RNibcewf zeTkFBX_;pJN}yaxh}f@KbM4-?AY~%kp*fc2OEIuO@ zqU9%i>YuZ2wJENJDyV@vsE56<(HJ!TP+))mGUB(vqs>xnevbpU&;ALLcd@gLVJAp_ zPV*E0MkaB?MG~Lj7{M`w<2sIyTqOA`nv;B;T9ZLql&nSGj(k4yK%c&r!NxL@rbQz+ zQMk^8EA-iscWBPYacUjeN0*J*Y0kCvg+v&6j#{s+W{ipE49+1le2-cO#~5>s<_!Ot zT8F(jI}v=&MTQIMnxQXn1gSX===kY#8v#EF75s-S9oWyWDse}tvtic~zOi)s_C{Eb ze~xn&{Hz61j9@>wGcaW1kMLHs30it)P{el!pE766Qr$9^XMuBmcOa~}qk{tJbd B7EAyD literal 0 HcmV?d00001 diff --git a/new_obj/FORWARD.OBJ b/new_obj/FORWARD.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..5a8daef97e9b73da33489c93883698870e7c21db GIT binary patch literal 2818 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 F{soWKPagmP literal 0 HcmV?d00001 diff --git a/new_obj/GIF.OBJ b/new_obj/GIF.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..b3e7669cf84380a23abf90eb154a4a12137097ba GIT binary patch literal 2467 zcma)84{Q@<6o1!lZMl`X!5ACJIG_UzN-WbcVl*9W1vJ@eyM0oPT)Nw_otC!iUAsXD zL1&iz5iv0#NW`Efh8SW<(9wXhg>)T+wIx7A3_(Om985wC5+ru@eb>JuF|k>{``+)p z_xpbDd+(O+nFaa|Y1?YS=R4P50RUw!8|rGg^2FTUrV>G&eLB@(uMZ^#$s}uXi}K_|-LR zv^Tff{yLzCl|O4WTIN;UZMp~rh0Kd|2cXk4MF(|YNNSSW*7v70D=dOvbSWb5!iQUu z6;qd|)}i<%PlvR`F5A$!kC>xCJdgixFwG$cmp0q^qaaQ z;4DI?D7?+P1VNN#Q&&JTo9orR)$Qt#l{H}CeQi8mK?i7g$&03}czr&x9p+oMd1YC0 zOJ0lUakaTc>M(T$p*-h6q3x;y31yY#a8sLG?o=Hp)+)KhdW^JmN*$ea(-hcFc}jDh z6psW&IcOU!;2pfp-so`fjZH0$cD|*V-_YFDvbm|X5$0L=R$260+%8#hh%Ud->F|jH z%ud7d4!J?{gAo<^@hnfzPC-O{nLD(Y+T=i+Z0hN9!<>AyUBO!m!rXjJpqSeYC8{<{ zy5wL$hT;?=xV^GS)5=n|*C%>XX9i@9nw>%=kAw}SRiiS8;PO~JuI(a92qJS95_=vC zGPR{Om1ToWZK@<%6jZ9@O~`~bWnsmvn6Ze|?4Tpn3>sgO1GBYe!?OALVJa9@=fdw1 zw)_Dc}xBB6d6D^oZRvJVmI3CeUaQKb!}^6kCE4M&VnD zAc_OHcKBB<1JF7&_0E({L&8-6%abQwF2!Y2X;lcorY;BR``8;c*ln5JF^w%`1Y7xD z>xCI1#zE_a14W|&?c{q}ny!8e!B#VRawXX8Asx->yD^<1DnSQ>4t$iXu-TFCVa8=l z1tx=rWKfqmcfk7Kn0o9(TQc}y29zUq*e8lrmeTA)tRwg zr`8s%SPPlsOYAcWGlVp0motL@svvhSPUmR`CYNi5A|Ko7g=7mbd;>+J$}0p_UQT3a zbt+ifJ5?~$cXfJb|CQ;1zN3kO{a+3 zTW>5+b{F7RlSkDXHnO8iVTge{nwrr8>vg2Xle5XX-rd&$=V25=MQZbpCFl_uCB0#m zUV2q%SH_tuSkX=nLaqubt}3)A+aVmsTo-UU2m4MYs`W5UCu;EQrJMHTa0st(I8hba zn@wULOWN}iHZxEhN+wg)ITzs?<;4D$KRz(PdTHHyGc=8z+gLB7+*)q z<4=q%`sivcyIZIYp6Uh#aNJ=cF?B0a+S(j~d-% zUW|~%u{tt8R!J7c3Q1-34^k1mMxKnGBURB8go_>`1yPY0qc$=px{eseo=3W|XYsh` zQ$!nGMA)%PM54u{bc{vL@IU2DVfZdxZs0O8LYRp!h-P9RDVtD;>GB(7$=TP)l8FW~ zD{R5UiB*K1SVGwFA~eDkl!3*(Glzcw4SgzjpOn+_79FI^*+WzLhn;WdVQW0C$|zBI6oa&m9LHSN&W&*TYrUv~&97 q8je$UxMhL6oX--C#`Ddrahhd8?k@rOoyq(fyR_|l?$jVws{9L@>V7T& literal 0 HcmV?d00001 diff --git a/new_obj/HELP.OBJ b/new_obj/HELP.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..44b504c89098dca79b29afa2b99c5401c84a5fbb GIT binary patch literal 2719 zcmZ`*drVvB6+hR;#@L25#BsVtVs{PeI?<#dj!30EYOs9^8v)NYAMuED<(P}HYHZ_s zZD^FWmDnbO+bUhus)-Vbw4Js{tBP8!Vp*kStsj4cKp$FFP17_@+QdrKO5GGP(!@K* z*9MbzM*eZ0zw_{?``u@aU>KF6i9Ml2!k4)p04zSoV;y`~JQ)qfhIvO@8*kgwzLwDe z{8tMT89l%y&gXnAQxC9);b=nFXFBub%e?>%-L77@=yM(O)j9f|E}iJ?^mW#iLG1E+ zwfNPGJ$*es(LhKJz34hdI$>FNKH=#faDVzrJv{uDR-@&fMyY#=tJ86hlk_I&>$&43 z>A}#zajIlAad*z^!Ccamv_E?81+GpEjfBA@CZ%vhR-~jf3?{n}iAtSGDQF*o?RIfM zmXh{pP*%KBFc}*4CZrHFR?PBKvNMu|deQ6fxLkc;u@6RK!|@4wXfzlLOReJ({6KTn z+Ili7kG77-PKDt9sx2wWN<1k!Qb{?UY#mQy$qI)YOxKv#Nn}ZJ$7Q01`>LU#DE3Cl zHI}%H_0#ZRH71^rVroOFP$V{aDwGOgBPsmb$Z9rA9_@_|}uds?{ti z@`RX3DT*|yfU1QhRcjI*-927cuh`Y^ak@NUEXSth$SDcT_K|pU3T` zkqu^#T!u>kt6zNhH}`ou!TxD>cUt)Bk^!cLwQPqGF1-Od4P>!c+Xn|f`N6t!%;W9?TZngj;s^JO}Pl`fe%xRhe%pXTFD_saDT^IeQT@!fHW(5$ap! z0V-YiG03hK^$ZdveK-8bT1wwqcWkaV2kyB^x9zI!Be!Sn8F#5e1EmfC+g0~mg8J@u z432b4IxN>P4t2xsLI?3j`HJabA z4u&Tra18-#o31L&hdEF*E0*P^QW2ke04v9fxWIZ?e*4bU5fl{j^1ts^OtW`tJD~~2 zTjn*Je?LPB&sM3!P_wkDoPoGGSb=h7rk37zSWBh1FP}wzD*dl_p;G9;dhLm7?bc1T zZ8uk9*~0I2aBlT>m!~RSc?ecN!$ZC4KpCDrg51itvV|*$(0v6!cS7TF)6s634{`uYDmn-*s~Q68>#Ltiu8yDWX+TFZrha!Z%leZ^l| zIPKCo)>wRrgbdqK{3!~>w1v|wjWJU(V&(Kji6Dru|k-(gDOR|Mw~7GGqh!t+?6Fir3?gvHa$ zP?)4pnWADSEsh}BNiz8f`UwPrBNXun@$6vM#Rj%D{~s%7$$x>q{0-!~{ukDe|CEFe zm^r^d!uzZ~{|6NEa}@a-GQG}>`B^fZBke`joIg#z31qqcB-@b>p?3W^Ys?=bULOS= zX4d?E5_U0D{@Wxpv!;9#`E>*wrsQrDd}-yjg&JsLFfNQYio}yx2`Z70 zv8*}*ykj(|RI@ApDbQ6Rq3gfaO}_2`-;MV>KafyadIEgUSTHQr#;N6g5a6BtUfzp$ zP_))dEWH7~Hy(PD?@uWzjVHi+B)s0MEe$!8WOR40@~B6_P$?~KqCmQ#fyATESb+CM z#-t>2bjQb}DhExOlFK!Rgnhe(_Py%l6`SgChmpY@CJx6__!7a(X8d~>|&`-W(b>xmw(&*kC!`Uk%QQ?o{> w!)F_h_d2|JK?e&OA9o0i_`b;T_yzzMtH#V$fMss|Mf4YM>ArVk22X_YKYq_qE&u=k literal 0 HcmV?d00001 diff --git a/new_obj/HUDSON.OBJ b/new_obj/HUDSON.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..eb0dbfe7cc422faa3001ee53edd9edce8bf32410 GIT binary patch literal 15492 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 UG@jF`zBQiRF6DjaAo|hyzvkbQJOBUy literal 0 HcmV?d00001 diff --git a/new_obj/IMAGE.OBJ b/new_obj/IMAGE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..50f2e50585b1819487ae86044df1a41c6e19a8ff GIT binary patch literal 894 zcmZ8gOG_J36h1d&9_C?vHP%W)D5_kHJFE@#OCjfrV) zN^tX;Oeuc@0NQD9f1h(GEhf2C%<1jvarU|&oaOZZe+Zb%8vx!T+Si{q0-RwwhH&Xf zZ=HX4AHe+Ri6`J^Y5y4A;2rk)^{mfBdm5@2I}{2L_!xYFk>PMKwq}I8ok&NZP8>aK zg9be+YY~9Kh%D;{FjaIFBD`uvMmFRf@%x{Gg_Wf_b}r7z=@gh)X+g?xavUrql}HL6 zQQ*i)xK6TRNf5~-C&?j!6Zv>3Bk*9mfU(Ax5Wz}Lrp0O3Olp3S7oe?bKxV{5N}l`& zHq}5rnU)0COcon!T}amiFN-zKtTZb@3mKBJZVDHYQrtDO$YZ;!kk;ff$VpQ*18A-@ zW14IBGE(i6#jkTs#DpZCA(e&kHyr?|nUr`@5K?UQ?=%@e*XAvR0K$cn<&)dYXzzAV zL6)FH0jOQ;+Gj1Rrjeli6}2C{NUh7ceaPt*1joAG?XO_jo+S=<08`Ftlt`p7_z@1@ z!gs0!;83if=`V`duF$sy$L>+4>KBRRsnez0sZ%x=c6$t4K)$3(E7a)~iGdpE`vke7 zL$UqmrAEs{wA8(8G#8?!*VH)?EqCt*5LB|~m2BCeG*|ic*#iTEpWy{@$X68IRVzdN zjgbf&EgU@mv9|FH_H0b!9xzSnZ#zQ81IDEOY)87{H^!=d!GZcggEtt9x~c^Wj7}A` zAi>zwaji~k*<>2 MrPi*a6-<`@0%$!N5C8xG literal 0 HcmV?d00001 diff --git a/new_obj/INPDATE.OBJ b/new_obj/INPDATE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..fc836b957b5dec872b4c94658381eaeb5b2c6437 GIT binary patch literal 1177 zcmZ`(OK1~O6uobfnS^{Q)-)EC5;US9v}%hK+)Udfein7wBtwgzaZILkFm2MzOj=#| zp`bBU5JWAa&@RPI7gZ{Pbdl7B3Ft!5g&=}rOjlJ3Dj4r;t4S1L-g)<)d(W9W@4;Mf zf?XX>L}guRjwBNG=|%u>g}U1Jc{=0Cm^>WybnV*ZX>H!~J zLsOFA<_F@MrpDAbA5F@m1F8~>dPh`nRe0~Im^SDgK`CtbhedLIg&dVt-8+(k`U*7= zGpITRc0QoSl#Zk#^8?VpOJRIHACombsL094U@)OXz_~_iXEdLh1d9~x>h=4(p^m4+ z^O}P0s;YuxHIJY6j-j(fk|O$+Rk9eN?-S*~@tlJ@tf1LaJhJPQ-AGnWZW-eKvlgpm;uIDmuwZ z+GAfnceuN0j;r;wW&*ZZc=?W+08H**(Ce!hwB5g8Y(UvxqgacNfWFJ{-wl#zC_spukzG<%RucNNMyb}{2jz7P5_aPMCiq_m4H(?4dL^hYl zAot9L@YqdExrYda2O?LP#&uidayMxGlAAbkW3;Z*`XKUAY7oYthc@ukpc$dC1*t}) z@?XWe{6~>wU!fvDFFNygMK(K$mFx}d%U+={ijY^3mnnaYQhVKGUEU*FvRkOhdeNM9 rV&Ir+1O|X%%@&5WdaOX#=A&)9hu~7$1@MVf|9{%k?2hIP_Upd@$#r@V literal 0 HcmV?d00001 diff --git a/new_obj/IO.OBJ b/new_obj/IO.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..7795640f5ef5dcc3957a80f71ef385c731403bc5 GIT binary patch literal 16090 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 XwB|B)REqzKJ?pvj%WrH$N6P;VI}esi literal 0 HcmV?d00001 diff --git a/new_obj/JAM.OBJ b/new_obj/JAM.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..a371bf0fc01a8f43580800c19f8c24ac4e2156ab GIT binary patch literal 14467 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 literal 0 HcmV?d00001 diff --git a/new_obj/LANGUAGE.OBJ b/new_obj/LANGUAGE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..dbc29ffa06496dcf10c46e92876a22338082e93d GIT binary patch literal 3905 zcmaJ^4Qx}_6+X}J<=Jt52qC!nA;B#nLW3kg5JD|K4kRxyMTzG)7d(|b8OH>d{9(W6 z0NOIEkv1pZq)eMSN~0=;YSPfQ8mU6*kF*RNryYrdU@NGbM8Z@F^8lf-L17)Fn;1ogMBfS8wn6U?Bh$*!OJPYTn)BMN_+Z&-(S| znyO7tgBbu%Sm+D#0PivOx@|!{z*D3ngr++g*~j0q0OT~*HZ`=?Hq?vu`U7@uPjg*; zhFDi?ujN!B?rv#evGL-*rhRtNKqWQsbq%)WR_p3hdRRB9*RhNnzxG;z%V7RQzc#VF zp1DrHcrau#Ot=&ZEsa{}Et1#M-C-#|)Gm3;kNJVwe*4?)F3nz?b(#lbLYH7$etukM zv@|w1lppIp>2d=rdV0Vh`cC+Iozf9lVL9C6^LaWwJ(fPFM^Z_UWf44`?pm+gX*mqV zVvA_C)wi^W^-cDAn`mzq_cS-z_cgWFL#ahv5+e3#FF)3`g*t$u=gjjn_%@Rk{7Q@1 z>T`Q7olc+B;&ysnM_PK_F38bfjJ(d{g=K1txFlZR5ggD1c}XA{K(}A^L2eRpb@uq& zbkz!ydQY#r8|Qiaq)YZ8D<_G1y6Now7&8sM$=T&b-)cmZDQ%KA;gDJ$I?=&#DH$%|npKU}>ha0^I1GIG5Li7x3xuNz7%qTlV3 zdc0!0yVEVXMeOUBJ#we)apMe9#%_0Cnk9?wOYA_|U_=E8<;P?XFc#48 zE5k)d%eUBY*QGY1Y83!>4zB=4mo4@l61(Lt)d?QuuHj|Cum*}!x0NhB9L`51iy|(W zR)h|uT^r>%2B0-`_q|Fsi?3#-iZKAI+DgG%GhTDmY8%S~Yhr6Po7h^(p2kiv5XqZF zF2E#@j!{zZ;AQkOaCaNo9}@U1!60Ym-u`VO4DpxwvN0Wc@Ea0-{6zPrUkFdFDNm?; zmQ);$G04L)k@_s*|7O835Xt@!vc~1?q@ip~56arHO4ge4ra2gh70U$fnSO zm%vV>QfR?N?(M*{=jLIU&%#QY1zdgrnucUTQcE{zs%FntvNef#8>db%G=9xbb)67|7n*3z}!%qGL#mo;7 zsU|PYti}H&*ceg}yG9D5e<@&evELI@>xe08LS^C^is=WWWco{z zIq?NWu2AtQ6(3Psn7lG^7XAF~H}-Me=f6TR9U{3CZz449C#xpBlzEggU8spvJ3uun zYK>H@r@}&^8d5q@O||b)trWE)sufU8j~a^~Q;$i})NPVC^>@NXuHzt6m&mfn$7qR! zsrC+8KJ_NapOVRnNT-R(h&U0ApnF~9RZ7}IeXJ)hN7hlT9K~Ok+sB#Da!^DJ6ys2o zj9z9L;OPFvTr8}%PFg-B%%112&gz6Y?n+RYRf?%qI}t;K+HUEt1TKCaB(nl0bl{op zM;EZq3l3nS>3;loc#7usstIqDe>lGpP7MlQf24;`e#%#c^sfnDOZtIJx?2yGs;Wds zE^Y)yDMzVO%22XOAxcikN135yqvRDlSF?IW^(}LOrdh*_BT>{d8`x!`2l8&(fmo;< zT5y3~fScC#zqIZCs6o$2bwfg2twMQWbNUHP;|?|OFIbc`YNF3rk?1q1mC)h9yzJcwCdMl(VcsMh8+i5z#xYN=LEzHFK@kDG3 zeRc5iZrB42UVWf>$k7FXxpD30y5(2LXgK@X@bK z3>W(Xi{CgYjQtU-;i#R7zKd-H+i7g4u)T%t*LEf*k)oKJnZ! zZo@HR8%bVt4HlhP5%LVAX!_NHupEKo2tAK?fBalgR0KxIGvmwf|EMn>*n0xO2gvOxvly4kv)#-2VfM~dN0Xc*fW z7a%qXV?3i4#(G9PjQt3o2qV*!1)K~_3=Hu;&I%0f9ij{jFBnmxcWbqfbU+tSMF{{5 Clb8Vj literal 0 HcmV?d00001 diff --git a/new_obj/LISTFILE.OBJ b/new_obj/LISTFILE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..48fe7d411580fcc36864eef91a2783b1db55a21a GIT binary patch literal 19030 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 literal 0 HcmV?d00001 diff --git a/new_obj/LOADPEX.OBJ b/new_obj/LOADPEX.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..f4d23b4772eb75897ef0e8e79124e442f2a1ab33 GIT binary patch literal 34574 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 GbN@f0O4RQF literal 0 HcmV?d00001 diff --git a/new_obj/LOGIN.OBJ b/new_obj/LOGIN.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..7c4be503f7be596605ba778d5ea6ea639a3bd50e GIT binary patch literal 16827 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 literal 0 HcmV?d00001 diff --git a/new_obj/MAILCHK.OBJ b/new_obj/MAILCHK.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..2194c130cd20f0c8eee80846776c7dca8a359ff2 GIT binary patch literal 4349 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 Z$-UPOl>?k-3V-9cHt<>1b3+)X^dBon-%J1i literal 0 HcmV?d00001 diff --git a/new_obj/MARK.OBJ b/new_obj/MARK.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..c18df58a40634e2d1396a5edd5565170830dff85 GIT binary patch literal 3172 zcmc&%ZA@F|6+ZXF*TyCv-H1sSg)nBhtj&m0OG`S|?Gng!t1gXa%uAeZSjJq4SA)S{ zNv9?hp(1YYkkD2|YZPVak7?RJHcb(0x5=wqysS7x(SD$`iXyGcaLghUp^!P4yK`R~ zf}ynPul=}(_nwdEoadbPeXn`L45nUx3IOjio|eO-Mu0rJqY6!T4V7ok?+2(j*5rQ4=Q(=9!#5vqIco5= zGPbrXBQchZTM&Uu)I>kVy&Uh=c|EbF zv~_kBsjgR1_Ccr?k41ZE_ULQTaDS1X9=>zUpqGMWfO$>R4ZB2N8?qKd{%EXK_D2Gz zTKnYyY%8e|t0fqLuZhj!-p*j3+~s+#Uls%5zCJk+lPTJ6(U-uNaKzUqpY~yc67gU> z6c5VS5iD2^$+`}c+B(re?>_u?{3!sYR_u{uG^jV)gJbDE=s1QuPVPb?KL|!+!MAxh zHGTj+>%}sI7>pL*^_XYZZ-yN#)Qs=N2;3vu!#uv zC4>vuI2cZu%5o7kVJ;Gi+4O3()2v-PRHWrynqnZftrSg}dOK)^#PJ~ayzZ_VTLqUo z^_~DrcTaNHjj!kc?o@|)3(Fq`pxDyT$|CdnpQ)phrwwuPMeMSYaYO1Qo0Bnqg2{bP zcN`kz7n!pMXm%%W*PJ}fPT#A!>$HF(#%i)$D#uSiE=fxtp2v>pO(}6yq?KY7NT!`v zq-BNVRcS?$7FB6kC3!`9sE`L^(xTN>Y{d3CuZAV%K>Zg5bX?6H)sv_8seh%FaI9g@w`_X{Wx}`$C#A2x>ntsl<6RUj>|S^5)E?lFEmc!yH!KFPclWi zJfqvNuU|kn#${(WcV=}2Is&!_le?F)-0X>yI1K(Qm;E&iR^W8l(_gAtk&7?Fj7Zp- zCkdPRh*V}K@Nd||WSR*(ohR1mf8+Bf4>Nso+R_PAr#XCq!)Yx=Qt*+Tg zszaB%@kruM`TzBQVWqtPvn#%i(!L&=zro_}OS-IMBX+HL(+#JD^vEX#fb_^sDsNMH zi^@AxeoEzCD(9$Npz`QCd+G zD_ILmm4@dM=J)|pGx<+;E$$CsNyY_g-bJv~hC;cC%VwD2d0rj4T~N>8DkvlM1?9ZG zKvkch>L#jesH!VyS7r;PYRrgfT?gj%(llIlh*3xCG|Pxhiwlk$j%036(M!8x)3hsf zTIy1rW>@!VzIwbOT<-$7-@*F?&)kNvuWO0CmUy^D@OOt(m9I43JULhq=Nqr%1~oHC z8k>cHh_|Rn_c!A$YKi-wgJ)o1_y)LLlMH^L@IlwdQ~k=QwB*pTKZkW%uUC;4)RFy~ zdj4rmk?tu3zkCadbVrr$sbpS}?kZ$%OuF;m+b^|Y=xSNk$ z48u$t**4QmjOp)N89x1;Du$h@BIY!Ui);6Y>Ds5nG<6$IQ?t6}7o_sqSz?*mZ)FTq z^{DyqV_ao^MRsJy2$yk_otZO+T>5vDa_NEDp;)4g~NNQCXWyaVvl1qZ(M vqt^jUwI;}2Zh+(${(xBbLtxKE1L(Jeb@T~uiTzJ literal 0 HcmV?d00001 diff --git a/new_obj/MCHAT.OBJ b/new_obj/MCHAT.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..9df8b68fec1daff23fcf8fe1d802179c328a826c GIT binary patch literal 5586 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 Mb53vFgL*yx0ecNeY5)KL literal 0 HcmV?d00001 diff --git a/new_obj/MENU.OBJ b/new_obj/MENU.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..c04c568ea76a9e5197a45dda664160cfa95c4200 GIT binary patch literal 16046 zcmd6O4SbVDw)Z?qn})QM0;Qm6Eegd&<w=>pfM(NBs=E~ALD>J6dnp&D^ zo;ta5a)t!Vx6Gcc#gEQBedhE^vz{O|=**>eQk|ewpITNiYfgD&OBTB_JWQh%ZbNC> zSZzk8u%Aj-GhLSOIhAxw-$xMSk|A3-x4nS%H{NDlG1cO-7>6&cb~%PG^)TVaZ?<2= z@{Kf0v(sg%UXs@4yz2b68l_*=&5!F?PC}E=-to}&*;%6b_Nmjkk?BSA>?yO#O-6Q+ zvBp|$Z)kE@olbKN1|7b%(OvBtXR|S#*=1|6Iv|gAxy@y6a@ZHzEsmPuOKoh3(P3?> zw^UmpjKkJg=dn1P=y*>xTAEO{s;us*Zk#wvjGyu(&)4}t0kOk94j(bFS1rIFe*- z#H#qCk(3fIhOJg0T zX05fj>m`M_?A7*qnOnZvTy1wZx*RKdVJ$T^q+%I6NTsc{EN@z5Z&U;ttfH|F)>^xx z!2-RIqyvoB8mxfJQde(tDmX=*_PRQCK1sP@^mT4aox(Mrv|MX%beU!OWtNJv>l~J* zMXIPSiJ95raW&Pu6;THolUNuBjFIHYH7<15*IQk-MwOY{X?2i{c7m<^Jt8Z8ZwHbvXdNSZOH>?p_RZmPFiu&rr^SR%V? ziFHK}J>?o}?8_QcME#AmPB2YZ&K@LrvKrH9`Ws<%wjMAWDU)l!4~APbRebXHp$X@98oWe%ImnymLTF6~Ls4^r1zohzJn#hqbTQh$TR zvBavZvb_1z{3?!?q-9Ig@?hE6OV)bD!Q~liu`6N04t0}f8*iUghT{N+V`T=pB9-;# zriEtmLQHG6*>R9KtaUag>tn_s(&@!A%+uwoL9KkHT`y zjW{jLjqZkppv*SAo5(rRIfy3uB`-}4)0?Z^4hgR}WA;rJ*CHH7wRWe|R&TQ#Yiv%- zLKqTuynNOqTVPUzDM-=M0!Rw5;S7Rht2~_6Mj4M|C_jZBzOde@*!#fqu+pANa!C2Y zi%H=PaEHoq-ej+@Z^YS1qFmIgtw42%TA$c*~RAB=JJZt*|W{1Gb>9g%$2juQ)bPq zoIZ0-DI08@;jFt5)4XJZ%F~d<)Iz`JIgn8Dkh3L+FuTcGjo3g&V=1TF99W%7xKz;r z2V;br!AjN)Uk-r>rs0#(QVv$Zf%!BpC&SEscIoMF6 z*#lQ%cfhA0O0k-ym9@F+-8L(Hg4#%jOL|K-v`-xf2X{7nAqXhGWHWaTU`)t1nrBx| zEuD=%o)?C(SPF?PK*;uC?9-itL78W4wAZ>DtLa1rvwN!V&Si6U4n<48vCi(YOHq8v z&6eh}_je9LYpxMtxQAM$UVU@fik$_(_d_qIdttKS*L|5!>7cTcI^^rw%1uS+aFKBa zm`sPC#KDAMS&om%T*hUxmQ910pvje-rz)lMS;k)4G!R{LD3-C;%2CiWSxmR-B47u| zHxFC^DCj2t?-@LZecaxy6&Rc2JJNha9~Nl1Phr!jqfu

    ZWHb%8?0FqbVSM`ti9YYQ__ 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 literal 0 HcmV?d00001 diff --git a/new_obj/MISC.OBJ b/new_obj/MISC.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..8c1c4c0c77e184471f662e38074f30dfdc95bed7 GIT binary patch literal 8710 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 borZ4t0bDTqxy1kXcy{%KIa?26g#-T$XXi(? literal 0 HcmV?d00001 diff --git a/new_obj/MODEM.OBJ b/new_obj/MODEM.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..294a87ffd0efb50923ef3ddfec33d1310ce52103 GIT binary patch literal 12649 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 YIdHTLV3w`^f%D($4=W3f;m9KY10K3>Jpcdz literal 0 HcmV?d00001 diff --git a/new_obj/MSGBASE.OBJ b/new_obj/MSGBASE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..cf9bd4724dab23461750544ec88e7d056e11d515 GIT binary patch literal 1433 zcmb7EUq};i9RJ?kyp8=arCEuJ7UM7k&5V>FnmTU@4Tqao_n_n4P8(e}-QA|W1wzcO zhdqf%LA^x18T4RL&>wLR8U?-d&_gdmI3EH@No3d8ZM6+1=))a9KA-RR^ZR`N+}*W- z<+d_DDkx%WaAKk+aS8zJ{@$*OO+AsQB*>wr-jPi>^ zb}<|wq&6z7({pVAR*%o!)9vdE`1@}74ZQ=dzKVdW+uv=-z5+cyAB7L?at{s+dEd_) zp}Bz~DdISut^yb;h-0}EZ6quUG?;W!r-mL#U~#fxN$ie_f^!V2ogQU8dk#twMRZKY z!TcW@gBoXGND-q>Nl;XuC`5xdeG_63YPSxRx)wL*tf+E_p6=CBh2WgB+PXx6w;0!_NJj50 zMwS~Htx<2BSw@@gVj^$u`OXRfs!flZ^f;ZXmJj3|U_ob#yfbJ=+b#WXzz25#SAcNbTm_z>5K5Ef^D7gyGJ7sn7s z7BCU-6dcS9#B46^LH?luoHN)NGzu7)m>CZPSsvmHEUb(_Kr99ZHg-ntS!@g(|C#uDRVAk~a67nV=A=3nr6xM0F^D+$rWO|`rl&dp{ScH|kW;BrSO!$? zTbvG6A?gqxTAW(skds(k5}cY?l$;S+ZQpYaknpFDCLK6mw~t|7)p5mmvQ_rW19sElgLO2 z2c+W2{5=e6|F?f*1QK5u;UY)oe_>SXmj54b(R_qs3j_CoQXaV-3=9EK{jsOd&*5V@ zlM%*vBt?Xg>5N7gv;6{T1||ju*P^2QA_bs#Q%f@Q(iL(c{%1JRAq<% literal 0 HcmV?d00001 diff --git a/new_obj/MSGED.OBJ b/new_obj/MSGED.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..f13cf06881316364da81dc68b5fc132868444070 GIT binary patch literal 7354 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 literal 0 HcmV?d00001 diff --git a/new_obj/MSGFIND.OBJ b/new_obj/MSGFIND.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..dee583caa7b2bb4f6618cd6dbdb2e352bd6c5664 GIT binary patch literal 1190 zcmZvcO=ufO6vyA}N-NbX%Ze+j4uQs$;FhMSHHMN>oUUVeQy(0QXuTCVL*& zf&h<1__!tk%n>cMrxpTujB-rj&>z9b)R(UVM20i_)u98aoHqEL78n>w4F+?meyu;S zj@-UXM#PX(`wxzcrmvn2!7Euo5Xn#Y^e#XkNZK}@q!5wMNf2fN6GuNi4sD8QRqX2r8H#CGJhyAI4DFlAO5U`F#*4-jv?#-7$)D7r z4YiEh;gSkgDPtQKF1{}ifKj@lAEI`IPA6n$Z9l~9Ftep|ywOfW z`VQo4M+5WV9hM({(m~Z2)uYY==>WJSKs^EAz3fcK;6&o2)e{0-0$_HW+3h;BTYLvxCptvDuXEWWH*gisilE~<+#!NiF^aS109Nm=-f`}N z7xLc^rZ;9cvQl^B!Vl2Rt~?}&2V^tTxbT2<)153A$LhYhvsVB(895Ph_M)pPx@$ny zmOcVjxKBj5Kf^q6J!oX3-7}%Hb+!3@0IvQ`k~H+T+O)#XkHW8ix!*#PmBP3^h1sz* zRi$7Uw-rwN%?is4mf&4+Ph;(WC9gdz`P?gRRivL*i0&lw`nO7+_Bs0E*3oAyME4Em zfd_PHmf+{JZKId6B!DHl7n}3owzDj~f8@p>sE`2-W=RjRiAL6sL7EeQ;?ZIk>iQGh zD#K${Bdd3?_x|BUmxr6!-I}^Kqpq#rkyffUss6;j6_`bLG`N2L3s}k|NMLD%qmv`f zA!}smIgAiSP$P>gm|R@uxX*D9aqGHHZe7NxW0WvbI$7MIk;b1m*!Z2}H;!L8E^~at rah_uqaq}2z$M{=;qmSb)o_|3XzpBLnmdVyXqgOvmZts}Edt&_qp@NYR literal 0 HcmV?d00001 diff --git a/new_obj/MSGMOVE.OBJ b/new_obj/MSGMOVE.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..85ec34c8e8fd6f991a872d75aef39aec174e3f7e GIT binary patch literal 1273 zcmZ`(U1-x#82!?pY_^;0v{q55Rq7auiVD*wNnJY?)*sh2SVTjYW;4>YUDMS$RMf#J zZh{Dk48e(rq7P0P8f3`O%!#ItKKST^prYV|4?3{*yJdUrbkftlX_IHimTmJzE5Hvk952!UHz?M>t5^px zkL5_A^vT*Vcx5Xz8#u^X+Qa^UmG}EtpG60LPc&-AMf>-5g=3LhSL>kl z4P`P@hjF)WJy@*N7qSDO>nQs;4fPdM#T*;!p_-VKloo}|Ksqnxy!{e1GqRZHF?=E? zCcORWApz?7Y&Vagd%?_08CcHrWMo-NNf`!9lHUG4Ndo6@(%YSqk5)TtN(~n6>`aH0 z5`Eaq^uTI9%162a(I_7Xv4Jk04fE~c5W7DV3qTVS6lFQlD>8{Bjw!&hMItAXwwS#dB=M(7y^1iaFMkGDIS$6FR)bqysDD!tRFk-)*AhaRtbJqc`!Ob@JJ z_?Rr_m{dZ}N5w==I2z500yG-5d_wk1IcUJ=$n~M^;E*7~*NZCwDD*Y1vydIYH}RID z0Aiz`&whSlnj4ua1I&#))KSs#k&aJwoYwJ~jx##G)bWLmnvSmsb|APFfQSy`Yl^s^;E<=y2Zb0$z-DZS4&6Bo2d=|>kQL#eAb)lpD zhi)4_U8YW%Kh8s?P_* zVj|B_<4KRcKm59Q?H-g~ag8N~qi3gFlx6n5lQNZVbGFhrXD^L$4YTJ6QQ(%Ac#bZ` zuqK^Tw~I2DwjH7=P}rd1=zMU6-ZPL9ANppl(njZdk$eWmn7Q8rJkbBiJ)bZe27@vgC4I zCo7J^$TbT4Fl3H>s6zx_J~;5h;XYVr)(&hF*g&L?S&_jGr*ah|=ec*@$k+V>i`_7+b|nf}MMc6T#) zjO`r#2pFw`oQX9gCV{p#`|1HV5^JkiSsd6$QKv7d0)(bv^&cCVN(G{5ADGiFxyL#` z_=8Zniuyy5I6@+(q2=VNKkOG`sB-*-UpIb4hY$Gr*NKECp$W6;7GlA0AKC;o8xahg z5bWpi@(Ga;7`b>P5e|SEYhR^|T!0Vx1`&y)rN2K4CXEszZ>|y{K8(FVcYH`oQv?e# zVSWG$3Bt}ZIAvu(>3A_rEe9VecxfYKJOTsG_A1qIqIKW|ekT5omd|s*r?4 zmL+z{xuDcivLCSg)4i(Jgnyc6(JNsTpd7McO`*_svqW+dd&eQ0waMgE@y?n6i+{r* zZvuBoqlVL{e_LW_Rq?he&K9yteRqkzF`MpPVx}7;lS8iFXfq?Rw^VUP6>mMvrh{f3 z@|K4rz^2C0^^E5F`-Ta8TR7xx8=c>j*lAU~sfyG8;{4P~jycIFGb_ce;2wx`C6yKT zLirt|;GPzI;Z$)6ihOaZy*Sm*byIy_w^7AqRa`2V|GzoE`e4JHKhkzvs9l$0VN2OV literal 0 HcmV?d00001 diff --git a/new_obj/NODELIST.OBJ b/new_obj/NODELIST.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..2d5db0337669635b157971064de617636cf409d1 GIT binary patch literal 3800 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 M8n+ieiGIZY1LvFfJpcdz literal 0 HcmV?d00001 diff --git a/new_obj/PBUSER.OBJ b/new_obj/PBUSER.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..155d70bea0b226e033ac791032ee3412411ab800 GIT binary patch literal 1450 zcmZ`(|7#m%7=PZo3L=Ogv+d|l;xKJ?zL%tHq1zAlyw81} zFQ3oz+{;Znz?O<;u$1l=Q>pRnApmF%4fY*%4J6Y_BoT8Bc6Pda-My8p8Q?z}-p(=r zAES`JFKYp)kaPl((3;tC{%SXXof{Yl4h4kJ(Akh_@Qi=REcp9F{id1`27*DFJdFQj z;LHg3&ov7i7AT5F%fvf%3`}P9tKk7K7G%G{fK{h-dgRg-v`>g96Y4k?@OUzpENLWp#+!K=q)ph_&iCBXRT6bV~RKax((6R@e62Z<6 z%Zk*WmLlvZ*w|O`Si|4X3L|9mEQyf53XxxbcSl8)$Tzs_fD*xKur_KiC5f=F0pknU zFQ>slNYim5?EI7{ktQKIF0t+?&P1`XgC^D=QFj9^Y*0^lH2gbO_4$XBe}a5?;bbvuRG^w7c1NiYhc@B@>By2?<9o7K0Wu{^#Hf4BPse4?1c=ydI#lZ z4_9+nz1536&`IGmf4`Asue{ks-PcLDmC-Xw{N}x6aek%^7VB4da#S}boKUi_x53z ui}Lh57jt>A%Q&B@+2b{c@f=ZNE{g}-pe@@1@Hg7^M_$Wrc-Q7gPxXHsWbzOI literal 0 HcmV?d00001 diff --git a/new_obj/PEXCALL.OBJ b/new_obj/PEXCALL.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..f6d3b586c046dbe44829ff6b37f1989364cccfc1 GIT binary patch literal 242 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 hKM`|;^sLJx-$XdC0H$W2G&;;H#{fL0|$f= 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%0D(+X*@YBbz}Jo1EfrjtPC_ADo8_ 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 z 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§VQ3+gmNWa??Ky`O;YO@{4Ng*8_J+toU@BNAb2jl3xt zM5>|^D^FAH69hCjS+&;})?ANjU)8JKnFb;mJ*^bhDEPif|6UXO-CtPa$M-k&?@z{l zpHNsc0pGXl-yfv!Y~O8S$(e*>>1i5LMnJQYHRRgDnrl(f`+7xAswfmV-sBB5HWgjw z3-8f3OJW5M1)A`!xv40l<~*^D5<8%pe)Jm~5%D|P*#vuIEUf;emoNNDTn#nn#+B1m z#|N<<{u>9)h%(d{KB6D7MT=q75(k=SLlK4X3s$w*-J37`{TXD%2~sVoGmGeT0sj0d zWj;wZA;2dXEcPsNHLzmV>)| z(>%%!l6NvNb;BV#r8nS|ZtEzhY1}J_w^qUpbl#bu(vha`gr_ZM$C%TWPP09r8SDA( zOu!(Vy_%?nWd{f2qcW4m#-6AP_=%cbCYyr8v_;bCZb7R{4O%^>9lBc`5qkh>)5(t` z4b!f2x*=mX)5hKGNz`eNv{qPak9E)W}GA!de`XBd3x$JuN6aW*Mi zodKu(@>^3SY`|Qicf=NrdC#DnlSf23Hwh{h4~RW_k30>oCNxIK)YcnxJZf;FJzET6 zuEvULXmhJc(>w_By}?DczDawj-jP!Ty}zsD0O$ti0(OJbqe%=P{RXE;6U}pHGE_Ev z6E7?P2~eOQM1gb!(jwOxbjJPPh-Ri3Ed3ACu8`>C=K&gjdSq1$O@ z2bu$Dkr~zxZn1`)ODCK>c^I>|&bCBuv}^K5B4((sK<@q-3w#W>BW7HD%yFq%{}*$X54KBcrUE+O5B% zN$nQ%gBRETx9iQUrrqM=j!oF1-;;2KX4=g9$_3vQ-P)85Vmmvef!0)opwJ=_q28+>}WQ3N+K85~$D z=EP}@ETcPe(U+4b?}TJ|4Y+9pH}&*zGYPKr^l()KS9yB4YJyvw14LqW#>T9QH!;%! z#u&?YwZ+jQ!x^j@M;gumsP7j>y}!{1*ASXs2V;7j+7>FUrdLtl|62QtYhtEKS3swI zoHQiss;nVd!?NZ$A9v1kKIOc@@r}KQqr$P?G1>K`>nS@FFmHYb4?lMC%qD=ZQ@32o zbw}>+NILmx4gXScUaXnOnWs+sTEsWMX$@iad5r1v2(q>-<@-#?zuEV3=I<7K{~f*~ z9(GzoDSgM@6BuavGczuOdefzv_RQkYk&2eoV#~ne3{Scb#KrY?>qL5E*B#f;uZdv= z`oRxjBhwLoDPZ<5k&OLDs2(OztfAs@0`U&R)-~1_txs4VvKCq|u=cZdvbwA-mSdJf zmMS=1y~{Gra;0UkWq_rZv{xj?c%H{jz@vt9Am4ARv>p!Gw=?CYh&bOSKoYR~m zocYck&J3sO_`>n7V};{6M=9K}UX8n=EQibSKlbhRt@axGQu}Z1x7n|;pJ&g83)YWp zn{BIY57}x5rlyf5?S%&Rg7WuD6TGGkH4 z+dGcwcwxtu4m&z5>2Pa@rEq&XzWvbl&h{T>|0O#s+XY9b$Ghz9Qrl%smxWy>bQ#uV zV3$91F6un3v(h=I^QlhXb^4&w;!e{#UEAsEPPv`joxaO?D`!>CvYgpD_vP&Gw!7Po zZdK+2QhZ|2f;>^7MD- zOgrc5b1ph3>zt3eZs@wC>%y*8UGIRy(`&o->gwp)*z?PtwLSmR^G`jW>KW|WuIGUs zANP2-$JQQmd(7-{OOG)<+V`;a_^$h>-QVrLsr&QYAMgGk9G&KOcXU6LyCe6N+{)Y; zxwq#I&pj{Kmut`cZ=Zkn+0^HiK2P-t_PMLi_&(S4Ij>LeKF&U;@;=S`C~rgF-}3&D z_gLQDc{k@>o_BFx$Gp_MZ+d^xdt2|3Ogr3-wLfF3&QQEj&XoK_3mexvcCmF^^t}=o^F!03q zO9a2gocKq6C5N`LzM|Nnd-8s933itk z$xORo7E=dbf=im`a4{t=W=KL`jikj$;`cb}`b8!U@#0>hE<-)MIMeS7_wT|j*dPvz zd_tm(Bd5@14lR99Etj;Cap-+0ZlS1Gz=Qy2c3j07jYrWh@oXouxfd^ zh3RrY==nfgpDBRMu@0?=rpVM5Z4XWzyb>L3+LP*w=7u%&b#=P7Y*s4YBVIL*?nNoX za5X+`SSk&bd$rwN-O|RTeH5`|aCj4&O3 z7unue7(qh~fO&2%zStO@hX}`p^!U-1X#a^F5}oY^Jw8Vr^w=Cxv@nmxO^-FQ7&iWa zdz-b8bK(BvpNJ9!tmbXLKRJubf+agw9(f%(bmfs^cU9nlW|G2KBZo1QLSIo>G=*hP!UD%6lxF5yAk%8`OK#g6#l5_85tn3pD3?{^_W*J#sv15&Kpfc_eSu> zqj7^FhVp_3_@0@OHqMwzb3w`J9B*os$dZcsC$13D8eh0lAK-9B89Vem)QSIX*5+SN z2GDn9pv9k?bP?gE`OBDW#vl{hen1QQjA%u$_u%K2u`9Qt_o_uB#bn?iH56BeZzs4b3?!QB;`|2l*DJ3CQsjuUPQ+Uf-DG?jE|ia|TMl@aX}gq0CL zykM6SQXF2zRh$hsEPAjrR}hI?i=>d>h0jsx=64PuX8BsgFR!%z2G+n9>vxuqE!!-w zSe97kS}ueYnks)Uzb9{z*U78oWw1sYFAtXUWuKfazbnm?9+JjNC!JB}XU;9omz_&+ zKB{m&=p5}F=Irila_n>LaBRUj=?U2SPIF9jT;&+(=;26rNRDq|@w?Ohs(rD2j{RPH zp1S%=4!5za};v0+sFF|#|VTW#RiA$SADB&5N&@Y7?JX6AR@eoVR5Pai> zOPq9aHr6QXgoQ>$GYES>#jn`*_!{7bKdbSFC#>ZOHF`prC#=^KHuHpydcszoutiU( z=LvQABjR>C_}{w84g~zEl@Rb}v*bNq)WJ_F>IS61_(sxnIJ7=DBHGe?LKq@S(>+_|Vgvp?gPyWNIv%)m>_d zLyMmZIIiT0KBJBUv~a;;Fmh3!*ly&JTu#(u7m_OI#*_G|yyCD6;~)lsIa_N462yg} z5th7AM`*+c{l{8Et_EZi_TP1r8+Az9$WeiHOE(iMt&&U{Al+h-GwnR>HBw{`_?{@S zkSMW0syHazz*{35;e-NfGYz%=d}JBxvo$i``09%LT2#VRKNDtbr(;?5_)9R7#S%YK zhmJ3(I01C$WUVREd=*9=QHqJFb(3CU$Vsy(n}pzc(Gy#a(4MMP^z9LXa|(KHb3!Ff zQS}n}B$kHpo11w2vS!)f0A{Rt?C9mG8;+CfyJIj67d6x^JqE`=Fuu%Y#t<|`X(O=( zzP0_$#Uje5;oF9P*VJZHHre_BZfJ{M3a7yPtR_-RhtcpKMOGs(EW6zl)GGg#G)?UrDW(e=s+ z9K)1%<9r9f6KNOP;jPnyDOHrMlgc#KV;$dxf9LxbUIu@UoI}Bc!#0u@*0N$yyx2PH zeNaBzPaES`*{~GD*+H8~cw)+xj*x9NBU~fqqg4bHQkw9(n!i#o<2C%X1+NqqRM(N2#C$Wu>xw~VSsK*7)eXrSw3gu;)39|S$<)C0BFWUyut=)Go#_dPUyf7fVFS!=H{ z3C+%`p#uQDbMTYg=(N=~wQllJ^5CG~3Ab@ph$y5T&Wn4>O;)P7kOeAuAeX3s|48*d zh^-69#Pald$Cij~)Dp`G1d2j_P^S z{Zu!c!4^YFhG^=AaWKU$B$CKQxo9oSs~|VPSA%mfqS7;ny5Lq$J8g_qD#s1!f3g!- zhp!q?Ml6D(11D1 zDuNfs%i}&oA^uR}(%>RAE=3JE2S@c5_$#m@zV^uuu|^5*I@9cD%T4!40QXReQ2 zufkPbS1{u&Bn%qISP8jwNOK9gYqLCRYQ-NGNW<}5NIP>eiB*m8uaii)lQPUA73IL~ zYEipr4-MMIp~(Xp&n~fq+^AUR(i(a+5#wqz;_DYNUuM;GjUTpnvG?PS;hrFTxnnrU z9dyTV$KcMLm|2|x)9D%H$#Ab}71(R60=WF|2X3T_Sbtqat3B^8nS@Q*X}Bm<8*LW_h}6qpHF>B|1=Vb}S83iH5FdN{izHIqGO} zoKG7ke+wdO>f4<;hwDHM3lRoO-h2$XBdlBxQ#CJ|t3g5PhUI!SzlyB}NQ6K>p1}7MqOmQjxEs%!5-Fr$bnZ?3JTl{sU*5f6~4Q zI-9~7l3K6)0NeNDaG675|HwQXnU9D37}w-0>-su>q*JkPiQNPY5 zIWUmL+%Tu?s46`IJ;xtp#NX*AS3P>LWicizEE@-e3dN|E{LViTPSH4#6CC`!W zLDbO^(jci5oaFt}`8Np6e(CJ!Y<3)R>~w_T6z`9YkYkSHcW{CCxowHfZ!54J^?vEy z>;0$qAKq2og}BOozDv~mvq*Y@~r7u zw`N_E<;aR={tH*sf6c7Q{7vSB%u5i{^LH5-aO^*J|EXAn`1DXJri6x6Uw92IZ>9?s z_G|K9~p0$2KAx7Ph*#IrtTEo zJt_@N8_8Ai)eS@F*I?~e0sYF?es!i_IodA|{c@!tTGlz*b}=XJ8h|c_IZn)smNOG~ zj~C9S{t9elJ%9#_%N|Av+FYT*NWINVCj(D;?Z#7`i&I%zg9Tz*cp~6~`pa`fDW>U9 zzzv}LxoX@q)0`G%aGN1gH%>^@1v?5G{!BhMr*p7x5)>!EM%e&1nx-3H_`Bp_?+{pT zUfS^lU{IN-O8;h`I8n3j?PV}r(>cjToEV7AwV;^uFeIL2L&6bvi4ZrW#3cf!sCoAY zj?xwYOm!<8F~S^biB0R6Ic1+)ZR860VBxQEhxl8pIDlFZ2ZfXnoC@z5 zgm|C)G{ODNvK0u+B{DSRK{AnHwu3Hqaua1sv?u8-@uk-4Z)q=KY7kfmMu^<1VqU)H zO^&ONz)>hU<~8FA5gea{)=NnspaUTn_YZeW*wkSi={op#A?4eU|C^w4GU)#y>I-*C z4BLfZuT@J4Wi5|VKr6I>@IfD(P@3lH^a(@592X~fj!Qv~+aab1qx6CzzakF7!VI%zmD z#j|k`RsQPr(v?HEPDj`B;rTls!98c163~^mR4Fg7ljiwrn7$2T8A~CEuERGlmqLeXF{-39@A{y-fnNj8@7rMrE%BAHL#F1aBf_A6eH*& zu5H4FTs*!n+BUba;or?k+jccF7H6V%zIC%i-e}slw z{r_sG{5zT%B|{5szCD$I0+AHXuxx3#6eQoR@8X0rSs9VZ?O`bwA%LX}+Qn$Hk=Z^h zWoP0vA4Td~A^Oz}D2uXCp|M6WT`Ib4qVOyDQb!MD*3?AOiQ??47c^qu4K)#bnGF{H zfJ-NEdrCV)3ZFL(S2X;hV$N18qABp}u_O9*+18+ciwWc?j>2CD{fFx&AJ#!?gMPRj zL_F;cM@*M#MHw7BzTV=Nsa-@-W0Ihd2j0RN<16a{>l@Zh*1uYpSQlFFuwH6yZ~fX* zZ+X`8nB@V>El{|<%JQvzP<{tj_N(NDaM%5Se7!tM9xe}(_eh(uot!7#k8{Y)a3b4Z z>LDF+Zg4Jh2Ay{}hdX8Gr;gVg)i{GZ;P{oJKa_5NuzzBI-@XMG^)K2h?RVKPw!7_z zZ98l)+J0-h3fJ-v!twTK?@`ZQ&+DFLo<}`*dM@&u=gIc0b3fyr>n?_y?F(@FsCO;K znPa4@Kd$Xr{Q5bE$GZIES)Tf*@?qSaZ z?75#kKWEQ_c*Y$Xu&>k{&q~_GNKci+vei zTv@@w^K9f7nM_6vCluQGV^M&WqNHgv0jpGO2G;I{@TX|-& z)MC~##fW(?(I=Cd>A9mN@|x&^o6Hv^<~VVFR(xS0r`;+If)JEw zcO~d7VziUqYxMp$p{E$o<+W1~A`b$SQ*!hdq&6EJ7(NF(MNK;N1L2O8}Ca~L( z`heO@>aXw$2SGxbN&`Bu7rnd(j!jmc2rgQ2f+c;7q}@n*5lPEWsOxu~GA_qKk7tOR zsE>_{aimt5Jl+1mr}ftk>aXqOMU!`p=!TfCX{E9EQ`yA>y)dpD=QGo6+bL@?9RBd& zKBg~`6>@p)Huz@3bjjW<#UAEl2??QA9*YQ6E;&aW7WY!S_COcU#Bb3qn&5ywHpG6! zjKG0)RV&oeUQ~M?uNL`mX3f-so_DP?vicb75TQiTx%?7(DB zxZ5=~y}Wk%DY@v<^4cQ&xtMMce2BuUZtz&~a9QKaiQziIi6Td5%8}DX4uf_Wy>YZ- z*!^_cjl-S$A88NHCI;j7Fq5|nr+#XsHR6Gh-ZKf{08qrZIAURM0R0qiU{|o%M;2Xg zZ$@X_!oaj@X;KC;=1Fr`p~0=93KWplQ9pp73)7 zK}kvnan3^)u}aWsD{lBQ(_mD@TcnNG$X(ds#PeO`8YsXw$g{1Ht}v{o8H3Ay42B&- zXbwjIu1JcL(Km!0mnOAI2hcA%H5ABzx45(>M0V#s+lmJO;fzK?`zrQC6A-0VKXb-w zuriTEahh39fuRi7X0bg*-Bi4QH?9*C&QvK;Hl*{7R*s@pjzlX>lcv$Es0nfsK~6{p z8TsKPw$%DaFqEvafmZ*PxGo{B?jrIX2j)D}(QeEXd<ifg7NK^kpzG5q}zjfg2$f!p4hmxgIMpwt-~WjzCXvOL-0d1dl5qJB8t) zOS1=IKe8MDxDCk}Z;?8|zgf-D8(*GVD4c@*Rm4XJC6pAPGo9{NvSO0I%p@wagmCnGQ_PefpABq)b!Z*ErC z-;9v)Qa4SY!fxmTw=`oTd{A9~Bfd|>zZ(E^OdkM{4hu3=5g96J?%1cz9oanQRSXA< z$pSFRCkt@N30RcCL*zT9*m}Jq&2|rUyj?oO8o`yQ9_YZ`4Q2xGl&XW?F7<^SI@TtK z{DjeB!sufSBiu6c5RTSvq90mqrwnE`-UQMpMnn21^4}tR+x&+GedQ_aDtXYA=Mkbe z)M2})Rb|u&_C27-I@2ZO2bH=Qcb6ncq6s^wr0pmvD``nIlDKDdZ1g!}>6@}C z|GQ0Dla4pAiyphiy85{VjDuzBUIQ{%9uDlq*Ntw}{r(ulb& zdJm-8-L%z0-**)$0^KG;w-M-eONwp+{&Q7~S;^Qh>e1g?Ss?ksJutkvx(_Fqrbb-k zoVz#Nw_DVXKj(I1ag%WR4F$4PZy;M0MrTl%qyw0`K3i4SXQ_2dvQ(xFOJ3UTvQ)84 zVi`d~0P;NAtAn^F2Y(x}4>@1QfVJWh{50%xtda9&K?V=SJ#ZoJ!DUIw0Jd4J z1)#+H%US?R)J`&mDe#L!!qP*~pQtE1B+VL3V$lZq;q#d|59Tks;bpgO@-9@QEBfv- z^ft(l&d5FcLekV}kf#?IJB!YQV-9dkytBB2*W(Lcfkq~_53F$fX@*?UVd)GyToKZm zTcnahkh8+4OSc$LPHbCH?8THWJN{Xk+2Q@tXt&smaHtWJ#l^zgrwgOdi=?S!|At79 zJjzY{meDj*|FnsjU;W=_Sz(!ufBb)gEglP#U}ou#e223^in;4~Sx@634U5~01Po;! z!5vV)1K*T_hCCjrcMD7pr%=?bC${7*yGN!IWJmGqT_@Z9xv=xewM0hp&|LR0T|0;} zm-BEb+Vu1;q{KM zSU?<@4-Q99Dl0>Df4|6~b zXlxjPTDg`qYar5fQ8IdME6qO%)I5NYQ2k`zNnwo_+DhY&eb2z{S(5K+33f*4!MD&5 zeSF2hvJ!IC5^{=cD4N7!&{Zwzoa8%CHdIo6u>K2{U4O9t)_S*fr1eVcVCw*DFYC9K zeU@s=jfgV#9ilq^Nq$NW$`3(AJXr1ouMDd6t@K~%E$JocQRxn;y>!a?g>$#_P3J$H z&pXSVzj9vSOm!Y~yye*Bcm=*06vz1vpF_1Dv43oT*S-c~;%eA)jkR9_-welK&Gn{j zovqsTB>XenYP$yB89LaGct7!O@jmB$#CyH>a__m`G_UIU!t)=`CeJIL`#d)yTH_!@ zYmB(xbJw{yx}S8HLXBmDd$4DZwG-kP)(+{T~Os`FU zI{mTqDe2?WhouipZ%&J*eU|oi+JdxT+KjXbX}?N4FRgdl_o-i`{wH-EVl*yDot1iT z>g}nQrCylYHTA2M|D)NhEJA1nmS<$ROR#DasS=VM=oz)+n9h_NTWWJZV9uXQBWL9Q&%1p_W zGQZ1+ATHyp85d;q%DAJwzy0X;gWC6R-vM47j%6Rp-krT8dtLUb?0MP6*|%kn&mNh5 zS@!waJ+nJyr)P6z8$1~!-w6#h65E6xKa>S6y9Q{6tq=OwiL@q4Yed?{pg%0qJnfL? zY8O=4l>^V)nbLBQMmH4#u7J|=kya0P`66uyr42^fj-Y?LNE=0IBauciq(#~!N}GT* z@&zx_rcv5dqcHcqU57x$!ok70zhsi_)6%GOUh{1 zT8k9zh^RNwtXi8CO|7*{Q5WLaU^l+a5>i|tzvD_C9!1QVT(GaXA+W=(fkzVh^Vc@mn{y~h|hvDL-o%TjvcrQ zjh%R7^&{}6&6KT?Q78fs74(T3$>O4mF0Z*5gfIJCrot3#Li<1XFK*rc3$UWO zeE6}z!Uo?6p%K0Eyd&~3L4QEr2IvDqBakP6ma(C2!%@l|dNoi$kJ;QH;sW!Oh?4_g zO@*p6@<9Dw)yva~j?f!R3bBAez|D?cNlLVPqOx$aqJ!Wp8iPliT*xh)7Nn~QlzN_y zBaE@f;k_%Y@J0Ddh=f@m9d6duF>K8F4(B>~I{tSjd(ztt_;(Nf-LI!il5dfJfIpwt z;Lj&yoo&6@da*Undcg9Y<#l-SDYaaSYsJBq?w0nJ26=}(7wdZ;d9bao?HpUC&1%!< zDtf_uHRtd&=QbXUavf8lkv9Q=m+nE zr?}$OA>5}N$fZ*hV2o?@VrC)AOcl~}Qw0VhuJy`mZ-Og{?l{fT|Jj`g3J{2z??i@x z*aGEAblfDF=a)%Q1_4B$MBLnEq`IMrTH1(~Mv`Vjy*q%uX{#uq!G~G9=tHcMWdwWt z@APkCD@eAH+@=){Ub}0PA7%qlwg4k0Bv4^`96sHJ z$7(es25O~hmApJq;5NM>kb1{9MBKzZqeHZ6DjaurkIN*A&{Q2zLs}24Tx>`{W()x^ zv!M;en+_KVTh(=>2nS0NhrJL=8ZIgwTtmNwoo}u*0q2|y@2=V1XW6`4rfV0DiH^V8 z$rAFL9)i7FNd{vOrjx}9>lfCKtgl1;;sJO)yU^OznqvLl@^8x)L{DD{HH_a`94mcnes{Ouy;#uBXasmsZuJF{%w25_J-{*wnq`;Jm1#Y z=1ef3PSEuwc4MB<^(Cs9&O;@8KEa-I*>fR#E@02a?74_Nm$2t^?75shm*Ghcp9}(` zy^^Zmy=#}n`%tYIw=uNuWq{ILYqEWB4*HwwCO07o;)>AI#~@kU)e>B^vxOx(gMod` z>}`Z47}$>h90w4916HSY8@jbw4;n%sRU>Yw3|w%Ezxpc!7mC;Mm4ShXxN#98ZcxSv ztuw+HyfW|@0}sKjH5dqp_jP!GQoPsVy&C1bD9YK+%MnpU7>$Tyy+9RW znN*5atR(<)8*nV>KMIFXA^*`};0XZC6#!uZSPuX)ZwVxvq1PxE4)sjYm(88&xO~c(4T-2tu3 zSSH-hnDBs!3HKXJNUwqk={1H4_cJDp%cwIUp`kG$y=zQJ@3Bm{AJ&+-MbSgs@Fr+X zNbnjH(!0il^d8HE`|ZSpC`V^Pf{A6q{fr3#6UT)6?Zkvg*O`#=wqioiKxaaFk7dIB zj0sVQ&V*Em&V>6Am@K613n4t2&V&S@GvS_~|KpIdC*=RwU_t`WnQ(W|zbk~WWd20*6DXQ&(I}>aUV7nxR#fF0K+{{`v zlBn~?HDV(Pepe>ds_`YofvzmLRt;zpw~yS{Li@<}T#U#@wx-%v<2LI}Ag8F^yg7_f zm}v#Vj?knqqqI_(L0MS5v|T;zE7{c!w*I=x970xX^@Y19ZIzIGB8!lGiqZ~a-6=)4i`@DRP@kl^iJX_yF@u^AN6udCJ}ePAZ*x^)88t3T+2UwB9l?w#(W zP2ZeBOY?E9A)8Oyh8N#P#I71a8)d3rSW1!+<@xwx{WPz9wkx-|r}plaiaPT5suAwk zJR^)fV)aFE9Wim@&}}m|MRPb-Rlf%oF?A^TP#7lM1av)=KkrcCOeF>kObiW$_=DH5 z9)MyW%m=T5B8{IO#PCC_#PCZnh1>_h96XJn#teY?}f{WRZGoiq?eu ztAomlp#Mc~m%KtPd67tZQVc@k72zF5zhg{nms|sh-5qjOMcv6t<%ROH7d%CXbNRwN z$mvGItHld42}D69yrvc-Hu?(?fP`VI%sL~|7ph+PWsT$#tfzP^d_d44uvRVEEP7Zp zBIsWhRF?1n+G@!%wPcCbJd6qf1Gf;wEY!i`PAsw=wmmP1G{Ny4fICDH49I_M93%DH zIbrBlXr9d{K7rg=w?hSMnSjX7a52zak7(XFgXQCx2?1$IGRzkRm4zDSi`0^Z8ombR ztUQibtdAJrAXpl*!Wzhp{s@ES)nw4TMw(NGeg&P+Cq*l?nInh``(e<7O@_;=pt4fK zg+gX0!i9~tn309j1sZLSyHH>%JSa?2WA5i?^{LU6H&VZ)-`F+qb zTEDABU5``YlASGy?&q<

    mu^@udA!fm8#Vz#ItWY9NED&?jcLK2_nT`F?(ItNZ!+ zNvBzqKMjXj?&b=TrQFjMIbwthuJZ1?2XBb z206t2dFmzV`j0{T-Eh!Sjg%ATP|bTI6 z;cz(Kz>VTNwt($^+bEmGcF_B#_s`xU?={}R-aKyyuf-d|z2RH9Ib7#i?s?ktdru+E zPx^Ygc~U$MPqX`|d#Ag~{TsL6t-uUE$DQIn?mFaJ;Cj?m>blC+*Ol(FyF%$@=?|sf zkv=i~!t|c$ozgSYm!v(BR-X1?+U>YCybPY-e@JaeCExFBQ=dtllUkg5Q|h&;SEdfY ztzlMbW6Hpko++s*D>D{lJdiOsqf16g#tGaQ#QewZ?n^M(=7y)zY>lZ7dw$+V$`thu=j$u-d9 z8N{gP^;B#1oJvqn0o9XF^+1V0-#C+s!D;I;v<}oka}fhk>Zz?|Ml*&`@q?*&s2AwP zlk&l7i#PNU;8u7B+zQX|g{^uO7)4^=IEtzmNmby=U9Wk)5E5DypKA zs@Q32&2A_@owf>O(24ads(1!fse&(gEfW71UVM(H}~SJLIu#Zs13 zYhP!twg>IA?f2M6LzgDc-rjDrH$k7~4VYfev(2(SY`e*JxorUMU)#mr7O?wQTH!;F z3;#{=j+HduvE!M-A>TBd$-aLul*gDj1(rBhqBpoM*3IuslM3S3yE%skTPQxpGIoKx zggwnMF;=k@9vQDqd*k{>*lzQW=eL=V;)GV2{UHnLVsIa;n_Y_H?BaY(E(QF?oyquA{N71CnWilis6x}?u zh$5YDg@AkusgZ|3_|PH>hF*)L&5)TtXATz8N0e?@Cc;NJU;0gje}=Og>?nI7jKqc+ zh1J8P;g}=H3Ob|aB+VNDeTQM|i1q-?MWt=RpvvQ9T1$Q>0e!bVn$zNRCAfEwcCGM1 z6a?HwD91Kg=!Vm~tN4QWF&?93k)VKHt;*D6L%8R(G(hPg@-Xfd^%~I7xI2C^`*o%c z&uJs90ZHfJRt0U|-s;kPySOxe1uXqYPXSZ?z$A&(HF4vDYZVA^LdwyQ{|Gl9=R_0U zvqFs(syu7V92NMEWF6FFJnx`Gyo2zoyeA6@CHC^JXfD#Idkl!Bu@JuSKY9vN{8&tI zyW>@k;+%fJ8rjy&_x5Z%>+$nJx%q4jNdea4f(I~Gf)7!M!rnWmD|g1sCj-OeJK4+nlC+!#b<(jjQuJsGIskR z+X36hxQu=pDw`8*W1zAbcO5NpcRHBgao8lEKUM9RPVRA7b_g45IGQH~Ezelt)HP~V z6*wlhK~Fii*v((0;;8llKPvpSM{ydxP&{W9Iihrvmpf36LO5x|Zwj;0ss(R`nm3tdQh!8lnim+1E7EX%Pha6bMoQHSp-va)GXQ>#G@k*# z$3!fA2E+kjYS)17HGnYeug5R0NCLlTy~MiZE5B^;OXUAz@JsN25%26m^MvuL297Bf z2PC01NHI(y;0Q}H3Zp}usKhKAy$;87EwiD8Q*;T>;0tf*rQ6XN{QhCDWJiQZ0KH4= ztuOplFZ0RO6Yj@!b;{Xw3^jFGCUd+c)D_2&2maudxjLEbGJmL?SWEm-Qs49MuI50BMhP4$QUzww|n!@V&G93xXyA<~FTtpV%>fJ`G#j=Zh$(5B*RO|1p z^pp}pF}W2-C4nYY;txV`$*ng(n>C-1Hk!Y?InvS+0Y^S!tyN({#7SR0`X;*hs9REm zuAD7jFzZ(Bb@1#P*ef)T&%J`F99w5x!8rIU7yp2uYxbRL=m;)vDLZ+`u=iA!W!A`_ zp{qBlH}!QX2ClJnrgiae*yc@;*)|WMj@tk#;XsjLD2(>BU-Zb3B59Uw%5K=FcOi7F zlXrvBXBB(3AN5X;s_aI!52IQxu^y`Ip8cUl*2pP1RSlGp5tla1NT(bJf3;+1YhK1k zJ*98^t&#WT)67X5sdQsb8u|m+S6x2|!p{k$O+vG`J_i-Q8ksF?c<~1QzANc)x+<0T zX}4abybl5@+x6}GSYWNqFQi4!eQPDeI#$e&BE()E6Al&2tJBmMtFTABj`agk&FCyd z=tC%Htd8GFk=>GpDsCjsCp$vZ?@~EhijobQlHNb=v>`5Njon;7iKgo&Z#L!!^NA+% zEy6C(!t^uqlu;hp8$f2DmV`xlV$3dG=!W6eFAP93RuC5_T#NpNSBmQ$gJd}hN9Nb} zj$MSJ(ufK*3oG}#KSbvLfT;!4HiU)zH>8?^bm%`?gv76(BTrT03Yg!81AolVYuu0q#0Z~*%O z>}^7j4O|TQcbfGZ%cquiEH7CWS#GdoV=HzLTd`XCFK`L_fP9_YSMCD2_;Kl9&<1=` z8h~^Ex6Zene|0|VoawyNS?Ijn*$=ih-#h;8Sm_8liV;02+hKDYwSQ{=r(L!mK%}I< z+n$5g;7ztmZT+B!ZL=M8z3F<*wZ!#|E9Cl}>t@%Lu1+p)KhgtKWB=!t2@{Co@mmlc zd=ViDH3k6L_v?#SMcMv1%Y;D`4*-SoZGslrhG*iv5#Lo#cKt1}|AIX{%FBk3he@l+CkeIkeIQX4M(wjyp0xG{Iy&^4>0@4g=nslYq zi;FGTuCSWL^SqVGB_^}yo$Pr#dro7|sqA?_d)~{QMeO-7dzP|i37&DgM31pcECHX2 zt>nPt168gfuQZbe<`1;L11nF#8YI*^S)fBS?kEWYwvg=}zM}|1@7}lwKw90BQtqJ2 z_56pWuuX~jLIDiXMWu;$NSf^myy_rW4aHDj3zW=ahF^>28kH8XN*z3bAtv;4;@mLA zHBgM7$gVUdintS^h}$8GxV1UBXmT@4x)n*2k#rN1Cc(GBO(y9CdUQ1@84+HFfC8zw zE!TYj+|gST)XXG{!ctfi-WoTD7zeaOZ)dHMU%`JY;R>0fTC$>U@(Ol^c|Q6j=-(Pt zwuF=|US%uLM^qdg{V6*7s|fv-w)pL4B9x7^vxfZn5Csws5YGu^%DN?G#7*ZFXY;q& z@|a?Gty6-&NW|h0r}Q!8a(*ouaUHct;(+v2J7`z87oduSz9-G zt!X*~eqW{0S;K>31s#z?tR%khJ#kz_HIv&i2OUQ&Y%@0`L*zqQBHvl-kfmM_Oi*VB zvBvgf*4mIcP?y|APQyfoy_8{3TNzX}a*-*+Af?jY*;H44;qm`*u5^ zU3T7ALQ(=?fn z=*If_LWEp?MTtUp<(2CxGV&|qC^GUZS4W{*@=9eO@04guXKG6hT6%9B?-&D?9H4XW z6@B7Pr&WPIOdj|%w*1#_SUARy!|1sN-wdG!436z8;4U_y82eEP-u9t_qIswoMHxoM zW-$7841FDK>f6`K%U+X<&wX7b4a_s*)o4HPwgKGsNDu*-ucsY;tBII=J+Px)t1sML zLQPOvlPF*R)8vB^)he(02x2GJg#2q@!-WVX(Ug#~I^>6@4gIQUaY9F@Rw5fjYXq^S z$O2d0Fo~!$!5-fq2CoPgv6{c2p1CwFBC=%*tR9CdHM2U-MhL|c6@oXdmx$Kc)IrC`@dUZ29?DWbz^r9r8=3a36aHZ5Zxe+ z@pjgTbR37zAHW1(N~Uo-iPrN8M824b)u`T}N^1}Qx}7o+rx;GchAPM5IOBh;cvWHh zt!xe{o0)73j)_B)k6K|FurW9}TsJvPb{tAAd(k40(>a&zK)fNPcBs+>o~^brRVq6B z3Nl~DRHS$eA!}r&6*U*-YvDr3Q3-lR?~~pV^+}45aTZ!>#~upw!bZCXHrgb`tDAff zm#&(vld>}C$9@n=Ffv&SyB55Wk;yt32(4!ZLI;_V$>$~`lY`jrz|zSHa~^tyk%>#Z z!pOu8!yXSa>^aDcOyV*!Ba<5$I5#r6NxZLvb<-5_PDUmVqMVtc95OONIl842HGqsv z!UCR*Og4&lGBVjL-pRq1+FEdj)`QWMZ~LDFVR5 z0zfx1FRrP~7byq|O^@5M1{8vgZyfTqW(x+OhM zVJvD&i1bSjD?|$)-MNr0=?H>@N71j0Bh#b$#5aV{7~J+OlT6>~=>PUm%dbE?Il4J| zJNh}kfhtC=?Ht^l9d}${`_}rQHH`Q_cSAAc3aiU{4EJ>VAuQwk)?Swmf0E#FAsl zvPhP1m17+^BprBH#^2TERIj%m3yOorTuC9BlbJ(!|j9YS$3EGGuyvxHMSMD$81yJaAgb( zN;}%@wv*nu-Z_XIbeH!=?*MPQ*X=#w`O>q`v&*v`v4f_0CVH-g+m&t}x95=ibN4Ry z8}1G6zqwy<-{-#BJ2IXZOusAr`t(uhm!x-2Pfb6S z_I%pT)KKbls75+dUr!07aAjCn%pk~D5YrgPyvKWEq4Pj`;R^?Plg&3I9^v-5 z(Wz&y88+T)>9=!i*lQ$=p@i!3(ssx`a(IyAIfr*6Sl8UiE!&jl%HCLpk89f6zVMR} zm2%A&L^HHes4_&y;F^Gi&h@s8FMvkbiS z2z_+7*cM(5h^6+E@miV`FSe=>ZwZd#8&dAip3m;OeCGQq<$F@LVD15J(VXaof}N3D zyUZ9D8I}gHO67}I->Q@^qMyah|FxV(JOZqtc#hQlx_l`nc~49-H_id{uEfdj>dC(F zU+Fr9iWP$hw_Yp-Sw)IYeKD9E5R88fj#D zJ1&z^O-)}>h~NqS8{bW{j=CXHbN{KA$(xJrG7(qZkf^zP;_{%=M4n{L{jZ*bH`l18 zjpqJOTqdI$-aHf%(_DPleq-ZB6eLFcNoHTZ@Cm(gtRplssI0_RU|OuC!_LCg6jnD`CqVJQ zvjxkUQ`T8=DUNWi)O?NwY`qjQCG67DE&j(&MD)+p*mE zWB4@zi*1PPYm8&D&!N+0uviR77=D7sP^+k`xbGXmeut>}4b*%n(Fl_Udglcu8^Sfw z(Fsf2OQr3h(pH&DTXmY!04peTrW1lKN`(H3kL8zsCPKdynSLUU(7!urCbTcyF;6s2 ztT#Un|8qJ1D}N^ZS4Lhv9*6%XT-h0n;tO}y@E69f^^Tk(D7kmZ!&oyZaBNc$G8s9S zX$Pil$`T1deZqILgBXMg{bBIGPT(A5I3hD@=x=mRO)8Um?ZZ2G{mMkVfEut!M z>6w`eFPu}hkcTn;6U2rKQ08zr@gnp-v}RyhgIA~OTYb>1s#NAzDf1z;QWpKgCT$v$ zH6Y|1sw^sURlI3A_+6w@8lc|o0z{?qq#!vO6gxK0_F#Q7a^Cm8@HrYig)$J4AvAdb zR2fNMb$)r-e0MRVqVsd{#;l)LkoEI?Pf-e<^T;}Sz6-AG6$@UNN%VY}M6X~b(dd}S z01NwNjr1k}4^DA+fl$;#YBaTcQ-Ad`vZ!7nlWL6P5!=v~S%)ghmcT)GyaVE*{xx3m zrdHEI^#4;%xaxmIsAZjh-QP@xznk4x)d|MdbGa^z2R$N4e+cK zzLw4Y%e1Bon{Q5$ixNH*7Lmh&vVnLO=f`Oosr@;G5y^@H?nci zuav%X?uAO#>&`XKkh9o1%9-!Xa5g#iIkr01LYnrJ<1xp5j>(Qf$52GOb2=LBAKKq! zvF;Yx%j^%>Z-epGFnbPS-hF2Kr)`yOF-(ykfL8n!P`B!AbK9bb%)Qh5I;3lldLQy$ z;O*v3^)`E=h=%vJ=UGI=PJ)YPX~|W`N;jM`&sv6?z`Qi5Rp68ZFL`oE91?s zRZ!Ndbj@&0agBBjbrnEi>p0vQ?@Hg4z9@Ze`lIQ)(l(~Ol(snS@wAe(yVCllbx(Ua zbz$nGslQ2`lsYnXP-^eg>{M&&(UiKBzot~DRHl@q+?8^D$}dwcOtGaDWOd4NWu3_U zGV`O%*E3(ud@1t}nT45GW)8^A&U9tAWPG0S&y0l`voj`T6lN$H?G1U|oWl#5KGYOw zGi?iSO(?St)PpRYYeJcIpk}gkt_g*JGRQj%&*b`0vy$sWofNlY_nt-{3Pp&6xULVy zG*}9Xxjs}Q=|h#{nx-tVK2&2xStEH<@IfD{5o0WTrutBX*lG2lsDYY3)H&%)`Dq%I zpQb|jX$q8|?&SJVQ;>vvhrsPfx)nnF+Y{(R5nf64p+@9sfZ-UI5R-B%sko6Q zM)J{k`S_1+%Ojnd`m!O8cR4R5?l+{a6t1&A^jndn3 zRu!XubSoZ)ViYk0Wz-d;ey=M=(OW{rs4@~5&JtH7%VknDa&dt$E>(V^Coir-lb= z;HN7_y(zc>ImE^a>fmwgL^a1LMm?q}Mj01AXN|2s`~Rw9)Q0l14TfUW&p_G7p%}H{ zG>TChVicnufnwAKrWmz>DMoEzicuSwV$_DpK>t>XQH625V@x}SV$`{<6r;|KQH=T- zT0Zapwqn$qt!89hF{;%Uy7UVA*9Vn#iDq(LF)B&EwLztZD@Lsk zk^ZHo7_~O!hpyGnrx>-KD@Lu;6r+sVHN~j4TrsLfQ;ae&;s^djtv#(`l);uiQ85au zOxuc4etk*Q6{E%_9Z$x{GTzSG9DK8`7&TFs;2GKhKZ9aa{}{z6T8nd;5>6t;sGD>$ zomIuCAH8!JY_C^N;@}R&s8~g&xriLj6`8h%l&x`!Ok0AJYwIT0GDW63_AM;R*|WjO(-&*WG6vVWCA6bA`>+yR*~s@ zC^DUdB2xi&$oYvCnbrjT*vLU)28v8!Ly>7C6qz=+t;m$hlw6o1Q<`{%B2zk)g1GzR ztQPq-oUMvj;P?5>3r<72U=|PlmzbGN0 zB9mE9DWM|MOq5V6N=T^4R0e=q%)kze7o*5D6B5c>nBWpqsMsm{!oOj1ip@-|X)${i zvFB#Y1ncj|$>?50p}bq4eGF}kD%vqu3X23?H;Hup;Hl#brb{tNnr>vcx^6XQ<`*lm7qwTyL zE3J!aUQL@w&$BUB*_sb~W*&s&39}3`$a8-lyIRx&xJ0!pHxo8@o-`Dz=I9frP^^Mx z*clM)?5{6eptrn*7?>4t&^;yteJ3jupb_G z>Meh_{MGWj<>?=xT19cJ$n)Ioh-B5nnd5A99CWC$b|2yjcu=d}x&NPMlpRSO2Atfiu?k*^Tho6FSBd4u0~WzAOSh891^#8( zZ#-~k-z2j{E#+uo^_3QuV(g6L9S4w}2jBr3{{{Ezi9d+KP+#2TxORQck%{}*>gGHl z6jh1VeTarkoXAvr@auK)%NO3!Pa6fDX%v_^*?j*}?9|k6+wY_u@NYw6TM0Jp9?Fh>tOMe8-JSu-F|4V*b-UM0vZ25M1BwU@fhi2~9}6q{Qv%K9WV`3OnePES5E^Ss2#9gq7LN`ohg< zHxCa9$Bz9;bUD&GaU$Yv_SX$m&(R8?qF`bHjW$gl%L<8X$26JVUmF5@Q!oVfz`t2a z|5!pABrx6>6%i(Oxzh-!MEM(1a0wJM#~OJIGpVl$^l*x?clZI82Tac5giv&VgV~_{ z+KHlsP_T(IGy*qM|Ds?qjcdrvNSin@a>Oq3cv6wal^T;rgFI*l@Dzdf&8aD{#JaSzy?X4H7lc2sTs;~0@5O;PXJ6uj|G2Tt|xz849lq1a$I%xP7B*3?t@Ll|W z2;T?fHt@a4jnO1nYZYO&GBqCBG-1NH`vSHY(|(VpK7Geg!*?80nsLv8Zm$7@93LqJ zD^28ota+?sG{L2n22`AMPaqJ<$DDAQCS z1eQ3dA&FsU>ajiciaPj~9HdVfd#R2+sAFK#It<)Q1!dC26tzU9$Rj_{QhYspjgGW$ zv@EurgI!{i%(i+ygpS2#uVS{10ucU-`4MAbkblviFaysE_f*g{8N~F?Mp*Jf9ScL- zHaVoRC!&+AJ120_Erpsku8fdTI7@=_HAmhrX4_`J!LmEYIqI5C6A|7H6_(h@J4G&5T7vWnDw&9|Y!nGZ0!H$Q=1mJtyw1!10R?qjO zP(95@e>9J`m^qPUrP4znisrn|AO|lED@-RRr0(%pfD%N8;=YJ|4OU57iWc=CIs%F- zmp%gbp1`*aaN&c<7k+^;0NN%r$0)ZoQUKAEBQH3^X6*LFgwD<(jHgok<3r4p2mayG z8iFkoCz^?bcev}}1dAMya5Q}}DTRFDSK_c>C9xuO@-$(|_=ncHe?=wxFw8-pbQf#B5=HmDO1er<6IHR8g|61|(l zi&!~@Y|c)S(d%TI1qddumSnUA_#y)&lRJ!4OfwFgA8*kN=^lh3U7TtTg+Zp15|*te zTVh-lMO4xq)u+L2N+Wa@YxExcf7pBT_$Z6y5BPcJ%H*EhA;;t-3E>Erh(rRSKEVqk zYBqez~rd2m8C6Ox}=LaRut9`DoTS25Sx=r zgUfJA8m&mxXL%I1$am=V-j90SYTRn*jaW1m24lB+#B}#_itGics#Cfn5JB_RX{^s$ zHaAb3W5L(ox_F53)=~@nSyd#8b%S@+$VylzyR#j_0ZqaA**#!GC}l$E6L>Ij^m$Kc z`&on*HtdbXFav=-(p&Y;sRQU0ySnK!;X4^(>wgpGk?ne6RvQQo@ z#<5%e*hO+Z4Y|q9D_19VxgVlS&-#fl71#4W=d@bePSH>OAa=|VJ>HEOECiD|&guDl z0A?HeC{{9PI#Zh~!WhFrP{NQv;aS1F#7$Jy4`IuKt$fk$pGv04a6Svy!Kq}i>n9%` zry)j>pV{{MGZAa$kKpf#E&X0ID34XO|-_6n2`*h05*jYu;*p-@MBF0G#Jvg|NA!%>B%X z=A$MrT;#n5pT&POU2QtgG|H3@O;Ve@Q+`)|Mt%@#&av_cS(1N*4(WC2dFe@bE51ZJ z4{q}FCA;)<$h#qT!bx6MNK(kZpu~UOb}uYCD{Mn-$+jrlF6(>NSFMj)>#Z*9Wb0sS zwAF9%TDDm}u&lH!u`IB-EPu6JY8h$S68>^{WB57YWVcCyWL#n4VMjyvhHel2Ec97e zY~B)jR_MR%o9xfqpMXofGwmbndG;T04|-kni_woqH$>kaeP(oSbUW@qH$+W~Dve5u zYKvSI`FP~~$SWd;N5(`Ri}**x{Sl)h21O)9Y>jz4=82ejF*9Q>k2x!*C?+i?BIc;$ zE5`?pdmQr|H#shJ40V{eT3^$T1wXJEUg%aL+~r|hF84^#%Nkq*Q+y5~)7MsirF-pT zcZVL4ybZ+5zarru>dN@oRm@C{443Ksflyjp=qL>@k>Rs2Blt6CkkIm)d?Wc)!VYF7 z2Ym&WmX<>7(&=iMSZdas0k<`RRrH{nQH7yK#V72Q|4LV^063TCX*Yw8E^JS>mQQLy z0Du;y3xCJ)*NMMl`0K#mQT!dj-(mb6l7m*Wczre7WLV8Mtc7-WBG{-SpEd&Wtc8X&9=74t4P3G-9L&E@;i-S}`29GaRQ zE;&f@V6l5zl>=Bhn{l)209zjxE&YhEWX%~6jEbOQd$z}Khu>bsBJ$#-vSfqAT}U$-yr5L}%f0g;f%VM|$5+r8w!*>^s_`WRFVGMlx` z>j*{fsfI-;i`P|SbSlsfS9`C`q}BEY75`gcZPyrTTcgR-pbi<-A^T>6KJet1ebYcC zvah0B=YV47QSO*;9Oy^(oet`eeIr0WvTty=+yTAApx0 zixV$*YtIZ3tx@68J}&J`1cQc}pO@%o�eGrM5x(6k9xoJ+rCz@TpU# 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