KIDS Distribution saved on Jun 04, 2015@21:37:47
MAILMAN V8.0 PATCH 1018 - IHS/OIT/FBD - 6/4/2015
**KIDS**:XM*8.0*1018^XM*8.0*27^XM*8.0*28^XM*8.0*30^XM*8.0*35^XM*8.0*34^XM*8.0*33^XM*8.0*36^XM*8.0*41^XM*8.0*40^XM*8.0*44^XM*8.0*45^

**INSTALL NAME**
XM*8.0*1018
"BLD",3506,0)
XM*8.0*1018^MAILMAN^1^3150604^n
"BLD",3506,1,0)
^^1^1^3150604^
"BLD",3506,1,1,0)
IHS COLLECTION OF VA-ISSUED XM V8.0 PATCHES, SEQ. NUMBERS 26-41.
"BLD",3506,6.3)
1
"BLD",3506,10,0)
^9.63P^11^11
"BLD",3506,10,1,0)
3430
"BLD",3506,10,2,0)
3431
"BLD",3506,10,3,0)
3432
"BLD",3506,10,4,0)
3433
"BLD",3506,10,5,0)
3434
"BLD",3506,10,6,0)
3435
"BLD",3506,10,7,0)
3436
"BLD",3506,10,8,0)
3437
"BLD",3506,10,9,0)
3438
"BLD",3506,10,10,0)
3439
"BLD",3506,10,11,0)
3440
"BLD",3506,10,"B",3430,1)

"BLD",3506,10,"B",3431,2)

"BLD",3506,10,"B",3432,3)

"BLD",3506,10,"B",3433,4)

"BLD",3506,10,"B",3434,5)

"BLD",3506,10,"B",3435,6)

"BLD",3506,10,"B",3436,7)

"BLD",3506,10,"B",3437,8)

"BLD",3506,10,"B",3438,9)

"BLD",3506,10,"B",3439,10)

"BLD",3506,10,"B",3440,11)

"BLD",3506,"KRN",0)
^9.67PA^9002226^21
"BLD",3506,"KRN",.4,0)
.4
"BLD",3506,"KRN",.401,0)
.401
"BLD",3506,"KRN",.402,0)
.402
"BLD",3506,"KRN",.403,0)
.403
"BLD",3506,"KRN",.5,0)
.5
"BLD",3506,"KRN",.84,0)
.84
"BLD",3506,"KRN",3.6,0)
3.6
"BLD",3506,"KRN",3.8,0)
3.8
"BLD",3506,"KRN",9.2,0)
9.2
"BLD",3506,"KRN",9.8,0)
9.8
"BLD",3506,"KRN",19,0)
19
"BLD",3506,"KRN",19.1,0)
19.1
"BLD",3506,"KRN",101,0)
101
"BLD",3506,"KRN",409.61,0)
409.61
"BLD",3506,"KRN",771,0)
771
"BLD",3506,"KRN",779.2,0)
779.2
"BLD",3506,"KRN",870,0)
870
"BLD",3506,"KRN",8989.51,0)
8989.51
"BLD",3506,"KRN",8989.52,0)
8989.52
"BLD",3506,"KRN",8994,0)
8994
"BLD",3506,"KRN",9002226,0)
9002226
"BLD",3506,"KRN","B",.4,.4)

"BLD",3506,"KRN","B",.401,.401)

"BLD",3506,"KRN","B",.402,.402)

"BLD",3506,"KRN","B",.403,.403)

"BLD",3506,"KRN","B",.5,.5)

"BLD",3506,"KRN","B",.84,.84)

"BLD",3506,"KRN","B",3.6,3.6)

"BLD",3506,"KRN","B",3.8,3.8)

"BLD",3506,"KRN","B",9.2,9.2)

"BLD",3506,"KRN","B",9.8,9.8)

"BLD",3506,"KRN","B",19,19)

"BLD",3506,"KRN","B",19.1,19.1)

"BLD",3506,"KRN","B",101,101)

"BLD",3506,"KRN","B",409.61,409.61)

"BLD",3506,"KRN","B",771,771)

"BLD",3506,"KRN","B",779.2,779.2)

"BLD",3506,"KRN","B",870,870)

"BLD",3506,"KRN","B",8989.51,8989.51)

"BLD",3506,"KRN","B",8989.52,8989.52)

"BLD",3506,"KRN","B",8994,8994)

"BLD",3506,"KRN","B",9002226,9002226)

"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
1018^3150604
"PKG",139,22,1,"PAH",1,1,0)
^^1^1^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
IHS COLLECTION OF VA-ISSUED XM V8.0 PATCHES, SEQ. NUMBERS 26-41.
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"VER")
8.0^22.0
**INSTALL NAME**
XM*8.0*27
"BLD",3430,0)
XM*8.0*27^MAILMAN^0^3150604^y
"BLD",3430,1,0)
^^4^4^3040928^
"BLD",3430,1,1,0)
 
"BLD",3430,1,2,0)
DIQUIET Variable is not NEWED or KILLED in the Mail Manager Routines. As 
"BLD",3430,1,3,0)
part of a preventative measure, the DIQUIET variable is being NEWed in 
"BLD",3430,1,4,0)
the Mailman routines.
"BLD",3430,4,0)
^9.64PA^^
"BLD",3430,6.3)
1
"BLD",3430,"ABPKG")
n
"BLD",3430,"KRN",0)
^9.67PA^8989.52^19
"BLD",3430,"KRN",.4,0)
.4
"BLD",3430,"KRN",.401,0)
.401
"BLD",3430,"KRN",.402,0)
.402
"BLD",3430,"KRN",.403,0)
.403
"BLD",3430,"KRN",.5,0)
.5
"BLD",3430,"KRN",.84,0)
.84
"BLD",3430,"KRN",3.6,0)
3.6
"BLD",3430,"KRN",3.8,0)
3.8
"BLD",3430,"KRN",9.2,0)
9.2
"BLD",3430,"KRN",9.8,0)
9.8
"BLD",3430,"KRN",9.8,"NM",0)
^9.68A^3^3
"BLD",3430,"KRN",9.8,"NM",1,0)
XMRMSM^^0^B490223
"BLD",3430,"KRN",9.8,"NM",2,0)
XMRONT^^0^B758539
"BLD",3430,"KRN",9.8,"NM",3,0)
XMRUCX^^0^B3929981
"BLD",3430,"KRN",9.8,"NM","B","XMRMSM",1)

"BLD",3430,"KRN",9.8,"NM","B","XMRONT",2)

"BLD",3430,"KRN",9.8,"NM","B","XMRUCX",3)

"BLD",3430,"KRN",19,0)
19
"BLD",3430,"KRN",19,"NM",0)
^9.68A^^
"BLD",3430,"KRN",19.1,0)
19.1
"BLD",3430,"KRN",101,0)
101
"BLD",3430,"KRN",409.61,0)
409.61
"BLD",3430,"KRN",771,0)
771
"BLD",3430,"KRN",870,0)
870
"BLD",3430,"KRN",8989.51,0)
8989.51
"BLD",3430,"KRN",8989.52,0)
8989.52
"BLD",3430,"KRN",8994,0)
8994
"BLD",3430,"KRN","B",.4,.4)

"BLD",3430,"KRN","B",.401,.401)

"BLD",3430,"KRN","B",.402,.402)

"BLD",3430,"KRN","B",.403,.403)

"BLD",3430,"KRN","B",.5,.5)

"BLD",3430,"KRN","B",.84,.84)

"BLD",3430,"KRN","B",3.6,3.6)

"BLD",3430,"KRN","B",3.8,3.8)

"BLD",3430,"KRN","B",9.2,9.2)

"BLD",3430,"KRN","B",9.8,9.8)

"BLD",3430,"KRN","B",19,19)

"BLD",3430,"KRN","B",19.1,19.1)

"BLD",3430,"KRN","B",101,101)

"BLD",3430,"KRN","B",409.61,409.61)

"BLD",3430,"KRN","B",771,771)

"BLD",3430,"KRN","B",870,870)

"BLD",3430,"KRN","B",8989.51,8989.51)

"BLD",3430,"KRN","B",8989.52,8989.52)

"BLD",3430,"KRN","B",8994,8994)

"BLD",3430,"QUES",0)
^9.62^^
"BLD",3430,"REQB",0)
^9.611^1^1
"BLD",3430,"REQB",1,0)
XM*8.0*25^2
"BLD",3430,"REQB","B","XM*8.0*25",1)

"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
27^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^4^4^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
 
"PKG",139,22,1,"PAH",1,1,2,0)
DIQUIET Variable is not NEWED or KILLED in the Mail Manager Routines. As 
"PKG",139,22,1,"PAH",1,1,3,0)
part of a preventative measure, the DIQUIET variable is being NEWed in 
"PKG",139,22,1,"PAH",1,1,4,0)
the Mailman routines.
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
3
"RTN","XMRMSM")
0^1^B490223
"RTN","XMRMSM",1,0)
XMRMSM ;(WASH ISC)/CAP-MSM TCP/IP Front End ;04/30/2002  07:24
"RTN","XMRMSM",2,0)
 ;;8.0;MailMan;**27**;Jun 28, 2002;Build 1
"RTN","XMRMSM",3,0)
 Q
"RTN","XMRMSM",4,0)
 ;%=socket number
"RTN","XMRMSM",5,0)
SOC25 ;
"RTN","XMRMSM",6,0)
 N DIQUIET
"RTN","XMRMSM",7,0)
 S XMRPORT=$G(%),IOT="TCP",(IO,IO(0))=56,DIQUIET=1
"RTN","XMRMSM",8,0)
 I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D TRP^XMCTRAP"
"RTN","XMRMSM",9,0)
 E  S X="TRP^XMCTRAP",@^%ZOSF("TRAP")
"RTN","XMRMSM",10,0)
 D DT^DICRW,DUZ^XUP(.5)
"RTN","XMRMSM",11,0)
 S ER=0
"RTN","XMRMSM",12,0)
 U IO
"RTN","XMRMSM",13,0)
 S XMCHAN="TCP/IP-MAILMAN",XMNO220=""
"RTN","XMRMSM",14,0)
 D ENT^XMR
"RTN","XMRMSM",15,0)
HALT ;Unlock all locks, disconnect the connection and quit
"RTN","XMRMSM",16,0)
 G ^XUSCLEAN
"RTN","XMRONT")
0^2^B758539
"RTN","XMRONT",1,0)
XMRONT ;(SF-ISC)/RWF - OpenM-NT TCP/IP INETD and Front End ;04/30/2002  07:24
"RTN","XMRONT",2,0)
 ;;8.0;MailMan;**27**;Jun 28, 2002;Build 1
"RTN","XMRONT",3,0)
 ; Entry points used by MailMan options (not covered by DBIA):
"RTN","XMRONT",4,0)
 ; GO   XMRONT
"RTN","XMRONT",5,0)
 ;This routine starts a listener for TCP mail Connects.
"RTN","XMRONT",6,0)
 ; It takes the place of the INETD Unix process
"RTN","XMRONT",7,0)
 ;
"RTN","XMRONT",8,0)
GO ;Open port 25 in Accept mode.
"RTN","XMRONT",9,0)
 S XMRSOCK=25
"RTN","XMRONT",10,0)
 D LISTEN^%ZISTCPS(XMRSOCK,"SOC25^XMRONT")
"RTN","XMRONT",11,0)
 ;HALT
"RTN","XMRONT",12,0)
 G HALT
"RTN","XMRONT",13,0)
 ;
"RTN","XMRONT",14,0)
SOC25 ;This entry point is started as a new process by %ZISTCPS.
"RTN","XMRONT",15,0)
 S (XMRPORT,IO,IO(0))=$IO,IOT="TCP"
"RTN","XMRONT",16,0)
 I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D TRP^XMCTRAP"
"RTN","XMRONT",17,0)
 E  S X="TRP^XMCTRAP",@^%ZOSF("TRAP")
"RTN","XMRONT",18,0)
 N DIQUIET S DIQUIET=1 D DT^DICRW,DUZ^XUP(.5)
"RTN","XMRONT",19,0)
 S ER=0,XMCHAN="TCP/IP-MAILMAN",XMNO220=""
"RTN","XMRONT",20,0)
 U IO
"RTN","XMRONT",21,0)
 D ENT^XMR
"RTN","XMRONT",22,0)
HALT ;Unlock all locks, close the connection and quit
"RTN","XMRONT",23,0)
 ;L ;C IO  The close caused a problem under OpenM 52e, so it was removed
"RTN","XMRONT",24,0)
 G ^XUSCLEAN
"RTN","XMRONT",25,0)
 Q
"RTN","XMRUCX")
0^3^B3929981
"RTN","XMRUCX",1,0)
XMRUCX ;(WASH ISC)/THM/CAP-SMTP Receiver (RFC 821) for UCX ;03/25/2004  06:33
"RTN","XMRUCX",2,0)
 ;;8.0;MailMan;**6,19,25,27,44**;Jun 28, 2002;Build 1
"RTN","XMRUCX",3,0)
 ;
"RTN","XMRUCX",4,0)
 ;Entry for Inet_servers interface RECEIVER
"RTN","XMRUCX",5,0)
 ;SMTP service request invokes MailMan
"RTN","XMRUCX",6,0)
SOC25 ;
"RTN","XMRUCX",7,0)
 ;S (XMRPORT,IO,IO(0))=%,X=$E(%_"-INETMM",1,15) D SETENV^%ZOSV
"RTN","XMRUCX",8,0)
 ;I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D R^XMCTRAP Q"
"RTN","XMRUCX",9,0)
 ;E  S X="R^XMCTRAP",@^%ZOSF("TRAP")
"RTN","XMRUCX",10,0)
 ;D DT^DICRW,DUZ^XUP(.5)
"RTN","XMRUCX",11,0)
 ;S ER=0
"RTN","XMRUCX",12,0)
 ;O IO:(SHARE) U IO
"RTN","XMRUCX",13,0)
 ;S XMCHAN="TCP/IP-MAILMAN",XMNO220=""
"RTN","XMRUCX",14,0)
 ;D ENT^XMR
"RTN","XMRUCX",15,0)
 ;;G HALT^XMRTCP
"RTN","XMRUCX",16,0)
 ;Q
"RTN","XMRUCX",17,0)
SOC ;
"RTN","XMRUCX",18,0)
 S (XMRPORT,IO,IO(0))="SYS$NET",X=$E(%_"INETMM",1,15) D SETENV^%ZOSV
"RTN","XMRUCX",19,0)
 I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="S ZZIO=$ZIO H 33 D R^XMCTRAP Q"
"RTN","XMRUCX",20,0)
 E  S X="R^XMCTRAP",@^%ZOSF("TRAP")
"RTN","XMRUCX",21,0)
 D DT^DICRW,DUZ^XUP(.5)
"RTN","XMRUCX",22,0)
 S ER=0
"RTN","XMRUCX",23,0)
 O IO:(TCPDEV):33 U IO
"RTN","XMRUCX",24,0)
 S XMCHAN="TCP/IP-MAILMAN",XMNO220=""
"RTN","XMRUCX",25,0)
 D ENT^XMR
"RTN","XMRUCX",26,0)
 ;G HALT^XMRTCP
"RTN","XMRUCX",27,0)
 Q
"RTN","XMRUCX",28,0)
GTM2 ;Entry point for %ZISTCPS to GT.M
"RTN","XMRUCX",29,0)
 ;The device has been open and setup in %ZISTCPS
"RTN","XMRUCX",30,0)
 N $ETRAP,$ESTACK S $ETRAP="D ^%ZTER S ZZIO=$ZIO H 33 D R^XMCTRAP Q"
"RTN","XMRUCX",31,0)
 S XMRPORT=IO
"RTN","XMRUCX",32,0)
 D SETNM^%ZOSV($E(IO_"INETMM",1,15)),COUNT^XUSCNT(1) ;Process counting under GT.M
"RTN","XMRUCX",33,0)
 N DIQUIET S DIQUIET=1 D DT^DICRW,DUZ^XUP(.5)
"RTN","XMRUCX",34,0)
 S ER=0,XMS0C=1
"RTN","XMRUCX",35,0)
 U IO:(DELIMITER=$C(13))
"RTN","XMRUCX",36,0)
 S XMCHAN="TCP/GTM" ;,XMNO220=""
"RTN","XMRUCX",37,0)
 D ENT^XMR
"RTN","XMRUCX",38,0)
 D COUNT^XUSCNT(-1) ;Check out GT.M counting
"RTN","XMRUCX",39,0)
 Q
"RTN","XMRUCX",40,0)
STARTGTM ;Start the %ZISTCPS service
"RTN","XMRUCX",41,0)
 D LISTEN^%ZISTCPS(25,"GTM2^XMRUCX")
"RTN","XMRUCX",42,0)
 Q
"RTN","XMRUCX",43,0)
CACHEVMS ;Cache/VMS tcpip service and XINETD entry point
"RTN","XMRUCX",44,0)
 N $ETRAP,$ESTACK,XMOS S $ETRAP="S ZZIO=$ZIO H 33 D R^XMCTRAP Q"
"RTN","XMRUCX",45,0)
 ;CHECK OS WHEN SETTING IO VARIABLES XM*8*44 RRA
"RTN","XMRUCX",46,0)
 S XMOS=$$OS^%ZOSV
"RTN","XMRUCX",47,0)
 S (XMRPORT,IO,IO(0))=$S(XMOS["VMS":"SYS$NET",1:$P) D SETNM^%ZOSV($E("INETMM-"_$J,1,15))
"RTN","XMRUCX",48,0)
 N DIQUIET S DIQUIET=1 D DT^DICRW,DUZ^XUP(.5)
"RTN","XMRUCX",49,0)
 S ER=0,XMS0C=1
"RTN","XMRUCX",50,0)
 O IO::33 U IO:(::"-M")
"RTN","XMRUCX",51,0)
 S XMCHAN="TCP/IP-MAILMAN",XMNO220=""
"RTN","XMRUCX",52,0)
 D ENT^XMR
"RTN","XMRUCX",53,0)
 Q
"VER")
8.0^22.0
**INSTALL NAME**
XM*8.0*28
"BLD",3431,0)
XM*8.0*28^MAILMAN^0^3150604^y
"BLD",3431,1,0)
^^2^2^3040716^
"BLD",3431,1,1,0)
 
"BLD",3431,1,2,0)
Scheduling an option to P-MESSAGE
"BLD",3431,4,0)
^9.64PA^^
"BLD",3431,6.3)
1
"BLD",3431,"KRN",0)
^9.67PA^8989.52^19
"BLD",3431,"KRN",.4,0)
.4
"BLD",3431,"KRN",.401,0)
.401
"BLD",3431,"KRN",.402,0)
.402
"BLD",3431,"KRN",.403,0)
.403
"BLD",3431,"KRN",.5,0)
.5
"BLD",3431,"KRN",.84,0)
.84
"BLD",3431,"KRN",3.6,0)
3.6
"BLD",3431,"KRN",3.8,0)
3.8
"BLD",3431,"KRN",9.2,0)
9.2
"BLD",3431,"KRN",9.8,0)
9.8
"BLD",3431,"KRN",9.8,"NM",0)
^9.68A^1^1
"BLD",3431,"KRN",9.8,"NM",1,0)
XMAPHOST^^0^B65914462
"BLD",3431,"KRN",9.8,"NM","B","XMAPHOST",1)

"BLD",3431,"KRN",19,0)
19
"BLD",3431,"KRN",19.1,0)
19.1
"BLD",3431,"KRN",101,0)
101
"BLD",3431,"KRN",409.61,0)
409.61
"BLD",3431,"KRN",771,0)
771
"BLD",3431,"KRN",870,0)
870
"BLD",3431,"KRN",8989.51,0)
8989.51
"BLD",3431,"KRN",8989.52,0)
8989.52
"BLD",3431,"KRN",8994,0)
8994
"BLD",3431,"KRN","B",.4,.4)

"BLD",3431,"KRN","B",.401,.401)

"BLD",3431,"KRN","B",.402,.402)

"BLD",3431,"KRN","B",.403,.403)

"BLD",3431,"KRN","B",.5,.5)

"BLD",3431,"KRN","B",.84,.84)

"BLD",3431,"KRN","B",3.6,3.6)

"BLD",3431,"KRN","B",3.8,3.8)

"BLD",3431,"KRN","B",9.2,9.2)

"BLD",3431,"KRN","B",9.8,9.8)

"BLD",3431,"KRN","B",19,19)

"BLD",3431,"KRN","B",19.1,19.1)

"BLD",3431,"KRN","B",101,101)

"BLD",3431,"KRN","B",409.61,409.61)

"BLD",3431,"KRN","B",771,771)

"BLD",3431,"KRN","B",870,870)

"BLD",3431,"KRN","B",8989.51,8989.51)

"BLD",3431,"KRN","B",8989.52,8989.52)

"BLD",3431,"KRN","B",8994,8994)

"BLD",3431,"QUES",0)
^9.62^^
"BLD",3431,"REQB",0)
^9.611^1^1
"BLD",3431,"REQB",1,0)
XM*8.0*21^2
"BLD",3431,"REQB","B","XM*8.0*21",1)

"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
28^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^2^2^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
 
"PKG",139,22,1,"PAH",1,1,2,0)
Scheduling an option to P-MESSAGE
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
1
"RTN","XMAPHOST")
0^1^B65914462
"RTN","XMAPHOST",1,0)
XMAPHOST ;ISC-SF/GMB-Print to Message (P-MESSAGE) ;07/29/2003  14:36
"RTN","XMAPHOST",2,0)
 ;;8.0;MailMan;**2,17,21,28,33**;Jun 28, 2002;Build 1
"RTN","XMAPHOST",3,0)
 ;Was (WASH ISC)/KMB/CAP before extensive rework.
"RTN","XMAPHOST",4,0)
 ;
"RTN","XMAPHOST",5,0)
 ;This routine handles printing to P-MESSAGE.
"RTN","XMAPHOST",6,0)
 ;
"RTN","XMAPHOST",7,0)
 ;To print reports to mail messages, we actually write to host files
"RTN","XMAPHOST",8,0)
 ;(DOS,VMS...) and then suck them into mail messages.  MailMan works
"RTN","XMAPHOST",9,0)
 ;closely with TaskMan and the device handler to make it happen.
"RTN","XMAPHOST",10,0)
 ;
"RTN","XMAPHOST",11,0)
 ;If a user or application wants to write something to a mail message,
"RTN","XMAPHOST",12,0)
 ;the user should choose (or the application should set ZTIO=) a device
"RTN","XMAPHOST",13,0)
 ;whose name starts with "P-MESSAGE".  The user or application can
"RTN","XMAPHOST",14,0)
 ;set the subject of the message, as well as the recipients.  The user
"RTN","XMAPHOST",15,0)
 ;does this by responding to MailMan queries, and the application does
"RTN","XMAPHOST",16,0)
 ;this by setting input variables (see below).
"RTN","XMAPHOST",17,0)
 ;
"RTN","XMAPHOST",18,0)
 ;EN^XMAPHOST is called as a pre-open execute for the P-MESSAGE device,
"RTN","XMAPHOST",19,0)
 ;and READ^XMAPHOST is called as a close execute for the P-MESSAGE
"RTN","XMAPHOST",20,0)
 ;terminal type.
"RTN","XMAPHOST",21,0)
 ;
"RTN","XMAPHOST",22,0)
 ;The pre-open execute is there to capture the wishes (message subject,
"RTN","XMAPHOST",23,0)
 ;recipients, and whether to queue or not) of the user working in the
"RTN","XMAPHOST",24,0)
 ;foreground.  The global ^TMP("XM-MESS",$J) is created, as a result.
"RTN","XMAPHOST",25,0)
 ;TaskMan looks for this global whenever $E(ZTIO,1,9)="P-MESSAGE", and
"RTN","XMAPHOST",26,0)
 ;includes it in the task, if the user chooses to task the print.  This
"RTN","XMAPHOST",27,0)
 ;is a special arrangement that MailMan has with TaskMan.
"RTN","XMAPHOST",28,0)
 ;
"RTN","XMAPHOST",29,0)
 ;If the job printing to P-MESSAGE is running in the background, then
"RTN","XMAPHOST",30,0)
 ;the pre-open execute code does not get executed during the pre-open
"RTN","XMAPHOST",31,0)
 ;execute; instead, it is run as part of the close execute.
"RTN","XMAPHOST",32,0)
 ;
"RTN","XMAPHOST",33,0)
 ;If more than 250 consecutive null lines are encountered, MailMan
"RTN","XMAPHOST",34,0)
 ;assumes EOF has somehow been missed, and stops transferring lines from
"RTN","XMAPHOST",35,0)
 ;the host file to the message.
"RTN","XMAPHOST",36,0)
 ;
"RTN","XMAPHOST",37,0)
 ;This routine has one idiosyncracy.  If the report contains one single
"RTN","XMAPHOST",38,0)
 ;line or two lines separated with only a $C(13) instead of a CR/LF that
"RTN","XMAPHOST",39,0)
 ;is more than 254 characters long, there will be unexpected results.
"RTN","XMAPHOST",40,0)
 ;
"RTN","XMAPHOST",41,0)
 ;Variables:
"RTN","XMAPHOST",42,0)
 ;input:
"RTN","XMAPHOST",43,0)
 ;  XMDUZ   (optional) Sender DUZ or string (default=DUZ)
"RTN","XMAPHOST",44,0)
 ;          If XMDUZ is a string, then user will not be asked who the
"RTN","XMAPHOST",45,0)
 ;          message should be from.
"RTN","XMAPHOST",46,0)
 ;  XMSUB   (optional) message subject.  If not supplied, then default
"RTN","XMAPHOST",47,0)
 ;          subject is "Queued mail report from "<user name>
"RTN","XMAPHOST",48,0)
 ;  XMY(x)="" (optional) array of additional addressees to whom the
"RTN","XMAPHOST",49,0)
 ;          message should be sent.  See documentation for ^XMD for more
"RTN","XMAPHOST",50,0)
 ;          info on XMY.
"RTN","XMAPHOST",51,0)
 ;          The message will always be sent to XMDUZ (unless XMDUZ is a
"RTN","XMAPHOST",52,0)
 ;          string), so it is not necessary to set XMY(XMDUZ)="".
"RTN","XMAPHOST",53,0)
 ;  XMQUIET (optional) if $G(XMQUIET), then there is no user interaction
"RTN","XMAPHOST",54,0)
 ;          and no information written to the screen.
"RTN","XMAPHOST",55,0)
 ;  XMZBACK (optional) if $D(XMZBACK), then XMZ is set upon exit,
"RTN","XMAPHOST",56,0)
 ;          and XMZBACK is killed.
"RTN","XMAPHOST",57,0)
 ;output:
"RTN","XMAPHOST",58,0)
 ;  XMZ     If $D(XMZBACK), then XMZ is set with the IEN of the message,
"RTN","XMAPHOST",59,0)
 ;          and XMZBACK is killed; otherwise, XMZ is not set, and
"RTN","XMAPHOST",60,0)
 ;          remains whatever it was (or wasn't) before the call.
"RTN","XMAPHOST",61,0)
 ;  XMMG    If error, may contain error message.
"RTN","XMAPHOST",62,0)
 ;  XMV("ERROR") If error, may contain error message.
"RTN","XMAPHOST",63,0)
 ;
"RTN","XMAPHOST",64,0)
EN ; Entry from pre-open execute of P-MESSAGE entry in DEVICE file.
"RTN","XMAPHOST",65,0)
 ; If the user chooses to queue the print, we don't want this code
"RTN","XMAPHOST",66,0)
 ; (the pre-open execute of the DEVICE file entry) to execute when
"RTN","XMAPHOST",67,0)
 ; the task starts up.
"RTN","XMAPHOST",68,0)
 K ^TMP("XM-MESS",$J)
"RTN","XMAPHOST",69,0)
 N %H
"RTN","XMAPHOST",70,0)
 Q:$D(ZTQUEUED)!$G(XMQUIET)!$D(DDS)
"RTN","XMAPHOST",71,0)
 N XMAPHOST,XMABORT
"RTN","XMAPHOST",72,0)
 D SETUP(.XMAPHOST,.XMABORT) I XMABORT S (POP,DUOUT,%ZISQUIT)=1 K IO("Q") Q
"RTN","XMAPHOST",73,0)
 M ^TMP("XM-MESS",$J,"XMY")=^TMP("XMY",$J)
"RTN","XMAPHOST",74,0)
 M ^TMP("XM-MESS",$J,"XMY0")=^TMP("XMY0",$J)
"RTN","XMAPHOST",75,0)
 M ^TMP("XM-MESS",$J,"XMAPHOST")=XMAPHOST
"RTN","XMAPHOST",76,0)
 D CLEANUP^XMXADDR
"RTN","XMAPHOST",77,0)
 D KSETS
"RTN","XMAPHOST",78,0)
 Q
"RTN","XMAPHOST",79,0)
SETUP(XMAPHOST,XMABORT) ; Entry during close-execute (called from READ^XMAPHOST)
"RTN","XMAPHOST",80,0)
 N XMINSTR
"RTN","XMAPHOST",81,0)
 S XMABORT=0
"RTN","XMAPHOST",82,0)
 D INIT(.XMDUZ,.XMAPHOST,.XMINSTR,.XMABORT)
"RTN","XMAPHOST",83,0)
 I 'XMABORT D GETSUBJ($S($D(XMAPSUBJ):XMAPSUBJ,$D(XMSUB):XMSUB,1:""),.XMAPHOST,.XMABORT)
"RTN","XMAPHOST",84,0)
 I 'XMABORT D FROMWHOM(XMDUZ,.XMINSTR,.XMABORT)
"RTN","XMAPHOST",85,0)
 I 'XMABORT D ADDRMSG(XMDUZ,.XMINSTR,.XMABORT)
"RTN","XMAPHOST",86,0)
 I 'XMABORT M XMAPHOST("XMINSTR")=XMINSTR Q
"RTN","XMAPHOST",87,0)
 D CLEANUP^XMXADDR
"RTN","XMAPHOST",88,0)
 D KSETS
"RTN","XMAPHOST",89,0)
 Q
"RTN","XMAPHOST",90,0)
INIT(XMDUZ,XMAPHOST,XMINSTR,XMABORT) ;
"RTN","XMAPHOST",91,0)
 I '$D(XMDUZ) S XMDUZ=DUZ,XMAPHOST("SET XMDUZ")=1 K XMV
"RTN","XMAPHOST",92,0)
 S XMAPHOST("CHG XMDUZ")=XMDUZ
"RTN","XMAPHOST",93,0)
 D SETFROM^XMD(.XMDUZ,.XMINSTR) I $D(XMMG) S XMABORT=1 Q
"RTN","XMAPHOST",94,0)
 I '$D(XMINSTR("FROM")) K XMAPHOST("CHG XMDUZ")
"RTN","XMAPHOST",95,0)
 I '$D(XMV("NAME")) D  Q:XMABORT
"RTN","XMAPHOST",96,0)
 . S XMAPHOST("SET XMV")=1
"RTN","XMAPHOST",97,0)
 . D INITAPI^XMVVITAE
"RTN","XMAPHOST",98,0)
 . I $D(XMV("ERROR")) S XMABORT=1 D:'$D(ZTQUEUED) ERROR^XM(.XMV,"ERROR")
"RTN","XMAPHOST",99,0)
 I $D(XMZBACK) S XMAPHOST("XMZBACK")="" K XMZBACK
"RTN","XMAPHOST",100,0)
 S XMAPHOST("XMDUZ")=XMDUZ
"RTN","XMAPHOST",101,0)
 M XMAPHOST("XMV")=XMV
"RTN","XMAPHOST",102,0)
 Q
"RTN","XMAPHOST",103,0)
GETSUBJ(XMSUBJ,XMAPHOST,XMABORT) ;
"RTN","XMAPHOST",104,0)
 D CHKSUBJ(.XMSUBJ)
"RTN","XMAPHOST",105,0)
 I $D(ZTQUEUED)!$G(XMQUIET) D
"RTN","XMAPHOST",106,0)
 . S XMSUBJ=$G(XMSUBJ,$E($$EZBLD^DIALOG(34233,XMV("NAME")),1,65)) ; queued mail report from |1|
"RTN","XMAPHOST",107,0)
 E  D SUBJ^XMJMS(.XMSUBJ,.XMABORT) Q:XMABORT
"RTN","XMAPHOST",108,0)
 S XMAPHOST("XMSUB")=XMSUBJ
"RTN","XMAPHOST",109,0)
 Q
"RTN","XMAPHOST",110,0)
CHKSUBJ(XMSUBJ) ;
"RTN","XMAPHOST",111,0)
 I XMSUBJ="" K XMSUBJ Q
"RTN","XMAPHOST",112,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMAPHOST",113,0)
 I $L(XMSUBJ)<3 S XMSUBJ=XMSUBJ_"..."
"RTN","XMAPHOST",114,0)
 I $L(XMSUBJ)>65 S XMSUBJ=$E(XMSUBJ,1,65)
"RTN","XMAPHOST",115,0)
 S XMSUBJ=$$XMSUBJ^XMXPARM("",XMSUBJ)
"RTN","XMAPHOST",116,0)
 I $D(XMERR) K XMSUBJ,XMERR,^TMP("XMERR",$J)
"RTN","XMAPHOST",117,0)
 Q
"RTN","XMAPHOST",118,0)
FROMWHOM(XMDUZ,XMINSTR,XMABORT) ;
"RTN","XMAPHOST",119,0)
 I XMDUZ=.5!$D(XMINSTR("FROM")) Q
"RTN","XMAPHOST",120,0)
 N XMFROM
"RTN","XMAPHOST",121,0)
 S XMFROM=$P($G(^XMB(3.7,XMDUZ,16)),U,3)
"RTN","XMAPHOST",122,0)
 I $D(ZTQUEUED)!$G(XMQUIET) D  Q
"RTN","XMAPHOST",123,0)
 . I XMFROM="P" S XMINSTR("FROM")="POSTMASTER"
"RTN","XMAPHOST",124,0)
 N DIR,X,Y,XMME,XMPOST
"RTN","XMAPHOST",125,0)
 S DIR("A")=$$EZBLD^DIALOG(34239) ; From whom
"RTN","XMAPHOST",126,0)
 S XMME=$$EZBLD^DIALOG(34240)   ; M:Me
"RTN","XMAPHOST",127,0)
 S XMPOST=$$EZBLD^DIALOG(34241) ; P:Postmaster
"RTN","XMAPHOST",128,0)
 S DIR(0)="S^"_XMME_";"_XMPOST
"RTN","XMAPHOST",129,0)
 S DIR("B")=$S(XMFROM="P":$P(XMPOST,":",2,9),1:$P(XMME,":",2,9))
"RTN","XMAPHOST",130,0)
 D BLD^DIALOG(34242,"","","DIR(""?"")") ; Answer 'Me' if the message should be from...
"RTN","XMAPHOST",131,0)
 D ^DIR I $D(DIRUT) S XMABORT=1 Q
"RTN","XMAPHOST",132,0)
 I Y=$P(XMPOST,":",1) S XMINSTR("FROM")="POSTMASTER"
"RTN","XMAPHOST",133,0)
 Q
"RTN","XMAPHOST",134,0)
ADDRMSG(XMDUZ,XMINSTR,XMABORT) ;
"RTN","XMAPHOST",135,0)
 ;I '$D(ZTQUEUED),'$G(XMQUIET) K XMY,XMY0
"RTN","XMAPHOST",136,0)
 D INIT^XMXADDR
"RTN","XMAPHOST",137,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMAPHOST",138,0)
 I $D(ZTQUEUED)!$G(XMQUIET) D
"RTN","XMAPHOST",139,0)
 . I '$D(XMAPHOST("CHG XMDUZ")) S XMY(XMDUZ)=""
"RTN","XMAPHOST",140,0)
 . D CHKBSKT^XMD(.XMY,.XMINSTR)
"RTN","XMAPHOST",141,0)
 . D CHKADDR^XMXADDR(XMDUZ,.XMY,.XMINSTR)
"RTN","XMAPHOST",142,0)
 . K XMY
"RTN","XMAPHOST",143,0)
 E  D  Q:XMABORT  ; ask the user for recipients.
"RTN","XMAPHOST",144,0)
 . D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34110),.XMINSTR,"",.XMABORT) ; send
"RTN","XMAPHOST",145,0)
 Q
"RTN","XMAPHOST",146,0)
READ ; Entry from close-execute of P-MESSAGE entry in TERMINAL TYPE file.
"RTN","XMAPHOST",147,0)
 ; Read the host file into a message, send it, erase it.
"RTN","XMAPHOST",148,0)
 ; Read record from file.
"RTN","XMAPHOST",149,0)
 ; Each time <CR> is found in record it ends a message line.
"RTN","XMAPHOST",150,0)
 N X,XMNULCNT,XMLEN,XMZZ,XMREC,XMI,XMLIMIT,XMAPHOST,XMINSTR,XMABORT
"RTN","XMAPHOST",151,0)
 I '$D(^TMP("XM-MESS",$J)) D  Q:XMABORT
"RTN","XMAPHOST",152,0)
 . D SETUP(.XMAPHOST,.XMABORT)
"RTN","XMAPHOST",153,0)
 E  D
"RTN","XMAPHOST",154,0)
 . M ^TMP("XMY",$J)=^TMP("XM-MESS",$J,"XMY")
"RTN","XMAPHOST",155,0)
 . M ^TMP("XMY0",$J)=^TMP("XM-MESS",$J,"XMY0")
"RTN","XMAPHOST",156,0)
 . M XMAPHOST=^TMP("XM-MESS",$J,"XMAPHOST")
"RTN","XMAPHOST",157,0)
 . K ^TMP("XM-MESS",$J)
"RTN","XMAPHOST",158,0)
 S XMDUZ=XMAPHOST("XMDUZ")
"RTN","XMAPHOST",159,0)
 M XMV=XMAPHOST("XMV")
"RTN","XMAPHOST",160,0)
 M XMINSTR=XMAPHOST("XMINSTR")
"RTN","XMAPHOST",161,0)
 S XMLIMIT=$P($G(^XMB(1,1,.16)),U) ; P-MESSAGE LINE LIMIT
"RTN","XMAPHOST",162,0)
 S:'XMLIMIT XMLIMIT=999999999999999
"RTN","XMAPHOST",163,0)
 D CRE8XMZ^XMXSEND(XMAPHOST("XMSUB"),.XMZZ)
"RTN","XMAPHOST",164,0)
 I '$D(ZTQUEUED),'$G(XMQUIET) D
"RTN","XMAPHOST",165,0)
 . U IO(0)
"RTN","XMAPHOST",166,0)
 . W !,$$EZBLD^DIALOG(34234) ; Moving to MailMan message...
"RTN","XMAPHOST",167,0)
 . W !,"."
"RTN","XMAPHOST",168,0)
 U IO
"RTN","XMAPHOST",169,0)
 S (XMNULCNT,XMI)=0,XMREC=""
"RTN","XMAPHOST",170,0)
 N $ETRAP,$ESTACK S $ETRAP="D EOFERR^XMAPHOST"
"RTN","XMAPHOST",171,0)
 F  S XMREC=$$GET() Q:$G(XMAPHOST("EOF"))  D  Q:$G(XMAPHOST("EOF"))!(XMI>XMLIMIT)
"RTN","XMAPHOST",172,0)
 . I XMREC="" D  Q:$G(XMAPHOST("EOF"))
"RTN","XMAPHOST",173,0)
 . . S XMNULCNT=XMNULCNT+1
"RTN","XMAPHOST",174,0)
 . . Q:XMNULCNT'>250     ; If more than 250 consecutive null lines,
"RTN","XMAPHOST",175,0)
 . . S XMAPHOST("EOF")=1 ; set EOF and get rid of those null lines.
"RTN","XMAPHOST",176,0)
 . . F  K ^XMB(3.9,XMZZ,2,XMI,0) S XMI=XMI-1 Q:'XMI  Q:$G(^XMB(3.9,XMZZ,2,XMI,0))'=""
"RTN","XMAPHOST",177,0)
 . E  S XMNULCNT=0
"RTN","XMAPHOST",178,0)
 . S XMLEN=$L(XMREC)
"RTN","XMAPHOST",179,0)
 . F  D  Q:XMREC=""!$G(XMAPHOST("EOF"))
"RTN","XMAPHOST",180,0)
 . . D PUT(XMZZ,$P(XMREC,$C(13)),.XMI)
"RTN","XMAPHOST",181,0)
 . . S XMREC=$P(XMREC,$C(13),2,999)
"RTN","XMAPHOST",182,0)
 . . Q:XMREC=""
"RTN","XMAPHOST",183,0)
 . . S:XMLEN>254 XMREC=XMREC_$$GET(),XMLEN=0
"RTN","XMAPHOST",184,0)
 D EOF
"RTN","XMAPHOST",185,0)
 Q
"RTN","XMAPHOST",186,0)
GET() ; Read a record from the file
"RTN","XMAPHOST",187,0)
 N Y,X
"RTN","XMAPHOST",188,0)
 N $ETRAP,$ESTACK S $ETRAP="S $EC="""" S XMAPHOST(""EOF"")=1 Q """""
"RTN","XMAPHOST",189,0)
 R Y#255:1
"RTN","XMAPHOST",190,0)
 Q Y
"RTN","XMAPHOST",191,0)
PUT(XMZZ,XMREC,XMI) ; Put data into message.
"RTN","XMAPHOST",192,0)
 S XMI=XMI+1,^XMB(3.9,XMZZ,2,XMI,0)=$S(XMREC'?.E1C.E:XMREC,1:$$CTRL^XMXUTIL1(XMREC))
"RTN","XMAPHOST",193,0)
 I '$D(ZTQUEUED),'$G(XMQUIET),XMI#10=0 U IO(0) W "." U IO
"RTN","XMAPHOST",194,0)
 Q
"RTN","XMAPHOST",195,0)
EOFERR ;
"RTN","XMAPHOST",196,0)
 D EOF
"RTN","XMAPHOST",197,0)
 D UNWIND^%ZTER
"RTN","XMAPHOST",198,0)
 Q
"RTN","XMAPHOST",199,0)
EOF ;
"RTN","XMAPHOST",200,0)
 S $ETRAP=""
"RTN","XMAPHOST",201,0)
 I XMI>XMLIMIT D
"RTN","XMAPHOST",202,0)
 . S XMI=XMI+1,^XMB(3.9,XMZZ,2,XMI,0)=""
"RTN","XMAPHOST",203,0)
 . S XMI=XMI+1,^XMB(3.9,XMZZ,2,XMI,0)="*******************************************************************"
"RTN","XMAPHOST",204,0)
 . S XMI=XMI+1,^XMB(3.9,XMZZ,2,XMI,0)=$$EZBLD^DIALOG(34235,XMLIMIT) ; P-MESSAGE line limit of |1| reached.
"RTN","XMAPHOST",205,0)
 . S XMI=XMI+1,^XMB(3.9,XMZZ,2,XMI,0)="*******************************************************************"
"RTN","XMAPHOST",206,0)
 . Q:$D(ZTQUEUED)!$G(XMQUIET)
"RTN","XMAPHOST",207,0)
 . U IO(0) W !,$$EZBLD^DIALOG(34235,XMLIMIT),! ; P-MESSAGE line limit of |1| reached.
"RTN","XMAPHOST",208,0)
 I '$D(ZTQUEUED),'$G(XMQUIET) U IO(0) W !,$$EZBLD^DIALOG(34236) ; Finished moving.
"RTN","XMAPHOST",209,0)
 S ^XMB(3.9,XMZZ,2,0)="^3.92A^"_XMI_"^"_XMI
"RTN","XMAPHOST",210,0)
 D SENDMSG(XMDUZ,XMZZ,.XMINSTR)
"RTN","XMAPHOST",211,0)
 D CLEANUP
"RTN","XMAPHOST",212,0)
 Q
"RTN","XMAPHOST",213,0)
SENDMSG(XMDUZ,XMZ,XMINSTR) ; Here, send the message to recipient.
"RTN","XMAPHOST",214,0)
 I '$D(ZTQUEUED),'$G(XMQUIET) W !,$$EZBLD^DIALOG(34217,XMZ) ; Sending [_XMZ_]...
"RTN","XMAPHOST",215,0)
 D MOVEPART^XMXSEND(XMDUZ,XMZ,.XMINSTR)
"RTN","XMAPHOST",216,0)
 I $D(XMINSTR("FROM")),XMINSTR("FROM")="POSTMASTER"!(XMINSTR("FROM")?.N) S $P(^XMB(3.9,XMZ,0),U,4)=DUZ ; Retain 'sender'
"RTN","XMAPHOST",217,0)
 I $D(XMINSTR("FROM")),$D(XMINSTR("SELF BSKT")),XMINSTR("SELF BSKT")'=1 D
"RTN","XMAPHOST",218,0)
 . D FWD^XMKP(XMDUZ,XMZ,.XMINSTR)
"RTN","XMAPHOST",219,0)
 E  D
"RTN","XMAPHOST",220,0)
 . D SEND^XMKP(XMDUZ,XMZ,.XMINSTR)
"RTN","XMAPHOST",221,0)
 I '$D(ZTQUEUED),'$G(XMQUIET) W !,$$EZBLD^DIALOG(34213) ;   Sent
"RTN","XMAPHOST",222,0)
 D CHECK^XMKPL
"RTN","XMAPHOST",223,0)
 Q
"RTN","XMAPHOST",224,0)
CLEANUP ;
"RTN","XMAPHOST",225,0)
 S IONOFF=1 ; Prevent form feed during device close
"RTN","XMAPHOST",226,0)
 D CLEANUP^XMXADDR
"RTN","XMAPHOST",227,0)
 D KSETS
"RTN","XMAPHOST",228,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMAPHOST",229,0)
 I $D(XMAPHOST("XMZBACK")) S XMZ=XMZZ
"RTN","XMAPHOST",230,0)
 Q
"RTN","XMAPHOST",231,0)
KSETS ;
"RTN","XMAPHOST",232,0)
 K:$G(XMAPHOST("SET XMDUZ")) XMDUZ
"RTN","XMAPHOST",233,0)
 K:$G(XMAPHOST("SET XMV")) XMV,XMDUN,XMNOSEND,XMDISPI,XMPRIV
"RTN","XMAPHOST",234,0)
 I $D(XMAPHOST("CHG XMDUZ")) S XMDUZ=XMAPHOST("CHG XMDUZ")
"RTN","XMAPHOST",235,0)
 Q
"VER")
8.0^22.0
**INSTALL NAME**
XM*8.0*30
"BLD",3432,0)
XM*8.0*30^MAILMAN^0^3150604^y
"BLD",3432,1,0)
^^1^1^3050421^
"BLD",3432,1,1,0)
Delivery queue clogged by very large messages
"BLD",3432,4,0)
^9.64PA^^
"BLD",3432,6.3)
1
"BLD",3432,"ABPKG")
n
"BLD",3432,"KRN",0)
^9.67PA^8989.52^19
"BLD",3432,"KRN",.4,0)
.4
"BLD",3432,"KRN",.401,0)
.401
"BLD",3432,"KRN",.402,0)
.402
"BLD",3432,"KRN",.403,0)
.403
"BLD",3432,"KRN",.5,0)
.5
"BLD",3432,"KRN",.84,0)
.84
"BLD",3432,"KRN",3.6,0)
3.6
"BLD",3432,"KRN",3.8,0)
3.8
"BLD",3432,"KRN",9.2,0)
9.2
"BLD",3432,"KRN",9.8,0)
9.8
"BLD",3432,"KRN",9.8,"NM",0)
^9.68A^1^1
"BLD",3432,"KRN",9.8,"NM",1,0)
XMS1^^0^B43540904
"BLD",3432,"KRN",9.8,"NM","B","XMS1",1)

"BLD",3432,"KRN",19,0)
19
"BLD",3432,"KRN",19.1,0)
19.1
"BLD",3432,"KRN",101,0)
101
"BLD",3432,"KRN",409.61,0)
409.61
"BLD",3432,"KRN",771,0)
771
"BLD",3432,"KRN",870,0)
870
"BLD",3432,"KRN",8989.51,0)
8989.51
"BLD",3432,"KRN",8989.52,0)
8989.52
"BLD",3432,"KRN",8994,0)
8994
"BLD",3432,"KRN","B",.4,.4)

"BLD",3432,"KRN","B",.401,.401)

"BLD",3432,"KRN","B",.402,.402)

"BLD",3432,"KRN","B",.403,.403)

"BLD",3432,"KRN","B",.5,.5)

"BLD",3432,"KRN","B",.84,.84)

"BLD",3432,"KRN","B",3.6,3.6)

"BLD",3432,"KRN","B",3.8,3.8)

"BLD",3432,"KRN","B",9.2,9.2)

"BLD",3432,"KRN","B",9.8,9.8)

"BLD",3432,"KRN","B",19,19)

"BLD",3432,"KRN","B",19.1,19.1)

"BLD",3432,"KRN","B",101,101)

"BLD",3432,"KRN","B",409.61,409.61)

"BLD",3432,"KRN","B",771,771)

"BLD",3432,"KRN","B",870,870)

"BLD",3432,"KRN","B",8989.51,8989.51)

"BLD",3432,"KRN","B",8989.52,8989.52)

"BLD",3432,"KRN","B",8994,8994)

"BLD",3432,"QUES",0)
^9.62^^
"BLD",3432,"REQB",0)
^9.611^^
"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
30^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^1^1^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
Delivery queue clogged by very large messages
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
1
"RTN","XMS1")
0^1^B43540904
"RTN","XMS1",1,0)
XMS1 ;ISC-SF/GMB-SMTP Send (RFC 821) ;05/20/2002  08:40
"RTN","XMS1",2,0)
 ;;8.0;MailMan;**30**;Jun 28, 2002;Build 1
"RTN","XMS1",3,0)
 ; Was ISC-WASH/THM/CAP
"RTN","XMS1",4,0)
 ;
"RTN","XMS1",5,0)
 ; Entry points (DBIA 1151):
"RTN","XMS1",6,0)
 ; $$SRVTIME Set message transmission status information
"RTN","XMS1",7,0)
 ; $$STATUS  Get message transmission status information
"RTN","XMS1",8,0)
SENDMSG(XMK,XMZ,XMB) ;
"RTN","XMS1",9,0)
 N XMZREC,XMNVFROM,XMFROM,XMRCPT,XMNETNAM,XMRZ,XMCM
"RTN","XMS1",10,0)
 ; XMCM("START") - timestamp at start of msg xmit
"RTN","XMS1",11,0)
 ; XMCM("START","FM") - FM date/time (no seconds) at start of msg xmit
"RTN","XMS1",12,0)
 K XMTLER,XMBLOCK,XMLIN
"RTN","XMS1",13,0)
 D INIT(XMINST,XMZ,.XMZREC,.XMNVFROM,.XMFROM,.XMNETNAM)
"RTN","XMS1",14,0)
 D ENVELOPE(XMNETNAM,XMINST,XMZ,XMZREC,XMNVFROM,.XMRZ,.XMRCPT) Q:ER
"RTN","XMS1",15,0)
 D FINISH(XMINST,XMZ,XMRZ)
"RTN","XMS1",16,0)
 Q
"RTN","XMS1",17,0)
INIT(XMINST,XMZ,XMZREC,XMNVFROM,XMFROM,XMNETNAM) ;
"RTN","XMS1",18,0)
 N XMFDA,XMIENS
"RTN","XMS1",19,0)
 S XMIENS=XMINST_","
"RTN","XMS1",20,0)
 S XMFDA(4.2999,XMIENS,1)=$H
"RTN","XMS1",21,0)
 S XMFDA(4.2999,XMIENS,2)=XMZ ; Message in transit
"RTN","XMS1",22,0)
 ;S XMFDA(4.2999,XMIENS,3)="@" ; Last line xmit'd
"RTN","XMS1",23,0)
 D FILE^DIE("","XMFDA")
"RTN","XMS1",24,0)
 S XMNETNAM=^XMB("NETNAME")
"RTN","XMS1",25,0)
 S XMCM("START")=$$TSTAMP^XMXUTIL1
"RTN","XMS1",26,0)
 S XMCM("START","FM")=+$E($$NOW^XLFDT,1,12) ; Strip off the seconds
"RTN","XMS1",27,0)
 S XMZREC=^XMB(3.9,XMZ,0)
"RTN","XMS1",28,0)
 S XMFROM=$$FROM($P(XMZREC,U,2),XMNETNAM)
"RTN","XMS1",29,0)
 S XMNVFROM=$P($G(^XMB(3.9,XMZ,.7)),U,1) ; envelope from
"RTN","XMS1",30,0)
 I XMNVFROM="" S XMNVFROM=XMFROM
"RTN","XMS1",31,0)
 Q
"RTN","XMS1",32,0)
ENVELOPE(XMNETNAM,XMINST,XMZ,XMZREC,XMNVFROM,XMRZ,XMRCPT) ;
"RTN","XMS1",33,0)
 ; These commands are part of RFC 821 - SMTP.
"RTN","XMS1",34,0)
 N XMRSET
"RTN","XMS1",35,0)
 D MAIL(XMZ,XMZREC,.XMNVFROM,.XMRZ) Q:ER
"RTN","XMS1",36,0)
 D RCPT(XMNETNAM,XMINST,XMZ,XMZREC,XMNVFROM,.XMRCPT) Q:ER
"RTN","XMS1",37,0)
 ;I 'XMC("MAILMAN") D CHEKSPEC^XMS2(XMZREC)
"RTN","XMS1",38,0)
 I XMC("MAILMAN") D NONSTD^XMS2(XMNETNAM,XMZ,XMZREC,.XMRZ,.XMRSET) Q:ER
"RTN","XMS1",39,0)
 D DATACMD Q:ER
"RTN","XMS1",40,0)
 I $G(XMRSET) D  Q:ER  ; Send: "" (if 'duplicate message')
"RTN","XMS1",41,0)
 . S XMSG="" X XMSEN
"RTN","XMS1",42,0)
 E  D  Q:ER  ; Send: header records followed by message text
"RTN","XMS1",43,0)
 . I '$D(^XMB(3.9,XMZ,2,.001)) D  Q:ER
"RTN","XMS1",44,0)
 . . D HEADER^XMS3(XMZ,XMZREC,XMFROM,XMNETNAM) Q:ER
"RTN","XMS1",45,0)
 . . S XMSG="" X XMSEN Q:ER
"RTN","XMS1",46,0)
 . D TEXT^XMS3(XMZ)
"RTN","XMS1",47,0)
 ; Send: "."
"RTN","XMS1",48,0)
 ; Recv: "250 'data' accepted"
"RTN","XMS1",49,0)
 ;   or: "254 Duplicate (no add'l recipients).  Msg rejected."
"RTN","XMS1",50,0)
 ;   or: "551 Too many lines.  Msg rejected."
"RTN","XMS1",51,0)
 ;   or: "554 Duplicate (purged).  Msg rejected."
"RTN","XMS1",52,0)
 ;   or: "555 Reply to 'Info Only'.  Msg rejected."
"RTN","XMS1",53,0)
 S XMSG="." X XMSEN Q:ER
"RTN","XMS1",54,0)
 I 'XMC("BATCH") S XMSTIME=300 X XMREC K XMSTIME Q:ER
"RTN","XMS1",55,0)
 S:XMC("BATCH") XMRG="250 OK"
"RTN","XMS1",56,0)
 Q:$E(XMRG)=2
"RTN","XMS1",57,0)
 S (ER,ER("NONFATAL"))=1
"RTN","XMS1",58,0)
 I "^551^554^555^552^"'[(U_$E(XMRG,1,3)_U) Q
"RTN","XMS1",59,0)
 S XMRZ=$P(XMRG," ",2,99)
"RTN","XMS1",60,0)
 D MSGERR^XMS3(XMSITE,XMINST,XMRG,XMZ,XMZREC,XMNVFROM,.XMRCPT)
"RTN","XMS1",61,0)
 Q
"RTN","XMS1",62,0)
DATACMD ; Send: "DATA"
"RTN","XMS1",63,0)
 ; Recv: "354 Enter data"
"RTN","XMS1",64,0)
 S XMSG="DATA" X XMSEN Q:ER
"RTN","XMS1",65,0)
 I 'XMC("BATCH") X XMREC Q:ER
"RTN","XMS1",66,0)
 S:XMC("BATCH") XMRG=300
"RTN","XMS1",67,0)
 Q:$E(XMRG)=3
"RTN","XMS1",68,0)
 D ERTRAN^XMC1(42356) ;Receiver will not accept DATA.
"RTN","XMS1",69,0)
 S ER("MSG")=XMTRAN_" - "_XMRG
"RTN","XMS1",70,0)
 Q
"RTN","XMS1",71,0)
MAIL(XMZ,XMZREC,XMNVFROM,XMRZ) ; Send mail
"RTN","XMS1",72,0)
 ; Send: "MAIL FROM:<USER.JOE@LOCAL.MED.VA.GOV>"
"RTN","XMS1",73,0)
 ; Recv: "250 OK Message-ID:123456@REMOTE.MED.VA.GOV"
"RTN","XMS1",74,0)
 S XMSG="MAIL FROM:"_XMNVFROM X XMSEN Q:ER
"RTN","XMS1",75,0)
 I 'XMC("BATCH") S XMSTIME=300 X XMREC K XMSTIME Q:ER
"RTN","XMS1",76,0)
 I XMC("BATCH") S XMRG="200 ID:Batch"
"RTN","XMS1",77,0)
 I $E(XMRG)'=2 D  Q
"RTN","XMS1",78,0)
 . S (ER,ER("NONFATAL"))=1
"RTN","XMS1",79,0)
 . Q:"^501^502^553^"'[(U_$E(XMRG,1,3)_U)
"RTN","XMS1",80,0)
 . ; 501: Exchange says Syntax error
"RTN","XMS1",81,0)
 . ; 502: MailMan says it won't accept msgs from you.
"RTN","XMS1",82,0)
 . ; 553: Exchange says something's wrong with your FROM address.
"RTN","XMS1",83,0)
 . D MSGERR^XMS3(XMSITE,XMINST,XMRG,XMZ,XMZREC,XMNVFROM)
"RTN","XMS1",84,0)
 S XMRZ=$P(XMRG,"ID:",2)
"RTN","XMS1",85,0)
 Q
"RTN","XMS1",86,0)
FROM(XMFROM,XMNETNAM) ;
"RTN","XMS1",87,0)
 I $F(XMFROM,"@"_XMNETNAM)>$L(XMFROM) S XMFROM=$P(XMFROM,"@"_XMNETNAM)
"RTN","XMS1",88,0)
 I XMFROM'["@" Q "<"_$$NETNAME^XMXUTIL(XMFROM)_">"
"RTN","XMS1",89,0)
 Q "<"_$$REMADDR^XMXADDR3(XMFROM)_">"
"RTN","XMS1",90,0)
RCPT(XMNETNAM,XMINST,XMZ,XMZREC,XMNVFROM,XMRCPT) ; Identify Recipients
"RTN","XMS1",91,0)
 ; Send: "RCPT TO:<USER.JANE@REMOTE.MED.VA.GOV>"
"RTN","XMS1",92,0)
 ; Recv: "250 'RCPT' accepted"
"RTN","XMS1",93,0)
 ;   or: "550 Addressee not found." or "550 Addressee ambiguous."
"RTN","XMS1",94,0)
 ;
"RTN","XMS1",95,0)
 ; When communicating with a MailMan site, we also can add non-standard
"RTN","XMS1",96,0)
 ; information on who forwarded the message to this recipient, and/or
"RTN","XMS1",97,0)
 ; whether the recipient is 'information only' or 'copy'.
"RTN","XMS1",98,0)
 ; Send: "RCPT TO:<I:USER.JANE@REMOTE.MED.VA.GOV> FWD BY:<USER.LEX@LOCAL.MED.VA.GOV>"
"RTN","XMS1",99,0)
 N XMIEN,XMTO,XMTOREC,XMPREFIX,XMTOX,XMTRY,XMFWDBY,XM2MANY
"RTN","XMS1",100,0)
 S (XMIEN,XM2MANY)=0
"RTN","XMS1",101,0)
 F  S XMIEN=$O(^XMB(3.9,XMZ,1,"AQUEUE",XMINST,XMIEN)) Q:XMIEN=""  D  Q:ER!XM2MANY
"RTN","XMS1",102,0)
 . S XMTOREC=$G(^XMB(3.9,XMZ,1,XMIEN,0))
"RTN","XMS1",103,0)
 . I $P(XMTOREC,U,7)'=XMINST D  Q
"RTN","XMS1",104,0)
 . . K ^XMB(3.9,XMZ,1,"AQUEUE",XMINST,XMIEN)
"RTN","XMS1",105,0)
 . I XMC("MAILMAN") D
"RTN","XMS1",106,0)
 . . S XMPREFIX=$P($G(^XMB(3.9,XMZ,1,XMIEN,"T")),U)
"RTN","XMS1",107,0)
 . . S XMFWDBY=$G(^XMB(3.9,XMZ,1,XMIEN,"F"))
"RTN","XMS1",108,0)
 . . I XMFWDBY'="" S XMFWDBY=$$FWDBY(XMFWDBY)
"RTN","XMS1",109,0)
 . E  S (XMPREFIX,XMFWDBY)=""
"RTN","XMS1",110,0)
 . S XMTO=$$TOFORMAT($P(XMTOREC,U),XMPREFIX)
"RTN","XMS1",111,0)
 . S XMSG="RCPT TO:<"_XMTO_">"_$S(XMFWDBY="":"",1:" FWD BY:"_XMFWDBY) X XMSEN Q:ER
"RTN","XMS1",112,0)
 . I 'XMC("BATCH") S XMSTIME=300 X XMREC K XMSTIME Q:ER
"RTN","XMS1",113,0)
 . I XMC("BATCH") S XMRG="250 In transit"
"RTN","XMS1",114,0)
 . I $E(XMRG,1,2)=25 S XMRCPT(XMIEN)="" Q
"RTN","XMS1",115,0)
 . I $E(XMRG,1,3)=552 S XM2MANY=1 Q  ; 552: Too many recipients / exceed storage allocation
"RTN","XMS1",116,0)
 . I $E(XMRG,1,3)=221 S ER=1 Q  ; 221: Closing Connection
"RTN","XMS1",117,0)
 . D RCPTERR^XMS3(XMRG,XMZ,XMZREC,XMNVFROM,$P(XMTOREC,U),XMTO,XMIEN)
"RTN","XMS1",118,0)
 S:'$D(XMRCPT) (ER,ER("NONFATAL"))=1
"RTN","XMS1",119,0)
 Q
"RTN","XMS1",120,0)
TOFORMAT(XMTO,XMPREFIX) ;
"RTN","XMS1",121,0)
 N XMDOM
"RTN","XMS1",122,0)
 S XMDOM=$S(XMTO["@":$P(XMTO,"@",2,99),1:XMNETNAM)
"RTN","XMS1",123,0)
 S XMTO=$$TO($P(XMTO,"@"))
"RTN","XMS1",124,0)
 Q $S(XMPREFIX="":"",$E(XMTO,1)=$C(34):"",1:XMPREFIX_":")_XMTO_"@"_XMDOM
"RTN","XMS1",125,0)
TO(XMTO) ;
"RTN","XMS1",126,0)
 I XMTO?.E1C.E S XMTO=$$CTRL^XMXUTIL1(XMTO)
"RTN","XMS1",127,0)
 Q:XMTO?.A XMTO
"RTN","XMS1",128,0)
 I $E(XMTO)=$C(34),$E(XMTO,$L(XMTO))=$C(34) Q XMTO
"RTN","XMS1",129,0)
 ; If we translate blanks to underscores, we have to be careful with
"RTN","XMS1",130,0)
 ; G. and S. names which contain blanks.  ^XMXADDR* looks for G. and
"RTN","XMS1",131,0)
 ; S. names, and it will translate them back, if necessary.
"RTN","XMS1",132,0)
 ; But Austin is running pre-patch 50 v7.1 MailMan code, which will not
"RTN","XMS1",133,0)
 ; translate them back.  So... for G. and S., we will only translate
"RTN","XMS1",134,0)
 ; when sending to non-MailMan sites.
"RTN","XMS1",135,0)
 I XMTO[","!XMTO[" " D
"RTN","XMS1",136,0)
 . I ".G.g.D.d.H.h.S.s."[("."_$E(XMTO,1,2)),XMC("MAILMAN") Q
"RTN","XMS1",137,0)
 . S XMTO=$TR(XMTO,", .","._+")
"RTN","XMS1",138,0)
 ;Allowed punctuation (without quoting rcpt name is .%_-@+!
"RTN","XMS1",139,0)
 I $TR(XMTO,"()<>@,;:\[]"_$C(34),"")=XMTO Q XMTO
"RTN","XMS1",140,0)
 N I,% ; Reformat name for \ and " characters
"RTN","XMS1",141,0)
 F %="\",$C(34) D
"RTN","XMS1",142,0)
 . S I=0
"RTN","XMS1",143,0)
 . F  S I=$F(XMTO,%,I+1) Q:'I  S XMTO=$E(XMTO,1,I-2)_"\"_$E(XMTO,I-1,999)
"RTN","XMS1",144,0)
 Q XMTO
"RTN","XMS1",145,0)
FWDBY(XMFREC) ;
"RTN","XMS1",146,0)
 I $E(XMFREC,1)=" " Q ""
"RTN","XMS1",147,0)
 I $E(XMFREC,1)="<" Q $P(XMFREC,">",1)_">"
"RTN","XMS1",148,0)
 N XMFDUZ
"RTN","XMS1",149,0)
 S XMFDUZ=$P(XMFREC,U,2)
"RTN","XMS1",150,0)
 I +XMFDUZ=XMFDUZ Q "<"_$$NETNAME^XMXUTIL(XMFDUZ)_">"
"RTN","XMS1",151,0)
 Q ""
"RTN","XMS1",152,0)
FINISH(XMINST,XMZ,XMRZ) ;
"RTN","XMS1",153,0)
 D XMTHIST^XMTDR(XMINST,"S",$P($G(^XMB(3.9,XMZ,2,0)),U,4))
"RTN","XMS1",154,0)
 N XMIEN,XMIENS
"RTN","XMS1",155,0)
 S XMIEN=0
"RTN","XMS1",156,0)
 F  S XMIEN=$O(XMRCPT(XMIEN)) Q:'XMIEN  D
"RTN","XMS1",157,0)
 . N XMFDA
"RTN","XMS1",158,0)
 . S XMIENS=XMIEN_","_XMZ_","
"RTN","XMS1",159,0)
 . S XMFDA(3.91,XMIENS,3)=XMRZ   ; remote msg id
"RTN","XMS1",160,0)
 . S XMFDA(3.91,XMIENS,4)=XMCM("START","FM") ; xmit date/time
"RTN","XMS1",161,0)
 . S XMFDA(3.91,XMIENS,5)=$S(XMC("BATCH"):$$EZBLD^DIALOG(39303.6),1:"@")   ; status: In transit
"RTN","XMS1",162,0)
 . S XMFDA(3.91,XMIENS,6)="@"    ; path
"RTN","XMS1",163,0)
 . S XMFDA(3.91,XMIENS,9)=$$TSTAMP^XMXUTIL1-XMCM("START") ; xmit time (seconds)
"RTN","XMS1",164,0)
 . D FILE^DIE("","XMFDA")
"RTN","XMS1",165,0)
 . S $P(^XMB(3.9,XMZ,1,XMIEN,0),U,7)=XMINST_":"_XMINST ; violates the DD, but we've always done this, and it might help in debugging.
"RTN","XMS1",166,0)
 Q
"RTN","XMS1",167,0)
 ; The following have nothing to do with the above.
"RTN","XMS1",168,0)
 ; They are simply here because of an existing DBIA.
"RTN","XMS1",169,0)
STATUS(XMZ,XMRECIP) ; Get Recipient Status
"RTN","XMS1",170,0)
 N XMIEN
"RTN","XMS1",171,0)
 S XMIEN=$$FIND1^DIC(3.91,","_XMZ_",","QX",XMRECIP,"C") Q:'XMIEN ""
"RTN","XMS1",172,0)
 Q $P($G(^XMB(3.9,XMZ,1,XMIEN,0)),U,6)
"RTN","XMS1",173,0)
SRVTIME(XMZ,XMRECIP,XMSTRING) ; Set Recipient Status
"RTN","XMS1",174,0)
 ;Returns 0 for success, 1 for failure
"RTN","XMS1",175,0)
 ;Parameters=(Message#,Recipient,Status)
"RTN","XMS1",176,0)
 I $L(XMSTRING)>30 Q "2 Status too long"
"RTN","XMS1",177,0)
 I XMSTRING[U Q "3 Bad Characters in Status"
"RTN","XMS1",178,0)
 N XMIEN,XMIENS
"RTN","XMS1",179,0)
 S XMIEN=$$FIND1^DIC(3.91,","_XMZ_",","QX",XMRECIP,"C") Q:'XMIEN "1 No Update"
"RTN","XMS1",180,0)
 S XMIENS=XMIEN_","_XMZ_","
"RTN","XMS1",181,0)
 D SETSTAT^XMTDO(XMIENS,XMSTRING)
"RTN","XMS1",182,0)
 Q 0
"VER")
8.0^22.0
**INSTALL NAME**
XM*8.0*35
"BLD",3433,0)
XM*8.0*35^MAILMAN^0^3150604^y
"BLD",3433,1,0)
^^1^1^3050913^^
"BLD",3433,1,1,0)
Close ALL OGC domains (with the "RC-<something>.GC.VA.GOV" format).
"BLD",3433,4,0)
^9.64PA^^
"BLD",3433,6)
^SEQ #32
"BLD",3433,6.3)
1
"BLD",3433,"ABPKG")
n
"BLD",3433,"INIT")
EN^XMXIP35
"BLD",3433,"KRN",0)
^9.67PA^8989.52^19
"BLD",3433,"KRN",.4,0)
.4
"BLD",3433,"KRN",.401,0)
.401
"BLD",3433,"KRN",.402,0)
.402
"BLD",3433,"KRN",.403,0)
.403
"BLD",3433,"KRN",.5,0)
.5
"BLD",3433,"KRN",.84,0)
.84
"BLD",3433,"KRN",3.6,0)
3.6
"BLD",3433,"KRN",3.8,0)
3.8
"BLD",3433,"KRN",9.2,0)
9.2
"BLD",3433,"KRN",9.8,0)
9.8
"BLD",3433,"KRN",9.8,"NM",0)
^9.68A^1^1
"BLD",3433,"KRN",9.8,"NM",1,0)
XMXIP35^^0^B746063
"BLD",3433,"KRN",9.8,"NM","B","XMXIP35",1)

"BLD",3433,"KRN",19,0)
19
"BLD",3433,"KRN",19.1,0)
19.1
"BLD",3433,"KRN",101,0)
101
"BLD",3433,"KRN",409.61,0)
409.61
"BLD",3433,"KRN",771,0)
771
"BLD",3433,"KRN",870,0)
870
"BLD",3433,"KRN",8989.51,0)
8989.51
"BLD",3433,"KRN",8989.52,0)
8989.52
"BLD",3433,"KRN",8994,0)
8994
"BLD",3433,"KRN","B",.4,.4)

"BLD",3433,"KRN","B",.401,.401)

"BLD",3433,"KRN","B",.402,.402)

"BLD",3433,"KRN","B",.403,.403)

"BLD",3433,"KRN","B",.5,.5)

"BLD",3433,"KRN","B",.84,.84)

"BLD",3433,"KRN","B",3.6,3.6)

"BLD",3433,"KRN","B",3.8,3.8)

"BLD",3433,"KRN","B",9.2,9.2)

"BLD",3433,"KRN","B",9.8,9.8)

"BLD",3433,"KRN","B",19,19)

"BLD",3433,"KRN","B",19.1,19.1)

"BLD",3433,"KRN","B",101,101)

"BLD",3433,"KRN","B",409.61,409.61)

"BLD",3433,"KRN","B",771,771)

"BLD",3433,"KRN","B",870,870)

"BLD",3433,"KRN","B",8989.51,8989.51)

"BLD",3433,"KRN","B",8989.52,8989.52)

"BLD",3433,"KRN","B",8994,8994)

"BLD",3433,"QUES",0)
^9.62^^
"BLD",3433,"REQB",0)
^9.611^^
"INIT")
EN^XMXIP35
"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
35^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^1^1^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
Close ALL OGC domains (with the "RC-<something>.GC.VA.GOV" format).
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
1
"RTN","XMXIP35")
0^1^B746063
"RTN","XMXIP35",1,0)
XMXIP35 ;ISC-SF/GMB-Closes ALL domains "RC-<??>.GC.VA.GOV" ;08/30/2005 14:57
"RTN","XMXIP35",2,0)
 ;;8.0;MailMan;**35**;Jun 28, 2002;Build 1
"RTN","XMXIP35",3,0)
 Q
"RTN","XMXIP35",4,0)
 ;
"RTN","XMXIP35",5,0)
EN ; Post install entry point for patch XM*8*35
"RTN","XMXIP35",6,0)
 ; Change the value of the FLAGS field (#1) in the DOMAIN file (#4.2)
"RTN","XMXIP35",7,0)
 ; to "C"lose for all domains of the form "RC-<something>.GC.VA.GOV".
"RTN","XMXIP35",8,0)
 N DD,DO,DA,DIE,DR,XMI
"RTN","XMXIP35",9,0)
 I $G(U)="" S U="^"
"RTN","XMXIP35",10,0)
 S DIE="^DIC(4.2,",DR="1///C"
"RTN","XMXIP35",11,0)
 S XMI="RC-"
"RTN","XMXIP35",12,0)
 F  S XMI=$O(^DIC(4.2,"B",XMI)) Q:XMI=""!($E(XMI,1,3)'="RC-")  D
"RTN","XMXIP35",13,0)
 . I $P(XMI,".",2,4)'="GC.VA.GOV" Q  ; Incorrect domain format
"RTN","XMXIP35",14,0)
 . S DA=$O(^DIC(4.2,"B",XMI,0))
"RTN","XMXIP35",15,0)
 . I $P(^DIC(4.2,DA,0),U,2)="C" Q  ; Domain is already closed
"RTN","XMXIP35",16,0)
 . D ^DIE
"RTN","XMXIP35",17,0)
 ;
"RTN","XMXIP35",18,0)
 Q
"VER")
8.0^22.0
**INSTALL NAME**
XM*8.0*34
"BLD",3434,0)
XM*8.0*34^MAILMAN^0^3150604^y
"BLD",3434,1,0)
^^1^1^3050810^
"BLD",3434,1,1,0)
Undefined error at Q+12^XMXUTIL3.
"BLD",3434,4,0)
^9.64PA^^
"BLD",3434,6)
^33
"BLD",3434,6.3)
1
"BLD",3434,"ABPKG")
n
"BLD",3434,"KRN",0)
^9.67PA^8989.52^19
"BLD",3434,"KRN",.4,0)
.4
"BLD",3434,"KRN",.401,0)
.401
"BLD",3434,"KRN",.402,0)
.402
"BLD",3434,"KRN",.403,0)
.403
"BLD",3434,"KRN",.5,0)
.5
"BLD",3434,"KRN",.84,0)
.84
"BLD",3434,"KRN",3.6,0)
3.6
"BLD",3434,"KRN",3.8,0)
3.8
"BLD",3434,"KRN",9.2,0)
9.2
"BLD",3434,"KRN",9.8,0)
9.8
"BLD",3434,"KRN",9.8,"NM",0)
^9.68A^1^1
"BLD",3434,"KRN",9.8,"NM",1,0)
XMXUTIL3^^0^B23130058
"BLD",3434,"KRN",9.8,"NM","B","XMXUTIL3",1)

"BLD",3434,"KRN",19,0)
19
"BLD",3434,"KRN",19.1,0)
19.1
"BLD",3434,"KRN",101,0)
101
"BLD",3434,"KRN",409.61,0)
409.61
"BLD",3434,"KRN",771,0)
771
"BLD",3434,"KRN",870,0)
870
"BLD",3434,"KRN",8989.51,0)
8989.51
"BLD",3434,"KRN",8989.52,0)
8989.52
"BLD",3434,"KRN",8994,0)
8994
"BLD",3434,"KRN","B",.4,.4)

"BLD",3434,"KRN","B",.401,.401)

"BLD",3434,"KRN","B",.402,.402)

"BLD",3434,"KRN","B",.403,.403)

"BLD",3434,"KRN","B",.5,.5)

"BLD",3434,"KRN","B",.84,.84)

"BLD",3434,"KRN","B",3.6,3.6)

"BLD",3434,"KRN","B",3.8,3.8)

"BLD",3434,"KRN","B",9.2,9.2)

"BLD",3434,"KRN","B",9.8,9.8)

"BLD",3434,"KRN","B",19,19)

"BLD",3434,"KRN","B",19.1,19.1)

"BLD",3434,"KRN","B",101,101)

"BLD",3434,"KRN","B",409.61,409.61)

"BLD",3434,"KRN","B",771,771)

"BLD",3434,"KRN","B",870,870)

"BLD",3434,"KRN","B",8989.51,8989.51)

"BLD",3434,"KRN","B",8989.52,8989.52)

"BLD",3434,"KRN","B",8994,8994)

"BLD",3434,"QUES",0)
^9.62^^
"BLD",3434,"REQB",0)
^9.611^^
"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
34^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^1^1^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
Undefined error at Q+12^XMXUTIL3.
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
1
"RTN","XMXUTIL3")
0^1^B23130058
"RTN","XMXUTIL3",1,0)
XMXUTIL3 ;ISC-SF/GMB-List addressees, recipients, message network header ;03/05/2001  15:23
"RTN","XMXUTIL3",2,0)
 ;;8.0;MailMan;**34**;Jun 28, 2002;Build 1
"RTN","XMXUTIL3",3,0)
 ; All entry points covered by DBIA 2737.
"RTN","XMXUTIL3",4,0)
 ; Common Parameters for Q, QD, QL, QN, QX:
"RTN","XMXUTIL3",5,0)
 ; XMZ     message number in message file
"RTN","XMXUTIL3",6,0)
 ; XMAMT   How many?
"RTN","XMXUTIL3",7,0)
 ;         =number - Get this many
"RTN","XMXUTIL3",8,0)
 ;         =*      - Get all (default)
"RTN","XMXUTIL3",9,0)
 ; XMSTART("IEN") is used to start the lister going.  The lister will
"RTN","XMXUTIL3",10,0)
 ;         keep it updated from call to call.
"RTN","XMXUTIL3",11,0)
 ;         It is the IEN to start AFTER.
"RTN","XMXUTIL3",12,0)
 ;         (Default is to start at the beginning: after 0.)
"RTN","XMXUTIL3",13,0)
 ; XMTROOT is the target root to receive the message list.
"RTN","XMXUTIL3",14,0)
 ;         (default is ^TMP("XMLIST",$J))
"RTN","XMXUTIL3",15,0)
 ; XMFLAGS are used to control processing (currently not used, except QX)
"RTN","XMXUTIL3",16,0)
 ; XMFIND  Search for recipients/addressees matching this string.
"RTN","XMXUTIL3",17,0)
 ;         Same rules as for FileMan lookups.
"RTN","XMXUTIL3",18,0)
 ;         (If XMFIND is supplied, XMSTART and XMAMT are ignored, and
"RTN","XMXUTIL3",19,0)
 ;          a complete list is returned.)
"RTN","XMXUTIL3",20,0)
 ;
"RTN","XMXUTIL3",21,0)
Q(XMZ,XMFLAGS,XMAMT,XMSTART,XMFIND,XMTROOT) ; Addressee listing
"RTN","XMXUTIL3",22,0)
 N XMCNT,XMIEN,XMREC
"RTN","XMXUTIL3",23,0)
 D QINIT(.XMFLAGS,.XMAMT,.XMFIND,.XMTROOT)
"RTN","XMXUTIL3",24,0)
 I $D(XMFIND) D
"RTN","XMXUTIL3",25,0)
 . D FIND^DIC(3.911,","_XMZ_",","","",XMFIND,"","B")
"RTN","XMXUTIL3",26,0)
 E  D
"RTN","XMXUTIL3",27,0)
 . D LIST^DIC(3.911,","_XMZ_",","","",XMAMT,.XMSTART,"","B")
"RTN","XMXUTIL3",28,0)
 S XMCNT=0
"RTN","XMXUTIL3",29,0)
 F  S XMCNT=$O(^TMP("DILIST",$J,2,XMCNT)) Q:XMCNT=""  S XMIEN=^(XMCNT) D
"RTN","XMXUTIL3",30,0)
 . S XMREC=$G(^XMB(3.9,XMZ,6,XMIEN,0))
"RTN","XMXUTIL3",31,0)
 . S @(XMTROOT_XMCNT_",""TO NAME"")")=$P(XMREC,U,1)
"RTN","XMXUTIL3",32,0)
 . I $P(XMREC,U,2)'="" S @(XMTROOT_XMCNT_",""TYPE"")")=$P(XMREC,U,2)
"RTN","XMXUTIL3",33,0)
 S @(XMTROOT_"0)")=$G(^TMP("DILIST",$J,0))
"RTN","XMXUTIL3",34,0)
 K ^TMP("DILIST",$J)
"RTN","XMXUTIL3",35,0)
 Q
"RTN","XMXUTIL3",36,0)
QD(XMZ,XMFLAGS,XMAMT,XMSTART,XMFIND,XMTROOT) ; Recipient listing
"RTN","XMXUTIL3",37,0)
 D QINIT(.XMFLAGS,.XMAMT,.XMFIND,.XMTROOT)
"RTN","XMXUTIL3",38,0)
 I $D(XMFIND) D
"RTN","XMXUTIL3",39,0)
 . N XMCNT
"RTN","XMXUTIL3",40,0)
 . D QFIND^XMXUTIL4(XMZ,XMFLAGS,XMFIND,XMTROOT,.XMCNT)
"RTN","XMXUTIL3",41,0)
 . S @(XMTROOT_"0)")=XMCNT_U_"*^0"
"RTN","XMXUTIL3",42,0)
 . K ^TMP("DILIST",$J)
"RTN","XMXUTIL3",43,0)
 E  D
"RTN","XMXUTIL3",44,0)
 . D QLIST^XMXUTIL4(XMZ,XMFLAGS,XMAMT,.XMSTART,XMTROOT)
"RTN","XMXUTIL3",45,0)
 Q
"RTN","XMXUTIL3",46,0)
QL(XMZ,XMFLAGS,XMAMT,XMSTART,XMFIND,XMTROOT) ; Later'd Addressee listing
"RTN","XMXUTIL3",47,0)
 N XMCNT,XMIEN,XMREC
"RTN","XMXUTIL3",48,0)
 D QINIT(.XMFLAGS,.XMAMT,.XMFIND,.XMTROOT)
"RTN","XMXUTIL3",49,0)
 I $D(XMFIND) D
"RTN","XMXUTIL3",50,0)
 . D FIND^DIC(3.914,","_XMZ_",","","",XMFIND,"","B")
"RTN","XMXUTIL3",51,0)
 E  D
"RTN","XMXUTIL3",52,0)
 . D LIST^DIC(3.914,","_XMZ_",","","",XMAMT,.XMSTART,"","B")
"RTN","XMXUTIL3",53,0)
 S XMCNT=0
"RTN","XMXUTIL3",54,0)
 F  S XMCNT=$O(^TMP("DILIST",$J,2,XMCNT)) Q:XMCNT=""  S XMIEN=^(XMCNT) D
"RTN","XMXUTIL3",55,0)
 . S XMREC=$G(^XMB(3.9,XMZ,7,XMIEN,0))
"RTN","XMXUTIL3",56,0)
 . S @(XMTROOT_XMCNT_",""TO NAME"")")=$P(XMREC,U,1)
"RTN","XMXUTIL3",57,0)
 . I $P(XMREC,U,2)'="" S @(XMTROOT_XMCNT_",""TYPE"")")=$P(XMREC,U,2)
"RTN","XMXUTIL3",58,0)
 . S @(XMTROOT_XMCNT_",""BY DUZ"")")=$P(XMREC,U,3)
"RTN","XMXUTIL3",59,0)
 . S @(XMTROOT_XMCNT_",""BY NAME"")")=$P(XMREC,U,4)
"RTN","XMXUTIL3",60,0)
 . S @(XMTROOT_XMCNT_",""WHEN"")")=$P(XMREC,U,5)
"RTN","XMXUTIL3",61,0)
 . S @(XMTROOT_XMCNT_",""WHEN MM"")")=$$MMDT^XMXUTIL1($P(XMREC,U,5))
"RTN","XMXUTIL3",62,0)
 S @(XMTROOT_"0)")=$G(^TMP("DILIST",$J,0))
"RTN","XMXUTIL3",63,0)
 K ^TMP("DILIST",$J)
"RTN","XMXUTIL3",64,0)
 Q
"RTN","XMXUTIL3",65,0)
QINIT(XMFLAGS,XMAMT,XMFIND,XMTROOT) ; For internal MailMan use only.
"RTN","XMXUTIL3",66,0)
 S XMFLAGS=$G(XMFLAGS)
"RTN","XMXUTIL3",67,0)
 I $G(XMAMT)="" S XMAMT="*"
"RTN","XMXUTIL3",68,0)
 I $D(XMFIND),XMFIND="" K XMFIND
"RTN","XMXUTIL3",69,0)
 I $D(XMTROOT),XMTROOT'="" D
"RTN","XMXUTIL3",70,0)
 . K @$$CREF^DILF(XMTROOT)
"RTN","XMXUTIL3",71,0)
 . S XMTROOT=$$OREF^DILF(XMTROOT)_"""XMLIST"","
"RTN","XMXUTIL3",72,0)
 E  D
"RTN","XMXUTIL3",73,0)
 . K ^TMP("XMLIST",$J)
"RTN","XMXUTIL3",74,0)
 . S XMTROOT="^TMP(""XMLIST"",$J,"
"RTN","XMXUTIL3",75,0)
 Q
"RTN","XMXUTIL3",76,0)
QN(XMZ,XMFLAGS,XMAMT,XMSTART,XMTROOT) ; Get network header lines
"RTN","XMXUTIL3",77,0)
 N XMCNT,XMIEN
"RTN","XMXUTIL3",78,0)
 D QNINIT(.XMAMT,.XMTROOT)
"RTN","XMXUTIL3",79,0)
 S XMCNT=0
"RTN","XMXUTIL3",80,0)
 S XMIEN=+$G(XMSTART("IEN"))
"RTN","XMXUTIL3",81,0)
 F  S XMIEN=$O(^XMB(3.9,XMZ,2,XMIEN)) Q:XMIEN'<1  D  Q:XMCNT=XMAMT
"RTN","XMXUTIL3",82,0)
 . S XMCNT=XMCNT+1
"RTN","XMXUTIL3",83,0)
 . S @(XMTROOT_XMCNT_")")=^XMB(3.9,XMZ,2,XMIEN,0)
"RTN","XMXUTIL3",84,0)
 S XMSTART("IEN")=XMIEN
"RTN","XMXUTIL3",85,0)
 S @(XMTROOT_"0)")=XMCNT_U_XMAMT_U_$S(XMIEN'<1:0,$O(^XMB(3.9,XMZ,2,XMIEN))<1:1,1:0) ; Any more?
"RTN","XMXUTIL3",86,0)
 Q
"RTN","XMXUTIL3",87,0)
QNINIT(XMAMT,XMTROOT) ; For internal MailMan use only.
"RTN","XMXUTIL3",88,0)
 I $G(XMAMT)="" S XMAMT="*"
"RTN","XMXUTIL3",89,0)
 I $D(XMTROOT),XMTROOT'="" D
"RTN","XMXUTIL3",90,0)
 . K @$$CREF^DILF(XMTROOT)
"RTN","XMXUTIL3",91,0)
 . S XMTROOT=$$OREF^DILF(XMTROOT)_"""XMLIST"","
"RTN","XMXUTIL3",92,0)
 E  D
"RTN","XMXUTIL3",93,0)
 . K ^TMP("XMLIST",$J)
"RTN","XMXUTIL3",94,0)
 . S XMTROOT="^TMP(""XMLIST"",$J,"
"RTN","XMXUTIL3",95,0)
 Q
"RTN","XMXUTIL3",96,0)
QX(XMZ,XMFLAGS,XMAMT,XMSTART,XMTROOT) ; Local Recipient Xtract
"RTN","XMXUTIL3",97,0)
 ; XMFLAGS = "C" list users who are current in reading the message
"RTN","XMXUTIL3",98,0)
 ;           "N" list users who are NOT current in reading the message
"RTN","XMXUTIL3",99,0)
 ;           "T" list users who have terminated the message
"RTN","XMXUTIL3",100,0)
 N XMFIND,XMCNT,XMIEN,XMREC,XMTO,XMNAME,XMRESPS,XMMORE
"RTN","XMXUTIL3",101,0)
 I $L($G(XMFLAGS))'=1,"CNT"'[XMFLAGS Q
"RTN","XMXUTIL3",102,0)
 D QINIT(.XMFLAGS,.XMAMT,.XMFIND,.XMTROOT)
"RTN","XMXUTIL3",103,0)
 S XMRESPS=+$P($G(^XMB(3.9,XMZ,3,0)),U,4)
"RTN","XMXUTIL3",104,0)
 S XMCNT=0,XMTO=+$G(XMSTART("IEN"))
"RTN","XMXUTIL3",105,0)
 F  S XMTO=$O(^XMB(3.9,XMZ,1,"C",XMTO)) Q:+XMTO'='XMTO  D  Q:XMCNT=XMAMT
"RTN","XMXUTIL3",106,0)
 . S XMIEN=$O(^XMB(3.9,XMZ,1,"C",XMTO)) Q:'XMIEN
"RTN","XMXUTIL3",107,0)
 . S XMREC=$G(^XMB(3.9,XMZ,1,XMIEN,0))
"RTN","XMXUTIL3",108,0)
 . I XMFLAGS="C",$P(XMREC,U,2)'=XMRESPS Q  ; not current
"RTN","XMXUTIL3",109,0)
 . I XMFLAGS="N",$P(XMREC,U,2)=XMRESPS Q  ; current
"RTN","XMXUTIL3",110,0)
 . I XMFLAGS="T",'$G(^XMB(3.9,XMZ,1,XMIEN,"D")) Q  ; not terminated
"RTN","XMXUTIL3",111,0)
 . S XMCNT=XMCNT+1
"RTN","XMXUTIL3",112,0)
 . S XMNAME=$$NAME^XMXUTIL(XMTO)
"RTN","XMXUTIL3",113,0)
 . D QDFLDS^XMXUTIL4(XMZ,XMFLAGS,XMIEN,XMREC,XMNAME,XMTROOT,XMCNT)
"RTN","XMXUTIL3",114,0)
 S XMSTART("IEN")=XMTO
"RTN","XMXUTIL3",115,0)
 I XMAMT'="*" D
"RTN","XMXUTIL3",116,0)
 . S XMMORE=0 ; any more?
"RTN","XMXUTIL3",117,0)
 . F  S XMTO=$O(^XMB(3.9,XMZ,1,"C",XMTO)) Q:+XMTO'='XMTO  D  Q:XMMORE
"RTN","XMXUTIL3",118,0)
 . . S XMIEN=$O(^XMB(3.9,XMZ,1,"C",XMTO)) Q:'XMIEN
"RTN","XMXUTIL3",119,0)
 . . S XMREC=$G(^XMB(3.9,XMZ,1,XMIEN,0))
"RTN","XMXUTIL3",120,0)
 . . I XMFLAGS="C",$P(XMREC,U,2)'=XMRESPS Q  ; not current
"RTN","XMXUTIL3",121,0)
 . . I XMFLAGS="N",$P(XMREC,U,2)=XMRESPS Q  ; current
"RTN","XMXUTIL3",122,0)
 . . I XMFLAGS="T",'$G(^XMB(3.9,XMZ,1,XMIEN,"D")) Q  ; not terminated
"RTN","XMXUTIL3",123,0)
 . . S XMMORE=1
"RTN","XMXUTIL3",124,0)
 S @(XMTROOT_"0)")=XMCNT_U_XMAMT_U_$S(XMAMT="*":0,1:XMMORE)
"RTN","XMXUTIL3",125,0)
 Q
"VER")
8.0^22.0
**INSTALL NAME**
XM*8.0*33
"BLD",3435,0)
XM*8.0*33^MAILMAN^0^3150604^y
"BLD",3435,1,0)
^^1^1^3050720^
"BLD",3435,1,1,0)
Corrects XM*8*26
"BLD",3435,4,0)
^9.64PA^^
"BLD",3435,6)
^34
"BLD",3435,6.3)
1
"BLD",3435,"ABPKG")
n
"BLD",3435,"KRN",0)
^9.67PA^8989.52^19
"BLD",3435,"KRN",.4,0)
.4
"BLD",3435,"KRN",.401,0)
.401
"BLD",3435,"KRN",.402,0)
.402
"BLD",3435,"KRN",.403,0)
.403
"BLD",3435,"KRN",.5,0)
.5
"BLD",3435,"KRN",.84,0)
.84
"BLD",3435,"KRN",3.6,0)
3.6
"BLD",3435,"KRN",3.8,0)
3.8
"BLD",3435,"KRN",9.2,0)
9.2
"BLD",3435,"KRN",9.8,0)
9.8
"BLD",3435,"KRN",9.8,"NM",0)
^9.68A^1^1
"BLD",3435,"KRN",9.8,"NM",1,0)
XMAPHOST^^0^B65914462
"BLD",3435,"KRN",9.8,"NM","B","XMAPHOST",1)

"BLD",3435,"KRN",19,0)
19
"BLD",3435,"KRN",19.1,0)
19.1
"BLD",3435,"KRN",101,0)
101
"BLD",3435,"KRN",409.61,0)
409.61
"BLD",3435,"KRN",771,0)
771
"BLD",3435,"KRN",870,0)
870
"BLD",3435,"KRN",8989.51,0)
8989.51
"BLD",3435,"KRN",8989.52,0)
8989.52
"BLD",3435,"KRN",8994,0)
8994
"BLD",3435,"KRN","B",.4,.4)

"BLD",3435,"KRN","B",.401,.401)

"BLD",3435,"KRN","B",.402,.402)

"BLD",3435,"KRN","B",.403,.403)

"BLD",3435,"KRN","B",.5,.5)

"BLD",3435,"KRN","B",.84,.84)

"BLD",3435,"KRN","B",3.6,3.6)

"BLD",3435,"KRN","B",3.8,3.8)

"BLD",3435,"KRN","B",9.2,9.2)

"BLD",3435,"KRN","B",9.8,9.8)

"BLD",3435,"KRN","B",19,19)

"BLD",3435,"KRN","B",19.1,19.1)

"BLD",3435,"KRN","B",101,101)

"BLD",3435,"KRN","B",409.61,409.61)

"BLD",3435,"KRN","B",771,771)

"BLD",3435,"KRN","B",870,870)

"BLD",3435,"KRN","B",8989.51,8989.51)

"BLD",3435,"KRN","B",8989.52,8989.52)

"BLD",3435,"KRN","B",8994,8994)

"BLD",3435,"QUES",0)
^9.62^^
"BLD",3435,"REQB",0)
^9.611^1^1
"BLD",3435,"REQB",1,0)
XM*8.0*28^2
"BLD",3435,"REQB","B","XM*8.0*28",1)

"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
33^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^1^1^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
Corrects XM*8*26
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
1
"RTN","XMAPHOST")
0^1^B65914462
"RTN","XMAPHOST",1,0)
XMAPHOST ;ISC-SF/GMB-Print to Message (P-MESSAGE) ;07/29/2003  14:36
"RTN","XMAPHOST",2,0)
 ;;8.0;MailMan;**2,17,21,28,33**;Jun 28, 2002;Build 1
"RTN","XMAPHOST",3,0)
 ;Was (WASH ISC)/KMB/CAP before extensive rework.
"RTN","XMAPHOST",4,0)
 ;
"RTN","XMAPHOST",5,0)
 ;This routine handles printing to P-MESSAGE.
"RTN","XMAPHOST",6,0)
 ;
"RTN","XMAPHOST",7,0)
 ;To print reports to mail messages, we actually write to host files
"RTN","XMAPHOST",8,0)
 ;(DOS,VMS...) and then suck them into mail messages.  MailMan works
"RTN","XMAPHOST",9,0)
 ;closely with TaskMan and the device handler to make it happen.
"RTN","XMAPHOST",10,0)
 ;
"RTN","XMAPHOST",11,0)
 ;If a user or application wants to write something to a mail message,
"RTN","XMAPHOST",12,0)
 ;the user should choose (or the application should set ZTIO=) a device
"RTN","XMAPHOST",13,0)
 ;whose name starts with "P-MESSAGE".  The user or application can
"RTN","XMAPHOST",14,0)
 ;set the subject of the message, as well as the recipients.  The user
"RTN","XMAPHOST",15,0)
 ;does this by responding to MailMan queries, and the application does
"RTN","XMAPHOST",16,0)
 ;this by setting input variables (see below).
"RTN","XMAPHOST",17,0)
 ;
"RTN","XMAPHOST",18,0)
 ;EN^XMAPHOST is called as a pre-open execute for the P-MESSAGE device,
"RTN","XMAPHOST",19,0)
 ;and READ^XMAPHOST is called as a close execute for the P-MESSAGE
"RTN","XMAPHOST",20,0)
 ;terminal type.
"RTN","XMAPHOST",21,0)
 ;
"RTN","XMAPHOST",22,0)
 ;The pre-open execute is there to capture the wishes (message subject,
"RTN","XMAPHOST",23,0)
 ;recipients, and whether to queue or not) of the user working in the
"RTN","XMAPHOST",24,0)
 ;foreground.  The global ^TMP("XM-MESS",$J) is created, as a result.
"RTN","XMAPHOST",25,0)
 ;TaskMan looks for this global whenever $E(ZTIO,1,9)="P-MESSAGE", and
"RTN","XMAPHOST",26,0)
 ;includes it in the task, if the user chooses to task the print.  This
"RTN","XMAPHOST",27,0)
 ;is a special arrangement that MailMan has with TaskMan.
"RTN","XMAPHOST",28,0)
 ;
"RTN","XMAPHOST",29,0)
 ;If the job printing to P-MESSAGE is running in the background, then
"RTN","XMAPHOST",30,0)
 ;the pre-open execute code does not get executed during the pre-open
"RTN","XMAPHOST",31,0)
 ;execute; instead, it is run as part of the close execute.
"RTN","XMAPHOST",32,0)
 ;
"RTN","XMAPHOST",33,0)
 ;If more than 250 consecutive null lines are encountered, MailMan
"RTN","XMAPHOST",34,0)
 ;assumes EOF has somehow been missed, and stops transferring lines from
"RTN","XMAPHOST",35,0)
 ;the host file to the message.
"RTN","XMAPHOST",36,0)
 ;
"RTN","XMAPHOST",37,0)
 ;This routine has one idiosyncracy.  If the report contains one single
"RTN","XMAPHOST",38,0)
 ;line or two lines separated with only a $C(13) instead of a CR/LF that
"RTN","XMAPHOST",39,0)
 ;is more than 254 characters long, there will be unexpected results.
"RTN","XMAPHOST",40,0)
 ;
"RTN","XMAPHOST",41,0)
 ;Variables:
"RTN","XMAPHOST",42,0)
 ;input:
"RTN","XMAPHOST",43,0)
 ;  XMDUZ   (optional) Sender DUZ or string (default=DUZ)
"RTN","XMAPHOST",44,0)
 ;          If XMDUZ is a string, then user will not be asked who the
"RTN","XMAPHOST",45,0)
 ;          message should be from.
"RTN","XMAPHOST",46,0)
 ;  XMSUB   (optional) message subject.  If not supplied, then default
"RTN","XMAPHOST",47,0)
 ;          subject is "Queued mail report from "<user name>
"RTN","XMAPHOST",48,0)
 ;  XMY(x)="" (optional) array of additional addressees to whom the
"RTN","XMAPHOST",49,0)
 ;          message should be sent.  See documentation for ^XMD for more
"RTN","XMAPHOST",50,0)
 ;          info on XMY.
"RTN","XMAPHOST",51,0)
 ;          The message will always be sent to XMDUZ (unless XMDUZ is a
"RTN","XMAPHOST",52,0)
 ;          string), so it is not necessary to set XMY(XMDUZ)="".
"RTN","XMAPHOST",53,0)
 ;  XMQUIET (optional) if $G(XMQUIET), then there is no user interaction
"RTN","XMAPHOST",54,0)
 ;          and no information written to the screen.
"RTN","XMAPHOST",55,0)
 ;  XMZBACK (optional) if $D(XMZBACK), then XMZ is set upon exit,
"RTN","XMAPHOST",56,0)
 ;          and XMZBACK is killed.
"RTN","XMAPHOST",57,0)
 ;output:
"RTN","XMAPHOST",58,0)
 ;  XMZ     If $D(XMZBACK), then XMZ is set with the IEN of the message,
"RTN","XMAPHOST",59,0)
 ;          and XMZBACK is killed; otherwise, XMZ is not set, and
"RTN","XMAPHOST",60,0)
 ;          remains whatever it was (or wasn't) before the call.
"RTN","XMAPHOST",61,0)
 ;  XMMG    If error, may contain error message.
"RTN","XMAPHOST",62,0)
 ;  XMV("ERROR") If error, may contain error message.
"RTN","XMAPHOST",63,0)
 ;
"RTN","XMAPHOST",64,0)
EN ; Entry from pre-open execute of P-MESSAGE entry in DEVICE file.
"RTN","XMAPHOST",65,0)
 ; If the user chooses to queue the print, we don't want this code
"RTN","XMAPHOST",66,0)
 ; (the pre-open execute of the DEVICE file entry) to execute when
"RTN","XMAPHOST",67,0)
 ; the task starts up.
"RTN","XMAPHOST",68,0)
 K ^TMP("XM-MESS",$J)
"RTN","XMAPHOST",69,0)
 N %H
"RTN","XMAPHOST",70,0)
 Q:$D(ZTQUEUED)!$G(XMQUIET)!$D(DDS)
"RTN","XMAPHOST",71,0)
 N XMAPHOST,XMABORT
"RTN","XMAPHOST",72,0)
 D SETUP(.XMAPHOST,.XMABORT) I XMABORT S (POP,DUOUT,%ZISQUIT)=1 K IO("Q") Q
"RTN","XMAPHOST",73,0)
 M ^TMP("XM-MESS",$J,"XMY")=^TMP("XMY",$J)
"RTN","XMAPHOST",74,0)
 M ^TMP("XM-MESS",$J,"XMY0")=^TMP("XMY0",$J)
"RTN","XMAPHOST",75,0)
 M ^TMP("XM-MESS",$J,"XMAPHOST")=XMAPHOST
"RTN","XMAPHOST",76,0)
 D CLEANUP^XMXADDR
"RTN","XMAPHOST",77,0)
 D KSETS
"RTN","XMAPHOST",78,0)
 Q
"RTN","XMAPHOST",79,0)
SETUP(XMAPHOST,XMABORT) ; Entry during close-execute (called from READ^XMAPHOST)
"RTN","XMAPHOST",80,0)
 N XMINSTR
"RTN","XMAPHOST",81,0)
 S XMABORT=0
"RTN","XMAPHOST",82,0)
 D INIT(.XMDUZ,.XMAPHOST,.XMINSTR,.XMABORT)
"RTN","XMAPHOST",83,0)
 I 'XMABORT D GETSUBJ($S($D(XMAPSUBJ):XMAPSUBJ,$D(XMSUB):XMSUB,1:""),.XMAPHOST,.XMABORT)
"RTN","XMAPHOST",84,0)
 I 'XMABORT D FROMWHOM(XMDUZ,.XMINSTR,.XMABORT)
"RTN","XMAPHOST",85,0)
 I 'XMABORT D ADDRMSG(XMDUZ,.XMINSTR,.XMABORT)
"RTN","XMAPHOST",86,0)
 I 'XMABORT M XMAPHOST("XMINSTR")=XMINSTR Q
"RTN","XMAPHOST",87,0)
 D CLEANUP^XMXADDR
"RTN","XMAPHOST",88,0)
 D KSETS
"RTN","XMAPHOST",89,0)
 Q
"RTN","XMAPHOST",90,0)
INIT(XMDUZ,XMAPHOST,XMINSTR,XMABORT) ;
"RTN","XMAPHOST",91,0)
 I '$D(XMDUZ) S XMDUZ=DUZ,XMAPHOST("SET XMDUZ")=1 K XMV
"RTN","XMAPHOST",92,0)
 S XMAPHOST("CHG XMDUZ")=XMDUZ
"RTN","XMAPHOST",93,0)
 D SETFROM^XMD(.XMDUZ,.XMINSTR) I $D(XMMG) S XMABORT=1 Q
"RTN","XMAPHOST",94,0)
 I '$D(XMINSTR("FROM")) K XMAPHOST("CHG XMDUZ")
"RTN","XMAPHOST",95,0)
 I '$D(XMV("NAME")) D  Q:XMABORT
"RTN","XMAPHOST",96,0)
 . S XMAPHOST("SET XMV")=1
"RTN","XMAPHOST",97,0)
 . D INITAPI^XMVVITAE
"RTN","XMAPHOST",98,0)
 . I $D(XMV("ERROR")) S XMABORT=1 D:'$D(ZTQUEUED) ERROR^XM(.XMV,"ERROR")
"RTN","XMAPHOST",99,0)
 I $D(XMZBACK) S XMAPHOST("XMZBACK")="" K XMZBACK
"RTN","XMAPHOST",100,0)
 S XMAPHOST("XMDUZ")=XMDUZ
"RTN","XMAPHOST",101,0)
 M XMAPHOST("XMV")=XMV
"RTN","XMAPHOST",102,0)
 Q
"RTN","XMAPHOST",103,0)
GETSUBJ(XMSUBJ,XMAPHOST,XMABORT) ;
"RTN","XMAPHOST",104,0)
 D CHKSUBJ(.XMSUBJ)
"RTN","XMAPHOST",105,0)
 I $D(ZTQUEUED)!$G(XMQUIET) D
"RTN","XMAPHOST",106,0)
 . S XMSUBJ=$G(XMSUBJ,$E($$EZBLD^DIALOG(34233,XMV("NAME")),1,65)) ; queued mail report from |1|
"RTN","XMAPHOST",107,0)
 E  D SUBJ^XMJMS(.XMSUBJ,.XMABORT) Q:XMABORT
"RTN","XMAPHOST",108,0)
 S XMAPHOST("XMSUB")=XMSUBJ
"RTN","XMAPHOST",109,0)
 Q
"RTN","XMAPHOST",110,0)
CHKSUBJ(XMSUBJ) ;
"RTN","XMAPHOST",111,0)
 I XMSUBJ="" K XMSUBJ Q
"RTN","XMAPHOST",112,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMAPHOST",113,0)
 I $L(XMSUBJ)<3 S XMSUBJ=XMSUBJ_"..."
"RTN","XMAPHOST",114,0)
 I $L(XMSUBJ)>65 S XMSUBJ=$E(XMSUBJ,1,65)
"RTN","XMAPHOST",115,0)
 S XMSUBJ=$$XMSUBJ^XMXPARM("",XMSUBJ)
"RTN","XMAPHOST",116,0)
 I $D(XMERR) K XMSUBJ,XMERR,^TMP("XMERR",$J)
"RTN","XMAPHOST",117,0)
 Q
"RTN","XMAPHOST",118,0)
FROMWHOM(XMDUZ,XMINSTR,XMABORT) ;
"RTN","XMAPHOST",119,0)
 I XMDUZ=.5!$D(XMINSTR("FROM")) Q
"RTN","XMAPHOST",120,0)
 N XMFROM
"RTN","XMAPHOST",121,0)
 S XMFROM=$P($G(^XMB(3.7,XMDUZ,16)),U,3)
"RTN","XMAPHOST",122,0)
 I $D(ZTQUEUED)!$G(XMQUIET) D  Q
"RTN","XMAPHOST",123,0)
 . I XMFROM="P" S XMINSTR("FROM")="POSTMASTER"
"RTN","XMAPHOST",124,0)
 N DIR,X,Y,XMME,XMPOST
"RTN","XMAPHOST",125,0)
 S DIR("A")=$$EZBLD^DIALOG(34239) ; From whom
"RTN","XMAPHOST",126,0)
 S XMME=$$EZBLD^DIALOG(34240)   ; M:Me
"RTN","XMAPHOST",127,0)
 S XMPOST=$$EZBLD^DIALOG(34241) ; P:Postmaster
"RTN","XMAPHOST",128,0)
 S DIR(0)="S^"_XMME_";"_XMPOST
"RTN","XMAPHOST",129,0)
 S DIR("B")=$S(XMFROM="P":$P(XMPOST,":",2,9),1:$P(XMME,":",2,9))
"RTN","XMAPHOST",130,0)
 D BLD^DIALOG(34242,"","","DIR(""?"")") ; Answer 'Me' if the message should be from...
"RTN","XMAPHOST",131,0)
 D ^DIR I $D(DIRUT) S XMABORT=1 Q
"RTN","XMAPHOST",132,0)
 I Y=$P(XMPOST,":",1) S XMINSTR("FROM")="POSTMASTER"
"RTN","XMAPHOST",133,0)
 Q
"RTN","XMAPHOST",134,0)
ADDRMSG(XMDUZ,XMINSTR,XMABORT) ;
"RTN","XMAPHOST",135,0)
 ;I '$D(ZTQUEUED),'$G(XMQUIET) K XMY,XMY0
"RTN","XMAPHOST",136,0)
 D INIT^XMXADDR
"RTN","XMAPHOST",137,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMAPHOST",138,0)
 I $D(ZTQUEUED)!$G(XMQUIET) D
"RTN","XMAPHOST",139,0)
 . I '$D(XMAPHOST("CHG XMDUZ")) S XMY(XMDUZ)=""
"RTN","XMAPHOST",140,0)
 . D CHKBSKT^XMD(.XMY,.XMINSTR)
"RTN","XMAPHOST",141,0)
 . D CHKADDR^XMXADDR(XMDUZ,.XMY,.XMINSTR)
"RTN","XMAPHOST",142,0)
 . K XMY
"RTN","XMAPHOST",143,0)
 E  D  Q:XMABORT  ; ask the user for recipients.
"RTN","XMAPHOST",144,0)
 . D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34110),.XMINSTR,"",.XMABORT) ; send
"RTN","XMAPHOST",145,0)
 Q
"RTN","XMAPHOST",146,0)
READ ; Entry from close-execute of P-MESSAGE entry in TERMINAL TYPE file.
"RTN","XMAPHOST",147,0)
 ; Read the host file into a message, send it, erase it.
"RTN","XMAPHOST",148,0)
 ; Read record from file.
"RTN","XMAPHOST",149,0)
 ; Each time <CR> is found in record it ends a message line.
"RTN","XMAPHOST",150,0)
 N X,XMNULCNT,XMLEN,XMZZ,XMREC,XMI,XMLIMIT,XMAPHOST,XMINSTR,XMABORT
"RTN","XMAPHOST",151,0)
 I '$D(^TMP("XM-MESS",$J)) D  Q:XMABORT
"RTN","XMAPHOST",152,0)
 . D SETUP(.XMAPHOST,.XMABORT)
"RTN","XMAPHOST",153,0)
 E  D
"RTN","XMAPHOST",154,0)
 . M ^TMP("XMY",$J)=^TMP("XM-MESS",$J,"XMY")
"RTN","XMAPHOST",155,0)
 . M ^TMP("XMY0",$J)=^TMP("XM-MESS",$J,"XMY0")
"RTN","XMAPHOST",156,0)
 . M XMAPHOST=^TMP("XM-MESS",$J,"XMAPHOST")
"RTN","XMAPHOST",157,0)
 . K ^TMP("XM-MESS",$J)
"RTN","XMAPHOST",158,0)
 S XMDUZ=XMAPHOST("XMDUZ")
"RTN","XMAPHOST",159,0)
 M XMV=XMAPHOST("XMV")
"RTN","XMAPHOST",160,0)
 M XMINSTR=XMAPHOST("XMINSTR")
"RTN","XMAPHOST",161,0)
 S XMLIMIT=$P($G(^XMB(1,1,.16)),U) ; P-MESSAGE LINE LIMIT
"RTN","XMAPHOST",162,0)
 S:'XMLIMIT XMLIMIT=999999999999999
"RTN","XMAPHOST",163,0)
 D CRE8XMZ^XMXSEND(XMAPHOST("XMSUB"),.XMZZ)
"RTN","XMAPHOST",164,0)
 I '$D(ZTQUEUED),'$G(XMQUIET) D
"RTN","XMAPHOST",165,0)
 . U IO(0)
"RTN","XMAPHOST",166,0)
 . W !,$$EZBLD^DIALOG(34234) ; Moving to MailMan message...
"RTN","XMAPHOST",167,0)
 . W !,"."
"RTN","XMAPHOST",168,0)
 U IO
"RTN","XMAPHOST",169,0)
 S (XMNULCNT,XMI)=0,XMREC=""
"RTN","XMAPHOST",170,0)
 N $ETRAP,$ESTACK S $ETRAP="D EOFERR^XMAPHOST"
"RTN","XMAPHOST",171,0)
 F  S XMREC=$$GET() Q:$G(XMAPHOST("EOF"))  D  Q:$G(XMAPHOST("EOF"))!(XMI>XMLIMIT)
"RTN","XMAPHOST",172,0)
 . I XMREC="" D  Q:$G(XMAPHOST("EOF"))
"RTN","XMAPHOST",173,0)
 . . S XMNULCNT=XMNULCNT+1
"RTN","XMAPHOST",174,0)
 . . Q:XMNULCNT'>250     ; If more than 250 consecutive null lines,
"RTN","XMAPHOST",175,0)
 . . S XMAPHOST("EOF")=1 ; set EOF and get rid of those null lines.
"RTN","XMAPHOST",176,0)
 . . F  K ^XMB(3.9,XMZZ,2,XMI,0) S XMI=XMI-1 Q:'XMI  Q:$G(^XMB(3.9,XMZZ,2,XMI,0))'=""
"RTN","XMAPHOST",177,0)
 . E  S XMNULCNT=0
"RTN","XMAPHOST",178,0)
 . S XMLEN=$L(XMREC)
"RTN","XMAPHOST",179,0)
 . F  D  Q:XMREC=""!$G(XMAPHOST("EOF"))
"RTN","XMAPHOST",180,0)
 . . D PUT(XMZZ,$P(XMREC,$C(13)),.XMI)
"RTN","XMAPHOST",181,0)
 . . S XMREC=$P(XMREC,$C(13),2,999)
"RTN","XMAPHOST",182,0)
 . . Q:XMREC=""
"RTN","XMAPHOST",183,0)
 . . S:XMLEN>254 XMREC=XMREC_$$GET(),XMLEN=0
"RTN","XMAPHOST",184,0)
 D EOF
"RTN","XMAPHOST",185,0)
 Q
"RTN","XMAPHOST",186,0)
GET() ; Read a record from the file
"RTN","XMAPHOST",187,0)
 N Y,X
"RTN","XMAPHOST",188,0)
 N $ETRAP,$ESTACK S $ETRAP="S $EC="""" S XMAPHOST(""EOF"")=1 Q """""
"RTN","XMAPHOST",189,0)
 R Y#255:1
"RTN","XMAPHOST",190,0)
 Q Y
"RTN","XMAPHOST",191,0)
PUT(XMZZ,XMREC,XMI) ; Put data into message.
"RTN","XMAPHOST",192,0)
 S XMI=XMI+1,^XMB(3.9,XMZZ,2,XMI,0)=$S(XMREC'?.E1C.E:XMREC,1:$$CTRL^XMXUTIL1(XMREC))
"RTN","XMAPHOST",193,0)
 I '$D(ZTQUEUED),'$G(XMQUIET),XMI#10=0 U IO(0) W "." U IO
"RTN","XMAPHOST",194,0)
 Q
"RTN","XMAPHOST",195,0)
EOFERR ;
"RTN","XMAPHOST",196,0)
 D EOF
"RTN","XMAPHOST",197,0)
 D UNWIND^%ZTER
"RTN","XMAPHOST",198,0)
 Q
"RTN","XMAPHOST",199,0)
EOF ;
"RTN","XMAPHOST",200,0)
 S $ETRAP=""
"RTN","XMAPHOST",201,0)
 I XMI>XMLIMIT D
"RTN","XMAPHOST",202,0)
 . S XMI=XMI+1,^XMB(3.9,XMZZ,2,XMI,0)=""
"RTN","XMAPHOST",203,0)
 . S XMI=XMI+1,^XMB(3.9,XMZZ,2,XMI,0)="*******************************************************************"
"RTN","XMAPHOST",204,0)
 . S XMI=XMI+1,^XMB(3.9,XMZZ,2,XMI,0)=$$EZBLD^DIALOG(34235,XMLIMIT) ; P-MESSAGE line limit of |1| reached.
"RTN","XMAPHOST",205,0)
 . S XMI=XMI+1,^XMB(3.9,XMZZ,2,XMI,0)="*******************************************************************"
"RTN","XMAPHOST",206,0)
 . Q:$D(ZTQUEUED)!$G(XMQUIET)
"RTN","XMAPHOST",207,0)
 . U IO(0) W !,$$EZBLD^DIALOG(34235,XMLIMIT),! ; P-MESSAGE line limit of |1| reached.
"RTN","XMAPHOST",208,0)
 I '$D(ZTQUEUED),'$G(XMQUIET) U IO(0) W !,$$EZBLD^DIALOG(34236) ; Finished moving.
"RTN","XMAPHOST",209,0)
 S ^XMB(3.9,XMZZ,2,0)="^3.92A^"_XMI_"^"_XMI
"RTN","XMAPHOST",210,0)
 D SENDMSG(XMDUZ,XMZZ,.XMINSTR)
"RTN","XMAPHOST",211,0)
 D CLEANUP
"RTN","XMAPHOST",212,0)
 Q
"RTN","XMAPHOST",213,0)
SENDMSG(XMDUZ,XMZ,XMINSTR) ; Here, send the message to recipient.
"RTN","XMAPHOST",214,0)
 I '$D(ZTQUEUED),'$G(XMQUIET) W !,$$EZBLD^DIALOG(34217,XMZ) ; Sending [_XMZ_]...
"RTN","XMAPHOST",215,0)
 D MOVEPART^XMXSEND(XMDUZ,XMZ,.XMINSTR)
"RTN","XMAPHOST",216,0)
 I $D(XMINSTR("FROM")),XMINSTR("FROM")="POSTMASTER"!(XMINSTR("FROM")?.N) S $P(^XMB(3.9,XMZ,0),U,4)=DUZ ; Retain 'sender'
"RTN","XMAPHOST",217,0)
 I $D(XMINSTR("FROM")),$D(XMINSTR("SELF BSKT")),XMINSTR("SELF BSKT")'=1 D
"RTN","XMAPHOST",218,0)
 . D FWD^XMKP(XMDUZ,XMZ,.XMINSTR)
"RTN","XMAPHOST",219,0)
 E  D
"RTN","XMAPHOST",220,0)
 . D SEND^XMKP(XMDUZ,XMZ,.XMINSTR)
"RTN","XMAPHOST",221,0)
 I '$D(ZTQUEUED),'$G(XMQUIET) W !,$$EZBLD^DIALOG(34213) ;   Sent
"RTN","XMAPHOST",222,0)
 D CHECK^XMKPL
"RTN","XMAPHOST",223,0)
 Q
"RTN","XMAPHOST",224,0)
CLEANUP ;
"RTN","XMAPHOST",225,0)
 S IONOFF=1 ; Prevent form feed during device close
"RTN","XMAPHOST",226,0)
 D CLEANUP^XMXADDR
"RTN","XMAPHOST",227,0)
 D KSETS
"RTN","XMAPHOST",228,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMAPHOST",229,0)
 I $D(XMAPHOST("XMZBACK")) S XMZ=XMZZ
"RTN","XMAPHOST",230,0)
 Q
"RTN","XMAPHOST",231,0)
KSETS ;
"RTN","XMAPHOST",232,0)
 K:$G(XMAPHOST("SET XMDUZ")) XMDUZ
"RTN","XMAPHOST",233,0)
 K:$G(XMAPHOST("SET XMV")) XMV,XMDUN,XMNOSEND,XMDISPI,XMPRIV
"RTN","XMAPHOST",234,0)
 I $D(XMAPHOST("CHG XMDUZ")) S XMDUZ=XMAPHOST("CHG XMDUZ")
"RTN","XMAPHOST",235,0)
 Q
"VER")
8.0^22.0
**INSTALL NAME**
XM*8.0*36
"BLD",3436,0)
XM*8.0*36^MAILMAN^0^3150604^y
"BLD",3436,1,0)
^^1^1^3060228^^
"BLD",3436,1,1,0)
Allow a non-human user to send bulletins.
"BLD",3436,4,0)
^9.64PA^^
"BLD",3436,6)
^36
"BLD",3436,6.3)
1
"BLD",3436,"ABPKG")
n
"BLD",3436,"KRN",0)
^9.67PA^8989.52^19
"BLD",3436,"KRN",.4,0)
.4
"BLD",3436,"KRN",.401,0)
.401
"BLD",3436,"KRN",.402,0)
.402
"BLD",3436,"KRN",.403,0)
.403
"BLD",3436,"KRN",.5,0)
.5
"BLD",3436,"KRN",.84,0)
.84
"BLD",3436,"KRN",3.6,0)
3.6
"BLD",3436,"KRN",3.8,0)
3.8
"BLD",3436,"KRN",9.2,0)
9.2
"BLD",3436,"KRN",9.8,0)
9.8
"BLD",3436,"KRN",9.8,"NM",0)
^9.68A^2^2
"BLD",3436,"KRN",9.8,"NM",1,0)
XMXPARM1^^0^B10873939
"BLD",3436,"KRN",9.8,"NM",2,0)
XMVVITAE^^0^B50266073
"BLD",3436,"KRN",9.8,"NM","B","XMVVITAE",2)

"BLD",3436,"KRN",9.8,"NM","B","XMXPARM1",1)

"BLD",3436,"KRN",19,0)
19
"BLD",3436,"KRN",19.1,0)
19.1
"BLD",3436,"KRN",101,0)
101
"BLD",3436,"KRN",409.61,0)
409.61
"BLD",3436,"KRN",771,0)
771
"BLD",3436,"KRN",870,0)
870
"BLD",3436,"KRN",8989.51,0)
8989.51
"BLD",3436,"KRN",8989.52,0)
8989.52
"BLD",3436,"KRN",8994,0)
8994
"BLD",3436,"KRN","B",.4,.4)

"BLD",3436,"KRN","B",.401,.401)

"BLD",3436,"KRN","B",.402,.402)

"BLD",3436,"KRN","B",.403,.403)

"BLD",3436,"KRN","B",.5,.5)

"BLD",3436,"KRN","B",.84,.84)

"BLD",3436,"KRN","B",3.6,3.6)

"BLD",3436,"KRN","B",3.8,3.8)

"BLD",3436,"KRN","B",9.2,9.2)

"BLD",3436,"KRN","B",9.8,9.8)

"BLD",3436,"KRN","B",19,19)

"BLD",3436,"KRN","B",19.1,19.1)

"BLD",3436,"KRN","B",101,101)

"BLD",3436,"KRN","B",409.61,409.61)

"BLD",3436,"KRN","B",771,771)

"BLD",3436,"KRN","B",870,870)

"BLD",3436,"KRN","B",8989.51,8989.51)

"BLD",3436,"KRN","B",8989.52,8989.52)

"BLD",3436,"KRN","B",8994,8994)

"BLD",3436,"QUES",0)
^9.62^^
"BLD",3436,"REQB",0)
^9.611^2^1
"BLD",3436,"REQB",2,0)
XU*8.0*361^2
"BLD",3436,"REQB","B","XU*8.0*361",2)

"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
36^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^1^1^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
Allow a non-human user to send bulletins.
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
2
"RTN","XMVVITAE")
0^2^B50266073
"RTN","XMVVITAE",1,0)
XMVVITAE ;ISC-SF/GMB-Initialize User's MailMan Variables ;04/19/2002  13:26
"RTN","XMVVITAE",2,0)
 ;;8.0;MailMan;**36**;Jun 28, 2002;Build 1
"RTN","XMVVITAE",3,0)
 ; Replaces ^XMGAPI1,FWD^XMA21,FWD,BANNER^XMA6,EDIT^XMA7 (ISC-WASH/CAP)
"RTN","XMVVITAE",4,0)
 ; Entry points (DBIA 2728):
"RTN","XMVVITAE",5,0)
 ; INIT     Set up variables for DUZ or XMDUZ.
"RTN","XMVVITAE",6,0)
 ; OTHER    Set up variables to become a surrogate of someone else.
"RTN","XMVVITAE",7,0)
 ; SELF     Return from being a surrogate to being oneself again.
"RTN","XMVVITAE",8,0)
 Q
"RTN","XMVVITAE",9,0)
INIT ; Set up one's variables (for yourself or as a surrogate).
"RTN","XMVVITAE",10,0)
 N XMAPI
"RTN","XMVVITAE",11,0)
INIT2 K XMV
"RTN","XMVVITAE",12,0)
 D SYSTEM(.XMV)
"RTN","XMVVITAE",13,0)
 S:'$D(XMDUZ) XMDUZ=DUZ
"RTN","XMVVITAE",14,0)
 D DUZ(DUZ,.XMV,.XMDUN,.XMDISPI,.XMNOSEND)
"RTN","XMVVITAE",15,0)
 D:XMDUZ'=DUZ SURROGAT(XMDUZ,.XMV,.XMDUN,.XMNOSEND,.XMPRIV)
"RTN","XMVVITAE",16,0)
 Q
"RTN","XMVVITAE",17,0)
INITAPI ; (For MailMan use only) Set up variables for an API call.
"RTN","XMVVITAE",18,0)
 N XMAPI
"RTN","XMVVITAE",19,0)
 S XMAPI=1 ; "last used MailMan" will not be recorded.
"RTN","XMVVITAE",20,0)
 G INIT2
"RTN","XMVVITAE",21,0)
CHECK ; Check to make sure one's variables exist.
"RTN","XMVVITAE",22,0)
 I '$D(XMV("NAME"))!'$D(XMV("RDR DEF")) D INIT
"RTN","XMVVITAE",23,0)
 Q
"RTN","XMVVITAE",24,0)
OTHER ; Become someone else.  INIT should have been called previously.
"RTN","XMVVITAE",25,0)
 I '$D(XMV) D INIT Q
"RTN","XMVVITAE",26,0)
 N XMAPI
"RTN","XMVVITAE",27,0)
 D SURROGAT(XMDUZ,.XMV,.XMDUN,.XMNOSEND,.XMPRIV)
"RTN","XMVVITAE",28,0)
 Q
"RTN","XMVVITAE",29,0)
SELF ; Return to oneself after having become someone else.
"RTN","XMVVITAE",30,0)
 ; INIT should have been called previously.
"RTN","XMVVITAE",31,0)
 S XMDUZ=DUZ
"RTN","XMVVITAE",32,0)
 I '$D(XMV) D INIT Q
"RTN","XMVVITAE",33,0)
 N XMAPI
"RTN","XMVVITAE",34,0)
 D USER(XMDUZ,.XMV,.XMNOSEND,.XMDUN)
"RTN","XMVVITAE",35,0)
 D LASTUSE(XMDUZ,.XMV)
"RTN","XMVVITAE",36,0)
 Q
"RTN","XMVVITAE",37,0)
SYSTEM(XMV) ;
"RTN","XMVVITAE",38,0)
 ; XMV("VERSION")
"RTN","XMVVITAE",39,0)
 I '$D(DT) D DT^DICRW
"RTN","XMVVITAE",40,0)
 S XMV("VERSION")="VA MailMan "_$P($T(XMVVITAE+1),";",3)
"RTN","XMVVITAE",41,0)
 ; Check to make sure that important variables are defined correctly.
"RTN","XMVVITAE",42,0)
 I +$G(^XMB("NUM")),$G(^XMB("NAME"))=$G(^XMB("NETNAME")),$G(^XMB("NETNAME"))=$P($G(^DIC(4.2,+$G(^XMB("NUM")),0)),U,1),$G(^XMB("NUM"))=$P($G(^XMB(1,1,0)),U,1) Q
"RTN","XMVVITAE",43,0)
 N XMPARM  ; The domain for this facility is not christened correctly.
"RTN","XMVVITAE",44,0)
 S XMPARM(1)=$G(^XMB("NUM"))
"RTN","XMVVITAE",45,0)
 S XMPARM(2)=$P($G(^XMB(1,1,0)),U,1)
"RTN","XMVVITAE",46,0)
 S XMPARM(3)=$P($G(^DIC(4.2,+$G(^XMB("NUM")),0)),U,1)
"RTN","XMVVITAE",47,0)
 S XMPARM(4)=$P($G(^DIC(4.2,+XMPARM(2),0)),U,1)
"RTN","XMVVITAE",48,0)
 S XMPARM(5)=$G(^XMB("NETNAME"))
"RTN","XMVVITAE",49,0)
 S XMPARM(6)=$G(^XMB("NAME"))
"RTN","XMVVITAE",50,0)
 F I=1:1:6 I XMPARM(I)="" S XMPARM(I)="?"
"RTN","XMVVITAE",51,0)
 ;The domain for this facility is not christened correctly.
"RTN","XMVVITAE",52,0)
 ;IRM must correct this for network mail to function properly.
"RTN","XMVVITAE",53,0)
 ;The following pointers should contain the same numbers,
"RTN","XMVVITAE",54,0)
 ;which should point to this facility's domain in ^DIC(4.2:
"RTN","XMVVITAE",55,0)
 ;^XMB("NUM")=|1|          ==> |3|
"RTN","XMVVITAE",56,0)
 ;$P(^XMB(1,1,0),U,1)=|2|  ==> |4|
"RTN","XMVVITAE",57,0)
 ;The following globals should contain the domain name of this facility:
"RTN","XMVVITAE",58,0)
 ;^XMB("NETNAME")=           |5|
"RTN","XMVVITAE",59,0)
 ;^XMB("NAME")=              |6|
"RTN","XMVVITAE",60,0)
 D BLD^DIALOG(38100,.XMPARM,"","XMV(""SYSERR"")")
"RTN","XMVVITAE",61,0)
 Q
"RTN","XMVVITAE",62,0)
DUZ(XMDUZ,XMV,XMDUN,XMDISPI,XMNOSEND) ;
"RTN","XMVVITAE",63,0)
 ; XMV("DUZ NAME")
"RTN","XMVVITAE",64,0)
 K XMV("ERROR")
"RTN","XMVVITAE",65,0)
 I $G(DUZ,0)=0 S XMV("ERROR",1)=$$EZBLD^DIALOG(38105) Q  ;You do not have a DUZ.
"RTN","XMVVITAE",66,0)
 D USER(XMDUZ,.XMV,.XMNOSEND,.XMDUN) Q:$D(XMV("ERROR"))
"RTN","XMVVITAE",67,0)
 S XMV("DUZ NAME")=XMV("NAME")
"RTN","XMVVITAE",68,0)
 D LASTUSE(XMDUZ,.XMV)
"RTN","XMVVITAE",69,0)
 D PREFER(XMDUZ,.XMV,.XMDISPI)
"RTN","XMVVITAE",70,0)
 Q
"RTN","XMVVITAE",71,0)
SURROGAT(XMDUZ,XMV,XMDUN,XMNOSEND,XMPRIV) ;
"RTN","XMVVITAE",72,0)
 ; XMV("PRIV")
"RTN","XMVVITAE",73,0)
 ; XMPRIV
"RTN","XMVVITAE",74,0)
 Q:XMDUZ=DUZ
"RTN","XMVVITAE",75,0)
 K XMV("ERROR"),XMV("WARNING")
"RTN","XMVVITAE",76,0)
 I XMDUZ=.6 D  Q
"RTN","XMVVITAE",77,0)
 . S XMV("PRIV")="R",XMPRIV="y^n"
"RTN","XMVVITAE",78,0)
 . S (XMDUN,XMV("NAME"))=$$NAME^XMXUTIL(.6)
"RTN","XMVVITAE",79,0)
 . D SETNET(XMDUZ,.XMV)
"RTN","XMVVITAE",80,0)
 . S XMV("NEW MSGS")=+$P(^XMB(3.7,XMDUZ,0),U,6)
"RTN","XMVVITAE",81,0)
 E  D  Q:$D(XMV("ERROR"))
"RTN","XMVVITAE",82,0)
 . N XMIEN
"RTN","XMVVITAE",83,0)
 . S XMIEN=+$O(^XMB(3.7,"AB",DUZ,XMDUZ,0))
"RTN","XMVVITAE",84,0)
 . ;Commented out because we shouldn't be here if not a valid surrogate
"RTN","XMVVITAE",85,0)
 . ;I 'XMIEN S XMV("ERROR",5)=$$EZBLD^DIALOG(38106,XMDUZ) Q  ;You are not a surrogate of DUZ |1|.
"RTN","XMVVITAE",86,0)
 . S XMPRIV=$G(^XMB(3.7,XMDUZ,9,XMIEN,0))
"RTN","XMVVITAE",87,0)
 . S XMV("PRIV")=$S($P(XMPRIV,U,2)="y":"R",1:"")_$S($P(XMPRIV,U,3)="y":"W",1:"")
"RTN","XMVVITAE",88,0)
 D USER(XMDUZ,.XMV,.XMNOSEND,.XMDUN) Q:$D(XMV("ERROR"))
"RTN","XMVVITAE",89,0)
 D LASTUSE(XMDUZ,.XMV)
"RTN","XMVVITAE",90,0)
 Q
"RTN","XMVVITAE",91,0)
USER(XMDUZ,XMV,XMNOSEND,XMDUN) ;
"RTN","XMVVITAE",92,0)
 ; XMV("WARNING")
"RTN","XMVVITAE",93,0)
 ; XMV("ERROR")
"RTN","XMVVITAE",94,0)
 ; XMV("NEW MSGS")
"RTN","XMVVITAE",95,0)
 ; XMV("NAME")
"RTN","XMVVITAE",96,0)
 ; XMV("NOSEND")
"RTN","XMVVITAE",97,0)
 ; XMNOSEND
"RTN","XMVVITAE",98,0)
 ; XMDUN
"RTN","XMVVITAE",99,0)
 N XMREC
"RTN","XMVVITAE",100,0)
 K XMV("ERROR"),XMV("WARNING")
"RTN","XMVVITAE",101,0)
 S XMREC=$G(^VA(200,XMDUZ,0))
"RTN","XMVVITAE",102,0)
 I XMREC="" S XMV("ERROR",2)=$$EZBLD^DIALOG(38107,XMDUZ) Q  ;There is no person with DUZ |1|.
"RTN","XMVVITAE",103,0)
 ;I $P(XMREC,U,3)="" S XMV("ERROR",3)=$$EZBLD^DIALOG(38108,XMDUZ) Q  ; There is no Access Code for DUZ XMDUZ
"RTN","XMVVITAE",104,0)
 I $P(XMREC,U,3)="",'$$USERTYPE^XUSAP(XMDUZ,"APPLICATION PROXY") S XMV("ERROR",3)=$$EZBLD^DIALOG(38108,XMDUZ) Q  ; There is no Access Code for DUZ XMDUZ
"RTN","XMVVITAE",105,0)
 ;I '$D(^XMB(3.7,XMDUZ,0)) S XMV("ERROR",4)=$$EZBLD^DIALOG(38109,XMDUZ) Q  ;There is no mailbox for DUZ |1|.
"RTN","XMVVITAE",106,0)
 I '$D(^XMB(3.7,XMDUZ,0)),'$$USERTYPE^XUSAP(XMDUZ,"APPLICATION PROXY") S XMV("ERROR",4)=$$EZBLD^DIALOG(38109,XMDUZ) Q  ;There is no mailbox for DUZ |1|.
"RTN","XMVVITAE",107,0)
 S XMV("NOSEND")=0
"RTN","XMVVITAE",108,0)
 S (XMDUN,XMV("NAME"))=$$NAME^XMXUTIL(XMDUZ)
"RTN","XMVVITAE",109,0)
 D SETNET(XMDUZ,.XMV)
"RTN","XMVVITAE",110,0)
 Q:$D(ZTQUEUED)!$G(XMAPI)
"RTN","XMVVITAE",111,0)
 I $D(^XTMP("XM","MAKENEW",XMDUZ)) D NEWAGAIN^XMJBN1(XMDUZ)
"RTN","XMVVITAE",112,0)
 I '$D(DUZ("SAV")),$D(XMMENU(0)) L +^XMB(3.7,"AD",DUZ):0 E  S (XMV("NOSEND"),XMNOSEND)=1,XMV("WARNING",4)=$$EZBLD^DIALOG(38110) ;Multiple Signon
"RTN","XMVVITAE",113,0)
 S:$D(^XMB(3.7,XMDUZ,"N")) XMV("WARNING",1)=$$EZBLD^DIALOG(38111) ;Priority Mail
"RTN","XMVVITAE",114,0)
 I '$D(DUZ("SAV")),'XMV("NOSEND"),$D(^XMB(3.7,"AD",XMDUZ)) D
"RTN","XMVVITAE",115,0)
 . I XMDUZ='DUZ,$G(XMV("PRIV"))'["W" Q
"RTN","XMVVITAE",116,0)
 . N XMZ
"RTN","XMVVITAE",117,0)
 . S XMREC=$G(^XMB(3.7,XMDUZ,"T"))
"RTN","XMVVITAE",118,0)
 . S XMZ=$P(XMREC,U,1) I XMZ="" K ^XMB(3.7,"AD",XMDUZ) Q
"RTN","XMVVITAE",119,0)
 . I '$D(^XMB(3.9,XMZ,0)) K ^XMB(3.7,XMDUZ,"T"),^XMB(3.7,"AD",XMDUZ) Q
"RTN","XMVVITAE",120,0)
 . S XMZ=$P(XMREC,U,3)
"RTN","XMVVITAE",121,0)
 . I XMZ,'$D(^XMB(3.9,XMZ,0)) K ^XMB(3.7,XMDUZ,"T"),^XMB(3.7,"AD",XMDUZ) Q
"RTN","XMVVITAE",122,0)
 . S XMV("WARNING",2)=$$EZBLD^DIALOG(38112) ;Message in Buffer
"RTN","XMVVITAE",123,0)
 S XMV("NEW MSGS")=+$P(^XMB(3.7,XMDUZ,0),U,6)
"RTN","XMVVITAE",124,0)
 I XMDUZ=.5 D
"RTN","XMVVITAE",125,0)
 . N I,XMK
"RTN","XMVVITAE",126,0)
 . S XMK=.99
"RTN","XMVVITAE",127,0)
 . F I=1:1 S XMK=$O(^XMB(3.7,.5,2,XMK)) Q:XMK>999!'XMK
"RTN","XMVVITAE",128,0)
 . S:I>900 XMV("WARNING",5)=$$EZBLD^DIALOG(38113,I) ;POSTMASTER has |1| baskets.
"RTN","XMVVITAE",129,0)
 D SETBAN(XMDUZ,.XMV)
"RTN","XMVVITAE",130,0)
 Q
"RTN","XMVVITAE",131,0)
SETNET(XMDUZ,XMV) ;
"RTN","XMVVITAE",132,0)
 ; XMV("NETNAME")
"RTN","XMVVITAE",133,0)
 S XMV("NETNAME")=$$NETNAME^XMXUTIL(XMDUZ)
"RTN","XMVVITAE",134,0)
 Q
"RTN","XMVVITAE",135,0)
SETBAN(XMDUZ,XMV) ;
"RTN","XMVVITAE",136,0)
 ; XMV("BANNER")
"RTN","XMVVITAE",137,0)
 N XMBANNER
"RTN","XMVVITAE",138,0)
 S XMBANNER=$G(^XMB(3.7,XMDUZ,"B"))
"RTN","XMVVITAE",139,0)
 I XMBANNER="" K XMV("BANNER")
"RTN","XMVVITAE",140,0)
 E  S XMV("BANNER")=XMBANNER
"RTN","XMVVITAE",141,0)
 Q
"RTN","XMVVITAE",142,0)
PREFER(XMDUZ,XMV,XMDISPI) ;
"RTN","XMVVITAE",143,0)
 ; XMV("SHOW INST")
"RTN","XMVVITAE",144,0)
 ; XMV("SHOW TITL")
"RTN","XMVVITAE",145,0)
 ; XMV("SHOW DUZ")
"RTN","XMVVITAE",146,0)
 ; XMV("ASK BSKT")
"RTN","XMVVITAE",147,0)
 ; XMV("MSG DEF")
"RTN","XMVVITAE",148,0)
 ; XMV("RDR DEF")
"RTN","XMVVITAE",149,0)
 ; XMV("RDR ASK")
"RTN","XMVVITAE",150,0)
 ; XMV("ORDER")
"RTN","XMVVITAE",151,0)
 ; XMV("PREVU")
"RTN","XMVVITAE",152,0)
 ; XMV("NEW OPT")
"RTN","XMVVITAE",153,0)
 ; XMV("NEW ORDER")
"RTN","XMVVITAE",154,0)
 ; XMDISPI
"RTN","XMVVITAE",155,0)
 N XMUREC,XMSREC
"RTN","XMVVITAE",156,0)
 S XMSREC=$G(^XMB(1,1,0)) ; Site's preferences
"RTN","XMVVITAE",157,0)
 ;S XMUREC=^XMB(3.7,DUZ,0) ; User's preferences
"RTN","XMVVITAE",158,0)
 S XMUREC=$G(^XMB(3.7,DUZ,0)) ; User's preferences
"RTN","XMVVITAE",159,0)
 S XMV("SHOW INST")=$S($P(XMSREC,U,5)["y":1,1:0)  ; Show Institution
"RTN","XMVVITAE",160,0)
 S XMV("SHOW TITL")=$S($P(XMUREC,U,10)=1:1,1:0)   ; Show Titles
"RTN","XMVVITAE",161,0)
 I XMV("SHOW TITL") S XMV("TITL SRC")=$S($P(XMSREC,U,11)'="":$P(XMSREC,U,11),1:"T") ; Title Source (Signature Block or Title)
"RTN","XMVVITAE",162,0)
 Q:$D(ZTQUEUED)
"RTN","XMVVITAE",163,0)
 S XMV("SHOW DUZ")=+$P(XMSREC,U,8)  ; Show DUZ when addressing messages
"RTN","XMVVITAE",164,0)
 S XMV("PREVU")=$S($P(XMUREC,U,4)="Y":1,1:0)
"RTN","XMVVITAE",165,0)
 S XMV("ASK BSKT")=$S($P(XMUREC,U,5)'["n":1,1:0)
"RTN","XMVVITAE",166,0)
 ; User's default message action (Delete, Ignore). If user doesn't have one, take site's.  If site doesn't have one, make it Ignore.
"RTN","XMVVITAE",167,0)
 S XMV("MSG DEF")=$S($P(XMUREC,U,9)'="":$P(XMUREC,U,9),$P(XMSREC,U,15)'="":$P(XMSREC,U,15),1:"I")
"RTN","XMVVITAE",168,0)
 S XMV("ORDER")=$S($P(XMUREC,U,13)="N":-1,1:1)
"RTN","XMVVITAE",169,0)
 S XMV("RDR DEF")=$S($P(XMUREC,U,16)'="":$P(XMUREC,U,16),1:"C")
"RTN","XMVVITAE",170,0)
 S XMV("RDR ASK")=$S($P(XMUREC,U,17)'="":$P(XMUREC,U,17),1:"Y")
"RTN","XMVVITAE",171,0)
 S XMV("NEW OPT")=$S($P(XMUREC,U,18)'="":$P(XMUREC,U,18),1:"R")
"RTN","XMVVITAE",172,0)
 S XMV("NEW ORDER")=$S($P(XMUREC,U,19)="N":-1,1:1)
"RTN","XMVVITAE",173,0)
 Q:$G(XMAPI)
"RTN","XMVVITAE",174,0)
 I $P(XMSREC,U,6)["y",'$D(^XMB(3.7,XMDUZ,1,1,0)) S XMV("WARNING",3)=$$EZBLD^DIALOG(38114) ;No Introduction
"RTN","XMVVITAE",175,0)
 S XMDISPI="X"  ; Show Help (Not used?)
"RTN","XMVVITAE",176,0)
 I XMV("SHOW INST") S XMDISPI=XMDISPI_"I"
"RTN","XMVVITAE",177,0)
 I XMV("SHOW TITL") S XMDISPI=XMDISPI_"T"
"RTN","XMVVITAE",178,0)
 I XMV("ASK BSKT") S XMDISPI=XMDISPI_"A"
"RTN","XMVVITAE",179,0)
 S XMDISPI=XMDISPI_U_XMV("MSG DEF")
"RTN","XMVVITAE",180,0)
 Q
"RTN","XMVVITAE",181,0)
LASTUSE(XMDUZ,XMV) ;
"RTN","XMVVITAE",182,0)
 ; XMV("LAST USE")
"RTN","XMVVITAE",183,0)
 I XMDUZ=.6!$D(ZTQUEUED)!$G(XMAPI) Q
"RTN","XMVVITAE",184,0)
 S XMV("LAST USE")=$P($G(^XMB(3.7,XMDUZ,"L"),$$EZBLD^DIALOG(38002)),U,1) ;Never
"RTN","XMVVITAE",185,0)
 Q:$D(DUZ("SAV"))
"RTN","XMVVITAE",186,0)
 S ^XMB(3.7,XMDUZ,"L")=$$MMDT^XMXUTIL1($$NOW^XLFDT)_$S(XMDUZ'=DUZ:$$EZBLD^DIALOG(38008,XMV("DUZ NAME")),1:"")_U_DT_U_DUZ ; (Surrogate: |1|)
"RTN","XMVVITAE",187,0)
 Q
"RTN","XMXPARM1")
0^1^B10873939
"RTN","XMXPARM1",1,0)
XMXPARM1 ;ISC-SF/GMB-Parameter check (cont.) ;04/19/2002  12:14
"RTN","XMXPARM1",2,0)
 ;;8.0;MailMan;**36**;Jun 28, 2002;Build 1
"RTN","XMXPARM1",3,0)
CHKUSER(XMDUZ,XMNOMBOX) ; Ascertain/verify user's DUZ, and make sure authorized to use MailMan
"RTN","XMXPARM1",4,0)
 ; XMNOMBOX Is it possible that this user does not have a mailbox?
"RTN","XMXPARM1",5,0)
 ;          0=no (default); 1=yes
"RTN","XMXPARM1",6,0)
 N XMSCREEN,XMUSER,XMADDR
"RTN","XMXPARM1",7,0)
 S XMADDR=XMDUZ
"RTN","XMXPARM1",8,0)
 S XMADDR=$$UP^XLFSTR(XMADDR)
"RTN","XMXPARM1",9,0)
 ;S:'$G(XMNOMBOX) XMSCREEN="I $L($P(^(0),U,3)),$D(^XMB(3.7,+Y,2))"  ; User must have an access code & mailbox
"RTN","XMXPARM1",10,0)
 I '$G(XMNOMBOX),'$$USERTYPE^XUSAP(XMDUZ,"APPLICATION PROXY") S XMSCREEN="I $L($P(^(0),U,3)),$D(^XMB(3.7,+Y,2))"  ; User must have an access code & mailbox
"RTN","XMXPARM1",11,0)
 ; "B^BB^C^D" = name^alias^initial^nickname
"RTN","XMXPARM1",12,0)
 S XMDUZ=$$FIND1^DIC(200,"","O",$S(+XMADDR=XMADDR:"`"_XMADDR,1:XMADDR),"B^BB^C^D",.XMSCREEN)
"RTN","XMXPARM1",13,0)
 Q:XMDUZ
"RTN","XMXPARM1",14,0)
 S XMDUZ=XMADDR
"RTN","XMXPARM1",15,0)
 D ERRSET^XMXUTIL($S($D(DIERR):39432,1:39433),XMDUZ) ; User '|1|' ambiguous / not found.
"RTN","XMXPARM1",16,0)
 Q
"RTN","XMXPARM1",17,0)
XMATTACH(XMATTACH) ; Validate attachments
"RTN","XMXPARM1",18,0)
 Q
"RTN","XMXPARM1",19,0)
XMBN(XMBN) ; Check bulletin name
"RTN","XMXPARM1",20,0)
 I $G(XMBN)="" D ERRSET^XMXUTIL(39430) Q  ; Bulletin name must be supplied.
"RTN","XMXPARM1",21,0)
 Q:$D(^XMB(3.6,"B",XMBN))
"RTN","XMXPARM1",22,0)
 D ERRSET^XMXUTIL(39431,XMBN) ; Bulletin '|1|' not found.
"RTN","XMXPARM1",23,0)
 Q
"RTN","XMXPARM1",24,0)
XMBODY(XMBODY,XMOPTNL) ; Check the body of the message (just make sure there is a body)
"RTN","XMXPARM1",25,0)
 I $G(XMBODY)="" D  Q
"RTN","XMXPARM1",26,0)
 . I '$G(XMOPTNL) D ERRSET^XMXUTIL(39405) ;Message must have a body.
"RTN","XMXPARM1",27,0)
 I $E(XMBODY,1,6)="XMBODY" D  Q
"RTN","XMXPARM1",28,0)
 . D ERRSET^XMXUTIL(39406) ;Message body may not be called XMBODY.
"RTN","XMXPARM1",29,0)
 I $D(@XMBODY)'>9 D  Q
"RTN","XMXPARM1",30,0)
 . D ERRSET^XMXUTIL(39407,XMBODY) ;Message body '|1|' has no data.
"RTN","XMXPARM1",31,0)
 Q
"RTN","XMXPARM1",32,0)
XMCODE(XMPARM,XMCODE,XMSET) ;
"RTN","XMXPARM1",33,0)
 Q:XMSET[(U_XMCODE_U)
"RTN","XMXPARM1",34,0)
 N XMP
"RTN","XMXPARM1",35,0)
 S XMP("PARAM","ID")=XMPARM
"RTN","XMXPARM1",36,0)
 S XMP("PARAM","VALUE")=XMCODE
"RTN","XMXPARM1",37,0)
 ;S XMP("PARAM","FILE")=3.901,XMP("PARAM","FIELD")=1.8
"RTN","XMXPARM1",38,0)
 S XMP(1)=XMSET
"RTN","XMXPARM1",39,0)
 D ERRSET^XMXUTIL(39438,.XMP) ; Must be one of |1|.
"RTN","XMXPARM1",40,0)
 Q
"RTN","XMXPARM1",41,0)
XMHINT(XMHINT) ; Validate a scramble hint
"RTN","XMXPARM1",42,0)
 I $G(XMHINT)="" Q
"RTN","XMXPARM1",43,0)
 ;I $G(XMHINT)="" D ERRSET^XMXUTIL(39436) Q  ; Scramble hint must be supplied
"RTN","XMXPARM1",44,0)
 ;D CHK^DIE(3.9,1.8,"H",XMHINT)
"RTN","XMXPARM1",45,0)
 I $L(XMHINT)>0,$L(XMHINT)<41,XMHINT'[U Q
"RTN","XMXPARM1",46,0)
 N XMP
"RTN","XMXPARM1",47,0)
 S XMP("PARAM","ID")="XMINSTR(""SCR HINT"")"
"RTN","XMXPARM1",48,0)
 S XMP("PARAM","VALUE")=XMHINT
"RTN","XMXPARM1",49,0)
 ;S XMP("PARAM","FILE")=3.901,XMP("PARAM","FIELD")=1.8
"RTN","XMXPARM1",50,0)
 S XMP(1)=1,XMP(2)=40
"RTN","XMXPARM1",51,0)
 D ERRSET^XMXUTIL(39437,.XMP) ; Must be |1|-|2| characters, no ^.
"RTN","XMXPARM1",52,0)
 Q
"RTN","XMXPARM1",53,0)
XMKEY(XMKEY) ; Validate a scramble key
"RTN","XMXPARM1",54,0)
 I $G(XMKEY)="" D ERRSET^XMXUTIL(39435) Q  ; Scramble key must be supplied.
"RTN","XMXPARM1",55,0)
 ;D CHK^DIE(3.9,1.85,"H",XMKEY)
"RTN","XMXPARM1",56,0)
 I $L(XMKEY)>2,$L(XMKEY)<21 Q
"RTN","XMXPARM1",57,0)
 N XMP
"RTN","XMXPARM1",58,0)
 S XMP("PARAM","ID")="XMINSTR(""SCR KEY"")"
"RTN","XMXPARM1",59,0)
 S XMP("PARAM","VALUE")=XMKEY
"RTN","XMXPARM1",60,0)
 ;S XMP("PARAM","FILE")=3.9,XMP("PARAM","FIELD")=1.85
"RTN","XMXPARM1",61,0)
 S XMP(1)=3,XMP(2)=20
"RTN","XMXPARM1",62,0)
 D ERRSET^XMXUTIL(39434,.XMP) ; Must be |1|-|2| characters.
"RTN","XMXPARM1",63,0)
 Q
"RTN","XMXPARM1",64,0)
XMKZ(XMK,XMKZ) ;
"RTN","XMXPARM1",65,0)
 I $G(XMKZ),$D(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) Q
"RTN","XMXPARM1",66,0)
 N XMP S XMP(1)=XMKZ,XMP(2)=XMK
"RTN","XMXPARM1",67,0)
 D ERRSET^XMXUTIL(34351,.XMP) ; message not found in basket
"RTN","XMXPARM1",68,0)
 Q
"RTN","XMXPARM1",69,0)
XMKZA(XMKZA) ; Check the message numbers (just make sure there is at least one)
"RTN","XMXPARM1",70,0)
 Q:$D(XMKZA)
"RTN","XMXPARM1",71,0)
 D ERRSET^XMXUTIL(39418) ;No message numbers.
"RTN","XMXPARM1",72,0)
 Q
"RTN","XMXPARM1",73,0)
XMROOT(XMPARM,XMROOT) ; Validate root
"RTN","XMXPARM1",74,0)
 Q
"RTN","XMXPARM1",75,0)
XMSTRIP(XMSTRIP) ; Validate a message strip string
"RTN","XMXPARM1",76,0)
 I $L(XMSTRIP)>0,$L(XMSTRIP)<21 Q
"RTN","XMXPARM1",77,0)
 N XMP
"RTN","XMXPARM1",78,0)
 S XMP("PARAM","ID")="XMINSTR(""STRIP"")"
"RTN","XMXPARM1",79,0)
 S XMP("PARAM","VALUE")=XMSTRIP
"RTN","XMXPARM1",80,0)
 S XMP(1)=1,XMP(2)=20
"RTN","XMXPARM1",81,0)
 D ERRSET^XMXUTIL(39434,.XMP) ; Must be |1|-|2| characters.
"RTN","XMXPARM1",82,0)
 Q
"RTN","XMXPARM1",83,0)
XMTO(XMTO,XMOPTNL) ; Check the addressees (just make sure there is at least one)
"RTN","XMXPARM1",84,0)
 Q:$D(XMTO)
"RTN","XMXPARM1",85,0)
 I $G(XMOPTNL),$$GOTADDR^XMXADDR Q
"RTN","XMXPARM1",86,0)
 D ERRSET^XMXUTIL(39408) ;No recipients
"RTN","XMXPARM1",87,0)
 Q
"VER")
8.0^22.0
**INSTALL NAME**
XM*8.0*41
"BLD",3437,0)
XM*8.0*41^MAILMAN^0^3150604^y
"BLD",3437,1,0)
^^5^5^3090402^
"BLD",3437,1,1,0)
There are two fixes in this patch: The first issue concerns an error 
"BLD",3437,1,2,0)
message when trying to secure a KIDS build in Packman.  The second
"BLD",3437,1,3,0)
issue occurs while using the XMXAPI's, the variable DIERR is being
"BLD",3437,1,4,0)
leaked which could cause other issues in Fileman if it is not 
"BLD",3437,1,5,0)
cleaned up.
"BLD",3437,4,0)
^9.64PA^^
"BLD",3437,6)
^38
"BLD",3437,6.3)
4
"BLD",3437,"KRN",0)
^9.67PA^779.2^20
"BLD",3437,"KRN",.4,0)
.4
"BLD",3437,"KRN",.401,0)
.401
"BLD",3437,"KRN",.402,0)
.402
"BLD",3437,"KRN",.403,0)
.403
"BLD",3437,"KRN",.5,0)
.5
"BLD",3437,"KRN",.84,0)
.84
"BLD",3437,"KRN",3.6,0)
3.6
"BLD",3437,"KRN",3.8,0)
3.8
"BLD",3437,"KRN",9.2,0)
9.2
"BLD",3437,"KRN",9.8,0)
9.8
"BLD",3437,"KRN",9.8,"NM",0)
^9.68A^2^2
"BLD",3437,"KRN",9.8,"NM",1,0)
XMASEC^^0^B92228
"BLD",3437,"KRN",9.8,"NM",2,0)
XMXAPI^^0^B50919089
"BLD",3437,"KRN",9.8,"NM","B","XMASEC",1)

"BLD",3437,"KRN",9.8,"NM","B","XMXAPI",2)

"BLD",3437,"KRN",19,0)
19
"BLD",3437,"KRN",19.1,0)
19.1
"BLD",3437,"KRN",101,0)
101
"BLD",3437,"KRN",409.61,0)
409.61
"BLD",3437,"KRN",771,0)
771
"BLD",3437,"KRN",779.2,0)
779.2
"BLD",3437,"KRN",870,0)
870
"BLD",3437,"KRN",8989.51,0)
8989.51
"BLD",3437,"KRN",8989.52,0)
8989.52
"BLD",3437,"KRN",8994,0)
8994
"BLD",3437,"KRN","B",.4,.4)

"BLD",3437,"KRN","B",.401,.401)

"BLD",3437,"KRN","B",.402,.402)

"BLD",3437,"KRN","B",.403,.403)

"BLD",3437,"KRN","B",.5,.5)

"BLD",3437,"KRN","B",.84,.84)

"BLD",3437,"KRN","B",3.6,3.6)

"BLD",3437,"KRN","B",3.8,3.8)

"BLD",3437,"KRN","B",9.2,9.2)

"BLD",3437,"KRN","B",9.8,9.8)

"BLD",3437,"KRN","B",19,19)

"BLD",3437,"KRN","B",19.1,19.1)

"BLD",3437,"KRN","B",101,101)

"BLD",3437,"KRN","B",409.61,409.61)

"BLD",3437,"KRN","B",771,771)

"BLD",3437,"KRN","B",779.2,779.2)

"BLD",3437,"KRN","B",870,870)

"BLD",3437,"KRN","B",8989.51,8989.51)

"BLD",3437,"KRN","B",8989.52,8989.52)

"BLD",3437,"KRN","B",8994,8994)

"BLD",3437,"QDEF")
^^^^NO^^^^^^NO
"BLD",3437,"QUES",0)
^9.62^^
"BLD",3437,"REQB",0)
^9.611^1^1
"BLD",3437,"REQB",1,0)
XM*8.0*15^1
"BLD",3437,"REQB","B","XM*8.0*15",1)

"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
41^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^5^5^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
There are two fixes in this patch: The first issue concerns an error 
"PKG",139,22,1,"PAH",1,1,2,0)
message when trying to secure a KIDS build in Packman.  The second
"PKG",139,22,1,"PAH",1,1,3,0)
issue occurs while using the XMXAPI's, the variable DIERR is being
"PKG",139,22,1,"PAH",1,1,4,0)
leaked which could cause other issues in Fileman if it is not 
"PKG",139,22,1,"PAH",1,1,5,0)
cleaned up.
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
2
"RTN","XMASEC")
0^1^B92228
"RTN","XMASEC",1,0)
XMASEC ;(WASH ISC)/GM-Secure Packman Message ; 4/7/09 2:54pm
"RTN","XMASEC",2,0)
 ;;8.0;MailMan;**41**;Jun 28, 2002;Build 4
"RTN","XMASEC",3,0)
 N XMABORT,XMPAKMAN
"RTN","XMASEC",4,0)
 S XMABORT=0,XMPAKMAN=1
"RTN","XMASEC",5,0)
 D PSECURE^XMPSEC(XMZ,.XMABORT)
"RTN","XMASEC",6,0)
 Q
"RTN","XMXAPI")
0^2^B50919089
"RTN","XMXAPI",1,0)
XMXAPI ;ISC-SF/GMB-Message APIs ; 4/2/09 10:11am
"RTN","XMXAPI",2,0)
 ;;8.0;MailMan;**15,41**;Jun 28, 2002;Build 4
"RTN","XMXAPI",3,0)
 ; All entry points covered by DBIA 2729.
"RTN","XMXAPI",4,0)
 ; Variables input:
"RTN","XMXAPI",5,0)
 ; XMATTACH  Imaging system BLOB attachment array
"RTN","XMXAPI",6,0)
 ; XMBODY    Message text (MUST NOT BE "XMBODY")
"RTN","XMXAPI",7,0)
 ;              (must be closed root, passed by value.  See WP_ROOT
"RTN","XMXAPI",8,0)
 ;               definition for WP^DIE(), FM word processing filer)
"RTN","XMXAPI",9,0)
 ; XMDUZ     User's DUZ, or enough of user's name for a positive ID
"RTN","XMXAPI",10,0)
 ;              eg: 1301 or "lastname,firs"
"RTN","XMXAPI",11,0)
 ; XMK       Basket number, or enough of a name for a positive ID
"RTN","XMXAPI",12,0)
 ;              eg: 1 or "IN"
"RTN","XMXAPI",13,0)
 ; XMKZ      Message number in basket XMK
"RTN","XMXAPI",14,0)
 ;           OR
"RTN","XMXAPI",15,0)
 ;           if $G(XMK)="", Message number in ^XMB(3.9
"RTN","XMXAPI",16,0)
 ; XMKZA     Message number list or list array in basket XMK
"RTN","XMXAPI",17,0)
 ;              eg: "1,3,5-7" or ARRAY("1,3")=""
"RTN","XMXAPI",18,0)
 ;                               ARRAY("5-7")=""
"RTN","XMXAPI",19,0)
 ;              (list may end in comma)
"RTN","XMXAPI",20,0)
 ;              (ARRAY must be passed by reference)
"RTN","XMXAPI",21,0)
 ;           OR
"RTN","XMXAPI",22,0)
 ;           if $G(XMK)="", Message number list or list array in ^XMB(3.9
"RTN","XMXAPI",23,0)
 ;              (same rules, but number ranges are NOT allowed)
"RTN","XMXAPI",24,0)
 ; XMSUBJ    Message subject
"RTN","XMXAPI",25,0)
 ; XMTO      Addressee or addressee array
"RTN","XMXAPI",26,0)
 ;              (array must be passed by reference)
"RTN","XMXAPI",27,0)
 ;           User's DUZ, or enough of user's name for a positive ID
"RTN","XMXAPI",28,0)
 ;              eg: 1301 or "lastname,firs" or ARRAY(1301)=""
"RTN","XMXAPI",29,0)
 ;                                             ARRAY("lastname,firs")=""
"RTN","XMXAPI",30,0)
 ;           G.group name (enough for positive ID)
"RTN","XMXAPI",31,0)
 ;           S.server name (enough for positive ID)
"RTN","XMXAPI",32,0)
 ;           D.device name (enough for positive ID)
"RTN","XMXAPI",33,0)
 ;           prefix above (except devices and servers) by:
"RTN","XMXAPI",34,0)
 ;              I: for 'information only' recipient (may not reply)
"RTN","XMXAPI",35,0)
 ;                 eg: "I:1301" or "I:lastname,firs"
"RTN","XMXAPI",36,0)
 ;              C: for 'copy' recipient (not expected to reply)
"RTN","XMXAPI",37,0)
 ;                 eg: "C:1301" or "C:lastname,firs"
"RTN","XMXAPI",38,0)
 ;              L@datetime: for when (in future) to send to this recipient
"RTN","XMXAPI",39,0)
 ;                 (datetime may be anything accepted by FM)
"RTN","XMXAPI",40,0)
 ;                 eg: "L@25 DEC@0500:1301" or "L@1 JAN:lastname,firs"
"RTN","XMXAPI",41,0)
 ;                     or "L@2981225.05:1301"
"RTN","XMXAPI",42,0)
 ;              (may combine IL@datetime:  or  CL@datetime:)
"RTN","XMXAPI",43,0)
 ;           To delete recipient, prefix by -
"RTN","XMXAPI",44,0)
 ;                 eg: -1301 or "-lastname,firs"
"RTN","XMXAPI",45,0)
 ; XMZ       message number in ^XMB(3.9,
"RTN","XMXAPI",46,0)
 ;
"RTN","XMXAPI",47,0)
 ; Variables output (must be passed by reference):
"RTN","XMXAPI",48,0)
 ; XMFULL    expanded address of last addressee
"RTN","XMXAPI",49,0)
 ; XMMSG     simple message telling how many messages were acted on
"RTN","XMXAPI",50,0)
 ; XMZ       message number created in ^XMB(3.9,
"RTN","XMXAPI",51,0)
 ;
"RTN","XMXAPI",52,0)
 ; Errors
"RTN","XMXAPI",53,0)
 ; XMERR     if there's any errors, then XMERR is set to the number of
"RTN","XMXAPI",54,0)
 ;           errors, otherwise XMERR is undefined.
"RTN","XMXAPI",55,0)
 ;           ^TMP("XMERR",$J,error number,"TEXT",line number)=error text
"RTN","XMXAPI",56,0)
ANSRMSG(XMDUZ,XMK,XMKZ,XMSUBJ,XMBODY,XMTO,XMINSTR,XMZR) ; Answer a msg (Send new msg with copy of original msg inside)
"RTN","XMXAPI",57,0)
 ; In:  User, basket, msg #
"RTN","XMXAPI",58,0)
 ; Out: XMZR (message number of answer)
"RTN","XMXAPI",59,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",60,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",61,0)
 D ANSRMSG^XMXPARM(.XMDUZ,.XMK,.XMKZ,.XMSUBJ,.XMBODY,.XMTO,.XMINSTR) Q:$D(XMERR)
"RTN","XMXAPI",62,0)
 D ANSRMSG^XMXANSER(XMDUZ,.XMK,XMKZ,.XMSUBJ,XMBODY,.XMTO,.XMINSTR,.XMZR)
"RTN","XMXAPI",63,0)
 Q
"RTN","XMXAPI",64,0)
DELMSG(XMDUZ,XMK,XMKZA,XMMSG) ; Delete msgs from a basket
"RTN","XMXAPI",65,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",66,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",67,0)
 D ACTMSGS^XMXPARM(.XMDUZ,.XMK,.XMKZA) Q:$D(XMERR)
"RTN","XMXAPI",68,0)
 D DELMSG^XMXMSGS(XMDUZ,.XMK,.XMKZA,.XMMSG)
"RTN","XMXAPI",69,0)
 Q
"RTN","XMXAPI",70,0)
FLTRMSG(XMDUZ,XMK,XMKZA,XMMSG) ; Filters msgs in a basket
"RTN","XMXAPI",71,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",72,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",73,0)
 D ACTMSGS^XMXPARM(.XMDUZ,.XMK,.XMKZA) Q:$D(XMERR)
"RTN","XMXAPI",74,0)
 D FLTRMSG^XMXMSGS(XMDUZ,.XMK,.XMKZA,.XMMSG)
"RTN","XMXAPI",75,0)
 Q
"RTN","XMXAPI",76,0)
FWDMSG(XMDUZ,XMK,XMKZA,XMTO,XMINSTR,XMMSG) ; Forward msgs
"RTN","XMXAPI",77,0)
 ; XMINSTR("SHARE DATE")
"RTN","XMXAPI",78,0)
 ; XMINSTR("SHARE BSKT")
"RTN","XMXAPI",79,0)
 ; XMINSTR("SELF BSKT")
"RTN","XMXAPI",80,0)
 ; XMINSTR("FWD BY") substitute any string instead of XMDUZ name
"RTN","XMXAPI",81,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",82,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",83,0)
 D FWDMSG^XMXPARM(.XMDUZ,.XMK,.XMKZA,.XMTO,.XMINSTR) Q:$D(XMERR)
"RTN","XMXAPI",84,0)
 D FWDMSG^XMXMSGS(XMDUZ,.XMK,.XMKZA,.XMTO,.XMINSTR,.XMMSG)
"RTN","XMXAPI",85,0)
 Q
"RTN","XMXAPI",86,0)
LATERMSG(XMDUZ,XMK,XMKZA,XMINSTR,XMMSG) ; Later msgs
"RTN","XMXAPI",87,0)
 ; XMINSTR("LATER")
"RTN","XMXAPI",88,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",89,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",90,0)
 D LATERMSG^XMXPARM(.XMDUZ,.XMK,.XMKZA,.XMINSTR) Q:$D(XMERR)
"RTN","XMXAPI",91,0)
 D LATERMSG^XMXMSGS(XMDUZ,.XMK,.XMKZA,.XMINSTR,.XMMSG)
"RTN","XMXAPI",92,0)
 Q
"RTN","XMXAPI",93,0)
MOVEMSG(XMDUZ,XMK,XMKZA,XMKTO,XMMSG) ; Move msgs from one basket to another
"RTN","XMXAPI",94,0)
 ; XMKTO   Basket number, or enough of a name for a positive ID.
"RTN","XMXAPI",95,0)
 ;         Identifies basket to move to
"RTN","XMXAPI",96,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",97,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",98,0)
 D MOVEMSG^XMXPARM(.XMDUZ,.XMK,.XMKZA,.XMKTO) Q:$D(XMERR)
"RTN","XMXAPI",99,0)
 D MOVEMSG^XMXMSGS(XMDUZ,.XMK,.XMKZA,XMKTO,.XMMSG)
"RTN","XMXAPI",100,0)
 Q
"RTN","XMXAPI",101,0)
NTOGLMSG(XMDUZ,XMK,XMKZA,XMMSG) ; New Toggle msgs
"RTN","XMXAPI",102,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",103,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",104,0)
 D ACTMSGS^XMXPARM(.XMDUZ,.XMK,.XMKZA) Q:$D(XMERR)
"RTN","XMXAPI",105,0)
 D NTOGLMSG^XMXMSGS(XMDUZ,.XMK,.XMKZA,.XMMSG)
"RTN","XMXAPI",106,0)
 Q
"RTN","XMXAPI",107,0)
PRTMSG(XMDUZ,XMK,XMKZA,XMPRTTO,XMINSTR,XMMSG,XMTASK,XMSUBJ,XMTO) ; Print msgs
"RTN","XMXAPI",108,0)
 ; XMINSTR("HDR"), "RESPS", "RECIPS", "WHEN"
"RTN","XMXAPI",109,0)
 ; XMPRTTO Printer name
"RTN","XMXAPI",110,0)
 ; XMSUBJ & XMTO used only if XMPRTTO is a P-MESSAGE device.  Even then, they're optional.
"RTN","XMXAPI",111,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",112,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",113,0)
 D PRTMSG^XMXPARM(.XMDUZ,.XMK,.XMKZA,.XMPRTTO,.XMINSTR,.XMSUBJ,.XMTO) Q:$D(XMERR)
"RTN","XMXAPI",114,0)
 D PRTMSG^XMXMSGS(XMDUZ,.XMK,.XMKZA,XMPRTTO,.XMINSTR,.XMMSG,.XMTASK,.XMSUBJ,.XMTO)
"RTN","XMXAPI",115,0)
 Q
"RTN","XMXAPI",116,0)
PUTSERV(XMKN,XMZ) ; Put a message in a server basket
"RTN","XMXAPI",117,0)
 ; XMKN   full server name, including "S."
"RTN","XMXAPI",118,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",119,0)
 D SERV^XMXPARMB(.XMKN,.XMZ) Q:$D(XMERR)
"RTN","XMXAPI",120,0)
 D PUTSERV^XMXMSGS1(XMKN,XMZ)
"RTN","XMXAPI",121,0)
 Q
"RTN","XMXAPI",122,0)
REPLYMSG(XMDUZ,XMK,XMKZ,XMBODY,XMINSTR,XMZR) ; Reply to msg (Attach reply to original msg)
"RTN","XMXAPI",123,0)
 ; XMINSTR("NET REPLY") 1=send over the network; 0=don't (default)
"RTN","XMXAPI",124,0)
 ; XMINSTR("NET SUBJ")  Network Reply subject (see XMSUBJ)
"RTN","XMXAPI",125,0)
 ; Out: XMZR (message number of answer)
"RTN","XMXAPI",126,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",127,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",128,0)
 D REPLYMSG^XMXPARM(.XMDUZ,.XMK,.XMKZ,.XMBODY,.XMINSTR) Q:$D(XMERR)
"RTN","XMXAPI",129,0)
 D REPLYMSG^XMXREPLY(XMDUZ,.XMK,XMKZ,XMBODY,.XMINSTR,.XMZR)
"RTN","XMXAPI",130,0)
 Q
"RTN","XMXAPI",131,0)
SENDBULL(XMDUZ,XMBN,XMPARM,XMBODY,XMTO,XMINSTR,XMZ,XMATTACH) ; Send a bulletin (returns XMZ)
"RTN","XMXAPI",132,0)
 ; In:  User, bulletin name, bulletin parameters, add'l text,
"RTN","XMXAPI",133,0)
 ;      add'l recipients, send now or later (when?), opt'l BLOB
"RTN","XMXAPI",134,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",135,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",136,0)
 D BULLETIN^XMXPARM(.XMDUZ,.XMBN,.XMPARM,.XMBODY,.XMTO,.XMINSTR,.XMATTACH) Q:$D(XMERR)
"RTN","XMXAPI",137,0)
 D SENDBULL^XMXBULL(XMDUZ,XMBN,.XMPARM,.XMBODY,.XMTO,.XMINSTR,.XMZ,.XMATTACH)
"RTN","XMXAPI",138,0)
 Q
"RTN","XMXAPI",139,0)
SENDMSG(XMDUZ,XMSUBJ,XMBODY,XMTO,XMINSTR,XMZ,XMATTACH) ; Send a msg
"RTN","XMXAPI",140,0)
 ; In:  User, basket (if you are recipient), all msg parts,
"RTN","XMXAPI",141,0)
 ;      priority?, closed?, (info?,cc?), send now or later (when?),
"RTN","XMXAPI",142,0)
 ;      (KIDS,MIME,text,PackMan), delete date (if to shared,mail)
"RTN","XMXAPI",143,0)
 ; XMINSTR("RCPT BSKT")
"RTN","XMXAPI",144,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",145,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",146,0)
 D SENDMSG^XMXPARM(.XMDUZ,.XMSUBJ,.XMBODY,.XMTO,.XMINSTR,.XMATTACH) Q:$D(XMERR)
"RTN","XMXAPI",147,0)
 D SENDMSG^XMXSEND(XMDUZ,XMSUBJ,XMBODY,.XMTO,.XMINSTR,.XMZ,.XMATTACH)
"RTN","XMXAPI",148,0)
 Q
"RTN","XMXAPI",149,0)
TASKBULL(XMDUZ,XMBN,XMPARM,XMBODY,XMTO,XMINSTR,XMTASK,XMATTACH) ; Send a bulletin (Task it - does not return XMZ)
"RTN","XMXAPI",150,0)
 ; XMBN     Bulletin name (must be full name)
"RTN","XMXAPI",151,0)
 ; XMPARM   Array of parameters necessary for bulletin
"RTN","XMXAPI",152,0)
 ;             ARRAY(1)="parameter 1"
"RTN","XMXAPI",153,0)
 ;             ARRAY(2)="parameter 2"
"RTN","XMXAPI",154,0)
 ; XMBODY   Additional text to append to the bulletin text
"RTN","XMXAPI",155,0)
 ;              (must be closed root, passed by value.  See WP_ROOT
"RTN","XMXAPI",156,0)
 ;               definition for WP^DIE(), FM word processing filer)
"RTN","XMXAPI",157,0)
 ; XMTO     Additional addressee(s)
"RTN","XMXAPI",158,0)
 ; XMINSTR("SELF BSKT")
"RTN","XMXAPI",159,0)
 ;  ***ETC.***
"RTN","XMXAPI",160,0)
 ; In:  User, bulletin name, bulletin parameters, add'l text,
"RTN","XMXAPI",161,0)
 ;      add'l recipients, send now or later (when?), opt'l BLOB
"RTN","XMXAPI",162,0)
 ; Out: XMTASK (task number)
"RTN","XMXAPI",163,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",164,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",165,0)
 D BULLETIN^XMXPARM(.XMDUZ,.XMBN,.XMPARM,.XMBODY,.XMTO,.XMINSTR,.XMATTACH) Q:$D(XMERR)
"RTN","XMXAPI",166,0)
 D TASKBULL^XMXBULL(XMDUZ,XMBN,.XMPARM,.XMBODY,.XMTO,.XMINSTR,.XMTASK,.XMATTACH)
"RTN","XMXAPI",167,0)
 Q
"RTN","XMXAPI",168,0)
TERMMSG(XMDUZ,XMK,XMKZA,XMMSG) ; Terminate msgs
"RTN","XMXAPI",169,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",170,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",171,0)
 D ACTMSGS^XMXPARM(.XMDUZ,.XMK,.XMKZA) Q:$D(XMERR)
"RTN","XMXAPI",172,0)
 D TERMMSG^XMXMSGS(XMDUZ,.XMK,.XMKZA,.XMMSG)
"RTN","XMXAPI",173,0)
 Q
"RTN","XMXAPI",174,0)
VAPORMSG(XMDUZ,XMK,XMKZA,XMINSTR,XMMSG) ; Set vaporize date for msgs in a basket
"RTN","XMXAPI",175,0)
 ; XMINSTR("VAPOR")
"RTN","XMXAPI",176,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",177,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",178,0)
 D VAPORMSG^XMXPARM(.XMDUZ,.XMK,.XMKZA,.XMINSTR) Q:$D(XMERR)
"RTN","XMXAPI",179,0)
 D VAPORMSG^XMXMSGS(XMDUZ,.XMK,.XMKZA,.XMINSTR,.XMMSG)
"RTN","XMXAPI",180,0)
 Q
"RTN","XMXAPI",181,0)
ZAPSERV(XMKN,XMZ) ; Delete a message from a server basket
"RTN","XMXAPI",182,0)
 ; XMKN   full server name, including "S."
"RTN","XMXAPI",183,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",184,0)
 D SERV^XMXPARMB(.XMKN,.XMZ) Q:$D(XMERR)
"RTN","XMXAPI",185,0)
 D ZAPSERV^XMXMSGS1(XMKN,XMZ)
"RTN","XMXAPI",186,0)
 Q
"RTN","XMXAPI",187,0)
 ; ***** other actions
"RTN","XMXAPI",188,0)
ADDRNSND(XMDUZ,XMZ,XMTO,XMINSTR) ; Build a message part 2 (address and send)
"RTN","XMXAPI",189,0)
 ; XMZ (in)
"RTN","XMXAPI",190,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",191,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",192,0)
 D ADDRNSND^XMXPARM(.XMDUZ,.XMZ,.XMTO,.XMINSTR) Q:$D(XMERR)
"RTN","XMXAPI",193,0)
 D ADDRNSND^XMXSEND(XMDUZ,XMZ,.XMTO,.XMINSTR)
"RTN","XMXAPI",194,0)
 Q
"RTN","XMXAPI",195,0)
CRE8XMZ(XMSUBJ,XMZ) ; Build a message part 1 (create)
"RTN","XMXAPI",196,0)
 ; In:  subject
"RTN","XMXAPI",197,0)
 ; Out: XMZ
"RTN","XMXAPI",198,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",199,0)
 D VSUBJ^XMXPARM(.XMSUBJ) Q:$D(XMERR)
"RTN","XMXAPI",200,0)
 D CRE8XMZ^XMXSEND(XMSUBJ,.XMZ)
"RTN","XMXAPI",201,0)
 Q
"RTN","XMXAPI",202,0)
MOVEBODY(XMZ,XMBODY) ; Move text to the message
"RTN","XMXAPI",203,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",204,0)
 D MOVEBODY^XMXPARM(.XMZ,.XMBODY) Q:$D(XMERR)
"RTN","XMXAPI",205,0)
 D MOVEBODY^XMXSEND(XMZ,XMBODY)
"RTN","XMXAPI",206,0)
 Q
"RTN","XMXAPI",207,0)
TOWHOM(XMDUZ,XMZ,XMTYPE,XMTO,XMINSTR,XMFULL) ; Check ONE msg addressee
"RTN","XMXAPI",208,0)
 ; XMFULL   Expanded address of the addressee
"RTN","XMXAPI",209,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",210,0)
 I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
"RTN","XMXAPI",211,0)
 D TOWHOM^XMXPARM(.XMDUZ,.XMZ,.XMTYPE,XMTO,.XMINSTR) Q:$D(XMERR)
"RTN","XMXAPI",212,0)
 D TOWHOM^XMXTO(XMDUZ,.XMZ,XMTYPE,XMTO,.XMINSTR,.XMFULL)
"RTN","XMXAPI",213,0)
 Q
"RTN","XMXAPI",214,0)
VSUBJ(XMSUBJ) ; Validate a subject
"RTN","XMXAPI",215,0)
 N DIERR ; ADDED IN PATCH XM*8.0*41 JDG
"RTN","XMXAPI",216,0)
 D VSUBJ^XMXPARM(.XMSUBJ)
"RTN","XMXAPI",217,0)
 Q
"VER")
8.0^22.0
**INSTALL NAME**
XM*8.0*40
"BLD",3438,0)
XM*8.0*40^MAILMAN^0^3150604^y
"BLD",3438,1,0)
^^4^4^3100429^
"BLD",3438,1,1,0)
This patch will prevent users from adding themselves as their
"BLD",3438,1,2,0)
own surrogate, correct the Mailman Developers Guide so 
"BLD",3438,1,3,0)
the documentation is accurate regarding the API XMXAPIG,
"BLD",3438,1,4,0)
and inactivate the domain LRN.VA.GOV.
"BLD",3438,4,0)
^9.64PA^3.7^1
"BLD",3438,4,3.7,0)
3.7
"BLD",3438,4,3.7,2,0)
^9.641^3.703^1
"BLD",3438,4,3.7,2,3.703,0)
SURROGATE  (sub-file)
"BLD",3438,4,3.7,2,3.703,1,0)
^9.6411^.01^1
"BLD",3438,4,3.7,2,3.703,1,.01,0)
SURROGATE
"BLD",3438,4,3.7,222)
y^n^p^^^^n^^n
"BLD",3438,4,3.7,224)

"BLD",3438,4,"APDD",3.7,3.703)

"BLD",3438,4,"APDD",3.7,3.703,.01)

"BLD",3438,4,"B",3.7,3.7)

"BLD",3438,6)
^39
"BLD",3438,6.3)
12
"BLD",3438,"ABPKG")
n
"BLD",3438,"INIT")
EN^XM40PST
"BLD",3438,"KRN",0)
^9.67PA^779.2^20
"BLD",3438,"KRN",.4,0)
.4
"BLD",3438,"KRN",.401,0)
.401
"BLD",3438,"KRN",.402,0)
.402
"BLD",3438,"KRN",.403,0)
.403
"BLD",3438,"KRN",.5,0)
.5
"BLD",3438,"KRN",.84,0)
.84
"BLD",3438,"KRN",3.6,0)
3.6
"BLD",3438,"KRN",3.8,0)
3.8
"BLD",3438,"KRN",9.2,0)
9.2
"BLD",3438,"KRN",9.8,0)
9.8
"BLD",3438,"KRN",9.8,"NM",0)
^9.68A^1^1
"BLD",3438,"KRN",9.8,"NM",1,0)
XM40PST^^0^B1299805
"BLD",3438,"KRN",9.8,"NM","B","XM40PST",1)

"BLD",3438,"KRN",19,0)
19
"BLD",3438,"KRN",19.1,0)
19.1
"BLD",3438,"KRN",101,0)
101
"BLD",3438,"KRN",409.61,0)
409.61
"BLD",3438,"KRN",771,0)
771
"BLD",3438,"KRN",779.2,0)
779.2
"BLD",3438,"KRN",870,0)
870
"BLD",3438,"KRN",8989.51,0)
8989.51
"BLD",3438,"KRN",8989.52,0)
8989.52
"BLD",3438,"KRN",8994,0)
8994
"BLD",3438,"KRN","B",.4,.4)

"BLD",3438,"KRN","B",.401,.401)

"BLD",3438,"KRN","B",.402,.402)

"BLD",3438,"KRN","B",.403,.403)

"BLD",3438,"KRN","B",.5,.5)

"BLD",3438,"KRN","B",.84,.84)

"BLD",3438,"KRN","B",3.6,3.6)

"BLD",3438,"KRN","B",3.8,3.8)

"BLD",3438,"KRN","B",9.2,9.2)

"BLD",3438,"KRN","B",9.8,9.8)

"BLD",3438,"KRN","B",19,19)

"BLD",3438,"KRN","B",19.1,19.1)

"BLD",3438,"KRN","B",101,101)

"BLD",3438,"KRN","B",409.61,409.61)

"BLD",3438,"KRN","B",771,771)

"BLD",3438,"KRN","B",779.2,779.2)

"BLD",3438,"KRN","B",870,870)

"BLD",3438,"KRN","B",8989.51,8989.51)

"BLD",3438,"KRN","B",8989.52,8989.52)

"BLD",3438,"KRN","B",8994,8994)

"BLD",3438,"QDEF")
^^^^NO^^^^NO^^NO
"BLD",3438,"QUES",0)
^9.62^^
"BLD",3438,"REQB",0)
^9.611^^
"FIA",3.7)
MAILBOX
"FIA",3.7,0)
^XMB(3.7,
"FIA",3.7,0,0)
3.7P
"FIA",3.7,0,1)
y^n^p^^^^n^^n
"FIA",3.7,0,10)

"FIA",3.7,0,11)

"FIA",3.7,0,"RLRO")

"FIA",3.7,0,"VR")
8.0^XM
"FIA",3.7,3.7)
1
"FIA",3.7,3.7,8)

"FIA",3.7,3.703)
1
"FIA",3.7,3.703,.01)

"INIT")
EN^XM40PST
"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
40^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^4^4^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
This patch will prevent users from adding themselves as their
"PKG",139,22,1,"PAH",1,1,2,0)
own surrogate, correct the Mailman Developers Guide so 
"PKG",139,22,1,"PAH",1,1,3,0)
the documentation is accurate regarding the API XMXAPIG,
"PKG",139,22,1,"PAH",1,1,4,0)
and inactivate the domain LRN.VA.GOV.
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
1
"RTN","XM40PST")
0^1^B1299805
"RTN","XM40PST",1,0)
XM40PST ;ALB/JDG - XM*8.0*40 POST INIT: DOMAIN FILE UPDATE(#4.2); 04/26/10 ; 5/24/10 4:58pm
"RTN","XM40PST",2,0)
 ;;8.0;MAILMAN;**40**;26-APR-10;Build 12
"RTN","XM40PST",3,0)
 ;;Per VHA Directive 2004-038, this routine should not be modified.
"RTN","XM40PST",4,0)
 ;
"RTN","XM40PST",5,0)
 Q
"RTN","XM40PST",6,0)
 ;
"RTN","XM40PST",7,0)
EN ;LOCATES IEN FOR THE LRN.VA.GOV DOMAIN AND STUFF'S A "CN" FOR CLOSE  AND NO-FORWARD INACTIVATING THE DOMAIN.
"RTN","XM40PST",8,0)
 ;
"RTN","XM40PST",9,0)
 N XMDOM,XMFLG
"RTN","XM40PST",10,0)
 S (XMDOM,XMFLG)=0
"RTN","XM40PST",11,0)
 D BMES^XPDUTL("Closing the LRN.VA.GOV domain...")
"RTN","XM40PST",12,0)
 S XMDOM=+$O(^DIC(4.2,"B","LRN.VA.GOV",XMDOM))  I XMDOM D
"RTN","XM40PST",13,0)
 .S XMFLG=1
"RTN","XM40PST",14,0)
 .S DR="1///CN"
"RTN","XM40PST",15,0)
 .S DIE="^DIC(4.2,",DA=XMDOM D ^DIE
"RTN","XM40PST",16,0)
 .D BMES^XPDUTL("Domain updated successfully!")
"RTN","XM40PST",17,0)
 .Q
"RTN","XM40PST",18,0)
 I 'XMFLG D BMES^XPDUTL("Unable to locate LRN.VA.GOV domain entry. Nothing updated.")
"RTN","XM40PST",19,0)
 K DIE,DA,DR,XMDOM,XMFLG
"RTN","XM40PST",20,0)
 Q
"UP",3.7,3.703,-1)
3.7^9
"UP",3.7,3.703,0)
3.703
"VER")
8.0^22.0
"^DD",3.7,3.7,8,0)
SURROGATE^3.703P^^9;0
"^DD",3.7,3.7,8,21,0)
^.001^4^4^3100512^^^^
"^DD",3.7,3.7,8,21,1,0)
This field lists all of the users who have the ability to act as a surrogate
"^DD",3.7,3.7,8,21,2,0)
for this user.  A surrogate may read or send mail for someone else, and is
"^DD",3.7,3.7,8,21,3,0)
listed as the "sender" of the message, while the message is "from" the
"^DD",3.7,3.7,8,21,4,0)
original user.
"^DD",3.7,3.703,0)
SURROGATE SUB-FIELD^NL^2^3
"^DD",3.7,3.703,0,"NM","SURROGATE")

"^DD",3.7,3.703,.01,0)
SURROGATE^M*P200'^VA(200,^0;1^S DIC("S")="I Y'=D0" D ^DIC K DIC S DIC=DIE,X=+Y K:Y<0 X
"^DD",3.7,3.703,.01,1,0)
^.1
"^DD",3.7,3.703,.01,1,1,0)
3.7^AB
"^DD",3.7,3.703,.01,1,1,1)
S ^XMB(3.7,"AB",$E(X,1,30),DA(1),DA)=""
"^DD",3.7,3.703,.01,1,1,2)
K ^XMB(3.7,"AB",$E(X,1,30),DA(1),DA)
"^DD",3.7,3.703,.01,3)
Select a surrogate.
"^DD",3.7,3.703,.01,12)
You can't be your own surrogate.
"^DD",3.7,3.703,.01,12.1)
S DIC("S")="I Y'=D0"
"^DD",3.7,3.703,.01,21,0)
^.001^4^4^3100512^^^^
"^DD",3.7,3.703,.01,21,1,0)
A user who has the ability to act as a surrogate for this user. A
"^DD",3.7,3.703,.01,21,2,0)
surrogate may read or send mail for someone else, and is listed as
"^DD",3.7,3.703,.01,21,3,0)
the "sender" of the message, while the message is "from" the original
"^DD",3.7,3.703,.01,21,4,0)
user.
"^DD",3.7,3.703,.01,"DT")
3100511
**INSTALL NAME**
XM*8.0*44
"BLD",3439,0)
XM*8.0*44^MAILMAN^0^3150604^y
"BLD",3439,1,0)
^^3^3^3111212^
"BLD",3439,1,1,0)
This patch updates the Mailman TCPIP entry point to handle
"BLD",3439,1,2,0)
instances where the software is run on Linux based Operating 
"BLD",3439,1,3,0)
Systems.
"BLD",3439,4,0)
^9.64PA^^
"BLD",3439,6)
^40
"BLD",3439,6.3)
5
"BLD",3439,"ABPKG")
n
"BLD",3439,"KRN",0)
^9.67PA^779.2^20
"BLD",3439,"KRN",.4,0)
.4
"BLD",3439,"KRN",.401,0)
.401
"BLD",3439,"KRN",.402,0)
.402
"BLD",3439,"KRN",.403,0)
.403
"BLD",3439,"KRN",.5,0)
.5
"BLD",3439,"KRN",.84,0)
.84
"BLD",3439,"KRN",3.6,0)
3.6
"BLD",3439,"KRN",3.8,0)
3.8
"BLD",3439,"KRN",9.2,0)
9.2
"BLD",3439,"KRN",9.8,0)
9.8
"BLD",3439,"KRN",9.8,"NM",0)
^9.68A^1^1
"BLD",3439,"KRN",9.8,"NM",1,0)
XMRUCX^^0^B3929981
"BLD",3439,"KRN",9.8,"NM","B","XMRUCX",1)

"BLD",3439,"KRN",19,0)
19
"BLD",3439,"KRN",19.1,0)
19.1
"BLD",3439,"KRN",101,0)
101
"BLD",3439,"KRN",409.61,0)
409.61
"BLD",3439,"KRN",771,0)
771
"BLD",3439,"KRN",779.2,0)
779.2
"BLD",3439,"KRN",870,0)
870
"BLD",3439,"KRN",8989.51,0)
8989.51
"BLD",3439,"KRN",8989.52,0)
8989.52
"BLD",3439,"KRN",8994,0)
8994
"BLD",3439,"KRN","B",.4,.4)

"BLD",3439,"KRN","B",.401,.401)

"BLD",3439,"KRN","B",.402,.402)

"BLD",3439,"KRN","B",.403,.403)

"BLD",3439,"KRN","B",.5,.5)

"BLD",3439,"KRN","B",.84,.84)

"BLD",3439,"KRN","B",3.6,3.6)

"BLD",3439,"KRN","B",3.8,3.8)

"BLD",3439,"KRN","B",9.2,9.2)

"BLD",3439,"KRN","B",9.8,9.8)

"BLD",3439,"KRN","B",19,19)

"BLD",3439,"KRN","B",19.1,19.1)

"BLD",3439,"KRN","B",101,101)

"BLD",3439,"KRN","B",409.61,409.61)

"BLD",3439,"KRN","B",771,771)

"BLD",3439,"KRN","B",779.2,779.2)

"BLD",3439,"KRN","B",870,870)

"BLD",3439,"KRN","B",8989.51,8989.51)

"BLD",3439,"KRN","B",8989.52,8989.52)

"BLD",3439,"KRN","B",8994,8994)

"BLD",3439,"QUES",0)
^9.62^^
"BLD",3439,"REQB",0)
^9.611^1^1
"BLD",3439,"REQB",1,0)
XM*8.0*27^1
"BLD",3439,"REQB","B","XM*8.0*27",1)

"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
44^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^3^3^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
This patch updates the Mailman TCPIP entry point to handle
"PKG",139,22,1,"PAH",1,1,2,0)
instances where the software is run on Linux based Operating 
"PKG",139,22,1,"PAH",1,1,3,0)
Systems.
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
1
"RTN","XMRUCX")
0^1^B3929981
"RTN","XMRUCX",1,0)
XMRUCX ;(WASH ISC)/THM/CAP-SMTP Receiver (RFC 821) for UCX ;03/25/2004  06:33
"RTN","XMRUCX",2,0)
 ;;8.0;MailMan;**6,19,25,27,44**;Jun 28, 2002;Build 5
"RTN","XMRUCX",3,0)
 ;
"RTN","XMRUCX",4,0)
 ;Entry for Inet_servers interface RECEIVER
"RTN","XMRUCX",5,0)
 ;SMTP service request invokes MailMan
"RTN","XMRUCX",6,0)
SOC25 ;
"RTN","XMRUCX",7,0)
 ;S (XMRPORT,IO,IO(0))=%,X=$E(%_"-INETMM",1,15) D SETENV^%ZOSV
"RTN","XMRUCX",8,0)
 ;I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D R^XMCTRAP Q"
"RTN","XMRUCX",9,0)
 ;E  S X="R^XMCTRAP",@^%ZOSF("TRAP")
"RTN","XMRUCX",10,0)
 ;D DT^DICRW,DUZ^XUP(.5)
"RTN","XMRUCX",11,0)
 ;S ER=0
"RTN","XMRUCX",12,0)
 ;O IO:(SHARE) U IO
"RTN","XMRUCX",13,0)
 ;S XMCHAN="TCP/IP-MAILMAN",XMNO220=""
"RTN","XMRUCX",14,0)
 ;D ENT^XMR
"RTN","XMRUCX",15,0)
 ;;G HALT^XMRTCP
"RTN","XMRUCX",16,0)
 ;Q
"RTN","XMRUCX",17,0)
SOC ;
"RTN","XMRUCX",18,0)
 S (XMRPORT,IO,IO(0))="SYS$NET",X=$E(%_"INETMM",1,15) D SETENV^%ZOSV
"RTN","XMRUCX",19,0)
 I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="S ZZIO=$ZIO H 33 D R^XMCTRAP Q"
"RTN","XMRUCX",20,0)
 E  S X="R^XMCTRAP",@^%ZOSF("TRAP")
"RTN","XMRUCX",21,0)
 D DT^DICRW,DUZ^XUP(.5)
"RTN","XMRUCX",22,0)
 S ER=0
"RTN","XMRUCX",23,0)
 O IO:(TCPDEV):33 U IO
"RTN","XMRUCX",24,0)
 S XMCHAN="TCP/IP-MAILMAN",XMNO220=""
"RTN","XMRUCX",25,0)
 D ENT^XMR
"RTN","XMRUCX",26,0)
 ;G HALT^XMRTCP
"RTN","XMRUCX",27,0)
 Q
"RTN","XMRUCX",28,0)
GTM2 ;Entry point for %ZISTCPS to GT.M
"RTN","XMRUCX",29,0)
 ;The device has been open and setup in %ZISTCPS
"RTN","XMRUCX",30,0)
 N $ETRAP,$ESTACK S $ETRAP="D ^%ZTER S ZZIO=$ZIO H 33 D R^XMCTRAP Q"
"RTN","XMRUCX",31,0)
 S XMRPORT=IO
"RTN","XMRUCX",32,0)
 D SETNM^%ZOSV($E(IO_"INETMM",1,15)),COUNT^XUSCNT(1) ;Process counting under GT.M
"RTN","XMRUCX",33,0)
 N DIQUIET S DIQUIET=1 D DT^DICRW,DUZ^XUP(.5)
"RTN","XMRUCX",34,0)
 S ER=0,XMS0C=1
"RTN","XMRUCX",35,0)
 U IO:(DELIMITER=$C(13))
"RTN","XMRUCX",36,0)
 S XMCHAN="TCP/GTM" ;,XMNO220=""
"RTN","XMRUCX",37,0)
 D ENT^XMR
"RTN","XMRUCX",38,0)
 D COUNT^XUSCNT(-1) ;Check out GT.M counting
"RTN","XMRUCX",39,0)
 Q
"RTN","XMRUCX",40,0)
STARTGTM ;Start the %ZISTCPS service
"RTN","XMRUCX",41,0)
 D LISTEN^%ZISTCPS(25,"GTM2^XMRUCX")
"RTN","XMRUCX",42,0)
 Q
"RTN","XMRUCX",43,0)
CACHEVMS ;Cache/VMS tcpip service and XINETD entry point
"RTN","XMRUCX",44,0)
 N $ETRAP,$ESTACK,XMOS S $ETRAP="S ZZIO=$ZIO H 33 D R^XMCTRAP Q"
"RTN","XMRUCX",45,0)
 ;CHECK OS WHEN SETTING IO VARIABLES XM*8*44 RRA
"RTN","XMRUCX",46,0)
 S XMOS=$$OS^%ZOSV
"RTN","XMRUCX",47,0)
 S (XMRPORT,IO,IO(0))=$S(XMOS["VMS":"SYS$NET",1:$P) D SETNM^%ZOSV($E("INETMM-"_$J,1,15))
"RTN","XMRUCX",48,0)
 N DIQUIET S DIQUIET=1 D DT^DICRW,DUZ^XUP(.5)
"RTN","XMRUCX",49,0)
 S ER=0,XMS0C=1
"RTN","XMRUCX",50,0)
 O IO::33 U IO:(::"-M")
"RTN","XMRUCX",51,0)
 S XMCHAN="TCP/IP-MAILMAN",XMNO220=""
"RTN","XMRUCX",52,0)
 D ENT^XMR
"RTN","XMRUCX",53,0)
 Q
"VER")
8.0^22.0
**INSTALL NAME**
XM*8.0*45
"BLD",3440,0)
XM*8.0*45^MAILMAN^0^3150604^y
"BLD",3440,1,0)
^^6^6^3130508^
"BLD",3440,1,1,0)
 
"BLD",3440,1,2,0)
This patch will address the following issues:
"BLD",3440,1,3,0)
1. Mailman returns an error "may not be real person"
"BLD",3440,1,4,0)
2. Partial message is being delivered due to multiple
"BLD",3440,1,5,0)
message parts that come through from different servers at different times.
"BLD",3440,1,6,0)
3. Compile errors on the $ZC command.
"BLD",3440,4,0)
^9.64PA^^
"BLD",3440,6)
^41
"BLD",3440,6.3)
9
"BLD",3440,"ABPKG")
n
"BLD",3440,"KRN",0)
^9.67PA^779.2^20
"BLD",3440,"KRN",.4,0)
.4
"BLD",3440,"KRN",.401,0)
.401
"BLD",3440,"KRN",.402,0)
.402
"BLD",3440,"KRN",.403,0)
.403
"BLD",3440,"KRN",.5,0)
.5
"BLD",3440,"KRN",.84,0)
.84
"BLD",3440,"KRN",3.6,0)
3.6
"BLD",3440,"KRN",3.8,0)
3.8
"BLD",3440,"KRN",9.2,0)
9.2
"BLD",3440,"KRN",9.8,0)
9.8
"BLD",3440,"KRN",9.8,"NM",0)
^9.68A^7^7
"BLD",3440,"KRN",9.8,"NM",1,0)
XMXPARM^^0^B68128895
"BLD",3440,"KRN",9.8,"NM",2,0)
XMTDO^^0^B5148040
"BLD",3440,"KRN",9.8,"NM",3,0)
XML1CRC^^0^B12800225
"BLD",3440,"KRN",9.8,"NM",4,0)
XML4CRC^^0^B19995633
"BLD",3440,"KRN",9.8,"NM",5,0)
XML4CRC1^^0^B12862513
"BLD",3440,"KRN",9.8,"NM",6,0)
XMLSWP^^0^B10332361
"BLD",3440,"KRN",9.8,"NM",7,0)
XMLSWP0^^0^B10115149
"BLD",3440,"KRN",9.8,"NM","B","XML1CRC",3)

"BLD",3440,"KRN",9.8,"NM","B","XML4CRC",4)

"BLD",3440,"KRN",9.8,"NM","B","XML4CRC1",5)

"BLD",3440,"KRN",9.8,"NM","B","XMLSWP",6)

"BLD",3440,"KRN",9.8,"NM","B","XMLSWP0",7)

"BLD",3440,"KRN",9.8,"NM","B","XMTDO",2)

"BLD",3440,"KRN",9.8,"NM","B","XMXPARM",1)

"BLD",3440,"KRN",19,0)
19
"BLD",3440,"KRN",19,"NM",0)
^9.68A^^
"BLD",3440,"KRN",19.1,0)
19.1
"BLD",3440,"KRN",101,0)
101
"BLD",3440,"KRN",409.61,0)
409.61
"BLD",3440,"KRN",771,0)
771
"BLD",3440,"KRN",779.2,0)
779.2
"BLD",3440,"KRN",870,0)
870
"BLD",3440,"KRN",8989.51,0)
8989.51
"BLD",3440,"KRN",8989.52,0)
8989.52
"BLD",3440,"KRN",8994,0)
8994
"BLD",3440,"KRN","B",.4,.4)

"BLD",3440,"KRN","B",.401,.401)

"BLD",3440,"KRN","B",.402,.402)

"BLD",3440,"KRN","B",.403,.403)

"BLD",3440,"KRN","B",.5,.5)

"BLD",3440,"KRN","B",.84,.84)

"BLD",3440,"KRN","B",3.6,3.6)

"BLD",3440,"KRN","B",3.8,3.8)

"BLD",3440,"KRN","B",9.2,9.2)

"BLD",3440,"KRN","B",9.8,9.8)

"BLD",3440,"KRN","B",19,19)

"BLD",3440,"KRN","B",19.1,19.1)

"BLD",3440,"KRN","B",101,101)

"BLD",3440,"KRN","B",409.61,409.61)

"BLD",3440,"KRN","B",771,771)

"BLD",3440,"KRN","B",779.2,779.2)

"BLD",3440,"KRN","B",870,870)

"BLD",3440,"KRN","B",8989.51,8989.51)

"BLD",3440,"KRN","B",8989.52,8989.52)

"BLD",3440,"KRN","B",8994,8994)

"BLD",3440,"QUES",0)
^9.62^^
"BLD",3440,"REQB",0)
^9.611^1^1
"BLD",3440,"REQB",1,0)
XM*8.0*15^1
"BLD",3440,"REQB","B","XM*8.0*15",1)

"MBREQ")
0
"PKG",139,-1)
1^1
"PKG",139,0)
MAILMAN^XM^Electronic Mail, both local and networked
"PKG",139,22,0)
^9.49I^1^1
"PKG",139,22,1,0)
8.0^3020829^3070202^55
"PKG",139,22,1,"PAH",1,0)
45^3150604^5
"PKG",139,22,1,"PAH",1,1,0)
^^6^6^3150604
"PKG",139,22,1,"PAH",1,1,1,0)
 
"PKG",139,22,1,"PAH",1,1,2,0)
This patch will address the following issues:
"PKG",139,22,1,"PAH",1,1,3,0)
1. Mailman returns an error "may not be real person"
"PKG",139,22,1,"PAH",1,1,4,0)
2. Partial message is being delivered due to multiple
"PKG",139,22,1,"PAH",1,1,5,0)
message parts that come through from different servers at different times.
"PKG",139,22,1,"PAH",1,1,6,0)
3. Compile errors on the $ZC command.
"QUES","XPF1",0)
Y
"QUES","XPF1","??")
^D REP^XPDH
"QUES","XPF1","A")
Shall I write over your |FLAG| File
"QUES","XPF1","B")
YES
"QUES","XPF1","M")
D XPF1^XPDIQ
"QUES","XPF2",0)
Y
"QUES","XPF2","??")
^D DTA^XPDH
"QUES","XPF2","A")
Want my data |FLAG| yours
"QUES","XPF2","B")
YES
"QUES","XPF2","M")
D XPF2^XPDIQ
"QUES","XPI1",0)
YO
"QUES","XPI1","??")
^D INHIBIT^XPDH
"QUES","XPI1","A")
Want KIDS to INHIBIT LOGONs during the install
"QUES","XPI1","B")
NO
"QUES","XPI1","M")
D XPI1^XPDIQ
"QUES","XPM1",0)
PO^VA(200,:EM
"QUES","XPM1","??")
^D MG^XPDH
"QUES","XPM1","A")
Enter the Coordinator for Mail Group '|FLAG|'
"QUES","XPM1","B")

"QUES","XPM1","M")
D XPM1^XPDIQ
"QUES","XPO1",0)
Y
"QUES","XPO1","??")
^D MENU^XPDH
"QUES","XPO1","A")
Want KIDS to Rebuild Menu Trees Upon Completion of Install
"QUES","XPO1","B")
NO
"QUES","XPO1","M")
D XPO1^XPDIQ
"QUES","XPZ1",0)
Y
"QUES","XPZ1","??")
^D OPT^XPDH
"QUES","XPZ1","A")
Want to DISABLE Scheduled Options, Menu Options, and Protocols
"QUES","XPZ1","B")
NO
"QUES","XPZ1","M")
D XPZ1^XPDIQ
"QUES","XPZ2",0)
Y
"QUES","XPZ2","??")
^D RTN^XPDH
"QUES","XPZ2","A")
Want to MOVE routines to other CPUs
"QUES","XPZ2","B")
NO
"QUES","XPZ2","M")
D XPZ2^XPDIQ
"RTN")
7
"RTN","XML1CRC")
0^3^B12800225
"RTN","XML1CRC",1,0)
XML1CRC ;(WASH ISC)/RJ-OS Check Sum ;04/17/2002  10:58
"RTN","XML1CRC",2,0)
 ;;8.0;MailMan;**45**;Jun 28, 2002;Build 9
"RTN","XML1CRC",3,0)
OPEN D GET,OP
"RTN","XML1CRC",4,0)
 S:'$D(XMESC) XMESC="~" S:'$D(XMFS) XMFS=255 S:'$D(XM) XM="" S (XMSSQ,XMRSQ)=1 Q
"RTN","XML1CRC",5,0)
GET S X=XMCHAN,DIC="^DIC(3.4,",DIC(0)="Z" D ^DIC S XMCHAN=+Y
"RTN","XML1CRC",6,0)
 I '$D(^DIC(3.4,XMCHAN,0)) S ER=1,Y="Invalid channel" Q
"RTN","XML1CRC",7,0)
G2 S XMPROT=$P(^DIC(3.4,XMCHAN,0),U)
"RTN","XML1CRC",8,0)
 F X=1:1:4 S @($P("XMSEN^XMREC^XMOPEN^XMCLOSE",U,X))=$S($D(^(X)):^(X),1:"Q")
"RTN","XML1CRC",9,0)
 Q
"RTN","XML1CRC",10,0)
OP I $D(XMOPEN) X:$L(XMOPEN) XMOPEN
"RTN","XML1CRC",11,0)
 I '$D(XMQUIET) S X=255 X ^%ZOSF("RM")
"RTN","XML1CRC",12,0)
 Q
"RTN","XML1CRC",13,0)
C X ^%ZOSF("EON")
"RTN","XML1CRC",14,0)
 I $D(XMCLOSE) X:$L(XMCLOSE) XMCLOSE
"RTN","XML1CRC",15,0)
 Q
"RTN","XML1CRC",16,0)
SEND ;returns ER(0 OR 1), XMLER=number of "soft" errors
"RTN","XML1CRC",17,0)
 I $L(XMSG)>255 S XMLER=0,ER=1 G SRQ
"RTN","XML1CRC",18,0)
 I XMSG'?.ANP F %=1:1:$L(XMSG) I $E(XMSG,%)?1C,$A(XMSG,%)'=9 S XMSG=$E(XMSG,1,%-1)_$E(XMSG,%+1,999) Q:XMSG?.ANP  S %=%-1
"RTN","XML1CRC",19,0)
 D SRINIT S X=XMSG D SUM
"RTN","XML1CRC",20,0)
 I $G(XMINST) D XMTSTAT^XMTDR(XMINST,"S",XMSG,0) ; 1SCP
"RTN","XML1CRC",21,0)
SL S XMLER=XMLER+1 I (XMLER+1)>XMLMAXER D NEWSTRAT
"RTN","XML1CRC",22,0)
 I ER W XMLERR,$C(13) G SRQ
"RTN","XML1CRC",23,0)
 D BUFLUSH W XMSG,$C(13),XMLINE,U,XMSUM,$C(13) R XMLX:XMLTIME G:XMLX=(XMLINE_U_XMLACK) SRQ
"RTN","XML1CRC",24,0)
 S XMLY=XMLX=(XMLINE_U_XMLNAK),XMLZ=0 D:'XMLY ENQ G SL:XMLY,SRQ
"RTN","XML1CRC",25,0)
ENQ ;ACK/NAK garbled / re-establish contact
"RTN","XML1CRC",26,0)
 S XMLZ=XMLZ+1 I XMLZ>XMLMAXER S (ER,XMLY)=1 Q
"RTN","XML1CRC",27,0)
 D BUFLUSH W XMLENQ,$C(13) R XMLX:XMLTIME Q:XMLX=(XMLINE_U_XMLACK)
"RTN","XML1CRC",28,0)
 I XMLX[XMLACK!(XMLX[XMLNAK),+XMLX=XMLINE!(+XMLX=XMLINE-1) S XMLY=1 Q
"RTN","XML1CRC",29,0)
 H 1 G ENQ
"RTN","XML1CRC",30,0)
REC ;SEE SEND
"RTN","XML1CRC",31,0)
 D SRINIT S:'$D(XMLAN) XMLAN=XMLINE_U_XMLNAK
"RTN","XML1CRC",32,0)
 I $D(XMRG),$G(XMINST) D XMTSTAT^XMTDR(XMINST,"R",XMRG,0) ; 1SCP
"RTN","XML1CRC",33,0)
RL S XMLER=XMLER+1 I (XMLER+1)>XMLMAXER D NEWSTRAT I ER=1 G SRQ
"RTN","XML1CRC",34,0)
 R XMRG#255:$S($D(XMSTIME):XMSTIME,1:XMLTIME)
"RTN","XML1CRC",35,0)
 S XMLZ=$S('$T:-1,XMRG=XMLENQ:0,XMRG=XMLERR:2,1:1)
"RTN","XML1CRC",36,0)
 S ER=XMLZ=2 G:XMLZ>1 SRQ I 'XMLZ D BUFLUSH W XMLAN,$C(13) G RL
"RTN","XML1CRC",37,0)
 R XMLY:XMLTIME I +XMLY=XMLINE S X=XMRG D SUM S XMLZ=XMSUM=$P(XMLY,U,2) G RL2
"RTN","XML1CRC",38,0)
 S XMLZ=0 I +XMLY=(XMLINE-1),XMLINE'=1 D BUFLUSH W +XMLY,U,XMLACK,$C(13) G RL
"RTN","XML1CRC",39,0)
RL2 S XMLAN=XMLINE_U_$S(XMLZ:XMLACK,1:XMLNAK) D BUFLUSH W XMLAN,$C(13)
"RTN","XML1CRC",40,0)
 G SRQ:XMLZ,RL
"RTN","XML1CRC",41,0)
SRINIT ;
"RTN","XML1CRC",42,0)
 S XMLINE=$S('$D(XMLINE):1,1:XMLINE+1),XMLACK="ACK",XMLNAK="NAK"
"RTN","XML1CRC",43,0)
 S XMLENQ=$C(9)_"ENQ"_$C(9),XMLERR=$C(9)_"ERROR"_$C(9)
"RTN","XML1CRC",44,0)
 S XMLER=-1 ;soft error count
"RTN","XML1CRC",45,0)
 S XMLMAXER=5 ;maximum allowable soft errors
"RTN","XML1CRC",46,0)
 S XMLTIME=30 ;length of READ time
"RTN","XML1CRC",47,0)
 S ER=0 ;non-recoverable error flag
"RTN","XML1CRC",48,0)
 Q
"RTN","XML1CRC",49,0)
NEWSTRAT ;machines have various loads
"RTN","XML1CRC",50,0)
 I XMLMAXER=5 S ER=1 Q  ;already tried new strategy, give up.
"RTN","XML1CRC",51,0)
 S XMTLER=$S('$D(XMTLER):XMLER,1:XMTLER+XMLER),XMLER=0 ;add to total
"RTN","XML1CRC",52,0)
 S XMLMAXER=5 ;reduce allowable soft errors
"RTN","XML1CRC",53,0)
 S XMLTIME=30 ;increase the READ time
"RTN","XML1CRC",54,0)
 Q
"RTN","XML1CRC",55,0)
SRQ ;Exit from Send/Receive
"RTN","XML1CRC",56,0)
 S XMTLER=$S('$D(XMTLER):XMLER,1:XMTLER+XMLER) ;Total errors
"RTN","XML1CRC",57,0)
 K XMLACK,XMLNAK,XMLENQ,XMLERR,XMLMAXER,XMLTIME,XMLX,XMLY,XMLZ
"RTN","XML1CRC",58,0)
 Q
"RTN","XML1CRC",59,0)
BUFLUSH ;Flush any characters out of the buffer
"RTN","XML1CRC",60,0)
 Q:'$D(XMBFLUSH)
"RTN","XML1CRC",61,0)
 X ^%ZOSF("TRMON") S X=$P($H,",",2) F %=1:1 R %:0 Q:'$T  S %=$P($H,",",2) S:%<X %=%+86400 Q:%-X>15
"RTN","XML1CRC",62,0)
 X ^%ZOSF("TRMOFF") Q
"RTN","XML1CRC",63,0)
SUM ;Calculate checksum
"RTN","XML1CRC",64,0)
 I '$D(XMOS) D LPC^XMLSWP0
"RTN","XML1CRC",65,0)
 I $D(XMOS(0)) X XMOS(0) S XMSUM=Y Q
"RTN","XML1CRC",66,0)
 I XMOS["VAX DSM" X "S XMSUM=$ZC(%LPC,X)" Q
"RTN","XML1CRC",67,0)
 I XMOS["DSM" X "S XMSUM=$ZC(LPC,X)" Q
"RTN","XML1CRC",68,0)
 I XMOS["M/11"!(XMOS["M/VX") X "S XMSUM=$ZC(X)" Q
"RTN","XML1CRC",69,0)
 S XMSUM=$A(X) Q:$L(X)=1  S I=1
"RTN","XML1CRC",70,0)
A S I=I+1 I $L(X)<I K %,%0,%1 S XMSUM=XMSUM+$L(X)*$L(X) Q
"RTN","XML1CRC",71,0)
 S Y=$A(X,I) F %=256:0 Q:%\4<Y  S %=%\2
"RTN","XML1CRC",72,0)
B S %0=XMSUM#%,%=%\2 G A:%=0 S %0=%0\%,%1=Y\% I %1=1 S Y=Y-%
"RTN","XML1CRC",73,0)
 G B:%1+%0=0 I %1'=%0 S:%0=0 XMSUM=XMSUM+% G B
"RTN","XML1CRC",74,0)
 G B:%0=0 S XMSUM=XMSUM-%
"RTN","XML1CRC",75,0)
 G B
"RTN","XML4CRC")
0^4^B19995633
"RTN","XML4CRC",1,0)
XML4CRC ;(WASH ISC)/RFJ-Block Mode Protocol ;03/27/2002  15:47
"RTN","XML4CRC",2,0)
 ;;8.0;MailMan;**45**;Jun 28, 2002;Build 9
"RTN","XML4CRC",3,0)
SEND ;Sender
"RTN","XML4CRC",4,0)
 S %=1 D PROG G SEND^XML4CRC1:'$D(XMBLOCK)!'$D(J),SEND^XML4CRC1:J<1
"RTN","XML4CRC",5,0)
 S:'$D(XMLBTSUM) XMLBTSUM=0,XML4S(0)=0 I '$D(XML4S)!'$D(XMLBCHR) D SINIT Q:ER  S XMLBER=0
"RTN","XML4CRC",6,0)
 I XMSG'?.ANP S X=XMSG,XMSG="" F %=1:1:$L(X) S:$E(X,%)'?1C!($A(X,%)=9) XMSG=XMSG_$E(X,%)
"RTN","XML4CRC",7,0)
 S XMSG=XMSG_XMLBCHR,X=XMSG D SUM,BUFLUSH
"RTN","XML4CRC",8,0)
 W XMSG,$C(13)
"RTN","XML4CRC",9,0)
 S XMLBTSUM=XMLBTSUM+XMSUM,XMLINE=XMLINE+1,XMLCC=XMLCC+$L(XMSG)
"RTN","XML4CRC",10,0)
 I XMLINE#4=0 H 1
"RTN","XML4CRC",11,0)
 D PAUSE S %=1,XML4S(0)=XML4S(0)+1 I $S(XML4S(0)#XML4S=0:1,'$D(XML4END):0,XMS0AJ'<XML4END:1,1:0) S %=1 D STAT,SCHECK S XMLBTSUM=0,XML4S(0)=0 Q
"RTN","XML4CRC",12,0)
 I '$D(XML4END) S XMLBVAR=$O(^XMB(3.9,XMZ,2,XMS0AJ)) I XMLBVAR<1 D SCHECK S XMLBTSUM=0,XML4S(0)=0
"RTN","XML4CRC",13,0)
 Q
"RTN","XML4CRC",14,0)
SINIT ;
"RTN","XML4CRC",15,0)
 D BLSIZE,LAST I '$D(XMLCC) S XMLCC=0
"RTN","XML4CRC",16,0)
 S XMLBPAUS=1,XMLBNAK="NAK",XMLBACK="ACK",XMLBCHR=$C(42),XMLBCHR1=$C(42)_$C(126),XMLBMER=4,XMLBTIME=90,XMLBTSUM=0,ER=0,XMLBER=0,XMLBCHR2=$C(126)_$C(42)_$C(126),XMLBSTRT="0^0",X="HELO BMP"_U_XMLBMER D SUM
"RTN","XML4CRC",17,0)
SBLSZ S XMLINE=XMLINE+1 W X,XMLBCHR1,XMSUM,$C(13) R %:XMLBTIME
"RTN","XML4CRC",18,0)
 I %[XMLBACK S X=% Q
"RTN","XML4CRC",19,0)
 D SBERROR S XMLBPAUS=XMLBPAUS+10 G SBLSZ:XMLBPAUS<1000 S X=% G ER
"RTN","XML4CRC",20,0)
SCHECK ;Sender check block sum
"RTN","XML4CRC",21,0)
 S XMLINE=XMLINE+1,XMTRAN="Sent Checksum" D T W XMLBCHR2,U,J,U,XMLBTSUM,U,XMLINE,$C(13) R X:XMLBTIME E  G ER
"RTN","XML4CRC",22,0)
 I X[XMLBACK S XMLBER=0,XMLBSTRT=XMS0AJ_U_J D BLSIZE Q
"RTN","XML4CRC",23,0)
 I X[XMLBNAK D ERROR Q:ER  S XMS0AJ=+XMLBSTRT,J=+$P(XMLBSTRT,U,2),XMTRAN="Rec'd NAK" D T S:XML4S>2 XML4S=XML4S\2 Q
"RTN","XML4CRC",24,0)
ER D ER1 Q
"RTN","XML4CRC",25,0)
ER1 N % S %=0
"RTN","XML4CRC",26,0)
ER2 S XMTRAN="Rec'd "_$G(X) D T R X:9 I $T S %=$G(%)+1 I %<99 G ER2:$T
"RTN","XML4CRC",27,0)
 S ER=1 K XMBLOCK Q
"RTN","XML4CRC",28,0)
SBERROR ;
"RTN","XML4CRC",29,0)
 N X D ERROR Q
"RTN","XML4CRC",30,0)
REC ;Receiver
"RTN","XML4CRC",31,0)
 I '$D(XMLBMER) D RINIT S XMLIN=0 Q
"RTN","XML4CRC",32,0)
 I XMLBCHR2_"^"=$E(XMRG,1,4) S %=2 D STAT,RCHECK S XMLBTSUM=0 Q
"RTN","XML4CRC",33,0)
 S X=XMRG D SUM S XMLBTSUM=XMLBTSUM+XMSUM,XMRG=$E(XMRG,1,($L(XMRG)-1)),XMLBMSG=XMRG Q
"RTN","XML4CRC",34,0)
RINIT ;
"RTN","XML4CRC",35,0)
 S XMLBPAUS=0,XMLBER=0,XMLBMER=4,XMLBTIME=15,XMLBNAK="NAK",XMLBACK="ACK",XMLBCHR=$C(42),XMLBCHR1=$C(42)_$C(126),XMLBCHR2=$C(126)_$C(42)_$C(126),XMLBLINE=XMLIN,XMLBTSUM=0,XMLBMSG="",XMLBSTRT=XMLIN-1,XML4S(0)=0,XML4S=0
"RTN","XML4CRC",36,0)
 S X=$P(XMRG,XMLBCHR1,1) D SUM I XMSUM=$P(XMRG,XMLBCHR1,2) S XMLBMER=$P(X,U,2),XMLBER=0 W XMLBACK,$C(13) Q
"RTN","XML4CRC",37,0)
 W XMLBNAK,$C(13) D ERROR K XMLBMER Q
"RTN","XML4CRC",38,0)
RCHECK ;Check block sum
"RTN","XML4CRC",39,0)
 I XMLBTSUM=0,XML4S(0)=0 G REC^XML4CRC1
"RTN","XML4CRC",40,0)
 S XMLINE=$P(XMRG,U,4),XMLIN=XMLIN-1,XMRG=$P(XMRG,U,2,3),X=XMLIN_U_XMLBTSUM I XMRG=X W XMLBACK,$C(13) S XMLBER=0,XMRG=XMLBMSG,XMLBSTRT=XMLIN Q
"RTN","XML4CRC",41,0)
 W XMLBNAK,$C(13) S XMLIN=XMLBSTRT,XMRG=$S($D(^XMB(3.9,XMZ,2,XMLIN,0)):^(0),1:""),XMTRAN="NAK'd block" D ERROR,T Q
"RTN","XML4CRC",42,0)
ERROR ;Log error, new delay factor
"RTN","XML4CRC",43,0)
 D BUFLUSH S XMLBER=XMLBER+1,XMTLER=XMTLER+1 S:XMTLER#XMLBMER=0 XMLBPAUS=XMLBPAUS*2 D:XMLBPAUS>1000 END Q
"RTN","XML4CRC",44,0)
BUFLUSH ;Flush any characters out of the buffer
"RTN","XML4CRC",45,0)
 Q:'$D(XMBFLUSH)
"RTN","XML4CRC",46,0)
 X ^%ZOSF("TRMON") S X=$P($H,",",2) F %=1:1 R %:0 Q:'$T  S %=$P($H,",",2) S:%<X %=%+86400 Q:%-X>15
"RTN","XML4CRC",47,0)
 X ^%ZOSF("TRMOFF") Q
"RTN","XML4CRC",48,0)
PAUSE ;Delay
"RTN","XML4CRC",49,0)
 F %=1:1:XMLBPAUS
"RTN","XML4CRC",50,0)
 Q
"RTN","XML4CRC",51,0)
PROG ;Statistics
"RTN","XML4CRC",52,0)
 S %1=$S(%=1:$S('$D(XMSG):0,1:$L(XMSG)),1:$S($D(XMRG):$L(XMRG),1:0)),XMLCT=$S($D(XMLCT):XMLCT+%1,1:%1)
"RTN","XML4CRC",53,0)
 Q
"RTN","XML4CRC",54,0)
STAT Q:$S('$D(XMINST):1,'$L(XMINST):1,1:0)
"RTN","XML4CRC",55,0)
 S %1=$H_U_$S($D(XMZ):XMZ,1:"")_U_XMLINE_U_$S($D(XMTLER):XMTLER+XMLER-1,1:XMLER-1)_U_$J(XMLCC/($H-XMLBTST*86400+($P($H,",",2)-$P(XMLBTST,",",2))),0,2)_U_IO_" "_XMPROT
"RTN","XML4CRC",56,0)
 S %0=$S($D(^XMBS(4.2999,XMINST,3))#10:^(3),1:""),$P(%0,U,1,6)=%1,^(3)=%0,XMLCT=0,XMLL=XMLINE,XMLT=$P($H,",",2)
"RTN","XML4CRC",57,0)
 K %,%1,%0 Q
"RTN","XML4CRC",58,0)
BLSIZE ;block size
"RTN","XML4CRC",59,0)
 S XML4S=$S($D(XML4S)#10=0:100,XML4S*2<100:XML4S*2,1:100),XML4S(0)=0 Q
"RTN","XML4CRC",60,0)
LAST ;FIND LAST LINE
"RTN","XML4CRC",61,0)
 K XML4END S %=$P(^XMB(3.9,XMZ,2,0),U,3) I '% S %=^(0,0,99999999),%=$P(%,U,$L(%,U)-1)
"RTN","XML4CRC",62,0)
 Q:'$D(^XMB(3.9,XMZ,2,%))  F %=%-1:0 S Y=$O(^(%)) Q:Y=""  S %=Y
"RTN","XML4CRC",63,0)
 S XML4END=% Q
"RTN","XML4CRC",64,0)
SUM ;Calculate Checksum
"RTN","XML4CRC",65,0)
 I '$D(XMOS) D LPC^XMLSWP0
"RTN","XML4CRC",66,0)
 I $D(XMOS(0)) X XMOS(0) Q
"RTN","XML4CRC",67,0)
 I XMOS["VAX DSM" X "S XMSUM=$ZC(%LPC,X)+$L(X)*$L(X)" Q
"RTN","XML4CRC",68,0)
 I XMOS["DSM" X "S XMSUM=$ZC(LPC,X)+$L(X)*$L(X)" Q
"RTN","XML4CRC",69,0)
 I XMOS["M/11"!(XMOS["M/VX") X "S XMSUM=$ZC(X)+$L(X)*$L(X)" Q
"RTN","XML4CRC",70,0)
 S XMSUM=0 Q
"RTN","XML4CRC",71,0)
KILL ;Kill variables
"RTN","XML4CRC",72,0)
 K XMBLOCK,XMLBTSUM,XML4S,XMLBER,XMLBCHR,XMLBCHR1,XMLBCHR2,XMLBVAR,XMLBPAUS,XMLBNAK,XMLBACK,XMLBMER,XMLBTIME,XMLBSTRT,XMLBLINE,XMLBMSG Q
"RTN","XML4CRC",73,0)
END ;Errors/Quit.
"RTN","XML4CRC",74,0)
 G ER
"RTN","XML4CRC",75,0)
T D TRAN^XMC1 Q
"RTN","XML4CRC1")
0^5^B12862513
"RTN","XML4CRC1",1,0)
XML4CRC1 ;(WASH ISC)/RFJ-Block Mode Protocol ;04/17/2002  10:57
"RTN","XML4CRC1",2,0)
 ;;8.0;MailMan;**45**;Jun 28, 2002;Build 9
"RTN","XML4CRC1",3,0)
OPEN D GET,OP
"RTN","XML4CRC1",4,0)
 S:'$D(XMESC) XMESC=$C(126) S:'$D(XMFS) XMFS=255 S:'$D(XM) XM="" S (XMSSQ,XMRSQ)=1 Q
"RTN","XML4CRC1",5,0)
GET S X=XMCHAN,DIC="^DIC(3.4,",DIC(0)="Z" D ^DIC S XMCHAN=+Y
"RTN","XML4CRC1",6,0)
 I '$D(^DIC(3.4,XMCHAN,0)) S ER=1,Y="Invalid channel" Q
"RTN","XML4CRC1",7,0)
G2 S XMPROT=$P(^DIC(3.4,XMCHAN,0),U,1)
"RTN","XML4CRC1",8,0)
 F X=1:1:4 S @($P("XMSEN^XMREC^XMOPEN^XMCLOSE",U,X))=$S($D(^(X)):^(X),1:"Q")
"RTN","XML4CRC1",9,0)
 Q
"RTN","XML4CRC1",10,0)
OP I $D(XMOPEN) X:$L(XMOPEN) XMOPEN
"RTN","XML4CRC1",11,0)
 I '$D(XMQUIET) S X=255 X ^%ZOSF("RM")
"RTN","XML4CRC1",12,0)
 Q
"RTN","XML4CRC1",13,0)
C X ^%ZOSF("EON")
"RTN","XML4CRC1",14,0)
 I $D(XMCLOSE) X:$L(XMCLOSE) XMCLOSE
"RTN","XML4CRC1",15,0)
 Q
"RTN","XML4CRC1",16,0)
SEND ;Sends XMSG, returns ER=0 or 1, and XMLER=number of "soft" errors
"RTN","XML4CRC1",17,0)
 I $L(XMSG)>255 S XMLER=0,ER=1 G SRQ
"RTN","XML4CRC1",18,0)
 I XMSG'?.ANP S X=XMSG,XMSG="" F %=1:1:$L(X) S:$E(X,%)'?1C!($A(X,%)=9) XMSG=XMSG_$E(X,%)
"RTN","XML4CRC1",19,0)
 D SRINIT S X=XMSG,XMLCC=XMLCC+$L(XMSG) D SUM
"RTN","XML4CRC1",20,0)
SL S XMLER=XMLER+1 I (XMLER+1)>XMLMAXER D NEWSTRAT
"RTN","XML4CRC1",21,0)
 I ER W XMLERR,$C(13) G SRQ
"RTN","XML4CRC1",22,0)
 D BUFLUSH W XMSG,$C(13) W XMLINE,U,XMSUM,$C(13) R XMLX:XMLTIME G:XMLX=(XMLINE_U_XMLACK) SRQ
"RTN","XML4CRC1",23,0)
 S XMLY=XMLX=(XMLINE_U_XMLNAK),XMLZ=0 D:'XMLY ENQ G SL:XMLY,SRQ
"RTN","XML4CRC1",24,0)
ENQ ;Assume the ACK/NAK was garbled by noise and try to re-establish contact
"RTN","XML4CRC1",25,0)
 S XMLZ=XMLZ+1 I XMLZ>XMLMAXER S (ER,XMLY)=1 Q
"RTN","XML4CRC1",26,0)
 D BUFLUSH W XMLENQ,$C(13) R XMLX:XMLTIME Q:XMLX=(XMLINE_U_XMLACK)
"RTN","XML4CRC1",27,0)
 I XMLX[XMLACK!(XMLX[XMLNAK),+XMLX=XMLINE!(+XMLX=XMLINE-1) S XMLY=1 Q
"RTN","XML4CRC1",28,0)
 H 1 G ENQ
"RTN","XML4CRC1",29,0)
REC ;Receives XMRG, returns ER=0 or 1, and XMLER=number of "soft" errors
"RTN","XML4CRC1",30,0)
 D SRINIT S:'$D(XMLAN) XMLAN=XMLINE_U_XMLNAK
"RTN","XML4CRC1",31,0)
RL S XMLER=XMLER+1 I (XMLER+1)>XMLMAXER D NEWSTRAT I ER=1 G SRQ
"RTN","XML4CRC1",32,0)
 R XMRG#255:$S($D(XMSTIME):XMSTIME,1:XMLTIME) S XMLCC=$S('$D(XMLCC):$L(XMRG),1:XMLCC+$L(XMRG)),XMLZ=$S('$T:-1,XMRG=XMLENQ:0,XMRG=XMLERR:2,1:1),%=2
"RTN","XML4CRC1",33,0)
 S %=2 D PROG^XML4CRC I $D(XMLIN),XMLIN'<1 G REC^XML4CRC:XMRG["*"
"RTN","XML4CRC1",34,0)
 S ER=XMLZ=2 G:XMLZ>1 SRQ I XMLZ<1 D BUFLUSH W XMLAN,$C(13) G RL
"RTN","XML4CRC1",35,0)
 R XMLY:XMLTIME I +XMLY=XMLINE S X=XMRG D SUM S XMLZ=XMSUM=$P(XMLY,U,2) G RL2
"RTN","XML4CRC1",36,0)
 S XMLZ=0 I +XMLY=(XMLINE-1),XMLINE'=1 D BUFLUSH W +XMLY,U,XMLACK,$C(13) G RL
"RTN","XML4CRC1",37,0)
RL2 D:$D(XMLBMER) KILL^XML4CRC S XMLAN=XMLINE_U_$S(XMLZ:XMLACK,1:XMLNAK) D BUFLUSH W XMLAN,$C(13)
"RTN","XML4CRC1",38,0)
 G SRQ:XMLZ,RL
"RTN","XML4CRC1",39,0)
SRINIT ;Initialize variables for Send/Receive
"RTN","XML4CRC1",40,0)
 I '$D(XMLBTST) S XMLBTST=+$H_","_($P($H,",",2)-.001),XMLCC=0 ;Time stamp when message started
"RTN","XML4CRC1",41,0)
 S XMLINE=$S('$D(XMLINE):1,1:XMLINE+1),XMLACK="ACK",XMLNAK="NAK"
"RTN","XML4CRC1",42,0)
 S XMLENQ=$C(9)_"ENQ"_$C(9),XMLERR=$C(9)_"ERROR"_$C(9)
"RTN","XML4CRC1",43,0)
 S XMLER=-1 ;soft error count
"RTN","XML4CRC1",44,0)
 S XMLMAXER=5 ;maximum allowable soft errors
"RTN","XML4CRC1",45,0)
 S XMLTIME=10 ;length of READ time
"RTN","XML4CRC1",46,0)
 S ER=0 ;non-recoverable error flag
"RTN","XML4CRC1",47,0)
 Q
"RTN","XML4CRC1",48,0)
NEWSTRAT ;Select new strategy, one or both machines may be slow
"RTN","XML4CRC1",49,0)
 I XMLMAXER=5 S ER=1 Q  ;already tried new strategy, give up.
"RTN","XML4CRC1",50,0)
 S XMTLER=$S('$D(XMTLER):XMLER,1:XMTLER+XMLER),XMLER=0 ;add to total
"RTN","XML4CRC1",51,0)
 S XMLMAXER=5 ;reduce allowable soft errors
"RTN","XML4CRC1",52,0)
 S XMLTIME=30 ;increase the READ time
"RTN","XML4CRC1",53,0)
 Q
"RTN","XML4CRC1",54,0)
SRQ ;Exit from Send/Receive
"RTN","XML4CRC1",55,0)
 S XMTLER=$S('$D(XMTLER):XMLER,1:XMTLER+XMLER) ;Total errors
"RTN","XML4CRC1",56,0)
 K XMLACK,XMLNAK,XMLENQ,XMLERR,XMLMAXER,XMLTIME,XMLX,XMLY,XMLZ
"RTN","XML4CRC1",57,0)
 Q
"RTN","XML4CRC1",58,0)
BUFLUSH ;Flush any characters out of the buffer
"RTN","XML4CRC1",59,0)
 Q:'$D(XMBFLUSH)
"RTN","XML4CRC1",60,0)
 X ^%ZOSF("TRMON") S X=$P($H,",",2) F %=1:1 R %:0 Q:'$T  S %=$P($H,",",2) S:%<X %=%+86400 Q:%-X>15
"RTN","XML4CRC1",61,0)
 X ^%ZOSF("TRMOFF") Q
"RTN","XML4CRC1",62,0)
SUM ;Calculate checksum, accounting also for the character's position
"RTN","XML4CRC1",63,0)
 I '$D(XMOS) D LPC^XMLSWP0
"RTN","XML4CRC1",64,0)
 I $D(XMOS(0)) X XMOS(0) Q
"RTN","XML4CRC1",65,0)
 I XMOS["VAX DSM" X "S XMSUM=$ZC(%LPC,X)+$L(X)*$L(X)" Q
"RTN","XML4CRC1",66,0)
 I XMOS["DSM" X "S XMSUM=$ZC(LPC,X)+$L(X)*$L(X)" Q
"RTN","XML4CRC1",67,0)
 I XMOS["M/11"!(XMOS["M/VX") X "S XMSUM=$ZC(X)+$L(X)*$L(X)" Q
"RTN","XML4CRC1",68,0)
 S XMSUM=0 F %=1:1:$L(X) S XMSUM=XMSUM+($A(X,%)*%)
"RTN","XML4CRC1",69,0)
 Q
"RTN","XMLSWP")
0^6^B10332361
"RTN","XMLSWP",1,0)
XMLSWP ;(WASH ISC)/CAP-Sliding Window Protocol ;04/17/2002  10:58
"RTN","XMLSWP",2,0)
 ;;8.0;MailMan;**45**;Jun 28, 2002;Build 9
"RTN","XMLSWP",3,0)
SEND ;
"RTN","XMLSWP",4,0)
 S X=1 G I^XMLSWP0
"RTN","XMLSWP",5,0)
1 ;I $L(XMSG)>245 G E
"RTN","XMLSWP",6,0)
 I XMSG'?.ANP F %=1:1:$L(XMSG) I $E(XMSG,%)?1C,$A(XMSG,%)'=9 S XMSG=$E(XMSG,1,%-1)_$E(XMSG,%+1,999) Q:XMSG?.ANP  S %=%-1
"RTN","XMLSWP",7,0)
 S C=C+$L(XMSG),F=0 I G S A=A+1,XMLIN=$S(J<1:"",1:XMLIN\1+1),(M,B(1))=0,XMLCT=$S($D(XMLCT):XMLCT+$L(XMSG),1:$L(XMSG))
"RTN","XMLSWP",8,0)
D S I=$S('G:"",1:XMLIN),X=XMSG D SUM S Q=I_U_S_"^~^^"_$S(XMSG=".":"<<END~OF~FILE>>",1:"") D CHK S $P(Q,U,4)=S
"RTN","XMLSWP",9,0)
 W X_$C(13),Q_$C(13) S D=X X P("S")
"RTN","XMLSWP",10,0)
 I G,I'="" S W(I,0)=J,W(I,1)=$P(Q,U,2),W(I,2)=Q
"RTN","XMLSWP",11,0)
 I $D(XMINST),$L(XMINST),$S(I<100&(I#20=0):1,I#100=0:1,I<1:1,B(1):1,'J:1,1:0) D PROGS^XMLSWP2
"RTN","XMLSWP",12,0)
 ;
"RTN","XMLSWP",13,0)
C G Q:$S(ER:1,1:0) I G,$D(XMLIN),XMLIN G W
"RTN","XMLSWP",14,0)
2 I G,XMLIN,'$O(W(0)) G Q:J<1!'J,W
"RTN","XMLSWP",15,0)
 R X:$S('$D(XMLIN):30,XMLIN="":30,'G:30,W<8:9,1:5) E  S:M M=2 G U:'$L(X)
"RTN","XMLSWP",16,0)
 I X'?.".".N1"^"1N.N1"^~".E G:'G 1:X="!@~^NAK^~@!",C S G=G+1 G C:G<3,W
"RTN","XMLSWP",17,0)
 S D=X,$P(X,U,4)="" D SUM S X=D I S'=$P(X,U,4) G G:G S F=F+1 G 2:F<9,QQQ
"RTN","XMLSWP",18,0)
 S B=0 I X?1"!@~^"1N.N1"^~@!^"1N.N1"^Resynch" S D=X,B=0 X P("R") S Y=X G G2
"RTN","XMLSWP",19,0)
 I $S('$D(XMLIN):1,XMLIN="":1,'G:1,1:0) G Q:X=Q S F=F+1 G 2:F<9,QQQ
"RTN","XMLSWP",20,0)
3 I '$D(W(+X)) G G9:M="END",W
"RTN","XMLSWP",21,0)
 I W(+X,1)-$P(X,U,2)'=0 S D="BAD Acknowledgement" X P("I") G R
"RTN","XMLSWP",22,0)
 I $O(W(0))=+X D K S G=1 G G9:M="END",W:'M,C
"RTN","XMLSWP",23,0)
 I $D(W(+X)) D K S G=G+1 S:W<G W=$S(W-4>6:W-4,W>6:6,1:W),V=0 G G:W<G I W*2<G S G=1 G R
"RTN","XMLSWP",24,0)
 I $O(W(0)) S G=G+1 G G9:M="END",G:'M,C:M=1 I W*2<G S G=1 G G
"RTN","XMLSWP",25,0)
W I $S(W<5&(W*2<A):1,W/2+W<A:1,1:0) G 2
"RTN","XMLSWP",26,0)
 I $D(Z),$P(Z,U)="@" G G9:Z="@^1" S M=0,Z=Z_"^1" G G9
"RTN","XMLSWP",27,0)
 S J=$O(^XMB(3.9,XMZ,2,J)) I J S XMSG=^(J,0) G 1:$E(XMSG)'="." S XMSG="."_XMSG G 1
"RTN","XMLSWP",28,0)
 S Z="@" G C
"RTN","XMLSWP",29,0)
E D E^XMLSWP0
"RTN","XMLSWP",30,0)
QQQ G QQQ^XMLSWP2
"RTN","XMLSWP",31,0)
QQ G QQ^XMLSWP2
"RTN","XMLSWP",32,0)
Q G Q^XMLSWP2
"RTN","XMLSWP",33,0)
R G R^XMLSWP2
"RTN","XMLSWP",34,0)
 ;ACK
"RTN","XMLSWP",35,0)
K S V=V+1 I $D(W(+X)) S A=A-1 K W(+X)
"RTN","XMLSWP",36,0)
 Q:$S(W<5&(W*2>V):1,W>4&(W*3>V):1,1:0)
"RTN","XMLSWP",37,0)
 S V=0 I $D(IOST),$E(IOST,1,6)="C-MINI" S W=$S(W<8:8,W<9:10,W<12:12,1:W)
"RTN","XMLSWP",38,0)
 E  S W=$S(W<4:4,1:5)
"RTN","XMLSWP",39,0)
 Q
"RTN","XMLSWP",40,0)
 ;Timeout
"RTN","XMLSWP",41,0)
U S B(1)=B(1)+1,D="Time-out ["_B(1)_"]" X P("I") I B(1)<$S(G:4,1:2) G:'$O(W(0)) W:G,D S I=XMLIN G R:A>W,W:G,D
"RTN","XMLSWP",42,0)
 G E
"RTN","XMLSWP",43,0)
CHK N X S X=Q
"RTN","XMLSWP",44,0)
SUM ;Calculate S=checksum
"RTN","XMLSWP",45,0)
 I $D(XMOS(0)) X XMOS(0) S S=XMSUM Q
"RTN","XMLSWP",46,0)
 I XMOS["VAX DSM" X "S S=$ZC(%LPC,X)+$L(X)*$L(X)" Q
"RTN","XMLSWP",47,0)
 I XMOS["DSM" X "S S=$ZC(LPC,X)+$L(X)*$L(X)" Q
"RTN","XMLSWP",48,0)
 I XMOS["M/11"!(XMOS["M/VX") X "S S=$ZC(X)+$L(X)*$L(X)" Q
"RTN","XMLSWP",49,0)
 G ZSUM^XMLSWP0
"RTN","XMLSWP",50,0)
 ;RE-SYNCH Sender
"RTN","XMLSWP",51,0)
G S (B,XMLSWPQ,M)=0 I M,'$O(W(0)) G W
"RTN","XMLSWP",52,0)
 I M'=1 G W:'$O(W(0)) S M=1 G 2
"RTN","XMLSWP",53,0)
G0 S XMLSWPQ=$G(XMLSWPQ)+1 R Y:(9+B) G:'$T G9:XMLSWPQ>20,G0 K XMLSWPQ I B>$S(M:3,1:33) G Q:'M,E
"RTN","XMLSWP",54,0)
 G G9:'$L(Y) S D=Y X P("R") I Y="A-OK" R Y:(9+B) G G9:Y="",G9:Y'="^432^~" F D=0:0 R Y:4 E  G R:$O(W(0)),QQ
"RTN","XMLSWP",55,0)
 G G1:Y?1"!@~^"1N.N1"^~@!^"1N.N1"^Resynch" I 'M S M=0 G G9:'$O(W(0)) S X=Y,M="END" G 3
"RTN","XMLSWP",56,0)
 G W:Y=O,G9
"RTN","XMLSWP",57,0)
G1 S (D,X)=Y,$P(X,U,4)="" D SUM G G9:S'=$P(D,U,4)
"RTN","XMLSWP",58,0)
G2 S D="Rec'r reqests "_$P(Y,U,2) X P("I") S B=0 G R:$O(W(0)),QQQ
"RTN","XMLSWP",59,0)
G9 S (D,X)=O,B=B+1 D SUM S X=U_S_"^~^^@@<<Ctrl-Packet>>" D SUM S $P(X,U,4)=S W O_$C(13)_X_$C(13) X P("S")
"RTN","XMLSWP",60,0)
 G G0
"RTN","XMLSWP0")
0^7^B10115149
"RTN","XMLSWP0",1,0)
XMLSWP0 ;(WASH ISC)/CAP-Sliding Window Protocol ;04/17/2002  10:59
"RTN","XMLSWP0",2,0)
 ;;8.0;MailMan;**45**;Jun 28, 2002;Build 9
"RTN","XMLSWP0",3,0)
REC ;SEE SEND
"RTN","XMLSWP0",4,0)
 S X=0 G I
"RTN","XMLSWP0",5,0)
RL ;
"RTN","XMLSWP0",6,0)
 R X:$S($D(XMSTIME):XMSTIME,1:15) S Z=$T,(XMRG,D)=X X P("R")
"RTN","XMLSWP0",7,0)
 I 'Z S B=B+1 G RL:B<3 S B=0,B(0)=$S($D(B(0)):B(0)+1,1:1) G:B(0)<4&G F:'M,RL D E G ER
"RTN","XMLSWP0",8,0)
 S (B,B(0))=0
"RTN","XMLSWP0",9,0)
Y S L=X D SUM I $D(XMLIN),XMLIN>1,X?1"..".E S (XMRG,X)=$E(X,2,999)
"RTN","XMLSWP0",10,0)
 R W:15 E  S B=B+1 G RL
"RTN","XMLSWP0",11,0)
 G Z:L'=".",Z:$P(W,U,2)'=47,Z:$P(W,U,5)'="<<END~OF~FILE>>"
"RTN","XMLSWP0",12,0)
 S (D,V)=1,F=0 I $O(W(0)) G F
"RTN","XMLSWP0",13,0)
V S XMRG="." K XMBLOCK F XMLIN=XMLIN+1:1 Q:'$D(^XMB(3.9,XMZ,2,XMLIN))
"RTN","XMLSWP0",14,0)
 D SEND Q:D  S F=F+1 G ER
"RTN","XMLSWP0",15,0)
Z S D=0 I W'?.".".N1"^"1N.N1"^~".E S (XMRG,X)=W G Y
"RTN","XMLSWP0",16,0)
 I S-$P(W,U,2)=0 S D=1 D SEND
"RTN","XMLSWP0",17,0)
 I D,L=O G F:$P(W,"@@",2)="<<Ctrl-Packet>>"
"RTN","XMLSWP0",18,0)
 I 'D G F:G S F=F+1,ER=1 Q:F>3  W "!@~^NAK^~@!",$C(13) S ER=0 G RL
"RTN","XMLSWP0",19,0)
 Q:'$D(XMLIN)!'+W  Q:XMLIN=0  S M=$S(L="QUIT":99,1:0),F=0
"RTN","XMLSWP0",20,0)
 I XMLIN>1,XMLIN+1-W'=0,W-XMLIN>0 F D=W-1:-1 Q:D<1!$D(^XMB(3.9,XMZ,2,D,0))  S W(D)=""
"RTN","XMLSWP0",21,0)
 S D=$S(1-W>0:XMLIN+.001,1:+W) S:D-XMLIN>0 XMLIN=+W K W(+W) I '$D(^XMB(3.9,XMZ,2,D,0)) S ^(0)=XMRG,C=C+$L(XMRG)
"RTN","XMLSWP0",22,0)
 I $D(XMINST),$L(XMINST) S I=XMLIN D P
"RTN","XMLSWP0",23,0)
 G W:XMLIN#10'=0,W:'$O(W(0)) D E S D="Didn't receive "_$O(W(0)) X P("I")
"RTN","XMLSWP0",24,0)
 G F
"RTN","XMLSWP0",25,0)
W G RL:'V,F:$O(W(0)),V
"RTN","XMLSWP0",26,0)
 ;
"RTN","XMLSWP0",27,0)
 ;QUIT control
"RTN","XMLSWP0",28,0)
E S F=F+1 S D="Errors ("_F_")" X P("I") Q
"RTN","XMLSWP0",29,0)
 Q
"RTN","XMLSWP0",30,0)
SUM ;Calculate S=checksum
"RTN","XMLSWP0",31,0)
 I $D(XMOS(0)) X XMOS(0) S S=XMSUM Q
"RTN","XMLSWP0",32,0)
 I XMOS["VAX DSM" X "S S=$ZC(%LPC,X)+$L(X)*$L(X)" Q
"RTN","XMLSWP0",33,0)
 I XMOS["DSM" X "S S=$ZC(LPC,X)+$L(X)*$L(X)" Q
"RTN","XMLSWP0",34,0)
 I XMOS["M/11"!(XMOS["M/VX") X "S S=$ZC(X)+$L(X)*$L(X)" Q
"RTN","XMLSWP0",35,0)
ZSUM S S=$A(X) Q:$L(X)=1  N J S J=1
"RTN","XMLSWP0",36,0)
A S J=J+1 I $L(X)<J K %,%0,%1 S S=S+$L(X)*$L(X) Q
"RTN","XMLSWP0",37,0)
 S Y=$A(X,J) F %=256:0 Q:%\4<Y  S %=%\2
"RTN","XMLSWP0",38,0)
B S %0=S#%,%=%\2 G A:%=0 S %0=%0\%,%1=Y\% I %1=1 S Y=Y-%
"RTN","XMLSWP0",39,0)
 G B:%1+%0=0 I %1'=%0 S:%0=0 S=S+% G B
"RTN","XMLSWP0",40,0)
 G B:%0=0 S S=S-%
"RTN","XMLSWP0",41,0)
 G B
"RTN","XMLSWP0",42,0)
P N G S G=1,XMLCT=$S($D(XMLCT):XMLCT+$L(XMRG),1:$L(XMRG)) Q:$S(XMLIN<100&(XMLIN#20'=0):1,XMLIN#100'=0:1,1:0)  G PROGR^XMLSWP2
"RTN","XMLSWP0",43,0)
I ;Initialize
"RTN","XMLSWP0",44,0)
 N %,A,B,C,D,E,F,G,I,L,M,O,P,Q,S,T,Y,Z
"RTN","XMLSWP0",45,0)
 I $D(XMS0AJ),XMS0AJ<1 N J S (XMLIN,J)=XMS0AJ
"RTN","XMLSWP0",46,0)
 F I=73,83,82 S P($C(I))="I $D(XMLD) S XMTRAN="_$C(34,I,58,32,34)_"_$E(D,1,240) D TRAN^XMLSWP2"
"RTN","XMLSWP0",47,0)
 K Z,W,M S ER=0,(A,B,B(0),B(1),C,E,F,G,M,Q,V)=0,(I,L)="",O="!@~^Resynch^~@!1545",W=$S($E(IOST,1,6)="C-MINI":2,1:1)*3,T=$H*86400+$P($H,",",2)-1
"RTN","XMLSWP0",48,0)
 I $D(XMBLOCK) G ER:'$D(XMS0AJ) S G=1,XMLIN=$S('$D(XMLIN):0,1:XMLIN),J=XMS0AJ G ER:XMTLER
"RTN","XMLSWP0",49,0)
 D LPC:'$D(XMOS) G 1^XMLSWP:X,RL
"RTN","XMLSWP0",50,0)
 ;
"RTN","XMLSWP0",51,0)
 ;RE-SYNCH Receiver
"RTN","XMLSWP0",52,0)
F I '$O(W(0)) W "A-OK"_$C(13)_"^432^~"_$C(13) G RL
"RTN","XMLSWP0",53,0)
 S (B(0),B)=0,M=50
"RTN","XMLSWP0",54,0)
 S (D,X)="!@~^"_+$O(W(0))_"^~@!^^Resynch" D SUM S $P(D,U,4)=S W D,$C(13) X P("S")
"RTN","XMLSWP0",55,0)
 G RL
"RTN","XMLSWP0",56,0)
ER S ER=1 Q
"RTN","XMLSWP0",57,0)
SEND S X=W,$P(X,U,4)="" D SUM I S=$P(W,U,4) Q:$P(W,"@@",2)="<<Ctrl-Packet>>"  W W_$C(13) Q
"RTN","XMLSWP0",58,0)
 S D=0 Q
"RTN","XMLSWP0",59,0)
LPC ;GET CORRECT LPC checksum information
"RTN","XMLSWP0",60,0)
 S XMOS=$S($D(^%ZOSF("OS")):^("OS"),1:0) I $D(^("LPC")) S XMOS(0)=^("LPC")
"RTN","XMLSWP0",61,0)
 I '$D(XMOS(0)),$D(^XMB(1,1,"LPC")) S XMOS(0)=^("LPC")
"RTN","XMLSWP0",62,0)
 I $D(XMOS(0)) S XMOS(0)=XMOS(0)_",XMSUM=Y+$L(X)*$L(X)"
"RTN","XMLSWP0",63,0)
 Q
"RTN","XMTDO")
0^2^B5148040
"RTN","XMTDO",1,0)
XMTDO ;ISC-SF/GMB-Deliver other (server,device) ;04/11/2002  07:05
"RTN","XMTDO",2,0)
 ;;8.0;MailMan;**45**;Jun 28, 2002;Build 9
"RTN","XMTDO",3,0)
 ; Replaces ZSER^, ZDEV^XMS1 (ISC-WASH/THM/CAP)
"RTN","XMTDO",4,0)
 ;
"RTN","XMTDO",5,0)
 ; Patch mod to attempt to sync mail message arrival with processing
"RTN","XMTDO",6,0)
 ; by building in 5 minute pause waiting for next mail msg line to
"RTN","XMTDO",7,0)
 ; arrive, and, if not, then xm send error server msg 
"RTN","XMTDO",8,0)
 ;
"RTN","XMTDO",9,0)
SERVER ; S.server TASKMAN ENTRY
"RTN","XMTDO",10,0)
 ; Variables supplied by TaskMan:  XMZ,XMSERVER,XMSVIENS
"RTN","XMTDO",11,0)
 ; XMSERVER  Name of the server option (includes leading S.)
"RTN","XMTDO",12,0)
 N XMZREC,XMFROM,XMSERR,XMSUBJ,XMZI
"RTN","XMTDO",13,0)
 D DUZ^XUP(.5)
"RTN","XMTDO",14,0)
 F XMZI=1:1 S XMZREC=$G(^XMB(3.9,XMZ,0)) Q:XMZREC'=""  H 1 I XMZI>300 D  Q   ;patch mod for timing lag with mail msg
"RTN","XMTDO",15,0)
 . N XMPARM,XMINSTR
"RTN","XMTDO",16,0)
 . S XMINSTR("FROM")=.5
"RTN","XMTDO",17,0)
 . S XMPARM(1)=XMSERVER
"RTN","XMTDO",18,0)
 . S XMPARM(2)=ZTSK
"RTN","XMTDO",19,0)
 . D TASKBULL^XMXBULL(.5,"XM SEND ERR SERVER MSG",.XMPARM,"",.5,.XMINSTR)
"RTN","XMTDO",20,0)
 Q:XMZREC=""     ;patch mode to quit if mail msg lag check occurs in for loop waiting for next line
"RTN","XMTDO",21,0)
 S XMSUBJ=$P(XMZREC,U,1)
"RTN","XMTDO",22,0)
 S:XMSUBJ["~U~" XMSUB=$$DECODEUP^XMXUTIL1(XMSUBJ)
"RTN","XMTDO",23,0)
 S XMFROM=$P(XMZREC,U,2)
"RTN","XMTDO",24,0)
 S:XMFROM["@" XMFROM=$$REPLYTO1^XMXREPLY(XMZ)
"RTN","XMTDO",25,0)
 D SETSTAT(XMSVIENS,$$EZBLD^DIALOG(39300)) ; Server hand off ready
"RTN","XMTDO",26,0)
 D DOSERV($E(XMSERVER,3,99),XMZ,XMFROM,XMSUBJ,.XMSERR)
"RTN","XMTDO",27,0)
 D SETSTAT(XMSVIENS,$S($D(XMSERR):XMSERR,1:$$EZBLD^DIALOG(39301))) ; Served (hand off done)
"RTN","XMTDO",28,0)
 S ZTREQ="@"
"RTN","XMTDO",29,0)
 Q
"RTN","XMTDO",30,0)
DOSERV(XMXX,XMZ,XMFROM,XMSUBJ,XQSRVOK) ;
"RTN","XMTDO",31,0)
 N XMCHAN,XMPROT,X,Y,XMSEN,XMREC,XMOPEN,XMCLOSE,XMSVIENS
"RTN","XMTDO",32,0)
 S XMCHAN="SERVER"
"RTN","XMTDO",33,0)
 D GET^XML
"RTN","XMTDO",34,0)
 S X=XMXX_U_XMZ_U_XMFROM_U_XMSUBJ
"RTN","XMTDO",35,0)
 D ^XQSRV
"RTN","XMTDO",36,0)
 ; ^XQSRV1 calls SETSB^XMA1C to put the msg in the postmaster's bskt.
"RTN","XMTDO",37,0)
 ; Instead, that line could read:
"RTN","XMTDO",38,0)
 ; D:XQSRV PUTSERV^XMXMSGS1(XQSOP,XQMSG)
"RTN","XMTDO",39,0)
 Q
"RTN","XMTDO",40,0)
DEVICE ; D.device or H.device TASKMAN ENTRY
"RTN","XMTDO",41,0)
 ; Variables supplied by TaskMan:  XMDUZ,XMZ,XMDVIENS,XMPRTHDR
"RTN","XMTDO",42,0)
 ; TaskMan opens and closes the device.
"RTN","XMTDO",43,0)
 N XMV
"RTN","XMTDO",44,0)
 I '$G(DUZ) D DUZ^XUP(XMDUZ)
"RTN","XMTDO",45,0)
 D INITAPI^XMVVITAE
"RTN","XMTDO",46,0)
 D PRTMSG^XMJMP(XMDUZ,"?",XMZ,"0-",0,$G(XMPRTHDR,1))
"RTN","XMTDO",47,0)
 D SETSTAT(XMDVIENS,$$EZBLD^DIALOG(39302)) ; Printed
"RTN","XMTDO",48,0)
 S ZTREQ="@"
"RTN","XMTDO",49,0)
 Q
"RTN","XMTDO",50,0)
SETSTAT(XMIENS,XMSTATUS) ; Record Time/Status in msg file
"RTN","XMTDO",51,0)
 N XMFDA
"RTN","XMTDO",52,0)
 S XMFDA(3.91,XMIENS,2)=$$NOW^XLFDT
"RTN","XMTDO",53,0)
 S XMFDA(3.91,XMIENS,5)=XMSTATUS
"RTN","XMTDO",54,0)
 D FILE^DIE("","XMFDA")
"RTN","XMTDO",55,0)
 Q
"RTN","XMXPARM")
0^1^B68128895
"RTN","XMXPARM",1,0)
XMXPARM ;ISC-SF/GMB-Parameter check ;03/26/2003  08:00
"RTN","XMXPARM",2,0)
 ;;8.0;MailMan;**15,45**;Jun 28, 2002;Build 9
"RTN","XMXPARM",3,0)
ACTMSGS(XMDUZ,XMK,XMKZA) ;
"RTN","XMXPARM",4,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMXPARM",5,0)
 D XMDUZ(.XMDUZ,.XMV)
"RTN","XMXPARM",6,0)
 I $G(XMK)'="" S XMK=$$XMK(XMDUZ,"XMK",XMK)
"RTN","XMXPARM",7,0)
 D XMKZA^XMXPARM1(.XMKZA)
"RTN","XMXPARM",8,0)
 Q
"RTN","XMXPARM",9,0)
ACTMSG(XMDUZ,XMK,XMKZ) ;
"RTN","XMXPARM",10,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMXPARM",11,0)
 D XMDUZ(.XMDUZ,.XMV)
"RTN","XMXPARM",12,0)
 I $G(XMK)'="" D
"RTN","XMXPARM",13,0)
 . S XMK=$$XMK(XMDUZ,"XMK",XMK)
"RTN","XMXPARM",14,0)
 . D XMKZ^XMXPARM1(XMK,.XMKZ)
"RTN","XMXPARM",15,0)
 E  D XMZ(.XMKZ)
"RTN","XMXPARM",16,0)
 Q
"RTN","XMXPARM",17,0)
ANSRMSG(XMDUZ,XMK,XMKZ,XMSUBJ,XMBODY,XMTO,XMINSTR) ;
"RTN","XMXPARM",18,0)
 D ACTMSG(.XMDUZ,.XMK,.XMKZ)
"RTN","XMXPARM",19,0)
 I $G(XMSUBJ)'="" S XMSUBJ=$$XMSUBJ("XMSUBJ",$G(XMSUBJ))
"RTN","XMXPARM",20,0)
 D XMBODY^XMXPARM1(.XMBODY)
"RTN","XMXPARM",21,0)
 D:$D(XMTO) XMTO^XMXPARM1(.XMTO,$G(XMINSTR("ADDR FLAGS"))["I") ; truly optional
"RTN","XMXPARM",22,0)
 D:$D(XMINSTR) XMINSTR(.XMINSTR)
"RTN","XMXPARM",23,0)
 Q
"RTN","XMXPARM",24,0)
BULLETIN(XMDUZ,XMBN,XMPARM,XMBODY,XMTO,XMINSTR,XMATTACH) ;
"RTN","XMXPARM",25,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMXPARM",26,0)
 D XMDUZ(.XMDUZ,.XMV)
"RTN","XMXPARM",27,0)
 D XMBN^XMXPARM1(.XMBN)
"RTN","XMXPARM",28,0)
 D:$D(XMBODY) XMBODY^XMXPARM1(.XMBODY,1)
"RTN","XMXPARM",29,0)
 D:$D(XMTO) XMTO^XMXPARM1(.XMTO,$G(XMINSTR("ADDR FLAGS"))["I") ; truly optional
"RTN","XMXPARM",30,0)
 D:$D(XMINSTR) XMINSTR(.XMINSTR)
"RTN","XMXPARM",31,0)
 Q
"RTN","XMXPARM",32,0)
FWDMSG(XMDUZ,XMK,XMKZA,XMTO,XMINSTR) ;
"RTN","XMXPARM",33,0)
 D ACTMSGS(.XMDUZ,.XMK,.XMKZA)
"RTN","XMXPARM",34,0)
 D XMTO^XMXPARM1(.XMTO,$G(XMINSTR("ADDR FLAGS"))["I") ; need at least one
"RTN","XMXPARM",35,0)
 D:$D(XMINSTR) XMINSTR(.XMINSTR)
"RTN","XMXPARM",36,0)
 Q
"RTN","XMXPARM",37,0)
LATERMSG(XMDUZ,XMK,XMKZA,XMINSTR) ;
"RTN","XMXPARM",38,0)
 D ACTMSGS(.XMDUZ,.XMK,.XMKZA)
"RTN","XMXPARM",39,0)
 I $D(XMINSTR("LATER")) D  Q
"RTN","XMXPARM",40,0)
 . ;I XMINSTR("LATER")="@" Q
"RTN","XMXPARM",41,0)
 . S XMINSTR("LATER")=$$XMDATE("XMINSTR(""LATER"")",XMINSTR("LATER"))
"RTN","XMXPARM",42,0)
 I $G(XMINSTR)'="" D  Q
"RTN","XMXPARM",43,0)
 . ;I XMINSTR="@" Q
"RTN","XMXPARM",44,0)
 . S XMINSTR=$$XMDATE("LATER",XMINSTR)
"RTN","XMXPARM",45,0)
 D ERRSET^XMXUTIL(39419) ;Later date must be supplied.
"RTN","XMXPARM",46,0)
 Q
"RTN","XMXPARM",47,0)
MOVEMSG(XMDUZ,XMK,XMKZA,XMKTO) ;
"RTN","XMXPARM",48,0)
 D ACTMSGS(.XMDUZ,.XMK,.XMKZA)
"RTN","XMXPARM",49,0)
 D XMKTO(XMDUZ,.XMKTO)
"RTN","XMXPARM",50,0)
 Q
"RTN","XMXPARM",51,0)
PRTMSG(XMDUZ,XMK,XMKZA,XMPRTTO,XMINSTR,XMSUBJ,XMTO) ;
"RTN","XMXPARM",52,0)
 D ACTMSGS(.XMDUZ,.XMK,.XMKZA)
"RTN","XMXPARM",53,0)
 Q:'$D(XMINSTR)
"RTN","XMXPARM",54,0)
 I $D(XMINSTR("WHEN")) S XMINSTR("WHEN")=$$XMDATE("XMINSTR(""WHEN"")",XMINSTR("WHEN"))
"RTN","XMXPARM",55,0)
 I $D(XMINSTR("HDR")) D XMCODE^XMXPARM1("XMINSTR(""HDR"")",XMINSTR("HDR"),"^0^1^")
"RTN","XMXPARM",56,0)
 I $D(XMINSTR("RECIPS")) D XMCODE^XMXPARM1("XMINSTR(""RECIPS"")",XMINSTR("RECIPS"),"^0^1^2^")
"RTN","XMXPARM",57,0)
 I $G(XMSUBJ)'="" S XMSUBJ=$$XMSUBJ("XMSUBJ",$G(XMSUBJ))
"RTN","XMXPARM",58,0)
 I $D(XMTO) D XMTO^XMXPARM1(.XMTO,$G(XMINSTR("ADDR FLAGS"))["I") ; ok
"RTN","XMXPARM",59,0)
 Q
"RTN","XMXPARM",60,0)
REPLYMSG(XMDUZ,XMK,XMKZ,XMBODY,XMINSTR) ;
"RTN","XMXPARM",61,0)
 D ACTMSG(.XMDUZ,.XMK,.XMKZ)
"RTN","XMXPARM",62,0)
 D XMBODY^XMXPARM1(.XMBODY)
"RTN","XMXPARM",63,0)
 D:$D(XMINSTR) XMINSTR(.XMINSTR)
"RTN","XMXPARM",64,0)
 I $G(XMINSTR("NET REPLY")),$G(XMINSTR("NET SUBJ"))'="" S XMINSTR("NET SUBJ")=$$XMSUBJ("XMINSTR(""NET SUBJ"")",XMINSTR("NET SUBJ"))
"RTN","XMXPARM",65,0)
 Q
"RTN","XMXPARM",66,0)
SENDMSG(XMDUZ,XMSUBJ,XMBODY,XMTO,XMINSTR,XMATTACH) ;
"RTN","XMXPARM",67,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMXPARM",68,0)
 D XMDUZ(.XMDUZ,.XMV)
"RTN","XMXPARM",69,0)
 S XMSUBJ=$$XMSUBJ("XMSUBJ",$G(XMSUBJ))
"RTN","XMXPARM",70,0)
 D XMBODY^XMXPARM1(.XMBODY)
"RTN","XMXPARM",71,0)
 D XMTO^XMXPARM1(.XMTO,$G(XMINSTR("ADDR FLAGS"))["I") ; need at least one
"RTN","XMXPARM",72,0)
 D:$D(XMINSTR) XMINSTR(.XMINSTR)
"RTN","XMXPARM",73,0)
 D:$D(XMATTACH) XMATTACH^XMXPARM1(.XMATTACH)
"RTN","XMXPARM",74,0)
 Q
"RTN","XMXPARM",75,0)
VAPORMSG(XMDUZ,XMK,XMKZA,XMINSTR) ;
"RTN","XMXPARM",76,0)
 D ACTMSGS(.XMDUZ,.XMK,.XMKZA)
"RTN","XMXPARM",77,0)
 I $D(XMINSTR("VAPOR")) D  Q
"RTN","XMXPARM",78,0)
 . I XMINSTR("VAPOR")="@" Q
"RTN","XMXPARM",79,0)
 . S XMINSTR("VAPOR")=$$XMDATE("XMINSTR(""VAPOR"")",XMINSTR("VAPOR"))
"RTN","XMXPARM",80,0)
 I $G(XMINSTR)'="" D  Q
"RTN","XMXPARM",81,0)
 . I XMINSTR="@" Q
"RTN","XMXPARM",82,0)
 . S XMINSTR=$$XMDATE("VAPOR",XMINSTR)
"RTN","XMXPARM",83,0)
 D ERRSET^XMXUTIL(39417) ;Vaporize date must be supplied.
"RTN","XMXPARM",84,0)
 Q
"RTN","XMXPARM",85,0)
ADDRNSND(XMDUZ,XMZ,XMTO,XMINSTR) ;
"RTN","XMXPARM",86,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMXPARM",87,0)
 D XMDUZ(.XMDUZ,.XMV)
"RTN","XMXPARM",88,0)
 D XMZ(.XMZ)
"RTN","XMXPARM",89,0)
 D XMTO^XMXPARM1(.XMTO,$G(XMINSTR("ADDR FLAGS"))["I") ; need at least one
"RTN","XMXPARM",90,0)
 D:$D(XMINSTR) XMINSTR(.XMINSTR)
"RTN","XMXPARM",91,0)
 Q
"RTN","XMXPARM",92,0)
MOVEBODY(XMZ,XMBODY) ;
"RTN","XMXPARM",93,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMXPARM",94,0)
 D XMZ(.XMZ)
"RTN","XMXPARM",95,0)
 D XMBODY^XMXPARM1(.XMBODY)
"RTN","XMXPARM",96,0)
 Q
"RTN","XMXPARM",97,0)
VSUBJ(XMSUBJ) ;
"RTN","XMXPARM",98,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMXPARM",99,0)
 S XMSUBJ=$$XMSUBJ("XMSUBJ",$G(XMSUBJ))
"RTN","XMXPARM",100,0)
 Q
"RTN","XMXPARM",101,0)
ITOWHOM(XMDUZ,XMZ,XMTYPE,XMINSTR) ;
"RTN","XMXPARM",102,0)
 K XMERR,^TMP("XMERR",$J)
"RTN","XMXPARM",103,0)
 D XMDUZ(.XMDUZ,.XMV)
"RTN","XMXPARM",104,0)
 D XMFLAG("XMTYPE",XMTYPE,"SF")
"RTN","XMXPARM",105,0)
 I XMTYPE'="S",XMINSTR("ADDR FLAGS")'["R" D XMZ(.XMZ)
"RTN","XMXPARM",106,0)
 D:$D(XMINSTR) XMINSTR(.XMINSTR)
"RTN","XMXPARM",107,0)
 Q
"RTN","XMXPARM",108,0)
TOWHOM(XMDUZ,XMZ,XMTYPE,XMTO,XMINSTR) ;
"RTN","XMXPARM",109,0)
 D ITOWHOM(.XMDUZ,.XMZ,.XMTYPE,.XMINSTR)
"RTN","XMXPARM",110,0)
 D XMTO^XMXPARM1(XMTO,$G(XMINSTR("ADDR FLAGS"))["I") ; need at least one
"RTN","XMXPARM",111,0)
 Q
"RTN","XMXPARM",112,0)
XMDUZ(XMDUZ,XMV) ;
"RTN","XMXPARM",113,0)
 S:$G(XMDUZ)="" XMDUZ=DUZ
"RTN","XMXPARM",114,0)
 D CHKUSER^XMXPARM1(.XMDUZ)
"RTN","XMXPARM",115,0)
 ; Need XMV "NAME","DUZ NAME", "NETNAME", "VERSION"
"RTN","XMXPARM",116,0)
 ; ^XMB("NETNAME"),^XMB("NUM"),^XMB("VIA")
"RTN","XMXPARM",117,0)
 I XMDUZ'=DUZ D
"RTN","XMXPARM",118,0)
 . I $D(^XUSEC("XMNOPRIV",DUZ)) D  Q  ;You have been given the XMNOPRIV
"RTN","XMXPARM",119,0)
 . . D ERRSET^XMXUTIL(38053) ;key and may not become anyone's surrogate.
"RTN","XMXPARM",120,0)
 . I XMDUZ'=.6,'$D(^XMB(3.7,"AB",DUZ,XMDUZ)) D  Q
"RTN","XMXPARM",121,0)
 . . ;You are not authorized to be a surrogate of DUZ |1|.
"RTN","XMXPARM",122,0)
 . . D ERRSET^XMXUTIL(39401,XMDUZ)
"RTN","XMXPARM",123,0)
 I $D(XMV("VERSION")),$G(XMV("DUZ NAME"))=$$NAME^XMXUTIL(DUZ),$G(XMV("NAME"))=$$NAME^XMXUTIL(XMDUZ) Q
"RTN","XMXPARM",124,0)
 D INITAPI^XMVVITAE
"RTN","XMXPARM",125,0)
 Q
"RTN","XMXPARM",126,0)
XMSUBJ(XMPARM,XMSUBJ) ; Validate a prospective message subject
"RTN","XMXPARM",127,0)
 ;I $G(XMSUBJ)="" D ERRSET^XMXUTIL(39402) Q ""  ;No subject.
"RTN","XMXPARM",128,0)
 I XMSUBJ?.E1C.E S XMSUBJ=$$CTRL^XMXUTIL1(XMSUBJ)
"RTN","XMXPARM",129,0)
 I $E(XMSUBJ,1)=" "!($E(XMSUBJ,$L(XMSUBJ))=" ") S XMSUBJ=$$STRIP^XMXUTIL1(XMSUBJ)
"RTN","XMXPARM",130,0)
 I XMSUBJ["   " S XMSUBJ=$$MAXBLANK^XMXUTIL1(XMSUBJ)
"RTN","XMXPARM",131,0)
 I $G(XMSUBJ)="" Q $$EZBLD^DIALOG(34012) ;* No Subject *
"RTN","XMXPARM",132,0)
 I $L(XMSUBJ)+(2*($L(XMSUBJ,U)-1))>65!($L(XMSUBJ)<3) D  Q XMSUBJ
"RTN","XMXPARM",133,0)
 . D ERRSET^XMXUTIL(39403) ;Subject must be from 3 to 65 characters long.
"RTN","XMXPARM",134,0)
 I XMSUBJ?1"R".N D  Q XMSUBJ
"RTN","XMXPARM",135,0)
 . D ERRSET^XMXUTIL(39404) ;Subject 'Rnnn' reserved.
"RTN","XMXPARM",136,0)
 ;D CHK^DIE(3.9,.01,"H",XMSUBJ)
"RTN","XMXPARM",137,0)
 Q XMSUBJ
"RTN","XMXPARM",138,0)
XMINSTR(XMINSTR) ; Validate special instructions
"RTN","XMXPARM",139,0)
 S:$D(XMINSTR("RCPT BSKT")) XMINSTR("RCPT BSKT")=$$XMKN^XMXPARMB(XMDUZ,"XMINSTR(""RCPT BSKT"")",XMINSTR("RCPT BSKT"),1)
"RTN","XMXPARM",140,0)
 S:$D(XMINSTR("SELF BSKT")) XMINSTR("SELF BSKT")=$$XMK(XMDUZ,"XMINSTR(""SELF BSKT"")",XMINSTR("SELF BSKT"),1)
"RTN","XMXPARM",141,0)
 I $D(XMINSTR("SHARE DATE")) S XMINSTR("SHARE DATE")=$$XMDATE("XMINSTR(""SHARE DATE"")",XMINSTR("SHARE DATE"))
"RTN","XMXPARM",142,0)
 S:$D(XMINSTR("SHARE BSKT")) XMINSTR("SHARE BSKT")=$$XMK(.6,"XMINSTR(""SHARE BSKT"")",XMINSTR("SHARE BSKT"),1)
"RTN","XMXPARM",143,0)
 I $D(XMINSTR("VAPOR")) S XMINSTR("VAPOR")=$$XMDATE("XMINSTR(""VAPOR"")",XMINSTR("VAPOR"))
"RTN","XMXPARM",144,0)
 I $D(XMINSTR("LATER")) S XMINSTR("LATER")=$$XMDATE("XMINSTR(""LATER"")",XMINSTR("LATER"))
"RTN","XMXPARM",145,0)
 I $D(XMINSTR("FROM")) S XMINSTR("FROM")=$$XMFROM("XMINSTR(""FROM"")",XMINSTR("FROM"))
"RTN","XMXPARM",146,0)
 I $D(XMINSTR("FWD BY")) S XMINSTR("FWD BY")=$$XMFROM("XMINSTR(""FWD BY"")",XMINSTR("FWD BY"))
"RTN","XMXPARM",147,0)
 D:$D(XMINSTR("FLAGS")) XMFLAG("XMINSTR(""FLAGS"")",XMINSTR("FLAGS"),"CIPRSX")
"RTN","XMXPARM",148,0)
 I $D(XMINSTR("SCR KEY"))!$D(XMINSTR("SCR HINT")) D
"RTN","XMXPARM",149,0)
 . D XMKEY^XMXPARM1($G(XMINSTR("SCR KEY")))
"RTN","XMXPARM",150,0)
 . D XMHINT^XMXPARM1($G(XMINSTR("SCR HINT")))
"RTN","XMXPARM",151,0)
 D:$D(XMINSTR("TYPE")) XMTYPE(XMINSTR("TYPE"))
"RTN","XMXPARM",152,0)
 D:$D(XMINSTR("STRIP")) XMSTRIP^XMXPARM1(XMINSTR("STRIP"))
"RTN","XMXPARM",153,0)
 Q
"RTN","XMXPARM",154,0)
XMDATE(XMPARM,XMDATE) ;
"RTN","XMXPARM",155,0)
 N %DT,Y,X
"RTN","XMXPARM",156,0)
 S X=XMDATE
"RTN","XMXPARM",157,0)
 S %DT="FT",%DT(0)="NOW"
"RTN","XMXPARM",158,0)
 D ^%DT
"RTN","XMXPARM",159,0)
 Q:Y>0 Y
"RTN","XMXPARM",160,0)
 N XMP
"RTN","XMXPARM",161,0)
 S XMP("PARAM","ID")=XMPARM
"RTN","XMXPARM",162,0)
 S XMP("PARAM","VALUE")=XMDATE
"RTN","XMXPARM",163,0)
 D ERRSET^XMXUTIL(39409,.XMP) ;Must be a date in the future.
"RTN","XMXPARM",164,0)
 Q XMDATE
"RTN","XMXPARM",165,0)
XMFROM(XMPARM,XMFROM) ;
"RTN","XMXPARM",166,0)
 ;Code below is preventing valid new person file entries from Processing
"RTN","XMXPARM",167,0)
 ;N XMHOLD
"RTN","XMXPARM",168,0)
 Q:XMFROM=.5 XMFROM
"RTN","XMXPARM",169,0)
 I +XMFROM=XMFROM!(XMFROM[U)!($L(XMFROM)>65)!(XMFROM="") D  Q XMFROM
"RTN","XMXPARM",170,0)
 . N XMP S XMP("PARAM","ID")=XMPARM,XMP("PARAM","VALUE")=XMFROM
"RTN","XMXPARM",171,0)
 . ;S XMP("PARAM","FILE")=X,XMP("PARAM","FIELD")=Y
"RTN","XMXPARM",172,0)
 . ;Must be from 1 to 65 characters, no # or ^.
"RTN","XMXPARM",173,0)
 . D ERRSET^XMXUTIL(39410,.XMP)
"RTN","XMXPARM",174,0)
 ;S XMHOLD=XMFROM
"RTN","XMXPARM",175,0)
 ;S XMFROM=$$CTRL^XMXUTIL1(XMFROM)
"RTN","XMXPARM",176,0)
 ;S XMFROM=$$STRIP^XMXUTIL1(XMFROM)
"RTN","XMXPARM",177,0)
 ;S XMFROM=$$MAXBLANK^XMXUTIL1(XMFROM)
"RTN","XMXPARM",178,0)
 ;Q:XMFROM["POSTMASTER" XMFROM
"RTN","XMXPARM",179,0)
 ; "B^BB^C^D" = name^alias^initial^nickname
"RTN","XMXPARM",180,0)
 ;I '$$FIND1^DIC(200,"","O",$$UP^XLFSTR(XMFROM),"B^BB^C^D")!$D(DIERR) D  Q XMHOLD
"RTN","XMXPARM",181,0)
 ;. N XMP S XMP("PARAM","ID")=XMPARM,XMP("PARAM","VALUE")=XMHOLD
"RTN","XMXPARM",182,0)
 ;. ;S XMP("PARAM","FILE")=X,XMP("PARAM","FIELD")=Y
"RTN","XMXPARM",183,0)
 ;. D ERRSET^XMXUTIL(39411,.XMP) ;May not be a real person.
"RTN","XMXPARM",184,0)
 Q XMFROM
"RTN","XMXPARM",185,0)
XMTYPE(XMTYPE) ; Validate a message type
"RTN","XMXPARM",186,0)
 I $L(XMTYPE)'=1 D  Q
"RTN","XMXPARM",187,0)
 . N XMP S XMP("PARAM","ID")="XMINSTR(""TYPE"")",XMP("PARAM","VALUE")=XMTYPE
"RTN","XMXPARM",188,0)
 . ;S XMPARM("PARAM","FILE")=3.9,XMPARM("PARAM","FIELD")=1.7
"RTN","XMXPARM",189,0)
 . D ERRSET^XMXUTIL(39412,.XMP) ;Must be 1 character.
"RTN","XMXPARM",190,0)
 D XMFLAG("XMINSTR(""TYPE"")",XMTYPE,"BDKOSX")
"RTN","XMXPARM",191,0)
 Q
"RTN","XMXPARM",192,0)
XMFLAG(XMPARM,XMFLAG,FLAGSET) ;
"RTN","XMXPARM",193,0)
 N XMLEFT
"RTN","XMXPARM",194,0)
 S XMLEFT=$TR(XMFLAG,FLAGSET,"")
"RTN","XMXPARM",195,0)
 Q:XMLEFT=""
"RTN","XMXPARM",196,0)
 N XMP S XMP("PARAM","ID")=XMPARM,XMP("PARAM","VALUE")=XMFLAG,XMP(1)=XMLEFT
"RTN","XMXPARM",197,0)
 D ERRSET^XMXUTIL(39413,.XMP) ;|1| is not valid.
"RTN","XMXPARM",198,0)
 Q
"RTN","XMXPARM",199,0)
XMKTO(XMDUZ,XMKTO) ;
"RTN","XMXPARM",200,0)
 I $G(XMKTO)="" D  Q
"RTN","XMXPARM",201,0)
 . N XMP S XMP("PARAM","ID")="XMKTO",XMP("PARAM","VALUE")=""
"RTN","XMXPARM",202,0)
 . D ERRSET^XMXUTIL(39416,.XMP) ;Destination basket must be supplied.
"RTN","XMXPARM",203,0)
 S XMKTO=$$XMK(XMDUZ,"XMKTO",XMKTO)
"RTN","XMXPARM",204,0)
 Q
"RTN","XMXPARM",205,0)
XMK(XMDUZ,XMPARM,XMK,XMOPTNL) ;
"RTN","XMXPARM",206,0)
 I +XMK=XMK,$D(^XMB(3.7,XMDUZ,2,XMK)) Q XMK
"RTN","XMXPARM",207,0)
 ; Just in case a name was passed...
"RTN","XMXPARM",208,0)
 N XMKN
"RTN","XMXPARM",209,0)
 S XMKN=XMK
"RTN","XMXPARM",210,0)
 S XMK=$$FIND1^DIC(3.701,","_XMDUZ_",","OQ",XMKN)
"RTN","XMXPARM",211,0)
 Q:XMK XMK
"RTN","XMXPARM",212,0)
 I '$D(DIERR),$G(XMOPTNL) Q XMKN  ; Basket not found.  Will create on delivery.
"RTN","XMXPARM",213,0)
 N XMP S XMP("PARAM","ID")=XMPARM,XMP("PARAM","VALUE")=XMKN,XMP(1)=XMKN
"RTN","XMXPARM",214,0)
 ;Basket name '|1|' ambiguous / not found.
"RTN","XMXPARM",215,0)
 D ERRSET^XMXUTIL($S($D(DIERR):39414,1:39415),.XMP)
"RTN","XMXPARM",216,0)
 Q XMKN
"RTN","XMXPARM",217,0)
XMZ(XMZ) ;
"RTN","XMXPARM",218,0)
 I $G(XMZ),$D(^XMB(3.9,XMZ,0)) Q
"RTN","XMXPARM",219,0)
 D ERRSET^XMXUTIL(34353,XMZ) ;Message '|1|' does not exist.
"RTN","XMXPARM",220,0)
 Q
"VER")
8.0^22.0
**END**
**END**
