Schematic case
This page describes the organizational forces that limit change.  It explains how to overcome them when necessary. 

Power& tradition holding back progress
This page uses an example to illustrate how:
  • A business can gain focus from targeting key customers,
  • Business planning activities performed by the whole organization can build awareness, empowerment and coherence. 
  • A program approach can ensure strategic alignment. 
Be responsive to market dynamics
This page uses the example of HP's printer organization freeing itself from its organizational constraints to sell a printer targeted at the IBM pc user. 
The constraints are described. 
The techniques to overcome them are implied. 
Overcome reactionaries
Primary Navigation

A histone control structure manages case request

Summary
This page describes the '
This page discusses how a Smiley based application the event processor test program's operational phase is structured. 
The goals of the event processor test application are described. 
The implementation strategy is outlined. 
Synchronization of Smiley setup completion and operation phase initiation is discussed. 
The association of structural Workspaces for state representation is discussed. 
An application specific codelet merge streams assert responds to the nature of the assertion.  It does not have an emergent structure.  Instead it reflects software engineering practice.  It includes:
  • Merge stream case specific
    • Modeling with sub-programs
    • Resolving of case
  • Non case assertion
The operation is setup, inhibited, initiated, and managed by iterative phase check-pointing provided by Smiley codelets. 
Schematic synchronization of parallel codelet cascades is performed structurally. 
The assert merge operon cascade is included. 
The Slipnet concept network for merge streams is included. 
The codelets and supporting functions are included. 
merge streams
' application's codelet implementation of a 'case, in a high level computing language a case, or switch, statement allows the specification of a series of alternative labeled items.  Any of these labels can be assigned to the case selector.  On entry to the case statement the compiler will allocate a jump to the item that is associated with a label that has the same value as is currently assigned to the case selector.  ' architecture based on the adaptive web framework's (AWF)
This page describes the Adaptive Web framework (AWF) test system and the agent programming framework (Smiley) that supports its operation. 
Example test system statements are included.  To begin a test a test statement is loaded into Smiley while Smiley executes on the Perl interpreter. 
Part of Smiley's Perl code focused on setting up the infrastructure is included bellow. 
The setup includes:
  • Loading the 'Meta file' specification,
  • Initializing the Slipnet, and Workspaces and loading them
  • So that the Coderack can be called. 
The Coderack, which is the focus of a separate page of the Perl frame then schedules and runs the codelets that are invoked by the test statement structures. 
Smiley
histone, in the eukaryotic cell are enzymes which bind to the DNA polymers supporting them and controlling their interactions with other enzymes.  In particular sets of DNA operons can be enabled or disabled by histone induced changes in the DNA polymers shape.  In AWF the histone control of DNA has been abstracted in a codelet based implementation of operon controlled programmed case control. 
infrastructure. 
The application scenario for processing case statements is described
It involves a schematic binder complex for resolving the case statements. 
A case tagged application schemata
The Smiley infrastructure that supports the case architecture is reviewed
The
This page describes the Copycat Workspace. 
The specialized use of the Workspace by the adaptive web framework's (AWF) Smiley is discussed. 
How text and XML are imported into the Smiley Workspace is described. 
Telomeric aging of schematic structures is introduced. 
The internal data structure used to represent the state of each workspace object is included. 
The Workspace infrastructure functions are included. 
Workspace
Plans emerge in complex adaptive systems (CAS) to provide the instructions that agents use to perform actions.  The component architecture and structure of the plans is reviewed. 
schematic strings
that implement the operon is an addressable control structure which is used in biological cells to control access to other regions of the DNA. 
supporting histone like case control are included
The
This page describes the Copycat Slipnet. 
The goal of the Slipnet is reviewed. 
Smiley's specialized use of the Slipnet is introduced. 
The initial Slipnet network used by the 'Merge Streams' and 'Virtual Robot' agent-based applications is setup in initchemistry and is included. 
The Slipnet infrastructure and initialization functions are included. 
Slipnet
concept network for the '
This page discusses how a Smiley based application the event processor test program's operational phase is structured. 
The goals of the event processor test application are described. 
The implementation strategy is outlined. 
Synchronization of Smiley setup completion and operation phase initiation is discussed. 
The association of structural Workspaces for state representation is discussed. 
An application specific codelet merge streams assert responds to the nature of the assertion.  It does not have an emergent structure.  Instead it reflects software engineering practice.  It includes:
  • Merge stream case specific
    • Modeling with sub-programs
    • Resolving of case
  • Non case assertion
The operation is setup, inhibited, initiated, and managed by iterative phase check-pointing provided by Smiley codelets. 
Schematic synchronization of parallel codelet cascades is performed structurally. 
The assert merge operon cascade is included. 
The Slipnet concept network for merge streams is included. 
The codelets and supporting functions are included. 
merge streams
' application's histone like case control is included
The codelets and supporting functions are included
Introduction
Histones, in the eukaryotic cell are enzymes which bind to the DNA polymers supporting them and controlling their interactions with other enzymes.  In particular sets of DNA operons can be enabled or disabled by histone induced changes in the DNA polymers shape.  In AWF the histone control of DNA has been abstracted in a codelet based implementation of operon controlled programmed case control. 
bind to eukaryotic, a relatively large multi-component cell type from which yeast and multi-celled plants and animals, including humans, is constructed.  It contains modules including a nucleus and production functions such as mitochondria.   nuclear, a membrane bounded module in a eukaryotic cell where the DNA is encapsulated and operated on. 
DNA (DNA), a polymer composed of a chain of deoxy ribose sugars with purine or pyrimidine side chains.  DNA naturally forms into helical pairs with the side chains stacked in the center of the helix.  It is a natural form of schematic string.  The purines and pyrimidines couple so that AT and GC pairs make up the stackable items.  A code of triplets of base pairs (enabling 64 separate items to be named) has evolved which now redundantly represents each of the 20 amino-acids that are deployed into proteins, along with triplets representing the termination sequence.  Chemical modifications and histone binding (chromatin) allow cells to represent state directly on the DNA schema.  To cope with inconsistencies in the cell wide state second messenger and evolved amplification strategies are used. 
helping to shape it and providing
Plans are interpreted and implemented by agents.  This page discusses the properties of agents in a complex adaptive system (CAS). 
It then presents examples of agents in different CAS.  The examples include a computer program where modeling and actions are performed by software agents.  These software agents are aggregates. 
The participation of agents in flows is introduced and some implications of this are outlined. 
agent-based
control of operon is an addressable control structure which is used in biological cells to control access to other regions of the DNA. 
binding of multi-component protein, a relatively long chain (polymer) of peptides.  Shorter chains of peptides are termed polypeptides.   complexes. 

Analogously, in the Adaptive Web Framework (AWF), a case control structure, in a high level computing language a case, or switch, statement allows the specification of a series of alternative labeled items.  Any of these labels can be assigned to the case selector.  On entry to the case statement the compiler will allocate a jump to the item that is associated with a label that has the same value as is currently assigned to the case selector.   can be implemented by a complex adaptive system (
This page introduces the complex adaptive system (CAS) theory frame.  The theory is positioned relative to the natural sciences.  It catalogs the laws and strategies which underpin the operation of systems that are based on the interaction of emergent agents. 
John Holland's framework for representing complexity is outlined.  Links to other key aspects of CAS theory discussed at the site are presented. 
CAS
) using
This page discusses the tagging of signals in a complex adaptive system (CAS).  Tagged signals can be used to control filtering of an event stream.  Examples of CAS filters are reviewed. 
histone control
of
Plans emerge in complex adaptive systems (CAS) to provide the instructions that agents use to perform actions.  The component architecture and structure of the plans is reviewed. 
schematic
binding to integrate high level
Flows of different kinds are essential to the operation of complex adaptive systems (CAS). 
Example flows are outlined.  Constraints on flows support the emergence of the systems.  Examples of constraints are discussed. 
constraints
with agent's  (schemata, codelets) goals and assessments.  Once a case operator has been resolved and deployed the resulting schematic string can be activated using histone control. 

Resolving case with a case operon
The presence of a non-salient application specific case
This page describes the Copycat Workspace. 
The specialized use of the Workspace by the adaptive web framework's (AWF) Smiley is discussed. 
How text and XML are imported into the Smiley Workspace is described. 
Telomeric aging of schematic structures is introduced. 
The internal data structure used to represent the state of each workspace object is included. 
The Workspace infrastructure functions are included. 
Workspace
operon allows for case specific binding complexes to operate when enabled by histones.  The presence of histones can limit the target salience assessment region that group scouts use

The case binding complex transcribes the case schemata.  Case schemata are keywords, from the specification, which include the
This page describes the Smiley infrastructure and codelets that instantiate the epiphenomena defined in the Meta file and Slipnet. 
Infrastructure sensors are introduced. 
The role of phenomena in shaping the environment is discussed. 
The focusing of forces by phenomena in Smiley is discussed. 
The Meta file association of case keywords with phenomena is included. 
The codelets and supporting functions are included. 
ptcaset token
.  On successful completion the application (such as merge streams) creates the contextual Workspace structures to support binding of the resolved case binder complex and signals it. 

Resolving binder complex deploys resolved schemata
The transcribed Workspace structures are then bound by a case resolving binder complex which generates a resolved Workspace structure that is deployed with histone bindings to a separate Workspace. 
The case resolving binder complex is a schematic codelet aggregate which includes:

The histone inactivated schemata can be studied by test statement codelets. 

The deployed resolved schemata can be operationalized by activating the histone. 
Application specific case schemata
The case schemata are an example of application schematic plans which are
Rather than oppose the direct thrust of some environmental flow agents can improve their effectiveness with indirect responses.  This page explains how agents are architected to do this and discusses some examples of how it can be done. 
indirectly
This page describes the Smiley infrastructure that supports the associative binding of schematic strings to codelets defined in the Meta file and Slipnet. 
The infrastructure supporting the associations is introduced. 
The role of Jeff Hawkins neocortical attributes is discussed. 
Relevant Slipnet configurations are included. 
The codelets and supporting functions are included. 
associated
with the application istrings by mkw.  The
Agents use sensors to detect events in their environment.  This page reviews how these events become signals associated with beneficial responses in a complex adaptive system (CAS).  CAS signals emerge from the Darwinian information model.  Signals can indicate decision summaries and level of uncertainty. 
association
by mkw of specific schemata correlated to the keywords tokens allows application subgroup schemata to be telomerically seal the ends of a chromosome.  During each replication of the chromosome the telomeres shrink slightly.  Over time they act as an indication of the total age of the organism and contribute to the death from 'old age' of some organisms.  Stem cells are protected from this chromosomal aging by telomerases.  But differentiated cells are expected to die and do not express telomerase.  In the adaptive web framework's (AWF) Smiley telomeric infrastructure counts down the age of telomeric schematic strings.  The analogy with a real telomere is weak and has no operational equivalence! 
deployed into the Workspace.  The codelets which support the application case subgroup schemata select Workspace object (WSO) whose salience, Douglas Hofstadter controlled the amount of attention a Workspace object in Copycat would receive from codelets via its salience.  The more descriptions, analogous to geons, an object has and the more highly activated the nodes involved therin, the more important the object is.  Modulating this tendency is any relative lack of connections from the object to the rest of the objects in the Workspace.  Salience is a dynamic number that takes into account both these factors.  In Smiley the instantaneous salience of a Workspace's objects is calculated by itsalience.   is based on corresponding keywords in the WSO string. 

Case modeling codelets can be specific to particular semantic scenarios:

The case group whole operon provides sub group schemata for the selector to model its constituent groups. 

The application provides implementations of its schematically defined case architecture's virtual codelets.  The support includes:
Smiley infrastructure for supporting the case architecture
The application and its schematically defined case architecture are supported by adaptive web framework (AWF) system codelets and infrastructure.  The support includes:
This page describes the Copycat Coderack. 
The details of the codelet architecture are described. 
The specialized use of the Coderack by the adaptive web framework's (AWF) Smiley is discussed. 
The codelet scheduling mechanism is discussed. 
A variety of Smiley extensions to the Coderack are reviewed. 
The Coderack infrastructure functions are included. 
Coderack
services: ittemperature, ithappiness, itstrengths, itsalience; and
Workspace salience services: selsalwsitem, selswspart, selfacet, normfacet; enforce the histones, in the eukaryotic cell are enzymes which bind to the DNA polymers supporting them and controlling their interactions with other enzymes.  In particular sets of DNA operons can be enabled or disabled by histone induced changes in the DNA polymers shape.  In AWF the histone control of DNA has been abstracted in a codelet based implementation of operon controlled programmed case control. 
effects. 

AWF histones, in the eukaryotic cell are enzymes which bind to the DNA polymers supporting them and controlling their interactions with other enzymes.  In particular sets of DNA operons can be enabled or disabled by histone induced changes in the DNA polymers shape.  In AWF the histone control of DNA has been abstracted in a codelet based implementation of operon controlled programmed case control. 
are analogs of the epi-genetic structures represent state surfaces within cells and eggs which can be operationally modified so as to provide a heritable structure.  DNA, histones and other stable structures provide surfaces where these states may be setup.  Egg carriers are in a particularly powerful position to induce epi-genetic changes.  Sapolsky notes [childhood] events which persistently alter brain structure and behavior via epi-genetic mechanisms including: pair-bonding in prairie voles, as they first mate, is supported by changes in oxytocin & vasopressin receptor gene regulation in the nucleus accumbens. 
which support the operation and control of eukaryotic, a relatively large multi-component cell type from which yeast and multi-celled plants and animals, including humans, is constructed.  It contains modules including a nucleus and production functions such as mitochondria.   nuclear, a membrane bounded module in a eukaryotic cell where the DNA is encapsulated and operated on. 
DNA (DNA), a polymer composed of a chain of deoxy ribose sugars with purine or pyrimidine side chains.  DNA naturally forms into helical pairs with the side chains stacked in the center of the helix.  It is a natural form of schematic string.  The purines and pyrimidines couple so that AT and GC pairs make up the stackable items.  A code of triplets of base pairs (enabling 64 separate items to be named) has evolved which now redundantly represents each of the 20 amino-acids that are deployed into proteins, along with triplets representing the termination sequence.  Chemical modifications and histone binding (chromatin) allow cells to represent state directly on the DNA schema.  To cope with inconsistencies in the cell wide state second messenger and evolved amplification strategies are used. 
.



The following schematic strings are loaded by convbws.  They are group schemata which are associated with nuclear agents (nuclabm evaluator & builder) which respond to codelet signals by deploying the included sub-group schemata to the active
This page describes the Copycat Workspace. 
The specialized use of the Workspace by the adaptive web framework's (AWF) Smiley is discussed. 
How text and XML are imported into the Smiley Workspace is described. 
Telomeric aging of schematic structures is introduced. 
The internal data structure used to represent the state of each workspace object is included. 
The Workspace infrastructure functions are included. 
Workspace


The Meta-keyword <comment> toggles convbws loading between comment mode and processing active <keywords>.  In the following the initial <comment> switches convbws into active mode. 

The active keywords include meta-keyword instructions for convbws, such as <rhlmspg> and <memgroup> and schematic keywords that will be processed during nuclear operations.  The first keyword of a schematic string also identifies the start of the group and the start of the deployed subgroup. 



<comment> (<rhlmspg> <memgroup> <model> <schema> <casecategory> <selector> <groupcomplete> <model> <casecategory> <selector> <salience> <threshold> <model> <casecategory> <selector> <jhlabel> <groupcomplete> </memgroup> </rhlmspg> )<comment>




msslistkw signalled meme
The slistkw builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<mergestreams> <schema> <assert> <startlistkw>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


#<!-- start tag aso -->
<comment> (<rhlmspg> <memgroup> <mergestreams> <schema> <assert> <startlistkw> <mergestreams> <for> <case> <resolved> <assert> <semantics> <ivalw> </memgroup> </rhlmspg> )<comment> acsao



mssrcdkw signalled meme
The srcdkw builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<mergestreams> <schema> <assert> <startrcdkw>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 



<comment> (<rhlmspg> <memgroup> <mergestreams> <schema> <assert> <startrcdkw> <mergestreams> <for> <case> <resolved> <assert> <semantics> <startrcdkw> </memgroup> </rhlmspg> )<comment> crsm



msbcsubps signalled meme
The bcsubps builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<mergestreams> <schema> <subprogram> <assert> <initiate>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 



<comment> (<rhlmspg> <memgroup> <mergestreams> <schema> <subprogram> <assert> <initiate> <mergestreams> <for> <case> <resolved> <subprogram> <assert> <semantics> <startrcdkw> </memgroup> </rhlmspg> )<comment> crsm



msendlistkw signalled meme
The endlistkw builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<mergestreams> <schema> <assert> <endlistkw>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 



<comment> (<rhlmspg> <memgroup> <mergestreams> <schema> <assert> <endlistkw> <mergestreams> <for> <case> <resolved> <assert> <semantics> <startrcdkw> </memgroup> </rhlmspg> )<comment> crsm




mscrsm signalled meme
The crsm builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<mergestreams> <schema> <assert> <semantics>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <mergestreams> <schema> <assert> <semantics> <mergestreams> <for> <case> <resolved> <assert> <aggregate> <semantics> </memgroup> </rhlmspg> )<comment> crsmox



mscrsm signalled sub
The crsm builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<mergestreams> <schema> <subprogram> <assert> <semantics>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <mergestreams> <schema> <subprogram> <assert> <semantics> <mergestreams> <for> <case> <resolved> <subprogram> <assert> <aggregate> <semantics> </memgroup> </rhlmspg> )<comment> crsmox



msicompd signalled meme
The icompd builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<mergestreams> <schema> <assert> <completed> <investigation>) is associated with a meme group.  Its signal must also be synchronized with the wait and relay uwars codelet (builder) which holds the unbind signal.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


#<!-- start tag aso -->
<comment> (<rhlmspg> <memgroup> <mergestreams> <schema> <assert> <completed> <investigation> <mergestreams> <for> <case> <resolved> <histone> <case> <do> </memgroup> </rhlmspg> )<comment> msadob



msadob signalled meme
The msadob builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<hdo> <schema> <histone> <case> <do>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <hdo> <schema> <histone> <case> <do> <hdo> <for> <histone> <do> <case> </memgroup> </rhlmspg> )<comment> schbind

<comment> (<rhlmspg> <memgroup> <hdo> <schema> <histone> <case> <do> <hdo> <for> <histone> <case> <initial> </memgroup> </rhlmspg> )<comment> sloc



msdosloc signalled meme
The sloc builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<hdo> <schema> <initial>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <hdo> <schema> <initial> <hdo> <for> <case> <resolved> <histone> <case> <initialise> </memgroup> </rhlmspg> )<comment> dcrdoinit



msdcrdoinit signalled meme
The dcrdoinit builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<hdo> <schema> <histone> <case> <initialise>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <hdo> <schema> <histone> <case> <initialise> <hdo> <for> <case> <resolved> <histone> <replace> </memgroup> </rhlmspg> )<comment> dcrdowars



msdcrdowars signalled meme
The dcrdowars builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<hdo> <schema> <histone> <replace>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <hdo> <schema> <histone> <replace> <hdo> <for> <histone> <resolved> <assert> <unbind> </memgroup> </rhlmspg> )<comment> unbind

<comment> (<rhlmspg> <memgroup> <hdo> <schema> <histone> <case> <initialise> <hdo> <for> <case> <resolved> <histone> <startlistkw> </memgroup> </rhlmspg> )<comment> dcrdoslist



msdcrdoslist signalled meme
The dcrdoslist builder's
This page discusses how Smiley provides signalling to its agent-based applications. 
Alternative strategies for initiating the signalling are reviewed. 
The codelets and supporting functions are included.
signal
(<hdo> <schema> <histone> <startlistkw>) is associated with a meme group.  The nuclabm nuclear codelet (builder) matches the signal with all the identically named nuclear Workspace deployed meme groups and heuristically selects subgroup schematic strings from the complete set to send for deployment.  The signal's Slipnet description associates codelet forces (nuclabmevaluator) with the signal. 

 


<comment> (<rhlmspg> <memgroup> <hdo> <schema> <histone> <startlistkw> <hdo> <for> <case> <resolved> <histone> <skipwso> </memgroup> </rhlmspg> )<comment> dcrdononrec

<comment> (<rhlmspg> <memgroup> <hdo> <schema> <histone> <startlistkw> <hdo> <for> <case> <resolved> <histone> <startrcdkw> </memgroup> </rhlmspg> )<comment> dcrdosrecord

<comment> (<rhlmspg> <memgroup> <hdo> <schema> <histone> <startlistkw> <hdo> <for> <case> <resolved> <histone> <else> </memgroup> </rhlmspg> )<comment> dcrdoncasedesc

<comment> (<rhlmspg> <memgroup> <hdo> <schema> <histone> <startlistkw> <hdo> <for> <case> <resolved> <histone> <if> </memgroup> </rhlmspg> )<comment> dcrdocasedesc

<comment> (<rhlmspg> <memgroup> <hdo> <schema> <histone> <startlistkw> <hdo> <for> <case> <resolved> <histone> <subprogram> </memgroup> </rhlmspg> )<comment> dcrdogowithin

#<!-- start tag aso -->




#<!-- end tag aso -->
comment (<rhlmspg> <memgroup> <model> <schema> <casecategory> <selector> <groupcomplete> <model> <casecategory> <selector> <salience> <threshold> <model> <casecategory> <selector> <jhlabel> <groupcomplete> </memgroup> </rhlmspg> ) comment

#<!-- start tag aso -->
comment (<rhlmspg> <memgroup> <mergestreams> <schema> <assert> <completed> <investigation> <mergestreams> <for> <case> <resolved> <histone> <case> <do> </memgroup> </rhlmspg> ) comment msadob

#<!-- end tag aso -->
comment (<rhlmspg> <memgroup> <hdo> <schema> <histone> <case> <do> <hdo> <for> <histone> <do> <case> </memgroup> </rhlmspg> ) comment schbind

comment (<rhlmspg> <memgroup> <hdo> <schema> <histone> <case> <do> <hdo> <for> <histone> <case> <initial> </memgroup> </rhlmspg> ) comment sloc

comment (<rhlmspg> <memgroup> <hdo> <schema> <initial> <hdo> <for> <case> <resolved> <histone> <case> <initialise> </memgroup> </rhlmspg> ) comment dcrdoinit

comment (<rhlmspg> <memgroup> <hdo> <schema> <histone> <case> <initialise> <hdo> <for> <case> <resolved> <histone> <replace> </memgroup> </rhlmspg> ) comment dcrdowars

comment (<rhlmspg> <memgroup> <hdo> <schema> <histone> <replace> <hdo> <for> <histone> <resolved> <assert> <unbind> </memgroup> </rhlmspg> ) comment unbind

comment (<rhlmspg> <memgroup> <hdo> <schema> <histone> <case> <initialise> <hdo> <for> <case> <resolved> <histone> <startlistkw> </memgroup> </rhlmspg> ) comment dcrdoslist

comment (<rhlmspg> <memgroup> <hdo> <schema> <histone> <startlistkw> <hdo> <for> <case> <resolved> <histone> <skipwso> </memgroup> </rhlmspg> ) comment dcrdononrec

comment (<rhlmspg> <memgroup> <hdo> <schema> <histone> <startlistkw> <hdo> <for> <case> <resolved> <histone> <startrcdkw> </memgroup> </rhlmspg> ) comment dcrdosrecord

comment (<rhlmspg> <memgroup> <hdo> <schema> <histone> <startlistkw> <hdo> <for> <case> <resolved> <histone> <else> </memgroup> </rhlmspg> ) comment dcrdoncasedesc

comment (<rhlmspg> <memgroup> <hdo> <schema> <histone> <startlistkw> <hdo> <for> <case> <resolved> <histone> <if> </memgroup> </rhlmspg> ) comment dcrdocasedesc

comment (<rhlmspg> <memgroup> <hdo> <schema> <histone> <startlistkw> <hdo> <for> <case> <resolved> <histone> <subprogram> </memgroup> </rhlmspg> ) comment dcrdogowithin


comment (<rhlmspg> <memgroup> <mergestreams> <schema> <assert> <startlistkw> <mergestreams> <for> <case> <resolved> <assert> <semantics> <ivalw> </memgroup> </rhlmspg> ) comment acsao


comment (<rhlmspg> <memgroup> <mergestreams> <schema> <assert> <startrcdkw> <mergestreams> <for> <case> <resolved> <assert> <semantics> <startrcdkw> </memgroup> </rhlmspg> ) comment crsm


comment (<rhlmspg> <memgroup> <mergestreams> <schema> <subprogram> <assert> <initiate> <mergestreams> <for> <case> <resolved> <subprogram> <assert> <semantics> <startrcdkw> </memgroup> </rhlmspg> ) comment crsm


comment (<rhlmspg> <memgroup> <mergestreams> <schema> <assert> <endlistkw> <mergestreams> <for> <case> <resolved> <assert> <semantics> <startrcdkw> </memgroup> </rhlmspg> ) comment crsm


comment (<rhlmspg> <memgroup> <mergestreams> <schema> <assert> <semantics> <mergestreams> <for> <case> <resolved> <assert> <aggregate> <semantics> </memgroup> </rhlmspg> ) comment crsmox

comment (<rhlmspg> <memgroup> <mergestreams> <schema> <subprogram> <assert> <semantics> <mergestreams> <for> <case> <resolved> <subprogram> <assert> <aggregate> <semantics> </memgroup> </rhlmspg> ) comment crsmox

#
    my ($pconc, $jhlsid);
# msslkwbindtomsiggv
# setup the binding string for the multi path signal to control merge streams assert operation processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {startlistkw}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'acsaobuilder');
    &Awfif::addjhlstm ($jhlsid, 'ivalwbuilder');
# mselkwbindtomsiggv
# setup the binding string for the multi path signal to control merge streams assert operation processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {endlistkw}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'icompdbuilder');
    &Awfif::addjhlstm ($jhlsid, 'crsmbuilder');
# mshinibindtomsiggv
# setup the binding string for the multi path signal to control merge streams assert operation processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {initial}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msrsdinibindtomsiggv
# setup the binding string for the multi path signal to control merge streams assert operation processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {file}, $Awfif::memes-> {snnh} {sloc}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {initial}, $Awfif::memes-> {snnh} {attribr});
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {sloc}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {initial}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'lbstreambuilder');
    &Awfif::addjhlstm ($jhlsid, 'skipwsobuilder');
    &Awfif::addjhlstm ($jhlsid, 'lbstreamcompbuilder');
# msraribindtomsiggv
# setup the binding string for the multi path signal to control merge streams assert operation processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {replace}, $Awfif::memes-> {snnh} {investigation}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'unbindbuilder');
# mslscbindtomsiggv
# setup the binding string for the multi path signal to control stream complete processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'unbindbuilder');
# &Awfif::addjhlstm ($jhlsid, 'uwarsbuilder');
# msadobbindtomsiggv
# setup the binding string for the multi path signal to control merge streams case resolve assert do begin processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {do}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msadoibindtomsiggv
# setup the binding string for the multi path signal to control merge streams case resolve assert do begin processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {initialise}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'dcrdoslistbuilder');
    &Awfif::addjhlstm ($jhlsid, 'dcrdowarsbuilder');
# msadowarsbindtomsiggv
# setup the binding string for the multi path signal to control merge streams case resolve assert do relay processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {replace}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'unbindbuilder');
# msadoslibindtomsiggv
# setup the binding string for the multi path signal to control merge streams case resolve assert do slist processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {startlistkw}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'dcrdononrecbuilder');
    &Awfif::addjhlstm ($jhlsid, 'dcrdocasedescbuilder');
    &Awfif::addjhlstm ($jhlsid, 'dcrdoncasedescbuilder');
    &Awfif::addjhlstm ($jhlsid, 'dcrdogowithinbuilder');
    &Awfif::addjhlstm ($jhlsid, 'dcrdosrecordbuilder');
# msadrasbindtomsiggv
# setup the binding string for the multi path signal to control merge streams case resolve assert each stream processing - assert codelets launch nuclabmcodelets which ignore the concept as long as it had an evaluator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
# next want to setup the operon
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, ($jhlsid = Awfif::addjhlst ($Awfif::memes-> {snnh} {mpsignal}, $pconc, 2, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc)), $pconc,# ****
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {each}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {nuclabmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlstm ($jhlsid, 'schbindbuilder');
    &Awfif::addjhlstm ($jhlsid, 'slocbuilder');
# msadobgsbindtobis
# setup the binding string for the goal suppressor

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {hdo}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {selector}, $Awfif::memes-> {snnh} {schema}, $Awfif::memes-> {snnh} {attribr});
# mshcebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {do}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {schbindevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscrdsebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {execute}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {schbindevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscrdwarsebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {replace}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {dcrdowarsevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscrdunbebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {unbind}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {unbindevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscrlbsebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {file}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {lbstreamevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscrskwebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {skipwso}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {skipwsoevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscrunebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {unbind}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {unbindevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscrriebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {replace}, $Awfif::memes-> {snnh} {investigation}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {uwarsevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscrcoebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {lbstreamcompevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscruwebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {replace}, $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {uwarsevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msstunebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {unbind}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {unbindevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscompstebindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {source}, $Awfif::memes-> {snnh} {target}, $Awfif::memes-> {snnh} {compare}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {stbindevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscstislocebindtobis
# setup the binding string for the indirect sloc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {source}, $Awfif::memes-> {snnh} {target}, $Awfif::memes-> {snnh} {list}, $Awfif::memes-> {snnh} {initial}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {indslocevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscshslocebindtobis
# setup the binding string for the shadow sloc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {source}, $Awfif::memes-> {snnh} {target}, $Awfif::memes-> {snnh} {merge}, $Awfif::memes-> {snnh} {initial}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {shslocevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
#<!-- start tag sir -->
# mscircpebindtobis
# setup the binding string for the innate receptor i char pair

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {source}, $Awfif::memes-> {snnh} {target}, $Awfif::memes-> {snnh} {compare}, $Awfif::memes-> {snnh} {streams}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {rchpairevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscirpkwebindtobis

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {source}, $Awfif::memes-> {snnh} {target}, $Awfif::memes-> {snnh} {match}, $Awfif::memes-> {snnh} {name}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {ripkwmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mscirchpintebindtobis

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {source}, $Awfif::memes-> {snnh} {target}, $Awfif::memes-> {snnh} {integrate}, $Awfif::memes-> {snnh} {compare}, $Awfif::memes-> {snnh} {streams}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {rchpintevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
#<!-- end tag sir -->
# mshcslbindtobis
# setup the binding string for the start locator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {initial}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {slocevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mshcslibindtobis
# setup the binding string for the start locator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {startlistkw}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {dcrdoslistevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mshcnonrbindtobis
# setup the binding string for the dcr do non rec

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {skipwso}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {dcrdononrecevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mshcncaserbindtobis
# setup the binding string for the dcr do ncase desc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {else}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {dcrdoncasedescevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mshccaserbindtobis
# setup the binding string for the dcr do ncase desc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {if}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {dcrdocasedescevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mshcgowbindtobis
# setup the binding string for the dcr do gowithin

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {dcrdogowithinevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mshcsrecbindtobis
# setup the binding string for the dcr do srecord

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {startrcdkw}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {dcrdosrecordevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# mssfdslbindtobis
# setup the binding string for the start locator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {file}, $Awfif::memes-> {snnh} {sloc}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {initial}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {slocevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msacrsbindtomsig
# & a label for a sps indirectly from model via $pconc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {semantics}, $Awfif::memes-> {snnh} {startrcdkw});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# & a label for a sub-program sps indirectly from model via $pconc
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {semantics}, $Awfif::memes-> {snnh} {startrcdkw});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msacrsfbindtomsig
# & a label for a sps indirectly from model via $pconc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmofevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmofevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msacrsxbindtomsig
# & a label for a sps indirectly from model via $pconc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {aggregate}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmoxevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {aggregate}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmoxevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
##***hn msacrsibindtomsig hne***
# & a label for a sps indirectly from model via $pconc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {if}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmoievaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {if}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmoievaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msacrseibindtomsig
# & a label for a sps indirectly from model via $pconc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {elsif}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmoeievaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {elsif}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmoeievaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msacrsebindtomsig
# & a label for a sps indirectly from model via $pconc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {else}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmoeevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {else}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmoeevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msacrsmbindtomsig
# & a label for a sps indirectly from model via $pconc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {match}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmomevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {match}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmomevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msacrsmebindtomsig
# & a label for a sps indirectly from model via $pconc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {melse}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmomeevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {melse}, $Awfif::memes-> {snnh} {semantics});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {crsmomeevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msacsresebindtomsig
# & a label for a sps indirectly from model via $pconc

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 18, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {deploy}, $Awfif::memes-> {snnh} {schema});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {csresevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msdobslbindtobis
# setup the binding string for the start locator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {do}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {msadobevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msdoibindtomsig
# setup the binding string for the start locator

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {hdo}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {initialise}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {dcrdoinitevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# msacsisbindtobis
# setup the binding string for the binder

    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {mergestreams}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc, undef(), undef(), undef(), 't'), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {mergestreams}, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {resolved}, $Awfif::memes-> {snnh} {assert}, $Awfif::memes-> {snnh} {semantics}, $Awfif::memes-> {snnh} {ivalw}, $Awfif::memes-> {snnh} {attribr});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {acsaoevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# assume

    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnd}
      [$Awfif::memes-> {snnh} {assume}] = 8;
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc}
      [$Awfif::memes-> {snnh} {assume}][0] = 14;
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc}
      [$Awfif::memes-> {snnh} {assume}][1] = 5;
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$Awfif::memes-> {snnh} {assume}] = Awfif::newnlink ( $Awfif::memes-> {snnh} {successor},$Awfif::memes-> {snnh} {partconstrained},$Awfif::memes-> {snnh} {assume},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {assume}]);
# dassgbindtosig
# setup the binding string for the single path signal to initiate a dassg codelet
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {assume}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {assume}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {referenced}, $Awfif::memes-> {snnh} {streams}, $Awfif::memes-> {snnh} {specified}, $Awfif::memes-> {snnh} {in});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {dassgevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# dassgibindtosig
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {inspector}, $Awfif::memes-> {snnh} {dassginspector}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# dascgbindtosig
# setup the binding string for the single path signal to initiate a dascg codelet
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {assume}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {assume}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {selector}, $Awfif::memes-> {snnh} {is});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {dascgevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# dascgibindtosig
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {inspector}, $Awfif::memes-> {snnh} {dascginspector}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# casesabindtosig
# setup the binding string for the single path signal to initiate a casesa codelet
    $Awfif::memes-> {maxoper}++; $jhlsid = 0;
    $pconc = Awfif::pconc ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {assume}] [0], $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnc} [$Awfif::memes-> {snnh} {assume}] [1], 8, $Awfif::memes-> {currentwsbi});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {attrib}, Awfif::addjhlst ($Awfif::memes-> {snnh} {spsignal}, $pconc, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc], $pconc), $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
    &Awfif::addjhlattribs ($pconc, $Awfif::memes-> {snnh} {case}, $Awfif::memes-> {snnh} {selector}, $Awfif::memes-> {snnh} {equals});
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {evaluator}, $Awfif::memes-> {snnh} {casesaevaluator}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);
# casesaibindtosig
    $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
      [$pconc] = Awfif::newnlink ($Awfif::memes-> {snnh} {inspector}, $Awfif::memes-> {snnh} {casesainspector}, $pconc,
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$pconc]);

Functions

#
sub addhistone {
    my ($sponsor, $iactivity)=@_;
    my ($linki, $activity);
# allocate a list element to a histone that will control the activity of a wsstructure

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("addhistone sponsor $sponsor ");
      if (defined ($iactivity) ){
        print ("$iactivity ");
        };#if
      }
    if (defined ($iactivity) ){

      $activity = $iactivity;
      }#if
    else {

      $activity = 1; #inactive
      };#else
    $linki = addli (\$Awfif::histonel);
    $Awfif::histonel-> {l}[$linki][2] = $activity;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("addhistonex ret $linki\n");
      };# trace
    return $linki
    }; #addhistone
#
#<!-- end tag ds -->
#<!-- start tag dli -->
#
sub bindhistone {
    my ($myli, $cws, $cbwso)=@_;
    my ($cwsbi, $result, $asponsor, $telhdr, $atelhdr, $histdesc, $teltdesc, $i);
# bind this mylis telomomeric schema to the binder complex histone if its described

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bindhistone myli $myli cws($cws) cbwso($cbwso) ");
      }
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $asponsor = awsoadr ($Awfif::codelet-> {l} [$myli] [21]);
    $telhdr = trwsoadr ($Awfif::codelet-> {l} [$myli] [21], -1);
    $atelhdr = awsoadr ($telhdr);
    $Awfif::memes-> {currentwsbi} = $cws;
    if ( (($histdesc = findtdesc ($Awfif::wsol-> {l} [awsoadr ($cbwso)][2], $Awfif::memes-> {snnh} {histone})) != 0)
    && ((findtdesc ($Awfif::wsol-> {l} [$atelhdr][2], $Awfif::memes-> {snnh} {telomere}, $Awfif::memes-> {snnh} {lhead})) != 0)#this descriptor must exist
    && (($teltdesc = findtdesc ($Awfif::wsol-> {l} [$atelhdr][2], $Awfif::memes-> {snnh} {telomere}, $Awfif::memes-> {snnh} {ltail})) != 0)#get the tail wso from this descriptor
    ){#iterate over the telomere if it is present and bind histone if not already done

      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      for ($i = $telhdr; $i != ($Awfif::workspace-> {l} [$teltdesc] [2] - $Awfif::memes-> {snnh} {wsi}); $i = trwsoadr ($i, 1) ){

        if (!defined ($Awfif::wsol-> {l}[awsoadr ($i) ][ $Awfif::memes-> {wsohistbp}]) ){

          $Awfif::wsol-> {l}[awsoadr ($i) ][ $Awfif::memes-> {wsohistbp}] = ($Awfif::workspace-> {l} [$histdesc] [2] - $Awfif::memes-> {snnh} {wsi});
          };#if
        }; #for
      if (!defined ($Awfif::wsol-> {l}[awsoadr (($Awfif::workspace-> {l} [$teltdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ][ $Awfif::memes-> {wsohistbp}]) ){

        $Awfif::wsol-> {l}[awsoadr (($Awfif::workspace-> {l} [$teltdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ][ $Awfif::memes-> {wsohistbp}] = ($Awfif::workspace-> {l} [$histdesc] [2] - $Awfif::memes-> {snnh} {wsi});
        };#if
      };#if
    if ($histdesc != 0){

      $result = $histdesc;
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bindhistonex ret $result\n");
      };# trace
    return $result
    }; #bindhistone
#
sub controlhistone {
    my ($myli, $cws, $cbwso, $activation)=@_;
    my ($cwsbi, $result, $histdesc);
# [in]activate the binder complex histone

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("controlhistone myli $myli cws($cws) cbwso($cbwso) activation($activation) ");
      }
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $cws;
    if ( (($histdesc = findtdesc ($Awfif::wsol-> {l} [awsoadr ($cbwso)][2], $Awfif::memes-> {snnh} {histone})) != 0)
    ){#make the binder complex histone inactive

      $Awfif::histonel-> {l}[($Awfif::workspace-> {l} [$histdesc] [2] - $Awfif::memes-> {snnh} {wsi})] [2] = $activation;
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("controlhistonex ret $result\n");
      };# trace
    return $result
    }; #controlhistone
#
#<!-- end tag dli -->
#
sub nextihistone {
    my ($i, $ai)=@_;
    my ($cwsbi, $result, $i3, $ai3);
# [in]activate the binder complex histone

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr);
      $pr = $Awfif::histonel-> {l} [$Awfif::wsol-> {l} [$$ai] [$Awfif::memes-> {wsohistbp}] ] [3];
      print ("nextihistone i($i) ai($$ai) -> histonel3($pr) ");
      }
    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$$ai][ $Awfif::memes-> {wsohistbp}] ] [3] != 0) {

      $result = $Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$$ai][ $Awfif::memes-> {wsohistbp}] #*** submacrok ***#
        ] [3];
      $$ai = awsoadr ($result);
      }#if
    else {#find the end of the discontiguous inactive histone part

      $i3 = $i;
      $ai3 = awsoadr ($i3);
      while (($i3 != 0)
      && ($Awfif::wsol-> {l}[$ai3][ $Awfif::memes-> {wsohistbp}] != 0)
      && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$ai3][ $Awfif::memes-> {wsohistbp}]] [2] == 1)
      ) {

        $i3 = trwsoadr ($i3, 1);
        $ai3 = awsoadr ($i3);
        };#while
      $result = $i3;
      $$ai = $ai3;
      };
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("nextihistonex ai($$ai) ret $result\n");
      };# trace
    return $result
    }; #nextihistone
#
#<!-- start tag aso -->
#
sub getbcompcontext {
    my ($myli, $cws, $strategy)=@_;
    my ($cwsbi, $bcwso);
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $sponsortype,
    $grkwp, $grkwpr, $cdn, $cdnx);
# get the binder complex schematic jhlabel context

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("getbcompcontext myli $myli cws($cws) ");
      }
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $cws, $bcwso);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      if ( (ifindb ($myli, $sponsor, $strategy, \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge) == 1)
      ){#

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$$cws);
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("getbcompcontextx cws($$cws) ret($bcwso)\n");
      };# trace
    return $bcwso
    }; #getbcompcontext
#
#<!-- end tag aso -->
#<!-- start tag ds -resweb -->
#<!-- start tag ds -resweb -->
#
sub deploymd {# Deploy any tokens of the specified keyword as descriptors of the current wso
    my ($myli, $inmsymbol, $ws, $target, $started, $end, $depstag, $depttag, $dephtag, $newmemetics, $namespace, $strscope, $actbt) = @_;
    my ($linki, $clink, $aclink, $i, $atarget, $cwsbi, $type, $rel, $bond, $depsttf, $depstof,
    $deprf, $depbf, $depgf, $depsuccf, $deppredf, $depadjf, $depedsf, $depedef, $deptelf, $comptelf, $dephisf, $comphisf,
    $inc, $char, $continue, $linmsymbol, @lainmsymbol, $wsohm1, $awsohm1,
    $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdat, $deployst, $deployet);

    $continue = 't';
    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ($Awfif::memes-> {trace} == $Awfif::memes-> {tracehrtime}) {
      use Time::HiRes 'time';
      ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdat) = localtime(time);
      };
    $deployst = time ();
    no strict 'refs';
    if (@$inmsymbol != 0) {

      @lainmsymbol = @$inmsymbol;
      };

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("deploymd inmsymbol (@$inmsymbol) ");
      };
    do {#process the stack inmsymbol - if complete a symbol then continue to process again
    no strict 'refs';
    if (@lainmsymbol != 0) {

      $linmsymbol = pop (@lainmsymbol);
      if ($newmemetics) {

        @lainmsymbol = ();
        };#if this is being done to introduce a new memetic tag don't check all the others
      no strict 'refs';
      if (@lainmsymbol != 0) {

        $continue = 't';
        }# if
      else {

        $continue = '';
        };# else
      }
    else {

      $linmsymbol = '';
      $continue = '';
      };

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("deploymd(c) inmsymbol ($linmsymbol) wsi $ws target $target started ($$started[0],$$started[1]) end ($$end) ");
      };

    $depsttf = '';# identifies if a start descriptor can be deployed.
    $depstof = '';# identifies if a stop descriptor can be deployed.
    $depedsf = '';# identifies if a start group edge wso can be deployed.
    $depedef = '';# identifies if a stop group edge wso can be deployed.
    $deprf = '';
    $depbf = '';
    $depgf = '';
    $depsuccf = '';
    $deppredf = '';
    $depadjf = '';
    $deptelf = '';# identifies if a telomeric string can be deployed.
    $comptelf = '';# identifies if a telomeric string can be completed.
    $dephisf = '';# identifies if a telomeric string can be deployed.
    $comphisf = '';# identifies if a histone has completed.
    $inc = 0;
    $clink = $Awfif::memes-> {keywordh}{$linmsymbol};
    $Awfif::memes-> {currentwsbi} = $Awfif::memes->{keywordwsih}{$linmsymbol};
    $linki = $Awfif::wsol-> {l}[($aclink = awsoadr ($clink))][ $Awfif::memes-> {wsobkwl}]; #*** submacrok ***# # this one needs multi-level parens

    while (($linki != 0)) {
      $Awfif::memes-> {currentwsbi} = $Awfif::wsol-> {l}[ $aclink][ $Awfif::memes-> {wsobws}]; #*** submacrok ***#
      $clink = $linki;
      $linki = $Awfif::wsol-> {l}[ ($aclink = awsoadr ($clink))][ $Awfif::memes-> {wsobkwl}]; #*** submacrok ***#
      };#at completion of while should have reached the tail item

    for ($i = $Awfif::wsol-> {l} [$aclink][2];
      $i < ($Awfif::wsol-> {l} [$aclink][2]
        + $Awfif::wsol-> {l} [$aclink][3]); $i++) {
      if (($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{msuccgroup}) ) {

        $depgf = 't';
        $depsuccf = 't';
        $type = $Awfif::memes-> {snnh} {succgroup};
        $inc = 1;
        }

      elsif (($$started[0] == 0) && ($$started[1]) && ($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{msuccgstart})
      ) {

        $$started[0] = $target;#this will become the sponsor
        $depsttf = 't';
        }#start completed group

      elsif (((($$started[0] == 0) && ($$started[1])) or (($$started[0] < 0) && (!$$started[1]))) && ($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{msuccgedges})
      ) {

        if (($$started[0] == 0) && ($$started[1])) {
          $$started[0] = $target;
          };
        $depedsf = 't';
        }
# deploymddtel
      elsif (((($$started[0] == 0) && ($$started[1])) or (($$started[0] < 0) && (!$$started[1]))) && ($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{telomerest})
      ) {

        $deptelf = 't';
        }
      elsif (($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{mcasehstart})
      ) {

        $dephisf = 't';
        }

      elsif ((($$started[0] != 0) && ($$started[1])) && ($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{msuccgend})
      ) {

        $$end = 't';
        $depstof = 't';
        }
      elsif ((($$started[0] != 0) && ($$started[1])) && ($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{msuccgedgee})
      ) {

        $$end = 't';
        $depedef = 't';
        }
      elsif (($$started[1]) && ($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{telomeresp})
      ) {

        $comptelf = 't';
        }
      elsif (($$started[1]) && ($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{mcasehend})
      ) {

        $comphisf = 't';
        }
      elsif (($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{msuccrel}) ) {

        $deprf = 't';
        $depsuccf = 't';
        $rel = $Awfif::memes-> {snnh} {successor};
        $inc = 1;
        }
      elsif (($Awfif::memes-> {snnh} {$Awfif::symbolsets-> {imeta} {$Awfif::memes-> {keywordl}[$i]}} == $Awfif::memes-> {snnh}{msuccbond}) ) {

        $depbf = 't';
        $depsuccf = 't';
        $bond = $Awfif::memes-> {snnh} {successor};
        $inc = 1;
        };
      }; #for
    $Awfif::memes-> {currentwsbi} = $ws;
    $atarget = awsoadr ($target);
# deploymdgc

    if (($depgf) && ($depstof) && ($$started[1])){
      my ($i, $astarted, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends);

      $astarted = awsoadr ($$started[0]);
      $Awfif::wsol-> {l} [$astarted ][2]
        = setupdesc ( $type,
          ($Awfif::memes-> {snnh} {wsi} + $target), #must detail the end wso which should be 2 in front of this + >
          $Awfif::memes-> {snnh} {groupend},
          $Awfif::wsol-> {l} [$astarted ][2],
          $astarted);
      $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$astarted ][2]] [8] = $Awfif::memes-> {snnh} {iterator};
      $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$astarted ][2]] [9] = ($Awfif::memes-> {snnh} {wsi} + 1);
# now can setup any jhlabels
      if ((defined ($actbt)) && ($actbt)) {
        &actnodes ($Awfif::memes-> {snnh} {dname}, $Awfif::memes-> {groupatype}, $strscope);
        };

      $sigcount = labinv1 ($myli,
          &trwsoadr ($$started[0], -1),
          $target,
          't',
          $$started[0],
          \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, undef(), undef(), 'notoporstbinding');
      if ($sigcount > 0) {
        my ($atti, $newjhls, $mainjhls);

        for ($i = 0; $i < $sigcount; $i++) {
          if ($lomatchs[$i]) {#
#

            if (($Awfif::jhls-> {l} [$lola[$i]][4] != $Awfif::memes-> {snnh}{operon}) && ($Awfif::jhls-> {l} [$lola[$i]][4] != $Awfif::memes-> {snnh}{stbinding}) && ($Awfif::jhls-> {l} [$lola[$i]][4] != $Awfif::memes-> {snnh}{subpstbinding})){
# this is the first group complete
# add a jhlabel for this workspace group
# initialise the ws specific slipnet items

              ©sn1 ($Awfif::memes-> {currentwsbi}, $Awfif::memes->{snnih}{$Awfif::jhls-> {l} [$lola[$i]] [6]});
# deploymdieu1

              $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}] {snnl} [$namespace] = newnlink ($Awfif::memes-> {snnh} {attrib}, ($newjhls = addjhlst ($Awfif::memes-> {snnh} {schema}, $namespace, 1, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}] {snnl}[$namespace], $Awfif::jhls-> {l} [$lola[$i]] [6], $Awfif::memes-> {currentwsbi}, $lostrts[$i], $loends[$i], $Awfif::jhls-> {l} [$lola[$i]] [15] [0])), $namespace, $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$namespace]);
# deploymdrsubu1
              if (!defined ($mainjhls)){

                $mainjhls = $newjhls;
                }#if
              else {#this is a subjhls

                $Awfif::jhls-> {l} [$mainjhls] [20] [++$Awfif::jhls-> {l} [$mainjhls] [20][0]] = $newjhls;
                };#if
              $atti = $Awfif::jhls-> {l} [$lola[$i]] [5];
              $atti = $Awfif::attribs-> {l} [$atti][1];#move past the start attribute
              while (($Awfif::attribs-> {l} [$atti][2]) != $Awfif::memes-> {snnh}{attribe}) {

                &addjhlattrib ($namespace, $Awfif::attribs-> {l} [$atti][3], $Awfif::attribs-> {l} [$atti][4]);
                $atti = $Awfif::attribs-> {l} [$atti][1];#next
                };

              &addjhlattribs ($namespace);
# deploymdtrfu
              if ((defined($Awfif::jhls-> {l} [$lola[$i]] [17])) && ($Awfif::jhls-> {l} [$lola[$i]] [17] != 0)) {

                $Awfif::jhls-> {l} [$newjhls][17] = $Awfif::jhls-> {l} [$lola[$i]] [17];
                };#if
# deploymdtranbu
              if ((defined($Awfif::memes-> {catchstring} [0])) && ($Awfif::memes-> {catchstring} [0] > 0) ){

                $Awfif::jhls-> {l} [$newjhls] [18] = $Awfif::memes-> {catchstring};
                $Awfif::memes-> {catchstring} = ();
                }#if
              elsif ((defined($Awfif::jhls-> {l} [$lola[$i]] [18] )) && ($Awfif::jhls-> {l} [$lola[$i]] [18] [0] != 0)) {

                $Awfif::jhls-> {l} [$newjhls] [18] = $Awfif::jhls-> {l} [$lola[$i]] [18];
                };#elsif
# deploymdgcou

              $Awfif::wsol-> {l}[($astarted = awsoadr ($$started[0]))][$Awfif::memes-> {wsogcjhlsi} ] = $Awfif::slipnet-> {l} [$Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}] {snnl} [$namespace]] [2]; #*** submacrok ***#
# now add the sponsor info to the jhls
              $Awfif::jhls-> {l} [$Awfif::wsol-> {l}[$astarted][ $Awfif::memes-> {wsogcjhlsi}]] [14][0] = $Awfif::memes-> {currentwsbi}; #*** submacrok ***#
              $Awfif::jhls-> {l} [$Awfif::wsol-> {l}[$astarted][ $Awfif::memes-> {wsogcjhlsi}]] [14][1] = $$started[0]; #*** submacrok ***#
# and initialise the codelet count in the jhls
              $Awfif::jhls-> {l} [$Awfif::wsol-> {l}[$astarted][ $Awfif::memes-> {wsogcjhlsi}]] [14][2] = 0; #*** submacrok ***#
              };#associate sub operon
            };#if
          };#for
        };#if
      }
    elsif (($depgf) && ($depedef) && ($$started[1])){
# deploy an end edge wso that wont include in a group

      $char = ')';
      &newwso ($myli, \$char, 1, $Awfif::memes->{snnh}{ichar}, \$Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}], $Awfif::wsbl-> {wsot} [$Awfif::memes-> {currentwsbi}]);# make it into a char based wso
# describe the fact that this paren really substitutes for a meta tag
      $Awfif::wsol-> {l} [awsoadr ($Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}])][2]
        = setupdesc ( 0,
          ($Awfif::memes-> {snnh} {msuccgedgee}), #its an end edge
          $Awfif::memes-> {snnh} {mattrib},
          $Awfif::wsol-> {l} [awsoadr ($Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}])][2],
          awsoadr ($Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}]));
      }
    elsif (($depgf) && (($$started[0] != 0) && ($$started[1]))){

      $Awfif::wsol-> {l} [$atarget][2]
        = setupdesc ( $type,
          ($Awfif::memes-> {snnh} {wsi} + $$started[0]), #must point to start
          $Awfif::memes-> {snnh} {groupcategory},
          $Awfif::wsol-> {l} [$atarget][2],
          $atarget);
# deploymdgrouped1
      if ((!matchsnn (wsbasetype ($target), $Awfif::memes-> {snnh} {groupedcategory}))
      && ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[Awfif::wsbasetype( $target)] > 0)) {
        $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}
          [$Awfif::memes-> {snnh}{groupedcategory}] = Awfif::newnlink($Awfif::memes-> {snnh}{cibp}, wsbasetype ($target), $Awfif::memes-> {snnh}{groupedcategory},
                  $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh}{groupedcategory}]);
        $Awfif::memes->{snw}[$Awfif::memes->{currentwsbi}]-> {msnn} [$Awfif::memes-> {snnh} {groupedcategory}][wsbasetype ($target)] = 1;#lookup for matchsnn
        };#if
      };

    if (($depgf) && ($depsttf) && ($$started [1])){

      $Awfif::wsol-> {l} [$atarget][2]
        = setupdesc ( $type,
          ($Awfif::memes-> {snnh} {wsi} + $$started[0]), #must point to start
          $Awfif::memes-> {snnh} {groupstart},
          $Awfif::wsol-> {l} [$atarget][2],
          $atarget);
      $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$atarget][2]] [8] = $Awfif::memes-> {snnh} {iterator};
      $Awfif::workspace-> {l} [$Awfif::wsol-> {l} [$atarget][2]] [9] = ($Awfif::memes-> {snnh} {wsi} + 1);
      }
# deploymdnegu1
    elsif (($depgf) && ($depedsf) && ($$depstag)){
# deploy a start edge wso that wont include in a group

      $$depstag = '';
      $char = '(';
      &newwso ($myli, \$char, 1, $Awfif::memes->{snnh}{ichar}, \$Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}], $Awfif::wsbl-> {wsot} [$Awfif::memes-> {currentwsbi}]);# make it into a char based wso
# describe the fact that this paren really substitutes for a meta tag
      $Awfif::wsol-> {l} [awsoadr ($Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}])][2]
        = setupdesc ( 0,
          ($Awfif::memes-> {snnh} {msuccgedges}), #its a start edge
          $Awfif::memes-> {snnh} {mattrib},
          $Awfif::wsol-> {l} [awsoadr ($Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}])][2],
          awsoadr ($Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}]));
# deploymdhis3
      if (($$dephtag > 0)
      ){

        $Awfif::wsol-> {l}[awsoadr ($Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}])][ $Awfif::memes-> {wsohistbp}] = $$dephtag; #*** submacrok ***#
        };#if
      };
# deploymdtel

    if (($deptelf) && (!$$started[1]) && ($$depttag < 0)){
# deploy a telomeric structure into an already deployed group sponsor

      $$depttag = deptelbody ($myli, $Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}] , $ws, 1);#actually should be assigned to the link of the keywordl for telomere end descriptor
      }
    elsif (($comptelf) && ($$depttag > 0)){

      $Awfif::workspace-> {l} [$$depttag][2] = $Awfif::wsbl-> {wsbloh} [$Awfif::memes-> {currentwsbi}] + $Awfif::memes-> {snnh} {wsi};
      $$depttag = 0;
      };
# deploymdhis

    if (($dephisf) && (!$$started[1]) && ($$dephtag < 0)){
# deploy a histone binding into a wso and setup incremental process

      $$dephtag = - $$dephtag;
      }
    elsif (($dephisf) && ($$dephtag > 0) && (!$comphisf) && ($target != 0) ){

      $Awfif::wsol-> {l}[$atarget][ $Awfif::memes-> {wsohistbp}] = $$dephtag; #*** submacrok ***#
      }
    elsif (($comphisf) && ($$dephtag > 0)){
# deploymdhis2

      $Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$atarget][ $Awfif::memes-> {wsohistbp}]] [3] = $target; #*** submacrok ***#
      $Awfif::wsol-> {l}[$atarget][ $Awfif::memes-> {wsohistbp}] = 0; #*** submacrok ***#
      $$dephtag = 0;
      };

    if (($deprf) && (($$started[0] != 0) && ($$started[1])) && (!$$end) && (!$depsttf) && (!$depedsf)){# write into the previous wso a relation - held since last time don't want to do it
# deploymdwsohu1

      $awsohm1 = awsoadr ($wsohm1 = trwsoadr($Awfif::wsbl-> {wsoh} [$Awfif::memes-> {currentwsbi}], -1) );
      $Awfif::wsol-> {l} [$awsohm1 ] [2]
        = setupdesc ( $rel,
          ($Awfif::memes-> {snnh} {wsi} + $wsohm1 + $inc), #
          $Awfif::memes-> {snnh} {namedcategory},
          $Awfif::wsol-> {l} [$awsohm1][2],
          $awsohm1 );
      };

    if (($depbf) && (($$started[0] != 0) && ($$started[1])) && (!$$end) && (!$depsttf) && (!$depedsf)){# write into the previous wso a bond - held since last time don't want to do it
# deploymdwsohu2

      $awsohm1 = awsoadr ($wsohm1 = trwsoadr($Awfif::wsbl-> {wsoh} [$Awfif::memes-> {currentwsbi}], -1) );
      $Awfif::wsol-> {l} [$awsohm1 ] [2]
        = setupdesc ( $bond,
          ($Awfif::memes-> {snnh} {wsi} + $wsohm1 + $inc), #
          $Awfif::memes-> {snnh} {bondcategory},
          $Awfif::wsol-> {l} [$awsohm1][2],
          $awsohm1 );
      };
# deploymdpop2
    if ($comphisf) {

      pop (@$inmsymbol);
      $comphisf = '';
      }# if histone does not share started and end
# deploymdpop1
    elsif ((($$started[0] != 0) && ($$started[1])) && ($$end)) {

      $$started[0] = 0;
      $$started[1] = 't';
      no strict 'refs';
      if (@$inmsymbol != 0) {
        pop (@$inmsymbol);
        };
      };
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("deploymdx inmsymbol ($linmsymbol) continue ($continue) started ($$started[0],$$started[1]) end ($$end) \n");
      };# trace
    } while ($continue);
    $deployet = time ();
    $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {deploytsum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {deploytsum}] + $deployet - $deployst;
    $Awfif::memes-> {currentwsbi} = $cwsbi;
    } # end of deploymd
#
#<!-- end tag ws -->
#<!-- start tag ds -resweb -->
#<!-- start tag ca -->
#
sub normfacet {
    my($item, $facettype, $kwp, $kwpr, $sactset)=@_;
    my ($i, $ai, $i2, $bflinkp, $tinstances, $linstances,
      $notreached, $matchtoo, $desclink, $snlink, $usecache, $ikwp, $akwp );

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr );
      $pr = $Awfif::memes-> {snnih} {$facettype};
      print ("normfacet item $item, facet $pr ");
      };
# convert the absolute instance number into a real list instance
# updated for merged workspaces
    $bflinkp = $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl} [$facettype];
    $matchtoo = $Awfif::slipnet-> {l} [$bflinkp][2]; # return link node id for $item is 0
    $tinstances = 0;
    $i = 0;
    $i2 = 0;
    $notreached = 'T';
    $usecache = 't';
    $akwp = awsoadr ($kwp);
# move the kwp out of the inactive histone
    if (($Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


      $ikwp = $kwp;
      };#else

    do {

      if (($item <= $tinstances) or ($bflinkp == 0)) {

        $notreached = '';
        }#found it or scanned all items that are known
      else {

        $matchtoo = $Awfif::slipnet-> {l} [$bflinkp][2]; # return link node id
# Now for each node id look through the wsobjects for descriptors with this as to id
        if (($usecache)
        && (checkcache ('selfacetc', undef(), $bflinkp, undef (), $Awfif::memes-> {selcv}) == 1) ){

          $tinstances = $tinstances + checkcache ('selfacetc', undef(), $bflinkp, undef (), $Awfif::memes-> {selctinst});
          }
        else {#cache not set up

          $i = $kwpr;
          $ai = awsoadr($i);
          while (( $i != $ikwp) && ($ai != 0)) {#updated for merged workspaces
            if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
            && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


              $linstances = 1;
              $desclink = $Awfif::wsol-> {l} [$ai] [2]; #index to head of descriptor list

              while ($desclink != 0) {# more descriptors in this chain
# Now have the node that is head of links that should be matching matchtoo
                $snlink = $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl} [$Awfif::workspace-> {l} [$desclink] [2]]; #head
                while ($snlink != 0) {

                  if ($matchtoo == $Awfif::slipnet-> {l} [$snlink] [2] ) {# slipnet to matches

                    $linstances++;
                    };#if match

                  $snlink = $Awfif::slipnet-> {l} [$snlink] [0];#get next link
                  };# while sn links to traverse

                $desclink = $Awfif::workspace-> {l} [$desclink] [0];# walk back down chain
                };# while

              $tinstances = $tinstances + ($linstances* $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snna} {@$sactset[ $Awfif::slipnet-> {l} [$bflinkp] [2]]});
              $i = trwsoadr ($i, 1);
              };#else

            $ai = awsoadr ($i);
            }# for -> while
          };#else no cache support

        $i2 = $bflinkp;
        $bflinkp = $Awfif::slipnet-> {l} [$bflinkp] [0];#next bf linked node
        }# else
      }# do
    while ($notreached);
#

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr );
      $pr = $Awfif::memes-> {snnih} {$matchtoo};
      print ("normfacet ret $pr\n");
      };
    return $matchtoo; # all want to know is the child of $facettype that is active when cross normalization
    }# normfacet
#
#<!-- end tag ca -->
#<!-- end tag ds -->
#
sub itsalience {
    my($kwp, $kwpr, $sactset)=@_;
    my ($i, $ai, $ti1, $ati1, $tim1, $atim1, $linki, @wssc, $wssm, @wssp, $pc, $i2, $akwp, $akwpr, $tkwpr1, $atkwpr1, $tkwpm2, $atkwpm2, $tkwpm1, $atkwpm1, $ikwp, $itkwpm1, $itkwpm2);
# calculate the instantaneous salience for each wso.

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("itsalience ");
      };

    $akwp = awsoadr( $kwp);
# move the kwp out of the inactive histone
    if (($Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


      $ikwp = $kwp;
      };#else
    $akwp = awsoadr( $ikwp);
    $akwpr = awsoadr( $kwpr);
    $tkwpr1 = trwsoadr($kwpr,1);
    $atkwpr1 = awsoadr ($tkwpr1);
    $tkwpm2 = trwsoadr( $kwp,-2);
    $atkwpm2 = awsoadr ($tkwpm2);
    $tkwpm1 = trwsoadr( $kwp,-1);
    $atkwpm1 = awsoadr( trwsoadr( $kwp, -1));
    if (($Awfif::wsol-> {l}[$atkwpm1][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$atkwpm1][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#

      $itkwpm1 = nextihistone ($tkwpm1, \$atkwpm1);
      $atkwpm1 = awsoadr( $itkwpm1);
      }#if
    else {

      $itkwpm1 = $tkwpm1;
      };#else
    if (($Awfif::wsol-> {l}[$atkwpm2][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$atkwpm2][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#

      $itkwpm2 = nextihistone ($tkwpm2, \$atkwpm2);
      $atkwpm2 = awsoadr( $itkwpm2);
      }#if
    else {

      $itkwpm2 = $tkwpm2;
      };#else
    $Awfif::wsol-> {l} [ $akwpr][5] = 1; #initialize mean activation
    if (($Awfif::wsol-> {l}[$akwpr][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [
      $Awfif::wsol-> {l}[$akwpr][ $Awfif::memes-> {wsohistbp}]] [2] == 1)#*** submacrok ***#
      ) {#ignore this inactive histone
      $wssc[$akwpr] = 0;
      }#if
    else {
      $linki = $Awfif::wsol-> {l} [ $akwpr][2]; #the head attribute
# all objects should have at least one descriptor - but ....
      if ($linki != 0) {# at least one descriptor for this object

        while ($linki != 0) {
          $wssc[$akwpr] =
            ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snna} { @$sactset[ $Awfif::workspace-> {l} [$linki] [2]]})**($Awfif::memes-> {actramp})
            + ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snna} { @$sactset[ $Awfif::workspace-> {l} [$linki] [3]]})**($Awfif::memes-> {actramp})
            + ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snna} { @$sactset[ $Awfif::workspace-> {l} [$linki] [4]]})**($Awfif::memes-> {actramp})
            + $wssc [$akwpr]; # unhappiness is picked up in strategy routines
          $linki = $Awfif::workspace-> {l} [$linki][0]; #walk back from head
          }# sum the activations and unhappyness of each item
        }# there are descriptors to transform
      };#else
# assumes ithappiness has also been called????

    $i = trwsoadr ($kwpr, 1);
    $ai = awsoadr($i);
    while (( $ai != 0) && ($i != $ikwp)) {#updated for merged workspaces

      if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
      && ($Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]] [2] == 1)#*** submacrok ***#
        ) {#ignore this inactive histone


        $Awfif::wsol-> {l} [ $ai][5] = 1; #initialize mean activation
        $linki = $Awfif::wsol-> {l} [ $ai][2]; #the head attribute
# all objects should have at least one descriptor - but ....
        if ($linki != 0) {# at least one descriptor for this object

          while ($linki != 0) {
            $wssc[$ai] =
              ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snna} { @$sactset[ $Awfif::workspace-> {l} [$linki] [2]]})**($Awfif::memes-> {actramp})
              + ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snna} { @$sactset[ $Awfif::workspace-> {l} [$linki] [3]]})**($Awfif::memes-> {actramp})
              + ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snna} { @$sactset[ $Awfif::workspace-> {l} [$linki] [4]]})**($Awfif::memes-> {actramp})
              + $wssc [$ai]; # unhappiness is picked up in strategy routines

            $linki = $Awfif::workspace-> {l} [$linki][0]; #walk back from head
            }# sum the activations and unhappyness of each item
          }# there are descriptors to transform

        $wssm = ($wssm + $wssc[$ai])/2;
        $i = trwsoadr ($i, 1);
        };#else

      $ai = awsoadr($i);
      }#walk each object in the initial workspace
# generate the mean
# identify peaks

    $pc = 0;

    $i = $kwpr;
    $ai = awsoadr($i);
    while (( $ai != 0) && ($i != $ikwp)) {#updated for merged workspaces

      if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
      && ($Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
        ] [2] == 1)) {#ignore this inactive histone


        if ($wssc[$ai] > ($Awfif::memes->{peaksal}*$wssm)) {

          $wssp[$pc] = $i;
          $pc++;
          };

        $i = trwsoadr ($i, 1);
        };#else

      $ai = awsoadr($i);
      };#walk each object in the initial workspace
# deploy the spread salience

    if ($pc > 0) {
# first the edges of the ws
# in all cases if the ws base type is ruleless then activation is 0

      if ($Awfif::memes->{snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[wsbasetype($kwpr)] == 0) {
        $Awfif::wsol-> {l} [ $akwpr] [5] = 0;
        }
      elsif (($wssp[0] <= $tkwpr1)
      && ($wssc [$atkwpr1] > $wssc [$akwpr])
      ) {# worth spreading

        $Awfif::wsol-> {l} [ $akwpr] [5] = $wssc[ $atkwpr1];
        }
      else {

        $Awfif::wsol-> {l} [ $akwpr] [5] = $wssc[$akwpr];
        };

      if (($wssp[$pc-1] == $tkwpm2)
      && ($wssc[ $atkwpm2] > $wssc[$atkwpm1])
      ) {# worth spreading

        $Awfif::wsol-> {l} [ $atkwpm1][5] = $wssc[ $atkwpm2];
        }
      else {

        $Awfif::wsol-> {l} [ $atkwpm1][5] = $wssc[ $atkwpm1];
        };#else
# deploy for the general population

      $i2 = 0;
# for ($i = $kwpr+1; $i<($kwp-1); $i++) {# now spread the salience over immediate neighors
      $i = $tkwpr1;
      $ai = awsoadr($i);
      while (( $ai != 0) && ($i != $itkwpm1)) {#updated for merged workspaces

        if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
        && ($Awfif::histonel-> {l} [
          $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
          ] [2] == 1)) {#ignore this inactive histone


          $ti1 = trwsoadr ($i,1);
          $ati1 = awsoadr ($ti1);
          $tim1 = trwsoadr ($i,-1);
          $atim1 = awsoadr ($tim1);

          if ($Awfif::memes->{snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[wsbasetype($i)] == 0) {
            $Awfif::wsol-> {l} [ $ai][5] = 0;
            }
          elsif (($i2 < $pc) && ($wssp[$i2] <= ($ti1))) { #may be peak in vicinity

            if (($wssp[$i2] == $tim1)
            ||($wssp[$i2] == $ti1)) {# see if peak in this viscinity

              if (($wssp[$i2] == $tim1)
              && ($wssc[ $atim1] > $wssc[ $ati1])
              && ($wssc[ $atim1] > $wssc[$ai])
              or ($wssp[$i2] == $ti1)
              && ($wssc[ $atim1] > $wssc[ $ati1])
              && ($wssc[ $atim1] > $wssc[$ai])) {

                $Awfif::wsol-> {l} [ $ai][5] = $wssc[ $atim1];
                }
              elsif (($wssp[$i2] == $ti1)
              && ($wssc[ $ati1 ] > $wssc[ $atim1])
              &&($wssc[ $ati1] > $wssc[$ai])
              or ($wssp[$i2] == $tim1)
              && ($wssc[ $ati1] > $wssc[ $atim1])
              && ($wssc[ $atim1] > $wssc[$ai])) {

                $Awfif::wsol-> {l} [ $ai][5] = $wssc[ $ati1];
                }
              else {#copy over base value

                $Awfif::wsol-> {l} [ $ai][5] = $wssc[$ai];
                };
              } # peak in viscinity
            else {# copy over base value

              $Awfif::wsol-> {l} [ $ai][5] = $wssc[$ai];
              };#copy over base value
            if (($tim1) >= $wssp[$i2]) {

              $i2++;
              };
            }# if peak in range
          else{

            $Awfif::wsol-> {l} [ $ai][5] = $wssc[$ai];
            };

          $i = trwsoadr ($i, 1);
          };#else

        $ai = awsoadr($i);
        };#walk each object in the initial workspace
      }#peaks found
    else {

      $i = $kwpr;
      $ai = awsoadr($i);
      while (( $ai != 0) && ($i != $ikwp)) {#updated for merged workspaces

        if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
        && ($Awfif::histonel-> {l} [
          $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
            ] [2] == 1)) {#ignore this inactive histone


          if ($Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl} [wsbasetype($i)] == 0) {

            $Awfif::wsol-> {l} [ $ai][5] = 0;
            }
          else {

            $Awfif::wsol-> {l} [ $ai][5] = $wssc[$ai];
            };

          $i = trwsoadr ($i, 1)
          };#else
        };#walk each object in the initial workspace
      };#no spreading

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("itsalience\n");
      };
    }#itsalience
#
#
sub ithappiness {
    my($kwp, $kwpr, $sactset)=@_;
    my ($i, $ai, $i2, @squeakers, $lfound, $ikwp, $akwp);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ithappiness kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
      };
# Happiness aims to reflect how integrated a workspace object is with other objects.
# An unhappy object is one that has few or no connections to the rest of the objects
# in the workspace, and that thus seems to cry out for more attention.
#
# updated for merged workspaces

    $akwp = awsoadr ($kwp);
# move the kwp out of the inactive histone
    if (($Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


      $ikwp = $kwp;
      };#else

    $i = $kwpr;
    $ai = awsoadr($i);
    while (($ai != 0) && ($i != $ikwp)) {

      if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
      && ($Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
          ] [2] == 1)) {#ignore this inactive histone


        &unhappiness ($i, $kwp, $kwpr);# object's unhappyness
        $i = trwsoadr ($i, 1);
        };#else

      $ai = awsoadr($i);
      }# for -> while
# now build a list of squeakers

    $i2 = 0;
# look at each object in the active workspace
    $i = $kwpr;
    $ai = awsoadr($i);
    while (($ai != 0) && ($i != $ikwp)) {

      if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
      && ($Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
          ] [2] == 1)) {#ignore this inactive histone


        if (($Awfif::wsol-> {l} [ $ai][6] < $Awfif::memes-> {uhth}) && ($Awfif::memes->{snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[wsbasetype($i)] > 0)){ #squeeker

          $squeakers[$i2++]= $i;
          };

        $i = trwsoadr ($i, 1);
        };#else

      $ai = awsoadr($i);
      }# for-> while
# now find the loudest shouter

    $lfound = 0;
# look at each object in the active workspace
    $i = $kwpr;
    $ai = awsoadr($i);
    while (($ai != 0) && ($i != $ikwp)) {

      if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
      && ($Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]] [2] == 1)#*** submacrok ***#
          ) {#ignore this inactive histone


        if ($Awfif::wsol-> {l} [ $ai][6] + $Awfif::wsol-> {l} [ $ai][5] > $lfound){ #loudest

          $lfound = $Awfif::wsol-> {l} [ $ai][6] + $Awfif::wsol-> {l} [ $ai][5];
          };

        $i = trwsoadr ($i, 1);
        };#else

      $ai = awsoadr($i);
      }# for -> while
# now flip shout bit and deploy if true

    if ($Awfif::memes-> {shout}) {
      $Awfif::memes-> {shout} = '';

      for ($i = 0; $i<$i2; $i++) {# make each squeaker loud

        $ai = awsoadr( $squeakers[$i]);
        $Awfif::wsol-> {l} [ $ai][6] = $lfound - $Awfif::wsol-> {l} [ $ai][5];
        }# for
      }
    else {

      $Awfif::memes-> {shout} = 't';
      };

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ithappinessx\n");
      };
    }# ithappiness
#
#
sub itstrengths {
    my($kwp, $kwpr, $sactset)=@_;
    my ($i, $ai, $ikwp, $akwp);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("itstrengths kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
      };
# Strength indicates structures that align well with bonds based on deep concepts
#
#
# updated for merged workspaces

    $akwp = awsoadr ($kwp);
# move the kwp out of the inactive histone
    if (($Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


      $ikwp = $kwp;
      };#else
# look at each object in the active workspace
    $i = $kwpr;
    $ai = awsoadr ($i);
    while (( $ai != 0) && ($i != $ikwp)) {
# $Awfif::memes-> {time} [$Awfif::memes-> {sttime}] [$Awfif::memes-> {starttime}] = time ();

      if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
      && ($Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
          ] [2] == 1)) {#ignore this inactive histone

        $Awfif::wsol-> {l} [$ai][7] = 0;#object's strength
        $i = nextihistone ($i, \$ai);
        }#if
# itstrengthsbf
      elsif (($Awfif::memes-> {activationchange} [$Awfif::memes-> {currentwsbi}] == 1) && (checkwsbf ($ai, 23) == 1)) {
# $Awfif::wsol-> {l} [ $ai][7] already set

        $i = trwsoadr ($i, 1);
        }#elsif
      else {

        $Awfif::wsol-> {l} [ $ai][7] = strengthstructs ($i, $kwp, $kwpr);#object's strength
        $i = trwsoadr ($i, 1);
        };#else
      $ai = awsoadr ($i);
      }# for -> while

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("itstrengths\n");
      };
    }# itstrengths
#
#<!-- end tag ds -->
#
sub ittemperature {
    my($kwp, $kwpr, $sactset)=@_;
    my ($i, $ai, $temp, $ikwp, $akwp);
# Instantaneous temperature aims to reflect how integrated the workspace is.
# Logic seems good. If no bonds are being formed exothermically then energy
# will stay free
# in the environment. As structures are bonded together free energy will drop
# Unhappiness in copycat indicates a concept that is not involved in many bonds
# Strength indicates structures that align well with bonds based on deep concepts
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {tracetemp}) {
      print ("ittemperature kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
      };
#
#
# updated for merged workspaces

    $ai = awsoadr ($kwpr);
    $akwp = awsoadr ($kwp);
# move the kwp out of the inactive histone
    if (($Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


      $ikwp = $kwp;
      };#else
    if ($Awfif::wsol-> {l} [$ai][6] - $Awfif::wsol-> {l} [$ai][7] > 0) {
      $temp = $Awfif::wsol-> {l} [$ai][6] - $Awfif::wsol-> {l} [$ai][7];
      };
# look at each object in the active workspace
    $i = trwsoadr($kwpr, 1);
    $ai = awsoadr ($i);
    while (($i != 0) && ($i != $ikwp)) {
      if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
      && ($Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
          ] [2] == 1)) {#ignore this inactive histone
        $i = nextihistone ($i, \$ai);
        }#if
      else {
        if ($Awfif::wsol-> {l} [$ai][6] - $Awfif::wsol-> {l} [$ai][7] > 0) {
          $temp = ($temp + $Awfif::wsol-> {l} [$ai][6] - $Awfif::wsol-> {l} [$ai][7])/2;
          };
        $i = trwsoadr($i, 1);
        };#else
      $ai = awsoadr ($i);
      }# for ->
# The temperature calculation is failing currently
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {tracetemp}) {
      my ($pr);
      $pr = $Awfif::memes->{temp} [$Awfif::memes-> {currentwsbi}];
      print ("ittemperaturex $pr \n");
      };
    }# ittemperature
#
#
sub matchitokwkw {
    my($myli, $ws, $wsoid)=@_;
    my ($i2, $tkws, $cwsi, $awsoid, $i3, $found, $pws, $pwsoid, $apwsoid, $cws, $ckwb, $ckwe, $match, $nomatch, $conforms);
# match the wsoid tokens with the indirectly described tokens (actually schematic keyword equivalents)

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("matchitokwkw myli $myli ws $ws wsoid $wsoid ");
      };
    $cwsi = $Awfif::memes-> {currentwsbi};# to later restore current state
    $Awfif::memes-> {currentwsbi} = $ws;
    $awsoid = awsoadr ($wsoid);
    $pws = $Awfif::wsol-> {l}[$awsoid][ $Awfif::memes-> {wsopkwsi}];#*** submacrok ***#
    $pwsoid = $Awfif::wsol-> {l}[$awsoid][ $Awfif::memes-> {wsopkpos}];#*** submacrok ***#
# now get the context info for this codelet

    $cws = $Awfif::codelet-> {l} [$myli] [20];
    $Awfif::memes-> {currentwsbi} = $cws;
    $ckwb = trwsoadr ($Awfif::codelet-> {l} [$myli] [21], 2);
    $ckwe = $Awfif::codelet-> {l} [$myli] [22];
# check there is a match for every token defined in the context
    $nomatch = '';
    for ($i2 = $ckwb; (($i2 != $ckwe) && (!$nomatch) && (!chmdefis ($myli, $i2, $Awfif::memes-> {snnh}{sloc}, \$conforms))); $i2 = trwsoadr ($i2,1)) {

      $tkws = getwsost4 ($i2);
# move into the primary keywords workspace

      $Awfif::memes-> {currentwsbi} = $pws;
      $apwsoid = awsoadr ($pwsoid);
      $match = '';
      for ($i3 = $Awfif::wsol->{l}[$apwsoid][2]; (($i3 < ($Awfif::wsol->{l}[$apwsoid][2] + $Awfif::wsol->{l}[$apwsoid][3])) && (!$match)); $i3++) {
        if ($Awfif::memes->{keywordl}[$i3] eq $Awfif::symbolsets-> {meta} {$tkws}) {

          $match = 't';
          }#if
# matchitokwkhisu1
        elsif ( ($Awfif::symbolsets-> {meta} {$tkws} eq 'tthistonet')
        && (checkwsmd ($awsoid, $Awfif::memes-> {wsohistbp}) != 0)
        ) {#special case to match the start of a histone

          $match = 't';
          };#elsif
        }; #for
# only proceed if there was a match
      if (!$match) {

        $nomatch = 't';
        };
# switch back to the codelets context workspace to get the next item
      $Awfif::memes-> {currentwsbi} = $cws;
      }; #for
    $found = !$nomatch;

    $Awfif::memes-> {currentwsbi} = $cwsi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("matchitokwkwx ret ($found)\n");
      };
    return $found
    }# matchitokwkw
#
#
sub depwardesc {
    my($myli, $stwso, $strategy, $sactset)=@_;
    my ($cwsi, $kwp, $kwpr);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("depwardesc myli $myli stwso($stwso) ");
      if (defined ($strategy)) {
        print ("strategy ($strategy) ");
        };#if
      };
    $cwsi = $Awfif::memes-> {currentwsbi};# to later restore current state
# from the wso can look up its primary description in the meta schema

    my ($warwso, $awarwso, $warws);
    my ($bcount, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
    if (defined($strategy)){
      $bcount = ifindb ($myli, $stwso, 'warb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
      &getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$warws);
      $bcount = ifindb ($myli, $stwso, $strategy, \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset, $warws);
      $warwso = getstsbws ($myli, $sigcount, \@lomatchs, \@lola, $warws);
      $Awfif::memes-> {currentwsbi} = $warws;
      $awarwso = awsoadr ($warwso);
      $Awfif::wsol-> {l} [$awarwso][2]
      = inccounter ( $Awfif::memes-> {snnh} {waitarelay},
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {completed}), #lets start with one
          $Awfif::memes-> {snnh} {model},
          $Awfif::wsol-> {l} [$awarwso] [2],
          $awarwso,
          't',
          $Awfif::memes-> {snnh} {waitarelay},
          $Awfif::memes-> {snnh} {completed});
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("depwardescx \n");
      };
    }# depwardesc
#
#<!-- start tag ca -->
#
sub selsalwsitem {# select a salient workspace item
    my($myli, $nextinstance, $tinstances, $kwp, $kwpr, $sactset, $strategy, $omeric)=@_;
    my ($i, $i2, $found, @ca, $change, $thenextinstance, $loadcache, $usecache, $concept, $nobackoff, $ni, $ikwp, $akwp,
    $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdat);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("selsalwsitem myli $myli, strategy $strategy sactset($$sactset[0]) ");
      if (defined ($$omeric)) {
        print ("oligomeric ($$omeric) ");
        };
      };
# updated for merged workspaces

    if ($Awfif::memes-> {trace} == $Awfif::memes-> {tracehrtime}) {
      use Time::HiRes 'time';
      ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdat) = localtime(time);
      };
    $akwp = awsoadr ($kwp);
# move the kwp out of the inactive histone
    if (($Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


      }#if
    else {

      $ikwp = $kwp;
      };#else
    $nobackoff = '';
    if ((defined ($$omeric)) && ($$omeric > 1) ){
      $$omeric = 1;
      }#if
    elsif ((defined ($$omeric)) && ($$omeric == 1) ){
      $nobackoff = 't';
      };# elsif
    $found = '';
    $$tinstances = 0;
    $i2 = 0;
    $ni = 1;
    $loadcache = 2;
    $concept = $Awfif::codelet-> {l}[$myli][10];
    if (
      (!defined($Awfif::codelet-> {l}[$myli][10])) or
      ( toofewwso($kwp, $kwpr, 5))) {#list based ckecking

      $usecache = '';
      }
    else {

      $usecache = 't';
      $concept = conmsalb ($myli, $Awfif::codelet-> {l}[$myli][10], $strategy);
      };
    &itwscachecor ($strategy, $concept, 'seq', 'selsalwsitem');

# selsalcdelup1
    if (($usecache)
    && ( ($strategy ne 'tdgroup')
    && (checkcache ($strategy, $concept, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid}) != 2))

    or ( (($strategy eq 'tdgroup') && (!$nobackoff) && (checkcache ($strategy, 0, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid}) != 2) ) #should only be nobackoff if repeat call inside of tdgroupscoute so external conditions can not have changed

    or ( ($strategy eq 'tdgroup') && ($nobackoff) && (checkcache ($strategy, 0, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid}) != 5)
      && (checkcache ($strategy, 0, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid}) != 2) ) )
    ) {# cache must be loaded

      if (
      (($strategy eq 'tdgroup') && (checkcache ($strategy, 0, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid}) != 0))
      ) {# if cache is partly invalid this is indicated by a 1 or 4

        $loadcache = checkcache ($strategy, 0, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid});
        }#if
      elsif ((checkcache ($strategy, $concept, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid}) != 0)
      ) {# if cache is partly invalid this is indicated by a 1 or 4

        $loadcache = checkcache ($strategy, $concept, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid});
        }#elsif
      else {

        $loadcache = 0 + $Awfif::memes-> {backoffactive} {$strategy};#cache must be reloaded
        };#else

      &setcache ($strategy, $concept, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid}, 2 + $Awfif::memes-> {backoffactive} {$strategy});
      if (($strategy =~ /^t/)
      ){
# selsalomerup1

        &setanywscache ($strategy, 2, $nobackoff);
        };
      if ((defined($Awfif::norml-> {t}[$Awfif::memes-> {currentwsbi}][ $Awfif::cache-> {h}{$strategy}]))
      ) {

        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}] = time ();

        while ($Awfif::norml-> {t}[$Awfif::memes-> {currentwsbi}][ $Awfif::cache-> {h}{$strategy}] != 0) {# clear out the old set of items

          &freenormitem ($Awfif::norml-> {t}[$Awfif::memes-> {currentwsbi}][ $Awfif::cache-> {h}{$strategy}], $strategy);
          };#while

        &freenormiteme ($strategy);

        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] = time ();
        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswinsum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswinsum}] + $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] - $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}];
        };#if
      };#control the loading of the cache
    if (($usecache) && ($Awfif::norml-> {h}[$Awfif::memes-> {currentwsbi}][ $Awfif::cache-> {h}{$strategy}] != 0)) {#can use the normalisation cache
# ******** ****** the next instance is obtained directly from the norlalized list ****** ****

      $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}] = time ();

      $$nextinstance = $Awfif::norml-> {l} [$Awfif::norml-> {t}[$Awfif::memes-> {currentwsbi}][ $Awfif::cache-> {h}{$strategy}]][4];
      &freenormitem ($Awfif::norml-> {t}[$Awfif::memes-> {currentwsbi}][ $Awfif::cache-> {h}{$strategy}], $strategy);
      &freenormiteme ($strategy);
      $found = 't';
      if (($$nextinstance == 0) or (!defined($$nextinstance))) {

        &break ();
        $found = '';
        };

      $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] = time ();
      $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswinsum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswinsum}] + $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] - $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}];
      }
    else {

      if (($usecache) && ($loadcache == 2)
      or (($usecache) && ($loadcache == 5) && ($nobackoff))
      ) {# cache for this concept is correctly loaded
# ******** ******* can get the total salience and i2 values from the cache ******* ********

        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}] = time ();

        $i2 = checkcache ($strategy, $concept, undef(), undef(), $Awfif::memes-> {ci2});
        $$tinstances = checkcache ($strategy, $concept, undef(), undef(), $Awfif::memes-> {ctinst});

        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] = time ();
        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswicsum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswicsum}] + $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] - $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}];
        }
      else {# at best cache partly loaded (per wso)
        my($ai, $gdeltachange);
# ****** ******* ********** main workspace salience iterative calculation ****** ****
        $i = $kwpr;
        while (($i != 0) && ($i != $ikwp)) {#updated for merged workspaces

          $gdeltachange = undef ();
          if (($strategy eq 'tdgroup')
          && (defined ($Awfif::memes-> {gdeltachange} {($ai = awsoadr ($i))}))
          ){
            $gdeltachange = $Awfif::memes-> {gdeltachange} {$ai};
            $Awfif::memes-> {gdeltachange} {$ai} = undef();
            };

          if (($usecache)
          && ($Awfif::wsol-> {ni} [awsoadr ($i)] == 1)
          && ((!defined ($gdeltachange))
            or (($strategy eq 'tdgroup') && (!$gdeltachange))
            or ($strategy ne 'tdgroup'))
          && (notcsponsor ($Awfif::memes-> {currentwsbi}, $i, $loadcache))
          && (checkcache ($strategy, $concept, undef(), awsoadr ($i), $Awfif::memes-> {cvpcwso}) != 0) ){

            $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}] = time ();

            $change = checkcache ($strategy, $concept, undef(), awsoadr($i), $Awfif::memes-> {cchange});

            $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] = time ();
            $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswicsum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswicsum}] + $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] - $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}];
            }
          else {#if active these wso will have to be re calculated invalidating the caches-for-all-concepts at this wso position.
            my($change1);

            $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}] = time ();
            $ai = awsoadr ($i);
# salwsitemihist
# no salience calculation on inactive histone
            if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
            && ($Awfif::histonel-> {l} [
              $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]] [2] == 1)#*** submacrok ***#
                ) {#ignore this inactive histone
              $change = 0;
              if ($usecache) {

                &setcache ($strategy, $concept, undef(), $ai, $Awfif::memes-> {cvpcwso}, 1);

                &setcache ($strategy, $concept, undef(), $ai, $Awfif::memes-> {cchange}, $change);
                };
              if ($Awfif::histonel-> {l} [
                $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
                  ] [3] != 0){

                $i = $Awfif::histonel-> {l} [
                  $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
                    ] [3];
                }#if
              else {#some histones are not contiguous

                $i = trwsoadr ($i, 1);
                };
              }#if
# salwsitemichar
            elsif (wsbasetype ($i) == $Awfif::memes->{snnh}{ichar}) {#ignore this wso
              $change = 0;
              if ($usecache) {

                &setcache ($strategy, $concept, undef(), $ai, $Awfif::memes-> {cvpcwso}, 1);

                &setcache ($strategy, $concept, undef(), $ai, $Awfif::memes-> {cchange}, $change);
                };
              }#if
# salwsitemietrmgrgu1
            elsif ((($strategy eq 'tdgroup') or ($strategy eq 'bugroup')) && (tmgiegsponsor ($i) > 1)) {#special processing of this whole group

              $change = tmgiegsalience ($myli, $i, $kwp, $kwpr, $strategy, \$ni);
              if ($ni > 1) {

                $Awfif::wsol-> {ni}[$ai] = $ni;
                };
              if ($usecache) {

                &setcache ($strategy, $concept, undef(), $ai, $Awfif::memes-> {cvpcwso}, 1);

                &setcache ($strategy, $concept, undef(), $ai, $Awfif::memes-> {cchange}, $change);
                if ($loadcache != (0 + $Awfif::memes-> {backoffactive} {$strategy})) {

                  &setcache ($strategy, $concept, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid}, (1 + $Awfif::memes-> {backoffactive} {$strategy}));
                  };#if
                };#if
              }#if
            else {#active wso

              $change = $Awfif::memes-> {binds}-> {$strategy}->
              ($myli, $i, $kwp, $kwpr, \$change1);#mean change
              if ($usecache) {

                &setcache ($strategy, $concept, undef(), $ai, $Awfif::memes-> {cvpcwso}, 1);

                &setcache ($strategy, $concept, undef(), $ai, $Awfif::memes-> {cchange}, $change);
                if ($loadcache != (0 + $Awfif::memes-> {backoffactive} {$strategy})) {

                  &setcache ($strategy, $concept, $Awfif::memes-> {currentwsbi}, undef(), $Awfif::memes-> {cvalid}, (1 + $Awfif::memes-> {backoffactive} {$strategy}));
                  };#if
                };
              };#else

            $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] = time ();
            $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiisum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiisum}] + $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] - $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}];
            };#else
          if ($change > 0) {

            $$tinstances = $$tinstances + $change;
            $i2++;
            $ca[$i2] = $i;# record which items contribute
            if (($usecache) ) {# cache loaded

              &setcache ($strategy, $concept, undef(), $i2, $Awfif::memes-> {cvpci}, $i);
              };#if cache in use
            };#if

          if (($strategy eq 'tdgroup') or ($strategy eq 'bugroup')) {

            $i = trwsoadr ($i, $Awfif::wsol-> {ni} [awsoadr ($i)]);#get the next wso
            }#if
          else {

            $i = trwsoadr ($i, 1);
            };#else
          $ni = 1;
          if (matchbreaksalwso ($i) > 0) {

            &break();
            };#if
          }# for -> while
# ******* *********** ********* end of main workspace salience iterative calculation ****** *******
        if (($usecache) ) {# cache loaded

          &setcache ($strategy, $concept, undef(), undef(), $Awfif::memes-> {ci2}, $i2);
          &setcache ($strategy, $concept, undef(), undef(), $Awfif::memes-> {ctinst}, $$tinstances);
          };#if cache in use
        };#else
# if try to normalize too small a population the results will bias
# towards some items
# This routine aims to stop this by switching to a random selection method
#

      if (($$tinstances > 0) && ($i2 >= $Awfif::memes-> {minnorm})) {#active objects to select
        my ($i5, $nslinkh);

        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}] = time ();

        for ($i5 = 1; $i5 <= $Awfif::memes-> {maxnormitems}; $i5++) {

          $$nextinstance = 1 + int (rand ($$tinstances));
          $nslinkh = addnormitem ($$nextinstance, $strategy);
          }; #create the set of tinstances
        &ordnormlist ( $nslinkh, $strategy);
# now match the list of t elements with wsoids provided by normwsitem


        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] = time ();
        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswinsum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswinsum}] + $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] - $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}];

        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}] = time ();

        $$nextinstance = normwsitem ($myli, $$nextinstance, $kwp, $kwpr, $strategy);

        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] = time ();
        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiisum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiisum}] + $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] - $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}];

# know now have a nextinstance - throw away this item from the tail of the cache
        $$nextinstance = $Awfif::norml-> {l} [$Awfif::norml-> {t}[$Awfif::memes-> {currentwsbi}][ $Awfif::cache-> {h}{$strategy}]][4];
        &freenormitem ($Awfif::norml-> {t}[$Awfif::memes-> {currentwsbi}][ $Awfif::cache-> {h}{$strategy}], $strategy);
        &freenormiteme ($strategy);

        $found = 't';
        if (($$nextinstance == 0) or (!defined($$nextinstance))) {

          &break ();
          $found = '';
          };

        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] = time ();
        $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswinsum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswinsum}] + $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswiet}] - $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {sswist}];
        }#active objects found
      elsif ($$tinstances > 0 ) {

        $thenextinstance = 1 + int (rand ($i2));
        if (($usecache) && ($loadcache == 2)) {# cache loaded

          $$nextinstance = checkcache ($strategy, $concept, undef(), $thenextinstance, $Awfif::memes-> {cvpci});
          }
        else {

          $$nextinstance = $ca[$thenextinstance];
          };
        $found = 't';
        if (($$nextinstance == 0) or (!defined($$nextinstance))) {

          &break ();
          $found = '';
          };
        }
      else {

        $$nextinstance = 0;
        };#else
      };#else
    if ((defined ($$omeric)) && ($$omeric > 1) ){

      $$omeric = 1;
      }#if
    elsif ((defined ($$omeric)) && ($$omeric == 1) ){

      $nobackoff = 't';
      };# elsif
    if (($strategy =~ /^t/)
    ){

      &setanywscache ($strategy, 2, $nobackoff);
      };
    &uwsohist ($$nextinstance);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("selsalwsitem nextinstance $$nextinstance ret($found)\n");
      };
    return $found
    }# selsalwsitem
#
#<!-- end tag ca -->
#<!-- end tag stm -->
#<!-- start tag ca -->
#
sub selfacet {
    my($facettype, $kwp, $kwpr, $sactset)=@_;
    my ($i, $ai, $i2, $nextinstance, $bflinkp, $tinstances, $linstances,
      $notreached, $matchtoo, $desclink, $snlink, $ci, $bfc, $change, $ikwp, $akwp,
      $thenextinstance, $loadcache, $usecache, $tblock, $ciblock );
# Choose a facet as a probabalistic function of its activation and number of descriptors linked to it
# each facet has ci links back to slipnet node categories that link from ws descriptors
#
# updated for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr );
      $pr = $Awfif::memes-> {snnih} {$facettype};
      print ("selfacet facettype $pr ");
      };

# bondfacets are keyed via:
# *memes {snnh}{bondfacet}
# *head of node link list memes {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl} [head index]
# *with attributes in slipnet link list
#
    $akwp = awsoadr ($kwp);
# move the kwp out of the inactive histone
    if (($Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


      $ikwp = $kwp;
      };#else
    $bflinkp = $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl} [$facettype];
    $tinstances = 0;
    $i = 0;
    $notreached = "T";
    $ci = 0;
    $bfc = 0;
    $loadcache = '';
    $usecache = 't';# only relevent if there are some situations where the cache addresses are invalidated
# by the state of the caller

    if (($bflinkp != 0) && ($Awfif::slipnet-> {l} [$bflinkp] [0] == 0 )) {# just one child
      $nextinstance = $Awfif::slipnet-> {l} [$bflinkp] [2];
      }
    else {# check other cases

      if (($usecache)
      && (checkcache ('selfacetc', undef(), $bflinkp, undef (), $Awfif::memes-> {selcv}) == 0) ){
        $loadcache = 't';
        &setcache ('selfacetc', undef(), $bflinkp, undef (), $Awfif::memes-> {selcv}, 1);
        };
      do {

        if ($bflinkp == 0) {#end of chain of slipnet links from bondfacet

          $notreached = "";
          }#scanned all items that are known
        else {#still able to check more slipnet links from bondfacet

          $bfc++;
          $matchtoo = $Awfif::slipnet-> {l} [$bflinkp] [2];# return link node id
# Now for each node id look through the wsobjects for descriptors with this as to id
          if (($usecache) && (!$loadcache)) {# cache loaded

            $tblock = checkcache ('selfacetc', undef(), $bflinkp, undef (), $Awfif::memes-> {selctinst});
            $ciblock = checkcache ('selfacetc', undef(), $bflinkp, undef (), $Awfif::memes-> {selcchange});
            $tinstances = $tinstances + $tblock;
            $ci = $ci + $ciblock;
            }
          else {

            if ($usecache) {#so loadcache should be true

              &setcache ('selfacetc', undef(), $bflinkp, undef (), $Awfif::memes-> {selcv}, 1);
              };
            $tblock = $tinstances;
            $ciblock = $ci;
            $i = $kwpr;
            $ai = awsoadr ($i);
            while (($i != $ikwp) && ($i != 0)) {#updated for merged workspaces

              if ((checkwsmd ($ai, $Awfif::memes-> {wsohistbp}) != 0)
              && ($Awfif::histonel-> {l} [checkwsmd ($ai, $Awfif::memes-> {wsohistbp})] [2] == 1)) {#ignore this inactive histone

                if ($Awfif::histonel-> {l} [checkwsmd ($ai, $Awfif::memes-> {wsohistbp})] [3] != 0){

                  $i = $Awfif::histonel-> {l} [checkwsmd ($ai, $Awfif::memes-> {wsohistbp})] [3];
                  }#if
                else {#some histones are not contiguous

                  $i = trwsoadr ($i, 1);
                  };
                }#if
              else {

                $linstances = 1;
                $desclink = $Awfif::wsol-> {l} [ awsoadr($i)] [2]; #index to head of descriptor list
                while ($desclink != 0) {# more descriptors in this chain
# Now have the node that is head of links that should be matching matchtoo

                  $snlink = $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl} [$Awfif::workspace-> {l} [$desclink] [2]];#head
                  while ($snlink != 0) {
                    if ($matchtoo == $Awfif::slipnet-> {l} [$snlink][2] ) {# slipnet to matches

                      $linstances++;
                      };#if match
                    $snlink = $Awfif::slipnet-> {l} [$snlink][0]; #get next link
                    };# while sn links to traverse
                  $desclink = $Awfif::workspace-> {l} [$desclink][0]; # walk back down chain
                  };# while
                $change = ($linstances * $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snna} {@$sactset[ $Awfif::slipnet-> {l} [$bflinkp] [2]]});
                if ($change > 0) {

                  $ci++;
                  $tinstances = $tinstances + $change;
                  };
                $i = trwsoadr ($i, 1);
                };#else
              $ai = awsoadr ($i);
              }# for
            if ($usecache) {#load the cache with tinstance change over this slipnet concept

              &setcache ('selfacetc', undef(), $bflinkp, undef (), $Awfif::memes-> {selctinst}, $tinstances - $tblock);
              $tblock = $tinstances;
              &setcache ('selfacetc', undef(), $bflinkp, undef (), $Awfif::memes-> {selcchange}, $ci - $ciblock);
              $ciblock = $ci;
              };
            };#else not cached
          $bflinkp = $Awfif::slipnet-> {l}[$bflinkp] [0];#next bf linked node
          }# else
        }# do
      while ($notreached);
#

      if (($tinstances > 0) && ($ci >= $Awfif::memes-> {minnorm})) {

        $nextinstance = int (rand ($tinstances)); # is between 0 and (totalwsobjects -1);
#
        $nextinstance = normfacet ($nextinstance, $facettype, $kwp, $kwpr, \@$sactset);
        }
      elsif ($tinstances > 0) {

        $i2 = 1;
        $thenextinstance = 1 + int (rand ($bfc));
        $bflinkp = $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl} [$facettype];
        while (( $bflinkp > 0) && ($i2 <= $thenextinstance )) {

          $nextinstance = $Awfif::slipnet-> {l} [$bflinkp] [2];
          $bflinkp = $Awfif::slipnet-> {l} [$bflinkp][0];
          $i2++
          }; #while
        };# elsif
      }; #else

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr);
      $pr = $Awfif::memes-> {snnih} {$nextinstance};
      print ("selfacet ret $pr\n");
      };

    return $nextinstance;
    }# selfacet
#
#<!-- end tag ca -->
#
sub thrtypedwso {
    my ($myli, $nextinstance, $twso, $kwp, $kwpr, $sactset)=@_;
    my ($inbounds, $msal, $groupcomplete, $i, $ai);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("thrtypedwso myli $myli, nextinstance $nextinstance twso $twso kwp $kwp kwpr $kwpr sactset($$sactset[0]) ");
      };
    $inbounds = '';
# for each typed wso check their salience

    for ($i = trwsoadr ( $nextinstance, 1);
    $i < $twso; $i = trwsoadr ($i, 1)) {

      $ai = awsoadr ($i);
      if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
      && ($Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
          ] [2] == 1)) {#ignore this inactive histone

        $groupcomplete = '';
        }#if
      else {#not inactive histone

        $msal = ($msal + tdgroup1 ($myli, $i, $kwp, $kwpr, \$groupcomplete))/2;
        if ($groupcomplete) {

          my ($end, $sponsor, $sgdi);
          $msal = ($msal + $Awfif::memes-> {grcompaward})/2;
# now move i beyond the group end
          &fgrpd ($myli, $i, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
          $sponsor = fgrpsponsor ($i, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
          $end = fgrpend ($sponsor);# of the group
          $i = $end;
          };# handle completed groups
        };#else
      };# for

    if ($msal >= $Awfif::memes-> {salthr} ) {

      $inbounds = 't';
      };#if threshold failure

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("thrtypedwsox msal $msal ret ($inbounds)\n");
      };

    return ($inbounds);
    };# thrtypedwso
#
#<!-- end tag swp -->
#
sub selswspart {# select a salient workspace part
    my($myli, $nextinstance, $kwp, $kwpr)=@_;
    my ($i, $ai, $i2, $found, $linki, $thenextinstance, $loadcache, $usecache, $ispart, $tstring, $ikwp, $akwp);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("selswspart myli $myli ");
      };
# updated for merged workspaces

    $found = '';
    $i2 = 0;
    $akwp = awsoadr ($kwp);
# move the kwp out of the inactive histone
    if (($Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


      $ikwp = $kwp;
      };#else
    $loadcache = '';
    if ($Awfif::memes-> {iphase} < $Awfif::memes-> {iphasecomp}) {# initial phase

      $found = '';
      }
    else {

      if (
        ($Awfif::codelet-> {l}[$myli][10] eq '')
        ) {#list based ckecking

        $usecache = '';# unusual use - if false we will use the cache array but it will be reloaded each time
        }
      else {
        $usecache = 't';
        };
      if (($usecache) && ($Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] == 1)) {# cache loaded

        $loadcache = 't';
        $Awfif::pcache-> {accessed} [$Awfif::memes-> {currentwsbi}] = 't';
        };
      if ((!$usecache) or ($loadcache)) {# ws must be searched
        if (!$usecache) {# reset p

          $Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] = 1;
          };# if
        $i = $kwpr;
        $ai = awsoadr ($i);
        while (($i != 0) && ($i != $ikwp)) {#updated for merged workspaces
# see if this is a part

          $ispart = "";
          if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
          && ($Awfif::histonel-> {l} [
            $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
              ] [2] == 1)) {#ignore this inactive histone
            $i = nextihistone ($i, \$ai);
            }#if
          else {
            $linki = $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {partscategory}] ;#the head attribute
              while (($linki != 0) && (!($ispart))) {
                if (($Awfif::slipnet-> {l} [$linki] [2] == (wsbasetype ($i)))
                && ($Awfif::slipnet-> {l} [$linki] [3] == $Awfif::memes-> {snnh} {cinstance})
                && ($Awfif::slipnet-> {l} [$linki] [4] == $Awfif::memes-> {snnh} {partscategory})){

                  $ispart = 't';# reward for same bonds in proximity
                  };#if
                $linki = $Awfif::slipnet-> {l} [$linki] [0];
                };#while

            if ($ispart) {

              $Awfif::pcache-> {l} [$Awfif::memes-> {currentwsbi}] [$Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}]++] = $i;
              };
            $i = trwsoadr ($i, 1);#get the next wso
            };#else
          $ai = awsoadr ($i);
          };# for -> while
        };# if
      if ($Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] == 1) {# no parts

        $Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] = 0;
        };#cache in use
#
      if (($Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] != 0)
      && (!$Awfif::pcache-> {t} [$Awfif::memes-> {currentwsbi}] ) # group terminators have not been setup
      ){
# ensure that the wso groups are terminated

        my ($i1, $swstype, $term, $reject);
        for ($i = 1; $i < $Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}];$i++) {

          $swstype = wsbasetype ($Awfif::pcache-> {l} [$Awfif::memes-> {currentwsbi}][$i]);
          $tstring = '/'."$Awfif::memes->{snnih}{$swstype}";
          $found = '';
          $reject = '';
          $term = $kwp;

          for ($i1 = trwsoadr ($Awfif::pcache-> {l} [$Awfif::memes-> {currentwsbi}][$i],1); (($i1 < $term) && (!$found) && (!$reject));
            $i1 = trwsoadr ($i1, 1)) {
# check for match with /keyword
            if (getwsost4 ($i1) eq $tstring) {

              $found = 't';
              } #if match
            elsif ((wsbasetype ($i1) == $swstype) && (!$found)) {#reject this one

              $reject = 't';
              };#elseif repeat keyword
            };#for
          if ((!$found) or ($reject)) {

            for ($i1 = $i+1; $i1 < $Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}]; $i1++) {
              $Awfif::pcache-> {l} [$Awfif::memes-> {currentwsbi}][$i1-1] = $Awfif::pcache-> {l} [$Awfif::memes-> {currentwsbi}][$i1];
              };# for move rest down
            $Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}]--;
            $i--;
            };
          };# for check each candidate has a terminal keyword match prior to kwp

        if ($Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] > 1) {
          $thenextinstance = 1 + int (rand (($Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}])-1));
          $$nextinstance = $Awfif::pcache-> {l} [$Awfif::memes-> {currentwsbi}] [$thenextinstance];
          $found = 't';
          $Awfif::pcache-> {t} [$Awfif::memes-> {currentwsbi}] = 't';
          }# parts
        else {
          if ($loadcache) {
            $Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] = 0;
            $Awfif::pcache-> {l} [$Awfif::memes-> {currentwsbi}] = ();
            };#
          $$nextinstance = 0;
          };# no valid parts found
        }
      elsif (($Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] != 0)
      && ($Awfif::pcache-> {t} [$Awfif::memes-> {currentwsbi}] ) ){# group terminators have not been setup
        if ($Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] > 1) {
          $thenextinstance = 1 + int (rand (($Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}])-1));
          $$nextinstance = $Awfif::pcache-> {l} [$Awfif::memes-> {currentwsbi}] [$thenextinstance];
          $found = 't';
          }# parts
        else {
          if ($loadcache) {
            $Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] = 0;
            $Awfif::pcache-> {l} [$Awfif::memes-> {currentwsbi}] = ();
            };#
          $$nextinstance = 0;
          };# no valid parts found
        }#elsif
      else {

        $$nextinstance = 0;
        };#else
      &uwsohist ($$nextinstance);
      };#else not in iphase

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("selswspart nextinstance $$nextinstance ret $found\n");
      };
    return $found
    }# selswspart
#
#<!-- start tag ssc -->
#
sub mgparts {# check if this part has operons
    my ($myli, $nextinstance, $twso, $undecided, $kwp, $kwpr, $sactset)=@_;
    my ($inbounds, $msal, $groupcomplete, $i, $ai, $itwso, $atwso);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("mgparts myli $myli, nextinstance $nextinstance twso $twso kwp $kwp kwpr $kwpr ");
      };
    $atwso = awsoadr ($twso);
# move the kwp out of the inactive histone
    if (($Awfif::wsol-> {l}[$atwso][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$atwso][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


      $itwso = $twso;
      };#else
    $inbounds = '';
    $$undecided = '';
# for each typed wso check their groups for existance of atleast one operon

    for ($i = trwsoadr ( $nextinstance, 1);
    $i != $itwso;
    $i = trwsoadr ($i, 1)) {

      $ai = awsoadr ($i);
      if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
      && ($Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
          ] [2] == 1)) {#ignore this inactive histone
        $groupcomplete = '';
        }#if
      else {
        $msal = ($msal + tdgroup1 ($myli, $i, $kwp, $kwpr, \$groupcomplete))/2;
        if ($groupcomplete) {

          my ($end, $sponsor, $sgdi);
# now move i beyond the group end
          &fgrpd ($myli, $i, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
          $sponsor = fgrpsponsor ($i, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
          $end = fgrpend ($sponsor);# of the group
          if (operonfound ($myli, $Awfif::memes-> {currentwsbi}, $i, $end)) {

            $msal = ($msal + $Awfif::memes-> {grcompaward})/2;
            };
          $i = $end;
          }# if
        else {
          my ($wsoindisle, $wsoindisue, $hle, $hue, $gtype, );
# should do each leaf under groupcategory

          $gtype = $Awfif::memes-> {snnh}{succgroup};
          if ((cantgroup ($myli, trwsoadr ($i, 1), $gtype, \$wsoindisle, \$wsoindisue, \$hle, \$hue, $kwp, $kwpr, \@$sactset) && ($wsoindisle) && ($hle))) {
# know this can't contribute
            }
          else {

            $$undecided = 't';
            };
          };# else of handle completed groups
        };#else
      };# for

    if ($msal >= $Awfif::memes-> {salthr} ) {

      $inbounds = 't';
      };#if threshold failure

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("mgpartsx msal $msal undecided ($$undecided) ret ($inbounds)\n");
      };

    return ($inbounds);
    }# mgparts
#
#<!-- end tag ssc -->
#<!-- end tag swp -->
#
sub remstkw {# remove stacked keywords unless tagged with leavin token
    my ($myli, $inmsymbol)=@_;
    my (@mstack, @iainmsymbol, $kw);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("remstkw myli($myli) inmsymbol(@$inmsymbol) leavein($Awfif::memes->{leavein}[0]) ");
      };

    @mstack = ();
    @iainmsymbol = @$inmsymbol;
    while (@iainmsymbol != 0) {

      $kw = pop (@iainmsymbol);
      if (matchsaelement (\@{$Awfif::memes-> {leavein}}, $kw) != 0) {

        push (@mstack, $kw);
        };#if
      };#while

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("remstkwx ret(@mstack)\n");
      };

    return (@mstack);
    }# remstkw
#
#
sub getterminalid {# from nextinstance identify the terminal that matches
    my ($myli, $nextinstance, $undecided, $kwp, $kwpr)=@_;
    my ($id, $i, $ai, $kw, $tkw, $ikwp, $akwp);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("getterminalid myli $myli, nextinstance $nextinstance kwp $kwp kwpr $kwpr ");
      };
    $akwp = awsoadr ($kwp);
# move the kwp out of the inactive histone
    if (($Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
    && ($Awfif::histonel-> {l} [$Awfif::wsol-> {l}[$akwp][ $Awfif::memes-> {wsohistbp}]] [2] == 1)) {#*** submacrok ***#


      $ikwp = $kwp;
      };#else
    $id = 0;
    $$undecided = 't';
# get the wso's keyword
    $kw = getwsost4 ($nextinstance);
    $tkw = '/'.$kw;
# for each typed wso check their groups for existance of atleast one operon

    for ($i = trwsoadr ( $nextinstance, 1);
    $i != $ikwp; $i = trwsoadr ($i, 1)) {

      $ai = awsoadr ($i);
      if (($Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}] != 0) #*** submacrok ***#
      && ($Awfif::histonel-> {l} [
        $Awfif::wsol-> {l}[$ai][ $Awfif::memes-> {wsohistbp}]#*** submacrok ***#
          ] [2] == 1)) {#ignore this inactive histone
        }#if
      else {
        if (getwsost4 ($i) eq $tkw) {
          $id = $i;
          $$undecided = '';
          };#if
        };#else
      };# for

    if ($$undecided ) {
      if (getwsost4 ($kwp) eq $tkw) {
        $id = $kwp;
        $$undecided = '';
        };#if
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("getterminalidx undecided ($$undecided) ret ($id) for $tkw\n");
      };

    return ($id);
    }# getterminalid
#
#<!-- start tag sss -->
#
sub ilaunchmodel {#
    my($myli, $sti, $strategy, $comptype, $giveup, $kwp, $kwpr, $sactset)=@_;
    my ($i2, $whole, $cwsbi );

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr);
      $pr = $Awfif::memes-> {currentwsbi};
      print ("ilaunchmodel myli $myli ws $pr ");
      $pr = $Awfif::memes-> {snnih} {wsbasetype ($sti)};
      print (" i $pr($sti) ");
      };
# updated for merged workspaces
    $cwsbi = $Awfif::memes-> {currentwsbi};
# ilaunchmodel is inverted from partwhole

    $whole = '';
    $$giveup = '';
    $i2 = 0;
    if ($Awfif::pcache-> {p} [$Awfif::memes-> {currentwsbi}] != 0) {# there are parts
# see if the modelling still needs to agree this part is whole
      if ((!($whole = findbond ($Awfif::wsol-> {l} [ awsoadr ($sti)] [2], $comptype, wsbasetype ($sti), $Awfif::memes-> {snnh} {model})))
      && ((!($$giveup = findbond ($Awfif::wsol-> {l} [ awsoadr ($sti)] [2], $Awfif::memes-> {snnh} {stop}, wsbasetype ($sti), $Awfif::memes-> {snnh} {model}))) )
      && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($sti)] [2], $Awfif::memes-> {snnh} {start}, wsbasetype ($sti), $Awfif::memes-> {snnh} {model}))
      ){
# model the part

        &setusalcwsocache (awsoadr ($sti), undef(), (($Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {$strategy}]) | $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {delta}]), undef());
        $Awfif::wsol-> {l} [awsoadr ($sti)][2]
          = setupdesc ( wsbasetype ($sti),
              ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {start}), #add wsi to match findbond
              $Awfif::memes-> {snnh} {model},
              $Awfif::wsol-> {l} [awsoadr ($sti)][2],
              awsoadr ($sti));
        $Awfif::memes-> {fatp} = $Awfif::memes-> {fatp} + $Awfif::memes-> {batp};
# send activation to the involved Slipnet nodes
        &actnodes ( wsbasetype ($sti), $Awfif::memes-> {openatype},($Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {bugroup}] | $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {tdgroup}] | $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {delta}]));
        &invcaches (wsbasetype ($sti), $Awfif::memes-> {strbool} [$Awfif::memes-> {streh} {'tdgroup'}]);
        &itwscachecor ('tdgroup', wsbasetype ($sti), 'seq', 'ilaunchmodel');
        };# no model descriptor

      if ((!$$giveup) && (!$whole)) {#
# request modelling
        &ilaunchnc ($myli, $sti, $strategy, $comptype, \$giveup, $kwp, $kwpr, \@$sactset);
        }# if request modeller
      };# if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ilaunchmodelx ret ($whole)\n");
      };
    return $whole
    }# ilaunchmodel
#
#<!-- end tag sss -->
#
sub bindoptoinsp1 {# inspect enclosed operons
    my($myli, $sws, $wss, $wse, $compcount, $sactset)=@_;
    my ($i, $i2, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $operoncount,
      $cwsbi,
      , $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdat, $stbst, $stbet,
      $linkp, @completed, $awss);

    if ($Awfif::memes-> {trace} == $Awfif::memes-> {tracehrtime}) {
      use Time::HiRes 'time';
      ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdat) = localtime(time);
      print ("bindoptoinsp sactset($$sactset[0]) ");
      };

    $stbst = time ();
# bindoptoinspbic
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $sws;
    $awss = awsoadr ($wss);
    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if (($Awfif::wsol-> {l}[$awss][ $Awfif::memes-> {wsobti}] != 0)#*** submacrok ***#
    && ($Awfif::bicl-> {l} [$Awfif::wsol-> {l}[$awss][ $Awfif::memes-> {wsobti}]] [2] == $sws)#*** submacrok ***#
    && ($Awfif::bicl-> {l} [$Awfif::wsol-> {l}[$awss][ $Awfif::memes-> {wsobti}]] [3] == $wss)#*** submacrok ***#
    && ($Awfif::bicl-> {l} [$Awfif::wsol-> {l}[$awss][ $Awfif::memes-> {wsobti}]] [4] == $wse)#*** submacrok ***#
    ){#there is a cache element setup

      $operoncount = usebice (
        $Awfif::wsol-> {l}[$awss][ $Awfif::memes-> {wsobti}]#*** submacrok ***#
          , \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge);
      }#if
    else {

      $operoncount = operonmatch ($myli, $sws, $wss, $wse, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, 'opbinding');
      if ($Awfif::wsol-> {l}[$awss][ $Awfif::memes-> {wsobti}] == 0){#*** submacrok ***#

        &setwsmd ($awss, $Awfif::memes-> {wsobti}, addbice ($sws, $wss, $wse, $operoncount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge));
        };#if
      };#else

    $stbet = time ();
    $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {boposum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {boposum}] + $stbet - $stbst;

    $stbst = time ();

    for ($i2 = 0; $i2 < $operoncount; $i2++) {#scan the full set of operons

      my ($found);
      $found = '';
      $completed [$i2] = 't'; #if no interface assume its completed
      if ($lomatchs[$i2]) {#there is a link inspect the status
# only if this is an operon
        if (($Awfif::jhls-> {l} [$lola[$i2]][4] == $Awfif::memes-> {snnh}{operon})
        or (($Awfif::jhls-> {l} [$lola[$i]] [4] == $Awfif::memes-> {snnh} {stbinding}) && ((!defined ($myli)) or ($Awfif::codelet-> {l} [$myli] [36] == 0)))
        or (($Awfif::jhls-> {l} [$lola[$i]] [4] == $Awfif::memes-> {snnh} {subpstbinding}) && (defined ($myli)) && ($Awfif::codelet-> {l} [$myli] [36] != 0) && (($Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [4] == $lola[$i]) or ($Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [5] == $lola[$i]) or ($Awfif::subpl-> {l} [$Awfif::codelet-> {l} [$myli] [36]] [8] == $lola[$i])))
        ) {

          $linkp = $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::jhls-> {l} [$lola[$i2]][6]];

          while (($linkp != 0) && (!$found)) {
            if (($Awfif::slipnet-> {l}[$linkp][3] == $Awfif::memes-> {snnh}{inspector})
            && ($Awfif::memes-> {binds}-> {$Awfif::memes->{snnih}{$Awfif::slipnet-> {l} [$linkp][2]}} ne '')) {#can launch the real routine

              $found = 't';
              &ucsehist ($Awfif::memes->{snnih}{$Awfif::slipnet-> {l} [$linkp][2]});
              no strict 'refs';
              $completed [$i2] = $Awfif::memes-> {binds}-> {$Awfif::memes->{snnih}{$Awfif::slipnet-> {l} [$linkp][2]}}-> ($myli, $Awfif::jhls-> {l} [$lola[$i2]][7], $Awfif::jhls-> {l} [$lola[$i2]][8], $Awfif::jhls-> {l} [$lola[$i2]][9]);

              if ($Awfif::memes-> {currentwsbi} == 0) {&break();};
              if (!$completed [$i2]) {

                &actnodes ( $Awfif::jhls-> {l} [$lola[$i2]][6], $Awfif::memes-> {openatype});
                &invcaches ($Awfif::jhls-> {l} [$lola[$i2]][6], $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {tdgroup}]);
                };#ramp pseudo concept activation
              }
            $linkp = $Awfif::slipnet-> {l}[$linkp][0];
            }#while
          }; #if its an operon
        };#if
      }; #for

    $stbet = time ();
    $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {boplsum}] = $Awfif::memes-> {time} [$Awfif::memes-> {spctime}] [$Awfif::memes-> {ch}{$Awfif::codelet-> {l} [$myli] [2]}] [$Awfif::memes-> {boplsum}] + $stbet - $stbst;
    $$compcount = $operoncount;
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("bindoptoinsp1x compcount $$compcount ret (@completed)\n");
      };
    return @completed
    }# bindoptoinsp1
#
sub conagtoxr {# connect agent to external resource
    my($myli, $wso, $kwp, $kwpr, $sactset)=@_;
    my ($i, $awso, $twso, $deployed, $found, $linkp, $descp, $sgdi, $sponsor, $asponsor, $cwsbi );

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("conagtoxr myli $myli wso $wso sactset($$sactset[0]) ");
      &itwsoutput (trwsoadr ($wso,1), $wso);
      };
# updated for merged workspaces
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $deployed = '';
    $awso = awsoadr ($wso);
    $twso = isterminated ($wso, $kwp, $kwpr);
# connect agent to external resource

    $linkp = $Awfif::memes-> {snw} [$Awfif::memes-> {currentwsbi}]-> {snnl}[$Awfif::memes-> {snnh} {externalrescategory}];
    while (($linkp != 0)) {
      if (($Awfif::slipnet-> {l}[$linkp][3] == $Awfif::memes-> {snnh}{cinstance})
      ) {#check the wso descriptor list for matching descriptors and if found communicate attributes to groups

        $descp = $Awfif::wsol-> {l} [$awso][2];
        while (($descp != 0)) {
          if (($Awfif::workspace-> {l}[$descp][3] == $Awfif::memes-> {snnh}{attrib})
          && ($Awfif::workspace-> {l}[$descp][4] == $Awfif::slipnet-> {l}[$linkp][2])
          ) {#if found communicate attributes to groups

            $found = 't';
# process direct reference structures immediately after the stream specification
            $i = $Awfif::attribs-> {l} [($Awfif::workspace-> {l}[$descp][2] - $Awfif::memes-> {snnh}{wsi}) + 3][3];
            fgrpd ($myli, $i, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
            $sponsor = fgrpsponsor ($i, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});

            $i = trwsoadr (fgrpend ($sponsor), 1);
            while (($i != 0) && ($i != $twso) && (!($found = fgrpd ($myli, $i, \$sgdi, $Awfif::memes->{snnh}{groupcategory})))) {

              $i = trwsoadr ($i, 1);
              };#while searching for related group
            if (($i != 0) && ($i != $twso) ) {
              $sponsor = fgrpsponsor ($i, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
              $asponsor = awsoadr ($sponsor);
              $Awfif::wsol-> {l} [$asponsor][2]
                = setupdesc ( $Awfif::slipnet-> {l}[$linkp][2],
                  ($Awfif::memes-> {snnh} {wsi} + $Awfif::attribs-> {l} [($Awfif::workspace-> {l}[$descp][2] - $Awfif::memes-> {snnh}{wsi}) + 2][3]),
                  $Awfif::memes-> {snnh} {associative},
                  $Awfif::wsol-> {l} [$asponsor][2],
                  $asponsor);
              $deployed = 't';
              };#if
            };#if
          $descp = $Awfif::workspace-> {l}[$descp][0];
          };#while
        };#if
      $linkp = $Awfif::slipnet-> {l}[$linkp][0];
      }#while
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("conagtoxrx ret ($deployed)\n");
      };
    return $deployed
    }# conagtoxr
#
#<!-- start tag scs -->
#<!-- start tag scl -->
#
sub statementpdca {#
    my($myli, $sti, $kwp, $kwpr, $sactset, $iststrategy)=@_;
    my ($finished, $giveup, $ststrategy);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("statementpdca myli $myli ");
      };
# updated for merged workspaces
# statementpdca is called within statement codelet
# it uses statement/part model launcher to check if the plan associated with cascade statementpdcal is modelled and described as model-(assert|implement)->plan or stopped,

    if (!defined ($iststrategy) ){

      $ststrategy = 'statementpdcal';
      } #if
    else {

      $ststrategy = $iststrategy;
      };#else

    $finished = ilaunchmodel ($myli, $sti, $ststrategy, $Awfif::memes-> {snnh} {plan}, \$giveup, $kwp, $kwpr, \@$sactset);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("statementpdcax giveup $giveup ret ($finished)\n");
      };
    return $finished
    }# statementpdca
#
#<!-- end tag scl -->
#<!-- end tag scs -->
#
sub igoalscon1 {# setup the goal suppressor for general cascade participant
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static, $strategy)=@_;
    my ($labcount);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("igoalscon1 myli $myli sti($sti) kwp($$kwp) kwpr($kwpr) sactset($$sactset[0]) ");
      };
# updated for merged workspaces

    $labcount = 0;

    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {$strategy});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {selector});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {schema});

    if (defined ($$static)) {
      $$static = '';#can't depend on this being the same every return - don't cache
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("igoalsconx ret ($labcount)\n");
      };#if
    return $labcount
    }# igoalscon1
#
#
sub hdoscon1 {# setup the goal suppressor for msiop codelet
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;
    return (igoalscon1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 'hdo'));
    }# hdoscon1
#
sub statementpdcal1 {# setup the labels for statement
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;
    my ($labcount, $concept, $drefi, $cwsbi);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("statementpdcal myli $myli sti $sti kwp $kwp kwpr $kwpr sactset $$sactset[0] ");
      };
# updated for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l}[$myli] [20];
    $labcount = 0;
    &findcounter ($Awfif::wsol-> {l} [awsoadr ($sti)][2], ($Awfif::memes-> {snnh}{pdcaprogram}), \$drefi);
    if ($drefi != 0) {
      $concept = ($Awfif::workspace-> {l} [$drefi] [2] - $Awfif::memes-> {snnh}{wsi});
      };#if
    if (($drefi != 0) && ($concept != 0)) {


      $labcount = labload (\@$lab, $labcount, $concept);
      $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {program});
      $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {initiate});
      };#if

    if (defined ($$static)) {
      $$static = '';#can't depend on this being the same every return - don't cache
      };#if

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("statementpdcalx ret ($labcount)\n");
      };
    return $labcount
    }# statementpdcal
#
#<!-- start tag dli -->
#<!-- start tag aso -->
#
sub iinitiators1 {# setup the labels for complex initiator signaling
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static, $strategy)=@_;
    my ($labcount, $i);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iinitiators1 myli $myli sti $sti kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
      };
# updated for merged workspaces

    $labcount = 0;

    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {$strategy});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {schema});
    for ($i = $Awfif::codelet-> {l} [$myli][21]; $i != $Awfif::codelet-> {l} [$myli][22];$i = trwsoadr ($i,1)) {
      $labcount = labload (\@$lab, $labcount, wsbasetype ($i));
      };#for
    $labcount = labload (\@$lab, $labcount, wsbasetype ($Awfif::codelet-> {l} [$myli][22]));
    $labcount = labload (\@$lab, $labcount, wsbasetype ($sti));

    if (defined ($$static)) {
      $$static = '';#can't depend on this being the same every return - don't cache
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iinitiators1x ret ($labcount)\n");
      };
    return $labcount
    }# iinitiators1
#
#
sub hdob1 {# setup the binding for hdo binder
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;
    my ($labcount);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("hdob1 myli $myli sti $sti kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
      };
# updated for merged workspaces

    $labcount = 0;

    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {hdo});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {sequence});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {integration});

    if (defined ($$static)) {
      $$static = 't';#can depend on this being the same every return - can cache
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("hdobx ret ($labcount)\n");
      };
    return $labcount
    }# hdob
# hdoi1 does not appear to be used
sub hdoi1 {# setup the labels for hdo initiator signaling
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (iinitiators1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 'hdo'));
    }# hdoi1
#
#<!-- start tag aso -->
#
sub msadoboppi1 {# setup the labels for hdo integration
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;
    my ($labcount, $i, $cwsbi);

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("msadoboppi1 myli $myli sti $sti kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) ");
      };
# updated for merged workspaces
    $cwsbi = $Awfif::memes-> {currentwsbi};

    $labcount = 0;

    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {hdo});
    $labcount = labload (\@$lab, $labcount, $Awfif::memes-> {snnh} {schema});
    for ($i = trwsoadr ($Awfif::codelet-> {l} [$myli][21], 4);
    $i != $Awfif::codelet-> {l} [$myli][22];
    $i = trwsoadr ($i,1)) {
      $labcount = labload (\@$lab, $labcount, wsbasetype ($i));
      };#for
    $labcount = labload (\@$lab, $labcount, wsbasetype ($Awfif::codelet-> {l} [$myli][22]));
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if (defined ($$static)) {
      $$static = '';#can't depend on this being the same every return - don't cache
      };#if

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("msadoboppi1x ret ($labcount)\n");
      };
    return $labcount
    }# msadoboppi1
#
sub binderrc1 {# setup the labels for binder 4 to -1
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 1, 4));
    }# binderrc1
#
sub bindercml1 {# setup the labels for binder 2 to -1
    my($myli, $sti, $lab, $kwp, $kwpr, $sactset, $static)=@_;

    return (ibindervc1 ($myli, $sti, \@$lab, $kwp, $kwpr, \@$sactset, \$$static, 1));
    }# bindercml1
#
#<!-- end tag aso -->
#
sub setupframe {
    my ($ltype, $to, $from, $dlinkh, $awso) = @_;# must be the workspace head's index for this descriptor list or 0

# if the frame descriptor exists in the ws:wso defined and frame ref [2] is initialised to 0 then initialise the frame array for use, set descriptor [2] to 1 and set descriptor [3] to 0 (so will be sentinal for addframe)
#
# checked for merged workspaces
    my ($ndlinkh, $dlinki);
    $ndlinkh = 0;
    if ( ((findtdesc ($dlinkh, $from)) == 0) ){

      $dlinki
      = setupdesc ( 0,
          0, #indicates no frame in use yet
          $from,
          $dlinkh,
          $awso);
      $Awfif::workspace-> {l} [$dlinki] [2] = 0;
      $Awfif::workspace-> {l} [$dlinki] [3] = 0;
      &addframe ($dlinki, $ltype, $to);
      }#if
    else {

      $dlinki = $dlinkh;
      };#else
    return $dlinki
    }# setupframe
#
sub addframe {
    my ($framedi, $ltype, $to) = @_;
# setup the structures to support linked frames
    my ($nslinkh);
#
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr2, $pr3);
      $pr2 = $Awfif::workspace-> {l} [$framedi] [2];
      $pr3 = $Awfif::workspace-> {l} [$framedi] [3];
      print ("addframe framedi($framedi)->2[$pr2]3[$pr3] ltype($ltype) to($to) ");
      };
# create an active descriptor
    $nslinkh = addhli ($Awfif::workspace-> {l} [$framedi] [3], \$Awfif::framel);
    $Awfif::workspace-> {l} [$framedi] [2]++;
    $Awfif::workspace-> {l} [$framedi] [3] = $nslinkh;
    $Awfif::framel-> {l} [$nslinkh][2] = $to;
    $Awfif::framel-> {l} [$nslinkh][3] = $ltype;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("addframex ret $nslinkh\n");
      };

    return $nslinkh
    }# addframe
#
sub freeframe {
    my ($framedi) = @_;
#
# checked for merged workspaces

# move the codelet datastructure to the inactive list
    my ($framei);
    $Awfif::workspace-> {l} [$framedi] [3] = freehli (($framei = $Awfif::workspace-> {l} [$framedi] [3]), \$Awfif::framel);#slipnet cache manager coordinates the head of the list
    $Awfif::workspace-> {l} [$framedi] [2]--;
    $Awfif::framel-> {l} [$framei] [2] = 0;
    $Awfif::framel-> {l} [$framei] [3] = 0;
    $Awfif::framel-> {l} [$framei] [14] = ();
    $Awfif::framel-> {l} [$framei] [15] = ();
    return $Awfif::workspace-> {l} [$framedi] [3]
    }#freeframe
#
#<!-- start tag aso -->
#
sub donextdesc {
    my ($myli, $cws, $framei, $foundlistend) = @_;
    my ($desci);
# move to the next descriptor in the list and handle special situations
#
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("donextdesc myli $myli cws ($cws) framei($framei) ");
      };

    $desci = 0;

    if ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
    && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh}{listlink}) )
    ){

      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [6] = ($Awfif::workspace-> {l} [$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4]] [2] - $Awfif::memes-> {snnh} {wsi});#record the listlink
# advance along the descriptor list
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] = $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ] [1];
      $desci = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4];
      }#if
    elsif ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
    && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh}{recordlink}) )
    ){

      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] = ($Awfif::workspace-> {l} [$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4]] [2] - $Awfif::memes-> {snnh} {wsi});#record the recordlink
# advance along the descriptor list
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] = $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ] [1];
      $desci = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4];
      }#elsif
    elsif ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
    ){

# advance along the descriptor list
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] = $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ] [1];#advance along the descriptor list
      $desci = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4];
      }#elsif
    elsif ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] == 0)
    && ( $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] > 0) )
    ){#move to start of next record wso
# must setup the wso pointer

      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [2] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5];#move to start of next record wso
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] = 0;
# now find the start of the wso descriptor list
      my ($di, $ldi);
      $Awfif::memes-> {currentwsbi} = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [3]; #switch to the investigation workspace
      $ldi = 0;
      $di = $Awfif::wsol-> {l} [ awsoadr ($Awfif::framel-> {l} [ $Awfif::workspace-> {l} [$framei] [3]] [2]) ][2];
      $Awfif::memes-> {currentwsbi} = $cws;
      while ($di != 0) {

        $ldi = $di;
        $di = $Awfif::workspace-> {l} [$di] [0];
        };#while
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] = $ldi;
      $desci = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4];
# donextdescclearrstu1
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [7] = ();#target cleared
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [8] = ();#gowithin cleared
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [9] = ();#gowithin string cleared
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [10] = ();#in if match cleared
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [11] = ();#if state cleared
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [16] = ();#match string cleared
      $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] = ();#match state cleared
      }#elsif
    elsif ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] == 0)
    && ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] == 0) && ($Awfif::workspace-> {l} [$framei] [2] == 1))
    ){#end of the list - gowithin will handle end of subprogram list

      if (defined ($$foundlistend) ){#end of list found
        $$foundlistend = 't';
        };#if
      };#elsif

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my (@pr);
      print ("donextdescx ");
      if (defined ($$foundlistend) ){

        print ("foundlistend ($$foundlistend) ");
        };#if

      $pr[2] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [2];
      $pr[3] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [3];
      $pr[4] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4];
      $pr[5] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5];
      $pr[6] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [6];
      $pr[7] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [7];
      $pr[8] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [8];
      $pr[9] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [9];
      $pr[10] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [10];
      $pr[11] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [11];
      print ("framel (2:$pr[2], 3:$pr[3], 4:$pr[4], 5:$pr[5], 6:$pr[6], 7:$pr[7], 8:$pr[8], 9:$pr[9], 10:$pr[10], 11:$pr[11] ) ");
      if ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0) {

        $pr[2] = $Awfif::workspace-> {l} [$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4]] [2];
        $pr[3] = $Awfif::workspace-> {l} [$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4]] [3];
        $pr[4] = $Awfif::memes-> {snnih} {$Awfif::workspace-> {l} [$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4]] [4]};
        $pr[11] = $Awfif::workspace-> {l} [$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4]] [11];
        print ("descriptor (4:$pr[4],3:$pr[3],2:$pr[2],11:$pr[11],");
        if (!defined ($Awfif::workspace-> {l} [$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4]] [12])) {

          print ("12:not defined) ");
          }#if
        else {

          print ("12:defined) ");
          };#else
        };#if

      print ("ret ($desci)\n");
      };
    return $desci
    }# donextdesc
#
#<!-- end tag aso -->
#
sub checkselmatch {
    my ($myli, $insel, $sponsor, $grkwp, $grkwpr) = @_;
    my ($match, $listi, $desci, $stwso, $astwso, $cwsbi, $atti, $devws, $devbwso, $adevbwso, $recordi, $arecordi, $lrecordi, $eos);
# see if there is a match to any of the selectors in the list
#
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("checkselmatch myli $myli insel($insel) ");
      };#if
    $cwsbi = $Awfif::memes-> {currentwsbi};

    $desci = 0;
    $match = '';
# find the initial icsselector descriptor in the statement wso - this identifies the attribute set detailing the ws, wso, listname, of the case selector list explored by the development cascade

    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    $listi = $Awfif::wsol-> {l} [$astwso] [2];
    while ($listi != 0) {

      if ($Awfif::workspace-> {l} [$listi] [4] == $Awfif::memes-> {snnh} {icselector} ) {

        $desci = $listi;
        };#if
      $listi = $Awfif::workspace-> {l} [$listi] [0];
      };#while
# Iterate through each record, and its descriptor list checking any seltst codelet deployed value descriptor [10] for a match with the current specified match string. If any match occurs return true.

    if ($desci != 0 ) {#decode the attribute list, find the ws, binding wso and setup for the first record in the development list

      if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {#have a look at the descriptor attribute

        &itattoutput (($Awfif::workspace-> {l} [$desci][2] - $Awfif::memes-> {snnh} {wsi}));
        };
      $atti = ($Awfif::workspace-> {l} [$desci] [2] - $Awfif::memes-> {snnh} {wsi});
      $atti = $Awfif::attribs-> {l} [$atti][1];#move past the start attribute
      $atti = $Awfif::attribs-> {l} [$atti][1];#move past the icselector
      $devws = $Awfif::attribs-> {l} [$atti][3];
      $atti = $Awfif::attribs-> {l} [$atti][1];#move past the ws
      $devbwso = $Awfif::attribs-> {l} [$atti][3];
      $Awfif::memes-> {currentwsbi} = $devws;
      $adevbwso = awsoadr ($devbwso);
# now pickup the listlink
      if (($listi = findtdesc ($Awfif::wsol-> {l} [ $adevbwso] [2], $Awfif::memes-> {snnh} {listlink})) != 0
      ){
# now convert the listi to reference the first list record

        $listi = ($Awfif::workspace-> {l} [$listi] [2] - $Awfif::memes-> {snnh} {wsi});
# now get the first record link descriptor and then turn it into the record wso index
        if ( (($recordi = findtdesc ($Awfif::wsol-> {l} [ ($arecordi = awsoadr ($listi))] [2], $Awfif::memes-> {snnh} {recordlink})) != 0)
        ){
# now check each record until get a match or run out - move in to the first record

          $recordi = ($Awfif::workspace-> {l} [$recordi] [2] - $Awfif::memes-> {snnh} {wsi});
          $arecordi = awsoadr ( $recordi);
          };#if
# now process each record until reach end of stream

        while ( donelement ($myli, \$recordi, \$lrecordi, \$arecordi, \$eos)
        && (!$eos)
        && (!$match)
        ){

          $recordi = $Awfif::workspace-> {l} [$recordi][2] - $Awfif::memes-> {snnh} {wsi};
          $listi = $Awfif::wsol-> {l} [awsoadr ($lrecordi)] [2];
          while (($listi != 0) && (!$match)) {

            if (($Awfif::workspace-> {l} [$listi] [4] == $Awfif::memes-> {snnh} {selvalue} )
            && ($Awfif::workspace-> {l} [$listi] [10] eq $insel)
            ){

              $match = 't';
              };#if
            $listi = $Awfif::workspace-> {l} [$listi] [0];
            };#while
          };#while
        };#if found a listlink
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("checkselmatchx ");

      print ("ret ($match)\n");
      };
    return $match
    }# checkselmatch
#
#<!-- start tag ds -resweb -->
#<!-- start tag aso -->
#
sub assignnextwso {
    my ($myli, $cwsposition, $sldesc, $abcwso, $rejectlast) = @_;
    my ($string, $cwsbi);
# move to the next wso in the statement and assign wso to string
#
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr, $pr2);
      if (defined ($Awfif::memes-> {anextwso})){
        $pr = $Awfif::memes-> {snnih} {$Awfif::memes->{anextwso}};
        };#if
      if (defined ($Awfif::memes-> {anextwsb})){
        $pr2 = $Awfif::memes-> {snnih} {$Awfif::memes->{anextwsb}};
        };#if
      print ("assignnextwso myli $myli cwsposition($$cwsposition) sldesc($sldesc) abcwso($abcwso) anextwso($Awfif::memes->{anextwso} => $pr) anextwsb($Awfif::memes->{anextwsb} => $pr2) ");
      if (defined ($rejectlast)){
        print ("rejectlast ($rejectlast) ");;
        };#if
      };

    $cwsbi = $Awfif::memes->{currentwsbi};
    $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});;
    $string = '';

    if ((defined($rejectlast)) && ($rejectlast) ){

      if (($Awfif::memes-> {anextwso} == $Awfif::memes-> {snnh} {msuccgedges})
      ){

        $Awfif::memes-> {anextwso} = undef();
        };#if
      }#if

    else {

      if ((wsbasetype ($$cwsposition) == $Awfif::memes-> {snnh}{keywords})
      or (wsbasetype ($$cwsposition) == $Awfif::memes-> {snnh}{keyworde})
      or (wsbasetype ($$cwsposition) == $Awfif::memes-> {snnh}{mkeywords})
      or (wsbasetype ($$cwsposition) == $Awfif::memes-> {snnh}{mkeyworde})
      or ((wsbasetype ($$cwsposition) >= $Awfif::memes-> {snnh}{and})#its a keyword
      && (wsbasetype ($$cwsposition) != $Awfif::memes-> {snnh}{char})
      && (wsbasetype ($$cwsposition) < $Awfif::memes-> {snnh}{start}))
      ) {

        if (($Awfif::memes-> {anextwso} == $Awfif::memes-> {snnh} {msuccgedges})
        ){

          $string .= '<msgerhl>';
          $Awfif::memes-> {anextwso} = $Awfif::memes-> {snnh} {mkeyword};
          };
        $string .= '<' . getwsost4 ($$cwsposition) . '>';
        } #if
      else {

        if (($Awfif::memes-> {anextwso} == $Awfif::memes-> {snnh} {msuccgedges})
        ){

          $Awfif::memes-> {anextwso} = undef();
          }
        elsif (findtdesc ($Awfif::wsol-> {l} [ awsoadr ($$cwsposition)] [2], $Awfif::memes-> {snnh} {mattrib}, 0, $Awfif::memes-> {snnh} {msuccgedges}) != 0){

          $Awfif::memes-> {anextwso} = $Awfif::memes-> {snnh} {msuccgedges};
          }#elsif
        elsif ((findtdesc ($Awfif::wsol-> {l} [ awsoadr ($$cwsposition)] [2], $Awfif::memes-> {snnh} {mattrib}, 0, $Awfif::memes-> {snnh} {msuccgedgee}) != 0 )
        && ($Awfif::memes-> {anextwso} == $Awfif::memes-> {snnh} {mkeyword})
        ){

          $Awfif::memes-> {anextwso} = undef();
          $string .= '</msgerhl>';
          }#elsif
        elsif ((findtdesc ($Awfif::wsol-> {l} [ awsoadr ($$cwsposition)] [2], $Awfif::memes-> {snnh} {mattrib}, 0, $Awfif::memes-> {snnh} {msuccgedgee}) != 0 )
        ){

          $Awfif::memes-> {anextwso} = undef();
          }#elsif
        elsif ((findtdesc ($Awfif::wsol-> {l} [ awsoadr ($$cwsposition)] [2], $Awfif::memes-> {snnh} {mattrib}, $Awfif::memes-> {snnh} {start}, $Awfif::memes-> {snnh} {mcharbuffer}) != 0 )
        ){

          $Awfif::anextwa-> {l}[++$Awfif::anextwa-> {l} [0]] .= '<bmsgerhl>';
          $Awfif::memes-> {anextwsb} = $Awfif::memes-> {snnh} {mcharbuffer};
          $string .= '<rhlcbn' . $Awfif::anextwa-> {l} [0] . '>';
          }#elsif
        elsif ( ($Awfif::memes-> {anextwsb} == $Awfif::memes-> {snnh} {mcharbuffer})
        && (findtdesc ($Awfif::wsol-> {l} [ awsoadr ($$cwsposition)] [2], $Awfif::memes-> {snnh} {mattrib}, $Awfif::memes-> {snnh} {stop}, $Awfif::memes-> {snnh} {mcharbuffer}) != 0 )
        ){

          $Awfif::memes-> {anextwsb} = undef();
          $Awfif::anextwa-> {l}[$Awfif::anextwa-> {l} [0]] .= '</bmsgerhl>';
          }#elsif
        elsif ( ($Awfif::memes-> {anextwsb} == $Awfif::memes-> {snnh} {mcharbuffer})
        ){

          $Awfif::anextwa-> {l}[$Awfif::anextwa-> {l} [0]] .= getwsost4 ($$cwsposition);
          }#elsif
        else {

          $string .= getwsost4 ($$cwsposition);
          };#else
        };#else
# advance along the application workspace

      $$cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
      };#else

    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr, $pr2);
      if (defined ($Awfif::memes-> {anextwso})){
        $pr = $Awfif::memes-> {snnih} {$Awfif::memes->{anextwso}};
        };#if
      if (defined ($Awfif::memes-> {anextwsb})){
        $pr2 = $Awfif::memes-> {snnih} {$Awfif::memes->{anextwsb}};
        };#if
      print ("assignnextwsox anextwso($Awfif::memes->{anextwso} => $pr) anextwsb($Awfif::memes->{anextwsb} => $pr2) ");

      print ("ret ($string)\n");
      };
    return $string
    }# assignnextwso
#
#<!-- end tag ds -->
#<!-- end tag aso -->
#
sub dodepstring {
    my ($myli, $framei, $schemadesc) = @_;
    my ($p);
# move a string from a buffer or frame [current] [9] to the descriptor string or frame [-1] [9]
#
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("dodepstring myli $myli framei($framei) schemadesc($schemadesc ");
      };

    if (($Awfif::workspace-> {l} [$framei] [2] > 1 )
    ){

      $p = \$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [9];
      }#if
    else {

      $p = \$Awfif::workspace-> {l} [$schemadesc] [11];
      };

    if (($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [8] == $Awfif::memes-> {snnh} {gowithin} )
    ){#use frame buffer

      $$p .= $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][10];
      }#if
    else {#write to descriptor

      $$p .= $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][10];
      };#else

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("dodepstringx \n");
      };
    }# dodepstring
#
#<!-- start tag aso -->
#
sub sinkskeyword {
    my ($myli, $cwsposition, $sldesc, $abcwso) = @_;
    my ($sink, $cwsbi, $handlestop, $aws, $count, $descfits, $conforms, $stnws, $stnwsoid);
# move to the next wso/keyword in the statement and sink the keyword and any following content
#
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("sinkskeyword myli $myli cwsposition($$cwsposition) sldesc($sldesc) abcwso($abcwso) ");
      };

    $cwsbi = $Awfif::memes->{currentwsbi};
    $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr, $pr2);
      $pr = getwsost4 ($$cwsposition);
      $pr2 = $Awfif::memes-> {snnih} {wsbasetype ($$cwsposition)};
      print ("keyword($pr) wsbasetype($pr2) ");
      };
    $sink = '';
    $handlestop = '';

    if ( (($aws = $Awfif::memes-> {currentwsbi}) != 0)
    ){#

      if ( (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {record}
        )>0))
      && ($conforms)
      && ($descfits)
      ){#this is a record so it has a completion procedure

        $handlestop = '';
        } #check if must handle the stop structure
      else {

        if ((defined($Awfif::memes-> {sinkskhsbreak})) && ($Awfif::memes-> {sinkskhsbreak})){&break ()};
        $handlestop = 't';
        };#else

      if ( ( (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {value},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {start},
        $Awfif::memes-> {snnh} {orcategory}, $Awfif::memes-> {snnh} {alternate} )>0))
      or (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {svalue}, #a special version of value required for the terminal keyword
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {start},
        $Awfif::memes-> {snnh} {orcategory}, $Awfif::memes-> {snnh} {alternate} )>0))
      or (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {target},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {start},
        $Awfif::memes-> {snnh} {orcategory}, $Awfif::memes-> {snnh} {alternate} )>0))
      )#or
      && ($conforms)
      && ($descfits)
      ){#this has an associated string

        $sink = getnamefqpair ($myli, $sldesc, \$stnws, \$stnwsoid);#consume the keyword and associated string
        $$cwsposition = ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi});
        }#if
      else {

        $$cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);#consume the keyword
        };#else
      };#if

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {

      print ("sinkskeywordx cwsposition($$cwsposition) ");

      print ("ret ($handlestop)\n");
      };
    return $handlestop
    }# sinkskeyword
#
sub sinkekeyword {
    my ($myli, $cwsposition, $sldesc, $cws, $abcwso, $ischemaforoff) = @_;
    my ($cwsbi, $aws, $count, $descfits, $conforms, $end);
# handle stop for sinkskeyword
#
# checked for merged workspaces

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("sinkekeyword myli $myli cwsposition($$cwsposition) sldesc($sldesc) abcwso($abcwso) ");
      };

    $cwsbi = $Awfif::memes->{currentwsbi};
    $Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi}));

    my ($finished);
    $finished = '';
    &iskipw ($myli, $sldesc, $cws, $aws, $abcwso, $ischemaforoff);#skip to next contextual keyword
    while (!$finished
    ){

      if ( ( ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
      && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {value},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {stop} )>0))
      or (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {svalue}, #a special version of value required for the terminal keyword
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {stop} )>0))
      or (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {target},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {stop} )>0))
      ) #or
      && ($conforms)
      && ($descfits)
      ){#have found the stop for the value

        $finished = 't';
        $end = movecomplex ($myli, $sldesc, 1, $abcwso);
        }# if
      else {

        if (($end = movecomplex ($myli, $sldesc, 1, $abcwso)) == 0
        ){

          $finished = 't';
          };#if
        };#else
      };#while
    $$cwsposition = ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi});
    $Awfif::memes->{currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("sinkekeywordx \n");
      };
    }# sinkekeyword
#
#<!-- end tag aso -->
#
sub mkwevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $found, $file, $spi,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

    $cdn = clogstat (\$cdnx);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdn myli $myli ");
      &itcpoutput ($myli);
      };
# groups must use the full workspace

    $grkwp = $Awfif::wsbl-> {wsbloh}[$Awfif::memes-> {currentwsbi}];
    $grkwpr = $Awfif::wsbl-> {wsot}[$Awfif::memes-> {currentwsbi}];
    $found = '';
    $sponsor = $Awfif::codelet-> {l} [$myli][17];
    $signal = $Awfif::codelet-> {l} [$myli][16];
    $schema = $Awfif::codelet-> {l} [$myli][18];
# rework will be processed in real evaluator

# setup the global temporary file buffer for use by the builder which should free it (delsp)
    if (($Awfif::codelet-> {l}[$myli][16] > 0)
    && ($Awfif::codelet-> {l}[$myli][17] > 0)
    && ($Awfif::codelet-> {l}[$myli][18] > 0)
    && ($Awfif::codelet-> {l}[$myli] [20] > 0)
    && ($Awfif::codelet-> {l}[$myli][21] > 0)
    && ($Awfif::codelet-> {l}[$myli][22] > 0)
    ){#lets process the temporary buffer

      &updatelog ($myli,'ae', 5, $file);
      $Awfif::clp = ();
      $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
      $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
      if (defined ($Awfif::codelet-> {l}[$myli][19])) {
        $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
        }#wsi set
      else {
        $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
        };
      $Awfif::clp-> {strategy} = "mkwbuilder";
      $Awfif::clp-> {action}-> {sponsor} = $sponsor;
      $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
      $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
      $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
      $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
      $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
      $Awfif::clp-> {action}-> {ref} = $spi;
      &cdsubmitcodelet ($myli, \$Awfif::clp);
      };

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# mkwevaluator1

#
sub mkwbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $signal, $schema, $found, @tokenb1, @stokenb1, @tokenb2, @stokenb2,
    $cwsbi, $i, $i3, $ws, $startwso, $endwso, @mkw, $mkwc,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# associate application groups with memetic operons

    $cdn = clogstat (\$cdnx);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdn myli $myli ");
      &itcpoutput ($myli);
      };
# groups must use the full workspace

    $grkwp = $Awfif::wsbl-> {wsbloh}[$Awfif::memes-> {currentwsbi}];
    $grkwpr = $Awfif::wsbl-> {wsot}[$Awfif::memes-> {currentwsbi}];
    $found = '';
    $sponsor = $Awfif::codelet-> {l} [$myli][17];
    $asponsor = awsoadr ($sponsor);
    $signal = $Awfif::codelet-> {l} [$myli][16];
    $schema = $Awfif::codelet-> {l} [$myli][18];
    $ws = $Awfif::codelet-> {l} [$myli] [20];
    $startwso = $Awfif::codelet-> {l} [$myli][21];
    $endwso = $Awfif::codelet-> {l} [$myli][22];
# use the specified ws
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $ws;
#check if the work has already been done

    if ((!findbond ($Awfif::wsol-> {l} [ awsoadr ($startwso)][2], $Awfif::memes-> {snnh} {start}, $Awfif::memes-> {snnh} {matchkword}, $Awfif::memes-> {snnh} {inspector})) ){
      $Awfif::wsol-> {l} [awsoadr ($startwso)][2]
      = setupdesc ( $Awfif::memes-> {snnh} {matchkword},
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {start}),
          $Awfif::memes-> {snnh} {inspector},
          $Awfif::wsol-> {l} [awsoadr ($startwso)][2],
          awsoadr ($startwso));
      };#record have accessed this operon
# setup a list of tokens from the wso objects
    $i3 = 0;
    $mkwc = 0;
    for ($i = $startwso; $i <= $endwso; $i = trwsoadr ($i, 1)) {
      $tokenb1 [$i3++] = $Awfif::symbolsets-> {meta} {$Awfif::memes->{snnih}{wsbasetype ($i)}};
      }; #for
# and sort them
    if ($i3 > 0) {
      &dsort (\@tokenb1, $i3, \@stokenb1, 'qssort');# quick string sort
      };#if
# work with kw workspace

    $Awfif::memes-> {currentwsbi} = $Awfif::memes-> {kwwsbi};
    $i = $Awfif::memes->{kwmir};

    while (($i < $Awfif::memes->{kwmi})) {# check the tokens of each keyword
      my ($i2, $i4, $ai);
      $i4 = 0;
      @tokenb2 = ();
      $ai = awsoadr($i);

      for ($i2 = $Awfif::wsol->{l}[$ai][2]; $i2 < ($Awfif::wsol->{l}[$ai][2] + $Awfif::wsol->{l}[$ai][3]); $i2++) {
        $tokenb2 [$i4++] = $Awfif::memes->{keywordl}[$i2];
        }; #for
# and sort them
      if ($i4 > 0) {
        &dsort (\@tokenb2, $i4, \@stokenb2, 'qssort');# quick string sort
        };#if

      if ( ($i4 >= $i3) # there could be a superset
      && (truesubset (\@tokenb1, \@stokenb1, $i3, \@tokenb2, \@stokenb2, $i4)
        ) #is sb1 a true ordered subset of sb2
#
      ) {#found a keyword with attributes that superset the input set
# record the $i in the keyword array

        $mkw[$mkwc++] = $i;
        };#found match for attributes
      $i = trwsoadr ($i,1);
      };#while each keyword
# deploy descriptors for any matches

    if ($mkwc > 0) {
      $Awfif::memes-> {currentwsbi} = $ws;
      for ($i = 0; $i < $mkwc; $i++) {
        $Awfif::wsol-> {l} [awsoadr ($startwso)][2]
        = setupdesc ( $Awfif::memes-> {snnh} {matchkword},
            ($Awfif::memes-> {snnh} {wsi} + $mkw[$i]),
            $Awfif::memes-> {snnh} {associative},
            $Awfif::wsol-> {l} [awsoadr ($startwso)][2],
            awsoadr ($startwso));
        $Awfif::memes-> {fatp} = $Awfif::memes-> {fatp} + $Awfif::memes-> {batp};
# send activation to the involved Slipnet nodes
        &actnodes ( $Awfif::memes-> {snnh} {matchkword}, $Awfif::memes-> {openatype});
        &actnodes ( $Awfif::memes-> {snnh} {wsi}, $Awfif::memes-> {openato});
        };#for
      };#matching keywords found
# report that have completed goal activity
    if ((!findbond ($Awfif::wsol-> {l} [ awsoadr ($startwso)][2], $Awfif::memes-> {snnh} {whole}, $Awfif::memes-> {snnh} {matchkword}, $Awfif::memes-> {snnh} {inspector})) ){
      $Awfif::wsol-> {l} [awsoadr ($startwso)][2]
      = setupdesc ( $Awfif::memes-> {snnh} {matchkword},
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {whole}),
          $Awfif::memes-> {snnh} {inspector},
          $Awfif::wsol-> {l} [awsoadr ($startwso)][2],
          awsoadr ($startwso));
      };#record have accessed this operon
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# mkwbuilder1
#
sub mkwinspector1 {
    my ($myli, $sws, $wss, $wse) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($result,
    $cdn, $cdnx);
#
# checked for merged workspaces

    $cdn = clogstat (\$cdnx);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdn myli $myli sws $sws wss $wss wse $wse ");
      &itcpoutput ($myli);
      };
    $result = iinspector1 ($myli, $sws, $wss, $wse, $Awfif::memes-> {snnh} {matchkword});
# check if the mkw descriptors have been deployed

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx ret ($result)\n");
      };
    &clogstatx ();
    return $result
    }# mkwinspector1
#
#<!-- start tag inp -->
#
sub iinspector1 {
    my ($myli, $sws, $wss, $wse, $goal, $program) = @_;
    my ($cwsbi, $result, $inspector,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

    $cdn = clogstat (\$cdnx);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      my ($pr);
      $pr = $Awfif::memes-> {snnih}{$goal};
      print ("$cdn myli $myli sws $sws wss $wss wse $wse goal $pr($goal) program ($program) ");
      &itcpoutput ($myli);
      };
# check if the requested descriptors have been deployed

    $grkwp = $Awfif::wsbl-> {wsbloh}[$Awfif::memes-> {currentwsbi}];
    $grkwpr = $Awfif::wsbl-> {wsot}[$Awfif::memes-> {currentwsbi}];

# check if builder has ever accessed the operon
# use the specified ws
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $Awfif::memes-> {currentwsbi} = $sws;
    $result = '';
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      &itwsoutput (trwsoadr ($wss,1), $wss);
      };
    if (defined ($program)) {
      $inspector = $program;
      } # indirect inspection
    else {
      $inspector = $Awfif::memes-> {snnh} {inspector};
      };
    if ((findbond ($Awfif::wsol-> {l} [ awsoadr ($wss)][2], $Awfif::memes-> {snnh} {start}, $goal, $inspector))
    && (findbond ($Awfif::wsol-> {l} [ awsoadr ($wss)][2], $Awfif::memes-> {snnh} {whole}, $goal, $inspector))
      ){
      $result = 't';
      };#record have accessed this operon
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx ret ($result)\n");
      };
    &clogstatx ();
    return $result
    }# iinspector1
#
#<!-- end tag inp -->
#
sub dascgevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# now check the workspace for salient workspace type with model status descriptor
    $noswstype = 't';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($twso, $asponsor);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);

      if (($Awfif::codelet-> {l} [$myli][22] > 0) #lets check the following schemata for case specifiers
      && ((!defined ($Awfif::memes-> {acsaobasscibreak})) or (!$Awfif::memes-> {acsaobasscibreak}))
      && ( wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli][22], 1)) == $Awfif::memes-> {snnh} {char})
      && (!(findbond ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {whole}, $Awfif::memes-> {snnh} {assumecsp}, $Awfif::memes-> {snnh} {inspector})))
      ){#launch builder

        $Awfif::clp = ();
        $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
        $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
        if (defined ($Awfif::codelet-> {l}[$myli][19])) {
          $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
          }#wsi set
        else {
          $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
          };
        $Awfif::clp-> {strategy} = "dascgbuilder";
        $Awfif::clp-> {action}-> {sponsor} = $sponsor;
        $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
        $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
        $Awfif::clp-> {action}-> {ref} = $spi;
        $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
        $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
        $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
        &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "dascgbuilder", $$kwp, $kwpr, \@$sactset);
        };
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# dascgevaluator1
#
sub dascgbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $signal, $schema, $found, $swstype, $cwsbi,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# the dascg codelet checks for the presence of application case assumption descriptors and forwards the information to the statement codelet

# models must use the full workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $found = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, undef(), \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $attribs, $filename);

      $asponsor = awsoadr ($sponsor);
      if ((!findbond ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {start}, $Awfif::memes-> {snnh} {assumecsp}, $Awfif::memes-> {snnh} {inspector})) ){
        $Awfif::wsol-> {l} [$asponsor][2]
        = setupdesc ( $Awfif::memes-> {snnh} {assumecsp},
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {start}),
            $Awfif::memes-> {snnh} {inspector},
            $Awfif::wsol-> {l} [$asponsor] [2],
            $asponsor);
        };#record have accessed this operon
# get the stream name

      $filename = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli][22],1));
# inform the controlling statement of case assumptions
      $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      $attribs = addattrib ($Awfif::memes-> {snnh} {attribs},'');
      &addattrib ($Awfif::memes-> {snnh} {attrib}, $Awfif::memes->{snnh}{iassselector}, '');
      &addattrib ($Awfif::memes-> {snnh} {attrib}, $filename, '');
      &addattrib ($Awfif::memes-> {snnh} {attrib}, $sponsor, '');
      &addattrib ($Awfif::memes-> {snnh} {attribe},'');

      $Awfif::wsol-> {l} [$astwso][2]
        = setupdesc ( $Awfif::memes-> {snnh} {attrib},
            ($Awfif::memes-> {snnh} {wsi} + $attribs),
            $Awfif::memes-> {snnh} {iassselector},
            $Awfif::wsol-> {l} [$astwso][2],
            $astwso);

      $Awfif::wsol-> {l} [$astwso][2]
        = setupdesc ( $Awfif::memes-> {snnh} {completed},
            ($Awfif::memes-> {snnh} {wsi}),
            $Awfif::memes-> {snnh} {dascgevaluator},
            $Awfif::wsol-> {l} [$astwso][2],
            $astwso,
            't');#sync with deferred codelet
# report that have completed goal activity

      if ((!findbond ($Awfif::wsol-> {l} [ $asponsor][2], $Awfif::memes-> {snnh} {whole}, $Awfif::memes-> {snnh} {assumecsp}, $Awfif::memes-> {snnh} {inspector})) ){
        $Awfif::wsol-> {l} [$asponsor] [2]
        = setupdesc ( $Awfif::memes-> {snnh} {assumecsp},
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {whole}),
            $Awfif::memes-> {snnh} {inspector},
            $Awfif::wsol-> {l} [$asponsor] [2],
            $asponsor);
        };#record have accessed this operon
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got target wso

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# dascgbuilder1
#
sub dascginspector1 {
    my ($myli, $sws, $wss, $wse) = @_;
    my ($result,
    $cdn, $cdnx);
#
# checked for merged workspaces

    $cdn = clogstat (\$cdnx);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdn myli $myli sws $sws wss $wss wse $wse ");
      &itcpoutput ($myli);
      };
# check if the assumption case descriptors have been deployed
    $result = iinspector1 ($myli, $sws, $wss, $wse, $Awfif::memes-> {snnh} {assumecsp});

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx ret ($result)\n");
      };
    &clogstatx ();
    return $result
    }# dascginspector1
#
sub casesaevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# now check the workspace for salient workspace type with model status descriptor
    $noswstype = 't';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($twso, $asponsor);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);

      if (($Awfif::codelet-> {l} [$myli][22] > 0) #lets check the following schemata for case specifiers
      && (!(findbond ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {whole}, $Awfif::memes-> {snnh} {assumecsp}, $Awfif::memes-> {snnh} {inspector})))
      ){#launch builder

        $Awfif::clp = ();
        $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
        $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
        if (defined ($Awfif::codelet-> {l}[$myli][19])) {
          $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
          }#wsi set
        else {
          $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
          };
        $Awfif::clp-> {strategy} = "casesabuilder";
        $Awfif::clp-> {action}-> {sponsor} = $sponsor;
        $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
        $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
        $Awfif::clp-> {action}-> {ref} = $spi;
        $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
        $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
        $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
        &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "casesabuilder", $$kwp, $kwpr, \@$sactset);
        };
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# casesaevaluator1
#
sub casesabuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $signal, $schema, $found, $swstype, $cwsbi,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# models must use the full workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $found = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, undef(), \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $attribs, $filename);

      $asponsor = awsoadr ($sponsor);
      if ((!findbond ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {start}, $Awfif::memes-> {snnh} {assumecsp}, $Awfif::memes-> {snnh} {inspector})) ){
        $Awfif::wsol-> {l} [$asponsor][2]
        = setupdesc ( $Awfif::memes-> {snnh} {assumecsp},
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {start}),
            $Awfif::memes-> {snnh} {inspector},
            $Awfif::wsol-> {l} [$asponsor] [2],
            $asponsor);
        };#record have accessed this operon
# get the stream name

      $filename = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli][22],1));
# inform the controlling statement of case assumptions
      $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      $attribs = addattrib ($Awfif::memes-> {snnh} {attribs},'');
      &addattrib ($Awfif::memes-> {snnh} {attrib}, $Awfif::memes->{snnh}{iassselector}, '');
      &addattrib ($Awfif::memes-> {snnh} {attrib}, $filename, '');
      &addattrib ($Awfif::memes-> {snnh} {attrib}, $sponsor, '');
      &addattrib ($Awfif::memes-> {snnh} {attribe},'');
      $Awfif::wsol-> {l} [$astwso][2]
        = setupdesc ( $Awfif::memes-> {snnh} {attrib},
            ($Awfif::memes-> {snnh} {wsi} + $attribs),
            $Awfif::memes-> {snnh} {iassselector},
            $Awfif::wsol-> {l} [$astwso][2],
            $astwso);
# report that have completed goal activity

      if ((!findbond ($Awfif::wsol-> {l} [ $asponsor][2], $Awfif::memes-> {snnh} {whole}, $Awfif::memes-> {snnh} {assumecsp}, $Awfif::memes-> {snnh} {inspector})) ){
        $Awfif::wsol-> {l} [$asponsor] [2]
        = setupdesc ( $Awfif::memes-> {snnh} {assumecsp},
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {whole}),
            $Awfif::memes-> {snnh} {inspector},
            $Awfif::wsol-> {l} [$asponsor] [2],
            $asponsor);
        };#record have accessed this operon
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got target wso

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# casesabuilder1
#
sub casesainspector1 {
    my ($myli, $sws, $wss, $wse) = @_;
    my ($result,
    $cdn, $cdnx);
#
# checked for merged workspaces

    $cdn = clogstat (\$cdnx);
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdn myli $myli sws $sws wss $wss wse $wse ");
      &itcpoutput ($myli);
      };
# check if the assumption case descriptors have been deployed
    $result = iinspector1 ($myli, $sws, $wss, $wse, $Awfif::memes-> {snnh} {assumecsp});

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx ret ($result)\n");
      };
    &clogstatx ();
    return $result
    }# casesainspector1
#
#<!-- start tag aso -->
#
sub msadobevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $abdwso,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# development codelet responds to group complete that includes its operon
    $noswstype = 't';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $twso, $asponsor);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);

# Find the statement wso and obtain any stream descriptions - These should include important streams for development
      $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
# if the statement does not have stream descriptions for the builder to work on give up
      if (findtdesc ($Awfif::wsol-> {l} [ $astwso] [2], $Awfif::memes-> {snnh} {stream}) != 0
# the builder will need to deal with istream structures too but no point if there is no direct stream they would be described in
# Otherwise need to setup the builder so that it sees the key context wso immediately after the operon starts
      ){#launch builder

        $Awfif::clp = ();
        $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
        if (ifindupri ($myli, $sponsor, 'devscon', undef(), undef(), undef(), undef(), undef(),'t')
        && (getabdwso ($myli, $sponsor, 'developmentb', \$abdwso))
        && (!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {model}))
        ){#

          $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
          &dropsalience ($myli, $sponsor, 'devscon');
          }#if
        else {
          $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
          };#else
        if (defined ($Awfif::codelet-> {l}[$myli][19])) {

          $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
          }#wsi set
        else {

          $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
          };
        $Awfif::clp-> {strategy} = "msadobbuilder";
        $Awfif::clp-> {action}-> {sponsor} = $sponsor+1;
        $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
        $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
        $Awfif::clp-> {action}-> {ref} = $spi;
        $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
        $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];#+1;
        $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
        $Awfif::clp-> {action}-> {wsoname} = 0;
        &groupsinv1 ($myli, undef(), undef(), undef(), undef(),undef(), "msadobbuilder", $$kwp, $kwpr, \@$sactset);
        }
      else {#report error no direct stream found

        my ($awss);
        $awss = awsoadr ($Awfif::codelet-> {l} [$myli][21]);
        $Awfif::wsol-> {l} [$awss][2]
        = setupdesc ( $Awfif::memes-> {snnh} {devcsp},
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {dobevaluator},
            $Awfif::wsol-> {l} [$awss] [2],
            $awss);
        };
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# msadobevaluator1
#
#<!-- start tag ds -resweb -->
#
sub msadobbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $dwso, $adwso, $signal, $schema, $found, $bcount, $swstype, $noswstype, $cwsbi, $bdwso, $abdwso, $bcexists, $tws,
    $reportcaspart, $subpid, $transid, $transtatus, $usetrans, $stransmgrid,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# look for histone binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $found = '';
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $reportcaspart = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $streamdscid, $giveup);

      $asponsor = awsoadr ($sponsor);
# Find the statement wso and obtain any stream descriptions - These should include important streams for development
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);

      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
      $bcount = ifindb ($myli, $sponsor, 'hdob', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't');
      if ($bcount <= 0) {#create the binder structure
# idobbinitregu1
# can initialise the do phase regulatory structure

        my ($buffer, $tws);
        $buffer = '<hdo>';
        &initschcon ($myli, \$buffer, \$$kwp, $kwpr, $sponsor);
# idobbcstb

        $buffer = '<hdo><sequence><integration>';
        $tws = inewstws ($myli, \$buffer, \$grkwp, $grkwpr, $sponsor);
        &depwardesc ($myli, $stwso, 'warmdob', \@$sactset);
        };#if
# now know there is a histone integration binder ws locate the hdob schemata
      if ( ifindb ($myli, $sponsor, 'hdob', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1) {
        $bcexists = 't';
        $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$tws);
# The statement codelets stream descriptors are deployed to the <histone> wso
        $Awfif::memes-> {currentwsbi} = $tws;
        $abdwso = awsoadr ($bdwso);
        if ( (($streamdscid = findtdesc ($Awfif::wsol-> {l} [ $astwso] [2], $Awfif::memes-> {snnh} {stream})) != 0)
        && (findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {stream}) == 0)
        ){

          $Awfif::wsol-> {l} [$abdwso][2]
          = setupdesc ( $Awfif::workspace-> {l} [$streamdscid][3],
              $Awfif::workspace-> {l} [$streamdscid][2],
              $Awfif::workspace-> {l} [$streamdscid][4],
              $Awfif::wsol-> {l} [$abdwso] [2],
              $abdwso);
          };#if
        my ($taws, $tawso, $atawso);
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];

# associate with the agent schematic context
        if ( (ifindb ($myli, $sponsor, 'bindercs', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
        ){#

          $tawso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$taws);
          $Awfif::memes-> {currentwsbi} = $taws;
          $atawso = awsoadr ($tawso);
# now record the schematic agent association for the histone agent to reference
          if ( (findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {wsframe}) == 0)
          && (findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {waswsframe}) == 0) #if this exists wsframe has already been created and moved
          ){

            my ($msbws, $msbwso, $framei);
            $Awfif::wsol-> {l} [$abdwso][2]
            = setupframe ( $taws,
                $tawso,
                $Awfif::memes-> {snnh} {wsframe},
                $Awfif::wsol-> {l} [$abdwso] [2],
                $abdwso);
            $framei = $Awfif::wsol-> {l} [$abdwso][2];
# now get the mergestream binder ws/binding and record it

            $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
            &ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef());
            $msbwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$msbws);
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [14] = $msbwso;
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [15] = $msbws;
            };#if
          };# if agent context exists
        };#if find then update binder ws
# get context of any outstanding signal
      $transid = 0;#must be defined to be setup in gettmgr
      $subpid = $Awfif::codelet-> {l} [$myli] [36];
      $stransmgrid = mapnonsubtotmgrid ($asponsor, $Awfif::memes-> {snnh} {stran}, 0, \$transid);
      $usetrans = $transid;
      if ($transid == 0 ) {

        $transid = undef();
        $transtatus = $Awfif::memes-> {snnh} {transid};
        }#if
      else {

        $transtatus = $Awfif::memes-> {snnh} {cassponsor};#unless shift to wascassponsor
        &transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus);
        };#else
      if (
      (($bcexists)
      && (!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {model}))
      )
      or ( (&transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus) == $transid)
      && ($transtatus == $Awfif::memes-> {snnh} {incomplete}) #dob transaction is not completed
      )
      ){
# The builder [mps] signals the nucleus <histone> <schema> [<wso 'string' provided by evaluator>]

        $Awfif::memes-> {currentwsbi} = $cwsbi;
        &ilaunchnc ($myli, $dwso, 'msadoboppi', $Awfif::memes-> {snnh} {deviwhole}, \$giveup, $grkwp, $grkwpr, \@$sactset,
          '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
          $usetrans,
          \$transid,
          \$transtatus
          );
        if (($usetrans == 0) && (defined ($transid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete}))) ){#record the transid

          &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, 0, $stransmgrid);
          };#if
        };#if
# report that have initiated do histone activity

      if ((!findbond ($Awfif::wsol-> {l} [ $adwso][2], $Awfif::memes-> {snnh} {histone}, $Awfif::memes-> {snnh} {devcsp}, $Awfif::memes-> {snnh} {msadobbuilder})) ){
        $Awfif::wsol-> {l} [$adwso] [2]
        = setupdesc ( $Awfif::memes-> {snnh} {devcsp},
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {histone}),
            $Awfif::memes-> {snnh} {msadobbuilder},
            $Awfif::wsol-> {l} [$adwso] [2],
            $adwso);
        };#if
# need to continue stimulating the hdo activity until sloc describes taking control
# It will be deployed into the binder's context structural workspace

      if (
      ($bcexists)
      && (!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {model})) ){

        my ($sgdi, $gsponsor);
# can't free until loose sponsorship

# see 62.2.2.1 $Awfif::memes-> {temp} [$Awfif::memes-> {currentwsbi}] = $Awfif::memes-> {statementbtemp};
        if (!$Awfif::memes-> {tdgscramp}) {
          $Awfif::memes-> {tdgscramp} = 't';
          $Awfif::memes-> {tdgsurg} *= $Awfif::memes-> {tdgsramp};
          };#if
        &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor}, 'hdoscon');
        &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
        $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        ¬gcompleted ($myli, $gsponsor, undef(), 't', 'hdoscon');
        }#re stimulate dev activity
      else {
# must free once loose sponsorship

        &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor}, 'hdoscon');
        };#else
# complete the sponsors transaction

      $transtatus = 0;#find out the status of the transaction
      if ( (defined ($Awfif::codelet-> {l} [$myli] [35]))
      && ($Awfif::codelet-> {l} [$myli] [35] != 0)
      && ((!defined ($transid)) or (tralcomp ($myli, $transid)))
      && (findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $Awfif::memes-> {snnh} {hdo}, $Awfif::memes-> {snnh} {model}))
      ){

        $reportcaspart = 't';
        };#if
      if ($reportcaspart) {

        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got target wso

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# msadobbuilder1
#
#<!-- end tag ds -->
#<!-- end tag aso -->
#<!-- start tag aso -->
#<!-- start tag dli -->
#
sub schbindevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# schematic binding codelet responds to group complete that includes a tailoring operon
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);

      if ( (ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      && (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't') <= 0)
      ){#launch builder

        $Awfif::clp = ();
        $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
        $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
        if (defined ($Awfif::codelet-> {l}[$myli][19])) {
          $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
          }#wsi set
        else {
          $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
          };
        $Awfif::clp-> {strategy} = "schbindbuilder";
        $Awfif::clp-> {action}-> {sponsor} = $sponsor;
        $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
        $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
        $Awfif::clp-> {action}-> {ref} = $spi;
        $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
        $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
        $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
        &groupsinv1 ($myli, undef(), undef(), undef(), undef(),undef(), "schbindbuilder", $$kwp, $kwpr, \@$sactset);
        };
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# schbindevaluator1
#
sub schbindbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
    if ((defined ($kwp))
    && ($kwp == 1)
    ) {
      print ("myli $myli kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) \n");
      };#if

    $salience = $Awfif::memes-> {bnotsalient};
    $$and = 't';
    return $salience
    }# schbindbsmodeler1
#
sub schbindbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
    &ischbindbuilder1 ($myli, 'binderc', \$$kwp, $kwpr, \@$sactset, undef (), 0);
    }# schbindbuilder1
#<!-- start tag aso -->
#
sub ischbindbuilder1 {
    my ($myli, $strategy, $kwp, $kwpr, $sactset, $persist, $ihistone) = @_;
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $cwsbi, $histdesc,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

# models must use the full workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
# schematic binding codelet responds to group complete that includes a tailoring operon
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 4)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);

      if( (ifindb ($myli, $sponsor, $strategy, \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't') <= 0)
      && (ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#setup context for rest of complex

        my ($tws, $buffer, $i, $binding);
        for ($i = trwsoadr ( $Awfif::codelet-> {l} [$myli] [21],2);
        $i <= trwsoadr ($Awfif::codelet-> {l} [$myli] [22], -2);
        $i = trwsoadr ($i,1)) {

          $buffer = $buffer . '<' . getwsost4 ($i) . '>';
          };#for

        $buffer = $buffer . '<sequence><integration>';
        if ((defined ($Awfif::codelet-> {l} [$myli] [36])) && ($Awfif::codelet-> {l} [$myli] [36] != 0)) {

          $binding = $Awfif::memes-> {snnh} {subpstbinding};
          };
        $tws = inewstws ($myli, \$buffer, \$grkwp, $grkwpr, $sponsor, $binding);
#
# now setup the moved position to the start of the source stream
# get the context structural ws linkage
        my ($bdwso, $abdwso, $i, $cws, $bdcwso, $abdcwso, $foundc, $streamdscid, $streama, $stream);
        $foundc = '';

        for ($i = 0; $i < $sigcount; $i++) {
          if ($lomatchs[$i]) {#
# unless this is an operon

            if ( ($Awfif::jhls-> {l} [$lola[$i]][4] == $Awfif::memes-> {snnh}{stbinding})
            or ( subpst ($myli, $lola[$i], $tws, $Awfif::codelet-> {l} [$myli] [36]) )
            ){

              $cws = $Awfif::jhls-> {l} [$lola[$i]] [7];
              $bdwso = $Awfif::jhls-> {l} [$lola[$i]] [8];
              $foundc = 't';
              };#if
            };#if
          };#for
# then get the index into $Awfif::attribs which describes the streams workspace id.

        if ($foundc) {
# switch to context workspace

          $Awfif::memes-> {currentwsbi} = $cws;
          $abdwso = awsoadr ($bdwso);
# The statement does have stream descriptions or the evaluator would not have called me
          $streamdscid = findtdesc ($Awfif::wsol-> {l} [ $abdwso] [2], $Awfif::memes-> {snnh} {stream});
          $streama = ($Awfif::workspace-> {l} [$streamdscid][2] - $Awfif::memes-> {snnh} {wsi});
          $stream = $Awfif::attribs-> {l} [$streama+2][3];
# switch to binder complex workspace
          $Awfif::memes-> {currentwsbi} = $tws;
          if ( ifindb ($myli, $sponsor, $strategy, \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1) {

            my ($i);
            for ($i = 0; $i < $sigcount; $i++) {
              if ($lomatchs[$i]) {#
# unless this is an operon

                if ( ($Awfif::jhls-> {l} [$lola[$i]][4] == $Awfif::memes-> {snnh}{stbinding})
                or ( subpst ($myli, $lola[$i], $tws, $Awfif::codelet-> {l} [$myli] [36]) )
                ){

                  $bdcwso = $Awfif::jhls-> {l} [$lola[$i]] [8];
                  };#
                };#if
              };#for

# deploy the descriptor pointing to the workspace start

            $abdcwso = awsoadr ($bdcwso);
            $Awfif::wsol-> {l} [$abdcwso][2]
            = setupdesc ( ($stream + $Awfif::memes-> {snnh} {wsi}),
                (0 + $Awfif::memes-> {snnh} {wsi}),
                $Awfif::memes-> {snnh} {wsposition},
                $Awfif::wsol-> {l} [$abdcwso] [2],
                $abdcwso);
# and switch back to current context
            $Awfif::memes-> {currentwsbi} = $cwsbi;
# stbindbpers1

            if ((defined ($persist) && ($persist))
            && ($Awfif::codelet-> {l} [$myli] [35] != 0)
            ){#tidy up transaction state if going to persist state

              my ($transtatus);
              &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
              };#if
            if ((defined ($persist) && ($persist))
            ){

              $Awfif::memes-> {storetheds} = 't';#persist current state - will be performed by the coderack
              $Awfif::memes-> {storestop} = '';#don't stop after persist - dont write these two in the storetofiles
              };#if
# stbindbahu1

            if ((defined ($ihistone))
            && (findtdesc ($Awfif::wsol-> {l} [$abdcwso][2], $Awfif::memes-> {snnh} {histone}) == 0)
            ){

              $Awfif::wsol-> {l} [$abdcwso][2]
              = ($histdesc = setupdesc ( (0 + $Awfif::memes-> {snnh} {wsi}),
                  (0 + $Awfif::memes-> {snnh} {wsi}),
                  $Awfif::memes-> {snnh} {histone},
                  $Awfif::wsol-> {l} [$abdcwso] [2],
                  $abdcwso));
              $Awfif::workspace-> {l} [$histdesc] [2] += addhistone ($myli, $ihistone);#create a histone that the binder complex codelets can associate with
              $Awfif::histonel-> {l} [ ($Awfif::workspace-> {l} [$histdesc] [2] - $Awfif::memes-> {snnh} {wsi})] [3] = 0;
              &bindhistone ($myli, $tws, $bdcwso);
              };#if

            };#if
          };#if
        }
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {

          $astwso = awsoadr ($stwso);
          $Awfif::wsol-> {l} [$astwso][2]
          = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
        };
      if ($Awfif::codelet-> {l} [$myli] [35] != 0) {

        my ($transtatus);
        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
        };#if
      };#got buffer

# and switch back to current context
    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# ischbindbuilder1
#
#<!-- end tag aso -->
#
sub slocevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $abcwso, $sponsortype, $cwsbi,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
# start locator codelet responds to group complete providing application specific location support to the binder
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $lhdesc, $lhwso);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);
      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't') == 1)
      ){#look for structural workspace position descriptor

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        $Awfif::memes-> {currentwsbi} = $cws;
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ( ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0))
# and check have not reached end of stream

        && (!findbond ($Awfif::wsol-> {l} [ $abcwso][2], 0, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {eos}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (findtdesc ($Awfif::wsol-> {l} [ $abcwso ] [2], $Awfif::memes-> {snnh} {appkwid}) == 0 ) #sloc builder writes this when it sets up the wsposition
# or the application structural context head does not have a casinit
# context is cws: bcwso
# head is listhead-> lhdesc

        or ( ($lhdesc = findtdesc ($Awfif::wsol-> {l} [$abcwso] [2], $Awfif::memes-> {snnh} {listhead})) == 0 )
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# findtdesc on lhdesc fails to find casinit
        or ($lhdesc != 0 )
        && (($lhwso = ($Awfif::workspace-> {l} [$lhdesc][2] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$lhdesc][3] - $Awfif::memes-> {snnh} {wsi})) != 0)
        &&(!findbond ($Awfif::wsol-> {l} [ awsoadr ($lhwso)] [2], $Awfif::memes-> {snnh} {casinit}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {icompdevaluator}))
        )
        ){#launch builder

          $Awfif::memes-> {currentwsbi} = $cwsbi;
          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# slovevalubo4
          if ((ifindupri ($myli, $sponsor))
# slovevalubo2
          && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype)))
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
# slovevalubo3
            &dropsalience ($myli, $sponsor);
            }#if
          else {
            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "slocbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(),undef(), "slocbuilder", $$kwp, $kwpr, \@$sactset);
          };#if
        }#if
      else {
# slocevalubo1
# see if can recover or mask suppressor

        if (!promotesib ($myli)) {

          &imasksupp ($myli);
          };#if
        };#else
      };#got buffer

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# slocevaluator1
#
sub slocbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
    if ((defined ($kwp))
    && ($kwp == 1)
    ) {
      print ("myli $myli kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) \n");
      };#if

    $salience = $Awfif::memes-> {bnotsalient};
    $$and = 't';
    return $salience
    }# slocbsmodeler1
#
sub slocbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $abcwso, $abdwso, $sponsortype, $cwsbi,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
# start locator codelet responds to group complete providing application specific location support to the binder
# it is a cascade supporting codelet so it will re-enter until the phase it is sponsoring has completed
# however, it should only set the location once
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($lhwso, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $dws, $bcwso, $bdwso, $lhdesc);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);

        $Awfif::memes-> {currentwsbi} = $cws;
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ( ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0))
# and check have not reached end of stream
        && (!findbond ($Awfif::wsol-> {l} [ $abcwso][2], 0, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {eos}))
# and check have not had an unbind
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# or the application structural context head does not have a casinit
# context is cws: bcwso
# head is listhead-> lhdesc

        or ( ($lhdesc = findtdesc ($Awfif::wsol-> {l} [$abcwso] [2], $Awfif::memes-> {snnh} {listhead})) == 0 )
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# findtdesc on lhdesc fails to find casinit
        or ($lhdesc != 0 )
        && (($lhwso = ($Awfif::workspace-> {l} [$lhdesc][2] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$lhdesc][3] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($lhwso)] [2], $Awfif::memes-> {snnh} {casinit}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        )
        ){#identify start position
          my ($aws, $awso, $found, $i);

          if ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0)) {
            $aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi});
            $Awfif::memes-> {currentwsbi} = $aws;
# serially traverse the workspace looking for the start structure

            $awso = $Awfif::wsbl-> {wsft} [$aws];
            $found = '';
            for ($i = $awso; (($i != 0) && (!$found)); $i = trwsoadr ($i,1)) {
# now compare the wso's string if its a mkeywords with required types

              if (wsbasetype ($i) == $Awfif::memes-> {snnh} {mkeywords}) {

                $found = matchitokwkw ($myli, $aws, $i);
                $awso = $i;
                };#if
              };#for
# setup the wsposition descriptor

            if ($found) {

              &bindhistone ($myli, $cws, $bcwso);
              $Awfif::workspace-> {l} [$sldesc] [2] = $awso + $Awfif::memes-> {snnh} {wsi};
# record the keyword so that other codelets can use it for context

              $Awfif::memes-> {currentwsbi} = $cws;
              $abcwso = awsoadr ($bcwso);
              $Awfif::wsol-> {l} [$abcwso][2]
              = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws),
                  ($Awfif::memes-> {snnh} {wsi} + $awso),
                  $Awfif::memes-> {snnh} {appkwid},
                  $Awfif::wsol-> {l} [$abcwso] [2],
                  $abcwso);
              my ($sponsortype);
# so should terminate the codelet sponsorship of the cascade

              $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
              ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
# obtain the binder structural ws
              $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$dws);

              $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
              $sponsortype = wsbasetype ($sponsor);
              $Awfif::memes-> {currentwsbi} = $dws;
              $abdwso = awsoadr ($bdwso);

              if ((!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $sponsortype, $Awfif::memes-> {snnh} {model})) ){
                $Awfif::wsol-> {l} [$abdwso][2]
                = setupdesc ( ($sponsortype),
                    ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {casbound}),
                    $Awfif::memes-> {snnh} {model},
                    $Awfif::wsol-> {l} [$abdwso] [2],
                    $abdwso);
# slocbuildercatal
# allow catalysis requests for the bound complex
                $Awfif::wsol-> {l} [$abcwso][2]
                = setupdesc ( (0),
                    (0),
                    $Awfif::memes-> {snnh} {catalysis},
                    $Awfif::wsol-> {l} [$abcwso] [2],
                    $abcwso);
                };#if
              };#if
            };#if start is still at zero
# become the sponsor of the cascade opp's start
# slocbuilderswcaso
# The builder [mps] signals the nucleus <codelet 21 wso> <schema> [<wso 'string' from schema>]
          my ($giveup);

          $Awfif::memes-> {currentwsbi} = $cwsbi;
          &ilaunchnc ($myli, $bcwso, 'casoppi', $Awfif::memes-> {snnh} {casinopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
            '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
            undef (), #usetrans
            undef (), #transid
            undef (), #transtatus
            undef (), #subprogram
            undef (), #jhlabeli
            undef (), #jhlabeloi
            undef (), #newli
            undef (), #hiurg
            undef (), #usepooling
            ( (ifindupri ($myli, $sponsor)) && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype))) )#buildoffurg
            );
# now want to ungroup if don't find cascade in list in app str workspace list head
# get the app str ws

          &initiateself ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsor);
          if ($Awfif::codelet-> {l} [$myli] [35] != 0) {

            my ($transtatus);
            &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
            };#if
          }#if
        else {#can't operate currently release the suppressor
# slocbldubo1
          &imasksupp ($myli);
          };#else
        }
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {
        $astwso = awsoadr ($stwso);
        $Awfif::wsol-> {l} [$astwso][2]
        = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
        };
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer
# and switch back to current context
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# slocbuilder1
#
#<!-- end tag aso -->
#
sub acsaoevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture

    &icsevaluator1 ($myli, \&Awfif::iacsaoevaluator1, 'acsaobuilder', $kwp, $kwpr, \@$sactset);
    }# acsaoevaluator1
#
sub iacsaoevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $bcount, $pdcawso, $pws, $stwso, $astwso, $twso, $asponsor, $cwsbi,
    $grkwp, $grkwpr);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $e2fwso, $msws, $mswso, $amswso);
    $$fbinderc = ifindb ($myli, $stwso, 'pdcab', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $pdcawso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);

# find the inhibitor binding
    if ($$fbinderc == 1) {

      $bcount = ifindb ($myli, $stwso, 'e2finhibb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset, $pws);
      $e2fwso = getstsbws ($myli, $sigcount, \@lomatchs, \@lola, $pws);
      $bcount = ifindb ($myli, $stwso, 'mergestreamsb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
      $mswso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$msws);
      $Awfif::memes-> {currentwsbi} = $msws;
      $amswso = awsoadr ($mswso);
      if (($bcount == 1)
      && ((findtdesc ($Awfif::wsol-> {l} [ $amswso] [2], $Awfif::memes-> {snnh} {acsaoevaluator})) == 0)
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iacsaoevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# iacsaoevaluator1
#
sub acsaobsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iacsaoevaluator');
    $$and = 't';
    return $salience
    }# acsaobsmodeler1
#
sub acsaobuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $found, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $mswso, $amswso, $msws,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# the acsao codelet models case assumptions within an assume clause. When found and conforming to its model it will describe the presence of the case assumptions

# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $found = '';
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($twso, $stwso, $astwso);

# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);

      my ($devws, $devb, $adevb, $devname, $attribi, $asstype, $assi, $listi, $recordi, $firstri, $lastri, $caseselector, $seldsc, $arecordi, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $i);
# get the development ws and base wso from the statement so that can check the selector list
      if (($devb = findtdesc ($Awfif::wsol-> {l} [ $astwso] [2], $Awfif::memes-> {snnh} {icselector})) != 0
      ){

        $attribi = ($Awfif::workspace-> {l} [$devb] [2] - $Awfif::memes-> {snnh} {wsi});
        $devws = $Awfif::attribs-> {l} [$attribi + 2] [3];
        $devb = $Awfif::attribs-> {l} [$attribi + 3] [3];
        $devname = $Awfif::attribs-> {l} [$attribi + 4] [3];
        };#if
# get the iassselector attrib from the statement wso so that can identify the case selector deployment assumption
      if (($asstype = findtdesc ($Awfif::wsol-> {l} [ $astwso] [2], $Awfif::memes-> {snnh} {iassselector})) != 0
      ){

        $attribi = ($Awfif::workspace-> {l} [$asstype] [2] - $Awfif::memes-> {snnh} {wsi});
        $asstype = $Awfif::attribs-> {l} [$attribi + 2] [3];
        $assi = $Awfif::attribs-> {l} [$attribi + 3] [3];
        };#if
# check the selector list name corresponds with the deployment list name if not see if there are more selector lists developed. if no match report to the statement that the assert has failed.
      $caseselector = '';
# check that the selector assumption matches an option from the selector list if not report to the statement that the assert has failed
      if ($asstype == $Awfif::memes-> {snnh} {char}) {
# first note the value of the assumed caseselector

        $i = trwsoadr ($assi, 3);
        while (wsbasetype ($i) == $Awfif::memes-> {snnh} {char}) {

          $caseselector = $caseselector . getwsost4 ($i++);
          };#while

        $Awfif::memes-> {currentwsbi} = $devws;
        $adevb = awsoadr ($devb);
        if (($listi = findtdesc ($Awfif::wsol-> {l} [ $adevb] [2], $Awfif::memes-> {snnh} {listlink})) != 0
        ){

          $recordi = ($Awfif::workspace-> {l} [$listi] [2] - $Awfif::memes-> {snnh} {wsi});
          $firstri = $recordi;
# now check each record until get a match or run out
          if (($seldsc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($recordi)] [2], $Awfif::memes-> {snnh} {stname})) != 0
          && ($Awfif::workspace-> {l} [$seldsc] [10] eq $devname)
          ){

            $found = 't';#the ics name matches the listname
            };#if
# now if found a name match should check the $caseselector is amatch for one of the case selector elements
          if ($found) {

            $found = '';#now looking for a match between an ivalw record and the
            while ( (!$found)
            && (($recordi = findtdesc ($Awfif::wsol-> {l} [ ($arecordi = awsoadr ($recordi))] [2], $Awfif::memes-> {snnh} {recordlink})) != 0)
            && (($recordi = ($Awfif::workspace-> {l} [$recordi] [2] - $Awfif::memes-> {snnh} {wsi})) != 0)
            ){

              if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
                &itwsoutput ($recordi);
                };
              if ((($seldsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {selvalue})) != 0)
              && ($Awfif::workspace-> {l} [$seldsc] [10] eq $caseselector)
              ){

                $found = 't';
                };#if
              };#while
            };#if
          };#if
        }#if
      elsif (($asstype == $Awfif::memes-> {snnh} {first})
      or ($asstype == $Awfif::memes-> {snnh} {last})
      or ($asstype == $Awfif::memes-> {snnh} {all})
      ){

        $Awfif::memes-> {currentwsbi} = $devws;
        $adevb = awsoadr ($devb);
        if (($listi = findtdesc ($Awfif::wsol-> {l} [ $adevb] [2], $Awfif::memes-> {snnh} {listlink})) != 0
        ){

          $recordi = ($Awfif::workspace-> {l} [$listi] [2] - $Awfif::memes-> {snnh} {wsi});
          $firstri = $recordi;
          $lastri = $recordi;
# now check each record until get a match or run out
          if (($seldsc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($recordi)] [2], $Awfif::memes-> {snnh} {stname})) != 0
          && ($Awfif::workspace-> {l} [$seldsc] [10] eq $devname)
          ){

            $found = 't';#the ics name matches the listname
            };#if
# now if found a name match should check the $caseselector is amatch for one of the case selector elements
          if ($found) {

            $found = '';#now looking for a match between an ivalw record and the
            while ( (!$found)
            && (($recordi = findtdesc ($Awfif::wsol-> {l} [ ($arecordi = awsoadr ($recordi))] [2], $Awfif::memes-> {snnh} {recordlink})) != 0)
            && (($recordi = ($Awfif::workspace-> {l} [$recordi] [2] - $Awfif::memes-> {snnh} {wsi})) != 0)
            ){

              if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
                &itwsoutput ($recordi);
                };
              if ((($seldsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {selvalue})) != 0)
              && ($Awfif::workspace-> {l} [$seldsc] [10] ne '')
              ){

                if ($asstype != $Awfif::memes-> {snnh} {last}) {
                  $found = 't';
                  };#if
# now note the value of the assumed caseselector

                $caseselector = $Awfif::workspace-> {l} [$seldsc] [10];
                }#if
              elsif ((($seldsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {selvalue})) == 0)
              && ($asstype == $Awfif::memes-> {snnh} {last})
              ){

                $found = 't';
# now note the value of the assumed caseselector

                };#elsif
              };#while
            };#if
          };#if
        };#elsif
      $bcount = ifindb ($myli, $stwso, 'mergestreamsb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
      $mswso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$msws);
# if found a selector then describe the semantic selector

      if (($found)
      && ($bcount == 1)
      ){

        my ($attribs);
        $Awfif::memes-> {currentwsbi} = $msws;
        $amswso = awsoadr ($mswso);
        $attribs = addattrib ($Awfif::memes-> {snnh} {attribs},'');
        &addattrib ($Awfif::memes-> {snnh} {attrib}, $Awfif::memes->{snnh} {acsaoevaluator}, '');
        if ($asstype == $Awfif::memes->{snnh} {all}) {

          &addattrib ($Awfif::memes-> {snnh} {attrib}, $Awfif::memes->{snnh} {all}, '');
          }#if
        else {

          &addattrib ($Awfif::memes-> {snnh} {attrib}, $Awfif::memes->{snnh} {one}, '');
          };#else

        &addattrib ($Awfif::memes-> {snnh} {attrib}, $seldsc, '');
        &addattrib ($Awfif::memes-> {snnh} {attrib}, $devws, '');
        &addattrib ($Awfif::memes-> {snnh} {attrib}, $firstri, '');#should be where the name of the case selectors is described
        &addattrib ($Awfif::memes-> {snnh} {attrib}, $recordi, '');#should be the case that is described by the assumption if not all selected
        &addattrib ($Awfif::memes-> {snnh} {attribe},'');
        $Awfif::wsol-> {l} [$amswso][2]
          = setupdesc ( $Awfif::memes-> {snnh} {attrib},
              ($Awfif::memes-> {snnh} {wsi} + $attribs),
              $Awfif::memes-> {snnh} {acsaoevaluator},
              $Awfif::wsol-> {l} [$amswso][2],
              $amswso);
        }#if found
# acsaobasscisu1
      else {

        my ($descfits, $drefi, $conformstoresource, $i, $count, $model, $launched, $binding, $ni, $pi, $nidl, $pidl, $nsnn, $psnn);
        if ($Awfif::memes-> {acsaobasscibreak}) {&break (); $Awfif::memes-> {acsaobasscibreak} = '';};
        $descfits = '';
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l}[$myli][20];
        $twso = isterminated ($stwso, $grkwp, $grkwpr);
        for ($i = $stwso; (($i != $twso)
        && (trwsoadr ($i,1) != $twso)
        && (trwsoadr ($i,2) != $twso)
        && (trwsoadr ($i,3) != $twso)
        && (!$descfits));$i = trwsoadr ($i,1)) {
          if (($count = ipartseqcount ('onematch', $myli, $i, $twso, \$descfits, \$conformstoresource, $grkwp, $grkwpr,
            $Awfif::memes-> {snnh} {case},
            $Awfif::memes-> {snnh} {selector},
            $Awfif::memes-> {snnh} {is},
            )>0)
          && ($descfits)
          ) {
# acsaobasscisu2

            $ni = $i;
            $pi = trwsoadr ($i, 1);
            $model = -($Awfif::memes-> {snnh} {succgroup});# assume succ group add
            $binding = usegroupcategory ($myli, \$ni, \$nidl, $pi, \$pidl, \$nsnn, \$psnn, $model);
            &groupinv1 ($myli, $ni, $pi, $nidl, $model, $grkwp, $grkwpr, \@$sactset);
# notgcomplete i
            ¬gcompleted ($myli, $i,
            undef (),#teltwso
            undef (),#esupp
            undef (),#strategy
            undef (),#dontamp
            undef (),#stws
            undef (),#issubp
            undef (),#subp
            undef (),#nodebug
            't'#nodelayselect
            );
            &findcounter ($Awfif::wsol-> {l} [awsoadr ($i)][2], ($Awfif::memes-> {snnh}{amplify}), \$drefi);
            if ($drefi != 0) {
              $Awfif::workspace-> {l} [$drefi] [9] = (($Awfif::workspace-> {l} [$drefi] [9] - $Awfif::memes-> {snnh}{wsi}) * $Awfif::memes-> {evlaunchhim}) + $Awfif::memes-> {snnh}{wsi};
              };#if
            $launched = 't';
            };#if
          };#for
        if (!$launched) {

          &break ();
          };#else
        };#else
      if ($bcount == 1) {

        if (!$found) {

          }#if report semantic failure
        else {

          my ($transtatus);
# acsaobuitrau1
          $transtatus = 0;#find out the status of the transaction
          if ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0) ) {

            &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
            };#if
          };#else
        };#if
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# acsaobuilder1
#
#
sub crsmevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture

    &icsrioevaluator1 ($myli, \&Awfif::icrsmevaluator1, 'crsmbuilder', $kwp, $kwpr, \@$sactset);
    }# crsmevaluator1
#
sub icrsmevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $bcount, $pdcawso, $pws, $stwso, $astwso, $twso, $asponsor, $cwsbi,
    $grkwp, $grkwpr);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';

    if (($Awfif::memes-> {checksubpidnz}) && ($Awfif::codelet-> {l} [$myli] [36] != 0)) {&break ()};#
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $e2fwso, $cod36);
    $cod36 = $Awfif::codelet-> {l} [$myli] [36];#while pdcab is 'global' need to be a main program
    $Awfif::codelet-> {l} [$myli] [36] = 0;
    $$fbinderc = ifindb ($myli, $stwso, 'pdcab', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $pdcawso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);
# find the inhibitor binding and if not inhibited call in the builder
    if ($$fbinderc == 1) {

      $bcount = ifindb ($myli, $stwso, 'e2finhibb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset, $pws);
      $e2fwso = getstsbws ($myli, $sigcount, \@lomatchs, \@lola, $pws);
      if (($bcount == 1) #call in the builder
# icrsmecompsubu1
      or (($cod36 == 0) #if there are conditions on this launch let subprogram completion condition proceed
        or ( ($cod36 > 0)
          && (($Awfif::codelet-> {l} [$myli] [36] = $cod36) > 0)#must reload the codelet for bcsubpcompsub
          && (bcsubpcompsub ($myli)) )#or
      )#or
      ){#launch builder
# icrsmerunu1

        if ( ($cod36 == 0)
        or (!$Awfif::memes-> {crsmusesubptrachanged})
        or (subptrachanged ($myli, $cod36))
        ){
          $dolaunch = 't';
          };#if
        };#if
      };#if
    $Awfif::codelet-> {l} [$myli] [36] = $cod36;
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("icrsmevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# icrsmevaluator1
#
sub crsmbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'icrsmevaluator');
    $$and = 't';
    return $salience
    }# crsmbsmodeler1
#
#<!-- start tag uts -->
#<!-- start tag sia -->
#
sub crsmbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $atelhwso, $f1trmgrid, $f1transid, $signal, $schema, $found, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $mswso, $gwdsc, $sponsortype, $jhlabeli, $jhlabeloi, $jhlabeliav, $subnogap, $reportcaspart, $mycounter, $f1counter,
    $grkwp, $grkwpr, $cdn, $cdnx, $samesubpid, $endofsub, $eos, $foundlistend);
#
# mergestream specific case resolved semantics modeling manager
# checked for merged workspaces

# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $endofsub = '';
    $foundlistend = '';
    $subnogap = '';
    $reportcaspart = '';
# crsmbiwaitu1

# now check the workspace for salient workspace type with model status descriptor
    if ((getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3))
    && (($Awfif::codelet-> {l}[$myli] [36] == 0) or (!defined ($Awfif::subpl-> {w} [$Awfif::codelet-> {l}[$myli] [36]])) or ($Awfif::subpl-> {w} [$Awfif::codelet-> {l}[$myli] [36]] == 0))#don't do crsm while subpid waiting
    ){
      my ($stwso, $astwso, $bws, $bbwso, $abbwso, $giveup);

# crsmbmsu1
# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      $sponsortype = wsbasetype ($sponsor);

      my ($proceed, $usetrans, $stransmgrid, $transid, $transtatus, $msws, $msb, $listi, $recordi, $lrecordi, $seldsc, $moddsc, $arecordi, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $proceed = '';
      $asponsor = awsoadr ($sponsor);
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));

      if ( (defined ($Awfif::memes-> {crsmbsubpspbreak}))
      && ($Awfif::memes-> {crsmbsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if
      if ( (defined ($Awfif::memes-> {crsmbnsubpebreak}))
      && ($Awfif::memes-> {crsmbnsubpebreak})
      && ($Awfif::codelet-> {l} [$myli] [36] == 0)
      ){

        &break();
        };#if
      if ( ($Awfif::memes-> {checktransidnz})
      && ($Awfif::codelet-> {l} [$myli][36] > 0)
      && ($Awfif::codelet-> {l} [$myli][35] == 0)
      && (!mysubtrancomp ($myli, findsubpicnm ($myli, $Awfif::codelet-> {l}[$myli][36], $Awfif::codelet-> {l}[$myli][2]), $Awfif::codelet-> {l}[$myli][2]))
      ){

        &break ();
        };#if
# crsmbcodu1
      if (($Awfif::memes-> {doccodescs})
      && !(ccodescs ($myli, $sponsor))
      && ($Awfif::memes-> {ccodescsd})
      ) { &break ()};
# crsmbancou1
      if (($Awfif::memes-> {doccodescs})
      && (itanalyco ($myli, $sponsor, \$mycounter, \$f1counter))){

        &cletcostate ($myli, $mycounter, $f1counter);
        };#if
# crsmbnsmapu1
      if ($Awfif::codelet-> {l} [$myli] [36] == 0) {#sustain the signalled codelets if necessary

        $f1transid = 0;#must define this for it to be set and returned
        $f1trmgrid = mapnonsubtotmgrid ($asponsor, $Awfif::memes-> {snnh} {stran}, 0, \$f1transid);
# need to handle sameas transaction procedure pairs
# crsmbsameasu1
        if (($f1trmgrid > 0)
# crsmbnsmapu2
        && (!tralcomp ($myli, $f1transid))
        ){
# crsmbnsmapu3

          $transtatus = 0;#find out the status of the transaction
# crsmbnsmapu4

          $usetrans = $f1transid;
          $transid = $f1transid;
          $stransmgrid = $f1trmgrid;
          }#if
        elsif (($f1trmgrid > 0)
# crsmbnsmapu7
        && (tralcomp ($myli, $f1transid))
        ){#the transaction has completed
# free the transaction resources

          $transtatus = 0;#find out the status of the transaction
          if ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0) ) {

            if ( (defined ($Awfif::memes-> {crsmbsubpsptrbreak}))
            && ($Awfif::memes-> {crsmbsubpsptrbreak} == $Awfif::codelet-> {l} [$myli] [36])
            ){

              &break();
              };#if
            $reportcaspart = 't';
            };#if
# reset the transaction info so that proceed with new trasaction

          $transid = undef();
          $f1transid = undef();
          $f1trmgrid = undef();
          $usetrans = 0;
          $transtatus = $Awfif::memes-> {snnh} {transid};
          }#elsif
        else {#no outstanding signalled codelets to support

          $usetrans = $f1transid;
          $transid = undef();
          $stransmgrid = $f1trmgrid;
          };#else
        }#if
      else {
# crsmbgtsu1

        $transtatus = 0;#find out the status of the transaction
        $usetrans = gettransstate ($myli, $sponsor, $asponsor, 'bindercs', \$stransmgrid, \$transid, \$transtatus, $$kwp, $kwpr, \@$sactset);
        if (defined ($transid)) {#remember that found an active transaction

          $samesubpid = 't';
          };#if
        };#else
# crsmbfwsu1

      if (($proceed = ibawswalk ($myli, $sponsor, $stwso, 'binderp1', 'bindercs', \@$sactset, \$bcount, \$msws, \$msb, \$bws, \$bbwso) )){
        $found = '';#undefined found -> no list; false found -> list but no missing models; true -> found missing models
        };#if
      if ($proceed) {#walk the workspace to see if any case operations are not associated with models

        $Awfif::memes-> {currentwsbi} = $bws;
        $abbwso = awsoadr ($bbwso);
# now pickup the listlink
        if (($listi = findtdesc ($Awfif::wsol-> {l} [ $abbwso] [2], $Awfif::memes-> {snnh} {listlink})) != 0
        ){

# now convert the listi to reference the first list record
          $listi = ($Awfif::workspace-> {l} [$listi] [2] - $Awfif::memes-> {snnh} {wsi});
# now get the first record link descriptor and then turn it into the record wso index
          if ( (($recordi = findtdesc ($Awfif::wsol-> {l} [ ($arecordi = awsoadr ($listi))] [2], $Awfif::memes-> {snnh} {recordlink})) != 0)
          ){
# now check each record until get a match or run out - move in to the first record
# crsmbmkwspu1
# subprograms may have only one record byt they may have many instances of case keyword pair, and they may recurse
# Each new level of recursed subprogram should be bounded by a keyword pair - this pair is not part of the keywords that the subprogram should process
# it belongs to the caller
# be careful the end of a subprogram will occur in a valid record so should check for end of sub after look at the record

            $recordi = ($Awfif::workspace-> {l} [$recordi] [2] - $Awfif::memes-> {snnh} {wsi});
            $arecordi = awsoadr ( $recordi);
# now check each record until get a match or run out

            if( ( ($moddsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {model}, $sponsortype, ($Awfif::memes-> {snnh} {casinopp} + $Awfif::memes-> {snnh} {wsi}))) != 0)
            && (( ($seldsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {casemodel})) == 0)
              or ($Awfif::workspace-> {l} [$seldsc] [10] != $Awfif::memes-> {snnh} {casedeploys})
              )#&&
            ){

              $found = 't';
              };#if
            if ( (endsubpstream ($myli, $arecordi, $abbwso))
            && (bcsubpcompsub ($myli) )
            ){#its a subprogram's last record and the bcsubpc has completed

              $eos = 't';
# crsmbfndeosu1
# in special case of no descriptors having been written to a completed subprogram's last record there is no gap
              if (($found)
              && ($moddsc == $Awfif::wsol-> {l} [ $arecordi] [2]) ){

                $found = '';
                $subnogap = 't';
                };
              };#if
            if (($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry})
            && ($found)
            ){
              print ("crsmbuilder 452 found($found) ");
              };
            };#if
          while ( (!$found)#works for main,
          && (!$eos)
          && (($lrecordi = $recordi) != 0)#aim is to check that the last record link is non zero
          && ( (($recordi = findtdesc ($Awfif::wsol-> {l} [ ($arecordi = awsoadr ($recordi))] [2], $Awfif::memes-> {snnh} {recordlink})) != 0)
            or (($Awfif::codelet-> {l} [$myli] [36] == 0) && ( (($foundlistend = findtdesc ($Awfif::wsol-> {l} [ awsoadr (trwsoadr($lrecordi, 1))] [2], $Awfif::memes-> {snnh} {listend})) == 0))) )
          ){

            $gwdsc = $Awfif::wsol-> {l} [ $arecordi] [2];
            while ((!$found)
            && ( ($gwdsc = findtdesc ($gwdsc, $Awfif::memes-> {snnh} {gowithin})) != 0 )
            ){

              $found = checkwithin ($myli, $gwdsc, $sponsortype, $kwp, $kwpr);
              $gwdsc = $Awfif::workspace-> {l}[$gwdsc][0];
              };#while

            if( ( ($moddsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {model}, $sponsortype, ($Awfif::memes-> {snnh} {casinopp} + $Awfif::memes-> {snnh} {wsi}))) != 0)
            && (($seldsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {casemodel})) == 0)
            or ($Awfif::workspace-> {l} [$seldsc] [10] != $Awfif::memes-> {snnh} {casedeploys})
            ){

              $found = 't';
              }#if
            else {

              $found = '';
              };
            $recordi = ($Awfif::workspace-> {l} [$recordi] [2] - $Awfif::memes-> {snnh} {wsi});
# in icrsmox look at each ival and model to match them up at this point but here just need to know there is a gap
# check if the subprogram has been completed

            if ( (endsubpstream ($myli, $arecordi, $abbwso))
            && (bcsubpcompsub ($myli) )
            ){#its a subprogram's last record and the bcsubpc has completed

              $eos = 't';
# crsmbfndeosu2
# in special case of no descriptors having been written to a completed subprogram's last record there is no gap
              if (($found)
              && ($moddsc == $Awfif::wsol-> {l} [ $arecordi] [2]) ){

                $found = '';
                $subnogap = 't';
                };
              }#if
            elsif ( ($Awfif::codelet-> {l} [$myli] [36] == 0)
            && ((findtdesc ($Awfif::wsol-> {l} [awsoadr ( trwsoadr($lrecordi, 1))] [2], $Awfif::memes-> {snnh} {listend})) != 0)
            ){

              $foundlistend = 't';
              };#elsif
            if (($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry})
            && ($found)
            ){
              print ("crsmbuilder 715 found($found) ");
              };
            };#while
          };#if
        };# if

      if ( (defined ($Awfif::memes-> {crsmbnsubpeosbreak}))
      && ($Awfif::memes-> {crsmbnsubpeosbreak})
      && ($Awfif::codelet-> {l} [$myli][36] == 0)
      && ($foundlistend)
      ){

        &break();
        };#if
      if ($bcount == 1) {#if workspace fully modelled describe completion otherwise signal the nucleus as necessary

        if (($found)
        && ($f1trmgrid > 0)
        && (tralcomp ($myli, $f1transid))
        or (($found)
          && ( (!defined ($f1trmgrid))
            or ($f1trmgrid == 0)
            ) #and
          && ( (!defined ($samesubpid))
            or (!$samesubpid) or (($samesubpid) && ($transtatus != $Awfif::memes-> {snnh} {completed}))
            )#and
          )#or
# crsmbnsmapu5
        or (($f1trmgrid > 0)
          && (!tralcomp ($myli, $f1transid))
          )#or
        or (($eos) #if a sub-program has completed it may still need its sub-procedures to complete
          && (!tralcomp ($myli, $transid))
          && ($samesubpid)
          )#or
        ){
# crsmbmlu1

          my ($subpid, $casst, $p, $hiurg);#need to support cascade with signal to nucleus
          if ($Awfif::codelet-> {l} [$myli] [36] > 0) {

            $subpid = $Awfif::codelet-> {l} [$myli] [36];
            $jhlabeli = 0;
            $jhlabeloi = 0;
            $casst = 'cassuboppi';
            if (!defined ($Awfif::subpl-> {q} [3] [$Awfif::memes-> {crsmindex}] [$Awfif::codelet-> {l} [$myli] [36] ])) {

              $Awfif::subpl-> {q} [3] [$Awfif::memes-> {crsmindex}] [$Awfif::codelet-> {l} [$myli] [36] ] = 0;
              };#if
            $p = \$Awfif::subpl-> {q} [3] [$Awfif::memes-> {crsmindex}] [$Awfif::codelet-> {l} [$myli] [36] ];
            }#if
          else {

            $casst = 'casoppi';
            $reportcaspart = '';#may have found the sub-transaction is complete but gaps still need the cascade sponsors support
            if (tralcomp ($myli, $f1transid)) {#cleardown the sponsored transaction to ensure get a new one

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
              $usetrans = 0;
              $f1transid = $usetrans;
              $transid = undef ();
              $stransmgrid = 0;
              $f1trmgrid = $stransmgrid;
              $transtatus = 0;
              };#if
            };#else

          if ( (($Awfif::codelet-> {l} [$myli] [36] == 0) or (!defined ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]])) or ($Awfif::subpl-> {w} [$Awfif::codelet-> {l} [$myli] [36]] == 0))#don't do crsm while subpid waiting
          ) {

            $jhlabeliav = 't';
            $Awfif::memes-> {currentwsbi} = $cwsbi;
# crsmbhiurgu1

            if (($samesubpid) && ($Awfif::codelet-> {l} [$myli] [36] > 0)) {

              $hiurg = $Awfif::memes-> {tdfsampdo} | nof1in15 ($myli, $Awfif::codelet-> {l} [$myli] [36], $transid);
              }#if
            else {

              $hiurg = $Awfif::memes-> {tdfsampdo};
              };#else

                if ( (defined ($Awfif::memes-> {crsmbsubpspsigbreak}))
                && ($Awfif::memes-> {crsmbsubpspsigbreak} == $Awfif::codelet-> {l} [$myli] [36])
                ){

                  &break();
                  };#if
                if ( (defined ($Awfif::memes-> {crsmbsubpnspsigbreak}))
                && ($Awfif::memes-> {crsmbsubpnspsigbreak})
                && ($Awfif::codelet-> {l} [$myli] [36] > 0)
                ){

                  &break();
                  };#if

            &ilaunchnc ($myli, $mswso, $casst, $Awfif::memes-> {snnh} {cascompsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
              '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
              $usetrans,
              \$transid,
              \$transtatus,
              $subpid, #signal sub-program
              \$jhlabeli,
              \$jhlabeloi,
              undef (), #newli
              $hiurg,
              \$$p
              );
# crsmbtsubsu1

            if ( ( (!defined ($f1trmgrid))
              or ($f1trmgrid == 0) )
            && ( (!defined ($samesubpid))
              or (!$samesubpid) )#&&
            && ( (!$eos) )#&&
            ){#as long as this is signaling a new transaction record it

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
              if ($Awfif::codelet-> {l} [$myli] [36] != 0) {

                &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $Awfif::codelet-> {l} [$myli] [36]);
                };#if
              };
            }#if
# crsmbiwaitu3
          elsif ((($subpid > 0) && (defined ($Awfif::subpl-> {w} [$subpid])) && ($Awfif::subpl-> {w} [$subpid] != 0))
          && ($Awfif::memes-> {crsmbiwaitnsb})
          ) {

            &break ();
            };#if
          }#if launch models
        elsif ((!$found)
# crsmbnsmapu6
        && ($f1trmgrid > 0)
        && (tralcomp ($myli, $f1transid))
        ){#completed transaction and no further modeling needed so remove the transaction record

          &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
          if ($Awfif::codelet-> {l} [$myli] [36] != 0) {

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {remove}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
            };#if
          $transtatus = 0;#find out the status of the transaction
          if ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0) ) {

            $reportcaspart = 't';
            };#if
          }#elsif
        elsif ((!$found)
        && ($Awfif::codelet-> {l} [$myli] [36] > 0)
        && ($stransmgrid > 0)
        && ($usetrans > 0)
        && ($transtatus == $Awfif::memes-> {snnh} {completed})
        ){#completed transaction and no further modeling needed so remove the transaction record - added when crsm with 35 = 0 and 36 > 0 was looping on a completed subtransaction - may be that bug is in failing to complete the transaction earlier so this block may be irrelevent

          &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
          if ($Awfif::codelet-> {l} [$myli] [36] != 0) {

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {remove}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
            };#if
          $transtatus = 0;#find out the status of the transaction
          if ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0) ) {

            $reportcaspart = 't';
            };#if
          }#elsif
        else {#all records had a model

          my ($bdwso, $abdwso, $cws);
          if (((defined ($found)) && (!$found)) #if were records but non without a model

          ){

            my ($subi, $compcount, $subtotal);#check how many subprograms have been created and completed
            $compcount = 0;
            $subtotal = $Awfif::subpl-> {p} - 1;
            for ($subi = 1;$subi < $Awfif::subpl-> {p};$subi++){

              $compcount += itsubstate ($subi);
              };#for
            $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];#if were records but non without a model
            if ( ($Awfif::codelet-> {l} [$myli] [36] == 0)
            && (ifindb ($myli, $sponsor, 'bindercs', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)#check for case with semantics
            ){#

              if ( (defined ($Awfif::memes-> {crsmbcdabreak}))
              && ($Awfif::memes-> {crsmbcdabreak})
              ){

                &break();
                };#if

              $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
              $Awfif::memes-> {currentwsbi} = $cws;
              $abdwso = awsoadr ($bdwso);
# crsmbdbutu1
# now in a position to assist the debug utilities
              $Awfif::memes-> {casetrmcws} = $cws;
              $Awfif::memes-> {casetrmbcwso} = $bdwso;
              $Awfif::memes-> {casetrmbs} = $Awfif::codelet-> {l} [$myli] [2];
# now release pressure on amplifiers
              $Awfif::memes-> {mainco} = 0;
              }#if main
            elsif ( ($Awfif::codelet-> {l} [$myli] [36] > 0)
            && ($bbwso > 0)
            && ($bws > 0)
            ){

              $bdwso = $bbwso;
              $cws = $bws;
              $Awfif::memes-> {currentwsbi} = $cws;
              $abdwso = awsoadr ($bdwso);
              };#elsif
# crsmbbhu1

            if (($bdwso > 0) #if crsm has setup bdwso & cws then attempt to bind to histone
            && ($cws > 0)
            ){


            if (($bdwso > 0) #if crsm has setup bdwso & cws then report manager satisfied with modelling of this workspace
            && ($cws > 0)
            && ((findtdesc ($Awfif::wsol-> {l} [($abdwso)] [2], $Awfif::memes-> {snnh} {crsmevaluator}, $Awfif::memes-> {snnh} {casecategory}, ($Awfif::memes-> {snnh} {specified}) )) == 0 )
            && (($Awfif::codelet-> {l} [$myli] [36] > 0)
              or (($foundlistend)
              or ( ($Awfif::memes-> {casetrmcws} == $cws) && ($subtotal > 0) && ($compcount == $subtotal)) ) #no codelet signalled and no gaps found
            )
            ){

              if ( (defined ($Awfif::memes-> {crsmbsubpspspbreak}))
              && ($Awfif::memes-> {crsmbsubpspspbreak} == $Awfif::codelet-> {l} [$myli] [36])
              ){

                &break();
                };#if
              if ( (defined ($Awfif::memes-> {crsmbnsubpspbreak}))
              && ($Awfif::memes-> {crsmbnsubpspbreak})
              && ($Awfif::codelet-> {l} [$myli] [36] == 0)
              ){

                &break();
                };#if

              $Awfif::wsol-> {l} [$abdwso][2]
                = setupdesc ( $Awfif::memes-> {snnh} {casecategory},
                    ($Awfif::memes-> {snnh} {specified}),
                    $Awfif::memes-> {snnh} {crsmevaluator},
                    $Awfif::wsol-> {l} [$abdwso][2],
                    $abdwso);
              };#if
            };#if did not find a record without a classification

# crsmbuitrau1
          $transtatus = 0;#find out the status of the transaction
          if ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0)
          && ( ( ($Awfif::codelet-> {l} [$myli] [36] > 0) && ((!defined ($transid)) or (tralcomp ($myli, $transid))) )
            or ( ($Awfif::codelet-> {l} [$myli] [36] == 0) && ( (!defined ($f1transid) or ($f1transid == 0)) or (tralcomp ($myli, $f1transid)) ) )
            )#&&
          ){

            if ( (defined ($Awfif::memes-> {crsmbnsubpcbreak}))
            && ($Awfif::memes-> {crsmbnsubpcbreak})
            && ($Awfif::codelet-> {l} [$myli] [36] == 0)
            ){

              &break();
              };#if
            $reportcaspart = 't';
            };#if
          };#else
        };#if

      my ($reportdesc, $arunningwso);#setup subprogram environment for amplification of self
      if ( ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
      ){

        $Awfif::wsol-> {l} [$arunningwso][2]
          = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
          $Awfif::memes-> {snnh} {running},
          $Awfif::wsol-> {l} [$arunningwso][2],
          $arunningwso);

        &compclone ($myli);
        };#if
# crsmbgrabu1
# amplify sub cascade

      my ($grabdesc, $csubpid);
# first see if there is a running subcascade and if there is check if can grab it
      if ( (defined ($Awfif::memes-> {crsmbsubpspabreak}))
      && ($Awfif::memes-> {crsmbsubpspabreak})
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
      ){

        &break();
        };#if

      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
# for crsm atleast it is important for the grab to be the best possible
      && (($csubpid = spifgrabcandidate ($myli, $arunningwso, 't', \$jhlabeliav, \$jhlabeli, 'crsmbuilder')) > 0)
      ){

        if (mcrsmgrab ($myli, \$csubpid, $transid) ){#it is possible that crsm modelling will over rule the general csubpid selection

          $Awfif::wsol-> {l} [$asponsor][2]
            = inccounter ( 0,
                (0 ), #will become a reference to codelet shell
                $Awfif::memes-> {snnh} {grab},
                $Awfif::wsol-> {l} [$asponsor] [2],
                $asponsor);

          if ($Awfif::memes-> {crsmbgrabb}){&break ()};

          if ( ( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
          ){

            $Awfif::workspace-> {l} [$grabdesc] [2] = $csubpid;
            };#if
          };#if
        };#if
      if ($reportcaspart) {#better complete the transaction before do the amplification

        if ( (defined ($Awfif::memes-> {crsmbsubpspcbreak}))
        && ($Awfif::memes-> {crsmbsubpspcbreak} == $Awfif::codelet-> {l} [$myli] [36])
        ){

          &break();
          };#if
        if ( (defined ($Awfif::memes-> {crsmbsubpnspcbreak}))
        && ($Awfif::memes-> {crsmbsubpnspcbreak})
        && ($Awfif::codelet-> {l} [$myli] [36] > 0)
        ){

          &break();
          };#if
        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
        };
# crsmbcou1

      if ($Awfif::memes-> {doccodescs}){
        &pcof1descs ($myli, $sponsor);
        };#if
# crsmbspigu1

      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
          && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ($Awfif::memes-> {applyactive})
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
      ){#use clone to launch cascade codelets

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {iapplyramp};
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth};
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        &spigrabamp ($myli, \$$kwp, $kwpr, 't', \$jhlabeliav, \$jhlabeli, \$transid, 'crsmbuilder');#which may change the descriptor situation
        if ($Awfif::memes-> {applycount} <= $Awfif::memes-> {applycmin}) {

          $Awfif::memes-> {applyactive} = '';
          $Awfif::memes-> {applycount}--;
          }
        else {

          $Awfif::memes-> {applycount}--;
          };
        }#if
      elsif ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
          && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) == 0 )
      ){#push for more time for coderack

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {applyramp}/2;
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth} * 1.5;
        $Awfif::memes-> {applycount}--;
        };#else
      }#got target wso
# crsmbiwaitu2
    elsif ((($Awfif::codelet-> {l}[$myli] [36] > 0) && (defined ($Awfif::subpl-> {w} [$Awfif::codelet-> {l}[$myli] [36]])) && ($Awfif::subpl-> {w} [$Awfif::codelet-> {l}[$myli] [36]] != 0))
    && ($Awfif::memes-> {crsmbiwaitb})
    ) {

      &break ();
      };#if

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# crsmbuilder1
#
#<!-- end tag sia -->
#<!-- end tag uts -->
#
sub icrsmoxevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset, $strategy) = @_;
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# inverted case resolved semantics model for|if|else|elsif|match|melse codelet models
# checked for merged workspaces

    $noswstype = 't';
    my ($cwsbi, $launchev, $fbinderc);
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $launchev = iicrsmoxevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc);
      if (($fbinderc > 0)
      ){#

        if (($launchev)
        ){

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
          $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = $strategy;
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          $Awfif::clp-> {action}-> {wsoname} = 0;
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(),undef(), $strategy, $$kwp, $kwpr, \@$sactset);
          };#if
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# icrsmoxevaluator1
#
sub iicrsmoxevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($found, $bws, $bbwso, $abbwso, $bwsdesc, $asponsor, $sponsortype, $gwdsc, $moddsc, $eos, $subnogap, $lrecordi, $foundlistend);
    my ($dolaunch, $stwso, $astwso, $twso, $asponsor, $cwsbi,
    $grkwp, $grkwpr);
#
# inverted case resolved semantics model for|if|else|elsif|match|melse codelet models
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $sponsortype = wsbasetype ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($proceed, $msws, $msb, $amsb, $listi, $recordi, $seldsc, $arecordi, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $proceed = '';
    if ($Awfif::codelet-> {l} [$myli] [36] == 0) {
      $$fbinderc = ifindb ($myli, $stwso, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
      $msb = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$msws);
# crsmofefwsu1
# now need to find the ws and base wso the slistkwbuilder described and switch to it

      $Awfif::memes-> {currentwsbi} = $msws;
      $amsb = awsoadr ($msb);
      if (($bwsdesc = findtdesc ($Awfif::wsol-> {l} [ $amsb] [2], $Awfif::memes-> {snnh} {slistkwevaluator})) != 0
      ){
        $found = '';#define found
        $bbwso = ($Awfif::workspace-> {l} [$bwsdesc] [2] - $Awfif::memes-> {snnh} {wsi});
        $bws = $Awfif::workspace-> {l} [$bwsdesc] [3];
        $proceed = 't';
        };#if
      }#if
    else {#subprogram

      $$fbinderc = ifindb ($myli, $sponsor, 'bindercs', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
      if ($$fbinderc == 1) {
        my ($acompwso, $reportdesc);
        $bbwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$bws);
        $Awfif::memes-> {currentwsbi} = $bws;
        $abbwso = awsoadr ($bbwso);
        if ( ($Awfif::codelet-> {l} [$myli] [36] > 0)
        && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
        && (($acompwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
        && ((findtdesc ($Awfif::wsol-> {l} [($acompwso)] [2], $Awfif::memes-> {snnh} {complete}, $Awfif::memes-> {snnh} {setupbuildername (setupprocname ($myli))}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) != 0 )
        ){

          $proceed = ''
          }#if
        else {
          $proceed = 't';
          };#else
        };#if
      };#else subprogram
    if ($proceed) {

      $Awfif::memes-> {currentwsbi} = $bws;
      $abbwso = awsoadr ($bbwso);
# now pickup the listlink
      if (($listi = findtdesc ($Awfif::wsol-> {l} [ $abbwso] [2], $Awfif::memes-> {snnh} {listlink})) != 0
      ){

# now convert the listi to reference the first list record
        $listi = ($Awfif::workspace-> {l} [$listi] [2] - $Awfif::memes-> {snnh} {wsi});
# now get the first record link descriptor and then turn it into the record wso index
        if ( (($recordi = findtdesc ($Awfif::wsol-> {l} [ ($arecordi = awsoadr ($listi))] [2], $Awfif::memes-> {snnh} {recordlink})) != 0)
        ){
# now check each record until get a match or run out - move in to the first record

          $recordi = ($Awfif::workspace-> {l} [$recordi] [2] - $Awfif::memes-> {snnh} {wsi});
          $arecordi = awsoadr ( $recordi);
# now check each record until get a match or run out
          if( ( ($moddsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {model}, $sponsortype, ($Awfif::memes-> {snnh} {casinopp} + $Awfif::memes-> {snnh} {wsi}))) != 0)
          && (( ($seldsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {casemodel})) == 0)
            or ($Awfif::workspace-> {l} [$seldsc] [10] != $Awfif::memes-> {snnh} {casedeploys})
            )#&&
          ){

            $found = 't';
            };#if
          if ( (endsubpstream ($myli, $arecordi, $abbwso))
          && (bcsubpcompsub ($myli) )
          ){#its a subprogram's last record and the bcsubpc has completed

            $eos = 't';
# in special case of no descriptors having been written to a completed subprogram's last record there is no gap
            if (($found)
            && ($moddsc == $Awfif::wsol-> {l} [ $arecordi] [2]) ){

              $found = '';
              $subnogap = 't';
              };
            };#if
          };#if
        while ( (!$found)#works for main,
        && (!$eos)
        && (($lrecordi = $recordi) != 0)#aim is to check that the last record link is non zero
        && ( (($recordi = findtdesc ($Awfif::wsol-> {l} [ ($arecordi = awsoadr ($recordi))] [2], $Awfif::memes-> {snnh} {recordlink})) != 0)
          or (($Awfif::codelet-> {l} [$myli] [36] == 0) && ($foundlistend = (findtdesc ($Awfif::wsol-> {l} [ awsoadr (trwsoadr($lrecordi, 1))] [2], $Awfif::memes-> {snnh} {listend})) == 0)) )
        ){

          $gwdsc = $Awfif::wsol-> {l} [ $arecordi] [2];
          while ((!$found)
          && ( ($gwdsc = findtdesc ($gwdsc, $Awfif::memes-> {snnh} {gowithin})) != 0 )
          ){

            $found = checkwithin ($myli, $gwdsc, $sponsortype, $kwp, $kwpr);
            $gwdsc = $Awfif::workspace-> {l}[$gwdsc][0];
            };#while
          if( ( ($moddsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {model}, $sponsortype, ($Awfif::memes-> {snnh} {casinopp} + $Awfif::memes-> {snnh} {wsi}))) != 0)
          && ( (($seldsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {casemodel})) == 0)
          or ($Awfif::workspace-> {l} [$seldsc] [10] != $Awfif::memes-> {snnh} {casedeploys}) )
          ){

            $found = 't';
            }#if
          else {

            $found = '';
            };#else
          $recordi = ($Awfif::workspace-> {l} [$recordi] [2] - $Awfif::memes-> {snnh} {wsi});

          if ( (endsubpstream ($myli, $arecordi, $abbwso))
          && (bcsubpcompsub ($myli) )
          ){#its a subprogram's last record and the bcsubpc has completed

            $eos = 't';
# in special case of no descriptors having been written to a completed subprogram's last record there is no gap
            if (($found)
            && ($moddsc == $Awfif::wsol-> {l} [ $arecordi] [2]) ){

              $found = '';
              $subnogap = 't';
              };
            }#if
          elsif ( ($Awfif::codelet-> {l} [$myli] [36] == 0)
          && ((findtdesc ($Awfif::wsol-> {l} [awsoadr ( trwsoadr($lrecordi, 1))] [2], $Awfif::memes-> {snnh} {listend})) != 0)
          ){

            $foundlistend = 't';
            };#elsif
          };#while
# if have reached the end of a sub-program then respond found true to allow builder to respond transactionally

        my ($recdsc, $stopdsc);
        if ( (!$found)
        && ($Awfif::codelet-> {l} [$myli] [36] > 0)
        && (($recdsc = findtdesc ($Awfif::wsol-> {l} [ $arecordi] [2], $Awfif::memes-> {snnh} {record})) != 0)
        && (($stopdsc = findtdesc ($Awfif::wsol-> {l} [ $abbwso] [2], $Awfif::memes-> {snnh} {subprogram}, $Awfif::memes-> {snnh} {stop})) != 0)
        && ($Awfif::workspace-> {l} [$recdsc] [2] == $Awfif::workspace-> {l} [$stopdsc] [2])
        ){

          $found = 't';
          };#if
        };#if
      };# if
# if find a record without a model

    if ( ($proceed)
    && ( ( ( ((defined ($found)) && ($found)) && ($$fbinderc == 1) ) or (bcsubpcompsub ($myli) ) )#&&
    or ($foundlistend)
    )#&&
    ){#launch builder

      $dolaunch = 't';
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iicrsmoxevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# iicrsmoxevaluator1
#
sub icrsmoxbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iicrsmoxevaluator');
    $$and = 't';
    return $salience
    }# icrsmoxbsmodeler1
#
#<!-- start tag sia -->
#
sub icrsmoxbuilder1 {
    my ($myli, $token, $targsel, $kwp, $kwpr, $sactset) = @_;
    my ($sponsor, $signal, $schema, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $eos, $trali, $bws, $bbwso, $abbwso, $reportcaspart,
    $grkwp, $grkwpr, $cdn, $cdnx, $ivalc);
    my (@ival);
#
# inverted case resolved semantics model for|if|else|elsif|match|melse codelet models
# checked for merged workspaces

      if ( ($Awfif::memes-> {checktransidnz})
      && ($Awfif::codelet-> {l} [$myli][36] > 0)
      && ($Awfif::codelet-> {l} [$myli][35] == 0)
      ){

        &break ();
        };#if
# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( (defined ($Awfif::memes-> {icrsmoxsubpspbreak}))
    && ($Awfif::memes-> {icrsmoxsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
    ){

      &break();
      };#if
# icrsmebfu1
    if ( (defined ($Awfif::memes-> {crsmesubpcbreak}))
    && ($Awfif::memes-> {crsmesubpcbreak})
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    && (matchaelement (\@{$Awfif::memes-> {crsmesubpspbreak}}, $Awfif::codelet-> {l} [$myli] [36]) == 0)
    ){

      $Awfif::memes-> {crsmesubpspbreak} [++$Awfif::memes-> {crsmesubpspbreak}[0]] = $Awfif::codelet-> {l} [$myli] [36];
      };#if
    if ( (defined ($Awfif::memes-> {icrsmoxsubpnspbreak}))
    && ($Awfif::memes-> {icrsmoxsubpnspbreak})
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    ){

      &break();
      };#if
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $eos = '';#end of stream detected allows the builder to complete the transaction
    $reportcaspart = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $twso, $asponsor, $sponsortype, $target, $casefor);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
# crsmoxcof1du1
      if (($Awfif::memes-> {doccodescs}) && !(ccof1descs ($myli, $sponsor)) && ($Awfif::memes-> {ccof1descsd})) { &break ()};
      &crsmann ($myli, $token, $targsel, $stwso, $sponsortype, \$ivalc, \@ival, \$casefor, \$target, \$eos, \$bws, \$bbwso, \$$kwp, $kwpr, \@$sactset);
      };#got target and casefor wso

    my ($transtatus);

    if ( (defined ($Awfif::memes-> {icrsmbnsubpeosbreak}))
    && ($Awfif::memes-> {icrsmbnsubpeosbreak})
    && ($Awfif::codelet-> {l} [$myli][36] == 0)
    && ($eos)
    ){

      &break();
      };#if
# icrsmoxbuitrau1
    $transtatus = 0;#complete transaction
    if ( ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0)
    && ($eos) )
    or ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0)
      && (bcsubpcompsub ($myli) ) )#or
    ){

      $reportcaspart = 't';
      };#if
# icrsmoxbrunu1

    if ( ($Awfif::codelet-> {l} [$myli] [35] > 0)
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    && (defined ($Awfif::tral-> {r}[$Awfif::codelet-> {l} [$myli] [35]] [0]))
    && (($trali = matchsaelement ((\@{$Awfif::tral-> {i}[$Awfif::codelet-> {l} [$myli] [35]]} ), $Awfif::codelet-> {l} [$myli] [2])) != 0 )# get index of builder in tral i
    ){#setup tral r if limiting accelorator

      $Awfif::tral-> {r}[$Awfif::codelet-> {l} [$myli] [35]] [$trali] = $Awfif::tral-> {w}[$Awfif::codelet-> {l} [$myli] [35]] [$trali];
      };#if
# icrsmoxbaccu1

    my ($reportdesc, $arunningwso);#setup subprogram environment for amplification of self
    if ( (defined ($Awfif::memes-> {icrsmoxbsubpspabreak}))
    && ($Awfif::memes-> {icrsmoxbsubpspabreak})
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    ){

      &break();
      };#if
    $Awfif::memes-> {currentwsbi} = $bws;
    $abbwso = awsoadr ($bbwso);
    if ( ($Awfif::codelet-> {l} [$myli] [35] > 0)
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
    && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
    && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
    && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
    ){#indicate that have run

      $Awfif::wsol-> {l} [$arunningwso][2]
        = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
        ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
        $Awfif::memes-> {snnh} {running},
        $Awfif::wsol-> {l} [$arunningwso][2],
        $arunningwso);
      };#if
# icrsmoxbcclu1
    if ( ($Awfif::codelet-> {l} [$myli] [35] > 0)
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) != 0 )
    ){

      &compclone ($myli);
      };#if
    if ($reportcaspart) {

      my ($acompwso);
      if ( ($Awfif::codelet-> {l} [$myli] [35] > 0)
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($acompwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((findtdesc ($Awfif::wsol-> {l} [($acompwso)] [2], $Awfif::memes-> {snnh} {complete}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
      ){

        $Awfif::wsol-> {l} [$acompwso][2]
          = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
          $Awfif::memes-> {snnh} {complete},
          $Awfif::wsol-> {l} [$acompwso][2],
          $acompwso);
        };#if
      if ( (defined ($Awfif::memes-> {icrsmoxsubpspcbreak}))
      && ($Awfif::memes-> {icrsmoxsubpspcbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if
      if ( (defined ($Awfif::memes-> {icrsmoxsubpnspcbreak}))
      && ($Awfif::memes-> {icrsmoxsubpnspcbreak})
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      ){

        &break();
        };#if
      &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
      };#if

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# icrsmoxbuilder1
#
#<!-- end tag sia -->
#
sub crsmofevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces


    &clogstatx ($myli);
    }# crsmofevaluator1
#
sub crsmofbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iicrsmoxevaluator');
    $$and = 't';
    return $salience
    }# crsmofbsmodeler1
#
sub crsmofbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces

    &icrsmoxbuilder1 ($myli, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {target}, \$$kwp, $kwpr, \@$sactset);

    &clogstatx ($myli);
    }# crsmofbuilder1
#
sub crsmoievaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces


    &clogstatx ($myli);
    }# crsmoievaluator1
#
sub crsmoibsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iicrsmoxevaluator');
    $$and = 't';
    return $salience
    }# crsmoibsmodeler1
#
sub crsmoeievaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces


    &clogstatx ($myli);
    }# crsmoeievaluator1
#
sub crsmoeibsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iicrsmoxevaluator');
    $$and = 't';
    return $salience
    }# crsmoeibsmodeler1
#
sub crsmoeevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces


    &clogstatx ($myli);
    }# crsmoeevaluator1
#
sub crsmoebsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iicrsmoxevaluator');
    $$and = 't';
    return $salience
    }# crsmoebsmodeler1
#
sub crsmoibuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces

    &icrsmoxbuilder1 ($myli, $Awfif::memes-> {snnh} {if}, $Awfif::memes-> {snnh} {selector}, \$$kwp, $kwpr, \@$sactset);

    &clogstatx ($myli);
    }# crsmoibuilder1
#
sub crsmoeibuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces

    &icrsmoxbuilder1 ($myli, $Awfif::memes-> {snnh} {elsif}, $Awfif::memes-> {snnh} {selector}, \$$kwp, $kwpr, \@$sactset);

    &clogstatx ($myli);
    }# crsmoeibuilder1
#
sub crsmoebuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces

    &icrsmoxbuilder1 ($myli, $Awfif::memes-> {snnh} {else}, $Awfif::memes-> {snnh} {selector}, \$$kwp, $kwpr, \@$sactset);

    &clogstatx ($myli);
    }# crsmoebuilder1
#
sub crsmomevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces


    &clogstatx ($myli);
    }# crsmomevaluator1
#
sub crsmombsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iicrsmoxevaluator');
    $$and = 't';
    return $salience
    }# crsmombsmodeler1
#
sub crsmombuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces

    &icrsmoxbuilder1 ($myli, $Awfif::memes-> {snnh} {match}, $Awfif::memes-> {snnh} {selector}, \$$kwp, $kwpr, \@$sactset);

    &clogstatx ($myli);
    }# crsmombuilder1
#
sub crsmomeevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces


    &clogstatx ($myli);
    }# crsmomevaluator1
#
sub crsmomebsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iicrsmoxevaluator');
    $$and = 't';
    return $salience
    }# crsmomebsmodeler1
#
sub crsmomebuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# checked for merged workspaces

    &icrsmoxbuilder1 ($myli, $Awfif::memes-> {snnh} {melse}, $Awfif::memes-> {snnh} {selector}, \$$kwp, $kwpr, \@$sactset);

    &clogstatx ($myli);
    }# crsmomebuilder1
#
sub crsmoxevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture

    &icsevaluator1 ($myli, \&Awfif::iicrsmoxevaluator1, 'crsmoxbuilder', $kwp, $kwpr, \@$sactset);
    }# crsmoxevaluator1
#
sub crsmoxbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iicrsmoxevaluator');
    $$and = 't';
    return $salience
    }# crsmoxbsmodeler1
#
sub crsmoxbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $eos, $feos, $trali, $bws, $bbwso, $abbwso, $reportcaspart,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# deployment optimized integrated crsm modeling codelet replaces each of the schematic semantic case resolved models
# checked for merged workspaces
# crsmoxbbreaku1

      if ( ($Awfif::memes-> {checktransidnz})
      && ($Awfif::codelet-> {l} [$myli][36] > 0)
      && ($Awfif::codelet-> {l} [$myli][35] == 0)
      ){

        &break ();
        };#if
# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( (defined ($Awfif::memes-> {crsmboxsubpspbreak}))
    && ($Awfif::memes-> {crsmboxsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
    ){

      &break();
      };#if
    if ( (defined ($Awfif::memes-> {crsmesubpcbreak}))
    && ($Awfif::memes-> {crsmesubpcbreak})
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    && (matchaelement (\@{$Awfif::memes-> {crsmesubpspbreak}}, $Awfif::codelet-> {l} [$myli] [36]) == 0)
    ){

      $Awfif::memes-> {crsmesubpspbreak} [++$Awfif::memes-> {crsmesubpspbreak}[0]] = $Awfif::codelet-> {l} [$myli] [36];
      };#if
    if ( (defined ($Awfif::memes-> {crsmboxsubpnspbreak}))
    && ($Awfif::memes-> {crsmboxsubpnspbreak})
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    ){

      &break();
      };#if
# crsmoxbassocu1
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $eos = '';#end of stream detected allows the builder to complete the transaction
    $feos = '';
    $reportcaspart = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $twso, $asponsor, $sponsortype, $ivalc, $target, $casefor);
      my (@ival);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      if (!(ccof1descs ($myli, $sponsor)) && ($Awfif::memes-> {ccof1descsd})) { &break ()};
# crsmoxbsemanu1
      &crsmann ($myli, $Awfif::memes-> {snnh} {for}, $Awfif::memes-> {snnh} {target}, $stwso, $sponsortype, \$ivalc, \@ival, \$casefor, \$target, \$eos, \$bws, \$bbwso, \$$kwp, $kwpr, \@$sactset);
      $feos = $eos;$eos = '';
      &crsmann ($myli, $Awfif::memes-> {snnh} {if}, $Awfif::memes-> {snnh} {selector}, $stwso, $sponsortype, \$ivalc, \@ival, \$casefor, \$target, \$eos, \$bws, \$bbwso, \$$kwp, $kwpr, \@$sactset);
      $feos = $eos | $feos;$eos = '';
      &crsmann ($myli, $Awfif::memes-> {snnh} {elsif}, $Awfif::memes-> {snnh} {selector}, $stwso, $sponsortype, \$ivalc, \@ival, \$casefor, \$target, \$eos, \$bws, \$bbwso, \$$kwp, $kwpr, \@$sactset);
      $feos = $eos | $feos;$eos = '';
      &crsmann ($myli, $Awfif::memes-> {snnh} {else}, $Awfif::memes-> {snnh} {selector}, $stwso, $sponsortype, \$ivalc, \@ival, \$casefor, \$target, \$eos, \$bws, \$bbwso, \$$kwp, $kwpr, \@$sactset);
      $feos = $eos | $feos;$eos = '';
      &crsmann ($myli, $Awfif::memes-> {snnh} {match}, $Awfif::memes-> {snnh} {selector}, $stwso, $sponsortype, \$ivalc, \@ival, \$casefor, \$target, \$eos, \$bws, \$bbwso, \$$kwp, $kwpr, \@$sactset);
      $feos = $eos | $feos;$eos = '';
      &crsmann ($myli, $Awfif::memes-> {snnh} {melse}, $Awfif::memes-> {snnh} {selector}, $stwso, $sponsortype, \$ivalc, \@ival, \$casefor, \$target, \$eos, \$bws, \$bbwso, \$$kwp, $kwpr, \@$sactset);
      $feos = $eos | $feos;
      };#got target and casefor wso
# crsmoxbbhu1

            if (($bbwso > 0) #if crsm has setup bdwso & cws then attempt to bind to histone
            && ($bws > 0)
            ){

# crsmoxbbreaku2

    my ($transtatus);

    if ( (defined ($Awfif::memes-> {crsmboxnsubpeosbreak}))
    && ($Awfif::memes-> {crsmboxnsubpeosbreak})
    && ($Awfif::codelet-> {l} [$myli][36] == 0)
    && ($feos)
    ){

      &break();
      };#if
# crsmoxbpartcu1
    $transtatus = 0;#complete transaction
    if ( ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0)
    && ($feos) )
    or ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0)
      && (bcsubpcompsub ($myli) ) )#or
    ){

      $reportcaspart = 't';
      };#if
# crsmoxbaclimu1

    if ( ($Awfif::codelet-> {l} [$myli] [35] > 0)
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    && (defined ($Awfif::tral-> {r}[$Awfif::codelet-> {l} [$myli] [35]] [0]))
    && (($trali = matchsaelement ((\@{$Awfif::tral-> {i}[$Awfif::codelet-> {l} [$myli] [35]]} ), $Awfif::codelet-> {l} [$myli] [2])) != 0 )# get index of builder in tral i
    ){#setup tral r if limiting accelorator

      $Awfif::tral-> {r}[$Awfif::codelet-> {l} [$myli] [35]] [$trali] = $Awfif::tral-> {w}[$Awfif::codelet-> {l} [$myli] [35]] [$trali];
      };#if

    my ($reportdesc, $arunningwso);#setup subprogram environment for amplification of self
    if ( (defined ($Awfif::memes-> {crsmoxbsubpspabreak}))
    && ($Awfif::memes-> {crsmoxbsubpspabreak})
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    ){

      &break();
      };#if
# crsmoxbdrunningu1
    $Awfif::memes-> {currentwsbi} = $bws;
    $abbwso = awsoadr ($bbwso);
    if ( ($Awfif::codelet-> {l} [$myli] [35] > 0)
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
    && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
    && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
    && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
    ){#indicate that have run

      $Awfif::wsol-> {l} [$arunningwso][2]
        = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
        ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
        $Awfif::memes-> {snnh} {running},
        $Awfif::wsol-> {l} [$arunningwso][2],
        $arunningwso);
      };#if
# crsmoxbcloneu1
    if ( ($Awfif::codelet-> {l} [$myli] [35] > 0)
    && ($Awfif::codelet-> {l} [$myli] [36] > 0)
    && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) != 0 )
    ){

      &compclone ($myli);
      };#if
# crsmoxbpartcu2
    if ($reportcaspart) {

      my ($acompwso);
      if ( ($Awfif::codelet-> {l} [$myli] [35] > 0)
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($acompwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((findtdesc ($Awfif::wsol-> {l} [($acompwso)] [2], $Awfif::memes-> {snnh} {complete}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
      ){

        $Awfif::wsol-> {l} [$acompwso][2]
          = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
          $Awfif::memes-> {snnh} {complete},
          $Awfif::wsol-> {l} [$acompwso][2],
          $acompwso);
        };#if
      if ( (defined ($Awfif::memes-> {crsmoxsubpspcbreak}))
      && ($Awfif::memes-> {crsmoxsubpspcbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if
      if ( (defined ($Awfif::memes-> {crsmoxsubpnspcbreak}))
      && ($Awfif::memes-> {crsmoxsubpnspcbreak} )
      ){

        &break();
        };#if
      &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
      };#if

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# crsmoxbuilder1
#
#
sub csresevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture

    &icsevaluator1 ($myli, \&Awfif::icsresevaluator1, 'csresbuilder', $kwp, $kwpr, \@$sactset);
    }# csresevaluator1
#
sub icsresevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $bcount, $pdcawso, $pws, $stwso, $astwso, $twso, $asponsor, $cwsbi, $asponsor, $sponsortype,
    $grkwp, $grkwpr);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $sponsortype = wsbasetype ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, $e2fwso, $ae2fwso);
    my (@lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
    $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
    $$fbinderc = ifindb ($myli, $stwso, 'pdcab', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $pdcawso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);
# &updatelog ($myli,'ae', 5, $file);

# find the inhibitor binding
    if ($$fbinderc == 1) {

      $bcount = ifindb ($myli, $stwso, 'e2finhibb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset, $pws);
      $e2fwso = getstsbws ($myli, $sigcount, \@lomatchs, \@lola, $pws);
      $Awfif::memes-> {currentwsbi} = $pws;
      $ae2fwso = awsoadr ($e2fwso);
      if (($bcount == 1)
      ){#launch builder

        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("icsresevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# icsresevaluator1
#
sub csresbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'icsresevaluator');
    $$and = 't';
    return $salience
    }# csresbsmodeler1
#
sub csresbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $pdcawso, $pws, $e2fwso, $ae2fwso, $bdwso, $abdwso, $cws, $transid, $usetrans, $stransmgrid, $transtatus, $subpid, $reportcaspart, $giveup,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# not implemented or schematically referenced
# checked for merged workspaces

# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $twso, $asponsor, $sponsortype);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      my ($fbinderc, $counteri, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];

# first check that the main program case semantics is completed
      if ( (ifindb ($myli, $sponsor, 'bindercs', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        $Awfif::memes-> {currentwsbi} = $cws;
        $abdwso = awsoadr ($bdwso);
# get context of any outstanding signal
        $transid = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $stransmgrid = mapnonsubtotmgrid ($asponsor, $Awfif::memes-> {snnh} {stran}, 0, \$transid);
        $usetrans = $transid;
        if ($transid == 0 ) {

          $transid = undef();
          $transtatus = $Awfif::memes-> {snnh} {transid};
          }#if
        else {

          $transtatus = $Awfif::memes-> {snnh} {cassponsor};#unless shift to wascassponsor
          &transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus);
          };#else
        if ( ((findtdesc ($Awfif::wsol-> {l} [($abdwso)] [2], $Awfif::memes-> {snnh} {crsmevaluator}, $Awfif::memes-> {snnh} {casecategory}, ($Awfif::memes-> {snnh} {specified}) )) != 0 )
# and each sub-program
# if all completed then report investigation complete
        ){

          $fbinderc = ifindb ($myli, $stwso, 'pdcab', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
          $pdcawso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);
# find the inhibitor binding
          if ($fbinderc == 1) {

            $bcount = ifindb ($myli, $stwso, 'e2finhibb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, $pws);
            $e2fwso = getstsbws ($myli, $sigcount, \@lomatchs, \@lola, $pws);
            $Awfif::memes-> {currentwsbi} = $pws;
            $ae2fwso = awsoadr ($e2fwso);
            if (($bcount == 1)
            && ((!findcounter ($Awfif::wsol-> {l} [$ae2fwso][2], ($Awfif::memes-> {snnh} {model}), \$counteri, $Awfif::memes-> {snnh} {investigation}, $Awfif::memes-> {snnh} {complete} )))
            ){#report planning phase complete

              $Awfif::wsol-> {l} [$ae2fwso][2]
                = inccounter ( ($Awfif::memes-> {snnh} {complete}),
                    ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {investigation}),
                    $Awfif::memes-> {snnh} {model},
                    $Awfif::wsol-> {l} [$ae2fwso][2],
                    $ae2fwso);
              };#if e2ftf binding associated
# signal completion of binder complex

            $Awfif::memes-> {currentwsbi} = $cwsbi;
            &ilaunchnc ($myli, $bdwso, 'casoppi', $Awfif::memes-> {snnh} {casinsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
              '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
              $usetrans,
              \$transid,
              \$transtatus
              ,$Awfif::codelet-> {l} [$myli] [36]
              );

            if ( ( (!defined ($stransmgrid))
              or ($stransmgrid == 0) )
            ){#as long as this is signaling a new transaction record it

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
              };
            $transtatus = 0;#find out the status of the transaction
            if ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0)
            && ( (!defined ($transid)) or (tralcomp ($myli, $transid)) )
            ){
              if ( (defined ($Awfif::memes-> {icompdcbreak}))
              && ($Awfif::memes-> {icompdcbreak})
              ){

                &break();
                };#if
              $reportcaspart = 't';
              };#if
            };#if pdca context exists
          };#if investigation application requirements complete
        if ($reportcaspart) {#better complete the transaction before do the amplification

          &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
          };
        };#if case context found
      };#got context

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# csresbuilder1
#
sub dcrdoinitevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $sponsortype,
    $grkwp, $grkwpr, $cdn, $cdnx);
    my ($cws, $bcwso, $cwsbi, $launchev, $fbinderc);
# merge streams Shewhart 'application do' structural codelet
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $launchev = idcrdoinitevaluator1 ($myli, $sponsor, $signal, $schema, $swstype, $grkwp, $grkwpr, \@$sactset, $noswstype, \$fbinderc);
      if (($fbinderc > 0)
      ){#

        if (($launchev)
        ){

          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
          $Awfif::memes-> {currentwsbi} = $cwsbi;
          if ((ifindupri ($myli, $sponsor))
          && ( !( (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinopp}, $sponsortype) )
          or
          (hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinsopp}, $sponsortype) ) ) )
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
            &dropsalience ($myli, $sponsor);
            }#if
          else {

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "dcrdoinitbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(), undef(), "dcrdoinitbuilder", $$kwp, $kwpr, \@$sactset);
          };#if
        }#if
      else {

        if (!promotesib ($myli)) {

          &imasksupp ($myli);
          };#if
        };#else
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# dcrdoinitevaluator1
#
sub idcrdoinitevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($sponsortype, $usetrans, $subpid, $dolaunch, $wfdesc);
#
# merge streams Shewhart 'application do' structural codelet
# checked for merged workspaces

    $dolaunch = '';
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $abcwso, $cwsbi);
#
# checked for merged workspaces

# start list codelet responds to group complete providing context for support of list processing
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);
    $sponsortype = wsbasetype ($sponsor);

    $cwsbi = $Awfif::memes-> {currentwsbi};
    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
# dcrdoieentryu1
      $Awfif::memes-> {currentwsbi} = $cws;
      $usetrans = 0;#must be defined to be setup in gettmgr
      $subpid = $Awfif::codelet-> {l} [$myli] [36];
      &mapnonsubtotmgrid ($asponsor, $Awfif::memes-> {snnh} {stran}, 0, \$usetrans);
      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($wfdesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bcwso)] [2], $Awfif::memes-> {snnh} {wsframe})) == 0 )#wsframe has been transferred
      && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
      or ( ($usetrans != 0)) #must continue the transaction
      && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("idcrdoinitevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# idcrdoinitevaluator1
#
sub dcrdoinitbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# merge streams Shewhart 'application do' structural codelet

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'idcrdoinitevaluator');
    $$and = 't';
    return $salience
    }# dcrdoinitbsmodeler1
#
#<!-- start tag ds -resweb -->
#
sub dcrdoinitbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $schemafor, $aws, $catalysis, $usetrans, $transid, $transtatus, $stransmgrid, $wsframedscid, $streamdscid, $framei,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# merge streams Shewhart 'application do' structural codelet
# checked for merged workspaces

# do init codelet associates cascade codelets with applicastion associations and provides cascade sponsorship
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $wfdesc, $cws, $bcwso, $abcwso, $pws, $bpwso, $abpwso, $cwsbi, $sponsortype);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

      $cwsbi = $Awfif::memes-> {currentwsbi};
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $schemafor = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli] [21], 2));
# now know there is a histone integration binder ws locate the complexes structural schemata
      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#
# &updatelog ($myli,'ae', 5, $file);

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
# dcrdoibbhu1

# dcrdoibcasspu1

        $Awfif::memes-> {currentwsbi} = $cws;
        $transid = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $stransmgrid = mapnonsubtotmgrid ($asponsor, $Awfif::memes-> {snnh} {stran}, 0, \$transid);
        $usetrans = $transid;
        if ($transid == 0 ) {

          $transid = undef();
          $transtatus = $Awfif::memes-> {snnh} {transid};
          }#if
        else {

          $transtatus = $Awfif::memes-> {snnh} {cassponsor};#unless shift to wascassponsor
          &transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus);
          };#else
# dcrdoibentryu1
# The dcr do init must maintain the cascade until its transactions are complete

        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
        && ( ($wfdesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bcwso)] [2], $Awfif::memes-> {snnh} {wsframe})) == 0 )#wsframe has been transferred
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        or ( ($usetrans != 0)) #must continue the transaction
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        ){#have identified this is a dcr do init so tailor it to the application's particular meta requirements
          $aws = $Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi};
          if ( (ifindb ($myli, $sponsor, 'hdob', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) >= 1)
          && ( findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bcwso)] [2], $Awfif::memes-> {snnh} {wsframe}) == 0 )#wsframe can be transferred
          ){#now can move the frame and stream descriptors
# dcrdoibmdescu1

            $bpwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);
            $Awfif::memes-> {currentwsbi} = $pws;
            $abpwso = awsoadr ($bpwso);
            if ( (($wsframedscid = findtdesc ($Awfif::wsol-> {l} [ $abpwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
            && (findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe}) == 0)
            ){

              $Awfif::wsol-> {l} [$abcwso][2]
              = setupdesc ( $Awfif::workspace-> {l} [$wsframedscid][3],
                  $Awfif::workspace-> {l} [$wsframedscid][2],
                  $Awfif::workspace-> {l} [$wsframedscid][4],
                  $Awfif::wsol-> {l} [$abcwso] [2],
                  $abcwso);
              $framei = $Awfif::wsol-> {l} [$abcwso][2];
# now record the binder wso in frame
              $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]][13] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]][2];
# now hide the wsframe descriptor in the binder context ws
              $Awfif::workspace-> {l} [$wsframedscid][4]++;
# setup the mps signal on the first time through
              $transid = 0;#must be defined to be setup in gettmgr
# reset, and extend, the applyramp and threshold and allow ramp as soon as applycodelet stops

              $Awfif::memes-> {applyramp} = $Awfif::memes-> {iapplyramp}*2;
              $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth};
              $Awfif::memes-> {applycmin} = 1;
              };#if
            if ( (($streamdscid = findtdesc ($Awfif::wsol-> {l} [ $abpwso] [2], $Awfif::memes-> {snnh} {stream})) != 0)
            && (findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {stream}) == 0)
            ){

              $Awfif::wsol-> {l} [$abcwso][2]
              = setupdesc ( $Awfif::workspace-> {l} [$streamdscid][3],
                  $Awfif::workspace-> {l} [$streamdscid][2],
                  $Awfif::workspace-> {l} [$streamdscid][4],
                  $Awfif::wsol-> {l} [$abcwso] [2],
                  $abcwso);
              };#if
            if ( (findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring}) == 0)
            ){

              $Awfif::wsol-> {l} [$abcwso][2]
              = setupdesc ( $Awfif::memes-> {snnh} {wsi} + 0,
                  $Awfif::memes-> {snnh} {wsi} + 0,
                  $Awfif::memes-> {snnh} {schemastring},
                  $Awfif::wsol-> {l} [$abcwso] [2],
                  $abcwso);
              $Awfif::workspace-> {l} [ $Awfif::wsol-> {l} [$abcwso][2] ] [11] = '<rhlmpch>';#initialise the schema string to be a histone
              };#if

            my ($mkrwso, $amkrwso, $binding);
            if ((defined ($Awfif::codelet-> {l} [$myli] [36])) && ($Awfif::codelet-> {l} [$myli] [36] != 0) ){
              $binding = $Awfif::memes-> {snnh} {subpstbinding};
              }#if
            else {
              $binding = $Awfif::memes-> {snnh} {stbinding};
              };#else
# dcrdoibnewlistu1

#
# check what the list can contain and describe the can contain info
            my ($ws, $wsoid, $abbwso, $listi);

            $ws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi});
            $wsoid = ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi});
# describe each item contained in the <mkeywordref> wso
            $Awfif::memes-> {currentwsbi} = $cws;
# dcrdoibtsponsoru1
# terminate the sponsorship of casinit

            $mkrwso = $Awfif::wsbl-> {wsoh} [$cws];
            $amkrwso = awsoadr ($mkrwso);
            $Awfif::wsol-> {l} [$abcwso][2] #the sloc codelet expects a listhead - have to add one since is not deployed or used by the dcr codelets
            = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $cws), #should probably be the app kw mf ref as a type differentiator
                ($Awfif::memes-> {snnh} {wsi} + $mkrwso), #point this to where the list link has been initialised
                $Awfif::memes-> {snnh} {listhead},
                $Awfif::wsol-> {l} [$abcwso] [2],
                $abcwso);

            $Awfif::wsol-> {l} [$amkrwso][2]
            = setupdesc ( ($sponsortype),
                ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {casinit}),
                $Awfif::memes-> {snnh} {model},
                $Awfif::wsol-> {l} [$amkrwso] [2],
                $amkrwso);
# now go past any ignore chars
            &iskipw ($myli, $sldesc, $cws, $aws, $abcwso);
# dcrdoibentilu1

            $Awfif::memes-> {currentwsbi} = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [3];
            $abbwso = awsoadr ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [2]);
# now pickup the listlink
            if (($listi = findtdesc ($Awfif::wsol-> {l} [ $abbwso] [2], $Awfif::memes-> {snnh} {listlink})) != 0
            ){

              $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] = 0;#The initial list descriptor points to the first list record so can setup for doslist to setup the first record
              $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] = ($Awfif::workspace-> {l} [$listi] [2] - $Awfif::memes-> {snnh} {wsi});#The initial list descriptor points to the first list record
# dcrdoibentilu2
# now adjust the frame to address the first record wso in the list

              $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [2] = 0;#force the loading of the next wso
              };#if
            };#if wfdesc == 0
# dcrdoibcasspu2
# become the sponsor of the cascade opp's start
# The builder [mps] signals the nucleus <codelet 21 wso> <schema> [<wso 'string' from schema>]
          my ($giveup);

          $Awfif::memes-> {currentwsbi} = $cwsbi;

          if( ((defined ($transid)) && ($transtatus != $Awfif::memes-> {snnh} {completed})) #must continue the transaction
          or ( ($usetrans != 0)
          && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casunbind}, $sponsortype))) )
          ){#sponsor more of self

            &ilaunchnc ($myli, $bcwso, 'casoppi', $Awfif::memes-> {snnh} {casinsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
              32, #mask out codelet-> {l} [32] i.e. {tfree}
              $usetrans,
              \$transid,
              \$transtatus
              );
            if (($usetrans == 0) && (defined ($transid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete}))) ){#record the transid

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, 0, $stransmgrid);
              };#if
# can't free until loose sponsorship
            if ($transtatus == $Awfif::memes-> {snnh} {incomplete}){

              &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor}, undef (), \$transid, \$transtatus);
              $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
              ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),'t');# sponsor should be one after telomeric header
              }#if
            elsif ($transtatus == $Awfif::memes-> {snnh} {completed}){

              $transtatus = $Awfif::memes-> {snnh}{wascassponsor};
              &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor}, undef (), \$transid, \$transtatus);
              if( (defined ($transid)) && ($transtatus == $Awfif::memes-> {snnh} {deleted}) #must mask the transaction id
              ){

                &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
                };#if
              };#elsif
            }#if
          else {
# must free once loose sponsorship

            if ( (defined ($usetrans)) ){

              $transtatus = $Awfif::memes-> {snnh}{wascassponsor};
              };#if
            &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor}, undef (), \$transid, \$transtatus);
            if( (defined ($transid)) && ($transtatus == $Awfif::memes-> {snnh} {deleted}) #must mask the transaction id
            ){

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
              };#if
            if (($Awfif::codelet-> {l} [$myli] [37] > 0)
            ) {

              $Awfif::tmassl-> {l} [$Awfif::codelet-> {l} [$myli] [37]] [3] = $Awfif::memes-> {snnh} {completed};
              };#if
            };#else
          }#if
        else {
          &imasksupp ($myli);
          };#else
        }
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {
        $astwso = awsoadr ($stwso);
        $Awfif::wsol-> {l} [$astwso][2]
        = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
        };
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset);
        };#if
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# dcrdoinitbuilder1
#
#<!-- end tag ds -->
#
sub dcrdoslistevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# binder complex doslist codelet responds to start of list descriptor and end of descriptor list condition

    &icsrioevaluator1 ($myli, \&Awfif::idcrdoslistevaluator1, 'dcrdoslistbuilder', $kwp, $kwpr, \@$sactset);
    }# dcrdoslistevaluator1
#
sub idcrdoslistevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $cws, $bcwso, $abcwso, $framei, $stwso, $astwso, $twso, $asponsor, $cwsbi, $transid,
    $grkwp, $grkwpr);
#
# checked for merged workspaces

# binder complex doslist codelet responds to start of list descriptor and end of descriptor list condition
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';

    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $f1transid, $f1trmgrid, $usetrans, $transtatus, $stransmgrid);
# dcrdoslistecseu1
    if ($Awfif::codelet-> {l} [$myli] [36] == 0) {#sustain the signalled codelets if necessary

      $f1transid = 0;#must define this for it to be set and returned
      $f1trmgrid = mapnonsubtotmgrid ($asponsor, $Awfif::memes-> {snnh} {stran}, 0, \$f1transid);
# need to handle sameas transaction procedure pairs
      if (($f1trmgrid > 0)
      && (!tralcomp ($myli, $f1transid))
      ){

        $usetrans = $f1transid;
        }#if
      elsif (($f1trmgrid > 0)
      && (tralcomp ($myli, $f1transid))
      ){#the transaction has completed
# free the transaction resources

        $usetrans = 0;
        }#elsif
      else {#no outstanding signalled codelets to support

        $usetrans = $f1transid;
        };#else
      }#if
    else {

      $transtatus = 0;#find out the status of the transaction
      $usetrans = gettransstate ($myli, $sponsor, $asponsor, 'bindercs', \$stransmgrid, \$transid, \$transtatus, $$kwp, $kwpr, \@$sactset);
      };#else
    $$fbinderc = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
    $Awfif::memes-> {currentwsbi} = $cws;
    $abcwso = awsoadr ($bcwso);
    if ( ($$fbinderc == 1)
    && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
    ){

      $dolaunch = 't';
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("idcrdoslistevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# idcrdoslistevaluator1
#
sub dcrdoslistbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'idcrdoslistevaluator');
    $$and = 't';
    return $salience
    }# dcrdoslistbsmodeler1
#
#<!-- start tag ds -resweb -->
#
sub dcrdoslistbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $atelhwso, $f1trmgrid, $f1transid, $signal, $schema, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $mswso, $bcwso, $abcwso, $cws, $framei, $sponsortype, $jhlabeli, $jhlabeloi, $jhlabeliav, $subnogap, $reportcaspart, $cwsposition, $sldesc, $conforms,
    $grkwp, $grkwpr, $cdn, $cdnx, $samesubpid, $endofsub, $eos, $foundlistend);
#
# merge streams application do phase case resolved start list processing
# checked for merged workspaces

# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $endofsub = '';
    $foundlistend = '';
    $subnogap = '';
    $reportcaspart = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $abbwso, $giveup);

# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      $sponsortype = wsbasetype ($sponsor);

      my ($proceed, $usetrans, $stransmgrid, $transid, $transtatus, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $proceed = '';
      $asponsor = awsoadr ($sponsor);
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));

      if ( (defined ($Awfif::memes-> {dcrdoslbsubpspbreak}))
      && ($Awfif::memes-> {dcrdoslbsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if
      if ( (defined ($Awfif::memes-> {dcrdoslbnsubpebreak}))
      && ($Awfif::memes-> {dcrdoslbnsubpebreak})
      && ($Awfif::codelet-> {l} [$myli] [36] == 0)
      ){

        &break();
        };#if
      if ($Awfif::codelet-> {l} [$myli] [36] == 0) {#sustain the signalled codelets if necessary

        $f1transid = 0;#must define this for it to be set and returned
        $f1trmgrid = mapnonsubtotmgrid ($asponsor, $Awfif::memes-> {snnh} {stran}, 0, \$f1transid);
# need to handle sameas transaction procedure pairs
        if (($f1trmgrid > 0)
        && (!tralcomp ($myli, $f1transid))
        ){

          $transtatus = 0;#find out the status of the transaction

          $usetrans = $f1transid;
          $transid = $f1transid;
          $stransmgrid = $f1trmgrid;
          }#if
        elsif (($f1trmgrid > 0)
        && (tralcomp ($myli, $f1transid))
        ){#the transaction has completed
# free the transaction resources

          $transtatus = 0;#find out the status of the transaction
          if ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0) ) {

            if ( (defined ($Awfif::memes-> {dcrdoslbsubpsptrbreak}))
            && ($Awfif::memes-> {dcrdoslbsubpsptrbreak} == $Awfif::codelet-> {l} [$myli] [36])
            ){

              &break();
              };#if
            $reportcaspart = 't';
            };#if
# reset the transaction info so that proceed with new trasaction

          $transid = undef();
          $f1transid = undef();
          $f1trmgrid = undef();
          $usetrans = 0;
          $transtatus = $Awfif::memes-> {snnh} {transid};
          }#elsif
        else {#no outstanding signalled codelets to support

          $usetrans = $f1transid;
          $transid = undef();
          $stransmgrid = $f1trmgrid;
          };#else
        }#if
      else {

        $transtatus = 0;#find out the status of the transaction
        $usetrans = gettransstate ($myli, $sponsor, $asponsor, 'bindercs', \$stransmgrid, \$transid, \$transtatus, $$kwp, $kwpr, \@$sactset);
        if (defined ($transid)) {#remember that found an active transaction
          $samesubpid = 't';
          };#if
        };#else

      $bcount = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
      $Awfif::memes-> {currentwsbi} = $cws;
# dcrdoslistbbhu1

      &bindhistone ($myli, $cws, $bcwso);
      $abcwso = awsoadr ($bcwso);
      $sldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsposition});
      $cwsposition = movecomplex ($myli, $sldesc, 0, $abcwso);
      if ( ($bcount == 1)
      && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
      && ($Awfif::workspace-> {l} [$framei] [3] > 0)
      ){

        while ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
        && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh}{listlink}) )
        or ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] == 0) && (!$foundlistend) && ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] > 0) or (($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] == 0) && ($Awfif::workspace-> {l} [$framei] [2] == 1)) ) )
        ){#process startlist end of list & handle cascade
# dcrdoslistbentilu1
          if ( (defined ($Awfif::memes-> {dcrdoslbnsubpwbreak}))
          && ($Awfif::memes-> {dcrdoslbnsubpwbreak})
          && ($Awfif::codelet-> {l} [$myli] [36] == 0)
          ){

            &break();
            };#if
# now adjust the frame to address the first list record

          if ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
          && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh}{listlink}) )
          ){#record the listlink

            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [6] = ($Awfif::workspace-> {l} [$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4]] [2] - $Awfif::memes-> {snnh} {wsi});
# advance along the descriptor list
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] = $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ] [1];
            }#if
          elsif ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] == 0)
          && ( $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] > 0) )
          ){#move to start of next record wso
# must setup the wso pointer

            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [2] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5];
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] = 0;
# now find the start of the wso descriptor list
            my ($di, $ldi);
            $Awfif::memes-> {currentwsbi} = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [3]; #switch to the investigation workspace
            $ldi = 0;
            $di = $Awfif::wsol-> {l} [ awsoadr ($Awfif::framel-> {l} [ $Awfif::workspace-> {l} [$framei] [3]] [2]) ][2];
            $Awfif::memes-> {currentwsbi} = $cws;
            while ($di != 0) {

              $ldi = $di;
              $di = $Awfif::workspace-> {l} [$di] [0];
              };#while
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] = $ldi;
# dcrdoslistbclearrstu1
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [7] = ();#target cleared
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [8] = ();#gowithin cleared
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [9] = ();#gowithin string cleared
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [10] = ();#in ifmatch cleared
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [11] = ();#if state cleared
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [16] = ();#match string cleared
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] = ();#match state cleared
            }#elsif
          elsif ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] == 0)
          && ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] == 0) && ($Awfif::workspace-> {l} [$framei] [2] == 1))
          ){#end of the list
# dcrdoslistbcopyinwsou1

            my ($schemadesc, $pwsposition);
            $foundlistend = 't';
# must copy in any residual wso from application ws
            $schemadesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring});
            $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
            until ( (($pwsposition = trwsoadr ($cwsposition, -1)) != 0)
            && (chmdefis ($myli, $pwsposition, $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,) )
            && (chmdefis ($myli, $pwsposition, $Awfif::memes-> {snnh}{stop}, \$conforms, $$kwp, $kwpr,) )
            && (chmdefis ($myli, $pwsposition, $Awfif::memes-> {snnh}{end}, \$conforms, $$kwp, $kwpr,) )
            && (chmdefis ($myli, $pwsposition, $Awfif::memes-> {snnh}{list}, \$conforms, $$kwp, $kwpr,) )
            && (chmdefis ($myli, $pwsposition, $Awfif::memes-> {snnh}{instance}, \$conforms, $$kwp, $kwpr,) )
            ){#process startlist end of list & handle cascade

              if ( !chmdefis ($myli, $cwsposition, $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,)
              ){

                $Awfif::workspace-> {l} [ $schemadesc ] [11] .= assignnextwso ($myli, \$cwsposition, $sldesc, $abcwso);
                }#if
              else {

                if ( sinkskeyword ($myli, \$cwsposition, $sldesc, $abcwso) ){

                  &sinkekeyword ($myli, \$cwsposition, $sldesc, $cws, $abcwso);
                  };#if
                &assignnextwso ($myli, \$cwsposition, $sldesc, $abcwso, 't');#reject the keywords preceeding meta char
                };#else

              $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
              };#until
# now move beyond the terminal keyword and past the msuccgedg(e) ichar

            $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
            until ((wsbasetype ($cwsposition) == $Awfif::memes-> {snnh}{char})
            ) {

              $Awfif::workspace-> {l} [ $schemadesc ] [11] .= assignnextwso ($myli, \$cwsposition, $sldesc, $abcwso);
              };#until
# dcrdoslistrawssu1

            $Awfif::memes-> {anextwso} = undef();#reset the state of assignnextwso
            $Awfif::memes-> {currentwsbi} = $cws;
# and then terminate the histone

            $Awfif::workspace-> {l} [ $schemadesc ] [11] .= '</rhlmpch>';#terminate the histone
# perform the case histone transforms

            $Awfif::workspace-> {l} [ $schemadesc ] [11] =~ s/emsgerhl/msgerhl/ig;
            $Awfif::workspace-> {l} [ $schemadesc ] [11] =~ s/<dqrhl>/"/ig;
            $Awfif::workspace-> {l} [ $schemadesc ] [11] =~ s/<dq2rhl>/<dqrhl>/ig;
            $Awfif::workspace-> {l} [ $schemadesc ] [11] =~ s/<sqrhl>/'/ig;
            $Awfif::workspace-> {l} [ $schemadesc ] [11] =~ s/<sq2rhl>/<sqrhl>/ig;
# dcrdoslistrcbu1

            my ($i, $p);
            for ($i = 1; $i <= $Awfif::anextwa-> {l}[0]; $i++) {

              $p = \$Awfif::anextwa-> {l}[$i];
              $Awfif::workspace-> {l} [ $schemadesc ] [11] =~ s/\Q<rhlcbn$i>/$$p/i;
              $Awfif::anextwa-> {l}[$i] = undef ();
              };#for
# dcrdoslistrawssu2

            $Awfif::anextwa-> {l}[0] = 0;
            $Awfif::memes-> {anextwsb} = undef();
# deploy the histone to an active workspace
            my ($gwsi, $insymbol, @inmsymbol, @started, $end, $depstag, $depttag, $dephtag, $setwsclinv);
            $started[0] = 0;
            $started[1] = 't';
            $end = '';
            $depstag = '';
            $depttag = 0;
            $dephtag = 0;
            $setwsclinv = '';
            $insymbol = '';
            @inmsymbol = ();
# setup a workspace for the deployment

            $gwsi = setupws();
            $Awfif::wsbl-> {wsactive}[$gwsi] = '';#this workspace will not be processed by coderack
# record the ws index
            &convbws ($myli, \$Awfif::workspace-> {l} [ $schemadesc ] [11], \$grkwp, $grkwpr, $Awfif::memes-> {kwmi}, $Awfif::memes-> {kwmir}, $sponsor, \$insymbol, \@inmsymbol, \@started, \$end, \$depstag, \$depttag, \$dephtag, $gwsi, $Awfif::memes-> {snnh} {operon}, ($Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {bugroup}] ^ $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {tdgroup}] ^ $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {bustatement}] ^ $Awfif::memes-> {strbool}[$Awfif::memes-> {streh} {delta}]),
              't',#energize the base type
              \$setwsclinv
              );
            $Awfif::wsbl-> {wsft} [$gwsi] = setfwst ($Awfif::wsbl-> {wsoh}[$gwsi], $Awfif::wsbl-> {wsot}[$gwsi], $gwsi);
            $Awfif::workspace-> {l} [ $schemadesc ] [11] = undef();

            my ($sgmrecs, $wsi, $buffer);
            $Awfif::wsbl->{sgmfile} = ();
            $sgmrecs = 0;
            &Awfif::includesource (
              'memes/awfmem01.html',
              \@{$Awfif::wsbl->{sgmfile}},
              \$sgmrecs
              );
            $insymbol = '';
            @inmsymbol = ();
# seems like convbws should start afresh on this buffer

            $started[0] = 0;
            $started[1] = 't';
            $end = '';
            $depstag = '';
            $depttag = 0;
            $dephtag = 0;
            $setwsclinv = '';
# setup a nuclear workspace for the deployment

            $wsi = setupws();
            $Awfif::wsbl-> {wsactive}[$wsi] = '';#this workspace will not be processed by coderack
# record the ws index
            foreach $buffer (@{$Awfif::wsbl->{sgmfile}}) {

              &Awfif::convbws ($myli, \$buffer, \$grkwp, $grkwpr, $Awfif::memes-> {kwmi}, $Awfif::memes-> {kwmir}, $sponsor, \$insymbol, \@inmsymbol, \@started, \$end, \$depstag, \$depttag, \$dephtag, $wsi, $Awfif::memes-> {snnh} {operon}, $Awfif::memes-> {allwsstr},
                '', #don't energize the base types
                \$setwsclinv
                );
              };#transform the file into work space objects
# dcrdoslistrcbnu03
# include memetic updates

            $Awfif::wsbl->{sgmfile} = ();
            $sgmrecs = 0;
            &Awfif::includesource (
              'memes/awfmeu01.html',
              \@{$Awfif::wsbl->{sgmfile}},
              \$sgmrecs
              );
            $insymbol = '';
            @inmsymbol = ();
# seems like convbws should start afresh on this buffer

            $started[0] = 0;
            $started[1] = 't';
            $end = '';
            $depstag = '';
            $depttag = 0;
            $dephtag = 0;
            $setwsclinv = '';
# record the ws index
            foreach $buffer (@{$Awfif::wsbl->{sgmfile}}) {

              &Awfif::convbws ($myli, \$buffer, \$grkwp, $grkwpr, $Awfif::memes-> {kwmi}, $Awfif::memes-> {kwmir}, $sponsor, \$insymbol, \@inmsymbol, \@started, \$end, \$depstag, \$depttag, \$dephtag, $wsi, $Awfif::memes-> {snnh} {operon}, $Awfif::memes-> {allwsstr},
                '', #don't energize the base types
                \$setwsclinv
                );
              };#transform the file into work space objects

            $Awfif::wsbl-> {wsft} [$wsi] = setfwst ($Awfif::wsbl-> {wsoh}[$wsi], $Awfif::wsbl-> {wsot}[$wsi], $wsi);
            &Awfif::stripichar ($Awfif::wsbl->{wsoh}[$wsi], $wsi);
# dcrdoslistastoau1
# must write a new stream descriptor that associates the gwsi with the application stream

            my ($attribs, $osdesc, $atti, $osponsor);
# first get the old stream sponsor
            $osdesc = findtdesc ($Awfif::wsol-> {l} [ $astwso] [2], $Awfif::memes-> {snnh} {stream});
            $atti = ($Awfif::workspace-> {l} [$osdesc] [2] - $Awfif::memes-> {snnh} {wsi});
            $atti = $Awfif::attribs-> {l} [$atti][1];#move past the start attribute
            $atti = $Awfif::attribs-> {l} [$atti][1];#move past the stream
            $atti = $Awfif::attribs-> {l} [$atti][1];#move past the ws id
            $osponsor = $Awfif::attribs-> {l} [$atti][3];
# then deploy the resolved stream details to the investigations binderp1 sponsor under assumption that the new stream descriptor will be picked up by findtdesc calls

            $attribs = addattrib ($Awfif::memes-> {snnh} {attribs},'');
            &addattrib ($Awfif::memes-> {snnh} {attrib}, $Awfif::memes->{snnh}{stream}, '');
            &addattrib ($Awfif::memes-> {snnh} {attrib}, $gwsi, '');
            &addattrib ($Awfif::memes-> {snnh} {attrib}, $osponsor, '');#this should be the sponsor of the group containing the stream name
            &addattrib ($Awfif::memes-> {snnh} {attribe},'');

            $Awfif::memes-> {currentwsbi} = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [15];#investigation workspace
            $Awfif::wsol-> {l} [awsoadr ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [14])][2]
              = setupdesc ( $Awfif::memes-> {snnh} {attrib},
                  ($Awfif::memes-> {snnh} {wsi} + $attribs),
                  $Awfif::memes-> {snnh} {stream},
                  $Awfif::wsol-> {l} [awsoadr ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [14])][2],
                  awsoadr ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [14]));
            $Awfif::memes-> {currentwsbi} = $cws;
# dcrdoslistsigsau1
# deploy the completion descriptor which will initiate waiting codelets

            &depcdesc ($myli, $stwso, $Awfif::memes-> {snnh} {resolved}, \@$sactset);
            &depwardesc ($myli, $stwso, 'warhdob', \@$sactset);
            };#elsif

          if ( (defined ($Awfif::memes-> {dcrdoslbnsubpeosbreak}))
          && ($Awfif::memes-> {dcrdoslbnsubpeosbreak})
          && ($Awfif::codelet-> {l} [$myli][36] == 0)
          && ($foundlistend)
          ){

            &break();
            };#if
          };#while
        };#if
# dcrdoslistbcasspu1
      if ($bcount == 1) {#if workspace fully modelled describe completion otherwise signal the nucleus as necessary

        if ((!$foundlistend)
        or (($f1trmgrid > 0)
          && (!tralcomp ($myli, $f1transid))
          )#or
        ){

          my ($subpid, $casst);#need to support cascade with signal to nucleus
          if ($Awfif::codelet-> {l} [$myli] [36] > 0) {

            $subpid = $Awfif::codelet-> {l} [$myli] [36];
            $jhlabeli = 0;
            $jhlabeloi = 0;
            $casst = 'cassuboppi';
            }#if
          else {

            $casst = 'casoppi';
            if (tralcomp ($myli, $f1transid)) {#cleardown the sponsored transaction to ensure get a new one

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
              $usetrans = 0;
              $f1transid = $usetrans;
              $transid = undef ();
              $stransmgrid = 0;
              $f1trmgrid = $stransmgrid;
              $transtatus = 0;
              };#if
            };#else

          if ( (defined ($Awfif::memes-> {dcrdoslbnsubplbreak}))
          && ($Awfif::memes-> {dcrdoslbnsubplbreak})
          && ($Awfif::codelet-> {l} [$myli] [36] == 0)
          ){

            &break();
            };#if

          $jhlabeliav = 't';
          $Awfif::memes-> {currentwsbi} = $cwsbi;
          &ilaunchnc ($myli, $mswso, $casst, $Awfif::memes-> {snnh} {cascompsopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
            '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
            $usetrans,
            \$transid,
            \$transtatus,
            $subpid, #signal sub-program
            \$jhlabeli,
            \$jhlabeloi
            );

          if ( ( (!defined ($f1trmgrid))
            or ($f1trmgrid == 0) )
          && ($usetrans > 0)
          && ( (!defined ($samesubpid))
            or (!$samesubpid) )#&&
          && ( (!$eos) )#&&
          ){#as long as this is signaling a new transaction record it

            if ( (defined ($Awfif::memes-> {dcrdoslbtrbreak}))
            && ($Awfif::memes-> {dcrdoslbtrbreak})
            ){

              &break();
              };#if

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
            if ($Awfif::codelet-> {l} [$myli] [36] != 0) {

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $Awfif::codelet-> {l} [$myli] [36]);
              };#if
            };
# continue to sponsor via notgcompleted

          &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor}, undef (), \$transid, \$transtatus);
          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
          ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),undef(), undef (), 't');# sponsor should be one after telomeric header
          }#if launch models
        elsif (($foundlistend)
        ){#completed transaction and no further retrieval needed so remove the transaction record

          if ( (defined ($Awfif::memes-> {dcrdoslbtrrbreak}))
          && ($Awfif::memes-> {dcrdoslbtrrbreak})
          ){

            &break();
            };#if

          &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, 0, 0, $stransmgrid);
          if ($Awfif::codelet-> {l} [$myli] [36] != 0) {

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {remove}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
            };#if

          $transtatus = 0;#find out the status of the transaction
          &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor}, undef (), \$transid, \$transtatus);
# dcrdoslistleu1

          };#else
        };#if

      if ((defined ($Awfif::codelet-> {l} [$myli] [35])) && ($Awfif::codelet-> {l} [$myli] [35] != 0) ) {#in this instance want to take over the sponsorship and use notgcompleted to maintain initiation

        if ( (defined ($Awfif::memes-> {dcrdoslbcbreak}))
        && ($Awfif::memes-> {dcrdoslbcbreak} )
        ){

          &break();
          };#if

        $reportcaspart = 't';
        };#if

      my ($reportdesc, $arunningwso);#setup subprogram environment for amplification of self
      if ( ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
      ){

        $Awfif::wsol-> {l} [$arunningwso][2]
          = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
          $Awfif::memes-> {snnh} {running},
          $Awfif::wsol-> {l} [$arunningwso][2],
          $arunningwso);

        &compclone ($myli);
        };#if
# amplify sub cascade

      my ($grabdesc, $csubpid);
# first see if there is a running subcascade and if there is check if can grab it
      if ( (defined ($Awfif::memes-> {crsmbsubpspabreak}))
      && ($Awfif::memes-> {crsmbsubpspabreak})
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
      ){

        &break();
        };#if

      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) == 0 ) )
        or ($Awfif::workspace-> {l} [$grabdesc] [2] == 0))
      && (($csubpid = spifgrabcandidate ($myli, $arunningwso, 't', \$jhlabeliav, \$jhlabeli, 'crsmbuilder')) > 0)
      ){

        $Awfif::wsol-> {l} [$asponsor][2]
          = inccounter ( 0,
              (0 ), #will become a reference to codelet shell
              $Awfif::memes-> {snnh} {grab},
              $Awfif::wsol-> {l} [$asponsor] [2],
              $asponsor);

        if ( ( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
        ){

          $Awfif::workspace-> {l} [$grabdesc] [2] = $csubpid;
          };#if
        };#if

      if ($reportcaspart) {#better complete the transaction before do the amplification

        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
        };

      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ($Awfif::memes-> {applyactive})
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
      ){#use clone to launch cascade codelets

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {iapplyramp};
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth};
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        &spigrabamp ($myli, \$$kwp, $kwpr, 't', \$jhlabeliav, \$jhlabeli, \$transid, 'crsmbuilder');#which may change the descriptor situation
        if ($Awfif::memes-> {applycount} <= $Awfif::memes-> {applycmin}) {

          $Awfif::memes-> {applyactive} = '';
          $Awfif::memes-> {applycount}--;
          }
        else {

          $Awfif::memes-> {applycount}--;
          };
        }#if
      elsif ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) == 0 )
      ){#push for more time for coderack

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {applyramp}/2;
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth} * 1.5;
        $Awfif::memes-> {applycount}--;
        };#else
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# dcrdoslistbuilder1
#
#<!-- end tag ds -->
#
sub dcrdononrecevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# binder complex dononrec codelet responds to presence of non record condition

    &icsrioevaluator1 ($myli, \&Awfif::idcrdononrecevaluator1, 'dcrdononrecbuilder', $kwp, $kwpr, \@$sactset);
    }# dcrdononrecevaluator1
#
sub idcrdononrecevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $cws, $bcwso, $abcwso, $framei, $stwso, $astwso, $twso, $asponsor, $cwsbi, $sldesc, $cwsposition,
    $grkwp, $grkwpr);
#
# checked for merged workspaces

# binder complex dononrec codelet responds to presence of non record condition
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';

    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
# dcrdononrececseu1
    $$fbinderc = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
    $Awfif::memes-> {currentwsbi} = $cws;
    $abcwso = awsoadr ($bcwso);
# record the current wsposition
    $sldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsposition});
    $cwsposition = &movecomplex ($myli, $sldesc, 0, $abcwso);
    if ( ($$fbinderc == 1)
    && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
    && ($Awfif::workspace-> {l} [$framei] [3] > 0)
    && ((findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring})) != 0)
    ){

      $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
      if ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
      && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12] > $cwsposition ) )
      ){#launch builder

        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("idcrdononrecevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# idcrdononrecevaluator1
#
sub dcrdononrecbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# binder complex dononrec codelet responds to presence of non record condition

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'idcrdononrecevaluator');
    $$and = 't';
    return $salience
    }# dcrdononrecbsmodeler1
#
#<!-- start tag ds -resweb -->
#
sub dcrdononrecbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $atelhwso, $signal, $schema, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $bcwso, $abcwso, $cws, $framei, $sponsortype, $jhlabeli, $jhlabeliav, $subnogap, $reportcaspart, $conforms,
    $grkwp, $grkwpr, $cdn, $cdnx, $samesubpid, $endofsub, $foundlistend, $sldesc, $cwsposition, $schemadesc, $catalysis);
#
# merge streams application do phase process non record
# checked for merged workspaces

# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $endofsub = '';
    $foundlistend = '';
    $subnogap = '';
    $reportcaspart = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $abbwso);

# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      $sponsortype = wsbasetype ($sponsor);

      my ($proceed, $transid, $transtatus, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $proceed = '';
      $asponsor = awsoadr ($sponsor);
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));

      if ( (defined ($Awfif::memes-> {dcrdonrbsubpspbreak}))
      && ($Awfif::memes-> {dcrdonrbsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if
      if ( (defined ($Awfif::memes-> {dcrdonrbnsubpebreak}))
      && ($Awfif::memes-> {dcrdonrbnsubpebreak})
      && ($Awfif::codelet-> {l} [$myli] [36] == 0)
      ){

        &break();
        };#if

      $bcount = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
      $Awfif::memes-> {currentwsbi} = $cws;
      $abcwso = awsoadr ($bcwso);
# record the current wsposition
      $sldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsposition});
      $cwsposition = movecomplex ($myli, $sldesc, 0, $abcwso);
      if ( ($bcount == 1)
      && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
      && ($Awfif::workspace-> {l} [$framei] [3] > 0)
      && (($schemadesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring})) != 0)
      ){

        $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
        while ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
        && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12] > $cwsposition ) )
        ){#transfer the wso

          if ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
          && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12] > $cwsposition ) )
          && (!chmdefis ($myli, $cwsposition, $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))#not a case keyword
          ){#transfer the wso

            my ($p);
            if (($Awfif::workspace-> {l} [$framei] [3] > 1 )
            ){
              $p = \$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [9];
              }#if
            else {
              $p = \$Awfif::workspace-> {l} [$schemadesc] [11];
              };
            $$p .= assignnextwso ($myli, \$cwsposition, $sldesc, $abcwso);
            $reportcaspart = 't';
            }#if
          elsif ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
          && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12] > $cwsposition ) )
          ){#move past the case keyword

            $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
            $reportcaspart = 't';
            };#elsif
          };#while
# dcrdononrecrawssu1
        $Awfif::memes-> {anextwso} = undef();#reset the state of assignnextwso
        };#if

      $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso, undef(), 't');

      my ($reportdesc, $arunningwso);#setup subprogram environment for amplification of self
      if ( ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
      ){

        $Awfif::wsol-> {l} [$arunningwso][2]
          = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
          $Awfif::memes-> {snnh} {running},
          $Awfif::wsol-> {l} [$arunningwso][2],
          $arunningwso);

        &compclone ($myli);
        };#if
# amplify sub cascade

      my ($grabdesc, $csubpid);
# first see if there is a running subcascade and if there is check if can grab it
      if ( (defined ($Awfif::memes-> {crsmbsubpspabreak}))
      && ($Awfif::memes-> {crsmbsubpspabreak})
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
      ){

        &break();
        };#if
      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) == 0 ) )
        or ($Awfif::workspace-> {l} [$grabdesc] [2] == 0))
      && (($csubpid = spifgrabcandidate ($myli, $arunningwso, 't', \$jhlabeliav, \$jhlabeli, 'crsmbuilder')) > 0)
      ){

        $Awfif::wsol-> {l} [$asponsor][2]
          = inccounter ( 0,
              (0 ), #will become a reference to codelet shell
              $Awfif::memes-> {snnh} {grab},
              $Awfif::wsol-> {l} [$asponsor] [2],
              $asponsor);

        if ( ( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
        ){

          $Awfif::workspace-> {l} [$grabdesc] [2] = $csubpid;
          };#if
        };#if
      if ($reportcaspart) {#better complete the transaction before do the amplification

        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
        };

      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ($Awfif::memes-> {applyactive})
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
      ){#use clone to launch cascade codelets

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {iapplyramp};
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth};
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        &spigrabamp ($myli, \$$kwp, $kwpr, 't', \$jhlabeliav, \$jhlabeli, \$transid, 'crsmbuilder');#which may change the descriptor situation
        if ($Awfif::memes-> {applycount} <= $Awfif::memes-> {applycmin}) {

          $Awfif::memes-> {applyactive} = '';
          $Awfif::memes-> {applycount}--;
          }
        else {

          $Awfif::memes-> {applycount}--;
          };
        }#if
      elsif ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) == 0 )
      ){#push for more time for coderack

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {applyramp}/2;
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth} * 1.5;
        $Awfif::memes-> {applycount}--;
        };#else
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset, 't', $framei);
        };#if
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# dcrdononrecbuilder1
#
#<!-- end tag ds -->
#
sub dcrdoncasedescevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# binder complex do non case descriptor codelet responds to descriptors which are not case tagged

    &icsrioevaluator1 ($myli, \&Awfif::idcrdoncasedescevaluator1, 'dcrdoncasedescbuilder', $kwp, $kwpr, \@$sactset);
    }# dcrdoncasedescevaluator1
#
sub idcrdoncasedescevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $cws, $bcwso, $abcwso, $framei, $stwso, $astwso, $twso, $asponsor, $cwsbi,
    $grkwp, $grkwpr);
#
# checked for merged workspaces

# binder complex do non case descriptor codelet responds to descriptors which are not case tagged
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';

    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
# dcrdoncasedescecseu1
    $$fbinderc = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
    $Awfif::memes-> {currentwsbi} = $cws;
    $abcwso = awsoadr ($bcwso);
    if ( ($$fbinderc == 1)
    && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
    && ($Awfif::workspace-> {l} [$framei] [3] > 0)
    && ((findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring})) != 0)
    ){

      if ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
      && (!defined ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12]) ) )
      && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] != $Awfif::memes-> {snnh} {gowithin})
      && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] != $Awfif::memes-> {snnh} {recordlink})
      && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] != $Awfif::memes-> {snnh} {listlink})
      ){#launch builder

        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("idcrdoncasedescevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# idcrdoncasedescevaluator1
#
sub dcrdoncasedescbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# binder complex do non case descriptor codelet responds to descriptors which are not case tagged

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'idcrdoncasedescevaluator');
    $$and = 't';
    return $salience
    }# dcrdoncasedescbsmodeler1
#
sub dcrdoncasedescbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $atelhwso, $signal, $schema, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $bcwso, $abcwso, $cws, $framei, $sponsortype, $jhlabeli, $jhlabeliav, $subnogap, $reportcaspart,
    $grkwp, $grkwpr, $cdn, $cdnx, $samesubpid, $endofsub, $foundlistend, $sldesc, $schemadesc, $catalysis);
#
# merge streams application do phase process non case descriptor
# checked for merged workspaces

# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $endofsub = '';
    $foundlistend = '';
    $subnogap = '';
    $reportcaspart = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $abbwso);

# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      $sponsortype = wsbasetype ($sponsor);

      my ($proceed, $transid, $transtatus, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $proceed = '';
      $asponsor = awsoadr ($sponsor);
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));

      if ( (defined ($Awfif::memes-> {dcrdonrbsubpspbreak}))
      && ($Awfif::memes-> {dcrdonrbsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if
      if ( (defined ($Awfif::memes-> {dcrdonrbnsubpebreak}))
      && ($Awfif::memes-> {dcrdonrbnsubpebreak})
      && ($Awfif::codelet-> {l} [$myli] [36] == 0)
      ){

        &break();
        };#if

      $bcount = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
# dcrdoncasedescbbhu1

      &bindhistone ($myli, $cws, $bcwso);
      $Awfif::memes-> {currentwsbi} = $cws;
      $abcwso = awsoadr ($bcwso);
      if ( ($bcount == 1)
      && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
      && ($Awfif::workspace-> {l} [$framei] [3] > 0)
      && (($schemadesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring})) != 0)
      ){

        while ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
        && (!defined ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12]) ) )
        && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] != $Awfif::memes-> {snnh} {gowithin})
        && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] != $Awfif::memes-> {snnh} {recordlink})
        && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] != $Awfif::memes-> {snnh} {listlink})
        ){#move the descriptor forward
# advance along the descriptor list

          &donextdesc ($myli, $cws, $framei);
          $reportcaspart = 't';
          };#while
        };#if

      $sldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsposition});
      $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso, undef(), 't');

      my ($reportdesc, $arunningwso);#setup subprogram environment for amplification of self
      if ( ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
      ){

        $Awfif::wsol-> {l} [$arunningwso][2]
          = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
          $Awfif::memes-> {snnh} {running},
          $Awfif::wsol-> {l} [$arunningwso][2],
          $arunningwso);

        &compclone ($myli);
        };#if
# amplify sub cascade

      my ($grabdesc, $csubpid);
# first see if there is a running subcascade and if there is check if can grab it
      if ( (defined ($Awfif::memes-> {crsmbsubpspabreak}))
      && ($Awfif::memes-> {crsmbsubpspabreak})
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
      ){

        &break();
        };#if
      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) == 0 ) )
        or ($Awfif::workspace-> {l} [$grabdesc] [2] == 0))
      && (($csubpid = spifgrabcandidate ($myli, $arunningwso, 't', \$jhlabeliav, \$jhlabeli, 'crsmbuilder')) > 0)
      ){

        $Awfif::wsol-> {l} [$asponsor][2]
          = inccounter ( 0,
              (0 ), #will become a reference to codelet shell
              $Awfif::memes-> {snnh} {grab},
              $Awfif::wsol-> {l} [$asponsor] [2],
              $asponsor);

        if ( ( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
        ){

          $Awfif::workspace-> {l} [$grabdesc] [2] = $csubpid;
          };#if
        };#if
      if ($reportcaspart) {#better complete the transaction before do the amplification

        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
        };

      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ($Awfif::memes-> {applyactive})
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
      ){#use clone to launch cascade codelets

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {iapplyramp};
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth};
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        &spigrabamp ($myli, \$$kwp, $kwpr, 't', \$jhlabeliav, \$jhlabeli, \$transid, 'crsmbuilder');#which may change the descriptor situation
        if ($Awfif::memes-> {applycount} <= $Awfif::memes-> {applycmin}) {

          $Awfif::memes-> {applyactive} = '';
          $Awfif::memes-> {applycount}--;
          }
        else {

          $Awfif::memes-> {applycount}--;
          };
        }#if
      elsif ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) == 0 )
      ){#push for more time for coderack

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {applyramp}/2;
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth} * 1.5;
        $Awfif::memes-> {applycount}--;
        };#else
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset, 't', $framei);
        };#if
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# dcrdoncasedescbuilder1
#
sub dcrdocasedescevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# binder complex do case descriptor codelet responds to descriptors which are case tagged

    &icsrioevaluator1 ($myli, \&Awfif::idcrdocasedescevaluator1, 'dcrdocasedescbuilder', $kwp, $kwpr, \@$sactset);
    }# dcrdocasedescevaluator1
#
sub idcrdocasedescevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $cws, $bcwso, $abcwso, $framei, $stwso, $astwso, $twso, $asponsor, $cwsbi, $sldesc, $cwsposition, $conforms,
    $grkwp, $grkwpr);
#
# checked for merged workspaces

# binder complex do case descriptor codelet responds to descriptors which are case tagged
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';

    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
# dcrdocasedescecseu1
    $$fbinderc = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
    $Awfif::memes-> {currentwsbi} = $cws;
    $abcwso = awsoadr ($bcwso);
# record the current wsposition
    $sldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsposition});
    $cwsposition = &movecomplex ($myli, $sldesc, 0, $abcwso);
    if ( ($$fbinderc == 1)
    && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
    && ($Awfif::workspace-> {l} [$framei] [3] > 0)
    && ((findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring})) != 0)
    ){

      $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
      if ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
      && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12] == $cwsposition ) )
      && (chmdefis ($myli, $cwsposition, $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))#is a case keyword
      ){#launch builder

        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("idcrdocasedescevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# idcrdocasedescevaluator1
#
sub dcrdocasedescbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# binder complex do case descriptor codelet responds to descriptors which are case tagged

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'idcrdocasedescevaluator');
    $$and = 't';
    return $salience
    }# dcrdocasedescbsmodeler1
#
#<!-- start tag ds -resweb -->
#
sub dcrdocasedescbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $atelhwso, $signal, $schema, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $bcwso, $abcwso, $cws, $framei, $sponsortype, $jhlabeli, $jhlabeliav, $subnogap, $reportcaspart, $conforms,
    $grkwp, $grkwpr, $cdn, $cdnx, $samesubpid, $endofsub, $foundlistend, $sldesc, $cwsposition, $schemadesc, $catalysis, $reached);
#
# merge streams application case resolved do phase process case descriptor
# checked for merged workspaces

# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $endofsub = '';
    $foundlistend = '';
    $subnogap = '';
    $reportcaspart = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $abbwso);
      my ($buffer, $target, $selectordesc, $selector, $atti);

# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      $sponsortype = wsbasetype ($sponsor);

      my ($proceed, $transid, $transtatus, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $proceed = '';
      $asponsor = awsoadr ($sponsor);
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));

      if ( (defined ($Awfif::memes-> {dcrdonrbsubpspbreak}))
      && ($Awfif::memes-> {dcrdonrbsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if
      if ( (defined ($Awfif::memes-> {dcrdonrbnsubpebreak}))
      && ($Awfif::memes-> {dcrdonrbnsubpebreak})
      && ($Awfif::codelet-> {l} [$myli] [36] == 0)
      ){

        &break();
        };#if

      $bcount = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
# dcrdocasedescbbhu1

      &bindhistone ($myli, $cws, $bcwso);
      $Awfif::memes-> {currentwsbi} = $cws;
      $abcwso = awsoadr ($bcwso);
# record the current wsposition
      $sldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsposition});
      $cwsposition = movecomplex ($myli, $sldesc, 0, $abcwso);
# don't use case model descriptors they only check for one match so no references to the rest of the case ifs. Use the ifsispo, eifsispo, elsispo to test for a match to the selector spec
      if ( ($bcount == 1)
      && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
      && ($Awfif::workspace-> {l} [$framei] [3] > 0)
      && (($schemadesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring})) != 0)
      ){

        $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
        while ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
        && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12] == $cwsposition ) )
        && (chmdefis ($myli, $cwsposition, $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))#is a case keyword
        ){#move the descriptor forward
# perform case operation -> if it is a target then

          if ( (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{target}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))
          ){
# record the target in histone context schema and advance the wsposition past the whole of the case keyword structure

            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [7] = $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][10];
            while ($cwsposition != $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][14]) {

              $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
              };#while
            }#if
# perform case operation -> if it is a caseiss descriptor then advance the wsposition past the whole of the case keyword structure
# for a for caseisspo && no gowithin descriptor active in histone context workspace unconditionally perform the transform and move the transformed data into the schemadesc
# i.e. referencing a caseisspo (for) for operation replaces the next target structure ?SS descriptor such as <target> ; Then copy in edited string to the schemadesc

          elsif ( (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{for}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{small}, \$conforms, $$kwp, $kwpr,))
          && ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [8] != $Awfif::memes-> {snnh} {gowithin} )
          && (defined ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [7] ) ) # the target
          ){
# unconditionally perform the transform and move the transformed data into the schemadesc

            $buffer = $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][10];
            $target = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [7];
            $Awfif::memes-> {currentwsbi} = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [15];#investigation workspace
            $selectordesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [14])] [2], $Awfif::memes-> {snnh} {acsaoevaluator});
            $atti = ($Awfif::workspace-> {l} [$selectordesc] [2] - $Awfif::memes-> {snnh} {wsi});
            $atti = $Awfif::attribs-> {l} [$atti][1];#move past the start attribute
            $atti = $Awfif::attribs-> {l} [$atti][1];#move past the acsaoevaluator
            if ( (($Awfif::attribs-> {l} [$atti][3]) == $Awfif::memes-> {snnh}{one})
            && (($atti = $Awfif::attribs-> {l} [$atti][1]) != 0)#moves to the selector descriptor that matched the test description
            ){

              $selector = $Awfif::workspace-> {l} [$Awfif::attribs-> {l} [$atti][3]][10];
              $buffer =~ s/$target/$selector/ig;
              $Awfif::workspace-> {l} [$schemadesc] [11] .= $buffer;
              }#if
            else {#failure in atti addressing

              &break ();
              };#else
            while ($cwsposition != $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][14]) {

              $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
              };#while
            }#elsif
# dcrdogwforu1
# while a for with gowithin in current wsframe it and others in that frame will have performed the elsif if... else match melse processing into a buffer now in calling frame; now perform the target replacement.

          elsif ( (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{for}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{small}, \$conforms, $$kwp, $kwpr,))
          && ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [8] == $Awfif::memes-> {snnh} {gowithin} )
          && (defined ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [7] ) ) # the target
          ){
# unconditionally perform the transform on the gowithin buffer and move the transformed data into the schemadesc

            $buffer = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [9];
            $target = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [7];
            $Awfif::memes-> {currentwsbi} = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [15];#investigation workspace
            $selectordesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [14])] [2], $Awfif::memes-> {snnh} {acsaoevaluator});#the binder wso
            $atti = ($Awfif::workspace-> {l} [$selectordesc] [2] - $Awfif::memes-> {snnh} {wsi});
            $atti = $Awfif::attribs-> {l} [$atti][1];#move past the start attribute
            $atti = $Awfif::attribs-> {l} [$atti][1];#move past the acsaoevaluator
            if ( (($Awfif::attribs-> {l} [$atti][3]) == $Awfif::memes-> {snnh}{one})
            && (($atti = $Awfif::attribs-> {l} [$atti][1]) != 0)#moves to the selector descriptor that matched the test description
            ){

              $selector = $Awfif::workspace-> {l} [$Awfif::attribs-> {l} [$atti][3]][10];
              $buffer =~ s/$target/$selector/ig;
              if (($Awfif::workspace-> {l} [$framei] [2] > 1 )
              ){

                $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [9] .= $buffer;
                }#if
              else {
                $Awfif::workspace-> {l} [$schemadesc] [11] .= $buffer;

                };#else
              };#if
            while ($cwsposition != $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][14]) {

              $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
              };#while
            }#elsif
# perform case operation -> if it is a ?sis descriptor then advance the wsposition past the whole of the case keyword structure
# i.e. referencing a case[e]ifsispo (elsif, if) operation notes entered (if => true) in wsframe element[10]
# and if find if buffer checks for a match to the selector and if it finds one describes match found frame element [11] and moves the matching buffer to the schemastring or if in gowithin to the calling frame gowithin string i.e. frame element[9]
# dcrdogweiu1

          elsif ( ( (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{elsif}, \$conforms, $$kwp, $kwpr,))
            or (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{if}, \$conforms, $$kwp, $kwpr,)) )#or
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{selector}, \$conforms, $$kwp, $kwpr,))
          ){

            if (!defined ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [10] ) ) {# note am processing [e]if else

              $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [10] = 't';
              };#if
            $Awfif::memes-> {currentwsbi} = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [15];#investigation workspace
            $selectordesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [14])] [2], $Awfif::memes-> {snnh} {acsaoevaluator});#the binder wso
            $atti = ($Awfif::workspace-> {l} [$selectordesc] [2] - $Awfif::memes-> {snnh} {wsi});
            $atti = $Awfif::attribs-> {l} [$atti][1];#move past the start attribute
            $atti = $Awfif::attribs-> {l} [$atti][1];#move past the id
            if ( (($Awfif::attribs-> {l} [$atti][3]) == $Awfif::memes-> {snnh}{one})
            && (($atti = $Awfif::attribs-> {l} [$atti][1]) != 0)#moves to the selector descriptor that matched the test description
            && ($reached = 't')
            && ($Awfif::workspace-> {l} [$Awfif::attribs-> {l} [$atti] [3]][10] eq $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][10])
            ){

              if ( (defined ($Awfif::memes-> {dcrdoeifsfbreak}))
              && ($Awfif::memes-> {dcrdoeifsfbreak} == $Awfif::workspace-> {l} [$framei] [3])
              ){

                &break();
                };#if
              $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [11] = $Awfif::memes-> {snnh} {active};# active == next buffer is selected for if, if == if buffer deployed match == match buffer deployed, undefined == no match for selector yet
              };#if
            if (($reached)
            && (checkselmatch ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][10], $sponsor, $grkwp, $grkwpr))
            ){

              $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] = $Awfif::memes-> {snnh} {matchkword};# active == next buffer is selected, if == if buffer deployed match == match buffer deployed, undefined == no match for selector yet
              $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [16] = $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][10];# active == next buffer is selected, if == if buffer deployed match == match buffer deployed, undefined == no match for selector yet
              };
            while ($cwsposition != $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][14]) {

              $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
              };#while
            }#elsif
# dcrdogweiu2

          elsif ( ( (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{elsif}, \$conforms, $$kwp, $kwpr,))
            or (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{if}, \$conforms, $$kwp, $kwpr,)) )#or
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{small}, \$conforms, $$kwp, $kwpr,))
          && (defined ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [10] ) ) # in if
          && ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [11] == $Awfif::memes-> {snnh} {active})
          ){#this is a match so move in the buffer and set [11] to accepted

            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [11] = $Awfif::memes-> {snnh} {if};
            &dodepstring ($myli, $framei, $schemadesc);

            while ($cwsposition != $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][14]) {

              $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
              };#while
            }#elsif
# dcrdogwmu1
# i.e. referencing a casemasspo (match) buffer checks for a match to the selector and if it finds one moves the matching buffer to the schemastring or if in gowithin to the calling frame gowithin string i.e. frame element[9]

          elsif ( (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{match}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{small}, \$conforms, $$kwp, $kwpr,))
          && (defined ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [10] ) ) # in if
          && ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] == $Awfif::memes-> {snnh} {matchkword})
          ){#this is a match so move in the buffer

            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] = $Awfif::memes-> {snnh} {match};
            &dodepstring ($myli, $framei, $schemadesc);

            while ($cwsposition != $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][14]) {

              $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
              };#while
            }#elsif
# dcrdogwmeu1
# i.e. referencing a casemelsespo (melse) buffer checks for active, match and accepted
# if it finds active or accepted it moves the nomatch buffer to the schemastring or if in gowithin to the calling frame gowithin string i.e. frame element[9]
# if it finds match it does not deploy its buffer but sets status to accepted

          elsif ( (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{melse}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{small}, \$conforms, $$kwp, $kwpr,))
          && (defined ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [10] ) ) # in if
          && (($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] == $Awfif::memes-> {snnh} {matchkword}) or ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] == $Awfif::memes-> {snnh} {match}) or ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] == $Awfif::memes-> {snnh} {accepted}))
          ){#this is a melse so move in the buffer and set [17] to accepted

            if (($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] == $Awfif::memes-> {snnh} {matchkword})
            or ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] == $Awfif::memes-> {snnh} {accepted})
            ){#deploy the buffer


              }#if
            else {#match so just change status to accepted

              $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [17] = $Awfif::memes-> {snnh} {accepted};
              };#else
            while ($cwsposition != $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][14]) {

              $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
              };#while
            }#elsif
# dcrdogweu1
# i.e. started elsif and no match has occured and reach a caselsespo (else buffer) operation moves the else buffer to the schemastring or if in gowithin to the calling frame gowithin string i.e. frame element[9]
# i.e. referencing a caselsespo (else) buffer checks for if present and not completed; if so moves the else buffer to the schemastring or if in gowithin to the calling frame gowithin string i.e. frame element[9]

          elsif ( (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{else}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{case}, \$conforms, $$kwp, $kwpr,))
          && (chmdefis ($myli, $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][12], $Awfif::memes-> {snnh}{small}, \$conforms, $$kwp, $kwpr,))
          && (defined ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [10] ) ) # in if
          && ( $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [11] != $Awfif::memes-> {snnh} {if})
          ){#this is a else and no [els]if has matched so move in the buffer and set [11] to accepted

            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [11] = $Awfif::memes-> {snnh} {accepted};
            &dodepstring ($myli, $framei, $schemadesc);

            while ($cwsposition != $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][14]) {

              $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
              };#while
            }#elsif
# perform case operation -> if its not a ?sis descriptor or a gowithin or a target then just advance the wsposition past the whole of the case keyword structure
          else {

            while ($cwsposition != $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][14]) {

              $cwsposition = movecomplex ($myli, $sldesc, 1, $abcwso);
              };#while
            };#else

# move to the next descriptor

          &donextdesc ($myli, $cws, $framei);
          $reportcaspart = 't';
          };#while
        };#if

      $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso, undef(), 't');

      my ($reportdesc, $arunningwso);#setup subprogram environment for amplification of self
      if ( ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
      ){

        $Awfif::wsol-> {l} [$arunningwso][2]
          = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
          $Awfif::memes-> {snnh} {running},
          $Awfif::wsol-> {l} [$arunningwso][2],
          $arunningwso);

        &compclone ($myli);
        };#if
# amplify sub cascade

      my ($grabdesc, $csubpid);
# first see if there is a running subcascade and if there is check if can grab it
      if ( (defined ($Awfif::memes-> {crsmbsubpspabreak}))
      && ($Awfif::memes-> {crsmbsubpspabreak})
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
      ){

        &break();
        };#if
      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) == 0 ) )
        or ($Awfif::workspace-> {l} [$grabdesc] [2] == 0))
      && (($csubpid = spifgrabcandidate ($myli, $arunningwso, 't', \$jhlabeliav, \$jhlabeli, 'crsmbuilder')) > 0)
      ){

        $Awfif::wsol-> {l} [$asponsor][2]
          = inccounter ( 0,
              (0 ), #will become a reference to codelet shell
              $Awfif::memes-> {snnh} {grab},
              $Awfif::wsol-> {l} [$asponsor] [2],
              $asponsor);

        if ( ( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
        ){

          $Awfif::workspace-> {l} [$grabdesc] [2] = $csubpid;
          };#if
        };#if
      if ($reportcaspart) {#better complete the transaction before do the amplification

        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
        };

      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ($Awfif::memes-> {applyactive})
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
      ){#use clone to launch cascade codelets

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {iapplyramp};
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth};
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        &spigrabamp ($myli, \$$kwp, $kwpr, 't', \$jhlabeliav, \$jhlabeli, \$transid, 'crsmbuilder');#which may change the descriptor situation
        if ($Awfif::memes-> {applycount} <= $Awfif::memes-> {applycmin}) {

          $Awfif::memes-> {applyactive} = '';
          $Awfif::memes-> {applycount}--;
          }
        else {

          $Awfif::memes-> {applycount}--;
          };
        }#if
      elsif ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) == 0 )
      ){#push for more time for coderack

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {applyramp}/2;
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth} * 1.5;
        $Awfif::memes-> {applycount}--;
        };#else
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset, 't', $framei);
        };#if
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# dcrdocasedescbuilder1
#
#<!-- end tag ds -->
#
sub dcrdogowithinevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# binder complex do go within codelet responds to go within tags

    &icsrioevaluator1 ($myli, \&Awfif::idcrdogowithinevaluator1, 'dcrdogowithinbuilder', $kwp, $kwpr, \@$sactset);
    }# dcrdogowithinevaluator1
#
sub idcrdogowithinevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $cws, $bcwso, $abcwso, $framei, $stwso, $astwso, $twso, $asponsor, $cwsbi, $sldesc, $cwsposition,
    $grkwp, $grkwpr);
#
# checked for merged workspaces

# binder complex do go within codelet responds to go within tags
    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';

    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
    $$fbinderc = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
    $Awfif::memes-> {currentwsbi} = $cws;
    $abcwso = awsoadr ($bcwso);
# record the current wsposition
    $sldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsposition});
    $cwsposition = &movecomplex ($myli, $sldesc, 0, $abcwso);
    if ( ($$fbinderc == 1)
    && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
    && ($Awfif::workspace-> {l} [$framei] [3] > 0)
    && ((findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring})) != 0)
    ){

      $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
      if ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
      && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh} {gowithin} ) )
      ){#launch builder

        $dolaunch = 't';
        }#if
      elsif ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] == 0)
      && ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] == 0) && ($Awfif::workspace-> {l} [$framei] [2] > 1))
      ){#gowithin handles end of the subprogram list

        $dolaunch = 't';
        }#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("idcrdogowithinevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# idcrdogowithinevaluator1
#
sub dcrdogowithinbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# binder complex do go within codelet responds to go within tags

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'idcrdogowithinevaluator');
    $$and = 't';
    return $salience
    }# dcrdogowithinbsmodeler1
#
#<!-- start tag ds -resweb -->
#
sub dcrdogowithinbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $atelhwso, $signal, $schema, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $bcwso, $abcwso, $cws, $framei, $sponsortype, $jhlabeli, $jhlabeliav, $subnogap, $reportcaspart,
    $grkwp, $grkwpr, $cdn, $cdnx, $samesubpid, $endofsub, $foundlistend, $sldesc, $cwsposition, $schemadesc, $catalysis);
#
# merge streams application case resolved do phase process gowithin descriptor
# checked for merged workspaces

# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $endofsub = '';
    $foundlistend = '';
    $subnogap = '';
    $reportcaspart = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $abbwso);

# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      $sponsortype = wsbasetype ($sponsor);

      my ($proceed, $transid, $transtatus, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $proceed = '';
      $asponsor = awsoadr ($sponsor);
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));

      if ( (defined ($Awfif::memes-> {dcrdogwsubpspbreak}))
      && ($Awfif::memes-> {dcrdogwsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if

      $bcount = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
# dcrdogowithinbbhu1

      &bindhistone ($myli, $cws, $bcwso);
      $Awfif::memes-> {currentwsbi} = $cws;
      $abcwso = awsoadr ($bcwso);
# record the current wsposition
      $sldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsposition});
      $cwsposition = movecomplex ($myli, $sldesc, 0, $abcwso);
      if ( ($bcount == 1)
      && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
      && ($Awfif::workspace-> {l} [$framei] [3] > 0)
      && (($schemadesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring})) != 0)
      ){

        $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
# don't use case model descriptors they only check for one match so no references to the rest of the case ifs. Use the ifsispo, eifsispo, elsispo to test for a match to the selector spec
        while ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
        && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh} {gowithin} ) )
        ){#perform gowithin and move the descriptor forward
# setup the new frame

          my ($oldframe, $listi);
          if ( (defined ($Awfif::memes-> {dcrdogwnafbreak}))
          && ($Awfif::memes-> {dcrdogwnafbreak} == $Awfif::workspace-> {l} [$framei] [3])
          ){

            &break();
            };#if
          $oldframe = $Awfif::workspace-> {l} [$framei] [3];
          &addframe ($framei, ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][3] - $Awfif::memes-> {snnh} {wsi}), ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][2] - $Awfif::memes-> {snnh} {wsi}));
# move to the next descriptor but be careful we have already moved the frame

          $Awfif::framel-> {l} [$oldframe] [4] = $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$oldframe] [4] ] [1];
# copy the ms binder ws to the new frame
          $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [14] = $Awfif::framel-> {l} [$oldframe] [14];
          $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [15] = $Awfif::framel-> {l} [$oldframe] [15];
# move the wsposition into the keyword
          $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [12] = $Awfif::workspace-> {l} [$sldesc] [2];#wsposition at start of frame
          $Awfif::workspace-> {l} [$sldesc] [2] = $Awfif::workspace-> {l} [$Awfif::framel-> {l} [$oldframe] [4]] [2];
          $reportcaspart = 't';
# perform gowithin operation

          $Awfif::memes-> {currentwsbi} = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [3];
          $abbwso = awsoadr ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [2]);
# now pickup the listlink
          if (($listi = findtdesc ($Awfif::wsol-> {l} [ $abbwso] [2], $Awfif::memes-> {snnh} {listlink})) != 0
          ){

            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] = 0;#The initial list descriptor points to the first list record so can setup for doslist to setup the first record
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] = ($Awfif::workspace-> {l} [$listi] [2] - $Awfif::memes-> {snnh} {wsi});#The initial list descriptor points to the first list record
# now adjust the frame to address the first record wso in the list

            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [2] = 0;#force the loading of the next wso
            };#if
          };#while
        if ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] == 0)
        && ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] == 0) && ($Awfif::workspace-> {l} [$framei] [2] > 1))
        ){#gowithin handles end of the subprogram list

          if ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [9] ne '') {#if the gowithin string frame element [9] is defined and not empty then set gowithin ie frame element [8] for frame -1
# dcrdogwbs9u1

            my ($prevframe);
            $prevframe = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [0];
            $Awfif::framel-> {l} [$prevframe] [8] = $Awfif::memes-> {snnh} {gowithin};
            $Awfif::framel-> {l} [$prevframe] [9] .= $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [9];
            };#if
# dcrdogwbffu1
          $Awfif::workspace-> {l} [$sldesc] [2] = $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [12];#wsposition at start of frame
          &freeframe ($framei);
          };#if
        };#if

      $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso, undef(), 't');

      my ($reportdesc, $arunningwso);#setup subprogram environment for amplification of self
      if ( ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
      ){

        $Awfif::wsol-> {l} [$arunningwso][2]
          = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
          $Awfif::memes-> {snnh} {running},
          $Awfif::wsol-> {l} [$arunningwso][2],
          $arunningwso);

        &compclone ($myli);
        };#if
# amplify sub cascade

      my ($grabdesc, $csubpid);
# first see if there is a running subcascade and if there is check if can grab it
      if ( (defined ($Awfif::memes-> {crsmbsubpspabreak}))
      && ($Awfif::memes-> {crsmbsubpspabreak})
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
      ){

        &break();
        };#if
      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) == 0 ) )
        or ($Awfif::workspace-> {l} [$grabdesc] [2] == 0))
      && (($csubpid = spifgrabcandidate ($myli, $arunningwso, 't', \$jhlabeliav, \$jhlabeli, 'crsmbuilder')) > 0)
      ){

        $Awfif::wsol-> {l} [$asponsor][2]
          = inccounter ( 0,
              (0 ), #will become a reference to codelet shell
              $Awfif::memes-> {snnh} {grab},
              $Awfif::wsol-> {l} [$asponsor] [2],
              $asponsor);

        if ( ( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
        ){

          $Awfif::workspace-> {l} [$grabdesc] [2] = $csubpid;
          };#if
        };#if
      if ($reportcaspart) {#better complete the transaction before do the amplification

        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
        };

      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ($Awfif::memes-> {applyactive})
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
      ){#use clone to launch cascade codelets

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {iapplyramp};
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth};
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        &spigrabamp ($myli, \$$kwp, $kwpr, 't', \$jhlabeliav, \$jhlabeli, \$transid, 'crsmbuilder');#which may change the descriptor situation
        if ($Awfif::memes-> {applycount} <= $Awfif::memes-> {applycmin}) {

          $Awfif::memes-> {applyactive} = '';
          $Awfif::memes-> {applycount}--;
          }
        else {

          $Awfif::memes-> {applycount}--;
          };
        }#if
      elsif ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) == 0 )
      ){#push for more time for coderack

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {applyramp}/2;
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth} * 1.5;
        $Awfif::memes-> {applycount}--;
        };#else
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset, 't', $framei);
        };#if
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# dcrdogowithinbuilder1
#
sub dcrdosrecordevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# binder complex do start record codelet responds to start/end record tags

    &icsrioevaluator1 ($myli, \&Awfif::idcrdosrecordevaluator1, 'dcrdosrecordbuilder', $kwp, $kwpr, \@$sactset);
    }# dcrdosrecordevaluator1
#
sub idcrdosrecordevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $cws, $bcwso, $abcwso, $framei, $stwso, $astwso, $twso, $asponsor, $cwsbi, $sldesc, $cwsposition,
    $grkwp, $grkwpr);
#
# checked for merged workspaces
# binder complex do start record codelet responds to start/end record tags

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';

    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
    $$fbinderc = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
    $Awfif::memes-> {currentwsbi} = $cws;
    $abcwso = awsoadr ($bcwso);
# record the current wsposition
    $sldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsposition});
    $cwsposition = &movecomplex ($myli, $sldesc, 0, $abcwso);
    if ( ($$fbinderc == 1)
    && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
    && ($Awfif::workspace-> {l} [$framei] [3] > 0)
    && ((findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring})) != 0)
    ){

      $Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes->{snnh}{wsi});
      if ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
      && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh}{recordlink}) )
      or ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0) && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh}{listlink}) && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][2] == $Awfif::memes-> {snnh}{wsi}))
      or ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] == 0) && ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] > 0) ) )
      ){#launch builder

        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("idcrdosrecordevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# idcrdosrecordevaluator1
#
sub dcrdosrecordbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# binder complex do start record codelet responds to start/end record tags

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'idcrdosrecordevaluator');
    $$and = 't';
    return $salience
    }# dcrdosrecordbsmodeler1
#
#<!-- start tag ds -resweb -->
#
sub dcrdosrecordbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $atelhwso, $signal, $schema, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $bcwso, $abcwso, $cws, $framei, $sponsortype, $jhlabeli, $jhlabeliav, $subnogap, $reportcaspart,
    $grkwp, $grkwpr, $cdn, $cdnx, $samesubpid, $endofsub, $foundlistend, $sldesc, $cwsposition, $schemadesc, $catalysis);
#
# mergestreams application case resolved do phase process start/end record descriptor
# checked for merged workspaces

# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $endofsub = '';
    $foundlistend = '';
    $subnogap = '';
    $reportcaspart = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $abbwso);

# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      $sponsortype = wsbasetype ($sponsor);

      my ($proceed, $transid, $transtatus, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $proceed = '';
      $asponsor = awsoadr ($sponsor);
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));

      if ( (defined ($Awfif::memes-> {dcrdonrbsubpspbreak}))
      && ($Awfif::memes-> {dcrdonrbsubpspbreak} == $Awfif::codelet-> {l} [$myli] [36])
      ){

        &break();
        };#if
      if ( (defined ($Awfif::memes-> {dcrdonrbnsubpebreak}))
      && ($Awfif::memes-> {dcrdonrbnsubpebreak})
      && ($Awfif::codelet-> {l} [$myli] [36] == 0)
      ){

        &break();
        };#if

      $bcount = ifindb ($myli, $sponsor, 'binderrc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
# dcrdosrecordbbhu1

      &bindhistone ($myli, $cws, $bcwso);
      $Awfif::memes-> {currentwsbi} = $cws;
      $abcwso = awsoadr ($bcwso);
# record the current wsposition
      $sldesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsposition});
      $cwsposition = movecomplex ($myli, $sldesc, 0, $abcwso);
      if ( ($bcount == 1)
      && (($framei = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {wsframe})) != 0)
      && ($Awfif::workspace-> {l} [$framei] [3] > 0)
      && (($schemadesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso] [2], $Awfif::memes-> {snnh} {schemastring})) != 0)
      ){

        while ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
        && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh}{recordlink}) )
        or ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0) && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh}{listlink}) && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][2] == $Awfif::memes-> {snnh}{wsi}))
        or ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] == 0) && ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] > 0) ) )
        ){#process startlist end of list & handle cascade

          if ( (defined ($Awfif::memes-> {dcrdoslbnsubpwbreak}))
          && ($Awfif::memes-> {dcrdoslbnsubpwbreak})
          && ($Awfif::codelet-> {l} [$myli] [36] == 0)
          ){

            &break();
            };#if
          if ( ( ($Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] > 0)
          && ($Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ][4] == $Awfif::memes-> {snnh}{recordlink}) )
          ){

            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [5] = ($Awfif::workspace-> {l} [$Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4]] [2] - $Awfif::memes-> {snnh} {wsi});
# advance along the descriptor list
            $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] = $Awfif::workspace-> {l} [ $Awfif::framel-> {l} [$Awfif::workspace-> {l} [$framei] [3]] [4] ] [1];
            }#elsif
          else {

          $reportcaspart = 't';
          };#while
        };#if

      $catalysis = grabcodelet ($myli, $sldesc, $cws, $abcwso, undef(), 't');

      my ($reportdesc, $arunningwso);#setup subprogram environment for amplification of self
      if ( ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {completed})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((findtdesc ($Awfif::wsol-> {l} [($arunningwso)] [2], $Awfif::memes-> {snnh} {running}, $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, ($Awfif::codelet-> {l} [$myli] [36] + $Awfif::memes-> {snnh} {wsi}) )) == 0 )
      ){

        $Awfif::wsol-> {l} [$arunningwso][2]
          = setupdesc ( $Awfif::memes-> {snnh} {$Awfif::codelet-> {l} [$myli] [2]}, #
          ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli] [36]), #to match findbond
          $Awfif::memes-> {snnh} {running},
          $Awfif::wsol-> {l} [$arunningwso][2],
          $arunningwso);

        &compclone ($myli);
        };#if
# amplify sub cascade

      my ($grabdesc, $csubpid);
# first see if there is a running subcascade and if there is check if can grab it
      if ( (defined ($Awfif::memes-> {crsmbsubpspabreak}))
      && ($Awfif::memes-> {crsmbsubpspabreak})
      && ($Awfif::codelet-> {l} [$myli] [36] > 0)
      && (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
      ){

        &break();
        };#if
      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && (($reportdesc = findtdesc ($Awfif::wsol-> {l} [($abbwso)] [2], $Awfif::memes-> {snnh} {initiate})) != 0 )#report that codelet has run allowing it to be grabbed
      && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$reportdesc] [3] - $Awfif::memes-> {snnh} {wsi})) > 0 )
      && (($arunningwso = awsoadr (($Awfif::workspace-> {l} [$reportdesc] [2] - $Awfif::memes-> {snnh} {wsi})) ) > 0 )
      && ((( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) == 0 ) )
        or ($Awfif::workspace-> {l} [$grabdesc] [2] == 0))
      && (($csubpid = spifgrabcandidate ($myli, $arunningwso, 't', \$jhlabeliav, \$jhlabeli, 'crsmbuilder')) > 0)
      ){

        $Awfif::wsol-> {l} [$asponsor][2]
          = inccounter ( 0,
              (0 ), #will become a reference to codelet shell
              $Awfif::memes-> {snnh} {grab},
              $Awfif::wsol-> {l} [$asponsor] [2],
              $asponsor);

        if ( ( ($grabdesc = findtdesc ($Awfif::wsol-> {l} [ $asponsor ] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
        ){

          $Awfif::workspace-> {l} [$grabdesc] [2] = $csubpid;
          };#if
        };#if
      if ($reportcaspart) {#better complete the transaction before do the amplification

        &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
        };

      if ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ($Awfif::memes-> {applyactive})
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) != 0 )
      ){#use clone to launch cascade codelets

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {iapplyramp};
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth};
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        &spigrabamp ($myli, \$$kwp, $kwpr, 't', \$jhlabeliav, \$jhlabeli, \$transid, 'crsmbuilder');#which may change the descriptor situation
        if ($Awfif::memes-> {applycount} <= $Awfif::memes-> {applycmin}) {

          $Awfif::memes-> {applyactive} = '';
          $Awfif::memes-> {applycount}--;
          }
        else {

          $Awfif::memes-> {applycount}--;
          };
        }#if
      elsif ( ($Awfif::codelet-> {l}[$myli] [36] > 0)
      && ( ( (($samesubpid) or ($jhlabeliav))#have tried to launch the subprograms
        && ((getsubptransid ($myli, $Awfif::codelet-> {l}[$myli] [36])) > 0) )#or part
        or ($reportcaspart) )#&& - This filter tries to ensure that will proceed when there are no subprograms but have completed
      && ((findtdesc ($Awfif::wsol-> {l} [ $asponsor] [2], $Awfif::memes-> {snnh} {grab})) == 0 )
      ){#push for more time for coderack

        $Awfif::memes-> {applyramp} = $Awfif::memes-> {applyramp}/2;
        $Awfif::memes-> {applycth} = $Awfif::memes-> {iapplycth} * 1.5;
        $Awfif::memes-> {applycount}--;
        };#else
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abcwso, \$$kwp, $kwpr, \@$sactset, 't', $framei);
        };#if
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ($myli);
    }# dcrdosrecordbuilder1
#
sub cassertevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# merge streams case resolved assert true cascade sponsor

    &icsevaluator1 ($myli, \&Awfif::icassertevaluator1, 'cassertbuilder', $kwp, $kwpr, \@$sactset);
    }# cassertevaluator1
#
sub icassertevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $bcount, $pdcawso, $pws, $stwso, $astwso, $twso, $asponsor, $cwsbi,
    $grkwp, $grkwpr);
#
# merge streams case resolved assert true cascade sponsor
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $e2fwso);
    $$fbinderc = ifindb ($myli, $stwso, 'pdcab', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $pdcawso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);
# find the inhibitor binding
    if ($$fbinderc == 1) {

      $bcount = ifindb ($myli, $stwso, 'e2finhibb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset, $pws);
      $e2fwso = getstsbws ($myli, $sigcount, \@lomatchs, \@lola, $pws);
      if (($bcount == 1) #call in the builder
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("icassertevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# icassertevaluator1
#
sub cassertbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# merge streams case resolved assert true cascade sponsor

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'icassertevaluator');
    $$and = 't';
    return $salience
    }# cassertbsmodeler1
#
sub cassertbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $signal, $schema, $found, $bcount, $swstype, $noswstype, $cwsbi, $bcexists, $waiting,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# merge streams case resolved assert true cascade sponsor
# checked for merged workspaces

# look for assert binder's workspace

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $found = '';
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $waiting = '';

# now check the workspace for salient workspace type with model status descriptor
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($stwso, $astwso, $giveup);
      my ($atelhwso, $usetrans, $f1transid, $f1trmgrid, $transtatus, $transid, $stransmgrid, $samesubpid, $reportcaspart, $jhlabeli, $jhlabeloi);

      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));
      $asponsor = awsoadr ($sponsor);
# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
# cassertbwons
# wait if no source or target found yet

      if ((findtdesc ($Awfif::wsol-> {l} [$astwso][2], $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {found}, ($Awfif::memes-> {snnh} {source} + $Awfif::memes-> {snnh} {wsi})) == 0)
      ){#wait

        my ($codeletdef);
        if ((findtdesc ($Awfif::wsol-> {l} [$asponsor][2], $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {found}, ($Awfif::memes-> {snnh} {source} + $Awfif::memes-> {snnh} {wsi})) == 0)
        ){

          $Awfif::wsol-> {l} [$asponsor][2]
          = setupdesc ( $Awfif::memes-> {snnh} {found},
              ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {source}), #lets start with one
              $Awfif::memes-> {snnh} {stream},
              $Awfif::wsol-> {l} [$asponsor] [2],
              $asponsor);
          &waitondesc ($myli, $astwso, ($Awfif::memes-> {snnh} {source} + $Awfif::memes-> {snnh} {wsi}), $Awfif::memes-> {snnh} {found}, $Awfif::memes-> {snnh} {stream}, undef(), undef(), undef(), undef(), \$codeletdef);
          };#if

        $waiting = 't';
        };#if
# cassertbwont

      if ((findtdesc ($Awfif::wsol-> {l} [$astwso][2], $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {found}, ($Awfif::memes-> {snnh} {target} + $Awfif::memes-> {snnh} {wsi})) == 0)
      ){#wait

        my ($codeletdef);
        if ((findtdesc ($Awfif::wsol-> {l} [$asponsor][2], $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {found}, ($Awfif::memes-> {snnh} {target} + $Awfif::memes-> {snnh} {wsi})) == 0)
        ){

          $Awfif::wsol-> {l} [$asponsor][2]
          = setupdesc ( $Awfif::memes-> {snnh} {found},
              ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {target}), #lets start with one
              $Awfif::memes-> {snnh} {stream},
              $Awfif::wsol-> {l} [$asponsor] [2],
              $asponsor);
          &waitondesc ($myli, $astwso, ($Awfif::memes-> {snnh} {target} + $Awfif::memes-> {snnh} {wsi}), $Awfif::memes-> {snnh} {found}, $Awfif::memes-> {snnh} {stream}, undef(), undef(), undef(), undef(), \$codeletdef);
          };#if

        $waiting = 't';
        };#if

      if (!$waiting) {

        $usetrans = chstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart);

        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli][20];

        if ($usetrans == 0) {
# cassertbstwsu1

          my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
          $bcount = ifindb ($myli, $sponsor, 'comparestb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't');
          if ($bcount <= 0) {#create the binder structure

            my ($buffer);
            $buffer = '<source><target>';
            &initschcon ($myli, \$buffer, \$$kwp, $kwpr, $sponsor);

            };#if
# cassertbsigu1

          $transtatus = 0;#must be defined to be set in ilaunchnc
          &ilaunchnc ($myli, $stwso, 'comparest', $Awfif::memes-> {snnh} {ecyclin}, \$giveup, $grkwp, $grkwpr, \@$sactset,
            '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
            $usetrans,
            \$transid,
            \$transtatus,
            $Awfif::codelet-> {l} [$myli][36],
            \$jhlabeli,
            \$jhlabeloi
            );
          &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
          if ($Awfif::codelet-> {l} [$myli] [36] != 0) {

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $Awfif::codelet-> {l} [$myli] [36]);
            };#if

          &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
          if ($Awfif::codelet-> {l} [$myli] [36] != 0) {

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $Awfif::codelet-> {l} [$myli] [36]);
            };#if
          }#if usetrans 0
        elsif ($usetrans > 0) {

          $usetrans = resstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, 'comparest', $usetrans, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, \$jhlabeli, $jhlabeloi);
          };#elsif
# cassertbngcu1

        if (($transtatus == $Awfif::memes-> {snnh} {incomplete})
        ){

          my ($sgdi, $gsponsor);
          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
          &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
          $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
          ¬gcompleted ($myli, $gsponsor, undef(), 't', undef (), undef(),);
          };#if
        }#if not waiting
      else {

        if ($Awfif::codelet-> {l} [$myli] [35] > 0) {#

          &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
          };#if
        };#else waiting
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# cassertbuilder1
#
#<!-- start tag stm -->
#
sub desrasstevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# describe resolved assume streams

    &icsevaluator1 ($myli, \&Awfif::idesrasstevaluator1, 'desrasstbuilder', $kwp, $kwpr, \@$sactset);
    }# desrasstevaluator1
#
sub idesrasstevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $bcount, $pdcawso, $pws, $stwso, $astwso, $twso, $asponsor, $cwsbi,
    $grkwp, $grkwpr);
#
# describe resolved assume streams
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $e2fwso);
    $$fbinderc = ifindb ($myli, $stwso, 'pdcab', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $pdcawso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);
# find the inhibitor binding
    if ($$fbinderc == 1) {

      $bcount = ifindb ($myli, $stwso, 'e2finhibb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset, $pws);
      $e2fwso = getstsbws ($myli, $sigcount, \@lomatchs, \@lola, $pws);
      if (($bcount == 1) #call in the builder
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("idesrasstevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# idesrasstevaluator1
#
sub desrasstbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# describe resolved assume streams

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'idesrasstevaluator');
    $$and = 't';
    return $salience
    }# desrasstbsmodeler1
#
sub desrasstbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture

    my ($desc2, $desc3, $desc4, $desc12, $desc13, $desc14);
    my ($sponsor, $asponsor, $signal, $schema, $found, $bcount, $swstype, $noswstype, $cwsbi, $bcexists,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# describe resolved assume streams
# checked for merged workspaces
# wait for {model}-({resolved})-> {completed} descriptor and then issue and support schematic signal

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $found = '';
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';
    $desc2 = $Awfif::memes-> {snnh} {completed};
    $desc3 = $Awfif::memes-> {snnh} {resolved};
    $desc4 = $Awfif::memes-> {snnh} {model};
    $desc12 = $Awfif::memes-> {snnh} {wait};
    $desc13 = $Awfif::memes-> {snnh} {desrasstevaluator};
    $desc14 = $Awfif::memes-> {snnh} {cwaitondesc};

    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 4)) {

      my ($stwso, $astwso, $giveup);
      my ($atelhwso, $usetrans, $f1transid, $f1trmgrid, $transtatus, $transid, $stransmgrid, $samesubpid, $reportcaspart, $jhlabeli, $jhlabeloi);

      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));
      $asponsor = awsoadr ($sponsor);
# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
# check if we are sponsoring cascade members
      $usetrans = chstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart);

      my ($counteri, $codeletdef);

      if (($usetrans == 0)
      ){#Transition the cycle phase

        my ($pws, $pdcawso, $e2ftwso, $ae2ftwso, $notcompleted);
        my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
        $bcount = ifindb ($myli, $stwso, 'pdcab', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
        $pdcawso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);
# find the inhibitor binding
        if ($bcount == 1) {

          $bcount = ifindb ($myli, $stwso, 'e2finhibb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, $pws);
          $e2ftwso = getstsbws ($myli, $sigcount, \@lomatchs, \@lola, $pws);
          if ($bcount == 1) {#check for the desc4 desc3 desc2 descriptor

            $Awfif::memes-> {currentwsbi} = $pws;
            $ae2ftwso = awsoadr ($e2ftwso);
            if (!(findcounter ($Awfif::wsol-> {l} [$ae2ftwso][2], $desc4, \$counteri, $desc2, $desc3))
            ){#note that need to/issued wait

              $notcompleted = 't';
              if ( ((!findcounter ($Awfif::wsol-> {l} [$asponsor][2], ($desc14), \$counteri, $desc12, $desc13)))
              ){

                &waitondesc ($myli, $ae2ftwso, ($desc2 + $Awfif::memes-> {snnh} {wsi}), $desc3, $desc4, undef(), undef(), undef(), undef(), \$codeletdef);
                $Awfif::wsol-> {l} [$asponsor][2]
                = inccounter ( $desc13,
                    ($Awfif::memes-> {snnh} {wsi} + $desc12), #
                    $desc14,
                    $Awfif::wsol-> {l} [$asponsor] [2],
                    $asponsor,
                    '',
                    $desc13,
                    $desc12);
                };#if
              };#if
            };#if e2f operon exists
          };#if pdca workspace exists

        if (($notcompleted)
        ){

# remove any transaction sponsorship
          if ($Awfif::codelet-> {l} [$myli] [35] > 0) {#

            &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
            };#if
          }#if not completed
        else {#wait condition completed
# desrasstbinitregu1
# can initialise the stream description regulatory structure

          if ((defined($Awfif::memes-> {desrasstarsb})) && ($Awfif::memes-> {desrasstarsb} eq $cdn)) {&break()};#if match callers name break

          if ((findcounter ($Awfif::wsol-> {l} [$asponsor][2], ($desc14), \$counteri, $desc12, $desc13))
          ){

            &maskcounter ($desc14, $asponsor, $desc12, $desc13);
            };#if
# desrasstbcstb

          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli][20];

          $transtatus = 0;#must be defined to be set in ilaunchnc
          &ilaunchnc ($myli, $stwso, 'casoppi', $Awfif::memes-> {snnh} {ecyclin}, \$giveup, $grkwp, $grkwpr, \@$sactset,
            '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
            $usetrans,
            \$transid,
            \$transtatus,
            $Awfif::codelet-> {l} [$myli][36],
            \$jhlabeli,
            \$jhlabeloi
            );
          &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
          if ($Awfif::codelet-> {l} [$myli] [36] != 0) {

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $Awfif::codelet-> {l} [$myli] [36]);
            };#if
          };#else
        }#if
      elsif ($usetrans > 0) {

        $usetrans = resstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, 'casoppi', $usetrans, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, \$jhlabeli, $jhlabeloi);
        };#elsif
# desrasstbngcu1

      if (($transtatus == $Awfif::memes-> {snnh} {incomplete})
      ){

        my ($sgdi, $gsponsor);
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
        $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
        ¬gcompleted ($myli, $gsponsor, undef(), 't', undef (), undef(),);
        };#if
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# desrasstbuilder1
#
#<!-- start tag scc -->
#
sub iwaitarelays {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $signal, $schema, $found, $bcount, $swstype, $noswstype, $cwsbi, $bcexists,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# wait for descriptor and then issue (relay) and support schematic signal
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};

    $found = '';
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';

    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 4)) {

      my ($stwso, $astwso, $giveup);
      my ($atelhwso, $usetrans, $f1transid, $f1trmgrid, $transtatus, $transid, $stransmgrid, $samesubpid, $reportcaspart, $jhlabeli, $jhlabeloi);

      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));
      $asponsor = awsoadr ($sponsor);
# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
# check if we are sponsoring cascade members
      $usetrans = chstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart);

# my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $e2ftwso);

      my ($counteri, $codeletdef);

      if (($usetrans == 0)
      ){#Transition the cycle phase
# iwaitarelayscu1

        my (@swait, $warws, $awarwso, $warbwso, $awarbwso, $i, $notcompleted);
        @swait = warfindops ($myli, $stwso, \$warws, \$warbwso, \@$sactset);
        for ($i = 1; $i <= $swait [0]; $i++){# check that each schematic strucuture has a completion descriptor

          $Awfif::memes-> {currentwsbi} = $warws;
          $awarbwso = awsoadr ($warbwso);
          $awarwso = awsoadr ($swait[$i]);
# while there is no completed resolved model wait for one
          if (!(findcounter ($Awfif::wsol-> {l} [$awarwso][2], $Awfif::memes-> {snnh} {model}, \$counteri, $Awfif::memes-> {snnh} {completed}, $Awfif::memes-> {snnh} {waitarelay}))
          ){#note that need to/issued wait

            $notcompleted = 't';
            if ( ((!findcounter ($Awfif::wsol-> {l} [$awarbwso][2], ($Awfif::memes-> {snnh} {cwaitondesc}), \$counteri, $i, $Awfif::memes-> {snnh} {waitarelay})))
            ){

              &waitondesc ($myli, $awarwso, ($Awfif::memes-> {snnh} {completed} + $Awfif::memes-> {snnh} {wsi}), $Awfif::memes-> {snnh} {waitarelay}, $Awfif::memes-> {snnh} {model}, undef(), undef(), undef(), undef(), \$codeletdef);
              $Awfif::wsol-> {l} [$awarbwso][2]
              = inccounter ( $Awfif::memes-> {snnh} {waitarelay},
                  ($Awfif::memes-> {snnh} {wsi} + $i), #each schematic operon
                  $Awfif::memes-> {snnh} {cwaitondesc},
                  $Awfif::wsol-> {l} [$awarbwso] [2],
                  $awarbwso,
                  '',
                  $Awfif::memes-> {snnh} {waitarelay},
                  $i);
              };#if
            };#if
          };#for

        if (($notcompleted)
        ){

# remove any transaction sponsorship
          if ($Awfif::codelet-> {l} [$myli] [35] > 0) {#

            &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
            };#if
          }#if not completed
        else {#wait condition completed
# waitarelaybinitregu1
# can initialise the stream description regulatory structure

          if (($Awfif::memes-> {iwaitarsb}) && ($Awfif::memes-> {iwaitarsb} eq $cdn)) {&break()};#if match callers name break
          for ($i = 1; $i <= $swait [0]; $i++){# mask the wait issued descriptor

            if ((findcounter ($Awfif::wsol-> {l} [$awarbwso][2], ($Awfif::memes-> {snnh} {cwaitondesc}), \$counteri, $i, $Awfif::memes-> {snnh} {waitarelay}))
            ){

              &maskcounter ($Awfif::memes-> {snnh} {cwaitondesc}, $awarbwso, $i, $Awfif::memes-> {snnh} {waitarelay});
              };#if
            };#for

          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli][20];

          $transtatus = 0;#must be defined to be set in ilaunchnc
          &ilaunchnc ($myli, $stwso, 'casoppi', $Awfif::memes-> {snnh} {ecyclin}, \$giveup, $grkwp, $grkwpr, \@$sactset,
            '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
            $usetrans,
            \$transid,
            \$transtatus,
            $Awfif::codelet-> {l} [$myli][36],
            \$jhlabeli,
            \$jhlabeloi
            );
          &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
          if ($Awfif::codelet-> {l} [$myli] [36] != 0) {

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $Awfif::codelet-> {l} [$myli] [36]);
            };#if
          };#else
        }#if
      elsif ($usetrans > 0) {

        $usetrans = resstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, 'casoppi', $usetrans, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, \$jhlabeli, $jhlabeloi);
        };#elsif

      if (($transtatus == $Awfif::memes-> {snnh} {incomplete})
      ){

        my ($sgdi, $gsponsor);
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
        $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
        ¬gcompleted ($myli, $gsponsor, undef(), 't', undef (), undef(),);
        };#if
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# iwaitarelays
#
#<!-- end tag scc -->
#
sub dcrdowarsevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# wait for descriptor and then issue (relay) and support schematic signal

    &icsevaluator1 ($myli, \&Awfif::idcrdowarsevaluator1, 'dcrdowarsbuilder', $kwp, $kwpr, \@$sactset);
    }# dcrdowarsevaluator1
#
sub idcrdowarsevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $bcount, $pdcawso, $pws, $stwso, $astwso, $twso, $asponsor, $cwsbi,
    $grkwp, $grkwpr);
#
# wait for descriptor and then issue (relay) and support schematic signal
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $e2fwso);
    $$fbinderc = ifindb ($myli, $stwso, 'pdcab', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $pdcawso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);
# find the inhibitor binding
    if ($$fbinderc == 1) {

      $bcount = ifindb ($myli, $stwso, 'e2finhibb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset, $pws);
      $e2fwso = getstsbws ($myli, $sigcount, \@lomatchs, \@lola, $pws);
      if (($bcount == 1) #call in the builder
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("idcrdowarsevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# idcrdowarsevaluator1
#
sub dcrdowarsbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# wait for descriptor and then issue (relay) and support schematic signal

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'idcrdowarsevaluator');
    $$and = 't';
    return $salience
    }# dcrdowarsbsmodeler1
#
sub dcrdowarsbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($cws, $bcwso);
# deploy case resolved do phase completing wait and relay codelet


    &iwaitarelays ($myli, \$$kwp, $kwpr, \@$sactset);
    }# dcrdowarsbuilder1
#
#<!-- end tag stm -->
#<!-- end tag ds -->
#
sub lbstreamevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture

    &icsevaluator1 ($myli, \&Awfif::ilbstreamevaluator1, 'lbstreambuilder', $kwp, $kwpr, \@$sactset, 't');
    }# lbstreamevaluator1
#
sub ilbstreamevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc, $spi, $ssgws, $ssgoid) = @_;
    my ($dolaunch, $stwso, $astwso, $twso, $asponsor, $cwsbi, $sponsortype, $usetrans, $bcwso, $abcwso, $cws, $sldesc, $stnws, $stnwsoid, $file, $subpid,
    $grkwp, $grkwpr);
#
# load bound stream codelet
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge);
    if ( ($$fbinderc = ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset) == 1)
    ){#

      $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
      my ($count, $descfits, $conforms);
      $Awfif::memes-> {currentwsbi} = $cws;
      $usetrans = 0;#must be defined to be setup in gettmgr
      $subpid = $Awfif::codelet-> {l} [$myli] [36];
      &gettmgr ($myli, $asponsor, $Awfif::memes-> {snnh} {stran}, \$usetrans, \$subpid);

      if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
      && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
      && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})) != 0 )
      && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$Awfif::memes-> {currentwsbi}], $Awfif::wsbl-> {wsft} [$Awfif::memes-> {currentwsbi}],
        $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {stream},
        $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {file} )>0))
      && ($conforms)
      && ($descfits)
      or ( ($usetrans != 0)) #must continue the transaction
      && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
      ){#launch builder

        $$ssgoid = $Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi};
# lbstreamedmcu1
        $file = getnamefqpair ($myli, $sldesc, \$stnws, \$stnwsoid, 't');
# setup the global temporary file buffer for use by the builder which should free it (delsp)
        if (($file ne '' )
        ) {# got buffer

          $dolaunch = 't';
# lbstreamedcdu1
# deploy catalysis descriptor in $cws
          if ((findtdesc ($Awfif::wsol-> {l} [$abcwso] [2], $Awfif::memes-> {snnh} {catalysis}) == 0 )
          ){

# allow catalysis requests for the bound complex
            $Awfif::wsol-> {l} [$abcwso][2]
            = setupdesc ( (0),
                (0),
                $Awfif::memes-> {snnh} {catalysis},
                $Awfif::wsol-> {l} [$abcwso] [2],
                $abcwso);
            };#if
          };#if
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("ilbstreamevaluatorx spi ($$spi) ssgws ($$ssgws) ssgoid ($$ssgoid) ret ($dolaunch)\n");
      };
    return $dolaunch
    }# ilbstreamevaluator1
#
sub lbstreambsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# load bound stream codelet

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'ilbstreamevaluator');
    $$and = 't';
    return $salience
    }# lbstreambsmodeler1
#
sub lbstreambuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $signal, $schema, $found, $spi, $ssgws, $ssgoid, $buffer,
    $count, $insymbol, $cwsbi, $grkwp, $grkwpr, $stwso, $astwso, $stream, $conforms, $handlestop,
    @started, $end, $depstag, $depttag, $dephtag, $cdn, $cdnx, $setwsclinv, $noswstype, $swstype);
    my ($sldesc, $bdwso, $abdwso, $descfits, $cws, $aws, $catalysis);
# load bound stream codelet

    $cwsbi = $Awfif::memes-> {currentwsbi};
# lbstreambgcu1
    $noswstype = 't';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      $asponsor = awsoadr ($sponsor);
      $found = '';
      $started[0] = 0;
      $started[1] = 't';
      $end = '';
      $depstag = '';
      $depttag = 0;
      $dephtag = 0;
      $setwsclinv = '';
      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli][20];
      $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);

# spi references the global temporary file buffer for use by the builder which should free it (delsp)
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, @inmsymbol);
      if ( (ifindb ($myli, $sponsor, 'binderc', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        $Awfif::memes-> {currentwsbi} = $cws;
# lbstreambhbu1

        &bindhistone ($myli, $cws, $bdwso);
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abdwso = awsoadr ($bdwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + $Awfif::codelet-> {l} [$myli][6]))
        && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi})) != 0 )
        && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$Awfif::memes-> {currentwsbi}], $Awfif::wsbl-> {wsft} [$Awfif::memes-> {currentwsbi}],
          $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {stream},
          $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {file} )>0))
        && ($conforms)
        && ($descfits)
        ) {# got buffer

          my ($wsi, $file, $attribs);# got buffer
# lbstreambhstopu1
          $handlestop = 't';
# setup the global temporary file buffer for use by the builder which should free it (delsp)
          my ($transtatus, $stnws, $stnwsoid);
          $ssgoid = $Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi};
          $file = getnamefqpair ($myli, $sldesc, \$stnws, \$stnwsoid, 't');
          if (($file ne '' )
          && (($spi = addsp ($sponsor)) != 0)
          ) {# got buffer

            &initarray ($Awfif::aspl-> {l}[$spi][2]);
            $Awfif::aspl-> {l}[$spi][3] = 0;#no records yet
            &includesource (
              $file,
              \@{$Awfif::aspl-> {l}[$spi][2]},
              \$Awfif::aspl-> {l}[$spi][3]
              );
            if ($Awfif::aspl-> {l}[$spi][3] > 0) {#lets process the temporary buffer

              $ssgws = $stnws;
              };#if
            if ( (($count = ipartseqcount ('onematch', $myli, ($ssgoid), trwsoadr($ssgoid, 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$ssgws], $Awfif::wsbl-> {wsft} [$ssgws],
              $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {record} )>0))
            && ($conforms)
            && ($descfits)
            ){#this is a record so it has a completion procedure

              $handlestop = '';
              }; #check if must handle the stop structure
            $insymbol = '';
            @inmsymbol = ();
# setup a workspace for the deployment

            $wsi = setupws();
            $Awfif::wsbl-> {wsactive}[$wsi] = '';#this workspace will not be processed by coderack
# record the ws index
            $Awfif::aspl-> {ws} [$spi] = $wsi;
# inform the controlling statement

            $attribs = addattrib ($Awfif::memes-> {snnh} {attribs},'');
            &addattrib ($Awfif::memes-> {snnh} {attrib}, $Awfif::memes->{snnh}{stream}, '');
            &addattrib ($Awfif::memes-> {snnh} {attrib}, $wsi, '');
            &addattrib ($Awfif::memes-> {snnh} {attrib}, $sponsor, '');
            &addattrib ($Awfif::memes-> {snnh} {attrib}, $ssgoid, '');
            &addattrib ($Awfif::memes-> {snnh} {attrib}, $ssgws, '');
            &addattrib ($Awfif::memes-> {snnh} {attribe},'');
            $Awfif::memes-> {currentwsbi} = $ssgws;
            $stream = $Awfif::memes-> {snnh}{stream};
            if ( chmdefis ($myli, $ssgoid, $Awfif::memes-> {snnh}{target}, \$conforms, $$kwp, $kwpr,)
            ){

              $stream = $Awfif::memes-> {snnh}{target};
              }#if
            elsif ( chmdefis ($myli, $ssgoid, $Awfif::memes-> {snnh}{source}, \$conforms, $$kwp, $kwpr,)
            ){

              $stream = $Awfif::memes-> {snnh}{source};
              }#if

            $Awfif::wsol-> {l} [$astwso][2]
              = setupdesc ( $Awfif::memes-> {snnh} {attrib},
                  ($Awfif::memes-> {snnh} {wsi} + $attribs),
                  $stream,
                  $Awfif::wsol-> {l} [$astwso][2],
                  $astwso);
#deploy stream - (found) -> source|target descriptor for any waiting application do cascade codelet

            $Awfif::wsol-> {l} [$astwso][2]
              = setupdesc ( $Awfif::memes-> {snnh} {found},
                  ($Awfif::memes-> {snnh} {wsi} + $stream),
                  $Awfif::memes-> {snnh} {stream},
                  $Awfif::wsol-> {l} [$astwso][2],
                  $astwso,
                  't');

            foreach $buffer (@{$Awfif::aspl-> {l}[$spi][2]}) {
              &convbws ($myli, \$buffer, \$grkwp, $grkwpr, $Awfif::memes-> {kwmi}, $Awfif::memes-> {kwmir}, $sponsor, \$insymbol, \@inmsymbol, \@started, \$end, \$depstag, \$depttag, \$dephtag, $wsi, $Awfif::memes-> {snnh} {operon}, $Awfif::memes-> {allwsstr},
                't', #energize the base types
                \$setwsclinv
                );
              };#transform the file into work space objects
# lbstreambftu1

            $Awfif::wsbl-> {wsft} [$wsi] = $Awfif::wsbl-> {wsot}[$wsi];#these don't strip

            $Awfif::memes-> {fatp} = $Awfif::memes-> {fatp} + $Awfif::memes-> {batp};
            &freesp ($spi);# release the file buffer
# lbstreambctu1
            if ($Awfif::codelet-> {l} [$myli] [35] != 0) {

              &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$transtatus);
              };#if
# lbstreambmcompu1

            &getnamefqpair ($myli, $sldesc, \$stnws, \$stnwsoid);
# lbstreambgau1
# Don't catalyse lbstreambuilder
# lbstreambhstopu2

            if ($handlestop
            ){

              my ($finished);
              $finished = '';
              while (!$finished
              ){

                $Awfif::memes-> {currentwsbi} = $cws;
                $abdwso = awsoadr ($bdwso);
                if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ awsoadr ($bdwso)] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
                && ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
                && ( ($Awfif::memes-> {currentwsbi} = ($aws = ($Awfif::workspace-> {l} [$sldesc] [3] - $Awfif::memes-> {snnh} {wsi}))) != 0 )
                && (($count = ipartseqcount ('onematch', $myli, ($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), trwsoadr(($Awfif::workspace-> {l} [$sldesc] [2] - $Awfif::memes-> {snnh} {wsi}), 1), \$descfits, \$conforms, $Awfif::wsbl-> {wsoh} [$aws], $Awfif::wsbl-> {wsft} [$aws],
                  $Awfif::memes-> {snnh} {tokencategory}, $Awfif::memes-> {snnh} {stream},
                  $Awfif::memes-> {snnh} {andcategory}, $Awfif::memes-> {snnh} {stop} )>0))
                && ($conforms)
                && ($descfits)
                ){#have found the stop for the value

                  $finished = 't';
                  $end = movecomplex ($myli, $sldesc, 1, $abdwso);
                  }# if
                else {

                  if (($end = movecomplex ($myli, $sldesc, 1, $abdwso)) == 0
                  ){

                    $finished = 't';
                    };#if
                  };#else
                };#while
              }# if handle stop
            else {
# move the workspace position

              $end = movecomplex ($myli, $sldesc, 1, $abdwso);
              };# else don't handle stop
# lbstreambisku1

            &iskipw ($myli, $sldesc, $cws, $aws, $abdwso);
            };#if
          };#if
        };#if
# lbstreambgau2
      if ($catalysis) {

        &applycodelet ($myli, $sldesc, $cws, $abdwso, \$$kwp, $kwpr, \@$sactset);
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# lbstreambuilder1
#
sub uwarsevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# use wait and relay codelet

    &icsevaluator1 ($myli, \&Awfif::iuwarsevaluator1, 'uwarsbuilder', $kwp, $kwpr, \@$sactset);
    }# uwarsevaluator1
#
sub iuwarsevaluator1 {
    my ($myli, $sponsor, $signal, $schema, $swstype, $kwp, $kwpr, $sactset, $noswstype, $fbinderc) = @_;#bsmodeler requires the ignored parameters for its general interface
    my ($dolaunch, $bcount, $pdcawso, $pws, $stwso, $astwso, $twso, $asponsor, $cwsbi,
    $grkwp, $grkwpr);
#
# use wait and relay codelet
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $dolaunch = '';
    $twso = trwsoadr (fgrpend ($sponsor), 1);
    $asponsor = awsoadr ($sponsor);

    $stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr);
    $astwso = awsoadr ($stwso);
    my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $e2fwso);
    $$fbinderc = ifindb ($myli, $stwso, 'pdcab', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset);
    $pdcawso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$pws);
# find the inhibitor binding
    if ($$fbinderc == 1) {

      $bcount = ifindb ($myli, $stwso, 'e2finhibb', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $kwp, $kwpr, \@$sactset, $pws);
      $e2fwso = getstsbws ($myli, $sigcount, \@lomatchs, \@lola, $pws);
      if (($bcount == 1) #call in the builder
      ){#launch builder
        $dolaunch = 't';
        };#if
      };#if
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("iuwarsevaluatorx ret ($dolaunch)\n");
      };
    return $dolaunch
    }# iuwarsevaluator1
#
sub uwarsbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# use wait and relay codelet

    $salience = ievalbsmodeler1 ($myli, \$$kwp, $kwpr, \@$sactset, \$$and, 'iuwarsevaluator');
    $$and = 't';
    return $salience
    }# uwarsbsmodeler1
#
sub uwarsbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($cws, $bcwso);
# use wait and relay codelet


    &iwaitarelays ($myli, \$$kwp, $kwpr, \@$sactset);
    }# uwarsbuilder1
#
sub lbstreamcompevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
# load bound stream complete codelet

    &iunbindevaluator1 ($myli, 'lbstreamcompbuilder', \$$kwp, $kwpr, \@$sactset);
    }# lbstreamcompevaluator1
#
sub lbstreamcompbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $asponsor, $signal, $schema, $found, $bcount, $swstype, $noswstype, $cwsbi, $bcexists,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# load bound stream complete codelet
# checked for merged workspaces

# wait for descriptor and then issue and support schematic signal

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $found = '';
    $bcount = 0;
    $noswstype = 't';
    $bcexists = '';

    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 4)) {

      my ($stwso, $astwso, $giveup);
      my ($atelhwso, $usetrans, $f1transid, $f1trmgrid, $transtatus, $transid, $stransmgrid, $samesubpid, $reportcaspart, $jhlabeli, $jhlabeloi);

      $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
      $atelhwso = awsoadr (trwsoadr ($sponsor,-1));
      $asponsor = awsoadr ($sponsor);
# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
# check if we are sponsoring cascade members
      $usetrans = chstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart);

      if (($usetrans == 0)
      ){#

        my ($cws, $bcwso);
        $bcwso = 0;#initialise so will be set in icompletesc
        if ( icompletesc ($myli, $Awfif::codelet-> {l} [$myli] [2], $sponsor, \$cws, \$$kwp, $kwpr, \@$sactset, \$bcwso)
        ){
# lbstreamcompbhbu1

          &bindhistone ($myli, $cws, $bcwso);
          &depwardesc ($myli, $stwso, 'warmsb', \@$sactset);#deploy descriptor allowing waiting codelets to proceed
          $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli][20];
# lbstreamcompbsigu1

          $transtatus = 0;#must be defined to be set in ilaunchnc
          &ilaunchnc ($myli, $stwso, 'casopai', $Awfif::memes-> {snnh} {ecyclin}, \$giveup, $grkwp, $grkwpr, \@$sactset,
            '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
            $usetrans,
            \$transid,
            \$transtatus,
            $Awfif::codelet-> {l} [$myli][36],
            \$jhlabeli,
            \$jhlabeloi
            );
          &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
          if ($Awfif::codelet-> {l} [$myli] [36] != 0) {

            &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {rtran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $Awfif::codelet-> {l} [$myli] [36]);
            };#if
          };#if found 'unbind' sequence
        }#if
      elsif ($usetrans > 0) {

        $usetrans = resstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, 'casopai', $usetrans, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, \$jhlabeli, $jhlabeloi);
        };#elsif

      if (($transtatus == $Awfif::memes-> {snnh} {incomplete})
      ){

        my ($sgdi, $gsponsor);
        $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
        &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes->{snnh}{groupcategory});
        $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});
        ¬gcompleted ($myli, $gsponsor, undef(), 't', undef (), undef(),);
        };#if
      };#got target wso

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# lbstreamcompbuilder1
#
sub stbindevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# schbind builder inversion
# checked for merged workspaces

# schematic binding codelet responds to group complete that includes a tailoring operon
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {
      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);

      if ( (ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      && (ifindb ($myli, $sponsor, 'bindercst', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't') <= 0)
      ){#launch builder

        $Awfif::clp = ();
        $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
        $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
        if (defined ($Awfif::codelet-> {l}[$myli][19])) {
          $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
          }#wsi set
        else {
          $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
          };
        $Awfif::clp-> {strategy} = "stbindbuilder";
        $Awfif::clp-> {action}-> {sponsor} = $sponsor;
        $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
        $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
        $Awfif::clp-> {action}-> {ref} = $spi;
        $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
        $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
        $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
        &groupsinv1 ($myli, undef(), undef(), undef(), undef(),undef(), "stbindbuilder", $$kwp, $kwpr, \@$sactset);
        };
      };#got buffer

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# stbindevaluator1
#
sub stbindbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# schbind builder inversion
    if ((defined ($kwp))
    && ($kwp == 1)
    ) {
      print ("myli $myli kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) \n");
      };#if

    $salience = $Awfif::memes-> {bnotsalient};
    $$and = 't';
    return $salience
    }# stbindbsmodeler1
#
sub stbindbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
#
# schbind builder inversion

    &ischbindbuilder1 ($myli, 'bindercst', \$$kwp, $kwpr, \@$sactset, $Awfif::memes-> {stbbpersist}, 0);
    }# schbindbuilder1
#
sub indslocevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $abcwso, $sponsortype, $cwsbi,
    $usetrans, $subpid, $transtatus, $stransmgrid, $reportcaspart, $f1transid, $f1trmgrid, $samesubpid, $transid,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# start locator codelet responds to group complete providing application specific location support to the binder
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);
      if ( (ifindb ($myli, $sponsor, 'bindercst', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't') == 1)
      ){#look for structural workspace position descriptor

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        $Awfif::memes-> {currentwsbi} = $cws;
        $usetrans = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $usetrans = chstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, 'bindercst');
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ( ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0))
# and check have not reached end of stream

        && (!findbond ($Awfif::wsol-> {l} [ $abcwso][2], 0, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {eos}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# indsloceiau1

        && (findtdesc ($Awfif::wsol-> {l} [ $abcwso ] [2], $Awfif::memes-> {snnh} {iappkwid}) == 0 ) #indsloc builder writes this when it sets up the wsposition
# or the application structural context head does not have a casinit
# context is cws: bcwso
# head is listhead-> lhdesc

        or ( ($usetrans != 0)) #must continue the transaction
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        )
        ){#launch builder

          $Awfif::memes-> {currentwsbi} = $cwsbi;
          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# indsloceifuu1

          if ((ifindupri ($myli, $sponsor))
          && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype)))
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
            &dropsalience ($myli, $sponsor);
            }#if
          else {
            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "indslocbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(),undef(), "indslocbuilder", $$kwp, $kwpr, \@$sactset);
          };#if
        }#if
      else {
# see if can recover or mask suppressor

        if (!promotesib ($myli)) {

          &imasksupp ($myli);
          };#if
        };#else
      };#got buffer

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# indslocevaluator1
#
sub indslocbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# start locator codelet responds to group complete providing application specific location support to the binder
    if ((defined ($kwp))
    && ($kwp == 1)
    ) {
      print ("myli $myli kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) \n");
      };#if

    $salience = $Awfif::memes-> {bnotsalient};
    $$and = 't';
    return $salience
    }# indslocbsmodeler1
#
sub indslocbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $abcwso, $abdwso, $sponsortype, $cwsbi,
    $usetrans, $subpid, $transid, $transtatus, $stransmgrid, $atelhwso, $gsponsor, $reportcaspart, $f1transid, $f1trmgrid, $samesubpid, $jhlabeli, $jhlabeloi,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
# start locator codelet responds to group complete providing application specific location support to the binder
# it is a cascade supporting codelet so it will re-enter until the phase it is sponsoring has completed
# however, it should only set the location once
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      my ($lhwso, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $stwso, $astwso, $twso, $asponsor, $sldesc, $cws, $dws, $bcwso, $bdwso, $lhdesc);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      if ( (ifindb ($myli, $sponsor, 'bindercst', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);

        $Awfif::memes-> {currentwsbi} = $cws;
# indslocbchstu1
        $usetrans = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $usetrans = chstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, 'bindercst');
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ( ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0))
# and check have not reached end of stream
        && (!findbond ($Awfif::wsol-> {l} [ $abcwso][2], 0, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {eos}))
# and check have not had an unbind
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# or the application structural context head does not have a casinit
# context is cws: bcwso
# head is listhead-> lhdesc

        or ( ($usetrans != 0)) #must continue the transaction
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# findtdesc on lhdesc fails to find casinit
        or ($lhdesc != 0 )
        && (($lhwso = ($Awfif::workspace-> {l} [$lhdesc][2] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$lhdesc][3] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($lhwso)] [2], $Awfif::memes-> {snnh} {casinit}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        )
        ){#identify start position
# This indirect start locator will identify the indirect stream by assuming an association between its schematic string and a source|target - (attrib ) -> attrib start address descriptor
# in the statement workspace object

          if ($usetrans == 0){
            my ($aws, $awso, $found, $istream, $istreamdesc, $atti);
            if ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0)) {
              $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
              $istream = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli] [21],2));
              $istreamdesc = findtdesc ($Awfif::wsol-> {l} [ $astwso] [2], $istream);
              $atti = ($Awfif::workspace-> {l} [$istreamdesc] [2] - $Awfif::memes-> {snnh} {wsi});
              $atti = $Awfif::attribs-> {l} [$atti][1];#move past the start attribute
              $atti = $Awfif::attribs-> {l} [$atti][1];#move past the stream
              $aws = $Awfif::attribs-> {l} [$atti][3];#note the wsi
              $Awfif::memes-> {currentwsbi} = $aws;
# serially traverse the workspace looking for the start structure

              $awso = $Awfif::wsbl-> {wsft} [$aws];
              $found = 't';
# setup the wsposition descriptor

              if ($found) {
# indslocbhbu1

                &bindhistone ($myli, $cws, $bcwso);
                $Awfif::workspace-> {l} [$sldesc] [2] = $awso + $Awfif::memes-> {snnh} {wsi};
                $Awfif::workspace-> {l} [$sldesc] [3] = $aws + $Awfif::memes-> {snnh} {wsi};
# record the keyword so that other codelets can use it for context
# indslocbiau1

                $Awfif::memes-> {currentwsbi} = $cws;
                $abcwso = awsoadr ($bcwso);
                $Awfif::wsol-> {l} [$abcwso][2]
                = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $aws),
                    ($Awfif::memes-> {snnh} {wsi} + $awso),
                    $Awfif::memes-> {snnh} {iappkwid},
                    $Awfif::wsol-> {l} [$abcwso] [2],
                    $abcwso);
# indslocbshwspu1

                $Awfif::wsol-> {l} [$abcwso][2]
                = setupdesc ( (0 + $Awfif::memes-> {snnh} {wsi}),
                    (0 + $Awfif::memes-> {snnh} {wsi}),
                    $Awfif::memes-> {snnh} {shwsposition},
                    $Awfif::wsol-> {l} [$abcwso] [2],
                    $abcwso);
                my ($sponsortype);
# so should terminate the codelet sponsorship of the cascade

                $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
                ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
# obtain the binder structural ws
                $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$dws);

                $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
                $sponsortype = wsbasetype ($sponsor);
                $Awfif::memes-> {currentwsbi} = $dws;
                $abdwso = awsoadr ($bdwso);

                if ((!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $Awfif::memes-> {snnh} {indslocevaluator}, $Awfif::memes-> {snnh} {model})) ){
                  $Awfif::wsol-> {l} [$abdwso][2]
                  = setupdesc ( ($Awfif::memes-> {snnh} {indslocevaluator}),
                      ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {casbound}),
                      $Awfif::memes-> {snnh} {model},
                      $Awfif::wsol-> {l} [$abdwso] [2],
                      $abdwso);
# allow catalysis requests for the bound complex
                  $Awfif::wsol-> {l} [$abcwso][2]
                  = setupdesc ( (0),
                      (0),
                      $Awfif::memes-> {snnh} {catalysis},
                      $Awfif::wsol-> {l} [$abcwso] [2],
                      $abcwso);
                  };#if
                };#if
              };#if start is still at zero
# become the sponsor of the cascade opp's start
# The builder [mps] signals the nucleus <codelet 21 wso> <schema> [<wso 'string' from schema>]
            my ($giveup);

            $Awfif::memes-> {currentwsbi} = $cwsbi;
            $transtatus = 0;
            &ilaunchnc ($myli, $bcwso, 'casopai', $Awfif::memes-> {snnh} {casinopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
              '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
              $usetrans,
              \$transid,
              \$transtatus,
              undef (), #subprogram
              undef (), #jhlabeli
              undef (), #jhlabeloi
              undef (), #newli
              undef (), #hiurg
              undef (), #usepooling
              ( (ifindupri ($myli, $sponsor)) && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype))) )#buildoffurg
              );
            if (($usetrans == 0) && (defined ($transid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete}))) ){#record the transid

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {stran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $Awfif::codelet-> {l} [$myli] [36]);
              };#if
# now want to ungroup if don't find cascade in list in app str workspace list head
# get the app str ws
# indslocbifuu1

            &initiateself ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsor);
            if ($Awfif::codelet-> {l} [$myli] [35] != 0) {

              my ($transtatus);
              &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
              };#if
            }#if
          else {#may need to support cascade
# indslocbifuu2

            $Awfif::memes-> {currentwsbi} = $cwsbi;
            $usetrans = resstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, 'casopai', $usetrans, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, \$jhlabeli, $jhlabeloi,
                ( (ifindupri ($myli, $sponsor)) && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype))) )#buildoffurg
                );
            if ( (&transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus) == $transid)
            && ($transtatus == $Awfif::memes-> {snnh} {incomplete}) #bcsubps transaction is not completed
            ){
# mp signal the sub-program

              my ($sgdi);
              &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor});
              $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
              &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes-> {snnh} {groupcategory} );
              $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});

              ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),'t');# sponsor should be one after telomeric header
              }#if still need to signal subprogram
            else {#update cassponsorship

              &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor});
              };#if
            };#else
          }#if
        else {#can't operate currently release the suppressor
          &imasksupp ($myli);
          };#else
        }
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {
        $astwso = awsoadr ($stwso);
        $Awfif::wsol-> {l} [$astwso][2]
        = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
        };
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer
# and switch back to current context
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# indslocbuilder1
#
sub shslocevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $abcwso, $sponsortype, $cwsbi,
    $usetrans, $subpid, $transtatus, $stransmgrid, $reportcaspart, $f1transid, $f1trmgrid, $samesubpid, $transid,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# shadow start locator codelet responds to group complete providing shadow location setup support to the binder
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $cws, $bcwso, $lhdesc, $lhwso);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);
      if ( (ifindb ($myli, $sponsor, 'bindercst', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't') == 1)
      ){#look for structural workspace position descriptor
# &updatelog ($myli,'ae', 5, $file);

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        $Awfif::memes-> {currentwsbi} = $cws;
        $usetrans = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $usetrans = chstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, 'bindercst');
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {shwsposition})) != 0 )
        && ( ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0))
# and check have not reached end of stream

        && (!findbond ($Awfif::wsol-> {l} [ $abcwso][2], 0, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {eos}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))

        && (findtdesc ($Awfif::wsol-> {l} [ $abcwso ] [2], $Awfif::memes-> {snnh} {shappkwid}) == 0 ) #indsloc builder writes this when it sets up the wsposition
# or the application structural context head does not have a casinit
# context is cws: bcwso
# head is listhead-> lhdesc

        or ( ($usetrans != 0)) #must continue the transaction
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        or ($lhdesc != 0 )
        && (($lhwso = ($Awfif::workspace-> {l} [$lhdesc][2] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$lhdesc][3] - $Awfif::memes-> {snnh} {wsi})) != 0)
        &&(!findbond ($Awfif::wsol-> {l} [ awsoadr ($lhwso)] [2], $Awfif::memes-> {snnh} {casinit}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {icompdevaluator}))
        )
        ){#launch builder

          $Awfif::memes-> {currentwsbi} = $cwsbi;
          $Awfif::clp = ();
          $Awfif::clp-> {log} = $Awfif::codelet-> {l} [$myli][13];
# shsloceifuu1

          if ((ifindupri ($myli, $sponsor))
          && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype)))
          ){#

            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] / $Awfif::memes-> {pappbu});
            &dropsalience ($myli, $sponsor);
            }#if
          else {
            $Awfif::clp-> {urgency} = ($Awfif::codelet-> {l} [$myli][3] * $Awfif::memes-> {blaunchm});
            };#else
          if (defined ($Awfif::codelet-> {l}[$myli][19])) {

            $Awfif::clp-> {wsi} = $Awfif::codelet-> {l}[$myli][19];
            }#wsi set
          else {

            $Awfif::clp-> {wsi} = $Awfif::memes-> {currentwsbi};
            };
          $Awfif::clp-> {strategy} = "shslocbuilder";
          $Awfif::clp-> {action}-> {sponsor} = $sponsor;
          $Awfif::clp-> {action}-> {signal} = $Awfif::codelet-> {l} [$myli][16];
          $Awfif::clp-> {action}-> {schema} = $Awfif::codelet-> {l} [$myli][18];
          $Awfif::clp-> {action}-> {ref} = $spi;
          $Awfif::clp-> {action}-> {sws} = $Awfif::codelet-> {l} [$myli] [20];
          $Awfif::clp-> {action}-> {wss} = $Awfif::codelet-> {l} [$myli][21];
          $Awfif::clp-> {action}-> {wse} = $Awfif::codelet-> {l} [$myli][22];
          &groupsinv1 ($myli, undef(), undef(), undef(), undef(),undef(), "shslocbuilder", $$kwp, $kwpr, \@$sactset);
          };#if
        }#if
      else {
# see if can recover or mask suppressor

        if (!promotesib ($myli)) {

          &imasksupp ($myli);
          };#if
        };#else
      };#got buffer

    $Awfif::memes-> {currentwsbi} = $cwsbi;
    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# shslocevaluator1
#
sub shslocbsmodeler1 {
    my ($myli, $kwp, $kwpr, $sactset, $and) = @_;
    my ($salience);
# shadow start locator codelet responds to group complete providing shadow location setup support to the binder
    if ((defined ($kwp))
    && ($kwp == 1)
    ) {
      print ("myli $myli kwp($kwp) kwpr($kwpr) sactset($$sactset[0]) \n");
      };#if

    $salience = $Awfif::memes-> {bnotsalient};
    $$and = 't';
    return $salience
    }# shslocbsmodeler1
#
sub shslocbuilder1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $swstype, $noswstype, $abcwso, $abdwso, $sponsortype, $cwsbi,
    $usetrans, $subpid, $transid, $transtatus, $stransmgrid, $reportcaspart, $f1transid, $f1trmgrid, $samesubpid, $jhlabeli, $jhlabeloi,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
# shadow start locator codelet responds to group complete providing application specific shadow location support to the binder
# it is a cascade supporting codelet so it will re-enter until the phase it is sponsoring has completed
# however, it should only set the location once
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      my ($lhwso, $sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $stwso, $astwso, $twso, $asponsor, $sldesc, $cws, $dws, $bcwso, $bdwso, $lhdesc);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);

# Find the statement wso and obtain the statement's wso type
      $stwso = igetmynowner ($myli, $sponsor, 'bustatement', $grkwp, $grkwpr);
      $astwso = awsoadr ($stwso);
      if ( (ifindb ($myli, $sponsor, 'bindercst', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset) == 1)
      ){#

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);

        $Awfif::memes-> {currentwsbi} = $cws;
        $usetrans = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $usetrans = chstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, 'bindercst');
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [ ($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {shwsposition})) != 0 )
        && ( ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0))
# and check have not reached end of stream
        && (!findbond ($Awfif::wsol-> {l} [ $abcwso][2], 0, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {eos}))
# and check have not had an unbind
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# or the application structural context head does not have a casinit
# context is cws: bcwso
# head is listhead-> lhdesc

        or ( ($usetrans != 0)) #must continue the transaction
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
# findtdesc on lhdesc fails to find casinit
        or ($lhdesc != 0 )
        && (($lhwso = ($Awfif::workspace-> {l} [$lhdesc][2] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [$lhdesc][3] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($lhwso)] [2], $Awfif::memes-> {snnh} {casinit}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))
        )
        ){#identify start position
# This shadow start locator will identify the indirect stream by assuming an association between its schematic string and a source|target - (attrib ) -> attrib start address descriptor
# in the statement workspace object

          if ($usetrans == 0){

            my ($aws, $awso, $found, $istream, $istreamdesc, $atti);
            if ($Awfif::workspace-> {l} [$sldesc] [2] == ($Awfif::memes-> {snnh} {wsi} + 0)) {

              $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
              $istream = wsbasetype (trwsoadr ($Awfif::codelet-> {l} [$myli] [21],3));
              $istreamdesc = findtdesc ($Awfif::wsol-> {l} [ $astwso] [2], $istream);
              $atti = ($Awfif::workspace-> {l} [$istreamdesc] [2] - $Awfif::memes-> {snnh} {wsi});
              $atti = $Awfif::attribs-> {l} [$atti][1];#move past the start attribute
              $atti = $Awfif::attribs-> {l} [$atti][1];#move past the stream
              $aws = $Awfif::attribs-> {l} [$atti][3];#note the wsi
              $Awfif::memes-> {currentwsbi} = $aws;
# serially traverse the workspace looking for the start structure

              $awso = $Awfif::wsbl-> {wsft} [$aws];
              $found = 't';
# setup the wsposition descriptor

              if ($found) {
# shslocbhbu1

                &bindhistone ($myli, $cws, $bcwso);
                $Awfif::workspace-> {l} [$sldesc] [2] = $awso + $Awfif::memes-> {snnh} {wsi};
                $Awfif::workspace-> {l} [$sldesc] [3] = $aws + $Awfif::memes-> {snnh} {wsi};
# record the keyword so that other codelets can use it for context

# shslocbshau1
                $Awfif::memes-> {currentwsbi} = $cws;
                $abcwso = awsoadr ($bcwso);
                $Awfif::wsol-> {l} [$abcwso][2]
                = setupdesc ( ($Awfif::memes-> {snnh} {wsi} + $aws),
                    ($Awfif::memes-> {snnh} {wsi} + $awso),
                    $Awfif::memes-> {snnh} {shappkwid},
                    $Awfif::wsol-> {l} [$abcwso] [2],
                    $abcwso);
                my ($sponsortype);
# so should terminate the codelet sponsorship of the cascade

                $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
                ifindb ($myli, $sponsor, 'binderp1', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset);
# obtain the binder structural ws
                $bdwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$dws);

                $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
                $sponsortype = wsbasetype ($sponsor);
                $Awfif::memes-> {currentwsbi} = $dws;
                $abdwso = awsoadr ($bdwso);

                if ((!findbond ($Awfif::wsol-> {l} [ $abdwso][2], $Awfif::memes-> {snnh} {casbound}, $sponsortype, $Awfif::memes-> {snnh} {model})) ){

                  $Awfif::wsol-> {l} [$abdwso][2]
                  = setupdesc ( ($sponsortype),
                      ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {casbound}),
                      $Awfif::memes-> {snnh} {model},
                      $Awfif::wsol-> {l} [$abdwso] [2],
                      $abdwso);
# allow catalysis requests for the bound complex
                  $Awfif::wsol-> {l} [$abcwso][2]
                  = setupdesc ( (0),
                      (0),
                      $Awfif::memes-> {snnh} {catalysis},
                      $Awfif::wsol-> {l} [$abcwso] [2],
                      $abcwso);
                  };#if
                };#if
              };#if start is still at zero
# become the sponsor of the cascade opp's start
# The builder [mps] signals the nucleus <codelet 21 wso> <schema> [<wso 'string' from schema>]
            my ($giveup, $atelhwso);
# shslocbifuu1

            $Awfif::memes-> {currentwsbi} = $cwsbi;
            $transtatus = 0;
            &ilaunchnc ($myli, $bcwso, 'casopai', $Awfif::memes-> {snnh} {casinopp}, \$giveup, $grkwp, $grkwpr, \@$sactset,
              '32,37', #mask out codelet-> {l} [32] i.e. {tfree}
              $usetrans,
              \$transid,
              \$transtatus,
              undef (), #subprogram
              undef (), #jhlabeli
              undef (), #jhlabeloi
              undef (), #newli
              undef (), #hiurg
              undef (), #usepooling
              ( (ifindupri ($myli, $sponsor)) && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype))) )#buildoffurg
              );
            if (($usetrans == 0) && (defined ($transid) && ( ($transtatus == $Awfif::memes-> {snnh} {completed}) or ($transtatus == $Awfif::memes-> {snnh} {incomplete}))) ){#record the transid

              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {update}, $Awfif::memes-> {snnh} {assoctran}, $asponsor, $Awfif::memes-> {snnh} {stran}, $transid, $Awfif::codelet-> {l} [$myli] [36], $stransmgrid);
              &transmgr ($myli, $myli, $Awfif::memes-> {snnh} {add}, $Awfif::memes-> {snnh} {assocf1}, $atelhwso, $Awfif::memes-> {snnh} {stran}, undef(), $Awfif::codelet-> {l} [$myli] [36], $Awfif::codelet-> {l} [$myli] [37], $Awfif::codelet-> {l} [$myli] [36]);
              };#if
# now want to ungroup if don't find cascade in list in app str workspace list head
# get the app str ws

            &initiateself ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsor);
            if ($Awfif::codelet-> {l} [$myli] [35] != 0) {

              my ($transtatus);
              &transalloc ($myli, $Awfif::memes-> {snnh} {casparticipant}, undef(), $Awfif::codelet-> {l} [$myli] [35], \$$transtatus);
              };#if
            }#if
          else {#may need to support cascade
# shslocbifuu2

            $Awfif::memes-> {currentwsbi} = $cwsbi;
            $usetrans = resstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, 'casopai', $usetrans, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, \$jhlabeli, $jhlabeloi,
                ( (ifindupri ($myli, $sponsor)) && (!(hdescexists ($myli, $cws, $bcwso, $Awfif::memes-> {snnh} {casinit}, $sponsortype))) )#buildoffurg
                );
            if ( (&transalloc ($myli, $Awfif::memes-> {snnh} {cassponsor}, undef(), $transid, \$transtatus) == $transid)
            && ($transtatus == $Awfif::memes-> {snnh} {incomplete}) #bcsubps transaction is not completed
            ){
# mp signal the sub-program

              my ($sgdi, $gsponsor);
              &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{cassponsor});
              $Awfif::memes-> {currentwsbi} = $Awfif::codelet-> {l} [$myli] [20];
              &fgrpd ($myli, $sponsor, \$sgdi, $Awfif::memes-> {snnh} {groupcategory} );
              $gsponsor = fgrpsponsor ($sponsor, $Awfif::workspace-> {l} [$sgdi] [3], $Awfif::memes-> {snnh} {groupcategory});

              ¬gcompleted ($myli, $sponsor, teltail ($Awfif::jhls-> {l} [$Awfif::codelet-> {l} [$myli] [31]] [15] [3]),'t');# sponsor should be one after telomeric header
              }#if still need to signal subprogram
            else {

              &cascadesponsor ($myli, $sponsor, $Awfif::memes-> {snnh}{wascassponsor});
              };#else
            };#else
          }#if
        else {#can't operate currently release the suppressor
          &imasksupp ($myli);
          };#else
        }
      else {#report error 'impossible context situation' to statement codelet
        my ($stwso, $astwso);

        if ($stwso = getmystatement ($myli, $sponsor, $grkwp, $grkwpr) != 0) {
        $astwso = awsoadr ($stwso);
        $Awfif::wsol-> {l} [$astwso][2]
        = setupdesc ( wsbasetype ( trwsoadr ($Awfif::codelet-> {l} [$myli][21],2)),
            ($Awfif::memes-> {snnh} {wsi} + $Awfif::memes-> {snnh} {error}),
            $Awfif::memes-> {snnh} {bind},
            $Awfif::wsol-> {l} [$astwso] [2],
            $astwso);
          };#if
        };
      $Awfif::memes-> {currentwsbi} = $cwsbi;
      };#got buffer
# and switch back to current context
    $Awfif::memes-> {currentwsbi} = $cwsbi;

    if ($Awfif::memes-> {trace} > $Awfif::memes-> {traceentry}) {
      print ("$cdnx\n");
      };
    &clogstatx ();
    }# shslocbuilder1
#
#<!-- start tag sir -->
#
sub rchpairevaluator1 {
    my ($myli, $kwp, $kwpr, $sactset) = @_;#The ignored parameters are required by the codelet calling architecture
    my ($sponsor, $signal, $schema, $spi, $swstype, $noswstype, $abcwso, $sponsortype, $cwsbi,
    $usetrans, $subpid, $transtatus, $stransmgrid, $reportcaspart, $f1transid, $f1trmgrid, $samesubpid, $transid, $eos,
    $grkwp, $grkwpr, $cdn, $cdnx);
#
# receptor char pair codelet responds to group complete providing application specific receptor detecting pairs of identical chars or whitespace in the source and target
# checked for merged workspaces

    $cwsbi = $Awfif::memes-> {currentwsbi};
    $noswstype = '';
    if (getcontext ($myli, \$sponsor, \$signal, \$schema, \$swstype, \$grkwp, \$grkwpr, $noswstype, \$cdn, \$cdnx, 3)) {

      my ($sigcount, @lomatchs, @lola, @loconcs, @lostrts, @loends, @logb, @loge, $twso, $asponsor, $sldesc, $shdesc, $conforms, $cws, $bcwso, $lhdesc, $lhwso);
      $twso = trwsoadr (fgrpend ($sponsor), 1);
      $asponsor = awsoadr ($sponsor);
      $sponsortype = wsbasetype ($sponsor);
# now know there is an assert mergestreams do binder ws locate the schematic context
      if ( (ifindb ($myli, $sponsor, 'bindercst', \$sigcount, \@lomatchs, \@lola, \@loconcs, \@lostrts, \@loends, \@logb, \@loge, $$kwp, $kwpr, \@$sactset, undef(), undef(), undef(), 't') == 1)
      ){#look for structural workspace position descriptor

        $bcwso = getfbws ($myli, $sigcount, \@lomatchs, \@lola, \$cws);
        $Awfif::memes-> {currentwsbi} = $cws;
        $usetrans = 0;#must be defined to be setup in gettmgr
        $subpid = $Awfif::codelet-> {l} [$myli] [36];
        $usetrans = chstoff1 ($myli, $sponsor, $kwp, $kwpr, \@$sactset, \$f1transid, \$f1trmgrid, \$transtatus, \$transid, \$stransmgrid, \$samesubpid, \$reportcaspart, 'bindercst');
        if ( ( ($sldesc = findtdesc ($Awfif::wsol-> {l} [($abcwso = awsoadr ($bcwso))] [2], $Awfif::memes-> {snnh} {wsposition})) != 0 )
        && ( ($Awfif::workspace-> {l} [$sldesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
# and check have not reached end of stream

        && (!($eos = findbond ($Awfif::wsol-> {l} [ $abcwso][2], 0, $Awfif::memes-> {snnh} {stream}, $Awfif::memes-> {snnh} {eos})))
        && (!findbond ($Awfif::wsol-> {l} [ awsoadr ($Awfif::wsbl-> {wsoh} [$cws])] [2], $Awfif::memes-> {snnh} {casunbind}, $sponsortype, $Awfif::memes-> {snnh} {model}))

        && (($shdesc = findtdesc ($Awfif::wsol-> {l} [ $abcwso ] [2], $Awfif::memes-> {snnh} {shwsposition})) != 0 ) #
        && ( $Awfif::workspace-> {l} [$shdesc] [2] != ($Awfif::memes-> {snnh} {wsi} + 0))
        && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [ $sldesc ] [3] - $Awfif::memes-> {snnh} {wsi})) != 0)
        && ( (chmdefis ($myli, ($Awfif::workspace-> {l} [ $sldesc ] [2] - $Awfif::memes-> {snnh} {wsi}), $Awfif::memes-> {snnh}{char}, \$conforms, $$kwp, $kwpr,))
          or (wsbasetype ($Awfif::workspace-> {l} [ $sldesc ] [2] - $Awfif::memes-> {snnh} {wsi}) == $Awfif::memes-> {snnh}{ichar})
          or (wsbasetype ($Awfif::workspace-> {l} [ $sldesc ] [2] - $Awfif::memes-> {snnh} {wsi}) == $Awfif::memes-> {snnh}{whitespace}) )
        && ( ($Awfif::memes-> {currentwsbi} = ($Awfif::workspace-> {l} [ $shdesc ] [3] - $Awfif::memes-> {snnh} {wsi})) != 0) </