PROC bind_network_management, binnm (
  unbound_component, uc: file = $system.nosve.maintenance.osf$network_management
  cybil_library, cl: file = $system.cybil.cyf$run_time_library
  bound_network_op_commands, bnoc: file = $user.network.operator.bound_product_46d   "osf$system_library_46d"
  bound_network_operator, bno: file = $user.network.operator.bound_product           "osf$system_library"
  bound_network_administrator, bna: file = $user.network.administrator.bound_product "osf$system_library"
  bound_network_management, bnm: file = $user.network.management.bound_product       "osf$operator_library_46d"
  map, m: file = $user.network.maintenance.map
  status)

  create_variable ignore_status kind=status
  create_variable instr_file_string kind=(string $max_name) value=$unique
  create_variable netou_file_string kind=(string $max_name) value=$unique
  create_variable netoc_file_string kind=(string $max_name) value=$unique
  create_variable manna_file_string kind=(string $max_name) value=$unique
  create_variable clock_file_string kind=(string $max_name) value=$unique
  create_variable restricted_unbound_component kind=(string $max_name) value=$unique
  create_variable log_file_string kind=(string $max_name) value=$unique
  create_variable file_access_file_string kind=string value='$local.'//$unique
  create_variable initialization_file_string kind=string value='$local.'//$unique
  create_variable temp_lfn_string kind=string
  create_variable temp_map_string kind=string value='$local.'//$unique
  create_variable maint_catalog_path kind=string value=$path($value(map), catalog)
  create_variable next_segment kind=integer


  set_file_attributes $fname(temp_map_string) op=$eoi
  create_catalog c=$user.network status=ignore_status
  create_catalog c=$user.network.operator status=ignore_status
  create_catalog c=$user.network.administrator status=ignore_status
  create_catalog c=$user.network.management status=ignore_status
  create_catalog c=$user.network.maintenance status=ignore_status

  CREATE_OBJECT_LIBRARY

    add_modules library=$value(unbound_component)
    delete_module m=nam$network_alarm_processor
    delete_module m=nam$send_command
    generate_library $fname(restricted_unbound_component)

    add_modules library=$fname(restricted_unbound_component) m=(nam$network_operator_utility)
    satisfy_external_references library=$fname(restricted_unbound_component)
    satisfy_external_references library=$value(cybil_library)
    generate_library $fname(netou_file_string)

    add_modules library=$value(unbound_component) m=(nam$network_alarm_processor nam$send_command)
    satisfy_external_references library=$value(unbound_component)
    satisfy_external_references library=$value(cybil_library)
    generate_library $fname(netoc_file_string)

    add_modules library=$value(unbound_component) m=(nam$manage_network_applications)
    satisfy_external_references library=$value(unbound_component)
    satisfy_external_references library=$value(cybil_library)
    generate_library $fname(manna_file_string)

    add_modules library=$value(unbound_component) m=(nam$clock_me)
    satisfy_external_references library=$value(unbound_component)
    satisfy_external_references library=$value(cybil_library)
    generate_library $fname(clock_file_string)

    add_modules library=$value(unbound_component) m=(nam$file_access_me)
    satisfy_external_references library=$value(unbound_component)
    satisfy_external_references library=$value(cybil_library)
    generate_library $fname(file_access_file_string)

    add_modules library=$value(unbound_component) m=(nam$independent_init_manager)
    satisfy_external_references library=$value(unbound_component)
    satisfy_external_references library=$value(cybil_library)
    generate_library $fname(initialization_file_string)

    add_modules library=$value(unbound_component) m=(nam$log_me)
    satisfy_external_references library=$value(unbound_component)
    satisfy_external_references library=$value(cybil_library)
    generate_library $fname(log_file_string)

    add_modules library=$value(unbound_component) m=(nam$install_tcpip_static_routes)
    satisfy_external_references library=$value(unbound_component)
    satisfy_external_references library=$value(cybil_library)
    generate_library $fname(instr_file_string)

    create_module name=nam$bound_network_operator..
          component=$fname(netou_file_string) sp=nap$send_network_commands..
          output=$fname(temp_map_string) ibsm=true
    change_module_attributes module=nam$bound_network_operator ..
          omit_library=cyf$run_time_library
    change_module_attributes module=nam$bound_network_operator ..
          not_gate=(cyp$allocate, cyp$free, cyp$stringrep)
    change_module_attributes module=nam$bound_network_operator ..
          retain=(nap$process_activate_alarms, nap$process_alarm_output)
    change_module_attributes module=nam$bound_network_operator onrep=on
    add_copyright nam$bound_network_operator
    generate_library l=$fname(netou_file_string)

    create_module name=nam$bound_network_op_commands ..
          component=$fname(netoc_file_string) output=$fname(temp_map_string) ibsm=true
    change_module_attributes module=nam$bound_network_op_commands ..
          omit_library=cyf$run_time_library
    change_module_attributes module=nam$bound_network_op_commands ..
          not_gate=(cyp$allocate, cyp$free)
    change_module_attributes module=nam$bound_network_op_commands ..
          retain=(nap$activate_network_alarms, nap$deactivate_network_alarms ..
          nap$receive_network_alarm, nap$send_command, nap$receive_command_response ..
          nap$end_command_processing nap$terminate_command)
    change_module_attributes module=nam$bound_network_op_commands onrep=on
    add_copyright nam$bound_network_op_commands
    generate_library l=$fname(netoc_file_string)

    create_module name=nam$bound_network_administrator ..
          component=$fname(manna_file_string) sp=nap$manage_network_applications..
          output=$fname(temp_map_string) ibsm=true
    change_module_attributes module=nam$bound_network_administrator ..
          omit_library=cyf$run_time_library
    change_module_attributes module=nam$bound_network_administrator ..
          not_gate=(cyp$allocate, cyp$free, cyp$stringrep)
    change_module_attributes module=nam$bound_network_administrator onrep=on
    add_copyright nam$bound_network_administrator
    generate_library l=$fname(manna_file_string)

    create_module name=nam$bound_tcpip_installer ..
          component=$fname(instr_file_string) sp=nap$install_tcpip_static_routes..
          output=$fname(temp_map_string) ibsm=true
    change_module_attributes module=nam$bound_tcpip_installer ..
          omit_library=cyf$run_time_library
    change_module_attributes module=nam$bound_tcpip_installer ..
          not_gate=(cyp$allocate, cyp$free, cyp$stringrep)
    change_module_attributes module=nam$bound_tcpip_installer onrep=on
    add_copyright nam$bound_tcpip_installer
    generate_library l=$fname(instr_file_string)

    create_linked_module n=nam$bound_network_operator ..
          c=(($fname(netou_file_string),nam$bound_network_operator)) rb=(4,13,13) ..
          dt=$fname(maint_catalog_path//'.netou_debug_tables') nas=next_segment  ..
          o=$fname(temp_map_string) isn=on
    generate_library $value(bound_network_operator)

    create_linked_module n=nam$bound_network_op_commands ..
          c=(($fname(netoc_file_string),nam$bound_network_op_commands)) rb=(4,6,13) ..
          dt=$fname(maint_catalog_path//'.netoc_debug_tables') ..
          nas=next_segment ss=next_segment o=$fname(temp_map_string) isn=on
    generate_library $value(bound_network_op_commands)

    create_linked_module n=nam$bound_network_administrator ..
          c=(($fname(manna_file_string),nam$bound_network_administrator)) rb=(4,13,13) ..
          dt=$fname(maint_catalog_path//'.manna_debug_tables') ..
          o=$fname(temp_map_string) isn=on

    create_linked_module n=nam$bound_tcpip_installer ..
          c=(($fname(instr_file_string),nam$bound_tcpip_installer)) rb=(4,13,13) ..
          dt=$fname(maint_catalog_path//'.instr_debug_tables') ..
          o=$fname(temp_map_string) isn=on
    generate_library $value(bound_network_administrator)

    create_module name=nam$bound_clock_manager..
          component=$fname(clock_file_string) sp=nap$clock_me..
          gate=nap$clock_me output=$fname(temp_map_string) ibsm=true
    change_module_attributes module=nam$bound_clock_manager..
          omit_library=cyf$run_time_library
    change_module_attributes module=nam$bound_clock_manager..
          not_gate=(cyp$allocate, cyp$free, cyp$stringrep)
    change_module_attributes module=nam$bound_clock_manager onrep=on
    add_copyright nam$bound_clock_manager
    generate_library l=$fname(clock_file_string)

    create_module name=nam$bound_initialization_mgr..
          component=$fname(initialization_file_string) sp=nap$independent_init_manager..
          gate=nap$independent_init_manager output=$fname(temp_map_string) ibsm=true
    change_module_attributes module=nam$bound_initialization_mgr..
          omit_library=cyf$run_time_library
    change_module_attributes module=nam$bound_initialization_mgr..
          not_gate=(cyp$allocate, cyp$free, cyp$stringrep)
    change_module_attributes module=nam$bound_initialization_mgr onrep=on
    add_copyright nam$bound_initialization_mgr
    generate_library l=$fname(initialization_file_string)

    create_module name=nam$bound_file_access_manager..
          component=$fname(file_access_file_string) sp=nap$file_access_me..
          gate=nap$file_access_me output=$fname(temp_map_string) ibsm=true
    change_module_attributes module=nam$bound_file_access_manager..
          omit_library=cyf$run_time_library
    change_module_attributes module=nam$bound_file_access_manager..
          not_gate=(cyp$allocate, cyp$free)
    change_module_attributes module=nam$bound_file_access_manager onrep=on
    add_copyright nam$bound_file_access_manager
    generate_library l=$fname(file_access_file_string)

    create_module name=nam$bound_log_manager..
          component=$fname(log_file_string) sp=nap$log_me..
          gate=nap$log_me output=$fname(temp_map_string) ibsm=true
    change_module_attributes module=nam$bound_log_manager..
          omit_library=cyf$run_time_library
    change_module_attributes module=nam$bound_log_manager..
          not_gate=(cyp$allocate, cyp$free)
    change_module_attributes module=nam$bound_log_manager onrep=on
    add_copyright nam$bound_log_manager
    generate_library l=$fname(log_file_string)

    create_linked_module n=nam$bound_clock_manager ..
          c=(($fname(clock_file_string),nam$bound_clock_manager)) rb=(4,6,13) ..
          dt=$fname(maint_catalog_path//'.clock_debug_tables') ..
          o=$fname(temp_map_string) isn=on

    create_linked_module n=nam$bound_file_access_manager ..
          c=(($fname(file_access_file_string),nam$bound_file_access_manager)) rb=(4,6,13) ..
          dt=$fname(maint_catalog_path//'.file_access_debug_tables') ..
          o=$fname(temp_map_string) isn=on

    create_linked_module n=nam$bound_log_manager ..
          c=(($fname(log_file_string),nam$bound_log_manager)) rb=(4,6,13) ..
          dt=$fname(maint_catalog_path//'.log_debug_tables') ..
          o=$fname(temp_map_string) isn=on

    create_linked_module n=nam$bound_initialization_mgr..
          c=(($fname(initialization_file_string),nam$bound_initialization_mgr)) rb=(4,6,13) ..
          dt=$fname(maint_catalog_path//'.initialization_debug_tables') ..
          o=$fname(temp_map_string) isn=on

    generate_library $value(bound_network_management)

  QUIT

  display_object_library $value(bound_network_operator) display_options=all ..
        output=$fname(temp_map_string)
  display_object_library $value(bound_network_op_commands) display_options=all ..
        output=$fname(temp_map_string)
  display_object_library $value(bound_network_administrator) display_options=all ..
        output=$fname(temp_map_string)
  display_object_library $value(bound_network_management) display_options=all ..
        output=$fname(temp_map_string)
  set_file_attributes $fname(temp_map_string) op=$boi
  copy_file $fname(temp_map_string) $value(map)
  detach_file $fname(temp_map_string)

  delete_file netoc_file_string status=ignore_status
  delete_file netou_file_string status=ignore_status
  delete_file manna_file_string status=ignore_status
  delete_file clock_file_string status=ignore_status
  delete_file restricted_unbound_component status=ignore_status
  delete_file log_file_string status=ignore_status
  delete_file instr_file_string status=ignore_status

  delete_catalog $user.network.operator status=ignore_status
  delete_catalog $user.network.administrator status=ignore_status
  delete_catalog $user.network.management status=ignore_status
  delete_catalog $user.network.maintenance status=ignore_status
  delete_catalog $user.network status=ignore_status

PROCEND bind_network_management
