[0001]
[0002]
[0003]
[0004]
[0005]
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
[0080]
[0081]
[0082]
[0083]
[0084]
[0085]
[0086]
[0087]
[0088]
[0089]
[0090]
[0091]
[0092]
[0093]
[0094]
[0095]
[0096]
[0097]
[0098]
[0099]
[0100]
[0101]
[0102]
[0103]
[0104]
[0105]
[0106]
[0107]
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119]
[0120]
[0121]
[0122]
[0123]
[0124]
[0125]
[0126]
[0127]
[0128]
[0129]
[0130]
[0131]
[0132]
[0133]
[0134]
[0135]
[0136]
[0137]
[0138]
[0139]
[0140]
[0141]
[0142]
[0143]
[0144]
[0145]
[0146]
[0147]
[0148]
[0149]
[0150]
[0151]
[0152]
[0153]
[0154]
[0155]
[0156]
[0157]
[0158]
[0159]
[0160]
[0161]
[0162]
[0163]
[0164]
[0165]
[0166]
[0167]
[0168]
[0169]
[0170]
[0171]
[0172]
[0173]
[0174]
[0175]
[0176]
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183]
[0184]
[0185]
[0186]
[0187]
[0188]
[0189]
[0190]
[0191]
[0192]
[0193]
[0194]
[0195]
[0196]
[0197]
[0198]
[0199]
[0200]
[0201]
[0202]
[0203]
[0204]
[0205]
[0206]
[0207]
[0208]
[0209]
[0210]
[0211]
[0212]
[0213]
[0214]
[0215]
[0216]
[0217]
[0218]
[0219]
[0220]
[0221]
[0222]
[0223]
[0224]
[0225]
[0226]
[0227]
[0228]
[0229]
[0230]
[0231]
[0232]
[0233]
[0234]
[0235]
[0236]
[0237]
[0238]
[0239]
[0240]
[0241]
[0242]
[0243]
[0244]
[0245]
[0246]
[0247]
[0248]
[0249]
[0250]
[0251]
[0252]
[0253]
[0254]
[0255]
[0256]
[0257]
[0258]
[0259]
[0260]
[0261]
[0262]
[0263]
[0264]
[0265]
[0266]
[0267]
[0268]
[0269]
[0270]
[0271]
[0272]
[0273]
[0274]
[0275]
[0276]
[0277]
[0278]
[0279]
[0280]
[0281]
[0282]
[0283]
[0284]
[0285]
[0286]
[0287]
[0288]
[0289]
[0290]
[0291]
[0292]
[0293]
[0294]
[0295]
[0296]
[0297]
[0298]
[0299]
[0300]
[0301]
[0302]
[0303]
[0304]
[0305]
[0306]
[0307]
[0308]
[0309]
[0310]
[0311]
[0312]
[0313]
[0314]
[0315]
[0316]
[0317]
[0318]
[0319]
[0320]
[0321]
[0322]
[0323]
[0324]
[0325]
[0326]
[0327]
[0328]
[0329]
[0330]
[0331]
[0332]
[0333]
[0334]
[0335]
[0336]
[0337]
[0338]
[0339]
[0340]
[0341]
[0342]
[0343]
[0344]
[0345]
[0346]
[0347]
[0348]
[0349]
[0350]
[0351]
[0352]
[0353]
[0354]
[0355]
[0356]
[0357]
[0358]
[0359]
[0360]
[0361]
[0362]
[0363]
[0364]
[0365]
[0366]
[0367]
[0368]
[0369]
[0370]
[0371]
[0372]
[0373]
[0374]
[0375]
[0376]
[0377]
[0378]
[0379]
[0380]
[0381]
[0382]
[0383]
[0384]
[0385]
[0386]
[0387]
[0388]
[0389]
[0390]
[0391]
[0392]
[0393]
[0394]
[0395]
[0396]
[0397]
[0398]
[0399]
[0400]
[0401]
[0402]
[0403]
[0404]
[0405]
[0406]
[0407]
[0408]
[0409]
[0410]
[0411]
[0412]
[0413]
[0414]
[0415]
[0416]
[0417]
[0418]
[0419]
[0420]
[0421]
[0422]
[0423]
[0424]
[0425]
[0426]
[0427]
[0428]
[0429]
[0430]
[0431]
[0432]
[0433]
[0434]
[0435]
[0436]
[0437]
[0438]
[0439]
[0440]
[0441]
[0442]
[0443]
[0444]
[0445]
[0446]
[0447]
[0448]
[0449]
[0450]
[0451]
[0452]
[0453]
[0454]
[0455]
[0456]
[0457]
[0458]
[0459]
[0460]
[0461]
[0462]
[0463]
[0464]
[0465]
[0466]
[0467]
[0468]
[0469]
[0470]
[0471]
[0472]
[0473]
[0474]
[0475]
[0476]
[0477]
[0478]
[0479]
[0480]
[0481]
[0482]
[0483]
[0484]
[0485]
[0486]
[0487]
[0488]
[0489]
[0490]
[0491]
[0492]
[0493]
[0494]
[0495]
[0496]
[0497]
[0498]
[0499]
[0500]
[0501]
[0502]
[0503]
[0504]
[0505]
[0506]
[0507]
[0508]
[0509]
[0510]
[0511]
[0512]
[0513]
[0514]
[0515]
[0516]
[0517]
[0518]
[0519]
[0520]
[0521]
[0522]
[0523]
[0524]
[0525]
[0526]
[0527]
[0528]
[0529]
[0530]
[0531]
[0532]
[0533]
[0534]
[0535]
[0536]
[0537]
[0538]
[0539]
[0540]
[0541]
[0542]
[0543]
[0544]
[0545]
[0546]
[0547]
[0548]
[0549]
[0550]
[0551]
[0552]
[0553]
[0554]
[0555]
[0556]
[0557]
[0558]
[0559]
[0560]
[0561]
[0562]
[0563]
[0564]
[0565]
[0566]
[0567]
[0568]
[0569]
[0570]
[0571]
[0572]
[0573]
[0574]
[0575]
[0576]
[0577]
[0578]
[0579]
[0580]
[0581]
[0582]
[0583]
[0584]
[0585]
[0586]
[0587]
[0588]
[0589]
[0590]
[0591]
[0592]
[0593]
[0594]
[0595]
[0596]
[0597]
[0598]
[0599]
[0600]
[0601]
[0602]
[0603]
[0604]
[0605]
[0606]
[0607]
[0608]
[0609]
[0610]
[0611]
[0612]
[0613]
[0614]
[0615]
[0616]
[0617]
[0618]
[0619]
[0620]
[0621]
[0622]
[0623]
[0624]
[0625]
[0626]
[0627]
[0628]
[0629]
[0630]
[0631]
[0632]
[0633]
[0634]
[0635]
[0636]
[0637]
[0638]
[0639]
[0640]
[0641]
[0642]
[0643]
[0644]
[0645]
[0646]
[0647]
[0648]
[0649]
[0650]
[0651]
[0652]
[0653]
[0654]
[0655]
[0656]
[0657]
[0658]
[0659]
[0660]
[0661]
[0662]
[0663]
[0664]
[0665]
[0666]
[0667]
[0668]
[0669]
[0670]
[0671]
[0672]
[0673]
[0674]
[0675]
[0676]
[0677]
[0678]
[0679]
[0680]
[0681]
[0682]
[0683]
[0684]
[0685]
[0686]
[0687]
[0688]
[0689]
[0690]
[0691]
[0692]
[0693]
[0694]
[0695]
[0696]
[0697]
[0698]
[0699]
[0700]
[0701]
[0702]
[0703]
[0704]
[0705]
[0706]
[0707]
[0708]
[0709]
[0710]
[0711]
[0712]
[0713]
[0714]
[0715]
[0716]
[0717]
[0718]
[0719]
[0720]
[0721]
[0722]
[0723]
[0724]
[0725]
[0726]
[0727]
[0728]
[0729]
[0730]
[0731]
[0732]
[0733]
[0734]
[0735]
[0736]
[0737]
[0738]
[0739]
[0740]
[0741]
[0742]
[0743]
[0744]
[0745]
[0746]
[0747]
[0748]
[0749]
[0750]
[0751]
[0752]
[0753]
[0754]
[0755]
[0756]
[0757]
[0758]
[0759]
[0760]
[0761]
[0762]
[0763]
[0764]
[0765]
[0766]
[0767]
[0768]
[0769]
[0770]
[0771]
[0772]
[0773]
[0774]
[0775]
[0776]
[0777]
[0778]
[0779]
[0780]
[0781]
[0782]
[0783]
[0784]
[0785]
[0786]
[0787]
[0788]
[0789]
[0790]
[0791]
[0792]
[0793]
[0794]
[0795]
[0796]
[0797]
[0798]
[0799]
[0800]
[0801]
[0802]
[0803]
[0804]
[0805]
[0806]
[0807]
[0808]
[0809]
[0810]
[0811]
[0812]
[0813]
[0814]
[0815]
[0816]
[0817]
[0818]
[0819]
[0820]
[0821]
[0822]
[0823]
[0824]
[0825]
[0826]
[0827]
[0828]
[0829]
[0830]
[0831]
[0832]
[0833]
[0834]
[0835]
[0836]
[0837]
[0838]
[0839]
[0840]
[0841]
[0842]
[0843]
[0844]
[0845]
[0846]
[0847]
[0848]
[0849]
[0850]
[0851]
[0852]
[0853]
[0854]
[0855]
[0856]
[0857]
[0858]
[0859]
[0860]
[0861]
[0862]
[0863]
[0864]
[0865]
[0866]
[0867]
[0868]
[0869]
[0870]
[0871]
[0872]
[0873]
[0874]
[0875]
[0876]
[0877]
[0878]
[0879]
[0880]
[0881]
[0882]
[0883]
[0884]
[0885]
[0886]
[0887]
[0888]
[0889]
[0890]
[0891]
[0892]
[0893]
[0894]
[0895]
[0896]
[0897]
[0898]
[0899]
[0900]
[0901]
[0902]
[0903]
[0904]
[0905]
[0906]
[0907]
[0908]
[0909]
[0910]
[0911]
[0912]
[0913]
[0914]
[0915]
[0916]
[0917]
[0918]
[0919]
[0920]
[0921]
[0922]
[0923]
[0924]
[0925]
[0926]
[0927]
[0928]
[0929]
[0930]
[0931]
[0932]
[0933]
[0934]
[0935]
[0936]
[0937]
[0938]
[0939]
[0940]
[0941]
[0942]
[0943]
[0944]
[0945]
[0946]
[0947]
[0948]
[0949]
[0950]
[0951]
[0952]
[0953]
[0954]
[0955]
[0956]
[0957]
[0958]
[0959]
[0960]
[0961]
[0962]
[0963]
[0964]
[0965]
[0966]
[0967]
[0968]
[0969]
[0970]
[0971]
[0972]
[0973]
[0974]
[0975]
[0976]
[0977]
[0978]
[0979]
[0980]
[0981]
[0982]
[0983]
[0984]
[0985]
[0986]
[0987]
[0988]
[0989]
[0990]
[0991]
[0992]
[0993]
[0994]
[0995]
[0996]
[0997]
[0998]
[0999]
[1000]
[1001]
[1002]
[1003]
[1004]
[1005]
[1006]
[1007]
[1008]
[1009]
[1010]
[1011]
[1012]
[1013]
[1014]
[1015]
[1016]
[1017]
[1018]
[1019]
[1020]
[1021]
[1022]
[1023]
[1024]
[1025]
[1026]
[1027]
[1028]
[1029]
[1030]
[1031]
[1032]
[1033]
[1034]
[1035]
[1036]
[1037]
[1038]
[1039]
[1040]
[1041]
[1042]
[1043]
[1044]
[1045]
[1046]
[1047]
[1048]
[1049]
[1050]
[1051]
[1052]
[1053]
[1054]
[1055]
[1056]
[1057]
[1058]
[1059]
[1060]
[1061]
[1062]
[1063]
[1064]
[1065]
[1066]
[1067]
[1068]
[1069]
[1070]
[1071]
[1072]
[1073]
[1074]
[1075]
[1076]
[1077]
[1078]
[1079]
[1080]
[1081]
[1082]
[1083]
[1084]
[1085]
[1086]
[1087]
[1088]
[1089]
[1090]
[1091]
[1092]
[1093]
[1094]
[1095]
[1096]
[1097]
[1098]
[1099]
[1100]
[1101]
[1102]
[1103]
[1104]
[1105]
[1106]
[1107]
[1108]
[1109]
[1110]
[1111]
[1112]
[1113]
[1114]
[1115]
[1116]
[1117]
[1118]
[1119]
[1120]
[1121]
[1122]
[1123]
[1124]
[1125]
[1126]
[1127]
[1128]
[1129]
[1130]
[1131]
[1132]
[1133]
[1134]
[1135]
[1136]
[1137]
[1138]
[1139]
[1140]
[1141]
[1142]
[1143]
[1144]
[1145]
[1146]
[1147]
[1148]
[1149]
[1150]
[1151]
[1152]
[1153]
[1154]
[1155]
[1156]
[1157]
[1158]
[1159]
[1160]
[1161]
[1162]
[1163]
[1164]
[1165]
[1166]
[1167]
[1168]
[1169]
[1170]
[1171]
[1172]
[1173]
[1174]
[1175]
[1176]
[1177]
[1178]
[1179]
[1180]
[1181]
[1182]
[1183]
[1184]
[1185]
[1186]
[1187]
[1188]
[1189]
[1190]
[1191]
[1192]
[1193]
[1194]
[1195]
[1196]
[1197]
[1198]
[1199]
[1200]
[1201]
[1202]
[1203]
[1204]
[1205]
[1206]
[1207]
[1208]
[1209]
[1210]
[1211]
[1212]
[1213]
[1214]
[1215]
[1216]
[1217]
[1218]
[1219]
[1220]
[1221]
[1222]
[1223]
[1224]
[1225]
[1226]
[1227]
[1228]
[1229]
[1230]
[1231]
[1232]
[1233]
[1234]
[1235]
[1236]
[1237]
[1238]
[1239]
[1240]
[1241]
[1242]
[1243]
[1244]
[1245]
[1246]
[1247]
[1248]
[1249]
[1250]
[1251]
[1252]
[1253]
[1254]
[1255]
[1256]
[1257]
[1258]
[1259]
[1260]
[1261]
[1262]
[1263]
[1264]
[1265]
[1266]
[1267]
[1268]
[1269]
[1270]
[1271]
[1272]
[1273]
[1274]
[1275]
[1276]
[1277]
[1278]
[1279]
[1280]
[1281]
[1282]
[1283]
[1284]
[1285]
[1286]
[1287]
[1288]
[1289]
[1290]
[1291]
[1292]
[1293]
[1294]
[1295]
[1296]
[1297]
[1298]
[1299]
[1300]
[1301]
[1302]
[1303]
[1304]
[1305]
[1306]
[1307]
[1308]
[1309]
[1310]
[1311]
[1312]
[1313]
[1314]
[1315]
[1316]
[1317]
[1318]
[1319]
[1320]
[1321]
[1322]
[1323]
[1324]
[1325]
[1326]
[1327]
[1328]
[1329]
[1330]
[1331]
[1332]
[1333]
[1334]
[1335]
[1336]
[1337]
[1338]
[1339]
[1340]
[1341]
[1342]
[1343]
[1344]
[1345]
[1346]
[1347]
[1348]
[1349]
[1350]
[1351]
[1352]
[1353]
[1354]
[1355]
[1356]
[1357]
[1358]
[1359]
[1360]
[1361]
[1362]
[1363]
[1364]
[1365]
[1366]
[1367]
[1368]
[1369]
[1370]
[1371]
[1372]
[1373]
[1374]
[1375]
[1376]
[1377]
[1378]
[1379]
[1380]
[1381]
[1382]
[1383]
[1384]
[1385]
[1386]
[1387]
[1388]
[1389]
[1390]
[1391]
[1392]
[1393]
[1394]
[1395]
[1396]
[1397]
[1398]
[1399]
[1400]
[1401]
[1402]
[1403]
[1404]
[1405]
[1406]
[1407]
[1408]
[1409]
[1410]
[1411]
[1412]
[1413]
[1414]
[1415]
[1416]
[1417]
[1418]
[1419]
[1420]
[1421]
[1422]
[1423]
[1424]
[1425]
[1426]
[1427]
[1428]
[1429]
[1430]
[1431]
[1432]
[1433]
[1434]
[1435]
[1436]
[1437]
[1438]
[1439]
[1440]
[1441]
[1442]
[1443]
[1444]
[1445]
[1446]
[1447]
[1448]
[1449]
[1450]
[1451]
[1452]
[1453]
[1454]
[1455]
[1456]
[1457]
[1458]
[1459]
[1460]
[1461]
[1462]
[1463]
[1464]
[1465]
[1466]
[1467]
[1468]
[1469]
[1470]
[1471]
[1472]
[1473]
[1474]
[1475]
[1476]
[1477]
[1478]
[1479]
[1480]
[1481]
[1482]
[1483]
[1484]
[1485]
[1486]
[1487]
[1488]
[1489]
[1490]
[1491]
[1492]
[1493]
[1494]
[1495]
[1496]
[1497]
[1498]
[1499]
[1500]
[1501]
[1502]
[1503]
[1504]
[1505]
[1506]
[1507]
[1508]
[1509]
[1510]
[1511]
[1512]
[1513]
[1514]
[1515]
[1516]
[1517]
[1518]
[1519]
[1520]
[1521]
[1522]
[1523]
[1524]
[1525]
[1526]
[1527]
[1528]
[1529]
[1530]
[1531]
[1532]
[1533]
[1534]
[1535]
[1536]
[1537]
[1538]
[1539]
[1540]
[1541]
[1542]
[1543]
[1544]
[1545]
[1546]
[1547]
[1548]
[1549]
[1550]
[1551]
[1552]
[1553]
[1554]
[1555]
[1556]
[1557]
[1558]
[1559]
[1560]
[1561]
[1562]
[1563]
[1564]
[1565]
[1566]
[1567]
[1568]
[1569]
[1570]
[1571]
[1572]
[1573]
[1574]
[1575]
[1576]
[1577]
[1578]
[1579]
[1580]
[1581]
[1582]
[1583]
[1584]
[1585]
[1586]
[1587]
[1588]
[1589]
[1590]
[1591]
[1592]
[1593]
[1594]
[1595]
[1596]
[1597]
[1598]
[1599]
[1600]
[1601]
[1602]
[1603]
[1604]
[1605]
[1606]
[1607]
[1608]
[1609]
[1610]
[1611]
[1612]
[1613]
[1614]
[1615]
[1616]
[1617]
[1618]
[1619]
[1620]
[1621]
[1622]
[1623]
[1624]
[1625]
[1626]
[1627]
[1628]
[1629]
[1630]
[1631]
[1632]
[1633]
[1634]
[1635]
[1636]
[1637]
[1638]
[1639]
[1640]
[1641]
[1642]
[1643]
[1644]
[1645]
[1646]
[1647]
[1648]
[1649]
[1650]
[1651]
[1652]
[1653]
[1654]
[1655]
[1656]
[1657]
[1658]
[1659]
[1660]
[1661]
[1662]
[1663]
[1664]
[1665]
[1666]
[1667]
[1668]
[1669]
[1670]
[1671]
[1672]
[1673]
[1674]
[1675]
[1676]
[1677]
[1678]
[1679]
[1680]
[1681]
[1682]
[1683]
[1684]
[1685]
[1686]
[1687]
[1688]
[1689]
[1690]
[1691]
[1692]
[1693]
[1694]
[1695]
[1696]
[1697]
[1698]
[1699]
[1700]
[1701]
[1702]
[1703]
[1704]
[1705]
[1706]
[1707]
[1708]
[1709]
[1710]
[1711]
[1712]
[1713]
[1714]
[1715]
[1716]
[1717]
[1718]
[1719]
[1720]
[1721]
[1722]
[1723]
[1724]
[1725]
[1726]
[1727]
[1728]
[1729]
[1730]
[1731]
[1732]
[1733]
[1734]
[1735]
[1736]
[1737]
[1738]
[1739]
[1740]
[1741]
[1742]
[1743]
[1744]
[1745]
[1746]
[1747]
[1748]
[1749]
[1750]
[1751]
[1752]
[1753]
[1754]
[1755]
[1756]
[1757]
[1758]
[1759]
[1760]
[1761]
[1762]
[1763]
[1764]
[1765]
[1766]
[1767]
[1768]
[1769]
[1770]
[1771]
[1772]
[1773]
[1774]
[1775]
[1776]
[1777]
[1778]
[1779]
[1780]
[1781]
[1782]
[1783]
[1784]
[1785]
[1786]
[1787]
[1788]
[1789]
[1790]
[1791]
[1792]
[1793]
[1794]
[1795]
[1796]
[1797]
[1798]
[1799]
[1800]
[1801]
[1802]
[1803]
[1804]
[1805]
[1806]
[1807]
[1808]
[1809]
[1810]
[1811]
[1812]
[1813]
[1814]
[1815]
[1816]
[1817]
[1818]
[1819]
[1820]
[1821]
[1822]
[1823]
[1824]
[1825]
[1826]
[1827]
[1828]
[1829]
[1830]
[1831]
[1832]
[1833]
[1834]
[1835]
[1836]
[1837]
[1838]
[1839]
[1840]
[1841]
[1842]
[1843]
[1844]
[1845]
[1846]
[1847]
[1848]
[1849]
[1850]
[1851]
[1852]
[1853]
[1854]
[1855]
[1856]
[1857]
[1858]
[1859]
[1860]
[1861]
[1862]
[1863]
[1864]
[1865]
[1866]
[1867]
[1868]
[1869]
[1870]
[1871]
[1872]
[1873]
[1874]
[1875]
[1876]
[1877]
[1878]
[1879]
[1880]
[1881]
[1882]
[1883]
[1884]
[1885]
[1886]
[1887]
[1888]
[1889]
[1890]
[1891]
[1892]
[1893]
[1894]
[1895]
[1896]
[1897]
[1898]
[1899]
[1900]
[1901]
[1902]
[1903]
[1904]
[1905]
[1906]
[1907]
[1908]
[1909]
[1910]
[1911]
[1912]
[1913]
[1914]
[1915]
[1916]
[1917]
[1918]
[1919]
[1920]
[1921]
[1922]
[1923]
[1924]
[1925]
[1926]
[1927]
[1928]
[1929]
[1930]
[1931]
[1932]
[1933]
[1934]
[1935]
[1936]
[1937]
[1938]
[1939]
[1940]
[1941]
[1942]
[1943]
[1944]
[1945]
[1946]
[1947]
[1948]
[1949]
[1950]
[1951]
[1952]
[1953]
[1954]
[1955]
[1956]
[1957]
[1958]
[1959]
[1960]
[1961]
[1962]
[1963]
[1964]
[1965]
[1966]
[1967]
[1968]
[1969]
[1970]
[1971]
[1972]
[1973]
[1974]
[1975]
[1976]
[1977]
[1978]
[1979]
[1980]
[1981]
[1982]
[1983]
[1984]
[1985]
[1986]
[1987]
[1988]
[1989]
[1990]
[1991]
[1992]
[1993]
[1994]
[1995]
[1996]
[1997]
[1998]
[1999]
[2000]
[2001]
[2002]
[2003]
[2004]
[2005]
[2006]
[2007]
[2008]
[2009]
[2010]
[2011]
[2012]
[2013]
[2014]
[2015]
[2016]
[2017]
[2018]
[2019]
[2020]
[2021]
[2022]
[2023]
[2024]
[2025]
[2026]
[2027]
[2028]
[2029]
[2030]
[2031]
[2032]
[2033]
[2034]
[2035]
[2036]
[2037]
[2038]
[2039]
[2040]
[2041]
[2042]
[2043]
[2044]
[2045]
[2046]
[2047]
[2048]
[2049]
[2050]
[2051]
[2052]
[2053]
[2054]
[2055]
[2056]
[2057]
[2058]
[2059]
[2060]
[2061]
[2062]
[2063]
[2064]
[2065]
[2066]
[2067]
[2068]
[2069]
[2070]
[2071]
[2072]
[2073]
[2074]
[2075]
[2076]
[2077]
[2078]
[2079]
[2080]
[2081]
[2082]
[2083]
[2084]
[2085]
[2086]
[2087]
[2088]
[2089]
[2090]
[2091]
[2092]
[2093]
[2094]
[2095]
[2096]
[2097]
[2098]
[2099]
[2100]
[2101]
[2102]
[2103]
[2104]
[2105]
[2106]
[2107]
[2108]
[2109]
[2110]
[2111]
[2112]
[2113]
[2114]
[2115]
[2116]
[2117]
[2118]
[2119]
[2120]
[2121]
[2122]
[2123]
[2124]
[2125]
[2126]
[2127]
[2128]
[2129]
[2130]
[2131]
[2132]
[2133]
[2134]
[2135]
[2136]
[2137]
[2138]
[2139]
[2140]
[2141]
[2142]
[2143]
[2144]
[2145]
[2146]
[2147]
[2148]
[2149]
[2150]
[2151]
[2152]
[2153]
[2154]
[2155]
[2156]
[2157]
[2158]
[2159]
[2160]
[2161]
[2162]
[2163]
[2164]
[2165]
[2166]
[2167]
[2168]
[2169]
[2170]
[2171]
[2172]
[2173]
[2174]
[2175]
[2176]
[2177]
[2178]
[2179]
[2180]
[2181]
[2182]
[2183]
[2184]
[2185]
[2186]
[2187]
[2188]
[2189]
[2190]
[2191]
[2192]
[2193]
[2194]
[2195]
[2196]
[2197]
[2198]
[2199]
[2200]
[2201]
[2202]
[2203]
[2204]
[2205]
[2206]
[2207]
[2208]
[2209]
[2210]
[2211]
[2212]
[2213]
[2214]
[2215]
[2216]
[2217]
[2218]
[2219]
[2220]
[2221]
[2222]
[2223]
[2224]
[2225]
[2226]
[2227]
[2228]
[2229]
[2230]
[2231]
[2232]
[2233]
[2234]
[2235]
[2236]
[2237]
[2238]
[2239]
[2240]
[2241]
[2242]
[2243]
[2244]
[2245]
[2246]
[2247]
[2248]
[2249]
[2250]
[2251]
[2252]
[2253]
[2254]
[2255]
[2256]
[2257]
[2258]
[2259]
[2260]
[2261]
[2262]
[2263]
[2264]
[2265]
[2266]
[2267]
[2268]
[2269]
[2270]
[2271]
[2272]
[2273]
[2274]
[2275]
[2276]
[2277]
[2278]
[2279]
[2280]
[2281]
[2282]
[2283]
[2284]
[2285]
[2286]
[2287]
[2288]
[2289]
[2290]
[2291]
[2292]
[2293]
[2294]
[2295]
[2296]
[2297]
[2298]
[2299]
[2300]
[2301]
[2302]
[2303]
[2304]
[2305]
[2306]
[2307]
[2308]
[2309]
[2310]
[2311]
[2312]
[2313]
[2314]
[2315]
[2316]
[2317]
[2318]
[2319]
[2320]
[2321]
[2322]
[2323]
[2324]
[2325]
[2326]
[2327]
[2328]
[2329]
[2330]
[2331]
[2332]
[2333]
[2334]
[2335]
[2336]
[2337]
[2338]
[2339]
[2340]
[2341]
[2342]
[2343]
[2344]
[2345]
[2346]
[2347]
[2348]
[2349]
[2350]
[2351]
[2352]
[2353]
[2354]
[2355]
[2356]
[2357]
[2358]
[2359]
[2360]
[2361]
[2362]
[2363]
[2364]
[2365]
[2366]
[2367]
[2368]
[2369]
[2370]
[2371]
[2372]
[2373]
[2374]
[2375]
[2376]
[2377]
[2378]
[2379]
[2380]
[2381]
[2382]
[2383]
[2384]
[2385]
[2386]
[2387]
[2388]
[2389]
[2390]
[2391]
[2392]
[2393]
[2394]
[2395]
[2396]
[2397]
[2398]
[2399]
[2400]
[2401]
[2402]
[2403]
[2404]
[2405]
[2406]
[2407]
[2408]
[2409]
[2410]
[2411]
[2412]
[2413]
[2414]
[2415]
[2416]
[2417]
[2418]
[2419]
[2420]
[2421]
[2422]
[2423]
[2424]
[2425]
[2426]
[2427]
[2428]
[2429]
[2430]
[2431]
[2432]
[2433]
[2434]
[2435]
[2436]
[2437]
[2438]
[2439]
[2440]
[2441]
[2442]
[2443]
[2444]
[2445]
[2446]
[2447]
[2448]
[2449]
[2450]
[2451]
[2452]
[2453]
[2454]
[2455]
[2456]
[2457]
[2458]
[2459]
[2460]
[2461]
[2462]
[2463]
[2464]
[2465]
[2466]
[2467]
[2468]
[2469]
[2470]
[2471]
[2472]
[2473]
[2474]
[2475]
[2476]
[2477]
[2478]
[2479]
[2480]
[2481]
[2482]
[2483]
[2484]
[2485]
[2486]
[2487]
[2488]
[2489]
[2490]
[2491]
[2492]
[2493]
[2494]
[2495]
[2496]
[2497]
[2498]
[2499]
[2500]
[2501]
[2502]
[2503]
[2504]
[2505]
[2506]
[2507]
[2508]
[2509]
[2510]
[2511]
[2512]
[2513]
[2514]
[2515]
[2516]
[2517]
[2518]
[2519]
[2520]
[2521]
[2522]
[2523]
[2524]
[2525]
[2526]
[2527]
[2528]
[2529]
[2530]
[2531]
[2532]
[2533]
[2534]
[2535]
[2536]
[2537]
[2538]
[2539]
[2540]
[2541]
[2542]
[2543]
[2544]
[2545]
[2546]
[2547]
[2548]
[2549]
[2550]
[2551]
[2552]
[2553]
[2554]
[2555]
[2556]
[2557]
[2558]
[2559]
[2560]
[2561]
[2562]
[2563]
[2564]
[2565]
[2566]
[2567]
[2568]
[2569]
[2570]
[2571]
[2572]
[2573]
[2574]
[2575]
[2576]
[2577]
[2578]
[2579]
[2580]
[2581]
[2582]
[2583]
[2584]
[2585]
[2586]
[2587]
[2588]
[2589]
[2590]
[2591]
[2592]
[2593]
[2594]
[2595]
[2596]
[2597]
[2598]
[2599]
[2600]
[2601]
[2602]
[2603]
[2604]
[2605]
[2606]
[2607]
[2608]
[2609]
[2610]
[2611]
[2612]
[2613]
[2614]
[2615]
[2616]
[2617]
[2618]
[2619]
[2620]
[2621]
[2622]
[2623]
[2624]
[2625]
[2626]
[2627]
[2628]
[2629]
[2630]
[2631]
[2632]
[2633]
[2634]
[2635]
[2636]
[2637]
[2638]
[2639]
[2640]
[2641]
[2642]
[2643]
[2644]
[2645]
[2646]
[2647]
[2648]
[2649]
[2650]
[2651]
[2652]
[2653]
[2654]
[2655]
[2656]
[2657]
[2658]
[2659]
[2660]
[2661]
[2662]
[2663]
[2664]
[2665]
[2666]
[2667]
[2668]
[2669]
[2670]
[2671]
[2672]
[2673]
[2674]
[2675]
[2676]
[2677]
[2678]
[2679]
[2680]
[2681]
[2682]
[2683]
[2684]
[2685]
[2686]
[2687]
[2688]
[2689]
[2690]
[2691]
[2692]
[2693]
[2694]
[2695]
[2696]
[2697]
[2698]
[2699]
[2700]
[2701]
[2702]
[2703]
[2704]
[2705]
[2706]
[2707]
[2708]
[2709]
[2710]
[2711]
[2712]
[2713]
[2714]
[2715]
[2716]
[2717]
[2718]
[2719]
[2720]
[2721]
[2722]
[2723]
[2724]
[2725]
[2726]
[2727]
[2728]
[2729]
[2730]
[2731]
[2732]
[2733]
[2734]
[2735]
[2736]
[2737]
[2738]
[2739]
[2740]
[2741]
[2742]
[2743]
[2744]
[2745]
[2746]
[2747]
[2748]
[2749]
[2750]
[2751]
[2752]
[2753]
[2754]
[2755]
[2756]
[2757]
[2758]
[2759]
[2760]
[2761]
[2762]
[2763]
[2764]
[2765]
[2766]
[2767]
[2768]
[2769]
[2770]
[2771]
[2772]
[2773]
[2774]
[2775]
[2776]
[2777]
[2778]
[2779]
[2780]
[2781]
[2782]
[2783]
[2784]
[2785]
[2786]
[2787]
[2788]
[2789]
[2790]
[2791]
[2792]
[2793]
[2794]
[2795]
[2796]
[2797]
[2798]
[2799]
[2800]
[2801]
[2802]
[2803]
[2804]
[2805]
[2806]
[2807]
[2808]
[2809]
[2810]
[2811]
[2812]
[2813]
[2814]
[2815]
[2816]
[2817]
[2818]
[2819]
[2820]
[2821]
[2822]
[2823]
[2824]
[2825]
[2826]
[2827]
[2828]
[2829]
[2830]
[2831]
[2832]
[2833]
[2834]
[2835]
[2836]
[2837]
[2838]
[2839]
[2840]
[2841]
[2842]
[2843]
[2844]
[2845]
[2846]
[2847]
[2848]
[2849]
[2850]
[2851]
[2852]
[2853]
[2854]
[2855]
[2856]
[2857]
[2858]
[2859]
[2860]
[2861]
[2862]
[2863]
[2864]
[2865]
[2866]
[2867]
[2868]
[2869]
[2870]
[2871]
[2872]
[2873]
[2874]
[2875]
[2876]
[2877]
[2878]
[2879]
[2880]
[2881]
[2882]
[2883]
[2884]
[2885]
[2886]
[2887]
[2888]
[2889]
[2890]
[2891]
[2892]
[2893]
[2894]
[2895]
[2896]
[2897]
[2898]
[2899]
[2900]
[2901]
[2902]
[2903]
[2904]
[2905]
[2906]
[2907]
[2908]
[2909]
[2910]
[2911]
[2912]
[2913]
[2914]
[2915]
[2916]
[2917]
[2918]
[2919]
[2920]
[2921]
[2922]
[2923]
[2924]
[2925]
[2926]
[2927]
[2928]
[2929]
[2930]
[2931]
[2932]
[2933]
[2934]
[2935]
[2936]
[2937]
[2938]
[2939]
[2940]
[2941]
[2942]
[2943]
[2944]
[2945]
[2946]
[2947]
[2948]
[2949]
[2950]
[2951]
[2952]
[2953]
[2954]
[2955]
[2956]
[2957]
[2958]
[2959]
[2960]
[2961]
[2962]
[2963]
[2964]
[2965]
[2966]
[2967]
[2968]
[2969]
[2970]
[2971]
[2972]
[2973]
[2974]
[2975]
[2976]
[2977]
[2978]
[2979]
[2980]
[2981]
[2982]
[2983]
[2984]
[2985]
[2986]
[2987]
[2988]
[2989]
[2990]
[2991]
[2992]
[2993]
[2994]
[2995]
[2996]
[2997]
[2998]
[2999]
[3000]
[3001]
[3002]
[3003]
[3004]
[3005]
[3006]
[3007]
[3008]
[3009]
[3010]
[3011]
[3012]
[3013]
[3014]
[3015]
[3016]
[3017]
[3018]
[3019]
[3020]
[3021]
[3022]
[3023]
[3024]
[3025]
[3026]
[3027]
[3028]
[3029]
[3030]
[3031]
[3032]
[3033]
[3034]
[3035]
[3036]
[3037]
[3038]
[3039]
[3040]
[3041]
[3042]
[3043]
[3044]
[3045]
[3046]
[3047]
[3048]
[3049]
[3050]
[3051]
[3052]
[3053]
[3054]
[3055]
[3056]
[3057]
[3058]
[3059]
[3060]
[3061]
[3062]
[3063]
[3064]
[3065]
[3066]
[3067]
[3068]
[3069]
[3070]
[3071]
[3072]
[3073]
[3074]
[3075]
[3076]
[3077]
[3078]
[3079]
[3080]
[3081]
[3082]
[3083]
[3084]
[3085]
[3086]
[3087]
[3088]
[3089]
[3090]
[3091]
[3092]
[3093]
[3094]
[3095]
[3096]
[3097]
[3098]
[3099]
[3100]
[3101]
[3102]
[3103]
[3104]
[3105]
[3106]
[3107]
[3108]
[3109]
[3110]
[3111]
[3112]
[3113]
[3114]
[3115]
[3116]
[3117]
[3118]
[3119]
[3120]
[3121]
[3122]
[3123]
[3124]
[3125]
[3126]
[3127]
[3128]
[3129]
[3130]
[3131]
[3132]
[3133]
[3134]
[3135]
[3136]
[3137]
[3138]
[3139]
[3140]
[3141]
[3142]
[3143]
[3144]
[3145]
[3146]
[3147]
[3148]
[3149]
[3150]
[3151]
[3152]
[3153]
[3154]
[3155]
[3156]
[3157]
[3158]
[3159]
[3160]
[3161]
[3162]
[3163]
[3164]
[3165]
[3166]
[3167]
[3168]
[3169]
[3170]
[3171]
[3172]
[3173]
[3174]
[3175]
[3176]
[3177]
[3178]
[3179]
[3180]
[3181]
[3182]
[3183]
[3184]
[3185]
[3186]
[3187]
[3188]
[3189]
[3190]
[3191]
[3192]
[3193]
[3194]
[3195]
[3196]
[3197]
[3198]
[3199]
[3200]
[3201]
[3202]
[3203]
[3204]
[3205]
[3206]
[3207]
[3208]
[3209]
[3210]
[3211]
[3212]
[3213]
[3214]
[3215]
[3216]
[3217]
[3218]
[3219]
[3220]
[3221]
[3222]
[3223]
[3224]
[3225]
[3226]
[3227]
[3228]
[3229]
[3230]
[3231]
[3232]
[3233]
[3234]
[3235]
[3236]
[3237]
[3238]
[3239]
[3240]
[3241]
[3242]
[3243]
[3244]
[3245]
[3246]
[3247]
[3248]
[3249]
[3250]
[3251]
[3252]
[3253]
[3254]
<!DOCTYPE html>
<!-- WASDOC AXP-2.0.0 (CGILIB AXP-1.9.9) -->
<!-- wasDOC Copyright (C) 2019,2020 Mark G.Daniel - Apache-2.0 licenced -->
<!--  3-NOV-2021 02:50 -->
<noscript>NOTE: SOME FUNCTIONALITY EMPLOYS JAVASCRIPT</noscript>
<div id="erreport1" style="display:none;"></div>
<script>
function errorReport(string) {
   for (var cnt = 1; cnt <= 2; cnt++) {
      var err = document.getElementById('erreport'+cnt);
      err.style.display = 'block';
      err.innerHTML += string;
   }
}
</script>
<style type="text/css">
html { font-family: arial, verdana, sans-serif; font-size:12pt; margin:1em; }
h1 { font-size:124%; font-style:bold;
     margin-top:1em; margin-bottom:0.5em; }
h2 { font-size:120%; font-style:bold;
     margin-top:1.1em; margin-bottom:0.4em; }
h3 { font-size:116%; font-style:bold;
     margin-top:1.0em; margin-bottom:0.3em; }
h4 { font-size:112%; font-style:bold;
     margin-top:1.1em; margin-bottom:0.3em; }
h5 { font-size:112%; font-style:bold; 
     margin-top:1.1em; margin-bottom:0.3em; }
h6 { font-size:112%; font-style:bold; padding:0; margin:0; }

h1 .text { text-decoration:underline; }
h1 .numb { padding-right:0.8em; }
h1 .numb:empty { display:none; padding-right:0; }
h2 .numb { padding-right:0.8em; }
h2 .numb:empty { display:none; padding-right:0; }
h3 .numb { padding-right:0.8em; }
h3 .numb:empty { display:none; padding-right:0; }
h4 .numb { padding-right:0.8em; }
h4 .numb:empty { display:none; padding-right:0; }
h5 .numb { display:none; padding-right:0; }
h6 .numb { display:none; padding-right:0; }

kbd { font-family:monospace; }

noscript { font-size:1.2em; }

p { line-height:1.1em; margin-top:1em; margin-bottom:1em; }

.chunk { font-size:130%; text-decoration:underline; }
.head {}
.high {}
.bold { font-weight:bold; }
.center { text-align:center; }
.italic { font-style:italic; }
.left { text-align:left; }
.nowrap { white-space:nowrap; }
.prewrap { white-space:pre; }
.right { text-align:right; }
.strike { text-decoration:line-through; }
.under { text-decoration:underline; }

.backlight { background-color:#f2f2f2; }
.display0 { display:none; }

img { max-width:100%; }
.imglink { }

.link { }
.blank { }

.list { margin-bottom:1em; }
.list li { margin-top:0.5em; }
.list0 li { margin-top:0; }
.item {}

.tabl { border-collapse:collapse; text-align:left; margin:0.4em 2em 0.5em 2em; }
.tabu { border-collapse:collapse; text-align:right; margin:0.4em 2em 0.5em 2em; }

.tabr { vertical-align:top; }
.tabh { padding:0.2em 0 0 2em; margin:0; }
.tabd { padding:0.1em 0 0 2em; margin:0; }
.tabh:first-of-type, td:first-of-type { padding-left:0; }

.tabu .tabh,
.tabu .tabd { border:1px solid gray; padding:0.2em 0.3em 0.2em 0.3em; }
.tab0 { border:none; visibility:hidden; max-width:1em; 
        white-space:nowrap; overflow:hidden; }

.tabauto { margin-left:auto; margin-right:auto; }

.tabr:empty { height:0.2em; }
.tabu .tabh:empty, .tabu .tabd:empty { border:none; visibility:hidden; }

.error { font-size:110%; color:black; background-color:yellow;
         font-family:sans-serif; font-weight:bold; font-style:normal;
         width:95%; border:solid 1px gray; padding:0.5em 1em 0.5em 1em; }
.error::before { content:'\026a0\00a0'; }
.image { }
.page { width:98%; border:1px dashed gray; margin:1.5em 0 1.8em 0; }
.epage { width:98%; border:1px dashed black; margin:1.5em 0 1.8em 0; }
.monosp { font-family:monospace; }
.ppage { display:none; }
.simple { list-style-type:none; }
.valtop { vertical-align:top; }
.valmid { vertical-align:middle; }
.valbot { vertical-align:bottom; }

.code { border-style:solid; border-width:0 0 0 1px; padding-left:1em;
        font-family:monospace; white-space:pre; }
.block { }
.blockof { margin:0.4em 2em 0.5em 2em; }
.example { border-style:dashed; border-width:0 0 0 1px; padding-left:1em;
           margin-top:0.5em; margin-bottom:0.5em; white-space:pre; }
.indent { margin-left:2em; margin-right:2em; }
.noindent { margin-left:0; margin-right:0; }
.inblock { display:inline-block; }
.mono { white-space:pre; font-family:monospace; }
.note { margin:0.4em 2em 0.5em 2em; page-break-inside:avoid; }
.note h5 { margin-top:0 }
.note_hr { width:80%; border:1px solid gray; }
.prop { padding-left:1em; margin-top:0.5em; margin-bottom:0.5em; }
.quote { border-style:dashed; border-width:0 0 0 1px; padding-left:1em;
         margin-top:0.5em; margin-bottom:0.5em; }
.this { display:none; }

a:link,a:visited { color:black; text-decoration:none; }
a:hover,a:active { text-decoration:underline; }
a:focus { outline:0; } 

:target:before { content:''; display:block; height:0.1em; margin:-0.1em; }
a.link:link, a.link:visited,a.link:active 
{ color:midnightBlue; text-decoration:underline; text-decoration-style:solid; }

.TOC1cols1 { width:80%; max-width:80%; }
.TOC1cols2 { column-count:2; width:80%; max-width:80%; }
.TOC1cols3 { column-count:3; max-width:90%; max-width:90%; }
.TOC1cols4 { column-count:4; max-width:100%; max-width:100%; }
.TOC1table { margin-left:2em; white-space:nowrap; break-inside:auto; }
.TOC1table tr { vertical-align:top; text-align:left; break-inside:avoid; break-after:auto; }
.TOC1table td+td { padding:0 0 0 0.5em; }
.TOC1table .numb { width:3em; max-width:3em; }
.TOC1table .sepr { width:5em; max-width:6em; overflow:hidden; }
.TOC1table .majr { font-weight:bold; }
.TOC1table .text { white-space:normal; }

/* These are due to Firefox (at least <= 76) recalcitrant multi-column handling.
   Web search "Split table into css columns, issue in Firefox" (stackoverflow).
   "Good grief, Charlie Brown!" */
 
.TOC1cols2 table,
.TOC1cols2 tbody,
.TOC1cols2 tr,
.TOC1cols3 table,
.TOC1cols3 tbody,
.TOC1cols3 tr,
.TOC1cols4 table,
.TOC1cols4 tbody,
.TOC1cols4 tr { display:block; padding:0; }

.TOC2cols1 { width:60%; max-width:60%; }
.TOC2cols2 { column-count:2; width:70%; max-width:70%; }
.TOC2cols3 { column-count:3; width:80%; max-width:80%; }
.TOC2cols4 { column-count:4; width:90%; max-width:90%; }
.TOC2table { margin-left:2em; white-space:nowrap; break-inside:auto; }
.TOC2table tr { vertical-align:top; text-align:left; break-inside:avoid; break-after:auto; }
.TOC2table .numb { font-weight:bold; padding-right:0.5em; }
.TOC2table .text { width:100%; white-space:normal; }

/* see "recalcitrant" above */
.TOC2cols2 table,
.TOC2cols2 tbody,
.TOC2cols2 tr,
.TOC2cols3 table,
.TOC2cols3 tbody,
.TOC2cols3 tr,
.TOC2cols4 table,
.TOC2cols4 tbody,
.TOC2cols4 tr { display:block; padding:0; }

.NAVtable { margin:0.1em 0 0 2em; }
.NAVtable td { font-size:110%; font-weight:bold; padding:0; margin:0; }
.NAVtable a { padding:0 0.5em 0 0.5em; text-decoration:none; }

.IDXcols1 { width:80%; max-width:80%; }
.IDXcols2 { column-count:2; width:90%; max-width:90%; }
.IDXcols3 { column-count:3; width:95%; max-width:95%;  }
.IDXcols4 { column-count:4; width:100%; max-width:100%;  }
.IDXtable { margin:1em 0 1em 2em; white-space:nowrap; break-inside:auto; }
.IDXtable tr { vertical-align:top; text-align:left; break-inside:avoid; break-after:auto; }
.IDXtable .alpha { font-weight:bold; min-width:2em; }
.IDXtable .text  { width:100%; white-space:normal; }
.IDXtable .para:before { content:'\00b6\00a0'; }

/* see "recalcitrant" above */
.IDXcols2 table,
.IDXcols2 tbody,
.IDXcols2 tr,
.IDXcols3 table,
.IDXcols3 tbody,
.IDXcols3 tr,
.IDXcols4 table,
.IDXcols4 tbody,
.IDXcols4 tr { display:block; padding:0; }

.insight { background-color:cyan; font-family:monospace;
           padding:0 0.2em 0 0.2em; margin:0 0.2em 0 0.2em;
           font-size:100%; font-style:normal; font-weight:normal;
           text-decoration:none; }

.wasdoc { font-family: "Lucida Console", Monaco, monospace; 
          letter-spacing:-0.07em; }

@media screen { .blank::after { content:"\2924"; } 
                .print { display:none; }
}

@media print {
   table { page-break-inside:avoid; }
   .noprint { display:none; }
   .page { border:none; page-break-after: always; }
   .epage { display:none; }
   .ppage { page-break-after:always; }
   .NAVtable { display:none; }
   .NAVprint { display:block!important; }
}

@page { margin:2cm 1cm 2cm 1cm;  }
</style>
<!-- source:0000_INSTALL.WASDOC -->

<style type="text/css">._smiley::after { font-size:150%; vertical-align:middle; content:'\263a' }</style>
<style type="text/css">._frowny::after { font-size:150%; vertical-align:middle; content:'\2639' }</style>

<a id="0." href="#"></a>
<a id="0.0.0.0.1" href="#"></a>
<a id="0.wasdinstallandupdate" href="#"></a>
<a id="wasdinstallandupdate" href="#"></a>
<h1 class="head" style="font-size:140%;"><span class="text">WASD Install and Update</span></h1>

<p> For version 12.0 release of WASD VMS Web Services.

<p> Published November 2021

<p> Document generated using <span class="high wasdoc">wasDOC</span> version 2.0.0

<a id="0.0.0.0.2" href="#"></a>
<a id="0.abstract" href="#"></a>
<a id="abstract" href="#"></a>
<h5 class="head"><span class="text">Abstract</span></h5>

<p> This document provides detailed installation and update instructions for the
WASD Web Services package.

<p> For WASD configuration see
<a class="link blank" target="_blank" href="../config/">WASD Web Services - Configuration</a>

<p> For the more significant features and facilities available with the WASD Web
Services package see
<a class="link blank" target="_blank" href="../features/">WASD Web Services - Features</a>

<p> For information on CGI, CGIplus, ISAPI, OSU, etc., scripting, see
<a class="link blank" target="_blank" href="../scripting/">WASD Web Services - Scripting</a>

<p> And for a description of WASD Web document, SSI and directory listing
behaviours and options, <a class="link blank" target="_blank" href="../env/">WASD Web Services - Environment</a>

<a id="0.0.0.0.3" href="#"></a>
<a id="0.onlinesearch" href="#"></a>
<a id="onlinesearch" href="#"></a>
<h5 class="head"><span class="text">Online Search</span></h5>
<p>
<table class="tabl noindent" style="border:1px #808080 solid;background-color:#eeeeee;margin-bottom:1.5em;">
<tr class="tabr">
<td class="tabd" style="padding:0.5em;"><form action="/cgi-bin/query/wasd_root/wasdoc/install/*.html" target="_top">
<input type="submit" value="Search for:">&nbsp;
<input type="text" name="search" size="20">&nbsp;
<input type="reset" value="Reset">
</form>
</table>

<p> <span class="high bold">WASD VMS Web Services &ndash; Copyright &copy; 1996-2021 Mark G. Daniel</span>

<a id="0.0.0.0.3.1" href="#"></a>
<a id="0.apachelicenseversion20" href="#"></a>
<a id="apachelicenseversion20" href="#"></a>
<h6 class="head display0"><span class="text">Apache License, Version 2.0</span></h6>
<a id="0.0.0.0.3.2" href="#"></a>
<a id="0.license" href="#"></a>
<a id="license" href="#"></a>
<h6 class="head display0"><span class="text">License</span></h6>
<p> Licensed under the <span class="high bold">Apache License</span>, Version 2.0 (the &quot;License&quot;);
<div class="blockof quote" style="font-size:0.9em;width:49em;margin:-0.5em 0 0 1em;">you may not use this software except in compliance with the License.
You may obtain a copy of the License at
<p> <a class="link blank" target="_blank" style="margin-left:1em;" href="https://www.apache.org/licenses/LICENSE-2.0">https://www.apache.org/licenses/LICENSE-2.0</a>
<p> Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
</div>

<p> <a class="link" href="mailto:Mark.Daniel@wasd.vsm.com.au">Mark.Daniel@wasd.vsm.com.au</a>
<br> <span class="high bold italic">A pox on the houses of all spamers.  Make that two poxes.</span>

<p> All copyright and trademarks within this document belong to their rightful
owners.  See <a class="link" href="#7.attributionandacknowledgement">7. Attribution and Acknowledgement</a>.


<p> This is a static (file), single document.
<br> Alternative <a class="link" href="/wasd_root/wasdoc/install/install.html">multi-part</a> static
and <a class="link" href="/cgi-bin/wasdoc/wasd_root/wasdoc/install/">dynamic</a> documents.

<br> Links followed by &#10532; open in a new page.

<a id="0.0.0.0.4.2" href="#"></a>
<a id="0.tableofcontent" href="#"></a>
<a id="tableofcontent" href="#"></a>
<h1 class="head" style="font-size:120%;"><span class="text">Table of Content</span></h1>


<div class="TOC1cols2">
<table class="TOC1table">
<tr><td class="sepr"><a href="#1.newtowasdstarthere">1.</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text majr"><a href="#1.newtowasdstarthere">New to WASD? Start Here!</a>
<tr><td class="sepr"><a href="#1.1.usingia64hostedx86crosscomplier">1.1</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#1.1.usingia64hostedx86crosscomplier">Using IA64-hosted X86 Cross-Complier?</a>
<tr><td class="sepr"><a href="#1.2.troubleshooting">1.2</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#1.2.troubleshooting">Troubleshooting?</a>
<tr><td class="sepr"><a href="#2.installation">2.</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text majr"><a href="#2.installation">Installation</a>
<tr><td class="sepr"><a href="#2.1.packageunzip">2.1</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.1.packageunzip">Package UNZIP</a>
<tr><td class="sepr"><a href="#2.2.packagedirectorystructure">2.2</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.2.packagedirectorystructure">Package Directory Structure</a>
<tr><td class="sepr"><a href="#2.3.ods5volume">2.3</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.3.ods5volume">ODS-5 Volume</a>
<tr><td class="sepr"><a href="#2.4.accessiblevolume">2.4</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.4.accessiblevolume">Accessible Volume</a>
<tr><td class="sepr"><a href="#2.5.diskquota">2.5</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.5.diskquota">Disk Quota</a>
<tr><td class="sepr"><a href="#2.6.vms6n">2.6</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.6.vms6n">VMS 6.<span class="high italic">n</span></a>
<tr><td class="sepr"><a href="#2.7.sysuafandrightslist">2.7</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.7.sysuafandrightslist">SYSUAF and RIGHTSLIST</a>
<tr><td class="sepr"><a href="#2.8.tcpipinfrastructure">2.8</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.8.tcpipinfrastructure">TCP/IP Infrastructure</a>
<tr><td class="sepr"><a href="#2.9.installcomprocedure">2.9</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.9.installcomprocedure">INSTALL.COM Procedure</a>
<tr><td class="sepr"><a href="#2.10.quickcheck">2.10</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.10.quickcheck">Quick-Check</a>
<tr><td class="sepr"><a href="#2.11.localsetupsuggestions">2.11</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.11.localsetupsuggestions">Local Setup Suggestions</a>
<tr><td class="sepr"><a href="#2.12.reportingproblems">2.12</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#2.12.reportingproblems">Reporting Problems</a>
<tr><td class="sepr"><a href="#3.update">3.</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text majr"><a href="#3.update">Update</a>
<tr><td class="sepr"><a href="#3.1.packageunzip">3.1</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#3.1.packageunzip">Package UNZIP</a>
<tr><td class="sepr"><a href="#3.2.updatecomprocedure">3.2</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#3.2.updatecomprocedure">UPDATE.COM Procedure</a>
<tr><td class="sepr"><a href="#3.3.relinking">3.3</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#3.3.relinking">Re-Linking</a>
<tr><td class="sepr"><a href="#4.serveraccountandenvironment">4.</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text majr"><a href="#4.serveraccountandenvironment">Server Account and Environment</a>
<tr><td class="sepr"><a href="#4.1.vmsserveraccount">4.1</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#4.1.vmsserveraccount">VMS Server Account</a>
<tr><td class="sepr"><a href="#4.2.vmsscriptingaccount">4.2</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#4.2.vmsscriptingaccount">VMS Scripting Account</a>
<tr><td class="sepr"><a href="#4.3.accountsupportfiles">4.3</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#4.3.accountsupportfiles">Account Support Files</a>
<tr><td class="sepr"><a href="#4.4.globalpagessections">4.4</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#4.4.globalpagessections">Global Pages/Sections</a>
<tr><td class="sepr"><a href="#4.5.logicalnames">4.5</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#4.5.logicalnames">Logical Names</a>
<tr><td class="sepr"><a href="#4.5.1.wasdnametable">4.5.1</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#4.5.1.wasdnametable">WASD Name Table</a>
<tr><td class="sepr"><a href="#4.6.serverstartup">4.6</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#4.6.serverstartup">Server Startup</a>
<tr><td class="sepr"><a href="#5.otherwaystodeploy">5.</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text majr"><a href="#5.otherwaystodeploy">Other Ways to Deploy</a>
<tr><td class="sepr"><a href="#5.1.serverenvironments">5.1</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#5.1.serverenvironments">Server Environments</a>
<tr><td class="sepr"><a href="#5.1.1.adhocserverwrapper">5.1.1</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#5.1.1.adhocserverwrapper">Ad Hoc Server Wrapper</a>
<tr><td class="sepr"><a href="#5.1.2.formalenvironments">5.1.2</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#5.1.2.formalenvironments">Formal Environments</a>
<tr><td class="sepr"><a href="#5.1.3.considerations">5.1.3</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#5.1.3.considerations">Considerations</a>
<tr><td class="sepr"><a href="#5.2.multipleinstallations">5.2</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#5.2.multipleinstallations">Multiple Installations</a>
<tr><td class="sepr"><a href="#5.3.selectcomprocedure">5.3</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#5.3.selectcomprocedure">SELECT.COM Procedure</a>
<tr><td class="sepr"><a href="#5.4.0x0337btaincomprocedure">5.4</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#5.4.0x0337btaincomprocedure">0&#x0337;BTAIN.COM Procedure</a>
<tr><td class="sepr"><a href="#5.5.clonecomprocedure">5.5</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text"><a href="#5.5.clonecomprocedure">CLONE.COM Procedure</a>
<tr><td class="sepr"><a href="#6.index">6.</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text majr"><a href="#6.index">Index</a>
<tr><td class="sepr"><a href="#7.attributionandacknowledgement">7.</a>&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<td class="text majr"><a href="#7.attributionandacknowledgement">Attribution and Acknowledgement</a>
</table>
</div>

<br>
<!-- source:0100_NEWTO.WASDOC -->
<hr class="page">
<a id="1." href="#"></a>
<a id="1.newtowasdstarthere" href="#"></a>
<a id="newtowasdstarthere" href="#"></a>
<h1 class="head"><span class="numb">1.</span><span class="text">New to WASD? Start Here!</span></h1>

<table class="TOC2table">
<tr><td><a href="#1.1.usingia64hostedx86crosscomplier"><span class="numb">1.1</span><span class="text">Using IA64-hosted X86 Cross-Complier?</span></a>
<tr><td><a href="#1.2.troubleshooting"><span class="numb">1.2</span><span class="text">Troubleshooting?</span></a>
</table>
</div>

<table class="NAVtable NAVprint"><tr>
<td><a href="javascript:window.history.back();">&#8617;&#xFE0E;</a>
<td><a href="#0.">&#8598;&#xFE0E;</a>
<td><a href="#0.">&#8593;&#xFE0E;</a>
<td><a href="#2.">&#8600;&#xFE0E;</a>
<td><a href="javascript:window.history.forward();">&#8618;&#xFE0E;</a>
</table>

<a id="1.0.0.0.1" href="#"></a>
<a id="1.welcome" href="#"></a>
<a id="welcome" href="#"></a>
<h5 class="head"><span class="text">Welcome!</span></h5>

<p> WASD is outlined in the
<a class="link blank" target="_blank" href="../features/#introduction">Introduction</a> and
<a class="link blank" target="_blank" href="../features/#packageoverview">Package Overview</a> sections of the
<a class="link blank" target="_blank" href="../features/#0.">WASD Features</a> document.

<p> There are a number of approaches to installing and updating a WASD package. 
<br>The <span class="high italic">vanilla recipes</span> are <a class="link" href="#2.installation">2. Installation</a> and <a class="link" href="#3.update">3. Update</a> but there are 
<a class="link" href="#5.otherwaystodeploy">5. Other Ways to Deploy</a>.

<p> This section provides a quick guide to getting your WASD package installed,
configured and serving.

<ol class="list">

<li class="item"> <span class="high bold">Unzip Package</span>

<p> Install the files following the guidelines in <a class="link" href="#2.installation">2. Installation</a>.
<br> <span class="high bold">Note</span> that more than one archive may be needed
(<a class="link" href="#2.1.sourcearchiveobjectmodulearchives">&lsquo;Source Archive, Object Module Archives&rsquo; in 2.1 Package UNZIP</a>).

<p> If <span class="high bold">Transport Layer Security</span> (TLS - a.k.a. <span class="high bold">Secure Sockets Layer</span>
- SSL) is to be used and a TLS/SSL server image to be built the WASD [Open]SSL
product must be installed at this stage (see
<a class="link blank" target="_blank" href="../features/#tlssslfunctionalitysources">TLS/SSL Functionality Sources</a> of <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>).
An existing VSI SSL111 for OpenVMS product (all based on OpenSSL 1.0.2 and
earlier obsolete) requires no  additional step.  If the WASD [Open]SSL package
it must UNZIPed into the [.WASD_ROOT] tree at this stage.

<div class="blockof code">&dollar; UNZIP -d [.WASD_ROOT] device:[dir]OPENSSLWASD<span class="high italic">nnn-arch</span>.ZIP
</div>

<p> Note the use of the <span class="high bold">&quot;-d&quot; switch</span>.

<li class="item"> <span class="high bold">INSTALL Package</span>

<p> Server installation is performed using the INSTALL.COM procedure
(<a class="link" href="#2.9.installcomprocedure">2.9 INSTALL.COM Procedure</a>).

<ul class="list">

<li class="item"> <span class="high bold">Build Package &ndash; </span>
Compile and link, or just link supplied object files to produce VMS
executables for the system's version of VMS.

<li class="item"> <span class="high bold">Check Package &ndash; </span>
Check basic operation of the package (<a class="link" href="#2.10.quickcheck">2.10 Quick-Check</a>).

<li class="item"> <span class="high bold">Create Server and Scripting Accounts &ndash; </span>
Create two independent accounts, one for executing the server, the other for
executing scripts (<a class="link" href="#4.1.vmsserveraccount">4.1 VMS Server Account</a>).  If quotas are enabled on
the target disk provides an ambit allocation for these accounts.  Review this
at some stage.

<li class="item"> <span class="high bold">Set Package Security &ndash; </span>
This sections traverses the newly installed tree and sets all package
directories and files to required levels of access
(<a class="link blank" target="_blank" href="../config/#maintainingpackagesecurity">Maintaining Package Security</a> in <a class="link blank" target="_blank" href="../config/#0.">WASD Configuration</a>).

<li class="item"> <span class="high bold">Copy Support and Configuration Files &ndash; </span>
Copy the example server support and configuration files
(<a class="link" href="#4.3.accountsupportfiles">4.3 Account Support Files</a>).

<li class="item"> <span class="high bold">Install Scripts &ndash; </span>
Selectively copy groups of scripts from package build directories into the
scripting directories.

</ul>

<li class="item"> <span class="high bold">Configure Package</span>

<p> Following the execution of the INSTALL.COM procedure the package should
require only minor, further configuration.

<p> <span class="high bold">Initially</span> two files may require alteration.

<ol class="list">

<li class="item"> The startup file, possibly to set the local WASD_CONFIG_GMT logical (for
systems not supporting DTSS (e.g. DECnet-Plus)).  Consider using the
STARTUP_LOCAL.COM file for other site-specific requirements
(<a class="link" href="#4.3.accountsupportfiles">4.3 Account Support Files</a>).

<li class="item"> The only configuration that should require immediate attention will be
the mapping rules
(<a class="link blank" target="_blank" href="../config/#requestprocessingconfiguration">Request Processing Configuration</a> in <a class="link blank" target="_blank" href="../config/#0.">WASD Configuration</a>).

</ol>

<p> <span class="high bold">More generally</span> server runtime configuration involves the considerations
discussed in <a class="link blank" target="_blank" href="../config/#siteorganisation">Site Organisation</a> of <a class="link blank" target="_blank" href="../config/#0.">WASD Configuration</a>
along with the following aspects:

<ul class="list">

<li class="item"> Configuring the HTTP server run-time characteristics
(<a class="link blank" target="_blank" href="../config/#configurationconsiderations">Configuration Considerations</a> in <a class="link blank" target="_blank" href="../config/#0.">WASD Configuration</a>).

<li class="item"> Mapping request paths to the VMS file system, and to other things such as
scripts
(<a class="link blank" target="_blank" href="../config/#requestprocessingconfiguration">Request Processing Configuration</a> in <a class="link blank" target="_blank" href="../config/#0.">WASD Configuration</a>).

<li class="item"> Customizing some or all messages
(<a class="link blank" target="_blank" href="../config/#messageconfiguration">Message Configuration</a> in <a class="link blank" target="_blank" href="../config/#0.">WASD Configuration</a>).

<li class="item"> Establishing an authentication and authorization environment
(<a class="link blank" target="_blank" href="../config/#authorizationconfigurationbasics">Authorization Configuration (Basics)</a> in <a class="link blank" target="_blank" href="../config/#0.">WASD Configuration</a>).

</ul>

<li class="item"> <span class="high bold">Start Server</span>

<p> Execute the startup procedure (<a class="link" href="#4.3.startupcom">&lsquo;STARTUP.COM&rsquo; in 4.3 Account Support Files</a>).
Get your browser and connect!

<li class="item"> <span class="high bold">Find Out What's Wrong</span> <span class="high _frowny">&thinsp;</span>

<p> Of course <span class="high italic">something</span> will not be right!  This can happen with
the initial configuration and sometimes when changing configuration.  The
server provides information messages in the run-time log, look in the
WASD_ROOT:[LOG_SERVER] directory.

<p> Remember, the basic installation's integrity can always be checked
as described in <a class="link" href="#2.10.quickcheck">2.10 Quick-Check</a>).
This uses the configuration files from the [EXAMPLE] directory, so provided
these have not been altered the server should execute in
<span class="high italic">demonstration mode</span> correctly.

<p> Can't resolve it? See <a class="link" href="#2.12.reportingproblems">2.12 Reporting Problems</a>.

</ol>

<a id="1.1" href="#"></a>
<a id="1.1.usingia64hostedx86crosscomplier" href="#"></a>
<a id="usingia64hostedx86crosscomplier" href="#"></a>
<h2 class="head"><span class="numb">1.1</span><span class="text">Using IA64-hosted X86 Cross-Complier?</span></h2>

<p> Until a native X86 C compiler becomes available all WASD package and
additional application builds must be done in two phases.

<ol class="list">
<li class="item"> cross-compile on an IA64 system
<li class="item"> link resulting object file(s) on the X86 system
</ol>

<p> When building using the cross-compiler tools the procedures recognise the
XCC&dollar;COMPILER environment and adjust to create and use <span class="high monosp"> [.OBJ_X86_64]</span> object
code directories. 

<p> For example; to build WASD package:

<ol class="list">

<li class="item"> On IA64 ensure <span class="high monosp"> @SYS&dollar;MANAGER:X86_XTOOLS&dollar;SYLOGIN.COM</span> and then select
&quot;3. Compile only&quot; and complete the compilation.

<ul class="list">

<li class="item"> For clustered IA64/X86 with an MSCP-mounted volume containing a shared
<span class="high monosp"> [WASD_ROOT]</span> the appropriate object files are now available to the X86
system.

<p> Proceed with the second phase.

<li class="item"> For non-clustered build environments the same WASD kit must be installed
on both IA64 and X86 systems. After compilation the resulting <span class="high monosp"> [.OBJ_X86_64]</span>
directories must be ZIPed into an archive, transferred to the X86 system and
restored into the corresponding <span class="high monosp"> [WASD_ROOT]</span>.

<p> For example:

<div class="blockof code">IA64&dollar; SET DEFAULT <span class="high italic">device</span>:[WASD_ROOT]
IA64&dollar; ZIP &quot;-V&quot; <span class="high italic">location</span>:X86_1200_OBJ.ZIP [...OBJ_X86_64]*.OBJ
</div>

<div class="blockof code">X86&dollar; SET DEFAULT <span class="high italic">device</span>:[WASD_ROOT]
X86&dollar; UNZIP <span class="high italic">location</span>:X86_1200_OBJ.ZIP
</div>

<p> Proceed with the second phase.

</ul>

<li class="item"> On X86  perform the corresponding  &quot;2. linking (separate package) object
modules&quot;, and continue the rest of the installation.

</ol>

<a id="1.2" href="#"></a>
<a id="1.2.troubleshooting" href="#"></a>
<a id="troubleshooting" href="#"></a>
<h2 class="head"><span class="numb">1.2</span><span class="text">Troubleshooting?</span></h2>

<p> When initially installing or configuring WASD, and sometimes later where
something breaks spectacularly, it is most useful to be able to gain insight
into what the server is up to.

<p> The <span class="high italic">go-to</span> tool is&nbsp;  <span style="font-size:110%">WATCH</span>&nbsp; 
(yes, all capitals, and for no other reason than it makes it stand out).

<p> WATCH is described in detail in
<a class="link blank" target="_blank" href="../features/#watchfacility">WATCH Facility</a> of the <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>
document.

<p> For most circumstances WATCH can be made available for troubleshooting even
if the configuration is significantly broken.  This is done by using a
skeleton-key to authorise special access into the server.

<p> The skeleton-key is described in detail in
<a class="link blank" target="_blank" href="../features/#skeletonkeyauthentication">Skeleton-Key Authentication</a> of the <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>
document.

<p> <span class="high bold">TL;DR</span>

<p> Enable at the command-line with the username anything beginning with an
underscore and at least 8 characters, same for the password length.

<div class="blockof code">&dollar; HTTPD /DO=AUTH=SKELKEY=_<span class="high italic">username</span>:<span class="high italic">password</span>
</div>

<p> Then using a browser access any available service, entering the above
username (including underscore) and password when prompted.

<div class="blockof block"><a class="link blank" target="_blank" href="/httpd/-/admin/report/WATCH">https://<i>the.host.name:port</i>&thinsp;/httpd/-/admin/report/WATCH</a>
</div>

<p> The service administration facilities (of which WATCH is one) are also
available and useful.

<div class="blockof block"><a class="link blank" target="_blank" href="/httpd/-/admin/">https://<i>the.host.name:port</i>&thinsp;/httpd/-/admin/</a>
</div>
<!-- source:0200_INSTALL.WASDOC -->
<hr class="page">
<a id="2." href="#"></a>
<a id="2.installation" href="#"></a>
<a id="installation" href="#"></a>
<h1 class="head"><span class="numb">2.</span><span class="text">Installation</span></h1>

<div class="TOC2cols2">
<table class="TOC2table">
<tr><td><a href="#2.1.packageunzip"><span class="numb">2.1</span><span class="text">Package UNZIP</span></a>
<tr><td><a href="#2.2.packagedirectorystructure"><span class="numb">2.2</span><span class="text">Package Directory Structure</span></a>
<tr><td><a href="#2.3.ods5volume"><span class="numb">2.3</span><span class="text">ODS-5 Volume</span></a>
<tr><td><a href="#2.4.accessiblevolume"><span class="numb">2.4</span><span class="text">Accessible Volume</span></a>
<tr><td><a href="#2.5.diskquota"><span class="numb">2.5</span><span class="text">Disk Quota</span></a>
<tr><td><a href="#2.6.vms6n"><span class="numb">2.6</span><span class="text">VMS 6.n</span></a>
<tr><td><a href="#2.7.sysuafandrightslist"><span class="numb">2.7</span><span class="text">SYSUAF and RIGHTSLIST</span></a>
<tr><td><a href="#2.8.tcpipinfrastructure"><span class="numb">2.8</span><span class="text">TCP/IP Infrastructure</span></a>
<tr><td><a href="#2.9.installcomprocedure"><span class="numb">2.9</span><span class="text">INSTALL.COM Procedure</span></a>
<tr><td><a href="#2.10.quickcheck"><span class="numb">2.10</span><span class="text">Quick-Check</span></a>
<tr><td><a href="#2.11.localsetupsuggestions"><span class="numb">2.11</span><span class="text">Local Setup Suggestions</span></a>
<tr><td><a href="#2.12.reportingproblems"><span class="numb">2.12</span><span class="text">Reporting Problems</span></a>
</table>
</div>

<table class="NAVtable NAVprint"><tr>
<td><a href="javascript:window.history.back();">&#8617;&#xFE0E;</a>
<td><a href="#1.">&#8598;&#xFE0E;</a>
<td><a href="#0.">&#8593;&#xFE0E;</a>
<td><a href="#3.">&#8600;&#xFE0E;</a>
<td><a href="javascript:window.history.forward();">&#8618;&#xFE0E;</a>
</table>

<p> The WASD package is distributed as ZIP archives.

<p> It generally pays to use the latest version of VMS UNZIP available. 
Archives will contain a comment about the minimum version required, check that
as described in the next paragraph. To show the version of the current UNZIP
utility, use

<div class="blockof code">&dollar; UNZIP -v
</div>

<p> The ZIP archive will contain brief installation instructions.  Use the
following command to read this and any other information provided.

<div class="blockof code">&dollar; UNZIP -z device:[dir]archive.ZIP
</div>

<p> It is recommended to check the integrity of, then list the contents of, the
archive before UNZIPing.

<div class="blockof code">&dollar; UNZIP -t device:[dir]archive.ZIP
&dollar; UNZIP -l device:[dir]archive.ZIP
</div>

<p> The archive will have the structure:

<div class="blockof code">KLAATU&dollar; unzip -l dka100:[WASD]wasd1200.zip;1
Archive:  DKA100:[WASD]wasd1200.zip;1

 Copyright (C) 1996-2021 Mark G.Daniel

 Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

  *  FULL RELEASE of v12.0.0 (1 November 2021)
     **************************************************
     *** CONTAINS SOURCE FILES, DOCUMENTATION, ETC. ***
     **************************************************
     Package must be built using INSTALL or UPDATE as described below.

  *  To install files:
     &dollar; SET DEFAULT device:[000000]
     &dollar; UNZIP device:[dir]WASD1200.ZIP

  *  To build/link images use the appropriate one of:
     &dollar; @device:[WASD_ROOT]INSTALL
     &dollar; @WASD_ROOT:[000000]UPDATE

  *  Contains build refinements to ease cross-compiling for x86-64 VMS.

 VMS file attributes saved ... use UnZip 5.2+ on OpenVMS

 Archive created  1-NOV-2021

  Length     Date   Time    Name
 --------    ----   ----    ----
        0  10-24-21 09:04   wasd_root/axp-bin/
        0  10-24-21 09:04   wasd_root/axp/
        0  10-24-21 09:04   wasd_root/cgi-bin/
        0  10-24-21 09:04   wasd_root/doc/
        0  10-24-21 09:04   wasd_root/example/
        0  10-24-21 09:04   wasd_root/exercise/
     2734  03-06-03 17:20   wasd_root/favicon.ico
 <span class="high italic">8&lt; snip 8&lt;</span>
    40221  10-04-21 21:37   wasd_root/wasdoc/scripting/scripting012.html
    18156  10-04-21 21:37   wasd_root/wasdoc/scripting/scripting013.html
      442  09-21-20 12:13   wasd_root/x86_64-bin/readme.html
      464  09-20-20 10:10   wasd_root/x86_64/readme.html
 --------                   -------
 23868969                   1009 files
</div>

<a id="2.1" href="#"></a>
<a id="2.1.packageunzip" href="#"></a>
<a id="packageunzip" href="#"></a>
<h2 class="head"><span class="numb">2.1</span><span class="text">Package UNZIP</span></h2>

<p> The archive contains the complete directory tree.  Hence it is necessary
to SET DEFAULT into the top-level directory of the volume the package is to be
installed on.

<div class="blockof code">&dollar; SET DEFAULT device:[000000]
&dollar; UNZIP device:[dir]archive.ZIP
</div>

<a id="2.1.0.0.1" href="#"></a>
<a id="2.1.sourcearchiveobjectmodulearchives" href="#"></a>
<a id="sourcearchiveobjectmodulearchives" href="#"></a>
<h5 class="head"><span class="text">Source Archive, Object Module Archives</span></h5>

<p> The complete package, source code, documentation, examples, etc., is
provided in a single main archive.  Installation and other build procedures
allow the entire package to be compiled and linked from this if prefered.  This
requires a later version of DEC C (preferably v6.<span class="high italic">n</span> or greater). 

<p> In addition, for those unable or not wishing to fully build the
distribution, three other platform-specific archives are available, AXP (Alpha)
IA64 (Itanium) and X86, containing a complete set of object modules, allowing
the package to be built via a link operation only.

<p> If a complete build is planned then only the main archive is required.  If
a link-only build then an additional archive for each architecture must be
UNZIPed as described above.  This applies to both full installations and
subsequent updates.  The archives will be clearly identified with the
architecture type, as illustrated in this example.

<div class="blockof code">&dollar; UNZIP device:[dir]archive-AXP.ZIP
&dollar; UNZIP device:[dir]archive-IA64.ZIP
&dollar; UNZIP device:[dir]archive-X86.ZIP
</div>

<div class="note"><a id="2.1.0.0.1.1" href="#"></a>
<a id="2.1.note" href="#"></a>
<a id="note" href="#"></a>
<h5 class="head center"><span class="text">Note</span></h5>
<hr class="note_hr">

The WASD distribution and package organisation fully supports
mixed-architecture clusters (AXP, Itanium and/or x86-64 in the one cluster) as
one integrated installation.
<hr class="note_hr">
</div>

<a id="2.1.0.0.2" href="#"></a>
<a id="2.1.wasdopensslarchive" href="#"></a>
<a id="wasdopensslarchive" href="#"></a>
<h5 class="head"><span class="text">WASD OpenSSL Archive</span></h5>

<p> Building an SSL-capable version of the server is a common requirement. 
WASD SSL is discussed in detail in
<a class="link blank" target="_blank" href="../features/#transportlayersecurity">Transport Layer Security</a> of <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>.
and if using the WASD SSL package it is also possible to install (or update)
that package after UNZIPing the primary archive and optional object module(s). 
As noted in the above SSL section, the server can also be built against an
existing VMS SSL product and an existing OpenSSL installation.

<div class="note"><a id="2.1.0.0.2.1" href="#"></a>
<a id="2.1.note" href="#"></a>
<a id="note" href="#"></a>
<h5 class="head center"><span class="text">Note</span></h5>
<hr class="note_hr">

The WASD OpenSSL kit is designed as an update to an existing WASD installation
and so expects to be UNZIPed under the root directory.  Note the use of the
&quot;-d&quot; switch in the following example.
<hr class="note_hr">
</div>

<p>
<div class="blockof code">&dollar; UNZIP -d [.WASD_ROOT] device:[dir]OPENSSLWASD<span class="high italic">nnn-arch</span>.ZIP
</div>

<a id="2.2" href="#"></a>
<a id="2.2.packagedirectorystructure" href="#"></a>
<a id="packagedirectorystructure" href="#"></a>
<h2 class="head"><span class="numb">2.2</span><span class="text">Package Directory Structure</span></h2>

<p> The package directories and content are organised as follows.  Note that
only some of these can be accessed by the server account (and therefore seen in
server-generated directory listings) due to directory and file protections
(see <a class="link blank" target="_blank" href="../config/#recommendedpackagesecurity">Recommended Package Security</a> in <a class="link blank" target="_blank" href="../config/#0.">WASD Configuration</a>).

<p> 
<span class="high center"><span class="high bold">Package Directory Structure</span></span>
<table class="tabl">
<tr class="tabr under">
<th class="tabh">Directory
<th class="tabh">Description
<tr class="tabr">
<tr class="tabr">
<td class="tabd"><span class="high monosp">[AXP-BIN]</span>
<td class="tabd">Alpha executable script files
<tr class="tabr">
<td class="tabd"><span class="high monosp">[AXP]</span>
<td class="tabd">Alpha build and utility area
<tr class="tabr">
<td class="tabd"><span class="high monosp">[CGI-BIN]</span>
<td class="tabd">architecture-neutral script files
<tr class="tabr">
<td class="tabd"><span class="high monosp">[EXAMPLE]</span>
<td class="tabd">package examples
<tr class="tabr">
<td class="tabd"><span class="high monosp">[EXERCISE]</span>
<td class="tabd">package test files
<tr class="tabr">
<td class="tabd"><span class="high monosp">[HTTP&dollar;NOBODY]</span>
<td class="tabd">scripting account default home area
<tr class="tabr">
<td class="tabd"><span class="high monosp">[HTTP&dollar;SERVER]</span>
<td class="tabd">server account default home area
<tr class="tabr">
<td class="tabd"><span class="high monosp">[IA64-BIN]</span>
<td class="tabd">Itanium executable script files
<tr class="tabr">
<td class="tabd"><span class="high monosp">[IA64]</span>
<td class="tabd">Itanium build and utility area
<tr class="tabr">
<td class="tabd"><span class="high monosp">[INSTALL]</span>
<td class="tabd">installation, update and security procedures
<tr class="tabr">
<td class="tabd"><span class="high monosp">[LOCAL]</span>
<td class="tabd">site configuration files
<tr class="tabr">
<td class="tabd"><span class="high monosp">[LOG]</span>
<td class="tabd">site access logs
<tr class="tabr">
<td class="tabd"><span class="high monosp">[LOG_SERVER]</span>
<td class="tabd">server process (SYS&dollar;OUTPUT) logs
<tr class="tabr">
<td class="tabd"><span class="high monosp">[RUNTIME]</span>
<td class="tabd">graphics, help files, etc.
<tr class="tabr">
<td class="tabd"><span class="high monosp">[SCRATCH]</span>
<td class="tabd">working file space for scripts
<tr class="tabr">
<td class="tabd"><span class="high monosp">[SCRIPT]</span>
<td class="tabd">example architecture-neutral scripts
<tr class="tabr">
<td class="tabd"><span class="high monosp">[SRC]</span>
<td class="tabd">package source files
<tr class="tabr">
<td class="tabd"><span class="high monosp">[STARTUP]</span>
<td class="tabd">package startup procedures
<tr class="tabr">
<td class="tabd"><span class="high monosp">[WASDOC]</span>
<td class="tabd">package documentation
<tr class="tabr">
<td class="tabd"><span class="high monosp">[X86_64-BIN]</span>
<td class="tabd">x86-86 executable script files
<tr class="tabr">
<td class="tabd"><span class="high monosp">[X86_64]</span>
<td class="tabd">x86-64 build and utility area
</table>

<a id="2.3" href="#"></a>
<a id="2.3.ods5volume" href="#"></a>
<a id="ods5volume" href="#"></a>
<h2 class="head"><span class="numb">2.3</span><span class="text">ODS-5 Volume</span></h2>

<p> The WASD package can be installed on and used from ODS-5 (extended file
specification) volumes.  Note that the installation procedures and file system
organisation of the package tree has been designed for ODS-2 compliance.  (Of
course the issue of installing WASD on an ODS-5 volume is completely separate
from the ability to serve the contents of an ODS-5 volume!)

<a id="2.4" href="#"></a>
<a id="2.4.accessiblevolume" href="#"></a>
<a id="accessiblevolume" href="#"></a>
<h2 class="head"><span class="numb">2.4</span><span class="text">Accessible Volume</span></h2>

<p> Unlikely as it might be to install the package on a private or otherwise
protected volume, the server and scripting accounts being unprivileged in
themselves, require access sufficient to read, write and delete files from the
volume (disk).  The following illustrates how to check this and what the
protections should look like.  Generally any device that an unprivileged user
can use the server accounts can use.

<div class="blockof code">&dollar; SHOW SECURITY /CLASS=VOLUME DKA100:

ALPHASYS object of class VOLUME
     Owner: [1,1]
     Protection: (System: RWCD, Owner: RWCD, Group: RWCD, World: RWCD)
     Access Control List: &lt;empty&gt;
</div>

<a id="2.5" href="#"></a>
<a id="2.5.diskquota" href="#"></a>
<a id="diskquota" href="#"></a>
<h2 class="head"><span class="numb">2.5</span><span class="text">Disk Quota</span></h2>

<p> Should WASD_ROOT be located on a volume with disk quota enabled then
suitable entries must exist for the server account (default HTTP&dollar;SERVER),
SYSTEM account, and any scripting account(s) (default HTTP&dollar;NOBODY).  The server
account requires quota for the server process log, SYSTEM (due to SYSPRV use)
for access log(s), and scripting account(s) requiring default temporary storage
([SCRATCH]) during processing.

<a id="2.6" href="#"></a>
<a id="2.6.vms6n" href="#"></a>
<a id="vms6n" href="#"></a>
<h2 class="head"><span class="numb">2.6</span><span class="text">VMS 6.<span class="high italic">n</span></span></h2>

<p> As of WASD v10.1 the minimum supported version for build and operation
is VMS V7.0.  Had to drag ourselves into the mid-1990s at some stage!

<a id="2.7" href="#"></a>
<a id="2.7.sysuafandrightslist" href="#"></a>
<a id="sysuafandrightslist" href="#"></a>
<h2 class="head"><span class="numb">2.7</span><span class="text">SYSUAF and RIGHTSLIST</span></h2>

<div class="note">
<a id="2.7.0.0.1" href="#"></a>
<a id="2.7.warning" href="#"></a>
<a id="warning" href="#"></a>
<h5 class="head center"><span class="text">WARNING!</span></h5>
<hr class="note_hr">
The WASD installation procedure does, and to a lesser degree the update
procedure can, <span class="high bold">make additions and/or modifications to SYSUAF.DAT and
RIGHTLIST.DAT</span>, for default server and scripting accounts and to
facilitate their access to the package directory tree.
<p> Also, <span class="high bold">when the server image begins execution it may add an
identifier</span>, required for script process management, to RIGHTSLIST.DAT.
<p> These behaviours must be considered in site environments where such changes
are prohibited or closely controlled.
<hr class="note_hr">
</div>

<a id="2.8" href="#"></a>
<a id="2.8.tcpipinfrastructure" href="#"></a>
<a id="tcpipinfrastructure" href="#"></a>
<h2 class="head"><span class="numb">2.8</span><span class="text">TCP/IP Infrastructure</span></h2>

<p> The WASD installation assumes that the system's TCP/IP infrastructure is
correctly installed and configured, and is operating normally.  For example, it
is not unknown for a freshly built system to experience host name resolution
problems preventing its own host name from being resolved and making even
elementary server startup impossible.

<a id="2.8.0.0.0.999" href="#"></a>
<a id="2.8.dclprocedureinstallcom" href="#"></a>
<a id="dclprocedureinstallcom" href="#"></a>
<h6 class="head display0"><span class="text">DCL procedure INSTALL.COM</span></h6>
<a id="2.9" href="#"></a>
<a id="2.9.installcomprocedure" href="#"></a>
<a id="installcomprocedure" href="#"></a>
<h2 class="head"><span class="numb">2.9</span><span class="text">INSTALL.COM Procedure</span></h2>

<p> The INSTALL.COM procedure assists with the first installation of
WASD.  It provides a  <span class="high italic">vanilla</span> setup, using the standard directories
and  account environment described in this document.  All sections prompt
before performing any action and generally default to &quot;no&quot;.  Read the
information and questions carefully! 

<p> After UNZIPing the package do the following:

<div class="blockof code">&dollar; SET DEFAULT device:[WASD_ROOT]
&dollar; @INSTALL
</div>

<p> It performs the following tasks:

<ol class="list">

<li class="item"> <span class="high bold">Build Executables &ndash; </span>
Either compile sources and link, or just link package object code to produce
images for the local version of VMS.   If the system has a suitable SSL toolkit
the installer is requested whether an SSL enabled version be built.

<li class="item"> <span class="high bold">Check Package &ndash; </span>
Executes a procedure that runs up the HTTPd in demonstration mode.  Allows the
server build to be verified.

<li class="item"> <span class="high bold">Create Server and Scripting Accounts &ndash; </span>
Create two, independent accounts, one for executing the server, the other for
executing scripts (<a class="link" href="#4.1.vmsserveraccount">4.1 VMS Server Account</a>).  If quotas are enabled on
the target disk provides an ambit allocation for these accounts.  Review this
at some stage.

<li class="item"> <span class="high bold">Set Package Security &ndash; </span>
This section traverses the newly installed tree and sets all package
directories and files to required levels of access.  For directory settings see
<a class="link blank" target="_blank" href="../config/#maintainingpackagesecurity">Maintaining Package Security</a> in <a class="link blank" target="_blank" href="../config/#0.">WASD Configuration</a>.

<li class="item"> <span class="high bold">Copy Support and Configuration Files &ndash; </span>
Copy the example server support and configuration files
(<a class="link" href="#4.3.accountsupportfiles">4.3 Account Support Files</a>).

<li class="item"> <span class="high bold">Install Scripts &ndash; </span>
Selectively copy groups of scripts from package build directories into the
scripting directories.

</ol>

<p> Support files to consider when customizing startup, etc.
(<a class="link" href="#4.3.accountsupportfiles">4.3 Account Support Files</a>):

<ul class="list simple list0">
<li class="item"> STARTUP.COM
<li class="item"> STARTUP_LOCAL.COM
<li class="item"> STARTUP_SERVER.COM
</ul>

<a id="2.10" href="#"></a>
<a id="2.10.quickcheck" href="#"></a>
<a id="quickcheck" href="#"></a>
<h2 class="head"><span class="numb">2.10</span><span class="text">Quick-Check</span></h2>

<p> Once installed or updated it is possible to check the basic package at any
time using the <span class="high monosp">[INSTALL]DEMO.COM</span> procedure.  This invokes the server image
using the /DEMO qualifier allowing some behaviours not possible under general
use.  Follow the displayed instructions.  Basically, the server should start
and become reachable via port number 7080. So, to test availability, using
your prefered browser enter the URL listed on line starting with
&quot;%HTTPD-I-SERVICE&quot; and the WASD welcome page should be displayed.

<p> If a TLS (SSL) -enabled server has been built the demonstration server will
also provide a TLS port number 7443 for access (this also can be explicitly
activated using <span class="high monosp">@[INSTALL]DEMO.COM SSL</span>).  WASD will dynamically generate a
X509 certificate for use by the service.  In modern browsers there are security
constraints associated with self-signed certificates &mdash; lots!  Interestingly,
<span class="high bold">Incognito/[In]Private instances</span> of a browser are often more relaxed about
accepting certificates with security deficiencies (at least at the time of
writing), so perhaps try those with the demonstration server.  Also see
<a class="link" href="../features/#servercertificate">Server Certificate</a> in <a class="link" href="../features/#0.">WASD Features</a>.

<div class="blockof code">X86VMS&dollar; @wasd_root:[install]demo

                    Copyright (C) 1996-2021 Mark G.Daniel
                    -------------------------------------
Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not
use this software except in compliance with the License.  Unless required
by applicable law or agreed to in writing, software distributed under the
License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied.  See the License for the specific
language governing permissions and limitations under the License.

                 http://www.apache.org/licenses/LICENSE-2.0

                       *******************************
                       *  WASD PACKAGE DEMONSTRATOR  *
                       *******************************

When finished using demonstrator abort server execution using control-Y
(a subprocess will be spawned to preserve current process environment)

Use a browser to access either of the &quot;%HTTPD-I-SERVICE&quot;s when the server
starts.  (There will be one for a standard service and another for SSL.)

The server will be running in promiscuous mode!
Any username with the password specified below can be used for authentication.
Enter a string to use as a password when later prompted by your browser.

Password (for demo authentication)? []: testing

%DCL-S-SPAWNED, process SYSTEM_32419 spawned
%DCL-S-ATTACHED, terminal now attached to process SYSTEM_32419
%HTTPD-I-SOFTWAREID, HTTPd-WASD/12.0.0 OpenVMS/X86 SSL
WASD VMS Web Services, Copyright (C) 1996-2021 Mark G.Daniel.
Licensed under the Apache License, Version 2.0 (the &quot;License&quot;).
Software under the License is distributed on an &quot;AS IS&quot; BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See http://www.apache.org/licenses/LICENSE-2.0
%HTTPD-I-IMAGE, HTTPD_SSL 12.0.0 31-OCT-2021 07:38:27.62 DKA100:[wasd_root.][x86_64]HTTPD_SSL.EXE;1
%HTTPD-I-STARTUP, 01-NOV-2021 11:47:05
%HTTPD-I-ALIGN, start collecting alignment faults (64kB,128,0xFFFFFFFF)
%HTTPD-I-WASD_ROOT, DKA100:[WASD_ROOT]
%HTTPD-I-ENVIRONMENT, 0
%HTTPD-I-SYSTEM, innotek GmbH VirtualBox VMS V9.1-A
%HTTPD-W-SYSPRV, operating with implicit SYSPRV (UIC group 1)
%HTTPD-I-TCPIP, HP TCPIP&dollar;IPC_SHR X6.0-12 (31-AUG-2021 20:01:12.49)
%HTTPD-I-MODE, INTERACTIVE
%HTTPD-I-ODS5, supported by x86-64 VMS V9.1-A
%HTTPD-I-ODS, directory parser enabled
%HTTPD-I-GMT, +10:30
%HTTPD-I-INSTANCE, supervisor
%HTTPD-W-GZIP, shareable image not found
%HTTPD-I-INSTANCE, 1 process
%HTTPD-I-SSL, OpenSSL 1.1.1k  25 Mar 2021 (0x101010BF)
-SSL-I-PROTOCOL, TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
-SSL-I-OPTIONS, 0x80410854
-SSL-I-SNI, Server Name Indication enabled
-SSL-W-DH, no ephemeral DH param
%HTTPD-I-HTTP2, enabled
%HTTPD-W-HTTP2, network read buffer size increased to 16384 bytes
%HTTPD-I-VM, HTTP/2 zone initialised
%HTTPD-I-INSTANCE, process name WASD:7080
%HTTPD-I-WEBDAV, disabled
%HTTPD-W-AUTH, 1 informational, 1 warning, 0 errors at load
1.w PROMISCUOUS authenticating any username with specified password!
2.i Cache for 32 records of 768 bytes in local storage of 49 page(let)s
%HTTPD-W-MAP, 1 informational, 0 warning, 0 errors at load
1.i ODS-5 processing enabled
%HTTPD-I-PROXYVERIFY, for 32 records in local storage of 14 page(let)s
%HTTPD-I-SCRIPTING, as HTTP&dollar;NOBODY
%HTTPD-I-VM, request zone initialised
%HTTPD-I-DCL, subprocess scripting
%HTTPD-I-DCL, with HTTP/2 enabled SYS&dollar;OUTPUT mailbox might be more efficient at 16375 bytes
%HTTPD-I-VM, cache zone initialised
%HTTPD-I-ACTIVITY, created global section of 1312 page(let)s
%HTTPD-I-SERVICE, http://x86vms.lan:7080
%HTTPD-I-SERVICE, https://x86vms.lan:7443
%HTTPD-I-SSL, x86vms.lan:7443
Generate x86vms.lan 2048 bit private key:
...........................................+++++
...........................................+++++
%HTTPD-I-DEMO, demonstration mode
1.i subprocess scripting
2.i promiscuous authentication
3.i directory access control files ignored
4.i [DirAccess] enabled
5.i [DirMetaInfo] enabled
6.i [DirWildcard] enabled
7.i [Logging] disabled
8.i [ReportBasicOnly] disabled
9.i [ReportMetaInfo] enabled
%HTTPD-I-BEGIN, 01-NOV-2021 11:47:09, WASD:7080 accepting requests
</div>

<p> When <span class="high italic">http://the.host.name:7080</span> is accessed the browser
should display the package home page

<p> <img class="image indent" src="./empoweredby.png">

<div class="note"><a id="2.10.0.0.0.1" href="#"></a>
<a id="2.10.note" href="#"></a>
<a id="note" href="#"></a>
<h5 class="head center"><span class="text">Note</span></h5>
<hr class="note_hr">

The WASD server which is started by the <span class="high monosp">[INSTALL]DEMO.COM</span> procedure does
not have the full environment setup at that time.  It is deliberately limited
to the single process context.  For instance, do not try to execute the
command-line directives described in this document.
<hr class="note_hr">
</div>

<a id="2.11" href="#"></a>
<a id="2.11.localsetupsuggestions" href="#"></a>
<a id="localsetupsuggestions" href="#"></a>
<h2 class="head"><span class="numb">2.11</span><span class="text">Local Setup Suggestions</span></h2>

<p> Package updates <span class="high bold">will never</span> contain anything in these
directories:

<ul class="list simple list0">
<li class="item monosp"> WASD_ROOT:[HTTP&dollar;NOBODY]
<li class="item monosp"> WASD_ROOT:[HTTP&dollar;SERVER]
<li class="item monosp"> WASD_ROOT:[LOCAL]
<li class="item monosp"> WASD_ROOT:[STARTUP]
</ul>

<p> To prevent the overwriting of local configuration files it is suggested
these be placed in the WASD_ROOT:[LOCAL] directory. Local authentication
databases could also be placed in the [LOCAL] directory. Startup files can be
placed where the local site manages system startup. These could be placed
in the WASD_ROOT:[STARTUP] directory. 

<a id="2.12" href="#"></a>
<a id="2.12.reportingproblems" href="#"></a>
<a id="reportingproblems" href="#"></a>
<h2 class="head"><span class="numb">2.12</span><span class="text">Reporting Problems</span></h2>

<p> This package, as is generally the case with freeware, is mainly developed
and supported outside of the author's main occupation and working hours. 
Reports of problems and bugs (while not necessarily welcome :-), as well as
general queries, are responded to as soon as practicable.  If the documentation
is inaccurate or could benefit from clarification in some area please advise of
this also (the better the documentation the less queries you have to field
personally &hellip; or so the theory goes).

<p> With all reports please include the version of the server or script, and
the hardware platform, operating system and TCP/IP package and version in use.

<p> If a server error message is being generated please examine the HTML source
of the error page.  The &quot;&lt;META...&gt;&quot; information contains
version information as well as valuable source code module and line
information.  Include this with the report.

<p> If the server is exiting with a server-generated error message this
information also contains module and line information.  Please include this
with the report.

<p> The WATCH facility is often a powerful tool for problem investigation.  It
is also very useful when supplying details during problem resolution.  <span class="high bold">When
supplying WATCH output as part of a problem report please ZIP the file and
include it an an e-mail attachment.</span>  Mailers often mangle the report format
making it difficult to interpret.

<p> Image crash dumps may also be generated, although these are of less value
than the case of the previous two.

<p> Reports may be e-mailed to <a class="link" href="mailto:Mark.Daniel@wasd.vsm.com.au">Mark.Daniel@wasd.vsm.com.au</a> or if a
suscriber, to <a class="link" href="mailto:info-WASD@vsm.com.au">info-WASD@vsm.com.au</a>.
<!-- source:0300_UPDATE.WASDOC -->
<hr class="page">
<a id="3." href="#"></a>
<a id="3.update" href="#"></a>
<a id="update" href="#"></a>
<h1 class="head"><span class="numb">3.</span><span class="text">Update</span></h1>

<table class="TOC2table">
<tr><td><a href="#3.1.packageunzip"><span class="numb">3.1</span><span class="text">Package UNZIP</span></a>
<tr><td><a href="#3.2.updatecomprocedure"><span class="numb">3.2</span><span class="text">UPDATE.COM Procedure</span></a>
<tr><td><a href="#3.3.relinking"><span class="numb">3.3</span><span class="text">Re-Linking</span></a>
</table>
</div>

<table class="NAVtable NAVprint"><tr>
<td><a href="javascript:window.history.back();">&#8617;&#xFE0E;</a>
<td><a href="#2.">&#8598;&#xFE0E;</a>
<td><a href="#0.">&#8593;&#xFE0E;</a>
<td><a href="#4.">&#8600;&#xFE0E;</a>
<td><a href="javascript:window.history.forward();">&#8618;&#xFE0E;</a>
</table>

<a id="3.0.0.0.1" href="#"></a>
<a id="3.beforeupdating" href="#"></a>
<a id="beforeupdating" href="#"></a>
<h5 class="head"><span class="text">Before Updating</span></h5>

<ul class="list">

<li class="item"> Review the original installation instructions to refresh the various
considerations involved.

<li class="item"> Some <span class="high italic">insurance</span> on the directory tree is recommended in case
the update should fail or otherwise be unusable or problematic (of course, this
is good advice whenever about to make major changes to anything!)  This may be
in the format of a regular site backup, special pre-update backup, or special
pre-update ZIP archive of the directory tree.  The latter two could be
accomplished using commands similar to the following:

<div class="blockof code">&dollar; BACKUP WASD_ROOT:[000000...] location:WASDROOT.BCK/SAVE/VERIFY

&dollar; ZIP &quot;-V&quot; location:WASDROOT.ZIP device:[WASD_ROOT...]*.*
&dollar; ZIP &quot;-T&quot; location:WASDROOT.ZIP
</div>

<p> If using ZIP then ensure that a previous version of the target ZIP file
does not already exist.  If it does then that version is updated, a new
version is not created.

<li class="item"> For existing files a new version is created (the first time this is about
to occur the UNZIPper requests permission &ndash; either &quot;A&quot; for all, or
&quot;y&quot; or &quot;n&quot; or a per-file basis).

<li class="item"> It is possible to <span class="high italic">selectively</span> extract portions of a tree if
something has become damaged.  This would be accomplished by specifying what
needs to be extracted from the archive (instead of the default
<span class="high italic">all</span>), as illustrated by the following example where only the Alpha
object modules are extracted.

<div class="blockof code">&dollar; SET DEFAULT device:[000000]
&dollar; UNZIP device:[dir]archive-AXP.ZIP ht_root/src/httpd/obj_axp/*.*
</div>

</ul>

<a id="3.1" href="#"></a>
<a id="3.1.packageunzip" href="#"></a>
<a id="packageunzip" href="#"></a>
<h2 class="head"><span class="numb">3.1</span><span class="text">Package UNZIP</span></h2>

<p> Updating a package follows a similar process to installation.

<p> The ZIP archive will contain brief installation instructions.  Use the
following command to read this and any other information provided.

<div class="blockof code">&dollar; UNZIP -z device:[dir]archive.ZIP
</div>

<p> It is recommended to check the integrity of, then list the contents of, the
archive before UNZIPing.

<div class="blockof code">&dollar; UNZIP -t device:[dir]archive.ZIP
&dollar; UNZIP -l device:[dir]archive.ZIP
</div>

<p> The archive contains the complete directory tree.  Hence it is necessary
to SET DEFAULT into the parent directory of the WASD_ROOT logical name, as with
the following example.

<div class="blockof code">&dollar; SHOW LOGICAL WASD_ROOT
   &quot;WASD_ROOT&quot; = &quot;DKA100:[WASD_ROOT.]&quot; (LNM&dollar;SYSTEM_TABLE)
&dollar; SET DEFAULT DKA100:[000000]
&dollar; UNZIP device:[dir]archive.ZIP
</div>

<div class="note">
<a id="3.1.0.0.1" href="#"></a>
<a id="3.1.updatingfromv93orearlier" href="#"></a>
<a id="updatingfromv93orearlier" href="#"></a>
<h5 class="head center"><span class="text">Updating From v9.3 or Earlier</span></h5>
<hr class="note_hr">
<span class="high bold">Before UNZIPing</span> the v11 package and when updating an existing v9.3 or
earlier installation the <span class="high bold">root directory must be renamed from HT_ROOT.DIR to
WASD_ROOT.DIR</span>.  The v10 and later packages use [WASD_ROOT] as the top-level
directory in line with other naming schema changes employing &quot;WASD&quot;.  Remember
to modify local startup procedures in-line with this new top-level directory
name.  Also note that the v11 package is not suitable for updating from
existing v8.0 or earlier installation.
<hr class="note_hr">
</div>

<a id="3.1.0.0.2" href="#"></a>
<a id="3.1.sourcearchiveobjectmodulearchives" href="#"></a>
<a id="sourcearchiveobjectmodulearchives" href="#"></a>
<h5 class="head"><span class="text">Source Archive, Object Module Archives</span></h5>

<p> If a complete build is planned then only the main archive is required.  If
a link-only build then an additional archive for each architecture must be
UNZIPed.

<a id="3.1.0.0.3" href="#"></a>
<a id="3.1.wasdopensslarchive" href="#"></a>
<a id="wasdopensslarchive" href="#"></a>
<h5 class="head"><span class="text">WASD OpenSSL Archive</span></h5>

<p> WASD SSL is discussed in detail in
<a class="link blank" target="_blank" href="../features/#transportlayersecurity">Transport Layer Security</a> of <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>.

<div class="note"><a id="3.1.0.0.3.1" href="#"></a>
<a id="3.1.note" href="#"></a>
<a id="note" href="#"></a>
<h5 class="head center"><span class="text">Note</span></h5>
<hr class="note_hr">

The WASD OpenSSL kit is designed as an update to an existing WASD installation
and so expects to be UNZIPed under the root directory.  Note the use of the
&quot;-d&quot; switch in the following example.
<hr class="note_hr">
</div>

<div class="blockof code">&dollar; UNZIP -d [.WASD_ROOT] device:[dir]OPENSSLWASD<span class="high italic">nnn-arch</span>.ZIP
</div>

<a id="3.1.0.0.3.999" href="#"></a>
<a id="3.1.dclprocedureupdatecom" href="#"></a>
<a id="dclprocedureupdatecom" href="#"></a>
<h6 class="head display0"><span class="text">DCL Procedure UPDATE.COM</span></h6>
<a id="3.2" href="#"></a>
<a id="3.2.updatecomprocedure" href="#"></a>
<a id="updatecomprocedure" href="#"></a>
<h2 class="head"><span class="numb">3.2</span><span class="text">UPDATE.COM Procedure</span></h2>

<p> The UPDATE.COM procedure assists with subsequent updates of WASD. 
It assumes a <span class="high italic">vanilla</span> setup, using the standard directories and
account  environment described in this document.  All sections prompt before
performing any action and generally default to &quot;no&quot;.  Read the questions
carefully!

<p> Of course it is best (read mandatory) for the server to be shut down during
an update!

<div class="blockof code">&dollar; HTTPD/DO=EXIT/ALL
</div>

<p> After UNZIPing the updated package do the following:

<div class="blockof code">&dollar; SET DEFAULT WASD_ROOT:[000000]
&dollar; @UPDATE
</div>

<p> It provides the following functions:

<ol class="list">

<li class="item"> <span class="high bold">Build Executables &ndash; </span>
Either compile sources and link, or just link package object code to produce
images for the local version of VMS.  If the system has a suitable SSL toolkit
the installer is requested whether an SSL enabled version be built.

<li class="item"> <span class="high bold">Server Quick-Check &ndash; </span>
Executes a procedure that runs up the HTTPd in demonstration mode.  Allows
evaluation/checking of the basic package (<a class="link" href="#2.10.quickcheck">2.10 Quick-Check</a>).

<li class="item"> <span class="high bold">Server Support/Configuration Files &ndash; </span>
Copies changed example HTTP server configuration and support files from the
[EXAMPLE] directory to the [HTTP&dollar;SERVER], [LOCAL] and [STARTUP] directories. 

<li class="item"> <span class="high bold">Update Scripts &ndash; </span>
Selectively copy groups of scripts from package build directories into the
scripting directories.

<li class="item"> <span class="high bold">Reapply Package Security &ndash; </span>
This section traverses the updated tree and sets all package directories and
files to required levels of access.  For directory settings see
<a class="link blank" target="_blank" href="../config/#recommendedpackagesecurity">Recommended Package Security</a> in <a class="link blank" target="_blank" href="../config/#0.">WASD Configuration</a>.

<li class="item"> <span class="high bold">Post-Update Cleanup &ndash; </span>
Prompts for permission to execute the post-update procedure described below.

<li class="item"> <span class="high bold">Purge Files &ndash; </span>
Prompts for permission to purge the entire WASD_ROOT:[000000...] tree.

</ol>

<p> If declined during the update procedure the post-update steps 6 and 7 can
be performed at any subsequent time using

<div class="blockof code">&dollar; SET DEFAULT WASD_ROOT:[000000]
&dollar; @UPDATE CLEANUP
&dollar; PURGE [...]
</div>

<a id="3.3" href="#"></a>
<a id="3.3.relinking" href="#"></a>
<a id="relinking" href="#"></a>
<h2 class="head"><span class="numb">3.3</span><span class="text">Re-Linking</span></h2>

<p> After a major update to the operating system the package may refuse to
start, reporting the message

<div class="blockof code">%DCL-W-ACTIMAGE, error activating image WHATEVER
-CLI-E-IMGNAME, image file DKA0:[SYS0.SYSCOMMON.][SYSLIB]WHATEVER_SHR.EXE
-SYSTEM-F-SHRIDMISMAT, ident mismatch with shareable image
</div>

<p> This implies the executables require re-linking for your particular version
of VMS.  This can be accomplished quite simply, perform the linking section
only of the UPDATE.COM Procedure.

<!-- source:0400_ACCOUNT.WASDOC -->
<hr class="page">
<a id="4." href="#"></a>
<a id="4.serveraccountandenvironment" href="#"></a>
<a id="serveraccountandenvironment" href="#"></a>
<h1 class="head"><span class="numb">4.</span><span class="text">Server Account and Environment</span></h1>

<div class="TOC2cols2">
<table class="TOC2table">
<tr><td><a href="#4.1.vmsserveraccount"><span class="numb">4.1</span><span class="text">VMS Server Account</span></a>
<tr><td><a href="#4.2.vmsscriptingaccount"><span class="numb">4.2</span><span class="text">VMS Scripting Account</span></a>
<tr><td><a href="#4.3.accountsupportfiles"><span class="numb">4.3</span><span class="text">Account Support Files</span></a>
<tr><td><a href="#4.4.globalpagessections"><span class="numb">4.4</span><span class="text">Global Pages/Sections</span></a>
<tr><td><a href="#4.5.logicalnames"><span class="numb">4.5</span><span class="text">Logical Names</span></a>
<tr><td><a href="#4.5.1.wasdnametable"><span class="numb">4.5.1</span><span class="text">WASD Name Table</span></a>
<tr><td><a href="#4.6.serverstartup"><span class="numb">4.6</span><span class="text">Server Startup</span></a>
</table>
</div>

<table class="NAVtable NAVprint"><tr>
<td><a href="javascript:window.history.back();">&#8617;&#xFE0E;</a>
<td><a href="#3.">&#8598;&#xFE0E;</a>
<td><a href="#0.">&#8593;&#xFE0E;</a>
<td><a href="#5.">&#8600;&#xFE0E;</a>
<td><a href="javascript:window.history.forward();">&#8618;&#xFE0E;</a>
</table>

<p> The HTTP server account should be a standard account, preferably in a
group of its own (definitely at least a non-system, non-user group), with 
sufficient quotas to handle the expected traffic. 

<div class="note">
<a id="4.0.0.0.1" href="#"></a>
<a id="4.processquotas" href="#"></a>
<a id="processquotas" href="#"></a>
<h5 class="head center"><span class="text">Process Quotas!</span></h5>
<hr class="note_hr">
Server process quotas must be sufficient to support the expected traffic load.
BYTLM in particular, and then BIOLM, DIOL, FILLM and PGFLQUO, are all
considerations.
<hr class="note_hr">
</div>

<p> Symptoms of insufficient process quotas include:

<ul class="list list0">
<li class="item"> Textual pages OK, but pages with a significant number of images having
some or all &quot;broken&quot;.
<li class="item"> Scripts failing mysteriously, particularly when multiple in use
concurrently.
<li class="item"> Server and associated scripts all apparently waiting MWAIT or RWAST
states.
</ul>

<p> A general rule is more is better, after all, it will only use as much as
it needs!  To assist with setting a reasonable BYTLM quota the WATCH report (see
<a class="link blank" target="_blank" href="../features/#watchfacility">WATCH Facility</a> of <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>)
provides some feedback on server BYTLM usage.

<div class="note">
<a id="4.0.0.0.2" href="#"></a>
<a id="4.tcpipagentresources" href="#"></a>
<a id="tcpipagentresources" href="#"></a>
<h5 class="head center"><span class="text">TCP/IP Agent Resources!</span></h5>
<hr class="note_hr">
On an associated topic; some TCP/IP agents require particular internal
resources to be adjusted against given loads (e.g. buffer space allocations). 
Symptoms of resource starvation may be TCP/IP services, including WASD,
&quot;pausing&quot; for significant periods or associated processes entering
miscellaneous wait states, etc., during processing.  Please ensure such TCP/IP
agents are appropriately dimensioned for expected loads.

<p> Later versions of TCP/IP Services for OpenVMS seem to have large default
values for socket send and receive buffers.  MultiNet and TCPware are reported
to improve transfer of large responses by increasing low default values for
send buffer size. The WASD global configuration directives [SocketSizeRcvBuf]
and [SocketSizeSndBuf] allow default values to be adjusted.  WATCH can be used
to report network connection buffer values.

<hr class="note_hr">
</div>

<a id="4.1" href="#"></a>
<a id="4.1.vmsserveraccount" href="#"></a>
<a id="vmsserveraccount" href="#"></a>
<h2 class="head"><span class="numb">4.1</span><span class="text">VMS Server Account</span></h2>

<p> The following provides <span class="high under">a guide</span> to the account.

<div class="blockof code">Username: HTTP&dollar;SERVER                      Owner:  WASD Server
Account:  HTTPD                            UIC:    [077,001] ([HTTP&dollar;SERVER])
CLI:      DCL                              Tables: DCLTABLES
Default:  WASD_ROOT:[HTTP&dollar;SERVER]
LGICMD:   LOGIN
Flags:  Restricted DisNewMail
Primary days:   Mon Tue Wed Thu Fri
Secondary days:                     Sat Sun
Primary   000000000011111111112222  Secondary 000000000011111111112222
Day Hours 012345678901234567890123  Day Hours 012345678901234567890123
Network:  ##### Full access ######            ##### Full access ######
Batch:    ##### Full access ######            ##### Full access ######
Local:    -----  No access  ------            -----  No access  ------
Dialup:   -----  No access  ------            -----  No access  ------
Remote:   -----  No access  ------            -----  No access  ------
Expiration:            (none)    Pwdminimum:  6   Login Fails:     0
Pwdlifetime:         90 00:00    Pwdchange:      (pre-expired)
Last Login:            (none) (interactive), 11-MAY-1995 08:44 (non-interactive)
Maxjobs:         0  Fillm:       300  Bytlm:      5000000
Maxacctjobs:     0  Shrfillm:      0  Pbytlm:           0
Maxdetach:       0  BIOlm:      2048  JTquota:       1024
Prclm:         100  DIOlm:      1024  WSdef:         1000
Prio:            4  ASTlm:      2000  WSquo:         5000
Queprio:         0  TQElm:       100  WSextent:     20000
CPU:        (none)  Enqlm:       256  Pgflquo:     500000
Authorized Privileges:
  NETMBX    TMPMBX
Default Privileges:
  NETMBX    TMPMBX
</div>

<a id="4.2" href="#"></a>
<a id="4.2.vmsscriptingaccount" href="#"></a>
<a id="vmsscriptingaccount" href="#"></a>
<h2 class="head"><span class="numb">4.2</span><span class="text">VMS Scripting Account</span></h2>

<p> The following provides <span class="high under">a guide</span> to the account.

<div class="blockof code">Username: HTTP&dollar;NOBODY                      Owner:  WASD Scripting
Account:  HTTPD                            UIC:    [076,001] ([HTTP&dollar;NOBODY])
CLI:      DCL                              Tables: DCLTABLES
Default:  WASD_ROOT:[HTTP&dollar;NOBODY]
LGICMD:   LOGIN
Flags:  Restricted DisNewMail
Primary days:   Mon Tue Wed Thu Fri
Secondary days:                     Sat Sun
Primary   000000000011111111112222  Secondary 000000000011111111112222
Day Hours 012345678901234567890123  Day Hours 012345678901234567890123
Network:  ##### Full access ######            ##### Full access ######
Batch:    ##### Full access ######            ##### Full access ######
Local:    -----  No access  ------            -----  No access  ------
Dialup:   -----  No access  ------            -----  No access  ------
Remote:   -----  No access  ------            -----  No access  ------
Expiration:            (none)    Pwdminimum:  6   Login Fails:     0
Pwdlifetime:         90 00:00    Pwdchange:      (pre-expired)
Last Login:            (none) (interactive), 11-MAY-1995 08:44 (non-interactive)
Maxjobs:         0  Fillm:       300  Bytlm:       500000
Maxacctjobs:     0  Shrfillm:      0  Pbytlm:           0
Maxdetach:       0  BIOlm:      2048  JTquota:       1024
Prclm:         100  DIOlm:      1024  WSdef:         1000
Prio:            4  ASTlm:      2000  WSquo:         5000
Queprio:         0  TQElm:       100  WSextent:     20000
CPU:        (none)  Enqlm:       256  Pgflquo:     500000
Authorized Privileges:
  NETMBX    TMPMBX
Default Privileges:
  NETMBX    TMPMBX
</div>

<a id="4.3" href="#"></a>
<a id="4.3.accountsupportfiles" href="#"></a>
<a id="accountsupportfiles" href="#"></a>
<h2 class="head"><span class="numb">4.3</span><span class="text">Account Support Files</span></h2>

<div class="note"><a id="4.3.0.0.0.1" href="#"></a>
<a id="4.3.note" href="#"></a>
<a id="note" href="#"></a>
<h5 class="head center"><span class="text">Note</span></h5>
<hr class="note_hr">

Support procedures often change between versions.  It is always advisable to
check the versions documentation before installing or updating.
Examples may be found in <a class="link blank" target="_blank" href="/wasd_root/example/">WASD_ROOT:[EXAMPLE]</a>
<hr class="note_hr">
</div>

<a id="4.3.0.0.1" href="#"></a>
<a id="4.3.httpdexecutables" href="#"></a>
<a id="httpdexecutables" href="#"></a>
<h5 class="head"><span class="text">HTTPd Executables</span></h5>

<p> Two server executables can be built by the package.

<ul class="list">
<li class="item"> <span class="high bold">HTTPD.EXE &ndash;</span> basic server
<li class="item"> <span class="high bold">HTTPD_SSL.EXE &ndash;</span> TLS/SSL-enabled server
</ul>

<a id="4.3.0.0.2" href="#"></a>
<a id="4.3.privilegedimage" href="#"></a>
<a id="privilegedimage" href="#"></a>
<h5 class="head"><span class="text">Privileged Image</span></h5>

<p> As the HTTP&dollar;SERVER account should be completely unprivileged, and the 
HTTPd image requires ALTPRI, CMKRNL, DETACH, NETMBX, TMPMBX, OPER, PRMGBL,
PRMMBX, PSWAPM, SECURITY, SYSGBL, SYSLCK, SYSNAM, SYSPRV and WORLD
privileges (see the 
<a class="link blank" target="_blank" href="/wasd_root/src/httpd/readmore.txt">WASD_ROOT:[SRC.HTTPD]READMORE.TXT</a>)
document for a description of how and why the server uses these privileges).

<p> It is installed using a command similar to the following:

<div class="blockof code">&dollar; INSTALL = &quot;&dollar;SYS&dollar;SYSTEM:INSTALL/COMMAND_MODE&quot;
&dollar; INSTALL ADD WASD_EXE:HTTPD.EXE -
  /PRIVILEGE=(ALTPRI,CMKRNL,DETACH,OPER,PRMGBL,PRMMBX,PSWAPM,-
              SECURITY,SYSGBL,SYSLCK,SYSNAM,SYSPRV,WORLD) 
</div> 

<a id="4.3.0.0.2.999" href="#"></a>
<a id="4.3.dclprocedurestartupcom" href="#"></a>
<a id="dclprocedurestartupcom" href="#"></a>
<h6 class="head display0"><span class="text">DCL Procedure STARTUP.COM</span></h6>
<a id="4.3.0.0.3" href="#"></a>
<a id="4.3.startupcom" href="#"></a>
<a id="startupcom" href="#"></a>
<h5 class="head"><span class="text">STARTUP.COM</span></h5>

<p> Putting all this together the HTTP server startup procedure becomes 
something similar to the supplied example.  It should be called from
SYSTARTUP_VMS.COM or the site's equivalent.

<p> This procedure will support simple and quite complex sites. It works
closely with STARTUP_SERVER.COM (see below). It is designed to accept
parameters from the command-line or as pre-assigned symbols. Operating this way
requires no modifications to the procedure itself. Startup characteristics are
essentially determined by DCL symbol values. Some symbols are booleans,
switching functionality off and on, others require string values. When relevant
startup values are not assigned a reasonable default will be applied. See the
following examples.

<p> Startup characteristics can be determined by supplying symbol assignment
values as command-line parameters when calling the procedure.

<div class="blockof code">&dollar; @DKA0:[WASD_ROOT.STARTUP]STARTUP WASD_DECNET=1 WASD_SSL=1 -
WASD_SSL_CERTIFICATE=&quot;WASD_ROOT:[LOCAL]ALPHA.PEM&quot;
</div>

<p> Startup characteristics can also be determined by assigning the symbol
values before calling the procedure itself.

<div class="blockof code">&dollar; WASD_DECNET = 1
&dollar; WASD_SSL = 1
&dollar; WASD_SSL_CERTIFICATE = &quot;WASD_ROOT:[LOCAL]ALPHA.PEM&quot;
&dollar; @DKA0:[WASD_ROOT.STARTUP]STARTUP
</div>

<div class="blockof code">&dollar; @DKA0:[WASD_ROOT.STARTUP]STARTUP WASD_DECNET=1 WASD_BATCH_QUEUE=THIS&dollar;BATCH
</div>

<p> Check the procedure itself for detail on symbol names and functionality.
See <a class="link blank" target="_blank" href="/wasd_root/example/startup.com">WASD_ROOT:[EXAMPLE]STARTUP.COM</a>

<a id="4.3.0.0.3.999" href="#"></a>
<a id="4.3.dclprocedurestartuplocalcom" href="#"></a>
<a id="dclprocedurestartuplocalcom" href="#"></a>
<h6 class="head display0"><span class="text">DCL Procedure STARTUP_LOCAL.COM</span></h6>
<a id="4.3.0.0.4" href="#"></a>
<a id="4.3.startuplocalcom" href="#"></a>
<a id="startuplocalcom" href="#"></a>
<h5 class="head"><span class="text">STARTUP_LOCAL.COM</span></h5>

<p> This file is automatically executed by the STARTUP.COM procedure
immediately before the server is actually started.  It is provided to supply
all the local site's additional startup requirements.  For example, a
STARTUP.COM defined logical name could be modified here before the server
proper is actually started.  See
<a class="link blank" target="_blank" href="/wasd_root/example/startup_local.com">WASD_ROOT:[EXAMPLE]STARTUP_LOCAL.COM</a>

<a id="4.3.0.0.4.999" href="#"></a>
<a id="4.3.dclprocedurestartupservercom" href="#"></a>
<a id="dclprocedurestartupservercom" href="#"></a>
<h6 class="head display0"><span class="text">DCL Procedure STARTUP_SERVER.COM</span></h6>
<a id="4.3.0.0.5" href="#"></a>
<a id="4.3.startupservercom" href="#"></a>
<a id="startupservercom" href="#"></a>
<h5 class="head"><span class="text">STARTUP_SERVER.COM</span></h5>

<p> This procedure serves two purposes.

<ol class="list">

<li class="item">The procedure becomes SYS&dollar;COMMAND for a detached process created directly
during the execution of STARTUP.COM.

<li class="item"> The procedure then controls the activation of the HTTPd executable image
during server restarts and exits.

</ol>

<a class="link blank" target="_blank" href="/wasd_root/example/startup_server.com">WASD_ROOT:[EXAMPLE]STARTUP_SERVER.COM</a>

<p> It is recommended to pass server startup command-line parameters using the
WASD_SERVER_STARTUP logical name that this procedure checks for and uses if
present.  If this is defined the contents are applied to the server image when
executed.  It can be explicitly defined before WASD startup.

<div class="blockof code">&dollar; DEFINE /SYSTEM /EXECUTIVE WASD_STARTUP_SERVER &quot;/SYSUAF=ID&quot;
&dollar; @DKA0:[WASD_ROOT.STARTUP]STARTUP
</div>

<p> The value can also be passed to the main startup procedure in a symbol. 
The startup procedure then defines a system logical name with that value (note
that any quotes used must be escaped).

<div class="blockof code">&dollar; WASD_DECNET = 1
&dollar; WASD_SSL = 1
&dollar; WASD_SSL_CERTIFICATE = &quot;WASD_ROOT:[LOCAL]ALPHA.PEM&quot;
&dollar; WASD_STARTUP = &quot;/SYSUAF=ID&quot;
&dollar; @DKA0:[WASD_ROOT.STARTUP]STARTUP
</div>

<p> It can also be manually redefined at any time and the server restarted to
apply different startup parameters to the running server.

<div class="blockof code">&dollar; DEFINE /SYSTEM /EXECUTIVE WASD_STARTUP_SERVER &quot;/SYSUAF=(SSL,ID)&quot;
&dollar; HTTPD /DO=RESTART=NOW
</div>

<a id="4.4" href="#"></a>
<a id="4.4.globalpagessections" href="#"></a>
<a id="globalpagessections" href="#"></a>
<h2 class="head"><span class="numb">4.4</span><span class="text">Global Pages/Sections</span></h2>

<p> Various accounting, cache and other shared data used by the server is
provided by shared global memory.  These requires one permananet global 
section (SYSGEN parameter GBLSECTIONS) and a number of permanent global pages
(SYSGEN parameter GBLPAGES) per item. The number of items varies depending on
configuration. 

<a id="4.4.0.0.1" href="#"></a>
<a id="4.4.globalsections" href="#"></a>
<a id="globalsections" href="#"></a>
<h5 class="head"><span class="text">Global Sections</span></h5>

<table class="tabl">
<tr class="tabr under">
<th class="tabh">Item
<th class="tabh">Description
<th class="tabh">Usage
<tr class="tabr">
<tr class="tabr backlight">
<td class="tabd">Accounting
<td class="tabd">Accumulates various data provided to the Server
Administration Statistics report and the HTTPMON utility
<td class="tabd">required
<tr class="tabr">
<td class="tabd">Activity
<td class="tabd">Provides data to the Server Administration Activity Report
graph
<td class="tabd">required
<tr class="tabr backlight">
<td class="tabd">Authentication
<td class="tabd">When multiple WASD Instances are configured
provides a shared authentication cache
<td class="tabd">optional
<tr class="tabr">
<td class="tabd">Proxy Verification
<td class="tabd">When multiple WASD Instances are configured
provides an shared proxy verification cache
<td class="tabd">optional
<tr class="tabr backlight">
<td class="tabd">SSL Session Cache
<td class="tabd">When SSL is used and multiple WASD Instances are
configured provides a shared SSL session cache
<td class="tabd">optional 
</table>

<p> If there are insufficient global sections or pages the server will fail to
start for all requirements except the activity statistics, this will just be
disabled.  Server process log startup messages advise on current usage. 

<p> As permanent, system-accessible global sections are deployed it may be
necessary to explicitly delete them after ad hoc server experimentation, etc.
(<a class="link" href="#4.6.serverstartup">4.6 Server Startup</a>).  The startup qualifier /GBLSEC=NOPERM disables the
creation of permanent global sections eliminating this requirement.

<a id="4.5" href="#"></a>
<a id="4.5.logicalnames" href="#"></a>
<a id="logicalnames" href="#"></a>
<h2 class="head"><span class="numb">4.5</span><span class="text">Logical Names</span></h2>

<p> WASD uses an independent logical name table (see <a class="link" href="#4.5.1.wasdnametable">4.5.1 WASD Name Table</a>
below).  Versions prior to 10 used the SYSTEM table and a substantially
different naming schema.

<p> The following logical names are used in the operation of the package. These
are usually created by STARTUP.COM during server startup.

<p> 
<a id="4.5.0.0.1" href="#"></a>
<a id="4.5.packagelogicalnames" href="#"></a>
<a id="packagelogicalnames" href="#"></a>
<h5 class="head"><span class="text">Package Logical Names</span></h5>

<table class="tabl">
<tr class="tabr under">
<th class="tabh">Logical Name
<th class="tabh">Table
<th class="tabh">Description
<tr class="tabr">
<tr class="tabr backlight">
<td class="tabd">CGI-BIN
<td class="tabd">WASD
<td class="tabd">(Hyphen) System logical defining a search list with
the architecture-specific executable directory first, local script directory
second, then the common script directory, as a concealed device.
<tr class="tabr">
<td class="tabd">CGI_BIN
<td class="tabd">WASD
<td class="tabd">(Underscore) Directory containing architecture-neutral
script files.
<tr class="tabr backlight">
<td class="tabd">CGI_EXE
<td class="tabd">WASD
<td class="tabd">Directory containing architecture-specific script
executables.
<tr class="tabr">
<td class="tabd">HT_EXE
<td class="tabd">WASD
<td class="tabd">Pre-v10.0 backward compatibility for WASD_EXE.
<tr class="tabr backlight">
<td class="tabd">HT_LOGS
<td class="tabd">WASD
<td class="tabd">Pre-v10.0 backward compatibility for WASD_LOG.
<tr class="tabr">
<td class="tabd">HT_ROOT
<td class="tabd">SYSTEM
<td class="tabd">Pre-v10.0 backward compatibility for WASD_ROOT.
<tr class="tabr backlight">
<td class="tabd">HT_SCRATCH
<td class="tabd">WASD
<td class="tabd">Pre-v10.0 backward compatibility for WASD_SCRATCH.
<tr class="tabr">
<td class="tabd">WASD_AXP
<td class="tabd">WASD
<td class="tabd">Directory containing Alpha executable images
(WASD_ROOT:[AXP]).
<tr class="tabr backlight">
<td class="tabd">WASD_AUTH
<td class="tabd">WASD
<td class="tabd">Directory containing authentication/authorization
databases (files, (WASD_ROOT:[LOCAL])).
<tr class="tabr">
<td class="tabd">WASD_CGI_AXP
<td class="tabd">WASD
<td class="tabd">Directory containing Alpha script executables
(WASD_ROOT:[AXP-BIN]).
<tr class="tabr backlight">
<td class="tabd">WASD_CGI_IA64
<td class="tabd">WASD
<td class="tabd">Directory containing Itanium script executables
(WASD_ROOT:[IA64-BIN]).
<tr class="tabr">
<td class="tabd">WASD_CGI_X86_64
<td class="tabd">WASD
<td class="tabd">Directory containing x86-64 script executables
(WASD_ROOT:[X86_64-BIN]).
<tr class="tabr backlight">
<td class="tabd">WASD_CONFIG
<td class="tabd">WASD
<td class="tabd">Location of the configuration files.  Can be
defined as a search list.
<tr class="tabr">
<td class="tabd">WASD_CONFIG_AUTH
<td class="tabd">WASD
<td class="tabd">Location of the authentication/authorization
configuration file.
<tr class="tabr backlight">
<td class="tabd">WASD_CONFIG_GLOBAL
<td class="tabd">WASD
<td class="tabd">Location of the configuration file.
<tr class="tabr">
<td class="tabd">WASD_CONFIG_MAP
<td class="tabd">WASD
<td class="tabd">Location of the mapping rule file.
<tr class="tabr backlight">
<td class="tabd">WASD_CONFIG_MSG
<td class="tabd">WASD
<td class="tabd">Location of the message file.
<tr class="tabr">
<td class="tabd">WASD_CONFIG_SERVICE
<td class="tabd">WASD
<td class="tabd">Location of the optional service (virtual
host) configuration file.
<tr class="tabr backlight">
<td class="tabd">WASD_DECNET_CGI_OBJECT
<td class="tabd">SYSTEM
<td class="tabd">Locates the supporting DCL procedure.  DECnet objects are system-global.
<tr class="tabr">
<td class="tabd">WASD_DECNET_OSU_OBJECT
<td class="tabd">SYSTEM
<td class="tabd">Locates the supporting DCL procedure.  DECnet objects are system-global.
<tr class="tabr backlight">
<td class="tabd">WASD_EXE
<td class="tabd">WASD
<td class="tabd">Directory containing the executable images.
<tr class="tabr">
<td class="tabd">WASD_FILE_DEV[<span class="high italic">n</span>]
<td class="tabd">SYSTEM
<td class="tabd">Locates the DCL procedure that will integrate the specified environment's
logical name table into the processes' LNM&dollar;FILE_DEV (see above).
<tr class="tabr backlight">
<td class="tabd">WASD_GMT
<td class="tabd">WASD
<td class="tabd">Offset from GMT (e.g. &quot;+10:30&quot;,
&quot;-01:15&quot;) For systems supporting DTSS (e.g. DECnet-Plus) this logical
may be left undefined, with server time being calculated using the
SYS&dollar;TIMEZONE_DIFFERENTIAL logical.
<tr class="tabr">
<td class="tabd">WASD_IA64
<td class="tabd">WASD
<td class="tabd">Directory containing Itanium executable
images.
<tr class="tabr backlight">
<td class="tabd">WASD_LOG
<td class="tabd">WASD
<td class="tabd">If logging is enabled and no log file name
specified on the command line, this logical must be defined to locate the
file.  When a logging period is in use this logical need only contain the
directory used to store the logs.
<tr class="tabr">
<td class="tabd">WASD_LOGS
<td class="tabd">WASD
<td class="tabd">Optional definition, for convenient log file
specification.
<tr class="tabr backlight">
<td class="tabd">WASD_ROOT
<td class="tabd">SYSTEM
<td class="tabd">Location of WASD Web Services directory tree, as a
concealed device.
<tr class="tabr">
<td class="tabd">WASD_SCRATCH
<td class="tabd">WASD
<td class="tabd">Location of an optional directory that
scripts can use for temporary storage.  Must be read+write+delete accessible to
the server account.  The WASD_CONFIG_GLOBAL [DclCleanupScratchMinutesMax]
directive controls whether automatic cleanup scans of this area delete any
files that are older than [DclCleanupScratchMinutesOld].
<tr class="tabr backlight">
<td class="tabd">WASD_SITELOG
<td class="tabd">WASD
<td class="tabd">Location of the optional plain-text site log
file.
<tr class="tabr">
<td class="tabd">WASD_SSL_CAFILE
<td class="tabd">WASD
<td class="tabd">When using the SSL executable this logical
locates the optional Certificate Authority list file.
<tr class="tabr backlight">
<td class="tabd">WASD_SSL_CERT
<td class="tabd">WASD
<td class="tabd">When using the SSL executable this logical
locates the default certificate.
<tr class="tabr">
<td class="tabd">WASD_SERVER_LOGS
<td class="tabd">WASD
<td class="tabd">Location of the server process logs.
<tr class="tabr backlight">
<td class="tabd">WASD_STARTUP_SERVER
<td class="tabd">WASD
<td class="tabd">Used to pass parameters to the server
image startup command line.
<tr class="tabr">
<td class="tabd">WASD_X86_64
<td class="tabd">WASD
<td class="tabd">Directory containing x86-64 executable images.
</table>

<div class="note">
<a id="4.5.0.0.2" href="#"></a>
<a id="4.5.prev10logicalnames" href="#"></a>
<a id="prev10logicalnames" href="#"></a>
<h5 class="head center"><span class="text">Pre-v10 Logical Names</span></h5>
<hr class="note_hr">
The pre-v10.0.0 logical names (e.g. HTTPD&dollar;MAP) are deprecated and will be
obsoleted in a future version.  The server process log issues warnings such as
<span class="high monosp">HTTPD-W-DEPRECATED, change HTTPD&dollar;MAP to WASD_CONFIG_MAP (soon!)</span> for any it
finds during startup.
<hr class="note_hr">
</div>

<a id="4.5.1" href="#"></a>
<a id="4.5.1.wasdnametable" href="#"></a>
<a id="wasdnametable" href="#"></a>
<h3 class="head"><span class="numb">4.5.1</span><span class="text">WASD Name Table</span></h3>

<p> In an effort to localise WASD-related logical names and avoid polluting the
SYSTEM logical name table WASD version 10 creates it's own world-readable,
system-writable name table, and adds it to LNM&dollar;SYSTEM_DIRECTORY.

<div class="blockof code">&dollar; SHOW LOGICAL WASD_TABLE/TABLE=LNM&dollar;SYSTEM_DIRECTORY
   &quot;WASD_TABLE&quot; [table] = &quot;&quot; (LNM&dollar;SYSTEM_DIRECTORY)
</div>

<p> WASD logical names are then defined in that table leaving the SYSTEM table
with just a few essential names.

<div class="blockof code">&dollar; SHOW LOGICAL CGI*,HT*,WASD*,WWW*

(LNM&dollar;PROCESS_TABLE)

(LNM&dollar;JOB_81E3D580)

(WASD_TABLE)

  &quot;CGI-BIN&quot; = &quot;DKA0:[WASD_ROOT.CGI-BIN.]&quot;
        = &quot;DKA0:[WASD_ROOT.AXP-BIN.]&quot;
  &quot;CGI_BIN&quot; = &quot;WASD_ROOT:[CGI-BIN]&quot;
  &quot;CGI_EXE&quot; = &quot;WASD_ROOT:[AXP-BIN]&quot;
  &quot;HTBIN&quot; = &quot;CGI-BIN:[000000]&quot;
  &quot;HT_CACHE_ROOT&quot; = &quot;DKA0:[HT_CACHE.]&quot;
  &quot;HT_EXE&quot; = &quot;WASD_ROOT:[AXP]&quot;
  &quot;HT_LOGS&quot; = &quot;WASD_ROOT:[LOG]&quot;
  &quot;HT_SCRATCH&quot; = &quot;WASD_ROOT:[SCRATCH]&quot;
  &quot;WASD_AUTH&quot; = &quot;WASD_ROOT:[LOCAL]&quot;
  &quot;WASD_AXP&quot; = &quot;WASD_ROOT:[AXP]&quot;
  &quot;WASD_CACHE_ROOT&quot; = &quot;DKA0:[HT_CACHE.]&quot;
  &quot;WASD_CGILIBSHR32&quot; = &quot;CGI_EXE:CGILIBSHR32.EXE&quot;
  &quot;WASD_CGI_AXP&quot; = &quot;WASD_ROOT:[AXP-BIN]&quot;
  &quot;WASD_CGI_BIN&quot; = &quot;WASD_ROOT:[CGI-BIN]&quot;
  &quot;WASD_CGI_EXE&quot; = &quot;WASD_ROOT:[AXP-BIN]&quot;
  &quot;WASD_CGI_IA64&quot; = &quot;WASD_ROOT:[IA64-BIN]&quot;
  &quot;WASD_CGI_X86_64&quot; = &quot;WASD_ROOT:[X86_64-BIN]&quot;
  &quot;WASD_CONFIG&quot; = &quot;WASD_ROOT:[LOCAL]&quot;
  &quot;WASD_CONFIG_AUTH&quot; = &quot;WASD_CONFIG:HTTPD&dollar;AUTH.CONF&quot;
  &quot;WASD_CONFIG_GLOBAL&quot; = &quot;WASD_CONFIG:HTTPD&dollar;CONFIG.CONF&quot;
  &quot;WASD_CONFIG_MAP&quot; = &quot;WASD_CONFIG:HTTPD&dollar;MAP.CONF&quot;
  &quot;WASD_CONFIG_MSG&quot; = &quot;WASD_CONFIG:HTTPD&dollar;MSG.CONF&quot;
  &quot;WASD_CONFIG_SERVICE&quot; = &quot;WASD_CONFIG:HTTPD&dollar;SERVICE.CONF&quot;
  &quot;WASD_EXE&quot; = &quot;WASD_ROOT:[AXP]&quot;
  &quot;WASD_HTTPD_EXE&quot; = &quot;WASD_EXE:HTTPD_SSL.EXE&quot;
  &quot;WASD_IA64&quot; = &quot;WASD_ROOT:[IA64]&quot;
  &quot;WASD_JAVA&quot; = &quot;WASD_ROOT:[JAVA]&quot;
  &quot;WASD_LOCAL&quot; = &quot;WASD_ROOT:[LOCAL]&quot;
  &quot;WASD_LOGS&quot; = &quot;WASD_ROOT:[LOG]&quot;
  &quot;WASD_SCRATCH&quot; = &quot;WASD_ROOT:[SCRATCH]&quot;
  &quot;WASD_SCRIPT&quot; = &quot;WASD_ROOT:[SCRIPT]&quot;
  &quot;WASD_SCRIPT_LOCAL&quot; = &quot;WASD_ROOT:[SCRIPT_LOCAL]&quot;
  &quot;WASD_SERVER_LOGS&quot; = &quot;WASD_ROOT:[LOG_SERVER]&quot;
  &quot;WASD_SSL_CAFILE&quot; = &quot;WASD_CONFIG:CA-BUNDLE_CRT.TXT&quot;
  &quot;WASD_SSL_CERT&quot; = &quot;WASD_CONFIG:HTTPD.PEM&quot;
  &quot;WASD_STARTUP&quot; = &quot;WASD_ROOT:[STARTUP]&quot;
  &quot;WASD_STARTUP_SERVER&quot; = &quot;/SYSUAF=(ID,SSL)/PERSONA=RELAXED/PROFILE&quot;
  &quot;WASD_X86_64&quot; = &quot;WASD_ROOT:[X86_64]&quot;
  &quot;WWW_ROOT&quot; = &quot;DKA0:[WASD_ROOT.SRC.OSU]&quot;
  &quot;WWW_SCRIPT_MAX_REUSE&quot; = &quot;999&quot;

(LNM&dollar;GROUP_000001)

(LNM&dollar;SYSTEM_TABLE)

  &quot;HT_ROOT&quot; = &quot;DKA0:[WASD_ROOT.]&quot;
  &quot;WASD_DECNET_CGI_OBJECT&quot; = &quot;DKA0:[WASD_ROOT.CGI-BIN]CGIWASD.COM&quot;
  &quot;WASD_DECNET_OSU_OBJECT&quot; = &quot;DKA0:[WASD_ROOT.CGI-BIN]WWWEXEC.COM&quot;
  &quot;WASD_FILE_DEV&quot; = &quot;DKA0:[WASD_ROOT]WASD_FILE_DEV.COM&quot;
  &quot;WASD_ROOT&quot; = &quot;DKA0:[WASD_ROOT.]&quot;

(LNM&dollar;SYSCLUSTER_TABLE)

(DECW&dollar;LOGICAL_NAMES)
</div>

<p> As can be seen the number of LNM&dollar;SYSTEM_TABLE names is small, five in this
example (though it can vary).  Logical name WASD_FILE_DEV locates a procedure
to insert the WASD_TABLE into a process' LNM&dollar;FILE_DEV to make the table names
available.  Until that is done they are not visible without an explicit
/TABLE=WASD_TABLE.  The server automatically uses the procedure for itself and
scripting processes.  Site admins can simply

<div class="blockof code">&dollar; @WASD_FILE_DEV
</div>
 at the command-line or in their LOGIN.COM to have it done for their
interactive session(s).  This procedure location is variable within the
file-system and needs to be located and accessed without initially knowing that
location.

<p> The WASD_ROOT logical provides a convenient, global logical location for
the primary (default) WASD environment.  HT_ROOT is used to provide pre-v10
backward-compatibility with existing sites.  (If yours does not need the name
you can deassign it during server startup.)

<p> The WASD_DECNET_CGI_OBJECT and WASD_DECNET_OSU_OBJECT names provide global
locations for the two DECnet scripting environments.  These logicals are
defined when a site uses the [STARTUP]STARTUP_DECNET.COM procedure.  It is
necessary to provide a global location for these with multiple WASD
environments because DECnet objects are global entities.  The one object must
provide an infrastructure for potentially multiple WASD environments.

<p> Other SYSTEM logical names, WASD_TABLE+<span class="high italic">n</span> name tables, and
WASD_FILE_DEV<span class="high italic">n</span> logical names are used for non-primary WASD
environments (see
<a class="link blank" target="_blank" href="../features/#instancesandenvironments">Instances and Environments</a> of <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>).

<a id="4.6" href="#"></a>
<a id="4.6.serverstartup" href="#"></a>
<a id="serverstartup" href="#"></a>
<h2 class="head"><span class="numb">4.6</span><span class="text">Server Startup</span></h2>

<p> When starting up the server several characteristics of the server may be 
specified using qualifiers on the command line.  If not specified appropriate 
defaults are employed.  For recommended methods of passing parameters to the
executable at server startup see <a class="link" href="#4.3.startupservercom">&lsquo;STARTUP_SERVER.COM&rsquo; in 4.3 Account Support Files</a>.
For clarity some esoteric and legacy qualifiers and parameters are not listed in
this table.

<a id="4.6.0.0.1" href="#"></a>
<a id="4.6.serverimagecommandlineparameters" href="#"></a>
<a id="serverimagecommandlineparameters" href="#"></a>
<h5 class="head"><span class="text">Server Image Command-Line Parameters</span></h5>

<table class="tabl">
<tr class="tabr under">
<th class="tabh">Parameter/Qualifier
<th class="tabh">Description
<tr class="tabr">
<tr class="tabr backlight">
<td class="tabd">/ALL[=integer]
<td class="tabd">Has two roles.  When starting a server up assigns that
server to a specific, non-default WASD environment (see /ENVIRONMENT) When
using the server control /DO= using /ALL specifies to do the action to all
servers in that particular environment.
<tr class="tabr">
<td class="tabd">/AUTHORIZATION=..
<td class="tabd">Control authentication and authorisation
behaviour.
<br> See
<a class="link blank" target="_blank" href="../features/#authenticationpolicy">Authentication Policy</a> of <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>.
<tr class="tabr backlight">
<td class="tabd">/CGI_PREFIX=
<td class="tabd">The prefix to the CGI symbol names created 
for a script (defaults to &quot;WWW_&quot;).
<br> See <a class="link blank" target="_blank" href="../scripting/#0.">WASD Web Services - Scripting</a>
<tr class="tabr">
<td class="tabd">/CLUSTER
<td class="tabd">Apply control /DO= to all instances in a cluster (default
is to current node instance(s) only).
<tr class="tabr backlight">
<td class="tabd">/DETACH=
<td class="tabd">This qualifier allows a DCL procedure to be specified as
input to a directly detached process (in conjunction with /USER).
<tr class="tabr">
<td class="tabd">/DO=
<td class="tabd">Command to be performed by the executing server.
<tr class="tabr backlight">
<td class="tabd">/ENVIRONMENT=
<td class="tabd">Integer indicating in which environment this server
is executing
<tr class="tabr">
<td class="tabd">/GBLSEC=DELETE
<td class="tabd">Allows a monitor-associated
permanent global section to be explicitly deleted.  When a server starts it
creates system-accessible, permanent global sections in which to store
accounting and request data.  As this is permanent it would be possible for a
site, perhaps experimenting with servers over a range of ports, to consume
significant amounts of global pages and sections.  This qualifier allows such
sections to be deleted.
<tr class="tabr backlight">
<td class="tabd">/GBLSEC=NOPERM
<td class="tabd">Disables the creation of permanent global
sections.  They are automatically deleted when the server image exits.
<tr class="tabr">
<td class="tabd">/[NO]LOG[=name]
<td class="tabd">Either disables logging (overrides  configuration
directive), or enables logging and optionally specifies the log  file name
(also see section <a class="link" href="#4.5.logicalnames">4.5 Logical Names</a>, logging  is disabled by default).  If
the file specification is &quot;SYS&dollar;OUTPUT&quot; the server issues log
entries to &lt;stdout&gt;, allowing user-defined log formats to be easily checked and
refined.
<tr class="tabr backlight">
<td class="tabd">/NETWORK
<td class="tabd">Run the server and any scripting processes as
NETWORK mode rather than the default detached OTHER mode.
<tr class="tabr">
<td class="tabd">/NOTE=string
<td class="tabd">Annotate the server process log with the specified
string.  Intended to assist auditing server events such as restarts, maaping
reloads and the like.
<tr class="tabr backlight">
<td class="tabd">/OUTPUT=filename
<td class="tabd">Server image &lt;stdout&gt; is redirected to the specified
file name.  Useful when employing the /SYSPLUS report generator.
<tr class="tabr">
<td class="tabd">/PERSONA[=..]
<td class="tabd">Enables and controls detached process scripting.
<br> See
<a class="link blank" target="_blank" href="../scripting/#introduction">Introduction</a> of <a class="link blank" target="_blank" href="../scripting/#0.">WASD Scripting Environment</a>.
<tr class="tabr backlight">
<td class="tabd">/PRIORITY=
<td class="tabd">Server process priority (default is 4).
<tr class="tabr">
<td class="tabd">/[NO]PROFILE
<td class="tabd">Allows SYSUAF-authenticated username
security profiles to be used for file access.
<tr class="tabr backlight">
<td class="tabd">/PROMISCUOUS[=password]
<td class="tabd">Server will accept any
authentication username/password pair (used for testing, demonstrations, etc.)
<tr class="tabr">
<td class="tabd">/PROXY=string
<td class="tabd">Allows proxy maintainance activities to be
executed from the command line (e.g. from batch jobs, etc.).
<tr class="tabr backlight">
<td class="tabd">/SCRIPT=AS=username
<td class="tabd">Specifies the username of the
default scripting account.
<tr class="tabr">
<td class="tabd">/SERVICE=
<td class="tabd">Comma-separated, list of server services
(overrides the [Service] configuration parameter).
<tr class="tabr backlight">
<td class="tabd">/SOFTWARE=
<td class="tabd">An arbitrary string that can be used to override the
server software identification (i.e. &quot;HTTPd-WASD/10.4.0 OpenVMS/AXP
SSL&quot;).
<tr class="tabr">
<td class="tabd">/[NO]SSL[=..]
<td class="tabd">Controls Secure Sockets Layer protocol behaviour.
<br> See
<a class="link blank" target="_blank" href="../features/#transportlayersecurity">Transport Layer Security</a> of <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>.
<tr class="tabr backlight">
<td class="tabd">/SYSPLUS
<td class="tabd">Displays CLI equivalent System Report PLUS data.  Available
for circumstances where the server is unresponsive but an interactive session
is available.  Requires a 132 character width terminal session. 
<br> See
<a class="link blank" target="_blank" href="../features/#systemreportplus">System Report PLUS</a> of <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>.
<tr class="tabr">
<td class="tabd">/[NO]SYSUAF[=..]
<td class="tabd">Controls VMS (SYSUAF) authentication/authorisation
behaviour.
<br> See
<a class="link blank" target="_blank" href="../features/#sysuafauthenticatedusers">SYSUAF-Authenticated Users</a> of <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>.
<tr class="tabr backlight">
<td class="tabd">/USER=username
<td class="tabd">For VMS 6.2 and later this qualifier
allows the /DETACH qualifier to directly create a detached process executing as
the specified username.
<tr class="tabr">
<td class="tabd">/VALBLK[=16&verbar;64]
<td class="tabd">For server to (try) to use either pre-VMS V8.2 16
byte lock value block or the VMS V8.2 and later 64 byte lock value block.
<tr class="tabr backlight">
<td class="tabd">/VERSION
<td class="tabd">Displays the executable's version string and the copyright
notice.
<tr class="tabr">
<td class="tabd">/[NO]WATCH[=..]
<td class="tabd">Controls the use of the WATCH reporting facility.
<br> See
<a class="link blank" target="_blank" href="../features/#watchfacility">WATCH Facility</a> of <a class="link blank" target="_blank" href="../features/#0.">WASD Features and Facilities</a>.

</table>
<!-- source:0500_OTHER.WASDOC -->
<hr class="page">
<a id="5." href="#"></a>
<a id="5.otherwaystodeploy" href="#"></a>
<a id="otherwaystodeploy" href="#"></a>
<h1 class="head"><span class="numb">5.</span><span class="text">Other Ways to Deploy</span></h1>

<div class="TOC2cols2">
<table class="TOC2table">
<tr><td><a href="#5.1.serverenvironments"><span class="numb">5.1</span><span class="text">Server Environments</span></a>
<tr><td><a href="#5.1.1.adhocserverwrapper"><span class="numb">5.1.1</span><span class="text">Ad Hoc Server Wrapper</span></a>
<tr><td><a href="#5.1.2.formalenvironments"><span class="numb">5.1.2</span><span class="text">Formal Environments</span></a>
<tr><td><a href="#5.1.3.considerations"><span class="numb">5.1.3</span><span class="text">Considerations</span></a>
<tr><td><a href="#5.2.multipleinstallations"><span class="numb">5.2</span><span class="text">Multiple Installations</span></a>
<tr><td><a href="#5.3.selectcomprocedure"><span class="numb">5.3</span><span class="text">SELECT.COM Procedure</span></a>
<tr><td><a href="#5.4.0x0337btaincomprocedure"><span class="numb">5.4</span><span class="text">0&#x0337;BTAIN.COM Procedure</span></a>
<tr><td><a href="#5.5.clonecomprocedure"><span class="numb">5.5</span><span class="text">CLONE.COM Procedure</span></a>
</table>
</div>

<table class="NAVtable NAVprint"><tr>
<td><a href="javascript:window.history.back();">&#8617;&#xFE0E;</a>
<td><a href="#4.">&#8598;&#xFE0E;</a>
<td><a href="#0.">&#8593;&#xFE0E;</a>
<td><a href="#6.">&#8600;&#xFE0E;</a>
<td><a href="javascript:window.history.forward();">&#8618;&#xFE0E;</a>
</table>

<p> While <span class="high italic">vanilla</span> installations provide a straight-forward and complete WASD
package there a number of other approaches to the installation and maintenance
of a site or sites.

<a id="5.1" href="#"></a>
<a id="5.1.serverenvironments" href="#"></a>
<a id="serverenvironments" href="#"></a>
<h2 class="head"><span class="numb">5.1</span><span class="text">Server Environments</span></h2>

<p> WASD server environments allow multiple, distinctly configured environments
to execute on a single system.  Generally, WASD's unlimited virtual servers and
multiple account scripting eliminates the need for multiple execution
environments to kludge these requirements.  However there may be circumstances
that make this desirable; regression and forward-compatibility testing comes to
mind.

<p> First some general comments on the design of WASD.

<ul class="list">

<li class="item"> WASD creates and populates it's own logical name table (see
<a class="link" href="#4.5.logicalnames">4.5 Logical Names</a>).

<p> It also adds the WASD_FILE_DEV[<span class="high italic">n</span>] and WASD_ROOT[<span class="high italic">n</span>]
logical names to the SYSTEM logical name table.

<li class="item"> WASD creates and uses rights identifiers.

<p> Installation creates and associates specific rights identifiers with
separate accounts for server and script execution.  Some specifically named
identifiers have functional meaning to the server.  Server startup can create
and associate rights identifers used to manage the server run-time environment.

<p> All executing server images are aware of all other executing server images
on the same system and within the same cluster.  This performs all manner of
coordination (e.g. instance recovery, instantiated services) and data exchange
(e.g. &dollar;HTTPD/DO=MAP/ALL) activities.

<li class="item"> WASD uses global sections to accumulate data and for communication
between WASD instances.

<p> Some of these are by default permanent and remain on a system unless
explicitly removed.

<li class="item"> WASD uses detached scripting processes.

<p> As it's possible to &dollar;STOP a server process (and thereby prevent it's
run-down handlers from cleaning up those detached processes).  It therefore
needs to be able to recognise as its 'own' and clean any such 'orphaned'
processes up next time it starts.  It does this by having a rights identifier
associated with the server process name (e.g. WASD:80 grants its scripting
processes WASD_PRC_WASD_80, a second instance WASD2:80, WASD_PRC_WASD2_80,
etc.)

</ul>

<p> All of these mechanisms support multiple, independent environments on a
single system.  Due to design and implementation considerations there are
fifteen such environments available per system.  The primary (default) is one. 
Environments two to fifteen are available for site usage.  (Demonstration mode,
/DEMO uses environment zero.)  Server <span class="high italic">instances</span>
(<a class="link blank" target="_blank" href="../features/#serverinstances">Server Instances</a> section in <a class="link blank" target="_blank" href="../features/#0.">WASD Features</a> document)
share a single environment.

<p> There are two approaches to provisioning such multiple, independent
environments.

<a id="5.1.1" href="#"></a>
<a id="5.1.1.adhocserverwrapper" href="#"></a>
<a id="adhocserverwrapper" href="#"></a>
<h3 class="head"><span class="numb">5.1.1</span><span class="text">Ad Hoc Server Wrapper</span></h3>

<p> This is a DCL procedure that allows virtually any WASD release HTTP server
to be executed in a detached process, either by itself or concurrently with a
full release or other ad hoc detached server.  The server image and associated
configuration files used by this process can be specified within the procedure
allowing completely independent versions and environments to be fully
supported.

<p> Full usage instructions may be found in the example procedure(s) in
<a class="link blank" target="_blank" href="/wasd_root/example/*adhoc*.*">WASD_ROOT:[EXAMPLE]*ADHOC*.COM</a>

<p> Two versions are provided, one for pre-v10 and one for post-v10 (due to
changes in logical naming schema).

<a id="5.1.2" href="#"></a>
<a id="5.1.2.formalenvironments" href="#"></a>
<a id="formalenvironments" href="#"></a>
<h3 class="head"><span class="numb">5.1.2</span><span class="text">Formal Environments</span></h3>

<p> Although the basic infrastructure for supporting multiple environments
(i.e. the 0..15 environment number) has been in place since version 8, formal
support in server CLI qualifiers and DCL procedures has only been available
since version 10.  To support version 9 or earlier environments the
<a class="link" href="#5.1.1.adhocserverwrapper">5.1.1 Ad Hoc Server Wrapper</a> must be used.

<p> WASD version 10 startup and other run-time procedures have been modified to
support running multiple WASD environments simply from independent WASD
file-system trees.  The standard
<a class="link blank" target="_blank" href="/wasd_root/example/startup.com">STARTUP.COM</a>
procedure accepts the WASD_ENV parameter to specify which environment (1..15)
the server should execute within (primary/default is 1).  The procedure then
derives the WASD_ROOT logical name from the location of the startup procedure.

<p> For example:

<div class="blockof code">&dollar;! start current release
&dollar; WASD_STARTUP = &quot;/SYSUAF=(ID,SSL)/PERSONA&quot;
&dollar; @DKA0:[WASD_ROOT.STARTUP]STARTUP.COM
&dollar;! start previous release in environment 2
&dollar; WASD_ENV = 2
&dollar; @DKA0:[WASD_ROOT_MINUS1.STARTUP]STARTUP.COM
</div>

<a id="5.1.3" href="#"></a>
<a id="5.1.3.considerations" href="#"></a>
<a id="considerations" href="#"></a>
<h3 class="head"><span class="numb">5.1.3</span><span class="text">Considerations</span></h3>

<p> WASD environments each fully support all WASD features and facilities
(including multiple server instances) with the exception of DECnet scripting
where because of DECnet objects' global (per-system) definition only the one
must be shared between environments.

<p> Per-environment configuration must be done in its own WASD_ROOT part of the
file-system and logical names must be defined in the environment's associated
logical name table.  The site administrator must keep track of which
environment requires to be accessed from the command-line and set the process
logical name search list using the appropriate

<div class="blockof code">&dollar; @WASD_FILE_DEV<span class="high italic">n]</span>
</div>

where <span class="high italic">n</span> can be a non-primary environment number (see <a class="link" href="#4.5.logicalnames">4.5 Logical Names</a>).

<p> It is not possible to have multiple environments bind their services to the
same IP address and port (for fundamental networking reasons).  Unless the
network interface is specifically multi-homed for the purpose, services
provided by separate environments must be configured to use unique IP ports.

<p> Non-primary environments (2&hellip;15) prefix the environment as a (hex) digit
before the &quot;WASD&quot; in the process name.  The above example when executing, each
with a single scripting process, would appear in the system as (second
environment providing a service on port 2280):

<div class="blockof code">Pid      Process Name    State  Pri      I/O       CPU       Page flts  Pages
00000101 SWAPPER         HIB     16        0   0 00:00:11.98         0      0
&hellip;
00000111 ACME_SERVER     HIB     10     6247   0 00:00:12.63       540    611 M
00000112 QUEUE_MANAGER   HIB     10      328   0 00:00:00.18       136    175
00000122 TCPIP&dollar;INETACP   HIB     10  1249419   0 00:07:33.95       401    326
00000123 TCPIP&dollar;ROUTED    LEF      6  3495839   0 00:01:15.49       166    165 S
&hellip;
00000468 WASD:80         HIB      6   132924   0 00:01:29.26     17868   2856
0000046D 2WASD:2280      HIB      6   129344   0 00:01:29.26     17712   2840
0000049D WASD:80-8       LEF      4     4449   0 00:00:00.67       934    194
00000503 2WASD:2280-2    LEF      4      565   0 00:00:00.28       732    102
&hellip;
</div>

<a id="5.1.3.0.1" href="#"></a>
<a id="5.1.3.cleaningup" href="#"></a>
<a id="cleaningup" href="#"></a>
<h5 class="head"><span class="text">Cleaning Up</span></h5>

<p> As described earlier each environment creates and maintains logical name
table(s) and system-level name(s), detached scripting processes, lock resources
and permananent global sections.  Lock resources disappear with the server
processes.  Logical names, global sections, rights identifiers and occasionally
detached scripting processes may require some cleaning up when a non-primary
environment's use is concluded.

<a id="5.2" href="#"></a>
<a id="5.2.multipleinstallations" href="#"></a>
<a id="multipleinstallations" href="#"></a>
<h2 class="head"><span class="numb">5.2</span><span class="text">Multiple Installations</span></h2>

<p> It is possible, and often useful, to build another WASD on a system with an
existing and/or running installation.  One purpose might be to maintain the
previous version as a fallback in case of unexpected problems when migrating to
a more recent version.  Another, to maintain multiple releases for regression
testing.

<p> The general process is as follows:

<ul class="list">

<li class="item"> A clash with any existing [WASD_ROOT] directory must be avoided.
<br> Using the &quot;-d&quot; switch, UNZIP into a working directory using any
unique name (BLAH in this example).

<div class="blockof code">&dollar; SET DEFAULT device:[000000]
&dollar; UNZIP -d [.BLAH] device:[dir]archive.ZIP
</div>

Do the same with object module archive(s) if required.

<li class="item"> For the WASD OpenSSL package the WASD_ROOT portion of the tree
must additionally be specified.

<div class="blockof code">&dollar; UNZIP -d [.BLAH.WASD_ROOT] device:[dir]OPENSSLWASD<span class="high italic">nnn-arch</span>.ZIP
</div>

<li class="item"> Rename the WASD root directory into the current directory using a
representative name (appending the version number is suggested) and then
delete the working directory.

<div class="blockof code">&dollar; RENAME [.BLAH]WASD_ROOT.DIR []WASD_ROOT_<span class="high italic">nnnn</span>.DIR
&dollar; DELETE BLAH.DIR;*
</div>

<li class="item"> Move into the just renamed directory and build using the parameter INSTALL.
<br> The build is (always) performed using locally defined logical names.

<div class="blockof code">&dollar; SET DEFAULT [WASD_ROOT_<span class="high italic">nnnn</span>]
&dollar; @INSTALL INSTALL
</div>

<p> The INSTALL parameter overrides the install check and advisory message
otherwise generated:
 
<div class="blockof code">*****************************************
*   &quot;WASD_ROOT&quot; LOGICAL NAME DETECTED.  *
*  THIS DOES NOT LOOK LIKE AN INSTALL!  *
*****************************************
</div>

<li class="item"> As appropriate, copy configuration and other files from the current WASD
installation to the new.
<br> Check release notes for any variants. 

<div class="blockof code">&dollar; COPY WASD_ROOT:[LOCAL]*.* [WASD_ROOT_<span class="high italic">nnnn</span>.LOCAL]
</div>

<p> Other site-specific localisations similarly may need to be copied or
otherwise reproduced.
<br> For example, server or scripting account LOGIN.COM, scripts, etc.

</ul>

<p> To move the running WASD environment from one installation to another:

<ul class="list">

<li class="item"> Shut down the currently running server.

<div class="blockof code">&dollar; HTTPD/DO=EXIT=NOW
</div>

<li class="item"> Start the desired version of WASD from its file-system location.

<div class="blockof code">&dollar; @device:[WASD_ROOT_<span class="high italic">nnnn</span>.STARTUP]STARTUP.COM
</div>

<p> WASD logical names and environment will reflect the particular WASD root
directory.

<br> Site-specific elements in the startup might need to be similarly
flexible.

</ul>

<a id="5.2.0.0.0.999" href="#"></a>
<a id="5.2.dclprocedureselectcom" href="#"></a>
<a id="dclprocedureselectcom" href="#"></a>
<h6 class="head display0"><span class="text">DCL Procedure SELECT.COM</span></h6>
<a id="5.3" href="#"></a>
<a id="5.3.selectcomprocedure" href="#"></a>
<a id="selectcomprocedure" href="#"></a>
<h2 class="head"><span class="numb">5.3</span><span class="text">SELECT.COM Procedure</span></h2>

<p> The <a class="link blank" target="_blank" href="/wasd_root/install/select.com">WASD_ROOT:[INSTALL]SELECT.COM</a>
procedure allows a selective update to the most recent version from an
earlier version, usually but not exclusively the previous version.  Where there
is some advantage in only updating part of the package this procedure can be
used.

<div class="blockof code">&dollar; SET DEFAULT WASD_ROOT:[INSTALL]
&dollar; @SELECT DKA100:[WASD]WASD1150.ZIP

      WASD VMS Web Services, Copyright (C) 1996-2020 Mark G.Daniel.
  This package (all associated programs), comes with ABSOLUTELY NO WARRANTY.
   This is free software, and you are welcome to redistribute it under the
 conditions of the GNU GENERAL PUBLIC LICENSE, version 3, or any later version.
                    http://www.gnu.org/licenses/gpl.txt

                    *************************************
                    *  SELECTIVELY UPDATE FROM ARCHIVE  *
                    *************************************

This procedure provides a site UPDATE using a full archive as the source.
It examines the currently installed package to determine the relationship
between the site and the archive.  It then selectively extracts required files
to bring the site up to revision.  It can be used with full source archives
as well as the optional object module archives.

Each full archive is released with an increment in at least the tweak-level
digit in the version string (&lt;major&gt;.&lt;minor&gt;.&lt;tweak&gt; e.g. &quot;11.0.0&quot;) so this is
used to determine the base-level installation of the current site.  If for some
reason this is not a standard site then do not use this procedure.

Continue? [NO]: y

                         ***************************
                         *  CHECK CURRENT VERSION  *
                         ***************************

This selective update is to 11.5.0

This site has been determined to be 11.4.0

If this is not accurate then do not continue!

                          ************************
                          *  UPDATE FROM 11.4.n  *
                          *         -or- 11.3.n  *
                          ************************

DKA100:[000000]WASD_ROOT.DIR;1
                     13-APR-2020 01:14:42.25
DKA100:[WASD]WASD1150.ZIP;1
                      9-JUL-2020 15:53:47.19

Continue? [NO]:
</div>

<p> When extracted, the content can then be built using
<span class="high monosp">@[.WASD_ROOT.INSTALL]UPDATE.COM</span> as described in <a class="link" href="#3.2.updatecomprocedure">3.2 UPDATE.COM Procedure</a>.  It may or may not require a full update build.  The procedure
will advise if a specific portion can be more quickly built and deployed.

<a id="5.4" href="#"></a>
<a id="5.4.0x0337btaincomprocedure" href="#"></a>
<a id="0x0337btaincomprocedure" href="#"></a>
<h2 class="head"><span class="numb">5.4</span><span class="text">0&#x0337;BTAIN.COM Procedure</span></h2>
<a id="5.4.0.0.0.999" href="#"></a>
<a id="5.4.0btaincomprocedure" href="#"></a>
<a id="0btaincomprocedure" href="#"></a>
<h6 class="head display0"><span class="text">0BTAIN.COM Procedure</span></h6>
<a id="5.4.0.0.0.999" href="#"></a>
<a id="5.4.0btaincomprocedure" href="#"></a>
<a id="0btaincomprocedure" href="#"></a>
<h6 class="head display0"><span class="text">0BTAIN.COM Procedure</span></h6>
<a id="5.4.0.0.0.1000" href="#"></a>
<a id="5.4.dclprocedure0x0337btaincom" href="#"></a>
<a id="dclprocedure0x0337btaincom" href="#"></a>
<h6 class="head display0"><span class="text">DCL Procedure 0&#x0337;BTAIN.COM</span></h6>

<p> <span class="high bold" style="font-size:110%;">Yes &mdash; that's a ZERO!</span>

<p> The <a class="link blank" target="_blank" href="/wasd_root/install/0btain.com">WASD_ROOT:[INSTALL]0&#x0337;BTAIN.COM</a>
procedure assists in installing and updating selected portions of a WASD package
allowing a &quot;bare-bones&quot; site to be created.

<p> An example use of the procedure looks something like:

<div class="blockof code">&dollar; SET DEFAULT DKA200:[000000]
&dollar; @WASD_ROOT:[INSTALL]0BTAIN DKA100:[WASD]WASD1150.ZIP

        WASD VMS Web Services, Copyright (C) 1996-2020 Mark G.Daniel.
  This package (all associated programs), comes with ABSOLUTELY NO WARRANTY.
   This is free software, and you are welcome to redistribute it under the
 conditions of the GNU GENERAL PUBLIC LICENSE, version 3, or any later version.
                    http://www.gnu.org/licenses/gpl.txt

                     ***********************************
                     *  WASD VMS Web Services v11.5.0  *
                     ***********************************

This DCL procedure allows elements of the above version of the WASD package to
be extracted and installed/updated in a selective manner.  It does require some
knowledge of the WASD package and sometimes significant manual intervention.
It is intended to allow a site to tailor the WASD content of the installation.

Press RETURN to continue:

The WASD_ROOT directory is always assumed to be a subdirectory of the current
directory and is always created if not already existing.  Always perform @0BTAIN
from the parent of the (desired) [.WASD_ROOT] even when updating.

There is currently no [.WASD_ROOT] in the current directory.
Any further action will result in the creation of one.

Continue? [NO]: y

The selection can be made by specifying one of the listed elements, or by
archive path.  An overview will be presented and continuing with the option can
be declined before continuing.  If declined an option to display what would
have been extracted is available.  If an object module archive is present along
with the primary archive the relevant modules are also extracted.

   1.  CORE        extracts build, server, monitor, documentation
   2.  INSTALL     extracts install environment
   3.  SERVER      extracts server code
   4.  WASDOC      extracts documentation and wasDOC code
   5.  SCRIPTS     extracts essential scripts
   6.  path        archive path (e.g. &quot;wasd_root/src/httpd/*&quot;)
   0.  exit

Number or string? [0]:
</div>

<p> When extracted, the content of the new <span class="high monosp">[.WASD_ROOT]</span> directory can then be
built using <span class="high monosp">@[.WASD_ROOT.INSTALL]INSTALL.COM</span> as described in
<a class="link" href="#2.9.installcomprocedure">2.9 INSTALL.COM Procedure</a>, or <span class="high monosp">@[.WASD_ROOT.INSTALL]UPDATE.COM</span> as
described in <a class="link" href="#3.2.updatecomprocedure">3.2 UPDATE.COM Procedure</a>, as appropriate.  When using these
procedures individual sections building non-extracted elements must be
declined.  Alternatively, the build procedures associated with individual
elements may be directly used.

<p> The latest version of the procedure is automatically extracted from the
specified package, or it manually can be extracted from the target package
archive using

<div class="blockof code">&dollar; SET DEFAULT <span class="high italic">parent_device</span>:[<span class="high italic">parent_directory</span>]
&dollar; UNZIP -jl <span class="high italic">location:archive</span>.ZIP &quot;*/0btain.com&quot;  !(just to check)
&dollar; UNZIP -j <span class="high italic">location:archive</span>.ZIP &quot;*/0btain.com&quot;
&dollar; @[]0BTAIN.COM
</div>

<p> When manually extracted as above, the final stage of the procedure will
report 

<div class="blockof code">      ****************************************************************
      *                   - IGNORE THE FOLLOWING -                   *
      *  %RMS-E-FNF, file not found                                  *
      *  %RMS-F-ISI, invalid internal stream identifier (ISI) value  *
      ****************************************************************
</div>

which can be safely ignored (the procedure deletes itself from the extracted-to
directory which results in the DCL interpreter reporting the disappearance of
the file).

<p> Alternatively, if the latest package has been extracted to a local location,
or a previous installation included [INSTALL]0BTAIN.COM, then that version can
be used to start the whole thing off, extracting the relevant 0BTAIN.COM from
the specified archive and then executing it.

<a id="5.4.0.0.0.999" href="#"></a>
<a id="5.4.0btaincomprocedure" href="#"></a>
<a id="0btaincomprocedure" href="#"></a>
<h6 class="head display0"><span class="text">0BTAIN.COM Procedure</span></h6>
<a id="5.5" href="#"></a>
<a id="5.5.clonecomprocedure" href="#"></a>
<a id="clonecomprocedure" href="#"></a>
<h2 class="head"><span class="numb">5.5</span><span class="text">CLONE.COM Procedure</span></h2>

<p> The <a class="link blank" target="_blank" href="/wasd_root/install/clone.com">WASD_ROOT:[INSTALL]CLONE.COM</a>
procedure assists in creating a ZIP archive of an existing WASD installation
suitable for recreating the server on another system without the necessity of a
full installation.  This could be used to populate a series of systems with
pre-configured servers.

<p> An example use of the procedure looks something like:

<div class="blockof code">&dollar; @WASD_ROOT:[INSTALL]CLONE

      WASD VMS Web Services, Copyright (C) 1996-2020 Mark G.Daniel.
  This package (all associated programs), comes with ABSOLUTELY NO WARRANTY.
   This is free software, and you are welcome to redistribute it under the
 conditions of the GNU GENERAL PUBLIC LICENSE, version 3, or any later version.
                    http://www.gnu.org/licenses/gpl.txt

                           ***********************
                           *  CLONE THE PACKAGE  *
                           ***********************

This utility creates a separate DCL procedure containing ZIP commands to
archive specified portions of the current system's WASD_ROOT:[000000] tree.
That procedure can then be executed to create an archive which may then be
UNZIPed on any other system(s) to create a copy of the original.  In this way
multiple WASD packages can be deployed without going through the full
installation process and using the original as a working template.

Some portions of the package are essential to any working installation.  These
are always archived.  Others are prompted for and commands to archive those are
only added to the procedure if required.  Multiple such procedures may be
created by specifying unique archive procedure names.

Create a cloning procedure? [NO]: y

                          ************************
                          *  DCL PROCEDURE NAME  *
                          ************************

If multiple cloning procedures are required enter a specific file name,
otherwise use the default.

DCL procedure? [CLONE_WASD.COM]:

                             ******************
                             *  ARCHITECTURE  *
                             ******************

Executables for multiple architectures ([AXP], [IA64], [X86_64]) detected.

Add [AXP] executables? [NO]: y

Add [IA64] executables? [NO]: n

Add [X86_64] executables? [NO]: n

Continue? [NO]: y

                               ***************
                               *  ESSENTIAL  *
                               ***************

These directories and files are essential and always included:

  [AXP]              HTTPD.EXE  HTTPD_SSL.EXE  HTTPDMON.EXE  SECHAN.EXE
  [AXP-BIN]          Alpha script executables
  [CGI-BIN]          architecture-neutral script files
  [HTTP&dollar;NOBODY]      server account home
  [HTTP&dollar;SERVER]      scripting account home
  [INSTALL]          installation, update and security procedures
  [LOCAL]            local configuration files
  [LOG]              access logs
  [LOG_SERVER]       server process logs
  [RUNTIME.HTTPD]    server runtime files (directory listing graphics, etc)
  [SCRATCH]          scripting scratch space
  [STARTUP]          startup procedures (STARTUP*.COM)

Most directories retain some files (e.g. .WWW_HIDDEN, READMEs) but are only
optionally populated with other files as requested.

Continue? [NO]: y

                             *******************
                             *  CONFIGURATION  *
                             *******************

Files from [LOCAL]*.conf (e.g. HTTPD&dollar;CONFIG, HTTPD&dollar;MAP, etc.)

Add? [NO]: y

                                *************
                                *  SCRIPTS  *
                                *************

Files from [CGI-BIN] and executables from [AXP-BIN] and/or [IA64-BIN] and/or
[X86_64-BIN].  Note that this adds ALL files from these directories.  Of course
you can manually edit the resultant procedure to remove unwanted items.

This also adds the rest of the files from the [RUNTIME...] directory tree
(remembering that [RUNTIME.HTTPD] is included with the essential files).

Add? [NO]: n

                             *******************
                             *  DOCUMENTATION  *
                             *******************

Files from [WASDDOC...]*.*

Add? [NO]: y

                          ************************
                          *  EXAMPLE &amp; EXERCISE  *
                          ************************

Files from [EXAMPLE]*.* and [EXERCISE]*.*.

Add? [NO]: n

                                ************
                                *  SOURCE  *
                                ************

Files from [SRC...]*.*.

Add? [NO]: n

                      ********************************
                      *  CREATING ARCHIVE PROCEDURE  *
                      ********************************

Created WASD_ROOT:[install]CLONE_WASD.COM;1

The contents of this procedure can be manually modified and/or other command
lines added to archive or remove specific areas and/or files.

                            *********************
                            *  C O M P L E T E  *
                            *********************
</div>
<!-- source:0600_INDEX.WASDOC -->
<hr class="page">
<a id="6." href="#"></a>
<a id="6.index" href="#"></a>
<a id="index" href="#"></a>
<h1 class="head"><span class="numb">6.</span><span class="text">Index</span></h1>

<table class="NAVtable NAVprint"><tr>
<td><a href="javascript:window.history.back();">&#8617;&#xFE0E;</a>
<td><a href="#5.">&#8598;&#xFE0E;</a>
<td><a href="#0.">&#8593;&#xFE0E;</a>
<td><a href="#7.">&#8600;&#xFE0E;</a>
<td><a href="javascript:window.history.forward();">&#8618;&#xFE0E;</a>
</table>
<div class="IDXcols2">
<table class="IDXtable">
<tr><td class="alpha">A</td><td class="text"><a href="#0.abstract">&lsquo;Abstract&rsquo; in  WASD Install and Update</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.4.accessiblevolume">2.4&nbsp;Accessible Volume</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.3.accountsupportfiles">4.3&nbsp;Account Support Files</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#5.1.1.adhocserverwrapper">5.1.1&nbsp;Ad Hoc Server Wrapper</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#0.apachelicenseversion20">&lsquo;Apache License, Version 2.0&rsquo; in  WASD Install and Update</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.attributionandacknowledgement">7.&nbsp;Attribution and Acknowledgement</a>
<tr><td class="alpha">B</td><td class="text"><a href="#3.beforeupdating">&lsquo;Before Updating&rsquo; in 3. Update</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.bjoumlernhoumlehrmann">&lsquo;Bj&ouml;ern H&ouml;ehrmann&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">C</td><td class="text"><a href="#7.clarkcooperetal">&lsquo;Clark Cooper, et.al.&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#5.1.3.cleaningup">&lsquo;Cleaning Up&rsquo; in 5.1.3 Considerations</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#5.5.clonecomprocedure">5.5&nbsp;CLONE.COM Procedure</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#5.1.3.considerations">5.1.3&nbsp;Considerations</a>
<tr><td class="alpha">D</td><td class="text"><a href="#5.4.dclprocedure0x0337btaincom">&lsquo;DCL Procedure 0&#x0337;BTAIN.COM&rsquo; in 5.4 0&#x0337;BTAIN.COM Procedure</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#5.4.dclprocedureclonecom">DCL Procedure CLONE.COM</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.8.dclprocedureinstallcom">DCL procedure INSTALL.COM</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#5.2.dclprocedureselectcom">DCL Procedure SELECT.COM</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.3.dclprocedurestartupcom">DCL Procedure STARTUP.COM</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.3.dclprocedurestartuplocalcom">DCL Procedure STARTUP_LOCAL.COM</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.3.dclprocedurestartupservercom">DCL Procedure STARTUP_SERVER.COM</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#3.1.dclprocedureupdatecom">DCL Procedure UPDATE.COM</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.5.diskquota">2.5&nbsp;Disk Quota</a>
<tr><td class="alpha">F</td><td class="text"><a href="#5.1.2.formalenvironments">5.1.2&nbsp;Formal Environments</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.freesoftwarefoundation">&lsquo;Free Software Foundation&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">G</td><td class="text"><a href="#4.4.globalpagessections">4.4&nbsp;Global Pages/Sections</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.4.globalsections">&lsquo;Global Sections&rsquo; in 4.4 Global Pages/Sections</a>
<tr><td class="alpha">H</td><td class="text"><a href="#4.3.httpdexecutables">&lsquo;HTTPd Executables&rsquo; in 4.3 Account Support Files</a>
<tr><td class="alpha">I</td><td class="text"><a href="#6.index">6.&nbsp;Index</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.9.installcomprocedure">2.9&nbsp;INSTALL.COM Procedure</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.installation">2.&nbsp;Installation</a>
<tr><td class="alpha">L</td><td class="text"><a href="#0.license">&lsquo;License&rsquo; in  WASD Install and Update</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.licensedundertheapachelicenseversion20">&lsquo;Licensed under the Apache License, Version 2.0&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.11.localsetupsuggestions">2.11&nbsp;Local Setup Suggestions</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.5.logicalnames">4.5&nbsp;Logical Names</a>
<tr><td class="alpha">M</td><td class="text"><a href="#5.2.multipleinstallations">5.2&nbsp;Multiple Installations</a>
<tr><td class="alpha">N</td><td class="text"><a href="#1.newtowasdstarthere">1.&nbsp;New to WASD? Start Here!</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.noneofthefollowinglicensingappearsincompatiblewiththeapachelicense">&lsquo;None of the following licensing appears incompatible with the Apache License&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.1.note">&lsquo;Note&rsquo; in 2.1 Package UNZIP</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.1.note">&lsquo;Note&rsquo; in 2.1 Package UNZIP</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.10.note">&lsquo;Note&rsquo; in 2.10 Quick-Check</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#3.1.note">&lsquo;Note&rsquo; in 3.1 Package UNZIP</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.3.note">&lsquo;Note&rsquo; in 4.3 Account Support Files</a>
<tr><td class="alpha">O</td><td class="text"><a href="#5.4.obtaincomprocedure">OBTAIN.COM Procedure</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.3.ods5volume">2.3&nbsp;ODS-5 Volume</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.ohiostateuniversity">&lsquo;Ohio State University&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#0.onlinesearch">&lsquo;Online Search&rsquo; in  WASD Install and Update</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.opensslproject">&lsquo;OpenSSL Project&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#5.otherwaystodeploy">5.&nbsp;Other Ways to Deploy</a>
<tr><td class="alpha">P</td><td class="text"><a href="#2.2.packagedirectorystructure">2.2&nbsp;Package Directory Structure</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.5.packagelogicalnames">&lsquo;Package Logical Names&rsquo; in 4.5 Logical Names</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.1.packageunzip">2.1&nbsp;Package UNZIP</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#3.1.packageunzip">3.1&nbsp;Package UNZIP</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.paulejones">&lsquo;Paul E. Jones&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.5.prev10logicalnames">&lsquo;Pre-v10 Logical Names&rsquo; in 4.5 Logical Names</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.3.privilegedimage">&lsquo;Privileged Image&rsquo; in 4.3 Account Support Files</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.processquotas">&lsquo;Process Quotas!&rsquo; in 4. Server Account and Environment</a>
<tr><td class="alpha">Q</td><td class="text"><a href="#2.10.quickcheck">2.10&nbsp;Quick-Check</a>
<tr><td class="alpha">R</td><td class="text"><a href="#3.3.relinking">3.3&nbsp;Re-Linking</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.12.reportingproblems">2.12&nbsp;Reporting Problems</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.rsadatasecurity">&lsquo;RSA Data Security&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">S</td><td class="text"><a href="#5.3.selectcomprocedure">5.3&nbsp;SELECT.COM Procedure</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.serveraccountandenvironment">4.&nbsp;Server Account and Environment</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#5.1.serverenvironments">5.1&nbsp;Server Environments</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.6.serverimagecommandlineparameters">&lsquo;Server Image Command-Line Parameters&rsquo; in 4.6 Server Startup</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.6.serverstartup">4.6&nbsp;Server Startup</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.1.sourcearchiveobjectmodulearchives">&lsquo;Source Archive, Object Module Archives&rsquo; in 2.1 Package UNZIP</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#3.1.sourcearchiveobjectmodulearchives">&lsquo;Source Archive, Object Module Archives&rsquo; in 3.1 Package UNZIP</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.3.startupcom">&lsquo;STARTUP.COM&rsquo; in 4.3 Account Support Files</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.3.startuplocalcom">&lsquo;STARTUP_LOCAL.COM&rsquo; in 4.3 Account Support Files</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.3.startupservercom">&lsquo;STARTUP_SERVER.COM&rsquo; in 4.3 Account Support Files</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.stuartlangridge">&lsquo;Stuart Langridge&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.7.sysuafandrightslist">2.7&nbsp;SYSUAF and RIGHTSLIST</a>
<tr><td class="alpha">T</td><td class="text"><a href="#0.tableofcontent">&lsquo;Table of Content&rsquo; in  WASD Install and Update</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.tatsuhirotsujikawa">&lsquo;Tatsuhiro Tsujikawa&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.tcpipagentresources">&lsquo;TCP/IP Agent Resources!&rsquo; in 4. Server Account and Environment</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.8.tcpipinfrastructure">2.8&nbsp;TCP/IP Infrastructure</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#1.2.troubleshooting">1.2&nbsp;Troubleshooting?</a>
<tr><td class="alpha">U</td><td class="text"><a href="#3.update">3.&nbsp;Update</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#3.2.updatecomprocedure">3.2&nbsp;UPDATE.COM Procedure</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#3.1.updatingfromv93orearlier">&lsquo;Updating From v9.3 or Earlier&rsquo; in 3.1 Package UNZIP</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#1.1.usingia64hostedx86crosscomplier">1.1&nbsp;Using IA64-hosted X86 Cross-Complier?</a>
<tr><td class="alpha">V</td><td class="text"><a href="#2.6.vms6n">2.6&nbsp;VMS 6.n</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.2.vmsscriptingaccount">4.2&nbsp;VMS Scripting Account</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.1.vmsserveraccount">4.1&nbsp;VMS Server Account</a>
<tr><td class="alpha">W</td><td class="text"><a href="#2.7.warning">&lsquo;WARNING!&rsquo; in 2.7 SYSUAF and RIGHTSLIST</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#0.wasdinstallandupdate">&lsquo;WASD Install and Update&rsquo; in  WASD Install and Update</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#4.5.1.wasdnametable">4.5.1&nbsp;WASD Name Table</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#2.1.wasdopensslarchive">&lsquo;WASD OpenSSL Archive&rsquo; in 2.1 Package UNZIP</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#3.1.wasdopensslarchive">&lsquo;WASD OpenSSL Archive&rsquo; in 3.1 Package UNZIP</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#7.wasdvmswebservicesndashcopyrightcopy19962021markgdaniel">&lsquo;WASD VMS Web Services &ndash; Copyright &copy; 1996-2021 Mark G. Daniel&rsquo; in 7. Attribution and Acknowledgement</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#1.welcome">&lsquo;Welcome!&rsquo; in 1. New to WASD? Start Here!</a>
<tr><td class="alpha">0&#x0337;</td><td class="text"><a href="#5.4.0x0337btaincomprocedure">5.4&nbsp;0&#x0337;BTAIN.COM Procedure</a>
<tr><td class="alpha">&nbsp;</td><td class="text"><a href="#5.4.0btaincomprocedure">0BTAIN.COM Procedure</a>
</table>
</div>

<hr class="page">
<a id="7." href="#"></a>
<a id="7.attributionandacknowledgement" href="#"></a>
<a id="attributionandacknowledgement" href="#"></a>
<h1 class="head"><span class="numb">7.</span><span class="text">Attribution and Acknowledgement</span></h1>

<table class="NAVtable NAVprint"><tr>
<td><a href="javascript:window.history.back();">&#8617;&#xFE0E;</a>
<td><a href="#6.">&#8598;&#xFE0E;</a>
<td><a href="#0.">&#8593;&#xFE0E;</a>
<td><a>&#8600;&#xFE0E;</a>
<td><a href="javascript:window.history.forward();">&#8618;&#xFE0E;</a>
</table>

<a id="7.0.0.0.1" href="#"></a>
<a id="7.wasdvmswebservicesndashcopyrightcopy19962021markgdaniel" href="#"></a>
<a id="wasdvmswebservicesndashcopyrightcopy19962021markgdaniel" href="#"></a>
<h5 class="head"><span class="text">WASD VMS Web Services &ndash; Copyright &copy; 1996-2021 Mark G. Daniel</span></h5>

<a id="7.0.0.0.2" href="#"></a>
<a id="7.licensedundertheapachelicenseversion20" href="#"></a>
<a id="licensedundertheapachelicenseversion20" href="#"></a>
<h5 class="head"><span class="text">Licensed under the <span class="high bold">Apache License</span>, Version 2.0</span></h5>

<p>
<div class="blockof code">You may not use this software except in compliance with the License.
You may obtain a copy of the License at

<a class="link blank" target="_blank" style="margin-left:1em;" href="https://www.apache.org/licenses/LICENSE-2.0">https://www.apache.org/licenses/LICENSE-2.0</a>

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
</div>

<a id="7.0.0.0.3" href="#"></a>
<a id="7.noneofthefollowinglicensingappearsincompatiblewiththeapachelicense" href="#"></a>
<a id="noneofthefollowinglicensingappearsincompatiblewiththeapachelicense" href="#"></a>
<h5 class="head"><span class="text">None of the following licensing appears incompatible with the Apache License</span></h5>

<a id="7.0.0.0.4" href="#"></a>
<a id="7.clarkcooperetal" href="#"></a>
<a id="clarkcooperetal" href="#"></a>
<h5 class="head"><span class="text">Clark Cooper, et.al.</span></h5>

<p> This package uses the Expat XML parsing toolkit.

<div class="blockof code">Copyright (c) 1998, 1999, 2000
Thai Open Source Software Center Ltd and Clark Cooper
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
</div>

<a id="7.0.0.0.5" href="#"></a>
<a id="7.bjoumlernhoumlehrmann" href="#"></a>
<a id="bjoumlernhoumlehrmann" href="#"></a>
<h5 class="head"><span class="text">Bj&ouml;ern H&ouml;ehrmann</span></h5>

<p> This package uses essential algorithm and code from Flexible and Economical
UTF-8 Decoder.

<div class="blockof code">Copyright (c) 2008-2009 Bj&ouml;ern H&ouml;ehrmann (&lt;bjoern@hoehrmann.de&gt;)

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
</div>

<a id="7.0.0.0.6" href="#"></a>
<a id="7.freesoftwarefoundation" href="#"></a>
<a id="freesoftwarefoundation" href="#"></a>
<h5 class="head"><span class="text">Free Software Foundation</span></h5>

<p> This package contains software made available by the Free Software
Foundation under the GNU General Public License.

<div class="blockof code">This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
</div>

<a id="7.0.0.0.7" href="#"></a>
<a id="7.ohiostateuniversity" href="#"></a>
<a id="ohiostateuniversity" href="#"></a>
<h5 class="head"><span class="text">Ohio State University</span></h5>

<p> This package contains software provided with the OSU (DECthreads) HTTP
server package, authored by David Jones:

<div class="blockof code">Copyright 1994,1997 The Ohio State University.  
The Ohio State University will not assert copyright with respect
to reproduction, distribution, performance and/or modification 
of this program by any person or entity that ensures that all 
copies made, controlled or distributed by or for him or it bear 
appropriate acknowlegement of the developers of this program.
</div>

<a id="7.0.0.0.8" href="#"></a>
<a id="7.opensslproject" href="#"></a>
<a id="opensslproject" href="#"></a>
<h5 class="head"><span class="text">OpenSSL Project</span></h5>
                                                                           
<p> This product <span class="high italic">can</span> include software developed by the OpenSSL Project for
use in the OpenSSL Toolkit (<a class="link blank" target="_blank" href="https://www.openssl.org/">https://www.openssl.org/</a>).

<div class="blockof code">Redistribution and use in source and binary forms, with or without
modification, are permitted ...
</div>

<a id="7.0.0.0.9" href="#"></a>
<a id="7.paulejones" href="#"></a>
<a id="paulejones" href="#"></a>
<h5 class="head"><span class="text">Paul E. Jones</span></h5>

<p> This package uses SHA-1 hash code.

<div class="blockof code">Copyright (C) 1998, 2009
Paul E. Jones &lt;paulej@packetizer.com&gt;

Freeware Public License (FPL)

This software is licensed as &quot;freeware.&quot;  Permission to distribute this
software in source and binary forms, including incorporation  into other
products, is hereby granted without a fee.
</div>

<a id="7.0.0.0.10" href="#"></a>
<a id="7.rsadatasecurity" href="#"></a>
<a id="rsadatasecurity" href="#"></a>
<h5 class="head"><span class="text">RSA Data Security</span></h5>

<p> This software contains code derived in part from RSA Data Security, Inc:

<div class="blockof code">permission granted to make and use derivative works provided that such works
are identified as &quot;derived from the RSA Data Security, Inc. MD5 Message-Digest
Algorithm&quot; in all material mentioning or referencing the derived work.
</div>

<a id="7.0.0.0.11" href="#"></a>
<a id="7.stuartlangridge" href="#"></a>
<a id="stuartlangridge" href="#"></a>
<h5 class="head"><span class="text">Stuart Langridge</span></h5>

<p> SortTable version 2
<br> Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/

<div class="blockof code">Thanks to many, many people for contributions and suggestions.
Licenced as X11: <a class="link blank" target="_blank" href="http://www.kryogenix.org/code/browser/licence.html">http://www.kryogenix.org/code/browser/licence.html</a>
This basically means: do what you want with it.
</div>

<a id="7.0.0.0.12" href="#"></a>
<a id="7.tatsuhirotsujikawa" href="#"></a>
<a id="tatsuhirotsujikawa" href="#"></a>
<h5 class="head"><span class="text">Tatsuhiro Tsujikawa</span></h5>

<p> nghttp2 - HTTP/2 C Library
<br> Tatsuhiro Tsujikawa, <a class="link blank" target="_blank" href="https://github.com/tatsuhiro-t">https://github.com/tatsuhiro-t</a>

<div class="blockof code">Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the &quot;Software&quot;), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
</div>

<p> <span class="high bold">VSI OpenVMS</span>,
<span class="high bold">VSI TCP/IP Services for OpenVMS</span>,
<span class="high bold">VSI C</span>

<br> are registered trademarks of VMS Software Inc. 

<p> <span class="high bold">OpenVMS</span>,
<span class="high bold">HP TCP/IP Services for OpenVMS</span>,
<span class="high bold">HP C</span>,
<span class="high bold">Alpha</span>,
<span class="high bold">Itanium</span> and
<span class="high bold">VAX</span>

<br> are registered trademarks of Hewlett Packard Enterprise 

<p> <span class="high bold">MultiNet</span> and <span class="high bold">TCPware</span> are registered trademarks of Process Software
Corporation

<table class="NAVtable NAVprint"><tr>
<td><a href="javascript:window.history.back();">&#8617;&#xFE0E;</a>
<td><a href="#6.">&#8598;&#xFE0E;</a>
<td><a href="#0.">&#8593;&#xFE0E;</a>
<td><a>&#8600;&#xFE0E;</a>
<td><a href="javascript:window.history.forward();">&#8618;&#xFE0E;</a>
</table>
<title>WASD Install and Update</title>