public class org.hibernate.bytecode.internal.javassist.FieldTransformer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.bytecode.internal.javassist.FieldTransformer
  super_class: java.lang.Object
{
  private static final java.lang.String EACH_READ_METHOD_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "$javassist_read_"

  private static final java.lang.String EACH_WRITE_METHOD_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "$javassist_write_"

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

  private static final java.lang.String HANDLER_FIELD_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "$JAVASSIST_READ_WRITE_HANDLER"

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

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

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

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

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

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

  private final org.hibernate.bytecode.internal.javassist.FieldFilter filter;
    descriptor: Lorg/hibernate/bytecode/internal/javassist/FieldFilter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javassist.ClassPool classPool;
    descriptor: Ljavassist/ClassPool;
    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 63
            ldc Lorg/hibernate/bytecode/internal/javassist/FieldHandled;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            putstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.FIELD_HANDLED_TYPE_NAME:Ljava/lang/String;
         1: .line 67
            ldc Lorg/hibernate/bytecode/internal/javassist/FieldHandler;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            putstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.FIELD_HANDLER_TYPE_NAME:Ljava/lang/String;
         2: .line 69
            new java.lang.StringBuilder
            dup
            bipush 76
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.FIELD_HANDLER_TYPE_NAME:Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 59
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.HANDLER_FIELD_DESCRIPTOR:Ljava/lang/String;
         3: .line 75
            new java.lang.StringBuilder
            dup
            ldc "()"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.HANDLER_FIELD_DESCRIPTOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.GETFIELDHANDLER_METHOD_DESCRIPTOR:Ljava/lang/String;
         4: .line 77
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.HANDLER_FIELD_DESCRIPTOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")V"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.SETFIELDHANDLER_METHOD_DESCRIPTOR:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.hibernate.bytecode.internal.javassist.FieldFilter, javassist.ClassPool);
    descriptor: (Lorg/hibernate/bytecode/internal/javassist/FieldFilter;Ljavassist/ClassPool;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // org.hibernate.bytecode.internal.javassist.FieldFilter f
        start local 2 // javassist.ClassPool c
         0: .line 82
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 83
            aload 0 /* this */
            aload 1 /* f */
            putfield org.hibernate.bytecode.internal.javassist.FieldTransformer.filter:Lorg/hibernate/bytecode/internal/javassist/FieldFilter;
         2: .line 84
            aload 0 /* this */
            aload 2 /* c */
            putfield org.hibernate.bytecode.internal.javassist.FieldTransformer.classPool:Ljavassist/ClassPool;
         3: .line 85
            return
        end local 2 // javassist.ClassPool c
        end local 1 // org.hibernate.bytecode.internal.javassist.FieldFilter f
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0    4     1     f  Lorg/hibernate/bytecode/internal/javassist/FieldFilter;
            0    4     2     c  Ljavassist/ClassPool;
    MethodParameters:
      Name  Flags
      f     
      c     

  public void transform(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // java.io.File file
         0: .line 95
            new java.io.DataInputStream
            dup
            new java.io.FileInputStream
            dup
            aload 1 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            astore 2 /* in */
        start local 2 // java.io.DataInputStream in
         1: .line 96
            new javassist.bytecode.ClassFile
            dup
            aload 2 /* in */
            invokespecial javassist.bytecode.ClassFile.<init>:(Ljava/io/DataInputStream;)V
            astore 3 /* classfile */
        start local 3 // javassist.bytecode.ClassFile classfile
         2: .line 97
            aload 0 /* this */
            aload 3 /* classfile */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.transform:(Ljavassist/bytecode/ClassFile;)V
         3: .line 99
            new java.io.DataOutputStream
            dup
            new java.io.FileOutputStream
            dup
            aload 1 /* file */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 4 /* out */
        start local 4 // java.io.DataOutputStream out
         4: .line 101
            aload 3 /* classfile */
            aload 4 /* out */
            invokevirtual javassist.bytecode.ClassFile.write:(Ljava/io/DataOutputStream;)V
         5: .line 102
            goto 9
         6: .line 103
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer java.io.File java.io.DataInputStream javassist.bytecode.ClassFile java.io.DataOutputStream
      StackMap stack: java.lang.Throwable
            astore 5
         7: .line 104
            aload 4 /* out */
            invokevirtual java.io.DataOutputStream.close:()V
         8: .line 105
            aload 5
            athrow
         9: .line 104
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            invokevirtual java.io.DataOutputStream.close:()V
        10: .line 106
            return
        end local 4 // java.io.DataOutputStream out
        end local 3 // javassist.bytecode.ClassFile classfile
        end local 2 // java.io.DataInputStream in
        end local 1 // java.io.File file
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0   11     1       file  Ljava/io/File;
            1   11     2         in  Ljava/io/DataInputStream;
            2   11     3  classfile  Ljavassist/bytecode/ClassFile;
            4   11     4        out  Ljava/io/DataOutputStream;
      Exception table:
        from    to  target  type
           4     6       6  any
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      file  

  public void transform(javassist.bytecode.ClassFile);
    descriptor: (Ljavassist/bytecode/ClassFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classFile
         0: .line 116
            aload 1 /* classFile */
            invokevirtual javassist.bytecode.ClassFile.isInterface:()Z
            ifeq 2
         1: .line 117
            return
         2: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* classFile */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.addFieldHandlerField:(Ljavassist/bytecode/ClassFile;)V
         3: .line 121
            aload 0 /* this */
            aload 1 /* classFile */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.addGetFieldHandlerMethod:(Ljavassist/bytecode/ClassFile;)V
         4: .line 122
            aload 0 /* this */
            aload 1 /* classFile */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.addSetFieldHandlerMethod:(Ljavassist/bytecode/ClassFile;)V
         5: .line 123
            aload 0 /* this */
            aload 1 /* classFile */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.addFieldHandledInterface:(Ljavassist/bytecode/ClassFile;)V
         6: .line 124
            aload 0 /* this */
            aload 1 /* classFile */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.addReadWriteMethods:(Ljavassist/bytecode/ClassFile;)V
         7: .line 125
            aload 0 /* this */
            aload 1 /* classFile */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.transformInvokevirtualsIntoPutAndGetfields:(Ljavassist/bytecode/ClassFile;)V
         8: .line 126
            goto 11
         9: .line 127
      StackMap locals:
      StackMap stack: javassist.CannotCompileException
            astore 2 /* e */
        start local 2 // javassist.CannotCompileException e
        10: .line 128
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokevirtual javassist.CannotCompileException.getMessage:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // javassist.CannotCompileException e
        11: .line 130
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javassist.bytecode.ClassFile classFile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0   12     1  classFile  Ljavassist/bytecode/ClassFile;
           10   11     2          e  Ljavassist/CannotCompileException;
      Exception table:
        from    to  target  type
           2     8       9  Class javassist.CannotCompileException
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      classFile  

  private void addFieldHandlerField(javassist.bytecode.ClassFile);
    descriptor: (Ljavassist/bytecode/ClassFile;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classfile
         0: .line 133
            aload 1 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
            astore 2 /* constPool */
        start local 2 // javassist.bytecode.ConstPool constPool
         1: .line 134
            new javassist.bytecode.FieldInfo
            dup
            aload 2 /* constPool */
            ldc "$JAVASSIST_READ_WRITE_HANDLER"
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.HANDLER_FIELD_DESCRIPTOR:Ljava/lang/String;
            invokespecial javassist.bytecode.FieldInfo.<init>:(Ljavassist/bytecode/ConstPool;Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* fieldInfo */
        start local 3 // javassist.bytecode.FieldInfo fieldInfo
         2: .line 135
            aload 3 /* fieldInfo */
            sipush 130
            invokevirtual javassist.bytecode.FieldInfo.setAccessFlags:(I)V
         3: .line 136
            aload 1 /* classfile */
            aload 3 /* fieldInfo */
            invokevirtual javassist.bytecode.ClassFile.addField:(Ljavassist/bytecode/FieldInfo;)V
         4: .line 137
            return
        end local 3 // javassist.bytecode.FieldInfo fieldInfo
        end local 2 // javassist.bytecode.ConstPool constPool
        end local 1 // javassist.bytecode.ClassFile classfile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0    5     1  classfile  Ljavassist/bytecode/ClassFile;
            1    5     2  constPool  Ljavassist/bytecode/ConstPool;
            2    5     3  fieldInfo  Ljavassist/bytecode/FieldInfo;
    Exceptions:
      throws javassist.CannotCompileException
    MethodParameters:
           Name  Flags
      classfile  

  private void addGetFieldHandlerMethod(javassist.bytecode.ClassFile);
    descriptor: (Ljavassist/bytecode/ClassFile;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classfile
         0: .line 140
            aload 1 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
            astore 2 /* constPool */
        start local 2 // javassist.bytecode.ConstPool constPool
         1: .line 141
            aload 2 /* constPool */
            invokevirtual javassist.bytecode.ConstPool.getThisClassInfo:()I
            istore 3 /* thisClassInfo */
        start local 3 // int thisClassInfo
         2: .line 142
            new javassist.bytecode.MethodInfo
            dup
         3: .line 143
            aload 2 /* constPool */
         4: .line 144
            ldc "getFieldHandler"
         5: .line 145
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.GETFIELDHANDLER_METHOD_DESCRIPTOR:Ljava/lang/String;
         6: .line 142
            invokespecial javassist.bytecode.MethodInfo.<init>:(Ljavassist/bytecode/ConstPool;Ljava/lang/String;Ljava/lang/String;)V
            astore 4 /* getterMethodInfo */
        start local 4 // javassist.bytecode.MethodInfo getterMethodInfo
         7: .line 149
            new javassist.bytecode.Bytecode
            dup
            aload 2 /* constPool */
            iconst_2
            iconst_1
            invokespecial javassist.bytecode.Bytecode.<init>:(Ljavassist/bytecode/ConstPool;II)V
            astore 5 /* code */
        start local 5 // javassist.bytecode.Bytecode code
         8: .line 151
            aload 5 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
         9: .line 153
            aload 5 /* code */
            sipush 180
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        10: .line 154
            aload 2 /* constPool */
            iload 3 /* thisClassInfo */
            ldc "$JAVASSIST_READ_WRITE_HANDLER"
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.HANDLER_FIELD_DESCRIPTOR:Ljava/lang/String;
            invokevirtual javassist.bytecode.ConstPool.addFieldrefInfo:(ILjava/lang/String;Ljava/lang/String;)I
            istore 6 /* fieldIndex */
        start local 6 // int fieldIndex
        11: .line 155
            aload 5 /* code */
            iload 6 /* fieldIndex */
            invokevirtual javassist.bytecode.Bytecode.addIndex:(I)V
        12: .line 157
            aload 5 /* code */
            sipush 176
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        13: .line 158
            aload 4 /* getterMethodInfo */
            aload 5 /* code */
            invokevirtual javassist.bytecode.Bytecode.toCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
            invokevirtual javassist.bytecode.MethodInfo.setCodeAttribute:(Ljavassist/bytecode/CodeAttribute;)V
        14: .line 159
            aload 4 /* getterMethodInfo */
            iconst_1
            invokevirtual javassist.bytecode.MethodInfo.setAccessFlags:(I)V
        15: .line 160
            aload 4 /* getterMethodInfo */
            invokevirtual javassist.bytecode.MethodInfo.getCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
            astore 7 /* codeAttribute */
        start local 7 // javassist.bytecode.CodeAttribute codeAttribute
        16: .line 161
            aload 7 /* codeAttribute */
            ifnull 19
        17: .line 162
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.FieldTransformer.classPool:Ljavassist/ClassPool;
            aload 4 /* getterMethodInfo */
            invokestatic javassist.bytecode.stackmap.MapMaker.make:(Ljavassist/ClassPool;Ljavassist/bytecode/MethodInfo;)Ljavassist/bytecode/StackMapTable;
            astore 8 /* smt */
        start local 8 // javassist.bytecode.StackMapTable smt
        18: .line 163
            aload 7 /* codeAttribute */
            aload 8 /* smt */
            invokevirtual javassist.bytecode.CodeAttribute.setAttribute:(Ljavassist/bytecode/StackMapTable;)V
        end local 8 // javassist.bytecode.StackMapTable smt
        19: .line 165
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer javassist.bytecode.ClassFile javassist.bytecode.ConstPool int javassist.bytecode.MethodInfo javassist.bytecode.Bytecode int javassist.bytecode.CodeAttribute
      StackMap stack:
            aload 1 /* classfile */
            aload 4 /* getterMethodInfo */
            invokevirtual javassist.bytecode.ClassFile.addMethod:(Ljavassist/bytecode/MethodInfo;)V
        20: .line 166
            return
        end local 7 // javassist.bytecode.CodeAttribute codeAttribute
        end local 6 // int fieldIndex
        end local 5 // javassist.bytecode.Bytecode code
        end local 4 // javassist.bytecode.MethodInfo getterMethodInfo
        end local 3 // int thisClassInfo
        end local 2 // javassist.bytecode.ConstPool constPool
        end local 1 // javassist.bytecode.ClassFile classfile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0   21     1         classfile  Ljavassist/bytecode/ClassFile;
            1   21     2         constPool  Ljavassist/bytecode/ConstPool;
            2   21     3     thisClassInfo  I
            7   21     4  getterMethodInfo  Ljavassist/bytecode/MethodInfo;
            8   21     5              code  Ljavassist/bytecode/Bytecode;
           11   21     6        fieldIndex  I
           16   21     7     codeAttribute  Ljavassist/bytecode/CodeAttribute;
           18   19     8               smt  Ljavassist/bytecode/StackMapTable;
    Exceptions:
      throws javassist.CannotCompileException, javassist.bytecode.BadBytecode
    MethodParameters:
           Name  Flags
      classfile  

  private void addSetFieldHandlerMethod(javassist.bytecode.ClassFile);
    descriptor: (Ljavassist/bytecode/ClassFile;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classfile
         0: .line 169
            aload 1 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
            astore 2 /* constPool */
        start local 2 // javassist.bytecode.ConstPool constPool
         1: .line 170
            aload 2 /* constPool */
            invokevirtual javassist.bytecode.ConstPool.getThisClassInfo:()I
            istore 3 /* thisClassInfo */
        start local 3 // int thisClassInfo
         2: .line 171
            new javassist.bytecode.MethodInfo
            dup
         3: .line 172
            aload 2 /* constPool */
         4: .line 173
            ldc "setFieldHandler"
         5: .line 174
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.SETFIELDHANDLER_METHOD_DESCRIPTOR:Ljava/lang/String;
         6: .line 171
            invokespecial javassist.bytecode.MethodInfo.<init>:(Ljavassist/bytecode/ConstPool;Ljava/lang/String;Ljava/lang/String;)V
            astore 4 /* methodInfo */
        start local 4 // javassist.bytecode.MethodInfo methodInfo
         7: .line 178
            new javassist.bytecode.Bytecode
            dup
            aload 2 /* constPool */
            iconst_3
            iconst_3
            invokespecial javassist.bytecode.Bytecode.<init>:(Ljavassist/bytecode/ConstPool;II)V
            astore 5 /* code */
        start local 5 // javassist.bytecode.Bytecode code
         8: .line 180
            aload 5 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
         9: .line 182
            aload 5 /* code */
            iconst_1
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
        10: .line 184
            aload 5 /* code */
            sipush 181
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        11: .line 185
            aload 2 /* constPool */
            iload 3 /* thisClassInfo */
            ldc "$JAVASSIST_READ_WRITE_HANDLER"
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.HANDLER_FIELD_DESCRIPTOR:Ljava/lang/String;
            invokevirtual javassist.bytecode.ConstPool.addFieldrefInfo:(ILjava/lang/String;Ljava/lang/String;)I
            istore 6 /* fieldIndex */
        start local 6 // int fieldIndex
        12: .line 186
            aload 5 /* code */
            iload 6 /* fieldIndex */
            invokevirtual javassist.bytecode.Bytecode.addIndex:(I)V
        13: .line 188
            aload 5 /* code */
            sipush 177
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        14: .line 189
            aload 4 /* methodInfo */
            aload 5 /* code */
            invokevirtual javassist.bytecode.Bytecode.toCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
            invokevirtual javassist.bytecode.MethodInfo.setCodeAttribute:(Ljavassist/bytecode/CodeAttribute;)V
        15: .line 190
            aload 4 /* methodInfo */
            iconst_1
            invokevirtual javassist.bytecode.MethodInfo.setAccessFlags:(I)V
        16: .line 191
            aload 4 /* methodInfo */
            invokevirtual javassist.bytecode.MethodInfo.getCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
            astore 7 /* codeAttribute */
        start local 7 // javassist.bytecode.CodeAttribute codeAttribute
        17: .line 192
            aload 7 /* codeAttribute */
            ifnull 20
        18: .line 193
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.FieldTransformer.classPool:Ljavassist/ClassPool;
            aload 4 /* methodInfo */
            invokestatic javassist.bytecode.stackmap.MapMaker.make:(Ljavassist/ClassPool;Ljavassist/bytecode/MethodInfo;)Ljavassist/bytecode/StackMapTable;
            astore 8 /* smt */
        start local 8 // javassist.bytecode.StackMapTable smt
        19: .line 194
            aload 7 /* codeAttribute */
            aload 8 /* smt */
            invokevirtual javassist.bytecode.CodeAttribute.setAttribute:(Ljavassist/bytecode/StackMapTable;)V
        end local 8 // javassist.bytecode.StackMapTable smt
        20: .line 196
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer javassist.bytecode.ClassFile javassist.bytecode.ConstPool int javassist.bytecode.MethodInfo javassist.bytecode.Bytecode int javassist.bytecode.CodeAttribute
      StackMap stack:
            aload 1 /* classfile */
            aload 4 /* methodInfo */
            invokevirtual javassist.bytecode.ClassFile.addMethod:(Ljavassist/bytecode/MethodInfo;)V
        21: .line 197
            return
        end local 7 // javassist.bytecode.CodeAttribute codeAttribute
        end local 6 // int fieldIndex
        end local 5 // javassist.bytecode.Bytecode code
        end local 4 // javassist.bytecode.MethodInfo methodInfo
        end local 3 // int thisClassInfo
        end local 2 // javassist.bytecode.ConstPool constPool
        end local 1 // javassist.bytecode.ClassFile classfile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0           this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0   22     1      classfile  Ljavassist/bytecode/ClassFile;
            1   22     2      constPool  Ljavassist/bytecode/ConstPool;
            2   22     3  thisClassInfo  I
            7   22     4     methodInfo  Ljavassist/bytecode/MethodInfo;
            8   22     5           code  Ljavassist/bytecode/Bytecode;
           12   22     6     fieldIndex  I
           17   22     7  codeAttribute  Ljavassist/bytecode/CodeAttribute;
           19   20     8            smt  Ljavassist/bytecode/StackMapTable;
    Exceptions:
      throws javassist.CannotCompileException, javassist.bytecode.BadBytecode
    MethodParameters:
           Name  Flags
      classfile  

  private void addFieldHandledInterface(javassist.bytecode.ClassFile);
    descriptor: (Ljavassist/bytecode/ClassFile;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classfile
         0: .line 200
            aload 1 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getInterfaces:()[Ljava/lang/String;
            astore 2 /* interfaceNames */
        start local 2 // java.lang.String[] interfaceNames
         1: .line 201
            aload 2 /* interfaceNames */
            arraylength
            iconst_1
            iadd
            anewarray java.lang.String
            astore 3 /* newInterfaceNames */
        start local 3 // java.lang.String[] newInterfaceNames
         2: .line 202
            aload 2 /* interfaceNames */
            iconst_0
            aload 3 /* newInterfaceNames */
            iconst_0
            aload 2 /* interfaceNames */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 203
            aload 3 /* newInterfaceNames */
            aload 3 /* newInterfaceNames */
            arraylength
            iconst_1
            isub
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.FIELD_HANDLED_TYPE_NAME:Ljava/lang/String;
            aastore
         4: .line 204
            aload 1 /* classfile */
            aload 3 /* newInterfaceNames */
            invokevirtual javassist.bytecode.ClassFile.setInterfaces:([Ljava/lang/String;)V
         5: .line 205
            return
        end local 3 // java.lang.String[] newInterfaceNames
        end local 2 // java.lang.String[] interfaceNames
        end local 1 // javassist.bytecode.ClassFile classfile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0    6     1          classfile  Ljavassist/bytecode/ClassFile;
            1    6     2     interfaceNames  [Ljava/lang/String;
            2    6     3  newInterfaceNames  [Ljava/lang/String;
    MethodParameters:
           Name  Flags
      classfile  

  private void addReadWriteMethods(javassist.bytecode.ClassFile);
    descriptor: (Ljavassist/bytecode/ClassFile;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classfile
         0: .line 208
            aload 1 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getFields:()Ljava/util/List;
            astore 2 /* fields */
        start local 2 // java.util.List fields
         1: .line 209
            aload 2 /* fields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer javassist.bytecode.ClassFile java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* field */
        start local 3 // java.lang.Object field
         3: .line 210
            aload 3 /* field */
            checkcast javassist.bytecode.FieldInfo
            astore 5 /* finfo */
        start local 5 // javassist.bytecode.FieldInfo finfo
         4: .line 211
            aload 5 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getAccessFlags:()I
            bipush 8
            iand
            ifne 9
            aload 5 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getName:()Ljava/lang/String;
            ldc "$JAVASSIST_READ_WRITE_HANDLER"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         5: .line 213
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.FieldTransformer.filter:Lorg/hibernate/bytecode/internal/javassist/FieldFilter;
            aload 5 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            aload 5 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getName:()Ljava/lang/String;
            invokeinterface org.hibernate.bytecode.internal.javassist.FieldFilter.handleRead:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 7
         6: .line 214
            aload 0 /* this */
            aload 1 /* classfile */
            aload 5 /* finfo */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.addReadMethod:(Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/FieldInfo;)V
         7: .line 216
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer javassist.bytecode.ClassFile java.util.List java.lang.Object java.util.Iterator javassist.bytecode.FieldInfo
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.FieldTransformer.filter:Lorg/hibernate/bytecode/internal/javassist/FieldFilter;
            aload 5 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            aload 5 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getName:()Ljava/lang/String;
            invokeinterface org.hibernate.bytecode.internal.javassist.FieldFilter.handleWrite:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 9
         8: .line 217
            aload 0 /* this */
            aload 1 /* classfile */
            aload 5 /* finfo */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.addWriteMethod:(Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/FieldInfo;)V
        end local 5 // javassist.bytecode.FieldInfo finfo
        end local 3 // java.lang.Object field
         9: .line 209
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer javassist.bytecode.ClassFile java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 221
            return
        end local 2 // java.util.List fields
        end local 1 // javassist.bytecode.ClassFile classfile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0   11     1  classfile  Ljavassist/bytecode/ClassFile;
            1   11     2     fields  Ljava/util/List;
            3    9     3      field  Ljava/lang/Object;
            4    9     5      finfo  Ljavassist/bytecode/FieldInfo;
    Exceptions:
      throws javassist.CannotCompileException, javassist.bytecode.BadBytecode
    MethodParameters:
           Name  Flags
      classfile  

  private void addReadMethod(javassist.bytecode.ClassFile, javassist.bytecode.FieldInfo);
    descriptor: (Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/FieldInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classfile
        start local 2 // javassist.bytecode.FieldInfo finfo
         0: .line 224
            aload 1 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
            astore 3 /* constPool */
        start local 3 // javassist.bytecode.ConstPool constPool
         1: .line 225
            aload 3 /* constPool */
            invokevirtual javassist.bytecode.ConstPool.getThisClassInfo:()I
            istore 4 /* thisClassInfo */
        start local 4 // int thisClassInfo
         2: .line 226
            new java.lang.StringBuilder
            dup
            ldc "()"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* readMethodDescriptor */
        start local 5 // java.lang.String readMethodDescriptor
         3: .line 227
            new javassist.bytecode.MethodInfo
            dup
         4: .line 228
            aload 3 /* constPool */
         5: .line 229
            new java.lang.StringBuilder
            dup
            ldc "$javassist_read_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 230
            aload 5 /* readMethodDescriptor */
         7: .line 227
            invokespecial javassist.bytecode.MethodInfo.<init>:(Ljavassist/bytecode/ConstPool;Ljava/lang/String;Ljava/lang/String;)V
            astore 6 /* readMethodInfo */
        start local 6 // javassist.bytecode.MethodInfo readMethodInfo
         8: .line 234
            new javassist.bytecode.Bytecode
            dup
            aload 3 /* constPool */
            iconst_5
            iconst_3
            invokespecial javassist.bytecode.Bytecode.<init>:(Ljavassist/bytecode/ConstPool;II)V
            astore 7 /* code */
        start local 7 // javassist.bytecode.Bytecode code
         9: .line 236
            aload 7 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
        10: .line 238
            aload 7 /* code */
            sipush 180
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        11: .line 239
            aload 3 /* constPool */
            iload 4 /* thisClassInfo */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getName:()Ljava/lang/String;
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            invokevirtual javassist.bytecode.ConstPool.addFieldrefInfo:(ILjava/lang/String;Ljava/lang/String;)I
            istore 8 /* baseFieldIndex */
        start local 8 // int baseFieldIndex
        12: .line 240
            aload 7 /* code */
            iload 8 /* baseFieldIndex */
            invokevirtual javassist.bytecode.Bytecode.addIndex:(I)V
        13: .line 242
            aload 7 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
        14: .line 244
            aload 3 /* constPool */
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.FIELD_HANDLED_TYPE_NAME:Ljava/lang/String;
            invokevirtual javassist.bytecode.ConstPool.addClassInfo:(Ljava/lang/String;)I
            istore 9 /* enabledClassIndex */
        start local 9 // int enabledClassIndex
        15: .line 245
            aload 7 /* code */
        16: .line 246
            iload 9 /* enabledClassIndex */
        17: .line 247
            ldc "getFieldHandler"
        18: .line 248
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.GETFIELDHANDLER_METHOD_DESCRIPTOR:Ljava/lang/String;
        19: .line 249
            iconst_1
        20: .line 245
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        21: .line 252
            aload 7 /* code */
            sipush 199
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        22: .line 253
            aload 7 /* code */
            iconst_4
            invokevirtual javassist.bytecode.Bytecode.addIndex:(I)V
        23: .line 255
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            invokestatic org.hibernate.bytecode.internal.javassist.FieldTransformer.addTypeDependDataReturn:(Ljavassist/bytecode/Bytecode;Ljava/lang/String;)V
        24: .line 257
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            iconst_1
            invokestatic org.hibernate.bytecode.internal.javassist.FieldTransformer.addTypeDependDataStore:(Ljavassist/bytecode/Bytecode;Ljava/lang/String;I)V
        25: .line 259
            aload 7 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
        26: .line 261
            aload 7 /* code */
        27: .line 262
            iload 9 /* enabledClassIndex */
        28: .line 263
            ldc "getFieldHandler"
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.GETFIELDHANDLER_METHOD_DESCRIPTOR:Ljava/lang/String;
        29: .line 264
            iconst_1
        30: .line 261
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        31: .line 267
            aload 7 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
        32: .line 269
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getName:()Ljava/lang/String;
            invokevirtual javassist.bytecode.Bytecode.addLdc:(Ljava/lang/String;)V
        33: .line 271
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            iconst_1
            invokestatic org.hibernate.bytecode.internal.javassist.FieldTransformer.addTypeDependDataLoad:(Ljavassist/bytecode/Bytecode;Ljava/lang/String;I)V
        34: .line 274
            aload 1 /* classfile */
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
        35: .line 275
            iconst_1
        36: .line 273
            invokestatic org.hibernate.bytecode.internal.javassist.FieldTransformer.addInvokeFieldHandlerMethod:(Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/Bytecode;Ljava/lang/String;Z)V
        37: .line 278
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            invokestatic org.hibernate.bytecode.internal.javassist.FieldTransformer.addTypeDependDataReturn:(Ljavassist/bytecode/Bytecode;Ljava/lang/String;)V
        38: .line 280
            aload 6 /* readMethodInfo */
            aload 7 /* code */
            invokevirtual javassist.bytecode.Bytecode.toCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
            invokevirtual javassist.bytecode.MethodInfo.setCodeAttribute:(Ljavassist/bytecode/CodeAttribute;)V
        39: .line 281
            aload 6 /* readMethodInfo */
            iconst_1
            invokevirtual javassist.bytecode.MethodInfo.setAccessFlags:(I)V
        40: .line 282
            aload 6 /* readMethodInfo */
            invokevirtual javassist.bytecode.MethodInfo.getCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
            astore 10 /* codeAttribute */
        start local 10 // javassist.bytecode.CodeAttribute codeAttribute
        41: .line 283
            aload 10 /* codeAttribute */
            ifnull 44
        42: .line 284
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.FieldTransformer.classPool:Ljavassist/ClassPool;
            aload 6 /* readMethodInfo */
            invokestatic javassist.bytecode.stackmap.MapMaker.make:(Ljavassist/ClassPool;Ljavassist/bytecode/MethodInfo;)Ljavassist/bytecode/StackMapTable;
            astore 11 /* smt */
        start local 11 // javassist.bytecode.StackMapTable smt
        43: .line 285
            aload 10 /* codeAttribute */
            aload 11 /* smt */
            invokevirtual javassist.bytecode.CodeAttribute.setAttribute:(Ljavassist/bytecode/StackMapTable;)V
        end local 11 // javassist.bytecode.StackMapTable smt
        44: .line 287
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer javassist.bytecode.ClassFile javassist.bytecode.FieldInfo javassist.bytecode.ConstPool int java.lang.String javassist.bytecode.MethodInfo javassist.bytecode.Bytecode int int javassist.bytecode.CodeAttribute
      StackMap stack:
            aload 1 /* classfile */
            aload 6 /* readMethodInfo */
            invokevirtual javassist.bytecode.ClassFile.addMethod:(Ljavassist/bytecode/MethodInfo;)V
        45: .line 288
            return
        end local 10 // javassist.bytecode.CodeAttribute codeAttribute
        end local 9 // int enabledClassIndex
        end local 8 // int baseFieldIndex
        end local 7 // javassist.bytecode.Bytecode code
        end local 6 // javassist.bytecode.MethodInfo readMethodInfo
        end local 5 // java.lang.String readMethodDescriptor
        end local 4 // int thisClassInfo
        end local 3 // javassist.bytecode.ConstPool constPool
        end local 2 // javassist.bytecode.FieldInfo finfo
        end local 1 // javassist.bytecode.ClassFile classfile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   46     0                  this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0   46     1             classfile  Ljavassist/bytecode/ClassFile;
            0   46     2                 finfo  Ljavassist/bytecode/FieldInfo;
            1   46     3             constPool  Ljavassist/bytecode/ConstPool;
            2   46     4         thisClassInfo  I
            3   46     5  readMethodDescriptor  Ljava/lang/String;
            8   46     6        readMethodInfo  Ljavassist/bytecode/MethodInfo;
            9   46     7                  code  Ljavassist/bytecode/Bytecode;
           12   46     8        baseFieldIndex  I
           15   46     9     enabledClassIndex  I
           41   46    10         codeAttribute  Ljavassist/bytecode/CodeAttribute;
           43   44    11                   smt  Ljavassist/bytecode/StackMapTable;
    Exceptions:
      throws javassist.CannotCompileException, javassist.bytecode.BadBytecode
    MethodParameters:
           Name  Flags
      classfile  
      finfo      

  private void addWriteMethod(javassist.bytecode.ClassFile, javassist.bytecode.FieldInfo);
    descriptor: (Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/FieldInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classfile
        start local 2 // javassist.bytecode.FieldInfo finfo
         0: .line 291
            aload 1 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
            astore 3 /* constPool */
        start local 3 // javassist.bytecode.ConstPool constPool
         1: .line 292
            aload 3 /* constPool */
            invokevirtual javassist.bytecode.ConstPool.getThisClassInfo:()I
            istore 4 /* thisClassInfo */
        start local 4 // int thisClassInfo
         2: .line 293
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")V"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* writeMethodDescriptor */
        start local 5 // java.lang.String writeMethodDescriptor
         3: .line 294
            new javassist.bytecode.MethodInfo
            dup
         4: .line 295
            aload 3 /* constPool */
         5: .line 296
            new java.lang.StringBuilder
            dup
            ldc "$javassist_write_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 297
            aload 5 /* writeMethodDescriptor */
         7: .line 294
            invokespecial javassist.bytecode.MethodInfo.<init>:(Ljavassist/bytecode/ConstPool;Ljava/lang/String;Ljava/lang/String;)V
            astore 6 /* writeMethodInfo */
        start local 6 // javassist.bytecode.MethodInfo writeMethodInfo
         8: .line 301
            new javassist.bytecode.Bytecode
            dup
            aload 3 /* constPool */
            bipush 6
            iconst_3
            invokespecial javassist.bytecode.Bytecode.<init>:(Ljavassist/bytecode/ConstPool;II)V
            astore 7 /* code */
        start local 7 // javassist.bytecode.Bytecode code
         9: .line 303
            aload 7 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
        10: .line 305
            aload 3 /* constPool */
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.FIELD_HANDLED_TYPE_NAME:Ljava/lang/String;
            invokevirtual javassist.bytecode.ConstPool.addClassInfo:(Ljava/lang/String;)I
            istore 8 /* enabledClassIndex */
        start local 8 // int enabledClassIndex
        11: .line 306
            aload 7 /* code */
        12: .line 307
            iload 8 /* enabledClassIndex */
        13: .line 308
            ldc "getFieldHandler"
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.GETFIELDHANDLER_METHOD_DESCRIPTOR:Ljava/lang/String;
        14: .line 309
            iconst_1
        15: .line 306
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        16: .line 312
            aload 7 /* code */
            sipush 199
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        17: .line 313
            aload 7 /* code */
            bipush 9
            invokevirtual javassist.bytecode.Bytecode.addIndex:(I)V
        18: .line 315
            aload 7 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
        19: .line 317
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            iconst_1
            invokestatic org.hibernate.bytecode.internal.javassist.FieldTransformer.addTypeDependDataLoad:(Ljavassist/bytecode/Bytecode;Ljava/lang/String;I)V
        20: .line 319
            aload 7 /* code */
            sipush 181
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        21: .line 320
            aload 3 /* constPool */
            iload 4 /* thisClassInfo */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getName:()Ljava/lang/String;
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            invokevirtual javassist.bytecode.ConstPool.addFieldrefInfo:(ILjava/lang/String;Ljava/lang/String;)I
            istore 9 /* baseFieldIndex */
        start local 9 // int baseFieldIndex
        22: .line 321
            aload 7 /* code */
            iload 9 /* baseFieldIndex */
            invokevirtual javassist.bytecode.Bytecode.addIndex:(I)V
        23: .line 322
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            invokestatic javassist.bytecode.Descriptor.dataSize:(Ljava/lang/String;)I
            ineg
            invokevirtual javassist.bytecode.Bytecode.growStack:(I)V
        24: .line 324
            aload 7 /* code */
            sipush 177
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        25: .line 326
            aload 7 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
        26: .line 328
            aload 7 /* code */
            bipush 89
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        27: .line 330
            aload 7 /* code */
        28: .line 331
            iload 8 /* enabledClassIndex */
        29: .line 332
            ldc "getFieldHandler"
        30: .line 333
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.GETFIELDHANDLER_METHOD_DESCRIPTOR:Ljava/lang/String;
        31: .line 334
            iconst_1
        32: .line 330
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        33: .line 337
            aload 7 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
        34: .line 339
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getName:()Ljava/lang/String;
            invokevirtual javassist.bytecode.Bytecode.addLdc:(Ljava/lang/String;)V
        35: .line 341
            aload 7 /* code */
            iconst_0
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
        36: .line 343
            aload 7 /* code */
            sipush 180
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        37: .line 344
            aload 7 /* code */
            iload 9 /* baseFieldIndex */
            invokevirtual javassist.bytecode.Bytecode.addIndex:(I)V
        38: .line 345
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            invokestatic javassist.bytecode.Descriptor.dataSize:(Ljava/lang/String;)I
            iconst_1
            isub
            invokevirtual javassist.bytecode.Bytecode.growStack:(I)V
        39: .line 347
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            iconst_1
            invokestatic org.hibernate.bytecode.internal.javassist.FieldTransformer.addTypeDependDataLoad:(Ljavassist/bytecode/Bytecode;Ljava/lang/String;I)V
        40: .line 349
            aload 1 /* classfile */
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            iconst_0
            invokestatic org.hibernate.bytecode.internal.javassist.FieldTransformer.addInvokeFieldHandlerMethod:(Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/Bytecode;Ljava/lang/String;Z)V
        41: .line 351
            aload 7 /* code */
            sipush 181
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        42: .line 352
            aload 7 /* code */
            iload 9 /* baseFieldIndex */
            invokevirtual javassist.bytecode.Bytecode.addIndex:(I)V
        43: .line 353
            aload 7 /* code */
            aload 2 /* finfo */
            invokevirtual javassist.bytecode.FieldInfo.getDescriptor:()Ljava/lang/String;
            invokestatic javassist.bytecode.Descriptor.dataSize:(Ljava/lang/String;)I
            ineg
            invokevirtual javassist.bytecode.Bytecode.growStack:(I)V
        44: .line 355
            aload 7 /* code */
            sipush 177
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        45: .line 357
            aload 6 /* writeMethodInfo */
            aload 7 /* code */
            invokevirtual javassist.bytecode.Bytecode.toCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
            invokevirtual javassist.bytecode.MethodInfo.setCodeAttribute:(Ljavassist/bytecode/CodeAttribute;)V
        46: .line 358
            aload 6 /* writeMethodInfo */
            iconst_1
            invokevirtual javassist.bytecode.MethodInfo.setAccessFlags:(I)V
        47: .line 359
            aload 6 /* writeMethodInfo */
            invokevirtual javassist.bytecode.MethodInfo.getCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
            astore 10 /* codeAttribute */
        start local 10 // javassist.bytecode.CodeAttribute codeAttribute
        48: .line 360
            aload 10 /* codeAttribute */
            ifnull 51
        49: .line 361
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.FieldTransformer.classPool:Ljavassist/ClassPool;
            aload 6 /* writeMethodInfo */
            invokestatic javassist.bytecode.stackmap.MapMaker.make:(Ljavassist/ClassPool;Ljavassist/bytecode/MethodInfo;)Ljavassist/bytecode/StackMapTable;
            astore 11 /* smt */
        start local 11 // javassist.bytecode.StackMapTable smt
        50: .line 362
            aload 10 /* codeAttribute */
            aload 11 /* smt */
            invokevirtual javassist.bytecode.CodeAttribute.setAttribute:(Ljavassist/bytecode/StackMapTable;)V
        end local 11 // javassist.bytecode.StackMapTable smt
        51: .line 364
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer javassist.bytecode.ClassFile javassist.bytecode.FieldInfo javassist.bytecode.ConstPool int java.lang.String javassist.bytecode.MethodInfo javassist.bytecode.Bytecode int int javassist.bytecode.CodeAttribute
      StackMap stack:
            aload 1 /* classfile */
            aload 6 /* writeMethodInfo */
            invokevirtual javassist.bytecode.ClassFile.addMethod:(Ljavassist/bytecode/MethodInfo;)V
        52: .line 365
            return
        end local 10 // javassist.bytecode.CodeAttribute codeAttribute
        end local 9 // int baseFieldIndex
        end local 8 // int enabledClassIndex
        end local 7 // javassist.bytecode.Bytecode code
        end local 6 // javassist.bytecode.MethodInfo writeMethodInfo
        end local 5 // java.lang.String writeMethodDescriptor
        end local 4 // int thisClassInfo
        end local 3 // javassist.bytecode.ConstPool constPool
        end local 2 // javassist.bytecode.FieldInfo finfo
        end local 1 // javassist.bytecode.ClassFile classfile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   53     0                   this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0   53     1              classfile  Ljavassist/bytecode/ClassFile;
            0   53     2                  finfo  Ljavassist/bytecode/FieldInfo;
            1   53     3              constPool  Ljavassist/bytecode/ConstPool;
            2   53     4          thisClassInfo  I
            3   53     5  writeMethodDescriptor  Ljava/lang/String;
            8   53     6        writeMethodInfo  Ljavassist/bytecode/MethodInfo;
            9   53     7                   code  Ljavassist/bytecode/Bytecode;
           11   53     8      enabledClassIndex  I
           22   53     9         baseFieldIndex  I
           48   53    10          codeAttribute  Ljavassist/bytecode/CodeAttribute;
           50   51    11                    smt  Ljavassist/bytecode/StackMapTable;
    Exceptions:
      throws javassist.CannotCompileException, javassist.bytecode.BadBytecode
    MethodParameters:
           Name  Flags
      classfile  
      finfo      

  private void transformInvokevirtualsIntoPutAndGetfields(javassist.bytecode.ClassFile);
    descriptor: (Ljavassist/bytecode/ClassFile;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classfile
         0: .line 368
            aload 1 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getMethods:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 20
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer javassist.bytecode.ClassFile top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* o */
        start local 2 // java.lang.Object o
         2: .line 369
            aload 2 /* o */
            checkcast javassist.bytecode.MethodInfo
            astore 4 /* methodInfo */
        start local 4 // javassist.bytecode.MethodInfo methodInfo
         3: .line 370
            aload 4 /* methodInfo */
            invokevirtual javassist.bytecode.MethodInfo.getName:()Ljava/lang/String;
            astore 5 /* methodName */
        start local 5 // java.lang.String methodName
         4: .line 371
            aload 5 /* methodName */
            ldc "$javassist_read_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 20
         5: .line 372
            aload 5 /* methodName */
            ldc "$javassist_write_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 20
         6: .line 373
            aload 5 /* methodName */
            ldc "getFieldHandler"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
         7: .line 374
            aload 5 /* methodName */
            ldc "setFieldHandler"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 375
            goto 20
         9: .line 378
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer javassist.bytecode.ClassFile java.lang.Object java.util.Iterator javassist.bytecode.MethodInfo java.lang.String
      StackMap stack:
            aload 4 /* methodInfo */
            invokevirtual javassist.bytecode.MethodInfo.getCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
            astore 6 /* codeAttr */
        start local 6 // javassist.bytecode.CodeAttribute codeAttr
        10: .line 379
            aload 6 /* codeAttr */
            ifnonnull 12
        11: .line 380
            goto 20
        12: .line 383
      StackMap locals: javassist.bytecode.CodeAttribute
      StackMap stack:
            aload 6 /* codeAttr */
            invokevirtual javassist.bytecode.CodeAttribute.iterator:()Ljavassist/bytecode/CodeIterator;
            astore 7 /* iter */
        start local 7 // javassist.bytecode.CodeIterator iter
        13: .line 384
            goto 17
        14: .line 385
      StackMap locals: javassist.bytecode.CodeIterator
      StackMap stack:
            aload 7 /* iter */
            invokevirtual javassist.bytecode.CodeIterator.next:()I
            istore 8 /* pos */
        start local 8 // int pos
        15: .line 386
            aload 0 /* this */
            aload 1 /* classfile */
            aload 7 /* iter */
            iload 8 /* pos */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.transformInvokevirtualsIntoGetfields:(Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/CodeIterator;I)I
            istore 8 /* pos */
        16: .line 387
            aload 0 /* this */
            aload 1 /* classfile */
            aload 7 /* iter */
            iload 8 /* pos */
            invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.transformInvokevirtualsIntoPutfields:(Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/CodeIterator;I)I
            pop
        end local 8 // int pos
        17: .line 384
      StackMap locals:
      StackMap stack:
            aload 7 /* iter */
            invokevirtual javassist.bytecode.CodeIterator.hasNext:()Z
            ifne 14
        18: .line 389
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.FieldTransformer.classPool:Ljavassist/ClassPool;
            aload 4 /* methodInfo */
            invokestatic javassist.bytecode.stackmap.MapMaker.make:(Ljavassist/ClassPool;Ljavassist/bytecode/MethodInfo;)Ljavassist/bytecode/StackMapTable;
            astore 8 /* smt */
        start local 8 // javassist.bytecode.StackMapTable smt
        19: .line 390
            aload 6 /* codeAttr */
            aload 8 /* smt */
            invokevirtual javassist.bytecode.CodeAttribute.setAttribute:(Ljavassist/bytecode/StackMapTable;)V
        end local 8 // javassist.bytecode.StackMapTable smt
        end local 7 // javassist.bytecode.CodeIterator iter
        end local 6 // javassist.bytecode.CodeAttribute codeAttr
        end local 5 // java.lang.String methodName
        end local 4 // javassist.bytecode.MethodInfo methodInfo
        end local 2 // java.lang.Object o
        20: .line 368
      StackMap locals: org.hibernate.bytecode.internal.javassist.FieldTransformer javassist.bytecode.ClassFile top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        21: .line 392
            return
        end local 1 // javassist.bytecode.ClassFile classfile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0   22     1   classfile  Ljavassist/bytecode/ClassFile;
            2   20     2           o  Ljava/lang/Object;
            3   20     4  methodInfo  Ljavassist/bytecode/MethodInfo;
            4   20     5  methodName  Ljava/lang/String;
           10   20     6    codeAttr  Ljavassist/bytecode/CodeAttribute;
           13   20     7        iter  Ljavassist/bytecode/CodeIterator;
           15   17     8         pos  I
           19   20     8         smt  Ljavassist/bytecode/StackMapTable;
    Exceptions:
      throws javassist.CannotCompileException, javassist.bytecode.BadBytecode
    MethodParameters:
           Name  Flags
      classfile  

  private int transformInvokevirtualsIntoGetfields(javassist.bytecode.ClassFile, javassist.bytecode.CodeIterator, int);
    descriptor: (Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/CodeIterator;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classfile
        start local 2 // javassist.bytecode.CodeIterator iter
        start local 3 // int pos
         0: .line 395
            aload 1 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
            astore 4 /* constPool */
        start local 4 // javassist.bytecode.ConstPool constPool
         1: .line 396
            aload 2 /* iter */
            iload 3 /* pos */
            invokevirtual javassist.bytecode.CodeIterator.byteAt:(I)I
            istore 5 /* c */
        start local 5 // int c
         2: .line 397
            iload 5 /* c */
            sipush 180
            if_icmpeq 4
         3: .line 398
            iload 3 /* pos */
            ireturn
         4: .line 401
      StackMap locals: javassist.bytecode.ConstPool int
      StackMap stack:
            aload 2 /* iter */
            iload 3 /* pos */
            iconst_1
            iadd
            invokevirtual javassist.bytecode.CodeIterator.u16bitAt:(I)I
            istore 6 /* index */
        start local 6 // int index
         5: .line 402
            aload 4 /* constPool */
            iload 6 /* index */
            invokevirtual javassist.bytecode.ConstPool.getFieldrefName:(I)Ljava/lang/String;
            astore 7 /* fieldName */
        start local 7 // java.lang.String fieldName
         6: .line 403
            aload 4 /* constPool */
            iload 6 /* index */
            invokevirtual javassist.bytecode.ConstPool.getFieldrefClassName:(I)Ljava/lang/String;
            astore 8 /* className */
        start local 8 // java.lang.String className
         7: .line 404
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.FieldTransformer.filter:Lorg/hibernate/bytecode/internal/javassist/FieldFilter;
            aload 8 /* className */
            aload 7 /* fieldName */
            invokeinterface org.hibernate.bytecode.internal.javassist.FieldFilter.handleReadAccess:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 9
         8: .line 405
            iload 3 /* pos */
            ireturn
         9: .line 408
      StackMap locals: int java.lang.String java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "()"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* constPool */
            iload 6 /* index */
            invokevirtual javassist.bytecode.ConstPool.getFieldrefType:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* fieldReaderMethodDescriptor */
        start local 9 // java.lang.String fieldReaderMethodDescriptor
        10: .line 409
            aload 4 /* constPool */
        11: .line 410
            aload 4 /* constPool */
            invokevirtual javassist.bytecode.ConstPool.getThisClassInfo:()I
        12: .line 411
            new java.lang.StringBuilder
            dup
            ldc "$javassist_read_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 412
            aload 9 /* fieldReaderMethodDescriptor */
        14: .line 409
            invokevirtual javassist.bytecode.ConstPool.addMethodrefInfo:(ILjava/lang/String;Ljava/lang/String;)I
            istore 10 /* fieldReaderMethodIndex */
        start local 10 // int fieldReaderMethodIndex
        15: .line 414
            aload 2 /* iter */
            sipush 182
            iload 3 /* pos */
            invokevirtual javassist.bytecode.CodeIterator.writeByte:(II)V
        16: .line 415
            aload 2 /* iter */
            iload 10 /* fieldReaderMethodIndex */
            iload 3 /* pos */
            iconst_1
            iadd
            invokevirtual javassist.bytecode.CodeIterator.write16bit:(II)V
        17: .line 416
            iload 3 /* pos */
            ireturn
        end local 10 // int fieldReaderMethodIndex
        end local 9 // java.lang.String fieldReaderMethodDescriptor
        end local 8 // java.lang.String className
        end local 7 // java.lang.String fieldName
        end local 6 // int index
        end local 5 // int c
        end local 4 // javassist.bytecode.ConstPool constPool
        end local 3 // int pos
        end local 2 // javassist.bytecode.CodeIterator iter
        end local 1 // javassist.bytecode.ClassFile classfile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   18     0                         this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0   18     1                    classfile  Ljavassist/bytecode/ClassFile;
            0   18     2                         iter  Ljavassist/bytecode/CodeIterator;
            0   18     3                          pos  I
            1   18     4                    constPool  Ljavassist/bytecode/ConstPool;
            2   18     5                            c  I
            5   18     6                        index  I
            6   18     7                    fieldName  Ljava/lang/String;
            7   18     8                    className  Ljava/lang/String;
           10   18     9  fieldReaderMethodDescriptor  Ljava/lang/String;
           15   18    10       fieldReaderMethodIndex  I
    MethodParameters:
           Name  Flags
      classfile  
      iter       
      pos        

  private int transformInvokevirtualsIntoPutfields(javassist.bytecode.ClassFile, javassist.bytecode.CodeIterator, int);
    descriptor: (Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/CodeIterator;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
        start local 1 // javassist.bytecode.ClassFile classfile
        start local 2 // javassist.bytecode.CodeIterator iter
        start local 3 // int pos
         0: .line 420
            aload 1 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
            astore 4 /* constPool */
        start local 4 // javassist.bytecode.ConstPool constPool
         1: .line 421
            aload 2 /* iter */
            iload 3 /* pos */
            invokevirtual javassist.bytecode.CodeIterator.byteAt:(I)I
            istore 5 /* c */
        start local 5 // int c
         2: .line 422
            iload 5 /* c */
            sipush 181
            if_icmpeq 4
         3: .line 423
            iload 3 /* pos */
            ireturn
         4: .line 426
      StackMap locals: javassist.bytecode.ConstPool int
      StackMap stack:
            aload 2 /* iter */
            iload 3 /* pos */
            iconst_1
            iadd
            invokevirtual javassist.bytecode.CodeIterator.u16bitAt:(I)I
            istore 6 /* index */
        start local 6 // int index
         5: .line 427
            aload 4 /* constPool */
            iload 6 /* index */
            invokevirtual javassist.bytecode.ConstPool.getFieldrefName:(I)Ljava/lang/String;
            astore 7 /* fieldName */
        start local 7 // java.lang.String fieldName
         6: .line 428
            aload 4 /* constPool */
            iload 6 /* index */
            invokevirtual javassist.bytecode.ConstPool.getFieldrefClassName:(I)Ljava/lang/String;
            astore 8 /* className */
        start local 8 // java.lang.String className
         7: .line 429
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.FieldTransformer.filter:Lorg/hibernate/bytecode/internal/javassist/FieldFilter;
            aload 8 /* className */
            aload 7 /* fieldName */
            invokeinterface org.hibernate.bytecode.internal.javassist.FieldFilter.handleWriteAccess:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 9
         8: .line 430
            iload 3 /* pos */
            ireturn
         9: .line 433
      StackMap locals: int java.lang.String java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* constPool */
            iload 6 /* index */
            invokevirtual javassist.bytecode.ConstPool.getFieldrefType:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")V"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* fieldWriterMethodDescriptor */
        start local 9 // java.lang.String fieldWriterMethodDescriptor
        10: .line 434
            aload 4 /* constPool */
        11: .line 435
            aload 4 /* constPool */
            invokevirtual javassist.bytecode.ConstPool.getThisClassInfo:()I
        12: .line 436
            new java.lang.StringBuilder
            dup
            ldc "$javassist_write_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 437
            aload 9 /* fieldWriterMethodDescriptor */
        14: .line 434
            invokevirtual javassist.bytecode.ConstPool.addMethodrefInfo:(ILjava/lang/String;Ljava/lang/String;)I
            istore 10 /* fieldWriterMethodIndex */
        start local 10 // int fieldWriterMethodIndex
        15: .line 439
            aload 2 /* iter */
            sipush 182
            iload 3 /* pos */
            invokevirtual javassist.bytecode.CodeIterator.writeByte:(II)V
        16: .line 440
            aload 2 /* iter */
            iload 10 /* fieldWriterMethodIndex */
            iload 3 /* pos */
            iconst_1
            iadd
            invokevirtual javassist.bytecode.CodeIterator.write16bit:(II)V
        17: .line 441
            iload 3 /* pos */
            ireturn
        end local 10 // int fieldWriterMethodIndex
        end local 9 // java.lang.String fieldWriterMethodDescriptor
        end local 8 // java.lang.String className
        end local 7 // java.lang.String fieldName
        end local 6 // int index
        end local 5 // int c
        end local 4 // javassist.bytecode.ConstPool constPool
        end local 3 // int pos
        end local 2 // javassist.bytecode.CodeIterator iter
        end local 1 // javassist.bytecode.ClassFile classfile
        end local 0 // org.hibernate.bytecode.internal.javassist.FieldTransformer this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   18     0                         this  Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
            0   18     1                    classfile  Ljavassist/bytecode/ClassFile;
            0   18     2                         iter  Ljavassist/bytecode/CodeIterator;
            0   18     3                          pos  I
            1   18     4                    constPool  Ljavassist/bytecode/ConstPool;
            2   18     5                            c  I
            5   18     6                        index  I
            6   18     7                    fieldName  Ljava/lang/String;
            7   18     8                    className  Ljava/lang/String;
           10   18     9  fieldWriterMethodDescriptor  Ljava/lang/String;
           15   18    10       fieldWriterMethodIndex  I
    MethodParameters:
           Name  Flags
      classfile  
      iter       
      pos        

  private static void addInvokeFieldHandlerMethod(javassist.bytecode.ClassFile, javassist.bytecode.Bytecode, java.lang.String, boolean);
    descriptor: (Ljavassist/bytecode/ClassFile;Ljavassist/bytecode/Bytecode;Ljava/lang/String;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // javassist.bytecode.ClassFile classfile
        start local 1 // javassist.bytecode.Bytecode code
        start local 2 // java.lang.String typeName
        start local 3 // boolean isReadMethod
         0: .line 449
            aload 0 /* classfile */
            invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
            astore 4 /* constPool */
        start local 4 // javassist.bytecode.ConstPool constPool
         1: .line 451
            aload 4 /* constPool */
            getstatic org.hibernate.bytecode.internal.javassist.FieldTransformer.FIELD_HANDLER_TYPE_NAME:Ljava/lang/String;
            invokevirtual javassist.bytecode.ConstPool.addClassInfo:(Ljava/lang/String;)I
            istore 5 /* callbackTypeIndex */
        start local 5 // int callbackTypeIndex
         2: .line 452
            aload 2 /* typeName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 76
            if_icmpne 4
         3: .line 453
            aload 2 /* typeName */
            aload 2 /* typeName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 59
            if_icmpeq 5
         4: .line 454
      StackMap locals: javassist.bytecode.ConstPool int
      StackMap stack:
            aload 2 /* typeName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 31
         5: .line 456
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            bipush 76
            invokevirtual java.lang.String.indexOf:(I)I
            istore 6 /* indexOfL */
        start local 6 // int indexOfL
         6: .line 458
            iload 6 /* indexOfL */
            ifne 10
         7: .line 460
            aload 2 /* typeName */
            iconst_1
            aload 2 /* typeName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* type */
        start local 7 // java.lang.String type
         8: .line 461
            aload 7 /* type */
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 7 /* type */
         9: .line 462
            goto 14
        end local 7 // java.lang.String type
        10: .line 463
      StackMap locals: int
      StackMap stack:
            iload 6 /* indexOfL */
            iconst_m1
            if_icmpne 13
        11: .line 466
            aload 2 /* typeName */
            astore 7 /* type */
        start local 7 // java.lang.String type
        12: .line 467
            goto 14
        end local 7 // java.lang.String type
        13: .line 470
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 7 /* type */
        start local 7 // java.lang.String type
        14: .line 473
      StackMap locals: java.lang.String
      StackMap stack:
            iload 3 /* isReadMethod */
            ifeq 23
        15: .line 474
            aload 1 /* code */
        16: .line 475
            iload 5 /* callbackTypeIndex */
        17: .line 476
            ldc "readObject"
        18: .line 477
            ldc "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;"
        19: .line 478
            iconst_4
        20: .line 474
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        21: .line 481
            aload 1 /* code */
            aload 7 /* type */
            invokevirtual javassist.bytecode.Bytecode.addCheckcast:(Ljava/lang/String;)V
        22: .line 482
            goto 160
        23: .line 484
      StackMap locals:
      StackMap stack:
            aload 1 /* code */
        24: .line 485
            iload 5 /* callbackTypeIndex */
        25: .line 486
            ldc "writeObject"
        26: .line 487
            ldc "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"
        27: .line 488
            iconst_5
        28: .line 484
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        29: .line 491
            aload 1 /* code */
            aload 7 /* type */
            invokevirtual javassist.bytecode.Bytecode.addCheckcast:(Ljava/lang/String;)V
        end local 7 // java.lang.String type
        end local 6 // int indexOfL
        30: .line 493
            goto 160
        31: .line 494
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            ldc "Z"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 47
        32: .line 496
            iload 3 /* isReadMethod */
            ifeq 40
        33: .line 497
            aload 1 /* code */
        34: .line 498
            iload 5 /* callbackTypeIndex */
        35: .line 499
            ldc "readBoolean"
        36: .line 500
            ldc "(Ljava/lang/Object;Ljava/lang/String;Z)Z"
        37: .line 501
            iconst_4
        38: .line 497
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        39: .line 503
            goto 160
        40: .line 505
      StackMap locals:
      StackMap stack:
            aload 1 /* code */
        41: .line 506
            iload 5 /* callbackTypeIndex */
        42: .line 507
            ldc "writeBoolean"
        43: .line 508
            ldc "(Ljava/lang/Object;Ljava/lang/String;ZZ)Z"
        44: .line 509
            iconst_5
        45: .line 505
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        46: .line 512
            goto 160
        47: .line 513
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            ldc "B"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 63
        48: .line 515
            iload 3 /* isReadMethod */
            ifeq 56
        49: .line 516
            aload 1 /* code */
        50: .line 517
            iload 5 /* callbackTypeIndex */
        51: .line 518
            ldc "readByte"
        52: .line 519
            ldc "(Ljava/lang/Object;Ljava/lang/String;B)B"
        53: .line 520
            iconst_4
        54: .line 516
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        55: .line 522
            goto 160
        56: .line 524
      StackMap locals:
      StackMap stack:
            aload 1 /* code */
        57: .line 525
            iload 5 /* callbackTypeIndex */
        58: .line 526
            ldc "writeByte"
        59: .line 527
            ldc "(Ljava/lang/Object;Ljava/lang/String;BB)B"
        60: .line 528
            iconst_5
        61: .line 524
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        62: .line 531
            goto 160
        63: .line 532
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            ldc "C"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 79
        64: .line 534
            iload 3 /* isReadMethod */
            ifeq 72
        65: .line 535
            aload 1 /* code */
        66: .line 536
            iload 5 /* callbackTypeIndex */
        67: .line 537
            ldc "readChar"
        68: .line 538
            ldc "(Ljava/lang/Object;Ljava/lang/String;C)C"
        69: .line 539
            iconst_4
        70: .line 535
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        71: .line 541
            goto 160
        72: .line 543
      StackMap locals:
      StackMap stack:
            aload 1 /* code */
        73: .line 544
            iload 5 /* callbackTypeIndex */
        74: .line 545
            ldc "writeChar"
        75: .line 546
            ldc "(Ljava/lang/Object;Ljava/lang/String;CC)C"
        76: .line 547
            iconst_5
        77: .line 543
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        78: .line 550
            goto 160
        79: .line 551
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            ldc "I"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 95
        80: .line 553
            iload 3 /* isReadMethod */
            ifeq 88
        81: .line 554
            aload 1 /* code */
        82: .line 555
            iload 5 /* callbackTypeIndex */
        83: .line 556
            ldc "readInt"
        84: .line 557
            ldc "(Ljava/lang/Object;Ljava/lang/String;I)I"
        85: .line 558
            iconst_4
        86: .line 554
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        87: .line 560
            goto 160
        88: .line 562
      StackMap locals:
      StackMap stack:
            aload 1 /* code */
        89: .line 563
            iload 5 /* callbackTypeIndex */
        90: .line 564
            ldc "writeInt"
        91: .line 565
            ldc "(Ljava/lang/Object;Ljava/lang/String;II)I"
        92: .line 566
            iconst_5
        93: .line 562
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
        94: .line 569
            goto 160
        95: .line 570
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            ldc "S"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 111
        96: .line 572
            iload 3 /* isReadMethod */
            ifeq 104
        97: .line 573
            aload 1 /* code */
        98: .line 574
            iload 5 /* callbackTypeIndex */
        99: .line 575
            ldc "readShort"
       100: .line 576
            ldc "(Ljava/lang/Object;Ljava/lang/String;S)S"
       101: .line 577
            iconst_4
       102: .line 573
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
       103: .line 579
            goto 160
       104: .line 581
      StackMap locals:
      StackMap stack:
            aload 1 /* code */
       105: .line 582
            iload 5 /* callbackTypeIndex */
       106: .line 583
            ldc "writeShort"
       107: .line 584
            ldc "(Ljava/lang/Object;Ljava/lang/String;SS)S"
       108: .line 585
            iconst_5
       109: .line 581
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
       110: .line 588
            goto 160
       111: .line 589
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            ldc "D"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 127
       112: .line 591
            iload 3 /* isReadMethod */
            ifeq 120
       113: .line 592
            aload 1 /* code */
       114: .line 593
            iload 5 /* callbackTypeIndex */
       115: .line 594
            ldc "readDouble"
       116: .line 595
            ldc "(Ljava/lang/Object;Ljava/lang/String;D)D"
       117: .line 596
            iconst_5
       118: .line 592
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
       119: .line 598
            goto 160
       120: .line 600
      StackMap locals:
      StackMap stack:
            aload 1 /* code */
       121: .line 601
            iload 5 /* callbackTypeIndex */
       122: .line 602
            ldc "writeDouble"
       123: .line 603
            ldc "(Ljava/lang/Object;Ljava/lang/String;DD)D"
       124: .line 604
            bipush 7
       125: .line 600
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
       126: .line 607
            goto 160
       127: .line 608
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            ldc "F"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 143
       128: .line 610
            iload 3 /* isReadMethod */
            ifeq 136
       129: .line 611
            aload 1 /* code */
       130: .line 612
            iload 5 /* callbackTypeIndex */
       131: .line 613
            ldc "readFloat"
       132: .line 614
            ldc "(Ljava/lang/Object;Ljava/lang/String;F)F"
       133: .line 615
            iconst_4
       134: .line 611
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
       135: .line 617
            goto 160
       136: .line 619
      StackMap locals:
      StackMap stack:
            aload 1 /* code */
       137: .line 620
            iload 5 /* callbackTypeIndex */
       138: .line 621
            ldc "writeFloat"
       139: .line 622
            ldc "(Ljava/lang/Object;Ljava/lang/String;FF)F"
       140: .line 623
            iconst_5
       141: .line 619
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
       142: .line 626
            goto 160
       143: .line 627
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            ldc "J"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 159
       144: .line 629
            iload 3 /* isReadMethod */
            ifeq 152
       145: .line 630
            aload 1 /* code */
       146: .line 631
            iload 5 /* callbackTypeIndex */
       147: .line 632
            ldc "readLong"
       148: .line 633
            ldc "(Ljava/lang/Object;Ljava/lang/String;J)J"
       149: .line 634
            iconst_5
       150: .line 630
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
       151: .line 636
            goto 160
       152: .line 638
      StackMap locals:
      StackMap stack:
            aload 1 /* code */
       153: .line 639
            iload 5 /* callbackTypeIndex */
       154: .line 640
            ldc "writeLong"
       155: .line 641
            ldc "(Ljava/lang/Object;Ljava/lang/String;JJ)J"
       156: .line 642
            bipush 7
       157: .line 638
            invokevirtual javassist.bytecode.Bytecode.addInvokeinterface:(ILjava/lang/String;Ljava/lang/String;I)V
       158: .line 645
            goto 160
       159: .line 648
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "bad type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
       160: .line 650
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int callbackTypeIndex
        end local 4 // javassist.bytecode.ConstPool constPool
        end local 3 // boolean isReadMethod
        end local 2 // java.lang.String typeName
        end local 1 // javassist.bytecode.Bytecode code
        end local 0 // javassist.bytecode.ClassFile classfile
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  161     0          classfile  Ljavassist/bytecode/ClassFile;
            0  161     1               code  Ljavassist/bytecode/Bytecode;
            0  161     2           typeName  Ljava/lang/String;
            0  161     3       isReadMethod  Z
            1  161     4          constPool  Ljavassist/bytecode/ConstPool;
            2  161     5  callbackTypeIndex  I
            6   30     6           indexOfL  I
            8   10     7               type  Ljava/lang/String;
           12   13     7               type  Ljava/lang/String;
           14   30     7               type  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      classfile     
      code          
      typeName      
      isReadMethod  

  private static void addTypeDependDataLoad(javassist.bytecode.Bytecode, java.lang.String, int);
    descriptor: (Ljavassist/bytecode/Bytecode;Ljava/lang/String;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // javassist.bytecode.Bytecode code
        start local 1 // java.lang.String typeName
        start local 2 // int i
         0: .line 653
            aload 1 /* typeName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 76
            if_icmpne 2
         1: .line 654
            aload 1 /* typeName */
            aload 1 /* typeName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 59
            if_icmpeq 3
         2: .line 655
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 5
         3: .line 657
      StackMap locals:
      StackMap stack:
            aload 0 /* code */
            iload 2 /* i */
            invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
         4: .line 658
            goto 22
         5: .line 659
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "Z"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         6: .line 660
            aload 1 /* typeName */
            ldc "B"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         7: .line 661
            aload 1 /* typeName */
            ldc "C"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         8: .line 662
            aload 1 /* typeName */
            ldc "I"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 663
            aload 1 /* typeName */
            ldc "S"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 665
      StackMap locals:
      StackMap stack:
            aload 0 /* code */
            iload 2 /* i */
            invokevirtual javassist.bytecode.Bytecode.addIload:(I)V
        11: .line 666
            goto 22
        12: .line 667
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "D"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 669
            aload 0 /* code */
            iload 2 /* i */
            invokevirtual javassist.bytecode.Bytecode.addDload:(I)V
        14: .line 670
            goto 22
        15: .line 671
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "F"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 673
            aload 0 /* code */
            iload 2 /* i */
            invokevirtual javassist.bytecode.Bytecode.addFload:(I)V
        17: .line 674
            goto 22
        18: .line 675
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "J"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 677
            aload 0 /* code */
            iload 2 /* i */
            invokevirtual javassist.bytecode.Bytecode.addLload:(I)V
        20: .line 678
            goto 22
        21: .line 681
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "bad type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 683
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int i
        end local 1 // java.lang.String typeName
        end local 0 // javassist.bytecode.Bytecode code
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      code  Ljavassist/bytecode/Bytecode;
            0   23     1  typeName  Ljava/lang/String;
            0   23     2         i  I
    MethodParameters:
          Name  Flags
      code      
      typeName  
      i         

  private static void addTypeDependDataStore(javassist.bytecode.Bytecode, java.lang.String, int);
    descriptor: (Ljavassist/bytecode/Bytecode;Ljava/lang/String;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // javassist.bytecode.Bytecode code
        start local 1 // java.lang.String typeName
        start local 2 // int i
         0: .line 686
            aload 1 /* typeName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 76
            if_icmpne 2
         1: .line 687
            aload 1 /* typeName */
            aload 1 /* typeName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 59
            if_icmpeq 3
         2: .line 688
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 5
         3: .line 690
      StackMap locals:
      StackMap stack:
            aload 0 /* code */
            iload 2 /* i */
            invokevirtual javassist.bytecode.Bytecode.addAstore:(I)V
         4: .line 691
            goto 22
         5: .line 692
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "Z"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         6: .line 693
            aload 1 /* typeName */
            ldc "B"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         7: .line 694
            aload 1 /* typeName */
            ldc "C"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         8: .line 695
            aload 1 /* typeName */
            ldc "I"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 696
            aload 1 /* typeName */
            ldc "S"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 698
      StackMap locals:
      StackMap stack:
            aload 0 /* code */
            iload 2 /* i */
            invokevirtual javassist.bytecode.Bytecode.addIstore:(I)V
        11: .line 699
            goto 22
        12: .line 700
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "D"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 702
            aload 0 /* code */
            iload 2 /* i */
            invokevirtual javassist.bytecode.Bytecode.addDstore:(I)V
        14: .line 703
            goto 22
        15: .line 704
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "F"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 706
            aload 0 /* code */
            iload 2 /* i */
            invokevirtual javassist.bytecode.Bytecode.addFstore:(I)V
        17: .line 707
            goto 22
        18: .line 708
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "J"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 710
            aload 0 /* code */
            iload 2 /* i */
            invokevirtual javassist.bytecode.Bytecode.addLstore:(I)V
        20: .line 711
            goto 22
        21: .line 714
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "bad type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 716
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int i
        end local 1 // java.lang.String typeName
        end local 0 // javassist.bytecode.Bytecode code
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      code  Ljavassist/bytecode/Bytecode;
            0   23     1  typeName  Ljava/lang/String;
            0   23     2         i  I
    MethodParameters:
          Name  Flags
      code      
      typeName  
      i         

  private static void addTypeDependDataReturn(javassist.bytecode.Bytecode, java.lang.String);
    descriptor: (Ljavassist/bytecode/Bytecode;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // javassist.bytecode.Bytecode code
        start local 1 // java.lang.String typeName
         0: .line 719
            aload 1 /* typeName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 76
            if_icmpne 2
         1: .line 720
            aload 1 /* typeName */
            aload 1 /* typeName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 59
            if_icmpeq 3
         2: .line 721
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 5
         3: .line 723
      StackMap locals:
      StackMap stack:
            aload 0 /* code */
            sipush 176
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
         4: .line 724
            goto 22
         5: .line 725
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "Z"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         6: .line 726
            aload 1 /* typeName */
            ldc "B"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         7: .line 727
            aload 1 /* typeName */
            ldc "C"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         8: .line 728
            aload 1 /* typeName */
            ldc "I"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 729
            aload 1 /* typeName */
            ldc "S"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 731
      StackMap locals:
      StackMap stack:
            aload 0 /* code */
            sipush 172
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        11: .line 732
            goto 22
        12: .line 733
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "D"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 735
            aload 0 /* code */
            sipush 175
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        14: .line 736
            goto 22
        15: .line 737
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "F"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 739
            aload 0 /* code */
            sipush 174
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        17: .line 740
            goto 22
        18: .line 741
      StackMap locals:
      StackMap stack:
            aload 1 /* typeName */
            ldc "J"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 743
            aload 0 /* code */
            sipush 173
            invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
        20: .line 744
            goto 22
        21: .line 747
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "bad type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 749
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String typeName
        end local 0 // javassist.bytecode.Bytecode code
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      code  Ljavassist/bytecode/Bytecode;
            0   23     1  typeName  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      code      
      typeName  
}
SourceFile: "FieldTransformer.java"