1 /*
   2  * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /*
  25  * @test
  26  * @bug 6711117
  27  * @summary Assertion in 64bit server vm (flat != TypePtr::BOTTOM,"cannot alias-analyze an untyped ptr")
  28  *
  29  * @run main/othervm -Xcomp -XX:+IgnoreUnrecognizedVMOptions -XX:+EliminateAutoBox -XX:AutoBoxCacheMax=20000
  30  *                   -XX:+UseCompressedOops compiler.c2.cr6711117.Test
  31  */
  32 
  33 package compiler.c2.cr6711117;
  34 
  35 final class Test_Class_0 {
  36     final static char var_1 = 'E';
  37     short var_2 = 16213;
  38     final static String var_3 = "jiiibmmsk";
  39 
  40 
  41     public Test_Class_0()
  42     {
  43         var_2 ^= 'M';
  44         final String var_18 = var_3;
  45         var_2--;
  46         var_2 |= (byte)('D' / (byte)var_2) - ((byte)1.6680514E38F << + ((byte)'O') & 7320241275829036032L);
  47         func_2(((!false & false | false ? true : false) ? true : true | !true) ? var_2 : 834513107);
  48         var_2 >>>= var_1;
  49         "smiosoebk".codePointCount(true ^ (false ^ ! !false) ? (byte)- ((byte)430513598) : + ((byte)'_'), ~ (true ? (byte)']' : (byte)-2.8272547997066827E307));
  50         var_2 -= true ? var_1 : var_1;
  51         var_2 ^= var_1;
  52         var_2 &= (var_2 |= ~ ((byte)(var_2 *= var_2)));
  53         long var_19 = 0L;
  54         short var_20 = var_2 += 'P';
  55         while (var_19 < 1)
  56         {
  57             var_2 ^= true ? (byte)- +1.2219539475209E308 : (byte)1.2748408476894178E308;
  58             var_19++;
  59             var_2 = (byte)((1489358000 == (var_20 | 7816908224315289600L) ? var_1 : var_1) ^ var_19);
  60             var_20--;
  61         }
  62         var_20 -= 'f';
  63         var_20 <<= (((new Test_Class_0[(byte)var_20])[(byte)var_2]).var_2 *= false ? 'g' : 'x');
  64     }
  65 
  66 
  67 
  68 
  69     static float func_0()
  70     {
  71         ((new Test_Class_0[(byte)7.774490796987995E307])[(byte)'v']).var_2 <<= false ^ !false ? (short)'v' : "".codePointCount(594464985, 579036736);
  72         ((new Test_Class_0[(byte)(((new Test_Class_0[(byte)1361657519])[(byte)2.3703713E38F]).var_2-- - (short)3.5589388134844986E307)])[((true ? !true : false) ^ (!false ? true : !true) ? !false : false) ? (byte)7.047289E37F : (byte)- ((byte)2.6620062118475144E307)]).var_2 *= 3273943364390983680L;
  73         --((new Test_Class_0[false ? (byte)(short)1.4965069E36F : (byte)286322022])[(byte)- ((byte)2.742619E38F)]).var_2;
  74         long var_4;
  75         {
  76             double var_5;
  77         }
  78         var_4 = (byte)1.3509231E38F;
  79         ((new Test_Class_0[(byte)'_'])[('g' | 1427123046096105472L) < var_1 >> (byte)(int)(byte)7697616672011068416L ? (byte)var_1 : (byte)1251856579]).var_2--;
  80         switch (--((new Test_Class_0[(byte)5.0656327E37F])[(byte)'e']).var_2 != ++((new Test_Class_0[(byte)(int)1.3728667270920175E308])[(byte)+ + -1.6338179407381788E308]).var_2 | !var_3.equalsIgnoreCase("iiwwwln") ? (false ? (byte)1.8291216E38F : (byte)4.778575546584698E307) : (byte)1048254181)
  81         {
  82             case 99:
  83 
  84         }
  85         {
  86             byte var_6 = 13;
  87         }
  88         var_4 = --((new Test_Class_0[!var_3.endsWith("qaoioore") ^ false ? (byte)2.827362738392923E307 : (byte)~4890175967151316992L])[(byte)(short)var_1]).var_2;
  89         ++((new Test_Class_0[(byte)(1.0075552E38F + (short)2083553541)])[(byte)(short)(byte)(short)1.6872205E38F]).var_2;
  90         return ((new Test_Class_0[(byte)var_1])[(byte)+ +5760973323384750080L]).var_2 - (false ? (byte)'i' : (var_4 = (short)1.2458781351126844E308) + 2.131006E38F);
  91     }
  92 
  93     public static long func_1(String arg_0, Object arg_1, final long arg_2)
  94     {
  95         arg_0 = false ? arg_0 : "fgbrpgsq";
  96         ((new Test_Class_0[(byte)- ((byte)']')])[false ? (byte)757239006 : (byte)1866002020]).var_2 ^= (short)(true ? (byte)(((new Test_Class_0[(byte)1416194866])[(byte)1.2309887362692395E308]).var_2 >>= (int)~ ~ ~arg_2) : (byte)5804970709284726784L);
  97         final long var_7 = (long)(- + ((long)+ - + - -2.5396583E38F) - - +1.8770165E38F % 2472404173160781824L < --((new Test_Class_0[(byte)5.569360482341752E307])[(byte)(double)(byte)8131142397821553664L]).var_2 ^ true ? (false ? (byte)- -1.163275451591927E308 : (byte)var_1) : (false ? (byte)1843746036 : (byte)1.0209668642291047E308));
  98         arg_0 = (arg_0 = arg_0.substring(699480935));
  99         switch (((new Test_Class_0[(byte)(5415649243316856832L >> 861936806)])[true | true & !false ? (byte)(short)- -7.785169683394908E307 : (byte)+ ((byte)arg_2)]).var_2++)
 100         {
 101             case 42:
 102 
 103             case 102:
 104 
 105         }
 106         arg_1 = (true || false ? false : true) ? (arg_0 = (arg_0 = "jbfaru")) : arg_0;
 107         arg_1 = new byte[(byte)2.669957E38F];
 108         boolean var_8 = ! ((false ? (short)1.4259420861834744E308 : (short)7.352115508157158E307) != 1.7635658130722812E308);
 109         arg_1 = new Object[(byte)- ((byte)(short)1.8950693E38F)];
 110         arg_0 = arg_0;
 111         return (byte)1.4762239057269886E308 & 4923938844759802880L;
 112     }
 113 
 114     double[][] func_2(final int arg_0)
 115     {
 116         var_2 >>>= (var_2 >>= var_2++);
 117         float var_9 = 0F;
 118         var_2 %= var_2;
 119         do
 120         {
 121             ++var_2;
 122             var_9++;
 123             var_2++;
 124         } while (true && (var_9 < 1 && false));
 125         double var_10 = 0;
 126         final int var_11 = 11903395;
 127         do
 128         {
 129             --var_2;
 130             var_10++;
 131             ++var_2;
 132         } while ((false & true || false) && (var_10 < 2 && ~ ((byte)'[') == (byte)(1.1943192E38F % ('c' << var_1) % (byte)((var_2 |= var_2) + 591679039 / ~5932100696448264192L))));
 133         String var_12 = "jkwnk";
 134         var_12 = var_3;
 135         var_12 = (var_12 = (var_12 = var_3));
 136         var_12 = "qrhdwx";
 137         var_12 = var_12;
 138         short var_13 = (true && true) ^ true | ! (!true || 1646418779 <= (byte)var_1) ? var_2 : var_2;
 139         return new double[(byte)var_1][true || false ^ !true ^ true ? (byte)arg_0 : (byte)var_10];
 140     }
 141 
 142     private final int func_3()
 143     {
 144         long var_14 = 's' * (~ ~6656240461354863616L * 3151744928387344384L) << ~ (((var_2 >>>= 6600935261424147456L) % 1798503219359364096L | - ~3832249967647077376L / - ((byte)~1529201870915276800L)) / var_2);
 145         {
 146             var_14 |= !false | (byte)1078230528 >= (byte)1.3972878565417081E308 | (true | !true & !true & !false) ? var_1 : '_';
 147         }
 148         long var_15 = 7589204885152164864L;
 149         var_2 ^= (var_1 < (byte)'r' ? 475314139 : 'Z') <= 1943074698 ? 'h' : var_1;
 150         return 'V' * (false ? (byte)5.498204E37F : (byte)1.0137001669765466E308);
 151     }
 152 
 153     protected static boolean func_4(boolean arg_0, byte arg_1, boolean arg_2)
 154     {
 155         arg_1++;
 156         arg_1 &= (((((new Test_Class_0[arg_1][arg_1][arg_1])[arg_1])[arg_1])[arg_1]).var_2 |= arg_2 ? (short)~3038084056596854784L : (short)+ (arg_1 = arg_1));
 157         arg_0 |= true;
 158         arg_1 %= (arg_1 |= ((new Test_Class_0[arg_1])[arg_1]).var_2--);
 159         if (false)
 160         {
 161             arg_0 |= arg_2;
 162         }
 163         else
 164         {
 165             ++(((new Test_Class_0[arg_1][arg_1][arg_1])[arg_1 += var_1])[(!arg_2 | (arg_0 &= false)) ^ (arg_0 | arg_0) ? arg_1 : (arg_1 <<= 3192041751921364992L)][arg_1 /= arg_1]).var_2;
 166         }
 167         arg_1 &= +(new byte[arg_1])[arg_1];
 168         arg_1 <<= 3632133838014908416L;
 169         byte[] var_16 = (new byte[arg_1][arg_1--])[arg_1];
 170         long var_17;
 171         arg_1 ^= ~ arg_1--;
 172         arg_0 ^= (arg_2 ^= 1186877294 >= ((new Test_Class_0[arg_1][arg_1])[arg_1][arg_1]).var_2) & arg_2;
 173         return var_3.startsWith(var_3);
 174     }
 175 
 176     public String toString()
 177     {
 178         String result =  "[\n";
 179         result += "Test_Class_0.var_2 = "; result += Test.Printer.print(var_2);
 180         result += "\n";
 181         result += "Test_Class_0.var_1 = "; result += Test.Printer.print(var_1);
 182         result += "\n";
 183         result += "Test_Class_0.var_3 = "; result += Test.Printer.print(var_3);
 184         result += "";
 185         result += "\n]";
 186         return result;
 187     }
 188 }
 189 
 190 
 191 class Test_Class_1 {
 192     static int var_21 = 670918363;
 193     final float var_22 = 8.650798E37F;
 194     static int var_23 = 1774228457;
 195     final int var_24 = 1282736974;
 196     final byte var_25 = !false & false | true ? (byte)7.677121016144275E307 : (byte)'r';
 197     static long var_26 = 2939310115459338240L;
 198     final long var_27 = var_25 - 7555453173456381952L;
 199     double var_28;
 200     static String var_29;
 201 
 202 
 203     public Test_Class_1()
 204     {
 205         var_29 = Test_Class_0.var_3;
 206         ((false ? false || ! !true : ! (! !true & !true)) ? new Test_Class_0() : new Test_Class_0()).var_2++;
 207         var_23 -= 2.963694E38F;
 208     }
 209 
 210 
 211 
 212 
 213     public String toString()
 214     {
 215         String result =  "[\n";
 216         result += "Test_Class_1.var_21 = "; result += Test.Printer.print(var_21);
 217         result += "\n";
 218         result += "Test_Class_1.var_23 = "; result += Test.Printer.print(var_23);
 219         result += "\n";
 220         result += "Test_Class_1.var_24 = "; result += Test.Printer.print(var_24);
 221         result += "\n";
 222         result += "Test_Class_1.var_26 = "; result += Test.Printer.print(var_26);
 223         result += "\n";
 224         result += "Test_Class_1.var_27 = "; result += Test.Printer.print(var_27);
 225         result += "\n";
 226         result += "Test_Class_1.var_28 = "; result += Test.Printer.print(var_28);
 227         result += "\n";
 228         result += "Test_Class_1.var_22 = "; result += Test.Printer.print(var_22);
 229         result += "\n";
 230         result += "Test_Class_1.var_25 = "; result += Test.Printer.print(var_25);
 231         result += "\n";
 232         result += "Test_Class_1.var_29 = "; result += Test.Printer.print(var_29);
 233         result += "";
 234         result += "\n]";
 235         return result;
 236     }
 237 }
 238 
 239 
 240 class Test_Class_2 {
 241     double var_30;
 242     static byte var_31;
 243     static char var_32;
 244     float var_33;
 245     double var_34 = !false & (true ? true : ! !true && false) ? 'q' - 4789231433793305600L - (var_33 = -1.0677024E38F) : 2.65473560313378E307;
 246     final double var_35 = ~Test_Class_1.var_26 == 5.145660681364723E307 | false ? 1.4134775E38F : 1.77223030708671E308;
 247     final int var_36 = Test_Class_1.var_23 |= Test_Class_1.var_21++;
 248 
 249 
 250     public Test_Class_2()
 251     {
 252         Test_Class_0.var_3.replace(Test_Class_0.var_1, 'Q');
 253         var_32 = (var_32 = (var_32 = '_'));
 254         Test_Class_1.var_26 |= Test_Class_0.var_1;
 255         Test_Class_1.var_29 = (Test_Class_1.var_29 = Test_Class_0.var_3);
 256         var_32 = Test_Class_0.var_1;
 257         var_33 = ((new Test_Class_0[(byte)851412948463452160L])[var_31 = new Test_Class_1().var_25]).var_2;
 258         var_33 = ! (((!false | false) & (false || !true) ? false : ! !false) | false) ? new Test_Class_1().var_25 : (var_31 = new Test_Class_1().var_25);
 259         float var_38 = 0F;
 260         var_34 /= 5336005797857974272L;
 261         for ("ccnyq".endsWith((new String[(byte)Test_Class_1.var_26])[var_31 = (var_31 = (var_31 = (byte)4.7927775E37F))]); var_38 < 2; var_32 = '^' <= Test_Class_0.var_1 ^ true ? (var_32 = Test_Class_0.var_1) : (var_32 = 'V'))
 262         {
 263             var_32 = true ? 'a' : (var_32 = Test_Class_0.var_1);
 264             var_38++;
 265             var_33 = new Test_Class_1().var_24;
 266             var_32 = ! (true || true ? !false : (short)3.2844383E37F < 2.1400662E38F) ? (char)1.2691096999143248E308 : (! !false ^ true ? 's' : 'q');
 267         }
 268         var_32 = 'B';
 269         {
 270             var_32 = Test_Class_0.var_1;
 271         }
 272         var_32 = Test_Class_0.var_1;
 273         Test_Class_1.var_29 = "ov";
 274         Test_Class_1.var_29 = "smtolghw";
 275     }
 276 
 277 
 278 
 279 
 280 
 281     protected final static String func_0(final long[][] arg_0, byte arg_1, char arg_2)
 282     {
 283         arg_1 <<= (((new Test_Class_2[arg_1])[arg_1]).var_34 > new Test_Class_0().var_2 | true ? new Test_Class_0() : (new Test_Class_0[arg_1][arg_1])[new Test_Class_1().var_25][new Test_Class_1().var_25]).var_2;
 284         Test_Class_1.var_26 >>>= (!true | !true | (new boolean[arg_1])[arg_1] || true ? (new Test_Class_1[arg_1])[arg_1] : new Test_Class_1()).var_27;
 285         float var_37 = 0F;
 286         arg_2 >>= ((new Test_Class_1[arg_1][arg_1])[arg_1][arg_1]).var_25;
 287         do
 288         {
 289             ((new Test_Class_2[arg_1 /= 2055714081])[arg_1]).var_34 = 'l';
 290             var_37++;
 291             Test_Class_1.var_29 = Test_Class_0.var_3;
 292         } while ((false ? false : false) && var_37 < 7);
 293         Test_Class_1.var_29 = Test_Class_0.var_3 + "";
 294         ((new Test_Class_2[new Test_Class_1().var_25][new Test_Class_1().var_25])[new Test_Class_1().var_25][arg_1 |= new Test_Class_0().var_2]).var_34 += Test_Class_0.var_1;
 295         return "esb";
 296     }
 297 
 298     public String toString()
 299     {
 300         String result =  "[\n";
 301         result += "Test_Class_2.var_32 = "; result += Test.Printer.print(var_32);
 302         result += "\n";
 303         result += "Test_Class_2.var_36 = "; result += Test.Printer.print(var_36);
 304         result += "\n";
 305         result += "Test_Class_2.var_30 = "; result += Test.Printer.print(var_30);
 306         result += "\n";
 307         result += "Test_Class_2.var_34 = "; result += Test.Printer.print(var_34);
 308         result += "\n";
 309         result += "Test_Class_2.var_35 = "; result += Test.Printer.print(var_35);
 310         result += "\n";
 311         result += "Test_Class_2.var_33 = "; result += Test.Printer.print(var_33);
 312         result += "\n";
 313         result += "Test_Class_2.var_31 = "; result += Test.Printer.print(var_31);
 314         result += "";
 315         result += "\n]";
 316         return result;
 317     }
 318 }
 319 
 320 
 321 final class Test_Class_3 extends Test_Class_2 {
 322     byte var_39 = 23;
 323     static boolean var_40 = false;
 324 
 325 
 326     public Test_Class_3()
 327     {
 328         if (true)
 329         {
 330             Test_Class_1.var_21 |= new Test_Class_1().var_27;
 331         }
 332         else
 333         {
 334             final float var_46 = 7.9266674E37F;
 335             ++Test_Class_1.var_26;
 336         }
 337         {
 338             Test_Class_1.var_23++;
 339         }
 340         var_30 = ((new Test_Class_1[var_39][var_39])[var_39][var_39]).var_25;
 341         if (var_40 &= (var_40 |= (var_40 |= var_40)))
 342         {
 343             Test_Class_0.var_3.indexOf(Test_Class_1.var_29 = "xfgyblg", 'X' >>> ((Test_Class_1)(new Object[var_39])[((new Test_Class_1[var_39])[var_39]).var_25]).var_27);
 344         }
 345         else
 346         {
 347             var_40 &= var_40 && var_40;
 348         }
 349         ((Test_Class_2)(((new boolean[var_39])[var_39++] ? (var_40 &= var_40) : (var_40 &= false)) ? (new Test_Class_2[var_39][var_39])[var_39][var_39] : (new Object[var_39][var_39])[var_39][var_39])).var_33 = (var_40 ? new Test_Class_1() : new Test_Class_1()).var_25;
 350         switch (var_39)
 351         {
 352             case 24:
 353 
 354         }
 355         var_39 += (((var_40 ^= true) ? new Test_Class_0() : new Test_Class_0()).var_2 ^= var_40 & (var_40 | false) ? var_39-- : var_36);
 356         new Test_Class_0().var_2 %= (new Test_Class_0().var_2 += (var_39 ^= Test_Class_1.var_26));
 357     }
 358 
 359 
 360 
 361 
 362     private static String func_0()
 363     {
 364         --Test_Class_1.var_26;
 365         {
 366             Test_Class_1.var_29 = var_40 ? Test_Class_0.var_3 : "rahqjhqf";
 367         }
 368         if (var_40 ^= var_40)
 369         {
 370             Test_Class_1.var_26 >>= (Test_Class_2.var_32 = Test_Class_0.var_1) / new Test_Class_0().var_2;
 371         }
 372         else
 373         {
 374             ++Test_Class_1.var_21;
 375         }
 376         ++Test_Class_1.var_26;
 377         int var_41 = 0;
 378         ++Test_Class_1.var_26;
 379         do
 380         {
 381             var_40 = (var_40 = true);
 382             var_41++;
 383             Test_Class_0 var_42 = new Test_Class_0();
 384         } while (var_41 < 1);
 385         Test_Class_1.var_29 = "f";
 386         Test_Class_1 var_43;
 387         var_43 = (var_43 = new Test_Class_1());
 388         Test_Class_2.var_32 = 'V';
 389         long var_44 = 0L;
 390         Test_Class_1.var_23--;
 391         while (var_40 && (var_44 < 1 && var_40))
 392         {
 393             Test_Class_1.var_29 = "bsgewkmk";
 394             var_44++;
 395             Test_Class_1.var_29 = "ktegattny";
 396             var_40 &= var_40 ^ (var_40 |= (short)4.4487427E37F < 'n') & true;
 397         }
 398         Test_Class_1.var_23 %= (((var_40 |= true & (var_40 &= var_40)) ^ true ? new Test_Class_0() : new Test_Class_0()).var_2 -= 1.6638270827800162E308);
 399         float var_45;
 400         var_32 = (Test_Class_2.var_32 = Test_Class_0.var_1);
 401         return false ? "fluk" : "wt";
 402     }
 403 
 404     public String toString()
 405     {
 406         String result =  "[\n";
 407         result += "Test_Class_3.var_32 = "; result += Test.Printer.print(var_32);
 408         result += "\n";
 409         result += "Test_Class_3.var_36 = "; result += Test.Printer.print(var_36);
 410         result += "\n";
 411         result += "Test_Class_3.var_30 = "; result += Test.Printer.print(var_30);
 412         result += "\n";
 413         result += "Test_Class_3.var_34 = "; result += Test.Printer.print(var_34);
 414         result += "\n";
 415         result += "Test_Class_3.var_35 = "; result += Test.Printer.print(var_35);
 416         result += "\n";
 417         result += "Test_Class_3.var_33 = "; result += Test.Printer.print(var_33);
 418         result += "\n";
 419         result += "Test_Class_3.var_31 = "; result += Test.Printer.print(var_31);
 420         result += "\n";
 421         result += "Test_Class_3.var_39 = "; result += Test.Printer.print(var_39);
 422         result += "\n";
 423         result += "Test_Class_3.var_40 = "; result += Test.Printer.print(var_40);
 424         result += "";
 425         result += "\n]";
 426         return result;
 427     }
 428 }
 429 
 430 
 431 class Test_Class_4 {
 432     final float var_47 = 1.9043434E38F;
 433     final byte var_48 = 32;
 434     final float var_49 = 2.8176504E38F;
 435     final char var_50 = 'r';
 436     final String var_51 = "uwgmnjpg";
 437     static int var_52;
 438     short[] var_53;
 439     Test_Class_1 var_54;
 440 
 441 
 442     public Test_Class_4()
 443     {
 444         final float var_55 = (3.1554042E38F == var_50 ^ (Test_Class_3.var_40 |= true) ? (Test_Class_3.var_40 ^= Test_Class_3.var_40) ^ true : Test_Class_3.var_40) ? new Test_Class_0().var_2 : 2.965321E38F;
 445         new Test_Class_0().var_2 = (new Test_Class_0().var_2 >>= +new Test_Class_1().var_25);
 446         ((Test_Class_1.var_29 = (Test_Class_1.var_29 = (Test_Class_1.var_29 = "l"))) + "").equalsIgnoreCase(Test_Class_1.var_29 = "garnio");
 447         double var_56 = 0;
 448         Test_Class_1.var_29 = var_51;
 449         while (var_56 < 1)
 450         {
 451             ((Test_Class_3)(Test_Class_2)(new Object[var_48])[var_48]).var_33 = ++Test_Class_1.var_26;
 452             var_56++;
 453             Test_Class_1.var_29 = (Test_Class_1.var_29 = "fvyjrih");
 454             float[] var_57;
 455         }
 456         {
 457             ((new Test_Class_2[var_48])[((new Test_Class_3[var_48][var_48])[var_48][var_48]).var_39]).var_34 *= 2.2119221943262553E307;
 458             Test_Class_2.var_32 = true ? 'q' : 't';
 459             ((new Test_Class_3[--((Test_Class_3)new Test_Class_2()).var_39])[var_48]).var_33 = new Test_Class_0().var_2;
 460             int var_58 = 'i' >> (var_48 << Test_Class_0.var_1);
 461         }
 462         Test_Class_3.var_40 &= true && var_51.equalsIgnoreCase(var_51) || new Test_Class_0().var_2 < --((new Test_Class_3[var_48])[var_48]).var_39;
 463         ((Test_Class_3)(Test_Class_2)(new Object[var_48][var_48])[var_48][var_48]).var_34 += Test_Class_1.var_26--;
 464         var_54 = new Test_Class_1();
 465         Test_Class_3.var_40 |= (long)(!true ^ var_47 > ((Test_Class_2)(new Object[var_48])[var_48]).var_34 ? (Test_Class_2.var_31 = (Test_Class_3.var_31 = (Test_Class_3.var_31 = var_48))) : (var_54 = new Test_Class_1()).var_25) <= var_48;
 466         (Test_Class_3.var_40 ? (true ? new Test_Class_0() : new Test_Class_0()) : new Test_Class_0()).var_2 &= var_48;
 467         (Test_Class_3.var_40 ? (Test_Class_3)new Test_Class_2() : (new Test_Class_3[var_48][var_48])[var_48][var_48]).var_34 += Test_Class_1.var_21;
 468         Test_Class_3 var_59;
 469         Test_Class_2.var_32 = 'H';
 470         --Test_Class_1.var_26;
 471     }
 472 
 473 
 474 
 475 
 476 
 477     public String toString()
 478     {
 479         String result =  "[\n";
 480         result += "Test_Class_4.var_50 = "; result += Test.Printer.print(var_50);
 481         result += "\n";
 482         result += "Test_Class_4.var_52 = "; result += Test.Printer.print(var_52);
 483         result += "\n";
 484         result += "Test_Class_4.var_53 = "; result += Test.Printer.print(var_53);
 485         result += "\n";
 486         result += "Test_Class_4.var_47 = "; result += Test.Printer.print(var_47);
 487         result += "\n";
 488         result += "Test_Class_4.var_49 = "; result += Test.Printer.print(var_49);
 489         result += "\n";
 490         result += "Test_Class_4.var_48 = "; result += Test.Printer.print(var_48);
 491         result += "\n";
 492         result += "Test_Class_4.var_51 = "; result += Test.Printer.print(var_51);
 493         result += "\n";
 494         result += "Test_Class_4.var_54 = "; result += Test.Printer.print(var_54);
 495         result += "";
 496         result += "\n]";
 497         return result;
 498     }
 499 }
 500 
 501 
 502 class Test_Class_5 extends Test_Class_4 {
 503     char var_60 = '_';
 504     final byte var_61 = 101;
 505 
 506 
 507     public Test_Class_5()
 508     {
 509         Test_Class_0.var_3.indexOf(Test_Class_1.var_21, (Test_Class_3.var_40 |= Test_Class_3.var_40) ? new Test_Class_1().var_24 : 'i');
 510     }
 511 
 512 
 513 
 514 
 515     final char func_0(Test_Class_1 arg_0, final Test_Class_1 arg_1)
 516     {
 517         long var_62 = 0L;
 518         "aoal".toLowerCase();
 519         for (byte var_63 = arg_0.var_25; var_62 < 1 && "ji".startsWith("dikrs".endsWith("va") ? (Test_Class_1.var_29 = "mvp") : Test_Class_0.var_3, Test_Class_1.var_23); ((Test_Class_2)(new Object[arg_0.var_25])[var_63]).var_34 -= new Test_Class_2().var_36)
 520         {
 521             ((Test_Class_3.var_40 ? false : Test_Class_3.var_40) ? (Test_Class_0)(new Object[arg_1.var_25][arg_1.var_25])[arg_1.var_25][var_63] : (Test_Class_0)(new Object[var_48][var_48])[var_63][var_63]).var_2 += true ^ Test_Class_3.var_40 ^ (((new Test_Class_3[var_63][var_63])[var_63][var_61]).var_35 != 2.1423512E38F | ! !false) ? var_49 + ~var_48 : 3.1549515E38F;
 522             var_62++;
 523             (!false & ((Test_Class_3.var_40 |= (Test_Class_3.var_40 ^= true)) & true) ? (Test_Class_2)(new Object[var_63])[var_63] : (new Test_Class_2[var_63][var_61])[var_63][arg_0.var_25]).var_33 = (var_60 *= (var_60 *= ((new Test_Class_3[var_48][var_61])[var_61][var_63]).var_35));
 524             float var_64;
 525         }
 526         Test_Class_1.var_29 = "xyenjknu";
 527         Test_Class_3.var_40 ^= (Test_Class_3.var_40 = !false & true) ? Test_Class_3.var_40 : Test_Class_3.var_40;
 528         ((new Test_Class_2[var_48][arg_1.var_25])[arg_0.var_25][var_48]).var_33 = var_61;
 529         Test_Class_1.var_21 |= --(((new Test_Class_3[Test_Class_3.var_31 = arg_0.var_25][var_61])[var_61])[(((new Test_Class_3[var_48][var_61])[var_48])[((Test_Class_3)(new Test_Class_2[var_48][arg_0.var_25])[var_61][var_48]).var_39]).var_39 >>>= var_60]).var_39;
 530         var_51.compareToIgnoreCase("hgcaybk");
 531         Test_Class_0 var_65 = (Test_Class_1.var_29 = "t").codePointBefore(1602805584) >= (float)((new Test_Class_3[var_48][var_61])[var_48][Test_Class_2.var_31 = arg_1.var_25]).var_39 - 7.256386549028811E307 ? new Test_Class_0() : ((new Test_Class_0[arg_0.var_25][var_48][var_48])[arg_0.var_25])[arg_0.var_25][Test_Class_2.var_31 = arg_1.var_25];
 532         return 'U';
 533     }
 534 
 535     protected static Test_Class_1 func_1(final short arg_0, long arg_1)
 536     {
 537         --new Test_Class_0().var_2;
 538         "xb".length();
 539         if ((Test_Class_3.var_40 ^= (Test_Class_2.var_32 = Test_Class_0.var_1) == 1.2609472E38F) ? (Test_Class_3.var_40 = (Test_Class_3.var_40 = Test_Class_3.var_40)) : true)
 540         {
 541             --Test_Class_1.var_26;
 542         }
 543         else
 544         {
 545             "ybbe".substring(209378562, var_52 = (Test_Class_1.var_21 |= (Test_Class_2.var_31 = (byte)'a')));
 546         }
 547         Test_Class_3.var_40 &= (Test_Class_3.var_40 &= true) && (Test_Class_1.var_29 = (Test_Class_1.var_29 = Test_Class_0.var_3)).endsWith(Test_Class_0.var_3);
 548         (false ? new Test_Class_0() : new Test_Class_0()).var_2 >>= new Test_Class_1().var_25;
 549         return 9.430116214455637E307 <= (true ? (Test_Class_3)new Test_Class_2() : (Test_Class_3)new Test_Class_2()).var_34 ? new Test_Class_1() : new Test_Class_1();
 550     }
 551 
 552     public String toString()
 553     {
 554         String result =  "[\n";
 555         result += "Test_Class_5.var_50 = "; result += Test.Printer.print(var_50);
 556         result += "\n";
 557         result += "Test_Class_5.var_60 = "; result += Test.Printer.print(var_60);
 558         result += "\n";
 559         result += "Test_Class_5.var_52 = "; result += Test.Printer.print(var_52);
 560         result += "\n";
 561         result += "Test_Class_5.var_53 = "; result += Test.Printer.print(var_53);
 562         result += "\n";
 563         result += "Test_Class_5.var_47 = "; result += Test.Printer.print(var_47);
 564         result += "\n";
 565         result += "Test_Class_5.var_49 = "; result += Test.Printer.print(var_49);
 566         result += "\n";
 567         result += "Test_Class_5.var_48 = "; result += Test.Printer.print(var_48);
 568         result += "\n";
 569         result += "Test_Class_5.var_61 = "; result += Test.Printer.print(var_61);
 570         result += "\n";
 571         result += "Test_Class_5.var_51 = "; result += Test.Printer.print(var_51);
 572         result += "\n";
 573         result += "Test_Class_5.var_54 = "; result += Test.Printer.print(var_54);
 574         result += "";
 575         result += "\n]";
 576         return result;
 577     }
 578 }
 579 
 580 public class Test {
 581     Test_Class_4 var_66;
 582     Test_Class_3 var_67;
 583     Test_Class_5 var_68;
 584     Test_Class_2[] var_69;
 585     long var_70 = ++Test_Class_1.var_26 & Test_Class_1.var_21++;
 586     final static double var_71 = 3.566207721984698E307;
 587     static boolean var_72;
 588     final static String var_73 = "nmxx";
 589 
 590 
 591     private final char func_0(Test_Class_3 arg_0, final boolean[] arg_1)
 592     {
 593         ((Test_Class_5)(arg_1[arg_0.var_39++] ? new Test_Class_2[(var_67 = arg_0).var_39] : (new Object[arg_0.var_39])[arg_0.var_39])).var_54 = new Test_Class_1();
 594         new Test_Class_0();
 595         (((new Test[arg_0.var_39][arg_0.var_39][arg_0.var_39])[++arg_0.var_39])[arg_0.var_39][arg_0.var_39]).var_66 = (var_68 = (new Test_Class_5[arg_0.var_39][arg_0.var_39])[arg_0.var_39][arg_0.var_39]);
 596         ((new Test[arg_0.var_39])[(arg_0 = (var_67 = (arg_0 = arg_0))).var_39]).var_70 = ((new long[arg_0.var_39][arg_0.var_39])[arg_0.var_39])[arg_0.var_39 = ((var_67 = (arg_0 = arg_0)).var_39 -= new Test_Class_0().var_2)] << ']';
 597         arg_0 = (new Test_Class_0().var_2 *= ((new Test_Class_2[arg_0.var_39])[arg_0.var_39]).var_34) >= arg_0.var_39 ? (var_67 = arg_0) : (arg_0 = arg_0);
 598         Test_Class_1.var_26--;
 599         Test_Class_4 var_74 = var_66 = (Test_Class_5)(new Test_Class_4[arg_0.var_39])[arg_0.var_39];
 600         Test_Class_3.var_40 ^= ! (Test_Class_3.var_40 &= (Test_Class_3.var_40 ^= Test_Class_3.var_40) | (Test_Class_3.var_40 &= Test_Class_3.var_40));
 601         var_72 = (arg_1[(var_67 = arg_0).var_39] | !Test_Class_3.var_40 & !Test_Class_3.var_40 ? (Test_Class_1.var_29 = var_73).endsWith((var_66 = var_74).var_51) && (Test_Class_3.var_40 ^= Test_Class_3.var_40) : (Test_Class_3.var_40 ^= Test_Class_3.var_40)) ^ !Test_Class_3.var_40;
 602         Test_Class_3.var_40 &= (Test_Class_3.var_40 &= (Test_Class_3.var_40 = Test_Class_3.var_40) & Test_Class_3.var_40 ^ Test_Class_3.var_40);
 603         arg_0.var_39 -= --var_70;
 604         int var_75;
 605         double var_76;
 606         {
 607             boolean var_77;
 608             var_70 ^= new Test_Class_0().var_2++;
 609         }
 610         Test_Class_1.var_26 /= Test_Class_0.var_3.lastIndexOf(~new Test_Class_1().var_25, Test_Class_1.var_21);
 611         Test_Class_1.var_26 |= Test_Class_1.var_21;
 612         (((new Test_Class_3[arg_0.var_39][arg_0.var_39][var_74.var_48])[arg_0.var_39])[arg_0.var_39][arg_0.var_39]).var_34 %= (var_67 = arg_0).var_39;
 613         Test_Class_1.var_21 &= arg_0.var_39;
 614         var_68 = (var_68 = (Test_Class_5)var_74);
 615         var_72 = false;
 616         return new Test_Class_5().var_60 ^= 'v';
 617     }
 618 
 619     public static Test_Class_2 func_1(byte[][] arg_0, final int arg_1, Test_Class_1 arg_2, final Test_Class_1 arg_3)
 620     {
 621         ((new Test[arg_3.var_25])[((Test_Class_3)new Test_Class_2()).var_39 *= --Test_Class_1.var_26]).var_67 = (((new Test[arg_2.var_25])[(((new Test[arg_2.var_25][arg_2.var_25])[arg_3.var_25][arg_3.var_25]).var_67 = (new Test_Class_3[arg_2.var_25][arg_2.var_25])[arg_2.var_25][arg_3.var_25]).var_39 %= Test_Class_1.var_26]).var_67 = (((new Test[arg_3.var_25][arg_2.var_25])[arg_3.var_25][arg_2.var_25]).var_67 = (((new Test[arg_3.var_25])[arg_2.var_25]).var_67 = (Test_Class_3)new Test_Class_2())));
 622         {
 623             --Test_Class_1.var_26;
 624         }
 625         if (!Test_Class_3.var_40)
 626         {
 627             "jfqj".replaceAll("ac", Test_Class_0.var_3);
 628         }
 629         else
 630         {
 631             arg_2 = (((new Test_Class_5[arg_3.var_25][arg_2.var_25])[((new Test_Class_3[arg_2.var_25])[arg_3.var_25]).var_39][((Test_Class_3)(new Test_Class_2[arg_2.var_25])[arg_3.var_25]).var_39]).var_54 = arg_3);
 632             new Test_Class_1();
 633         }
 634         if (true)
 635         {
 636             Test_Class_0.func_0();
 637         }
 638         else
 639         {
 640             Test_Class_1.var_23 /= Test_Class_1.var_26;
 641         }
 642         Test_Class_1.var_26--;
 643         Test_Class_1.var_23 ^= Test_Class_0.var_1;
 644         return new Test_Class_2();
 645     }
 646 
 647     public static String execute()
 648     {
 649         try {
 650             Test t = new Test();
 651             try { t.test(); }
 652             catch(Throwable e) { }
 653             try { return t.toString(); }
 654             catch (Throwable e) { return "Error during result conversion to String"; }
 655         } catch (Throwable e) { return "Error during test execution"; }
 656     }
 657 
 658     public static void main(String[] args)
 659     {
 660         try {
 661             Test t = new Test();
 662             try { t.test(); }
 663             catch(Throwable e) { }
 664             try { System.out.println(t); }
 665             catch(Throwable e) { }
 666         } catch (Throwable e) { }
 667     }
 668 
 669     private void test()
 670     {
 671         double var_78 = 0;
 672         --Test_Class_1.var_26;
 673         long var_79;
 674         for (var_70 /= 8.089457748637276E307; var_78 < 162 && !true & (true ? Test_Class_3.var_40 : (Test_Class_3.var_40 ^= Test_Class_3.var_40)); Test_Class_1.var_26 -= 1.2513521E38F)
 675         {
 676             short var_80 = 10682;
 677             Test_Class_1.var_21--;
 678             var_78++;
 679             var_72 = (Test_Class_3.var_40 |= (Test_Class_3.var_40 ^= false));
 680             ++Test_Class_1.var_26;
 681         }
 682         Test_Class_2 var_81;
 683         new Test_Class_4();
 684         int var_82 = 0;
 685         ++Test_Class_1.var_23;
 686         do
 687         {
 688             --Test_Class_1.var_26;
 689             var_82++;
 690             ++Test_Class_1.var_21;
 691         } while ((Test_Class_3.var_40 ^= false & false) && var_82 < 256);
 692         Test_Class_1.var_23 |= (var_68 = (var_68 = (Test_Class_5)(var_66 = new Test_Class_4()))).var_48 + (Test_Class_1.var_26 >>> new Test_Class_0().var_2);
 693         (true ? new Test_Class_5() : (var_68 = (var_68 = new Test_Class_5()))).var_60 *= Test_Class_0.var_1;
 694     }
 695     public String toString()
 696     {
 697         String result =  "[\n";
 698         result += "Test.var_69 = "; result += Printer.print(var_69);
 699         result += "\n";
 700         result += "Test.var_70 = "; result += Printer.print(var_70);
 701         result += "\n";
 702         result += "Test.var_71 = "; result += Printer.print(var_71);
 703         result += "\n";
 704         result += "Test.var_73 = "; result += Printer.print(var_73);
 705         result += "\n";
 706         result += "Test.var_68 = "; result += Printer.print(var_68);
 707         result += "\n";
 708         result += "Test.var_66 = "; result += Printer.print(var_66);
 709         result += "\n";
 710         result += "Test.var_72 = "; result += Printer.print(var_72);
 711         result += "\n";
 712         result += "Test.var_67 = "; result += Printer.print(var_67);
 713         result += "";
 714         result += "\n]";
 715         return result;
 716     }
 717     static class Printer
 718     {
 719         public static String print(boolean arg) { return String.valueOf(arg); }
 720         public static String print(byte arg)    { return String.valueOf(arg); }
 721         public static String print(short arg)   { return String.valueOf(arg); }
 722         public static String print(char arg)    { return String.valueOf((int)arg); }
 723         public static String print(int arg)     { return String.valueOf(arg); }
 724         public static String print(long arg)    { return String.valueOf(arg); }
 725         public static String print(float arg)   { return String.valueOf(arg); }
 726         public static String print(double arg)  { return String.valueOf(arg); }
 727 
 728 
 729         public static String print(Object arg)
 730         {
 731             return print_r(new java.util.Stack(), arg);
 732         }
 733 
 734         private static String print_r(java.util.Stack visitedObjects, Object arg)
 735         {
 736             String result = "";
 737             if (arg == null)
 738                 result += "null";
 739             else
 740             if (arg.getClass().isArray())
 741             {
 742                 for (int i = 0; i < visitedObjects.size(); i++)
 743                     if (visitedObjects.elementAt(i) == arg) return "<recursive>";
 744 
 745                 visitedObjects.push(arg);
 746 
 747                 final String delimiter = ", ";
 748                 result += "[";
 749 
 750                 if (arg instanceof Object[])
 751                 {
 752                     Object[] array = (Object[]) arg;
 753                     for (int i = 0; i < array.length; i++)
 754                     {
 755                         result += print_r(visitedObjects, array[i]);
 756                         if (i < array.length - 1) result += delimiter;
 757                     }
 758                 }
 759                 else
 760                 if (arg instanceof boolean[])
 761                 {
 762                     boolean[] array = (boolean[]) arg;
 763                     for (int i = 0; i < array.length; i++)
 764                     {
 765                         result += print(array[i]);
 766                         if (i < array.length - 1) result += delimiter;
 767                     }
 768                 }
 769                 else
 770                 if (arg instanceof byte[])
 771                 {
 772                     byte[] array = (byte[]) arg;
 773                     for (int i = 0; i < array.length; i++)
 774                     {
 775                         result += print(array[i]);
 776                         if (i < array.length - 1) result += delimiter;
 777                     }
 778                 }
 779                 else
 780                 if (arg instanceof short[])
 781                 {
 782                     short[] array = (short[]) arg;
 783                     for (int i = 0; i < array.length; i++)
 784                     {
 785                         result += print(array[i]);
 786                         if (i < array.length - 1) result += delimiter;
 787                     }
 788                 }
 789                 else
 790                 if (arg instanceof char[])
 791                 {
 792                     char[] array = (char[]) arg;
 793                     for (int i = 0; i < array.length; i++)
 794                     {
 795                         result += print(array[i]);
 796                         if (i < array.length - 1) result += delimiter;
 797                     }
 798                 }
 799                 else
 800                 if (arg instanceof int[])
 801                 {
 802                      int[] array = (int[]) arg;
 803                      for (int i = 0; i < array.length; i++)
 804                      {
 805                         result += print(array[i]);
 806                         if (i < array.length - 1) result += delimiter;
 807                      }
 808                 }
 809                 else
 810                 if (arg instanceof long[])
 811                 {
 812                     long[] array = (long[]) arg;
 813                     for (int i = 0; i < array.length; i++)
 814                     {
 815                         result += print(array[i]);
 816                         if (i < array.length - 1) result += delimiter;
 817                     }
 818                 }
 819                 else
 820                 if (arg instanceof float[])
 821                 {
 822                     float[] array = (float[]) arg;
 823                     for (int i = 0; i < array.length; i++)
 824                     {
 825                         result += print(array[i]);
 826                         if (i < array.length - 1) result += delimiter;
 827                     }
 828                 }
 829                 else
 830                 if (arg instanceof double[])
 831                 {
 832                     double[] array = (double[]) arg;
 833                     for (int i = 0; i < array.length; i++)
 834                     {
 835                         result += print(array[i]);
 836                         if (i < array.length - 1) result += delimiter;
 837                     }
 838                 }
 839 
 840                 result += "]";
 841                 visitedObjects.pop();
 842 
 843             } else
 844             {
 845                 result += arg.toString();
 846             }
 847 
 848             return result;
 849         }
 850     }
 851 }
 852