public class org.apache.cassandra.tools.NodeTool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.tools.NodeTool
  super_class: java.lang.Object
{
  private static final java.lang.String HISTORYFILE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "nodetool.history"

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.tools.NodeTool this
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.cassandra.tools.NodeTool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/tools/NodeTool;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 51
            bipush 96
            anewarray java.lang.Class
            dup
            iconst_0
         1: .line 52
            ldc Lio/airlift/command/Help;
            aastore
            dup
            iconst_1
         2: .line 53
            ldc Lorg/apache/cassandra/tools/nodetool/Info;
            aastore
            dup
            iconst_2
         3: .line 54
            ldc Lorg/apache/cassandra/tools/nodetool/Ring;
            aastore
            dup
            iconst_3
         4: .line 55
            ldc Lorg/apache/cassandra/tools/nodetool/NetStats;
            aastore
            dup
            iconst_4
         5: .line 56
            ldc Lorg/apache/cassandra/tools/nodetool/CfStats;
            aastore
            dup
            iconst_5
         6: .line 57
            ldc Lorg/apache/cassandra/tools/nodetool/TableStats;
            aastore
            dup
            bipush 6
         7: .line 58
            ldc Lorg/apache/cassandra/tools/nodetool/CfHistograms;
            aastore
            dup
            bipush 7
         8: .line 59
            ldc Lorg/apache/cassandra/tools/nodetool/TableHistograms;
            aastore
            dup
            bipush 8
         9: .line 60
            ldc Lorg/apache/cassandra/tools/nodetool/Cleanup;
            aastore
            dup
            bipush 9
        10: .line 61
            ldc Lorg/apache/cassandra/tools/nodetool/ClearSnapshot;
            aastore
            dup
            bipush 10
        11: .line 62
            ldc Lorg/apache/cassandra/tools/nodetool/Compact;
            aastore
            dup
            bipush 11
        12: .line 63
            ldc Lorg/apache/cassandra/tools/nodetool/Scrub;
            aastore
            dup
            bipush 12
        13: .line 64
            ldc Lorg/apache/cassandra/tools/nodetool/Verify;
            aastore
            dup
            bipush 13
        14: .line 65
            ldc Lorg/apache/cassandra/tools/nodetool/Flush;
            aastore
            dup
            bipush 14
        15: .line 66
            ldc Lorg/apache/cassandra/tools/nodetool/UpgradeSSTable;
            aastore
            dup
            bipush 15
        16: .line 67
            ldc Lorg/apache/cassandra/tools/nodetool/GarbageCollect;
            aastore
            dup
            bipush 16
        17: .line 68
            ldc Lorg/apache/cassandra/tools/nodetool/DisableAutoCompaction;
            aastore
            dup
            bipush 17
        18: .line 69
            ldc Lorg/apache/cassandra/tools/nodetool/EnableAutoCompaction;
            aastore
            dup
            bipush 18
        19: .line 70
            ldc Lorg/apache/cassandra/tools/nodetool/CompactionStats;
            aastore
            dup
            bipush 19
        20: .line 71
            ldc Lorg/apache/cassandra/tools/nodetool/CompactionHistory;
            aastore
            dup
            bipush 20
        21: .line 72
            ldc Lorg/apache/cassandra/tools/nodetool/Decommission;
            aastore
            dup
            bipush 21
        22: .line 73
            ldc Lorg/apache/cassandra/tools/nodetool/DescribeCluster;
            aastore
            dup
            bipush 22
        23: .line 74
            ldc Lorg/apache/cassandra/tools/nodetool/DisableBinary;
            aastore
            dup
            bipush 23
        24: .line 75
            ldc Lorg/apache/cassandra/tools/nodetool/EnableBinary;
            aastore
            dup
            bipush 24
        25: .line 76
            ldc Lorg/apache/cassandra/tools/nodetool/EnableGossip;
            aastore
            dup
            bipush 25
        26: .line 77
            ldc Lorg/apache/cassandra/tools/nodetool/DisableGossip;
            aastore
            dup
            bipush 26
        27: .line 78
            ldc Lorg/apache/cassandra/tools/nodetool/EnableHandoff;
            aastore
            dup
            bipush 27
        28: .line 79
            ldc Lorg/apache/cassandra/tools/nodetool/EnableThrift;
            aastore
            dup
            bipush 28
        29: .line 80
            ldc Lorg/apache/cassandra/tools/nodetool/GcStats;
            aastore
            dup
            bipush 29
        30: .line 81
            ldc Lorg/apache/cassandra/tools/nodetool/GetCompactionThreshold;
            aastore
            dup
            bipush 30
        31: .line 82
            ldc Lorg/apache/cassandra/tools/nodetool/GetCompactionThroughput;
            aastore
            dup
            bipush 31
        32: .line 83
            ldc Lorg/apache/cassandra/tools/nodetool/GetTimeout;
            aastore
            dup
            bipush 32
        33: .line 84
            ldc Lorg/apache/cassandra/tools/nodetool/GetStreamThroughput;
            aastore
            dup
            bipush 33
        34: .line 85
            ldc Lorg/apache/cassandra/tools/nodetool/GetTraceProbability;
            aastore
            dup
            bipush 34
        35: .line 86
            ldc Lorg/apache/cassandra/tools/nodetool/GetInterDCStreamThroughput;
            aastore
            dup
            bipush 35
        36: .line 87
            ldc Lorg/apache/cassandra/tools/nodetool/GetEndpoints;
            aastore
            dup
            bipush 36
        37: .line 88
            ldc Lorg/apache/cassandra/tools/nodetool/GetSSTables;
            aastore
            dup
            bipush 37
        38: .line 89
            ldc Lorg/apache/cassandra/tools/nodetool/GossipInfo;
            aastore
            dup
            bipush 38
        39: .line 90
            ldc Lorg/apache/cassandra/tools/nodetool/InvalidateKeyCache;
            aastore
            dup
            bipush 39
        40: .line 91
            ldc Lorg/apache/cassandra/tools/nodetool/InvalidateRowCache;
            aastore
            dup
            bipush 40
        41: .line 92
            ldc Lorg/apache/cassandra/tools/nodetool/InvalidateCounterCache;
            aastore
            dup
            bipush 41
        42: .line 93
            ldc Lorg/apache/cassandra/tools/nodetool/Join;
            aastore
            dup
            bipush 42
        43: .line 94
            ldc Lorg/apache/cassandra/tools/nodetool/Move;
            aastore
            dup
            bipush 43
        44: .line 95
            ldc Lorg/apache/cassandra/tools/nodetool/PauseHandoff;
            aastore
            dup
            bipush 44
        45: .line 96
            ldc Lorg/apache/cassandra/tools/nodetool/ResumeHandoff;
            aastore
            dup
            bipush 45
        46: .line 97
            ldc Lorg/apache/cassandra/tools/nodetool/ProxyHistograms;
            aastore
            dup
            bipush 46
        47: .line 98
            ldc Lorg/apache/cassandra/tools/nodetool/Rebuild;
            aastore
            dup
            bipush 47
        48: .line 99
            ldc Lorg/apache/cassandra/tools/nodetool/Refresh;
            aastore
            dup
            bipush 48
        49: .line 100
            ldc Lorg/apache/cassandra/tools/nodetool/RemoveNode;
            aastore
            dup
            bipush 49
        50: .line 101
            ldc Lorg/apache/cassandra/tools/nodetool/Assassinate;
            aastore
            dup
            bipush 50
        51: .line 102
            ldc Lorg/apache/cassandra/tools/nodetool/Repair;
            aastore
            dup
            bipush 51
        52: .line 103
            ldc Lorg/apache/cassandra/tools/nodetool/ReplayBatchlog;
            aastore
            dup
            bipush 52
        53: .line 104
            ldc Lorg/apache/cassandra/tools/nodetool/SetCacheCapacity;
            aastore
            dup
            bipush 53
        54: .line 105
            ldc Lorg/apache/cassandra/tools/nodetool/SetHintedHandoffThrottleInKB;
            aastore
            dup
            bipush 54
        55: .line 106
            ldc Lorg/apache/cassandra/tools/nodetool/SetCompactionThreshold;
            aastore
            dup
            bipush 55
        56: .line 107
            ldc Lorg/apache/cassandra/tools/nodetool/SetCompactionThroughput;
            aastore
            dup
            bipush 56
        57: .line 108
            ldc Lorg/apache/cassandra/tools/nodetool/GetConcurrentCompactors;
            aastore
            dup
            bipush 57
        58: .line 109
            ldc Lorg/apache/cassandra/tools/nodetool/SetConcurrentCompactors;
            aastore
            dup
            bipush 58
        59: .line 110
            ldc Lorg/apache/cassandra/tools/nodetool/SetTimeout;
            aastore
            dup
            bipush 59
        60: .line 111
            ldc Lorg/apache/cassandra/tools/nodetool/SetStreamThroughput;
            aastore
            dup
            bipush 60
        61: .line 112
            ldc Lorg/apache/cassandra/tools/nodetool/SetInterDCStreamThroughput;
            aastore
            dup
            bipush 61
        62: .line 113
            ldc Lorg/apache/cassandra/tools/nodetool/SetTraceProbability;
            aastore
            dup
            bipush 62
        63: .line 114
            ldc Lorg/apache/cassandra/tools/nodetool/Snapshot;
            aastore
            dup
            bipush 63
        64: .line 115
            ldc Lorg/apache/cassandra/tools/nodetool/ListSnapshots;
            aastore
            dup
            bipush 64
        65: .line 116
            ldc Lorg/apache/cassandra/tools/nodetool/Status;
            aastore
            dup
            bipush 65
        66: .line 117
            ldc Lorg/apache/cassandra/tools/nodetool/StatusBinary;
            aastore
            dup
            bipush 66
        67: .line 118
            ldc Lorg/apache/cassandra/tools/nodetool/StatusGossip;
            aastore
            dup
            bipush 67
        68: .line 119
            ldc Lorg/apache/cassandra/tools/nodetool/StatusThrift;
            aastore
            dup
            bipush 68
        69: .line 120
            ldc Lorg/apache/cassandra/tools/nodetool/StatusBackup;
            aastore
            dup
            bipush 69
        70: .line 121
            ldc Lorg/apache/cassandra/tools/nodetool/StatusHandoff;
            aastore
            dup
            bipush 70
        71: .line 122
            ldc Lorg/apache/cassandra/tools/nodetool/Stop;
            aastore
            dup
            bipush 71
        72: .line 123
            ldc Lorg/apache/cassandra/tools/nodetool/StopDaemon;
            aastore
            dup
            bipush 72
        73: .line 124
            ldc Lorg/apache/cassandra/tools/nodetool/Version;
            aastore
            dup
            bipush 73
        74: .line 125
            ldc Lorg/apache/cassandra/tools/nodetool/DescribeRing;
            aastore
            dup
            bipush 74
        75: .line 126
            ldc Lorg/apache/cassandra/tools/nodetool/RebuildIndex;
            aastore
            dup
            bipush 75
        76: .line 127
            ldc Lorg/apache/cassandra/tools/nodetool/RangeKeySample;
            aastore
            dup
            bipush 76
        77: .line 128
            ldc Lorg/apache/cassandra/tools/nodetool/EnableBackup;
            aastore
            dup
            bipush 77
        78: .line 129
            ldc Lorg/apache/cassandra/tools/nodetool/DisableBackup;
            aastore
            dup
            bipush 78
        79: .line 130
            ldc Lorg/apache/cassandra/tools/nodetool/ResetLocalSchema;
            aastore
            dup
            bipush 79
        80: .line 131
            ldc Lorg/apache/cassandra/tools/nodetool/ReloadLocalSchema;
            aastore
            dup
            bipush 80
        81: .line 132
            ldc Lorg/apache/cassandra/tools/nodetool/ReloadTriggers;
            aastore
            dup
            bipush 81
        82: .line 133
            ldc Lorg/apache/cassandra/tools/nodetool/SetCacheKeysToSave;
            aastore
            dup
            bipush 82
        83: .line 134
            ldc Lorg/apache/cassandra/tools/nodetool/DisableThrift;
            aastore
            dup
            bipush 83
        84: .line 135
            ldc Lorg/apache/cassandra/tools/nodetool/DisableHandoff;
            aastore
            dup
            bipush 84
        85: .line 136
            ldc Lorg/apache/cassandra/tools/nodetool/Drain;
            aastore
            dup
            bipush 85
        86: .line 137
            ldc Lorg/apache/cassandra/tools/nodetool/TruncateHints;
            aastore
            dup
            bipush 86
        87: .line 138
            ldc Lorg/apache/cassandra/tools/nodetool/TpStats;
            aastore
            dup
            bipush 87
        88: .line 139
            ldc Lorg/apache/cassandra/tools/nodetool/TopPartitions;
            aastore
            dup
            bipush 88
        89: .line 140
            ldc Lorg/apache/cassandra/tools/nodetool/SetLoggingLevel;
            aastore
            dup
            bipush 89
        90: .line 141
            ldc Lorg/apache/cassandra/tools/nodetool/GetLoggingLevels;
            aastore
            dup
            bipush 90
        91: .line 142
            ldc Lorg/apache/cassandra/tools/nodetool/DisableHintsForDC;
            aastore
            dup
            bipush 91
        92: .line 143
            ldc Lorg/apache/cassandra/tools/nodetool/EnableHintsForDC;
            aastore
            dup
            bipush 92
        93: .line 144
            ldc Lorg/apache/cassandra/tools/nodetool/FailureDetectorInfo;
            aastore
            dup
            bipush 93
        94: .line 145
            ldc Lorg/apache/cassandra/tools/nodetool/RefreshSizeEstimates;
            aastore
            dup
            bipush 94
        95: .line 146
            ldc Lorg/apache/cassandra/tools/nodetool/RelocateSSTables;
            aastore
            dup
            bipush 95
        96: .line 147
            ldc Lorg/apache/cassandra/tools/nodetool/ViewBuildStatus;
            aastore
        97: .line 51
            invokestatic com.google.common.collect.Lists.newArrayList:([Ljava/lang/Object;)Ljava/util/ArrayList;
            astore 1 /* commands */
        start local 1 // java.util.List commands
        98: .line 150
            ldc "nodetool"
            invokestatic io.airlift.command.Cli.builder:(Ljava/lang/String;)Lio/airlift/command/Cli$CliBuilder;
            astore 2 /* builder */
        start local 2 // io.airlift.command.Cli$CliBuilder builder
        99: .line 152
            aload 2 /* builder */
            ldc "Manage your Cassandra cluster"
            invokevirtual io.airlift.command.Cli$CliBuilder.withDescription:(Ljava/lang/String;)Lio/airlift/command/Cli$CliBuilder;
       100: .line 153
            ldc Lio/airlift/command/Help;
            invokevirtual io.airlift.command.Cli$CliBuilder.withDefaultCommand:(Ljava/lang/Class;)Lio/airlift/command/Cli$CliBuilder;
       101: .line 154
            aload 1 /* commands */
            invokevirtual io.airlift.command.Cli$CliBuilder.withCommands:(Ljava/lang/Iterable;)Lio/airlift/command/Cli$CliBuilder;
            pop
       102: .line 157
            aload 2 /* builder */
            ldc "bootstrap"
            invokevirtual io.airlift.command.Cli$CliBuilder.withGroup:(Ljava/lang/String;)Lio/airlift/command/Cli$GroupBuilder;
       103: .line 158
            ldc "Monitor/manage node's bootstrap process"
            invokevirtual io.airlift.command.Cli$GroupBuilder.withDescription:(Ljava/lang/String;)Lio/airlift/command/Cli$GroupBuilder;
       104: .line 159
            ldc Lio/airlift/command/Help;
            invokevirtual io.airlift.command.Cli$GroupBuilder.withDefaultCommand:(Ljava/lang/Class;)Lio/airlift/command/Cli$GroupBuilder;
       105: .line 160
            ldc Lorg/apache/cassandra/tools/nodetool/BootstrapResume;
            invokevirtual io.airlift.command.Cli$GroupBuilder.withCommand:(Ljava/lang/Class;)Lio/airlift/command/Cli$GroupBuilder;
            pop
       106: .line 162
            aload 2 /* builder */
            invokevirtual io.airlift.command.Cli$CliBuilder.build:()Lio/airlift/command/Cli;
            astore 3 /* parser */
        start local 3 // io.airlift.command.Cli parser
       107: .line 164
            iconst_0
            istore 4 /* status */
        start local 4 // int status
       108: .line 167
            aload 3 /* parser */
            aload 0 /* args */
            invokevirtual io.airlift.command.Cli.parse:([Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Runnable
            astore 5 /* parse */
        start local 5 // java.lang.Runnable parse
       109: .line 168
            aload 0 /* args */
            invokestatic org.apache.cassandra.tools.NodeTool.printHistory:([Ljava/lang/String;)V
       110: .line 169
            aload 5 /* parse */
            invokeinterface java.lang.Runnable.run:()V
        end local 5 // java.lang.Runnable parse
       111: .line 170
            goto 119
       112: .line 178
      StackMap locals: java.lang.String[] java.util.List io.airlift.command.Cli$CliBuilder io.airlift.command.Cli int
      StackMap stack: java.lang.RuntimeException
            astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
       113: .line 180
            aload 5 /* e */
            invokestatic org.apache.cassandra.tools.NodeTool.badUse:(Ljava/lang/Exception;)V
       114: .line 181
            iconst_1
            istore 4 /* status */
        end local 5 // java.lang.RuntimeException e
       115: goto 119
       116: .line 182
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* throwable */
        start local 5 // java.lang.Throwable throwable
       117: .line 184
            aload 5 /* throwable */
            invokestatic com.google.common.base.Throwables.getRootCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            invokestatic org.apache.cassandra.tools.NodeTool.err:(Ljava/lang/Throwable;)V
       118: .line 185
            iconst_2
            istore 4 /* status */
        end local 5 // java.lang.Throwable throwable
       119: .line 188
      StackMap locals:
      StackMap stack:
            iload 4 /* status */
            invokestatic java.lang.System.exit:(I)V
       120: .line 189
            return
        end local 4 // int status
        end local 3 // io.airlift.command.Cli parser
        end local 2 // io.airlift.command.Cli$CliBuilder builder
        end local 1 // java.util.List commands
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0  121     0       args  [Ljava/lang/String;
           98  121     1   commands  Ljava/util/List<Ljava/lang/Class<+Ljava/lang/Runnable;>;>;
           99  121     2    builder  Lio/airlift/command/Cli$CliBuilder<Ljava/lang/Runnable;>;
          107  121     3     parser  Lio/airlift/command/Cli<Ljava/lang/Runnable;>;
          108  121     4     status  I
          109  111     5      parse  Ljava/lang/Runnable;
          113  115     5          e  Ljava/lang/RuntimeException;
          117  119     5  throwable  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
         108   111     112  Class java.lang.IllegalArgumentException
         108   111     112  Class java.lang.IllegalStateException
         108   111     112  Class io.airlift.command.ParseArgumentsMissingException
         108   111     112  Class io.airlift.command.ParseArgumentsUnexpectedException
         108   111     112  Class io.airlift.command.ParseOptionConversionException
         108   111     112  Class io.airlift.command.ParseOptionMissingException
         108   111     112  Class io.airlift.command.ParseOptionMissingValueException
         108   111     112  Class io.airlift.command.ParseCommandMissingException
         108   111     112  Class io.airlift.command.ParseCommandUnrecognizedException
         108   111     116  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      args  

  private static void printHistory(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 194
            aload 0 /* args */
            arraylength
            ifne 2
         1: .line 195
            return
         2: .line 197
      StackMap locals:
      StackMap stack:
            ldc " "
            invokestatic com.google.common.base.Joiner.on:(Ljava/lang/String;)Lcom/google/common/base/Joiner;
            invokevirtual com.google.common.base.Joiner.skipNulls:()Lcom/google/common/base/Joiner;
            aload 0 /* args */
            invokevirtual com.google.common.base.Joiner.join:([Ljava/lang/Object;)Ljava/lang/String;
            astore 1 /* cmdLine */
        start local 1 // java.lang.String cmdLine
         3: .line 198
            aload 1 /* cmdLine */
            ldc "(?<=(-pw|--password))\\s+\\S+"
            ldc " <hidden>"
            invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* cmdLine */
         4: .line 200
            aconst_null
            astore 2
            aconst_null
            astore 3
         5: new java.io.FileWriter
            dup
            new java.io.File
            dup
            invokestatic org.apache.cassandra.utils.FBUtilities.getToolsOutputDirectory:()Ljava/io/File;
            ldc "nodetool.history"
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            iconst_1
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;Z)V
            astore 4 /* writer */
        start local 4 // java.io.FileWriter writer
         6: .line 202
            new java.text.SimpleDateFormat
            dup
            ldc "yyyy-MM-dd HH:mm:ss,SSS"
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;)V
            astore 5 /* sdf */
        start local 5 // java.text.SimpleDateFormat sdf
         7: .line 203
            aload 4 /* writer */
            aload 5 /* sdf */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.text.SimpleDateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            invokevirtual java.io.FileWriter.append:(Ljava/lang/CharSequence;)Ljava/io/Writer;
            ldc ": "
            invokevirtual java.io.Writer.append:(Ljava/lang/CharSequence;)Ljava/io/Writer;
            aload 1 /* cmdLine */
            invokevirtual java.io.Writer.append:(Ljava/lang/CharSequence;)Ljava/io/Writer;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.io.Writer.append:(Ljava/lang/CharSequence;)Ljava/io/Writer;
            pop
        end local 5 // java.text.SimpleDateFormat sdf
         8: .line 204
            aload 4 /* writer */
            ifnull 15
            aload 4 /* writer */
            invokevirtual java.io.FileWriter.close:()V
            goto 15
      StackMap locals: java.lang.String[] java.lang.String java.lang.Throwable java.lang.Throwable java.io.FileWriter
      StackMap stack: java.lang.Throwable
         9: astore 2
            aload 4 /* writer */
            ifnull 10
            aload 4 /* writer */
            invokevirtual java.io.FileWriter.close:()V
        end local 4 // java.io.FileWriter writer
      StackMap locals:
      StackMap stack:
        10: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 3
            aload 2
            ifnonnull 12
            aload 3
            astore 2
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 2
            aload 3
            if_acmpeq 13
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 2
            athrow
        14: .line 205
      StackMap locals: java.lang.String[] java.lang.String
      StackMap stack: java.lang.Throwable
            pop
        15: .line 209
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String cmdLine
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     args  [Ljava/lang/String;
            3   16     1  cmdLine  Ljava/lang/String;
            6   10     4   writer  Ljava/io/FileWriter;
            7    8     5      sdf  Ljava/text/SimpleDateFormat;
      Exception table:
        from    to  target  type
           6     8       9  any
           5    11      11  any
           4    14      14  Class java.io.IOException
           4    14      14  Class java.io.IOError
    MethodParameters:
      Name  Flags
      args  

  private static void badUse(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Exception e
         0: .line 213
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "nodetool: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 214
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "See 'nodetool help' or 'nodetool help <command>'."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 215
            return
        end local 0 // java.lang.Exception e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Ljava/lang/Exception;
    MethodParameters:
      Name  Flags
      e     

  private static void err(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Throwable e
         0: .line 219
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* e */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 220
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "-- StackTrace --"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 221
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 0 /* e */
            invokestatic com.google.common.base.Throwables.getStackTraceAsString:(Ljava/lang/Throwable;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 222
            return
        end local 0 // java.lang.Throwable e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     e  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      e     

  public static java.util.SortedMap<java.lang.String, org.apache.cassandra.tools.nodetool.SetHostStat> getOwnershipByDc(org.apache.cassandra.tools.NodeProbe, boolean, java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.net.InetAddress, java.lang.Float>);
    descriptor: (Lorg/apache/cassandra/tools/NodeProbe;ZLjava/util/Map;Ljava/util/Map;)Ljava/util/SortedMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.apache.cassandra.tools.NodeProbe probe
        start local 1 // boolean resolveIp
        start local 2 // java.util.Map tokenToEndpoint
        start local 3 // java.util.Map ownerships
         0: .line 374
            invokestatic com.google.common.collect.Maps.newTreeMap:()Ljava/util/TreeMap;
            astore 4 /* ownershipByDc */
        start local 4 // java.util.SortedMap ownershipByDc
         1: .line 375
            aload 0 /* probe */
            invokevirtual org.apache.cassandra.tools.NodeProbe.getEndpointSnitchInfoProxy:()Lorg/apache/cassandra/locator/EndpointSnitchInfoMBean;
            astore 5 /* epSnitchInfo */
        start local 5 // org.apache.cassandra.locator.EndpointSnitchInfoMBean epSnitchInfo
         2: .line 378
            aload 2 /* tokenToEndpoint */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: org.apache.cassandra.tools.NodeProbe int java.util.Map java.util.Map java.util.SortedMap org.apache.cassandra.locator.EndpointSnitchInfoMBean top java.util.Iterator
      StackMap stack:
         3: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* tokenAndEndPoint */
        start local 6 // java.util.Map$Entry tokenAndEndPoint
         4: .line 380
            aload 5 /* epSnitchInfo */
            aload 6 /* tokenAndEndPoint */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.apache.cassandra.locator.EndpointSnitchInfoMBean.getDatacenter:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* dc */
        start local 8 // java.lang.String dc
         5: .line 381
            aload 4 /* ownershipByDc */
            aload 8 /* dc */
            invokeinterface java.util.SortedMap.containsKey:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 382
            aload 4 /* ownershipByDc */
            aload 8 /* dc */
            new org.apache.cassandra.tools.nodetool.SetHostStat
            dup
            iload 1 /* resolveIp */
            invokespecial org.apache.cassandra.tools.nodetool.SetHostStat.<init>:(Z)V
            invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 383
      StackMap locals: org.apache.cassandra.tools.NodeProbe int java.util.Map java.util.Map java.util.SortedMap org.apache.cassandra.locator.EndpointSnitchInfoMBean java.util.Map$Entry java.util.Iterator java.lang.String
      StackMap stack:
            aload 4 /* ownershipByDc */
            aload 8 /* dc */
            invokeinterface java.util.SortedMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.tools.nodetool.SetHostStat
            aload 6 /* tokenAndEndPoint */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 6 /* tokenAndEndPoint */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 3 /* ownerships */
            invokevirtual org.apache.cassandra.tools.nodetool.SetHostStat.add:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
        end local 8 // java.lang.String dc
        end local 6 // java.util.Map$Entry tokenAndEndPoint
         8: .line 378
      StackMap locals: org.apache.cassandra.tools.NodeProbe int java.util.Map java.util.Map java.util.SortedMap org.apache.cassandra.locator.EndpointSnitchInfoMBean top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 385
            goto 12
        10: .line 386
      StackMap locals: org.apache.cassandra.tools.NodeProbe int java.util.Map java.util.Map java.util.SortedMap org.apache.cassandra.locator.EndpointSnitchInfoMBean
      StackMap stack: java.net.UnknownHostException
            astore 6 /* e */
        start local 6 // java.net.UnknownHostException e
        11: .line 388
            new java.lang.RuntimeException
            dup
            aload 6 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.net.UnknownHostException e
        12: .line 390
      StackMap locals:
      StackMap stack:
            aload 4 /* ownershipByDc */
            areturn
        end local 5 // org.apache.cassandra.locator.EndpointSnitchInfoMBean epSnitchInfo
        end local 4 // java.util.SortedMap ownershipByDc
        end local 3 // java.util.Map ownerships
        end local 2 // java.util.Map tokenToEndpoint
        end local 1 // boolean resolveIp
        end local 0 // org.apache.cassandra.tools.NodeProbe probe
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0             probe  Lorg/apache/cassandra/tools/NodeProbe;
            0   13     1         resolveIp  Z
            0   13     2   tokenToEndpoint  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   13     3        ownerships  Ljava/util/Map<Ljava/net/InetAddress;Ljava/lang/Float;>;
            1   13     4     ownershipByDc  Ljava/util/SortedMap<Ljava/lang/String;Lorg/apache/cassandra/tools/nodetool/SetHostStat;>;
            2   13     5      epSnitchInfo  Lorg/apache/cassandra/locator/EndpointSnitchInfoMBean;
            4    8     6  tokenAndEndPoint  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
            5    8     8                dc  Ljava/lang/String;
           11   12     6                 e  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
           2     9      10  Class java.net.UnknownHostException
    Signature: (Lorg/apache/cassandra/tools/NodeProbe;ZLjava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/util/Map<Ljava/net/InetAddress;Ljava/lang/Float;>;)Ljava/util/SortedMap<Ljava/lang/String;Lorg/apache/cassandra/tools/nodetool/SetHostStat;>;
    MethodParameters:
                 Name  Flags
      probe            
      resolveIp        
      tokenToEndpoint  
      ownerships       
}
SourceFile: "NodeTool.java"
NestMembers:
  org.apache.cassandra.tools.NodeTool$NodeToolCmd  org.apache.cassandra.tools.NodeTool$NodeToolCmd$KeyspaceSet
InnerClasses:
  public CliBuilder = io.airlift.command.Cli$CliBuilder of io.airlift.command.Cli
  public GroupBuilder = io.airlift.command.Cli$GroupBuilder of io.airlift.command.Cli
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract NodeToolCmd = org.apache.cassandra.tools.NodeTool$NodeToolCmd of org.apache.cassandra.tools.NodeTool