head     56.3;
access   paws bayes jws quist brad dew jwh;
symbols  ;
locks    ; strict;
comment  @# @;


56.3
date     93.01.27.13.34.00;  author jwh;  state Exp;
branches ;
next     56.2;

56.2
date     93.01.27.12.10.23;  author jwh;  state Exp;
branches ;
next     56.1;

56.1
date     91.11.05.09.31.59;  author jwh;  state Exp;
branches ;
next     55.1;

55.1
date     91.08.25.10.10.03;  author jwh;  state Exp;
branches ;
next     54.1;

54.1
date     91.03.18.15.17.35;  author jwh;  state Exp;
branches ;
next     53.1;

53.1
date     91.03.11.19.18.06;  author jwh;  state Exp;
branches ;
next     52.1;

52.1
date     91.02.19.09.03.18;  author jwh;  state Exp;
branches ;
next     51.1;

51.1
date     91.01.30.16.02.27;  author jwh;  state Exp;
branches ;
next     50.1;

50.1
date     90.10.29.16.16.01;  author jwh;  state Exp;
branches ;
next     49.1;

49.1
date     90.08.14.14.04.22;  author jwh;  state Exp;
branches ;
next     48.1;

48.1
date     90.07.26.11.10.07;  author jwh;  state Exp;
branches ;
next     47.1;

47.1
date     90.05.14.10.48.18;  author dew;  state Exp;
branches ;
next     46.1;

46.1
date     90.05.07.08.36.08;  author jwh;  state Exp;
branches ;
next     45.1;

45.1
date     90.04.19.15.43.04;  author jwh;  state Exp;
branches ;
next     44.1;

44.1
date     90.04.01.22.01.02;  author jwh;  state Exp;
branches ;
next     43.1;

43.1
date     90.03.20.13.50.55;  author jwh;  state Exp;
branches ;
next     42.1;

42.1
date     90.01.23.17.36.25;  author jwh;  state Exp;
branches ;
next     41.1;

41.1
date     89.12.22.11.18.36;  author jwh;  state Exp;
branches ;
next     40.1;

40.1
date     89.09.29.11.41.27;  author jwh;  state Exp;
branches ;
next     39.1;

39.1
date     89.09.26.16.26.56;  author dew;  state Exp;
branches ;
next     38.1;

38.1
date     89.08.29.11.17.25;  author jwh;  state Exp;
branches ;
next     37.1;

37.1
date     89.05.12.11.30.49;  author dew;  state Exp;
branches ;
next     36.1;

36.1
date     89.02.06.10.09.46;  author dew;  state Exp;
branches ;
next     35.1;

35.1
date     89.02.02.13.21.24;  author dew;  state Exp;
branches ;
next     34.1;

34.1
date     89.01.23.15.56.40;  author jwh;  state Exp;
branches ;
next     33.1;

33.1
date     89.01.16.11.31.45;  author dew;  state Exp;
branches ;
next     32.1;

32.1
date     89.01.10.11.37.58;  author bayes;  state Exp;
branches ;
next     31.1;

31.1
date     88.12.14.17.58.53;  author bayes;  state Exp;
branches ;
next     30.1;

30.1
date     88.12.09.13.37.08;  author dew;  state Exp;
branches ;
next     29.1;

29.1
date     88.10.31.15.21.11;  author bayes;  state Exp;
branches ;
next     28.1;

28.1
date     88.10.06.10.50.30;  author dew;  state Exp;
branches ;
next     27.1;

27.1
date     88.09.29.11.16.37;  author bayes;  state Exp;
branches ;
next     26.1;

26.1
date     88.09.28.12.34.42;  author bayes;  state Exp;
branches ;
next     25.1;

25.1
date     88.03.02.09.11.13;  author bayes;  state Exp;
branches ;
next     24.1;

24.1
date     87.08.31.09.22.47;  author jws;  state Exp;
branches ;
next     23.1;

23.1
date     87.08.26.09.58.58;  author bayes;  state Exp;
branches ;
next     22.1;

22.1
date     87.08.17.10.40.04;  author bayes;  state Exp;
branches ;
next     21.1;

21.1
date     87.08.12.13.27.18;  author bayes;  state Exp;
branches ;
next     20.1;

20.1
date     87.07.30.10.37.53;  author bayes;  state Exp;
branches ;
next     19.1;

19.1
date     87.06.01.07.56.03;  author jws;  state Exp;
branches ;
next     18.1;

18.1
date     87.05.20.14.51.00;  author bayes;  state Exp;
branches ;
next     17.1;

17.1
date     87.04.30.10.08.09;  author jws;  state Exp;
branches ;
next     16.1;

16.1
date     87.04.26.15.22.20;  author jws;  state Exp;
branches ;
next     15.1;

15.1
date     87.04.13.08.49.16;  author jws;  state Exp;
branches ;
next     14.1;

14.1
date     87.04.01.14.47.15;  author jws;  state Exp;
branches ;
next     13.1;

13.1
date     87.02.28.18.10.15;  author jws;  state Exp;
branches ;
next     12.1;

12.1
date     87.02.02.12.57.49;  author jws;  state Exp;
branches ;
next     11.1;

11.1
date     87.01.19.09.23.44;  author jws;  state Exp;
branches ;
next     10.1;

10.1
date     86.12.24.10.30.01;  author jws;  state Exp;
branches ;
next     9.1;

9.1
date     86.12.12.13.53.51;  author bayes;  state Exp;
branches ;
next     8.1;

8.1
date     86.11.27.11.27.36;  author jws;  state Exp;
branches ;
next     7.1;

7.1
date     86.11.20.13.14.51;  author hal;  state Exp;
branches ;
next     6.1;

6.1
date     86.11.04.17.16.31;  author paws;  state Exp;
branches ;
next     5.1;

5.1
date     86.10.28.16.04.38;  author hal;  state Exp;
branches ;
next     4.1;

4.1
date     86.09.30.19.19.35;  author hal;  state Exp;
branches ;
next     3.1;

3.1
date     86.09.01.11.29.05;  author hal;  state Exp;
branches ;
next     2.1;

2.1
date     86.07.30.14.20.46;  author hal;  state Exp;
branches ;
next     1.1;

1.1
date     86.06.30.13.52.00;  author danm;  state tmp;
branches ;
next     ;


desc
@Base file for PWS 3.2 release.

@


56.3
log
@
pws2rcs automatic delta on Wed Jan 27 13:14:25 MST 1993
@
text
@			{file STRUCTS}

  FUNCTION PAOFCHAR (*FSP: STP): BOOLEAN*);
    var lsp: stp;
    BEGIN PAOFCHAR := FALSE;
    IF FSP <> NIL THEN
      IF FSP^.FORM = ARRAYS THEN
	if FSP^.AISPACKD then
	  begin
	  lsp := fsp^.aeltype;
	  PAOFCHAR := (lsp = CHAR_PTR)
	  end;
    END (*PAOFCHAR*) ;

  FUNCTION STRGTYPE(*FSP: STP) : BOOLEAN*);
    BEGIN STRGTYPE := FALSE;
    IF PAOFCHAR(FSP) THEN STRGTYPE := FSP^.AISSTRNG
    END (*STRGTYPE*) ;

  function enumtype(*fsp: stp): boolean *);
    var
      b: boolean;
    begin
    enumtype := false;
    if fsp <> nil then
      if fsp^.form = scalar then
	begin
	b := (fsp^.scalkind = declared)
		       and (fsp <> boolptr);

	enumtype := b;
	if stdpasc and b then error(606);
	end;
    end;

  function makepaofchartype (* lgth: shortint) : stp *) ;
    (* Create type for a string constant of length lgth *)
    var lsp: stp;
    begin
      new(lsp,arrays,true,true);
      with lsp^ do
	begin
	ispackable := false; sizeoflo := false;
{***** Machine dependent size & align of a packed array of char *****}
	unpacksize := lgth; align := 2;
	info := sysinfo;
	form := arrays;
	aeltype := char_ptr;
	aispackd := true;
	aelbitsize := bitsperchar;
	aisstrng := false;
	new(inxtype,subrange);
	with inxtype^ do
	  begin
	  ispackable:=false; unpacksize := intsize; align := intalign;
	  info := sysinfo; form := subrange; rangetype := intptr;
	  min := 1; max := lgth
	  end
	end;
      makepaofchartype := lsp
    end (*makepaofchartype*);

  procedure stretchpaofchar(var fsp: stp; var fvalu: valu; lgth: integer);
    { create packed array of char of length lgth, coercing single char
      to pa of char and padding with blanks as necessary }
    var lvp: csp; k: shortint;
    begin
    if lgth > 255 then
      begin
      error(659);
      lgth := 255;
      end;
    fsp := makepaofchartype(lgth);
    newwords(lvp,(sizeof(constrec,true,paofch)-(strglgth-lgth)+1) div 2);
    with lvp^ do
      begin cclass := paofch;
      if fvalu.intval then
	begin slgth := 1; sval[1] := chr(fvalu.ival) end
      else
	begin slgth := fvalu.valp^.slgth;
	for k := 1 to slgth do sval[k] := fvalu.valp^.sval[k];
	end;
      for k := slgth+1 to lgth do sval[k] := ' ';
      if (slgth <> lgth) and stdpasc then
	error(606);
      slgth := lgth;
      end;
    with fvalu do begin intval := false; valp := lvp end;
    end; {stretchpaofchar}

  function isPAC (fsp: stp): boolean;
    { fsp is an index type for a type for
      which PAOFCHAR yields true }
    begin
    isPAC := false;
    if fsp <> nil then
      with fsp^ do
	if form = subrange then
	  if (min = 1) or UCSD then
	    isPAC := (rangetype = intptr) or
		     (rangetype = shortintptr);
    end; {isPAC}

  function comppacs(fsp1,fsp2: stp): boolean;
    {fsp1 & fsp2 must be index types of
     packed arrays of char}
    var lmin1,lmin2,lmax1,lmax2: integer;
    begin
    if (fsp1=nil) or (fsp2=nil) then
      comppacs := true
    else if isPAC(fsp1) and isPAC(fsp2) then
      comppacs := (fsp1^.max - fsp1^.min) =
		  (fsp2^.max - fsp2^.min)
    else comppacs := false;
    end; (*comppacs*)

  function compparmlists(fcp1,fcp2: ctp; checkids,fixingfwd: boolean): boolean;
    label 1;

    function compcnfparm(fstp1,fstp2: stp): boolean;
      begin
      compcnfparm := true;
      if fstp1^.aispackd <> fstp2^.aispackd then goto 1;
      if fstp1^.form <> fstp2^.form then goto 1
      else if not fstp1^.aispackd then
	if fstp1^.strucwaspackd <> fstp2^.strucwaspackd then goto 1;
      if (fstp1^.inxtype <> NIL) and (fstp2^.inxtype <> NIL) then
	if fstp1^.inxtype <> fstp2^.inxtype then goto 1;
      if (fstp1^.aeltype <> NIL) and (fstp2^.aeltype <> NIL) then
	if fstp1^.aeltype^.form = cnfarrays then
	  begin
	  if not compcnfparm(fstp1^.aeltype,fstp2^.aeltype) then goto 1;
	  end
	else
	  if fstp1^.aeltype <> fstp2^.aeltype then goto 1;
      end;

    begin compparmlists := false;
    while (fcp1 <> nil) and (fcp2 <> nil) do
      begin
      if fcp1^.vtype <> fcp2^.vtype then goto 1;
      if fcp1^.vtype <> dopeparm then { dopeparms will not match, thats OK }
	if fcp1^.idtype <> fcp2^.idtype then
	  if fcp1^.idtype^.form = cnfarrays then
	    begin
	    if not compcnfparm(fcp1^.idtype,fcp2^.idtype) then goto 1;
	    end
	  else
	    if fixingfwd or (fcp1^.vtype <> anyvarparm) then goto 1;
      if fcp1^.klass = routineparm then
	if not compparmlists(fcp1^.proktype^.params,
	    fcp2^.proktype^.params,false,fixingfwd) then goto 1;
      if checkids then
	if fcp1^.namep^ <> fcp2^.namep^ then goto 1;
      fcp1 := fcp1^.next; fcp2 := fcp2^.next;
      end;
    compparmlists := fcp1=fcp2;  { if not both nil, then wrong # of parms }
 1: end;

  FUNCTION COMPTYPES (*FSP1,FSP2: STP) : BOOLEAN*);
    BEGIN
    if fsp1 = fsp2 then
      comptypes := true
    else if (fsp1 = nil) or (fsp2 = nil) then
      comptypes := true
    else IF FSP1^.FORM = FSP2^.FORM THEN
      CASE FSP1^.FORM OF
	SCALAR:
	  comptypes := ( (fsp1 = intptr) or (fsp1 = shortintptr) )
			 and ( (fsp2 = intptr) or (fsp2 = shortintptr) );
	reals,RECORDS:
	  COMPTYPES := FALSE;
	FILES:
	  comptypes := (fsp1 = anyfileptr) or
		       (fsp2 = anyfileptr);
	SUBRANGE:
	  COMPTYPES := COMPTYPES(FSP1^.RANGETYPE,FSP2^.RANGETYPE);
	POINTER:
	  comptypes :=
		 (fsp1=anyptrptr) or (fsp2=anyptrptr);
	POWER: COMPTYPES := COMPTYPES(FSP1^.ELSET,FSP2^.ELSET);
	substring: comptypes := false;
	ARRAYS:
	  if not (fsp1^.aispackd and fsp2^.aispackd) then
	    comptypes := false
	  else if FSP1^.AISSTRNG and FSP2^.AISSTRNG then
	    comptypes := true
	  else if paofchar(fsp1) and paofchar(fsp2) then
	    comptypes := comppacs(fsp1^.inxtype,fsp2^.inxtype)
	  else comptypes := false;
	cnfarrays: comptypes := false;
	prok:
	  comptypes := compparmlists(fsp1^.params,fsp2^.params,false,false);
      END (*CASE*)
    ELSE (*FSP1^.FORM <> FSP2^.FORM*)
      IF FSP1^.FORM = SUBRANGE THEN
	COMPTYPES := COMPTYPES(FSP1^.RANGETYPE,FSP2)
      ELSE IF FSP2^.FORM = SUBRANGE THEN
	COMPTYPES := COMPTYPES(FSP1,FSP2^.RANGETYPE)
      ELSE COMPTYPES := FALSE
    END; (*COMPTYPES*)

  PROCEDURE GETBOUNDS (*FSP: STP; VAR FMIN,FMAX: integer*);
    BEGIN
    WITH FSP^ DO
      IF FORM = SUBRANGE THEN
	BEGIN FMIN := MIN; FMAX := MAX; END
      ELSE if fsp = shortintptr then
	begin fmin := -32768; fmax := 32767 end
      else if (fsp=intptr) or (form<>scalar) then
	begin fmin := minint; fmax := maxint end
      else
	BEGIN FMIN := 0;
	IF FSP = CHAR_PTR THEN FMAX := 255
	ELSE
	  IF FSP^.FCONST <> NIL THEN
	    FMAX := FSP^.FCONST^.VALUES.IVAL
	  ELSE FMAX := 0
	END;
    END; (*GETBOUNDS*)

  procedure makefileident(var idptr: ctp;
			  name: string10;
			  offset: shortint);
    begin
    new(idptr,vars);
    with idptr^ do
      begin
      newident(namep,name);
      idtype := textptr;
      next := NIL;
      klass := vars;
      info := sysinfo;
      globalptr := sysglobalptr;
      vlev := 1;
      vaddr := offset;
      vtype := refparm;
      end;
    end;

@


56.2
log
@
pws2rcs automatic delta on Wed Jan 27 11:57:27 MST 1993
@
text
@d1 240
@


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 240
			{file STRUCTS}

  FUNCTION PAOFCHAR (*FSP: STP): BOOLEAN*);
    var lsp: stp;
    BEGIN PAOFCHAR := FALSE;
    IF FSP <> NIL THEN
      IF FSP^.FORM = ARRAYS THEN
	if FSP^.AISPACKD then
	  begin
	  lsp := fsp^.aeltype;
	  PAOFCHAR := (lsp = CHAR_PTR)
	  end;
    END (*PAOFCHAR*) ;

  FUNCTION STRGTYPE(*FSP: STP) : BOOLEAN*);
    BEGIN STRGTYPE := FALSE;
    IF PAOFCHAR(FSP) THEN STRGTYPE := FSP^.AISSTRNG
    END (*STRGTYPE*) ;

  function enumtype(*fsp: stp): boolean *);
    var
      b: boolean;
    begin
    enumtype := false;
    if fsp <> nil then
      if fsp^.form = scalar then
	begin
	b := (fsp^.scalkind = declared)
		       and (fsp <> boolptr);

	enumtype := b;
	if stdpasc and b then error(606);
	end;
    end;

  function makepaofchartype (* lgth: shortint) : stp *) ;
    (* Create type for a string constant of length lgth *)
    var lsp: stp;
    begin
      new(lsp,arrays,true,true);
      with lsp^ do
	begin
	ispackable := false; sizeoflo := false;
{***** Machine dependent size & align of a packed array of char *****}
	unpacksize := lgth; align := 2;
	info := sysinfo;
	form := arrays;
	aeltype := char_ptr;
	aispackd := true;
	aelbitsize := bitsperchar;
	aisstrng := false;
	new(inxtype,subrange);
	with inxtype^ do
	  begin
	  ispackable:=false; unpacksize := intsize; align := intalign;
	  info := sysinfo; form := subrange; rangetype := intptr;
	  min := 1; max := lgth
	  end
	end;
      makepaofchartype := lsp
    end (*makepaofchartype*);

  procedure stretchpaofchar(var fsp: stp; var fvalu: valu; lgth: integer);
    { create packed array of char of length lgth, coercing single char
      to pa of char and padding with blanks as necessary }
    var lvp: csp; k: shortint;
    begin
    if lgth > 255 then
      begin
      error(659);
      lgth := 255;
      end;
    fsp := makepaofchartype(lgth);
    newwords(lvp,(sizeof(constrec,true,paofch)-(strglgth-lgth)+1) div 2);
    with lvp^ do
      begin cclass := paofch;
      if fvalu.intval then
	begin slgth := 1; sval[1] := chr(fvalu.ival) end
      else
	begin slgth := fvalu.valp^.slgth;
	for k := 1 to slgth do sval[k] := fvalu.valp^.sval[k];
	end;
      for k := slgth+1 to lgth do sval[k] := ' ';
      if (slgth <> lgth) and stdpasc then
	error(606);
      slgth := lgth;
      end;
    with fvalu do begin intval := false; valp := lvp end;
    end; {stretchpaofchar}

  function isPAC (fsp: stp): boolean;
    { fsp is an index type for a type for
      which PAOFCHAR yields true }
    begin
    isPAC := false;
    if fsp <> nil then
      with fsp^ do
	if form = subrange then
	  if (min = 1) or UCSD then
	    isPAC := (rangetype = intptr) or
		     (rangetype = shortintptr);
    end; {isPAC}

  function comppacs(fsp1,fsp2: stp): boolean;
    {fsp1 & fsp2 must be index types of
     packed arrays of char}
    var lmin1,lmin2,lmax1,lmax2: integer;
    begin
    if (fsp1=nil) or (fsp2=nil) then
      comppacs := true
    else if isPAC(fsp1) and isPAC(fsp2) then
      comppacs := (fsp1^.max - fsp1^.min) =
		  (fsp2^.max - fsp2^.min)
    else comppacs := false;
    end; (*comppacs*)

  function compparmlists(fcp1,fcp2: ctp; checkids,fixingfwd: boolean): boolean;
    label 1;

    function compcnfparm(fstp1,fstp2: stp): boolean;
      begin
      compcnfparm := true;
      if fstp1^.aispackd <> fstp2^.aispackd then goto 1;
      if fstp1^.form <> fstp2^.form then goto 1
      else if not fstp1^.aispackd then
	if fstp1^.strucwaspackd <> fstp2^.strucwaspackd then goto 1;
      if (fstp1^.inxtype <> NIL) and (fstp2^.inxtype <> NIL) then
	if fstp1^.inxtype <> fstp2^.inxtype then goto 1;
      if (fstp1^.aeltype <> NIL) and (fstp2^.aeltype <> NIL) then
	if fstp1^.aeltype^.form = cnfarrays then
	  begin
	  if not compcnfparm(fstp1^.aeltype,fstp2^.aeltype) then goto 1;
	  end
	else
	  if fstp1^.aeltype <> fstp2^.aeltype then goto 1;
      end;

    begin compparmlists := false;
    while (fcp1 <> nil) and (fcp2 <> nil) do
      begin
      if fcp1^.vtype <> fcp2^.vtype then goto 1;
      if fcp1^.vtype <> dopeparm then { dopeparms will not match, thats OK }
	if fcp1^.idtype <> fcp2^.idtype then
	  if fcp1^.idtype^.form = cnfarrays then
	    begin
	    if not compcnfparm(fcp1^.idtype,fcp2^.idtype) then goto 1;
	    end
	  else
	    if fixingfwd or (fcp1^.vtype <> anyvarparm) then goto 1;
      if fcp1^.klass = routineparm then
	if not compparmlists(fcp1^.proktype^.params,
	    fcp2^.proktype^.params,false,fixingfwd) then goto 1;
      if checkids then
	if fcp1^.namep^ <> fcp2^.namep^ then goto 1;
      fcp1 := fcp1^.next; fcp2 := fcp2^.next;
      end;
    compparmlists := fcp1=fcp2;  { if not both nil, then wrong # of parms }
 1: end;

  FUNCTION COMPTYPES (*FSP1,FSP2: STP) : BOOLEAN*);
    BEGIN
    if fsp1 = fsp2 then
      comptypes := true
    else if (fsp1 = nil) or (fsp2 = nil) then
      comptypes := true
    else IF FSP1^.FORM = FSP2^.FORM THEN
      CASE FSP1^.FORM OF
	SCALAR:
	  comptypes := ( (fsp1 = intptr) or (fsp1 = shortintptr) )
			 and ( (fsp2 = intptr) or (fsp2 = shortintptr) );
	reals,RECORDS:
	  COMPTYPES := FALSE;
	FILES:
	  comptypes := (fsp1 = anyfileptr) or
		       (fsp2 = anyfileptr);
	SUBRANGE:
	  COMPTYPES := COMPTYPES(FSP1^.RANGETYPE,FSP2^.RANGETYPE);
	POINTER:
	  comptypes :=
		 (fsp1=anyptrptr) or (fsp2=anyptrptr);
	POWER: COMPTYPES := COMPTYPES(FSP1^.ELSET,FSP2^.ELSET);
	substring: comptypes := false;
	ARRAYS:
	  if not (fsp1^.aispackd and fsp2^.aispackd) then
	    comptypes := false
	  else if FSP1^.AISSTRNG and FSP2^.AISSTRNG then
	    comptypes := true
	  else if paofchar(fsp1) and paofchar(fsp2) then
	    comptypes := comppacs(fsp1^.inxtype,fsp2^.inxtype)
	  else comptypes := false;
	cnfarrays: comptypes := false;
	prok:
	  comptypes := compparmlists(fsp1^.params,fsp2^.params,false,false);
      END (*CASE*)
    ELSE (*FSP1^.FORM <> FSP2^.FORM*)
      IF FSP1^.FORM = SUBRANGE THEN
	COMPTYPES := COMPTYPES(FSP1^.RANGETYPE,FSP2)
      ELSE IF FSP2^.FORM = SUBRANGE THEN
	COMPTYPES := COMPTYPES(FSP1,FSP2^.RANGETYPE)
      ELSE COMPTYPES := FALSE
    END; (*COMPTYPES*)

  PROCEDURE GETBOUNDS (*FSP: STP; VAR FMIN,FMAX: integer*);
    BEGIN
    WITH FSP^ DO
      IF FORM = SUBRANGE THEN
	BEGIN FMIN := MIN; FMAX := MAX; END
      ELSE if fsp = shortintptr then
	begin fmin := -32768; fmax := 32767 end
      else if (fsp=intptr) or (form<>scalar) then
	begin fmin := minint; fmax := maxint end
      else
	BEGIN FMIN := 0;
	IF FSP = CHAR_PTR THEN FMAX := 255
	ELSE
	  IF FSP^.FCONST <> NIL THEN
	    FMAX := FSP^.FCONST^.VALUES.IVAL
	  ELSE FMAX := 0
	END;
    END; (*GETBOUNDS*)

  procedure makefileident(var idptr: ctp;
			  name: string10;
			  offset: shortint);
    begin
    new(idptr,vars);
    with idptr^ do
      begin
      newident(namep,name);
      idtype := textptr;
      next := NIL;
      klass := vars;
      info := sysinfo;
      globalptr := sysglobalptr;
      vlev := 1;
      vaddr := offset;
      vtype := refparm;
      end;
    end;

@


55.1
log
@Automatic bump of revision number for PWS version 3.25A
@
text
@@


54.1
log
@Automatic bump of revision number for PWS version 3.24
@
text
@@


53.1
log
@Automatic bump of revision number for PWS version 3.24B
@
text
@@


52.1
log
@Automatic bump of revision number for PWS version 3.24A
@
text
@@


51.1
log
@Automatic bump of revision number for PWS version 3.24d
@
text
@@


50.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


49.1
log
@Automatic bump of revision number for PWS version 3.24b
@
text
@@


48.1
log
@Automatic bump of revision number for PWS version 3.24a
@
text
@@


47.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


46.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


45.1
log
@Automatic bump of revision number for PWS version 3.23C
@
text
@@


44.1
log
@Automatic bump of revision number for PWS version 3.23B
@
text
@@


43.1
log
@Automatic bump of revision number for PWS version 3.23aA
@
text
@@


42.1
log
@Automatic bump of revision number for PWS version 3.23e
@
text
@@


41.1
log
@Automatic bump of revision number for PWS version 3.23d
@
text
@@


40.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


39.1
log
@Automatic bump of revision number for PWS version 3.23b
@
text
@@


38.1
log
@Automatic bump of revision number for PWS version 3.23a
@
text
@@


37.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


36.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


35.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


34.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


33.1
log
@Automatic bump of revision number for PWS version 3.22D
@
text
@@


32.1
log
@Automatic bump of revision number for PWS version 3.22C
@
text
@@


31.1
log
@Automatic bump of revision number for PWS version 3.22B
@
text
@@


30.1
log
@Automatic bump of revision number for PWS version 3.22A
@
text
@@


29.1
log
@Automatic bump of revision number for PWS version 3.22b
@
text
@@


28.1
log
@Automatic bump of revision number for PWS version 3.3b
@
text
@@


27.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


26.1
log
@Automatic bump of revision number for PWS version 3.3 Synch
@
text
@@


25.1
log
@Automatic bump of revision number for PWS version 3.2Y
@
text
@@


24.1
log
@Automatic bump of revision number for PWS version 3.2
@
text
@@


23.1
log
@Automatic bump of revision number for PWS version 3.2P
@
text
@@


22.1
log
@Automatic bump of revision number for PWS version 3.2N
@
text
@@


21.1
log
@Automatic bump of revision number for PWS version 3.2M
@
text
@@


20.1
log
@Automatic bump of revision number for PWS version 3.2L
@
text
@@


19.1
log
@Automatic bump of revision number for PWS version 3.2K
@
text
@@


18.1
log
@Automatic bump of revision number for PWS version 3.2J
@
text
@@


17.1
log
@Automatic bump of revision number for PWS version 3.2I+
@
text
@@


16.1
log
@Automatic bump of revision number for PWS version 3.2I
@
text
@@


15.1
log
@Automatic bump of revision number for PWS version 3.2H
@
text
@@


14.1
log
@Automatic bump of revision number for PWS version 3.2G
@
text
@@


13.1
log
@Automatic bump of revision number for PWS version 3.2F
@
text
@@


12.1
log
@Automatic bump of revision number for PWS version 3.2E
@
text
@@


11.1
log
@Automatic bump of revision number for PWS version 3.2D
@
text
@@


10.1
log
@Automatic bump of revision number for PWS version 3.2C
@
text
@@


9.1
log
@Automatic bump of revision number for PWS version 3.2B
@
text
@@


8.1
log
@Automatic bump of revision number for PWS version 3.2A
@
text
@@


7.1
log
@Automatic bump of revision number for PWS version 3.2l
@
text
@@


6.1
log
@Automatic bump of revision number for PWS version 3.2k
@
text
@@


5.1
log
@Automatic bump of revision number for PWS version 3.2j
@
text
@@


4.1
log
@Automatic bump of revision number for PWS version 3.2i
@
text
@@


3.1
log
@Automatic bump of revision number for PWS version 3.2h
@
text
@@


2.1
log
@Auto bump rev number to 2.1 for sys 3.2e.
@
text
@@


1.1
log
@Initial revision
@
text
@@
