public class java.io.ObjectOutputStream extends java.io.OutputStream implements java.io.ObjectOutput, java.io.ObjectStreamConstants
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.io.ObjectOutputStream
  super_class: java.io.OutputStream
{
  private final java.io.ObjectOutputStream$BlockDataOutputStream bout;
    descriptor: Ljava/io/ObjectOutputStream$BlockDataOutputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.ObjectOutputStream$HandleTable handles;
    descriptor: Ljava/io/ObjectOutputStream$HandleTable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.ObjectOutputStream$ReplaceTable subs;
    descriptor: Ljava/io/ObjectOutputStream$ReplaceTable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int protocol;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int depth;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private byte[] primVals;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

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

  private boolean enableReplace;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.io.SerialCallbackContext curContext;
    descriptor: Ljava/io/SerialCallbackContext;
    flags: (0x0002) ACC_PRIVATE

  private java.io.ObjectOutputStream$PutFieldImpl curPut;
    descriptor: Ljava/io/ObjectOutputStream$PutFieldImpl;
    flags: (0x0002) ACC_PRIVATE

  private final java.io.ObjectOutputStream$DebugTraceInfoStack debugInfoStack;
    descriptor: Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final boolean extendedDebugInfo;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 215
            new sun.security.action.GetBooleanAction
            dup
         1: .line 216
            ldc "sun.io.serialization.extendedDebugInfo"
         2: .line 215
            invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
         3: .line 214
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
         4: .line 216
            invokevirtual java.lang.Boolean.booleanValue:()Z
         5: .line 213
            putstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
         6: .line 216
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.OutputStream out
         0: .line 241
            aload 0 /* this */
            invokespecial java.io.OutputStream.<init>:()V
         1: .line 184
            aload 0 /* this */
            iconst_2
            putfield java.io.ObjectOutputStream.protocol:I
         2: .line 242
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.verifySubclass:()V
         3: .line 243
            aload 0 /* this */
            new java.io.ObjectOutputStream$BlockDataOutputStream
            dup
            aload 1 /* out */
            invokespecial java.io.ObjectOutputStream$BlockDataOutputStream.<init>:(Ljava/io/OutputStream;)V
            putfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
         4: .line 244
            aload 0 /* this */
            new java.io.ObjectOutputStream$HandleTable
            dup
            bipush 10
            ldc 3.0
            invokespecial java.io.ObjectOutputStream$HandleTable.<init>:(IF)V
            putfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
         5: .line 245
            aload 0 /* this */
            new java.io.ObjectOutputStream$ReplaceTable
            dup
            bipush 10
            ldc 3.0
            invokespecial java.io.ObjectOutputStream$ReplaceTable.<init>:(IF)V
            putfield java.io.ObjectOutputStream.subs:Ljava/io/ObjectOutputStream$ReplaceTable;
         6: .line 246
            aload 0 /* this */
            iconst_0
            putfield java.io.ObjectOutputStream.enableOverride:Z
         7: .line 247
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.writeStreamHeader:()V
         8: .line 248
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         9: .line 249
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 12
        10: .line 250
            aload 0 /* this */
            new java.io.ObjectOutputStream$DebugTraceInfoStack
            dup
            invokespecial java.io.ObjectOutputStream$DebugTraceInfoStack.<init>:()V
            putfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        11: .line 251
            goto 13
        12: .line 252
      StackMap locals: java.io.ObjectOutputStream java.io.OutputStream
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        13: .line 254
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.OutputStream out
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Ljava/io/ObjectOutputStream;
            0   14     1   out  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 273
            aload 0 /* this */
            invokespecial java.io.OutputStream.<init>:()V
         1: .line 184
            aload 0 /* this */
            iconst_2
            putfield java.io.ObjectOutputStream.protocol:I
         2: .line 274
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sm */
        start local 1 // java.lang.SecurityManager sm
         3: .line 275
            aload 1 /* sm */
            ifnull 5
         4: .line 276
            aload 1 /* sm */
            getstatic java.io.ObjectOutputStream.SUBCLASS_IMPLEMENTATION_PERMISSION:Ljava/io/SerializablePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         5: .line 278
      StackMap locals: java.io.ObjectOutputStream java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
         6: .line 279
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
         7: .line 280
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.subs:Ljava/io/ObjectOutputStream$ReplaceTable;
         8: .line 281
            aload 0 /* this */
            iconst_1
            putfield java.io.ObjectOutputStream.enableOverride:Z
         9: .line 282
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        10: .line 283
            return
        end local 1 // java.lang.SecurityManager sm
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/io/ObjectOutputStream;
            3   11     1    sm  Ljava/lang/SecurityManager;
    Exceptions:
      throws java.io.IOException, java.lang.SecurityException

  public void useProtocolVersion(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int version
         0: .line 306
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            invokevirtual java.io.ObjectOutputStream$HandleTable.size:()I
            ifeq 2
         1: .line 308
            new java.lang.IllegalStateException
            dup
            ldc "stream non-empty"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 310
      StackMap locals:
      StackMap stack:
            iload 1 /* version */
            tableswitch { // 1 - 2
                    1: 3
                    2: 3
              default: 5
          }
         3: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* version */
            putfield java.io.ObjectOutputStream.protocol:I
         4: .line 314
            goto 8
         5: .line 317
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         6: .line 318
            new java.lang.StringBuilder
            dup
            ldc "unknown version: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* version */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 317
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 320
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int version
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Ljava/io/ObjectOutputStream;
            0    9     1  version  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      version  

  public final void writeObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
         0: .line 344
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.enableOverride:Z
            ifeq 3
         1: .line 345
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream.writeObjectOverride:(Ljava/lang/Object;)V
         2: .line 346
            return
         3: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeObject0:(Ljava/lang/Object;Z)V
         4: .line 350
            goto 9
      StackMap locals:
      StackMap stack: java.io.IOException
         5: astore 2 /* ex */
        start local 2 // java.io.IOException ex
         6: .line 351
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.depth:I
            ifne 8
         7: .line 352
            aload 0 /* this */
            aload 2 /* ex */
            invokevirtual java.io.ObjectOutputStream.writeFatalException:(Ljava/io/IOException;)V
         8: .line 354
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 2 /* ex */
            athrow
        end local 2 // java.io.IOException ex
         9: .line 356
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljava/io/ObjectOutputStream;
            0   10     1   obj  Ljava/lang/Object;
            6    9     2    ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  protected void writeObjectOverride(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
         0: .line 373
            return
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectOutputStream;
            0    1     1   obj  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  public void writeUnshared(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
         0: .line 416
            aload 0 /* this */
            aload 1 /* obj */
            iconst_1
            invokevirtual java.io.ObjectOutputStream.writeObject0:(Ljava/lang/Object;Z)V
         1: .line 417
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 2 /* ex */
        start local 2 // java.io.IOException ex
         3: .line 418
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.depth:I
            ifne 5
         4: .line 419
            aload 0 /* this */
            aload 2 /* ex */
            invokevirtual java.io.ObjectOutputStream.writeFatalException:(Ljava/io/IOException;)V
         5: .line 421
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 2 /* ex */
            athrow
        end local 2 // java.io.IOException ex
         6: .line 423
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/io/ObjectOutputStream;
            0    7     1   obj  Ljava/lang/Object;
            3    6     2    ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  public void defaultWriteObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 435
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            astore 1 /* ctx */
        start local 1 // java.io.SerialCallbackContext ctx
         1: .line 436
            aload 1 /* ctx */
            ifnonnull 3
         2: .line 437
            new java.io.NotActiveException
            dup
            ldc "not in call to writeObject"
            invokespecial java.io.NotActiveException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 439
      StackMap locals: java.io.SerialCallbackContext
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual java.io.SerialCallbackContext.getObj:()Ljava/lang/Object;
            astore 2 /* curObj */
        start local 2 // java.lang.Object curObj
         4: .line 440
            aload 1 /* ctx */
            invokevirtual java.io.SerialCallbackContext.getDesc:()Ljava/io/ObjectStreamClass;
            astore 3 /* curDesc */
        start local 3 // java.io.ObjectStreamClass curDesc
         5: .line 441
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         6: .line 442
            aload 0 /* this */
            aload 2 /* curObj */
            aload 3 /* curDesc */
            invokevirtual java.io.ObjectOutputStream.defaultWriteFields:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
         7: .line 443
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         8: .line 444
            return
        end local 3 // java.io.ObjectStreamClass curDesc
        end local 2 // java.lang.Object curObj
        end local 1 // java.io.SerialCallbackContext ctx
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Ljava/io/ObjectOutputStream;
            1    9     1      ctx  Ljava/io/SerialCallbackContext;
            4    9     2   curObj  Ljava/lang/Object;
            5    9     3  curDesc  Ljava/io/ObjectStreamClass;
    Exceptions:
      throws java.io.IOException

  public java.io.ObjectOutputStream$PutField putFields();
    descriptor: ()Ljava/io/ObjectOutputStream$PutField;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 457
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            ifnonnull 7
         1: .line 458
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            astore 1 /* ctx */
        start local 1 // java.io.SerialCallbackContext ctx
         2: .line 459
            aload 1 /* ctx */
            ifnonnull 4
         3: .line 460
            new java.io.NotActiveException
            dup
            ldc "not in call to writeObject"
            invokespecial java.io.NotActiveException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 462
      StackMap locals: java.io.SerialCallbackContext
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual java.io.SerialCallbackContext.checkAndSetUsed:()V
         5: .line 463
            aload 1 /* ctx */
            invokevirtual java.io.SerialCallbackContext.getDesc:()Ljava/io/ObjectStreamClass;
            astore 2 /* curDesc */
        start local 2 // java.io.ObjectStreamClass curDesc
         6: .line 464
            aload 0 /* this */
            new java.io.ObjectOutputStream$PutFieldImpl
            dup
            aload 0 /* this */
            aload 2 /* curDesc */
            invokespecial java.io.ObjectOutputStream$PutFieldImpl.<init>:(Ljava/io/ObjectOutputStream;Ljava/io/ObjectStreamClass;)V
            putfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
        end local 2 // java.io.ObjectStreamClass curDesc
        end local 1 // java.io.SerialCallbackContext ctx
         7: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            areturn
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Ljava/io/ObjectOutputStream;
            2    7     1      ctx  Ljava/io/SerialCallbackContext;
            6    7     2  curDesc  Ljava/io/ObjectStreamClass;
    Exceptions:
      throws java.io.IOException

  public void writeFields();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 479
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            ifnonnull 2
         1: .line 480
            new java.io.NotActiveException
            dup
            ldc "no current PutField object"
            invokespecial java.io.NotActiveException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         3: .line 483
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.writeFields:()V
         4: .line 484
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         5: .line 485
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 498
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.depth:I
            ifeq 2
         1: .line 499
            new java.io.IOException
            dup
            ldc "stream active"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 501
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         3: .line 502
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 121
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         4: .line 503
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.clear:()V
         5: .line 504
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         6: .line 505
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  protected void annotateClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Class cl
         0: .line 524
            return
        end local 1 // java.lang.Class cl
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectOutputStream;
            0    1     1    cl  Ljava/lang/Class<*>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
      Name  Flags
      cl    

  protected void annotateProxyClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Class cl
         0: .line 548
            return
        end local 1 // java.lang.Class cl
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectOutputStream;
            0    1     1    cl  Ljava/lang/Class<*>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
      Name  Flags
      cl    

  protected java.lang.Object replaceObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
         0: .line 589
            aload 1 /* obj */
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectOutputStream;
            0    1     1   obj  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  protected boolean enableReplaceObject(boolean);
    descriptor: (Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // boolean enable
         0: .line 617
            iload 1 /* enable */
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.enableReplace:Z
            if_icmpne 2
         1: .line 618
            iload 1 /* enable */
            ireturn
         2: .line 620
      StackMap locals:
      StackMap stack:
            iload 1 /* enable */
            ifeq 6
         3: .line 621
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         4: .line 622
            aload 2 /* sm */
            ifnull 6
         5: .line 623
            aload 2 /* sm */
            getstatic java.io.ObjectOutputStream.SUBSTITUTION_PERMISSION:Ljava/io/SerializablePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        end local 2 // java.lang.SecurityManager sm
         6: .line 626
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* enable */
            putfield java.io.ObjectOutputStream.enableReplace:Z
         7: .line 627
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.enableReplace:Z
            ifeq 8
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 1 // boolean enable
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Ljava/io/ObjectOutputStream;
            0   10     1  enable  Z
            4    6     2      sm  Ljava/lang/SecurityManager;
    Exceptions:
      throws java.lang.SecurityException
    MethodParameters:
        Name  Flags
      enable  

  protected void writeStreamHeader();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 639
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            sipush -21267
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeShort:(I)V
         1: .line 640
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_5
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeShort:(I)V
         2: .line 641
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  protected void writeClassDescriptor(java.io.ObjectStreamClass);
    descriptor: (Ljava/io/ObjectStreamClass;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.ObjectStreamClass desc
         0: .line 671
            aload 1 /* desc */
            aload 0 /* this */
            invokevirtual java.io.ObjectStreamClass.writeNonProxy:(Ljava/io/ObjectOutputStream;)V
         1: .line 672
            return
        end local 1 // java.io.ObjectStreamClass desc
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1  desc  Ljava/io/ObjectStreamClass;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      desc  

  public void write(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int val
         0: .line 682
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.write:(I)V
         1: .line 683
            return
        end local 1 // int val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void write(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // byte[] buf
         0: .line 693
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* buf */
            iconst_0
            aload 1 /* buf */
            arraylength
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.write:([BIIZ)V
         1: .line 694
            return
        end local 1 // byte[] buf
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   buf  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   

  public void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // byte[] buf
        start local 2 // int off
        start local 3 // int len
         0: .line 705
            aload 1 /* buf */
            ifnonnull 2
         1: .line 706
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 708
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            iload 3 /* len */
            iadd
            istore 4 /* endoff */
        start local 4 // int endoff
         3: .line 709
            iload 2 /* off */
            iflt 4
            iload 3 /* len */
            iflt 4
            iload 4 /* endoff */
            aload 1 /* buf */
            arraylength
            if_icmpgt 4
            iload 4 /* endoff */
            ifge 5
         4: .line 710
      StackMap locals: int
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         5: .line 712
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* buf */
            iload 2 /* off */
            iload 3 /* len */
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.write:([BIIZ)V
         6: .line 713
            return
        end local 4 // int endoff
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] buf
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/io/ObjectOutputStream;
            0    7     1     buf  [B
            0    7     2     off  I
            0    7     3     len  I
            3    7     4  endoff  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   
      off   
      len   

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 722
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.flush:()V
         1: .line 723
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  protected void drain();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 733
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.drain:()V
         1: .line 734
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 743
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.flush:()V
         1: .line 744
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.clear:()V
         2: .line 745
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.close:()V
         3: .line 746
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  public void writeBoolean(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // boolean val
         0: .line 756
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeBoolean:(Z)V
         1: .line 757
            return
        end local 1 // boolean val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeByte(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int val
         0: .line 767
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 768
            return
        end local 1 // int val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeShort(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int val
         0: .line 778
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeShort:(I)V
         1: .line 779
            return
        end local 1 // int val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeChar(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int val
         0: .line 789
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeChar:(I)V
         1: .line 790
            return
        end local 1 // int val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeInt(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int val
         0: .line 800
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
         1: .line 801
            return
        end local 1 // int val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeLong(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // long val
         0: .line 811
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            lload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeLong:(J)V
         1: .line 812
            return
        end local 1 // long val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeFloat(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // float val
         0: .line 822
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            fload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeFloat:(F)V
         1: .line 823
            return
        end local 1 // float val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  F
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeDouble(double);
    descriptor: (D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // double val
         0: .line 833
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            dload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeDouble:(D)V
         1: .line 834
            return
        end local 1 // double val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  D
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeBytes(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.String str
         0: .line 844
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeBytes:(Ljava/lang/String;)V
         1: .line 845
            return
        end local 1 // java.lang.String str
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   str  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   

  public void writeChars(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.String str
         0: .line 855
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeChars:(Ljava/lang/String;)V
         1: .line 856
            return
        end local 1 // java.lang.String str
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   str  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   

  public void writeUTF(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.String str
         0: .line 872
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF:(Ljava/lang/String;)V
         1: .line 873
            return
        end local 1 // java.lang.String str
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   str  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   

  int getProtocolVersion();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 1019
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.protocol:I
            ireturn
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectOutputStream;

  void writeTypeString(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.String str
         0: .line 1028
            aload 1 /* str */
            ifnonnull 3
         1: .line 1029
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.writeNull:()V
         2: .line 1030
            goto 8
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            aload 1 /* str */
            invokevirtual java.io.ObjectOutputStream$HandleTable.lookup:(Ljava/lang/Object;)I
            dup
            istore 2 /* handle */
        start local 2 // int handle
         4: iconst_m1
            if_icmpeq 7
         5: .line 1031
            aload 0 /* this */
            iload 2 /* handle */
            invokevirtual java.io.ObjectOutputStream.writeHandle:(I)V
         6: .line 1032
            goto 8
         7: .line 1033
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* str */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeString:(Ljava/lang/String;Z)V
        end local 2 // int handle
         8: .line 1035
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String str
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljava/io/ObjectOutputStream;
            0    9     1     str  Ljava/lang/String;
            4    8     2  handle  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   

  private void verifySubclass();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 1044
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 1 /* cl */
        start local 1 // java.lang.Class cl
         1: .line 1045
            aload 1 /* cl */
            ldc Ljava/io/ObjectOutputStream;
            if_acmpne 3
         2: .line 1046
            return
         3: .line 1048
      StackMap locals: java.lang.Class
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         4: .line 1049
            aload 2 /* sm */
            ifnonnull 6
         5: .line 1050
            return
         6: .line 1052
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            getstatic java.io.ObjectOutputStream$Caches.subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
            getstatic java.io.ObjectOutputStream$Caches.subclassAudits:Ljava/util/concurrent/ConcurrentMap;
            invokestatic java.io.ObjectStreamClass.processQueue:(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V
         7: .line 1053
            new java.io.ObjectStreamClass$WeakClassKey
            dup
            aload 1 /* cl */
            getstatic java.io.ObjectOutputStream$Caches.subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
            invokespecial java.io.ObjectStreamClass$WeakClassKey.<init>:(Ljava/lang/Class;Ljava/lang/ref/ReferenceQueue;)V
            astore 3 /* key */
        start local 3 // java.io.ObjectStreamClass$WeakClassKey key
         8: .line 1054
            getstatic java.io.ObjectOutputStream$Caches.subclassAudits:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* key */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 4 /* result */
        start local 4 // java.lang.Boolean result
         9: .line 1055
            aload 4 /* result */
            ifnonnull 12
        10: .line 1056
            aload 1 /* cl */
            invokestatic java.io.ObjectOutputStream.auditSubclass:(Ljava/lang/Class;)Ljava/lang/Boolean;
            astore 4 /* result */
        11: .line 1057
            getstatic java.io.ObjectOutputStream$Caches.subclassAudits:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* key */
            aload 4 /* result */
            invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 1059
      StackMap locals: java.io.ObjectStreamClass$WeakClassKey java.lang.Boolean
      StackMap stack:
            aload 4 /* result */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 14
        13: .line 1060
            aload 2 /* sm */
            getstatic java.io.ObjectOutputStream.SUBCLASS_IMPLEMENTATION_PERMISSION:Ljava/io/SerializablePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        14: .line 1062
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Boolean result
        end local 3 // java.io.ObjectStreamClass$WeakClassKey key
        end local 2 // java.lang.SecurityManager sm
        end local 1 // java.lang.Class cl
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Ljava/io/ObjectOutputStream;
            1   15     1      cl  Ljava/lang/Class<*>;
            4   15     2      sm  Ljava/lang/SecurityManager;
            8   15     3     key  Ljava/io/ObjectStreamClass$WeakClassKey;
            9   15     4  result  Ljava/lang/Boolean;

  private static java.lang.Boolean auditSubclass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Boolean;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class subcl
         0: .line 1071
            new java.io.ObjectOutputStream$1
            dup
            aload 0 /* subcl */
            invokespecial java.io.ObjectOutputStream$1.<init>:(Ljava/lang/Class;)V
         1: .line 1070
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            areturn
        end local 0 // java.lang.Class subcl
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  subcl  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Boolean;
    MethodParameters:
       Name  Flags
      subcl  

  private void clear();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 1099
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.subs:Ljava/io/ObjectOutputStream$ReplaceTable;
            invokevirtual java.io.ObjectOutputStream$ReplaceTable.clear:()V
         1: .line 1100
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            invokevirtual java.io.ObjectOutputStream$HandleTable.clear:()V
         2: .line 1101
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/io/ObjectOutputStream;

  private void writeObject0(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
        start local 2 // boolean unshared
         0: .line 1109
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            istore 3 /* oldMode */
        start local 3 // boolean oldMode
         1: .line 1110
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            iadd
            putfield java.io.ObjectOutputStream.depth:I
         2: .line 1114
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.subs:Ljava/io/ObjectOutputStream$ReplaceTable;
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream$ReplaceTable.lookup:(Ljava/lang/Object;)Ljava/lang/Object;
            dup
            astore 1 /* obj */
            ifnonnull 7
         3: .line 1115
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.writeNull:()V
         4: .line 1189
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
         5: .line 1190
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         6: .line 1116
            return
         7: .line 1117
      StackMap locals: int
      StackMap stack:
            iload 2 /* unshared */
            ifne 13
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream$HandleTable.lookup:(Ljava/lang/Object;)I
            dup
            istore 4 /* h */
        start local 4 // int h
         8: iconst_m1
            if_icmpeq 13
         9: .line 1118
            aload 0 /* this */
            iload 4 /* h */
            invokevirtual java.io.ObjectOutputStream.writeHandle:(I)V
        10: .line 1189
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        11: .line 1190
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        12: .line 1119
            return
        end local 4 // int h
        13: .line 1120
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.Class
            ifeq 18
        14: .line 1121
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.lang.Class
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeClass:(Ljava/lang/Class;Z)V
        15: .line 1189
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        16: .line 1190
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        17: .line 1122
            return
        18: .line 1123
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.io.ObjectStreamClass
            ifeq 23
        19: .line 1124
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.io.ObjectStreamClass
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
        20: .line 1189
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        21: .line 1190
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        22: .line 1125
            return
        23: .line 1129
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            astore 5 /* orig */
        start local 5 // java.lang.Object orig
        24: .line 1130
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 6 /* cl */
        start local 6 // java.lang.Class cl
        25: .line 1135
      StackMap locals: java.io.ObjectOutputStream java.lang.Object int int top java.lang.Object java.lang.Class
      StackMap stack:
            aload 6 /* cl */
            iconst_1
            invokestatic java.io.ObjectStreamClass.lookup:(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;
            astore 7 /* desc */
        start local 7 // java.io.ObjectStreamClass desc
        26: .line 1136
            aload 7 /* desc */
            invokevirtual java.io.ObjectStreamClass.hasWriteReplaceMethod:()Z
            ifeq 33
        27: .line 1137
            aload 7 /* desc */
            aload 1 /* obj */
            invokevirtual java.io.ObjectStreamClass.invokeWriteReplace:(Ljava/lang/Object;)Ljava/lang/Object;
            dup
            astore 1 /* obj */
            ifnull 33
        28: .line 1138
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            dup
            astore 8 /* repCl */
        start local 8 // java.lang.Class repCl
        29: aload 6 /* cl */
            if_acmpne 31
        end local 8 // java.lang.Class repCl
        30: .line 1140
            goto 33
        start local 8 // java.lang.Class repCl
        31: .line 1142
      StackMap locals: java.io.ObjectStreamClass java.lang.Class
      StackMap stack:
            aload 8 /* repCl */
            astore 6 /* cl */
        end local 8 // java.lang.Class repCl
        end local 7 // java.io.ObjectStreamClass desc
        32: .line 1132
            goto 25
        start local 7 // java.io.ObjectStreamClass desc
        33: .line 1144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.enableReplace:Z
            ifeq 39
        34: .line 1145
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream.replaceObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* rep */
        start local 8 // java.lang.Object rep
        35: .line 1146
            aload 8 /* rep */
            aload 1 /* obj */
            if_acmpeq 38
            aload 8 /* rep */
            ifnull 38
        36: .line 1147
            aload 8 /* rep */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 6 /* cl */
        37: .line 1148
            aload 6 /* cl */
            iconst_1
            invokestatic java.io.ObjectStreamClass.lookup:(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;
            astore 7 /* desc */
        38: .line 1150
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 8 /* rep */
            astore 1 /* obj */
        end local 8 // java.lang.Object rep
        39: .line 1154
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            aload 5 /* orig */
            if_acmpeq 62
        40: .line 1155
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.subs:Ljava/io/ObjectOutputStream$ReplaceTable;
            aload 5 /* orig */
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream$ReplaceTable.assign:(Ljava/lang/Object;Ljava/lang/Object;)V
        41: .line 1156
            aload 1 /* obj */
            ifnonnull 46
        42: .line 1157
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.writeNull:()V
        43: .line 1189
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        44: .line 1190
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        45: .line 1158
            return
        46: .line 1159
      StackMap locals:
      StackMap stack:
            iload 2 /* unshared */
            ifne 52
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream$HandleTable.lookup:(Ljava/lang/Object;)I
            dup
            istore 4 /* h */
        start local 4 // int h
        47: iconst_m1
            if_icmpeq 52
        48: .line 1160
            aload 0 /* this */
            iload 4 /* h */
            invokevirtual java.io.ObjectOutputStream.writeHandle:(I)V
        49: .line 1189
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        50: .line 1190
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        51: .line 1161
            return
        end local 4 // int h
        52: .line 1162
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.Class
            ifeq 57
        53: .line 1163
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.lang.Class
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeClass:(Ljava/lang/Class;Z)V
        54: .line 1189
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        55: .line 1190
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        56: .line 1164
            return
        57: .line 1165
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.io.ObjectStreamClass
            ifeq 62
        58: .line 1166
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.io.ObjectStreamClass
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
        59: .line 1189
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        60: .line 1190
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        61: .line 1167
            return
        62: .line 1172
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.String
            ifeq 65
        63: .line 1173
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.lang.String
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeString:(Ljava/lang/String;Z)V
        64: .line 1174
            goto 83
      StackMap locals:
      StackMap stack:
        65: aload 6 /* cl */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 68
        66: .line 1175
            aload 0 /* this */
            aload 1 /* obj */
            aload 7 /* desc */
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeArray:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
        67: .line 1176
            goto 83
      StackMap locals:
      StackMap stack:
        68: aload 1 /* obj */
            instanceof java.lang.Enum
            ifeq 71
        69: .line 1177
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.lang.Enum
            aload 7 /* desc */
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeEnum:(Ljava/lang/Enum;Ljava/io/ObjectStreamClass;Z)V
        70: .line 1178
            goto 83
      StackMap locals:
      StackMap stack:
        71: aload 1 /* obj */
            instanceof java.io.Serializable
            ifeq 74
        72: .line 1179
            aload 0 /* this */
            aload 1 /* obj */
            aload 7 /* desc */
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeOrdinaryObject:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
        73: .line 1180
            goto 83
        74: .line 1181
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 78
        75: .line 1182
            new java.io.NotSerializableException
            dup
        76: .line 1183
            new java.lang.StringBuilder
            dup
            aload 6 /* cl */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        77: .line 1182
            invokespecial java.io.NotSerializableException.<init>:(Ljava/lang/String;)V
            athrow
        78: .line 1185
      StackMap locals:
      StackMap stack:
            new java.io.NotSerializableException
            dup
            aload 6 /* cl */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.io.NotSerializableException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.io.ObjectStreamClass desc
        end local 6 // java.lang.Class cl
        end local 5 // java.lang.Object orig
        79: .line 1188
      StackMap locals: java.io.ObjectOutputStream java.lang.Object int int
      StackMap stack: java.lang.Throwable
            astore 9
        80: .line 1189
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        81: .line 1190
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        82: .line 1191
            aload 9
            athrow
        83: .line 1189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        84: .line 1190
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        85: .line 1192
            return
        end local 3 // boolean oldMode
        end local 2 // boolean unshared
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   86     0      this  Ljava/io/ObjectOutputStream;
            0   86     1       obj  Ljava/lang/Object;
            0   86     2  unshared  Z
            1   86     3   oldMode  Z
            8   13     4         h  I
           47   52     4         h  I
           24   79     5      orig  Ljava/lang/Object;
           25   79     6        cl  Ljava/lang/Class<*>;
           26   32     7      desc  Ljava/io/ObjectStreamClass;
           33   79     7      desc  Ljava/io/ObjectStreamClass;
           29   30     8     repCl  Ljava/lang/Class<*>;
           31   32     8     repCl  Ljava/lang/Class<*>;
           35   39     8       rep  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           2     4      79  any
           7    10      79  any
          13    15      79  any
          18    20      79  any
          23    43      79  any
          46    49      79  any
          52    54      79  any
          57    59      79  any
          62    79      79  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      obj       
      unshared  

  private void writeNull();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 1198
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 112
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1199
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  private void writeHandle(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int handle
         0: .line 1205
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 113
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1206
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            ldc 8257536
            iload 1 /* handle */
            iadd
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
         2: .line 1207
            return
        end local 1 // int handle
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljava/io/ObjectOutputStream;
            0    3     1  handle  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      handle  

  private void writeClass(java.lang.Class<?>, );
    descriptor: (Ljava/lang/Class;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Class cl
        start local 2 // boolean unshared
         0: .line 1213
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 118
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1214
            aload 0 /* this */
            aload 1 /* cl */
            iconst_1
            invokestatic java.io.ObjectStreamClass.lookup:(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
         2: .line 1215
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 2 /* unshared */
            ifeq 3
            aconst_null
            goto 4
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         3: aload 1 /* cl */
      StackMap locals: java.io.ObjectOutputStream java.lang.Class int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.lang.Class
         4: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         5: .line 1216
            return
        end local 2 // boolean unshared
        end local 1 // java.lang.Class cl
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljava/io/ObjectOutputStream;
            0    6     1        cl  Ljava/lang/Class<*>;
            0    6     2  unshared  Z
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Class<*>;Z)V
    MethodParameters:
          Name  Flags
      cl        
      unshared  

  private void writeClassDesc(java.io.ObjectStreamClass, boolean);
    descriptor: (Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.ObjectStreamClass desc
        start local 2 // boolean unshared
         0: .line 1225
            aload 1 /* desc */
            ifnonnull 3
         1: .line 1226
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.writeNull:()V
         2: .line 1227
            goto 11
      StackMap locals:
      StackMap stack:
         3: iload 2 /* unshared */
            ifne 7
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            aload 1 /* desc */
            invokevirtual java.io.ObjectOutputStream$HandleTable.lookup:(Ljava/lang/Object;)I
            dup
            istore 3 /* handle */
        start local 3 // int handle
         4: iconst_m1
            if_icmpeq 7
         5: .line 1228
            aload 0 /* this */
            iload 3 /* handle */
            invokevirtual java.io.ObjectOutputStream.writeHandle:(I)V
         6: .line 1229
            goto 11
        end local 3 // int handle
      StackMap locals:
      StackMap stack:
         7: aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.isProxy:()Z
            ifeq 10
         8: .line 1230
            aload 0 /* this */
            aload 1 /* desc */
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeProxyDesc:(Ljava/io/ObjectStreamClass;Z)V
         9: .line 1231
            goto 11
        10: .line 1232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* desc */
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeNonProxyDesc:(Ljava/io/ObjectStreamClass;Z)V
        11: .line 1234
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean unshared
        end local 1 // java.io.ObjectStreamClass desc
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Ljava/io/ObjectOutputStream;
            0   12     1      desc  Ljava/io/ObjectStreamClass;
            0   12     2  unshared  Z
            4    7     3    handle  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      desc      
      unshared  

  private boolean isCustomSubclass();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 1238
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         1: .line 1239
            ldc Ljava/io/ObjectOutputStream;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         2: .line 1238
            if_acmpeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/io/ObjectOutputStream;

  private void writeProxyDesc(java.io.ObjectStreamClass, boolean);
    descriptor: (Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.ObjectStreamClass desc
        start local 2 // boolean unshared
         0: .line 1248
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 125
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1249
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 2 /* unshared */
            ifeq 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         2: aload 1 /* desc */
      StackMap locals: java.io.ObjectOutputStream java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.io.ObjectStreamClass
         3: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         4: .line 1251
            aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.forClass:()Ljava/lang/Class;
            astore 3 /* cl */
        start local 3 // java.lang.Class cl
         5: .line 1252
            aload 3 /* cl */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 4 /* ifaces */
        start local 4 // java.lang.Class[] ifaces
         6: .line 1253
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 4 /* ifaces */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
         7: .line 1254
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 11
         9: .line 1255
      StackMap locals: java.lang.Class java.lang.Class[] int
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 4 /* ifaces */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF:(Ljava/lang/String;)V
        10: .line 1254
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            aload 4 /* ifaces */
            arraylength
            if_icmplt 9
        end local 5 // int i
        12: .line 1258
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        13: .line 1259
            aload 3 /* cl */
            ifnull 15
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.isCustomSubclass:()Z
            ifeq 15
        14: .line 1260
            aload 3 /* cl */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/Class;)V
        15: .line 1262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* cl */
            invokevirtual java.io.ObjectOutputStream.annotateProxyClass:(Ljava/lang/Class;)V
        16: .line 1263
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        17: .line 1264
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 120
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
        18: .line 1266
            aload 0 /* this */
            aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.getSuperDesc:()Ljava/io/ObjectStreamClass;
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
        19: .line 1267
            return
        end local 4 // java.lang.Class[] ifaces
        end local 3 // java.lang.Class cl
        end local 2 // boolean unshared
        end local 1 // java.io.ObjectStreamClass desc
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Ljava/io/ObjectOutputStream;
            0   20     1      desc  Ljava/io/ObjectStreamClass;
            0   20     2  unshared  Z
            5   20     3        cl  Ljava/lang/Class<*>;
            6   20     4    ifaces  [Ljava/lang/Class;
            8   12     5         i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      desc      
      unshared  

  private void writeNonProxyDesc(java.io.ObjectStreamClass, boolean);
    descriptor: (Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.ObjectStreamClass desc
        start local 2 // boolean unshared
         0: .line 1276
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 114
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1277
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 2 /* unshared */
            ifeq 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         2: aload 1 /* desc */
      StackMap locals: java.io.ObjectOutputStream java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.io.ObjectStreamClass
         3: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         4: .line 1279
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.protocol:I
            iconst_1
            if_icmpne 7
         5: .line 1281
            aload 1 /* desc */
            aload 0 /* this */
            invokevirtual java.io.ObjectStreamClass.writeNonProxy:(Ljava/io/ObjectOutputStream;)V
         6: .line 1282
            goto 8
         7: .line 1283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* desc */
            invokevirtual java.io.ObjectOutputStream.writeClassDescriptor:(Ljava/io/ObjectStreamClass;)V
         8: .line 1286
      StackMap locals:
      StackMap stack:
            aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.forClass:()Ljava/lang/Class;
            astore 3 /* cl */
        start local 3 // java.lang.Class cl
         9: .line 1287
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        10: .line 1288
            aload 3 /* cl */
            ifnull 12
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.isCustomSubclass:()Z
            ifeq 12
        11: .line 1289
            aload 3 /* cl */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/Class;)V
        12: .line 1291
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            aload 3 /* cl */
            invokevirtual java.io.ObjectOutputStream.annotateClass:(Ljava/lang/Class;)V
        13: .line 1292
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        14: .line 1293
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 120
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
        15: .line 1295
            aload 0 /* this */
            aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.getSuperDesc:()Ljava/io/ObjectStreamClass;
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
        16: .line 1296
            return
        end local 3 // java.lang.Class cl
        end local 2 // boolean unshared
        end local 1 // java.io.ObjectStreamClass desc
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Ljava/io/ObjectOutputStream;
            0   17     1      desc  Ljava/io/ObjectStreamClass;
            0   17     2  unshared  Z
            9   17     3        cl  Ljava/lang/Class<*>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      desc      
      unshared  

  private void writeString(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.String str
        start local 2 // boolean unshared
         0: .line 1303
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 2 /* unshared */
            ifeq 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         1: aload 1 /* str */
      StackMap locals: java.io.ObjectOutputStream java.lang.String int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.lang.String
         2: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         3: .line 1304
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.getUTFLength:(Ljava/lang/String;)J
            lstore 3 /* utflen */
        start local 3 // long utflen
         4: .line 1305
            lload 3 /* utflen */
            ldc 65535
            lcmp
            ifgt 8
         5: .line 1306
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 116
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         6: .line 1307
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            lload 3 /* utflen */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF:(Ljava/lang/String;J)V
         7: .line 1308
            goto 10
         8: .line 1309
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 124
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         9: .line 1310
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            lload 3 /* utflen */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeLongUTF:(Ljava/lang/String;J)V
        10: .line 1312
      StackMap locals:
      StackMap stack:
            return
        end local 3 // long utflen
        end local 2 // boolean unshared
        end local 1 // java.lang.String str
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Ljava/io/ObjectOutputStream;
            0   11     1       str  Ljava/lang/String;
            0   11     2  unshared  Z
            4   11     3    utflen  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      str       
      unshared  

  private void writeArray(java.lang.Object, java.io.ObjectStreamClass, boolean);
    descriptor: (Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object array
        start local 2 // java.io.ObjectStreamClass desc
        start local 3 // boolean unshared
         0: .line 1322
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 117
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1323
            aload 0 /* this */
            aload 2 /* desc */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
         2: .line 1324
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 3 /* unshared */
            ifeq 3
            aconst_null
            goto 4
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         3: aload 1 /* array */
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.lang.Object
         4: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         5: .line 1326
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.forClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 4 /* ccl */
        start local 4 // java.lang.Class ccl
         6: .line 1327
            aload 4 /* ccl */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 48
         7: .line 1328
            aload 4 /* ccl */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpne 12
         8: .line 1329
            aload 1 /* array */
            checkcast int[]
            astore 5 /* ia */
        start local 5 // int[] ia
         9: .line 1330
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ia */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        10: .line 1331
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ia */
            iconst_0
            aload 5 /* ia */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInts:([III)V
        end local 5 // int[] ia
        11: .line 1332
            goto 80
      StackMap locals: java.lang.Class
      StackMap stack:
        12: aload 4 /* ccl */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpne 17
        13: .line 1333
            aload 1 /* array */
            checkcast byte[]
            astore 5 /* ba */
        start local 5 // byte[] ba
        14: .line 1334
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ba */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        15: .line 1335
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ba */
            iconst_0
            aload 5 /* ba */
            arraylength
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.write:([BIIZ)V
        end local 5 // byte[] ba
        16: .line 1336
            goto 80
      StackMap locals:
      StackMap stack:
        17: aload 4 /* ccl */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 22
        18: .line 1337
            aload 1 /* array */
            checkcast long[]
            astore 5 /* ja */
        start local 5 // long[] ja
        19: .line 1338
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ja */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        20: .line 1339
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ja */
            iconst_0
            aload 5 /* ja */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeLongs:([JII)V
        end local 5 // long[] ja
        21: .line 1340
            goto 80
      StackMap locals:
      StackMap stack:
        22: aload 4 /* ccl */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpne 27
        23: .line 1341
            aload 1 /* array */
            checkcast float[]
            astore 5 /* fa */
        start local 5 // float[] fa
        24: .line 1342
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* fa */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        25: .line 1343
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* fa */
            iconst_0
            aload 5 /* fa */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeFloats:([FII)V
        end local 5 // float[] fa
        26: .line 1344
            goto 80
      StackMap locals:
      StackMap stack:
        27: aload 4 /* ccl */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 32
        28: .line 1345
            aload 1 /* array */
            checkcast double[]
            astore 5 /* da */
        start local 5 // double[] da
        29: .line 1346
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* da */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        30: .line 1347
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* da */
            iconst_0
            aload 5 /* da */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeDoubles:([DII)V
        end local 5 // double[] da
        31: .line 1348
            goto 80
      StackMap locals:
      StackMap stack:
        32: aload 4 /* ccl */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpne 37
        33: .line 1349
            aload 1 /* array */
            checkcast short[]
            astore 5 /* sa */
        start local 5 // short[] sa
        34: .line 1350
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* sa */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        35: .line 1351
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* sa */
            iconst_0
            aload 5 /* sa */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeShorts:([SII)V
        end local 5 // short[] sa
        36: .line 1352
            goto 80
      StackMap locals:
      StackMap stack:
        37: aload 4 /* ccl */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 42
        38: .line 1353
            aload 1 /* array */
            checkcast char[]
            astore 5 /* ca */
        start local 5 // char[] ca
        39: .line 1354
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ca */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        40: .line 1355
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ca */
            iconst_0
            aload 5 /* ca */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeChars:([CII)V
        end local 5 // char[] ca
        41: .line 1356
            goto 80
      StackMap locals:
      StackMap stack:
        42: aload 4 /* ccl */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 47
        43: .line 1357
            aload 1 /* array */
            checkcast boolean[]
            astore 5 /* za */
        start local 5 // boolean[] za
        44: .line 1358
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* za */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        45: .line 1359
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* za */
            iconst_0
            aload 5 /* za */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeBooleans:([ZII)V
        end local 5 // boolean[] za
        46: .line 1360
            goto 80
        47: .line 1361
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        48: .line 1364
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            checkcast java.lang.Object[]
            astore 5 /* objs */
        start local 5 // java.lang.Object[] objs
        49: .line 1365
            aload 5 /* objs */
            arraylength
            istore 6 /* len */
        start local 6 // int len
        50: .line 1366
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 6 /* len */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        51: .line 1367
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 57
        52: .line 1368
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        53: .line 1369
            new java.lang.StringBuilder
            dup
            ldc "array (class \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* array */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        54: .line 1370
            ldc "\", size: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        55: .line 1369
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        56: .line 1368
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
        57: .line 1373
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        58: goto 72
        59: .line 1374
      StackMap locals: int
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 63
        60: .line 1375
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        61: .line 1376
            new java.lang.StringBuilder
            dup
            ldc "element of array (index: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        62: .line 1375
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
        63: .line 1379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* objs */
            iload 7 /* i */
            aaload
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeObject0:(Ljava/lang/Object;Z)V
        64: .line 1380
            goto 69
      StackMap locals:
      StackMap stack: java.lang.Throwable
        65: astore 8
        66: .line 1381
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 68
        67: .line 1382
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        68: .line 1384
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        69: .line 1381
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 71
        70: .line 1382
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        71: .line 1373
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        72: iload 7 /* i */
            iload 6 /* len */
            if_icmplt 59
        end local 7 // int i
        73: .line 1386
            goto 78
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int java.lang.Class java.lang.Object[] int
      StackMap stack: java.lang.Throwable
        74: astore 9
        75: .line 1387
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 77
        76: .line 1388
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        77: .line 1390
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int java.lang.Class java.lang.Object[] int top top java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        78: .line 1387
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int java.lang.Class java.lang.Object[] int
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 80
        79: .line 1388
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        end local 6 // int len
        end local 5 // java.lang.Object[] objs
        80: .line 1392
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Class ccl
        end local 3 // boolean unshared
        end local 2 // java.io.ObjectStreamClass desc
        end local 1 // java.lang.Object array
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   81     0      this  Ljava/io/ObjectOutputStream;
            0   81     1     array  Ljava/lang/Object;
            0   81     2      desc  Ljava/io/ObjectStreamClass;
            0   81     3  unshared  Z
            6   81     4       ccl  Ljava/lang/Class<*>;
            9   11     5        ia  [I
           14   16     5        ba  [B
           19   21     5        ja  [J
           24   26     5        fa  [F
           29   31     5        da  [D
           34   36     5        sa  [S
           39   41     5        ca  [C
           44   46     5        za  [Z
           49   80     5      objs  [Ljava/lang/Object;
           50   80     6       len  I
           58   73     7         i  I
      Exception table:
        from    to  target  type
          63    65      65  any
          57    74      74  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      array     
      desc      
      unshared  

  private void writeEnum(java.lang.Enum<?>, java.io.ObjectStreamClass, );
    descriptor: (Ljava/lang/Enum;Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Enum en
        start local 2 // java.io.ObjectStreamClass desc
        start local 3 // boolean unshared
         0: .line 1402
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 126
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1403
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.getSuperDesc:()Ljava/io/ObjectStreamClass;
            astore 4 /* sdesc */
        start local 4 // java.io.ObjectStreamClass sdesc
         2: .line 1404
            aload 0 /* this */
            aload 4 /* sdesc */
            invokevirtual java.io.ObjectStreamClass.forClass:()Ljava/lang/Class;
            ldc Ljava/lang/Enum;
            if_acmpne 3
            aload 2 /* desc */
            goto 4
      StackMap locals: java.io.ObjectOutputStream java.lang.Enum java.io.ObjectStreamClass int java.io.ObjectStreamClass
      StackMap stack: java.io.ObjectOutputStream
         3: aload 4 /* sdesc */
      StackMap locals: java.io.ObjectOutputStream java.lang.Enum java.io.ObjectStreamClass int java.io.ObjectStreamClass
      StackMap stack: java.io.ObjectOutputStream java.io.ObjectStreamClass
         4: iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
         5: .line 1405
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 3 /* unshared */
            ifeq 6
            aconst_null
            goto 7
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         6: aload 1 /* en */
      StackMap locals: java.io.ObjectOutputStream java.lang.Enum java.io.ObjectStreamClass int java.io.ObjectStreamClass
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.lang.Enum
         7: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         8: .line 1406
            aload 0 /* this */
            aload 1 /* en */
            invokevirtual java.lang.Enum.name:()Ljava/lang/String;
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeString:(Ljava/lang/String;Z)V
         9: .line 1407
            return
        end local 4 // java.io.ObjectStreamClass sdesc
        end local 3 // boolean unshared
        end local 2 // java.io.ObjectStreamClass desc
        end local 1 // java.lang.Enum en
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Ljava/io/ObjectOutputStream;
            0   10     1        en  Ljava/lang/Enum<*>;
            0   10     2      desc  Ljava/io/ObjectStreamClass;
            0   10     3  unshared  Z
            2   10     4     sdesc  Ljava/io/ObjectStreamClass;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Enum<*>;Ljava/io/ObjectStreamClass;Z)V
    MethodParameters:
          Name  Flags
      en        
      desc      
      unshared  

  private void writeOrdinaryObject(java.lang.Object, java.io.ObjectStreamClass, boolean);
    descriptor: (Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
        start local 2 // java.io.ObjectStreamClass desc
        start local 3 // boolean unshared
         0: .line 1419
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 8
         1: .line 1420
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
         2: .line 1421
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            if_icmpne 3
            ldc "root "
            goto 4
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$DebugTraceInfoStack new 2 new 2
         3: ldc ""
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$DebugTraceInfoStack new 2 new 2 java.lang.String
         4: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "object (class \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1422
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* obj */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1421
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 1420
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
         8: .line 1425
      StackMap locals:
      StackMap stack:
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.checkSerialize:()V
         9: .line 1427
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 115
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
        10: .line 1428
            aload 0 /* this */
            aload 2 /* desc */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
        11: .line 1429
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 3 /* unshared */
            ifeq 12
            aconst_null
            goto 13
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
        12: aload 1 /* obj */
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.lang.Object
        13: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
        14: .line 1430
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.isExternalizable:()Z
            ifeq 17
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.isProxy:()Z
            ifne 17
        15: .line 1431
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.io.Externalizable
            invokevirtual java.io.ObjectOutputStream.writeExternalData:(Ljava/io/Externalizable;)V
        16: .line 1432
            goto 23
        17: .line 1433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            aload 2 /* desc */
            invokevirtual java.io.ObjectOutputStream.writeSerialData:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
        18: .line 1435
            goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 4
        20: .line 1436
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 22
        21: .line 1437
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        22: .line 1439
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        23: .line 1436
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 25
        24: .line 1437
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        25: .line 1440
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean unshared
        end local 2 // java.io.ObjectStreamClass desc
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   26     0      this  Ljava/io/ObjectOutputStream;
            0   26     1       obj  Ljava/lang/Object;
            0   26     2      desc  Ljava/io/ObjectStreamClass;
            0   26     3  unshared  Z
      Exception table:
        from    to  target  type
           8    19      19  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      obj       
      desc      
      unshared  

  private void writeExternalData(java.io.Externalizable);
    descriptor: (Ljava/io/Externalizable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.Externalizable obj
         0: .line 1447
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            astore 2 /* oldPut */
        start local 2 // java.io.ObjectOutputStream$PutFieldImpl oldPut
         1: .line 1448
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
         2: .line 1450
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 4
         3: .line 1451
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            ldc "writeExternal data"
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
         4: .line 1453
      StackMap locals: java.io.ObjectOutputStream$PutFieldImpl
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            astore 3 /* oldContext */
        start local 3 // java.io.SerialCallbackContext oldContext
         5: .line 1455
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
         6: .line 1456
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.protocol:I
            iconst_1
            if_icmpne 9
         7: .line 1457
            aload 1 /* obj */
            aload 0 /* this */
            invokeinterface java.io.Externalizable.writeExternal:(Ljava/io/ObjectOutput;)V
         8: .line 1458
            goto 19
         9: .line 1459
      StackMap locals: java.io.SerialCallbackContext
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        10: .line 1460
            aload 1 /* obj */
            aload 0 /* this */
            invokeinterface java.io.Externalizable.writeExternal:(Ljava/io/ObjectOutput;)V
        11: .line 1461
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        12: .line 1462
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 120
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
        13: .line 1464
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 4
        15: .line 1465
            aload 0 /* this */
            aload 3 /* oldContext */
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
        16: .line 1466
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 18
        17: .line 1467
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        18: .line 1469
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        19: .line 1465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* oldContext */
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
        20: .line 1466
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 22
        21: .line 1467
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        22: .line 1471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* oldPut */
            putfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
        23: .line 1472
            return
        end local 3 // java.io.SerialCallbackContext oldContext
        end local 2 // java.io.ObjectOutputStream$PutFieldImpl oldPut
        end local 1 // java.io.Externalizable obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Ljava/io/ObjectOutputStream;
            0   24     1         obj  Ljava/io/Externalizable;
            1   24     2      oldPut  Ljava/io/ObjectOutputStream$PutFieldImpl;
            5   24     3  oldContext  Ljava/io/SerialCallbackContext;
      Exception table:
        from    to  target  type
           5    14      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  private void writeSerialData(java.lang.Object, java.io.ObjectStreamClass);
    descriptor: (Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
        start local 2 // java.io.ObjectStreamClass desc
         0: .line 1481
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.getClassDataLayout:()[Ljava/io/ObjectStreamClass$ClassDataSlot;
            astore 3 /* slots */
        start local 3 // java.io.ObjectStreamClass$ClassDataSlot[] slots
         1: .line 1482
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 34
         3: .line 1483
      StackMap locals: java.io.ObjectStreamClass$ClassDataSlot[] int
      StackMap stack:
            aload 3 /* slots */
            iload 4 /* i */
            aaload
            getfield java.io.ObjectStreamClass$ClassDataSlot.desc:Ljava/io/ObjectStreamClass;
            astore 5 /* slotDesc */
        start local 5 // java.io.ObjectStreamClass slotDesc
         4: .line 1484
            aload 5 /* slotDesc */
            invokevirtual java.io.ObjectStreamClass.hasWriteObjectMethod:()Z
            ifeq 32
         5: .line 1485
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            astore 6 /* oldPut */
        start local 6 // java.io.ObjectOutputStream$PutFieldImpl oldPut
         6: .line 1486
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
         7: .line 1487
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            astore 7 /* oldContext */
        start local 7 // java.io.SerialCallbackContext oldContext
         8: .line 1489
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 14
         9: .line 1490
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        10: .line 1491
            new java.lang.StringBuilder
            dup
            ldc "custom writeObject data (class \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 1492
            aload 5 /* slotDesc */
            invokevirtual java.io.ObjectStreamClass.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 1491
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 1490
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
        14: .line 1495
      StackMap locals: java.io.ObjectStreamClass java.io.ObjectOutputStream$PutFieldImpl java.io.SerialCallbackContext
      StackMap stack:
            aload 0 /* this */
            new java.io.SerialCallbackContext
            dup
            aload 1 /* obj */
            aload 5 /* slotDesc */
            invokespecial java.io.SerialCallbackContext.<init>:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
        15: .line 1496
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        16: .line 1497
            aload 5 /* slotDesc */
            aload 1 /* obj */
            aload 0 /* this */
            invokevirtual java.io.ObjectStreamClass.invokeWriteObject:(Ljava/lang/Object;Ljava/io/ObjectOutputStream;)V
        17: .line 1498
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        18: .line 1499
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 120
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
        19: .line 1500
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 8
        21: .line 1501
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            invokevirtual java.io.SerialCallbackContext.setUsed:()V
        22: .line 1502
            aload 0 /* this */
            aload 7 /* oldContext */
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
        23: .line 1503
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 25
        24: .line 1504
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        25: .line 1506
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        26: .line 1501
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            invokevirtual java.io.SerialCallbackContext.setUsed:()V
        27: .line 1502
            aload 0 /* this */
            aload 7 /* oldContext */
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
        28: .line 1503
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 30
        29: .line 1504
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        30: .line 1508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* oldPut */
            putfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
        end local 7 // java.io.SerialCallbackContext oldContext
        end local 6 // java.io.ObjectOutputStream$PutFieldImpl oldPut
        31: .line 1509
            goto 33
        32: .line 1510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            aload 5 /* slotDesc */
            invokevirtual java.io.ObjectOutputStream.defaultWriteFields:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
        end local 5 // java.io.ObjectStreamClass slotDesc
        33: .line 1482
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 4 /* i */
            aload 3 /* slots */
            arraylength
            if_icmplt 3
        end local 4 // int i
        35: .line 1513
            return
        end local 3 // java.io.ObjectStreamClass$ClassDataSlot[] slots
        end local 2 // java.io.ObjectStreamClass desc
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   36     0        this  Ljava/io/ObjectOutputStream;
            0   36     1         obj  Ljava/lang/Object;
            0   36     2        desc  Ljava/io/ObjectStreamClass;
            1   36     3       slots  [Ljava/io/ObjectStreamClass$ClassDataSlot;
            2   35     4           i  I
            4   33     5    slotDesc  Ljava/io/ObjectStreamClass;
            6   31     6      oldPut  Ljava/io/ObjectOutputStream$PutFieldImpl;
            8