final class com.google.common.collect.GeneralRange<T> implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.common.collect.GeneralRange
  super_class: java.lang.Object
{
  private final java.util.Comparator<? super T> comparator;
    descriptor: Ljava/util/Comparator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Comparator<-TT;>;

  private final boolean hasLowerBound;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final T lowerEndpoint;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: TT;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  private final com.google.common.collect.BoundType lowerBoundType;
    descriptor: Lcom/google/common/collect/BoundType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean hasUpperBound;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final T upperEndpoint;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: TT;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  private final com.google.common.collect.BoundType upperBoundType;
    descriptor: Lcom/google/common/collect/BoundType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private transient com.google.common.collect.GeneralRange<T> reverse;
    descriptor: Lcom/google/common/collect/GeneralRange;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
    Signature: Lcom/google/common/collect/GeneralRange<TT;>;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.MonotonicNonNull()

  static <T extends java.lang.Comparable> com.google.common.collect.GeneralRange<T> from(com.google.common.collect.Range<T>);
    descriptor: (Lcom/google/common/collect/Range;)Lcom/google/common/collect/GeneralRange;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=5, args_size=1
        start local 0 // com.google.common.collect.Range range
         0: .line 42
            aload 0 /* range */
            invokevirtual com.google.common.collect.Range.hasLowerBound:()Z
            ifeq 1
            aload 0 /* range */
            invokevirtual com.google.common.collect.Range.lowerEndpoint:()Ljava/lang/Comparable;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Comparable
         2: astore 1 /* lowerEndpoint */
        start local 1 // java.lang.Comparable lowerEndpoint
         3: .line 43
            aload 0 /* range */
            invokevirtual com.google.common.collect.Range.hasLowerBound:()Z
            ifeq 4
            aload 0 /* range */
            invokevirtual com.google.common.collect.Range.lowerBoundType:()Lcom/google/common/collect/BoundType;
            goto 5
      StackMap locals: java.lang.Comparable
      StackMap stack:
         4: getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
      StackMap locals:
      StackMap stack: com.google.common.collect.BoundType
         5: astore 2 /* lowerBoundType */
        start local 2 // com.google.common.collect.BoundType lowerBoundType
         6: .line 45
            aload 0 /* range */
            invokevirtual com.google.common.collect.Range.hasUpperBound:()Z
            ifeq 7
            aload 0 /* range */
            invokevirtual com.google.common.collect.Range.upperEndpoint:()Ljava/lang/Comparable;
            goto 8
      StackMap locals: com.google.common.collect.BoundType
      StackMap stack:
         7: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Comparable
         8: astore 3 /* upperEndpoint */
        start local 3 // java.lang.Comparable upperEndpoint
         9: .line 46
            aload 0 /* range */
            invokevirtual com.google.common.collect.Range.hasUpperBound:()Z
            ifeq 10
            aload 0 /* range */
            invokevirtual com.google.common.collect.Range.upperBoundType:()Lcom/google/common/collect/BoundType;
            goto 11
      StackMap locals: java.lang.Comparable
      StackMap stack:
        10: getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
      StackMap locals:
      StackMap stack: com.google.common.collect.BoundType
        11: astore 4 /* upperBoundType */
        start local 4 // com.google.common.collect.BoundType upperBoundType
        12: .line 47
            new com.google.common.collect.GeneralRange
            dup
        13: .line 48
            invokestatic com.google.common.collect.Ordering.natural:()Lcom/google/common/collect/Ordering;
        14: .line 49
            aload 0 /* range */
            invokevirtual com.google.common.collect.Range.hasLowerBound:()Z
        15: .line 50
            aload 1 /* lowerEndpoint */
        16: .line 51
            aload 2 /* lowerBoundType */
        17: .line 52
            aload 0 /* range */
            invokevirtual com.google.common.collect.Range.hasUpperBound:()Z
        18: .line 53
            aload 3 /* upperEndpoint */
        19: .line 54
            aload 4 /* upperBoundType */
        20: .line 47
            invokespecial com.google.common.collect.GeneralRange.<init>:(Ljava/util/Comparator;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;)V
            areturn
        end local 4 // com.google.common.collect.BoundType upperBoundType
        end local 3 // java.lang.Comparable upperEndpoint
        end local 2 // com.google.common.collect.BoundType lowerBoundType
        end local 1 // java.lang.Comparable lowerEndpoint
        end local 0 // com.google.common.collect.Range range
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0           range  Lcom/google/common/collect/Range<TT;>;
            3   21     1   lowerEndpoint  TT;
            6   21     2  lowerBoundType  Lcom/google/common/collect/BoundType;
            9   21     3   upperEndpoint  TT;
           12   21     4  upperBoundType  Lcom/google/common/collect/BoundType;
    Signature: <T::Ljava/lang/Comparable;>(Lcom/google/common/collect/Range<TT;>;)Lcom/google/common/collect/GeneralRange<TT;>;
    RuntimeVisibleTypeAnnotations: 
      LOCAL_VARIABLE, {start=3, end=21, index=1 /* lowerEndpoint */}
        org.checkerframework.checker.nullness.qual.Nullable()
      LOCAL_VARIABLE, {start=9, end=21, index=3 /* upperEndpoint */}
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
       Name  Flags
      range  

  static <T> com.google.common.collect.GeneralRange<T> all(java.util.Comparator<? super T>);
    descriptor: (Ljava/util/Comparator;)Lcom/google/common/collect/GeneralRange;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=1, args_size=1
        start local 0 // java.util.Comparator comparator
         0: .line 59
            new com.google.common.collect.GeneralRange
            dup
            aload 0 /* comparator */
            iconst_0
            aconst_null
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            iconst_0
            aconst_null
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            invokespecial com.google.common.collect.GeneralRange.<init>:(Ljava/util/Comparator;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;)V
            areturn
        end local 0 // java.util.Comparator comparator
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  comparator  Ljava/util/Comparator<-TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Comparator<-TT;>;)Lcom/google/common/collect/GeneralRange<TT;>;
    MethodParameters:
            Name  Flags
      comparator  

  static <T> com.google.common.collect.GeneralRange<T> downTo(java.util.Comparator<? super T>, T, com.google.common.collect.BoundType);
    descriptor: (Ljava/util/Comparator;Ljava/lang/Object;Lcom/google/common/collect/BoundType;)Lcom/google/common/collect/GeneralRange;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=3, args_size=3
        start local 0 // java.util.Comparator comparator
        start local 1 // java.lang.Object endpoint
        start local 2 // com.google.common.collect.BoundType boundType
         0: .line 68
            new com.google.common.collect.GeneralRange
            dup
            aload 0 /* comparator */
            iconst_1
            aload 1 /* endpoint */
            aload 2 /* boundType */
            iconst_0
            aconst_null
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            invokespecial com.google.common.collect.GeneralRange.<init>:(Ljava/util/Comparator;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;)V
            areturn
        end local 2 // com.google.common.collect.BoundType boundType
        end local 1 // java.lang.Object endpoint
        end local 0 // java.util.Comparator comparator
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  comparator  Ljava/util/Comparator<-TT;>;
            0    1     1    endpoint  TT;
            0    1     2   boundType  Lcom/google/common/collect/BoundType;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Comparator<-TT;>;TT;Lcom/google/common/collect/BoundType;)Lcom/google/common/collect/GeneralRange<TT;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
            Name  Flags
      comparator  
      endpoint    
      boundType   

  static <T> com.google.common.collect.GeneralRange<T> upTo(java.util.Comparator<? super T>, T, com.google.common.collect.BoundType);
    descriptor: (Ljava/util/Comparator;Ljava/lang/Object;Lcom/google/common/collect/BoundType;)Lcom/google/common/collect/GeneralRange;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=3, args_size=3
        start local 0 // java.util.Comparator comparator
        start local 1 // java.lang.Object endpoint
        start local 2 // com.google.common.collect.BoundType boundType
         0: .line 77
            new com.google.common.collect.GeneralRange
            dup
            aload 0 /* comparator */
            iconst_0
            aconst_null
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            iconst_1
            aload 1 /* endpoint */
            aload 2 /* boundType */
            invokespecial com.google.common.collect.GeneralRange.<init>:(Ljava/util/Comparator;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;)V
            areturn
        end local 2 // com.google.common.collect.BoundType boundType
        end local 1 // java.lang.Object endpoint
        end local 0 // java.util.Comparator comparator
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  comparator  Ljava/util/Comparator<-TT;>;
            0    1     1    endpoint  TT;
            0    1     2   boundType  Lcom/google/common/collect/BoundType;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Comparator<-TT;>;TT;Lcom/google/common/collect/BoundType;)Lcom/google/common/collect/GeneralRange<TT;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
            Name  Flags
      comparator  
      endpoint    
      boundType   

  static <T> com.google.common.collect.GeneralRange<T> range(java.util.Comparator<? super T>, T, com.google.common.collect.BoundType, T, com.google.common.collect.BoundType);
    descriptor: (Ljava/util/Comparator;Ljava/lang/Object;Lcom/google/common/collect/BoundType;Ljava/lang/Object;Lcom/google/common/collect/BoundType;)Lcom/google/common/collect/GeneralRange;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=5, args_size=5
        start local 0 // java.util.Comparator comparator
        start local 1 // java.lang.Object lower
        start local 2 // com.google.common.collect.BoundType lowerType
        start local 3 // java.lang.Object upper
        start local 4 // com.google.common.collect.BoundType upperType
         0: .line 90
            new com.google.common.collect.GeneralRange
            dup
            aload 0 /* comparator */
            iconst_1
            aload 1 /* lower */
            aload 2 /* lowerType */
            iconst_1
            aload 3 /* upper */
            aload 4 /* upperType */
            invokespecial com.google.common.collect.GeneralRange.<init>:(Ljava/util/Comparator;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;)V
            areturn
        end local 4 // com.google.common.collect.BoundType upperType
        end local 3 // java.lang.Object upper
        end local 2 // com.google.common.collect.BoundType lowerType
        end local 1 // java.lang.Object lower
        end local 0 // java.util.Comparator comparator
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  comparator  Ljava/util/Comparator<-TT;>;
            0    1     1       lower  TT;
            0    1     2   lowerType  Lcom/google/common/collect/BoundType;
            0    1     3       upper  TT;
            0    1     4   upperType  Lcom/google/common/collect/BoundType;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Comparator<-TT;>;TT;Lcom/google/common/collect/BoundType;TT;Lcom/google/common/collect/BoundType;)Lcom/google/common/collect/GeneralRange<TT;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
            Name  Flags
      comparator  
      lower       
      lowerType   
      upper       
      upperType   

  private void <init>(java.util.Comparator<? super T>, boolean, T, com.google.common.collect.BoundType, boolean, T, com.google.common.collect.BoundType);
    descriptor: (Ljava/util/Comparator;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=8
        start local 0 // com.google.common.collect.GeneralRange this
        start local 1 // java.util.Comparator comparator
        start local 2 // boolean hasLowerBound
        start local 3 // java.lang.Object lowerEndpoint
        start local 4 // com.google.common.collect.BoundType lowerBoundType
        start local 5 // boolean hasUpperBound
        start local 6 // java.lang.Object upperEndpoint
        start local 7 // com.google.common.collect.BoundType upperBoundType
         0: .line 101
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 109
            aload 0 /* this */
            aload 1 /* comparator */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Comparator
            putfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
         2: .line 110
            aload 0 /* this */
            iload 2 /* hasLowerBound */
            putfield com.google.common.collect.GeneralRange.hasLowerBound:Z
         3: .line 111
            aload 0 /* this */
            iload 5 /* hasUpperBound */
            putfield com.google.common.collect.GeneralRange.hasUpperBound:Z
         4: .line 112
            aload 0 /* this */
            aload 3 /* lowerEndpoint */
            putfield com.google.common.collect.GeneralRange.lowerEndpoint:Ljava/lang/Object;
         5: .line 113
            aload 0 /* this */
            aload 4 /* lowerBoundType */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.collect.BoundType
            putfield com.google.common.collect.GeneralRange.lowerBoundType:Lcom/google/common/collect/BoundType;
         6: .line 114
            aload 0 /* this */
            aload 6 /* upperEndpoint */
            putfield com.google.common.collect.GeneralRange.upperEndpoint:Ljava/lang/Object;
         7: .line 115
            aload 0 /* this */
            aload 7 /* upperBoundType */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.collect.BoundType
            putfield com.google.common.collect.GeneralRange.upperBoundType:Lcom/google/common/collect/BoundType;
         8: .line 117
            iload 2 /* hasLowerBound */
            ifeq 10
         9: .line 118
            aload 1 /* comparator */
            aload 3 /* lowerEndpoint */
            aload 3 /* lowerEndpoint */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            pop
        10: .line 120
      StackMap locals: com.google.common.collect.GeneralRange java.util.Comparator int java.lang.Object com.google.common.collect.BoundType int java.lang.Object com.google.common.collect.BoundType
      StackMap stack:
            iload 5 /* hasUpperBound */
            ifeq 12
        11: .line 121
            aload 1 /* comparator */
            aload 6 /* upperEndpoint */
            aload 6 /* upperEndpoint */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            pop
        12: .line 123
      StackMap locals:
      StackMap stack:
            iload 2 /* hasLowerBound */
            ifeq 24
            iload 5 /* hasUpperBound */
            ifeq 24
        13: .line 124
            aload 1 /* comparator */
            aload 3 /* lowerEndpoint */
            aload 6 /* upperEndpoint */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 8 /* cmp */
        start local 8 // int cmp
        14: .line 127
            iload 8 /* cmp */
            ifgt 15
            iconst_1
            goto 16
      StackMap locals: int
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: ldc "lowerEndpoint (%s) > upperEndpoint (%s)"
            aload 3 /* lowerEndpoint */
            aload 6 /* upperEndpoint */
        17: .line 126
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        18: .line 128
            iload 8 /* cmp */
            ifne 24
        19: .line 129
            aload 4 /* lowerBoundType */
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            if_acmpeq 20
            iconst_1
            goto 21
      StackMap locals:
      StackMap stack:
        20: iconst_0
      StackMap locals:
      StackMap stack: int
        21: aload 7 /* upperBoundType */
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            if_acmpeq 22
            iconst_1
            goto 23
      StackMap locals:
      StackMap stack: int
        22: iconst_0
      StackMap locals: com.google.common.collect.GeneralRange java.util.Comparator int java.lang.Object com.google.common.collect.BoundType int java.lang.Object com.google.common.collect.BoundType int
      StackMap stack: int int
        23: ior
            invokestatic com.google.common.base.Preconditions.checkArgument:(Z)V
        end local 8 // int cmp
        24: .line 132
      StackMap locals:
      StackMap stack:
            return
        end local 7 // com.google.common.collect.BoundType upperBoundType
        end local 6 // java.lang.Object upperEndpoint
        end local 5 // boolean hasUpperBound
        end local 4 // com.google.common.collect.BoundType lowerBoundType
        end local 3 // java.lang.Object lowerEndpoint
        end local 2 // boolean hasLowerBound
        end local 1 // java.util.Comparator comparator
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0            this  Lcom/google/common/collect/GeneralRange<TT;>;
            0   25     1      comparator  Ljava/util/Comparator<-TT;>;
            0   25     2   hasLowerBound  Z
            0   25     3   lowerEndpoint  TT;
            0   25     4  lowerBoundType  Lcom/google/common/collect/BoundType;
            0   25     5   hasUpperBound  Z
            0   25     6   upperEndpoint  TT;
            0   25     7  upperBoundType  Lcom/google/common/collect/BoundType;
           14   24     8             cmp  I
    Signature: (Ljava/util/Comparator<-TT;>;ZTT;Lcom/google/common/collect/BoundType;ZTT;Lcom/google/common/collect/BoundType;)V
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
                Name  Flags
      comparator      
      hasLowerBound   
      lowerEndpoint   
      lowerBoundType  
      hasUpperBound   
      upperEndpoint   
      upperBoundType  

  java.util.Comparator<? super T> comparator();
    descriptor: ()Ljava/util/Comparator;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 135
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            areturn
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/GeneralRange<TT;>;
    Signature: ()Ljava/util/Comparator<-TT;>;

  boolean hasLowerBound();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 139
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.hasLowerBound:Z
            ireturn
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/GeneralRange<TT;>;

  boolean hasUpperBound();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 143
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.hasUpperBound:Z
            ireturn
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/GeneralRange<TT;>;

  boolean isEmpty();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 147
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.hasUpperBound:()Z
            ifeq 1
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
            invokevirtual com.google.common.collect.GeneralRange.tooLow:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.hasLowerBound:()Z
            ifeq 2
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
            invokevirtual com.google.common.collect.GeneralRange.tooHigh:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 147
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/google/common/collect/GeneralRange<TT;>;

  boolean tooLow();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.google.common.collect.GeneralRange this
        start local 1 // java.lang.Object t
         0: .line 152
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.hasLowerBound:()Z
            ifne 2
         1: .line 153
            iconst_0
            ireturn
         2: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
            astore 2 /* lbound */
        start local 2 // java.lang.Object lbound
         3: .line 156
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            aload 1 /* t */
            aload 2 /* lbound */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 3 /* cmp */
        start local 3 // int cmp
         4: .line 157
            iload 3 /* cmp */
            ifge 5
            iconst_1
            goto 6
      StackMap locals: java.lang.Object int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: iload 3 /* cmp */
            ifne 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack: int
         7: iconst_0
      StackMap locals: com.google.common.collect.GeneralRange java.lang.Object java.lang.Object int
      StackMap stack: int int
         8: aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerBoundType:()Lcom/google/common/collect/BoundType;
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals: com.google.common.collect.GeneralRange java.lang.Object java.lang.Object int
      StackMap stack: int int
         9: iconst_0
      StackMap locals: com.google.common.collect.GeneralRange java.lang.Object java.lang.Object int
      StackMap stack: int int int
        10: iand
            ior
            ireturn
        end local 3 // int cmp
        end local 2 // java.lang.Object lbound
        end local 1 // java.lang.Object t
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/google/common/collect/GeneralRange<TT;>;
            0   11     1       t  TT;
            3   11     2  lbound  TT;
            4   11     3     cmp  I
    Signature: (TT;)Z
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
      Name  Flags
      t     

  boolean tooHigh();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.google.common.collect.GeneralRange this
        start local 1 // java.lang.Object t
         0: .line 161
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.hasUpperBound:()Z
            ifne 2
         1: .line 162
            iconst_0
            ireturn
         2: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
            astore 2 /* ubound */
        start local 2 // java.lang.Object ubound
         3: .line 165
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            aload 1 /* t */
            aload 2 /* ubound */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 3 /* cmp */
        start local 3 // int cmp
         4: .line 166
            iload 3 /* cmp */
            ifle 5
            iconst_1
            goto 6
      StackMap locals: java.lang.Object int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: iload 3 /* cmp */
            ifne 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack: int
         7: iconst_0
      StackMap locals: com.google.common.collect.GeneralRange java.lang.Object java.lang.Object int
      StackMap stack: int int
         8: aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperBoundType:()Lcom/google/common/collect/BoundType;
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals: com.google.common.collect.GeneralRange java.lang.Object java.lang.Object int
      StackMap stack: int int
         9: iconst_0
      StackMap locals: com.google.common.collect.GeneralRange java.lang.Object java.lang.Object int
      StackMap stack: int int int
        10: iand
            ior
            ireturn
        end local 3 // int cmp
        end local 2 // java.lang.Object ubound
        end local 1 // java.lang.Object t
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/google/common/collect/GeneralRange<TT;>;
            0   11     1       t  TT;
            3   11     2  ubound  TT;
            4   11     3     cmp  I
    Signature: (TT;)Z
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
      Name  Flags
      t     

  boolean contains();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.collect.GeneralRange this
        start local 1 // java.lang.Object t
         0: .line 170
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.google.common.collect.GeneralRange.tooLow:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.google.common.collect.GeneralRange.tooHigh:(Ljava/lang/Object;)Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object t
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/common/collect/GeneralRange<TT;>;
            0    2     1     t  TT;
    Signature: (TT;)Z
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
      Name  Flags
      t     

  com.google.common.collect.GeneralRange<T> intersect(com.google.common.collect.GeneralRange<T>);
    descriptor: (Lcom/google/common/collect/GeneralRange;)Lcom/google/common/collect/GeneralRange;
    flags: (0x0000) 
    Code:
      stack=9, locals=9, args_size=2
        start local 0 // com.google.common.collect.GeneralRange this
        start local 1 // com.google.common.collect.GeneralRange other
         0: .line 177
            aload 1 /* other */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 178
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            aload 1 /* other */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            invokeinterface java.util.Comparator.equals:(Ljava/lang/Object;)Z
            invokestatic com.google.common.base.Preconditions.checkArgument:(Z)V
         2: .line 180
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.hasLowerBound:Z
            istore 2 /* hasLowBound */
        start local 2 // boolean hasLowBound
         3: .line 181
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
            astore 3 /* lowEnd */
        start local 3 // java.lang.Object lowEnd
         4: .line 182
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerBoundType:()Lcom/google/common/collect/BoundType;
            astore 4 /* lowType */
        start local 4 // com.google.common.collect.BoundType lowType
         5: .line 183
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.hasLowerBound:()Z
            ifne 10
         6: .line 184
            aload 1 /* other */
            getfield com.google.common.collect.GeneralRange.hasLowerBound:Z
            istore 2 /* hasLowBound */
         7: .line 185
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
            astore 3 /* lowEnd */
         8: .line 186
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getLowerBoundType:()Lcom/google/common/collect/BoundType;
            astore 4 /* lowType */
         9: .line 187
            goto 15
      StackMap locals: int java.lang.Object com.google.common.collect.BoundType
      StackMap stack:
        10: aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.hasLowerBound:()Z
            ifeq 15
        11: .line 188
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 5 /* cmp */
        start local 5 // int cmp
        12: .line 189
            iload 5 /* cmp */
            iflt 13
            iload 5 /* cmp */
            ifne 15
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getLowerBoundType:()Lcom/google/common/collect/BoundType;
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            if_acmpne 15
        13: .line 190
      StackMap locals: int
      StackMap stack:
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
            astore 3 /* lowEnd */
        14: .line 191
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getLowerBoundType:()Lcom/google/common/collect/BoundType;
            astore 4 /* lowType */
        end local 5 // int cmp
        15: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.hasUpperBound:Z
            istore 5 /* hasUpBound */
        start local 5 // boolean hasUpBound
        16: .line 196
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
            astore 6 /* upEnd */
        start local 6 // java.lang.Object upEnd
        17: .line 197
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperBoundType:()Lcom/google/common/collect/BoundType;
            astore 7 /* upType */
        start local 7 // com.google.common.collect.BoundType upType
        18: .line 198
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.hasUpperBound:()Z
            ifne 23
        19: .line 199
            aload 1 /* other */
            getfield com.google.common.collect.GeneralRange.hasUpperBound:Z
            istore 5 /* hasUpBound */
        20: .line 200
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
            astore 6 /* upEnd */
        21: .line 201
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getUpperBoundType:()Lcom/google/common/collect/BoundType;
            astore 7 /* upType */
        22: .line 202
            goto 28
      StackMap locals: int java.lang.Object com.google.common.collect.BoundType
      StackMap stack:
        23: aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.hasUpperBound:()Z
            ifeq 28
        24: .line 203
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 8 /* cmp */
        start local 8 // int cmp
        25: .line 204
            iload 8 /* cmp */
            ifgt 26
            iload 8 /* cmp */
            ifne 28
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getUpperBoundType:()Lcom/google/common/collect/BoundType;
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            if_acmpne 28
        26: .line 205
      StackMap locals: int
      StackMap stack:
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
            astore 6 /* upEnd */
        27: .line 206
            aload 1 /* other */
            invokevirtual com.google.common.collect.GeneralRange.getUpperBoundType:()Lcom/google/common/collect/BoundType;
            astore 7 /* upType */
        end local 8 // int cmp
        28: .line 210
      StackMap locals:
      StackMap stack:
            iload 2 /* hasLowBound */
            ifeq 34
            iload 5 /* hasUpBound */
            ifeq 34
        29: .line 211
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            aload 3 /* lowEnd */
            aload 6 /* upEnd */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 8 /* cmp */
        start local 8 // int cmp
        30: .line 212
            iload 8 /* cmp */
            ifgt 31
            iload 8 /* cmp */
            ifne 34
            aload 4 /* lowType */
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            if_acmpne 34
            aload 7 /* upType */
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            if_acmpne 34
        31: .line 214
      StackMap locals: int
      StackMap stack:
            aload 6 /* upEnd */
            astore 3 /* lowEnd */
        32: .line 215
            getstatic com.google.common.collect.BoundType.OPEN:Lcom/google/common/collect/BoundType;
            astore 4 /* lowType */
        33: .line 216
            getstatic com.google.common.collect.BoundType.CLOSED:Lcom/google/common/collect/BoundType;
            astore 7 /* upType */
        end local 8 // int cmp
        34: .line 220
      StackMap locals:
      StackMap stack:
            new com.google.common.collect.GeneralRange
            dup
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            iload 2 /* hasLowBound */
            aload 3 /* lowEnd */
            aload 4 /* lowType */
            iload 5 /* hasUpBound */
            aload 6 /* upEnd */
            aload 7 /* upType */
            invokespecial com.google.common.collect.GeneralRange.<init>:(Ljava/util/Comparator;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;)V
            areturn
        end local 7 // com.google.common.collect.BoundType upType
        end local 6 // java.lang.Object upEnd
        end local 5 // boolean hasUpBound
        end local 4 // com.google.common.collect.BoundType lowType
        end local 3 // java.lang.Object lowEnd
        end local 2 // boolean hasLowBound
        end local 1 // com.google.common.collect.GeneralRange other
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0         this  Lcom/google/common/collect/GeneralRange<TT;>;
            0   35     1        other  Lcom/google/common/collect/GeneralRange<TT;>;
            3   35     2  hasLowBound  Z
            4   35     3       lowEnd  TT;
            5   35     4      lowType  Lcom/google/common/collect/BoundType;
           12   15     5          cmp  I
           16   35     5   hasUpBound  Z
           17   35     6        upEnd  TT;
           18   35     7       upType  Lcom/google/common/collect/BoundType;
           25   28     8          cmp  I
           30   34     8          cmp  I
    Signature: (Lcom/google/common/collect/GeneralRange<TT;>;)Lcom/google/common/collect/GeneralRange<TT;>;
    RuntimeVisibleTypeAnnotations: 
      LOCAL_VARIABLE, {start=4, end=35, index=3 /* lowEnd */}
        org.checkerframework.checker.nullness.qual.Nullable()
      LOCAL_VARIABLE, {start=17, end=35, index=6 /* upEnd */}
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
       Name  Flags
      other  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.google.common.collect.GeneralRange this
        start local 1 // java.lang.Object obj
         0: .line 225
            aload 1 /* obj */
            instanceof com.google.common.collect.GeneralRange
            ifeq 11
         1: .line 226
            aload 1 /* obj */
            checkcast com.google.common.collect.GeneralRange
            astore 2 /* r */
        start local 2 // com.google.common.collect.GeneralRange r
         2: .line 227
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            aload 2 /* r */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            invokeinterface java.util.Comparator.equals:(Ljava/lang/Object;)Z
            ifeq 10
         3: .line 228
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.hasLowerBound:Z
            aload 2 /* r */
            getfield com.google.common.collect.GeneralRange.hasLowerBound:Z
            if_icmpne 10
         4: .line 229
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.hasUpperBound:Z
            aload 2 /* r */
            getfield com.google.common.collect.GeneralRange.hasUpperBound:Z
            if_icmpne 10
         5: .line 230
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerBoundType:()Lcom/google/common/collect/BoundType;
            aload 2 /* r */
            invokevirtual com.google.common.collect.GeneralRange.getLowerBoundType:()Lcom/google/common/collect/BoundType;
            invokevirtual com.google.common.collect.BoundType.equals:(Ljava/lang/Object;)Z
            ifeq 10
         6: .line 231
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperBoundType:()Lcom/google/common/collect/BoundType;
            aload 2 /* r */
            invokevirtual com.google.common.collect.GeneralRange.getUpperBoundType:()Lcom/google/common/collect/BoundType;
            invokevirtual com.google.common.collect.BoundType.equals:(Ljava/lang/Object;)Z
            ifeq 10
         7: .line 232
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
            aload 2 /* r */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
            invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 10
         8: .line 233
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
            aload 2 /* r */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
            invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 10
         9: .line 227
            iconst_1
            ireturn
      StackMap locals: com.google.common.collect.GeneralRange
      StackMap stack:
        10: iconst_0
            ireturn
        end local 2 // com.google.common.collect.GeneralRange r
        11: .line 235
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/google/common/collect/GeneralRange<TT;>;
            0   12     1   obj  Ljava/lang/Object;
            2   11     2     r  Lcom/google/common/collect/GeneralRange<*>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 240
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 241
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            aastore
            dup
            iconst_1
         2: .line 242
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
            aastore
            dup
            iconst_2
         3: .line 243
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerBoundType:()Lcom/google/common/collect/BoundType;
            aastore
            dup
            iconst_3
         4: .line 244
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
            aastore
            dup
            iconst_4
         5: .line 245
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperBoundType:()Lcom/google/common/collect/BoundType;
            aastore
         6: .line 240
            invokestatic com.google.common.base.Objects.hashCode:([Ljava/lang/Object;)I
            ireturn
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/google/common/collect/GeneralRange<TT;>;

  com.google.common.collect.GeneralRange<T> reverse();
    descriptor: ()Lcom/google/common/collect/GeneralRange;
    flags: (0x0000) 
    Code:
      stack=9, locals=2, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 252
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.reverse:Lcom/google/common/collect/GeneralRange;
            astore 1 /* result */
        start local 1 // com.google.common.collect.GeneralRange result
         1: .line 253
            aload 1 /* result */
            ifnonnull 14
         2: .line 255
            new com.google.common.collect.GeneralRange
            dup
         3: .line 256
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            invokestatic com.google.common.collect.Ordering.from:(Ljava/util/Comparator;)Lcom/google/common/collect/Ordering;
            invokevirtual com.google.common.collect.Ordering.reverse:()Lcom/google/common/collect/Ordering;
         4: .line 257
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.hasUpperBound:Z
         5: .line 258
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperEndpoint:()Ljava/lang/Object;
         6: .line 259
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getUpperBoundType:()Lcom/google/common/collect/BoundType;
         7: .line 260
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.hasLowerBound:Z
         8: .line 261
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerEndpoint:()Ljava/lang/Object;
         9: .line 262
            aload 0 /* this */
            invokevirtual com.google.common.collect.GeneralRange.getLowerBoundType:()Lcom/google/common/collect/BoundType;
        10: .line 255
            invokespecial com.google.common.collect.GeneralRange.<init>:(Ljava/util/Comparator;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;ZLjava/lang/Object;Lcom/google/common/collect/BoundType;)V
        11: .line 254
            astore 1 /* result */
        12: .line 263
            aload 1 /* result */
            aload 0 /* this */
            putfield com.google.common.collect.GeneralRange.reverse:Lcom/google/common/collect/GeneralRange;
        13: .line 264
            aload 0 /* this */
            aload 1 /* result */
            dup_x1
            putfield com.google.common.collect.GeneralRange.reverse:Lcom/google/common/collect/GeneralRange;
            areturn
        14: .line 266
      StackMap locals: com.google.common.collect.GeneralRange
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // com.google.common.collect.GeneralRange result
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lcom/google/common/collect/GeneralRange<TT;>;
            1   15     1  result  Lcom/google/common/collect/GeneralRange<TT;>;
    Signature: ()Lcom/google/common/collect/GeneralRange<TT;>;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 271
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.comparator:Ljava/util/Comparator;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         1: .line 272
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 273
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.lowerBoundType:Lcom/google/common/collect/BoundType;
            getstatic com.google.common.collect.BoundType.CLOSED:Lcom/google/common/collect/BoundType;
            if_acmpne 3
            bipush 91
            goto 4
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         3: bipush 40
      StackMap locals: com.google.common.collect.GeneralRange
      StackMap stack: java.lang.StringBuilder int
         4: invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         5: .line 274
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.hasLowerBound:Z
            ifeq 6
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.lowerEndpoint:Ljava/lang/Object;
            goto 7
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         6: ldc "-\u221E"
      StackMap locals: com.google.common.collect.GeneralRange
      StackMap stack: java.lang.StringBuilder java.lang.Object
         7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         8: .line 275
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         9: .line 276
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.hasUpperBound:Z
            ifeq 10
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.upperEndpoint:Ljava/lang/Object;
            goto 11
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        10: ldc "\u221E"
      StackMap locals: com.google.common.collect.GeneralRange
      StackMap stack: java.lang.StringBuilder java.lang.Object
        11: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        12: .line 277
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.upperBoundType:Lcom/google/common/collect/BoundType;
            getstatic com.google.common.collect.BoundType.CLOSED:Lcom/google/common/collect/BoundType;
            if_acmpne 13
            bipush 93
            goto 14
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        13: bipush 41
      StackMap locals: com.google.common.collect.GeneralRange
      StackMap stack: java.lang.StringBuilder int
        14: invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        15: .line 271
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lcom/google/common/collect/GeneralRange<TT;>;

  T getLowerEndpoint();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 281
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.lowerEndpoint:Ljava/lang/Object;
            areturn
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/GeneralRange<TT;>;
    Signature: ()TT;

  com.google.common.collect.BoundType getLowerBoundType();
    descriptor: ()Lcom/google/common/collect/BoundType;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 285
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.lowerBoundType:Lcom/google/common/collect/BoundType;
            areturn
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/GeneralRange<TT;>;

  T getUpperEndpoint();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 289
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.upperEndpoint:Ljava/lang/Object;
            areturn
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/GeneralRange<TT;>;
    Signature: ()TT;

  com.google.common.collect.BoundType getUpperBoundType();
    descriptor: ()Lcom/google/common/collect/BoundType;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.GeneralRange this
         0: .line 293
            aload 0 /* this */
            getfield com.google.common.collect.GeneralRange.upperBoundType:Lcom/google/common/collect/BoundType;
            areturn
        end local 0 // com.google.common.collect.GeneralRange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/GeneralRange<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/io/Serializable;
SourceFile: "GeneralRange.java"
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtCompatible(serializable = true)