public class org.antlr.v4.automata.ATNOptimizer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.antlr.v4.automata.ATNOptimizer
  super_class: java.lang.Object
{
  public static void optimize(org.antlr.v4.tool.Grammar, org.antlr.v4.runtime.atn.ATN);
    descriptor: (Lorg/antlr/v4/tool/Grammar;Lorg/antlr/v4/runtime/atn/ATN;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.antlr.v4.tool.Grammar g
        start local 1 // org.antlr.v4.runtime.atn.ATN atn
         0: .line 37
            aload 0 /* g */
            aload 1 /* atn */
            invokestatic org.antlr.v4.automata.ATNOptimizer.optimizeSets:(Lorg/antlr/v4/tool/Grammar;Lorg/antlr/v4/runtime/atn/ATN;)V
         1: .line 38
            aload 1 /* atn */
            invokestatic org.antlr.v4.automata.ATNOptimizer.optimizeStates:(Lorg/antlr/v4/runtime/atn/ATN;)V
         2: .line 39
            return
        end local 1 // org.antlr.v4.runtime.atn.ATN atn
        end local 0 // org.antlr.v4.tool.Grammar g
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     g  Lorg/antlr/v4/tool/Grammar;
            0    3     1   atn  Lorg/antlr/v4/runtime/atn/ATN;
    MethodParameters:
      Name  Flags
      g     
      atn   

  private static void optimizeSets(org.antlr.v4.tool.Grammar, org.antlr.v4.runtime.atn.ATN);
    descriptor: (Lorg/antlr/v4/tool/Grammar;Lorg/antlr/v4/runtime/atn/ATN;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=20, args_size=2
        start local 0 // org.antlr.v4.tool.Grammar g
        start local 1 // org.antlr.v4.runtime.atn.ATN atn
         0: .line 42
            aload 0 /* g */
            invokevirtual org.antlr.v4.tool.Grammar.isParser:()Z
            ifeq 2
         1: .line 44
            return
         2: .line 48
      StackMap locals:
      StackMap stack:
            aload 1 /* atn */
            getfield org.antlr.v4.runtime.atn.ATN.decisionToState:Ljava/util/List;
            astore 2 /* decisions */
        start local 2 // java.util.List decisions
         3: .line 49
            aload 2 /* decisions */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 82
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.runtime.atn.ATN java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.antlr.v4.runtime.atn.DecisionState
            astore 3 /* decision */
        start local 3 // org.antlr.v4.runtime.atn.DecisionState decision
         5: .line 50
            aload 3 /* decision */
            getfield org.antlr.v4.runtime.atn.DecisionState.ruleIndex:I
            iflt 9
         6: .line 51
            aload 0 /* g */
            aload 3 /* decision */
            getfield org.antlr.v4.runtime.atn.DecisionState.ruleIndex:I
            invokevirtual org.antlr.v4.tool.Grammar.getRule:(I)Lorg/antlr/v4/tool/Rule;
            astore 5 /* rule */
        start local 5 // org.antlr.v4.tool.Rule rule
         7: .line 52
            aload 5 /* rule */
            getfield org.antlr.v4.tool.Rule.name:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLowerCase:(C)Z
            ifeq 9
         8: .line 54
            goto 82
        end local 5 // org.antlr.v4.tool.Rule rule
         9: .line 58
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.runtime.atn.ATN java.util.List org.antlr.v4.runtime.atn.DecisionState java.util.Iterator
      StackMap stack:
            new org.antlr.v4.runtime.misc.IntervalSet
            dup
            iconst_0
            newarray 10
            invokespecial org.antlr.v4.runtime.misc.IntervalSet.<init>:([I)V
            astore 5 /* setTransitions */
        start local 5 // org.antlr.v4.runtime.misc.IntervalSet setTransitions
        10: .line 59
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: goto 27
        12: .line 60
      StackMap locals: org.antlr.v4.runtime.misc.IntervalSet int
      StackMap stack:
            aload 3 /* decision */
            iload 6 /* i */
            invokevirtual org.antlr.v4.runtime.atn.DecisionState.transition:(I)Lorg/antlr/v4/runtime/atn/Transition;
            astore 7 /* epsTransition */
        start local 7 // org.antlr.v4.runtime.atn.Transition epsTransition
        13: .line 61
            aload 7 /* epsTransition */
            instanceof org.antlr.v4.runtime.atn.EpsilonTransition
            ifne 15
        14: .line 62
            goto 26
        15: .line 65
      StackMap locals: org.antlr.v4.runtime.atn.Transition
      StackMap stack:
            aload 7 /* epsTransition */
            getfield org.antlr.v4.runtime.atn.Transition.target:Lorg/antlr/v4/runtime/atn/ATNState;
            invokevirtual org.antlr.v4.runtime.atn.ATNState.getNumberOfTransitions:()I
            iconst_1
            if_icmpeq 17
        16: .line 66
            goto 26
        17: .line 69
      StackMap locals:
      StackMap stack:
            aload 7 /* epsTransition */
            getfield org.antlr.v4.runtime.atn.Transition.target:Lorg/antlr/v4/runtime/atn/ATNState;
            iconst_0
            invokevirtual org.antlr.v4.runtime.atn.ATNState.transition:(I)Lorg/antlr/v4/runtime/atn/Transition;
            astore 8 /* transition */
        start local 8 // org.antlr.v4.runtime.atn.Transition transition
        18: .line 70
            aload 8 /* transition */
            getfield org.antlr.v4.runtime.atn.Transition.target:Lorg/antlr/v4/runtime/atn/ATNState;
            instanceof org.antlr.v4.runtime.atn.BlockEndState
            ifne 20
        19: .line 71
            goto 26
        20: .line 74
      StackMap locals: org.antlr.v4.runtime.atn.Transition
      StackMap stack:
            aload 8 /* transition */
            instanceof org.antlr.v4.runtime.atn.NotSetTransition
            ifeq 22
        21: .line 76
            goto 26
        22: .line 79
      StackMap locals:
      StackMap stack:
            aload 8 /* transition */
            instanceof org.antlr.v4.runtime.atn.AtomTransition
            ifne 25
        23: .line 80
            aload 8 /* transition */
            instanceof org.antlr.v4.runtime.atn.RangeTransition
            ifne 25
        24: .line 81
            aload 8 /* transition */
            instanceof org.antlr.v4.runtime.atn.SetTransition
            ifeq 26
        25: .line 83
      StackMap locals:
      StackMap stack:
            aload 5 /* setTransitions */
            iload 6 /* i */
            invokevirtual org.antlr.v4.runtime.misc.IntervalSet.add:(I)V
        end local 8 // org.antlr.v4.runtime.atn.Transition transition
        end local 7 // org.antlr.v4.runtime.atn.Transition epsTransition
        26: .line 59
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 6 /* i */
            aload 3 /* decision */
            invokevirtual org.antlr.v4.runtime.atn.DecisionState.getNumberOfTransitions:()I
            if_icmplt 12
        end local 6 // int i
        28: .line 88
            aload 5 /* setTransitions */
            invokevirtual org.antlr.v4.runtime.misc.IntervalSet.getIntervals:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 6 /* i */
        start local 6 // int i
        29: goto 81
        30: .line 89
      StackMap locals:
      StackMap stack:
            aload 5 /* setTransitions */
            invokevirtual org.antlr.v4.runtime.misc.IntervalSet.getIntervals:()Ljava/util/List;
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.antlr.v4.runtime.misc.Interval
            astore 7 /* interval */
        start local 7 // org.antlr.v4.runtime.misc.Interval interval
        31: .line 90
            aload 7 /* interval */
            invokevirtual org.antlr.v4.runtime.misc.Interval.length:()I
            iconst_1
            if_icmpgt 33
        32: .line 91
            goto 80
        33: .line 94
      StackMap locals: org.antlr.v4.runtime.misc.Interval
      StackMap stack:
            aload 3 /* decision */
            aload 7 /* interval */
            getfield org.antlr.v4.runtime.misc.Interval.a:I
            invokevirtual org.antlr.v4.runtime.atn.DecisionState.transition:(I)Lorg/antlr/v4/runtime/atn/Transition;
            getfield org.antlr.v4.runtime.atn.Transition.target:Lorg/antlr/v4/runtime/atn/ATNState;
            iconst_0
            invokevirtual org.antlr.v4.runtime.atn.ATNState.transition:(I)Lorg/antlr/v4/runtime/atn/Transition;
            getfield org.antlr.v4.runtime.atn.Transition.target:Lorg/antlr/v4/runtime/atn/ATNState;
            astore 8 /* blockEndState */
        start local 8 // org.antlr.v4.runtime.atn.ATNState blockEndState
        34: .line 95
            new org.antlr.v4.runtime.misc.IntervalSet
            dup
            iconst_0
            newarray 10
            invokespecial org.antlr.v4.runtime.misc.IntervalSet.<init>:([I)V
            astore 9 /* matchSet */
        start local 9 // org.antlr.v4.runtime.misc.IntervalSet matchSet
        35: .line 96
            aload 7 /* interval */
            getfield org.antlr.v4.runtime.misc.Interval.a:I
            istore 10 /* j */
        start local 10 // int j
        36: goto 64
        37: .line 97
      StackMap locals: org.antlr.v4.runtime.atn.ATNState org.antlr.v4.runtime.misc.IntervalSet int
      StackMap stack:
            aload 3 /* decision */
            iload 10 /* j */
            invokevirtual org.antlr.v4.runtime.atn.DecisionState.transition:(I)Lorg/antlr/v4/runtime/atn/Transition;
            getfield org.antlr.v4.runtime.atn.Transition.target:Lorg/antlr/v4/runtime/atn/ATNState;
            iconst_0
            invokevirtual org.antlr.v4.runtime.atn.ATNState.transition:(I)Lorg/antlr/v4/runtime/atn/Transition;
            astore 11 /* matchTransition */
        start local 11 // org.antlr.v4.runtime.atn.Transition matchTransition
        38: .line 98
            aload 11 /* matchTransition */
            instanceof org.antlr.v4.runtime.atn.NotSetTransition
            ifeq 40
        39: .line 99
            new java.lang.UnsupportedOperationException
            dup
            ldc "Not yet implemented."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        40: .line 101
      StackMap locals: org.antlr.v4.runtime.atn.Transition
      StackMap stack:
            aload 11 /* matchTransition */
            invokevirtual org.antlr.v4.runtime.atn.Transition.label:()Lorg/antlr/v4/runtime/misc/IntervalSet;
            astore 12 /* set */
        start local 12 // org.antlr.v4.runtime.misc.IntervalSet set
        41: .line 102
            aload 12 /* set */
            invokevirtual org.antlr.v4.runtime.misc.IntervalSet.getIntervals:()Ljava/util/List;
            astore 13 /* intervals */
        start local 13 // java.util.List intervals
        42: .line 103
            aload 13 /* intervals */
            invokeinterface java.util.List.size:()I
            istore 14 /* n */
        start local 14 // int n
        43: .line 104
            iconst_0
            istore 15 /* k */
        start local 15 // int k
        44: goto 61
        45: .line 105
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.runtime.atn.ATN java.util.List org.antlr.v4.runtime.atn.DecisionState java.util.Iterator org.antlr.v4.runtime.misc.IntervalSet int org.antlr.v4.runtime.misc.Interval org.antlr.v4.runtime.atn.ATNState org.antlr.v4.runtime.misc.IntervalSet int org.antlr.v4.runtime.atn.Transition org.antlr.v4.runtime.misc.IntervalSet java.util.List int int
      StackMap stack:
            aload 13 /* intervals */
            iload 15 /* k */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.antlr.v4.runtime.misc.Interval
            astore 16 /* setInterval */
        start local 16 // org.antlr.v4.runtime.misc.Interval setInterval
        46: .line 106
            aload 16 /* setInterval */
            getfield org.antlr.v4.runtime.misc.Interval.a:I
            istore 17 /* a */
        start local 17 // int a
        47: .line 107
            aload 16 /* setInterval */
            getfield org.antlr.v4.runtime.misc.Interval.b:I
            istore 18 /* b */
        start local 18 // int b
        48: .line 108
            iload 17 /* a */
            iconst_m1
            if_icmpeq 60
            iload 18 /* b */
            iconst_m1
            if_icmpeq 60
        49: .line 109
            iload 17 /* a */
            istore 19 /* v */
        start local 19 // int v
        50: goto 59
        51: .line 110
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.runtime.atn.ATN java.util.List org.antlr.v4.runtime.atn.DecisionState java.util.Iterator org.antlr.v4.runtime.misc.IntervalSet int org.antlr.v4.runtime.misc.Interval org.antlr.v4.runtime.atn.ATNState org.antlr.v4.runtime.misc.IntervalSet int org.antlr.v4.runtime.atn.Transition org.antlr.v4.runtime.misc.IntervalSet java.util.List int int org.antlr.v4.runtime.misc.Interval int int int
      StackMap stack:
            aload 9 /* matchSet */
            iload 19 /* v */
            invokevirtual org.antlr.v4.runtime.misc.IntervalSet.contains:(I)Z
            ifeq 58
        52: .line 112
            aload 0 /* g */
            getfield org.antlr.v4.tool.Grammar.tool:Lorg/antlr/v4/Tool;
            getfield org.antlr.v4.Tool.errMgr:Lorg/antlr/v4/tool/ErrorManager;
            getstatic org.antlr.v4.tool.ErrorType.CHARACTERS_COLLISION_IN_SET:Lorg/antlr/v4/tool/ErrorType;
            aload 0 /* g */
            getfield org.antlr.v4.tool.Grammar.fileName:Ljava/lang/String;
        53: .line 113
            aconst_null
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        54: .line 114
            iload 19 /* v */
            invokestatic org.antlr.v4.misc.CharSupport.getANTLRCharLiteralForChar:(I)Ljava/lang/String;
            aastore
            dup
            iconst_1
        55: .line 115
            aload 9 /* matchSet */
            invokestatic org.antlr.v4.misc.CharSupport.getIntervalSetEscapedString:(Lorg/antlr/v4/runtime/misc/IntervalSet;)Ljava/lang/String;
            aastore
        56: .line 112
            invokevirtual org.antlr.v4.tool.ErrorManager.grammarError:(Lorg/antlr/v4/tool/ErrorType;Ljava/lang/String;Lorg/antlr/runtime/Token;[Ljava/lang/Object;)V
        57: .line 116
            goto 60
        58: .line 109
      StackMap locals:
      StackMap stack:
            iinc 19 /* v */ 1
      StackMap locals:
      StackMap stack:
        59: iload 19 /* v */
            iload 18 /* b */
            if_icmple 51
        end local 19 // int v
        end local 18 // int b
        end local 17 // int a
        end local 16 // org.antlr.v4.runtime.misc.Interval setInterval
        60: .line 104
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.runtime.atn.ATN java.util.List org.antlr.v4.runtime.atn.DecisionState java.util.Iterator org.antlr.v4.runtime.misc.IntervalSet int org.antlr.v4.runtime.misc.Interval org.antlr.v4.runtime.atn.ATNState org.antlr.v4.runtime.misc.IntervalSet int org.antlr.v4.runtime.atn.Transition org.antlr.v4.runtime.misc.IntervalSet java.util.List int int
      StackMap stack:
            iinc 15 /* k */ 1
      StackMap locals:
      StackMap stack:
        61: iload 15 /* k */
            iload 14 /* n */
            if_icmplt 45
        end local 15 // int k
        62: .line 121
            aload 9 /* matchSet */
            aload 12 /* set */
            invokevirtual org.antlr.v4.runtime.misc.IntervalSet.addAll:(Lorg/antlr/v4/runtime/misc/IntSet;)Lorg/antlr/v4/runtime/misc/IntervalSet;
            pop
        end local 14 // int n
        end local 13 // java.util.List intervals
        end local 12 // org.antlr.v4.runtime.misc.IntervalSet set
        end local 11 // org.antlr.v4.runtime.atn.Transition matchTransition
        63: .line 96
            iinc 10 /* j */ 1
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.runtime.atn.ATN java.util.List org.antlr.v4.runtime.atn.DecisionState java.util.Iterator org.antlr.v4.runtime.misc.IntervalSet int org.antlr.v4.runtime.misc.Interval org.antlr.v4.runtime.atn.ATNState org.antlr.v4.runtime.misc.IntervalSet int
      StackMap stack:
        64: iload 10 /* j */
            aload 7 /* interval */
            getfield org.antlr.v4.runtime.misc.Interval.b:I
            if_icmple 37
        end local 10 // int j
        65: .line 125
            aload 9 /* matchSet */
            invokevirtual org.antlr.v4.runtime.misc.IntervalSet.getIntervals:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 72
        66: .line 126
            aload 9 /* matchSet */
            invokevirtual org.antlr.v4.runtime.misc.IntervalSet.size:()I
            iconst_1
            if_icmpne 69
        67: .line 127
            aload 8 /* blockEndState */
            aload 9 /* matchSet */
            invokevirtual org.antlr.v4.runtime.misc.IntervalSet.getMinElement:()I
            invokestatic org.antlr.v4.runtime.atn.CodePointTransitions.createWithCodePoint:(Lorg/antlr/v4/runtime/atn/ATNState;I)Lorg/antlr/v4/runtime/atn/Transition;
            astore 10 /* newTransition */
        start local 10 // org.antlr.v4.runtime.atn.Transition newTransition
        68: .line 128
            goto 73
        end local 10 // org.antlr.v4.runtime.atn.Transition newTransition
        69: .line 130
      StackMap locals:
      StackMap stack:
            aload 9 /* matchSet */
            invokevirtual org.antlr.v4.runtime.misc.IntervalSet.getIntervals:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.antlr.v4.runtime.misc.Interval
            astore 11 /* matchInterval */
        start local 11 // org.antlr.v4.runtime.misc.Interval matchInterval
        70: .line 131
            aload 8 /* blockEndState */
            aload 11 /* matchInterval */
            getfield org.antlr.v4.runtime.misc.Interval.a:I
            aload 11 /* matchInterval */
            getfield org.antlr.v4.runtime.misc.Interval.b:I
            invokestatic org.antlr.v4.runtime.atn.CodePointTransitions.createWithCodePointRange:(Lorg/antlr/v4/runtime/atn/ATNState;II)Lorg/antlr/v4/runtime/atn/Transition;
            astore 10 /* newTransition */
        end local 11 // org.antlr.v4.runtime.misc.Interval matchInterval
        start local 10 // org.antlr.v4.runtime.atn.Transition newTransition
        71: .line 133
            goto 73
        end local 10 // org.antlr.v4.runtime.atn.Transition newTransition
        72: .line 135
      StackMap locals:
      StackMap stack:
            new org.antlr.v4.runtime.atn.SetTransition
            dup
            aload 8 /* blockEndState */
            aload 9 /* matchSet */
            invokespecial org.antlr.v4.runtime.atn.SetTransition.<init>:(Lorg/antlr/v4/runtime/atn/ATNState;Lorg/antlr/v4/runtime/misc/IntervalSet;)V
            astore 10 /* newTransition */
        start local 10 // org.antlr.v4.runtime.atn.Transition newTransition
        73: .line 138
      StackMap locals: org.antlr.v4.runtime.atn.Transition
      StackMap stack:
            aload 3 /* decision */
            aload 7 /* interval */
            getfield org.antlr.v4.runtime.misc.Interval.a:I
            invokevirtual org.antlr.v4.runtime.atn.DecisionState.transition:(I)Lorg/antlr/v4/runtime/atn/Transition;
            getfield org.antlr.v4.runtime.atn.Transition.target:Lorg/antlr/v4/runtime/atn/ATNState;
            iconst_0
            aload 10 /* newTransition */
            invokevirtual org.antlr.v4.runtime.atn.ATNState.setTransition:(ILorg/antlr/v4/runtime/atn/Transition;)V
        74: .line 139
            aload 7 /* interval */
            getfield org.antlr.v4.runtime.misc.Interval.a:I
            iconst_1
            iadd
            istore 11 /* j */
        start local 11 // int j
        75: goto 79
        76: .line 140
      StackMap locals: int
      StackMap stack:
            aload 3 /* decision */
            aload 7 /* interval */
            getfield org.antlr.v4.runtime.misc.Interval.a:I
            iconst_1
            iadd
            invokevirtual org.antlr.v4.runtime.atn.DecisionState.removeTransition:(I)Lorg/antlr/v4/runtime/atn/Transition;
            astore 12 /* removed */
        start local 12 // org.antlr.v4.runtime.atn.Transition removed
        77: .line 141
            aload 1 /* atn */
            aload 12 /* removed */
            getfield org.antlr.v4.runtime.atn.Transition.target:Lorg/antlr/v4/runtime/atn/ATNState;
            invokevirtual org.antlr.v4.runtime.atn.ATN.removeState:(Lorg/antlr/v4/runtime/atn/ATNState;)V
        end local 12 // org.antlr.v4.runtime.atn.Transition removed
        78: .line 139
            iinc 11 /* j */ 1
      StackMap locals:
      StackMap stack:
        79: iload 11 /* j */
            aload 7 /* interval */
            getfield org.antlr.v4.runtime.misc.Interval.b:I
            if_icmple 76
        end local 11 // int j
        end local 10 // org.antlr.v4.runtime.atn.Transition newTransition
        end local 9 // org.antlr.v4.runtime.misc.IntervalSet matchSet
        end local 8 // org.antlr.v4.runtime.atn.ATNState blockEndState
        end local 7 // org.antlr.v4.runtime.misc.Interval interval
        80: .line 88
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.runtime.atn.ATN java.util.List org.antlr.v4.runtime.atn.DecisionState java.util.Iterator org.antlr.v4.runtime.misc.IntervalSet int
      StackMap stack:
            iinc 6 /* i */ -1
      StackMap locals:
      StackMap stack:
        81: iload 6 /* i */
            ifge 30
        end local 6 // int i
        end local 5 // org.antlr.v4.runtime.misc.IntervalSet setTransitions
        end local 3 // org.antlr.v4.runtime.atn.DecisionState decision
        82: .line 49
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.runtime.atn.ATN java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        83: .line 148
            return
        end local 2 // java.util.List decisions
        end local 1 // org.antlr.v4.runtime.atn.ATN atn
        end local 0 // org.antlr.v4.tool.Grammar g
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   84     0                g  Lorg/antlr/v4/tool/Grammar;
            0   84     1              atn  Lorg/antlr/v4/runtime/atn/ATN;
            3   84     2        decisions  Ljava/util/List<Lorg/antlr/v4/runtime/atn/DecisionState;>;
            5   82     3         decision  Lorg/antlr/v4/runtime/atn/DecisionState;
            7    9     5             rule  Lorg/antlr/v4/tool/Rule;
           10   82     5   setTransitions  Lorg/antlr/v4/runtime/misc/IntervalSet;
           11   28     6                i  I
           13   26     7    epsTransition  Lorg/antlr/v4/runtime/atn/Transition;
           18   26     8       transition  Lorg/antlr/v4/runtime/atn/Transition;
           29   82     6                i  I
           31   80     7         interval  Lorg/antlr/v4/runtime/misc/Interval;
           34   80     8    blockEndState  Lorg/antlr/v4/runtime/atn/ATNState;
           35   80     9         matchSet  Lorg/antlr/v4/runtime/misc/IntervalSet;
           36   65    10                j  I
           38   63    11  matchTransition  Lorg/antlr/v4/runtime/atn/Transition;
           41   63    12              set  Lorg/antlr/v4/runtime/misc/IntervalSet;
           42   63    13        intervals  Ljava/util/List<Lorg/antlr/v4/runtime/misc/Interval;>;
           43   63    14                n  I
           44   62    15                k  I
           46   60    16      setInterval  Lorg/antlr/v4/runtime/misc/Interval;
           47   60    17                a  I
           48   60    18                b  I
           50   60    19                v  I
           68   69    10    newTransition  Lorg/antlr/v4/runtime/atn/Transition;
           71   72    10    newTransition  Lorg/antlr/v4/runtime/atn/Transition;
           73   80    10    newTransition  Lorg/antlr/v4/runtime/atn/Transition;
           70   71    11    matchInterval  Lorg/antlr/v4/runtime/misc/Interval;
           75   80    11                j  I
           77   78    12          removed  Lorg/antlr/v4/runtime/atn/Transition;
    MethodParameters:
      Name  Flags
      g     
      atn   

  private static void optimizeStates(org.antlr.v4.runtime.atn.ATN);
    descriptor: (Lorg/antlr/v4/runtime/atn/ATN;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.antlr.v4.runtime.atn.ATN atn
         0: .line 152
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* compressed */
        start local 1 // java.util.List compressed
         1: .line 153
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: .line 154
            aload 0 /* atn */
            getfield org.antlr.v4.runtime.atn.ATN.states:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: org.antlr.v4.runtime.atn.ATN java.util.List int top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.antlr.v4.runtime.atn.ATNState
            astore 3 /* s */
        start local 3 // org.antlr.v4.runtime.atn.ATNState s
         4: .line 155
            aload 3 /* s */
            ifnull 8
         5: .line 156
            aload 1 /* compressed */
            aload 3 /* s */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 157
            aload 3 /* s */
            iload 2 /* i */
            putfield org.antlr.v4.runtime.atn.ATNState.stateNumber:I
         7: .line 158
            iinc 2 /* i */ 1
        end local 3 // org.antlr.v4.runtime.atn.ATNState s
         8: .line 154
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 163
            aload 0 /* atn */
            getfield org.antlr.v4.runtime.atn.ATN.states:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        10: .line 164
            aload 0 /* atn */
            getfield org.antlr.v4.runtime.atn.ATN.states:Ljava/util/List;
            aload 1 /* compressed */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        11: .line 165
            return
        end local 2 // int i
        end local 1 // java.util.List compressed
        end local 0 // org.antlr.v4.runtime.atn.ATN atn
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0         atn  Lorg/antlr/v4/runtime/atn/ATN;
            1   12     1  compressed  Ljava/util/List<Lorg/antlr/v4/runtime/atn/ATNState;>;
            2   12     2           i  I
            4    8     3           s  Lorg/antlr/v4/runtime/atn/ATNState;
    MethodParameters:
      Name  Flags
      atn   

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.antlr.v4.automata.ATNOptimizer this
         0: .line 167
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 168
            return
        end local 0 // org.antlr.v4.automata.ATNOptimizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/antlr/v4/automata/ATNOptimizer;
}
SourceFile: "ATNOptimizer.java"