public abstract class org.apache.tomcat.util.codec.binary.BaseNCodec
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.tomcat.util.codec.binary.BaseNCodec
  super_class: java.lang.Object
{
  protected static final org.apache.tomcat.util.res.StringManager sm;
    descriptor: Lorg/apache/tomcat/util/res/StringManager;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  static final int EOF;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -1

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

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

  private static final int DEFAULT_BUFFER_RESIZE_FACTOR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int DEFAULT_BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  private static final int MAX_BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2147483639

  protected static final int MASK_8BITS;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 255

  protected static final byte PAD_DEFAULT;
    descriptor: B
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 61

  static final byte[] CHUNK_SEPARATOR;
    descriptor: [B
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  protected final byte pad;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final int unencodedBlockSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int encodedBlockSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final int lineLength;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final int chunkSeparatorLength;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 31
            ldc Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
            putstatic org.apache.tomcat.util.codec.binary.BaseNCodec.sm:Lorg/apache/tomcat/util/res/StringManager;
         1: .line 162
            iconst_2
            newarray 8
            dup
            iconst_0
            bipush 13
            bastore
            dup
            iconst_1
            bipush 10
            bastore
            putstatic org.apache.tomcat.util.codec.binary.BaseNCodec.CHUNK_SEPARATOR:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int compareUnsigned(int, int);
    descriptor: (II)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 178
            iload 0 /* x */
            ldc -2147483648
            iadd
            iload 1 /* y */
            ldc -2147483648
            iadd
            invokestatic java.lang.Integer.compare:(II)I
            ireturn
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  I
            0    1     1     y  I
    MethodParameters:
      Name  Flags
      x     final
      y     final

  private static int createPositiveCapacity(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // int minCapacity
         0: .line 191
            iload 0 /* minCapacity */
            ifge 2
         1: .line 193
            new java.lang.OutOfMemoryError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to allocate array size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* minCapacity */
            i2l
            ldc 4294967295
            land
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.OutOfMemoryError.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 203
      StackMap locals:
      StackMap stack:
            iload 0 /* minCapacity */
            ldc 2147483639
            if_icmple 4
         3: .line 204
            iload 0 /* minCapacity */
            goto 5
         4: .line 205
      StackMap locals:
      StackMap stack:
            ldc 2147483639
         5: .line 203
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // int minCapacity
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0  minCapacity  I
    MethodParameters:
             Name  Flags
      minCapacity  final

  public static byte[] getChunkSeparator();
    descriptor: ()[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 216
            getstatic org.apache.tomcat.util.codec.binary.BaseNCodec.CHUNK_SEPARATOR:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected static boolean isWhiteSpace(byte);
    descriptor: (B)Z
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // byte byteToCheck
         0: .line 227
            iload 0 /* byteToCheck */
            lookupswitch { // 4
                    9: 1
                   10: 1
                   13: 1
                   32: 1
              default: 2
          }
         1: .line 232
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 234
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // byte byteToCheck
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  byteToCheck  B
    MethodParameters:
             Name  Flags
      byteToCheck  final

  private static byte[] resizeBuffer(org.apache.tomcat.util.codec.binary.BaseNCodec$Context, int);
    descriptor: (Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;I)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
        start local 1 // int minCapacity
         0: .line 247
            aload 0 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
            arraylength
            istore 2 /* oldCapacity */
        start local 2 // int oldCapacity
         1: .line 248
            iload 2 /* oldCapacity */
            iconst_2
            imul
            istore 3 /* newCapacity */
        start local 3 // int newCapacity
         2: .line 249
            iload 3 /* newCapacity */
            iload 1 /* minCapacity */
            invokestatic org.apache.tomcat.util.codec.binary.BaseNCodec.compareUnsigned:(II)I
            ifge 4
         3: .line 250
            iload 1 /* minCapacity */
            istore 3 /* newCapacity */
         4: .line 252
      StackMap locals: int int
      StackMap stack:
            iload 3 /* newCapacity */
            ldc 2147483639
            invokestatic org.apache.tomcat.util.codec.binary.BaseNCodec.compareUnsigned:(II)I
            ifle 6
         5: .line 253
            iload 1 /* minCapacity */
            invokestatic org.apache.tomcat.util.codec.binary.BaseNCodec.createPositiveCapacity:(I)I
            istore 3 /* newCapacity */
         6: .line 256
      StackMap locals:
      StackMap stack:
            iload 3 /* newCapacity */
            newarray 8
            astore 4 /* b */
        start local 4 // byte[] b
         7: .line 257
            aload 0 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
            iconst_0
            aload 4 /* b */
            iconst_0
            aload 0 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 258
            aload 0 /* context */
            aload 4 /* b */
            putfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
         9: .line 259
            aload 4 /* b */
            areturn
        end local 4 // byte[] b
        end local 3 // int newCapacity
        end local 2 // int oldCapacity
        end local 1 // int minCapacity
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0      context  Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;
            0   10     1  minCapacity  I
            1   10     2  oldCapacity  I
            2   10     3  newCapacity  I
            7   10     4            b  [B
    MethodParameters:
             Name  Flags
      context      final
      minCapacity  final

  protected void <init>(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // int unencodedBlockSize
        start local 2 // int encodedBlockSize
        start local 3 // int lineLength
        start local 4 // int chunkSeparatorLength
         0: .line 292
            aload 0 /* this */
            iload 1 /* unencodedBlockSize */
            iload 2 /* encodedBlockSize */
            iload 3 /* lineLength */
            iload 4 /* chunkSeparatorLength */
            bipush 61
            invokespecial org.apache.tomcat.util.codec.binary.BaseNCodec.<init>:(IIIIB)V
         1: .line 293
            return
        end local 4 // int chunkSeparatorLength
        end local 3 // int lineLength
        end local 2 // int encodedBlockSize
        end local 1 // int unencodedBlockSize
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    2     1    unencodedBlockSize  I
            0    2     2      encodedBlockSize  I
            0    2     3            lineLength  I
            0    2     4  chunkSeparatorLength  I
    MethodParameters:
                      Name  Flags
      unencodedBlockSize    final
      encodedBlockSize      final
      lineLength            final
      chunkSeparatorLength  final

  protected void <init>(int, int, int, int, byte);
    descriptor: (IIIIB)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=6
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // int unencodedBlockSize
        start local 2 // int encodedBlockSize
        start local 3 // int lineLength
        start local 4 // int chunkSeparatorLength
        start local 5 // byte pad
         0: .line 304
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 306
            aload 0 /* this */
            iload 1 /* unencodedBlockSize */
            putfield org.apache.tomcat.util.codec.binary.BaseNCodec.unencodedBlockSize:I
         2: .line 307
            aload 0 /* this */
            iload 2 /* encodedBlockSize */
            putfield org.apache.tomcat.util.codec.binary.BaseNCodec.encodedBlockSize:I
         3: .line 308
            iload 3 /* lineLength */
            ifle 4
            iload 4 /* chunkSeparatorLength */
            ifle 4
            iconst_1
            goto 5
      StackMap locals: org.apache.tomcat.util.codec.binary.BaseNCodec int int int int int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* useChunking */
        start local 6 // boolean useChunking
         6: .line 309
            aload 0 /* this */
            iload 6 /* useChunking */
            ifeq 7
            iload 3 /* lineLength */
            iload 2 /* encodedBlockSize */
            idiv
            iload 2 /* encodedBlockSize */
            imul
            goto 8
      StackMap locals: org.apache.tomcat.util.codec.binary.BaseNCodec int int int int int int
      StackMap stack: org.apache.tomcat.util.codec.binary.BaseNCodec
         7: iconst_0
      StackMap locals: org.apache.tomcat.util.codec.binary.BaseNCodec int int int int int int
      StackMap stack: org.apache.tomcat.util.codec.binary.BaseNCodec int
         8: putfield org.apache.tomcat.util.codec.binary.BaseNCodec.lineLength:I
         9: .line 310
            aload 0 /* this */
            iload 4 /* chunkSeparatorLength */
            putfield org.apache.tomcat.util.codec.binary.BaseNCodec.chunkSeparatorLength:I
        10: .line 311
            aload 0 /* this */
            iload 5 /* pad */
            putfield org.apache.tomcat.util.codec.binary.BaseNCodec.pad:B
        11: .line 312
            return
        end local 6 // boolean useChunking
        end local 5 // byte pad
        end local 4 // int chunkSeparatorLength
        end local 3 // int lineLength
        end local 2 // int encodedBlockSize
        end local 1 // int unencodedBlockSize
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   12     0                  this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0   12     1    unencodedBlockSize  I
            0   12     2      encodedBlockSize  I
            0   12     3            lineLength  I
            0   12     4  chunkSeparatorLength  I
            0   12     5                   pad  B
            6   12     6           useChunking  Z
    MethodParameters:
                      Name  Flags
      unencodedBlockSize    final
      encodedBlockSize      final
      lineLength            final
      chunkSeparatorLength  final
      pad                   final

  int available(org.apache.tomcat.util.codec.binary.BaseNCodec$Context);
    descriptor: (Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)I
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
         0: .line 321
            aload 1 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
            ifnull 1
            aload 1 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.pos:I
            aload 1 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.readPos:I
            isub
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    3     1  context  Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;
    MethodParameters:
         Name  Flags
      context  final

  protected boolean containsAlphabetOrPad(byte[]);
    descriptor: ([B)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // byte[] arrayOctet
         0: .line 334
            aload 1 /* arrayOctet */
            ifnonnull 2
         1: .line 335
            iconst_0
            ireturn
         2: .line 337
      StackMap locals:
      StackMap stack:
            aload 1 /* arrayOctet */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 7
      StackMap locals: org.apache.tomcat.util.codec.binary.BaseNCodec byte[] top int int byte[]
      StackMap stack:
         3: aload 5
            iload 3
            baload
            istore 2 /* element */
        start local 2 // byte element
         4: .line 338
            aload 0 /* this */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec.pad:B
            iload 2 /* element */
            if_icmpeq 5
            aload 0 /* this */
            iload 2 /* element */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.isInAlphabet:(B)Z
            ifeq 6
         5: .line 339
      StackMap locals: org.apache.tomcat.util.codec.binary.BaseNCodec byte[] int int int byte[]
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // byte element
         6: .line 337
      StackMap locals: org.apache.tomcat.util.codec.binary.BaseNCodec byte[] top int int byte[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 3
         8: .line 342
            iconst_0
            ireturn
        end local 1 // byte[] arrayOctet
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    9     1  arrayOctet  [B
            4    6     2     element  B
    MethodParameters:
            Name  Flags
      arrayOctet  final

  public byte[] decode(byte[]);
    descriptor: ([B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // byte[] pArray
         0: .line 353
            aload 0 /* this */
            aload 1 /* pArray */
            iconst_0
            aload 1 /* pArray */
            arraylength
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.decode:([BII)[B
            areturn
        end local 1 // byte[] pArray
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    1     1  pArray  [B
    MethodParameters:
        Name  Flags
      pArray  final

  public byte[] decode(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // byte[] pArray
        start local 2 // int off
        start local 3 // int len
         0: .line 357
            aload 1 /* pArray */
            ifnull 1
            iload 3 /* len */
            ifne 2
         1: .line 358
      StackMap locals:
      StackMap stack:
            iconst_0
            newarray 8
            areturn
         2: .line 360
      StackMap locals:
      StackMap stack:
            new org.apache.tomcat.util.codec.binary.BaseNCodec$Context
            dup
            invokespecial org.apache.tomcat.util.codec.binary.BaseNCodec$Context.<init>:()V
            astore 4 /* context */
        start local 4 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
         3: .line 361
            aload 0 /* this */
            aload 1 /* pArray */
            iload 2 /* off */
            iload 3 /* len */
            aload 4 /* context */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.decode:([BIILorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)V
         4: .line 362
            aload 0 /* this */
            aload 1 /* pArray */
            iload 2 /* off */
            iconst_m1
            aload 4 /* context */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.decode:([BIILorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)V
         5: .line 363
            aload 4 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.pos:I
            newarray 8
            astore 5 /* result */
        start local 5 // byte[] result
         6: .line 364
            aload 0 /* this */
            aload 5 /* result */
            iconst_0
            aload 5 /* result */
            arraylength
            aload 4 /* context */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.readResults:([BIILorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)I
            pop
         7: .line 365
            aload 5 /* result */
            areturn
        end local 5 // byte[] result
        end local 4 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] pArray
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    8     1   pArray  [B
            0    8     2      off  I
            0    8     3      len  I
            3    8     4  context  Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;
            6    8     5   result  [B
    MethodParameters:
        Name  Flags
      pArray  final
      off     final
      len     final

  abstract void decode(byte[], int, int, org.apache.tomcat.util.codec.binary.BaseNCodec$Context);
    descriptor: ([BIILorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)V
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      pArray   
      i        
      length   
      context  

  public byte[] decode(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // java.lang.String pArray
         0: .line 379
            aload 0 /* this */
            aload 1 /* pArray */
            invokestatic org.apache.tomcat.util.codec.binary.StringUtils.getBytesUtf8:(Ljava/lang/String;)[B
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.decode:([B)[B
            areturn
        end local 1 // java.lang.String pArray
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    1     1  pArray  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      pArray  final

  public byte[] encode(byte[]);
    descriptor: ([B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // byte[] pArray
         0: .line 390
            aload 1 /* pArray */
            ifnull 1
            aload 1 /* pArray */
            arraylength
            ifne 2
         1: .line 391
      StackMap locals:
      StackMap stack:
            aload 1 /* pArray */
            areturn
         2: .line 393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* pArray */
            iconst_0
            aload 1 /* pArray */
            arraylength
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.encode:([BII)[B
            areturn
        end local 1 // byte[] pArray
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    3     1  pArray  [B
    MethodParameters:
        Name  Flags
      pArray  final

  public byte[] encode(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // byte[] pArray
        start local 2 // int offset
        start local 3 // int length
         0: .line 410
            aload 1 /* pArray */
            ifnull 1
            aload 1 /* pArray */
            arraylength
            ifne 2
         1: .line 411
      StackMap locals:
      StackMap stack:
            aload 1 /* pArray */
            areturn
         2: .line 413
      StackMap locals:
      StackMap stack:
            new org.apache.tomcat.util.codec.binary.BaseNCodec$Context
            dup
            invokespecial org.apache.tomcat.util.codec.binary.BaseNCodec$Context.<init>:()V
            astore 4 /* context */
        start local 4 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
         3: .line 414
            aload 0 /* this */
            aload 1 /* pArray */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* context */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.encode:([BIILorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)V
         4: .line 415
            aload 0 /* this */
            aload 1 /* pArray */
            iload 2 /* offset */
            iconst_m1
            aload 4 /* context */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.encode:([BIILorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)V
         5: .line 416
            aload 4 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.pos:I
            aload 4 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.readPos:I
            isub
            newarray 8
            astore 5 /* buf */
        start local 5 // byte[] buf
         6: .line 417
            aload 0 /* this */
            aload 5 /* buf */
            iconst_0
            aload 5 /* buf */
            arraylength
            aload 4 /* context */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.readResults:([BIILorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)I
            pop
         7: .line 418
            aload 5 /* buf */
            areturn
        end local 5 // byte[] buf
        end local 4 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] pArray
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    8     1   pArray  [B
            0    8     2   offset  I
            0    8     3   length  I
            3    8     4  context  Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;
            6    8     5      buf  [B
    MethodParameters:
        Name  Flags
      pArray  final
      offset  final
      length  final

  abstract void encode(byte[], int, int, org.apache.tomcat.util.codec.binary.BaseNCodec$Context);
    descriptor: ([BIILorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)V
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      pArray   
      i        
      length   
      context  

  public java.lang.String encodeAsString(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // byte[] pArray
         0: .line 434
            aload 0 /* this */
            aload 1 /* pArray */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.encode:([B)[B
            invokestatic org.apache.tomcat.util.codec.binary.StringUtils.newStringUtf8:([B)Ljava/lang/String;
            areturn
        end local 1 // byte[] pArray
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    1     1  pArray  [B
    MethodParameters:
        Name  Flags
      pArray  final

  public java.lang.String encodeToString(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // byte[] pArray
         0: .line 446
            aload 0 /* this */
            aload 1 /* pArray */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.encode:([B)[B
            invokestatic org.apache.tomcat.util.codec.binary.StringUtils.newStringUtf8:([B)Ljava/lang/String;
            areturn
        end local 1 // byte[] pArray
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    1     1  pArray  [B
    MethodParameters:
        Name  Flags
      pArray  final

  protected byte[] ensureBufferSize(int, org.apache.tomcat.util.codec.binary.BaseNCodec$Context);
    descriptor: (ILorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // int size
        start local 2 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
         0: .line 457
            aload 2 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
            ifnonnull 5
         1: .line 458
            aload 2 /* context */
            iload 1 /* size */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.getDefaultBufferSize:()I
            invokestatic java.lang.Math.max:(II)I
            newarray 8
            putfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
         2: .line 459
            aload 2 /* context */
            iconst_0
            putfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.pos:I
         3: .line 460
            aload 2 /* context */
            iconst_0
            putfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.readPos:I
         4: .line 464
            goto 7
      StackMap locals:
      StackMap stack:
         5: aload 2 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.pos:I
            iload 1 /* size */
            iadd
            aload 2 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
            arraylength
            isub
            ifle 7
         6: .line 465
            aload 2 /* context */
            aload 2 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.pos:I
            iload 1 /* size */
            iadd
            invokestatic org.apache.tomcat.util.codec.binary.BaseNCodec.resizeBuffer:(Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;I)[B
            areturn
         7: .line 467
      StackMap locals:
      StackMap stack:
            aload 2 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
            areturn
        end local 2 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
        end local 1 // int size
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    8     1     size  I
            0    8     2  context  Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;
    MethodParameters:
         Name  Flags
      size     final
      context  final

  protected int getDefaultBufferSize();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
         0: .line 476
            sipush 128
            ireturn
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;

  public long getEncodedLength(byte[]);
    descriptor: ([B)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // byte[] pArray
         0: .line 490
            aload 1 /* pArray */
            arraylength
            aload 0 /* this */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec.unencodedBlockSize:I
            iadd
            iconst_1
            isub
            aload 0 /* this */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec.unencodedBlockSize:I
            idiv
            i2l
            aload 0 /* this */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec.encodedBlockSize:I
            i2l
            lmul
            lstore 2 /* len */
        start local 2 // long len
         1: .line 491
            aload 0 /* this */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec.lineLength:I
            ifle 3
         2: .line 493
            lload 2 /* len */
            lload 2 /* len */
            aload 0 /* this */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec.lineLength:I
            i2l
            ladd
            lconst_1
            lsub
            aload 0 /* this */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec.lineLength:I
            i2l
            ldiv
            aload 0 /* this */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec.chunkSeparatorLength:I
            i2l
            lmul
            ladd
            lstore 2 /* len */
         3: .line 495
      StackMap locals: long
      StackMap stack:
            lload 2 /* len */
            lreturn
        end local 2 // long len
        end local 1 // byte[] pArray
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    4     1  pArray  [B
            1    4     2     len  J
    MethodParameters:
        Name  Flags
      pArray  final

  boolean hasData(org.apache.tomcat.util.codec.binary.BaseNCodec$Context);
    descriptor: (Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)Z
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
         0: .line 505
            aload 1 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    2     1  context  Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;
    MethodParameters:
         Name  Flags
      context  final

  protected abstract boolean isInAlphabet(byte);
    descriptor: (B)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      value  

  public boolean isInAlphabet(byte[], boolean);
    descriptor: ([BZ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // byte[] arrayOctet
        start local 2 // boolean allowWSPad
         0: .line 529
            aload 1 /* arrayOctet */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: org.apache.tomcat.util.codec.binary.BaseNCodec byte[] int top int int byte[]
      StackMap stack:
         1: aload 6
            iload 4
            baload
            istore 3 /* octet */
        start local 3 // byte octet
         2: .line 530
            aload 0 /* this */
            iload 3 /* octet */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.isInAlphabet:(B)Z
            ifne 5
         3: .line 531
            iload 2 /* allowWSPad */
            ifeq 4
            iload 3 /* octet */
            aload 0 /* this */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec.pad:B
            if_icmpeq 5
            iload 3 /* octet */
            invokestatic org.apache.tomcat.util.codec.binary.BaseNCodec.isWhiteSpace:(B)Z
            ifne 5
         4: .line 532
      StackMap locals: org.apache.tomcat.util.codec.binary.BaseNCodec byte[] int int int int byte[]
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // byte octet
         5: .line 529
      StackMap locals: org.apache.tomcat.util.codec.binary.BaseNCodec byte[] int top int int byte[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 1
         7: .line 535
            iconst_1
            ireturn
        end local 2 // boolean allowWSPad
        end local 1 // byte[] arrayOctet
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    8     1  arrayOctet  [B
            0    8     2  allowWSPad  Z
            2    5     3       octet  B
    MethodParameters:
            Name  Flags
      arrayOctet  final
      allowWSPad  final

  public boolean isInAlphabet(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // java.lang.String basen
         0: .line 548
            aload 0 /* this */
            aload 1 /* basen */
            invokestatic org.apache.tomcat.util.codec.binary.StringUtils.getBytesUtf8:(Ljava/lang/String;)[B
            iconst_1
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.isInAlphabet:([BZ)Z
            ireturn
        end local 1 // java.lang.String basen
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0    1     1  basen  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      basen  final

  int readResults(byte[], int, int, org.apache.tomcat.util.codec.binary.BaseNCodec$Context);
    descriptor: ([BIILorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)I
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
        start local 1 // byte[] b
        start local 2 // int bPos
        start local 3 // int bAvail
        start local 4 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
         0: .line 568
            aload 4 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
            ifnull 7
         1: .line 569
            aload 0 /* this */
            aload 4 /* context */
            invokevirtual org.apache.tomcat.util.codec.binary.BaseNCodec.available:(Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;)I
            iload 3 /* bAvail */
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* len */
        start local 5 // int len
         2: .line 570
            aload 4 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
            aload 4 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.readPos:I
            aload 1 /* b */
            iload 2 /* bPos */
            iload 5 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 571
            aload 4 /* context */
            dup
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.readPos:I
            iload 5 /* len */
            iadd
            putfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.readPos:I
         4: .line 572
            aload 4 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.readPos:I
            aload 4 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.pos:I
            if_icmplt 6
         5: .line 573
            aload 4 /* context */
            aconst_null
            putfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.buffer:[B
         6: .line 575
      StackMap locals: int
      StackMap stack:
            iload 5 /* len */
            ireturn
        end local 5 // int len
         7: .line 577
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            getfield org.apache.tomcat.util.codec.binary.BaseNCodec$Context.eof:Z
            ifeq 8
            iconst_m1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 4 // org.apache.tomcat.util.codec.binary.BaseNCodec$Context context
        end local 3 // int bAvail
        end local 2 // int bPos
        end local 1 // byte[] b
        end local 0 // org.apache.tomcat.util.codec.binary.BaseNCodec this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/apache/tomcat/util/codec/binary/BaseNCodec;
            0   10     1        b  [B
            0   10     2     bPos  I
            0   10     3   bAvail  I
            0   10     4  context  Lorg/apache/tomcat/util/codec/binary/BaseNCodec$Context;
            2    7     5      len  I
    MethodParameters:
         Name  Flags
      b        final
      bPos     final
      bAvail   final
      context  final
}
SourceFile: "BaseNCodec.java"
NestMembers:
  org.apache.tomcat.util.codec.binary.BaseNCodec$Context
InnerClasses:
  Context = org.apache.tomcat.util.codec.binary.BaseNCodec$Context of org.apache.tomcat.util.codec.binary.BaseNCodec