DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦fda4ee893⟧ TextFile

    Length: 421165 (0x66d2d)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦ba941b672⟧ 
            └─⟦this⟧ 

TextFile

    The use of this system is subject to the software license terms and
    conditions agreed upon between Rational and the Customer.

                         Copyright 1990 by Rational.
            
                          RESTRICTED RIGHTS LEGEND

    Use, duplication, or disclosure by the Government is subject to
    restrictions as set forth in subdivision (c)(1)(ii) in the Rights in
    Technical Data and Computer Software clause at DoD FAR Supplement 
    252..227-7013.

            
                Rational
                3320 Scott Blvd.
                Santa Clara, California 95054-3197
                procedure Destroy_All (Of_These : in String := ">>OBJECT(S) TO DELETE<<";
                       Response : in String := "<PROFILE>");

pragma Loaded_Main;procedure Destroy_Users (Named : in String := "!USERS.[>>USER(S) TO DELETE<<]";
                         Response : in String := "<PROFILE>");

pragma Loaded_Main;-- This package provides a mechanism for writing commands which
-- perform error reporting and error handling in a manner consistent
-- with Environment commands.
--
-- NOTE: This package has internal state, so it cannot be used safely
-- multi-tasking applications.
--
with Profile;
generic

    Old_Response_Profile : Profile.Response_Profile;
    --
    -- Is the response profile to which the response profile should
    -- be reset when exiting.

    New_Response_Profile : Profile.Response_Profile;
    --
    -- Is the response profile which should be used to evaluate log
    -- output destination, error reaction, etc.

    Operation_Name : in String;
    --
    -- Specifies the name of the operation to be used in the closing
    -- message (i.e. "[end of <Operation_Name>--error(s) detected]").

    Parameter_List : in String;
    --
    -- Should be a list of the parameters supplied to the operation,
    -- of the form:
    --
    --    First_Parameter => Some_Value, Second_Parameter => Another_Value, etc
    --
    -- String values should be quoted:
    --
    --    String_Parameter => ""Some_String""

package Errors is

    procedure Prologue;
    --
    -- Sets the response profile to the new response profile, and then
    -- writes an auxiliary message of the form:
    --
    --     [<Operation_Name> (<Parameter_List>);]
    --
    -- Should be the first thing called in any program.

    procedure Epilogue;
    --
    -- If there were no errors, writes an auxiliary message of the form:
    --
    --     [end of <Operation_Name> operation--no errors detected]
    --
    -- If there were errors (non-fatal ones), writes an auxiliary message of
    -- the form
    --
    --     [end of <Operation_Name> operation--error(s) detected]
    --
    -- In both cases, resets the response profile to the original response
    -- profile.

    Propagate : exception;
    Quit : exception;

    Nil_Message : constant String := "";

    procedure Report (This_Message : in String;
                      This_Type : in Profile.Msg_Kind := Profile.Error_Msg;
                      Fatal : in Boolean := True;
                      Nested : in Boolean := False;
                      Suppress_Closing_Message : in Boolean := False);
    --
    -- Does a "Log.Put_Line" of the specified message to the appropriate
    -- output. Message will be of the specified kind (if the message is
    -- equal to Nil_Message, nothing will be output, but the error reaction
    -- will still work as described below).
    --
    -- Once the message is written:
    --
    -- If the error reaction is "QUIT":
    --
    --    A closing message is written (unless "Suppress_Closing_Message" is
    --    True), and the response profile is reset to
    --    "Original_Response_Profile". Then:
    --
    --       If "Nested" is True, "Quit" is raised.
    --
    -- If the error reaction is "PROPAGATE":
    --
    --    A closing message is written (unless "Suppress_Closing_Message" is
    --    True), the response profile is reset to "Original_Response_Profile",
    --    and "Propagate" is raised.
    --
    -- If the error reaction is "PERSEVERE":
    --
    --    If "Fatal" is True:
    --
    --       A closing message is written (unless "Suppress_Closing_Message" is
    --       True), and the response profile is reset to
    --       "Original_Response_Profile". Then:
    --
    --           If "Nested" is True, "Quit" is raised.
    --
    -- If the error reaction is "RAISE_ERROR":
    --
    --    If "Fatal" is True:
    --
    --       A closing message is written (unless "Suppress_Closing_Message" is
    --       True), the response profile is reset to
    --       "Original_Response_Profile", and "Propagate" is raised.
    --
    -- For this procedure to work correctly, two conditions must be
    -- satisfied in the client:
    --
    -- 1) The client must provide the following exception handler alternatives
    --    at the outermost lexical level:
    --
    --        when Errors.Propagate =>
    --            raise;
    --        when Errors.Quit =>
    --            null;
    --
    -- 2) Every raise of "Propagate" and "Quit" by every call to "Report"
    --    must be able to get to the above exception handler alternatives.

-- Here is an example template of how this package should be used:

    -- with Log;
    -- with Errors;
    -- with Profile;
    -- with Debug_Tools;
    -- with <others>;
    -- procedure Template (This_Parameter : in String := "<SPECIAL_NAME>";
    --                     That_Parameter : in String := ">> PLACEHOLDER <<";
    --                     Another_Parameter : in Boolean := True;
    --                     Response : in String := "<PROFILE>") is
    --
    --     package Error is
    --        new Errors
    --               (Profile.Get,
    --                Profile.Value (Response),
    --                "Template",
    --                "This_Parameter => """ & This_Parameter &
    --                """, That_Parameter => """ & That_Parameter &
    --                """, Another_Parameter => " &
    --                Boolean'Image (Another_Parameter) &
    --                ", Response => """ & Response & """");
    --
    --     <other declarations>;
    --
    -- begin
    --     Error.Prologue;
    --     loop
    --         begin
    --            Call_Some_Other_Procedure ("PROPAGATE," & Response);
    --            --
    --         exception
    --            when others =>
    --                Error.Report ("<message for call failure>",
    --                              -- IF CALL FAILURE IS NOT FATAL:
    --                              Fatal => False,
    --                              Nested => True);
    --         end;
    --     end loop;
    --     Error.Epilogue;
    --     --
    -- exception
    --     when This_Exception =>
    --         Error.Report ("<message for this exception>");
    --     when That_Exception =>
    --         Error.Report ("<message for different exception>");
    --     when Error.Propagate =>
    --         raise;
    --     when Error.Quit =>
    --         null;
    --     when others =>
    --         Error.Report ("EXCEPTION: " & Debug_Tools.Get_Exception_Name,
    --                       Profile.Exception_Msg);
    -- end Template;
    --
    -- *****
    --
    -- NOTE: This procedure should NOT be used to report progress messages,
    -- warnings, and other non-errors.

end Errors;with Log;
package body Errors is

    Errors_Detected : Boolean := False;

    procedure Prologue is
    begin
        Profile.Set (New_Response_Profile);
        Log.Put_Line ("[" & Operation_Name & " (" & Parameter_List & ");]",
                      Profile.Auxiliary_Msg);
    end Prologue;

    procedure Report (This_Message : in String;
                      This_Type : in Profile.Msg_Kind := Profile.Error_Msg;
                      Fatal : in Boolean := True;
                      Nested : in Boolean := False;
                      Suppress_Closing_Message : in Boolean := False) is
        --
        procedure Output_Error_Message is
        begin
            if (This_Message /= Nil_Message) then
                Log.Put_Line (This_Message, This_Type);
            end if;
        end Output_Error_Message;
        --
        procedure Output_Closing_Message is
        begin
            if (not Suppress_Closing_Message) then
                Log.Put_Line ("[end of " & Operation_Name &
                              " operation--error(s) detected]",
                              Profile.Auxiliary_Msg);
            end if;
            Profile.Set (Old_Response_Profile);
        end Output_Closing_Message;
        --
    begin
        Errors_Detected := True;
        case (Profile.Reaction (New_Response_Profile)) is
            when Profile.Quit =>
                Output_Error_Message;
                Output_Closing_Message;
                if (Nested) then
                    raise Quit;  
                end if;
            when Profile.Propagate =>
                Output_Error_Message;
                Output_Closing_Message;
                raise Propagate;
            when Profile.Persevere =>
                Output_Error_Message;
                if (Fatal) then
                    Output_Closing_Message;
                    if (Nested) then
                        raise Quit;
                    end if;
                end if;
            when Profile.Raise_Error =>
                Output_Error_Message;
                if (Fatal) then
                    Output_Closing_Message;
                    raise Propagate;
                end if;
        end case;
    end Report;

    procedure Epilogue is
    begin  
        if (Errors_Detected) then
            Log.Put_Line ("[end of " & Operation_Name & "--error(s) detected]",
                          Profile.Auxiliary_Msg);
        else
            Log.Put_Line ("[end of " & Operation_Name & "--no errors detected]",
                          Profile.Auxiliary_Msg);
        end if;
        Profile.Set (Old_Response_Profile);
    end Epilogue;

end Errors;package Pathnames is

    subtype Full_Name is String;

    function Training_User_Indicator_File_For
                (This_User : in Full_Name) return Full_Name;

    function Release_Tape_Contents return String;

    function Backup_Tape_Contents return String;

end Pathnames;with String_Utilities;
package body Pathnames is

    function Training_User_Indicator_File_For
                (This_User : in Full_Name) return Full_Name is
    begin
        return (String_Utilities.Upper_Case (This_User) &
                ".THIS_IS_A_@_TRAINING_USER");
    end Training_User_Indicator_File_For;

    function Release_Tape_Contents return String is
    begin
        return
           ("[!TRAINING.TOOLS," &  
            "!TRAINING.NOTES," &  
            "!TRAINING.COPYRIGHT@," &  
            "!TRAINING.SOFTWARE_RELEASES.@.[@,~TEMPLATE,~RELEASE_TOOLS,~UTILITIES]]");
    end Release_Tape_Contents;

    function Backup_Tape_Contents return String is
    begin
        return ("[!TRAINING,!USERS.@_TRAINING_MASTER]");
    end Backup_Tape_Contents;

end Pathnames;procedure Destroy_Training_Users (Named : in String := "<SELECTION>";
                                  Response : in String := "<PROFILE>");with Log;
with Errors;
with Profile;
with Pathnames;
with Debug_Tools;
with Destroy_Users;
with Directory_Tools;  
procedure Destroy_Training_Users (Named : in String := "<SELECTION>";
                                  Response : in String := "<PROFILE>") is
    --
    package Error is new Errors (Profile.Get,  
                                 Profile.Value (Response),  
                                 "Destroy_Training_Users",  
                                 "Response => """ & Response & """");
    --
    The_Users : Directory_Tools.Object.Iterator :=
       Directory_Tools.Naming.Resolution (Named);
    --
    function Is_Training_User (This_User : in String) return Boolean is
    begin
        return (not Directory_Tools.Object.Is_Bad
                       (Directory_Tools.Object.Handle'
                        (Directory_Tools.Naming.Resolution
                            (Pathnames.Training_User_Indicator_File_For
                                (This_User)))));
    end Is_Training_User;
    --
begin
    Error.Prologue;
    while (not Directory_Tools.Object.Done (The_Users)) loop
        declare
            Current_User : constant Directory_Tools.Object.Handle :=
               Directory_Tools.Object.Value (The_Users);
            Current_User_Name : constant String :=
               Directory_Tools.Naming.Full_Name (Current_User);
        begin
            if (Is_Training_User (Current_User_Name)) then
                begin
                    Destroy_Users (Current_User_Name,
                                   "RAISE_ERROR," & Response);
                exception
                    when others =>
                        Error.Report ("Unable to destroy user """ &
                                      Current_User_Name & """",
                                      Nested => True,
                                      Fatal => False);
                end;
            else
                Log.Put_Line (Current_User_Name & " is not a training user",
                              Profile.Warning_Msg);
            end if;  
        end;
        Directory_Tools.Object.Next (The_Users);
    end loop;
    Error.Epilogue;
    --
exception
    when Error.Propagate =>
        raise;
    when Error.Quit =>
        null;
    when others =>
        Error.Report ("EXCEPTION: " & Debug_Tools.Get_Exception_Name,
                      Profile.Exception_Msg);
        --
end Destroy_Training_Users;procedure Reset_Scripts;
pragma Loaded_Main;procedure Return_To_Menu;
pragma Loaded_Main;procedure Select_Script;
pragma Loaded_Main;procedure Start_Training_Scripts (Course_Name : String;
                                  Release_Name : String := "<LATEST RELEASE>");
pragma Loaded_Main;procedure Step_Backward;
pragma Loaded_Main;procedure Step_Forward;
pragma Loaded_Main;procedure Training_Authorization (Code : String := ">>Authorization Code<<";
                                  Enable : Boolean := True;
                                  Response : String := "<PROFILE>");
pragma Loaded_Main;page 11   Step 7

Deletions made with Object-D are NOT pushed on the region stack.


page 12  4th Dash  (Facit version only)

The keymap does not contain commands that edit the screen stack.


page 13  Step 3 (Facit Version Only)

No key is bound to Editor.Screen.Previous


page 15

No bullet describes how to lock a window


page 64  Step 4

delete the "as" in "has as an"


page 64 Step 5

The "$." in the parameter to For_Object is unnecessary


page 73  Step 4

the restored world is Debugging not Program_Profile_System


page 90-I Special_Instructions

The expression assigned to Total_Elapsed should be

System_Utilities.Elapsed - Start_Elapsed;

in both cases


page 121  Step 4

There should be no difference in the results.


page 139

Some of the macro constuction exercises are missing.  the exercise refers
to saving the macros you just created.

changes:

    there is no enclosing scope on nested design components
        [i.e. @DECOMPOSITION (Foo.Bar) is now simply
         @DECOMPOSITION (Bar)]. This is not how it is explained
         in the course.

    in generic PDL entry exercise:

        after semanticizing after doing second PDL Complete:
            many errors come up: the instructions refer to a SINGLE error
            "prompt illegal for" message has been changed to "Prompt is not
                permitted for the ________________ annotation."
        instructions tell students to fill in prompts with "NONE." instead
            of "NONE"
        after deleting annotation, the error message is "The __________ 
            annotation must be specified." instead of "No ________
            annotation specified"
        after adding @ALGORITHM annotation, the error message is "The ________
            annotation is not permitted here." rather than "__________
            annotation not permitted"
        prompting for PDL Complete resolves to Design_Implementation.Complete,
            not Design.Complete
        step 28.a. is not generic--talks about "use" clause
    
    summary exercise:
        page 115 5.a change "unsatisfied" to "unallocated"
        page 116 delete "The log will..." instructor note 4
        page 117 4 needs @DESCRIPTION, @SOURCE, and @DESTINATION annotations
        page 120 4.c. @LIMITATIONS annotation should not be there

    we need to teach them about activity-relative traversal

    diagram of transaction processor needs second "add money" loop which leaves
        and enters the "accumulating transaction" bubble

bugs:

    multiple @REQUIREMENT annotations currently don't work, so one of
        the traversals in the exercises does not work (supposed to be
        fixed in next release)
    traversal within a CSCI is activity-dependent, so instructions on
        summary exercise do not work (supposed to be fixed in next
        release)
    incremental compilation is very fragile, and it is used in some
        of the exercises, resulting in errors
        
Runtime compatibility is NOT supported directly in D1.  If the spec and
load view are not spec-load compatible, the application will not load
even if the client does not call the incompatible declaration.  Is is
possible to disable compatibility checking entirely, allowing a run-time
compatible subsystem to load and execute.  If the subsystem is spec-load
incompatible, one will likely get the exception Operand_Class_Error as
before.


Comments from ANNE on the Exercises :        
---------------------------

1. p 84 : using import/export restrictions : several "students" forgot 
to control the units ! A good idea would be to put a warning message 
in step 2 ("construct the subsystem-based mail application").

2. p 139 : non-upward compatible changes. As you suggested on the phone, 
we had to give the spec-views as clients of the spec-view we just 
created, in the CMVC.IMPORT command. This was not obvious, since the 
import from the supplier view in the client view is not done explicitely 
(but via <inherit ipmorts> in the CMVC.MAKE_SPEC_VIEW command).
It is really a pity,the user has to know about the referencers for a 
given view and even worse, about the order in which to give the client 
views , in the CMVC.IMPORT command. 

3. p 279 : setting up primary and secondary subsystems  : it should be 
mentionned somewhere that the model used to create a given subsystem has 
to exist on the target machine before transfering that subsystem.

To the question " Does it make any difference how the subsystems are 
transferred ?" , my answer would be : NO if the tranfer is on ANOTHER 
MACHINE  (in the same location, ie same pathname), because then you keep 
the same links to the units ; YES if you transfer in a world with a 
different name , then you would have to build again the application from 
bottom-up in the target world.


                          SOFTWARE RELEASE CHECKLIST
                          ==========================
                          
DATE: 88/08/09

PRODUCT DESCRIPTION

   Name: Training Software

   Revision: (Cross-Development Facility - Mc68020_Bare Version) 
             Delta_Prerelease_Rev1_0

   Applicable Environment Release: Delta One Minus
   
   Description/Use: This tape contains the pre-release version of the training 
                    software for the Cross-Development Facility (Mc68020_Bare
                    version) course.
                    
                    This tape is to be used to update Delta One Minus systems as 
                    required.  This tape contains the current release for this
                    training software including all tools used to create and
                    maintain training users.
                    
                    Installation of this software depends on a 2_0_0 or later
                    version of the Mc68020_Bare Cross-Development Facility
                    having already been installed and the server currently
                    running. 
                                          
                                          
                       Course Name          Status
                    ------------------ ----------------------- 
                     Cdf (Mc68020_Bare)      in Production       
                    
   Additional Information: If you require other information or want some home
                           office participation when presenting this material, 
                           please contact Bob Gable at (408) 496-3708.

PLANNED RELEASE DATES

   Master Tape to CS: 3rd Quarter, 1988
   Internal Ship: As Required
   Customer Ship: As Required
   

MILESTONES

   Master Tape Released by Marketing: 3rd Quarter, 1988
   Master Tape Accepted by CS: As Delivered
   Production release: As Above\f


PREPARATION/INSTALLATION NOTES:
------------------------------
(from the file "!Training.Notes.Instructor_Notes")

1. PREPARING FOR A TRAINING COURSE

When preparing to deliver a training course, please check with the Response
Center to ensure that the training software on the training machine is the
latest release for the course to be delivered.  If required, a tape containing
the latest release is available from the Response Center.

To determine the release level, check the training software installed on the
training machine.  Training software releases are located in 

   "!Training.Software_Release.<COURSE NAMEs>.<COURSE VERSIONs>"

For example, "!Training.Software_Release.Fundamentals.Delta_Rev6" supports the
Fundamentals training for Delta and is the sixth version of the Fundamentals
course.
                                  

2. INSTALLING THE LATEST TRAINING SOFTWARE RELEASE (if required)
  
   2.1 Install the current release tape using the following command
       (from any context):

         Archive.Restore (Options => "CHANGED_OBJECTS, PROMOTE");
    
   2.2 if any errors are reported, please call the Response Center for
       assistance.

   2.3 If step 2 is successful, you may want to delete any older versions of
       the training software in "!Training.Software_Releases.<COURSE NAMEs>".
          

3. CREATING TRAINING USERS

Please follow the instructions in the "Course_Preparation_Notes" file for the
applicable course(s).

It is a good idea to have the training account user(s) create an empty text 
file such as "!Users.<TRAINING USER NAME>.In_Use_By_<USER INFORMATION>_<DATE>"
to indicate that the account is in use.  In addition to preventing others from 
accidently using the same account, it also provides information useful to the 
trainer and the system manager.
                                

4. USING THE SCRIPT TOOLS

No script tools are currently used.

TAPE CREATION LOG:
-----------------                   
None supplied
[end of document]
~major_heading(Courses included in this production release)

~begin(itemize)

Fundamentals

Advanced Topics

Subsystems and CMVC

System Management

Project Development Methods

Networking

Target Build Utility

MIL-STD-1750A CDF

Mc68020 Bare CDF

Design Facility User Training


~end(itemize)

~major_heading(Changes since the last release)

~startnp

~np
New training software has been released for all courses.
The latest release is named, Delta1_Rev1 for both old and new courses.

~np
System Mangement, Project Development Methods, and the DF and CDF course
are newly added with this release.
Fundamentals, Subsystems and CMVC, Networking, and Target Build Utility
have changed very little. Advanced Topics has changed alot with many new
exercises added and several bugs fixed.

~np
New script tools have been released.  The script window should automatically come
up on the screen when users invoke the scripts.  Users will no longer have
to go to the window directory to find the script window.

~np
Due to a conflict with keybindings for the Design Facility, the "Next
Step" and "Previous Step" operations that were previously bound to F4
and F3 on the Rational Terminal have been switched.  They are now bound
to F3 and F4 respectively.  Also the highest performance operation is
the "Next Step" operation ([F3]).  All other operations have slightly
lower performance.  Replacement pages describing the script
tool changes for the Rational version of
Fundamentals will be distributed to the field.

~np
Facit keybindings for the scripts have not changed.  On-line scripts are not
supported for the VT100 or SUN terminals.

~np
A new training user is now available.  It's name is Basic_Product_Training
and it contains all exercise software from Fundamentals, Advanced Topics,
and Subsystems and CMVC.  This was created to support training classes
that combined a variety of material from each course together into one class.
Students will be able to perform any exercise from the basic product training
series within the single user login.

~np
Software for all CDF products will be distributed to all sites even though
that site does not have all CDFs running.

~endnp          


        Courses included in this production release

        *  Fundamentals

        *  Advanced Topics

        *  Subsystems and CMVC

        *  System Management

        *  Project Development Methods

        *  Networking

        *  Target Build Utility

        *  MIL-STD-1750A CDF

        *  Mc68020 Bare CDF

        *  Design Facility User Training


        Changes since the last release

        1. New training software has been released for all courses.  The
           latest release is named, Delta1_Rev1 for both old and new
           courses.

        2. System Mangement, Project Development Methods, and the DF and
           CDF course are newly added with this release.  Fundamentals,
           Subsystems and CMVC, Networking, and Target Build Utility have
           changed very little. Advanced Topics has changed alot with
           many new exercises added and several bugs fixed.

        3. New script tools have been released.  The script window should
           automatically come up on the screen when users invoke the
           scripts.  Users will no longer have to go to the window
           directory to find the script window.

        4. Due to a conflict with keybindings for the Design Facility,
           the "Next Step" and "Previous Step" operations that were
           previously bound to F4 and F3 on the Rational Terminal have
           been switched.  They are now bound to F3 and F4 respectively.
           Also the highest performance operation is the "Next Step"
           operation ([F3]).  All other operations have slightly lower
           performance.  Replacement pages describing the script tool
           changes for the Rational version of Fundamentals will be
           distributed to the field.

        5. Facit keybindings for the scripts have not changed.  On-line
           scripts are not supported for the VT100 or SUN terminals.

        6. A new training user is now available.  It's name is
           Basic_Product_Training and it contains all exercise software

\f

          


           from Fundamentals, Advanced Topics, and Subsystems and CMVC.
           This was created to support training classes that combined a
           variety of material from each course together into one class.
           Students will be able to perform any exercise from the basic
           product training series within the single user login.

        7. Software for all CDF products will be distributed to all sites
           even though that site does not have all CDFs running.
















































\f

RELEASE NOTE and INSTALLATION PROCEDURE

Training Software

Date:   19 February 1991

This is a release of all available training software for current
courses.  It includes software for the following courses:

Rational Environment Training: System Management
Rational Environment Training: Fundamentals
Rational Environment Training: Advanced Topics
Rational Environment Training: Subsystems and Configuration Management
Rational Environment Training: Project Development Methods
Rational Environment Training: Toolsmithing
Rational Network Training
Rational Design Facility Training: DOD-STD-2167
Rational Design Facility Training: DOD-STD-2167 Product Customization
Rational Design Facility Training: Fundamentals and DOD-STD-2167A
Rational Design Facility Training: Toolsmithing and DOD-STD-2167A
    Customization
Rational Universal Host Training: MC68020/Bare Cross-Development
    Facility
Rational Universal Host Training: MC68020/OS-2000 Cross-Development
    Facility

The training software for the following course is not available now.
(The plan is for it to be included in the next release.)

Rational Universal Host Training: MC68020/UNIX Cross-Development
    Facility

Most of the training software in this release is unchanged from the
Delta 1 release.  Most of the release world names and file names still
refer to Delta 1.  This software works correctly under Delta 2.  This
release note and installation procedure includes the information you
need to install the software and build training users.

Because this release of the training software is intended to be included
in an environment release, all links to layered software have been
removed.  (This does not effect training user accounts, which must be
built after the layered software is installed.)  The procedures
describing preparing to build training user accounts for individual
courses included later in this document tell you how to add links when
needed.


INSTALLING THE TRAINING SOFTWARE FROM TAPE

If this training software has not been installed as part of an
Environment installation, restore it from tape using

    Archive.Restore (Options => "Changed_Objects, Promote");


LOCATING THE TRAINING SOFTWARE FOR A COURSE

The following list gives the directory or directories in
!Training.Software_Releases that contains the training software for each
course:

Rational Environment Training: System Management
        System_Management

Rational Environment Training: Fundamentals
        Fundamentals

Rational Environment Training: Advanced Topics
        Advanced_Topics

Rational Environment Training: Subsystems and Configuration Management
        Subsystems_Cmvc

Rational Environment Training: Project Development Methods
        Pdm

Rational Environment Training: Toolsmithing
        Toolsmithing

Rational Network Training
        Networking

Rational Design Facility Training: DOD-STD-2167
        Design_Facility_User_Training

Rational Design Facility Training: DOD-STD-2167 Product Customization
        Design_Facility_Customization_Training

Rational Design Facility Training: Fundamentals and DOD-STD-2167A
        Design_Facility_Fundamentals
        Design_Facility_2167a_User

Rational Design Facility Training: Toolsmithing and DOD-STD-2167A
    Customization
        Design_Facility_Toolsmithing
        Design_Facility_2167a_Customization

Rational Universal Host Training: MC68020/Bare Cross-Development
    Facility
        Cdf_Mc68020_Bare

Rational Universal Host Training: MC68020/OS-2000 Cross-Development
    Facility
        Cdf_Mc68020_Os2000

Each of these directories contains a release world with the procedure to
build training user accounts.  The release world also contains the data
and index files that are the archive of the master training user home
world that the procedure uses to create the home world for each training
user.  The release world may also contain additional notes to the
instructor and other software required for training.  Some directories
also contain utility worlds with units used by the training software.


PREPARING TO BUILD TRAINING USER ACCOUNTS

Read the preface to the course's instructor's notes, if any.  Also read
relevant files in !Training.Notes.Release_Notes and in the course's
training software world(s), if any.  Review relevant instructor notes,
including those for the introductory course material and the exercises.

Assure that the correct layered software is installed and running.

The Design Facility user courses require additional preparation.

For Rational Design Facility Training: DOD-STD-2167, add a link for the
release world as follows:

    Links.Add  
       (Source   => "!Tools.Design.Release.Rational_2167" &
                       ".Pdl_Commands.Rev6_0_Spec.Units.Design",
        Link     => "#",
        World    => "!Training.Software_Releases" &
                       ".Design_Facility_2167_User_Training.Delta1_Rev6",
        Response => "<PROFILE>");

Now code the body of Build_Design_Facility_User_Training_Users in the
release world.

For Rational Design Facility Training: Fundamentals and DOD-STD-2167A,
copy links for the nested world that contains the implementation of the
simple Design Facility instance used in the Fundamentals part of the
course.

    Links.Copy  
       (Source_World => "!Model.R1000_Pdl",
        Target_World =>  
           "!Training.Software_Releases.Design_Facility_Fundamentals" &
              ".Rev1.Simple_Instance",
        Link         => "@",
        Source       => "[!Tools.Design?,!Tools.Lrm?]",
        Kind         => Links.Any,
        Response     => "<PROFILE>");

Now code all units in the world.

    Compilation.Promote  
       (Unit  =>  
           "!Training.Software_Releases.Design_Facility_Fundamentals" &
              ".Rev1.Simple_Instance??",
        Scope => Compilation.All_Parts,
        Goal  => Compilation.Coded,
        Limit => "<WORLDS>");

Finally, run the Register_Pdl procedure in this world.


BUILDING TRAINING USER ACCOUNTS

Run the Build_Training_Users (or Build_..._Training_Users) procedure in
the release world.  (If you need to destroy existing training users
before you build new ones, use the Destroy_Users procedure in 
!Training.Tools.Utilities.)  Some Build_..._Training_Users procedures
take over 30 minutes, so be sure to allocate enough time to build all
users before the class.  Some release worlds contain Log text files with
typical build logs or lists of acceptable errors and warnings.


USING SCRIPT TOOLS

If you will use the scripts tools for Rational Environment Training:
Fundamentals, see !Training.Notes.Instructor_Notes.


OVERRIDING SESSION LIMITS

If you need to run more sessions for training than your customer has
authorized, get a training authorization code from SMSE and run the
Training_Authorization procedure in !Training.Tools.  Send mail to
SMSE_Req requesting the code.  You must include the date you will
execute the Training_Authorization procedure and the ID of the machine
you will execute it on.  SMSE will reply with an Authorization_Code and
an Expiration_Date.  You must run the Training_Authorization procedure
on that date with that code.

When training is over, reboot the machine or run Training_Authorization
with the Enable parameter False to reinstitute the session limits.
Destroy codes after use.  Do not disclose authorization codes to
customers.  Do not draw the customer's attention to the the existence of
the Training_Authorization procedure.
        DESIGN FACILITY CUSTOMIZATION TRAINING PRE-RELEASE NOTE:
        ========================================================

DATE: March 16th, 1988

This course does not require a training tape. Even the individual training
accounts are constructed by the participants as part of the exercises.
            DESIGN FACILITY USER TRAINING PRE-RELEASE NOTE:
            ===============================================
            
DATE: March 16th, 1988

PRODUCT DESCRIPTION

    Name: Design Facility User Training Software
    
    Revisions:
    
      Delta_0_Plus_Rev4_2_Version_1 (4_2 release, D0+)
      Delta_Rev4 (10/21 release, D0 vanilla)

    Description/Use: This tape contains the pre-release versions of the
                     training software for the Design Facility User Training
                     course.
                     
                     This tape is to be used to update Delta 0 and/or Delta
                     0 Plus systems as requiraed. This tape contains the
                     current releases for this training software including
                     all tools used to create and maintain training users.
                     
                     The course works with both the Rational Terminal and
                     the Facit terminal.

   Additional Information: If you require other information or want some home
                           office participation when presenting this material, 
                           please contact Jim Showalter at (415) 940-4754.
                           
PLANNED RELEASE DATES:
                                                              
   The 10/21, D0 version of the tape and training materials will never be
        released to production. Tapes and training materials will be delivered
        on an as-needed basis. PLEASE ALLOW AT LEAST 10 DAYS LEAD TIME FOR
        REQUESTS.

   The Rev4_2, D0+ version of the tape and training materials will never be
        released to production, although the training materials will go through
        the production editing cycle. Tapes and training materials will be
        delivered on an as-needed basis. PLEASE ALLOW AT LEAST 10 DAYS LEAD
        TIME FOR REQUESTS.
        
   Full production availability of the tape and training materials is planned
   for the July, 1988 timeframe, concurrent with the full production release
   of the Design Facility itself, as well as the D1 version of the Environment.

PREPARATION/INSTALLATION NOTES:
------------------------------
(from the file "!Training.Notes.Instructor_Notes")

1. PREPARING FOR A TRAINING COURSE

When preparing to deliver a training course, please check with the Response
Center to ensure that the training software on the training machine is the
required release for the course to be delivered. While this course is in
prerelease, it is important to make sure you verify both the version of the
Environment and the version of the Design Facility in use on the training
machine.

To determine the release level, check the training software installed on the
training machine.  Training software releases are located in 

   "!Training.Software_Release.<COURSE NAMEs>.<COURSE VERSIONs>"

For example, "!Training.Software_Release.Fundamentals.Delta_Rev6" supports the
Fundamentals training for Delta and is the sixth version of the Fundamentals
course.

2. INSTALLING THE LATEST TRAINING SOFTWARE RELEASE (if required)
  
   2.1 Install the current release tape using the following command
       (from any context):

         Archive.Restore (Options => "CHANGED_OBJECTS, PROMOTE");
    
   2.2 if any errors are reported, please call the Response Center for
       assistance.

   2.3 If step 2 is successful, you may want to delete any older versions of
       the training software in "!Training.Software_Releases.<COURSE NAMEs>".

3. CREATING TRAINING USERS

Please follow the instructions in the "Course_Preparation_Notes" file for the
applicable course(s).

It is a good idea to have the training account user(s) create an empty text 
file such as "!Users.<TRAINING USER NAME>.In_Use_By_<USER INFORMATION>_<DATE>"
to indicate that the account is in use.  In addition to preventing others from 
accidently using the same account, it also provides information useful to the 
trainer and the system manager.

TAPE CREATION LOG:
-----------------                   
--- ============================================================================
--- Creating a training release tape (February 13, 1988 at 9:48:38 AM).
--- ----------------------------------------------------------------------------
--- [Archive.Save rev 440, objects => "[!Training.[Copyright_@_Rational,Notes.
... @],!Training.Software_Releases.Large_Systems.Delta_Prerelease_Rev02,
... !Training.Tools.[Live_Job_Files,~Live_Job_Files.@,Start_Training_Scripts,
... Reset_Scripts]", options => "R1000", device => "MACHINE.DEVICES.TAPE_0", 
... response => "<PROFILE>"].
--- volume mounted for writing: 005101.
+++ text !TRAINING.COPYRIGHT_1985_1986_1987_1988_RATIONAL has been saved.
+++ text !TRAINING.NOTES.COURSE_DESCRIPTIONS has been saved.
+++ text !TRAINING.NOTES.INSTRUCTOR_NOTES has been saved.
+++ text !TRAINING.NOTES.RELEASE_NOTE_87_12_03 has been saved.
+++ world !TRAINING.SOFTWARE_RELEASES.LARGE_SYSTEMS.DELTA_PRERELEASE_REV02 has 
... been saved.
+++ proc_spec !TRAINING.SOFTWARE_RELEASES.LARGE_SYSTEMS.DELTA_PRERELEASE_REV02.
... BUILD_TRAINING_USERS has been saved.
+++ proc_body !TRAINING.SOFTWARE_RELEASES.LARGE_SYSTEMS.DELTA_PRERELEASE_REV02.
... BUILD_TRAINING_USERS'BODY has been saved.
+++ text !TRAINING.SOFTWARE_RELEASES.LARGE_SYSTEMS.DELTA_PRERELEASE_REV02.
... COURSE_PREPARATION_NOTES has been saved.
+++ file !TRAINING.SOFTWARE_RELEASES.LARGE_SYSTEMS.DELTA_PRERELEASE_REV02.DATA 
... has been saved.
+++ text !TRAINING.SOFTWARE_RELEASES.LARGE_SYSTEMS.DELTA_PRERELEASE_REV02.INDEX 
... has been saved.
+++ directory !TRAINING.TOOLS.LIVE_JOB_FILES has been saved.
+++ load_proc !TRAINING.TOOLS.START_TRAINING_SCRIPTS has been saved.
+++ load_proc !TRAINING.TOOLS.RESET_SCRIPTS has been saved.
+++ code for !TRAINING.TOOLS.RESET_SCRIPTS has been saved.
+++ code for !TRAINING.TOOLS.START_TRAINING_SCRIPTS has been saved.
--- saved 15 objects in 882085 bytes.
--- tape has been written.
--- [end of Archive.Save operation].


                          SOFTWARE RELEASE CHECKLIST
                          ==========================
                          
DATE: 88/05/05

PRODUCT DESCRIPTION

   Name: Training Software

   Revision: (Project Development Methods) Pdm - Delta_Prerelease_Rev03

   Applicable Environment Release: Delta "Zero"
   
   Description/Use: This tape contains the pre-release version of the training 
                    software for the Project Development Methods course.
                    
                    This tape is to be used to update Delta "Zero" systems as 
                    required.  This tape contains the current release for this
                    training software including all tools used to create and
                    maintain training users.
                    
                                          Current Rational       Current Facit
                       Course Name      Terminal Doc'n Status    Doc'n Status
                    ------------------ ----------------------- -------------------
                           Pdm              in Beta test           not started
                    
   Additional Information: If you require other information or want some home
                           office participation when presenting this material, 
                           please contact Bryan Derman at (415) 940-4755.

PLANNED RELEASE DATES

   Master Tape to CS: 2nd Quarter, 1988
   Internal Ship: As Required
   Customer Ship: As Required
   

MILESTONES

   Master Tape Released by Marketing: 2nd Quarter, 1988
   Master Tape Accepted by CS: As Delivered
   Production release: As Above\f


PREPARATION/INSTALLATION NOTES:
------------------------------
(from the file "!Training.Notes.Instructor_Notes")

1. PREPARING FOR A TRAINING COURSE

When preparing to deliver a training course, please check with the Response
Center to ensure that the training software on the training machine is the
latest release for the course to be delivered.  If required, a tape containing
the latest release is available from the Response Center.

To determine the release level, check the training software installed on the
training machine.  Training software releases are located in 

   "!Training.Software_Release.<COURSE NAMEs>.<COURSE VERSIONs>"

For example, "!Training.Software_Release.Fundamentals.Delta_Rev6" supports the
Fundamentals training for Delta and is the sixth version of the Fundamentals
course.
                                  

2. INSTALLING THE LATEST TRAINING SOFTWARE RELEASE (if required)
  
   2.1 Install the current release tape using the following command
       (from any context):

         Archive.Restore (Options => "CHANGED_OBJECTS, PROMOTE");
    
   2.2 if any errors are reported, please call the Response Center for
       assistance.

   2.3 If step 2 is successful, you may want to delete any older versions of
       the training software in "!Training.Software_Releases.<COURSE NAMEs>".
          

3. CREATING TRAINING USERS

Please follow the instructions in the "Course_Preparation_Notes" file for the
applicable course(s).

It is a good idea to have the training account user(s) create an empty text 
file such as "!Users.<TRAINING USER NAME>.In_Use_By_<USER INFORMATION>_<DATE>"
to indicate that the account is in use.  In addition to preventing others from 
accidently using the same account, it also provides information useful to the 
trainer and the system manager.
                                

4. USING THE SCRIPT TOOLS

When required the script tools are set up to be automatically involked by a
training user.  There is currently a bug in the environment which causes the
created script window to remain "invisible".  Users must visit their window
directory in order to locate this window.  When the window is visible, users
should perform a "[Window] - [Format]" operation to obtain the correct window
size then issue a "[Window] - [Promote]" to lock the window once it is visible.

The tools also prevent users from creating more than one script tool job.
The tools do this by creating a file, named by user and session, in the
directory "!Training.Tools.Live_Job_Files".  Upon execution, the script tools
check for the existence of this file and will not run if the file exists --
i.e. the file is used as a lockout mechanism.  If the user cancels the job
(e.g. with a Job.kill) or otherwise terminates abnormally (e.g. system
crash), this file will still exist even though no script job is running.
   
If a file exists for the user/session in "!Training.Tools.Live_Jobs_Files" when
the script tool is started, it will prevent itself from operating and,
therefore, effectively be locked out.  The way to fix this situation is to
execute the procedure "!Training.Tools.Reset_Scripts" from the user's session.
Do not execute this procedure unless the user's session is locked out.

Not all courses use the script tools.


TAPE CREATION LOG:
-----------------                   
--- ============================================================================
--- Creating a training release tape (May 5, 1988 at 11:27:48 AM).
--- ----------------------------------------------------------------------------
--- [Archive.Save rev 440, objects => "[!Training.[Copyright_@_Rational,Notes.
... @],!Training.Software_Releases.Pdm.Delta_Prerelease_Rev03,!Training.Tools.
... [[Delete_All;Destroy_Training_Users],
... [Live_Job_Files;Start_Training_Scripts;Reset_Scripts],~Live_Job_Files.@]", 
... options => "R1000", device => "MACHINE.DEVICES.TAPE_0", response => 
... "<PROFILE>"].
--- volume mounted for writing: 006305.
+++ text !TRAINING.COPYRIGHT_1985_1986_1987_1988_RATIONAL has been saved.
+++ text !TRAINING.NOTES.IMPLEMENTATION_PLANNING has been saved.
+++ text !TRAINING.NOTES.IMPLEMENTATION_PLANNING_AUX has been saved.
+++ text !TRAINING.NOTES.IMPLEMENTATION_PLANNING_LPT has been saved.
+++ ps !TRAINING.NOTES.IMPLEMENTATION_PLANNING_PS has been saved.
+++ text !TRAINING.NOTES.INSTRUCTOR_NOTES has been saved.
+++ directory !TRAINING.NOTES.RELEASE_NOTES has been saved.
+++ text !TRAINING.NOTES.RELEASE_NOTES.
... DESIGN_FACILITY_CUSTOMIZATION_PRERELEASE_NOTE_88_03_16 has been saved.
+++ text !TRAINING.NOTES.RELEASE_NOTES.
... DESIGN_FACILITY_USER_TRAINING_PRERELEASE_NOTE_88_03_16 has been saved.
+++ text !TRAINING.NOTES.RELEASE_NOTES.PDM_PRERELEASE_NOTE_88_04_04 has been 
... saved.
+++ text !TRAINING.NOTES.RELEASE_NOTES.PRODUCTION_RELEASE_NOTE_87_12_03 has 
... been saved.
+++ world !TRAINING.SOFTWARE_RELEASES.PDM.DELTA_PRERELEASE_REV03 has been saved.
+++ proc_spec !TRAINING.SOFTWARE_RELEASES.PDM.DELTA_PRERELEASE_REV03.
... BUILD_TRAINING_USERS has been saved.
+++ proc_body !TRAINING.SOFTWARE_RELEASES.PDM.DELTA_PRERELEASE_REV03.
... BUILD_TRAINING_USERS'BODY has been saved.
+++ text !TRAINING.SOFTWARE_RELEASES.PDM.DELTA_PRERELEASE_REV03.
... COURSE_PREPARATION_NOTES has been saved.
+++ file !TRAINING.SOFTWARE_RELEASES.PDM.DELTA_PRERELEASE_REV03.DATA has been 
... saved.
+++ text !TRAINING.SOFTWARE_RELEASES.PDM.DELTA_PRERELEASE_REV03.INDEX has been 
... saved.
+++ load_proc !TRAINING.TOOLS.DELETE_ALL has been saved.
+++ load_proc !TRAINING.TOOLS.DESTROY_TRAINING_USERS has been saved.
+++ directory !TRAINING.TOOLS.LIVE_JOB_FILES has been saved.
+++ load_proc !TRAINING.TOOLS.START_TRAINING_SCRIPTS has been saved.
+++ load_proc !TRAINING.TOOLS.RESET_SCRIPTS has been saved.
+++ code for !TRAINING.TOOLS.RESET_SCRIPTS has been saved.
+++ code for !TRAINING.TOOLS.START_TRAINING_SCRIPTS has been saved.
+++ code for !TRAINING.TOOLS.DESTROY_TRAINING_USERS has been saved.
+++ code for !TRAINING.TOOLS.DELETE_ALL has been saved.
--- saved 26 objects in 1363643 bytes.
--- tape has been written.
--- [end of Archive.Save operation].

[end of document]
                           INSTRUCTOR NOTES
                           ================

1. PREPARING FOR A TRAINING COURSE

When preparing to deliver a training course, please check with the Response
Center to ensure that the training software on the training machine is the
latest release for the course to be delivered.  If required, a tape containing
the latest release is available from the Response Center.

To determine the release level, check the training software installed on the
training machine.  Training software releases are located in 

   "!Training.Software_Release.<COURSE NAMEs>.<COURSE VERSIONs>"

For example, "!Training.Software_Release.Fundamentals.Delta_Rev6" supports the
Fundamentals training for Delta and is the sixth version of the Fundamentals
course.
                                  

2. INSTALLING THE LATEST TRAINING SOFTWARE RELEASE (if required)
  
   2.1 Install the current release tape using the following command
       (from any context):

         Archive.Restore (Options => "CHANGED_OBJECTS, PROMOTE");
    
   2.2 If any errors are reported, please call the Response Center for
       assistance.

   2.3 If step 2 is successful, you may want to delete any older versions of
       the training software in "!Training.Software_Releases.<COURSE NAMEs>".
          

3. CREATING TRAINING USERS

Please follow the instructions in the "Course_Preparation_Notes" file for the
applicable course(s).

It is a good idea to have the training account user(s) create an empty text 
file such as "!Users.<TRAINING USER NAME>.In_Use_By_<USER INFORMATION>_<DATE>"
to indicate that the account is in use.  In addition to preventing others from 
accidently using the same account, it also provides information useful to the 
trainer and the system manager.

4. USING THE SCRIPT TOOLS

When required, the script tools are set up to be automatically involked by a
training user.  There is currently a bug in the environment which causes the
created script window to remain "invisible".  Users must visit their window
directory in order to locate this window.  When the window is visible, users
should perform a "[Window] - [Format]" operation to obtain the correct window
size then issue a "[Window] - [Promote]" to lock the window once it is visible.

The tools also prevent users from creating more than one script tool job.
The tools do this by creating a file, named by user and session, in the
directory "!Training.Tools.Live_Job_Files".  Upon execution, the script tools
check for the existence of this file and will not run if the file exists --
i.e. the file is used as a lockout mechanism.  If the user cancels the job
(e.g. with a Job.kill) or otherwise terminates abnormally (e.g. system
crash), this file will still exist even though no script job is running.
   
If a file exists for the user/session in "!Training.Tools.Live_Jobs_Files" when
the script tool is started, it will prevent itself from operating and,
therefore, effectively be locked out.  The way to fix this situation is to
execute the procedure "!Training.Tools.Reset_Scripts" from the user's session.
Do not execute this procedure unless the user's session is locked out.

Not all courses use the script tools.~major_heading(Installing the Training Tape)

To install the training software you need to perform two steps:

~startnp

~np
Destroy ~bold(!Training) with

~begin(verbatim)
    Compilation.Destroy (Unit => "!Training",
                         Threshold => 9999,
                         Limit => "<ALL_WORLDS>",
                         Response => "<PROFILE>");
~end(verbatim)

~np
Restore the training tape with:

~begin(verbatim)

    Archive.Restore (Options => "R1000, promote");

~end(verbatim)

~endnp          


        Installing the Training Tape

        To install the training software you need to perform two steps:

        1. Destroy !Training with

               Compilation.Destroy (Unit => "!Training",
                                    Threshold => 9999,
                                    Limit => "<ALL_WORLDS>",
                                    Response => "<PROFILE>");

        2. Restore the training tape with:

               Archive.Restore (Options => "R1000, promote");










































\f

Please see !Training.Notes.Release_Notes.Delta2_Release_Note_And-
_Installation_Procedure_91_02_19.procedure Build_Training_Users (First_User_Number : in Positive := 1;
                                Last_User_Number : in Positive;
                                Username_Prefix : in String := "Advanced";  
                                Response : in String := "<PROFILE>");with Access_List;
with Archive;
with Debug_Tools;
with Directory_Tools;
with Links;
with Log;
with Operator;
with Profile;
with String_Utilities;

procedure Build_Training_Users (First_User_Number : in Positive := 1;
                                Last_User_Number : in Positive;
                                Username_Prefix : in String := "Advanced";
                                Response : in String := "<PROFILE>") is

    package Naming renames Directory_Tools.Naming;
    package Object renames Directory_Tools.Object;

    function Capitalize (A_String : String) return String
        renames String_Utilities.Capitalize;

    Old_Response_Profile : Profile.Response_Profile := Profile.Get;
    Current_Response_Profile : Profile.Response_Profile :=
       Profile.Value (Response);

    procedure Closing_Message_For_Errors is
    begin
        Log.Put_Line
           ("[Finished building training users -- Error(s) detected]");
        Profile.Set (Old_Response_Profile);
    end Closing_Message_For_Errors;

    function Current_Library (Of_Object : String) return String is
        All_Objects : Object.Iterator := Naming.Resolution (Of_Object);
        An_Object : Object.Handle;
    begin
        An_Object := Object.Value (All_Objects);
        return Naming.Unique_Full_Name (An_Object);
    end Current_Library;

begin
    -- set up the response profile and log the command line
    --
    Profile.Set (Current_Response_Profile);
    Log.Put_Line ("[Build_Training_Users (First_User_Number => " &
                  String_Utilities.Number_To_String (First_User_Number) &
                  ", Last_User_Number => " &
                  String_Utilities.Number_To_String (Last_User_Number) &
                  ", Username_Prefix => """ & Username_Prefix &
                  """, Response => """ & Response & """);]",
                  Profile.Auxiliary_Msg);

    declare
        Context : constant String := Capitalize (Current_Library ("$"));
        Course : constant String :=
           Capitalize (Naming.Simple_Name (Naming.Prefix (Context)));
        Master_Full_Pathname : constant String :=
           Capitalize ("!Users." & Course & "_Master");

    begin
        Operator.Enable_Privileges (Enable => True);

        if Operator.Privileged_Mode /= True then
            Log.Put_Line
               ("You must have operator capability to create training users",
                Profile.Error_Msg);
            Closing_Message_For_Errors;
            return;
        end if;

        if First_User_Number > Last_User_Number then
            Log.Put_Line
               ("The First_User_Number must be 'less than' or 'equal to' the Last_User_Number",
                Profile.Error_Msg);
            Closing_Message_For_Errors;
            return;
        end if;

        for User_Count in First_User_Number .. Last_User_Number loop
            declare  
                User_Number : constant String :=
                   String_Utilities.Number_To_String (User_Count);
                User_Name : constant String :=  
                   Username_Prefix & "_" & User_Number;
                Users_Full_Pathname : constant String :=
                   Capitalize ("!Users." & User_Name);
            begin  
                Operator.Create_User (User => User_Name,
                                      Password => User_Name,
                                      Volume => 0,
                                      Response => "<PROFILE>");
                Links.Delete (Link => "Text_Io", World => Users_Full_Pathname);
                Archive.Restore
                   (Objects => "?",
                    Use_Prefix => Users_Full_Pathname,
                    For_Prefix => Master_Full_Pathname,
                    Options =>  
                       "R1000, PROMOTE, BECOME_OWNER, WORLD_ACL=(Network_Public => RWCOD), DEFAULT_ACL=(Network_Public => RW), OBJECT_ACL=(Network_Public => RW)",
                    Device => Context,
                    Response => "<PROFILE>");
                Access_List.Set
                   (To_List => "Network_Public => R",
                    For_Object => Users_Full_Pathname & ".Acl_World",
                    Response => "<PROFILE>");
                Log.Put_Line ("Completed building training user " & User_Name,
                              Profile.Positive_Msg);
            end;  
        end loop;

        Log.Put_Line ("[Finished building training users -- Examine the log]");
        Profile.Set (Old_Response_Profile);
    end;

exception
    when others =>
        Log.Put_Line ("Encountered an unexpected exception: " &
                      Debug_Tools.Get_Exception_Name, Profile.Exception_Msg);
        Closing_Message_For_Errors;


end Build_Training_Users;                           COURSE PREPARATION NOTES
                           ========================

COURSE NAME: Advanced_Topics

RELEASE: Delta1_Rev1

LOCATION: !Training.Software_Releases.Advanced_Topics.Delta1_Rev1


CONTENTS:

This library contains the course preparation instructions, the software used to
create a set of training user accounts and the archived software for the
Delta1_Rev1 release of the Advanced_Topics training course.


PREPARING TO PRESENT A COURSE:

1. Follow the instructions in "!Training.Notes.Instructor_Notes".

2. Ensure that the user accounts and worlds you want to create do not exist.

3. Create the training user worlds -- execute the "Build_Training_Users"
   procedure in "!Training.Software_Releases.Advanced_Topics.Delta1_Rev1"
   to create the desired training users.

   NOTES:

    - To create a set of training accounts for this release (Delta1_Rev1),
      the "Build_Training_Users" procedure must be executed:

         a) by a user with operator capability

         b) within "!Training.Software_Releases.Advanced_Topics.Delta1_Rev1"

    - As required, supply the "First_User_Number", the "Last_User_Number" and
      the "Username_Prefix" arguments to define the series of training user
      accounts to be created -- e.g. entering "1", "3" and "Learning",
      respectively, will create the following training user accounts:
      "Learning_1", "Learning_2" and "Learning_3".

    - The password for a training user account is the same as the user name
      (e.g. "Learning_1", "Learning_2" and "Learning_3" in the example above).

4. Subject to the note above, check the log to ensure that the training users
   have been created correctly.generic
    type Element is (<>);
package Buffer is
    type Queue is private;
    function Make return Queue;
    procedure Add (Item : Element; To : in out Queue);
    procedure Remove (Item : out Element; From : in out Queue);
    function Length (Of_Queue : Queue) return Natural;
    function Is_Empty (Q : Queue) return Boolean;
    function Display (Q : Queue) return String;
    Empty : exception;
private
    type Node;
    type Node_Access is access Node;

    type Node is
        record
            Next : Node_Access;
            Previous : Node_Access;
            Value : Element;
        end record;

    type Queue is
        record
            First : Node_Access := null;
            Last : Node_Access := null;
        end record;
end Buffer;package body Buffer is
    function Make return Queue is
        The_Queue : Queue := (First => null, Last => null);
    begin
        return The_Queue;
    end Make;

    procedure Add (Item : Element; To : in out Queue) is
        Temp : Node_Access := To.First;
    begin
        To.First := new Node'(Next => Temp, Previous => null, Value => Item);

        if Temp /= null then
            Temp.Previous := To.First;
        end if;

        if To.Last = null then
            To.Last := To.First;
        end if;
    end Add;

    procedure Remove (Item : out Element; From : in out Queue) is
    begin
        if From.First = null or From.Last = null then
            raise Empty;
        else
            Item := From.Last.Value;
            From.Last := From.Last.Previous;

            if From.Last = null then
                From.First := null;
            else
                From.Last.Next := null;
            end if;
        end if;
    end Remove;

    function Length (Of_Queue : Queue) return Natural is
        Temp : Node_Access;
        Count : Natural := 0;
    begin
        if Of_Queue.First = null then
            return 0;
        else
            Temp := Of_Queue.First;

            while Temp /= null loop
                Count := Count + 1;
                Temp := Temp.Next;
            end loop;

            return Count;
        end if;
    end Length;

    function Is_Empty (Q : Queue) return Boolean is
    begin
        return Q.First = null;
    end Is_Empty;


    function Display (Node : Node_Access) return String is
    begin
        if Node = null then
            return "";
        else
            return Element'Image (Node.Value) & "  " & Display (Node.Next);
        end if;
    end Display;
    function Display (Q : Queue) return String is
    begin
        return Display (Q.First);
    end Display;

end Buffer;procedure Producer_Consumer;with Buffer;
with Debug_Tools, Text_Io;
procedure Producer_Consumer is
    type Commodity is (Cotton, Paper, Coal, Silver, Plastic, Timber);

    function Next (C : Commodity) return Commodity is
    begin
        if C = Commodity'Last then
            return Commodity'First;
        else
            return Commodity'Succ (C);
        end if;
    end Next;

    task Queue is
        entry Put_At_End (Product : in Commodity);
        entry Get_From_Beginning (Product : out Commodity);
    end Queue;

    task Producer;

    task Consumer;

    task body Producer is
        Current : Commodity := Commodity'First;
        My_Delay : Duration := 2.5;
    begin
        Debug_Tools.Set_Task_Name ("producer");
        Debug_Tools.User_Break ("start of producer execution");

        for I in 1 .. 200 loop
            Current := Next (Current);
            Queue.Put_At_End (Current);
            delay My_Delay;
        end loop;
    end Producer;

    task body Consumer is
        Product : Commodity;
        My_Delay : Duration := 4.0;
    begin
        Debug_Tools.Set_Task_Name ("consumer");
        Debug_Tools.User_Break ("start of consumer execution");

        for I in 1 .. 200 loop
            Queue.Get_From_Beginning (Product);
            delay My_Delay;
        end loop;
    end Consumer;

    task body Queue is

        package Commodity_Buffer is new Buffer (Commodity);

        The_Buffer : Commodity_Buffer.Queue := Commodity_Buffer.Make;

        Buffer_Size : Natural := 8;
        Buffer_Length : Natural := 0;
        Last_In : Commodity := Commodity'First;
        Last_Out : Commodity := Commodity'First;
    begin
        Debug_Tools.Set_Task_Name ("queue");
        for I in 1 .. 200 loop
            select
                when (Buffer_Length < Buffer_Size) =>
                    accept Put_At_End (Product : in Commodity) do
                        Commodity_Buffer.Add (Last_In, The_Buffer);
                        Last_In := Product;
                    end Put_At_End;
            or
                when Buffer_Length > 0 =>
                    accept Get_From_Beginning (Product : out Commodity) do
                        Commodity_Buffer.Remove (Last_Out, The_Buffer);
                        Product := Last_Out;
                    end Get_From_Beginning;
            or
                delay 10.0;
            end select;

            Buffer_Length := Commodity_Buffer.Length (The_Buffer);
            Text_Io.Put_Line ("QUEUE: " &
                              Commodity_Buffer.Display (The_Buffer));
        end loop;


    end Queue;
begin
    null;
end Producer_Consumer;package Line is
    type Line_Kind is
       (Blank,                  -- all blank line
        Comment_Only,           -- first non_blank characters are "--"
        Other_Line);        -- non-blank and non-comment-only

    function Kind (The_Line : String) return Line_Kind;
    function Has_Comment (The_Line : String) return Boolean;

end Line;package body Line is

    function Locate_Comment (The_String : String) return Natural is
    begin
        for I in The_String'First .. The_String'Last - 1 loop
            if The_String (I .. I + 1) = "--" then
                return I;
            end if;
        end loop;
        return 0;
    end Locate_Comment;


    function Strip_Blanks (The_String : String) return String is
    begin
        for I in The_String'Range loop
            if The_String (I) /= ' ' then
                return The_String (I .. The_String'Last);
            end if;
        end loop;
        return "";
    end Strip_Blanks;


    function Kind (The_Line : String) return Line_Kind is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Clean_Line'Length = 0 then
            return Blank;
        elsif Comment_Location = 1 then
            return Comment_Only;
        else
            return Other_Line;
        end if;
    end Kind;

    function Has_Comment (The_Line : String) return Boolean is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Comment_Location = 0 then
            return False;
        else
            return True;
        end if;

    end Has_Comment;

end Line;package Line_Copy is
    type Line_Kind is
       (Blank,                  -- all blank line
        Comment_Only,           -- first non_blank characters are "--"
        Other_Line);        -- non-blank and non-comment-only

    function Kind (The_Line : String) return Line_Kind;
    function Has_Comment (The_Line : String) return Boolean;

end Line_Copy;package body Line_Copy is

    function Locate_Comment (The_String : String) return Natural is
    begin
        for I in The_String'First .. The_String'Last - 1 loop
            if The_String (I .. I + 1) = "--" then
                return I;
            end if;
        end loop;
        return 0;
    end Locate_Comment;


    function Strip_Blanks (The_String : String) return String is
    begin
        for I in The_String'Range loop
            if The_String (I) /= ' ' then
                return The_String (I .. The_String'Last);
            end if;
        end loop;
        return "";
    end Strip_Blanks;


    function Kind (The_Line : String) return Line_Kind is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Clean_Line'Length = 0 then
            return Blank;
        elsif Comment_Location = 1 then
            return Comment_Only;
        else
            return Other_Line;
        end if;
    end Kind;

    function Has_Comment (The_Line : String) return Boolean is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Comment_Location = 0 then
            return False;
        else
            return True;
        end if;

    end Has_Comment;

end Line_Copy;package Overloaded_Declarations is

    procedure P (I : Integer);
    pragma Nickname ("First_P");

    procedure P (B : Boolean);
    pragma Nickname ("Second_P");

end Overloaded_Declarations;with Report;
procedure Program_Profile (The_System : String;
                           Output_Destination : Report.Destination := "");with Report, Unit;
procedure Program_Profile (The_System : String;
                           Output_Destination : Report.Destination := "") is
begin
    Report.Display (Unit.Analyze (The_System), Output_Destination);
end Program_Profile;with Unit;
package Report is
    subtype Destination is String;
    procedure Display (The_Unit : Unit.Statistics;
                       The_Destination : Destination);
end Report;with Unit, Text_Io;
package body Report is

    package Statistics_Io is new Text_Io.Integer_Io (Natural);

    procedure Display (The_Unit : Unit.Statistics;
                       The_Destination : Destination) is
        Stats_File : Text_Io.File_Type;
    begin
        if The_Destination /= "" then
            begin
                Text_Io.Create (File => Stats_File,
                                Mode => Text_Io.Out_File,
                                Name => The_Destination,
                                Form => "");
            exception
                when Text_Io.Name_Error =>
                    begin
                        Text_Io.Open (File => Stats_File,
                                      Mode => Text_Io.Out_File,
                                      Name => The_Destination,
                                      Form => "");
                    exception
                        when Text_Io.Name_Error =>
                            Text_Io.Put_Line ("Invalid output file");
                            return;
                    end;
            end;
            Text_Io.Set_Output (Stats_File);
        end if;

        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("  Statistics for the unit:   ");
        Text_Io.Put_Line (Unit.Name_Of_Unit (The_Unit));
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("| Total Lines |  Comments   |");
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put ("| ");
        Statistics_Io.Put (Unit.Number_Of_Lines (The_Unit), 10);
        Text_Io.Put ("  | ");
        Statistics_Io.Put (Unit.Number_Of_Comments (The_Unit), 10);
        Text_Io.Put_Line ("  |");
        Text_Io.Put_Line ("-----------------------------");

        if The_Destination /= "" then
            Text_Io.Close (Stats_File);
            Text_Io.Set_Output (Text_Io.Standard_Output);
        end if;

    end Display;
end Report;with Line, Unit, Text_Io;
use Unit;
function Test_Input1 (The_Unit : Unit_Name) return Statistics is
    The_Statistics : Statistics; -- foo
    Unit_Line : String (1 .. 100);
    File : Text_Io.File_Type;
    function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind) return Boolean
        renames Line."=";
begin
    Text_Io.Open (File, Text_Io.In_File, The_Unit);
    -- foo

    while not Text_Io.End_Of_File (File) loop
        begin
            -- foo
            Text_Io.Get (File, Unit_Line);
            -- foo

            case Line.Kind (Unit_Line) is
                when Line.Blank =>
                    null;
                when Line.Comment_Only =>
                    The_Statistics.Comments := The_Statistics.Comments + 1;
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                when Line.Other_Line =>
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                    if Line.Has_Comment (Unit_Line) then
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                    end if;

            end case;
        exception
            when Io_Exceptions.End_Error =>
                Text_Io.Close (File);
        end;
    end loop;

    Text_Io.Close (File);
    The_Statistics.Name := Name_String.Value (The_Unit);
    return The_Statistics;
end Test_Input1;with Profile;

package Test_Input2 is

    subtype Name is String;
    -- Lexically and syntactically an Ada Name.

    subtype Simple_Name is String;
    -- A simple Ada name.  Basically, an identifier or operator.

    subtype Context_Name is Name;
    -- Treatment of context.  There is a current context that constitutes the
    -- assumed naming context.  Names are resolved in this context.

    -- The following characters modify the context:
    -- !   specifies the Universe context
    --  $   specifies the enclosing library for the context
    --  $$  specifies the enclosing world for the context.
    -- ^   specifies the parent of the current context
    --  @   matches any single name segment (or part thereof)
    -- ?   matches 0 or more name segments

    -- A null string will (usually) attempt to get the designated object
    -- from the current selection/image.
    Current_Selection : constant String := "";
    Current_Image : constant String := "";
    Selected_Text : constant String := "";

    subtype Response_Profile is Profile.Response_Profile;

    Error : exception renames Profile.Error;
    -- only the single exception Error is raised at the current time;
    procedure Resolve (Name_Of : Name := Library.Selected_Text;
                       Target_Name : Name := "";
                       Objects_Only : Boolean := True;
                       Response : Response_Profile := Profile.Get);
    -- Print the Full name for Name_Of;

    procedure Control_Point (Levels : Positive := 1;
                             Response : Response_Profile := Profile.Get);
    -- Set default context to the parent control point.

    procedure Context (To_Be : Context_Name := "$";
                       Response : Response_Profile := Profile.Get);
    -- Set the default context to To_Be.  When To_Be is the default context,
    -- only printing takes place.
    procedure Copy (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Copy Existing version resulting in version with New_Name.
    --
    -- New_Name designates an object that will exist after the copy has
    -- completed.  For Ada objects, changing the simple name will require
    -- user intervention before installation.
    --
    -- New_Name is interpreted in the current context or specified full
    -- context and must be unique.
    --
    -- The object designated by New_Name will be the same class as Existing.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Initial implementation can be expected to resist copying to/from
    -- objects representing devices.
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Recursive applies to objects that contain other objects and indicates
    -- that these contained objects should be copied.
    --
    -- If Copy_Links is true, then link packs for any worlds copied are
    -- duplicated, and any link which pointed to the source for a copy is
    -- altered to point to the destination.  If Copy_Links is false, any
    -- copied worlds will have empty link packs.
    --
    -- If a control point and its switch file are copied, then the copied
    -- unit will point to the copy of the switch file.  If the switch file
    -- is not copied, then the unit and its original will reference the
    -- same switch file.
    --
    -- Ada units are copied as source.
    --

    procedure Move (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Equivalent to Copy (Existing, ...); Delete (Existing);
    procedure Copy_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Copy Existing version(s) into New_Context
    --
    -- New_Context designates a context that will contain a copy of Existing
    -- after the copy has completed.  The new object(s) will have the same
    -- simple names as Existing and reside in New_Context.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Wildcards and recursive, if used, specify a series of copy operations.
    -- These operations are carried out in directory traversal order.  Each
    -- individual copy operation is carried out under its own action, so
    -- (with the appropriate parameters) it is possible for some objects to
    -- be copied and not others.

    procedure Move_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Equivalent to Copy_Into (Existing, ...); Delete (Existing);
    subtype Volume is Natural range 0 .. 31;
    Nil : constant Volume := Volume'First;

    type Kind is (World, Directory, Subpackage);

    procedure Create (Name : Library.Name;
                      Before : Simple_Name := "";
                      Control_Point : Kind := Library.Directory;
                      Vol : Volume := Library.Nil;
                      Response : Response_Profile := Profile.Get);
    -- Create a package of the specified type.  The Nil volume represents
    -- the 'best' volume.  Vol is ignored for Subpackages, which are not
    -- control points, and must be on the same volume as their parent.

    procedure Rename (Existing : Name;
                      New_Name : Simple_Name;
                      Response : Response_Profile := Profile.Get);
    -- Change the name of an existing library unit or managed object.
    -- References to library units are not changed -- only the actual
    -- name of the unit.  Various other restrictions apply.

    procedure Delete (Existing : Name := Library.Current_Selection;
                      Response : Response_Profile := Profile.Get);
    -- Delete an Existing version or versions.  Interpreted in current context.
    --
    -- For policies that support multiple versions, results will be reversible
    -- with Undelete, otherwise equivalent to Destroy.

    procedure Destroy (Existing : Name := Library.Current_Selection;
                       Response : Response_Profile := Profile.Get);
    -- Destroy an Existing version or versions and associated declaration.
    -- Interpreted in the current context.

    procedure Undelete (Existing : Name;
                        Response : Response_Profile := Profile.Get);
    -- Undelete an Existing version.  Same usages as Delete.
    --
    -- Only applicable to policies that support multiple versions.
    Default_Keep_Versions : constant := -1;
    -- Keep the default number of deleted versions.

    procedure Expunge (Existing : Name := Library.Current_Image;
                       Keep_Versions : Integer := 0;
                       Recursive : Boolean := True;
                       Control_Points : Boolean := False;
                       Response : Response_Profile := Profile.Get);
    -- Make deletions permanent.
    -- Recursive causes subobjects to be expunged.
    -- Control_Points causes recursive expunge to continue past control
    -- point boundaries.
    -- Keep_Versions deleted versions will be retained.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Set_Retention_Count
                 (Existing : Name := Library.Current_Image;
                  Keep_Versions : Integer := Library.Default_Keep_Versions;
                  Recursive : Boolean := True;
                  Control_Points : Boolean := False;
                  Response : Response_Profile := Profile.Get);
    -- Set the default number of deleted versions of an object which
    -- are retained.  Default is the same as the object's parent.
    -- Recursive causes subobjects to be touched.
    -- Control_Points causes recursion to continue past control
    -- point boundaries.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Freeze (Existing : Name := Library.Current_Image;
                      Recursive : Boolean := True;
                      Control_Points : Boolean := True;
                      Response : Response_Profile := Profile.Get);
    -- Prevent further changes to an object.
    -- Recursive causes subobjects to be frozen.
    -- Control_Points causes recursive freeze to continue past control
    -- point boundaries.

    procedure Unfreeze (Existing : Name := Library.Current_Image;
                        Recursive : Boolean := True;
                        Control_Points : Boolean := True;
                        Response : Response_Profile := Profile.Get);
    -- Permit changes to an object.
    -- Recursive causes subobjects to be unfrozen.
    -- Control_Points causes recursive unfreeze to continue past control
    -- point boundaries.


    procedure Default (Existing : Name;
                       Response : Response_Profile := Profile.Get);
    -- Set the default Version for the existing object and print the result as
    -- a message.  When Version = Default_Version, only printing results.
    --
    -- Only applicable to policies that support multiple versions.
    type Field is
       (Object,             -- Ada name.
        Version,            -- Version name.
        Class,              -- Directory class name.
        Updater,            -- User to last update object.
        Update_Time,        -- Time of last update.
        Creator,            -- User who created object.
        Create_Time,        -- Time of creation.
        Reader,             -- User to last read object.
        Read_Time,          -- Time of last read.
        Size,               -- Current size of object.
        Status,             -- Source, Installed, Coded, Elaborated, etc.
        Frozen,             -- Is this object frozen.
        Retention,          -- Max. number of deleted versions retained.
        Declaration  -- Ada declaration of object.
                     -- Sorted by declaration => declaration order
        );

    type Fields is array (Field) of Boolean;
    Verbose_Format : constant Fields := Fields'(Object .. Update_Time => True,
                                                Size .. Retention => True,
                                                others => False);
    Ada_Format : constant Fields :=
       Fields'(Status => True, Declaration => True, others => False);
    All_Fields : constant Fields := Fields'(others => True);
    Terse_Format : constant Fields := Fields'(Object => True, others => False);

    procedure List (Pattern : Name := "@";
                    Displaying : Fields := Library.Terse_Format;
                    Sorted_By : Field := Library.Object;
                    Descending : Boolean := False;
                    Response : Response_Profile := Profile.Get);

    procedure Verbose_List (Pattern : Name := "{@'V(ALL)}";
                            Displaying : Fields := Library.Verbose_Format;
                            Sorted_By : Field := Library.Object;
                            Descending : Boolean := False;
                            Response : Response_Profile := Profile.Get)
        renames List;

    procedure File_List (Pattern : Name := "$@'C(FILE)";
                         Displaying : Fields := Library.Verbose_Format;
                         Sorted_By : Field := Library.Object;
                         Descending : Boolean := False;
                         Response : Response_Profile := Profile.Get)
        renames List;

    procedure Ada_List (Pattern : Name := "@'C(ADA)";
                        Displaying : Fields := Library.Ada_Format;
                        Sorted_By : Field := Library.Declaration;
                        Descending : Boolean := False;
                        Response : Response_Profile := Profile.Get)
        renames List;

    procedure Space (For_Object : Name := "@";
                     Recursive : Boolean := True;
                     Each_Object : Boolean := False;
                     Each_Version : Boolean := False;
                     Space_Types : Boolean := True;
                     Control_Points : Boolean := False;
                     Response : Response_Profile := Profile.Get);

    -- Show the space utilization (in pages) For_Object, including Volume.
    -- Recursive causes sub-objects to be included.
    -- Each_Version lists each version, including recursive ones.
    -- Space_Types breaks the space for ada objects down into categories,
    -- including the object itself, code segment, attribute spaces, list files.
    -- Control_Points causes recursive space calculations to cross control
    -- point boundaries.
    -- Performs appropriate totalling.

    pragma Read_Only;
    pragma Subsystem (Command);
    pragma Module_Name (4, 3921);

    procedure Set_Subclass (Existing : Name := Library.Current_Selection;
                            To_Subclass : String := "";
                            Response : Response_Profile := Profile.Get);
    -- Set the subclass of an object.  A null string for To_Subclass requests
    -- the system to set the subclass to its 'best guess'.



    -- Quiet forms which correspond to those in Library_Object_Editor.

    procedure Create_World (Name : String; Volume : Natural := 0);
    procedure Create_Directory (Name : String);
    procedure Create_Unit (Name : String := "");

end Test_Input2;package Unit is

    subtype Unit_Name is String;

    type Statistics is private;

    function Analyze (The_Unit : Unit_Name) return Statistics;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name;

    function Number_Of_Lines (The_Unit : Statistics) return Natural;
    function Number_Of_Comments (The_Unit : Statistics) return Natural;

private

    type Statistics is
        record
            Name : String (1 .. 100);
            Lines : Natural := 0;
            Comments : Natural := 0;
        end record;

end Unit;with Text_Io, Line;
package body Unit is


    function Analyze (The_Unit : Unit_Name) return Statistics is
        The_Statistics : Statistics;
        Unit_Line : String (1 .. 100) := (others => ' ');
        File : Text_Io.File_Type;
        Last : Natural := 0;
        function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind)
                     return Boolean renames Line."=";
    begin
        Text_Io.Open (File, Text_Io.In_File, The_Unit);

        while not Text_Io.End_Of_File (File) loop
            begin
                Text_Io.Get_Line (File, Unit_Line, Last);

                case Line.Kind (Unit_Line) is
                    when Line.Blank =>
                        null;
                    when Line.Comment_Only =>
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                        The_Statistics.Lines := The_Statistics.Lines + 1;

                    when Line.Other_Line =>
                        The_Statistics.Lines := The_Statistics.Lines + 1;

                        if Line.Has_Comment (Unit_Line) then
                            The_Statistics.Comments :=
                               The_Statistics.Comments + 1;
                        end if;

                end case;

                Unit_Line := (others => ' ');
            exception
                when Text_Io.End_Error =>
                    Text_Io.Close (File);
            end;
        end loop;

        Text_Io.Close (File);
        Unit_Line (1 .. The_Unit'Last) := The_Unit;
        The_Statistics.Name := Unit_Line;
        return The_Statistics;
    end Analyze;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name is
    begin
        return The_Unit.Name;
    end Name_Of_Unit;

    function Number_Of_Lines (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Lines;
    end Number_Of_Lines;


    function Number_Of_Comments (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Comments;
    end Number_Of_Comments;
end Unit;package Line is
    type Line_Kind is
       (Blank,                  -- all blank line
        Comment_Only,           -- first non_blank characters are "--"
        Other_Line);        -- non-blank and non-comment-only

    function Kind (The_Line : String) return Line_Kind;
    function Has_Comment (The_Line : String) return Boolean;

end Line;package body Line is

    function Locate_Comment (The_String : String) return Natural is
    begin
        for I in The_String'First .. The_String'Last - 1 loop
            if The_String (I .. I + 1) = "--" then
                return I;
            end if;
        end loop;
        return 0;
    end Locate_Comment;


    function Strip_Blanks (The_String : String) return String is
    begin
        for I in The_String'Range loop
            if The_String (I) /= ' ' then
                return The_String (I .. The_String'Last);
            end if;
        end loop;
        return "";
    end Strip_Blanks;


    function Kind (The_Line : String) return Line_Kind is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Clean_Line'Length = 0 then
            return Blank;
        elsif Comment_Location = 1 then
            return Comment_Only;
        else
            return Other_Line;
        end if;
    end Kind;

    function Has_Comment (The_Line : String) return Boolean is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Comment_Location = 0 then
            return False;
        else
            return True;
        end if;

    end Has_Comment;

end Line;with Report;
procedure Program_Profile (The_System : String;
                           Output_Destination : Report.Destination := "");with Report, Unit;
procedure Program_Profile (The_System : String;
                           Output_Destination : Report.Destination := "") is
begin
    Report.Display (Unit.Analyze (The_System), Output_Destination);
end Program_Profile;with Unit;
package Report is
    subtype Destination is String;
    procedure Display (The_Unit : Unit.Statistics;
                       The_Destination : Destination);
end Report;with Unit, Text_Io;
package body Report is

    package Statistics_Io is new Text_Io.Integer_Io (Natural);

    procedure Display (The_Unit : Unit.Statistics;
                       The_Destination : Destination) is
        Stats_File : Text_Io.File_Type;
    begin
        if The_Destination /= "" then
            begin
                Text_Io.Create (File => Stats_File,
                                Mode => Text_Io.Out_File,
                                Name => The_Destination,
                                Form => "");
            exception
                when Text_Io.Name_Error =>
                    begin
                        Text_Io.Open (File => Stats_File,
                                      Mode => Text_Io.Out_File,
                                      Name => The_Destination,
                                      Form => "");
                    exception
                        when Text_Io.Name_Error =>
                            Text_Io.Put_Line ("Invalid output file");
                            return;
                    end;
            end;
            Text_Io.Set_Output (Stats_File);
        end if;

        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("  Statistics for the unit:   ");
        Text_Io.Put_Line (Unit.Name_Of_Unit (The_Unit));
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("| Total Lines |  Comments   |");
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put ("| ");
        Statistics_Io.Put (Unit.Number_Of_Lines (The_Unit), 10);
        Text_Io.Put ("  | ");
        Statistics_Io.Put (Unit.Number_Of_Comments (The_Unit), 10);
        Text_Io.Put_Line ("  |");
        Text_Io.Put_Line ("-----------------------------");

        if The_Destination /= "" then
            Text_Io.Close (Stats_File);
            Text_Io.Set_Output (Text_Io.Standard_Output);
        end if;

    end Display;
end Report;with Line, Unit, Text_Io;
use Unit;
function Test_Input1 (The_Unit : Unit_Name) return Statistics is
    The_Statistics : Statistics; -- foo
    Unit_Line : String (1 .. 100);
    File : Text_Io.File_Type;
    function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind) return Boolean
        renames Line."=";
begin
    Text_Io.Open (File, Text_Io.In_File, The_Unit);
    -- foo

    while not Text_Io.End_Of_File (File) loop
        begin
            -- foo
            Text_Io.Get (File, Unit_Line);
            -- foo

            case Line.Kind (Unit_Line) is
                when Line.Blank =>
                    null;
                when Line.Comment_Only =>
                    The_Statistics.Comments := The_Statistics.Comments + 1;
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                when Line.Other_Line =>
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                    if Line.Has_Comment (Unit_Line) then
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                    end if;

            end case;
        exception
            when Io_Exceptions.End_Error =>
                Text_Io.Close (File);
        end;
    end loop;

    Text_Io.Close (File);
    The_Statistics.Name := Name_String.Value (The_Unit);
    return The_Statistics;
end Test_Input1;with Profile;

package Test_Input2 is

    subtype Name is String;
    -- Lexically and syntactically an Ada Name.

    subtype Simple_Name is String;
    -- A simple Ada name.  Basically, an identifier or operator.

    subtype Context_Name is Name;
    -- Treatment of context.  There is a current context that constitutes the
    -- assumed naming context.  Names are resolved in this context.

    -- The following characters modify the context:
    -- !   specifies the Universe context
    --  $   specifies the enclosing library for the context
    --  $$  specifies the enclosing world for the context.
    -- ^   specifies the parent of the current context
    --  @   matches any single name segment (or part thereof)
    -- ?   matches 0 or more name segments

    -- A null string will (usually) attempt to get the designated object
    -- from the current selection/image.
    Current_Selection : constant String := "";
    Current_Image : constant String := "";
    Selected_Text : constant String := "";

    subtype Response_Profile is Profile.Response_Profile;

    Error : exception renames Profile.Error;
    -- only the single exception Error is raised at the current time;
    procedure Resolve (Name_Of : Name := Library.Selected_Text;
                       Target_Name : Name := "";
                       Objects_Only : Boolean := True;
                       Response : Response_Profile := Profile.Get);
    -- Print the Full name for Name_Of;

    procedure Control_Point (Levels : Positive := 1;
                             Response : Response_Profile := Profile.Get);
    -- Set default context to the parent control point.

    procedure Context (To_Be : Context_Name := "$";
                       Response : Response_Profile := Profile.Get);
    -- Set the default context to To_Be.  When To_Be is the default context,
    -- only printing takes place.
    procedure Copy (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Copy Existing version resulting in version with New_Name.
    --
    -- New_Name designates an object that will exist after the copy has
    -- completed.  For Ada objects, changing the simple name will require
    -- user intervention before installation.
    --
    -- New_Name is interpreted in the current context or specified full
    -- context and must be unique.
    --
    -- The object designated by New_Name will be the same class as Existing.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Initial implementation can be expected to resist copying to/from
    -- objects representing devices.
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Recursive applies to objects that contain other objects and indicates
    -- that these contained objects should be copied.
    --
    -- If Copy_Links is true, then link packs for any worlds copied are
    -- duplicated, and any link which pointed to the source for a copy is
    -- altered to point to the destination.  If Copy_Links is false, any
    -- copied worlds will have empty link packs.
    --
    -- If a control point and its switch file are copied, then the copied
    -- unit will point to the copy of the switch file.  If the switch file
    -- is not copied, then the unit and its original will reference the
    -- same switch file.
    --
    -- Ada units are copied as source.
    --

    procedure Move (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Equivalent to Copy (Existing, ...); Delete (Existing);
    procedure Copy_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Copy Existing version(s) into New_Context
    --
    -- New_Context designates a context that will contain a copy of Existing
    -- after the copy has completed.  The new object(s) will have the same
    -- simple names as Existing and reside in New_Context.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Wildcards and recursive, if used, specify a series of copy operations.
    -- These operations are carried out in directory traversal order.  Each
    -- individual copy operation is carried out under its own action, so
    -- (with the appropriate parameters) it is possible for some objects to
    -- be copied and not others.

    procedure Move_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Equivalent to Copy_Into (Existing, ...); Delete (Existing);
    subtype Volume is Natural range 0 .. 31;
    Nil : constant Volume := Volume'First;

    type Kind is (World, Directory, Subpackage);

    procedure Create (Name : Library.Name;
                      Before : Simple_Name := "";
                      Control_Point : Kind := Library.Directory;
                      Vol : Volume := Library.Nil;
                      Response : Response_Profile := Profile.Get);
    -- Create a package of the specified type.  The Nil volume represents
    -- the 'best' volume.  Vol is ignored for Subpackages, which are not
    -- control points, and must be on the same volume as their parent.

    procedure Rename (Existing : Name;
                      New_Name : Simple_Name;
                      Response : Response_Profile := Profile.Get);
    -- Change the name of an existing library unit or managed object.
    -- References to library units are not changed -- only the actual
    -- name of the unit.  Various other restrictions apply.

    procedure Delete (Existing : Name := Library.Current_Selection;
                      Response : Response_Profile := Profile.Get);
    -- Delete an Existing version or versions.  Interpreted in current context.
    --
    -- For policies that support multiple versions, results will be reversible
    -- with Undelete, otherwise equivalent to Destroy.

    procedure Destroy (Existing : Name := Library.Current_Selection;
                       Response : Response_Profile := Profile.Get);
    -- Destroy an Existing version or versions and associated declaration.
    -- Interpreted in the current context.

    procedure Undelete (Existing : Name;
                        Response : Response_Profile := Profile.Get);
    -- Undelete an Existing version.  Same usages as Delete.
    --
    -- Only applicable to policies that support multiple versions.
    Default_Keep_Versions : constant := -1;
    -- Keep the default number of deleted versions.

    procedure Expunge (Existing : Name := Library.Current_Image;
                       Keep_Versions : Integer := 0;
                       Recursive : Boolean := True;
                       Control_Points : Boolean := False;
                       Response : Response_Profile := Profile.Get);
    -- Make deletions permanent.
    -- Recursive causes subobjects to be expunged.
    -- Control_Points causes recursive expunge to continue past control
    -- point boundaries.
    -- Keep_Versions deleted versions will be retained.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Set_Retention_Count
                 (Existing : Name := Library.Current_Image;
                  Keep_Versions : Integer := Library.Default_Keep_Versions;
                  Recursive : Boolean := True;
                  Control_Points : Boolean := False;
                  Response : Response_Profile := Profile.Get);
    -- Set the default number of deleted versions of an object which
    -- are retained.  Default is the same as the object's parent.
    -- Recursive causes subobjects to be touched.
    -- Control_Points causes recursion to continue past control
    -- point boundaries.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Freeze (Existing : Name := Library.Current_Image;
                      Recursive : Boolean := True;
                      Control_Points : Boolean := True;
                      Response : Response_Profile := Profile.Get);
    -- Prevent further changes to an object.
    -- Recursive causes subobjects to be frozen.
    -- Control_Points causes recursive freeze to continue past control
    -- point boundaries.

    procedure Unfreeze (Existing : Name := Library.Current_Image;
                        Recursive : Boolean := True;
                        Control_Points : Boolean := True;
                        Response : Response_Profile := Profile.Get);
    -- Permit changes to an object.
    -- Recursive causes subobjects to be unfrozen.
    -- Control_Points causes recursive unfreeze to continue past control
    -- point boundaries.


    procedure Default (Existing : Name;
                       Response : Response_Profile := Profile.Get);
    -- Set the default Version for the existing object and print the result as
    -- a message.  When Version = Default_Version, only printing results.
    --
    -- Only applicable to policies that support multiple versions.
    type Field is
       (Object,             -- Ada name.
        Version,            -- Version name.
        Class,              -- Directory class name.
        Updater,            -- User to last update object.
        Update_Time,        -- Time of last update.
        Creator,            -- User who created object.
        Create_Time,        -- Time of creation.
        Reader,             -- User to last read object.
        Read_Time,          -- Time of last read.
        Size,               -- Current size of object.
        Status,             -- Source, Installed, Coded, Elaborated, etc.
        Frozen,             -- Is this object frozen.
        Retention,          -- Max. number of deleted versions retained.
        Declaration  -- Ada declaration of object.
                     -- Sorted by declaration => declaration order
        );

    type Fields is array (Field) of Boolean;
    Verbose_Format : constant Fields := Fields'(Object .. Update_Time => True,
                                                Size .. Retention => True,
                                                others => False);
    Ada_Format : constant Fields :=
       Fields'(Status => True, Declaration => True, others => False);
    All_Fields : constant Fields := Fields'(others => True);
    Terse_Format : constant Fields := Fields'(Object => True, others => False);

    procedure List (Pattern : Name := "@";
                    Displaying : Fields := Library.Terse_Format;
                    Sorted_By : Field := Library.Object;
                    Descending : Boolean := False;
                    Response : Response_Profile := Profile.Get);

    procedure Verbose_List (Pattern : Name := "{@'V(ALL)}";
                            Displaying : Fields := Library.Verbose_Format;
                            Sorted_By : Field := Library.Object;
                            Descending : Boolean := False;
                            Response : Response_Profile := Profile.Get)
        renames List;

    procedure File_List (Pattern : Name := "$@'C(FILE)";
                         Displaying : Fields := Library.Verbose_Format;
                         Sorted_By : Field := Library.Object;
                         Descending : Boolean := False;
                         Response : Response_Profile := Profile.Get)
        renames List;

    procedure Ada_List (Pattern : Name := "@'C(ADA)";
                        Displaying : Fields := Library.Ada_Format;
                        Sorted_By : Field := Library.Declaration;
                        Descending : Boolean := False;
                        Response : Response_Profile := Profile.Get)
        renames List;

    procedure Space (For_Object : Name := "@";
                     Recursive : Boolean := True;
                     Each_Object : Boolean := False;
                     Each_Version : Boolean := False;
                     Space_Types : Boolean := True;
                     Control_Points : Boolean := False;
                     Response : Response_Profile := Profile.Get);

    -- Show the space utilization (in pages) For_Object, including Volume.
    -- Recursive causes sub-objects to be included.
    -- Each_Version lists each version, including recursive ones.
    -- Space_Types breaks the space for ada objects down into categories,
    -- including the object itself, code segment, attribute spaces, list files.
    -- Control_Points causes recursive space calculations to cross control
    -- point boundaries.
    -- Performs appropriate totalling.

    pragma Read_Only;
    pragma Subsystem (Command);
    pragma Module_Name (4, 3921);

    procedure Set_Subclass (Existing : Name := Library.Current_Selection;
                            To_Subclass : String := "";
                            Response : Response_Profile := Profile.Get);
    -- Set the subclass of an object.  A null string for To_Subclass requests
    -- the system to set the subclass to its 'best guess'.



    -- Quiet forms which correspond to those in Library_Object_Editor.

    procedure Create_World (Name : String; Volume : Natural := 0);
    procedure Create_Directory (Name : String);
    procedure Create_Unit (Name : String := "");

end Test_Input2;package Unit is

    subtype Unit_Name is String;

    type Statistics is private;

    function Analyze (The_Unit : Unit_Name) return Statistics;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name;

    function Number_Of_Lines (The_Unit : Statistics) return Natural;
    function Number_Of_Comments (The_Unit : Statistics) return Natural;

    function Number_Of_Statments (The_Unit : Statistics) return Natural;
private

    type Statistics is
        record
            Name : String (1 .. 100);
            Lines : Natural := 0;
            Comments : Natural := 0;
        end record;

end Unit;with Text_Io, Line;
package body Unit is


    function Analyze (The_Unit : Unit_Name) return Statistics is
        The_Statistics : Statistics;
        Unit_Line : String (1 .. 100) := (others => ' ');
        File : Text_Io.File_Type;
        Last : Natural := 0;
        function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind)
                     return Boolean renames Line."=";
    begin
        Text_Io.Open (File, Text_Io.In_File, The_Unit);

        while not Text_Io.End_Of_File (File) loop
            begin
                Text_Io.Get_Line (File, Unit_Line, Last);

                case Line.Kind (Unit_Line) is
                    when Line.Blank =>
                        null;
                    when Line.Comment_Only =>
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                        The_Statistics.Lines := The_Statistics.Lines + 1;

                    when Line.Other_Line =>
                        The_Statistics.Lines := The_Statistics.Lines + 1;

                        if Line.Has_Comment (Unit_Line) then
                            The_Statistics.Comments :=
                               The_Statistics.Comments + 1;
                        end if;

                end case;

                Unit_Line := (others => ' ');
            exception
                when Text_Io.End_Error =>
                    Text_Io.Close (File);
            end;
        end loop;

        Text_Io.Close (File);
        Unit_Line (1 .. The_Unit'Last) := The_Unit;
        The_Statistics.Name := Unit_Line;
        return The_Statistics;
    end Analyze;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name is
    begin
        return The_Unit.Name;
    end Name_Of_Unit;

    function Number_Of_Lines (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Lines;
    end Number_Of_Lines;


    function Number_Of_Comments (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Comments;
    end Number_Of_Comments;
    function Number_Of_Statments (The_Unit : Statistics) return Natural is
    begin
        [statement]
    end Number_Of_Statments;
end Unit;procedure Main;with Message_Io;
with Process;
procedure Main is
    Input : Message_Io.Message;
begin
    loop
        Input := Message_Io.Read_From_Channel;
        case Message_Io.Kind (Input) is
            when Message_Io.One | Message_Io.Three =>
                if Message_Io.Length (Input) > 156 then
                    Message_Io.Change_Kind (Input, Message_Io.Two);
                    Message_Io.Send (Input);
                else
                    Message_Io.Send (Input);
                end if;
            when Message_Io.Two =>
                Message_Io.Change_Kind (Input, Message_Io.Three);
                Message_Io.Send (Input);
        end case;
    end loop;
exception
    when Message_Io.Not_Found =>
        null;
end Main;package Message_Io is

    type Message_Kind is (One, Two, Three);

    type Message is private;

    function Read_From_Channel return Message;

    procedure Send (The_Message : Message);

    function Kind (Of_Messgae : Message) return Message_Kind;

    procedure Change_Kind (The_Message : in out Message;
                           To_Kind : Message_Kind);

    function Length (Of_Message : Message) return Natural;

    function Data (Of_Message : Message) return String;

    Not_Found : exception;

private
    type Message is new Boolean;
end Message_Io;with Message_Io;
package Process is

    type Data is array (Natural range <>) of Integer;

    procedure Convert (The_Message : in out Message_Io.Message);

    function Get_Data (From_Message : Message_Io.Message) return Data;

end Process;with Message_Io;
package body Process is
    procedure Convert (The_Message : in out Message_Io.Message) is
        Local : Integer;
    begin
        case Message_Io.Kind (The_Message) is
            when Message_Io.One =>
                Message_Io.Change_Kind (The_Message, Message_Io.One);
            when Message_Io.Two | Message_Io.Three =>
                Message_Io.Change_Kind (The_Message, Message_Io.One);
        end case;
    end Convert;

    procedure Transfer (The_Message : Message_Io.Message;
                        To_Location : String) is
    begin
        null;
    end Transfer;

    procedure Convert (Input : String; Output_Data : out Data) is
    begin
        null;
    end Convert;

    function Get_Data (From_Message : Message_Io.Message) return Data is
        String_Data : constant String := Message_Io.Data (From_Message);
        Return_Data : Data (1 .. Message_Io.Length (From_Message)) :=
           (others => 0);
    begin
        if String_Data (Message_Io.Length (From_Message)) = '!' then
            case Message_Io.Kind (From_Message) is
                when Message_Io.One | Message_Io.Two =>
                    Convert (String_Data, Return_Data);
                when Message_Io.Three =>
                    raise Message_Io.Not_Found;
            end case;
        end if;
        return Return_Data;
    end Get_Data;
end Process;package Line is
    type Line_Kind is
       (Blank,                  -- all blank line
        Comment_Only,           -- first non_blank characters are "--"
        Other_Line);        -- non-blank and non-comment-only

    function Kind (The_Line : String) return Line_Kind;
    function Has_Comment (The_Line : String) return Boolean;

end Line;package body Line is

    function Locate_Comment (The_String : String) return Natural is
    begin
        for I in The_String'First .. The_String'Last - 1 loop
            if The_String (I .. I + 1) = "--" then
                return I;
            end if;
        end loop;
        return 0;
    end Locate_Comment;


    function Strip_Blanks (The_String : String) return String is
    begin
        for I in The_String'Range loop
            if The_String (I) /= ' ' then
                return The_String (I .. The_String'Last);
            end if;
        end loop;
        return "";
    end Strip_Blanks;


    function Kind (The_Line : String) return Line_Kind is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Clean_Line'Length = 0 then
            return Blank;
        elsif Comment_Location = 1 then
            return Comment_Only;
        else
            return Other_Line;
        end if;
    end Kind;

    function Has_Comment (The_Line : String) return Boolean is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Comment_Location = 0 then
            return False;
        else
            return True;
        end if;

    end Has_Comment;

end Line;procedure Program_Profile (The_System : String;
                           Output_Destination : String := "");with Report, Unit;
procedure Program_Profile (The_System : String;
                           Output_Destination : String := "") is
begin
    Report.Display (Unit.Analyze (The_System), Output_Destination);
end Program_Profile;with Unit;
package Report is

    procedure Display (The_Unit : Unit.Statistics; The_Destination : String);
end Report;with Unit, Text_Io;
package body Report is

    package Statistics_Io is new Text_Io.Integer_Io (Natural);

    procedure Display (The_Unit : Unit.Statistics; The_Destination : String) is
        Stats_File : Text_Io.File_Type;
    begin
        if The_Destination /= "" then
            begin
                Text_Io.Create (File => Stats_File,
                                Mode => Text_Io.Out_File,
                                Name => The_Destination,
                                Form => "");
            exception
                when Text_Io.Name_Error =>
                    begin
                        Text_Io.Open (File => Stats_File,
                                      Mode => Text_Io.Out_File,
                                      Name => The_Destination,
                                      Form => "");
                    exception
                        when Text_Io.Name_Error =>
                            Text_Io.Put_Line ("Invalid output file");
                            return;
                    end;
            end;
            Text_Io.Set_Output (Stats_File);
        end if;

        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("  Statistics for the unit:   ");
        Text_Io.Put_Line (Unit.Name_Of_Unit (The_Unit));
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("| Total Lines |  Comments   |");
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put ("| ");
        Statistics_Io.Put (Unit.Number_Of_Lines (The_Unit), 10);
        Text_Io.Put ("  | ");
        Statistics_Io.Put (Unit.Number_Of_Comments (The_Unit), 10);
        Text_Io.Put_Line ("  |");
        Text_Io.Put_Line ("-----------------------------");

        if The_Destination /= "" then
            Text_Io.Close (Stats_File);
            Text_Io.Set_Output (Text_Io.Standard_Output);
        end if;

    end Display;
end Report;procedure Test_Driver1;with Program_Profile;
with System_Utilities;
procedure Test_Driver1 is
    Test_Input : constant String := "!Users." & System_Utilities.User_Name &
                                       ".Program_Profile_System.Test_input_1";
begin
    Program_Profile (The_System => Test_Input, Output_Destination => "");
end Test_Driver1;with Line, Unit, Text_Io;
use Unit;
function Test_Input1 (The_Unit : Unit_Name) return Statistics is
    The_Statistics : Statistics; -- foo
    Unit_Line : String (1 .. 100);
    File : Text_Io.File_Type;
    function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind) return Boolean
        renames Line."=";
begin
    Text_Io.Open (File, Text_Io.In_File, The_Unit);
    -- foo

    while not Text_Io.End_Of_File (File) loop
        begin
            -- foo
            Text_Io.Get (File, Unit_Line);
            -- foo

            case Line.Kind (Unit_Line) is
                when Line.Blank =>
                    null;
                when Line.Comment_Only =>
                    The_Statistics.Comments := The_Statistics.Comments + 1;
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                when Line.Other_Line =>
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                    if Line.Has_Comment (Unit_Line) then
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                    end if;

            end case;
        exception
            when Io_Exceptions.End_Error =>
                Text_Io.Close (File);
        end;
    end loop;

    Text_Io.Close (File);
    The_Statistics.Name := Name_String.Value (The_Unit);
    return The_Statistics;
end Test_Input1;with Profile;

package Test_Input2 is

    subtype Name is String;
    -- Lexically and syntactically an Ada Name.

    subtype Simple_Name is String;
    -- A simple Ada name.  Basically, an identifier or operator.

    subtype Context_Name is Name;
    -- Treatment of context.  There is a current context that constitutes the
    -- assumed naming context.  Names are resolved in this context.

    -- The following characters modify the context:
    -- !   specifies the Universe context
    --  $   specifies the enclosing library for the context
    --  $$  specifies the enclosing world for the context.
    -- ^   specifies the parent of the current context
    --  @   matches any single name segment (or part thereof)
    -- ?   matches 0 or more name segments

    -- A null string will (usually) attempt to get the designated object
    -- from the current selection/image.
    Current_Selection : constant String := "";
    Current_Image : constant String := "";
    Selected_Text : constant String := "";

    subtype Response_Profile is Profile.Response_Profile;

    Error : exception renames Profile.Error;
    -- only the single exception Error is raised at the current time;
    procedure Resolve (Name_Of : Name := Library.Selected_Text;
                       Target_Name : Name := "";
                       Objects_Only : Boolean := True;
                       Response : Response_Profile := Profile.Get);
    -- Print the Full name for Name_Of;

    procedure Control_Point (Levels : Positive := 1;
                             Response : Response_Profile := Profile.Get);
    -- Set default context to the parent control point.

    procedure Context (To_Be : Context_Name := "$";
                       Response : Response_Profile := Profile.Get);
    -- Set the default context to To_Be.  When To_Be is the default context,
    -- only printing takes place.
    procedure Copy (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Copy Existing version resulting in version with New_Name.
    --
    -- New_Name designates an object that will exist after the copy has
    -- completed.  For Ada objects, changing the simple name will require
    -- user intervention before installation.
    --
    -- New_Name is interpreted in the current context or specified full
    -- context and must be unique.
    --
    -- The object designated by New_Name will be the same class as Existing.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Initial implementation can be expected to resist copying to/from
    -- objects representing devices.
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Recursive applies to objects that contain other objects and indicates
    -- that these contained objects should be copied.
    --
    -- If Copy_Links is true, then link packs for any worlds copied are
    -- duplicated, and any link which pointed to the source for a copy is
    -- altered to point to the destination.  If Copy_Links is false, any
    -- copied worlds will have empty link packs.
    --
    -- If a control point and its switch file are copied, then the copied
    -- unit will point to the copy of the switch file.  If the switch file
    -- is not copied, then the unit and its original will reference the
    -- same switch file.
    --
    -- Ada units are copied as source.
    --

    procedure Move (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Equivalent to Copy (Existing, ...); Delete (Existing);
    procedure Copy_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Copy Existing version(s) into New_Context
    --
    -- New_Context designates a context that will contain a copy of Existing
    -- after the copy has completed.  The new object(s) will have the same
    -- simple names as Existing and reside in New_Context.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Wildcards and recursive, if used, specify a series of copy operations.
    -- These operations are carried out in directory traversal order.  Each
    -- individual copy operation is carried out under its own action, so
    -- (with the appropriate parameters) it is possible for some objects to
    -- be copied and not others.

    procedure Move_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Equivalent to Copy_Into (Existing, ...); Delete (Existing);
    subtype Volume is Natural range 0 .. 31;
    Nil : constant Volume := Volume'First;

    type Kind is (World, Directory, Subpackage);

    procedure Create (Name : Library.Name;
                      Before : Simple_Name := "";
                      Control_Point : Kind := Library.Directory;
                      Vol : Volume := Library.Nil;
                      Response : Response_Profile := Profile.Get);
    -- Create a package of the specified type.  The Nil volume represents
    -- the 'best' volume.  Vol is ignored for Subpackages, which are not
    -- control points, and must be on the same volume as their parent.

    procedure Rename (Existing : Name;
                      New_Name : Simple_Name;
                      Response : Response_Profile := Profile.Get);
    -- Change the name of an existing library unit or managed object.
    -- References to library units are not changed -- only the actual
    -- name of the unit.  Various other restrictions apply.

    procedure Delete (Existing : Name := Library.Current_Selection;
                      Response : Response_Profile := Profile.Get);
    -- Delete an Existing version or versions.  Interpreted in current context.
    --
    -- For policies that support multiple versions, results will be reversible
    -- with Undelete, otherwise equivalent to Destroy.

    procedure Destroy (Existing : Name := Library.Current_Selection;
                       Response : Response_Profile := Profile.Get);
    -- Destroy an Existing version or versions and associated declaration.
    -- Interpreted in the current context.

    procedure Undelete (Existing : Name;
                        Response : Response_Profile := Profile.Get);
    -- Undelete an Existing version.  Same usages as Delete.
    --
    -- Only applicable to policies that support multiple versions.
    Default_Keep_Versions : constant := -1;
    -- Keep the default number of deleted versions.

    procedure Expunge (Existing : Name := Library.Current_Image;
                       Keep_Versions : Integer := 0;
                       Recursive : Boolean := True;
                       Control_Points : Boolean := False;
                       Response : Response_Profile := Profile.Get);
    -- Make deletions permanent.
    -- Recursive causes subobjects to be expunged.
    -- Control_Points causes recursive expunge to continue past control
    -- point boundaries.
    -- Keep_Versions deleted versions will be retained.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Set_Retention_Count
                 (Existing : Name := Library.Current_Image;
                  Keep_Versions : Integer := Library.Default_Keep_Versions;
                  Recursive : Boolean := True;
                  Control_Points : Boolean := False;
                  Response : Response_Profile := Profile.Get);
    -- Set the default number of deleted versions of an object which
    -- are retained.  Default is the same as the object's parent.
    -- Recursive causes subobjects to be touched.
    -- Control_Points causes recursion to continue past control
    -- point boundaries.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Freeze (Existing : Name := Library.Current_Image;
                      Recursive : Boolean := True;
                      Control_Points : Boolean := True;
                      Response : Response_Profile := Profile.Get);
    -- Prevent further changes to an object.
    -- Recursive causes subobjects to be frozen.
    -- Control_Points causes recursive freeze to continue past control
    -- point boundaries.

    procedure Unfreeze (Existing : Name := Library.Current_Image;
                        Recursive : Boolean := True;
                        Control_Points : Boolean := True;
                        Response : Response_Profile := Profile.Get);
    -- Permit changes to an object.
    -- Recursive causes subobjects to be unfrozen.
    -- Control_Points causes recursive unfreeze to continue past control
    -- point boundaries.


    procedure Default (Existing : Name;
                       Response : Response_Profile := Profile.Get);
    -- Set the default Version for the existing object and print the result as
    -- a message.  When Version = Default_Version, only printing results.
    --
    -- Only applicable to policies that support multiple versions.
    type Field is
       (Object,             -- Ada name.
        Version,            -- Version name.
        Class,              -- Directory class name.
        Updater,            -- User to last update object.
        Update_Time,        -- Time of last update.
        Creator,            -- User who created object.
        Create_Time,        -- Time of creation.
        Reader,             -- User to last read object.
        Read_Time,          -- Time of last read.
        Size,               -- Current size of object.
        Status,             -- Source, Installed, Coded, Elaborated, etc.
        Frozen,             -- Is this object frozen.
        Retention,          -- Max. number of deleted versions retained.
        Declaration  -- Ada declaration of object.
                     -- Sorted by declaration => declaration order
        );

    type Fields is array (Field) of Boolean;
    Verbose_Format : constant Fields := Fields'(Object .. Update_Time => True,
                                                Size .. Retention => True,
                                                others => False);
    Ada_Format : constant Fields :=
       Fields'(Status => True, Declaration => True, others => False);
    All_Fields : constant Fields := Fields'(others => True);
    Terse_Format : constant Fields := Fields'(Object => True, others => False);

    procedure List (Pattern : Name := "@";
                    Displaying : Fields := Library.Terse_Format;
                    Sorted_By : Field := Library.Object;
                    Descending : Boolean := False;
                    Response : Response_Profile := Profile.Get);

    procedure Verbose_List (Pattern : Name := "{@'V(ALL)}";
                            Displaying : Fields := Library.Verbose_Format;
                            Sorted_By : Field := Library.Object;
                            Descending : Boolean := False;
                            Response : Response_Profile := Profile.Get)
        renames List;

    procedure File_List (Pattern : Name := "$@'C(FILE)";
                         Displaying : Fields := Library.Verbose_Format;
                         Sorted_By : Field := Library.Object;
                         Descending : Boolean := False;
                         Response : Response_Profile := Profile.Get)
        renames List;

    procedure Ada_List (Pattern : Name := "@'C(ADA)";
                        Displaying : Fields := Library.Ada_Format;
                        Sorted_By : Field := Library.Declaration;
                        Descending : Boolean := False;
                        Response : Response_Profile := Profile.Get)
        renames List;

    procedure Space (For_Object : Name := "@";
                     Recursive : Boolean := True;
                     Each_Object : Boolean := False;
                     Each_Version : Boolean := False;
                     Space_Types : Boolean := True;
                     Control_Points : Boolean := False;
                     Response : Response_Profile := Profile.Get);

    -- Show the space utilization (in pages) For_Object, including Volume.
    -- Recursive causes sub-objects to be included.
    -- Each_Version lists each version, including recursive ones.
    -- Space_Types breaks the space for ada objects down into categories,
    -- including the object itself, code segment, attribute spaces, list files.
    -- Control_Points causes recursive space calculations to cross control
    -- point boundaries.
    -- Performs appropriate totalling.

    pragma Read_Only;
    pragma Subsystem (Command);
    pragma Module_Name (4, 3921);

    procedure Set_Subclass (Existing : Name := Library.Current_Selection;
                            To_Subclass : String := "";
                            Response : Response_Profile := Profile.Get);
    -- Set the subclass of an object.  A null string for To_Subclass requests
    -- the system to set the subclass to its 'best guess'.



    -- Quiet forms which correspond to those in Library_Object_Editor.

    procedure Create_World (Name : String; Volume : Natural := 0);
    procedure Create_Directory (Name : String);
    procedure Create_Unit (Name : String := "");

end Test_Input2;package Unit is

    subtype Unit_Name is String;

    type Statistics is private;

    function Analyze (The_Unit : Unit_Name) return Statistics;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name;

    function Number_Of_Lines (The_Unit : Statistics) return Natural;
    function Number_Of_Comments (The_Unit : Statistics) return Natural;

    function Number_Of_Statments (The_Unit : Statistics) return Natural;
private

    type Statistics is
        record
            Name : String (1 .. 100);
            Lines : Natural := 0;
            Comments : Natural := 0;
        end record;

end Unit;with Text_Io, Line;
package body Unit is


    function Analyze (The_Unit : Unit_Name) return Statistics is
        The_Statistics : Statistics;
        Unit_Line : String (1 .. 100) := (others => ' ');
        File : Text_Io.File_Type;
        Last : Natural := 0;
        function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind)
                     return Boolean renames Line."=";
    begin
        Text_Io.Open (File, Text_Io.In_File, The_Unit);

        while not Text_Io.End_Of_File (File) loop
            begin
                Text_Io.Get_Line (File, Unit_Line, Last);

                case Line.Kind (Unit_Line) is
                    when Line.Blank =>
                        null;
                    when Line.Comment_Only =>
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                        The_Statistics.Lines := The_Statistics.Lines + 1;

                    when Line.Other_Line =>
                        The_Statistics.Lines := The_Statistics.Lines + 1;

                        if Line.Has_Comment (Unit_Line) then
                            The_Statistics.Comments :=
                               The_Statistics.Comments + 1;
                        end if;

                end case;

                Unit_Line := (others => ' ');
            exception
                when Text_Io.End_Error =>
                    Text_Io.Close (File);
            end;
        end loop;

        Text_Io.Close (File);
        Unit_Line (1 .. The_Unit'Last) := The_Unit;
        The_Statistics.Name := Unit_Line;
        return The_Statistics;
    end Analyze;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name is
    begin
        return The_Unit.Name;
    end Name_Of_Unit;

    function Number_Of_Lines (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Lines;
    end Number_Of_Lines;


    function Number_Of_Comments (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Comments;
    end Number_Of_Comments;
    function Number_Of_Statments (The_Unit : Statistics) return Natural is
    begin
        [statement]
    end Number_Of_Statments;
end Unit;package Line is
    type Line_Kind is
       (Blank,                  -- all blank line
        Comment_Only,           -- first non_blank characters are "--"
        Other_Line);        -- non-blank and non-comment-only

    function Kind (The_Line : String) return Line_Kind;
    function Has_Comment (The_Line : String) return Boolean;

end Line;with String_Utilities;
package body Line is

    function Kind (The_Line : String) return Line_Kind is
        Clean_Line : constant String := String_Utilities.Strip (The_Line);
        Comment_Location : constant Natural :=
           String_Utilities.Locate ("--", Clean_Line);
    begin
        if Clean_Line'Length = 0 then
            return Blank;
        elsif Comment_Location = 1 then
            return Comment_Only;
        else
            return Other_Line;
        end if;
    end Kind;

    function Has_Comment (The_Line : String) return Boolean is
        Clean_Line : constant String := String_Utilities.Strip (The_Line);
        Comment_Location : constant Natural :=
           String_Utilities.Locate ("--", Clean_Line);
    begin
        if Comment_Location = 0 then
            return False;
        else
            return True;
        end if;

    end Has_Comment;

end Line;with Report;
procedure Program_Profile (The_System : String;
                           Output_Destination : Report.Destination := "");with Report, Unit;
procedure Program_Profile (The_System : String;
                           Output_Destination : Report.Destination := "") is
begin
    Report.Display (Unit.Analyze_Statistics (The_System), Output_Destination);
end Program_Profile;with Unit;
package Report is
    subtype Destination is String;
    procedure Display (The_Unit : Unit.Statistics;
                       The_Destination : Destination);
end Report;with Unit, Text_Io;
package body Report is

    package Statistics_Io is new Text_Io.Integer_Io (Natural);

    procedure Display (The_Unit : Unit.Statistics;
                       The_Destination : Destination) is
        Stats_File : Text_Io.File_Type;
    begin
        if The_Destination /= "" then
            begin
                Text_Io.Create (File => Stats_File,
                                Mode => Text_Io.Out_File,
                                Name => The_Destination,
                                Form => "");
            exception
                when Text_Io.Name_Error =>
                    begin
                        Text_Io.Open (File => Stats_File,
                                      Mode => Text_Io.Out_File,
                                      Name => The_Destination,
                                      Form => "");
                    exception
                        when Text_Io.Name_Error =>
                            Text_Io.Put_Line ("Invalid output file");
                            return;
                    end;
            end;
            Text_Io.Set_Output (Stats_File);
        end if;

        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("  Statistics for the unit:   ");
        Text_Io.Put_Line (Unit.Name_Of_Unit (The_Unit));
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("| Total Lines |  Comments   |");
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put ("| ");
        Statistics_Io.Put (Unit.Number_Of_Lines (The_Unit), 10);
        Text_Io.Put ("  | ");
        Statistics_Io.Put (Unit.Number_Of_Comments (The_Unit), 10);
        Text_Io.Put_Line ("  |");
        Text_Io.Put_Line ("-----------------------------");

        if The_Destination /= "" then
            Text_Io.Close (Stats_File);
            Text_Io.Set_Output (Text_Io.Standard_Output);
        end if;

    end Display;
end Report;with Line, Unit, Text_Io;
use Unit;
function Test_Input1 (The_Unit : Unit_Name) return Statistics is
    The_Statistics : Statistics; -- foo
    Unit_Line : String (1 .. 100);
    File : Text_Io.File_Type;
    function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind) return Boolean
        renames Line."=";
begin
    Text_Io.Open (File, Text_Io.In_File, The_Unit);
    -- foo

    while not Text_Io.End_Of_File (File) loop
        begin
            -- foo
            Text_Io.Get (File, Unit_Line);
            -- foo

            case Line.Kind (Unit_Line) is
                when Line.Blank =>
                    null;
                when Line.Comment_Only =>
                    The_Statistics.Comments := The_Statistics.Comments + 1;
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                when Line.Other_Line =>
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                    if Line.Has_Comment (Unit_Line) then
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                    end if;

            end case;
        exception
            when Io_Exceptions.End_Error =>
                Text_Io.Close (File);
        end;
    end loop;

    Text_Io.Close (File);
    The_Statistics.Name := Name_String.Value (The_Unit);
    return The_Statistics;
end Test_Input1;with Profile;

package Test_Input2 is

    subtype Name is String;
    -- Lexically and syntactically an Ada Name.

    subtype Simple_Name is String;
    -- A simple Ada name.  Basically, an identifier or operator.

    subtype Context_Name is Name;
    -- Treatment of context.  There is a current context that constitutes the
    -- assumed naming context.  Names are resolved in this context.

    -- The following characters modify the context:
    -- !   specifies the Universe context
    --  $   specifies the enclosing library for the context
    --  $$  specifies the enclosing world for the context.
    -- ^   specifies the parent of the current context
    --  @   matches any single name segment (or part thereof)
    -- ?   matches 0 or more name segments

    -- A null string will (usually) attempt to get the designated object
    -- from the current selection/image.
    Current_Selection : constant String := "";
    Current_Image : constant String := "";
    Selected_Text : constant String := "";

    subtype Response_Profile is Profile.Response_Profile;

    Error : exception renames Profile.Error;
    -- only the single exception Error is raised at the current time;
    procedure Resolve (Name_Of : Name := Library.Selected_Text;
                       Target_Name : Name := "";
                       Objects_Only : Boolean := True;
                       Response : Response_Profile := Profile.Get);
    -- Print the Full name for Name_Of;

    procedure Control_Point (Levels : Positive := 1;
                             Response : Response_Profile := Profile.Get);
    -- Set default context to the parent control point.

    procedure Context (To_Be : Context_Name := "$";
                       Response : Response_Profile := Profile.Get);
    -- Set the default context to To_Be.  When To_Be is the default context,
    -- only printing takes place.
    procedure Copy (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Copy Existing version resulting in version with New_Name.
    --
    -- New_Name designates an object that will exist after the copy has
    -- completed.  For Ada objects, changing the simple name will require
    -- user intervention before installation.
    --
    -- New_Name is interpreted in the current context or specified full
    -- context and must be unique.
    --
    -- The object designated by New_Name will be the same class as Existing.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Initial implementation can be expected to resist copying to/from
    -- objects representing devices.
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Recursive applies to objects that contain other objects and indicates
    -- that these contained objects should be copied.
    --
    -- If Copy_Links is true, then link packs for any worlds copied are
    -- duplicated, and any link which pointed to the source for a copy is
    -- altered to point to the destination.  If Copy_Links is false, any
    -- copied worlds will have empty link packs.
    --
    -- If a control point and its switch file are copied, then the copied
    -- unit will point to the copy of the switch file.  If the switch file
    -- is not copied, then the unit and its original will reference the
    -- same switch file.
    --
    -- Ada units are copied as source.
    --

    procedure Move (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Equivalent to Copy (Existing, ...); Delete (Existing);
    procedure Copy_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Copy Existing version(s) into New_Context
    --
    -- New_Context designates a context that will contain a copy of Existing
    -- after the copy has completed.  The new object(s) will have the same
    -- simple names as Existing and reside in New_Context.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Wildcards and recursive, if used, specify a series of copy operations.
    -- These operations are carried out in directory traversal order.  Each
    -- individual copy operation is carried out under its own action, so
    -- (with the appropriate parameters) it is possible for some objects to
    -- be copied and not others.

    procedure Move_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Equivalent to Copy_Into (Existing, ...); Delete (Existing);
    subtype Volume is Natural range 0 .. 31;
    Nil : constant Volume := Volume'First;

    type Kind is (World, Directory, Subpackage);

    procedure Create (Name : Library.Name;
                      Before : Simple_Name := "";
                      Control_Point : Kind := Library.Directory;
                      Vol : Volume := Library.Nil;
                      Response : Response_Profile := Profile.Get);
    -- Create a package of the specified type.  The Nil volume represents
    -- the 'best' volume.  Vol is ignored for Subpackages, which are not
    -- control points, and must be on the same volume as their parent.

    procedure Rename (Existing : Name;
                      New_Name : Simple_Name;
                      Response : Response_Profile := Profile.Get);
    -- Change the name of an existing library unit or managed object.
    -- References to library units are not changed -- only the actual
    -- name of the unit.  Various other restrictions apply.

    procedure Delete (Existing : Name := Library.Current_Selection;
                      Response : Response_Profile := Profile.Get);
    -- Delete an Existing version or versions.  Interpreted in current context.
    --
    -- For policies that support multiple versions, results will be reversible
    -- with Undelete, otherwise equivalent to Destroy.

    procedure Destroy (Existing : Name := Library.Current_Selection;
                       Response : Response_Profile := Profile.Get);
    -- Destroy an Existing version or versions and associated declaration.
    -- Interpreted in the current context.

    procedure Undelete (Existing : Name;
                        Response : Response_Profile := Profile.Get);
    -- Undelete an Existing version.  Same usages as Delete.
    --
    -- Only applicable to policies that support multiple versions.
    Default_Keep_Versions : constant := -1;
    -- Keep the default number of deleted versions.

    procedure Expunge (Existing : Name := Library.Current_Image;
                       Keep_Versions : Integer := 0;
                       Recursive : Boolean := True;
                       Control_Points : Boolean := False;
                       Response : Response_Profile := Profile.Get);
    -- Make deletions permanent.
    -- Recursive causes subobjects to be expunged.
    -- Control_Points causes recursive expunge to continue past control
    -- point boundaries.
    -- Keep_Versions deleted versions will be retained.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Set_Retention_Count
                 (Existing : Name := Library.Current_Image;
                  Keep_Versions : Integer := Library.Default_Keep_Versions;
                  Recursive : Boolean := True;
                  Control_Points : Boolean := False;
                  Response : Response_Profile := Profile.Get);
    -- Set the default number of deleted versions of an object which
    -- are retained.  Default is the same as the object's parent.
    -- Recursive causes subobjects to be touched.
    -- Control_Points causes recursion to continue past control
    -- point boundaries.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Freeze (Existing : Name := Library.Current_Image;
                      Recursive : Boolean := True;
                      Control_Points : Boolean := True;
                      Response : Response_Profile := Profile.Get);
    -- Prevent further changes to an object.
    -- Recursive causes subobjects to be frozen.
    -- Control_Points causes recursive freeze to continue past control
    -- point boundaries.

    procedure Unfreeze (Existing : Name := Library.Current_Image;
                        Recursive : Boolean := True;
                        Control_Points : Boolean := True;
                        Response : Response_Profile := Profile.Get);
    -- Permit changes to an object.
    -- Recursive causes subobjects to be unfrozen.
    -- Control_Points causes recursive unfreeze to continue past control
    -- point boundaries.


    procedure Default (Existing : Name;
                       Response : Response_Profile := Profile.Get);
    -- Set the default Version for the existing object and print the result as
    -- a message.  When Version = Default_Version, only printing results.
    --
    -- Only applicable to policies that support multiple versions.
    type Field is
       (Object,             -- Ada name.
        Version,            -- Version name.
        Class,              -- Directory class name.
        Updater,            -- User to last update object.
        Update_Time,        -- Time of last update.
        Creator,            -- User who created object.
        Create_Time,        -- Time of creation.
        Reader,             -- User to last read object.
        Read_Time,          -- Time of last read.
        Size,               -- Current size of object.
        Status,             -- Source, Installed, Coded, Elaborated, etc.
        Frozen,             -- Is this object frozen.
        Retention,          -- Max. number of deleted versions retained.
        Declaration  -- Ada declaration of object.
                     -- Sorted by declaration => declaration order
        );

    type Fields is array (Field) of Boolean;
    Verbose_Format : constant Fields := Fields'(Object .. Update_Time => True,
                                                Size .. Retention => True,
                                                others => False);
    Ada_Format : constant Fields :=
       Fields'(Status => True, Declaration => True, others => False);
    All_Fields : constant Fields := Fields'(others => True);
    Terse_Format : constant Fields := Fields'(Object => True, others => False);

    procedure List (Pattern : Name := "@";
                    Displaying : Fields := Library.Terse_Format;
                    Sorted_By : Field := Library.Object;
                    Descending : Boolean := False;
                    Response : Response_Profile := Profile.Get);

    procedure Verbose_List (Pattern : Name := "{@'V(ALL)}";
                            Displaying : Fields := Library.Verbose_Format;
                            Sorted_By : Field := Library.Object;
                            Descending : Boolean := False;
                            Response : Response_Profile := Profile.Get)
        renames List;

    procedure File_List (Pattern : Name := "$@'C(FILE)";
                         Displaying : Fields := Library.Verbose_Format;
                         Sorted_By : Field := Library.Object;
                         Descending : Boolean := False;
                         Response : Response_Profile := Profile.Get)
        renames List;

    procedure Ada_List (Pattern : Name := "@'C(ADA)";
                        Displaying : Fields := Library.Ada_Format;
                        Sorted_By : Field := Library.Declaration;
                        Descending : Boolean := False;
                        Response : Response_Profile := Profile.Get)
        renames List;

    procedure Space (For_Object : Name := "@";
                     Recursive : Boolean := True;
                     Each_Object : Boolean := False;
                     Each_Version : Boolean := False;
                     Space_Types : Boolean := True;
                     Control_Points : Boolean := False;
                     Response : Response_Profile := Profile.Get);

    -- Show the space utilization (in pages) For_Object, including Volume.
    -- Recursive causes sub-objects to be included.
    -- Each_Version lists each version, including recursive ones.
    -- Space_Types breaks the space for ada objects down into categories,
    -- including the object itself, code segment, attribute spaces, list files.
    -- Control_Points causes recursive space calculations to cross control
    -- point boundaries.
    -- Performs appropriate totalling.

    pragma Read_Only;
    pragma Subsystem (Command);
    pragma Module_Name (4, 3921);

    procedure Set_Subclass (Existing : Name := Library.Current_Selection;
                            To_Subclass : String := "";
                            Response : Response_Profile := Profile.Get);
    -- Set the subclass of an object.  A null string for To_Subclass requests
    -- the system to set the subclass to its 'best guess'.



    -- Quiet forms which correspond to those in Library_Object_Editor.

    procedure Create_World (Name : String; Volume : Natural := 0);
    procedure Create_Directory (Name : String);
    procedure Create_Unit (Name : String := "");

end Test_Input2;package Unit is

    subtype Unit_Name is String;

    type Statistics is private;

    function Analyze_Statistics (The_Unit : Unit_Name) return Statistics;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name;

    function Number_Of_Lines (The_Unit : Statistics) return Natural;
    function Number_Of_Comments (The_Unit : Statistics) return Natural;

    function Number_Of_Statments (The_Unit : Statistics) return Natural;
private

    type Statistics is
        record
            Name : String (1 .. 100);
            Lines : Natural := 0;
            Comments : Natural := 0;
        end record;

end Unit;with Text_Io, Line;
package body Unit is

    function Analyze_Statistics (The_Unit : Unit_Name) return Statistics is
        The_Statistics : Statistics;
        Unit_Line : String (1 .. 100) := (others => ' ');
        File : Text_Io.File_Type;
        Last : Natural := 0;
        function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind)
                     return Boolean renames Line."=";
    begin
        Text_Io.Open (File, Text_Io.In_File, The_Unit);

        while not Text_Io.End_Of_File (File) loop
            begin
                Text_Io.Get_Line (File, Unit_Line, Last);

                case Line.Kind (Unit_Line) is
                    when Line.Blank =>
                        null;
                    when Line.Comment_Only =>
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                        The_Statistics.Lines := The_Statistics.Lines + 1;

                    when Line.Other_Line =>
                        The_Statistics.Lines := The_Statistics.Lines + 1;

                        if Line.Has_Comment (Unit_Line) then
                            The_Statistics.Comments :=
                               The_Statistics.Comments + 1;
                        end if;

                end case;

                Unit_Line := (others => ' ');
            exception
                when Text_Io.End_Error =>
                    Text_Io.Close (File);
            end;
        end loop;

        Text_Io.Close (File);
        Unit_Line (1 .. The_Unit'Last) := The_Unit;
        The_Statistics.Name := Unit_Line;
        return The_Statistics;
    end Analyze_Statistics;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name is
    begin
        return The_Unit.Name;
    end Name_Of_Unit;

    function Number_Of_Lines (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Lines;
    end Number_Of_Lines;


    function Number_Of_Comments (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Comments;
    end Number_Of_Comments;
    function Number_Of_Statments (The_Unit : Statistics) return Natural is
    begin
        [statement]
    end Number_Of_Statments;
end Unit;package Line is
    type Line_Kind is
       (Blank,                  -- all blank line
        Comment_Only,           -- first non_blank characters are "--"
        Other_Line);        -- non-blank and non-comment-only

    function Kind (The_Line : String) return Line_Kind;
    function Has_Comment (The_Line : String) return Boolean;

end Line;package body Line is

    function Locate_Comment (The_String : String) return Natural is separate;

    function Strip_Blanks (The_String : String) return String is separate;

    function Kind (The_Line : String) return Line_Kind is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Clean_Line'Length = 0 then
            return Blank;
        elsif Comment_Location = 1 then
            return Comment_Only;
        else
            return Other_Line;
        end if;
    end Kind;
    function Has_Comment (The_Line : String) return Boolean is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Comment_Location = 0 then
            return False;
        else
            return True;
        end if;

    end Has_Comment;

end Line;separate (Line)
function Locate_Comment (The_String : String) return Natural is
begin
    for I in The_String'First .. The_String'Last - 1 loop
        if The_String (I .. I + 1) = "--" then
            return I;
        end if;
    end loop;
    return 0;
end Locate_Comment;

separate (Line)
function Strip_Blanks (The_String : String) return String is
begin
    for I in The_String'Range loop
        if The_String (I) /= ' ' then
            return The_String (I .. The_String'Last);
        end if;
    end loop;
    return "";
end Strip_Blanks;
with Report;
procedure Program_Profile (The_System : String;
                           Output_Destination : Report.Destination := "");with Report, Unit;
procedure Program_Profile (The_System : String;
                           Output_Destination : Report.Destination := "") is
begin
    Report.Display (Unit.Analyze (The_System), Output_Destination);
end Program_Profile;with Unit;
package Report is
    subtype Destination is String;
    procedure Display (The_Unit : Unit.Statistics;
                       The_Destination : Destination);
end Report;with Unit, Text_Io;
package body Report is

    package Statistics_Io is new Text_Io.Integer_Io (Natural);

    procedure Display (The_Unit : Unit.Statistics;
                       The_Destination : Report.Destination) is
        Stats_File : Text_Io.File_Type;
    begin
        if The_Destination /= "" then
            begin
                Text_Io.Create (File => Report.Display.Stats_File,
                                Mode => Text_Io.Out_File,
                                Name => Report.Display.The_Destination,
                                Form => "");
            exception
                when Text_Io.Name_Error =>
                    begin
                        Text_Io.Open (File => Report.Display.Stats_File,
                                      Mode => Text_Io.Out_File,
                                      Name => Report.Display.The_Destination,
                                      Form => "");
                    exception
                        when Text_Io.Name_Error =>
                            Text_Io.Put_Line ("Invalid output file");
                            return;
                    end;
            end;
            Text_Io.Set_Output (Report.Display.Stats_File);
        end if;

        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("  Statistics for the unit:   ");
        Text_Io.Put_Line (Unit.Name_Of_Unit (The_Unit));
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("| Total Lines |  Comments   |");
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put ("| ");
        Statistics_Io.Put (Unit.Number_Of_Lines (The_Unit), 10);
        Text_Io.Put ("  | ");
        Statistics_Io.Put (Unit.Number_Of_Comments (The_Unit), 10);
        Text_Io.Put_Line ("  |");
        Text_Io.Put_Line ("-----------------------------");

        if The_Destination /= "" then
            Text_Io.Close (Report.Display.Stats_File);
            Text_Io.Set_Output (Text_Io.Standard_Output);
        end if;

    end Display;
end Report;with Line, Unit, Text_Io;
use Unit;
function Test_Input1 (The_Unit : Unit_Name) return Statistics is
    The_Statistics : Statistics; -- foo
    Unit_Line : String (1 .. 100);
    File : Text_Io.File_Type;
    function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind) return Boolean
        renames Line."=";
begin
    Text_Io.Open (File, Text_Io.In_File, The_Unit);
    -- foo

    while not Text_Io.End_Of_File (File) loop
        begin
            -- foo
            Text_Io.Get (File, Unit_Line);
            -- foo

            case Line.Kind (Unit_Line) is
                when Line.Blank =>
                    null;
                when Line.Comment_Only =>
                    The_Statistics.Comments := The_Statistics.Comments + 1;
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                when Line.Other_Line =>
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                    if Line.Has_Comment (Unit_Line) then
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                    end if;

            end case;
        exception
            when Io_Exceptions.End_Error =>
                Text_Io.Close (File);
        end;
    end loop;

    Text_Io.Close (File);
    The_Statistics.Name := Name_String.Value (The_Unit);
    return The_Statistics;
end Test_Input1;with Profile;

package Test_Input2 is

    subtype Name is String;
    -- Lexically and syntactically an Ada Name.

    subtype Simple_Name is String;
    -- A simple Ada name.  Basically, an identifier or operator.

    subtype Context_Name is Name;
    -- Treatment of context.  There is a current context that constitutes the
    -- assumed naming context.  Names are resolved in this context.

    -- The following characters modify the context:
    -- !   specifies the Universe context
    --  $   specifies the enclosing library for the context
    --  $$  specifies the enclosing world for the context.
    -- ^   specifies the parent of the current context
    --  @   matches any single name segment (or part thereof)
    -- ?   matches 0 or more name segments

    -- A null string will (usually) attempt to get the designated object
    -- from the current selection/image.
    Current_Selection : constant String := "";
    Current_Image : constant String := "";
    Selected_Text : constant String := "";

    subtype Response_Profile is Profile.Response_Profile;

    Error : exception renames Profile.Error;
    -- only the single exception Error is raised at the current time;
    procedure Resolve (Name_Of : Name := Library.Selected_Text;
                       Target_Name : Name := "";
                       Objects_Only : Boolean := True;
                       Response : Response_Profile := Profile.Get);
    -- Print the Full name for Name_Of;

    procedure Control_Point (Levels : Positive := 1;
                             Response : Response_Profile := Profile.Get);
    -- Set default context to the parent control point.

    procedure Context (To_Be : Context_Name := "$";
                       Response : Response_Profile := Profile.Get);
    -- Set the default context to To_Be.  When To_Be is the default context,
    -- only printing takes place.
    procedure Copy (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Copy Existing version resulting in version with New_Name.
    --
    -- New_Name designates an object that will exist after the copy has
    -- completed.  For Ada objects, changing the simple name will require
    -- user intervention before installation.
    --
    -- New_Name is interpreted in the current context or specified full
    -- context and must be unique.
    --
    -- The object designated by New_Name will be the same class as Existing.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Initial implementation can be expected to resist copying to/from
    -- objects representing devices.
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Recursive applies to objects that contain other objects and indicates
    -- that these contained objects should be copied.
    --
    -- If Copy_Links is true, then link packs for any worlds copied are
    -- duplicated, and any link which pointed to the source for a copy is
    -- altered to point to the destination.  If Copy_Links is false, any
    -- copied worlds will have empty link packs.
    --
    -- If a control point and its switch file are copied, then the copied
    -- unit will point to the copy of the switch file.  If the switch file
    -- is not copied, then the unit and its original will reference the
    -- same switch file.
    --
    -- Ada units are copied as source.
    --

    procedure Move (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Equivalent to Copy (Existing, ...); Delete (Existing);
    procedure Copy_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Copy Existing version(s) into New_Context
    --
    -- New_Context designates a context that will contain a copy of Existing
    -- after the copy has completed.  The new object(s) will have the same
    -- simple names as Existing and reside in New_Context.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Wildcards and recursive, if used, specify a series of copy operations.
    -- These operations are carried out in directory traversal order.  Each
    -- individual copy operation is carried out under its own action, so
    -- (with the appropriate parameters) it is possible for some objects to
    -- be copied and not others.

    procedure Move_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Equivalent to Copy_Into (Existing, ...); Delete (Existing);
    subtype Volume is Natural range 0 .. 31;
    Nil : constant Volume := Volume'First;

    type Kind is (World, Directory, Subpackage);

    procedure Create (Name : Library.Name;
                      Before : Simple_Name := "";
                      Control_Point : Kind := Library.Directory;
                      Vol : Volume := Library.Nil;
                      Response : Response_Profile := Profile.Get);
    -- Create a package of the specified type.  The Nil volume represents
    -- the 'best' volume.  Vol is ignored for Subpackages, which are not
    -- control points, and must be on the same volume as their parent.

    procedure Rename (Existing : Name;
                      New_Name : Simple_Name;
                      Response : Response_Profile := Profile.Get);
    -- Change the name of an existing library unit or managed object.
    -- References to library units are not changed -- only the actual
    -- name of the unit.  Various other restrictions apply.

    procedure Delete (Existing : Name := Library.Current_Selection;
                      Response : Response_Profile := Profile.Get);
    -- Delete an Existing version or versions.  Interpreted in current context.
    --
    -- For policies that support multiple versions, results will be reversible
    -- with Undelete, otherwise equivalent to Destroy.

    procedure Destroy (Existing : Name := Library.Current_Selection;
                       Response : Response_Profile := Profile.Get);
    -- Destroy an Existing version or versions and associated declaration.
    -- Interpreted in the current context.

    procedure Undelete (Existing : Name;
                        Response : Response_Profile := Profile.Get);
    -- Undelete an Existing version.  Same usages as Delete.
    --
    -- Only applicable to policies that support multiple versions.
    Default_Keep_Versions : constant := -1;
    -- Keep the default number of deleted versions.

    procedure Expunge (Existing : Name := Library.Current_Image;
                       Keep_Versions : Integer := 0;
                       Recursive : Boolean := True;
                       Control_Points : Boolean := False;
                       Response : Response_Profile := Profile.Get);
    -- Make deletions permanent.
    -- Recursive causes subobjects to be expunged.
    -- Control_Points causes recursive expunge to continue past control
    -- point boundaries.
    -- Keep_Versions deleted versions will be retained.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Set_Retention_Count
                 (Existing : Name := Library.Current_Image;
                  Keep_Versions : Integer := Library.Default_Keep_Versions;
                  Recursive : Boolean := True;
                  Control_Points : Boolean := False;
                  Response : Response_Profile := Profile.Get);
    -- Set the default number of deleted versions of an object which
    -- are retained.  Default is the same as the object's parent.
    -- Recursive causes subobjects to be touched.
    -- Control_Points causes recursion to continue past control
    -- point boundaries.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Freeze (Existing : Name := Library.Current_Image;
                      Recursive : Boolean := True;
                      Control_Points : Boolean := True;
                      Response : Response_Profile := Profile.Get);
    -- Prevent further changes to an object.
    -- Recursive causes subobjects to be frozen.
    -- Control_Points causes recursive freeze to continue past control
    -- point boundaries.

    procedure Unfreeze (Existing : Name := Library.Current_Image;
                        Recursive : Boolean := True;
                        Control_Points : Boolean := True;
                        Response : Response_Profile := Profile.Get);
    -- Permit changes to an object.
    -- Recursive causes subobjects to be unfrozen.
    -- Control_Points causes recursive unfreeze to continue past control
    -- point boundaries.


    procedure Default (Existing : Name;
                       Response : Response_Profile := Profile.Get);
    -- Set the default Version for the existing object and print the result as
    -- a message.  When Version = Default_Version, only printing results.
    --
    -- Only applicable to policies that support multiple versions.
    type Field is
       (Object,             -- Ada name.
        Version,            -- Version name.
        Class,              -- Directory class name.
        Updater,            -- User to last update object.
        Update_Time,        -- Time of last update.
        Creator,            -- User who created object.
        Create_Time,        -- Time of creation.
        Reader,             -- User to last read object.
        Read_Time,          -- Time of last read.
        Size,               -- Current size of object.
        Status,             -- Source, Installed, Coded, Elaborated, etc.
        Frozen,             -- Is this object frozen.
        Retention,          -- Max. number of deleted versions retained.
        Declaration  -- Ada declaration of object.
                     -- Sorted by declaration => declaration order
        );

    type Fields is array (Field) of Boolean;
    Verbose_Format : constant Fields := Fields'(Object .. Update_Time => True,
                                                Size .. Retention => True,
                                                others => False);
    Ada_Format : constant Fields :=
       Fields'(Status => True, Declaration => True, others => False);
    All_Fields : constant Fields := Fields'(others => True);
    Terse_Format : constant Fields := Fields'(Object => True, others => False);

    procedure List (Pattern : Name := "@";
                    Displaying : Fields := Library.Terse_Format;
                    Sorted_By : Field := Library.Object;
                    Descending : Boolean := False;
                    Response : Response_Profile := Profile.Get);

    procedure Verbose_List (Pattern : Name := "{@'V(ALL)}";
                            Displaying : Fields := Library.Verbose_Format;
                            Sorted_By : Field := Library.Object;
                            Descending : Boolean := False;
                            Response : Response_Profile := Profile.Get)
        renames List;

    procedure File_List (Pattern : Name := "$@'C(FILE)";
                         Displaying : Fields := Library.Verbose_Format;
                         Sorted_By : Field := Library.Object;
                         Descending : Boolean := False;
                         Response : Response_Profile := Profile.Get)
        renames List;

    procedure Ada_List (Pattern : Name := "@'C(ADA)";
                        Displaying : Fields := Library.Ada_Format;
                        Sorted_By : Field := Library.Declaration;
                        Descending : Boolean := False;
                        Response : Response_Profile := Profile.Get)
        renames List;

    procedure Space (For_Object : Name := "@";
                     Recursive : Boolean := True;
                     Each_Object : Boolean := False;
                     Each_Version : Boolean := False;
                     Space_Types : Boolean := True;
                     Control_Points : Boolean := False;
                     Response : Response_Profile := Profile.Get);

    -- Show the space utilization (in pages) For_Object, including Volume.
    -- Recursive causes sub-objects to be included.
    -- Each_Version lists each version, including recursive ones.
    -- Space_Types breaks the space for ada objects down into categories,
    -- including the object itself, code segment, attribute spaces, list files.
    -- Control_Points causes recursive space calculations to cross control
    -- point boundaries.
    -- Performs appropriate totalling.

    pragma Read_Only;
    pragma Subsystem (Command);
    pragma Module_Name (4, 3921);

    procedure Set_Subclass (Existing : Name := Library.Current_Selection;
                            To_Subclass : String := "";
                            Response : Response_Profile := Profile.Get);
    -- Set the subclass of an object.  A null string for To_Subclass requests
    -- the system to set the subclass to its 'best guess'.



    -- Quiet forms which correspond to those in Library_Object_Editor.

    procedure Create_World (Name : String; Volume : Natural := 0);
    procedure Create_Directory (Name : String);
    procedure Create_Unit (Name : String := "");

end Test_Input2;package Unit is

    subtype Unit_Name is String;

    type Statistics is private;

    function Analyze (The_Unit : Unit_Name) return Statistics;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name;

    function Number_Of_Lines (The_Unit : Statistics) return Natural;
    function Number_Of_Comments (The_Unit : Statistics) return Natural;

private
    type Statistics is
        record
            Name : String (1 .. 100);
            Lines : Natural := 0;
            Comments : Natural := 0;
        end record;
end Unit;with Text_Io, Line;
package body Unit is


    function Analyze (The_Unit : Unit_Name) return Statistics is separate;
    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name is
    begin
        return The_Unit.Name;
    end Name_Of_Unit;

    function Number_Of_Lines (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Lines;
    end Number_Of_Lines;


    function Number_Of_Comments (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Comments;
    end Number_Of_Comments;
end Unit;separate (Unit)
function Analyze (The_Unit : Unit_Name) return Statistics is
    The_Statistics : Statistics;
    Unit_Line : String (1 .. 100) := (others => ' ');
    File : Text_Io.File_Type;
    Last : Natural := 0;
    function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind) return Boolean
        renames Line."=";
begin
    Text_Io.Open (File, Text_Io.In_File, The_Unit);

    while not Text_Io.End_Of_File (File) loop
        begin
            Text_Io.Get_Line (File, Unit_Line, Last);

            case Line.Kind (Unit_Line) is
                when Line.Blank =>
                    null;
                when Line.Comment_Only =>
                    The_Statistics.Comments := The_Statistics.Comments + 1;
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                when Line.Other_Line =>
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                    if Line.Has_Comment (Unit_Line) then
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                    end if;

            end case;

            Unit_Line := (others => ' ');
        exception
            when Text_Io.End_Error =>
                Text_Io.Close (File);
        end;
    end loop;

    Text_Io.Close (File);
    Unit_Line (1 .. The_Unit'Last) := The_Unit;
    The_Statistics.Name := Unit_Line;
    return The_Statistics;
end Analyze;
procedure Elapsed_Time_Benchmark;with Io;  
with System_Utilities;
with Time_Utilities;
procedure Elapsed_Time_Benchmark is
    Start_Elapsed : Duration;
    Start_Cpu : Duration;

    Total_Elapsed : Duration;
    Total_Cpu : Duration;
begin
    Start_Elapsed := System_Utilities.Elapsed;
    Start_Elapsed := System_Utilities.Cpu;

    -- Ada code to be measured

    Total_Cpu := Start_Cpu - System_Utilities.Cpu;
    Total_Elapsed := Start_Elapsed - System_Utilities.Elapsed;

    Io.Put_Line (Time_Utilities.Image (Total_Elapsed));
    Io.Put_Line (Time_Utilities.Image (Total_Cpu));

end Elapsed_Time_Benchmark;generic
    with procedure Test_Procedure;
procedure Generic_Benchmark;with Io;
with Table_Formatter;
with System_Utilities;
with Time_Utilities;
procedure Generic_Benchmark is
    Start_Elapsed : Duration;
    Start_Cpu : Duration;

    Total_Elapsed : Duration;
    Total_Cpu : Duration;

    package Data_Table is new Table_Formatter (2);
begin
    Data_Table.Header ("ELAPSED");
    Data_Table.Header ("CPU");

    Start_Elapsed := System_Utilities.Elapsed;
    Start_Elapsed := System_Utilities.Cpu;
    Test_Procedure;
    Total_Cpu := Start_Cpu - System_Utilities.Cpu;
    Total_Elapsed := Start_Elapsed - System_Utilities.Elapsed;

    Data_Table.Item (Time_Utilities.Image (Total_Elapsed));
    Data_Table.Item (Time_Utilities.Image (Total_Cpu));
    Data_Table.Display (Io.Standard_Output);

end Generic_Benchmark;package Line is
    type Line_Kind is
       (Blank,                  -- all blank line
        Comment_Only,           -- first non_blank characters are "--"
        Other_Line);        -- non-blank and non-comment-only

    function Kind (The_Line : String) return Line_Kind;
    function Has_Comment (The_Line : String) return Boolean;

end Line;package body Line is

    function Locate_Comment (The_String : String) return Natural is
    begin
        for I in The_String'First .. The_String'Last - 1 loop
            if The_String (I .. I + 1) = "--" then
                return I;
            end if;
        end loop;
        return 0;
    end Locate_Comment;


    function Kind (The_Line : String) return Line_Kind is separate;

    function Has_Comment (The_Line : String) return Boolean is
        Clean_Line : constant String := Strip_Blanks (The_Line);
        Comment_Location : constant Natural := Locate_Comment (Clean_Line);
    begin
        if Comment_Location = 0 then
            return False;
        else
            return True;
        end if;

    end Has_Comment;

end Line;separate (Line)
function Kind (The_Line : String) return Line_Kind is
    Clean_Line : constant String := Strip_Blanks (The_Line);
    Comment_Location : constant Natural := Locate_Comment (Clean_Line);
begin
    [statement]
end Kind;with Report;
procedure Program_Profile (The_System : String;
                           Output_Destination : Report.Destination := "");with Report, System;
procedure Program_Profile (The_System : String;
                           Output_Destination : Report.Destination := "") is
begin
    Report.Display (System.Analyze (The_System), Output_Destination);
end Program_Profile;with System;
package Report is
    subtype Destination is String;
    procedure Display (The_Unit : System.Statistics;
                       The_Destination : Destination);
end Report;with System, Text_Io;
package body Report is

    package Statistics_Io is new Text_Io.Integer_Io (Natural);

    procedure Display (The_Unit : System.Statistics;
                       The_Destination : Report.Destination) is
        Stats_File : Text_Io.File_Type;
    begin
        if The_Destination /= "" then
            begin
                Text_Io.Create (File => Report.Display.Stats_File,
                                Mode => Text_Io.Out_File,
                                Name => Report.Display.The_Destination,
                                Form => "");
            exception
                when Text_Io.Name_Error =>
                    begin
                        Text_Io.Open (File => Report.Display.Stats_File,
                                      Mode => Text_Io.Out_File,
                                      Name => Report.Display.The_Destination,
                                      Form => "");
                    exception
                        when Text_Io.Name_Error =>
                            Text_Io.Put_Line ("Invalid output file");
                            return;
                    end;
            end;
            Text_Io.Set_Output (Report.Display.Stats_File);
        end if;

        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("  Statistics for the unit:   ");
        Text_Io.Put_Line (System.Name_Of_Unit (The_Unit));
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put_Line ("| Total Lines |  Comments   |");
        Text_Io.Put_Line ("-----------------------------");
        Text_Io.Put ("| ");
        Statistics_Io.Put (System.Number_Of_Lines (The_Unit), 10);
        Text_Io.Put ("  | ");
        Statistics_Io.Put (System.Number_Of_Comments (The_Unit), 10);
        Text_Io.Put_Line ("  |");
        Text_Io.Put_Line ("-----------------------------");

        if The_Destination /= "" then
            Text_Io.Close (Report.Display.Stats_File);
            Text_Io.Set_Output (Text_Io.Standard_Output);
        end if;

    end Display;
end Report;package System is

    subtype Unit_Name is String;

    type Statistics is private;

    function Analyze (The_Unit : Unit_Name) return Statistics;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name;

    function Number_Of_Lines (The_Unit : Statistics) return Natural;
    function Number_Of_Comments (The_Unit : Statistics) return Natural;

private
    type Statistics is new Boolean;
end System;with Text_Io, Line;
package body System is


    function Analyze (The_Unit : Unit_Name) return Statistics is
        The_Statistics : Statistics;
        Unit_Line : String (1 .. 100) := (others => ' ');
        File : Text_Io.File_Type;
        Last : Natural := 0;
        function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind)
                     return Boolean renames Line."=";
    begin
        Text_Io.Open (File, Text_Io.In_File, The_Unit);

        while not Text_Io.End_Of_File (File) loop
            begin
                Text_Io.Get_Line (File, Unit_Line, Last);

                case Line.Kind (Unit_Line) is
                    when Line.Blank =>
                        null;
                    when Line.Comment_Only =>
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                        The_Statistics.Lines := The_Statistics.Lines + 1;

                    when Line.Other_Line =>
                        The_Statistics.Lines := The_Statistics.Lines + 1;

                        if Line.Has_Comment (Unit_Line) then
                            The_Statistics.Comments :=
                               The_Statistics.Comments + 1;
                        end if;

                end case;

                Unit_Line := (others => ' ');
            exception
                when Text_Io.End_Error =>
                    Text_Io.Close (File);
            end;
        end loop;

        Text_Io.Close (File);
        Unit_Line (1 .. The_Unit'Last) := The_Unit;
        The_Statistics.Name := Unit_Line;
        return The_Statistics;
    end Analyze;

    function Name_Of_Unit (The_Unit : Statistics) return Unit_Name is
    begin
        return The_Unit.Name;
    end Name_Of_Unit;

    function Number_Of_Lines (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Lines;
    end Number_Of_Lines;


    function Number_Of_Comments (The_Unit : Statistics) return Natural is
    begin
        return The_Unit.Comments;
    end Number_Of_Comments;
end System;with Line, Unit, Text_Io;
use Unit;
function Test_Input1 (The_Unit : Unit_Name) return Statistics is
    The_Statistics : Statistics; -- foo
    Unit_Line : String (1 .. 100);
    File : Text_Io.File_Type;
    function "=" (Left : Line.Line_Kind; Right : Line.Line_Kind) return Boolean
        renames Line."=";
begin
    Text_Io.Open (File, Text_Io.In_File, The_Unit);
    -- foo

    while not Text_Io.End_Of_File (File) loop
        begin
            -- foo
            Text_Io.Get (File, Unit_Line);
            -- foo

            case Line.Kind (Unit_Line) is
                when Line.Blank =>
                    null;
                when Line.Comment_Only =>
                    The_Statistics.Comments := The_Statistics.Comments + 1;
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                when Line.Other_Line =>
                    The_Statistics.Lines := The_Statistics.Lines + 1;

                    if Line.Has_Comment (Unit_Line) then
                        The_Statistics.Comments := The_Statistics.Comments + 1;
                    end if;

            end case;
        exception
            when Io_Exceptions.End_Error =>
                Text_Io.Close (File);
        end;
    end loop;

    Text_Io.Close (File);
    The_Statistics.Name := Name_String.Value (The_Unit);
    return The_Statistics;
end Test_Input1;with Profile;

package Test_Input2 is

    subtype Name is String;
    -- Lexically and syntactically an Ada Name.

    subtype Simple_Name is String;
    -- A simple Ada name.  Basically, an identifier or operator.

    subtype Context_Name is Name;
    -- Treatment of context.  There is a current context that constitutes the
    -- assumed naming context.  Names are resolved in this context.

    -- The following characters modify the context:
    -- !   specifies the Universe context
    --  $   specifies the enclosing library for the context
    --  $$  specifies the enclosing world for the context.
    -- ^   specifies the parent of the current context
    --  @   matches any single name segment (or part thereof)
    -- ?   matches 0 or more name segments

    -- A null string will (usually) attempt to get the designated object
    -- from the current selection/image.
    Current_Selection : constant String := "";
    Current_Image : constant String := "";
    Selected_Text : constant String := "";

    subtype Response_Profile is Profile.Response_Profile;

    Error : exception renames Profile.Error;
    -- only the single exception Error is raised at the current time;
    procedure Resolve (Name_Of : Name := Library.Selected_Text;
                       Target_Name : Name := "";
                       Objects_Only : Boolean := True;
                       Response : Response_Profile := Profile.Get);
    -- Print the Full name for Name_Of;

    procedure Control_Point (Levels : Positive := 1;
                             Response : Response_Profile := Profile.Get);
    -- Set default context to the parent control point.

    procedure Context (To_Be : Context_Name := "$";
                       Response : Response_Profile := Profile.Get);
    -- Set the default context to To_Be.  When To_Be is the default context,
    -- only printing takes place.
    procedure Copy (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Copy Existing version resulting in version with New_Name.
    --
    -- New_Name designates an object that will exist after the copy has
    -- completed.  For Ada objects, changing the simple name will require
    -- user intervention before installation.
    --
    -- New_Name is interpreted in the current context or specified full
    -- context and must be unique.
    --
    -- The object designated by New_Name will be the same class as Existing.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Initial implementation can be expected to resist copying to/from
    -- objects representing devices.
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Recursive applies to objects that contain other objects and indicates
    -- that these contained objects should be copied.
    --
    -- If Copy_Links is true, then link packs for any worlds copied are
    -- duplicated, and any link which pointed to the source for a copy is
    -- altered to point to the destination.  If Copy_Links is false, any
    -- copied worlds will have empty link packs.
    --
    -- If a control point and its switch file are copied, then the copied
    -- unit will point to the copy of the switch file.  If the switch file
    -- is not copied, then the unit and its original will reference the
    -- same switch file.
    --
    -- Ada units are copied as source.
    --

    procedure Move (Existing : Name;
                    New_Name : Name;
                    Before : Simple_Name := "";
                    Recursive : Boolean := True;
                    Response : Response_Profile := Profile.Get;
                    Copy_Links : Boolean := True);
    -- Equivalent to Copy (Existing, ...); Delete (Existing);
    procedure Copy_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Copy Existing version(s) into New_Context
    --
    -- New_Context designates a context that will contain a copy of Existing
    -- after the copy has completed.  The new object(s) will have the same
    -- simple names as Existing and reside in New_Context.
    --
    -- Before specifies the unit before which the declaration will be placed
    --
    -- Any situation that would require demoting unrelated declarations
    -- results in an error, suppressing the copy.
    --
    -- Wildcards and recursive, if used, specify a series of copy operations.
    -- These operations are carried out in directory traversal order.  Each
    -- individual copy operation is carried out under its own action, so
    -- (with the appropriate parameters) it is possible for some objects to
    -- be copied and not others.

    procedure Move_Into (Existing : Name := Library.Current_Selection;
                         New_Context : Context_Name := Library.Current_Image;
                         Before : Simple_Name := "";
                         Recursive : Boolean := True;
                         Response : Response_Profile := Profile.Get;
                         Copy_Links : Boolean := True);
    -- Equivalent to Copy_Into (Existing, ...); Delete (Existing);
    subtype Volume is Natural range 0 .. 31;
    Nil : constant Volume := Volume'First;

    type Kind is (World, Directory, Subpackage);

    procedure Create (Name : Library.Name;
                      Before : Simple_Name := "";
                      Control_Point : Kind := Library.Directory;
                      Vol : Volume := Library.Nil;
                      Response : Response_Profile := Profile.Get);
    -- Create a package of the specified type.  The Nil volume represents
    -- the 'best' volume.  Vol is ignored for Subpackages, which are not
    -- control points, and must be on the same volume as their parent.

    procedure Rename (Existing : Name;
                      New_Name : Simple_Name;
                      Response : Response_Profile := Profile.Get);
    -- Change the name of an existing library unit or managed object.
    -- References to library units are not changed -- only the actual
    -- name of the unit.  Various other restrictions apply.

    procedure Delete (Existing : Name := Library.Current_Selection;
                      Response : Response_Profile := Profile.Get);
    -- Delete an Existing version or versions.  Interpreted in current context.
    --
    -- For policies that support multiple versions, results will be reversible
    -- with Undelete, otherwise equivalent to Destroy.

    procedure Destroy (Existing : Name := Library.Current_Selection;
                       Response : Response_Profile := Profile.Get);
    -- Destroy an Existing version or versions and associated declaration.
    -- Interpreted in the current context.

    procedure Undelete (Existing : Name;
                        Response : Response_Profile := Profile.Get);
    -- Undelete an Existing version.  Same usages as Delete.
    --
    -- Only applicable to policies that support multiple versions.
    Default_Keep_Versions : constant := -1;
    -- Keep the default number of deleted versions.

    procedure Expunge (Existing : Name := Library.Current_Image;
                       Keep_Versions : Integer := 0;
                       Recursive : Boolean := True;
                       Control_Points : Boolean := False;
                       Response : Response_Profile := Profile.Get);
    -- Make deletions permanent.
    -- Recursive causes subobjects to be expunged.
    -- Control_Points causes recursive expunge to continue past control
    -- point boundaries.
    -- Keep_Versions deleted versions will be retained.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Set_Retention_Count
                 (Existing : Name := Library.Current_Image;
                  Keep_Versions : Integer := Library.Default_Keep_Versions;
                  Recursive : Boolean := True;
                  Control_Points : Boolean := False;
                  Response : Response_Profile := Profile.Get);
    -- Set the default number of deleted versions of an object which
    -- are retained.  Default is the same as the object's parent.
    -- Recursive causes subobjects to be touched.
    -- Control_Points causes recursion to continue past control
    -- point boundaries.
    --
    -- Only applicable to policies that support multiple versions.


    procedure Freeze (Existing : Name := Library.Current_Image;
                      Recursive : Boolean := True;
                      Control_Points : Boolean := True;
                      Response : Response_Profile := Profile.Get);
    -- Prevent further changes to an object.
    -- Recursive causes subobjects to be frozen.
    -- Control_Points causes recursive freeze to continue past control
    -- point boundaries.

    procedure Unfreeze (Existing : Name := Library.Current_Image;
                        Recursive : Boolean := True;
                        Control_Points : Boolean := True;
                        Response : Response_Profile := Profile.Get);
    -- Permit changes to an object.
    -- Recursive causes subobjects to be unfrozen.
    -- Control_Points causes recursive unfreeze to continue past control
    -- point boundaries.


    procedure Default (Existing : Name;
                       Response : Response_Profile := Profile.Get);
    -- Set the default Version for the existing object and print the result as
    -- a message.  When Version = Default_Version, only printing results.
    --
    -- Only applicable to policies that support multiple versions.
    type Field is
       (Object,             -- Ada name.
        Version,            -- Version name.
        Class,              -- Directory class name.
        Updater,            -- User to last update object.
        Update_Time,        -- Time of last update.
        Creator,            -- User who created object.
        Create_Time,        -- Time of creation.
        Reader,             -- User to last read object.
        Read_Time,          -- Time of last read.
        Size,               -- Current size of object.
        Status,             -- Source, Installed, Coded, Elaborated, etc.
        Frozen,             -- Is this object frozen.
        Retention,          -- Max. number of deleted versions retained.
        Declaration  -- Ada declaration of object.
                     -- Sorted by declaration => declaration order
        );

    type Fields is array (Field) of Boolean;
    Verbose_Format : constant Fields := Fields'(Object .. Update_Time => True,
                                                Size .. Retention => True,
                                                others => False);
    Ada_Format : constant Fields :=
       Fields'(Status => True, Declaration => True, others => False);
    All_Fields : constant Fields := Fields'(others => True);
    Terse_Format : constant Fields := Fields'(Object => True, others => False);

    procedure List (Pattern : Name := "@";
                    Displaying : Fields := Library.Terse_Format;
                    Sorted_By : Field := Library.Object;
                    Descending : Boolean := False;
                    Response : Response_Profile := Profile.Get);

    procedure Verbose_List (Pattern : Name := "{@'V(ALL)}";
                            Displaying : Fields := Library.Verbose_Format;
                            Sorted_By : Field := Library.Object;
                            Descending : Boolean := False;
                            Response : Response_Profile := Profile.Get)
        renames List;

    procedure File_List (Pattern : Name := "$@'C(FILE)";
                         Displaying : Fields := Library.Verbose_Format;
                         Sorted_By : Field := Library.Object;
                         Descending : Boolean := False;
                         Response : Response_Profile := Profile.Get)
        renames List;

    procedure Ada_List (Pattern : Name := "@'C(ADA)";
                        Displaying : Fields := Library.Ada_Format;
                        Sorted_By : Field := Library.Declaration;
                        Descending : Boolean := False;
                        Response : Response_Profile := Profile.Get)
        renames List;

    procedure Space (For_Object : Name := "@";
                     Recursive : Boolean := True;
                     Each_Object : Boolean := False;
                     Each_Version : Boolean := False;
                     Space_Types : Boolean := True;
                     Control_Points : Boolean := False;
                     Response : Response_Profile := Profile.Get);

    -- Show the space utilization (in pages) For_Object, including Volume.
    -- Recursive causes sub-objects to be included.
    -- Each_Version lists each version, including recursive ones.
    -- Space_Types breaks the space for ada objects down into categories,
    -- including the object itself, code segment, attribute spaces, list files.
    -- Control_Points causes recursive space calculations to cross control
    -- point boundaries.
    -- Performs appropriate totalling.

    pragma Read_Only;
    pragma Subsystem (Command);
    pragma Module_Name (4, 3921);

    procedure Set_Subclass (Existing : Name := Library.Current_Selection;
                            To_Subclass : String := "";
                            Response : Response_Profile := Profile.Get);
    -- Set the subclass of an object.  A null string for To_Subclass requests
    -- the system to set the subclass to its 'best guess'.



    -- Quiet forms which correspond to those in Library_Object_Editor.

    procedure Create_World (Name : String; Volume : Natural := 0);
    procedure Create_Directory (Name : String);
    procedure Create_Unit (Name : String := "");

end Test_Input2;MACRO  4:
    EXECUTE "!COMMANDS".Editor.Macro.Start;
    EXECUTE "!COMMANDS".Editor.Line.End_Of (Offset => 0);
    EXECUTE "!COMMANDS".Editor.Line.Beginning_Of (Offset => 0);
    EXECUTE "!COMMANDS".Editor.Line.Beginning_Of (Offset => 0);
    EXECUTE '-'
    EXECUTE '-'
    EXECUTE ' '
    EXECUTE 'M'
    EXECUTE 'T'
    EXECUTE 'D'
    EXECUTE ' '
    EXECUTE ' '
    EXECUTE "!COMMANDS".Editor.Cursor.Down (Repeat => 1);
    EXECUTE "!COMMANDS".Editor.Noop;

KEY BINDINGS

MACRO  4 => Esc_S_F5[S_#_Switches, ~s_2_switches]
@'v(2)procedure Login;with Common;
with Editor;
with String_Utilities;
with System_Utilities;
with What;

procedure Login is

    function Is_Session (Name : String) return Boolean is
    begin
        return String_Utilities.Equal
                  (Name, System_Utilities.Session_Name, Ignore_Case => True);
    end Is_Session;

begin

    if Is_Session ("S_1") then

        What.Home_Library;
        Common.Create_Command;
        Common.Definition ("Experiment");

        for I in 1 .. 2 loop
            Editor.Window.Previous;
        end loop;

    else
        null;

    end if;


end Login;MACRO  4:
    EXECUTE "!COMMANDS".Editor.Macro.Start;
    EXECUTE "!COMMANDS".Editor.Line.End_Of (Offset => 0);
    EXECUTE "!COMMANDS".Editor.Line.Beginning_Of (Offset => 0);
    EXECUTE "!COMMANDS".Editor.Line.Beginning_Of (Offset => 0);
    EXECUTE '-'
    EXECUTE '-'
    EXECUTE ' '
    EXECUTE 'M'
    EXECUTE 'T'
    EXECUTE 'D'
    EXECUTE ' '
    EXECUTE ' '
    EXECUTE "!COMMANDS".Editor.Cursor.Down (Repeat => 1);
    EXECUTE "!COMMANDS".Editor.Noop;

KEY BINDINGS

MACRO  4 => CM_F5*** 461 ***
!USERS.ADVANCED_TOPICS_MASTER
!USERS.ADVANCED_TOPICS_MASTER
U||| 8/24/88 10:48:40|WORLD|||
ANETWORK_PUBLIC=>RCOD|DNETWORK_PUBLIC=>RW|TR1000|
 548201170
!USERS.ADVANCED_TOPICS_MASTER.ACL_WORLD
W|||11/13/87 09:25:09|WORLD|||
ANETWORK_PUBLIC=>R|DNETWORK_PUBLIC=>RW|TR1000|
!USERS.ADVANCED_TOPICS_MASTER.ACL_WORLD
Y

SEQUENTIAL_IO
!IO.SEQUENTIAL_IO'SPEC
DIRECT_IO
!IO.DIRECT_IO'SPEC
TEXT_IO
!IO.TEXT_IO'SPEC
CALENDAR
!LRM.CALENDAR'SPEC
UNCHECKED_CONVERSION
!LRM.UNCHECKED_CONVERSION'SPEC
UNCHECKED_DEALLOCATION
!LRM.UNCHECKED_DEALLOCATION'SPEC
IO_EXCEPTIONS
!IO.IO_EXCEPTIONS'SPEC
SYSTEM
!LRM.SYSTEM'SPEC


!USERS.ADVANCED_TOPICS_MASTER.DEBUGGING
W||| 6/15/88 18:08:17|WORLD|1||
ANETWORK_PUBLIC=>RCOD|DNETWORK_PUBLIC=>RW|TR1000|
!USERS.ADVANCED_TOPICS_MASTER.DEBUGGING
Y

BUFFER
!USERS.ADVANCED_TOPICS_MASTER.DEBUGGING.BUFFER'SPEC
DEBUG_TOOLS
!TOOLS.DEBUG_TOOLS'SPEC
TEXT_IO
!IO.TEXT_IO'SPEC
PRODUCER_CONSUMER
!USERS.ADVANCED_TOPICS_MASTER.DEBUGGING.PRODUCER_CONSUMER'SPEC


!USERS.ADVANCED_TOPICS_MASTER.DEBUGGING.BUFFER'SPEC
V|-762|4| 5/31/88 14:25:29|GENERIC_PACKAGE|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.DEBUGGING.BUFFER'BODY
B762|-1869|4| 5/31/88 14:50:03|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.DEBUGGING.PRODUCER_CONSUMER'SPEC
V2631|-28|4|11/11/87 19:23:36|PROCEDURE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.DEBUGGING.PRODUCER_CONSUMER'BODY
B2659|-2624|4| 5/31/88 16:58:09|PROCEDURE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT
W||| 5/29/88 17:02:04|WORLD|1||
ANETWORK_PUBLIC=>RCOD|DNETWORK_PUBLIC=>RW|TR1000|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT
Y

LINE
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.LINE'SPEC
STRING_UTILITIES
!TOOLS.STRING_UTILITIES'SPEC
TEXT_IO
!IO.TEXT_IO'SPEC
UNIT
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.UNIT'SPEC
LINE_COPY
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.LINE_COPY'SPEC
OVERLOADED_DECLARATIONS
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.OVERLOADED_DECLARATIONS'SPEC
REPORT
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.REPORT'SPEC
PROGRAM_PROFILE
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.PROGRAM_PROFILE'SPEC


!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.LINE'SPEC
V5283|-349|4|11/11/87 19:23:37|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.LINE'BODY
B5632|-1400|4|11/11/87 19:23:37|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.LINE_COPY'SPEC
V7032|-359|4|11/11/87 19:23:37|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.LINE_COPY'BODY
B7391|-1410|4|11/11/87 19:23:37|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.OVERLOADED_DECLARATIONS'SPEC
V8801|-195|3| 5/29/88 17:10:30|PACKAGE_SPEC|1||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.PROGRAM_PROFILE'SPEC
V8996|-135|4|11/11/87 19:23:38|PROCEDURE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.PROGRAM_PROFILE'BODY
B9131|-238|4|11/11/87 19:23:38|PROCEDURE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.REPORT'SPEC
V9369|-181|4|11/11/87 19:23:38|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.REPORT'BODY
B9550|-1976|4|11/11/87 19:23:38|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.TEST_INPUT_1
F11526|-1369||11/11/87 19:23:38|TEXT|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.TEST_INPUT_2
F12895|-14353||11/11/87 19:23:39|TEXT|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.UNIT'SPEC
V27248|-545|4|11/11/87 19:23:39|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.EXPERIMENT.UNIT'BODY
B27793|-2042|4|11/11/87 19:23:39|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE
W||| 8/27/87 16:29:24|WORLD|1||
ANETWORK_PUBLIC=>RCOD|DNETWORK_PUBLIC=>RW|TR1000|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE
Y

DIANA_OBJECT_EDITOR
!TOOLS.DIANA_OBJECT_EDITOR'SPEC
PIPE
!IO.PIPE'SPEC
TAPE_TOOLS
!TOOLS.TAPE_TOOLS'SPEC
SIMPLE_TEXT_IO
!IO.IO'SPEC
TABLE_FORMATTER
!TOOLS.TABLE_FORMATTER'SPEC
QUEUE
!COMMANDS.QUEUE'SPEC
SEQUENTIAL_IO
!IO.SEQUENTIAL_IO'SPEC
DEBUG
!COMMANDS.DEBUG'SPEC
SYSTEM_BACKUP
!COMMANDS.SYSTEM_BACKUP'SPEC
COMMAND
!COMMANDS.COMMAND'SPEC
TERMINAL
!COMMANDS.TERMINAL'SPEC
LINE
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.LINE'SPEC
IO
!IO.IO'SPEC
CONCURRENT_MAP_GENERIC
!TOOLS.CONCURRENT_MAP_GENERIC'SPEC
EDITOR
!COMMANDS.EDITOR'SPEC
DISK_DAEMON
!TOOLS.DISK_DAEMON'SPEC
TIME_UTILITY
!TOOLS.TIME_UTILITIES'SPEC
STRING_UTILITIES
!TOOLS.STRING_UTILITIES'SPEC
LOG
!COMMANDS.LOG'SPEC
LIBRARY
!COMMANDS.LIBRARY'SPEC
BOUNDED_STRING
!TOOLS.BOUNDED_STRING'SPEC
TEXT
!COMMANDS.TEXT'SPEC
POLYMORPHIC_SEQUENTIAL_IO
!IO.POLYMORPHIC_SEQUENTIAL_IO'SPEC
DIRECTORY_TOOLS
!TOOLS.DIRECTORY_TOOLS'SPEC
TIME_UTILITIES
!TOOLS.TIME_UTILITIES'SPEC
SIMPLE_STATUS
!TOOLS.SIMPLE_STATUS'SPEC
JOB
!COMMANDS.JOB'SPEC
ADA_OBJECT_EDITOR
!TOOLS.ADA_OBJECT_EDITOR'SPEC
PROGRAM
!COMMANDS.PROGRAM'SPEC
OPERATOR
!COMMANDS.OPERATOR'SPEC
ACCESS_LIST
!COMMANDS.ACCESS_LIST'SPEC
ADA
!COMMANDS.ADA'SPEC
ACCESS_LIST_TOOLS
!TOOLS.ACCESS_LIST_TOOLS'SPEC
SWITCHES
!COMMANDS.SWITCHES'SPEC
QUEUE_GENERIC
!TOOLS.QUEUE_GENERIC'SPEC
COMPILATION
!COMMANDS.COMPILATION'SPEC
SET_GENERIC
!TOOLS.SET_GENERIC'SPEC
HASH
!TOOLS.HASH'SPEC
DIANA_TREE
!COMMANDS.DIANA_TREE'SPEC
DEBUG_TOOLS
!TOOLS.DEBUG_TOOLS'SPEC
ACTION_UTILITIES
!COMMANDS.ACTION_UTILITIES'SPEC
TAPE_SPECIFIC
!IO.TAPE_SPECIFIC'SPEC
TAPE
!COMMANDS.TAPE'SPEC
SYSTEM_UTILITIES
!TOOLS.SYSTEM_UTILITIES'SPEC
LINK_TOOLS
!TOOLS.LINK_TOOLS'SPEC
FILE_UTILITIES
!COMMANDS.FILE_UTILITIES'SPEC
DIRECT_IO
!IO.DIRECT_IO'SPEC
TEXT_IO
!IO.TEXT_IO'SPEC
UNBOUNDED_STRING
!TOOLS.UNBOUNDED_STRING'SPEC
LIBRARY_OBJECT_EDITOR
!TOOLS.LIBRARY_OBJECT_EDITOR'SPEC
CALENDAR
!LRM.CALENDAR'SPEC
UNIT
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.UNIT'SPEC
UNCHECKED_CONVERSION
!LRM.UNCHECKED_CONVERSION'SPEC
LIST_GENERIC
!TOOLS.LIST_GENERIC'SPEC
DAEMON
!COMMANDS.DAEMON'SPEC
MAP_GENERIC
!TOOLS.MAP_GENERIC'SPEC
DISK_SPACE
!COMMANDS.DISK_SPACE'SPEC
STACK_GENERIC
!TOOLS.STACK_GENERIC'SPEC
UNCHECKED_CONVERSIONS
!TOOLS.UNCHECKED_CONVERSIONS'SPEC
REPORT
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.REPORT'SPEC
SEARCH_LIST
!COMMANDS.SEARCH_LIST'SPEC
SCRIPT
!TOOLS.SCRIPT'SPEC
PROFILE
!TOOLS.PROFILE'SPEC
MESSAGE
!COMMANDS.MESSAGE'SPEC
ACTIVITY
!COMMANDS.ACTIVITY'SPEC
WHAT
!COMMANDS.WHAT'SPEC
PROGRAM_PROFILE
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.PROGRAM_PROFILE'SPEC
DEVICE_INDEPENDENT_IO
!IO.DEVICE_INDEPENDENT_IO'SPEC
IO_EXCEPTIONS
!IO.IO_EXCEPTIONS'SPEC
WINDOW_IO
!IO.WINDOW_IO'SPEC
STRING_TABLE
!TOOLS.STRING_TABLE'SPEC
STRING_MAP_GENERIC
!TOOLS.STRING_MAP_GENERIC'SPEC
SCHEDULER
!COMMANDS.SCHEDULER'SPEC
OBJECT_EDITOR
!TOOLS.OBJECT_EDITOR'SPEC
LINKS
!COMMANDS.LINKS'SPEC
COMMON
!COMMANDS.COMMON'SPEC


!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.LINE'SPEC
V29835|-349|4| 6/16/88 11:28:37|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.LINE'BODY
B30184|-1400|4|11/11/87 19:23:39|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.PROGRAM_PROFILE'SPEC
V31584|-135|4|11/11/87 19:23:40|PROCEDURE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.PROGRAM_PROFILE'BODY
B31719|-238|4| 6/16/88 08:12:23|PROCEDURE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.REPORT'SPEC
V31957|-181|4|11/11/87 19:23:40|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.REPORT'BODY
B32138|-1976|4|11/11/87 19:23:40|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.TEST_INPUT_1
F34114|-1369||11/11/87 19:23:41|TEXT|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.TEST_INPUT_2
F35483|-14353||11/11/87 19:23:41|TEXT|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.UNIT'SPEC
V49836|-618|4| 6/16/88 08:12:17|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INCREMENTAL_EXERCISE.UNIT'BODY
B50454|-2176|4| 6/16/88 08:12:30|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.MENU_EXERCISES
W||| 6/17/88 09:46:21|WORLD|||
ANETWORK_PUBLIC=>RCOD|DNETWORK_PUBLIC=>RW|TR1000|
!USERS.ADVANCED_TOPICS_MASTER.MENU_EXERCISES
Y

TRANSPORT_NAME
!TOOLS.NETWORKING.TRANSPORT_NAME'SPEC
TELNET
!COMMANDS.TELNET'SPEC
INTERCHANGE
!TOOLS.NETWORKING.INTERCHANGE'SPEC
FTP_DEFS
!TOOLS.NETWORKING.FTP_DEFS'SPEC
DIANA_OBJECT_EDITOR
!TOOLS.DIANA_OBJECT_EDITOR'SPEC
TRANSFER_GENERIC
!TOOLS.NETWORKING.TRANSFER_GENERIC'SPEC
RPC_PRODUCT
!TOOLS.NETWORKING.RPC_PRODUCT'SPEC
PIPE
!IO.PIPE'SPEC
BYTE_STRING_IO
!TOOLS.NETWORKING.BYTE_STRING_IO'SPEC
BYTE_DEFS
!TOOLS.NETWORKING.BYTE_DEFS'SPEC
ARCHIVE
!COMMANDS.ARCHIVE'SPEC
TAPE_TOOLS
!TOOLS.TAPE_TOOLS'SPEC
TABLE_FORMATTER
!TOOLS.TABLE_FORMATTER'SPEC
QUEUE
!COMMANDS.QUEUE'SPEC
SEQUENTIAL_IO
!IO.SEQUENTIAL_IO'SPEC
DEBUG
!COMMANDS.DEBUG'SPEC
SYSTEM_BACKUP
!COMMANDS.SYSTEM_BACKUP'SPEC
COMMAND
!COMMANDS.COMMAND'SPEC
TERMINAL
!COMMANDS.TERMINAL'SPEC
CONCURRENT_MAP_GENERIC
!TOOLS.CONCURRENT_MAP_GENERIC'SPEC
EDITOR
!COMMANDS.EDITOR'SPEC
DISK_DAEMON
!TOOLS.DISK_DAEMON'SPEC
CMVC_MAINTENANCE
!COMMANDS.CMVC_MAINTENANCE'SPEC
OBJECT_SET
!IO.OBJECT_SET'SPEC
MESSAGE_IO
!USERS.ADVANCED_TOPICS_MASTER.MENU_EXERCISES.MESSAGE_IO'SPEC
TRANSPORT
!TOOLS.NETWORKING.TRANSPORT'SPEC
TERMINAL_SPECIFIC
!IO.TERMINAL_SPECIFIC'SPEC
STRING_UTILITIES
!TOOLS.STRING_UTILITIES'SPEC
LOG
!COMMANDS.LOG'SPEC
RANDOM
!TOOLS.RANDOM'SPEC
LIBRARY
!COMMANDS.LIBRARY'SPEC
BOUNDED_STRING
!TOOLS.BOUNDED_STRING'SPEC
TEXT
!COMMANDS.TEXT'SPEC
TCP_IP_DUMP
!TOOLS.NETWORKING.TCP_IP_DUMP'SPEC
POLYMORPHIC_SEQUENTIAL_IO
!IO.POLYMORPHIC_SEQUENTIAL_IO'SPEC
DIRECTORY_TOOLS
!TOOLS.DIRECTORY_TOOLS'SPEC
TRANSPORT_ROUTE
!COMMANDS.TRANSPORT_ROUTE'SPEC
TRANSPORT_DEFS
!TOOLS.NETWORKING.TRANSPORT_DEFS'SPEC
TIME_UTILITIES
!TOOLS.TIME_UTILITIES'SPEC
SIMPLE_STATUS
!TOOLS.SIMPLE_STATUS'SPEC
PROCESS
!USERS.ADVANCED_TOPICS_MASTER.MENU_EXERCISES.PROCESS'SPEC
JOB
!COMMANDS.JOB'SPEC
ADA_OBJECT_EDITOR
!TOOLS.ADA_OBJECT_EDITOR'SPEC
PROGRAM
!COMMANDS.PROGRAM'SPEC
OPERATOR
!COMMANDS.OPERATOR'SPEC
ACCESS_LIST
!COMMANDS.ACCESS_LIST'SPEC
POLYMORPHIC_IO
!IO.POLYMORPHIC_IO'SPEC
FTP_SERVER
!TOOLS.NETWORKING.FTP_SERVER'SPEC
ADA
!COMMANDS.ADA'SPEC
ACCESS_LIST_TOOLS
!TOOLS.ACCESS_LIST_TOOLS'SPEC
NETWORK
!COMMANDS.NETWORK'SPEC
TELNET_PROFILE
!TOOLS.NETWORKING.TELNET_PROFILE'SPEC
TABLE_SORT_GENERIC
!TOOLS.TABLE_SORT_GENERIC'SPEC
SWITCHES
!COMMANDS.SWITCHES'SPEC
DOCUMENT_BUILDER
!COMMANDS.DOCUMENT_BUILDER'SPEC
QUEUE_GENERIC
!TOOLS.QUEUE_GENERIC'SPEC
COMPILATION
!COMMANDS.COMPILATION'SPEC
TRANSPORT_STREAM
!TOOLS.NETWORKING.TRANSPORT_STREAM'SPEC
RPC_ACCESS_UTILITIES
!TOOLS.NETWORKING.RPC_ACCESS_UTILITIES'SPEC
SET_GENERIC
!TOOLS.SET_GENERIC'SPEC
HASH
!TOOLS.HASH'SPEC
DIANA_TREE
!COMMANDS.DIANA_TREE'SPEC
TCP_IP_BOOT
!TOOLS.NETWORKING.TCP_IP_BOOT'SPEC
HOST_ID_IO
!TOOLS.NETWORKING.HOST_ID_IO'SPEC
DEBUG_TOOLS
!TOOLS.DEBUG_TOOLS'SPEC
RPC_SERVER
!TOOLS.NETWORKING.RPC_SERVER'SPEC
RPC
!TOOLS.NETWORKING.RPC'SPEC
PARAMETER_PARSER
!TOOLS.PARAMETER_PARSER'SPEC
NETWORK_PRODUCT
!TOOLS.NETWORKING.NETWORK_PRODUCT'SPEC
ACTION_UTILITIES
!COMMANDS.ACTION_UTILITIES'SPEC
WORK_ORDER
!COMMANDS.WORK_ORDER'SPEC
TAPE_SPECIFIC
!IO.TAPE_SPECIFIC'SPEC
TAPE
!COMMANDS.TAPE'SPEC
SYSTEM_UTILITIES
!TOOLS.SYSTEM_UTILITIES'SPEC
LINK_TOOLS
!TOOLS.LINK_TOOLS'SPEC
FILE_UTILITIES
!COMMANDS.FILE_UTILITIES'SPEC
DIRECT_IO
!IO.DIRECT_IO'SPEC
ALLOWS_DEALLOCATION
!TOOLS.ALLOWS_DEALLOCATION'SPEC
TEXT_IO
!IO.TEXT_IO'SPEC
FTP
!COMMANDS.FTP'SPEC
ADA_TEXT
!TOOLS.ADA_TEXT'SPEC
UNBOUNDED_STRING
!TOOLS.UNBOUNDED_STRING'SPEC
TRANSPORT_INTERCHANGE
!TOOLS.NETWORKING.TRANSPORT_INTERCHANGE'SPEC
RPC_CLIENT
!TOOLS.NETWORKING.RPC_CLIENT'SPEC
LIBRARY_OBJECT_EDITOR
!TOOLS.LIBRARY_OBJECT_EDITOR'SPEC
FTP_NAME_MAP
!TOOLS.NETWORKING.FTP_NAME_MAP'SPEC
CALENDAR
!LRM.CALENDAR'SPEC
UNCHECKED_CONVERSION
!LRM.UNCHECKED_CONVERSION'SPEC
LIST_GENERIC
!TOOLS.LIST_GENERIC'SPEC
INTERCHANGE_DEFS
!TOOLS.NETWORKING.INTERCHANGE_DEFS'SPEC
DAEMON
!COMMANDS.DAEMON'SPEC
CMVC
!COMMANDS.CMVC'SPEC
FILE_TRANSFER
!TOOLS.NETWORKING.FILE_TRANSFER'SPEC
MAP_GENERIC
!TOOLS.MAP_GENERIC'SPEC
MAIL
!COMMANDS.MAIL'SPEC
MACHINE_CODE
!LRM.MACHINE_CODE'SPEC
DISK_SPACE
!COMMANDS.DISK_SPACE'SPEC
BIT_OPERATIONS
!TOOLS.BIT_OPERATIONS'SPEC
UNCHECKED_DEALLOCATION
!LRM.UNCHECKED_DEALLOCATION'SPEC
STACK_GENERIC
!TOOLS.STACK_GENERIC'SPEC
UNCHECKED_CONVERSIONS
!TOOLS.UNCHECKED_CONVERSIONS'SPEC
TRANSPORT_SERVER_JOB
!TOOLS.NETWORKING.TRANSPORT_SERVER_JOB'SPEC
MAIN
!USERS.ADVANCED_TOPICS_MASTER.MENU_EXERCISES.MAIN'SPEC
FTP_PRODUCT
!TOOLS.NETWORKING.FTP_PRODUCT'SPEC
SEARCH_LIST
!COMMANDS.SEARCH_LIST'SPEC
SCRIPT
!TOOLS.SCRIPT'SPEC
PROFILE
!TOOLS.PROFILE'SPEC
MESSAGE
!COMMANDS.MESSAGE'SPEC
ACTIVITY
!COMMANDS.ACTIVITY'SPEC
WHAT
!COMMANDS.WHAT'SPEC
DEVICE_INDEPENDENT_IO
!IO.DEVICE_INDEPENDENT_IO'SPEC
TELNET_PRODUCT
!TOOLS.NETWORKING.TELNET_PRODUCT'SPEC
IO_EXCEPTIONS
!IO.IO_EXCEPTIONS'SPEC
WINDOW_IO
!IO.WINDOW_IO'SPEC
TRANSPORT_SERVER
!TOOLS.NETWORKING.TRANSPORT_SERVER'SPEC
SYSTEM
!LRM.SYSTEM'SPEC
STRING_TABLE
!TOOLS.STRING_TABLE'SPEC
STRING_MAP_GENERIC
!TOOLS.STRING_MAP_GENERIC'SPEC
SCHEDULER
!COMMANDS.SCHEDULER'SPEC
OBJECT_EDITOR
!TOOLS.OBJECT_EDITOR'SPEC
LINKS
!COMMANDS.LINKS'SPEC
FTP_PROFILE
!TOOLS.NETWORKING.FTP_PROFILE'SPEC
COMMON
!COMMANDS.COMMON'SPEC


!USERS.ADVANCED_TOPICS_MASTER.MENU_EXERCISES.MAIN'SPEC
V52630|-15|3| 6/17/88 09:46:26|PROCEDURE_SPEC|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.MENU_EXERCISES.MAIN'BODY
B52645|-736|3| 6/17/88 14:23:31|PROCEDURE_BODY|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.MENU_EXERCISES.MESSAGE_IO'SPEC
V53381|-565|3| 6/17/88 14:22:41|PACKAGE_SPEC|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.MENU_EXERCISES.PROCESS'SPEC
V53946|-242|3| 6/17/88 09:28:29|PACKAGE_SPEC|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.MENU_EXERCISES.PROCESS'BODY
B54188|-1381|3| 6/17/88 14:23:05|PACKAGE_BODY|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.NEW_TEXT
N||| 5/30/88 12:12:00|DIRECTORY|||

!USERS.ADVANCED_TOPICS_MASTER.NEW_TEXT
K


!USERS.ADVANCED_TOPICS_MASTER.NEW_TEXT.FILE_1_TEMP
F55569||| 5/30/88 12:02:45|TEXT||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.NEW_TEXT.FILE_2_TEMP
F55569||| 5/30/88 12:03:10|TEXT||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM
W||| 9/23/87 10:03:29|WORLD|1||
ANETWORK_PUBLIC=>RCOD|DNETWORK_PUBLIC=>RW|TR1000|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM
Y

LINE
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.LINE'SPEC
TEST_DRIVER1
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.TEST_DRIVER1'SPEC
SYSTEM_UTILITIES
!TOOLS.SYSTEM_UTILITIES'SPEC
TEXT_IO
!IO.TEXT_IO'SPEC
UNIT
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.UNIT'SPEC
REPORT
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.REPORT'SPEC
PROGRAM_PROFILE
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.PROGRAM_PROFILE'SPEC


!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.LINE'SPEC
V55569|-349|4|11/11/87 19:23:42|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.LINE'BODY
B55918|-1400|4|11/11/87 19:23:42|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.PROGRAM_PROFILE'SPEC
V57318|-110|4|11/11/87 19:23:43|PROCEDURE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.PROGRAM_PROFILE'BODY
B57428|-226|4|11/11/87 19:23:43|PROCEDURE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.REPORT'SPEC
V57654|-119|4|11/11/87 19:23:44|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.REPORT'BODY
B57773|-1948|4|11/11/87 19:23:44|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.TEST_DRIVER1'SPEC
V59721|-23|4|11/11/87 19:23:44|PROCEDURE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.TEST_DRIVER1'BODY
B59744|-324|4|11/11/87 19:23:45|PROCEDURE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.TEST_INPUT_1
F60068|-1369||11/11/87 19:23:45|TEXT|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.TEST_INPUT_2
F61437|-14353||11/11/87 19:23:46|TEXT|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.UNIT'SPEC
V75790|-618|4|11/11/87 19:23:46|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.PROGRAM_PROFILE_SYSTEM.UNIT'BODY
B76408|-2176|4|11/11/87 19:23:46|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS
W||| 5/30/88 12:28:51|WORLD|||
ANETWORK_PUBLIC=>RCOD|DNETWORK_PUBLIC=>RW|TR1000|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE
W||| 5/30/88 12:28:54|WORLD|||
ANETWORK_PUBLIC=>RCOD|DNETWORK_PUBLIC=>RW|TR1000|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE
Y

DIANA_OBJECT_EDITOR
!TOOLS.DIANA_OBJECT_EDITOR'SPEC
PIPE
!IO.PIPE'SPEC
TAPE_TOOLS
!TOOLS.TAPE_TOOLS'SPEC
SIMPLE_TEXT_IO
!IO.IO'SPEC
TABLE_FORMATTER
!TOOLS.TABLE_FORMATTER'SPEC
QUEUE
!COMMANDS.QUEUE'SPEC
SEQUENTIAL_IO
!IO.SEQUENTIAL_IO'SPEC
DEBUG
!COMMANDS.DEBUG'SPEC
SYSTEM_BACKUP
!COMMANDS.SYSTEM_BACKUP'SPEC
COMMAND
!COMMANDS.COMMAND'SPEC
TERMINAL
!COMMANDS.TERMINAL'SPEC
LINE
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.LINE'SPEC
IO
!IO.IO'SPEC
CONCURRENT_MAP_GENERIC
!TOOLS.CONCURRENT_MAP_GENERIC'SPEC
EDITOR
!COMMANDS.EDITOR'SPEC
DISK_DAEMON
!TOOLS.DISK_DAEMON'SPEC
TIME_UTILITY
!TOOLS.TIME_UTILITIES'SPEC
STRING_UTILITIES
!TOOLS.STRING_UTILITIES'SPEC
LOG
!COMMANDS.LOG'SPEC
LIBRARY
!COMMANDS.LIBRARY'SPEC
BOUNDED_STRING
!TOOLS.BOUNDED_STRING'SPEC
TEXT
!COMMANDS.TEXT'SPEC
POLYMORPHIC_SEQUENTIAL_IO
!IO.POLYMORPHIC_SEQUENTIAL_IO'SPEC
DIRECTORY_TOOLS
!TOOLS.DIRECTORY_TOOLS'SPEC
TIME_UTILITIES
!TOOLS.TIME_UTILITIES'SPEC
SIMPLE_STATUS
!TOOLS.SIMPLE_STATUS'SPEC
JOB
!COMMANDS.JOB'SPEC
ADA_OBJECT_EDITOR
!TOOLS.ADA_OBJECT_EDITOR'SPEC
PROGRAM
!COMMANDS.PROGRAM'SPEC
OPERATOR
!COMMANDS.OPERATOR'SPEC
ACCESS_LIST
!COMMANDS.ACCESS_LIST'SPEC
ADA
!COMMANDS.ADA'SPEC
ACCESS_LIST_TOOLS
!TOOLS.ACCESS_LIST_TOOLS'SPEC
SWITCHES
!COMMANDS.SWITCHES'SPEC
QUEUE_GENERIC
!TOOLS.QUEUE_GENERIC'SPEC
COMPILATION
!COMMANDS.COMPILATION'SPEC
SET_GENERIC
!TOOLS.SET_GENERIC'SPEC
HASH
!TOOLS.HASH'SPEC
DIANA_TREE
!COMMANDS.DIANA_TREE'SPEC
DEBUG_TOOLS
!TOOLS.DEBUG_TOOLS'SPEC
ACTION_UTILITIES
!COMMANDS.ACTION_UTILITIES'SPEC
TAPE_SPECIFIC
!IO.TAPE_SPECIFIC'SPEC
TAPE
!COMMANDS.TAPE'SPEC
SYSTEM_UTILITIES
!TOOLS.SYSTEM_UTILITIES'SPEC
LINK_TOOLS
!TOOLS.LINK_TOOLS'SPEC
FILE_UTILITIES
!COMMANDS.FILE_UTILITIES'SPEC
DIRECT_IO
!IO.DIRECT_IO'SPEC
TEXT_IO
!IO.TEXT_IO'SPEC
UNBOUNDED_STRING
!TOOLS.UNBOUNDED_STRING'SPEC
LIBRARY_OBJECT_EDITOR
!TOOLS.LIBRARY_OBJECT_EDITOR'SPEC
CALENDAR
!LRM.CALENDAR'SPEC
UNIT
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.UNIT'SPEC
UNCHECKED_CONVERSION
!LRM.UNCHECKED_CONVERSION'SPEC
LIST_GENERIC
!TOOLS.LIST_GENERIC'SPEC
DAEMON
!COMMANDS.DAEMON'SPEC
MAP_GENERIC
!TOOLS.MAP_GENERIC'SPEC
DISK_SPACE
!COMMANDS.DISK_SPACE'SPEC
STACK_GENERIC
!TOOLS.STACK_GENERIC'SPEC
UNCHECKED_CONVERSIONS
!TOOLS.UNCHECKED_CONVERSIONS'SPEC
REPORT
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.REPORT'SPEC
SEARCH_LIST
!COMMANDS.SEARCH_LIST'SPEC
SCRIPT
!TOOLS.SCRIPT'SPEC
PROFILE
!TOOLS.PROFILE'SPEC
MESSAGE
!COMMANDS.MESSAGE'SPEC
ACTIVITY
!COMMANDS.ACTIVITY'SPEC
WHAT
!COMMANDS.WHAT'SPEC
PROGRAM_PROFILE
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.PROGRAM_PROFILE'SPEC
DEVICE_INDEPENDENT_IO
!IO.DEVICE_INDEPENDENT_IO'SPEC
IO_EXCEPTIONS
!IO.IO_EXCEPTIONS'SPEC
WINDOW_IO
!IO.WINDOW_IO'SPEC
STRING_TABLE
!TOOLS.STRING_TABLE'SPEC
STRING_MAP_GENERIC
!TOOLS.STRING_MAP_GENERIC'SPEC
SCHEDULER
!COMMANDS.SCHEDULER'SPEC
OBJECT_EDITOR
!TOOLS.OBJECT_EDITOR'SPEC
LINKS
!COMMANDS.LINKS'SPEC
COMMON
!COMMANDS.COMMON'SPEC


!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.LINE'SPEC
V78584|-349|4|11/11/87 19:23:39|PACKAGE_SPEC|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.LINE'BODY
B78933|-901|4| 5/30/88 12:36:02|PACKAGE_BODY|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.PROGRAM_PROFILE'SPEC
V79834|-135|4|11/11/87 19:23:40|PROCEDURE_SPEC|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.PROGRAM_PROFILE'BODY
B79969|-249|4| 5/30/88 12:38:43|PROCEDURE_BODY|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.REPORT'SPEC
V80218|-181|4|11/11/87 19:23:40|PACKAGE_SPEC|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.REPORT'BODY
B80399|-1976|4|11/11/87 19:23:40|PACKAGE_BODY|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.TEST_INPUT_1
F82375|-1369||11/11/87 19:23:41|TEXT|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.TEST_INPUT_2
F83744|-14353||11/11/87 19:23:41|TEXT|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.UNIT'SPEC
V98097|-629|4| 5/30/88 12:37:47|PACKAGE_SPEC|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.INCREMENTAL_EXERCISE.UNIT'BODY
B98726|-2197|4| 5/30/88 12:38:00|PACKAGE_BODY|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE
N||| 5/30/88 11:12:36|DIRECTORY|||

!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE
K


!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.LINE'SPEC
V100923|-349|4|11/11/87 19:24:21|PACKAGE_SPEC||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.LINE'BODY
B101272|-960|4| 5/30/88 11:17:30|PACKAGE_BODY||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.LINE.LOCATE_COMMENT'BODY
B102232|-278|4| 5/30/88 11:14:50|FUNCTION_BODY||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.LINE.STRIP_BLANKS'BODY
B102510|-273|4| 5/30/88 11:18:38|FUNCTION_BODY||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.PROGRAM_PROFILE'SPEC
V102783|-135|4| 5/30/88 11:21:40|PROCEDURE_SPEC||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.PROGRAM_PROFILE'BODY
B102918|-238|4| 5/30/88 11:22:38|PROCEDURE_BODY||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.REPORT'SPEC
V103156|-181|4| 5/30/88 11:21:30|PACKAGE_SPEC||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.REPORT'BODY
B103337|-2073|4| 5/30/88 11:22:13|PACKAGE_BODY||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.TEST_INPUT_1
F105410|-1369||11/11/87 19:24:25|TEXT||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.TEST_INPUT_2
F106779|-14353||11/11/87 19:24:25|TEXT||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.UNIT'SPEC
V121132|-543|4| 5/30/88 11:13:53|PACKAGE_SPEC||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.UNIT'BODY
B121675|-545|4| 5/30/88 11:19:25|PACKAGE_BODY||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.UNIT.ANALYZE'BODY
B122220|-1407|4| 5/30/88 11:19:26|FUNCTION_BODY||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS
Y

TRANSPORT_NAME
!TOOLS.NETWORKING.TRANSPORT_NAME'SPEC
TELNET
!COMMANDS.TELNET'SPEC
INTERCHANGE
!TOOLS.NETWORKING.INTERCHANGE'SPEC
FTP_DEFS
!TOOLS.NETWORKING.FTP_DEFS'SPEC
DIANA_OBJECT_EDITOR
!TOOLS.DIANA_OBJECT_EDITOR'SPEC
TRANSFER_GENERIC
!TOOLS.NETWORKING.TRANSFER_GENERIC'SPEC
RPC_PRODUCT
!TOOLS.NETWORKING.RPC_PRODUCT'SPEC
PIPE
!IO.PIPE'SPEC
BYTE_STRING_IO
!TOOLS.NETWORKING.BYTE_STRING_IO'SPEC
BYTE_DEFS
!TOOLS.NETWORKING.BYTE_DEFS'SPEC
ARCHIVE
!COMMANDS.ARCHIVE'SPEC
TAPE_TOOLS
!TOOLS.TAPE_TOOLS'SPEC
TABLE_FORMATTER
!TOOLS.TABLE_FORMATTER'SPEC
QUEUE
!COMMANDS.QUEUE'SPEC
SEQUENTIAL_IO
!IO.SEQUENTIAL_IO'SPEC
DEBUG
!COMMANDS.DEBUG'SPEC
SYSTEM_BACKUP
!COMMANDS.SYSTEM_BACKUP'SPEC
COMMAND
!COMMANDS.COMMAND'SPEC
TERMINAL
!COMMANDS.TERMINAL'SPEC
LINE
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.LINE'SPEC
IO
!IO.IO'SPEC
CONCURRENT_MAP_GENERIC
!TOOLS.CONCURRENT_MAP_GENERIC'SPEC
EDITOR
!COMMANDS.EDITOR'SPEC
DISK_DAEMON
!TOOLS.DISK_DAEMON'SPEC
CMVC_MAINTENANCE
!COMMANDS.CMVC_MAINTENANCE'SPEC
OBJECT_SET
!IO.OBJECT_SET'SPEC
TRANSPORT
!TOOLS.NETWORKING.TRANSPORT'SPEC
TERMINAL_SPECIFIC
!IO.TERMINAL_SPECIFIC'SPEC
STRING_UTILITIES
!TOOLS.STRING_UTILITIES'SPEC
LOG
!COMMANDS.LOG'SPEC
RANDOM
!TOOLS.RANDOM'SPEC
LIBRARY
!COMMANDS.LIBRARY'SPEC
GENERIC_BENCHMARK
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.GENERIC_BENCHMARK'SPEC
BOUNDED_STRING
!TOOLS.BOUNDED_STRING'SPEC
TEXT
!COMMANDS.TEXT'SPEC
TCP_IP_DUMP
!TOOLS.NETWORKING.TCP_IP_DUMP'SPEC
POLYMORPHIC_SEQUENTIAL_IO
!IO.POLYMORPHIC_SEQUENTIAL_IO'SPEC
DIRECTORY_TOOLS
!TOOLS.DIRECTORY_TOOLS'SPEC
TRANSPORT_ROUTE
!COMMANDS.TRANSPORT_ROUTE'SPEC
TRANSPORT_DEFS
!TOOLS.NETWORKING.TRANSPORT_DEFS'SPEC
TIME_UTILITIES
!TOOLS.TIME_UTILITIES'SPEC
SIMPLE_STATUS
!TOOLS.SIMPLE_STATUS'SPEC
JOB
!COMMANDS.JOB'SPEC
ADA_OBJECT_EDITOR
!TOOLS.ADA_OBJECT_EDITOR'SPEC
PROGRAM
!COMMANDS.PROGRAM'SPEC
OPERATOR
!COMMANDS.OPERATOR'SPEC
ACCESS_LIST
!COMMANDS.ACCESS_LIST'SPEC
POLYMORPHIC_IO
!IO.POLYMORPHIC_IO'SPEC
FTP_SERVER
!TOOLS.NETWORKING.FTP_SERVER'SPEC
ADA
!COMMANDS.ADA'SPEC
ACCESS_LIST_TOOLS
!TOOLS.ACCESS_LIST_TOOLS'SPEC
NETWORK
!COMMANDS.NETWORK'SPEC
TELNET_PROFILE
!TOOLS.NETWORKING.TELNET_PROFILE'SPEC
TABLE_SORT_GENERIC
!TOOLS.TABLE_SORT_GENERIC'SPEC
SWITCHES
!COMMANDS.SWITCHES'SPEC
DOCUMENT_BUILDER
!COMMANDS.DOCUMENT_BUILDER'SPEC
QUEUE_GENERIC
!TOOLS.QUEUE_GENERIC'SPEC
COMPILATION
!COMMANDS.COMPILATION'SPEC
TRANSPORT_STREAM
!TOOLS.NETWORKING.TRANSPORT_STREAM'SPEC
RPC_ACCESS_UTILITIES
!TOOLS.NETWORKING.RPC_ACCESS_UTILITIES'SPEC
SET_GENERIC
!TOOLS.SET_GENERIC'SPEC
HASH
!TOOLS.HASH'SPEC
DIANA_TREE
!COMMANDS.DIANA_TREE'SPEC
TCP_IP_BOOT
!TOOLS.NETWORKING.TCP_IP_BOOT'SPEC
HOST_ID_IO
!TOOLS.NETWORKING.HOST_ID_IO'SPEC
DEBUG_TOOLS
!TOOLS.DEBUG_TOOLS'SPEC
RPC_SERVER
!TOOLS.NETWORKING.RPC_SERVER'SPEC
RPC
!TOOLS.NETWORKING.RPC'SPEC
PARAMETER_PARSER
!TOOLS.PARAMETER_PARSER'SPEC
NETWORK_PRODUCT
!TOOLS.NETWORKING.NETWORK_PRODUCT'SPEC
ACTION_UTILITIES
!COMMANDS.ACTION_UTILITIES'SPEC
WORK_ORDER
!COMMANDS.WORK_ORDER'SPEC
TAPE_SPECIFIC
!IO.TAPE_SPECIFIC'SPEC
TAPE
!COMMANDS.TAPE'SPEC
SYSTEM_UTILITIES
!TOOLS.SYSTEM_UTILITIES'SPEC
LINK_TOOLS
!TOOLS.LINK_TOOLS'SPEC
FILE_UTILITIES
!COMMANDS.FILE_UTILITIES'SPEC
DIRECT_IO
!IO.DIRECT_IO'SPEC
ALLOWS_DEALLOCATION
!TOOLS.ALLOWS_DEALLOCATION'SPEC
TEXT_IO
!IO.TEXT_IO'SPEC
FTP
!COMMANDS.FTP'SPEC
ADA_TEXT
!TOOLS.ADA_TEXT'SPEC
UNBOUNDED_STRING
!TOOLS.UNBOUNDED_STRING'SPEC
TRANSPORT_INTERCHANGE
!TOOLS.NETWORKING.TRANSPORT_INTERCHANGE'SPEC
RPC_CLIENT
!TOOLS.NETWORKING.RPC_CLIENT'SPEC
LIBRARY_OBJECT_EDITOR
!TOOLS.LIBRARY_OBJECT_EDITOR'SPEC
FTP_NAME_MAP
!TOOLS.NETWORKING.FTP_NAME_MAP'SPEC
CALENDAR
!LRM.CALENDAR'SPEC
UNIT
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.UNIT'SPEC
UNCHECKED_CONVERSION
!LRM.UNCHECKED_CONVERSION'SPEC
LIST_GENERIC
!TOOLS.LIST_GENERIC'SPEC
INTERCHANGE_DEFS
!TOOLS.NETWORKING.INTERCHANGE_DEFS'SPEC
DAEMON
!COMMANDS.DAEMON'SPEC
CMVC
!COMMANDS.CMVC'SPEC
FILE_TRANSFER
!TOOLS.NETWORKING.FILE_TRANSFER'SPEC
MAP_GENERIC
!TOOLS.MAP_GENERIC'SPEC
MAIL
!COMMANDS.MAIL'SPEC
MACHINE_CODE
!LRM.MACHINE_CODE'SPEC
DISK_SPACE
!COMMANDS.DISK_SPACE'SPEC
BIT_OPERATIONS
!TOOLS.BIT_OPERATIONS'SPEC
UNCHECKED_DEALLOCATION
!LRM.UNCHECKED_DEALLOCATION'SPEC
STACK_GENERIC
!TOOLS.STACK_GENERIC'SPEC
UNCHECKED_CONVERSIONS
!TOOLS.UNCHECKED_CONVERSIONS'SPEC
TRANSPORT_SERVER_JOB
!TOOLS.NETWORKING.TRANSPORT_SERVER_JOB'SPEC
REPORT
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.REPORT'SPEC
FTP_PRODUCT
!TOOLS.NETWORKING.FTP_PRODUCT'SPEC
ELAPSED_TIME_BENCHMARK
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.ELAPSED_TIME_BENCHMARK'SPEC
SEARCH_LIST
!COMMANDS.SEARCH_LIST'SPEC
SCRIPT
!TOOLS.SCRIPT'SPEC
PROFILE
!TOOLS.PROFILE'SPEC
MESSAGE
!COMMANDS.MESSAGE'SPEC
ACTIVITY
!COMMANDS.ACTIVITY'SPEC
WHAT
!COMMANDS.WHAT'SPEC
PROGRAM_PROFILE
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.SUBUNIT_EXERCISE.PROGRAM_PROFILE'SPEC
DEVICE_INDEPENDENT_IO
!IO.DEVICE_INDEPENDENT_IO'SPEC
TELNET_PRODUCT
!TOOLS.NETWORKING.TELNET_PRODUCT'SPEC
IO_EXCEPTIONS
!IO.IO_EXCEPTIONS'SPEC
WINDOW_IO
!IO.WINDOW_IO'SPEC
TRANSPORT_SERVER
!TOOLS.NETWORKING.TRANSPORT_SERVER'SPEC
STRING_TABLE
!TOOLS.STRING_TABLE'SPEC
STRING_MAP_GENERIC
!TOOLS.STRING_MAP_GENERIC'SPEC
SCHEDULER
!COMMANDS.SCHEDULER'SPEC
OBJECT_EDITOR
!TOOLS.OBJECT_EDITOR'SPEC
LINKS
!COMMANDS.LINKS'SPEC
FTP_PROFILE
!TOOLS.NETWORKING.FTP_PROFILE'SPEC
COMMON
!COMMANDS.COMMON'SPEC


!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.ELAPSED_TIME_BENCHMARK'SPEC
V123627|-33|4| 5/29/88 16:44:18|PROCEDURE_SPEC|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.ELAPSED_TIME_BENCHMARK'BODY
B123660|-584|3| 5/29/88 16:48:22|PROCEDURE_BODY|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.GENERIC_BENCHMARK'SPEC
V124244|-71|4| 5/29/88 16:44:41|GENERIC_PROCEDURE|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOLUTIONS.GENERIC_BENCHMARK'BODY
B124315|-753|3| 5/29/88 16:48:59|PROCEDURE_BODY|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOME_TEXT
N||| 5/30/88 12:03:29|DIRECTORY|||

!USERS.ADVANCED_TOPICS_MASTER.SOME_TEXT
K


!USERS.ADVANCED_TOPICS_MASTER.SOME_TEXT.DO_NOT_COPY
F125068||| 5/30/88 12:03:32|TEXT||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOME_TEXT.FILE_1
F125068||| 5/30/88 12:02:45|TEXT||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SOME_TEXT.FILE_2
F125068||| 5/30/88 12:03:10|TEXT||1|
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE
W||| 8/27/87 16:32:33|WORLD|1||
ANETWORK_PUBLIC=>RCOD|DNETWORK_PUBLIC=>RW|TR1000|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE
Y

DIANA_OBJECT_EDITOR
!TOOLS.DIANA_OBJECT_EDITOR'SPEC
PIPE
!IO.PIPE'SPEC
TAPE_TOOLS
!TOOLS.TAPE_TOOLS'SPEC
SIMPLE_TEXT_IO
!IO.IO'SPEC
TABLE_FORMATTER
!TOOLS.TABLE_FORMATTER'SPEC
QUEUE
!COMMANDS.QUEUE'SPEC
SEQUENTIAL_IO
!IO.SEQUENTIAL_IO'SPEC
DEBUG
!COMMANDS.DEBUG'SPEC
SYSTEM_BACKUP
!COMMANDS.SYSTEM_BACKUP'SPEC
COMMAND
!COMMANDS.COMMAND'SPEC
TERMINAL
!COMMANDS.TERMINAL'SPEC
LINE
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.LINE'SPEC
IO
!IO.IO'SPEC
CONCURRENT_MAP_GENERIC
!TOOLS.CONCURRENT_MAP_GENERIC'SPEC
EDITOR
!COMMANDS.EDITOR'SPEC
DISK_DAEMON
!TOOLS.DISK_DAEMON'SPEC
TIME_UTILITY
!TOOLS.TIME_UTILITIES'SPEC
STRING_UTILITIES
!TOOLS.STRING_UTILITIES'SPEC
LOG
!COMMANDS.LOG'SPEC
LIBRARY
!COMMANDS.LIBRARY'SPEC
BOUNDED_STRING
!TOOLS.BOUNDED_STRING'SPEC
TEXT
!COMMANDS.TEXT'SPEC
POLYMORPHIC_SEQUENTIAL_IO
!IO.POLYMORPHIC_SEQUENTIAL_IO'SPEC
DIRECTORY_TOOLS
!TOOLS.DIRECTORY_TOOLS'SPEC
TIME_UTILITIES
!TOOLS.TIME_UTILITIES'SPEC
SIMPLE_STATUS
!TOOLS.SIMPLE_STATUS'SPEC
JOB
!COMMANDS.JOB'SPEC
ADA_OBJECT_EDITOR
!TOOLS.ADA_OBJECT_EDITOR'SPEC
PROGRAM
!COMMANDS.PROGRAM'SPEC
OPERATOR
!COMMANDS.OPERATOR'SPEC
ACCESS_LIST
!COMMANDS.ACCESS_LIST'SPEC
ADA
!COMMANDS.ADA'SPEC
ACCESS_LIST_TOOLS
!TOOLS.ACCESS_LIST_TOOLS'SPEC
SWITCHES
!COMMANDS.SWITCHES'SPEC
QUEUE_GENERIC
!TOOLS.QUEUE_GENERIC'SPEC
COMPILATION
!COMMANDS.COMPILATION'SPEC
SET_GENERIC
!TOOLS.SET_GENERIC'SPEC
HASH
!TOOLS.HASH'SPEC
DIANA_TREE
!COMMANDS.DIANA_TREE'SPEC
DEBUG_TOOLS
!TOOLS.DEBUG_TOOLS'SPEC
ACTION_UTILITIES
!COMMANDS.ACTION_UTILITIES'SPEC
TAPE_SPECIFIC
!IO.TAPE_SPECIFIC'SPEC
TAPE
!COMMANDS.TAPE'SPEC
SYSTEM_UTILITIES
!TOOLS.SYSTEM_UTILITIES'SPEC
LINK_TOOLS
!TOOLS.LINK_TOOLS'SPEC
FILE_UTILITIES
!COMMANDS.FILE_UTILITIES'SPEC
DIRECT_IO
!IO.DIRECT_IO'SPEC
TEXT_IO
!IO.TEXT_IO'SPEC
UNBOUNDED_STRING
!TOOLS.UNBOUNDED_STRING'SPEC
LIBRARY_OBJECT_EDITOR
!TOOLS.LIBRARY_OBJECT_EDITOR'SPEC
CALENDAR
!LRM.CALENDAR'SPEC
UNCHECKED_CONVERSION
!LRM.UNCHECKED_CONVERSION'SPEC
LIST_GENERIC
!TOOLS.LIST_GENERIC'SPEC
DAEMON
!COMMANDS.DAEMON'SPEC
MAP_GENERIC
!TOOLS.MAP_GENERIC'SPEC
DISK_SPACE
!COMMANDS.DISK_SPACE'SPEC
STACK_GENERIC
!TOOLS.STACK_GENERIC'SPEC
UNCHECKED_CONVERSIONS
!TOOLS.UNCHECKED_CONVERSIONS'SPEC
REPORT
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.REPORT'SPEC
SEARCH_LIST
!COMMANDS.SEARCH_LIST'SPEC
SCRIPT
!TOOLS.SCRIPT'SPEC
PROFILE
!TOOLS.PROFILE'SPEC
MESSAGE
!COMMANDS.MESSAGE'SPEC
ACTIVITY
!COMMANDS.ACTIVITY'SPEC
WHAT
!COMMANDS.WHAT'SPEC
PROGRAM_PROFILE
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.PROGRAM_PROFILE'SPEC
DEVICE_INDEPENDENT_IO
!IO.DEVICE_INDEPENDENT_IO'SPEC
IO_EXCEPTIONS
!IO.IO_EXCEPTIONS'SPEC
WINDOW_IO
!IO.WINDOW_IO'SPEC
SYSTEM
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.SYSTEM'SPEC
STRING_TABLE
!TOOLS.STRING_TABLE'SPEC
STRING_MAP_GENERIC
!TOOLS.STRING_MAP_GENERIC'SPEC
SCHEDULER
!COMMANDS.SCHEDULER'SPEC
OBJECT_EDITOR
!TOOLS.OBJECT_EDITOR'SPEC
LINKS
!COMMANDS.LINKS'SPEC
COMMON
!COMMANDS.COMMON'SPEC


!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.LINE'SPEC
V125068|-349|4|11/11/87 19:24:21|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.LINE'BODY
B125417|-753|2|11/11/87 19:24:22|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.LINE.KIND'BODY
B126170|-234|2|11/11/87 19:24:22||1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.PROGRAM_PROFILE'SPEC
V126404|-135|4|11/11/87 19:24:22|PROCEDURE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.PROGRAM_PROFILE'BODY
B126539|-242|4|11/11/87 19:24:23|PROCEDURE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.REPORT'SPEC
V126781|-185|4|11/11/87 19:24:23|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.REPORT'BODY
B126966|-2083|4|11/11/87 19:24:23|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.SYSTEM'SPEC
V129049|-416|4|11/11/87 19:24:24|PACKAGE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.SYSTEM'BODY
B129465|-2046|2|11/11/87 19:24:24|PACKAGE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.TEST_INPUT_1
F131511|-1369||11/11/87 19:24:25|TEXT|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.SUBUNIT_EXERCISE.TEST_INPUT_2
F132880|-14353||11/11/87 19:24:25|TEXT|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.S_1_SWITCHES
I||| 8/22/88 20:33:46|SWITCH|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
Profile.Log_Diagnostic_Msgs
FALSE
Profile.Remote_Passwords
<NIL>
Session.Debug_Include_Packages
False
Session.Cmvc_Show_Add_Date
True
Session.Job_Name_Separator
" % "
Session.Prompt_Delimiters
"""'"
Session.Image_Fill_Mode
False
Session.Debug_Stack_Start
1
Session.Debug_History_Count
10
Session.Debug_Save_Exceptions
False
Session.Text_Top_Stripe
"----------------------------------------------------------------------------"
Profile.Log_Exception_Msgs
TRUE
Session.Cmvc_Configuration_Extent
0
Session.Library_Show_Subunits
True
Session.Library_Misc_Show_Unit_State
True
Session.Window_Command_Size
2
Session.Image_Tab_Stops
""
Session.Debug_Put_Locals
False
Session.Library_Show_Deleted_Versions
False
Session.Library_Misc_Show_Size
True
Session.Library_Misc_Show_Volume
True
Session.Beep_On_Interrupt
True
Session.Image_Insert_Mode
True
Session.Debug_Delete_Temporary_Breaks
False
Session.Cmvc_Show_Field_Max_Index
False
Session.Window_Scroll_Overlap
20
Profile.Log_Position_Msgs
TRUE
Profile.Log_Note_Msgs
TRUE
Session.Debug_Display_Level
3
Session.Debug_Optimize_Generic_History
True
Session.Debug_Addresses
False
Session.Cmvc_Show_Add_Time
True
Session.Cmvc_Show_Edit_Info
False
Session.Job_Context_First
True
Session.Default_Job_Page_Limit
8000
Profile.Reaction
PERSEVERE
Session.Debug_History_Start
10
Session.Debug_History_Entries
1000
Session.Debug_Element_Count
25
Session.Debug_Freeze_Tasks
False
Session.Cmvc_Break_Long_Lines
True
Session.Mail_Multiple_Message_Windows
False
Session.Cmvc_Show_Hidden_Fields
False
Session.Mail_Send_Empty_Messages
True
Session.Library_Std_Show_Class
False
Session.Key_Directory
""
Session.Search_Preserve_Case
False
Session.Screen_Dump_File
"SCREEN_DUMP"
Session.Cmvc_Show_Display_Position
False
Session.Cmvc_Show_Version_Number
False
Session.Library_Line_Length
80
Session.Text_Header
True
Session.Window_Shift_Overlap
80
Profile.Log_Prefix_2
HR_MN_SC
Session.Debug_Declaration_Display
True
Session.Dependents_Show_Unit_State
False
Session.Library_Shorten_Unit_State
True
Session.Library_Lazy_Realignment
True
Profile.Log_Prefix_3
SYMBOLS
Session.Debug_Display_Creation
False
Session.Cmvc_Indentation
2
Session.Library_Break_Long_Lines
True
Session.Debug_Echo_Commands
True
Session.Cmvc_Shorten_Name
True
Session.Text_Convert_Tabs
True
Session.Text_Print_Name
True
Session.Window_Message_Life
2
Profile.Log_Prefix_1
YR_MN_DY
Session.Debug_Require_Debug_Off
False
Session.Dependents_Show_Library
True
Session.Notify_Warnings
True
Session.Library_Misc_Show_Frozen
True
Session.Library_Std_Show_Unit_State
False
Session.Debug_Break_At_Creation
False
Session.Beep_On_Errors
True
Profile.Log_Negative_Msgs
TRUE
Profile.Log_Positive_Msgs
TRUE
Session.Image_Fill_Prefix
""
Session.Debug_Stack_Count
10
Profile.Log_Error_Msgs
TRUE
Session.Cmvc_Show_Retention
False
Session.Library_Capitalize
True
Session.Cursor_Top_Offset
33
Session.Window_Have_Sides
False
Profile.Log_Warning_Msgs
TRUE
Session.Cmvc_Capitalize
True
Session.Mail_Position_Cursor_Unread
True
Session.Text_Print_Time
True
Session.Window_Frames
0
Profile.Log_File
USE_OUTPUT
Profile.Log_Sharp_Msgs
TRUE
Cmvc.Default_Venture
<>
Session.Image_Fill_Column
72
Session.Cmvc_Show_Deleted_Versions
False
Session.Mail_Move_Cursor_On_Delete
True
Session.Library_Misc_Show_Edit_Info
True
Session.Cursor_Right_Offset
33
Session.Cursor_Transpose_Moves
False
Session.Cmvc_Show_All_Default_Orders
False
Session.Library_Shorten_Names
True
Session.Window_Is_Staggered
True
Profile.Log_Dollar_Msgs
TRUE
Session.Debug_Interpret_Control_Words
False
Session.Cursor_Left_Offset
33
Session.Cmvc_Field_Extent
4
Session.Cmvc_Shorten_Unit_State
False
Session.Image_Fill_Indent
-1
Session.Debug_First_Element
0
Session.Debug_Qualify_Stack_Names
False
Profile.Remote_Sessions
<NIL>
Session.Cmvc_Comment_Extent
4
Session.Window_Message_Size
4
Session.Mail_Cursor_On_Text_In_Reply
False
Session.Text_Print_Number
True
Session.Cmvc_Show_Unit_State
True
Session.Debug_Timestamps
False
Session.Cmvc_Show_All_Default_Lists
False
Session.Job_Context_Length
3
Session.Cmvc_Show_Size
False
Session.Dependents_Delta0_Compatibility
True
Session.Library_Misc_Show_Retention
True
Session.Library_Std_Show_Subclass
True
Session.Library_Uppercase
False
Session.Text_Scroll_Output
True
Session.Text_Bottom_Stripe
"----------------------------------------------------------------------------"
Session.Cursor_Bottom_Offset
33
Profile.Log_Line_Width
 77
Session.Cmvc_Line_Length
80
Session.Mail_Cc_Sender
False
Session.Mail_Default_Sort_Order
3
Session.Library_Indentation
2
Session.Terminal_Line_Speed
9600
Profile.Activity_File
!MACHINE.RELEASE.CURRENT.ACTIVITY
Session.Debug_Machine_Level
False
Session.Library_Misc_Show_Subclass
False
Session.Beep_On_Messages
False
Session.Debug_No_History_Timestamps
True
Session.Cmvc_Uppercase
False
Session.Mail_Include_Text_In_Reply
False
Session.Cmvc_Version_Extent
0
Session.Mail_Retain_Deleted_Messages
True
Session.Text_Reuse_Window
True
Session.Image_Fill_Extra_Space
"!.?"
Session.Debug_Display_Count
10
Session.Library_Show_Deleted_Objects
False
Session.Job_Name_Length
2
Session.Terminal_Padding
10
Session.Cmvc_Show_Users
False
Session.Search_Ignore_Case
True
Session.Cmvc_Show_Deleted_Objects
False
Session.Library_Show_Miscellaneous
False
Session.Debug_Pointer_Level
3
Session.Debug_Permanent_Breakpoints
True
Session.Debug_Kill_Old_Jobs
True
Session.Cmvc_Show_Frozen
False
Session.Library_Show_Standard
True
Session.Cmvc_Enable_Relocation
False
Session.Debug_Memory_Count
3
Session.Library_Show_Version_Number
False
Session.Window_Frames_Startup
0
Session.Word_Breaks
" ""#%&'()*+,-./:;<=>?[]_`{|}~"
Profile.Log_At_Sign_Msgs
TRUE
Profile.Log_Auxiliary_Msgs
TRUE
Session.Cmvc_Show_Field_Type
False
Session.Cmvc_Show_Field_Default
True
Session.Library_Shorten_Subclass
True
Session.Debug_Show_Location
True
Session.Dependents_In_Order_Pathnames
False
Session.Search_Regular_Expr
False


!USERS.ADVANCED_TOPICS_MASTER.S_2_SWITCHES
I||| 8/22/88 20:33:47|SWITCH|||
ANETWORK_PUBLIC=>RW|
Profile.Log_Diagnostic_Msgs
FALSE
Profile.Remote_Passwords
<NIL>
Session.Debug_Include_Packages
False
Session.Cmvc_Show_Add_Date
True
Session.Job_Name_Separator
" % "
Session.Prompt_Delimiters
"""'"
Session.Image_Fill_Mode
False
Session.Debug_Stack_Start
1
Session.Debug_History_Count
10
Session.Debug_Save_Exceptions
False
Session.Text_Top_Stripe
"----------------------------------------------------------------------------"
Profile.Log_Exception_Msgs
TRUE
Session.Cmvc_Configuration_Extent
0
Session.Library_Show_Subunits
True
Session.Library_Misc_Show_Unit_State
True
Session.Window_Command_Size
2
Session.Image_Tab_Stops
""
Session.Debug_Put_Locals
False
Session.Library_Show_Deleted_Versions
False
Session.Library_Misc_Show_Size
True
Session.Library_Misc_Show_Volume
True
Session.Beep_On_Interrupt
True
Session.Image_Insert_Mode
True
Session.Debug_Delete_Temporary_Breaks
False
Session.Cmvc_Show_Field_Max_Index
False
Session.Window_Scroll_Overlap
20
Profile.Log_Position_Msgs
TRUE
Profile.Log_Note_Msgs
TRUE
Session.Debug_Display_Level
3
Session.Debug_Optimize_Generic_History
True
Session.Debug_Addresses
False
Session.Cmvc_Show_Add_Time
True
Session.Cmvc_Show_Edit_Info
False
Session.Job_Context_First
True
Session.Default_Job_Page_Limit
8000
Profile.Reaction
PERSEVERE
Session.Debug_History_Start
10
Session.Debug_History_Entries
1000
Session.Debug_Element_Count
25
Session.Debug_Freeze_Tasks
False
Session.Cmvc_Break_Long_Lines
True
Session.Mail_Multiple_Message_Windows
False
Session.Cmvc_Show_Hidden_Fields
False
Session.Mail_Send_Empty_Messages
True
Session.Library_Std_Show_Class
False
Session.Key_Directory
""
Session.Search_Preserve_Case
False
Session.Screen_Dump_File
"SCREEN_DUMP"
Session.Cmvc_Show_Display_Position
False
Session.Cmvc_Show_Version_Number
False
Session.Library_Line_Length
80
Session.Text_Header
True
Session.Window_Shift_Overlap
80
Profile.Log_Prefix_2
HR_MN_SC
Session.Debug_Declaration_Display
True
Session.Dependents_Show_Unit_State
False
Session.Library_Shorten_Unit_State
True
Session.Library_Lazy_Realignment
True
Profile.Log_Prefix_3
SYMBOLS
Session.Debug_Display_Creation
False
Session.Cmvc_Indentation
2
Session.Library_Break_Long_Lines
True
Session.Debug_Echo_Commands
True
Session.Cmvc_Shorten_Name
True
Session.Text_Convert_Tabs
True
Session.Text_Print_Name
True
Session.Window_Message_Life
2
Profile.Log_Prefix_1
YR_MN_DY
Session.Debug_Require_Debug_Off
False
Session.Dependents_Show_Library
True
Session.Notify_Warnings
True
Session.Library_Misc_Show_Frozen
True
Session.Library_Std_Show_Unit_State
False
Session.Debug_Break_At_Creation
False
Session.Beep_On_Errors
True
Profile.Log_Negative_Msgs
TRUE
Profile.Log_Positive_Msgs
TRUE
Session.Image_Fill_Prefix
""
Session.Debug_Stack_Count
10
Profile.Log_Error_Msgs
TRUE
Session.Cmvc_Show_Retention
False
Session.Library_Capitalize
True
Session.Cursor_Top_Offset
33
Session.Window_Have_Sides
False
Profile.Log_Warning_Msgs
TRUE
Session.Cmvc_Capitalize
True
Session.Mail_Position_Cursor_Unread
True
Session.Text_Print_Time
True
Session.Window_Frames
0
Profile.Log_File
USE_OUTPUT
Profile.Log_Sharp_Msgs
TRUE
Cmvc.Default_Venture
<>
Session.Image_Fill_Column
72
Session.Cmvc_Show_Deleted_Versions
False
Session.Mail_Move_Cursor_On_Delete
True
Session.Library_Misc_Show_Edit_Info
True
Session.Cursor_Right_Offset
33
Session.Cursor_Transpose_Moves
False
Session.Cmvc_Show_All_Default_Orders
False
Session.Library_Shorten_Names
True
Session.Window_Is_Staggered
True
Profile.Log_Dollar_Msgs
TRUE
Session.Debug_Interpret_Control_Words
False
Session.Cursor_Left_Offset
33
Session.Cmvc_Field_Extent
4
Session.Cmvc_Shorten_Unit_State
False
Session.Image_Fill_Indent
-1
Session.Debug_First_Element
0
Session.Debug_Qualify_Stack_Names
False
Profile.Remote_Sessions
<NIL>
Session.Cmvc_Comment_Extent
4
Session.Window_Message_Size
4
Session.Mail_Cursor_On_Text_In_Reply
False
Session.Text_Print_Number
True
Session.Cmvc_Show_Unit_State
True
Session.Debug_Timestamps
False
Session.Cmvc_Show_All_Default_Lists
False
Session.Job_Context_Length
3
Session.Cmvc_Show_Size
False
Session.Dependents_Delta0_Compatibility
True
Session.Library_Misc_Show_Retention
True
Session.Library_Std_Show_Subclass
True
Session.Library_Uppercase
False
Session.Text_Scroll_Output
True
Session.Text_Bottom_Stripe
"----------------------------------------------------------------------------"
Session.Cursor_Bottom_Offset
33
Profile.Log_Line_Width
 77
Session.Cmvc_Line_Length
80
Session.Mail_Cc_Sender
False
Session.Mail_Default_Sort_Order
3
Session.Library_Indentation
2
Session.Terminal_Line_Speed
9600
Profile.Activity_File
!MACHINE.RELEASE.CURRENT.ACTIVITY
Session.Debug_Machine_Level
False
Session.Library_Misc_Show_Subclass
False
Session.Beep_On_Messages
False
Session.Debug_No_History_Timestamps
True
Session.Cmvc_Uppercase
False
Session.Mail_Include_Text_In_Reply
False
Session.Cmvc_Version_Extent
0
Session.Mail_Retain_Deleted_Messages
True
Session.Text_Reuse_Window
True
Session.Image_Fill_Extra_Space
"!.?"
Session.Debug_Display_Count
10
Session.Library_Show_Deleted_Objects
False
Session.Job_Name_Length
2
Session.Terminal_Padding
10
Session.Cmvc_Show_Users
False
Session.Search_Ignore_Case
True
Session.Cmvc_Show_Deleted_Objects
False
Session.Library_Show_Miscellaneous
False
Session.Debug_Pointer_Level
3
Session.Debug_Permanent_Breakpoints
True
Session.Debug_Kill_Old_Jobs
True
Session.Cmvc_Show_Frozen
False
Session.Library_Show_Standard
True
Session.Cmvc_Enable_Relocation
False
Session.Debug_Memory_Count
3
Session.Library_Show_Version_Number
False
Session.Window_Frames_Startup
0
Session.Word_Breaks
" ""#%&'()*+,-./:;<=>?[]_`{|}~"
Profile.Log_At_Sign_Msgs
TRUE
Profile.Log_Auxiliary_Msgs
TRUE
Session.Cmvc_Show_Field_Type
False
Session.Cmvc_Show_Field_Default
True
Session.Library_Shorten_Subclass
True
Session.Debug_Show_Location
True
Session.Dependents_In_Order_Pathnames
False
Session.Search_Regular_Expr
False


!USERS.ADVANCED_TOPICS_MASTER.S_3_SWITCHES
I||| 8/22/88 20:33:47|SWITCH|||
ANETWORK_PUBLIC=>RW|
Profile.Log_Diagnostic_Msgs
FALSE
Profile.Remote_Passwords
<NIL>
Session.Debug_Include_Packages
False
Session.Cmvc_Show_Add_Date
True
Session.Job_Name_Separator
" % "
Session.Prompt_Delimiters
"""'"
Session.Image_Fill_Mode
False
Session.Debug_Stack_Start
1
Session.Debug_History_Count
10
Session.Debug_Save_Exceptions
False
Session.Text_Top_Stripe
"----------------------------------------------------------------------------"
Profile.Log_Exception_Msgs
TRUE
Session.Cmvc_Configuration_Extent
0
Session.Library_Show_Subunits
True
Session.Library_Misc_Show_Unit_State
True
Session.Window_Command_Size
2
Session.Image_Tab_Stops
""
Session.Debug_Put_Locals
False
Session.Library_Show_Deleted_Versions
False
Session.Library_Misc_Show_Size
True
Session.Library_Misc_Show_Volume
True
Session.Beep_On_Interrupt
True
Session.Image_Insert_Mode
True
Session.Debug_Delete_Temporary_Breaks
False
Session.Cmvc_Show_Field_Max_Index
False
Session.Window_Scroll_Overlap
20
Profile.Log_Position_Msgs
TRUE
Profile.Log_Note_Msgs
TRUE
Session.Debug_Display_Level
3
Session.Debug_Optimize_Generic_History
True
Session.Debug_Addresses
False
Session.Cmvc_Show_Add_Time
True
Session.Cmvc_Show_Edit_Info
False
Session.Job_Context_First
True
Session.Default_Job_Page_Limit
8000
Profile.Reaction
PERSEVERE
Session.Debug_History_Start
10
Session.Debug_History_Entries
1000
Session.Debug_Element_Count
25
Session.Debug_Freeze_Tasks
False
Session.Cmvc_Break_Long_Lines
True
Session.Mail_Multiple_Message_Windows
False
Session.Cmvc_Show_Hidden_Fields
False
Session.Mail_Send_Empty_Messages
True
Session.Library_Std_Show_Class
False
Session.Key_Directory
""
Session.Search_Preserve_Case
False
Session.Screen_Dump_File
"SCREEN_DUMP"
Session.Cmvc_Show_Display_Position
False
Session.Cmvc_Show_Version_Number
False
Session.Library_Line_Length
80
Session.Text_Header
True
Session.Window_Shift_Overlap
80
Profile.Log_Prefix_2
HR_MN_SC
Session.Debug_Declaration_Display
True
Session.Dependents_Show_Unit_State
False
Session.Library_Shorten_Unit_State
True
Session.Library_Lazy_Realignment
True
Profile.Log_Prefix_3
SYMBOLS
Session.Debug_Display_Creation
False
Session.Cmvc_Indentation
2
Session.Library_Break_Long_Lines
True
Session.Debug_Echo_Commands
True
Session.Cmvc_Shorten_Name
True
Session.Text_Convert_Tabs
True
Session.Text_Print_Name
True
Session.Window_Message_Life
2
Profile.Log_Prefix_1
YR_MN_DY
Session.Debug_Require_Debug_Off
False
Session.Dependents_Show_Library
True
Session.Notify_Warnings
True
Session.Library_Misc_Show_Frozen
True
Session.Library_Std_Show_Unit_State
False
Session.Debug_Break_At_Creation
False
Session.Beep_On_Errors
True
Profile.Log_Negative_Msgs
TRUE
Profile.Log_Positive_Msgs
TRUE
Session.Image_Fill_Prefix
""
Session.Debug_Stack_Count
10
Profile.Log_Error_Msgs
TRUE
Session.Cmvc_Show_Retention
False
Session.Library_Capitalize
True
Session.Cursor_Top_Offset
33
Session.Window_Have_Sides
False
Profile.Log_Warning_Msgs
TRUE
Session.Cmvc_Capitalize
True
Session.Mail_Position_Cursor_Unread
True
Session.Text_Print_Time
True
Session.Window_Frames
0
Profile.Log_File
USE_OUTPUT
Profile.Log_Sharp_Msgs
TRUE
Cmvc.Default_Venture
<>
Session.Image_Fill_Column
72
Session.Cmvc_Show_Deleted_Versions
False
Session.Mail_Move_Cursor_On_Delete
True
Session.Library_Misc_Show_Edit_Info
True
Session.Cursor_Right_Offset
33
Session.Cursor_Transpose_Moves
False
Session.Cmvc_Show_All_Default_Orders
False
Session.Library_Shorten_Names
True
Session.Window_Is_Staggered
True
Profile.Log_Dollar_Msgs
TRUE
Session.Debug_Interpret_Control_Words
False
Session.Cursor_Left_Offset
33
Session.Cmvc_Field_Extent
4
Session.Cmvc_Shorten_Unit_State
False
Session.Image_Fill_Indent
-1
Session.Debug_First_Element
0
Session.Debug_Qualify_Stack_Names
False
Profile.Remote_Sessions
<NIL>
Session.Cmvc_Comment_Extent
4
Session.Window_Message_Size
4
Session.Mail_Cursor_On_Text_In_Reply
False
Session.Text_Print_Number
True
Session.Cmvc_Show_Unit_State
True
Session.Debug_Timestamps
False
Session.Cmvc_Show_All_Default_Lists
False
Session.Job_Context_Length
3
Session.Cmvc_Show_Size
False
Session.Dependents_Delta0_Compatibility
True
Session.Library_Misc_Show_Retention
True
Session.Library_Std_Show_Subclass
True
Session.Library_Uppercase
False
Session.Text_Scroll_Output
True
Session.Text_Bottom_Stripe
"----------------------------------------------------------------------------"
Session.Cursor_Bottom_Offset
33
Profile.Log_Line_Width
 77
Session.Cmvc_Line_Length
80
Session.Mail_Cc_Sender
False
Session.Mail_Default_Sort_Order
3
Session.Library_Indentation
2
Session.Terminal_Line_Speed
9600
Profile.Activity_File
!MACHINE.RELEASE.CURRENT.ACTIVITY
Session.Debug_Machine_Level
False
Session.Library_Misc_Show_Subclass
False
Session.Beep_On_Messages
False
Session.Debug_No_History_Timestamps
True
Session.Cmvc_Uppercase
False
Session.Mail_Include_Text_In_Reply
False
Session.Cmvc_Version_Extent
0
Session.Mail_Retain_Deleted_Messages
True
Session.Text_Reuse_Window
True
Session.Image_Fill_Extra_Space
"!.?"
Session.Debug_Display_Count
10
Session.Library_Show_Deleted_Objects
False
Session.Job_Name_Length
2
Session.Terminal_Padding
10
Session.Cmvc_Show_Users
False
Session.Search_Ignore_Case
True
Session.Cmvc_Show_Deleted_Objects
False
Session.Library_Show_Miscellaneous
False
Session.Debug_Pointer_Level
3
Session.Debug_Permanent_Breakpoints
True
Session.Debug_Kill_Old_Jobs
True
Session.Cmvc_Show_Frozen
False
Session.Library_Show_Standard
True
Session.Cmvc_Enable_Relocation
False
Session.Debug_Memory_Count
3
Session.Library_Show_Version_Number
False
Session.Window_Frames_Startup
0
Session.Word_Breaks
" ""#%&'()*+,-./:;<=>?[]_`{|}~"
Profile.Log_At_Sign_Msgs
TRUE
Profile.Log_Auxiliary_Msgs
TRUE
Session.Cmvc_Show_Field_Type
False
Session.Cmvc_Show_Field_Default
True
Session.Library_Shorten_Subclass
True
Session.Debug_Show_Location
True
Session.Dependents_In_Order_Pathnames
False
Session.Search_Regular_Expr
False


!USERS.ADVANCED_TOPICS_MASTER
Y

EDITOR
!COMMANDS.EDITOR'SPEC
STRING_UTILITIES
!TOOLS.STRING_UTILITIES'SPEC
SYSTEM_UTILITIES
!TOOLS.SYSTEM_UTILITIES'SPEC
LOGIN
!USERS.ADVANCED_TOPICS_MASTER.LOGIN'SPEC
WHAT
!COMMANDS.WHAT'SPEC
COMMON
!COMMANDS.COMMON'SPEC


!USERS.ADVANCED_TOPICS_MASTER.FACIT_MACROS
F147233|-498|| 8/24/88 10:36:05|TEXT|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.INDIRECT_FILE
F147731|-36|| 5/29/88 17:08:32|TEXT|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.LOGIN'SPEC
V147767|-16|4|11/11/87 19:23:41|PROCEDURE_SPEC|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.LOGIN'BODY
B147783|-581|4|11/11/87 19:23:42|PROCEDURE_BODY|1||
ADHE=>RW,NETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.RATIONAL_MACROS
F148364|-495|| 8/24/88 10:38:26|TEXT|||
ANETWORK_PUBLIC=>RW|
!USERS.ADVANCED_TOPICS_MASTER.THIS_IS_A_DELTA1_REV1_TRAINING_USER
F148859||| 8/24/88 10:48:41|TEXT|||
ANETWORK_PUBLIC=>RW|88/12/08 17:32:44 ::: [Build_Training_Users (First_User_Number => 1, 
88/12/08 17:32:44 ... Last_User_Number => 1, Username_Prefix => 
88/12/08 17:32:44 ... "Advanced_test", Response => "<PROFILE>");].
88/12/08 17:34:33 --- [Archive.Restore rev 464, objects => "?", use_prefix 
88/12/08 17:34:33 ... => "!Users.Advanced_Test_1", for_prefix => "!Users.
88/12/08 17:34:33 ... Advanced_Topics_Master", options => "R1000, PROMOTE, 
88/12/08 17:34:33 ... BECOME_OWNER, WORLD_ACL=(Network_Public => RWCOD), 
88/12/08 17:34:33 ... DEFAULT_ACL=(Network_Public => RW), 
88/12/08 17:34:33 ... OBJECT_ACL=(Network_Public => RW)", device => 
88/12/08 17:34:33 ... "!Training.Software_Releases.Advanced_Topics.
88/12/08 17:34:33 ... Delta1_Rev1", response => "<PROFILE>"].
88/12/08 17:34:34 --- restoring from an archive done with version 461.
88/12/08 17:34:35 +++ world !USERS.ADVANCED_TEST_1 has been restored using 
88/12/08 17:34:35 ... an existing world.
88/12/08 17:34:37 +++ world !USERS.ADVANCED_TEST_1.ACL_WORLD has been 
88/12/08 17:34:37 ... restored.
88/12/08 17:34:41 +++ world !USERS.ADVANCED_TEST_1.DEBUGGING has been 
88/12/08 17:34:41 ... restored.
88/12/08 17:34:48 +++ gen_pack !USERS.ADVANCED_TEST_1.DEBUGGING.BUFFER'SPEC 
88/12/08 17:34:48 ... has been restored.
88/12/08 17:35:00 +++ pack_body !USERS.ADVANCED_TEST_1.DEBUGGING.BUFFER'BODY 
88/12/08 17:35:00 ... has been restored.
88/12/08 17:35:08 +++ proc_spec !USERS.ADVANCED_TEST_1.DEBUGGING.
88/12/08 17:35:08 ... PRODUCER_CONSUMER'SPEC has been restored.
88/12/08 17:35:23 +++ proc_body !USERS.ADVANCED_TEST_1.DEBUGGING.
88/12/08 17:35:23 ... PRODUCER_CONSUMER'BODY has been restored.
88/12/08 17:35:25 +++ world !USERS.ADVANCED_TEST_1.EXPERIMENT has been 
88/12/08 17:35:25 ... restored.
88/12/08 17:35:32 +++ pack_spec !USERS.ADVANCED_TEST_1.EXPERIMENT.LINE'SPEC 
88/12/08 17:35:32 ... has been restored.
88/12/08 17:35:40 +++ pack_body !USERS.ADVANCED_TEST_1.EXPERIMENT.LINE'BODY 
88/12/08 17:35:40 ... has been restored.
88/12/08 17:35:50 +++ pack_spec !USERS.ADVANCED_TEST_1.EXPERIMENT.
88/12/08 17:35:50 ... LINE_COPY'SPEC has been restored.
88/12/08 17:36:03 +++ pack_body !USERS.ADVANCED_TEST_1.EXPERIMENT.
88/12/08 17:36:03 ... LINE_COPY'BODY has been restored.
88/12/08 17:36:16 +++ pack_spec !USERS.ADVANCED_TEST_1.EXPERIMENT.
88/12/08 17:36:16 ... OVERLOADED_DECLARATIONS'SPEC has been restored.
88/12/08 17:36:27 +++ proc_spec !USERS.ADVANCED_TEST_1.EXPERIMENT.
88/12/08 17:36:27 ... PROGRAM_PROFILE'SPEC has been restored.
88/12/08 17:36:36 +++ proc_body !USERS.ADVANCED_TEST_1.EXPERIMENT.
88/12/08 17:36:36 ... PROGRAM_PROFILE'BODY has been restored.
88/12/08 17:36:47 +++ pack_spec !USERS.ADVANCED_TEST_1.EXPERIMENT.
88/12/08 17:36:47 ... REPORT'SPEC has been restored.
88/12/08 17:37:01 +++ pack_body !USERS.ADVANCED_TEST_1.EXPERIMENT.
88/12/08 17:37:01 ... REPORT'BODY has been restored.
88/12/08 17:37:05 +++ text !USERS.ADVANCED_TEST_1.EXPERIMENT.TEST_INPUT_1 
88/12/08 17:37:05 ... has been restored.
88/12/08 17:37:13 +++ text !USERS.ADVANCED_TEST_1.EXPERIMENT.TEST_INPUT_2 
88/12/08 17:37:13 ... has been restored.
88/12/08 17:37:26 +++ pack_spec !USERS.ADVANCED_TEST_1.EXPERIMENT.UNIT'SPEC 
88/12/08 17:37:26 ... has been restored.
88/12/08 17:37:44 +++ pack_body !USERS.ADVANCED_TEST_1.EXPERIMENT.UNIT'BODY 
88/12/08 17:37:44 ... has been restored.
88/12/08 17:37:49 +++ world !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE has 
88/12/08 17:37:49 ... been restored.
88/12/08 17:37:58 +++ pack_spec !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:37:58 ... LINE'SPEC has been restored.
88/12/08 17:38:16 +++ pack_body !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:38:16 ... LINE'BODY has been restored.
88/12/08 17:38:31 +++ proc_spec !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:38:31 ... PROGRAM_PROFILE'SPEC has been restored.
88/12/08 17:38:40 +++ proc_body !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:38:40 ... PROGRAM_PROFILE'BODY has been restored.
88/12/08 17:38:49 +++ pack_spec !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:38:49 ... REPORT'SPEC has been restored.
88/12/08 17:39:04 +++ pack_body !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:39:04 ... REPORT'BODY has been restored.
88/12/08 17:39:09 +++ text !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:39:09 ... TEST_INPUT_1 has been restored.
88/12/08 17:39:20 +++ text !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:39:20 ... TEST_INPUT_2 has been restored.
88/12/08 17:39:34 +++ pack_spec !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:39:34 ... UNIT'SPEC has been restored.
88/12/08 17:39:55 +++ pack_body !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:39:55 ... UNIT'BODY has been restored.
88/12/08 17:40:00 +++ world !USERS.ADVANCED_TEST_1.MENU_EXERCISES has been 
88/12/08 17:40:00 ... restored.
88/12/08 17:40:12 +++ proc_spec !USERS.ADVANCED_TEST_1.MENU_EXERCISES.
88/12/08 17:40:12 ... MAIN'SPEC has been restored.
88/12/08 17:40:19 +++ proc_body !USERS.ADVANCED_TEST_1.MENU_EXERCISES.
88/12/08 17:40:19 ... MAIN'BODY has been restored.
88/12/08 17:40:26 +++ pack_spec !USERS.ADVANCED_TEST_1.MENU_EXERCISES.
88/12/08 17:40:26 ... MESSAGE_IO'SPEC has been restored.
88/12/08 17:40:31 +++ pack_spec !USERS.ADVANCED_TEST_1.MENU_EXERCISES.
88/12/08 17:40:31 ... PROCESS'SPEC has been restored.
88/12/08 17:41:20 +++ pack_body !USERS.ADVANCED_TEST_1.MENU_EXERCISES.
88/12/08 17:41:20 ... PROCESS'BODY has been restored.
88/12/08 17:41:26 +++ directory !USERS.ADVANCED_TEST_1.NEW_TEXT has been 
88/12/08 17:41:26 ... restored.
88/12/08 17:41:34 +++ text !USERS.ADVANCED_TEST_1.NEW_TEXT.FILE_1_TEMP has 
88/12/08 17:41:34 ... been restored.
88/12/08 17:41:38 +++ text !USERS.ADVANCED_TEST_1.NEW_TEXT.FILE_2_TEMP has 
88/12/08 17:41:38 ... been restored.
88/12/08 17:41:40 +++ world !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM 
88/12/08 17:41:40 ... has been restored.
88/12/08 17:41:48 +++ pack_spec !USERS.ADVANCED_TEST_1.
88/12/08 17:41:48 ... PROGRAM_PROFILE_SYSTEM.LINE'SPEC has been restored.
88/12/08 17:41:58 +++ pack_body !USERS.ADVANCED_TEST_1.
88/12/08 17:41:58 ... PROGRAM_PROFILE_SYSTEM.LINE'BODY has been restored.
88/12/08 17:42:04 +++ proc_spec !USERS.ADVANCED_TEST_1.
88/12/08 17:42:04 ... PROGRAM_PROFILE_SYSTEM.PROGRAM_PROFILE'SPEC has been 
88/12/08 17:42:04 ... restored.
88/12/08 17:42:15 +++ proc_body !USERS.ADVANCED_TEST_1.
88/12/08 17:42:15 ... PROGRAM_PROFILE_SYSTEM.PROGRAM_PROFILE'BODY has been 
88/12/08 17:42:15 ... restored.
88/12/08 17:42:21 +++ pack_spec !USERS.ADVANCED_TEST_1.
88/12/08 17:42:21 ... PROGRAM_PROFILE_SYSTEM.REPORT'SPEC has been restored.
88/12/08 17:42:30 +++ pack_body !USERS.ADVANCED_TEST_1.
88/12/08 17:42:30 ... PROGRAM_PROFILE_SYSTEM.REPORT'BODY has been restored.
88/12/08 17:42:34 +++ proc_spec !USERS.ADVANCED_TEST_1.
88/12/08 17:42:34 ... PROGRAM_PROFILE_SYSTEM.TEST_DRIVER1'SPEC has been 
88/12/08 17:42:34 ... restored.
88/12/08 17:42:40 +++ proc_body !USERS.ADVANCED_TEST_1.
88/12/08 17:42:40 ... PROGRAM_PROFILE_SYSTEM.TEST_DRIVER1'BODY has been 
88/12/08 17:42:40 ... restored.
88/12/08 17:42:42 +++ text !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:42:42 ... TEST_INPUT_1 has been restored.
88/12/08 17:42:45 +++ text !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:42:45 ... TEST_INPUT_2 has been restored.
88/12/08 17:42:51 +++ pack_spec !USERS.ADVANCED_TEST_1.
88/12/08 17:42:51 ... PROGRAM_PROFILE_SYSTEM.UNIT'SPEC has been restored.
88/12/08 17:43:01 +++ pack_body !USERS.ADVANCED_TEST_1.
88/12/08 17:43:01 ... PROGRAM_PROFILE_SYSTEM.UNIT'BODY has been restored.
88/12/08 17:43:03 +++ world !USERS.ADVANCED_TEST_1.SOLUTIONS has been 
88/12/08 17:43:03 ... restored.
88/12/08 17:43:04 +++ world !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:43:04 ... INCREMENTAL_EXERCISE has been restored.
88/12/08 17:43:10 +++ pack_spec !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:43:10 ... INCREMENTAL_EXERCISE.LINE'SPEC has been restored.
88/12/08 17:43:16 +++ pack_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:43:16 ... INCREMENTAL_EXERCISE.LINE'BODY has been restored.
88/12/08 17:43:20 +++ proc_spec !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:43:20 ... INCREMENTAL_EXERCISE.PROGRAM_PROFILE'SPEC has been 
88/12/08 17:43:20 ... restored.
88/12/08 17:43:26 +++ proc_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:43:26 ... INCREMENTAL_EXERCISE.PROGRAM_PROFILE'BODY has been 
88/12/08 17:43:26 ... restored.
88/12/08 17:43:31 +++ pack_spec !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:43:31 ... INCREMENTAL_EXERCISE.REPORT'SPEC has been restored.
88/12/08 17:43:39 +++ pack_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:43:39 ... INCREMENTAL_EXERCISE.REPORT'BODY has been restored.
88/12/08 17:43:42 +++ text !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:43:42 ... INCREMENTAL_EXERCISE.TEST_INPUT_1 has been restored.
88/12/08 17:43:44 +++ text !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:43:44 ... INCREMENTAL_EXERCISE.TEST_INPUT_2 has been restored.
88/12/08 17:43:51 +++ pack_spec !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:43:51 ... INCREMENTAL_EXERCISE.UNIT'SPEC has been restored.
88/12/08 17:44:01 +++ pack_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:44:01 ... INCREMENTAL_EXERCISE.UNIT'BODY has been restored.
88/12/08 17:44:02 +++ directory !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:44:02 ... SUBUNIT_EXERCISE has been restored.
88/12/08 17:44:09 +++ pack_spec !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:44:09 ... SUBUNIT_EXERCISE.LINE'SPEC has been restored.
88/12/08 17:44:15 +++ pack_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:44:15 ... SUBUNIT_EXERCISE.LINE'BODY has been restored.
88/12/08 17:44:19 +++ func_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:44:19 ... SUBUNIT_EXERCISE.LINE.LOCATE_COMMENT'BODY has been 
88/12/08 17:44:19 ... restored.
88/12/08 17:44:22 +++ func_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:44:22 ... SUBUNIT_EXERCISE.LINE.STRIP_BLANKS'BODY has been 
88/12/08 17:44:22 ... restored.
88/12/08 17:44:28 +++ proc_spec !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:44:28 ... SUBUNIT_EXERCISE.PROGRAM_PROFILE'SPEC has been 
88/12/08 17:44:28 ... restored.
88/12/08 17:44:33 +++ proc_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:44:33 ... SUBUNIT_EXERCISE.PROGRAM_PROFILE'BODY has been 
88/12/08 17:44:33 ... restored.
88/12/08 17:44:38 +++ pack_spec !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:44:38 ... SUBUNIT_EXERCISE.REPORT'SPEC has been restored.
88/12/08 17:44:47 +++ pack_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:44:47 ... SUBUNIT_EXERCISE.REPORT'BODY has been restored.
88/12/08 17:44:49 +++ text !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:44:49 ... TEST_INPUT_1 has been restored.
88/12/08 17:44:53 +++ text !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:44:53 ... TEST_INPUT_2 has been restored.
88/12/08 17:45:00 +++ pack_spec !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:45:00 ... SUBUNIT_EXERCISE.UNIT'SPEC has been restored.
88/12/08 17:45:08 +++ pack_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:45:08 ... SUBUNIT_EXERCISE.UNIT'BODY has been restored.
88/12/08 17:45:14 +++ func_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:45:14 ... SUBUNIT_EXERCISE.UNIT.ANALYZE'BODY has been restored.
88/12/08 17:45:17 +++ proc_spec !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:45:17 ... ELAPSED_TIME_BENCHMARK'SPEC has been restored.
88/12/08 17:45:21 +++ proc_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:45:21 ... ELAPSED_TIME_BENCHMARK'BODY has been restored.
88/12/08 17:45:25 +++ gen_proc !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:45:25 ... GENERIC_BENCHMARK'SPEC has been restored.
88/12/08 17:45:30 +++ proc_body !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:45:30 ... GENERIC_BENCHMARK'BODY has been restored.
88/12/08 17:45:32 +++ directory !USERS.ADVANCED_TEST_1.SOME_TEXT has been 
88/12/08 17:45:32 ... restored.
88/12/08 17:45:35 +++ text !USERS.ADVANCED_TEST_1.SOME_TEXT.DO_NOT_COPY has 
88/12/08 17:45:35 ... been restored.
88/12/08 17:45:38 +++ text !USERS.ADVANCED_TEST_1.SOME_TEXT.FILE_1 has been 
88/12/08 17:45:38 ... restored.
88/12/08 17:45:40 +++ text !USERS.ADVANCED_TEST_1.SOME_TEXT.FILE_2 has been 
88/12/08 17:45:40 ... restored.
88/12/08 17:45:42 +++ world !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE has been 
88/12/08 17:45:42 ... restored.
88/12/08 17:45:48 +++ pack_spec !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:45:48 ... LINE'SPEC has been restored.
88/12/08 17:45:53 +++ pack_body !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:45:53 ... LINE'BODY has been restored.
88/12/08 17:45:56 +++ ada unit !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.LINE.
88/12/08 17:45:56 ... KIND'BODY has been restored.
88/12/08 17:46:00 +++ proc_spec !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:00 ... PROGRAM_PROFILE'SPEC has been restored.
88/12/08 17:46:04 +++ proc_body !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:04 ... PROGRAM_PROFILE'BODY has been restored.
88/12/08 17:46:08 +++ pack_spec !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:08 ... REPORT'SPEC has been restored.
88/12/08 17:46:16 +++ pack_body !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:16 ... REPORT'BODY has been restored.
88/12/08 17:46:21 +++ pack_spec !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:21 ... SYSTEM'SPEC has been restored.
88/12/08 17:46:27 +++ pack_body !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:27 ... SYSTEM'BODY has been restored.
88/12/08 17:46:28 +++ text !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:28 ... TEST_INPUT_1 has been restored.
88/12/08 17:46:31 +++ text !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:31 ... TEST_INPUT_2 has been restored.
88/12/08 17:46:38 !!! Exception (UNDEFINED_SWITCH_NAME) setting switch 
88/12/08 17:46:38 ... Cmvc_Enable_Relocation to False.
88/12/08 17:46:39 +++ switch !USERS.ADVANCED_TEST_1.S_1_SWITCHES has been 
88/12/08 17:46:39 ... restored.
88/12/08 17:46:50 !!! Exception (UNDEFINED_SWITCH_NAME) setting switch 
88/12/08 17:46:50 ... Cmvc_Enable_Relocation to False.
88/12/08 17:46:51 +++ switch !USERS.ADVANCED_TEST_1.S_2_SWITCHES has been 
88/12/08 17:46:51 ... restored.
88/12/08 17:46:59 !!! Exception (UNDEFINED_SWITCH_NAME) setting switch 
88/12/08 17:46:59 ... Cmvc_Enable_Relocation to False.
88/12/08 17:47:00 +++ switch !USERS.ADVANCED_TEST_1.S_3_SWITCHES has been 
88/12/08 17:47:00 ... restored.
88/12/08 17:47:03 +++ text !USERS.ADVANCED_TEST_1.FACIT_MACROS has been 
88/12/08 17:47:03 ... restored.
88/12/08 17:47:06 +++ text !USERS.ADVANCED_TEST_1.INDIRECT_FILE has been 
88/12/08 17:47:06 ... restored.
88/12/08 17:47:11 +++ proc_spec !USERS.ADVANCED_TEST_1.LOGIN'SPEC has been 
88/12/08 17:47:11 ... restored.
88/12/08 17:47:16 +++ proc_body !USERS.ADVANCED_TEST_1.LOGIN'BODY has been 
88/12/08 17:47:16 ... restored.
88/12/08 17:47:18 +++ text !USERS.ADVANCED_TEST_1.RATIONAL_MACROS has been 
88/12/08 17:47:18 ... restored.
88/12/08 17:47:21 +++ text !USERS.ADVANCED_TEST_1.
88/12/08 17:47:21 ... THIS_IS_A_DELTA1_REV1_TRAINING_USER has been restored.
88/12/08 17:47:21 --- restoring links for !USERS.ADVANCED_TEST_1.
88/12/08 17:47:23 --- restoring links for !USERS.ADVANCED_TEST_1.ACL_WORLD.
88/12/08 17:47:27 --- restoring links for !USERS.ADVANCED_TEST_1.DEBUGGING.
88/12/08 17:47:29 --- restoring links for !USERS.ADVANCED_TEST_1.EXPERIMENT.
88/12/08 17:47:32 --- restoring links for !USERS.ADVANCED_TEST_1.
88/12/08 17:47:32 ... INCREMENTAL_EXERCISE.
88/12/08 17:47:47 --- restoring links for !USERS.ADVANCED_TEST_1.
88/12/08 17:47:47 ... MENU_EXERCISES.
88/12/08 17:48:05 !!! can't restore link: DOCUMENT_BUILDER=>!COMMANDS.
88/12/08 17:48:05 ... DOCUMENT_BUILDER'SPEC in world !USERS.ADVANCED_TEST_1.
88/12/08 17:48:05 ... MENU_EXERCISES (UNDEFINED_SOURCE_NAME).
88/12/08 17:48:15 --- restoring links for !USERS.ADVANCED_TEST_1.
88/12/08 17:48:15 ... PROGRAM_PROFILE_SYSTEM.
88/12/08 17:48:17 --- restoring links for !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:48:31 !!! can't restore link: DOCUMENT_BUILDER=>!COMMANDS.
88/12/08 17:48:31 ... DOCUMENT_BUILDER'SPEC in world !USERS.ADVANCED_TEST_1.
88/12/08 17:48:31 ... SOLUTIONS (UNDEFINED_SOURCE_NAME).
88/12/08 17:48:42 --- restoring links for !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:48:42 ... INCREMENTAL_EXERCISE.
88/12/08 17:48:58 --- restoring links for !USERS.ADVANCED_TEST_1.
88/12/08 17:48:58 ... SUBUNIT_EXERCISE.
88/12/08 17:49:11 --- promoting ada units.
88/12/08 17:49:29 +++ !USERS.ADVANCED_TEST_1.DEBUGGING.BUFFER'SPEC has been 
88/12/08 17:49:29 ... INSTALLED.
88/12/08 17:49:40 +++ !USERS.ADVANCED_TEST_1.DEBUGGING.BUFFER'BODY has been 
88/12/08 17:49:40 ... INSTALLED.
88/12/08 17:49:41 +++ !USERS.ADVANCED_TEST_1.DEBUGGING.
88/12/08 17:49:41 ... PRODUCER_CONSUMER'SPEC has been INSTALLED.
88/12/08 17:49:57 +++ !USERS.ADVANCED_TEST_1.DEBUGGING.
88/12/08 17:49:57 ... PRODUCER_CONSUMER'BODY has been INSTALLED.
88/12/08 17:50:02 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.LINE'SPEC has been 
88/12/08 17:50:02 ... INSTALLED.
88/12/08 17:50:10 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.LINE'BODY has been 
88/12/08 17:50:10 ... INSTALLED.
88/12/08 17:50:15 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.LINE_COPY'SPEC has 
88/12/08 17:50:15 ... been INSTALLED.
88/12/08 17:50:23 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.LINE_COPY'BODY has 
88/12/08 17:50:23 ... been INSTALLED.
88/12/08 17:50:25 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.
88/12/08 17:50:25 ... OVERLOADED_DECLARATIONS'SPEC has been INSTALLED.
88/12/08 17:50:29 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.UNIT'SPEC has been 
88/12/08 17:50:29 ... INSTALLED.
88/12/08 17:50:31 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.REPORT'SPEC has been 
88/12/08 17:50:31 ... INSTALLED.
88/12/08 17:50:33 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.PROGRAM_PROFILE'SPEC 
88/12/08 17:50:33 ... has been INSTALLED.
88/12/08 17:50:36 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.PROGRAM_PROFILE'BODY 
88/12/08 17:50:36 ... has been INSTALLED.
88/12/08 17:50:45 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.REPORT'BODY has been 
88/12/08 17:50:45 ... INSTALLED.
88/12/08 17:50:53 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.UNIT'BODY has been 
88/12/08 17:50:53 ... INSTALLED.
88/12/08 17:50:57 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.LINE'SPEC 
88/12/08 17:50:57 ... has been INSTALLED.
88/12/08 17:51:06 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.LINE'BODY 
88/12/08 17:51:06 ... has been INSTALLED.
88/12/08 17:51:11 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.UNIT'SPEC 
88/12/08 17:51:11 ... has been INSTALLED.
88/12/08 17:51:14 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:51:14 ... REPORT'SPEC has been INSTALLED.
88/12/08 17:51:17 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:51:17 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 17:51:20 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:51:20 ... PROGRAM_PROFILE'BODY has been INSTALLED.
88/12/08 17:51:29 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:51:29 ... REPORT'BODY has been INSTALLED.
88/12/08 17:51:39 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.UNIT'BODY 
88/12/08 17:51:39 ... has been INSTALLED.
88/12/08 17:51:41 +++ !USERS.ADVANCED_TEST_1.MENU_EXERCISES.MAIN'SPEC has 
88/12/08 17:51:41 ... been INSTALLED.
88/12/08 17:51:47 +++ !USERS.ADVANCED_TEST_1.MENU_EXERCISES.MESSAGE_IO'SPEC 
88/12/08 17:51:47 ... has been INSTALLED.
88/12/08 17:51:52 +++ !USERS.ADVANCED_TEST_1.MENU_EXERCISES.PROCESS'SPEC has 
88/12/08 17:51:52 ... been INSTALLED.
88/12/08 17:51:56 +++ !USERS.ADVANCED_TEST_1.MENU_EXERCISES.MAIN'BODY has 
88/12/08 17:51:56 ... been INSTALLED.
88/12/08 17:52:02 +++ !USERS.ADVANCED_TEST_1.MENU_EXERCISES.PROCESS'BODY has 
88/12/08 17:52:02 ... been INSTALLED.
88/12/08 17:52:06 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:52:06 ... LINE'SPEC has been INSTALLED.
88/12/08 17:52:14 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:52:14 ... LINE'BODY has been INSTALLED.
88/12/08 17:52:16 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:52:16 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 17:52:21 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:52:21 ... UNIT'SPEC has been INSTALLED.
88/12/08 17:52:24 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:52:24 ... REPORT'SPEC has been INSTALLED.
88/12/08 17:52:26 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:52:26 ... PROGRAM_PROFILE'BODY has been INSTALLED.
88/12/08 17:52:37 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:52:37 ... REPORT'BODY has been INSTALLED.
88/12/08 17:52:39 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:52:39 ... TEST_DRIVER1'SPEC has been INSTALLED.
88/12/08 17:52:47 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:52:47 ... TEST_DRIVER1'BODY has been INSTALLED.
88/12/08 17:52:56 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:52:56 ... UNIT'BODY has been INSTALLED.
88/12/08 17:53:03 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:53:03 ... LINE'SPEC has been INSTALLED.
88/12/08 17:53:09 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:53:09 ... LINE'BODY has been INSTALLED.
88/12/08 17:53:12 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:53:12 ... UNIT'SPEC has been INSTALLED.
88/12/08 17:53:14 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:53:14 ... REPORT'SPEC has been INSTALLED.
88/12/08 17:53:15 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:53:15 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 17:53:17 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:53:17 ... PROGRAM_PROFILE'BODY has been INSTALLED.
88/12/08 17:53:24 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:53:24 ... REPORT'BODY has been INSTALLED.
88/12/08 17:53:31 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:53:31 ... UNIT'BODY has been INSTALLED.
88/12/08 17:53:34 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:53:34 ... LINE'SPEC has been INSTALLED.
88/12/08 17:53:37 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:53:37 ... LINE'BODY has been INSTALLED.
88/12/08 17:53:40 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.LINE.
88/12/08 17:53:40 ... LOCATE_COMMENT'BODY has been INSTALLED.
88/12/08 17:53:42 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.LINE.
88/12/08 17:53:42 ... STRIP_BLANKS'BODY has been INSTALLED.
88/12/08 17:53:45 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:53:45 ... UNIT'SPEC has been INSTALLED.
88/12/08 17:53:47 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:53:47 ... REPORT'SPEC has been INSTALLED.
88/12/08 17:53:49 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:53:49 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 17:53:51 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:53:51 ... PROGRAM_PROFILE'BODY has been INSTALLED.
88/12/08 17:53:57 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:53:57 ... REPORT'BODY has been INSTALLED.
88/12/08 17:54:00 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:54:00 ... UNIT'BODY has been INSTALLED.
88/12/08 17:54:06 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.UNIT.
88/12/08 17:54:06 ... ANALYZE'BODY has been INSTALLED.
88/12/08 17:54:07 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:54:07 ... ELAPSED_TIME_BENCHMARK'SPEC has been INSTALLED.
88/12/08 17:54:12 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:54:12 ... ELAPSED_TIME_BENCHMARK'BODY has been INSTALLED.
88/12/08 17:54:15 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:54:15 ... GENERIC_BENCHMARK'SPEC has been INSTALLED.
88/12/08 17:54:22 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:54:22 ... GENERIC_BENCHMARK'BODY has been INSTALLED.
88/12/08 17:54:26 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.LINE'SPEC has 
88/12/08 17:54:26 ... been INSTALLED.
88/12/08 17:54:32 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.SYSTEM'SPEC 
88/12/08 17:54:32 ... has been INSTALLED.
88/12/08 17:54:34 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.REPORT'SPEC 
88/12/08 17:54:34 ... has been INSTALLED.
88/12/08 17:54:36 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:54:36 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 17:54:39 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:54:39 ... PROGRAM_PROFILE'BODY has been INSTALLED.
88/12/08 17:54:46 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.REPORT'BODY 
88/12/08 17:54:46 ... has been INSTALLED.
88/12/08 17:54:47 +++ !USERS.ADVANCED_TEST_1.LOGIN'SPEC has been INSTALLED.
88/12/08 17:54:51 +++ !USERS.ADVANCED_TEST_1.LOGIN'BODY has been INSTALLED.
88/12/08 17:54:52 +++  69 units were INSTALLED.
88/12/08 17:55:21 +++ !USERS.ADVANCED_TEST_1.DEBUGGING.BUFFER'SPEC has been 
88/12/08 17:55:21 ... CODED.
88/12/08 17:55:29 +++ !USERS.ADVANCED_TEST_1.DEBUGGING.BUFFER'BODY has been 
88/12/08 17:55:29 ... CODED.
88/12/08 17:55:30 +++ !USERS.ADVANCED_TEST_1.DEBUGGING.
88/12/08 17:55:30 ... PRODUCER_CONSUMER'SPEC has been CODED.
88/12/08 17:55:36 +++ !USERS.ADVANCED_TEST_1.DEBUGGING.
88/12/08 17:55:36 ... PRODUCER_CONSUMER'BODY has been CODED.
88/12/08 17:55:36 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.LINE'SPEC has been 
88/12/08 17:55:36 ... CODED.
88/12/08 17:55:41 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.LINE'BODY has been 
88/12/08 17:55:41 ... CODED.
88/12/08 17:55:42 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.LINE_COPY'SPEC has 
88/12/08 17:55:42 ... been CODED.
88/12/08 17:55:47 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.LINE_COPY'BODY has 
88/12/08 17:55:47 ... been CODED.
88/12/08 17:55:48 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.UNIT'SPEC has been 
88/12/08 17:55:48 ... CODED.
88/12/08 17:55:50 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.REPORT'SPEC has been 
88/12/08 17:55:50 ... CODED.
88/12/08 17:55:52 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.PROGRAM_PROFILE'SPEC 
88/12/08 17:55:52 ... has been CODED.
88/12/08 17:55:55 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.PROGRAM_PROFILE'BODY 
88/12/08 17:55:55 ... has been CODED.
88/12/08 17:56:05 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.REPORT'BODY has been 
88/12/08 17:56:05 ... CODED.
88/12/08 17:56:20 +++ !USERS.ADVANCED_TEST_1.EXPERIMENT.UNIT'BODY has been 
88/12/08 17:56:20 ... CODED.
88/12/08 17:56:23 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.LINE'SPEC 
88/12/08 17:56:23 ... has been CODED.
88/12/08 17:56:30 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.LINE'BODY 
88/12/08 17:56:30 ... has been CODED.
88/12/08 17:56:30 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.UNIT'SPEC 
88/12/08 17:56:30 ... has been CODED.
88/12/08 17:56:31 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:56:31 ... REPORT'SPEC has been CODED.
88/12/08 17:56:32 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:56:32 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 17:56:33 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:56:33 ... PROGRAM_PROFILE'BODY has been CODED.
88/12/08 17:56:38 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.
88/12/08 17:56:38 ... REPORT'BODY has been CODED.
88/12/08 17:56:43 !!! Prompt encountered on statement list.
88/12/08 17:56:43 !!! !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.UNIT'BODY 
88/12/08 17:56:43 ... was CODED with  1 warnings.
88/12/08 17:56:43 +++ !USERS.ADVANCED_TEST_1.INCREMENTAL_EXERCISE.UNIT'BODY 
88/12/08 17:56:43 ... has been CODED.
88/12/08 17:56:44 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:56:44 ... LINE'SPEC has been CODED.
88/12/08 17:56:47 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:56:47 ... LINE'BODY has been CODED.
88/12/08 17:56:48 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:56:48 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 17:56:49 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:56:49 ... UNIT'SPEC has been CODED.
88/12/08 17:56:49 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:56:49 ... REPORT'SPEC has been CODED.
88/12/08 17:56:51 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:56:51 ... PROGRAM_PROFILE'BODY has been CODED.
88/12/08 17:56:55 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:56:55 ... REPORT'BODY has been CODED.
88/12/08 17:56:55 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:56:55 ... TEST_DRIVER1'SPEC has been CODED.
88/12/08 17:56:58 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:56:58 ... TEST_DRIVER1'BODY has been CODED.
88/12/08 17:57:04 !!! Prompt encountered on statement list.
88/12/08 17:57:04 !!! !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:57:04 ... UNIT'BODY was CODED with  1 warnings.
88/12/08 17:57:04 +++ !USERS.ADVANCED_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:57:04 ... UNIT'BODY has been CODED.
88/12/08 17:57:05 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:57:05 ... LINE'SPEC has been CODED.
88/12/08 17:57:08 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:57:08 ... LINE'BODY has been CODED.
88/12/08 17:57:09 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:57:09 ... UNIT'SPEC has been CODED.
88/12/08 17:57:09 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:57:09 ... REPORT'SPEC has been CODED.
88/12/08 17:57:10 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:57:10 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 17:57:12 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:57:12 ... PROGRAM_PROFILE'BODY has been CODED.
88/12/08 17:57:17 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:57:17 ... REPORT'BODY has been CODED.
88/12/08 17:57:22 !!! Prompt encountered on statement list.
88/12/08 17:57:22 !!! !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:57:22 ... UNIT'BODY was CODED with  1 warnings.
88/12/08 17:57:22 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:57:22 ... UNIT'BODY has been CODED.
88/12/08 17:57:22 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:57:22 ... LINE'SPEC has been CODED.
88/12/08 17:57:26 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:57:26 ... LINE'BODY has been CODED.
88/12/08 17:57:28 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.LINE.
88/12/08 17:57:28 ... LOCATE_COMMENT'BODY has been CODED.
88/12/08 17:57:31 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.LINE.
88/12/08 17:57:31 ... STRIP_BLANKS'BODY has been CODED.
88/12/08 17:57:32 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:57:32 ... UNIT'SPEC has been CODED.
88/12/08 17:57:33 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:57:33 ... REPORT'SPEC has been CODED.
88/12/08 17:57:33 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:57:33 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 17:57:35 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:57:35 ... PROGRAM_PROFILE'BODY has been CODED.
88/12/08 17:57:40 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:57:40 ... REPORT'BODY has been CODED.
88/12/08 17:57:44 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:57:44 ... UNIT'BODY has been CODED.
88/12/08 17:57:54 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.UNIT.
88/12/08 17:57:54 ... ANALYZE'BODY has been CODED.
88/12/08 17:57:54 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:57:54 ... ELAPSED_TIME_BENCHMARK'SPEC has been CODED.
88/12/08 17:57:55 +++ !USERS.ADVANCED_TEST_1.SOLUTIONS.
88/12/08 17:57:55 ... GENERIC_BENCHMARK'SPEC has been CODED.
88/12/08 17:57:55 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.LINE'SPEC has 
88/12/08 17:57:55 ... been CODED.
88/12/08 17:57:56 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.SYSTEM'SPEC 
88/12/08 17:57:56 ... has been CODED.
88/12/08 17:57:56 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.REPORT'SPEC 
88/12/08 17:57:56 ... has been CODED.
88/12/08 17:57:57 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:57:57 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 17:57:59 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:57:59 ... PROGRAM_PROFILE'BODY has been CODED.
88/12/08 17:58:04 +++ !USERS.ADVANCED_TEST_1.SUBUNIT_EXERCISE.REPORT'BODY 
88/12/08 17:58:04 ... has been CODED.
88/12/08 17:58:05 +++ !USERS.ADVANCED_TEST_1.LOGIN'SPEC has been CODED.
88/12/08 17:58:09 +++ !USERS.ADVANCED_TEST_1.LOGIN'BODY has been CODED.
88/12/08 17:58:09 +++  61 units were CODED.
88/12/08 17:58:39 --- 109 objects were restored.
88/12/08 17:58:39 --- [end of Archive.Restore operation].
88/12/08 17:58:39 --- Access_List.Set (To_List => "Network_Public => R", 
88/12/08 17:58:39 ... For_Object => "!Users.Advanced_Test_1.Acl_World");
88/12/08 17:58:39 +++ !USERS.ADVANCED_TEST_1.ACL_WORLD: acl set to 
88/12/08 17:58:39 ... Network_Public => R.
88/12/08 17:58:39 +++ Completed building training user Advanced_test_1.
88/12/08 17:58:39 --- [Finished building training users -- Examine the log].procedure Build_Training_Users (First_User_Number : in Positive := 1;
                                Last_User_Number : in Positive;
                                Username_Prefix : in String := "Pt";
                                Response : in String := "<PROFILE>");  with Access_List;
with Links;
with Archive;
with Debug_Tools;
with Directory_Tools;
with Log;
with Operator;
with Profile;
with String_Utilities;
with Training_Names;
with Pipe;
procedure Build_Training_Users (First_User_Number : in Positive := 1;
                                Last_User_Number : in Positive;
                                Username_Prefix : in String := "Pt";
                                Response : in String := "<PROFILE>") is

    package Naming renames Directory_Tools.Naming;
    package Object renames Directory_Tools.Object;

    Old_Response_Profile : Profile.Response_Profile := Profile.Get;
    Current_Response_Profile : Profile.Response_Profile :=
       Profile.Value (Response);

    function Capitalize (A_String : String) return String
        renames String_Utilities.Capitalize;

    procedure Closing_Message_For_Errors is
    begin
        Log.Put_Line
           ("[Finished building training users -- Error(s) detected]");
        Profile.Set (Old_Response_Profile);
    end Closing_Message_For_Errors;

    function Current_Library (Of_Object : String) return String is
        All_Objects : Object.Iterator := Naming.Resolution (Of_Object);
        An_Object : Object.Handle;
    begin
        An_Object := Object.Value (All_Objects);
        return Naming.Unique_Full_Name (An_Object);
    end Current_Library;

begin
    -- set up the response profile and log the command line
    --
    Profile.Set (Current_Response_Profile);
    Log.Put_Line ("[Build_Training_Users (First_User_Number => " &
                  String_Utilities.Number_To_String (First_User_Number) &
                  ", Last_User_Number => " &
                  String_Utilities.Number_To_String (Last_User_Number) &
                  ", Username_Prefix => """ & Username_Prefix &
                  """, Response => """ & Response & """);]",
                  Profile.Auxiliary_Msg);

    declare
        Context : constant String := Capitalize (Current_Library ("$"));
        Course : constant String :=
           Capitalize (Naming.Simple_Name (Naming.Prefix (Context)));
        Master_Full_Pathname : constant String :=
           Capitalize ("!Users." & Course & "_Master");

        Fundamentals_Master_Full_Pathname : constant String :=
           Capitalize ("!Users.Fundamentals_Master");

        At_Master_Full_Pathname : constant String :=
           Capitalize ("!Users.Advanced_Topics_Master");

        Ss_Cmvc_Master_Full_Pathname : constant String :=
           Capitalize ("!Users.Subsystems_Cmvc_Master");

        Lost_Keys : Pipe.Handle := Pipe.Null_Handle;

    begin
        Operator.Enable_Privileges (Enable => True);

        if Operator.Privileged_Mode /= True then
            Log.Put_Line
               ("You must have operator capability to create training users",
                Profile.Error_Msg);
            Closing_Message_For_Errors;
            return;
        end if;

        if First_User_Number > Last_User_Number then
            Log.Put_Line
               ("The First_User_Number must be 'less than' or 'equal to' the Last_User_Number",
                Profile.Error_Msg);
            Closing_Message_For_Errors;
            return;
        end if;

        for User_Count in First_User_Number .. Last_User_Number loop
            declare  
                User_Number : constant String :=
                   String_Utilities.Number_To_String (User_Count);
                User_Name : constant String :=  
                   Username_Prefix & "_" & User_Number;
                Users_Full_Pathname : constant String :=
                   Capitalize ("!Users." & User_Name);
            begin  
                Operator.Create_User (User => User_Name,
                                      Password => User_Name,
                                      Volume => 0,
                                      Response => "<PROFILE>");
                Links.Add (Source => "!Training.Tools.Start_Training_Scripts",
                           Link => "#",
                           World => Users_Full_Pathname,
                           Response => "<PROFILE>");
                Pipe.Create (Lost_Keys, Pipe.Exclusive,
                             Users_Full_Pathname & ".S_1_Lost_Keys");
                Pipe.Close (Lost_Keys);

                Archive.Restore
                   (Objects => "?",
                    Use_Prefix => Users_Full_Pathname,
                    For_Prefix => Master_Full_Pathname,
                    Options =>  
                       "R1000, PROMOTE, PRIMARY, BECOME_OWNER, WORLD_ACL=(Network_Public => RWCOD), DEFAULT_ACL=(Network_Public => RW), OBJECT_ACL=(Network_Public => RW)",
                    Device => Context,
                    Response => "<PROFILE>");

                Archive.Restore
                   (Objects =>
                       "!Users.Advanced_Topics_Master." &
                          "[Acl_World, Debugging, Experiment, Facit_macros," &
                          "Incremental_exercises, Indirect_File, Menu_Exercises," &
                          "New_Text, Rational_Macros, Solutions, Some_Text," &
                          "Subunit_Exercise, s_2_switches, s_3_switches]",
                    Use_Prefix => Users_Full_Pathname,
                    For_Prefix => At_Master_Full_Pathname,
                    Options =>  
                       "R1000, PROMOTE, PRIMARY, BECOME_OWNER, WORLD_ACL=(Network_Public => RWCOD), DEFAULT_ACL=(Network_Public => RW), OBJECT_ACL=(Network_Public => RW)",
                    Device => Training_Names.Latest_Release_Pathname
                                 ("advanced_topics"),
                    Response => "<PROFILE>");

                Archive.Restore
                   (Objects =>
                       "!Users.Fundamentals_Master." &
                          "[Baseball_System, Debugging.@, Experiment.@, Project_1," &
                          "Pt_Model, Sample_File, Statistics_System]",
                    Use_Prefix => Users_Full_Pathname,
                    For_Prefix => Fundamentals_Master_Full_Pathname,
                    Options =>  
                       "R1000, PROMOTE, PRIMARY, BECOME_OWNER, WORLD_ACL=(Network_Public => RWCOD), DEFAULT_ACL=(Network_Public => RW), OBJECT_ACL=(Network_Public => RW)",
                    Device =>
                       Training_Names.Latest_Release_Pathname ("fundamentals"),
                    Response => "<PROFILE>");

                Archive.Restore
                   (Objects =>
                       "!users.Subsystems_Cmvc_Master." &
                          "[Program_profile_system, Subsystem_application, Subsystem_Solution]",
                    Use_Prefix => Users_Full_Pathname,
                    For_Prefix => Ss_Cmvc_Master_Full_Pathname,
                    Options =>  
                       "R1000, PROMOTE, PRIMARY, BECOME_OWNER, WORLD_ACL=(Network_Public => RWCOD), DEFAULT_ACL=(Network_Public => RW), OBJECT_ACL=(Network_Public => RW)",
                    Device => Training_Names.Latest_Release_Pathname
                                 ("subsystems_cmvc"),
                    Response => "<PROFILE>");

                Links.Delete (Link => "Text_Io", World => Users_Full_Pathname);

                Access_List.Set
                   (To_List => "Network_Public => R",
                    For_Object => Users_Full_Pathname & ".Acl_World",
                    Response => "<PROFILE>");

                Log.Put_Line ("Completed building training user " & User_Name,
                              Profile.Positive_Msg);
            end;  
        end loop;

        Log.Put_Line ("[Finished building training users -- Examine the log]");
        Profile.Set (Old_Response_Profile);
    end;

exception
    when others =>
        Log.Put_Line ("Encountered an unexpected exception: " &
                      Debug_Tools.Get_Exception_Name, Profile.Exception_Msg);
        Closing_Message_For_Errors;


end Build_Training_Users;                           COURSE PREPARATION NOTES
                           ========================

COURSE NAME: Basic_Product_Training

RELEASE: Delta1_Rev1

LOCATION: !Training.Software_Releases.Basic_Product_Training.Delta1_Rev1


CONTENTS:

This library contains the course preparation instructions, the software
used to create a set of training user accounts and the archived software
for the Delta1_Rev1 release of the Basic_Product_Training training course.

This training user is a combination of the software for Fundamentals,
Advanaced Topics, and Subsystems and CMVC.  It is intended for
implementation plans that would like to combined various sections of
each course into a single class.

PREPARING TO PRESENT A COURSE:

1. Follow the instructions in "!Training.Notes.Instructor_Notes".

2. Ensure that the user accounts and worlds you want to create do not exist.

3. Create the training user worlds -- execute the "Build_Training_Users"
   procedure in "!Training.Software_Releases.Basic_Product_Training.Delta1_Rev1"
   to create the desired training users.

   NOTES:

    - To create a set of training accounts for this release (Delta1_Rev1),
      the "Build_Training_Users" procedure must be executed:

         a) by a user with operator capability

         b) within "!Training.Software_Releases.Basic_Product_Training.Delta1_Rev1"

    - As required, supply the "First_User_Number", the "Last_User_Number" and
      the "Username_Prefix" arguments to define the series of training user
      accounts to be created -- e.g. entering "1", "3" and "Learning",
      respectively, will create the following training user accounts:
      "Learning_1", "Learning_2" and "Learning_3".

    - The password for a training user account is the same as the user name
      (e.g. "Learning_1", "Learning_2" and "Learning_3" in the example above).

4. Subject to the note above, check the log to ensure that the training users
   have been created correctly.procedure Login;with Common;
with Editor;
with Links;
with String_Utilities;
with System_Utilities;
with What;

procedure Login is

    function Is_Session (Name : String) return Boolean is
    begin
        return String_Utilities.Equal
                  (Name, System_Utilities.Session_Name, Ignore_Case => True);
    end Is_Session;

begin
    if Is_Session ("S_1") then
        What.Home_Library;
        Common.Create_Command;
        Common.Definition ("Experiment");
        for I in 1 .. 2 loop
            Editor.Window.Previous;
        end loop;
    else
        null;
    end if;

    -- ensure the existence of links required by Key.Define(s)
    --
    -- (using the Key.Define approach [rather than <Terminal_Name>_Commands
    --  files] removes the "hard" dependency on Start_Training_Scripts and
    --  allows it to be updated without affecting existing training users)
    --
    Links.Add (Source => "!Training.Tools.Start_Training_Scripts",
               Link => "#",
               World => "$$",
               Response => "<NIL>");

    Links.Add (Source => "!Training.Tools.Return_to_menu",
               Link => "#",
               World => "$$",
               Response => "<NIL>");

    Links.Add (Source => "!Training.Tools.Select_Script",
               Link => "#",
               World => "$$",
               Response => "<NIL>");

    Links.Add (Source => "!Training.Tools.Step_Forward",
               Link => "#",
               World => "$$",
               Response => "<NIL>");

    Links.Add (Source => "!Training.Tools.Step_Backward",
               Link => "#",
               World => "$$",
               Response => "<NIL>");

    -- deterimine the terminal type then bind the keys
    -- necessary to start the training scripts
    -- (other "key bindings" performed by the scripts & Lost_Keys pipe)
    --
    if String_Utilities.Equal  
          (System_Utilities.Terminal_Type, "Rational", True) then

        Editor.Key.Define
           (Key_Name => "F1",
            Command_Name =>
               "Start_Training_Scripts (Course_Name => ""Fundamentals"", Release_Name => ""<LATEST RELEASE>"");",
            Prompt => False);

        Editor.Key.Define (Key_Name => "F2",
                           Command_Name => "Return_To_menu;",
                           Prompt => False);

        Editor.Key.Define (Key_Name => "F5",
                           Command_Name => "Select_script;",
                           Prompt => False);

        Editor.Key.Define (Key_Name => "F4",
                           Command_Name => "Step_Backward;",
                           Prompt => False);

--        Editor.Key.Define (Key_Name => "F3",
--                           Command_Name => "Step_Forward;",
--                           Prompt => False);
--
-- The script tools require F3 to be unbound in the system-wide keymap to
-- work.  The unbound key is transferred to the script tools be the editor.
-- If F3 is bound in the system keymap, the script tools will no step forward,
-- but will execute the command bound to F3.
-- You can uncomment this command to get step forward to work although it
-- may be with lower performance.  The other option is to remove the system
-- binding to F3 and reboot the machine.

    elsif String_Utilities.Equal  
             (System_Utilities.Terminal_Type, "Facit", True) then

        Editor.Key.Define
           (Key_Name => "Esc_S_F1",
            Command_Name =>
               "Start_Training_Scripts (Course_Name => ""Fundamentals"", Release_Name => ""<LATEST RELEASE>"");",
            Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_S_F2",
                           Command_Name => "Return_To_menu;",
                           Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_S_F5",
                           Command_Name => "Select_script;",
                           Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_S_F4",
                           Command_Name => "Step_Backward;",
                           Prompt => False);

--        Editor.Key.Define (Key_Name => "Esc_S_F3",
--                           Command_Name => "Step_Forward;",
--                           Prompt => False);
-- The script tools require Esc_S_F3 to be unbound in the system-wide keymap to
-- work.  The unbound key is transferred to the script tools be the editor.
-- If Esc_S_F3 is bound in the system keymap, the script tools will no step forward,
-- but will execute the command bound to Esc_S_F3.
-- You can uncomment this command to get step forward to work although it
-- may be with lower performance.  The other option is to remove the system
-- binding to Esc_S_F3 and reboot the machine.

    elsif String_Utilities.Equal  
             (System_Utilities.Terminal_Type, "VT100", True) then

        Editor.Key.Define
           (Key_Name => "Esc_1",
            Command_Name =>
               "Start_Training_Scripts (Course_Name => ""Fundamentals"", Release_Name => ""<LATEST RELEASE>"");",
            Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_2",
                           Command_Name => "Return_To_menu;",
                           Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_5",
                           Command_Name => "Select_script;",
                           Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_4",
                           Command_Name => "Step_Backward;",
                           Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_3",  
                           Command_Name => "Step_Forward;",
                           Prompt => False);

    else

        Editor.Key.Define
           (Key_Name => "Esc_1",
            Command_Name =>
               "Start_Training_Scripts (Course_Name => ""Fundamentals"", Release_Name => ""<LATEST RELEASE>"");",
            Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_2",
                           Command_Name => "Return_To_menu;",
                           Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_5",
                           Command_Name => "Select_script;",
                           Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_4",
                           Command_Name => "Step_Backward;",
                           Prompt => False);

        Editor.Key.Define (Key_Name => "Esc_3",  
                           Command_Name => "Step_Forward;",
                           Prompt => False);

    end if;

end Login;*** 461 ***
!USERS.BASIC_PRODUCT_TRAINING_MASTER
!USERS.BASIC_PRODUCT_TRAINING_MASTER
U||| 8/23/88 17:03:43|WORLD|||
ABASIC_PRODUCT_TRAINING_MASTER=>RCOD,NETWORK_PUBLIC=>RCO|DBASIC_PRODUCT_TRAINING_MASTER=>RW,NETWORK_PUBLIC=>RW|TR1000|
 0
!USERS.BASIC_PRODUCT_TRAINING_MASTER.S_1_SWITCHES
I||| 8/22/88 20:33:51|SWITCH|||
ABASIC_PRODUCT_TRAINING_MASTER=>RW,NETWORK_PUBLIC=>RW|
Profile.Log_Diagnostic_Msgs
FALSE
Profile.Remote_Passwords
<NIL>
Session.Debug_Include_Packages
False
Session.Cmvc_Show_Add_Date
True
Session.Job_Name_Separator
" % "
Session.Prompt_Delimiters
"""'"
Session.Image_Fill_Mode
False
Session.Debug_Stack_Start
1
Session.Debug_History_Count
10
Session.Debug_Save_Exceptions
False
Session.Text_Top_Stripe
"----------------------------------------------------------------------------"
Profile.Log_Exception_Msgs
TRUE
Session.Cmvc_Configuration_Extent
0
Session.Library_Show_Subunits
True
Session.Library_Misc_Show_Unit_State
True
Session.Window_Command_Size
2
Session.Image_Tab_Stops
""
Session.Debug_Put_Locals
False
Session.Library_Show_Deleted_Versions
False
Session.Library_Misc_Show_Size
True
Session.Library_Misc_Show_Volume
True
Session.Beep_On_Interrupt
True
Session.Image_Insert_Mode
True
Session.Debug_Delete_Temporary_Breaks
False
Session.Cmvc_Show_Field_Max_Index
False
Session.Window_Scroll_Overlap
20
Profile.Log_Position_Msgs
TRUE
Profile.Log_Note_Msgs
TRUE
Session.Debug_Display_Level
3
Session.Debug_Optimize_Generic_History
True
Session.Debug_Addresses
False
Session.Cmvc_Show_Add_Time
True
Session.Cmvc_Show_Edit_Info
False
Session.Job_Context_First
True
Session.Default_Job_Page_Limit
8000
Profile.Reaction
PERSEVERE
Session.Debug_History_Start
10
Session.Debug_History_Entries
1000
Session.Debug_Element_Count
25
Session.Debug_Freeze_Tasks
False
Session.Cmvc_Break_Long_Lines
True
Session.Mail_Multiple_Message_Windows
False
Session.Cmvc_Show_Hidden_Fields
False
Session.Mail_Send_Empty_Messages
True
Session.Library_Std_Show_Class
False
Session.Key_Directory
""
Session.Search_Preserve_Case
False
Session.Screen_Dump_File
"SCREEN_DUMP"
Session.Cmvc_Show_Display_Position
False
Session.Cmvc_Show_Version_Number
False
Session.Library_Line_Length
80
Session.Text_Header
True
Session.Window_Shift_Overlap
80
Profile.Log_Prefix_2
HR_MN_SC
Session.Debug_Declaration_Display
True
Session.Dependents_Show_Unit_State
False
Session.Library_Shorten_Unit_State
True
Session.Library_Lazy_Realignment
True
Profile.Log_Prefix_3
SYMBOLS
Session.Debug_Display_Creation
False
Session.Cmvc_Indentation
2
Session.Library_Break_Long_Lines
True
Session.Debug_Echo_Commands
True
Session.Cmvc_Shorten_Name
True
Session.Text_Convert_Tabs
True
Session.Text_Print_Name
True
Session.Window_Message_Life
2
Profile.Log_Prefix_1
YR_MN_DY
Session.Debug_Require_Debug_Off
False
Session.Dependents_Show_Library
True
Session.Notify_Warnings
True
Session.Library_Misc_Show_Frozen
True
Session.Library_Std_Show_Unit_State
False
Session.Debug_Break_At_Creation
False
Session.Beep_On_Errors
True
Profile.Log_Negative_Msgs
TRUE
Profile.Log_Positive_Msgs
TRUE
Session.Image_Fill_Prefix
""
Session.Debug_Stack_Count
10
Profile.Log_Error_Msgs
TRUE
Session.Cmvc_Show_Retention
False
Session.Library_Capitalize
True
Session.Cursor_Top_Offset
33
Session.Window_Have_Sides
False
Profile.Log_Warning_Msgs
TRUE
Session.Cmvc_Capitalize
True
Session.Mail_Position_Cursor_Unread
True
Session.Text_Print_Time
True
Session.Window_Frames
0
Profile.Log_File
USE_OUTPUT
Profile.Log_Sharp_Msgs
TRUE
Cmvc.Default_Venture
<>
Session.Image_Fill_Column
72
Session.Cmvc_Show_Deleted_Versions
False
Session.Mail_Move_Cursor_On_Delete
True
Session.Library_Misc_Show_Edit_Info
True
Session.Cursor_Right_Offset
33
Session.Cursor_Transpose_Moves
False
Session.Cmvc_Show_All_Default_Orders
False
Session.Library_Shorten_Names
True
Session.Window_Is_Staggered
True
Profile.Log_Dollar_Msgs
TRUE
Session.Debug_Interpret_Control_Words
False
Session.Cursor_Left_Offset
33
Session.Cmvc_Field_Extent
4
Session.Cmvc_Shorten_Unit_State
False
Session.Image_Fill_Indent
-1
Session.Debug_First_Element
0
Session.Debug_Qualify_Stack_Names
False
Profile.Remote_Sessions
<NIL>
Session.Cmvc_Comment_Extent
4
Session.Window_Message_Size
4
Session.Mail_Cursor_On_Text_In_Reply
False
Session.Text_Print_Number
True
Session.Cmvc_Show_Unit_State
True
Session.Debug_Timestamps
False
Session.Cmvc_Show_All_Default_Lists
False
Session.Job_Context_Length
3
Session.Cmvc_Show_Size
False
Session.Dependents_Delta0_Compatibility
True
Session.Library_Misc_Show_Retention
True
Session.Library_Std_Show_Subclass
True
Session.Library_Uppercase
False
Session.Text_Scroll_Output
True
Session.Text_Bottom_Stripe
"----------------------------------------------------------------------------"
Session.Cursor_Bottom_Offset
33
Profile.Log_Line_Width
 77
Session.Cmvc_Line_Length
80
Session.Mail_Cc_Sender
False
Session.Mail_Default_Sort_Order
3
Session.Library_Indentation
2
Session.Terminal_Line_Speed
9600
Profile.Activity_File
!MACHINE.RELEASE.CURRENT.ACTIVITY
Session.Debug_Machine_Level
False
Session.Library_Misc_Show_Subclass
False
Session.Beep_On_Messages
False
Session.Debug_No_History_Timestamps
True
Session.Cmvc_Uppercase
False
Session.Mail_Include_Text_In_Reply
False
Session.Cmvc_Version_Extent
0
Session.Mail_Retain_Deleted_Messages
True
Session.Text_Reuse_Window
True
Session.Image_Fill_Extra_Space
"!.?"
Session.Debug_Display_Count
10
Session.Library_Show_Deleted_Objects
False
Session.Job_Name_Length
2
Session.Terminal_Padding
10
Session.Cmvc_Show_Users
False
Session.Search_Ignore_Case
True
Session.Cmvc_Show_Deleted_Objects
False
Session.Library_Show_Miscellaneous
False
Session.Debug_Pointer_Level
3
Session.Debug_Permanent_Breakpoints
True
Session.Debug_Kill_Old_Jobs
True
Session.Cmvc_Show_Frozen
False
Session.Library_Show_Standard
True
Session.Cmvc_Enable_Relocation
False
Session.Debug_Memory_Count
3
Session.Library_Show_Version_Number
False
Session.Window_Frames_Startup
0
Session.Word_Breaks
" ""#%&'()*+,-./:;<=>?[]_`{|}~"
Profile.Log_At_Sign_Msgs
TRUE
Profile.Log_Auxiliary_Msgs
TRUE
Session.Cmvc_Show_Field_Type
False
Session.Cmvc_Show_Field_Default
True
Session.Library_Shorten_Subclass
True
Session.Debug_Show_Location
True
Session.Dependents_In_Order_Pathnames
False
Session.Search_Regular_Expr
False


!USERS.BASIC_PRODUCT_TRAINING_MASTER
Y

TRANSPORT_NAME
!TOOLS.NETWORKING.TRANSPORT_NAME'SPEC
TELNET
!COMMANDS.TELNET'SPEC
INTERCHANGE
!TOOLS.NETWORKING.INTERCHANGE'SPEC
FTP_DEFS
!TOOLS.NETWORKING.FTP_DEFS'SPEC
DIANA_OBJECT_EDITOR
!TOOLS.DIANA_OBJECT_EDITOR'SPEC
TRANSFER_GENERIC
!TOOLS.NETWORKING.TRANSFER_GENERIC'SPEC
RPC_PRODUCT
!TOOLS.NETWORKING.RPC_PRODUCT'SPEC
PIPE
!IO.PIPE'SPEC
BYTE_STRING_IO
!TOOLS.NETWORKING.BYTE_STRING_IO'SPEC
BYTE_DEFS
!TOOLS.NETWORKING.BYTE_DEFS'SPEC
ARCHIVE
!COMMANDS.ARCHIVE'SPEC
TAPE_TOOLS
!TOOLS.TAPE_TOOLS'SPEC
TABLE_FORMATTER
!TOOLS.TABLE_FORMATTER'SPEC
QUEUE
!COMMANDS.QUEUE'SPEC
SEQUENTIAL_IO
!IO.SEQUENTIAL_IO'SPEC
DEBUG
!COMMANDS.DEBUG'SPEC
SYSTEM_BACKUP
!COMMANDS.SYSTEM_BACKUP'SPEC
COMMAND
!COMMANDS.COMMAND'SPEC
TERMINAL
!COMMANDS.TERMINAL'SPEC
IO
!IO.IO'SPEC
CONCURRENT_MAP_GENERIC
!TOOLS.CONCURRENT_MAP_GENERIC'SPEC
EDITOR
!COMMANDS.EDITOR'SPEC
DISK_DAEMON
!TOOLS.DISK_DAEMON'SPEC
CMVC_MAINTENANCE
!COMMANDS.CMVC_MAINTENANCE'SPEC
OBJECT_SET
!IO.OBJECT_SET'SPEC
TRANSPORT
!TOOLS.NETWORKING.TRANSPORT'SPEC
TERMINAL_SPECIFIC
!IO.TERMINAL_SPECIFIC'SPEC
STRING_UTILITIES
!TOOLS.STRING_UTILITIES'SPEC
LOG
!COMMANDS.LOG'SPEC
RANDOM
!TOOLS.RANDOM'SPEC
LIBRARY
!COMMANDS.LIBRARY'SPEC
BOUNDED_STRING
!TOOLS.BOUNDED_STRING'SPEC
TEXT
!COMMANDS.TEXT'SPEC
TCP_IP_DUMP
!TOOLS.NETWORKING.TCP_IP_DUMP'SPEC
POLYMORPHIC_SEQUENTIAL_IO
!IO.POLYMORPHIC_SEQUENTIAL_IO'SPEC
DIRECTORY_TOOLS
!TOOLS.DIRECTORY_TOOLS'SPEC
TRANSPORT_ROUTE
!COMMANDS.TRANSPORT_ROUTE'SPEC
TRANSPORT_DEFS
!TOOLS.NETWORKING.TRANSPORT_DEFS'SPEC
TIME_UTILITIES
!TOOLS.TIME_UTILITIES'SPEC
SIMPLE_STATUS
!TOOLS.SIMPLE_STATUS'SPEC
JOB
!COMMANDS.JOB'SPEC
ADA_OBJECT_EDITOR
!TOOLS.ADA_OBJECT_EDITOR'SPEC
PROGRAM
!COMMANDS.PROGRAM'SPEC
OPERATOR
!COMMANDS.OPERATOR'SPEC
ACCESS_LIST
!COMMANDS.ACCESS_LIST'SPEC
POLYMORPHIC_IO
!IO.POLYMORPHIC_IO'SPEC
FTP_SERVER
!TOOLS.NETWORKING.FTP_SERVER'SPEC
ADA
!COMMANDS.ADA'SPEC
ACCESS_LIST_TOOLS
!TOOLS.ACCESS_LIST_TOOLS'SPEC
NETWORK
!COMMANDS.NETWORK'SPEC
TELNET_PROFILE
!TOOLS.NETWORKING.TELNET_PROFILE'SPEC
TABLE_SORT_GENERIC
!TOOLS.TABLE_SORT_GENERIC'SPEC
SWITCHES
!COMMANDS.SWITCHES'SPEC
DOCUMENT_BUILDER
!COMMANDS.DOCUMENT_BUILDER'SPEC
QUEUE_GENERIC
!TOOLS.QUEUE_GENERIC'SPEC
COMPILATION
!COMMANDS.COMPILATION'SPEC
TRANSPORT_STREAM
!TOOLS.NETWORKING.TRANSPORT_STREAM'SPEC
RPC_ACCESS_UTILITIES
!TOOLS.NETWORKING.RPC_ACCESS_UTILITIES'SPEC
SET_GENERIC
!TOOLS.SET_GENERIC'SPEC
HASH
!TOOLS.HASH'SPEC
DIANA_TREE
!COMMANDS.DIANA_TREE'SPEC
TCP_IP_BOOT
!TOOLS.NETWORKING.TCP_IP_BOOT'SPEC
HOST_ID_IO
!TOOLS.NETWORKING.HOST_ID_IO'SPEC
DEBUG_TOOLS
!TOOLS.DEBUG_TOOLS'SPEC
RPC_SERVER
!TOOLS.NETWORKING.RPC_SERVER'SPEC
RPC
!TOOLS.NETWORKING.RPC'SPEC
PARAMETER_PARSER
!TOOLS.PARAMETER_PARSER'SPEC
NETWORK_PRODUCT
!TOOLS.NETWORKING.NETWORK_PRODUCT'SPEC
ACTION_UTILITIES
!COMMANDS.ACTION_UTILITIES'SPEC
WORK_ORDER
!COMMANDS.WORK_ORDER'SPEC
TAPE_SPECIFIC
!IO.TAPE_SPECIFIC'SPEC
TAPE
!COMMANDS.TAPE'SPEC
SYSTEM_UTILITIES
!TOOLS.SYSTEM_UTILITIES'SPEC
LINK_TOOLS
!TOOLS.LINK_TOOLS'SPEC
FILE_UTILITIES
!COMMANDS.FILE_UTILITIES'SPEC
DIRECT_IO
!IO.DIRECT_IO'SPEC
ALLOWS_DEALLOCATION
!TOOLS.ALLOWS_DEALLOCATION'SPEC
TEXT_IO
!IO.TEXT_IO'SPEC
FTP
!COMMANDS.FTP'SPEC
ADA_TEXT
!TOOLS.ADA_TEXT'SPEC
UNBOUNDED_STRING
!TOOLS.UNBOUNDED_STRING'SPEC
TRANSPORT_INTERCHANGE
!TOOLS.NETWORKING.TRANSPORT_INTERCHANGE'SPEC
RPC_CLIENT
!TOOLS.NETWORKING.RPC_CLIENT'SPEC
LIBRARY_OBJECT_EDITOR
!TOOLS.LIBRARY_OBJECT_EDITOR'SPEC
FTP_NAME_MAP
!TOOLS.NETWORKING.FTP_NAME_MAP'SPEC
CALENDAR
!LRM.CALENDAR'SPEC
UNCHECKED_CONVERSION
!LRM.UNCHECKED_CONVERSION'SPEC
LIST_GENERIC
!TOOLS.LIST_GENERIC'SPEC
INTERCHANGE_DEFS
!TOOLS.NETWORKING.INTERCHANGE_DEFS'SPEC
DAEMON
!COMMANDS.DAEMON'SPEC
CMVC
!COMMANDS.CMVC'SPEC
FILE_TRANSFER
!TOOLS.NETWORKING.FILE_TRANSFER'SPEC
MAP_GENERIC
!TOOLS.MAP_GENERIC'SPEC
LOGIN
!USERS.BASIC_PRODUCT_TRAINING_MASTER.LOGIN'SPEC
MAIL
!COMMANDS.MAIL'SPEC
MACHINE_CODE
!LRM.MACHINE_CODE'SPEC
DISK_SPACE
!COMMANDS.DISK_SPACE'SPEC
BIT_OPERATIONS
!TOOLS.BIT_OPERATIONS'SPEC
UNCHECKED_DEALLOCATION
!LRM.UNCHECKED_DEALLOCATION'SPEC
STACK_GENERIC
!TOOLS.STACK_GENERIC'SPEC
UNCHECKED_CONVERSIONS
!TOOLS.UNCHECKED_CONVERSIONS'SPEC
TRANSPORT_SERVER_JOB
!TOOLS.NETWORKING.TRANSPORT_SERVER_JOB'SPEC
FTP_PRODUCT
!TOOLS.NETWORKING.FTP_PRODUCT'SPEC
SEARCH_LIST
!COMMANDS.SEARCH_LIST'SPEC
SCRIPT
!TOOLS.SCRIPT'SPEC
PROFILE
!TOOLS.PROFILE'SPEC
MESSAGE
!COMMANDS.MESSAGE'SPEC
ACTIVITY
!COMMANDS.ACTIVITY'SPEC
WHAT
!COMMANDS.WHAT'SPEC
DEVICE_INDEPENDENT_IO
!IO.DEVICE_INDEPENDENT_IO'SPEC
TELNET_PRODUCT
!TOOLS.NETWORKING.TELNET_PRODUCT'SPEC
IO_EXCEPTIONS
!IO.IO_EXCEPTIONS'SPEC
WINDOW_IO
!IO.WINDOW_IO'SPEC
TRANSPORT_SERVER
!TOOLS.NETWORKING.TRANSPORT_SERVER'SPEC
SYSTEM
!LRM.SYSTEM'SPEC
STRING_TABLE
!TOOLS.STRING_TABLE'SPEC
STRING_MAP_GENERIC
!TOOLS.STRING_MAP_GENERIC'SPEC
SCHEDULER
!COMMANDS.SCHEDULER'SPEC
OBJECT_EDITOR
!TOOLS.OBJECT_EDITOR'SPEC
LINKS
!COMMANDS.LINKS'SPEC
FTP_PROFILE
!TOOLS.NETWORKING.FTP_PROFILE'SPEC
COMMON
!COMMANDS.COMMON'SPEC


!USERS.BASIC_PRODUCT_TRAINING_MASTER.LOGIN'SPEC
V|-16|4| 8/09/88 14:22:52|PROCEDURE_SPEC|||
ABASIC_PRODUCT_TRAINING_MASTER=>RW,NETWORK_PUBLIC=>RW|
!USERS.BASIC_PRODUCT_TRAINING_MASTER.LOGIN'BODY
B16|-6557|4| 8/23/88 17:00:06|PROCEDURE_BODY|||
ABASIC_PRODUCT_TRAINING_MASTER=>RW,NETWORK_PUBLIC=>RW|
!USERS.BASIC_PRODUCT_TRAINING_MASTER.THIS_IS_A_DELTA1_REV1_TRAINING_USER
F6573||| 8/23/88 17:03:43|TEXT|||
ABASIC_PRODUCT_TRAINING_MASTER=>RW,NETWORK_PUBLIC=>RW|88/12/08 17:33:23 ::: [Build_Training_Users (First_User_Number => 1, 
88/12/08 17:33:23 ... Last_User_Number => 1, Username_Prefix => "basic_test",
88/12/08 17:33:23 ...  Response => "<PROFILE>");].
88/12/08 17:33:54 --- [Archive.Restore rev 464, objects => "?", use_prefix 
88/12/08 17:33:54 ... => "!Users.Basic_Test_1", for_prefix => "!Users.
88/12/08 17:33:54 ... Basic_Product_Training_Master", options => "R1000, 
88/12/08 17:33:54 ... PROMOTE, PRIMARY, BECOME_OWNER, 
88/12/08 17:33:54 ... WORLD_ACL=(Network_Public => RWCOD), 
88/12/08 17:33:54 ... DEFAULT_ACL=(Network_Public => RW), 
88/12/08 17:33:54 ... OBJECT_ACL=(Network_Public => RW)", device => 
88/12/08 17:33:54 ... "!Training.Software_Releases.Basic_Product_Training.
88/12/08 17:33:54 ... Delta1_Rev1", response => "<PROFILE>"].
88/12/08 17:33:56 --- restoring from an archive done with version 461.
88/12/08 17:33:57 +++ world !USERS.BASIC_TEST_1 has been restored using an 
88/12/08 17:33:57 ... existing world.
88/12/08 17:34:14 !!! Exception (UNDEFINED_SWITCH_NAME) setting switch 
88/12/08 17:34:14 ... Cmvc_Enable_Relocation to False.
88/12/08 17:34:14 +++ switch !USERS.BASIC_TEST_1.S_1_SWITCHES has been 
88/12/08 17:34:14 ... restored.
88/12/08 17:34:32 +++ proc_spec !USERS.BASIC_TEST_1.LOGIN'SPEC has been 
88/12/08 17:34:32 ... restored.
88/12/08 17:34:46 +++ proc_body !USERS.BASIC_TEST_1.LOGIN'BODY has been 
88/12/08 17:34:46 ... restored.
88/12/08 17:34:50 +++ text !USERS.BASIC_TEST_1.
88/12/08 17:34:50 ... THIS_IS_A_DELTA1_REV1_TRAINING_USER has been restored.
88/12/08 17:34:51 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 17:35:35 !!! can't restore link: DOCUMENT_BUILDER=>!COMMANDS.
88/12/08 17:35:35 ... DOCUMENT_BUILDER'SPEC in world !USERS.BASIC_TEST_1 
88/12/08 17:35:35 ... (UNDEFINED_SOURCE_NAME).
88/12/08 17:36:18 --- promoting ada units.
88/12/08 17:36:24 +++ !USERS.BASIC_TEST_1.LOGIN'SPEC has been INSTALLED.
88/12/08 17:37:20 +++ !USERS.BASIC_TEST_1.LOGIN'BODY has been INSTALLED.
88/12/08 17:37:22 +++ !USERS.BASIC_TEST_1.LOGIN'SPEC has been CODED.
88/12/08 17:37:44 +++ !USERS.BASIC_TEST_1.LOGIN'BODY has been CODED.
88/12/08 17:37:46 +++  2 units were INSTALLED.
88/12/08 17:37:46 +++  2 units were CODED.
88/12/08 17:37:54 --- 5 objects were restored.
88/12/08 17:37:55 --- [end of Archive.Restore operation].
88/12/08 17:37:55 --- [Archive.Restore rev 464, objects => "!Users.
88/12/08 17:37:55 ... Advanced_Topics_Master.[Acl_World, Debugging, 
88/12/08 17:37:55 ... Experiment, Facit_macros,Incremental_exercises, 
88/12/08 17:37:55 ... Indirect_File, Menu_Exercises,New_Text, 
88/12/08 17:37:55 ... Rational_Macros, Solutions, Some_Text,Subunit_Exercise,
88/12/08 17:37:55 ...  s_2_switches, s_3_switches]", use_prefix => "!Users.
88/12/08 17:37:55 ... Basic_Test_1", for_prefix => "!Users.
88/12/08 17:37:55 ... Advanced_Topics_Master", options => "R1000, PROMOTE, 
88/12/08 17:37:55 ... PRIMARY, BECOME_OWNER, WORLD_ACL=(Network_Public => 
88/12/08 17:37:55 ... RWCOD), DEFAULT_ACL=(Network_Public => RW), 
88/12/08 17:37:55 ... OBJECT_ACL=(Network_Public => RW)", device => 
88/12/08 17:37:55 ... "!Training.Software_Releases.Advanced_Topics.
88/12/08 17:37:55 ... Delta1_Rev1", response => "<PROFILE>"].
88/12/08 17:37:56 --- restoring from an archive done with version 461.
88/12/08 17:38:01 +++ world !USERS.BASIC_TEST_1.ACL_WORLD has been restored.
88/12/08 17:38:09 +++ world !USERS.BASIC_TEST_1.DEBUGGING has been restored.
88/12/08 17:38:30 +++ gen_pack !USERS.BASIC_TEST_1.DEBUGGING.BUFFER'SPEC has 
88/12/08 17:38:30 ... been restored.
88/12/08 17:38:43 +++ pack_body !USERS.BASIC_TEST_1.DEBUGGING.BUFFER'BODY 
88/12/08 17:38:44 ... has been restored.
88/12/08 17:38:53 +++ proc_spec !USERS.BASIC_TEST_1.DEBUGGING.
88/12/08 17:38:53 ... PRODUCER_CONSUMER'SPEC has been restored.
88/12/08 17:39:14 +++ proc_body !USERS.BASIC_TEST_1.DEBUGGING.
88/12/08 17:39:14 ... PRODUCER_CONSUMER'BODY has been restored.
88/12/08 17:39:19 +++ world !USERS.BASIC_TEST_1.EXPERIMENT has been restored.
88/12/08 17:39:31 +++ pack_spec !USERS.BASIC_TEST_1.EXPERIMENT.LINE'SPEC has 
88/12/08 17:39:31 ... been restored.
88/12/08 17:39:47 +++ pack_body !USERS.BASIC_TEST_1.EXPERIMENT.LINE'BODY has 
88/12/08 17:39:47 ... been restored.
88/12/08 17:39:58 +++ pack_spec !USERS.BASIC_TEST_1.EXPERIMENT.
88/12/08 17:39:58 ... LINE_COPY'SPEC has been restored.
88/12/08 17:40:12 +++ pack_body !USERS.BASIC_TEST_1.EXPERIMENT.
88/12/08 17:40:12 ... LINE_COPY'BODY has been restored.
88/12/08 17:40:18 +++ pack_spec !USERS.BASIC_TEST_1.EXPERIMENT.
88/12/08 17:40:18 ... OVERLOADED_DECLARATIONS'SPEC has been restored.
88/12/08 17:40:23 +++ proc_spec !USERS.BASIC_TEST_1.EXPERIMENT.
88/12/08 17:40:23 ... PROGRAM_PROFILE'SPEC has been restored.
88/12/08 17:40:28 +++ proc_body !USERS.BASIC_TEST_1.EXPERIMENT.
88/12/08 17:40:28 ... PROGRAM_PROFILE'BODY has been restored.
88/12/08 17:41:16 +++ pack_spec !USERS.BASIC_TEST_1.EXPERIMENT.REPORT'SPEC 
88/12/08 17:41:16 ... has been restored.
88/12/08 17:41:38 +++ pack_body !USERS.BASIC_TEST_1.EXPERIMENT.REPORT'BODY 
88/12/08 17:41:38 ... has been restored.
88/12/08 17:41:47 +++ text !USERS.BASIC_TEST_1.EXPERIMENT.TEST_INPUT_1 has 
88/12/08 17:41:47 ... been restored.
88/12/08 17:41:51 +++ text !USERS.BASIC_TEST_1.EXPERIMENT.TEST_INPUT_2 has 
88/12/08 17:41:51 ... been restored.
88/12/08 17:42:02 +++ pack_spec !USERS.BASIC_TEST_1.EXPERIMENT.UNIT'SPEC has 
88/12/08 17:42:02 ... been restored.
88/12/08 17:42:15 +++ pack_body !USERS.BASIC_TEST_1.EXPERIMENT.UNIT'BODY has 
88/12/08 17:42:15 ... been restored.
88/12/08 17:42:19 +++ world !USERS.BASIC_TEST_1.MENU_EXERCISES has been 
88/12/08 17:42:19 ... restored.
88/12/08 17:42:27 +++ proc_spec !USERS.BASIC_TEST_1.MENU_EXERCISES.MAIN'SPEC 
88/12/08 17:42:27 ... has been restored.
88/12/08 17:42:32 +++ proc_body !USERS.BASIC_TEST_1.MENU_EXERCISES.MAIN'BODY 
88/12/08 17:42:32 ... has been restored.
88/12/08 17:42:40 +++ pack_spec !USERS.BASIC_TEST_1.MENU_EXERCISES.
88/12/08 17:42:40 ... MESSAGE_IO'SPEC has been restored.
88/12/08 17:42:43 +++ pack_spec !USERS.BASIC_TEST_1.MENU_EXERCISES.
88/12/08 17:42:43 ... PROCESS'SPEC has been restored.
88/12/08 17:42:50 +++ pack_body !USERS.BASIC_TEST_1.MENU_EXERCISES.
88/12/08 17:42:50 ... PROCESS'BODY has been restored.
88/12/08 17:42:52 +++ directory !USERS.BASIC_TEST_1.NEW_TEXT has been 
88/12/08 17:42:52 ... restored.
88/12/08 17:42:55 +++ text !USERS.BASIC_TEST_1.NEW_TEXT.FILE_1_TEMP has been 
88/12/08 17:42:55 ... restored.
88/12/08 17:42:57 +++ text !USERS.BASIC_TEST_1.NEW_TEXT.FILE_2_TEMP has been 
88/12/08 17:42:57 ... restored.
88/12/08 17:43:00 +++ world !USERS.BASIC_TEST_1.SOLUTIONS has been restored.
88/12/08 17:43:01 +++ world !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:01 ... INCREMENTAL_EXERCISE has been restored.
88/12/08 17:43:08 +++ pack_spec !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:08 ... INCREMENTAL_EXERCISE.LINE'SPEC has been restored.
88/12/08 17:43:14 +++ pack_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:14 ... INCREMENTAL_EXERCISE.LINE'BODY has been restored.
88/12/08 17:43:20 +++ proc_spec !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:20 ... INCREMENTAL_EXERCISE.PROGRAM_PROFILE'SPEC has been 
88/12/08 17:43:20 ... restored.
88/12/08 17:43:23 +++ proc_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:23 ... INCREMENTAL_EXERCISE.PROGRAM_PROFILE'BODY has been 
88/12/08 17:43:23 ... restored.
88/12/08 17:43:27 +++ pack_spec !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:27 ... INCREMENTAL_EXERCISE.REPORT'SPEC has been restored.
88/12/08 17:43:35 +++ pack_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:35 ... INCREMENTAL_EXERCISE.REPORT'BODY has been restored.
88/12/08 17:43:38 +++ text !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:38 ... INCREMENTAL_EXERCISE.TEST_INPUT_1 has been restored.
88/12/08 17:43:43 +++ text !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:43 ... INCREMENTAL_EXERCISE.TEST_INPUT_2 has been restored.
88/12/08 17:43:49 +++ pack_spec !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:49 ... INCREMENTAL_EXERCISE.UNIT'SPEC has been restored.
88/12/08 17:43:58 +++ pack_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:43:58 ... INCREMENTAL_EXERCISE.UNIT'BODY has been restored.
88/12/08 17:44:01 +++ directory !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:44:01 ... SUBUNIT_EXERCISE has been restored.
88/12/08 17:44:08 +++ pack_spec !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:44:08 ... SUBUNIT_EXERCISE.LINE'SPEC has been restored.
88/12/08 17:44:12 +++ pack_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:44:12 ... SUBUNIT_EXERCISE.LINE'BODY has been restored.
88/12/08 17:44:16 +++ func_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:44:16 ... SUBUNIT_EXERCISE.LINE.LOCATE_COMMENT'BODY has been 
88/12/08 17:44:16 ... restored.
88/12/08 17:44:20 +++ func_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:44:20 ... SUBUNIT_EXERCISE.LINE.STRIP_BLANKS'BODY has been 
88/12/08 17:44:20 ... restored.
88/12/08 17:44:27 +++ proc_spec !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:44:27 ... SUBUNIT_EXERCISE.PROGRAM_PROFILE'SPEC has been 
88/12/08 17:44:27 ... restored.
88/12/08 17:44:32 +++ proc_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:44:32 ... SUBUNIT_EXERCISE.PROGRAM_PROFILE'BODY has been 
88/12/08 17:44:32 ... restored.
88/12/08 17:44:37 +++ pack_spec !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:44:37 ... SUBUNIT_EXERCISE.REPORT'SPEC has been restored.
88/12/08 17:44:44 +++ pack_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:44:44 ... SUBUNIT_EXERCISE.REPORT'BODY has been restored.
88/12/08 17:44:47 +++ text !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:44:47 ... TEST_INPUT_1 has been restored.
88/12/08 17:44:50 +++ text !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:44:50 ... TEST_INPUT_2 has been restored.
88/12/08 17:44:55 +++ pack_spec !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:44:55 ... SUBUNIT_EXERCISE.UNIT'SPEC has been restored.
88/12/08 17:45:01 +++ pack_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:45:01 ... SUBUNIT_EXERCISE.UNIT'BODY has been restored.
88/12/08 17:45:08 +++ func_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:45:08 ... SUBUNIT_EXERCISE.UNIT.ANALYZE'BODY has been restored.
88/12/08 17:45:14 +++ proc_spec !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:45:14 ... ELAPSED_TIME_BENCHMARK'SPEC has been restored.
88/12/08 17:45:19 +++ proc_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:45:19 ... ELAPSED_TIME_BENCHMARK'BODY has been restored.
88/12/08 17:45:22 +++ gen_proc !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:45:22 ... GENERIC_BENCHMARK'SPEC has been restored.
88/12/08 17:45:27 +++ proc_body !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:45:27 ... GENERIC_BENCHMARK'BODY has been restored.
88/12/08 17:45:28 +++ directory !USERS.BASIC_TEST_1.SOME_TEXT has been 
88/12/08 17:45:28 ... restored.
88/12/08 17:45:30 +++ text !USERS.BASIC_TEST_1.SOME_TEXT.DO_NOT_COPY has 
88/12/08 17:45:30 ... been restored.
88/12/08 17:45:32 +++ text !USERS.BASIC_TEST_1.SOME_TEXT.FILE_1 has been 
88/12/08 17:45:32 ... restored.
88/12/08 17:45:35 +++ text !USERS.BASIC_TEST_1.SOME_TEXT.FILE_2 has been 
88/12/08 17:45:35 ... restored.
88/12/08 17:45:36 +++ world !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE has been 
88/12/08 17:45:36 ... restored.
88/12/08 17:45:42 +++ pack_spec !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:45:42 ... LINE'SPEC has been restored.
88/12/08 17:45:48 +++ pack_body !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:45:48 ... LINE'BODY has been restored.
88/12/08 17:45:51 +++ ada unit !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.LINE.
88/12/08 17:45:51 ... KIND'BODY has been restored.
88/12/08 17:45:56 +++ proc_spec !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:45:56 ... PROGRAM_PROFILE'SPEC has been restored.
88/12/08 17:45:59 +++ proc_body !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:45:59 ... PROGRAM_PROFILE'BODY has been restored.
88/12/08 17:46:03 +++ pack_spec !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:03 ... REPORT'SPEC has been restored.
88/12/08 17:46:09 +++ pack_body !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:09 ... REPORT'BODY has been restored.
88/12/08 17:46:15 +++ pack_spec !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:15 ... SYSTEM'SPEC has been restored.
88/12/08 17:46:22 +++ pack_body !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:46:22 ... SYSTEM'BODY has been restored.
88/12/08 17:46:24 +++ text !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.TEST_INPUT_1 
88/12/08 17:46:24 ... has been restored.
88/12/08 17:46:28 +++ text !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.TEST_INPUT_2 
88/12/08 17:46:28 ... has been restored.
88/12/08 17:46:38 !!! Exception (UNDEFINED_SWITCH_NAME) setting switch 
88/12/08 17:46:38 ... Cmvc_Enable_Relocation to False.
88/12/08 17:46:39 +++ switch !USERS.BASIC_TEST_1.S_2_SWITCHES has been 
88/12/08 17:46:39 ... restored.
88/12/08 17:46:51 !!! Exception (UNDEFINED_SWITCH_NAME) setting switch 
88/12/08 17:46:51 ... Cmvc_Enable_Relocation to False.
88/12/08 17:46:52 +++ switch !USERS.BASIC_TEST_1.S_3_SWITCHES has been 
88/12/08 17:46:52 ... restored.
88/12/08 17:46:54 +++ text !USERS.BASIC_TEST_1.FACIT_MACROS has been 
88/12/08 17:46:54 ... restored.
88/12/08 17:46:55 +++ text !USERS.BASIC_TEST_1.INDIRECT_FILE has been 
88/12/08 17:46:55 ... restored.
88/12/08 17:46:58 +++ text !USERS.BASIC_TEST_1.RATIONAL_MACROS has been 
88/12/08 17:46:58 ... restored.
88/12/08 17:46:58 --- restoring links for !USERS.BASIC_TEST_1.ACL_WORLD.
88/12/08 17:47:01 --- restoring links for !USERS.BASIC_TEST_1.DEBUGGING.
88/12/08 17:47:03 --- restoring links for !USERS.BASIC_TEST_1.EXPERIMENT.
88/12/08 17:47:06 --- restoring links for !USERS.BASIC_TEST_1.MENU_EXERCISES.
88/12/08 17:47:25 !!! can't restore link: DOCUMENT_BUILDER=>!COMMANDS.
88/12/08 17:47:25 ... DOCUMENT_BUILDER'SPEC in world !USERS.BASIC_TEST_1.
88/12/08 17:47:25 ... MENU_EXERCISES (UNDEFINED_SOURCE_NAME).
88/12/08 17:47:39 --- restoring links for !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:47:59 !!! can't restore link: DOCUMENT_BUILDER=>!COMMANDS.
88/12/08 17:47:59 ... DOCUMENT_BUILDER'SPEC in world !USERS.BASIC_TEST_1.
88/12/08 17:47:59 ... SOLUTIONS (UNDEFINED_SOURCE_NAME).
88/12/08 17:48:12 --- restoring links for !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:48:12 ... INCREMENTAL_EXERCISE.
88/12/08 17:48:26 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 17:48:26 ... SUBUNIT_EXERCISE.
88/12/08 17:48:45 --- promoting ada units.
88/12/08 17:48:59 +++ !USERS.BASIC_TEST_1.DEBUGGING.BUFFER'SPEC has been 
88/12/08 17:48:59 ... INSTALLED.
88/12/08 17:49:14 +++ !USERS.BASIC_TEST_1.DEBUGGING.BUFFER'BODY has been 
88/12/08 17:49:14 ... INSTALLED.
88/12/08 17:49:15 +++ !USERS.BASIC_TEST_1.DEBUGGING.PRODUCER_CONSUMER'SPEC 
88/12/08 17:49:15 ... has been INSTALLED.
88/12/08 17:49:30 +++ !USERS.BASIC_TEST_1.DEBUGGING.PRODUCER_CONSUMER'BODY 
88/12/08 17:49:30 ... has been INSTALLED.
88/12/08 17:49:35 +++ !USERS.BASIC_TEST_1.EXPERIMENT.LINE'SPEC has been 
88/12/08 17:49:35 ... INSTALLED.
88/12/08 17:49:43 +++ !USERS.BASIC_TEST_1.EXPERIMENT.LINE'BODY has been 
88/12/08 17:49:43 ... INSTALLED.
88/12/08 17:49:47 +++ !USERS.BASIC_TEST_1.EXPERIMENT.LINE_COPY'SPEC has been 
88/12/08 17:49:47 ... INSTALLED.
88/12/08 17:49:56 +++ !USERS.BASIC_TEST_1.EXPERIMENT.LINE_COPY'BODY has been 
88/12/08 17:49:56 ... INSTALLED.
88/12/08 17:49:59 +++ !USERS.BASIC_TEST_1.EXPERIMENT.
88/12/08 17:49:59 ... OVERLOADED_DECLARATIONS'SPEC has been INSTALLED.
88/12/08 17:50:02 +++ !USERS.BASIC_TEST_1.EXPERIMENT.UNIT'SPEC has been 
88/12/08 17:50:02 ... INSTALLED.
88/12/08 17:50:05 +++ !USERS.BASIC_TEST_1.EXPERIMENT.REPORT'SPEC has been 
88/12/08 17:50:05 ... INSTALLED.
88/12/08 17:50:07 +++ !USERS.BASIC_TEST_1.EXPERIMENT.PROGRAM_PROFILE'SPEC 
88/12/08 17:50:07 ... has been INSTALLED.
88/12/08 17:50:10 +++ !USERS.BASIC_TEST_1.EXPERIMENT.PROGRAM_PROFILE'BODY 
88/12/08 17:50:10 ... has been INSTALLED.
88/12/08 17:50:21 +++ !USERS.BASIC_TEST_1.EXPERIMENT.REPORT'BODY has been 
88/12/08 17:50:21 ... INSTALLED.
88/12/08 17:50:29 +++ !USERS.BASIC_TEST_1.EXPERIMENT.UNIT'BODY has been 
88/12/08 17:50:29 ... INSTALLED.
88/12/08 17:50:32 +++ !USERS.BASIC_TEST_1.MENU_EXERCISES.MAIN'SPEC has been 
88/12/08 17:50:32 ... INSTALLED.
88/12/08 17:50:39 +++ !USERS.BASIC_TEST_1.MENU_EXERCISES.MESSAGE_IO'SPEC has 
88/12/08 17:50:39 ... been INSTALLED.
88/12/08 17:50:44 +++ !USERS.BASIC_TEST_1.MENU_EXERCISES.PROCESS'SPEC has 
88/12/08 17:50:44 ... been INSTALLED.
88/12/08 17:50:48 +++ !USERS.BASIC_TEST_1.MENU_EXERCISES.MAIN'BODY has been 
88/12/08 17:50:48 ... INSTALLED.
88/12/08 17:50:55 +++ !USERS.BASIC_TEST_1.MENU_EXERCISES.PROCESS'BODY has 
88/12/08 17:50:55 ... been INSTALLED.
88/12/08 17:50:59 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:50:59 ... LINE'SPEC has been INSTALLED.
88/12/08 17:51:05 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:51:05 ... LINE'BODY has been INSTALLED.
88/12/08 17:51:10 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:51:10 ... UNIT'SPEC has been INSTALLED.
88/12/08 17:51:12 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:51:12 ... REPORT'SPEC has been INSTALLED.
88/12/08 17:51:14 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:51:14 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 17:51:16 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:51:16 ... PROGRAM_PROFILE'BODY has been INSTALLED.
88/12/08 17:51:27 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:51:27 ... REPORT'BODY has been INSTALLED.
88/12/08 17:51:37 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:51:37 ... UNIT'BODY has been INSTALLED.
88/12/08 17:51:41 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:51:41 ... LINE'SPEC has been INSTALLED.
88/12/08 17:51:47 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:51:47 ... LINE'BODY has been INSTALLED.
88/12/08 17:51:51 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.LINE.
88/12/08 17:51:51 ... LOCATE_COMMENT'BODY has been INSTALLED.
88/12/08 17:51:54 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.LINE.
88/12/08 17:51:54 ... STRIP_BLANKS'BODY has been INSTALLED.
88/12/08 17:51:59 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:51:59 ... UNIT'SPEC has been INSTALLED.
88/12/08 17:52:00 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:52:00 ... REPORT'SPEC has been INSTALLED.
88/12/08 17:52:02 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:52:02 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 17:52:06 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:52:06 ... PROGRAM_PROFILE'BODY has been INSTALLED.
88/12/08 17:52:15 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:52:15 ... REPORT'BODY has been INSTALLED.
88/12/08 17:52:19 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:52:19 ... UNIT'BODY has been INSTALLED.
88/12/08 17:52:26 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.UNIT.
88/12/08 17:52:26 ... ANALYZE'BODY has been INSTALLED.
88/12/08 17:52:29 +++ !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:52:29 ... ELAPSED_TIME_BENCHMARK'SPEC has been INSTALLED.
88/12/08 17:52:41 +++ !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:52:41 ... ELAPSED_TIME_BENCHMARK'BODY has been INSTALLED.
88/12/08 17:52:45 +++ !USERS.BASIC_TEST_1.SOLUTIONS.GENERIC_BENCHMARK'SPEC 
88/12/08 17:52:45 ... has been INSTALLED.
88/12/08 17:52:54 +++ !USERS.BASIC_TEST_1.SOLUTIONS.GENERIC_BENCHMARK'BODY 
88/12/08 17:52:54 ... has been INSTALLED.
88/12/08 17:52:59 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.LINE'SPEC has 
88/12/08 17:52:59 ... been INSTALLED.
88/12/08 17:53:06 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.SYSTEM'SPEC has 
88/12/08 17:53:06 ... been INSTALLED.
88/12/08 17:53:09 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.REPORT'SPEC has 
88/12/08 17:53:09 ... been INSTALLED.
88/12/08 17:53:11 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:53:11 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 17:53:13 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:53:13 ... PROGRAM_PROFILE'BODY has been INSTALLED.
88/12/08 17:53:19 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.REPORT'BODY has 
88/12/08 17:53:19 ... been INSTALLED.
88/12/08 17:53:19 +++  49 units were INSTALLED.
88/12/08 17:53:33 +++ !USERS.BASIC_TEST_1.DEBUGGING.BUFFER'SPEC has been 
88/12/08 17:53:33 ... CODED.
88/12/08 17:53:38 +++ !USERS.BASIC_TEST_1.DEBUGGING.BUFFER'BODY has been 
88/12/08 17:53:38 ... CODED.
88/12/08 17:53:38 +++ !USERS.BASIC_TEST_1.DEBUGGING.PRODUCER_CONSUMER'SPEC 
88/12/08 17:53:38 ... has been CODED.
88/12/08 17:53:46 +++ !USERS.BASIC_TEST_1.DEBUGGING.PRODUCER_CONSUMER'BODY 
88/12/08 17:53:46 ... has been CODED.
88/12/08 17:53:46 +++ !USERS.BASIC_TEST_1.EXPERIMENT.LINE'SPEC has been 
88/12/08 17:53:46 ... CODED.
88/12/08 17:53:50 +++ !USERS.BASIC_TEST_1.EXPERIMENT.LINE'BODY has been 
88/12/08 17:53:50 ... CODED.
88/12/08 17:53:50 +++ !USERS.BASIC_TEST_1.EXPERIMENT.LINE_COPY'SPEC has been 
88/12/08 17:53:50 ... CODED.
88/12/08 17:53:54 +++ !USERS.BASIC_TEST_1.EXPERIMENT.LINE_COPY'BODY has been 
88/12/08 17:53:54 ... CODED.
88/12/08 17:53:55 +++ !USERS.BASIC_TEST_1.EXPERIMENT.UNIT'SPEC has been 
88/12/08 17:53:55 ... CODED.
88/12/08 17:53:55 +++ !USERS.BASIC_TEST_1.EXPERIMENT.REPORT'SPEC has been 
88/12/08 17:53:55 ... CODED.
88/12/08 17:53:56 +++ !USERS.BASIC_TEST_1.EXPERIMENT.PROGRAM_PROFILE'SPEC 
88/12/08 17:53:56 ... has been CODED.
88/12/08 17:53:57 +++ !USERS.BASIC_TEST_1.EXPERIMENT.PROGRAM_PROFILE'BODY 
88/12/08 17:53:57 ... has been CODED.
88/12/08 17:54:03 +++ !USERS.BASIC_TEST_1.EXPERIMENT.REPORT'BODY has been 
88/12/08 17:54:03 ... CODED.
88/12/08 17:54:07 +++ !USERS.BASIC_TEST_1.EXPERIMENT.UNIT'BODY has been 
88/12/08 17:54:07 ... CODED.
88/12/08 17:54:08 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:54:08 ... LINE'SPEC has been CODED.
88/12/08 17:54:12 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:54:12 ... LINE'BODY has been CODED.
88/12/08 17:54:13 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:54:13 ... UNIT'SPEC has been CODED.
88/12/08 17:54:15 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:54:15 ... REPORT'SPEC has been CODED.
88/12/08 17:54:15 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:54:15 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 17:54:19 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:54:19 ... PROGRAM_PROFILE'BODY has been CODED.
88/12/08 17:54:24 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:54:24 ... REPORT'BODY has been CODED.
88/12/08 17:54:31 !!! Prompt encountered on statement list.
88/12/08 17:54:31 !!! !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:54:31 ... UNIT'BODY was CODED with  1 warnings.
88/12/08 17:54:31 +++ !USERS.BASIC_TEST_1.SOLUTIONS.INCREMENTAL_EXERCISE.
88/12/08 17:54:31 ... UNIT'BODY has been CODED.
88/12/08 17:54:32 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:54:32 ... LINE'SPEC has been CODED.
88/12/08 17:54:34 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:54:34 ... LINE'BODY has been CODED.
88/12/08 17:54:36 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.LINE.
88/12/08 17:54:36 ... LOCATE_COMMENT'BODY has been CODED.
88/12/08 17:54:38 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.LINE.
88/12/08 17:54:38 ... STRIP_BLANKS'BODY has been CODED.
88/12/08 17:54:39 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:54:39 ... UNIT'SPEC has been CODED.
88/12/08 17:54:39 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:54:39 ... REPORT'SPEC has been CODED.
88/12/08 17:54:40 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:54:40 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 17:54:42 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:54:42 ... PROGRAM_PROFILE'BODY has been CODED.
88/12/08 17:54:47 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:54:47 ... REPORT'BODY has been CODED.
88/12/08 17:54:49 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.
88/12/08 17:54:49 ... UNIT'BODY has been CODED.
88/12/08 17:54:53 +++ !USERS.BASIC_TEST_1.SOLUTIONS.SUBUNIT_EXERCISE.UNIT.
88/12/08 17:54:53 ... ANALYZE'BODY has been CODED.
88/12/08 17:54:53 +++ !USERS.BASIC_TEST_1.SOLUTIONS.
88/12/08 17:54:53 ... ELAPSED_TIME_BENCHMARK'SPEC has been CODED.
88/12/08 17:54:54 +++ !USERS.BASIC_TEST_1.SOLUTIONS.GENERIC_BENCHMARK'SPEC 
88/12/08 17:54:54 ... has been CODED.
88/12/08 17:54:55 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.LINE'SPEC has 
88/12/08 17:54:55 ... been CODED.
88/12/08 17:54:56 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.SYSTEM'SPEC has 
88/12/08 17:54:56 ... been CODED.
88/12/08 17:54:56 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.REPORT'SPEC has 
88/12/08 17:54:56 ... been CODED.
88/12/08 17:54:57 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:54:57 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 17:54:59 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.
88/12/08 17:54:59 ... PROGRAM_PROFILE'BODY has been CODED.
88/12/08 17:55:05 +++ !USERS.BASIC_TEST_1.SUBUNIT_EXERCISE.REPORT'BODY has 
88/12/08 17:55:05 ... been CODED.
88/12/08 17:55:05 +++  41 units were CODED.
88/12/08 17:55:34 --- 80 objects were restored.
88/12/08 17:55:34 --- [end of Archive.Restore operation].
88/12/08 17:55:35 --- [Archive.Restore rev 464, objects => "!Users.
88/12/08 17:55:35 ... Fundamentals_Master.[Baseball_System, Debugging.@, 
88/12/08 17:55:35 ... Experiment.@, Project_1,Pt_Model, Sample_File, 
88/12/08 17:55:35 ... Statistics_System]", use_prefix => "!Users.
88/12/08 17:55:35 ... Basic_Test_1", for_prefix => "!Users.
88/12/08 17:55:35 ... Fundamentals_Master", options => "R1000, PROMOTE, 
88/12/08 17:55:35 ... PRIMARY, BECOME_OWNER, WORLD_ACL=(Network_Public => 
88/12/08 17:55:35 ... RWCOD), DEFAULT_ACL=(Network_Public => RW), 
88/12/08 17:55:35 ... OBJECT_ACL=(Network_Public => RW)", device => 
88/12/08 17:55:35 ... "!Training.Software_Releases.Fundamentals.Delta1_Rev1",
88/12/08 17:55:35 ...  response => "<PROFILE>"].
88/12/08 17:55:37 --- restoring from an archive done with version 461.
88/12/08 17:55:40 +++ world !USERS.BASIC_TEST_1.BASEBALL_SYSTEM has been 
88/12/08 17:55:40 ... restored.
88/12/08 17:55:54 +++ pack_spec !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:55:54 ... BASEBALL'SPEC has been restored.
88/12/08 17:56:06 +++ pack_body !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:56:06 ... BASEBALL'BODY has been restored.
88/12/08 17:56:15 +++ proc_spec !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:56:15 ... BASEBALL_STATISTICS'SPEC has been restored.
88/12/08 17:56:28 +++ proc_body !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:56:28 ... BASEBALL_STATISTICS'BODY has been restored.
88/12/08 17:56:33 +++ pack_spec !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:56:33 ... DATA_INPUTTER'SPEC has been restored.
88/12/08 17:56:37 +++ pack_body !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:56:37 ... DATA_INPUTTER'BODY has been restored.
88/12/08 17:56:41 +++ pack_spec !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:56:41 ... FORMATTER'SPEC has been restored.
88/12/08 17:56:45 +++ pack_body !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:56:45 ... FORMATTER'BODY has been restored.
88/12/08 17:56:49 +++ proc_spec !USERS.BASIC_TEST_1.DEBUGGING.
88/12/08 17:56:49 ... DEBUG_FACTORIAL'SPEC has been restored.
88/12/08 17:56:53 +++ proc_body !USERS.BASIC_TEST_1.DEBUGGING.
88/12/08 17:56:53 ... DEBUG_FACTORIAL'BODY has been restored.
88/12/08 17:56:55 +++ text !USERS.BASIC_TEST_1.EXPERIMENT.INPUT1 has been 
88/12/08 17:56:55 ... restored.
88/12/08 17:56:57 +++ text !USERS.BASIC_TEST_1.EXPERIMENT.INPUT2 has been 
88/12/08 17:56:57 ... restored.
88/12/08 17:56:59 +++ world !USERS.BASIC_TEST_1.PROJECT_1 has been restored.
88/12/08 17:57:00 +++ world !USERS.BASIC_TEST_1.PROJECT_1.CODE_GENERATOR has 
88/12/08 17:57:00 ... been restored.
88/12/08 17:57:01 +++ world !USERS.BASIC_TEST_1.PROJECT_1.CODE_GENERATOR.
88/12/08 17:57:01 ... RELEASE_1 has been restored.
88/12/08 17:57:04 +++ text !USERS.BASIC_TEST_1.PROJECT_1.CODE_GENERATOR.
88/12/08 17:57:04 ... RELEASE_1.HISTORY_LOG_07_05_85 has been restored.
88/12/08 17:57:06 +++ text !USERS.BASIC_TEST_1.PROJECT_1.CODE_GENERATOR.
88/12/08 17:57:06 ... RELEASE_1.HISTORY_LOG_07_12_85 has been restored.
88/12/08 17:57:07 +++ world !USERS.BASIC_TEST_1.PROJECT_1.CODE_GENERATOR.
88/12/08 17:57:07 ... RELEASE_2 has been restored.
88/12/08 17:57:08 +++ world !USERS.BASIC_TEST_1.PROJECT_1.CODE_GENERATOR.
88/12/08 17:57:08 ... RELEASE_3 has been restored.
88/12/08 17:57:11 +++ directory !USERS.BASIC_TEST_1.PROJECT_1.
88/12/08 17:57:11 ... DEVELOPMENT_POLICIES has been restored.
88/12/08 17:57:13 +++ text !USERS.BASIC_TEST_1.PROJECT_1.
88/12/08 17:57:13 ... DEVELOPMENT_POLICIES.CODING_POLICY has been restored.
88/12/08 17:57:15 +++ text !USERS.BASIC_TEST_1.PROJECT_1.
88/12/08 17:57:15 ... DEVELOPMENT_POLICIES.CURRENT_UTILITIES has been 
88/12/08 17:57:15 ... restored.
88/12/08 17:57:16 +++ text !USERS.BASIC_TEST_1.PROJECT_1.
88/12/08 17:57:16 ... DEVELOPMENT_POLICIES.HELP_ON_COMMANDS has been 
88/12/08 17:57:16 ... restored.
88/12/08 17:57:19 +++ text !USERS.BASIC_TEST_1.PROJECT_1.
88/12/08 17:57:19 ... DEVELOPMENT_POLICIES.HISTORY_NOTES has been restored.
88/12/08 17:57:20 +++ world !USERS.BASIC_TEST_1.PROJECT_1.LINKER has been 
88/12/08 17:57:20 ... restored.
88/12/08 17:57:21 +++ world !USERS.BASIC_TEST_1.PROJECT_1.LINKER.RELEASE_1 
88/12/08 17:57:21 ... has been restored.
88/12/08 17:57:24 +++ world !USERS.BASIC_TEST_1.PROJECT_1.LINKER.RELEASE_2 
88/12/08 17:57:24 ... has been restored.
88/12/08 17:57:27 +++ text !USERS.BASIC_TEST_1.PROJECT_1.LINKER.RELEASE_2.
88/12/08 17:57:27 ... RELEASE_NOTES has been restored.
88/12/08 17:57:29 +++ world !USERS.BASIC_TEST_1.PT_MODEL has been restored.
88/12/08 17:57:32 +++ world !USERS.BASIC_TEST_1.STATISTICS_SYSTEM has been 
88/12/08 17:57:32 ... restored.
88/12/08 17:57:35 +++ text !USERS.BASIC_TEST_1.SAMPLE_FILE has been restored.
88/12/08 17:57:35 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 17:57:35 ... BASEBALL_SYSTEM.
88/12/08 17:57:36 --- restoring links for !USERS.BASIC_TEST_1.PROJECT_1.
88/12/08 17:57:38 --- restoring links for !USERS.BASIC_TEST_1.PT_MODEL.
88/12/08 17:57:38 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 17:57:38 ... STATISTICS_SYSTEM.
88/12/08 17:57:41 --- promoting ada units.
88/12/08 17:57:58 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.BASEBALL'SPEC has 
88/12/08 17:57:58 ... been INSTALLED.
88/12/08 17:58:06 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.BASEBALL'BODY has 
88/12/08 17:58:06 ... been INSTALLED.
88/12/08 17:58:08 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:58:08 ... BASEBALL_STATISTICS'SPEC has been INSTALLED.
88/12/08 17:58:10 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.DATA_INPUTTER'SPEC 
88/12/08 17:58:10 ... has been INSTALLED.
88/12/08 17:58:12 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.FORMATTER'SPEC has 
88/12/08 17:58:12 ... been INSTALLED.
88/12/08 17:58:15 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:58:15 ... BASEBALL_STATISTICS'BODY has been INSTALLED.
88/12/08 17:58:21 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.DATA_INPUTTER'BODY 
88/12/08 17:58:21 ... has been INSTALLED.
88/12/08 17:58:29 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.FORMATTER'BODY has 
88/12/08 17:58:29 ... been INSTALLED.
88/12/08 17:58:31 +++ !USERS.BASIC_TEST_1.DEBUGGING.DEBUG_FACTORIAL'SPEC has 
88/12/08 17:58:31 ... been INSTALLED.
88/12/08 17:58:34 +++ !USERS.BASIC_TEST_1.DEBUGGING.DEBUG_FACTORIAL'BODY has 
88/12/08 17:58:34 ... been INSTALLED.
88/12/08 17:58:36 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.BASEBALL'SPEC has 
88/12/08 17:58:36 ... been CODED.
88/12/08 17:58:42 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.BASEBALL'BODY has 
88/12/08 17:58:42 ... been CODED.
88/12/08 17:58:43 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:58:43 ... BASEBALL_STATISTICS'SPEC has been CODED.
88/12/08 17:58:44 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.DATA_INPUTTER'SPEC 
88/12/08 17:58:44 ... has been CODED.
88/12/08 17:58:45 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.FORMATTER'SPEC has 
88/12/08 17:58:45 ... been CODED.
88/12/08 17:58:47 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.
88/12/08 17:58:47 ... BASEBALL_STATISTICS'BODY has been CODED.
88/12/08 17:58:50 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.DATA_INPUTTER'BODY 
88/12/08 17:58:50 ... has been CODED.
88/12/08 17:58:52 +++ !USERS.BASIC_TEST_1.BASEBALL_SYSTEM.FORMATTER'BODY has 
88/12/08 17:58:52 ... been CODED.
88/12/08 17:58:53 +++ !USERS.BASIC_TEST_1.DEBUGGING.DEBUG_FACTORIAL'SPEC has 
88/12/08 17:58:53 ... been CODED.
88/12/08 17:58:54 +++ !USERS.BASIC_TEST_1.DEBUGGING.DEBUG_FACTORIAL'BODY has 
88/12/08 17:58:54 ... been CODED.
88/12/08 17:58:54 +++  10 units were INSTALLED.
88/12/08 17:58:54 +++  10 units were CODED.
88/12/08 17:59:00 --- 32 objects were restored.
88/12/08 17:59:00 --- [end of Archive.Restore operation].
88/12/08 17:59:00 --- [Archive.Restore rev 464, objects => "!users.
88/12/08 17:59:00 ... Subsystems_Cmvc_Master.[Program_profile_system, 
88/12/08 17:59:00 ... Subsystem_application, Subsystem_Solution]", 
88/12/08 17:59:00 ... use_prefix => "!Users.Basic_Test_1", for_prefix => 
88/12/08 17:59:00 ... "!Users.Subsystems_Cmvc_Master", options => "R1000, 
88/12/08 17:59:00 ... PROMOTE, PRIMARY, BECOME_OWNER, 
88/12/08 17:59:00 ... WORLD_ACL=(Network_Public => RWCOD), 
88/12/08 17:59:00 ... DEFAULT_ACL=(Network_Public => RW), 
88/12/08 17:59:00 ... OBJECT_ACL=(Network_Public => RW)", device => 
88/12/08 17:59:00 ... "!Training.Software_Releases.Subsystems_Cmvc.
88/12/08 17:59:00 ... Delta1_Rev1", response => "<PROFILE>"].
88/12/08 17:59:00 --- restoring from an archive done with version 450.
88/12/08 17:59:02 +++ world !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM has 
88/12/08 17:59:02 ... been restored.
88/12/08 17:59:04 +++ pack_spec !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:04 ... LINE'SPEC has been restored.
88/12/08 17:59:07 +++ pack_body !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:07 ... LINE'BODY has been restored.
88/12/08 17:59:09 +++ proc_spec !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:09 ... PROGRAM_PROFILE'SPEC has been restored.
88/12/08 17:59:11 +++ proc_body !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:11 ... PROGRAM_PROFILE'BODY has been restored.
88/12/08 17:59:13 +++ pack_spec !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:13 ... REPORT'SPEC has been restored.
88/12/08 17:59:16 +++ pack_body !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:16 ... REPORT'BODY has been restored.
88/12/08 17:59:18 +++ proc_spec !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:18 ... TEST_DRIVER1'SPEC has been restored.
88/12/08 17:59:21 +++ proc_body !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:21 ... TEST_DRIVER1'BODY has been restored.
88/12/08 17:59:22 +++ text !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:22 ... TEST_INPUT_1 has been restored.
88/12/08 17:59:24 +++ text !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:24 ... TEST_INPUT_2 has been restored.
88/12/08 17:59:26 +++ pack_spec !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:26 ... UNIT'SPEC has been restored.
88/12/08 17:59:30 +++ pack_body !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 17:59:30 ... UNIT'BODY has been restored.
88/12/08 17:59:31 +++ world !USERS.BASIC_TEST_1.SUBSYSTEM_APPLICATION has 
88/12/08 17:59:31 ... been restored.
88/12/08 17:59:32 +++ world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION has been 
88/12/08 17:59:32 ... restored.
88/12/08 17:59:33 +++ world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.MODEL has 
88/12/08 17:59:33 ... been restored.
88/12/08 17:59:34 +++ subsystem !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:34 ... REPORT_SUBSYSTEM has been restored.
88/12/08 17:59:35 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:35 ... REPORT_SUBSYSTEM.CONFIGURATIONS has been restored.
88/12/08 17:59:36 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:36 ... REPORT_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE has 
88/12/08 17:59:36 ... been restored.
88/12/08 17:59:37 +++ switch !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:37 ... REPORT_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE.
88/12/08 17:59:37 ... COMPILER_SWITCHES has been restored.
88/12/08 17:59:38 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:38 ... REPORT_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE.EXPORTS 
88/12/08 17:59:38 ... has been restored.
88/12/08 17:59:39 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:39 ... REPORT_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE.IMPORTS 
88/12/08 17:59:39 ... has been restored.
88/12/08 17:59:41 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:41 ... REPORT_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE.MODEL 
88/12/08 17:59:41 ... has been restored.
88/12/08 17:59:42 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:42 ... REPORT_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE.
88/12/08 17:59:42 ... SUBPATH_NAME has been restored.
88/12/08 17:59:43 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:43 ... REPORT_SUBSYSTEM.CONFIGURATIONS.REV1_0_1 has been 
88/12/08 17:59:43 ... restored.
88/12/08 17:59:45 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:45 ... REPORT_SUBSYSTEM.CONFIGURATIONS.REV1_0_SPEC has been 
88/12/08 17:59:45 ... restored.
88/12/08 17:59:46 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:46 ... REPORT_SUBSYSTEM.CONFIGURATIONS.REV1_WORKING has been 
88/12/08 17:59:46 ... restored.
88/12/08 17:59:47 +++ load_view !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:47 ... REPORT_SUBSYSTEM.REV1_0_1 has been restored.
88/12/08 17:59:48 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:48 ... REPORT_SUBSYSTEM.REV1_0_1.EXPORTS has been restored.
88/12/08 17:59:49 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:49 ... REPORT_SUBSYSTEM.REV1_0_1.IMPORTS has been restored.
88/12/08 17:59:50 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:50 ... REPORT_SUBSYSTEM.REV1_0_1.PATHS has been restored.
88/12/08 17:59:51 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:51 ... REPORT_SUBSYSTEM.REV1_0_1.STATE has been restored.
88/12/08 17:59:52 +++ switch !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:52 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.COMPILER_SWITCHES has 
88/12/08 17:59:52 ... been restored.
88/12/08 17:59:52 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:52 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.TOOL_STATE has been 
88/12/08 17:59:52 ... restored.
88/12/08 17:59:54 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:54 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.EXPORTS has been 
88/12/08 17:59:54 ... restored.
88/12/08 17:59:56 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:56 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.IMPORTS has been 
88/12/08 17:59:56 ... restored.
88/12/08 17:59:57 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:57 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.LAST_RELEASE_NAME has 
88/12/08 17:59:57 ... been restored.
88/12/08 17:59:59 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 17:59:59 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.MODEL has been 
88/12/08 17:59:59 ... restored.
88/12/08 18:00:00 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:00 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.MY_CONFIGURATION has 
88/12/08 18:00:00 ... been restored.
88/12/08 18:00:01 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:01 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.REFERENCERS has been 
88/12/08 18:00:01 ... restored.
88/12/08 18:00:03 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:03 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.RELEASE_HISTORY has 
88/12/08 18:00:03 ... been restored.
88/12/08 18:00:04 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:04 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.SUBPATH_NAME has been 
88/12/08 18:00:04 ... restored.
88/12/08 18:00:06 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:06 ... REPORT_SUBSYSTEM.REV1_0_1.STATE.
88/12/08 18:00:06 ... THIS_IS_THE_ROOT_OF_A_VIEW has been restored.
88/12/08 18:00:07 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:07 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS has been restored.
88/12/08 18:00:10 +++ proc_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:10 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.PROGRAM_PROFILE'SPEC 
88/12/08 18:00:10 ... has been restored.
88/12/08 18:00:12 +++ proc_body !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:12 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.PROGRAM_PROFILE'BODY 
88/12/08 18:00:12 ... has been restored.
88/12/08 18:00:14 +++ pack_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:14 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.REPORT'SPEC has been 
88/12/08 18:00:14 ... restored.
88/12/08 18:00:17 +++ pack_body !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:17 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.REPORT'BODY has been 
88/12/08 18:00:17 ... restored.
88/12/08 18:00:18 +++ spec_view !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:18 ... REPORT_SUBSYSTEM.REV1_0_SPEC has been restored.
88/12/08 18:00:20 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:20 ... REPORT_SUBSYSTEM.REV1_0_SPEC.EXPORTS has been restored.
88/12/08 18:00:21 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:21 ... REPORT_SUBSYSTEM.REV1_0_SPEC.IMPORTS has been restored.
88/12/08 18:00:22 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:22 ... REPORT_SUBSYSTEM.REV1_0_SPEC.PATHS has been restored.
88/12/08 18:00:23 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:23 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE has been restored.
88/12/08 18:00:24 +++ switch !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:24 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.COMPILER_SWITCHES 
88/12/08 18:00:24 ... has been restored.
88/12/08 18:00:25 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:25 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.TOOL_STATE has been 
88/12/08 18:00:25 ... restored.
88/12/08 18:00:27 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:27 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.EXPORTS has been 
88/12/08 18:00:27 ... restored.
88/12/08 18:00:28 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:28 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.IMPORTS has been 
88/12/08 18:00:28 ... restored.
88/12/08 18:00:29 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:29 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.LAST_RELEASE_NAME 
88/12/08 18:00:29 ... has been restored.
88/12/08 18:00:30 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:30 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.MODEL has been 
88/12/08 18:00:30 ... restored.
88/12/08 18:00:31 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:31 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.MY_CONFIGURATION 
88/12/08 18:00:31 ... has been restored.
88/12/08 18:00:32 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:32 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.REFERENCERS has 
88/12/08 18:00:32 ... been restored.
88/12/08 18:00:33 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:33 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.RELEASE_HISTORY has 
88/12/08 18:00:33 ... been restored.
88/12/08 18:00:34 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:34 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.SUBPATH_NAME has 
88/12/08 18:00:34 ... been restored.
88/12/08 18:00:35 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:35 ... REPORT_SUBSYSTEM.REV1_0_SPEC.STATE.
88/12/08 18:00:35 ... THIS_IS_THE_ROOT_OF_A_VIEW has been restored.
88/12/08 18:00:36 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:36 ... REPORT_SUBSYSTEM.REV1_0_SPEC.UNITS has been restored.
88/12/08 18:00:39 +++ proc_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:39 ... REPORT_SUBSYSTEM.REV1_0_SPEC.UNITS.
88/12/08 18:00:39 ... PROGRAM_PROFILE'SPEC has been restored.
88/12/08 18:00:40 +++ load_view !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:40 ... REPORT_SUBSYSTEM.REV1_WORKING has been restored.
88/12/08 18:00:41 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:41 ... REPORT_SUBSYSTEM.REV1_WORKING.EXPORTS has been 
88/12/08 18:00:41 ... restored.
88/12/08 18:00:42 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:42 ... REPORT_SUBSYSTEM.REV1_WORKING.IMPORTS has been 
88/12/08 18:00:42 ... restored.
88/12/08 18:00:43 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:43 ... REPORT_SUBSYSTEM.REV1_WORKING.PATHS has been restored.
88/12/08 18:00:45 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:45 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE has been restored.
88/12/08 18:00:46 +++ switch !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:46 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.COMPILER_SWITCHES 
88/12/08 18:00:46 ... has been restored.
88/12/08 18:00:47 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:47 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.TOOL_STATE has 
88/12/08 18:00:47 ... been restored.
88/12/08 18:00:49 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:49 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.EXPORTS has been 
88/12/08 18:00:49 ... restored.
88/12/08 18:00:50 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:50 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.IMPORTS has been 
88/12/08 18:00:50 ... restored.
88/12/08 18:00:51 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:51 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.LAST_RELEASE_NAME 
88/12/08 18:00:51 ... has been restored.
88/12/08 18:00:52 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:52 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.MODEL has been 
88/12/08 18:00:52 ... restored.
88/12/08 18:00:54 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:54 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.MY_CONFIGURATION 
88/12/08 18:00:54 ... has been restored.
88/12/08 18:00:55 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:55 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.REFERENCERS has 
88/12/08 18:00:55 ... been restored.
88/12/08 18:00:57 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:57 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.RELEASE_HISTORY 
88/12/08 18:00:57 ... has been restored.
88/12/08 18:00:58 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:58 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.SUBPATH_NAME has 
88/12/08 18:00:58 ... been restored.
88/12/08 18:00:59 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:00:59 ... REPORT_SUBSYSTEM.REV1_WORKING.STATE.
88/12/08 18:00:59 ... THIS_IS_THE_ROOT_OF_A_VIEW has been restored.
88/12/08 18:01:00 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:00 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS has been restored.
88/12/08 18:01:07 +++ proc_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:07 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.
88/12/08 18:01:07 ... PROGRAM_PROFILE'SPEC has been restored.
88/12/08 18:01:10 +++ proc_body !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:10 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.
88/12/08 18:01:10 ... PROGRAM_PROFILE'BODY has been restored.
88/12/08 18:01:12 +++ pack_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:12 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.REPORT'SPEC has 
88/12/08 18:01:12 ... been restored.
88/12/08 18:01:15 +++ pack_body !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:15 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.REPORT'BODY has 
88/12/08 18:01:15 ... been restored.
88/12/08 18:01:16 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:16 ... REPORT_SUBSYSTEM.STATE has been restored.
88/12/08 18:01:17 +++ world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:17 ... REPORT_SUBSYSTEM.STATE.COMPATIBILITY has been restored.
88/12/08 18:01:19 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:19 ... REPORT_SUBSYSTEM.STATE.COMPATIBILITY.
88/12/08 18:01:19 ... DECLARATION_NUMBERS has been restored.
88/12/08 18:01:20 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:20 ... REPORT_SUBSYSTEM.STATE.COMPATIBILITY.OFFSETS has been 
88/12/08 18:01:20 ... restored.
88/12/08 18:01:21 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:21 ... REPORT_SUBSYSTEM.STATE.COMPATIBILITY.STATE has been 
88/12/08 18:01:21 ... restored.
88/12/08 18:01:23 +++ cmvc_db !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:23 ... REPORT_SUBSYSTEM.STATE.CMVC_DATABASE has been restored.
88/12/08 18:01:25 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:25 ... REPORT_SUBSYSTEM.STATE.THIS_IS_THE_ROOT_OF_A_SUBSYSTEM 
88/12/08 18:01:25 ... has been restored.
88/12/08 18:01:26 +++ subsystem !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:26 ... SYSTEM_SUBSYSTEM has been restored.
88/12/08 18:01:26 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:27 ... SYSTEM_SUBSYSTEM.CONFIGURATIONS has been restored.
88/12/08 18:01:28 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:28 ... SYSTEM_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE has 
88/12/08 18:01:28 ... been restored.
88/12/08 18:01:29 +++ switch !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:29 ... SYSTEM_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE.
88/12/08 18:01:29 ... COMPILER_SWITCHES has been restored.
88/12/08 18:01:30 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:30 ... SYSTEM_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE.EXPORTS 
88/12/08 18:01:30 ... has been restored.
88/12/08 18:01:33 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:33 ... SYSTEM_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE.IMPORTS 
88/12/08 18:01:33 ... has been restored.
88/12/08 18:01:34 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:34 ... SYSTEM_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE.MODEL 
88/12/08 18:01:34 ... has been restored.
88/12/08 18:01:37 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:37 ... SYSTEM_SUBSYSTEM.CONFIGURATIONS.REV1_0_1_STATE.
88/12/08 18:01:37 ... SUBPATH_NAME has been restored.
88/12/08 18:01:38 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:38 ... SYSTEM_SUBSYSTEM.CONFIGURATIONS.REV1_0_1 has been 
88/12/08 18:01:38 ... restored.
88/12/08 18:01:39 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:39 ... SYSTEM_SUBSYSTEM.CONFIGURATIONS.REV1_0_SPEC has been 
88/12/08 18:01:39 ... restored.
88/12/08 18:01:40 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:40 ... SYSTEM_SUBSYSTEM.CONFIGURATIONS.REV1_WORKING has been 
88/12/08 18:01:40 ... restored.
88/12/08 18:01:41 +++ load_view !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:41 ... SYSTEM_SUBSYSTEM.REV1_0_1 has been restored.
88/12/08 18:01:42 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:42 ... SYSTEM_SUBSYSTEM.REV1_0_1.EXPORTS has been restored.
88/12/08 18:01:43 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:43 ... SYSTEM_SUBSYSTEM.REV1_0_1.IMPORTS has been restored.
88/12/08 18:01:45 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:45 ... SYSTEM_SUBSYSTEM.REV1_0_1.PATHS has been restored.
88/12/08 18:01:46 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:46 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE has been restored.
88/12/08 18:01:47 +++ switch !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:47 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.COMPILER_SWITCHES has 
88/12/08 18:01:47 ... been restored.
88/12/08 18:01:49 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:49 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.TOOL_STATE has been 
88/12/08 18:01:49 ... restored.
88/12/08 18:01:55 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:55 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.EXPORTS has been 
88/12/08 18:01:55 ... restored.
88/12/08 18:01:57 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:57 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.IMPORTS has been 
88/12/08 18:01:57 ... restored.
88/12/08 18:01:58 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:58 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.LAST_RELEASE_NAME has 
88/12/08 18:01:58 ... been restored.
88/12/08 18:01:59 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:01:59 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.MODEL has been 
88/12/08 18:01:59 ... restored.
88/12/08 18:02:01 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:01 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.MY_CONFIGURATION has 
88/12/08 18:02:01 ... been restored.
88/12/08 18:02:03 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:03 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.REFERENCERS has been 
88/12/08 18:02:03 ... restored.
88/12/08 18:02:05 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:05 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.RELEASE_HISTORY has 
88/12/08 18:02:05 ... been restored.
88/12/08 18:02:06 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:06 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.SUBPATH_NAME has been 
88/12/08 18:02:06 ... restored.
88/12/08 18:02:07 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:07 ... SYSTEM_SUBSYSTEM.REV1_0_1.STATE.
88/12/08 18:02:07 ... THIS_IS_THE_ROOT_OF_A_VIEW has been restored.
88/12/08 18:02:08 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:08 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS has been restored.
88/12/08 18:02:11 +++ pack_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:11 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.LINE'SPEC has been 
88/12/08 18:02:11 ... restored.
88/12/08 18:02:14 +++ pack_body !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:14 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.LINE'BODY has been 
88/12/08 18:02:14 ... restored.
88/12/08 18:02:17 +++ pack_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:17 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.UNIT'SPEC has been 
88/12/08 18:02:17 ... restored.
88/12/08 18:02:20 +++ pack_body !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:20 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.UNIT'BODY has been 
88/12/08 18:02:20 ... restored.
88/12/08 18:02:21 +++ spec_view !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:21 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC has been restored.
88/12/08 18:02:22 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:22 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.EXPORTS has been restored.
88/12/08 18:02:23 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:23 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.IMPORTS has been restored.
88/12/08 18:02:24 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:24 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.PATHS has been restored.
88/12/08 18:02:26 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:26 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE has been restored.
88/12/08 18:02:27 +++ switch !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:27 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.COMPILER_SWITCHES 
88/12/08 18:02:27 ... has been restored.
88/12/08 18:02:27 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:27 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.TOOL_STATE has been 
88/12/08 18:02:27 ... restored.
88/12/08 18:02:29 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:29 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.EXPORTS has been 
88/12/08 18:02:29 ... restored.
88/12/08 18:02:30 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:30 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.IMPORTS has been 
88/12/08 18:02:30 ... restored.
88/12/08 18:02:31 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:31 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.LAST_RELEASE_NAME 
88/12/08 18:02:31 ... has been restored.
88/12/08 18:02:32 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:32 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.MODEL has been 
88/12/08 18:02:32 ... restored.
88/12/08 18:02:34 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:34 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.MY_CONFIGURATION 
88/12/08 18:02:34 ... has been restored.
88/12/08 18:02:34 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:34 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.REFERENCERS has 
88/12/08 18:02:34 ... been restored.
88/12/08 18:02:36 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:36 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.RELEASE_HISTORY has 
88/12/08 18:02:36 ... been restored.
88/12/08 18:02:37 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:37 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.SUBPATH_NAME has 
88/12/08 18:02:37 ... been restored.
88/12/08 18:02:38 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:38 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.STATE.
88/12/08 18:02:38 ... THIS_IS_THE_ROOT_OF_A_VIEW has been restored.
88/12/08 18:02:39 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:39 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.UNITS has been restored.
88/12/08 18:02:42 +++ pack_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:42 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.UNITS.UNIT'SPEC has been 
88/12/08 18:02:42 ... restored.
88/12/08 18:02:43 +++ load_view !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:43 ... SYSTEM_SUBSYSTEM.REV1_WORKING has been restored.
88/12/08 18:02:44 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:44 ... SYSTEM_SUBSYSTEM.REV1_WORKING.EXPORTS has been 
88/12/08 18:02:44 ... restored.
88/12/08 18:02:45 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:45 ... SYSTEM_SUBSYSTEM.REV1_WORKING.IMPORTS has been 
88/12/08 18:02:45 ... restored.
88/12/08 18:02:46 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:46 ... SYSTEM_SUBSYSTEM.REV1_WORKING.PATHS has been restored.
88/12/08 18:02:47 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:47 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE has been restored.
88/12/08 18:02:48 +++ switch !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:48 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.COMPILER_SWITCHES 
88/12/08 18:02:48 ... has been restored.
88/12/08 18:02:49 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:49 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.TOOL_STATE has 
88/12/08 18:02:49 ... been restored.
88/12/08 18:02:51 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:51 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.EXPORTS has been 
88/12/08 18:02:51 ... restored.
88/12/08 18:02:52 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:52 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.IMPORTS has been 
88/12/08 18:02:52 ... restored.
88/12/08 18:02:53 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:53 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.LAST_RELEASE_NAME 
88/12/08 18:02:53 ... has been restored.
88/12/08 18:02:54 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:54 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.MODEL has been 
88/12/08 18:02:54 ... restored.
88/12/08 18:02:56 +++ config !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:56 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.MY_CONFIGURATION 
88/12/08 18:02:56 ... has been restored.
88/12/08 18:02:57 +++ objects !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:57 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.REFERENCERS has 
88/12/08 18:02:57 ... been restored.
88/12/08 18:02:58 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:58 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.RELEASE_HISTORY 
88/12/08 18:02:58 ... has been restored.
88/12/08 18:02:59 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:02:59 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.SUBPATH_NAME has 
88/12/08 18:02:59 ... been restored.
88/12/08 18:03:01 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:01 ... SYSTEM_SUBSYSTEM.REV1_WORKING.STATE.
88/12/08 18:03:01 ... THIS_IS_THE_ROOT_OF_A_VIEW has been restored.
88/12/08 18:03:02 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:02 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS has been restored.
88/12/08 18:03:05 +++ pack_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:05 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.LINE'SPEC has been 
88/12/08 18:03:05 ... restored.
88/12/08 18:03:07 +++ pack_body !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:07 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.LINE'BODY has been 
88/12/08 18:03:07 ... restored.
88/12/08 18:03:10 +++ pack_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:10 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.UNIT'SPEC has been 
88/12/08 18:03:10 ... restored.
88/12/08 18:03:13 +++ pack_body !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:13 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.UNIT'BODY has been 
88/12/08 18:03:13 ... restored.
88/12/08 18:03:15 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:15 ... SYSTEM_SUBSYSTEM.STATE has been restored.
88/12/08 18:03:16 +++ world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:16 ... SYSTEM_SUBSYSTEM.STATE.COMPATIBILITY has been restored.
88/12/08 18:03:17 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:17 ... SYSTEM_SUBSYSTEM.STATE.COMPATIBILITY.
88/12/08 18:03:17 ... DECLARATION_NUMBERS has been restored.
88/12/08 18:03:18 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:18 ... SYSTEM_SUBSYSTEM.STATE.COMPATIBILITY.OFFSETS has been 
88/12/08 18:03:18 ... restored.
88/12/08 18:03:20 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:20 ... SYSTEM_SUBSYSTEM.STATE.COMPATIBILITY.STATE has been 
88/12/08 18:03:20 ... restored.
88/12/08 18:03:21 +++ cmvc_db !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:21 ... SYSTEM_SUBSYSTEM.STATE.CMVC_DATABASE has been restored.
88/12/08 18:03:22 +++ file !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:22 ... SYSTEM_SUBSYSTEM.STATE.THIS_IS_THE_ROOT_OF_A_SUBSYSTEM 
88/12/08 18:03:22 ... has been restored.
88/12/08 18:03:23 +++ directory !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:23 ... TESTING has been restored.
88/12/08 18:03:26 +++ proc_spec !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:26 ... TESTING.TEST_DRIVER1'SPEC has been restored.
88/12/08 18:03:28 +++ proc_body !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:28 ... TESTING.TEST_DRIVER1'BODY has been restored.
88/12/08 18:03:29 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.TESTING.
88/12/08 18:03:29 ... TEST_INPUT_1 has been restored.
88/12/08 18:03:31 +++ text !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.TESTING.
88/12/08 18:03:31 ... TEST_INPUT_2 has been restored.
88/12/08 18:03:32 +++ activity !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:32 ... CURRENT_RELEASE has been restored.
88/12/08 18:03:43 --- running convert_cdb.
88/12/08 18:03:43 +++ Converted CDB for subsystem !USERS.BASIC_TEST_1.
88/12/08 18:03:43 ... SUBSYSTEM_SOLUTION.SYSTEM_SUBSYSTEM.
88/12/08 18:03:43 +++ compat_db !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:43 ... SYSTEM_SUBSYSTEM has been restored.
88/12/08 18:03:49 --- running convert_cdb.
88/12/08 18:03:49 +++ Converted CDB for subsystem !USERS.BASIC_TEST_1.
88/12/08 18:03:49 ... SUBSYSTEM_SOLUTION.REPORT_SUBSYSTEM.
88/12/08 18:03:49 +++ compat_db !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:03:49 ... REPORT_SUBSYSTEM has been restored.
88/12/08 18:03:49 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 18:03:49 ... PROGRAM_PROFILE_SYSTEM.
88/12/08 18:03:51 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 18:03:51 ... SUBSYSTEM_APPLICATION.
88/12/08 18:04:03 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 18:04:03 ... SUBSYSTEM_SOLUTION.
88/12/08 18:04:04 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 18:04:04 ... SUBSYSTEM_SOLUTION.MODEL.
88/12/08 18:04:04 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 18:04:04 ... SUBSYSTEM_SOLUTION.REPORT_SUBSYSTEM.REV1_0_1.
88/12/08 18:04:05 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:05 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:05 ... REPORT_SUBSYSTEM.REV1_0_1.EXPORTS.
88/12/08 18:04:05 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:05 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:05 ... REPORT_SUBSYSTEM.REV1_0_1.IMPORTS.
88/12/08 18:04:05 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:05 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:05 ... REPORT_SUBSYSTEM.REV1_0_1.PATHS.
88/12/08 18:04:05 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 18:04:05 ... SUBSYSTEM_SOLUTION.REPORT_SUBSYSTEM.REV1_0_SPEC.
88/12/08 18:04:06 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:06 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:06 ... REPORT_SUBSYSTEM.REV1_0_SPEC.EXPORTS.
88/12/08 18:04:06 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:06 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:06 ... REPORT_SUBSYSTEM.REV1_0_SPEC.IMPORTS.
88/12/08 18:04:06 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:06 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:06 ... REPORT_SUBSYSTEM.REV1_0_SPEC.PATHS.
88/12/08 18:04:06 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 18:04:06 ... SUBSYSTEM_SOLUTION.REPORT_SUBSYSTEM.REV1_WORKING.
88/12/08 18:04:07 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:07 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:07 ... REPORT_SUBSYSTEM.REV1_WORKING.EXPORTS.
88/12/08 18:04:07 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:07 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:07 ... REPORT_SUBSYSTEM.REV1_WORKING.IMPORTS.
88/12/08 18:04:07 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:07 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:07 ... REPORT_SUBSYSTEM.REV1_WORKING.PATHS.
88/12/08 18:04:07 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 18:04:07 ... SUBSYSTEM_SOLUTION.SYSTEM_SUBSYSTEM.REV1_0_1.
88/12/08 18:04:08 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:08 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:08 ... SYSTEM_SUBSYSTEM.REV1_0_1.EXPORTS.
88/12/08 18:04:08 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:08 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:08 ... SYSTEM_SUBSYSTEM.REV1_0_1.IMPORTS.
88/12/08 18:04:08 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:08 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:08 ... SYSTEM_SUBSYSTEM.REV1_0_1.PATHS.
88/12/08 18:04:08 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 18:04:08 ... SUBSYSTEM_SOLUTION.SYSTEM_SUBSYSTEM.REV1_0_SPEC.
88/12/08 18:04:08 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:08 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:08 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.EXPORTS.
88/12/08 18:04:08 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:08 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:08 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.IMPORTS.
88/12/08 18:04:08 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:08 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:08 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.PATHS.
88/12/08 18:04:08 --- restoring links for !USERS.BASIC_TEST_1.
88/12/08 18:04:08 ... SUBSYSTEM_SOLUTION.SYSTEM_SUBSYSTEM.REV1_WORKING.
88/12/08 18:04:09 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:09 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:09 ... SYSTEM_SUBSYSTEM.REV1_WORKING.EXPORTS.
88/12/08 18:04:09 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:09 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:09 ... SYSTEM_SUBSYSTEM.REV1_WORKING.IMPORTS.
88/12/08 18:04:09 ++* Can't resolve default switch file [VERSION_ERROR] for 
88/12/08 18:04:09 ... world !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:09 ... SYSTEM_SUBSYSTEM.REV1_WORKING.PATHS.
88/12/08 18:04:14 --- promoting ada units.
88/12/08 18:04:20 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.LINE'SPEC 
88/12/08 18:04:20 ... has been INSTALLED.
88/12/08 18:04:23 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.LINE'BODY 
88/12/08 18:04:23 ... has been INSTALLED.
88/12/08 18:04:25 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 18:04:25 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 18:04:27 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.UNIT'SPEC 
88/12/08 18:04:27 ... has been INSTALLED.
88/12/08 18:04:28 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.REPORT'SPEC 
88/12/08 18:04:28 ... has been INSTALLED.
88/12/08 18:04:30 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 18:04:30 ... PROGRAM_PROFILE'BODY has been INSTALLED.
88/12/08 18:04:34 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.REPORT'BODY 
88/12/08 18:04:34 ... has been INSTALLED.
88/12/08 18:04:35 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 18:04:35 ... TEST_DRIVER1'SPEC has been INSTALLED.
88/12/08 18:04:40 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 18:04:40 ... TEST_DRIVER1'BODY has been INSTALLED.
88/12/08 18:04:44 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.UNIT'BODY 
88/12/08 18:04:44 ... has been INSTALLED.
88/12/08 18:04:45 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:45 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.PROGRAM_PROFILE'SPEC 
88/12/08 18:04:45 ... has been INSTALLED.
88/12/08 18:04:48 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:48 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.UNITS.UNIT'SPEC has been 
88/12/08 18:04:48 ... INSTALLED.
88/12/08 18:04:49 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:49 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.REPORT'SPEC has been 
88/12/08 18:04:49 ... INSTALLED.
88/12/08 18:04:50 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:50 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.PROGRAM_PROFILE'BODY 
88/12/08 18:04:50 ... has been INSTALLED.
88/12/08 18:04:54 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:54 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.REPORT'BODY has been 
88/12/08 18:04:54 ... INSTALLED.
88/12/08 18:04:55 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:55 ... REPORT_SUBSYSTEM.REV1_0_SPEC.UNITS.
88/12/08 18:04:55 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 18:04:57 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:57 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.
88/12/08 18:04:57 ... PROGRAM_PROFILE'SPEC has been INSTALLED.
88/12/08 18:04:58 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:04:58 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.REPORT'SPEC has 
88/12/08 18:04:58 ... been INSTALLED.
88/12/08 18:05:00 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:00 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.
88/12/08 18:05:00 ... PROGRAM_PROFILE'BODY has been INSTALLED.
88/12/08 18:05:03 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:03 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.REPORT'BODY has 
88/12/08 18:05:03 ... been INSTALLED.
88/12/08 18:05:06 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:06 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.LINE'SPEC has been 
88/12/08 18:05:06 ... INSTALLED.
88/12/08 18:05:09 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:09 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.LINE'BODY has been 
88/12/08 18:05:09 ... INSTALLED.
88/12/08 18:05:11 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:11 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.UNIT'SPEC has been 
88/12/08 18:05:11 ... INSTALLED.
88/12/08 18:05:15 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:15 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.UNIT'BODY has been 
88/12/08 18:05:15 ... INSTALLED.
88/12/08 18:05:17 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:17 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.LINE'SPEC has been 
88/12/08 18:05:17 ... INSTALLED.
88/12/08 18:05:20 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:20 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.LINE'BODY has been 
88/12/08 18:05:20 ... INSTALLED.
88/12/08 18:05:22 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:22 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.UNIT'SPEC has been 
88/12/08 18:05:22 ... INSTALLED.
88/12/08 18:05:26 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:26 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.UNIT'BODY has been 
88/12/08 18:05:26 ... INSTALLED.
88/12/08 18:05:27 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.TESTING.
88/12/08 18:05:27 ... TEST_DRIVER1'SPEC has been INSTALLED.
88/12/08 18:05:29 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.TESTING.
88/12/08 18:05:29 ... TEST_DRIVER1'BODY has been INSTALLED.
88/12/08 18:05:29 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.LINE'SPEC 
88/12/08 18:05:29 ... has been CODED.
88/12/08 18:05:32 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.LINE'BODY 
88/12/08 18:05:32 ... has been CODED.
88/12/08 18:05:32 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 18:05:32 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 18:05:33 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.UNIT'SPEC 
88/12/08 18:05:33 ... has been CODED.
88/12/08 18:05:33 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.REPORT'SPEC 
88/12/08 18:05:33 ... has been CODED.
88/12/08 18:05:34 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 18:05:34 ... PROGRAM_PROFILE'BODY has been CODED.
88/12/08 18:05:37 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.REPORT'BODY 
88/12/08 18:05:37 ... has been CODED.
88/12/08 18:05:38 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 18:05:38 ... TEST_DRIVER1'SPEC has been CODED.
88/12/08 18:05:39 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.
88/12/08 18:05:39 ... TEST_DRIVER1'BODY has been CODED.
88/12/08 18:05:43 !!! Prompt encountered on statement list.
88/12/08 18:05:43 !!! !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.UNIT'BODY 
88/12/08 18:05:43 ... was CODED with  1 warnings.
88/12/08 18:05:43 +++ !USERS.BASIC_TEST_1.PROGRAM_PROFILE_SYSTEM.UNIT'BODY 
88/12/08 18:05:43 ... has been CODED.
88/12/08 18:05:43 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:43 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.PROGRAM_PROFILE'SPEC 
88/12/08 18:05:43 ... has been CODED.
88/12/08 18:05:44 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:44 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC.UNITS.UNIT'SPEC has been 
88/12/08 18:05:44 ... CODED.
88/12/08 18:05:45 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:45 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.REPORT'SPEC has been 
88/12/08 18:05:45 ... CODED.
88/12/08 18:05:46 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:46 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.PROGRAM_PROFILE'BODY 
88/12/08 18:05:46 ... has been CODED.
88/12/08 18:05:49 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:49 ... REPORT_SUBSYSTEM.REV1_0_1.UNITS.REPORT'BODY has been 
88/12/08 18:05:49 ... CODED.
88/12/08 18:05:49 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:49 ... REPORT_SUBSYSTEM.REV1_0_SPEC.UNITS.
88/12/08 18:05:49 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 18:05:50 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:50 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.
88/12/08 18:05:50 ... PROGRAM_PROFILE'SPEC has been CODED.
88/12/08 18:05:50 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:50 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.REPORT'SPEC has 
88/12/08 18:05:50 ... been CODED.
88/12/08 18:05:52 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:52 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.
88/12/08 18:05:52 ... PROGRAM_PROFILE'BODY has been CODED.
88/12/08 18:05:55 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:55 ... REPORT_SUBSYSTEM.REV1_WORKING.UNITS.REPORT'BODY has 
88/12/08 18:05:55 ... been CODED.
88/12/08 18:05:55 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:55 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.LINE'SPEC has been 
88/12/08 18:05:55 ... CODED.
88/12/08 18:05:57 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:57 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.LINE'BODY has been 
88/12/08 18:05:57 ... CODED.
88/12/08 18:05:58 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:05:58 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.UNIT'SPEC has been 
88/12/08 18:05:58 ... CODED.
88/12/08 18:06:01 !!! Prompt encountered on statement list.
88/12/08 18:06:01 !!! !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:01 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.UNIT'BODY was CODED 
88/12/08 18:06:01 ... with  1 warnings.
88/12/08 18:06:01 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:01 ... SYSTEM_SUBSYSTEM.REV1_0_1.UNITS.UNIT'BODY has been 
88/12/08 18:06:01 ... CODED.
88/12/08 18:06:02 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:02 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.LINE'SPEC has been 
88/12/08 18:06:02 ... CODED.
88/12/08 18:06:05 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:05 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.LINE'BODY has been 
88/12/08 18:06:05 ... CODED.
88/12/08 18:06:05 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:05 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.UNIT'SPEC has been 
88/12/08 18:06:05 ... CODED.
88/12/08 18:06:09 !!! Prompt encountered on statement list.
88/12/08 18:06:09 !!! !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:09 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.UNIT'BODY was 
88/12/08 18:06:09 ... CODED with  1 warnings.
88/12/08 18:06:09 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:09 ... SYSTEM_SUBSYSTEM.REV1_WORKING.UNITS.UNIT'BODY has been 
88/12/08 18:06:09 ... CODED.
88/12/08 18:06:09 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.TESTING.
88/12/08 18:06:09 ... TEST_DRIVER1'SPEC has been CODED.
88/12/08 18:06:15 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.TESTING.
88/12/08 18:06:15 ... TEST_DRIVER1'BODY has been CODED.
88/12/08 18:06:16 +++  30 units were INSTALLED.
88/12/08 18:06:16 +++  30 units were CODED.
88/12/08 18:06:41 --- checking cmvc consistency of !USERS.BASIC_TEST_1.
88/12/08 18:06:41 ... SUBSYSTEM_SOLUTION.REPORT_SUBSYSTEM.REV1_0_1.
88/12/08 18:06:48 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:48 ... REPORT_SUBSYSTEM.REV1_0_1 has been checked.
88/12/08 18:06:49 --- checking cmvc consistency of !USERS.BASIC_TEST_1.
88/12/08 18:06:49 ... SUBSYSTEM_SOLUTION.REPORT_SUBSYSTEM.REV1_0_SPEC.
88/12/08 18:06:52 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:52 ... REPORT_SUBSYSTEM.REV1_0_SPEC has been checked.
88/12/08 18:06:52 --- checking cmvc consistency of !USERS.BASIC_TEST_1.
88/12/08 18:06:52 ... SUBSYSTEM_SOLUTION.REPORT_SUBSYSTEM.REV1_WORKING.
88/12/08 18:06:55 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:55 ... REPORT_SUBSYSTEM.REV1_WORKING has been checked.
88/12/08 18:06:56 --- checking cmvc consistency of !USERS.BASIC_TEST_1.
88/12/08 18:06:56 ... SUBSYSTEM_SOLUTION.SYSTEM_SUBSYSTEM.REV1_0_1.
88/12/08 18:06:59 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:06:59 ... SYSTEM_SUBSYSTEM.REV1_0_1 has been checked.
88/12/08 18:06:59 --- checking cmvc consistency of !USERS.BASIC_TEST_1.
88/12/08 18:06:59 ... SUBSYSTEM_SOLUTION.SYSTEM_SUBSYSTEM.REV1_0_SPEC.
88/12/08 18:07:03 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:07:03 ... SYSTEM_SUBSYSTEM.REV1_0_SPEC has been checked.
88/12/08 18:07:03 --- checking cmvc consistency of !USERS.BASIC_TEST_1.
88/12/08 18:07:03 ... SUBSYSTEM_SOLUTION.SYSTEM_SUBSYSTEM.REV1_WORKING.
88/12/08 18:07:06 +++ !USERS.BASIC_TEST_1.SUBSYSTEM_SOLUTION.
88/12/08 18:07:06 ... SYSTEM_SUBSYSTEM.REV1_WORKING has been checked.
88/12/08 18:07:06 --- 180 objects were restored.
88/12/08 18:07:06 --- [end of Archive.Restore operation].
88/12/08 18:08:22 --- Access_List.Set (To_List => "Network_Public => R", 
88/12/08 18:08:22 ... For_Object => "!Users.Basic_Test_1.Acl_World");
88/12/08 18:08:22 +++ !USERS.BASIC_TEST_1.ACL_WORLD: acl set to 
88/12/08 18:08:22 ... Network_Public => R.
88/12/08 18:08:22 +++ Completed building training user basic_test_1.
88/12/08 18:08:22 --- [Finished building training users -- Examine the log].with Directory_Tools;

package Training_Names is

    package Dir_Object renames Directory_Tools.Object;

    -- exceptions possible
    --
    Bad_Course_Name : exception;           -- from Validate_Course_Name
    Bad_Release_Name : exception;          -- from Validate_Release_Name
    Bad_Script_Text_File_Name : exception; -- from Script_Text_File_Pathname
    No_Releases : exception;               -- from Latest_Release_Pathname


    -- return pathnames: Course_Name & Release_Name arguments MUST BE VALID
    --
    function Courses_Lib_Pathname return String;
    function Tools_Lib_Pathname return String;
    --
    function Live_Job_File_Pathname return String;
    function Script_Text_File_Pathname (Course_Name : in String;  
                                        Release_Name : in String) return String;
    --
    function Latest_Release_Pathname (Course_Name : in String) return String;


    -- validate the names against existing directory objects
    -- (raises an exception if invalid)
    --
    procedure Validate_Course_Name (Course_Name : in String);
    procedure Validate_Release_Name
                 (For_Course_Named : in String; Release_Name : in String);

end Training_Names;with Calendar;
with Directory_Tools;
with String_Utilities;
with System_Utilities;
package body Training_Names is

    package Dir_Names renames Directory_Tools.Naming;
    package Statistics renames Directory_Tools.Statistics;
    package Strings renames String_Utilities;

    No_Objects : exception;   -- raised by Most_Recent_Object

    function Most_Recent_Object
                (Within_Objects : in String := "@") return Dir_Object.Handle;


    function Courses_Lib_Pathname return String is
    begin
        return "!Training.Software_Releases";
    end Courses_Lib_Pathname;


    function Tools_Lib_Pathname return String is
    begin
        return "!Training.Tools";
    end Tools_Lib_Pathname;


    function Live_Job_File_Pathname return String is
    begin
        return "!Training.Tools.Live_Job_Files." & System_Utilities.User_Name &
                  "_" & System_Utilities.Session_Name;
    end Live_Job_File_Pathname;


    function Script_Text_File_Pathname
                (Course_Name : in String;  
                 Release_Name : in String) return String is
        Terminal_Name : constant String := System_Utilities.Terminal_Type;
        Script_File_Pathname : constant String :=
           "!Training.Software_Releases." & Course_Name & "." &
              Release_Name & ".Scripts." & Terminal_Name & "_Script_Text";
        Script_File_Object : Dir_Object.Handle :=
           Dir_Names.Resolution (Script_File_Pathname);
    begin
        if Dir_Object.Is_Bad (Script_File_Object) then
            raise Bad_Script_Text_File_Name;
        else
            return Dir_Names.Unique_Full_Name (Script_File_Object);
        end if;
    end Script_Text_File_Pathname;


    -- local use only
    -- return the most recently-dated directory object from a set
    -- raises an exception of a null object set is specified
    --
    function Most_Recent_Object
                (Within_Objects : in String := "@") return Dir_Object.Handle is
        All_Objects : Dir_Object.Iterator :=
           Dir_Names.Resolution (Within_Objects);
        An_Object : Dir_Object.Handle;
        The_Most_Recent_Object : Dir_Object.Handle;
    begin
        if Dir_Object.Is_Bad (All_Objects) then
            raise No_Objects;
        end if;
        The_Most_Recent_Object := Dir_Object.Value (All_Objects);
        Dir_Object.Next (All_Objects);
        while not Dir_Object.Done (All_Objects) loop
            An_Object := Dir_Object.Value (All_Objects);
            if Calendar."<" (Statistics.Time_Of_Creation
                                (The_Most_Recent_Object),
                             Statistics.Time_Of_Creation (An_Object)) then
                The_Most_Recent_Object := An_Object;
            end if;
            Dir_Object.Next (All_Objects);
        end loop;
        return The_Most_Recent_Object;
    end Most_Recent_Object;


    function Latest_Release_Pathname (Course_Name : in String) return String is
    begin
        declare
            Latest_Release_Object : Dir_Object.Handle :=
               Most_Recent_Object (Training_Names.Courses_Lib_Pathname &
                                   "." & Course_Name & ".@_Rev@");
        begin
            if Dir_Object.Is_Bad (Latest_Release_Object) then
                raise No_Releases;
            else
                return Strings.Capitalize
                          (Dir_Names.Unique_Full_Name (Latest_Release_Object));
            end if;
        end;
    exception
        when No_Objects =>
            raise No_Releases;
    end Latest_Release_Pathname;


    procedure Validate_Course_Name (Course_Name : in String) is
        The_Dir_Object : Dir_Object.Handle :=
           Dir_Names.Resolution
              (Training_Names.Courses_Lib_Pathname & "." & Course_Name);
    begin
        if Dir_Object.Is_Bad (The_Dir_Object) then
            raise Bad_Course_Name;
        end if;
    end Validate_Course_Name;


    procedure Validate_Release_Name
                 (For_Course_Named : in String; Release_Name : in String) is
        The_Dir_Object : Dir_Object.Handle :=
           Dir_Names.Resolution (Training_Names.Courses_Lib_Pathname & "." &
                                 For_Course_Named & "." & Release_Name);
    begin
        if (Dir_Object.Is_Bad (The_Dir_Object)) then  
            raise Bad_Release_Name;
        end if;
    end Validate_Release_Name;


end Training_Names;procedure Build_Training_Users (First_User_Number : in Positive := 1;
                                Last_User_Number : in Positive;
                                Username_Prefix : in String := "cdf";
                                Remote_Machine : in String := "";
                                Response : in String := "<PROFILE>");with Archive;
with Compilation;
with Debug_Tools;
with Directory_Tools;
with Log;
with Operator;
with Profile;
with String_Utilities;
with Switches;

procedure Build_Training_Users (First_User_Number : in Positive := 1;
                                Last_User_Number : in Positive;
                                Username_Prefix : in String := "cdf";
                                Remote_Machine : in String := "";
                                Response : in String := "<PROFILE>") is

    package Naming renames Directory_Tools.Naming;
    package Object renames Directory_Tools.Object;

    Old_Response_Profile : Profile.Response_Profile := Profile.Get;
    Current_Response_Profile : Profile.Response_Profile :=
       Profile.Value (Response);

    function Capitalize (A_String : String) return String
        renames String_Utilities.Capitalize;

    procedure Closing_Message_For_Errors is
    begin
        Log.Put_Line
           ("[Finished building training users -- Error(s) detected]");
        Profile.Set (Old_Response_Profile);
    end Closing_Message_For_Errors;

    function Current_Library (Of_Object : String) return String is
        All_Objects : Object.Iterator := Naming.Resolution (Of_Object);
        An_Object : Object.Handle;
    begin
        An_Object := Object.Value (All_Objects);
        return Naming.Unique_Full_Name (An_Object);
    end Current_Library;

    procedure Cross_Development_Facility_Setup (Users_Full_Pathname : in String;
                                                Remote_Machine : in String) is
        Units_Pathname : constant String := ".Mc68020_bare_Working.Units";
        Switches_Pathname : constant String :=
           ".Mc68020_bare_Working.State.Compiler_Switches";
        Target_Generator_Switches : constant String :=
           Users_Full_Pathname & ".Generator" & Switches_Pathname;  
        Target_Generator_Units : constant String :=
           Users_Full_Pathname & ".Generator" & Units_Pathname;
        Target_Messages_Switches : constant String :=
           Users_Full_Pathname & ".Messages" & Switches_Pathname;  
        Target_Messages_Units : constant String :=
           Users_Full_Pathname & ".Messages" & Units_Pathname;
    begin

        Switches.Associate (File => Target_Generator_Switches,
                            Library => Target_Generator_Units,
                            Response => "<PROFILE>");
        Switches.Set (Spec => "ftp.remote_machine:=""" & Remote_Machine & """",
                      File => Target_Generator_Switches,
                      Response => "<PROFILE>");

        Switches.Associate (File => Target_Messages_Switches,
                            Library => Target_Messages_Units,
                            Response => "<PROFILE>");
        Switches.Set (Spec => "ftp.remote_machine:=""" & Remote_Machine & """",
                      File => Target_Messages_Switches,
                      Response => "<PROFILE>");
        Switches.Set (Spec => "cross_cg.debugging_level:=none",
                      File => Target_Messages_Switches,
                      Response => "<PROFILE>");

        Compilation.Promote (Unit => Users_Full_Pathname & ".??",
                             Scope => Compilation.Subunits_Too,
                             Goal => Compilation.Coded,
                             Limit => "<ALL_WORLDS>",
                             Effort_Only => False,
                             Response => "<PROFILE>");
        Compilation.Demote (Unit => Target_Messages_Units &
                                       ".Show_All_Messages'Body",
                            Goal => Compilation.Source,
                            Limit => "<WORLDS>",
                            Effort_Only => False,
                            Response => "<PROFILE>");
    end Cross_Development_Facility_Setup;

begin
    -- set up the response profile and log the command line
    --
    Profile.Set (Current_Response_Profile);
    Log.Put_Line ("[Build_Training_Users (First_User_Number => " &
                  String_Utilities.Number_To_String (First_User_Number) &
                  ", Last_User_Number => " &
                  String_Utilities.Number_To_String (Last_User_Number) &
                  ", Username_Prefix => """ & Username_Prefix &
                  ", Remote_Machine => " & Remote_Machine &
                  """, Response => """ & Response & """);]",
                  Profile.Auxiliary_Msg);

    declare
        Context : constant String := Capitalize (Current_Library ("$"));
        Course : constant String :=
           Capitalize (Naming.Simple_Name (Naming.Prefix (Context)));
        Master_Full_Pathname : constant String :=
           Capitalize ("!Users." & Course & "_Master");

    begin
        Operator.Enable_Privileges (Enable => True);

        if Operator.Privileged_Mode /= True then
            Log.Put_Line
               ("You must have operator capability to create training users",
                Profile.Error_Msg);
            Closing_Message_For_Errors;
            return;
        end if;

        if First_User_Number > Last_User_Number then
            Log.Put_Line
               ("The First_User_Number must be 'less than' or 'equal to' the Last_User_Number",
                Profile.Error_Msg);
            Closing_Message_For_Errors;
            return;
        end if;

        for User_Count in First_User_Number .. Last_User_Number loop
            declare  
                User_Number : constant String :=
                   String_Utilities.Number_To_String (User_Count);
                User_Name : constant String :=  
                   Username_Prefix & "_" & User_Number;
                Users_Full_Pathname : constant String :=
                   Capitalize ("!Users." & User_Name);
            begin  
                Operator.Create_User (User => User_Name,
                                      Password => User_Name,
                                      Volume => 0,
                                      Response => "<PROFILE>");
                Archive.Restore
                   (Objects => "?",
                    Use_Prefix => Users_Full_Pathname,
                    For_Prefix => Master_Full_Pathname,
                    Options =>  
                       "R1000, PRIMARY, BECOME_OWNER, WORLD_ACL=(Network_Public => RWCOD), DEFAULT_ACL=(Network_Public => RW), OBJECT_ACL=(Network_Public => RW)",
                    Device => Context,
                    Response => "<PROFILE>");
                Cross_Development_Facility_Setup
                   (Users_Full_Pathname => Users_Full_Pathname,
                    Remote_Machine => Remote_Machine);
                Log.Put_Line ("Completed building training user " & User_Name,
                              Profile.Positive_Msg);
            end;  
        end loop;

        Log.Put_Line ("[Finished building training users -- Examine the log]");
        Profile.Set (Old_Response_Profile);
    end;

exception
    when others =>
        Log.Put_Line ("Encountered an unexpected exception: " &
                      Debug_Tools.Get_Exception_Name, Profile.Exception_Msg);
        Closing_Message_For_Errors;


end Build_Training_Users;                           COURSE PREPARATION NOTES
                           ========================

COURSE NAME: Cross-Development Facility - Mc68020_Bare Version

RELEASE: Delta1_Rev1

LOCATION: !Training.Software_Releases.Cdf_Mc68020_Bare.Delta1_Rev1


CONTENTS:

This library contains the course preparation instructions, the software used to
create a set of training user accounts and the archived software for the
Delta1_Rev1 release of the Cross-Development Facility
(Mc68020_Bare version) training course.


PREPARING TO PRESENT A COURSE:

1. Follow the instructions in
   "!Training.Notes.Release_Notes.Cdf_Mc68020_Bare_Release_88_08_09"

2. Ensure that the user accounts and worlds you want to create do not exist.

3. Create the training user worlds -- execute the "Build_Training_Users"
   procedure in
   "!Training.Software_Releases.Cdf_Mc68020_Bare.Delta1_Rev1"
   to create the desired training users.

   NOTES:

    - To create a set of training accounts for this release (Delta_Rev1),
      the "Build_Training_Users" procedure must be executed:

         a) by a user with operator capability

         b) within
           "!Training.Software_Releases.Cdf_Mc68020_Bare.Delta1_Rev1"

    - As required, supply the "First_User_Number", the "Last_User_Number" and
      the "Username_Prefix" arguments to define the series of training user
      accounts to be created -- e.g. entering "1", "3" and "Learning",
      respectively, will create the following training user accounts:
      "Learning_1", "Learning_2" and "Learning_3".   Also supply the
      "Remote_Machine" parameter to define the target machine information
      used by the Cross-Development Facility to download files.  This setup
      assumes all users will use the same machine.  If this is not the case,
      then each training user must be modified to point to the desired target
      machine. The Build_Training_Users can be executed multiple times
      if multiple target machines are available.

    - The password for a training user account is the same as the user name
      (e.g. "Learning_1", "Learning_2" and "Learning_3" in the example above).

4. Subject to the note above, check the log to ensure that the training users
   have been created correctly.c