changeset 91:d8024c56ef61

maintenance.. changed "Universal" to "Split-core_msg_passing_based" added POP_ref_manual.tex modified FASPP__HW_support.odp modified euro_fellowship_CV_w_pubs.tex
author Sean Halle <seanhalle@yahoo.com>
date Mon, 08 Oct 2012 23:03:26 -0700
parents dbc65e36c366
children cdd1852fe804
files 0__Papers/03__Conference_calls/[Hipeac-publicity] ARCS2013 CfP.txt 0__Papers/Holistic_Model/Perf_Tune/Notes_on_paper.txt 0__Papers/Ideas/VoteBucks/latex/vote_bucks.tex 0__Papers/Languages/POP/Intro.txt 0__Papers/Languages/POP/POP_Intro_paper/latex/POP_ref_manual.tex 0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow.pdf 0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow.svg 0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow_big_page.pdf 0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow_big_page.svg 0__Papers/VMS/Split-core_msg_passing_based/latex/VMS_universal.tex 0__Papers/VMS/Universal/figures/control_flow.pdf 0__Papers/VMS/Universal/figures/control_flow.svg 0__Papers/VMS/Universal/figures/control_flow_big_page.pdf 0__Papers/VMS/Universal/figures/control_flow_big_page.svg 0__Papers/VMS/Universal/latex/VMS_universal.tex 0__Papers/VMS/VMS__Foundation_Paper/VMS__Full_conference_version/latex/VMS__Full_conf_paper_2_Sep14.tex 0__Papers/bib_for_papers.bib 1__Presentations/12__Amsterdam_interview/Amsterdam_Interview.odp 1__Presentations/12__Amsterdam_interview/Amsterdam_Interview.pdf 1__Presentations/12__Amsterdam_interview/figures/software_stack.pdf 1__Presentations/12__Amsterdam_interview/figures/software_stack.svg 1__Presentations/12__FASPP_slides/FASPP__HW_support.odp 1__Presentations/12__FASPP_slides/FASPP__HW_support.pdf CVs/12_Ap__Euro_Fellowship_CV/euro_fellowship_CV_w_pubs.pdf CVs/12_Ap__Euro_Fellowship_CV/euro_fellowship_CV_w_pubs.tex
diffstat 25 files changed, 12053 insertions(+), 6463 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/0__Papers/03__Conference_calls/[Hipeac-publicity] ARCS2013 CfP.txt	Mon Oct 08 23:03:26 2012 -0700
     1.3 @@ -0,0 +1,71 @@
     1.4 +****************************************************************************
     1.5 +
     1.6 +Apologies if you receive multiple copies of this email.
     1.7 +
     1.8 +****************************************************************************
     1.9 +
    1.10 +ARCS 2013 - CALL FOR PAPERS
    1.11 +
    1.12 +26TH INTERNATIONAL CONFERENCE ON ARCHITECTURE OF COMPUTING SYSTEMS THIS YEAR FOCUS: ARCHITECTURAL ASPECTS FOR APPLICATION ACCELERATION
    1.13 +
    1.14 +Prague, Czech Republic, February 19th - 22nd, 2013 http://arcs2013.fit.cvut.cz
    1.15 +
    1.16 +Submission Deadline: EXTENDED to October 1, 2012
    1.17 +
    1.18 +****************************************************************************
    1.19 +
    1.20 +The ARCS series of conferences has over 30 years of tradition reporting top notch results in computer architecture and operating systems research. This year's focus will be on architectural aspects for application acceleration. Like the previous conferences in this series, it continues to be an important forum for computer architecture research. In 2013 ARCS will be hosted by the Czech Technical University in Prague.
    1.21 +
    1.22 +The proceedings of ARCS 2013 will be published in the Springer Lecture Notes on Computer Science (LNCS) series (pending). After the conference, authors of selected papers will be invited to submit an extended version of their contribution for publication in a special issue of the Journal of Systems Architecture. Also, the best paper and best presentation award will be presented at the conference.  Paper submission Authors are invited to submit original, unpublished research papers on one of the following topics:
    1.23 +
    1.24 +‐ Computer architecture topics such as multi-cores, memory systems, and parallel computing.
    1.25 +‐ Adaptive system architectures such as reconfigurable systems in hardware and software.
    1.26 +‐ Customization and application specific accelerators in heterogeneous architectures
    1.27 +‐ Organic and Autonomic Computing including both theoretical and practical results on self-organization, self-configuration, self-optimization, self-healing, and self-protection techniques.
    1.28 +‐ Operating Systems including but not limited to scheduling, memory management, power management, and RTOS.
    1.29 +‐ Energy-awareness, green computing.
    1.30 +‐ System aspects of ubiquitous and pervasive computing such as sensor nodes, novel input/output devices, novel computing platforms, architecture modeling, and middleware.
    1.31 +‐ Embedded systems including but not limited to architecture, communication, design methodologies, and applications.
    1.32 +‐ Network Centric and Grid Computing
    1.33 +
    1.34 +Submissions should be done through the link provided at the conference website http://arcs2013.fit.cvut.cz/. Papers should be submitted in pdf or postscript format. They should be formatted according to Springer LNCS style (see: http://www.springer.de/comp/lncs/authors.html ) and not exceed 12 pages.
    1.35 +
    1.36 +Workshop and Tutorial Proposals:
    1.37 +Proposals for workshops and tutorials within the technical scope of the conference are solicited. Submissions should be done through email directly to the workshops and tutorials chair Mladen Berekovic (berekovic@c3e.cs.tu-bs.de).
    1.38 +
    1.39 +Important Dates
    1.40 +Paper submission deadline: EXTENDED to October 1, 2012 Workshop and tutorial proposals: October 15, 2012 Notification of acceptance: November 19, 2012 Camera ready papers: December 16, 2012
    1.41 +
    1.42 +
    1.43 +Organizing Committee
    1.44 +
    1.45 +General Chairs
    1.46 +Hana Kubátová, CTU in Prague, CZ
    1.47 +Christian Hochberger, TU Dresden, D
    1.48 +
    1.49 +PC Chairs
    1.50 +Martin Daněk, UTIA AV CR, CZ
    1.51 +Bernhard Sick, University of Kassel, D
    1.52 +
    1.53 +Workshop and Tutorial Chair
    1.54 +Mladen Berekovic, TU Braunschweig, D
    1.55 +
    1.56 +Publicity Chairs
    1.57 +Josef Hlaváč, CTU in Prague, CZ
    1.58 +Dietmar Fey, University of Erlangen-Nurnberg, D
    1.59 +
    1.60 +Web Chair
    1.61 +Petr Fier, CTU in Prague, CZ
    1.62 +
    1.63 +Industry Liaison
    1.64 +Robert Lórencz, CTU in Prague, CZ
    1.65 +
    1.66 +Local Organization
    1.67 +Rudolf Kinc, AMCA, CZ
    1.68 +Eva Uhrová (finance), AMCA, CZ
    1.69 +
    1.70 +****************************************************************************
    1.71 +
    1.72 +_______________________________________________ Hipeac-publicity mailing list
    1.73 +Hipeac-publicity@hipeac.net
    1.74 +http://www.hipeac.net/mailman/listinfo/hipeac-publicity 
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/0__Papers/Holistic_Model/Perf_Tune/Notes_on_paper.txt	Mon Oct 08 23:03:26 2012 -0700
     2.3 @@ -0,0 +1,12 @@
     2.4 +
     2.5 +Rearrangement of Perf-tuning paper:
     2.6 +
     2.7 +-] Add "The Problem" section.  Move most of related work to just before conclusion -- have all concepts of paper available for related work at that point.  And, shorten it -- don't need so much detail -- lump several together..
     2.8 +
     2.9 +-] In "the problem" say as "hardware connected up to app code", then that scheduler determines where work done, which in turn determines communications happen on a multi-core, which in turn determines performance of application-code.  The availability of work and pattern of sending it determines idleness. 
    2.10 +
    2.11 +So, performance tuning is about seeing a) cache effect on app-code b) idleness of cores and c) overhead.  Then connecting those back to specific lines or patterns in application-code, which is what have available to change.
    2.12 +
    2.13 +
    2.14 +
    2.15 +
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/0__Papers/Ideas/VoteBucks/latex/vote_bucks.tex	Mon Oct 08 23:03:26 2012 -0700
     3.3 @@ -0,0 +1,37 @@
     3.4 +
     3.5 +The question is whether local quick fixes or longer term  more fundamental ideas.  Fundamental won't be immediately apparent to be good ideas.  Rather they will appear out of place, because something with such impact to fix fix a situation that persists will have to be ..  the fact of the situation persisting means that simple, small changes are unlikely to exist -- a larger disruption is needed, which by its nature means quite different than the current practices.
     3.6 +
     3.7 +The current idea 
     3.8 +This proposal is for a fundamental change in the daily practice of democracy. It ties representatives to the will of the people, preventing them from choosing paths that benefits themselves, at the expense of those they represent.
     3.9 +
    3.10 +The current practice is seen by many to be flawed by the ability of lobyists and other forms of paid political influence to sway representatives into choosing paths that please the lobyists, but are not in the best interest of the population represented.  
    3.11 +
    3.12 +Such influence can only be effective when the people represented have only weak influence on the representative's daily behaviors.  Any mechanism that strengthens the influence of the people represented on the daily behaviors of the representative thus move the daily practice of democracy closer to the ideal, in which the actions of government reflect the best interest of those governed, and follow the will of the governed.
    3.13 +
    3.14 +The Big Idea proposed here uses technology to fix shortcomings in the current practice of democracy, to move the outcomes of an actual democratic government closer to the outcomes that would be produced by an ideal democratic government that follows the best interest and will of the people governed.
    3.15 +
    3.16 +It does so by focusing on the influence that the people governed have on the daily choices made by their representatives.  Currently, the influence only occurs during election cycles, and so is rather weak during the majority of the days that decisions are made.  
    3.17 +
    3.18 +The current fix for this is the existence of lobyists, who have daily access to representatives and engage in practices meant to sway the representative in the direction the lobyist desires.  In the ideal case, each segment of the governed population would have a lobyist, who has access and persuasion abilities of a level proportional to the size of the segment of population.  
    3.19 +
    3.20 +In practice, however, very few of the population have a lobyist working to advance their desires. Instead, a tiny percentage of individuals control disproportionately large sums of money which is used to hire the services of the best lobyists.  This gives a disproportionately large influence over the daily choices of representatives to those small segments of population that control concentrated wealth.
    3.21 +
    3.22 +\section{Proposed Change}
    3.23 +This proposal would reduce such a disparity in influence by introducing a continuous form of voting that ties a representative's time in office to collective feedback from the population represented.  If the population remains dissatisfied for too long, the representative is removed from office, triggering an election to replace them.
    3.24 +
    3.25 +Such continuous feedback will give the representative a clear, daily, indication of the will of the population they represent.  The more detailed the feedback, the better will the representative be able to match their choices the the population's desires.  In addition, the ability for the population to pre-register their preference for future decisions will give the representative a clear indication of the path the population wishes them to take, along with clear consequences for ignoring the population's desires.
    3.26 +
    3.27 +This type of system will inevitably have its own set of shortcomings, and will also fail to match the practice of democracy to the ideal.  However, the presence of stronger feedback from the represented to their representative promises to advance the practice of democracy closer to the ideal than the current system of weak feedback.
    3.28 +
    3.29 +\subsection{Proposed Implementation}
    3.30 +The logistics of such feedback preclude paper-based implementation, instead requiring an electronic mechanism for collecting the desires of the population and presenting them to their representative.  Such a mechanism must be careful to prevent tampering by those who wish to gain an outsized advantage for themselves.  It must also be designed to include those in the population who have difficulty with electronic mediums.
    3.31 +
    3.32 +The result won't match the ideal, but as long as it makes a significant improvement over the current system, it is a net win and preferrable.  
    3.33 +
    3.34 +To prevent tampering, the design must be done by highly qualified individuals, and subjected to on-going testing for vulnerabilities.  
    3.35 +
    3.36 +An organization will be required to operate the system.  The system must be protected from the biases of the people operating it.  The rules by which the organization runs should be designed to insulate the system from the biases of the people operating it.  The organization must also have rules for choosing the people who join it, which should be designed to prevent the organization from developing its own systematic bias.
    3.37 +
    3.38 +
    3.39 +
    3.40 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/0__Papers/Languages/POP/Intro.txt	Mon Oct 08 23:03:26 2012 -0700
     4.3 @@ -0,0 +1,27 @@
     4.4 +
     4.5 +Pattern-Oriented-Programming, or POP, is an infrastructure whithin which languages are created.  It provides a set of primitive operations and an OS-like environment in which the languages are first created and then used to write programs and execute them.  Any existing language's computation model may be reproduced, however POP opens up possibilities for new models that have superior properties over existing ones.  It also enables seamless interaction between languages, so a program can be constructed of modules written in different domain-specific languages that are then linked together.
     4.6 +
     4.7 +POP has benefits for both language creation and program creation.  One benefit is extensible syntax that can be made active so that the syntax itself performs transformations during construction or compilation of the code.  This enables complex syntax such as the Tensor Notation, which is used in Physics.  In the notation the particular placement of symbols and pattern-matching among them determines the operation to be carried out. With a normal parsed language, such parse-time behavior that determines the semantics is quite challenging, but POP provides facilities that simplify the task, making parse-time behavior a normal aspect of languages.
     4.8 +
     4.9 +This is possible because program creation within the POP infrastructure directly modifies the syntax tree, skipping the parsing step altogether.  As a result, programs are correct by construction, essentially eliminating compilation errors by providing the programmer with only valid possibilities at any point during program definition.  
    4.10 +
    4.11 +This has the additional benefit of facilitating learning a new language by using it. While  writing code, the programmer may move the insertion point around and see the possibilities at each location, as well as read descriptions of each.  They may even perform a full-text search through the descriptions of possibilities in order to find operations that perform desired behavior.
    4.12 +
    4.13 +POP's normal programming environment is therefore graphical, with a representation of the code that is in progress and a graphical insertion point that represents the current position in the syntax tree. The syntactic element to insert there is chosen via a cascading menu system, or by typing the sequence of letters that selects the desired syntactic entity, or via text-based search through descriptions. 
    4.14 +
    4.15 +Because the environment is graphical, syntax normally has a graphical representation, although text-based is still possible.  The visual representation of the syntax tree eliminates artifacts that exist in text-based syntaxes, such as the nesting of parentheses used to control the order of evaluation. 
    4.16 +
    4.17 +Advanced visual syntaxes are not only possible but POP facilitates them with features in its environment.  This makes it practical to create, for example, a syntax that directly displays mathematical symbols as they would appear when written by hand or in a mathematics text book or paper.  Math syntaxes already exist, but not ones easily extensible with new visual symbols that have meaning attached to placement and can perform parse-time behaviors.  The POP system is advanced enough to create drawing-based syntaxes that convey meaning through the particular lines drawn, their connection points, and even orientation or physical placement relative to other components.
    4.18 +
    4.19 +The syntax tree orientation of POP enables programs to construct syntax trees of their own, during the run, and invoke a POP facility that compiles the tree.  The program may then direct POP to create a new process out of the compiled image and connect that process to the rest of the program.  In fact, the POP environment treats a process as a permanent entity that remains live until a POP directive is used to end it.
    4.20 +
    4.21 +As such, a POP program, once run, normally remains live continuously.  The various processes that make up the running program remain dormant until input arrives.  Input to a process then triggers activity within it.  POP has a facility to save an image of a collection of processes and reproduce it at a future date, or even to transfer the image to a different POP system and re-animate a clone there.
    4.22 +
    4.23 +The syntax tree orientation also enables advanced approaches to performant portability of code.  The POP primitives have syntax tree transformation properties attached to them, such as commutativity, associativity, distributivity, and so on.  Each property has associated rules for transforms that may be safely made to the syntax tree.  Any POP based language may likewise attach these properties to its syntactic elements, which enables the associated transforms of the syntax tree.  In addition, the language may define new properties, along with associated syntax tree transformations.  This makes a large space of allowed transformations available to tools, which search through the space to find forms of the syntax tree that will execute well on target hardware.
    4.24 +
    4.25 +The POP primitives are naturally parallel in nature.  They expose communication, including that implied by side effects when locations are used to store data supplied by one primitive instance, and later forward it to a different primitive instance.  However, POP encourages the equivalent behavior to be expressed through the use of explicit environments, which can be created, named, and passed around.  Using them naturally makes side effect communication explicit and also clean, so that tools can directly infer the communicating entities and the causal relationship implied by the side effect communication.
    4.26 +
    4.27 +As a result, even communication among iterations of loops are exposed, which lets the tools know the causal relationships among the iterations.  The causal relationships are what the scheduler must enforce when choosing units of work to schedule onto physical processors.  The scheduling is the heart of parallel processing, which determines what physical communications are performed and the consequent performance delivered.
    4.28 +
    4.29 + 
    4.30 +
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/0__Papers/Languages/POP/POP_Intro_paper/latex/POP_ref_manual.tex	Mon Oct 08 23:03:26 2012 -0700
     5.3 @@ -0,0 +1,583 @@
     5.4 +%&latex
     5.5 +\documentclass{scrbook}
     5.6 +
     5.7 +%+MakeIndex
     5.8 +\usepackage{makeidx}
     5.9 +\makeindex
    5.10 +%-MakeIndex
    5.11 +
    5.12 +\begin{document}
    5.13 +
    5.14 +%+Title
    5.15 +\title{\Huge\bf The POP Infrastructure\\ Reference Manual}
    5.16 +\author{Sean Halle}
    5.17 +\date{\today}
    5.18 +\maketitle
    5.19 +%-Title
    5.20 +
    5.21 +%+Contents
    5.22 +\tableofcontents
    5.23 +%+Contents
    5.24 +
    5.25 +%+Make Parts
    5.26 +%\part{First Part}
    5.27 +%-Make Parts
    5.28 +
    5.29 +\chapter{Introduction and Overview}
    5.30 +
    5.31 +
    5.32 +Pattern-Oriented-Programming, or POP, is an infrastructure within which languages are created.  It provides a set of primitive operations and an OS-like environment in which the languages are created and then used to write programs and execute them.  Any existing language's computation model may be reproduced, however POP opens up possibilities for new models that have superior properties over existing ones.  It also enables seamless interaction between languages, so a program can intermix constructs from different languages within the same module, and the constructs naturally inter-operate.
    5.33 +
    5.34 +POP has benefits for both language creation and program creation.  One benefit is extensible syntax that can be made active so that the syntax itself performs transformations during construction or compilation of the code.  This enables complex syntax such as the Tensor Notation, which is used in physics.  In the notation, the particular placement of symbols and pattern-matching among them determines the operation to be carried out. With a normal parsed language, such parse-time behavior that determines the semantics is quite challenging, but POP provides facilities that simplify the task, making parse-time behavior a normal aspect of languages.
    5.35 +
    5.36 +This is possible because program creation within the POP infrastructure directly modifies the syntax tree, skipping the parsing step altogether.  As a result, programs are correct by construction, essentially eliminating compilation errors by providing the programmer with only valid possibilities at any point during program definition.  
    5.37 +
    5.38 +This has the additional benefit of facilitating learning a new language by using it. While  writing code, the programmer may move the insertion point around and see the possibilities at each location, as well as read descriptions of each.  They may even perform a full-text search through the descriptions of possibilities in order to find operations that perform desired behavior.
    5.39 +
    5.40 +POP's normal programming environment is therefore graphical, with a representation of the code that is in progress and a graphical insertion point that represents the current position in the syntax tree. The syntactic element to insert there is chosen via a cascading menu system, or by typing the sequence of letters that selects the desired syntactic entity, or via text-based search through descriptions. 
    5.41 +
    5.42 +Because the environment is graphical, syntax normally has a graphical representation, although text-based is still possible.  The visual representation of the syntax tree eliminates artifacts that exist in text-based syntaxes, such as the nesting of parentheses used to control the order of evaluation.  It also eliminates ambiguity for the reader by allowing them to graphically view properties attached to the syntactic elements, such as those affecting the order of evaluation.
    5.43 +
    5.44 +Advanced visual syntaxes are not only possible but POP facilitates them with features in its environment.  This makes it practical to create, for example, a syntax that directly displays mathematical symbols as they would appear when written by hand or in a mathematics text book or paper.  Math syntaxes already exist, but not ones easily extensible with new visual symbols that have meaning attached to placement and can perform parse-time behaviors.  The POP system is advanced enough to create drawing-based syntaxes that convey meaning through the particular lines drawn, their connections, and even orientation or physical placement relative to other components.
    5.45 +
    5.46 +The syntax tree orientation of POP enables programs to generate  syntax trees of their own, during the run, and then invoke a POP facility that compiles the tree.  The program may then direct POP to create a new process out of the compiled image and connect that process to the rest of the program.  In fact, the POP environment treats a process as a permanent entity that remains live until a POP directive is used to end it.
    5.47 +
    5.48 +As such, a POP program, once run, normally remains live continuously.  The various processes that make up the running program remain dormant until input arrives.  Input to a process then triggers activity within it.  POP has a facility to save an image of a collection of processes and reproduce it at a future date, or even to transfer the image to a different POP system and re-animate a clone there.
    5.49 +
    5.50 +The syntax tree orientation also enables advanced approaches to performant portability of code.  The POP primitives have syntax tree transformation properties attached to them, such as commutativity, associativity, distributivity, and so on.  Each property has associated rules for transforms that may be safely made to the syntax tree.  Any POP  language may likewise attach these properties to its own syntactic elements, which enables the associated transforms of the syntax tree.  In addition, the language may define its own new properties, and associate them with custom syntax tree transformations.  This makes a large space of allowed transformations available to tools, which search through the space to find forms of the syntax tree that will execute well on target hardware.
    5.51 +
    5.52 +The POP primitives are naturally parallel in nature.  They expose communication, including that implied by side effects that occur when locations are used to store data supplied by one primitive instance, and later forward it to a different primitive instance.  However, POP encourages the equivalent behavior to be expressed through the use of explicit contexts, which are explicitly created, and can then be given a name and passed around.  Using them naturally makes side effect communication explicit and also clean, so that tools can directly infer the communicating entities and the causal relationship implied by the side effect communication.
    5.53 +
    5.54 +As a result, even communication among iterations of loops is exposed, which lets the tools know the causal relationships among the iterations.  These causal relationships are what the scheduler must enforce when choosing units of work to schedule onto physical processors.  The scheduling is the heart of parallel performance. It determines what physical communications are performed and the consequent performance delivered.
    5.55 +
    5.56 + 
    5.57 +
    5.58 +
    5.59 +
    5.60 +
    5.61 +
    5.62 +\chapter{Commands and Usage}
    5.63 +
    5.64 +
    5.65 +
    5.66 +\section{POP environment}
    5.67 +
    5.68 +The POP OS-like environment provides services such as data storage and retrieval,  communication among OS entities, and creation and deletion of OS entities.
    5.69 + There is only one type of OS entity, which  is the (virtual) processor. Hence a data file is seen as a processor, as is a running piece of code. Even OS services are invoked by communicating to  permanent OS supplied processors.
    5.70 +
    5.71 +
    5.72 +
    5.73 +\subsection{Processors in the POP Environment} 
    5.74 +\label{subsec:ProcInPOP}
    5.75 +A processor has a name. The name is used to communicate with the  processor. Along with the name, a processor also has meta-data attached to it. This is information about the processor, and is used when other processors try to find the processor's name.
    5.76 +
    5.77 +A processor behaves according to a specification. The OS provides as a service a permanent processor that will create a new processor from a specification. It is called the creator. When one processor wants a new processor created, it sends the specification to the creator and receives back the name of the newly created
    5.78 +processor.
    5.79 +
    5.80 +\subsection{Finding a Processor}
    5.81 +
    5.82 +When one processor wants to find the name of another processor, it asks the discovery processor, which is a permanent processor supplied as a service by the OS.  The discovery processor takes goal meta-data as input and searches through the meta-data of all processors currently live within the OS.  It returns a list of the meta-data from all processors that matched the goal meta-data. If this list contains too many results, the requesting processor can look through the list, to either choose one or else decide additional terms to add to the goal meta-data it supplied.
    5.83 +
    5.84 +A particular returned list can be saved by turning it into a new discovery processor, and then using it to perform subsequent searches. The new discovery processor automatically keeps itself up to date. Searches within this smaller list make the search faster and more convenient to specify.  
    5.85 +
    5.86 +In other OSes, the equivalent of the meta-data is the directory structure, and the equivalent of one directory is a search result that has been saved into its own processor. In other OSes,  an equivalent search is performed by listing the contents of a directory then changing to a different directory and repeating.
    5.87 +
    5.88 +The POP meta-data has more flexibility because it does not tie data into any particular tree structure. At the same time, it is flexible enough to allow a number of results to be saved into discovery processors such that they recreate the equivalent of directories, and allow the same kind of movement among and viewing of directories.
    5.89 +
    5.90 +
    5.91 +\subsection{Data Files as Processors}
    5.92 +What is a file in other OSes is  a processor in POP. Data is inserted and retrieved by sending commands to the processor and receiving replies. Such a data-holding processor is created from a specification, which states the commands it is capable of receiving and sending. The specification also states the structure of the data held within the processor. All data sent to it and retrieved from it is sent in that structured form.
    5.93 +
    5.94 +
    5.95 +
    5.96 +
    5.97 +\subsection{Source Code as Data Held Within a Processor}
    5.98 +In POP, raw source code is a syntax graph that is held inside a processor. The name of the kind of processor that holds a source code syntax graph is  \textit{srcHolder}. The code is stored in a structured form, as a syntax graph, and a srcHolder has commands defined that understand this structure and can be useful in manipulating it.
    5.99 +
   5.100 +For example, a srcHolder interacts with another processor by establishing a connection. For each connection, the srcHolder internally creates a piece of state that acts as a pointer into the syntax graph. It is called the edit-point. Commands can be sent to move the edit point, to insert new syntactic entities at the edit point, and to retrieve sub-trees rooted at the edit-point.
   5.101 +
   5.102 +For extensive manipulations, a processor can ask a srcHolder to return the entire syntax graph. That can then be directly manipulated and sent back to the srcHolder.  In this case, the srcHolder acts as a means for controlling access to the various versions of the syntax graph.  It can even perform merges.  
   5.103 +
   5.104 +
   5.105 +\subsection{Compiling Source Code into a Specification} 
   5.106 +
   5.107 + The data in a srcHolder can be compiled, and the result is a different form of the source data called a \textit{processor specification (procSpec).} A procSpec  is held in a different kind of processor called a \textit{specHolder.}  The specification is then used to create a processor, which behaves according to the source code's semantics. 
   5.108 +
   5.109 +Compiling the source code is initiated by sending the name of the srcHolder to the permanent OS supplied compiler processor (or to an alternative compiler processor). The compiler processor sends back the name of the  specHolder it created, which holds the compiled result. 
   5.110 +
   5.111 +Recall from section \ref{subsec:ProcInPOP} that the OS supplies a processor as a service that creates new processors from specifications. This creator accepts the name of a specHolder.
   5.112 +
   5.113 +\subsection{Hierarchy}
   5.114 +
   5.115 + 
   5.116 +
   5.117 +A processor can contain other processors. When requesting creation, a processor can ask the creator to place the new processor inside itself. Alternatively, given a name, a processor can ask to have placed inside itself the named processor.
   5.118 +In fact, the OS itself is a processor that contains all the other processors.
   5.119 +
   5.120 +Hence, a hierarchy exists of processors contained inside other processors. The internal processors can only interact with the container and siblings.  However, the OS can be asked to create a tunnel that makes a single processor appear to exist in multiple places, which can be useful for creating connections to processors in other POP instances, or to non-POP machines.
   5.121 +
   5.122 +\subsection{Persistence of Processors}
   5.123 +
   5.124 +Once the creator creates a processor, it persists until explicitly destroyed. The OS processor itself persists. If the machine animating the OS processor powers off, the relevant  state of the OS processor is maintained, along with the existence and structure of the processors inside it. Each of those processors can also state persistent portions of their internal state that remains.  This is the mechanism by which data holding processors persist their internal data.  
   5.125 +
   5.126 +\subsection{A Running Program as a Collection of Processors} 
   5.127 +
   5.128 +A running program
   5.129 +is one or more processors that reside inside the OS processor.
   5.130 +POP has a facility to save an image of a collection of processors and reproduce it at a future date, or even to transfer the image to a different POP system and re-animate a clone there. Cloning may be the preferred distribution method for many programs. 
   5.131 +
   5.132 + Cloning across different hardware is simplified by the fact that state inside a processor is structured, allowing translation to other endianness or word size.  It is also helped by the original source code being available for re-compile onto the other hardware. 
   5.133 +
   5.134 +As such, a POP program, once run, normally remains live continuously.  The various processes that make up the running program remain dormant until input arrives.  Input to a process then triggers activity within it. 
   5.135 +
   5.136 +\subsection{Adaptable Programs} 
   5.137 +
   5.138 +
   5.139 +
   5.140 +Once running, a program may direct the OS to create a new processor out of a compiled image and connect that processor to the rest of the program. Hence, a running program can self-generate source code, compile it, and turn it into a processor that it connects to itself.  This allows a program to adapt itself after the run begins.  In fact, it can even cause updates in the srcHolders that the running program was originally generated from.  
   5.141 +
   5.142 +
   5.143 +
   5.144 +\section{Languages within POP}
   5.145 +Languages are first created and then used to write programs and execute them. A language consists of syntax and rewriting rules.
   5.146 +
   5.147 +The syntax consists of a definition of the syntax graph elements, a visualizer for them, and a modifier.  In addition, menu entries are provided along with descriptions of each of the syntactic elements. Finally, a definition of a srcHolder is provided, instances of which store syntax graphs made up of the new syntactic elements.
   5.148 +
   5.149 +The rewriting rules have two parts, a "from" and an "into". Where the "from" is one syntactic entity in the language, and the "into" is  A rule also has directives that state how the elements of the "from"  are transferred to more primitive "into" syntactic entities. 
   5.150 +\subsection{POP Primitives}
   5.151 +
   5.152 +
   5.153 +
   5.154 + 
   5.155 +
   5.156 +
   5.157 +
   5.158 +
   5.159 +\section{Constructing a Syntax Tree}
   5.160 +This is possible because program creation within the POP infrastructure directly modifies the syntax tree, skipping the parsing step altogether.  As a result, programs are correct by construction, essentially eliminating compilation errors by providing the programmer with only valid possibilities at any point during program definition.
   5.161 +
   5.162 +
   5.163 +POP's normal programming environment is therefore graphical, with a representation of the code that is in progress and a graphical insertion point that represents the current position in the syntax tree. The syntactic element to insert there is chosen via a cascading menu system, or by typing the sequence of letters that selects the desired syntactic entity, or via text-based search through descriptions. 
   5.164 +
   5.165 +Because the environment is graphical, syntax normally has a graphical representation, although text-based is still possible.  The visual representation of the syntax tree eliminates artifacts that exist in text-based syntaxes, such as the nesting of parentheses used to control the order of evaluation.  It also eliminates ambiguity for the reader by allowing them to graphically view properties attached to the syntactic elements, such as those affecting the order of evaluation.
   5.166 +
   5.167 +
   5.168 +\section{Explicit Contexts}
   5.169 +The POP primitives expose communication, including that implied by side effects that occur when locations are used to store data supplied by one primitive instance, and later forward it to a different primitive instance.
   5.170 +
   5.171 +POP encourages side-effect behavior to be expressed through the use of explicit contexts, which are explicitly created, and can then be named and passed around.  Using them naturally makes side effect communication explicit and also clean, so that tools can directly infer the communicating entities and the causal relationship implied by the side effect communication.
   5.172 +
   5.173 +As an example, the code in Fig X exposes  communication among iterations of loops. This lets specialization tools know the causal relationships among the iterations.  These causal relationships are what the scheduler must enforce when choosing units of work to schedule onto physical processors.  The scheduling is the heart of parallel processing, which determines what physical communications are performed and the consequent performance delivered.
   5.174 +
   5.175 +
   5.176 +\section{Programming Environment}
   5.177 +
   5.178 +Here we give more detail on the programming environment features available to the programmer.
   5.179 +
   5.180 +This has the additional benefit of facilitating learning a new language by using it. While  writing code, the programmer may move the insertion point around and see the possibilities at each location, as well as read descriptions of each.  They may even perform a full-text search through the descriptions of possibilities in order to find operations that perform desired behavior.
   5.181 +
   5.182 +
   5.183 +\section{Source Manipulation}
   5.184 +The syntax tree orientation of POP enables programs to generate  syntax trees of their own, during the run, and then invoke a POP facility that compiles the tree.  The program may then direct POP to create a new process out of the compiled image and connect that process to the rest of the program.  In fact, the POP environment treats a process as a permanent entity that remains live until a POP directive is used to end it.
   5.185 +
   5.186 +
   5.187 +\section{Extending Syntax}
   5.188 +
   5.189 +  One benefit is extensible syntax that can be made active so that the syntax itself performs transformations during construction or compilation of the code.  This enables complex syntax such as the Tensor Notation, which is used in physics.  In the notation, the particular placement of symbols and pattern-matching among them determines operation to be carried out. With a normal parsed language, such parse-time behavior that determines the semantics is quite challenging, but 
   5.190 +
   5.191 +POP provides facilities that simplify the task, making parse-time behavior a normal aspect of languages.
   5.192 +
   5.193 +
   5.194 +Advanced visual syntaxes are not only possible but POP facilitates them with features in its environment.  This makes it practical to create, for example, a syntax that directly displays mathematical symbols as they would appear when written by hand or in a mathematics text book or paper.  Math syntaxes already exist, but not ones easily extensible with new visual symbols that have meaning attached to placement and can perform parse-time behaviors.  The POP system is advanced enough to create drawing-based syntaxes that convey meaning through the particular lines drawn, their connections, and even orientation or physical placement relative to other components.
   5.195 +
   5.196 +
   5.197 +\section{Syntax Element Properties and Their Associated Transforms}
   5.198 +
   5.199 +The syntax tree orientation also enables advanced approaches to performant portability of code.  
   5.200 +
   5.201 +The POP primitives have syntax tree transformation properties attached to them, such as commutativity, associativity, distributivity, and so on.  Each property has associated rules for transforms that may be safely made to the syntax tree.  Any POP  language may likewise attach these properties to its own syntactic elements, which enables the associated transforms of the syntax tree.  In addition, the language may define its own new properties, and associate them with custom syntax tree transformations.  This makes a large space of allowed transformations available to tools, which search through the space to find forms of the syntax tree that will execute well on target hardware.
   5.202 +
   5.203 +
   5.204 +
   5.205 +
   5.206 +
   5.207 +%+MakeIndex
   5.208 +\printindex
   5.209 +%-MakeIndex
   5.210 +
   5.211 +\end{document}
   5.212 +
   5.213 +An Extensible Term-rewriting Based Parallel Language
   5.214 +by Sean Halle
   5.215 +Email: seanhalle@yahoo.com
   5.216 +Web: codetime.sourceforge.net
   5.217 +Nov 2, 2007
   5.218 +Abstract
   5.219 +Programmer efficiency, computational efficiency, and automatic portability with high performance are
   5.220 +major goals for parallel software. It would be nice to have a language that advanced these goals. In
   5.221 +one approach, such a language would have graphical syntax and allow custom graphical notation to be
   5.222 +added by the application programmer. It would also have an automated mechanism that specialized
   5.223 +a single source to multiple hardware platforms, enabling high performance on a variety of parallel
   5.224 +hardware. It would also have the feel of a flexible interpreted language but the efficiency of a com-
   5.225 +piled one.
   5.226 +Toward this end we propose a language with several features: its source form is a syntax graph; the
   5.227 +visual representation is generated, which allows arbitrary graphics as syntax; it is based on a re-
   5.228 +writing system, which enables easy syntax extensions; and its syntax graph is property-based, which
   5.229 +enables symbolic manipulation of primitive as well as extended syntax. The proposed language lies
   5.230 +on top of the CTOS OS abstraction layer, which brings portability and automatic specialization.
   5.231 +It has three separate mechanisms for extending the language with custom notation. The first is a
   5.232 +fairly straight forward adaptation of term-rewriting. The second uses active entities (processors) in
   5.233 +the development environment to on-the-fly generate the term-rewriting rule. The third introduces an
   5.234 +explicit symbol for the creation of a processor from source code, and defines a standard processor type
   5.235 +called a sourceManipulator. SourceManipulators take in a syntax graph and produce a manipulated
   5.236 +syntax graph as output, which can then be on-the-fly compiled, run, and wired-in, by sending the new
   5.237 +graph through a creator to create a processor from it. This feature gives the feel of an interpreted
   5.238 +language.
   5.239 +We describe the syntax, features, and possible implementation of the proposed language, which is
   5.240 +called EQNLang.
   5.241 +1 Introduction
   5.242 +Programmer productivity, reuse, self-documentation, ease of maintenance, and parallelism support are
   5.243 +important topics in parallel languages at the moment. We propose a language, called EQNLang that may
   5.244 +advance these goals.
   5.245 +
   5.246 +2 Background: The Environment Surrounding EQNLang
   5.247 +All languages assume some form of environment that provides services such as long-term storage, commu-
   5.248 +nication primitives, and the means to run a program. The environment that EQNLang assumes is a
   5.249 +fairly new one that has been designed for portability across parallel hardware configurations called CTOS,
   5.250 +short for CodeTime OS.
   5.251 +
   5.252 +---------------------
   5.253 +
   5.254 +====================
   5.255 +1
   5.256 +--------------------
   5.257 +In the CTOS abstraction, a processor is composed of a bit of embedded code, an embedded processor
   5.258 +that derives the behavior of that code, and a name-space. The embedded processor uses the embedded
   5.259 +code as directions on how to behave. The name-space is filled with other processors that can be called
   5.260 +upon to help out. Such a processor is created by pairing together the embedded code with the embedded
   5.261 +processor, then filling the name-space with helper processors.
   5.262 +====================
   5.263 +
   5.264 +-------------------
   5.265 +There is a boundary, the OS instance boundary, that all data must cross in order to interact with running programs or to become resident. This makes automatic translation of data a natural occurence. It happens every time data crosses the OS instance boundary. 
   5.266 +
   5.267 + The collection of processors provide many of the behaviors one normally associates with a language, and it
   5.268 +enables interpreted-like behavior in a compiled language.
   5.269 +
   5.270 +-------------------
   5.271 +The features of CTOS that relate to programs are: srcHolders, Visualizers, Modifiers, Displays, programSpaces, and workSpaces.
   5.272 +
   5.273 +srcHolders are the processors that hold source. They are specialized for source in that they come with built-in editing and visualizing sub-processors. In fact, the only way to edit code is to use the editing processor that comes with the srcHolder holding that code. Thats what the Visualizer, Modifier, and Display do; they provide the editing functions.
   5.274 +
   5.275 +In fact, the Visualizer and Modifier are part of every Holder. No matter what kind of data is held, it comes packaged with a Visualizer that translates the data into a list of graphical elements, and Modifier that modifies the data according to user gestures.
   5.276 +
   5.277 +Theyre used like this: the Visualizer generates a display-list, which is sent to a Display that paints the graphical elements in the list. The user views the Display and makes gestures, like key strokes and mouse movements. The Display packages the user gestures and sends them to the Modifier, which translates the gestures to modification commands and modifies the data in the Holder. The Visualizer then generates a display-list of the modified data and the cycle repeats. This cycle is used for all types of data, including
   5.278 +source code.
   5.279 +
   5.280 +However, source code is more than simple data. It needs support services, which are provided by programSpace processors. Such services include looking up the code referenced by a name (ie, look up function definition); hooking together processors that communicate; even language-specific custom services.
   5.281 +
   5.282 +EQNLang, for example, makes use of custom services to generate on-the-fly re-write rules. Hence, srcHolders are placed together inside programSpaces, to make a program. Other things that can be placed into a programSpace are other programSpaces, workSpaces, support-service processors, and processors created from code that is part of the program.
   5.283 +
   5.284 +The last kind of processor important for EQNLang is the workSpace processor. A workSpace is intended to contain other processors. So, for example, a programSpace is a specialized form of workSpace, as is the OS processor.
   5.285 +
   5.286 +In general, workSpaces hold automatically created processors, programSpaces and hierarchically other workSpace processors. For user interaction, CTOS defines the Display processors, which are external processors reside outside any CTOS instances. Displays run natively on hardware that has a physical display. Each kind of Holder processor and Space processor can be asked to connect to a Display, which then receives a visual representation from the Holder or Space processors Visualizer. The Display paints it, for a person to look at, and accepts gestures from the person, which it packages and sends to the Holders or Spaces Modifier.
   5.287 +
   5.288 +A typical visual representation is seen in Figure 1 which shows a CTOS processor instance, a few processors that exist outside the CTOS instance such as web servers on the net, and the inside of the CTOS instance. The shown CTOS instance contains the special OS-service processors, a workSpace, programSpace, srcHolders and generated processors. More explanation of this figure is in section X
   5.289 +=================
   5.290 +
   5.291 +
   5.292 +3
   5.293 +The proposed language, EQNLang, is a bit different from traditional languages because of the OS environment it resides in. The first thing well talk about is the differences between EQNLang and traditional languages, then well discuss EQNLangs features in more detail, and finally well talk about strategies for implementing those features.
   5.294 +
   5.295 +3.1 How EQNLang differs from taditional languages
   5.296 +Traditional languages have a text-based source form. The text is edited with a stand-alone editing tool, then fed into another tool that either interprets the text or compiles it. The text form limits the features the language can have, and the tool flow also limits the features the language can have, as discussed further below.
   5.297 +
   5.298 +Next, for traditional languages, the source text is arranged in a number of files that are connected together in some form of name-space. The name-space is used to look up definitions. For example, variable names and function names are defined in various files, then referred to in other files. The name-space is used to retrieve the definitions attached to such names.
   5.299 +
   5.300 +If the language is interpreted then definitions are added to the name-space incrementally. A definition can be added, then invoked, then more definitions added, then those invoked, and so on. This interactive process takes place within a tool that is considered part of the language itself. During development, the definitions are live and grow, like a living system of entities waiting to be invoked. 
   5.301 +
   5.302 +We adopt this feel for our proposed language, and actually go beyond it; not only are the definitions live, but they can be individually turned into active processors that are connected to the environment as well as each other.
   5.303 +
   5.304 +Compiled languages, on the other hand, form the name-space once, during compilation. The name-space of definitions is static, no new names may be added after compilation is complete. This difference in the name-space of definitions is one of the main ones between interpreted and compiled languages. It is what causes the main experiential difference for the programmer. The static nature of compiled languages makes the programmer perform longer iterations between definition and testing the definition. Meanwhile the dynamic nature of interpreted languages allows more flexible code which often saves steps, thereby further increasing programmer productivity, which is why we adopted it for POP.
   5.305 +
   5.306 +The next characteristic of traditional languages is the way in which the text-based source is translated into machine-understandable code. Whether interpreted or compiled, the text source is fed to a lexical analyzer, then grammar checked and type checked, then translated to a machine executable language.
   5.307 +
   5.308 +Each step is done by a single tool, with the tools linked in a chain. Interpreted languages perform all this on-the-fly. This is where much of the power of interpreted languages comes from; when put together with the dynamic definition name-space, the on-the-fly translation allows code to generate new code, then execute that new code, all in the same program. Because this on-the-fly modification-then-execution of code is one of the most powerful features of interpreted languages, we adopt it in POP.
   5.309 +
   5.310 +In contrast, compiled languages perform all analysis and translation before execution of any of the definitions. The benefit is the additional time allowed for complex transformation of the code, which makes it run faster. Because execution speed is also important to industry, we adopt compilation for POP
   5.311 +as well.
   5.312 +
   5.313 +Finally, the syntax of traditional languages is determined by the lexical analyzer, grammar checker, type checker, and translator. These functions are provided in a stand alone tool that is considered to be part of the language. The tool must be modified to change the syntax, making it difficult to extend the languages syntax. It is too complex for application programmers to attempt this on a regular basis.
   5.314 +
   5.315 +POP differs in this aspect, having an easily extended syntax. It achieves this by distributing the lexical, grammatic, type, and translation functions among standard elements of the OS. In fact, in order for POP to combine the features of both interpreted and compiled languages, as well as have easily modifiable syntax, it has to do many things differently than traditional languages. It relies upon CTOS for this.
   5.316 +
   5.317 +First, EQNLang doesnt use text as a source form. Instead, its source is a syntax tree. 
   5.318 +
   5.319 +----------------
   5.320 +CTOS defines a standard data structure that is used to represent the syntax of all languages that may be created for CTOS. All source code is stored as a syntax graph composed of the standard data structures, including POP source.
   5.321 +
   5.322 +The lexical, grammatic, type, and translation functions are distributed among various CTOS processors: the definition name-space is created and animated by programSpace processors; lexical analysis is performed by a combination of the Modifier and Display; grammar is embedded within the Visualizer and Display; and translation to machine code is performed by the CTOS creator processor.
   5.323 +
   5.324 +Notice that none of these functions belongs to the language, none are inside the language, nor are they in stand-alone tools. Instead, these functions are all standard parts of the OS. There are no stand-alone tools whose function exists only in the language. Instead, creating a language within POP involves writing a number of plug-ins to POP.
   5.325 +
   5.326 +This is how POP achieves easily extended syntax; it is the combination of source being in syntax graph form and the distribution of lexical, grammatic, type, and translation among CTOS processors that makes extending syntax easy. The details of extending the syntax are covered in more depth in a later section.
   5.327 +
   5.328 +The last difference between POP and traditional languages is the mixture of both interpreted behavior and compiled behavior that POP has. This, too, is enabled by distributing language functions among standard OS processors. In this case, POPs features are enabled by the fact that its OS makes name-space an explicit thing that can be manipulated, and the fact that the OS has an
   5.329 +explicit creator processor that can be interacted with.
   5.330 +=================
   5.331 +
   5.332 +
   5.333 +3.2 POPs features
   5.334 +POP has a feel and mindset inspired by operational semantics as described in Glynn Winskels book []
   5.335 +
   5.336 +3.2.1 Extensible Syntax
   5.337 +POP has a few categories of syntax:
   5.338 + Invocations
   5.339 + OS invocations
   5.340 + Definitions
   5.341 +The kinds of definitions:
   5.342 + Data-structure definitions
   5.343 + Pattern definitions
   5.344 + From-Into definitions
   5.345 + Extension definitions
   5.346 +The extension definitions include:
   5.347 + Syntax graph types
   5.348 + GUI gesture semantics
   5.349 + Re-write rule generators
   5.350 +
   5.351 +------------------
   5.352 +A syntax-graph-type definition encodes an extensions grammar, while GUI-gesture-semantics encode the means of constructing one of the new syntax graph elements. Meanwhile, re-write rule generators are, in effect, parameterized re-write rules. They are only used for extensions in which the notation has complex rules, such as Tensor notation. Such a generator takes in a syntax graph constructed by the user and generates a new syntax graph that encodes a re-write rule. The generator, in effect, encodes a parameterized re-write rule while the input syntax graph supplies the parameters.
   5.353 +=================
   5.354 +
   5.355 +-----------------
   5.356 +The statements category of syntax is the most commonly seen in EQNLang programs. It includes invocations of patterns, as well as all the visual cues used to indicate program behavior.
   5.357 +
   5.358 +As far as the visual aspects of language extensions, there are many different types of new syntax:
   5.359 + Simple re-writable custom syntax
   5.360 + Generated re-write rule custom syntax
   5.361 + Compound structure custom syntax
   5.362 + source modifying syntax for the end-user programmer to use (which has three flavors)
   5.363 + source modifying syntax for specifying how to re-construct a live system
   5.364 + source modifying syntax used when by-hand constructing a live system under the hood
   5.365 +
   5.366 +All of these types of new notation must be visualized for the programmer, and they must have a source form for the translator and OS.
   5.367 +
   5.368 +It can be tricky designing a syntax system capable of doing all this. Four things must be extendable: 
   5.369 +the syntax-graph structure itself, 
   5.370 +the visualization that represents the new syntax-graph structures, 
   5.371 +the grammar that says what is a well-formed statement, and 
   5.372 +the type system.
   5.373 +
   5.374 +Lets look more closely at how these four things that must be extendable relate to each other. Extending a language means adding new keywords to it, which is equivalent to adding new syntax. This new syntax must be viewable by the programmer. Because POPs source form is a syntax-graph, the new syntax must come with a way for the programmer to see it mixed in with other syntax. Not only that but the new syntax is used in combination with other syntax; some combinations have a meaning while others dont. So the grammar of POP must be extended in unison with the new syntax to state what ways are valid for combing the new syntax with other syntax. 
   5.375 +
   5.376 +-----------------*******************************************
   5.377 +Finally, the new notation may define a new type, or it may be a command that has requirements on what types it accepts, so the type system must be extended to check that communications between commands respect the newly defined command interfaces, while possibly communicating newly defined types.
   5.378 +=================
   5.379 +
   5.380 +-----------------
   5.381 +The difficulty of extending the syntax-graph is handled by recognizing that most features of a syntax data structure are in fact properties. When one thinks about the fields of a data structure, the field name is a property name, and the field contents are values the property can take. Similarly, the name of the data structure itself can be seen as a property-value. In this case, the collection of all possible names of syntax data structures is given a name, which is the property name. Hence, the collections name is the property name while the name of one data-structure is the property value.
   5.382 +
   5.383 +Using this scheme, the OS defines a universal syntax-graph that will encode the syntax of every language possible within the OS. It has only three kinds of syntax graph node: syntacticElement, syntacticLink, and syntacticProperty. Both syntacticElements and syntacticLinks have a linked list of syntacticProperty nodes attached.
   5.384 +
   5.385 +All of the structure unique to a language is encoded in the properties and the srcHolders. There is a kind of srcHolder unique to each language, which is coded to understand the properties of that language. This means that grammar, the type system, and visualization reside inside the srcHolder.
   5.386 +
   5.387 +To extend a language, then, is to modify the srcHolder for that language (the goal is to keep the translator unmodified). So the srcHolder is where grammar extensions, type system extensions, and visualization extensions will be defined: in the visualizer and modifier processors that reside inside the srcHolder.
   5.388 +
   5.389 +The visualization extension is handled by the combination of the modifier, the visualizer, and the Display. Because there is no text form of languages in the OS, to look at code, a visualizer generates a representation, which is in turn painted by a Display.
   5.390 +
   5.391 +Visual representations are implemented by using vector graphics. The primitives of the language have pre-defined vector graphics to represent them, and custom syntax simply adds a new vector graphic drawn by the programmer (plus some drawing rules). Thus, arbitrary drawings created in packages like Inkscape and Illustrator are used as custom notation.
   5.392 +
   5.393 +There are some constants in visualizing a syntax-graph. That is, some visual cues remain the same for all custom notation: a command is indicated by some vector graphic; inputs are indicated by position relative to the command graphic; and output either semantically replaces the command plus inputs, or an arrow points from an output-position to an input-position.
   5.394 +
   5.395 +Grammar extenstions are implemented inside the visualizer and modifier.
   5.396 +
   5.397 +For source-modifying commands there are three kinds of visualization, depending on what one is looking at: viewing an end-user worksheet, viewing the system behind a worksheet, or viewing the specification to construct that system.
   5.398 +
   5.399 +An end-user worksheet is a graphical view of a system of processors. The worksheet displays the contents of multiple Holders on the same worksheet, giving the feeling that they are all part of the same document. The worksheet also represents processors symbolically, indicating how data flows among the processors. Hence, one views source code mixed with processor symbols. 
   5.400 +The exact visualization is implementation dependent. For example, inputs to the system might be seen as variables, while srcHolder processors are seen as dashed boxes surrounding the source inside.
   5.401 +
   5.402 +One interesting way of specifying communication to a processor might be the following. A processor is represented by the source used to create it. Free variables appear in that source. The same variable names are placed on the worksheet outside the processor. When the external variable is set to a new value, that value is communicated into the processor as an input. This allows a user to use relatively standard mathematical notation to indicate communication among processors.
   5.403 +
   5.404 +Other processors might be displayed as some kind of symbol. An input would be indicated by a particular position relative to the symbol, as in A + B the A and B are taken to be inputs because of their position relative to the plus symbol. Or, an arrow might be used to indicate a data connection. Regardless, the user-programmer only sees the worksheets.
   5.405 +
   5.406 +The extensions to POP may cause new menu entries and other GUI gestures to become available to the user-programmer. These GUI extentions are used to modify source, and to modify the system. 
   5.407 +
   5.408 +A possibility of interest to those in the Physics community is for a symbol the programmer places on the worksheet to take a specified area as input and produce output source. The symbol is live so every time the input source becomes modified, the output source updates. Such output source may be specified as input to a translate-and-create symbol. So, the worksheet may have an equation entered by hand, which is inside the input box to a custom transform symbol, whose output goes into a translate-and-create symbol whose output in turn takes live variables on the worksheet as input. The live variables may be assigned to a file processor symbol or be assigned by hand. Either way, each time the variables value changes, new output is produced by the processor created from the automatically modified equation.
   5.409 +
   5.410 +This is useful when one wishes to define a custom transform that takes equations as input, and then test that equations run through the transform produce expected numerical results.
   5.411 +
   5.412 +In more detail, a programmer can use a transform that they create themselves that takes another equation as input, to produce a modification of that second equation, as is common in theoretical physics work. The result of transforming the original equation becomes a translated and running processor seen symbolically on the same worksheet. It efficiently computes data that may be graphed on the worksheet, allowing visual inspection. In this way, the physicist can tell quickly whether the original equation they tried gives expected results (currently, much of this process is done by hand using a math tool for some parts, pen and paper for others, and traditional programming languages for others).
   5.413 +
   5.414 +Worksheet descriptions are a way to re-create a live worksheet. They are normally generated automatically and never seen by humans.
   5.415 +
   5.416 +Systems are what are behind live worksheets. Some things are more easily specified by viewing the system directly and building it via GUI gestures. When viewing a system, processors appear as boxes.
   5.417 +
   5.418 +\subsection{Translatable Custom Notation}
   5.419 +Translatable custom notation is translated by term re-writing. To define a custom translatable command, a re-writing rule is stated. During compilation, this re-writing rule is applied. After re-writing, the result is a combination of POP primitives plus other custom translatable notation. As long as no cycles exist in the re-writing system, the resulting custom translatable notation brings the syntax one step closer to primitives-only. The translator repeats the term re-writing process until only POP primitives remain.
   5.420 +
   5.421 +The translatable type of custom notation is defined using four separate kinds of code:
   5.422 +
   5.423 +1. specification of editor commands and what action the editor performs on the syntax tree for each
   5.424 +
   5.425 +2. specification of the visual form of the notation, and how it corresponds to syntax tree elements
   5.426 +
   5.427 +3. specification of how the GUI turns gestures into editor commands
   5.428 +
   5.429 +4. re-write rules for the custom syntax-graph elements
   5.430 +
   5.431 +Spec 2 is used by the visualizer. The visualizer uses this spec to turn syntax-tree elements into standard visual elements. Making the visualizer do this is straight forward because the syntax-graph form, the standard visual elements, and the visualizer have been designed together to facilitate it.
   5.432 +
   5.433 +Given this, it can be seen that the first three kinds of spec form a cycle: editor-command -> syntax-tree mod -> visual-elements -> GUI display -> user gestures -> editor-command. 
   5.434 +
   5.435 +The first kind of spec covers editor-command -> syntax-tree modification. The second kind covers (modified) sytax-tree ->visual-elements. The second kind also covers GUI display of the visual elements. This is because the second spec includes vector graphics that are given to the srcWindow, and the visualizer specifies the name of the vector graphic in a visual element.
   5.436 +
   5.437 +The user themself performs GUI display -> user gestures.
   5.438 +
   5.439 +The third kind of spec then covers user gestures -> editor-command, completing the cycle.
   5.440 +
   5.441 +For the fourth kind of code, two cases exist: when the term-rewriting rule can be directly specified, and when the term re-writing rule must be generated. Some notation is so complex it requires a processor to generate the re-writing rule from the syntax graph (of custom notation) the user enters.
   5.442 +
   5.443 +3.3.1 Direct translatable custom notation
   5.444 +For the majority of translatable custom notation the re-writing rule can be directly stated when the custom notation is defined. Figure 2 shows an example of defining the summation symbol. Figure 3 shows an example of using the summation symbol thus defined, and Figure 5 shows the result of applying
   5.445 +the rewrite rule in Figure 2 to the use in Figure 3.
   5.446 +
   5.447 +Figure 2. Defining custom notation for the summation symbol
   5.448 +Figure 3. Example of using custom notation 
   5.449 +Figure 4. The resulting From box
   5.450 +Figure 5. The result of applying the re-write rule defined in Figure 2 as used in Figure 3
   5.451 +
   5.452 +In Figure 2, there appear a from dashed box and an into dashed box. The from-box holds the P  vector graphic of the command, surrounded by empty boxes that represent the positions that inputs are placed. The blue line indicates that matches are searched for. When the command is used, as in Figure 3, something will be placed inside the box at the tail of the blue arrow, in this case x. Something will also be placed inside the box that the head of the arrow is inside of, in this case x  x. When this re-writing rule is applied, a search will be performed to find all occurances of whats at the tail, inside the box the arrow-head is inside of, in this case, two separate matches are found.
   5.453 +
   5.454 +In the into-box, at the center is an ellipsis. This is a primitive of POP. The start box, the two repeat boxes and the end box are all part of the ellipsis notation. Ellipsis is the equivalent of a while-loop. It repeats the repeat-box until the evaluation in the end-box is true. 
   5.455 +
   5.456 +The arrows that go from the from-box to the into-box represent syntax that is copied. The arrow starting at the large empty box points to an identical large empty box, indicating that the syntax is taken from that position in the from-box and placed into the into-box. Figure 4 shows what the from-box looks like for the usage seen in Figure 3. Figure 5 shows the result of performing the re-write. It can be seen that what instantiated, from the use, into the big empty box has been copied directly into the final ellipsis. Only the color has changed.
   5.457 +
   5.458 +The blue in the from-into indicated that a repeat was done during copy for every match found. So the blue only had meaning inside the re-write operation. Once the copy of syntax from the from-box to the into-box completes, the blue color is out of scope.
   5.459 +
   5.460 +It can also be seen in Figure 5 that the 1 and the 5 have been copied down, according to the arrows between the from-box and the into-box.
   5.461 +
   5.462 +The dashed boxes are part of the ellipsis notation. One may use them to write a kind of shadow-code that calculates something for each position of the ellipsis. The dashing indicates that, semantically, all of the dashed-box operations are performed before any of the solid-box operations. In this example, all five repetitions will be generated before any actual calculation begins. In each repetition, the results of the dashed-box calculation will be substituted down into the solid boxes.
   5.463 +
   5.464 +However, these five repetitions will never actually be created anywhere. The translator simply knows that the semantics of ellipsis mean that they could be generated. An advantage of these semantics is that dependencies are explicitly stated. Also, only a single primitive is needed: FOR loops, DoAll loops, While loops, do-while loops, and so forth all can be defined as re-write rules that map onto ellipsis.
   5.465 +
   5.466 +3.3.2 Generated Re-Write Rule Type of Translatable Custom Notation
   5.467 +Sometimes the notation includes complex rules for determining the action to take. For example, in Tensor notation, abstract indexes are used as a sort of semaphore. One places a sequence of characters after the TensRep name, each in either super-script position or sub-script position. The particular character used has no significance, only the position in the sequence and raised or lowered matters, and which other postions have the same character. 
   5.468 +The operation one performs on the TensRep changes depending on which positions match. The operation to perform determines the re-writing rule. To determine the re-write rule, one must first parse the index postions and match indexes of the same character. Then one can generate a rule based on where the matching indexes occur (and which index was raised and which lowered).
   5.469 +
   5.470 +For this kind of custom notation, processors must perform work during editing of the code. The environment has provided a generic facility for this. At the time that a srcHolder is added to a programSpace, part of the add-process is a conversation between the programSpace and the srcHolder.
   5.471 +
   5.472 +During this, the srcHolder can point the programSpace to a language-specific architecture description. The programSpace will generate inside itself whatever system the ADL (architecture description language) specifies.
   5.473 +
   5.474 +EQNLang uses this facility to instantiate a re-write-rule factory-factory. This factory-factory has two responsibilities: to create factories for specific custom notation, and to dispatch requests to the appropriate created factory.
   5.475 +
   5.476 +SrcHolders in which generated-rewrite-rule custom notation is entered collect the notations syntax sub-graph from the user, via the GUI. When the sub-graph is complete, the srcHolder sends the subgraph to the re-write-rule factory-factory, asking to receive back the name of the generated re-write rule.
   5.477 +
   5.478 +When the re-write-rule factory-factory receives a syntax sub-graph, it looks in the root node at the name of the custom-command. It then looks to see if it has created a factory for this kind of custom notation yet. If not, it searches for and finds the application code that implements a re-write rule factory for that kind of custom command. It uses the environments name-discovery service to find the srcHolder holding the re-write-rule factorys code, and uses the creator to create a processor from it.
   5.479 +
   5.480 +Next, the re-write-rule factory-factory sends the syntax sub-graph to the factory for that kind of notation. That factory processes the syntax sub-graph, producing the syntax for the re-write rule, and giving the rule a name. It hands the re-write rule to the programSpace, asking it to put the syntax into a new srcHolder. The factory also hands the rule-name to the factory-factory, which hands the name to the original requesting srcHolder. The editor in that srcHolder puts the name into its syntax-graph. 
   5.481 +
   5.482 +Now, the syntax-graph the editor has looks exactly like the syntax-graph for custom notation with re-write rules entered by hand. The only difference is instead of the srcHolder holding the re-write rule being filled by hand by a programmer, the srcHolder was instead filled by a factory.
   5.483 +
   5.484 +When an application programmer writes a re-write-rule factory, they have the full EQNLang available. The factory is a processor, like any other. It simply takes syntax sub-graphs as input and produces syntax for re-write-rules as output.
   5.485 +
   5.486 +3.4 Source Manipulating Custom Notation
   5.487 +POP facilitates math, such as the kind encountered in theoretical physics work. When writing a proof, for example, from one line to the next some transform has been applied. POP supports this kind of work by allowing a symbol to be placed on a (live) worksheet that takes the line above as input, applies the transform indicated by the symbol, and automatically produces the line below. The user may then place another symbol indicating another transform, and so on. If no symbol exists for the transform the user desires, they create a new symbol and define the transform that goes with it.
   5.488 +
   5.489 +Custom source-manipulating notation is used in three places: live worksheets, worksheet descriptions, and systems.
   5.490 +
   5.491 +3.4.1 Live worksheets
   5.492 +On live worksheets, the programmer is interacting with a view of equations, and/or code. They enter equations, manipulate them, then perhaps run some numbers through the final equation to verify that it gives accurate predictions.
   5.493 +
   5.494 +In this process, the programmer might perform some GUI gesture to cut selected equations and replace them with a transformed version. This is referred to as an edit-time use of the transform. The other way a programmer might use a source-modifying transform is to place a symbol on the worksheet that represents the transform. A selection of equations on the worksheet is connected as input to the symbol, and the output appears below the symbol on the worksheet. Any time the input changes, the transform is re-run and produces new equations that appear on the worksheet.
   5.495 +
   5.496 +For example, one may wish to apply the Fourier transform symbolically. The input equation is substituted into the definition of the Fourier transform. This yields an equation as the result. To do this on a live worksheet, one selects the input equation, places the Fourier transform symbol, and the resulting equation pops out below it.
   5.497 +
   5.498 +One may now wish to use the resulting equation the same way one uses normal source. The only complication is how to handle connections. In the first version of EQNLang, this is done by using variable names. Variable names are treated as wires. Variables that appear on the worksheet earlier than an equation containing the same names, are treated as inputs to the equation.
   5.499 +
   5.500 +Thus, if the result of source manipulation contains variable names in input positions, and those same variable names appear earlier in the worksheet, then the earlier assignments act as inputs to the manipulation results. The variable names in input positions will receive whatever was the most recent assignment to that variable name.
   5.501 +
   5.502 +On a live worksheet, earlier and later are determined by scan-order. Starting in the upper left corner, a raster-scan is made that travels along a line from left to right, then goes to the left hand edge of the next line and repeats. Things that are encountered earlier in this scan are earlier in the worksheet. Those that happen later are later in the worksheet.
   5.503 +
   5.504 +So, variables that are assigned-to inside source-manipulation results cause the assigned value to be available to any uses that appear later in the worksheet. And vice versa. 
   5.505 +
   5.506 +For example, one may place a data-stream-source symbol on the worksheet. It can then be assigned to a variable. If one defines input to a manipulation to have that variable, then the result of manipulation will also have the variable. The variables value will thus transmit from the data-stream-source into the manipulation result. Now, to see the numeric result, the manipulation result assigns to a variable. The same variable name is connected to a graph symbol. Data thus flows from the data-stream-source, into variable A, from A into the manipulated equation, which assigns to variable B. The numeric results flow through B into the graph and appear as a plot for the user to inspect.
   5.507 +
   5.508 +3.4.2 Worksheet Descriptions
   5.509 +Worksheet descriptions are normally generated from live worksheets: one creates the live worksheet by hand then causes its description to be generated. The description can be used to recreate the live worksheet, later or in a different OSInstance. 
   5.510 +
   5.511 +Whether generated or entered by hand, a worksheet description is a form of architecture description language for a worksheet plus the system behind the worksheet. The system behind the worksheet is specified with the normal ADL (architecture description language). The worksheet itself is simply another entry in the ADL to create the worksheet processor, plus an entry to cause a srcHolder holding the syntax-graph that was on the live worksheet to be sent to the newly created worksheet to repopulate it.
   5.512 +
   5.513 +3.4.3 Used in a system
   5.514 +A srcManipulator can be placed within a system of processors in four ways:
   5.515 +
   5.516 +1. by directly creating and connecting it in a live system using the GUI
   5.517 +
   5.518 +2. by using the GUI to instantiate a creator then connect the programSpace holding the srcManipu-
   5.519 +lator code to the creator and manually connect the input and output of the creator-generated src-
   5.520 +Manipulator to other processors
   5.521 +
   5.522 +3. by using architecture description primitives to state the creation of a srcManipulator and the con-
   5.523 +nections to the resulting processor
   5.524 +
   5.525 +4. by using architecture description primitives to state the placement of a creator, the placement of a programSpace holding the srcManipulator code, the connection of the programSpace to feed the creator, and the placement and connections of the creator-generated srcManipulator processor.
   5.526 +
   5.527 +
   5.528 +In the first two cases, one is working on a live system by means of a GUI or other command interface. In the last two cases, one is working with an architecture description language that states how to build a live system.
   5.529 +
   5.530 +3.4.4 SrcManipulators in Live Systems
   5.531 +Such a system lives inside a workSpace, which performs checks on processor interfaces against the attempted connections of those processors, as well as other system tasks.
   5.532 +
   5.533 +In case 1, one uses GUI gestures to create a srcManipulator. In this case, the programSpace holding the source code of the srcManipulator does not appear in the workSpace. It is only specified by GUI gestures during creation of the srcManipulator. The resulting srcManipulator appears in the workSpace as a processor-box. One uses further GUI gestures to connect that box to other processors in the system.
   5.534 +
   5.535 +The source code of the srcManipulator contains an interface that determines what connections are allowed. One may send one or more syntax-trees and/or commands and parameters to the srcManipulator, via connections made to it.
   5.536 +
   5.537 +In case 2, one first uses GUI gestures to instantiate a programSpace holding the code for a srcManipulator, then to instantiate a creator, and connect the two. When one placed the creator, a black-box popped up as its output. One then uses further GUI gestures to connect that black-box to other processors in the workSpace. One must instantiate (create) the programSpace and connect it to the creator before the workSpace allows making any connections to the black-box. This allows the interface specified in the code in the programSpace to be checked against the connections made to the black-box. Subsequent changes made to the interface in the source will be checked by the workSpace.
   5.538 +
   5.539 +3.4.5 SrcManipulators in Architecture Descriptions
   5.540 +Architecture descriptions of systems are normally generated by tools: one builds the live system, then has the architecture description of it generated. With the resulting description, the live system can be re-created, at a later time or inside other OSInstances.
   5.541 +
   5.542 +Two approaches can be taken to generating systems from architecture descriptions: make ADL the language of the creator, or make ADL be commands to workSpaces. Each has its attractions.
   5.543 +
   5.544 +When going with making ADL the language of the creator, the creator processor implements the ADL interface the same way a Pentium implements the x86 ISA. To create a live system from an architecture description, one gives it to the creator. The creator builds the system by implementing the architecture description primitives.
   5.545 +
   5.546 +In this case, the only primitives needed in the ADL are for:
   5.547 + finding the names of srcHolders
   5.548 + causing creation of a processor from code inside a srcHolder, and placement into another processor
   5.549 + creating connections among processors
   5.550 + causing an existing processor to be placed, by tunneling into a processor
   5.551 + causing the creator processor, along with its created processor, to be placed into a processor
   5.552 +
   5.553 +From these five, every possible system can be constructed. However, the OSInstance must already contain srcHolders holding the source to create standard types of processor such as workSpaces, programSpaces, srcWindows, new and empty srcHolders, and so on. In addition, if one wishes to create any application-defined processors, one must have the source code for those processors in some srcHolder in the OSInstance before giving the architecture description to the creator.
   5.554 +
   5.555 +If, on the otherhand, one goes with ADL as commands to a workSpace, one creates the top-level workSpace by hand, then gives that workSpace the ADL. The ADL will be heirarchically organized. The top level of the ADL will be commands that create and place processors into the top level workSpace. 
   5.556 +
   5.557 +Some ADL commands will specify creating a new, embedded, workSpace and then handing a sub-tree of the ADL to the embedded workSpace. Thus, a system builds itself.
   5.558 +
   5.559 +The only primitives needed in addition to those for the creator-case are:
   5.560 +
   5.561 + a primitive that demarcates an ADL sub-tree (defines the sub-trees boundaries)
   5.562 +
   5.563 + a primitive that causes an ADL sub-tree to be handed to a processor
   5.564 +
   5.565 +This is probably the more flexible option, allowing customization of ADL by writing new kinds of Space processors to give the new custom commands to. However, it may have logistical implications for the proliferation of Space types and compatibilities. Both paths look interesting.
   5.566 +
   5.567 +Either way one goes, no special syntactic mechanism is needed for srcManipulators in architecture descriptions. In live worksheets, srcManipulators had to be treated specially because they implied modifications to the system backing the worksheet. But in ADL code, one is specifying the system directly, so a srcManipulator is just another processor.
   5.568 +
   5.569 +When considering custom notation in architecture descriptions, the situation is a bit simplified because architecture descriptions are, by their nature, never inter-mixed with live processors. So one can always use translatable custom notation in architecture descriptions, even when specifying the creation and inter-connection of srcManipulators. Custom ADL notation, even involving srcManipulators, can be specified to re-write itself into the above primitives (or primitives plus other custom ADL notation).
   5.570 +
   5.571 +Only one compilication exists, which is checking interfaces when creating connections between processors. The source code of the srcManipulator is not necessarily known at the time of the system creation. Nor is the syntax-graph that will flow into the srcManipulator necessarily known. Thus, no analysis can be done to discover the types of the ports on the processors created from the output of the srcManipulator. 
   5.572 +
   5.573 +The creator must connect the creator-generated processors blindly. This means that run-time checks will have to be performed. These checks can be done on code when it is inside the creator, or the workSpace can perform checks on the ports of a creator-generated processor before disconnecting the old creator-generated processor and connecting up the new one.
   5.574 +
   5.575 +Who checks the interfaces of processors generated from srcManipulators is independent of ADL choice. After the system creation is complete, the code that leaves a srcManipulator is put through a creator. So it only matters that the resulting processors interface is checked every time the srcManipulator outputs new code.
   5.576 +
   5.577 +3.5 Implementing POPs proposed features
   5.578 +We desire application-code extensions to the syntax of POP, without modifying the Translator (compiler). In general, this is possible in (at least) two ways: by re-writing the extended syntax into language primitives just before compiling; and by doing live modification of source, while the program is running, then compiling and linking it in to the running program. POP uses both methods. 
   5.579 +
   5.580 +Because of the nature of the OS, compiling a POP program is quite different than with other languages. Traditional compiling includes lexical analysis to turn character sequences into a syntax structure, plus grammatic analysis to determine the kind of syntactic element each token represents, plus optimization transforms, followed by translation to a different language (such as assembly).
   5.581 +
   5.582 +In POP, these functions are separated out and performed in many different processors. As a result, only translation is performed in a POP compiler. To avoid confusion, in the OS, what would otherwise be called the compiler is called the Translator. The re-writing step, in POP, is implemented with standard re-write techniques. 
   5.583 +
   5.584 +Meanwhile, new syntax that semantically means that source code will be modified during a run and turned into a live processor that is linked in during that same run is implemented using features of the OS. The OS includes a command to translate code, one to create a new processor from translated code, and one to link the newly created processor into a pre-existing system of processors.
   5.585 +
   5.586 +
     6.1 Binary file 0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow.pdf has changed
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow.svg	Mon Oct 08 23:03:26 2012 -0700
     7.3 @@ -0,0 +1,3090 @@
     7.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
     7.5 +<!-- Created with Inkscape (http://www.inkscape.org/) -->
     7.6 +
     7.7 +<svg
     7.8 +   xmlns:dc="http://purl.org/dc/elements/1.1/"
     7.9 +   xmlns:cc="http://creativecommons.org/ns#"
    7.10 +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    7.11 +   xmlns:svg="http://www.w3.org/2000/svg"
    7.12 +   xmlns="http://www.w3.org/2000/svg"
    7.13 +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    7.14 +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    7.15 +   width="1488.189"
    7.16 +   height="1052.3622"
    7.17 +   id="svg2"
    7.18 +   sodipodi:version="0.32"
    7.19 +   inkscape:version="0.48.1 "
    7.20 +   sodipodi:docname="control_flow.svg"
    7.21 +   inkscape:output_extension="org.inkscape.output.svg.inkscape"
    7.22 +   version="1.1">
    7.23 +  <defs
    7.24 +     id="defs4">
    7.25 +    <marker
    7.26 +       inkscape:stockid="StopL"
    7.27 +       orient="auto"
    7.28 +       refY="0"
    7.29 +       refX="0"
    7.30 +       id="StopL"
    7.31 +       style="overflow:visible">
    7.32 +      <path
    7.33 +         id="path10015"
    7.34 +         d="M 0,5.65 0,-5.65"
    7.35 +         style="fill:none;stroke:#000000;stroke-width:1pt"
    7.36 +         transform="scale(0.8,0.8)"
    7.37 +         inkscape:connector-curvature="0" />
    7.38 +    </marker>
    7.39 +    <marker
    7.40 +       inkscape:stockid="TriangleOutL"
    7.41 +       orient="auto"
    7.42 +       refY="0"
    7.43 +       refX="0"
    7.44 +       id="TriangleOutL"
    7.45 +       style="overflow:visible">
    7.46 +      <path
    7.47 +         id="path9988"
    7.48 +         d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
    7.49 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
    7.50 +         transform="scale(0.8,0.8)"
    7.51 +         inkscape:connector-curvature="0" />
    7.52 +    </marker>
    7.53 +    <marker
    7.54 +       inkscape:stockid="Arrow2Mstart"
    7.55 +       orient="auto"
    7.56 +       refY="0"
    7.57 +       refX="0"
    7.58 +       id="Arrow2Mstart"
    7.59 +       style="overflow:visible">
    7.60 +      <path
    7.61 +         id="path5492"
    7.62 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
    7.63 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
    7.64 +         transform="scale(0.6,0.6)"
    7.65 +         inkscape:connector-curvature="0" />
    7.66 +    </marker>
    7.67 +    <marker
    7.68 +       inkscape:stockid="Arrow2Mend"
    7.69 +       orient="auto"
    7.70 +       refY="0"
    7.71 +       refX="0"
    7.72 +       id="Arrow2Mend"
    7.73 +       style="overflow:visible">
    7.74 +      <path
    7.75 +         id="path3563"
    7.76 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
    7.77 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
    7.78 +         transform="scale(-0.6,-0.6)"
    7.79 +         inkscape:connector-curvature="0" />
    7.80 +    </marker>
    7.81 +    <marker
    7.82 +       inkscape:stockid="TriangleOutM"
    7.83 +       orient="auto"
    7.84 +       refY="0"
    7.85 +       refX="0"
    7.86 +       id="TriangleOutM"
    7.87 +       style="overflow:visible">
    7.88 +      <path
    7.89 +         id="path3682"
    7.90 +         d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
    7.91 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
    7.92 +         transform="scale(0.4,0.4)"
    7.93 +         inkscape:connector-curvature="0" />
    7.94 +    </marker>
    7.95 +    <marker
    7.96 +       inkscape:stockid="Arrow2Lend"
    7.97 +       orient="auto"
    7.98 +       refY="0"
    7.99 +       refX="0"
   7.100 +       id="Arrow2Lend"
   7.101 +       style="overflow:visible">
   7.102 +      <path
   7.103 +         id="path3557"
   7.104 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.105 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.106 +         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
   7.107 +         inkscape:connector-curvature="0" />
   7.108 +    </marker>
   7.109 +    <marker
   7.110 +       inkscape:stockid="Arrow1Mstart"
   7.111 +       orient="auto"
   7.112 +       refY="0"
   7.113 +       refX="0"
   7.114 +       id="Arrow1Mstart"
   7.115 +       style="overflow:visible">
   7.116 +      <path
   7.117 +         id="path3542"
   7.118 +         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
   7.119 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
   7.120 +         transform="matrix(0.4,0,0,0.4,4,0)"
   7.121 +         inkscape:connector-curvature="0" />
   7.122 +    </marker>
   7.123 +    <marker
   7.124 +       inkscape:stockid="Arrow1Lend"
   7.125 +       orient="auto"
   7.126 +       refY="0"
   7.127 +       refX="0"
   7.128 +       id="Arrow1Lend"
   7.129 +       style="overflow:visible">
   7.130 +      <path
   7.131 +         id="path3539"
   7.132 +         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
   7.133 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
   7.134 +         transform="matrix(-0.8,0,0,-0.8,-10,0)"
   7.135 +         inkscape:connector-curvature="0" />
   7.136 +    </marker>
   7.137 +    <marker
   7.138 +       inkscape:stockid="Arrow1Lstart"
   7.139 +       orient="auto"
   7.140 +       refY="0"
   7.141 +       refX="0"
   7.142 +       id="Arrow1Lstart"
   7.143 +       style="overflow:visible">
   7.144 +      <path
   7.145 +         id="path3536"
   7.146 +         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
   7.147 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
   7.148 +         transform="matrix(0.8,0,0,0.8,10,0)"
   7.149 +         inkscape:connector-curvature="0" />
   7.150 +    </marker>
   7.151 +    <inkscape:perspective
   7.152 +       sodipodi:type="inkscape:persp3d"
   7.153 +       inkscape:vp_x="0 : 526.18109 : 1"
   7.154 +       inkscape:vp_y="0 : 1000 : 0"
   7.155 +       inkscape:vp_z="744.09448 : 526.18109 : 1"
   7.156 +       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
   7.157 +       id="perspective10" />
   7.158 +    <inkscape:perspective
   7.159 +       id="perspective4311"
   7.160 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.161 +       inkscape:vp_z="1 : 0.5 : 1"
   7.162 +       inkscape:vp_y="0 : 1000 : 0"
   7.163 +       inkscape:vp_x="0 : 0.5 : 1"
   7.164 +       sodipodi:type="inkscape:persp3d" />
   7.165 +    <inkscape:perspective
   7.166 +       id="perspective4336"
   7.167 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.168 +       inkscape:vp_z="1 : 0.5 : 1"
   7.169 +       inkscape:vp_y="0 : 1000 : 0"
   7.170 +       inkscape:vp_x="0 : 0.5 : 1"
   7.171 +       sodipodi:type="inkscape:persp3d" />
   7.172 +    <inkscape:perspective
   7.173 +       id="perspective4365"
   7.174 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.175 +       inkscape:vp_z="1 : 0.5 : 1"
   7.176 +       inkscape:vp_y="0 : 1000 : 0"
   7.177 +       inkscape:vp_x="0 : 0.5 : 1"
   7.178 +       sodipodi:type="inkscape:persp3d" />
   7.179 +    <marker
   7.180 +       inkscape:stockid="Arrow2Mend"
   7.181 +       orient="auto"
   7.182 +       refY="0"
   7.183 +       refX="0"
   7.184 +       id="Arrow2Mend-9"
   7.185 +       style="overflow:visible">
   7.186 +      <path
   7.187 +         id="path3563-4"
   7.188 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.189 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.190 +         transform="scale(-0.6,-0.6)"
   7.191 +         inkscape:connector-curvature="0" />
   7.192 +    </marker>
   7.193 +    <inkscape:perspective
   7.194 +       id="perspective4423"
   7.195 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.196 +       inkscape:vp_z="1 : 0.5 : 1"
   7.197 +       inkscape:vp_y="0 : 1000 : 0"
   7.198 +       inkscape:vp_x="0 : 0.5 : 1"
   7.199 +       sodipodi:type="inkscape:persp3d" />
   7.200 +    <marker
   7.201 +       inkscape:stockid="Arrow2Mend"
   7.202 +       orient="auto"
   7.203 +       refY="0"
   7.204 +       refX="0"
   7.205 +       id="Arrow2Mend-8"
   7.206 +       style="overflow:visible">
   7.207 +      <path
   7.208 +         id="path3563-2"
   7.209 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.210 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.211 +         transform="scale(-0.6,-0.6)"
   7.212 +         inkscape:connector-curvature="0" />
   7.213 +    </marker>
   7.214 +    <inkscape:perspective
   7.215 +       id="perspective4461"
   7.216 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.217 +       inkscape:vp_z="1 : 0.5 : 1"
   7.218 +       inkscape:vp_y="0 : 1000 : 0"
   7.219 +       inkscape:vp_x="0 : 0.5 : 1"
   7.220 +       sodipodi:type="inkscape:persp3d" />
   7.221 +    <inkscape:perspective
   7.222 +       id="perspective14081"
   7.223 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.224 +       inkscape:vp_z="1 : 0.5 : 1"
   7.225 +       inkscape:vp_y="0 : 1000 : 0"
   7.226 +       inkscape:vp_x="0 : 0.5 : 1"
   7.227 +       sodipodi:type="inkscape:persp3d" />
   7.228 +    <inkscape:perspective
   7.229 +       id="perspective14206"
   7.230 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.231 +       inkscape:vp_z="1 : 0.5 : 1"
   7.232 +       inkscape:vp_y="0 : 1000 : 0"
   7.233 +       inkscape:vp_x="0 : 0.5 : 1"
   7.234 +       sodipodi:type="inkscape:persp3d" />
   7.235 +    <inkscape:perspective
   7.236 +       id="perspective14299"
   7.237 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.238 +       inkscape:vp_z="1 : 0.5 : 1"
   7.239 +       inkscape:vp_y="0 : 1000 : 0"
   7.240 +       inkscape:vp_x="0 : 0.5 : 1"
   7.241 +       sodipodi:type="inkscape:persp3d" />
   7.242 +    <inkscape:perspective
   7.243 +       id="perspective16915"
   7.244 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.245 +       inkscape:vp_z="1 : 0.5 : 1"
   7.246 +       inkscape:vp_y="0 : 1000 : 0"
   7.247 +       inkscape:vp_x="0 : 0.5 : 1"
   7.248 +       sodipodi:type="inkscape:persp3d" />
   7.249 +    <inkscape:perspective
   7.250 +       id="perspective16946"
   7.251 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.252 +       inkscape:vp_z="1 : 0.5 : 1"
   7.253 +       inkscape:vp_y="0 : 1000 : 0"
   7.254 +       inkscape:vp_x="0 : 0.5 : 1"
   7.255 +       sodipodi:type="inkscape:persp3d" />
   7.256 +    <inkscape:perspective
   7.257 +       id="perspective17789"
   7.258 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.259 +       inkscape:vp_z="1 : 0.5 : 1"
   7.260 +       inkscape:vp_y="0 : 1000 : 0"
   7.261 +       inkscape:vp_x="0 : 0.5 : 1"
   7.262 +       sodipodi:type="inkscape:persp3d" />
   7.263 +    <inkscape:perspective
   7.264 +       id="perspective17820"
   7.265 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.266 +       inkscape:vp_z="1 : 0.5 : 1"
   7.267 +       inkscape:vp_y="0 : 1000 : 0"
   7.268 +       inkscape:vp_x="0 : 0.5 : 1"
   7.269 +       sodipodi:type="inkscape:persp3d" />
   7.270 +    <marker
   7.271 +       inkscape:stockid="Arrow2Mend"
   7.272 +       orient="auto"
   7.273 +       refY="0"
   7.274 +       refX="0"
   7.275 +       id="Arrow2Mend-8-2"
   7.276 +       style="overflow:visible">
   7.277 +      <path
   7.278 +         id="path3563-2-3"
   7.279 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.280 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.281 +         transform="scale(-0.6,-0.6)"
   7.282 +         inkscape:connector-curvature="0" />
   7.283 +    </marker>
   7.284 +    <inkscape:perspective
   7.285 +       id="perspective17848"
   7.286 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.287 +       inkscape:vp_z="1 : 0.5 : 1"
   7.288 +       inkscape:vp_y="0 : 1000 : 0"
   7.289 +       inkscape:vp_x="0 : 0.5 : 1"
   7.290 +       sodipodi:type="inkscape:persp3d" />
   7.291 +    <inkscape:perspective
   7.292 +       id="perspective17891"
   7.293 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.294 +       inkscape:vp_z="1 : 0.5 : 1"
   7.295 +       inkscape:vp_y="0 : 1000 : 0"
   7.296 +       inkscape:vp_x="0 : 0.5 : 1"
   7.297 +       sodipodi:type="inkscape:persp3d" />
   7.298 +    <marker
   7.299 +       inkscape:stockid="Arrow2Mend"
   7.300 +       orient="auto"
   7.301 +       refY="0"
   7.302 +       refX="0"
   7.303 +       id="Arrow2Mend-8-7"
   7.304 +       style="overflow:visible">
   7.305 +      <path
   7.306 +         id="path3563-2-8"
   7.307 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.308 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.309 +         transform="scale(-0.6,-0.6)"
   7.310 +         inkscape:connector-curvature="0" />
   7.311 +    </marker>
   7.312 +    <inkscape:perspective
   7.313 +       id="perspective17925"
   7.314 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.315 +       inkscape:vp_z="1 : 0.5 : 1"
   7.316 +       inkscape:vp_y="0 : 1000 : 0"
   7.317 +       inkscape:vp_x="0 : 0.5 : 1"
   7.318 +       sodipodi:type="inkscape:persp3d" />
   7.319 +    <inkscape:perspective
   7.320 +       id="perspective17996"
   7.321 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.322 +       inkscape:vp_z="1 : 0.5 : 1"
   7.323 +       inkscape:vp_y="0 : 1000 : 0"
   7.324 +       inkscape:vp_x="0 : 0.5 : 1"
   7.325 +       sodipodi:type="inkscape:persp3d" />
   7.326 +    <inkscape:perspective
   7.327 +       id="perspective18039"
   7.328 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.329 +       inkscape:vp_z="1 : 0.5 : 1"
   7.330 +       inkscape:vp_y="0 : 1000 : 0"
   7.331 +       inkscape:vp_x="0 : 0.5 : 1"
   7.332 +       sodipodi:type="inkscape:persp3d" />
   7.333 +    <inkscape:perspective
   7.334 +       id="perspective18073"
   7.335 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.336 +       inkscape:vp_z="1 : 0.5 : 1"
   7.337 +       inkscape:vp_y="0 : 1000 : 0"
   7.338 +       inkscape:vp_x="0 : 0.5 : 1"
   7.339 +       sodipodi:type="inkscape:persp3d" />
   7.340 +    <inkscape:perspective
   7.341 +       id="perspective4016"
   7.342 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.343 +       inkscape:vp_z="1 : 0.5 : 1"
   7.344 +       inkscape:vp_y="0 : 1000 : 0"
   7.345 +       inkscape:vp_x="0 : 0.5 : 1"
   7.346 +       sodipodi:type="inkscape:persp3d" />
   7.347 +    <inkscape:perspective
   7.348 +       id="perspective4046"
   7.349 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.350 +       inkscape:vp_z="1 : 0.5 : 1"
   7.351 +       inkscape:vp_y="0 : 1000 : 0"
   7.352 +       inkscape:vp_x="0 : 0.5 : 1"
   7.353 +       sodipodi:type="inkscape:persp3d" />
   7.354 +    <inkscape:perspective
   7.355 +       id="perspective4071"
   7.356 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.357 +       inkscape:vp_z="1 : 0.5 : 1"
   7.358 +       inkscape:vp_y="0 : 1000 : 0"
   7.359 +       inkscape:vp_x="0 : 0.5 : 1"
   7.360 +       sodipodi:type="inkscape:persp3d" />
   7.361 +    <inkscape:perspective
   7.362 +       id="perspective4101"
   7.363 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.364 +       inkscape:vp_z="1 : 0.5 : 1"
   7.365 +       inkscape:vp_y="0 : 1000 : 0"
   7.366 +       inkscape:vp_x="0 : 0.5 : 1"
   7.367 +       sodipodi:type="inkscape:persp3d" />
   7.368 +    <inkscape:perspective
   7.369 +       id="perspective5945"
   7.370 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.371 +       inkscape:vp_z="1 : 0.5 : 1"
   7.372 +       inkscape:vp_y="0 : 1000 : 0"
   7.373 +       inkscape:vp_x="0 : 0.5 : 1"
   7.374 +       sodipodi:type="inkscape:persp3d" />
   7.375 +    <inkscape:perspective
   7.376 +       id="perspective4144"
   7.377 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.378 +       inkscape:vp_z="1 : 0.5 : 1"
   7.379 +       inkscape:vp_y="0 : 1000 : 0"
   7.380 +       inkscape:vp_x="0 : 0.5 : 1"
   7.381 +       sodipodi:type="inkscape:persp3d" />
   7.382 +    <marker
   7.383 +       inkscape:stockid="Arrow2Mend"
   7.384 +       orient="auto"
   7.385 +       refY="0"
   7.386 +       refX="0"
   7.387 +       id="Arrow2Mend-8-7-1"
   7.388 +       style="overflow:visible">
   7.389 +      <path
   7.390 +         id="path3563-2-8-7"
   7.391 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.392 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.393 +         transform="scale(-0.6,-0.6)"
   7.394 +         inkscape:connector-curvature="0" />
   7.395 +    </marker>
   7.396 +    <inkscape:perspective
   7.397 +       id="perspective4733"
   7.398 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   7.399 +       inkscape:vp_z="1 : 0.5 : 1"
   7.400 +       inkscape:vp_y="0 : 1000 : 0"
   7.401 +       inkscape:vp_x="0 : 0.5 : 1"
   7.402 +       sodipodi:type="inkscape:persp3d" />
   7.403 +    <marker
   7.404 +       inkscape:stockid="Arrow2Mend"
   7.405 +       orient="auto"
   7.406 +       refY="0"
   7.407 +       refX="0"
   7.408 +       id="Arrow2Mend-8-7-12"
   7.409 +       style="overflow:visible">
   7.410 +      <path
   7.411 +         inkscape:connector-curvature="0"
   7.412 +         id="path3563-2-8-2"
   7.413 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.414 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.415 +         transform="scale(-0.6,-0.6)" />
   7.416 +    </marker>
   7.417 +    <marker
   7.418 +       inkscape:stockid="Arrow2Mend"
   7.419 +       orient="auto"
   7.420 +       refY="0"
   7.421 +       refX="0"
   7.422 +       id="marker8401"
   7.423 +       style="overflow:visible">
   7.424 +      <path
   7.425 +         inkscape:connector-curvature="0"
   7.426 +         id="path8403"
   7.427 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.428 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.429 +         transform="scale(-0.6,-0.6)" />
   7.430 +    </marker>
   7.431 +    <marker
   7.432 +       inkscape:stockid="Arrow2Mend"
   7.433 +       orient="auto"
   7.434 +       refY="0"
   7.435 +       refX="0"
   7.436 +       id="marker8405"
   7.437 +       style="overflow:visible">
   7.438 +      <path
   7.439 +         inkscape:connector-curvature="0"
   7.440 +         id="path8407"
   7.441 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.442 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.443 +         transform="scale(-0.6,-0.6)" />
   7.444 +    </marker>
   7.445 +    <marker
   7.446 +       inkscape:stockid="Arrow2Mend"
   7.447 +       orient="auto"
   7.448 +       refY="0"
   7.449 +       refX="0"
   7.450 +       id="marker8409"
   7.451 +       style="overflow:visible">
   7.452 +      <path
   7.453 +         inkscape:connector-curvature="0"
   7.454 +         id="path8411"
   7.455 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.456 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.457 +         transform="scale(-0.6,-0.6)" />
   7.458 +    </marker>
   7.459 +    <marker
   7.460 +       inkscape:stockid="Arrow2Mend"
   7.461 +       orient="auto"
   7.462 +       refY="0"
   7.463 +       refX="0"
   7.464 +       id="marker8413"
   7.465 +       style="overflow:visible">
   7.466 +      <path
   7.467 +         inkscape:connector-curvature="0"
   7.468 +         id="path8415"
   7.469 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.470 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.471 +         transform="scale(-0.6,-0.6)" />
   7.472 +    </marker>
   7.473 +    <marker
   7.474 +       inkscape:stockid="Arrow2Mend"
   7.475 +       orient="auto"
   7.476 +       refY="0"
   7.477 +       refX="0"
   7.478 +       id="marker8417"
   7.479 +       style="overflow:visible">
   7.480 +      <path
   7.481 +         inkscape:connector-curvature="0"
   7.482 +         id="path8419"
   7.483 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.484 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.485 +         transform="scale(-0.6,-0.6)" />
   7.486 +    </marker>
   7.487 +    <marker
   7.488 +       inkscape:stockid="Arrow2Mend"
   7.489 +       orient="auto"
   7.490 +       refY="0"
   7.491 +       refX="0"
   7.492 +       id="Arrow2Mend-8-7-17"
   7.493 +       style="overflow:visible">
   7.494 +      <path
   7.495 +         inkscape:connector-curvature="0"
   7.496 +         id="path3563-2-8-5"
   7.497 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.498 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.499 +         transform="scale(-0.6,-0.6)" />
   7.500 +    </marker>
   7.501 +    <marker
   7.502 +       inkscape:stockid="Arrow2Mend"
   7.503 +       orient="auto"
   7.504 +       refY="0"
   7.505 +       refX="0"
   7.506 +       id="Arrow2Mend-8-7-0"
   7.507 +       style="overflow:visible">
   7.508 +      <path
   7.509 +         inkscape:connector-curvature="0"
   7.510 +         id="path3563-2-8-3"
   7.511 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   7.512 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   7.513 +         transform="scale(-0.6,-0.6)" />
   7.514 +    </marker>
   7.515 +  </defs>
   7.516 +  <sodipodi:namedview
   7.517 +     id="base"
   7.518 +     pagecolor="#ffffff"
   7.519 +     bordercolor="#666666"
   7.520 +     borderopacity="1.0"
   7.521 +     gridtolerance="10000"
   7.522 +     guidetolerance="10"
   7.523 +     objecttolerance="10"
   7.524 +     inkscape:pageopacity="0.0"
   7.525 +     inkscape:pageshadow="2"
   7.526 +     inkscape:zoom="0.97968464"
   7.527 +     inkscape:cx="457.74508"
   7.528 +     inkscape:cy="264.16662"
   7.529 +     inkscape:document-units="px"
   7.530 +     inkscape:current-layer="layer1"
   7.531 +     showgrid="false"
   7.532 +     inkscape:window-width="1600"
   7.533 +     inkscape:window-height="848"
   7.534 +     inkscape:window-x="-8"
   7.535 +     inkscape:window-y="-8"
   7.536 +     inkscape:window-maximized="1" />
   7.537 +  <metadata
   7.538 +     id="metadata7">
   7.539 +    <rdf:RDF>
   7.540 +      <cc:Work
   7.541 +         rdf:about="">
   7.542 +        <dc:format>image/svg+xml</dc:format>
   7.543 +        <dc:type
   7.544 +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
   7.545 +        <dc:title></dc:title>
   7.546 +      </cc:Work>
   7.547 +    </rdf:RDF>
   7.548 +  </metadata>
   7.549 +  <g
   7.550 +     inkscape:label="Layer 1"
   7.551 +     inkscape:groupmode="layer"
   7.552 +     id="layer1"
   7.553 +     transform="translate(-3.5307846,729.06884)">
   7.554 +    <text
   7.555 +       xml:space="preserve"
   7.556 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.557 +       x="441.66748"
   7.558 +       y="344.66492"
   7.559 +       id="text8002"
   7.560 +       sodipodi:linespacing="100%"><tspan
   7.561 +         sodipodi:role="line"
   7.562 +         x="441.66748"
   7.563 +         y="344.66492"
   7.564 +         style="font-size:8px"
   7.565 +         id="tspan12172" /></text>
   7.566 +    <text
   7.567 +       xml:space="preserve"
   7.568 +       style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.569 +       x="368.25397"
   7.570 +       y="345.27225"
   7.571 +       id="text5849"><tspan
   7.572 +         sodipodi:role="line"
   7.573 +         id="tspan5851"
   7.574 +         x="368.25397"
   7.575 +         y="345.27225" /></text>
   7.576 +    <g
   7.577 +       transform="translate(-22.94669,-784)"
   7.578 +       id="g8065">
   7.579 +      <text
   7.580 +         xml:space="preserve"
   7.581 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.582 +         x="222.37003"
   7.583 +         y="285.39841"
   7.584 +         id="text8067"
   7.585 +         sodipodi:linespacing="100%"><tspan
   7.586 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.587 +           sodipodi:role="line"
   7.588 +           x="222.37003"
   7.589 +           y="285.39841"
   7.590 +           id="tspan11696">save VP</tspan><tspan
   7.591 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.592 +           sodipodi:role="line"
   7.593 +           x="222.37003"
   7.594 +           y="294.39841"
   7.595 +           id="tspan12201">context</tspan></text>
   7.596 +      <rect
   7.597 +         y="274.77512"
   7.598 +         x="193.78287"
   7.599 +         height="25.544432"
   7.600 +         width="57.486332"
   7.601 +         id="rect8073"
   7.602 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
   7.603 +    </g>
   7.604 +    <g
   7.605 +       id="g11700"
   7.606 +       transform="translate(160,-40)">
   7.607 +      <text
   7.608 +         xml:space="preserve"
   7.609 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.610 +         x="579.39252"
   7.611 +         y="-343.22998"
   7.612 +         id="text11476"
   7.613 +         sodipodi:linespacing="100%"><tspan
   7.614 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.615 +           sodipodi:role="line"
   7.616 +           x="579.39252"
   7.617 +           y="-343.22998"
   7.618 +           id="tspan11478">which</tspan><tspan
   7.619 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.620 +           sodipodi:role="line"
   7.621 +           x="579.39252"
   7.622 +           y="-334.22998"
   7.623 +           id="tspan12299">context</tspan><tspan
   7.624 +           id="tspan11480"
   7.625 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.626 +           sodipodi:role="line"
   7.627 +           x="579.39252"
   7.628 +           y="-325.22998">switch</tspan></text>
   7.629 +      <rect
   7.630 +         ry="0"
   7.631 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
   7.632 +         y="93.582199"
   7.633 +         x="624.01776"
   7.634 +         height="36.457531"
   7.635 +         width="36.810017"
   7.636 +         id="rect11482"
   7.637 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
   7.638 +    </g>
   7.639 +    <g
   7.640 +       transform="translate(177.05331,-664)"
   7.641 +       id="g8103">
   7.642 +      <text
   7.643 +         xml:space="preserve"
   7.644 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.645 +         x="222.25137"
   7.646 +         y="285.36765"
   7.647 +         id="text8105"
   7.648 +         sodipodi:linespacing="100%"><tspan
   7.649 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.650 +           sodipodi:role="line"
   7.651 +           x="222.25137"
   7.652 +           y="285.36765"
   7.653 +           id="tspan8111">constraint</tspan><tspan
   7.654 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.655 +           sodipodi:role="line"
   7.656 +           x="222.25137"
   7.657 +           y="294.36765"
   7.658 +           id="tspan8115">update hdlr</tspan></text>
   7.659 +      <rect
   7.660 +         y="274.77512"
   7.661 +         x="193.78287"
   7.662 +         height="25.544432"
   7.663 +         width="57.486332"
   7.664 +         id="rect8109"
   7.665 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
   7.666 +    </g>
   7.667 +    <g
   7.668 +       id="g8165"
   7.669 +       transform="translate(177.05331,-604)">
   7.670 +      <text
   7.671 +         sodipodi:linespacing="100%"
   7.672 +         id="text8167"
   7.673 +         y="285.39841"
   7.674 +         x="222.37003"
   7.675 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.676 +         xml:space="preserve"><tspan
   7.677 +           id="tspan8169"
   7.678 +           y="285.39841"
   7.679 +           x="222.37003"
   7.680 +           sodipodi:role="line"
   7.681 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Push work</tspan><tspan
   7.682 +           y="294.39841"
   7.683 +           x="222.37003"
   7.684 +           sodipodi:role="line"
   7.685 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.686 +           id="tspan11020">onto Q</tspan></text>
   7.687 +      <rect
   7.688 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
   7.689 +         id="rect8171"
   7.690 +         width="57.486332"
   7.691 +         height="25.544432"
   7.692 +         x="193.78287"
   7.693 +         y="274.77512" />
   7.694 +    </g>
   7.695 +    <g
   7.696 +       transform="translate(437.05331,-664)"
   7.697 +       id="g8173">
   7.698 +      <text
   7.699 +         xml:space="preserve"
   7.700 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.701 +         x="222.37003"
   7.702 +         y="285.69943"
   7.703 +         id="text8175"
   7.704 +         sodipodi:linespacing="100%"><tspan
   7.705 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.706 +           sodipodi:role="line"
   7.707 +           x="222.37003"
   7.708 +           y="285.69943"
   7.709 +           id="tspan11014">Take work-</tspan><tspan
   7.710 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.711 +           sodipodi:role="line"
   7.712 +           x="222.37003"
   7.713 +           y="294.69943"
   7.714 +           id="tspan11018">unit from Q</tspan></text>
   7.715 +      <rect
   7.716 +         y="274.77512"
   7.717 +         x="193.78287"
   7.718 +         height="25.544432"
   7.719 +         width="57.486332"
   7.720 +         id="rect8179"
   7.721 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
   7.722 +    </g>
   7.723 +    <path
   7.724 +       sodipodi:nodetypes="cc"
   7.725 +       inkscape:connector-curvature="0"
   7.726 +       id="path8510"
   7.727 +       d="m 30.09217,-376.20795 134.75175,0"
   7.728 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" />
   7.729 +    <text
   7.730 +       xml:space="preserve"
   7.731 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.732 +       x="95.276283"
   7.733 +       y="-377.95343"
   7.734 +       id="text8067-3"
   7.735 +       sodipodi:linespacing="100%"><tspan
   7.736 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.737 +         sodipodi:role="line"
   7.738 +         x="95.276283"
   7.739 +         y="-377.95343"
   7.740 +         id="tspan8071-6">Non-suspend end of work-unit</tspan></text>
   7.741 +    <path
   7.742 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)"
   7.743 +       d="m 30.09217,-496.20795 134.75175,0"
   7.744 +       id="path11002"
   7.745 +       inkscape:connector-curvature="0"
   7.746 +       sodipodi:nodetypes="cc" />
   7.747 +    <text
   7.748 +       sodipodi:linespacing="100%"
   7.749 +       id="text11004"
   7.750 +       y="-497.95343"
   7.751 +       x="95.430077"
   7.752 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.753 +       xml:space="preserve"><tspan
   7.754 +         id="tspan11006"
   7.755 +         y="-497.95343"
   7.756 +         x="95.430077"
   7.757 +         sodipodi:role="line"
   7.758 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Suspend at end of work-unit</tspan></text>
   7.759 +    <path
   7.760 +       sodipodi:nodetypes="cc"
   7.761 +       inkscape:connector-curvature="0"
   7.762 +       id="path11472"
   7.763 +       d="m 399.56974,-364.00562 0,34.68367"
   7.764 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
   7.765 +    <path
   7.766 +       sodipodi:nodetypes="cc"
   7.767 +       inkscape:connector-curvature="0"
   7.768 +       id="path11484"
   7.769 +       d="m 688.09217,-376.20795 22.13646,0"
   7.770 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
   7.771 +    <path
   7.772 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
   7.773 +       d="m 768.09217,-376.20795 41.4633,0"
   7.774 +       id="path11518"
   7.775 +       inkscape:connector-curvature="0"
   7.776 +       sodipodi:nodetypes="cc" />
   7.777 +    <text
   7.778 +       sodipodi:linespacing="100%"
   7.779 +       id="text11578"
   7.780 +       y="-387.95343"
   7.781 +       x="295.27628"
   7.782 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.783 +       xml:space="preserve"><tspan
   7.784 +         id="tspan11580"
   7.785 +         y="-387.95343"
   7.786 +         x="295.27628"
   7.787 +         sodipodi:role="line"
   7.788 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" /></text>
   7.789 +    <text
   7.790 +       xml:space="preserve"
   7.791 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.792 +       x="729.43005"
   7.793 +       y="-341.95343"
   7.794 +       id="text11616"
   7.795 +       sodipodi:linespacing="100%"><tspan
   7.796 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   7.797 +         sodipodi:role="line"
   7.798 +         x="730.78357"
   7.799 +         y="-341.95343"
   7.800 +         id="tspan11618">     new </tspan><tspan
   7.801 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   7.802 +         sodipodi:role="line"
   7.803 +         x="729.43005"
   7.804 +         y="-332.95343"
   7.805 +         id="tspan12175">      work-unit</tspan><tspan
   7.806 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   7.807 +         sodipodi:role="line"
   7.808 +         x="729.43005"
   7.809 +         y="-323.95343"
   7.810 +         id="tspan11620">          is attached to</tspan><tspan
   7.811 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   7.812 +         sodipodi:role="line"
   7.813 +         x="729.43005"
   7.814 +         y="-314.95343"
   7.815 +         id="tspan11622">               a VP's context</tspan></text>
   7.816 +    <text
   7.817 +       sodipodi:linespacing="100%"
   7.818 +       id="text11624"
   7.819 +       y="-405.95343"
   7.820 +       x="787.43005"
   7.821 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.822 +       xml:space="preserve"><tspan
   7.823 +         id="tspan11626"
   7.824 +         y="-405.95343"
   7.825 +         x="787.43005"
   7.826 +         sodipodi:role="line"
   7.827 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">new work-</tspan><tspan
   7.828 +         id="tspan11630"
   7.829 +         y="-396.95343"
   7.830 +         x="787.43005"
   7.831 +         sodipodi:role="line"
   7.832 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">unit has</tspan><tspan
   7.833 +         y="-387.95343"
   7.834 +         x="787.43005"
   7.835 +         sodipodi:role="line"
   7.836 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   7.837 +         id="tspan12161">own local</tspan><tspan
   7.838 +         y="-378.95343"
   7.839 +         x="787.43005"
   7.840 +         sodipodi:role="line"
   7.841 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   7.842 +         id="tspan11634">context</tspan></text>
   7.843 +    <g
   7.844 +       transform="translate(617.05331,-683.31973)"
   7.845 +       id="g11656">
   7.846 +      <text
   7.847 +         xml:space="preserve"
   7.848 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.849 +         x="222.37003"
   7.850 +         y="285.39841"
   7.851 +         id="text11658"
   7.852 +         sodipodi:linespacing="100%"><tspan
   7.853 +           id="tspan11668"
   7.854 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.855 +           sodipodi:role="line"
   7.856 +           x="222.37003"
   7.857 +           y="285.39841">load curr VP</tspan><tspan
   7.858 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.859 +           sodipodi:role="line"
   7.860 +           x="222.37003"
   7.861 +           y="294.39841"
   7.862 +           id="tspan11686">with context</tspan><tspan
   7.863 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.864 +           sodipodi:role="line"
   7.865 +           x="222.37003"
   7.866 +           y="303.39841"
   7.867 +           id="tspan11688">from new</tspan><tspan
   7.868 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.869 +           sodipodi:role="line"
   7.870 +           x="222.37003"
   7.871 +           y="312.39841"
   7.872 +           id="tspan11690">work-unit</tspan></text>
   7.873 +      <rect
   7.874 +         y="274.77512"
   7.875 +         x="193.78287"
   7.876 +         height="63.639675"
   7.877 +         width="57.486332"
   7.878 +         id="rect11670"
   7.879 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
   7.880 +    </g>
   7.881 +    <text
   7.882 +       sodipodi:linespacing="100%"
   7.883 +       id="text11718"
   7.884 +       y="-367.95343"
   7.885 +       x="95.276283"
   7.886 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.887 +       xml:space="preserve"><tspan
   7.888 +         id="tspan11720"
   7.889 +         y="-367.95343"
   7.890 +         x="95.276283"
   7.891 +         sodipodi:role="line"
   7.892 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">which has attached context</tspan></text>
   7.893 +    <path
   7.894 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)"
   7.895 +       d="m 30.09217,-296.20795 134.75175,0"
   7.896 +       id="path11742"
   7.897 +       inkscape:connector-curvature="0"
   7.898 +       sodipodi:nodetypes="cc" />
   7.899 +    <text
   7.900 +       sodipodi:linespacing="100%"
   7.901 +       id="text11744"
   7.902 +       y="-297.95343"
   7.903 +       x="95.276283"
   7.904 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.905 +       xml:space="preserve"><tspan
   7.906 +         id="tspan11746"
   7.907 +         y="-297.95343"
   7.908 +         x="95.276283"
   7.909 +         sodipodi:role="line"
   7.910 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Non-suspend end of work-unit</tspan></text>
   7.911 +    <text
   7.912 +       xml:space="preserve"
   7.913 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.914 +       x="95.276283"
   7.915 +       y="-287.95343"
   7.916 +       id="text11750"
   7.917 +       sodipodi:linespacing="100%"><tspan
   7.918 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   7.919 +         sodipodi:role="line"
   7.920 +         x="95.276283"
   7.921 +         y="-287.95343"
   7.922 +         id="tspan11752">purely local (no ctxt attached)</tspan></text>
   7.923 +    <g
   7.924 +       id="g11754"
   7.925 +       transform="translate(-22.94669,-664)">
   7.926 +      <text
   7.927 +         sodipodi:linespacing="100%"
   7.928 +         id="text11756"
   7.929 +         y="285.39841"
   7.930 +         x="222.37003"
   7.931 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.932 +         xml:space="preserve"><tspan
   7.933 +           id="tspan11758"
   7.934 +           y="285.39841"
   7.935 +           x="222.37003"
   7.936 +           sodipodi:role="line"
   7.937 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save stack</tspan><tspan
   7.938 +           id="tspan11760"
   7.939 +           y="294.39841"
   7.940 +           x="222.37003"
   7.941 +           sodipodi:role="line"
   7.942 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">&amp; frame ptrs</tspan></text>
   7.943 +      <rect
   7.944 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
   7.945 +         id="rect11762"
   7.946 +         width="57.486332"
   7.947 +         height="25.544432"
   7.948 +         x="193.78287"
   7.949 +         y="274.77512" />
   7.950 +    </g>
   7.951 +    <text
   7.952 +       xml:space="preserve"
   7.953 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.954 +       x="29.276283"
   7.955 +       y="-349.95343"
   7.956 +       id="text11764"
   7.957 +       sodipodi:linespacing="100%"><tspan
   7.958 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
   7.959 +         sodipodi:role="line"
   7.960 +         x="29.276283"
   7.961 +         y="-349.95343"
   7.962 +         id="tspan11766">CILK is example of this case,</tspan><tspan
   7.963 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
   7.964 +         sodipodi:role="line"
   7.965 +         x="29.276283"
   7.966 +         y="-340.95343"
   7.967 +         id="tspan12203">when leaf child finishes</tspan></text>
   7.968 +    <text
   7.969 +       sodipodi:linespacing="100%"
   7.970 +       id="text11768"
   7.971 +       y="-269.95343"
   7.972 +       x="29.276283"
   7.973 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.974 +       xml:space="preserve"><tspan
   7.975 +         id="tspan11770"
   7.976 +         y="-269.95343"
   7.977 +         x="29.276283"
   7.978 +         sodipodi:role="line"
   7.979 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">Dataflow is example of this case</tspan></text>
   7.980 +    <text
   7.981 +       sodipodi:linespacing="100%"
   7.982 +       id="text11772"
   7.983 +       y="-473.95343"
   7.984 +       x="29.276283"
   7.985 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   7.986 +       xml:space="preserve"><tspan
   7.987 +         id="tspan11774"
   7.988 +         y="-473.95343"
   7.989 +         x="29.276283"
   7.990 +         sodipodi:role="line"
   7.991 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">pthread is example of this case,</tspan><tspan
   7.992 +         y="-464.95343"
   7.993 +         x="29.276283"
   7.994 +         sodipodi:role="line"
   7.995 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
   7.996 +         id="tspan3625">as is Cilk when suspends on sync</tspan></text>
   7.997 +    <path
   7.998 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
   7.999 +       d="m 170.33352,-296.29839 100.31543,-78.14797"
  7.1000 +       id="path11776"
  7.1001 +       inkscape:connector-curvature="0"
  7.1002 +       sodipodi:nodetypes="cc" />
  7.1003 +    <path
  7.1004 +       sodipodi:nodetypes="cc"
  7.1005 +       inkscape:connector-curvature="0"
  7.1006 +       id="path12020"
  7.1007 +       d="m 228.09216,-376.20795 41.06088,0"
  7.1008 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1009 +    <path
  7.1010 +       sodipodi:nodetypes="cc"
  7.1011 +       inkscape:connector-curvature="0"
  7.1012 +       id="path12086"
  7.1013 +       d="m 659.56974,-364.00562 0,24.4507"
  7.1014 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1015 +    <text
  7.1016 +       xml:space="preserve"
  7.1017 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1018 +       x="661.43005"
  7.1019 +       y="-355.95343"
  7.1020 +       id="text12088"
  7.1021 +       sodipodi:linespacing="100%"><tspan
  7.1022 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1"
  7.1023 +         sodipodi:role="line"
  7.1024 +         x="661.43005"
  7.1025 +         y="-355.95343"
  7.1026 +         id="tspan12090">no work</tspan><tspan
  7.1027 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1"
  7.1028 +         sodipodi:role="line"
  7.1029 +         x="661.43005"
  7.1030 +         y="-346.95343"
  7.1031 +         id="tspan12092">in Q</tspan></text>
  7.1032 +    <path
  7.1033 +       sodipodi:nodetypes="cc"
  7.1034 +       inkscape:connector-curvature="0"
  7.1035 +       id="path12155"
  7.1036 +       d="m 737.20425,-353.48137 72.41226,56.50237"
  7.1037 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1038 +    <path
  7.1039 +       sodipodi:nodetypes="cc"
  7.1040 +       inkscape:connector-curvature="0"
  7.1041 +       id="path12197"
  7.1042 +       d="m 688.33352,-316.29839 23.17876,-59.17839"
  7.1043 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1044 +    <text
  7.1045 +       sodipodi:linespacing="100%"
  7.1046 +       id="text12205"
  7.1047 +       y="-412.5929"
  7.1048 +       x="369.27625"
  7.1049 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1050 +       xml:space="preserve"><tspan
  7.1051 +         id="tspan12209"
  7.1052 +         y="-412.5929"
  7.1053 +         x="369.27625"
  7.1054 +         sodipodi:role="line"
  7.1055 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, counts</tspan><tspan
  7.1056 +         y="-403.5929"
  7.1057 +         x="369.27625"
  7.1058 +         sodipodi:role="line"
  7.1059 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1060 +         id="tspan12307"> child ends, and</tspan><tspan
  7.1061 +         y="-394.5929"
  7.1062 +         x="369.27625"
  7.1063 +         sodipodi:role="line"
  7.1064 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1065 +         id="tspan12313"> handles sync)</tspan></text>
  7.1066 +    <text
  7.1067 +       xml:space="preserve"
  7.1068 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1069 +       x="627.27625"
  7.1070 +       y="-411.95343"
  7.1071 +       id="text12213"
  7.1072 +       sodipodi:linespacing="100%"><tspan
  7.1073 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1074 +         sodipodi:role="line"
  7.1075 +         x="627.27625"
  7.1076 +         y="-411.95343"
  7.1077 +         id="tspan12221">(for CILK, Q</tspan><tspan
  7.1078 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1079 +         sodipodi:role="line"
  7.1080 +         x="627.27625"
  7.1081 +         y="-402.95343"
  7.1082 +         id="tspan12305"> filled by async</tspan><tspan
  7.1083 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1084 +         sodipodi:role="line"
  7.1085 +         x="627.27625"
  7.1086 +         y="-393.95343"
  7.1087 +         id="tspan12219"> spawns)</tspan></text>
  7.1088 +    <path
  7.1089 +       sodipodi:nodetypes="cc"
  7.1090 +       inkscape:connector-curvature="0"
  7.1091 +       id="path12275"
  7.1092 +       d="m 328.09217,-376.20795 41.44502,0"
  7.1093 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1094 +    <g
  7.1095 +       id="g12277"
  7.1096 +       transform="translate(-280,-40)">
  7.1097 +      <text
  7.1098 +         sodipodi:linespacing="100%"
  7.1099 +         id="text12279"
  7.1100 +         y="-339.22998"
  7.1101 +         x="579.39252"
  7.1102 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1103 +         xml:space="preserve"><tspan
  7.1104 +           id="tspan12281"
  7.1105 +           y="-339.22998"
  7.1106 +           x="579.39252"
  7.1107 +           sodipodi:role="line"
  7.1108 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan
  7.1109 +           y="-330.22998"
  7.1110 +           x="579.39252"
  7.1111 +           sodipodi:role="line"
  7.1112 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1113 +           id="tspan12283">chk msgs?</tspan></text>
  7.1114 +      <rect
  7.1115 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1116 +         id="rect12285"
  7.1117 +         width="36.810017"
  7.1118 +         height="36.457531"
  7.1119 +         x="624.01776"
  7.1120 +         y="93.582199"
  7.1121 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
  7.1122 +         ry="0" />
  7.1123 +    </g>
  7.1124 +    <path
  7.1125 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  7.1126 +       d="m 299.56974,-351.98903 0,122.09492"
  7.1127 +       id="path12297"
  7.1128 +       inkscape:connector-curvature="0"
  7.1129 +       sodipodi:nodetypes="cc" />
  7.1130 +    <g
  7.1131 +       id="g12335"
  7.1132 +       transform="translate(77.05331,-503.31973)">
  7.1133 +      <text
  7.1134 +         sodipodi:linespacing="100%"
  7.1135 +         id="text12337"
  7.1136 +         y="285.39841"
  7.1137 +         x="222.37003"
  7.1138 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1139 +         xml:space="preserve"><tspan
  7.1140 +           y="285.39841"
  7.1141 +           x="222.37003"
  7.1142 +           sodipodi:role="line"
  7.1143 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1144 +           id="tspan12339">scan for in-</tspan><tspan
  7.1145 +           y="294.39841"
  7.1146 +           x="222.37003"
  7.1147 +           sodipodi:role="line"
  7.1148 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1149 +           id="tspan12394">coming msgs,</tspan><tspan
  7.1150 +           id="tspan12343"
  7.1151 +           y="303.39841"
  7.1152 +           x="222.37003"
  7.1153 +           sodipodi:role="line"
  7.1154 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">give to hdlrs.</tspan><tspan
  7.1155 +           y="312.39841"
  7.1156 +           x="222.37003"
  7.1157 +           sodipodi:role="line"
  7.1158 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1159 +           id="tspan12400">check timers,</tspan><tspan
  7.1160 +           y="321.39841"
  7.1161 +           x="222.37003"
  7.1162 +           sodipodi:role="line"
  7.1163 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1164 +           id="tspan3521">fire hdlr for</tspan><tspan
  7.1165 +           y="330.39841"
  7.1166 +           x="222.37003"
  7.1167 +           sodipodi:role="line"
  7.1168 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1169 +           id="tspan3523">expired ones</tspan></text>
  7.1170 +      <rect
  7.1171 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1172 +         id="rect12347"
  7.1173 +         width="57.486332"
  7.1174 +         height="63.639675"
  7.1175 +         x="193.78287"
  7.1176 +         y="274.77512" />
  7.1177 +    </g>
  7.1178 +    <g
  7.1179 +       id="g12349"
  7.1180 +       transform="translate(617.05331,-603.31973)">
  7.1181 +      <text
  7.1182 +         sodipodi:linespacing="100%"
  7.1183 +         id="text12351"
  7.1184 +         y="285.39841"
  7.1185 +         x="222.37003"
  7.1186 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1187 +         xml:space="preserve"><tspan
  7.1188 +           id="tspan12359"
  7.1189 +           y="285.39841"
  7.1190 +           x="222.37003"
  7.1191 +           sodipodi:role="line"
  7.1192 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">send curr VP</tspan><tspan
  7.1193 +           y="294.39841"
  7.1194 +           x="222.37003"
  7.1195 +           sodipodi:role="line"
  7.1196 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1197 +           id="tspan12386">to pool,</tspan><tspan
  7.1198 +           y="303.39841"
  7.1199 +           x="222.37003"
  7.1200 +           sodipodi:role="line"
  7.1201 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1202 +           id="tspan12388">switch to</tspan><tspan
  7.1203 +           y="312.39841"
  7.1204 +           x="222.37003"
  7.1205 +           sodipodi:role="line"
  7.1206 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1207 +           id="tspan12390">VP of new</tspan><tspan
  7.1208 +           y="321.39841"
  7.1209 +           x="222.37003"
  7.1210 +           sodipodi:role="line"
  7.1211 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1212 +           id="tspan12392">work-unit</tspan></text>
  7.1213 +      <rect
  7.1214 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1215 +         id="rect12361"
  7.1216 +         width="57.486332"
  7.1217 +         height="63.639675"
  7.1218 +         x="193.78287"
  7.1219 +         y="274.77512" />
  7.1220 +    </g>
  7.1221 +    <g
  7.1222 +       id="g12404"
  7.1223 +       transform="translate(17.05331,-404)">
  7.1224 +      <text
  7.1225 +         sodipodi:linespacing="100%"
  7.1226 +         id="text12406"
  7.1227 +         y="285.36765"
  7.1228 +         x="222.25137"
  7.1229 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1230 +         xml:space="preserve"><tspan
  7.1231 +           id="tspan12410"
  7.1232 +           y="285.36765"
  7.1233 +           x="222.25137"
  7.1234 +           sodipodi:role="line"
  7.1235 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">constraint</tspan><tspan
  7.1236 +           y="294.36765"
  7.1237 +           x="222.25137"
  7.1238 +           sodipodi:role="line"
  7.1239 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1240 +           id="tspan12416">msg handler</tspan></text>
  7.1241 +      <rect
  7.1242 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1243 +         id="rect12412"
  7.1244 +         width="57.486332"
  7.1245 +         height="25.544432"
  7.1246 +         x="193.78287"
  7.1247 +         y="274.77512" />
  7.1248 +    </g>
  7.1249 +    <g
  7.1250 +       transform="translate(97.05331,-344)"
  7.1251 +       id="g12418">
  7.1252 +      <text
  7.1253 +         xml:space="preserve"
  7.1254 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1255 +         x="142.25137"
  7.1256 +         y="285.36765"
  7.1257 +         id="text12420"
  7.1258 +         sodipodi:linespacing="100%"><tspan
  7.1259 +           id="tspan12424"
  7.1260 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1261 +           sodipodi:role="line"
  7.1262 +           x="142.25137"
  7.1263 +           y="285.36765">Push Work</tspan><tspan
  7.1264 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1265 +           sodipodi:role="line"
  7.1266 +           x="142.25137"
  7.1267 +           y="294.36765"
  7.1268 +           id="tspan12548">onto Q</tspan></text>
  7.1269 +      <rect
  7.1270 +         y="274.77512"
  7.1271 +         x="113.78287"
  7.1272 +         height="25.544432"
  7.1273 +         width="57.486332"
  7.1274 +         id="rect12426"
  7.1275 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.1276 +    </g>
  7.1277 +    <path
  7.1278 +       sodipodi:nodetypes="cc"
  7.1279 +       inkscape:connector-curvature="0"
  7.1280 +       id="path12432"
  7.1281 +       d="m 239.56974,-104.00562 0,34.68367"
  7.1282 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1283 +    <g
  7.1284 +       id="g12434"
  7.1285 +       transform="translate(-62.94669,-344)">
  7.1286 +      <text
  7.1287 +         sodipodi:linespacing="100%"
  7.1288 +         id="text12436"
  7.1289 +         y="285.36765"
  7.1290 +         x="222.25137"
  7.1291 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1292 +         xml:space="preserve"><tspan
  7.1293 +           y="285.36765"
  7.1294 +           x="222.25137"
  7.1295 +           sodipodi:role="line"
  7.1296 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1297 +           id="tspan12438">send constr</tspan><tspan
  7.1298 +           y="294.36765"
  7.1299 +           x="222.25137"
  7.1300 +           sodipodi:role="line"
  7.1301 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1302 +           id="tspan12776">update msg</tspan></text>
  7.1303 +      <rect
  7.1304 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1305 +         id="rect12440"
  7.1306 +         width="57.486332"
  7.1307 +         height="25.544432"
  7.1308 +         x="193.78287"
  7.1309 +         y="274.77512" />
  7.1310 +    </g>
  7.1311 +    <text
  7.1312 +       xml:space="preserve"
  7.1313 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1314 +       x="273.27625"
  7.1315 +       y="6.7268219"
  7.1316 +       id="text12442"
  7.1317 +       sodipodi:linespacing="100%"><tspan
  7.1318 +         id="tspan12448"
  7.1319 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1320 +         sodipodi:role="line"
  7.1321 +         x="273.27625"
  7.1322 +         y="6.7268219">(in dataflow &amp; CILK,</tspan><tspan
  7.1323 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1324 +         sodipodi:role="line"
  7.1325 +         x="273.27625"
  7.1326 +         y="15.726822"
  7.1327 +         id="tspan12454"> msgs from other cores</tspan><tspan
  7.1328 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1329 +         sodipodi:role="line"
  7.1330 +         x="273.27625"
  7.1331 +         y="24.726822"
  7.1332 +         id="tspan12482"> that ask for or push</tspan><tspan
  7.1333 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1334 +         sodipodi:role="line"
  7.1335 +         x="273.27625"
  7.1336 +         y="33.726822"
  7.1337 +         id="tspan3527"> work, go to assigner)</tspan></text>
  7.1338 +    <text
  7.1339 +       sodipodi:linespacing="100%"
  7.1340 +       id="text12460"
  7.1341 +       y="6.7268066"
  7.1342 +       x="369.27625"
  7.1343 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1344 +       xml:space="preserve"><tspan
  7.1345 +         id="tspan12466"
  7.1346 +         y="6.7268066"
  7.1347 +         x="369.27625"
  7.1348 +         sodipodi:role="line"
  7.1349 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in dataflow &amp; CILK,</tspan><tspan
  7.1350 +         y="15.726807"
  7.1351 +         x="369.27625"
  7.1352 +         sodipodi:role="line"
  7.1353 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1354 +         id="tspan12472"> push work to other</tspan><tspan
  7.1355 +         y="24.726807"
  7.1356 +         x="369.27625"
  7.1357 +         sodipodi:role="line"
  7.1358 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1359 +         id="tspan12488"> cores via msgs -- </tspan><tspan
  7.1360 +         y="33.726807"
  7.1361 +         x="369.27625"
  7.1362 +         sodipodi:role="line"
  7.1363 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1364 +         id="tspan3973"> remember </tspan><tspan
  7.1365 +         y="42.726807"
  7.1366 +         x="369.27625"
  7.1367 +         sodipodi:role="line"
  7.1368 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1369 +         id="tspan3977"> constraints that</tspan><tspan
  7.1370 +         y="51.726807"
  7.1371 +         x="369.27625"
  7.1372 +         sodipodi:role="line"
  7.1373 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1374 +         id="tspan12642"> cross cores)</tspan></text>
  7.1375 +    <path
  7.1376 +       sodipodi:nodetypes="cc"
  7.1377 +       inkscape:connector-curvature="0"
  7.1378 +       id="path12490"
  7.1379 +       d="m 328.33352,-203.17339 41.44797,-171.27297"
  7.1380 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1381 +    <g
  7.1382 +       id="g12506"
  7.1383 +       transform="translate(97.05331,-404)">
  7.1384 +      <text
  7.1385 +         sodipodi:linespacing="100%"
  7.1386 +         id="text12508"
  7.1387 +         y="285.36765"
  7.1388 +         x="222.25137"
  7.1389 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1390 +         xml:space="preserve"><tspan
  7.1391 +           y="285.36765"
  7.1392 +           x="222.25137"
  7.1393 +           sodipodi:role="line"
  7.1394 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1395 +           id="tspan12510">Assigner</tspan><tspan
  7.1396 +           y="294.36765"
  7.1397 +           x="222.25137"
  7.1398 +           sodipodi:role="line"
  7.1399 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1400 +           id="tspan12656">msg handler</tspan></text>
  7.1401 +      <rect
  7.1402 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1403 +         id="rect12512"
  7.1404 +         width="57.486332"
  7.1405 +         height="25.544432"
  7.1406 +         x="193.78287"
  7.1407 +         y="274.77512" />
  7.1408 +    </g>
  7.1409 +    <path
  7.1410 +       sodipodi:nodetypes="cc"
  7.1411 +       inkscape:connector-curvature="0"
  7.1412 +       id="path12534"
  7.1413 +       d="m 319.56974,-104.00562 0,34.68367"
  7.1414 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1415 +    <path
  7.1416 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.1417 +       d="m 297.91051,-165.12086 -53.68184,35.65757"
  7.1418 +       id="path12544"
  7.1419 +       inkscape:connector-curvature="0"
  7.1420 +       sodipodi:nodetypes="cc" />
  7.1421 +    <path
  7.1422 +       sodipodi:nodetypes="cc"
  7.1423 +       inkscape:connector-curvature="0"
  7.1424 +       id="path12550"
  7.1425 +       d="m 239.95132,-103.76032 -77.23827,34.97636"
  7.1426 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1427 +    <g
  7.1428 +       transform="translate(257.05331,-604)"
  7.1429 +       id="g12552">
  7.1430 +      <text
  7.1431 +         xml:space="preserve"
  7.1432 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1433 +         x="222.25137"
  7.1434 +         y="285.36765"
  7.1435 +         id="text12554"
  7.1436 +         sodipodi:linespacing="100%"><tspan
  7.1437 +           id="tspan12556"
  7.1438 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1439 +           sodipodi:role="line"
  7.1440 +           x="222.25137"
  7.1441 +           y="285.36765">send constr</tspan><tspan
  7.1442 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1443 +           sodipodi:role="line"
  7.1444 +           x="222.25137"
  7.1445 +           y="294.36765"
  7.1446 +           id="tspan12888">update msgs</tspan></text>
  7.1447 +      <rect
  7.1448 +         y="274.77512"
  7.1449 +         x="193.78287"
  7.1450 +         height="25.544432"
  7.1451 +         width="57.486332"
  7.1452 +         id="rect12558"
  7.1453 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.1454 +    </g>
  7.1455 +    <path
  7.1456 +       sodipodi:nodetypes="cc"
  7.1457 +       inkscape:connector-curvature="0"
  7.1458 +       id="path12562"
  7.1459 +       d="m 303.63081,-165.12086 14.66828,34.98156"
  7.1460 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1461 +    <text
  7.1462 +       sodipodi:linespacing="100%"
  7.1463 +       id="text12564"
  7.1464 +       y="-351.95343"
  7.1465 +       x="371.43005"
  7.1466 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1467 +       xml:space="preserve"><tspan
  7.1468 +         id="tspan12568"
  7.1469 +         y="-351.95343"
  7.1470 +         x="371.43005"
  7.1471 +         sodipodi:role="line"
  7.1472 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">   done</tspan><tspan
  7.1473 +         y="-342.95343"
  7.1474 +         x="371.43005"
  7.1475 +         sodipodi:role="line"
  7.1476 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1477 +         id="tspan12598"> with</tspan><tspan
  7.1478 +         y="-333.95343"
  7.1479 +         x="371.43005"
  7.1480 +         sodipodi:role="line"
  7.1481 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1482 +         id="tspan12600">msgs</tspan></text>
  7.1483 +    <text
  7.1484 +       xml:space="preserve"
  7.1485 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1486 +       x="335.43005"
  7.1487 +       y="-379.95343"
  7.1488 +       id="text12572"
  7.1489 +       sodipodi:linespacing="100%"><tspan
  7.1490 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1491 +         sodipodi:role="line"
  7.1492 +         x="335.43005"
  7.1493 +         y="-379.95343"
  7.1494 +         id="tspan12574">no</tspan></text>
  7.1495 +    <text
  7.1496 +       sodipodi:linespacing="100%"
  7.1497 +       id="text12576"
  7.1498 +       y="-343.95343"
  7.1499 +       x="309.43005"
  7.1500 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1501 +       xml:space="preserve"><tspan
  7.1502 +         id="tspan12578"
  7.1503 +         y="-343.95343"
  7.1504 +         x="309.43005"
  7.1505 +         sodipodi:role="line"
  7.1506 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan
  7.1507 +         y="-334.95343"
  7.1508 +         x="309.43005"
  7.1509 +         sodipodi:role="line"
  7.1510 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1511 +         id="tspan12580">chk</tspan></text>
  7.1512 +    <text
  7.1513 +       xml:space="preserve"
  7.1514 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1515 +       x="251.43005"
  7.1516 +       y="-151.95343"
  7.1517 +       id="text12582"
  7.1518 +       sodipodi:linespacing="100%"><tspan
  7.1519 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1520 +         sodipodi:role="line"
  7.1521 +         x="251.43005"
  7.1522 +         y="-151.95343"
  7.1523 +         id="tspan12584">  constraint</tspan><tspan
  7.1524 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1525 +         sodipodi:role="line"
  7.1526 +         x="251.43005"
  7.1527 +         y="-142.95343"
  7.1528 +         id="tspan12586">msgs</tspan></text>
  7.1529 +    <text
  7.1530 +       sodipodi:linespacing="100%"
  7.1531 +       id="text12592"
  7.1532 +       y="-151.95343"
  7.1533 +       x="323.43005"
  7.1534 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1535 +       xml:space="preserve"><tspan
  7.1536 +         id="tspan12594"
  7.1537 +         y="-151.95343"
  7.1538 +         x="323.43005"
  7.1539 +         sodipodi:role="line"
  7.1540 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">  Assigner</tspan><tspan
  7.1541 +         id="tspan12596"
  7.1542 +         y="-142.95343"
  7.1543 +         x="323.43005"
  7.1544 +         sodipodi:role="line"
  7.1545 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">msgs</tspan></text>
  7.1546 +    <text
  7.1547 +       sodipodi:linespacing="100%"
  7.1548 +       id="text12602"
  7.1549 +       y="-29.273178"
  7.1550 +       x="129.27625"
  7.1551 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1552 +       xml:space="preserve"><tspan
  7.1553 +         id="tspan12606"
  7.1554 +         y="-29.273178"
  7.1555 +         x="129.27625"
  7.1556 +         sodipodi:role="line"
  7.1557 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, completion of</tspan><tspan
  7.1558 +         y="-20.273178"
  7.1559 +         x="129.27625"
  7.1560 +         sodipodi:role="line"
  7.1561 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1562 +         id="tspan12614"> child on remote core</tspan><tspan
  7.1563 +         id="tspan12610"
  7.1564 +         y="-11.273178"
  7.1565 +         x="129.27625"
  7.1566 +         sodipodi:role="line"
  7.1567 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"> notifies parent's core.</tspan><tspan
  7.1568 +         y="-2.2731781"
  7.1569 +         x="129.27625"
  7.1570 +         sodipodi:role="line"
  7.1571 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1572 +         id="tspan12624"> In dataflow, remote pro-</tspan><tspan
  7.1573 +         y="6.7268219"
  7.1574 +         x="129.27625"
  7.1575 +         sodipodi:role="line"
  7.1576 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1577 +         id="tspan12626"> pendent sends data to</tspan><tspan
  7.1578 +         y="15.726822"
  7.1579 +         x="129.27625"
  7.1580 +         sodipodi:role="line"
  7.1581 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.1582 +         id="tspan12634"> dependents' cores)</tspan></text>
  7.1583 +    <path
  7.1584 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.1585 +       d="m 401.6308,-363.12086 74.44669,32.98177"
  7.1586 +       id="path12658"
  7.1587 +       inkscape:connector-curvature="0"
  7.1588 +       sodipodi:nodetypes="cc" />
  7.1589 +    <g
  7.1590 +       id="g12764"
  7.1591 +       transform="translate(437.05331,-484)">
  7.1592 +      <text
  7.1593 +         sodipodi:linespacing="100%"
  7.1594 +         id="text12766"
  7.1595 +         y="285.36765"
  7.1596 +         x="222.25137"
  7.1597 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1598 +         xml:space="preserve"><tspan
  7.1599 +           y="285.36765"
  7.1600 +           x="222.25137"
  7.1601 +           sodipodi:role="line"
  7.1602 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1603 +           id="tspan12768">send &quot;need</tspan><tspan
  7.1604 +           y="294.36765"
  7.1605 +           x="222.25137"
  7.1606 +           sodipodi:role="line"
  7.1607 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1608 +           id="tspan12774">work&quot; msg</tspan></text>
  7.1609 +      <rect
  7.1610 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1611 +         id="rect12770"
  7.1612 +         width="57.486332"
  7.1613 +         height="25.544432"
  7.1614 +         x="193.78287"
  7.1615 +         y="274.77512" />
  7.1616 +    </g>
  7.1617 +    <text
  7.1618 +       xml:space="preserve"
  7.1619 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1620 +       x="299.43005"
  7.1621 +       y="-93.95343"
  7.1622 +       id="text12816"
  7.1623 +       sodipodi:linespacing="100%"><tspan
  7.1624 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1625 +         sodipodi:role="line"
  7.1626 +         x="299.43005"
  7.1627 +         y="-93.95343"
  7.1628 +         id="tspan12818">  receive</tspan><tspan
  7.1629 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1630 +         sodipodi:role="line"
  7.1631 +         x="300.78357"
  7.1632 +         y="-84.95343"
  7.1633 +         id="tspan12820">work-push   </tspan><tspan
  7.1634 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1635 +         sodipodi:role="line"
  7.1636 +         x="299.43005"
  7.1637 +         y="-75.95343"
  7.1638 +         id="tspan12822">       msg</tspan></text>
  7.1639 +    <path
  7.1640 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.1641 +       d="m 321.6308,-103.12086 74.44669,32.98177"
  7.1642 +       id="path12824"
  7.1643 +       inkscape:connector-curvature="0"
  7.1644 +       sodipodi:nodetypes="cc" />
  7.1645 +    <text
  7.1646 +       sodipodi:linespacing="100%"
  7.1647 +       id="text12826"
  7.1648 +       y="-93.95343"
  7.1649 +       x="379.43005"
  7.1650 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1651 +       xml:space="preserve"><tspan
  7.1652 +         id="tspan12828"
  7.1653 +         y="-93.95343"
  7.1654 +         x="379.43005"
  7.1655 +         sodipodi:role="line"
  7.1656 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">  receive need-work</tspan><tspan
  7.1657 +         id="tspan12832"
  7.1658 +         y="-84.95343"
  7.1659 +         x="379.43005"
  7.1660 +         sodipodi:role="line"
  7.1661 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">                msg &amp; have work</tspan><tspan
  7.1662 +         y="-75.95343"
  7.1663 +         x="379.43005"
  7.1664 +         sodipodi:role="line"
  7.1665 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1666 +         id="tspan12836">              to give</tspan></text>
  7.1667 +    <text
  7.1668 +       sodipodi:linespacing="100%"
  7.1669 +       id="text12914"
  7.1670 +       y="-281.95343"
  7.1671 +       x="678.38245"
  7.1672 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1673 +       xml:space="preserve"><tspan
  7.1674 +         y="-281.95343"
  7.1675 +         x="678.38245"
  7.1676 +         sodipodi:role="line"
  7.1677 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1678 +         id="tspan12946">No work</tspan></text>
  7.1679 +    <g
  7.1680 +       id="g3699"
  7.1681 +       transform="translate(717.05331,-664)">
  7.1682 +      <text
  7.1683 +         sodipodi:linespacing="100%"
  7.1684 +         id="text3701"
  7.1685 +         y="285.69943"
  7.1686 +         x="222.37003"
  7.1687 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1688 +         xml:space="preserve"><tspan
  7.1689 +           id="tspan3705"
  7.1690 +           y="285.69943"
  7.1691 +           x="222.37003"
  7.1692 +           sodipodi:role="line"
  7.1693 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Jmp to new</tspan><tspan
  7.1694 +           y="294.69943"
  7.1695 +           x="222.37003"
  7.1696 +           sodipodi:role="line"
  7.1697 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1698 +           id="tspan3713">work-unit</tspan></text>
  7.1699 +      <rect
  7.1700 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1701 +         id="rect3707"
  7.1702 +         width="57.486332"
  7.1703 +         height="25.544432"
  7.1704 +         x="193.78287"
  7.1705 +         y="274.77512" />
  7.1706 +    </g>
  7.1707 +    <path
  7.1708 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  7.1709 +       d="m 868.0922,-376.20795 41.0608,0"
  7.1710 +       id="path3709"
  7.1711 +       inkscape:connector-curvature="0"
  7.1712 +       sodipodi:nodetypes="cc" />
  7.1713 +    <path
  7.1714 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.1715 +       d="m 868.33356,-296.29838 40.86584,-76.648"
  7.1716 +       id="path3715"
  7.1717 +       inkscape:connector-curvature="0"
  7.1718 +       sodipodi:nodetypes="cc" />
  7.1719 +    <path
  7.1720 +       sodipodi:nodetypes="cc"
  7.1721 +       inkscape:connector-curvature="0"
  7.1722 +       id="path3769"
  7.1723 +       d="m 428.86861,-376.20795 200.12395,0"
  7.1724 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1725 +    <g
  7.1726 +       id="g3775"
  7.1727 +       transform="translate(297.05331,-784)">
  7.1728 +      <text
  7.1729 +         sodipodi:linespacing="100%"
  7.1730 +         id="text3777"
  7.1731 +         y="285.36765"
  7.1732 +         x="222.25137"
  7.1733 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1734 +         xml:space="preserve"><tspan
  7.1735 +           id="tspan3781"
  7.1736 +           y="285.36765"
  7.1737 +           x="222.25137"
  7.1738 +           sodipodi:role="line"
  7.1739 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Assigner</tspan></text>
  7.1740 +      <rect
  7.1741 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1742 +         id="rect3783"
  7.1743 +         width="57.486332"
  7.1744 +         height="25.544432"
  7.1745 +         x="193.78287"
  7.1746 +         y="274.77512" />
  7.1747 +    </g>
  7.1748 +    <g
  7.1749 +       id="g3789"
  7.1750 +       transform="translate(177.05331,-784)">
  7.1751 +      <text
  7.1752 +         sodipodi:linespacing="100%"
  7.1753 +         id="text3791"
  7.1754 +         y="285.36765"
  7.1755 +         x="222.25137"
  7.1756 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1757 +         xml:space="preserve"><tspan
  7.1758 +           id="tspan3795"
  7.1759 +           y="285.36765"
  7.1760 +           x="222.25137"
  7.1761 +           sodipodi:role="line"
  7.1762 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">request hdlr</tspan></text>
  7.1763 +      <rect
  7.1764 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1765 +         id="rect3797"
  7.1766 +         width="57.486332"
  7.1767 +         height="25.544432"
  7.1768 +         x="193.78287"
  7.1769 +         y="274.77512" />
  7.1770 +    </g>
  7.1771 +    <path
  7.1772 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  7.1773 +       d="m 428.09218,-496.20795 60.12116,0"
  7.1774 +       id="path3799"
  7.1775 +       inkscape:connector-curvature="0"
  7.1776 +       sodipodi:nodetypes="cc" />
  7.1777 +    <g
  7.1778 +       transform="translate(-300,-160)"
  7.1779 +       id="g3801">
  7.1780 +      <text
  7.1781 +         xml:space="preserve"
  7.1782 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1783 +         x="579.39252"
  7.1784 +         y="-339.22998"
  7.1785 +         id="text3803"
  7.1786 +         sodipodi:linespacing="100%"><tspan
  7.1787 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1788 +           sodipodi:role="line"
  7.1789 +           x="579.39252"
  7.1790 +           y="-339.22998"
  7.1791 +           id="tspan3805">time to</tspan><tspan
  7.1792 +           id="tspan3807"
  7.1793 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1794 +           sodipodi:role="line"
  7.1795 +           x="579.39252"
  7.1796 +           y="-330.22998">chk msgs?</tspan></text>
  7.1797 +      <rect
  7.1798 +         ry="0"
  7.1799 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
  7.1800 +         y="93.582199"
  7.1801 +         x="624.01776"
  7.1802 +         height="36.457531"
  7.1803 +         width="36.810017"
  7.1804 +         id="rect3809"
  7.1805 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.1806 +    </g>
  7.1807 +    <path
  7.1808 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  7.1809 +       d="m 228.09216,-496.20795 21.72127,0"
  7.1810 +       id="path3811"
  7.1811 +       inkscape:connector-curvature="0"
  7.1812 +       sodipodi:nodetypes="cc" />
  7.1813 +    <path
  7.1814 +       sodipodi:nodetypes="cc"
  7.1815 +       inkscape:connector-curvature="0"
  7.1816 +       id="path3813"
  7.1817 +       d="m 307.68401,-496.20795 61.46905,0"
  7.1818 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.1819 +    <text
  7.1820 +       xml:space="preserve"
  7.1821 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1822 +       x="289.43005"
  7.1823 +       y="-463.95343"
  7.1824 +       id="text3815"
  7.1825 +       sodipodi:linespacing="100%"><tspan
  7.1826 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1827 +         sodipodi:role="line"
  7.1828 +         x="289.43005"
  7.1829 +         y="-463.95343"
  7.1830 +         id="tspan3817">yes,</tspan><tspan
  7.1831 +         id="tspan3819"
  7.1832 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1833 +         sodipodi:role="line"
  7.1834 +         x="289.43005"
  7.1835 +         y="-454.95343">chk</tspan></text>
  7.1836 +    <path
  7.1837 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.1838 +       d="m 328.33352,-197.5484 41.44797,-295.744"
  7.1839 +       id="path3823"
  7.1840 +       inkscape:connector-curvature="0"
  7.1841 +       sodipodi:nodetypes="cc" />
  7.1842 +    <text
  7.1843 +       sodipodi:linespacing="100%"
  7.1844 +       id="text3825"
  7.1845 +       y="-499.95343"
  7.1846 +       x="315.43005"
  7.1847 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1848 +       xml:space="preserve"><tspan
  7.1849 +         id="tspan3827"
  7.1850 +         y="-499.95343"
  7.1851 +         x="315.43005"
  7.1852 +         sodipodi:role="line"
  7.1853 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">no</tspan></text>
  7.1854 +    <text
  7.1855 +       xml:space="preserve"
  7.1856 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1857 +       x="353.43005"
  7.1858 +       y="-473.95343"
  7.1859 +       id="text3829"
  7.1860 +       sodipodi:linespacing="100%"><tspan
  7.1861 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1862 +         sodipodi:role="line"
  7.1863 +         x="353.43005"
  7.1864 +         y="-473.95343"
  7.1865 +         id="tspan3831">   done</tspan><tspan
  7.1866 +         id="tspan3833"
  7.1867 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1868 +         sodipodi:role="line"
  7.1869 +         x="353.43005"
  7.1870 +         y="-464.95343">  with</tspan><tspan
  7.1871 +         id="tspan3835"
  7.1872 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.1873 +         sodipodi:role="line"
  7.1874 +         x="353.43005"
  7.1875 +         y="-455.95343">msgs</tspan></text>
  7.1876 +    <g
  7.1877 +       transform="translate(97.05331,-343.31973)"
  7.1878 +       id="g3837">
  7.1879 +      <text
  7.1880 +         xml:space="preserve"
  7.1881 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1882 +         x="222.37003"
  7.1883 +         y="285.39841"
  7.1884 +         id="text3839"
  7.1885 +         sodipodi:linespacing="100%"><tspan
  7.1886 +           id="tspan3841"
  7.1887 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1888 +           sodipodi:role="line"
  7.1889 +           x="222.37003"
  7.1890 +           y="285.39841">push work</tspan><tspan
  7.1891 +           id="tspan3843"
  7.1892 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1893 +           sodipodi:role="line"
  7.1894 +           x="222.37003"
  7.1895 +           y="294.39841">onto Q, and</tspan><tspan
  7.1896 +           id="tspan3845"
  7.1897 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1898 +           sodipodi:role="line"
  7.1899 +           x="222.37003"
  7.1900 +           y="303.39841">send &quot;cancel</tspan><tspan
  7.1901 +           id="tspan3847"
  7.1902 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1903 +           sodipodi:role="line"
  7.1904 +           x="222.37003"
  7.1905 +           y="312.39841">need work&quot;</tspan></text>
  7.1906 +      <rect
  7.1907 +         y="274.77512"
  7.1908 +         x="193.78287"
  7.1909 +         height="63.639675"
  7.1910 +         width="57.486332"
  7.1911 +         id="rect3849"
  7.1912 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.1913 +    </g>
  7.1914 +    <g
  7.1915 +       id="g3851"
  7.1916 +       transform="translate(177.05331,-744)">
  7.1917 +      <text
  7.1918 +         sodipodi:linespacing="100%"
  7.1919 +         id="text3853"
  7.1920 +         y="285.36765"
  7.1921 +         x="222.25137"
  7.1922 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1923 +         xml:space="preserve"><tspan
  7.1924 +           y="285.36765"
  7.1925 +           x="222.25137"
  7.1926 +           sodipodi:role="line"
  7.1927 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1928 +           id="tspan3855">send constr</tspan><tspan
  7.1929 +           id="tspan3857"
  7.1930 +           y="294.36765"
  7.1931 +           x="222.25137"
  7.1932 +           sodipodi:role="line"
  7.1933 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">update msgs</tspan></text>
  7.1934 +      <rect
  7.1935 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.1936 +         id="rect3859"
  7.1937 +         width="57.486332"
  7.1938 +         height="25.544432"
  7.1939 +         x="193.78287"
  7.1940 +         y="274.77512" />
  7.1941 +    </g>
  7.1942 +    <path
  7.1943 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  7.1944 +       d="m 399.56974,-484.00562 0,12.75587"
  7.1945 +       id="path3863"
  7.1946 +       inkscape:connector-curvature="0"
  7.1947 +       sodipodi:nodetypes="cc" />
  7.1948 +    <g
  7.1949 +       transform="translate(257.05331,-744)"
  7.1950 +       id="g3865">
  7.1951 +      <text
  7.1952 +         xml:space="preserve"
  7.1953 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1954 +         x="222.37003"
  7.1955 +         y="285.39841"
  7.1956 +         id="text3867"
  7.1957 +         sodipodi:linespacing="100%"><tspan
  7.1958 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1959 +           sodipodi:role="line"
  7.1960 +           x="222.37003"
  7.1961 +           y="285.39841"
  7.1962 +           id="tspan3869">Push work</tspan><tspan
  7.1963 +           id="tspan3871"
  7.1964 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1965 +           sodipodi:role="line"
  7.1966 +           x="222.37003"
  7.1967 +           y="294.39841">onto Q</tspan></text>
  7.1968 +      <rect
  7.1969 +         y="274.77512"
  7.1970 +         x="193.78287"
  7.1971 +         height="25.544432"
  7.1972 +         width="57.486332"
  7.1973 +         id="rect3873"
  7.1974 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.1975 +    </g>
  7.1976 +    <g
  7.1977 +       transform="translate(317.05331,-744)"
  7.1978 +       id="g3875">
  7.1979 +      <text
  7.1980 +         xml:space="preserve"
  7.1981 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.1982 +         x="222.25137"
  7.1983 +         y="285.36765"
  7.1984 +         id="text3877"
  7.1985 +         sodipodi:linespacing="100%"><tspan
  7.1986 +           id="tspan3879"
  7.1987 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1988 +           sodipodi:role="line"
  7.1989 +           x="222.25137"
  7.1990 +           y="285.36765">send Assigner</tspan><tspan
  7.1991 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.1992 +           sodipodi:role="line"
  7.1993 +           x="222.25137"
  7.1994 +           y="294.36765"
  7.1995 +           id="tspan3881">messages</tspan></text>
  7.1996 +      <rect
  7.1997 +         y="274.77512"
  7.1998 +         x="193.78287"
  7.1999 +         height="25.544432"
  7.2000 +         width="57.486332"
  7.2001 +         id="rect3883"
  7.2002 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.2003 +    </g>
  7.2004 +    <path
  7.2005 +       sodipodi:nodetypes="cc"
  7.2006 +       inkscape:connector-curvature="0"
  7.2007 +       id="path3887"
  7.2008 +       d="m 519.99814,-483.12085 17.68767,13.95011"
  7.2009 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2010 +    <path
  7.2011 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.2012 +       d="m 516.1523,-483.12085 -35.11392,13.95011"
  7.2013 +       id="path3889"
  7.2014 +       inkscape:connector-curvature="0"
  7.2015 +       sodipodi:nodetypes="cc" />
  7.2016 +    <path
  7.2017 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.2018 +       d="m 548.6784,-495.12084 80.39811,116.64706"
  7.2019 +       id="path3891"
  7.2020 +       inkscape:connector-curvature="0"
  7.2021 +       sodipodi:nodetypes="cc" />
  7.2022 +    <path
  7.2023 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.2024 +       d="m 737.20425,-398.67186 72.41226,-56.50237"
  7.2025 +       id="path3893"
  7.2026 +       inkscape:connector-curvature="0"
  7.2027 +       sodipodi:nodetypes="cc" />
  7.2028 +    <g
  7.2029 +       id="g3895"
  7.2030 +       transform="translate(617.05331,-763.31973)">
  7.2031 +      <text
  7.2032 +         sodipodi:linespacing="100%"
  7.2033 +         id="text3897"
  7.2034 +         y="285.39841"
  7.2035 +         x="222.37003"
  7.2036 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2037 +         xml:space="preserve"><tspan
  7.2038 +           y="285.39841"
  7.2039 +           x="222.37003"
  7.2040 +           sodipodi:role="line"
  7.2041 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2042 +           id="tspan3933">get VP from</tspan><tspan
  7.2043 +           y="294.39841"
  7.2044 +           x="222.37003"
  7.2045 +           sodipodi:role="line"
  7.2046 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2047 +           id="tspan3935">pool (make</tspan><tspan
  7.2048 +           y="303.39841"
  7.2049 +           x="222.37003"
  7.2050 +           sodipodi:role="line"
  7.2051 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2052 +           id="tspan3943">new if none).</tspan><tspan
  7.2053 +           id="tspan3901"
  7.2054 +           y="312.39841"
  7.2055 +           x="222.37003"
  7.2056 +           sodipodi:role="line"
  7.2057 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Load it with</tspan><tspan
  7.2058 +           id="tspan3903"
  7.2059 +           y="321.39841"
  7.2060 +           x="222.37003"
  7.2061 +           sodipodi:role="line"
  7.2062 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context from</tspan><tspan
  7.2063 +           id="tspan3905"
  7.2064 +           y="330.39841"
  7.2065 +           x="222.37003"
  7.2066 +           sodipodi:role="line"
  7.2067 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">new work-unit</tspan></text>
  7.2068 +      <rect
  7.2069 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.2070 +         id="rect3907"
  7.2071 +         width="57.486332"
  7.2072 +         height="63.639675"
  7.2073 +         x="193.78287"
  7.2074 +         y="274.77512" />
  7.2075 +    </g>
  7.2076 +    <text
  7.2077 +       xml:space="preserve"
  7.2078 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2079 +       x="755.43005"
  7.2080 +       y="-449.95343"
  7.2081 +       id="text3909"
  7.2082 +       sodipodi:linespacing="100%"><tspan
  7.2083 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2084 +         sodipodi:role="line"
  7.2085 +         x="755.43005"
  7.2086 +         y="-449.95343"
  7.2087 +         id="tspan3913">new work-unit has own</tspan><tspan
  7.2088 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2089 +         sodipodi:role="line"
  7.2090 +         x="755.43005"
  7.2091 +         y="-440.95343"
  7.2092 +         id="tspan3927">local context, but</tspan><tspan
  7.2093 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2094 +         sodipodi:role="line"
  7.2095 +         x="756.78357"
  7.2096 +         y="-431.95343"
  7.2097 +         id="tspan3931">prev VP suspended            </tspan></text>
  7.2098 +    <path
  7.2099 +       sodipodi:nodetypes="cc"
  7.2100 +       inkscape:connector-curvature="0"
  7.2101 +       id="path3953"
  7.2102 +       d="m 868.33356,-456.25901 40.86584,76.648"
  7.2103 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2104 +    <text
  7.2105 +       xml:space="preserve"
  7.2106 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2107 +       x="357.27625"
  7.2108 +       y="-534.5929"
  7.2109 +       id="text3955"
  7.2110 +       sodipodi:linespacing="100%"><tspan
  7.2111 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2112 +         sodipodi:role="line"
  7.2113 +         x="357.27625"
  7.2114 +         y="-534.5929"
  7.2115 +         id="tspan3957">(in pthreads, checks</tspan><tspan
  7.2116 +         id="tspan3959"
  7.2117 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2118 +         sodipodi:role="line"
  7.2119 +         x="357.27625"
  7.2120 +         y="-525.5929"> mutex structures,</tspan><tspan
  7.2121 +         id="tspan3961"
  7.2122 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2123 +         sodipodi:role="line"
  7.2124 +         x="357.27625"
  7.2125 +         y="-516.5929"> cond var structs, etc)</tspan></text>
  7.2126 +    <text
  7.2127 +       xml:space="preserve"
  7.2128 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2129 +       x="459.43005"
  7.2130 +       y="-507.95343"
  7.2131 +       id="text3963"
  7.2132 +       sodipodi:linespacing="100%"><tspan
  7.2133 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2134 +         sodipodi:role="line"
  7.2135 +         x="459.43005"
  7.2136 +         y="-507.95343"
  7.2137 +         id="tspan3967">work-unit</tspan><tspan
  7.2138 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2139 +         sodipodi:role="line"
  7.2140 +         x="459.43005"
  7.2141 +         y="-498.95343"
  7.2142 +         id="tspan3971">state chgs</tspan></text>
  7.2143 +    <text
  7.2144 +       sodipodi:linespacing="100%"
  7.2145 +       id="text3981"
  7.2146 +       y="-195.95343"
  7.2147 +       x="415.43005"
  7.2148 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2149 +       xml:space="preserve"
  7.2150 +       inkscape:transform-center-x="-8.125"><tspan
  7.2151 +         y="-195.95343"
  7.2152 +         x="415.43005"
  7.2153 +         sodipodi:role="line"
  7.2154 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2155 +         id="tspan3987">done with msgs</tspan></text>
  7.2156 +    <path
  7.2157 +       sodipodi:nodetypes="cc"
  7.2158 +       inkscape:connector-curvature="0"
  7.2159 +       id="path3386"
  7.2160 +       d="m 30.09217,-616.20795 134.75175,0"
  7.2161 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" />
  7.2162 +    <text
  7.2163 +       xml:space="preserve"
  7.2164 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2165 +       x="95.430077"
  7.2166 +       y="-617.95343"
  7.2167 +       id="text3388"
  7.2168 +       sodipodi:linespacing="100%"><tspan
  7.2169 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2170 +         sodipodi:role="line"
  7.2171 +         x="95.430077"
  7.2172 +         y="-617.95343"
  7.2173 +         id="tspan3390">Suspend at end of work-unit</tspan></text>
  7.2174 +    <text
  7.2175 +       xml:space="preserve"
  7.2176 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2177 +       x="29.276283"
  7.2178 +       y="-593.95343"
  7.2179 +       id="text3392"
  7.2180 +       sodipodi:linespacing="100%"><tspan
  7.2181 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2182 +         sodipodi:role="line"
  7.2183 +         x="29.276283"
  7.2184 +         y="-593.95343"
  7.2185 +         id="tspan3394">pthread is example of this case,</tspan><tspan
  7.2186 +         id="tspan3396"
  7.2187 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2188 +         sodipodi:role="line"
  7.2189 +         x="29.276283"
  7.2190 +         y="-584.95343">as is Cilk when suspends on sync</tspan></text>
  7.2191 +    <g
  7.2192 +       transform="translate(297.05331,-904)"
  7.2193 +       id="g3398">
  7.2194 +      <text
  7.2195 +         xml:space="preserve"
  7.2196 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2197 +         x="222.25137"
  7.2198 +         y="285.36765"
  7.2199 +         id="text3400"
  7.2200 +         sodipodi:linespacing="100%"><tspan
  7.2201 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2202 +           sodipodi:role="line"
  7.2203 +           x="222.25137"
  7.2204 +           y="285.36765"
  7.2205 +           id="tspan3402">Assigner</tspan></text>
  7.2206 +      <rect
  7.2207 +         y="274.77512"
  7.2208 +         x="193.78287"
  7.2209 +         height="25.544432"
  7.2210 +         width="57.486332"
  7.2211 +         id="rect3404"
  7.2212 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.2213 +    </g>
  7.2214 +    <g
  7.2215 +       transform="translate(177.05331,-904)"
  7.2216 +       id="g3406">
  7.2217 +      <text
  7.2218 +         xml:space="preserve"
  7.2219 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2220 +         x="222.25137"
  7.2221 +         y="285.36765"
  7.2222 +         id="text3408"
  7.2223 +         sodipodi:linespacing="100%"><tspan
  7.2224 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2225 +           sodipodi:role="line"
  7.2226 +           x="222.25137"
  7.2227 +           y="285.36765"
  7.2228 +           id="tspan3412">request hdlr</tspan></text>
  7.2229 +      <rect
  7.2230 +         y="274.77512"
  7.2231 +         x="193.78287"
  7.2232 +         height="25.544432"
  7.2233 +         width="57.486332"
  7.2234 +         id="rect3414"
  7.2235 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.2236 +    </g>
  7.2237 +    <path
  7.2238 +       sodipodi:nodetypes="cc"
  7.2239 +       inkscape:connector-curvature="0"
  7.2240 +       id="path3416"
  7.2241 +       d="m 428.09218,-616.20795 60.12116,0"
  7.2242 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2243 +    <g
  7.2244 +       id="g3418"
  7.2245 +       transform="translate(-300,-280)">
  7.2246 +      <text
  7.2247 +         sodipodi:linespacing="100%"
  7.2248 +         id="text3420"
  7.2249 +         y="-339.22998"
  7.2250 +         x="579.39252"
  7.2251 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2252 +         xml:space="preserve"><tspan
  7.2253 +           id="tspan3422"
  7.2254 +           y="-339.22998"
  7.2255 +           x="579.39252"
  7.2256 +           sodipodi:role="line"
  7.2257 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan
  7.2258 +           y="-330.22998"
  7.2259 +           x="579.39252"
  7.2260 +           sodipodi:role="line"
  7.2261 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2262 +           id="tspan3424">chk msgs?</tspan></text>
  7.2263 +      <rect
  7.2264 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.2265 +         id="rect3426"
  7.2266 +         width="36.810017"
  7.2267 +         height="36.457531"
  7.2268 +         x="624.01776"
  7.2269 +         y="93.582199"
  7.2270 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
  7.2271 +         ry="0" />
  7.2272 +    </g>
  7.2273 +    <path
  7.2274 +       sodipodi:nodetypes="cc"
  7.2275 +       inkscape:connector-curvature="0"
  7.2276 +       id="path3428"
  7.2277 +       d="m 228.09216,-616.20795 21.72127,0"
  7.2278 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2279 +    <path
  7.2280 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  7.2281 +       d="m 307.68401,-616.20795 61.46905,0"
  7.2282 +       id="path3430"
  7.2283 +       inkscape:connector-curvature="0"
  7.2284 +       sodipodi:nodetypes="cc" />
  7.2285 +    <text
  7.2286 +       sodipodi:linespacing="100%"
  7.2287 +       id="text3432"
  7.2288 +       y="-583.95343"
  7.2289 +       x="289.43005"
  7.2290 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2291 +       xml:space="preserve"><tspan
  7.2292 +         id="tspan3434"
  7.2293 +         y="-583.95343"
  7.2294 +         x="289.43005"
  7.2295 +         sodipodi:role="line"
  7.2296 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan
  7.2297 +         y="-574.95343"
  7.2298 +         x="289.43005"
  7.2299 +         sodipodi:role="line"
  7.2300 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2301 +         id="tspan3436">chk</tspan></text>
  7.2302 +    <text
  7.2303 +       xml:space="preserve"
  7.2304 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2305 +       x="315.43005"
  7.2306 +       y="-619.95343"
  7.2307 +       id="text3438"
  7.2308 +       sodipodi:linespacing="100%"><tspan
  7.2309 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2310 +         sodipodi:role="line"
  7.2311 +         x="315.43005"
  7.2312 +         y="-619.95343"
  7.2313 +         id="tspan3440">no</tspan></text>
  7.2314 +    <text
  7.2315 +       sodipodi:linespacing="100%"
  7.2316 +       id="text3442"
  7.2317 +       y="-593.95343"
  7.2318 +       x="353.43005"
  7.2319 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2320 +       xml:space="preserve"><tspan
  7.2321 +         id="tspan3444"
  7.2322 +         y="-593.95343"
  7.2323 +         x="353.43005"
  7.2324 +         sodipodi:role="line"
  7.2325 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">   done</tspan><tspan
  7.2326 +         y="-584.95343"
  7.2327 +         x="353.43005"
  7.2328 +         sodipodi:role="line"
  7.2329 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2330 +         id="tspan3446">  with</tspan><tspan
  7.2331 +         y="-575.95343"
  7.2332 +         x="353.43005"
  7.2333 +         sodipodi:role="line"
  7.2334 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2335 +         id="tspan3448">msgs</tspan></text>
  7.2336 +    <g
  7.2337 +       transform="translate(177.05331,-864)"
  7.2338 +       id="g3450">
  7.2339 +      <text
  7.2340 +         xml:space="preserve"
  7.2341 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2342 +         x="222.25137"
  7.2343 +         y="285.36765"
  7.2344 +         id="text3452"
  7.2345 +         sodipodi:linespacing="100%"><tspan
  7.2346 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2347 +           sodipodi:role="line"
  7.2348 +           x="222.25137"
  7.2349 +           y="285.36765"
  7.2350 +           id="tspan3456">get semEnv</tspan><tspan
  7.2351 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2352 +           sodipodi:role="line"
  7.2353 +           x="222.25137"
  7.2354 +           y="294.36765"
  7.2355 +           id="tspan3558">lock &amp; update</tspan><tspan
  7.2356 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2357 +           sodipodi:role="line"
  7.2358 +           x="222.25137"
  7.2359 +           y="303.36765"
  7.2360 +           id="tspan3560">state of VP</tspan></text>
  7.2361 +      <rect
  7.2362 +         y="274.77512"
  7.2363 +         x="193.78287"
  7.2364 +         height="33.710323"
  7.2365 +         width="57.486332"
  7.2366 +         id="rect3458"
  7.2367 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.2368 +    </g>
  7.2369 +    <path
  7.2370 +       sodipodi:nodetypes="cc"
  7.2371 +       inkscape:connector-curvature="0"
  7.2372 +       id="path3460"
  7.2373 +       d="m 399.56974,-604.00562 0,12.75587"
  7.2374 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2375 +    <g
  7.2376 +       id="g3472"
  7.2377 +       transform="translate(297.05331,-864)">
  7.2378 +      <text
  7.2379 +         sodipodi:linespacing="100%"
  7.2380 +         id="text3474"
  7.2381 +         y="285.36765"
  7.2382 +         x="222.25137"
  7.2383 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2384 +         xml:space="preserve"><tspan
  7.2385 +           y="285.36765"
  7.2386 +           x="222.25137"
  7.2387 +           sodipodi:role="line"
  7.2388 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2389 +           id="tspan3476">get semEnv</tspan><tspan
  7.2390 +           id="tspan3478"
  7.2391 +           y="294.36765"
  7.2392 +           x="222.25137"
  7.2393 +           sodipodi:role="line"
  7.2394 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">lock &amp; pick a</tspan><tspan
  7.2395 +           y="303.36765"
  7.2396 +           x="222.25137"
  7.2397 +           sodipodi:role="line"
  7.2398 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2399 +           id="tspan3566">ready VP</tspan></text>
  7.2400 +      <rect
  7.2401 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.2402 +         id="rect3480"
  7.2403 +         width="57.486332"
  7.2404 +         height="33.710323"
  7.2405 +         x="193.78287"
  7.2406 +         y="274.77512" />
  7.2407 +    </g>
  7.2408 +    <text
  7.2409 +       sodipodi:linespacing="100%"
  7.2410 +       id="text3486"
  7.2411 +       y="-654.5929"
  7.2412 +       x="357.27625"
  7.2413 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2414 +       xml:space="preserve"><tspan
  7.2415 +         id="tspan3488"
  7.2416 +         y="-654.5929"
  7.2417 +         x="357.27625"
  7.2418 +         sodipodi:role="line"
  7.2419 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in pthreads, checks</tspan><tspan
  7.2420 +         y="-645.5929"
  7.2421 +         x="357.27625"
  7.2422 +         sodipodi:role="line"
  7.2423 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2424 +         id="tspan3490"> mutex structures,</tspan><tspan
  7.2425 +         y="-636.5929"
  7.2426 +         x="357.27625"
  7.2427 +         sodipodi:role="line"
  7.2428 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2429 +         id="tspan3492"> cond var structs, etc)</tspan></text>
  7.2430 +    <text
  7.2431 +       sodipodi:linespacing="100%"
  7.2432 +       id="text3494"
  7.2433 +       y="-627.95343"
  7.2434 +       x="459.43005"
  7.2435 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2436 +       xml:space="preserve"><tspan
  7.2437 +         id="tspan3496"
  7.2438 +         y="-627.95343"
  7.2439 +         x="459.43005"
  7.2440 +         sodipodi:role="line"
  7.2441 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">work-unit</tspan><tspan
  7.2442 +         id="tspan3498"
  7.2443 +         y="-618.95343"
  7.2444 +         x="459.43005"
  7.2445 +         sodipodi:role="line"
  7.2446 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">state chgs</tspan></text>
  7.2447 +    <path
  7.2448 +       sodipodi:nodetypes="cc"
  7.2449 +       inkscape:connector-curvature="0"
  7.2450 +       id="path3500"
  7.2451 +       d="m 548.67846,-615.848 261.45961,-0.0912"
  7.2452 +       style="fill:none;stroke:#000000;stroke-width:1.00000036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2453 +    <g
  7.2454 +       transform="translate(717.05331,-904)"
  7.2455 +       id="g3518">
  7.2456 +      <text
  7.2457 +         xml:space="preserve"
  7.2458 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2459 +         x="222.37003"
  7.2460 +         y="285.69943"
  7.2461 +         id="text3520"
  7.2462 +         sodipodi:linespacing="100%"><tspan
  7.2463 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2464 +           sodipodi:role="line"
  7.2465 +           x="222.37003"
  7.2466 +           y="285.69943"
  7.2467 +           id="tspan3522">Jmp to new</tspan><tspan
  7.2468 +           id="tspan3524"
  7.2469 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2470 +           sodipodi:role="line"
  7.2471 +           x="222.37003"
  7.2472 +           y="294.69943">work-unit</tspan></text>
  7.2473 +      <rect
  7.2474 +         y="274.77512"
  7.2475 +         x="193.78287"
  7.2476 +         height="25.544432"
  7.2477 +         width="57.486332"
  7.2478 +         id="rect3526"
  7.2479 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.2480 +    </g>
  7.2481 +    <path
  7.2482 +       sodipodi:nodetypes="cc"
  7.2483 +       inkscape:connector-curvature="0"
  7.2484 +       id="path3528"
  7.2485 +       d="m 868.0922,-616.20795 41.0608,0"
  7.2486 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2487 +    <path
  7.2488 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  7.2489 +       d="m 519.56974,-604.00562 0,12.75587"
  7.2490 +       id="path3568"
  7.2491 +       inkscape:connector-curvature="0"
  7.2492 +       sodipodi:nodetypes="cc" />
  7.2493 +    <g
  7.2494 +       id="g3572"
  7.2495 +       transform="translate(617.05331,-904)">
  7.2496 +      <text
  7.2497 +         sodipodi:linespacing="100%"
  7.2498 +         id="text3574"
  7.2499 +         y="285.69943"
  7.2500 +         x="222.37003"
  7.2501 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2502 +         xml:space="preserve"><tspan
  7.2503 +           y="285.69943"
  7.2504 +           x="222.37003"
  7.2505 +           sodipodi:role="line"
  7.2506 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2507 +           id="tspan3578">switch to</tspan><tspan
  7.2508 +           y="294.69943"
  7.2509 +           x="222.37003"
  7.2510 +           sodipodi:role="line"
  7.2511 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2512 +           id="tspan3584">ready VP</tspan></text>
  7.2513 +      <rect
  7.2514 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.2515 +         id="rect3580"
  7.2516 +         width="57.486332"
  7.2517 +         height="25.544432"
  7.2518 +         x="193.78287"
  7.2519 +         y="274.77512" />
  7.2520 +    </g>
  7.2521 +    <path
  7.2522 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.2523 +       d="m 279.12967,-592.6255 -38.74926,53.74501 -0.37105,270.05417 35.3037,38.5653"
  7.2524 +       id="path3588"
  7.2525 +       inkscape:connector-curvature="0"
  7.2526 +       sodipodi:nodetypes="cccc" />
  7.2527 +    <path
  7.2528 +       sodipodi:nodetypes="cc"
  7.2529 +       inkscape:connector-curvature="0"
  7.2530 +       id="path3590"
  7.2531 +       d="m 328.33352,-197.5484 41.44797,-413.82488"
  7.2532 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2533 +    <g
  7.2534 +       id="g4716"
  7.2535 +       transform="translate(-22.94669,-904)">
  7.2536 +      <text
  7.2537 +         sodipodi:linespacing="100%"
  7.2538 +         id="text4718"
  7.2539 +         y="285.39841"
  7.2540 +         x="222.37003"
  7.2541 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2542 +         xml:space="preserve"><tspan
  7.2543 +           id="tspan4720"
  7.2544 +           y="285.39841"
  7.2545 +           x="222.37003"
  7.2546 +           sodipodi:role="line"
  7.2547 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save VP</tspan><tspan
  7.2548 +           id="tspan4722"
  7.2549 +           y="294.39841"
  7.2550 +           x="222.37003"
  7.2551 +           sodipodi:role="line"
  7.2552 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context</tspan></text>
  7.2553 +      <rect
  7.2554 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.2555 +         id="rect4724"
  7.2556 +         width="57.486332"
  7.2557 +         height="25.544432"
  7.2558 +         x="193.78287"
  7.2559 +         y="274.77512" />
  7.2560 +    </g>
  7.2561 +    <path
  7.2562 +       sodipodi:nodetypes="cc"
  7.2563 +       inkscape:connector-curvature="0"
  7.2564 +       id="path4726"
  7.2565 +       d="m 549.69914,-605.3604 79.38092,221.59022"
  7.2566 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2567 +    <text
  7.2568 +       xml:space="preserve"
  7.2569 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2570 +       x="573.43005"
  7.2571 +       y="-583.95343"
  7.2572 +       id="text4728"
  7.2573 +       sodipodi:linespacing="100%"><tspan
  7.2574 +         id="tspan4732"
  7.2575 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2576 +         sodipodi:role="line"
  7.2577 +         x="573.43005"
  7.2578 +         y="-583.95343">No VPs</tspan><tspan
  7.2579 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2580 +         sodipodi:role="line"
  7.2581 +         x="573.43005"
  7.2582 +         y="-574.95343"
  7.2583 +         id="tspan4736">ready</tspan></text>
  7.2584 +    <text
  7.2585 +       inkscape:transform-center-x="-8.125"
  7.2586 +       xml:space="preserve"
  7.2587 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2588 +       x="451.43005"
  7.2589 +       y="-253.95343"
  7.2590 +       id="text4791"
  7.2591 +       sodipodi:linespacing="100%"><tspan
  7.2592 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2593 +         sodipodi:role="line"
  7.2594 +         x="451.43005"
  7.2595 +         y="-253.95343"
  7.2596 +         id="tspan4845">increase backoff each</tspan><tspan
  7.2597 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2598 +         sodipodi:role="line"
  7.2599 +         x="451.43005"
  7.2600 +         y="-244.95343"
  7.2601 +         id="tspan8389">repetition &amp; update</tspan><tspan
  7.2602 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2603 +         sodipodi:role="line"
  7.2604 +         x="451.43005"
  7.2605 +         y="-235.95343"
  7.2606 +         id="tspan8385">backoff state</tspan><tspan
  7.2607 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2608 +         sodipodi:role="line"
  7.2609 +         x="451.43005"
  7.2610 +         y="-226.95343"
  7.2611 +         id="tspan8462">Try to make core enter</tspan><tspan
  7.2612 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2613 +         sodipodi:role="line"
  7.2614 +         x="451.43005"
  7.2615 +         y="-217.95343"
  7.2616 +         id="tspan8476">power-down idle state</tspan><tspan
  7.2617 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2618 +         sodipodi:role="line"
  7.2619 +         x="451.43005"
  7.2620 +         y="-208.95343"
  7.2621 +         id="tspan8464">while waiting</tspan></text>
  7.2622 +    <g
  7.2623 +       transform="translate(257.05331,-564)"
  7.2624 +       id="g4825">
  7.2625 +      <text
  7.2626 +         xml:space="preserve"
  7.2627 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2628 +         x="222.37003"
  7.2629 +         y="285.39841"
  7.2630 +         id="text4827"
  7.2631 +         sodipodi:linespacing="100%"><tspan
  7.2632 +           id="tspan4831"
  7.2633 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2634 +           sodipodi:role="line"
  7.2635 +           x="222.37003"
  7.2636 +           y="285.39841">do Backoff</tspan><tspan
  7.2637 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2638 +           sodipodi:role="line"
  7.2639 +           x="222.37003"
  7.2640 +           y="294.39841"
  7.2641 +           id="tspan4837">wait</tspan></text>
  7.2642 +      <rect
  7.2643 +         y="274.77512"
  7.2644 +         x="193.78287"
  7.2645 +         height="25.544432"
  7.2646 +         width="57.486332"
  7.2647 +         id="rect4833"
  7.2648 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.2649 +    </g>
  7.2650 +    <path
  7.2651 +       sodipodi:nodetypes="cc"
  7.2652 +       inkscape:connector-curvature="0"
  7.2653 +       id="path4839"
  7.2654 +       d="m 449.58066,-276.19778 -135.75889,46.57393"
  7.2655 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2656 +    <path
  7.2657 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.2658 +       d="m 328.29269,-192.89706 c 201.947,-1.19048 188.59077,6.60715 222.99693,-14.36012 65.59054,-39.97116 58.47949,-168.79464 107.66658,-129.80654"
  7.2659 +       id="path7449"
  7.2660 +       inkscape:connector-curvature="0"
  7.2661 +       sodipodi:nodetypes="csc" />
  7.2662 +    <path
  7.2663 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  7.2664 +       d="m 659.56974,-233.52943 0,24.20748"
  7.2665 +       id="path8339"
  7.2666 +       inkscape:connector-curvature="0"
  7.2667 +       sodipodi:nodetypes="cc" />
  7.2668 +    <g
  7.2669 +       transform="translate(80,80)"
  7.2670 +       id="g8347">
  7.2671 +      <text
  7.2672 +         xml:space="preserve"
  7.2673 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2674 +         x="579.39252"
  7.2675 +         y="-335.22998"
  7.2676 +         id="text8349"
  7.2677 +         sodipodi:linespacing="100%"><tspan
  7.2678 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2679 +           sodipodi:role="line"
  7.2680 +           x="579.39252"
  7.2681 +           y="-335.22998"
  7.2682 +           id="tspan8359">send &quot;need</tspan><tspan
  7.2683 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2684 +           sodipodi:role="line"
  7.2685 +           x="579.39252"
  7.2686 +           y="-326.22998"
  7.2687 +           id="tspan8412">work&quot;?</tspan></text>
  7.2688 +      <rect
  7.2689 +         ry="0"
  7.2690 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
  7.2691 +         y="93.582199"
  7.2692 +         x="624.01776"
  7.2693 +         height="36.457531"
  7.2694 +         width="36.810017"
  7.2695 +         id="rect8355"
  7.2696 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.2697 +    </g>
  7.2698 +    <text
  7.2699 +       xml:space="preserve"
  7.2700 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2701 +       x="681.43005"
  7.2702 +       y="-223.95343"
  7.2703 +       id="text8363"
  7.2704 +       sodipodi:linespacing="100%"><tspan
  7.2705 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2706 +         sodipodi:role="line"
  7.2707 +         x="681.43005"
  7.2708 +         y="-223.95343"
  7.2709 +         id="tspan8367">yes, send</tspan></text>
  7.2710 +    <path
  7.2711 +       sodipodi:nodetypes="cc"
  7.2712 +       inkscape:connector-curvature="0"
  7.2713 +       id="path8371"
  7.2714 +       d="M 630.69705,-196.1891 509.08787,-272.94486"
  7.2715 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2716 +    <g
  7.2717 +       id="g8391"
  7.2718 +       transform="translate(80,20)">
  7.2719 +      <text
  7.2720 +         sodipodi:linespacing="100%"
  7.2721 +         id="text8393"
  7.2722 +         y="-339.22998"
  7.2723 +         x="579.39252"
  7.2724 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2725 +         xml:space="preserve"><tspan
  7.2726 +           y="-339.22998"
  7.2727 +           x="579.39252"
  7.2728 +           sodipodi:role="line"
  7.2729 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2730 +           id="tspan8395">got</tspan><tspan
  7.2731 +           id="tspan8397"
  7.2732 +           y="-330.22998"
  7.2733 +           x="579.39252"
  7.2734 +           sodipodi:role="line"
  7.2735 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">work?</tspan></text>
  7.2736 +      <rect
  7.2737 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.2738 +         id="rect8399"
  7.2739 +         width="36.810017"
  7.2740 +         height="36.457531"
  7.2741 +         x="624.01776"
  7.2742 +         y="93.582199"
  7.2743 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
  7.2744 +         ry="0" />
  7.2745 +    </g>
  7.2746 +    <path
  7.2747 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  7.2748 +       d="m 659.56974,-292.00562 0,13.28746"
  7.2749 +       id="path8401"
  7.2750 +       inkscape:connector-curvature="0"
  7.2751 +       sodipodi:nodetypes="cc" />
  7.2752 +    <text
  7.2753 +       xml:space="preserve"
  7.2754 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2755 +       x="625.43005"
  7.2756 +       y="-247.95343"
  7.2757 +       id="text8403"
  7.2758 +       sodipodi:linespacing="100%"><tspan
  7.2759 +         id="tspan8405"
  7.2760 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2761 +         sodipodi:role="line"
  7.2762 +         x="625.43005"
  7.2763 +         y="-247.95343">Don't</tspan><tspan
  7.2764 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2765 +         sodipodi:role="line"
  7.2766 +         x="625.43005"
  7.2767 +         y="-238.95343"
  7.2768 +         id="tspan8460">send</tspan></text>
  7.2769 +    <path
  7.2770 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.2771 +       d="M 632.60182,-256.1891 509.09908,-276.55267"
  7.2772 +       id="path8408"
  7.2773 +       inkscape:connector-curvature="0"
  7.2774 +       sodipodi:nodetypes="cc" />
  7.2775 +    <text
  7.2776 +       sodipodi:linespacing="100%"
  7.2777 +       id="text8420"
  7.2778 +       y="-317.95343"
  7.2779 +       x="697.43005"
  7.2780 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2781 +       xml:space="preserve"><tspan
  7.2782 +         id="tspan8422"
  7.2783 +         y="-317.95343"
  7.2784 +         x="697.43005"
  7.2785 +         sodipodi:role="line"
  7.2786 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan
  7.2787 +         y="-308.95343"
  7.2788 +         x="697.43005"
  7.2789 +         sodipodi:role="line"
  7.2790 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2791 +         id="tspan8424">got</tspan><tspan
  7.2792 +         y="-299.95343"
  7.2793 +         x="697.43005"
  7.2794 +         sodipodi:role="line"
  7.2795 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2796 +         id="tspan8426">work</tspan></text>
  7.2797 +    <text
  7.2798 +       sodipodi:linespacing="100%"
  7.2799 +       id="text8428"
  7.2800 +       y="-560.5929"
  7.2801 +       x="737.27625"
  7.2802 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2803 +       xml:space="preserve"><tspan
  7.2804 +         y="-560.5929"
  7.2805 +         x="737.27625"
  7.2806 +         sodipodi:role="line"
  7.2807 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2808 +         id="tspan8434">The difference between top two paths</tspan><tspan
  7.2809 +         y="-551.5929"
  7.2810 +         x="737.27625"
  7.2811 +         sodipodi:role="line"
  7.2812 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2813 +         id="tspan8440">is the way the request hdlr+assigner has</tspan><tspan
  7.2814 +         y="-542.5929"
  7.2815 +         x="737.27625"
  7.2816 +         sodipodi:role="line"
  7.2817 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2818 +         id="tspan8442">been implemented -- use shared state on</tspan><tspan
  7.2819 +         y="-533.5929"
  7.2820 +         x="737.27625"
  7.2821 +         sodipodi:role="line"
  7.2822 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2823 +         id="tspan8450">top path, but only local on the second.</tspan><tspan
  7.2824 +         y="-524.5929"
  7.2825 +         x="737.27625"
  7.2826 +         sodipodi:role="line"
  7.2827 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2828 +         id="tspan8454">NOTE: the request hdlr and assigner are</tspan><tspan
  7.2829 +         y="-515.5929"
  7.2830 +         x="737.27625"
  7.2831 +         sodipodi:role="line"
  7.2832 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2833 +         id="tspan8456">combined into a single straight-line piece</tspan><tspan
  7.2834 +         y="-506.5929"
  7.2835 +         x="737.27625"
  7.2836 +         sodipodi:role="line"
  7.2837 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2838 +         id="tspan8458">of code.</tspan></text>
  7.2839 +    <path
  7.2840 +       sodipodi:nodetypes="cccc"
  7.2841 +       inkscape:connector-curvature="0"
  7.2842 +       id="path8466"
  7.2843 +       d="m 279.12967,-474.53026 -22.71235,36.22941 -0.21748,176.32874 29.26421,32.66347"
  7.2844 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2845 +    <path
  7.2846 +       sodipodi:nodetypes="cc"
  7.2847 +       inkscape:connector-curvature="0"
  7.2848 +       id="path8468"
  7.2849 +       d="M 548.67838,-498.64159 808.48533,-608.65596"
  7.2850 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  7.2851 +    <text
  7.2852 +       sodipodi:linespacing="100%"
  7.2853 +       id="text8470"
  7.2854 +       y="-483.95343"
  7.2855 +       x="571.43005"
  7.2856 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2857 +       xml:space="preserve"><tspan
  7.2858 +         y="-483.95343"
  7.2859 +         x="571.43005"
  7.2860 +         sodipodi:role="line"
  7.2861 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.2862 +         id="tspan8472">No VPs</tspan><tspan
  7.2863 +         id="tspan8474"
  7.2864 +         y="-474.95343"
  7.2865 +         x="571.43005"
  7.2866 +         sodipodi:role="line"
  7.2867 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">  ready</tspan></text>
  7.2868 +    <text
  7.2869 +       sodipodi:linespacing="100%"
  7.2870 +       id="text8478"
  7.2871 +       y="86.04657"
  7.2872 +       x="531.43005"
  7.2873 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2874 +       xml:space="preserve"
  7.2875 +       inkscape:transform-center-x="-8.125"><tspan
  7.2876 +         y="86.04657"
  7.2877 +         x="531.43005"
  7.2878 +         sodipodi:role="line"
  7.2879 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.2880 +         id="tspan8538" /></text>
  7.2881 +    <flowRoot
  7.2882 +       xml:space="preserve"
  7.2883 +       id="flowRoot8540"
  7.2884 +       style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"><flowRegion
  7.2885 +         id="flowRegion8542"><rect
  7.2886 +           id="rect8544"
  7.2887 +           width="527.61902"
  7.2888 +           height="266.66666"
  7.2889 +           x="457.14285"
  7.2890 +           y="491.66666"
  7.2891 +           style="font-size:8px" /></flowRegion><flowPara
  7.2892 +         id="flowPara8546" /></flowRoot>    <flowRoot
  7.2893 +       xml:space="preserve"
  7.2894 +       id="flowRoot8548"
  7.2895 +       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  7.2896 +       transform="translate(-336.46922,-441.70658)"><flowRegion
  7.2897 +         id="flowRegion8550"><rect
  7.2898 +           id="rect8552"
  7.2899 +           width="539.04761"
  7.2900 +           height="272.38095"
  7.2901 +           x="447.61905"
  7.2902 +           y="487.85715" /></flowRegion><flowPara
  7.2903 +         style="font-size:8px"
  7.2904 +         id="flowPara8765">Local semantic Env holds the Q of ready work-units </flowPara><flowPara
  7.2905 +         style="font-size:8px"
  7.2906 +         id="flowPara8805">-] Msgs update the local semantic state, and put work-units into this Q</flowPara><flowPara
  7.2907 +         style="font-size:8px"
  7.2908 +         id="flowPara8767">-] Shared sem state is traditional VMS, except req hdlr and assigner are same Fn</flowPara><flowPara
  7.2909 +         style="font-size:8px"
  7.2910 +         id="flowPara8769">-] Shared sem has its own structs to decide which VP is ready, and switches to it at end of Assigner</flowPara><flowPara
  7.2911 +         style="font-size:8px"
  7.2912 +         id="flowPara8771">-] Which core a VP runs on is decided between req hdlr and assigner, based on shared structs that hold the VPs</flowPara><flowPara
  7.2913 +         style="font-size:8px"
  7.2914 +         id="flowPara8773">-] For local-only, VP is moved to the core it runs on -- assigner only moves VPs to diff cores and receives them</flowPara><flowPara
  7.2915 +         style="font-size:8px"
  7.2916 +         id="flowPara8775">-] For atomic tasks, the task-info is sent betwn cores.. for VPs, whole live portion of stack is sent.</flowPara><flowPara
  7.2917 +         style="font-size:8px"
  7.2918 +         id="flowPara8777" /><flowPara
  7.2919 +         style="font-size:8px"
  7.2920 +         id="flowPara8823">Okay, so this fits the standard VMS model -- except now the core-controller is gone, so the extra level of UCC is taken away.  Now, the MasterVP is &quot;reusing&quot; whatever VP has suspended. -- in a way, the core-controller plu AnimationMaster are reduced to the assembly call that the WrapperLib (WL) makes to end the current work-unit, which suspends the VP.  Inside that suspend call, is the opportunity to switch between different processes, call upon VMS-only helper services, and so on.</flowPara><flowPara
  7.2921 +         style="font-size:8px"
  7.2922 +         id="flowPara8825">So, the switch-over is a function call to a wrapp-lib, which then does an assembly Fn call -- the assembly saves the stack state (regs already saved when did the wrapper-lib call), and then puts localEnv into the param reg (for 64 bit convention) and jumps to the plugin-fn.  Note, there are three different assembly calls, one for each kind of work-unit, to end it.  Sometimes work-unit calls assembly directly, sometimes it calls a wrapper-lib that just does all the work right there, sometimes the wrapper lib calls the appropriate assembly Fn.</flowPara><flowPara
  7.2923 +         style="font-size:8px"
  7.2924 +         id="flowPara8827" /><flowPara
  7.2925 +         style="font-size:8px"
  7.2926 +         id="flowPara8793">Need to modify request structure, so abstraction can supply services via request -- and perhaps library Fns that perform some of services direct from app, and other Fns for use inside the plugins.. such as Malloc-Free, create VP, create atomic-Task.. some are pure wrapper-lib, others are combo.. seeing one version of malloc for wrapper-lib, different for plugin and msg-system use.The msg system is details of impl of Lang Animator -- so plugin is still &quot;completing&quot; the lang animator by adding semantics</flowPara><flowPara
  7.2927 +         style="font-size:8px"
  7.2928 +         id="flowPara8801">Core-controller was a second level beneath the runtime (Language Animator is the runtime)..  The sched slots were virtual physical animators, and the masterVP was the Language Animator, which the AnimationMaster Fn and the plugin Fns supplied the behavior of.  The coreCtlr switched between levels -- The MasterVP was &quot;outside&quot; the framework of the schedling slots -- in a way it was beside them (they took turns getting the actual phys animator, so same level) and in other way was above -- it controlled what went into the slots, so above them.  I another way, the MasterVP was the Language Animator, while the slots were virtual physical, so they had no locial connection -- the slots were related to the same thing that animatored the language animator..  a very strange arrangement.</flowPara></flowRoot>    <text
  7.2929 +       xml:space="preserve"
  7.2930 +       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  7.2931 +       x="894.00696"
  7.2932 +       y="-182.42088"
  7.2933 +       id="text8833"
  7.2934 +       sodipodi:linespacing="125%"><tspan
  7.2935 +         sodipodi:role="line"
  7.2936 +         id="tspan8835"
  7.2937 +         x="894.00696"
  7.2938 +         y="-182.42088"> </tspan></text>
  7.2939 +    <g
  7.2940 +       id="g3490"
  7.2941 +       transform="translate(177.05331,-343.31973)">
  7.2942 +      <text
  7.2943 +         sodipodi:linespacing="100%"
  7.2944 +         id="text3492"
  7.2945 +         y="285.39841"
  7.2946 +         x="222.37003"
  7.2947 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2948 +         xml:space="preserve"><tspan
  7.2949 +           y="285.39841"
  7.2950 +           x="222.37003"
  7.2951 +           sodipodi:role="line"
  7.2952 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2953 +           id="tspan3501">send work-</tspan><tspan
  7.2954 +           y="294.39841"
  7.2955 +           x="222.37003"
  7.2956 +           sodipodi:role="line"
  7.2957 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2958 +           id="tspan3511">push msg</tspan><tspan
  7.2959 +           y="303.39841"
  7.2960 +           x="223.72354"
  7.2961 +           sodipodi:role="line"
  7.2962 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2963 +           id="tspan3513">and start </tspan><tspan
  7.2964 +           y="312.39841"
  7.2965 +           x="222.37003"
  7.2966 +           sodipodi:role="line"
  7.2967 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.2968 +           id="tspan3515">timer for it.</tspan></text>
  7.2969 +      <rect
  7.2970 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  7.2971 +         id="rect3503"
  7.2972 +         width="57.486332"
  7.2973 +         height="63.639675"
  7.2974 +         x="193.78287"
  7.2975 +         y="274.77512" />
  7.2976 +    </g>
  7.2977 +    <text
  7.2978 +       xml:space="preserve"
  7.2979 +       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  7.2980 +       x="84.168976"
  7.2981 +       y="-681.48474"
  7.2982 +       id="text3537"
  7.2983 +       sodipodi:linespacing="125%"><tspan
  7.2984 +         sodipodi:role="line"
  7.2985 +         id="tspan3539"
  7.2986 +         x="84.168976"
  7.2987 +         y="-681.48474"
  7.2988 +         style="font-size:40px">Control Flow of Universal Proto-Runtime </tspan></text>
  7.2989 +    <g
  7.2990 +       transform="translate(237.05331,-404)"
  7.2991 +       id="g3541">
  7.2992 +      <text
  7.2993 +         xml:space="preserve"
  7.2994 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.2995 +         x="222.25137"
  7.2996 +         y="285.36765"
  7.2997 +         id="text3543"
  7.2998 +         sodipodi:linespacing="100%"><tspan
  7.2999 +           id="tspan3547"
  7.3000 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.3001 +           sodipodi:role="line"
  7.3002 +           x="222.25137"
  7.3003 +           y="285.36765">Expired timer</tspan><tspan
  7.3004 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  7.3005 +           sodipodi:role="line"
  7.3006 +           x="222.25137"
  7.3007 +           y="294.36765"
  7.3008 +           id="tspan3553">handler</tspan></text>
  7.3009 +      <rect
  7.3010 +         y="274.77512"
  7.3011 +         x="193.78287"
  7.3012 +         height="25.544432"
  7.3013 +         width="57.486332"
  7.3014 +         id="rect3549"
  7.3015 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  7.3016 +    </g>
  7.3017 +    <path
  7.3018 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  7.3019 +       d="m 323.63077,-165.12086 131.74691,33.98134"
  7.3020 +       id="path3555"
  7.3021 +       inkscape:connector-curvature="0"
  7.3022 +       sodipodi:nodetypes="cc" />
  7.3023 +    <text
  7.3024 +       xml:space="preserve"
  7.3025 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.3026 +       x="393.43005"
  7.3027 +       y="-151.95343"
  7.3028 +       id="text3557"
  7.3029 +       sodipodi:linespacing="100%"><tspan
  7.3030 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.3031 +         sodipodi:role="line"
  7.3032 +         x="393.43005"
  7.3033 +         y="-151.95343"
  7.3034 +         id="tspan3561">  Expired</tspan><tspan
  7.3035 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  7.3036 +         sodipodi:role="line"
  7.3037 +         x="393.43005"
  7.3038 +         y="-142.95343"
  7.3039 +         id="tspan3565">                  timer</tspan></text>
  7.3040 +    <text
  7.3041 +       xml:space="preserve"
  7.3042 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  7.3043 +       x="449.27625"
  7.3044 +       y="-93.273193"
  7.3045 +       id="text3567"
  7.3046 +       sodipodi:linespacing="100%"><tspan
  7.3047 +         id="tspan3579"
  7.3048 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.3049 +         sodipodi:role="line"
  7.3050 +         x="449.27625"
  7.3051 +         y="-93.273193">When send work to other core,</tspan><tspan
  7.3052 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.3053 +         sodipodi:role="line"
  7.3054 +         x="449.27625"
  7.3055 +         y="-84.273193"
  7.3056 +         id="tspan3591">it may be sleeping. So when timer</tspan><tspan
  7.3057 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.3058 +         sodipodi:role="line"
  7.3059 +         x="449.27625"
  7.3060 +         y="-75.273193"
  7.3061 +         id="tspan3593">expires, do escrow, which is atomic</tspan><tspan
  7.3062 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.3063 +         sodipodi:role="line"
  7.3064 +         x="449.27625"
  7.3065 +         y="-66.273193"
  7.3066 +         id="tspan3595">check of whether work was received.</tspan><tspan
  7.3067 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.3068 +         sodipodi:role="line"
  7.3069 +         x="449.27625"
  7.3070 +         y="-57.273193"
  7.3071 +         id="tspan3597">If not, then check if dest core is </tspan><tspan
  7.3072 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.3073 +         sodipodi:role="line"
  7.3074 +         x="449.27625"
  7.3075 +         y="-48.273193"
  7.3076 +         id="tspan3599">sleeping -- if no, then take work</tspan><tspan
  7.3077 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.3078 +         sodipodi:role="line"
  7.3079 +         x="449.27625"
  7.3080 +         y="-39.273193"
  7.3081 +         id="tspan3611">back. If yes, do wakeup and set a </tspan><tspan
  7.3082 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.3083 +         sodipodi:role="line"
  7.3084 +         x="449.27625"
  7.3085 +         y="-30.273193"
  7.3086 +         id="tspan3609">new timer, which will do  this</tspan><tspan
  7.3087 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  7.3088 +         sodipodi:role="line"
  7.3089 +         x="449.27625"
  7.3090 +         y="-21.273193"
  7.3091 +         id="tspan3617">handling again.</tspan></text>
  7.3092 +  </g>
  7.3093 +</svg>
     8.1 Binary file 0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow_big_page.pdf has changed
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/0__Papers/VMS/Split-core_msg_passing_based/figures/control_flow_big_page.svg	Mon Oct 08 23:03:26 2012 -0700
     9.3 @@ -0,0 +1,3090 @@
     9.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
     9.5 +<!-- Created with Inkscape (http://www.inkscape.org/) -->
     9.6 +
     9.7 +<svg
     9.8 +   xmlns:dc="http://purl.org/dc/elements/1.1/"
     9.9 +   xmlns:cc="http://creativecommons.org/ns#"
    9.10 +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    9.11 +   xmlns:svg="http://www.w3.org/2000/svg"
    9.12 +   xmlns="http://www.w3.org/2000/svg"
    9.13 +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    9.14 +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    9.15 +   width="1488.189"
    9.16 +   height="1052.3622"
    9.17 +   id="svg2"
    9.18 +   sodipodi:version="0.32"
    9.19 +   inkscape:version="0.48.1 "
    9.20 +   sodipodi:docname="control_flow.svg"
    9.21 +   inkscape:output_extension="org.inkscape.output.svg.inkscape"
    9.22 +   version="1.1">
    9.23 +  <defs
    9.24 +     id="defs4">
    9.25 +    <marker
    9.26 +       inkscape:stockid="StopL"
    9.27 +       orient="auto"
    9.28 +       refY="0"
    9.29 +       refX="0"
    9.30 +       id="StopL"
    9.31 +       style="overflow:visible">
    9.32 +      <path
    9.33 +         id="path10015"
    9.34 +         d="M 0,5.65 0,-5.65"
    9.35 +         style="fill:none;stroke:#000000;stroke-width:1pt"
    9.36 +         transform="scale(0.8,0.8)"
    9.37 +         inkscape:connector-curvature="0" />
    9.38 +    </marker>
    9.39 +    <marker
    9.40 +       inkscape:stockid="TriangleOutL"
    9.41 +       orient="auto"
    9.42 +       refY="0"
    9.43 +       refX="0"
    9.44 +       id="TriangleOutL"
    9.45 +       style="overflow:visible">
    9.46 +      <path
    9.47 +         id="path9988"
    9.48 +         d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
    9.49 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
    9.50 +         transform="scale(0.8,0.8)"
    9.51 +         inkscape:connector-curvature="0" />
    9.52 +    </marker>
    9.53 +    <marker
    9.54 +       inkscape:stockid="Arrow2Mstart"
    9.55 +       orient="auto"
    9.56 +       refY="0"
    9.57 +       refX="0"
    9.58 +       id="Arrow2Mstart"
    9.59 +       style="overflow:visible">
    9.60 +      <path
    9.61 +         id="path5492"
    9.62 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
    9.63 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
    9.64 +         transform="scale(0.6,0.6)"
    9.65 +         inkscape:connector-curvature="0" />
    9.66 +    </marker>
    9.67 +    <marker
    9.68 +       inkscape:stockid="Arrow2Mend"
    9.69 +       orient="auto"
    9.70 +       refY="0"
    9.71 +       refX="0"
    9.72 +       id="Arrow2Mend"
    9.73 +       style="overflow:visible">
    9.74 +      <path
    9.75 +         id="path3563"
    9.76 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
    9.77 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
    9.78 +         transform="scale(-0.6,-0.6)"
    9.79 +         inkscape:connector-curvature="0" />
    9.80 +    </marker>
    9.81 +    <marker
    9.82 +       inkscape:stockid="TriangleOutM"
    9.83 +       orient="auto"
    9.84 +       refY="0"
    9.85 +       refX="0"
    9.86 +       id="TriangleOutM"
    9.87 +       style="overflow:visible">
    9.88 +      <path
    9.89 +         id="path3682"
    9.90 +         d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
    9.91 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
    9.92 +         transform="scale(0.4,0.4)"
    9.93 +         inkscape:connector-curvature="0" />
    9.94 +    </marker>
    9.95 +    <marker
    9.96 +       inkscape:stockid="Arrow2Lend"
    9.97 +       orient="auto"
    9.98 +       refY="0"
    9.99 +       refX="0"
   9.100 +       id="Arrow2Lend"
   9.101 +       style="overflow:visible">
   9.102 +      <path
   9.103 +         id="path3557"
   9.104 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.105 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.106 +         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
   9.107 +         inkscape:connector-curvature="0" />
   9.108 +    </marker>
   9.109 +    <marker
   9.110 +       inkscape:stockid="Arrow1Mstart"
   9.111 +       orient="auto"
   9.112 +       refY="0"
   9.113 +       refX="0"
   9.114 +       id="Arrow1Mstart"
   9.115 +       style="overflow:visible">
   9.116 +      <path
   9.117 +         id="path3542"
   9.118 +         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
   9.119 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
   9.120 +         transform="matrix(0.4,0,0,0.4,4,0)"
   9.121 +         inkscape:connector-curvature="0" />
   9.122 +    </marker>
   9.123 +    <marker
   9.124 +       inkscape:stockid="Arrow1Lend"
   9.125 +       orient="auto"
   9.126 +       refY="0"
   9.127 +       refX="0"
   9.128 +       id="Arrow1Lend"
   9.129 +       style="overflow:visible">
   9.130 +      <path
   9.131 +         id="path3539"
   9.132 +         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
   9.133 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
   9.134 +         transform="matrix(-0.8,0,0,-0.8,-10,0)"
   9.135 +         inkscape:connector-curvature="0" />
   9.136 +    </marker>
   9.137 +    <marker
   9.138 +       inkscape:stockid="Arrow1Lstart"
   9.139 +       orient="auto"
   9.140 +       refY="0"
   9.141 +       refX="0"
   9.142 +       id="Arrow1Lstart"
   9.143 +       style="overflow:visible">
   9.144 +      <path
   9.145 +         id="path3536"
   9.146 +         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
   9.147 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
   9.148 +         transform="matrix(0.8,0,0,0.8,10,0)"
   9.149 +         inkscape:connector-curvature="0" />
   9.150 +    </marker>
   9.151 +    <inkscape:perspective
   9.152 +       sodipodi:type="inkscape:persp3d"
   9.153 +       inkscape:vp_x="0 : 526.18109 : 1"
   9.154 +       inkscape:vp_y="0 : 1000 : 0"
   9.155 +       inkscape:vp_z="744.09448 : 526.18109 : 1"
   9.156 +       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
   9.157 +       id="perspective10" />
   9.158 +    <inkscape:perspective
   9.159 +       id="perspective4311"
   9.160 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.161 +       inkscape:vp_z="1 : 0.5 : 1"
   9.162 +       inkscape:vp_y="0 : 1000 : 0"
   9.163 +       inkscape:vp_x="0 : 0.5 : 1"
   9.164 +       sodipodi:type="inkscape:persp3d" />
   9.165 +    <inkscape:perspective
   9.166 +       id="perspective4336"
   9.167 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.168 +       inkscape:vp_z="1 : 0.5 : 1"
   9.169 +       inkscape:vp_y="0 : 1000 : 0"
   9.170 +       inkscape:vp_x="0 : 0.5 : 1"
   9.171 +       sodipodi:type="inkscape:persp3d" />
   9.172 +    <inkscape:perspective
   9.173 +       id="perspective4365"
   9.174 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.175 +       inkscape:vp_z="1 : 0.5 : 1"
   9.176 +       inkscape:vp_y="0 : 1000 : 0"
   9.177 +       inkscape:vp_x="0 : 0.5 : 1"
   9.178 +       sodipodi:type="inkscape:persp3d" />
   9.179 +    <marker
   9.180 +       inkscape:stockid="Arrow2Mend"
   9.181 +       orient="auto"
   9.182 +       refY="0"
   9.183 +       refX="0"
   9.184 +       id="Arrow2Mend-9"
   9.185 +       style="overflow:visible">
   9.186 +      <path
   9.187 +         id="path3563-4"
   9.188 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.189 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.190 +         transform="scale(-0.6,-0.6)"
   9.191 +         inkscape:connector-curvature="0" />
   9.192 +    </marker>
   9.193 +    <inkscape:perspective
   9.194 +       id="perspective4423"
   9.195 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.196 +       inkscape:vp_z="1 : 0.5 : 1"
   9.197 +       inkscape:vp_y="0 : 1000 : 0"
   9.198 +       inkscape:vp_x="0 : 0.5 : 1"
   9.199 +       sodipodi:type="inkscape:persp3d" />
   9.200 +    <marker
   9.201 +       inkscape:stockid="Arrow2Mend"
   9.202 +       orient="auto"
   9.203 +       refY="0"
   9.204 +       refX="0"
   9.205 +       id="Arrow2Mend-8"
   9.206 +       style="overflow:visible">
   9.207 +      <path
   9.208 +         id="path3563-2"
   9.209 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.210 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.211 +         transform="scale(-0.6,-0.6)"
   9.212 +         inkscape:connector-curvature="0" />
   9.213 +    </marker>
   9.214 +    <inkscape:perspective
   9.215 +       id="perspective4461"
   9.216 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.217 +       inkscape:vp_z="1 : 0.5 : 1"
   9.218 +       inkscape:vp_y="0 : 1000 : 0"
   9.219 +       inkscape:vp_x="0 : 0.5 : 1"
   9.220 +       sodipodi:type="inkscape:persp3d" />
   9.221 +    <inkscape:perspective
   9.222 +       id="perspective14081"
   9.223 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.224 +       inkscape:vp_z="1 : 0.5 : 1"
   9.225 +       inkscape:vp_y="0 : 1000 : 0"
   9.226 +       inkscape:vp_x="0 : 0.5 : 1"
   9.227 +       sodipodi:type="inkscape:persp3d" />
   9.228 +    <inkscape:perspective
   9.229 +       id="perspective14206"
   9.230 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.231 +       inkscape:vp_z="1 : 0.5 : 1"
   9.232 +       inkscape:vp_y="0 : 1000 : 0"
   9.233 +       inkscape:vp_x="0 : 0.5 : 1"
   9.234 +       sodipodi:type="inkscape:persp3d" />
   9.235 +    <inkscape:perspective
   9.236 +       id="perspective14299"
   9.237 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.238 +       inkscape:vp_z="1 : 0.5 : 1"
   9.239 +       inkscape:vp_y="0 : 1000 : 0"
   9.240 +       inkscape:vp_x="0 : 0.5 : 1"
   9.241 +       sodipodi:type="inkscape:persp3d" />
   9.242 +    <inkscape:perspective
   9.243 +       id="perspective16915"
   9.244 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.245 +       inkscape:vp_z="1 : 0.5 : 1"
   9.246 +       inkscape:vp_y="0 : 1000 : 0"
   9.247 +       inkscape:vp_x="0 : 0.5 : 1"
   9.248 +       sodipodi:type="inkscape:persp3d" />
   9.249 +    <inkscape:perspective
   9.250 +       id="perspective16946"
   9.251 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.252 +       inkscape:vp_z="1 : 0.5 : 1"
   9.253 +       inkscape:vp_y="0 : 1000 : 0"
   9.254 +       inkscape:vp_x="0 : 0.5 : 1"
   9.255 +       sodipodi:type="inkscape:persp3d" />
   9.256 +    <inkscape:perspective
   9.257 +       id="perspective17789"
   9.258 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.259 +       inkscape:vp_z="1 : 0.5 : 1"
   9.260 +       inkscape:vp_y="0 : 1000 : 0"
   9.261 +       inkscape:vp_x="0 : 0.5 : 1"
   9.262 +       sodipodi:type="inkscape:persp3d" />
   9.263 +    <inkscape:perspective
   9.264 +       id="perspective17820"
   9.265 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.266 +       inkscape:vp_z="1 : 0.5 : 1"
   9.267 +       inkscape:vp_y="0 : 1000 : 0"
   9.268 +       inkscape:vp_x="0 : 0.5 : 1"
   9.269 +       sodipodi:type="inkscape:persp3d" />
   9.270 +    <marker
   9.271 +       inkscape:stockid="Arrow2Mend"
   9.272 +       orient="auto"
   9.273 +       refY="0"
   9.274 +       refX="0"
   9.275 +       id="Arrow2Mend-8-2"
   9.276 +       style="overflow:visible">
   9.277 +      <path
   9.278 +         id="path3563-2-3"
   9.279 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.280 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.281 +         transform="scale(-0.6,-0.6)"
   9.282 +         inkscape:connector-curvature="0" />
   9.283 +    </marker>
   9.284 +    <inkscape:perspective
   9.285 +       id="perspective17848"
   9.286 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.287 +       inkscape:vp_z="1 : 0.5 : 1"
   9.288 +       inkscape:vp_y="0 : 1000 : 0"
   9.289 +       inkscape:vp_x="0 : 0.5 : 1"
   9.290 +       sodipodi:type="inkscape:persp3d" />
   9.291 +    <inkscape:perspective
   9.292 +       id="perspective17891"
   9.293 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.294 +       inkscape:vp_z="1 : 0.5 : 1"
   9.295 +       inkscape:vp_y="0 : 1000 : 0"
   9.296 +       inkscape:vp_x="0 : 0.5 : 1"
   9.297 +       sodipodi:type="inkscape:persp3d" />
   9.298 +    <marker
   9.299 +       inkscape:stockid="Arrow2Mend"
   9.300 +       orient="auto"
   9.301 +       refY="0"
   9.302 +       refX="0"
   9.303 +       id="Arrow2Mend-8-7"
   9.304 +       style="overflow:visible">
   9.305 +      <path
   9.306 +         id="path3563-2-8"
   9.307 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.308 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.309 +         transform="scale(-0.6,-0.6)"
   9.310 +         inkscape:connector-curvature="0" />
   9.311 +    </marker>
   9.312 +    <inkscape:perspective
   9.313 +       id="perspective17925"
   9.314 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.315 +       inkscape:vp_z="1 : 0.5 : 1"
   9.316 +       inkscape:vp_y="0 : 1000 : 0"
   9.317 +       inkscape:vp_x="0 : 0.5 : 1"
   9.318 +       sodipodi:type="inkscape:persp3d" />
   9.319 +    <inkscape:perspective
   9.320 +       id="perspective17996"
   9.321 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.322 +       inkscape:vp_z="1 : 0.5 : 1"
   9.323 +       inkscape:vp_y="0 : 1000 : 0"
   9.324 +       inkscape:vp_x="0 : 0.5 : 1"
   9.325 +       sodipodi:type="inkscape:persp3d" />
   9.326 +    <inkscape:perspective
   9.327 +       id="perspective18039"
   9.328 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.329 +       inkscape:vp_z="1 : 0.5 : 1"
   9.330 +       inkscape:vp_y="0 : 1000 : 0"
   9.331 +       inkscape:vp_x="0 : 0.5 : 1"
   9.332 +       sodipodi:type="inkscape:persp3d" />
   9.333 +    <inkscape:perspective
   9.334 +       id="perspective18073"
   9.335 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.336 +       inkscape:vp_z="1 : 0.5 : 1"
   9.337 +       inkscape:vp_y="0 : 1000 : 0"
   9.338 +       inkscape:vp_x="0 : 0.5 : 1"
   9.339 +       sodipodi:type="inkscape:persp3d" />
   9.340 +    <inkscape:perspective
   9.341 +       id="perspective4016"
   9.342 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.343 +       inkscape:vp_z="1 : 0.5 : 1"
   9.344 +       inkscape:vp_y="0 : 1000 : 0"
   9.345 +       inkscape:vp_x="0 : 0.5 : 1"
   9.346 +       sodipodi:type="inkscape:persp3d" />
   9.347 +    <inkscape:perspective
   9.348 +       id="perspective4046"
   9.349 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.350 +       inkscape:vp_z="1 : 0.5 : 1"
   9.351 +       inkscape:vp_y="0 : 1000 : 0"
   9.352 +       inkscape:vp_x="0 : 0.5 : 1"
   9.353 +       sodipodi:type="inkscape:persp3d" />
   9.354 +    <inkscape:perspective
   9.355 +       id="perspective4071"
   9.356 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.357 +       inkscape:vp_z="1 : 0.5 : 1"
   9.358 +       inkscape:vp_y="0 : 1000 : 0"
   9.359 +       inkscape:vp_x="0 : 0.5 : 1"
   9.360 +       sodipodi:type="inkscape:persp3d" />
   9.361 +    <inkscape:perspective
   9.362 +       id="perspective4101"
   9.363 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.364 +       inkscape:vp_z="1 : 0.5 : 1"
   9.365 +       inkscape:vp_y="0 : 1000 : 0"
   9.366 +       inkscape:vp_x="0 : 0.5 : 1"
   9.367 +       sodipodi:type="inkscape:persp3d" />
   9.368 +    <inkscape:perspective
   9.369 +       id="perspective5945"
   9.370 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.371 +       inkscape:vp_z="1 : 0.5 : 1"
   9.372 +       inkscape:vp_y="0 : 1000 : 0"
   9.373 +       inkscape:vp_x="0 : 0.5 : 1"
   9.374 +       sodipodi:type="inkscape:persp3d" />
   9.375 +    <inkscape:perspective
   9.376 +       id="perspective4144"
   9.377 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.378 +       inkscape:vp_z="1 : 0.5 : 1"
   9.379 +       inkscape:vp_y="0 : 1000 : 0"
   9.380 +       inkscape:vp_x="0 : 0.5 : 1"
   9.381 +       sodipodi:type="inkscape:persp3d" />
   9.382 +    <marker
   9.383 +       inkscape:stockid="Arrow2Mend"
   9.384 +       orient="auto"
   9.385 +       refY="0"
   9.386 +       refX="0"
   9.387 +       id="Arrow2Mend-8-7-1"
   9.388 +       style="overflow:visible">
   9.389 +      <path
   9.390 +         id="path3563-2-8-7"
   9.391 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.392 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.393 +         transform="scale(-0.6,-0.6)"
   9.394 +         inkscape:connector-curvature="0" />
   9.395 +    </marker>
   9.396 +    <inkscape:perspective
   9.397 +       id="perspective4733"
   9.398 +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
   9.399 +       inkscape:vp_z="1 : 0.5 : 1"
   9.400 +       inkscape:vp_y="0 : 1000 : 0"
   9.401 +       inkscape:vp_x="0 : 0.5 : 1"
   9.402 +       sodipodi:type="inkscape:persp3d" />
   9.403 +    <marker
   9.404 +       inkscape:stockid="Arrow2Mend"
   9.405 +       orient="auto"
   9.406 +       refY="0"
   9.407 +       refX="0"
   9.408 +       id="Arrow2Mend-8-7-12"
   9.409 +       style="overflow:visible">
   9.410 +      <path
   9.411 +         inkscape:connector-curvature="0"
   9.412 +         id="path3563-2-8-2"
   9.413 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.414 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.415 +         transform="scale(-0.6,-0.6)" />
   9.416 +    </marker>
   9.417 +    <marker
   9.418 +       inkscape:stockid="Arrow2Mend"
   9.419 +       orient="auto"
   9.420 +       refY="0"
   9.421 +       refX="0"
   9.422 +       id="marker8401"
   9.423 +       style="overflow:visible">
   9.424 +      <path
   9.425 +         inkscape:connector-curvature="0"
   9.426 +         id="path8403"
   9.427 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.428 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.429 +         transform="scale(-0.6,-0.6)" />
   9.430 +    </marker>
   9.431 +    <marker
   9.432 +       inkscape:stockid="Arrow2Mend"
   9.433 +       orient="auto"
   9.434 +       refY="0"
   9.435 +       refX="0"
   9.436 +       id="marker8405"
   9.437 +       style="overflow:visible">
   9.438 +      <path
   9.439 +         inkscape:connector-curvature="0"
   9.440 +         id="path8407"
   9.441 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.442 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.443 +         transform="scale(-0.6,-0.6)" />
   9.444 +    </marker>
   9.445 +    <marker
   9.446 +       inkscape:stockid="Arrow2Mend"
   9.447 +       orient="auto"
   9.448 +       refY="0"
   9.449 +       refX="0"
   9.450 +       id="marker8409"
   9.451 +       style="overflow:visible">
   9.452 +      <path
   9.453 +         inkscape:connector-curvature="0"
   9.454 +         id="path8411"
   9.455 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.456 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.457 +         transform="scale(-0.6,-0.6)" />
   9.458 +    </marker>
   9.459 +    <marker
   9.460 +       inkscape:stockid="Arrow2Mend"
   9.461 +       orient="auto"
   9.462 +       refY="0"
   9.463 +       refX="0"
   9.464 +       id="marker8413"
   9.465 +       style="overflow:visible">
   9.466 +      <path
   9.467 +         inkscape:connector-curvature="0"
   9.468 +         id="path8415"
   9.469 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.470 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.471 +         transform="scale(-0.6,-0.6)" />
   9.472 +    </marker>
   9.473 +    <marker
   9.474 +       inkscape:stockid="Arrow2Mend"
   9.475 +       orient="auto"
   9.476 +       refY="0"
   9.477 +       refX="0"
   9.478 +       id="marker8417"
   9.479 +       style="overflow:visible">
   9.480 +      <path
   9.481 +         inkscape:connector-curvature="0"
   9.482 +         id="path8419"
   9.483 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.484 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.485 +         transform="scale(-0.6,-0.6)" />
   9.486 +    </marker>
   9.487 +    <marker
   9.488 +       inkscape:stockid="Arrow2Mend"
   9.489 +       orient="auto"
   9.490 +       refY="0"
   9.491 +       refX="0"
   9.492 +       id="Arrow2Mend-8-7-17"
   9.493 +       style="overflow:visible">
   9.494 +      <path
   9.495 +         inkscape:connector-curvature="0"
   9.496 +         id="path3563-2-8-5"
   9.497 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.498 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.499 +         transform="scale(-0.6,-0.6)" />
   9.500 +    </marker>
   9.501 +    <marker
   9.502 +       inkscape:stockid="Arrow2Mend"
   9.503 +       orient="auto"
   9.504 +       refY="0"
   9.505 +       refX="0"
   9.506 +       id="Arrow2Mend-8-7-0"
   9.507 +       style="overflow:visible">
   9.508 +      <path
   9.509 +         inkscape:connector-curvature="0"
   9.510 +         id="path3563-2-8-3"
   9.511 +         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   9.512 +         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   9.513 +         transform="scale(-0.6,-0.6)" />
   9.514 +    </marker>
   9.515 +  </defs>
   9.516 +  <sodipodi:namedview
   9.517 +     id="base"
   9.518 +     pagecolor="#ffffff"
   9.519 +     bordercolor="#666666"
   9.520 +     borderopacity="1.0"
   9.521 +     gridtolerance="10000"
   9.522 +     guidetolerance="10"
   9.523 +     objecttolerance="10"
   9.524 +     inkscape:pageopacity="0.0"
   9.525 +     inkscape:pageshadow="2"
   9.526 +     inkscape:zoom="0.97968464"
   9.527 +     inkscape:cx="457.74508"
   9.528 +     inkscape:cy="680.01473"
   9.529 +     inkscape:document-units="px"
   9.530 +     inkscape:current-layer="layer1"
   9.531 +     showgrid="false"
   9.532 +     inkscape:window-width="1600"
   9.533 +     inkscape:window-height="848"
   9.534 +     inkscape:window-x="-8"
   9.535 +     inkscape:window-y="-8"
   9.536 +     inkscape:window-maximized="1" />
   9.537 +  <metadata
   9.538 +     id="metadata7">
   9.539 +    <rdf:RDF>
   9.540 +      <cc:Work
   9.541 +         rdf:about="">
   9.542 +        <dc:format>image/svg+xml</dc:format>
   9.543 +        <dc:type
   9.544 +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
   9.545 +        <dc:title></dc:title>
   9.546 +      </cc:Work>
   9.547 +    </rdf:RDF>
   9.548 +  </metadata>
   9.549 +  <g
   9.550 +     inkscape:label="Layer 1"
   9.551 +     inkscape:groupmode="layer"
   9.552 +     id="layer1"
   9.553 +     transform="translate(-3.5307846,729.06884)">
   9.554 +    <text
   9.555 +       xml:space="preserve"
   9.556 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.557 +       x="441.66748"
   9.558 +       y="344.66492"
   9.559 +       id="text8002"
   9.560 +       sodipodi:linespacing="100%"><tspan
   9.561 +         sodipodi:role="line"
   9.562 +         x="441.66748"
   9.563 +         y="344.66492"
   9.564 +         style="font-size:8px"
   9.565 +         id="tspan12172" /></text>
   9.566 +    <text
   9.567 +       xml:space="preserve"
   9.568 +       style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.569 +       x="368.25397"
   9.570 +       y="345.27225"
   9.571 +       id="text5849"><tspan
   9.572 +         sodipodi:role="line"
   9.573 +         id="tspan5851"
   9.574 +         x="368.25397"
   9.575 +         y="345.27225" /></text>
   9.576 +    <g
   9.577 +       transform="translate(-22.94669,-784)"
   9.578 +       id="g8065">
   9.579 +      <text
   9.580 +         xml:space="preserve"
   9.581 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.582 +         x="222.37003"
   9.583 +         y="285.39841"
   9.584 +         id="text8067"
   9.585 +         sodipodi:linespacing="100%"><tspan
   9.586 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.587 +           sodipodi:role="line"
   9.588 +           x="222.37003"
   9.589 +           y="285.39841"
   9.590 +           id="tspan11696">save VP</tspan><tspan
   9.591 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.592 +           sodipodi:role="line"
   9.593 +           x="222.37003"
   9.594 +           y="294.39841"
   9.595 +           id="tspan12201">context</tspan></text>
   9.596 +      <rect
   9.597 +         y="274.77512"
   9.598 +         x="193.78287"
   9.599 +         height="25.544432"
   9.600 +         width="57.486332"
   9.601 +         id="rect8073"
   9.602 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
   9.603 +    </g>
   9.604 +    <g
   9.605 +       id="g11700"
   9.606 +       transform="translate(160,-40)">
   9.607 +      <text
   9.608 +         xml:space="preserve"
   9.609 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.610 +         x="579.39252"
   9.611 +         y="-343.22998"
   9.612 +         id="text11476"
   9.613 +         sodipodi:linespacing="100%"><tspan
   9.614 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.615 +           sodipodi:role="line"
   9.616 +           x="579.39252"
   9.617 +           y="-343.22998"
   9.618 +           id="tspan11478">which</tspan><tspan
   9.619 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.620 +           sodipodi:role="line"
   9.621 +           x="579.39252"
   9.622 +           y="-334.22998"
   9.623 +           id="tspan12299">context</tspan><tspan
   9.624 +           id="tspan11480"
   9.625 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.626 +           sodipodi:role="line"
   9.627 +           x="579.39252"
   9.628 +           y="-325.22998">switch</tspan></text>
   9.629 +      <rect
   9.630 +         ry="0"
   9.631 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
   9.632 +         y="93.582199"
   9.633 +         x="624.01776"
   9.634 +         height="36.457531"
   9.635 +         width="36.810017"
   9.636 +         id="rect11482"
   9.637 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
   9.638 +    </g>
   9.639 +    <g
   9.640 +       transform="translate(177.05331,-664)"
   9.641 +       id="g8103">
   9.642 +      <text
   9.643 +         xml:space="preserve"
   9.644 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.645 +         x="222.25137"
   9.646 +         y="285.36765"
   9.647 +         id="text8105"
   9.648 +         sodipodi:linespacing="100%"><tspan
   9.649 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.650 +           sodipodi:role="line"
   9.651 +           x="222.25137"
   9.652 +           y="285.36765"
   9.653 +           id="tspan8111">constraint</tspan><tspan
   9.654 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.655 +           sodipodi:role="line"
   9.656 +           x="222.25137"
   9.657 +           y="294.36765"
   9.658 +           id="tspan8115">update hdlr</tspan></text>
   9.659 +      <rect
   9.660 +         y="274.77512"
   9.661 +         x="193.78287"
   9.662 +         height="25.544432"
   9.663 +         width="57.486332"
   9.664 +         id="rect8109"
   9.665 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
   9.666 +    </g>
   9.667 +    <g
   9.668 +       id="g8165"
   9.669 +       transform="translate(177.05331,-604)">
   9.670 +      <text
   9.671 +         sodipodi:linespacing="100%"
   9.672 +         id="text8167"
   9.673 +         y="285.39841"
   9.674 +         x="222.37003"
   9.675 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.676 +         xml:space="preserve"><tspan
   9.677 +           id="tspan8169"
   9.678 +           y="285.39841"
   9.679 +           x="222.37003"
   9.680 +           sodipodi:role="line"
   9.681 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Push work</tspan><tspan
   9.682 +           y="294.39841"
   9.683 +           x="222.37003"
   9.684 +           sodipodi:role="line"
   9.685 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.686 +           id="tspan11020">onto Q</tspan></text>
   9.687 +      <rect
   9.688 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
   9.689 +         id="rect8171"
   9.690 +         width="57.486332"
   9.691 +         height="25.544432"
   9.692 +         x="193.78287"
   9.693 +         y="274.77512" />
   9.694 +    </g>
   9.695 +    <g
   9.696 +       transform="translate(437.05331,-664)"
   9.697 +       id="g8173">
   9.698 +      <text
   9.699 +         xml:space="preserve"
   9.700 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.701 +         x="222.37003"
   9.702 +         y="285.69943"
   9.703 +         id="text8175"
   9.704 +         sodipodi:linespacing="100%"><tspan
   9.705 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.706 +           sodipodi:role="line"
   9.707 +           x="222.37003"
   9.708 +           y="285.69943"
   9.709 +           id="tspan11014">Take work-</tspan><tspan
   9.710 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.711 +           sodipodi:role="line"
   9.712 +           x="222.37003"
   9.713 +           y="294.69943"
   9.714 +           id="tspan11018">unit from Q</tspan></text>
   9.715 +      <rect
   9.716 +         y="274.77512"
   9.717 +         x="193.78287"
   9.718 +         height="25.544432"
   9.719 +         width="57.486332"
   9.720 +         id="rect8179"
   9.721 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
   9.722 +    </g>
   9.723 +    <path
   9.724 +       sodipodi:nodetypes="cc"
   9.725 +       inkscape:connector-curvature="0"
   9.726 +       id="path8510"
   9.727 +       d="m 30.09217,-376.20795 134.75175,0"
   9.728 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" />
   9.729 +    <text
   9.730 +       xml:space="preserve"
   9.731 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.732 +       x="95.276283"
   9.733 +       y="-377.95343"
   9.734 +       id="text8067-3"
   9.735 +       sodipodi:linespacing="100%"><tspan
   9.736 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.737 +         sodipodi:role="line"
   9.738 +         x="95.276283"
   9.739 +         y="-377.95343"
   9.740 +         id="tspan8071-6">Non-suspend end of work-unit</tspan></text>
   9.741 +    <path
   9.742 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)"
   9.743 +       d="m 30.09217,-496.20795 134.75175,0"
   9.744 +       id="path11002"
   9.745 +       inkscape:connector-curvature="0"
   9.746 +       sodipodi:nodetypes="cc" />
   9.747 +    <text
   9.748 +       sodipodi:linespacing="100%"
   9.749 +       id="text11004"
   9.750 +       y="-497.95343"
   9.751 +       x="95.430077"
   9.752 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.753 +       xml:space="preserve"><tspan
   9.754 +         id="tspan11006"
   9.755 +         y="-497.95343"
   9.756 +         x="95.430077"
   9.757 +         sodipodi:role="line"
   9.758 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Suspend at end of work-unit</tspan></text>
   9.759 +    <path
   9.760 +       sodipodi:nodetypes="cc"
   9.761 +       inkscape:connector-curvature="0"
   9.762 +       id="path11472"
   9.763 +       d="m 399.56974,-364.00562 0,34.68367"
   9.764 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
   9.765 +    <path
   9.766 +       sodipodi:nodetypes="cc"
   9.767 +       inkscape:connector-curvature="0"
   9.768 +       id="path11484"
   9.769 +       d="m 688.09217,-376.20795 22.13646,0"
   9.770 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
   9.771 +    <path
   9.772 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
   9.773 +       d="m 768.09217,-376.20795 41.4633,0"
   9.774 +       id="path11518"
   9.775 +       inkscape:connector-curvature="0"
   9.776 +       sodipodi:nodetypes="cc" />
   9.777 +    <text
   9.778 +       sodipodi:linespacing="100%"
   9.779 +       id="text11578"
   9.780 +       y="-387.95343"
   9.781 +       x="295.27628"
   9.782 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.783 +       xml:space="preserve"><tspan
   9.784 +         id="tspan11580"
   9.785 +         y="-387.95343"
   9.786 +         x="295.27628"
   9.787 +         sodipodi:role="line"
   9.788 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1" /></text>
   9.789 +    <text
   9.790 +       xml:space="preserve"
   9.791 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.792 +       x="729.43005"
   9.793 +       y="-341.95343"
   9.794 +       id="text11616"
   9.795 +       sodipodi:linespacing="100%"><tspan
   9.796 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   9.797 +         sodipodi:role="line"
   9.798 +         x="730.78357"
   9.799 +         y="-341.95343"
   9.800 +         id="tspan11618">     new </tspan><tspan
   9.801 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   9.802 +         sodipodi:role="line"
   9.803 +         x="729.43005"
   9.804 +         y="-332.95343"
   9.805 +         id="tspan12175">      work-unit</tspan><tspan
   9.806 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   9.807 +         sodipodi:role="line"
   9.808 +         x="729.43005"
   9.809 +         y="-323.95343"
   9.810 +         id="tspan11620">          is attached to</tspan><tspan
   9.811 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   9.812 +         sodipodi:role="line"
   9.813 +         x="729.43005"
   9.814 +         y="-314.95343"
   9.815 +         id="tspan11622">               a VP's context</tspan></text>
   9.816 +    <text
   9.817 +       sodipodi:linespacing="100%"
   9.818 +       id="text11624"
   9.819 +       y="-405.95343"
   9.820 +       x="787.43005"
   9.821 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.822 +       xml:space="preserve"><tspan
   9.823 +         id="tspan11626"
   9.824 +         y="-405.95343"
   9.825 +         x="787.43005"
   9.826 +         sodipodi:role="line"
   9.827 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">new work-</tspan><tspan
   9.828 +         id="tspan11630"
   9.829 +         y="-396.95343"
   9.830 +         x="787.43005"
   9.831 +         sodipodi:role="line"
   9.832 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">unit has</tspan><tspan
   9.833 +         y="-387.95343"
   9.834 +         x="787.43005"
   9.835 +         sodipodi:role="line"
   9.836 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   9.837 +         id="tspan12161">own local</tspan><tspan
   9.838 +         y="-378.95343"
   9.839 +         x="787.43005"
   9.840 +         sodipodi:role="line"
   9.841 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
   9.842 +         id="tspan11634">context</tspan></text>
   9.843 +    <g
   9.844 +       transform="translate(617.05331,-683.31973)"
   9.845 +       id="g11656">
   9.846 +      <text
   9.847 +         xml:space="preserve"
   9.848 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.849 +         x="222.37003"
   9.850 +         y="285.39841"
   9.851 +         id="text11658"
   9.852 +         sodipodi:linespacing="100%"><tspan
   9.853 +           id="tspan11668"
   9.854 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.855 +           sodipodi:role="line"
   9.856 +           x="222.37003"
   9.857 +           y="285.39841">load curr VP</tspan><tspan
   9.858 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.859 +           sodipodi:role="line"
   9.860 +           x="222.37003"
   9.861 +           y="294.39841"
   9.862 +           id="tspan11686">with context</tspan><tspan
   9.863 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.864 +           sodipodi:role="line"
   9.865 +           x="222.37003"
   9.866 +           y="303.39841"
   9.867 +           id="tspan11688">from new</tspan><tspan
   9.868 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.869 +           sodipodi:role="line"
   9.870 +           x="222.37003"
   9.871 +           y="312.39841"
   9.872 +           id="tspan11690">work-unit</tspan></text>
   9.873 +      <rect
   9.874 +         y="274.77512"
   9.875 +         x="193.78287"
   9.876 +         height="63.639675"
   9.877 +         width="57.486332"
   9.878 +         id="rect11670"
   9.879 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
   9.880 +    </g>
   9.881 +    <text
   9.882 +       sodipodi:linespacing="100%"
   9.883 +       id="text11718"
   9.884 +       y="-367.95343"
   9.885 +       x="95.276283"
   9.886 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.887 +       xml:space="preserve"><tspan
   9.888 +         id="tspan11720"
   9.889 +         y="-367.95343"
   9.890 +         x="95.276283"
   9.891 +         sodipodi:role="line"
   9.892 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">which has attached context</tspan></text>
   9.893 +    <path
   9.894 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)"
   9.895 +       d="m 30.09217,-296.20795 134.75175,0"
   9.896 +       id="path11742"
   9.897 +       inkscape:connector-curvature="0"
   9.898 +       sodipodi:nodetypes="cc" />
   9.899 +    <text
   9.900 +       sodipodi:linespacing="100%"
   9.901 +       id="text11744"
   9.902 +       y="-297.95343"
   9.903 +       x="95.276283"
   9.904 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.905 +       xml:space="preserve"><tspan
   9.906 +         id="tspan11746"
   9.907 +         y="-297.95343"
   9.908 +         x="95.276283"
   9.909 +         sodipodi:role="line"
   9.910 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Non-suspend end of work-unit</tspan></text>
   9.911 +    <text
   9.912 +       xml:space="preserve"
   9.913 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.914 +       x="95.276283"
   9.915 +       y="-287.95343"
   9.916 +       id="text11750"
   9.917 +       sodipodi:linespacing="100%"><tspan
   9.918 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
   9.919 +         sodipodi:role="line"
   9.920 +         x="95.276283"
   9.921 +         y="-287.95343"
   9.922 +         id="tspan11752">purely local (no ctxt attached)</tspan></text>
   9.923 +    <g
   9.924 +       id="g11754"
   9.925 +       transform="translate(-22.94669,-664)">
   9.926 +      <text
   9.927 +         sodipodi:linespacing="100%"
   9.928 +         id="text11756"
   9.929 +         y="285.39841"
   9.930 +         x="222.37003"
   9.931 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.932 +         xml:space="preserve"><tspan
   9.933 +           id="tspan11758"
   9.934 +           y="285.39841"
   9.935 +           x="222.37003"
   9.936 +           sodipodi:role="line"
   9.937 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save stack</tspan><tspan
   9.938 +           id="tspan11760"
   9.939 +           y="294.39841"
   9.940 +           x="222.37003"
   9.941 +           sodipodi:role="line"
   9.942 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">&amp; frame ptrs</tspan></text>
   9.943 +      <rect
   9.944 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
   9.945 +         id="rect11762"
   9.946 +         width="57.486332"
   9.947 +         height="25.544432"
   9.948 +         x="193.78287"
   9.949 +         y="274.77512" />
   9.950 +    </g>
   9.951 +    <text
   9.952 +       xml:space="preserve"
   9.953 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.954 +       x="29.276283"
   9.955 +       y="-349.95343"
   9.956 +       id="text11764"
   9.957 +       sodipodi:linespacing="100%"><tspan
   9.958 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
   9.959 +         sodipodi:role="line"
   9.960 +         x="29.276283"
   9.961 +         y="-349.95343"
   9.962 +         id="tspan11766">CILK is example of this case,</tspan><tspan
   9.963 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
   9.964 +         sodipodi:role="line"
   9.965 +         x="29.276283"
   9.966 +         y="-340.95343"
   9.967 +         id="tspan12203">when leaf child finishes</tspan></text>
   9.968 +    <text
   9.969 +       sodipodi:linespacing="100%"
   9.970 +       id="text11768"
   9.971 +       y="-269.95343"
   9.972 +       x="29.276283"
   9.973 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.974 +       xml:space="preserve"><tspan
   9.975 +         id="tspan11770"
   9.976 +         y="-269.95343"
   9.977 +         x="29.276283"
   9.978 +         sodipodi:role="line"
   9.979 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">Dataflow is example of this case</tspan></text>
   9.980 +    <text
   9.981 +       sodipodi:linespacing="100%"
   9.982 +       id="text11772"
   9.983 +       y="-473.95343"
   9.984 +       x="29.276283"
   9.985 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
   9.986 +       xml:space="preserve"><tspan
   9.987 +         id="tspan11774"
   9.988 +         y="-473.95343"
   9.989 +         x="29.276283"
   9.990 +         sodipodi:role="line"
   9.991 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">pthread is example of this case,</tspan><tspan
   9.992 +         y="-464.95343"
   9.993 +         x="29.276283"
   9.994 +         sodipodi:role="line"
   9.995 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
   9.996 +         id="tspan3625">as is Cilk when suspends on sync</tspan></text>
   9.997 +    <path
   9.998 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
   9.999 +       d="m 170.33352,-296.29839 100.31543,-78.14797"
  9.1000 +       id="path11776"
  9.1001 +       inkscape:connector-curvature="0"
  9.1002 +       sodipodi:nodetypes="cc" />
  9.1003 +    <path
  9.1004 +       sodipodi:nodetypes="cc"
  9.1005 +       inkscape:connector-curvature="0"
  9.1006 +       id="path12020"
  9.1007 +       d="m 228.09216,-376.20795 41.06088,0"
  9.1008 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1009 +    <path
  9.1010 +       sodipodi:nodetypes="cc"
  9.1011 +       inkscape:connector-curvature="0"
  9.1012 +       id="path12086"
  9.1013 +       d="m 659.56974,-364.00562 0,24.4507"
  9.1014 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1015 +    <text
  9.1016 +       xml:space="preserve"
  9.1017 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1018 +       x="661.43005"
  9.1019 +       y="-355.95343"
  9.1020 +       id="text12088"
  9.1021 +       sodipodi:linespacing="100%"><tspan
  9.1022 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1"
  9.1023 +         sodipodi:role="line"
  9.1024 +         x="661.43005"
  9.1025 +         y="-355.95343"
  9.1026 +         id="tspan12090">no work</tspan><tspan
  9.1027 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#008000;fill-opacity:1"
  9.1028 +         sodipodi:role="line"
  9.1029 +         x="661.43005"
  9.1030 +         y="-346.95343"
  9.1031 +         id="tspan12092">in Q</tspan></text>
  9.1032 +    <path
  9.1033 +       sodipodi:nodetypes="cc"
  9.1034 +       inkscape:connector-curvature="0"
  9.1035 +       id="path12155"
  9.1036 +       d="m 737.20425,-353.48137 72.41226,56.50237"
  9.1037 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1038 +    <path
  9.1039 +       sodipodi:nodetypes="cc"
  9.1040 +       inkscape:connector-curvature="0"
  9.1041 +       id="path12197"
  9.1042 +       d="m 688.33352,-316.29839 23.17876,-59.17839"
  9.1043 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1044 +    <text
  9.1045 +       sodipodi:linespacing="100%"
  9.1046 +       id="text12205"
  9.1047 +       y="-412.5929"
  9.1048 +       x="369.27625"
  9.1049 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1050 +       xml:space="preserve"><tspan
  9.1051 +         id="tspan12209"
  9.1052 +         y="-412.5929"
  9.1053 +         x="369.27625"
  9.1054 +         sodipodi:role="line"
  9.1055 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, counts</tspan><tspan
  9.1056 +         y="-403.5929"
  9.1057 +         x="369.27625"
  9.1058 +         sodipodi:role="line"
  9.1059 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1060 +         id="tspan12307"> child ends, and</tspan><tspan
  9.1061 +         y="-394.5929"
  9.1062 +         x="369.27625"
  9.1063 +         sodipodi:role="line"
  9.1064 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1065 +         id="tspan12313"> handles sync)</tspan></text>
  9.1066 +    <text
  9.1067 +       xml:space="preserve"
  9.1068 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1069 +       x="627.27625"
  9.1070 +       y="-411.95343"
  9.1071 +       id="text12213"
  9.1072 +       sodipodi:linespacing="100%"><tspan
  9.1073 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1074 +         sodipodi:role="line"
  9.1075 +         x="627.27625"
  9.1076 +         y="-411.95343"
  9.1077 +         id="tspan12221">(for CILK, Q</tspan><tspan
  9.1078 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1079 +         sodipodi:role="line"
  9.1080 +         x="627.27625"
  9.1081 +         y="-402.95343"
  9.1082 +         id="tspan12305"> filled by async</tspan><tspan
  9.1083 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1084 +         sodipodi:role="line"
  9.1085 +         x="627.27625"
  9.1086 +         y="-393.95343"
  9.1087 +         id="tspan12219"> spawns)</tspan></text>
  9.1088 +    <path
  9.1089 +       sodipodi:nodetypes="cc"
  9.1090 +       inkscape:connector-curvature="0"
  9.1091 +       id="path12275"
  9.1092 +       d="m 328.09217,-376.20795 41.44502,0"
  9.1093 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1094 +    <g
  9.1095 +       id="g12277"
  9.1096 +       transform="translate(-280,-40)">
  9.1097 +      <text
  9.1098 +         sodipodi:linespacing="100%"
  9.1099 +         id="text12279"
  9.1100 +         y="-339.22998"
  9.1101 +         x="579.39252"
  9.1102 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1103 +         xml:space="preserve"><tspan
  9.1104 +           id="tspan12281"
  9.1105 +           y="-339.22998"
  9.1106 +           x="579.39252"
  9.1107 +           sodipodi:role="line"
  9.1108 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan
  9.1109 +           y="-330.22998"
  9.1110 +           x="579.39252"
  9.1111 +           sodipodi:role="line"
  9.1112 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1113 +           id="tspan12283">chk msgs?</tspan></text>
  9.1114 +      <rect
  9.1115 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1116 +         id="rect12285"
  9.1117 +         width="36.810017"
  9.1118 +         height="36.457531"
  9.1119 +         x="624.01776"
  9.1120 +         y="93.582199"
  9.1121 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
  9.1122 +         ry="0" />
  9.1123 +    </g>
  9.1124 +    <path
  9.1125 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  9.1126 +       d="m 299.56974,-351.98903 0,122.09492"
  9.1127 +       id="path12297"
  9.1128 +       inkscape:connector-curvature="0"
  9.1129 +       sodipodi:nodetypes="cc" />
  9.1130 +    <g
  9.1131 +       id="g12335"
  9.1132 +       transform="translate(77.05331,-503.31973)">
  9.1133 +      <text
  9.1134 +         sodipodi:linespacing="100%"
  9.1135 +         id="text12337"
  9.1136 +         y="285.39841"
  9.1137 +         x="222.37003"
  9.1138 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1139 +         xml:space="preserve"><tspan
  9.1140 +           y="285.39841"
  9.1141 +           x="222.37003"
  9.1142 +           sodipodi:role="line"
  9.1143 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1144 +           id="tspan12339">scan for in-</tspan><tspan
  9.1145 +           y="294.39841"
  9.1146 +           x="222.37003"
  9.1147 +           sodipodi:role="line"
  9.1148 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1149 +           id="tspan12394">coming msgs,</tspan><tspan
  9.1150 +           id="tspan12343"
  9.1151 +           y="303.39841"
  9.1152 +           x="222.37003"
  9.1153 +           sodipodi:role="line"
  9.1154 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">give to hdlrs.</tspan><tspan
  9.1155 +           y="312.39841"
  9.1156 +           x="222.37003"
  9.1157 +           sodipodi:role="line"
  9.1158 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1159 +           id="tspan12400">check timers,</tspan><tspan
  9.1160 +           y="321.39841"
  9.1161 +           x="222.37003"
  9.1162 +           sodipodi:role="line"
  9.1163 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1164 +           id="tspan3521">fire hdlr for</tspan><tspan
  9.1165 +           y="330.39841"
  9.1166 +           x="222.37003"
  9.1167 +           sodipodi:role="line"
  9.1168 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1169 +           id="tspan3523">expired ones</tspan></text>
  9.1170 +      <rect
  9.1171 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1172 +         id="rect12347"
  9.1173 +         width="57.486332"
  9.1174 +         height="63.639675"
  9.1175 +         x="193.78287"
  9.1176 +         y="274.77512" />
  9.1177 +    </g>
  9.1178 +    <g
  9.1179 +       id="g12349"
  9.1180 +       transform="translate(617.05331,-603.31973)">
  9.1181 +      <text
  9.1182 +         sodipodi:linespacing="100%"
  9.1183 +         id="text12351"
  9.1184 +         y="285.39841"
  9.1185 +         x="222.37003"
  9.1186 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1187 +         xml:space="preserve"><tspan
  9.1188 +           id="tspan12359"
  9.1189 +           y="285.39841"
  9.1190 +           x="222.37003"
  9.1191 +           sodipodi:role="line"
  9.1192 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">send curr VP</tspan><tspan
  9.1193 +           y="294.39841"
  9.1194 +           x="222.37003"
  9.1195 +           sodipodi:role="line"
  9.1196 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1197 +           id="tspan12386">to pool,</tspan><tspan
  9.1198 +           y="303.39841"
  9.1199 +           x="222.37003"
  9.1200 +           sodipodi:role="line"
  9.1201 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1202 +           id="tspan12388">switch to</tspan><tspan
  9.1203 +           y="312.39841"
  9.1204 +           x="222.37003"
  9.1205 +           sodipodi:role="line"
  9.1206 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1207 +           id="tspan12390">VP of new</tspan><tspan
  9.1208 +           y="321.39841"
  9.1209 +           x="222.37003"
  9.1210 +           sodipodi:role="line"
  9.1211 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1212 +           id="tspan12392">work-unit</tspan></text>
  9.1213 +      <rect
  9.1214 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1215 +         id="rect12361"
  9.1216 +         width="57.486332"
  9.1217 +         height="63.639675"
  9.1218 +         x="193.78287"
  9.1219 +         y="274.77512" />
  9.1220 +    </g>
  9.1221 +    <g
  9.1222 +       id="g12404"
  9.1223 +       transform="translate(17.05331,-404)">
  9.1224 +      <text
  9.1225 +         sodipodi:linespacing="100%"
  9.1226 +         id="text12406"
  9.1227 +         y="285.36765"
  9.1228 +         x="222.25137"
  9.1229 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1230 +         xml:space="preserve"><tspan
  9.1231 +           id="tspan12410"
  9.1232 +           y="285.36765"
  9.1233 +           x="222.25137"
  9.1234 +           sodipodi:role="line"
  9.1235 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">constraint</tspan><tspan
  9.1236 +           y="294.36765"
  9.1237 +           x="222.25137"
  9.1238 +           sodipodi:role="line"
  9.1239 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1240 +           id="tspan12416">msg handler</tspan></text>
  9.1241 +      <rect
  9.1242 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1243 +         id="rect12412"
  9.1244 +         width="57.486332"
  9.1245 +         height="25.544432"
  9.1246 +         x="193.78287"
  9.1247 +         y="274.77512" />
  9.1248 +    </g>
  9.1249 +    <g
  9.1250 +       transform="translate(97.05331,-344)"
  9.1251 +       id="g12418">
  9.1252 +      <text
  9.1253 +         xml:space="preserve"
  9.1254 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1255 +         x="142.25137"
  9.1256 +         y="285.36765"
  9.1257 +         id="text12420"
  9.1258 +         sodipodi:linespacing="100%"><tspan
  9.1259 +           id="tspan12424"
  9.1260 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1261 +           sodipodi:role="line"
  9.1262 +           x="142.25137"
  9.1263 +           y="285.36765">Push Work</tspan><tspan
  9.1264 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1265 +           sodipodi:role="line"
  9.1266 +           x="142.25137"
  9.1267 +           y="294.36765"
  9.1268 +           id="tspan12548">onto Q</tspan></text>
  9.1269 +      <rect
  9.1270 +         y="274.77512"
  9.1271 +         x="113.78287"
  9.1272 +         height="25.544432"
  9.1273 +         width="57.486332"
  9.1274 +         id="rect12426"
  9.1275 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.1276 +    </g>
  9.1277 +    <path
  9.1278 +       sodipodi:nodetypes="cc"
  9.1279 +       inkscape:connector-curvature="0"
  9.1280 +       id="path12432"
  9.1281 +       d="m 239.56974,-104.00562 0,34.68367"
  9.1282 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1283 +    <g
  9.1284 +       id="g12434"
  9.1285 +       transform="translate(-62.94669,-344)">
  9.1286 +      <text
  9.1287 +         sodipodi:linespacing="100%"
  9.1288 +         id="text12436"
  9.1289 +         y="285.36765"
  9.1290 +         x="222.25137"
  9.1291 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1292 +         xml:space="preserve"><tspan
  9.1293 +           y="285.36765"
  9.1294 +           x="222.25137"
  9.1295 +           sodipodi:role="line"
  9.1296 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1297 +           id="tspan12438">send constr</tspan><tspan
  9.1298 +           y="294.36765"
  9.1299 +           x="222.25137"
  9.1300 +           sodipodi:role="line"
  9.1301 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1302 +           id="tspan12776">update msg</tspan></text>
  9.1303 +      <rect
  9.1304 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1305 +         id="rect12440"
  9.1306 +         width="57.486332"
  9.1307 +         height="25.544432"
  9.1308 +         x="193.78287"
  9.1309 +         y="274.77512" />
  9.1310 +    </g>
  9.1311 +    <text
  9.1312 +       xml:space="preserve"
  9.1313 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1314 +       x="273.27625"
  9.1315 +       y="6.7268219"
  9.1316 +       id="text12442"
  9.1317 +       sodipodi:linespacing="100%"><tspan
  9.1318 +         id="tspan12448"
  9.1319 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1320 +         sodipodi:role="line"
  9.1321 +         x="273.27625"
  9.1322 +         y="6.7268219">(in dataflow &amp; CILK,</tspan><tspan
  9.1323 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1324 +         sodipodi:role="line"
  9.1325 +         x="273.27625"
  9.1326 +         y="15.726822"
  9.1327 +         id="tspan12454"> msgs from other cores</tspan><tspan
  9.1328 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1329 +         sodipodi:role="line"
  9.1330 +         x="273.27625"
  9.1331 +         y="24.726822"
  9.1332 +         id="tspan12482"> that ask for or push</tspan><tspan
  9.1333 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1334 +         sodipodi:role="line"
  9.1335 +         x="273.27625"
  9.1336 +         y="33.726822"
  9.1337 +         id="tspan3527"> work, go to assigner)</tspan></text>
  9.1338 +    <text
  9.1339 +       sodipodi:linespacing="100%"
  9.1340 +       id="text12460"
  9.1341 +       y="6.7268066"
  9.1342 +       x="369.27625"
  9.1343 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1344 +       xml:space="preserve"><tspan
  9.1345 +         id="tspan12466"
  9.1346 +         y="6.7268066"
  9.1347 +         x="369.27625"
  9.1348 +         sodipodi:role="line"
  9.1349 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in dataflow &amp; CILK,</tspan><tspan
  9.1350 +         y="15.726807"
  9.1351 +         x="369.27625"
  9.1352 +         sodipodi:role="line"
  9.1353 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1354 +         id="tspan12472"> push work to other</tspan><tspan
  9.1355 +         y="24.726807"
  9.1356 +         x="369.27625"
  9.1357 +         sodipodi:role="line"
  9.1358 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1359 +         id="tspan12488"> cores via msgs -- </tspan><tspan
  9.1360 +         y="33.726807"
  9.1361 +         x="369.27625"
  9.1362 +         sodipodi:role="line"
  9.1363 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1364 +         id="tspan3973"> remember </tspan><tspan
  9.1365 +         y="42.726807"
  9.1366 +         x="369.27625"
  9.1367 +         sodipodi:role="line"
  9.1368 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1369 +         id="tspan3977"> constraints that</tspan><tspan
  9.1370 +         y="51.726807"
  9.1371 +         x="369.27625"
  9.1372 +         sodipodi:role="line"
  9.1373 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1374 +         id="tspan12642"> cross cores)</tspan></text>
  9.1375 +    <path
  9.1376 +       sodipodi:nodetypes="cc"
  9.1377 +       inkscape:connector-curvature="0"
  9.1378 +       id="path12490"
  9.1379 +       d="m 328.33352,-203.17339 41.44797,-171.27297"
  9.1380 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1381 +    <g
  9.1382 +       id="g12506"
  9.1383 +       transform="translate(97.05331,-404)">
  9.1384 +      <text
  9.1385 +         sodipodi:linespacing="100%"
  9.1386 +         id="text12508"
  9.1387 +         y="285.36765"
  9.1388 +         x="222.25137"
  9.1389 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1390 +         xml:space="preserve"><tspan
  9.1391 +           y="285.36765"
  9.1392 +           x="222.25137"
  9.1393 +           sodipodi:role="line"
  9.1394 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1395 +           id="tspan12510">Assigner</tspan><tspan
  9.1396 +           y="294.36765"
  9.1397 +           x="222.25137"
  9.1398 +           sodipodi:role="line"
  9.1399 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1400 +           id="tspan12656">msg handler</tspan></text>
  9.1401 +      <rect
  9.1402 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1403 +         id="rect12512"
  9.1404 +         width="57.486332"
  9.1405 +         height="25.544432"
  9.1406 +         x="193.78287"
  9.1407 +         y="274.77512" />
  9.1408 +    </g>
  9.1409 +    <path
  9.1410 +       sodipodi:nodetypes="cc"
  9.1411 +       inkscape:connector-curvature="0"
  9.1412 +       id="path12534"
  9.1413 +       d="m 319.56974,-104.00562 0,34.68367"
  9.1414 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1415 +    <path
  9.1416 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.1417 +       d="m 297.91051,-165.12086 -53.68184,35.65757"
  9.1418 +       id="path12544"
  9.1419 +       inkscape:connector-curvature="0"
  9.1420 +       sodipodi:nodetypes="cc" />
  9.1421 +    <path
  9.1422 +       sodipodi:nodetypes="cc"
  9.1423 +       inkscape:connector-curvature="0"
  9.1424 +       id="path12550"
  9.1425 +       d="m 239.95132,-103.76032 -77.23827,34.97636"
  9.1426 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1427 +    <g
  9.1428 +       transform="translate(257.05331,-604)"
  9.1429 +       id="g12552">
  9.1430 +      <text
  9.1431 +         xml:space="preserve"
  9.1432 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1433 +         x="222.25137"
  9.1434 +         y="285.36765"
  9.1435 +         id="text12554"
  9.1436 +         sodipodi:linespacing="100%"><tspan
  9.1437 +           id="tspan12556"
  9.1438 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1439 +           sodipodi:role="line"
  9.1440 +           x="222.25137"
  9.1441 +           y="285.36765">send constr</tspan><tspan
  9.1442 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1443 +           sodipodi:role="line"
  9.1444 +           x="222.25137"
  9.1445 +           y="294.36765"
  9.1446 +           id="tspan12888">update msgs</tspan></text>
  9.1447 +      <rect
  9.1448 +         y="274.77512"
  9.1449 +         x="193.78287"
  9.1450 +         height="25.544432"
  9.1451 +         width="57.486332"
  9.1452 +         id="rect12558"
  9.1453 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.1454 +    </g>
  9.1455 +    <path
  9.1456 +       sodipodi:nodetypes="cc"
  9.1457 +       inkscape:connector-curvature="0"
  9.1458 +       id="path12562"
  9.1459 +       d="m 303.63081,-165.12086 14.66828,34.98156"
  9.1460 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1461 +    <text
  9.1462 +       sodipodi:linespacing="100%"
  9.1463 +       id="text12564"
  9.1464 +       y="-351.95343"
  9.1465 +       x="371.43005"
  9.1466 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1467 +       xml:space="preserve"><tspan
  9.1468 +         id="tspan12568"
  9.1469 +         y="-351.95343"
  9.1470 +         x="371.43005"
  9.1471 +         sodipodi:role="line"
  9.1472 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">   done</tspan><tspan
  9.1473 +         y="-342.95343"
  9.1474 +         x="371.43005"
  9.1475 +         sodipodi:role="line"
  9.1476 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1477 +         id="tspan12598"> with</tspan><tspan
  9.1478 +         y="-333.95343"
  9.1479 +         x="371.43005"
  9.1480 +         sodipodi:role="line"
  9.1481 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1482 +         id="tspan12600">msgs</tspan></text>
  9.1483 +    <text
  9.1484 +       xml:space="preserve"
  9.1485 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1486 +       x="335.43005"
  9.1487 +       y="-379.95343"
  9.1488 +       id="text12572"
  9.1489 +       sodipodi:linespacing="100%"><tspan
  9.1490 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1491 +         sodipodi:role="line"
  9.1492 +         x="335.43005"
  9.1493 +         y="-379.95343"
  9.1494 +         id="tspan12574">no</tspan></text>
  9.1495 +    <text
  9.1496 +       sodipodi:linespacing="100%"
  9.1497 +       id="text12576"
  9.1498 +       y="-343.95343"
  9.1499 +       x="309.43005"
  9.1500 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1501 +       xml:space="preserve"><tspan
  9.1502 +         id="tspan12578"
  9.1503 +         y="-343.95343"
  9.1504 +         x="309.43005"
  9.1505 +         sodipodi:role="line"
  9.1506 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan
  9.1507 +         y="-334.95343"
  9.1508 +         x="309.43005"
  9.1509 +         sodipodi:role="line"
  9.1510 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1511 +         id="tspan12580">chk</tspan></text>
  9.1512 +    <text
  9.1513 +       xml:space="preserve"
  9.1514 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1515 +       x="251.43005"
  9.1516 +       y="-151.95343"
  9.1517 +       id="text12582"
  9.1518 +       sodipodi:linespacing="100%"><tspan
  9.1519 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1520 +         sodipodi:role="line"
  9.1521 +         x="251.43005"
  9.1522 +         y="-151.95343"
  9.1523 +         id="tspan12584">  constraint</tspan><tspan
  9.1524 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1525 +         sodipodi:role="line"
  9.1526 +         x="251.43005"
  9.1527 +         y="-142.95343"
  9.1528 +         id="tspan12586">msgs</tspan></text>
  9.1529 +    <text
  9.1530 +       sodipodi:linespacing="100%"
  9.1531 +       id="text12592"
  9.1532 +       y="-151.95343"
  9.1533 +       x="323.43005"
  9.1534 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1535 +       xml:space="preserve"><tspan
  9.1536 +         id="tspan12594"
  9.1537 +         y="-151.95343"
  9.1538 +         x="323.43005"
  9.1539 +         sodipodi:role="line"
  9.1540 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">  Assigner</tspan><tspan
  9.1541 +         id="tspan12596"
  9.1542 +         y="-142.95343"
  9.1543 +         x="323.43005"
  9.1544 +         sodipodi:role="line"
  9.1545 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">msgs</tspan></text>
  9.1546 +    <text
  9.1547 +       sodipodi:linespacing="100%"
  9.1548 +       id="text12602"
  9.1549 +       y="-29.273178"
  9.1550 +       x="129.27625"
  9.1551 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1552 +       xml:space="preserve"><tspan
  9.1553 +         id="tspan12606"
  9.1554 +         y="-29.273178"
  9.1555 +         x="129.27625"
  9.1556 +         sodipodi:role="line"
  9.1557 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in CILK, completion of</tspan><tspan
  9.1558 +         y="-20.273178"
  9.1559 +         x="129.27625"
  9.1560 +         sodipodi:role="line"
  9.1561 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1562 +         id="tspan12614"> child on remote core</tspan><tspan
  9.1563 +         id="tspan12610"
  9.1564 +         y="-11.273178"
  9.1565 +         x="129.27625"
  9.1566 +         sodipodi:role="line"
  9.1567 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"> notifies parent's core.</tspan><tspan
  9.1568 +         y="-2.2731781"
  9.1569 +         x="129.27625"
  9.1570 +         sodipodi:role="line"
  9.1571 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1572 +         id="tspan12624"> In dataflow, remote pro-</tspan><tspan
  9.1573 +         y="6.7268219"
  9.1574 +         x="129.27625"
  9.1575 +         sodipodi:role="line"
  9.1576 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1577 +         id="tspan12626"> pendent sends data to</tspan><tspan
  9.1578 +         y="15.726822"
  9.1579 +         x="129.27625"
  9.1580 +         sodipodi:role="line"
  9.1581 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.1582 +         id="tspan12634"> dependents' cores)</tspan></text>
  9.1583 +    <path
  9.1584 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.1585 +       d="m 401.6308,-363.12086 74.44669,32.98177"
  9.1586 +       id="path12658"
  9.1587 +       inkscape:connector-curvature="0"
  9.1588 +       sodipodi:nodetypes="cc" />
  9.1589 +    <g
  9.1590 +       id="g12764"
  9.1591 +       transform="translate(437.05331,-484)">
  9.1592 +      <text
  9.1593 +         sodipodi:linespacing="100%"
  9.1594 +         id="text12766"
  9.1595 +         y="285.36765"
  9.1596 +         x="222.25137"
  9.1597 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1598 +         xml:space="preserve"><tspan
  9.1599 +           y="285.36765"
  9.1600 +           x="222.25137"
  9.1601 +           sodipodi:role="line"
  9.1602 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1603 +           id="tspan12768">send &quot;need</tspan><tspan
  9.1604 +           y="294.36765"
  9.1605 +           x="222.25137"
  9.1606 +           sodipodi:role="line"
  9.1607 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1608 +           id="tspan12774">work&quot; msg</tspan></text>
  9.1609 +      <rect
  9.1610 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1611 +         id="rect12770"
  9.1612 +         width="57.486332"
  9.1613 +         height="25.544432"
  9.1614 +         x="193.78287"
  9.1615 +         y="274.77512" />
  9.1616 +    </g>
  9.1617 +    <text
  9.1618 +       xml:space="preserve"
  9.1619 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1620 +       x="299.43005"
  9.1621 +       y="-93.95343"
  9.1622 +       id="text12816"
  9.1623 +       sodipodi:linespacing="100%"><tspan
  9.1624 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1625 +         sodipodi:role="line"
  9.1626 +         x="299.43005"
  9.1627 +         y="-93.95343"
  9.1628 +         id="tspan12818">  receive</tspan><tspan
  9.1629 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1630 +         sodipodi:role="line"
  9.1631 +         x="300.78357"
  9.1632 +         y="-84.95343"
  9.1633 +         id="tspan12820">work-push   </tspan><tspan
  9.1634 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1635 +         sodipodi:role="line"
  9.1636 +         x="299.43005"
  9.1637 +         y="-75.95343"
  9.1638 +         id="tspan12822">       msg</tspan></text>
  9.1639 +    <path
  9.1640 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.1641 +       d="m 321.6308,-103.12086 74.44669,32.98177"
  9.1642 +       id="path12824"
  9.1643 +       inkscape:connector-curvature="0"
  9.1644 +       sodipodi:nodetypes="cc" />
  9.1645 +    <text
  9.1646 +       sodipodi:linespacing="100%"
  9.1647 +       id="text12826"
  9.1648 +       y="-93.95343"
  9.1649 +       x="379.43005"
  9.1650 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1651 +       xml:space="preserve"><tspan
  9.1652 +         id="tspan12828"
  9.1653 +         y="-93.95343"
  9.1654 +         x="379.43005"
  9.1655 +         sodipodi:role="line"
  9.1656 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">  receive need-work</tspan><tspan
  9.1657 +         id="tspan12832"
  9.1658 +         y="-84.95343"
  9.1659 +         x="379.43005"
  9.1660 +         sodipodi:role="line"
  9.1661 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">                msg &amp; have work</tspan><tspan
  9.1662 +         y="-75.95343"
  9.1663 +         x="379.43005"
  9.1664 +         sodipodi:role="line"
  9.1665 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1666 +         id="tspan12836">              to give</tspan></text>
  9.1667 +    <text
  9.1668 +       sodipodi:linespacing="100%"
  9.1669 +       id="text12914"
  9.1670 +       y="-281.95343"
  9.1671 +       x="678.38245"
  9.1672 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1673 +       xml:space="preserve"><tspan
  9.1674 +         y="-281.95343"
  9.1675 +         x="678.38245"
  9.1676 +         sodipodi:role="line"
  9.1677 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1678 +         id="tspan12946">No work</tspan></text>
  9.1679 +    <g
  9.1680 +       id="g3699"
  9.1681 +       transform="translate(717.05331,-664)">
  9.1682 +      <text
  9.1683 +         sodipodi:linespacing="100%"
  9.1684 +         id="text3701"
  9.1685 +         y="285.69943"
  9.1686 +         x="222.37003"
  9.1687 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1688 +         xml:space="preserve"><tspan
  9.1689 +           id="tspan3705"
  9.1690 +           y="285.69943"
  9.1691 +           x="222.37003"
  9.1692 +           sodipodi:role="line"
  9.1693 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Jmp to new</tspan><tspan
  9.1694 +           y="294.69943"
  9.1695 +           x="222.37003"
  9.1696 +           sodipodi:role="line"
  9.1697 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1698 +           id="tspan3713">work-unit</tspan></text>
  9.1699 +      <rect
  9.1700 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1701 +         id="rect3707"
  9.1702 +         width="57.486332"
  9.1703 +         height="25.544432"
  9.1704 +         x="193.78287"
  9.1705 +         y="274.77512" />
  9.1706 +    </g>
  9.1707 +    <path
  9.1708 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  9.1709 +       d="m 868.0922,-376.20795 41.0608,0"
  9.1710 +       id="path3709"
  9.1711 +       inkscape:connector-curvature="0"
  9.1712 +       sodipodi:nodetypes="cc" />
  9.1713 +    <path
  9.1714 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.1715 +       d="m 868.33356,-296.29838 40.86584,-76.648"
  9.1716 +       id="path3715"
  9.1717 +       inkscape:connector-curvature="0"
  9.1718 +       sodipodi:nodetypes="cc" />
  9.1719 +    <path
  9.1720 +       sodipodi:nodetypes="cc"
  9.1721 +       inkscape:connector-curvature="0"
  9.1722 +       id="path3769"
  9.1723 +       d="m 428.86861,-376.20795 200.12395,0"
  9.1724 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1725 +    <g
  9.1726 +       id="g3775"
  9.1727 +       transform="translate(297.05331,-784)">
  9.1728 +      <text
  9.1729 +         sodipodi:linespacing="100%"
  9.1730 +         id="text3777"
  9.1731 +         y="285.36765"
  9.1732 +         x="222.25137"
  9.1733 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1734 +         xml:space="preserve"><tspan
  9.1735 +           id="tspan3781"
  9.1736 +           y="285.36765"
  9.1737 +           x="222.25137"
  9.1738 +           sodipodi:role="line"
  9.1739 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Assigner</tspan></text>
  9.1740 +      <rect
  9.1741 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1742 +         id="rect3783"
  9.1743 +         width="57.486332"
  9.1744 +         height="25.544432"
  9.1745 +         x="193.78287"
  9.1746 +         y="274.77512" />
  9.1747 +    </g>
  9.1748 +    <g
  9.1749 +       id="g3789"
  9.1750 +       transform="translate(177.05331,-784)">
  9.1751 +      <text
  9.1752 +         sodipodi:linespacing="100%"
  9.1753 +         id="text3791"
  9.1754 +         y="285.36765"
  9.1755 +         x="222.25137"
  9.1756 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1757 +         xml:space="preserve"><tspan
  9.1758 +           id="tspan3795"
  9.1759 +           y="285.36765"
  9.1760 +           x="222.25137"
  9.1761 +           sodipodi:role="line"
  9.1762 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">request hdlr</tspan></text>
  9.1763 +      <rect
  9.1764 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1765 +         id="rect3797"
  9.1766 +         width="57.486332"
  9.1767 +         height="25.544432"
  9.1768 +         x="193.78287"
  9.1769 +         y="274.77512" />
  9.1770 +    </g>
  9.1771 +    <path
  9.1772 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  9.1773 +       d="m 428.09218,-496.20795 60.12116,0"
  9.1774 +       id="path3799"
  9.1775 +       inkscape:connector-curvature="0"
  9.1776 +       sodipodi:nodetypes="cc" />
  9.1777 +    <g
  9.1778 +       transform="translate(-300,-160)"
  9.1779 +       id="g3801">
  9.1780 +      <text
  9.1781 +         xml:space="preserve"
  9.1782 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1783 +         x="579.39252"
  9.1784 +         y="-339.22998"
  9.1785 +         id="text3803"
  9.1786 +         sodipodi:linespacing="100%"><tspan
  9.1787 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1788 +           sodipodi:role="line"
  9.1789 +           x="579.39252"
  9.1790 +           y="-339.22998"
  9.1791 +           id="tspan3805">time to</tspan><tspan
  9.1792 +           id="tspan3807"
  9.1793 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1794 +           sodipodi:role="line"
  9.1795 +           x="579.39252"
  9.1796 +           y="-330.22998">chk msgs?</tspan></text>
  9.1797 +      <rect
  9.1798 +         ry="0"
  9.1799 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
  9.1800 +         y="93.582199"
  9.1801 +         x="624.01776"
  9.1802 +         height="36.457531"
  9.1803 +         width="36.810017"
  9.1804 +         id="rect3809"
  9.1805 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.1806 +    </g>
  9.1807 +    <path
  9.1808 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  9.1809 +       d="m 228.09216,-496.20795 21.72127,0"
  9.1810 +       id="path3811"
  9.1811 +       inkscape:connector-curvature="0"
  9.1812 +       sodipodi:nodetypes="cc" />
  9.1813 +    <path
  9.1814 +       sodipodi:nodetypes="cc"
  9.1815 +       inkscape:connector-curvature="0"
  9.1816 +       id="path3813"
  9.1817 +       d="m 307.68401,-496.20795 61.46905,0"
  9.1818 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.1819 +    <text
  9.1820 +       xml:space="preserve"
  9.1821 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1822 +       x="289.43005"
  9.1823 +       y="-463.95343"
  9.1824 +       id="text3815"
  9.1825 +       sodipodi:linespacing="100%"><tspan
  9.1826 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1827 +         sodipodi:role="line"
  9.1828 +         x="289.43005"
  9.1829 +         y="-463.95343"
  9.1830 +         id="tspan3817">yes,</tspan><tspan
  9.1831 +         id="tspan3819"
  9.1832 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1833 +         sodipodi:role="line"
  9.1834 +         x="289.43005"
  9.1835 +         y="-454.95343">chk</tspan></text>
  9.1836 +    <path
  9.1837 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.1838 +       d="m 328.33352,-197.5484 41.44797,-295.744"
  9.1839 +       id="path3823"
  9.1840 +       inkscape:connector-curvature="0"
  9.1841 +       sodipodi:nodetypes="cc" />
  9.1842 +    <text
  9.1843 +       sodipodi:linespacing="100%"
  9.1844 +       id="text3825"
  9.1845 +       y="-499.95343"
  9.1846 +       x="315.43005"
  9.1847 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1848 +       xml:space="preserve"><tspan
  9.1849 +         id="tspan3827"
  9.1850 +         y="-499.95343"
  9.1851 +         x="315.43005"
  9.1852 +         sodipodi:role="line"
  9.1853 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">no</tspan></text>
  9.1854 +    <text
  9.1855 +       xml:space="preserve"
  9.1856 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1857 +       x="353.43005"
  9.1858 +       y="-473.95343"
  9.1859 +       id="text3829"
  9.1860 +       sodipodi:linespacing="100%"><tspan
  9.1861 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1862 +         sodipodi:role="line"
  9.1863 +         x="353.43005"
  9.1864 +         y="-473.95343"
  9.1865 +         id="tspan3831">   done</tspan><tspan
  9.1866 +         id="tspan3833"
  9.1867 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1868 +         sodipodi:role="line"
  9.1869 +         x="353.43005"
  9.1870 +         y="-464.95343">  with</tspan><tspan
  9.1871 +         id="tspan3835"
  9.1872 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.1873 +         sodipodi:role="line"
  9.1874 +         x="353.43005"
  9.1875 +         y="-455.95343">msgs</tspan></text>
  9.1876 +    <g
  9.1877 +       transform="translate(97.05331,-343.31973)"
  9.1878 +       id="g3837">
  9.1879 +      <text
  9.1880 +         xml:space="preserve"
  9.1881 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1882 +         x="222.37003"
  9.1883 +         y="285.39841"
  9.1884 +         id="text3839"
  9.1885 +         sodipodi:linespacing="100%"><tspan
  9.1886 +           id="tspan3841"
  9.1887 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1888 +           sodipodi:role="line"
  9.1889 +           x="222.37003"
  9.1890 +           y="285.39841">push work</tspan><tspan
  9.1891 +           id="tspan3843"
  9.1892 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1893 +           sodipodi:role="line"
  9.1894 +           x="222.37003"
  9.1895 +           y="294.39841">onto Q, and</tspan><tspan
  9.1896 +           id="tspan3845"
  9.1897 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1898 +           sodipodi:role="line"
  9.1899 +           x="222.37003"
  9.1900 +           y="303.39841">send &quot;cancel</tspan><tspan
  9.1901 +           id="tspan3847"
  9.1902 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1903 +           sodipodi:role="line"
  9.1904 +           x="222.37003"
  9.1905 +           y="312.39841">need work&quot;</tspan></text>
  9.1906 +      <rect
  9.1907 +         y="274.77512"
  9.1908 +         x="193.78287"
  9.1909 +         height="63.639675"
  9.1910 +         width="57.486332"
  9.1911 +         id="rect3849"
  9.1912 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.1913 +    </g>
  9.1914 +    <g
  9.1915 +       id="g3851"
  9.1916 +       transform="translate(177.05331,-744)">
  9.1917 +      <text
  9.1918 +         sodipodi:linespacing="100%"
  9.1919 +         id="text3853"
  9.1920 +         y="285.36765"
  9.1921 +         x="222.25137"
  9.1922 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1923 +         xml:space="preserve"><tspan
  9.1924 +           y="285.36765"
  9.1925 +           x="222.25137"
  9.1926 +           sodipodi:role="line"
  9.1927 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1928 +           id="tspan3855">send constr</tspan><tspan
  9.1929 +           id="tspan3857"
  9.1930 +           y="294.36765"
  9.1931 +           x="222.25137"
  9.1932 +           sodipodi:role="line"
  9.1933 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">update msgs</tspan></text>
  9.1934 +      <rect
  9.1935 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.1936 +         id="rect3859"
  9.1937 +         width="57.486332"
  9.1938 +         height="25.544432"
  9.1939 +         x="193.78287"
  9.1940 +         y="274.77512" />
  9.1941 +    </g>
  9.1942 +    <path
  9.1943 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  9.1944 +       d="m 399.56974,-484.00562 0,12.75587"
  9.1945 +       id="path3863"
  9.1946 +       inkscape:connector-curvature="0"
  9.1947 +       sodipodi:nodetypes="cc" />
  9.1948 +    <g
  9.1949 +       transform="translate(257.05331,-744)"
  9.1950 +       id="g3865">
  9.1951 +      <text
  9.1952 +         xml:space="preserve"
  9.1953 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1954 +         x="222.37003"
  9.1955 +         y="285.39841"
  9.1956 +         id="text3867"
  9.1957 +         sodipodi:linespacing="100%"><tspan
  9.1958 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1959 +           sodipodi:role="line"
  9.1960 +           x="222.37003"
  9.1961 +           y="285.39841"
  9.1962 +           id="tspan3869">Push work</tspan><tspan
  9.1963 +           id="tspan3871"
  9.1964 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1965 +           sodipodi:role="line"
  9.1966 +           x="222.37003"
  9.1967 +           y="294.39841">onto Q</tspan></text>
  9.1968 +      <rect
  9.1969 +         y="274.77512"
  9.1970 +         x="193.78287"
  9.1971 +         height="25.544432"
  9.1972 +         width="57.486332"
  9.1973 +         id="rect3873"
  9.1974 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.1975 +    </g>
  9.1976 +    <g
  9.1977 +       transform="translate(317.05331,-744)"
  9.1978 +       id="g3875">
  9.1979 +      <text
  9.1980 +         xml:space="preserve"
  9.1981 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.1982 +         x="222.25137"
  9.1983 +         y="285.36765"
  9.1984 +         id="text3877"
  9.1985 +         sodipodi:linespacing="100%"><tspan
  9.1986 +           id="tspan3879"
  9.1987 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1988 +           sodipodi:role="line"
  9.1989 +           x="222.25137"
  9.1990 +           y="285.36765">send Assigner</tspan><tspan
  9.1991 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.1992 +           sodipodi:role="line"
  9.1993 +           x="222.25137"
  9.1994 +           y="294.36765"
  9.1995 +           id="tspan3881">messages</tspan></text>
  9.1996 +      <rect
  9.1997 +         y="274.77512"
  9.1998 +         x="193.78287"
  9.1999 +         height="25.544432"
  9.2000 +         width="57.486332"
  9.2001 +         id="rect3883"
  9.2002 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.2003 +    </g>
  9.2004 +    <path
  9.2005 +       sodipodi:nodetypes="cc"
  9.2006 +       inkscape:connector-curvature="0"
  9.2007 +       id="path3887"
  9.2008 +       d="m 519.99814,-483.12085 17.68767,13.95011"
  9.2009 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2010 +    <path
  9.2011 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.2012 +       d="m 516.1523,-483.12085 -35.11392,13.95011"
  9.2013 +       id="path3889"
  9.2014 +       inkscape:connector-curvature="0"
  9.2015 +       sodipodi:nodetypes="cc" />
  9.2016 +    <path
  9.2017 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.2018 +       d="m 548.6784,-495.12084 80.39811,116.64706"
  9.2019 +       id="path3891"
  9.2020 +       inkscape:connector-curvature="0"
  9.2021 +       sodipodi:nodetypes="cc" />
  9.2022 +    <path
  9.2023 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.2024 +       d="m 737.20425,-398.67186 72.41226,-56.50237"
  9.2025 +       id="path3893"
  9.2026 +       inkscape:connector-curvature="0"
  9.2027 +       sodipodi:nodetypes="cc" />
  9.2028 +    <g
  9.2029 +       id="g3895"
  9.2030 +       transform="translate(617.05331,-763.31973)">
  9.2031 +      <text
  9.2032 +         sodipodi:linespacing="100%"
  9.2033 +         id="text3897"
  9.2034 +         y="285.39841"
  9.2035 +         x="222.37003"
  9.2036 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2037 +         xml:space="preserve"><tspan
  9.2038 +           y="285.39841"
  9.2039 +           x="222.37003"
  9.2040 +           sodipodi:role="line"
  9.2041 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2042 +           id="tspan3933">get VP from</tspan><tspan
  9.2043 +           y="294.39841"
  9.2044 +           x="222.37003"
  9.2045 +           sodipodi:role="line"
  9.2046 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2047 +           id="tspan3935">pool (make</tspan><tspan
  9.2048 +           y="303.39841"
  9.2049 +           x="222.37003"
  9.2050 +           sodipodi:role="line"
  9.2051 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2052 +           id="tspan3943">new if none).</tspan><tspan
  9.2053 +           id="tspan3901"
  9.2054 +           y="312.39841"
  9.2055 +           x="222.37003"
  9.2056 +           sodipodi:role="line"
  9.2057 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">Load it with</tspan><tspan
  9.2058 +           id="tspan3903"
  9.2059 +           y="321.39841"
  9.2060 +           x="222.37003"
  9.2061 +           sodipodi:role="line"
  9.2062 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context from</tspan><tspan
  9.2063 +           id="tspan3905"
  9.2064 +           y="330.39841"
  9.2065 +           x="222.37003"
  9.2066 +           sodipodi:role="line"
  9.2067 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">new work-unit</tspan></text>
  9.2068 +      <rect
  9.2069 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.2070 +         id="rect3907"
  9.2071 +         width="57.486332"
  9.2072 +         height="63.639675"
  9.2073 +         x="193.78287"
  9.2074 +         y="274.77512" />
  9.2075 +    </g>
  9.2076 +    <text
  9.2077 +       xml:space="preserve"
  9.2078 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2079 +       x="755.43005"
  9.2080 +       y="-449.95343"
  9.2081 +       id="text3909"
  9.2082 +       sodipodi:linespacing="100%"><tspan
  9.2083 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2084 +         sodipodi:role="line"
  9.2085 +         x="755.43005"
  9.2086 +         y="-449.95343"
  9.2087 +         id="tspan3913">new work-unit has own</tspan><tspan
  9.2088 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2089 +         sodipodi:role="line"
  9.2090 +         x="755.43005"
  9.2091 +         y="-440.95343"
  9.2092 +         id="tspan3927">local context, but</tspan><tspan
  9.2093 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2094 +         sodipodi:role="line"
  9.2095 +         x="756.78357"
  9.2096 +         y="-431.95343"
  9.2097 +         id="tspan3931">prev VP suspended            </tspan></text>
  9.2098 +    <path
  9.2099 +       sodipodi:nodetypes="cc"
  9.2100 +       inkscape:connector-curvature="0"
  9.2101 +       id="path3953"
  9.2102 +       d="m 868.33356,-456.25901 40.86584,76.648"
  9.2103 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2104 +    <text
  9.2105 +       xml:space="preserve"
  9.2106 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2107 +       x="357.27625"
  9.2108 +       y="-534.5929"
  9.2109 +       id="text3955"
  9.2110 +       sodipodi:linespacing="100%"><tspan
  9.2111 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2112 +         sodipodi:role="line"
  9.2113 +         x="357.27625"
  9.2114 +         y="-534.5929"
  9.2115 +         id="tspan3957">(in pthreads, checks</tspan><tspan
  9.2116 +         id="tspan3959"
  9.2117 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2118 +         sodipodi:role="line"
  9.2119 +         x="357.27625"
  9.2120 +         y="-525.5929"> mutex structures,</tspan><tspan
  9.2121 +         id="tspan3961"
  9.2122 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2123 +         sodipodi:role="line"
  9.2124 +         x="357.27625"
  9.2125 +         y="-516.5929"> cond var structs, etc)</tspan></text>
  9.2126 +    <text
  9.2127 +       xml:space="preserve"
  9.2128 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2129 +       x="459.43005"
  9.2130 +       y="-507.95343"
  9.2131 +       id="text3963"
  9.2132 +       sodipodi:linespacing="100%"><tspan
  9.2133 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2134 +         sodipodi:role="line"
  9.2135 +         x="459.43005"
  9.2136 +         y="-507.95343"
  9.2137 +         id="tspan3967">work-unit</tspan><tspan
  9.2138 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2139 +         sodipodi:role="line"
  9.2140 +         x="459.43005"
  9.2141 +         y="-498.95343"
  9.2142 +         id="tspan3971">state chgs</tspan></text>
  9.2143 +    <text
  9.2144 +       sodipodi:linespacing="100%"
  9.2145 +       id="text3981"
  9.2146 +       y="-195.95343"
  9.2147 +       x="415.43005"
  9.2148 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2149 +       xml:space="preserve"
  9.2150 +       inkscape:transform-center-x="-8.125"><tspan
  9.2151 +         y="-195.95343"
  9.2152 +         x="415.43005"
  9.2153 +         sodipodi:role="line"
  9.2154 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2155 +         id="tspan3987">done with msgs</tspan></text>
  9.2156 +    <path
  9.2157 +       sodipodi:nodetypes="cc"
  9.2158 +       inkscape:connector-curvature="0"
  9.2159 +       id="path3386"
  9.2160 +       d="m 30.09217,-616.20795 134.75175,0"
  9.2161 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#StopL);marker-end:url(#TriangleOutL)" />
  9.2162 +    <text
  9.2163 +       xml:space="preserve"
  9.2164 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2165 +       x="95.430077"
  9.2166 +       y="-617.95343"
  9.2167 +       id="text3388"
  9.2168 +       sodipodi:linespacing="100%"><tspan
  9.2169 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2170 +         sodipodi:role="line"
  9.2171 +         x="95.430077"
  9.2172 +         y="-617.95343"
  9.2173 +         id="tspan3390">Suspend at end of work-unit</tspan></text>
  9.2174 +    <text
  9.2175 +       xml:space="preserve"
  9.2176 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2177 +       x="29.276283"
  9.2178 +       y="-593.95343"
  9.2179 +       id="text3392"
  9.2180 +       sodipodi:linespacing="100%"><tspan
  9.2181 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2182 +         sodipodi:role="line"
  9.2183 +         x="29.276283"
  9.2184 +         y="-593.95343"
  9.2185 +         id="tspan3394">pthread is example of this case,</tspan><tspan
  9.2186 +         id="tspan3396"
  9.2187 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2188 +         sodipodi:role="line"
  9.2189 +         x="29.276283"
  9.2190 +         y="-584.95343">as is Cilk when suspends on sync</tspan></text>
  9.2191 +    <g
  9.2192 +       transform="translate(297.05331,-904)"
  9.2193 +       id="g3398">
  9.2194 +      <text
  9.2195 +         xml:space="preserve"
  9.2196 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2197 +         x="222.25137"
  9.2198 +         y="285.36765"
  9.2199 +         id="text3400"
  9.2200 +         sodipodi:linespacing="100%"><tspan
  9.2201 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2202 +           sodipodi:role="line"
  9.2203 +           x="222.25137"
  9.2204 +           y="285.36765"
  9.2205 +           id="tspan3402">Assigner</tspan></text>
  9.2206 +      <rect
  9.2207 +         y="274.77512"
  9.2208 +         x="193.78287"
  9.2209 +         height="25.544432"
  9.2210 +         width="57.486332"
  9.2211 +         id="rect3404"
  9.2212 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.2213 +    </g>
  9.2214 +    <g
  9.2215 +       transform="translate(177.05331,-904)"
  9.2216 +       id="g3406">
  9.2217 +      <text
  9.2218 +         xml:space="preserve"
  9.2219 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2220 +         x="222.25137"
  9.2221 +         y="285.36765"
  9.2222 +         id="text3408"
  9.2223 +         sodipodi:linespacing="100%"><tspan
  9.2224 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2225 +           sodipodi:role="line"
  9.2226 +           x="222.25137"
  9.2227 +           y="285.36765"
  9.2228 +           id="tspan3412">request hdlr</tspan></text>
  9.2229 +      <rect
  9.2230 +         y="274.77512"
  9.2231 +         x="193.78287"
  9.2232 +         height="25.544432"
  9.2233 +         width="57.486332"
  9.2234 +         id="rect3414"
  9.2235 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.2236 +    </g>
  9.2237 +    <path
  9.2238 +       sodipodi:nodetypes="cc"
  9.2239 +       inkscape:connector-curvature="0"
  9.2240 +       id="path3416"
  9.2241 +       d="m 428.09218,-616.20795 60.12116,0"
  9.2242 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2243 +    <g
  9.2244 +       id="g3418"
  9.2245 +       transform="translate(-300,-280)">
  9.2246 +      <text
  9.2247 +         sodipodi:linespacing="100%"
  9.2248 +         id="text3420"
  9.2249 +         y="-339.22998"
  9.2250 +         x="579.39252"
  9.2251 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2252 +         xml:space="preserve"><tspan
  9.2253 +           id="tspan3422"
  9.2254 +           y="-339.22998"
  9.2255 +           x="579.39252"
  9.2256 +           sodipodi:role="line"
  9.2257 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">time to</tspan><tspan
  9.2258 +           y="-330.22998"
  9.2259 +           x="579.39252"
  9.2260 +           sodipodi:role="line"
  9.2261 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2262 +           id="tspan3424">chk msgs?</tspan></text>
  9.2263 +      <rect
  9.2264 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.2265 +         id="rect3426"
  9.2266 +         width="36.810017"
  9.2267 +         height="36.457531"
  9.2268 +         x="624.01776"
  9.2269 +         y="93.582199"
  9.2270 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
  9.2271 +         ry="0" />
  9.2272 +    </g>
  9.2273 +    <path
  9.2274 +       sodipodi:nodetypes="cc"
  9.2275 +       inkscape:connector-curvature="0"
  9.2276 +       id="path3428"
  9.2277 +       d="m 228.09216,-616.20795 21.72127,0"
  9.2278 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2279 +    <path
  9.2280 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  9.2281 +       d="m 307.68401,-616.20795 61.46905,0"
  9.2282 +       id="path3430"
  9.2283 +       inkscape:connector-curvature="0"
  9.2284 +       sodipodi:nodetypes="cc" />
  9.2285 +    <text
  9.2286 +       sodipodi:linespacing="100%"
  9.2287 +       id="text3432"
  9.2288 +       y="-583.95343"
  9.2289 +       x="289.43005"
  9.2290 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2291 +       xml:space="preserve"><tspan
  9.2292 +         id="tspan3434"
  9.2293 +         y="-583.95343"
  9.2294 +         x="289.43005"
  9.2295 +         sodipodi:role="line"
  9.2296 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan
  9.2297 +         y="-574.95343"
  9.2298 +         x="289.43005"
  9.2299 +         sodipodi:role="line"
  9.2300 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2301 +         id="tspan3436">chk</tspan></text>
  9.2302 +    <text
  9.2303 +       xml:space="preserve"
  9.2304 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2305 +       x="315.43005"
  9.2306 +       y="-619.95343"
  9.2307 +       id="text3438"
  9.2308 +       sodipodi:linespacing="100%"><tspan
  9.2309 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2310 +         sodipodi:role="line"
  9.2311 +         x="315.43005"
  9.2312 +         y="-619.95343"
  9.2313 +         id="tspan3440">no</tspan></text>
  9.2314 +    <text
  9.2315 +       sodipodi:linespacing="100%"
  9.2316 +       id="text3442"
  9.2317 +       y="-593.95343"
  9.2318 +       x="353.43005"
  9.2319 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2320 +       xml:space="preserve"><tspan
  9.2321 +         id="tspan3444"
  9.2322 +         y="-593.95343"
  9.2323 +         x="353.43005"
  9.2324 +         sodipodi:role="line"
  9.2325 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">   done</tspan><tspan
  9.2326 +         y="-584.95343"
  9.2327 +         x="353.43005"
  9.2328 +         sodipodi:role="line"
  9.2329 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2330 +         id="tspan3446">  with</tspan><tspan
  9.2331 +         y="-575.95343"
  9.2332 +         x="353.43005"
  9.2333 +         sodipodi:role="line"
  9.2334 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2335 +         id="tspan3448">msgs</tspan></text>
  9.2336 +    <g
  9.2337 +       transform="translate(177.05331,-864)"
  9.2338 +       id="g3450">
  9.2339 +      <text
  9.2340 +         xml:space="preserve"
  9.2341 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2342 +         x="222.25137"
  9.2343 +         y="285.36765"
  9.2344 +         id="text3452"
  9.2345 +         sodipodi:linespacing="100%"><tspan
  9.2346 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2347 +           sodipodi:role="line"
  9.2348 +           x="222.25137"
  9.2349 +           y="285.36765"
  9.2350 +           id="tspan3456">get semEnv</tspan><tspan
  9.2351 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2352 +           sodipodi:role="line"
  9.2353 +           x="222.25137"
  9.2354 +           y="294.36765"
  9.2355 +           id="tspan3558">lock &amp; update</tspan><tspan
  9.2356 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2357 +           sodipodi:role="line"
  9.2358 +           x="222.25137"
  9.2359 +           y="303.36765"
  9.2360 +           id="tspan3560">state of VP</tspan></text>
  9.2361 +      <rect
  9.2362 +         y="274.77512"
  9.2363 +         x="193.78287"
  9.2364 +         height="33.710323"
  9.2365 +         width="57.486332"
  9.2366 +         id="rect3458"
  9.2367 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.2368 +    </g>
  9.2369 +    <path
  9.2370 +       sodipodi:nodetypes="cc"
  9.2371 +       inkscape:connector-curvature="0"
  9.2372 +       id="path3460"
  9.2373 +       d="m 399.56974,-604.00562 0,12.75587"
  9.2374 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2375 +    <g
  9.2376 +       id="g3472"
  9.2377 +       transform="translate(297.05331,-864)">
  9.2378 +      <text
  9.2379 +         sodipodi:linespacing="100%"
  9.2380 +         id="text3474"
  9.2381 +         y="285.36765"
  9.2382 +         x="222.25137"
  9.2383 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2384 +         xml:space="preserve"><tspan
  9.2385 +           y="285.36765"
  9.2386 +           x="222.25137"
  9.2387 +           sodipodi:role="line"
  9.2388 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2389 +           id="tspan3476">get semEnv</tspan><tspan
  9.2390 +           id="tspan3478"
  9.2391 +           y="294.36765"
  9.2392 +           x="222.25137"
  9.2393 +           sodipodi:role="line"
  9.2394 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">lock &amp; pick a</tspan><tspan
  9.2395 +           y="303.36765"
  9.2396 +           x="222.25137"
  9.2397 +           sodipodi:role="line"
  9.2398 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2399 +           id="tspan3566">ready VP</tspan></text>
  9.2400 +      <rect
  9.2401 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.2402 +         id="rect3480"
  9.2403 +         width="57.486332"
  9.2404 +         height="33.710323"
  9.2405 +         x="193.78287"
  9.2406 +         y="274.77512" />
  9.2407 +    </g>
  9.2408 +    <text
  9.2409 +       sodipodi:linespacing="100%"
  9.2410 +       id="text3486"
  9.2411 +       y="-654.5929"
  9.2412 +       x="357.27625"
  9.2413 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2414 +       xml:space="preserve"><tspan
  9.2415 +         id="tspan3488"
  9.2416 +         y="-654.5929"
  9.2417 +         x="357.27625"
  9.2418 +         sodipodi:role="line"
  9.2419 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1">(in pthreads, checks</tspan><tspan
  9.2420 +         y="-645.5929"
  9.2421 +         x="357.27625"
  9.2422 +         sodipodi:role="line"
  9.2423 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2424 +         id="tspan3490"> mutex structures,</tspan><tspan
  9.2425 +         y="-636.5929"
  9.2426 +         x="357.27625"
  9.2427 +         sodipodi:role="line"
  9.2428 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2429 +         id="tspan3492"> cond var structs, etc)</tspan></text>
  9.2430 +    <text
  9.2431 +       sodipodi:linespacing="100%"
  9.2432 +       id="text3494"
  9.2433 +       y="-627.95343"
  9.2434 +       x="459.43005"
  9.2435 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2436 +       xml:space="preserve"><tspan
  9.2437 +         id="tspan3496"
  9.2438 +         y="-627.95343"
  9.2439 +         x="459.43005"
  9.2440 +         sodipodi:role="line"
  9.2441 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">work-unit</tspan><tspan
  9.2442 +         id="tspan3498"
  9.2443 +         y="-618.95343"
  9.2444 +         x="459.43005"
  9.2445 +         sodipodi:role="line"
  9.2446 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">state chgs</tspan></text>
  9.2447 +    <path
  9.2448 +       sodipodi:nodetypes="cc"
  9.2449 +       inkscape:connector-curvature="0"
  9.2450 +       id="path3500"
  9.2451 +       d="m 548.67846,-615.848 261.45961,-0.0912"
  9.2452 +       style="fill:none;stroke:#000000;stroke-width:1.00000036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2453 +    <g
  9.2454 +       transform="translate(717.05331,-904)"
  9.2455 +       id="g3518">
  9.2456 +      <text
  9.2457 +         xml:space="preserve"
  9.2458 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2459 +         x="222.37003"
  9.2460 +         y="285.69943"
  9.2461 +         id="text3520"
  9.2462 +         sodipodi:linespacing="100%"><tspan
  9.2463 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2464 +           sodipodi:role="line"
  9.2465 +           x="222.37003"
  9.2466 +           y="285.69943"
  9.2467 +           id="tspan3522">Jmp to new</tspan><tspan
  9.2468 +           id="tspan3524"
  9.2469 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2470 +           sodipodi:role="line"
  9.2471 +           x="222.37003"
  9.2472 +           y="294.69943">work-unit</tspan></text>
  9.2473 +      <rect
  9.2474 +         y="274.77512"
  9.2475 +         x="193.78287"
  9.2476 +         height="25.544432"
  9.2477 +         width="57.486332"
  9.2478 +         id="rect3526"
  9.2479 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.2480 +    </g>
  9.2481 +    <path
  9.2482 +       sodipodi:nodetypes="cc"
  9.2483 +       inkscape:connector-curvature="0"
  9.2484 +       id="path3528"
  9.2485 +       d="m 868.0922,-616.20795 41.0608,0"
  9.2486 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2487 +    <path
  9.2488 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  9.2489 +       d="m 519.56974,-604.00562 0,12.75587"
  9.2490 +       id="path3568"
  9.2491 +       inkscape:connector-curvature="0"
  9.2492 +       sodipodi:nodetypes="cc" />
  9.2493 +    <g
  9.2494 +       id="g3572"
  9.2495 +       transform="translate(617.05331,-904)">
  9.2496 +      <text
  9.2497 +         sodipodi:linespacing="100%"
  9.2498 +         id="text3574"
  9.2499 +         y="285.69943"
  9.2500 +         x="222.37003"
  9.2501 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2502 +         xml:space="preserve"><tspan
  9.2503 +           y="285.69943"
  9.2504 +           x="222.37003"
  9.2505 +           sodipodi:role="line"
  9.2506 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2507 +           id="tspan3578">switch to</tspan><tspan
  9.2508 +           y="294.69943"
  9.2509 +           x="222.37003"
  9.2510 +           sodipodi:role="line"
  9.2511 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2512 +           id="tspan3584">ready VP</tspan></text>
  9.2513 +      <rect
  9.2514 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.2515 +         id="rect3580"
  9.2516 +         width="57.486332"
  9.2517 +         height="25.544432"
  9.2518 +         x="193.78287"
  9.2519 +         y="274.77512" />
  9.2520 +    </g>
  9.2521 +    <path
  9.2522 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.2523 +       d="m 279.12967,-592.6255 -38.74926,53.74501 -0.37105,270.05417 35.3037,38.5653"
  9.2524 +       id="path3588"
  9.2525 +       inkscape:connector-curvature="0"
  9.2526 +       sodipodi:nodetypes="cccc" />
  9.2527 +    <path
  9.2528 +       sodipodi:nodetypes="cc"
  9.2529 +       inkscape:connector-curvature="0"
  9.2530 +       id="path3590"
  9.2531 +       d="m 328.33352,-197.5484 41.44797,-413.82488"
  9.2532 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2533 +    <g
  9.2534 +       id="g4716"
  9.2535 +       transform="translate(-22.94669,-904)">
  9.2536 +      <text
  9.2537 +         sodipodi:linespacing="100%"
  9.2538 +         id="text4718"
  9.2539 +         y="285.39841"
  9.2540 +         x="222.37003"
  9.2541 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2542 +         xml:space="preserve"><tspan
  9.2543 +           id="tspan4720"
  9.2544 +           y="285.39841"
  9.2545 +           x="222.37003"
  9.2546 +           sodipodi:role="line"
  9.2547 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">save VP</tspan><tspan
  9.2548 +           id="tspan4722"
  9.2549 +           y="294.39841"
  9.2550 +           x="222.37003"
  9.2551 +           sodipodi:role="line"
  9.2552 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">context</tspan></text>
  9.2553 +      <rect
  9.2554 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.2555 +         id="rect4724"
  9.2556 +         width="57.486332"
  9.2557 +         height="25.544432"
  9.2558 +         x="193.78287"
  9.2559 +         y="274.77512" />
  9.2560 +    </g>
  9.2561 +    <path
  9.2562 +       sodipodi:nodetypes="cc"
  9.2563 +       inkscape:connector-curvature="0"
  9.2564 +       id="path4726"
  9.2565 +       d="m 549.69914,-605.3604 79.38092,221.59022"
  9.2566 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2567 +    <text
  9.2568 +       xml:space="preserve"
  9.2569 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2570 +       x="573.43005"
  9.2571 +       y="-583.95343"
  9.2572 +       id="text4728"
  9.2573 +       sodipodi:linespacing="100%"><tspan
  9.2574 +         id="tspan4732"
  9.2575 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2576 +         sodipodi:role="line"
  9.2577 +         x="573.43005"
  9.2578 +         y="-583.95343">No VPs</tspan><tspan
  9.2579 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2580 +         sodipodi:role="line"
  9.2581 +         x="573.43005"
  9.2582 +         y="-574.95343"
  9.2583 +         id="tspan4736">ready</tspan></text>
  9.2584 +    <text
  9.2585 +       inkscape:transform-center-x="-8.125"
  9.2586 +       xml:space="preserve"
  9.2587 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2588 +       x="451.43005"
  9.2589 +       y="-253.95343"
  9.2590 +       id="text4791"
  9.2591 +       sodipodi:linespacing="100%"><tspan
  9.2592 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2593 +         sodipodi:role="line"
  9.2594 +         x="451.43005"
  9.2595 +         y="-253.95343"
  9.2596 +         id="tspan4845">increase backoff each</tspan><tspan
  9.2597 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2598 +         sodipodi:role="line"
  9.2599 +         x="451.43005"
  9.2600 +         y="-244.95343"
  9.2601 +         id="tspan8389">repetition &amp; update</tspan><tspan
  9.2602 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2603 +         sodipodi:role="line"
  9.2604 +         x="451.43005"
  9.2605 +         y="-235.95343"
  9.2606 +         id="tspan8385">backoff state</tspan><tspan
  9.2607 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2608 +         sodipodi:role="line"
  9.2609 +         x="451.43005"
  9.2610 +         y="-226.95343"
  9.2611 +         id="tspan8462">Try to make core enter</tspan><tspan
  9.2612 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2613 +         sodipodi:role="line"
  9.2614 +         x="451.43005"
  9.2615 +         y="-217.95343"
  9.2616 +         id="tspan8476">power-down idle state</tspan><tspan
  9.2617 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2618 +         sodipodi:role="line"
  9.2619 +         x="451.43005"
  9.2620 +         y="-208.95343"
  9.2621 +         id="tspan8464">while waiting</tspan></text>
  9.2622 +    <g
  9.2623 +       transform="translate(257.05331,-564)"
  9.2624 +       id="g4825">
  9.2625 +      <text
  9.2626 +         xml:space="preserve"
  9.2627 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2628 +         x="222.37003"
  9.2629 +         y="285.39841"
  9.2630 +         id="text4827"
  9.2631 +         sodipodi:linespacing="100%"><tspan
  9.2632 +           id="tspan4831"
  9.2633 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2634 +           sodipodi:role="line"
  9.2635 +           x="222.37003"
  9.2636 +           y="285.39841">do Backoff</tspan><tspan
  9.2637 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2638 +           sodipodi:role="line"
  9.2639 +           x="222.37003"
  9.2640 +           y="294.39841"
  9.2641 +           id="tspan4837">wait</tspan></text>
  9.2642 +      <rect
  9.2643 +         y="274.77512"
  9.2644 +         x="193.78287"
  9.2645 +         height="25.544432"
  9.2646 +         width="57.486332"
  9.2647 +         id="rect4833"
  9.2648 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.2649 +    </g>
  9.2650 +    <path
  9.2651 +       sodipodi:nodetypes="cc"
  9.2652 +       inkscape:connector-curvature="0"
  9.2653 +       id="path4839"
  9.2654 +       d="m 449.58066,-276.19778 -135.75889,46.57393"
  9.2655 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2656 +    <path
  9.2657 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.2658 +       d="m 328.29269,-192.89706 c 201.947,-1.19048 188.59077,6.60715 222.99693,-14.36012 65.59054,-39.97116 58.47949,-168.79464 107.66658,-129.80654"
  9.2659 +       id="path7449"
  9.2660 +       inkscape:connector-curvature="0"
  9.2661 +       sodipodi:nodetypes="csc" />
  9.2662 +    <path
  9.2663 +       style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  9.2664 +       d="m 659.56974,-233.52943 0,24.20748"
  9.2665 +       id="path8339"
  9.2666 +       inkscape:connector-curvature="0"
  9.2667 +       sodipodi:nodetypes="cc" />
  9.2668 +    <g
  9.2669 +       transform="translate(80,80)"
  9.2670 +       id="g8347">
  9.2671 +      <text
  9.2672 +         xml:space="preserve"
  9.2673 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2674 +         x="579.39252"
  9.2675 +         y="-335.22998"
  9.2676 +         id="text8349"
  9.2677 +         sodipodi:linespacing="100%"><tspan
  9.2678 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2679 +           sodipodi:role="line"
  9.2680 +           x="579.39252"
  9.2681 +           y="-335.22998"
  9.2682 +           id="tspan8359">send &quot;need</tspan><tspan
  9.2683 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2684 +           sodipodi:role="line"
  9.2685 +           x="579.39252"
  9.2686 +           y="-326.22998"
  9.2687 +           id="tspan8412">work&quot;?</tspan></text>
  9.2688 +      <rect
  9.2689 +         ry="0"
  9.2690 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
  9.2691 +         y="93.582199"
  9.2692 +         x="624.01776"
  9.2693 +         height="36.457531"
  9.2694 +         width="36.810017"
  9.2695 +         id="rect8355"
  9.2696 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.2697 +    </g>
  9.2698 +    <text
  9.2699 +       xml:space="preserve"
  9.2700 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2701 +       x="681.43005"
  9.2702 +       y="-223.95343"
  9.2703 +       id="text8363"
  9.2704 +       sodipodi:linespacing="100%"><tspan
  9.2705 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2706 +         sodipodi:role="line"
  9.2707 +         x="681.43005"
  9.2708 +         y="-223.95343"
  9.2709 +         id="tspan8367">yes, send</tspan></text>
  9.2710 +    <path
  9.2711 +       sodipodi:nodetypes="cc"
  9.2712 +       inkscape:connector-curvature="0"
  9.2713 +       id="path8371"
  9.2714 +       d="M 630.69705,-196.1891 509.08787,-272.94486"
  9.2715 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2716 +    <g
  9.2717 +       id="g8391"
  9.2718 +       transform="translate(80,20)">
  9.2719 +      <text
  9.2720 +         sodipodi:linespacing="100%"
  9.2721 +         id="text8393"
  9.2722 +         y="-339.22998"
  9.2723 +         x="579.39252"
  9.2724 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2725 +         xml:space="preserve"><tspan
  9.2726 +           y="-339.22998"
  9.2727 +           x="579.39252"
  9.2728 +           sodipodi:role="line"
  9.2729 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2730 +           id="tspan8395">got</tspan><tspan
  9.2731 +           id="tspan8397"
  9.2732 +           y="-330.22998"
  9.2733 +           x="579.39252"
  9.2734 +           sodipodi:role="line"
  9.2735 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1">work?</tspan></text>
  9.2736 +      <rect
  9.2737 +         style="fill:none;stroke:#000000;stroke-width:1.08748555;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.2738 +         id="rect8399"
  9.2739 +         width="36.810017"
  9.2740 +         height="36.457531"
  9.2741 +         x="624.01776"
  9.2742 +         y="93.582199"
  9.2743 +         transform="matrix(0.77064159,-0.63726882,0.75441789,0.65639443,0,0)"
  9.2744 +         ry="0" />
  9.2745 +    </g>
  9.2746 +    <path
  9.2747 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend-8-7-0)"
  9.2748 +       d="m 659.56974,-292.00562 0,13.28746"
  9.2749 +       id="path8401"
  9.2750 +       inkscape:connector-curvature="0"
  9.2751 +       sodipodi:nodetypes="cc" />
  9.2752 +    <text
  9.2753 +       xml:space="preserve"
  9.2754 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2755 +       x="625.43005"
  9.2756 +       y="-247.95343"
  9.2757 +       id="text8403"
  9.2758 +       sodipodi:linespacing="100%"><tspan
  9.2759 +         id="tspan8405"
  9.2760 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2761 +         sodipodi:role="line"
  9.2762 +         x="625.43005"
  9.2763 +         y="-247.95343">Don't</tspan><tspan
  9.2764 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2765 +         sodipodi:role="line"
  9.2766 +         x="625.43005"
  9.2767 +         y="-238.95343"
  9.2768 +         id="tspan8460">send</tspan></text>
  9.2769 +    <path
  9.2770 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.2771 +       d="M 632.60182,-256.1891 509.09908,-276.55267"
  9.2772 +       id="path8408"
  9.2773 +       inkscape:connector-curvature="0"
  9.2774 +       sodipodi:nodetypes="cc" />
  9.2775 +    <text
  9.2776 +       sodipodi:linespacing="100%"
  9.2777 +       id="text8420"
  9.2778 +       y="-317.95343"
  9.2779 +       x="697.43005"
  9.2780 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2781 +       xml:space="preserve"><tspan
  9.2782 +         id="tspan8422"
  9.2783 +         y="-317.95343"
  9.2784 +         x="697.43005"
  9.2785 +         sodipodi:role="line"
  9.2786 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">yes,</tspan><tspan
  9.2787 +         y="-308.95343"
  9.2788 +         x="697.43005"
  9.2789 +         sodipodi:role="line"
  9.2790 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2791 +         id="tspan8424">got</tspan><tspan
  9.2792 +         y="-299.95343"
  9.2793 +         x="697.43005"
  9.2794 +         sodipodi:role="line"
  9.2795 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2796 +         id="tspan8426">work</tspan></text>
  9.2797 +    <text
  9.2798 +       sodipodi:linespacing="100%"
  9.2799 +       id="text8428"
  9.2800 +       y="-560.5929"
  9.2801 +       x="737.27625"
  9.2802 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2803 +       xml:space="preserve"><tspan
  9.2804 +         y="-560.5929"
  9.2805 +         x="737.27625"
  9.2806 +         sodipodi:role="line"
  9.2807 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2808 +         id="tspan8434">The difference between top two paths</tspan><tspan
  9.2809 +         y="-551.5929"
  9.2810 +         x="737.27625"
  9.2811 +         sodipodi:role="line"
  9.2812 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2813 +         id="tspan8440">is the way the request hdlr+assigner has</tspan><tspan
  9.2814 +         y="-542.5929"
  9.2815 +         x="737.27625"
  9.2816 +         sodipodi:role="line"
  9.2817 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2818 +         id="tspan8442">been implemented -- use shared state on</tspan><tspan
  9.2819 +         y="-533.5929"
  9.2820 +         x="737.27625"
  9.2821 +         sodipodi:role="line"
  9.2822 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2823 +         id="tspan8450">top path, but only local on the second.</tspan><tspan
  9.2824 +         y="-524.5929"
  9.2825 +         x="737.27625"
  9.2826 +         sodipodi:role="line"
  9.2827 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2828 +         id="tspan8454">NOTE: the request hdlr and assigner are</tspan><tspan
  9.2829 +         y="-515.5929"
  9.2830 +         x="737.27625"
  9.2831 +         sodipodi:role="line"
  9.2832 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2833 +         id="tspan8456">combined into a single straight-line piece</tspan><tspan
  9.2834 +         y="-506.5929"
  9.2835 +         x="737.27625"
  9.2836 +         sodipodi:role="line"
  9.2837 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2838 +         id="tspan8458">of code.</tspan></text>
  9.2839 +    <path
  9.2840 +       sodipodi:nodetypes="cccc"
  9.2841 +       inkscape:connector-curvature="0"
  9.2842 +       id="path8466"
  9.2843 +       d="m 279.12967,-474.53026 -22.71235,36.22941 -0.21748,176.32874 29.26421,32.66347"
  9.2844 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2845 +    <path
  9.2846 +       sodipodi:nodetypes="cc"
  9.2847 +       inkscape:connector-curvature="0"
  9.2848 +       id="path8468"
  9.2849 +       d="M 548.67838,-498.64159 808.48533,-608.65596"
  9.2850 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)" />
  9.2851 +    <text
  9.2852 +       sodipodi:linespacing="100%"
  9.2853 +       id="text8470"
  9.2854 +       y="-483.95343"
  9.2855 +       x="571.43005"
  9.2856 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2857 +       xml:space="preserve"><tspan
  9.2858 +         y="-483.95343"
  9.2859 +         x="571.43005"
  9.2860 +         sodipodi:role="line"
  9.2861 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.2862 +         id="tspan8472">No VPs</tspan><tspan
  9.2863 +         id="tspan8474"
  9.2864 +         y="-474.95343"
  9.2865 +         x="571.43005"
  9.2866 +         sodipodi:role="line"
  9.2867 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1">  ready</tspan></text>
  9.2868 +    <text
  9.2869 +       sodipodi:linespacing="100%"
  9.2870 +       id="text8478"
  9.2871 +       y="86.04657"
  9.2872 +       x="531.43005"
  9.2873 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2874 +       xml:space="preserve"
  9.2875 +       inkscape:transform-center-x="-8.125"><tspan
  9.2876 +         y="86.04657"
  9.2877 +         x="531.43005"
  9.2878 +         sodipodi:role="line"
  9.2879 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.2880 +         id="tspan8538" /></text>
  9.2881 +    <flowRoot
  9.2882 +       xml:space="preserve"
  9.2883 +       id="flowRoot8540"
  9.2884 +       style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"><flowRegion
  9.2885 +         id="flowRegion8542"><rect
  9.2886 +           id="rect8544"
  9.2887 +           width="527.61902"
  9.2888 +           height="266.66666"
  9.2889 +           x="457.14285"
  9.2890 +           y="491.66666"
  9.2891 +           style="font-size:8px" /></flowRegion><flowPara
  9.2892 +         id="flowPara8546" /></flowRoot>    <flowRoot
  9.2893 +       xml:space="preserve"
  9.2894 +       id="flowRoot8548"
  9.2895 +       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  9.2896 +       transform="translate(-336.46922,-441.70658)"><flowRegion
  9.2897 +         id="flowRegion8550"><rect
  9.2898 +           id="rect8552"
  9.2899 +           width="539.04761"
  9.2900 +           height="272.38095"
  9.2901 +           x="447.61905"
  9.2902 +           y="487.85715" /></flowRegion><flowPara
  9.2903 +         style="font-size:8px"
  9.2904 +         id="flowPara8765">Local semantic Env holds the Q of ready work-units </flowPara><flowPara
  9.2905 +         style="font-size:8px"
  9.2906 +         id="flowPara8805">-] Msgs update the local semantic state, and put work-units into this Q</flowPara><flowPara
  9.2907 +         style="font-size:8px"
  9.2908 +         id="flowPara8767">-] Shared sem state is traditional VMS, except req hdlr and assigner are same Fn</flowPara><flowPara
  9.2909 +         style="font-size:8px"
  9.2910 +         id="flowPara8769">-] Shared sem has its own structs to decide which VP is ready, and switches to it at end of Assigner</flowPara><flowPara
  9.2911 +         style="font-size:8px"
  9.2912 +         id="flowPara8771">-] Which core a VP runs on is decided between req hdlr and assigner, based on shared structs that hold the VPs</flowPara><flowPara
  9.2913 +         style="font-size:8px"
  9.2914 +         id="flowPara8773">-] For local-only, VP is moved to the core it runs on -- assigner only moves VPs to diff cores and receives them</flowPara><flowPara
  9.2915 +         style="font-size:8px"
  9.2916 +         id="flowPara8775">-] For atomic tasks, the task-info is sent betwn cores.. for VPs, whole live portion of stack is sent.</flowPara><flowPara
  9.2917 +         style="font-size:8px"
  9.2918 +         id="flowPara8777" /><flowPara
  9.2919 +         style="font-size:8px"
  9.2920 +         id="flowPara8823">Okay, so this fits the standard VMS model -- except now the core-controller is gone, so the extra level of UCC is taken away.  Now, the MasterVP is &quot;reusing&quot; whatever VP has suspended. -- in a way, the core-controller plu AnimationMaster are reduced to the assembly call that the WrapperLib (WL) makes to end the current work-unit, which suspends the VP.  Inside that suspend call, is the opportunity to switch between different processes, call upon VMS-only helper services, and so on.</flowPara><flowPara
  9.2921 +         style="font-size:8px"
  9.2922 +         id="flowPara8825">So, the switch-over is a function call to a wrapp-lib, which then does an assembly Fn call -- the assembly saves the stack state (regs already saved when did the wrapper-lib call), and then puts localEnv into the param reg (for 64 bit convention) and jumps to the plugin-fn.  Note, there are three different assembly calls, one for each kind of work-unit, to end it.  Sometimes work-unit calls assembly directly, sometimes it calls a wrapper-lib that just does all the work right there, sometimes the wrapper lib calls the appropriate assembly Fn.</flowPara><flowPara
  9.2923 +         style="font-size:8px"
  9.2924 +         id="flowPara8827" /><flowPara
  9.2925 +         style="font-size:8px"
  9.2926 +         id="flowPara8793">Need to modify request structure, so abstraction can supply services via request -- and perhaps library Fns that perform some of services direct from app, and other Fns for use inside the plugins.. such as Malloc-Free, create VP, create atomic-Task.. some are pure wrapper-lib, others are combo.. seeing one version of malloc for wrapper-lib, different for plugin and msg-system use.The msg system is details of impl of Lang Animator -- so plugin is still &quot;completing&quot; the lang animator by adding semantics</flowPara><flowPara
  9.2927 +         style="font-size:8px"
  9.2928 +         id="flowPara8801">Core-controller was a second level beneath the runtime (Language Animator is the runtime)..  The sched slots were virtual physical animators, and the masterVP was the Language Animator, which the AnimationMaster Fn and the plugin Fns supplied the behavior of.  The coreCtlr switched between levels -- The MasterVP was &quot;outside&quot; the framework of the schedling slots -- in a way it was beside them (they took turns getting the actual phys animator, so same level) and in other way was above -- it controlled what went into the slots, so above them.  I another way, the MasterVP was the Language Animator, while the slots were virtual physical, so they had no locial connection -- the slots were related to the same thing that animatored the language animator..  a very strange arrangement.</flowPara></flowRoot>    <text
  9.2929 +       xml:space="preserve"
  9.2930 +       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  9.2931 +       x="894.00696"
  9.2932 +       y="-182.42088"
  9.2933 +       id="text8833"
  9.2934 +       sodipodi:linespacing="125%"><tspan
  9.2935 +         sodipodi:role="line"
  9.2936 +         id="tspan8835"
  9.2937 +         x="894.00696"
  9.2938 +         y="-182.42088"> </tspan></text>
  9.2939 +    <g
  9.2940 +       id="g3490"
  9.2941 +       transform="translate(177.05331,-343.31973)">
  9.2942 +      <text
  9.2943 +         sodipodi:linespacing="100%"
  9.2944 +         id="text3492"
  9.2945 +         y="285.39841"
  9.2946 +         x="222.37003"
  9.2947 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2948 +         xml:space="preserve"><tspan
  9.2949 +           y="285.39841"
  9.2950 +           x="222.37003"
  9.2951 +           sodipodi:role="line"
  9.2952 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2953 +           id="tspan3501">send work-</tspan><tspan
  9.2954 +           y="294.39841"
  9.2955 +           x="222.37003"
  9.2956 +           sodipodi:role="line"
  9.2957 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2958 +           id="tspan3511">push msg</tspan><tspan
  9.2959 +           y="303.39841"
  9.2960 +           x="223.72354"
  9.2961 +           sodipodi:role="line"
  9.2962 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2963 +           id="tspan3513">and start </tspan><tspan
  9.2964 +           y="312.39841"
  9.2965 +           x="222.37003"
  9.2966 +           sodipodi:role="line"
  9.2967 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.2968 +           id="tspan3515">timer for it.</tspan></text>
  9.2969 +      <rect
  9.2970 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
  9.2971 +         id="rect3503"
  9.2972 +         width="57.486332"
  9.2973 +         height="63.639675"
  9.2974 +         x="193.78287"
  9.2975 +         y="274.77512" />
  9.2976 +    </g>
  9.2977 +    <text
  9.2978 +       xml:space="preserve"
  9.2979 +       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  9.2980 +       x="84.168976"
  9.2981 +       y="-681.48474"
  9.2982 +       id="text3537"
  9.2983 +       sodipodi:linespacing="125%"><tspan
  9.2984 +         sodipodi:role="line"
  9.2985 +         id="tspan3539"
  9.2986 +         x="84.168976"
  9.2987 +         y="-681.48474"
  9.2988 +         style="font-size:40px">Control Flow of Universal Proto-Runtime </tspan></text>
  9.2989 +    <g
  9.2990 +       transform="translate(237.05331,-404)"
  9.2991 +       id="g3541">
  9.2992 +      <text
  9.2993 +         xml:space="preserve"
  9.2994 +         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.2995 +         x="222.25137"
  9.2996 +         y="285.36765"
  9.2997 +         id="text3543"
  9.2998 +         sodipodi:linespacing="100%"><tspan
  9.2999 +           id="tspan3547"
  9.3000 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.3001 +           sodipodi:role="line"
  9.3002 +           x="222.25137"
  9.3003 +           y="285.36765">Expired timer</tspan><tspan
  9.3004 +           style="font-size:9px;text-align:center;text-anchor:middle;fill:#900600;fill-opacity:1"
  9.3005 +           sodipodi:role="line"
  9.3006 +           x="222.25137"
  9.3007 +           y="294.36765"
  9.3008 +           id="tspan3553">handler</tspan></text>
  9.3009 +      <rect
  9.3010 +         y="274.77512"
  9.3011 +         x="193.78287"
  9.3012 +         height="25.544432"
  9.3013 +         width="57.486332"
  9.3014 +         id="rect3549"
  9.3015 +         style="fill:none;stroke:#000000;stroke-width:1.08018124;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
  9.3016 +    </g>
  9.3017 +    <path
  9.3018 +       style="fill:none;stroke:#000000;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-8-7-0)"
  9.3019 +       d="m 323.63077,-165.12086 131.74691,33.98134"
  9.3020 +       id="path3555"
  9.3021 +       inkscape:connector-curvature="0"
  9.3022 +       sodipodi:nodetypes="cc" />
  9.3023 +    <text
  9.3024 +       xml:space="preserve"
  9.3025 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.3026 +       x="393.43005"
  9.3027 +       y="-151.95343"
  9.3028 +       id="text3557"
  9.3029 +       sodipodi:linespacing="100%"><tspan
  9.3030 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.3031 +         sodipodi:role="line"
  9.3032 +         x="393.43005"
  9.3033 +         y="-151.95343"
  9.3034 +         id="tspan3561">  Expired</tspan><tspan
  9.3035 +         style="font-size:9px;text-align:center;text-anchor:middle;fill:#008000;fill-opacity:1"
  9.3036 +         sodipodi:role="line"
  9.3037 +         x="393.43005"
  9.3038 +         y="-142.95343"
  9.3039 +         id="tspan3565">                  timer</tspan></text>
  9.3040 +    <text
  9.3041 +       xml:space="preserve"
  9.3042 +       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#d45500;fill-opacity:1;stroke:none;font-family:Trebuchet MS;-inkscape-font-specification:Trebuchet MS"
  9.3043 +       x="449.27625"
  9.3044 +       y="-93.273193"
  9.3045 +       id="text3567"
  9.3046 +       sodipodi:linespacing="100%"><tspan
  9.3047 +         id="tspan3579"
  9.3048 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.3049 +         sodipodi:role="line"
  9.3050 +         x="449.27625"
  9.3051 +         y="-93.273193">When send work to other core,</tspan><tspan
  9.3052 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.3053 +         sodipodi:role="line"
  9.3054 +         x="449.27625"
  9.3055 +         y="-84.273193"
  9.3056 +         id="tspan3591">it may be sleeping. So when timer</tspan><tspan
  9.3057 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.3058 +         sodipodi:role="line"
  9.3059 +         x="449.27625"
  9.3060 +         y="-75.273193"
  9.3061 +         id="tspan3593">expires, do escrow, which is atomic</tspan><tspan
  9.3062 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.3063 +         sodipodi:role="line"
  9.3064 +         x="449.27625"
  9.3065 +         y="-66.273193"
  9.3066 +         id="tspan3595">check of whether work was received.</tspan><tspan
  9.3067 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.3068 +         sodipodi:role="line"
  9.3069 +         x="449.27625"
  9.3070 +         y="-57.273193"
  9.3071 +         id="tspan3597">If not, then check if dest core is </tspan><tspan
  9.3072 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.3073 +         sodipodi:role="line"
  9.3074 +         x="449.27625"
  9.3075 +         y="-48.273193"
  9.3076 +         id="tspan3599">sleeping -- if no, then take work</tspan><tspan
  9.3077 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.3078 +         sodipodi:role="line"
  9.3079 +         x="449.27625"
  9.3080 +         y="-39.273193"
  9.3081 +         id="tspan3611">back. If yes, do wakeup and set a </tspan><tspan
  9.3082 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.3083 +         sodipodi:role="line"
  9.3084 +         x="449.27625"
  9.3085 +         y="-30.273193"
  9.3086 +         id="tspan3609">new timer, which will do  this</tspan><tspan
  9.3087 +         style="font-size:9px;text-align:start;text-anchor:start;fill:#d45500;fill-opacity:1"
  9.3088 +         sodipodi:role="line"
  9.3089 +         x="449.27625"
  9.3090 +         y="-21.273193"
  9.3091 +         id="tspan3617">handling again.</tspan></text>
  9.3092 +  </g>
  9.3093 +</svg>
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/0__Papers/VMS/Split-core_msg_passing_based/latex/VMS_universal.tex	Mon Oct 08 23:03:26 2012 -0700
    10.3 @@ -0,0 +1,281 @@
    10.4 +%&latex
    10.5 +%% Derived from: `accept.tex' (from acmconf.dtx),
    10.6 +
    10.7 +\documentclass[box,accept]{acmconf}
    10.8 +
    10.9 +\CopyrightText{\copyright ACM 2000, ....., used with the \texttt{box} option.}
   10.10 +\IfFileExists{graphicx.sty}{\usepackage{graphicx}}{}
   10.11 +\ConferenceName{1. Conference on Designing a \LaTeX2e Class for
   10.12 +  Typesetting ACM Papers, Hawaii 2000}
   10.13 +\ConferenceShortName{CONF-2000}
   10.14 +
   10.15 +\def\XX{More text should follow, but keep in mind that a limit of 6
   10.16 +  pages has been set, including figures and references.  More text
   10.17 +  should follow, but keep in mind that a limit of 6 pages has been
   10.18 +  set, including figures and references.  More text should follow, but
   10.19 +  keep in mind that a limit of 6 pages has been set, including figures
   10.20 +  and references.  More text should follow, but keep in mind that a
   10.21 +  limit of 6 pages has been set, including figures and references.
   10.22 +  \par
   10.23 +}
   10.24 +
   10.25 +\begin{document}
   10.26 +
   10.27 +%+Title
   10.28 +\date{31. December 1999}
   10.29 +\title{A Universal Proto-Runtime for Domain Specific Parallel Languages}
   10.30 +\author{\Author{Sean Halle}\\
   10.31 +         \Address{Open Source Research Institute}\\
   10.32 +         \Email{Sean.Halle@OpenSourceResearchInstitute.org}
   10.33 +       }
   10.34 +\maketitle
   10.35 +%-Title
   10.36 +
   10.37 +%+Abstract
   10.38 +\begin{abstract}
   10.39 +Software has not been keeping up with parallel hardware, which slows the economy and retards adoption of new hardware. The gap is due in part to the disruption caused by  moving to parallel languages, and in part to the prohibitive effort of porting parallel code across platforms.  A leading idea for solving this is domain-specific parallel languages, where custom constructs are made to match features of the problem.  However, such languages have a small number of users, which can't support the currently large effort to create such languages and port them across hardware platforms.
   10.40 +
   10.41 +To simplify creation of domain-specific languages, we propose a "proto" runtime, which provides the cross-language portion of runtime behavior. This includes handling the concurrency issues within the runtime itself.  A given language only provides sequential implementations of its constructs.
   10.42 +
   10.43 +
   10.44 +
   10.45 +We explain the practical usage and theory, and show measurements of implementation time of three simple languages and one domain-specific language for hardware simulation. We also give runtime overhead measurements, which are orders of magnitude better than pthreads and OpenMP.  
   10.46 +\end{abstract}
   10.47 +%-Abstract
   10.48 +
   10.49 +
   10.50 +\section{Introduction}
   10.51 +Current parallel languages, such as pthreads, TBB, OpenMP, and MPI, require programmers to learn new, complex mental models. Sequential programmers have to be retrained to  using the parallel languages, and a new set of programming practices must be adopted for them. Such retraining generates a large disruption in the application-software companies that attempt to start using these parallel languages.
   10.52 +
   10.53 +Further, after learning the new language and adopting the new programming practices, the companies still have to hand-tune each application for each target hardware platform. Not only that, but customers have to acquire a new binary when they upgrade hardware. Both effects are costly, and tend to retard adoption of new hardware, despite potential performance gains.
   10.54 + 
   10.55 +The net result is that software lags behind hardware, and the potential advantages across the economy of new hardware designs are lost. What is needed is a way to ease the transition from sequential programming to parallel programming, and to reduce the amount of hand-tuning done to get efficient performance on new hardware.
   10.56 +
   10.57 + 
   10.58 +Domain-specific languages promise to deliver both easier transition and efficiency across hardware[]. They do this by providing custom constructs that match to patterns in the application. Thus, they are natural for the sequential programmer to use. The custom constructs ``hide''  parallelism inside themselves, letting the runtime or toolchain handle it, freeing the programmer, and putting performance inside the tools. This makes coding easier and reduces hand-tuning.
   10.59 +
   10.60 +To illustrate the concept, we briefly cover one such language, which is used for describing the behavior of hardware, called HWSim. It has a straight-forward means for describing hardware, and then extracts parallelism from the description. The extracted parallelism is then efficiently exploited  on a variety of target platforms.
   10.61 +
   10.62 +One blockage to wide-spread adoption of such domain-specific languages is the cost of developing them. Currently, a toolchain is created, including an optimizer and back end for each target platform. This is expensive.
   10.63 +
   10.64 +An alternative approach is so-called embedded languages, in which the new constructs are viewed as library calls made from a base language, such as C. This relies on the runtime system to provide efficient execution on a given target platform. It avoids the expense of creating a toolchain for each target, by instead creating a runtime for each target that is tuned to the hardware.
   10.65 +
   10.66 +This is a step forward, but such runtimes are still expensive to create. A technology to simplify the runtime creation would be helpful.
   10.67 +
   10.68 +In this paper, we present a means to reduce runtime creation, by not only reducing the complexity, but also by making reuse of runtime code in new languages more practical. It essentially breaks a runtime into two pieces: a part that implements the semantic behavior of the custom constructs, and a part that is the same for every language.
   10.69 +
   10.70 + A nice happenstance is that most of the complicated concurrency issues that come up inside current runtime implementations can be collected inside the part that stays the same across languages. This means the language only need supply a sequential implementation of its constructs' behavior. The cross-language part handles low-level synchronization and communication between cores, exporting a simple interface. 
   10.71 +
   10.72 +Another nice happenstance is that the interface between the two parts of the runtime modularizes the runtime code. This, by itself, speeds development of new runtimes. In addition, it makes sharing between languages practical, especially for the portion that chooses where to perform work, and in which order.
   10.73 +
   10.74 + This placement-choosing portion handles data affinity and the shape of the dependency graph, which are largely responsible for the resulting performance. However, it can be written to contain few language-specific portions, making it practical to share between languages, for a given target platform.  This saves a non-trivial amount of development work.
   10.75 +
   10.76 +While runtimes built without our contribution are still free to share such code, they have no equivalent interface between the runtime pieces. This makes isolating this portion of code more time consuming, and forces more effort to fit code from one runtime into the one of a different language.
   10.77 +
   10.78 +We call our contribution Universal Proto-Runtime (UPR) in order to capture the idea that we supply a partial runtime that must be completed by the language.  Unlike a thread package, our contribution cannot be used directly by application code. Rather, a \emph{plugin}  that contains the language-specific portions must be supplied.
   10.79 +The application then uses the combination.
   10.80 +
   10.81 +
   10.82 +Organization of paper
   10.83 +
   10.84 +\section{Background and Related Work}
   10.85 +
   10.86 +The current method of creating a runtime for a new domain-specific language is either writing one from scratch, normally on top of pthreads, or else modifying an existing runtime. LibGomp, the runtime for OpenMP, is a popular starting point.
   10.87 +
   10.88 +From anecdotal evidence, talking with 5 groups that have created domain specific languages, development of bare functionality of the runtime takes anywhere from one to several months. Perhaps a majority  of the time is spent  on multi-threading design and debugging.  That is just for basic functionality; if they want low overhead, they expect another three to six months of performance tuning.
   10.89 +
   10.90 +One group was interviewed, which used libGomp as the base upon which to build a streaming dataflow language.
   10.91 +
   10.92 +UPR is designed to shorten that development time.
   10.93 +
   10.94 +
   10.95 +UPR differs from pthreads, TBB, and other thread packages in that it provides a mental model that is specific to runtime creation.  Pthreads and TBB are programming languages in their own right, but UPR is not. It has no semantics usable in application code, because it's only a  \emph{part} of a runtime. It is geared exclusively to runtime creation. 
   10.96 +
   10.97 +?
   10.98 +
   10.99 +
  10.100 +
  10.101 +\section{The Story Begins\ldots}
  10.102 +A real article is supposed to have some deep results and good
  10.103 +explanations.  That, however, is your job and not mine so you should
  10.104 +replace this text with something more appropriate\footnote{Another a
  10.105 +  footnote}..
  10.106 +
  10.107 +\section{Some often used \LaTeX\ commands}
  10.108 +
  10.109 +\subsection{\texttt{emph}, etc.}
  10.110 +Text may be set as \emph{emph}.\\
  10.111 +Text may be set as \texttt{texttt}.\\
  10.112 +Text may be set as \underline{unterline}.\\
  10.113 +Text may be set as \textbf{textbf}.\\
  10.114 +Text may be set as \textrm{textrm}.\\
  10.115 +Text may be set as {\tiny tiny}.\\
  10.116 +Text may be set as {\scriptsize scriptsize}.\\
  10.117 +Text may be set as {\footnotesize footnotesize}.\\
  10.118 +Text may be set as {\normalfont normalsize}.\\
  10.119 +Text may be set as {\large large}.\\
  10.120 +Text may be set as {\Large Large}.\\
  10.121 +Text may be set as {\LARGE LARGE}.\\
  10.122 +Text may be set as {\huge huge}.\\
  10.123 +Text may be set as {\Huge Huge}.\\
  10.124 +Text may have$^{\textrm{super}}$ and$_{\textrm{sub}}$scripts.
  10.125 +
  10.126 +\subsection{\texttt{itemize}}
  10.127 +\begin{itemize}
  10.128 +\item More text should follow, but keep in mind that a limit of 6
  10.129 +     pages has been set, including figures and references.  More text
  10.130 +     should follow, but keep in mind that a limit of 6 pages has been
  10.131 +     set, including figures and references.
  10.132 +\item More text should follow, but keep in mind that a limit of 6
  10.133 +     pages has been set, including figures and references.  More text
  10.134 +     should follow, but keep in mind that a limit of 6 pages has been
  10.135 +     set, including figures and references.
  10.136 +\end{itemize}
  10.137 +
  10.138 +\subsection{\texttt{enumerate}}
  10.139 +\begin{enumerate}
  10.140 +\item More text should follow, but keep in mind that a limit of 6
  10.141 +     pages has been set, including figures and references.  More text
  10.142 +     should follow, but keep in mind that a limit of 6 pages has been
  10.143 +     set, including figures and references.
  10.144 +\item More text should follow, but keep in mind that a limit of 6
  10.145 +     pages has been set, including figures and references.  More text
  10.146 +     should follow, but keep in mind that a limit of 6 pages has been
  10.147 +     set, including figures and references.
  10.148 +\end{enumerate}
  10.149 +
  10.150 +\subsection{\texttt{description}}
  10.151 +\begin{description}
  10.152 +\item[Foo] More text should follow, but keep in mind that a limit of 6
  10.153 +     pages has been set, including figures and references.  More text
  10.154 +     should follow, but keep in mind that a limit of 6 pages has been
  10.155 +     set, including figures and references.
  10.156 +\item[Bar] More text should follow, but keep in mind that a limit of 6
  10.157 +     pages has been set, including figures and references.  More text
  10.158 +     should follow, but keep in mind that a limit of 6 pages has been
  10.159 +     set, including figures and references.
  10.160 +\end{description}
  10.161 +
  10.162 +\subsection{\texttt{center} and \texttt{tabular}}
  10.163 +\begin{center}
  10.164 +\begin{tabular}{|l|c|r|}\hline
  10.165 +left     & center   & right    \\\hline\hline
  10.166 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\
  10.167 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{3-3}
  10.168 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{2-2}
  10.169 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{1-2}
  10.170 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\\hline
  10.171 +AAAAAAAA & BBBBBBBB & CCCCCCCC \\\hline
  10.172 +1          & \multicolumn{2}{|c|}{2} \\\hline
  10.173 +\end{tabular}
  10.174 +\end{center}
  10.175 +
  10.176 +\subsection{\texttt{figure} and Postscript pictures}
  10.177 +Have a look to to figure~\ref{fig-1} and~\ref{fig-2}.
  10.178 +
  10.179 +\begin{figure}
  10.180 +\hrule
  10.181 +Nice Postscript, isn't it?
  10.182 +\begin{center}
  10.183 +\IfFileExists{graphicx.sty}{
  10.184 +  \includegraphics{body.eps}
  10.185 +}{
  10.186 +  Sorry, package \texttt{graphicx} not present.
  10.187 +}
  10.188 +\end{center}
  10.189 +
  10.190 +Same, a little bit smaller:
  10.191 +\begin{center}
  10.192 +\IfFileExists{graphicx.sty}{
  10.193 +  \includegraphics[scale=.5]{body.eps}
  10.194 +  }{
  10.195 +  Sorry, package \texttt{graphicx} not present.
  10.196 +}
  10.197 +\end{center}
  10.198 +\caption{\label{fig-1}This is a nice floating figure}
  10.199 +\hrule
  10.200 +\end{figure}
  10.201 +
  10.202 +\begin{figure*}
  10.203 +\hrule
  10.204 +This figure uses both columns, using \texttt{figure*}
  10.205 +\begin{center}
  10.206 +\IfFileExists{graphicx.sty}{
  10.207 +  \includegraphics[scale=.5]{body.eps}
  10.208 +  \hspace{1cm}
  10.209 +  \includegraphics[scale=.5]{body.eps}
  10.210 +}{
  10.211 +  Sorry, package \texttt{graphicx} not present.
  10.212 +}
  10.213 +\end{center}
  10.214 +\caption{\label{fig-2}This is a nice floating figure}
  10.215 +\hrule
  10.216 +\end{figure*}
  10.217 +
  10.218 +\section{The Story Continues 1}
  10.219 +
  10.220 +This is a \verb+\section+.
  10.221 +
  10.222 +\XX\XX
  10.223 +
  10.224 +\subsection{The Story Continues 2}
  10.225 +
  10.226 +This is a \verb+\subsection+.
  10.227 +
  10.228 +\XX\XX
  10.229 +
  10.230 +\subsubsection{The Story Continues 3}
  10.231 +
  10.232 +This is a \verb+\subsubsection+.
  10.233 +
  10.234 +\XX\XX
  10.235 +
  10.236 +\subsubsubsection{The Story Continues 4}
  10.237 +
  10.238 +This is a \verb+\subsubsubsection+.
  10.239 +
  10.240 +\XX\XX
  10.241 +
  10.242 +\subsubsubsubsection{The Story Continues 5}
  10.243 +
  10.244 +This is a \verb+\subsubsubsubsection+.
  10.245 +
  10.246 +\XX\XX
  10.247 +
  10.248 +\paragraph{The Story Continues 6}
  10.249 +
  10.250 +This is a \verb+\paragraph+.
  10.251 +\XX\XX
  10.252 +
  10.253 +\subparagraph{The Story Continues 7}
  10.254 +This is a \verb+\subparagraph+.
  10.255 +\XX\XX\XX
  10.256 +
  10.257 +\section{Conclusion}
  10.258 +The end, at last!  In this example there really are no results or
  10.259 +points to summarize but I trust your article has more food for though
  10.260 +and thus will need a conclusion.
  10.261 +
  10.262 +\appendix
  10.263 +\section{Appendices}
  10.264 +If you have any, appendices might go here.  Note that appendices
  10.265 +should not be used to circumvent the word count limit.
  10.266 +
  10.267 +This is "doing it by hand" --- you might be better off using BibTeX.
  10.268 +
  10.269 +%+Bibliography
  10.270 +\begin{thebibliography}{X}
  10.271 +\bibitem[1]{Lam94} Leslie Lamport: {\em \LaTeX, A Document
  10.272 +    Preparation System,} Addison Wesley~1994.
  10.273 +\end{thebibliography}
  10.274 +%-Bibliography
  10.275 +
  10.276 +\IfPrepare{
  10.277 +  \tableofcontents
  10.278 +  \listoffigures
  10.279 +  \listoftables
  10.280 +}{}
  10.281 +
  10.282 +\end{document}
  10.283 +
  10.284 +
    11.1 Binary file 0__Papers/VMS/Universal/figures/control_flow.pdf has changed
    12.1 --- a/0__Papers/VMS/Universal/figures/control_flow.svg	Fri Aug 17 19:01:07 2012 +0200
    12.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3 @@ -1,3090 +0,0 @@
    12.4 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    12.5 -<!-- Created with Inkscape (http://www.inkscape.org/) -->
    12.6 -
    12.7 -<svg
    12.8 -   xmlns:dc="http://purl.org/dc/elements/1.1/"
    12.9 -   xmlns:cc="http://creativecommons.org/ns#"
   12.10 -   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   12.11 -   xmlns:svg="http://www.w3.org/2000/svg"
   12.12 -   xmlns="http://www.w3.org/2000/svg"
   12.13 -   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   12.14 -   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   12.15 -   width="1488.189"
   12.16 -   height="1052.3622"
   12.17 -   id="svg2"
   12.18 -   sodipodi:version="0.32"
   12.19 -   inkscape:version="0.48.1 "
   12.20 -   sodipodi:docname="control_flow.svg"
   12.21 -   inkscape:output_extension="org.inkscape.output.svg.inkscape"
   12.22 -   version="1.1">
   12.23 -  <defs
   12.24 -     id="defs4">
   12.25 -    <marker
   12.26 -       inkscape:stockid="StopL"
   12.27 -       orient="auto"
   12.28 -       refY="0"
   12.29 -       refX="0"
   12.30 -       id="StopL"
   12.31 -       style="overflow:visible">
   12.32 -      <path
   12.33 -         id="path10015"
   12.34 -         d="M 0,5.65 0,-5.65"
   12.35 -         style="fill:none;stroke:#000000;stroke-width:1pt"
   12.36 -         transform="scale(0.8,0.8)"
   12.37 -         inkscape:connector-curvature="0" />
   12.38 -    </marker>
   12.39 -    <marker
   12.40 -       inkscape:stockid="TriangleOutL"
   12.41 -       orient="auto"
   12.42 -       refY="0"
   12.43 -       refX="0"
   12.44 -       id="TriangleOutL"
   12.45 -       style="overflow:visible">
   12.46 -      <path
   12.47 -         id="path9988"
   12.48 -         d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
   12.49 -         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
   12.50 -         transform="scale(0.8,0.8)"
   12.51 -         inkscape:connector-curvature="0" />
   12.52 -    </marker>
   12.53 -    <marker
   12.54 -       inkscape:stockid="Arrow2Mstart"
   12.55 -       orient="auto"
   12.56 -       refY="0"
   12.57 -       refX="0"
   12.58 -       id="Arrow2Mstart"
   12.59 -       style="overflow:visible">
   12.60 -      <path
   12.61 -         id="path5492"
   12.62 -         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   12.63 -         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   12.64 -         transform="scale(0.6,0.6)"
   12.65 -         inkscape:connector-curvature="0" />
   12.66 -    </marker>
   12.67 -    <marker
   12.68 -       inkscape:stockid="Arrow2Mend"
   12.69 -       orient="auto"
   12.70 -       refY="0"
   12.71 -       refX="0"
   12.72 -       id="Arrow2Mend"
   12.73 -       style="overflow:visible">
   12.74 -      <path
   12.75 -         id="path3563"
   12.76 -         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
   12.77 -         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
   12.78 -         transform="scale(-0.6,-0.6)"
   12.79 -         inkscape:connector-curvature="0" />
   12.80 -    </marker>
   12.81 -    <marker
   12.82 -       inkscape:stockid="TriangleOutM"
   12.83 -       orient="auto"
   12.84 -       refY="0"
   12.85 -       refX="0"
   12.86 -       id="TriangleOutM"
   12.87 -       style="overflow:visible">
   12.88 -      <path
   12.89 -         id="path3682"
   12.90 -         d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
   12.91 -         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
   12.92 -         transform="scale(0.4,0.4)"
   12.93 -         inkscape:connector-curvature="0" />
   12.94 -    </marker>
   12.95 -    <marker
   12.96 -       inkscape:stockid="Arrow2Lend"
   12.97 -       orient="auto"
   12.98 -       refY="0"
   12.99 -       refX="0"
  12.100 -       id="Arrow2Lend"
  12.101 -       style="overflow:visible">
  12.102 -      <path
  12.103 -         id="path3557"
  12.104 -         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
  12.105 -         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
  12.106 -         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
  12.107 -         inkscape:connector-curvature="0" />
  12.108 -    </marker>
  12.109 -    <marker
  12.110 -       inkscape:stockid="Arrow1Mstart"
  12.111 -       orient="auto"
  12.112 -       refY="0"
  12.113 -       refX="0"
  12.114 -       id="Arrow1Mstart"
  12.115 -       style="overflow:visible">
  12.116 -      <path
  12.117 -         id="path3542"
  12.118 -         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
  12.119 -         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
  12.120 -         transform="matrix(0.4,0,0,0.4,4,0)"
  12.121 -         inkscape:connector-curvature="0" />
  12.122 -    </marker>
  12.123 -    <marker
  12.124 -       inkscape:stockid="Arrow1Lend"
  12.125 -       orient="auto"
  12.126 -       refY="0"
  12.127 -       refX="0"
  12.128 -       id="Arrow1Lend"
  12.129 -       style="overflow:visible">
  12.130 -      <path
  12.131 -         id="path3539"
  12.132 -         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
  12.133 -         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
  12.134 -         transform="matrix(-0.8,0,0,-0.8,-10,0)"
  12.135 -         inkscape:connector-curvature="0" />
  12.136 -    </marker>
  12.137 -    <marker
  12.138 -       inkscape:stockid="Arrow1Lstart"
  12.139 -       orient="auto"
  12.140 -       refY="0"
  12.141 -       refX="0"
  12.142 -       id="Arrow1Lstart"
  12.143 -       style="overflow:visible">
  12.144 -      <path
  12.145 -         id="path3536"
  12.146 -         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
  12.147 -         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
  12.148 -         transform="matrix(0.8,0,0,0.8,10,0)"
  12.149 -         inkscape:connector-curvature="0" />
  12.150 -    </marker>
  12.151 -    <inkscape:perspective
  12.152 -       sodipodi:type="inkscape:persp3d"
  12.153 -       inkscape:vp_x="0 : 526.18109 : 1"
  12.154 -       inkscape:vp_y="0 : 1000 : 0"
  12.155 -       inkscape:vp_z="744.09448 : 526.18109 : 1"
  12.156 -       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
  12.157 -       id="perspective10" />
  12.158 -    <inkscape:perspective
  12.159 -       id="perspective4311"
  12.160 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.161 -       inkscape:vp_z="1 : 0.5 : 1"
  12.162 -       inkscape:vp_y="0 : 1000 : 0"
  12.163 -       inkscape:vp_x="0 : 0.5 : 1"
  12.164 -       sodipodi:type="inkscape:persp3d" />
  12.165 -    <inkscape:perspective
  12.166 -       id="perspective4336"
  12.167 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.168 -       inkscape:vp_z="1 : 0.5 : 1"
  12.169 -       inkscape:vp_y="0 : 1000 : 0"
  12.170 -       inkscape:vp_x="0 : 0.5 : 1"
  12.171 -       sodipodi:type="inkscape:persp3d" />
  12.172 -    <inkscape:perspective
  12.173 -       id="perspective4365"
  12.174 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.175 -       inkscape:vp_z="1 : 0.5 : 1"
  12.176 -       inkscape:vp_y="0 : 1000 : 0"
  12.177 -       inkscape:vp_x="0 : 0.5 : 1"
  12.178 -       sodipodi:type="inkscape:persp3d" />
  12.179 -    <marker
  12.180 -       inkscape:stockid="Arrow2Mend"
  12.181 -       orient="auto"
  12.182 -       refY="0"
  12.183 -       refX="0"
  12.184 -       id="Arrow2Mend-9"
  12.185 -       style="overflow:visible">
  12.186 -      <path
  12.187 -         id="path3563-4"
  12.188 -         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
  12.189 -         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
  12.190 -         transform="scale(-0.6,-0.6)"
  12.191 -         inkscape:connector-curvature="0" />
  12.192 -    </marker>
  12.193 -    <inkscape:perspective
  12.194 -       id="perspective4423"
  12.195 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.196 -       inkscape:vp_z="1 : 0.5 : 1"
  12.197 -       inkscape:vp_y="0 : 1000 : 0"
  12.198 -       inkscape:vp_x="0 : 0.5 : 1"
  12.199 -       sodipodi:type="inkscape:persp3d" />
  12.200 -    <marker
  12.201 -       inkscape:stockid="Arrow2Mend"
  12.202 -       orient="auto"
  12.203 -       refY="0"
  12.204 -       refX="0"
  12.205 -       id="Arrow2Mend-8"
  12.206 -       style="overflow:visible">
  12.207 -      <path
  12.208 -         id="path3563-2"
  12.209 -         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
  12.210 -         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
  12.211 -         transform="scale(-0.6,-0.6)"
  12.212 -         inkscape:connector-curvature="0" />
  12.213 -    </marker>
  12.214 -    <inkscape:perspective
  12.215 -       id="perspective4461"
  12.216 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.217 -       inkscape:vp_z="1 : 0.5 : 1"
  12.218 -       inkscape:vp_y="0 : 1000 : 0"
  12.219 -       inkscape:vp_x="0 : 0.5 : 1"
  12.220 -       sodipodi:type="inkscape:persp3d" />
  12.221 -    <inkscape:perspective
  12.222 -       id="perspective14081"
  12.223 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.224 -       inkscape:vp_z="1 : 0.5 : 1"
  12.225 -       inkscape:vp_y="0 : 1000 : 0"
  12.226 -       inkscape:vp_x="0 : 0.5 : 1"
  12.227 -       sodipodi:type="inkscape:persp3d" />
  12.228 -    <inkscape:perspective
  12.229 -       id="perspective14206"
  12.230 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.231 -       inkscape:vp_z="1 : 0.5 : 1"
  12.232 -       inkscape:vp_y="0 : 1000 : 0"
  12.233 -       inkscape:vp_x="0 : 0.5 : 1"
  12.234 -       sodipodi:type="inkscape:persp3d" />
  12.235 -    <inkscape:perspective
  12.236 -       id="perspective14299"
  12.237 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.238 -       inkscape:vp_z="1 : 0.5 : 1"
  12.239 -       inkscape:vp_y="0 : 1000 : 0"
  12.240 -       inkscape:vp_x="0 : 0.5 : 1"
  12.241 -       sodipodi:type="inkscape:persp3d" />
  12.242 -    <inkscape:perspective
  12.243 -       id="perspective16915"
  12.244 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.245 -       inkscape:vp_z="1 : 0.5 : 1"
  12.246 -       inkscape:vp_y="0 : 1000 : 0"
  12.247 -       inkscape:vp_x="0 : 0.5 : 1"
  12.248 -       sodipodi:type="inkscape:persp3d" />
  12.249 -    <inkscape:perspective
  12.250 -       id="perspective16946"
  12.251 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.252 -       inkscape:vp_z="1 : 0.5 : 1"
  12.253 -       inkscape:vp_y="0 : 1000 : 0"
  12.254 -       inkscape:vp_x="0 : 0.5 : 1"
  12.255 -       sodipodi:type="inkscape:persp3d" />
  12.256 -    <inkscape:perspective
  12.257 -       id="perspective17789"
  12.258 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.259 -       inkscape:vp_z="1 : 0.5 : 1"
  12.260 -       inkscape:vp_y="0 : 1000 : 0"
  12.261 -       inkscape:vp_x="0 : 0.5 : 1"
  12.262 -       sodipodi:type="inkscape:persp3d" />
  12.263 -    <inkscape:perspective
  12.264 -       id="perspective17820"
  12.265 -       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
  12.266 -       inkscape:vp_z="1 : 0.5 : 1"
  12.267 -       inkscape:vp_y="0 : 1000 : 0"
  12.268 -       inkscape:vp_x="0 : 0.5 : 1"
  12.269 -       sodipodi:type="inkscape:persp3d" />
  12.270 -    <marker
  12.271 -       inkscape:stockid="Arrow2Mend"
  12.272