package defpackage; import java.lang.Thread.UncaughtExceptionHandler; import java.util.ArrayList; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public final class id { private static final Logger LOGGER = LoggerFactory.getLogger("EvoVis"); private static final ii CAPTURE_LEVEL = ii.DEBUG; private static final int RING_CAPACITY = 384; private static final int SIGNAL_LIMIT = 256; private static final String PLACEHOLDER = "{}"; private static final String NULL_ARGUMENT = "null"; private static final String CATEGORY_OPEN = "["; private static final String CATEGORY_CLOSE = "] "; private static final String SUPPRESSED_OPEN = " (+"; private static final String SUPPRESSED_CLOSE = " repeated)"; private static final String FINGERPRINT_PREFIX = "EVO-"; private static final int FINGERPRINT_MASK = 16777215; private static final int FINGERPRINT_DIGITS = 6; private static final char FINGERPRINT_PAD = '0'; private static final int HASH_SEED = 17; private static final int HASH_FACTOR = 31; private static final String GUARD_TEMPLATE = "{} failed"; private static final String UNCAUGHT_TEMPLATE = "uncaught exception on thread {}"; private static final ik RING = new ik((-213789026 | 213789410) + (-213789026 & 213789410)); private static final Map SIGNALS = new ConcurrentHashMap<>(); private static final AtomicLong WARNINGS = new AtomicLong(); private static final AtomicLong ERRORS = new AtomicLong(); private static final long START_MILLIS = System.currentTimeMillis(); private static volatile boolean installed; private id() { } public static synchronized void install() { UncaughtExceptionHandler var0 = null; int var1 = -868175799; while (true) { switch (var1) { case -1708520400: return; case -868175799: default: if (installed) { var1 = -1708520400; } else { var1 = 286807880; } break; case 286807880: installed = (boolean)(((1)) != 0); var0 = Thread.getDefaultUncaughtExceptionHandler(); final UncaughtExceptionHandler var0f = var0; Thread.setDefaultUncaughtExceptionHandler( (var1x, var2x) -> { int var3 = -761060784; while (true) { switch (var3) { case -761060784: default: error( Cif.GENERAL, "uncaught exception on thread {}", var1x.getName(), var2x ); if (var0f != null) { var3 = 1087126075; } else { var3 = 884216481; } break; case 884216481: return; case 1087126075: var0f.uncaughtException(var1x, var2x); var3 = 884216481; } } } ); ie.install(); ib.install(); return; } } } public static boolean isEnabled(Cif var0, ii var1) { int var3 = 0; int var2 = 202918471; while (true) { switch (var2) { case -2081840649: var3 = 0; var2 = -441258515; break; case -441258515: return (boolean)((var3) != 0); case 202918471: default: if (!var1.atLeast(CAPTURE_LEVEL)) { var2 = 303739443; } else { var2 = 913852234; } break; case 303739443: if (var0.logsToConsole(var1)) { var2 = 913852234; } else { var2 = -2081840649; } break; case 913852234: var3 = 1; var2 = -441258515; } } } public static void trace(Cif var0, String var1) { log(var0, ii.TRACE, var1, var1, null); } public static void trace(Cif var0, String var1, Object var2) { int var3 = -977753749; while (true) { switch (var3) { case -1091364590: return; case -977753749: default: if (!isEnabled(var0, ii.TRACE)) { var3 = -1091364590; } else { var3 = 314973484; } break; case 314973484: log(var0, ii.TRACE, var1, format(var1, var2), null); return; } } } public static void trace(Cif var0, String var1, Object var2, Object var3) { int var4 = 123978577; while (true) { switch (var4) { case -1959218258: return; case -1248200026: log(var0, ii.TRACE, var1, format(var1, var2, var3), null); return; case 123978577: } if (!isEnabled(var0, ii.TRACE)) { var4 = -1959218258; } else { var4 = -1248200026; } } } public static void debug(Cif var0, String var1) { log(var0, ii.DEBUG, var1, var1, null); } public static void debug(Cif var0, String var1, Object var2) { int var3 = 834098987; while (true) { switch (var3) { case -864692367: return; case 834098987: default: if (!isEnabled(var0, ii.DEBUG)) { var3 = -864692367; } else { var3 = 1830327744; } break; case 1830327744: log(var0, ii.DEBUG, var1, format(var1, var2), null); return; } } } public static void debug(Cif var0, String var1, Object var2, Object var3) { int var4 = -934301882; while (true) { switch (var4) { case -934301882: default: if (!isEnabled(var0, ii.DEBUG)) { var4 = 939687274; } else { var4 = 1774508526; } break; case 939687274: return; case 1774508526: log(var0, ii.DEBUG, var1, format(var1, var2, var3), null); return; } } } public static void info(Cif var0, String var1) { log(var0, ii.INFO, var1, var1, null); } public static void info(Cif var0, String var1, Object var2) { int var3 = -825836429; while (true) { switch (var3) { case -825836429: default: if (!isEnabled(var0, ii.INFO)) { var3 = 1338836822; } else { var3 = -731998377; } break; case -731998377: log(var0, ii.INFO, var1, format(var1, var2), null); return; case 1338836822: return; } } } public static void info(Cif var0, String var1, Object var2, Object var3) { int var4 = 1607126744; while (true) { switch (var4) { case -1532544632: log(var0, ii.INFO, var1, format(var1, var2, var3), null); return; case -833258852: return; case 1607126744: } if (!isEnabled(var0, ii.INFO)) { var4 = -833258852; } else { var4 = -1532544632; } } } public static void warn(Cif var0, String var1) { log(var0, ii.WARN, var1, var1, null); } public static void warn(Cif var0, String var1, Object var2) { log(var0, ii.WARN, var1, format(var1, var2), null); } public static void warn(Cif var0, String var1, Object var2, Object var3) { log(var0, ii.WARN, var1, format(var1, var2, var3), null); } public static void warn(Cif var0, String var1, Throwable var2) { log(var0, ii.WARN, var1, var1, var2); } public static void warn(Cif var0, String var1, Object var2, Throwable var3) { log(var0, ii.WARN, var1, format(var1, var2), var3); } public static void error(Cif var0, String var1) { log(var0, ii.ERROR, var1, var1, null); } public static void error(Cif var0, String var1, Object var2) { log(var0, ii.ERROR, var1, format(var1, var2), null); } public static void error(Cif var0, String var1, Object var2, Object var3) { log(var0, ii.ERROR, var1, format(var1, var2, var3), null); } public static void error(Cif var0, String var1, Throwable var2) { log(var0, ii.ERROR, var1, var1, var2); } public static void error(Cif var0, String var1, Object var2, Throwable var3) { log(var0, ii.ERROR, var1, format(var1, var2), var3); } public static boolean run(Cif var0, String var1, Runnable var2) { if (var2 == null) { return (boolean)(((0)) != 0); } try { var2.run(); return (boolean)(((1)) != 0); } catch (Throwable var4) { if (var4 instanceof VirtualMachineError) { throw var4; } error(var0, "{} failed", var1, var4); return (boolean)(((0)) != 0); } } public static List recent(int var0) { return RING.snapshot(var0); } public static List issues(ii var0) { ArrayList var1 = null; Iterator var2 = null; il var3 = null; ih var4 = null; int var5 = 1778925557; while (true) { switch (var5) { case -1557679520: var5 = -1386378372; break; case -1517314489: var3 = (il)var2.next(); var4 = var3.snapshot(); if (var4.level().atLeast(var0)) { var5 = -858526465; } else { var5 = -1557679520; } break; case -1386378372: if (var2.hasNext()) { var5 = -1517314489; } else { var5 = 1855952644; } break; case -858526465: var1.add(var4); var5 = -1557679520; break; case 1778925557: default: var1 = new ArrayList(); var2 = SIGNALS.values().iterator(); var5 = -1386378372; break; case 1855952644: var1.sort(Comparator.comparingInt(var0x -> var0x.level().getSeverity()).thenComparingLong(ih::lastMillis).reversed()); return var1; } } } public static long startMillis() { return START_MILLIS; } public static long captured() { return RING.total(); } public static int retained() { return RING.size(); } public static long warnings() { return WARNINGS.get(); } public static long errors() { return ERRORS.get(); } public static int signals() { return SIGNALS.size(); } private static void log(Cif var0, ii var1, String var2, String var3, Throwable var4) { long var5 = (249786992687256030L ^ -249786992687256030L) + ((249786992687256030L & -249786992687256030L) << 1); String var7 = null; int var8 = 0; il var9 = null; int var10 = 0; String var11 = null; String var12 = null; int var14 = 0; String var15 = null; int var13 = 1408646825; while (true) { switch (var13) { case -2134122862: if (SIGNALS.size() < (1073700324 ^ -1073700068) + ((1073700324 & -1073700068) << 1)) { var13 = -1911981510; } else { var13 = 2048515706; } break; case -1972440757: var14 = 0; var13 = 920923331; break; case -1911981510: final long var5f = var5; var9 = SIGNALS.computeIfAbsent(var8, var3x -> new il(fingerprint(var3x), var0, var5f)); var13 = 2048515706; break; case -1887975884: var15 = var3 + " (+" + var10 + " repeated)"; var13 = 1390456069; break; case -794197631: WARNINGS.incrementAndGet(); var13 = 849454474; break; case -312261438: return; case -109213835: if (var1 == ii.ERROR) { var13 = 697734718; } else { var13 = 849454474; } break; case -105167471: var5 = System.currentTimeMillis(); if (var1 == ii.WARN) { var13 = -794197631; } else { var13 = -109213835; } break; case 675679059: var14 = var9.admit(var1, var3, var7, var5); var13 = 920923331; break; case 697734718: ERRORS.incrementAndGet(); var13 = 849454474; break; case 701936479: console(var0, var1, var12, var11, var4); var13 = 1686736449; break; case 849454474: var7 = im.summarize(var4); var8 = hash(var0, var2, var4); var9 = SIGNALS.get(var8); if (var9 == null) { var13 = -2134122862; } else { var13 = 2048515706; } break; case 920923331: var10 = var14; if (var10 == (-2091867878 | 2091867877) + (-2091867878 & 2091867877)) { var13 = 1843400523; } else { var13 = 2055177550; } break; case 989255647: if (var0.logsToConsole(var1)) { var13 = 701936479; } else { var13 = 1686736449; } break; case 1390456069: var11 = var15; var12 = fingerprint(var8); if (var1.atLeast(CAPTURE_LEVEL)) { var13 = 1920751654; } else { var13 = 989255647; } break; case 1408646825: default: if (!isEnabled(var0, var1)) { var13 = -312261438; } else { var13 = -105167471; } break; case 1436091004: var15 = var3; var13 = 1390456069; break; case 1686736449: return; case 1843400523: return; case 1920751654: RING.add(new ij(var5, var0, var1, Thread.currentThread().getName(), var11, var12)); var13 = 989255647; break; case 2048515706: if (var9 == null) { var13 = -1972440757; } else { var13 = 675679059; } break; case 2055177550: if (var10 == 0) { var13 = 1436091004; } else { var13 = -1887975884; } } } } // $VF: Unable to simplify switch on enum // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) private static void console(Cif var0, ii var1, String var2, String var3, Throwable var4) { String var5 = var2 + "[" + var0.key() + "] " + var3; switch (ic.$SwitchMap$evo$systems$base$log$EvoLogLevel[var1.ordinal()]) { case 1: if (var4 == null) { LOGGER.trace(var5); } else { LOGGER.trace(var5, var4); } break; case 2: if (var4 == null) { LOGGER.debug(var5); } else { LOGGER.debug(var5, var4); } break; case 3: if (var4 == null) { LOGGER.info(var5); } else { LOGGER.info(var5, var4); } break; case 4: if (var4 == null) { LOGGER.warn(var5); } else { LOGGER.warn(var5, var4); } break; case 5: if (var4 == null) { LOGGER.error(var5); } else { LOGGER.error(var5, var4); } } } private static int hash(Cif var0, String var1, Throwable var2) { int var3 = 17; var3 = var3 * ((-116436056 ^ 116436087) + ((-116436056 & 116436087) << 1)) + var0.name().hashCode(); var3 = var3 * ((795366241 | -795366210) + (795366241 & -795366210)) + (var1 == null ? 0: var1.hashCode()); if (var2 != null) { var3 = var3 * ((428398346 | -428398315) + (428398346 & -428398315)) + var2.getClass().getName().hashCode(); var3 = var3 * ((-2055062042 ^ 2055062073) + ((-2055062042 & 2055062073) << 1)) + im.origin(var2).hashCode(); } return var3 & 16777215; } private static String fingerprint(int var0) { String var1 = null; StringBuilder var2 = null; int var3 = 0; int var4 = -867544310; while (true) { switch (var4) { case -1989016926: if (var3 < (1823583538 ^ -1823583532) + ((1823583538 & -1823583532) << 1)) { var4 = -539503185; } else { var4 = 493286122; } break; case -867544310: default: var1 = Integer.toHexString(var0).toUpperCase(Locale.ROOT); var2 = new StringBuilder("EVO-"); var3 = var1.length(); var4 = -1989016926; break; case -539503185: var2.append((char)((-1461008901 ^ 1461008949) + ((-1461008901 & 1461008949) << 1))); var3++; var4 = -1989016926; break; case 493286122: return var2.append(var1).toString(); } } } private static String format(String var0, Object var1) { int var2 = 0; int var3 = -1060751755; while (true) { switch (var3) { case -1199094986: return "null"; case -1060751755: default: if (var0 == null) { var3 = -1199094986; } else { var3 = 345601977; } break; case 248813645: return var0.substring(0, var2) + text(var1) + var0.substring(var2 + "{}".length()); case 345601977: var2 = var0.indexOf("{}"); if (var2 < 0) { var3 = 2112793843; } else { var3 = 248813645; } break; case 2112793843: return var0; } } } private static String format(String var0, Object var1, Object var2) { int var3 = 0; int var4 = 0; int var5 = 961584233; while (true) { switch (var5) { case -2014171062: var3 = var0.indexOf("{}"); if (var3 < 0) { var5 = -972571804; } else { var5 = 71813966; } break; case -972571804: return var0; case 8431872: return "null"; case 71813966: var4 = var3 + "{}".length(); return var0.substring(0, var3) + text(var1) + format(var0.substring(var4), var2); case 961584233: default: if (var0 == null) { var5 = 8431872; } else { var5 = -2014171062; } } } } private static String text(Object var0) { Throwable var1 = null; int var2 = 136351617; while (true) { switch (var2) { case -1136243395: if (var0 instanceof Throwable) { var2 = 1248682857; } else { var2 = -967013030; } break; case -967013030: return String.valueOf(var0); case 136351617: default: if (var0 == null) { var2 = 1221618501; } else { var2 = -1136243395; } break; case 1221618501: return "null"; case 1248682857: var1 = (Throwable)var0; return var1.getClass().getSimpleName(); } } } }