public final class org.apache.lucene.geo.GeoEncodingUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.lucene.geo.GeoEncodingUtils
  super_class: java.lang.Object
{
  public static final short BITS;
    descriptor: S
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final double LAT_SCALE;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2.3860929422222223E7

  private static final double LAT_DECODE;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4.190951585769653E-8

  private static final double LON_SCALE;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1.1930464711111112E7

  private static final double LON_DECODE;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8.381903171539307E-8

  public static final int MIN_LON_ENCODED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int MAX_LON_ENCODED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 37
            ldc Lorg/apache/lucene/geo/GeoEncodingUtils;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.lucene.geo.GeoEncodingUtils.$assertionsDisabled:Z
         3: .line 46
            ldc -180.0
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.encodeLongitude:(D)I
            putstatic org.apache.lucene.geo.GeoEncodingUtils.MIN_LON_ENCODED:I
         4: .line 47
            ldc 180.0
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.encodeLongitude:(D)I
            putstatic org.apache.lucene.geo.GeoEncodingUtils.MAX_LON_ENCODED:I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.geo.GeoEncodingUtils this
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            return
        end local 0 // org.apache.lucene.geo.GeoEncodingUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/geo/GeoEncodingUtils;

  public static int encodeLatitude(double);
    descriptor: (D)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double latitude
         0: .line 61
            dload 0 /* latitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLatitude:(D)V
         1: .line 63
            dload 0 /* latitude */
            ldc 90.0
            dcmpl
            ifne 3
         2: .line 64
            dload 0 /* latitude */
            invokestatic java.lang.Math.nextDown:(D)D
            dstore 0 /* latitude */
         3: .line 66
      StackMap locals:
      StackMap stack:
            dload 0 /* latitude */
            ldc 4.190951585769653E-8
            ddiv
            invokestatic java.lang.Math.floor:(D)D
            d2i
            ireturn
        end local 0 // double latitude
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  latitude  D
    MethodParameters:
          Name  Flags
      latitude  

  public static int encodeLatitudeCeil(double);
    descriptor: (D)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double latitude
         0: .line 76
            dload 0 /* latitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLatitude:(D)V
         1: .line 78
            dload 0 /* latitude */
            ldc 90.0
            dcmpl
            ifne 3
         2: .line 79
            dload 0 /* latitude */
            invokestatic java.lang.Math.nextDown:(D)D
            dstore 0 /* latitude */
         3: .line 81
      StackMap locals:
      StackMap stack:
            dload 0 /* latitude */
            ldc 4.190951585769653E-8
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            ireturn
        end local 0 // double latitude
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  latitude  D
    MethodParameters:
          Name  Flags
      latitude  

  public static int encodeLongitude(double);
    descriptor: (D)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double longitude
         0: .line 91
            dload 0 /* longitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLongitude:(D)V
         1: .line 93
            dload 0 /* longitude */
            ldc 180.0
            dcmpl
            ifne 3
         2: .line 94
            dload 0 /* longitude */
            invokestatic java.lang.Math.nextDown:(D)D
            dstore 0 /* longitude */
         3: .line 96
      StackMap locals:
      StackMap stack:
            dload 0 /* longitude */
            ldc 8.381903171539307E-8
            ddiv
            invokestatic java.lang.Math.floor:(D)D
            d2i
            ireturn
        end local 0 // double longitude
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  longitude  D
    MethodParameters:
           Name  Flags
      longitude  

  public static int encodeLongitudeCeil(double);
    descriptor: (D)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double longitude
         0: .line 106
            dload 0 /* longitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLongitude:(D)V
         1: .line 108
            dload 0 /* longitude */
            ldc 180.0
            dcmpl
            ifne 3
         2: .line 109
            dload 0 /* longitude */
            invokestatic java.lang.Math.nextDown:(D)D
            dstore 0 /* longitude */
         3: .line 111
      StackMap locals:
      StackMap stack:
            dload 0 /* longitude */
            ldc 8.381903171539307E-8
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            ireturn
        end local 0 // double longitude
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  longitude  D
    MethodParameters:
           Name  Flags
      longitude  

  public static double decodeLatitude(int);
    descriptor: (I)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // int encoded
         0: .line 120
            iload 0 /* encoded */
            i2d
            ldc 4.190951585769653E-8
            dmul
            dstore 1 /* result */
        start local 1 // double result
         1: .line 121
            getstatic org.apache.lucene.geo.GeoEncodingUtils.$assertionsDisabled:Z
            ifne 3
            dload 1 /* result */
            ldc -90.0
            dcmpl
            iflt 2
            dload 1 /* result */
            ldc 90.0
            dcmpg
            iflt 3
      StackMap locals: double
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 122
      StackMap locals:
      StackMap stack:
            dload 1 /* result */
            dreturn
        end local 1 // double result
        end local 0 // int encoded
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  encoded  I
            1    4     1   result  D
    MethodParameters:
         Name  Flags
      encoded  

  public static double decodeLatitude(byte[], int);
    descriptor: ([BI)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // byte[] src
        start local 1 // int offset
         0: .line 132
            aload 0 /* src */
            iload 1 /* offset */
            invokestatic org.apache.lucene.util.NumericUtils.sortableBytesToInt:([BI)I
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.decodeLatitude:(I)D
            dreturn
        end local 1 // int offset
        end local 0 // byte[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0     src  [B
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      src     
      offset  

  public static double decodeLongitude(int);
    descriptor: (I)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // int encoded
         0: .line 141
            iload 0 /* encoded */
            i2d
            ldc 8.381903171539307E-8
            dmul
            dstore 1 /* result */
        start local 1 // double result
         1: .line 142
            getstatic org.apache.lucene.geo.GeoEncodingUtils.$assertionsDisabled:Z
            ifne 3
            dload 1 /* result */
            ldc -180.0
            dcmpl
            iflt 2
            dload 1 /* result */
            ldc 180.0
            dcmpg
            iflt 3
      StackMap locals: double
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 143
      StackMap locals:
      StackMap stack:
            dload 1 /* result */
            dreturn
        end local 1 // double result
        end local 0 // int encoded
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  encoded  I
            1    4     1   result  D
    MethodParameters:
         Name  Flags
      encoded  

  public static double decodeLongitude(byte[], int);
    descriptor: ([BI)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // byte[] src
        start local 1 // int offset
         0: .line 153
            aload 0 /* src */
            iload 1 /* offset */
            invokestatic org.apache.lucene.util.NumericUtils.sortableBytesToInt:([BI)I
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.decodeLongitude:(I)D
            dreturn
        end local 1 // int offset
        end local 0 // byte[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0     src  [B
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      src     
      offset  

  public static org.apache.lucene.geo.GeoEncodingUtils$DistancePredicate createDistancePredicate(double, double, double);
    descriptor: (DDD)Lorg/apache/lucene/geo/GeoEncodingUtils$DistancePredicate;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=15, locals=13, args_size=3
        start local 0 // double lat
        start local 2 // double lon
        start local 4 // double radiusMeters
         0: .line 166
            dload 0 /* lat */
            dload 2 /* lon */
            dload 4 /* radiusMeters */
            invokestatic org.apache.lucene.geo.Rectangle.fromPointDistance:(DDD)Lorg/apache/lucene/geo/Rectangle;
            astore 6 /* boundingBox */
        start local 6 // org.apache.lucene.geo.Rectangle boundingBox
         1: .line 167
            dload 0 /* lat */
            dload 4 /* radiusMeters */
            invokestatic org.apache.lucene.geo.Rectangle.axisLat:(DD)D
            dstore 7 /* axisLat */
        start local 7 // double axisLat
         2: .line 168
            dload 4 /* radiusMeters */
            invokestatic org.apache.lucene.geo.GeoUtils.distanceQuerySortKey:(D)D
            dstore 9 /* distanceSortKey */
        start local 9 // double distanceSortKey
         3: .line 169
            dload 0 /* lat */
            dload 2 /* lon */
            dload 9 /* distanceSortKey */
            dload 7 /* axisLat */
            invokedynamic apply(DDDD)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/lucene/geo/GeoEncodingUtils.lambda$0(DDDDLorg/apache/lucene/geo/Rectangle;)Lorg/apache/lucene/index/PointValues$Relation; (6)
                  (Lorg/apache/lucene/geo/Rectangle;)Lorg/apache/lucene/index/PointValues$Relation;
            astore 11 /* boxToRelation */
        start local 11 // java.util.function.Function boxToRelation
         4: .line 171
            aload 6 /* boundingBox */
            aload 11 /* boxToRelation */
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.createSubBoxes:(Lorg/apache/lucene/geo/Rectangle;Ljava/util/function/Function;)Lorg/apache/lucene/geo/GeoEncodingUtils$Grid;
            astore 12 /* subBoxes */
        start local 12 // org.apache.lucene.geo.GeoEncodingUtils$Grid subBoxes
         5: .line 173
            new org.apache.lucene.geo.GeoEncodingUtils$DistancePredicate
            dup
         6: .line 174
            aload 12 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.latShift:I
            aload 12 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.lonShift:I
         7: .line 175
            aload 12 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.latBase:I
            aload 12 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.lonBase:I
         8: .line 176
            aload 12 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.maxLatDelta:I
            aload 12 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.maxLonDelta:I
         9: .line 177
            aload 12 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.relations:[B
        10: .line 178
            dload 0 /* lat */
            dload 2 /* lon */
            dload 9 /* distanceSortKey */
        11: .line 173
            invokespecial org.apache.lucene.geo.GeoEncodingUtils$DistancePredicate.<init>:(IIIIII[BDDD)V
            areturn
        end local 12 // org.apache.lucene.geo.GeoEncodingUtils$Grid subBoxes
        end local 11 // java.util.function.Function boxToRelation
        end local 9 // double distanceSortKey
        end local 7 // double axisLat
        end local 6 // org.apache.lucene.geo.Rectangle boundingBox
        end local 4 // double radiusMeters
        end local 2 // double lon
        end local 0 // double lat
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0              lat  D
            0   12     2              lon  D
            0   12     4     radiusMeters  D
            1   12     6      boundingBox  Lorg/apache/lucene/geo/Rectangle;
            2   12     7          axisLat  D
            3   12     9  distanceSortKey  D
            4   12    11    boxToRelation  Ljava/util/function/Function<Lorg/apache/lucene/geo/Rectangle;Lorg/apache/lucene/index/PointValues$Relation;>;
            5   12    12         subBoxes  Lorg/apache/lucene/geo/GeoEncodingUtils$Grid;
    MethodParameters:
              Name  Flags
      lat           
      lon           
      radiusMeters  

  public static org.apache.lucene.geo.GeoEncodingUtils$PolygonPredicate createComponentPredicate(org.apache.lucene.geo.Component2D);
    descriptor: (Lorg/apache/lucene/geo/Component2D;)Lorg/apache/lucene/geo/GeoEncodingUtils$PolygonPredicate;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=4, args_size=1
        start local 0 // org.apache.lucene.geo.Component2D tree
         0: .line 185
            new org.apache.lucene.geo.Rectangle
            dup
            aload 0 /* tree */
            invokeinterface org.apache.lucene.geo.Component2D.getMinY:()D
            aload 0 /* tree */
            invokeinterface org.apache.lucene.geo.Component2D.getMaxY:()D
            aload 0 /* tree */
            invokeinterface org.apache.lucene.geo.Component2D.getMinX:()D
            aload 0 /* tree */
            invokeinterface org.apache.lucene.geo.Component2D.getMaxX:()D
            invokespecial org.apache.lucene.geo.Rectangle.<init>:(DDDD)V
            astore 1 /* boundingBox */
        start local 1 // org.apache.lucene.geo.Rectangle boundingBox
         1: .line 186
            aload 0 /* tree */
            invokedynamic apply(Lorg/apache/lucene/geo/Component2D;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/lucene/geo/GeoEncodingUtils.lambda$1(Lorg/apache/lucene/geo/Component2D;Lorg/apache/lucene/geo/Rectangle;)Lorg/apache/lucene/index/PointValues$Relation; (6)
                  (Lorg/apache/lucene/geo/Rectangle;)Lorg/apache/lucene/index/PointValues$Relation;
            astore 2 /* boxToRelation */
        start local 2 // java.util.function.Function boxToRelation
         2: .line 188
            aload 1 /* boundingBox */
            aload 2 /* boxToRelation */
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.createSubBoxes:(Lorg/apache/lucene/geo/Rectangle;Ljava/util/function/Function;)Lorg/apache/lucene/geo/GeoEncodingUtils$Grid;
            astore 3 /* subBoxes */
        start local 3 // org.apache.lucene.geo.GeoEncodingUtils$Grid subBoxes
         3: .line 190
            new org.apache.lucene.geo.GeoEncodingUtils$PolygonPredicate
            dup
         4: .line 191
            aload 3 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.latShift:I
            aload 3 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.lonShift:I
         5: .line 192
            aload 3 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.latBase:I
            aload 3 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.lonBase:I
         6: .line 193
            aload 3 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.maxLatDelta:I
            aload 3 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.maxLonDelta:I
         7: .line 194
            aload 3 /* subBoxes */
            getfield org.apache.lucene.geo.GeoEncodingUtils$Grid.relations:[B
         8: .line 195
            aload 0 /* tree */
         9: .line 190
            invokespecial org.apache.lucene.geo.GeoEncodingUtils$PolygonPredicate.<init>:(IIIIII[BLorg/apache/lucene/geo/Component2D;)V
            areturn
        end local 3 // org.apache.lucene.geo.GeoEncodingUtils$Grid subBoxes
        end local 2 // java.util.function.Function boxToRelation
        end local 1 // org.apache.lucene.geo.Rectangle boundingBox
        end local 0 // org.apache.lucene.geo.Component2D tree
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           tree  Lorg/apache/lucene/geo/Component2D;
            1   10     1    boundingBox  Lorg/apache/lucene/geo/Rectangle;
            2   10     2  boxToRelation  Ljava/util/function/Function<Lorg/apache/lucene/geo/Rectangle;Lorg/apache/lucene/index/PointValues$Relation;>;
            3   10     3       subBoxes  Lorg/apache/lucene/geo/GeoEncodingUtils$Grid;
    MethodParameters:
      Name  Flags
      tree  

  private static org.apache.lucene.geo.GeoEncodingUtils$Grid createSubBoxes(org.apache.lucene.geo.Rectangle, java.util.function.Function<org.apache.lucene.geo.Rectangle, org.apache.lucene.index.PointValues$Relation>);
    descriptor: (Lorg/apache/lucene/geo/Rectangle;Ljava/util/function/Function;)Lorg/apache/lucene/geo/GeoEncodingUtils$Grid;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=13, locals=19, args_size=2
        start local 0 // org.apache.lucene.geo.Rectangle boundingBox
        start local 1 // java.util.function.Function boxToRelation
         0: .line 199
            aload 0 /* boundingBox */
            getfield org.apache.lucene.geo.Rectangle.minLat:D
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.encodeLatitudeCeil:(D)I
            istore 2 /* minLat */
        start local 2 // int minLat
         1: .line 200
            aload 0 /* boundingBox */
            getfield org.apache.lucene.geo.Rectangle.maxLat:D
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.encodeLatitude:(D)I
            istore 3 /* maxLat */
        start local 3 // int maxLat
         2: .line 201
            aload 0 /* boundingBox */
            getfield org.apache.lucene.geo.Rectangle.minLon:D
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.encodeLongitudeCeil:(D)I
            istore 4 /* minLon */
        start local 4 // int minLon
         3: .line 202
            aload 0 /* boundingBox */
            getfield org.apache.lucene.geo.Rectangle.maxLon:D
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.encodeLongitude:(D)I
            istore 5 /* maxLon */
        start local 5 // int maxLon
         4: .line 204
            iload 3 /* maxLat */
            iload 2 /* minLat */
            if_icmplt 5
            aload 0 /* boundingBox */
            invokevirtual org.apache.lucene.geo.Rectangle.crossesDateline:()Z
            ifne 6
            iload 5 /* maxLon */
            iload 4 /* minLon */
            if_icmpge 6
         5: .line 206
      StackMap locals: org.apache.lucene.geo.Rectangle java.util.function.Function int int int int
      StackMap stack:
            new org.apache.lucene.geo.GeoEncodingUtils$Grid
            dup
            iconst_1
            iconst_1
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            newarray 8
            invokespecial org.apache.lucene.geo.GeoEncodingUtils$Grid.<init>:(IIIIII[B)V
            areturn
         6: .line 213
      StackMap locals:
      StackMap stack:
            iload 2 /* minLat */
            i2l
            ldc -2147483648
            lsub
            lstore 12 /* minLat2 */
        start local 12 // long minLat2
         7: .line 214
            iload 3 /* maxLat */
            i2l
            ldc -2147483648
            lsub
            lstore 14 /* maxLat2 */
        start local 14 // long maxLat2
         8: .line 215
            lload 12 /* minLat2 */
            lload 14 /* maxLat2 */
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.computeShift:(JJ)I
            istore 6 /* latShift */
        start local 6 // int latShift
         9: .line 216
            lload 12 /* minLat2 */
            iload 6 /* latShift */
            lushr
            l2i
            istore 8 /* latBase */
        start local 8 // int latBase
        10: .line 217
            lload 14 /* maxLat2 */
            iload 6 /* latShift */
            lushr
            l2i
            iload 8 /* latBase */
            isub
            iconst_1
            iadd
            istore 10 /* maxLatDelta */
        start local 10 // int maxLatDelta
        11: .line 218
            getstatic org.apache.lucene.geo.GeoEncodingUtils.$assertionsDisabled:Z
            ifne 12
            iload 10 /* maxLatDelta */
            ifgt 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 14 // long maxLat2
        end local 12 // long minLat2
        12: .line 221
      StackMap locals: org.apache.lucene.geo.Rectangle java.util.function.Function int int int int int top int top int
      StackMap stack:
            iload 4 /* minLon */
            i2l
            ldc -2147483648
            lsub
            lstore 12 /* minLon2 */
        start local 12 // long minLon2
        13: .line 222
            iload 5 /* maxLon */
            i2l
            ldc -2147483648
            lsub
            lstore 14 /* maxLon2 */
        start local 14 // long maxLon2
        14: .line 223
            aload 0 /* boundingBox */
            invokevirtual org.apache.lucene.geo.Rectangle.crossesDateline:()Z
            ifeq 16
        15: .line 224
            lload 14 /* maxLon2 */
            ldc 4294967296
            ladd
            lstore 14 /* maxLon2 */
        16: .line 226
      StackMap locals: org.apache.lucene.geo.Rectangle java.util.function.Function int int int int int top int top int top long long
      StackMap stack:
            lload 12 /* minLon2 */
            lload 14 /* maxLon2 */
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.computeShift:(JJ)I
            istore 7 /* lonShift */
        start local 7 // int lonShift
        17: .line 227
            lload 12 /* minLon2 */
            iload 7 /* lonShift */
            lushr
            l2i
            istore 9 /* lonBase */
        start local 9 // int lonBase
        18: .line 228
            lload 14 /* maxLon2 */
            iload 7 /* lonShift */
            lushr
            l2i
            iload 9 /* lonBase */
            isub
            iconst_1
            iadd
            istore 11 /* maxLonDelta */
        start local 11 // int maxLonDelta
        19: .line 229
            getstatic org.apache.lucene.geo.GeoEncodingUtils.$assertionsDisabled:Z
            ifne 20
            iload 11 /* maxLonDelta */
            ifgt 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 14 // long maxLon2
        end local 12 // long minLon2
        20: .line 232
      StackMap locals: org.apache.lucene.geo.Rectangle java.util.function.Function int int int int int int int int int int
      StackMap stack:
            iload 10 /* maxLatDelta */
            iload 11 /* maxLonDelta */
            imul
            newarray 8
            astore 12 /* relations */
        start local 12 // byte[] relations
        21: .line 233
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        22: goto 38
        23: .line 234
      StackMap locals: byte[] int
      StackMap stack:
            iconst_0
            istore 14 /* j */
        start local 14 // int j
        24: goto 36
        25: .line 235
      StackMap locals: int
      StackMap stack:
            iload 8 /* latBase */
            iload 13 /* i */
            iadd
            iload 6 /* latShift */
            ishl
            ldc -2147483648
            iadd
            istore 15 /* boxMinLat */
        start local 15 // int boxMinLat
        26: .line 236
            iload 9 /* lonBase */
            iload 14 /* j */
            iadd
            iload 7 /* lonShift */
            ishl
            ldc -2147483648
            iadd
            istore 16 /* boxMinLon */
        start local 16 // int boxMinLon
        27: .line 237
            iload 15 /* boxMinLat */
            iconst_1
            iload 6 /* latShift */
            ishl
            iadd
            iconst_1
            isub
            istore 17 /* boxMaxLat */
        start local 17 // int boxMaxLat
        28: .line 238
            iload 16 /* boxMinLon */
            iconst_1
            iload 7 /* lonShift */
            ishl
            iadd
            iconst_1
            isub
            istore 18 /* boxMaxLon */
        start local 18 // int boxMaxLon
        29: .line 240
            aload 12 /* relations */
            iload 13 /* i */
            iload 11 /* maxLonDelta */
            imul
            iload 14 /* j */
            iadd
            aload 1 /* boxToRelation */
            new org.apache.lucene.geo.Rectangle
            dup
        30: .line 241
            iload 15 /* boxMinLat */
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.decodeLatitude:(I)D
            iload 17 /* boxMaxLat */
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.decodeLatitude:(I)D
        31: .line 242
            iload 16 /* boxMinLon */
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.decodeLongitude:(I)D
            iload 18 /* boxMaxLon */
            invokestatic org.apache.lucene.geo.GeoEncodingUtils.decodeLongitude:(I)D
            invokespecial org.apache.lucene.geo.Rectangle.<init>:(DDDD)V
        32: .line 240
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.lucene.index.PointValues$Relation
        33: .line 243
            invokevirtual org.apache.lucene.index.PointValues$Relation.ordinal:()I
            i2b
        34: .line 240
            bastore
        end local 18 // int boxMaxLon
        end local 17 // int boxMaxLat
        end local 16 // int boxMinLon
        end local 15 // int boxMinLat
        35: .line 234
            iinc 14 /* j */ 1
      StackMap locals:
      StackMap stack:
        36: iload 14 /* j */
            iload 11 /* maxLonDelta */
            if_icmplt 25
        end local 14 // int j
        37: .line 233
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 13 /* i */
            iload 10 /* maxLatDelta */
            if_icmplt 23
        end local 13 // int i
        39: .line 247
            new org.apache.lucene.geo.GeoEncodingUtils$Grid
            dup
        40: .line 248
            iload 6 /* latShift */
            iload 7 /* lonShift */
        41: .line 249
            iload 8 /* latBase */
            iload 9 /* lonBase */
        42: .line 250
            iload 10 /* maxLatDelta */
            iload 11 /* maxLonDelta */
        43: .line 251
            aload 12 /* relations */
        44: .line 247
            invokespecial org.apache.lucene.geo.GeoEncodingUtils$Grid.<init>:(IIIIII[B)V
            areturn
        end local 12 // byte[] relations
        end local 11 // int maxLonDelta
        end local 10 // int maxLatDelta
        end local 9 // int lonBase
        end local 8 // int latBase
        end local 7 // int lonShift
        end local 6 // int latShift
        end local 5 // int maxLon
        end local 4 // int minLon
        end local 3 // int maxLat
        end local 2 // int minLat
        end local 1 // java.util.function.Function boxToRelation
        end local 0 // org.apache.lucene.geo.Rectangle boundingBox
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   45     0    boundingBox  Lorg/apache/lucene/geo/Rectangle;
            0   45     1  boxToRelation  Ljava/util/function/Function<Lorg/apache/lucene/geo/Rectangle;Lorg/apache/lucene/index/PointValues$Relation;>;
            1   45     2         minLat  I
            2   45     3         maxLat  I
            3   45     4         minLon  I
            4   45     5         maxLon  I
            9   45     6       latShift  I
           17   45     7       lonShift  I
           10   45     8        latBase  I
           18   45     9        lonBase  I
           11   45    10    maxLatDelta  I
           19   45    11    maxLonDelta  I
            7   12    12        minLat2  J
            8   12    14        maxLat2  J
           13   20    12        minLon2  J
           14   20    14        maxLon2  J
           21   45    12      relations  [B
           22   39    13              i  I
           24   37    14              j  I
           26   35    15      boxMinLat  I
           27   35    16      boxMinLon  I
           28   35    17      boxMaxLat  I
           29   35    18      boxMaxLon  I
    Signature: (Lorg/apache/lucene/geo/Rectangle;Ljava/util/function/Function<Lorg/apache/lucene/geo/Rectangle;Lorg/apache/lucene/index/PointValues$Relation;>;)Lorg/apache/lucene/geo/GeoEncodingUtils$Grid;
    MethodParameters:
               Name  Flags
      boundingBox    
      boxToRelation  

  private static int computeShift(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // long a
        start local 2 // long b
         0: .line 257
            getstatic org.apache.lucene.geo.GeoEncodingUtils.$assertionsDisabled:Z
            ifne 1
            lload 0 /* a */
            lload 2 /* b */
            lcmp
            ifle 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 262
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* shift */
        start local 4 // int shift
         2: .line 263
      StackMap locals: int
      StackMap stack:
            lload 2 /* b */
            iload 4 /* shift */
            lushr
            lload 0 /* a */
            iload 4 /* shift */
            lushr
            lsub
            lstore 5 /* delta */
        start local 5 // long delta
         3: .line 264
            lload 5 /* delta */
            lconst_0
            lcmp
            iflt 5
            lload 5 /* delta */
            ldc 64
            lcmp
            ifge 5
         4: .line 265
            iload 4 /* shift */
            ireturn
        end local 5 // long delta
         5: .line 262
      StackMap locals:
      StackMap stack:
            iinc 4 /* shift */ 1
            goto 2
        end local 4 // int shift
        end local 2 // long b
        end local 0 // long a
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0      a  J
            0    6     2      b  J
            2    6     4  shift  I
            3    5     5  delta  J
    MethodParameters:
      Name  Flags
      a     
      b     

  private static org.apache.lucene.index.PointValues$Relation lambda$0(double, double, double, double, org.apache.lucene.geo.Rectangle);
    descriptor: (DDDDLorg/apache/lucene/geo/Rectangle;)Lorg/apache/lucene/index/PointValues$Relation;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=16, locals=9, args_size=5
        start local 8 // org.apache.lucene.geo.Rectangle box
         0: .line 170
            aload 8 /* box */
            getfield org.apache.lucene.geo.Rectangle.minLat:D
            aload 8 /* box */
            getfield org.apache.lucene.geo.Rectangle.maxLat:D
            aload 8 /* box */
            getfield org.apache.lucene.geo.Rectangle.minLon:D
            aload 8 /* box */
            getfield org.apache.lucene.geo.Rectangle.maxLon:D
            dload 0
            dload 2
            dload 4
            dload 6
         1: .line 169
            invokestatic org.apache.lucene.geo.GeoUtils.relate:(DDDDDDDD)Lorg/apache/lucene/index/PointValues$Relation;
         2: .line 170
            areturn
        end local 8 // org.apache.lucene.geo.Rectangle box
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     8   box  Lorg/apache/lucene/geo/Rectangle;

  private static org.apache.lucene.index.PointValues$Relation lambda$1(org.apache.lucene.geo.Component2D, org.apache.lucene.geo.Rectangle);
    descriptor: (Lorg/apache/lucene/geo/Component2D;Lorg/apache/lucene/geo/Rectangle;)Lorg/apache/lucene/index/PointValues$Relation;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=9, locals=2, args_size=2
        start local 1 // org.apache.lucene.geo.Rectangle box
         0: .line 186
            aload 0
         1: .line 187
            aload 1 /* box */
            getfield org.apache.lucene.geo.Rectangle.minLon:D
            aload 1 /* box */
            getfield org.apache.lucene.geo.Rectangle.maxLon:D
            aload 1 /* box */
            getfield org.apache.lucene.geo.Rectangle.minLat:D
            aload 1 /* box */
            getfield org.apache.lucene.geo.Rectangle.maxLat:D
         2: .line 186
            invokeinterface org.apache.lucene.geo.Component2D.relate:(DDDD)Lorg/apache/lucene/index/PointValues$Relation;
         3: .line 187
            areturn
        end local 1 // org.apache.lucene.geo.Rectangle box
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1   box  Lorg/apache/lucene/geo/Rectangle;
}
SourceFile: "GeoEncodingUtils.java"
NestMembers:
  org.apache.lucene.geo.GeoEncodingUtils$DistancePredicate  org.apache.lucene.geo.GeoEncodingUtils$Grid  org.apache.lucene.geo.GeoEncodingUtils$PolygonPredicate
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public DistancePredicate = org.apache.lucene.geo.GeoEncodingUtils$DistancePredicate of org.apache.lucene.geo.GeoEncodingUtils
  private Grid = org.apache.lucene.geo.GeoEncodingUtils$Grid of org.apache.lucene.geo.GeoEncodingUtils
  public PolygonPredicate = org.apache.lucene.geo.GeoEncodingUtils$PolygonPredicate of org.apache.lucene.geo.GeoEncodingUtils
  public final Relation = org.apache.lucene.index.PointValues$Relation of org.apache.lucene.index.PointValues