public class org.codehaus.plexus.util.Os
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.codehaus.plexus.util.Os
  super_class: java.lang.Object
{
  public static final java.lang.String FAMILY_DOS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "dos"

  public static final java.lang.String FAMILY_MAC;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "mac"

  public static final java.lang.String FAMILY_NETWARE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "netware"

  public static final java.lang.String FAMILY_OS2;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "os/2"

  public static final java.lang.String FAMILY_TANDEM;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "tandem"

  public static final java.lang.String FAMILY_UNIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "unix"

  public static final java.lang.String FAMILY_WINDOWS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "windows"

  public static final java.lang.String FAMILY_WIN9X;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "win9x"

  public static final java.lang.String FAMILY_ZOS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "z/os"

  public static final java.lang.String FAMILY_OS400;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "os/400"

  public static final java.lang.String FAMILY_OPENVMS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "openvms"

  private static final java.util.Set<java.lang.String> validFamilies;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.lang.String PATH_SEP;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.String OS_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String OS_ARCH;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String OS_VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String OS_FAMILY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 96
            invokestatic org.codehaus.plexus.util.Os.setValidFamilies:()Ljava/util/Set;
            putstatic org.codehaus.plexus.util.Os.validFamilies:Ljava/util/Set;
         1: .line 99
            ldc "path.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            putstatic org.codehaus.plexus.util.Os.PATH_SEP:Ljava/lang/String;
         2: .line 101
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
         3: .line 103
            ldc "os.arch"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putstatic org.codehaus.plexus.util.Os.OS_ARCH:Ljava/lang/String;
         4: .line 105
            ldc "os.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putstatic org.codehaus.plexus.util.Os.OS_VERSION:Ljava/lang/String;
         5: .line 108
            invokestatic org.codehaus.plexus.util.Os.getOsFamily:()Ljava/lang/String;
            putstatic org.codehaus.plexus.util.Os.OS_FAMILY:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.util.Os this
         0: .line 121
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 123
            return
        end local 0 // org.codehaus.plexus.util.Os this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/codehaus/plexus/util/Os;

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.Os this
        start local 1 // java.lang.String family
         0: .line 130
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 132
            aload 0 /* this */
            aload 1 /* family */
            invokevirtual org.codehaus.plexus.util.Os.setFamily:(Ljava/lang/String;)V
         2: .line 133
            return
        end local 1 // java.lang.String family
        end local 0 // org.codehaus.plexus.util.Os this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/codehaus/plexus/util/Os;
            0    3     1  family  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      family  

  private static java.util.Set<java.lang.String> setValidFamilies();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 140
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 0 /* valid */
        start local 0 // java.util.Set valid
         1: .line 141
            aload 0 /* valid */
            ldc "dos"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 142
            aload 0 /* valid */
            ldc "mac"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 143
            aload 0 /* valid */
            ldc "netware"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 144
            aload 0 /* valid */
            ldc "os/2"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 145
            aload 0 /* valid */
            ldc "tandem"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 146
            aload 0 /* valid */
            ldc "unix"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 147
            aload 0 /* valid */
            ldc "windows"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 148
            aload 0 /* valid */
            ldc "win9x"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 149
            aload 0 /* valid */
            ldc "z/os"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 150
            aload 0 /* valid */
            ldc "os/400"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 151
            aload 0 /* valid */
            ldc "openvms"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 153
            aload 0 /* valid */
            areturn
        end local 0 // java.util.Set valid
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1   13     0  valid  Ljava/util/Set<Ljava/lang/String;>;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public void setFamily(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.Os this
        start local 1 // java.lang.String f
         0: .line 177
            aload 0 /* this */
            aload 1 /* f */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putfield org.codehaus.plexus.util.Os.family:Ljava/lang/String;
         1: .line 178
            return
        end local 1 // java.lang.String f
        end local 0 // org.codehaus.plexus.util.Os this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/codehaus/plexus/util/Os;
            0    2     1     f  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      f     

  public void setName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.Os this
        start local 1 // java.lang.String name
         0: .line 187
            aload 0 /* this */
            aload 1 /* name */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putfield org.codehaus.plexus.util.Os.name:Ljava/lang/String;
         1: .line 188
            return
        end local 1 // java.lang.String name
        end local 0 // org.codehaus.plexus.util.Os this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/codehaus/plexus/util/Os;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void setArch(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.Os this
        start local 1 // java.lang.String arch
         0: .line 197
            aload 0 /* this */
            aload 1 /* arch */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putfield org.codehaus.plexus.util.Os.arch:Ljava/lang/String;
         1: .line 198
            return
        end local 1 // java.lang.String arch
        end local 0 // org.codehaus.plexus.util.Os this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/codehaus/plexus/util/Os;
            0    2     1  arch  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      arch  

  public void setVersion(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.Os this
        start local 1 // java.lang.String version
         0: .line 207
            aload 0 /* this */
            aload 1 /* version */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putfield org.codehaus.plexus.util.Os.version:Ljava/lang/String;
         1: .line 208
            return
        end local 1 // java.lang.String version
        end local 0 // org.codehaus.plexus.util.Os this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/codehaus/plexus/util/Os;
            0    2     1  version  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      version  

  public boolean eval();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.util.Os this
         0: .line 218
            aload 0 /* this */
            getfield org.codehaus.plexus.util.Os.family:Ljava/lang/String;
            aload 0 /* this */
            getfield org.codehaus.plexus.util.Os.name:Ljava/lang/String;
            aload 0 /* this */
            getfield org.codehaus.plexus.util.Os.arch:Ljava/lang/String;
            aload 0 /* this */
            getfield org.codehaus.plexus.util.Os.version:Ljava/lang/String;
            invokestatic org.codehaus.plexus.util.Os.isOs:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 0 // org.codehaus.plexus.util.Os this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/util/Os;
    Exceptions:
      throws java.lang.Exception

  public static boolean isFamily(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String family
         0: .line 230
            aload 0 /* family */
            aconst_null
            aconst_null
            aconst_null
            invokestatic org.codehaus.plexus.util.Os.isOs:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 0 // java.lang.String family
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  family  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      family  

  public static boolean isName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 242
            aconst_null
            aload 0 /* name */
            aconst_null
            aconst_null
            invokestatic org.codehaus.plexus.util.Os.isOs:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static boolean isArch(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String arch
         0: .line 254
            aconst_null
            aconst_null
            aload 0 /* arch */
            aconst_null
            invokestatic org.codehaus.plexus.util.Os.isOs:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 0 // java.lang.String arch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  arch  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      arch  

  public static boolean isVersion(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String version
         0: .line 266
            aconst_null
            aconst_null
            aconst_null
            aload 0 /* version */
            invokestatic org.codehaus.plexus.util.Os.isOs:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 0 // java.lang.String version
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  version  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      version  

  public static boolean isOs(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // java.lang.String family
        start local 1 // java.lang.String name
        start local 2 // java.lang.String arch
        start local 3 // java.lang.String version
         0: .line 282
            iconst_0
            istore 4 /* retValue */
        start local 4 // boolean retValue
         1: .line 284
            aload 0 /* family */
            ifnonnull 2
            aload 1 /* name */
            ifnonnull 2
            aload 2 /* arch */
            ifnonnull 2
            aload 3 /* version */
            ifnull 64
         2: .line 287
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 5 /* isFamily */
        start local 5 // boolean isFamily
         3: .line 288
            iconst_1
            istore 6 /* isName */
        start local 6 // boolean isName
         4: .line 289
            iconst_1
            istore 7 /* isArch */
        start local 7 // boolean isArch
         5: .line 290
            iconst_1
            istore 8 /* isVersion */
        start local 8 // boolean isVersion
         6: .line 292
            aload 0 /* family */
            ifnull 55
         7: .line 294
            aload 0 /* family */
            ldc "windows"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 10
         8: .line 296
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "windows"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            istore 5 /* isFamily */
         9: .line 297
            goto 55
        10: .line 298
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String int int int int int
      StackMap stack:
            aload 0 /* family */
            ldc "os/2"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 13
        11: .line 300
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "os/2"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            istore 5 /* isFamily */
        12: .line 301
            goto 55
        13: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* family */
            ldc "netware"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 16
        14: .line 304
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "netware"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            istore 5 /* isFamily */
        15: .line 305
            goto 55
        16: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* family */
            ldc "dos"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 23
        17: .line 308
            getstatic org.codehaus.plexus.util.Os.PATH_SEP:Ljava/lang/String;
            ldc ";"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
            ldc "netware"
            invokestatic org.codehaus.plexus.util.Os.isFamily:(Ljava/lang/String;)Z
            ifne 20
            ldc "windows"
            invokestatic org.codehaus.plexus.util.Os.isFamily:(Ljava/lang/String;)Z
            ifne 20
        18: .line 309
            ldc "win9x"
            invokestatic org.codehaus.plexus.util.Os.isFamily:(Ljava/lang/String;)Z
            ifne 20
        19: .line 308
            iconst_1
            goto 21
      StackMap locals:
      StackMap stack:
        20: iconst_0
      StackMap locals:
      StackMap stack: int
        21: istore 5 /* isFamily */
        22: .line 311
            goto 55
        23: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* family */
            ldc "mac"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 26
        24: .line 314
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "mac"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            istore 5 /* isFamily */
        25: .line 315
            goto 55
        26: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* family */
            ldc "tandem"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 29
        27: .line 318
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "nonstop_kernel"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            istore 5 /* isFamily */
        28: .line 319
            goto 55
        29: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* family */
            ldc "unix"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 36
        30: .line 322
            getstatic org.codehaus.plexus.util.Os.PATH_SEP:Ljava/lang/String;
            ldc ":"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 33
            ldc "openvms"
            invokestatic org.codehaus.plexus.util.Os.isFamily:(Ljava/lang/String;)Z
            ifne 33
        31: .line 323
            ldc "mac"
            invokestatic org.codehaus.plexus.util.Os.isFamily:(Ljava/lang/String;)Z
            ifeq 32
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "x"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 33
        32: .line 322
      StackMap locals:
      StackMap stack:
            iconst_1
            goto 34
      StackMap locals:
      StackMap stack:
        33: iconst_0
      StackMap locals:
      StackMap stack: int
        34: istore 5 /* isFamily */
        35: .line 324
            goto 55
        36: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* family */
            ldc "win9x"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 43
        37: .line 327
            ldc "windows"
            invokestatic org.codehaus.plexus.util.Os.isFamily:(Ljava/lang/String;)Z
            ifeq 40
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "95"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 39
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "98"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 39
        38: .line 328
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "me"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 39
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "ce"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 40
        39: .line 327
      StackMap locals:
      StackMap stack:
            iconst_1
            goto 41
      StackMap locals:
      StackMap stack:
        40: iconst_0
      StackMap locals:
      StackMap stack: int
        41: istore 5 /* isFamily */
        42: .line 329
            goto 55
        43: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* family */
            ldc "z/os"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 48
        44: .line 332
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "z/os"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 45
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "os/390"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 45
            iconst_0
            goto 46
      StackMap locals:
      StackMap stack:
        45: iconst_1
      StackMap locals:
      StackMap stack: int
        46: istore 5 /* isFamily */
        47: .line 333
            goto 55
        48: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* family */
            ldc "os/400"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 51
        49: .line 336
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "os/400"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            istore 5 /* isFamily */
        50: .line 337
            goto 55
        51: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* family */
            ldc "openvms"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 54
        52: .line 340
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            ldc "openvms"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            istore 5 /* isFamily */
        53: .line 341
            goto 55
        54: .line 344
      StackMap locals:
      StackMap stack:
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            aload 0 /* family */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            istore 5 /* isFamily */
        55: .line 347
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ifnull 57
        56: .line 349
            aload 1 /* name */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            getstatic org.codehaus.plexus.util.Os.OS_NAME:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            istore 6 /* isName */
        57: .line 351
      StackMap locals:
      StackMap stack:
            aload 2 /* arch */
            ifnull 59
        58: .line 353
            aload 2 /* arch */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            getstatic org.codehaus.plexus.util.Os.OS_ARCH:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            istore 7 /* isArch */
        59: .line 355
      StackMap locals:
      StackMap stack:
            aload 3 /* version */
            ifnull 61
        60: .line 357
            aload 3 /* version */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            getstatic org.codehaus.plexus.util.Os.OS_VERSION:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            istore 8 /* isVersion */
        61: .line 359
      StackMap locals:
      StackMap stack:
            iload 5 /* isFamily */
            ifeq 62
            iload 6 /* isName */
            ifeq 62
            iload 7 /* isArch */
            ifeq 62
            iload 8 /* isVersion */
            ifeq 62
            iconst_1
            goto 63
      StackMap locals:
      StackMap stack:
        62: iconst_0
      StackMap locals:
      StackMap stack: int
        63: istore 4 /* retValue */
        end local 8 // boolean isVersion
        end local 7 // boolean isArch
        end local 6 // boolean isName
        end local 5 // boolean isFamily
        64: .line 361
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            iload 4 /* retValue */
            ireturn
        end local 4 // boolean retValue
        end local 3 // java.lang.String version
        end local 2 // java.lang.String arch
        end local 1 // java.lang.String name
        end local 0 // java.lang.String family
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   65     0     family  Ljava/lang/String;
            0   65     1       name  Ljava/lang/String;
            0   65     2       arch  Ljava/lang/String;
            0   65     3    version  Ljava/lang/String;
            1   65     4   retValue  Z
            3   64     5   isFamily  Z
            4   64     6     isName  Z
            5   64     7     isArch  Z
            6   64     8  isVersion  Z
    MethodParameters:
         Name  Flags
      family   
      name     
      arch     
      version  

  private static java.lang.String getOsFamily();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=0
         0: .line 375
            aconst_null
            astore 0 /* families */
        start local 0 // java.util.Set families
         1: .line 376
            getstatic org.codehaus.plexus.util.Os.validFamilies:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 4
         2: .line 378
            getstatic org.codehaus.plexus.util.Os.validFamilies:Ljava/util/Set;
            astore 0 /* families */
         3: .line 379
            goto 5
         4: .line 382
      StackMap locals: java.util.Set
      StackMap stack:
            invokestatic org.codehaus.plexus.util.Os.setValidFamilies:()Ljava/util/Set;
            astore 0 /* families */
         5: .line 384
      StackMap locals:
      StackMap stack:
            aload 0 /* families */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: java.util.Set top java.util.Iterator
      StackMap stack:
         6: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* fam */
        start local 1 // java.lang.String fam
         7: .line 386
            aload 1 /* fam */
            invokestatic org.codehaus.plexus.util.Os.isFamily:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 388
            aload 1 /* fam */
            areturn
        end local 1 // java.lang.String fam
         9: .line 384
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        10: .line 391
            aconst_null
            areturn
        end local 0 // java.util.Set families
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1   11     0  families  Ljava/util/Set<Ljava/lang/String;>;
            7    9     1       fam  Ljava/lang/String;

  public static boolean isValidFamily(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String theFamily
         0: .line 416
            getstatic org.codehaus.plexus.util.Os.validFamilies:Ljava/util/Set;
            aload 0 /* theFamily */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.String theFamily
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  theFamily  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      theFamily  

  public static java.util.Set<java.lang.String> getValidFamilies();
    descriptor: ()Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 425
            new java.util.HashSet
            dup
            getstatic org.codehaus.plexus.util.Os.validFamilies:Ljava/util/Set;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;
}
SourceFile: "Os.java"