public class MainViewerGUI extends javax.swing.JFrame implements FileChangeNotifier
Modifier and Type | Class and Description |
---|---|
class |
MainViewerGUI.APKDEXJarZipClassFileFilter |
class |
MainViewerGUI.DexFileFilter |
class |
MainViewerGUI.GroovyFileFilter |
class |
MainViewerGUI.GroovyPythonRubyFileFilter |
class |
MainViewerGUI.JarFileFilter |
class |
MainViewerGUI.JavaFileFilter |
class |
MainViewerGUI.JavaPFileFilter |
class |
MainViewerGUI.PythonCFileFilter |
class |
MainViewerGUI.RTCFileFilter |
class |
MainViewerGUI.ZipFileFilter |
Modifier and Type | Field and Description |
---|---|
javax.swing.JCheckBoxMenuItem |
aexagg |
javax.swing.JCheckBoxMenuItem |
allowcorrecting |
javax.swing.JCheckBoxMenuItem |
arrayiter |
javax.swing.JCheckBoxMenuItem |
asc |
javax.swing.JCheckBoxMenuItem |
autoCompileOnRefresh |
javax.swing.JCheckBoxMenuItem |
autoCompileSmali |
javax.swing.JCheckBoxMenuItem |
bto |
javax.swing.JCheckBoxMenuItem |
chckbxmntmAppendBrackets |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_1 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_10 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_11 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_12 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_2 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_3 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_4 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_5 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_6 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_7 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_8 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmNewCheckItem_9 |
javax.swing.JCheckBoxMenuItem |
chckbxmntmShowDebugLine |
javax.swing.JCheckBoxMenuItem |
chckbxmntmSimplifyMemberReferences |
javax.swing.JCheckBoxMenuItem |
collectioniter |
javax.swing.JCheckBoxMenuItem |
commentmonitor |
javax.swing.JCheckBoxMenuItem |
comments |
javax.swing.JCheckBoxMenuItem |
das |
javax.swing.JCheckBoxMenuItem |
dc4 |
javax.swing.JCheckBoxMenuItem |
debugHelpers |
javax.swing.JCheckBoxMenuItem |
decodeAPKResources |
javax.swing.JCheckBoxMenuItem |
decodeenumswitch |
javax.swing.JCheckBoxMenuItem |
decodefinally |
javax.swing.JCheckBoxMenuItem |
decodelambdas |
javax.swing.JCheckBoxMenuItem |
decodestringswitch |
javax.swing.JCheckBoxMenuItem |
den |
javax.swing.JCheckBoxMenuItem |
dgs |
javax.swing.JCheckBoxMenuItem |
din |
javax.swing.JCheckBoxMenuItem |
dumpclasspath |
javax.swing.JCheckBoxMenuItem |
eclipse |
javax.swing.JCheckBoxMenuItem |
fdi |
javax.swing.JCheckBoxMenuItem |
forcecondpropagate |
javax.swing.JCheckBoxMenuItem |
forceexceptionprune |
javax.swing.JCheckBoxMenuItem |
forcetopsort |
javax.swing.JCheckBoxMenuItem |
forcetopsortaggress |
javax.swing.JCheckBoxMenuItem |
forceturningifs |
javax.swing.JCheckBoxMenuItem |
forloopaggcapture |
javax.swing.JCheckBoxMenuItem |
hdc |
javax.swing.JCheckBoxMenuItem |
hes |
javax.swing.JCheckBoxMenuItem |
hidebridgemethods |
javax.swing.JCheckBoxMenuItem |
hidelangimports |
javax.swing.JCheckBoxMenuItem |
hidelongstrings |
javax.swing.JCheckBoxMenuItem |
hideutf |
javax.swing.JCheckBoxMenuItem |
innerclasses |
boolean |
isMaximized |
javax.swing.JCheckBoxMenuItem |
j14classobj |
javax.swing.JCheckBoxMenuItem |
labelledblocks |
javax.swing.JCheckBoxMenuItem |
lenient |
javax.swing.JCheckBoxMenuItem |
liftconstructorinit |
javax.swing.JRadioButtonMenuItem |
lightObf |
javax.swing.JCheckBoxMenuItem |
mnMergeVariables |
javax.swing.JMenu |
mnRecentFiles |
javax.swing.JMenu |
mnRecentPlugins |
javax.swing.JCheckBoxMenuItem |
ner |
javax.swing.JCheckBoxMenuItem |
nns |
javax.swing.ButtonGroup |
obfuscatorGroup |
javax.swing.JCheckBoxMenuItem |
override |
javax.swing.JCheckBoxMenuItem |
pane1Editable |
javax.swing.JCheckBoxMenuItem |
pane2Editable |
javax.swing.JCheckBoxMenuItem |
pane3Editable |
javax.swing.JRadioButtonMenuItem |
panel1Bytecode |
javax.swing.JRadioButtonMenuItem |
panel1CFR |
javax.swing.JRadioButtonMenuItem |
panel1Fern |
javax.swing.JRadioButtonMenuItem |
panel1Hexcode |
javax.swing.JRadioButtonMenuItem |
panel1Krakatau |
javax.swing.JRadioButtonMenuItem |
panel1KrakatauEditable |
javax.swing.JRadioButtonMenuItem |
panel1None |
javax.swing.JRadioButtonMenuItem |
panel1Proc |
javax.swing.JRadioButtonMenuItem |
panel1Smali |
javax.swing.JRadioButtonMenuItem |
panel2Bytecode |
javax.swing.JRadioButtonMenuItem |
panel2CFR |
javax.swing.JRadioButtonMenuItem |
panel2Fern |
javax.swing.JRadioButtonMenuItem |
panel2Hexcode |
javax.swing.JRadioButtonMenuItem |
panel2Krakatau |
javax.swing.JRadioButtonMenuItem |
panel2KrakatauEditable |
javax.swing.JRadioButtonMenuItem |
panel2None |
javax.swing.JRadioButtonMenuItem |
panel2Proc |
javax.swing.JRadioButtonMenuItem |
panel2Smali |
javax.swing.JRadioButtonMenuItem |
panel3Bytecode |
javax.swing.JRadioButtonMenuItem |
panel3CFR |
javax.swing.JRadioButtonMenuItem |
panel3Fern |
javax.swing.JRadioButtonMenuItem |
panel3Hexcode |
javax.swing.JRadioButtonMenuItem |
panel3Krakatau |
javax.swing.JRadioButtonMenuItem |
panel3KrakatauEditable |
javax.swing.JRadioButtonMenuItem |
panel3None |
javax.swing.JRadioButtonMenuItem |
panel3Proc |
javax.swing.JRadioButtonMenuItem |
panel3Smali |
javax.swing.ButtonGroup |
panelGroup1 |
javax.swing.ButtonGroup |
panelGroup2 |
javax.swing.ButtonGroup |
panelGroup3 |
javax.swing.JCheckBoxMenuItem |
rbr |
javax.swing.JCheckBoxMenuItem |
recover |
javax.swing.JCheckBoxMenuItem |
recoverytypeclash |
javax.swing.JCheckBoxMenuItem |
recoverytypehints |
javax.swing.JCheckBoxMenuItem |
refreshOnChange |
javax.swing.JCheckBoxMenuItem |
removebadgenerics |
javax.swing.JCheckBoxMenuItem |
removeboilerplate |
javax.swing.JCheckBoxMenuItem |
removedeadmethods |
javax.swing.JCheckBoxMenuItem |
removeinnerclasssynthetics |
javax.swing.JCheckBoxMenuItem |
rer |
javax.swing.JCheckBoxMenuItem |
rgn |
javax.swing.JCheckBoxMenuItem |
rsy |
javax.swing.JCheckBoxMenuItem |
showinferrable |
javax.swing.JCheckBoxMenuItem |
showversion |
javax.swing.JCheckBoxMenuItem |
silent |
javax.swing.JCheckBoxMenuItem |
stringbuffer |
javax.swing.JCheckBoxMenuItem |
stringbuilder |
javax.swing.JRadioButtonMenuItem |
strongObf |
javax.swing.JCheckBoxMenuItem |
sugarasserts |
javax.swing.JCheckBoxMenuItem |
sugarboxing |
javax.swing.JCheckBoxMenuItem |
sugarenums |
javax.swing.JCheckBoxMenuItem |
tidymonitors |
javax.swing.JCheckBoxMenuItem |
udv |
javax.swing.JCheckBoxMenuItem |
uto |
WorkPane |
workPane |
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor and Description |
---|
MainViewerGUI() |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
appendClass(java.io.File file) |
java.lang.String |
appendJava(java.io.File file) |
java.lang.String |
appendZip(java.io.File file) |
void |
checkKey(java.awt.event.KeyEvent e) |
static <T> T |
getComponent(java.lang.Class<T> clazz) |
void |
openClassFile(java.lang.String name,
org.objectweb.asm.tree.ClassNode cn) |
void |
openFile(java.lang.String name,
byte[] content) |
void |
pythonC() |
void |
removed(boolean busy) |
void |
rtC() |
void |
setIcon(boolean busy) |
getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setTransferHandler, update
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, dispatchEvent, enable, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public javax.swing.JCheckBoxMenuItem debugHelpers
public javax.swing.JCheckBoxMenuItem rbr
public javax.swing.JCheckBoxMenuItem rsy
public javax.swing.JCheckBoxMenuItem din
public javax.swing.JCheckBoxMenuItem dc4
public javax.swing.JCheckBoxMenuItem das
public javax.swing.JCheckBoxMenuItem hes
public javax.swing.JCheckBoxMenuItem hdc
public javax.swing.JCheckBoxMenuItem dgs
public javax.swing.JCheckBoxMenuItem ner
public javax.swing.JCheckBoxMenuItem den
public javax.swing.JCheckBoxMenuItem rgn
public javax.swing.JCheckBoxMenuItem bto
public javax.swing.JCheckBoxMenuItem nns
public javax.swing.JCheckBoxMenuItem uto
public javax.swing.JCheckBoxMenuItem udv
public javax.swing.JCheckBoxMenuItem rer
public javax.swing.JCheckBoxMenuItem fdi
public javax.swing.JCheckBoxMenuItem asc
public javax.swing.JMenu mnRecentFiles
public javax.swing.JMenu mnRecentPlugins
public final javax.swing.JCheckBoxMenuItem decodeenumswitch
public final javax.swing.JCheckBoxMenuItem sugarenums
public final javax.swing.JCheckBoxMenuItem decodestringswitch
public final javax.swing.JCheckBoxMenuItem arrayiter
public final javax.swing.JCheckBoxMenuItem collectioniter
public final javax.swing.JCheckBoxMenuItem innerclasses
public final javax.swing.JCheckBoxMenuItem removeboilerplate
public final javax.swing.JCheckBoxMenuItem removeinnerclasssynthetics
public final javax.swing.JCheckBoxMenuItem decodelambdas
public final javax.swing.JCheckBoxMenuItem hidebridgemethods
public final javax.swing.JCheckBoxMenuItem liftconstructorinit
public final javax.swing.JCheckBoxMenuItem removedeadmethods
public final javax.swing.JCheckBoxMenuItem removebadgenerics
public final javax.swing.JCheckBoxMenuItem sugarasserts
public final javax.swing.JCheckBoxMenuItem sugarboxing
public final javax.swing.JCheckBoxMenuItem showversion
public final javax.swing.JCheckBoxMenuItem decodefinally
public final javax.swing.JCheckBoxMenuItem tidymonitors
public final javax.swing.JCheckBoxMenuItem lenient
public final javax.swing.JCheckBoxMenuItem dumpclasspath
public final javax.swing.JCheckBoxMenuItem comments
public final javax.swing.JCheckBoxMenuItem forcetopsort
public final javax.swing.JCheckBoxMenuItem forcetopsortaggress
public final javax.swing.JCheckBoxMenuItem stringbuffer
public final javax.swing.JCheckBoxMenuItem stringbuilder
public final javax.swing.JCheckBoxMenuItem silent
public final javax.swing.JCheckBoxMenuItem recover
public final javax.swing.JCheckBoxMenuItem eclipse
public final javax.swing.JCheckBoxMenuItem override
public final javax.swing.JCheckBoxMenuItem showinferrable
public final javax.swing.JCheckBoxMenuItem aexagg
public final javax.swing.JCheckBoxMenuItem forcecondpropagate
public final javax.swing.JCheckBoxMenuItem hideutf
public final javax.swing.JCheckBoxMenuItem hidelongstrings
public final javax.swing.JCheckBoxMenuItem commentmonitor
public final javax.swing.JCheckBoxMenuItem allowcorrecting
public final javax.swing.JCheckBoxMenuItem labelledblocks
public final javax.swing.JCheckBoxMenuItem j14classobj
public final javax.swing.JCheckBoxMenuItem hidelangimports
public final javax.swing.JCheckBoxMenuItem recoverytypeclash
public final javax.swing.JCheckBoxMenuItem recoverytypehints
public final javax.swing.JCheckBoxMenuItem forceturningifs
public final javax.swing.JCheckBoxMenuItem forloopaggcapture
public final javax.swing.JCheckBoxMenuItem forceexceptionprune
public final javax.swing.JCheckBoxMenuItem chckbxmntmShowDebugLine
public final javax.swing.JCheckBoxMenuItem chckbxmntmSimplifyMemberReferences
public final javax.swing.JCheckBoxMenuItem mnMergeVariables
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_1
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_2
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_3
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_4
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_5
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_6
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_7
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_8
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_9
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_10
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_11
public final javax.swing.JCheckBoxMenuItem chckbxmntmAppendBrackets
public final javax.swing.JCheckBoxMenuItem chckbxmntmNewCheckItem_12
public final javax.swing.ButtonGroup obfuscatorGroup
public final javax.swing.JRadioButtonMenuItem strongObf
public final javax.swing.JRadioButtonMenuItem lightObf
public final javax.swing.ButtonGroup panelGroup1
public final javax.swing.ButtonGroup panelGroup2
public final javax.swing.ButtonGroup panelGroup3
public final javax.swing.JRadioButtonMenuItem panel1None
public final javax.swing.JRadioButtonMenuItem panel1Hexcode
public final javax.swing.JRadioButtonMenuItem panel1Bytecode
public final javax.swing.JRadioButtonMenuItem panel1Fern
public final javax.swing.JRadioButtonMenuItem panel1CFR
public final javax.swing.JRadioButtonMenuItem panel1Proc
public final javax.swing.JRadioButtonMenuItem panel2None
public final javax.swing.JRadioButtonMenuItem panel2Proc
public final javax.swing.JRadioButtonMenuItem panel2CFR
public final javax.swing.JRadioButtonMenuItem panel2Bytecode
public final javax.swing.JRadioButtonMenuItem panel2Fern
public final javax.swing.JRadioButtonMenuItem panel2Hexcode
public final javax.swing.JRadioButtonMenuItem panel3None
public final javax.swing.JRadioButtonMenuItem panel3Proc
public final javax.swing.JRadioButtonMenuItem panel3CFR
public final javax.swing.JRadioButtonMenuItem panel3Fern
public final javax.swing.JRadioButtonMenuItem panel3Bytecode
public final javax.swing.JRadioButtonMenuItem panel3Hexcode
public WorkPane workPane
public final javax.swing.JCheckBoxMenuItem refreshOnChange
public boolean isMaximized
public final javax.swing.JRadioButtonMenuItem panel1Smali
public final javax.swing.JRadioButtonMenuItem panel2Smali
public final javax.swing.JRadioButtonMenuItem panel3Smali
public final javax.swing.JCheckBoxMenuItem autoCompileSmali
public final javax.swing.JCheckBoxMenuItem autoCompileOnRefresh
public final javax.swing.JRadioButtonMenuItem panel1Krakatau
public final javax.swing.JRadioButtonMenuItem panel1KrakatauEditable
public final javax.swing.JRadioButtonMenuItem panel2Krakatau
public final javax.swing.JRadioButtonMenuItem panel2KrakatauEditable
public final javax.swing.JRadioButtonMenuItem panel3Krakatau
public final javax.swing.JRadioButtonMenuItem panel3KrakatauEditable
public final javax.swing.JCheckBoxMenuItem pane1Editable
public final javax.swing.JCheckBoxMenuItem pane2Editable
public final javax.swing.JCheckBoxMenuItem pane3Editable
public final javax.swing.JCheckBoxMenuItem decodeAPKResources
public void pythonC()
public void rtC()
public void removed(boolean busy)
public void checkKey(java.awt.event.KeyEvent e)
public void setIcon(boolean busy)
public java.lang.String appendZip(java.io.File file)
public java.lang.String appendClass(java.io.File file)
public java.lang.String appendJava(java.io.File file)
public void openClassFile(java.lang.String name, org.objectweb.asm.tree.ClassNode cn)
openClassFile
in interface FileChangeNotifier
public void openFile(java.lang.String name, byte[] content)
openFile
in interface FileChangeNotifier
public static <T> T getComponent(java.lang.Class<T> clazz)