public class com.beust.jcommander.JCommander
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.beust.jcommander.JCommander
  super_class: java.lang.Object
{
  public static final java.lang.String DEBUG_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "jcommander.debug"

  private java.util.Map<com.beust.jcommander.FuzzyMap$IKey, com.beust.jcommander.ParameterDescription> descriptions;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lcom/beust/jcommander/FuzzyMap$IKey;Lcom/beust/jcommander/ParameterDescription;>;

  private java.util.List<java.lang.Object> objects;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/lang/Object;>;

  private com.beust.jcommander.IUsageFormatter usageFormatter;
    descriptor: Lcom/beust/jcommander/IUsageFormatter;
    flags: (0x0002) ACC_PRIVATE

  private com.beust.jcommander.JCommander$MainParameter mainParameter;
    descriptor: Lcom/beust/jcommander/JCommander$MainParameter;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<com.beust.jcommander.Parameterized, com.beust.jcommander.ParameterDescription> requiredFields;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lcom/beust/jcommander/Parameterized;Lcom/beust/jcommander/ParameterDescription;>;

  private java.util.Map<com.beust.jcommander.Parameterized, com.beust.jcommander.ParameterDescription> fields;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lcom/beust/jcommander/Parameterized;Lcom/beust/jcommander/ParameterDescription;>;

  private java.util.Map<com.beust.jcommander.JCommander$ProgramName, com.beust.jcommander.JCommander> commands;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lcom/beust/jcommander/JCommander$ProgramName;Lcom/beust/jcommander/JCommander;>;

  private java.util.Map<com.beust.jcommander.FuzzyMap$IKey, com.beust.jcommander.JCommander$ProgramName> aliasMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lcom/beust/jcommander/FuzzyMap$IKey;Lcom/beust/jcommander/JCommander$ProgramName;>;

  private java.lang.String parsedCommand;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String parsedAlias;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private com.beust.jcommander.JCommander$ProgramName programName;
    descriptor: Lcom/beust/jcommander/JCommander$ProgramName;
    flags: (0x0002) ACC_PRIVATE

  private boolean helpWasSpecified;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<java.lang.String> unknownArgs;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private com.beust.jcommander.internal.Console console;
    descriptor: Lcom/beust/jcommander/internal/Console;
    flags: (0x0002) ACC_PRIVATE

  private final com.beust.jcommander.JCommander$Options options;
    descriptor: Lcom/beust/jcommander/JCommander$Options;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.beust.jcommander.IVariableArity DEFAULT_VARIABLE_ARITY;
    descriptor: Lcom/beust/jcommander/IVariableArity;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private void <init>(com.beust.jcommander.JCommander$Options);
    descriptor: (Lcom/beust/jcommander/JCommander$Options;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.JCommander$Options options
         0: .line 206
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 58
            aload 0 /* this */
            invokestatic com.beust.jcommander.internal.Lists.newArrayList:()Ljava/util/List;
            putfield com.beust.jcommander.JCommander.objects:Ljava/util/List;
         2: .line 113
            aload 0 /* this */
            new com.beust.jcommander.DefaultUsageFormatter
            dup
            aload 0 /* this */
            invokespecial com.beust.jcommander.DefaultUsageFormatter.<init>:(Lcom/beust/jcommander/JCommander;)V
            putfield com.beust.jcommander.JCommander.usageFormatter:Lcom/beust/jcommander/IUsageFormatter;
         3: .line 115
            aload 0 /* this */
            aconst_null
            putfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
         4: .line 125
            aload 0 /* this */
            invokestatic com.beust.jcommander.internal.Maps.newHashMap:()Ljava/util/Map;
            putfield com.beust.jcommander.JCommander.requiredFields:Ljava/util/Map;
         5: .line 130
            aload 0 /* this */
            invokestatic com.beust.jcommander.internal.Maps.newHashMap:()Ljava/util/Map;
            putfield com.beust.jcommander.JCommander.fields:Ljava/util/Map;
         6: .line 135
            aload 0 /* this */
            invokestatic com.beust.jcommander.internal.Maps.newLinkedHashMap:()Ljava/util/Map;
            putfield com.beust.jcommander.JCommander.commands:Ljava/util/Map;
         7: .line 140
            aload 0 /* this */
            invokestatic com.beust.jcommander.internal.Maps.newLinkedHashMap:()Ljava/util/Map;
            putfield com.beust.jcommander.JCommander.aliasMap:Ljava/util/Map;
         8: .line 157
            aload 0 /* this */
            invokestatic com.beust.jcommander.internal.Lists.newArrayList:()Ljava/util/List;
            putfield com.beust.jcommander.JCommander.unknownArgs:Ljava/util/List;
         9: .line 840
            aload 0 /* this */
            new com.beust.jcommander.JCommander$DefaultVariableArity
            dup
            aload 0 /* this */
            invokespecial com.beust.jcommander.JCommander$DefaultVariableArity.<init>:(Lcom/beust/jcommander/JCommander;)V
            putfield com.beust.jcommander.JCommander.DEFAULT_VARIABLE_ARITY:Lcom/beust/jcommander/IVariableArity;
        10: .line 207
            aload 1 /* options */
            ifnonnull 12
        11: .line 208
            new java.lang.NullPointerException
            dup
            ldc "options"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 210
      StackMap locals: com.beust.jcommander.JCommander com.beust.jcommander.JCommander$Options
      StackMap stack:
            aload 0 /* this */
            aload 1 /* options */
            putfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
        13: .line 211
            aload 1 /* options */
            getfield com.beust.jcommander.JCommander$Options.converterInstanceFactories:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 15
        14: .line 212
            aload 0 /* this */
            new com.beust.jcommander.internal.DefaultConverterFactory
            dup
            invokespecial com.beust.jcommander.internal.DefaultConverterFactory.<init>:()V
            invokevirtual com.beust.jcommander.JCommander.addConverterFactory:(Lcom/beust/jcommander/IStringConverterFactory;)V
        15: .line 214
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.beust.jcommander.JCommander$Options options
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lcom/beust/jcommander/JCommander;
            0   16     1  options  Lcom/beust/jcommander/JCommander$Options;
    MethodParameters:
         Name  Flags
      options  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 220
            aload 0 /* this */
            new com.beust.jcommander.JCommander$Options
            dup
            invokespecial com.beust.jcommander.JCommander$Options.<init>:()V
            invokespecial com.beust.jcommander.JCommander.<init>:(Lcom/beust/jcommander/JCommander$Options;)V
         1: .line 221
            return
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/beust/jcommander/JCommander;

  public void <init>(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.Object object
         0: .line 227
            aload 0 /* this */
            aload 1 /* object */
            aconst_null
            invokespecial com.beust.jcommander.JCommander.<init>:(Ljava/lang/Object;Ljava/util/ResourceBundle;)V
         1: .line 228
            return
        end local 1 // java.lang.Object object
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/beust/jcommander/JCommander;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public void <init>(java.lang.Object, java.util.ResourceBundle);
    descriptor: (Ljava/lang/Object;Ljava/util/ResourceBundle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.Object object
        start local 2 // java.util.ResourceBundle bundle
         0: .line 235
            aload 0 /* this */
            aload 1 /* object */
            aload 2 /* bundle */
            aconst_null
            invokespecial com.beust.jcommander.JCommander.<init>:(Ljava/lang/Object;Ljava/util/ResourceBundle;[Ljava/lang/String;)V
         1: .line 236
            return
        end local 2 // java.util.ResourceBundle bundle
        end local 1 // java.lang.Object object
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/beust/jcommander/JCommander;
            0    2     1  object  Ljava/lang/Object;
            0    2     2  bundle  Ljava/util/ResourceBundle;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        com.beust.jcommander.internal.Nullable()
    MethodParameters:
        Name  Flags
      object  
      bundle  

  public void <init>(java.lang.Object, java.util.ResourceBundle, java.lang.String[]);
    descriptor: (Ljava/lang/Object;Ljava/util/ResourceBundle;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.Object object
        start local 2 // java.util.ResourceBundle bundle
        start local 3 // java.lang.String[] args
         0: .line 244
            aload 0 /* this */
            invokespecial com.beust.jcommander.JCommander.<init>:()V
         1: .line 245
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual com.beust.jcommander.JCommander.addObject:(Ljava/lang/Object;)V
         2: .line 246
            aload 2 /* bundle */
            ifnull 4
         3: .line 247
            aload 0 /* this */
            aload 2 /* bundle */
            invokevirtual com.beust.jcommander.JCommander.setDescriptionsBundle:(Ljava/util/ResourceBundle;)V
         4: .line 249
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.ResourceBundle java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.beust.jcommander.JCommander.createDescriptions:()V
         5: .line 250
            aload 3 /* args */
            ifnull 7
         6: .line 251
            aload 0 /* this */
            aload 3 /* args */
            invokevirtual com.beust.jcommander.JCommander.parse:([Ljava/lang/String;)V
         7: .line 253
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String[] args
        end local 2 // java.util.ResourceBundle bundle
        end local 1 // java.lang.Object object
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/beust/jcommander/JCommander;
            0    8     1  object  Ljava/lang/Object;
            0    8     2  bundle  Ljava/util/ResourceBundle;
            0    8     3    args  [Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        com.beust.jcommander.internal.Nullable()
      2:
    MethodParameters:
        Name  Flags
      object  
      bundle  
      args    

  public void <init>(java.lang.Object, java.lang.String[]);
    descriptor: (Ljava/lang/Object;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.String[] args
         0: .line 263
            aload 0 /* this */
            aload 1 /* object */
            invokespecial com.beust.jcommander.JCommander.<init>:(Ljava/lang/Object;)V
         1: .line 264
            aload 0 /* this */
            aload 2 /* args */
            invokevirtual com.beust.jcommander.JCommander.parse:([Ljava/lang/String;)V
         2: .line 265
            return
        end local 2 // java.lang.String[] args
        end local 1 // java.lang.Object object
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/beust/jcommander/JCommander;
            0    3     1  object  Ljava/lang/Object;
            0    3     2    args  [Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      object  
      args    

  public void setExpandAtSign(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // boolean expandAtSign
         0: .line 274
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            iload 1 /* expandAtSign */
            putfield com.beust.jcommander.JCommander$Options.expandAtSign:Z
         1: .line 275
            return
        end local 1 // boolean expandAtSign
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/beust/jcommander/JCommander;
            0    2     1  expandAtSign  Z
    MethodParameters:
              Name  Flags
      expandAtSign  

  public void setConsole(com.beust.jcommander.internal.Console);
    descriptor: (Lcom/beust/jcommander/internal/Console;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.internal.Console console
         0: .line 277
            aload 0 /* this */
            aload 1 /* console */
            putfield com.beust.jcommander.JCommander.console:Lcom/beust/jcommander/internal/Console;
            return
        end local 1 // com.beust.jcommander.internal.Console console
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/beust/jcommander/JCommander;
            0    1     1  console  Lcom/beust/jcommander/internal/Console;
    MethodParameters:
         Name  Flags
      console  

  public synchronized com.beust.jcommander.internal.Console getConsole();
    descriptor: ()Lcom/beust/jcommander/internal/Console;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 283
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.console:Lcom/beust/jcommander/internal/Console;
            ifnonnull 7
         1: .line 285
            ldc Ljava/lang/System;
            ldc "console"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 1 /* consoleMethod */
        start local 1 // java.lang.reflect.Method consoleMethod
         2: .line 286
            aload 1 /* consoleMethod */
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* console */
        start local 2 // java.lang.Object console
         3: .line 287
            aload 0 /* this */
            new com.beust.jcommander.internal.JDK6Console
            dup
            aload 2 /* console */
            invokespecial com.beust.jcommander.internal.JDK6Console.<init>:(Ljava/lang/Object;)V
            putfield com.beust.jcommander.JCommander.console:Lcom/beust/jcommander/internal/Console;
        end local 2 // java.lang.Object console
        end local 1 // java.lang.reflect.Method consoleMethod
         4: .line 288
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: pop
         6: .line 289
            aload 0 /* this */
            new com.beust.jcommander.internal.DefaultConsole
            dup
            invokespecial com.beust.jcommander.internal.DefaultConsole.<init>:()V
            putfield com.beust.jcommander.JCommander.console:Lcom/beust/jcommander/internal/Console;
         7: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.console:Lcom/beust/jcommander/internal/Console;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/beust/jcommander/JCommander;
            2    4     1  consoleMethod  Ljava/lang/reflect/Method;
            3    4     2        console  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Throwable

  public final void addObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.Object object
         0: .line 305
            aload 1 /* object */
            instanceof java.lang.Iterable
            ifeq 6
         1: .line 307
            aload 1 /* object */
            checkcast java.lang.Iterable
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* o */
        start local 2 // java.lang.Object o
         3: .line 308
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.objects:Ljava/util/List;
            aload 2 /* o */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.Object o
         4: .line 307
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 310
            goto 14
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object
      StackMap stack:
         6: aload 1 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 13
         7: .line 312
            aload 1 /* object */
            checkcast java.lang.Object[]
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 11
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object top int int java.lang.Object[]
      StackMap stack:
         8: aload 5
            iload 3
            aaload
            astore 2 /* o */
        start local 2 // java.lang.Object o
         9: .line 313
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.objects:Ljava/util/List;
            aload 2 /* o */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.Object o
        10: .line 312
            iinc 3 1
      StackMap locals:
      StackMap stack:
        11: iload 3
            iload 4
            if_icmplt 8
        12: .line 315
            goto 14
        13: .line 317
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.objects:Ljava/util/List;
            aload 1 /* object */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 319
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object object
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lcom/beust/jcommander/JCommander;
            0   15     1  object  Ljava/lang/Object;
            3    4     2       o  Ljava/lang/Object;
            9   10     2       o  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public final void setDescriptionsBundle(java.util.ResourceBundle);
    descriptor: (Ljava/util/ResourceBundle;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.util.ResourceBundle bundle
         0: .line 327
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            aload 1 /* bundle */
            putfield com.beust.jcommander.JCommander$Options.bundle:Ljava/util/ResourceBundle;
         1: .line 328
            return
        end local 1 // java.util.ResourceBundle bundle
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/beust/jcommander/JCommander;
            0    2     1  bundle  Ljava/util/ResourceBundle;
    MethodParameters:
        Name  Flags
      bundle  

  public void parse(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String[] args
         0: .line 335
            aload 0 /* this */
            iconst_1
            aload 1 /* args */
            invokevirtual com.beust.jcommander.JCommander.parse:(Z[Ljava/lang/String;)V
         1: .line 336
            goto 5
      StackMap locals:
      StackMap stack: com.beust.jcommander.ParameterException
         2: astore 2 /* ex */
        start local 2 // com.beust.jcommander.ParameterException ex
         3: .line 337
            aload 2 /* ex */
            aload 0 /* this */
            invokevirtual com.beust.jcommander.ParameterException.setJCommander:(Lcom/beust/jcommander/JCommander;)V
         4: .line 338
            aload 2 /* ex */
            athrow
        end local 2 // com.beust.jcommander.ParameterException ex
         5: .line 340
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] args
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/beust/jcommander/JCommander;
            0    6     1  args  [Ljava/lang/String;
            3    5     2    ex  Lcom/beust/jcommander/ParameterException;
      Exception table:
        from    to  target  type
           0     1       2  Class com.beust.jcommander.ParameterException
    MethodParameters:
      Name  Flags
      args  

  public void parseWithoutValidation(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String[] args
         0: .line 346
            aload 0 /* this */
            iconst_0
            aload 1 /* args */
            invokevirtual com.beust.jcommander.JCommander.parse:(Z[Ljava/lang/String;)V
         1: .line 347
            return
        end local 1 // java.lang.String[] args
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/beust/jcommander/JCommander;
            0    2     1  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      args  

  private void parse(boolean, java.lang.String[]);
    descriptor: (Z[Ljava/lang/String;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // boolean validate
        start local 2 // java.lang.String[] args
         0: .line 350
            new java.lang.StringBuilder
            dup
            ldc "Parsing \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 351
            aload 3 /* sb */
            ldc " "
            aload 2 /* args */
            invokestatic com.beust.jcommander.Strings.join:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\"\n  with:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.objects:Ljava/util/List;
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokestatic com.beust.jcommander.Strings.join:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 352
            aload 0 /* this */
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.beust.jcommander.JCommander.p:(Ljava/lang/String;)V
         3: .line 354
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            ifnonnull 4
            aload 0 /* this */
            invokevirtual com.beust.jcommander.JCommander.createDescriptions:()V
         4: .line 355
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.beust.jcommander.JCommander.initializeDefaultValues:()V
         5: .line 356
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* args */
            invokevirtual com.beust.jcommander.JCommander.expandArgs:([Ljava/lang/String;)[Ljava/lang/String;
            iload 1 /* validate */
            invokevirtual com.beust.jcommander.JCommander.parseValues:([Ljava/lang/String;Z)V
         6: .line 357
            iload 1 /* validate */
            ifeq 7
            aload 0 /* this */
            invokevirtual com.beust.jcommander.JCommander.validateOptions:()V
         7: .line 358
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.StringBuilder sb
        end local 2 // java.lang.String[] args
        end local 1 // boolean validate
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/beust/jcommander/JCommander;
            0    8     1  validate  Z
            0    8     2      args  [Ljava/lang/String;
            1    8     3        sb  Ljava/lang/StringBuilder;
    MethodParameters:
          Name  Flags
      validate  
      args      

  private void initializeDefaultValues();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 361
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.defaultProvider:Lcom/beust/jcommander/IDefaultProvider;
            ifnull 9
         1: .line 362
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: com.beust.jcommander.JCommander top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.beust.jcommander.ParameterDescription
            astore 1 /* pd */
        start local 1 // com.beust.jcommander.ParameterDescription pd
         3: .line 363
            aload 0 /* this */
            aload 1 /* pd */
            invokevirtual com.beust.jcommander.JCommander.initializeDefaultValue:(Lcom/beust/jcommander/ParameterDescription;)V
        end local 1 // com.beust.jcommander.ParameterDescription pd
         4: .line 362
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 366
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.commands:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 1 /* entry */
        start local 1 // java.util.Map$Entry entry
         7: .line 367
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.beust.jcommander.JCommander
            invokevirtual com.beust.jcommander.JCommander.initializeDefaultValues:()V
        end local 1 // java.util.Map$Entry entry
         8: .line 366
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 370
      StackMap locals: com.beust.jcommander.JCommander
      StackMap stack:
            return
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/beust/jcommander/JCommander;
            3    4     1     pd  Lcom/beust/jcommander/ParameterDescription;
            7    8     1  entry  Ljava/util/Map$Entry<Lcom/beust/jcommander/JCommander$ProgramName;Lcom/beust/jcommander/JCommander;>;

  private void validateOptions();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 377
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.helpWasSpecified:Z
            ifeq 2
         1: .line 378
            return
         2: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.requiredFields:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 13
         3: .line 382
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* missingFields */
        start local 1 // java.util.List missingFields
         4: .line 383
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.requiredFields:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: com.beust.jcommander.JCommander java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.beust.jcommander.ParameterDescription
            astore 2 /* pd */
        start local 2 // com.beust.jcommander.ParameterDescription pd
         6: .line 384
            aload 1 /* missingFields */
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " | "
            aload 2 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.names:()[Ljava/lang/String;
            invokestatic com.beust.jcommander.Strings.join:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // com.beust.jcommander.ParameterDescription pd
         7: .line 383
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 386
            ldc ", "
            aload 1 /* missingFields */
            invokestatic com.beust.jcommander.Strings.join:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
            astore 2 /* message */
        start local 2 // java.lang.String message
         9: .line 387
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The following "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 388
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.requiredFields:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ldc "option is required: "
            ldc "options are required: "
            invokestatic com.beust.jcommander.JCommander.pluralize:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 389
            aload 2 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 387
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String message
        end local 1 // java.util.List missingFields
        13: .line 392
      StackMap locals: com.beust.jcommander.JCommander
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            ifnull 29
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.description:Lcom/beust/jcommander/ParameterDescription;
            ifnull 29
        14: .line 393
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.description:Lcom/beust/jcommander/ParameterDescription;
            astore 1 /* mainParameterDescription */
        start local 1 // com.beust.jcommander.ParameterDescription mainParameterDescription
        15: .line 395
            aload 1 /* mainParameterDescription */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.required:()Z
            ifeq 20
        16: .line 396
            aload 1 /* mainParameterDescription */
            invokevirtual com.beust.jcommander.ParameterDescription.isAssigned:()Z
            ifne 20
        17: .line 397
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Main parameters are required (\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        18: .line 398
            aload 1 /* mainParameterDescription */
            invokevirtual com.beust.jcommander.ParameterDescription.getDescription:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 397
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 402
      StackMap locals: com.beust.jcommander.ParameterDescription
      StackMap stack:
            aload 1 /* mainParameterDescription */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.arity:()I
            istore 2 /* arity */
        start local 2 // int arity
        21: .line 403
            iload 2 /* arity */
            iconst_m1
            if_icmpeq 29
        22: .line 404
            aload 1 /* mainParameterDescription */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameterized:()Lcom/beust/jcommander/Parameterized;
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.object:Ljava/lang/Object;
            invokevirtual com.beust.jcommander.Parameterized.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
        23: .line 405
            ldc Ljava/util/List;
            aload 3 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 29
        24: .line 406
            aload 3 /* value */
            checkcast java.util.List
            invokeinterface java.util.List.size:()I
            istore 4 /* size */
        start local 4 // int size
        25: .line 407
            iload 4 /* size */
            iload 2 /* arity */
            if_icmpeq 29
        26: .line 408
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "There should be exactly "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* arity */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " main parameters but "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 409
            iload 4 /* size */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " were found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        28: .line 408
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int size
        end local 3 // java.lang.Object value
        end local 2 // int arity
        end local 1 // com.beust.jcommander.ParameterDescription mainParameterDescription
        29: .line 415
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   30     0                      this  Lcom/beust/jcommander/JCommander;
            4   13     1             missingFields  Ljava/util/List<Ljava/lang/String;>;
            6    7     2                        pd  Lcom/beust/jcommander/ParameterDescription;
            9   13     2                   message  Ljava/lang/String;
           15   29     1  mainParameterDescription  Lcom/beust/jcommander/ParameterDescription;
           21   29     2                     arity  I
           23   29     3                     value  Ljava/lang/Object;
           25   29     4                      size  I

  private static java.lang.String pluralize(int, java.lang.String, java.lang.String);
    descriptor: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // int quantity
        start local 1 // java.lang.String singular
        start local 2 // java.lang.String plural
         0: .line 418
            iload 0 /* quantity */
            iconst_1
            if_icmpne 1
            aload 1 /* singular */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 2 /* plural */
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 2 // java.lang.String plural
        end local 1 // java.lang.String singular
        end local 0 // int quantity
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  quantity  I
            0    3     1  singular  Ljava/lang/String;
            0    3     2    plural  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      quantity  
      singular  
      plural    

  private java.lang.String[] expandArgs(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String[] originalArgv
         0: .line 430
            invokestatic com.beust.jcommander.internal.Lists.newArrayList:()Ljava/util/List;
            astore 2 /* vResult1 */
        start local 2 // java.util.List vResult1
         1: .line 435
            aload 1 /* originalArgv */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 10
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] java.util.List top int int java.lang.String[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* arg */
        start local 3 // java.lang.String arg
         3: .line 437
            aload 3 /* arg */
            ldc "@"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.expandAtSign:Z
            ifeq 7
         4: .line 438
            aload 3 /* arg */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* fileName */
        start local 7 // java.lang.String fileName
         5: .line 439
            aload 2 /* vResult1 */
            aload 0 /* this */
            aload 7 /* fileName */
            invokevirtual com.beust.jcommander.JCommander.readFile:(Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 7 // java.lang.String fileName
         6: .line 440
            goto 9
         7: .line 441
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] java.util.List java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            aload 3 /* arg */
            invokevirtual com.beust.jcommander.JCommander.expandDynamicArg:(Ljava/lang/String;)Ljava/util/List;
            astore 7 /* expanded */
        start local 7 // java.util.List expanded
         8: .line 442
            aload 2 /* vResult1 */
            aload 7 /* expanded */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 7 // java.util.List expanded
        end local 3 // java.lang.String arg
         9: .line 435
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] java.util.List top int int java.lang.String[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        10: iload 4
            iload 5
            if_icmplt 2
        11: .line 448
            invokestatic com.beust.jcommander.internal.Lists.newArrayList:()Ljava/util/List;
            astore 3 /* vResult2 */
        start local 3 // java.util.List vResult2
        12: .line 449
            aload 2 /* vResult1 */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 27
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        13: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* arg */
        start local 4 // java.lang.String arg
        14: .line 450
            aload 0 /* this */
            aload 4 /* arg */
            invokevirtual com.beust.jcommander.JCommander.isOption:(Ljava/lang/String;)Z
            ifeq 26
        15: .line 451
            aload 0 /* this */
            aload 4 /* arg */
            invokevirtual com.beust.jcommander.JCommander.getSeparatorFor:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* sep */
        start local 6 // java.lang.String sep
        16: .line 452
            ldc " "
            aload 6 /* sep */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
        17: .line 453
            aload 4 /* arg */
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_2
            invokevirtual java.lang.String.split:(Ljava/lang/String;I)[Ljava/lang/String;
            astore 7 /* sp */
        start local 7 // java.lang.String[] sp
        18: .line 454
            aload 7 /* sp */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 22
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] java.util.List java.util.List java.lang.String java.util.Iterator java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        19: aload 11
            iload 9
            aaload
            astore 8 /* ssp */
        start local 8 // java.lang.String ssp
        20: .line 455
            aload 3 /* vResult2 */
            aload 8 /* ssp */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String ssp
        21: .line 454
            iinc 9 1
      StackMap locals:
      StackMap stack:
        22: iload 9
            iload 10
            if_icmplt 19
        end local 7 // java.lang.String[] sp
        23: .line 457
            goto 27
        24: .line 458
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] java.util.List java.util.List java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            aload 3 /* vResult2 */
            aload 4 /* arg */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String sep
        25: .line 460
            goto 27
        26: .line 461
      StackMap locals:
      StackMap stack:
            aload 3 /* vResult2 */
            aload 4 /* arg */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.String arg
        27: .line 449
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        28: .line 465
            aload 3 /* vResult2 */
            aload 3 /* vResult2 */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 3 // java.util.List vResult2
        end local 2 // java.util.List vResult1
        end local 1 // java.lang.String[] originalArgv
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   29     0          this  Lcom/beust/jcommander/JCommander;
            0   29     1  originalArgv  [Ljava/lang/String;
            1   29     2      vResult1  Ljava/util/List<Ljava/lang/String;>;
            3    9     3           arg  Ljava/lang/String;
            5    6     7      fileName  Ljava/lang/String;
            8    9     7      expanded  Ljava/util/List<Ljava/lang/String;>;
           12   29     3      vResult2  Ljava/util/List<Ljava/lang/String;>;
           14   27     4           arg  Ljava/lang/String;
           16   25     6           sep  Ljava/lang/String;
           18   23     7            sp  [Ljava/lang/String;
           20   21     8           ssp  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      originalArgv  

  private java.util.List<java.lang.String> expandDynamicArg(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String arg
         0: .line 469
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: com.beust.jcommander.JCommander java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.beust.jcommander.ParameterDescription
            astore 2 /* pd */
        start local 2 // com.beust.jcommander.ParameterDescription pd
         2: .line 470
            aload 2 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.isDynamicParameter:()Z
            ifeq 9
         3: .line 471
            aload 2 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.names:()[Ljava/lang/String;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 8
      StackMap locals: com.beust.jcommander.JCommander java.lang.String com.beust.jcommander.ParameterDescription java.util.Iterator top int int java.lang.String[]
      StackMap stack:
         4: aload 7
            iload 5
            aaload
            astore 4 /* name */
        start local 4 // java.lang.String name
         5: .line 472
            aload 1 /* arg */
            aload 4 /* name */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
            aload 1 /* arg */
            aload 4 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 473
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* name */
            aastore
            dup
            iconst_1
            aload 1 /* arg */
            aload 4 /* name */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 4 // java.lang.String name
         7: .line 471
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         8: iload 5
            iload 6
            if_icmplt 4
        end local 2 // com.beust.jcommander.ParameterDescription pd
         9: .line 469
      StackMap locals: com.beust.jcommander.JCommander java.lang.String top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 479
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* arg */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 1 // java.lang.String arg
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/beust/jcommander/JCommander;
            0   11     1   arg  Ljava/lang/String;
            2    9     2    pd  Lcom/beust/jcommander/ParameterDescription;
            5    7     4  name  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      arg   

  private boolean matchArg(java.lang.String, com.beust.jcommander.FuzzyMap$IKey);
    descriptor: (Ljava/lang/String;Lcom/beust/jcommander/FuzzyMap$IKey;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String arg
        start local 2 // com.beust.jcommander.FuzzyMap$IKey key
         0: .line 483
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.caseSensitiveOptions:Z
            ifeq 2
         1: .line 484
            aload 2 /* key */
            invokeinterface com.beust.jcommander.FuzzyMap$IKey.getName:()Ljava/lang/String;
            goto 3
         2: .line 485
      StackMap locals:
      StackMap stack:
            aload 2 /* key */
            invokeinterface com.beust.jcommander.FuzzyMap$IKey.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
         3: .line 483
      StackMap locals:
      StackMap stack: java.lang.String
            astore 3 /* kn */
        start local 3 // java.lang.String kn
         4: .line 486
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.allowAbbreviatedOptions:Z
            ifeq 6
         5: .line 487
            aload 3 /* kn */
            aload 1 /* arg */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 13
            iconst_1
            ireturn
         6: .line 489
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            aload 2 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.beust.jcommander.ParameterDescription
            astore 4 /* pd */
        start local 4 // com.beust.jcommander.ParameterDescription pd
         7: .line 490
            aload 4 /* pd */
            ifnull 12
         8: .line 493
            aload 0 /* this */
            aload 1 /* arg */
            invokevirtual com.beust.jcommander.JCommander.getSeparatorFor:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* separator */
        start local 5 // java.lang.String separator
         9: .line 494
            ldc " "
            aload 5 /* separator */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 495
            aload 1 /* arg */
            aload 3 /* kn */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 13
            iconst_1
            ireturn
        11: .line 497
      StackMap locals: com.beust.jcommander.ParameterDescription java.lang.String
      StackMap stack:
            aload 3 /* kn */
            aload 1 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
            iconst_1
            ireturn
        end local 5 // java.lang.String separator
        12: .line 501
      StackMap locals:
      StackMap stack:
            aload 3 /* kn */
            aload 1 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
            iconst_1
            ireturn
        end local 4 // com.beust.jcommander.ParameterDescription pd
        13: .line 504
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.lang.String kn
        end local 2 // com.beust.jcommander.FuzzyMap$IKey key
        end local 1 // java.lang.String arg
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lcom/beust/jcommander/JCommander;
            0   14     1        arg  Ljava/lang/String;
            0   14     2        key  Lcom/beust/jcommander/FuzzyMap$IKey;
            4   14     3         kn  Ljava/lang/String;
            7   13     4         pd  Lcom/beust/jcommander/ParameterDescription;
            9   12     5  separator  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      arg   
      key   

  private boolean isOption(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String passedArg
         0: .line 508
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.acceptUnknownOptions:Z
            ifeq 1
            iconst_1
            ireturn
         1: .line 510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.caseSensitiveOptions:Z
            ifeq 2
            aload 1 /* passedArg */
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 1 /* passedArg */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 2 /* arg */
        start local 2 // java.lang.String arg
         4: .line 512
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: com.beust.jcommander.JCommander java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.beust.jcommander.FuzzyMap$IKey
            astore 3 /* key */
        start local 3 // com.beust.jcommander.FuzzyMap$IKey key
         6: .line 513
            aload 0 /* this */
            aload 2 /* arg */
            aload 3 /* key */
            invokevirtual com.beust.jcommander.JCommander.matchArg:(Ljava/lang/String;Lcom/beust/jcommander/FuzzyMap$IKey;)Z
            ifeq 7
            iconst_1
            ireturn
        end local 3 // com.beust.jcommander.FuzzyMap$IKey key
         7: .line 512
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 515
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.commands:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals:
      StackMap stack:
         9: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.beust.jcommander.FuzzyMap$IKey
            astore 3 /* key */
        start local 3 // com.beust.jcommander.FuzzyMap$IKey key
        10: .line 516
            aload 0 /* this */
            aload 2 /* arg */
            aload 3 /* key */
            invokevirtual com.beust.jcommander.JCommander.matchArg:(Ljava/lang/String;Lcom/beust/jcommander/FuzzyMap$IKey;)Z
            ifeq 11
            iconst_1
            ireturn
        end local 3 // com.beust.jcommander.FuzzyMap$IKey key
        11: .line 515
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 519
            iconst_0
            ireturn
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String passedArg
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lcom/beust/jcommander/JCommander;
            0   13     1  passedArg  Ljava/lang/String;
            4   13     2        arg  Ljava/lang/String;
            6    7     3        key  Lcom/beust/jcommander/FuzzyMap$IKey;
           10   11     3        key  Lcom/beust/jcommander/FuzzyMap$IKey;
    MethodParameters:
           Name  Flags
      passedArg  

  private com.beust.jcommander.ParameterDescription getPrefixDescriptionFor(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/beust/jcommander/ParameterDescription;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String arg
         0: .line 523
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: com.beust.jcommander.JCommander java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* es */
        start local 2 // java.util.Map$Entry es
         2: .line 524
            aload 1 /* arg */
            aload 2 /* es */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast com.beust.jcommander.FuzzyMap$IKey
            invokeinterface com.beust.jcommander.FuzzyMap$IKey.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.caseSensitiveOptions:Z
            invokestatic com.beust.jcommander.Strings.startsWith:(Ljava/lang/String;Ljava/lang/String;Z)Z
            ifeq 3
            aload 2 /* es */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.beust.jcommander.ParameterDescription
            areturn
        end local 2 // java.util.Map$Entry es
         3: .line 523
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 527
            aconst_null
            areturn
        end local 1 // java.lang.String arg
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/beust/jcommander/JCommander;
            0    5     1   arg  Ljava/lang/String;
            2    3     2    es  Ljava/util/Map$Entry<Lcom/beust/jcommander/FuzzyMap$IKey;Lcom/beust/jcommander/ParameterDescription;>;
    MethodParameters:
      Name  Flags
      arg   

  private com.beust.jcommander.ParameterDescription getDescriptionFor(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/beust/jcommander/ParameterDescription;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String arg
         0: .line 535
            aload 0 /* this */
            aload 1 /* arg */
            invokevirtual com.beust.jcommander.JCommander.getPrefixDescriptionFor:(Ljava/lang/String;)Lcom/beust/jcommander/ParameterDescription;
            areturn
        end local 1 // java.lang.String arg
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;
            0    1     1   arg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      arg   

  private java.lang.String getSeparatorFor(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String arg
         0: .line 539
            aload 0 /* this */
            aload 1 /* arg */
            invokevirtual com.beust.jcommander.JCommander.getDescriptionFor:(Ljava/lang/String;)Lcom/beust/jcommander/ParameterDescription;
            astore 2 /* pd */
        start local 2 // com.beust.jcommander.ParameterDescription pd
         1: .line 542
            aload 2 /* pd */
            ifnull 4
         2: .line 543
            aload 2 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getObject:()Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Lcom/beust/jcommander/Parameters;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.beust.jcommander.Parameters
            astore 3 /* p */
        start local 3 // com.beust.jcommander.Parameters p
         3: .line 544
            aload 3 /* p */
            ifnull 4
            aload 3 /* p */
            invokeinterface com.beust.jcommander.Parameters.separators:()Ljava/lang/String;
            areturn
        end local 3 // com.beust.jcommander.Parameters p
         4: .line 547
      StackMap locals: com.beust.jcommander.ParameterDescription
      StackMap stack:
            ldc " "
            areturn
        end local 2 // com.beust.jcommander.ParameterDescription pd
        end local 1 // java.lang.String arg
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/beust/jcommander/JCommander;
            0    5     1   arg  Ljava/lang/String;
            1    5     2    pd  Lcom/beust/jcommander/ParameterDescription;
            3    4     3     p  Lcom/beust/jcommander/Parameters;
    MethodParameters:
      Name  Flags
      arg   

  private java.util.List<java.lang.String> readFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String fileName
         0: .line 558
            invokestatic com.beust.jcommander.internal.Lists.newArrayList:()Ljava/util/List;
            astore 2 /* result */
        start local 2 // java.util.List result
         1: .line 560
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: aload 1 /* fileName */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.atFileCharset:Ljava/nio/charset/Charset;
            invokestatic java.nio.file.Files.newBufferedReader:(Ljava/nio/file/Path;Ljava/nio/charset/Charset;)Ljava/io/BufferedReader;
            astore 5 /* bufRead */
        start local 5 // java.io.BufferedReader bufRead
         3: .line 563
            goto 6
        start local 6 // java.lang.String line
         4: .line 565
      StackMap locals: com.beust.jcommander.JCommander java.lang.String java.util.List java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String
      StackMap stack:
            aload 6 /* line */
            invokevirtual java.lang.String.length:()I
            ifle 6
            aload 6 /* line */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            ldc "#"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 6
         5: .line 566
            aload 2 /* result */
            aload 6 /* line */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String line
         6: .line 563
      StackMap locals:
      StackMap stack:
            aload 5 /* bufRead */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 6 /* line */
        start local 6 // java.lang.String line
         7: ifnonnull 4
        end local 6 // java.lang.String line
         8: .line 569
            aload 5 /* bufRead */
            ifnull 16
            aload 5 /* bufRead */
            invokevirtual java.io.BufferedReader.close:()V
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 5 /* bufRead */
            ifnull 10
            aload 5 /* bufRead */
            invokevirtual java.io.BufferedReader.close:()V
        end local 5 // java.io.BufferedReader bufRead
      StackMap locals:
      StackMap stack:
        10: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 4
            aload 3
            ifnonnull 12
            aload 4
            astore 3
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 3
            aload 4
            if_acmpeq 13
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 3
            athrow
      StackMap locals: com.beust.jcommander.JCommander java.lang.String java.util.List
      StackMap stack: java.io.IOException
        14: astore 3 /* e */
        start local 3 // java.io.IOException e
        15: .line 570
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not read file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* fileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.IOException e
        16: .line 573
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.util.List result
        end local 1 // java.lang.String fileName
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lcom/beust/jcommander/JCommander;
            0   17     1  fileName  Ljava/lang/String;
            1   17     2    result  Ljava/util/List<Ljava/lang/String;>;
            3   10     5   bufRead  Ljava/io/BufferedReader;
            4    6     6      line  Ljava/lang/String;
            7    8     6      line  Ljava/lang/String;
           15   16     3         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     8       9  any
           2    11      11  any
           1    14      14  Class java.io.IOException
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
          Name  Flags
      fileName  

  private static java.lang.String trim(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String string
         0: .line 580
            aload 0 /* string */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 1 /* result */
        start local 1 // java.lang.String result
         1: .line 581
            aload 1 /* result */
            ldc "\""
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
            aload 1 /* result */
            ldc "\""
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 3
            aload 1 /* result */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 3
         2: .line 582
            aload 1 /* result */
            iconst_1
            aload 1 /* result */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* result */
         3: .line 584
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // java.lang.String result
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  string  Ljava/lang/String;
            1    4     1  result  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  

  public void createDescriptions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 591
            aload 0 /* this */
            invokestatic com.beust.jcommander.internal.Maps.newHashMap:()Ljava/util/Map;
            putfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
         1: .line 593
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.objects:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: com.beust.jcommander.JCommander top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 1 /* object */
        start local 1 // java.lang.Object object
         3: .line 594
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual com.beust.jcommander.JCommander.addDescription:(Ljava/lang/Object;)V
        end local 1 // java.lang.Object object
         4: .line 593
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 596
            return
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/beust/jcommander/JCommander;
            3    4     1  object  Ljava/lang/Object;

  private void addDescription(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=13, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.Object object
         0: .line 599
            aload 1 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
         1: .line 601
            aload 1 /* object */
            invokestatic com.beust.jcommander.Parameterized.parseArg:(Ljava/lang/Object;)Ljava/util/List;
            astore 2 /* parameterizeds */
        start local 2 // java.util.List parameterizeds
         2: .line 602
            aload 2 /* parameterizeds */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 57
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.beust.jcommander.Parameterized
            astore 3 /* parameterized */
        start local 3 // com.beust.jcommander.Parameterized parameterized
         4: .line 603
            aload 3 /* parameterized */
            invokevirtual com.beust.jcommander.Parameterized.getWrappedParameter:()Lcom/beust/jcommander/WrappedParameter;
            astore 5 /* wp */
        start local 5 // com.beust.jcommander.WrappedParameter wp
         5: .line 604
            aload 5 /* wp */
            ifnull 35
            aload 5 /* wp */
            invokevirtual com.beust.jcommander.WrappedParameter.getParameter:()Lcom/beust/jcommander/Parameter;
            ifnull 35
         6: .line 605
            aload 5 /* wp */
            invokevirtual com.beust.jcommander.WrappedParameter.getParameter:()Lcom/beust/jcommander/Parameter;
            astore 6 /* annotation */
        start local 6 // com.beust.jcommander.Parameter annotation
         7: .line 609
            aload 6 /* annotation */
            astore 7 /* p */
        start local 7 // com.beust.jcommander.Parameter p
         8: .line 610
            aload 7 /* p */
            invokeinterface com.beust.jcommander.Parameter.names:()[Ljava/lang/String;
            arraylength
            ifne 22
         9: .line 611
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Found main parameter:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* parameterized */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.beust.jcommander.JCommander.p:(Ljava/lang/String;)V
        10: .line 612
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            ifnull 14
        11: .line 613
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Only one @Parameter with no names attribute is allowed, found:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 614
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* parameterized */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 613
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 616
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.List com.beust.jcommander.Parameterized java.util.Iterator com.beust.jcommander.WrappedParameter com.beust.jcommander.Parameter com.beust.jcommander.Parameter
      StackMap stack:
            aload 0 /* this */
            new com.beust.jcommander.JCommander$MainParameter
            dup
            invokespecial com.beust.jcommander.JCommander$MainParameter.<init>:()V
            putfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
        15: .line 617
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            aload 3 /* parameterized */
            putfield com.beust.jcommander.JCommander$MainParameter.parameterized:Lcom/beust/jcommander/Parameterized;
        16: .line 618
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            aload 1 /* object */
            putfield com.beust.jcommander.JCommander$MainParameter.object:Ljava/lang/Object;
        17: .line 619
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            aload 7 /* p */
            putfield com.beust.jcommander.JCommander$MainParameter.annotation:Lcom/beust/jcommander/Parameter;
        18: .line 620
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
        19: .line 621
            new com.beust.jcommander.ParameterDescription
            dup
            aload 1 /* object */
            aload 7 /* p */
            aload 3 /* parameterized */
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.bundle:Ljava/util/ResourceBundle;
            aload 0 /* this */
            invokespecial com.beust.jcommander.ParameterDescription.<init>:(Ljava/lang/Object;Lcom/beust/jcommander/Parameter;Lcom/beust/jcommander/Parameterized;Ljava/util/ResourceBundle;Lcom/beust/jcommander/JCommander;)V
        20: .line 620
            putfield com.beust.jcommander.JCommander$MainParameter.description:Lcom/beust/jcommander/ParameterDescription;
        21: .line 622
            goto 57
        22: .line 624
      StackMap locals:
      StackMap stack:
            new com.beust.jcommander.ParameterDescription
            dup
            aload 1 /* object */
            aload 7 /* p */
            aload 3 /* parameterized */
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.bundle:Ljava/util/ResourceBundle;
            aload 0 /* this */
            invokespecial com.beust.jcommander.ParameterDescription.<init>:(Ljava/lang/Object;Lcom/beust/jcommander/Parameter;Lcom/beust/jcommander/Parameterized;Ljava/util/ResourceBundle;Lcom/beust/jcommander/JCommander;)V
        23: .line 623
            astore 8 /* pd */
        start local 8 // com.beust.jcommander.ParameterDescription pd
        24: .line 625
            aload 7 /* p */
            invokeinterface com.beust.jcommander.Parameter.names:()[Ljava/lang/String;
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 33
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.List com.beust.jcommander.Parameterized java.util.Iterator com.beust.jcommander.WrappedParameter com.beust.jcommander.Parameter com.beust.jcommander.Parameter com.beust.jcommander.ParameterDescription top int int java.lang.String[]
      StackMap stack:
        25: aload 12
            iload 10
            aaload
            astore 9 /* name */
        start local 9 // java.lang.String name
        26: .line 626
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            new com.beust.jcommander.StringKey
            dup
            aload 9 /* name */
            invokespecial com.beust.jcommander.StringKey.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 28
        27: .line 627
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Found the option "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " multiple times"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 629
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.List com.beust.jcommander.Parameterized java.util.Iterator com.beust.jcommander.WrappedParameter com.beust.jcommander.Parameter com.beust.jcommander.Parameter com.beust.jcommander.ParameterDescription java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Adding description for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.beust.jcommander.JCommander.p:(Ljava/lang/String;)V
        29: .line 630
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.fields:Ljava/util/Map;
            aload 3 /* parameterized */
            aload 8 /* pd */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        30: .line 631
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            new com.beust.jcommander.StringKey
            dup
            aload 9 /* name */
            invokespecial com.beust.jcommander.StringKey.<init>:(Ljava/lang/String;)V
            aload 8 /* pd */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 633
            aload 7 /* p */
            invokeinterface com.beust.jcommander.Parameter.required:()Z
            ifeq 32
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.requiredFields:Ljava/util/Map;
            aload 3 /* parameterized */
            aload 8 /* pd */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.String name
        32: .line 625
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.List com.beust.jcommander.Parameterized java.util.Iterator com.beust.jcommander.WrappedParameter com.beust.jcommander.Parameter com.beust.jcommander.Parameter com.beust.jcommander.ParameterDescription top int int java.lang.String[]
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        33: iload 10
            iload 11
            if_icmplt 25
        end local 8 // com.beust.jcommander.ParameterDescription pd
        end local 7 // com.beust.jcommander.Parameter p
        end local 6 // com.beust.jcommander.Parameter annotation
        34: .line 636
            goto 57
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.List com.beust.jcommander.Parameterized java.util.Iterator com.beust.jcommander.WrappedParameter
      StackMap stack:
        35: aload 3 /* parameterized */
            invokevirtual com.beust.jcommander.Parameterized.getDelegateAnnotation:()Lcom/beust/jcommander/ParametersDelegate;
            ifnull 43
        36: .line 640
            aload 3 /* parameterized */
            aload 1 /* object */
            invokevirtual com.beust.jcommander.Parameterized.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* delegateObject */
        start local 6 // java.lang.Object delegateObject
        37: .line 641
            aload 6 /* delegateObject */
            ifnonnull 41
        38: .line 642
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Delegate field '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* parameterized */
            invokevirtual com.beust.jcommander.Parameterized.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        39: .line 643
            ldc "' cannot be null."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        40: .line 642
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        41: .line 645
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 6 /* delegateObject */
            invokevirtual com.beust.jcommander.JCommander.addDescription:(Ljava/lang/Object;)V
        end local 6 // java.lang.Object delegateObject
        42: .line 646
            goto 57
      StackMap locals:
      StackMap stack:
        43: aload 5 /* wp */
            ifnull 57
            aload 5 /* wp */
            invokevirtual com.beust.jcommander.WrappedParameter.getDynamicParameter:()Lcom/beust/jcommander/DynamicParameter;
            ifnull 57
        44: .line 650
            aload 5 /* wp */
            invokevirtual com.beust.jcommander.WrappedParameter.getDynamicParameter:()Lcom/beust/jcommander/DynamicParameter;
            astore 6 /* dp */
        start local 6 // com.beust.jcommander.DynamicParameter dp
        45: .line 651
            aload 6 /* dp */
            invokeinterface com.beust.jcommander.DynamicParameter.names:()[Ljava/lang/String;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 56
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.List com.beust.jcommander.Parameterized java.util.Iterator com.beust.jcommander.WrappedParameter com.beust.jcommander.DynamicParameter top int int java.lang.String[]
      StackMap stack:
        46: aload 10
            iload 8
            aaload
            astore 7 /* name */
        start local 7 // java.lang.String name
        47: .line 652
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            aload 7 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 49
        48: .line 653
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Found the option "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " multiple times"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 655
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.List com.beust.jcommander.Parameterized java.util.Iterator com.beust.jcommander.WrappedParameter com.beust.jcommander.DynamicParameter java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Adding description for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.beust.jcommander.JCommander.p:(Ljava/lang/String;)V
        50: .line 657
            new com.beust.jcommander.ParameterDescription
            dup
            aload 1 /* object */
            aload 6 /* dp */
            aload 3 /* parameterized */
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.bundle:Ljava/util/ResourceBundle;
            aload 0 /* this */
            invokespecial com.beust.jcommander.ParameterDescription.<init>:(Ljava/lang/Object;Lcom/beust/jcommander/DynamicParameter;Lcom/beust/jcommander/Parameterized;Ljava/util/ResourceBundle;Lcom/beust/jcommander/JCommander;)V
        51: .line 656
            astore 11 /* pd */
        start local 11 // com.beust.jcommander.ParameterDescription pd
        52: .line 658
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.fields:Ljava/util/Map;
            aload 3 /* parameterized */
            aload 11 /* pd */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        53: .line 659
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            new com.beust.jcommander.StringKey
            dup
            aload 7 /* name */
            invokespecial com.beust.jcommander.StringKey.<init>:(Ljava/lang/String;)V
            aload 11 /* pd */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        54: .line 661
            aload 6 /* dp */
            invokeinterface com.beust.jcommander.DynamicParameter.required:()Z
            ifeq 55
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.requiredFields:Ljava/util/Map;
            aload 3 /* parameterized */
            aload 11 /* pd */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 11 // com.beust.jcommander.ParameterDescription pd
        end local 7 // java.lang.String name
        55: .line 651
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.List com.beust.jcommander.Parameterized java.util.Iterator com.beust.jcommander.WrappedParameter com.beust.jcommander.DynamicParameter top int int java.lang.String[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        56: iload 8
            iload 9
            if_icmplt 46
        end local 6 // com.beust.jcommander.DynamicParameter dp
        end local 5 // com.beust.jcommander.WrappedParameter wp
        end local 3 // com.beust.jcommander.Parameterized parameterized
        57: .line 602
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        58: .line 665
            return
        end local 2 // java.util.List parameterizeds
        end local 1 // java.lang.Object object
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   59     0            this  Lcom/beust/jcommander/JCommander;
            0   59     1          object  Ljava/lang/Object;
            2   59     2  parameterizeds  Ljava/util/List<Lcom/beust/jcommander/Parameterized;>;
            4   57     3   parameterized  Lcom/beust/jcommander/Parameterized;
            5   57     5              wp  Lcom/beust/jcommander/WrappedParameter;
            7   34     6      annotation  Lcom/beust/jcommander/Parameter;
            8   34     7               p  Lcom/beust/jcommander/Parameter;
           24   34     8              pd  Lcom/beust/jcommander/ParameterDescription;
           26   32     9            name  Ljava/lang/String;
           37   42     6  delegateObject  Ljava/lang/Object;
           45   57     6              dp  Lcom/beust/jcommander/DynamicParameter;
           47   55     7            name  Ljava/lang/String;
           52   55    11              pd  Lcom/beust/jcommander/ParameterDescription;
    MethodParameters:
        Name  Flags
      object  

  private void initializeDefaultValue(com.beust.jcommander.ParameterDescription);
    descriptor: (Lcom/beust/jcommander/ParameterDescription;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.ParameterDescription pd
         0: .line 668
            aload 1 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.names:()[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 9
      StackMap locals: com.beust.jcommander.JCommander com.beust.jcommander.ParameterDescription top int int java.lang.String[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* optionName */
        start local 2 // java.lang.String optionName
         2: .line 669
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.defaultProvider:Lcom/beust/jcommander/IDefaultProvider;
            aload 2 /* optionName */
            invokeinterface com.beust.jcommander.IDefaultProvider.getDefaultValueFor:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* def */
        start local 6 // java.lang.String def
         3: .line 670
            aload 6 /* def */
            ifnull 8
         4: .line 671
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Initializing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* optionName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " with default value:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* def */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.beust.jcommander.JCommander.p:(Ljava/lang/String;)V
         5: .line 672
            aload 1 /* pd */
            aload 6 /* def */
            iconst_1
            invokevirtual com.beust.jcommander.ParameterDescription.addValue:(Ljava/lang/String;Z)V
         6: .line 674
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.requiredFields:Ljava/util/Map;
            aload 1 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameterized:()Lcom/beust/jcommander/Parameterized;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 675
            return
        end local 6 // java.lang.String def
        end local 2 // java.lang.String optionName
         8: .line 668
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         9: iload 3
            iload 4
            if_icmplt 1
        10: .line 678
            return
        end local 1 // com.beust.jcommander.ParameterDescription pd
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lcom/beust/jcommander/JCommander;
            0   11     1          pd  Lcom/beust/jcommander/ParameterDescription;
            2    8     2  optionName  Ljava/lang/String;
            3    8     6         def  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      pd    

  private void parseValues(java.lang.String[], boolean);
    descriptor: ([Ljava/lang/String;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=17, args_size=3
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String[] args
        start local 2 // boolean validate
         0: .line 687
            iconst_0
            istore 3 /* commandParsed */
        start local 3 // boolean commandParsed
         1: .line 688
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: .line 689
            iconst_0
            istore 5 /* isDashDash */
        start local 5 // boolean isDashDash
         3: .line 690
            goto 69
         4: .line 691
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* args */
            iload 4 /* i */
            aaload
            astore 6 /* arg */
        start local 6 // java.lang.String arg
         5: .line 692
            aload 6 /* arg */
            invokestatic com.beust.jcommander.JCommander.trim:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* a */
        start local 7 // java.lang.String a
         6: .line 693
            aload 1 /* args */
            iload 4 /* i */
            aload 7 /* a */
            aastore
         7: .line 694
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Parsing arg: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* a */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.beust.jcommander.JCommander.p:(Ljava/lang/String;)V
         8: .line 696
            aload 0 /* this */
            aload 6 /* arg */
            invokevirtual com.beust.jcommander.JCommander.findCommandByAlias:(Ljava/lang/String;)Lcom/beust/jcommander/JCommander;
            astore 8 /* jc */
        start local 8 // com.beust.jcommander.JCommander jc
         9: .line 697
            iconst_1
            istore 9 /* increment */
        start local 9 // int increment
        10: .line 698
            iload 5 /* isDashDash */
            ifne 36
            ldc "--"
            aload 7 /* a */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 36
            aload 0 /* this */
            aload 7 /* a */
            invokevirtual com.beust.jcommander.JCommander.isOption:(Ljava/lang/String;)Z
            ifeq 36
            aload 8 /* jc */
            ifnonnull 36
        11: .line 702
            aload 0 /* this */
            aload 7 /* a */
            invokevirtual com.beust.jcommander.JCommander.findParameterDescription:(Ljava/lang/String;)Lcom/beust/jcommander/ParameterDescription;
            astore 10 /* pd */
        start local 10 // com.beust.jcommander.ParameterDescription pd
        12: .line 704
            aload 10 /* pd */
            ifnull 27
        13: .line 705
            aload 10 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.password:()Z
            ifeq 16
        14: .line 706
            aload 0 /* this */
            aload 1 /* args */
            iload 4 /* i */
            aload 10 /* pd */
            iload 2 /* validate */
            invokevirtual com.beust.jcommander.JCommander.processPassword:([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;Z)I
            istore 9 /* increment */
        15: .line 707
            goto 68
        16: .line 708
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] int int int int java.lang.String java.lang.String com.beust.jcommander.JCommander int com.beust.jcommander.ParameterDescription
      StackMap stack:
            aload 10 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.variableArity:()Z
            ifeq 19
        17: .line 712
            aload 0 /* this */
            aload 1 /* args */
            iload 4 /* i */
            aload 10 /* pd */
            iload 2 /* validate */
            invokevirtual com.beust.jcommander.JCommander.processVariableArity:([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;Z)I
            istore 9 /* increment */
        18: .line 713
            goto 68
        19: .line 717
      StackMap locals:
      StackMap stack:
            aload 10 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameterized:()Lcom/beust/jcommander/Parameterized;
            invokevirtual com.beust.jcommander.Parameterized.getType:()Ljava/lang/Class;
            astore 11 /* fieldType */
        start local 11 // java.lang.Class fieldType
        20: .line 721
            aload 10 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.arity:()I
            iconst_m1
            if_icmpne 23
            aload 0 /* this */
            aload 11 /* fieldType */
            invokevirtual com.beust.jcommander.JCommander.isBooleanType:(Ljava/lang/Class;)Z
            ifeq 23
        21: .line 722
            aload 0 /* this */
            aload 10 /* pd */
            aload 11 /* fieldType */
            invokevirtual com.beust.jcommander.JCommander.handleBooleanOption:(Lcom/beust/jcommander/ParameterDescription;Ljava/lang/Class;)V
        22: .line 723
            goto 24
        23: .line 724
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 4 /* i */
            aload 10 /* pd */
            iload 2 /* validate */
            aload 11 /* fieldType */
            invokevirtual com.beust.jcommander.JCommander.processFixedArity:([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;ZLjava/lang/Class;)I
            istore 9 /* increment */
        24: .line 727
      StackMap locals:
      StackMap stack:
            aload 10 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.isHelp:()Z
            ifeq 68
        25: .line 728
            aload 0 /* this */
            iconst_1
            putfield com.beust.jcommander.JCommander.helpWasSpecified:Z
        end local 11 // java.lang.Class fieldType
        26: .line 732
            goto 68
        27: .line 733
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.acceptUnknownOptions:Z
            ifeq 35
        28: .line 734
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.unknownArgs:Ljava/util/List;
            aload 6 /* arg */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        29: .line 735
            iinc 4 /* i */ 1
        30: .line 736
            goto 32
        31: .line 737
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.unknownArgs:Ljava/util/List;
            aload 1 /* args */
            iload 4 /* i */
            iinc 4 /* i */ 1
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        32: .line 736
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            aload 1 /* args */
            arraylength
            if_icmpge 33
            aload 0 /* this */
            aload 1 /* args */
            iload 4 /* i */
            aaload
            invokevirtual com.beust.jcommander.JCommander.isOption:(Ljava/lang/String;)Z
            ifeq 31
        33: .line 739
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* increment */
        34: .line 740
            goto 68
        35: .line 741
      StackMap locals:
      StackMap stack:
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown option: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // com.beust.jcommander.ParameterDescription pd
        36: .line 748
      StackMap locals:
      StackMap stack:
            ldc "--"
            aload 6 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 39
            iload 5 /* isDashDash */
            ifne 39
        37: .line 749
            iconst_1
            istore 5 /* isDashDash */
        38: .line 750
            goto 68
        39: .line 751
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.commands:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 61
        40: .line 755
            aload 0 /* this */
            aload 6 /* arg */
            invokevirtual com.beust.jcommander.JCommander.initMainParameterValue:(Ljava/lang/String;)V
        41: .line 756
            aload 7 /* a */
            astore 10 /* value */
        start local 10 // java.lang.String value
        42: .line 757
            aload 10 /* value */
            astore 11 /* convertedValue */
        start local 11 // java.lang.Object convertedValue
        43: .line 762
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.annotation:Lcom/beust/jcommander/Parameter;
            invokeinterface com.beust.jcommander.Parameter.converter:()Ljava/lang/Class;
            ifnull 45
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.annotation:Lcom/beust/jcommander/Parameter;
            invokeinterface com.beust.jcommander.Parameter.converter:()Ljava/lang/Class;
            ldc Lcom/beust/jcommander/converters/NoConverter;
            if_acmpeq 45
        44: .line 763
            aload 0 /* this */
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.parameterized:Lcom/beust/jcommander/Parameterized;
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.parameterized:Lcom/beust/jcommander/Parameterized;
            invokevirtual com.beust.jcommander.Parameterized.getType:()Ljava/lang/Class;
            aconst_null
            aload 10 /* value */
            invokevirtual com.beust.jcommander.JCommander.convertValue:(Lcom/beust/jcommander/Parameterized;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            astore 11 /* convertedValue */
        45: .line 766
      StackMap locals: java.lang.String java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.parameterized:Lcom/beust/jcommander/Parameterized;
            invokevirtual com.beust.jcommander.Parameterized.getGenericType:()Ljava/lang/reflect/Type;
            astore 12 /* genericType */
        start local 12 // java.lang.reflect.Type genericType
        46: .line 767
            aload 12 /* genericType */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 51
        47: .line 768
            aload 12 /* genericType */
            checkcast java.lang.reflect.ParameterizedType
            astore 13 /* p */
        start local 13 // java.lang.reflect.ParameterizedType p
        48: .line 769
            aload 13 /* p */
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            iconst_0
            aaload
            astore 14 /* cls */
        start local 14 // java.lang.reflect.Type cls
        49: .line 770
            aload 14 /* cls */
            instanceof java.lang.Class
            ifeq 51
        50: .line 771
            aload 0 /* this */
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.parameterized:Lcom/beust/jcommander/Parameterized;
            aload 14 /* cls */
            checkcast java.lang.Class
            aconst_null
            aload 10 /* value */
            invokevirtual com.beust.jcommander.JCommander.convertValue:(Lcom/beust/jcommander/Parameterized;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            astore 11 /* convertedValue */
        end local 14 // java.lang.reflect.Type cls
        end local 13 // java.lang.reflect.ParameterizedType p
        51: .line 775
      StackMap locals: java.lang.reflect.Type
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.annotation:Lcom/beust/jcommander/Parameter;
            invokeinterface com.beust.jcommander.Parameter.validateWith:()[Ljava/lang/Class;
            dup
            astore 16
            arraylength
            istore 15
            iconst_0
            istore 14
            goto 57
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] int int int int java.lang.String java.lang.String com.beust.jcommander.JCommander int java.lang.String java.lang.Object java.lang.reflect.Type top int int java.lang.Class[]
      StackMap stack:
        52: aload 16
            iload 14
            aaload
            astore 13 /* validator */
        start local 13 // java.lang.Class validator
        53: .line 777
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.description:Lcom/beust/jcommander/ParameterDescription;
            aload 13 /* validator */
        54: .line 778
            ldc "Default"
            aload 10 /* value */
        55: .line 777
            invokevirtual com.beust.jcommander.ParameterDescription.validateParameter:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)V
        end local 13 // java.lang.Class validator
        56: .line 775
            iinc 14 1
      StackMap locals:
      StackMap stack:
        57: iload 14
            iload 15
            if_icmplt 52
        58: .line 781
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.description:Lcom/beust/jcommander/ParameterDescription;
            iconst_1
            invokevirtual com.beust.jcommander.ParameterDescription.setAssigned:(Z)V
        59: .line 782
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            aload 11 /* convertedValue */
            invokevirtual com.beust.jcommander.JCommander$MainParameter.addValue:(Ljava/lang/Object;)V
        end local 12 // java.lang.reflect.Type genericType
        end local 11 // java.lang.Object convertedValue
        end local 10 // java.lang.String value
        60: .line 783
            goto 68
        61: .line 787
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] int int int int java.lang.String java.lang.String com.beust.jcommander.JCommander int
      StackMap stack:
            aload 8 /* jc */
            ifnonnull 63
            iload 2 /* validate */
            ifeq 63
        62: .line 788
            new com.beust.jcommander.MissingCommandException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected a command, got "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* arg */
            invokespecial com.beust.jcommander.MissingCommandException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            athrow
        63: .line 789
      StackMap locals:
      StackMap stack:
            aload 8 /* jc */
            ifnull 68
        64: .line 790
            aload 0 /* this */
            aload 8 /* jc */
            getfield com.beust.jcommander.JCommander.programName:Lcom/beust/jcommander/JCommander$ProgramName;
            getfield com.beust.jcommander.JCommander$ProgramName.name:Ljava/lang/String;
            putfield com.beust.jcommander.JCommander.parsedCommand:Ljava/lang/String;
        65: .line 791
            aload 0 /* this */
            aload 6 /* arg */
            putfield com.beust.jcommander.JCommander.parsedAlias:Ljava/lang/String;
        66: .line 796
            aload 8 /* jc */
            iload 2 /* validate */
            aload 0 /* this */
            aload 1 /* args */
            iload 4 /* i */
            iconst_1
            iadd
            invokevirtual com.beust.jcommander.JCommander.subArray:([Ljava/lang/String;I)[Ljava/lang/String;
            invokevirtual com.beust.jcommander.JCommander.parse:(Z[Ljava/lang/String;)V
        67: .line 797
            iconst_1
            istore 3 /* commandParsed */
        68: .line 801
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iload 9 /* increment */
            iadd
            istore 4 /* i */
        end local 9 // int increment
        end local 8 // com.beust.jcommander.JCommander jc
        end local 7 // java.lang.String a
        end local 6 // java.lang.String arg
        69: .line 690
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] int int int int
      StackMap stack:
            iload 4 /* i */
            aload 1 /* args */
            arraylength
            if_icmpge 70
            iload 3 /* commandParsed */
            ifeq 4
        70: .line 805
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 74
      StackMap locals: com.beust.jcommander.JCommander java.lang.String[] int int int int top java.util.Iterator
      StackMap stack:
        71: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.beust.jcommander.ParameterDescription
            astore 6 /* parameterDescription */
        start local 6 // com.beust.jcommander.ParameterDescription parameterDescription
        72: .line 806
            aload 6 /* parameterDescription */
            invokevirtual com.beust.jcommander.ParameterDescription.isAssigned:()Z
            ifeq 74
        73: .line 807
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.fields:Ljava/util/Map;
            aload 6 /* parameterDescription */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameterized:()Lcom/beust/jcommander/Parameterized;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.beust.jcommander.ParameterDescription
            iconst_1
            invokevirtual com.beust.jcommander.ParameterDescription.setAssigned:(Z)V
        end local 6 // com.beust.jcommander.ParameterDescription parameterDescription
        74: .line 805
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 71
        75: .line 811
            return
        end local 5 // boolean isDashDash
        end local 4 // int i
        end local 3 // boolean commandParsed
        end local 2 // boolean validate
        end local 1 // java.lang.String[] args
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   76     0                  this  Lcom/beust/jcommander/JCommander;
            0   76     1                  args  [Ljava/lang/String;
            0   76     2              validate  Z
            1   76     3         commandParsed  Z
            2   76     4                     i  I
            3   76     5            isDashDash  Z
            5   69     6                   arg  Ljava/lang/String;
            6   69     7                     a  Ljava/lang/String;
            9   69     8                    jc  Lcom/beust/jcommander/JCommander;
           10   69     9             increment  I
           12   36    10                    pd  Lcom/beust/jcommander/ParameterDescription;
           20   26    11             fieldType  Ljava/lang/Class<*>;
           42   60    10                 value  Ljava/lang/String;
           43   60    11        convertedValue  Ljava/lang/Object;
           46   60    12           genericType  Ljava/lang/reflect/Type;
           48   51    13                     p  Ljava/lang/reflect/ParameterizedType;
           49   51    14                   cls  Ljava/lang/reflect/Type;
           53   56    13             validator  Ljava/lang/Class<+Lcom/beust/jcommander/IParameterValidator;>;
           72   74     6  parameterDescription  Lcom/beust/jcommander/ParameterDescription;
    MethodParameters:
          Name  Flags
      args      
      validate  

  private boolean isBooleanType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.Class fieldType
         0: .line 814
            ldc Ljava/lang/Boolean;
            aload 1 /* fieldType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 1
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aload 1 /* fieldType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // java.lang.Class fieldType
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/beust/jcommander/JCommander;
            0    2     1  fieldType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
           Name  Flags
      fieldType  

  private void handleBooleanOption(com.beust.jcommander.ParameterDescription, java.lang.Class<?>);
    descriptor: (Lcom/beust/jcommander/ParameterDescription;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.ParameterDescription pd
        start local 2 // java.lang.Class fieldType
         0: .line 819
            aload 1 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameterized:()Lcom/beust/jcommander/Parameterized;
            aload 1 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getObject:()Ljava/lang/Object;
            invokevirtual com.beust.jcommander.Parameterized.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 3 /* value */
        start local 3 // java.lang.Boolean value
         1: .line 820
            aload 3 /* value */
            ifnull 6
         2: .line 821
            aload 1 /* pd */
            aload 3 /* value */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 3
            ldc "false"
            goto 4
      StackMap locals: com.beust.jcommander.JCommander com.beust.jcommander.ParameterDescription java.lang.Class java.lang.Boolean
      StackMap stack: com.beust.jcommander.ParameterDescription
         3: ldc "true"
      StackMap locals: com.beust.jcommander.JCommander com.beust.jcommander.ParameterDescription java.lang.Class java.lang.Boolean
      StackMap stack: com.beust.jcommander.ParameterDescription java.lang.String
         4: invokevirtual com.beust.jcommander.ParameterDescription.addValue:(Ljava/lang/String;)V
         5: .line 822
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 2 /* fieldType */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifne 8
         7: .line 823
            aload 1 /* pd */
            ldc "true"
            invokevirtual com.beust.jcommander.ParameterDescription.addValue:(Ljava/lang/String;)V
         8: .line 825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.requiredFields:Ljava/util/Map;
            aload 1 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameterized:()Lcom/beust/jcommander/Parameterized;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 826
            return
        end local 3 // java.lang.Boolean value
        end local 2 // java.lang.Class fieldType
        end local 1 // com.beust.jcommander.ParameterDescription pd
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/beust/jcommander/JCommander;
            0   10     1         pd  Lcom/beust/jcommander/ParameterDescription;
            0   10     2  fieldType  Ljava/lang/Class<*>;
            1   10     3      value  Ljava/lang/Boolean;
    Signature: (Lcom/beust/jcommander/ParameterDescription;Ljava/lang/Class<*>;)V
    MethodParameters:
           Name  Flags
      pd         
      fieldType  

  private final int determineArity(java.lang.String[], int, com.beust.jcommander.ParameterDescription, com.beust.jcommander.IVariableArity);
    descriptor: ([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;Lcom/beust/jcommander/IVariableArity;)I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String[] args
        start local 2 // int index
        start local 3 // com.beust.jcommander.ParameterDescription pd
        start local 4 // com.beust.jcommander.IVariableArity va
         0: .line 843
            invokestatic com.beust.jcommander.internal.Lists.newArrayList:()Ljava/util/List;
            astore 5 /* currentArgs */
        start local 5 // java.util.List currentArgs
         1: .line 844
            iload 2 /* index */
            iconst_1
            iadd
            istore 6 /* j */
        start local 6 // int j
         2: goto 5
         3: .line 845
      StackMap locals: java.util.List int
      StackMap stack:
            aload 5 /* currentArgs */
            aload 1 /* args */
            iload 6 /* j */
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 844
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
         5: iload 6 /* j */
            aload 1 /* args */
            arraylength
            if_icmplt 3
        end local 6 // int j
         6: .line 847
            aload 4 /* va */
            aload 3 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.names:()[Ljava/lang/String;
            iconst_0
            aaload
         7: .line 848
            aload 5 /* currentArgs */
            iconst_0
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
         8: .line 847
            invokeinterface com.beust.jcommander.IVariableArity.processVariableArity:(Ljava/lang/String;[Ljava/lang/String;)I
            ireturn
        end local 5 // java.util.List currentArgs
        end local 4 // com.beust.jcommander.IVariableArity va
        end local 3 // com.beust.jcommander.ParameterDescription pd
        end local 2 // int index
        end local 1 // java.lang.String[] args
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lcom/beust/jcommander/JCommander;
            0    9     1         args  [Ljava/lang/String;
            0    9     2        index  I
            0    9     3           pd  Lcom/beust/jcommander/ParameterDescription;
            0    9     4           va  Lcom/beust/jcommander/IVariableArity;
            1    9     5  currentArgs  Ljava/util/List<Ljava/lang/String;>;
            2    6     6            j  I
    MethodParameters:
       Name  Flags
      args   
      index  
      pd     
      va     

  private int processPassword(java.lang.String[], int, com.beust.jcommander.ParameterDescription, boolean);
    descriptor: ([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String[] args
        start local 2 // int index
        start local 3 // com.beust.jcommander.ParameterDescription pd
        start local 4 // boolean validate
         0: .line 855
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* index */
            aload 3 /* pd */
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.DEFAULT_VARIABLE_ARITY:Lcom/beust/jcommander/IVariableArity;
            invokevirtual com.beust.jcommander.JCommander.determineArity:([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;Lcom/beust/jcommander/IVariableArity;)I
            istore 5 /* passwordArity */
        start local 5 // int passwordArity
         1: .line 856
            iload 5 /* passwordArity */
            ifne 6
         2: .line 858
            aload 0 /* this */
            aload 3 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getDescription:()Ljava/lang/String;
            aload 3 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.echoInput:()Z
            invokevirtual com.beust.jcommander.JCommander.readPassword:(Ljava/lang/String;Z)[C
            astore 6 /* password */
        start local 6 // char[] password
         3: .line 859
            aload 3 /* pd */
            new java.lang.String
            dup
            aload 6 /* password */
            invokespecial java.lang.String.<init>:([C)V
            invokevirtual com.beust.jcommander.ParameterDescription.addValue:(Ljava/lang/String;)V
         4: .line 860
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.requiredFields:Ljava/util/Map;
            aload 3 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameterized:()Lcom/beust/jcommander/Parameterized;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 861
            iconst_1
            ireturn
        end local 6 // char[] password
         6: .line 862
      StackMap locals: int
      StackMap stack:
            iload 5 /* passwordArity */
            iconst_1
            if_icmpne 8
         7: .line 864
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* index */
            aload 3 /* pd */
            iload 4 /* validate */
            ldc Ljava/util/List;
            iconst_1
            invokevirtual com.beust.jcommander.JCommander.processFixedArity:([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;ZLjava/lang/Class;I)I
            ireturn
         8: .line 866
      StackMap locals:
      StackMap stack:
            new com.beust.jcommander.ParameterException
            dup
            ldc "Password parameter must have at most 1 argument."
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // int passwordArity
        end local 4 // boolean validate
        end local 3 // com.beust.jcommander.ParameterDescription pd
        end local 2 // int index
        end local 1 // java.lang.String[] args
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/beust/jcommander/JCommander;
            0    9     1           args  [Ljava/lang/String;
            0    9     2          index  I
            0    9     3             pd  Lcom/beust/jcommander/ParameterDescription;
            0    9     4       validate  Z
            1    9     5  passwordArity  I
            3    6     6       password  [C
    MethodParameters:
          Name  Flags
      args      
      index     
      pd        
      validate  

  private int processVariableArity(java.lang.String[], int, com.beust.jcommander.ParameterDescription, boolean);
    descriptor: ([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String[] args
        start local 2 // int index
        start local 3 // com.beust.jcommander.ParameterDescription pd
        start local 4 // boolean validate
         0: .line 874
            aload 3 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getObject:()Ljava/lang/Object;
            astore 5 /* arg */
        start local 5 // java.lang.Object arg
         1: .line 876
            aload 5 /* arg */
            instanceof com.beust.jcommander.IVariableArity
            ifne 4
         2: .line 877
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.DEFAULT_VARIABLE_ARITY:Lcom/beust/jcommander/IVariableArity;
            astore 6 /* va */
        start local 6 // com.beust.jcommander.IVariableArity va
         3: .line 878
            goto 5
        end local 6 // com.beust.jcommander.IVariableArity va
         4: .line 879
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 5 /* arg */
            checkcast com.beust.jcommander.IVariableArity
            astore 6 /* va */
        start local 6 // com.beust.jcommander.IVariableArity va
         5: .line 882
      StackMap locals: com.beust.jcommander.IVariableArity
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* index */
            aload 3 /* pd */
            aload 6 /* va */
            invokevirtual com.beust.jcommander.JCommander.determineArity:([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;Lcom/beust/jcommander/IVariableArity;)I
            istore 7 /* arity */
        start local 7 // int arity
         6: .line 883
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* index */
            aload 3 /* pd */
            iload 4 /* validate */
            ldc Ljava/util/List;
            iload 7 /* arity */
            invokevirtual com.beust.jcommander.JCommander.processFixedArity:([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;ZLjava/lang/Class;I)I
            istore 8 /* result */
        start local 8 // int result
         7: .line 884
            iload 8 /* result */
            ireturn
        end local 8 // int result
        end local 7 // int arity
        end local 6 // com.beust.jcommander.IVariableArity va
        end local 5 // java.lang.Object arg
        end local 4 // boolean validate
        end local 3 // com.beust.jcommander.ParameterDescription pd
        end local 2 // int index
        end local 1 // java.lang.String[] args
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/beust/jcommander/JCommander;
            0    8     1      args  [Ljava/lang/String;
            0    8     2     index  I
            0    8     3        pd  Lcom/beust/jcommander/ParameterDescription;
            0    8     4  validate  Z
            1    8     5       arg  Ljava/lang/Object;
            3    4     6        va  Lcom/beust/jcommander/IVariableArity;
            5    8     6        va  Lcom/beust/jcommander/IVariableArity;
            6    8     7     arity  I
            7    8     8    result  I
    MethodParameters:
          Name  Flags
      args      
      index     
      pd        
      validate  

  private int processFixedArity(java.lang.String[], int, com.beust.jcommander.ParameterDescription, boolean, java.lang.Class<?>);
    descriptor: ([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;ZLjava/lang/Class;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=6
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String[] args
        start local 2 // int index
        start local 3 // com.beust.jcommander.ParameterDescription pd
        start local 4 // boolean validate
        start local 5 // java.lang.Class fieldType
         0: .line 891
            aload 3 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameter:()Lcom/beust/jcommander/WrappedParameter;
            invokevirtual com.beust.jcommander.WrappedParameter.arity:()I
            istore 6 /* arity */
        start local 6 // int arity
         1: .line 892
            iload 6 /* arity */
            iconst_m1
            if_icmpeq 2
            iload 6 /* arity */
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 7 /* n */
        start local 7 // int n
         4: .line 894
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* index */
            aload 3 /* pd */
            iload 4 /* validate */
            aload 5 /* fieldType */
            iload 7 /* n */
            invokevirtual com.beust.jcommander.JCommander.processFixedArity:([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;ZLjava/lang/Class;I)I
            ireturn
        end local 7 // int n
        end local 6 // int arity
        end local 5 // java.lang.Class fieldType
        end local 4 // boolean validate
        end local 3 // com.beust.jcommander.ParameterDescription pd
        end local 2 // int index
        end local 1 // java.lang.String[] args
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/beust/jcommander/JCommander;
            0    5     1       args  [Ljava/lang/String;
            0    5     2      index  I
            0    5     3         pd  Lcom/beust/jcommander/ParameterDescription;
            0    5     4   validate  Z
            0    5     5  fieldType  Ljava/lang/Class<*>;
            1    5     6      arity  I
            4    5     7          n  I
    Signature: ([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;ZLjava/lang/Class<*>;)I
    MethodParameters:
           Name  Flags
      args       
      index      
      pd         
      validate   
      fieldType  

  private int processFixedArity(java.lang.String[], int, com.beust.jcommander.ParameterDescription, boolean, java.lang.Class<?>, );
    descriptor: ([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;ZLjava/lang/Class;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=7
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String[] args
        start local 2 // int originalIndex
        start local 3 // com.beust.jcommander.ParameterDescription pd
        start local 4 // boolean validate
        start local 5 // java.lang.Class fieldType
        start local 6 // int arity
         0: .line 899
            iload 2 /* originalIndex */
            istore 7 /* index */
        start local 7 // int index
         1: .line 900
            aload 1 /* args */
            iload 7 /* index */
            aaload
            astore 8 /* arg */
        start local 8 // java.lang.String arg
         2: .line 902
            iload 6 /* arity */
            ifne 5
            aload 0 /* this */
            aload 5 /* fieldType */
            invokevirtual com.beust.jcommander.JCommander.isBooleanType:(Ljava/lang/Class;)Z
            ifeq 5
         3: .line 903
            aload 0 /* this */
            aload 3 /* pd */
            aload 5 /* fieldType */
            invokevirtual com.beust.jcommander.JCommander.handleBooleanOption:(Lcom/beust/jcommander/ParameterDescription;Ljava/lang/Class;)V
         4: .line 904
            goto 26
      StackMap locals: int java.lang.String
      StackMap stack:
         5: iload 6 /* arity */
            ifne 7
         6: .line 905
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected a value after parameter "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 906
      StackMap locals:
      StackMap stack:
            iload 7 /* index */
            aload 1 /* args */
            arraylength
            iconst_1
            isub
            if_icmpge 25
         8: .line 907
            ldc "--"
            aload 1 /* args */
            iload 7 /* index */
            iconst_1
            iadd
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 9 /* offset */
        start local 9 // int offset
        11: .line 909
            aconst_null
            astore 10 /* finalValue */
        start local 10 // java.lang.Object finalValue
        12: .line 910
            iload 7 /* index */
            iload 6 /* arity */
            iadd
            aload 1 /* args */
            arraylength
            if_icmpge 24
        13: .line 911
            iconst_1
            istore 11 /* j */
        start local 11 // int j
        14: goto 19
        15: .line 912
      StackMap locals: int java.lang.Object int
      StackMap stack:
            aload 1 /* args */
            iload 7 /* index */
            iload 11 /* j */
            iadd
            iload 9 /* offset */
            iadd
            aaload
            astore 12 /* value */
        start local 12 // java.lang.String value
        16: .line 913
            aload 3 /* pd */
            aload 8 /* arg */
            aload 12 /* value */
            iconst_0
            iload 4 /* validate */
            iload 11 /* j */
            iconst_1
            isub
            invokevirtual com.beust.jcommander.ParameterDescription.addValue:(Ljava/lang/String;Ljava/lang/String;ZZI)Ljava/lang/Object;
            astore 10 /* finalValue */
        17: .line 914
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.requiredFields:Ljava/util/Map;
            aload 3 /* pd */
            invokevirtual com.beust.jcommander.ParameterDescription.getParameterized:()Lcom/beust/jcommander/Parameterized;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 12 // java.lang.String value
        18: .line 911
            iinc 11 /* j */ 1
      StackMap locals:
      StackMap stack:
        19: iload 11 /* j */
            iload 6 /* arity */
            if_icmple 15
        end local 11 // int j
        20: .line 917
            aload 10 /* finalValue */
            ifnull 22
            iload 4 /* validate */
            ifeq 22
        21: .line 918
            aload 3 /* pd */
            aload 8 /* arg */
            aload 10 /* finalValue */
            invokevirtual com.beust.jcommander.ParameterDescription.validateValueParameter:(Ljava/lang/String;Ljava/lang/Object;)V
        22: .line 920
      StackMap locals:
      StackMap stack:
            iload 7 /* index */
            iload 6 /* arity */
            iload 9 /* offset */
            iadd
            iadd
            istore 7 /* index */
        23: .line 921
            goto 26
        24: .line 922
      StackMap locals:
      StackMap stack:
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* arity */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " values after "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // java.lang.Object finalValue
        end local 9 // int offset
        25: .line 925
      StackMap locals:
      StackMap stack:
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected a value after parameter "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 928
      StackMap locals:
      StackMap stack:
            iload 6 /* arity */
            iconst_1
            iadd
            ireturn
        end local 8 // java.lang.String arg
        end local 7 // int index
        end local 6 // int arity
        end local 5 // java.lang.Class fieldType
        end local 4 // boolean validate
        end local 3 // com.beust.jcommander.ParameterDescription pd
        end local 2 // int originalIndex
        end local 1 // java.lang.String[] args
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   27     0           this  Lcom/beust/jcommander/JCommander;
            0   27     1           args  [Ljava/lang/String;
            0   27     2  originalIndex  I
            0   27     3             pd  Lcom/beust/jcommander/ParameterDescription;
            0   27     4       validate  Z
            0   27     5      fieldType  Ljava/lang/Class<*>;
            0   27     6          arity  I
            1   27     7          index  I
            2   27     8            arg  Ljava/lang/String;
           11   25     9         offset  I
           12   25    10     finalValue  Ljava/lang/Object;
           14   20    11              j  I
           16   18    12          value  Ljava/lang/String;
    Signature: ([Ljava/lang/String;ILcom/beust/jcommander/ParameterDescription;ZLjava/lang/Class<*>;I)I
    MethodParameters:
               Name  Flags
      args           
      originalIndex  
      pd             
      validate       
      fieldType      
      arity          

  private char[] readPassword(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)[C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String description
        start local 2 // boolean echoInput
         0: .line 936
            aload 0 /* this */
            invokevirtual com.beust.jcommander.JCommander.getConsole:()Lcom/beust/jcommander/internal/Console;
            new java.lang.StringBuilder
            dup
            aload 1 /* description */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface com.beust.jcommander.internal.Console.print:(Ljava/lang/String;)V
         1: .line 937
            aload 0 /* this */
            invokevirtual com.beust.jcommander.JCommander.getConsole:()Lcom/beust/jcommander/internal/Console;
            iload 2 /* echoInput */
            invokeinterface com.beust.jcommander.internal.Console.readPassword:(Z)[C
            areturn
        end local 2 // boolean echoInput
        end local 1 // java.lang.String description
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/beust/jcommander/JCommander;
            0    2     1  description  Ljava/lang/String;
            0    2     2    echoInput  Z
    MethodParameters:
             Name  Flags
      description  
      echoInput    

  private java.lang.String[] subArray(java.lang.String[], int);
    descriptor: ([Ljava/lang/String;I)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String[] args
        start local 2 // int index
         0: .line 941
            aload 1 /* args */
            arraylength
            iload 2 /* index */
            isub
            istore 3 /* l */
        start local 3 // int l
         1: .line 942
            iload 3 /* l */
            anewarray java.lang.String
            astore 4 /* result */
        start local 4 // java.lang.String[] result
         2: .line 943
            aload 1 /* args */
            iload 2 /* index */
            aload 4 /* result */
            iconst_0
            iload 3 /* l */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 945
            aload 4 /* result */
            areturn
        end local 4 // java.lang.String[] result
        end local 3 // int l
        end local 2 // int index
        end local 1 // java.lang.String[] args
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/beust/jcommander/JCommander;
            0    4     1    args  [Ljava/lang/String;
            0    4     2   index  I
            1    4     3       l  I
            2    4     4  result  [Ljava/lang/String;
    MethodParameters:
       Name  Flags
      args   
      index  

  private void initMainParameterValue(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String arg
         0: .line 953
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            ifnonnull 4
         1: .line 954
            new com.beust.jcommander.ParameterException
            dup
         2: .line 955
            new java.lang.StringBuilder
            dup
            ldc "Was passed main parameter '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' but no main parameter was defined in your arg class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 954
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 958
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.parameterized:Lcom/beust/jcommander/Parameterized;
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.object:Ljava/lang/Object;
            invokevirtual com.beust.jcommander.Parameterized.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* object */
        start local 2 // java.lang.Object object
         5: .line 959
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.parameterized:Lcom/beust/jcommander/Parameterized;
            invokevirtual com.beust.jcommander.Parameterized.getType:()Ljava/lang/Class;
            astore 3 /* type */
        start local 3 // java.lang.Class type
         6: .line 962
            ldc Ljava/util/List;
            aload 3 /* type */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 16
         7: .line 964
            aload 2 /* object */
            ifnonnull 10
         8: .line 965
            invokestatic com.beust.jcommander.internal.Lists.newArrayList:()Ljava/util/List;
            astore 4 /* result */
        start local 4 // java.util.List result
         9: .line 966
            goto 11
        end local 4 // java.util.List result
        10: .line 967
      StackMap locals: java.lang.Object java.lang.Class
      StackMap stack:
            aload 2 /* object */
            checkcast java.util.List
            astore 4 /* result */
        start local 4 // java.util.List result
        11: .line 970
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.firstTimeMainParameter:Z
            ifeq 14
        12: .line 971
            aload 4 /* result */
            invokeinterface java.util.List.clear:()V
        13: .line 972
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            iconst_0
            putfield com.beust.jcommander.JCommander$MainParameter.firstTimeMainParameter:Z
        14: .line 975
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            aload 4 /* result */
            putfield com.beust.jcommander.JCommander$MainParameter.multipleValue:Ljava/util/List;
        15: .line 976
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.parameterized:Lcom/beust/jcommander/Parameterized;
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.object:Ljava/lang/Object;
            aload 4 /* result */
            invokevirtual com.beust.jcommander.Parameterized.set:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 4 // java.util.List result
        16: .line 979
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Class type
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String arg
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lcom/beust/jcommander/JCommander;
            0   17     1     arg  Ljava/lang/String;
            5   17     2  object  Ljava/lang/Object;
            6   17     3    type  Ljava/lang/Class<*>;
            9   10     4  result  Ljava/util/List;
           11   16     4  result  Ljava/util/List;
    MethodParameters:
      Name  Flags
      arg   

  public java.lang.String getMainParameterDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 982
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            ifnonnull 1
            aload 0 /* this */
            invokevirtual com.beust.jcommander.JCommander.createDescriptions:()V
         1: .line 983
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.annotation:Lcom/beust/jcommander/Parameter;
            ifnull 2
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.annotation:Lcom/beust/jcommander/Parameter;
            invokeinterface com.beust.jcommander.Parameter.description:()Ljava/lang/String;
            goto 3
         2: .line 984
      StackMap locals:
      StackMap stack:
            aconst_null
         3: .line 983
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/beust/jcommander/JCommander;

  public void setProgramName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String name
         0: .line 991
            aload 0 /* this */
            aload 1 /* name */
            iconst_0
            anewarray java.lang.String
            invokevirtual com.beust.jcommander.JCommander.setProgramName:(Ljava/lang/String;[Ljava/lang/String;)V
         1: .line 992
            return
        end local 1 // java.lang.String name
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/beust/jcommander/JCommander;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String getProgramName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 998
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.programName:Lcom/beust/jcommander/JCommander$ProgramName;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.beust.jcommander.JCommander.programName:Lcom/beust/jcommander/JCommander$ProgramName;
            invokevirtual com.beust.jcommander.JCommander$ProgramName.getName:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/beust/jcommander/JCommander;

  public java.lang.String getProgramDisplayName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1005
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.programName:Lcom/beust/jcommander/JCommander$ProgramName;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.beust.jcommander.JCommander.programName:Lcom/beust/jcommander/JCommander$ProgramName;
            invokevirtual com.beust.jcommander.JCommander$ProgramName.getDisplayName:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/beust/jcommander/JCommander;

  public void setProgramName(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String[] aliases
         0: .line 1015
            aload 0 /* this */
            new com.beust.jcommander.JCommander$ProgramName
            dup
            aload 1 /* name */
            aload 2 /* aliases */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial com.beust.jcommander.JCommander$ProgramName.<init>:(Ljava/lang/String;Ljava/util/List;)V
            putfield com.beust.jcommander.JCommander.programName:Lcom/beust/jcommander/JCommander$ProgramName;
         1: .line 1016
            return
        end local 2 // java.lang.String[] aliases
        end local 1 // java.lang.String name
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/beust/jcommander/JCommander;
            0    2     1     name  Ljava/lang/String;
            0    2     2  aliases  [Ljava/lang/String;
    MethodParameters:
         Name  Flags
      name     
      aliases  

  public void usage();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1022
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 1023
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.usageFormatter:Lcom/beust/jcommander/IUsageFormatter;
            aload 1 /* sb */
            invokeinterface com.beust.jcommander.IUsageFormatter.usage:(Ljava/lang/StringBuilder;)V
         2: .line 1024
            aload 0 /* this */
            invokevirtual com.beust.jcommander.JCommander.getConsole:()Lcom/beust/jcommander/internal/Console;
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface com.beust.jcommander.internal.Console.println:(Ljava/lang/String;)V
         3: .line 1025
            return
        end local 1 // java.lang.StringBuilder sb
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/beust/jcommander/JCommander;
            1    4     1    sb  Ljava/lang/StringBuilder;

  public void setUsageFormatter(com.beust.jcommander.IUsageFormatter);
    descriptor: (Lcom/beust/jcommander/IUsageFormatter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.IUsageFormatter usageFormatter
         0: .line 1034
            aload 1 /* usageFormatter */
            ifnonnull 2
         1: .line 1035
            new java.lang.IllegalArgumentException
            dup
            ldc "Argument UsageFormatter must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1036
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* usageFormatter */
            putfield com.beust.jcommander.JCommander.usageFormatter:Lcom/beust/jcommander/IUsageFormatter;
         3: .line 1037
            return
        end local 1 // com.beust.jcommander.IUsageFormatter usageFormatter
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/beust/jcommander/JCommander;
            0    4     1  usageFormatter  Lcom/beust/jcommander/IUsageFormatter;
    MethodParameters:
                Name  Flags
      usageFormatter  

  public com.beust.jcommander.IUsageFormatter getUsageFormatter();
    descriptor: ()Lcom/beust/jcommander/IUsageFormatter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1045
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.usageFormatter:Lcom/beust/jcommander/IUsageFormatter;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;

  public com.beust.jcommander.JCommander$Options getOptions();
    descriptor: ()Lcom/beust/jcommander/JCommander$Options;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1049
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;

  public java.util.Map<com.beust.jcommander.FuzzyMap$IKey, com.beust.jcommander.ParameterDescription> getDescriptions();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1053
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;
    Signature: ()Ljava/util/Map<Lcom/beust/jcommander/FuzzyMap$IKey;Lcom/beust/jcommander/ParameterDescription;>;

  public com.beust.jcommander.JCommander$MainParameter getMainParameter();
    descriptor: ()Lcom/beust/jcommander/JCommander$MainParameter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1057
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;

  public static com.beust.jcommander.JCommander$Builder newBuilder();
    descriptor: ()Lcom/beust/jcommander/JCommander$Builder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 1061
            new com.beust.jcommander.JCommander$Builder
            dup
            invokespecial com.beust.jcommander.JCommander$Builder.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.Map<com.beust.jcommander.Parameterized, com.beust.jcommander.ParameterDescription> getFields();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1198
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.fields:Ljava/util/Map;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;
    Signature: ()Ljava/util/Map<Lcom/beust/jcommander/Parameterized;Lcom/beust/jcommander/ParameterDescription;>;

  public java.util.Comparator<? super com.beust.jcommander.ParameterDescription> getParameterDescriptionComparator();
    descriptor: ()Ljava/util/Comparator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1202
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.parameterDescriptionComparator:Ljava/util/Comparator;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;
    Signature: ()Ljava/util/Comparator<-Lcom/beust/jcommander/ParameterDescription;>;

  public void setParameterDescriptionComparator(java.util.Comparator<? super com.beust.jcommander.ParameterDescription>);
    descriptor: (Ljava/util/Comparator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.util.Comparator c
         0: .line 1206
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            aload 1 /* c */
            putfield com.beust.jcommander.JCommander$Options.parameterDescriptionComparator:Ljava/util/Comparator;
         1: .line 1207
            return
        end local 1 // java.util.Comparator c
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/beust/jcommander/JCommander;
            0    2     1     c  Ljava/util/Comparator<-Lcom/beust/jcommander/ParameterDescription;>;
    Signature: (Ljava/util/Comparator<-Lcom/beust/jcommander/ParameterDescription;>;)V
    MethodParameters:
      Name  Flags
      c     

  public void setColumnSize(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // int columnSize
         0: .line 1210
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            iload 1 /* columnSize */
            putfield com.beust.jcommander.JCommander$Options.columnSize:I
         1: .line 1211
            return
        end local 1 // int columnSize
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/beust/jcommander/JCommander;
            0    2     1  columnSize  I
    MethodParameters:
            Name  Flags
      columnSize  

  public int getColumnSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1214
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.columnSize:I
            ireturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;

  public java.util.ResourceBundle getBundle();
    descriptor: ()Ljava/util/ResourceBundle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1218
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.bundle:Ljava/util/ResourceBundle;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;

  public java.util.List<com.beust.jcommander.ParameterDescription> getParameters();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1227
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.fields:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;
    Signature: ()Ljava/util/List<Lcom/beust/jcommander/ParameterDescription;>;

  public com.beust.jcommander.ParameterDescription getMainParameterValue();
    descriptor: ()Lcom/beust/jcommander/ParameterDescription;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1234
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.mainParameter:Lcom/beust/jcommander/JCommander$MainParameter;
            getfield com.beust.jcommander.JCommander$MainParameter.description:Lcom/beust/jcommander/ParameterDescription;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;

  private void p(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String string
         0: .line 1238
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.verbose:I
            ifgt 1
            ldc "jcommander.debug"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 2
         1: .line 1239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.beust.jcommander.JCommander.getConsole:()Lcom/beust/jcommander/internal/Console;
            new java.lang.StringBuilder
            dup
            ldc "[JCommander] "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* string */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface com.beust.jcommander.internal.Console.println:(Ljava/lang/String;)V
         2: .line 1241
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String string
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/beust/jcommander/JCommander;
            0    3     1  string  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  

  public void setDefaultProvider(com.beust.jcommander.IDefaultProvider);
    descriptor: (Lcom/beust/jcommander/IDefaultProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.IDefaultProvider defaultProvider
         0: .line 1247
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            aload 1 /* defaultProvider */
            putfield com.beust.jcommander.JCommander$Options.defaultProvider:Lcom/beust/jcommander/IDefaultProvider;
         1: .line 1248
            return
        end local 1 // com.beust.jcommander.IDefaultProvider defaultProvider
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/beust/jcommander/JCommander;
            0    2     1  defaultProvider  Lcom/beust/jcommander/IDefaultProvider;
    MethodParameters:
                 Name  Flags
      defaultProvider  

  public void addConverterFactory(com.beust.jcommander.IStringConverterFactory);
    descriptor: (Lcom/beust/jcommander/IStringConverterFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.IStringConverterFactory converterFactory
         0: .line 1255
            aload 0 /* this */
            new com.beust.jcommander.JCommander$1
            dup
            aload 0 /* this */
            aload 1 /* converterFactory */
            invokespecial com.beust.jcommander.JCommander$1.<init>:(Lcom/beust/jcommander/JCommander;Lcom/beust/jcommander/IStringConverterFactory;)V
            invokevirtual com.beust.jcommander.JCommander.addConverterInstanceFactory:(Lcom/beust/jcommander/IStringConverterInstanceFactory;)V
         1: .line 1270
            return
        end local 1 // com.beust.jcommander.IStringConverterFactory converterFactory
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/beust/jcommander/JCommander;
            0    2     1  converterFactory  Lcom/beust/jcommander/IStringConverterFactory;
    MethodParameters:
                  Name  Flags
      converterFactory  final

  public void addConverterInstanceFactory(com.beust.jcommander.IStringConverterInstanceFactory);
    descriptor: (Lcom/beust/jcommander/IStringConverterInstanceFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.IStringConverterInstanceFactory converterInstanceFactory
         0: .line 1277
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.converterInstanceFactories:Ljava/util/List;
            iconst_0
            aload 1 /* converterInstanceFactory */
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
         1: .line 1278
            return
        end local 1 // com.beust.jcommander.IStringConverterInstanceFactory converterInstanceFactory
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lcom/beust/jcommander/JCommander;
            0    2     1  converterInstanceFactory  Lcom/beust/jcommander/IStringConverterInstanceFactory;
    MethodParameters:
                          Name  Flags
      converterInstanceFactory  

  private com.beust.jcommander.IStringConverter<?> findConverterInstance(com.beust.jcommander.Parameter, java.lang.Class<?>, java.lang.String);
    descriptor: (Lcom/beust/jcommander/Parameter;Ljava/lang/Class;Ljava/lang/String;)Lcom/beust/jcommander/IStringConverter;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.Parameter parameter
        start local 2 // java.lang.Class forType
        start local 3 // java.lang.String optionName
         0: .line 1281
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.converterInstanceFactories:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: com.beust.jcommander.JCommander com.beust.jcommander.Parameter java.lang.Class java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.beust.jcommander.IStringConverterInstanceFactory
            astore 4 /* f */
        start local 4 // com.beust.jcommander.IStringConverterInstanceFactory f
         2: .line 1282
            aload 4 /* f */
            aload 1 /* parameter */
            aload 2 /* forType */
            aload 3 /* optionName */
            invokeinterface com.beust.jcommander.IStringConverterInstanceFactory.getConverterInstance:(Lcom/beust/jcommander/Parameter;Ljava/lang/Class;Ljava/lang/String;)Lcom/beust/jcommander/IStringConverter;
            astore 6 /* result */
        start local 6 // com.beust.jcommander.IStringConverter result
         3: .line 1283
            aload 6 /* result */
            ifnull 4
            aload 6 /* result */
            areturn
        end local 6 // com.beust.jcommander.IStringConverter result
        end local 4 // com.beust.jcommander.IStringConverterInstanceFactory f
         4: .line 1281
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 1286
            aconst_null
            areturn
        end local 3 // java.lang.String optionName
        end local 2 // java.lang.Class forType
        end local 1 // com.beust.jcommander.Parameter parameter
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/beust/jcommander/JCommander;
            0    6     1   parameter  Lcom/beust/jcommander/Parameter;
            0    6     2     forType  Ljava/lang/Class<*>;
            0    6     3  optionName  Ljava/lang/String;
            2    4     4           f  Lcom/beust/jcommander/IStringConverterInstanceFactory;
            3    4     6      result  Lcom/beust/jcommander/IStringConverter<*>;
    Signature: (Lcom/beust/jcommander/Parameter;Ljava/lang/Class<*>;Ljava/lang/String;)Lcom/beust/jcommander/IStringConverter<*>;
    MethodParameters:
            Name  Flags
      parameter   
      forType     
      optionName  

  public java.lang.Object convertValue(com.beust.jcommander.Parameterized, java.lang.Class, java.lang.String, java.lang.String);
    descriptor: (Lcom/beust/jcommander/Parameterized;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.Parameterized parameterized
        start local 2 // java.lang.Class type
        start local 3 // java.lang.String optionName
        start local 4 // java.lang.String value
         0: .line 1295
            aload 1 /* parameterized */
            invokevirtual com.beust.jcommander.Parameterized.getParameter:()Lcom/beust/jcommander/Parameter;
            astore 5 /* annotation */
        start local 5 // com.beust.jcommander.Parameter annotation
         1: .line 1298
            aload 5 /* annotation */
            ifnonnull 2
            aload 4 /* value */
            areturn
         2: .line 1300
      StackMap locals: com.beust.jcommander.Parameter
      StackMap stack:
            aload 3 /* optionName */
            ifnonnull 6
         3: .line 1301
            aload 5 /* annotation */
            invokeinterface com.beust.jcommander.Parameter.names:()[Ljava/lang/String;
            arraylength
            ifle 4
            aload 5 /* annotation */
            invokeinterface com.beust.jcommander.Parameter.names:()[Ljava/lang/String;
            iconst_0
            aaload
            goto 5
      StackMap locals:
      StackMap stack:
         4: ldc "[Main class]"
      StackMap locals:
      StackMap stack: java.lang.String
         5: astore 3 /* optionName */
         6: .line 1304
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* converter */
        start local 6 // com.beust.jcommander.IStringConverter converter
         7: .line 1305
            aload 2 /* type */
            ldc Ljava/util/List;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 9
         8: .line 1307
            aload 3 /* optionName */
            aload 5 /* annotation */
            invokeinterface com.beust.jcommander.Parameter.listConverter:()Ljava/lang/Class;
            invokestatic com.beust.jcommander.JCommander.tryInstantiateConverter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.beust.jcommander.IStringConverter
            astore 6 /* converter */
         9: .line 1309
      StackMap locals: com.beust.jcommander.IStringConverter
      StackMap stack:
            aload 2 /* type */
            ldc Ljava/util/List;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 12
            aload 6 /* converter */
            ifnonnull 12
        10: .line 1311
            aconst_null
            aload 5 /* annotation */
            invokeinterface com.beust.jcommander.Parameter.splitter:()Ljava/lang/Class;
            invokestatic com.beust.jcommander.JCommander.tryInstantiateConverter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.beust.jcommander.converters.IParameterSplitter
            astore 7 /* splitter */
        start local 7 // com.beust.jcommander.converters.IParameterSplitter splitter
        11: .line 1312
            new com.beust.jcommander.converters.DefaultListConverter
            dup
            aload 7 /* splitter */
            new com.beust.jcommander.JCommander$2
            dup
            aload 0 /* this */
            aload 1 /* parameterized */
            invokespecial com.beust.jcommander.JCommander$2.<init>:(Lcom/beust/jcommander/JCommander;Lcom/beust/jcommander/Parameterized;)V
            invokespecial com.beust.jcommander.converters.DefaultListConverter.<init>:(Lcom/beust/jcommander/converters/IParameterSplitter;Lcom/beust/jcommander/IStringConverter;)V
            astore 6 /* converter */
        end local 7 // com.beust.jcommander.converters.IParameterSplitter splitter
        12: .line 1321
      StackMap locals:
      StackMap stack:
            aload 6 /* converter */
            ifnonnull 14
        13: .line 1322
            aload 3 /* optionName */
            aload 5 /* annotation */
            invokeinterface com.beust.jcommander.Parameter.converter:()Ljava/lang/Class;
            invokestatic com.beust.jcommander.JCommander.tryInstantiateConverter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.beust.jcommander.IStringConverter
            astore 6 /* converter */
        14: .line 1324
      StackMap locals:
      StackMap stack:
            aload 6 /* converter */
            ifnonnull 16
        15: .line 1325
            aload 0 /* this */
            aload 5 /* annotation */
            aload 2 /* type */
            aload 3 /* optionName */
            invokevirtual com.beust.jcommander.JCommander.findConverterInstance:(Lcom/beust/jcommander/Parameter;Ljava/lang/Class;Ljava/lang/String;)Lcom/beust/jcommander/IStringConverter;
            astore 6 /* converter */
        16: .line 1327
      StackMap locals:
      StackMap stack:
            aload 6 /* converter */
            ifnonnull 18
            aload 2 /* type */
            invokevirtual java.lang.Class.isEnum:()Z
            ifeq 18
        17: .line 1328
            new com.beust.jcommander.converters.EnumConverter
            dup
            aload 3 /* optionName */
            aload 2 /* type */
            invokespecial com.beust.jcommander.converters.EnumConverter.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            astore 6 /* converter */
        18: .line 1330
      StackMap locals:
      StackMap stack:
            aload 6 /* converter */
            ifnonnull 20
        19: .line 1331
            new com.beust.jcommander.converters.StringConverter
            dup
            invokespecial com.beust.jcommander.converters.StringConverter.<init>:()V
            astore 6 /* converter */
        20: .line 1333
      StackMap locals:
      StackMap stack:
            aload 6 /* converter */
            aload 4 /* value */
            invokeinterface com.beust.jcommander.IStringConverter.convert:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 6 // com.beust.jcommander.IStringConverter converter
        end local 5 // com.beust.jcommander.Parameter annotation
        end local 4 // java.lang.String value
        end local 3 // java.lang.String optionName
        end local 2 // java.lang.Class type
        end local 1 // com.beust.jcommander.Parameterized parameterized
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   21     0           this  Lcom/beust/jcommander/JCommander;
            0   21     1  parameterized  Lcom/beust/jcommander/Parameterized;
            0   21     2           type  Ljava/lang/Class;
            0   21     3     optionName  Ljava/lang/String;
            0   21     4          value  Ljava/lang/String;
            1   21     5     annotation  Lcom/beust/jcommander/Parameter;
            7   21     6      converter  Lcom/beust/jcommander/IStringConverter<*>;
           11   12     7       splitter  Lcom/beust/jcommander/converters/IParameterSplitter;
    MethodParameters:
               Name  Flags
      parameterized  final
      type           
      optionName     
      value          

  private static <T> T tryInstantiateConverter(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String optionName
        start local 1 // java.lang.Class converterClass
         0: .line 1337
            aload 1 /* converterClass */
            ldc Lcom/beust/jcommander/converters/NoConverter;
            if_acmpeq 1
            aload 1 /* converterClass */
            ifnonnull 2
         1: .line 1338
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 1341
      StackMap locals:
      StackMap stack:
            aload 0 /* optionName */
            aload 1 /* converterClass */
            invokestatic com.beust.jcommander.JCommander.instantiateConverter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
         3: areturn
         4: .line 1342
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            pop
         5: .line 1343
            aconst_null
            areturn
        end local 1 // java.lang.Class converterClass
        end local 0 // java.lang.String optionName
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0      optionName  Ljava/lang/String;
            0    6     1  converterClass  Ljava/lang/Class<TT;>;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.InstantiationException
           2     3       4  Class java.lang.IllegalAccessException
           2     3       4  Class java.lang.reflect.InvocationTargetException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                Name  Flags
      optionName      
      converterClass  

  private static <T> T instantiateConverter(java.lang.String, java.lang.Class<? extends T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // java.lang.String optionName
        start local 1 // java.lang.Class converterClass
         0: .line 1350
            aconst_null
            astore 2 /* ctor */
        start local 2 // java.lang.reflect.Constructor ctor
         1: .line 1351
            aconst_null
            astore 3 /* stringCtor */
        start local 3 // java.lang.reflect.Constructor stringCtor
         2: .line 1352
            aload 1 /* converterClass */
            invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 12
      StackMap locals: java.lang.String java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Constructor top int int java.lang.reflect.Constructor[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* c */
        start local 4 // java.lang.reflect.Constructor c
         4: .line 1353
            aload 4 /* c */
            iconst_1
            invokevirtual java.lang.reflect.Constructor.setAccessible:(Z)V
         5: .line 1354
            aload 4 /* c */
            invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
            astore 8 /* types */
        start local 8 // java.lang.Class[] types
         6: .line 1355
            aload 8 /* types */
            arraylength
            iconst_1
            if_icmpne 9
            aload 8 /* types */
            iconst_0
            aaload
            ldc Ljava/lang/String;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 1356
            aload 4 /* c */
            astore 3 /* stringCtor */
         8: .line 1357
            goto 11
      StackMap locals: java.lang.String java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Constructor java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] java.lang.Class[]
      StackMap stack:
         9: aload 8 /* types */
            arraylength
            ifne 11
        10: .line 1358
            aload 4 /* c */
            astore 2 /* ctor */
        end local 8 // java.lang.Class[] types
        end local 4 // java.lang.reflect.Constructor c
        11: .line 1352
      StackMap locals: java.lang.String java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Constructor top int int java.lang.reflect.Constructor[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        12: iload 5
            iload 6
            if_icmplt 3
        13: .line 1362
            aload 3 /* stringCtor */
            ifnull 15
        14: .line 1363
            aload 3 /* stringCtor */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* optionName */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            goto 18
        15: .line 1364
      StackMap locals: java.lang.String java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Constructor
      StackMap stack:
            aload 2 /* ctor */
            ifnull 17
        16: .line 1365
            aload 2 /* ctor */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            goto 18
        17: .line 1366
      StackMap locals:
      StackMap stack:
            aconst_null
        18: .line 1362
      StackMap locals:
      StackMap stack: java.lang.Object
            areturn
        end local 3 // java.lang.reflect.Constructor stringCtor
        end local 2 // java.lang.reflect.Constructor ctor
        end local 1 // java.lang.Class converterClass
        end local 0 // java.lang.String optionName
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0      optionName  Ljava/lang/String;
            0   19     1  converterClass  Ljava/lang/Class<+TT;>;
            1   19     2            ctor  Ljava/lang/reflect/Constructor<TT;>;
            2   19     3      stringCtor  Ljava/lang/reflect/Constructor<TT;>;
            4   11     4               c  Ljava/lang/reflect/Constructor<TT;>;
            6   11     8           types  [Ljava/lang/Class;
    Exceptions:
      throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<+TT;>;)TT;
    MethodParameters:
                Name  Flags
      optionName      
      converterClass  

  public void addCommand(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object object
         0: .line 1373
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* object */
            iconst_0
            anewarray java.lang.String
            invokevirtual com.beust.jcommander.JCommander.addCommand:(Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/String;)V
         1: .line 1374
            return
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String name
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/beust/jcommander/JCommander;
            0    2     1    name  Ljava/lang/String;
            0    2     2  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      name    
      object  

  public void addCommand(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.Object object
         0: .line 1377
            aload 1 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Lcom/beust/jcommander/Parameters;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.beust.jcommander.Parameters
            astore 2 /* p */
        start local 2 // com.beust.jcommander.Parameters p
         1: .line 1378
            aload 2 /* p */
            ifnull 8
            aload 2 /* p */
            invokeinterface com.beust.jcommander.Parameters.commandNames:()[Ljava/lang/String;
            arraylength
            ifle 8
         2: .line 1379
            aload 2 /* p */
            invokeinterface com.beust.jcommander.Parameters.commandNames:()[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object com.beust.jcommander.Parameters top int int java.lang.String[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* commandName */
        start local 3 // java.lang.String commandName
         4: .line 1380
            aload 0 /* this */
            aload 3 /* commandName */
            aload 1 /* object */
            invokevirtual com.beust.jcommander.JCommander.addCommand:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 3 // java.lang.String commandName
         5: .line 1379
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 3
         7: .line 1382
            goto 11
         8: .line 1383
      StackMap locals: com.beust.jcommander.JCommander java.lang.Object com.beust.jcommander.Parameters
      StackMap stack:
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Trying to add command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 1384
            ldc " without specifying its names in @Parameters"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 1383
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1386
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.beust.jcommander.Parameters p
        end local 1 // java.lang.Object object
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lcom/beust/jcommander/JCommander;
            0   12     1       object  Ljava/lang/Object;
            1   12     2            p  Lcom/beust/jcommander/Parameters;
            4    5     3  commandName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      object  

  public void addCommand(java.lang.String, java.lang.Object, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object object
        start local 3 // java.lang.String[] aliases
         0: .line 1392
            new com.beust.jcommander.JCommander
            dup
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            invokespecial com.beust.jcommander.JCommander.<init>:(Lcom/beust/jcommander/JCommander$Options;)V
            astore 4 /* jc */
        start local 4 // com.beust.jcommander.JCommander jc
         1: .line 1393
            aload 4 /* jc */
            aload 2 /* object */
            invokevirtual com.beust.jcommander.JCommander.addObject:(Ljava/lang/Object;)V
         2: .line 1394
            aload 4 /* jc */
            invokevirtual com.beust.jcommander.JCommander.createDescriptions:()V
         3: .line 1395
            aload 4 /* jc */
            aload 1 /* name */
            aload 3 /* aliases */
            invokevirtual com.beust.jcommander.JCommander.setProgramName:(Ljava/lang/String;[Ljava/lang/String;)V
         4: .line 1396
            aload 4 /* jc */
            getfield com.beust.jcommander.JCommander.programName:Lcom/beust/jcommander/JCommander$ProgramName;
            astore 5 /* progName */
        start local 5 // com.beust.jcommander.JCommander$ProgramName progName
         5: .line 1397
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.commands:Ljava/util/Map;
            aload 5 /* progName */
            aload 4 /* jc */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1406
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.aliasMap:Ljava/util/Map;
            new com.beust.jcommander.StringKey
            dup
            aload 1 /* name */
            invokespecial com.beust.jcommander.StringKey.<init>:(Ljava/lang/String;)V
            aload 5 /* progName */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 1407
            aload 3 /* aliases */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 20
      StackMap locals: com.beust.jcommander.JCommander java.lang.String java.lang.Object java.lang.String[] com.beust.jcommander.JCommander com.beust.jcommander.JCommander$ProgramName top int int java.lang.String[]
      StackMap stack:
         8: aload 9
            iload 7
            aaload
            astore 6 /* a */
        start local 6 // java.lang.String a
         9: .line 1408
            new com.beust.jcommander.StringKey
            dup
            aload 6 /* a */
            invokespecial com.beust.jcommander.StringKey.<init>:(Ljava/lang/String;)V
            astore 10 /* alias */
        start local 10 // com.beust.jcommander.FuzzyMap$IKey alias
        10: .line 1410
            aload 10 /* alias */
            aload 1 /* name */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 19
        11: .line 1411
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.aliasMap:Ljava/util/Map;
            aload 10 /* alias */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.beust.jcommander.JCommander$ProgramName
            astore 11 /* mappedName */
        start local 11 // com.beust.jcommander.JCommander$ProgramName mappedName
        12: .line 1412
            aload 11 /* mappedName */
            ifnull 18
            aload 11 /* mappedName */
            aload 5 /* progName */
            invokevirtual com.beust.jcommander.JCommander$ProgramName.equals:(Ljava/lang/Object;)Z
            ifne 18
        13: .line 1413
            new com.beust.jcommander.ParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot set alias "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        14: .line 1414
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 1415
            ldc " command because it has already been defined for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 1416
            aload 11 /* mappedName */
            getfield com.beust.jcommander.JCommander$ProgramName.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " command"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 1413
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 1418
      StackMap locals: com.beust.jcommander.JCommander java.lang.String java.lang.Object java.lang.String[] com.beust.jcommander.JCommander com.beust.jcommander.JCommander$ProgramName java.lang.String int int java.lang.String[] com.beust.jcommander.FuzzyMap$IKey com.beust.jcommander.JCommander$ProgramName
      StackMap stack:
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.aliasMap:Ljava/util/Map;
            aload 10 /* alias */
            aload 5 /* progName */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 11 // com.beust.jcommander.JCommander$ProgramName mappedName
        end local 10 // com.beust.jcommander.FuzzyMap$IKey alias
        end local 6 // java.lang.String a
        19: .line 1407
      StackMap locals: com.beust.jcommander.JCommander java.lang.String java.lang.Object java.lang.String[] com.beust.jcommander.JCommander com.beust.jcommander.JCommander$ProgramName top int int java.lang.String[]
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        20: iload 7
            iload 8
            if_icmplt 8
        21: .line 1421
            return
        end local 5 // com.beust.jcommander.JCommander$ProgramName progName
        end local 4 // com.beust.jcommander.JCommander jc
        end local 3 // java.lang.String[] aliases
        end local 2 // java.lang.Object object
        end local 1 // java.lang.String name
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Lcom/beust/jcommander/JCommander;
            0   22     1        name  Ljava/lang/String;
            0   22     2      object  Ljava/lang/Object;
            0   22     3     aliases  [Ljava/lang/String;
            1   22     4          jc  Lcom/beust/jcommander/JCommander;
            5   22     5    progName  Lcom/beust/jcommander/JCommander$ProgramName;
            9   19     6           a  Ljava/lang/String;
           10   19    10       alias  Lcom/beust/jcommander/FuzzyMap$IKey;
           12   19    11  mappedName  Lcom/beust/jcommander/JCommander$ProgramName;
    MethodParameters:
         Name  Flags
      name     
      object   
      aliases  

  public java.util.Map<java.lang.String, com.beust.jcommander.JCommander> getCommands();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1424
            invokestatic com.beust.jcommander.internal.Maps.newLinkedHashMap:()Ljava/util/Map;
            astore 1 /* res */
        start local 1 // java.util.Map res
         1: .line 1426
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.commands:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.beust.jcommander.JCommander java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         3: .line 1427
            aload 1 /* res */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast com.beust.jcommander.JCommander$ProgramName
            getfield com.beust.jcommander.JCommander$ProgramName.name:Ljava/lang/String;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.beust.jcommander.JCommander
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.util.Map$Entry entry
         4: .line 1426
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1429
            aload 1 /* res */
            areturn
        end local 1 // java.util.Map res
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/beust/jcommander/JCommander;
            1    6     1    res  Ljava/util/Map<Ljava/lang/String;Lcom/beust/jcommander/JCommander;>;
            3    4     2  entry  Ljava/util/Map$Entry<Lcom/beust/jcommander/JCommander$ProgramName;Lcom/beust/jcommander/JCommander;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lcom/beust/jcommander/JCommander;>;

  public java.util.Map<com.beust.jcommander.JCommander$ProgramName, com.beust.jcommander.JCommander> getRawCommands();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1433
            invokestatic com.beust.jcommander.internal.Maps.newLinkedHashMap:()Ljava/util/Map;
            astore 1 /* res */
        start local 1 // java.util.Map res
         1: .line 1435
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.commands:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.beust.jcommander.JCommander java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         3: .line 1436
            aload 1 /* res */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast com.beust.jcommander.JCommander$ProgramName
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.beust.jcommander.JCommander
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.util.Map$Entry entry
         4: .line 1435
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1438
            aload 1 /* res */
            areturn
        end local 1 // java.util.Map res
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/beust/jcommander/JCommander;
            1    6     1    res  Ljava/util/Map<Lcom/beust/jcommander/JCommander$ProgramName;Lcom/beust/jcommander/JCommander;>;
            3    4     2  entry  Ljava/util/Map$Entry<Lcom/beust/jcommander/JCommander$ProgramName;Lcom/beust/jcommander/JCommander;>;
    Signature: ()Ljava/util/Map<Lcom/beust/jcommander/JCommander$ProgramName;Lcom/beust/jcommander/JCommander;>;

  public java.lang.String getParsedCommand();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1442
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.parsedCommand:Ljava/lang/String;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;

  public java.lang.String getParsedAlias();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1453
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.parsedAlias:Ljava/lang/String;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;

  private java.lang.String s(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // int count
         0: .line 1460
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* result */
        start local 2 // java.lang.StringBuilder result
         1: .line 1461
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 1462
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 2 /* result */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 1461
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            iload 1 /* count */
            if_icmplt 3
        end local 3 // int i
         6: .line 1465
            aload 2 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder result
        end local 1 // int count
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/beust/jcommander/JCommander;
            0    7     1   count  I
            1    7     2  result  Ljava/lang/StringBuilder;
            2    6     3       i  I
    MethodParameters:
       Name  Flags
      count  

  public java.util.List<java.lang.Object> getObjects();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1473
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.objects:Ljava/util/List;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;
    Signature: ()Ljava/util/List<Ljava/lang/Object;>;

  private com.beust.jcommander.ParameterDescription findParameterDescription(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/beust/jcommander/ParameterDescription;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String arg
         0: .line 1477
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.descriptions:Ljava/util/Map;
            new com.beust.jcommander.StringKey
            dup
            aload 1 /* arg */
            invokespecial com.beust.jcommander.StringKey.<init>:(Ljava/lang/String;)V
         1: .line 1478
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.caseSensitiveOptions:Z
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.allowAbbreviatedOptions:Z
         2: .line 1477
            invokestatic com.beust.jcommander.FuzzyMap.findInMap:(Ljava/util/Map;Lcom/beust/jcommander/FuzzyMap$IKey;ZZ)Ljava/lang/Object;
            checkcast com.beust.jcommander.ParameterDescription
            areturn
        end local 1 // java.lang.String arg
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/beust/jcommander/JCommander;
            0    3     1   arg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      arg   

  private com.beust.jcommander.JCommander findCommand(com.beust.jcommander.JCommander$ProgramName);
    descriptor: (Lcom/beust/jcommander/JCommander$ProgramName;)Lcom/beust/jcommander/JCommander;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // com.beust.jcommander.JCommander$ProgramName name
         0: .line 1482
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.commands:Ljava/util/Map;
            aload 1 /* name */
         1: .line 1483
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.caseSensitiveOptions:Z
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.allowAbbreviatedOptions:Z
         2: .line 1482
            invokestatic com.beust.jcommander.FuzzyMap.findInMap:(Ljava/util/Map;Lcom/beust/jcommander/FuzzyMap$IKey;ZZ)Ljava/lang/Object;
            checkcast com.beust.jcommander.JCommander
            areturn
        end local 1 // com.beust.jcommander.JCommander$ProgramName name
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/beust/jcommander/JCommander;
            0    3     1  name  Lcom/beust/jcommander/JCommander$ProgramName;
    MethodParameters:
      Name  Flags
      name  

  private com.beust.jcommander.JCommander$ProgramName findProgramName(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/beust/jcommander/JCommander$ProgramName;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String name
         0: .line 1487
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.aliasMap:Ljava/util/Map;
            new com.beust.jcommander.StringKey
            dup
            aload 1 /* name */
            invokespecial com.beust.jcommander.StringKey.<init>:(Ljava/lang/String;)V
         1: .line 1488
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.caseSensitiveOptions:Z
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.allowAbbreviatedOptions:Z
         2: .line 1487
            invokestatic com.beust.jcommander.FuzzyMap.findInMap:(Ljava/util/Map;Lcom/beust/jcommander/FuzzyMap$IKey;ZZ)Ljava/lang/Object;
            checkcast com.beust.jcommander.JCommander$ProgramName
            areturn
        end local 1 // java.lang.String name
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/beust/jcommander/JCommander;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public com.beust.jcommander.JCommander findCommandByAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/beust/jcommander/JCommander;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.lang.String commandOrAlias
         0: .line 1495
            aload 0 /* this */
            aload 1 /* commandOrAlias */
            invokevirtual com.beust.jcommander.JCommander.findProgramName:(Ljava/lang/String;)Lcom/beust/jcommander/JCommander$ProgramName;
            astore 2 /* progName */
        start local 2 // com.beust.jcommander.JCommander$ProgramName progName
         1: .line 1496
            aload 2 /* progName */
            ifnonnull 3
         2: .line 1497
            aconst_null
            areturn
         3: .line 1499
      StackMap locals: com.beust.jcommander.JCommander$ProgramName
      StackMap stack:
            aload 0 /* this */
            aload 2 /* progName */
            invokevirtual com.beust.jcommander.JCommander.findCommand:(Lcom/beust/jcommander/JCommander$ProgramName;)Lcom/beust/jcommander/JCommander;
            astore 3 /* jc */
        start local 3 // com.beust.jcommander.JCommander jc
         4: .line 1500
            aload 3 /* jc */
            ifnonnull 8
         5: .line 1501
            new java.lang.IllegalStateException
            dup
         6: .line 1502
            ldc "There appears to be inconsistency in the internal command database.  This is likely a bug. Please report."
         7: .line 1501
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1505
      StackMap locals: com.beust.jcommander.JCommander
      StackMap stack:
            aload 3 /* jc */
            areturn
        end local 3 // com.beust.jcommander.JCommander jc
        end local 2 // com.beust.jcommander.JCommander$ProgramName progName
        end local 1 // java.lang.String commandOrAlias
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/beust/jcommander/JCommander;
            0    9     1  commandOrAlias  Ljava/lang/String;
            1    9     2        progName  Lcom/beust/jcommander/JCommander$ProgramName;
            4    9     3              jc  Lcom/beust/jcommander/JCommander;
    MethodParameters:
                Name  Flags
      commandOrAlias  

  public void setVerbose(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // int verbose
         0: .line 1579
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            iload 1 /* verbose */
            putfield com.beust.jcommander.JCommander$Options.verbose:I
         1: .line 1580
            return
        end local 1 // int verbose
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/beust/jcommander/JCommander;
            0    2     1  verbose  I
    MethodParameters:
         Name  Flags
      verbose  

  public void setCaseSensitiveOptions(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // boolean b
         0: .line 1583
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            iload 1 /* b */
            putfield com.beust.jcommander.JCommander$Options.caseSensitiveOptions:Z
         1: .line 1584
            return
        end local 1 // boolean b
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/beust/jcommander/JCommander;
            0    2     1     b  Z
    MethodParameters:
      Name  Flags
      b     

  public void setAllowAbbreviatedOptions(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // boolean b
         0: .line 1587
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            iload 1 /* b */
            putfield com.beust.jcommander.JCommander$Options.allowAbbreviatedOptions:Z
         1: .line 1588
            return
        end local 1 // boolean b
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/beust/jcommander/JCommander;
            0    2     1     b  Z
    MethodParameters:
      Name  Flags
      b     

  public void setAcceptUnknownOptions(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // boolean b
         0: .line 1591
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            iload 1 /* b */
            putfield com.beust.jcommander.JCommander$Options.acceptUnknownOptions:Z
         1: .line 1592
            return
        end local 1 // boolean b
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/beust/jcommander/JCommander;
            0    2     1     b  Z
    MethodParameters:
      Name  Flags
      b     

  public java.util.List<java.lang.String> getUnknownOptions();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1595
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.unknownArgs:Ljava/util/List;
            areturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public void setAllowParameterOverwriting(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // boolean b
         0: .line 1599
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            iload 1 /* b */
            putfield com.beust.jcommander.JCommander$Options.allowParameterOverwriting:Z
         1: .line 1600
            return
        end local 1 // boolean b
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/beust/jcommander/JCommander;
            0    2     1     b  Z
    MethodParameters:
      Name  Flags
      b     

  public boolean isParameterOverwritingAllowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.beust.jcommander.JCommander this
         0: .line 1603
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            getfield com.beust.jcommander.JCommander$Options.allowParameterOverwriting:Z
            ireturn
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander;

  public void setAtFileCharset(java.nio.charset.Charset);
    descriptor: (Ljava/nio/charset/Charset;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.beust.jcommander.JCommander this
        start local 1 // java.nio.charset.Charset charset
         0: .line 1611
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander.options:Lcom/beust/jcommander/JCommander$Options;
            aload 1 /* charset */
            putfield com.beust.jcommander.JCommander$Options.atFileCharset:Ljava/nio/charset/Charset;
         1: .line 1612
            return
        end local 1 // java.nio.charset.Charset charset
        end local 0 // com.beust.jcommander.JCommander this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/beust/jcommander/JCommander;
            0    2     1  charset  Ljava/nio/charset/Charset;
    MethodParameters:
         Name  Flags
      charset  
}
SourceFile: "JCommander.java"
NestMembers:
  com.beust.jcommander.JCommander$1  com.beust.jcommander.JCommander$2  com.beust.jcommander.JCommander$Builder  com.beust.jcommander.JCommander$DefaultVariableArity  com.beust.jcommander.JCommander$MainParameter  com.beust.jcommander.JCommander$Options  com.beust.jcommander.JCommander$Options$1  com.beust.jcommander.JCommander$ProgramName
InnerClasses:
  abstract IKey = com.beust.jcommander.FuzzyMap$IKey of com.beust.jcommander.FuzzyMap
  com.beust.jcommander.JCommander$1
  com.beust.jcommander.JCommander$2
  public Builder = com.beust.jcommander.JCommander$Builder of com.beust.jcommander.JCommander
  private DefaultVariableArity = com.beust.jcommander.JCommander$DefaultVariableArity of com.beust.jcommander.JCommander
  MainParameter = com.beust.jcommander.JCommander$MainParameter of com.beust.jcommander.JCommander
  private Options = com.beust.jcommander.JCommander$Options of com.beust.jcommander.JCommander
  public final ProgramName = com.beust.jcommander.JCommander$ProgramName of com.beust.jcommander.JCommander
  public abstract Entry = java.util.Map$Entry of java.util.Map