Joeri Exelmans 5 anni fa
commit
116a8e5500
100 ha cambiato i file con 7890 aggiunte e 0 eliminazioni
  1. 13 0
      00-Abstract.tex
  2. 5 0
      00-Acknowledgements.tex
  3. 19 0
      00-NedSamenvatting.tex
  4. 4 0
      00-Preface.tex
  5. 30 0
      01-Introduction.tex
  6. 864 0
      02-Background.tex
  7. 3 0
      03-SemanticOptions.tex
  8. 1405 0
      04-Implementation.tex
  9. 609 0
      05-Evaluation.tex
  10. 7 0
      98-RelatedWork.tex
  11. 6 0
      99-Conclusion.tex
  12. 149 0
      AA-Testcode.tex
  13. 137 0
      MasterThesis.tex
  14. 2122 0
      algorithm2e.sty
  15. 302 0
      appendix.sty
  16. 897 0
      comp.sty
  17. 683 0
      fncychap.sty
  18. 1 0
      images/CD_Branches.drawio
  19. BIN
      images/CD_Branches.pdf
  20. 1 0
      images/CD_Controller.drawio
  21. BIN
      images/CD_Controller.pdf
  22. 1 0
      images/CD_Expression.drawio
  23. BIN
      images/CD_Expression.pdf
  24. BIN
      images/CD_Expression2.pdf
  25. 1 0
      images/CD_Round.drawio
  26. BIN
      images/CD_Round.pdf
  27. 1 0
      images/CD_SCCDType.drawio
  28. BIN
      images/CD_SCCDType.pdf
  29. 1 0
      images/CD_Statement.drawio
  30. BIN
      images/CD_Statement.pdf
  31. BIN
      images/CD_Statement2.pdf
  32. 1 0
      images/CD_action_language_other.drawio
  33. 1 0
      images/CD_controller_eventloop.drawio
  34. BIN
      images/CD_controller_eventloop.pdf
  35. BIN
      images/CD_evaluation_execution.pdf
  36. BIN
      images/CD_funcdecl_scope.pdf
  37. 1 0
      images/CD_memory_snapshot.drawio
  38. BIN
      images/CD_memory_snapshot.pdf
  39. 1 0
      images/CD_old_controller_platforms.drawio
  40. BIN
      images/CD_old_controller_platforms.pdf
  41. 3 0
      images/CD_old_controller_platforms.svg
  42. BIN
      images/CD_old_controller_platforms2.pdf
  43. 1 0
      images/CD_state.drawio
  44. BIN
      images/CD_state.pdf
  45. 1 0
      images/CD_statechart.drawio
  46. BIN
      images/CD_statechart.pdf
  47. BIN
      images/CD_static_analysis.pdf
  48. 1 0
      images/CD_y=2x.drawio
  49. BIN
      images/CD_y=2x.pdf
  50. BIN
      images/SEQ_y=2x.pdf
  51. BIN
      images/SEQ_y=2x_2.pdf
  52. BIN
      images/UA-LogoText.png
  53. BIN
      images/UA-LogoTextC.png
  54. BIN
      images/ansymo_logo.pdf
  55. BIN
      images/ansymo_logo_medium.png
  56. 1 0
      images/big_step.drawio
  57. BIN
      images/big_step.pdf
  58. 1 0
      images/big_step_maximality.drawio
  59. BIN
      images/big_step_maximality.pdf
  60. 1 0
      images/cd_parse_rules.drawio
  61. BIN
      images/cd_parse_rules.pdf
  62. BIN
      images/chatclient.png
  63. 1 0
      images/checkpoint.drawio
  64. BIN
      images/checkpoint.pdf
  65. 1 0
      images/controller_int_timestamps.drawio
  66. BIN
      images/controller_int_timestamps.pdf
  67. 1 0
      images/cross_ortho_trans.drawio
  68. BIN
      images/cross_ortho_trans.pdf
  69. BIN
      images/dwatch.png
  70. 1 0
      images/dwatch_semantics.drawio
  71. BIN
      images/dwatch_semantics.pdf
  72. 1 0
      images/enter_exit_set.drawio
  73. BIN
      images/enter_exit_set.pdf
  74. BIN
      images/event_lifeline.pdf
  75. 1 0
      images/history.drawio
  76. BIN
      images/history.pdf
  77. BIN
      images/interrupt1.pdf
  78. BIN
      images/interrupt2.pdf
  79. 1 0
      images/late_long.drawio
  80. BIN
      images/late_long.pdf
  81. 1 0
      images/light.drawio
  82. BIN
      images/light_blink_flat.pdf
  83. BIN
      images/light_enterexit.pdf
  84. BIN
      images/light_flat.pdf
  85. BIN
      images/light_hierarchy.pdf
  86. BIN
      images/light_onoff.pdf
  87. BIN
      images/lore.png
  88. 1 0
      images/memory_protocol.drawio
  89. BIN
      images/memory_protocol.pdf
  90. BIN
      images/original SCCD.pdf
  91. 603 0
      images/original SCCD.svg
  92. BIN
      images/original_sccd_features.pdf
  93. 1 0
      images/package_dependencies.drawio
  94. 1 0
      images/package_dependencies_nolabel.drawio
  95. BIN
      images/package_dependencies_nolabel.pdf
  96. 1 0
      images/parser_analysis_execution.drawio
  97. BIN
      images/parser_analysis_execution.pdf
  98. BIN
      images/platforms.pdf
  99. 1 0
      images/priority_example.drawio
  100. 0 0
      images/priority_example.pdf

File diff suppressed because it is too large
+ 13 - 0
00-Abstract.tex


+ 5 - 0
00-Acknowledgements.tex

@@ -0,0 +1,5 @@
+\clearpage 
+\phantomsection 
+\addcontentsline{toc}{chapter}{Acknowledgements}
+\chapter*{Acknowledgements}
+

File diff suppressed because it is too large
+ 19 - 0
00-NedSamenvatting.tex


+ 4 - 0
00-Preface.tex

@@ -0,0 +1,4 @@
+\chapter*{Preface}
+\addcontentsline{toc}{chapter}{Preface}
+
+The preface can give some extra information about how and why this thesis was written, and can include acknowledments.

File diff suppressed because it is too large
+ 30 - 0
01-Introduction.tex


File diff suppressed because it is too large
+ 864 - 0
02-Background.tex


+ 3 - 0
03-SemanticOptions.tex

@@ -0,0 +1,3 @@
+\chapter{Semantic Options for Statecharts}
+\label{chapt:SemanticOptions}
+

File diff suppressed because it is too large
+ 1405 - 0
04-Implementation.tex


File diff suppressed because it is too large
+ 609 - 0
05-Evaluation.tex


File diff suppressed because it is too large
+ 7 - 0
98-RelatedWork.tex


File diff suppressed because it is too large
+ 6 - 0
99-Conclusion.tex


+ 149 - 0
AA-Testcode.tex

@@ -0,0 +1,149 @@
+\chapter{Action language grammar}
+\label{chapt:grammar}
+
+The following is the grammar file used by the action language. It is meant for the Lark\cite{Erez2020Lark} parser library.
+\lstset{basicstyle=\ttfamily\footnotesize,breaklines=true}
+\begin{lstlisting}
+%import common.WS
+%ignore WS
+%import common.ESCAPED_STRING
+
+
+// Expression parsing
+
+// We use the same operators and operator precedence rules as Python
+
+?expr: or_expr
+
+?or_expr: and_expr
+        | or_expr OR and_expr    -> binary_expr
+
+?and_expr: not_expr
+         | and_expr AND not_expr  -> binary_expr
+
+?not_expr: comp_expr
+         | NOT comp_expr           -> unary_expr
+
+?comp_expr: add_expr
+          | comp_expr compare_operator add_expr -> binary_expr
+
+?add_expr: mult_expr
+         | add_expr add_operator mult_expr -> binary_expr
+
+?mult_expr: unary
+          | mult_expr mult_operator unary -> binary_expr
+
+?unary: exponent
+      | MINUS exponent  -> unary_expr
+
+?exponent: atom
+         | atom EXP exponent -> binary_expr
+
+?atom: IDENTIFIER               -> identifier
+     | "(" expr ")"             -> group
+     | literal
+     | func_call
+     | func_decl
+     | array
+
+IDENTIFIER: /[A-Za-z_][A-Za-z_0-9]*/ 
+
+func_call: atom "(" param_list ")"
+param_list: ( expr ("," expr)* )?  -> params
+
+func_decl: "func" params_decl stmt
+params_decl: ( "(" param_decl ("," param_decl)* ")" )?
+?param_decl: IDENTIFIER ":" type_annot
+type_annot: TYPE_INT | TYPE_STR | TYPE_DUR | TYPE_FLOAT
+          | "func" param_types? return_type? -> func_type
+
+param_types: "(" type_annot ( "," type_annot )* ")"
+?return_type: "->" type_annot
+
+TYPE_INT: "int"
+TYPE_STR: "str"
+TYPE_DUR: "dur"
+TYPE_FLOAT: "float"
+
+array: "[" (expr ("," expr)*)? "]"
+
+?literal: ESCAPED_STRING -> string_literal
+        | INT -> int_literal
+        | FLOAT -> float_literal
+        | bool_literal
+        | duration_literal
+
+?compare_operator: EQ | NEQ | GT | GEQ | LT | LEQ
+?add_operator: PLUS | MINUS
+?mult_operator: MULT | DIV | FLOORDIV | MOD
+
+AND: "and"
+OR: "or"
+EQ: "=="
+NEQ: "!="
+GT: ">"
+GEQ: ">="
+LT: "<"
+LEQ: "<="
+PLUS: "+"
+MINUS: "-"
+MULT: "*"
+DIV: "/"
+FLOORDIV: "//"
+MOD: "%"
+EXP: "**"
+NOT: "not"
+
+bool_literal: TRUE | FALSE
+
+TRUE: "True"
+FALSE: "False"
+
+INT: /[0-9]+/
+FLOAT: /[0-9]+\.[0-9]*/
+
+duration_literal: (INT duration_unit)+
+
+?duration_unit: TIME_H | TIME_M | TIME_S | TIME_MS | TIME_US | TIME_NS | TIME_PS | TIME_FS | TIME_D
+
+TIME_H: "h"
+TIME_M: "m"
+TIME_S: "s"
+TIME_MS: "ms"
+TIME_US: "us"
+TIME_NS: "ns"
+TIME_PS: "ps"
+TIME_FS: "fs"
+
+TIME_D: "d" // for zero-duration
+
+
+// Statement parsing
+
+?block: (stmt)*
+
+?stmt: assignment ";"
+     | expr ";" -> expression_stmt
+     | "return" expr ";" -> return_stmt
+     | "{" block "}" -> block
+     | "if" "(" expr ")" stmt ("else" stmt)? -> if_stmt
+
+assignment: lhs assign_operator expr
+
+increment: lhs "+=" expr
+
+?lhs: IDENTIFIER -> identifier
+
+?assign_operator: ASSIGN | INCREMENT | DECREMENT | MULTIPLY | DIVIDE
+
+ASSIGN: "="
+INCREMENT: "+="
+DECREMENT: "-="
+MULTIPLY: "*="
+DIVIDE: "/="
+FLOORDIVIDE: "//="
+
+COMMENT: "#" /(.)*/ "\n"
+%ignore COMMENT
+
+\end{lstlisting}

+ 137 - 0
MasterThesis.tex

@@ -0,0 +1,137 @@
+\documentclass[a4paper,12pt]{report}
+
+\usepackage[masterthesis,english]{comp}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{A Study and Implementation of Semantic Variability in Statecharts}
+\author{Joeri Exelmans}
+\principaladviser{Hans Vangheluwe}
+\assistantadviser{Simon Van Mierlo}
+\submitdate{August 2020}
+\bibfile{references}
+\bibpunct{[}{]}{;}{a}{,}{,}
+% \bibliographystyle{alpha}
+\setcitestyle{numbers} % this fixes build error
+
+
+\usepackage{svg}
+\graphicspath{ {images/} }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Python syntax highlighting
+% from https://tex.stackexchange.com/questions/83882/how-to-highlight-python-syntax-in-latex-listings-lstinputlistings-command
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Default fixed font does not support bold face
+\DeclareFixedFont{\ttb}{T1}{txtt}{bx}{n}{10} % for bold
+\DeclareFixedFont{\ttm}{T1}{txtt}{m}{n}{10}  % for normal
+
+% Custom colors
+\usepackage{color}
+\definecolor{deepblue}{rgb}{0,0,0.5}
+\definecolor{deepred}{rgb}{0.6,0,0}
+\definecolor{deepgreen}{rgb}{0,0.5,0}
+
+\usepackage{subcaption}
+\usepackage{tabularx}
+\usepackage{pdflscape}
+
+\definecolor{myblue}{RGB}{0, 0, 204}
+\definecolor{mygreen}{RGB}{0, 102, 0}
+
+\usepackage{listings}
+
+\lstset{frame=tb}
+
+\lstset{basicstyle=\ttfamily\footnotesize,breaklines=true}
+
+% Python style for highlighting
+\newcommand\pythonstyle{\lstset{
+language=Python,
+basicstyle=\ttm,
+otherkeywords={self},             % Add keywords here
+keywordstyle=\ttb\color{deepblue},
+emph={MyClass,__init__},          % Custom highlighting
+emphstyle=\ttb\color{deepred},    % Custom highlighting style
+stringstyle=\color{deepgreen},
+frame=tb,                         % Any extra options here
+showstringspaces=false            % 
+}}
+
+
+% Python environment
+\lstnewenvironment{python}[1][]
+{
+\pythonstyle
+\lstset{#1}
+}
+{}
+
+% Python for external files
+\newcommand\pythonexternal[2][]{{
+\pythonstyle
+\lstinputlisting[#1]{#2}}}
+
+% Python for inline
+\newcommand\pythoninline[1]{{\pythonstyle\lstinline!#1!}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+% Make hyperref package use black links
+\hypersetup{
+	pdfauthor={Joeri Exelmans},
+	pdftitle={A Study and Implementation of Semantic Variability in Statecharts},
+	pdfkeywords={statecharts},
+    colorlinks,
+    citecolor=black,
+    filecolor=black,
+    linkcolor=black,
+    urlcolor=black
+}
+
+%correct faulty hyphenation here, most useful for "nederlandstalige samenvatting" as english is hyphenated automatically
+\hyphenation{die-nen}
+
+% Make sure links to images link correctly to the image and not the text
+\usepackage[all]{hypcap}
+
+%TODO COMMANDS
+\newcommand{\todo}[1]{
+	\addcontentsline{tdo}{todo}{\protect{#1}}
+    \textcolor{blue}{TODO: #1} %\marginpar{#1}
+}
+
+\makeatletter \newcommand \listoftodos{\section*{Todo list} \@starttoc{tdo}}
+  \newcommand\l@todo[2]
+    {\par\noindent \textit{#2}, \parbox{14cm}{#1}\par} \makeatother
+
+%Make sure that subenumerations are also numbered and referenced correctly
+\renewcommand{\theenumii}{.\arabic{enumii}}
+\renewcommand{\labelenumii}{\labelenumi\arabic{enumii}}
+
+\usepackage{url}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+%\listoftodos
+%\newpage
+\frontpages
+\input{00-Abstract}
+\input{00-NedSamenvatting}
+\input{00-Acknowledgements}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mainbodypages
+\input{01-Introduction}
+\input{02-Background}
+% \input{03-SemanticOptions}
+\input{04-Implementation}
+\input{05-Evaluation}
+\input{98-RelatedWork}
+\input{99-Conclusion}
+\backpages
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{appendices}
+\input{AA-Testcode}
+\end{appendices}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\end{document}

File diff suppressed because it is too large
+ 2122 - 0
algorithm2e.sty


+ 302 - 0
appendix.sty

@@ -0,0 +1,302 @@
+%%
+%% This is file `appendix.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% appendix.dtx  (with options: `usc')
+%% 
+%% -----------------------------------------------------------------
+%%   Author: Peter Wilson (CUA) now at peter.r.wilson@boeing.com until June 2004
+%%                              (or at: pandgwilson at earthlink dot net)
+%%   Copyright 1998 --- 2004 Peter R. Wilson
+%% 
+%%   This work may be distributed and/or modified under the
+%%   conditions of the LaTeX Project Public License, either
+%%   version 1.3 of this license or (at your option) any
+%%   later version.
+%%   The latest version of the license is in
+%%      http://www.latex-project.org/lppl.txt
+%%   and version 1.3 or later is part of all distributions of
+%%   LaTeX version 2003/06/01 or later.
+%% 
+%%   This work has the LPPL maintenance status "author-maintained".
+%% 
+%%   This work consists of the files listed in the README file.
+%% -----------------------------------------------------------------
+%% 
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{appendix}[2002/08/06 v1.2 extra appendix facilities]
+
+\newif\if@chapter@pp\@chapter@ppfalse
+\newif\if@knownclass@pp\@knownclass@ppfalse
+\@ifundefined{chapter}{%
+  \@ifundefined{section}{}{\@knownclass@pptrue}}{%
+  \@chapter@pptrue\@knownclass@pptrue}
+\providecommand{\phantomsection}{}
+\newcounter{@pps}
+  \renewcommand{\the@pps}{\alph{@pps}}
+\newif\if@pphyper
+  \@pphyperfalse
+\AtBeginDocument{%
+  \@ifpackageloaded{hyperref}{\@pphypertrue}{}}
+
+\newif\if@dotoc@pp\@dotoc@ppfalse
+\newif\if@dotitle@pp\@dotitle@ppfalse
+\newif\if@dotitletoc@pp\@dotitletoc@ppfalse
+\newif\if@dohead@pp\@dohead@ppfalse
+\newif\if@dopage@pp\@dopage@ppfalse
+\DeclareOption{toc}{\@dotoc@pptrue}
+\DeclareOption{title}{\@dotitle@pptrue}
+\DeclareOption{titletoc}{\@dotitletoc@pptrue}
+\DeclareOption{header}{\@dohead@pptrue}
+\DeclareOption{page}{\@dopage@pptrue}
+\ProcessOptions\relax
+\newcommand{\@ppendinput}{}
+\if@knownclass@pp\else
+  \PackageWarningNoLine{appendix}%
+    {There is no \protect\chapter\space or \protect\section\space command.\MessageBreak
+     The appendix package will not be used}
+  \renewcommand{\@ppendinput}{\endinput}
+\fi
+\@ppendinput
+
+\newcommand{\appendixtocon}{\@dotoc@pptrue}
+\newcommand{\appendixtocoff}{\@dotoc@ppfalse}
+\newcommand{\appendixpageon}{\@dopage@pptrue}
+\newcommand{\appendixpageoff}{\@dopage@ppfalse}
+\newcommand{\appendixtitleon}{\@dotitle@pptrue}
+\newcommand{\appendixtitleoff}{\@dotitle@ppfalse}
+\newcommand{\appendixtitletocon}{\@dotitletoc@pptrue}
+\newcommand{\appendixtitletocoff}{\@dotitletoc@ppfalse}
+\newcommand{\appendixheaderon}{\@dohead@pptrue}
+\newcommand{\appendixheaderoff}{\@dohead@ppfalse}
+\newcounter{@ppsavesec}
+\newcounter{@ppsaveapp}
+\setcounter{@ppsaveapp}{0}
+\newcommand{\@ppsavesec}{%
+  \if@chapter@pp \setcounter{@ppsavesec}{\value{chapter}} \else
+                 \setcounter{@ppsavesec}{\value{section}} \fi}
+\newcommand{\@pprestoresec}{%
+  \if@chapter@pp \setcounter{chapter}{\value{@ppsavesec}} \else
+                 \setcounter{section}{\value{@ppsavesec}} \fi}
+\newcommand{\@ppsaveapp}{%
+  \if@chapter@pp \setcounter{@ppsaveapp}{\value{chapter}} \else
+                 \setcounter{@ppsaveapp}{\value{section}} \fi}
+\newcommand{\restoreapp}{%
+  \if@chapter@pp \setcounter{chapter}{\value{@ppsaveapp}} \else
+                 \setcounter{section}{\value{@ppsaveapp}} \fi}
+\providecommand{\appendixname}{Appendix}
+\newcommand{\appendixtocname}{Appendices}
+\newcommand{\appendixpagename}{Appendices}
+\newcommand{\appendixpage}{%
+  \if@chapter@pp \@chap@pppage \else \@sec@pppage \fi
+}
+\newcommand{\clear@ppage}{%
+  \if@openright\cleardoublepage\else\clearpage\fi}
+
+\newcommand{\@chap@pppage}{%
+  \clear@ppage
+  \thispagestyle{plain}%
+  \if@twocolumn\onecolumn\@tempswatrue\else\@tempswafalse\fi
+  \null\vfil
+  \markboth{}{}%
+  {\centering
+   \interlinepenalty \@M
+   \normalfont
+   \Huge \bfseries \appendixpagename\par}%
+  \if@dotoc@pp
+    \addappheadtotoc
+  \fi
+  \vfil\newpage
+  \if@twoside
+    \if@openright
+      \null
+      \thispagestyle{empty}%
+      \newpage
+    \fi
+  \fi
+  \if@tempswa
+    \twocolumn
+  \fi
+}
+
+\newcommand{\@sec@pppage}{%
+  \par
+  \addvspace{4ex}%
+  \@afterindentfalse
+  {\parindent \z@ \raggedright
+   \interlinepenalty \@M
+   \normalfont
+   \huge \bfseries \appendixpagename%
+   \markboth{}{}\par}%
+  \if@dotoc@pp
+    \addappheadtotoc
+  \fi
+  \nobreak
+  \vskip 3ex
+  \@afterheading
+}
+
+\newif\if@pptocpage
+  \@pptocpagetrue
+\newcommand{\noappendicestocpagenum}{\@pptocpagefalse}
+\newcommand{\appendicestocpagenum}{\@pptocpagetrue}
+\newcommand{\addappheadtotoc}{%
+  \phantomsection
+  \if@chapter@pp
+    \if@pptocpage
+      \addcontentsline{toc}{chapter}{\appendixtocname}%
+    \else
+      \if@pphyper
+        \addtocontents{toc}%
+          {\protect\contentsline{chapter}{\appendixtocname}{}{\@currentHref}}%
+      \else
+        \addtocontents{toc}%
+          {\protect\contentsline{chapter}{\appendixtocname}{}}%
+      \fi
+    \fi
+  \else
+    \if@pptocpage
+      \addcontentsline{toc}{section}{\appendixtocname}%
+    \else
+      \if@pphyper
+        \addtocontents{toc}%
+          {\protect\contentsline{section}{\appendixtocname}{}{\@currentHref}}%
+      \else
+        \addtocontents{toc}%
+          {\protect\contentsline{section}{\appendixtocname}{}}%
+      \fi
+    \fi
+  \fi
+}
+
+\providecommand{\theH@pps}{\alph{@pps}}
+
+\newcommand{\@resets@pp}{\par
+  \@ppsavesec
+  \stepcounter{@pps}
+  \setcounter{section}{0}%
+  \if@chapter@pp
+    \setcounter{chapter}{0}%
+    \renewcommand\@chapapp{\appendixname}%
+    \renewcommand\thechapter{\@Alph\c@chapter}%
+  \else
+    \setcounter{subsection}{0}%
+    \renewcommand\thesection{\@Alph\c@section}%
+  \fi
+  \if@pphyper
+    \if@chapter@pp
+      \renewcommand{\theHchapter}{\theH@pps.\Alph{chapter}}%
+    \else
+      \renewcommand{\theHsection}{\theH@pps.\Alph{section}}%
+    \fi
+    \def\Hy@chapapp{\appendixname}%
+  \fi
+  \restoreapp
+}
+
+\newenvironment{appendices}{%
+  \@resets@pp
+  \if@dotoc@pp
+    \if@dopage@pp              % both page and toc
+      \if@chapter@pp           % chapters
+        \clear@ppage
+      \fi
+      \appendixpage
+    \else                      % toc only
+       \if@chapter@pp          % chapters
+         \clear@ppage
+       \fi
+      \addappheadtotoc
+    \fi
+  \else
+    \if@dopage@pp              % page only
+      \appendixpage
+    \fi
+  \fi
+  \if@chapter@pp
+    \if@dotitletoc@pp \@redotocentry@pp{chapter} \fi
+  \else
+    \if@dotitletoc@pp \@redotocentry@pp{section} \fi
+    \if@dohead@pp
+      \def\sectionmark##1{%
+        \if@twoside
+          \markboth{\@formatsecmark@pp{##1}}{}
+        \else
+          \markright{\@formatsecmark@pp{##1}}{}
+        \fi}
+    \fi
+    \if@dotitle@pp
+      \def\sectionname{\appendixname}
+      \def\@seccntformat##1{\@ifundefined{##1name}{}{\csname ##1name\endcsname\ }%
+        \csname the##1\endcsname\quad}
+    \fi
+  \fi}{%
+  \@ppsaveapp\@pprestoresec}
+
+\newcommand{\setthesection}{\thechapter.\Alph{section}}
+\newcommand{\setthesubsection}{\thesection.\Alph{subsection}}
+
+\newcommand{\@resets@ppsub}{\par
+  \stepcounter{@pps}
+  \if@chapter@pp
+    \setcounter{section}{0}
+    \renewcommand{\thesection}{\setthesection}
+  \else
+    \setcounter{subsection}{0}
+    \renewcommand{\thesubsection}{\setthesubsection}
+  \fi
+  \if@pphyper
+    \if@chapter@pp
+      \renewcommand{\theHsection}{\theH@pps.\setthesection}%
+    \else
+      \renewcommand{\theHsubsection}{\theH@pps.\setthesubsection}%
+    \fi
+    \def\Hy@chapapp{\appendixname}%
+  \fi
+}
+
+\newenvironment{subappendices}{%
+  \@resets@ppsub
+  \if@chapter@pp
+    \if@dotitletoc@pp \@redotocentry@pp{section} \fi
+    \if@dotitle@pp
+      \def\sectionname{\appendixname}
+      \def\@seccntformat##1{\@ifundefined{##1name}{}{\csname ##1name\endcsname\ }%
+        \csname the##1\endcsname\quad}
+    \fi
+  \else
+    \if@dotitletoc@pp \@redotocentry@pp{subsection} \fi
+    \if@dotitle@pp
+      \def\subsectionname{\appendixname}
+      \def\@seccntformat##1{\@ifundefined{##1name}{}{\csname ##1name\endcsname\ }%
+        \csname the##1\endcsname\quad}
+    \fi
+  \fi}{}
+
+\newcommand{\@formatsecmark@pp}[1]{%
+  \MakeUppercase{\appendixname\space
+    \ifnum \c@secnumdepth >\z@
+      \thesection\quad
+    \fi
+    #1}}
+\newcommand{\@redotocentry@pp}[1]{%
+  \let\oldacl@pp=\addcontentsline
+  \def\addcontentsline##1##2##3{%
+    \def\@pptempa{##1}\def\@pptempb{toc}%
+    \ifx\@pptempa\@pptempb
+      \def\@pptempa{##2}\def\@pptempb{#1}%
+      \ifx\@pptempa\@pptempb
+\oldacl@pp{##1}{##2}{\appendixname\space ##3}%
+      \else
+        \oldacl@pp{##1}{##2}{##3}%
+      \fi
+    \else
+      \oldacl@pp{##1}{##2}{##3}%
+    \fi}
+}
+
+\endinput
+%%
+%% End of file `appendix.sty'.

+ 897 - 0
comp.sty

@@ -0,0 +1,897 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%  IDENTIFICATION
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesPackage{comp}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%   SETUP MACROS AND SWITCHES
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@title{}
+\def\@author{}
+
+\def\titlepageblurb#1{\gdef\@titlepageblurb{#1}}
+\def\principaladviser#1{\gdef\@principaladviser{#1}}
+\def\@principaladviser{*}
+\def\coprincipaladviser#1{\gdef\@coprincipaladviser{#1}}
+\def\@coprincipaladviser{*}
+\def\assistantadviser#1{\gdef\@assistantadviser{#1}}
+\def\@assistantadviser{*}
+\def\submitdate#1{\gdef\@submitdate{#1}}
+\def\copyrightyear#1{\gdef\@copyrightyear{#1}} 
+\def\@copyrightyear{\number\the\year}
+\def\reportnumber#1{\gdef\@reportnumber{#1}}
+%\def\tocdepthvalue#1{\gdef\@tocdepthvalue{#1}}
+%\def\secnumdepthvalue#1{\gdef\@secnumdepthvalue{#1}}
+\def\@tocdepthvalue{}
+\def\@secnumdepthvalue{}
+
+\def\bibfile#1{\gdef\@bibfile{#1}}
+
+\newif\ifw@ntsignature
+\newif\ifw@ntcopyright
+\newif\ifw@nttableofcontents
+\newif\ifw@ntlistoffigures
+\newif\ifw@ntlistoftables
+\newif\ifw@ntbibliography
+\newif\ifw@ntindex
+\newif\ifw@ntnumbers
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%  OPTION DECLARATION PART
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%-------------------
+%%%%  ENGLISH OPTION
+%-------------------
+\DeclareOption{english}{%
+		\PassOptionsToPackage{english}{babel}
+		%
+		\def\@submitdate{%
+				\ifcase\the\month\or
+				January\or February\or March\or April\or May\or June\or
+				July\or August\or September\or October\or November\or December\fi
+				\space \number\the\year
+		}
+		%
+		\def\@phddegree{Doctor}
+		%
+		\def\@masterdegree{Master}
+		%
+		\def\@bachelordegree{Bachelor}
+		%
+		\def\@advisername{Principal Adviser}
+		%
+		\def\@coadvisername{Principal Co-Adviser}
+		%
+		\def\@assistantadvisername{Assistant Adviser}
+		%
+		\def\@dissertationblurb{
+		   	Dissertation Submitted in \@submitdate\ to the\\
+		   	Department of Mathematics and Computer Science\\
+		   	of the Faculty of Sciences, University of Antwerp,\\
+		   	in Partial Fulfillment of the Requirements\\
+		   	for the Degree of \@thesisdegree\ of Science.
+		}
+		%
+		\def\@techreportblurb{
+		   	Technical Report \@reportnumber , submitted \@submitdate . \\
+		   	Department of Mathematics and Computer Science\\
+		   	of the Faculty of Sciences, University of Antwerp.
+		}
+		%
+		\def\@advisersblurb{%
+				\if*\@principaladviser \else
+		  			{\@advisername: \@principaladviser} \\
+		  	\fi
+		  	\if*\@coprincipaladviser \else
+		  			{\@coadvisername : \@coprincipaladviser}\\
+		  	\fi
+		  	\if*\@assistantadviser \else
+		  			{\@assistantadvisername : \@assistantadviser}\\
+		  	\fi
+		}
+		%
+		\def\@courseblurb{
+		   	\@coursedegree\ of Computer Science curriculum,\\
+		   	Faculty of Sciences, University of Antwerp.\\
+		   	Course notes for academic year \@submitdate.
+		}
+		%
+		\def\@researchgroupblurb{%
+				
+		}
+		%
+		\def\@signatureblurb{%
+				I certify that I have read this dissertation and that, 
+    		in my opinion, it is fully adequate in scope and quality as a 
+        dissertation for the degree of \@thesisdegree.
+		}
+		%
+		\def\@copyrightblurb{%
+				All rights reserved.
+		}
+}
+
+%-----------------
+%%%%  DUTCH OPTION
+%-----------------
+\DeclareOption{dutch}{%
+		\PassOptionsToPackage{dutch}{babel}
+		%
+		\def\@submitdate{%
+				\ifcase\the\month\or
+				Januari\or Februari\or Maart\or April\or Mei\or Juni\or
+				Juli\or Augustus\or September\or Oktober\or November\or December\fi
+				\space \number\the\year
+		}
+		%
+		\def\@phddegree{Doctor}
+		%
+		\def\@masterdegree{Master}
+		%
+		\def\@bachelordegree{Bachelor}
+		%
+		\def\@advisername{Promotor}
+		%
+		\def\@coadvisername{Co-Promotor}
+		%
+		\def\@assistantadvisername{Begeleider}
+		%
+		\def\@dissertationblurb{
+		   	Thesis ingediend in \@submitdate\ bij het\\
+		   	Departement Wiskunde en Informatica van de\\
+		   	Faculteit Wetenschappen, Universiteit Antwerpen,\\
+		   	ter vervulling van de vereisten voor het bekomen\\
+		   	van het Diploma van \@thesisdegree\ in de Wetenschappen.
+		   	\newline
+		}
+		%
+		\def\@advisersblurb{%
+				\if*\@principaladviser \else
+		  			{\@advisername: \@principaladviser} \\
+		  	\fi
+		  	\if*\@coprincipaladviser \else
+		  			{\@coadvisername : \@coprincipaladviser}\\
+		  	\fi
+		  	\if*\@assistantadviser \else
+		  			{\@assistantadvisername : \@assistantadviser}\\
+		  	\fi
+		}
+		%
+		\def\@courseblurb{
+		   	Opleiding \@coursedegree\ of Science in Informatica, van de\\
+		   	Faculteit Wetenschappen, Universiteit Antwerpen.\\
+		   	Nota's bij de cursus voor academiejaar \@submitdate.
+		   	\newline
+		}
+		%
+		\def\@researchgroupblurb{% 
+				
+		}
+		%
+		\def\@signatureblurb{%
+				Ik verklaar dat ik deze thesis heb gelezen en dat, naar mijn
+				mening, het werk in draagwijdte en kwaliteit beantwoordt
+				aan de vereisten voor een thesis voor het diploma van  
+    	  \@thesisdegree.
+		}
+		%
+		\def\@copyrightblurb{%
+				Alle rechten voorbehouden.
+		}
+}
+
+
+%---------------------
+%%%%  PHDTHESIS OPTION
+%---------------------
+\DeclareOption{phdthesis}{%
+   	\def\@thesisdegree{\@phddegree}
+   	\def\@titlepageblurb{\@dissertationblurb}
+   	\w@ntcopyrighttrue
+   	\w@ntsignaturetrue
+   	\w@nttableofcontentstrue
+   	\def\@tocdepthvalue{2}
+   	\w@nttableofcontentstrue
+   	\w@ntlistoffigurestrue		
+   	\w@ntlistoftablestrue
+   	%	
+   	\def\@secnumdepthvalue{2}
+   	%
+   	\w@ntbibliographytrue
+   	\w@ntindextrue		
+}
+
+
+%------------------------
+%%%%  MASTERTHESIS OPTION
+%------------------------
+\DeclareOption{masterthesis}{%
+   	\def\@thesisdegree{\@masterdegree}
+   	\def\@titlepageblurb{\@dissertationblurb}
+   	\w@ntcopyrightfalse
+   	\w@ntsignaturefalse
+   	\w@nttableofcontentstrue
+   	\def\@tocdepthvalue{2}
+   	\w@ntlistoffigurestrue		
+   	\w@ntlistoftablestrue		
+   	%	
+   	\def\@secnumdepthvalue{2}
+   	%
+   	\w@ntbibliographytrue
+   	\w@ntindexfalse		
+}
+
+
+%--------------------------
+%%%%  BACHELORTHESIS OPTION
+%--------------------------
+\DeclareOption{bachelorthesis}{%
+   	\def\@thesisdegree{\@bachelordegree}
+   	\def\@titlepageblurb{\@dissertationblurb}
+   	\w@ntsopyrightfalse
+   	\w@ntsignaturefalse
+   	\w@nttableofcontentstrue
+   	\def\@tocdepthvalue{1}
+   	\w@ntlistoffiguresfalse		
+   	\w@ntlistofoablesfalse		
+   	%	
+   	\def\@secnumdepthvalue{2}
+   	%
+   	\w@ntbibliographytrue
+   	\w@ntindexfalse		
+}
+
+%------------------------
+%%%%  MASTERCOURSE OPTION
+%------------------------
+\DeclareOption{mastercourse}{%
+   	\def\@coursedegree{\@masterdegree}
+   	\def\@titlepageblurb{\@courseblurb}
+   	\w@ntcopyrightfalse
+   	\w@ntsignaturefalse
+   	\w@nttableofcontentstrue
+   	\def\@tocdepthvalue{1}
+   	\w@ntlistoffiguresfalse		
+   	\w@ntlistoftablesfalse
+   	%	
+   	\def\@secnumdepthvalue{2}
+   	%
+   	\w@ntbibliographytrue
+   	\w@ntindexfalse		
+}
+
+%--------------------------
+%%%%  BACHELORCOURSE OPTION
+%--------------------------
+\DeclareOption{bachelorcourse}{%
+   	\def\@coursedegree{\@bachelordegree}
+   	\def\@titlepageblurb{\@courseblurb}
+   	\w@nttableofcontentstrue
+   	\w@ntcopyrightfalse
+   	\w@ntsignaturefalse
+   	\def\@tocdepthvalue{1}
+   	\w@ntlistoffiguresfalse		
+   	\w@ntlistoftablesfalse
+   	%	
+   	\def\@secnumdepthvalue{2}
+   	%
+   	\w@ntbibliographytrue
+   	\w@ntindexfalse		
+}
+
+%----------------------
+%%%%  TECHREPORT OPTION
+%----------------------
+\DeclareOption{techreport}{%
+   	\def\@titlepageblurb{\@techreportblurb}
+   	\w@nttableofcontentstrue
+   	\w@ntcopyrightfalse
+   	\w@ntsignaturefalse
+   	\def\@tocdepthvalue{1}
+   	\w@ntlistoffiguresfalse		
+   	\w@ntlistoftablesfalse
+   	%	
+   	\def\@secnumdepthvalue{2}
+   	%
+   	\w@ntbibliographytrue
+   	\w@ntindexfalse		
+}
+
+%-------------------
+%%%%  GENERIC OPTION
+%-------------------
+\DeclareOption{generic}{%
+   	\def\@titlepageblurb{}
+   	\w@nttableofcontentsfalse
+   	\w@ntcopyrightfalse
+   	\w@ntsignaturefalse
+   	\def\@tocdepthvalue{1}
+   	\w@ntlistoffiguresfalse		
+   	\w@ntlistoftablesfalse
+   	%	
+   	\def\@secnumdepthvalue{2}
+   	%
+   	\w@ntbibliographytrue
+   	\w@ntindexfalse		
+}
+
+%---------------------------------
+%%%%  COPYRIGHT/NOCOPYRIGHT OPTION
+%---------------------------------
+\DeclareOption{copyright}{%
+		\w@ntcopyrighttrue
+}
+
+\DeclareOption{nocopyright}{%
+		\w@ntcopyrightfalse
+}
+
+%---------------------------------
+%%%%  SIGNATURE/NOSIGNATURE OPTION
+%---------------------------------
+\DeclareOption{signature}{%
+		\w@ntsignaturetrue
+}
+
+\DeclareOption{nosignature}{%
+		\w@ntsignaturefalse
+}
+
+%---------------------------------
+%%%%  TABLEOFCONTENTS/NOTABLEOFCONTENTS OPTION
+%---------------------------------
+\DeclareOption{tableofcontents}{%
+		\w@nttableofcontentstrue
+}
+
+\DeclareOption{notableofcontents}{%
+		\w@nttableofcontentsfalse
+}
+
+%-----------------------------------------
+%%%%  LISTOFFIGURES/NOLISTOFFIGURES OPTION
+%-----------------------------------------
+\DeclareOption{listoffigures}{%
+		\w@ntlistoffigurestrue
+}
+
+\DeclareOption{nolistoffigures}{%
+		\w@ntlistoffiguresfalse
+}
+
+
+%---------------------------------------
+%%%%  LISTOFTABLES/NOLISTOFTABLES OPTION
+%---------------------------------------
+\DeclareOption{listoftables}{%
+		\w@ntlistoftablestrue
+}
+
+\DeclareOption{nolistoftables}{%
+		\w@ntlistoftablesfalse
+}
+
+%---------------------------------------
+%%%%  BIBLIOGRAPHY/NOBIBLIOGRAPHY OPTION
+%---------------------------------------
+\DeclareOption{bibliograpy}{%
+		\w@ntbibliographytrue
+}
+
+\DeclareOption{nobibliography}{%
+		\w@ntbibliographyfalse
+}
+
+%-------------------------
+%%%%  INDEX/NOINDEX OPTION
+%-------------------------
+\DeclareOption{index}{%
+		\makeindex
+		\w@ntindextrue
+}
+
+\DeclareOption{noindex}{%
+		\w@ntindexfalse
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%  EXECUTION OF OPTIONS PART
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ExecuteOptions{phdthesis,english}
+\ProcessOptions
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%  PACKAGE LOADING PART
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\RequirePackage{graphicx}
+\RequirePackage[dvips,dvipdf,pdftex]{graphicx}
+%\DeclareGraphicsRule{*}{mps}{*}{}
+%\DeclareGraphicsExtensions{.jpg,.mps,.pdf,.png,.ps}
+\DeclareGraphicsRule{*}{eps}{*}{}
+\RequirePackage[Sonny]{fncychap}
+\RequirePackage[noindentafter,calcwidth]{titlesec}
+\RequirePackage{fancyhdr}
+\RequirePackage{paralist}
+\RequirePackage{listings,color}
+\RequirePackage[toc,page,title,titletoc]{appendix}
+\RequirePackage[round]{natbib}
+\RequirePackage{url}
+\RequirePackage{babel}
+\RequirePackage{ifthen}
+\RequirePackage{picinpar}
+\RequirePackage{colortbl}
+\RequirePackage{shadow}
+\RequirePackage{lineno}
+\RequirePackage{algorithm2e}
+\RequirePackage{epsfig}
+\RequirePackage{hyperref}
+% make sure to link CORRECTLY to images and tables, and not to the caption
+% needs to be loaded AFTER the hyperref package
+
+%
+\ifw@ntindex
+		\RequirePackage{makeidx}
+\fi
+%
+\ifcase\pdfoutput
+\else
+\RequirePackage{pdfpages}
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%   MAIN CODE PART: TEXTPAGE FORMATTING
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%---------------
+%%%% PAGE LAYOUT
+%---------------
+\oddsidemargin=0cm 
+\textwidth=16cm 
+\setlength{\voffset}{-10mm}
+\setlength{\textheight}{215mm}
+\setlength{\headheight}{14pt}
+%\setlength{\parindent}{0.0mm}
+%\addtolength{\parskip}{0.3\baselineskip}
+
+%--------------
+%%%% PAGE STYLE
+%--------------
+\fancypagestyle{compP@geStyle}{%
+		\fancyhf{}	
+		\rhead{\thepage}
+		\lhead{\rightmark}
+		\renewcommand{\headrulewidth}{0.5pt}
+		\renewcommand{\footrulewidth}{0pt}
+		\addtolength{\headheight}{0.5pt}
+}
+
+\fancypagestyle{plain}{%
+		\fancyhead{}
+		\renewcommand{\headrulewidth}{0pt}
+}
+
+%------------------
+%%%% SECTION TITLES
+%------------------
+\newenvironment{unnumbered}
+{	\setcounter{secnumdepth}{0}%
+	\addtocontents{toc}{\protect\setcounter{tocdepth}{0}\ignorespaces}%
+	\w@ntnumbersfalse
+}
+{	\setcounter{secnumdepth}{2}%
+	\addtocontents{toc}{\protect\setcounter{tocdepth}{2}\ignorespaces}%
+	\w@ntnumberstrue
+}
+
+\AtBeginDocument{
+		\w@ntnumberstrue
+		\setcounter{secnumdepth}{\@secnumdepthvalue}
+
+		\titleformat{\section}[block]
+				{\Large\sffamily\bfseries}
+				{}{0ex}
+				{\titleline*[l]{\titlerule[1pt]}\vspace{4pt} \thesection\quad}
+				[{\titleline*[l]{\vspace{18pt}\titlerule[1pt]}}]
+		\titlespacing*{\section}{0pc}{*3}{*2}
+		%
+		\titleformat{\subsection}[block]
+				{\large\sffamily\bfseries}
+				{}{0ex}
+				%{\ifthenelse{\@secnumdepthvalue<2}{}{\thesubsection\quad}}
+				{\ifw@ntnumbers \thesubsection\quad \else \quad \fi}
+				%[]
+		\titlespacing*{\subsection}{0pc}{*2}{*1}
+		%
+		\titleformat{\subsubsection}[block]
+				{\large\sffamily\bfseries}
+				{}{0ex}
+				{\ifthenelse{\@secnumdepthvalue<3}{}{\thesubsubsection\quad}}
+				[]
+		\titlespacing*{\subsubsection}{0pc}{*1}{*0}
+		%
+		%
+%		\myCppCodeFormat
+%		\myJavaCodeFormat
+		\myShabox
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% MAIN CODE PART : MAKING THE FRONT PAGES
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%--------------
+%%%% TITLE PAGE
+%--------------
+\newcommand{\makeTitlePage}{%
+    \begin{titlepage}
+    		\null
+		    \hbox{  
+			\ifcase\pdfoutput
+				%\includegraphics[scale=0.2]{UA-LogoText.eps} 
+				\includegraphics[5cm,7.2cm][9cm,8.5cm]{images/UA-LogoText.png}
+			\else
+				%\includegraphics[width=50mm, height=10mm, keepaspectratio]{UA-LogoText.jpg}
+				\includegraphics[scale=0.2]{images/UA-LogoText.png}
+				%\includegraphics[5cm,7.2cm][9cm,8.5cm]{UA-LogoText.jpg}
+			\fi
+                    }
+		    \hbox{
+		      	\vrule depth 0.87\textheight%
+		      	\mbox{\hspace{2pt}}
+		      	\vtop{%
+		        	\vskip 70\p@
+		       		\raisebox{0mm}[5ex][0ex]{
+		       				\parbox{12cm}{  {\huge \bfseries \@title  \par}  }
+		       		}
+		       		\vskip 120\p@
+			        \mbox{\hspace{2pt} \bfseries \@author \par}			        
+			        \vskip 120\p@
+					\mbox{\hspace{2pt} \@advisername :\quad \@principaladviser \par}
+					\vskip 5\p@
+					\mbox{\hspace{2pt} \@assistantadvisername :\quad \@assistantadviser \par}
+					\vskip 45\p@
+					\raisebox{0mm}[6ex][0ex]{
+			        		\parbox{10cm}{{\@titlepageblurb} }
+				    }
+			        \vskip 50\p@
+			        \mbox{ 
+					\ifcase\pdfoutput 
+						%\includegraphics[scale=0.5]{CoMP-logo-embedfont.eps} 
+						\includegraphics[bb = 7cm 7.8cm 9.5cm 8.8cm, keepaspectratio]{images/ansymo_logo.pdf} 
+					\else
+						%\includegraphics[width=25mm, height=8mm, keepaspectratio]{CoMP-logo-embedfont.jpg} 
+						\includegraphics[scale=0.5]{images/ansymo_logo.pdf} 
+						%\includegraphics[7cm,7cm][9cm,8cm]{CoMP-logo-embedfont.jpg} 
+					\fi
+                             	}
+			        \raisebox{4mm}{
+					\resizebox{!}{0.37cm}{
+					\parbox{8cm}{ \scshape \@researchgroupblurb }
+					}
+			        }
+		        }
+		    } 
+		    \vfill                   
+  	\end{titlepage}
+}
+
+%-------------------
+%%%%% COPYRIGHT PAGE
+%-------------------
+\newcommand{\makeCopyrightPage}{%
+		\begin{titlepage}
+        \null
+        \vfill
+        \begin{center}
+                \large
+                Copyright\ \copyright\ \@copyrightyear\ \@author\\
+                \@copyrightblurb
+        \end{center}
+        \vfill
+    \end{titlepage}
+}		
+
+%-------------------
+%%%%% SIGNATURE PAGE
+%-------------------
+\newcommand{\signature}[1]{%
+    \vspace{1.0in}
+    \hbox to 5in{\hfil\begin{tabular}{@{}l@{}}
+    \vrule width 4in height 0.4pt depth 0pt\\ #1\end{tabular}}
+}
+
+\newcommand{\makeSignaturePage}{%
+    \begin{titlepage}
+				\begin{flushright}
+		    		\begin{minipage}{5in}
+		      			\vspace{7cm}
+		        	  \@signatureblurb
+		            \par
+		            % pricipal adviser
+		            \signature{\@advisername ,\quad \@principaladviser}
+		            \vfill
+		            % if second principal advisor
+		            \if*\@coprincipaladviser \else
+		            \signature{\@coadvisername ,\quad \@coprincipaladviser}
+		            \vfill\fi
+		            \if*\@assistantadviser \else
+		            \signature{\@assistantadvisername ,\quad \@assistantadviser}
+		            \vfill\fi
+
+		        \end{minipage}
+		    \end{flushright}
+    \end{titlepage}
+}
+
+%---------------------------
+%%%%% TABLE OF CONTENTS PAGE
+%---------------------------
+\AtBeginDocument{
+		\setcounter{tocdepth}{\@tocdepthvalue}
+}
+\newcommand{\makeTableOfContentsPage}{%
+    {\sffamily \tableofcontents}
+}
+
+%-------------------------
+%%%%% LIST OF FIGURES PAGE
+%-------------------------
+\newcommand{\makeListOfFiguresPage}{%
+	\clearpage
+    \phantomsection
+  	\addcontentsline{toc}{chapter}{\listfigurename}
+	\listoffigures
+}
+
+%------------------------
+%%%%% LIST OF TABLES PAGE
+%------------------------
+\newcommand{\makeListOfTablesPage}{%
+	\clearpage
+    \phantomsection
+   	\addcontentsline{toc}{chapter}{\listtablename}
+	\listoftables
+}
+
+%------------------------
+%%%%% LIST OF LISTINGS PAGE
+%------------------------
+\newcommand{\makeListOfListingsPage}{%
+	\renewcommand{\lstlistlistingname}{List of Listings}
+   	\clearpage
+	\phantomsection
+   	\addcontentsline{toc}{chapter}{\lstlistlistingname}
+	\lstlistoflistings%
+}
+
+%---------------
+%%%% FRONT PAGES
+%---------------
+\newcommand{\frontpages}{%    
+	\pagenumbering{roman}
+    \pagestyle{plain}
+   	\makeTitlePage
+   	\ifw@ntcopyright \makeCopyrightPage \fi
+   	\ifw@ntsignature \makeSignaturePage \fi 
+		\ifw@nttableofcontents \makeTableOfContentsPage \fi
+   	\ifw@ntlistoffigures \makeListOfFiguresPage \fi
+   	\ifw@ntlistoftables \makeListOfTablesPage \fi
+	%\makeListOfListingsPage
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% MAIN CODE PART : MAKING THE MAIN BODY PAGES
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%-------------------
+%%%% MAIN BODY PAGES
+%-------------------	
+\newcommand{\mainbodypages}{%
+		\clearpage
+		\pagestyle{compP@geStyle}
+		\pagenumbering{arabic}
+		%\setlength{\parindent}{0.0mm}
+		%\addtolength{\parskip}{0.5\baselineskip} 
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% MAIN CODE PART : MAKING THE BACK PAGES
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%----------------------
+%%%%% BIBLIOGRAPHY PAGE
+%----------------------
+\newcommand{\makeBibliographyPage}{%
+  	\bibliographystyle{plain}
+	\clearpage
+	\phantomsection
+	\addcontentsline{toc}{chapter}{Bibliography}
+  	\bibliography{\@bibfile}
+}
+
+%---------------------
+%%%%%   THE INDEX PAGE
+%---------------------
+\newcommand{\makeIndexPage}{%
+		\addcontentsline{toc}{chapter}{Index}  	
+		\printindex
+}
+
+%--------------
+%%%% BACK PAGES
+%--------------
+\newcommand{\backpages}{%
+		\pagestyle{plain}
+		\ifw@ntbibliography
+				\makeBibliographyPage
+		\fi
+		\ifw@ntindex
+				\makeIndexPage
+		\fi
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% MISCELLANEOUS COMMANDS TO BE USED IN THE MAIN BODY
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%---------
+%%%% myDef
+%---------
+\newcommand{\myDef}[2]{
+    \begin{flushright}
+        \parbox{3.3cm}{
+            \begin{flushleft}
+                {\emph Definitie:\\ \vspace{1mm}}{\bf  #1 }
+            \end{flushleft}
+        }
+        \parbox{10.5cm}{ #2 }
+    \end{flushright}
+}
+
+%---------
+%%%% myTxt
+%---------
+\newcommand{\myTxt}[2]{
+    \begin{flushright}
+        \parbox{3.3cm}{
+            \begin{flushleft}
+                {\bf  #1 }
+            \end{flushleft}
+        }
+        \parbox{10.5cm}{ #2 }
+    \end{flushright}
+}
+
+%------------
+%%%% myMarTxt
+%------------
+\newcommand{\myMarTxt}[1]{
+    \reversemarginpar
+	  \setlength{\marginparwidth}{5cm}
+	  \marginpar[\ \\ \begin{minipage}{5cm}{\begin{flushright} { #1 } \end{flushright}}\end{minipage}]{}
+}
+
+%-------------
+% mySidebarTxt
+%-------------
+\newcommand{\mySidebarTxt}[1]{%
+		\newlength{\temptabcolsep}
+		\setlength{\temptabcolsep}{\tabcolsep}%
+\setlength{\tabcolsep}{0pt}%
+\begin{tabular}{r|>{\columncolor[gray]{0.75}}cr}%
+\begin{minipage}{4cm}%
+						\begin{flushright}
+    #1%
+            \end{flushright}
+\end{minipage}%
+        \hspace*{0.15cm} &%
+		\hspace*{0.15cm} &%
+\end{tabular}%
+\setlength{\tabcolsep}{\temptabcolsep}%
+}
+
+%---------------------
+% myShadedParagraphTxt
+%---------------------
+\newcommand{\shadedparagraph}[1]{%
+\begin{tabular}{>{\columncolor[gray]{.75}}l}%
+\begin{minipage}{0.96\textwidth}%
+\vspace*{0.2cm}%
+#1%
+\vspace*{0.2cm}%
+\end{minipage}%
+\end{tabular}%
+}
+
+%-----------
+% myBoxedTxt
+%-----------
+\newcommand{\framedparagraph}[1]{
+		\setlength{\fboxsep}{0.5cm}
+		\begin{center}
+ 				\framebox { \parbox{13cm}{#1}}
+		\end{center}
+}
+
+%----------------
+% myCppCodeFormat
+%----------------
+\newcommand{\myCppCodeFormat}{%
+		\lstloadlanguages{C++}
+		\lstset{language=C++,commentstyle=\scriptsize\color{green}, identifierstyle=\color{red},tabsize=4, xleftmargin=2ex,captionpos=b}
+}
+
+%-----------------
+% myJavaCodeFormat
+%-----------------
+\newcommand{\myJavaCodeFormat}{%
+		\lstloadlanguages{Java}
+		\lstset{language=Java,commentstyle=\scriptsize,identifierstyle=\color{red},tabsize=4, xleftmargin=2ex,captionpos=b}
+}
+
+%-----------------
+% myShabox
+%-----------------
+\newcommand{\myShabox}{%
+		\setlength{\sdim}{6pt}
+}
+
+% graphviz.tex
+% originally written by Derek Rayside, November 2003
+% following an idea that Daniel Jackson implemented in his Tagger program
+%
+% parameters to \digraph:
+% 1 - parameters for \includegraphics (optional; default value is "scale=1")
+% 2 - name of the digraph
+% 3 - body of the digraph
+\newcommand{\digraph}[3][scale=1]{
+\newwrite\dotfile
+\immediate\openout\dotfile=#2.dot
+\immediate\write\dotfile{digraph #2 {\string#3}}
+\immediate\closeout\dotfile
+\IfFileExists{#2.ps}
+% the postscript exists: include it
+{ \includegraphics[#1]{#2} }
+% the postscript doesn't exist: tell the user how to create it
+{ \fbox{ \begin{tabular}{l}
+The file \texttt{#2.ps} hasn't been created from
+\texttt{#2.dot} yet. \\
+Run `\texttt{dot -Tps -o #2.ps #2.dot}' to create it. \\
+Here is a \textsf{bash} loop to process all \textsf{dot} files
+in the current directory: \\
+\texttt{
+for f in *.dot do ;
+dot -Tps -o \$\{f\%dot\}ps \$f ;
+done
+}
+\end{tabular}}
+}
+}
+
+
+% BoxedGraph
+%
+% 1 - parameters for \includegraphics (optional; default value is "scale=1")
+% 2 - name of the digraph
+\newcommand{\psgraphboxed}[4][scale=1]
+{
+	\begin{figure}[h]
+		\begin{center}
+			%\fbox{
+			\includegraphics[#1]{#2}
+			\caption{#3}
+			\label{#4}
+			%}
+		\end{center}
+	\end{figure}
+}
+
+

+ 683 - 0
fncychap.sty

@@ -0,0 +1,683 @@
+%%% Copyright   Ulf A. Lindgren
+%%%
+%%% Note        Premission is granted to modify this file under
+%%%             the condition that it is saved using another
+%%%             file and package name.
+%%%
+%%% Revision    1.1 (1997)
+%%%
+%%%             Jan. 8th Modified package name base date option
+%%%             Jan. 22th Modified FmN and FmTi for error in book.cls
+%%%                  \MakeUppercase{#}->{\MakeUppercase#}
+%%%             Apr. 6th Modified Lenny option to prevent undesired 
+%%%                  skip of line.
+%%%             Nov. 8th Fixed \@chapapp for AMS
+%%%
+%%% Revision    1.2 (1998)
+%%%
+%%%             Feb. 11th Fixed appendix problem related to Bjarne
+%%%             Aug. 11th Fixed problem related to 11pt and 12pt 
+%%%                  suggested by Tomas Lundberg. THANKS!
+%%%
+%%% Revision    1.3 (2004)
+%%%             Sep. 20th problem with frontmatter, mainmatter and
+%%%                  backmatter, pointed out by Lapo Mori
+%%%
+%%% Revision    1.31 (2004)
+%%%             Sep. 21th problem with the Rejne definition streched text
+%%%                  caused ugly gaps in the vrule aligned with the title
+%%%                  text. Kindly pointed out to me by Hendri Adriaens
+%%%
+%%% Revision    1.32 (2005)
+%%%             Jun. 23th compatibility problem with the KOMA class 'scrbook.cls'
+%%%                  a remedy is a redefinition of '\@schapter' in
+%%%                  line with that used in KOMA. The problem was pointed
+%%%                  out to me by Mikkel Holm Olsen
+%%%
+%%% Revision    1.33 (2005)
+%%%             Aug. 9th misspelled ``TWELV'' corrected, the error was pointed
+%%%                  out to me by George Pearson
+%%%
+%%% Revision    1.34 (2007)
+%%%             Added an alternative to Lenny provided by Peter
+%%%             Osborne (2005-11-28)
+%%%             Corrected front, main and back matter, based on input
+%%%             from Bas van Gils (2006-04-24)
+%%%             Jul. 30th Added Bjornstrup option provided by Jean-Marc
+%%%             Francois (2007-01-05).
+%%%             Reverted to \MakeUppercase{#} see rev 1.1, solved
+%%%             problem with MakeUppercase and MakeLowercase pointed
+%%%             out by Marco Feuerstein  (2007-06-06) 
+
+
+%%% Last modified   Jul. 2007
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{fncychap}
+             [2007/07/30 v1.34
+                 LaTeX package (Revised chapters)]
+
+%%%% For conditional inclusion of color
+\newif\ifusecolor
+\usecolorfalse
+
+
+
+%%%% DEFINITION OF Chapapp variables
+\newcommand{\CNV}{\huge\bfseries}
+\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}}
+
+
+%%%% DEFINITION OF TheChapter variables
+\newcommand{\CNoV}{\huge\bfseries}
+\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}}
+
+\newif\ifUCN
+\UCNfalse
+\newif\ifLCN
+\LCNfalse
+\def\ChNameLowerCase{\LCNtrue\UCNfalse}
+\def\ChNameUpperCase{\UCNtrue\LCNfalse}
+\def\ChNameAsIs{\UCNfalse\LCNfalse}
+
+%%%%% Fix for AMSBook 971008
+
+\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}
+
+
+%%%%% Fix for Bjarne and appendix 980211
+
+\newif\ifinapp
+\inappfalse
+\renewcommand\appendix{\par
+  \setcounter{chapter}{0}%
+  \setcounter{section}{0}%
+  \inapptrue%
+  \renewcommand\@chapapp{\appendixname}%
+  \renewcommand\thechapter{\@Alph\c@chapter}}
+
+%%%%% Fix for frontmatter, mainmatter, and backmatter 040920
+
+\@ifundefined{@mainmatter}{\newif\if@mainmatter \@mainmattertrue}{}
+
+%%%%%
+
+
+
+\newcommand{\FmN}[1]{%
+\ifUCN
+   {\MakeUppercase{#1}}\LCNfalse
+\else
+   \ifLCN
+      {\MakeLowercase{#1}}\UCNfalse
+   \else #1
+   \fi
+\fi}
+
+
+%%%% DEFINITION OF Title variables
+\newcommand{\CTV}{\Huge\bfseries}
+\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}}
+
+%%%% DEFINITION OF the basic rule width
+\newlength{\RW}
+\setlength{\RW}{1pt}
+\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}}
+
+\newif\ifUCT
+\UCTfalse
+\newif\ifLCT
+\LCTfalse
+\def\ChTitleLowerCase{\LCTtrue\UCTfalse}
+\def\ChTitleUpperCase{\UCTtrue\LCTfalse}
+\def\ChTitleAsIs{\UCTfalse\LCTfalse}
+\newcommand{\FmTi}[1]{%
+\ifUCT
+   {\MakeUppercase{#1}}\LCTfalse
+\else
+   \ifLCT
+      {\MakeLowercase{#1}}\UCTfalse
+   \else {#1}
+   \fi
+\fi}
+
+
+
+\newlength{\mylen}
+\newlength{\myhi}
+\newlength{\px}
+\newlength{\py}
+\newlength{\pyy}
+\newlength{\pxx}
+
+
+\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@}
+
+\newcommand{\DOCH}{%
+  \CNV\FmN{\@chapapp}\space \CNoV\thechapter
+  \par\nobreak
+  \vskip 20\p@
+  }
+\newcommand{\DOTI}[1]{%
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@
+    }
+\newcommand{\DOTIS}[1]{%
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@
+    }
+
+%%%%%% SONNY DEF
+
+\DeclareOption{Sonny}{%
+  \ChNameVar{\Large\sf\bfseries}
+  \ChNumVar{\Huge\bfseries}
+  \ChTitleVar{\Large\sf\bfseries}
+  \ChRuleWidth{0.5pt}
+  \ChNameUpperCase
+  \renewcommand{\DOCH}{%
+    \raggedleft
+    \CNV\FmN{\@chapapp}\space \CNoV\thechapter
+    \par\nobreak
+    \vskip 40\p@}
+  \renewcommand{\DOTI}[1]{%
+    \CTV\raggedleft\mghrulefill{\RW}\par\nobreak
+    \vskip 5\p@
+    \CTV\FmTi{#1}\par\nobreak
+    \mghrulefill{\RW}\par\nobreak
+    \vskip 40\p@}
+  \renewcommand{\DOTIS}[1]{%
+    \CTV\raggedleft\mghrulefill{\RW}\par\nobreak
+    \vskip 5\p@
+    \CTV\FmTi{#1}\par\nobreak
+    \mghrulefill{\RW}\par\nobreak
+    \vskip 40\p@}
+}
+
+%%%%%% LENNY DEF
+
+\DeclareOption{Lenny}{%
+
+  \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont}
+  \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont}
+  \ChTitleVar{\Huge\bfseries\rm}
+  \ChRuleWidth{1pt}
+  \renewcommand{\DOCH}{%
+    \settowidth{\px}{\CNV\FmN{\@chapapp}}
+    \addtolength{\px}{2pt}
+    \settoheight{\py}{\CNV\FmN{\@chapapp}}
+    \addtolength{\py}{1pt}
+
+    \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter}
+    \addtolength{\mylen}{1pt}
+    \settowidth{\pxx}{\CNoV\thechapter}
+    \addtolength{\pxx}{-1pt}
+
+    \settoheight{\pyy}{\CNoV\thechapter}
+    \addtolength{\pyy}{-2pt}
+    \setlength{\myhi}{\pyy}
+    \addtolength{\myhi}{-1\py}
+    \par
+    \parbox[b]{\textwidth}{%
+    \rule[\py]{\RW}{\myhi}%
+    \hskip -\RW%
+    \rule[\pyy]{\px}{\RW}%
+    \hskip -\px%
+    \raggedright%
+    \CNV\FmN{\@chapapp}\space\CNoV\thechapter%
+    \hskip1pt%
+    \mghrulefill{\RW}%
+    \rule{\RW}{\pyy}\par\nobreak%
+    \vskip -\baselineskip%
+    \vskip -\pyy%
+    \hskip \mylen%
+    \mghrulefill{\RW}\par\nobreak%
+    \vskip \pyy}%
+    \vskip 20\p@}
+ 
+
+  \renewcommand{\DOTI}[1]{%
+    \raggedright
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@}
+
+  \renewcommand{\DOTIS}[1]{%
+    \raggedright
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@}
+ }
+
+%%%%%% Peter Osbornes' version of LENNY DEF
+
+\DeclareOption{PetersLenny}{%
+
+% five new lengths 
+\newlength{\bl}                           %  bottom left   : orig \space
+\setlength{\bl}{6pt}
+\newcommand{\BL}[1]{\setlength{\bl}{#1}}
+\newlength{\br}                           %  bottom right  : orig 1pt
+\setlength{\br}{1pt}
+\newcommand{\BR}[1]{\setlength{\br}{#1}}
+\newlength{\tl}                           %  top left      : orig 2pt
+\setlength{\tl}{2pt}
+\newcommand{\TL}[1]{\setlength{\tl}{#1}}
+\newlength{\trr}                           %  top right      :orig 1pt 
+\setlength{\trr}{1pt}
+\newcommand{\TR}[1]{\setlength{\trr}{#1}}
+\newlength{\blrule}                           %  top right      :orig 1pt 
+\setlength{\trr}{0pt}
+\newcommand{\BLrule}[1]{\setlength{\blrule}{#1}}
+
+
+  \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont}
+  \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont}
+  \ChTitleVar{\Huge\bfseries\rm}
+  \ChRuleWidth{1pt}
+\renewcommand{\DOCH}{%
+
+
+%%%%%%%                                   tweaks for 1--9 and A--Z
+\ifcase\c@chapter\relax%
+\or\BL{-3pt}\TL{-4pt}\BR{0pt}\TR{-6pt}%1
+\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%2
+\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%3
+\or\BL{0pt}\TL{5pt}\BR{2pt}\TR{-4pt}%4
+\or\BL{0pt}\TL{3pt}\BR{2pt}\TR{-4pt}%5
+\or\BL{-1pt}\TL{0pt}\BR{2pt}\TR{-2pt}%6
+\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%7
+\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%8
+\or\BL{0pt}\TL{-3pt}\BR{-4pt}\TR{-2pt}%9
+\or\BL{-3pt}\TL{-3pt}\BR{2pt}\TR{-7pt}%10
+\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%11
+\or\BL{-6pt}\TL{-6pt}\BR{2pt}\TR{-7pt}%12
+\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%13
+\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%14
+\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%15
+\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%16
+\or\BL{-5pt}\TL{-3pt}\BR{-8pt}\TR{-6pt}%17
+\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%18
+\or\BL{-3pt}\TL{-3pt}\BR{-6pt}\TR{-9pt}%19
+\or\BL{0pt}\TL{0pt}\BR{0pt}\TR{-5pt}%20
+\fi
+
+\ifinapp\ifcase\c@chapter\relax%
+\or\BL{0pt}\TL{14pt}\BR{5pt}\TR{-19pt}%A
+\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}%B
+\or\BL{-3pt}\TL{-2pt}\BR{1pt}\TR{-6pt}\BLrule{0pt}%C
+\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}\BLrule{0pt}%D
+\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-3pt}%E
+\or\BL{0pt}\TL{-5pt}\BR{-10pt}\TR{-1pt}%F
+\or\BL{-3pt}\TL{0pt}\BR{0pt}\TR{-7pt}%G
+\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%H
+\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%I
+\or\BL{2pt}\TL{0pt}\BR{-3pt}\TR{1pt}%J
+\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%K
+\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-19pt}%L
+\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%M
+\or\BL{0pt}\TL{-5pt}\BR{-2pt}\TR{-1pt}%N
+\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%O
+\or\BL{0pt}\TL{-5pt}\BR{-9pt}\TR{-3pt}%P
+\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%Q
+\or\BL{0pt}\TL{-5pt}\BR{4pt}\TR{-8pt}%R
+\or\BL{-2pt}\TL{-2pt}\BR{-2pt}\TR{-7pt}%S
+\or\BL{-3pt}\TL{0pt}\BR{-5pt}\TR{4pt}\BLrule{8pt}%T
+\or\BL{-7pt}\TL{-11pt}\BR{-5pt}\TR{-7pt}\BLrule{0pt}%U
+\or\BL{-14pt}\TL{-5pt}\BR{-14pt}\TR{-1pt}\BLrule{14pt}%V
+\or\BL{-10pt}\TL{-9pt}\BR{-13pt}\TR{-3pt}\BLrule{7pt}%W
+\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%X
+\or\BL{-6pt}\TL{-4pt}\BR{-7pt}\TR{1pt}\BLrule{7pt}%Y
+\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%Z
+\fi\fi
+%%%%%%%
+    \settowidth{\px}{\CNV\FmN{\@chapapp}}
+    \addtolength{\px}{\tl}        %MOD change 2pt to \tl
+    \settoheight{\py}{\CNV\FmN{\@chapapp}}
+    \addtolength{\py}{1pt}
+
+    \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter}
+    \addtolength{\mylen}{\trr}% MOD change 1pt to \tr
+    \settowidth{\pxx}{\CNoV\thechapter}
+    \addtolength{\pxx}{-1pt}
+
+    \settoheight{\pyy}{\CNoV\thechapter}
+    \addtolength{\pyy}{-2pt}
+    \setlength{\myhi}{\pyy}
+    \addtolength{\myhi}{-1\py}
+    \par
+    \parbox[b]{\textwidth}{%
+    \rule[\py]{\RW}{\myhi}%
+    \hskip -\RW%
+    \rule[\pyy]{\px}{\RW}% 
+    \hskip -\px%
+    \raggedright%
+    \CNV\FmN{\@chapapp}\rule{\blrule}{\RW}\hskip\bl\CNoV\thechapter%MOD 
+%    \CNV\FmN{\@chapapp}\space\CNoV\thechapter                     %ORIGINAL
+    \hskip\br%                           %MOD 1pt to \br
+    \mghrulefill{\RW}% 
+    \rule{\RW}{\pyy}\par\nobreak% 
+    \vskip -\baselineskip%
+    \vskip -\pyy%
+    \hskip \mylen%
+    \mghrulefill{\RW}\par\nobreak%
+    \vskip \pyy}%
+    \vskip 20\p@}
+ 
+
+  \renewcommand{\DOTI}[1]{%
+    \raggedright
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@}
+
+  \renewcommand{\DOTIS}[1]{%
+    \raggedright
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@}
+ }
+
+
+%
+
+
+%%%%%% BJORNSTRUP DEF
+
+\DeclareOption{Bjornstrup}{%
+  \usecolortrue
+  % pzc (Zapf Chancelery) is nice.  ppl (Palatino) is cool too.
+  \ChNumVar{\fontsize{76}{80}\usefont{OT1}{pzc}{m}{n}\selectfont}
+  \ChTitleVar{\raggedleft\Large\sffamily\bfseries}
+
+  \setlength{\myhi}{10pt}         % Space between grey box border and text
+  \setlength{\mylen}{\textwidth}
+  \addtolength{\mylen}{-2\myhi}
+  \renewcommand{\DOCH}{%
+    \settowidth{\py}{\CNoV\thechapter}
+    \addtolength{\py}{-10pt}      % Amount of space by which the
+%                                  % number is shifted right
+    \fboxsep=0pt%
+    \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}%
+    \kern-\py\raise20pt%
+    \hbox{\color[gray]{.5}\CNoV\thechapter}\\%
+  }
+  
+  \renewcommand{\DOTI}[1]{%
+    \nointerlineskip\raggedright%
+    \fboxsep=\myhi%
+    \vskip-1ex%
+    \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak%
+    \vskip 40\p@%
+  }
+
+  \renewcommand{\DOTIS}[1]{%
+    \fboxsep=0pt
+    \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}\\%
+    \nointerlineskip\raggedright%
+    \fboxsep=\myhi%
+    \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak%
+    \vskip 40\p@%
+  }
+}
+
+
+%%%%%%% GLENN DEF
+
+
+\DeclareOption{Glenn}{%
+  \ChNameVar{\bfseries\Large\sf}
+  \ChNumVar{\Huge}
+  \ChTitleVar{\bfseries\Large\rm}
+  \ChRuleWidth{1pt}
+  \ChNameUpperCase
+  \ChTitleUpperCase
+  \renewcommand{\DOCH}{%
+    \settoheight{\myhi}{\CTV\FmTi{Test}}
+    \setlength{\py}{\baselineskip}
+    \addtolength{\py}{\RW}
+    \addtolength{\py}{\myhi}
+    \setlength{\pyy}{\py}
+    \addtolength{\pyy}{-1\RW}
+     
+    \raggedright
+    \CNV\FmN{\@chapapp}\space\CNoV\thechapter
+    \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak}
+
+  \renewcommand{\DOTI}[1]{%
+    \addtolength{\pyy}{-4pt}
+    \settoheight{\myhi}{\CTV\FmTi{#1}}
+    \addtolength{\myhi}{\py}
+    \addtolength{\myhi}{-1\RW}
+    \vskip -1\pyy
+    \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
+    \raggedleft\CTV\FmTi{#1}\par\nobreak
+    \vskip 80\p@}
+
+\newlength{\backskip}
+  \renewcommand{\DOTIS}[1]{%
+%    \setlength{\py}{10pt}
+%    \setlength{\pyy}{\py}
+%    \addtolength{\pyy}{\RW}
+%    \setlength{\myhi}{\baselineskip}
+%    \addtolength{\myhi}{\pyy}
+%    \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak
+%    \addtolength{}{}
+%\vskip -1\baselineskip
+%    \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
+%    \raggedleft\CTV\FmTi{#1}\par\nobreak
+%    \vskip 60\p@}
+%% Fix suggested by Tomas Lundberg
+    \setlength{\py}{25pt}  % eller vad man vill
+    \setlength{\pyy}{\py}
+    \setlength{\backskip}{\py}
+    \addtolength{\backskip}{2pt}
+    \addtolength{\pyy}{\RW}
+    \setlength{\myhi}{\baselineskip}
+    \addtolength{\myhi}{\pyy}
+    \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak
+    \vskip -1\backskip
+    \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 3pt %
+    \raggedleft\CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@}
+ }
+
+%%%%%%% CONNY DEF
+
+\DeclareOption{Conny}{%
+  \ChNameUpperCase
+  \ChTitleUpperCase  
+  \ChNameVar{\centering\Huge\rm\bfseries}
+  \ChNumVar{\Huge}
+  \ChTitleVar{\centering\Huge\rm}
+  \ChRuleWidth{2pt}
+
+  \renewcommand{\DOCH}{%
+    \mghrulefill{3\RW}\par\nobreak
+    \vskip -0.5\baselineskip
+    \mghrulefill{\RW}\par\nobreak
+    \CNV\FmN{\@chapapp}\space \CNoV\thechapter
+    \par\nobreak
+    \vskip -0.5\baselineskip
+   }
+  \renewcommand{\DOTI}[1]{%
+    \mghrulefill{\RW}\par\nobreak
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 60\p@
+    }
+  \renewcommand{\DOTIS}[1]{%
+    \mghrulefill{\RW}\par\nobreak
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 60\p@
+    }
+  }
+
+%%%%%%% REJNE DEF
+
+\DeclareOption{Rejne}{%
+
+  \ChNameUpperCase
+  \ChTitleUpperCase  
+  \ChNameVar{\centering\Large\rm}
+  \ChNumVar{\Huge}
+  \ChTitleVar{\centering\Huge\rm}
+  \ChRuleWidth{1pt}
+  \renewcommand{\DOCH}{%
+    \settoheight{\py}{\CNoV\thechapter}
+    \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31
+    \addtolength{\py}{-1pt}
+    \CNV\FmN{\@chapapp}\par\nobreak
+    \vskip 20\p@
+    \setlength{\myhi}{2\baselineskip}
+    \setlength{\px}{\myhi}
+    \addtolength{\px}{-1\RW}
+    \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip
+    10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip 10pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak
+     \vskip -3\p@% Added -2pt vskip to correct for streched text v1.31
+    }
+  \renewcommand{\DOTI}[1]{%
+    \setlength{\mylen}{\textwidth}
+    \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31
+    \addtolength{\mylen}{-2\RW}
+    {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule width\RW}\par\nobreak%
+    \vskip -3pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip}%
+    \vskip 60\p@% Added -2pt in vskip to correct for streched text v1.31
+    }
+  \renewcommand{\DOTIS}[1]{%
+    \setlength{\py}{\fboxrule}
+    \setlength{\fboxrule}{\RW}
+    \setlength{\mylen}{\textwidth}
+    \addtolength{\mylen}{-2\RW}
+    \fbox{\parbox{\mylen}{\vskip 2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}} 
+    \setlength{\fboxrule}{\py}
+    \vskip 60\p@
+    }
+  }
+
+
+%%%%%%% BJARNE DEF
+
+\DeclareOption{Bjarne}{%
+  \ChNameUpperCase
+  \ChTitleUpperCase  
+  \ChNameVar{\raggedleft\normalsize\rm}
+  \ChNumVar{\raggedleft \bfseries\Large}
+  \ChTitleVar{\raggedleft \Large\rm}
+  \ChRuleWidth{1pt}
+
+
+%% Note thechapter -> c@chapter fix appendix bug
+%% Fixed misspelled 12
+
+  \newcounter{AlphaCnt}
+  \newcounter{AlphaDecCnt}
+  \newcommand{\AlphaNo}{%
+    \ifcase\number\theAlphaCnt
+      \ifnum\c@chapter=0
+        ZERO\else{}\fi
+    \or ONE\or TWO\or THREE\or FOUR\or FIVE
+    \or SIX\or SEVEN\or EIGHT\or NINE\or TEN
+    \or ELEVEN\or TWELVE\or THIRTEEN\or FOURTEEN\or FIFTEEN
+    \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi
+}
+
+  \newcommand{\AlphaDecNo}{%
+    \setcounter{AlphaDecCnt}{0}
+    \@whilenum\number\theAlphaCnt>0\do
+      {\addtocounter{AlphaCnt}{-10}
+       \addtocounter{AlphaDecCnt}{1}}
+     \ifnum\number\theAlphaCnt=0
+     \else
+       \addtocounter{AlphaDecCnt}{-1}
+       \addtocounter{AlphaCnt}{10}
+     \fi
+     
+     
+    \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or
+    FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi
+    }
+  \newcommand{\TheAlphaChapter}{%
+    
+    \ifinapp 
+      \thechapter
+    \else
+      \setcounter{AlphaCnt}{\c@chapter}
+      \ifnum\c@chapter<20
+        \AlphaNo
+      \else
+        \AlphaDecNo\AlphaNo
+      \fi
+    \fi
+    }  
+  \renewcommand{\DOCH}{%
+    \mghrulefill{\RW}\par\nobreak
+    \CNV\FmN{\@chapapp}\par\nobreak 
+    \CNoV\TheAlphaChapter\par\nobreak
+    \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak
+    \vskip 20\p@
+    }
+  \renewcommand{\DOTI}[1]{%
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@
+    }
+  \renewcommand{\DOTIS}[1]{%
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@
+    }
+}
+
+\DeclareOption*{%
+  \PackageWarning{fancychapter}{unknown style option}
+  }
+
+\ProcessOptions* \relax
+
+\ifusecolor
+  \RequirePackage{color} 
+\fi
+\def\@makechapterhead#1{%
+  \vspace*{50\p@}%
+  {\parindent \z@ \raggedright \normalfont
+    \ifnum \c@secnumdepth >\m@ne
+      \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 040920
+        \DOCH
+      \fi
+    \fi
+    \interlinepenalty\@M
+    \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 060424
+      \DOTI{#1}%
+    \else%
+      \DOTIS{#1}%
+    \fi
+  }}
+
+
+%%% Begin: To avoid problem with scrbook.cls (fncychap version 1.32)
+
+%%OUT:
+%\def\@schapter#1{\if@twocolumn
+%                   \@topnewpage[\@makeschapterhead{#1}]%
+%                 \else
+%                   \@makeschapterhead{#1}%
+%                   \@afterheading
+%                 \fi}
+
+%%IN:
+\def\@schapter#1{%
+\if@twocolumn%
+  \@makeschapterhead{#1}%
+\else%
+  \@makeschapterhead{#1}%
+  \@afterheading%
+\fi}
+
+%%% End: To avoid problem with scrbook.cls (fncychap version 1.32)
+
+\def\@makeschapterhead#1{%
+  \vspace*{50\p@}%
+  {\parindent \z@ \raggedright
+    \normalfont
+    \interlinepenalty\@M
+    \DOTIS{#1}
+    \vskip 40\p@
+  }}
+
+\endinput
+
+

File diff suppressed because it is too large
+ 1 - 0
images/CD_Branches.drawio


BIN
images/CD_Branches.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_Controller.drawio


BIN
images/CD_Controller.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_Expression.drawio


BIN
images/CD_Expression.pdf


BIN
images/CD_Expression2.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_Round.drawio


BIN
images/CD_Round.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_SCCDType.drawio


BIN
images/CD_SCCDType.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_Statement.drawio


BIN
images/CD_Statement.pdf


BIN
images/CD_Statement2.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_action_language_other.drawio


File diff suppressed because it is too large
+ 1 - 0
images/CD_controller_eventloop.drawio


BIN
images/CD_controller_eventloop.pdf


BIN
images/CD_evaluation_execution.pdf


BIN
images/CD_funcdecl_scope.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_memory_snapshot.drawio


BIN
images/CD_memory_snapshot.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_old_controller_platforms.drawio


BIN
images/CD_old_controller_platforms.pdf


File diff suppressed because it is too large
+ 3 - 0
images/CD_old_controller_platforms.svg


BIN
images/CD_old_controller_platforms2.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_state.drawio


BIN
images/CD_state.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_statechart.drawio


BIN
images/CD_statechart.pdf


BIN
images/CD_static_analysis.pdf


File diff suppressed because it is too large
+ 1 - 0
images/CD_y=2x.drawio


BIN
images/CD_y=2x.pdf


BIN
images/SEQ_y=2x.pdf


BIN
images/SEQ_y=2x_2.pdf


BIN
images/UA-LogoText.png


BIN
images/UA-LogoTextC.png


BIN
images/ansymo_logo.pdf


BIN
images/ansymo_logo_medium.png


File diff suppressed because it is too large
+ 1 - 0
images/big_step.drawio


BIN
images/big_step.pdf


File diff suppressed because it is too large
+ 1 - 0
images/big_step_maximality.drawio


BIN
images/big_step_maximality.pdf


File diff suppressed because it is too large
+ 1 - 0
images/cd_parse_rules.drawio


BIN
images/cd_parse_rules.pdf


BIN
images/chatclient.png


File diff suppressed because it is too large
+ 1 - 0
images/checkpoint.drawio


BIN
images/checkpoint.pdf


File diff suppressed because it is too large
+ 1 - 0
images/controller_int_timestamps.drawio


BIN
images/controller_int_timestamps.pdf


File diff suppressed because it is too large
+ 1 - 0
images/cross_ortho_trans.drawio


BIN
images/cross_ortho_trans.pdf


BIN
images/dwatch.png


File diff suppressed because it is too large
+ 1 - 0
images/dwatch_semantics.drawio


BIN
images/dwatch_semantics.pdf


File diff suppressed because it is too large
+ 1 - 0
images/enter_exit_set.drawio


BIN
images/enter_exit_set.pdf


BIN
images/event_lifeline.pdf


File diff suppressed because it is too large
+ 1 - 0
images/history.drawio


BIN
images/history.pdf


BIN
images/interrupt1.pdf


BIN
images/interrupt2.pdf


File diff suppressed because it is too large
+ 1 - 0
images/late_long.drawio


BIN
images/late_long.pdf


File diff suppressed because it is too large
+ 1 - 0
images/light.drawio


BIN
images/light_blink_flat.pdf


BIN
images/light_enterexit.pdf


BIN
images/light_flat.pdf


BIN
images/light_hierarchy.pdf


BIN
images/light_onoff.pdf


BIN
images/lore.png


File diff suppressed because it is too large
+ 1 - 0
images/memory_protocol.drawio


BIN
images/memory_protocol.pdf


BIN
images/original SCCD.pdf


+ 603 - 0
images/original SCCD.svg

@@ -0,0 +1,603 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="svg834"
+   xml:space="preserve"
+   width="261.27899"
+   height="345.06647"
+   viewBox="0 0 261.279 345.06647"
+   sodipodi:docname="original SCCD.svg"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
+     id="metadata840"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs838"><clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2070"><path
+         d="M 0,0 H 292.20932 V 386.63864 H 0 Z"
+         id="path2068"
+         inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1234"
+     inkscape:window-height="967"
+     id="namedview836"
+     showgrid="false"
+     inkscape:zoom="2.9507576"
+     inkscape:cx="220.98894"
+     inkscape:cy="117.86529"
+     inkscape:window-x="46"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="g842"
+     fit-margin-top="1"
+     fit-margin-left="1"
+     fit-margin-bottom="1"
+     fit-margin-right="1" /><g
+     id="g842"
+     inkscape:groupmode="layer"
+     inkscape:label="original SCCD"
+     transform="matrix(1.3333333,0,0,-1.3333333,-4.0975631,1052.3844)"><g
+       transform="matrix(0.66548,0,0,0.66548,3.8231724,531.23805)"
+       id="g2062"><g
+         id="g2064"><g
+           id="g2066" /><g
+           id="g2402"><g
+             id="g2400"
+             clip-path="url(#clipPath2070)"><g
+               id="g2398"><g
+                 id="g2074"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2072"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 64.438,194.555 h 61.383 v 29.852 H 64.438 Z" /></g><text
+                 id="text2080"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,73.647787,180.71289)"><tspan
+                   id="tspan2076"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.8499999 9.5600004 15.79 19.299999 26.129999 30.07 36.02 42.25">Big Step </tspan><tspan
+                   id="tspan2078"
+                   sodipodi:role="line"
+                   y="12.5"
+                   x="-5.8984399 2.52156 8.5215597 14.43156 17.17156 26.89156 32.89156 35.601559 38.311562 42.221561">Maximality</tspan></text>
+<g
+                 id="g2084"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2082"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 123.262,27.258 h 56.59 v 17.73 h -56.59 z" /></g><text
+                 id="text2088"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,126.97697,347.91341)"><tspan
+                   id="tspan2086"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 5.5599999 11.56 17.879999 24.110001 30.43 36.43 42.66">Language</tspan></text>
+<g
+                 id="g2092"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2090"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 129.547,105.102 h 48.02 v 17.734 h -48.02 z" /></g><text
+                 id="text2096"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,132.88941,269.04452)"><tspan
+                   id="tspan2094"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.0300002 8.7700005 14.77 18.709999 22.219999 28.280001 32.540001">Platform</tspan></text>
+<g
+                 id="g2100"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2098"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 203.078,0.398 h 42.305 v 17.734 h -42.305 z" /></g><text
+                 id="text2104"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,206.85986,374.58012)"><tspan
+                   id="tspan2102"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.0300002 11.94 15.88 22.200001 28.26">Python</tspan></text>
+<g
+                 id="g2108"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2106"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 203.078,27.258 h 57.16 v 17.73 h -57.16 z" /></g><text
+                 id="text2112"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,206.74448,347.86215)"><tspan
+                   id="tspan2110"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 4.54 10.48 16.190001 22.190001 27.389999 32.59 36.880001 39.59 45.82">Javascript</tspan></text>
+<g
+                 id="g2116"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2114"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 203.078,54.113 h 23.449 v 17.73 h -23.449 z" /></g><text
+                 id="text2120"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,207.4093,320.02357)"><tspan
+                   id="tspan2118"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.98">C#</tspan></text>
+<g
+                 id="g2124"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2122"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 200.965,78.938 h 46.875 v 17.73 h -46.875 z" /></g><text
+                 id="text2128"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,204.51176,295.20081)"><tspan
+                   id="tspan2126"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.1599998 12.48 16.74 22.690001 28.719999 34.950001">Threads</tspan></text>
+<g
+                 id="g2132"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2130"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 200.965,105.543 h 56.02 v 17.73 h -56.02 z" /></g><text
+                 id="text2136"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,203.68277,269.43709)"><tspan
+                   id="tspan2134"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 7.75 13.75 23.469999 29.42 32.16 38.220001 44.279999">Gameloop</tspan></text>
+<g
+                 id="g2140"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2138"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 200.965,132.148 h 56.02 v 17.73 h -56.02 z" /></g><text
+                 id="text2144"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,204.00259,242.83109)"><tspan
+                   id="tspan2142"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.3200002 12.16 18.110001 24.43 28.370001 31.08 37.139999 43.200001">Eventloop</tspan></text>
+<g
+                 id="g2148"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2146"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 92.672,264.199 h 56.02 v 17.73 h -56.02 z" /></g><text
+                 id="text2152"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,97.694085,109.85245)"><tspan
+                   id="tspan2150"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 5 11 16.82 22.77 26.280001 34.150002 40.470001">Take One</tspan></text>
+<g
+                 id="g2156"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2154"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 51.102,243.641 h 62.484 v 17.73 H 51.102 Z" /></g><text
+                 id="text2160"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,56.037091,131.33833)"><tspan
+                   id="tspan2158"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 5 11 16.82 22.77 26.280001 34.700001 40.700001 46.939999">Take Many</tspan></text>
+<g
+                 id="g2164"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2162"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 163.293,189.152 h 77.145 v 29.043 h -77.145 z" /></g><text
+                 id="text2170"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,165.78697,185.47932)"><tspan
+                   id="tspan2166"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 4.1999998 10.52 14.46 20.41 24.67 30.99 37.02 39.73 43.240002 49.560001 55.400002 61.349998 67.669998">Internal Event</tspan><tspan
+                   id="tspan2168"
+                   sodipodi:role="line"
+                   y="12.5"
+                   x="18.115231 23.67523 26.385229 29.895229 35.84523 38.555229 41.265228 47.585232">Lifeline</tspan></text>
+<g
+                 id="g2174"
+                 transform="matrix(0.999997,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2172"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 2.352,303.055 h 65.426 v 29.047 H 2.352 Z" /></g><text
+                 id="text2180"
+                 style="font-variant:normal;font-weight:normal;font-size:10.00002575px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(0.9999974,0,0,-1,5.210632,71.574847)"><tspan
+                   id="tspan2176"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 4.2000108 10.520027 16.750044 23.070061 27.010071 30.520079 36.840096 42.690109 48.640125 54.960144">Input Event</tspan><tspan
+                   id="tspan2178"
+                   sodipodi:role="line"
+                   y="12.500032"
+                   x="11.74808 17.308096 20.018103 23.528111 29.478127 32.188133 34.89814 41.218159">Lifeline</tspan></text>
+<g
+                 id="g2184"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2182"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 8.781,107.047 h 92.871 v 17.73 H 8.781 Z" /></g><text
+                 id="text2188"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,11.853078,267.93446)"><tspan
+                   id="tspan2186"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.98 13.04 22.76 28.99 31.73 34.43 40.380001 44.639999 48.150002 56.02 62.25 66.190002 68.93 74.989998 81.309998">Compiler Options</tspan></text>
+<g
+                 id="g2192"
+                 transform="matrix(0.999997,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2190"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 172.422,346.035 h 80.266 v 17.73 h -80.266 z" /></g><text
+                 id="text2196"
+                 style="font-variant:normal;font-weight:normal;font-size:10.00002575px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(0.9999974,0,0,-1,176.55163,28.11219)"><tspan
+                   id="tspan2194"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.8300176 12.890034 19.210051 23.47006 28.670074 34.62009 39.190102 44.990116 50.990131 55.250145 61.200161 67.520172">Source-Parent</tspan></text>
+<g
+                 id="g2200"
+                 transform="matrix(0.999997,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2198"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 157.567,368.508 h 73.395 v 17.73 h -73.395 z" /></g><text
+                 id="text2204"
+                 style="font-variant:normal;font-weight:normal;font-size:10.00002575px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(0.9999974,0,0,-1,162.27852,5.542407)"><tspan
+                   id="tspan2202"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.8300176 12.890034 19.210051 23.47006 28.670074 34.62009 39.190102 46.17012 52.490135 55.230145 57.920151">Source-Child</tspan></text>
+<g
+                 id="g2208"
+                 transform="matrix(0.999997,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2206"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 0.398,346.035 h 88.75 v 17.73 H 0.398 Z" /></g><text
+                 id="text2212"
+                 style="font-variant:normal;font-weight:normal;font-size:10.00002575px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(0.9999974,0,0,-1,4.598104,28.112189)"><tspan
+                   id="tspan2210"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 5.740015 8.4500217 12.710033 17.910046 21.850058 25.360065 32.190083 41.91011 47.940125 50.650131 53.360138 56.870148 63.700165 67.640175 73.590195">First Small Step</tspan></text>
+<g
+                 id="g2216"
+                 transform="matrix(0.999997,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2214"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 42.844,368.508 h 93.196 v 17.73 H 42.844 Z" /></g><text
+                 id="text2220"
+                 style="font-variant:normal;font-weight:normal;font-size:10.00002575px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(0.9999974,0,0,-1,45.720958,6.472706)"><tspan
+                   id="tspan2218"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 5.740015 8.4500217 12.710033 17.910046 21.850058 25.360065 32.370083 38.430099 48.150124 54.380142 60.440159 63.950165 70.780182 74.720192 80.670212">First Combo Step</tspan></text>
+<g
+                 id="g2224"
+                 transform="matrix(0.999997,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2222"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 100.973,346.035 h 38.047 v 17.73 h -38.047 z" /></g><text
+                 id="text2228"
+                 style="font-variant:normal;font-weight:normal;font-size:10.00002575px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(0.9999974,0,0,-1,104.53724,28.014603)"><tspan
+                   id="tspan2226"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 9.8800259 16.200043 22.260057 24.970064">Whole</tspan></text>
+<g
+                 id="g2232"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2230"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 203.063,245.926 h 88.746 v 17.734 h -88.746 z" /></g><text
+                 id="text2236"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,206.55653,128.22009)"><tspan
+                   id="tspan2234"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 7.48 13.43 19.34 23.280001 26.790001 33.619999 43.34 49.34 52.080002 54.779999 58.290001 65.120003 69.059998 75.010002">Next Small Step</tspan></text>
+<g
+                 id="g2240"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2238"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 161.508,273.172 h 93.195 v 17.73 h -93.195 z" /></g><text
+                 id="text2244"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,163.68199,101.80929)"><tspan
+                   id="tspan2242"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 7.48 13.43 19.34 23.280001 26.790001 33.77 39.830002 49.549999 55.779999 61.84 65.349998 72.18 76.150002 82.099998">Next Combo Step</tspan></text>
+<g
+                 id="g2248"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2246"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 153.348,245.926 h 38.051 v 17.734 h -38.051 z" /></g><text
+                 id="text2252"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,156.11574,129.09407)"><tspan
+                   id="tspan2250"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 7.8699999 14.19 20.139999 26.459999">Queue</tspan></text>
+<g
+                 id="g2256"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2254"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 120.09,39.086 -18.297,76.668" /></g><g
+                 id="g2260"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2258"
+                   style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.73735797;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 122.73,36.941 c 0,1.122 -0.91,2.032 -2.031,2.032 -1.121,0 -2.031,-0.91 -2.031,-2.032 0,-1.121 0.91,-2.031 2.031,-2.031 1.121,0 2.031,0.91 2.031,2.031 z" /></g><g
+                 id="g2264"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2262"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 57.559,146.301 h 58.875 v 17.73 H 57.559 Z" /></g><text
+                 id="text2268"
+                 style="font-variant:normal;font-weight:normal;font-size:10px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(1,0,0,-1,60.899861,227.84685)"><tspan
+                   id="tspan2266"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.8299999 12.78 22.5 28.5 34.82 38.759998 41.5 46.700001">Semantics</tspan></text>
+<g
+                 id="g2272"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2270"
+                   style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.73735797;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 109.598,143.492 c 0,1.121 -0.91,2.031 -2.032,2.031 -1.121,0 -2.031,-0.91 -2.031,-2.031 0,-1.121 0.91,-2.031 2.031,-2.031 1.122,0 2.032,0.91 2.032,2.031 z" /></g><g
+                 id="g2276"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2274"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 101.953,115.863 5.43,25.285" /></g><g
+                 id="g2280"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2278"
+                   style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.73735797;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 128.727,114.031 c 0,1.121 -0.911,2.032 -2.032,2.032 -1.121,0 -2.031,-0.911 -2.031,-2.032 0,-1.121 0.91,-2.031 2.031,-2.031 1.121,0 2.032,0.91 2.032,2.031 z" /></g><g
+                 id="g2284"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2282"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="M 180.07,36.457 202.965,8.582" /></g><g
+                 id="g2288"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2286"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 202.488,36.379 -22.215,0.07 22.5,27.071" /></g><g
+                 id="g2292"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2290"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 184.508,31.441 c 0,0 2.406,3.254 2.406,5.059 0,1.805 -2.465,4.395 -2.465,4.395" /></g><g
+                 id="g2296"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2294"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="M 178.145,115.75 201.043,87.875" /></g><g
+                 id="g2300"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2298"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 200.566,115.672 -22.214,0.07 22.5,27.071" /></g><g
+                 id="g2304"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2302"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 182.586,110.734 c 0,0 3.769,3.204 3.769,5.008 0,1.805 -3.828,4.446 -3.828,4.446" /></g><g
+                 id="g2308"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2306"
+                   style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.73735797;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 95.113,194.125 c 0,1.121 -0.91,2.031 -2.031,2.031 -1.121,0 -2.031,-0.91 -2.031,-2.031 0,-1.121 0.91,-2.031 2.031,-2.031 1.121,0 2.031,0.91 2.031,2.031 z" /></g><g
+                 id="g2312"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2310"
+                   style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.73735797;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 205.668,186.27 c 0,1.121 -0.91,2.031 -2.031,2.031 -1.121,0 -2.032,-0.91 -2.032,-2.031 0,-1.122 0.911,-2.032 2.032,-2.032 1.121,0 2.031,0.91 2.031,2.032 z" /></g><g
+                 id="g2316"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2314"
+                   style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.73735797;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 34.402,300.41 c 0,1.125 -0.91,2.035 -2.031,2.035 -1.121,0 -2.031,-0.91 -2.031,-2.035 0,-1.121 0.91,-2.031 2.031,-2.031 1.121,0 2.031,0.91 2.031,2.031 z" /></g><g
+                 id="g2320"
+                 transform="matrix(0.999997,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2318"
+                   style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 143.078,310.797 h 44.332 v 17.73 h -44.332 z" /></g><text
+                 id="text2324"
+                 style="font-variant:normal;font-weight:normal;font-size:10.00002575px;font-family:Verdana;-inkscape-font-specification:Verdana;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+                 transform="matrix(0.9999974,0,0,-1,146.94633,64.321466)"><tspan
+                   id="tspan2322"
+                   sodipodi:role="line"
+                   y="0"
+                   x="0 6.0300155 10.290027 13.030034 19.09005 23.350061 26.060068 29.970078">Priority</tspan></text>
+<g
+                 id="g2328"
+                 transform="matrix(0.999997,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2326"
+                   style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.73735899;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 163.278,308.203 c 0,1.121 -0.91,2.031 -2.031,2.031 -1.125,0 -2.032,-0.91 -2.032,-2.031 0,-1.121 0.907,-2.031 2.032,-2.031 1.121,0 2.031,0.91 2.031,2.031 z" /></g><g
+                 id="g2332"
+                 transform="matrix(0.999997,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2330"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 200.29,345.93 -29.95,-17.075 -2.91,39.364" /></g><g
+                 id="g2336"
+                 transform="matrix(0.999997,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2334"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 170.004,334.43 c 0,0 2.258,1.195 3.93,-0.098 1.145,-0.883 1.246,-3.027 1.246,-3.027" /></g><g
+                 id="g2340"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2338"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 94.676,224.355 46.101,39.875" /></g><g
+                 id="g2344"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2342"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="M 94.684,224.563 81.992,243.59" /></g><g
+                 id="g2348"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2346"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 100.02,228.859 c 0,0 -1.875,2.914 -3.997,2.914 -2.125,0 -4.57,-2.992 -4.57,-2.992" /></g><g
+                 id="g2352"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2350"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="M 63.434,164.191 32.457,299.184" /></g><g
+                 id="g2356"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2354"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 63.715,164.219 28.574,28" /></g><g
+                 id="g2360"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2358"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="M 63.715,164.219 203.75,184.203" /></g><g
+                 id="g2364"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2362"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 63.145,164.074 71.429,28.715 26.227,114.121" /></g><g
+                 id="g2368"
+                 transform="matrix(0,-1,-1,0,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2366"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 218.004,-202.891 27.867,-30.23" /></g><g
+                 id="g2372"
+                 transform="matrix(0,-1,-1,0,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2370"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 272.699,-196.969 -54.492,-5.929 27.148,28.285" /></g><g
+                 id="g2376"
+                 transform="matrix(0,-1,-1,0,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2374"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 222.543,-207.754 c 0,0 2.305,3.106 2.305,4.906 0,1.805 -2.461,4.395 -2.461,4.395" /></g><g
+                 id="g2380"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2378"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 58.504,332.086 35.137,11.961 v 24.648" /></g><g
+                 id="g2384"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2382"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 58.609,332.184 61.965,13.519" /></g><g
+                 id="g2388"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2386"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 58.688,332.027 v 13.789" /></g><g
+                 id="g2392"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2390"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 71.207,334.836 c 0,0 -1.609,2.328 -3.555,3.613 -2.461,1.621 -9.047,-0.14 -9.047,-0.14" /></g><g
+                 id="g2396"
+                 transform="matrix(1,0,0,-1,0,386.63864)"><path
+                   inkscape:connector-curvature="0"
+                   id="path2394"
+                   style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   d="m 101.523,115.863 22.575,-1.715" /></g></g></g></g></g></g></g></svg>

BIN
images/original_sccd_features.pdf


File diff suppressed because it is too large
+ 1 - 0
images/package_dependencies.drawio


File diff suppressed because it is too large
+ 1 - 0
images/package_dependencies_nolabel.drawio


BIN
images/package_dependencies_nolabel.pdf


File diff suppressed because it is too large
+ 1 - 0
images/parser_analysis_execution.drawio


BIN
images/parser_analysis_execution.pdf


BIN
images/platforms.pdf


File diff suppressed because it is too large
+ 1 - 0
images/priority_example.drawio


+ 0 - 0
images/priority_example.pdf


Some files were not shown because too many files changed in this diff