public final class org.apache.logging.log4j.ThreadContext
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.logging.log4j.ThreadContext
  super_class: java.lang.Object
{
  public static final java.util.Map<java.lang.String, java.lang.String> EMPTY_MAP;
    descriptor: Ljava/util/Map;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public static final org.apache.logging.log4j.spi.ThreadContextStack EMPTY_STACK;
    descriptor: Lorg/apache/logging/log4j/spi/ThreadContextStack;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

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

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

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

  private static boolean disableAll;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean useMap;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean useStack;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.apache.logging.log4j.spi.ThreadContextMap contextMap;
    descriptor: Lorg/apache/logging/log4j/spi/ThreadContextMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.apache.logging.log4j.spi.ThreadContextStack contextStack;
    descriptor: Lorg/apache/logging/log4j/spi/ThreadContextStack;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.apache.logging.log4j.spi.ReadOnlyThreadContextMap readOnlyContextMap;
    descriptor: Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 182
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            putstatic org.apache.logging.log4j.ThreadContext.EMPTY_MAP:Ljava/util/Map;
         1: .line 189
            new org.apache.logging.log4j.ThreadContext$EmptyThreadContextStack
            dup
            invokespecial org.apache.logging.log4j.ThreadContext$EmptyThreadContextStack.<init>:()V
            putstatic org.apache.logging.log4j.ThreadContext.EMPTY_STACK:Lorg/apache/logging/log4j/spi/ThreadContextStack;
         2: .line 203
            invokestatic org.apache.logging.log4j.ThreadContext.init:()V
         3: .line 204
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  static void init();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 214
            invokestatic org.apache.logging.log4j.spi.ThreadContextMapFactory.init:()V
         1: .line 215
            aconst_null
            putstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
         2: .line 216
            invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
            astore 0 /* managerProps */
        start local 0 // org.apache.logging.log4j.util.PropertiesUtil managerProps
         3: .line 217
            aload 0 /* managerProps */
            ldc "disableThreadContext"
            invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;)Z
            putstatic org.apache.logging.log4j.ThreadContext.disableAll:Z
         4: .line 218
            aload 0 /* managerProps */
            ldc "disableThreadContextStack"
            invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;)Z
            ifne 5
            getstatic org.apache.logging.log4j.ThreadContext.disableAll:Z
            ifeq 6
      StackMap locals: org.apache.logging.log4j.util.PropertiesUtil
      StackMap stack:
         5: iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: putstatic org.apache.logging.log4j.ThreadContext.useStack:Z
         8: .line 219
            aload 0 /* managerProps */
            ldc "disableThreadContextMap"
            invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;)Z
            ifne 9
            getstatic org.apache.logging.log4j.ThreadContext.disableAll:Z
            ifeq 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_1
      StackMap locals:
      StackMap stack: int
        11: putstatic org.apache.logging.log4j.ThreadContext.useMap:Z
        12: .line 221
            new org.apache.logging.log4j.spi.DefaultThreadContextStack
            dup
            getstatic org.apache.logging.log4j.ThreadContext.useStack:Z
            invokespecial org.apache.logging.log4j.spi.DefaultThreadContextStack.<init>:(Z)V
            putstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
        13: .line 222
            getstatic org.apache.logging.log4j.ThreadContext.useMap:Z
            ifne 16
        14: .line 223
            new org.apache.logging.log4j.spi.NoOpThreadContextMap
            dup
            invokespecial org.apache.logging.log4j.spi.NoOpThreadContextMap.<init>:()V
            putstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
        15: .line 224
            goto 17
        16: .line 225
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.logging.log4j.spi.ThreadContextMapFactory.createThreadContextMap:()Lorg/apache/logging/log4j/spi/ThreadContextMap;
            putstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
        17: .line 227
      StackMap locals:
      StackMap stack:
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            instanceof org.apache.logging.log4j.spi.ReadOnlyThreadContextMap
            ifeq 20
        18: .line 228
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            checkcast org.apache.logging.log4j.spi.ReadOnlyThreadContextMap
            putstatic org.apache.logging.log4j.ThreadContext.readOnlyContextMap:Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
        19: .line 229
            goto 21
        20: .line 230
      StackMap locals:
      StackMap stack:
            aconst_null
            putstatic org.apache.logging.log4j.ThreadContext.readOnlyContextMap:Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
        21: .line 232
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.logging.log4j.util.PropertiesUtil managerProps
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            3   22     0  managerProps  Lorg/apache/logging/log4j/util/PropertiesUtil;

  public static void put(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String key
        start local 1 // java.lang.String value
         0: .line 246
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 0 /* key */
            aload 1 /* value */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.put:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 247
            return
        end local 1 // java.lang.String value
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0    key  Ljava/lang/String;
            0    2     1  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      key    final
      value  final

  public static void putAll(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.util.Map m
         0: .line 259
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            instanceof org.apache.logging.log4j.spi.ThreadContextMap2
            ifeq 3
         1: .line 260
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            checkcast org.apache.logging.log4j.spi.ThreadContextMap2
            aload 0 /* m */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap2.putAll:(Ljava/util/Map;)V
         2: .line 261
            goto 10
      StackMap locals:
      StackMap stack:
         3: getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            instanceof org.apache.logging.log4j.spi.DefaultThreadContextMap
            ifeq 6
         4: .line 262
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            checkcast org.apache.logging.log4j.spi.DefaultThreadContextMap
            aload 0 /* m */
            invokevirtual org.apache.logging.log4j.spi.DefaultThreadContextMap.putAll:(Ljava/util/Map;)V
         5: .line 263
            goto 10
         6: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* m */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: java.util.Map top java.util.Iterator
      StackMap stack:
         7: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 1 /* entry */
        start local 1 // java.util.Map$Entry entry
         8: .line 265
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.put:(Ljava/lang/String;Ljava/lang/String;)V
        end local 1 // java.util.Map$Entry entry
         9: .line 264
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 268
      StackMap locals: java.util.Map
      StackMap stack:
            return
        end local 0 // java.util.Map m
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0      m  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            8    9     1  entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      m     final

  public static java.lang.String get(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 281
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 0 /* key */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.get:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public static void remove(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 290
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 0 /* key */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.remove:(Ljava/lang/String;)V
         1: .line 291
            return
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public static void removeAll(java.lang.Iterable<java.lang.String>);
    descriptor: (Ljava/lang/Iterable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.Iterable keys
         0: .line 301
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            instanceof org.apache.logging.log4j.spi.CleanableThreadContextMap
            ifeq 3
         1: .line 302
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            checkcast org.apache.logging.log4j.spi.CleanableThreadContextMap
            aload 0 /* keys */
            invokeinterface org.apache.logging.log4j.spi.CleanableThreadContextMap.removeAll:(Ljava/lang/Iterable;)V
         2: .line 303
            goto 10
      StackMap locals:
      StackMap stack:
         3: getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            instanceof org.apache.logging.log4j.spi.DefaultThreadContextMap
            ifeq 6
         4: .line 304
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            checkcast org.apache.logging.log4j.spi.DefaultThreadContextMap
            aload 0 /* keys */
            invokevirtual org.apache.logging.log4j.spi.DefaultThreadContextMap.removeAll:(Ljava/lang/Iterable;)V
         5: .line 305
            goto 10
         6: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* keys */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: java.lang.Iterable top java.util.Iterator
      StackMap stack:
         7: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* key */
        start local 1 // java.lang.String key
         8: .line 307
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 1 /* key */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.remove:(Ljava/lang/String;)V
        end local 1 // java.lang.String key
         9: .line 306
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 310
      StackMap locals: java.lang.Iterable
      StackMap stack:
            return
        end local 0 // java.lang.Iterable keys
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  keys  Ljava/lang/Iterable<Ljava/lang/String;>;
            8    9     1   key  Ljava/lang/String;
    Signature: (Ljava/lang/Iterable<Ljava/lang/String;>;)V
    MethodParameters:
      Name  Flags
      keys  final

  public static void clearMap();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 316
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.clear:()V
         1: .line 317
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void clearAll();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=0, locals=0, args_size=0
         0: .line 323
            invokestatic org.apache.logging.log4j.ThreadContext.clearMap:()V
         1: .line 324
            invokestatic org.apache.logging.log4j.ThreadContext.clearStack:()V
         2: .line 325
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean containsKey(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 334
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            aload 0 /* key */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.containsKey:(Ljava/lang/String;)Z
            ireturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public static java.util.Map<java.lang.String, java.lang.String> getContext();
    descriptor: ()Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 343
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.getCopy:()Ljava/util/Map;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public static java.util.Map<java.lang.String, java.lang.String> getImmutableContext();
    descriptor: ()Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 352
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.getImmutableMapOrNull:()Ljava/util/Map;
            astore 0 /* map */
        start local 0 // java.util.Map map
         1: .line 353
            aload 0 /* map */
            ifnonnull 2
            getstatic org.apache.logging.log4j.ThreadContext.EMPTY_MAP:Ljava/util/Map;
            goto 3
      StackMap locals: java.util.Map
      StackMap stack:
         2: aload 0 /* map */
      StackMap locals:
      StackMap stack: java.util.Map
         3: areturn
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    4     0   map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public static org.apache.logging.log4j.spi.ReadOnlyThreadContextMap getThreadContextMap();
    descriptor: ()Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 373
            getstatic org.apache.logging.log4j.ThreadContext.readOnlyContextMap:Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean isEmpty();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 382
            getstatic org.apache.logging.log4j.ThreadContext.contextMap:Lorg/apache/logging/log4j/spi/ThreadContextMap;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextMap.isEmpty:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void clearStack();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 389
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.clear:()V
         1: .line 390
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.apache.logging.log4j.ThreadContext$ContextStack cloneStack();
    descriptor: ()Lorg/apache/logging/log4j/ThreadContext$ContextStack;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 398
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.copy:()Lorg/apache/logging/log4j/ThreadContext$ContextStack;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.apache.logging.log4j.ThreadContext$ContextStack getImmutableStack();
    descriptor: ()Lorg/apache/logging/log4j/ThreadContext$ContextStack;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 407
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.getImmutableStackOrNull:()Lorg/apache/logging/log4j/ThreadContext$ContextStack;
            astore 0 /* result */
        start local 0 // org.apache.logging.log4j.ThreadContext$ContextStack result
         1: .line 408
            aload 0 /* result */
            ifnonnull 2
            getstatic org.apache.logging.log4j.ThreadContext.EMPTY_STACK:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            goto 3
      StackMap locals: org.apache.logging.log4j.ThreadContext$ContextStack
      StackMap stack:
         2: aload 0 /* result */
      StackMap locals:
      StackMap stack: org.apache.logging.log4j.ThreadContext$ContextStack
         3: areturn
        end local 0 // org.apache.logging.log4j.ThreadContext$ContextStack result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  result  Lorg/apache/logging/log4j/ThreadContext$ContextStack;

  public static void setStack(java.util.Collection<java.lang.String>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Collection stack
         0: .line 417
            aload 0 /* stack */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 1
            getstatic org.apache.logging.log4j.ThreadContext.useStack:Z
            ifne 2
         1: .line 418
      StackMap locals:
      StackMap stack:
            return
         2: .line 420
      StackMap locals:
      StackMap stack:
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.clear:()V
         3: .line 421
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            aload 0 /* stack */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 422
            return
        end local 0 // java.util.Collection stack
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  stack  Ljava/util/Collection<Ljava/lang/String;>;
    Signature: (Ljava/util/Collection<Ljava/lang/String;>;)V
    MethodParameters:
       Name  Flags
      stack  final

  public static int getDepth();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 432
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.getDepth:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String pop();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 446
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.pop:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.String peek();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 460
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.peek:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void push(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String message
         0: .line 473
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            aload 0 /* message */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.push:(Ljava/lang/String;)V
         1: .line 474
            return
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  final

  public static void push(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String message
        start local 1 // java.lang.Object[] args
         0: .line 489
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            aload 0 /* message */
            aload 1 /* args */
            invokestatic org.apache.logging.log4j.message.ParameterizedMessage.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.push:(Ljava/lang/String;)V
         1: .line 490
            return
        end local 1 // java.lang.Object[] args
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  message  Ljava/lang/String;
            0    2     1     args  [Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      message  final
      args     final

  public static void removeStack();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 509
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.clear:()V
         1: .line 510
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void trim(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int depth
         0: .line 545
            getstatic org.apache.logging.log4j.ThreadContext.contextStack:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            iload 0 /* depth */
            invokeinterface org.apache.logging.log4j.spi.ThreadContextStack.trim:(I)V
         1: .line 546
            return
        end local 0 // int depth
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  depth  I
    MethodParameters:
       Name  Flags
      depth  final
}
SourceFile: "ThreadContext.java"
NestMembers:
  org.apache.logging.log4j.ThreadContext$ContextStack  org.apache.logging.log4j.ThreadContext$EmptyIterator  org.apache.logging.log4j.ThreadContext$EmptyThreadContextStack
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract ContextStack = org.apache.logging.log4j.ThreadContext$ContextStack of org.apache.logging.log4j.ThreadContext
  private EmptyIterator = org.apache.logging.log4j.ThreadContext$EmptyIterator of org.apache.logging.log4j.ThreadContext
  private EmptyThreadContextStack = org.apache.logging.log4j.ThreadContext$EmptyThreadContextStack of org.apache.logging.log4j.ThreadContext