public class android.renderscript.Program$BaseProgramBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.renderscript.Program$BaseProgramBuilder
  super_class: java.lang.Object
{
  android.renderscript.RenderScript mRS;
    descriptor: Landroid/renderscript/RenderScript;
    flags: (0x0000) 

  android.renderscript.Element[] mInputs;
    descriptor: [Landroid/renderscript/Element;
    flags: (0x0000) 

  android.renderscript.Element[] mOutputs;
    descriptor: [Landroid/renderscript/Element;
    flags: (0x0000) 

  android.renderscript.Type[] mConstants;
    descriptor: [Landroid/renderscript/Type;
    flags: (0x0000) 

  android.renderscript.Type[] mTextures;
    descriptor: [Landroid/renderscript/Type;
    flags: (0x0000) 

  android.renderscript.Program$TextureType[] mTextureTypes;
    descriptor: [Landroid/renderscript/Program$TextureType;
    flags: (0x0000) 

  java.lang.String[] mTextureNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0000) 

  int mInputCount;
    descriptor: I
    flags: (0x0000) 

  int mOutputCount;
    descriptor: I
    flags: (0x0000) 

  int mConstantCount;
    descriptor: I
    flags: (0x0000) 

  int mTextureCount;
    descriptor: I
    flags: (0x0000) 

  java.lang.String mShader;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  protected void <init>(android.renderscript.RenderScript);
    descriptor: (Landroid/renderscript/RenderScript;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.renderscript.Program$BaseProgramBuilder this
        start local 1 // android.renderscript.RenderScript rs
         0: .line 216
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 217
            aload 0 /* this */
            aload 1 /* rs */
            putfield android.renderscript.Program$BaseProgramBuilder.mRS:Landroid/renderscript/RenderScript;
         2: .line 218
            aload 0 /* this */
            bipush 8
            anewarray android.renderscript.Element
            putfield android.renderscript.Program$BaseProgramBuilder.mInputs:[Landroid/renderscript/Element;
         3: .line 219
            aload 0 /* this */
            bipush 8
            anewarray android.renderscript.Element
            putfield android.renderscript.Program$BaseProgramBuilder.mOutputs:[Landroid/renderscript/Element;
         4: .line 220
            aload 0 /* this */
            bipush 8
            anewarray android.renderscript.Type
            putfield android.renderscript.Program$BaseProgramBuilder.mConstants:[Landroid/renderscript/Type;
         5: .line 221
            aload 0 /* this */
            iconst_0
            putfield android.renderscript.Program$BaseProgramBuilder.mInputCount:I
         6: .line 222
            aload 0 /* this */
            iconst_0
            putfield android.renderscript.Program$BaseProgramBuilder.mOutputCount:I
         7: .line 223
            aload 0 /* this */
            iconst_0
            putfield android.renderscript.Program$BaseProgramBuilder.mConstantCount:I
         8: .line 224
            aload 0 /* this */
            iconst_0
            putfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
         9: .line 225
            aload 0 /* this */
            bipush 8
            anewarray android.renderscript.Program$TextureType
            putfield android.renderscript.Program$BaseProgramBuilder.mTextureTypes:[Landroid/renderscript/Program$TextureType;
        10: .line 226
            aload 0 /* this */
            bipush 8
            anewarray java.lang.String
            putfield android.renderscript.Program$BaseProgramBuilder.mTextureNames:[Ljava/lang/String;
        11: .line 227
            return
        end local 1 // android.renderscript.RenderScript rs
        end local 0 // android.renderscript.Program$BaseProgramBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Landroid/renderscript/Program$BaseProgramBuilder;
            0   12     1    rs  Landroid/renderscript/RenderScript;
    MethodParameters:
      Name  Flags
      rs    

  public android.renderscript.Program$BaseProgramBuilder setShader(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/renderscript/Program$BaseProgramBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.renderscript.Program$BaseProgramBuilder this
        start local 1 // java.lang.String s
         0: .line 236
            aload 0 /* this */
            aload 1 /* s */
            putfield android.renderscript.Program$BaseProgramBuilder.mShader:Ljava/lang/String;
         1: .line 237
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String s
        end local 0 // android.renderscript.Program$BaseProgramBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/renderscript/Program$BaseProgramBuilder;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  public android.renderscript.Program$BaseProgramBuilder setShader(android.content.res.Resources, int);
    descriptor: (Landroid/content/res/Resources;I)Landroid/renderscript/Program$BaseProgramBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // android.renderscript.Program$BaseProgramBuilder this
        start local 1 // android.content.res.Resources resources
        start local 2 // int resourceID
         0: .line 251
            aload 1 /* resources */
            iload 2 /* resourceID */
            invokevirtual android.content.res.Resources.openRawResource:(I)Ljava/io/InputStream;
            astore 5 /* is */
        start local 5 // java.io.InputStream is
         1: .line 254
            sipush 1024
            newarray 8
            astore 3 /* str */
        start local 3 // byte[] str
         2: .line 255
            iconst_0
            istore 4 /* strLength */
        start local 4 // int strLength
         3: .line 257
      StackMap locals: byte[] int java.io.InputStream
      StackMap stack:
            aload 3 /* str */
            arraylength
            iload 4 /* strLength */
            isub
            istore 6 /* bytesLeft */
        start local 6 // int bytesLeft
         4: .line 258
            iload 6 /* bytesLeft */
            ifne 9
         5: .line 259
            aload 3 /* str */
            arraylength
            iconst_2
            imul
            newarray 8
            astore 7 /* buf2 */
        start local 7 // byte[] buf2
         6: .line 260
            aload 3 /* str */
            iconst_0
            aload 7 /* buf2 */
            iconst_0
            aload 3 /* str */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 261
            aload 7 /* buf2 */
            astore 3 /* str */
         8: .line 262
            aload 3 /* str */
            arraylength
            iload 4 /* strLength */
            isub
            istore 6 /* bytesLeft */
        end local 7 // byte[] buf2
         9: .line 264
      StackMap locals: int
      StackMap stack:
            aload 5 /* is */
            aload 3 /* str */
            iload 4 /* strLength */
            iload 6 /* bytesLeft */
            invokevirtual java.io.InputStream.read:([BII)I
            istore 7 /* bytesRead */
        start local 7 // int bytesRead
        10: .line 265
            iload 7 /* bytesRead */
            ifgt 12
        11: .line 266
            goto 17
        12: .line 268
      StackMap locals: int
      StackMap stack:
            iload 4 /* strLength */
            iload 7 /* bytesRead */
            iadd
            istore 4 /* strLength */
        end local 7 // int bytesRead
        end local 6 // int bytesLeft
        13: .line 256
            goto 3
        end local 4 // int strLength
        end local 3 // byte[] str
        14: .line 270
      StackMap locals: android.renderscript.Program$BaseProgramBuilder android.content.res.Resources int top top java.io.InputStream
      StackMap stack: java.lang.Throwable
            astore 8
        15: .line 271
            aload 5 /* is */
            invokevirtual java.io.InputStream.close:()V
        16: .line 272
            aload 8
            athrow
        start local 3 // byte[] str
        start local 4 // int strLength
        17: .line 271
      StackMap locals: android.renderscript.Program$BaseProgramBuilder android.content.res.Resources int byte[] int java.io.InputStream
      StackMap stack:
            aload 5 /* is */
            invokevirtual java.io.InputStream.close:()V
        18: .line 273
            goto 21
        end local 4 // int strLength
        end local 3 // byte[] str
      StackMap locals: android.renderscript.Program$BaseProgramBuilder android.content.res.Resources int top top java.io.InputStream
      StackMap stack: java.io.IOException
        19: pop
        20: .line 274
            new android.content.res.Resources$NotFoundException
            dup
            invokespecial android.content.res.Resources$NotFoundException.<init>:()V
            athrow
        start local 3 // byte[] str
        start local 4 // int strLength
        21: .line 278
      StackMap locals: android.renderscript.Program$BaseProgramBuilder android.content.res.Resources int byte[] int java.io.InputStream
      StackMap stack:
            aload 0 /* this */
            new java.lang.String
            dup
            aload 3 /* str */
            iconst_0
            iload 4 /* strLength */
            ldc "UTF-8"
            invokespecial java.lang.String.<init>:([BIILjava/lang/String;)V
            putfield android.renderscript.Program$BaseProgramBuilder.mShader:Ljava/lang/String;
        22: .line 279
            goto 25
      StackMap locals:
      StackMap stack: java.io.UnsupportedEncodingException
        23: pop
        24: .line 280
            ldc "RenderScript shader creation"
            ldc "Could not decode shader string"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        25: .line 283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 5 // java.io.InputStream is
        end local 4 // int strLength
        end local 3 // byte[] str
        end local 2 // int resourceID
        end local 1 // android.content.res.Resources resources
        end local 0 // android.renderscript.Program$BaseProgramBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   26     0        this  Landroid/renderscript/Program$BaseProgramBuilder;
            0   26     1   resources  Landroid/content/res/Resources;
            0   26     2  resourceID  I
            2   14     3         str  [B
           17   19     3         str  [B
           21   26     3         str  [B
            3   14     4   strLength  I
           17   19     4   strLength  I
           21   26     4   strLength  I
            1   26     5          is  Ljava/io/InputStream;
            4   13     6   bytesLeft  I
            6    9     7        buf2  [B
           10   13     7   bytesRead  I
      Exception table:
        from    to  target  type
           1    14      14  any
           1    18      19  Class java.io.IOException
          21    22      23  Class java.io.UnsupportedEncodingException
    MethodParameters:
            Name  Flags
      resources   
      resourceID  

  public int getCurrentConstantIndex();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.renderscript.Program$BaseProgramBuilder this
         0: .line 291
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mConstantCount:I
            iconst_1
            isub
            ireturn
        end local 0 // android.renderscript.Program$BaseProgramBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/renderscript/Program$BaseProgramBuilder;

  public int getCurrentTextureIndex();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.renderscript.Program$BaseProgramBuilder this
         0: .line 299
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            iconst_1
            isub
            ireturn
        end local 0 // android.renderscript.Program$BaseProgramBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/renderscript/Program$BaseProgramBuilder;

  public android.renderscript.Program$BaseProgramBuilder addConstant(android.renderscript.Type);
    descriptor: (Landroid/renderscript/Type;)Landroid/renderscript/Program$BaseProgramBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.renderscript.Program$BaseProgramBuilder this
        start local 1 // android.renderscript.Type t
         0: .line 311
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mConstantCount:I
            bipush 8
            if_icmplt 2
         1: .line 312
            new android.renderscript.RSIllegalArgumentException
            dup
            ldc "Max input count exceeded."
            invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 314
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
            invokevirtual android.renderscript.Element.isComplex:()Z
            ifeq 4
         3: .line 315
            new android.renderscript.RSIllegalArgumentException
            dup
            ldc "Complex elements not allowed."
            invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mConstants:[Landroid/renderscript/Type;
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mConstantCount:I
            aload 1 /* t */
            aastore
         5: .line 318
            aload 0 /* this */
            dup
            getfield android.renderscript.Program$BaseProgramBuilder.mConstantCount:I
            iconst_1
            iadd
            putfield android.renderscript.Program$BaseProgramBuilder.mConstantCount:I
         6: .line 319
            aload 0 /* this */
            areturn
        end local 1 // android.renderscript.Type t
        end local 0 // android.renderscript.Program$BaseProgramBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/renderscript/Program$BaseProgramBuilder;
            0    7     1     t  Landroid/renderscript/Type;
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
      Name  Flags
      t     

  public android.renderscript.Program$BaseProgramBuilder addTexture(android.renderscript.Program$TextureType);
    descriptor: (Landroid/renderscript/Program$TextureType;)Landroid/renderscript/Program$BaseProgramBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.renderscript.Program$BaseProgramBuilder this
        start local 1 // android.renderscript.Program$TextureType texType
         0: .line 330
            aload 0 /* this */
            aload 1 /* texType */
            new java.lang.StringBuilder
            dup
            ldc "Tex"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual android.renderscript.Program$BaseProgramBuilder.addTexture:(Landroid/renderscript/Program$TextureType;Ljava/lang/String;)Landroid/renderscript/Program$BaseProgramBuilder;
            pop
         1: .line 331
            aload 0 /* this */
            areturn
        end local 1 // android.renderscript.Program$TextureType texType
        end local 0 // android.renderscript.Program$BaseProgramBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/renderscript/Program$BaseProgramBuilder;
            0    2     1  texType  Landroid/renderscript/Program$TextureType;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      texType  

  public android.renderscript.Program$BaseProgramBuilder addTexture(android.renderscript.Program$TextureType, java.lang.String);
    descriptor: (Landroid/renderscript/Program$TextureType;Ljava/lang/String;)Landroid/renderscript/Program$BaseProgramBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.renderscript.Program$BaseProgramBuilder this
        start local 1 // android.renderscript.Program$TextureType texType
        start local 2 // java.lang.String texName
         0: .line 345
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            bipush 8
            if_icmplt 2
         1: .line 346
            new java.lang.IllegalArgumentException
            dup
            ldc "Max texture count exceeded."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureTypes:[Landroid/renderscript/Program$TextureType;
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            aload 1 /* texType */
            aastore
         3: .line 349
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureNames:[Ljava/lang/String;
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            aload 2 /* texName */
            aastore
         4: .line 350
            aload 0 /* this */
            dup
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            iconst_1
            iadd
            putfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
         5: .line 351
            aload 0 /* this */
            areturn
        end local 2 // java.lang.String texName
        end local 1 // android.renderscript.Program$TextureType texType
        end local 0 // android.renderscript.Program$BaseProgramBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/renderscript/Program$BaseProgramBuilder;
            0    6     1  texType  Landroid/renderscript/Program$TextureType;
            0    6     2  texName  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      texType  
      texName  

  protected void initProgram(android.renderscript.Program);
    descriptor: (Landroid/renderscript/Program;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.renderscript.Program$BaseProgramBuilder this
        start local 1 // android.renderscript.Program p
         0: .line 355
            aload 1 /* p */
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mInputCount:I
            anewarray android.renderscript.Element
            putfield android.renderscript.Program.mInputs:[Landroid/renderscript/Element;
         1: .line 356
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mInputs:[Landroid/renderscript/Element;
            iconst_0
            aload 1 /* p */
            getfield android.renderscript.Program.mInputs:[Landroid/renderscript/Element;
            iconst_0
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mInputCount:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 357
            aload 1 /* p */
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mOutputCount:I
            anewarray android.renderscript.Element
            putfield android.renderscript.Program.mOutputs:[Landroid/renderscript/Element;
         3: .line 358
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mOutputs:[Landroid/renderscript/Element;
            iconst_0
            aload 1 /* p */
            getfield android.renderscript.Program.mOutputs:[Landroid/renderscript/Element;
            iconst_0
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mOutputCount:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 359
            aload 1 /* p */
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mConstantCount:I
            anewarray android.renderscript.Type
            putfield android.renderscript.Program.mConstants:[Landroid/renderscript/Type;
         5: .line 360
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mConstants:[Landroid/renderscript/Type;
            iconst_0
            aload 1 /* p */
            getfield android.renderscript.Program.mConstants:[Landroid/renderscript/Type;
            iconst_0
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mConstantCount:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 361
            aload 1 /* p */
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            putfield android.renderscript.Program.mTextureCount:I
         7: .line 362
            aload 1 /* p */
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            anewarray android.renderscript.Program$TextureType
            putfield android.renderscript.Program.mTextures:[Landroid/renderscript/Program$TextureType;
         8: .line 363
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureTypes:[Landroid/renderscript/Program$TextureType;
            iconst_0
            aload 1 /* p */
            getfield android.renderscript.Program.mTextures:[Landroid/renderscript/Program$TextureType;
            iconst_0
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 364
            aload 1 /* p */
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            anewarray java.lang.String
            putfield android.renderscript.Program.mTextureNames:[Ljava/lang/String;
        10: .line 365
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureNames:[Ljava/lang/String;
            iconst_0
            aload 1 /* p */
            getfield android.renderscript.Program.mTextureNames:[Ljava/lang/String;
            iconst_0
            aload 0 /* this */
            getfield android.renderscript.Program$BaseProgramBuilder.mTextureCount:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 366
            return
        end local 1 // android.renderscript.Program p
        end local 0 // android.renderscript.Program$BaseProgramBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Landroid/renderscript/Program$BaseProgramBuilder;
            0   12     1     p  Landroid/renderscript/Program;
    MethodParameters:
      Name  Flags
      p     
}
SourceFile: "Program.java"
NestHost: android.renderscript.Program
InnerClasses:
  public NotFoundException = android.content.res.Resources$NotFoundException of android.content.res.Resources
  public BaseProgramBuilder = android.renderscript.Program$BaseProgramBuilder of android.renderscript.Program
  public final TextureType = android.renderscript.Program$TextureType of android.renderscript.Program