Bladeren bron

UPDATE JAVA9-FLOWCHART;

ignalxy 4 jaren geleden
bovenliggende
commit
e967376679
38 gewijzigde bestanden met toevoegingen van 799 en 744 verwijderingen
  1. 2 1
      .gitignore
  2. 1 0
      .idea/compiler.xml
  3. 4 1
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/AidlToJson.java
  4. 0 0
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/Aidl.interp
  5. 0 0
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/Aidl.tokens
  6. 1 1
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlBaseListener.java
  7. 1 1
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlBaseVisitor.java
  8. 0 0
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlLexer.interp
  9. 1 1
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlLexer.java
  10. 0 0
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlLexer.tokens
  11. 1 1
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlListener.java
  12. 1 1
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlParser.java
  13. 1 1
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlToJsonListener.java
  14. 1 1
      aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlVisitor.java
  15. 19 0
      antlr4-utils/pom.xml
  16. 11 0
      antlr4-utils/src/main/java/xyz/ignatz/antlr4/Utils.java
  17. 48 13
      docs/java9-flowchart.md
  18. 11 6
      example/java/Test.java
  19. 0 61
      flowchart/src/main/java/xyz/ignatz/antlr/utils/Blocks.java
  20. 29 42
      flowchart/src/main/java/xyz/ignatz/flowchart/module/Block.java
  21. 44 0
      flowchart/src/main/java/xyz/ignatz/flowchart/module/Factory.java
  22. 8 8
      flowchart/src/main/java/xyz/ignatz/flowchart/module/Node.java
  23. 4 4
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/Java9FlowchartGenerator.java
  24. 0 0
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9.interp
  25. 0 0
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9.tokens
  26. 1 1
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9BaseListener.java
  27. 1 1
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9BaseVisitor.java
  28. 30 76
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9FlowchartVisitor.java
  29. 0 0
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Lexer.interp
  30. 1 1
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Lexer.java
  31. 0 0
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Lexer.tokens
  32. 1 1
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Listener.java
  33. 1 3
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Parser.java
  34. 1 1
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Visitor.java
  35. 38 0
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/utils/Blocks.java
  36. 1 1
      java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/utils/JavaName.java
  37. 530 516
      output/flowchart/Person#main.svg
  38. 6 0
      pom.xml

+ 2 - 1
.gitignore

@@ -1,4 +1,5 @@
 /aidl-to-json/target/
 /java9-flowchart/target/
 /flowchart/target/
-/map-to-json/target/
+/map-to-json/target/
+/antlr4-utils/target/

+ 1 - 0
.idea/compiler.xml

@@ -11,6 +11,7 @@
         <module name="flowchart" />
         <module name="aidl-to-json" />
         <module name="java-flowchart" />
+        <module name="antlr4-utils" />
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>

+ 4 - 1
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/AidlToJson.java → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/AidlToJson.java

@@ -1,10 +1,13 @@
-package xyz.ignatz.antlr.aidl;
+package xyz.ignatz.antlr4.aidl;
 
 import java.io.*;
 
 import xyz.ignatz.antlr.aidl.recognizer.*;
 import org.antlr.v4.runtime.*;
 import org.antlr.v4.runtime.tree.*;
+import xyz.ignatz.antlr4.aidl.recognizer.AidlLexer;
+import xyz.ignatz.antlr4.aidl.recognizer.AidlParser;
+import xyz.ignatz.antlr4.aidl.recognizer.AidlToJsonListener;
 
 public class AidlToJson
 {

+ 0 - 0
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/Aidl.interp → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/Aidl.interp


+ 0 - 0
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/Aidl.tokens → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/Aidl.tokens


+ 1 - 1
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/AidlBaseListener.java → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlBaseListener.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/aidl-to-json/src/main/resources/grammar\Aidl.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.aidl.recognizer;
+package xyz.ignatz.antlr4.aidl.recognizer;
 
 import org.antlr.v4.runtime.ParserRuleContext;
 import org.antlr.v4.runtime.tree.ErrorNode;

+ 1 - 1
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/AidlBaseVisitor.java → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlBaseVisitor.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/aidl-to-json/src/main/resources/grammar\Aidl.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.aidl.recognizer;
+package xyz.ignatz.antlr4.aidl.recognizer;
 import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
 
 /**

+ 0 - 0
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/AidlLexer.interp → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlLexer.interp


+ 1 - 1
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/AidlLexer.java → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlLexer.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/aidl-to-json/src/main/resources/grammar\Aidl.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.aidl.recognizer;
+package xyz.ignatz.antlr4.aidl.recognizer;
 import org.antlr.v4.runtime.Lexer;
 import org.antlr.v4.runtime.CharStream;
 import org.antlr.v4.runtime.*;

+ 0 - 0
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/AidlLexer.tokens → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlLexer.tokens


+ 1 - 1
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/AidlListener.java → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlListener.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/aidl-to-json/src/main/resources/grammar\Aidl.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.aidl.recognizer;
+package xyz.ignatz.antlr4.aidl.recognizer;
 import org.antlr.v4.runtime.tree.ParseTreeListener;
 
 /**

+ 1 - 1
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/AidlParser.java → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlParser.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/aidl-to-json/src/main/resources/grammar\Aidl.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.aidl.recognizer;
+package xyz.ignatz.antlr4.aidl.recognizer;
 import org.antlr.v4.runtime.atn.*;
 import org.antlr.v4.runtime.dfa.DFA;
 import org.antlr.v4.runtime.*;

+ 1 - 1
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/AidlToJsonListener.java → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlToJsonListener.java

@@ -1,4 +1,4 @@
-package xyz.ignatz.antlr.aidl.recognizer;
+package xyz.ignatz.antlr4.aidl.recognizer;
 
 import java.util.*;
 

+ 1 - 1
aidl-to-json/src/main/java/xyz/ignatz/antlr/aidl/recognizer/AidlVisitor.java → aidl-to-json/src/main/java/xyz/ignatz/antlr4/aidl/recognizer/AidlVisitor.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/aidl-to-json/src/main/resources/grammar\Aidl.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.aidl.recognizer;
+package xyz.ignatz.antlr4.aidl.recognizer;
 import org.antlr.v4.runtime.tree.ParseTreeVisitor;
 
 /**

+ 19 - 0
antlr4-utils/pom.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>antlr</artifactId>
+        <groupId>xyz.ignatz</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>antlr4-utils</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+</project>

+ 11 - 0
antlr4-utils/src/main/java/xyz/ignatz/antlr4/Utils.java

@@ -0,0 +1,11 @@
+package xyz.ignatz.antlr4;
+
+import org.antlr.v4.runtime.ParserRuleContext;
+import org.antlr.v4.runtime.misc.Interval;
+
+public class Utils {
+    public static String getFullText(ParserRuleContext ctx) {
+        return ctx.children == null ? "" : ctx.start.getInputStream().getText(
+                new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+    }
+}

+ 48 - 13
docs/java9-flowchart.md

@@ -11,21 +11,56 @@
 - java9-flowchart
   此部分负责将java9程序转化为流程图。
   - java 
-      - Java9FlowchartGenerator 程序入口,需提供两个参数:java文件路径及输出文件夹路径。
-      - recognizer
-        此部分负责分析Java语法,包括ANTLR4根据Java9.g4生成的文件,以及自定义的访问器Java9FlowchartVisitor。
-        其中Java9FlowchartVisitor负责将Java9程序转化为图结构。
-      - utils
-        一些用于精简Java9FlowchartVisitor中重复代码的小工具。
-        - JavaName
-          用于维护当前访问位置所在class/method。
+    - <big>`Java9FlowchartGenerator`</big>
+    
+      程序主体,输入文件名和输出路径,输出图片。程序整体结构如下:
+      1. 调用ANTLR4将Java9程序转换为语法树;
+      2. 使用`Java9FlowchartVisitor`遍历语法树,建图;
+      3. `Flowchart`将图翻译为`graphviz-java`需要的形式;
+      4. 绘制对应的流程图。
+  
+    - recognizer:此部分负责分析Java语法。
+  
+      - ANTLR4根据Java9.g4生成的基本分析器。
+  
+      - <big>`Java9FlowchartVisitor`</big>负责处理`Block`的连接。
+        
+        继承自`Java9BaseVisitor<Block>`,即visit函数返回`Block`,`Block`维护一个子图。我们需要对每条规则设计正确的`Block`生成方式。规则分类如下(未列出的规则默认返回`defaultResult() -> null`):
+        1. 原子单位:直接返回`Block`,不再向下递归,有`localVariableDeclaration`, `statementExpressionList`, `emptyStatement`, `expressionStatement`, `assertStatement`, `breakStatement`, `continueStatement`, `returnStatement`;
+        2. 顺序结构:顺序结构的出现可能很多,但我们只需要重载`aggregateResult(aggregate, next)`函数为以顺序结构的方式连接两个Block即可;
+        3. 分支结构:含`if`或`switch`的规则。需要使用正确的方式连接一个判断Block和一或多个分支Block;
+        4. 循环结构:含`for`或`while`的规则。在分支结构的基础上,再增加一条边形成循环即可。 
+
+    - `Blocks`
+      提供更多构造`Block`的工厂方法。
+      用于精简`Java9FlowchartVisitor`中重复代码。
+    
+    - `JavaName`
+      用于维护当前访问位置所在`class`/`method`。
+  
   - resource
-      - grammar 
-        存放Java9.g4
+    - grammar 
+      存放Java9.g4
+
 - flowchart
   此部分为存储流程图的数据结构
   - java
-      - Block
+      - `Node`
+        
+        - 代表流程图的一个节点,成员有:
+          - `label` 节点的标签;
+          - `line` 行号;
+          - `Map<String, Node> links`存储转移边。
+            - **仅允许在构造时定义出边,默认指向`null`,称为空边。**
+            - **后续仅允许设置空边的指向。**
+            - **仅允许`Block`操作,对`Java9FlowchartVisitor`透明。**
+
+      - <big>`Block`</big>
+      
+        - 代表一个子流程图,负责实现块连接的基本操作,成员有:
+          - `start` 入口节点;
+          - `nullLinks` 空边表,空边有分类,分类不固定,可修改,初始为边的标记。
         
-      - Blocks
-        提供更多构造Block的工厂方法。
+        - 块连接
+          - 为了保证效率,每次块连接从空边表中查找边,设置完后删去;
+          - 另外还有修改边分类的操作`modifyLinkType`。

+ 11 - 6
example/java/Test.java

@@ -17,12 +17,15 @@ class Person{
 		}
 		char i = 'a';
 		switch(i) {
-		case 'a':
-			System.out.println("123");
-			break;
-		case 'b':
-			System.out.println("456");
-			break;
+			default:
+			case 'a':
+				System.out.println("123");
+			case 'b':
+				System.out.println("456");
+				break;
+			case 'c':
+				System.out.println("789");
+			case 'd':
 		}
 
 		do {
@@ -52,6 +55,8 @@ class Person{
 					age--;
 					continue;
 				}
+				++age;
 		}
+
 	}
 }

+ 0 - 61
flowchart/src/main/java/xyz/ignatz/antlr/utils/Blocks.java

@@ -1,61 +0,0 @@
-package xyz.ignatz.antlr.utils;
-
-import org.antlr.v4.runtime.ParserRuleContext;
-import org.antlr.v4.runtime.misc.Interval;
-import xyz.ignatz.flowchart.module.Block;
-import xyz.ignatz.flowchart.module.Node;
-
-import java.util.*;
-
-public class Blocks {
-    public static String getFullText(ParserRuleContext ctx) {
-        return ctx.children == null ? ""
-                : ctx.start.getInputStream().getText(
-                        new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
-    }
-
-    public static Block build(ParserRuleContext ctx) {
-        return build(ctx, "");
-    }
-
-    public static Block build(ParserRuleContext ctx, String tpDsc) {
-        return build(ctx, Arrays.asList(tpDsc));
-    }
-
-    public static Block buildJudgement(ParserRuleContext ctx) {
-        Objects.requireNonNull(ctx);
-        return build(ctx, Arrays.asList("true", "false"));
-    }
-
-    public static Block buildJudgement(ParserRuleContext ctx, Integer line) {
-        return ctx == null ? build("true", line, "true") : buildJudgement(ctx);
-    }
-
-    public static Block build(ParserRuleContext ctx, Collection<String> tpDscs) {
-        Map<String, Node> tps = new HashMap<>();
-        tpDscs.forEach(tpDsc -> tps.put(tpDsc, null));
-        return build(ctx, tps);
-    }
-
-    public static Block build(ParserRuleContext ctx, Map<String, Node> tps) {
-        return ctx == null ? null : new Block(new Node(getFullText(ctx), ctx.getStart().getLine(), tps));
-    }
-
-    public static Block build(String dsc, Integer line) {
-        return build(dsc, line, "");
-    }
-
-    public static Block build(String dsc, Integer line, String tpDsc) {
-        return build(dsc, line, Arrays.asList(tpDsc));
-    }
-
-    public static Block build(String dsc, Integer line, Collection<String> tpDscs) {
-        Map<String, Node> tps = new HashMap<>();
-        tpDscs.forEach(tpDsc -> tps.put(tpDsc, null));
-        return build(dsc, line, tps);
-    }
-
-    public static Block build(String dsc, Integer line, Map<String, Node> tps) {
-        return new Block(new Node(dsc, line, tps));
-    }
-}

+ 29 - 42
flowchart/src/main/java/xyz/ignatz/flowchart/module/Block.java

@@ -5,24 +5,24 @@ import java.util.*;
 
 public class Block {
 
-    class Edge {
-        Node src;
+    class Link {
+        Node from;
         String label;
-        public Edge(Node src, String label) {
-            this.src = src;
+        public Link(Node from, String label) {
+            this.from = from;
             this.label = label;
         }
     }
 
     Node start;
-    Map<String, HashSet<Edge>> nullEdges = new HashMap<>();
+    Map<String, HashSet<Link>> nullLinks = new HashMap<>();
 
     public Block(Node node) {
         start = node;
-        node.tps.forEach((label, dst) -> {
-            if (dst == null) {
-                nullEdges.putIfAbsent(label, new HashSet<>());
-                nullEdges.get(label).add(new Edge(node, label));
+        node.links.forEach((label, to) -> {
+            if (to == null) {
+                nullLinks.putIfAbsent(label, new HashSet<>());
+                nullLinks.get(label).add(new Link(node, label));
             }
         });
     }
@@ -31,50 +31,37 @@ public class Block {
         return start;
     }
 
-    public void connectLoopJudgement(Block judgement, boolean judgeFirst) {
-        judgement.connect(start, "true");
-        connect(judgement, Arrays.asList("", "continue"));
-        modifyTpType("false", "");
-        modifyTpType("break", "");
-        if (judgeFirst) start = judgement.start;
+    public Block link(Block next) {
+        return link(next,"");
     }
 
-    public void connect(Block next) {
-        connect(next,"");
+    public Block link(Block next, String type) {
+        return next == null ? this : link(next.start, type).merge(next);
     }
 
-    public void connect(Block next, String type) {
-        connect(next, Arrays.asList(type));
-    }
-
-    public void connect(Block next, Collection<String> types) {
-        if (next == null) return;
-        types.forEach(type -> connect(next.start, type));
-        merge(next);
-    }
-
-    public void modifyTpType(String old, String type) {
+    public Block modifyLinkType(String old, String type) {
         Objects.requireNonNull(old);
         Objects.requireNonNull(type);
-        if (type.equals(old) || !nullEdges.containsKey(old)) return;
-        nullEdges.putIfAbsent(type, new HashSet<>());
-        nullEdges.get(type).addAll(nullEdges.remove(old));
+        if (type.equals(old) || !nullLinks.containsKey(old)) return this;
+        nullLinks.putIfAbsent(type, new HashSet<>());
+        nullLinks.get(type).addAll(nullLinks.remove(old));
+        return this;
     }
 
-
-    void connect(Node dst, String type) {
-        Set<Edge> edges = nullEdges.remove(type);
-        if (edges == null) return;
-        edges.forEach(edge -> edge.src.connect(dst, edge.label));
+    Block link(Node to, String type) {
+        Set<Link> links = nullLinks.remove(type);
+        if (links != null)
+            links.forEach(link -> link.from.link(to, link.label));
+        return this;
     }
 
-    void merge(Block other) {
-        other.nullEdges.forEach((type, edges) ->
-                nullEdges.merge(type, edges, (old, value) -> {
+    Block merge(Block other) {
+        other.nullLinks.forEach((type, links) ->
+                nullLinks.merge(type, links, (old, value) -> {
                     old.addAll(value);
                     return old;
-                })
-        );
-        other.nullEdges = nullEdges;
+                }));
+        other.nullLinks = nullLinks;
+        return this;
     }
 }

+ 44 - 0
flowchart/src/main/java/xyz/ignatz/flowchart/module/Factory.java

@@ -0,0 +1,44 @@
+package xyz.ignatz.flowchart.module;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+public class Factory {
+    public static Block block(String dsc, Integer line) {
+        return block(dsc, line, "");
+    }
+
+    public static Block block(String dsc, Integer line, String label) {
+        return block(dsc, line, Arrays.asList(label));
+    }
+
+    public static Block block(String dsc, Integer line, Collection<String> labels) {
+        Map<String, Node> links = new HashMap<>();
+        labels.forEach(label -> links.put(label, null));
+        return block(dsc, line, links);
+    }
+
+    public static Block block(String dsc, Integer line, Map<String, Node> links) {
+        return new Block(new Node(dsc, line, links));
+    }
+
+    static public Block link(Block block, Block next) {
+        return block == null ? next : block.link(next);
+    }
+
+    static public Block loop(Block judge, Block block, boolean judgeFirst) {
+        block.link(judge.start, "").link(judge.start, "continue");
+        ifThen(judge, block).modifyLinkType("break", "");
+        return judgeFirst ? judge : block;
+    }
+
+    static public Block ifThen(Block judge, Block bTrue) {
+        return judge.link(bTrue, "true").modifyLinkType("false", "");
+    }
+
+    static public Block ifThenElse(Block judge, Block bTrue, Block bFalse) {
+        return judge.link(bTrue, "true").link(bFalse, "false");
+    }
+}

+ 8 - 8
flowchart/src/main/java/xyz/ignatz/flowchart/module/Node.java

@@ -7,19 +7,19 @@ import java.util.*;
 public class Node implements INode {
     String label;
     Integer line;
-    Map<String, Node> tps;
+    Map<String, Node> links;
 
-    public Node(String label, Integer line, Map<String, Node> tps) {
-        tps.remove(null);
+    public Node(String label, Integer line, Map<String, Node> links) {
+        links.remove(null);
         this.label = label;
         this.line = line;
-        this.tps = tps;
+        this.links = links;
     }
 
-    public boolean connect(Node dst, String label) {
+    boolean link(Node to, String label) {
         Objects.requireNonNull(label);
-        if (tps.containsKey(label) && tps.get(label) == null) {
-            tps.put(label, dst);
+        if (links.containsKey(label) && links.get(label) == null) {
+            links.put(label, to);
             return true;
         }
         return false;
@@ -30,6 +30,6 @@ public class Node implements INode {
     }
 
     public Map<String, INode> links() {
-        return new HashMap<>(tps);
+        return new HashMap<>(links);
     }
 }

+ 4 - 4
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/Java9FlowchartGenerator.java → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/Java9FlowchartGenerator.java

@@ -1,4 +1,4 @@
-package xyz.ignatz.antlr.java9;
+package xyz.ignatz.antlr4.java9;
 
 import guru.nidi.graphviz.engine.Format;
 import guru.nidi.graphviz.engine.Graphviz;
@@ -6,9 +6,9 @@ import org.antlr.v4.runtime.tree.ParseTree;
 import org.antlr.v4.runtime.CharStream;
 import org.antlr.v4.runtime.CharStreams;
 import org.antlr.v4.runtime.CommonTokenStream;
-import xyz.ignatz.antlr.java9.recognizer.Java9Lexer;
-import xyz.ignatz.antlr.java9.recognizer.Java9FlowchartVisitor;
-import xyz.ignatz.antlr.java9.recognizer.Java9Parser;
+import xyz.ignatz.antlr4.java9.recognizer.Java9Lexer;
+import xyz.ignatz.antlr4.java9.recognizer.Java9FlowchartVisitor;
+import xyz.ignatz.antlr4.java9.recognizer.Java9Parser;
 import xyz.ignatz.flowchart.Flowchart;
 
 import java.io.File;

+ 0 - 0
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9.interp → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9.interp


+ 0 - 0
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9.tokens → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9.tokens


+ 1 - 1
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9BaseListener.java → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9BaseListener.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/java-control-flow/src/main/resources/grammar\Java9.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.java9.recognizer;
+package xyz.ignatz.antlr4.java9.recognizer;
 
 import org.antlr.v4.runtime.ParserRuleContext;
 import org.antlr.v4.runtime.tree.ErrorNode;

+ 1 - 1
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9BaseVisitor.java → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9BaseVisitor.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/java-control-flow/src/main/resources/grammar\Java9.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.java9.recognizer;
+package xyz.ignatz.antlr4.java9.recognizer;
 import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
 
 /**

+ 30 - 76
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9FlowchartVisitor.java → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9FlowchartVisitor.java

@@ -1,10 +1,12 @@
-package xyz.ignatz.antlr.java9.recognizer;
+package xyz.ignatz.antlr4.java9.recognizer;
 
-import xyz.ignatz.antlr.java9.utils.JavaName;
+import xyz.ignatz.antlr4.java9.utils.JavaName;
 import xyz.ignatz.flowchart.Flowchart;
 import xyz.ignatz.flowchart.module.Block;
+import xyz.ignatz.flowchart.module.Factory;
 import xyz.ignatz.flowchart.module.Node;
-import xyz.ignatz.antlr.utils.Blocks;
+import static xyz.ignatz.antlr4.java9.utils.Blocks.*;
+import static xyz.ignatz.flowchart.module.Factory.*;
 
 import java.util.*;
 
@@ -19,38 +21,22 @@ public class Java9FlowchartVisitor extends Java9BaseVisitor<Block> {
 
     @Override
     protected Block aggregateResult(Block block, Block next) {
-        if (block == null) return next;
-        block.connect(next);
-        return block;
+        return link(block, next);
     }
 
     @Override
     public Block visitIfThenStatement(Java9Parser.IfThenStatementContext ctx) {
-        Block body = visitStatement(ctx.statement());
-        Block block = Blocks.buildJudgement(ctx.expression());
-        block.connect(body, "true");
-        block.modifyTpType("false", "");
-        return block;
+        return ifThen(judge(ctx), visit(ctx.statement()));
     }
 
     @Override
     public Block visitIfThenElseStatement(Java9Parser.IfThenElseStatementContext ctx) {
-        Block bodyTrue = visitStatementNoShortIf(ctx.statementNoShortIf());
-        Block bodyFalse = visitStatement(ctx.statement());
-        Block block = Blocks.buildJudgement(ctx.expression());
-        block.connect(bodyTrue, "true");
-        block.connect(bodyFalse, "false");
-        return block;
+        return ifThenElse(judge(ctx), visit(ctx.statementNoShortIf()), visit(ctx.statement()));
     }
 
     @Override
     public Block visitIfThenElseStatementNoShortIf(Java9Parser.IfThenElseStatementNoShortIfContext ctx) {
-        Block bodyTrue = visitStatementNoShortIf(ctx.statementNoShortIf().get(0));
-        Block bodyFalse = visitStatementNoShortIf(ctx.statementNoShortIf().get(1));
-        Block block = Blocks.buildJudgement(ctx.expression());
-        block.connect(bodyTrue, "true");
-        block.connect(bodyFalse, "false");
-        return block;
+        return ifThenElse(judge(ctx), visit(ctx.statementNoShortIf(0)), visit(ctx.statementNoShortIf(1)));
     }
 
     @Override
@@ -58,61 +44,38 @@ public class Java9FlowchartVisitor extends Java9BaseVisitor<Block> {
         Map<String, Node> map = new HashMap<>();
         Block body = null;
         for (Java9Parser.SwitchBlockStatementGroupContext group : ctx.switchBlock().switchBlockStatementGroup()) {
-            Block block = visitBlockStatements(group.blockStatements());
+            Block block = visit(group.blockStatements());
             Node start = block.getStart();
             group.switchLabels().switchLabel().forEach(lab -> map.put(lab.getText(), start));
-            body = aggregateResult(body, block);
+            body = link(body, block);
         }
-        Block block = Blocks.build("switch (" + ctx.expression().getText() + ")", ctx.getStart().getLine(), map);
-        block.connect(body);
-        block.modifyTpType("break", "");
-        return block;
+        return block("switch (" + ctx.expression().getText() + ")", ctx.start.getLine(), map)
+                .link(body).modifyLinkType("break", "");
     }
 
     @Override
     public Block visitDoStatement(Java9Parser.DoStatementContext ctx) {
-        Block block = visitStatement(ctx.statement());
-        Block judge = Blocks.buildJudgement(ctx.expression());
-        block.connectLoopJudgement(judge, false);
-        return block;
+        return loop(judge(ctx), visit(ctx.statement()), false);
     }
 
     @Override
     public Block visitBasicForStatement(Java9Parser.BasicForStatementContext ctx) {
-        Block init = Blocks.build(ctx.forInit());
-        Block judge = Blocks.buildJudgement(ctx.expression(), ctx.getStart().getLine());
-        Block update = Blocks.build(ctx.forUpdate());
-        Block body = visitStatement(ctx.statement());
-        body.connect(update);
-        body.connectLoopJudgement(judge, true);
-        return aggregateResult(init, body);
+        return loop(judge(ctx), visit(ctx.statement()).link(block(ctx.forUpdate())), true);
     }
 
     @Override
     public Block visitBasicForStatementNoShortIf(Java9Parser.BasicForStatementNoShortIfContext ctx) {
-        Block init = Blocks.build(ctx.forInit());
-        Block judge = Blocks.buildJudgement(ctx.expression(), ctx.getStart().getLine());
-        Block update = visitForUpdate(ctx.forUpdate());
-        Block body = visitStatementNoShortIf(ctx.statementNoShortIf());
-        body.connect(update);
-        body.connectLoopJudgement(judge, true);
-        return aggregateResult(init, body);
+        return loop(judge(ctx), visit(ctx.statementNoShortIf()).link(block(ctx.forUpdate())), true);
     }
 
     @Override
     public Block visitWhileStatement(Java9Parser.WhileStatementContext ctx) {
-        Block judge = Blocks.buildJudgement(ctx.expression());
-        Block body = visitStatement(ctx.statement());
-        body.connectLoopJudgement(judge, true);
-        return body;
+        return loop(judge(ctx), visit(ctx.statement()), true);
     }
 
     @Override
     public Block visitWhileStatementNoShortIf(Java9Parser.WhileStatementNoShortIfContext ctx) {
-        Block judge = Blocks.buildJudgement(ctx.expression());
-        Block body = visitStatementNoShortIf(ctx.statementNoShortIf());
-        body.connectLoopJudgement(judge, true);
-        return body;
+        return loop(judge(ctx), visit(ctx.statementNoShortIf()), true);
     }
 
     @Override
@@ -149,67 +112,58 @@ public class Java9FlowchartVisitor extends Java9BaseVisitor<Block> {
 
     @Override
     public Block visitMethodDeclaration(Java9Parser.MethodDeclarationContext ctx) {
+        String dsc = name.toString() + '#' + ctx.methodHeader().methodDeclarator().getText();
         name.push('#', ctx.methodHeader().methodDeclarator().identifier().getText());
-        Block block = Blocks.build(name.toString(), ctx.getStart().getLine());
-        Block body = visitMethodBody(ctx.methodBody());
-        block.connect(body);
-        flowcharts.add(new Flowchart(name.toString(), block));
+        flowcharts.add(new Flowchart(name.toString(), block(dsc, ctx.start.getLine()).link(visit(ctx.methodBody()))));
         name.pop('#');
         return null;
     }
 
     @Override
     public Block visitLocalVariableDeclaration(Java9Parser.LocalVariableDeclarationContext ctx) {
-        return Blocks.build(ctx);
+        return block(ctx);
     }
 
     @Override
     public Block visitStatementExpressionList(Java9Parser.StatementExpressionListContext ctx) {
-        return Blocks.build(ctx);
+        return block(ctx);
     }
 
     @Override
     public Block visitEmptyStatement(Java9Parser.EmptyStatementContext ctx) {
-        return Blocks.build(ctx);
+        return block(ctx);
     }
 
     @Override
     public Block visitExpressionStatement(Java9Parser.ExpressionStatementContext ctx) {
-        return Blocks.build(ctx);
+        return block(ctx);
     }
 
     @Override
     public Block visitAssertStatement(Java9Parser.AssertStatementContext ctx) {
         List<Java9Parser.ExpressionContext> exp = ctx.expression();
-        Block judge = Blocks.buildJudgement(exp.get(0));
-        String info = exp.size() == 1 ? "assert !(" + exp.get(0).getText() + ")" : "assert " + exp.get(1).getText();
-        Block ast  = Blocks.build(info, ctx.start.getLine(), "assert failed");
-        judge.modifyTpType("true", "");
-        judge.connect(ast, "false");
-        return judge;
+        String info = ctx.expression().size() == 1 ? "assert failed" : "assert " + exp.get(1).getText();
+        return judge(ctx).modifyLinkType("true", "")
+                .link(block(info, ctx.start.getLine(), "assert failed"), "false");
         // TODO: assertStatement
     }
 
     @Override
     public Block visitBreakStatement(Java9Parser.BreakStatementContext ctx) {
         String label = ctx.identifier() == null ? "" : ctx.identifier().getText();
-        Block block = Blocks.build(ctx, label);
-        block.modifyTpType(label, "break");
-        return block;
+        return block(ctx, label).modifyLinkType(label, "break");
         // TODO: break label
     }
 
     @Override
     public Block visitContinueStatement(Java9Parser.ContinueStatementContext ctx) {
         String label = ctx.identifier() == null ? "" : ctx.identifier().getText();
-        Block block = Blocks.build(ctx, label);
-        block.modifyTpType(label, "continue");
-        return block;
+        return block(ctx, label).modifyLinkType(label, "continue");
         // TODO: continue label
     }
 
     @Override
     public Block visitReturnStatement(Java9Parser.ReturnStatementContext ctx) {
-        return Blocks.build(ctx, "return");
+        return block(ctx, "return");
     }
 }

+ 0 - 0
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9Lexer.interp → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Lexer.interp


+ 1 - 1
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9Lexer.java → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Lexer.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/java-control-flow/src/main/resources/grammar\Java9.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.java9.recognizer;
+package xyz.ignatz.antlr4.java9.recognizer;
 import org.antlr.v4.runtime.Lexer;
 import org.antlr.v4.runtime.CharStream;
 import org.antlr.v4.runtime.Token;

+ 0 - 0
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9Lexer.tokens → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Lexer.tokens


+ 1 - 1
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9Listener.java → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Listener.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/java-control-flow/src/main/resources/grammar\Java9.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.java9.recognizer;
+package xyz.ignatz.antlr4.java9.recognizer;
 import org.antlr.v4.runtime.tree.ParseTreeListener;
 
 /**

+ 1 - 3
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9Parser.java → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Parser.java

@@ -1,13 +1,11 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/java-control-flow/src/main/resources/grammar\Java9.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.java9.recognizer;
+package xyz.ignatz.antlr4.java9.recognizer;
 import org.antlr.v4.runtime.atn.*;
 import org.antlr.v4.runtime.dfa.DFA;
 import org.antlr.v4.runtime.*;
 import org.antlr.v4.runtime.misc.*;
 import org.antlr.v4.runtime.tree.*;
 import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
 
 @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
 public class Java9Parser extends Parser {

+ 1 - 1
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/recognizer/Java9Visitor.java → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/recognizer/Java9Visitor.java

@@ -1,5 +1,5 @@
 // Generated from E:/subjects/Compilers Principle/exp/antlr/java-control-flow/src/main/resources/grammar\Java9.g4 by ANTLR 4.9.1
-package xyz.ignatz.antlr.java9.recognizer;
+package xyz.ignatz.antlr4.java9.recognizer;
 import org.antlr.v4.runtime.tree.ParseTreeVisitor;
 
 /**

+ 38 - 0
java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/utils/Blocks.java

@@ -0,0 +1,38 @@
+package xyz.ignatz.antlr4.java9.utils;
+
+import org.antlr.v4.runtime.ParserRuleContext;
+import xyz.ignatz.antlr4.java9.recognizer.Java9Parser;
+import xyz.ignatz.flowchart.module.Block;
+import xyz.ignatz.flowchart.module.Node;
+import static xyz.ignatz.antlr4.Utils.*;
+
+import java.util.*;
+
+public class Blocks {
+
+    public static Block judge(ParserRuleContext ctx) {
+        List<ParserRuleContext> exp = ctx.getRuleContexts(Java9Parser.ExpressionContext.class);
+        return exp.isEmpty()
+                ? xyz.ignatz.flowchart.module.Factory.block("true", ctx.start.getLine(), "true")
+                : block(exp.get(0), Arrays.asList("true", "false"));
+    }
+
+    public static Block block(ParserRuleContext ctx) {
+        return block(ctx, "");
+    }
+
+    public static Block block(ParserRuleContext ctx, String label) {
+        return block(ctx, Arrays.asList(label));
+    }
+
+    public static Block block(ParserRuleContext ctx, Collection<String> labels) {
+        Map<String, Node> links = new HashMap<>();
+        labels.forEach(label -> links.put(label, null));
+        return block(ctx, links);
+    }
+
+    public static Block block(ParserRuleContext ctx, Map<String, Node> links) {
+        return ctx == null ? null : new Block(new Node(getFullText(ctx), ctx.getStart().getLine(), links));
+    }
+
+}

+ 1 - 1
java9-flowchart/src/main/java/xyz/ignatz/antlr/java9/utils/JavaName.java → java9-flowchart/src/main/java/xyz/ignatz/antlr4/java9/utils/JavaName.java

@@ -1,4 +1,4 @@
-package xyz.ignatz.antlr.java9.utils;
+package xyz.ignatz.antlr4.java9.utils;
 
 public class JavaName {
     String name = "";

+ 530 - 516
output/flowchart/Person#main.svg

@@ -1,659 +1,673 @@
-<svg width="1171px" height="1659px"
- viewBox="0.00 0.00 1170.54 1659.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0.0) translate(4.0 1655.0)">
+<svg width="1011px" height="1802px"
+ viewBox="0.00 0.00 1011.30 1802.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0.0) translate(4.0 1798.0)">
 <title>Person#main</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1655 1166.54,-1655 1166.54,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1798 1007.3,-1798 1007.3,4 -4,4"/>
 <!-- END -->
 <g id="node1" class="node">
 <title>END</title>
-<path fill="none" stroke="black" d="M50,-109C50,-109 20,-109 20,-109 14,-109 8,-103 8,-97 8,-97 8,-85 8,-85 8,-79 14,-73 20,-73 20,-73 50,-73 50,-73 56,-73 62,-79 62,-85 62,-85 62,-97 62,-97 62,-103 56,-109 50,-109"/>
-<text text-anchor="middle" x="35" y="-86.8" font-family="Times,serif" font-size="14.00">END</text>
+<path fill="none" stroke="black" d="M438,-213.6C438,-213.6 408,-213.6 408,-213.6 402,-213.6 396,-207.6 396,-201.6 396,-201.6 396,-189.6 396,-189.6 396,-183.6 402,-177.6 408,-177.6 408,-177.6 438,-177.6 438,-177.6 444,-177.6 450,-183.6 450,-189.6 450,-189.6 450,-201.6 450,-201.6 450,-207.6 444,-213.6 438,-213.6"/>
+<text text-anchor="middle" x="423" y="-191.4" font-family="Times,serif" font-size="14.00">END</text>
 </g>
-<!-- System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt; -->
+<!-- char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt; -->
 <g id="node2" class="node">
-<title>System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="1014.08,-1000.4 827.92,-1000.4 827.92,-964.4 1014.08,-964.4 1014.08,-1000.4"/>
-<text text-anchor="start" x="835.96" y="-979.2" font-family="Times,serif" font-size="14.00">System.out.println(&quot;234&quot;);</text>
-<text text-anchor="start" x="985.04" y="-979.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;15</text>
+<title>char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="798.41,-1289.4 699.59,-1289.4 699.59,-1253.4 798.41,-1253.4 798.41,-1289.4"/>
+<text text-anchor="start" x="707.54" y="-1268.2" font-family="Times,serif" font-size="14.00">char i = &#39;a&#39;</text>
+<text text-anchor="start" x="769.46" y="-1268.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;18</text>
 </g>
-<!-- System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt; -->
+<!-- switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt; -->
 <g id="node3" class="node">
-<title>System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="1014.08,-911.6 827.92,-911.6 827.92,-875.6 1014.08,-875.6 1014.08,-911.6"/>
-<text text-anchor="start" x="835.96" y="-890.4" font-family="Times,serif" font-size="14.00">System.out.println(&quot;456&quot;);</text>
-<text text-anchor="start" x="985.04" y="-890.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;16</text>
+<title>switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="798,-1216.4 709.91,-1198.4 798,-1180.4 886.09,-1198.4 798,-1216.4"/>
+<text text-anchor="start" x="760.87" y="-1195.2" font-family="Times,serif" font-size="14.00">switch (i)</text>
+<text text-anchor="start" x="814.13" y="-1195.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;19</text>
 </g>
-<!-- System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt; -->
+<!-- char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt;&#45;&gt;switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge1" class="edge">
-<title>System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M921,-964.25C921,-952.12 921,-935.62 921,-921.72"/>
-<polygon fill="black" stroke="black" points="924.5,-921.71 921,-911.71 917.5,-921.71 924.5,-921.71"/>
+<title>char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt;&#45;&gt;switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M760.86,-1253.21C767.17,-1244.07 775.02,-1232.7 781.87,-1222.77"/>
+<polygon fill="black" stroke="black" points="784.78,-1224.72 787.58,-1214.5 779.02,-1220.74 784.78,-1224.72"/>
 </g>
-<!-- i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
+<!-- System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt; -->
 <g id="node4" class="node">
-<title>i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="1039.18,-838.6 982.82,-838.6 982.82,-802.6 1039.18,-802.6 1039.18,-838.6"/>
-<text text-anchor="start" x="990.66" y="-817.4" font-family="Times,serif" font-size="14.00">i++</text>
-<text text-anchor="start" x="1010.34" y="-817.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;13</text>
+<title>System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="945.08,-1127.6 758.92,-1127.6 758.92,-1091.6 945.08,-1091.6 945.08,-1127.6"/>
+<text text-anchor="start" x="766.96" y="-1106.4" font-family="Times,serif" font-size="14.00">System.out.println(&quot;123&quot;);</text>
+<text text-anchor="start" x="916.04" y="-1106.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;22</text>
 </g>
-<!-- System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt;&#45;&gt;i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
+<!-- switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge2" class="edge">
-<title>System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt;&#45;&gt;i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M942.79,-875.41C954.39,-866.26 968.84,-854.86 981.44,-844.92"/>
-<polygon fill="black" stroke="black" points="983.73,-847.57 989.41,-838.63 979.4,-842.07 983.73,-847.57"/>
+<title>switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M820.09,-1184.55C828.17,-1178.77 836.64,-1171.25 842,-1162.4 846.41,-1155.13 848.93,-1146.32 850.36,-1138.05"/>
+<polygon fill="black" stroke="black" points="853.85,-1138.37 851.64,-1128.01 846.9,-1137.48 853.85,-1138.37"/>
+<text text-anchor="middle" x="869.76" y="-1149.8" font-family="Times,serif" font-size="14.00">case&#39;a&#39;:</text>
 </g>
-<!-- i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
+<!-- switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge4" class="edge">
+<title>switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M792.81,-1180.97C790.42,-1170.25 789.27,-1156.29 795.24,-1145.6 797.62,-1141.34 800.75,-1137.53 804.33,-1134.14"/>
+<polygon fill="black" stroke="black" points="806.63,-1136.79 812.19,-1127.77 802.22,-1131.35 806.63,-1136.79"/>
+<text text-anchor="middle" x="816.38" y="-1149.8" font-family="Times,serif" font-size="14.00">default:</text>
+</g>
+<!-- System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt; -->
 <g id="node5" class="node">
-<title>i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="921,-1162.2 859.51,-1144.2 921,-1126.2 982.49,-1144.2 921,-1162.2"/>
-<text text-anchor="start" x="897.61" y="-1141" font-family="Times,serif" font-size="14.00">i&lt;12</text>
-<text text-anchor="start" x="923.39" y="-1141" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;13</text>
+<title>System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="975.08,-1019.6 788.92,-1019.6 788.92,-983.6 975.08,-983.6 975.08,-1019.6"/>
+<text text-anchor="start" x="796.96" y="-998.4" font-family="Times,serif" font-size="14.00">System.out.println(&quot;456&quot;);</text>
+<text text-anchor="start" x="946.04" y="-998.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;24</text>
 </g>
-<!-- i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
+<!-- switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge3" class="edge">
-<title>i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M1023.25,-838.78C1031.92,-852.63 1042,-872.96 1042,-892.6 1042,-1056.4 1042,-1056.4 1042,-1056.4 1042,-1096.69 997.16,-1120.09 962.07,-1132.24"/>
-<polygon fill="black" stroke="black" points="960.9,-1128.94 952.48,-1135.37 963.07,-1135.6 960.9,-1128.94"/>
-</g>
-<!-- age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt; -->
-<g id="node6" class="node">
-<title>age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="965.71,-1073.4 876.29,-1073.4 876.29,-1037.4 965.71,-1037.4 965.71,-1073.4"/>
-<text text-anchor="start" x="884.39" y="-1052.2" font-family="Times,serif" font-size="14.00">age = 19;</text>
-<text text-anchor="start" x="936.61" y="-1052.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;14</text>
-</g>
-<!-- i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge4" class="edge">
-<title>i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M921,-1126.05C921,-1113.92 921,-1097.42 921,-1083.52"/>
-<polygon fill="black" stroke="black" points="924.5,-1083.51 921,-1073.51 917.5,-1083.51 924.5,-1083.51"/>
-<text text-anchor="middle" x="931.88" y="-1095.6" font-family="Times,serif" font-size="14.00">true</text>
+<title>switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M848.21,-1190.61C885.24,-1182.58 932.73,-1165.17 954,-1127.6 973.96,-1092.34 939.94,-1051.72 912.19,-1026.6"/>
+<polygon fill="black" stroke="black" points="914.41,-1023.89 904.58,-1019.94 909.8,-1029.16 914.41,-1023.89"/>
+<text text-anchor="middle" x="981.15" y="-1105.4" font-family="Times,serif" font-size="14.00">case&#39;b&#39;:</text>
 </g>
-<!-- char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt; -->
-<g id="node7" class="node">
-<title>char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="835.41,-1073.4 736.59,-1073.4 736.59,-1037.4 835.41,-1037.4 835.41,-1073.4"/>
-<text text-anchor="start" x="744.54" y="-1052.2" font-family="Times,serif" font-size="14.00">char i = &#39;a&#39;</text>
-<text text-anchor="start" x="806.46" y="-1052.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;18</text>
+<!-- System.out.println(&quot;789&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;27&lt;/font&gt;&lt;/i&gt; -->
+<g id="node30" class="node">
+<title>System.out.println(&quot;789&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;27&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="854.08,-1073.6 667.92,-1073.6 667.92,-1037.6 854.08,-1037.6 854.08,-1073.6"/>
+<text text-anchor="start" x="675.96" y="-1052.4" font-family="Times,serif" font-size="14.00">System.out.println(&quot;789&quot;);</text>
+<text text-anchor="start" x="825.04" y="-1052.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;27</text>
 </g>
-<!-- i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt; -->
+<!-- switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;789&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;27&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge5" class="edge">
-<title>i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M902.79,-1131.49C881.97,-1118.11 847.39,-1095.87 821.25,-1079.06"/>
-<polygon fill="black" stroke="black" points="823.04,-1076.06 812.74,-1073.59 819.26,-1081.94 823.04,-1076.06"/>
-<text text-anchor="middle" x="878.21" y="-1095.6" font-family="Times,serif" font-size="14.00">false</text>
+<title>switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;789&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;27&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M768.87,-1186.17C758.64,-1180.65 748.26,-1172.87 742.49,-1162.4 728.91,-1137.79 737.73,-1105.5 747.29,-1083.09"/>
+<polygon fill="black" stroke="black" points="750.54,-1084.4 751.51,-1073.85 744.17,-1081.49 750.54,-1084.4"/>
+<text text-anchor="middle" x="763.76" y="-1149.8" font-family="Times,serif" font-size="14.00">case&#39;c&#39;:</text>
 </g>
-<!-- age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt; -->
+<!-- System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge6" class="edge">
-<title>age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M921,-1037.21C921,-1029.19 921,-1019.45 921,-1010.47"/>
-<polygon fill="black" stroke="black" points="924.5,-1010.43 921,-1000.43 917.5,-1010.43 924.5,-1010.43"/>
+<title>System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M856.9,-1091.51C858.52,-1085.82 860.34,-1079.44 862,-1073.6 866.11,-1059.12 870.66,-1042.96 874.39,-1029.72"/>
+<polygon fill="black" stroke="black" points="877.83,-1030.4 877.17,-1019.82 871.09,-1028.5 877.83,-1030.4"/>
 </g>
-<!-- switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt; -->
-<g id="node8" class="node">
-<title>switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="717,-1000.4 628.91,-982.4 717,-964.4 805.09,-982.4 717,-1000.4"/>
-<text text-anchor="start" x="679.87" y="-979.2" font-family="Times,serif" font-size="14.00">switch (i)</text>
-<text text-anchor="start" x="733.13" y="-979.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;19</text>
+<!-- break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt; -->
+<g id="node6" class="node">
+<title>break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="888.98,-946.6 817.02,-946.6 817.02,-910.6 888.98,-910.6 888.98,-946.6"/>
+<text text-anchor="start" x="825.01" y="-925.4" font-family="Times,serif" font-size="14.00">break;</text>
+<text text-anchor="start" x="859.99" y="-925.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;25</text>
 </g>
-<!-- char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt;&#45;&gt;switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt; -->
+<!-- System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt;&#45;&gt;break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge7" class="edge">
-<title>char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt;&#45;&gt;switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M769.3,-1037.21C760.02,-1027.66 748.37,-1015.68 738.42,-1005.45"/>
-<polygon fill="black" stroke="black" points="740.7,-1002.76 731.22,-998.03 735.68,-1007.64 740.7,-1002.76"/>
+<title>System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt;&#45;&gt;break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M874.98,-983.41C871.63,-975.22 867.55,-965.22 863.82,-956.08"/>
+<polygon fill="black" stroke="black" points="866.98,-954.56 859.96,-946.63 860.5,-957.21 866.98,-954.56"/>
 </g>
-<!-- System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;21&lt;/font&gt;&lt;/i&gt; -->
-<g id="node9" class="node">
-<title>System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;21&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="810.08,-911.6 623.92,-911.6 623.92,-875.6 810.08,-875.6 810.08,-911.6"/>
-<text text-anchor="start" x="631.96" y="-890.4" font-family="Times,serif" font-size="14.00">System.out.println(&quot;123&quot;);</text>
-<text text-anchor="start" x="781.04" y="-890.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;21</text>
+<!-- age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;32&lt;/font&gt;&lt;/i&gt; -->
+<g id="node7" class="node">
+<title>age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;32&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="802.21,-857.8 719.79,-857.8 719.79,-821.8 802.21,-821.8 802.21,-857.8"/>
+<text text-anchor="start" x="727.89" y="-836.6" font-family="Times,serif" font-size="14.00">age*=2;</text>
+<text text-anchor="start" x="773.11" y="-836.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;32</text>
 </g>
-<!-- switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;21&lt;/font&gt;&lt;/i&gt; -->
+<!-- break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;32&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge8" class="edge">
-<title>switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;21&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M717,-964.25C717,-952.12 717,-935.62 717,-921.72"/>
-<polygon fill="black" stroke="black" points="720.5,-921.71 717,-911.71 713.5,-921.71 720.5,-921.71"/>
-<text text-anchor="middle" x="738.76" y="-933.8" font-family="Times,serif" font-size="14.00">case&#39;a&#39;:</text>
+<title>break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;32&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M834.82,-910.45C821.09,-897.49 802.05,-879.53 786.75,-865.1"/>
+<polygon fill="black" stroke="black" points="788.81,-862.23 779.14,-857.91 784.01,-867.32 788.81,-862.23"/>
 </g>
-<!-- System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt; -->
-<g id="node33" class="node">
-<title>System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="606.08,-911.6 419.92,-911.6 419.92,-875.6 606.08,-875.6 606.08,-911.6"/>
-<text text-anchor="start" x="427.96" y="-890.4" font-family="Times,serif" font-size="14.00">System.out.println(&quot;456&quot;);</text>
-<text text-anchor="start" x="577.04" y="-890.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;24</text>
+<!-- age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt; -->
+<g id="node8" class="node">
+<title>age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="650,-946.6 566.53,-928.6 650,-910.6 733.47,-928.6 650,-946.6"/>
+<text text-anchor="start" x="615.34" y="-925.4" font-family="Times,serif" font-size="14.00">age &lt; 30</text>
+<text text-anchor="start" x="663.66" y="-925.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;33</text>
 </g>
-<!-- switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt; -->
+<!-- age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;32&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge9" class="edge">
-<title>switch (i)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;19&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M689.91,-969.87C657.5,-956.08 602.6,-932.73 562.54,-915.68"/>
-<polygon fill="black" stroke="black" points="563.78,-912.4 553.21,-911.71 561.04,-918.85 563.78,-912.4"/>
-<text text-anchor="middle" x="655.15" y="-933.8" font-family="Times,serif" font-size="14.00">case&#39;b&#39;:</text>
-</g>
-<!-- break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt; -->
-<g id="node10" class="node">
-<title>break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="717.98,-838.6 646.02,-838.6 646.02,-802.6 717.98,-802.6 717.98,-838.6"/>
-<text text-anchor="start" x="654.01" y="-817.4" font-family="Times,serif" font-size="14.00">break;</text>
-<text text-anchor="start" x="688.99" y="-817.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;22</text>
+<title>age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;32&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M726.37,-857.94C717.12,-863.15 707.37,-869.25 699,-875.8 688.03,-884.38 677.24,-895.42 668.59,-905.1"/>
+<polygon fill="black" stroke="black" points="665.78,-902.99 661.87,-912.84 671.07,-907.58 665.78,-902.99"/>
 </g>
-<!-- System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;21&lt;/font&gt;&lt;/i&gt;&#45;&gt;break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt; -->
+<!-- age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;32&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge10" class="edge">
-<title>System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;21&lt;/font&gt;&lt;/i&gt;&#45;&gt;break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M708.53,-875.41C704.44,-867.13 699.46,-857.01 694.91,-847.79"/>
-<polygon fill="black" stroke="black" points="697.96,-846.05 690.39,-838.63 691.68,-849.15 697.96,-846.05"/>
+<title>age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;32&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M668.86,-914.63C678.07,-908.17 689.24,-900.15 699,-892.6 710.5,-883.71 722.84,-873.54 733.46,-864.57"/>
+<polygon fill="black" stroke="black" points="735.85,-867.13 741.21,-857.99 731.32,-861.79 735.85,-867.13"/>
+<text text-anchor="middle" x="729.88" y="-880" font-family="Times,serif" font-size="14.00">true</text>
 </g>
-<!-- age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;29&lt;/font&gt;&lt;/i&gt; -->
-<g id="node11" class="node">
-<title>age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;29&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="618.21,-749.8 535.79,-749.8 535.79,-713.8 618.21,-713.8 618.21,-749.8"/>
-<text text-anchor="start" x="543.89" y="-728.6" font-family="Times,serif" font-size="14.00">age*=2;</text>
-<text text-anchor="start" x="589.11" y="-728.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;29</text>
+<!-- age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt; -->
+<g id="node9" class="node">
+<title>age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="625,-857.8 548.69,-839.8 625,-821.8 701.31,-839.8 625,-857.8"/>
+<text text-anchor="start" x="593.84" y="-836.6" font-family="Times,serif" font-size="14.00">age&gt;10</text>
+<text text-anchor="start" x="635.16" y="-836.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;36</text>
 </g>
-<!-- break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;29&lt;/font&gt;&lt;/i&gt; -->
+<!-- age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge11" class="edge">
-<title>break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;22&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;29&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M661.26,-802.45C645.29,-789.25 623.06,-770.87 605.43,-756.31"/>
-<polygon fill="black" stroke="black" points="607.64,-753.59 597.7,-749.91 603.18,-758.98 607.64,-753.59"/>
+<title>age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M645.3,-911.27C641.68,-898.71 636.61,-881.1 632.44,-866.63"/>
+<polygon fill="black" stroke="black" points="635.73,-865.4 629.6,-856.76 629,-867.34 635.73,-865.4"/>
+<text text-anchor="middle" x="653.21" y="-880" font-family="Times,serif" font-size="14.00">false</text>
 </g>
-<!-- age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;30&lt;/font&gt;&lt;/i&gt; -->
-<g id="node12" class="node">
-<title>age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;30&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="441,-838.6 357.53,-820.6 441,-802.6 524.47,-820.6 441,-838.6"/>
-<text text-anchor="start" x="406.34" y="-817.4" font-family="Times,serif" font-size="14.00">age &lt; 30</text>
-<text text-anchor="start" x="454.66" y="-817.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;30</text>
+<!-- age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;&#45;&gt;END -->
+<g id="edge13" class="edge">
+<title>age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;&#45;&gt;END</title>
+<path fill="none" stroke="black" d="M633.97,-823.7C643.12,-806.83 656,-778.4 656,-752 656,-752 656,-752 656,-302.6 656,-217.77 526.47,-200.51 460.57,-197.22"/>
+<polygon fill="black" stroke="black" points="460.32,-193.71 450.18,-196.79 460.03,-200.7 460.32,-193.71"/>
+<text text-anchor="middle" x="669.21" y="-540.6" font-family="Times,serif" font-size="14.00">false</text>
 </g>
-<!-- age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;29&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;30&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge12" class="edge">
-<title>age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;29&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;30&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M543.1,-749.93C532.93,-755.36 521.87,-761.58 512,-767.8 496.33,-777.67 479.55,-789.83 466.24,-799.89"/>
-<polygon fill="black" stroke="black" points="463.87,-797.3 458.05,-806.15 468.12,-802.86 463.87,-797.3"/>
+<!-- age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt; -->
+<g id="node10" class="node">
+<title>age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="519,-769 423.54,-751 519,-733 614.46,-751 519,-769"/>
+<text text-anchor="start" x="478.06" y="-747.8" font-family="Times,serif" font-size="14.00">age%3==2</text>
+<text text-anchor="start" x="538.94" y="-747.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;37</text>
 </g>
-<!-- age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;30&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;29&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge13" class="edge">
-<title>age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;30&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;29&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M467.36,-808.25C481.05,-801.95 497.84,-793.58 512,-784.6 525.14,-776.26 538.74,-765.76 550.08,-756.39"/>
-<polygon fill="black" stroke="black" points="552.5,-758.93 557.91,-749.82 548,-753.57 552.5,-758.93"/>
-<text text-anchor="middle" x="545.88" y="-772" font-family="Times,serif" font-size="14.00">true</text>
+<!-- age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;&#45;&gt;age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge12" class="edge">
+<title>age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;&#45;&gt;age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M608.44,-825.24C591.14,-811.07 563.81,-788.69 543.91,-772.39"/>
+<polygon fill="black" stroke="black" points="546.1,-769.67 536.15,-766.04 541.67,-775.09 546.1,-769.67"/>
+<text text-anchor="middle" x="592.88" y="-791.2" font-family="Times,serif" font-size="14.00">true</text>
 </g>
-<!-- age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt; -->
-<g id="node13" class="node">
-<title>age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="441,-749.8 364.69,-731.8 441,-713.8 517.31,-731.8 441,-749.8"/>
-<text text-anchor="start" x="409.84" y="-728.6" font-family="Times,serif" font-size="14.00">age&gt;10</text>
-<text text-anchor="start" x="451.16" y="-728.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;33</text>
+<!-- age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt; -->
+<g id="node11" class="node">
+<title>age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="392.11,-680.2 301.89,-680.2 301.89,-644.2 392.11,-644.2 392.11,-680.2"/>
+<text text-anchor="start" x="309.95" y="-659" font-family="Times,serif" font-size="14.00">age += 2;</text>
+<text text-anchor="start" x="363.05" y="-659" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;39</text>
 </g>
-<!-- age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;30&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt; -->
+<!-- age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge14" class="edge">
-<title>age &lt; 30&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;30&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M441,-802.45C441,-790.32 441,-773.82 441,-759.92"/>
-<polygon fill="black" stroke="black" points="444.5,-759.91 441,-749.91 437.5,-759.91 444.5,-759.91"/>
-<text text-anchor="middle" x="454.21" y="-772" font-family="Times,serif" font-size="14.00">false</text>
+<title>age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M494.36,-737.56C467.1,-723.81 422.69,-701.4 389.74,-684.77"/>
+<polygon fill="black" stroke="black" points="391.28,-681.62 380.77,-680.24 388.12,-687.87 391.28,-681.62"/>
+<text text-anchor="middle" x="459.88" y="-702.4" font-family="Times,serif" font-size="14.00">true</text>
 </g>
-<!-- age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;&#45;&gt;END -->
-<g id="edge16" class="edge">
-<title>age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;&#45;&gt;END</title>
-<path fill="none" stroke="black" d="M366.69,-731.23C241.01,-729.94 0,-717.84 0,-644 0,-644 0,-644 0,-198 0,-169.73 11.37,-139.25 21.15,-118.27"/>
-<polygon fill="black" stroke="black" points="24.4,-119.58 25.62,-109.06 18.1,-116.52 24.4,-119.58"/>
-<text text-anchor="middle" x="13.21" y="-416.8" font-family="Times,serif" font-size="14.00">false</text>
-</g>
-<!-- age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;34&lt;/font&gt;&lt;/i&gt; -->
-<g id="node14" class="node">
-<title>age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;34&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="281,-661 185.54,-643 281,-625 376.46,-643 281,-661"/>
-<text text-anchor="start" x="240.06" y="-639.8" font-family="Times,serif" font-size="14.00">age%3==2</text>
-<text text-anchor="start" x="300.94" y="-639.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;34</text>
+<!-- age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt; -->
+<g id="node23" class="node">
+<title>age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="519,-410.4 434.79,-392.4 519,-374.4 603.21,-392.4 519,-410.4"/>
+<text text-anchor="start" x="483.89" y="-389.2" font-family="Times,serif" font-size="14.00">age == 4</text>
+<text text-anchor="start" x="533.11" y="-389.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;51</text>
 </g>
-<!-- age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;&#45;&gt;age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;34&lt;/font&gt;&lt;/i&gt; -->
+<!-- age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge15" class="edge">
-<title>age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;&#45;&gt;age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;34&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M416.14,-719.5C401.96,-712.89 383.93,-704.21 368.23,-695.8 348.72,-685.34 327.33,-672.66 310.62,-662.46"/>
-<polygon fill="black" stroke="black" points="312.21,-659.33 301.86,-657.08 308.55,-665.3 312.21,-659.33"/>
-<text text-anchor="middle" x="379.88" y="-683.2" font-family="Times,serif" font-size="14.00">true</text>
+<title>age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M519,-732.71C519,-715.19 519,-687.31 519,-663.2 519,-663.2 519,-663.2 519,-499.4 519,-472.64 519,-442.07 519,-420.66"/>
+<polygon fill="black" stroke="black" points="522.5,-420.66 519,-410.66 515.5,-420.66 522.5,-420.66"/>
+<text text-anchor="middle" x="532.21" y="-585" font-family="Times,serif" font-size="14.00">false</text>
 </g>
-<!-- age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt; -->
-<g id="node15" class="node">
-<title>age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="188.11,-572.2 97.89,-572.2 97.89,-536.2 188.11,-536.2 188.11,-572.2"/>
-<text text-anchor="start" x="105.95" y="-551" font-family="Times,serif" font-size="14.00">age += 2;</text>
-<text text-anchor="start" x="159.05" y="-551" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;36</text>
+<!-- age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt; -->
+<g id="node12" class="node">
+<title>age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="347,-607.2 249.47,-589.2 347,-571.2 444.53,-589.2 347,-607.2"/>
+<text text-anchor="start" x="304.89" y="-586" font-family="Times,serif" font-size="14.00">age &gt;= 100</text>
+<text text-anchor="start" x="368.11" y="-586" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;40</text>
+</g>
+<!-- age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge16" class="edge">
+<title>age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M347,-644.01C347,-635.99 347,-626.25 347,-617.27"/>
+<polygon fill="black" stroke="black" points="350.5,-617.23 347,-607.23 343.5,-617.23 350.5,-617.23"/>
+</g>
+<!-- break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt; -->
+<g id="node13" class="node">
+<title>break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="429.98,-464.4 358.02,-464.4 358.02,-428.4 429.98,-428.4 429.98,-464.4"/>
+<text text-anchor="start" x="366.01" y="-443.2" font-family="Times,serif" font-size="14.00">break;</text>
+<text text-anchor="start" x="400.99" y="-443.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;41</text>
 </g>
-<!-- age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;34&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt; -->
+<!-- age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;&#45;&gt;break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge17" class="edge">
-<title>age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;34&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M260.04,-628.82C238.59,-615.33 204.85,-594.1 179.09,-577.9"/>
-<polygon fill="black" stroke="black" points="180.68,-574.76 170.35,-572.4 176.95,-580.69 180.68,-574.76"/>
-<text text-anchor="middle" x="235.88" y="-594.4" font-family="Times,serif" font-size="14.00">true</text>
+<title>age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;&#45;&gt;break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M354,-572.32C360.03,-558.31 368.73,-537.23 375,-518.4 379.77,-504.07 384.19,-487.81 387.57,-474.48"/>
+<polygon fill="black" stroke="black" points="391.03,-475.05 390.04,-464.5 384.24,-473.36 391.03,-475.05"/>
+<text text-anchor="middle" x="379.88" y="-540.6" font-family="Times,serif" font-size="14.00">true</text>
 </g>
-<!-- age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt; -->
-<g id="node26" class="node">
-<title>age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="290,-572.2 205.79,-554.2 290,-536.2 374.21,-554.2 290,-572.2"/>
-<text text-anchor="start" x="254.89" y="-551" font-family="Times,serif" font-size="14.00">age == 4</text>
-<text text-anchor="start" x="304.11" y="-551" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;48</text>
+<!-- age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt; -->
+<g id="node15" class="node">
+<title>age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="275,-518.4 184.13,-500.4 275,-482.4 365.87,-500.4 275,-518.4"/>
+<text text-anchor="start" x="236.39" y="-497.2" font-family="Times,serif" font-size="14.00">age &lt;= 50</text>
+<text text-anchor="start" x="292.61" y="-497.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;42</text>
 </g>
-<!-- age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;34&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt; -->
+<!-- age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge18" class="edge">
-<title>age%3==2&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;34&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M282.74,-625.26C284.01,-613.02 285.75,-596.14 287.22,-582.02"/>
-<polygon fill="black" stroke="black" points="290.72,-582.19 288.27,-571.88 283.76,-581.47 290.72,-582.19"/>
-<text text-anchor="middle" x="300.21" y="-594.4" font-family="Times,serif" font-size="14.00">false</text>
+<title>age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M334.46,-573.08C323.24,-559.56 306.64,-539.54 293.83,-524.1"/>
+<polygon fill="black" stroke="black" points="296.24,-521.52 287.16,-516.06 290.85,-525.99 296.24,-521.52"/>
+<text text-anchor="middle" x="331.21" y="-540.6" font-family="Times,serif" font-size="14.00">false</text>
 </g>
-<!-- age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt; -->
-<g id="node16" class="node">
-<title>age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="258,-483.4 160.47,-465.4 258,-447.4 355.53,-465.4 258,-483.4"/>
-<text text-anchor="start" x="215.89" y="-462.2" font-family="Times,serif" font-size="14.00">age &gt;= 100</text>
-<text text-anchor="start" x="279.11" y="-462.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;37</text>
+<!-- ++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt; -->
+<g id="node14" class="node">
+<title>++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="461.11,-36 384.89,-36 384.89,0 461.11,0 461.11,-36"/>
+<text text-anchor="start" x="392.95" y="-14.8" font-family="Times,serif" font-size="14.00">++age;</text>
+<text text-anchor="start" x="432.05" y="-14.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;58</text>
 </g>
-<!-- age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt; -->
+<!-- break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge19" class="edge">
-<title>age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M165.72,-536.05C184.74,-521.7 211.88,-501.21 231.81,-486.17"/>
-<polygon fill="black" stroke="black" points="233.99,-488.91 239.86,-480.09 229.77,-483.32 233.99,-488.91"/>
+<title>break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M391.94,-428.16C386.69,-384.29 373.24,-271.59 373,-267.6 368.18,-185.65 396.91,-91.18 412.87,-45.92"/>
+<polygon fill="black" stroke="black" points="416.25,-46.86 416.35,-36.26 409.67,-44.48 416.25,-46.86"/>
 </g>
-<!-- break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;38&lt;/font&gt;&lt;/i&gt; -->
-<g id="node17" class="node">
-<title>break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;38&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="420.98,-394.6 349.02,-394.6 349.02,-358.6 420.98,-358.6 420.98,-394.6"/>
-<text text-anchor="start" x="357.01" y="-373.4" font-family="Times,serif" font-size="14.00">break;</text>
-<text text-anchor="start" x="391.99" y="-373.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;38</text>
-</g>
-<!-- age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;&#45;&gt;break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;38&lt;/font&gt;&lt;/i&gt; -->
+<!-- ++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge20" class="edge">
-<title>age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;&#45;&gt;break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;38&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M277.84,-450.84C297.6,-437.33 328.29,-416.36 351.77,-400.31"/>
-<polygon fill="black" stroke="black" points="353.78,-403.18 360.06,-394.65 349.83,-397.4 353.78,-403.18"/>
-<text text-anchor="middle" x="343.88" y="-416.8" font-family="Times,serif" font-size="14.00">true</text>
+<title>++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M384.72,-18.78C280.59,-19.22 0,-27.65 0,-105.8 0,-752 0,-752 0,-752 0,-807.19 387.33,-829.28 552.16,-836.18"/>
+<polygon fill="black" stroke="black" points="552.08,-839.68 562.21,-836.59 552.36,-832.69 552.08,-839.68"/>
 </g>
-<!-- age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt; -->
-<g id="node18" class="node">
-<title>age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="240,-394.6 149.13,-376.6 240,-358.6 330.87,-376.6 240,-394.6"/>
-<text text-anchor="start" x="201.39" y="-373.4" font-family="Times,serif" font-size="14.00">age &lt;= 50</text>
-<text text-anchor="start" x="257.61" y="-373.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;39</text>
+<!-- age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt; -->
+<g id="node16" class="node">
+<title>age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="278,-410.4 190.44,-392.4 278,-374.4 365.56,-392.4 278,-410.4"/>
+<text text-anchor="start" x="241.01" y="-389.2" font-family="Times,serif" font-size="14.00">age != 24</text>
+<text text-anchor="start" x="293.99" y="-389.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;43</text>
 </g>
-<!-- age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt; -->
+<!-- age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt;&#45;&gt;age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge21" class="edge">
-<title>age &gt;= 100&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;37&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M254.53,-447.66C251.97,-435.34 248.45,-418.33 245.51,-404.15"/>
-<polygon fill="black" stroke="black" points="248.86,-403.07 243.4,-393.99 242,-404.49 248.86,-403.07"/>
-<text text-anchor="middle" x="264.21" y="-416.8" font-family="Times,serif" font-size="14.00">false</text>
+<title>age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt;&#45;&gt;age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M275.48,-482.37C275.95,-465.68 276.68,-439.98 277.23,-420.48"/>
+<polygon fill="black" stroke="black" points="280.73,-420.48 277.52,-410.39 273.74,-420.29 280.73,-420.48"/>
+<text text-anchor="middle" x="287.88" y="-442.2" font-family="Times,serif" font-size="14.00">true</text>
 </g>
-<!-- break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;38&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt; -->
+<!-- age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt; -->
+<g id="node21" class="node">
+<title>age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="172.11,-410.4 85.89,-410.4 85.89,-374.4 172.11,-374.4 172.11,-410.4"/>
+<text text-anchor="start" x="93.95" y="-389.2" font-family="Times,serif" font-size="14.00">age /= 2;</text>
+<text text-anchor="start" x="143.05" y="-389.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;47</text>
+</g>
+<!-- age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt;&#45;&gt;age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge22" class="edge">
-<title>break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;38&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M391.01,-394.65C396.58,-411.98 404,-439.72 404,-464.4 404,-644 404,-644 404,-644 404,-666.94 415.08,-690.76 425.11,-707.63"/>
-<polygon fill="black" stroke="black" points="422.22,-709.62 430.5,-716.24 428.16,-705.91 422.22,-709.62"/>
+<title>age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt;&#45;&gt;age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M256.51,-485.98C232.48,-468.53 190.16,-437.8 160.9,-416.56"/>
+<polygon fill="black" stroke="black" points="162.8,-413.61 152.65,-410.57 158.69,-419.28 162.8,-413.61"/>
+<text text-anchor="middle" x="237.21" y="-442.2" font-family="Times,serif" font-size="14.00">false</text>
 </g>
-<!-- age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt; -->
-<g id="node19" class="node">
-<title>age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="240,-305.8 152.44,-287.8 240,-269.8 327.56,-287.8 240,-305.8"/>
-<text text-anchor="start" x="203.01" y="-284.6" font-family="Times,serif" font-size="14.00">age != 24</text>
-<text text-anchor="start" x="255.99" y="-284.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;40</text>
+<!-- age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt; -->
+<g id="node17" class="node">
+<title>age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="237.71,-321.6 148.29,-321.6 148.29,-285.6 237.71,-285.6 237.71,-321.6"/>
+<text text-anchor="start" x="156.39" y="-300.4" font-family="Times,serif" font-size="14.00">age *= 3;</text>
+<text text-anchor="start" x="208.61" y="-300.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;44</text>
 </g>
-<!-- age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;&#45;&gt;age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt; -->
+<!-- age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt;&#45;&gt;age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge23" class="edge">
-<title>age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;&#45;&gt;age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M240,-358.45C240,-346.32 240,-329.82 240,-315.92"/>
-<polygon fill="black" stroke="black" points="243.5,-315.91 240,-305.91 236.5,-315.91 243.5,-315.91"/>
-<text text-anchor="middle" x="250.88" y="-328" font-family="Times,serif" font-size="14.00">true</text>
+<title>age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt;&#45;&gt;age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M263.96,-377.07C251.16,-363.99 231.97,-344.4 216.78,-328.88"/>
+<polygon fill="black" stroke="black" points="219.18,-326.33 209.69,-321.64 214.18,-331.23 219.18,-326.33"/>
+<text text-anchor="middle" x="254.88" y="-343.8" font-family="Times,serif" font-size="14.00">true</text>
 </g>
-<!-- age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt; -->
-<g id="node24" class="node">
-<title>age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="432.11,-305.8 345.89,-305.8 345.89,-269.8 432.11,-269.8 432.11,-305.8"/>
-<text text-anchor="start" x="353.95" y="-284.6" font-family="Times,serif" font-size="14.00">age /= 2;</text>
-<text text-anchor="start" x="403.05" y="-284.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;44</text>
+<!-- assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt; -->
+<g id="node20" class="node">
+<title>assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="366.49,-321.6 255.51,-321.6 255.51,-285.6 366.49,-285.6 366.49,-321.6"/>
+<text text-anchor="start" x="263.51" y="-300.4" font-family="Times,serif" font-size="14.00">assert &quot;error&quot;</text>
+<text text-anchor="start" x="337.49" y="-300.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;43</text>
 </g>
-<!-- age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;&#45;&gt;age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt; -->
+<!-- age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt;&#45;&gt;assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge24" class="edge">
-<title>age &lt;= 50&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;&#45;&gt;age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M261.99,-362.79C285.36,-349.18 322.77,-327.38 350.95,-310.97"/>
-<polygon fill="black" stroke="black" points="352.86,-313.9 359.74,-305.85 349.34,-307.85 352.86,-313.9"/>
-<text text-anchor="middle" x="341.21" y="-328" font-family="Times,serif" font-size="14.00">false</text>
+<title>age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt;&#45;&gt;assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M284.05,-375.48C288.77,-363.07 295.42,-345.58 300.94,-331.07"/>
+<polygon fill="black" stroke="black" points="304.25,-332.2 304.53,-321.61 297.71,-329.71 304.25,-332.2"/>
+<text text-anchor="middle" x="311.21" y="-343.8" font-family="Times,serif" font-size="14.00">false</text>
 </g>
-<!-- age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt; -->
-<g id="node20" class="node">
-<title>age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="358.71,-217 269.29,-217 269.29,-181 358.71,-181 358.71,-217"/>
-<text text-anchor="start" x="277.39" y="-195.8" font-family="Times,serif" font-size="14.00">age *= 3;</text>
-<text text-anchor="start" x="329.61" y="-195.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;41</text>
+<!-- continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;45&lt;/font&gt;&lt;/i&gt; -->
+<g id="node18" class="node">
+<title>continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;45&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="237.6,-213.6 148.4,-213.6 148.4,-177.6 237.6,-177.6 237.6,-213.6"/>
+<text text-anchor="start" x="156.45" y="-192.4" font-family="Times,serif" font-size="14.00">continue;</text>
+<text text-anchor="start" x="208.55" y="-192.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;45</text>
 </g>
-<!-- age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;&#45;&gt;age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt; -->
+<!-- age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt;&#45;&gt;continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;45&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge25" class="edge">
-<title>age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;&#45;&gt;age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M252.55,-272.08C263.48,-259.26 279.55,-240.41 292.52,-225.2"/>
-<polygon fill="black" stroke="black" points="295.52,-227.07 299.35,-217.19 290.2,-222.53 295.52,-227.07"/>
-<text text-anchor="middle" x="294.88" y="-239.2" font-family="Times,serif" font-size="14.00">true</text>
+<title>age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt;&#45;&gt;continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;45&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M193,-285.57C193,-268.98 193,-243.48 193,-224.03"/>
+<polygon fill="black" stroke="black" points="196.5,-223.94 193,-213.94 189.5,-223.94 196.5,-223.94"/>
 </g>
-<!-- assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt; -->
-<g id="node23" class="node">
-<title>assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="251.49,-217 140.51,-217 140.51,-181 251.49,-181 251.49,-217"/>
-<text text-anchor="start" x="148.51" y="-195.8" font-family="Times,serif" font-size="14.00">assert &quot;error&quot;</text>
-<text text-anchor="start" x="222.49" y="-195.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;40</text>
+<!-- age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt; -->
+<g id="node19" class="node">
+<title>age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="156,-124.8 72.53,-106.8 156,-88.8 239.47,-106.8 156,-124.8"/>
+<text text-anchor="start" x="121.34" y="-103.6" font-family="Times,serif" font-size="14.00">age &lt; 80</text>
+<text text-anchor="start" x="169.66" y="-103.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;50</text>
 </g>
-<!-- age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;&#45;&gt;assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt; -->
+<!-- continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;45&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge26" class="edge">
-<title>age != 24&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;&#45;&gt;assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M232.13,-271.28C225.81,-258.8 216.78,-240.99 209.33,-226.29"/>
-<polygon fill="black" stroke="black" points="212.35,-224.51 204.7,-217.17 206.1,-227.67 212.35,-224.51"/>
-<text text-anchor="middle" x="235.21" y="-239.2" font-family="Times,serif" font-size="14.00">false</text>
+<title>continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;45&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M185.69,-177.45C180.25,-164.69 172.74,-147.07 166.63,-132.74"/>
+<polygon fill="black" stroke="black" points="169.81,-131.28 162.67,-123.45 163.37,-134.03 169.81,-131.28"/>
 </g>
-<!-- continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt; -->
-<g id="node21" class="node">
-<title>continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="358.6,-109 269.4,-109 269.4,-73 358.6,-73 358.6,-109"/>
-<text text-anchor="start" x="277.45" y="-87.8" font-family="Times,serif" font-size="14.00">continue;</text>
-<text text-anchor="start" x="329.55" y="-87.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;42</text>
-</g>
-<!-- age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt;&#45;&gt;continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt; -->
+<!-- age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge27" class="edge">
-<title>age *= 3;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;41&lt;/font&gt;&lt;/i&gt;&#45;&gt;continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M314,-180.97C314,-164.38 314,-138.88 314,-119.43"/>
-<polygon fill="black" stroke="black" points="317.5,-119.34 314,-109.34 310.5,-119.34 317.5,-119.34"/>
-</g>
-<!-- age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt; -->
-<g id="node22" class="node">
-<title>age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="369,-36 285.53,-18 369,0 452.47,-18 369,-36"/>
-<text text-anchor="start" x="334.34" y="-14.8" font-family="Times,serif" font-size="14.00">age &lt; 80</text>
-<text text-anchor="start" x="382.66" y="-14.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;47</text>
+<title>age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;39&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M123.59,-117.92C91.14,-130.3 46,-154.7 46,-194.6 46,-590.2 46,-590.2 46,-590.2 46,-640.12 204.8,-654.98 291.71,-659.37"/>
+<polygon fill="black" stroke="black" points="291.78,-662.88 301.94,-659.86 292.11,-655.89 291.78,-662.88"/>
+<text text-anchor="middle" x="56.88" y="-388.2" font-family="Times,serif" font-size="14.00">true</text>
 </g>
-<!-- continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt; -->
+<!-- age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge28" class="edge">
-<title>continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;42&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M327.31,-72.81C334.57,-63.45 343.63,-51.75 351.45,-41.65"/>
-<polygon fill="black" stroke="black" points="354.31,-43.68 357.67,-33.63 348.78,-39.39 354.31,-43.68"/>
+<title>age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M187.68,-95.5C234.1,-80.41 320.97,-52.17 375.19,-34.54"/>
+<polygon fill="black" stroke="black" points="376.49,-37.8 384.92,-31.38 374.32,-31.14 376.49,-37.8"/>
+<text text-anchor="middle" x="327.21" y="-58.2" font-family="Times,serif" font-size="14.00">false</text>
 </g>
-<!-- age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge30" class="edge">
-<title>age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M446.24,-19.38C549.31,-22.01 719,-34.74 719,-90 719,-644 719,-644 719,-644 719,-734.8 616.64,-699.36 527,-713.8 514.67,-715.79 501.42,-718.24 489.09,-720.67"/>
-<polygon fill="black" stroke="black" points="488.12,-717.29 479,-722.69 489.49,-724.16 488.12,-717.29"/>
-<text text-anchor="middle" x="732.21" y="-372.4" font-family="Times,serif" font-size="14.00">false</text>
-</g>
-<!-- age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt; -->
+<!-- assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt;&#45;&gt;END -->
 <g id="edge29" class="edge">
-<title>age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M310.36,-23.44C234.51,-30.83 112,-49.09 112,-90 112,-244.4 112,-244.4 112,-244.4 112,-349 129.83,-472.53 138.44,-526.13"/>
-<polygon fill="black" stroke="black" points="135.02,-526.88 140.08,-536.19 141.93,-525.75 135.02,-526.88"/>
-<text text-anchor="middle" x="124.88" y="-283.6" font-family="Times,serif" font-size="14.00">true</text>
+<title>assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;43&lt;/font&gt;&lt;/i&gt;&#45;&gt;END</title>
+<path fill="none" stroke="black" d="M328.99,-285.57C347.5,-268.06 376.49,-240.62 397.38,-220.85"/>
+<polygon fill="black" stroke="black" points="399.82,-223.36 404.68,-213.94 395.01,-218.27 399.82,-223.36"/>
+<text text-anchor="middle" x="417.62" y="-245.4" font-family="Times,serif" font-size="14.00">assert failed</text>
+</g>
+<!-- age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt; -->
+<g id="node22" class="node">
+<title>age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="164.71,-267.6 75.29,-267.6 75.29,-231.6 164.71,-231.6 164.71,-267.6"/>
+<text text-anchor="start" x="83.39" y="-246.4" font-family="Times,serif" font-size="14.00">age *= 2;</text>
+<text text-anchor="start" x="135.61" y="-246.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;49</text>
+</g>
+<!-- age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;&#45;&gt;age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge30" class="edge">
+<title>age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;&#45;&gt;age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M127.9,-374.14C126.36,-350.17 123.58,-306.58 121.76,-278.1"/>
+<polygon fill="black" stroke="black" points="125.24,-277.76 121.11,-268.01 118.26,-278.21 125.24,-277.76"/>
 </g>
-<!-- assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;&#45;&gt;END -->
+<!-- age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge31" class="edge">
-<title>assert &quot;error&quot;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;40&lt;/font&gt;&lt;/i&gt;&#45;&gt;END</title>
-<path fill="none" stroke="black" d="M170.13,-180.97C142.87,-163.02 99.77,-134.65 69.6,-114.78"/>
-<polygon fill="black" stroke="black" points="71.35,-111.74 61.07,-109.16 67.5,-117.59 71.35,-111.74"/>
-<text text-anchor="middle" x="173.62" y="-140.8" font-family="Times,serif" font-size="14.00">assert failed</text>
+<title>age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M124.41,-231.34C130.61,-207.11 141.93,-162.83 149.2,-134.38"/>
+<polygon fill="black" stroke="black" points="152.69,-134.89 151.77,-124.33 145.91,-133.15 152.69,-134.89"/>
 </g>
-<!-- age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;46&lt;/font&gt;&lt;/i&gt; -->
-<g id="node25" class="node">
-<title>age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;46&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="432.71,-163 343.29,-163 343.29,-127 432.71,-127 432.71,-163"/>
-<text text-anchor="start" x="351.39" y="-141.8" font-family="Times,serif" font-size="14.00">age *= 2;</text>
-<text text-anchor="start" x="403.61" y="-141.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;46</text>
+<!-- ++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt; -->
+<g id="node24" class="node">
+<title>++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="540.11,-267.6 463.89,-267.6 463.89,-231.6 540.11,-231.6 540.11,-267.6"/>
+<text text-anchor="start" x="471.95" y="-246.4" font-family="Times,serif" font-size="14.00">++age;</text>
+<text text-anchor="start" x="511.05" y="-246.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;51</text>
 </g>
-<!-- age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt;&#45;&gt;age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;46&lt;/font&gt;&lt;/i&gt; -->
+<!-- age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge32" class="edge">
-<title>age /= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;44&lt;/font&gt;&lt;/i&gt;&#45;&gt;age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;46&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M388.88,-269.54C388.71,-245.57 388.4,-201.98 388.2,-173.5"/>
-<polygon fill="black" stroke="black" points="391.69,-173.38 388.12,-163.41 384.69,-173.43 391.69,-173.38"/>
+<title>age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M499.89,-378.48C483.43,-366.09 460.81,-345.74 451,-321.6 444.97,-306.78 443.55,-299.76 451,-285.6 453.17,-281.48 456.07,-277.75 459.38,-274.4"/>
+<polygon fill="black" stroke="black" points="461.91,-276.84 467.19,-267.66 457.34,-271.54 461.91,-276.84"/>
+<text text-anchor="middle" x="485.88" y="-343.8" font-family="Times,serif" font-size="14.00">true</text>
 </g>
-<!-- age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;46&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge33" class="edge">
-<title>age *= 2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;46&lt;/font&gt;&lt;/i&gt;&#45;&gt;age &lt; 80&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;47&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M385.4,-126.88C382.21,-105.91 376.78,-70.16 373.04,-45.6"/>
-<polygon fill="black" stroke="black" points="376.47,-44.87 371.51,-35.51 369.55,-45.93 376.47,-44.87"/>
+<!-- age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt; -->
+<g id="node25" class="node">
+<title>age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="544,-321.6 459.79,-303.6 544,-285.6 628.21,-303.6 544,-321.6"/>
+<text text-anchor="start" x="508.89" y="-300.4" font-family="Times,serif" font-size="14.00">age == 5</text>
+<text text-anchor="start" x="558.11" y="-300.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;52</text>
 </g>
-<!-- ++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt; -->
-<g id="node27" class="node">
-<title>++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="104.11,-483.4 27.89,-483.4 27.89,-447.4 104.11,-447.4 104.11,-483.4"/>
-<text text-anchor="start" x="35.95" y="-462.2" font-family="Times,serif" font-size="14.00">++age;</text>
-<text text-anchor="start" x="75.05" y="-462.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;48</text>
+<!-- age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge33" class="edge">
+<title>age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M523.7,-375.07C527.3,-362.59 532.33,-345.12 536.48,-330.7"/>
+<polygon fill="black" stroke="black" points="539.91,-331.43 539.32,-320.85 533.19,-329.49 539.91,-331.43"/>
+<text text-anchor="middle" x="547.21" y="-343.8" font-family="Times,serif" font-size="14.00">false</text>
 </g>
-<!-- age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt; -->
+<!-- ++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge34" class="edge">
-<title>age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M261.63,-542.21C224.45,-527.8 158.7,-502.32 113.78,-484.91"/>
-<polygon fill="black" stroke="black" points="114.83,-481.57 104.24,-481.22 112.3,-488.1 114.83,-481.57"/>
-<text text-anchor="middle" x="209.88" y="-505.6" font-family="Times,serif" font-size="14.00">true</text>
-</g>
-<!-- age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt; -->
-<g id="node28" class="node">
-<title>age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="516,-483.4 431.79,-465.4 516,-447.4 600.21,-465.4 516,-483.4"/>
-<text text-anchor="start" x="480.89" y="-462.2" font-family="Times,serif" font-size="14.00">age == 5</text>
-<text text-anchor="start" x="530.11" y="-462.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;49</text>
+<title>++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;51&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M496.06,-231.34C482.39,-191.6 448.6,-93.41 432.21,-45.77"/>
+<polygon fill="black" stroke="black" points="435.46,-44.46 428.9,-36.14 428.84,-46.74 435.46,-44.46"/>
 </g>
-<!-- age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge35" class="edge">
-<title>age == 4&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M318.62,-542.21C359.01,-526.69 432.82,-498.35 477.83,-481.06"/>
-<polygon fill="black" stroke="black" points="479.17,-484.29 487.25,-477.44 476.66,-477.76 479.17,-484.29"/>
-<text text-anchor="middle" x="437.21" y="-505.6" font-family="Times,serif" font-size="14.00">false</text>
-</g>
-<!-- ++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt; -->
+<!-- age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge36" class="edge">
-<title>++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;48&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M66.79,-483.54C68.43,-505.35 73.48,-543.62 89,-572.2 115.51,-621.03 128.9,-633.19 177,-661 241.04,-698.03 325.09,-715.85 380.97,-724.12"/>
-<polygon fill="black" stroke="black" points="380.67,-727.61 391.07,-725.56 381.66,-720.68 380.67,-727.61"/>
+<title>age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M545.26,-285.67C545.87,-271.1 545.67,-249.63 541,-231.6 518.87,-146.13 500.25,-127.94 452,-54 449.83,-50.68 447.39,-47.31 444.88,-44.04"/>
+<polygon fill="black" stroke="black" points="447.57,-41.8 438.57,-36.2 442.12,-46.19 447.57,-41.8"/>
+<text text-anchor="middle" x="530.21" y="-147" font-family="Times,serif" font-size="14.00">false</text>
 </g>
-<!-- age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge38" class="edge">
-<title>age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M511.39,-482.67C498.79,-527.07 463.74,-650.63 448.38,-704.79"/>
-<polygon fill="black" stroke="black" points="444.94,-704.08 445.58,-714.66 451.67,-705.99 444.94,-704.08"/>
-<text text-anchor="middle" x="494.21" y="-594.4" font-family="Times,serif" font-size="14.00">false</text>
+<!-- age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt; -->
+<g id="node26" class="node">
+<title>age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="677,-213.6 592.79,-195.6 677,-177.6 761.21,-195.6 677,-213.6"/>
+<text text-anchor="start" x="641.89" y="-192.4" font-family="Times,serif" font-size="14.00">age == 6</text>
+<text text-anchor="start" x="691.11" y="-192.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;53</text>
 </g>
-<!-- age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt; -->
-<g id="node29" class="node">
-<title>age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="523,-394.6 438.79,-376.6 523,-358.6 607.21,-376.6 523,-394.6"/>
-<text text-anchor="start" x="487.89" y="-373.4" font-family="Times,serif" font-size="14.00">age == 6</text>
-<text text-anchor="start" x="537.11" y="-373.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;50</text>
+<!-- age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge35" class="edge">
+<title>age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M560.84,-289.18C583.8,-270.88 625.11,-237.96 651.77,-216.71"/>
+<polygon fill="black" stroke="black" points="654.23,-219.22 659.87,-210.25 649.87,-213.75 654.23,-219.22"/>
+<text text-anchor="middle" x="641.88" y="-245.4" font-family="Times,serif" font-size="14.00">true</text>
+</g>
+<!-- age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt; -->
+<g id="node27" class="node">
+<title>age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="673.11,-124.8 582.89,-124.8 582.89,-88.8 673.11,-88.8 673.11,-124.8"/>
+<text text-anchor="start" x="590.95" y="-103.6" font-family="Times,serif" font-size="14.00">age += 6;</text>
+<text text-anchor="start" x="644.05" y="-103.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;53</text>
 </g>
-<!-- age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt; -->
+<!-- age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge37" class="edge">
-<title>age == 5&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;49&lt;/font&gt;&lt;/i&gt;&#45;&gt;age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M517.35,-447.66C518.33,-435.49 519.68,-418.76 520.81,-404.69"/>
-<polygon fill="black" stroke="black" points="524.32,-404.83 521.63,-394.58 517.34,-404.27 524.32,-404.83"/>
-<text text-anchor="middle" x="531.88" y="-416.8" font-family="Times,serif" font-size="14.00">true</text>
+<title>age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M668.24,-179.08C661.19,-166.6 651.14,-148.79 642.84,-134.09"/>
+<polygon fill="black" stroke="black" points="645.66,-131.96 637.69,-124.97 639.56,-135.4 645.66,-131.96"/>
+<text text-anchor="middle" x="667.88" y="-147" font-family="Times,serif" font-size="14.00">true</text>
 </g>
-<!-- age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt; -->
-<g id="node30" class="node">
-<title>age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="628.11,-305.8 537.89,-305.8 537.89,-269.8 628.11,-269.8 628.11,-305.8"/>
-<text text-anchor="start" x="545.95" y="-284.6" font-family="Times,serif" font-size="14.00">age += 6;</text>
-<text text-anchor="start" x="599.05" y="-284.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;50</text>
+<!-- age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;55&lt;/font&gt;&lt;/i&gt; -->
+<g id="node28" class="node">
+<title>age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;55&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="760.64,-124.8 691.36,-124.8 691.36,-88.8 760.64,-88.8 760.64,-124.8"/>
+<text text-anchor="start" x="699.18" y="-103.6" font-family="Times,serif" font-size="14.00">age&#45;&#45;;</text>
+<text text-anchor="start" x="731.82" y="-103.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;55</text>
 </g>
-<!-- age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt; -->
+<!-- age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;55&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge38" class="edge">
+<title>age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;55&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M685.76,-179.08C692.81,-166.6 702.86,-148.79 711.16,-134.09"/>
+<polygon fill="black" stroke="black" points="714.44,-135.4 716.31,-124.97 708.34,-131.96 714.44,-135.4"/>
+<text text-anchor="middle" x="718.21" y="-147" font-family="Times,serif" font-size="14.00">false</text>
+</g>
+<!-- age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge39" class="edge">
-<title>age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;&#45;&gt;age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M533.45,-360.48C542.26,-347.73 555.06,-329.21 565.45,-314.2"/>
-<polygon fill="black" stroke="black" points="568.42,-316.04 571.23,-305.83 562.67,-312.06 568.42,-316.04"/>
-<text text-anchor="middle" x="569.88" y="-328" font-family="Times,serif" font-size="14.00">true</text>
+<title>age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;&#45;&gt;++age;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;58&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M612.6,-88.44C601.54,-77.03 585.7,-62.65 569,-54 538.57,-38.24 500.88,-29.43 471.41,-24.6"/>
+<polygon fill="black" stroke="black" points="471.78,-21.11 461.36,-23.05 470.71,-28.03 471.78,-21.11"/>
 </g>
-<!-- age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt; -->
-<g id="node31" class="node">
-<title>age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="519.64,-305.8 450.36,-305.8 450.36,-269.8 519.64,-269.8 519.64,-305.8"/>
-<text text-anchor="start" x="458.18" y="-284.6" font-family="Times,serif" font-size="14.00">age&#45;&#45;;</text>
-<text text-anchor="start" x="490.82" y="-284.6" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;52</text>
+<!-- continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;56&lt;/font&gt;&lt;/i&gt; -->
+<g id="node29" class="node">
+<title>continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;56&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="811.6,-36 722.4,-36 722.4,0 811.6,0 811.6,-36"/>
+<text text-anchor="start" x="730.45" y="-14.8" font-family="Times,serif" font-size="14.00">continue;</text>
+<text text-anchor="start" x="782.55" y="-14.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;56</text>
 </g>
-<!-- age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt; -->
+<!-- age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;55&lt;/font&gt;&lt;/i&gt;&#45;&gt;continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;56&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge40" class="edge">
-<title>age == 6&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M516.03,-359.68C510.6,-347.27 502.94,-329.78 496.59,-315.27"/>
-<polygon fill="black" stroke="black" points="499.66,-313.56 492.45,-305.81 493.25,-316.37 499.66,-313.56"/>
-<text text-anchor="middle" x="521.21" y="-328" font-family="Times,serif" font-size="14.00">false</text>
+<title>age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;55&lt;/font&gt;&lt;/i&gt;&#45;&gt;continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;56&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M734.1,-88.65C739.94,-76.29 747.93,-59.37 754.58,-45.3"/>
+<polygon fill="black" stroke="black" points="757.81,-46.65 758.92,-36.11 751.48,-43.66 757.81,-46.65"/>
 </g>
-<!-- age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt; -->
+<!-- continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;56&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge41" class="edge">
-<title>age += 6;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;50&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M619.09,-305.85C644.13,-320.46 673,-344.12 673,-375.6 673,-644 673,-644 673,-644 673,-669.37 669.33,-680.61 649,-695.8 605.09,-728.61 581.01,-704.48 527,-713.8 514.81,-715.9 501.7,-718.38 489.48,-720.79"/>
-<polygon fill="black" stroke="black" points="488.58,-717.4 479.46,-722.78 489.95,-724.26 488.58,-717.4"/>
+<title>continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;56&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;36&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M774.08,-36.3C780.51,-53.58 789,-81.08 789,-105.8 789,-752 789,-752 789,-752 789,-779.73 714.85,-809.41 666.27,-825.89"/>
+<polygon fill="black" stroke="black" points="665,-822.62 656.62,-829.1 667.21,-829.26 665,-822.62"/>
 </g>
-<!-- continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt; -->
-<g id="node32" class="node">
-<title>continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="646.6,-217 557.4,-217 557.4,-181 646.6,-181 646.6,-217"/>
-<text text-anchor="start" x="565.45" y="-195.8" font-family="Times,serif" font-size="14.00">continue;</text>
-<text text-anchor="start" x="617.55" y="-195.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;53</text>
-</g>
-<!-- age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt;&#45;&gt;continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt; -->
+<!-- System.out.println(&quot;789&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;27&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;32&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge42" class="edge">
-<title>age&#45;&#45;;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;52&lt;/font&gt;&lt;/i&gt;&#45;&gt;continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M508.12,-269.65C526.06,-256.34 551.13,-237.74 570.85,-223.11"/>
-<polygon fill="black" stroke="black" points="572.99,-225.88 578.93,-217.11 568.82,-220.26 572.99,-225.88"/>
+<title>System.out.println(&quot;789&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;27&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;32&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M761,-1037.47C761,-1000.48 761,-912.91 761,-868.16"/>
+<polygon fill="black" stroke="black" points="764.5,-868.02 761,-858.02 757.5,-868.02 764.5,-868.02"/>
+</g>
+<!-- age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt; -->
+<g id="node31" class="node">
+<title>age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="612.71,-1289.4 523.29,-1289.4 523.29,-1253.4 612.71,-1253.4 612.71,-1289.4"/>
+<text text-anchor="start" x="531.39" y="-1268.2" font-family="Times,serif" font-size="14.00">age = 19;</text>
+<text text-anchor="start" x="583.61" y="-1268.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;14</text>
 </g>
-<!-- continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt; -->
+<!-- System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt; -->
+<g id="node32" class="node">
+<title>System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="625.08,-1216.4 438.92,-1216.4 438.92,-1180.4 625.08,-1180.4 625.08,-1216.4"/>
+<text text-anchor="start" x="446.96" y="-1195.2" font-family="Times,serif" font-size="14.00">System.out.println(&quot;234&quot;);</text>
+<text text-anchor="start" x="596.04" y="-1195.2" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;15</text>
+</g>
+<!-- age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge43" class="edge">
-<title>continue;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;53&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;33&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M613.48,-217.2C621.85,-230.82 632.47,-250.67 637,-269.8 652.38,-334.77 635,-353.24 635,-420 635,-644 635,-644 635,-644 635,-676.2 544.84,-704.84 487.45,-719.8"/>
-<polygon fill="black" stroke="black" points="486.31,-716.48 477.49,-722.35 488.05,-723.26 486.31,-716.48"/>
+<title>age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M559.29,-1253.21C555.08,-1244.93 549.95,-1234.81 545.28,-1225.59"/>
+<polygon fill="black" stroke="black" points="548.28,-1223.77 540.63,-1216.43 542.04,-1226.93 548.28,-1223.77"/>
 </g>
-<!-- break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt; -->
-<g id="node34" class="node">
-<title>break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="613.98,-838.6 542.02,-838.6 542.02,-802.6 613.98,-802.6 613.98,-838.6"/>
-<text text-anchor="start" x="550.01" y="-817.4" font-family="Times,serif" font-size="14.00">break;</text>
-<text text-anchor="start" x="584.99" y="-817.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;25</text>
+<!-- System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt; -->
+<g id="node33" class="node">
+<title>System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="625.08,-1127.6 438.92,-1127.6 438.92,-1091.6 625.08,-1091.6 625.08,-1127.6"/>
+<text text-anchor="start" x="446.96" y="-1106.4" font-family="Times,serif" font-size="14.00">System.out.println(&quot;456&quot;);</text>
+<text text-anchor="start" x="596.04" y="-1106.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;16</text>
 </g>
-<!-- System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt;&#45;&gt;break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt; -->
+<!-- System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge44" class="edge">
-<title>System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;24&lt;/font&gt;&lt;/i&gt;&#45;&gt;break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M528.73,-875.41C536.8,-866.6 546.76,-855.73 555.61,-846.06"/>
-<polygon fill="black" stroke="black" points="558.24,-848.37 562.41,-838.63 553.08,-843.64 558.24,-848.37"/>
+<title>System.out.println(&quot;234&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;15&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M532,-1180.25C532,-1168.12 532,-1151.62 532,-1137.72"/>
+<polygon fill="black" stroke="black" points="535.5,-1137.71 532,-1127.71 528.5,-1137.71 535.5,-1137.71"/>
+</g>
+<!-- i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
+<g id="node34" class="node">
+<title>i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="669.18,-1019.6 612.82,-1019.6 612.82,-983.6 669.18,-983.6 669.18,-1019.6"/>
+<text text-anchor="start" x="620.66" y="-998.4" font-family="Times,serif" font-size="14.00">i++</text>
+<text text-anchor="start" x="640.34" y="-998.4" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;13</text>
 </g>
-<!-- break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;29&lt;/font&gt;&lt;/i&gt; -->
+<!-- System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt;&#45;&gt;i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge45" class="edge">
-<title>break;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;25&lt;/font&gt;&lt;/i&gt;&#45;&gt;age*=2;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;29&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M577.8,-802.45C577.66,-790.32 577.47,-773.82 577.31,-759.92"/>
-<polygon fill="black" stroke="black" points="580.81,-759.87 577.2,-749.91 573.81,-759.95 580.81,-759.87"/>
+<title>System.out.println(&quot;456&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;16&lt;/font&gt;&lt;/i&gt;&#45;&gt;i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M549.51,-1091.57C567.44,-1074.13 595.48,-1046.86 615.8,-1027.11"/>
+<polygon fill="black" stroke="black" points="618.44,-1029.42 623.17,-1019.94 613.56,-1024.4 618.44,-1029.42"/>
 </g>
-<!-- age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt; -->
+<!-- i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
 <g id="node35" class="node">
+<title>i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="653,-1378.2 591.51,-1360.2 653,-1342.2 714.49,-1360.2 653,-1378.2"/>
+<text text-anchor="start" x="629.61" y="-1357" font-family="Times,serif" font-size="14.00">i&lt;12</text>
+<text text-anchor="start" x="655.39" y="-1357" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;13</text>
+</g>
+<!-- i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge46" class="edge">
+<title>i++&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M644.15,-1019.79C647.71,-1040.7 653,-1077.12 653,-1108.6 653,-1272.4 653,-1272.4 653,-1272.4 653,-1292.18 653,-1314.49 653,-1331.54"/>
+<polygon fill="black" stroke="black" points="649.5,-1331.91 653,-1341.91 656.5,-1331.91 649.5,-1331.91"/>
+</g>
+<!-- i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge48" class="edge">
+<title>i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;char i = &#39;a&#39;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;18&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M667.58,-1346.02C682.04,-1332.94 704.55,-1312.59 722.23,-1296.6"/>
+<polygon fill="black" stroke="black" points="724.9,-1298.91 729.97,-1289.6 720.21,-1293.71 724.9,-1298.91"/>
+<text text-anchor="middle" x="722.21" y="-1311.6" font-family="Times,serif" font-size="14.00">false</text>
+</g>
+<!-- i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge47" class="edge">
+<title>i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;age = 19;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;14&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M639.3,-1346.02C632.59,-1339.51 624.43,-1331.5 617.23,-1324.2 608.7,-1315.54 599.48,-1305.92 591.36,-1297.34"/>
+<polygon fill="black" stroke="black" points="593.67,-1294.69 584.26,-1289.82 588.58,-1299.49 593.67,-1294.69"/>
+<text text-anchor="middle" x="628.88" y="-1311.6" font-family="Times,serif" font-size="14.00">true</text>
+</g>
+<!-- Person#main(String[]args)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;2&lt;/font&gt;&lt;/i&gt; -->
+<g id="node36" class="node">
+<title>Person#main(String[]args)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;2&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M650.79,-1794C650.79,-1794 495.21,-1794 495.21,-1794 489.21,-1794 483.21,-1788 483.21,-1782 483.21,-1782 483.21,-1770 483.21,-1770 483.21,-1764 489.21,-1758 495.21,-1758 495.21,-1758 650.79,-1758 650.79,-1758 656.79,-1758 662.79,-1764 662.79,-1770 662.79,-1770 662.79,-1782 662.79,-1782 662.79,-1788 656.79,-1794 650.79,-1794"/>
+<text text-anchor="start" x="491.36" y="-1772.8" font-family="Times,serif" font-size="14.00">Person#main(String[]args)</text>
+<text text-anchor="start" x="640.64" y="-1772.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;2</text>
+</g>
+<!-- int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt; -->
+<g id="node37" class="node">
+<title>int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt;</title>
+<polygon fill="none" stroke="black" points="621.11,-1721 524.89,-1721 524.89,-1685 621.11,-1685 621.11,-1721"/>
+<text text-anchor="start" x="532.7" y="-1699.8" font-family="Times,serif" font-size="14.00">int age = 10</text>
+<text text-anchor="start" x="599.3" y="-1699.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;3</text>
+</g>
+<!-- Person#main(String[]args)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;2&lt;/font&gt;&lt;/i&gt;&#45;&gt;int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge49" class="edge">
+<title>Person#main(String[]args)&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;2&lt;/font&gt;&lt;/i&gt;&#45;&gt;int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M573,-1757.81C573,-1749.79 573,-1740.05 573,-1731.07"/>
+<polygon fill="black" stroke="black" points="576.5,-1731.03 573,-1721.03 569.5,-1731.03 576.5,-1731.03"/>
+</g>
+<!-- age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt; -->
+<g id="node38" class="node">
 <title>age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="886,-1505 816.35,-1487 886,-1469 955.65,-1487 886,-1505"/>
-<text text-anchor="start" x="858.34" y="-1483.8" font-family="Times,serif" font-size="14.00">age&gt;10</text>
-<text text-anchor="start" x="899.66" y="-1483.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;4</text>
+<polygon fill="none" stroke="black" points="573,-1648 503.35,-1630 573,-1612 642.65,-1630 573,-1648"/>
+<text text-anchor="start" x="545.34" y="-1626.8" font-family="Times,serif" font-size="14.00">age&gt;10</text>
+<text text-anchor="start" x="586.66" y="-1626.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;4</text>
+</g>
+<!-- int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge50" class="edge">
+<title>int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M573,-1684.81C573,-1676.79 573,-1667.05 573,-1658.07"/>
+<polygon fill="black" stroke="black" points="576.5,-1658.03 573,-1648.03 569.5,-1658.03 576.5,-1658.03"/>
 </g>
 <!-- System.out.println(&quot;&#24180;&#40836;&#22826;&#22823;&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;5&lt;/font&gt;&lt;/i&gt; -->
-<g id="node36" class="node">
+<g id="node39" class="node">
 <title>System.out.println(&quot;&#24180;&#40836;&#22826;&#22823;&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;5&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="954.79,-1362.2 741.21,-1362.2 741.21,-1326.2 954.79,-1326.2 954.79,-1362.2"/>
-<text text-anchor="start" x="749.36" y="-1341" font-family="Times,serif" font-size="14.00">System.out.println(&quot;年龄太大&quot;);</text>
-<text text-anchor="start" x="932.64" y="-1341" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;5</text>
+<polygon fill="none" stroke="black" points="641.79,-1505.2 428.21,-1505.2 428.21,-1469.2 641.79,-1469.2 641.79,-1505.2"/>
+<text text-anchor="start" x="436.36" y="-1484" font-family="Times,serif" font-size="14.00">System.out.println(&quot;年龄太大&quot;);</text>
+<text text-anchor="start" x="619.64" y="-1484" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;5</text>
 </g>
 <!-- age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;&#24180;&#40836;&#22826;&#22823;&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;5&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge46" class="edge">
+<g id="edge51" class="edge">
 <title>age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;&#24180;&#40836;&#22826;&#22823;&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;5&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M881.64,-1469.85C875.22,-1446.05 863.13,-1401.25 855.32,-1372.34"/>
-<polygon fill="black" stroke="black" points="858.65,-1371.22 852.66,-1362.48 851.89,-1373.04 858.65,-1371.22"/>
-<text text-anchor="middle" x="886.88" y="-1438.4" font-family="Times,serif" font-size="14.00">true</text>
+<path fill="none" stroke="black" d="M568.64,-1612.85C562.22,-1589.05 550.13,-1544.25 542.32,-1515.34"/>
+<polygon fill="black" stroke="black" points="545.65,-1514.22 539.66,-1505.48 538.89,-1516.04 545.65,-1514.22"/>
+<text text-anchor="middle" x="574.88" y="-1581.4" font-family="Times,serif" font-size="14.00">true</text>
 </g>
 <!-- age&gt;20&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;7&lt;/font&gt;&lt;/i&gt; -->
-<g id="node38" class="node">
+<g id="node40" class="node">
 <title>age&gt;20&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;7&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="978,-1416.2 908.35,-1398.2 978,-1380.2 1047.65,-1398.2 978,-1416.2"/>
-<text text-anchor="start" x="950.34" y="-1395" font-family="Times,serif" font-size="14.00">age&gt;20</text>
-<text text-anchor="start" x="991.66" y="-1395" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;7</text>
+<polygon fill="none" stroke="black" points="665,-1559.2 595.35,-1541.2 665,-1523.2 734.65,-1541.2 665,-1559.2"/>
+<text text-anchor="start" x="637.34" y="-1538" font-family="Times,serif" font-size="14.00">age&gt;20</text>
+<text text-anchor="start" x="678.66" y="-1538" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;7</text>
 </g>
 <!-- age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;20&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;7&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge47" class="edge">
+<g id="edge52" class="edge">
 <title>age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;20&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;7&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M900.38,-1472.44C915.36,-1458.3 939.03,-1435.96 956.3,-1419.68"/>
-<polygon fill="black" stroke="black" points="958.85,-1422.08 963.73,-1412.67 954.05,-1416.98 958.85,-1422.08"/>
-<text text-anchor="middle" x="953.21" y="-1438.4" font-family="Times,serif" font-size="14.00">false</text>
-</g>
-<!-- int i =0&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
-<g id="node37" class="node">
-<title>int i =0&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="959.57,-1235.2 882.43,-1235.2 882.43,-1199.2 959.57,-1199.2 959.57,-1235.2"/>
-<text text-anchor="start" x="890.22" y="-1214" font-family="Times,serif" font-size="14.00">int i =0</text>
-<text text-anchor="start" x="930.78" y="-1214" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;13</text>
+<path fill="none" stroke="black" d="M587.38,-1615.44C602.36,-1601.3 626.03,-1578.96 643.3,-1562.68"/>
+<polygon fill="black" stroke="black" points="645.85,-1565.08 650.73,-1555.67 641.05,-1559.98 645.85,-1565.08"/>
+<text text-anchor="middle" x="641.21" y="-1581.4" font-family="Times,serif" font-size="14.00">false</text>
 </g>
-<!-- System.out.println(&quot;&#24180;&#40836;&#22826;&#22823;&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;5&lt;/font&gt;&lt;/i&gt;&#45;&gt;int i =0&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge48" class="edge">
-<title>System.out.println(&quot;&#24180;&#40836;&#22826;&#22823;&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;5&lt;/font&gt;&lt;/i&gt;&#45;&gt;int i =0&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M850.01,-1326.18C852.36,-1311.17 857.24,-1289.11 867,-1272.2 873.37,-1261.17 882.56,-1250.81 891.57,-1242.17"/>
-<polygon fill="black" stroke="black" points="894.01,-1244.68 899.02,-1235.34 889.28,-1239.52 894.01,-1244.68"/>
-</g>
-<!-- int i =0&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge49" class="edge">
-<title>int i =0&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M921,-1199.01C921,-1190.99 921,-1181.25 921,-1172.27"/>
-<polygon fill="black" stroke="black" points="924.5,-1172.23 921,-1162.23 917.5,-1172.23 924.5,-1172.23"/>
+<!-- System.out.println(&quot;&#24180;&#40836;&#22826;&#22823;&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;5&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge53" class="edge">
+<title>System.out.println(&quot;&#24180;&#40836;&#22826;&#22823;&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;5&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M535.83,-1469.03C537.39,-1453.49 541.77,-1430.75 554,-1415.2 569.36,-1395.67 593.82,-1382.23 614.58,-1373.65"/>
+<polygon fill="black" stroke="black" points="616.07,-1376.82 624.12,-1369.93 613.53,-1370.3 616.07,-1376.82"/>
 </g>
 <!-- System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;8&lt;/font&gt;&lt;/i&gt; -->
-<g id="node39" class="node">
+<g id="node41" class="node">
 <title>System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;8&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="1162.58,-1308.2 983.42,-1308.2 983.42,-1272.2 1162.58,-1272.2 1162.58,-1308.2"/>
-<text text-anchor="start" x="991.46" y="-1287" font-family="Times,serif" font-size="14.00">System.out.println(&quot;123&quot;);</text>
-<text text-anchor="start" x="1140.54" y="-1287" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;8</text>
+<polygon fill="none" stroke="black" points="742.58,-1451.2 563.42,-1451.2 563.42,-1415.2 742.58,-1415.2 742.58,-1451.2"/>
+<text text-anchor="start" x="571.46" y="-1430" font-family="Times,serif" font-size="14.00">System.out.println(&quot;123&quot;);</text>
+<text text-anchor="start" x="720.54" y="-1430" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;8</text>
 </g>
 <!-- age&gt;20&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;7&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;8&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge50" class="edge">
+<g id="edge54" class="edge">
 <title>age&gt;20&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;7&lt;/font&gt;&lt;/i&gt;&#45;&gt;System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;8&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M990.42,-1383.34C1005.76,-1366.22 1032.13,-1336.8 1050.95,-1315.81"/>
-<polygon fill="black" stroke="black" points="1053.68,-1318 1057.75,-1308.22 1048.47,-1313.33 1053.68,-1318"/>
-<text text-anchor="middle" x="1049.88" y="-1340" font-family="Times,serif" font-size="14.00">true</text>
+<path fill="none" stroke="black" d="M663.12,-1523.64C661.25,-1507.03 658.32,-1481.18 656.09,-1461.53"/>
+<polygon fill="black" stroke="black" points="659.54,-1460.89 654.94,-1451.35 652.59,-1461.68 659.54,-1460.89"/>
+<text text-anchor="middle" x="671.88" y="-1483" font-family="Times,serif" font-size="14.00">true</text>
 </g>
 <!-- age = 18;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;11&lt;/font&gt;&lt;/i&gt; -->
-<g id="node40" class="node">
+<g id="node42" class="node">
 <title>age = 18;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;11&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="965.71,-1308.2 876.29,-1308.2 876.29,-1272.2 965.71,-1272.2 965.71,-1308.2"/>
-<text text-anchor="start" x="884.39" y="-1287" font-family="Times,serif" font-size="14.00">age = 18;</text>
-<text text-anchor="start" x="936.61" y="-1287" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;11</text>
+<polygon fill="none" stroke="black" points="849.71,-1451.2 760.29,-1451.2 760.29,-1415.2 849.71,-1415.2 849.71,-1451.2"/>
+<text text-anchor="start" x="768.39" y="-1430" font-family="Times,serif" font-size="14.00">age = 18;</text>
+<text text-anchor="start" x="820.61" y="-1430" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;11</text>
 </g>
 <!-- age&gt;20&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;7&lt;/font&gt;&lt;/i&gt;&#45;&gt;age = 18;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;11&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge51" class="edge">
-<title>age&gt;20&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;7&lt;/font&gt;&lt;/i&gt;&#45;&gt;age = 18;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;11&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M975.25,-1380.76C972.22,-1365.74 966.33,-1343.33 956,-1326.2 953.8,-1322.56 951.15,-1319.02 948.29,-1315.67"/>
-<polygon fill="black" stroke="black" points="950.77,-1313.2 941.39,-1308.27 945.65,-1317.97 950.77,-1313.2"/>
-<text text-anchor="middle" x="983.21" y="-1340" font-family="Times,serif" font-size="14.00">false</text>
-</g>
-<!-- System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;8&lt;/font&gt;&lt;/i&gt;&#45;&gt;int i =0&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge52" class="edge">
-<title>System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;8&lt;/font&gt;&lt;/i&gt;&#45;&gt;int i =0&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M1036.59,-1272.19C1015.69,-1262.43 989.24,-1250.08 966.92,-1239.65"/>
-<polygon fill="black" stroke="black" points="968.18,-1236.37 957.64,-1235.31 965.22,-1242.72 968.18,-1236.37"/>
-</g>
-<!-- age = 18;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;11&lt;/font&gt;&lt;/i&gt;&#45;&gt;int i =0&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge53" class="edge">
-<title>age = 18;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;11&lt;/font&gt;&lt;/i&gt;&#45;&gt;int i =0&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M921,-1272.01C921,-1263.99 921,-1254.25 921,-1245.27"/>
-<polygon fill="black" stroke="black" points="924.5,-1245.23 921,-1235.23 917.5,-1245.23 924.5,-1245.23"/>
-</g>
-<!-- Person#main&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;2&lt;/font&gt;&lt;/i&gt; -->
-<g id="node41" class="node">
-<title>Person#main&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;2&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M925.6,-1651C925.6,-1651 846.4,-1651 846.4,-1651 840.4,-1651 834.4,-1645 834.4,-1639 834.4,-1639 834.4,-1627 834.4,-1627 834.4,-1621 840.4,-1615 846.4,-1615 846.4,-1615 925.6,-1615 925.6,-1615 931.6,-1615 937.6,-1621 937.6,-1627 937.6,-1627 937.6,-1639 937.6,-1639 937.6,-1645 931.6,-1651 925.6,-1651"/>
-<text text-anchor="start" x="842.45" y="-1629.8" font-family="Times,serif" font-size="14.00">Person#main</text>
-<text text-anchor="start" x="915.55" y="-1629.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;2</text>
-</g>
-<!-- int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt; -->
-<g id="node42" class="node">
-<title>int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt;</title>
-<polygon fill="none" stroke="black" points="934.11,-1578 837.89,-1578 837.89,-1542 934.11,-1542 934.11,-1578"/>
-<text text-anchor="start" x="845.7" y="-1556.8" font-family="Times,serif" font-size="14.00">int age = 10</text>
-<text text-anchor="start" x="912.3" y="-1556.8" font-family="Times,serif" font-style="italic" font-size="14.00" fill="gray"> &#160;3</text>
-</g>
-<!-- Person#main&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;2&lt;/font&gt;&lt;/i&gt;&#45;&gt;int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt; -->
-<g id="edge54" class="edge">
-<title>Person#main&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;2&lt;/font&gt;&lt;/i&gt;&#45;&gt;int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M886,-1614.81C886,-1606.79 886,-1597.05 886,-1588.07"/>
-<polygon fill="black" stroke="black" points="889.5,-1588.03 886,-1578.03 882.5,-1588.03 889.5,-1588.03"/>
-</g>
-<!-- int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt; -->
 <g id="edge55" class="edge">
-<title>int age = 10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;3&lt;/font&gt;&lt;/i&gt;&#45;&gt;age&gt;10&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;4&lt;/font&gt;&lt;/i&gt;</title>
-<path fill="none" stroke="black" d="M886,-1541.81C886,-1533.79 886,-1524.05 886,-1515.07"/>
-<polygon fill="black" stroke="black" points="889.5,-1515.03 886,-1505.03 882.5,-1515.03 889.5,-1515.03"/>
+<title>age&gt;20&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;7&lt;/font&gt;&lt;/i&gt;&#45;&gt;age = 18;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;11&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M681.89,-1527.41C704.79,-1510.07 746.09,-1478.8 774.5,-1457.29"/>
+<polygon fill="black" stroke="black" points="776.64,-1460.06 782.5,-1451.23 772.42,-1454.48 776.64,-1460.06"/>
+<text text-anchor="middle" x="768.21" y="-1483" font-family="Times,serif" font-size="14.00">false</text>
+</g>
+<!-- System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;8&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge56" class="edge">
+<title>System.out.println(&quot;123&quot;);&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;8&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M653,-1415.01C653,-1406.99 653,-1397.25 653,-1388.27"/>
+<polygon fill="black" stroke="black" points="656.5,-1388.23 653,-1378.23 649.5,-1388.23 656.5,-1388.23"/>
+</g>
+<!-- age = 18;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;11&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt; -->
+<g id="edge57" class="edge">
+<title>age = 18;&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;11&lt;/font&gt;&lt;/i&gt;&#45;&gt;i&lt;12&lt;i&gt;&lt;font color=&quot;gray&quot;&gt; &#160;13&lt;/font&gt;&lt;/i&gt;</title>
+<path fill="none" stroke="black" d="M768.59,-1415.19C743.01,-1403.24 709.11,-1387.41 684.65,-1375.98"/>
+<polygon fill="black" stroke="black" points="685.99,-1372.75 675.45,-1371.69 683.03,-1379.09 685.99,-1372.75"/>
 </g>
 </g>
 </svg>

+ 6 - 0
pom.xml

@@ -13,6 +13,7 @@
         <module>aidl-to-json</module>
         <module>map-to-json</module>
         <module>flowchart</module>
+        <module>antlr4-utils</module>
     </modules>
     <dependencies>
         <dependency>
@@ -20,6 +21,11 @@
             <artifactId>antlr4</artifactId>
             <version>4.9.2</version>
         </dependency>
+        <dependency>
+            <groupId>xyz.ignatz</groupId>
+            <artifactId>antlr4-utils</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 
     <properties>