changeset 1055:f2f33bede67b

* patches/icedtea-hotspot7-tests.patch: New patch. * Makefile.am (ICEDTEA_PATCHES): Add icedtea-hotspot7-tests.patch. * HACKING: Document icedtea-hotspot7-tests.patch.
author Mark Wielaard <mark@klomp.org>
date Fri, 26 Sep 2008 11:37:46 +0200
parents b5b66d8e6014
children a5883d41d7ec
files ChangeLog HACKING Makefile.am patches/icedtea-hotspot7-tests.patch
diffstat 4 files changed, 7416 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Sep 25 23:35:32 2008 +0200
+++ b/ChangeLog	Fri Sep 26 11:37:46 2008 +0200
@@ -1,3 +1,9 @@
+2008-09-25  Mark Wielaard  <mark@klomp.org>
+
+	* patches/icedtea-hotspot7-tests.patch: New patch.
+	* Makefile.am (ICEDTEA_PATCHES): Add icedtea-hotspot7-tests.patch.
+	* HACKING: Document icedtea-hotspot7-tests.patch.
+
 2008-09-25  Mark Wielaard  <mark@klomp.org>
 
 	* patches/icedtea-lucene-crash.patch: New patch.
--- a/HACKING	Thu Sep 25 23:35:32 2008 +0200
+++ b/HACKING	Fri Sep 26 11:37:46 2008 +0200
@@ -59,6 +59,7 @@
 * icedtea-alpha-fixes.patch: Fix build issues on alpha-linux.
 * icedtea-arch.patch: Add support for additional architectures.
 * icedtea-alt-jar.patch: Add support for using an alternate jar tool in JDK building. 
+* icedtea-hotspot7-tests.patch: Adds hotspot compiler tests from jdk7 tree.
 
 The following patches are only applied to OpenJDK6 in IcedTea6:
 
--- a/Makefile.am	Thu Sep 25 23:35:32 2008 +0200
+++ b/Makefile.am	Fri Sep 26 11:37:46 2008 +0200
@@ -448,6 +448,7 @@
 
 ICEDTEA_PATCHES = \
 	$(ZERO_PATCHES_COND) \
+	patches/icedtea-hotspot7-tests.patch \
 	patches/icedtea-copy-plugs.patch \
 	patches/icedtea-version.patch \
 	patches/icedtea-text-relocations.patch \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/icedtea-hotspot7-tests.patch	Fri Sep 26 11:37:46 2008 +0200
@@ -0,0 +1,7408 @@
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6646019/Test.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6646019/Test.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,52 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ *
++ */
++
++/*
++ * @test
++ * @bug 6646019
++ * @summary array subscript expressions become top() with -d64
++ * @run main/othervm -Xcomp -XX:CompileOnly=Test.test Test
++*/
++
++
++public class Test  {
++  final static int i = 2076285318;
++  long l = 2;
++  short s;
++
++  public static void main(String[] args) {
++    Test t = new Test();
++    try { t.test(); }
++    catch (Throwable e) {
++      if (t.l != 5) {
++        System.out.println("Fails: " + t.l + " != 5");
++      }
++    }
++  }
++
++  private void test() {
++    l = 5;
++    l = (new short[(byte)-2])[(byte)(l = i)];
++  }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6646020/Tester.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6646020/Tester.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,886 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ */
++
++/*
++ * @test
++ * @bug 6646020
++ * @summary assert(in_bb(n),"must be in block") in -Xcomp mode
++ */
++
++/* Complexity upper bound: 3361 ops */
++
++class Tester_Class_0 {
++    static byte var_1;
++
++
++    public Tester_Class_0()
++    {
++        "".length();
++        {
++            var_1 = (var_1 = (new byte[(byte)'D'])[(byte)2.40457E38F]);
++            var_1 = (var_1 = (byte)1.738443503665377E307);
++            var_1 = (var_1 = (byte)1237144669662298112L);
++        }
++        var_1 = "baldh".equalsIgnoreCase("") ? (var_1 = (byte)7.2932087E37F) : (byte)3909726578709910528L;
++        var_1 = (var_1 = (var_1 = (var_1 = (byte)7.223761846153971E307)));
++        var_1 = (var_1 = (var_1 = (var_1 = (var_1 = (byte)((short)7860452029249754112L + (byte)1.7374232546809952E308)))));
++        var_1 = (!true ? (var_1 = (byte)4359229782598970368L) : (short)(byte)1.7509836746850026E308) >= 'P' ? (var_1 = (byte)3.275114793095594E307) : (byte)(- ((byte)1.5595572E38F) / 8.2971296E37F);
++        byte var_9 = (true ? true : (false ? true : false)) ? (var_1 = (var_1 = (byte)9.928434E37F)) : (var_1 = (byte)9.785060633966518E307);
++        final byte var_10 = 53;
++        var_9 <<= (true | true) & (((var_10 == "".substring(2001075014).compareToIgnoreCase("rhbytggv") ? !true : ! !true) ? !false : false) ? !true & true : !false) ? var_10 : var_10;
++        var_9 <<= - (var_9 -= - ~6397182310329038848L >> (char)955837891 << (short)- - -8.4452034E37F >> + ~5485157895941338112L);
++        --var_9;
++        var_9 >>= 'V';
++        var_9 -= (new char[var_10])[var_9];
++        double var_11;
++        var_11 = (var_11 = (new int[var_9 = (var_9 %= 684423748)])[var_9]);
++        var_9 /= 'q';
++        var_9 *= ~var_9 | (short)1.7667766368850557E308 - "w".trim().charAt(- (var_9 /= + (var_11 = 'q')));
++        if (var_10 <= 605036859609030656L | !false & false)
++        {
++            var_9 >>>= false ^ false ? (new short[var_10])[var_10] : (short)1013619326108001280L;
++        }
++        else
++        {
++            var_11 = var_9;
++        }
++        var_9 -= 'X';
++        var_9 *= 'E';
++        {
++            var_9 ^= (new short[var_9])[var_9 >>>= 'c'];
++        }
++        var_11 = 4315867074042433536L;
++        double var_12 = 1.2183900219527627E308;
++        var_9 <<= (false ? !false : false) ? '\\' : 'D';
++    }
++
++
++
++
++    private final long func_0()
++    {
++        float var_2 = 0F;
++        var_1 = (var_1 = (var_1 = (byte)((short)1.4106931056021857E308 % var_2)));
++        for (new String(); true & (! !true ^ !false | false) && var_2 < 1; var_1 = (var_1 = (var_1 = (var_1 = (byte)1183673628639185920L))))
++        {
++            var_1 = true | false ? (var_1 = (byte)1.6263855E37F) : (byte)'O';
++            var_2++;
++            "fui".toUpperCase();
++            final int var_3 = (var_1 = (var_1 = (byte)'i')) + (byte)2008561384 / (byte)1.4413369179905006E308;
++        }
++        var_1 = (var_1 = false ^ false ? (byte)2.3850814E38F : (byte)4.42887E37F);
++        final float var_4 = 3.052265E38F;
++        var_1 = (var_1 = (var_1 = (var_1 = (var_1 = (byte)'o'))));
++        long var_5;
++        var_1 = (var_1 = (byte)((var_1 = (byte)1913212786) * (var_1 = (byte)var_2)));
++        var_5 = (short)3.2024069E38F * (short)(var_5 = 'Q');
++        var_5 = (false ? true : false) ? (short)1098137179 : (byte)~695765814858203136L;
++        var_1 = (var_1 = true & false ^ true ? (byte)1662737306 : (byte)'r');
++        {
++            (true ? "a" : "lymivj".toString()).codePointCount((short)3.032349E38F + (var_1 = (var_1 = (var_1 = (var_1 = (byte)1.3159799E37F)))), (byte)2.0898819853138264E307 & (new short[(byte)(short)var_2])[var_1 = (byte)(short)4.859332921376913E307]);
++        }
++        double var_6;
++        var_6 = 1359078277;
++        final float var_7 = 3.5952457E37F;
++        var_5 = ('u' | 9005660398910009344L) << 'j';
++        int var_8;
++        var_5 = (!false || true & !false) && false ? (byte)1836342254 : (byte)1.4836203E38F;
++        var_1 = (var_1 = (var_1 = (var_1 = (byte)1.5824984701060493E308)));
++        var_1 = (var_1 = (var_1 = (byte)~ (var_1 = (var_1 = (var_1 = (byte)var_7)))));
++        return +9.067416E37F <= (true | true ^ false ? (var_1 = (byte)(short)1.5243446E38F) : (var_1 = (byte)1.6893049E37F)) ? (byte)~4408841475280588800L - (var_5 = (var_1 = (byte)2.1542209E38F)) : (var_8 = (short)var_4);
++    }
++
++    protected final static double func_1(final char arg_0, final long arg_1)
++    {
++        var_1 = (short)8779631802405542912L << 'x' <= arg_0 ? (byte)+9.96859509852443E307 : (var_1 = (var_1 = (byte)(short)5.218454879223281E307));
++        return 5.57437404144192E307;
++    }
++
++    double func_2(byte arg_0, final boolean arg_1, Object arg_2)
++    {
++        arg_2 = arg_1 != arg_1 ? "wq" : "w";
++        arg_2 = arg_2;
++        if (arg_1)
++        {
++            arg_2 = false & arg_1 ? "hasmp" : (arg_2 = arg_2);
++        }
++        else
++        {
++            arg_2 = "lcquv";
++        }
++        arg_0 -= arg_1 ^ false ? (arg_0 |= (short)arg_0) : (~3462197988186869760L | 7274210797196514304L) % - - + +130998764279904256L;
++        arg_0 &= (true ? - - ~7861994999369861120L << 'l' : 'c') * 1246069704;
++        return (arg_1 ? 9.311174E37F : 1.7085558737202237E308) * 1168887722;
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_0.var_1 = "; result += Tester.Printer.print(var_1);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++final class Tester_Class_1 extends Tester_Class_0 {
++    static Object var_13;
++    final static boolean var_14 = false | (false ? false : true);
++    Object var_15;
++    static byte var_16;
++    final long var_17 = (long)(-9.40561658911133E307 - (short)2.2016736E38F) ^ (char)1099667310;
++    static boolean var_18;
++    static float var_19;
++    final static byte var_20 = 123;
++    static byte var_21 = var_1 = (var_1 = var_20);
++    final static float var_22 = 1.5415572E38F;
++
++
++    public Tester_Class_1()
++    {
++        char[][] var_39;
++        boolean var_40 = false | !var_14;
++        if (var_14)
++        {
++            final String[] var_41 = (new String[var_21][var_20])[var_21 *= var_21];
++            var_15 = (new Tester_Class_0[var_20])[var_20];
++            --var_21;
++            int var_42;
++        }
++        else
++        {
++            var_19 = (short)325110146;
++        }
++        var_40 &= true;
++        var_13 = (((new Tester_Class_1[var_21 |= (new char[var_20])[var_21]])[var_21]).var_15 = (new String[var_21][var_20][var_20])[var_21 >>= (byte)(int)var_22]);
++        var_15 = "m";
++    }
++
++
++
++
++
++    protected final static Tester_Class_0 func_0(final char arg_0, boolean arg_1)
++    {
++        final short var_23 = false ? (short)2.2956268E38F : var_20;
++        {
++            ((new Tester_Class_1[var_21])[var_20]).var_15 = ((new Tester_Class_0[var_20][var_21])[var_21])[var_20];
++        }
++        var_19 = var_23;
++        {
++            var_21++;
++            --var_21;
++            var_13 = (false ? arg_1 : arg_1) ? "" : "aianteahl";
++            arg_1 ^= ! (var_14 ? var_14 : !var_14);
++        }
++        (arg_1 ? "rq" : "certd").trim();
++        arg_1 ^= 's' < var_22;
++        var_19 = 'T';
++        var_19 = var_14 ? --var_21 : var_20;
++        var_19 = (var_21 >>>= ~ -1559436447128426496L >> 88912720393932800L) | (new char[var_20][var_21])[var_21][var_20];
++        short var_24 = 7601;
++        if (arg_1)
++        {
++            var_13 = (new Tester_Class_0[var_20])[var_21];
++        }
++        else
++        {
++            var_19 = var_23;
++        }
++        var_19 = var_24;
++        var_19 = 174274929356416000L;
++        return arg_1 ? (Tester_Class_0)(new Object[var_20])[var_21 >>>= - ((byte)6471979169965446144L)] : (new Tester_Class_0[var_21])[var_20];
++    }
++
++    private static int func_1(final Object arg_0, final boolean arg_1)
++    {
++        var_19 = 'N';
++        var_13 = "ftspm".toUpperCase();
++        var_18 = arg_1 ? !arg_1 : var_14;
++        var_19 = var_21 % 'j';
++        {
++            var_13 = new short[var_21 >>= 8019540572802872320L];
++        }
++        final Tester_Class_0 var_25 = arg_1 ? ((short)1.3614569631193786E308 >= (short)var_20 ? func_0('O', true) : (Tester_Class_0)arg_0) : func_0('e', false);
++        "cltpxrg".offsetByCodePoints((new short[var_20])[(byte)'F'] & var_20, 942627356);
++        final Object var_26 = ((new Tester_Class_1[var_21])[var_20]).var_15 = arg_0;
++        {
++            var_21 |= 'H';
++        }
++        var_19 = 4705089801895780352L;
++        var_19 = (var_18 = arg_1 & false) ? var_20 : (! (~var_21 > var_22) ? (new short[var_20])[var_21] : (short)3904907750551380992L);
++        var_18 = false;
++        {
++            var_18 = "aoy".startsWith("ia", 18060804);
++            if (true)
++            {
++                final short var_27 = 4832;
++            }
++            else
++            {
++                var_18 = (var_18 = arg_1) ? !false : !var_14;
++            }
++            var_18 = (var_18 = var_14);
++            var_19 = 'L';
++        }
++        func_0((false ? ! ((var_21 -= 4.670301365216022E307) > 1.1839209E37F) : (var_18 = false)) ? 's' : 'R', 'Z' > - ((long)var_21) << 2585724390819764224L & var_25.func_2(var_21, false, var_13 = var_25) != 4918861136400833536L);
++        double var_28 = 0;
++        var_21 %= -var_28;
++        for (byte var_29 = 91; arg_1 && (var_28 < 1 && false); var_19 = var_20)
++        {
++            var_19 = (var_18 = arg_1) & (var_18 = false) ? 'm' : '[';
++            var_28++;
++            var_18 = var_14;
++            var_21 += (short)1363703973;
++        }
++        var_19 = (var_19 = var_22);
++        var_18 = (var_18 = false | false ? 1743087391 <= (var_21 >>= 8790741242417599488L) : !arg_1);
++        var_18 = true | true;
++        --var_21;
++        var_18 = !var_14 & false;
++        "mt".indexOf(var_14 ? new String("fpu") : "awivb", (var_14 ? !true : (var_18 = var_14)) ? + ++var_21 : ~var_20);
++        return (short)(new float[var_21--])[var_21] & ((var_18 = false) ? (var_21 *= 'N') : var_20 + (short)1680927063794178048L) & 1839004800;
++    }
++
++    protected static int func_2(Tester_Class_0[][] arg_0)
++    {
++        ((new Tester_Class_1[var_20][var_21])[var_20][var_20]).var_15 = ((new int[var_21][var_21][(byte)var_22])[var_21 <<= var_20])[var_20];
++        ((new Tester_Class_1[var_20])[var_20]).var_15 = "d";
++        int var_30 = 0;
++        "joxjgpywp".lastIndexOf(1834367264 >> var_21, (byte)7.572305E37F >>> (false ? (short)2.3909862E38F : + - +3939434849912855552L));
++        while (var_14 | false ^ var_14 && (var_30 < 1 && true))
++        {
++            var_1 = var_20;
++            var_30++;
++            var_13 = new float[var_21][--var_21];
++            boolean var_31;
++        }
++        var_19 = ((new Tester_Class_1[var_21])[var_20]).var_17 <= (~2158227803735181312L & 6001748808824762368L) ? (short)var_20 : var_20;
++        var_18 = (var_18 = true);
++        return (byte)(new short[var_20])[var_20] >>> ((new char[var_21][var_21])[var_21 |= 6074708801143703552L])[var_20];
++    }
++
++    private final String func_3(boolean arg_0, short arg_1, short arg_2)
++    {
++        var_13 = (Tester_Class_0)((arg_0 ^= arg_0) ? (var_13 = (var_15 = (var_15 = "grfphyrs"))) : (var_13 = new Object[var_21 *= ']']));
++        if (true & ! (arg_0 ^= !arg_0 | true))
++        {
++            boolean var_32 = true;
++            var_19 = --arg_1;
++            arg_2 <<= var_21;
++        }
++        else
++        {
++            arg_0 |= false;
++        }
++        var_21 >>>= arg_1;
++        final float var_33 = 2.5500976E38F;
++        return "";
++    }
++
++    private static String func_4(final double arg_0, final Object arg_1, final short[] arg_2, final char arg_3)
++    {
++        float var_34;
++        var_21++;
++        ((new Tester_Class_1[var_20])[var_20]).var_15 = false ? arg_1 : arg_1;
++        var_13 = arg_1;
++        var_19 = var_22;
++        var_13 = new long[var_21 /= 1038797776 + var_21][--var_21];
++        ++var_21;
++        var_18 = false && false;
++        var_21--;
++        "".lastIndexOf("kjro");
++        final int var_35 = (var_21 <<= var_21--) * var_21--;
++        if ("kohilkx".startsWith("gy", var_35))
++        {
++            var_34 = 2.0849673E37F;
++        }
++        else
++        {
++            double var_36 = arg_0;
++        }
++        var_34 = (var_21 /= var_20);
++        {
++            func_2(new Tester_Class_0[var_20][var_21]);
++            var_34 = var_20 * (- ~5805881602002385920L / arg_3) << (short)~8041668398152312832L;
++            var_13 = (var_13 = "qfwbfdf");
++        }
++        ((new Tester_Class_1[var_20])[var_21 += var_20]).var_15 = false ? func_0(arg_3, var_14) : func_0('J', var_18 = var_14);
++        var_18 = (var_18 = var_14) & var_14;
++        if ((new boolean[var_21])[var_21 >>= 121380821])
++        {
++            var_34 = 1382979413;
++        }
++        else
++        {
++            var_34 = (var_20 & var_20) + (true ? 'I' : arg_3);
++        }
++        byte var_37;
++        ((new Tester_Class_1[var_20][var_21])[var_14 ^ var_14 | !var_14 ? var_20 : var_20][var_21 ^= (short)1692053070 & + ~7232298887878750208L - 1512699919]).var_15 = arg_2;
++        byte var_38 = 1;
++        var_38 -= arg_0;
++        var_34 = arg_3;
++        return var_14 ? "" : "xgkr".toUpperCase();
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_1.var_1 = "; result += Tester.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_1.var_16 = "; result += Tester.Printer.print(var_16);
++        result += "\n";
++        result += "Tester_Class_1.var_20 = "; result += Tester.Printer.print(var_20);
++        result += "\n";
++        result += "Tester_Class_1.var_21 = "; result += Tester.Printer.print(var_21);
++        result += "\n";
++        result += "Tester_Class_1.var_14 = "; result += Tester.Printer.print(var_14);
++        result += "\n";
++        result += "Tester_Class_1.var_18 = "; result += Tester.Printer.print(var_18);
++        result += "\n";
++        result += "Tester_Class_1.var_17 = "; result += Tester.Printer.print(var_17);
++        result += "\n";
++        result += "Tester_Class_1.var_19 = "; result += Tester.Printer.print(var_19);
++        result += "\n";
++        result += "Tester_Class_1.var_22 = "; result += Tester.Printer.print(var_22);
++        result += "\n";
++        result += "Tester_Class_1.var_13 = "; result += Tester.Printer.print(var_13);
++        result += "\n";
++        result += "Tester_Class_1.var_15 = "; result += Tester.Printer.print(var_15);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++class Tester_Class_2 extends Tester_Class_0 {
++    final int var_43 = 1600723343;
++    static long var_44 = ~1297640037857117184L;
++    static String var_45 = "ejaglds";
++    double var_46;
++    static float var_47 = 7.9423827E37F;
++    static Tester_Class_1[][] var_48;
++
++
++    public Tester_Class_2()
++    {
++        var_45 = (var_45 = "nkulkweqt");
++        var_47 %= (new char[Tester_Class_1.var_21 >>= (short)Tester_Class_1.var_20])[Tester_Class_1.var_20];
++        {
++            Tester_Class_1.var_18 = Tester_Class_1.var_14;
++        }
++        var_47 %= 1.559461406041646E308;
++        var_44 -= Tester_Class_1.var_21++ & ((new Tester_Class_1[Tester_Class_1.var_20])[Tester_Class_1.var_20]).var_17;
++        var_44 *= false ? (short)Tester_Class_1.var_20 : (short)var_47;
++        Tester_Class_1.var_13 = (new Tester_Class_1().var_15 = new char[Tester_Class_1.var_20]);
++        var_46 = 'i';
++        double var_49 = var_46 = false ? (var_47 *= (var_46 = var_43)) : Tester_Class_1.var_20;
++        var_49 += 'k';
++    }
++
++
++
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_2.var_43 = "; result += Tester.Printer.print(var_43);
++        result += "\n";
++        result += "Tester_Class_2.var_48 = "; result += Tester.Printer.print(var_48);
++        result += "\n";
++        result += "Tester_Class_2.var_44 = "; result += Tester.Printer.print(var_44);
++        result += "\n";
++        result += "Tester_Class_2.var_46 = "; result += Tester.Printer.print(var_46);
++        result += "\n";
++        result += "Tester_Class_2.var_47 = "; result += Tester.Printer.print(var_47);
++        result += "\n";
++        result += "Tester_Class_2.var_1 = "; result += Tester.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_2.var_45 = "; result += Tester.Printer.print(var_45);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++class Tester_Class_3 extends Tester_Class_0 {
++    byte var_50;
++    int var_51;
++    static double var_52;
++    static boolean var_53 = true;
++    long var_54;
++    static short var_55;
++    short var_56;
++
++
++    public Tester_Class_3()
++    {
++        var_53 |= false;
++        (Tester_Class_2.var_45 = "gpbcgq").replaceAll("m".concat(Tester_Class_2.var_45 = "q"), Tester_Class_2.var_45).indexOf(Tester_Class_2.var_45 = "d");
++        Tester_Class_2.var_45 = Tester_Class_2.var_45;
++        double var_68 = 0;
++        Tester_Class_1.var_19 = (var_55 = Tester_Class_1.var_20);
++        do
++        {
++            var_53 ^= 'T' > Tester_Class_1.var_21-- & (var_53 |= Tester_Class_1.var_14);
++            Tester_Class_2.var_44 >>= (char)3.928497616986412E307;
++            var_68++;
++            new Tester_Class_2().func_2(Tester_Class_1.var_20, !var_53 & Tester_Class_1.var_14, Tester_Class_1.var_13 = (Tester_Class_2.var_45 = Tester_Class_2.var_45));
++        } while ((((var_56 = (short)1161292485) != 'M' ? var_53 : Tester_Class_1.var_14) ? Tester_Class_1.var_14 ^ true : var_53) && var_68 < 1);
++        Tester_Class_2.var_45 = Tester_Class_2.var_45;
++        ((Tester_Class_1)(Tester_Class_1.var_13 = new Tester_Class_2())).var_15 = Tester_Class_2.var_45;
++        var_55 = func_1() | ((Tester_Class_1.var_18 = var_53) | (var_53 |= Tester_Class_1.var_14) | Tester_Class_1.var_14 | !Tester_Class_1.var_14) || false ? (short)Tester_Class_2.var_44 : (var_56 = (var_56 = (short)'['));
++        var_52 = (var_51 = (var_55 = Tester_Class_1.var_20));
++        double var_69 = 0;
++        Tester_Class_2.var_44 |= (Tester_Class_1.var_14 ? (Tester_Class_2)(Tester_Class_1.var_13 = (Tester_Class_2)(Tester_Class_1.var_13 = Tester_Class_2.var_45)) : (Tester_Class_2)(Tester_Class_0)(Tester_Class_1.var_13 = Tester_Class_2.var_45)).var_43;
++        do
++        {
++            var_51 = 495861255;
++            var_69++;
++        } while (var_69 < 3);
++        Tester_Class_2.var_47 -= Tester_Class_1.var_20;
++        Tester_Class_2.var_47 %= '[';
++    }
++
++
++
++
++    static Object func_0(final Tester_Class_0 arg_0, String arg_1, final float arg_2, final long arg_3)
++    {
++        (!var_53 | (var_53 &= var_53) ^ false ? new Tester_Class_1() : (Tester_Class_1)(new Tester_Class_0[Tester_Class_1.var_21])[Tester_Class_1.var_21]).var_15 = Tester_Class_1.var_14 ? new Tester_Class_1() : new Tester_Class_1();
++        Tester_Class_2.var_47 /= !var_53 || var_53 ? (short)(((Tester_Class_2)arg_0).var_46 = (new char[Tester_Class_1.var_21][Tester_Class_1.var_21])[Tester_Class_1.var_20][Tester_Class_1.var_20]) : Tester_Class_1.var_21;
++        return (new Object[Tester_Class_1.var_21])[Tester_Class_1.var_21];
++    }
++
++    boolean func_1()
++    {
++        {
++            Tester_Class_1.var_21 >>= (var_56 = (Tester_Class_1.var_21 |= (Tester_Class_1.var_21 -= Tester_Class_1.var_20)));
++            Tester_Class_2.var_45 = "w";
++            var_51 = Tester_Class_1.var_21;
++            Object var_57;
++            ((Tester_Class_2)(Tester_Class_0)((new Object[Tester_Class_1.var_21][Tester_Class_1.var_21])[Tester_Class_1.var_20])[Tester_Class_1.var_20]).var_46 = (var_52 = 1.3957085765622284E308);
++        }
++        Tester_Class_1.var_21 &= (var_55 = (byte)(Tester_Class_1.var_14 ? -Tester_Class_1.var_20 : 4290961666344782848L));
++        Tester_Class_2.var_45 = Tester_Class_2.var_45;
++        var_51 = (var_53 ^= ((var_53 &= Tester_Class_1.var_14) ? 'J' : 'M') > (var_56 = Tester_Class_1.var_21)) && (var_53 = Tester_Class_1.var_14) ? (Tester_Class_1.var_21 &= ~Tester_Class_1.var_20) : Tester_Class_1.var_20;
++        {
++            final Tester_Class_1 var_58 = (Tester_Class_1)(Tester_Class_0)(Tester_Class_1.var_13 = (new Object[Tester_Class_1.var_21])[Tester_Class_1.var_20]);
++            Object var_59;
++            Tester_Class_1.var_21 |= 'X';
++            var_53 ^= Tester_Class_1.var_14;
++        }
++        int var_60 = 0;
++        var_53 |= var_53;
++        for (char var_61 = 'i'; (Tester_Class_1.var_14 ? false : Tester_Class_1.var_14) | (true | Tester_Class_1.var_14) && var_60 < 1; var_53 &= !Tester_Class_1.var_14)
++        {
++            var_51 = var_61;
++            var_60++;
++            var_61 &= (new short[Tester_Class_1.var_20][Tester_Class_1.var_20])[Tester_Class_1.var_20][Tester_Class_1.var_21];
++            Tester_Class_2.var_45 = "vsuy";
++        }
++        Tester_Class_2 var_62 = ((var_53 &= Tester_Class_1.var_14 | Tester_Class_1.var_14 || Tester_Class_1.var_14) ? Tester_Class_1.var_14 : "hgwne".startsWith("etyhd", var_60)) ? (var_53 ? (Tester_Class_2)(Tester_Class_1.var_13 = "uyiaxtqc") : (Tester_Class_2)(Tester_Class_1.var_13 = Tester_Class_2.var_45)) : new Tester_Class_2();
++        var_62 = var_62;
++        float var_63;
++        Object var_64;
++        Tester_Class_2.var_44 <<= 'v';
++        String var_65;
++        {
++            var_51 = Tester_Class_1.var_21;
++        }
++        var_55 = true ? (var_56 = Tester_Class_1.var_20) : (var_55 = Tester_Class_1.var_20);
++        var_56 = Tester_Class_1.var_21;
++        Tester_Class_1.var_21 |= var_60;
++        Object var_66;
++        Tester_Class_2 var_67;
++        return true & Tester_Class_1.var_14 ^ (false ? var_53 : var_53);
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_3.var_51 = "; result += Tester.Printer.print(var_51);
++        result += "\n";
++        result += "Tester_Class_3.var_54 = "; result += Tester.Printer.print(var_54);
++        result += "\n";
++        result += "Tester_Class_3.var_52 = "; result += Tester.Printer.print(var_52);
++        result += "\n";
++        result += "Tester_Class_3.var_55 = "; result += Tester.Printer.print(var_55);
++        result += "\n";
++        result += "Tester_Class_3.var_56 = "; result += Tester.Printer.print(var_56);
++        result += "\n";
++        result += "Tester_Class_3.var_1 = "; result += Tester.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_3.var_50 = "; result += Tester.Printer.print(var_50);
++        result += "\n";
++        result += "Tester_Class_3.var_53 = "; result += Tester.Printer.print(var_53);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++public class Tester {
++    final long var_70 = Tester_Class_2.var_44;
++    int var_71;
++    static double var_72;
++    static short var_73 = (Tester_Class_3.var_53 &= (Tester_Class_3.var_53 ^= Tester_Class_3.var_53)) ? (short)(byte)(Tester_Class_3.var_55 = Tester_Class_1.var_20) : (Tester_Class_3.var_55 = Tester_Class_1.var_20);
++    final static short var_74 = (Tester_Class_3.var_53 &= Tester_Class_3.var_53) ? (Tester_Class_3.var_53 ? var_73 : var_73++) : (var_73 *= (Tester_Class_1.var_21 |= var_73));
++    float var_75;
++
++
++    protected final Tester_Class_2 func_0()
++    {
++        Tester_Class_1.var_21 ^= ~Tester_Class_1.var_21;
++        if (false)
++        {
++            ((Tester_Class_3)(new Object[Tester_Class_1.var_21])[Tester_Class_1.var_21 -= + + (Tester_Class_2.var_44 >>>= Tester_Class_1.var_21)]).var_50 = (Tester_Class_1.var_21 &= (var_71 = 554295231));
++        }
++        else
++        {
++            Tester_Class_2.var_47 += 'H';
++        }
++        final Tester_Class_0 var_76 = ((new Tester_Class_0[Tester_Class_1.var_20][Tester_Class_1.var_21])[Tester_Class_1.var_20])[Tester_Class_1.var_20];
++        (Tester_Class_1.var_14 ? (Tester_Class_2)var_76 : (Tester_Class_2)var_76).var_46 = (var_73 %= var_74 / (((new Tester_Class_2[Tester_Class_1.var_20])[Tester_Class_1.var_21 |= Tester_Class_1.var_20]).var_46 = Tester_Class_1.var_22));
++        var_73 |= ((Tester_Class_2)(Tester_Class_1.var_13 = var_76)).var_43 | Tester_Class_1.var_20;
++        return new Tester_Class_2();
++    }
++
++    private static Tester_Class_3 func_1(byte arg_0, Tester_Class_1 arg_1, Tester_Class_1 arg_2, final int arg_3)
++    {
++        arg_0 <<= '`';
++        return false ? (Tester_Class_3)(Tester_Class_0)(arg_1.var_15 = (arg_1 = arg_2)) : (Tester_Class_3)((new Tester_Class_0[Tester_Class_1.var_20][arg_0])[Tester_Class_1.var_20])[Tester_Class_1.var_20];
++    }
++
++    public static String execute()
++    {
++        try {
++            Tester t = new Tester();
++            try { t.test(); }
++            catch(Throwable e) { }
++            try { return t.toString(); }
++            catch (Throwable e) { return "Error during result conversion to String"; }
++        } catch (Throwable e) { return "Error during test execution"; }
++    }
++
++    public static void main(String[] args)
++    {
++        for (int i = 0; i < 20000; i++) {
++            Tester t = new Tester();
++            try { t.test(); }
++            catch(Throwable e) { }
++            if (t.var_71 != 0 ||
++                t.var_70 != -1297640037857117185L ||
++                t.var_72 != 0.0 ||
++                t.var_75 != 0.0 ||
++                t.var_73 != -1 ||
++                t.var_74 != 15129) {
++                throw new InternalError("wrong answer");
++            }
++        }
++    }
++
++    private void test()
++    {
++        long var_77 = 0L;
++        var_73 /= (Tester_Class_2.var_47 = 'D' | 'Q');
++        Tester_Class_2.var_47 *= 't';
++        while (var_77 < 36)
++        {
++            var_73 += Tester_Class_1.var_22;
++            Tester_Class_2.var_47 += Tester_Class_1.var_20;
++            var_77++;
++            Tester_Class_2.var_45 = "";
++            Tester_Class_2.var_45 = (Tester_Class_2.var_45 = Tester_Class_2.var_45);
++        }
++        if (Tester_Class_3.var_53 |= false)
++        {
++            int var_78 = 0;
++            (false ? "idipdjrln" : "l").startsWith(Tester_Class_2.var_45);
++            while ((Tester_Class_3.var_53 |= (Tester_Class_3.var_53 &= ! (Tester_Class_1.var_18 = true)) | Tester_Class_3.var_53) && (var_78 < 15 && (Tester_Class_3.var_53 &= Tester_Class_1.var_14)))
++            {
++                Tester_Class_2.var_44 <<= 'b';
++                var_78++;
++                var_72 = var_74;
++                var_71 = (char)6792782617594333184L;
++            }
++            float var_79 = Tester_Class_2.var_47 /= 1.5148047552641134E308;
++            ((new boolean[Tester_Class_1.var_20])[Tester_Class_1.var_21 <= (Tester_Class_1.var_21 -= 9.675021723726166E307) / - + (var_72 = 4.3844763012510596E307) ? (byte)(Tester_Class_2.var_44 += ~Tester_Class_1.var_21) : (Tester_Class_1.var_21 += 1.7430965313164616E308)] ? (Tester_Class_2)(new Tester_Class_1().var_15 = func_0()) : new Tester_Class_2()).var_46 = (var_72 = (Tester_Class_1.var_21 *= 'j'));
++            Tester_Class_1.var_13 = (new Tester_Class_3[Tester_Class_1.var_21 >>>= var_78][Tester_Class_1.var_21])[Tester_Class_1.var_21][Tester_Class_1.var_20];
++        }
++        else
++        {
++            long var_80 = 0L;
++            ((Tester_Class_2)(Tester_Class_1.var_13 = new long[Tester_Class_1.var_21])).var_46 = 'r';
++            do
++            {
++                final float var_81 = 7.3633934E37F;
++                var_80++;
++                var_73 ^= Tester_Class_2.var_44;
++            } while (Tester_Class_3.var_53 && var_80 < 4);
++            Tester_Class_1.var_18 = Tester_Class_2.var_47 >= var_73;
++            Tester_Class_2.var_45 = "xvodcylp";
++            Tester_Class_2.var_45.codePointCount("indreb".charAt(+(new byte[Tester_Class_1.var_20][Tester_Class_1.var_20])[Tester_Class_1.var_21][Tester_Class_1.var_21]) * ~ (Tester_Class_1.var_21 %= (var_71 = --var_73)), ((Tester_Class_3.var_53 ^= Tester_Class_2.var_45.equalsIgnoreCase("rkxwa")) || Tester_Class_2.var_47 <= (Tester_Class_2.var_47 %= -var_80) ? (Tester_Class_1.var_21 ^= var_70) : var_73) & (var_71 = 'k'));
++            Tester_Class_1.var_13 = ((new long[Tester_Class_1.var_21][Tester_Class_1.var_20][Tester_Class_1.var_21])[Tester_Class_1.var_21])[Tester_Class_1.var_21];
++        }
++        var_73 <<= (Tester_Class_1.var_18 = false) ? 't' : (false ? 'E' : 'u');
++        var_73++;
++        int var_82 = 0;
++        Tester_Class_1.var_13 = func_1(Tester_Class_1.var_20, new Tester_Class_1(), (new Tester_Class_1[Tester_Class_1.var_21])[Tester_Class_1.var_21], 'M' & var_74);
++        "gdrlrsubb".substring(12438522, var_82);
++        Tester_Class_2.var_44 |= (((new Tester_Class_3[Tester_Class_1.var_21][Tester_Class_1.var_21])[Tester_Class_1.var_21 >>= 7993744087962264576L][Tester_Class_1.var_21]).var_51 = Tester_Class_3.var_53 ? 'B' : '[');
++        final long var_83 = ~ (4544638910183665664L << (((Tester_Class_3)((new Tester_Class_0[Tester_Class_1.var_20][Tester_Class_1.var_21])[Tester_Class_1.var_21])[Tester_Class_1.var_21]).var_56 = (Tester_Class_3.var_53 &= Tester_Class_3.var_53) ? Tester_Class_1.var_21 : Tester_Class_1.var_20));
++        Tester_Class_2.var_45 = Tester_Class_2.var_45;
++        while (var_82 < 2 && Tester_Class_3.var_53 & (Tester_Class_3.var_53 ^= !false))
++        {
++            (Tester_Class_3.var_53 ? "xqeisnyf" : (Tester_Class_2.var_45 = (Tester_Class_2.var_45 = (Tester_Class_2.var_45 = Tester_Class_2.var_45)))).concat(Tester_Class_2.var_45 = "i");
++            var_82++;
++            boolean var_84 = false;
++            Tester_Class_2.var_45 = Tester_Class_2.var_45;
++        }
++        var_71 = ~Tester_Class_2.var_44 != Tester_Class_2.var_44-- ? (var_73 = var_73) : (var_73 >>>= var_73);
++        char var_85;
++        Tester_Class_3.var_53 |= (Tester_Class_3.var_53 ^= true);
++        int var_86 = 0;
++        Tester_Class_1.var_21 %= (var_73 | (Tester_Class_1.var_21 *= 9.831691E37F)) * (Tester_Class_1.var_21 += 6784278051481715712L);
++        while (Tester_Class_3.var_53 && (var_86 < 24 && ((((Tester_Class_3.var_53 ^= true) ? Tester_Class_3.var_53 : Tester_Class_1.var_14) ? !Tester_Class_3.var_53 : Tester_Class_3.var_53) ? (Tester_Class_1.var_18 = Tester_Class_3.var_53) : Tester_Class_1.var_14 || true)))
++        {
++            final byte var_87 = (byte)((false & true ? Tester_Class_1.var_20 : 257407175) & 4242055901066916864L * (var_73 *= 1621204618) / ((((Tester_Class_1)(new Object[(byte)4.925362697409246E307])[Tester_Class_1.var_21]).var_17 ^ (var_71 = var_86)) & 1859382584));
++            var_86++;
++            Tester_Class_2.var_45 = (Tester_Class_2.var_45 = (Tester_Class_2.var_45 = "arceo"));
++            float var_88;
++        }
++        "a".lastIndexOf(var_71 = Tester_Class_3.var_53 ^ false ? (var_71 = 1058420888) : Tester_Class_1.var_20);
++        int var_89 = 0;
++        {
++            var_71 = 661164411;
++        }
++        boolean var_90;
++        --var_73;
++        Tester_Class_2.var_45.concat(Tester_Class_2.var_45);
++        {
++            var_85 = (Tester_Class_3.var_53 ? Tester_Class_3.var_53 : Tester_Class_3.var_53) ? 'R' : '[';
++        }
++        ((new Tester_Class_2[Tester_Class_1.var_21][Tester_Class_1.var_21])[Tester_Class_1.var_20][Tester_Class_1.var_20]).var_46 = Tester_Class_1.var_20;
++        final float var_91 = ((new Tester_Class_0[Tester_Class_1.var_21][Tester_Class_1.var_21])[Tester_Class_1.var_20][Tester_Class_1.var_21 -= Tester_Class_1.var_21]).equals(((new Tester_Class_1[Tester_Class_1.var_20])[Tester_Class_1.var_21]).var_15 = (Tester_Class_2.var_45 = Tester_Class_2.var_45)) ? (var_71 = Tester_Class_1.var_20) : 2.2259766E38F + Tester_Class_2.var_44;
++        Tester_Class_2.var_47 *= ((Tester_Class_2)(Tester_Class_0)(Tester_Class_1.var_13 = Tester_Class_2.var_45)).var_43;
++        Tester_Class_2.var_45 = Tester_Class_2.var_45;
++        Tester_Class_3.var_53 &= Tester_Class_1.var_14;
++        while (Tester_Class_1.var_20 >= ++Tester_Class_1.var_21 && var_89 < 2)
++        {
++            Tester_Class_1.var_13 = (Tester_Class_3)(new Tester_Class_0[Tester_Class_1.var_21])[Tester_Class_1.var_21];
++            var_89++;
++            if (true)
++            {
++                Tester_Class_3.var_53 |= true;
++                break;
++            }
++            else
++            {
++                Tester_Class_2 var_92;
++            }
++            ((Tester_Class_3)((Tester_Class_3.var_53 |= Tester_Class_3.var_53) ? (new Tester_Class_1().var_15 = (Tester_Class_0)(Tester_Class_1.var_13 = new boolean[Tester_Class_1.var_20][Tester_Class_1.var_21])) : new Tester_Class_0[Tester_Class_1.var_21][Tester_Class_1.var_21])).var_54 = (Tester_Class_1.var_21 = (Tester_Class_1.var_21 /= (Tester_Class_2.var_44 |= (int)(Tester_Class_1.var_21 >>>= var_82))));
++            ((Tester_Class_3)(Tester_Class_1.var_13 = (new Tester_Class_1().var_15 = new Tester_Class_1()))).var_51 = Tester_Class_1.var_20;
++            final char var_93 = 'u';
++            ((Tester_Class_2)(new Tester_Class_1().var_15 = (Tester_Class_2.var_45 = Tester_Class_2.var_45))).var_46 = var_93;
++            Tester_Class_2.var_45.toUpperCase();
++            Tester_Class_2.var_45 = "mhk";
++            (true | false ? new Tester_Class_1() : (new Tester_Class_1[Tester_Class_1.var_20])[Tester_Class_1.var_20]).var_15 = (Tester_Class_1)(((new Tester_Class_1[Tester_Class_1.var_21 |= Tester_Class_1.var_20][Tester_Class_1.var_21])[Tester_Class_1.var_21][Tester_Class_1.var_21]).var_15 = (Tester_Class_1.var_13 = (Tester_Class_1)(Tester_Class_1.var_13 = (Tester_Class_2.var_45 = "ofkbg"))));
++        }
++        float var_94 = 0F;
++        Tester_Class_2.var_44 |= (var_73 >>>= (var_85 = (var_85 = 'j')));
++        Tester_Class_3.var_52 = 1835242863964218368L;
++        do
++        {
++            int var_95 = 1361237611;
++            var_94++;
++            Tester_Class_3.var_53 ^= (Tester_Class_3.var_53 |= Tester_Class_1.var_14);
++        } while (var_94 < 16);
++        {
++            var_73 = var_73--;
++            Tester_Class_2.var_45 = (Tester_Class_1.var_14 ? Tester_Class_1.var_14 : !false) ? "oaxg" : "igdnja";
++        }
++        ((new Tester_Class_1[Tester_Class_1.var_21])[Tester_Class_1.var_21]).equals(new Tester_Class_1().var_15 = (Tester_Class_2.var_45 = "agdnue").charAt(1416972150) != Tester_Class_2.var_47 ? new Tester_Class_1() : new Tester_Class_1());
++        byte var_96 = Tester_Class_1.var_21 >>>= (var_85 = (var_85 = '`'));
++        Tester_Class_2.var_45 = "";
++        Tester_Class_2.var_47 += Tester_Class_2.var_47;
++        Tester_Class_2.var_45 = Tester_Class_2.var_45;
++    }
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester.var_71 = "; result += Printer.print(var_71);
++        result += "\n";
++        result += "Tester.var_70 = "; result += Printer.print(var_70);
++        result += "\n";
++        result += "Tester.var_72 = "; result += Printer.print(var_72);
++        result += "\n";
++        result += "Tester.var_75 = "; result += Printer.print(var_75);
++        result += "\n";
++        result += "Tester.var_73 = "; result += Printer.print(var_73);
++        result += "\n";
++        result += "Tester.var_74 = "; result += Printer.print(var_74);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++    static class Printer
++    {
++        public static String print(boolean arg) { return String.valueOf(arg); }
++        public static String print(byte arg)    { return String.valueOf(arg); }
++        public static String print(short arg)   { return String.valueOf(arg); }
++        public static String print(char arg)    { return String.valueOf((int)arg); }
++        public static String print(int arg)     { return String.valueOf(arg); }
++        public static String print(long arg)    { return String.valueOf(arg); }
++        public static String print(float arg)   { return String.valueOf(arg); }
++        public static String print(double arg)  { return String.valueOf(arg); }
++
++
++        public static String print(Object arg)
++        {
++            return print_r(new java.util.Stack(), arg);
++        }
++
++        private static String print_r(java.util.Stack visitedObjects, Object arg)
++        {
++            String result = "";
++            if (arg == null)
++                result += "null";
++            else
++            if (arg.getClass().isArray())
++            {
++                for (int i = 0; i < visitedObjects.size(); i++)
++                    if (visitedObjects.elementAt(i) == arg) return "<recursive>";
++
++                visitedObjects.push(arg);
++
++                final String delimiter = ", ";
++                result += "[";
++
++                if (arg instanceof Object[])
++                {
++                    Object[] array = (Object[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print_r(visitedObjects, array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof boolean[])
++                {
++                    boolean[] array = (boolean[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof byte[])
++                {
++                    byte[] array = (byte[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof short[])
++                {
++                    short[] array = (short[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof char[])
++                {
++                    char[] array = (char[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof int[])
++                {
++                     int[] array = (int[]) arg;
++                     for (int i = 0; i < array.length; i++)
++                     {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                     }
++                }
++                else
++                if (arg instanceof long[])
++                {
++                    long[] array = (long[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof float[])
++                {
++                    float[] array = (float[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof double[])
++                {
++                    double[] array = (double[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++
++                result += "]";
++                visitedObjects.pop();
++
++            } else
++            {
++                result += arg.toString();
++            }
++
++            return result;
++        }
++    }
++}
++
++
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6659207/Test.java.orig
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6659207/Test.java.orig	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,61 @@
++/*
++ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ *
++ */
++
++/*
++ * @test
++ * @bug 6659207
++ * @summary access violation in CompilerThread0
++ */
++
++public class Test {
++    static int[] array = new int[12];
++
++    static int index(int i) {
++        if (i == 0) return 0;
++        for (int n = 0; n < array.length; n++)
++            if (i < array[n]) return n;
++        return -1;
++    }
++
++    static int test(int i) {
++        int result = 0;
++        i = index(i);
++        if (i >= 0)
++            if (array[i] != 0)
++                result++;
++
++        if (i != -1)
++            array[i]++;
++
++        return result;
++    }
++
++    public static void main(String[] args) {
++        int total = 0;
++        for (int i = 0; i < 100000; i++) {
++            total += test(10);
++        }
++        System.out.println(total);
++    }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6661247/Test.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6661247/Test.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,156 @@
++/*
++ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ *
++ */
++
++/*
++ * @test
++ * @bug 6661247
++ * @summary Internal bug in 32-bit HotSpot optimizer while bit manipulations
++ */
++
++import java.util.Random;
++import java.nio.*;
++
++// This isn't a completely reliable test for 6661247 since the results
++// depend on what the local schedule looks like but it does reproduce
++// the issue in current builds.
++
++public class Test {
++
++    public static void test(boolean[] src, int srcPos, LongBuffer dest, long destPos, int count) {
++        int countStart = (destPos & 63) == 0 ? 0 : 64 - (int)(destPos & 63);
++        if (countStart > count)
++            countStart = count;
++        for (int srcPosMax = srcPos + countStart; srcPos < srcPosMax; srcPos++, destPos++) {
++            if (src[srcPos])
++                dest.put((int)(destPos >>> 6), dest.get((int)(destPos >>> 6)) | 1L << (destPos & 63));
++            else
++                dest.put((int)(destPos >>> 6), dest.get((int)(destPos >>> 6)) & ~(1L << (destPos & 63)));
++        }
++        count -= countStart;
++        int cnt = count >>> 6;
++        for (int k = (int)(destPos >>> 6), kMax = k + cnt; k < kMax; k++) {
++            int low = (src[srcPos] ? 1 : 0)
++                | (src[srcPos + 1] ? 1 << 1 : 0)
++                | (src[srcPos + 2] ? 1 << 2 : 0)
++                | (src[srcPos + 3] ? 1 << 3 : 0)
++                | (src[srcPos + 4] ? 1 << 4 : 0)
++                | (src[srcPos + 5] ? 1 << 5 : 0)
++                | (src[srcPos + 6] ? 1 << 6 : 0)
++                | (src[srcPos + 7] ? 1 << 7 : 0)
++                | (src[srcPos + 8] ? 1 << 8 : 0)
++                | (src[srcPos + 9] ? 1 << 9 : 0)
++                | (src[srcPos + 10] ? 1 << 10 : 0)
++                | (src[srcPos + 11] ? 1 << 11 : 0)
++                | (src[srcPos + 12] ? 1 << 12 : 0)
++                | (src[srcPos + 13] ? 1 << 13 : 0)
++                | (src[srcPos + 14] ? 1 << 14 : 0)
++                | (src[srcPos + 15] ? 1 << 15 : 0)
++                | (src[srcPos + 16] ? 1 << 16 : 0)
++                | (src[srcPos + 17] ? 1 << 17 : 0)
++                | (src[srcPos + 18] ? 1 << 18 : 0)
++                | (src[srcPos + 19] ? 1 << 19 : 0)
++                | (src[srcPos + 20] ? 1 << 20 : 0)
++                | (src[srcPos + 21] ? 1 << 21 : 0)
++                | (src[srcPos + 22] ? 1 << 22 : 0)
++                | (src[srcPos + 23] ? 1 << 23 : 0)
++                | (src[srcPos + 24] ? 1 << 24 : 0)
++                | (src[srcPos + 25] ? 1 << 25 : 0)
++                | (src[srcPos + 26] ? 1 << 26 : 0)
++                | (src[srcPos + 27] ? 1 << 27 : 0)
++                | (src[srcPos + 28] ? 1 << 28 : 0)
++                | (src[srcPos + 29] ? 1 << 29 : 0)
++                | (src[srcPos + 30] ? 1 << 30 : 0)
++                | (src[srcPos + 31] ? 1 << 31 : 0)
++                ;
++            srcPos += 32;
++            int high = (src[srcPos] ? 1 : 0)        // PROBLEM!
++                | (src[srcPos + 1] ? 1 << 1 : 0)
++                | (src[srcPos + 2] ? 1 << 2 : 0)
++                | (src[srcPos + 3] ? 1 << 3 : 0)
++                | (src[srcPos + 4] ? 1 << 4 : 0)
++                | (src[srcPos + 5] ? 1 << 5 : 0)
++                | (src[srcPos + 6] ? 1 << 6 : 0)
++                | (src[srcPos + 7] ? 1 << 7 : 0)
++                | (src[srcPos + 8] ? 1 << 8 : 0)
++                | (src[srcPos + 9] ? 1 << 9 : 0)
++                | (src[srcPos + 10] ? 1 << 10 : 0)
++                | (src[srcPos + 11] ? 1 << 11 : 0)
++                | (src[srcPos + 12] ? 1 << 12 : 0)
++                | (src[srcPos + 13] ? 1 << 13 : 0)
++                | (src[srcPos + 14] ? 1 << 14 : 0)
++                | (src[srcPos + 15] ? 1 << 15 : 0)
++                | (src[srcPos + 16] ? 1 << 16 : 0)
++                | (src[srcPos + 17] ? 1 << 17 : 0)
++                | (src[srcPos + 18] ? 1 << 18 : 0)
++                | (src[srcPos + 19] ? 1 << 19 : 0)
++                | (src[srcPos + 20] ? 1 << 20 : 0)
++                | (src[srcPos + 21] ? 1 << 21 : 0)
++                | (src[srcPos + 22] ? 1 << 22 : 0)
++                | (src[srcPos + 23] ? 1 << 23 : 0)
++                | (src[srcPos + 24] ? 1 << 24 : 0)
++                | (src[srcPos + 25] ? 1 << 25 : 0)
++                | (src[srcPos + 26] ? 1 << 26 : 0)
++                | (src[srcPos + 27] ? 1 << 27 : 0)
++                | (src[srcPos + 28] ? 1 << 28 : 0)
++                | (src[srcPos + 29] ? 1 << 29 : 0)
++                | (src[srcPos + 30] ? 1 << 30 : 0)
++                | (src[srcPos + 31] ? 1 << 31 : 0)
++                ;
++            srcPos += 32;
++            dest.put(k, ((long)low & 0xFFFFFFFFL) | (((long)high) << 32));
++            destPos += 64;
++        }
++        int countFinish = count & 63;
++        for (int srcPosMax = srcPos + countFinish; srcPos < srcPosMax; srcPos++, destPos++) {
++            if (src[srcPos])
++                dest.put((int)(destPos >>> 6), dest.get((int)(destPos >>> 6)) | 1L << (destPos & 63));
++            else
++                dest.put((int)(destPos >>> 6), dest.get((int)(destPos >>> 6)) & ~(1L << (destPos & 63)));
++        }
++    }
++    public static void main(String[] args) {
++        Random r = new Random();
++        int entries = 1000;
++        boolean[] src = new boolean[entries * 64];
++        long[] dest = new long[entries];
++        long[] result = new long[entries];
++
++        for (int c = 0; c < 2000; c++) {
++            for (int i = 0; i < entries; i++) {
++                long l = r.nextLong();
++                for (int bit = 0; bit < 64; bit++) {
++                    src[i * 64 + bit] = (l & (1L << bit)) != 0;
++                }
++                dest[i] = 0;
++                result[i] = l;
++            }
++            test(src, 0, LongBuffer.wrap(dest, 0, dest.length), 0, src.length);
++            for (int i = 0; i < entries; i++) {
++                if (dest[i] != result[i]) {
++                    throw new InternalError(i + ": " + Long.toHexString(dest[i]) + " != " + Long.toHexString(result[i]));
++                }
++            }
++        }
++    }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6663621/IVTest.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6663621/IVTest.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,117 @@
++/*
++ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ *
++ */
++
++/**
++ * @test
++ * @bug 6663621
++ * @summary JVM crashes while trying to execute api/java_security/Signature/SignatureTests.html#initSign tests.
++ */
++
++public class IVTest {
++    static int paddedSize;
++
++    static void padV15(byte[] padded) {
++        int psSize = padded.length;
++        int k = 0;
++        while (psSize-- > 0) {
++            padded[k++] = (byte)0xff;
++        }
++    }
++
++    static void padV15_2(int paddedSize) {
++        byte[] padded = new byte[paddedSize];
++        int psSize = padded.length;
++        int k = 0;
++        while (psSize-- > 0) {
++            padded[k++] = (byte)0xff;
++        }
++    }
++
++    static void padV15_3() {
++        byte[] padded = new byte[paddedSize];
++        int psSize = padded.length;
++        int k = 0;
++        while (psSize-- > 0) {
++            padded[k++] = (byte)0xff;
++        }
++    }
++
++    static void padV15_4() {
++        byte[] padded = new byte[paddedSize];
++        int psSize = padded.length;
++        for (int k = 0;psSize > 0; psSize--) {
++            int i = padded.length - psSize;
++            padded[i] = (byte)0xff;
++        }
++    }
++
++    static void padV15_5() {
++        byte[] padded = new byte[paddedSize];
++        int psSize = padded.length;
++        int k = psSize - 1;
++        for (int i = 0; i < psSize; i++) {
++            padded[k--] = (byte)0xff;
++        }
++    }
++
++    public static void main(String argv[]) {
++        int bounds = 1024;
++        int lim = 500000;
++        long start = System.currentTimeMillis();
++        for (int j = 0; j < lim; j++) {
++            paddedSize = j % bounds;
++            padV15(new byte[paddedSize]);
++        }
++        long end = System.currentTimeMillis();
++        System.out.println(end - start);
++        start = System.currentTimeMillis();
++        for (int j = 0; j < lim; j++) {
++            paddedSize = j % bounds;
++            padV15_2(paddedSize);
++        }
++        end = System.currentTimeMillis();
++        System.out.println(end - start);
++        start = System.currentTimeMillis();
++        for (int j = 0; j < lim; j++) {
++            paddedSize = j % bounds;
++            padV15_3();
++        }
++        end = System.currentTimeMillis();
++        System.out.println(end - start);
++        start = System.currentTimeMillis();
++        for (int j = 0; j < lim; j++) {
++            paddedSize = j % bounds;
++            padV15_4();
++        }
++        end = System.currentTimeMillis();
++        System.out.println(end - start);
++        start = System.currentTimeMillis();
++        for (int j = 0; j < lim; j++) {
++            paddedSize = j % bounds;
++            padV15_5();
++        }
++        end = System.currentTimeMillis();
++        System.out.println(end - start);
++    }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6663848/Tester.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6663848/Tester.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,478 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ */
++
++/*
++ * @test
++ * @bug 6663848
++ * @summary assert(i < Max(),"oob")
++ */
++
++/* Complexity upper bound: 296055 ops */
++
++final class Tester_Class_0 {
++    byte var_1;
++    static double var_2;
++    String var_3;
++    char var_4 = 'n';
++    static int var_5;
++    String var_6;
++    final long var_7 = 4161100809902398464L;
++    static String var_8 = "a";
++
++
++    public Tester_Class_0()
++    {
++        switch (((false ^ !"n".startsWith("kmmhtohv", 553985525) ? true : false) ? 'k' : (var_4 *= - (var_2 = 3.1182935E38F))) - (~2013121027650726912L >= 2.929692E38F / (var_1 = (byte)4.2723157E37F) ? var_4 | (short)var_7 : ~ ((byte)"".indexOf("yuno", 4922080))))
++        {
++            case 125:
++
++            case ']':
++
++            case 6:
++                var_5 = (false ? false : 3708707602755734528L >= 1648075631) ? var_4 : (false ? var_4 : ++var_4);
++                break;
++
++            case 46:
++                Object var_15;
++                ++var_4;
++                float var_16 = 3.1085987E38F;
++                var_5 = 'h';
++                var_1 = true ? (byte)9.482988718680618E307 : (false && false ? (byte)var_7 : (byte)6793807430041920512L);
++                final byte var_17 = var_1 = (337740577 ^ ~8932537004307666944L) / (short)var_16 - (byte)var_7 << var_7 > ~1539422023641354240L ? (false ? (byte)var_4 : (byte)9.302678E37F) : (byte)(var_5 = (byte)1.3007792E38F);
++                var_15 = "an";
++                break;
++
++            case 29:
++                var_3 = (var_6 = (var_8 = "kgc"));
++                break;
++
++            case 60:
++
++        }
++        char var_18;
++        ((new Tester_Class_0[var_1 = (byte)(var_2 = 93813743)])[var_1 = (byte)var_4]).var_1 = (var_1 = (var_1 = (byte)5.1405316E37F));
++        var_8 = var_8;
++        float var_19 = 0F;
++        var_2 = var_4;
++        do
++        {
++            var_4 >>= var_7;
++            var_19++;
++            var_4 %= true ? (short)7643330105057892352L : (short)1.1014013E38F;
++        } while (var_19 < 2 && (! (true & (!true && false)) && true));
++        var_4++;
++        int var_20 = 0;
++        var_4 = ~var_7 == (var_1 = (byte)var_7) | (float)var_20 <= 'H' ? 'r' : (var_4 |= (byte)var_4);
++        for (var_6 = (var_8 = "wqmnvxava"); (false ? (short)+ ~3540350558052792320L : + ~ ~3244965056572428288L - (var_4 *= 8.314953959831226E307)) <= +9.34280058703911E307 && var_20 < 6; var_2 = 3.0507823E38F)
++        {
++            var_2 = ~ ((byte)844279629935048704L) ^ (var_19 <= (false ? '\\' : 'B') ? (byte)(short)(var_1 = (byte)(short)var_19) : (var_1 = (var_1 = (var_1 = (byte)'T'))));
++            var_20++;
++            var_5 = (short)(var_7 >>> (! !true & true ? 'D' : (var_4 -= 1.1444072012663494E308)));
++            (var_6 = "jnjbrmaus").compareTo(var_3 = false ? "pfmv" : (var_8 = var_8));
++        }
++        var_2 = func_0(1248385981, 'V' != '[' ? (short)1.0082348960424545E308 : (byte)var_4, new double[var_1 = (byte)'p'][(byte)var_19], 1.3646683639847343E308);
++        var_5 = (var_1 = (var_1 = (true ^ false ? "bfh".startsWith(var_8) : true || !true) | false ? (byte)(var_2 = - ~var_7) : (var_1 = (byte)var_19)));
++        var_3 = (var_3 = "dn");
++        var_2 = false ? (var_1 = (byte)9.136750130102702E307) : var_7;
++    }
++
++
++
++
++    final short func_0(int arg_0, short arg_1, double[][] arg_2, double arg_3)
++    {
++        double[][] var_9 = arg_2;
++        arg_0 <<= true ? (byte)- +1.1174307E37F : (var_1 = (byte)911334714);
++        switch ("touoh".endsWith(var_8) ^ ! ! (++var_4 != 1.8567045E38F) ? (var_4 <<= arg_1) : 'E')
++        {
++            case 'a':
++
++            case 46:
++
++            case 's':
++
++            case 50:
++                ((new Tester_Class_0[(byte)arg_0][(byte)- (- + - - + - +1.775205E38F - (arg_1 |= 'Z'))])[var_1 = (var_1 = (byte)4.020531E37F)][var_1 = (var_1 = (byte)883328311549528064L)]).var_4 &= (var_6 = var_8).charAt(arg_0);
++                var_3 = false ? var_8 : "amfijbpwa";
++                var_4 -= -1.4699719646972257E308;
++                var_2 = (var_1 = (byte)(arg_1 += 1.6757431E38F));
++                var_1 = (var_1 = (var_1 = (byte)+1.4416583523884388E308));
++                final Object var_10 = (new Object[(byte)(arg_1 += var_4)])[var_1 = (byte)- +1.0281942E38F];
++                arg_1 = arg_1;
++                break;
++
++            case 7:
++                var_8 = var_8 + var_8;
++                break;
++
++            case 'N':
++
++            case 'V':
++
++            case 56:
++
++            case 'I':
++
++        }
++        arg_0 &= arg_1;
++        var_3 = false ? var_8 : "vpaj";
++        var_4 = (var_4 *= arg_1);
++        arg_3 *= (var_4 = var_4);
++        final char var_11 = true ? var_4 : (char)(var_4 << (var_1 = (byte)(arg_1 &= arg_0)));
++        boolean var_12;
++        var_4 ^= '`';
++        "nkj".startsWith(var_6 = "wrcnrdd");
++        var_1 = (byte)~var_7;
++        var_6 = (var_8 = "ul");
++        return (var_12 = 3548576322219573248L <= var_4++ & ((var_12 = !true) || (var_12 = !false | false))) ? arg_1-- : (var_1 = (byte)+ (var_2 = 2.7633542E38F));
++    }
++
++    protected final void func_1(final String arg_0, Object arg_1, short arg_2)
++    {
++        arg_2 *= ~8267766955221100544L;
++        arg_1 = (var_6 = var_8);
++        arg_2 <<= false ? (var_1 = (var_1 = (var_1 = (byte)1.6645553629318776E308))) : arg_2;
++    }
++
++    protected final static float func_2(byte arg_0, final String arg_1)
++    {
++        var_8 = arg_1;
++        char var_13 = ((new Tester_Class_0[arg_0 |= ']'])[arg_0]).var_4--;
++        var_5 = 907889433;
++        {
++            var_13 ^= (var_5 = var_13);
++        }
++        var_8 = arg_1;
++        var_5 = (byte)1759688161;
++        var_8 = (new String[arg_0 >>>= (short)1072761211])[arg_0];
++        return 5.108221E37F;
++    }
++
++    private static boolean func_3(boolean arg_0, final boolean arg_1)
++    {
++        var_2 = ((new Tester_Class_0[(byte)(short)'H'])[(byte)(short)(var_2 = (short)'k')]).var_4;
++        if (false)
++        {
++            var_8 = "cl";
++        }
++        else
++        {
++            final byte[] var_14 = new byte[true ? (byte)(- ((byte)9.760296114722793E307) | ~1867374212153383936L) : (byte)(short)'Q'];
++            var_2 = (float)~3838271533006646272L / (- ~ ~1786841397228277760L ^ ~3695911615719734272L & 'Z');
++        }
++        {
++            var_8 = var_8;
++        }
++        ((new Tester_Class_0[(byte)(var_2 = (short)~ - +4818709334539164672L)])[(byte)'W']).var_1 = true || false & arg_0 ^ (arg_1 ^ arg_0 ? arg_0 : (arg_0 ^= true)) ? (byte)1.5309163701271477E308 : (byte)3.0904342E38F;
++        ((new Tester_Class_0[(byte)756871578277111808L][(byte)+ + -3.0687752E38F])[(byte)'f'][(byte)1544156315]).var_6 = (var_8 = "vqey");
++        return arg_1;
++    }
++
++    public final char func_4(short arg_0)
++    {
++        {
++            var_6 = (var_3 = "hjtjar");
++            var_1 = false ? (byte)4.02486350499973E307 : (byte)1.3222663E38F;
++        }
++        var_1 = (new byte[var_1 = (var_1 = (byte)1770517884)])[var_1 = (byte)arg_0];
++        var_4++;
++        --arg_0;
++        var_5 = true ? 'D' : (var_4 ^= (var_5 = 134858941));
++        return (char)~ (7273058621469586432L << (byte)3.1756883E38F ^ (false ? (byte)(var_5 = var_4) : (arg_0 >>= 6165812289376474112L))) < (2046127339 ^ + ((byte)arg_0)) ? (!false ? (var_4 %= 1.8187417377124746E307) : (var_4 *= 445936805)) : var_4;
++    }
++
++}
++
++
++class Tester_Class_1 {
++    Tester_Class_0[][] var_21;
++    static long var_22 = 6671342492736446464L;
++    float var_23 = 2.9329673E38F;
++    final int var_24 = 1834862519;
++    int var_25 = 69920645;
++    static char var_26;
++    static Object var_27;
++    static int var_28 = Tester_Class_0.var_5 = false ? 'U' : (var_26 = (var_26 = 'R'));
++
++
++    public Tester_Class_1()
++    {
++        (false ? (Tester_Class_0)(var_27 = Tester_Class_0.var_8) : (Tester_Class_0)(var_27 = "a")).var_1 = (short)(var_23 %= var_23) >= (byte)1217257602 | var_25 == (char)(var_23 += var_23) ? (byte)new Tester_Class_0().var_4-- : ((true | false) ^ !false ? (byte)6.122806E37F : (byte)1.084542872057614E308);
++        Tester_Class_0.var_2 = new Tester_Class_0().var_7;
++        --var_22;
++        boolean var_32 = ! ((new Tester_Class_0().var_1 = (((new Tester_Class_0[(byte)var_22])[(byte)var_23]).var_1 = false ? (byte)(var_23 = var_28) : (byte)1.5858707076311894E308)) != (char)+var_23);
++        var_25 -= (true ? (byte)5.488240359086226E307 : (((Tester_Class_0)(var_27 = Tester_Class_0.var_8)).var_1 = (byte)'L')) * (Tester_Class_0.var_2 = 7.045106259776882E307);
++        Object var_33 = (var_32 ^= var_32) ? (var_27 = (Tester_Class_0.var_8 = (Tester_Class_0.var_8 = "gaemnaep"))) : (new Tester_Class_0[(byte)'g'])[(byte)(short)271735827];
++        byte var_34 = var_32 ? (byte)((Tester_Class_0)var_33).var_7 : ((var_32 &= true) ? (byte)(Tester_Class_0.var_2 = 1.6975344767401616E307) : (byte)- ((double)var_22));
++        Tester_Class_0.var_2 = 1.4644308179397427E308;
++        var_28 /= (short)1681483575;
++        Tester_Class_0.var_2 = (var_34 <<= (var_25 ^= ~ (var_22 |= (var_22 = var_22))));
++        var_23 *= (char)(var_28 *= var_32 ? var_34 ^ --var_34 : 3220732582528450560L);
++        if ((((Tester_Class_0)var_33).var_4 &= var_34) != (short)var_28)
++        {
++            Tester_Class_0.var_8 = ((false ? (Tester_Class_0)var_33 : (Tester_Class_0)var_33).var_6 = Tester_Class_0.var_8);
++        }
++        else
++        {
++            var_33 = false | (var_32 ^= true) ? ((new Tester_Class_0[var_34][var_34])[var_34])[var_34] : (Tester_Class_0)var_33;
++        }
++        if (false)
++        {
++            var_22 = 107656877775594496L;
++        }
++        else
++        {
++            ((var_32 &= (var_32 |= var_32)) || (var_23 /= var_25) == (Tester_Class_0.var_2 = 7649348100017113088L) ? (new Tester_Class_0[var_34])[var_34] : (Tester_Class_0)var_33).var_4 >>>= (((new Tester_Class_0[var_34])[var_34 <<= 'C']).var_6 = (((Tester_Class_0)(var_33 = (var_33 = var_33))).var_6 = ++var_28 > var_23 ? "qgq" : (Tester_Class_0.var_8 = Tester_Class_0.var_8))).equalsIgnoreCase(Tester_Class_0.var_8) ? var_34++ : ++var_34;
++        }
++        String[][] var_35;
++        Tester_Class_0.var_8 = Tester_Class_0.var_8;
++        var_27 = (new Tester_Class_0[var_34][var_34 /= 226411329])[false ? --var_34 : (var_34 /= 1.7237614E38F)][var_34];
++        var_23 %= var_25;
++    }
++
++
++
++    protected Object clone()
++    {
++        var_28 >>>= (new Tester_Class_0().var_1 = (byte)new Tester_Class_0().var_4);
++        ((Tester_Class_0)(var_27 = (Tester_Class_0.var_8 = (Tester_Class_0.var_8 = (Tester_Class_0.var_8 = "ybndugrur"))))).var_3 = Tester_Class_0.var_8;
++        var_22--;
++        new Tester_Class_0().var_4 -= (new Tester_Class_0().var_1 = (byte)'O');
++        {
++            short var_29 = 12378;
++        }
++        Tester_Class_0.var_8 = "fd";
++        "".lastIndexOf("bgsxwmil");
++        new Tester_Class_0().var_6 = (Tester_Class_0.var_2 = -1.7590174497347678E308) == (var_26 = 'o') | true && !false ? Tester_Class_0.var_8 : (((Tester_Class_0)(var_27 = "")).var_6 = Tester_Class_0.var_8);
++        return var_27 = (var_27 = (var_27 = (var_27 = (Tester_Class_0.var_8 = Tester_Class_0.var_8).substring(var_24))));
++    }
++
++    public boolean equals(Object obj)
++    {
++        --var_28;
++        var_23 /= +var_23 * -6025098819014877184L / 3.3957492E38F / (short)'i';
++        Tester_Class_0.var_2 = 3.0420988E38F * ((short)var_23 <= (var_23 %= 8.761205585617465E307) % + -1.2374670294031777E308 ? (var_23 = 'P') : (float)+ +1.0313120780554142E308);
++        (7489001532003495936L >= 'C' ? (Tester_Class_0)obj : (Tester_Class_0)(var_27 = obj)).func_4((short)(float)(byte)(float)(Tester_Class_0.var_2 = 1601763635));
++        (var_23 * 2.2882572E38F <= (short)var_25 * (true || false ? (short)~ ((byte)1.1382317160718865E307) : (Tester_Class_0.var_2 = 7.909133507918336E307)) ? (Tester_Class_0)obj : (Tester_Class_0)obj).var_4++;
++        boolean var_30 = true;
++        var_27 = new Tester_Class_0();
++        final String var_31 = "aiqnc";
++        return 1.1357028E38F + (var_30 ? (Tester_Class_0)(var_27 = obj) : (Tester_Class_0)obj).var_7 == 3.860172628750592E306;
++    }
++
++
++}
++
++public class Tester {
++    final static long var_36 = (4.4957056E37F < Tester_Class_1.var_22 + 281107777128915968L ? (Tester_Class_1.var_26 = 't') : (char)Tester_Class_1.var_28) - (4654994097042818048L | (byte)(Tester_Class_0.var_2 = (short)(Tester_Class_1.var_26 = ']'))) ^ 349774342780012544L;
++
++
++    static long func_0(final Tester_Class_1 arg_0, long arg_1)
++    {
++        ((Tester_Class_0)(Tester_Class_1.var_27 = (Tester_Class_0)(Tester_Class_1.var_27 = Tester_Class_0.var_8))).var_4 |= --new Tester_Class_0().var_4;
++        return Tester_Class_1.var_22 &= new Tester_Class_0().var_4;
++    }
++
++    protected Tester_Class_1 func_1(final boolean arg_0, Object arg_1)
++    {
++        Tester_Class_0.var_2 = (short)Tester_Class_1.var_22;
++        ((arg_0 ? (byte)8.639448452214698E307 : ((Tester_Class_1)arg_1).var_24) <= ((Tester_Class_1)(Tester_Class_1.var_27 = new float[(byte)Tester_Class_1.var_22])).var_25++ ? (Tester_Class_0)arg_1 : (Tester_Class_0)(arg_1 = (Tester_Class_1.var_27 = (Tester_Class_0)arg_1))).var_3 = (Tester_Class_0.var_8 = "pgfdbinj");
++        arg_1 = (new Tester_Class_0[((Tester_Class_0)arg_1).var_1 = (byte)1.0730194668655324E308])[(byte)'l'];
++        Tester_Class_0.var_8 = Tester_Class_0.var_8;
++        Tester_Class_1.var_27 = arg_0 & (true | !true) ? (Tester_Class_1)arg_1 : (Tester_Class_1)arg_1;
++        Tester_Class_1.var_28 += arg_0 ? (byte)(Tester_Class_0.var_8.compareToIgnoreCase(Tester_Class_0.var_8) % (Tester_Class_1.var_28 %= 2.2770412E38F)) : (byte)((byte)(short)Tester_Class_1.var_28 ^ var_36);
++        Tester_Class_1.var_28 <<= ((Tester_Class_0)arg_1).var_4;
++        return arg_0 ? (false ^ false ? (Tester_Class_1)arg_1 : (Tester_Class_1)arg_1) : (Tester_Class_1)arg_1;
++    }
++
++    protected final static String[][] func_2(final double arg_0)
++    {
++        Tester_Class_0.var_2 = (((Tester_Class_1.var_22 = ((Tester_Class_1)(Tester_Class_1.var_27 = "")).var_25++) != + ((byte)(Tester_Class_0.var_2 = - ((byte)2.690435E38F))) ? (Tester_Class_1)(Tester_Class_1.var_27 = "twoj") : (new Tester_Class_1[(byte)'n'])[(byte)- ((byte)'p')]).var_25 /= (new short[false ? (byte)arg_0 : (byte)3.1713847E38F])[(byte)(short)((Tester_Class_0)(Tester_Class_1.var_27 = (Tester_Class_1.var_27 = "fi"))).var_7]);
++        {
++            ((new Tester_Class_1[(byte)9.709543613377303E307])[((Tester_Class_0)(Tester_Class_1.var_27 = (Tester_Class_0.var_8 = "efwkox"))).var_1 = (byte)7789404846284517376L]).var_23 *= (((new Tester_Class_0[(byte)'J'][(byte)++Tester_Class_1.var_28])[(byte)Tester_Class_1.var_28][(byte)(Tester_Class_1.var_28 = 1677818267)]).var_1 = false || true ? (byte)1.4659824E38F : (byte)(Tester_Class_1.var_26 = 'T'));
++        }
++        Tester_Class_0.var_2 = !true | !false | false & ! (!true & (true ^ false)) ? (byte)(Tester_Class_1.var_26 = 'l') : (short)(arg_0 * (char)(byte)Tester_Class_1.var_28);
++        Tester_Class_1.var_28 <<= false ^ (! ! (!false | ! !true | true) | (Tester_Class_0.var_2 = arg_0) == 245171309) ? (byte)arg_0 : (short)Tester_Class_1.var_22;
++        {
++            ((Tester_Class_1)(true ? (Tester_Class_1.var_27 = "axpbpadi") : Tester_Class_0.var_8)).var_23 = ((Tester_Class_1)(Tester_Class_1.var_27 = (new Tester_Class_0[(byte)1.1668668415637981E308][(byte)1.4116134699564312E308])[(byte)-7.4415765E37F][(byte)5156322492367086592L])).var_25;
++        }
++        final double var_37 = 1.6970877829548446E308;
++        --(Tester_Class_1.var_28 == (byte)((byte)arg_0 + (byte)1.1632396E38F) ? (Tester_Class_0)(Tester_Class_1.var_27 = "vluk") : (Tester_Class_0)(Tester_Class_1.var_27 = (Tester_Class_0.var_8 = "pfki"))).var_4;
++        Tester_Class_1.var_22--;
++        return new String[new Tester_Class_0().var_1 = (((Tester_Class_0)(Tester_Class_1.var_27 = "filxvch")).var_1 = (byte)var_36)][new Tester_Class_0().var_1 = (byte)'C'];
++    }
++
++    final short func_3(byte arg_0, final short arg_1)
++    {
++        ((Tester_Class_0)(Tester_Class_1.var_27 = (Tester_Class_0.var_8 = "oenvgqdit"))).var_6 = Tester_Class_0.var_8;
++        new Tester_Class_0().var_4 >>>= + -var_36;
++        Tester_Class_0.var_2 = (((new Tester_Class_1[arg_0])[arg_0 %= ++Tester_Class_1.var_28]).var_25 &= Tester_Class_1.var_22);
++        ((new Tester_Class_1[arg_0])[arg_0 |= 1942533325]).var_23 %= arg_0 < arg_0 ? 'm' : 'N';
++        float var_38;
++        ((new Tester_Class_1[arg_0])[arg_0]).var_23 /= (((new Tester_Class_1[arg_0][arg_0])[arg_0 |= 'N'])[arg_0 <<= - ((byte)- (Tester_Class_0.var_2 = 3.3324301E38F))]).var_23;
++        return true ? arg_1 : arg_1;
++    }
++
++    private String func_4()
++    {
++        if (true)
++        {
++            ((Tester_Class_0)(Tester_Class_1.var_27 = (Tester_Class_1.var_27 = (Tester_Class_1.var_27 = Tester_Class_0.var_8)))).var_1 = (byte)6.4527776E37F;
++            ((Tester_Class_0)(Tester_Class_1.var_27 = new char[(byte)1.5121402849337185E307])).var_4 >>= - ((byte)3.3631582E37F) + (Tester_Class_1.var_28 /= 2.813947549586372E307);
++        }
++        else
++        {
++            {
++                Tester_Class_1.var_22 *= 1.6498653E36F;
++            }
++            Tester_Class_0.var_2 = + ((byte)7.750601265069686E307) > (short)(byte)3131520439106527232L ? (short)4699552681135671296L : (short)Tester_Class_1.var_22;
++            Tester_Class_1.var_22++;
++            ((Tester_Class_1)(new Object[(byte)6.231994821505742E307])[(byte)Tester_Class_1.var_22]).var_23 %= 30526551;
++            {
++                Tester_Class_0.var_2 = ((Tester_Class_1)(Tester_Class_1.var_27 = new short[(byte)9.628297E37F])).var_25;
++            }
++            Tester_Class_1.var_28 /= (byte)(false ^ Tester_Class_0.var_8.equalsIgnoreCase(Tester_Class_0.var_8) ? (byte)2.689633745095358E307 : (short)1.2532476E38F);
++            float var_39;
++            long[] var_40 = new long[((Tester_Class_0)(Tester_Class_1.var_27 = Tester_Class_0.var_8)).var_1 = (((Tester_Class_0)(Tester_Class_1.var_27 = (Tester_Class_0.var_8 = Tester_Class_0.var_8))).var_1 = (byte)(1.8335008E38F % (true | false ? (short)Tester_Class_1.var_22 : (byte)'P')))];
++        }
++        Tester_Class_0.var_2 = (((new Tester_Class_0[((Tester_Class_0)(Tester_Class_1.var_27 = "inufeoe")).var_1 = (byte)(short)'M'])[(byte)(Tester_Class_0.var_2 = + - -2.274269E38F)]).var_1 = (((Tester_Class_0)(Tester_Class_1.var_27 = "c")).var_1 = (byte)'Z'));
++        Tester_Class_0.var_8 = (Tester_Class_0.var_8 = Tester_Class_0.var_8);
++        return "rkvffvlf";
++    }
++
++    final char func_5(final char arg_0, final Object[] arg_1, final double arg_2, Object arg_3)
++    {
++        arg_3 = true && Tester_Class_1.var_22 < (((Tester_Class_0)arg_3).var_1 = (((Tester_Class_0)(Tester_Class_1.var_27 = arg_3)).var_1 = (byte)arg_2)) ? "dgmwbkv" : Tester_Class_0.var_8;
++        (true ? (Tester_Class_1)arg_3 : (Tester_Class_1)arg_3).var_23 -= (Tester_Class_0.var_2 = arg_0);
++        arg_3 = (new String[(byte)arg_2])[(byte)-2.797633529863769E307];
++        (false ^ !false ^ (!true && true) ? (Tester_Class_0)arg_3 : (Tester_Class_0)arg_3).var_4 -= (new char[((Tester_Class_0)arg_3).var_1 = (((Tester_Class_0)arg_3).var_1 = (((Tester_Class_0)arg_3).var_1 = (byte)2.433897E38F))])[((Tester_Class_0)arg_3).var_1 = (byte)+7.036923762392132E307];
++        Tester_Class_0.var_8 = Tester_Class_0.var_8;
++        Tester_Class_0.var_2 = true ^ +((Tester_Class_1)(arg_3 = "o")).var_23 <= arg_2 ? (short)Tester_Class_1.var_22 : (((Tester_Class_0)arg_3).var_1 = (byte)1.9730195E38F);
++        (false ? (Tester_Class_0)arg_3 : (Tester_Class_0)arg_3).var_6 = "bpjqfacys";
++        ((new Tester_Class_0[((Tester_Class_0)arg_3).var_1 = (byte)1969581340][((Tester_Class_0)arg_3).var_1 = (byte)(Tester_Class_0.var_2 = arg_0)])[((Tester_Class_0)arg_3).var_1 = (byte)(Tester_Class_0.var_2 = 4044194664687833088L)][((Tester_Class_0)arg_3).var_1 = (byte)((Tester_Class_1)arg_3).var_24]).var_1 = (false ? (byte)+ ((byte)1.2689328633821032E305) == arg_2 : false) ? (byte)arg_2 : (((Tester_Class_0)arg_3).var_1 = (byte)1586517741);
++        return (func_3(((Tester_Class_0)arg_3).var_1 = (byte)Tester_Class_1.var_28, (short)(byte)- +func_1(true, arg_3).var_23) > 1882532904 ? (short)2.6362656E38F >= (char)2.445034E38F & false : var_36 > Tester_Class_1.var_22) ? ((new Tester_Class_0[(byte)1.2074529E38F][(byte)'N'])[(byte)1.3365433211782782E308][(byte)Tester_Class_1.var_28]).var_4 : 'O';
++    }
++
++    private final static Tester_Class_1 func_6(String arg_0, String arg_1)
++    {
++        Tester_Class_1.var_22 += ((new Tester_Class_0[(byte)4.1707075152824266E306])[(byte)(short)(((Tester_Class_0)(Tester_Class_1.var_27 = "tmyiha")).var_4 &= 'e')]).var_4;
++        return (new Tester_Class_1[((Tester_Class_0)(Tester_Class_1.var_27 = arg_1)).var_1 = (byte)2.8419246E38F][(byte)Tester_Class_1.var_22])[((Tester_Class_0)(Tester_Class_1.var_27 = (Tester_Class_1.var_27 = arg_0))).var_1 = (((Tester_Class_0)(Tester_Class_1.var_27 = (Tester_Class_0.var_8 = "nvyfpdyms"))).var_1 = (byte)Tester_Class_1.var_22--)][((Tester_Class_0)(Tester_Class_1.var_27 = "kklsnsnia")).var_1 = (byte)'['];
++    }
++
++    double func_7(Object arg_0, final String arg_1)
++    {
++        if (false)
++        {
++            ((Tester_Class_0)arg_0).var_1 = (byte)'Z';
++        }
++        else
++        {
++            ((Tester_Class_0)arg_0).var_3 = Tester_Class_0.var_8;
++        }
++        float var_41 = (true ? (new Tester_Class_1[((Tester_Class_0)arg_0).var_1 = (byte)var_36])[((Tester_Class_0)arg_0).var_1 = (byte)Tester_Class_1.var_22] : (Tester_Class_1)arg_0).var_23 /= 'n';
++        ++Tester_Class_1.var_22;
++        return true ^ +func_6(arg_1, Tester_Class_0.var_8).var_23 < ~6945306015697774592L & (Tester_Class_1.var_28 |= var_36) <= var_36 ? + -1.4330949313452472E308 - -6602331706844466176L : Tester_Class_1.var_28;
++    }
++
++    private final static byte func_8(final Object arg_0, double arg_1, final double arg_2, double arg_3)
++    {
++        ((Tester_Class_1)arg_0).var_23 = (short)(!false && (new boolean[(byte)2.2566308E38F])[((Tester_Class_0)arg_0).var_1 = (byte)((Tester_Class_1)arg_0).var_25] ? arg_2 : 3.0315489414155014E307);
++        short var_42 = (new short[((Tester_Class_0)arg_0).var_1 = (((Tester_Class_0)arg_0).var_1 = (byte)var_36)])[(byte)arg_2];
++        Tester_Class_1.var_22 <<= ((new Tester_Class_0[(byte)var_42])[((Tester_Class_0)arg_0).var_1 = (byte)'X']).var_4;
++        (false ? new Tester_Class_0() : new Tester_Class_0()).var_4 *= 6.636831399350763E307;
++        (true & false ^ !((Tester_Class_1)arg_0).equals(arg_0) ? (Tester_Class_0)arg_0 : (Tester_Class_0)arg_0).var_4 <<= (Tester_Class_1.var_22 >>>= (Tester_Class_1.var_28 -= Tester_Class_1.var_28)) / 1064434;
++        int var_43;
++        final Object var_44 = Tester_Class_1.var_27 = new byte[((Tester_Class_0)arg_0).var_1 = (byte)+arg_2];
++        ((Tester_Class_0)var_44).var_1 = (byte)arg_1;
++        Tester_Class_1 var_45 = (3582921389614857216L != 2.132918E38F / Tester_Class_1.var_22 % (((Tester_Class_1)var_44).var_23 %= var_42--) ? false : false ^ !false) ? func_6(((Tester_Class_0)arg_0).var_6 = Tester_Class_0.var_8, Tester_Class_0.var_8 = Tester_Class_0.var_8) : (Tester_Class_1)arg_0;
++        arg_1 *= false ? (false ? (byte)var_45.var_23 : (byte)var_45.var_24) : (byte)8158132319185776640L;
++        Tester_Class_0.var_8 = (new Tester_Class_0().var_6 = "gvxkyj");
++        Tester_Class_1.var_27 = "bkfbu";
++        arg_1 *= (((Tester_Class_0)arg_0).var_4 += new Tester_Class_0().var_4);
++        Tester_Class_0 var_46 = (false ? false && - (((Tester_Class_0)arg_0).var_1 = (byte)var_45.var_24) > var_45.var_23 - arg_2 : ("fn".startsWith(Tester_Class_0.var_8) && false) & !true) ? (Tester_Class_0)arg_0 : (Tester_Class_0)arg_0;
++        return var_46.var_1 = (var_46.var_1 = (var_46.var_1 = (byte)var_45.var_23));
++    }
++
++    public static void main(String[] args)
++    {
++        for (int i = 0; i < 100000; i++) {
++            Tester t = new Tester();
++            try {
++                t.test();
++            } catch(Throwable e) {
++            }
++            if (t.var_36 !=  -4918908939899620363L) {
++                throw new InternalError(t.var_36 + " !=  -4918908939899620363");
++            }
++        }
++    }
++
++    private void test()
++    {
++        ((Tester_Class_0)(Tester_Class_1.var_27 = new Tester_Class_0())).var_4 &= new Tester_Class_0().var_4 >>> (short)new Tester_Class_1().var_25;
++        Tester_Class_1.var_22 <<= Tester_Class_1.var_22;
++        Tester_Class_1.var_27 = ((true | ! !false) & false ? ! !true : 6.5017485E37F == (short)(Tester_Class_1.var_22 &= 'h')) ? (Tester_Class_1.var_27 = new Tester_Class_1()) : new Tester_Class_1();
++        (1.252611E37F < (((new Tester_Class_0[(byte)'X'])[(byte)6.916916470825763E307]).var_4 /= (byte)Tester_Class_1.var_28 < (new short[(byte)7.626803503643197E307])[(byte)var_36] ? (short)new Tester_Class_0().var_4 : (short)(byte)Tester_Class_1.var_22) ? (true ? new Tester_Class_0() : new Tester_Class_0()) : (true ? new Tester_Class_0() : (Tester_Class_0)(Tester_Class_1.var_27 = Tester_Class_0.var_8))).var_4 ^= Tester_Class_1.var_28++;
++        (true ? new Tester_Class_1() : func_1(true, Tester_Class_1.var_27 = "jjgccelm")).var_23 -= (- - + + +1.2976166388790213E308 != ((!true ^ ! !true) & (short)(Tester_Class_1.var_28 &= var_36) <= (Tester_Class_1.var_26 = 'C') ? 1163089569715148800L : 8.591879058615699E307) ? (new Tester_Class_0().var_1 = (new Tester_Class_0().var_1 = (byte)2.7209893E38F)) : (!false ^ ! !false ? (short)'x' : (short)'a')) + 7620981797791666176L;
++        new Tester_Class_0().var_4 ^= 8777687662500669440L;
++        final String[] var_47 = new String[((1864097118983963648L | (Tester_Class_1.var_26 = '[')) < + (new Tester_Class_1().var_23 += --new Tester_Class_0().var_4) ? ! !true : false) ? (new Tester_Class_0().var_1 = (new Tester_Class_0().var_1 = (byte)2.6448988E38F)) : (byte)Tester_Class_1.var_22];
++        long var_48 = 0L;
++        Tester_Class_0.var_2 = "nwcmc".codePointAt("wgcdlmd".compareTo("jyt"));
++        do
++        {
++            Tester_Class_1.var_22 += new Tester_Class_0().var_4;
++            var_48++;
++            Tester_Class_1.var_27 = false ? "dfvpqs" : Tester_Class_0.var_8;
++            new Tester_Class_0().var_1 = (new Tester_Class_0().var_1 = (new byte[(byte)2.2825838E38F])[(byte)4.2446597794703817E307]);
++        } while ((true ? !false : false & !false) && (var_48 < 117 && true));
++        int var_49 = 0;
++        Tester_Class_1.var_26 = 'I';
++        short var_50;
++        while (var_49 < 225 && ('U' | ~ ((byte)9.556538701292864E306)) < var_49)
++        {
++            var_50 = (var_50 = ((byte)1.2016701369644112E308 != (var_50 = (short)1.2518271E38F) ^ !true ? !true : false) ? (short)6.629572378442352E307 : (byte)'O');
++            var_49++;
++            var_50 = true ? (byte)Tester_Class_1.var_22 : (byte)(Tester_Class_1.var_22 = (byte)var_48);
++            byte var_51;
++            short var_52;
++        }
++        Tester_Class_1.var_27 = Tester_Class_0.var_8 + "r";
++        var_50 = (var_50 = true ^ ! (!false ^ false) ? (byte)573442894 : (byte)2.1479471E38F);
++        ((var_50 = (short)'w') >= (new Tester_Class_0().var_1 = (byte)5.148172E37F) & true ? new Tester_Class_0() : new Tester_Class_0()).var_4 >>= true ? (new Tester_Class_0().var_4 /= (byte)Tester_Class_1.var_28) : (Tester_Class_1.var_26 = '^');
++        float var_53;
++        (func_6(Tester_Class_0.var_8, Tester_Class_0.var_8).var_24 <= (var_50 = (var_50 = (short)var_48)) ^ !true | true & true | true ^ false ? (Tester_Class_1)(Tester_Class_1.var_27 = Tester_Class_0.var_8) : new Tester_Class_1()).var_23 /= ((new Tester_Class_0[(byte)1.6656795E38F])[new Tester_Class_0().var_1 = (byte)1.212530193895014E308]).var_4;
++        long var_54 = 0L;
++        Object var_55;
++        (true | --new Tester_Class_0().var_4 == 2898909413610959872L & true == true ? func_6(Tester_Class_0.var_8, Tester_Class_0.var_8) : new Tester_Class_1()).var_23 %= 7471272661059674112L;
++        while (false & (false | 5.7300464E37F != (short)(Tester_Class_0.var_2 = (short)var_36)) && var_54 < 293)
++        {
++            func_6(Tester_Class_0.var_8 = "wts", Tester_Class_0.var_8 = (Tester_Class_0.var_8 = Tester_Class_0.var_8)).var_25 |= (Tester_Class_1.var_22 ^= (var_50 = (byte)1.0904691577897794E308));
++            var_54++;
++            (false ? func_6(Tester_Class_0.var_8, "inujn") : func_6(Tester_Class_0.var_8, Tester_Class_0.var_8 = Tester_Class_0.var_8)).var_23 /= (Tester_Class_0.var_2 = (var_50 = (((Tester_Class_0)(var_55 = Tester_Class_0.var_8)).var_1 = (byte)(short)Tester_Class_1.var_28)));
++            Tester_Class_0.var_8 = Tester_Class_0.var_8;
++        }
++        var_50 = func_3(new Tester_Class_0().var_1 = (new Tester_Class_0().var_1 = (byte)var_36), var_50 = (var_50 = (var_50 = (byte)var_36)));
++        Tester_Class_1.var_22++;
++        Tester_Class_1.var_28 <<= 'Y';
++    }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6689060/Test.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6689060/Test.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,577 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ *
++ */
++
++/*
++ * @test
++ * @bug 6689060
++ * @summary Escape Analysis does not work with Compressed Oops
++ * @run main/othervm -Xbatch -XX:CompileCommand=exclude,Test.dummy -XX:+AggressiveOpts Test
++ */
++
++import java.lang.reflect.Array;
++
++class Point {
++  int x;
++  int y;
++  Point next;
++  int ax[];
++  int ay[];
++  Point pax[];
++  Point pay[];
++  public Point getNext() {
++    return next;
++  }
++}
++
++public class Test {
++
++  void dummy() {
++    // Empty method to verify correctness of DebugInfo.
++    // Use -XX:CompileCommand=exclude,Test.dummy
++  }
++
++  int ival(int i) {
++    return i*2;
++  }
++
++  int test80(int y, int l, int i) {
++    Point p = new Point();
++    p.ax = new int[2];
++    p.ay = new int[2];
++    int x = 3;
++    p.ax[0] = x;
++    p.ay[1] = 3 * x + y;
++    dummy();
++    return p.ax[0] * p.ay[1];
++  }
++
++  int test81(int y, int l, int i) {
++    Point p = new Point();
++    p.ax = new int[2];
++    p.ay = new int[2];
++    int x = 3;
++    p.ax[0] = x;
++    p.ay[1] = 3 * x + y;
++    dummy();
++    return p.ax[0] * p.ay[1];
++  }
++
++
++  int test44(int y) {
++    Point p1 = new Point();
++    p1.x = ival(3);
++    dummy();
++    p1.y = 3 * p1.x + y;
++    return p1.y;
++  }
++
++  int test43(int y) {
++    Point p1 = new Point();
++    if ( (y & 1) == 1 ) {
++      p1.x = ival(3);
++    } else {
++      p1.x = ival(5);
++    }
++    dummy();
++    p1.y = 3 * p1.x + y;
++    return p1.y;
++  }
++
++  int test42(int y) {
++    Point p1 = new Point();
++    p1.x = 3;
++    for (int i = 0; i < y; i++) {
++      if ( (i & 1) == 1 ) {
++        p1.x += 4;
++      }
++    }
++    p1.y = 3 * y + p1.x;
++    return p1.y;
++  }
++
++  int test40(int y) {
++    Point p1 = new Point();
++    if ( (y & 1) == 1 ) {
++      p1.x = 3;
++    } else {
++      p1.x = 5;
++    }
++    p1.y = 3 * p1.x + y;
++    return p1.y;
++  }
++
++  int test41(int y) {
++    Point p1 = new Point();
++    if ( (y & 1) == 1 ) {
++      p1.x += 4;
++    } else {
++      p1.x += 5;
++    }
++    p1.y = 3 * p1.x + y;
++    return p1.y;
++  }
++
++  Point test00(int y) {
++    int x = 3;
++    Point p = new Point();
++    p.x = x;
++    p.y = 3 * x + y;
++    return p;
++  }
++
++  Point test01(int y) {
++    int x = 3;
++    Point p = new Point();
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p;
++  }
++
++  Point test02(int y) {
++    int x = 3;
++    Point p1 = null;
++    for (int i = 0; i < y; i++) {
++      Point p2 = new Point();
++      p2.x = x;
++      p2.y = 3 * y + x;
++      p2.next = p1;
++      p1 = p2;
++    }
++    return p1;
++  }
++
++  Point test03(int y) {
++    int x = 3;
++    Point p1 = null;
++    for (int i = 0; i < y; i++) {
++      Point p2 = new Point();
++      p2.x = x;
++      p2.y = 3 * y + x;
++      p2.next = p1;
++      p1 = p2;
++    }
++    dummy();
++    return p1;
++  }
++
++  Point test04(int y) {
++    int x = 3;
++    Point p1 = null;
++    for (int i = 0; i < y; i++) {
++      Point p2 = new Point();
++      p2.x = x;
++      p2.y = 3 * y + x;
++      p2.next = p1;
++      dummy();
++      p1 = p2;
++    }
++    return p1;
++  }
++
++  int test05(int y) {
++    int x = 3;
++    Point p1 = new Point();
++    for (int i = 0; i < y; i++) {
++      Point p2 = new Point();
++      p2.x = x;
++      p2.y = 3 * y + x;
++      p1.next = p2;
++      p1 = p2;
++    }
++    return p1.y;
++  }
++
++  int test0(int y) {
++    int x = 3;
++    Point p = new Point();
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test1(int y) {
++    Point p = new Point();
++    if ( (y & 1) == 1 ) {
++      p = new Point(); // Kill previous
++    }
++    int x = 3;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test2(int y) {
++    Point p1 = new Point();
++    Point p2 = new Point();
++    p1.x = 3;
++    p2.x = 4;
++    p1.y = 3 * p2.x + y;
++    p2.y = 3 * p1.x + y;
++    dummy();
++    return p1.y * p2.y;
++  }
++
++  int test3(int y, Point p1) {
++    Point p2 = new Point();
++    p1.x = 3;
++    p2.x = 4;
++    p1.y = 3 * p2.x + y;
++    p2.y = 3 * p1.x + y;
++    dummy();
++    return p1.y * p2.y;
++  }
++
++  int test4(int y) {
++    Point p1 = new Point();
++    Point p2 = new Point();
++    if ( (y & 1) == 1 ) {
++      p1.x = 3;
++      p2.x = 4;
++    } else {
++      p1.x = 5;
++      p2.x = 6;
++    }
++    p1.y = 3 * p2.x + y;
++    p2.y = 3 * p1.x + y;
++    dummy();
++    return p1.y * p2.y;
++  }
++
++  int test5(int y, Point p1) {
++    Point p2 = new Point();
++    if ( (y & 1) == 1 ) {
++      p1.x = 3;
++      p2.x = 4;
++    } else {
++      p1.x = 5;
++      p2.x = 6;
++    }
++    p1.y = 3 * p2.x + y;
++    p2.y = 3 * p1.x + y;
++    dummy();
++    return p1.y * p2.y;
++  }
++
++  int test6(int y) {
++    Point p1 = new Point();
++    Point p2 = new Point();
++    p1.next = p2;
++    if ( (y & 1) == 1 ) {
++      p1.x = 3;
++      p1.getNext().x = 4;
++    } else {
++      p1.x = 5;
++      p1.getNext().x = 6;
++    }
++    p1.y = 3 * p2.x + y;
++    p2.y = 3 * p1.x + y;
++    dummy();
++    return p1.y * p2.y;
++  }
++
++  int test7(int y, Point p1) {
++    Point p2 = new Point();
++    p1.next = p2;
++    if ( (y & 1) == 1 ) {
++      p1.x = 3;
++      p1.getNext().x = 4;
++    } else {
++      p1.x = 5;
++      p1.getNext().x = 6;
++    }
++    p1.y = 3 * p2.x + y;
++    p2.y = 3 * p1.x + y;
++    dummy();
++    return p1.y * p2.y;
++  }
++
++  int test8(int y, int l, int i) {
++    Point p = new Point();
++    p.ax = new int[l];
++    p.ay = new int[l];
++    int x = 3;
++    p.ax[i] = x;
++    p.ay[i] = 3 * x + y;
++    dummy();
++    return p.ax[i] * p.ay[i];
++  }
++
++  int test9(int y, int l, int i) {
++    Point p = new Point();
++    p.pax = new Point[l];
++    p.pay = new Point[l];
++    p.pax[i] = new Point();
++    p.pay[i] = new Point();
++    p.pax[i].x = 3;
++    p.pay[i].x = 4;
++    p.pax[i].y = 3 * p.pay[i].x + y;
++    p.pay[i].y = 3 * p.pax[i].x + y;
++    dummy();
++    return p.pax[i].y * p.pay[i].y;
++  }
++
++  int test10(int y, int l, int i, Class cls) {
++    Point p = new Point();
++    try {
++      p.pax = (Point[])Array.newInstance(cls, l);
++      p.pax[i] = (Point)cls.newInstance();
++    }
++    catch(java.lang.InstantiationException ex) {
++      return 0;
++    }
++    catch(java.lang.IllegalAccessException ex) {
++      return 0;
++    }
++    p.pax[i].x = 3;
++    p.pax[i].y = 3 * p.pax[i].x + y;
++    dummy();
++    return p.pax[i].x * p.pax[i].y;
++  }
++
++  int test11(int y) {
++    Point p1 = new Point();
++    Point p2 = new Point();
++    p1.next = p2;
++    if ( (y & 1) == 1 ) {
++      p1.x = 3;
++      p1.next.x = 4;
++    } else {
++      p1.x = 5;
++      p1.next.x = 6;
++    }
++    p1.y = 3 * p1.next.x + y;
++    p1.next.y = 3 * p1.x + y;
++    dummy();
++    return p1.y * p1.next.y;
++  }
++
++  int test12(int y) {
++    Point p1 = new Point();
++    p1.next = p1;
++    if ( (y & 1) == 1 ) {
++      p1.x = 3;
++      p1.next.x = 4;
++    } else {
++      p1.x = 5;
++      p1.next.x = 6;
++    }
++    p1.y = 3 * p1.next.x + y;
++    p1.next.y = 3 * p1.x + y;
++    dummy();
++    return p1.y * p1.next.y;
++  }
++
++
++  public static void main(String args[]) {
++    Test tsr    = new Test();
++    Point p     = new Point();
++    Point ptmp  = p;
++    Class cls   = Point.class;
++    int y = 0;
++    for (int i=0; i<10000; i++) {
++      ptmp.next = tsr.test00(1);
++      ptmp.next = tsr.test01(1);
++      ptmp.next = tsr.test02(1);
++      ptmp.next = tsr.test03(1);
++      ptmp.next = tsr.test04(1);
++
++      y = tsr.test05(1);
++
++      y = tsr.test80(y, 1, 0);
++      y = tsr.test81(y, 1, 0);
++
++      y = tsr.test44(y);
++      y = tsr.test43(y);
++      y = tsr.test42(y);
++      y = tsr.test40(y);
++      y = tsr.test41(y);
++
++      y = tsr.test0(y);
++      y = tsr.test1(y);
++      y = tsr.test2(y);
++      y = tsr.test3(y, p);
++      y = tsr.test4(y);
++      y = tsr.test5(y, p);
++      y = tsr.test6(y);
++      y = tsr.test7(y, p);
++      y = tsr.test8(y, 1, 0);
++      y = tsr.test9(y, 1, 0);
++      y = tsr.test10(y, 1, 0, cls);
++      y = tsr.test11(y);
++      y = tsr.test12(y);
++    }
++    for (int i=0; i<10000; i++) {
++      ptmp.next = tsr.test00(1);
++      ptmp.next = tsr.test01(1);
++      ptmp.next = tsr.test02(1);
++      ptmp.next = tsr.test03(1);
++      ptmp.next = tsr.test04(1);
++
++      y = tsr.test05(1);
++
++      y = tsr.test80(y, 1, 0);
++      y = tsr.test81(y, 1, 0);
++
++      y = tsr.test44(y);
++      y = tsr.test43(y);
++      y = tsr.test42(y);
++      y = tsr.test40(y);
++      y = tsr.test41(y);
++
++      y = tsr.test0(y);
++      y = tsr.test1(y);
++      y = tsr.test2(y);
++      y = tsr.test3(y, p);
++      y = tsr.test4(y);
++      y = tsr.test5(y, p);
++      y = tsr.test6(y);
++      y = tsr.test7(y, p);
++      y = tsr.test8(y, 1, 0);
++      y = tsr.test9(y, 1, 0);
++      y = tsr.test10(y, 1, 0, cls);
++      y = tsr.test11(y);
++      y = tsr.test12(y);
++    }
++    for (int i=0; i<10000; i++) {
++      ptmp.next = tsr.test00(1);
++      ptmp.next = tsr.test01(1);
++      ptmp.next = tsr.test02(1);
++      ptmp.next = tsr.test03(1);
++      ptmp.next = tsr.test04(1);
++
++      y = tsr.test05(1);
++
++      y = tsr.test80(y, 1, 0);
++      y = tsr.test81(y, 1, 0);
++
++      y = tsr.test44(y);
++      y = tsr.test43(y);
++      y = tsr.test42(y);
++      y = tsr.test40(y);
++      y = tsr.test41(y);
++
++      y = tsr.test0(y);
++      y = tsr.test1(y);
++      y = tsr.test2(y);
++      y = tsr.test3(y, p);
++      y = tsr.test4(y);
++      y = tsr.test5(y, p);
++      y = tsr.test6(y);
++      y = tsr.test7(y, p);
++      y = tsr.test8(y, 1, 0);
++      y = tsr.test9(y, 1, 0);
++      y = tsr.test10(y, 1, 0, cls);
++      y = tsr.test11(y);
++      y = tsr.test12(y);
++    }
++
++    int z = 0;
++    y = tsr.test80(0, 1, 0);
++    z += y;
++    System.out.println("After 'test80' y=" + y);
++    y = tsr.test81(0, 1, 0);
++    z += y;
++    System.out.println("After 'test81' y=" + y);
++
++    y = tsr.test44(0);
++    z += y;
++    System.out.println("After 'test44' y=" + y);
++    y = tsr.test43(0);
++    z += y;
++    System.out.println("After 'test43' y=" + y);
++    y = tsr.test42(0);
++    z += y;
++    System.out.println("After 'test42' y=" + y);
++    y = tsr.test40(0);
++    z += y;
++    System.out.println("After 'test40' y=" + y);
++    y = tsr.test41(0);
++    z += y;
++    System.out.println("After 'test41' y=" + y);
++
++    ptmp.next = tsr.test00(1);
++    z += y;
++    System.out.println("After 'test00' p.y=" + ptmp.next.y);
++    ptmp.next = tsr.test01(1);
++    z += y;
++    System.out.println("After 'test01' p.y=" + ptmp.next.y);
++    ptmp.next = tsr.test02(1);
++    z += y;
++    System.out.println("After 'test02' p.y=" + ptmp.next.y);
++    ptmp.next = tsr.test03(1);
++    z += y;
++    System.out.println("After 'test03' p.y=" + ptmp.next.y);
++    ptmp.next = tsr.test04(1);
++    z += y;
++    System.out.println("After 'test04' p.y=" + ptmp.next.y);
++
++    y = tsr.test05(1);
++    z += y;
++    System.out.println("After 'test05' y=" + y);
++
++    y = tsr.test0(0);
++    z += y;
++    System.out.println("After 'test0' y=" + y);
++    y = tsr.test1(0);
++    z += y;
++    System.out.println("After 'test1' y=" + y);
++    y = tsr.test2(0);
++    z += y;
++    System.out.println("After 'test2' y=" + y);
++    y = tsr.test3(0, new Point());
++    z += y;
++    System.out.println("After 'test3' y=" + y);
++    y = tsr.test4(0);
++    z += y;
++    System.out.println("After 'test4' y=" + y);
++    y = tsr.test5(0, new Point());
++    z += y;
++    System.out.println("After 'test5' y=" + y);
++    y = tsr.test6(0);
++    z += y;
++    System.out.println("After 'test6' y=" + y);
++    y = tsr.test7(0, new Point());
++    z += y;
++    System.out.println("After 'test7' y=" + y);
++    y = tsr.test8(0, 1, 0);
++    z += y;
++    System.out.println("After 'test8' y=" + y);
++    y = tsr.test9(0, 1, 0);
++    z += y;
++    System.out.println("After 'test9' y=" + y);
++    y = tsr.test10(0, 1, 0, cls);
++    z += y;
++    System.out.println("After 'test10' y=" + y);
++    y = tsr.test11(0);
++    z += y;
++    System.out.println("After 'test11' y=" + y);
++    y = tsr.test12(0);
++    z += y;
++    System.out.println("After 'test12' y=" + y);
++    System.out.println("Sum of y =" + z);
++  }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6695810/Test.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6695810/Test.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,56 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ *
++ */
++
++/*
++ * @test
++ * @bug 6695810
++ * @summary null oop passed to encode_heap_oop_not_null
++ * @run main/othervm -Xbatch Test
++ */
++
++public class Test {
++    Test _t;
++
++    static void test(Test t1, Test t2) {
++        if (t2 != null)
++            t1._t = t2;
++
++        if (t2 != null)
++            t1._t = t2;
++    }
++
++    public static void main(String[] args) {
++        Test t = new Test();
++        for (int i = 0; i < 50; i++) {
++            for (int j = 0; j < 100; j++) {
++                test(t, t);
++            }
++            test(t, null);
++        }
++        for (int i = 0; i < 10000; i++) {
++            test(t, t);
++        }
++        test(t, null);
++    }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6700047/Test6700047.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6700047/Test6700047.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,60 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ */
++
++/**
++ * @test
++ * @bug 6700047
++ * @summary C2 failed in idom_no_update
++ * @run main Test6700047
++ */
++
++public class Test6700047 {
++    public static void main(String[] args) {
++        for (int i = 0; i < 100000; i++) {
++            intToLeftPaddedAsciiBytes();
++        }
++    }
++
++    public static int intToLeftPaddedAsciiBytes() {
++        int offset = 40;
++        int q;
++        int r;
++        int         i   = 100;
++        int result = 1;
++        while (offset > 0) {
++            q = (i * 52429);
++            r = i;
++            offset--;
++            i = q;
++            if (i == 0) {
++                break;
++            }
++        }
++        if (offset > 0) {
++            for(int j = 0; j < offset; j++) {
++                result++;
++            }
++        }
++        return result;
++    }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6712835/Test6712835.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6712835/Test6712835.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,1578 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ */
++
++/**
++ * @test
++ * @bug 6712835
++ * @summary Server compiler fails with assertion (loop_count < K,"infinite loop in PhaseIterGVN::transform")
++ * @run main/othervm -Xcomp Test6712835
++ */
++
++/* Complexity upper bound: 349851 ops */
++
++abstract class Tester_Class_0 {
++    boolean var_1 = true;
++    static double var_2;
++    float var_3 = 1.8301116E38F;
++    final String var_4 = "wck";
++    final static short var_5 = 25624;
++
++
++    public Tester_Class_0()
++    {
++        var_2 = (byte)1.7374809293839066E308;
++        {
++            double var_18 = false ? 8027040614338917376L * var_3 + - (var_2 = var_5) : (var_3 += (char)4.491494085158084E307);
++            var_3 *= ~ ((byte)702579792) / 6600332715431236608L;
++            long var_19 = 0L;
++            var_18 -= 1759091496;
++            do
++            {
++                final long var_20 = (new long[(byte)(var_3 += + +1.6695243696502334E308)][(byte)((byte)1110410742 | ~var_19)])[var_1 & var_1 ? (byte)1047514041090199552L : (byte)var_5][(byte)(var_1 ? 123309551 : - ((byte)5932930312361050112L))];
++                var_19++;
++                final short var_21 = var_5;
++            } while (var_19 < 1 && var_1 ^ var_3 == + ((byte)var_5));
++            {
++                int var_22;
++            }
++            {
++                var_4.endsWith("o");
++            }
++            int var_23 = 0;
++            var_1 &= (var_1 = true);
++            for (byte var_24 = 26; (var_1 = !var_1) && var_23 < 1; var_18 += var_1 ^ (var_1 |= false) ^ true ? var_24 : (byte)1504077779675035648L)
++            {
++                var_18 *= var_23;
++                var_23++;
++                float var_25;
++                (((new Tester_Class_0[var_24][var_24][var_24])[var_24])[var_24 >>= var_19][var_24 &= 6702582681202665472L]).var_3 *= var_5;
++            }
++            var_1 = (var_3 -= var_5) > (byte)func_2(1317089759, var_5, (byte)var_19) % (false & true ? 475183200 : 8947159119888251904L);
++            var_18 /= ~var_19 ^ ((byte)(var_18 %= (int)var_5) >= 6773554922270913536L ? (byte)var_5 : (byte)'u');
++            var_3 = ~ ((byte)var_19);
++        }
++        double var_26 = 0;
++        var_1 &= (var_1 |= ! (var_1 |= true));
++        while (var_26 < 1)
++        {
++            var_2 = 'e';
++            var_26++;
++            var_1 ^= !true | 'j' * ((var_2 = 93384362) + var_5) <= var_5;
++            var_2 = true ? 2056852215 : var_5;
++        }
++        switch ((new char[(byte)var_3])[(byte)(short)var_4.charAt(438929928)] / (new byte[(byte)1779353916050551808L][(byte)+ ~8903539475459755008L])[(byte)836413337621087232L][(byte)784406244])
++        {
++            case 101:
++                var_3 -= var_5;
++                break;
++
++            case 'L':
++
++            case 20:
++                final int var_27 = 2146473580;
++                break;
++
++            case 18:
++
++            default:
++                "mwh".substring((byte)(float)'A' % var_5, ']' | var_5 ^ ~ ((byte)'E'));
++                break;
++
++            case 'H':
++
++        }
++        var_3 = var_5;
++        long var_28;
++        var_28 = (var_1 = 'u' != (var_3 = var_1 ? 1384770002488557568L : ~ ~6691557565676772352L)) ? - ((byte)938410603) : var_5;
++        ((new Tester_Class_0[(byte)var_26])[(byte)'w']).var_3 = (byte)(short)'I';
++        var_2 = (var_1 ^= "sfltwylm".startsWith("ytmeds")) ? 1837260339 * 434565574 : (new double[(byte)var_26])[(byte)var_3];
++    }
++
++
++
++    public boolean equals(Object obj)
++    {
++        var_2 = 785819716 / 'i';
++        switch ((! (var_1 ^= var_1) ^ (! ((false | (var_1 |= var_1)) ^ !false) ? false : (var_1 |= !false)) ? var_1 : ! !var_1 ^ var_1) ? 1426689390 : var_5 * var_5)
++        {
++            case '`':
++
++            case 89:
++
++            case 13:
++                char var_9 = 'W';
++                break;
++
++            case 31:
++
++            case 15:
++
++            case 'm':
++                var_1 &= var_1;
++                break;
++
++            case 'Z':
++
++            case 34:
++                String[] var_10 = (new String[(byte)5534253842608756736L][(byte)'M'])[(byte)8717534666212195328L];
++                break;
++
++            case 124:
++
++        }
++        var_3 += var_5;
++        var_1 |= (var_1 |= (var_1 = (var_1 |= var_5 >= (var_2 = (byte)var_3))));
++        var_1 ^= (var_1 = var_4.endsWith(new String()));
++        var_2 = (var_3 %= 664966429);
++        {
++            var_4.lastIndexOf((int)('i' * (! !true & (true & !var_1) ? (byte)2.2562587635371023E307 : (byte)(var_3 %= var_3)) / var_3), 'P' % (false ? (byte)'N' : (byte)943393108));
++        }
++        var_3 /= false | ! !var_1 ? (char)1.3721055E38F : '\\';
++        if (var_1)
++        {
++            var_4.compareTo("uaqmqwg");
++        }
++        else
++        {
++            var_1 ^= var_1 & (var_1 &= (var_1 ^= (var_1 ^= var_1)));
++        }
++        var_3 *= (new int[(byte)1980200282][(byte)'i'])[(byte)(var_2 = (byte)'O')][false ? (byte)2.4739911E38F : (byte)- ((byte)1.6045903096088714E308)];
++        var_1 = var_5 != (byte)var_5 & (1.5002759009669559E308 < (byte)5110733568033040384L ^ (var_1 ? (var_1 ^= true) : var_1));
++        long var_11;
++        return (var_2 = (byte)'B') < 550125954;
++    }
++
++
++    public static char func_0(final int arg_0, long[] arg_1, final boolean arg_2)
++    {
++        var_2 = (short)(false ? (byte)1.2577737E38F : (byte)'t');
++        "xdf".codePointBefore((!arg_2 ? (byte)1426638765 : (byte)541094055) * ((byte)var_5 / var_5));
++        ((new Tester_Class_0[(byte)(short)(var_2 = 'A')])[(byte)arg_0]).var_3 = 7823141134226481152L;
++        ((new Tester_Class_0[(byte)- ~1368497135389664256L])[!false || true ? (byte)2.5393905E38F : (byte)2.4415902E38F]).var_3 -= (int)(false ? (byte)var_5 : (byte)"musnlk".charAt(785792957));
++        ((new Tester_Class_0[(byte)357672172])[(byte)7.709380171237795E307]).var_3 = arg_0;
++        ((new Tester_Class_0[(byte)var_5])[(byte)('Z' / + + -2.6037312E38F)]).var_3 %= arg_2 ? + - - + - + +4.6761156E37F : (byte)- (var_2 = - - ~3113191255384341504L);
++        (("exseqpham" + "uigdxg").equalsIgnoreCase("oeutvibnv") ? "l" : "qra").replace(false ^ true ? 't' : "jwpf".charAt(+ ((byte)arg_0)), 6.624090730243228E307 > 2.7771497E38F ? 't' : "tcfesyg".charAt(arg_0));
++        ((new Tester_Class_0[(byte)arg_0][(byte)6943189372481268736L])[(byte)2.6713643513095145E307][(byte)var_5]).var_1 &= !"ipgqq".endsWith("aecnyvpmf");
++        ((new Tester_Class_0[(byte)(+ +2158971337956592640L ^ var_5)])[false ? (byte)8594725249859841024L : (byte)var_5]).var_3 = (byte)"jd".charAt((byte)1.6298661301128909E307 << (byte)'B');
++        var_2 = (float)1014982842 * (byte)var_5 * ((new Tester_Class_0[(byte)2.7842814E38F])[(byte)"n".charAt('e' ^ (byte)arg_0)]).var_3;
++        if (false)
++        {
++            ((new Tester_Class_0[(byte)8.702990410251979E307][(byte)8.865924E37F])[(byte)var_5][(byte)+ ((long)var_5)]).var_1 ^= arg_2;
++        }
++        else
++        {
++            ((new Tester_Class_0[(byte)('I' | var_5)])[(byte)('L' + (+ - - (var_2 = 'N') + 1.324025E38F))]).var_3 = var_5 % '[' + (byte)var_5;
++        }
++        ((new Tester_Class_0[(byte)7.41761E37F][(byte)(var_2 = var_5)])[(byte)var_5][(byte)'o']).var_1 &= false;
++        ((new Tester_Class_0[(byte)+ ((byte)7.9065203E37F)])[(byte)var_5]).var_1 ^= 630582880 > - (var_2 = var_5);
++        return 'K';
++    }
++
++    protected float func_1(int arg_0, final Object arg_1, Object arg_2)
++    {
++        var_1 ^= (var_1 ^= true) & !var_1;
++        {
++            var_3 -= var_3;
++            var_2 = var_1 && (var_1 &= ! !true) | + ~3353396000385141760L < 7949306917320622080L ? (byte)306954754 : (byte)var_5;
++            final long var_12 = 1048994076885686272L;
++        }
++        short var_13 = 8706;
++        byte var_14 = (new byte[(byte)6.697464316212731E307])[(byte)var_4.indexOf("clbr", (byte)var_5 + 'F')];
++        ((new Tester_Class_0[var_14][var_14 &= 'b'])[var_14][var_14]).var_1 |= var_14 >= var_3;
++        (((new String[var_14][var_14])[var_14])[var_14]).codePointAt(585064460);
++        var_14 -= 2121015302;
++        var_2 = 1.241922E38F;
++        {
++            (((new Tester_Class_0[var_14][var_14 ^= 'y'])[var_14])[var_14 |= var_14]).var_3 *= 5756647686007829504L;
++        }
++        {
++            var_13--;
++        }
++        double var_15;
++        var_1 = (var_1 = true) ? false : true;
++        arg_0--;
++        return var_3;
++    }
++
++    public final static short func_2(int arg_0, final short arg_1, byte arg_2)
++    {
++        arg_0 %= (((new Tester_Class_0[arg_2][arg_2])[arg_2++][--arg_2]).var_1 |= true) ? 'e' : var_5 >>> arg_2;
++        float var_16 = ((false ? ~3951083684045828096L >>> - -3880809660598466560L : arg_0) ^ arg_1) - 1.1257035E37F;
++        var_2 = var_5 + 3.3679594E38F;
++        arg_2 += true & (((new Tester_Class_0[arg_2])[arg_2 *= 4301185995603340288L]).var_1 = arg_1 != arg_1) ? (var_2 = arg_0) : 988311987505040384L + ']' >>> --arg_2;
++        arg_2 = arg_2;
++        var_16 /= (arg_2 += (arg_0 += (var_16 %= arg_2)) + (var_16 -= arg_2));
++        var_16 += 7416220016668043264L;
++        ((new Tester_Class_0[arg_2])[arg_2]).var_1 &= false;
++        ((new Tester_Class_0[--arg_2])[--arg_2]).var_1 = true | (true & true ? true : false);
++        arg_2 -= (var_2 = 7997355759027275776L);
++        ((new Tester_Class_0[arg_2])[arg_2 %= 8660960251961819136L]).var_3 *= 4180634858198604800L;
++        arg_0 /= -1.3063173E38F;
++        var_2 = arg_2;
++        var_2 = (6266377813429248L ^ 'j') / (!false & (1.1423139843154216E308 >= (var_2 = arg_2) || (((new Tester_Class_0[arg_2])[arg_2]).var_1 ^= true)) ? (short)('e' * arg_0) : var_5);
++        --arg_0;
++        var_2 = (+ - ~8598445599816821760L << arg_1) % 1890075208 & (!true & !true ^ false & false ? 'w' : 'm') % (5614521287604667392L / arg_2) & ~193105176465084416L;
++        arg_2 &= (arg_2 |= arg_0) ^ ((((new Tester_Class_0[arg_2][arg_2])[arg_2])[arg_2]).var_1 ? arg_2 : (new long[arg_2])[arg_2]);
++        ((new Tester_Class_0[arg_2 &= 'V'][arg_2])[arg_2 /= 5486057194586717184L][arg_2 %= var_16]).var_1 |= (new boolean[((new Tester_Class_0[arg_2])[arg_2]).var_1 ? arg_2 : arg_2])[arg_2];
++        return ((((new Tester_Class_0[arg_2][arg_2][arg_2])[--arg_2])[arg_2 |= arg_2][arg_2 %= 6782653882738869248L]).var_1 ? false : !true | "hopq".equalsIgnoreCase("wvm") | "qmhtjvm".endsWith("gewqas")) && ! !false & false ? arg_1 : arg_1;
++    }
++
++    protected final static char func_3(byte arg_0, final int arg_1, final short arg_2, long[] arg_3)
++    {
++        ((new Tester_Class_0[arg_0 ^= 1902924521091955712L])[arg_0]).var_1 &= ((((new Tester_Class_0[arg_0][arg_0])[--arg_0])[arg_0 *= - -1.0959788E38F]).var_1 = false);
++        {
++            var_2 = (new float[arg_0][(byte)1082004329])[arg_0][arg_0 <<= 'T'];
++        }
++        ((new Tester_Class_0[arg_0 >>= arg_1][arg_0])[arg_0][arg_0]).var_1 |= ((new Tester_Class_0[arg_0])[--arg_0]).var_4.startsWith(((new Tester_Class_0[arg_0])[arg_0]).var_4);
++        ((new Tester_Class_0[(byte)var_5])[arg_0]).var_4.substring(273513722, 'f' * 'n').substring((new short[arg_0][arg_0])[arg_0][arg_0] % 'C' >> (arg_3[arg_0] - 's') % ("".charAt(arg_1) & var_5));
++        var_2 = 'Q' + (char)arg_0;
++        {
++            ((new Tester_Class_0[++arg_0])[arg_0]).var_1 ^= !true || !true ? !false ^ false : ! (1.7030813E38F != ~arg_0);
++        }
++        {
++            "jbdu".indexOf(((new Tester_Class_0[arg_0 *= 2628674024589069312L])[arg_0 -= arg_1]).var_4, "gqglwwbab".charAt(~arg_0) >>> 'M');
++        }
++        {
++            --arg_0;
++        }
++        ((new Tester_Class_0[arg_0])[arg_0]).var_1 = 'n' == ('t' | (+9156142987836739584L | 's')) - 2915339344736463872L;
++        int var_17;
++        var_17 = 'k';
++        var_17 = (((new Tester_Class_0[arg_0])[arg_0]).var_1 &= false) ? (short)'q' : arg_2;
++        return '`';
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_0.var_5 = "; result += Test6712835.Printer.print(var_5);
++        result += "\n";
++        result += "Tester_Class_0.var_4 = "; result += Test6712835.Printer.print(var_4);
++        result += "\n";
++        result += "Tester_Class_0.var_1 = "; result += Test6712835.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_0.var_2 = "; result += Test6712835.Printer.print(var_2);
++        result += "\n";
++        result += "Tester_Class_0.var_3 = "; result += Test6712835.Printer.print(var_3);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++final class Tester_Class_1 extends Tester_Class_0 {
++    final boolean var_29 = false;
++    static short var_30;
++    Tester_Class_0 var_31;
++
++
++    public Tester_Class_1()
++    {
++        new String();
++        byte var_43 = (var_1 ? var_29 : var_1) ? (byte)(~ ~ ~6520122970162626560L | ~6642750731731981312L) : (byte)(var_30 = var_5);
++        {
++            var_2 = Tester_Class_0.var_5;
++        }
++        ((Tester_Class_0)(new Object[var_43])[var_43]).var_1 = var_29;
++        var_43 += 512311665;
++    }
++
++
++
++
++    final int func_0()
++    {
++        Tester_Class_0.var_2 = var_29 ? (var_29 ? (byte)'D' : (byte)Tester_Class_0.var_5) : (!var_1 ^ var_1 | (var_1 ^= var_1) ? (byte)'J' : (byte)51510881);
++        new String();
++        new String();
++        new String();
++        return 1731501229;
++    }
++
++    private final static void func_1(final String arg_0, final Object arg_1)
++    {
++        long var_32 = ((new Tester_Class_1[(byte)37719380])['I' == Tester_Class_0.var_5 + Tester_Class_0.var_5 ? (byte)(var_30 = (byte)1.3043569561522328E308) : (byte)1.1111420042091164E308]).var_1 ? ~2569063513521638400L - Tester_Class_0.var_5 ^ 'm' : 660383226;
++        ((Tester_Class_0)arg_1).var_3 += (char)8417109805993570304L;
++        var_30 = var_5;
++        var_2 = (new byte[(byte)2102078692])[(byte)7.942050823719592E307];
++        if (((new Tester_Class_1[(byte)224717297])[(byte)2889830453578512384L]).var_1)
++        {
++            Tester_Class_0.var_2 = (new byte[(byte)'C'])[(byte)Tester_Class_0.var_5];
++        }
++        else
++        {
++            var_32 <<= 'u';
++        }
++        Tester_Class_0.var_2 = Tester_Class_0.var_5;
++        final Object var_33 = arg_1;
++        final byte var_34 = 40;
++        ++var_32;
++        (((new Tester_Class_1[var_34][var_34])[var_34][var_34]).var_31 = ((new Tester_Class_0[var_34][var_34])[var_34])[var_34]).var_1 ^= (((new Tester_Class_1[var_34][var_34])[var_34][var_34]).var_31 = (Tester_Class_0)var_33).var_1;
++        ((new Tester_Class_1[var_34])[var_34]).var_31 = (((new Tester_Class_1[var_34])[((new Tester_Class_1[var_34][var_34])[var_34][var_34]).var_1 ? var_34 : var_34]).var_31 = (((new Tester_Class_1[(byte)2.4941036E38F])[var_34]).var_31 = (Tester_Class_0)arg_1));
++    }
++
++    public static int[][] func_2(long arg_0, final float arg_1, short arg_2, final double arg_3)
++    {
++        long var_35;
++        {
++            arg_0++;
++            var_2 = true ? (byte)9.691601510156328E307 : (byte)"a".charAt(~ ((byte)arg_1));
++            if (((new Tester_Class_1[(byte)'\\'][(byte)arg_2])[(byte)arg_2][(byte)arg_0]).var_29)
++            {
++                arg_2++;
++            }
++            else
++            {
++                Tester_Class_0.var_2 = arg_2;
++                var_30 = arg_2;
++                Tester_Class_0.var_2 = arg_0;
++            }
++            arg_2 /= 157487965;
++            arg_2 -= func_2(~ ((byte)arg_0), (short)arg_3, (byte)+2.2503214E38F);
++        }
++        arg_0--;
++        double var_36;
++        arg_0 <<= (arg_0 >>= (arg_0 = 'O'));
++        {
++            arg_0++;
++            --arg_0;
++        }
++        --arg_2;
++        ++arg_2;
++        "gbcrkn".length();
++        var_30 = (short)7.14672E37F;
++        {
++            arg_0 %= (arg_0 >>= (arg_2 *= (byte)1.5835087622116814E308)) % arg_3;
++            var_36 = 'n';
++            int[][] var_37 = new int[(byte)(double)arg_0][(byte)(arg_2 >>= 'o')];
++            if ((byte)1390907656194158592L <= arg_2)
++            {
++                "uuoeps".indexOf("", 899321600);
++            }
++            else
++            {
++                var_36 = - ~ -arg_0;
++            }
++            short var_38 = var_5;
++            var_36 = ~arg_0 + (6482428938632186880L + 6995927649252739072L);
++        }
++        if (((new Tester_Class_1[(byte)arg_1][(byte)arg_2])[(new byte[(byte)arg_0])[(byte)var_5]][(byte)'s']).var_1 = false)
++        {
++            ++arg_0;
++        }
++        else
++        {
++            ((new Tester_Class_1[(byte)2.7176027E38F])[(byte)((arg_2 -= 2.595396436487417E307) % 'p')]).var_1 ^= ((new Tester_Class_1[(byte)4.393706E36F])[false ? (byte)4826960994531808256L : (byte)arg_0]).var_29;
++        }
++        int var_39 = 0;
++        arg_2 <<= 'Y';
++        while (var_39 < 1 && false)
++        {
++            arg_0++;
++            var_39++;
++            Object var_40;
++            ((Tester_Class_0)(var_40 = new long[(byte)3.285531E38F])).var_3 += var_39;
++        }
++        Object var_41;
++        "w".substring(1359453539);
++        return new int[(byte)((arg_2 /= 4.143015135482291E307) - 3.2659622E38F)][(byte)++arg_2];
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_1.var_5 = "; result += Test6712835.Printer.print(var_5);
++        result += "\n";
++        result += "Tester_Class_1.var_30 = "; result += Test6712835.Printer.print(var_30);
++        result += "\n";
++        result += "Tester_Class_1.var_4 = "; result += Test6712835.Printer.print(var_4);
++        result += "\n";
++        result += "Tester_Class_1.var_1 = "; result += Test6712835.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_1.var_29 = "; result += Test6712835.Printer.print(var_29);
++        result += "\n";
++        result += "Tester_Class_1.var_2 = "; result += Test6712835.Printer.print(var_2);
++        result += "\n";
++        result += "Tester_Class_1.var_3 = "; result += Test6712835.Printer.print(var_3);
++        result += "\n";
++        result += "Tester_Class_1.var_31 = "; result += Test6712835.Printer.print(var_31);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++final class Tester_Class_2 extends Tester_Class_0 {
++    static float var_44 = 2.7867988E38F;
++    static byte var_45;
++    static long var_46 = 4319798868443575296L;
++
++
++    public Tester_Class_2()
++    {
++        Tester_Class_1.var_30 = (byte)3.1718026E38F;
++        var_45 = (new byte[(byte)'o'])[var_45 = (byte)Tester_Class_0.var_5];
++        Tester_Class_1.var_30 = (Tester_Class_1.var_30 = Tester_Class_0.var_5);
++        if (true)
++        {
++            ++var_46;
++            boolean var_51 = false ? (var_1 &= !var_1) : true;
++            --var_46;
++            if (false)
++            {
++                var_3 *= 6.882788442363403E307;
++            }
++            else
++            {
++                Tester_Class_0.var_2 = '`';
++            }
++            final float var_52 = (var_1 ^= var_1 || (var_1 &= false)) | (var_51 |= (var_51 &= false)) ? (byte)4.751813848964725E307 : (var_3 *= var_5);
++            (false ? var_4 : var_4).startsWith("j" + var_4);
++            var_46++;
++            var_3 %= Tester_Class_1.var_5;
++        }
++        else
++        {
++            Tester_Class_1.var_30 = (var_45 = (var_45 = (var_45 = (byte)Tester_Class_1.var_5)));
++            Tester_Class_1.var_2 = (var_3 -= ~ ((byte)var_46) - 2018787280);
++            Tester_Class_1.var_30 = (Tester_Class_1.var_30 = (Tester_Class_1.var_30 = (Tester_Class_1.var_30 = var_5)));
++        }
++        char var_53;
++        ++var_46;
++        short var_54 = 138;
++        ++var_46;
++        var_2 = 1435782089;
++        Tester_Class_0.var_2 = var_46;
++    }
++
++
++
++
++    protected final boolean func_0(final boolean arg_0, final boolean arg_1)
++    {
++        var_2 = 2.6153986361247174E307;
++        var_45 = (var_45 = (var_45 = (var_45 = (var_45 = (byte)(var_44 += var_46)))));
++        var_46++;
++        long var_47 = 0L;
++        var_3 -= + ((byte)(~var_46 * ~var_46 ^ var_46 % 1910419567));
++        do
++        {
++            ++var_46;
++            var_47++;
++            char var_48 = 'b';
++        } while (var_47 < 2);
++        new Tester_Class_1().var_31 = ((new Tester_Class_1[var_45 = (byte)3.0853839E38F])[(new byte[var_45 = (byte)1.4974966426791287E308])[var_45 = (byte)Tester_Class_0.var_5]]).var_1 ? new Tester_Class_1() : new Tester_Class_1();
++        var_45 = (var_45 = (byte)var_44);
++        double var_49 = 0;
++        var_45 = (byte)(Tester_Class_1.var_30 = Tester_Class_0.var_5);
++        while (((false ^ (var_1 &= var_1) | (var_1 |= arg_0) ? new Tester_Class_1() : new Tester_Class_1()).var_29 ? var_1 : false && (var_1 ^= arg_0)) && (var_49 < 3 && (true ? new Tester_Class_1() : new Tester_Class_1()).var_1))
++        {
++            var_45 = (var_45 = (var_45 = (var_45 = (var_45 = (byte)1.933612E38F))));
++            var_49++;
++            var_45 = (var_45 = (var_45 = (var_45 = (byte)685709636)));
++            long var_50;
++        }
++        var_45 = (var_45 = (var_45 = (byte)var_5));
++        var_46--;
++        return true;
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_2.var_46 = "; result += Test6712835.Printer.print(var_46);
++        result += "\n";
++        result += "Tester_Class_2.var_2 = "; result += Test6712835.Printer.print(var_2);
++        result += "\n";
++        result += "Tester_Class_2.var_3 = "; result += Test6712835.Printer.print(var_3);
++        result += "\n";
++        result += "Tester_Class_2.var_44 = "; result += Test6712835.Printer.print(var_44);
++        result += "\n";
++        result += "Tester_Class_2.var_5 = "; result += Test6712835.Printer.print(var_5);
++        result += "\n";
++        result += "Tester_Class_2.var_45 = "; result += Test6712835.Printer.print(var_45);
++        result += "\n";
++        result += "Tester_Class_2.var_4 = "; result += Test6712835.Printer.print(var_4);
++        result += "\n";
++        result += "Tester_Class_2.var_1 = "; result += Test6712835.Printer.print(var_1);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++class Tester_Class_3 extends Tester_Class_0 {
++    static boolean var_55 = true;
++    short var_56;
++    char var_57 = (char)723612093;
++    final static byte var_58 = 118;
++    static float var_59 = true ? -2818156175448416256L : - - (Tester_Class_2.var_44 += var_58);
++    static Tester_Class_1 var_60;
++    byte var_61 = 112;
++    Tester_Class_2[] var_62;
++    static short var_63 = 19813;
++    static double var_64 = (var_55 = true) ? (Tester_Class_1.var_2 = 'M') : Tester_Class_2.var_46;
++
++
++    public Tester_Class_3()
++    {
++        var_56 = var_58;
++        Tester_Class_1 var_65 = var_60 = (var_60 = (var_60 = (new Tester_Class_1[var_61 |= '\\'])[(var_1 = true) || var_55 ? var_58 : var_61]));
++        var_64 /= 1253632965 * '`';
++        Tester_Class_2.var_46 >>>= var_58;
++        (((var_61 = var_58) * (var_55 ? 1641980027 : var_63) >= 1490788063 ? var_65 : var_65).var_29 ? var_65 : var_65).var_31 = (new Tester_Class_2[var_58])[var_58];
++        ++var_63;
++        new String();
++        var_64 += var_55 ? (var_61 >>>= 'Q') : (var_63 <<= var_57);
++        ((new Tester_Class_2().var_3 >= Tester_Class_2.var_46 ? !var_55 : var_4.startsWith(var_4, 586086925)) ? "gjsdhuop" : "juqrt").substring(("pm" + ((new Tester_Class_2[var_61][var_58])[var_58][var_58]).var_4).codePointBefore((~var_61 << 3032688286897486848L) - Tester_Class_1.var_5), (var_61 += 4.0796373033184064E306) >> (Tester_Class_2.var_46 >>> var_58));
++        var_63 -= (var_63 ^= var_57);
++        var_64 = var_5 - (Tester_Class_2.var_46 *= var_57);
++        Tester_Class_2.var_46 &= 7544159045139005440L;
++        var_55 |= false;
++        Tester_Class_2.var_46 = var_61;
++    }
++
++
++
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_3.var_57 = "; result += Test6712835.Printer.print(var_57);
++        result += "\n";
++        result += "Tester_Class_3.var_62 = "; result += Test6712835.Printer.print(var_62);
++        result += "\n";
++        result += "Tester_Class_3.var_2 = "; result += Test6712835.Printer.print(var_2);
++        result += "\n";
++        result += "Tester_Class_3.var_64 = "; result += Test6712835.Printer.print(var_64);
++        result += "\n";
++        result += "Tester_Class_3.var_3 = "; result += Test6712835.Printer.print(var_3);
++        result += "\n";
++        result += "Tester_Class_3.var_59 = "; result += Test6712835.Printer.print(var_59);
++        result += "\n";
++        result += "Tester_Class_3.var_5 = "; result += Test6712835.Printer.print(var_5);
++        result += "\n";
++        result += "Tester_Class_3.var_56 = "; result += Test6712835.Printer.print(var_56);
++        result += "\n";
++        result += "Tester_Class_3.var_63 = "; result += Test6712835.Printer.print(var_63);
++        result += "\n";
++        result += "Tester_Class_3.var_58 = "; result += Test6712835.Printer.print(var_58);
++        result += "\n";
++        result += "Tester_Class_3.var_61 = "; result += Test6712835.Printer.print(var_61);
++        result += "\n";
++        result += "Tester_Class_3.var_4 = "; result += Test6712835.Printer.print(var_4);
++        result += "\n";
++        result += "Tester_Class_3.var_1 = "; result += Test6712835.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_3.var_55 = "; result += Test6712835.Printer.print(var_55);
++        result += "\n";
++        result += "Tester_Class_3.var_60 = "; result += Test6712835.Printer.print(var_60);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++final class Tester_Class_4 {
++    static long var_66;
++    final long var_67 = 7113579489152300032L * 985636454;
++    int[] var_68;
++    Tester_Class_3 var_69;
++    final long var_70 = Tester_Class_2.var_46 <<= Tester_Class_1.var_5;
++    byte var_71 = Tester_Class_3.var_58;
++
++
++    public Tester_Class_4()
++    {
++        Tester_Class_2.var_46++;
++        (var_69 = new Tester_Class_3()).var_61 += (!true | (Tester_Class_3.var_55 ^= Tester_Class_3.var_55) ? new Tester_Class_3() : new Tester_Class_3()).var_61;
++        final String[][] var_79 = new String[var_71 >>= (Tester_Class_3.var_63 ^= 'm')][((Tester_Class_3)(new Tester_Class_1().var_31 = new Tester_Class_2())).var_61 >>= (var_71 >>>= (Tester_Class_2.var_46 += 465205188010511360L))];
++        ++(var_69 = (var_69 = (var_69 = (Tester_Class_3)(new Object[Tester_Class_3.var_58][var_71])[Tester_Class_3.var_58][var_71]))).var_61;
++        (((new Tester_Class_2[var_71][Tester_Class_3.var_58])[Tester_Class_2.var_45 = var_71])[var_71]).var_3 += (Tester_Class_2.var_46 <<= (Tester_Class_2.var_46 /= 9.03047405760868E307) >> (new Tester_Class_2().var_1 ? 2099696051 : Tester_Class_3.var_63));
++        Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = new Tester_Class_1())));
++        char var_80;
++        Tester_Class_3.var_64 += 355712574;
++        ++Tester_Class_2.var_46;
++    }
++
++
++
++
++    private final static Tester_Class_1 func_0(boolean arg_0, double arg_1)
++    {
++        Tester_Class_3.var_60 = (Tester_Class_3.var_60 = new Tester_Class_1());
++        byte var_72 = (byte)Tester_Class_2.var_46;
++        Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = new Tester_Class_1()))));
++        float var_73 = 0F;
++        "flfix".offsetByCodePoints((Tester_Class_3.var_63 ^= 3286104714651747328L) + ((Tester_Class_3)(new Tester_Class_0[var_72])[var_72]).var_61, Tester_Class_0.var_5 + Tester_Class_3.var_58);
++        while (var_73 < 2 && (false ? (Tester_Class_3.var_60 = new Tester_Class_1()) : (Tester_Class_1)(new Tester_Class_0[var_72])[var_72]).var_29)
++        {
++            ((Tester_Class_3)(Tester_Class_0)(new Object[var_72])[Tester_Class_3.var_58]).var_61 >>= ((new Tester_Class_4[var_72])[var_72]).var_67;
++            var_73++;
++            new String("blod");
++            --var_72;
++        }
++        ((new Tester_Class_4[Tester_Class_3.var_58][var_72])[new Tester_Class_3().var_61][Tester_Class_3.var_58]).var_69 = new Tester_Class_3();
++        float var_74 = (! ("dkcx".lastIndexOf(Tester_Class_1.var_5 >> - (var_72 >>>= 1433506903139345408L)) == Tester_Class_2.var_46) ? 'O' : 'e' - new Tester_Class_2().var_3) * ~ (var_72 ^= var_72);
++        Tester_Class_3.var_60 = !true ? new Tester_Class_1() : (new Tester_Class_1[Tester_Class_3.var_58])[var_72];
++        ((arg_0 &= Tester_Class_3.var_55 | (Tester_Class_3.var_60 = new Tester_Class_1()).var_29) ? (Tester_Class_3.var_60 = (Tester_Class_1)(new Tester_Class_1().var_31 = new Tester_Class_2())) : (Tester_Class_3.var_60 = (new Tester_Class_1[var_72])[Tester_Class_3.var_58])).var_31 = (new Tester_Class_3[var_72 |= 546982927])[Tester_Class_3.var_58];
++        long var_75 = 0L;
++        final double var_76 = +arg_1;
++        while (var_75 < 1)
++        {
++            short var_77;
++            var_75++;
++            new Tester_Class_3().var_57 = (false & true ? new Tester_Class_3() : new Tester_Class_3()).var_57;
++            (Tester_Class_3.var_60 = (new Tester_Class_1[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_31 = (new Tester_Class_2[Tester_Class_3.var_58][var_72])[var_72][var_72];
++        }
++        Tester_Class_3.var_64 *= (arg_0 ? (Tester_Class_3.var_55 ^= (arg_0 ^= arg_0)) & ! (Tester_Class_3.var_55 = arg_0) : arg_0) ^ new Tester_Class_1().var_29 ? ++((new Tester_Class_3[var_72][var_72])[(new byte[Tester_Class_3.var_58])[Tester_Class_3.var_58]][(((new Tester_Class_4[var_72][Tester_Class_3.var_58])[Tester_Class_3.var_58][Tester_Class_3.var_58]).var_69 = (new Tester_Class_3[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_61]).var_57 : 'C';
++        long var_78;
++        var_74 %= (Tester_Class_3.var_55 |= (arg_0 = (arg_0 ^= (arg_0 &= !arg_0)))) ? new Tester_Class_3().var_61 : (Tester_Class_3.var_63 ^= var_72);
++        arg_1 /= (Tester_Class_2.var_46 &= 'W');
++        --(((new Tester_Class_4[var_72])[var_72]).var_69 = (((new Tester_Class_4[var_72])[var_72]).var_69 = new Tester_Class_3())).var_61;
++        return (new Tester_Class_1[var_72][Tester_Class_3.var_58])[var_72][new Tester_Class_3().var_61];
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_4.var_68 = "; result += Test6712835.Printer.print(var_68);
++        result += "\n";
++        result += "Tester_Class_4.var_66 = "; result += Test6712835.Printer.print(var_66);
++        result += "\n";
++        result += "Tester_Class_4.var_67 = "; result += Test6712835.Printer.print(var_67);
++        result += "\n";
++        result += "Tester_Class_4.var_70 = "; result += Test6712835.Printer.print(var_70);
++        result += "\n";
++        result += "Tester_Class_4.var_71 = "; result += Test6712835.Printer.print(var_71);
++        result += "\n";
++        result += "Tester_Class_4.var_69 = "; result += Test6712835.Printer.print(var_69);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++final class Tester_Class_5 extends Tester_Class_0 {
++    static boolean var_81;
++    final int var_82 = 174395841;
++    int var_83;
++    byte var_84;
++    boolean var_85 = Tester_Class_3.var_55;
++    static boolean var_86 = Tester_Class_3.var_55;
++
++
++    public Tester_Class_5()
++    {
++        {
++            short var_87 = (new short[Tester_Class_3.var_58][var_84 = Tester_Class_3.var_58])[(((new Tester_Class_4[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_69 = (Tester_Class_3)(Tester_Class_0)(new Object[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_61][Tester_Class_3.var_58];
++            Tester_Class_4 var_88 = var_85 ^ (var_81 = false) ? (new Tester_Class_4[Tester_Class_3.var_58])[Tester_Class_3.var_58] : (new Tester_Class_4[Tester_Class_3.var_58])[Tester_Class_3.var_58];
++            {
++                ++var_87;
++            }
++            short var_89;
++            (var_88.var_69 = (new Tester_Class_3[var_88.var_71][var_88.var_71])[var_88.var_71][var_88.var_71]).var_61 += (((Tester_Class_2)(new Tester_Class_1().var_31 = new Tester_Class_2())).var_3 = Tester_Class_3.var_58);
++            var_88 = var_88;
++        }
++        {
++            ++Tester_Class_2.var_46;
++            --Tester_Class_2.var_46;
++        }
++        {
++            Tester_Class_2.var_46++;
++            Tester_Class_3.var_64 /= Tester_Class_3.var_59;
++            ((Tester_Class_4)(new Object[Tester_Class_2.var_45 = Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_71 %= (var_3 /= 3637233239489444864L);
++            ++Tester_Class_2.var_46;
++        }
++        new Tester_Class_3().var_57++;
++        var_85 &= (Tester_Class_3.var_55 |= false);
++        Tester_Class_3.var_60 = new Tester_Class_1();
++        Tester_Class_2.var_46++;
++        ((Tester_Class_3)(true ? (new Tester_Class_2[Tester_Class_3.var_58])[Tester_Class_3.var_58] : (new Tester_Class_0[Tester_Class_3.var_58])[Tester_Class_2.var_45 = Tester_Class_3.var_58])).var_57 *= ((new Tester_Class_3[Tester_Class_3.var_58])[(byte)'`']).var_57;
++        var_3 += (int)Tester_Class_3.var_59 ^ (Tester_Class_2.var_46 -= Tester_Class_2.var_46) % ~((new Tester_Class_4[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_71;
++        ++Tester_Class_2.var_46;
++        --Tester_Class_2.var_46;
++        var_83 = Tester_Class_3.var_58;
++    }
++
++
++
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_5.var_82 = "; result += Test6712835.Printer.print(var_82);
++        result += "\n";
++        result += "Tester_Class_5.var_83 = "; result += Test6712835.Printer.print(var_83);
++        result += "\n";
++        result += "Tester_Class_5.var_2 = "; result += Test6712835.Printer.print(var_2);
++        result += "\n";
++        result += "Tester_Class_5.var_3 = "; result += Test6712835.Printer.print(var_3);
++        result += "\n";
++        result += "Tester_Class_5.var_5 = "; result += Test6712835.Printer.print(var_5);
++        result += "\n";
++        result += "Tester_Class_5.var_84 = "; result += Test6712835.Printer.print(var_84);
++        result += "\n";
++        result += "Tester_Class_5.var_4 = "; result += Test6712835.Printer.print(var_4);
++        result += "\n";
++        result += "Tester_Class_5.var_1 = "; result += Test6712835.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_5.var_81 = "; result += Test6712835.Printer.print(var_81);
++        result += "\n";
++        result += "Tester_Class_5.var_85 = "; result += Test6712835.Printer.print(var_85);
++        result += "\n";
++        result += "Tester_Class_5.var_86 = "; result += Test6712835.Printer.print(var_86);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++class Tester_Class_6 extends Tester_Class_0 {
++    long var_90 = 8467263472031702016L;
++    final static int var_91 = 1648594448 * ']';
++    char var_92 = 'x';
++    short var_93 = Tester_Class_3.var_63;
++    Tester_Class_4 var_94;
++    String[] var_95;
++    static short var_96 = Tester_Class_3.var_63 -= 83376045 << 40225606;
++    final static double var_97 = 5.387227213380301E307;
++    final static short var_98 = Tester_Class_3.var_63 &= var_91;
++    byte var_99 = 44;
++
++
++    public Tester_Class_6()
++    {
++        (Tester_Class_3.var_60 = (Tester_Class_1)(new Object[Tester_Class_3.var_58][var_99])[Tester_Class_3.var_58][var_99]).var_31 = true | true ? (Tester_Class_5)(new Object[var_99])[Tester_Class_3.var_58] : (Tester_Class_5)(new Object[Tester_Class_3.var_58])[var_99];
++        var_92 &= 'p';
++        Tester_Class_5.var_81 = (((new Tester_Class_1[var_99][Tester_Class_3.var_58])[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_29;
++        {
++            {
++                ++Tester_Class_2.var_46;
++                Tester_Class_3.var_2 = var_98;
++                var_93 -= var_96;
++            }
++            Tester_Class_2.var_46--;
++            {
++                (var_5 == (((Tester_Class_3)(new Tester_Class_0[var_99])[Tester_Class_3.var_58]).var_61 /= var_5) ? "fsajxeuao".replace('s', 'K') : var_4).substring('e' >>> var_5).toLowerCase();
++            }
++            var_93 %= ((new Tester_Class_6[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_90;
++            var_93 /= var_93;
++            if (Tester_Class_5.var_86)
++            {
++                (var_94 = (new Tester_Class_4[var_99])[var_99]).var_69 = (new Tester_Class_3[var_99])[var_99 %= -var_90];
++            }
++            else
++            {
++                --var_96;
++            }
++            var_93 *= 'O';
++            final long var_103 = 7573900518735055872L;
++            --Tester_Class_3.var_63;
++        }
++        Tester_Class_3.var_64 /= var_93;
++        if (true)
++        {
++            --Tester_Class_2.var_46;
++            Tester_Class_5 var_104;
++            final double var_105 = Tester_Class_3.var_64 += Tester_Class_5.var_86 & (new Tester_Class_2().var_1 & ((Tester_Class_3.var_55 = (var_1 ^= Tester_Class_5.var_86) & false) & (Tester_Class_5.var_81 = Tester_Class_5.var_86))) ? (byte)'g' : var_99;
++            Tester_Class_3.var_64 *= var_99;
++        }
++        else
++        {
++            char var_106 = var_92 -= Tester_Class_3.var_58;
++        }
++        double[] var_107 = ((new double[Tester_Class_3.var_58][var_99][var_99])[var_99])[false ? Tester_Class_3.var_58 : Tester_Class_3.var_58];
++        var_99 <<= (Tester_Class_3.var_63 >>= Tester_Class_3.var_58);
++        ++var_99;
++    }
++
++
++
++
++    final static byte func_0(final byte arg_0, final char arg_1, final Tester_Class_5[] arg_2)
++    {
++        ((Tester_Class_4)(new Object[Tester_Class_3.var_58][Tester_Class_3.var_58])[Tester_Class_3.var_58][arg_0]).var_69 = (Tester_Class_3)(new Tester_Class_0[Tester_Class_3.var_58])[Tester_Class_2.var_45 = Tester_Class_3.var_58];
++        long var_100 = 0L;
++        Tester_Class_3.var_64 /= (Tester_Class_5.var_86 = true) || 'o' > (Tester_Class_3.var_63 -= (float)arg_0) ? var_98 : 1.7875238E38F;
++        do
++        {
++            Tester_Class_3.var_64 %= var_5;
++            var_100++;
++            Tester_Class_3.var_64 += var_96 + 'r';
++        } while (true && (var_100 < 1 && (new Tester_Class_1().var_29 ? new Tester_Class_1() : (new Tester_Class_1[arg_0][Tester_Class_3.var_58])[arg_0][Tester_Class_3.var_58]).var_29));
++        (Tester_Class_3.var_55 ^ (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = new Tester_Class_1()))).var_29 ? new Tester_Class_3() : new Tester_Class_3()).var_57 = ((((new Tester_Class_6[Tester_Class_3.var_58][Tester_Class_3.var_58])[Tester_Class_3.var_58][Tester_Class_3.var_58]).var_94 = (((new Tester_Class_6[Tester_Class_3.var_58][Tester_Class_3.var_58])[Tester_Class_3.var_58][arg_0]).var_94 = (new Tester_Class_4[Tester_Class_3.var_58][arg_0])[Tester_Class_3.var_58][Tester_Class_3.var_58])).var_69 = new Tester_Class_3()).var_57;
++        final double var_101 = 1.6798216578519203E308;
++        Tester_Class_3.var_60 = (Tester_Class_3.var_60 = false ? new Tester_Class_1() : (Tester_Class_3.var_60 = new Tester_Class_1()));
++        Tester_Class_2 var_102 = new Tester_Class_2();
++        return Tester_Class_3.var_58;
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_6.var_92 = "; result += Test6712835.Printer.print(var_92);
++        result += "\n";
++        result += "Tester_Class_6.var_91 = "; result += Test6712835.Printer.print(var_91);
++        result += "\n";
++        result += "Tester_Class_6.var_95 = "; result += Test6712835.Printer.print(var_95);
++        result += "\n";
++        result += "Tester_Class_6.var_90 = "; result += Test6712835.Printer.print(var_90);
++        result += "\n";
++        result += "Tester_Class_6.var_2 = "; result += Test6712835.Printer.print(var_2);
++        result += "\n";
++        result += "Tester_Class_6.var_97 = "; result += Test6712835.Printer.print(var_97);
++        result += "\n";
++        result += "Tester_Class_6.var_3 = "; result += Test6712835.Printer.print(var_3);
++        result += "\n";
++        result += "Tester_Class_6.var_5 = "; result += Test6712835.Printer.print(var_5);
++        result += "\n";
++        result += "Tester_Class_6.var_93 = "; result += Test6712835.Printer.print(var_93);
++        result += "\n";
++        result += "Tester_Class_6.var_96 = "; result += Test6712835.Printer.print(var_96);
++        result += "\n";
++        result += "Tester_Class_6.var_98 = "; result += Test6712835.Printer.print(var_98);
++        result += "\n";
++        result += "Tester_Class_6.var_99 = "; result += Test6712835.Printer.print(var_99);
++        result += "\n";
++        result += "Tester_Class_6.var_4 = "; result += Test6712835.Printer.print(var_4);
++        result += "\n";
++        result += "Tester_Class_6.var_1 = "; result += Test6712835.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_6.var_94 = "; result += Test6712835.Printer.print(var_94);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++abstract class Tester_Class_7 {
++    final static char var_108 = '_';
++    static Tester_Class_3 var_109;
++    final short var_110 = 4360;
++    short var_111;
++    Object var_112;
++    Tester_Class_4 var_113;
++    static Tester_Class_5 var_114;
++    final short var_115 = Tester_Class_6.var_96;
++    final static float var_116 = Tester_Class_3.var_59;
++
++
++    public Tester_Class_7()
++    {
++        --Tester_Class_2.var_46;
++        --Tester_Class_6.var_96;
++        var_113 = (new Tester_Class_4[new Tester_Class_6().var_99])[Tester_Class_3.var_58];
++        --Tester_Class_2.var_46;
++        Tester_Class_6.var_96--;
++        Tester_Class_3.var_63 -= 'i';
++        if (!Tester_Class_5.var_86)
++        {
++            Tester_Class_3.var_64 %= var_116;
++            if ((Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)(Tester_Class_0)(var_112 = "yosyghjm"))).var_29)
++            {
++                Tester_Class_2.var_46++;
++            }
++            else
++            {
++                (var_114 = (var_114 = (Tester_Class_5)(Tester_Class_0)(var_112 = "bxt"))).var_83 = (Tester_Class_2.var_45 = (Tester_Class_2.var_45 = Tester_Class_3.var_58));
++            }
++            var_114 = (var_114 = (var_114 = (var_114 = (var_114 = (var_114 = (Tester_Class_5)(var_112 = "blrobgg"))))));
++            var_113 = (((Tester_Class_6)(var_112 = "popebwfp")).var_94 = (new Tester_Class_4[Tester_Class_3.var_58])[Tester_Class_3.var_58]);
++        }
++        else
++        {
++            Tester_Class_3.var_60 = new Tester_Class_1();
++        }
++        final Tester_Class_6 var_122 = new Tester_Class_6();
++        var_122.var_92 &= (var_122.var_92 |= var_108);
++        ((new Tester_Class_5[var_122.var_99])[((new Tester_Class_3[Tester_Class_3.var_58])[var_122.var_99--]).var_61]).var_83 = 1708230145;
++    }
++
++
++
++    public boolean equals(Object obj)
++    {
++        (((Tester_Class_5.var_81 = (Tester_Class_5.var_81 = false)) ? (Tester_Class_3.var_55 &= false) : !Tester_Class_3.var_55 & ((Tester_Class_1)obj).var_29) ? (new Tester_Class_2[Tester_Class_3.var_58])[Tester_Class_3.var_58] : (Tester_Class_2)obj).equals((Tester_Class_5.var_86 |= Tester_Class_3.var_55) | (Tester_Class_3.var_55 = Tester_Class_3.var_55) ? obj : (Tester_Class_6)(Tester_Class_0)obj);
++        Tester_Class_3.var_64 *= 2.8258473339654136E307;
++        {
++            final int var_118 = 1248523063;
++            short var_119 = 30906;
++            Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)obj);
++            ((Tester_Class_6)(((Tester_Class_1)obj).var_31 = ((var_113 = (Tester_Class_4)obj).var_69 = (Tester_Class_3)obj))).var_94 = (var_113 = (Tester_Class_4)(var_112 = (Tester_Class_1)obj));
++        }
++        final Tester_Class_1 var_120 = false ^ (((Tester_Class_1)obj).var_1 = !true) ^ (((Tester_Class_6)(Tester_Class_0)obj).var_92 *= (((Tester_Class_3)obj).var_57 |= (Tester_Class_2.var_46 >>= 6986775136305733632L))) < (byte)Tester_Class_6.var_97 ? (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)obj)) : (true ? (Tester_Class_1)obj : (Tester_Class_1)obj);
++        (var_114 = (var_114 = (Tester_Class_5)obj)).var_83 = (((new Tester_Class_6[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_92 &= ((Tester_Class_4)obj).var_70 << (Tester_Class_2.var_45 = Tester_Class_3.var_58));
++        var_114 = (Tester_Class_5)obj;
++        obj = ((Tester_Class_3.var_60 = var_120).var_29 ? false : false) ? (new Tester_Class_6[Tester_Class_3.var_58])[Tester_Class_3.var_58] : obj;
++        (var_120.var_29 ? (Tester_Class_6)(obj = (Tester_Class_3.var_60 = var_120)) : (new Tester_Class_6[Tester_Class_3.var_58])[((Tester_Class_3)obj).var_61 ^= Tester_Class_6.var_91]).var_90 ^= 2127530040436251648L;
++        Object var_121;
++        return (new boolean[Tester_Class_3.var_58])[((var_113 = (Tester_Class_4)obj).var_69 = (var_109 = (new Tester_Class_3[Tester_Class_3.var_58][Tester_Class_3.var_58])[Tester_Class_3.var_58][Tester_Class_3.var_58])).var_61];
++    }
++
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_7.var_108 = "; result += Test6712835.Printer.print(var_108);
++        result += "\n";
++        result += "Tester_Class_7.var_116 = "; result += Test6712835.Printer.print(var_116);
++        result += "\n";
++        result += "Tester_Class_7.var_110 = "; result += Test6712835.Printer.print(var_110);
++        result += "\n";
++        result += "Tester_Class_7.var_111 = "; result += Test6712835.Printer.print(var_111);
++        result += "\n";
++        result += "Tester_Class_7.var_115 = "; result += Test6712835.Printer.print(var_115);
++        result += "\n";
++        result += "Tester_Class_7.var_114 = "; result += Test6712835.Printer.print(var_114);
++        result += "\n";
++        result += "Tester_Class_7.var_113 = "; result += Test6712835.Printer.print(var_113);
++        result += "\n";
++        result += "Tester_Class_7.var_109 = "; result += Test6712835.Printer.print(var_109);
++        result += "\n";
++        result += "Tester_Class_7.var_112 = "; result += Test6712835.Printer.print(var_112);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++class Tester_Class_8 extends Tester_Class_7 {
++    static char var_123;
++    Tester_Class_4 var_124;
++    static short var_125;
++
++
++    public Tester_Class_8()
++    {
++        {
++            Tester_Class_3.var_64 -= (Tester_Class_2.var_46 *= Tester_Class_3.var_64);
++            {
++                Tester_Class_2.var_46--;
++            }
++            ++Tester_Class_3.var_63;
++            Tester_Class_5.var_86 |= true;
++            Tester_Class_6.var_96--;
++        }
++        "w".indexOf(312689020);
++        if (false)
++        {
++            (Tester_Class_7.var_114 = (new Tester_Class_5[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_83 = 'I';
++        }
++        else
++        {
++            --Tester_Class_6.var_96;
++        }
++        switch (Tester_Class_5.var_86 ? Tester_Class_3.var_58 : Tester_Class_3.var_58)
++        {
++            case 95:
++
++            case 35:
++
++        }
++        Tester_Class_6.var_96--;
++        Tester_Class_3.var_64 *= 4.516167673347119E307;
++        --Tester_Class_3.var_63;
++        {
++            int var_126;
++        }
++        Tester_Class_3.var_60 = new Tester_Class_1();
++        Tester_Class_2.var_46++;
++        ((new Tester_Class_6[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_99 &= Tester_Class_6.var_91;
++        ((new Tester_Class_1[((new Tester_Class_4[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_71])[((Tester_Class_3)(var_112 = "fsmtm")).var_61]).var_31 = (Tester_Class_2)(new Tester_Class_0[Tester_Class_3.var_58])[Tester_Class_3.var_58];
++    }
++
++
++
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_8.var_108 = "; result += Test6712835.Printer.print(var_108);
++        result += "\n";
++        result += "Tester_Class_8.var_123 = "; result += Test6712835.Printer.print(var_123);
++        result += "\n";
++        result += "Tester_Class_8.var_116 = "; result += Test6712835.Printer.print(var_116);
++        result += "\n";
++        result += "Tester_Class_8.var_110 = "; result += Test6712835.Printer.print(var_110);
++        result += "\n";
++        result += "Tester_Class_8.var_111 = "; result += Test6712835.Printer.print(var_111);
++        result += "\n";
++        result += "Tester_Class_8.var_115 = "; result += Test6712835.Printer.print(var_115);
++        result += "\n";
++        result += "Tester_Class_8.var_125 = "; result += Test6712835.Printer.print(var_125);
++        result += "\n";
++        result += "Tester_Class_8.var_114 = "; result += Test6712835.Printer.print(var_114);
++        result += "\n";
++        result += "Tester_Class_8.var_113 = "; result += Test6712835.Printer.print(var_113);
++        result += "\n";
++        result += "Tester_Class_8.var_124 = "; result += Test6712835.Printer.print(var_124);
++        result += "\n";
++        result += "Tester_Class_8.var_109 = "; result += Test6712835.Printer.print(var_109);
++        result += "\n";
++        result += "Tester_Class_8.var_112 = "; result += Test6712835.Printer.print(var_112);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++final class Tester_Class_9 {
++    final static String var_127 = "pxk";
++    Tester_Class_2 var_128;
++    final static char var_129 = '\\';
++    static float var_130;
++    static boolean var_131;
++    final static float var_132 = Tester_Class_3.var_59;
++    static Tester_Class_0 var_133;
++    boolean[] var_134;
++
++
++    public Tester_Class_9()
++    {
++        Tester_Class_2.var_44 -= Tester_Class_3.var_58;
++        Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (new Tester_Class_1[Tester_Class_3.var_58][Tester_Class_3.var_58])[Tester_Class_3.var_58][Tester_Class_3.var_58]));
++        {
++            Tester_Class_8 var_136;
++        }
++        ++Tester_Class_2.var_46;
++        Tester_Class_6.var_96--;
++        var_128 = (var_128 = (var_128 = (Tester_Class_2)(var_133 = (new Tester_Class_1[Tester_Class_3.var_58])[Tester_Class_3.var_58])));
++        ++Tester_Class_6.var_96;
++        ++Tester_Class_2.var_46;
++        Tester_Class_4 var_137;
++        var_128 = (var_128 = (new Tester_Class_2[Tester_Class_3.var_58])[Tester_Class_3.var_58]);
++        (Tester_Class_8.var_114 = (Tester_Class_8.var_114 = (new Tester_Class_5[Tester_Class_3.var_58])[Tester_Class_3.var_58])).var_83 = (((new Tester_Class_4[Tester_Class_3.var_58][Tester_Class_3.var_58])[Tester_Class_3.var_58][Tester_Class_3.var_58]).var_69 = (new Tester_Class_3[Tester_Class_3.var_58][Tester_Class_3.var_58])[Tester_Class_3.var_58][Tester_Class_3.var_58]).var_57++;
++        Tester_Class_2.var_46++;
++    }
++
++
++
++
++    protected static short func_1()
++    {
++        {
++            Tester_Class_3.var_63--;
++        }
++        Tester_Class_3.var_64 *= Tester_Class_2.var_46;
++        short var_135;
++        Tester_Class_3.var_64 -= Tester_Class_6.var_96;
++        return new Tester_Class_6().var_93;
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_9.var_129 = "; result += Test6712835.Printer.print(var_129);
++        result += "\n";
++        result += "Tester_Class_9.var_134 = "; result += Test6712835.Printer.print(var_134);
++        result += "\n";
++        result += "Tester_Class_9.var_130 = "; result += Test6712835.Printer.print(var_130);
++        result += "\n";
++        result += "Tester_Class_9.var_132 = "; result += Test6712835.Printer.print(var_132);
++        result += "\n";
++        result += "Tester_Class_9.var_131 = "; result += Test6712835.Printer.print(var_131);
++        result += "\n";
++        result += "Tester_Class_9.var_127 = "; result += Test6712835.Printer.print(var_127);
++        result += "\n";
++        result += "Tester_Class_9.var_128 = "; result += Test6712835.Printer.print(var_128);
++        result += "\n";
++        result += "Tester_Class_9.var_133 = "; result += Test6712835.Printer.print(var_133);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++final class Tester_Class_10 extends Tester_Class_0 {
++    final static byte var_138 = 78;
++    Object var_139;
++    final static boolean var_140 = true;
++    float var_141 = 1.2816267E38F;
++    Tester_Class_8 var_142;
++    static Tester_Class_3 var_143;
++    short var_144 = var_1 ? (Tester_Class_6.var_96 &= 8024552544994698240L) : Tester_Class_0.var_5;
++    final boolean var_145 = var_140;
++    long var_146;
++    float[] var_147;
++
++
++    public Tester_Class_10()
++    {
++        "xuc".codePointCount(new Tester_Class_6().var_99 / ((new Tester_Class_9().var_128 = new Tester_Class_2()).var_1 ? var_138 : (int)(Tester_Class_3.var_64 += Tester_Class_3.var_64)), 882345740);
++        Tester_Class_3.var_64 /= Tester_Class_9.var_132;
++        Tester_Class_9.var_127.indexOf((Tester_Class_7.var_114 = (Tester_Class_8.var_114 = (Tester_Class_5)(var_139 = "mcyagebtv"))).var_83 = var_145 ? (Tester_Class_2.var_45 = Tester_Class_3.var_58) : Tester_Class_6.var_96);
++        --Tester_Class_2.var_46;
++        final float var_148 = 3.0263434E38F;
++        ((Tester_Class_7.var_114 = (Tester_Class_5)(Tester_Class_9.var_133 = new Tester_Class_1())).var_85 & ((Tester_Class_1)(var_139 = new Tester_Class_6())).var_1 ? "gmxwrgik" : Tester_Class_9.var_127).compareTo(var_4);
++        --Tester_Class_2.var_46;
++        new Tester_Class_6();
++        ++Tester_Class_2.var_46;
++        Tester_Class_3.var_60 = Tester_Class_5.var_86 ? new Tester_Class_1() : new Tester_Class_1();
++        {
++            --Tester_Class_6.var_96;
++            ((Tester_Class_7)(var_139 = new Tester_Class_1().var_4)).var_112 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)(var_139 = "gugsy")));
++        }
++        Tester_Class_9.var_133 = (Tester_Class_3.var_60 = new Tester_Class_1());
++        if (var_140 & !var_140)
++        {
++            Tester_Class_6.var_96++;
++        }
++        else
++        {
++            Tester_Class_2.var_46++;
++        }
++        {
++            ++new Tester_Class_6().var_92;
++        }
++        Tester_Class_7.var_109 = (((new Tester_Class_4[Tester_Class_3.var_58])[Tester_Class_3.var_58]).var_69 = (var_143 = new Tester_Class_3()));
++        Tester_Class_3.var_63--;
++    }
++
++
++
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_10.var_147 = "; result += Test6712835.Printer.print(var_147);
++        result += "\n";
++        result += "Tester_Class_10.var_146 = "; result += Test6712835.Printer.print(var_146);
++        result += "\n";
++        result += "Tester_Class_10.var_3 = "; result += Test6712835.Printer.print(var_3);
++        result += "\n";
++        result += "Tester_Class_10.var_141 = "; result += Test6712835.Printer.print(var_141);
++        result += "\n";
++        result += "Tester_Class_10.var_5 = "; result += Test6712835.Printer.print(var_5);
++        result += "\n";
++        result += "Tester_Class_10.var_144 = "; result += Test6712835.Printer.print(var_144);
++        result += "\n";
++        result += "Tester_Class_10.var_138 = "; result += Test6712835.Printer.print(var_138);
++        result += "\n";
++        result += "Tester_Class_10.var_1 = "; result += Test6712835.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_10.var_140 = "; result += Test6712835.Printer.print(var_140);
++        result += "\n";
++        result += "Tester_Class_10.var_145 = "; result += Test6712835.Printer.print(var_145);
++        result += "\n";
++        result += "Tester_Class_10.var_139 = "; result += Test6712835.Printer.print(var_139);
++        result += "\n";
++        result += "Tester_Class_10.var_142 = "; result += Test6712835.Printer.print(var_142);
++        result += "\n";
++        result += "Tester_Class_10.var_2 = "; result += Test6712835.Printer.print(var_2);
++        result += "\n";
++        result += "Tester_Class_10.var_4 = "; result += Test6712835.Printer.print(var_4);
++        result += "\n";
++        result += "Tester_Class_10.var_143 = "; result += Test6712835.Printer.print(var_143);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++interface Tester_Interface_11 {
++    public Tester_Class_4 func_0(final int arg_0, final byte arg_1);
++    public Tester_Class_2 func_1(Tester_Class_5 arg_0, final Tester_Class_0 arg_1, final int arg_2);
++}
++
++public class Test6712835 {
++    final boolean var_149 = false;
++    Tester_Class_8 var_150;
++    final long var_151 = 8058077687473630208L;
++
++
++    protected final Tester_Class_1 func_0(final Object arg_0, Tester_Class_3 arg_1, final Tester_Class_4 arg_2, int arg_3)
++    {
++        Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)arg_0));
++        --Tester_Class_3.var_63;
++        (var_150 = (((new Tester_Class_10[arg_2.var_71])[(((Tester_Class_6)arg_0).var_94 = arg_2).var_71 &= Tester_Class_3.var_63 << ~arg_2.var_71]).var_142 = (var_150 = (((Tester_Class_10)arg_0).var_142 = (Tester_Class_8)arg_0)))).var_113 = arg_2;
++        Tester_Class_7.var_114 = (Tester_Class_7.var_114 = false ? (Tester_Class_5)arg_0 : (Tester_Class_5)arg_0);
++        ((((arg_1 = arg_1).var_1 |= "lgcrda".equalsIgnoreCase("ontlkst")) ? (Tester_Class_1)arg_0 : (Tester_Class_3.var_60 = (Tester_Class_1)arg_0)).var_29 ? (arg_1 = (Tester_Class_3)(((Tester_Class_7)arg_0).var_112 = (Tester_Class_9)arg_0)) : arg_1).var_57 >>>= ']';
++        Tester_Class_8.var_114 = (Tester_Class_5)arg_0;
++        ((Tester_Class_3.var_55 &= (arg_1.var_1 = true)) ? (Tester_Class_6)(new Tester_Class_0[Tester_Class_3.var_58][Tester_Class_10.var_138])[Tester_Class_10.var_138][Tester_Class_10.var_138] : (Tester_Class_6)arg_0).var_94 = arg_2;
++        {
++            Tester_Class_3.var_55 &= ((Tester_Class_3.var_60 = new Tester_Class_1()).var_1 &= false);
++            Tester_Class_2.var_44 -= (arg_3 |= + ~6610561718704644096L);
++            ((Tester_Class_8)arg_0).var_113 = ((((Tester_Class_10)(Tester_Class_0)arg_0).var_142 = (var_150 = (Tester_Class_8)arg_0)).var_124 = arg_2);
++            (! (false | Tester_Class_5.var_86) ? (Tester_Class_10)arg_0 : (new Tester_Class_10[arg_1.var_61][arg_1.var_61])[Tester_Class_10.var_138][Tester_Class_10.var_138]).var_139 = ((Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)arg_0)).var_31 = (((Tester_Class_9)arg_0).var_128 = (((Tester_Class_9)arg_0).var_128 = (Tester_Class_2)arg_0)));
++        }
++        final Tester_Interface_11 var_152 = !((Tester_Class_1)arg_0).var_29 ^ Tester_Class_5.var_86 ? (new Tester_Interface_11[arg_2.var_71][arg_1.var_61])[arg_1.var_61][arg_1.var_61] : (new Tester_Interface_11[arg_2.var_71][arg_2.var_71])[Tester_Class_10.var_138][Tester_Class_3.var_58];
++        Tester_Class_3.var_64 /= (arg_3 >>= ++((Tester_Class_6)(Tester_Class_0)arg_0).var_92) * Tester_Class_9.var_132;
++        Tester_Class_0 var_153 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)arg_0))))).var_31 = (((new Tester_Class_9[arg_1.var_61])[arg_1.var_61 *= 634692606]).var_128 = !false ? (Tester_Class_2)arg_0 : (Tester_Class_2)arg_0);
++        (Tester_Class_10.var_140 ? (Tester_Class_7)arg_0 : (var_150 = (Tester_Class_8)(Tester_Class_7)arg_0)).var_112 = Tester_Class_3.var_64 != ((((Tester_Class_10)(var_153 = (Tester_Class_8.var_114 = (Tester_Class_5)arg_0))).var_1 |= arg_1.var_1) ? (Tester_Class_6)var_153 : (Tester_Class_6)var_153).var_99-- ? (Tester_Class_7)((var_150 = (Tester_Class_8)arg_0).var_112 = (Tester_Class_10)var_153) : (Tester_Class_7)arg_0;
++        (((new Tester_Class_7[Tester_Class_10.var_138][arg_2.var_71])[Tester_Class_3.var_58])[arg_2.var_71]).var_112 = arg_0;
++        if (!false)
++        {
++            arg_3 <<= (Tester_Class_2.var_46 /= - ((byte)((Tester_Class_10)arg_0).var_144)) - ((Tester_Class_6)arg_0).var_99;
++        }
++        else
++        {
++            ((Tester_Class_7)(((Tester_Class_8)arg_0).var_112 = var_153)).var_113 = arg_2;
++            ((Tester_Class_9)arg_0).var_128 = (((Tester_Class_9)(((Tester_Class_7)arg_0).var_112 = (Tester_Class_7)arg_0)).var_128 = (((Tester_Class_9)arg_0).var_128 = (Tester_Class_2)arg_0));
++        }
++        (((Tester_Class_10)arg_0).var_142 = (Tester_Class_8)arg_0).var_124 = (((Tester_Class_6)var_153).var_94 = arg_2);
++        final char var_154 = arg_1.var_57 %= ((Tester_Class_6)var_153).var_93--;
++        (true ? arg_1 : (arg_1 = arg_1)).equals(arg_0);
++        (Tester_Class_10.var_140 ? (new Tester_Class_6[Tester_Class_10.var_138])[arg_2.var_71] : (new Tester_Class_6[(Tester_Class_10.var_143 = arg_1).var_61])[arg_1.var_61]).var_94 = ((((new Tester_Class_7[arg_2.var_71][arg_1.var_61][Tester_Class_10.var_138])[Tester_Class_10.var_138])[arg_2.var_71 = arg_2.var_71][Tester_Class_10.var_138]).var_113 = (((Tester_Class_7)arg_0).var_113 = arg_2));
++        Tester_Class_3.var_60 = ((Tester_Class_10)(((Tester_Class_7)arg_0).var_112 = (Tester_Class_7)(((Tester_Class_10)var_153).var_139 = new Tester_Class_6[Tester_Class_10.var_138][Tester_Class_10.var_138]))).var_1 ? (Tester_Class_3.var_60 = (Tester_Class_1)var_153) : (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)(Tester_Class_9.var_133 = (Tester_Class_10)arg_0)));
++        ((Tester_Class_7)(((Tester_Class_10)arg_0).var_139 = new Tester_Class_10[Tester_Class_3.var_58][--arg_2.var_71])).var_112 = new byte[(((Tester_Class_8)(Tester_Class_7)((var_150 = (var_150 = (Tester_Class_8)arg_0)).var_112 = arg_2)).var_113 = (((Tester_Class_7)arg_0).var_113 = arg_2)).var_71];
++        Tester_Class_8 var_155;
++        (Tester_Class_3.var_55 & arg_2.equals(arg_0) ? (Tester_Class_10)var_153 : (Tester_Class_10)var_153).var_3 %= Tester_Class_6.var_91;
++        return ((Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)var_153)))).var_29 ? ! !true : Tester_Class_10.var_140 | Tester_Class_3.var_55) || Tester_Class_3.var_55 ? (Tester_Class_3.var_60 = (Tester_Class_1)(((Tester_Class_10)var_153).var_139 = (Tester_Class_6)var_153)) : new Tester_Class_1();
++    }
++
++    protected Tester_Class_5 func_1(Tester_Class_0 arg_0, final float arg_1)
++    {
++        (!Tester_Class_10.var_140 ? (Tester_Class_6)arg_0 : (Tester_Class_6)arg_0).var_90 /= ((Tester_Class_8.var_109 = (new boolean[Tester_Class_10.var_138][Tester_Class_3.var_58])[((Tester_Class_6)arg_0).var_99][Tester_Class_10.var_138] ? (Tester_Class_3)((Tester_Class_3.var_60 = (Tester_Class_1)arg_0).var_31 = (Tester_Class_6)arg_0) : (Tester_Class_3)arg_0).var_61 *= Tester_Class_3.var_58);
++        {
++            "".toLowerCase();
++        }
++        ((Tester_Class_10)arg_0).var_139 = new Tester_Class_8();
++        arg_0 = (new Tester_Class_6[((Tester_Class_6)arg_0).var_99])[Tester_Class_3.var_58];
++        if (((Tester_Class_10)(arg_0 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)arg_0)))).var_145)
++        {
++            Tester_Class_3.var_63++;
++        }
++        else
++        {
++            ++Tester_Class_2.var_46;
++        }
++        (((Tester_Class_3.var_55 ^= Tester_Class_3.var_55 ^ true) ? (Tester_Class_10)arg_0 : (Tester_Class_10)arg_0).var_145 || true ? (Tester_Class_6)arg_0 : (Tester_Class_6)(((Tester_Class_7)(((Tester_Class_10)arg_0).var_139 = (Tester_Class_10)arg_0)).var_112 = "jlixai")).var_99--;
++        Tester_Class_5.var_81 = Tester_Class_3.var_55 && ! (arg_0.var_1 = arg_0.var_1);
++        {
++            ((new Tester_Class_6[Tester_Class_3.var_58])[(true ? (Tester_Class_6)(Tester_Class_9.var_133 = (Tester_Class_10)arg_0) : (Tester_Class_6)(((Tester_Class_1)arg_0).var_31 = (Tester_Class_10)arg_0)).var_99]).var_90 *= (Tester_Class_3.var_64 %= Tester_Class_3.var_63);
++        }
++        ++Tester_Class_2.var_46;
++        Tester_Class_0 var_156;
++        Tester_Class_2.var_46++;
++        Tester_Class_8.var_114 = (Tester_Class_7.var_114 = (Tester_Class_8.var_114 = (Tester_Class_5)arg_0));
++        Tester_Class_6.func_2((Tester_Class_7.var_114 = (Tester_Class_7.var_114 = (Tester_Class_7.var_114 = (Tester_Class_5)arg_0))).var_83 = (byte)(((Tester_Class_10)arg_0).var_142 = (new Tester_Class_8[Tester_Class_3.var_58][Tester_Class_3.var_58])[Tester_Class_3.var_58][Tester_Class_10.var_138]).var_110, Tester_Class_6.var_96, (new byte[Tester_Class_3.var_58])[Tester_Class_10.var_138]);
++        Tester_Class_7.var_114 = (new Tester_Class_5[Tester_Class_10.var_138])[((Tester_Class_3)arg_0).var_61];
++        boolean var_157 = Tester_Class_10.var_140;
++        (Tester_Class_3.var_60 = (Tester_Class_1)arg_0).var_1 ^= Tester_Class_10.var_140;
++        return Tester_Class_8.var_114 = (Tester_Class_7.var_114 = (Tester_Class_8.var_114 = (Tester_Class_5)arg_0));
++    }
++
++    final static int func_2(Tester_Class_6 arg_0)
++    {
++        new Tester_Class_9();
++        {
++            ++Tester_Class_3.var_63;
++        }
++        new Tester_Class_3().var_57--;
++        Tester_Class_1 var_158;
++        String var_159;
++        --Tester_Class_6.var_96;
++        {
++            new String();
++        }
++        var_159 = (var_159 = arg_0.var_4);
++        {
++            --Tester_Class_2.var_46;
++        }
++        final double var_160 = (Tester_Class_7.var_114 = (Tester_Class_8.var_114 = (Tester_Class_8.var_114 = (Tester_Class_5)(new Tester_Class_0[arg_0.var_99][arg_0.var_99])[Tester_Class_3.var_58][Tester_Class_3.var_58]))).var_1 ? Tester_Class_9.var_132 : Tester_Class_6.var_97;
++        Tester_Class_8 var_161;
++        char var_162 = 'O';
++        Tester_Class_2.var_46++;
++        Tester_Class_6.var_96++;
++        {
++            new String();
++        }
++        ++Tester_Class_6.var_96;
++        var_162 >>= ((new Tester_Class_4[arg_0.var_99])[arg_0.var_99++]).var_70 >> Tester_Class_6.var_91;
++        (Tester_Class_7.var_114 = (Tester_Class_7.var_114 = (new Tester_Class_5[Tester_Class_3.var_58])[++arg_0.var_99])).var_83 = (arg_0.var_93 <<= Tester_Class_7.var_108);
++        --Tester_Class_6.var_96;
++        {
++            new Tester_Class_9().var_128 = new Tester_Class_2();
++        }
++        arg_0 = arg_0;
++        {
++            Tester_Class_9 var_163;
++        }
++        ((Tester_Class_5)(Tester_Class_9.var_133 = arg_0)).var_83 = (arg_0.var_99 >>= Tester_Class_5.var_5);
++        arg_0.var_99 = Tester_Class_10.var_138;
++        Tester_Class_3.var_60 = (var_158 = (Tester_Class_3.var_60 = (Tester_Class_1)(Tester_Class_9.var_133 = arg_0)));
++        return Tester_Class_6.var_91;
++    }
++
++    protected final Tester_Class_9 func_3()
++    {
++        Tester_Class_2.var_44 = 3210658399310388224L;
++        ++Tester_Class_6.var_96;
++        short var_164 = 15978;
++        var_164++;
++        Tester_Class_5.var_81 = true;
++        return Tester_Class_3.var_55 ? new Tester_Class_9() : new Tester_Class_9();
++    }
++
++    final static Tester_Class_10 func_4(Tester_Class_3 arg_0, String arg_1, final byte[] arg_2, final Object arg_3)
++    {
++        Tester_Class_1 var_165;
++        Tester_Class_3.var_63 += new Tester_Class_6().var_92 >= 3821095133162842112L ? (arg_0.var_61 |= Tester_Class_6.var_91) : Tester_Class_10.var_138;
++        return false ? ((var_165 = (Tester_Class_1)arg_3).var_29 ? (Tester_Class_10)arg_3 : (Tester_Class_10)arg_3) : (Tester_Class_10)(Tester_Class_0)arg_3;
++    }
++
++    private static Object func_7(final short arg_0, String arg_1, final Tester_Class_3 arg_2)
++    {
++        Tester_Class_3.var_60 = (new Tester_Class_1[arg_2.var_61])[Tester_Class_10.var_138];
++        return ((new Tester_Class_7[arg_2.var_61 |= Tester_Class_3.var_63])[arg_2.var_61 *= Tester_Class_6.var_98]).var_112 = new Tester_Class_8();
++    }
++
++    public static String execute()
++    {
++        try {
++            Test6712835 t = new Test6712835();
++            try { t.test(); }
++            catch(Throwable e) { }
++            try { return t.toString(); }
++            catch (Throwable e) { return "Error during result conversion to String"; }
++        } catch (Throwable e) { return "Error during test execution"; }
++    }
++
++    public static void main(String[] args)
++    {
++        try {
++            Test6712835 t = new Test6712835();
++            try { t.test(); }
++            catch(Throwable e) { }
++            try { System.out.println(t); }
++            catch(Throwable e) { }
++        } catch (Throwable e) { }
++    }
++
++    private void test()
++    {
++        Tester_Class_3.var_60 = true ? (Tester_Class_3.var_60 = new Tester_Class_1()) : new Tester_Class_1();
++        double var_170 = 0;
++        Tester_Class_9.var_133 = (new Tester_Class_4().var_69 = new Tester_Class_3());
++        new Tester_Class_6();
++        String var_171;
++        new Tester_Class_9();
++        do
++        {
++            new String();
++            var_170++;
++            Tester_Class_3.var_64 = 1.0240330514364089E307;
++            new String();
++            var_171 = (var_171 = Tester_Class_9.var_127);
++            Tester_Class_3.var_63--;
++        } while (var_170 < 525);
++        ((new Tester_Class_10[Tester_Class_10.var_138])[Tester_Class_2.var_45 = Tester_Class_3.var_58]).var_142 = (Tester_Class_8)(Tester_Class_7)(new Tester_Class_10().var_139 = new Tester_Class_2());
++        long var_172 = 0L;
++        Tester_Class_3.var_64 /= (((new Tester_Class_6[Tester_Class_3.var_58])[Tester_Class_10.var_138]).var_99 ^= ((new Tester_Class_6[Tester_Class_3.var_58])[Tester_Class_10.var_138]).var_90) > 9.462466046830147E307 ? new Tester_Class_6().var_99 : Tester_Class_3.var_58;
++        short var_173;
++        (true ? new Tester_Class_2() : (func_3().var_128 = new Tester_Class_2())).var_3 *= (var_150 = new Tester_Class_8()).var_115;
++        (Tester_Class_3.var_60 = new Tester_Class_1()).var_31 = (((new Tester_Class_9[Tester_Class_3.var_58])[Tester_Class_10.var_138]).var_128 = (func_3().var_128 = (func_3().var_128 = (new Tester_Class_9().var_128 = new Tester_Class_2()))));
++        for (((new Tester_Class_10[new Tester_Class_6().var_99])[new Tester_Class_6().var_99++]).var_142 = (new Tester_Class_8[Tester_Class_10.var_138])[Tester_Class_3.var_58]; var_172 < 203 && (Tester_Class_3.var_55 &= (new boolean[Tester_Class_2.var_45 = Tester_Class_3.var_58])[Tester_Class_10.var_138]); Tester_Class_9.var_133 = (Tester_Class_7.var_114 = (new Tester_Class_5[Tester_Class_2.var_45 = Tester_Class_10.var_138][Tester_Class_10.var_138])[Tester_Class_3.var_58][Tester_Class_2.var_45 = Tester_Class_3.var_58]))
++        {
++            var_171 = Tester_Class_9.var_127;
++            var_172++;
++            Tester_Class_3.var_63++;
++            Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_1)(new Object[Tester_Class_3.var_58][Tester_Class_10.var_138])[Tester_Class_3.var_58][Tester_Class_3.var_58])));
++            ++Tester_Class_2.var_46;
++            Tester_Class_2.var_46--;
++            Tester_Class_3.var_64 -= Tester_Class_3.var_58;
++        }
++        (Tester_Class_3.var_60 = new Tester_Class_1()).var_31 = ((new Tester_Class_8().var_124 = new Tester_Class_4()).var_69 = new Tester_Class_3());
++        int var_174 = 0;
++        ((new Tester_Class_6[Tester_Class_10.var_138][Tester_Class_10.var_138])[Tester_Class_2.var_45 = Tester_Class_10.var_138][Tester_Class_2.var_45 = Tester_Class_3.var_58]).var_92 = 'Z';
++        while ((Tester_Class_9.var_131 = Tester_Class_3.var_55) && (var_174 < 24 && !true))
++        {
++            new Tester_Class_10();
++            var_174++;
++            Tester_Class_3.var_64 %= (((new Tester_Class_6[Tester_Class_3.var_58])[Tester_Class_2.var_45 = Tester_Class_3.var_58]).var_93 ^= (byte)Tester_Class_3.var_59);
++            ((Tester_Class_10)(Tester_Class_9.var_133 = (new Tester_Class_5[((Tester_Class_6)(new Tester_Class_0[Tester_Class_10.var_138])[(byte)(Tester_Class_2.var_46 >>>= Tester_Class_7.var_108)]).var_99])[Tester_Class_10.var_138])).var_139 = (new Tester_Class_10[new Tester_Class_6().var_99][new Tester_Class_4().var_71])[new Tester_Class_4().var_71];
++        }
++        int var_175 = 0;
++        (Tester_Class_10.var_140 ? (Tester_Class_2)(Tester_Class_9.var_133 = (Tester_Class_7.var_114 = (new Tester_Class_5[Tester_Class_10.var_138])[Tester_Class_10.var_138])) : new Tester_Class_2()).var_1 &= Tester_Class_3.var_55;
++        do
++        {
++            Tester_Class_10.var_143 = new Tester_Class_3();
++            var_175++;
++            ++Tester_Class_2.var_46;
++        } while ((false ? true : var_149) | !Tester_Class_10.var_140 && var_175 < 97);
++        Tester_Class_9.var_131 = true;
++        (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = (Tester_Class_3.var_60 = new Tester_Class_1())))).var_1 &= (((new Tester_Class_10().var_1 = !true) ? new Tester_Class_10() : new Tester_Class_10()).var_145 ? new Tester_Class_3() : new Tester_Class_3()).var_1;
++        (true ? func_3() : func_3()).var_128 = ((((Tester_Class_5.var_86 = (Tester_Class_3.var_55 &= !var_149)) ? new Tester_Class_10() : new Tester_Class_10()).var_145 ? new Tester_Class_9() : func_3()).var_128 = var_149 ? new Tester_Class_2() : new Tester_Class_2());
++        Tester_Class_3.var_59 -= (Tester_Class_5.var_81 = new Tester_Class_1().var_29) ^ !true ? 7920143378515332096L : new Tester_Class_6().var_92;
++        ((Tester_Class_3.var_60 = new Tester_Class_1()).var_1 ? (new Tester_Class_5[Tester_Class_10.var_138][Tester_Class_3.var_58])[Tester_Class_3.var_58][Tester_Class_3.var_58] : (Tester_Class_8.var_114 = new Tester_Class_5())).var_83 = Tester_Class_10.var_140 ? (Tester_Class_3.var_63 -= 2.0167496E38F) : ++Tester_Class_3.var_63;
++        double var_176 = 9.327780852480363E307;
++    }
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Test6712835.var_151 = "; result += Printer.print(var_151);
++        result += "\n";
++        result += "Test6712835.var_149 = "; result += Printer.print(var_149);
++        result += "\n";
++        result += "Test6712835.var_150 = "; result += Printer.print(var_150);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++    static class Printer
++    {
++        public static String print(boolean arg) { return String.valueOf(arg); }
++        public static String print(byte arg)    { return String.valueOf(arg); }
++        public static String print(short arg)   { return String.valueOf(arg); }
++        public static String print(char arg)    { return String.valueOf((int)arg); }
++        public static String print(int arg)     { return String.valueOf(arg); }
++        public static String print(long arg)    { return String.valueOf(arg); }
++        public static String print(float arg)   { return String.valueOf(arg); }
++        public static String print(double arg)  { return String.valueOf(arg); }
++
++
++        public static String print(Object arg)
++        {
++            return print_r(new java.util.Stack(), arg);
++        }
++
++        private static String print_r(java.util.Stack visitedObjects, Object arg)
++        {
++            String result = "";
++            if (arg == null)
++                result += "null";
++            else
++            if (arg.getClass().isArray())
++            {
++                for (int i = 0; i < visitedObjects.size(); i++)
++                    if (visitedObjects.elementAt(i) == arg) return "<recursive>";
++
++                visitedObjects.push(arg);
++
++                final String delimiter = ", ";
++                result += "[";
++
++                if (arg instanceof Object[])
++                {
++                    Object[] array = (Object[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print_r(visitedObjects, array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof boolean[])
++                {
++                    boolean[] array = (boolean[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof byte[])
++                {
++                    byte[] array = (byte[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof short[])
++                {
++                    short[] array = (short[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof char[])
++                {
++                    char[] array = (char[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof int[])
++                {
++                     int[] array = (int[]) arg;
++                     for (int i = 0; i < array.length; i++)
++                     {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                     }
++                }
++                else
++                if (arg instanceof long[])
++                {
++                    long[] array = (long[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof float[])
++                {
++                    float[] array = (float[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof double[])
++                {
++                    double[] array = (double[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++
++                result += "]";
++                visitedObjects.pop();
++
++            } else
++            {
++                result += arg.toString();
++            }
++
++            return result;
++        }
++    }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6714694/Tester.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6714694/Tester.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,820 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ */
++
++/*
++ * @test
++ * @bug 6714694
++ * @summary assertion in 64bit server vm (store->find_edge(load) != -1,"missing precedence edge") with COOPs
++ * @run main/othervm -Xcomp Tester
++ */
++
++/* Complexity upper bound: 38602 ops */
++
++interface Tester_Interface_0 {
++}
++
++
++abstract class Tester_Class_1 implements Tester_Interface_0 {
++    static int var_1 = (false ? (short)'b' : (short)-2.4256387E38F) | (byte)('g' * -7.660532860983624E307);
++    float var_2;
++    byte var_3;
++    static boolean var_4 = true;
++    double var_5 = 8.818325751338691E307;
++    Object var_6;
++    static short var_7;
++    final static char var_8 = 'x';
++    final static float var_9 = 2.2030989E38F;
++
++
++    public Tester_Class_1()
++    {
++        var_6 = (var_6 = (var_6 = "xkx"));
++        switch (var_7 = (var_3 = (byte)var_5))
++        {
++            case 113:
++
++            case 114:
++                Object var_12;
++                var_4 = 4.9121917E37F < 1957795258;
++                var_4 |= (var_4 ^= !var_4) ^ (var_4 |= var_4);
++                var_3 = (var_3 = (var_3 = (byte)+6010964363045275648L));
++                break;
++
++            case 102:
++
++        }
++        final float var_13 = 1.2443151E38F;
++        var_3 = (byte)(var_1 |= (var_7 = (var_3 = (byte)var_5)));
++        var_2 = (long)(var_7 = (var_3 = (byte)var_8)) - (var_7 = (byte)386742565);
++        var_4 &= var_4;
++        var_2 = (long)((var_3 = (var_3 = (byte)var_8)) / ((var_4 ^= (var_5 /= var_9) <= (var_1 &= var_1)) ? (var_7 = (short)6872886933545336832L) : (byte)var_8));
++        var_6 = "uqflj";
++        {
++            switch (((new String[var_3 = (byte)var_5])[var_3 = (byte)8097442298927900672L]).charAt(1540148550))
++            {
++                case 'l':
++
++            }
++            var_2 = (var_7 = (byte)2.9859440663042714E307);
++            {
++                Object var_14;
++            }
++            var_3 = (var_3 = (var_3 = (byte)3.3634427195550136E307));
++            var_5 += '_';
++        }
++        var_6 = "tempfdjen";
++        var_3 = (((var_4 ^= new String("jmwiwmk").endsWith("rtlstmnuo")) ? !true : !false) ? true : (var_4 = false)) ? (var_3 = (byte)var_5) : (var_3 = (var_3 = (byte)var_5));
++        var_4 ^= false;
++        if (1.6435436003809043E307 != var_9)
++        {
++            boolean var_15 = true;
++        }
++        else
++        {
++            var_4 = false;
++        }
++        {
++            Object var_16 = ((new Tester_Class_1[(byte)71832757][(byte)1.0694914E38F])[(byte)1315653071][(byte)(var_7 = (var_7 = (byte)var_8))]).var_6 = new int[(byte)var_8][var_3 = (byte)1933656747];
++        }
++        var_7 = (var_4 = var_4) ? (short)2.756967E37F : (short)'K';
++        byte var_17;
++    }
++
++
++
++    abstract public Tester_Interface_0 func_0(double[][] arg_0, final Object arg_1);
++
++
++    final double func_0(final float arg_0, final short arg_1, final boolean arg_2)
++    {
++        var_6 = (var_6 = "lmshbl");
++        var_3 = (var_3 = (new byte[(new byte[(byte)arg_1])[var_3 = (byte)arg_0]])[var_3 = (var_3 = (byte)(var_1 >>>= var_1))]);
++        var_5 %= (var_3 = (byte)1909375874);
++        var_1 /= (char)(short)'i';
++        {
++            "vgar".length();
++        }
++        int var_10;
++        {
++            var_3 = (var_4 &= true) ? (byte)(var_5 *= 6375499657746206720L) : (byte)+ (var_5 /= var_9);
++            var_7 = (var_4 = true) ? (byte)(false ? (short)749593632 : (byte)8.692758043260743E307) : (byte)var_1;
++            ((new Tester_Class_1[(byte)1.2890904018345944E308])[(byte)var_1]).var_3 = (var_3 = (byte)arg_0);
++            var_4 = true ^ var_4;
++        }
++        {
++            var_1 ^= (var_3 = (var_3 = (var_3 = (byte)'U')));
++        }
++        var_3 = (var_3 = (var_3 = (var_3 = (byte)arg_1)));
++        char var_11;
++        var_1 += (var_2 = (var_7 = arg_1));
++        {
++            var_7 = (var_7 = arg_1);
++        }
++        var_7 = arg_1;
++        var_6 = (new char[(byte)1985094111797788672L][var_3 = (byte)3112604683090268160L])[var_3 = (byte)~ (var_3 = (byte)(var_5 += var_1))];
++        var_3 = (var_3 = (var_3 = (var_3 = (byte)3694858000202921984L)));
++        var_1 /= ~ ((byte)1311538336);
++        (((var_4 |= arg_2 ? !true && arg_2 : false) ? arg_2 : arg_2) ? "iih".substring(~ (var_3 = (byte)3.5401308E37F), 'g' * arg_1) : "gynskmvoj").trim();
++        var_3 = (var_3 = arg_2 ? (byte)+ ~5247392660383928320L : (byte)8392160279007184896L);
++        var_3 = (var_3 = (var_3 = (byte)var_8));
++        return (var_5 += 7.157559E37F) + (var_11 = 'V');
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_1.var_7 = "; result += Tester.Printer.print(var_7);
++        result += "\n";
++        result += "Tester_Class_1.var_3 = "; result += Tester.Printer.print(var_3);
++        result += "\n";
++        result += "Tester_Class_1.var_8 = "; result += Tester.Printer.print(var_8);
++        result += "\n";
++        result += "Tester_Class_1.var_1 = "; result += Tester.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_1.var_4 = "; result += Tester.Printer.print(var_4);
++        result += "\n";
++        result += "Tester_Class_1.var_5 = "; result += Tester.Printer.print(var_5);
++        result += "\n";
++        result += "Tester_Class_1.var_2 = "; result += Tester.Printer.print(var_2);
++        result += "\n";
++        result += "Tester_Class_1.var_9 = "; result += Tester.Printer.print(var_9);
++        result += "\n";
++        result += "Tester_Class_1.var_6 = "; result += Tester.Printer.print(var_6);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++class Tester_Class_2 extends Tester_Class_1 implements Tester_Interface_0 {
++    final static String var_18 = false | Tester_Class_1.var_4 | (Tester_Class_1.var_4 &= (Tester_Class_1.var_4 |= (Tester_Class_1.var_4 = var_4))) ? "tbobyhqne" : "";
++    static String var_19 = "acxfj";
++
++
++    public Tester_Class_2()
++    {
++        Tester_Class_1.var_4 = !Tester_Class_1.var_4;
++        var_1++;
++        var_2 = (byte)2.4009747E38F;
++        new String();
++        var_6 = (var_19 = "hsshyw");
++        var_19 = var_19;
++    }
++
++
++    public Tester_Interface_0 func_0(double[][] arg_0, final Object arg_1)
++    {
++        var_5 = 4.0352057E37F;
++        (((false && ! ((Tester_Class_1.var_4 |= !true) ^ (Tester_Class_1.var_4 ^ false))) ^ (var_4 &= true) ? var_4 : (var_4 ^= true)) ? "spskwj" : "xcqianm").length();
++        ((var_4 |= (Tester_Class_1.var_4 ^= Tester_Class_1.var_4) ? (Tester_Class_1.var_4 &= false) : (Tester_Class_1.var_4 |= Tester_Class_1.var_4)) ? (Tester_Class_1)(var_6 = new double[(byte)6.628342687109622E307]) : (Tester_Class_1)arg_1).var_6 = arg_0;
++        var_7 = (short)(byte)(short)8775325134193811456L;
++        var_4 ^= (var_4 &= !false);
++        ((Tester_Class_1)arg_1).var_3 = (var_3 = (byte)(var_5 %= 8.933448E37F));
++        Tester_Class_1 var_20 = Tester_Class_1.var_4 ? (Tester_Class_1)arg_1 : (Tester_Class_1)arg_1;
++        {
++            var_19.endsWith(var_19);
++            var_6 = var_20;
++            (var_20 = (var_20 = var_20)).var_2 = (short)('p' <= 1986176769 % (int)2242661265280256000L % 2664882044098145280L ? ~ (var_3 = (byte)1.1892553447967157E308) & ~1806805036550279168L : (var_7 = (byte)var_8));
++        }
++        final boolean var_21 = Tester_Class_1.var_4;
++        var_20.var_3 = (var_3 = (var_20.var_3 = (byte)'t'));
++        boolean var_22 = true;
++        Tester_Class_1.var_4 |= (var_4 = var_21);
++        var_19 = "ocn";
++        var_19 = var_19;
++        var_1 *= Tester_Class_1.var_8;
++        var_20 = var_22 ? var_20 : var_20;
++        var_7 = var_21 ? (byte)+ ((byte)var_1) : ((var_20 = (var_20 = var_20)).var_3 = (var_3 = (var_3 = (byte)'L')));
++        return true ? (var_20 = var_20) : (new Tester_Interface_0[(byte)5618282952859970560L])[var_3 = (byte)Tester_Class_1.var_8];
++    }
++
++
++    public boolean equals(Object obj)
++    {
++        Tester_Class_1.var_7 = (var_7 = (((Tester_Class_1)obj).var_3 = (byte)var_9));
++        {
++            final Tester_Class_1 var_23 = (Tester_Class_1)obj;
++        }
++        ++Tester_Class_1.var_1;
++        var_5 = (Tester_Class_1.var_7 = var_4 ? (Tester_Class_1.var_7 = (((Tester_Class_1)obj).var_3 = (byte)Tester_Class_1.var_8)) : (var_7 = (byte)var_9));
++        ((Tester_Class_1)obj).var_6 = var_18.replace(Tester_Class_1.var_8, Tester_Class_1.var_8);
++        ((new Tester_Class_1[((Tester_Class_1)(obj = new char[var_3 = (byte)Tester_Class_1.var_8])).var_3 = (((Tester_Class_1)obj).var_3 = (byte)(var_1 %= 787509251458841600L))])[(new byte[var_3 = (byte)Tester_Class_1.var_1])[((Tester_Class_1)obj).var_3 = (byte)1.2382548E38F]]).var_3 = (((Tester_Class_1)obj).var_3 = var_4 ? (byte)Tester_Class_1.var_8 : (byte)4.1085164E36F);
++        var_1 &= var_8;
++        var_7 = var_4 ? (var_3 = (byte)var_8) : (byte)var_5;
++        var_19 = var_18;
++        ("o".compareTo("kwlfk") > (var_2 = 5289241662482067456L) ? (Tester_Class_1)obj : (Tester_Class_1)obj).var_5 -= (((Tester_Class_1)obj).var_3 = (((Tester_Class_1)obj).var_3 = (((Tester_Class_1)obj).var_3 = (byte)var_9)));
++        return true;
++    }
++
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_2.var_7 = "; result += Tester.Printer.print(var_7);
++        result += "\n";
++        result += "Tester_Class_2.var_8 = "; result += Tester.Printer.print(var_8);
++        result += "\n";
++        result += "Tester_Class_2.var_3 = "; result += Tester.Printer.print(var_3);
++        result += "\n";
++        result += "Tester_Class_2.var_18 = "; result += Tester.Printer.print(var_18);
++        result += "\n";
++        result += "Tester_Class_2.var_19 = "; result += Tester.Printer.print(var_19);
++        result += "\n";
++        result += "Tester_Class_2.var_1 = "; result += Tester.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_2.var_4 = "; result += Tester.Printer.print(var_4);
++        result += "\n";
++        result += "Tester_Class_2.var_5 = "; result += Tester.Printer.print(var_5);
++        result += "\n";
++        result += "Tester_Class_2.var_2 = "; result += Tester.Printer.print(var_2);
++        result += "\n";
++        result += "Tester_Class_2.var_9 = "; result += Tester.Printer.print(var_9);
++        result += "\n";
++        result += "Tester_Class_2.var_6 = "; result += Tester.Printer.print(var_6);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++class Tester_Class_3 extends Tester_Class_2 implements Tester_Interface_0 {
++    long var_24 = 9026266006808413184L;
++    char var_25;
++    String var_26 = ((var_4 ^= Tester_Class_1.var_4) ? (!true ? false : (var_4 |= true)) : (Tester_Class_2.var_4 ^= var_4)) ? "dkmhvhl" : (var_19 = (Tester_Class_2.var_19 = (Tester_Class_2.var_19 = var_18)));
++    static Tester_Class_2 var_27;
++    short var_28 = Tester_Class_2.var_7 = (short)(Tester_Class_2.var_1 &= (var_3 = (var_3 = (var_3 = (byte)Tester_Class_2.var_9))));
++    static boolean var_29 = false;
++    static Object[][] var_30;
++    int var_31 = 750583762;
++    Tester_Class_2 var_32;
++    final static long var_33 = 3050784555932008448L;
++
++
++    public Tester_Class_3()
++    {
++        byte[] var_34;
++        var_4 &= (Tester_Class_1.var_4 = true);
++        Tester_Class_1.var_1--;
++        switch (var_28 >>= ~ ((byte)var_28))
++        {
++            case 9:
++
++            case 26:
++                Tester_Class_1.var_4 ^= Tester_Class_1.var_4;
++                (Tester_Class_2.var_19 = "pwtic").indexOf(Tester_Class_2.var_18);
++                var_26.indexOf(var_19);
++                ((Tester_Class_1)(new Tester_Interface_0[(byte)var_5])[var_24 <= var_31 ? (byte)'^' : (byte)var_24]).var_2 = 5611775846881101824L;
++                var_29 |= (Tester_Class_2.var_4 ^= var_29);
++                Tester_Class_2 var_35;
++                var_24 <<= (var_31 >>= (var_25 = var_8));
++                break;
++
++            case 28:
++
++        }
++        new String();
++        var_5 %= (var_25 = 'n');
++        ((Tester_Class_2)(Tester_Class_1)(((Tester_Class_1)(var_6 = Tester_Class_2.var_18)).var_6 = (var_26 = ""))).var_2 = var_31;
++        --var_1;
++    }
++
++
++
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_3.var_8 = "; result += Tester.Printer.print(var_8);
++        result += "\n";
++        result += "Tester_Class_3.var_25 = "; result += Tester.Printer.print(var_25);
++        result += "\n";
++        result += "Tester_Class_3.var_1 = "; result += Tester.Printer.print(var_1);
++        result += "\n";
++        result += "Tester_Class_3.var_31 = "; result += Tester.Printer.print(var_31);
++        result += "\n";
++        result += "Tester_Class_3.var_30 = "; result += Tester.Printer.print(var_30);
++        result += "\n";
++        result += "Tester_Class_3.var_24 = "; result += Tester.Printer.print(var_24);
++        result += "\n";
++        result += "Tester_Class_3.var_33 = "; result += Tester.Printer.print(var_33);
++        result += "\n";
++        result += "Tester_Class_3.var_5 = "; result += Tester.Printer.print(var_5);
++        result += "\n";
++        result += "Tester_Class_3.var_2 = "; result += Tester.Printer.print(var_2);
++        result += "\n";
++        result += "Tester_Class_3.var_9 = "; result += Tester.Printer.print(var_9);
++        result += "\n";
++        result += "Tester_Class_3.var_7 = "; result += Tester.Printer.print(var_7);
++        result += "\n";
++        result += "Tester_Class_3.var_28 = "; result += Tester.Printer.print(var_28);
++        result += "\n";
++        result += "Tester_Class_3.var_3 = "; result += Tester.Printer.print(var_3);
++        result += "\n";
++        result += "Tester_Class_3.var_18 = "; result += Tester.Printer.print(var_18);
++        result += "\n";
++        result += "Tester_Class_3.var_19 = "; result += Tester.Printer.print(var_19);
++        result += "\n";
++        result += "Tester_Class_3.var_26 = "; result += Tester.Printer.print(var_26);
++        result += "\n";
++        result += "Tester_Class_3.var_4 = "; result += Tester.Printer.print(var_4);
++        result += "\n";
++        result += "Tester_Class_3.var_29 = "; result += Tester.Printer.print(var_29);
++        result += "\n";
++        result += "Tester_Class_3.var_27 = "; result += Tester.Printer.print(var_27);
++        result += "\n";
++        result += "Tester_Class_3.var_32 = "; result += Tester.Printer.print(var_32);
++        result += "\n";
++        result += "Tester_Class_3.var_6 = "; result += Tester.Printer.print(var_6);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++public class Tester {
++    static double var_36 = 2.679028326789642E307;
++    float var_37;
++    String var_38 = Tester_Class_2.var_18;
++    static Tester_Interface_0 var_39;
++    static char var_40 = 'D';
++    Tester_Class_1 var_41;
++    static int var_42;
++    final static boolean var_43 = false;
++
++
++    final static Tester_Class_2 func_0(Tester_Class_1 arg_0, final Tester_Class_2 arg_1)
++    {
++        "ooots".replaceFirst("rdxor", ((new Tester_Class_3[arg_1.var_3 = (byte)2.7836305E38F])[arg_0.var_3 = (byte)+ + +1.4958218616334936E307]).var_26);
++        if (true)
++        {
++            arg_0 = (Tester_Class_3)arg_0;
++            ((Tester_Class_3)arg_0).var_25 = var_40;
++            final Tester_Class_2 var_44 = (Tester_Class_2)((Tester_Class_3.var_29 |= var_43) ? arg_0 : (arg_0.var_6 = Tester_Class_3.var_18));
++        }
++        else
++        {
++            var_39 = (Tester_Class_3.var_27 = (Tester_Class_3)arg_1);
++        }
++        Tester_Class_3.var_19 = "onndgsil";
++        var_39 = arg_0;
++        return (Tester_Class_2.var_4 &= Tester_Class_2.var_4 ^ true) ? (((Tester_Class_3)arg_0).var_32 = (Tester_Class_3)arg_1) : (((Tester_Class_3)arg_0).var_32 = (Tester_Class_3)arg_1);
++    }
++
++    private final static float func_1(final short arg_0, int[][] arg_1, final long arg_2)
++    {
++        Tester_Class_2.var_1 *= arg_0;
++        double var_45 = 6.841391103184752E307;
++        long var_46;
++        Tester_Class_2.var_1--;
++        --var_40;
++        ++var_40;
++        ++Tester_Class_3.var_1;
++        Tester_Class_1.var_4 = false;
++        var_36 %= 'X';
++        ++Tester_Class_2.var_1;
++        Tester_Class_1.var_1++;
++        return 3.2422038E38F;
++    }
++
++    private final static char func_2(double arg_0, final byte arg_1, int arg_2)
++    {
++        --Tester_Class_3.var_1;
++        if (Tester_Class_1.var_4)
++        {
++            if (var_43)
++            {
++                Tester_Class_3.var_1++;
++            }
++            else
++            {
++                var_40 <<= 1329560515532651520L;
++            }
++            (false & Tester_Class_2.var_4 ? (new Tester_Class_1[arg_1])[arg_1] : (new Tester_Class_1[arg_1][arg_1])[arg_1][arg_1]).var_3 = arg_1;
++            Tester_Class_2.var_19 = Tester_Class_3.var_19;
++            --var_40;
++            final long var_47 = ~Tester_Class_3.var_33 << var_40--;
++            ((Tester_Class_3)(new Tester_Class_2[arg_1][arg_1])[arg_1][arg_1]).var_24 *= (var_36 *= (long)arg_1 * ~arg_1);
++            Tester_Class_2.var_19 = Tester_Class_2.var_19;
++            ++((new Tester_Class_3[arg_1])[arg_1]).var_24;
++        }
++        else
++        {
++            var_40++;
++        }
++        var_40 <<= var_40;
++        if (true)
++        {
++            ++arg_2;
++        }
++        else
++        {
++            Tester_Class_2.var_7 = arg_1;
++        }
++        boolean var_48 = true;
++        var_36 /= arg_1;
++        final short var_49 = 15276;
++        Tester_Interface_0 var_50;
++        ((Tester_Class_2.var_19 = (Tester_Class_2.var_19 = Tester_Class_2.var_19)) + "xhi").toString();
++        arg_2++;
++        return var_40;
++    }
++
++    public final static char func_4(final boolean arg_0)
++    {
++        float var_52 = 2.8063675E38F;
++        var_40--;
++        Object var_53;
++        Tester_Class_3.var_29 |= (Tester_Class_3.var_29 &= true);
++        if (!Tester_Class_1.var_4)
++        {
++            --var_40;
++        }
++        else
++        {
++            var_52 %= 2027756834;
++        }
++        int var_54 = Tester_Class_1.var_1++;
++        var_40--;
++        long var_55;
++        byte var_56 = 97;
++        var_36 *= 9.75628909363086E307 % + -1.9812653793936264E306;
++        int var_57;
++        boolean var_58 = Tester_Class_1.var_4 ^= var_43;
++        return 'J';
++    }
++
++    static float func_5(final Object arg_0, float arg_1, final Tester_Class_2 arg_2)
++    {
++        var_39 = arg_2;
++        Tester_Class_3.var_27 = arg_2;
++        arg_1 %= 1.7777554E38F;
++        var_39 = (Tester_Class_3.var_27 = arg_2);
++        Tester_Class_3 var_59;
++        {
++            var_40 -= arg_1 - ~ (((Tester_Class_3)arg_2).var_3 = (byte)1455854212);
++        }
++        Object var_60 = Tester_Class_1.var_4 ? arg_0 : new String[arg_2.var_3 = (byte)arg_1][(byte)((Tester_Class_3)arg_0).var_28];
++        Tester_Class_3.var_27 = (Tester_Class_2)(var_39 = arg_2);
++        ((Tester_Class_3.var_4 |= var_43) ? (var_59 = (var_59 = (var_59 = (Tester_Class_3)var_60))) : (var_59 = (Tester_Class_3)arg_2)).var_24 ^= Tester_Class_3.var_1;
++        return Tester_Class_1.var_9;
++    }
++
++    private static void func_6(char arg_0, final Tester_Class_3 arg_1, String arg_2, final double arg_3)
++    {
++        ((new Tester_Class_1[(byte)arg_1.var_28])[(arg_1.var_32 = arg_1).var_3 = (byte)var_40]).var_2 = Tester_Class_3.var_9;
++        double var_61;
++        (true ? (arg_1.var_32 = arg_1) : (arg_1.var_32 = (Tester_Class_3.var_27 = (arg_1.var_32 = arg_1)))).var_6 = var_43 | (Tester_Class_2.var_4 = !Tester_Class_3.var_4) ? (arg_1.var_26 = arg_2) : (Tester_Class_2.var_19 = Tester_Class_2.var_18);
++    }
++
++    private final char func_7(int arg_0)
++    {
++        Tester_Class_2.var_4 &= var_43;
++        float var_62 = Tester_Class_3.var_9;
++        --var_40;
++        int var_63 = Tester_Class_1.var_1++;
++        {
++            "nncjfoit".indexOf((new int[(byte)'\\'])[(byte)var_36]);
++            if (var_43)
++            {
++                ((new Tester_Class_3[(byte)var_40][(byte)Tester_Class_2.var_1])[(byte)5046997225818337280L][(byte)var_63]).var_24 >>>= var_40;
++            }
++            else
++            {
++                --var_40;
++            }
++            --Tester_Class_2.var_1;
++            --var_63;
++        }
++        {
++            final byte var_64 = Tester_Class_1.var_4 ? (byte)'M' : (byte)(var_62 -= + ((byte)Tester_Class_1.var_8));
++            float var_65;
++            var_62 *= ((Tester_Class_3)(new Tester_Interface_0[var_64])[var_64]).var_24++;
++            var_36 /= var_64;
++            {
++                double var_66;
++            }
++            var_40 += 3500240160155094016L;
++            ((new Tester_Class_1[var_64][var_64])[var_64][var_64]).var_3 = (byte)(Tester_Class_2.var_7 = (Tester_Class_1.var_7 = (Tester_Class_1.var_7 = (Tester_Class_1.var_7 = var_64))));
++            ++Tester_Class_3.var_1;
++        }
++        --arg_0;
++        {
++            arg_0++;
++        }
++        Tester_Class_2.var_1++;
++        var_40 &= (short)((byte)Tester_Class_2.var_8 >> (((new Tester_Class_3[(byte)var_36])[(byte)(var_40 = Tester_Class_3.var_8)]).var_3 = (byte)((byte)3.3531374E38F * var_40)));
++        var_36 %= (var_62 = (byte)900943133);
++        var_36 = Tester_Class_3.var_33;
++        var_62 += (var_40 /= (byte)6766658341842315264L % (byte)'p') * (short)2019461672;
++        --var_40;
++        if (true)
++        {
++            var_62 *= 365879806965555200L;
++        }
++        else
++        {
++            var_36 -= ~9163555887358003200L;
++        }
++        Tester_Class_1.var_4 = Tester_Class_1.var_4;
++        {
++            var_40 <<= var_63;
++        }
++        var_40++;
++        String var_67;
++        return Tester_Class_1.var_8;
++    }
++
++    private final static Tester_Interface_0 func_8(char arg_0, final Tester_Class_2 arg_1, final String arg_2)
++    {
++        ((new Tester[(byte)((Tester_Class_3)arg_1).var_28])[((Tester_Class_1)(var_39 = arg_1)).var_3 = ((Tester_Class_3.var_27 = (Tester_Class_3)arg_1).var_3 = (byte)+ -9.9100855E36F)]).var_38 = (var_43 ? "k" : Tester_Class_2.var_19).substring(350785312);
++        return (new Tester_Interface_0[(byte)'l'])[((Tester_Class_1)(var_39 = (Tester_Class_3.var_27 = (Tester_Class_3)arg_1))).var_3 = ((Tester_Class_3.var_27 = arg_1).var_3 = (((Tester_Class_3)arg_1).var_3 = (arg_1.var_3 = (arg_1.var_3 = (byte)'['))))];
++    }
++
++    private final int func_9(Tester_Class_3 arg_0, char arg_1)
++    {
++        final float var_68 = Tester_Class_3.var_9;
++        Tester_Class_2.var_18.toLowerCase();
++        double var_69;
++        {
++            Tester_Class_3.var_29 ^= !false || Tester_Class_2.var_4;
++        }
++        Tester_Class_1 var_70;
++        (Tester_Class_3.var_27 = (Tester_Class_2)(var_70 = arg_0)).var_6 = (Tester_Class_2)((var_41 = arg_0).var_6 = (arg_0.var_6 = arg_0));
++        "hv".codePointBefore(--Tester_Class_2.var_1);
++        var_41 = arg_0;
++        return ~ (((arg_0 = arg_0).var_24 &= arg_1) == 3.0764282E38F ? (byte)457565863 : ((arg_0 = arg_0).var_3 = (byte)arg_0.var_28));
++    }
++
++    private static void func_10(double arg_0, final Tester_Class_3 arg_1, double arg_2)
++    {
++        arg_1.var_32 = 'g' != 1.520646515461986E307 ? (arg_1.var_32 = arg_1) : arg_1;
++        Tester_Class_2.var_19.startsWith(Tester_Class_2.var_19 = Tester_Class_3.var_18);
++        Tester_Class_1.var_4 ^= true & (arg_1.var_3 = (arg_1.var_3 = (byte)- ((byte)1.4509185661781193E308))) > (arg_1.var_2 = var_40);
++        var_36 += Tester_Class_3.var_9;
++    }
++
++    Tester_Interface_0 func_12(final Object arg_0, float arg_1)
++    {
++        switch (((Tester_Class_3)arg_0).var_3 = (byte)arg_1)
++        {
++            case 4:
++                var_41 = (Tester_Class_3)(var_39 = (Tester_Class_3.var_27 = (Tester_Class_3.var_27 = (Tester_Class_3)arg_0)));
++                double var_72 = (double)3858573493713776640L;
++                byte var_73 = (var_41 = (Tester_Class_2)arg_0).var_3 = (((Tester_Class_3)arg_0).var_3 = (byte)var_72);
++                break;
++
++            case 13:
++                (Tester_Class_3.var_27 = (((Tester_Class_3)arg_0).var_32 = (Tester_Class_3)(Tester_Class_2)arg_0)).var_3 = (Tester_Class_2.var_1 *= ((Tester_Class_3)arg_0).var_24) == (byte)Tester_Class_3.var_33 ? (byte)188693954866039808L : (byte)Tester_Class_2.var_8;
++                break;
++
++            default:
++                var_40 <<= (byte)157510337;
++                break;
++
++            case 26:
++
++            case 122:
++
++        }
++        Tester_Interface_0 var_74;
++        long var_75;
++        var_41 = (var_41 = (var_41 = (Tester_Class_2)arg_0));
++        arg_1 *= 1601420762;
++        var_74 = (var_41 = Tester_Class_1.var_4 ? (Tester_Class_3)arg_0 : (Tester_Class_2)arg_0);
++        (Tester_Class_1.var_4 ? (Tester_Class_3)(var_39 = (Tester_Class_3)arg_0) : (true ? (Tester_Class_3)arg_0 : (Tester_Class_3)arg_0)).var_28 *= 1066935145;
++        var_40 >>>= (byte)6.643183E36F / - ((byte)1.277596E37F);
++        {
++            ((Tester_Class_3)(((Tester_Class_3)((Tester_Class_3.var_29 ^= (Tester_Class_3.var_29 &= var_43)) ? (Tester_Class_2)arg_0 : (Tester_Class_2)arg_0)).var_32 = (Tester_Class_3.var_27 = (Tester_Class_2)arg_0))).var_28--;
++        }
++        var_38 = "qad";
++        byte var_76 = ((Tester_Class_2)(var_39 = (Tester_Class_3)arg_0)).var_3 = true ? ((var_41 = (var_41 = (Tester_Class_3)arg_0)).var_3 = (byte)1.7128118638075888E308) : (byte)1.6562746603631249E308;
++        return var_39 = (Tester_Class_3)((var_41 = (Tester_Class_3)arg_0).var_6 = Tester_Class_2.var_18);
++    }
++
++    protected final String func_13()
++    {
++        float var_77;
++        var_38 = (Tester_Class_2.var_19 = var_38);
++        Tester_Class_2.var_4 ^= !var_43 | (Tester_Class_3.var_29 ^= Tester_Class_1.var_4);
++        Tester_Class_3.var_1--;
++        Tester_Class_2.var_1++;
++        return Tester_Class_2.var_18;
++    }
++
++    public static String execute()
++    {
++        try {
++            Tester t = new Tester();
++            try { t.test(); }
++            catch(Throwable e) { }
++            try { return t.toString(); }
++            catch (Throwable e) { return "Error during result conversion to String"; }
++        } catch (Throwable e) { return "Error during test execution"; }
++    }
++
++    public static void main(String[] args)
++    {
++        try {
++            Tester t = new Tester();
++            try { t.test(); }
++            catch(Throwable e) { }
++            try { System.out.println(t); }
++            catch(Throwable e) { }
++        } catch (Throwable e) { }
++    }
++
++    private void test()
++    {
++        int var_78 = 0;
++        var_39 = (new Tester_Class_1[(byte)var_40])[(byte)Tester_Class_3.var_33];
++        while (var_43 && (var_78 < 70 && true))
++        {
++            var_40 *= ~ ~Tester_Class_3.var_33 % Tester_Class_3.var_9;
++            var_78++;
++            var_39 = new Tester_Class_3();
++            var_39 = (var_41 = (Tester_Class_3.var_27 = new Tester_Class_2()));
++        }
++        final Tester_Class_3 var_79 = (Tester_Class_1.var_4 ? ~Tester_Class_3.var_33 : var_36) == 1433764895112462336L ? new Tester_Class_3() : new Tester_Class_3();
++        Tester_Class_2 var_80;
++    }
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester.var_40 = "; result += Printer.print(var_40);
++        result += "\n";
++        result += "Tester.var_42 = "; result += Printer.print(var_42);
++        result += "\n";
++        result += "Tester.var_36 = "; result += Printer.print(var_36);
++        result += "\n";
++        result += "Tester.var_37 = "; result += Printer.print(var_37);
++        result += "\n";
++        result += "Tester.var_39 = "; result += Printer.print(var_39);
++        result += "\n";
++        result += "Tester.var_38 = "; result += Printer.print(var_38);
++        result += "\n";
++        result += "Tester.var_43 = "; result += Printer.print(var_43);
++        result += "\n";
++        result += "Tester.var_41 = "; result += Printer.print(var_41);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++    static class Printer
++    {
++        public static String print(boolean arg) { return String.valueOf(arg); }
++        public static String print(byte arg)    { return String.valueOf(arg); }
++        public static String print(short arg)   { return String.valueOf(arg); }
++        public static String print(char arg)    { return String.valueOf((int)arg); }
++        public static String print(int arg)     { return String.valueOf(arg); }
++        public static String print(long arg)    { return String.valueOf(arg); }
++        public static String print(float arg)   { return String.valueOf(arg); }
++        public static String print(double arg)  { return String.valueOf(arg); }
++
++
++        public static String print(Object arg)
++        {
++            return print_r(new java.util.Stack(), arg);
++        }
++
++        private static String print_r(java.util.Stack visitedObjects, Object arg)
++        {
++            String result = "";
++            if (arg == null)
++                result += "null";
++            else
++            if (arg.getClass().isArray())
++            {
++                for (int i = 0; i < visitedObjects.size(); i++)
++                    if (visitedObjects.elementAt(i) == arg) return "<recursive>";
++
++                visitedObjects.push(arg);
++
++                final String delimiter = ", ";
++                result += "[";
++
++                if (arg instanceof Object[])
++                {
++                    Object[] array = (Object[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print_r(visitedObjects, array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof boolean[])
++                {
++                    boolean[] array = (boolean[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof byte[])
++                {
++                    byte[] array = (byte[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof short[])
++                {
++                    short[] array = (short[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof char[])
++                {
++                    char[] array = (char[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof int[])
++                {
++                     int[] array = (int[]) arg;
++                     for (int i = 0; i < array.length; i++)
++                     {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                     }
++                }
++                else
++                if (arg instanceof long[])
++                {
++                    long[] array = (long[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof float[])
++                {
++                    float[] array = (float[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof double[])
++                {
++                    double[] array = (double[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++
++                result += "]";
++                visitedObjects.pop();
++
++            } else
++            {
++                result += arg.toString();
++            }
++
++            return result;
++        }
++    }
++}
++
++
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6716441/Tester.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6716441/Tester.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,940 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ */
++
++/*
++ * @test
++ * @bug 6716441
++ * @summary error in meet with +DoEscapeAnalysis
++ * @run main/othervm -Xcomp -XX:+AggressiveOpts Tester
++ */
++
++/* Complexity upper bound: 70070 ops */
++
++class Tester_Class_0 {
++    Object var_1;
++
++
++    public Tester_Class_0()
++    {
++        var_1 = "cmlv";
++        {
++            final Object var_7 = false ? (var_1 = "flwnujmm") : (var_1 = "");
++        }
++        float var_8 = 0F;
++        boolean var_9;
++        do
++        {
++            ((var_9 = (var_9 = (var_9 = false))) && true ? new String("yvirc") : "rmfkjbx").indexOf(99854165);
++            var_8++;
++            boolean var_10 = true;
++            var_10 |= true ? true : false;
++            var_10 |= false | var_10 ? (var_10 |= true) : true;
++        } while (var_8 < 1 && "tpb".charAt(~ ((byte)2449669946597620736L)) >>> (byte)1.704554E38F >= ('t' < var_8 ? (short)var_8 : 1237471887 / +4199632387838836736L));
++        var_1 = (var_1 = "y");
++        switch ((var_9 = "".equalsIgnoreCase("kqalxwsnu") | false) ? (new char[(byte)1.3230508534158742E308])[(byte)(short)93390917] : 'c')
++        {
++            case 'U':
++
++            case 'W':
++
++            case 'A':
++
++            case 72:
++
++        }
++        var_9 = (var_9 = false);
++        float var_11 = 0F;
++        var_9 = true;
++        for (var_1 = (var_1 = new boolean[(new byte[(byte)'O'])[(byte)'l']]); var_11 < 2; var_1 = (true ? "" : "nn").toUpperCase())
++        {
++            var_9 = true;
++            var_11++;
++            var_9 = true;
++            int var_12 = (new short[(byte)1825213428])[(byte)1.6151095881186834E308] + (byte)(short)'V';
++        }
++        var_1 = (new boolean[(byte)1546704177][(byte)6314352927310996480L][(byte)6838913812451802112L])["e".equalsIgnoreCase("d") ? (byte)3.964472879846357E307 : (byte)'L'];
++        var_9 = (var_9 = false);
++    }
++
++
++
++    protected Object clone()
++    {
++        var_1 = (var_1 = "dbogknllu");
++        var_1 = "jljax";
++        var_1 = (var_1 = false ? "s" : "upqinst");
++        if (false)
++        {
++            var_1 = (var_1 = (var_1 = "nwhu"));
++        }
++        else
++        {
++            short var_2;
++            var_2 = false ? (byte)((short)'e' - (byte)2.267975E38F) : (byte)1.28920093132789E308;
++        }
++        (((byte)2.3450009E38F >= (byte)- (+ - -1.6256751428449317E306 * 954071273906192384L) ? true : true) ? "gpv".substring(468176669, 1915798010) : "macqbvf").offsetByCodePoints("ivwivjege".charAt(1819923298) >>> (byte)((- ~653213024937366528L + 'N') * +1.0297164E38F) + (short)~ + -4535402293751053312L, (short)3837656677199316992L + (new byte[(byte)2.1586717E38F])[(byte)((short)719847962 - 8.599263E37F)]);
++        new String((char)650047353 > (short)'I' ? "maygldu".replaceAll("hpn", "bacoyows") : "nkx").endsWith(new String("h" + "vx"));
++        byte var_3;
++        return var_1 = "vbiccvdu";
++    }
++
++    public boolean equals(Object obj)
++    {
++        var_1 = "rxpocj";
++        obj = "ndogtwvuh";
++        {
++            {
++                var_1 = "vmdkvs";
++            }
++            final boolean var_4 = false;
++            long var_5;
++            var_5 = (short)'G' >> + ((byte)1.1872624048733707E308);
++        }
++        var_1 = (new byte[(byte)(short)1.7804576633213148E308][(byte)(short)8.300151422843056E307])[(byte)3110360603258978304L];
++        obj = "fudebwroh";
++        obj = new Object[(false && false) & false ? (byte)8796624364629753856L : (byte)- +1.5843542184394165E308];
++        if (true)
++        {
++            var_1 = new float[(byte)1372189277][(byte)((byte)8.352642520619892E307 == (! !false ^ true ? (short)1.3871033E37F : (byte)'f') ? 7.33899E37F - (short)2.2558552E37F : 2.6072269E38F)];
++        }
++        else
++        {
++            var_1 = obj;
++            obj = new boolean[(byte)8.623747E37F][(byte)~ ((byte)(short)(byte)2100816354)];
++        }
++        var_1 = new int[(new byte[(byte)7410132537719084032L])[(byte)1524949007]][(byte)((long)9188640 ^ 'n')];
++        if (-3.0364305E38F > 8.114229090672013E307)
++        {
++            var_1 = (var_1 = new boolean[(byte)1.0354788699727844E308][(byte)-4867581638981979136L]);
++        }
++        else
++        {
++            obj = (obj = obj);
++            obj = (new int[(byte)'f'][(byte)7563033606293564416L])[(byte)2052737645];
++        }
++        long var_6;
++        var_6 = (+ + ~3862500564271147008L != (short)8549491352795953152L || (byte)+ + (var_6 = 'D') > (var_6 = 1687952259)) && true ? (short)1756260278 : (byte)(short)3.202384E36F;
++        return false ^ ((false ? !true : true) ? false : (true ? ! !false : false));
++    }
++
++
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_0.var_1 = "; result += Tester.Printer.print(var_1);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++
++interface Tester_Interface_1 {
++}
++
++
++final class Tester_Class_2 extends Tester_Class_0 {
++    static char var_13;
++    final static long var_14 = ~ ~ (((false ? !true ^ !true : !false | true) ? (byte)1.4363583E38F : (byte)(short)'X') * + + +3767002589844008960L << (var_13 = (var_13 = 'X')));
++
++
++    public Tester_Class_2()
++    {
++        ((true ? (byte)- ((byte)2.6338962E38F) : (byte)'H') <= (short)8.671266E37F || !false & true ? (Tester_Class_0)(var_1 = "tgoexsr") : (Tester_Class_0)(var_1 = "mptusv")).var_1 = "tbxbgyti";
++        var_1 = true ? (var_1 = "islgpxwa") : "rypkbu";
++        var_1 = "vngiif";
++        var_13 = (var_13 = (short)~ (-3250577075350561792L + +2983539228635145216L - '`') < 861590495 * (short)1.5299644E38F ? 'V' : 'G');
++        Object[] var_27;
++        var_1 = (var_1 = "glu");
++    }
++
++
++
++
++
++    private static int func_0(Tester_Interface_1 arg_0, Tester_Interface_1 arg_1, final int arg_2)
++    {
++        var_13 = 'i';
++        new String();
++        (true ? "pu" : "oltbcysyd").substring(1236315614);
++        byte var_15;
++        var_15 = (new byte[(byte)1582653493940204544L][(byte)(char)-1.5806537192822515E308])[(byte)1.2986292E38F][(byte)(short)arg_2];
++        if (true || true)
++        {
++            ((new Tester_Class_2[var_15 = (byte)'q'])[var_15 = 7.653082E37F < (var_13 = 'o') ? (byte)- - + +3.1640875E38F : (byte)-6820511772487837696L]).var_1 = (new Tester_Class_0[(byte)(short)(new byte[(byte)1080194717])[(byte)8297829563314362368L]])[var_15 = (var_15 = (var_15 = (var_15 = (byte)'t')))];
++            double[] var_16;
++        }
++        else
++        {
++            arg_1 = (arg_1 = arg_0);
++        }
++        var_13 = (var_13 = 'o');
++        var_13 = (false || false ^ false) ^ !true ? 'Z' : (var_13 = 'i');
++        return true ? (var_15 = (byte)'C') : 1120493294;
++    }
++
++    static double func_1(final int arg_0, long arg_1, long arg_2)
++    {
++        "ghtfhmbeg".compareToIgnoreCase("djn");
++        {
++            ((true ? true : ! !true) ? "" : "ioowivxge").substring(1844979226, "ppsk".startsWith("lllmn") | false ? arg_0 * arg_0 : (byte)663320199);
++            ((Tester_Class_0)(((new Tester_Class_2[(byte)4797509007239530496L])[(byte)(- -2.8961086E38F - arg_1)]).var_1 = new float[(byte)('m' / 6.0657416E37F)])).var_1 = new boolean[(byte)(short)(+4.515459E37F - (short)arg_0)][(byte)(-1.3002677717712297E308 + (var_13 = "bcjfdnc".charAt(arg_0)) * (arg_2 - 1.6058080036165979E308))];
++            var_13 = 'E';
++        }
++        float var_17 = 0F;
++        --arg_1;
++        do
++        {
++            final String[] var_18 = new String[(byte)(short)arg_0];
++            var_17++;
++            Object var_19 = (new Object[(byte)var_17])[(false ? "xfkx".equalsIgnoreCase("j") : !false) ^ !false ? (byte)(1.6627987E35F * 2.62825E38F) : (byte)var_17];
++        } while (var_17 < 2 && false | ((byte)1.4661115E38F | arg_0 - 'l') < ('J' & (byte)+ ((float)1200013759)));
++        long var_20 = 0L;
++        arg_2--;
++        for (var_13 = (var_13 = (var_13 = (var_13 = (var_13 = (var_13 = 'p'))))); var_20 < 4; var_13 = 'y')
++        {
++            new String((true | true ? "oxpfy" : "gaynucv") + (true ? "cmrrk".substring(653981013, arg_0) : "ociewl" + "srhbvcgci"));
++            var_20++;
++            arg_2 >>= arg_0;
++            arg_2 = false ? (byte)'l' : (byte)(~var_20 - (byte)1.1290483681734838E308);
++        }
++        ((new Tester_Class_2[(byte)arg_1++])[(byte)685259385]).var_1 = new Tester_Interface_1[(byte)arg_0];
++        --arg_1;
++        var_13 = 483446392 - (byte)'P' < ((short)(true ? (var_13 = 't') : 'n') & (short)'l') ? (var_13 = 'q') : (var_13 = (var_13 = 'h'));
++        var_13 = 'y';
++        return 1.097000731360761E308;
++    }
++
++    private final boolean func_2(final short[][] arg_0, byte arg_1, Object arg_2)
++    {
++        var_1 = new char[arg_1];
++        arg_1 /= (var_13 = 'A') + -var_14;
++        int var_21 = 0;
++        arg_2 = (new Tester_Class_0[arg_1 += var_14][arg_1])[arg_1 >>>= 'R' + + -var_14 - 4078879817303787520L];
++        for (arg_1--; (+ +1.1473423E38F < 'w' & false | var_21 != (short)4633877342445358080L | !false ? false | !false : true) && (var_21 < 1 && (arg_0[arg_1])[arg_1 %= 7.136449148111178E307] > 7.362329280963185E307); arg_1++)
++        {
++            arg_1 = (arg_1 %= + -9.872181578576624E307);
++            var_21++;
++            arg_1 /= 7.365334241099395E307;
++            var_13 = (var_13 = (var_13 = (var_13 = (var_13 = (var_13 = 'A')))));
++        }
++        arg_1 >>= var_14;
++        boolean var_22 = false;
++        return ((var_22 &= true) && var_22 ? (short)1.568578228250838E308 : arg_1) >= (new float[arg_1])[arg_1 /= 1.6849858816110731E308];
++    }
++
++    public final String func_3(Tester_Interface_1 arg_0)
++    {
++        arg_0 = arg_0;
++        arg_0 = (arg_0 = arg_0);
++        var_13 = (var_13 = (var_13 = (var_13 = "rqimya".charAt(390686412))));
++        ((Tester_Class_0)(var_1 = "suxd")).var_1 = new Tester_Class_0[(byte)(float)(short)1.584667675541511E308];
++        arg_0 = ((byte)+ + - +1.3636011E38F == 'L' ^ true) & (!true | true) ? (arg_0 = arg_0) : arg_0;
++        var_1 = (((Tester_Class_0)(var_1 = (Tester_Class_0)(var_1 = "ndxcurdr"))).var_1 = (var_1 = (var_1 = "schnhe")));
++        var_1 = (new Object[(byte)(var_13 = (var_13 = 'G'))])[(byte)((byte)1.5366658198344074E308 - 1.0051541518022535E308)];
++        var_13 = (var_13 = 'x');
++        (true ? (Tester_Class_0)(var_1 = "slesdph") : (Tester_Class_0)(var_1 = "wxj")).var_1 = false ? (Tester_Class_0)(var_1 = "iddvoil") : (Tester_Class_0)(var_1 = "yjbxhuip");
++        var_13 = (var_13 = 'f');
++        var_1 = (new short[(byte)1.8902424351360974E307])[(new byte[(byte)1552392028])[(byte)'V']] >= (1.2449926736063704E308 + 'K') / (short)1.0847178E38F / ((short)'M' % (1.225890077244388E308 + + ((byte)1.5358312881295287E308))) ? (Tester_Class_0)(var_1 = "khfntg".toString()) : (Tester_Class_0)(var_1 = "jkttx");
++        {
++            arg_0 = arg_0;
++        }
++        arg_0 = arg_0;
++        var_13 = (true ? "jndbffakc" : "hhcsc").charAt((byte)7322932713210745856L >> (short)(var_13 = (var_13 = 'R')));
++        var_13 = (var_13 = (var_13 = 'U'));
++        {
++            "gepdu".trim();
++        }
++        var_13 = 'H';
++        new String();
++        {
++            (false ^ (true ^ ((!true | ! !true) ^ ! (1.7800668444792402E308 * var_14 >= (var_13 = (var_13 = (var_13 = 'g')))))) ? "dsm" : "g").toUpperCase().toString();
++            ((Tester_Class_0)(var_1 = "fcdvd")).var_1 = (Tester_Class_0)(((Tester_Class_0)(var_1 = "uwhnte")).var_1 = "vpatqpd");
++        }
++        switch (((byte)((byte)((int)'n' / var_14) >>> (short)7.786475993917233E307 - (var_13 = 'm')) <= (("".endsWith("pbypgis") ^ false) & true ? (byte)func_0(arg_0, arg_0, 723551781) : (short)140766856) ? true | (!false || false) : 'F' != (var_13 = 'V')) ? (var_13 = 'j') : 'D')
++        {
++            case 'p':
++
++        }
++        var_13 = (var_13 = (var_13 = 'y'));
++        var_13 = ("" + "wwbxwyt").charAt((short)8373354379880418304L << (short)(byte)1.557224945027141E308);
++        arg_0 = true ? (arg_0 = arg_0) : arg_0;
++        ((Tester_Class_0)(((Tester_Class_0)(var_1 = "rmkvbp")).var_1 = (var_1 = "gvb"))).var_1 = new Tester_Class_0[(byte)var_14];
++        arg_0 = arg_0;
++        return 2.5245162E38F + 3.9088502076337727E307 > 1.0883030748712796E308 ? "efttufmbg" : "xy";
++    }
++
++    protected short func_4(final double arg_0, long arg_1, final Object arg_2, final byte arg_3)
++    {
++        (((("ptnmpn".startsWith("xxgxjvsie") ? !true : ! !true) ? ! !false : false) ? (true ? true : false) : (var_13 = (var_13 = 'X')) == 1948276447) ? (Tester_Class_0)(var_1 = new float[arg_3][arg_3]) : (Tester_Class_0)arg_2).var_1 = new double[(new byte[arg_3][arg_3])[arg_3][arg_3]][arg_3];
++        boolean var_23;
++        return true ? (short)'r' : (byte)(short)('\\' >>> arg_3);
++    }
++
++    final static byte func_5(final long arg_0, float arg_1, final double arg_2)
++    {
++        arg_1 = arg_2 <= ((var_13 = 'D') <= - (3463565869695079424L << 'S') ? 'a' : (var_13 = 'o')) | (true ? !false : !false) ? (byte)(short)(var_13 = 'r') : (short)(byte)'S';
++        {
++            {
++                arg_1 %= '_';
++            }
++            char var_24 = 'G';
++            "hc".lastIndexOf("");
++            arg_1 *= (arg_1 /= (byte)-8.308933840953204E306);
++            --var_24;
++            arg_1 /= ~ ((byte)2.2736606E38F) <= (3392301601783633920L == 3.015267E38F ^ ! !true ? (byte)88382550 : (byte)1.2019729E38F) ? 1027309963 : + -4.355887546298483E307;
++            ((new Tester_Class_2[(byte)arg_2])[(byte)870592870]).var_1 = "i";
++            arg_1 /= 't';
++        }
++        var_13 = 'f';
++        Tester_Class_0 var_25 = (new Tester_Class_0[(byte)arg_1])[(true | false ^ !false) & ! !true & - +2.758844E38F >= (new short[(byte)5.9160883E37F])[(byte)'r'] ? (byte)arg_0 : (byte)((short)1802078016 & arg_0)];
++        arg_1 /= (byte)arg_2;
++        var_13 = 'R';
++        boolean var_26 = (true ? false : !false) ? false : !true == ! !false;
++        arg_1 %= (var_26 ^= (byte)1101752087 <= (short)arg_1) ? arg_1 : (float)1882235314;
++        var_25 = var_25;
++        if (var_26 &= var_26)
++        {
++            var_13 = "".startsWith("vp", - ((byte)2040501187) ^ (byte)-3921263616446438400L) ? "gam".charAt(+ ((byte)arg_1)) : (var_13 = 'H');
++            arg_1 /= var_26 | ! (var_26 ^ (byte)arg_0 <= (var_13 = 'r') | (var_26 |= var_26)) ? 'N' : ~8963227563301903360L;
++        }
++        else
++        {
++            var_13 = 'l';
++            var_25 = (var_25 = var_25);
++        }
++        arg_1 += (byte)(("m".substring(837996717, 861903057).startsWith("vwpky", (var_13 = 'Z') % (byte)arg_1) ? !false ^ !var_26 : var_26) ? (byte)arg_1 : ((var_26 | var_26) ^ !false ? (short)'U' : (short)'d'));
++        ((1.3445538E38F < (arg_1 -= 1236356135) ^ (var_26 = true)) & var_26 ? var_25 : (var_25 = var_25)).var_1 = true ? (var_25.var_1 = var_25) : (var_25.var_1 = var_25);
++        var_26 |= - ((byte)251113415) < (short)arg_1 & false & false;
++        arg_1 += (var_26 &= true) ? 7.546147305340402E307 : (true & !var_26 ? (byte)1.5107802154474685E307 : (byte)arg_1);
++        var_25.var_1 = true ? "bqsewhn" : "aojssvan";
++        return (byte)(var_13 = (char)(new short[(byte)46697464])[(byte)var_14]);
++    }
++
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester_Class_2.var_13 = "; result += Tester.Printer.print(var_13);
++        result += "\n";
++        result += "Tester_Class_2.var_14 = "; result += Tester.Printer.print(var_14);
++        result += "\n";
++        result += "Tester_Class_2.var_1 = "; result += Tester.Printer.print(var_1);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++}
++
++public class Tester {
++    static Tester_Class_0 var_28;
++    double var_29 = 4.861846831496217E307;
++    static byte var_30 = 79;
++    static boolean var_31 = false;
++    final byte var_32 = 48;
++
++
++    public short func_0(final byte arg_0, boolean arg_1, final double arg_2)
++    {
++        --var_30;
++        new Tester_Class_2().var_1 = "xdwldeqhc";
++        char var_33 = 'd';
++        return (var_31 = var_30 < (new short[var_30])[var_30]) ? (short)(var_33 >>>= (short)2.3152642E38F) : var_30;
++    }
++
++    private final float func_1(final long arg_0, final Tester_Class_0 arg_1, Tester_Class_0 arg_2, final char arg_3)
++    {
++        {
++            new Tester_Class_0();
++        }
++        var_30 >>= (short)1.1469118780047631E308;
++        var_31 |= var_31;
++        if (true)
++        {
++            Tester_Class_2 var_34 = (var_31 ^= (var_31 ^= false)) ? (Tester_Class_2)arg_1 : (new Tester_Class_2[var_32])[var_30];
++        }
++        else
++        {
++            "shqjwg".compareToIgnoreCase(false ? "gxoyw" + "cx" : "r" + "icj");
++        }
++        ((new Tester_Class_2[var_32])[++var_30]).var_1 = (new Object[var_30][var_32][var_32])[var_30 |= var_32];
++        arg_1.var_1 = (arg_2 = arg_2);
++        arg_1.var_1 = (((new Tester_Class_2[var_30])[var_30 = var_32]).var_1 = new String[var_32]);
++        var_28 = (Tester_Class_2)((arg_2 = arg_2).var_1 = new double[var_30]);
++        arg_2 = arg_1;
++        final boolean var_35 = "qjsdfuyru".endsWith("nuw" + "bne") | arg_3 >= 1.2054153346397785E308;
++        var_31 &= (var_31 ^= var_35);
++        {
++            var_31 &= var_31 ? false : !false;
++        }
++        if (var_31)
++        {
++            var_28 = (new Tester_Class_2[var_32])[var_32];
++        }
++        else
++        {
++            arg_1.equals((new Object[var_32])[var_32]);
++        }
++        ((var_31 ^= true) ? "x" : "euc").substring(+ (var_30 ^= var_30) & (byte)(new short[var_30])[var_30 /= 4.220757896697652E307]);
++        arg_2 = var_31 ? (Tester_Class_2)arg_1 : (Tester_Class_2)arg_2;
++        arg_2 = (Tester_Class_2)(new Object[var_32][var_32])[var_30][var_32];
++        return 9.932983E36F * (Tester_Class_2.var_13 = arg_3);
++    }
++
++    public int func_2(Tester_Class_0 arg_0)
++    {
++        "ptwusxrxn".indexOf("v");
++        var_30 |= 1770666843;
++        var_29 += (short)(Tester_Class_2.var_14 / Tester_Class_2.var_14);
++        if (var_31)
++        {
++            var_30 = var_32;
++        }
++        else
++        {
++            double var_36;
++        }
++        if (true)
++        {
++            var_30 -= 2.1474216E38F;
++        }
++        else
++        {
++            var_29 += 'f';
++        }
++        var_29 -= Tester_Class_2.var_14;
++        if (false)
++        {
++            arg_0.var_1 = arg_0;
++        }
++        else
++        {
++            arg_0 = (var_28 = (var_28 = arg_0));
++        }
++        {
++            Tester_Class_2.var_13 = 'p';
++        }
++        var_29 = ~Tester_Class_2.var_14 % 'y';
++        switch (var_30 >>>= var_30)
++        {
++            case 115:
++
++        }
++        arg_0 = arg_0;
++        var_31 ^= (var_31 = true);
++        return "".charAt(~var_32) >> ((var_31 &= true) ? var_30 : var_32);
++    }
++
++    protected double func_3(boolean[] arg_0, double arg_1, long[][] arg_2)
++    {
++        switch (var_31 ? (short)(var_32 / (arg_1 /= (int)(arg_1 *= (Tester_Class_2.var_13 = ']')))) : (var_30 ^= + +Tester_Class_2.var_14 * (+ +3075166460237931520L / '[')))
++        {
++            case 31:
++
++            case 118:
++
++        }
++        Tester_Class_2.var_13 = 'm';
++        "mwkh".indexOf("hdgiquve", (new char[var_32])[var_30 &= 'S'] % var_30);
++        final boolean var_37 = false;
++        char var_38 = 'F';
++        var_28 = (new Tester_Class_2[var_30][var_30])[var_30 *= var_38][var_32];
++        new Tester_Class_0().var_1 = new char[var_32][var_30];
++        var_30 &= var_30;
++        var_31 |= (var_31 |= true);
++        int var_39 = 1769831681;
++        final Tester_Class_2 var_40 = (var_31 |= false ? var_31 : var_37) ? (Tester_Class_2)((new Object[var_30][var_30][var_32])[var_30 <<= var_30])[var_30][var_30++] : (Tester_Class_2)new Tester_Class_0();
++        var_30 -= +var_30;
++        "dvmuim".replaceFirst("clmisuxu", "".toLowerCase() + "xi");
++        var_39 = var_38 - (short)585806817;
++        arg_1 += (double)(short)(6.4329855E37F / var_32 * (var_38 += 'w'));
++        ++var_39;
++        var_40.var_1 = (var_28 = (var_28 = var_40));
++        var_29 /= 3.5705444317400964E306;
++        Tester_Interface_1 var_41;
++        return arg_1;
++    }
++
++    final char func_4(final long arg_0, int arg_1, final int arg_2)
++    {
++        {
++            Tester_Class_2.var_13 = 'D';
++            var_31 = false;
++        }
++        if (var_31)
++        {
++            var_30--;
++            Tester_Class_0 var_42 = var_28 = (new Tester_Class_0[var_32])[var_32];
++        }
++        else
++        {
++            Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'H');
++        }
++        var_28 = (Tester_Class_2)(new Tester_Class_2().var_1 = (var_28 = (new Tester_Class_0[var_30])[var_30]));
++        arg_1 &= var_32;
++        --var_30;
++        return Tester_Class_2.var_13 = 'n';
++    }
++
++    final static Object func_5()
++    {
++        var_28 = (Tester_Class_2)(! (var_31 |= true & var_31) ? (new Tester_Class_0[var_30])[var_30] : (var_28 = (new Tester_Class_0[var_30])[var_30]));
++        var_31 |= false;
++        return var_31 ? (((Tester_Class_2)(new Object[var_30])[var_30]).var_1 = (new Tester_Class_0[var_30 /= 1366944127])[var_30]) : (new Tester_Class_0[var_30][var_30])[var_30 += 1.4070924450257891E307][var_30];
++    }
++
++    static Tester_Class_2 func_6(final Object arg_0)
++    {
++        var_28 = (var_31 ^= true) ? (Tester_Class_2)arg_0 : (Tester_Class_2)arg_0;
++        ((new Tester[--var_30])[var_30]).var_29 -= -3.0029087E38F * (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'k'));
++        var_28 = (Tester_Class_2)(var_28 = (var_28 = (var_28 = (Tester_Class_0)arg_0)));
++        return false ? new Tester_Class_2() : new Tester_Class_2();
++    }
++
++    private static Tester_Interface_1 func_7(byte arg_0, Tester_Class_2 arg_1, final int arg_2, char arg_3)
++    {
++        {
++            var_31 = var_31;
++            var_31 |= (var_31 &= (var_31 |= !true));
++            arg_0 += Tester_Class_2.var_14;
++        }
++        var_30 = (var_30 *= ((new Tester[arg_0 ^= 1039546367])[arg_0]).var_32);
++        arg_1.var_1 = (var_31 ^= (var_31 &= !var_31 && !var_31)) ? (arg_1 = (arg_1 = arg_1)) : (new Tester_Class_0[arg_0++][arg_0])[arg_0][arg_0];
++        arg_1.var_1 = var_31 ? "jpmg" : "epwvupaqp";
++        var_28 = arg_1;
++        if (false)
++        {
++            arg_1 = arg_1;
++        }
++        else
++        {
++            arg_3 += var_30 % -9.298157E37F;
++        }
++        arg_1.var_1 = ((var_28 = (var_28 = arg_1)).var_1 = ((var_28 = arg_1).var_1 = "rlmf"));
++        var_28 = (arg_1 = arg_1);
++        arg_1 = arg_1;
++        {
++            var_31 = true;
++        }
++        (arg_1 = arg_1).var_1 = (arg_1.var_1 = (arg_1 = arg_1));
++        final short[] var_43 = new short[(var_31 &= false) ? arg_0 : var_30];
++        final short var_44 = 18087;
++        return false ? (new Tester_Interface_1[var_30 %= Tester_Class_2.var_14])[arg_0 -= 8.913955E37F * +arg_0] : (new Tester_Interface_1[var_30])[var_30];
++    }
++
++    private static float func_8(final Object[] arg_0, final byte arg_1, Tester_Class_0[] arg_2)
++    {
++        ((new Tester_Class_2[var_30 /= -2.37832E38F])[((new Tester[arg_1])[(new byte[arg_1])[arg_1]]).var_32]).var_1 = new Tester_Interface_1[arg_1];
++        if (var_31)
++        {
++            var_28 = (Tester_Class_2)(var_28 = arg_2[var_30]);
++        }
++        else
++        {
++            var_30 -= Tester_Class_2.var_14;
++            final int var_45 = 1864933386;
++            final Tester_Class_0 var_46 = var_28 = (new Tester_Class_2[arg_1][var_30 |= Tester_Class_2.var_14])[((new Tester[arg_1][var_30])[var_30][var_30]).var_32][arg_1];
++            var_31 &= (var_31 ^= false);
++            var_30 += (false ? 2.7581227E37F : + +1.8832631E38F) * ('P' * -1.9479086E38F);
++        }
++        (var_28 = (Tester_Class_2)arg_2[arg_1]).var_1 = (new Tester_Class_2[var_30][arg_1][arg_1])[arg_1];
++        ++var_30;
++        (var_28 = (new Tester_Class_2[var_30])[arg_1]).var_1 = false ? (new Tester_Class_0[var_30][var_30])[var_30][arg_1] : arg_2[var_30];
++        var_31 |= false;
++        ((new Tester[arg_1][var_30 >>>= (char)1981599])[arg_1][arg_1]).var_29 = false ^ (var_31 = var_31) ? (Tester_Class_2.var_13 = "nes".charAt(1080898679)) : - (var_30 %= 'n') ^ arg_1;
++        {
++            ((new Tester[arg_1])[var_30]).var_29 = (short)(Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'h'));
++        }
++        Tester_Class_2.var_13 = 'j';
++        ((new Tester_Class_2[arg_1])[var_30]).var_1 = new byte[var_30];
++        var_31 ^= (var_31 ^= !false);
++        "wcbi".toString();
++        final byte var_47 = var_30;
++        if (true)
++        {
++            "mpbkilw".substring(199662864);
++        }
++        else
++        {
++            var_30++;
++        }
++        Tester_Class_2.var_13 = '`';
++        "yujypq".indexOf("crve" + "inmvh", false ? ~arg_1 : "vukbkc".charAt(528096652));
++        Tester_Class_2 var_48 = (Tester_Class_2)((!var_31 & (var_31 ^= false ^ !true) ? false | !true : false) ? (var_28 = (Tester_Class_2)arg_0[var_30]) : (new Tester_Class_2[arg_1])[var_30]);
++        return (float)(var_31 ^ var_31 ? (var_30 ^= (short)((new Tester[var_30])[var_30]).var_29) : (var_30 /= - -5.917837279005691E307 - - +3.2004715720509636E306));
++    }
++
++    final Tester_Class_0 func_9()
++    {
++        var_30 += -3531557622894482432L / ~var_30;
++        var_28 = (var_28 = (new Tester_Class_2[var_30 += + -7.0203367E37F])[var_30]);
++        var_31 ^= ! !false ^ false;
++        if (true)
++        {
++            byte[] var_49;
++            var_31 &= true;
++            short var_50 = 14869;
++        }
++        else
++        {
++            (((new Tester[var_32][var_30][var_32])[var_30])[var_32][var_30]).var_29 *= 'h';
++        }
++        final int var_51 = false ? +var_32 >>> ~var_30 : --var_30;
++        var_31 |= false;
++        return (new Tester_Class_0[var_32][var_32])[var_30][var_30];
++    }
++
++    public static Object func_10()
++    {
++        Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'O');
++        return ((Tester_Class_2)(new Object[--var_30])[var_30]).var_1 = (((Tester_Class_2)(new Object[var_30])[var_30]).var_1 = "iu");
++    }
++
++    protected byte func_11(final Tester_Interface_1[] arg_0)
++    {
++        {
++            --var_30;
++            var_29 *= (short)1749707986816114688L;
++            var_31 = (var_31 = (var_31 |= var_31));
++            var_30 -= 6.4575257E37F;
++        }
++        var_28 = (var_28 = func_9());
++        Tester_Class_2.var_13 = 'b';
++        var_30--;
++        var_28 = (var_28 = (var_28 = (var_28 = (Tester_Class_2)func_10())));
++        var_28 = (new Tester_Class_2[var_32])[var_30];
++        char var_52 = (var_31 = false) ? (char)+ +Tester_Class_2.var_14 : (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = '_'));
++        if (false)
++        {
++            var_30 += (short)(var_32 + 840104459);
++        }
++        else
++        {
++            var_29 /= 2.5320765E38F;
++        }
++        if (true)
++        {
++            var_30 %= 379977167934025728L;
++        }
++        else
++        {
++            var_52 = var_52;
++        }
++        var_30 >>= ('A' ^ --var_30) & 'H';
++        Tester_Class_2 var_53;
++        final int var_54 = 771623383;
++        var_29 %= (+1.938582E37F - 'G') * ++var_30;
++        int var_55 = (short)6.234053079170724E306 - (int)'^' / ((var_31 &= (var_31 ^= var_31)) ? (short)var_30 : ++var_30);
++        var_55 >>>= var_55 / ~6865244393150017536L;
++        var_31 ^= !false;
++        return var_30 >>>= 4351766607072508928L >> func_0(var_32, var_31, 1.021781609675458E308);
++    }
++
++    public static String execute()
++    {
++        try {
++            Tester t = new Tester();
++            try { t.test(); }
++            catch(Throwable e) { }
++            try { return t.toString(); }
++            catch (Throwable e) { return "Error during result conversion to String"; }
++        } catch (Throwable e) { return "Error during test execution"; }
++    }
++
++    public static void main(String[] args)
++    {
++        try {
++            Tester t = new Tester();
++            try { t.test(); }
++            catch(Throwable e) { }
++            try { System.out.println(t); }
++            catch(Throwable e) { }
++        } catch (Throwable e) { }
++    }
++
++    private void test()
++    {
++        {
++            ((Tester_Class_2)(Tester_Class_0)((var_31 = true) ^ (var_31 |= false & true) ? func_10() : new Tester_Class_2[var_32])).var_1 = ((var_28 = new Tester_Class_0()).var_1 = (new Tester_Class_0().var_1 = new Tester_Class_2()));
++        }
++        new String();
++        Tester_Class_2.var_13 = '[';
++        var_28 = (Tester_Class_2)(((var_31 ^= true) ? func_9() : new Tester_Class_0()).var_1 = new Tester_Class_2());
++        var_28 = new Tester_Class_0();
++        new String();
++        {
++            if ((new boolean[var_30])[var_30] & 732877932 == 1.4654316E38F & "xpqy".replace(']', 'f').startsWith("pqrqunvfx") ? ((var_31 ^= (var_31 &= var_31)) ? !var_31 : (var_31 &= true)) : var_31)
++            {
++                var_31 &= var_31;
++            }
++            else
++            {
++                func_2(var_28 = new Tester_Class_0());
++            }
++            {
++                ((new Tester_Class_0[var_30][var_30])[var_30][var_30]).var_1 = "uwrbjvl";
++                var_28 = (Tester_Class_0)func_5();
++            }
++            Tester_Class_2.var_13 = 's';
++            Tester_Class_0 var_56 = var_28 = true ? func_6(func_5()) : (new Tester_Class_2[var_30][var_32])[var_32][var_32];
++            double var_57 = 0;
++            var_29 += 1024895641427426304L % ~ ~Tester_Class_2.var_14;
++            while ((true || (var_31 = var_31)) && var_57 < 12)
++            {
++                (false & !false ? var_56 : (var_56 = var_56)).var_1 = "vbc";
++                var_57++;
++                var_29 += func_0(var_30 /= (short)var_30 / var_32, false, var_57);
++                (var_31 ? (Tester_Class_2)var_56 : (new Tester_Class_2[var_30])[var_30]).var_1 = new double[var_31 ? (var_30 |= 177265600183083008L) : var_32];
++            }
++            switch (var_31 ^ var_31 | ! (var_31 = false) & (var_31 & false) ? (true ? (short)var_30 : func_0(var_30, true, var_57)) : func_0(var_30, var_31, var_29 /= 2.7203017E38F))
++            {
++                case 23:
++                    var_31 ^= true ? var_31 : var_31;
++                    break;
++
++                case 40:
++
++                default:
++
++                case 104:
++
++            }
++            Object var_58 = (var_31 ^= (var_31 ^= false) | (~3392263608888292352L < 1681682009 | var_31)) ? (((new Tester_Class_2[Tester_Class_2.func_5(Tester_Class_2.var_14, 3.3507317E38F, var_57)])[var_30 %= var_32]).var_1 = (var_56 = (Tester_Class_0)func_5())) : func_5();
++            (var_56 = (var_28 = (var_56 = func_6(var_58)))).var_1 = (((new Tester_Class_2[var_30])[var_30]).var_1 = new float[(byte)Tester_Class_2.var_14][var_32]);
++            new Tester_Class_2().var_1 = new double[var_30];
++            final Tester_Class_0 var_59 = var_28 = (!false & (false || (var_31 && !var_31) & false) ? var_31 : (var_31 |= !var_31)) ? (Tester_Class_2)(var_28 = new Tester_Class_2()) : (false ? new Tester_Class_2() : (Tester_Class_2)var_58);
++        }
++        var_30--;
++        {
++            var_29 += ~func_11(((new Tester_Interface_1[var_32][var_30][var_32])[var_30 ^= var_30])[var_32]);
++        }
++        float var_60 = 0F;
++        double var_61 = var_29;
++        do
++        {
++            long var_62;
++            var_60++;
++            "vcs".offsetByCodePoints((short)('w' | (short)var_30) & (new short[--var_30])[var_30], ((var_31 |= var_31) ^ (var_31 = var_31) ? var_32 : var_30) - (short)86413218);
++        } while (false && (var_60 < 100 && ((var_31 = false) ? var_31 : (var_31 ^= false)) & var_31));
++        long var_63 = 0L;
++        double var_64 = (var_31 ? (Tester_Class_2.var_13 = 'V') : 'e') - (var_29 = 'A') * (var_29 = var_30);
++        var_31 &= (short)+ var_30-- + var_30 <= var_60;
++        while (false && (var_63 < 23 && false))
++        {
++            var_30 >>= func_0(var_30, var_31, var_29) ^ ("".endsWith("mecvlajq" + "jhrbf") ? var_30 : (short)var_61);
++            var_63++;
++            var_28 = (Tester_Class_2)(var_28 = new Tester_Class_2());
++            new Tester_Class_0();
++        }
++        double var_65 = 0;
++        var_61 -= var_65;
++        for (((var_31 &= (var_31 ^= var_31)) | var_31 ? new Tester_Class_2() : new Tester_Class_2()).var_1 = ! (var_31 = false) && !var_31 ? func_10() : new Object[var_32][var_32]; var_31 | var_31 && (var_65 < 107 && (false ? !var_31 : (var_31 &= var_31))); var_30 *= Tester_Class_2.var_14)
++        {
++            var_28 = var_30 > (var_31 | true ? (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'k')) : (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'r'))) ? (Tester_Class_2)((var_28 = (Tester_Class_0)func_5()).var_1 = func_5()) : new Tester_Class_2();
++            var_65++;
++            var_29 = "efothsl".startsWith("qk") ? 3.2306712E37F : +1.1835607464479516E308;
++            new Tester_Class_2().var_1 = new Tester_Class_0();
++        }
++        double var_66 = 0;
++        func_6(((Tester_Class_2)((true ? (Tester_Class_2)func_10() : (Tester_Class_2)func_9()).var_1 = (var_28 = (Tester_Class_2)func_10()))).var_1 = "");
++        while (false | (new boolean[var_30][var_30])[var_30][var_32] && (var_66 < 104 && false))
++        {
++            ((var_31 ^= !false) ? "" : "slgr").toUpperCase();
++            var_66++;
++            var_28 = func_6(func_9().var_1 = func_10());
++            var_31 |= (var_31 |= true);
++        }
++        Tester_Class_2.var_13 = var_31 ? (Tester_Class_2.var_13 = 'Y') : (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = func_4(var_63, 137999726, 1870981930))));
++        int var_67 = 0;
++        final double var_68 = 9.955130040461458E307;
++        do
++        {
++            "".lastIndexOf(var_32 != (Tester_Class_2.var_13 = 'f') ? (Tester_Class_2.var_13 = 'C') : ~var_30, (char)3.187607E38F + (var_30 /= var_30));
++            var_67++;
++            Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'B');
++        } while (var_67 < 9 && var_31 ^ var_31);
++        int var_69 = 0;
++        (true ? func_6(func_10()) : (Tester_Class_2)func_9()).var_1 = ((var_28 = (var_28 = new Tester_Class_2())).var_1 = (func_6(new Tester_Class_2().var_1 = new Tester_Class_0()).var_1 = (Tester_Class_2)func_9()));
++        do
++        {
++            var_28 = (Tester_Class_2)(var_28 = (Tester_Class_0)(new Tester_Class_2().var_1 = "qs"));
++            var_69++;
++            var_31 ^= var_31;
++        } while (var_69 < 189);
++        (! (var_31 = true) | var_31 ? new Tester_Class_2() : (new Tester_Class_0[var_30])[var_30]).var_1 = (((new Tester_Class_2[var_30 ^= (short)var_30])[var_30]).var_1 = (var_31 ? var_31 : (var_31 |= false)) ? "lfhliyphg" : "impovq");
++        ((var_31 ? var_32 == (short)8901596111720974336L : 220705842 != var_60) ? (new Tester_Class_2[var_30])[var_32] : (new Tester_Class_2[var_30][var_32])[var_30][var_30]).var_1 = (var_28 = ((char)var_30 >= "pngjthlf".lastIndexOf("jjbuojp") & var_31 ? var_31 : var_31) ? (new Tester_Class_2[var_32])[var_30] : func_6(new Tester_Class_2().var_1 = new String[var_32]));
++        Tester_Class_2.var_13 = 'c';
++    }
++    public String toString()
++    {
++        String result =  "[\n";
++        result += "Tester.var_29 = "; result += Printer.print(var_29);
++        result += "\n";
++        result += "Tester.var_30 = "; result += Printer.print(var_30);
++        result += "\n";
++        result += "Tester.var_32 = "; result += Printer.print(var_32);
++        result += "\n";
++        result += "Tester.var_31 = "; result += Printer.print(var_31);
++        result += "\n";
++        result += "Tester.var_28 = "; result += Printer.print(var_28);
++        result += "";
++        result += "\n]";
++        return result;
++    }
++    static class Printer
++    {
++        public static String print(boolean arg) { return String.valueOf(arg); }
++        public static String print(byte arg)    { return String.valueOf(arg); }
++        public static String print(short arg)   { return String.valueOf(arg); }
++        public static String print(char arg)    { return String.valueOf((int)arg); }
++        public static String print(int arg)     { return String.valueOf(arg); }
++        public static String print(long arg)    { return String.valueOf(arg); }
++        public static String print(float arg)   { return String.valueOf(arg); }
++        public static String print(double arg)  { return String.valueOf(arg); }
++
++
++        public static String print(Object arg)
++        {
++            return print_r(new java.util.Stack(), arg);
++        }
++
++        private static String print_r(java.util.Stack visitedObjects, Object arg)
++        {
++            String result = "";
++            if (arg == null)
++                result += "null";
++            else
++            if (arg.getClass().isArray())
++            {
++                for (int i = 0; i < visitedObjects.size(); i++)
++                    if (visitedObjects.elementAt(i) == arg) return "<recursive>";
++
++                visitedObjects.push(arg);
++
++                final String delimiter = ", ";
++                result += "[";
++
++                if (arg instanceof Object[])
++                {
++                    Object[] array = (Object[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print_r(visitedObjects, array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof boolean[])
++                {
++                    boolean[] array = (boolean[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof byte[])
++                {
++                    byte[] array = (byte[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof short[])
++                {
++                    short[] array = (short[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof char[])
++                {
++                    char[] array = (char[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof int[])
++                {
++                     int[] array = (int[]) arg;
++                     for (int i = 0; i < array.length; i++)
++                     {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                     }
++                }
++                else
++                if (arg instanceof long[])
++                {
++                    long[] array = (long[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof float[])
++                {
++                    float[] array = (float[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++                else
++                if (arg instanceof double[])
++                {
++                    double[] array = (double[]) arg;
++                    for (int i = 0; i < array.length; i++)
++                    {
++                        result += print(array[i]);
++                        if (i < array.length - 1) result += delimiter;
++                    }
++                }
++
++                result += "]";
++                visitedObjects.pop();
++
++            } else
++            {
++                result += arg.toString();
++            }
++
++            return result;
++        }
++    }
++}
++
++
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6724218/Test.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6724218/Test.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,98 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ */
++
++/*
++ * @test
++ * @bug 6724218
++ * @summary Fix raise_LCA_above_marks() early termination
++ * @run main/othervm -Xbatch -XX:CompileCommand=exclude,Test.update Test
++ */
++
++public class Test {
++    Test   next  = null;
++    Object value = null;
++
++    static boolean _closed = false;
++    static int size = 0;
++    static Test list  = null;
++    static int cache_size = 0;
++    static Test cache = null;
++
++    Object get(int i) {
++        Test t = list;
++        list = t.next;
++        size -= 1;
++        Object o = t.value;
++        if (i > 0) {
++            t.next = cache;
++            t.value = null;
++            cache = t;
++            cache_size = +1;
++        }
++        return o;
++    }
++
++    void update() {
++        // Exclude compilation of this one.
++        if (size == 0) {
++            Test t;
++            if (cache_size > 0) {
++                t = cache;
++                cache = t.next;
++                cache_size = -1;
++            } else {
++                t = new Test();
++            }
++            t.value = new Object();
++            t.next = list;
++            list = t;
++            size += 1;
++        }
++    }
++
++    synchronized Object test(int i) {
++        while (true) {
++            if (_closed) {
++                return null;
++            } else if (size > 0) {
++                return get(i);
++            }
++            update();
++        }
++    }
++
++    public static void main(String argv[]) throws Exception {
++        Test t = new Test();
++        int lim = 500000;
++        Object o;
++        for (int j = 0; j < lim; j++) {
++            o = t.test(j&1);
++            if (o == null) {
++              throw new Exception("*** Failed on iteration " + j);
++            }
++            if ((j&1) == 0) {
++              t.update();
++            }
++        }
++    }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6726999/Test.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6726999/Test.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,1419 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ *
++ */
++
++/*
++ * @test
++ * @bug 6726999
++ * @summary nsk/stress/jck12a/jck12a010 assert(n != NULL,"Bad immediate dominator info.");
++ * @run main/othervm -Xbatch -XX:CompileCommand=exclude,Test.dummy -XX:+AggressiveOpts Test
++ */
++
++import java.lang.reflect.Array;
++
++class Point {
++  int x;
++  int y;
++}
++
++public class Test {
++
++  void dummy() {
++    // Empty method to verify correctness of DebugInfo.
++    // Use -XX:CompileCommand=exclude,Test.dummy
++  }
++
++  int test0_0_0(int y) {
++    int x = 3;
++    Point p = new Point();
++    dummy();
++    p.x = x;
++    p.y = 3 * x + y;
++    return p.x * p.y;
++  }
++
++  int test0_0_1(int y) {
++    int x = 3;
++    Point p = null;
++    dummy();
++    p = new Point();
++    dummy();
++    p.x = x;
++    p.y = 3 * x + y;
++    return p.x * p.y;
++  }
++
++  int test0_0_2(int y) {
++    int x = 3;
++    Point p = new Point();
++    dummy();
++    p = new Point();
++    dummy();
++    p.x = x;
++    p.y = 3 * x + y;
++    return p.x * p.y;
++  }
++
++  int test0_0_3(int y) {
++    int x = 3;
++    Point p[] = new Point[1];
++    p[0] = new Point();
++    dummy();
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    return p[0].x * p[0].y;
++  }
++
++  int test0_0_4(int y) {
++    int x = 3;
++    Point p[] = new Point[1];
++    dummy();
++    p[0] = new Point();
++    dummy();
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    return p[0].x * p[0].y;
++  }
++
++  int test0_0_5(int y) {
++    int x = 3;
++    Point p[] = new Point[1];
++    dummy();
++    p[0] = null;
++    dummy();
++    p[0] = new Point();
++    dummy();
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    return p[0].x * p[0].y;
++  }
++
++  int test0_0_6(int y) {
++    int x = 3;
++    Point p[] = new Point[1];
++    p[0] = new Point();
++    dummy();
++    p[0] = new Point();
++    dummy();
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    return p[0].x * p[0].y;
++  }
++
++  int test0_1_3(int y) {
++    int x = 3;
++    Point p1 = new Point();
++    dummy();
++    Point p[] = new Point[1];
++    p[0] = p1;
++    dummy();
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    return p[0].x * p[0].y;
++  }
++
++  int test0_1_4(int y) {
++    int x = 3;
++    Point p1 = new Point();
++    dummy();
++    Point p[] = new Point[1];
++    dummy();
++    p[0] = p1;
++    dummy();
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    return p[0].x * p[0].y;
++  }
++
++  int test0_1_5(int y) {
++    int x = 3;
++    Point p1 = new Point();
++    dummy();
++    Point p[] = new Point[1];
++    dummy();
++    p[0] = null;
++    dummy();
++    p[0] = p1;
++    dummy();
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    return p[0].x * p[0].y;
++  }
++
++  int test0_1_6(int y) {
++    int x = 3;
++    Point p1 = new Point();
++    dummy();
++    Point p2 = new Point();
++    dummy();
++    Point p[] = new Point[1];
++    p[0] = p1;
++    dummy();
++    p[0] = p2;
++    dummy();
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    return p[0].x * p[0].y;
++  }
++
++  int test1_0_0(int y) {
++    Point p = new Point();
++    if ( (y & 1) == 1 ) {
++      p = new Point();
++    }
++    int x = 3;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test1_0_1(int y) {
++    Point p = null;
++    if ( (y & 1) == 1 ) {
++      p = new Point();
++    }
++    int x = 3;
++    if ( p == null )
++      return (3 * x + y) * x;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test1_0_2(int y) {
++    Point p[] = new Point[1];
++    if ( (y & 1) == 1 ) {
++      p[0] = new Point();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_0_3(int y) {
++    Point p[] = new Point[1];
++    p[0] = null;
++    if ( (y & 1) == 1 ) {
++      p[0] = new Point();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_0_4(int y) {
++    Point p[] = new Point[1];
++    p[0] = new Point();
++    if ( (y & 1) == 1 ) {
++      p[0] = new Point();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_0_5(int y) {
++    Point p[] = new Point[1];
++    if ( (y & 1) == 1 ) {
++      p[0] = new Point();
++    } else {
++      p[0] = null;
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_0_6(int y) {
++    Point p[] = new Point[1];
++    if ( (y & 1) == 1 ) {
++      p[0] = new Point();
++    } else {
++      p[0] = new Point();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_1_0(int y) {
++    Point p = new Point();
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p = new Point();
++      dummy();
++    }
++    int x = 3;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test1_1_1(int y) {
++    Point p = null;
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p = new Point();
++      dummy();
++    }
++    int x = 3;
++    if ( p == null )
++      return (3 * x + y) * x;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test1_1_2(int y) {
++    Point p[] = new Point[1];
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p[0] = new Point();
++      dummy();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_1_3(int y) {
++    Point p[] = new Point[1];
++    dummy();
++    p[0] = null;
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p[0] = new Point();
++      dummy();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_1_4(int y) {
++    Point p[] = new Point[1];
++    dummy();
++    p[0] = new Point();
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p[0] = new Point();
++      dummy();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_1_5(int y) {
++    Point p[] = new Point[1];
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p[0] = new Point();
++      dummy();
++    } else {
++      dummy();
++      p[0] = null;
++      dummy();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_1_6(int y) {
++    Point p[] = new Point[1];
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p[0] = new Point();
++      dummy();
++    } else {
++      dummy();
++      p[0] = new Point();
++      dummy();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_2_0(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p = new Point();
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p = p1;
++      dummy();
++    }
++    int x = 3;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test1_2_1(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p = null;
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p = p1;
++      dummy();
++    }
++    int x = 3;
++    if ( p == null )
++      return (3 * x + y) * x;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test1_2_2(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p[] = new Point[1];
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p[0] = p1;
++      dummy();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_2_3(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p[] = new Point[1];
++    dummy();
++    p[0] = null;
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p[0] = p1;
++      dummy();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_2_4(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p2 = new Point();
++    dummy();
++    Point p[] = new Point[1];
++    dummy();
++    p[0] = p1;
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p[0] = p2;
++      dummy();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_2_5(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p[] = new Point[1];
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p[0] = p1;
++      dummy();
++    } else {
++      dummy();
++      p[0] = null;
++      dummy();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test1_2_6(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p2 = new Point();
++    dummy();
++    Point p[] = new Point[1];
++    if ( (y & 1) == 1 ) {
++      dummy();
++      p[0] = p1;
++      dummy();
++    } else {
++      dummy();
++      p[0] = p2;
++      dummy();
++    }
++    int x = 3;
++    if ( p[0] == null )
++      return (3 * x + y) * x;
++    p[0].x = x;
++    p[0].y = 3 * x + y;
++    dummy();
++    return p[0].x * p[0].y;
++  }
++
++  int test2_0_0(int y) {
++    Point p = new Point();
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      p = new Point();
++    }
++    int x = 3;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test2_0_1(int y) {
++    Point p = null;
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      p = new Point();
++    }
++    int x = 3;
++    if ( p == null )
++      return (3 * x + y) * x;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test2_0_2(int y) {
++    Point p[] = new Point[3];
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      p[i] = new Point();
++    }
++    int x = 3;
++    int j = (y & 1);
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_0_3(int y) {
++    Point p[] = new Point[3];
++    int j = (y & 1);
++    p[j] = null;
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      p[i] = new Point();
++    }
++    int x = 3;
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_0_4(int y) {
++    Point p[] = new Point[3];
++    int j = (y & 1);
++    p[j] = new Point();
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      p[i] = new Point();
++    }
++    int x = 3;
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_0_5(int y) {
++    Point p[] = new Point[3];
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      p[i] = new Point();
++    }
++    for (int i = 0; i < lim; i++) {
++      p[i] = null;
++    }
++    int x = 3;
++    int j = (y & 1);
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_0_6(int y) {
++    Point p[] = new Point[3];
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      p[i] = new Point();
++    }
++    for (int i = 0; i < lim; i++) {
++      p[i] = new Point();
++    }
++    int x = 3;
++    int j = (y & 1);
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_1_0(int y) {
++    Point p = new Point();
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p = new Point();
++      dummy();
++    }
++    int x = 3;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test2_1_1(int y) {
++    Point p = null;
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p = new Point();
++      dummy();
++    }
++    int x = 3;
++    if ( p == null )
++      return (3 * x + y) * x;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test2_1_2(int y) {
++    Point p[] = new Point[3];
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = new Point();
++      dummy();
++    }
++    int x = 3;
++    int j = (y & 1);
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_1_3(int y) {
++    Point p[] = new Point[3];
++    dummy();
++    int j = (y & 1);
++    p[j] = null;
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = new Point();
++      dummy();
++    }
++    int x = 3;
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_1_4(int y) {
++    Point p[] = new Point[3];
++    dummy();
++    int j = (y & 1);
++    p[j] = new Point();
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = new Point();
++      dummy();
++    }
++    int x = 3;
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_1_5(int y) {
++    Point p[] = new Point[3];
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = new Point();
++      dummy();
++    }
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = null;
++      dummy();
++    }
++    int x = 3;
++    int j = (y & 1);
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_1_6(int y) {
++    Point p[] = new Point[3];
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = new Point();
++      dummy();
++    }
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = new Point();
++      dummy();
++    }
++    int x = 3;
++    int j = (y & 1);
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_2_0(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p = new Point();
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p = p1;
++      dummy();
++    }
++    int x = 3;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test2_2_1(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p = null;
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p = p1;
++      dummy();
++    }
++    int x = 3;
++    if ( p == null )
++      return (3 * x + y) * x;
++    p.x = x;
++    p.y = 3 * x + y;
++    dummy();
++    return p.x * p.y;
++  }
++
++  int test2_2_2(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p[] = new Point[3];
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = p1;
++      dummy();
++    }
++    int x = 3;
++    int j = (y & 1);
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_2_3(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p[] = new Point[3];
++    dummy();
++    int j = (y & 1);
++    p[j] = null;
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = p1;
++      dummy();
++    }
++    int x = 3;
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_2_4(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p2 = new Point();
++    dummy();
++    Point p[] = new Point[3];
++    dummy();
++    int j = (y & 1);
++    p[j] = p1;
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = p2;
++      dummy();
++    }
++    int x = 3;
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_2_5(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p[] = new Point[3];
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = p1;
++      dummy();
++    }
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = null;
++      dummy();
++    }
++    int x = 3;
++    int j = (y & 1);
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  int test2_2_6(int y) {
++    Point p1 = new Point();
++    dummy();
++    Point p2 = new Point();
++    dummy();
++    Point p[] = new Point[3];
++    int lim = (y & 3);
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = p1;
++      dummy();
++    }
++    for (int i = 0; i < lim; i++) {
++      dummy();
++      p[i] = p2;
++      dummy();
++    }
++    int x = 3;
++    int j = (y & 1);
++    if ( p[j] == null )
++      return (3 * x + y) * x;
++    p[j].x = x;
++    p[j].y = 3 * x + y;
++    dummy();
++    return p[j].x * p[0].y;
++  }
++
++  public static void main(String args[]) {
++    Test tsr    = new Test();
++    Point p     = new Point();
++    Point ptmp  = p;
++    Class cls   = Point.class;
++    int y = 0;
++    for (int i=0; i<10000; i++) {
++      y = tsr.test0_0_0(y);
++      y = tsr.test0_0_0(y);
++      y = tsr.test0_0_1(y);
++      y = tsr.test0_0_1(y);
++      y = tsr.test0_0_2(y);
++      y = tsr.test0_0_2(y);
++      y = tsr.test0_0_3(y);
++      y = tsr.test0_0_3(y);
++      y = tsr.test0_0_4(y);
++      y = tsr.test0_0_4(y);
++      y = tsr.test0_0_5(y);
++      y = tsr.test0_0_5(y);
++      y = tsr.test0_0_6(y);
++      y = tsr.test0_0_6(y);
++
++      y = tsr.test0_1_3(y);
++      y = tsr.test0_1_3(y);
++      y = tsr.test0_1_4(y);
++      y = tsr.test0_1_4(y);
++      y = tsr.test0_1_5(y);
++      y = tsr.test0_1_5(y);
++      y = tsr.test0_1_6(y);
++      y = tsr.test0_1_6(y);
++
++      y = tsr.test1_0_0(y&~1);
++      y = tsr.test1_0_1(y&~1);
++      y = tsr.test1_0_2(y&~1);
++      y = tsr.test1_0_3(y&~1);
++      y = tsr.test1_0_4(y&~1);
++      y = tsr.test1_0_5(y&~1);
++      y = tsr.test1_0_6(y&~1);
++      y = tsr.test1_0_0((y&~1)+1);
++      y = tsr.test1_0_1((y&~1)+1);
++      y = tsr.test1_0_2((y&~1)+1);
++      y = tsr.test1_0_3((y&~1)+1);
++      y = tsr.test1_0_4((y&~1)+1);
++      y = tsr.test1_0_5((y&~1)+1);
++      y = tsr.test1_0_6((y&~1)+1);
++
++      y = tsr.test1_1_0(y&~1);
++      y = tsr.test1_1_1(y&~1);
++      y = tsr.test1_1_2(y&~1);
++      y = tsr.test1_1_3(y&~1);
++      y = tsr.test1_1_4(y&~1);
++      y = tsr.test1_1_5(y&~1);
++      y = tsr.test1_1_6(y&~1);
++      y = tsr.test1_1_0((y&~1)+1);
++      y = tsr.test1_1_1((y&~1)+1);
++      y = tsr.test1_1_2((y&~1)+1);
++      y = tsr.test1_1_3((y&~1)+1);
++      y = tsr.test1_1_4((y&~1)+1);
++      y = tsr.test1_1_5((y&~1)+1);
++      y = tsr.test1_1_6((y&~1)+1);
++
++      y = tsr.test1_2_0(y&~1);
++      y = tsr.test1_2_1(y&~1);
++      y = tsr.test1_2_2(y&~1);
++      y = tsr.test1_2_3(y&~1);
++      y = tsr.test1_2_4(y&~1);
++      y = tsr.test1_2_5(y&~1);
++      y = tsr.test1_2_6(y&~1);
++      y = tsr.test1_2_0((y&~1)+1);
++      y = tsr.test1_2_1((y&~1)+1);
++      y = tsr.test1_2_2((y&~1)+1);
++      y = tsr.test1_2_3((y&~1)+1);
++      y = tsr.test1_2_4((y&~1)+1);
++      y = tsr.test1_2_5((y&~1)+1);
++      y = tsr.test1_2_6((y&~1)+1);
++
++      y = tsr.test2_0_0(y&~3);
++      y = tsr.test2_0_1(y&~3);
++      y = tsr.test2_0_2(y&~3);
++      y = tsr.test2_0_3(y&~3);
++      y = tsr.test2_0_4(y&~3);
++      y = tsr.test2_0_5(y&~3);
++      y = tsr.test2_0_6(y&~3);
++      y = tsr.test2_0_0((y&~3)+3);
++      y = tsr.test2_0_1((y&~3)+3);
++      y = tsr.test2_0_2((y&~3)+3);
++      y = tsr.test2_0_3((y&~3)+3);
++      y = tsr.test2_0_4((y&~3)+3);
++      y = tsr.test2_0_5((y&~3)+3);
++      y = tsr.test2_0_6((y&~3)+3);
++
++      y = tsr.test2_1_0(y&~3);
++      y = tsr.test2_1_1(y&~3);
++      y = tsr.test2_1_2(y&~3);
++      y = tsr.test2_1_3(y&~3);
++      y = tsr.test2_1_4(y&~3);
++      y = tsr.test2_1_5(y&~3);
++      y = tsr.test2_1_6(y&~3);
++      y = tsr.test2_1_0((y&~3)+3);
++      y = tsr.test2_1_1((y&~3)+3);
++      y = tsr.test2_1_2((y&~3)+3);
++      y = tsr.test2_1_3((y&~3)+3);
++      y = tsr.test2_1_4((y&~3)+3);
++      y = tsr.test2_1_5((y&~3)+3);
++      y = tsr.test2_1_6((y&~3)+3);
++
++      y = tsr.test2_2_0(y&~3);
++      y = tsr.test2_2_1(y&~3);
++      y = tsr.test2_2_2(y&~3);
++      y = tsr.test2_2_3(y&~3);
++      y = tsr.test2_2_4(y&~3);
++      y = tsr.test2_2_5(y&~3);
++      y = tsr.test2_2_6(y&~3);
++      y = tsr.test2_2_0((y&~3)+3);
++      y = tsr.test2_2_1((y&~3)+3);
++      y = tsr.test2_2_2((y&~3)+3);
++      y = tsr.test2_2_3((y&~3)+3);
++      y = tsr.test2_2_4((y&~3)+3);
++      y = tsr.test2_2_5((y&~3)+3);
++      y = tsr.test2_2_6((y&~3)+3);
++
++    }
++    for (int i=0; i<10000; i++) {
++      y = tsr.test0_0_0(y);
++      y = tsr.test0_0_0(y);
++      y = tsr.test0_0_1(y);
++      y = tsr.test0_0_1(y);
++      y = tsr.test0_0_2(y);
++      y = tsr.test0_0_2(y);
++      y = tsr.test0_0_3(y);
++      y = tsr.test0_0_3(y);
++      y = tsr.test0_0_4(y);
++      y = tsr.test0_0_4(y);
++      y = tsr.test0_0_5(y);
++      y = tsr.test0_0_5(y);
++      y = tsr.test0_0_6(y);
++      y = tsr.test0_0_6(y);
++
++      y = tsr.test0_1_3(y);
++      y = tsr.test0_1_3(y);
++      y = tsr.test0_1_4(y);
++      y = tsr.test0_1_4(y);
++      y = tsr.test0_1_5(y);
++      y = tsr.test0_1_5(y);
++      y = tsr.test0_1_6(y);
++      y = tsr.test0_1_6(y);
++
++      y = tsr.test1_0_0(y&~1);
++      y = tsr.test1_0_1(y&~1);
++      y = tsr.test1_0_2(y&~1);
++      y = tsr.test1_0_3(y&~1);
++      y = tsr.test1_0_4(y&~1);
++      y = tsr.test1_0_5(y&~1);
++      y = tsr.test1_0_6(y&~1);
++      y = tsr.test1_0_0((y&~1)+1);
++      y = tsr.test1_0_1((y&~1)+1);
++      y = tsr.test1_0_2((y&~1)+1);
++      y = tsr.test1_0_3((y&~1)+1);
++      y = tsr.test1_0_4((y&~1)+1);
++      y = tsr.test1_0_5((y&~1)+1);
++      y = tsr.test1_0_6((y&~1)+1);
++
++      y = tsr.test1_1_0(y&~1);
++      y = tsr.test1_1_1(y&~1);
++      y = tsr.test1_1_2(y&~1);
++      y = tsr.test1_1_3(y&~1);
++      y = tsr.test1_1_4(y&~1);
++      y = tsr.test1_1_5(y&~1);
++      y = tsr.test1_1_6(y&~1);
++      y = tsr.test1_1_0((y&~1)+1);
++      y = tsr.test1_1_1((y&~1)+1);
++      y = tsr.test1_1_2((y&~1)+1);
++      y = tsr.test1_1_3((y&~1)+1);
++      y = tsr.test1_1_4((y&~1)+1);
++      y = tsr.test1_1_5((y&~1)+1);
++      y = tsr.test1_1_6((y&~1)+1);
++
++      y = tsr.test1_2_0(y&~1);
++      y = tsr.test1_2_1(y&~1);
++      y = tsr.test1_2_2(y&~1);
++      y = tsr.test1_2_3(y&~1);
++      y = tsr.test1_2_4(y&~1);
++      y = tsr.test1_2_5(y&~1);
++      y = tsr.test1_2_6(y&~1);
++      y = tsr.test1_2_0((y&~1)+1);
++      y = tsr.test1_2_1((y&~1)+1);
++      y = tsr.test1_2_2((y&~1)+1);
++      y = tsr.test1_2_3((y&~1)+1);
++      y = tsr.test1_2_4((y&~1)+1);
++      y = tsr.test1_2_5((y&~1)+1);
++      y = tsr.test1_2_6((y&~1)+1);
++
++      y = tsr.test2_0_0(y&~3);
++      y = tsr.test2_0_1(y&~3);
++      y = tsr.test2_0_2(y&~3);
++      y = tsr.test2_0_3(y&~3);
++      y = tsr.test2_0_4(y&~3);
++      y = tsr.test2_0_5(y&~3);
++      y = tsr.test2_0_6(y&~3);
++      y = tsr.test2_0_0((y&~3)+3);
++      y = tsr.test2_0_1((y&~3)+3);
++      y = tsr.test2_0_2((y&~3)+3);
++      y = tsr.test2_0_3((y&~3)+3);
++      y = tsr.test2_0_4((y&~3)+3);
++      y = tsr.test2_0_5((y&~3)+3);
++      y = tsr.test2_0_6((y&~3)+3);
++
++      y = tsr.test2_1_0(y&~3);
++      y = tsr.test2_1_1(y&~3);
++      y = tsr.test2_1_2(y&~3);
++      y = tsr.test2_1_3(y&~3);
++      y = tsr.test2_1_4(y&~3);
++      y = tsr.test2_1_5(y&~3);
++      y = tsr.test2_1_6(y&~3);
++      y = tsr.test2_1_0((y&~3)+3);
++      y = tsr.test2_1_1((y&~3)+3);
++      y = tsr.test2_1_2((y&~3)+3);
++      y = tsr.test2_1_3((y&~3)+3);
++      y = tsr.test2_1_4((y&~3)+3);
++      y = tsr.test2_1_5((y&~3)+3);
++      y = tsr.test2_1_6((y&~3)+3);
++
++      y = tsr.test2_2_0(y&~3);
++      y = tsr.test2_2_1(y&~3);
++      y = tsr.test2_2_2(y&~3);
++      y = tsr.test2_2_3(y&~3);
++      y = tsr.test2_2_4(y&~3);
++      y = tsr.test2_2_5(y&~3);
++      y = tsr.test2_2_6(y&~3);
++      y = tsr.test2_2_0((y&~3)+3);
++      y = tsr.test2_2_1((y&~3)+3);
++      y = tsr.test2_2_2((y&~3)+3);
++      y = tsr.test2_2_3((y&~3)+3);
++      y = tsr.test2_2_4((y&~3)+3);
++      y = tsr.test2_2_5((y&~3)+3);
++      y = tsr.test2_2_6((y&~3)+3);
++
++    }
++    for (int i=0; i<10000; i++) {
++      y = tsr.test0_0_0(y);
++      y = tsr.test0_0_0(y);
++      y = tsr.test0_0_1(y);
++      y = tsr.test0_0_1(y);
++      y = tsr.test0_0_2(y);
++      y = tsr.test0_0_2(y);
++      y = tsr.test0_0_3(y);
++      y = tsr.test0_0_3(y);
++      y = tsr.test0_0_4(y);
++      y = tsr.test0_0_4(y);
++      y = tsr.test0_0_5(y);
++      y = tsr.test0_0_5(y);
++      y = tsr.test0_0_6(y);
++      y = tsr.test0_0_6(y);
++
++      y = tsr.test0_1_3(y);
++      y = tsr.test0_1_3(y);
++      y = tsr.test0_1_4(y);
++      y = tsr.test0_1_4(y);
++      y = tsr.test0_1_5(y);
++      y = tsr.test0_1_5(y);
++      y = tsr.test0_1_6(y);
++      y = tsr.test0_1_6(y);
++
++      y = tsr.test1_0_0(y&~1);
++      y = tsr.test1_0_1(y&~1);
++      y = tsr.test1_0_2(y&~1);
++      y = tsr.test1_0_3(y&~1);
++      y = tsr.test1_0_4(y&~1);
++      y = tsr.test1_0_5(y&~1);
++      y = tsr.test1_0_6(y&~1);
++      y = tsr.test1_0_0((y&~1)+1);
++      y = tsr.test1_0_1((y&~1)+1);
++      y = tsr.test1_0_2((y&~1)+1);
++      y = tsr.test1_0_3((y&~1)+1);
++      y = tsr.test1_0_4((y&~1)+1);
++      y = tsr.test1_0_5((y&~1)+1);
++      y = tsr.test1_0_6((y&~1)+1);
++
++      y = tsr.test1_1_0(y&~1);
++      y = tsr.test1_1_1(y&~1);
++      y = tsr.test1_1_2(y&~1);
++      y = tsr.test1_1_3(y&~1);
++      y = tsr.test1_1_4(y&~1);
++      y = tsr.test1_1_5(y&~1);
++      y = tsr.test1_1_6(y&~1);
++      y = tsr.test1_1_0((y&~1)+1);
++      y = tsr.test1_1_1((y&~1)+1);
++      y = tsr.test1_1_2((y&~1)+1);
++      y = tsr.test1_1_3((y&~1)+1);
++      y = tsr.test1_1_4((y&~1)+1);
++      y = tsr.test1_1_5((y&~1)+1);
++      y = tsr.test1_1_6((y&~1)+1);
++
++      y = tsr.test1_2_0(y&~1);
++      y = tsr.test1_2_1(y&~1);
++      y = tsr.test1_2_2(y&~1);
++      y = tsr.test1_2_3(y&~1);
++      y = tsr.test1_2_4(y&~1);
++      y = tsr.test1_2_5(y&~1);
++      y = tsr.test1_2_6(y&~1);
++      y = tsr.test1_2_0((y&~1)+1);
++      y = tsr.test1_2_1((y&~1)+1);
++      y = tsr.test1_2_2((y&~1)+1);
++      y = tsr.test1_2_3((y&~1)+1);
++      y = tsr.test1_2_4((y&~1)+1);
++      y = tsr.test1_2_5((y&~1)+1);
++      y = tsr.test1_2_6((y&~1)+1);
++
++      y = tsr.test2_0_0(y&~3);
++      y = tsr.test2_0_1(y&~3);
++      y = tsr.test2_0_2(y&~3);
++      y = tsr.test2_0_3(y&~3);
++      y = tsr.test2_0_4(y&~3);
++      y = tsr.test2_0_5(y&~3);
++      y = tsr.test2_0_6(y&~3);
++      y = tsr.test2_0_0((y&~3)+3);
++      y = tsr.test2_0_1((y&~3)+3);
++      y = tsr.test2_0_2((y&~3)+3);
++      y = tsr.test2_0_3((y&~3)+3);
++      y = tsr.test2_0_4((y&~3)+3);
++      y = tsr.test2_0_5((y&~3)+3);
++      y = tsr.test2_0_6((y&~3)+3);
++
++      y = tsr.test2_1_0(y&~3);
++      y = tsr.test2_1_1(y&~3);
++      y = tsr.test2_1_2(y&~3);
++      y = tsr.test2_1_3(y&~3);
++      y = tsr.test2_1_4(y&~3);
++      y = tsr.test2_1_5(y&~3);
++      y = tsr.test2_1_6(y&~3);
++      y = tsr.test2_1_0((y&~3)+3);
++      y = tsr.test2_1_1((y&~3)+3);
++      y = tsr.test2_1_2((y&~3)+3);
++      y = tsr.test2_1_3((y&~3)+3);
++      y = tsr.test2_1_4((y&~3)+3);
++      y = tsr.test2_1_5((y&~3)+3);
++      y = tsr.test2_1_6((y&~3)+3);
++
++      y = tsr.test2_2_0(y&~3);
++      y = tsr.test2_2_1(y&~3);
++      y = tsr.test2_2_2(y&~3);
++      y = tsr.test2_2_3(y&~3);
++      y = tsr.test2_2_4(y&~3);
++      y = tsr.test2_2_5(y&~3);
++      y = tsr.test2_2_6(y&~3);
++      y = tsr.test2_2_0((y&~3)+3);
++      y = tsr.test2_2_1((y&~3)+3);
++      y = tsr.test2_2_2((y&~3)+3);
++      y = tsr.test2_2_3((y&~3)+3);
++      y = tsr.test2_2_4((y&~3)+3);
++      y = tsr.test2_2_5((y&~3)+3);
++      y = tsr.test2_2_6((y&~3)+3);
++
++    }
++
++    int z = 0;
++    y = tsr.test0_0_0(0);
++    System.out.println("After 'test0_0_0' y=" + y);
++    y = tsr.test0_0_1(0);
++    System.out.println("After 'test0_0_1' y=" + y);
++    y = tsr.test0_0_2(0);
++    System.out.println("After 'test0_0_2' y=" + y);
++    y = tsr.test0_0_3(0);
++    System.out.println("After 'test0_0_3' y=" + y);
++    y = tsr.test0_0_4(0);
++    System.out.println("After 'test0_0_4' y=" + y);
++    y = tsr.test0_0_5(0);
++    System.out.println("After 'test0_0_5' y=" + y);
++    y = tsr.test0_0_6(0);
++    System.out.println("After 'test0_0_6' y=" + y);
++    y = tsr.test0_1_3(0);
++    System.out.println("After 'test0_1_3' y=" + y);
++    y = tsr.test0_1_4(0);
++    System.out.println("After 'test0_1_4' y=" + y);
++    y = tsr.test0_1_5(0);
++    System.out.println("After 'test0_1_5' y=" + y);
++    y = tsr.test0_1_6(0);
++    System.out.println("After 'test0_1_6' y=" + y);
++
++    y = tsr.test1_0_0(0);
++    System.out.println("After 'test1_0_0' y=" + y);
++    y = tsr.test1_0_1(0);
++    System.out.println("After 'test1_0_1' y=" + y);
++    y = tsr.test1_0_2(0);
++    System.out.println("After 'test1_0_2' y=" + y);
++    y = tsr.test1_0_3(0);
++    System.out.println("After 'test1_0_3' y=" + y);
++    y = tsr.test1_0_4(0);
++    System.out.println("After 'test1_0_4' y=" + y);
++    y = tsr.test1_0_5(0);
++    System.out.println("After 'test1_0_5' y=" + y);
++    y = tsr.test1_0_6(0);
++    System.out.println("After 'test1_0_6' y=" + y);
++
++    y = tsr.test1_1_0(0);
++    System.out.println("After 'test1_1_0' y=" + y);
++    y = tsr.test1_1_1(0);
++    System.out.println("After 'test1_1_1' y=" + y);
++    y = tsr.test1_1_2(0);
++    System.out.println("After 'test1_1_2' y=" + y);
++    y = tsr.test1_1_3(0);
++    System.out.println("After 'test1_1_3' y=" + y);
++    y = tsr.test1_1_4(0);
++    System.out.println("After 'test1_1_4' y=" + y);
++    y = tsr.test1_1_5(0);
++    System.out.println("After 'test1_1_5' y=" + y);
++    y = tsr.test1_1_6(0);
++    System.out.println("After 'test1_1_6' y=" + y);
++
++    y = tsr.test1_2_0(0);
++    System.out.println("After 'test1_2_0' y=" + y);
++    y = tsr.test1_2_1(0);
++    System.out.println("After 'test1_2_1' y=" + y);
++    y = tsr.test1_2_2(0);
++    System.out.println("After 'test1_2_2' y=" + y);
++    y = tsr.test1_2_3(0);
++    System.out.println("After 'test1_2_3' y=" + y);
++    y = tsr.test1_2_4(0);
++    System.out.println("After 'test1_2_4' y=" + y);
++    y = tsr.test1_2_5(0);
++    System.out.println("After 'test1_2_5' y=" + y);
++    y = tsr.test1_2_6(0);
++    System.out.println("After 'test1_2_6' y=" + y);
++
++    y = tsr.test2_0_0(0);
++    System.out.println("After 'test2_0_0' y=" + y);
++    y = tsr.test2_0_1(0);
++    System.out.println("After 'test2_0_1' y=" + y);
++    y = tsr.test2_0_2(0);
++    System.out.println("After 'test2_0_2' y=" + y);
++    y = tsr.test2_0_3(0);
++    System.out.println("After 'test2_0_3' y=" + y);
++    y = tsr.test2_0_4(0);
++    System.out.println("After 'test2_0_4' y=" + y);
++    y = tsr.test2_0_5(0);
++    System.out.println("After 'test2_0_5' y=" + y);
++    y = tsr.test2_0_6(0);
++    System.out.println("After 'test2_0_6' y=" + y);
++
++    y = tsr.test2_1_0(0);
++    System.out.println("After 'test2_1_0' y=" + y);
++    y = tsr.test2_1_1(0);
++    System.out.println("After 'test2_1_1' y=" + y);
++    y = tsr.test2_1_2(0);
++    System.out.println("After 'test2_1_2' y=" + y);
++    y = tsr.test2_1_3(0);
++    System.out.println("After 'test2_1_3' y=" + y);
++    y = tsr.test2_1_4(0);
++    System.out.println("After 'test2_1_4' y=" + y);
++    y = tsr.test2_1_5(0);
++    System.out.println("After 'test2_1_5' y=" + y);
++    y = tsr.test2_1_6(0);
++    System.out.println("After 'test2_1_6' y=" + y);
++
++    y = tsr.test2_2_0(0);
++    System.out.println("After 'test2_2_0' y=" + y);
++    y = tsr.test2_2_1(0);
++    System.out.println("After 'test2_2_1' y=" + y);
++    y = tsr.test2_2_2(0);
++    System.out.println("After 'test2_2_2' y=" + y);
++    y = tsr.test2_2_3(0);
++    System.out.println("After 'test2_2_3' y=" + y);
++    y = tsr.test2_2_4(0);
++    System.out.println("After 'test2_2_4' y=" + y);
++    y = tsr.test2_2_5(0);
++    System.out.println("After 'test2_2_5' y=" + y);
++    y = tsr.test2_2_6(0);
++    System.out.println("After 'test2_2_6' y=" + y);
++
++  }
++}
+diff -r 4aebfff4f8a2 hotspot/test/compiler/6741738/Tester.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/hotspot/test/compiler/6741738/Tester.java	Fri Sep 26 09:52:43 2008 +0200
+@@ -0,0 +1,50 @@
++/*
++ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ */
++
++/*
++ * @test
++ * @bug 6741738
++ * @summary TypePtr::add_offset() set incorrect offset when the add overflows
++ * @run main/othervm -Xcomp -XX:CompileOnly=Tester.foo Tester
++ */
++
++public class Tester {
++        private String[] values;
++        private int count;
++
++        String foo() {
++                int i = Integer.MAX_VALUE-1;
++                String s;
++                try {
++                    s = values[i];
++                } catch (Throwable e) {
++                    s = "";
++                }
++                return s;
++        }
++
++        public static void main(String[] args) {
++                Tester t = new Tester();
++                String s = t.foo();
++        }
++}